蔣東云
摘 要:IPTV對(duì)于實(shí)現(xiàn)媒體提供者和媒體消費(fèi)者互動(dòng)有著很大的價(jià)值,而且還可以配置多種功能來完成用戶的選擇,實(shí)現(xiàn)娛樂、教育及商務(wù)功能。本文圍繞著IPTV的軟件系繞、模塊功能及其實(shí)時(shí)操作系統(tǒng)Linux對(duì)于整個(gè)模塊的整體功能進(jìn)行設(shè)計(jì)。
關(guān)鍵字:IPTV;協(xié)議標(biāo)準(zhǔn);Linux
引言
信息通信技術(shù)的發(fā)展帶來了國家信息化戰(zhàn)略的大力推進(jìn),而且隨著這個(gè)時(shí)期的到來,IP技術(shù)的發(fā)展也非常的快速,我國互聯(lián)網(wǎng)寬帶技術(shù)都得到了較大的發(fā)展,而且互聯(lián)網(wǎng)在發(fā)展過程中,開始與一些傳統(tǒng)產(chǎn)業(yè)融合而形成了新的發(fā)展力量,比如在這個(gè)時(shí)期出現(xiàn)了網(wǎng)絡(luò)電視(IPTV),網(wǎng)絡(luò)電視就是互聯(lián)網(wǎng)技術(shù)與傳統(tǒng)的電視產(chǎn)業(yè)相互融合而形成的,這是一個(gè)全新的產(chǎn)業(yè),其優(yōu)勢(shì)在于不但超過了原先的電信運(yùn)營范圍,而且也超越了傳統(tǒng)的電視產(chǎn)業(yè)的運(yùn)營范圍,也就預(yù)示著一個(gè)電子互動(dòng)的娛樂市場(chǎng)的出現(xiàn)將無可避免,技術(shù)發(fā)展到一定的階段,催生了新的產(chǎn)業(yè),產(chǎn)業(yè)帶動(dòng)了整個(gè)市場(chǎng)的發(fā)展。
1、系統(tǒng)設(shè)計(jì)方案
被大眾所直接使用的IPTV機(jī)頂盒終端,它的功能主要是支持LAN和HDTV等網(wǎng)絡(luò)的傳輸,處理IP與音視頻流,以及解碼MPEG和WMV等,同時(shí)還支持認(rèn)證功能的使用,共同相互交互滿足管理中的訪問控制等。
如圖1所示,IPTV機(jī)頂盒的基本系統(tǒng)結(jié)構(gòu)可以分為前端和網(wǎng)絡(luò),以及接收端三個(gè)部分,每個(gè)部分都由一些關(guān)鍵設(shè)備組成,在完成相應(yīng)基本功能的同時(shí),也要保證IPTV電視業(yè)務(wù)的順利運(yùn)營。
目前許多的方案在接收端這方都是選取電機(jī)加STB的模式,這種模式要求STB從互聯(lián)網(wǎng)中能夠?qū)?shù)據(jù)流接收下來,在經(jīng)過處理后傳輸給電視機(jī)播放。因此,這種模式必須提供相應(yīng)的網(wǎng)卡接口。文章中所要講述的工作就是根據(jù)這種需求而產(chǎn)生。
2、嵌入式Linux平臺(tái)的系統(tǒng)搭建
Linux是一種現(xiàn)代的網(wǎng)絡(luò)操作系統(tǒng),是目前最新的一種操作技術(shù),如今有很多的嵌入式中應(yīng)用此操作系統(tǒng),是最為成功和完整的操作系統(tǒng)。由于它的優(yōu)良特性,使它成為了嵌入市場(chǎng)的佼佼者。其主要的特點(diǎn)有以下幾種:
(1)Linux擁有高效的內(nèi)核穩(wěn)定性
通過對(duì)Linux的應(yīng)用,可以證明它的內(nèi)核是非常精簡,并且擁有高效穩(wěn)定性的。由于內(nèi)核采用的是單內(nèi)核,還融入了微內(nèi)核的理念,結(jié)合了兩者的特點(diǎn),用戶還可以按照自己的需要進(jìn)行插入和移走,因此,此系統(tǒng)非常適合在嵌入式中被運(yùn)用。
(2)Linux開放源碼,且有豐富的軟件
Linux是開放源碼的操作系統(tǒng),并且擁有豐富的軟件可供用戶選擇。由于嵌入式的種類特別多,要進(jìn)行修改或優(yōu)化的話,必須要對(duì)應(yīng)具體的應(yīng)用才可以實(shí)行,因此,源碼的獲得就必須被重視。嵌入式在開發(fā)時(shí),只需要選擇對(duì)應(yīng)的軟件就可以不需要重新來過。
(3)Linux受到廣泛硬件的支持
Linux能夠支持的體系結(jié)構(gòu)有很多,并且在許多的硬件平臺(tái)中也有被移植。其中包括:ARM和X86,以及PowerPC和MIPS等。因此,也帶來了許多的吸引性。
3、基于LINUX平臺(tái)的開發(fā)
1)建立主機(jī)開發(fā)環(huán)境
嵌入式系統(tǒng)的開發(fā)流程一般是:
第一,在宿主機(jī)上搭建所需要的開發(fā)環(huán)境,進(jìn)行程序編碼;
第二,宿主機(jī)同目標(biāo)機(jī)建立連接,將應(yīng)用程序下載到目標(biāo)機(jī)上進(jìn)行交叉編譯;
第三,經(jīng)過調(diào)試之后,將應(yīng)用程序下載到目標(biāo)機(jī)中運(yùn)行。
如圖2所示。嵌入式的平臺(tái)有硬件和軟件兩種。硬件中有宿主機(jī)和顯示設(shè)備,以及目標(biāo)機(jī)等;軟件中有連接器和編輯器,以及調(diào)試器等。在IPTV機(jī)頂盒開發(fā)環(huán)境系統(tǒng)中,硬件中的宿主機(jī):Intel X86、Linux系統(tǒng)的PC;目標(biāo)機(jī):PNX8550(MIPS內(nèi)核)處理器。局域網(wǎng)的建立與DHCP服務(wù)都是由路由器來完成的,而輸出設(shè)備則是電視機(jī)。
2 )內(nèi)核編譯及文件系統(tǒng)設(shè)計(jì)
軟件的編譯是在Linux中進(jìn)行的,由于目標(biāo)板只可以運(yùn)行程序不可以編輯程序,因此,編譯的工作只能在Linux中進(jìn)行操作。本系統(tǒng)的編譯過程是:
tar xfz Mips-2011-10-15.zip
sudo./install-d/opt/eldk-4.1
正確安裝路徑,對(duì)環(huán)境的變量設(shè)定成CROSS-COMPILE-BASE與CROSS-COMPILE-PREFIX。
其安裝的步驟如下:
tar xf stb810_tarballs-SP7.tar
tar xfz stb810_base-SP7_RC3.tgz
嵌入式Linux內(nèi)核與所對(duì)應(yīng)的文件,是在工具鏈及軟件包完成安裝以后才能進(jìn)行的步驟。其具體的操作方法如下:
source./setup.sh
prjmake clean
prjmake all
嵌入式和硬件、處理器都是有著一定相互的關(guān)系的。為了達(dá)到硬件和系統(tǒng)的獨(dú)立,此次的設(shè)計(jì)是利用IPTV中的軟件分層來滿足條件的。此分層的中心是嵌入式的Linux,當(dāng)設(shè)計(jì)有問題的時(shí)候,Linux對(duì)問題程序進(jìn)行更正就可以了。但是要注意的是能夠不被變換的是中間層與應(yīng)用層。因此,不僅提高了對(duì)代碼的重復(fù)使用減少了更改,還在時(shí)間上得到了節(jié)省。
實(shí)時(shí)的操作系統(tǒng)與硬件程序是安裝在資源軟件中的,以實(shí)現(xiàn)對(duì)硬件設(shè)備的操作,在應(yīng)用層中通過內(nèi)置與下載的應(yīng)用程序,CPU的指令通過解釋層翻譯識(shí)別,并結(jié)合硬件設(shè)備共同實(shí)現(xiàn)操作視頻點(diǎn)播和DRM,以及下載等應(yīng)用的完成。由于Linux有網(wǎng)絡(luò)和塊設(shè)備文件,以及字符設(shè)備文件,是通過寫入和讀寫,以及訪問接口的方式進(jìn)行的塊。在對(duì)其進(jìn)行設(shè)備的辨別后,對(duì)不相同的設(shè)備采用命令mknod進(jìn)行創(chuàng)建即可,但是要對(duì)創(chuàng)建的設(shè)備號(hào)進(jìn)行主次的備號(hào),并與之同類程序的劃分和對(duì)應(yīng),在使用的過程中,位置的不一樣,方式的不一樣,或是操作的程序不一樣等。如圖3所示。
一般來說,設(shè)備驅(qū)動(dòng)的開發(fā)流程是要對(duì)設(shè)備號(hào)進(jìn)行主次的設(shè)定,進(jìn)行初始化的程序和函數(shù)的清除、對(duì)所需要的函數(shù)進(jìn)行操作,以及對(duì)數(shù)據(jù)結(jié)構(gòu)file-operations定義后才能實(shí)現(xiàn)的。在結(jié)構(gòu)中,每個(gè)成員的調(diào)用都有自己各自與其對(duì)應(yīng)的系統(tǒng)進(jìn)行操作的時(shí)候,系統(tǒng)自動(dòng)找到與之對(duì)應(yīng)的程序進(jìn)行數(shù)據(jù)的讀取,并將控制的權(quán)利賦予函數(shù),注意所讀取的數(shù)據(jù)是屬于函數(shù)指針的。在程序中定義函數(shù)并實(shí)現(xiàn)操作。
LIFOlnitialize(&SISectionLargeDataList);//初始化一個(gè)列表SISectionLargeDataList
for(i=0;i { LIFOPush(&SISubTableList,i); } for(i=0;i //為SISectionSmallDataList關(guān)聯(lián) //和定義存儲(chǔ)空間。每個(gè)存儲(chǔ)空間為 //1024字節(jié),總共20*1024字節(jié)。 { SISectionSmaUData[i].data=SISectionSmallDataBuffers[i]; LIFOPush(&SlSeetionSmfllDataLisL(UINT32)&SISectionSmallData[i]); } 4、結(jié)論 本文從軟件分層的角度闡述了IPTV機(jī)頂盒軟件架構(gòu)。研究了Linux下驅(qū)動(dòng)程序的開發(fā)過程和Linux APIs,討論了應(yīng)用軟件的設(shè)計(jì)方案,實(shí)踐證明Linux操作系統(tǒng)在穩(wěn)定性和可用性上是完全適合在本方案中是選 用的。 參考文獻(xiàn) [1]李善平,劉文峰,王煥龍等.Linux與嵌入式系統(tǒng)[M].北京:清華大學(xué)出版社,2003.52-67 [2]張鄭擎,胡源.IPTV業(yè)務(wù)特點(diǎn)和相關(guān)技術(shù)[J].現(xiàn)代電信科技.2005.05 [3] 李帆,黃桂金.基于B/S架構(gòu)的IPTV機(jī)頂盒的GUI的設(shè)計(jì)與實(shí)現(xiàn)[J].廣東通信技術(shù).2005(12):41-43