劉海波,于鴻洋,張 萍
(電子科技大學(xué) 電子工程學(xué)院,四川 成都 610054)
機(jī)頂盒分為數(shù)字衛(wèi)星接收機(jī)頂盒(又稱衛(wèi)星集成接收解碼器IRD)和數(shù)字有線電視機(jī)頂盒兩大類,其中數(shù)字衛(wèi)星接收STB是沒有上行數(shù)據(jù)的,不具備交互式功能;而有線電視機(jī)頂盒的發(fā)展重點(diǎn)一方面是數(shù)字電視和VoD業(yè)務(wù),另一方面是寬帶接入因特網(wǎng)業(yè)務(wù),也就是具備因特網(wǎng)瀏覽功能。筆者則提出了在Linux構(gòu)架下[1],基于STi7109硬件平臺(tái)[2]具有VoD功能和網(wǎng)絡(luò)瀏覽器功能的機(jī)頂盒。
網(wǎng)絡(luò)機(jī)頂盒是在傳統(tǒng)機(jī)頂盒功能的基礎(chǔ)上,加入了網(wǎng)絡(luò)模塊,而新一代高清機(jī)頂盒/DVD芯片STi7109是一款單芯片高精度的視頻解碼器,支持VC-1,WMA9和H.264解碼,266 MHz的ST40的CPU內(nèi)核,支持嵌入式Linux,Windows CE和OS21的操作系統(tǒng),硬件接口方面具有USB2.0主機(jī)控制器、DVI/HDMI輸出接口、輔助音視頻輸入接口和SATA等。機(jī)頂盒硬件體系結(jié)構(gòu)如圖1所示。
圖1 機(jī)頂盒的硬件結(jié)構(gòu)
網(wǎng)絡(luò)系統(tǒng)由3層組成:直接存儲(chǔ)總線(DMA)層、傳輸層接口(TLI)和媒體訪問控制(MAC)層[3]。DMA 層是網(wǎng)絡(luò)子系統(tǒng)的第一層,它通過應(yīng)用接口實(shí)現(xiàn)系統(tǒng)內(nèi)存和TLI層數(shù)據(jù)的交換,由應(yīng)用程序控制DMA操作,可以訪問DMA寄存器(DMA CSR);TLI層由2個(gè)FIFO組成,一組動(dòng)態(tài)閾值的傳送FIFO和一組靜態(tài)閾值的接收FIFO;與外部物理層交互的MAC接口是由以太網(wǎng)媒體接口(MII)實(shí)現(xiàn),它處理所有用于全雙工通信模式和半雙工通信模式的網(wǎng)絡(luò)協(xié)議請(qǐng)求,MAC還包含1個(gè)寄存器(MAC CSR),用來控制MAC幀的傳送和接收。寄存器訪問如圖2所示。
圖2 寄存器訪問
Linux系統(tǒng)具有強(qiáng)大的網(wǎng)絡(luò)功能,Socket實(shí)際上是網(wǎng)絡(luò)通信端點(diǎn)的一種抽象,它提供了一種發(fā)送和接收數(shù)據(jù)的機(jī)制。網(wǎng)絡(luò)通信,歸根結(jié)底是網(wǎng)絡(luò)端點(diǎn)間的通信,網(wǎng)絡(luò)接口程序的實(shí)現(xiàn)就是借助Linux所提供的Socket庫(kù)。Socket客戶端實(shí)現(xiàn)流程如圖3所示。
圖3 Socket客戶端實(shí)現(xiàn)流程
有線數(shù)字電視系統(tǒng)發(fā)展的一個(gè)明顯特點(diǎn)就是由傳統(tǒng)的單向廣播式向雙向交互式發(fā)展,開展多功能交互業(yè)務(wù)作為新的收入增長(zhǎng)點(diǎn),為電視觀眾提供了增強(qiáng)電視、電子節(jié)目指南、付費(fèi)電視、直接營(yíng)銷廣告、個(gè)人電視記錄和點(diǎn)播節(jié)目等互動(dòng)業(yè)務(wù)。
在點(diǎn)播業(yè)務(wù)中,機(jī)頂盒作為客戶端首先接收點(diǎn)播節(jié)目列表,然后通過網(wǎng)絡(luò)層的編程接口sendto函數(shù)實(shí)現(xiàn)向服務(wù)器發(fā)送點(diǎn)播請(qǐng)求,需要獲得點(diǎn)播返回信息才能知道本次點(diǎn)播是否成功,以及成功后對(duì)應(yīng)服務(wù)傳輸?shù)臅r(shí)間地址等信息。獲取這些信息后,才能在指定的時(shí)間和指定的地址上接收相應(yīng)的服務(wù)數(shù)據(jù)和通告數(shù)據(jù)。最后初始化顯示設(shè)置和啟動(dòng)瀏覽器,進(jìn)入點(diǎn)播業(yè)務(wù),機(jī)頂盒的點(diǎn)播過程如圖4所示。
圖4 VoD點(diǎn)播原理圖
VoD點(diǎn)播業(yè)務(wù)將調(diào)用以下的函數(shù),然后進(jìn)行播放與停止播放的操作:
ST_ErrorCode_t
PLAYREC_PlayInit (U32 PlayId,PLAYREC_PlayInit Params_t*PlayInitParams);
ST_ErrorCode_t
PLAYREC_PlayStart (U32PlayId,PLAYREC_PlayStartParams_t*PlayStartParams);
ST_ErrorCode_t
PLAYREC_PlayStop (U32PlayId,PLAYREC_PlayStop Params_t*PlayStopParams);
視頻點(diǎn)播的實(shí)驗(yàn)結(jié)果如圖5所示。
圖5 VoD點(diǎn)播界面
網(wǎng)絡(luò)瀏覽器完成的主要功能有瀏覽Web網(wǎng)頁(yè),下載音、視頻和圖形文件,機(jī)頂盒網(wǎng)絡(luò)升級(jí)等[4-5]。
本方案在參考一般瀏覽器結(jié)構(gòu)的基礎(chǔ)上,采用開放源代碼的Tops嵌入式瀏覽器,在Konqueror-Embedded瀏覽器的基礎(chǔ)上,使用MiniGUI代替了QT窗口系統(tǒng),優(yōu)化HTML解析和圖像解析模塊,并添加了OS適配層和API層。基于硬件系統(tǒng)STi7109芯片所支持的軟硬件資源,結(jié)合數(shù)字電視機(jī)頂盒的實(shí)際應(yīng)用特點(diǎn)對(duì)原有模型進(jìn)行了修改,最終保留4個(gè)主要的功能模塊:網(wǎng)絡(luò)模塊,解析模塊,布局模塊和顯示模塊。
設(shè)計(jì)本方案時(shí),瀏覽器最后的主要結(jié)構(gòu)如圖6所示。圖7給出了該瀏覽器移植到機(jī)頂盒平臺(tái)后訪問網(wǎng)站的顯示結(jié)果。
圖6 瀏覽器的結(jié)構(gòu)框圖
圖7 網(wǎng)絡(luò)瀏覽器界面
提出一種基于STi7109的網(wǎng)絡(luò)數(shù)字機(jī)頂盒,融合多媒體技術(shù)、數(shù)據(jù)壓縮技術(shù)、寬帶網(wǎng)絡(luò)技術(shù)等,簡(jiǎn)單介紹了機(jī)頂盒新型的VoD和網(wǎng)絡(luò)瀏覽器功能,由于嵌入式Linux的開源性和強(qiáng)大的網(wǎng)絡(luò)功能,新型的數(shù)字網(wǎng)絡(luò)機(jī)頂盒必將成為引導(dǎo)三網(wǎng)融合的主流方向。
[1]HALLINAN C.Embedded Linux primer[EB/OL].[2009-12-16].http∶//blogimg.chinaunix.net/blog/upfile2/080518181757.pdf.
[2]ST.STI7109-Low-cost HDTV set-top box decoder for H.264 and Microsoft WMA9-STMicroelectronics[EB/OL].[2009-12-20].http∶//pdf1.alldatasheet.com/datasheet-pdf/view/192665/STMICROELECTRONICS/STI7109.html.
[3]STEVENS W R,F(xiàn)ENNER B,RUDOFF A M.UNIX network programming[M].楊繼張,譯.北京:清華大學(xué)出版社,2005.
[4]庚錫昌.Tops嵌入式瀏覽器的設(shè)計(jì)與實(shí)現(xiàn)[D].廣州:暨南大學(xué),2007.
[5]劉撐乾,陳曉,王勁林.一種嵌入式瀏覽器在數(shù)字機(jī)頂盒中的實(shí)現(xiàn)[J].電視技術(shù),2004(5):52-54.