基于STB7100的高清IPTV機(jī)頂盒總設(shè)計(jì)方案
標(biāo)簽:STB7100 IPTV
引言
IPTV利用計(jì)算機(jī)或機(jī)頂盒+電視作為接收終端,完成的業(yè)務(wù)包括電視直播、視頻點(diǎn)播、時(shí)移電視、網(wǎng)絡(luò)瀏覽、信息服務(wù)、互動(dòng)游戲,以及未來(lái)可擴(kuò)充的業(yè)務(wù)[1]。隨著寬帶用戶的增多,以影視服務(wù)為主的寬帶流媒體服務(wù)成為寬帶增值業(yè)務(wù)中的重要服務(wù)。與此同時(shí),人們對(duì)高質(zhì)量高清晰影音服務(wù)的需求使得高清發(fā)展成為必然趨勢(shì)。因此,高清與IVI'V的結(jié)合必將成為當(dāng)前寬帶網(wǎng)絡(luò)上最具發(fā)展?jié)摿?、最具盈利前景的熱點(diǎn)寬帶增值應(yīng)用之一。
2 IPTV機(jī)頂盒總體設(shè)計(jì)
根據(jù)高清IPTV機(jī)頂盒所具備的功能,綜合考察ST,Broadcom等幾大主流IPTV芯片廠商的方案以及目前的市場(chǎng)狀況,筆者選擇ST公司的STB7100芯片進(jìn)行設(shè)計(jì)[2]。該產(chǎn)品是世界上第一個(gè)支持H.264/AVC和MPEG一2高清標(biāo)準(zhǔn)的單芯片解決方案,單片集成了高性能多標(biāo)準(zhǔn)的視頻解碼電路和機(jī)頂盒所需的全部功能。STB7100芯片是sTB710x系列中性?xún)r(jià)比很高的一款產(chǎn)品,在一個(gè)單片上集成了STB的所有功能和多標(biāo)準(zhǔn)解碼電路,可同時(shí)解碼多個(gè)高清視頻流,并把合成的視頻輸出到2個(gè)電視機(jī),或以畫(huà)中畫(huà)的形式顯示到屏幕上。STB7100芯片提供了整套解決方案,嵌入式操作系統(tǒng)可采用Linux,OS21,WinCE中任一種,為上層的軟件開(kāi)發(fā)提供了更大的選擇余地。
3 IPTV機(jī)頂盒硬件結(jié)構(gòu)設(shè)計(jì)
根據(jù)系統(tǒng)要求制定了硬件結(jié)構(gòu)總體框架圖,如圖l所示,選用專(zhuān)用的機(jī)頂盒解碼芯片作為主控CPU,并設(shè)計(jì)CPU的外圍電路和必要的功能電路[3]。本地存儲(chǔ)器接口模塊(Local Memory Interface,LMI)的32位DDR存儲(chǔ)器用于系統(tǒng)運(yùn)行和音視頻數(shù)據(jù)存儲(chǔ);外部存儲(chǔ)器接口模塊(External Memory Interface,EMI)提供了對(duì)各種外設(shè)的支持,包括Flash,ROM和網(wǎng)卡等。其中,網(wǎng)口模塊用于完成接收及處理IP數(shù)據(jù)和音視頻流功能;音視頻輸出模塊完成音視頻信號(hào)的輸出功能;電源模塊負(fù)責(zé)芯片及整個(gè)系統(tǒng)的供電;外部接口完成CPU對(duì)各功能模塊的信號(hào)傳輸?shù)目刂乒δ堋?/p>
3.1機(jī)頂盒核心處理芯片STB7100
sTB7100是一款高性能、單芯片集成的音視頻解碼的媒體處理器,其主要模塊有:
1)處理器核心器件
主頻為266 MHz的高性能ST40是器件的CPU核心,屬于ST的32 bit RISC系列,采用SuperH體系結(jié)構(gòu),負(fù)責(zé)控制芯片的其他部分,包括與2個(gè)ST231CPU之間的通信。此外,還有2個(gè)主頻都是400 MHz的ST231CPU用于處理音頻和視頻。
2)視頻解碼模塊及接口
sTB7100支持多種視頻解碼標(biāo)準(zhǔn),包括H.264/AVC,MPEG一2雙向解碼標(biāo)準(zhǔn)。分辨力最高支持1 920×1 080i或l 920×720p。同時(shí),STB7100擁有D1標(biāo)清輸入、RGB/YPbPr/YC/CBS模擬的高清和標(biāo)清輸出等多種視頻接口,還集成了高帶寬數(shù)字媒體接口(HDMI)和高清晰內(nèi)容復(fù)制保護(hù)接口(HDCP)。
3)音頻解碼模塊及接口
采用1個(gè)400 MHz的ST231 CPU作為解碼器,兼容所有通用的音頻標(biāo)準(zhǔn)。音頻流輸入可以是I2S格式的PCM數(shù)字輸入或經(jīng)過(guò)內(nèi)存的傳輸子系統(tǒng)內(nèi)部源輸入。輸出接口包括S/PDIF串行數(shù)字音頻輸出和24 bit立體聲模擬輸出。
4)其他外設(shè)接口
STB7100提供了豐富的外設(shè)接口供選擇,包括UART接口、紅外接口、SmartCard接口以及1個(gè)串行ATA(SATA)硬盤(pán)接口和1個(gè)USB2.0主控制器端口。
3.2本地存儲(chǔ)器接口模塊(LMI)
為滿足不同類(lèi)型視頻的要求,必須有足夠的內(nèi)存空間用于存儲(chǔ)和解碼視音頻流。LMI選擇64 Mbyte大小的內(nèi)存用于H.264解碼或MEPG一2雙向解碼,其連接方式如圖2所示。
其中,DDR的內(nèi)部塊尋址由BAO和BAl決定,可尋址4個(gè)內(nèi)存塊,即一個(gè)內(nèi)存芯片存在4個(gè)Bank。A0一A12用于對(duì)塊內(nèi)行地址進(jìn)行尋址,AO~A8用于對(duì)塊內(nèi)列地址進(jìn)行尋址,所以每個(gè)芯片的容量為32 Mbyte。由于每個(gè)內(nèi)存芯片的位寬是16位,CPU的數(shù)據(jù)位寬是32位,為了和CPU保持協(xié)同工作,必須傳輸和CPI.I總線位寬一致的數(shù)據(jù)量,所以需要2個(gè)內(nèi)存芯片,以達(dá)到32位數(shù)據(jù)寬度。2個(gè)32 Mbyte內(nèi)存芯片同時(shí)工作,用同一個(gè)片選信號(hào)CS控制,也用相同的BA0和BAl信號(hào)來(lái)控制Bank的選擇。
3.3外部存儲(chǔ)器接口模塊(EMI)
EMI是sT芯片用來(lái)支持一般用途的外部存儲(chǔ)器接口,被分成5個(gè)Bank,允許系統(tǒng)支持各種類(lèi)型的存儲(chǔ)器、外部處理器接口和其他設(shè)備,通過(guò)5個(gè)不同的片選信號(hào)訪問(wèn)5種不同的設(shè)備。系統(tǒng)中提供了FLASh{和網(wǎng)卡兩種類(lèi)型的設(shè)備。下面分別介紹這兩種設(shè)備:
1)FLASH是用于存儲(chǔ)U-boot引導(dǎo)代碼、內(nèi)核以及文件系統(tǒng)的設(shè)備,其首地址默認(rèn)為系統(tǒng)上電時(shí)的起始地址。FLASH采用了ST公司的M58LW064D,它是一個(gè)64Mbyte FLASH存儲(chǔ)器,采用0.15μm NOR工藝,使用2.7~3.6 V單電源。存儲(chǔ)器被分成可單獨(dú)擦除的64塊,每塊1 Mbyte。編程和擦除命令通過(guò)接口寫(xiě)進(jìn)存儲(chǔ)器,在實(shí)際應(yīng)用中,通過(guò)U-boot下的cp,erase和protect命令對(duì)FLASH進(jìn)行寫(xiě)入、擦除和保護(hù)操作;狀態(tài)存儲(chǔ)器提供了各種操作的狀態(tài)信息;存儲(chǔ)器寫(xiě)緩沖區(qū)允許處理器以并行方式編程l~16 byte。為了能對(duì)其他塊進(jìn)行編程、擦除,正在編程的塊可先掛起,然后恢復(fù);塊保持功能使被保護(hù)的塊不能編程和擦除。上電時(shí),所有塊均被保護(hù),塊保護(hù)命令可用于保護(hù)或中止保護(hù)某些塊。當(dāng)編程、擦除能使Vpen低電平時(shí),則阻止了所有編程和擦除。STS信號(hào)可被設(shè)置為準(zhǔn)備好/忙(RY/BY)兩種模式,高電平為準(zhǔn)備好,低電平為忙,在這里設(shè)置為高電平,始終為準(zhǔn)備好狀態(tài)。 2)在綜合考慮功能和價(jià)格等各個(gè)方面的因素后,采用了DAVICOM公司高性?xún)r(jià)比的DM9000AE快速以太網(wǎng)控制處理器作為網(wǎng)絡(luò)接口,其電路原理圖如圖3所示。其中網(wǎng)絡(luò)變壓器用的是PPT公司的PM34-1006M,本身不支持AUTO MDIX,所以需要將CTp0與CTsl,CTsO與CTpl連起來(lái)。
4 IPTV機(jī)頂盒軟件結(jié)構(gòu)設(shè)計(jì)
考慮到成本和通用性,機(jī)頂盒采用Linux操作系統(tǒng)。嵌入式操作系統(tǒng)負(fù)責(zé)機(jī)頂盒系統(tǒng)的全部軟件和硬件資源的分配、調(diào)度工作,控制并協(xié)調(diào)并發(fā)活動(dòng),能通過(guò)裝卸某些模塊來(lái)達(dá)到系統(tǒng)所要求的功能。圖4表示了系統(tǒng)的軟件結(jié)構(gòu),以Linux操作系統(tǒng)為核心,向下通過(guò)各個(gè)驅(qū)動(dòng)程序面向硬件系統(tǒng),調(diào)配各種硬件資源,向上可加載與音視頻相關(guān)的應(yīng)用程序和完成其他任務(wù)的應(yīng)用程序[4]。
機(jī)頂盒可劃分為3層結(jié)構(gòu):操作系統(tǒng)以下主要用于完成對(duì)硬件設(shè)備的操作,為上層提供支持;API層承上啟下,將應(yīng)用程序翻譯成CPU能夠識(shí)別的指令,去調(diào)用硬件設(shè)備完成相應(yīng)的操作;最上層主要實(shí)現(xiàn)媒體播放、瀏覽器以及EPG等應(yīng)用,由用戶直接操作。
圖5為L(zhǎng)inux網(wǎng)絡(luò)驅(qū)動(dòng)基本結(jié)構(gòu),在發(fā)送數(shù)據(jù)時(shí),應(yīng)用層數(shù)據(jù)通過(guò)dev_queue_xmit( )向下層發(fā)送數(shù)據(jù),dev_queue_xmit( )通過(guò)網(wǎng)絡(luò)設(shè)備接口hard_star_xmit( )函數(shù)指針向設(shè)備發(fā)送數(shù)據(jù),將應(yīng)用層的數(shù)據(jù)發(fā)送給硬件設(shè)備;在接受數(shù)據(jù)時(shí),當(dāng)網(wǎng)絡(luò)數(shù)據(jù)到達(dá)設(shè)備后產(chǎn)生中斷,進(jìn)人中斷處理子程序,然后調(diào)用接受函數(shù)接受數(shù)據(jù),再通過(guò)netif_ix( )函數(shù)發(fā)送給上層。編寫(xiě)DM9000AE驅(qū)動(dòng)時(shí),除實(shí)現(xiàn)探測(cè)、發(fā)送接受及中斷等函數(shù)外,還要與開(kāi)放的板子相對(duì)應(yīng),需注意網(wǎng)卡的基地址和中斷。由于DM9000AE的地址線和數(shù)據(jù)線是復(fù)用的,所以要根據(jù)電路原理圖來(lái)確定用來(lái)讀取數(shù)據(jù)的I/O端口地址線和數(shù)據(jù)線的關(guān)系。
在網(wǎng)絡(luò)功能實(shí)現(xiàn)的基礎(chǔ)上,本設(shè)計(jì)采用NFS協(xié)議實(shí)現(xiàn)網(wǎng)絡(luò)掛載文件系統(tǒng),把boot loader和內(nèi)核鏡像寫(xiě)到FLASH上,這樣可把應(yīng)用程序直接放到PC機(jī)的文件系統(tǒng)里,節(jié)省了機(jī)頂盒的內(nèi)存空間。目前,硬件電路設(shè)計(jì)已完成,經(jīng)過(guò)測(cè)試,可播放H.264和MPEG一2的高清和標(biāo)清視頻碼流,同時(shí)可播放MPEG一1,AAC,PCM等格式的音頻內(nèi)容。另外,采用了基于GTK的Dillo瀏覽器,由于不支持.1avaScript,Java等附加功能,使得它具有規(guī)模小速度快的優(yōu)點(diǎn)。可以把視頻模塊、EPG模塊等各種功能模塊以插件方式與Dillo瀏覽器一起使用。當(dāng)需要進(jìn)行交互服務(wù)時(shí),可通過(guò)HTTP協(xié)議訪問(wèn)EPG服務(wù)器,得到EPG相關(guān)信息,并在本地進(jìn)行解析重構(gòu)出EPG。如果需要點(diǎn)播視頻,就通過(guò):EPG去視頻服務(wù)器上得到視頻源的URL,然后對(duì)URL進(jìn)行解析,再交給視頻功能模塊進(jìn)行解碼播放。
5 小結(jié)
介紹了IPTV機(jī)頂盒硬件電路的基本組成模塊,確定了以STB7100為核心的系統(tǒng)解決方案。STB7100具有強(qiáng)大的音視頻處理能力,并可通過(guò)其豐富的外圍接口進(jìn)行功能芯片的擴(kuò)展,實(shí)現(xiàn)各種需要的功能。筆者雖然已實(shí)現(xiàn)了部分功能,但機(jī)頂盒設(shè)計(jì)仍需完善,還需要對(duì)智能卡、數(shù)字版權(quán)管理等擴(kuò)展功能做更深一步的研究。