<meter id="pryje"><nav id="pryje"><delect id="pryje"></delect></nav></meter>
          <label id="pryje"></label>

          新聞中心

          EEPW首頁 > 嵌入式系統(tǒng) > 設(shè)計(jì)應(yīng)用 > 基于DSP的視頻采集驅(qū)動(dòng)程序的實(shí)現(xiàn)

          基于DSP的視頻采集驅(qū)動(dòng)程序的實(shí)現(xiàn)

          作者: 時(shí)間:2008-08-21 來源:網(wǎng)絡(luò) 收藏

          本文引用地址:http://www.ex-cimer.com/article/258045.htm
            數(shù)據(jù)包中數(shù)據(jù)長度與數(shù)據(jù)地址兩字段由應(yīng)用程序提供,分別表示獲取圖像的大小及圖像存儲目的地址。微驅(qū)動(dòng)依據(jù)數(shù)據(jù)包中的命令字段,調(diào)用mdSubmitChan函數(shù)將數(shù)據(jù)包放入數(shù)據(jù)包隊(duì)列,等待中斷服務(wù)函數(shù)的處理。視頻采集中的硬件中斷由視頻端口內(nèi)部FIFO的狀態(tài)觸發(fā),中斷服務(wù)程序根據(jù)數(shù)據(jù)包中的數(shù)據(jù)地址字段,通過EDMA將視頻端口內(nèi)部FIFO中的視頻數(shù)據(jù)讀入SDRAM中的圖像存儲目的地址。依據(jù)數(shù)據(jù)包中的數(shù)據(jù)長度字段,在完成相應(yīng)大小圖像的采集后,中斷服務(wù)程序還將完成以下功能:出列數(shù)據(jù)包;設(shè)置下一次傳送或服務(wù)請求;設(shè)置數(shù)據(jù)包中的命令完成狀態(tài),并向應(yīng)用程序返回。

            3 視頻采集驅(qū)動(dòng)中的視頻數(shù)據(jù)傳輸

            視頻端口內(nèi)部FIFO與SDRAM之間的視頻數(shù)據(jù)傳輸通常有以下幾種方法:軟件查詢、中斷和EDMA方法。軟件查詢消耗CPU的資源太大,是不可取的,中斷數(shù)據(jù)傳輸雖可節(jié)省很多CPU時(shí)間,但沒有發(fā)揮DM642的EDMA資源。EDMA[6]是在DMA基礎(chǔ)上發(fā)展起來的,用于在沒有CPU參與的情況下完成不同存儲空間之間的數(shù)據(jù)搬移。DM642提供了64個(gè)獨(dú)立的EDMA通道,通道的優(yōu)先級可編程設(shè)置,在沒有CPU參與的情況下實(shí)現(xiàn)片內(nèi)存儲器、片內(nèi)外設(shè)以及外部存儲空間之間的數(shù)據(jù)高速搬移。因此,為減輕CPU的負(fù)擔(dān),發(fā)揮DM642的強(qiáng)大的外部數(shù)據(jù)傳輸能力,視頻采集驅(qū)動(dòng)使用EDMA完成視頻數(shù)據(jù)從FIFO到SDRAM的傳輸。

            3.1 基于雙EDMA通道的視頻數(shù)據(jù)傳輸

            利用EDMA將FIFO中的數(shù)據(jù)傳輸?shù)絊DRAM中有兩種方法,但是它們的性能卻差別很大。一種方法是利用EDMA將FIFO中的數(shù)據(jù)直接傳送到SDRAM中。這種方法雖然簡單且易于操作,但它沒有充分發(fā)揮SDRAM的頁讀寫的優(yōu)越性,原因在于EDMA讀取FIFO和寫入SDRAM時(shí)分為兩個(gè)不同過程來實(shí)現(xiàn),因此EMIF(外部存儲器接口)的時(shí)序不斷地在兩者之間切換,造成很大的時(shí)間浪費(fèi),所以這種傳輸效率不高。

            由于DM642視頻端口的內(nèi)部FIFO提供“滿”、“半滿”、“空”三種狀態(tài),另一方法使用兩個(gè)EDMA通道進(jìn)行數(shù)據(jù)傳輸。以亮度信號的傳輸為例,當(dāng)用于存儲亮度分量的內(nèi)部FIFO半滿(640字節(jié))時(shí),觸發(fā)DM642的硬件中斷,在中斷服務(wù)程序中啟用一個(gè)EDMA通道將數(shù)據(jù)從FIFO中讀出,存放到緩沖區(qū)BUF中。傳輸完畢后,啟動(dòng)另一個(gè)EDMA通道將數(shù)據(jù)從BUF中傳輸?shù)絊DRAM中。這樣,兩個(gè)EDMA通道分別進(jìn)行讀取FIFO和寫入SDRAM的操作,避免了EMIF時(shí)序的切換,可以保證EDMA的有效傳輸。

            3.2 EDMA鏈表在場合成中的使用

            在隔行掃描模式下,每幀分為兩場,兩場在時(shí)域上是分開的,但在數(shù)據(jù)處理時(shí)需要將兩場合成一幀進(jìn)行處理,因此要進(jìn)行大量的數(shù)據(jù)搬移,占用了大量的CPU時(shí)間。通過EDMA鏈表可自動(dòng)實(shí)現(xiàn)場合成,不需占用額外的CPU時(shí)間。

            EDMA的參數(shù)RAM存放了有關(guān)的傳輸參數(shù),這些參數(shù)用于產(chǎn)生EDMA讀寫操作所需要的地址。如圖4所示,在使用EDMA通道傳輸奇數(shù)場與偶數(shù)場時(shí),分別使用不同的EDMA參數(shù)RAM。兩組參數(shù)RAM的目的地址分別指向存儲圖像的第一行與第二行象素的首地址,并且兩組參數(shù)RAM通過鏈接地址循環(huán)相連。在EDMA通道的傳輸中,奇數(shù)場傳輸任務(wù)的結(jié)束會自動(dòng)地根據(jù)當(dāng)前參數(shù)RAM的鏈接地址裝載傳輸偶數(shù)場的參數(shù)RAM,又由兩組參數(shù)RAM的目的地址可知,奇數(shù)場與偶數(shù)場分別經(jīng)EDMA通道傳輸至幀緩沖區(qū)后被隔行存儲,這樣在無需占用額外CPU時(shí)間的前提下就實(shí)現(xiàn)了場合成。

            4 視頻采集驅(qū)動(dòng)程序的調(diào)用實(shí)例

            /BIOS應(yīng)用程序通過GIO類驅(qū)動(dòng)調(diào)用微驅(qū)動(dòng)之前,需使用/BIOS配置工具注冊微驅(qū)動(dòng),將其命名為VP_CAPTURE,并啟動(dòng)GIO模塊。

            在應(yīng)用程序中,GIO_create函數(shù)使用已注冊的微驅(qū)動(dòng)VP_CAPTURE創(chuàng)建GIO通道,通過調(diào)用GIO_submit函數(shù)完成應(yīng)用程序?qū)σ曨l數(shù)據(jù)的采集操作。部分源代碼如下:

            (1) 創(chuàng)建通道

            GIO_Handle capChan;
            int status;
            capChan = GIO_create('VP_CAPTURE'),
            IOM_INPUT, status, (Ptr)DM642_vCapParams, NULL);
            (2) 發(fā)送獲取圖像的數(shù)據(jù)包

            GIO_submit(capChan, IOM_READ, bufp, NULL, NULL);其中,DM642_vCapParams包含了視頻采集的初始化參數(shù),如圖像大小、同步方式等;bufp用于指出采集圖像的存儲地址。不同的視頻應(yīng)用程序在使用類驅(qū)動(dòng)時(shí),可以通過改變這兩個(gè)變量復(fù)用視頻設(shè)備。這樣,極大地提高了驅(qū)動(dòng)程序的工作效率,對視頻外設(shè)的控制也大大簡化了。

            使用類/微驅(qū)動(dòng)模型開發(fā)的視頻采集驅(qū)動(dòng)程序,有效地解決了圖像采集和圖像實(shí)時(shí)處理之間的關(guān)系,在幾乎不需要CPU的干涉下,利用EDMA完成了圖像數(shù)據(jù)的高速傳輸;通過使用類驅(qū)動(dòng)復(fù)用驅(qū)動(dòng)程序,視頻應(yīng)用程序的開發(fā)效率獲得了極大的提高。視頻采集驅(qū)動(dòng)程序現(xiàn)已在自主開發(fā)的視頻處理板卡上運(yùn)行良好,為進(jìn)一步開發(fā)遠(yuǎn)程視頻監(jiān)控系統(tǒng)、可視電話等視頻應(yīng)用打下了堅(jiān)實(shí)的基礎(chǔ)。

            參考文獻(xiàn)

            1 /BIOS Driver Developer’s Guide. Literature Number: SPRU616. Texas Instruments Incorporated, November 2002
            2 TMS320C6000 Chip Support Library API Reference Guide. Literature Number: SPRU401. Texas Instruments Incorporated,December 2002
            3 TMS320C6000 DSP/BIOS Application Programming Interface. Literature Number: SPRU403. Texas Instruments Incorporated,October 2002
            4 Technical Overview.Literature Number:SPRU615.Texas Instruments Incorporated, September 2002
            5 TMS320C64x DSP Video Port/ VCXO Interpolated Control (VIC) Port Reference Guide. Literature Number: SPRU629. Texas Instruments Incorporated, April 2003
            6 TMS320C6000 Peripherals Reference Guide. Literature Num-ber:SPRU190. Texas Instruments Incorporated, February 2001


          上一頁 1 2 下一頁

          評論


          相關(guān)推薦

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

          關(guān)閉
          看屁屁www成人影院,亚洲人妻成人图片,亚洲精品成人午夜在线,日韩在线 欧美成人 (function(){ var bp = document.createElement('script'); var curProtocol = window.location.protocol.split(':')[0]; if (curProtocol === 'https') { bp.src = 'https://zz.bdstatic.com/linksubmit/push.js'; } else { bp.src = 'http://push.zhanzhang.baidu.com/push.js'; } var s = document.getElementsByTagName("script")[0]; s.parentNode.insertBefore(bp, s); })();