數字電視機頂盒包括硬件和軟件兩部分。硬件提供數字電視機頂盒的硬件平臺,實現音視頻的解碼。在數字電視技術中,軟件技術比硬件占有更為重要的位置,因為電視節目內容的重現、操作界面的實現、數據廣播業務的實現,以及機頂盒和Internet的互聯都需要軟件來實現。
1.機頂盒的硬件結構
以有線電視數字機頂盒的硬件邏輯結構為例。該機頂盒由以下幾部分組成:數字電視廣播接收前端、MPEG解碼、視音頻和圖形處理、電纜調制解調器、主芯片、存儲器以及各種接口電路。
(1)接收前端
數字電視廣播接收前端包括調諧器和QAM解調器,該部分作用是將傳輸過來的調制數字信號解調還原成傳輸流。目前市場上比較流行的調諧解調器的生產廠商有Thomson、Sharp等,國內雖然也有一些廠商生產調諧解調器,但市場份額很小。MPEG解碼部分包括解復用、解擾引擎和MPEG解壓縮,其輸出為MPEG視音頻基本流以及數據凈荷。視音頻和圖形處理部分完成視音頻的模擬編碼以及圖形處理功能。電纜調制解調模塊由一個雙向調諧器、下行QAM解調器、上行QPSK/QAM調制器和媒體訪問控制(MAC)模塊組成,該部分實現電纜調制解調的所有功能。
(2)主芯片
隨著芯片技術的發展,越來越多的廠家將機頂盒的功能更多地集成在一個主芯片里,例如現在大部分廠商都將CPU、解碼器、解復用器、圖形處理器與視音頻處理器集成在芯片中,甚至一些國外廠商(例如Philips)為代表的芯片廠商將調諧解調器也集成在芯片中,形成一體化的芯片解決方案,有效地降低了器件成本并提高了可靠性。CPU速度同運行其上的業務系統有著必然的聯系,如果需要在一個機頂盒中運行一個HTML瀏覽器,100 MIPS可能就是對CPU的最低要求,當然這還需要內存的配合。CPU與存儲器模塊用來存儲和運行軟件系統,并對各個模塊進行控制。在某些方面,機頂盒同PC機有很多相似之處,甚至可以說是一臺簡化了的PC機,兩者最相似之處就是內存。
(3)存儲器
對機頂盒而言,內存主要分為Flash/ROM內存和DRAM內存。Flash/ROM用來存貯機頂盒的系統軟件、驅動軟件、應用程序以及一些用戶信息,在系統斷電時內容還可保留,同時Flash/ROM可以通過在線的方式對其上所載的軟件進行更新,達到機頂盒軟件升級的目的。DRAM主要是用來存儲應用數據。機頂盒的許多功能都需要內存來實現,例如圖形處理、視音頻解碼和解復用等,不同的應用需求,內存的大小配置也各不相同。容量大的Flash和DRAM的配置雖然可以為將來的業務系統預留足夠的內存空間,但內存并不是決定軟件能否運行的因素,它需要配合CPU來工作,不切合實際的高配置只會造成資源浪費,而無助于機頂盒性能的提高。外部存儲設備一般指外掛式硬盤,大容量的硬盤可以用于存儲節目流以滿足用戶的個性化需求。一個機頂盒中能否外掛硬盤一般都是由主芯片所決定的,只有CPU的處理能力達到一定程度時才有可能支持硬盤的讀寫,而硬盤的讀寫也需要更多的內存空間。
(4)各種接口
CA(有條件訪問)的核心是加擾和加密,數字電視機頂盒應具有解擾和解密功能。通過讀卡器讀取CA智能卡中的數據用于數字電視節目的解擾,特別是在付費電視發展的今天,這是大多數機頂盒必不可少的部件。CI(通用接口)是一個由DVB組織為機頂盒和分離的硬件模塊之間定義的標準接口。除了標準的讀卡器外,在有些機頂盒中也采用CI來完成對CA智能卡的讀取。同時,隨著新技術的發展,機頂盒的物理接口也在不斷地增加,包括USB、1394、紅外遙控器接口、以太網接口、WiFi接口、RS232和視音頻接口等。
2、機頂盒軟件系統
在機頂盒中,軟件系統是一個重要的組成部分。主控制器的工作通過軟件的執行來完成。與我們常接觸的PC操作系統(例如Windows、Linux、Unix、MacOS)不同,機頂盒中的操作系統要求可以在實時的環境中工作,并能在較小的內存空間中運行,所以其規模是較小的。這種操作系統稱為實時操作系統(RTOS)。目前Wind River System的VxWorks、ISI公司的pSOS、Microware公司的David OS-9、ST的OS20以及專為機頂盒開發的PowerTV等。
其中,VxWorks、pSOS、OS-9、OS20是通用的實時操作系統,在其他的嵌入式系統中也有廣泛的應用。在這個實時操作系統中主要完成進程調度、中斷管理、內存分配、進程間通信、異常處理、時鐘提取等工作。硬件驅動部分提供外圍硬件設備的驅動,包括I2C總線、異步串行通信口、并行通信口、非易失內存、鍵盤、遙控器、調諧器、信道解碼模塊等。圖形接口主要用于完成圖形顯示功能,以便于為用戶提供友好的圖形用戶界面。音頻解碼和視頻解碼驅動用于控制音頻解碼和視頻解碼硬件的工作。解復用和數據表提取模塊主要是對碼流解復用和數據表提取操作的控制。應用程序編程接口將所有與硬件相關的底層函數映射到一個統一的接口上,并且提供一些與硬件無關的公用處理函數,比如網絡協議、圖形格式分析、業務信息數據表分析等。條件接收驅動用于完成條件接收處理的工作和軟件接口。應用程序編程接口為應用程序提供了一個公共的編程接口,把應用程序與硬件屏蔽開,使得應用程序與硬件無關。這樣,就便于實現應用程序的可移植性。
(1)中間件
中間件是數字電視接收系統的軟件平臺,為數字電視應用提供運行環境和軟件接口。一個完整的數字機頂盒由硬件平臺和軟件系統組成,可以將其分為4層,從底向上分別為硬件、底層軟件、中間件、應用軟件。硬件提供機頂盒的硬件平臺;底層軟件提供操作系統內核以及各種硬件驅動程序;應用軟件包括本機存儲的應用和可下載的應用;中間件作為數字機頂盒中的一個獨立的軟件層,將應用軟件與底層硬件和操作系統隔離開,對操作系統和驅動程序定義了統一接口,同時對應用程序也定義了統一接口,另外對常規數字廣播電視業務和增值業務也提供統一接口。中間件定義了一組較為完整而標準的應用程序接口,使應用程序獨立于操作系統和硬件平臺,從而將應用的開發變得更加簡捷,使產品的開放性和可移植性更強。它通常由Java虛擬機、網絡瀏覽器、圖像與多媒體模塊等組成。
(2)SI/EPG
業務信息(SI)包括:節目業務群關聯表(BAT)、節目業務描述表(SDT)、節目段信息表(EIT)、運行狀態表(RST)、時間及日期表(TDT)、時間偏移表(TOT)等。通過這些數據表,機頂盒可以向用戶提供節目的內容描述、節目的類型、節目的播放時間、節目的分級等信息。機頂盒在解復用的處理中提取這些數據表,通過分析和處理,然后通過用戶界面提供給用戶,形成了EPG。用戶瀏覽這些信息,并做出選擇,通過遙控器、鍵盤或按鍵等輸入設備告知機頂盒根據用戶的選擇提取相應的節目碼流或數據碼流。
(3)節目業務搜索
在模擬電視系統中,電視頻道的搜索只需要按照頻點逐一進行即可。而在數字電視系統中,頻道與節目業務不再是一一對應的關系,信道傳輸系統的參數也有多種配置方式。因此,機頂盒對節目業務的搜索要對應前端廣播系統進行設計。一般是由運營商指定一個固定頻道,作為頻道配置信息的發布頻道。在機頂盒中預先內置該頻道參數。
(4)字幕疊印
由于數字電視系統本身就具有多業務功能,字幕的疊印顯示也是機頂盒的基本功能。疊印字幕可以根據用戶的選擇開啟和關閉。
由于機頂盒中的軟件非常復雜,因此難免存在一些錯誤。另外隨著業務的不斷變化,軟件的功能也需要不斷的完善。軟件更新的實現方法包括在線廣播下載更新和單機本地更新。單機本地更新通過機頂盒上專用數據口將程序燒寫到FLASH內存中,或通過更換程序RON實現。在線廣播下載更新是在系統前端通過特定的協議將更新軟件插入到碼流中,傳送給機頂盒。