1 引 言
1.1 数字家庭的广泛应用
数字技术和计算机技术的飞速发展正不断产生众多的数码产品,从个人电脑、手机、PDA到MP3、数字电视、DVD、DV/DC,数字家电产品已经步入了人们的日常生活之中。同时,宽带通信与互联网应用的普及也极大地促进了数字媒体内容的发展。因此,构建一个宽带接入、内部互联、内容共享的数字家庭媒体中心的需求也变得日益突出。
根据IDC的定义,数字家庭是指可以实现家庭内部所有设施控制并可得到反馈信息,声音、文字、图像信息可在不同家用设备上共享,并可随时随地实现这些控制与信息共享\[1\]
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内核,具有内存管理、进程调度、设备管理、文件系统、中断处理和网络协议栈等功能。驱动层主要提供各种设备的驱动,包括以太网驱动、无

图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子系统的实现
&n

图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充分流通和共享的需求。