一種面向DVB-C的單片MPEG-2解碼方案
射頻部分主要包括高頻頭和解調(diào)芯片,分別進行射頻的變頻和信道解碼。在本系統(tǒng)中選用的高頻頭是THOMSON公司的DCF8910,解調(diào)芯片是ST公司的STV0297。系統(tǒng)工作時,先由高頻頭將RF頻段的數(shù)字調(diào)制信號進行下變頻,再進行正交解調(diào)變成兩路IQ信號。然后將數(shù)字基帶信號輸入STV0297,進行數(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譯碼器來進行片選。EEPROM選用24C64,通過串行IIC總線對它進行讀寫。
(3)輸出部分
輸出部分由音頻輸出、視頻輸出和串口輸出組成。視頻部分選用視頻編碼芯片SAA7128/29,它將送出來的數(shù)字視頻格式進行數(shù)模轉(zhuǎn)換,經(jīng)過視頻矩陣編碼成模擬的視頻信號。它可輸出cvbs,y、c和R、G、B三種信號。該芯片工作在Slave模式下,即數(shù)據(jù)時鐘由主芯片供給,SAA7128/29利用此時鐘對數(shù)字信號進行鎖存??刂菩盘栍蠬s行同步、Vs場同步,主芯片通過IIC總線對它進行控制。
音頻部分使用PCM1723對主芯片送出的PCM數(shù)字音頻進行數(shù)模轉(zhuǎn)換,其時鐘包括左右時鐘和位時鐘。PCM1723是通過主芯片產(chǎn)生的27MHz信號來實現(xiàn)同步的:它用將27MHz信號經(jīng)過分頻而得到的超采樣時鐘來鎖存數(shù)字信號,同時將超采樣時鐘送回主芯片的音頻輸出部分進行同步,因而使得音頻數(shù)字信號的輸出與它的鎖存同步。音頻數(shù)模轉(zhuǎn)換后再經(jīng)過模擬放大(如LM6142)就可以送給發(fā)聲部分了。
2.2 軟件模塊和功能介紹
為了豐富DVB-C機頂盒的功能,除了實現(xiàn)音視頻解碼及控制和基本的DVB-C功能外,還編寫了以下幾個軟件模塊:
(1)基于嵌入式系統(tǒng)的GUI(Graphic User Interface)。
美觀、簡潔、功能強大的圖形界面對于DVB-C機頂盒是十分重要的,因此編寫了一個基于嵌入式系統(tǒng)的GUI。在本系統(tǒng)中,GUI主要完成了三部分的功能:第一,封裝圖形設(shè)計API。在OSD的驅(qū)動程序中基本的圖形原語均已實現(xiàn),其中包括點、線、矩形、填充等基本操作和漢字字庫的存儲、顯示。但為了適應(yīng)應(yīng)用層的調(diào)用,在GUI中還要將這些原語封裝成API;第二,提供圖形控件(Control)機制。Windows9x中圖形控件的概念符合面向對象程序設(shè)計的思想,使用起來簡單靈活,維護和修改也十分方便。在GUI的設(shè)計中,仿照Windows9x實現(xiàn)了控件機制;第三,進程間通信及消息傳遞的管理。在一個多進程實時系統(tǒng)中,GUI也必然包含一個進程來接收其它進程發(fā)給用戶界面的消息。
(2) EEPROM上的文件系統(tǒng)
EEPROM中主要存儲的是用戶信息。隨著功能的不斷豐富,用戶會有越來越多的信息需要存儲,因此就需要一套簡單有效的文件系統(tǒng)來組織各種不同的信息。同時,文件系統(tǒng)還要盡量克服EEPROM讀寫時間較長、不允許讀寫時斷電等缺點。這套文件系統(tǒng)主要完成三部分功能:第一,建立一套與流行操作系統(tǒng)基本相同的文件目錄機制。規(guī)定32個字節(jié)為一個文件塊(BLOCK),一個文件由一個或多個文件塊組成。文件采用樹狀結(jié)構(gòu)組織,同層文件均以雙向鏈表機構(gòu)進行銜接,并且寫入信息時,不會對指針進行操作,保證了安全性;第二,設(shè)計EEPROM讀寫時機和策略。每次開機時在SDRAM中開辟一塊與EEPROM同樣大小的區(qū)域作為鏡像。所有讀操作均在鏡像中進行,這樣將大大提高讀操作的效率,而寫操作將對EEPROM和鏡像同時操作,保證鏡像和EEPROM中信息完全一致;第三,提供強大的斷電保護功能。在對EEPROM進行寫操作前,先將需要進行的操作過程記錄下來,并清空操作完成標志;如果在操作過程中斷電,下次開機時根據(jù)操作完成標志可知EEPROM在操作過程中發(fā)生了斷電,按照記錄下來的操作過程恢復(fù)操作。
評論