??? 摘? 要: 一種面向DVB-C機(jī)頂盒的單片MPEG-2解碼方案,。簡要介紹主芯片的幾個主要部分,分別從硬件和軟件介紹方案中各個模塊的實現(xiàn),。?
??? 關(guān)鍵詞: DVB-C ?機(jī)頂盒? MPEG-2? SmartCard
?
??? 進(jìn)入21世紀(jì),全世界的數(shù)字電視發(fā)展相當(dāng)迅速,歐洲的DVB視頻廣播已經(jīng)相當(dāng)成熟,日本和美國也都開始了高清晰度節(jié)目的播出,并制定了數(shù)字電視廣播全面代替模擬電視廣播的時間表。在我國,由于各省市已有三十多套節(jié)目以MPEG-2方式壓縮并通過衛(wèi)星傳輸,DVB-S已經(jīng)形成了較為成熟的市場,。國內(nèi)目前有多家廠商自主開發(fā)DVB解碼套片,生產(chǎn)并銷售DVB-S,價格也降到了用戶可以承受的水平,。反觀DVB-C,同樣有多家廠商推出樣機(jī),但由于功能上不能完全滿足電視臺和用戶的需要以及源端設(shè)備改造需要較長過程,目前還沒有形成明顯的市場,。?
??? 目前,DVB-C除了完成基本的音視頻解碼還必須增加以下幾個功能才能真正被市場接受。第一,提供對CA(條件接收)系統(tǒng)的支持,。有線電視臺需要通過CA系統(tǒng)來實現(xiàn)對節(jié)目的加密和對用戶的管理,、收費。CA系統(tǒng)要求在接收端,機(jī)頂盒應(yīng)該支持IC-Card接口與SmartCard進(jìn)行通訊,并且提供標(biāo)準(zhǔn)的DVB數(shù)據(jù)流解擾模塊,。第二,實現(xiàn)對TS流的存儲,。這個功能現(xiàn)在有兩個趨勢:一種是由機(jī)頂盒提供硬盤接口(比如IDE接口),將TS流存在硬盤里供用戶回放,實現(xiàn)數(shù)字錄像機(jī)的功能;另一種是機(jī)頂盒提供USB或者1394這一類的高速通用接口,將TS流通過它們存入計算機(jī)中,用戶再通過計算機(jī)進(jìn)行處理。第三,實現(xiàn)局域網(wǎng)網(wǎng)絡(luò)接口,。這樣機(jī)頂盒可以接收從局域網(wǎng)傳來的TS流,實現(xiàn)局域網(wǎng)上的視頻播放,。第四,實現(xiàn)Web瀏覽功能。用戶可以通過機(jī)頂盒瀏覽網(wǎng)頁,當(dāng)然這需要現(xiàn)有電視分辨率的適當(dāng)提高和專門網(wǎng)站的提供,。?
??? 針對DVB-C機(jī)頂盒的這些要求,選擇了Fujitsu公司的單片MPEG-2解碼方案,這套方案較好地支持了各種接口和功能模塊,且成本較低,以下是芯片的簡介,然后介紹整套方案的軟件和硬件,。?
1 芯片介紹?
??? MB87L2250是由Fujitsu公司出品的單片MPEG音頻和視頻解碼器,它同時還有解傳輸復(fù)用功能并且集成了一片32位的RISC處理器。它為數(shù)字電視機(jī)頂盒提供了一種高性價比,、高集成度的解決方案,。在芯片設(shè)計中,MPEG解碼和解復(fù)用都由硬件完成,而片內(nèi)集成的工作頻率為54MHz的處理器則主要用于運行客戶應(yīng)用程序,例如實現(xiàn)圖形界面。由于MB87L2250采用了2.5幀體系結(jié)構(gòu),因此僅需要16M位 SDRAM用于MPEG解碼,、OSD菜單以及數(shù)據(jù)緩存,。整個芯片具有以下特點:?
??? ·32位RISC微處理器????? ·1K字節(jié)的指令Cache?
??? ·2.5幀體系結(jié)構(gòu)???????? ·僅需要16M位SDRAM?
??? ·支持32路不同的PID包?? ·針對PID和Section的硬件過濾器?
??? ·紅外接收器??????????? ·DVB標(biāo)準(zhǔn)解擾?
??? ·減少圖片內(nèi)存的??????? ·圖文電視的VBI方式插入內(nèi)存節(jié)省模式
??? ·16:9與4:3格式轉(zhuǎn)換? ?? ·電影格式轉(zhuǎn)換?
??? ·IIC總線?????????????? ·兩個SmartCard接口?
??? ·2、4、6或8位OSD???? ? ·16個可編程I/O口?
??? ·自動時鐘恢復(fù)?
??? 圖1是MB87L2250的芯片結(jié)構(gòu)圖,。?
?
?
1.1 32位RISC處理器?
??? 這個片內(nèi)集成的ARC處理器是采用了4層流水線技術(shù)的RISC微處理器,它的工作頻率為54MHz,。ARC內(nèi)部集成了一個256×32位的指令cache。ARC的存儲控制器包括了SRAM和SDRAM控制器,其中SRAM的控制器包括一個可編程的等待狀態(tài)產(chǎn)生器,用于和相連的不同速率的存儲介質(zhì)保持同步,。而MPEG解碼器位于輔助地址空間,通過一個主機(jī)接口可以訪問所有的ARC寄存器和處理器的整個地址空間,。這個特性主要用于調(diào)試,但是也可以用于基于FLASH系統(tǒng)的第一次啟動。芯片還有一種休眠狀態(tài),此時ARC的工作頻率為13.5MHz,。?
1.2 傳輸流解復(fù)用和系統(tǒng)解碼?
??? 完成這部分功能的是傳輸系統(tǒng)解碼器(TSD),。通過TSD,主芯片可以接收8位的并行或串行數(shù)據(jù)流。TSD提供基本的同步和錯誤檢測功能,但它的主要功能是作為PID分析器把唯一的一路PES流從TS流里最大32路PES流中鑒別出來,。TSD選出相應(yīng)的有效數(shù)據(jù)和系統(tǒng)信息并把它們送給解碼緩存,。另外,TSD還提供分段(Section)類型數(shù)據(jù)的分析比較。?
??? TSD中主要包括頻道解碼器(Channel Decoder),、PCR存儲(Program Clock Reference Store),、PID分析器(PID parsing engine)、分段數(shù)據(jù)過濾器(Section Filter)等,。為了支持有線廣播中的CA系統(tǒng),TSD還包括一個標(biāo)準(zhǔn)的DVB解擾器,。這個解擾器能夠在TS層和PES層進(jìn)行解擾,可以并行處理八路不同的流,因此需要存儲八對控制字。解擾器可以自動找到相應(yīng)的控制字,。傳輸流解復(fù)用和系統(tǒng)解碼的流程圖如圖2所示,。?
?
?
1.3 視頻解碼及輸出?
??? 整個視頻解碼和視頻顯示過程由VD_VUM(Video Unit Management)管理和監(jiān)控。在它以下主要分為三個部分,。其中,視頻解碼和參考圖像的內(nèi)存分配由VUM_VDM(Video Decoder Manager)管理;圖像顯示由VUM_VOM(Video Output Manager)控制;B幀圖像的緩存管理則由VUM_MIM(Memory Interface Management)負(fù)責(zé),。?
??? 視頻輸出主要由視頻輸出接口來完成。視頻輸出接口從本地SDRAM中讀入解壓后的視頻數(shù)據(jù),然后以Y,、Cb,、Cr格式輸出。它同時還提供數(shù)字視頻輸出,數(shù)字視頻輸出的設(shè)計是用于直接和視頻DAC連接的,。這個模塊還包括專門的硬件模塊來支持OSD(OnScreenDisplay)和以VBI方式插入teletext,。視頻輸出接口中還包括行場同步過濾器,用來支持一些視頻格式轉(zhuǎn)換,包括色度信號變換和高清格式轉(zhuǎn)換。?
1.4 各種接口?
??? MB87L2250支持的接口較多,除了一般性的Debug口,、串口,還支持IC-Card接口和一個Host接口,。IC-Card接口提供了兩個獨立的支持ISO 7816 IC-Card的接口,它們只支持異步的IC-Card。這個接口直接由CPU的主接口控制,所以不會影響音視頻解碼,。在某一時刻,只有一個接口可以被激活,另一個則保持它上一次的狀態(tài),。這個接口主要包括一個串行轉(zhuǎn)并行和并行轉(zhuǎn)串行的轉(zhuǎn)換器,它需要時鐘和邏輯控制的支持。CPU提供需要傳輸?shù)耐暾麛?shù)據(jù)幀給IC-Card,并從IC-Card接收所有的數(shù)據(jù)幀,。IC-Card接口監(jiān)控接口時鐘并支持?jǐn)?shù)據(jù)幀,、數(shù)據(jù)時鐘和錯誤處理,而CPU負(fù)責(zé)實現(xiàn)通訊協(xié)議和幀的打包。Host接口是用來外接其他CPU而不使用集成的ARC處理器,也可用來擴(kuò)展RAM或外接硬盤等,。它支持的CPU有三種:FR30(最大25MHz),Motorola68xxx(最大33MHz),SPARClite 系列(最大40MHz),。?
2 方案介紹?
2.1系統(tǒng)原理圖及外圍芯片簡介?
??? 整個系統(tǒng)由射頻、主芯片,、存儲器,、輸出共四個部分組成。以下將介紹除主芯片部分以外的其他三個部分,。圖3是系統(tǒng)原理簡圖,。?
?
?
??? (1) 射頻部分?
??? 射頻部分主要包括高頻頭和解調(diào)芯片,分別進(jìn)行射頻的變頻和信道解碼。在本系統(tǒng)中選用的高頻頭是THOMSON公司的DCF8910,解調(diào)芯片是ST公司的STV0297,。系統(tǒng)工作時,先由高頻頭將RF頻段的數(shù)字調(diào)制信號進(jìn)行下變頻,再進(jìn)行正交解調(diào)變成兩路IQ信號,。然后將數(shù)字基帶信號輸入STV0297,進(jìn)行數(shù)模轉(zhuǎn)換和信道解碼,形成數(shù)字信號給后級,其中包括DaM[0..7]、出錯信號DErM,、數(shù)據(jù)有效DvLM,、 幀同步PsyM、時鐘信號ClkM,。對高頻頭和STV0297的讀寫操作均通過IIC總線完成,。?
??? (2) 存儲器部分?
??? 存儲器部分包括兩片512K×16Bit的FLASH,一片2×512K×16Bit的SDRAM,一片64Kbit的EEPROM和一塊掛在Host接口上的IDE硬盤。兩片F(xiàn)LASH用來存儲一般無需更改的數(shù)據(jù),一片為啟動FLASH,用于存儲系統(tǒng)的應(yīng)用程序;另一片為用戶FLASH,用于存儲較大的位圖,。SDRAM作為應(yīng)用程序運行時的內(nèi)存空間,其地址線包括行選地址線a0...a11,、列選地址線a0...a7及Bank選擇線a11,總的地址空間為2M字節(jié)。FLASH與SDRAM共用數(shù)據(jù)總線和地址總線,為不發(fā)生沖突,需要使用74LS138譯碼器來進(jìn)行片選,。EEPROM選用24C64,通過串行IIC總線對它進(jìn)行讀寫,。?
??? (3)輸出部分?
??? 輸出部分由音頻輸出、視頻輸出和串口輸出組成,。視頻部分選用視頻編碼芯片SAA7128/29,它將送出來的數(shù)字視頻格式進(jìn)行數(shù)模轉(zhuǎn)換,經(jīng)過視頻矩陣編碼成模擬的視頻信號,。它可輸出cvbs,y、c和R,、G,、B三種信號。該芯片工作在Slave模式下,即數(shù)據(jù)時鐘由主芯片供給,SAA7128/29利用此時鐘對數(shù)字信號進(jìn)行鎖存,??刂菩盘栍蠬s行同步、Vs場同步,主芯片通過IIC總線對它進(jìn)行控制,。?
??? 音頻部分使用PCM1723對主芯片送出的PCM數(shù)字音頻進(jìn)行數(shù)模轉(zhuǎn)換,其時鐘包括左右時鐘和位時鐘,。PCM1723是通過主芯片產(chǎn)生的27MHz信號來實現(xiàn)同步的:它用將27MHz信號經(jīng)過分頻而得到的超采樣時鐘來鎖存數(shù)字信號,同時將超采樣時鐘送回主芯片的音頻輸出部分進(jìn)行同步,因而使得音頻數(shù)字信號的輸出與它的鎖存同步。音頻數(shù)模轉(zhuǎn)換后再經(jīng)過模擬放大(如LM6142)就可以送給發(fā)聲部分了,。?
2.2 軟件模塊和功能介紹?
??? 為了豐富DVB-C機(jī)頂盒的功能,除了實現(xiàn)音視頻解碼及控制和基本的DVB-C功能外,還編寫了以下幾個軟件模塊:?
??? (1)基于嵌入式系統(tǒng)的GUI(Graphic User Interface),。?
??? 美觀、簡潔、功能強(qiáng)大的圖形界面對于DVB-C機(jī)頂盒是十分重要的,因此編寫了一個基于嵌入式系統(tǒng)的GUI,。在本系統(tǒng)中,GUI主要完成了三部分的功能:第一,封裝圖形設(shè)計API,。在OSD的驅(qū)動程序中基本的圖形原語均已實現(xiàn),其中包括點、線,、矩形,、填充等基本操作和漢字字庫的存儲、顯示,。但為了適應(yīng)應(yīng)用層的調(diào)用,在GUI中還要將這些原語封裝成API;第二,提供圖形控件(Control)機(jī)制,。Windows9x中圖形控件的概念符合面向?qū)ο蟪绦蛟O(shè)計的思想,使用起來簡單靈活,維護(hù)和修改也十分方便。在GUI的設(shè)計中,仿照Windows9x實現(xiàn)了控件機(jī)制;第三,進(jìn)程間通信及消息傳遞的管理,。在一個多進(jìn)程實時系統(tǒng)中,GUI也必然包含一個進(jìn)程來接收其它進(jìn)程發(fā)給用戶界面的消息,。?
??? (2) EEPROM上的文件系統(tǒng)?
??? EEPROM中主要存儲的是用戶信息。隨著功能的不斷豐富,用戶會有越來越多的信息需要存儲,因此就需要一套簡單有效的文件系統(tǒng)來組織各種不同的信息,。同時,文件系統(tǒng)還要盡量克服EEPROM讀寫時間較長,、不允許讀寫時斷電等缺點。這套文件系統(tǒng)主要完成三部分功能:第一,建立一套與流行操作系統(tǒng)基本相同的文件目錄機(jī)制,。規(guī)定32個字節(jié)為一個文件塊(BLOCK),一個文件由一個或多個文件塊組成,。文件采用樹狀結(jié)構(gòu)組織,同層文件均以雙向鏈表機(jī)構(gòu)進(jìn)行銜接,并且寫入信息時,不會對指針進(jìn)行操作,保證了安全性;第二,設(shè)計EEPROM讀寫時機(jī)和策略。每次開機(jī)時在SDRAM中開辟一塊與EEPROM同樣大小的區(qū)域作為鏡像,。所有讀操作均在鏡像中進(jìn)行,這樣將大大提高讀操作的效率,而寫操作將對EEPROM和鏡像同時操作,保證鏡像和EEPROM中信息完全一致;第三,提供強(qiáng)大的斷電保護(hù)功能,。在對EEPROM進(jìn)行寫操作前,先將需要進(jìn)行的操作過程記錄下來,并清空操作完成標(biāo)志;如果在操作過程中斷電,下次開機(jī)時根據(jù)操作完成標(biāo)志可知EEPROM在操作過程中發(fā)生了斷電,按照記錄下來的操作過程恢復(fù)操作。?
??? (3) CA系統(tǒng)接收端的實現(xiàn)?
??? CPU復(fù)位后,首先輪詢讀SmartCard,以檢查SmartCard是否存在,。如果SmartCard存在,則根據(jù)讀出的控制字判斷其是否是對本機(jī)頂盒合法的SmartCard,。進(jìn)行這樣的讀機(jī)制主要是為了防止一卡多機(jī)(一張SmartCard驅(qū)動多個機(jī)頂盒)的非法情況出現(xiàn)。當(dāng)SmartCard合法后,機(jī)頂盒從TS流中提取ECM段和EMM域,其中EMM域的PID在CAT的ca description中,ECM段的PID在PMT的ca description中,。經(jīng)過簡單的私有加密算法加密后,這些信息被送往SmartCard,。然后,CPU再次輪詢讀SmartCard,以檢查是否有控制字輸出。以上過程中CPU和SmartCard的交互均通過IC-Card接口實現(xiàn),。機(jī)頂盒不斷重復(fù)以上過程,若ECM或EMM版本號已更新,則將新版本送往SmartCard解密,。獲取到正確的控制字后,機(jī)頂盒就可以利用硬件解擾模塊進(jìn)行解擾。?
3 實現(xiàn)結(jié)果?
??? 目前已經(jīng)按照這套方案做出了DVB-C樣機(jī),。根據(jù)這套方案實現(xiàn)的DVB-C機(jī)頂盒具有功能多,、主板面積小、成本較低,、可擴(kuò)充性好等特點,。在樣機(jī)的基礎(chǔ)上還可以在實時操作系統(tǒng)的支持下,實現(xiàn)網(wǎng)絡(luò)接口和Web瀏覽等功能。?
參考文獻(xiàn)?
1 MB87L2250 DataSheet? Fujitsu Company?
2 楊秀華.數(shù)字電視的發(fā)展及產(chǎn)品開發(fā)趨勢.電視技術(shù),1998;(1)?
3 ETSI? DVB-S DVB-C標(biāo)準(zhǔn).