亚洲免费av电影一区二区三区,日韩爱爱视频,51精品视频一区二区三区,91视频爱爱,日韩欧美在线播放视频,中文字幕少妇AV,亚洲电影中文字幕,久久久久亚洲av成人网址,久久综合视频网站,国产在线不卡免费播放

        ?

        適用于嵌入式系統(tǒng)的DTV Linux設(shè)備框架構(gòu)建

        2017-04-13 01:34:40
        軟件導(dǎo)刊 2017年3期
        關(guān)鍵詞:內(nèi)核調(diào)用應(yīng)用程序

        龍 芬

        (咸寧職業(yè)技術(shù)學(xué)院 工學(xué)院,湖北 咸寧 437100)

        適用于嵌入式系統(tǒng)的DTV Linux設(shè)備框架構(gòu)建

        龍 芬

        (咸寧職業(yè)技術(shù)學(xué)院 工學(xué)院,湖北 咸寧 437100)

        構(gòu)建了一種用于支持和控制DTV硬件的Linux設(shè)備驅(qū)動(dòng)架構(gòu)。之前LinuxTV由于用于PC TV卡而被廣泛認(rèn)可,但在發(fā)布Linux DVB API V3時(shí),卻沒有面向嵌入式系統(tǒng)應(yīng)用的計(jì)劃。通過改善和代替Linux DVB,開發(fā)出具有簡化內(nèi)核驅(qū)動(dòng)定義良好的APIs層次化軟件體系。

        DVB;LinuxTV;Linux DVB API;嵌入式Linux

        0 引言

        在數(shù)字視頻廣播早期,STBs和iDTV的主要功能是接收、選擇和顯示數(shù)字視頻,這些基本功能那時(shí)就出現(xiàn)了互動(dòng)服務(wù),如局部互動(dòng)(請求視頻)、連接其它消費(fèi)服務(wù)及訪問Internet[1]。軟件必須靈活適應(yīng)TV服務(wù),并能支持各種新的多媒體格式。為了適應(yīng)硬件平臺較短的生命周期,軟件體系必須確保新的硬件平臺推出時(shí)最少能適應(yīng)現(xiàn)有軟件。然而,即使已經(jīng)被確立為TV市場中領(lǐng)先的嵌入式操作系統(tǒng),Linux內(nèi)核仍然不能對一個(gè)數(shù)字TV系統(tǒng)功能完全支持。數(shù)字TV設(shè)備的內(nèi)核支持僅限于LinuxTV工程,但它主要側(cè)重于基于PC的系統(tǒng),而不是嵌入式TV平臺。

        本文對DTV linux設(shè)備框架進(jìn)行了改進(jìn),并命名為嵌入式LinuxTV(LTVe)。LTVe框架在LinuxTV工程基礎(chǔ)上進(jìn)行了擴(kuò)展,使其更適用于嵌入式Linux平臺,支持PC DVB擴(kuò)展卡,專用于機(jī)頂盒(STB)芯片組和集成數(shù)字電視(IDTV)。

        1 框架設(shè)備組成

        1.1 設(shè)備類型

        Linux設(shè)備依據(jù)其功能可劃分為幾類,這些分類關(guān)系到設(shè)備如何與上層Linux文件系統(tǒng)和其它內(nèi)核模塊集成。像大多數(shù)UNIX系統(tǒng)一樣,字符設(shè)備有許多功能調(diào)用,執(zhí)行像read()、write()、ioctl()等操作[2]。根據(jù)這一機(jī)制,LTVe讓單個(gè)硬件塊以字符設(shè)備的形式訪問,圖1為典型SOC電視系統(tǒng)設(shè)備映射圖。

        圖1 典型SOC電視系統(tǒng)的設(shè)備映射

        LTVe設(shè)備類型如表1所示。在大多數(shù)TV系統(tǒng)中,一般通過硬件塊來定義。硬件支持的數(shù)據(jù)流方式都可以選擇合適的硬件功能塊。

        表1 LTVe 設(shè)備類型

        通常情況下,poll()和select()的系統(tǒng)調(diào)用一般發(fā)生在字符設(shè)備標(biāo)志信息有效時(shí),且將觸發(fā)應(yīng)用程序[3-4]。實(shí)際上,由于沒有生成事件序列,這種方法效率非常低。為了實(shí)現(xiàn)DTV系統(tǒng)事件隊(duì)列,允許源和類型事件過濾,引入了特殊設(shè)備。同理,為克服用戶驅(qū)動(dòng)程序太復(fù)雜,引入了驅(qū)動(dòng)橋。該設(shè)備作為一種內(nèi)核接口類型,是導(dǎo)出用戶空間DTV設(shè)備驅(qū)動(dòng)框架的主要部分。

        1.2 設(shè)備控件

        對每一功能都定義了一套控件組。一般有兩個(gè)主要控件組:一個(gè)用于通用設(shè)備,另一個(gè)指定給補(bǔ)充設(shè)備。

        1.2.1 連接

        連接指通過傳遞源設(shè)備進(jìn)行定義的源同步類型文件描述符。這些控件用來定義一個(gè)設(shè)備如何互相連接,以及如何同步數(shù)據(jù)流。每個(gè)連接遵循 “單輸入-多輸出”規(guī)則。因此,每次只能有一個(gè)輸入設(shè)備。

        1.2.2 數(shù)據(jù)訪問

        數(shù)據(jù)訪問是指訪問用戶應(yīng)用程序的數(shù)據(jù)處理接口。為了獲得流設(shè)備數(shù)據(jù),應(yīng)用程序必須使用read()調(diào)用,或內(nèi)存設(shè)備的mmap()調(diào)用以及直接訪問數(shù)據(jù)。后一種方法優(yōu)化了數(shù)據(jù)的訪問,因?yàn)闆]有將數(shù)據(jù)額外復(fù)制到應(yīng)用程序緩沖區(qū)。為了從之前的mmap()區(qū)域訪問數(shù)據(jù),應(yīng)用程序需要執(zhí)行3個(gè)步驟:①從定位數(shù)據(jù)的設(shè)備獲得信息;②讀數(shù)據(jù);③釋放讀出的數(shù)據(jù)。

        1.2.3 內(nèi)存輸入

        由于類型輸入可讓應(yīng)用程序?qū)憯?shù)據(jù)流到設(shè)備,因此在重放多媒體內(nèi)容時(shí)可以對硬件進(jìn)行加速。一般應(yīng)用中,運(yùn)行時(shí)可配置雙緩沖區(qū)作為解碼器輸入,因?yàn)橹挥胁糠志彌_區(qū)能用來發(fā)送數(shù)據(jù)給給定設(shè)備。為了考慮這些硬件上的局限,嵌入式內(nèi)存接口主要依賴于底層硬件模塊,由作為設(shè)備源的內(nèi)存輸入激活。由于用戶內(nèi)存和任意硬件緩沖區(qū)的自由配置需要一個(gè)解碼設(shè)備輸入的硬件平臺,為了支持這種系統(tǒng),內(nèi)存設(shè)備類型定義為直接的連接源,分配到其它設(shè)備中。

        1.2.4 實(shí)時(shí)控制

        控制接口主要用于配置和安裝硬件設(shè)備正常運(yùn)行,一般能控制所有設(shè)備活動(dòng)。實(shí)時(shí)控制能啟動(dòng)、停止或暫停設(shè)備,同時(shí)控制運(yùn)行狀態(tài),且DTV設(shè)備框架能獲得當(dāng)前設(shè)備狀態(tài)或狀態(tài)變化情況。

        2 框架軟件體系

        LTVe設(shè)備框架由硬件接口和內(nèi)核編程接口兩部分組成。DTV軟件體系框架如圖2所示。

        2.1 LTVe核

        該組件使用Linux設(shè)備驅(qū)動(dòng)模型和字符設(shè)備給用戶空間。它執(zhí)行系統(tǒng)初始化,對每個(gè)框架內(nèi)的設(shè)備進(jìn)行注冊,以及將一部分用戶空間轉(zhuǎn)換成LTVe驅(qū)動(dòng)接口[5]。LTV設(shè)備作為字符設(shè)備應(yīng)用于 /dev/dvb/adapterN/tree中。

        圖2 DTV軟件體系框架

        基于Linux的DTV系統(tǒng)中,大部分軟件棧和模塊是從PC系統(tǒng)繼承和吸收過來的。因此,應(yīng)用程序同時(shí)運(yùn)行不太多,這和之前有較大不同。RTOS被編譯成單一的TV應(yīng)用程序系統(tǒng)[6]。LTVe利用SysFS接口從系統(tǒng)shell配置框架,在運(yùn)行應(yīng)用程序上獨(dú)立控制設(shè)備活動(dòng)。對每一個(gè)LTVe,都會(huì)創(chuàng)建注冊屬性列表的SysFS節(jié)點(diǎn)。使用這個(gè)接口,可以監(jiān)視特定設(shè)備的運(yùn)行狀態(tài)。

        2.2 LTVe管理器

        這個(gè)組件的創(chuàng)建和控制行為包含在框架里。為了統(tǒng)一LTVe設(shè)備行為,定義了一些基本原則:每個(gè)設(shè)備在寫使用權(quán)限時(shí)可以同時(shí)有限次打開,但對每個(gè)設(shè)備來說,只能設(shè)置一個(gè)輸入數(shù)據(jù)源,且輸入源只能是其它LTVe設(shè)備。

        LTVe管理模塊實(shí)現(xiàn)了對通用邏輯數(shù)據(jù)流的定義。數(shù)據(jù)通路通過源設(shè)備至目標(biāo)設(shè)備的源文件描述符來創(chuàng)建。LTVe管理將通過文件描述符進(jìn)行檢查,僅在被識別為LTVe框架時(shí)對數(shù)據(jù)通路進(jìn)行定義。在初始化連接前,為了確保正確的初始狀態(tài),LTVe幫助設(shè)備釋放之前的數(shù)據(jù)源,此過程中設(shè)備處于非激活狀態(tài)。

        每當(dāng)要建立數(shù)據(jù)通路時(shí),LTVe管理會(huì)先調(diào)用生產(chǎn)設(shè)備的set_feed,如果連通可行則執(zhí)行查詢請求。set_input調(diào)用被執(zhí)行,設(shè)備驅(qū)動(dòng)會(huì)為輸入接口選擇一個(gè)合適的配置。

        2.3 LTVe驅(qū)動(dòng)器

        該模塊為LTVe驅(qū)動(dòng)開發(fā)定義了內(nèi)核編程接口。圖3描述了LTVe內(nèi)部結(jié)構(gòu)之間的相互連接,并描述了不同設(shè)備類型如何與LTVe通訊。

        圖3 LTVe驅(qū)動(dòng)系統(tǒng)

        2.4 LTVe橋

        LTVe橋是為現(xiàn)有LTVe驅(qū)動(dòng)編程接口的插件[7]。它是一個(gè)通用設(shè)備節(jié)點(diǎn),模擬被LTVe驅(qū)動(dòng)鉤子轉(zhuǎn)換的注冊設(shè)備類型,ioctl調(diào)用被定義為 /bridge設(shè)備,每個(gè)LTVe驅(qū)動(dòng)鉤子匹配ioctl調(diào)用。數(shù)據(jù)流通過申請mmap()調(diào)用內(nèi)部硬件緩沖區(qū)。橋設(shè)備的注冊處理將產(chǎn)生兩個(gè)設(shè)備節(jié)點(diǎn):①dev/dvb/adapterN/bridge 作為用戶通訊接口的通用節(jié)點(diǎn); ②dev/dvb/adapterN/xxxM LTVe設(shè)備節(jié)點(diǎn),這里xxx以合適的設(shè)備類型代替(如video2)。

        當(dāng)需要在用戶空間運(yùn)行監(jiān)聽時(shí),LTVe監(jiān)聽/bridge設(shè)備通過橋接口重構(gòu)內(nèi)核調(diào)用,且以共享庫形式實(shí)現(xiàn)。這種機(jī)制確保了系統(tǒng)能夠成功通訊,實(shí)現(xiàn)LTVe橋驅(qū)動(dòng)的數(shù)據(jù)流動(dòng)。

        3 應(yīng)用

        本文提出的DTV驅(qū)動(dòng)框架(LTVe)已成功移植到基于300MHz MIPS32內(nèi)核的商業(yè)SoC數(shù)字電視產(chǎn)品線的ICs中,目前LTVe框架電視應(yīng)用程序可通過第三方商業(yè)DVB和MHEG支持的DVB軟件庫來開發(fā),這表明LTVe框架是可行的。

        4 結(jié)語

        為開發(fā)數(shù)字電視驅(qū)動(dòng)和應(yīng)用程序接口,本文提出了Linux DVB設(shè)備框架軟件架構(gòu)。本架構(gòu)優(yōu)點(diǎn)在于在驅(qū)動(dòng)開發(fā)中完全脫離Linux內(nèi)核,并且對不同硬件平臺有統(tǒng)一的DVB功能表現(xiàn)形式。采用Linux TV能極大縮短設(shè)計(jì)和開發(fā)時(shí)間,減少開發(fā)成本。

        [1] 徐儉.數(shù)字電視接收機(jī)頂盒淺析[J].有線電視技術(shù),2003(3):152-156.

        [2] 李叢.基于Linux的嵌入式操作系統(tǒng)的研究與實(shí)現(xiàn)[D].北京:北京化工大學(xué),2008.

        [3] 田棣.嵌入式Linux下機(jī)頂盒驅(qū)動(dòng)程序的開發(fā)[D].天津:天津大學(xué),2004.

        [4] 王拯.數(shù)字電視機(jī)頂盒關(guān)鍵模塊設(shè)計(jì)與實(shí)現(xiàn)[D].武漢:華中科技大學(xué),2009.

        [5] 劉洪濤.基于嵌入式Linux的IPTV機(jī)頂盒設(shè)計(jì)實(shí)現(xiàn)與關(guān)鍵技術(shù)研究[D].西安:西安電子科技大學(xué),2007.

        [6] 胡煒.數(shù)字機(jī)頂盒Linux平臺軟件的設(shè)計(jì)與實(shí)現(xiàn)[D].上海:上海交通大學(xué),2006.

        [7] SAN PIL MOON,JOO WOON KIM,KUK-HO BAE,et al.Embeded Linux implementation on a commercial digital TV system[J].Consumer Electronics,2003,49(4):155-159.

        (責(zé)任編輯:杜能鋼)

        龍芬(1984-),女,湖南祁東人,咸寧職業(yè)技術(shù)學(xué)院工學(xué)院講師,研究方向?yàn)樽詣?dòng)測試系統(tǒng)。

        10.11907/rjdk.162622

        TP319

        A

        1672-7800(2017)003-0091-03

        猜你喜歡
        內(nèi)核調(diào)用應(yīng)用程序
        萬物皆可IP的時(shí)代,我們當(dāng)夯實(shí)的IP內(nèi)核是什么?
        強(qiáng)化『高新』內(nèi)核 打造農(nóng)業(yè)『硅谷』
        核電項(xiàng)目物項(xiàng)調(diào)用管理的應(yīng)用研究
        刪除Win10中自帶的應(yīng)用程序
        基于嵌入式Linux內(nèi)核的自恢復(fù)設(shè)計(jì)
        Linux內(nèi)核mmap保護(hù)機(jī)制研究
        LabWindows/CVI下基于ActiveX技術(shù)的Excel調(diào)用
        基于系統(tǒng)調(diào)用的惡意軟件檢測技術(shù)研究
        利用RFC技術(shù)實(shí)現(xiàn)SAP系統(tǒng)接口通信
        關(guān)閉應(yīng)用程序更新提醒
        電腦迷(2012年15期)2012-04-29 17:09:47
        久久国产精品免费一区二区| 丰满人妻猛进入中文字幕| 在线观看视频日本一区二区| 国产极品女主播国产区| 水蜜桃精品一二三| 暖暖免费 高清 日本社区在线观看| 亚洲成AV人片在一线观看| 少妇人妻字幕一区二区| 国产精品日韩av一区二区三区| 一本无码中文字幕在线观| 一本一道av无码中文字幕﹣百度 | 综合成人亚洲网友偷自拍| 国产三a级三级日产三级野外| 国产乱子伦| 国产成人av 综合 亚洲| 亚洲中文欧美日韩在线| 久久国产精品免费久久久| 久久在一区二区三区视频免费观看| 中文字幕人妻无码视频| 精品久久久噜噜噜久久久 | 日韩久久久黄色一级av| 国产精品精品自在线拍| 青青草好吊色在线视频| 91羞射短视频在线观看 | 熟妇人妻不卡中文字幕| 国产成人亚洲精品一区二区三区| 精品一区二区三区在线观看视频 | 国产精品国产三级国产an| 精品一区二区三区人妻久久| 国产黄色一区二区三区av| 成年av动漫网站18禁| 99久久综合精品五月天| 亚洲成a∨人片在线观看无码| 久久久人妻一区精品久久久| 99热精品国产三级在线观看| 久久青青草视频免费观看| 成人性生交大片免费看l| 国产午夜免费高清久久影院| 亚洲av永久无码精品国产精品| 五月天无码| 开心五月激情五月天天五月五月天|