色哟哟视频在线观看-色哟哟视频在线-色哟哟欧美15最新在线-色哟哟免费在线观看-国产l精品国产亚洲区在线观看-国产l精品国产亚洲区久久

0
  • 聊天消息
  • 系統消息
  • 評論與回復
登錄后你可以
  • 下載海量資料
  • 學習在線課程
  • 觀看技術視頻
  • 寫文章/發帖/加入社區
會員中心
电子发烧友
开通电子发烧友VIP会员 尊享10大特权
海量资料免费下载
精品直播免费看
优质内容免费畅学
课程9折专享价
創作中心

完善資料讓更多小伙伴認識你,還能領取20積分哦,立即完善>

3天內不再提示

基于TMS320F2812 DSP芯片實現視頻驅動程序的開發設計

電子設計 ? 來源:單片機與嵌入式系統應用 ? 作者:臧博,吳裕斌,曹丹 ? 2021-03-16 16:30 ? 次閱讀
加入交流群
微信小助手二維碼

掃碼添加小助手

加入工程師交流群

引言

隨著時代的發展,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類:

①PIP/PI0模型。基于數據管道的I/O模型,每個管道都在維護自己的一個緩沖區。當數據寫入緩沖區,或從緩沖區取出數據時,便會激發notifyReader和notifyWriter函數實現數據的同步。

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

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

基于TMS320F2812 DSP芯片實現視頻驅動程序的開發設計

2、視頻處理系統硬件平臺

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

3、視頻設備驅動程序開發

3.1 設備驅動程序模型的選擇

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

TI公司最初設計的GIO模型其實是有缺陷的,主要在數據緩沖區管理的問題上,應用程序在取得緩沖區進行數據處理之后,卻無法將緩沖區返回設備驅動程序。于是TI公司在推出DM6北這一款主要用于視頻處理的DSP芯片的同時,對GIO模型進行了改進,提出了專門針對視頻設備的FVID模型。FVID模型是建立在GIO模型之上的,以FVID_alloc、FVID_exchangc、FVID_free函數對GIO模型中的GIO_submit函數進行封裝,解決了GIO模型中驅動程序不能回收緩沖區的問題。

此外FVID模型還專門設計了FVID_frame結構。此結構中包含了常用的視頻信號的信息,如行數、列數、YUV結構、場頻等,很適合描述視頻數據幀。但FVID主要是針對DM64X系統設計的,DM64X的很多功能在F2812 DSP上都不具備。所以本設計針對F2812 DSP視頻處理系統,對FVID模型進行了一定的簡化,保留類驅動程序,而重寫了迷你驅動層程序。

3.2 視頻處理程序運行流程

在設計完成的視頻驅動程序基礎上,開發一個典型的視頻處理應用程序,其運行流程如圖3所示。首先使用FVID_create函數建立GIO_capture和GIO_play兩個視頻通道.再以GIO_capture通道的FVID_control函數發出cmd_start,采集到1幀視頻數據。應用程序以GIO_capture通道的FVID_alloc函數向驅動程序申請采集到的數據幀,進行處理后再以FVID_exchange函數將修改后的數據幀返回驅動程序,最后再調用GI0_play通道的FVID_control函數發出cmd_display命令將數據幀輸出。由圖3可以看到,應用程序調用的這些FVID_XXX接口函數會自動由類驅動程序層層向下映射,到達迷你驅動層程序;而迷你層程序可以直接操縱底層硬件設備,來完成整個視頻的采集、處理和顯示的過程。

3.3 迷你驅動程序的設計

迷你層驅動程序足整個設計的重點所在,下面詳細介紹其實現方法。迷你層驅動程序主要由表1所列的幾個函數組成。

對各個函數的具體實現如下:

①mdBindDev函數。在應用程序建立設備接口(如FVID_create函數)時被調用,完成對外部設備的初始化。而與其對應的是md_UBindDev函數,使用nadUBindDev函數會使設備處于無效狀態,不能再使用。

②mdCreateChan函數。使用此函數為應用程序和驅動程序建立通信通道,同時為每個通道申請緩沖區。在TI公司發布的FVID模型中,為每個通道都分配了3個緩沖區,輪流與外部設備交換數據,每個緩沖區對應1幀視頻數據,這樣的設計在DM642這樣可以外擴大容量SDRAM的系統中是完全可行的。但是對于本系統,F2812DSP外部只擴展了512K×16位的SRAM,既要做視頻輸入的幀緩存,義要存放一部分程序,這樣存儲空間就不夠了。所以本設計中進行了簡化,對視頻輸入設備采用兩緩沖區輪轉的機制,如圖4(a)所示。而對于視頻輸出設備,以AL422 FIFO作為硬件幀緩存,而不在SRAM中再為其分配緩沖區。與mdCreateChan對應的是md-DeleteChan函數,用于刪除設備通道,釋放緩沖區資源。

③mdSubmitChan函數。負責管理緩沖區。分別接受應用程序發出的FVID_ALLOC、FVID_EXCHANGE、FVID_FREE三個命令并進行處理。其中FVID_ALLOC命令對應圖4中(a)到(b)的過程,應用程序從兩個緩沖區中取出最新的一幀視顴數據,塒其中的數據做處理,而只剩下一個緩沖區用來接受外部設備輸入的數據。FVID_EXCHANGE對應圖4中(b)到(c)的過程,應用程序處理完1幀數據,將這1幀數據返回驅動程序,準備用來顯示,同時再讀入新的l幀數據進行處理。FVID_FREE對應圖4中(c)到(a)的過程,應用程序將處理完的數據幀返回驅動程序,而不再向驅動程序申請新的數據幀。以上3個命令足針對視頻輸入接口GIO_capture而言的,而對于輸出設備接口GIO_play,在SRAM中沒有分配緩沖區,所以其nldSubmitChan函數內部設為空函數。

④mdControlChan函數。用來操作外部視頻設備,完成對視頻數據的采集和輸出。對于GIO_capture和GIO_play這兩個設備接口的mdControlChan函數接受的命令是不同的:

視頻輸入GIO_capture接口的mdControlCham函數只接受cmd_start命令,完成1幀視頻數據的采集;而視頻輸出GIO_play接口的mdControlChan函數只接受cmd_display命令.完成視頻信號的輸出。

3.4 視頻驅動模型裁剪的一般方法

TI公司設計的GIO/FVID視頻設備驅動原型相對復雜,且占用較多的系統資源,要使其可以應用于更通用的低端處理器系統,就必須進行改造和裁減。在改造中要注意以下幾個方面:

①阻塞的I/0操作。TI公司6000系列的DSP具有FDMA功能,傳輸數據不需要CPU的干預,而DM64X還具有專用的視頻接口,傳輸數據不會占用外部擴展總線,所以視頻數據的處理和輸入輸出是可以并行的。而低端處理器是不具備這樣功能的,視頻設備一般都是通過外部擴展總線連接的,所以對視頻設備的操作必須設計為阻塞型的I/O操作,視頻數據輸入/輸出的過程是由CPU來完成,且要保證對視頻設備的操作不會被其他操作中斷。

②對視頻數據緩沖區的管理。GIO/FVID視頻設備驅動原型中使用的3緩沖區模型,雖然功能很完善,卻占用了太多的存儲空間,所以對于實際的視頻處理系統就要進行調整,改為兩緩沖區甚至是單緩沖區模型。對于具有獨立硬件緩存的輸出設備,可以考慮不再為其分配動態緩沖區。

③對視頻設備的操作。mdControlChan函數主要用來操作外部視頻設備,只要保留對實際系統有用的操作就足夠了,而GI0/FVID視頻設備驅動原犁中定義的很多操作都可以省略。

4、小結

本文介紹了基于DSP/BIOS的外設驅動程序模型,并針對基于F2812DSP的視頻處理系統這一具體的硬件平臺,重點介紹了開發GIO/FVID設備驅動的流程和針對低端處理器系統的視頻驅動模型裁減方法。本視頻驅動程序為開發各種視頻處理應用程序(如JPEG圖像EPA控制網絡中ZigBee壓縮、MPEG視頻壓縮、視頻監控程序等)提供了有力的支持。本文介紹的設備驅動程序的開發方法,對于同類視頻處理系統,特別是對于使用TI2000系州DSP這樣系統資源比較有限的視頻處理系統,具有很好的可借鑒性。

責任編輯:gt

聲明:本文內容及配圖由入駐作者撰寫或者入駐合作網站授權轉載。文章觀點僅代表作者本人,不代表電子發燒友網立場。文章及其配圖僅供工程師學習之用,如有內容侵權或者其他違規問題,請聯系本站處理。 舉報投訴
  • dsp
    dsp
    +關注

    關注

    556

    文章

    8158

    瀏覽量

    357627
  • 芯片
    +關注

    關注

    460

    文章

    52520

    瀏覽量

    441016
  • 接口
    +關注

    關注

    33

    文章

    9005

    瀏覽量

    153763
收藏 1人收藏
加入交流群
微信小助手二維碼

掃碼添加小助手

加入工程師交流群

    評論

    相關推薦
    熱點推薦

    TMS320F2812原理與開發——DSP應用叢書

    基于TMS320F2812數字信號處理器的永磁同步電機控制系統的原理與實現。書中提供了大量硬件原理圖和應用程序代碼,以方便讀者參考設計。更多精彩內容:http://www.1cnz.cn/soft/3/2014/20
    發表于 12-23 10:34

    基于TMS320F2812的光電色選系統介紹

    [摘要] 本文主要介紹應用TI公司的高性能DSP芯片--TMS320F2812實現對光電色選系統的開發。文中著重描述了
    發表于 07-16 06:19

    定點DSP芯片TMS320F2812實現快速算法應用

    定點DSP芯片TMS320F2812實現快速算法應用:摘要:論述了以DSP 芯片
    發表于 10-30 16:15 ?19次下載

    TMS320F2812原理與開發

    TMS320F2812本書介紹了TMS320F2812芯片的基本特點,硬件結構,內部功能模塊的基本原理等內容,并在結合應用實例的基礎上詳細闡述了各功能模塊的應用。
    發表于 01-06 12:17 ?10次下載
    <b class='flag-5'>TMS320F2812</b>原理與<b class='flag-5'>開發</b>

    基于CPLD的TMS320F2812硬件平臺設計

    本文介紹了32位定點數字信號處理器芯片TMS320F2812的主要特點,以及TMS320F2812的相關外部芯片擴展情況,并著重探討了CPLD在TM
    發表于 08-06 14:54 ?37次下載

    TMS320F2812程序的遠程升級方法

    TMS320F2812程序的遠程升級方法 TMS320F2812(簡稱F2812)是TI公司推出的C2000系列性能最高的一款芯片,也是目
    發表于 11-20 09:47 ?970次閱讀
    <b class='flag-5'>TMS320F2812</b><b class='flag-5'>程序</b>的遠程升級方法

    TMS320F2812芯片開發中Flash代碼性能的研究

      TMS320F2812是目前性能非常優秀的32位定點DSP,集成了多種外設。對TMS320F2812開發通常利用TI公司的CCS2集成開發
    發表于 09-25 10:45 ?2470次閱讀
    <b class='flag-5'>TMS320F2812</b><b class='flag-5'>芯片</b><b class='flag-5'>開發</b>中Flash代碼性能的研究

    SVPWM在TMS320F2812上的實現

    SVPWM在TMS320F2812上的實現
    發表于 04-13 15:42 ?14次下載

    基于TMS320F2812的SVPWM算法分析與實現

    基于TMS320F2812的SVPWM算法分析與實現
    發表于 04-18 10:46 ?15次下載

    基于TMS320F2812的步進電機SVPWM細分驅動

    基于TMS320F2812的步進電機SVPWM細分驅動
    發表于 04-18 10:46 ?28次下載

    TMS320F2812原理與開發

    TMS320F2812原理與開發-2005-4-電子工業出版社-蘇奎峰
    發表于 05-06 15:13 ?0次下載

    TMS320F2812的永磁同步電機程序(完整版DSP程序

    TMS320F2812的永磁同步電機程序(完整版DSP程序
    發表于 02-15 18:23 ?0次下載

    TMS320F2812

    TMS320F2812,DSP技術手冊。
    發表于 03-04 17:49 ?29次下載

    _C_OS_在DSP芯片TMS320F2812的移植及應用_馮嘉

    _C_OS_在DSP芯片TMS320F2812的移植及應用_馮嘉鵬
    發表于 03-19 11:26 ?0次下載

    TMS320F2812詳細資料(全)

    TMS320F2812詳細資料(全),本資料全面,可供DSP開發者共享
    發表于 03-19 18:59 ?40次下載
    主站蜘蛛池模板: 欧美日韩在线成人看片a | 成人在线视频网站 | 一本道手机无码在线看 | 亚洲成AV人电影在线观看 | 中文字幕无码A片久久 | 另类重口bdsm日本tv | 久久精品一区二区影院 | 无码专区无码专区视频网网址 | 亚洲综合网国产精品一区 | 亚洲精品白色在线发布 | yw193.c国产在线观看 | 日本50人群体交乱 | 日韩欧无码一区二区三区免费不卡 | 中文在线观看 | 色多多污污版免费下载安装 | 女人被躁到高潮嗷嗷叫69 | 久久噜国产精品拍拍拍拍 | 最近中文字幕2019免费版 | 国产白丝精品爽爽久久久久久蜜臀 | 午夜啪啪免费视频 | 精品国产福利一区二区在线 | 久久久国产精品免费A片蜜芽广 | 国精产品一区一区三区M | 999zyz色资源站在线观看 | 性色AV一区二区三区V视界影院 | qvod 韩国| 久久99久久成人免费播放 | 射漂亮黑b丝女 | 中国大陆一级毛片免费 | 一品道门在线视频 | 国内九一激情白浆发布 | 中文字幕亚洲无线码在线 | 夜色伊甸园 | 久久全国免费观看视频 | 亚洲综合日韩在线2019 | 人人干人人爽 | 久久久无码精品亚洲A片软件 | 色悠久久久久综合网小说 | 精品国产成人系列 | 91精品国产色综合久久 | 欧美牲交视频免费观看K8经典 |

    電子發燒友

    中國電子工程師最喜歡的網站

    • 2931785位工程師會員交流學習
    • 獲取您個性化的科技前沿技術信息
    • 參加活動獲取豐厚的禮品