用IXP網(wǎng)絡(luò)處理器設(shè)計的數(shù)字家庭媒體中心系統(tǒng)
摘 要 隨著電子消費類設(shè)備需求的不斷增加以及Internet數(shù)字媒體內(nèi)容的迅猛發(fā)展,家庭網(wǎng)絡(luò)中的數(shù)字媒體內(nèi)容開始持續(xù)增長,人們更加迫切地需要增強對等通信與信息共享的能力。本文描述了一種基于IXP網(wǎng)絡(luò)處理器架構(gòu)的數(shù)字家庭媒體中心系統(tǒng)(DHMCS)的設(shè)計及其實現(xiàn)。
關(guān)鍵詞ARM,家庭媒體系統(tǒng),嵌入式系統(tǒng),NMPR,UPnP
1 引 言
1.1 數(shù)字家庭的廣泛應(yīng)用
數(shù)字技術(shù)和計算機技術(shù)的飛速發(fā)展正不斷產(chǎn)生眾多的數(shù)碼產(chǎn)品,從個人電腦、手機、PDA到MP3、數(shù)字電視、DVD、DV/DC,數(shù)字家電產(chǎn)品已經(jīng)步入了人們的日常生活之中。同時,寬帶通信與互聯(lián)網(wǎng)應(yīng)用的普及也極大地促進了數(shù)字媒體內(nèi)容的發(fā)展。因此,構(gòu)建一個寬帶接入、內(nèi)部互聯(lián)、內(nèi)容共享的數(shù)字家庭媒體中心的需求也變得日益突出。
根據(jù)IDC的定義,數(shù)字家庭是指可以實現(xiàn)家庭內(nèi)部所有設(shè)施控制并可得到反饋信息,聲音、文字、圖像信息可在不同家用設(shè)備上共享,并可隨時隨地實現(xiàn)這些控制與信息共享[1]。IDC的最新報告表明,至2008年數(shù)字家庭市場直接帶來的網(wǎng)絡(luò)、終端等相關(guān)軟/硬件的投資將超過100億美元,其中雙向機頂盒2008年約安裝3 300百萬臺,年復(fù)合增長率將達(dá)到311.7%,智能家庭網(wǎng)關(guān)由于其數(shù)字家庭高端解決方案的市場定位,2003~2008年的年復(fù)合增長率將高達(dá)89.4%[1]。因此,數(shù)字家庭媒體中心的推廣必將會產(chǎn)生巨大的附加產(chǎn)值,帶來巨大的發(fā)展?jié)摿?。?994年數(shù)字家庭概念的誕生,到今天數(shù)字家庭市場的正式啟動;從“維納斯”計劃的推出,到通用即插即用論壇(UPnP,Universal Plug and Play)、數(shù)字生活網(wǎng)絡(luò)聯(lián)盟(DLNA,Digital Life Network Alliance)的成立,經(jīng)過十余年的發(fā)展,數(shù)字化生活已進入了真正的發(fā)展期。
1.2 ARM技術(shù)的發(fā)展
嵌入式系統(tǒng)源自80年代以來的8位單片機技術(shù)。在90年代后期,隨著網(wǎng)絡(luò)技術(shù)的飛速發(fā)展,人們的日常生活進入了后PC時代,許多電子設(shè)備需要TCP/IP網(wǎng)絡(luò)功能和更智能、更強大的計算能力,如語音、音頻、視頻的數(shù)據(jù)采集、處理與傳輸,圖形界面和觸摸屏技術(shù),無線控制技術(shù)和相應(yīng)的軟件協(xié)議等。因此,對功能更強大的嵌入式處理器的需求也變得越來越突出。ARM作為嵌入式系統(tǒng)領(lǐng)域中應(yīng)用最廣泛的32位處理器體系結(jié)構(gòu),已遍及工業(yè)控制、消費類電子、通信系統(tǒng)、網(wǎng)絡(luò)應(yīng)用、無線通信、成像和安全等各類應(yīng)用領(lǐng)域,并成為多個應(yīng)用領(lǐng)域的標(biāo)準(zhǔn)CPU,ARM技術(shù)已經(jīng)滲透到人們生活的各個方面。
采用ARM技術(shù)知識產(chǎn)權(quán)(IP)核的微處理器目前包括:ARM7系列、ARM9系列、ARM9E系列、ARM10E系列、SecurCore系列、StrongARM系列和XScale系列。它們的共同特點是:體積小,功耗低,成本低,性能高;支持Thumb(16位)/ARM(32位)雙指令集,能很好地兼容8/16位器件;大量使用寄存器,指令執(zhí)行速度更快;大部分?jǐn)?shù)據(jù)操作都在寄存器中完成;尋址方式靈活簡單,執(zhí)行效率高;指令長度固定。除了具有上述共同特點之外,每個系列還具有各自的特色和應(yīng)用領(lǐng)域。其中,ARM7、ARM9、ARM9E和ARM10E為4個通用處理器系列,每個系列提供一套相對獨特的性能來滿足不同應(yīng)用領(lǐng)域的需求;SecurCore系列專門為安全性要求較高的應(yīng)用而設(shè)計,如電子商務(wù)、電子政務(wù)、電子銀行業(yè)務(wù)、網(wǎng)絡(luò)和認(rèn)證系統(tǒng)等領(lǐng)域;Intel公司的StrongARM系列融合了Intel的設(shè)計和處理技術(shù)以及ARM體系結(jié)構(gòu)的電源效率,在軟件上兼容ARMv4體系結(jié)構(gòu),同時還采用了具有Intel自身優(yōu)點的技術(shù),適用于便攜式通信和消費類電子領(lǐng)域;Intel公司的XScale系列是基于ARMv5TE體系結(jié)構(gòu)的解決方案,具有高性能、高性價比、低功耗等優(yōu)點,適用于數(shù)字移動電話、個人數(shù)字助理和網(wǎng)絡(luò)產(chǎn)品等領(lǐng)域。
2 數(shù)字家庭媒體中心系統(tǒng)的設(shè)計
隨著電子消費類設(shè)備需求的不斷增加(如數(shù)碼相機、數(shù)字?jǐn)z像機、MP3播放器和高清DVD等設(shè)備)以及Internet數(shù)字媒體內(nèi)容的迅猛發(fā)展,家庭網(wǎng)絡(luò)中的數(shù)字媒體內(nèi)容開始持續(xù)增長,人們更加迫切地需要增強對等通信與信息共享的能力。為了滿足數(shù)字媒體在家庭內(nèi)部以及外部Internet充分流通和共享的需求,我們開發(fā)了一種高性價比的數(shù)字家庭媒體中心系統(tǒng)(DHMCS,Digital Home Media Center System)。該系統(tǒng)結(jié)合Intel的IXP網(wǎng)絡(luò)處理器和ESS多媒體解碼芯片,無縫地連接家庭內(nèi)部的個人電腦和家電,并通過以太網(wǎng)/無線網(wǎng)絡(luò)連接家庭外的寬帶Internet,在家庭環(huán)境內(nèi)/外共享數(shù)字媒體內(nèi)容,能夠?qū)Χ喾N媒體格式進行管理、存儲、顯示以及分配,提供集成的數(shù)據(jù)、多媒體應(yīng)用以及自動控制與遠(yuǎn)程管理等功能。
圖1描述了DHMCS系統(tǒng)的整體框架。它通過DHCP協(xié)議、PPPoE協(xié)議、UDP協(xié)議、FTP協(xié)議、HTTP協(xié)議、UPnP協(xié)議[2]以及USB接口,從家庭PC機、寬帶Internet連接的網(wǎng)絡(luò)、存儲卡和DVD等設(shè)備中獲取多媒體數(shù)據(jù),并且將這些數(shù)字媒體內(nèi)容在電視機和音響設(shè)備上播放。同時還提供媒體文件的管理以及遠(yuǎn)程控制功能。
圖1 DHMCS系統(tǒng)整體框架
2.1 DHMCS的系統(tǒng)結(jié)構(gòu)
DHMCS由兩個子系統(tǒng)組成:一個是由IXP 425(Intel XScale系列)網(wǎng)絡(luò)處理器構(gòu)成的網(wǎng)絡(luò)子系統(tǒng);另一個是由ESS 6688 DVD解碼芯片構(gòu)成的數(shù)據(jù)解碼子系統(tǒng),以下簡稱為“IXP子系統(tǒng)”和“ESS子系統(tǒng)”。IXP子系統(tǒng)通過UDP協(xié)議、FTP協(xié)議、HTTP協(xié)議和UPnP協(xié)議,從網(wǎng)絡(luò)上獲取媒體數(shù)據(jù);ESS子系統(tǒng)則對這些媒體數(shù)據(jù)進行解碼并進行音頻/視頻輸出,同時也能對存儲卡和DVD上的播放資源進行處理。IXP子系統(tǒng)和ESS子系統(tǒng)通過I2C總線和雙端口SRAM(DPRAM)連接起來,其中: I2C總線主要負(fù)責(zé)控制命令和響應(yīng)的傳輸;而DPRAM則主要負(fù)責(zé)媒體數(shù)據(jù)的傳輸。本文的后續(xù)部分主要討論IXP子系統(tǒng),而ESS子系統(tǒng)則超出了本文的范圍。圖2詳細(xì)描述了DHMCS中IXP子系統(tǒng)和ESS子系統(tǒng)的結(jié)構(gòu)。
圖2 DHMCS中IXP子系統(tǒng)和ESS子系統(tǒng)的結(jié)構(gòu)
DHMCS完成一個用戶的請求涉及以下7個步驟:① ESS子系統(tǒng)將用戶請求網(wǎng)絡(luò)媒體文件的按鍵轉(zhuǎn)換為一個請求信息,并且按照一定格式寫入DPRAM中,然后ESS子系統(tǒng)使能相應(yīng)的中斷,通知IXP子系統(tǒng)DPRAM中的數(shù)據(jù)就緒;② IXP子系統(tǒng)從DPRAM中讀取就緒的數(shù)據(jù),獲取用戶的請求信息;③ IXP子系統(tǒng)根據(jù)獲取的請求信息和指定的服務(wù)器,建立Ethernet/WiFi網(wǎng)絡(luò)連接;④ 服務(wù)器返回請求的媒體數(shù)據(jù)到IXP子系統(tǒng)中;⑤ IXP子系統(tǒng)將返回的數(shù)據(jù)通過相應(yīng)的應(yīng)用函數(shù)接口寫入DPRAM;⑥ IXP子系統(tǒng)使能相應(yīng)的中斷,通知ESS子系統(tǒng)用戶請求的數(shù)據(jù)已返回;⑦ ESS子系統(tǒng)解碼返回的媒體數(shù)據(jù),并通過音頻/視頻接口輸出。
為了實現(xiàn)DHMCS的網(wǎng)絡(luò)功能,將IXP子系統(tǒng)的軟件功能劃分為以下3層: 應(yīng)用層、操作系統(tǒng)層和驅(qū)動層。應(yīng)用層主要提供網(wǎng)絡(luò)功能模塊以及和ESS子系統(tǒng)通信所需的模塊,具體來說,包括UPnP協(xié)議、DHCP協(xié)議、PPPoE客戶端、FTP客戶端、HTTP客戶端,以及通信協(xié)議模塊。操作系統(tǒng)層基于MontaVista v3.0的Linux內(nèi)核,具有內(nèi)存管理、進程調(diào)度、設(shè)備管理、文件系統(tǒng)、中斷處理和網(wǎng)絡(luò)協(xié)議棧等功能。驅(qū)動層主要提供各種設(shè)備的驅(qū)動,包括以太網(wǎng)驅(qū)動、無線WiFi驅(qū)動、Flash驅(qū)動、DPRAM驅(qū)動、I2C驅(qū)動,以及USB驅(qū)動。圖3描述了上述軟件結(jié)構(gòu)。
圖3 IXP子系統(tǒng)的軟件結(jié)構(gòu)
2.2 IXP子系統(tǒng)的應(yīng)用層設(shè)計
用戶發(fā)出的請求主要有3類: 文件類請求(包括目錄列表等請求)、系統(tǒng)的設(shè)置或者命令請求,以及UPnP媒體流請求。對應(yīng)于以上請求,將IXP子系統(tǒng)的應(yīng)用層劃分為:應(yīng)用代理模塊、媒體文件下載模塊(負(fù)責(zé)通過TCP/IP協(xié)議取得請求文件)、UPnP媒體流模塊(負(fù)責(zé)處理UPnP請求)、用戶遠(yuǎn)程設(shè)置模塊(負(fù)責(zé)處理系統(tǒng)設(shè)置請求),以及與ESS子系統(tǒng)進行數(shù)據(jù)傳輸和命令控制的通信協(xié)議模塊。應(yīng)用代理模塊層在DHMCS系統(tǒng)中處于樞紐位置,它將各種網(wǎng)絡(luò)應(yīng)用(如FTP、HTTP、UPnP以及用戶遠(yuǎn)程設(shè)置)有效地連接起來,起到應(yīng)用代理的作用。應(yīng)用代理模塊首先從通信協(xié)議模塊接收ESS子系統(tǒng)發(fā)送的用戶請求;然后交給相應(yīng)的模塊處理;最后將服務(wù)器返回的數(shù)據(jù)和響應(yīng)通過通信協(xié)議模塊返回給ESS子系統(tǒng)。圖4描述了IXP子系統(tǒng)應(yīng)用層的模塊劃分。
圖4 IXP子系統(tǒng)應(yīng)用層的模塊劃分
IXP子系統(tǒng)和ESS子系統(tǒng)之間的數(shù)據(jù)傳輸和命令控制則由通信協(xié)議模塊和通信驅(qū)動模塊共同完成。通信協(xié)議模塊主要負(fù)責(zé)IXP子系統(tǒng)和ESS子系統(tǒng)之間通信協(xié)議的實現(xiàn),它將用戶的請求或者服務(wù)器返回的媒體數(shù)據(jù)構(gòu)造成數(shù)據(jù)包(Packet),并將每個Packet拆分為幾個更小的mPacket,以便通信驅(qū)動模塊的傳輸,另外兩個子系統(tǒng)之間的確認(rèn)消息也在這一層實現(xiàn);而通信驅(qū)動模塊主要負(fù)責(zé)具體的硬件傳輸,它直接控制I2C總線和DPRAM硬件,能夠?qū)⑿畔?zhǔn)確無誤地傳輸?shù)紼SS子系統(tǒng)中。參考OSI標(biāo)準(zhǔn)的7層模型,將IXP子系統(tǒng)和ESS子系統(tǒng)之間的通信協(xié)議劃分為以下4個層次:應(yīng)用層進行ESS子系統(tǒng)的請求消息和IXP子系統(tǒng)的響應(yīng)消息的交互,完成消息的解析和處理;傳輸層主要是對要傳輸?shù)臄?shù)據(jù)進行分段重組(SAR),實現(xiàn)媒體文件和命令端到端的傳輸;鏈路層主要是進行DPRAM內(nèi)存塊的讀/寫以及I2C總線上的控制命令傳輸,提供兩端訪問DPRAM和I2C總線的通信機制;DPRAM提供雙端口讀/寫內(nèi)存塊的通道,I2C提供命令控制通道。整個過程如圖5所示。
圖5 IXP子系統(tǒng)和ESS子系統(tǒng)之間通信協(xié)議的層次劃分
3 IXP子系統(tǒng)的實現(xiàn)
本節(jié)將詳細(xì)介紹IXP子系統(tǒng)中UPnP媒體流模塊以及IXP子系統(tǒng)和ESS子系統(tǒng)之間的媒體數(shù)據(jù)傳輸功能的實現(xiàn)。系統(tǒng)中其他模塊的實現(xiàn)相對容易,在此不做描述。
3.1 UPnP媒體流模塊的實現(xiàn)
我們實現(xiàn)的UPnP媒體流模塊符合Intel的網(wǎng)絡(luò)多媒體產(chǎn)品規(guī)范[3](Networked Media Product Requirements:NMPR v1.0)。NMPR規(guī)范將媒體設(shè)備劃分為3部分: 媒體服務(wù)器(Media Server)、播放器(Renderer)和控制點(Control Point),并且利用UPnP協(xié)議完成這3部分之間媒體數(shù)據(jù)和控制命令的傳輸。我們實現(xiàn)的UPnP媒體流模塊實際上包含了Renderer和Control Point這兩部分,媒體服務(wù)器可以是符合NMPR規(guī)范的任意的PC機。
圖6 UPnP媒體流模塊的實現(xiàn)
圖6描述了UPnP媒體流模塊的實現(xiàn)過程。首先應(yīng)用代理模塊向控制點發(fā)送用戶的數(shù)據(jù)請求,控制點接收到用戶的請求后就與媒體服務(wù)器進行通信;然后將媒體服務(wù)器的響應(yīng)信息返回給應(yīng)用代理模塊,隨后媒體服務(wù)器將用戶所請求的媒體數(shù)據(jù)傳輸給Renderer;最后Renderer將這些數(shù)據(jù)返回給應(yīng)用代理模塊,再由通信協(xié)議模塊傳輸給ESS子系統(tǒng),再由ESS子系統(tǒng)對這些媒體數(shù)據(jù)進行解碼輸出。同時控制點還可與Renderer相互通信,實現(xiàn)一系列媒體播放的功能。
3.2 DPRAM媒體數(shù)據(jù)傳輸功能的實現(xiàn)
通信協(xié)議模塊實現(xiàn)的主要功能有:將Packet拆分成多個mPacket;向通信驅(qū)動模塊發(fā)送或接收mPacket;向應(yīng)用代理模塊發(fā)送用戶的數(shù)據(jù)請求和控制命令,并接收服務(wù)器的響應(yīng)消息;管理請求隊列和響應(yīng)隊列。完成一次IXP子系統(tǒng)和ESS子系統(tǒng)之間媒體數(shù)據(jù)傳輸所涉及的數(shù)據(jù)變化如圖7所示。
圖7 IXP子系統(tǒng)和ESS子系統(tǒng)之間數(shù)據(jù)傳輸所涉及的數(shù)據(jù)變化
應(yīng)用代理層到DPRAM的數(shù)據(jù)傳輸過程為:① 應(yīng)用層根據(jù)需要將相應(yīng)的數(shù)據(jù)傳遞到傳輸層;② 傳輸層收到報文后檢查報文的長度,如果報文長度大于底層所能夠傳輸?shù)膱笪拈L度,則傳輸層將報文進行拆分,添加相應(yīng)的報頭信息,以保證接收端能夠正確地重組,并傳遞給鏈路層;③ 鏈路層收到上層報文后,在報頭添加相應(yīng)的控制信息,以保證接收端能夠正確地存取數(shù)據(jù),然后將報文發(fā)送到DPRAM上。反之,由DPRAM到應(yīng)用層的數(shù)據(jù)傳輸過程為:① 鏈路層從DPRAM中讀取報文,并去掉相應(yīng)的報頭信息,將數(shù)據(jù)傳遞給傳輸層;② 傳輸層收到底層傳遞的數(shù)據(jù)后,根據(jù)該層添加的報頭信息重組報文,然后傳遞給應(yīng)用層。
4 結(jié)束語
本文結(jié)合了IXP網(wǎng)絡(luò)處理器和ESS解碼芯片的特點,實現(xiàn)了一種具有高性價比的家庭媒體中心系統(tǒng)。它充分滿足了數(shù)字媒體在家庭內(nèi)部以及外部Internet充分流通和共享的需求。
評論