基于數字電視系統的嵌入式linux操作系統實現
數字電視是在電視信號產生后的處理、傳送、接收、記錄等過程都采用數字技術的電視。在設計數字電視系統時,應用于傳統模擬電視系統中的硬件,不能滿足音頻、視頻和數據處理等功能的需要,因此,數字電視系統需要更高性能的處理器和大規模的存儲器。嵌入式操作系統可以有效的管理這些硬件資源。
本文將嵌入式linux操作系統移植到一個數字電視上,使其能夠接收數字廣播節目。為了將操作系統移植到數字電視系統上,需要修改內核和交叉開發環境,重新設計基本的設備驅動,配置系統的存儲器映像以便加載內核到主存儲器中,并且設計一個總線接口設備的驅動程序來控制整個系統。
2.數字電視操作系統
數字電視比模擬電視能夠提供更優質的電視圖像和更多的視頻服務。它采用改進的掃描線和水平清晰度獲得高質量的視頻效果,同時采用AC3或MPEG2壓縮技術來獲得高質量的音頻效果。數字電視的節目不但便于存儲,而且還可以通過眾多的媒介進行傳播。因此,數字電視系統需要處理大量的數據。如在EPG(電子節目指南)服務中,被提取出來的數據被修改并存儲后作為一個畫面打印至OSD(屏幕菜單式調節)界面,在這個過程中需要靠操作系統來不斷地接收到被篩選、存儲后的信號,同時產生屏幕畫面。
市場上的數字電視系統包括如pSOSTM (Windriver Inc.)等的商業操作系統,這些系統具有高可靠性和最優化的特點,但要支付昂貴的版稅。如果在數字電視系統中使用嵌入式linux操作系統,則不用支付版稅費用。嵌入式linux操作系統還有其他一些優點,如有開放源代碼的設備驅動程序及應用程序的存在,大大縮短了開發時間;利用shell、文件系統及模塊功能方便了開發環境的配置;許多問題可以在開源社區得到快速解決等。
3.商業數字電視系統
數字電視的結構
數字電視系統包括數字處理模塊、視頻處理模塊、射頻模塊、LCD驅動模塊和模擬輸出模塊,其結構如圖1所示。
數字處理模塊負責控制其它模塊和執行程序。它由MCU、SDRAM、FLASH存儲器、UART、I2C總線接口構成。視頻處理模塊把從射頻模塊捕獲的數據解碼生成視頻、音頻和文本消息。它由一個信號處理單元(SPU)和一個SDRAM構成,SDRAM中包含被顯示的數據幀。射頻模塊接收數字廣播信號,并且將該信號解調成數據流。LCD驅動模塊控制LCD面板。模擬輸出模塊控制視頻-音頻信號輸出和輸出信號。數字處理模塊通過I2C總線,控制射頻模塊、LCD模塊和模擬輸出模塊,同時通過DMA控制視頻處理模塊。
硬件構成
在數字電視系統中,數字處理模塊的核心是ARM7TDMITM,它不包括MMU(存儲器管理單元)。在數字電視系統中MCU只支持大端格式[5],存儲器映射由MCU內的系統管理寄存器來配置,在系統運行之前,嵌入式linux內核運行在flashROM中,當系統運行時,內核被拷入ram中。除了ROM和RAM外,外設也經常被使用。這些設備被映射到一個線性存儲器映射單元,且可以按同樣的方式尋址。。MCU的中斷控制器包括21個中斷資源(其中17個來自內部設備,4個來自外部設備)。數字處理模塊中的定時器是一個32位的間隔模式定時器。在系統中用串口設備如UART(通用異步收發器)來打印啟動過程中的消息和程序出錯信息,由于射頻模塊、LCD驅動模塊、模擬輸出模塊都是由MCU通過I2C總線控制,因此,在MCU和I2C串行總線之間需要一個接口。在這里使用PCF8584 (Philips Inc.)。圖2描述了MCU和I2C總線之間的連接。
評論