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