新聞中心

        EEPW首頁 > 嵌入式系統(tǒng) > 設(shè)計應用 > 基于DSP/BIOS的外設(shè)驅(qū)動開發(fā)模型及DSP視頻驅(qū)動程序

        基于DSP/BIOS的外設(shè)驅(qū)動開發(fā)模型及DSP視頻驅(qū)動程序

        作者: 時間:2011-06-04 來源:網(wǎng)絡(luò) 收藏

        引言

        隨著時代的發(fā)展,技術(shù)在遠程監(jiān)控、可視電話、工業(yè)檢測等處理領(lǐng)域得到了廣泛的應用,對于不同的處理系統(tǒng),會使用不同的設(shè)備,所以有必要為視頻沒備設(shè)計程序,為高層應用程序提供統(tǒng)一的接口來操作底層硬件。只要是遵循此程序接口標準的高層應用程序,都可以在具有相同接口的不同硬件平臺上運行,具有很好的通用性和可移植性。同時高層應用程序設(shè)計人員只要會使用設(shè)備程序提供的API接口,就不必了解底層硬件的具體實現(xiàn),可以大大提高整個視頻系統(tǒng)的效率。

        本文引用地址:http://www.104case.com/article/150653.htm

        對于視頻設(shè)備,TI公司也提出了對應的視頻設(shè)備驅(qū)動程序,但這些主要是針對6000系列高端,甚至是DM64X這樣的視頻處理專用設(shè)計的。而TMS320F2812(簡稱F2812)DSP這樣的低端處理器,內(nèi)部存儲空間較小,且沒有DM64X那樣專用的視頻接口。本文針對這類問題,提出了對TI視頻驅(qū)動進行簡化和改造的方法,使視頻設(shè)備驅(qū)動程序占用盡量少的系統(tǒng)資源,來完成對視頻硬件設(shè)備的操作。這種視頻驅(qū)動模型的裁減方法,對于使用低端處理器的視頻處理系統(tǒng)具有借可鑒性。

        1、DSP/BIOS的 驅(qū)動模型

        TI公司為開發(fā)DsP的驅(qū)動程序,推出了DSP/BIOS Device Driver kit,定義了標準的設(shè)備驅(qū)動模型,并提供了一系列的API接口。如圖1所示,驅(qū)動程序分為兩層:

        ①類驅(qū)動(class driver)。類驅(qū)動程序用來為應用程序提供接口。這部分程序與設(shè)備無關(guān),主要功能包括維護設(shè)備數(shù)據(jù)緩沖區(qū),向上提供API接口供應用層程序調(diào)用,并協(xié)調(diào)應用程序?qū)ν庠O(shè)操作的同步和阻塞;向下提供適配層與迷你驅(qū)動層相連,實現(xiàn)API接口函數(shù)到迷你驅(qū)動層程序的映射。類驅(qū)動程序與硬件無關(guān),只要外設(shè)驅(qū)動模型選定了,類驅(qū)動程序就定下來了,不需要做多少修改。

        ②迷你驅(qū)動(mini driver)。迷你驅(qū)動程序與設(shè)備相關(guān),所以設(shè)計迷你驅(qū)動程序是外設(shè)驅(qū)動開發(fā)中的重點。迷你驅(qū)動程序與類驅(qū)動層的接口格式是統(tǒng)一的,但迷你驅(qū)動程序?qū)Φ讓佑布牟僮魇歉鶕?jù)硬件平臺的不同而變化的。迷你驅(qū)動接收類驅(qū)動層發(fā)出的IOM_Packet命令包,決定對底層硬件進行什么樣的操作。

        外設(shè)驅(qū)動程序模型又可以分為以下3類:

        ①PIP/PI0模型。數(shù)據(jù)管道的I/O模型,每個管道都在維護自己的一個緩沖區(qū)。當數(shù)據(jù)寫入緩沖區(qū),或從緩沖區(qū)取出數(shù)據(jù)時,便會激發(fā)notifyReader和notifyWriter函數(shù)實現(xiàn)數(shù)據(jù)的同步。

        ②SIO/DIO模型。數(shù)據(jù)流的I/O模型,一個數(shù)據(jù)流是單向的,要么是輸入,要么是輸出,而且SIO/DIO模瓔使用異步方式來操作I/0,對于數(shù)據(jù)的讀寫、處理可以同時進行。

        ③GI0模型。通用的I/O模型,靈活性很強,且沒有適配層,直接操作迷你驅(qū)動程序,主要用來設(shè)計新型的設(shè)備驅(qū)動模型。

        2、視頻處理系統(tǒng)硬件平臺

        硬件平臺如圖2所示。系統(tǒng)以TI公司的F2812 DSP作為中心處理器,以模擬攝像機進行視頻信號采集,再使用SAA7111視頻解碼芯片將其轉(zhuǎn)換為BT601格式的數(shù)字視頻信號。DSP將數(shù)字視頻信號處理后,再寫入輸出幀緩存AL422中,并控制視頻編碼芯片ADV7177,將其轉(zhuǎn)換為模擬電視信號輸出。整個系統(tǒng)以l片CPLD——IspMachLC4128來協(xié)調(diào)各個芯片之間的時序關(guān)系。

        3、視頻設(shè)備驅(qū)動程序開發(fā)

        3.1 設(shè)備驅(qū)動程序模型的選擇

        如上文介紹,常用的驅(qū)動程序模型包括3類:PIO、SIO和GIO。比較這3種模型可以知道:PIO支持更底層的通信,適合設(shè)計比較簡單的外設(shè)驅(qū)動程序。例如在TI公司的6X11DSK板上實現(xiàn)的音頻采集和回放,一般都是基于PIO模型的。而SIO模型具有很好的緩沖器分配回收機制,比較適合描述視頻設(shè)備,但是SIO的很多功能在本系統(tǒng)中使用不到,而且GIO模型設(shè)計的目的就是針對特殊硬件的新型設(shè)備,所以最終考慮使用GIO設(shè)備驅(qū)動模型。

        TI公司最初設(shè)計的GIO模型其實是有缺陷的,主要在數(shù)據(jù)緩沖區(qū)管理的問題上,應用程序在取得緩沖區(qū)


        上一頁 1 2 3 下一頁

        評論


        相關(guān)推薦

        技術(shù)專區(qū)

        關(guān)閉
        主站蜘蛛池模板: 和硕县| 吉林省| 元氏县| 台中市| 泰宁县| 莱西市| 和田市| 灵川县| 太仆寺旗| 晋中市| 新余市| 保靖县| 镇雄县| 凤山市| 新竹市| 台中市| 兴海县| 乌鲁木齐县| 泸定县| 凤翔县| 怀化市| 诏安县| 望都县| 平泉县| 定日县| 东兰县| 宁津县| 应用必备| 札达县| 乐安县| 延边| 沙坪坝区| 望奎县| 凯里市| 延庆县| 榆树市| 英德市| 六盘水市| 油尖旺区| 杨浦区| 光泽县|