作者:蔡斌,谢长生,吴伟,吴明,张洪涛
1 引 言
1.1 数字家庭的广泛应用
数字技术和计算机技术的飞速发展正不断产生众多的数码产品,从个人电脑、手机、PDA到MP3、数字电视、DVD、DV/DC,数字家电产品已经步入了人们的日常生活之中。同时,宽带通信与互联网应用的普及也极大地促进了数字媒体内容的发展。因此,构建一个宽带接入、内部互联、内容共享的数字家庭媒体中心的需求也变得日益突出。
根据IDC的定义,数字家庭是指可以实现家庭内部所有设施控制并可得到反馈信息,声音、文字、图像信息可在不同家用设备上共享,并可随时随地实现这些控制与信息共享。IDC的最新报告表明,至2008年数字家庭市场直接带来的网络、终端等相关软/硬件的投资将超过100亿美元,其中双向机顶盒2008年约安装3 300百万台,年复合增长率将达到311.7%,智能家庭网关由于其数字家庭高端解决方案的市场定位,2003~2008年的年复合增长率将高达89.4%。因此,数字家庭媒体中心的推广必将会产生巨大的附加产值,带来巨大的发展潜力。从1994年数字家庭概念的诞生,到今天数字家庭市场的正式启动;从“维纳斯”计划的推出,到通用即插即用论坛(UPnP,Universal Plug and Play)、数字生活网络联盟(DLNA,Digital Life Network Alliance)的成立,经过十余年的发展,数字化生活已进入了真正的发展期。
1.2 ARM技术的发展
嵌入式系统源自80年代以来的8位单片机技术。在90年代后期,随着网络技术的飞速发展,人们的日常生活进入了后PC时代,许多电子设备需要TCP/IP网络功能和更智能、更强大的计算能力,如语音、音频、视频的数据采集、处理与传输,图形界面和触摸屏技术,无线控制技术和相应的软件协议等。因此,对功能更强大的嵌入式处理器的需求也变得越来越突出。ARM作为嵌入式系统领域中应用最广泛的32位处理器体系结构,已遍及工业控制、消费类电子、通信系统、网络应用、无线通信、成像和安全等各类应用领域,并成为多个应用领域的标准CPU,ARM技术已经渗透到人们生活的各个方面。
采用ARM技术知识产权(IP)核的微处理器目前包括:ARM7系列、ARM9系列、ARM9E系列、ARM10E系列、SecurCore系列、StrongARM系列和XScale系列。它们的共同特点是:体积小,功耗低,成本低,性能高;支持Thumb(16位)/ARM(32位)双指令集,能很好地兼容8/16位器件;大量使用寄存器,指令执行速度更快;大部分数据操作都在寄存器中完成;寻址方式灵活简单,执行效率高;指令长度固定。除了具有上述共同特点之外,每个系列还具有各自的特色和应用领域。其中,ARM7、ARM9、ARM9E和ARM10E为4个通用处理器系列,每个系列提供一套相对独特的性能来满足不同应用领域的需求;SecurCore系列专门为安全性要求较高的应用而设计,如电子商务、电子政务、电子银行业务、网络和认证系统等领域;Intel公司的StrongARM系列融合了Intel的设计和处理技术以及ARM体系结构的电源效率,在软件上兼容ARMv4体系结构,同时还采用了具有Intel自身优点的技术,适用于便携式通信和消费类电子领域;Intel公司的XScale系列是基于ARMv5TE体系结构的解决方案,具有高性能、高性价比、低功耗等优点,适用于数字移动电话、个人数字助理和网络产品等领域。
2 数字家庭媒体中心系统的设计
随着电子消费类设备需求的不断增加(如数码相机、数字摄像机、MP3播放器和高清DVD等设备)以及Internet数字媒体内容的迅猛发展,家庭网络中的数字媒体内容开始持续增长,人们更加迫切地需要增强对等通信与信息共享的能力。为了满足数字媒体在家庭内部以及外部Internet充分流通和共享的需求,我们开发了一种高性价比的数字家庭媒体中心系统(DHMCS,Digital Home Media Center System)。该系统结合Intel的IXP网络处理器和ESS多媒体解码芯片,无缝地连接家庭内部的个人电脑和家电,并通过以太网/无线网络连接家庭外的宽带Internet,在家庭环境内/外共享数字媒体内容,能够对多种媒体格式进行管理、存储、显示以及分配,提供集成的数据、多媒体应用以及自动控制与远程管理等功能。
图1描述了DHMCS系统的整体框架。它通过DHCP协议、PPPoE协议、UDP协议、FTP协议、HTTP协议、UPnP协议[2]以及USB接口,从家庭PC机、宽带Internet连接的网络、存储卡和DVD等设备中获取多媒体数据,并且将这些数字媒体内容在电视机和音响设备上播放。同时还提供媒体文件的管理以及远程控制功能。
图1 DHMCS系统整体框架
2.1 DHMCS的系统结构
DHMCS由两个子系统组成:一个是由IXP 425(Intel XScale系列)网络处理器构成的网络子系统;另一个是由ESS 6688 DVD解码芯片构成的数据解码子系统,以下简称为“IXP子系统”和“ESS子系统”。IXP子系统通过UDP协议、FTP协议、HTTP协议和UPnP协议,从网络上获取媒体数据;ESS子系统则对这些媒体数据进行解码并进行音频/视频输出,同时也能对存储卡和DVD上的播放资源进行处理。IXP子系统和ESS子系统通过I2C总线和双端口SRAM(DPRAM)连接起来,其中: I2C总线主要负责控制命令和响应的传输;而DPRAM则主要负责媒体数据的传输。本文的后续部分主要讨论IXP子系统,而ESS子系统则超出了本文的范围。图2详细描述了DHMCS中IXP子系统和ESS子系统的结构。
图2 DHMCS中IXP子系统和ESS子系统的结构
DHMCS完成一个用户的请求涉及以下7个步骤:① ESS子系统将用户请求网络媒体文件的按键转换为一个请求信息,并且按照一定格式写入DPRAM中,然后ESS子系统使能相应的中断,通知IXP子系统DPRAM中的数据就绪;② IXP子系统从DPRAM中读取就绪的数据,获取用户的请求信息;③ IXP子系统根据获取的请求信息和指定的服务器,建立Ethernet/WiFi网络连接;④ 服务器返回请求的媒体数据到IXP子系统中;⑤ IXP子系统将返回的数据通过相应的应用函数接口写入DPRAM;⑥ IXP子系统使能相应的中断,通知ESS子系统用户请求的数据已返回;⑦ ESS子系统解码返回的媒体数据,并通过音频/视频接口输出。
为了实现DHMCS的网络功能,将IXP子系统的软件功能划分为以下3层: 应用层、操作系统层和驱动层。应用层主要提供网络功能模块以及和ESS子系统通信所需的模块,具体来说,包括UPnP协议、DHCP协议、PPPoE客户端、FTP客户端、HTTP客户端,以及通信协议模块。操作系统层基于MontaVista v3.0的Linux内核,具有内存管理、进程调度、设备管理、文件系统、中断处理和网络协议栈等功能。驱动层主要提供各种设备的驱动,包括以太网驱动、无线WiFi驱动、Flash驱动、DPRAM驱动、I2C驱动,以及USB驱动。图3描述了上述软件结构。
图3 IXP子系统的软件结构
2.2 IXP子系统的应用层设计
用户发出的请求主要有3类: 文件类请求(包括目录列表等请求)、系统的设置或者命令请求,以及UPnP媒体流请求。对应于以上请求,将IXP子系统的应用层划分为:应用代理模块、媒体文件下载模块(负责通过TCP/IP协议取得请求文件)、UPnP媒体流模块(负责处理UPnP请求)、用户远程设置模块(负责处理系统设置请求),以及与ESS子系统进行数据传输和命令控制的通信协议模块。应用代理模块层在DHMCS系统中处于枢纽位置,它将各种网络应用(如FTP、HTTP、UPnP以及用户远程设置)有效地连接起来,起到应用代理的作用。应用代理模块首先从通信协议模块接收ESS子系统发送的用户请求;然后交给相应的模块处理;最后将服务器返回的数据和响应通过通信协议模块返回给ESS子系统。图4描述了IXP子系统应用层的模块划分。
图4 IXP子系统应用层的模块划分
IXP子系统和ESS子系统之间的数据传输和命令控制则由通信协议模块和通信驱动模块共同完成。通信协议模块主要负责IXP子系统和ESS子系统之间通信协议的实现,它将用户的请求或者服务器返回的媒体数据构造成数据包(Packet),并将每个Packet拆分为几个更小的mPacket,以便通信驱动模块的传输,另外两个子系统之间的确认消息也在这一层实现;而通信驱动模块主要负责具体的硬件传输,它直接控制I2C总线和DPRAM硬件,能够将信息准确无误地传输到ESS子系统中。参考OSI标准的7层模型,将IXP子系统和ESS子系统之间的通信协议划分为以下4个层次:应用层进行ESS子系统的请求消息和IXP子系统的响应消息的交互,完成消息的解析和处理;传输层主要是对要传输的数据进行分段重组(SAR),实现媒体文件和命令端到端的传输;链路层主要是进行DPRAM内存块的读/写以及I2C总线上的控制命令传输,提供两端访问DPRAM和I2C总线的通信机制;DPRAM提供双端口读/写内存块的通道,I2C提供命令控制通道。整个过程如图5所示。
图5 IXP子系统和ESS子系统之间通信协议的层次划分
3 IXP子系统的实现
本节将详细介绍IXP子系统中UPnP媒体流模块以及IXP子系统和ESS子系统之间的媒体数据传输功能的实现。系统中其他模块的实现相对容易,在此不做描述。
3.1 UPnP媒体流模块的实现
我们实现的UPnP媒体流模块符合Intel的网络多媒体产品规范(Networked Media Product Requirements:NMPR v1.0)。NMPR规范将媒体设备划分为3部分: 媒体服务器(Media Server)、播放器(Renderer)和控制点(Control Point),并且利用UPnP协议完成这3部分之间媒体数据和控制命令的传输。我们实现的UPnP媒体流模块实际上包含了Renderer和Control Point这两部分,媒体服务器可以是符合NMPR规范的任意的PC机。
图6 UPnP媒体流模块的实现
图6描述了UPnP媒体流模块的实现过程。首先应用代理模块向控制点发送用户的数据请求,控制点接收到用户的请求后就与媒体服务器进行通信;然后将媒体服务器的响应信息返回给应用代理模块,随后媒体服务器将用户所请求的媒体数据传输给Renderer;最后Renderer将这些数据返回给应用代理模块,再由通信协议模块传输给ESS子系统,再由ESS子系统对这些媒体数据进行解码输出。同时控制点还可与Renderer相互通信,实现一系列媒体播放的功能。
3.2 DPRAM媒体数据传输功能的实现
通信协议模块实现的主要功能有:将Packet拆分成多个mPacket;向通信驱动模块发送或接收mPacket;向应用代理模块发送用户的数据请求和控制命令,并接收服务器的响应消息;管理请求队列和响应队列。完成一次IXP子系统和ESS子系统之间媒体数据传输所涉及的数据变化如图7所示。
图7 IXP子系统和ESS子系统之间数据传输所涉及的数据变化
应用代理层到DPRAM的数据传输过程为:① 应用层根据需要将相应的数据传递到传输层;② 传输层收到报文后检查报文的长度,如果报文长度大于底层所能够传输的报文长度,则传输层将报文进行拆分,添加相应的报头信息,以保证接收端能够正确地重组,并传递给链路层;③ 链路层收到上层报文后,在报头添加相应的控制信息,以保证接收端能够正确地存取数据,然后将报文发送到DPRAM上。反之,由DPRAM到应用层的数据传输过程为:① 链路层从DPRAM中读取报文,并去掉相应的报头信息,将数据传递给传输层;② 传输层收到底层传递的数据后,根据该层添加的报头信息重组报文,然后传递给应用层。
4 结束语
本文结合了IXP网络处理器和ESS解码芯片的特点,实现了一种具有高性价比的家庭媒体中心系统。它充分满足了数字媒体在家庭内部以及外部Internet充分流通和共享的需求。