《電子技術(shù)應(yīng)用》
您所在的位置:首頁(yè) > 嵌入式技術(shù) > 設(shè)計(jì)應(yīng)用 > 基于ARM-Linux的高清數(shù)字機(jī)頂盒軟件系統(tǒng)設(shè)計(jì)與實(shí)現(xiàn)
基于ARM-Linux的高清數(shù)字機(jī)頂盒軟件系統(tǒng)設(shè)計(jì)與實(shí)現(xiàn)
來(lái)源:微型機(jī)與應(yīng)用2010年第9期
龔士強(qiáng),,熊慶宇
(重慶大學(xué) 自動(dòng)化學(xué)院,重慶 400044)
摘要: 介紹了一種在嵌入式Linux系統(tǒng)下數(shù)字高清晰度電視機(jī)頂盒系統(tǒng)軟件的研究與開(kāi)發(fā),。該軟件配合機(jī)頂盒硬件平臺(tái)構(gòu)成一個(gè)整機(jī)系統(tǒng),,在完成整個(gè)軟件系統(tǒng)構(gòu)架的基礎(chǔ)上探討了其設(shè)計(jì)方法的合理性和可靠性等問(wèn)題,。該軟件系統(tǒng)具有解調(diào)、解碼外,,還能向用戶提供一系列選單式圖形菜單界面的交互操作等功能,。
Abstract:
Key words :

摘  要: 介紹了一種在嵌入式Linux系統(tǒng)下數(shù)字高清晰度電視機(jī)頂盒系統(tǒng)軟件的研究與開(kāi)發(fā)。該軟件配合機(jī)頂盒硬件平臺(tái)構(gòu)成一個(gè)整機(jī)系統(tǒng),,在完成整個(gè)軟件系統(tǒng)構(gòu)架的基礎(chǔ)上探討了其設(shè)計(jì)方法的合理性和可靠性等問(wèn)題,。該軟件系統(tǒng)具有解調(diào)、解碼外,,還能向用戶提供一系列選單式圖形菜單界面的交互操作等功能,。
關(guān)鍵詞: 嵌入式;機(jī)頂盒系統(tǒng)軟件,;ARM-Linux,;MiniGUI

    數(shù)字電視特別是數(shù)字高清晰度電視的誕生應(yīng)該說(shuō)是電視界的一場(chǎng)深刻變革[1]。電視系統(tǒng)已進(jìn)入數(shù)字化的進(jìn)程,,數(shù)字機(jī)頂盒是該系統(tǒng)的關(guān)鍵部件,,特別是其軟件系統(tǒng)的設(shè)計(jì)和開(kāi)發(fā)。但無(wú)論是模擬彩電還是數(shù)字處理電視,,都不具備對(duì)全數(shù)字電視信號(hào)進(jìn)行解碼的功能,,所以一種能夠接收數(shù)字電視信號(hào)并能夠解碼輸出用于顯示的中間設(shè)備——機(jī)頂盒,就顯得很有必要了[2],。
    目前國(guó)內(nèi)機(jī)頂盒以有線標(biāo)清為主,,歐洲以衛(wèi)星和地面的機(jī)頂盒為主,美國(guó)以高清地面機(jī)頂盒產(chǎn)品為主[3],。隨著技術(shù)的發(fā)展,,機(jī)頂盒已不只單純接收數(shù)字電視節(jié)目,還要接收大量的數(shù)據(jù),,而且用戶和電視機(jī)之間還要實(shí)現(xiàn)互動(dòng)[4],。目前國(guó)內(nèi)還沒(méi)有一種成熟的交互式應(yīng)用,所謂的交互式應(yīng)用基本上都還停留在本地交互的基礎(chǔ)上[5],。本文研究的機(jī)頂盒可以支持諸如電子節(jié)目指南,、按次付費(fèi)觀看、立即按次付費(fèi)觀看,、準(zhǔn)視頻點(diǎn)播,、數(shù)據(jù)廣播、Internet接入,、電子郵件,、視頻點(diǎn)播以及IP電話、可視電話等的應(yīng)用[6],。因此要求電視接收機(jī)具有很好的信息處理能力和網(wǎng)絡(luò)通信能力,。
1 機(jī)頂盒軟件系統(tǒng)
    數(shù)字機(jī)頂盒由硬件平臺(tái)和軟件系統(tǒng)構(gòu)成,音視頻解碼主要由硬件實(shí)現(xiàn),,而操作界面的功能,、電視圖像的重現(xiàn)、數(shù)據(jù)廣播業(yè)務(wù)的平臺(tái)以及Internet的接入等都需要軟件系統(tǒng)實(shí)現(xiàn)[7],。
    數(shù)字機(jī)頂盒的軟件系統(tǒng)主要由嵌入式操作系統(tǒng)(EOS),、硬件抽象層(HAL)、軟件抽象層(SAL)以及應(yīng)用程序(ASL)組成,。本文主要研究基于ARM(HHARMS3C6410)平臺(tái),、Linux(v2.6.21)操作系統(tǒng)、THOMSON公司的數(shù)字高清解碼芯片的HDTV機(jī)頂盒系統(tǒng)的軟件設(shè)計(jì),,功能包括通過(guò)Demux模塊接收流數(shù)據(jù),、解析PSI信息,、對(duì)音視頻流進(jìn)行解碼及播放、接收用戶遙控器輸入,,并具有簡(jiǎn)單的用戶界面,。研究的目標(biāo)是開(kāi)發(fā)出適用于所選的硬件平臺(tái)特點(diǎn)、具有基本的機(jī)頂盒產(chǎn)品功能的軟件系統(tǒng),。
    開(kāi)發(fā)內(nèi)容有以下幾個(gè)方面:
    (1)機(jī)頂盒底層驅(qū)動(dòng)程序,。包括前端、USB,、Enthernet,、Flash的驅(qū)動(dòng)及遙控信號(hào)接收的軟件等。
    (2)機(jī)頂盒節(jié)目管理模塊,。包括整機(jī)狀態(tài)信息和用戶設(shè)置信息的存取和管理,,業(yè)務(wù)數(shù)據(jù)的存取、更新和管理,,節(jié)目數(shù)據(jù)的獲取,、分析。
    (3)機(jī)頂盒應(yīng)用程序,。包括機(jī)頂盒用戶界面,、選單的設(shè)計(jì)與顯示、圖形用戶界面/選單/用戶交互操作的應(yīng)用和管理等,。
    軟件系統(tǒng)整體結(jié)構(gòu)如圖1所示,。

2 節(jié)目管理模塊的開(kāi)發(fā)
    節(jié)目操作管理模塊是用戶應(yīng)用程序的重要組成部分,該軟件模塊主要實(shí)現(xiàn)確定節(jié)目操作管理模塊與系統(tǒng)其他模塊的關(guān)系(包括相互之間的通信協(xié)議),、建立節(jié)目數(shù)據(jù)庫(kù),、本模塊內(nèi)部軟件結(jié)構(gòu)的設(shè)計(jì)。
    有關(guān)節(jié)目的各種操作是數(shù)字電視機(jī)頂盒軟件功能中非常重要的一部分,,用戶所有有關(guān)頻道,、節(jié)目的實(shí)質(zhì)性操作功能都在這部份實(shí)現(xiàn)。在本文的總體設(shè)計(jì)方案中,,節(jié)目的操作功能主要包括節(jié)目搜索(自動(dòng)和手動(dòng)),、節(jié)目選擇、節(jié)目信息的提取和保存,、節(jié)目數(shù)據(jù)庫(kù)操作等,。
    在本機(jī)頂盒有關(guān)節(jié)目操作的各種功能中,絕大部分都與節(jié)目數(shù)據(jù)庫(kù)有關(guān),。如自動(dòng)節(jié)目搜索時(shí),,需要建立節(jié)目數(shù)據(jù)庫(kù),并為搜索到的節(jié)目建立相應(yīng)的數(shù)據(jù)單元,用于存儲(chǔ)節(jié)目的各種信息,;在刪除節(jié)目時(shí),,需要改變刪除節(jié)目在節(jié)目數(shù)據(jù)庫(kù)中的連接關(guān)系,并打上刪除標(biāo)志等,。因此,,節(jié)目數(shù)據(jù)庫(kù)是節(jié)目操作軟件的關(guān)鍵部分之一。
2.1 Builder模塊
    該模塊主要功能是在USIF的控制下建立節(jié)目數(shù)據(jù)庫(kù),,該模塊通過(guò)MSG Mgr向USIF反饋搜索狀態(tài)以及內(nèi)容,,根據(jù)用戶的需要建立頻點(diǎn),、頻道信息數(shù)據(jù)庫(kù),。Builder模塊結(jié)構(gòu)圖如圖2所示。

    Builder主要支持3種搜索方式:
    (1)盲掃,。根據(jù)預(yù)置頻點(diǎn)搜索節(jié)目信息,,建立完整節(jié)目數(shù)據(jù)庫(kù)。
    (2)網(wǎng)絡(luò)搜索,。根據(jù)輸入頻點(diǎn)搜索NIT表,,根據(jù)網(wǎng)絡(luò)信息搜索該網(wǎng)絡(luò)的所有節(jié)目信息,建立完整的網(wǎng)絡(luò)節(jié)目信息數(shù)據(jù)庫(kù),。
    (3)手動(dòng)搜索,。根據(jù)輸入頻點(diǎn)搜索該頻點(diǎn),建立該頻點(diǎn)完整的節(jié)目信息數(shù)據(jù)庫(kù),。
2.2 PSI模塊
    PSI模塊需要Demux模塊提供Section數(shù)據(jù)的搜索功能,,其建立在Demux驅(qū)動(dòng)之上,為EPG,、Builder等模塊提供完整表及條件捕獲接口,。PSI模塊結(jié)構(gòu)圖如圖3所示。

    PSI模塊提供2種得到表方式:
    GetTable:通過(guò)該功能接口,,直接得到表數(shù)據(jù)返回,,如果超時(shí)沒(méi)有得到表數(shù)據(jù),返回超時(shí),。
    Capture:通過(guò)該功能接口,,先提出表申請(qǐng),通過(guò)異步通信方式獲得表結(jié)構(gòu)并通知應(yīng)用模塊,。
    在捕獲方式中都有3種模式:
    (1)Update Mode:在得到版本更新時(shí)通知應(yīng)用模塊,。
    (2)Complete Mode:當(dāng)?shù)玫酵暾斫Y(jié)構(gòu)時(shí)通知應(yīng)用模塊。
    (3)Section Mode:當(dāng)接收到Section數(shù)據(jù)時(shí)候就立即通知應(yīng)用模塊,。
2.3 DBaseMgr模塊
    該模塊是一個(gè)數(shù)據(jù)庫(kù)管理系統(tǒng),,主要功能是實(shí)現(xiàn)對(duì)頻道、頻點(diǎn)、系統(tǒng)信息,、EPG等信息的存儲(chǔ)與管理,,以及對(duì)節(jié)目頻點(diǎn)的添加、刪除,、排序,、查找、編輯等,。該模塊主要與Builder,、EPG、USIF,、Player 4個(gè)模塊交互,,并通過(guò)與Flash交互進(jìn)行物理操作。為了保證數(shù)據(jù)元素操作的效率,,避免產(chǎn)生大量的內(nèi)存碎片,,也為了元素操作方便,該設(shè)計(jì)以靜動(dòng)結(jié)合的思路采用靜態(tài)雙向鏈表的數(shù)據(jù)結(jié)構(gòu),。在多個(gè)進(jìn)程或線程同時(shí)對(duì)同一個(gè)數(shù)據(jù)庫(kù)進(jìn)行操作時(shí),,要考慮同步互斥機(jī)制了。在對(duì)數(shù)據(jù)庫(kù)進(jìn)行任何操作之前先對(duì)數(shù)據(jù)庫(kù)加鎖,,當(dāng)數(shù)據(jù)庫(kù)操作完成之后,,再解鎖,這樣就保證了數(shù)據(jù)庫(kù)操作的一致性,。數(shù)據(jù)庫(kù)模塊結(jié)構(gòu)如圖4所示,。

    數(shù)據(jù)庫(kù)管理系統(tǒng)功能特點(diǎn)主要有以下幾點(diǎn):
    (1)功能完備。該模塊需要提供完備的功能接口,,包括數(shù)據(jù)庫(kù)的創(chuàng)建,、管理以及刪除等基本操作。另還需要滿足多視窗操作,。
    (2)多用戶操作,。本系統(tǒng)采用的是嵌入式Linux系統(tǒng),它是一個(gè)多用戶分時(shí)系統(tǒng),,所以該數(shù)據(jù)庫(kù)需要保證同時(shí)滿足多用戶操作需要,,保證系統(tǒng)的安全。
    (3)數(shù)據(jù)完整,。本系統(tǒng)屬于嵌入式系統(tǒng),,該模塊必須保證掉電后數(shù)據(jù)庫(kù)數(shù)據(jù)的完整性。
    從前幾節(jié)的內(nèi)容可以看出,,有關(guān)節(jié)目的操作與PSI表的處理有著十分密切的關(guān)系,。這是因?yàn)镻SI表的分析管理直接影響到節(jié)目數(shù)據(jù)庫(kù)的內(nèi)容,而節(jié)目的各種操作又都是與數(shù)據(jù)庫(kù)緊密相連的。節(jié)目操作管理部分的軟件設(shè)計(jì)主要可分成3大部分:PSI表處理模塊,、節(jié)目數(shù)據(jù)庫(kù)模塊和節(jié)目操作模塊,。其中PSI處理模塊主要完成PSI表的各種操作,如表的獲取,、分析及管理等,;節(jié)目數(shù)據(jù)庫(kù)模塊主要完成關(guān)于數(shù)據(jù)庫(kù)的操作,如數(shù)據(jù)庫(kù)的初始化,、建立,、內(nèi)容的讀寫(xiě)及更新等;節(jié)目操作模塊則實(shí)現(xiàn)有關(guān)節(jié)目的操作,,如節(jié)目的搜索,、刪除、恢復(fù),、選擇等,。這3部分有機(jī)結(jié)合起來(lái)就形成了節(jié)目操作的整體軟件模塊,。
3 機(jī)頂盒應(yīng)用程序的開(kāi)發(fā)
    機(jī)頂盒應(yīng)用程序主要實(shí)現(xiàn)用戶交互選單的顯示等功能,,因此選擇MiniGUI開(kāi)源軟件開(kāi)發(fā)機(jī)頂盒應(yīng)用程序。
    MiniGUI作為嵌入式Linux系統(tǒng)下的一個(gè)輕量級(jí)圖形用戶界面支持系統(tǒng)已被應(yīng)用到很多實(shí)際項(xiàng)目中,。與其他嵌入式GUI相比,,其具有系統(tǒng)資源消耗小、可配置和可定制性高,、穩(wěn)定性高,、可移植性好等優(yōu)勢(shì)。
    MiniGUI具有良好的軟件架構(gòu),,通過(guò)抽象層IAL,、GAL將MiniGUI上層和底層操作系統(tǒng)隔離開(kāi)來(lái)?;贛iniGUI的應(yīng)用程序一般通過(guò)支持庫(kù),、操作系統(tǒng)和驅(qū)動(dòng)程序接口以及MiniGUI自身提供的API來(lái)實(shí)現(xiàn)自己的功能。
    基于MiniGUI開(kāi)發(fā)的UI模塊如圖5所示,。UI模塊主要滿足用戶通過(guò)遙控器進(jìn)行節(jié)目搜索,、播放、換臺(tái)以及節(jié)目瀏覽等操作,。

    UI模塊的體系結(jié)構(gòu)如圖6所示,。

    本研發(fā)項(xiàng)目,形成了一套包括Linux操作系統(tǒng)移植,、驅(qū)動(dòng)程序,、MiniGUI庫(kù)移植和上層應(yīng)用程序在內(nèi)的機(jī)頂盒軟件系統(tǒng)。該軟件配合機(jī)頂盒硬件平臺(tái)構(gòu)成了基本實(shí)用的整機(jī)系統(tǒng),經(jīng)測(cè)試該系統(tǒng)的設(shè)計(jì)方法具有很好的合理性和穩(wěn)定性,。本項(xiàng)目采用的傳輸標(biāo)準(zhǔn)是我國(guó)目前采用的DVB-C標(biāo)準(zhǔn),,因此,在系統(tǒng)整體功能的定位上,,主要考慮了DVB-C標(biāo)準(zhǔn)的特點(diǎn),,在軟件功能上也側(cè)重了對(duì)DVB-C PSI的支持。該軟件實(shí)現(xiàn)的功能主要有:一方面機(jī)頂盒利用該軟件可以實(shí)現(xiàn)基本的解調(diào),、信道解碼,、音/視頻解碼輸出等功能;另一方面還能向用戶提供一系列選單式的交互操作功能,,實(shí)現(xiàn)諸如節(jié)目搜索,、系統(tǒng)設(shè)置的改變存儲(chǔ)、節(jié)目信息的查看,、定時(shí)操作,、電子節(jié)目指南、本地存儲(chǔ)節(jié)目的快進(jìn)快退等附加功能,。這些功能的實(shí)現(xiàn)基本滿足了當(dāng)前用戶對(duì)高清數(shù)字機(jī)頂盒的要求,。我國(guó)是彩電大國(guó),但目前機(jī)頂盒還很不普及,,因此該項(xiàng)目不僅具有很好的研究?jī)r(jià)值,,而且具有廣闊的市場(chǎng)前景。
參考文獻(xiàn)
[1] 張晟,,郭小勤.?dāng)?shù)字機(jī)頂盒軟件設(shè)計(jì)[J].中國(guó)有線電視,,2007(14):1367-1369.
[2] 鄭端建,郭磊,,魏世民.MiniGUI圖形庫(kù)在嵌入式Linux平臺(tái)上的移植與實(shí)現(xiàn)[J].儀表技術(shù),,2008(10):10-14.
[3] 林德才,李?lèi)?,魏芳.基于STB7100的高清IPTV機(jī)頂盒設(shè)計(jì)[J].電視技術(shù),,2008(1):47-49.
[4] 黃欣,陳珊,,俞斯樂(lè).基于ST解決方案的HDTV機(jī)頂盒軟件的設(shè)計(jì)實(shí)現(xiàn)[J].信息終端,,2002(7):63-65.
[5] 胡宏平.基于數(shù)字電視機(jī)頂盒的嵌入式Linux操作系統(tǒng)的設(shè)計(jì)[J].電視技術(shù),2005(8):52-57.
[6] YU Si Le,, CHEN Shan. An improved structure of pre-determined parental viewing control data in software design for ATSC receiver[J]. IEEE Trans,, on CE, 2002,,48(1).
[7] 陳珊,,俞斯樂(lè).?dāng)?shù)字電視接收機(jī)中電子節(jié)目指南功能的軟件實(shí)現(xiàn)研究[J].NSBT,,北京:2000.

此內(nèi)容為AET網(wǎng)站原創(chuàng),未經(jīng)授權(quán)禁止轉(zhuǎn)載,。