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