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