基于和欣嵌入式操作系統(tǒng)的數(shù)字電視0SD工具開(kāi)發(fā)
掃描二維碼
隨時(shí)隨地手機(jī)看文章
討論了和欣嵌入式操作系統(tǒng)上數(shù)字電視0sD工具的開(kāi)發(fā),采用EZCOM技術(shù)構(gòu)建0SD中間件,設(shè)計(jì)實(shí)現(xiàn)了基于SDA55XX芯片的OSD開(kāi)發(fā)工具,并以此芯片為例,重點(diǎn)介紹了數(shù)字電視OSD開(kāi)發(fā)工具的設(shè)計(jì)思想、體系結(jié)構(gòu)以及基于此工具的OSD開(kāi)發(fā)方法。
數(shù)字電視服務(wù)的最大特點(diǎn)是除了支持傳統(tǒng)的音頻、視頻業(yè)務(wù)外,還提供了電視增值業(yè)務(wù),如視頻點(diǎn)播、數(shù)據(jù)廣播、個(gè)性化交互電視、遠(yuǎn)程教育、Internet、三網(wǎng)合一、電視電子商務(wù)和日常信息綜合服務(wù)等。而所有電視增值業(yè)務(wù),都是建立在強(qiáng)大的軟件開(kāi)發(fā)能力上的。在諸多數(shù)字電視要素中,在屏顯示系統(tǒng)0SD(0n Screen Display)是貫穿整個(gè)數(shù)字電視應(yīng)用和增值業(yè)務(wù)的主線(xiàn),所有的增值業(yè)務(wù)及數(shù)字電視控制都是通過(guò)0SD展現(xiàn)在用戶(hù)面前。因此,0SD開(kāi)發(fā)是數(shù)字電視軟件開(kāi)發(fā)中最關(guān)鍵的要素。 目前國(guó)內(nèi)普遍采用外國(guó)廠(chǎng)商提供的與芯片捆綁銷(xiāo)售的操作系統(tǒng)及在此系統(tǒng)上的OSD開(kāi)發(fā)工具。受?chē)?guó)外操作系統(tǒng)技術(shù)封閉的影響,國(guó)內(nèi)廠(chǎng)商將很難做剄自主開(kāi)發(fā),必須高度依賴(lài)國(guó)外廠(chǎng)商的技術(shù)支持。為了更好地發(fā)展我國(guó)的數(shù)字電視產(chǎn)業(yè),一方面要采用具有自主知識(shí)產(chǎn)權(quán)的操作系統(tǒng),另一方面還必須加快對(duì)數(shù)字電視軟件平臺(tái)相關(guān)技術(shù)的研究和開(kāi)發(fā)。和欣嵌入式操作系統(tǒng)是863課題“網(wǎng)絡(luò)化嵌入式支撐技術(shù)”的研究成果.是具有自主知識(shí)產(chǎn)權(quán)的操作系統(tǒng)。本課題是863課題“基于構(gòu)件、中間件技術(shù)的因特網(wǎng)操作系統(tǒng)及跨操作系統(tǒng)的構(gòu)件、中間件運(yùn)行平臺(tái)”的一部分。因此,本文對(duì)基于和欣數(shù)字電視OSD軟件開(kāi)發(fā)的研究,不僅具有重要的理論意義.還具有廣闊的應(yīng)用前景?!?1 和欣嵌入式操作系統(tǒng)及其構(gòu)件技術(shù)
和欣嵌入式操作系統(tǒng)技術(shù)體系所包括的ezCOM構(gòu)件技術(shù)、構(gòu)件運(yùn)行平臺(tái)技術(shù)以及開(kāi)發(fā)應(yīng)用軟件所需的集成開(kāi)發(fā)環(huán)境,是一個(gè)完整的面向構(gòu)件的應(yīng)用軟件開(kāi)發(fā)平臺(tái)。 和欣是32位嵌入式操作系統(tǒng)。操作系統(tǒng)基于微內(nèi)核,具有多進(jìn)程、多線(xiàn)程、搶占式、基于線(xiàn)程的多優(yōu)先級(jí)任務(wù)調(diào)度等特性。它提供FAT兼容的文件系統(tǒng),可以從軟盤(pán)、硬盤(pán)、Flash ROM啟動(dòng),也可以通過(guò)網(wǎng)絡(luò)啟動(dòng)。系統(tǒng)體積小,速度快,適合網(wǎng)絡(luò)時(shí)代的絕大部分嵌入式信息設(shè)備。 和欣操作系統(tǒng)完全面向構(gòu)件技術(shù),提供的功能模塊全部基于ezCOM構(gòu)件技術(shù),因此是可拆卸的構(gòu)件。應(yīng)用系統(tǒng)可以按照需要剪裁組裝,或在運(yùn)行時(shí)動(dòng)態(tài)加載必要的構(gòu)件?!膫鹘y(tǒng)的操作系統(tǒng)體系結(jié)構(gòu)的角度看,和欣操作系統(tǒng)可以看成是由微內(nèi)核、構(gòu)件支持模塊、系統(tǒng)服務(wù)器組成的。 2 SDA55xx芯片簡(jiǎn)介
SDA55xx微控制器是Micronas公司出品的一款主要用于電視機(jī)控制以及提供圖形圖像顯示的電視芯片。SDA55xx不僅能夠提供解碼全球圖文電視系統(tǒng)WSrl’(World System Teletext)功能,同時(shí)支持解碼其他諸如視頻演放系統(tǒng)VPS(Video Programming System)、節(jié)目傳送控制PDC(Program Delivery Contro1)以及用于PAL-plus(歐洲新電視播出制式)播放的寬屏幕信令WSS(WideScteen Signalling)。SDA55xx的數(shù)據(jù)分割器以及顯示部分支持非常廣泛的電視制式,包括PAL、NTSC以及上面提到的VPS、WSS、PDC、TTX和隱蔽字幕數(shù)據(jù)(Closed Caption Data)?!?3 DTV OSD工具的設(shè)計(jì)
3.1 設(shè)計(jì)思想
DTV OSD Developer是建立在DIV中間件平臺(tái)上的可視化開(kāi)發(fā)工具,它根據(jù)數(shù)字電視軟件開(kāi)發(fā)的特點(diǎn),把界面設(shè)計(jì)中使用頻繁的對(duì)象封裝為控件,以方便用戶(hù)調(diào)用。在開(kāi)發(fā)過(guò)程中所看到的用戶(hù)界面框架與程序運(yùn)行時(shí)的界面基本相同,這就使軟件設(shè)計(jì)可以在脫離真機(jī)的情況下完成,而不必把大量的時(shí)問(wèn)用于重復(fù)下載程序到芯片以及頻繁開(kāi)機(jī)調(diào)試,從而提高軟件開(kāi)發(fā)效率?!?3.2 體系結(jié)構(gòu)
嵌入式操作系統(tǒng)和DTV軟件開(kāi)發(fā)平臺(tái)中間件構(gòu)成了基于嵌入式操作系統(tǒng)的數(shù)字電視系統(tǒng)的開(kāi)發(fā)運(yùn)行環(huán)境。嵌入式實(shí)時(shí)操作系統(tǒng)及設(shè)備的上層應(yīng)用接口通過(guò)驅(qū)動(dòng)程序控制相應(yīng)設(shè)備,并對(duì)中間件提供系統(tǒng)服務(wù)。在數(shù)字電視軟件系統(tǒng)中,DTV軟件平臺(tái)中間件基于操作系統(tǒng)為應(yīng)用軟件提供運(yùn)行支持,同時(shí)對(duì)操作系統(tǒng)提供的設(shè)備控制接口進(jìn)行適當(dāng)封裝,由此形成的新接口解除了不同應(yīng)用提供商與不同的數(shù)字電視中特定的硬件和軟件細(xì)節(jié)問(wèn)的高度藕合關(guān)系,從而實(shí)現(xiàn)了內(nèi)容只需創(chuàng)作一次即可在“任何”地方運(yùn)行。 DTV軟件開(kāi)發(fā)平臺(tái)采用立體層次結(jié)構(gòu),作為系統(tǒng)構(gòu)件運(yùn)行在操作系統(tǒng)中間件運(yùn)行平臺(tái)上,由于構(gòu)件與外部應(yīng)用程序及操作系統(tǒng)的交互完全通過(guò)接口進(jìn)行,保證了構(gòu)件的實(shí)現(xiàn)細(xì)節(jié)不會(huì)影響到使用構(gòu)件的程序,使得它可以不斷根據(jù)功能需求和所支持應(yīng)用類(lèi)型增加新的功能和要求。其層次結(jié)構(gòu)如圖1所示。
在基于SDA55xx的OSD開(kāi)發(fā)中,由于開(kāi)發(fā)資料只有Miemnas公司提供的關(guān)于SDA55xx的詳細(xì)DATASHEET及開(kāi)發(fā)環(huán)境,包括一套Windows下的集成開(kāi)發(fā)環(huán)境(WINIDEA)軟件和一套模擬器設(shè)備,所以所有的開(kāi)發(fā)都從零開(kāi)始。要開(kāi)發(fā)基于SDA55xx的OSD系統(tǒng),就必須熟悉DATASHEET,掌握其內(nèi)部特殊寄存器的功能、內(nèi)部XRAM的分配、DRCS的結(jié)構(gòu)以及構(gòu)造方法。根據(jù)這些情況,筆者將基于SDA55xx的OSD開(kāi)發(fā)設(shè)計(jì)為以下流程: (1)OSD設(shè)計(jì)階段。主要進(jìn)行OSD界面設(shè)計(jì),此時(shí)設(shè)計(jì)的OSD界面就是最終呈現(xiàn)給用戶(hù)的界面,所以對(duì)于美觀(guān)及實(shí)用要求很高; (2)模塊設(shè)計(jì)階段。根據(jù)OSD設(shè)計(jì)階段設(shè)計(jì)的OSD界面,分析其中包括的主要元素,然后將每個(gè)元素的繪制封裝成一個(gè)個(gè)模塊。此階段的主要任務(wù)是:明確風(fēng)格OSD界面中的元素,定義每個(gè)模塊的結(jié)構(gòu)等; (3)具體實(shí)現(xiàn)階段。這一階段主要實(shí)現(xiàn)每個(gè)模塊的繪制功能,其工作是分配XRAM、構(gòu)造DRCS及配置特殊寄存器。模塊繪制功能實(shí)現(xiàn)后,由主程序調(diào)用繪制模塊完成OSD菜單系統(tǒng)。圖2是基本系統(tǒng)結(jié)構(gòu)。此結(jié)構(gòu)中OSD界面及模塊設(shè)計(jì)都很重要,但主要工作是最后的DRCS的構(gòu)造、XRAM的分配及特殊寄存器的賦值。
DTV Visual Developer主要由四個(gè)工作區(qū)組成:
(1)OSD TreeView:是編輯菜單狀態(tài)的主要場(chǎng)所,菜單狀態(tài)采用樹(shù)狀結(jié)構(gòu)表示,父菜單與子菜單的關(guān)系通過(guò)父節(jié)點(diǎn)與子節(jié)點(diǎn)的關(guān)系模擬。
(2)Menu Designer:是用戶(hù)界面設(shè)計(jì)的工作區(qū),在這里設(shè)計(jì)的用戶(hù)界面框架與程序運(yùn)行時(shí)的圖形界面基本相同,它提供了添加、刪除以及調(diào)整控件形狀和位置的功能。
(3)nems Window:其中每一項(xiàng)都對(duì)應(yīng)于一個(gè)菜單的狀態(tài),它包含了這個(gè)菜單狀態(tài)下的所有控件,無(wú)論該控件是可見(jiàn)或不可見(jiàn)的。
(4)Properties Window:可以編輯選中控件的各種屬性和行為。此外,DTV Visual Developer還提供了諸如變量表、字符串表和顏色表等方便用戶(hù)使用的功能。同時(shí),這個(gè)集成開(kāi)發(fā)環(huán)境也是可配置的,例如控件的種類(lèi)、每種控件的屬性以及程序中使用的字庫(kù)等都可以根據(jù)用戶(hù)的需要定制。這就保證了對(duì)開(kāi)發(fā)工具的靈活性和適應(yīng)性的要求。 3.5 DTV OSD Developer的設(shè)計(jì)要點(diǎn)
在DTV OSD Developer中,所有菜單狀態(tài)均被抽象為OSD TreeView中的一個(gè)樹(shù)節(jié)點(diǎn),每個(gè)狀態(tài)都對(duì)應(yīng)一個(gè)惟一編號(hào)。編號(hào)中除最后兩位外,其余每?jī)晌淮硪粋€(gè)菜單層次,如“01FFFFFF0l”表示這個(gè)程序中的菜單深度最大為四層,而最后兩位則表示此菜單狀態(tài)所對(duì)應(yīng)的通道,如01代表TV,02代表AV等。子菜單狀態(tài)標(biāo)號(hào)的前幾位應(yīng)與父菜單狀態(tài)標(biāo)號(hào)的相應(yīng)位一致,如菜單狀態(tài)“01FFFFFF01”的第一個(gè)子菜單編號(hào)應(yīng)該是“0100FFFF01”,這樣,當(dāng)程序在各菜單狀態(tài)中跳轉(zhuǎn)時(shí)可以方便地通過(guò)它們的狀態(tài)編號(hào)進(jìn)行調(diào)度。 每個(gè)菜單狀態(tài)都被封裝成為一個(gè)枚舉結(jié)構(gòu),如TV通道下的主菜單狀態(tài)可由以下結(jié)構(gòu)表示:
4 基于DTV OSD Developer的數(shù)宇電視軟件開(kāi)發(fā)方法
在使用可視化開(kāi)發(fā)工具DTV OSD Developer的數(shù)字電視軟件開(kāi)發(fā)過(guò)程中,所有的DTV應(yīng)用程序都將抽象成為控件集合+資源集合的模式,如圖3所示。