基于A(yíng)RM-Linux的高清數字機頂盒軟件系統設計
數字電視特別是數字高清晰度電視的誕生應該說(shuō)是電視界的一場(chǎng)深刻變革[1]。電視系統已進(jìn)入數字化的進(jìn)程,數字機頂盒是該系統的關(guān)鍵部件,特別是其軟件系統的設計和開(kāi)發(fā)。但無(wú)論是模擬彩電還是數字處理電視,都不具備對全數字電視信號進(jìn)行解碼的功能,所以一種能夠接收數字電視信號并能夠解碼輸出用于顯示的中間設備——機頂盒,就顯得很有必要了[2]。
目前國內機頂盒以有線(xiàn)標清為主,歐洲以衛星和地面的機頂盒為主,美國以高清地面機頂盒產(chǎn)品為主[3]。隨著(zhù)技術(shù)的發(fā)展,機頂盒已不只單純接收數字電視節目,還要接收大量的數據,而且用戶(hù)和電視機之間還要實(shí)現互動(dòng)[4]。目前國內還沒(méi)有一種成熟的交互式應用,所謂的交互式應用基本上都還停留在本地交互的基礎上[5]。本文研究的機頂盒可以支持諸如電子節目指南、按次付費觀(guān)看、立即按次付費觀(guān)看、準視頻點(diǎn)播、數據廣播、Internet接入、電子郵件、視頻點(diǎn)播以及IP電話(huà)、可視電話(huà)等的應用[6]。因此要求電視接收機具有很好的信息處理能力和網(wǎng)絡(luò )通信能力。
1 機頂盒軟件系統
數字機頂盒由硬件平臺和軟件系統構成,音視頻解碼主要由硬件實(shí)現,而操作界面的功能、電視圖像的重現、數據廣播業(yè)務(wù)的平臺以及Internet的接入等都需要軟件系統實(shí)現[7]。
數字機頂盒的軟件系統主要由嵌入式操作系統(EOS)、硬件抽象層(HAL)、軟件抽象層(SAL)以及應用程序(ASL)組成。本文主要研究基于A(yíng)RM(HHARMS3C6410)平臺、Linux(v2.6.21)操作系統、THOMSON公司的數字高清解碼芯片的HDTV機頂盒系統的軟件設計,功能包括通過(guò)Demux模塊接收流數據、解析PSI信息、對音視頻流進(jìn)行解碼及播放、接收用戶(hù)遙控器輸入,并具有簡(jiǎn)單的用戶(hù)界面。研究的目標是開(kāi)發(fā)出適用于所選的硬件平臺特點(diǎn)、具有基本的機頂盒產(chǎn)品功能的軟件系統。
開(kāi)發(fā)內容有以下幾個(gè)方面:
(1)機頂盒底層驅動(dòng)程序。包括前端、USB、Enthernet、Flash的驅動(dòng)及遙控信號接收的軟件等。
(2)機頂盒節目管理模塊。包括整機狀態(tài)信息和用戶(hù)設置信息的存取和管理,業(yè)務(wù)數據的存取、更新和管理,節目數據的獲取、分析。
(3)機頂盒應用程序。包括機頂盒用戶(hù)界面、選單的設計與顯示、圖形用戶(hù)界面/選單/用戶(hù)交互操作的應用和管理等。
軟件系統整體結構如圖1所示。
2 節目管理模塊的開(kāi)發(fā)
節目操作管理模塊是用戶(hù)應用程序的重要組成部分,該軟件模塊主要實(shí)現確定節目操作管理模塊與系統其他模塊的關(guān)系(包括相互之間的通信協(xié)議)、建立節目數據庫、本模塊內部軟件結構的設計。
有關(guān)節目的各種操作是數字電視機頂盒軟件功能中非常重要的一部分,用戶(hù)所有有關(guān)頻道、節目的實(shí)質(zhì)性操作功能都在這部份實(shí)現。在本文的總體設計方案中,節目的操作功能主要包括節目搜索(自動(dòng)和手動(dòng))、節目選擇、節目信息的提取和保存、節目數據庫操作等。
在本機頂盒有關(guān)節目操作的各種功能中,絕大部分都與節目數據庫有關(guān)。如自動(dòng)節目搜索時(shí),需要建立節目數據庫,并為搜索到的節目建立相應的數據單元,用于存儲節目的各種信息;在刪除節目時(shí),需要改變刪除節目在節目數據庫中的連接關(guān)系,并打上刪除標志等。因此,節目數據庫是節目操作軟件的關(guān)鍵部分之一。
2.1 Builder模塊
該模塊主要功能是在USIF的控制下建立節目數據庫,該模塊通過(guò)MSG Mgr向USIF反饋搜索狀態(tài)以及內容,根據用戶(hù)的需要建立頻點(diǎn)、頻道信息數據庫。Builder模塊結構圖如圖2所示。
Builder主要支持3種搜索方式:
(1)盲掃。根據預置頻點(diǎn)搜索節目信息,建立完整節目數據庫。
(2)網(wǎng)絡(luò )搜索。根據輸入頻點(diǎn)搜索NIT表,根據網(wǎng)絡(luò )信息搜索該網(wǎng)絡(luò )的所有節目信息,建立完整的網(wǎng)絡(luò )節目信息數據庫。
(3)手動(dòng)搜索。根據輸入頻點(diǎn)搜索該頻點(diǎn),建立該頻點(diǎn)完整的節目信息數據庫。
2.2 PSI模塊
PSI模塊需要Demux模塊提供Section數據的搜索功能,其建立在Demux驅動(dòng)之上,為EPG、Builder等模塊提供完整表及條件捕獲接口。PSI模塊結構圖如圖3所示。
PSI模塊提供2種得到表方式:
GetTable:通過(guò)該功能接口,直接得到表數據返回,如果超時(shí)沒(méi)有得到表數據,返回超時(shí)。
Capture:通過(guò)該功能接口,先提出表申請,通過(guò)異步通信方式獲得表結構并通知應用模塊。
在捕獲方式中都有3種模式:
(1)Update Mode:在得到版本更新時(shí)通知應用模塊。
(2)Complete Mode:當得到完整表結構時(shí)通知應用模塊。
(3)Section Mode:當接收到Section數據時(shí)候就立即通知應用模塊。
2.3 DBaseMgr模塊
該模塊是一個(gè)數據庫管理系統,主要功能是實(shí)現對頻道、頻點(diǎn)、系統信息、EPG等信息的存儲與管理,以及對節目頻點(diǎn)的添加、刪除、排序、查找、編輯等。該模塊主要與Builder、EPG、USIF、Player 4個(gè)模塊交互,并通過(guò)與Flash交互進(jìn)行物理操作。為了保證數據元素操作的效率,避免產(chǎn)生大量的內存碎片,也為了元素操作方便,該設計以靜動(dòng)結合的思路采用靜態(tài)雙向鏈表的數據結構。在多個(gè)進(jìn)程或線(xiàn)程同時(shí)對同一個(gè)數據庫進(jìn)行操作時(shí),要考慮同步互斥機制了。在對數據庫進(jìn)行任何操作之前先對數據庫加鎖,當數據庫操作完成之后,再解鎖,這樣就保證了數據庫操作的一致性。數據庫模塊結構如圖4所示。
數據庫管理系統功能特點(diǎn)主要有以下幾點(diǎn):
(1)功能完備。該模塊需要提供完備的功能接口,包括數據庫的創(chuàng )建、管理以及刪除等基本操作。另還需要滿(mǎn)足多視窗操作。
(2)多用戶(hù)操作。本系統采用的是嵌入式Linux系統,它是一個(gè)多用戶(hù)分時(shí)系統,所以該數據庫需要保證同時(shí)滿(mǎn)足多用戶(hù)操作需要,保證系統的安全。
(3)數據完整。本系統屬于嵌入式系統,該模塊必須保證掉電后數據庫數據的完整性。
從前幾節的內容可以看出,有關(guān)節目的操作與PSI表的處理有著(zhù)十分密切的關(guān)系。這是因為PSI表的分析管理直接影響到節目數據庫的內容,而節目的各種操作又都是與數據庫緊密相連的。節目操作管理部分的軟件設計主要可分成3大部分:PSI表處理模塊、節目數據庫模塊和節目操作模塊。其中PSI處理模塊主要完成PSI表的各種操作,如表的獲取、分析及管理等;節目數據庫模塊主要完成關(guān)于數據庫的操作,如數據庫的初始化、建立、內容的讀寫(xiě)及更新等;節目操作模塊則實(shí)現有關(guān)節目的操作,如節目的搜索、刪除、恢復、選擇等。這3部分有機結合起來(lái)就形成了節目操作的整體軟件模塊。
3 機頂盒應用程序的開(kāi)發(fā)
機頂盒應用程序主要實(shí)現用戶(hù)交互選單的顯示等功能,因此選擇MiniGUI開(kāi)源軟件開(kāi)發(fā)機頂盒應用程序。
MiniGUI作為嵌入式Linux系統下的一個(gè)輕量級圖形用戶(hù)界面支持系統已被應用到很多實(shí)際項目中。與其他嵌入式GUI相比,其具有系統資源消耗小、可配置和可定制性高、穩定性高、可移植性好等優(yōu)勢。
MiniGUI具有良好的軟件架構,通過(guò)抽象層IAL、GAL將MiniGUI上層和底層操作系統隔離開(kāi)來(lái)?;贛iniGUI的應用程序一般通過(guò)支持庫、操作系統和驅動(dòng)程序接口以及MiniGUI自身提供的API來(lái)實(shí)現自己的功能。
基于MiniGUI開(kāi)發(fā)的UI模塊如圖5所示。UI模塊主要滿(mǎn)足用戶(hù)通過(guò)遙控器進(jìn)行節目搜索、播放、換臺以及節目瀏覽等操作。
UI模塊的體系結構如圖6所示。
本研發(fā)項目,形成了一套包括Linux操作系統移植、驅動(dòng)程序、MiniGUI庫移植和上層應用程序在內的機頂盒軟件系統。該軟件配合機頂盒硬件平臺構成了基本實(shí)用的整機系統,經(jīng)測試該系統的設計方法具有很好的合理性和穩定性。本項目采用的傳輸標準是我國目前采用的DVB-C標準,因此,在系統整體功能的定位上,主要考慮了DVB-C標準的特點(diǎn),在軟件功能上也側重了對DVB-C PSI的支持。該軟件實(shí)現的功能主要有:一方面機頂盒利用該軟件可以實(shí)現基本的解調、信道解碼、音/視頻解碼輸出等功能;另一方面還能向用戶(hù)提供一系列選單式的交互操作功能,實(shí)現諸如節目搜索、系統設置的改變存儲、節目信息的查看、定時(shí)操作、電子節目指南、本地存儲節目的快進(jìn)快退等附加功能。這些功能的實(shí)現基本滿(mǎn)足了當前用戶(hù)對高清數字機頂盒的要求。我國是彩電大國,但目前機頂盒還很不普及,因此該項目不僅具有很好的研究?jì)r(jià)值,而且具有廣闊的市場(chǎng)前景。
linux操作系統文章專(zhuān)題:linux操作系統詳解(linux不再難懂)
評論