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