數(shù)字視聽(tīng)產(chǎn)品是近幾年消費(fèi)電子類產(chǎn)品的一個(gè)熱點(diǎn),而數(shù)字電視接收機(jī)頂盒是其中的一個(gè)重要的組成部分。本文主要介紹了一款基于STi5518 芯片的DC-618C型數(shù)字電視接收機(jī)頂盒的軟件設(shè)計(jì)與應(yīng)用,對(duì)同類產(chǎn)品的具體實(shí)現(xiàn)有一定的指導(dǎo)作用。
1
數(shù)字電視的崛起在我國(guó)被譽(yù)為廣電產(chǎn)業(yè)的第三次革命,它巨大的市場(chǎng)潛力正逐漸凸現(xiàn)出來(lái)。數(shù)字傳輸方式因其采用了先進(jìn)的技術(shù),具有傳統(tǒng)的模擬傳輸方式所無(wú)法比擬的優(yōu)勢(shì),取代后者已是不可阻擋的趨勢(shì)。目前,數(shù)字電視正在世界范圍內(nèi)迅速地推廣,作為接收數(shù)字電視的新興家電,機(jī)頂盒正悄悄進(jìn)入千家萬(wàn)戶。
機(jī)頂盒(STB,Set Top Box)是廣播媒介實(shí)現(xiàn)數(shù)字化后接收端的重要設(shè)備,一般置于電視機(jī)上, 從功能來(lái)看,機(jī)頂盒主要分為上網(wǎng)機(jī)頂盒、數(shù)字衛(wèi)星綜合接收解碼器、數(shù)字地面機(jī)頂盒,以及有線電視數(shù)字機(jī)頂盒,這些設(shè)備由于具有很好的網(wǎng)絡(luò)功能,因此也成為信息家電的代表。
我們?cè)谶@里討論的主要是指有線電視數(shù)字機(jī)頂盒,它的基本功能是接收數(shù)字電視廣播節(jié)目,同時(shí)具有所有廣播和交互式多媒體應(yīng)用功能。
數(shù)字電視機(jī)頂盒的技術(shù)含量非常高,它集中反映了多媒體、計(jì)算機(jī)、數(shù)字壓縮編碼、加解擾算法、加解密算法、通信技術(shù)和網(wǎng)絡(luò)技術(shù)的發(fā)展水平,在設(shè)計(jì)技術(shù)上主要包括機(jī)頂盒硬件技術(shù)和軟件技術(shù)兩大部分, 其中,軟件技術(shù)占有更為重要的位置。除了音視頻的解碼由硬件實(shí)現(xiàn)外,包括電視內(nèi)容的重現(xiàn)、操作界面的實(shí)現(xiàn)、數(shù)據(jù)廣播業(yè)務(wù)的實(shí)現(xiàn),直至機(jī)頂盒和個(gè)人計(jì)算機(jī)的互聯(lián)以及和Intemet的互聯(lián)都需要由軟件來(lái)實(shí)現(xiàn)。
我們?cè)谶@里介紹一款基于STi5518 芯片的DC-618C型數(shù)字電視接收機(jī)頂盒的軟件設(shè)計(jì)。
2 DC-618C數(shù)字電視接收機(jī)頂盒的軟件設(shè)計(jì)
2.1實(shí)時(shí)操作系統(tǒng)基本原理
STi5518解碼芯片本身的性能比較強(qiáng)大,可以滿足應(yīng)用對(duì)硬件的要求,關(guān)鍵在于軟件對(duì)硬件的管理上,隨著應(yīng)用的復(fù)雜化,一個(gè)嵌入式控制系統(tǒng)可能要同時(shí)控制和監(jiān)視很多外設(shè),要求有實(shí)時(shí)響應(yīng),有很多處理任務(wù),各個(gè)任務(wù)之間有多種信息傳遞。如果仍采用原來(lái)的程序設(shè)計(jì)方法存在兩個(gè)問(wèn)題,一是中斷可能得不到及時(shí)響應(yīng)。處理時(shí)間過(guò)長(zhǎng),這對(duì)于一些控制場(chǎng)合是不允許的,對(duì)于網(wǎng)絡(luò)通信方面則會(huì)降低系統(tǒng)整體的信息流量。二是系統(tǒng)任務(wù)多,要考慮的各種可能也多,各種資源如調(diào)度不當(dāng)就會(huì)發(fā)生死鎖,降低軟件可靠性,程序編寫任務(wù)量都會(huì)有大幅度增加。
實(shí)時(shí)操作系統(tǒng)(RTOS)是一段在嵌入式系統(tǒng)啟動(dòng)后首先執(zhí)行的背景程序,用戶的應(yīng)用程序是運(yùn)行于RTOS之上的各個(gè)任務(wù)。RTOS根據(jù)各個(gè)任務(wù)的要求,進(jìn)行資源(包括存儲(chǔ)器、外設(shè)等)管理、消息管理、任務(wù)調(diào)度、異常處理等工作。在RTOS支持的系統(tǒng)中,每個(gè)任務(wù)均有一個(gè)優(yōu)先級(jí),RTOS根據(jù)各個(gè)任務(wù)的優(yōu)先級(jí),動(dòng)態(tài)地切換各個(gè)任務(wù),保證對(duì)實(shí)時(shí)性的要求。在編寫程序時(shí),可以分別編寫各個(gè)任務(wù),大大減小了程序編寫的工作量,而且減小了出錯(cuò)的可能,保證最終程序具有高可靠性。
實(shí)時(shí)多任務(wù)操作系統(tǒng),以分時(shí)方式運(yùn)行多個(gè)任務(wù),宏觀表現(xiàn)為多個(gè)任務(wù)同時(shí)運(yùn)行。任務(wù)之間的切換以優(yōu)先級(jí)為根據(jù),只有采用優(yōu)先服務(wù)方式的RTOS才是真正的實(shí)時(shí)操作系統(tǒng),時(shí)間分片方式和協(xié)作方式的RTOS并不是真正的實(shí)時(shí),RTOS的主要功能模塊有調(diào)度和中斷處理(為了優(yōu)化用匯編編寫)、任務(wù)管理、事件管理、定時(shí)器管理、報(bào)文管理、循環(huán)隊(duì)列管理、資源管理、固定存儲(chǔ)塊管理、規(guī)范的UART管理和自動(dòng)掉電管理等,這些也是標(biāo)準(zhǔn)的RTOS所應(yīng)具有的基本功能。RTOS也體現(xiàn)了一種新的系統(tǒng)設(shè)計(jì)思想和一個(gè)開(kāi)放的軟件框架,工程師可以在不大量變動(dòng)系統(tǒng)其它任務(wù)的情況下增加或去掉一個(gè)任務(wù),一個(gè)項(xiàng)目開(kāi)發(fā)的過(guò)程中,可以有多個(gè)工程師同時(shí)進(jìn)行系統(tǒng)的軟件開(kāi)發(fā),各個(gè)人之間只要制訂好規(guī)程和協(xié)議即可,既縮短了開(kāi)發(fā)時(shí)間,又降低了最終軟件產(chǎn)品對(duì)于具體某個(gè)開(kāi)發(fā)者的依賴性。為RTOS設(shè)計(jì)的成熟和通用的任務(wù)可以以庫(kù)函數(shù)的形式供其它人繼續(xù)利用,這一點(diǎn)和C語(yǔ)言的設(shè)計(jì)思想一致。
應(yīng)用于DC-618C機(jī)頂盒的OS20操作系統(tǒng)
2.2
內(nèi)嵌于Sti5518內(nèi)部的CPU--ST20,使用的是ST所獨(dú)有的嵌入式實(shí)時(shí)操作系統(tǒng)OS20。
OS20操作系統(tǒng)是一個(gè)模塊化的高性能的實(shí)時(shí)操作系統(tǒng), 它具有較強(qiáng)的實(shí)時(shí)性和多任務(wù)能力,這主要取決于它的任務(wù)調(diào)度機(jī)制,從調(diào)度策略上來(lái)講,OS20采用分優(yōu)先級(jí)調(diào)度策略(默認(rèn)為16)和時(shí)間片輪轉(zhuǎn)調(diào)度策略——即同一優(yōu)先級(jí)下多任務(wù)處理采用時(shí)間片輪轉(zhuǎn)處理方式。
OS20系統(tǒng)的內(nèi)存開(kāi)銷也很小,核的開(kāi)銷大約為:內(nèi)部只占600字節(jié),每個(gè)任務(wù)占用的內(nèi)存:內(nèi)部24字節(jié),外部36字節(jié)。
此外,OS20操作系統(tǒng)還具有任務(wù)切換時(shí)間短等特點(diǎn)
DC-618C機(jī)頂盒的軟件架構(gòu)設(shè)計(jì)
2.3
依據(jù)軟件工程的原理,DC-618C機(jī)頂盒軟件采用從上到下的層次化設(shè)計(jì),依次由易到難,由具體到抽象和由軟件到硬件,主要包括如下幾層:
1) 應(yīng)用層:應(yīng)用層是控制整個(gè)機(jī)頂盒操作的高層代碼,也是需要程序員自己完全實(shí)現(xiàn)的代碼。在這一層中實(shí)現(xiàn)各種各樣的功能,包括初始化各種外設(shè)、創(chuàng)建任務(wù)、設(shè)置節(jié)目頻點(diǎn)、實(shí)現(xiàn)用戶輸入輸出操作等。對(duì)于與第三方的軟件合作,包括網(wǎng)絡(luò)瀏覽器,也嵌入在應(yīng)用層中,應(yīng)用程序可以直接調(diào)用驅(qū)動(dòng)層的應(yīng)用程序接口(API)。第三方的中間件可以通過(guò)驅(qū)動(dòng)使用層來(lái)調(diào)用應(yīng)用程序接口。所有的應(yīng)用層組件在功能上能通過(guò)操作系統(tǒng)移植層來(lái)訪問(wèn)實(shí)時(shí)操作系統(tǒng)。
2) 驅(qū)動(dòng)層:驅(qū)動(dòng)層通過(guò)調(diào)用硬件抽象層,來(lái)管理各種外設(shè)和內(nèi)部子系統(tǒng)模塊,將這些模塊的功能抽象化和屏蔽化,向上一層提供應(yīng)用層程序接口,使得應(yīng)用層的操作直觀和簡(jiǎn)潔。應(yīng)用層組件通過(guò)調(diào)用驅(qū)動(dòng)層API來(lái)控制系統(tǒng)硬件功能和服務(wù)。這些驅(qū)動(dòng)完成普通的低層任務(wù),如控制傳輸解復(fù)用和音視頻解碼等。
3) 硬件抽象層:對(duì)DC-618C的所有硬件的操作必須通過(guò)修改寄存器來(lái)實(shí)現(xiàn),DC-618C將所有寄存器與接口統(tǒng)一編址,使得通過(guò)軟件對(duì)寄存器的操作非常簡(jiǎn)單,硬件抽象層正是完成這一功能.可以說(shuō),H.A.L.是驅(qū)動(dòng)層的子集,負(fù)責(zé)直接編輯硬件。驅(qū)動(dòng)層提供通用的低層功能,同時(shí)H.A.L.在硬件上實(shí)現(xiàn)這些功能。為了響應(yīng)驅(qū)動(dòng)層的調(diào)用, H.A.L.執(zhí)行特定的芯片函數(shù),編輯芯片寄存器來(lái)完成一個(gè)特定的功能,它只與一種特定的芯片相對(duì)應(yīng),所以當(dāng)改變硬件平臺(tái)時(shí),只需要改變相應(yīng)的硬件抽象層。
圖 2.1 DC-618C軟件體系結(jié)構(gòu)
DC-618C機(jī)頂盒的應(yīng)用層設(shè)計(jì)
2.4
機(jī)頂盒除了實(shí)現(xiàn)接收來(lái)自有線網(wǎng)絡(luò)的數(shù)字電視信號(hào)外,還應(yīng)具有EPG(電子節(jié)目指南)、軟件在線升級(jí)等功能,我們?cè)谶@里主要談?wù)勥@幾種功能的實(shí)現(xiàn)。
2.4.1 EPG(電子節(jié)目指南)的實(shí)現(xiàn):
2.4.1.1 EPG簡(jiǎn)介
電子節(jié)目指南,是指在符合MPEG-2的TS傳輸流中插入DVB標(biāo)準(zhǔn)定義的SI信息,使機(jī)頂盒的綜合接收解碼器可以從TS流中提取出節(jié)目提供商播出節(jié)目的列表和播出參數(shù),以直觀的形式顯示給數(shù)字電視用戶。EPG信息由兩部分信息組成:基本EPG信息和擴(kuò)展EPG信息;綞PG信息是指完全可以用《數(shù)字廣播業(yè)務(wù)信息規(guī)范》中的網(wǎng)絡(luò)信息表NIT、業(yè)務(wù)群關(guān)聯(lián)表BAT、業(yè)務(wù)描述表SDT和事件信息表EIT進(jìn)行描述的EPG信息。擴(kuò)展EPG信息是指在基本EPG信息之外,通過(guò)數(shù)據(jù)輪播傳遞的EPG信息,這些信息的入口采用EPG映射表(EMT)進(jìn)行描述,信息的內(nèi)容被封裝成具有多級(jí)目錄結(jié)構(gòu)的文件系統(tǒng),稱為擴(kuò)展EPG內(nèi)容信息(XECI)。基本EPG信息和擴(kuò)展EPG信息中的EPG映射信息均采用表傳輸方式;擴(kuò)展EPG信息中的擴(kuò)展EPG內(nèi)容信息采用數(shù)據(jù)輪播方式傳輸。
圖 2.2 EPG信息的組成圖
在數(shù)字電視節(jié)目的播出過(guò)程中,可以加入輔助的SI信息,供機(jī)頂盒解碼器的開(kāi)發(fā)者來(lái)實(shí)現(xiàn)五花八門的電子節(jié)目指南的導(dǎo)航功能。EPG提供的信息主要包括:傳送信息的天數(shù)(例如一周)、傳送頻道的數(shù)目和名稱、傳送的節(jié)目數(shù)、節(jié)目提供商的標(biāo)識(shí)和名稱、傳送網(wǎng)絡(luò)的信息(網(wǎng)絡(luò)標(biāo)識(shí)和網(wǎng)絡(luò)名稱),其細(xì)節(jié)信息還包括:節(jié)目名稱、節(jié)目的簡(jiǎn)單介紹、節(jié)目的開(kāi)始和結(jié)束時(shí)間、節(jié)目的主題、節(jié)目的類屬、節(jié)目的觀看分級(jí)限制(例如對(duì)某個(gè)年齡段進(jìn)行限制)。利用機(jī)頂盒收看數(shù)字電視節(jié)目,用戶通過(guò)EPG不僅能夠接收普通的電視節(jié)目、廣播節(jié)目或圖文電視節(jié)目,而且,還可以查看感興趣的信息:按節(jié)目分類(如音樂(lè)節(jié)目、體育節(jié)目、電影等)檢索節(jié)目;按節(jié)目提供者檢索節(jié)目;未來(lái)一段時(shí)間內(nèi)節(jié)目播出表;視頻網(wǎng)絡(luò)中節(jié)目播出情況等信息。
2.4.1.2 PSI/SI信息及其功能
MPEG-2中的傳送碼流是根據(jù)ITU-TRecH220、ISO/IECDIS13818-2和ISO
/IEC13818-3協(xié)議定義的一種數(shù)據(jù)流,其目的是為了在有可能發(fā)生嚴(yán)重錯(cuò)誤的環(huán)境下進(jìn)行一道或多道程序的編碼數(shù)據(jù)的傳送和存儲(chǔ)。這種錯(cuò)誤表現(xiàn)為比特值錯(cuò)誤或分組丟失。傳送流的速率可以是變化的或固定不變的。在任何情況下組成的原始流可以是變化的或固定不變,在這些情況下的語(yǔ)法和語(yǔ)義限制是相問(wèn)的。傳送流速率由節(jié)目參考時(shí)鐘(PCR)字段的位置和數(shù)值決定,通常對(duì)于每個(gè)程序都有自己的PCR字段。傳送流中有關(guān)PID的信息及各PID之間的關(guān)系包含在PSI (Program Specific Information:節(jié)目特定信息)中,MPEG-2解碼器將使用PSI信息來(lái)自動(dòng)設(shè)置解碼所需的各種參數(shù)。PSI信息使用4個(gè)表來(lái)定義碼流的結(jié)構(gòu):PAT(Program Association Table:節(jié)目關(guān)聯(lián)表)、PMT(Program Map Table:節(jié)目映射表)、NIT(Network Information Table:網(wǎng)絡(luò)信息表)、CAT(Conditional Access Table:條件訪問(wèn)表)。
MPEG-2在PSI中提供了不少有關(guān)節(jié)目組成和相互關(guān)系的信息,從而使得在接收端可以正確地對(duì)TS流進(jìn)行解復(fù)用。但是這些信息在實(shí)際使用時(shí)仍然顯得不夠,為此在DVB標(biāo)準(zhǔn)中采用SI(Service Information:業(yè)務(wù)信息)對(duì)PSI信息進(jìn)行了進(jìn)一步的擴(kuò)展。PSI中的信息基本上都是與當(dāng)前碼流相關(guān),即它們所涉及的內(nèi)容都與當(dāng)前碼流中的部分信息相關(guān);而SI信息可以包括不在當(dāng)前碼流中的一些服務(wù)和事件,允許用戶進(jìn)行更多的選擇和了解更多的其他服務(wù)。SI信息表主要有以下內(nèi)容:
BAT(Bouquet Association Table:業(yè)務(wù)群關(guān)聯(lián)表)、SDT(Service Description Table:業(yè)務(wù)描述表)、EIT(Event Information Table:事件信息表)、RST(Running Status Table:運(yùn)行狀態(tài)表)、TDT(Time and Date Table:時(shí)間和日期表)、TOT(Time Offset Table:時(shí)間偏移值表)、ST(Stuffing Table:填充表)
業(yè)務(wù)信息(SI)是用來(lái)描述傳送系統(tǒng),傳送內(nèi)容和廣播數(shù)據(jù)流時(shí)間表等的數(shù)據(jù),是補(bǔ)充MPEG-2節(jié)目說(shuō)明信息(PSI)的附加數(shù)據(jù),這些數(shù)據(jù)幫助綜合接收解碼器(IRD)自動(dòng)調(diào)諧,給用戶提供附加信息,使IRD能自動(dòng)設(shè)置可供選擇的業(yè)務(wù)。
頭端系統(tǒng)每隔一定周期將重復(fù)傳送SI信息,對(duì)于最高速率為100Mbits/s的傳送流而言,重復(fù)傳送SI信息的最小間隔為25毫秒。這樣,對(duì)于新開(kāi)機(jī)的用戶,在很短的時(shí)間內(nèi),就可以接收到SI(業(yè)務(wù)信息),構(gòu)成EPG(電子節(jié)目指南)所需的各項(xiàng)條款。
2.4. 1.3 EPG信息的提取
一般而言,PAT表的PID號(hào)為“0x00”,解復(fù)用器工作總是通過(guò)尋找PAT表開(kāi)始。PAT給出了構(gòu)成傳送流中各個(gè)節(jié)目業(yè)務(wù)的PMT(節(jié)目映射表)的PID,同時(shí)也給出了NIT(網(wǎng)絡(luò)信息表)的PID號(hào)。根據(jù)PID值及對(duì)應(yīng)的Table ID值可以從流中解出相應(yīng)的PMT、NIT、SDT、EIT等信息。機(jī)頂盒接收端的解析主要負(fù)責(zé)這些SI數(shù)據(jù)信息的重建。信息內(nèi)容應(yīng)與PSI和SI表中的信息相對(duì)應(yīng),它可按照Network-Transport Stream-Service-Event的分層順序描述,同時(shí)內(nèi)嵌Transport Stream-Program(Service)-Element Stream的分層順序。SI數(shù)據(jù)信息必須按照一定的數(shù)據(jù)結(jié)構(gòu)進(jìn)行存儲(chǔ),這樣才能方便、快捷地對(duì)其進(jìn)行檢索和數(shù)據(jù)的提取。特別是對(duì)于運(yùn)行于機(jī)頂盒的實(shí)時(shí)操作系統(tǒng)中的EPG,需要對(duì)用戶的交互進(jìn)行實(shí)時(shí)的動(dòng)作,所以對(duì)響應(yīng)速度的要求很高,SI數(shù)據(jù)庫(kù)建立的好壞對(duì)其性能有重要的影響。SI數(shù)據(jù)主要有:網(wǎng)絡(luò)信息、傳輸流信息、業(yè)務(wù)(節(jié)目)信息,業(yè)務(wù)的事件信息等,并且大量的信息都是通過(guò)描述子來(lái)傳輸?shù),所以可用?shù)狀鏈表來(lái)存儲(chǔ)數(shù)據(jù),構(gòu)成從網(wǎng)絡(luò)、傳輸流、業(yè)務(wù)、事件的樹(shù)狀結(jié)構(gòu),傳送不同信息的描述子用繼承于同一基類的描述子類來(lái)表示。
網(wǎng)絡(luò)信息表傳送本網(wǎng)絡(luò)以及與此有關(guān)的其它網(wǎng)絡(luò)的一些信息。每個(gè)網(wǎng)絡(luò)都有唯一的識(shí)別符,網(wǎng)絡(luò)編碼請(qǐng)參看ETR162。網(wǎng)絡(luò)信息表主要攜帶:網(wǎng)絡(luò)識(shí)別符(network_id)、網(wǎng)絡(luò)名稱、傳輸系統(tǒng)參數(shù)(包括:頻率、調(diào)制方式、FEC外碼、符號(hào)率、FEC內(nèi)碼)等信息,如果NIT表中有關(guān)于傳輸系統(tǒng)參數(shù)的正確描述,只要調(diào)諧到攜帶此NIT表的傳送流中,即可提取其它網(wǎng)絡(luò)的參數(shù),一般解碼器便可根據(jù)提取出來(lái)的信息,自動(dòng)搜索頻道。
節(jié)目業(yè)務(wù)描述表的每一個(gè)子表都對(duì)一個(gè)特定傳送流中的節(jié)目業(yè)務(wù)進(jìn)行了描述。這些節(jié)目業(yè)務(wù)可以一部分是本身實(shí)際的傳送流,也可以是其它傳送流,這一點(diǎn)可以通過(guò)table_id(表識(shí)別符)進(jìn)行識(shí)別。節(jié)目業(yè)務(wù)描述表提供了如下的信息:屬于哪一個(gè)節(jié)目業(yè)務(wù)群;節(jié)目業(yè)務(wù)的類型,如PAL、NTSC、SECAM、調(diào)頻廣播、圖文電視、準(zhǔn)視頻點(diǎn)播等;節(jié)目業(yè)務(wù)的提供者;可以接收該節(jié)目業(yè)務(wù)的國(guó)家和不可以接收該節(jié)目業(yè)務(wù)的國(guó)家;指向特定信息的鏈接信息;實(shí)現(xiàn)準(zhǔn)視頻點(diǎn)播的指導(dǎo)信息;實(shí)現(xiàn)多畫面的控制信息;指示使用的加密系統(tǒng);給出實(shí)現(xiàn)交互式回傳信道的電話號(hào)碼;提供多語(yǔ)種的節(jié)目業(yè)務(wù)名稱和廣播者以及私有數(shù)據(jù)。
事件信息表按時(shí)間順序提供每一個(gè)節(jié)目業(yè)務(wù)中包含的節(jié)目段的信息。事件信息表提供如下信息:節(jié)目段的標(biāo)識(shí)號(hào)、起始時(shí)間、節(jié)目長(zhǎng)度、播放狀態(tài)、是否加密;指向特定信息的鏈接信息;節(jié)目段多語(yǔ)種的簡(jiǎn)短介紹;節(jié)目段的詳細(xì)介紹;兩段同樣節(jié)目段的時(shí)間偏移;基本碼流類型,如視頻的幅型比、伴音的類型、字幕的類型等;使用的加密系統(tǒng);節(jié)目類型,如電影/戲劇、新聞、綜藝、體育、少兒、音樂(lè)、藝術(shù)、社會(huì)政治、文教等;節(jié)目限定年齡的級(jí)別;給出實(shí)現(xiàn)交互式回傳信道的電話號(hào)碼;為滿足各節(jié)目段的碼率而提供的緩存大小信息及私有數(shù)據(jù)。
2.4.1.4 EPG系統(tǒng)的顯示技術(shù)
當(dāng)電視節(jié)目和EPG應(yīng)用同時(shí)啟動(dòng)時(shí),用戶看到的可能是節(jié)目畫面和EPG界面的疊加,用戶所看到的電視畫面從前到后可以分為三層,依次為圖形層、視頻層和背景層。圖形層即OSD(On Screen Display)層,OSD界面顯示技術(shù)指在圖像畫面上疊加文字顯示,使屏幕為用戶提供更多的附加信息。視頻層為當(dāng)前正在收看的節(jié)目(解碼出來(lái)的活動(dòng)圖像);背景層為沒(méi)有播放電視節(jié)目和啟動(dòng)EPG菜單時(shí)的屏幕圖像。EPG畫面在圖形層上構(gòu)建,EPG畫面是由許多EPG圖形元素(如按鈕、文本框、選擇按鈕、組件容器等)疊加而成。界面的狀態(tài)轉(zhuǎn)移是通過(guò)消息驅(qū)動(dòng)的機(jī)制來(lái)實(shí)現(xiàn)的,在消息響應(yīng)函數(shù)中進(jìn)行消息處理。用見(jiàn)到的是屏幕圖像是這三層的疊加(blend)后的圖像。
SI數(shù)據(jù)檢索模塊快速的檢索本地SI數(shù)據(jù)庫(kù),提供EPG界面當(dāng)前輸入焦點(diǎn)所需的數(shù)據(jù)信息;OSD層圖形元素庫(kù)提供界面所需的圖形元素,該庫(kù)存于本地機(jī)頂盒的ROM中;狀態(tài)轉(zhuǎn)移控制器接收用戶遙控器的輸入,提供當(dāng)前顯示所需的活動(dòng)焦點(diǎn),控制狀態(tài)轉(zhuǎn)移地流向;OSD層圖像是指EPG界面圖形元素合成后的圖像;OSD繪制引擎決定顯示的相應(yīng)算法,接收各模塊提供的數(shù)據(jù),完成OSD層圖形的繪制,最后是OSD層、視頻層和背景層的疊加操作。
2.4.2
DC-618C的軟件升級(jí)方法有兩種,一種是使用串口的軟件升級(jí)功能,一種是使用網(wǎng)絡(luò)的在線升級(jí)方式。前一種方式,是從PC機(jī)上將軟件通過(guò)RS232串口下載到機(jī)頂盒中,由用戶自己操作,是一種個(gè)體行為;后一種方式,是由運(yùn)營(yíng)商將軟件放在服務(wù)器上,由用戶或運(yùn)營(yíng)商來(lái)觸發(fā)對(duì)機(jī)頂盒的軟件升級(jí)動(dòng)作。
我們主要介紹使用網(wǎng)絡(luò)的在線升級(jí)方式,考慮到兼容不同的網(wǎng)絡(luò)環(huán)境(單向網(wǎng)絡(luò)),我們使用將軟件廣播下來(lái),由機(jī)頂盒接收,然后替換原有軟件的方法,所采用的在線升級(jí)方式遵循DVB定義的系統(tǒng)軟件升級(jí)規(guī)范。
2.4.2.1 概述:
DVB標(biāo)準(zhǔn)定義了兩種軟件升級(jí)服務(wù),分別為簡(jiǎn)單和增強(qiáng)的軟件升級(jí)服務(wù)。前者使用NIT、BAT和PMT,不需要升級(jí)通知表(UNT),后者使用UNT來(lái)傳輸NIT、BAT和PMT無(wú)法攜帶的調(diào)度、定位和其它信息。
DC-618C目前支持簡(jiǎn)單的軟件升級(jí)服務(wù)。實(shí)際上,簡(jiǎn)單的軟件升級(jí)服務(wù)是增強(qiáng)的軟件升級(jí)服務(wù)的子集。
DC-618C采用DVB所定義的通過(guò)SI和PSI定位一個(gè)軟件升級(jí)服務(wù)的機(jī)制,基本方式是通過(guò)NIT或BAT定位一個(gè)網(wǎng)絡(luò)中包含系統(tǒng)軟件升級(jí)服務(wù)的傳輸流,再通過(guò)PMT在該傳輸流中定位系統(tǒng)軟件升級(jí)服務(wù)所在的基本流。
首先,DC-618C機(jī)頂盒通過(guò)檢測(cè)NIT和系統(tǒng)軟件升級(jí)BAT第一個(gè)循環(huán)中是否包含Linkage描述符來(lái)確定該網(wǎng)絡(luò)或業(yè)務(wù)群中是否包含軟件升級(jí)服務(wù)。連接類型為0x09的Linkage描述符攜帶了在一個(gè)網(wǎng)絡(luò)或業(yè)務(wù)群中定位傳輸一個(gè)系統(tǒng)軟件升級(jí)服務(wù)的傳輸流的信息。
DVB對(duì)用于系統(tǒng)軟件升級(jí)服務(wù)的Linkage描述符中的私有數(shù)據(jù)字段定義了一個(gè)系統(tǒng)軟件升級(jí)連接結(jié)構(gòu),其中包含一個(gè)24比特的IEEE OUI(Organization Unique Identifier,組織唯一標(biāo)識(shí))和一個(gè)選擇器,OUI可以用來(lái)標(biāo)識(shí)DC-618C機(jī)頂盒的生產(chǎn)廠家,選擇器用來(lái)標(biāo)識(shí)DC-618C機(jī)頂盒的型號(hào)。
DC-618C機(jī)頂盒還采用了另一個(gè)DVB定義的系統(tǒng)軟件升級(jí)服務(wù)掃描Linkage描述符,用來(lái)定義一個(gè)指向攜帶系統(tǒng)軟件升級(jí)BAT或NIT的指針。該描述符的連接類型為0x0A,可在BAT或NIT中傳輸。該描述符與類型為0x09的Linkage描述符不同,不包含OUI,目的是使機(jī)頂盒不用掃描所有的復(fù)用器就可以獲得描述系統(tǒng)軟件升級(jí)服務(wù)的BAT或NIT,實(shí)際上該描述符是Linkage描述符的一種補(bǔ)充,而且是可選的。
在NIT或系統(tǒng)軟件升級(jí)BAT中有多個(gè)Linkage描述符,標(biāo)識(shí)多個(gè)系統(tǒng)軟件升級(jí)服務(wù)。在暫時(shí)沒(méi)有升級(jí)服務(wù)時(shí),可以不從NIT或BAT中將這些描述符刪除。
對(duì)于包含系統(tǒng)軟件升級(jí)基本流的傳輸流,對(duì)應(yīng)的PMT包括data-broadcast-id描述符,其中data-broadcast-id等于0x000A,選擇器字段被DVB定義為系統(tǒng)軟件升級(jí)信息結(jié)構(gòu)(system-software-update-info),其中包含OUI、升級(jí)類型、升級(jí)版本和生產(chǎn)商定義的選擇器字段。對(duì)于一個(gè)專有的流,該描述符提供一個(gè)入口點(diǎn);對(duì)于一個(gè)標(biāo)準(zhǔn)的兩層數(shù)據(jù)輪播,該描述符也提供了一個(gè)入口點(diǎn);另外該描述符還提供一個(gè)UNT表的參考,指向增強(qiáng)的系統(tǒng)軟件升級(jí)服務(wù)。在當(dāng)前暫時(shí)沒(méi)有系統(tǒng)軟件升級(jí)服務(wù)時(shí),頭端播放軟件不會(huì)將該系統(tǒng)軟件升級(jí)服務(wù)的標(biāo)識(shí)從PMT的該描述符中刪除。
一個(gè)data-broadcast-id描述符只定義一個(gè)基本流,一個(gè)節(jié)目可以包含多個(gè)基本流,這樣一來(lái),就有多個(gè)系統(tǒng)軟件升級(jí)流(輪播),每個(gè)流由各自的data-broadcast-id描述符描述。另外,一個(gè)系統(tǒng)軟件升級(jí)服務(wù)也可以是一個(gè)服務(wù)的組件之一。
2.4.2.2 DC-618C用于升級(jí)服務(wù)的數(shù)據(jù)輪播結(jié)構(gòu)
DC-618C系統(tǒng)軟件服務(wù)采用DVB標(biāo)準(zhǔn)的兩層數(shù)據(jù)輪播協(xié)議來(lái)傳輸多個(gè)升級(jí)軟件數(shù)據(jù)。多個(gè)系統(tǒng)軟件升級(jí)服務(wù)構(gòu)成一個(gè)兩層的數(shù)據(jù)輪播服務(wù),DSI是該數(shù)據(jù)輪播的入口。DC-618C軟件升級(jí)系統(tǒng)有多個(gè)升級(jí)服務(wù),每個(gè)升級(jí)服務(wù)構(gòu)成一個(gè)單獨(dú)的組所有的組和模塊都在一個(gè)基本流中傳輸。
與標(biāo)準(zhǔn)的DVB數(shù)據(jù)輪播一樣,DSI消息包含GroupInfoIndication結(jié)構(gòu),其中的GroupCompaibility字段使用IEEE OUI來(lái)標(biāo)識(shí)我公司,該字段還用來(lái)描述機(jī)頂盒的型號(hào)和版本號(hào);GroupInfoByte(gi) 字段由一個(gè)描述符循環(huán)組成,描述了該升級(jí)服務(wù)組的各種信息,這些描述符是DVB標(biāo)準(zhǔn)數(shù)據(jù)輪播定義的描述符。
為了獨(dú)立地生成多個(gè)軟件升級(jí)服務(wù)數(shù)據(jù),并將這些獨(dú)立生成的數(shù)據(jù)集成在同一個(gè)數(shù)據(jù)輪播服務(wù)中,DC-618C機(jī)頂盒軟件升級(jí)服務(wù)系統(tǒng)還采用了DVB對(duì)于DII中的一些特定字段進(jìn)行的特別的規(guī)定;transactionId的兩個(gè)字節(jié)在0X0002—0XFFFF之間,并與對(duì)應(yīng)的DSI中g(shù)roupInfo結(jié)構(gòu)中的groupid相等;downloadId等于transactionId; moduleId的高8位的值與groupId的低8位相同,低8位表示一個(gè)特定的軟件升級(jí)服務(wù)moduleId,該服務(wù)最大支持256個(gè)模塊,對(duì)于軟件升級(jí)應(yīng)用來(lái)說(shuō)應(yīng)該是足夠的。
3 結(jié)束語(yǔ)
硬件是軟件運(yùn)行的平臺(tái),歸根結(jié)底,軟件部分是整個(gè)機(jī)頂盒的靈魂和核心,隨著信息網(wǎng)絡(luò)的快速發(fā)展,寬帶美景已經(jīng)非常清晰地展現(xiàn)在我們面前,豐富多彩的服務(wù)對(duì)終端接收設(shè)備提出了更高的要求,只有不斷的提高機(jī)頂盒軟、硬件的功能和性能才能跟得上市場(chǎng)不斷前進(jìn)的步伐。
參 考 文 獻(xiàn)
[1] 黎洪松編著。數(shù)字視頻技術(shù)及其應(yīng)用。清華大學(xué)出版社,1997
[2] 王連山。數(shù)字電視在有線電視網(wǎng)絡(luò)中的傳輸。有線電視技術(shù),2003.5
[3] ETSI. Digital Video Broadcasting(DVB): Framing structure, channel coding and modulation for cable system. EN300 429 v1.2.1, 1998.4
[4] 鐘玉琢等譯。運(yùn)動(dòng)圖像及其伴音通用編碼國(guó)際標(biāo)準(zhǔn)。清華大學(xué)出版社,1997
[5] STi5518 SINGLE-CHIP SET-TOP BOX DECODER WITH MP3 AND HARD DISK DRIVE SUPPORT DATA SHEET