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