基于STB7100的高清IPTV機頂盒設計
來源:視頻網 編輯:數字音視工程 2009-02-03 00:00:00 加入收藏 咨詢

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