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