基于EM8620的IPTV機(jī)頂盒設(shè)計(jì)
傳統(tǒng)的電視業(yè)務(wù)一致采用單向廣播模式運(yùn)營(yíng),隨著科技的進(jìn)步,人們?cè)絹?lái)越希望在電視中實(shí)現(xiàn)雙向交互功能,通過(guò)交互通信,運(yùn)營(yíng)商能夠及時(shí)地得知用戶的需求,而終端用戶也可以改變以往單一被動(dòng)的信息接收模式,更多地參與到業(yè)務(wù)運(yùn)營(yíng)中。近期iptv(網(wǎng)絡(luò)電視)的出現(xiàn),使這愿望成為可能,它作為電視和網(wǎng)絡(luò)通信技術(shù)的融合,以ip為傳送通道,能夠向用戶提供包括電視在內(nèi)的更為廣泛的多種交互式視音頻服務(wù)。
在iptv的系統(tǒng)中,用戶終端機(jī)頂盒是一個(gè)非常關(guān)鍵的設(shè)備,它不但是收看電視節(jié)目的終端,而且還是一個(gè)信息匯聚、交互的平臺(tái),被認(rèn)為是構(gòu)成未來(lái)家庭多媒體中心的重要組成部分,本文介紹一種基于em8620芯片的iptv機(jī)頂盒設(shè)計(jì)方案,該方案能夠通過(guò)網(wǎng)絡(luò)實(shí)現(xiàn)交互電視業(yè)務(wù),支持mpeg2、mpeg4、vc-1(wmv9)、real等多種視頻壓縮標(biāo)準(zhǔn)解碼,具有電視節(jié)目錄制、數(shù)字版權(quán)保護(hù)、dvd播放等多種功能。
1 硬件設(shè)計(jì)
1.1 設(shè)計(jì)要求分析
通過(guò)為iptv業(yè)務(wù)特性的詳細(xì)分析,總結(jié)出fpga機(jī)頂盒硬件設(shè)計(jì)方面的四項(xiàng)要求:
(1)具有網(wǎng)絡(luò)接入功能,能夠利用lan、dsl等方式接入到互聯(lián)網(wǎng)、支持tcp/ip、ftp、rtp、rtsp、rtcp、igmp多種網(wǎng)絡(luò)協(xié)議。
(2)支持多種視頻壓縮格式,目前mpeg2、mpeg4、vc-1等標(biāo)準(zhǔn)在iptv中都有使用,有些運(yùn)營(yíng)商甚至是在交叉使用,這與傳統(tǒng)數(shù)字電視采用單一的mpeg2標(biāo)準(zhǔn)情況大相徑庭。因此,設(shè)計(jì)的機(jī)頂盒能支持的壓縮標(biāo)準(zhǔn)越多,業(yè)務(wù)開展就越靈活,產(chǎn)品的使用范圍就越廣泛。
(3)具有完善的增殖業(yè)務(wù)設(shè)計(jì),其中包括視頻點(diǎn)播、電子表決、互動(dòng)游戲、網(wǎng)絡(luò)瀏覽、網(wǎng)絡(luò)游戲等,增殖業(yè)務(wù)是網(wǎng)絡(luò)電視獲取利潤(rùn)的關(guān)鍵,所以設(shè)計(jì)機(jī)頂盒時(shí)要充分考慮到各種增殖業(yè)務(wù)的擴(kuò)展應(yīng)用。
(4)選擇低成本的專用硬件平臺(tái)。機(jī)頂盒不同于通用計(jì)算機(jī),他是一個(gè)嵌入式系統(tǒng),低成本、低功耗和穩(wěn)定性是硬件設(shè)計(jì)要遵循的原則,一些早期的iptv機(jī)頂盒設(shè)計(jì)方案采用了基于intel的高性能通用處理器架構(gòu),雖然性能很好,但是在功耗和成本方面最終很難被市場(chǎng)和運(yùn)營(yíng)商認(rèn)可。
1.2 em8620硬件平臺(tái)
設(shè)計(jì)方案中采用一個(gè)低成本但功能相對(duì)豐富的集成芯片--em8620作為硬件平臺(tái),它是sigma designs公司專門針對(duì)數(shù)字視頻通信設(shè)計(jì)的最新一款多格式解碼芯片、內(nèi)嵌166mhz的32位rsic處理器,具有豐富的音視頻接口,此外還包括pci總線控制器和ide總線接口,依托二者能夠?qū)崿F(xiàn)網(wǎng)絡(luò)接入、usb外設(shè)和ide外設(shè)(如硬盤、光驅(qū))訪問(wèn)等功能。圖1是該芯片的邏輯單元框圖,其主要功能和特點(diǎn)包括:
(1)能夠同時(shí)支持兩路標(biāo)準(zhǔn)清晰度電視節(jié)目解碼,實(shí)現(xiàn)畫中畫。;
(2)視頻支持mpeg2、mpeg4標(biāo)清和高清解碼,支持vc-1和real的標(biāo)清解碼;
(3)支持dvd格式信號(hào)解碼;
(4)音頻支持dolby ac3,mpeg1和mpeg2的層1、2、3,mpeg2的bc多聲道層1、2、3,mpeg2 aac,mpeg4
aac,windows wma;
(5)具有自適應(yīng)去隔行功能;
(6)具有去閃爍濾波的osd功能,色彩支持32比特/像素;
(7)具有視頻、osd、子圖像和光標(biāo)等4個(gè)圖像層;
(8)具有pci2.1的總線控制接口;
(9)采用2d圖形加速;
(10)具有ide接口,能夠連接光驅(qū)和硬盤設(shè)備,實(shí)現(xiàn)電視錄像和程序存儲(chǔ);
(11)具有ntsc/pal復(fù)合視頻及s-video分量輸出,帶有可選的macrovision防錄制保護(hù);
(12)具有ypbpr/rgb分量視頻輸出,帶有可選的macrovision防錄制保護(hù);
(13)具有3路i2s串行數(shù)字pcm音頻輸出,實(shí)現(xiàn)5.1聲道環(huán)繞聲;
(14)具有spdif(iec60958)數(shù)字音頻輸出。
1.3 設(shè)計(jì)原理
遵循iptv機(jī)頂盒的設(shè)計(jì)要求,以em8620為核心的硬件設(shè)計(jì)原理框圖如圖2所示,它包括多個(gè)不同的數(shù)據(jù)處理模塊。
1.3.1 pci總線
pci總線上連接有一個(gè)10/100m的以太網(wǎng)控制器(ctl8100)和一個(gè)usb2.0主控制器(vt6212)用于實(shí)現(xiàn)網(wǎng)絡(luò)接入及usb設(shè)備接入功能。
1.3.2 10/100m以太網(wǎng)控制器
10/100m以太網(wǎng)控制器采用realtek公司的rtl8100,它是一個(gè)高度集成的低成本單片以太網(wǎng)控制器,該控制器具有acpi電源功能和網(wǎng)絡(luò)喚醒功能,通過(guò)使用魔術(shù)包(magic
packet)和喚醒幀的方式可以很方便地實(shí)現(xiàn)網(wǎng)絡(luò)管理和維護(hù),因此使用它可以實(shí)現(xiàn)非常理想的嵌入式網(wǎng)絡(luò)解決方案,同時(shí)它還具有pci/mini-pci接口和10/100mhz網(wǎng)絡(luò)帶寬自適應(yīng)功能,并兼容pci2.2和pc99/pc2001、pci存儲(chǔ)空間或i/o空間映射數(shù)據(jù)傳輸?shù)绕渌δ堋?
1.3.3 usb2.0主控制器
usb2.0主控制器采用威盛公司的vt6212,它是一個(gè)四端口usb2.0控制芯片,能支持高達(dá)480mbps的傳輸速度,并采用動(dòng)態(tài)中止時(shí)序控制(dynamic
stop clock control)降低功耗。vt6212利用主機(jī)端控制接口(enhanced host controller
interface)方式提供高速數(shù)據(jù)傳輸,利用通過(guò)控制芯片接口(universal host controller interface)方式向下兼容低速的usb1.1數(shù)據(jù)傳輸,此外tv6212也支持32-bit卡總線模式、可搭配pcmcia接口作為usb
2.0集線器,增加外設(shè)的接入數(shù)量。
1.3.4 視頻輸出
em8620能夠提供模擬和數(shù)字兩種視頻信號(hào)輸出,模擬視頻采用復(fù)合(cvbs)、分量(s-video和yprpb)方式直接輸出,輸出中都可采用macrovision技術(shù)進(jìn)行防盜版錄制保護(hù)。數(shù)字視頻(24bit
rgb)連接到dvi信號(hào)合成芯片(sil164),編碼為dvd格式后輸出。
1.3.5 dvi信號(hào)合成
dvi是目前使用非常廣泛的數(shù)字視頻接口,既可以適應(yīng)于高/標(biāo)清數(shù)字電視顯示、也可以用于普通的電腦監(jiān)視器顯示。此處選擇silicon
image公司的sil164實(shí)現(xiàn)dvi信號(hào)合成和發(fā)送。sil164采用paneilink數(shù)字技術(shù)設(shè)計(jì),支持從vga到uxga(640×480-1600×1200)的清晰度顯示范圍,數(shù)據(jù)速率范圍為25-165mbps,具有12bit(半像素時(shí)鐘沿)和24bit(真彩色支持)兩種設(shè)計(jì)模式,同時(shí)支持i2c總線控制,具有熱插拔特性,完全兼容dvi1.0規(guī)范。
1.3.6 音頻輸出
em8620可提供三路i2s和一路spdif等兩種串行數(shù)字音頻信號(hào),其中每路i2s信號(hào)承載兩個(gè)聲道的pcm數(shù)據(jù),三路i2s信號(hào)連接到音頻dac后,轉(zhuǎn)換為6路模擬音頻,用于實(shí)現(xiàn)dolby
ac3的5.1聲道環(huán)繞聲;spdif串行數(shù)字信號(hào)直接輸出,可承載兩路pcm音頻或壓縮的5.1 聲道dolby ac3音頻。
1.3.7 外設(shè)總線
外設(shè)總線上連接有ide硬盤、dvd光驅(qū)和flash存儲(chǔ)器,ide硬盤用于實(shí)現(xiàn)個(gè)人錄像機(jī)功能,用戶可以將播放的電路節(jié)目方便地存儲(chǔ)到ide硬盤,同時(shí)也可以用于存儲(chǔ)通過(guò)增殖業(yè)務(wù)從網(wǎng)絡(luò)上下載的各類其他數(shù)據(jù);dvd光驅(qū)可使機(jī)頂盒實(shí)現(xiàn)dvd播放功能,flash存儲(chǔ)器的作用非常重要,用于存儲(chǔ)整個(gè)機(jī)頂盒的操作系統(tǒng)軟件。雖然也可以將操作系統(tǒng)安裝到ide硬盤,但是ide硬盤的穩(wěn)定性遠(yuǎn)不如flash存儲(chǔ)器,并且還會(huì)受到其他應(yīng)用程序,特別是病毒的攻擊,非常容易造成系統(tǒng)崩潰。
1.3.8 fp/vfd和紅外信號(hào)接收
fp/vfd用于機(jī)頂盒的前面板控制和狀態(tài)顯示,紅外信號(hào)接收用于接收遙控器發(fā)送的控制信號(hào)。
1.3.9 uart
雖然iptv具有雙向業(yè)務(wù)通道,能夠采用認(rèn)證的方式實(shí)現(xiàn)節(jié)目的版權(quán)保護(hù),但是考慮到目前數(shù)字電視中的條件接收到多采用智能卡方式,為保護(hù)系統(tǒng)的兼容性,此處仍然設(shè)計(jì)有基于uart的智能卡通信模塊,用于支持使用智能卡進(jìn)行密鑰解密的工作方式。
2 軟件設(shè)計(jì)
軟件主要包括嵌入式的操作系統(tǒng)和各類驅(qū)動(dòng)及應(yīng)用軟件。由于當(dāng)前l(fā)inux有著優(yōu)良的可移植性和廣泛的兼容性,因此在本方案中操作系統(tǒng)采用μclinux實(shí)現(xiàn),而應(yīng)用軟件主要包括電子節(jié)目指南、數(shù)字版權(quán)保護(hù)和條件接收、瀏覽器、圖形用戶界面、軟件解碼模塊等。
2.1 嵌入式操作系統(tǒng)
μclinux是面向mmu(內(nèi)存管理單元)設(shè)計(jì)的嵌入式操作系統(tǒng)。內(nèi)核由linux2.0 kernel發(fā)展而來(lái),同標(biāo)準(zhǔn)linux相比,它繼承了原有的工作穩(wěn)定性強(qiáng)、網(wǎng)絡(luò)功能強(qiáng)大等主要優(yōu)點(diǎn)。此外,它具有占用空間小、執(zhí)行效率高等特點(diǎn),由于iptv機(jī)頂盒需要實(shí)現(xiàn)各種基于網(wǎng)絡(luò)的增殖業(yè)務(wù),因此對(duì)于網(wǎng)絡(luò)通信協(xié)議的需求比較廣泛,μclinux包括tcp/ip等多種網(wǎng)絡(luò)協(xié)議,能夠支持當(dāng)前各種基于ip的業(yè)務(wù),同時(shí)它還具有良好的開放性,任何新協(xié)議都可以很方便地加入到內(nèi)核中,具備了持續(xù)升級(jí)的可擴(kuò)展能力。
在使用μclinux進(jìn)行軟件設(shè)計(jì)時(shí),一個(gè)需要著重考慮的問(wèn)題是內(nèi)存管理,由于em8620沒(méi)有mmu管理存儲(chǔ)器,因此μclinux不能使用虛擬內(nèi)存管理技術(shù),內(nèi)存訪問(wèn)應(yīng)采用直接尋址方式,所有程序訪問(wèn)的地址都是實(shí)際的物理地址,操作系統(tǒng)內(nèi)存空間失去保護(hù)后,系統(tǒng)內(nèi)各個(gè)進(jìn)程實(shí)際上是共享同一個(gè)內(nèi)存空間,因此在設(shè)計(jì)多進(jìn)程任務(wù)時(shí)就需要特別注意進(jìn)行內(nèi)存保護(hù),防止程序操作越界溢出。具體而言,就是在每個(gè)進(jìn)程初始化時(shí),μclinux會(huì)根據(jù)用戶的申請(qǐng)分配一段連續(xù)的堆棧地址空間,而后該進(jìn)程中所有的數(shù)據(jù)操作都在此內(nèi)存空間內(nèi)完成,所以開發(fā)人員必須對(duì)每個(gè)任務(wù)進(jìn)程所需的最大內(nèi)存空間做出正確估計(jì)和分配,一旦生成的數(shù)據(jù)空間大于所分配的內(nèi)存空間,就會(huì)產(chǎn)生內(nèi)存溢出,侵犯其他程序的地址空間,從而導(dǎo)致程序的運(yùn)行異常,嚴(yán)重者將導(dǎo)致系統(tǒng)崩潰。
傳統(tǒng)linux最大的缺點(diǎn)之一是,系統(tǒng)非正常關(guān)閉后,經(jīng)常會(huì)產(chǎn)生硬盤碎片,使操作系統(tǒng)無(wú)法正常引導(dǎo)啟動(dòng),此處,將μclinux編譯后燒寫到flash上采用flash內(nèi)核啟動(dòng)方式,避免了上述缺點(diǎn)。
2.2 應(yīng)用軟件
2.2.1 電子節(jié)目指南
電子節(jié)目指南是用戶獲取電視節(jié)目播出信息的直接途徑,從現(xiàn)有數(shù)字電視用戶的調(diào)查中發(fā)現(xiàn),電子節(jié)目指南是當(dāng)前最受用戶歡迎的功能,電子節(jié)目指南一般包括電視節(jié)目單、節(jié)目簡(jiǎn)介、當(dāng)前節(jié)目信息顯示、節(jié)目預(yù)定等多個(gè)環(huán)節(jié),通常它的設(shè)計(jì)采用基于中間件或定制編寫軟件模塊的方式實(shí)現(xiàn),過(guò)程復(fù)雜、靈活度差。此處采用基于瀏覽器的電子節(jié)目指南設(shè)計(jì),電視節(jié)目信息以html方式或xml方式傳送,機(jī)頂盒接收后利用瀏覽器顯示給用戶觀看,其風(fēng)格和瀏覽方式都具有很強(qiáng)的靈活性,由于其他類型的增殖業(yè)務(wù)如網(wǎng)絡(luò)瀏覽、電視購(gòu)物等方式都需要瀏覽器,因此使用瀏覽器不會(huì)增加系統(tǒng)的額外開銷。
2.2.2 數(shù)字版權(quán)保護(hù)
數(shù)字版權(quán)保護(hù)設(shè)計(jì)分為兩種,一種是針對(duì)已錄制節(jié)目的保護(hù),另一種是針對(duì)實(shí)時(shí)播出節(jié)目的保護(hù),由于機(jī)頂盒具有個(gè)人錄像機(jī)功能,用戶能夠方便地將實(shí)時(shí)播出的電視節(jié)目錄制到硬盤上,并通過(guò)usb接口拷貝出去進(jìn)行散發(fā)。為防止這種盜版拷貝的情況發(fā)生,設(shè)計(jì)了嚴(yán)格的數(shù)字版權(quán)保護(hù)模塊,當(dāng)用戶進(jìn)行錄像時(shí),對(duì)存儲(chǔ)到硬盤的節(jié)目進(jìn)行加密處理,加密密鑰由每個(gè)機(jī)頂盒特有的硬件信息生成,這樣即使將節(jié)目拷貝到其他同類型機(jī)頂盒中也不能進(jìn)行播放,從而實(shí)現(xiàn)了嚴(yán)格的版權(quán)保護(hù)功能,對(duì)于實(shí)時(shí)播出的加密節(jié)目,沿用了基于智能卡的工作方式,首先提取ip網(wǎng)絡(luò)傳送過(guò)來(lái)的密鑰數(shù)據(jù)流,通過(guò)uart接口送到智能卡中進(jìn)行解密,解密后控制字存儲(chǔ)在內(nèi)存中使用后即刻銷毀,防止盜取和破解。
2.2.3 圖形用戶界面
為方便地對(duì)ide硬盤及其他接口進(jìn)行操作,此處為用戶提供了圖形用戶界面,它采用minigui引擎,界面啟動(dòng)后,用戶可以通過(guò)遙控器或連接usb鼠標(biāo)/鍵盤非常方便地進(jìn)行操作。
除了上述應(yīng)用軟件外,還可支持各種java、flash程序運(yùn)行,便于實(shí)現(xiàn)電視購(gòu)物、在線游戲等功能,此外其包括wmv9、real等一系列多媒體播放程序,用于各種類型的網(wǎng)絡(luò)音視頻節(jié)目及本地的dvd光盤播放。
2.3 軟件調(diào)試
軟件調(diào)試分為內(nèi)核調(diào)試和應(yīng)用程序調(diào)試兩個(gè)步驟。
2.3.1 內(nèi)核調(diào)試
內(nèi)核調(diào)試的一個(gè)簡(jiǎn)單方法是利用jtag燒寫器直接將μclinux寫入到flash中,這種調(diào)試過(guò)程需要反復(fù)擦寫flash,過(guò)程較煩瑣,而且浪費(fèi)時(shí)間,為了克服上述缺點(diǎn),此處為em8620編寫了一個(gè)bootloader程序,通過(guò)以太網(wǎng)將μclinux下載到內(nèi)存中運(yùn)行。內(nèi)核調(diào)試穩(wěn)定后再燒寫到flash,如此可以有效地簡(jiǎn)化整個(gè)調(diào)試過(guò)程,提高工作效率。
2.3.2 應(yīng)用程序調(diào)試
應(yīng)用程序的開發(fā)和調(diào)試采用兩種方式,一種是對(duì)功能和消耗資源較少的程序,采用telnet方式通過(guò)以太網(wǎng)連接到機(jī)頂盒上直接開發(fā)調(diào)試。由于μclinux支持多用戶工作方式,因此多個(gè)不同開發(fā)人員可同時(shí)登陸到系統(tǒng)內(nèi)進(jìn)行各自調(diào)試而互不影響,但是作為一個(gè)嵌入式處理器,em8620的運(yùn)算能力畢竟有限,如果任務(wù)過(guò)多會(huì)影響調(diào)試速度,為此,消耗資源較大的應(yīng)用程序需采用交叉編譯的方法,即程序的調(diào)試和編譯在速度較快的pc機(jī)上完成,然后利用gnu工具交叉編譯為基于μclinux的目標(biāo)代碼,再通過(guò)以太網(wǎng)傳送到機(jī)頂盒中運(yùn)行。
當(dāng)前,iptv的發(fā)展正如火如荼,各地電視和電信運(yùn)行商都在加大力度進(jìn)行iptv建設(shè),未來(lái)幾年對(duì)于iptv機(jī)頂盒的需求將迅速擴(kuò)大,本文實(shí)現(xiàn)的這種基于em8620的iptv機(jī)頂盒,具有豐富的功能接口,并可支持高清及標(biāo)清多種視頻格式解碼,符合未來(lái)iptv業(yè)務(wù)發(fā)展的技術(shù)要求,是一個(gè)可長(zhǎng)期有效的解決方案。
評(píng)論