以文本方式查看主題 - 曙海教育集團論壇 (http://www.hufushizhe.com/bbs/index.asp) -- DSP6000系統開發 (http://www.hufushizhe.com/bbs/list.asp?boardid=29) ---- 基于GIO/FVID的DSP視頻驅動程序 (http://www.hufushizhe.com/bbs/dispbbs.asp?boardid=29&id=1640) |
-- 作者:wangxinxin -- 發布時間:2010-11-22 14:40:09 -- 基于GIO/FVID的DSP視頻驅動程序 摘要: 以基于TI公司TMS320F2812 DSP的視頻處理系統為例,在DSP/BIOS的基礎上設計GTO/FVID模型的視頻設備底層驅動程序,為高層應用程序開發人員提供方便的API接口函數來操作底層視頻設備,提高了視頻處理系統的開發效率。所闡述的視頻設備驅動程序開發方法,對同類視頻處理平臺具有較好的可借鑒性。 關鍵詞 視頻設備驅動程序 TMS320F2812 DSP/BI0S GIO/FVID模型 引言 隨著時代的發展,DSP技術在遠程監控、可視電話、工業檢測等視頻處理領域得到了廣泛的應用,對于不同的視頻處理系統,會使用不同的視頻設備,所以有必要為視頻沒備設計驅動程序,為高層應用程序提供統一的接口來操作底層硬件。只要是遵循此驅動程序接口標準開發的高層應用程序,都可以在具有相同接口的不同硬件平臺上運行,具有很好的通用性和可移植性。同時高層應用程序設計人員只要會使用設備驅動程序提供的API接口,就不必了解底層硬件的具體實現,可以大大提高整個視頻系統的開發效率。 對于視頻設備,TI公司也提出了對應的視頻設備驅動程序模型,但這些模型主要是針對6000系列高端DSP,甚至是DM64X這樣的視頻處理專用DSP設計的。而TMS320F2812(簡稱F2812)DSP這樣的低端處理器,內部存儲空間較小,且沒有DM64X那樣專用的視頻接口。本文針對這類問題,提出了對TI視頻驅動模型進行簡化和改造的方法,使視頻設備驅動程序占用盡量少的系統資源,來完成對視頻硬件設備的操作。這種視頻驅動模型的裁減方法,對于使用低端處理器的視頻處理系統具有借可鑒性。 1、基于DSP/BIOS的外設驅動開發模型 TI公司為開發DsP的外設驅動程序,推出了DSP/BIOS Device Driver kit,定義了標準的設備驅動模型,并提供了一系列的API接口。如圖1所示,外設驅動程序分為兩層: 、兕愹寗(class driver)。類驅動程序用來為應用程序提供接口。這部分程序與設備無關,主要功能包括維護設備數據緩沖區,向上提供API接口供應用層程序調用,并協調應用程序對外設操作的同步和阻塞;向下提供適配層與迷你驅動層相連,實現API接口函數到迷你驅動層程序的映射。類驅動程序與硬件無關,只要外設驅動模型選定了,類驅動程序就定下來了,不需要做多少修改。 、诿阅泸寗(mini driver)。迷你驅動程序與設備相關,所以設計迷你驅動程序是外設驅動開發中的重點。迷你驅動程序與類驅動層的接口格式是統一的,但迷你驅動程序對底層硬件的操作是根據硬件平臺的不同而變化的。迷你驅動接收類驅動層發出的IOM_Packet命令包,決定對底層硬件進行什么樣的操作。 外設驅動程序模型又可以分為以下3類: 、貾IP/PI0模型。基于數據管道的I/O模型,每個管道都在維護自己的一個緩沖區。當數據寫入緩沖區,或從緩沖區取出數據時,便會激發notifyReader和notifyWriter函數實現數據的同步。 、赟IO/DIO模型;跀祿鞯腎/O模型,一個數據流是單向的,要么是輸入,要么是輸出,而且SIO/DIO模瓔使用異步方式來操作I/0,對于數據的讀寫、處理可以同時進行。 ③GI0模型。通用的I/O模型,靈活性很強,且沒有適配層,直接操作迷你驅動程序,主要用來設計新型的設備驅動模型。
2、視頻處理系統硬件平臺
硬件平臺如圖2所示。系統以TI公司的F2812 DSP作為中心處理器,以模擬攝像機進行視頻信號采集,再使用SAA7111視頻解碼芯片將其轉換為BT601格式的數字視頻信號。DSP將數字視頻信號處理后,再寫入輸出幀緩存AL422中,并控制視頻編碼芯片ADV7177,將其轉換為模擬電視信號輸出。整個系統以l片CPLD——IspMachLC4128來協調各個芯片之間的時序關系。 |