1. <tt id="5hhch"><source id="5hhch"></source></tt>
    1. <xmp id="5hhch"></xmp>

  2. <xmp id="5hhch"><rt id="5hhch"></rt></xmp>

    <rp id="5hhch"></rp>
        <dfn id="5hhch"></dfn>

      1. 基于DM642的多路視頻采集系統(tǒng)

        時間:2023-03-03 16:15:18 碩士畢業(yè)論文 我要投稿
        • 相關(guān)推薦

        基于DM642的多路視頻采集系統(tǒng)

        引言
          
          隨著數(shù)字信號處理器 DPS 芯片集成度,運(yùn)算速度,數(shù)據(jù)吞吐率等性能的不斷提高,己被廣泛應(yīng)用于許多實時視頻處理和傳輸領(lǐng)域。一般圖像處理系統(tǒng)由攝像機(jī)、圖像采集卡、計算機(jī)構(gòu)成,圖像理解和處理算法全部以軟件方式實現(xiàn)。這是因為實時數(shù)字圖像處理信息量和計算量大,而大多數(shù)圖像采集卡基于成本考慮沒有處理器和大容量的存儲器,絕大部分任務(wù)必須依靠計算機(jī)才能勝任。這種計算機(jī)參與的系統(tǒng)的應(yīng)用場合受到很大限制,在工業(yè)或軍事等復(fù)雜環(huán)境下應(yīng)用極為不便,因此許多專用圖像處理系統(tǒng)應(yīng)運(yùn)而生。脫離計算機(jī)獨(dú)立運(yùn)行的實時專用圖像處理系統(tǒng),由于集圖像采集、處理等功能于一體,并易于滿足圖像處理中數(shù)據(jù)量大、運(yùn)算復(fù)雜、實時性強(qiáng)等要求而受到眾多研究人員的關(guān)注。
          TI 公司推出的TMS320DM642 型數(shù)字信號處理器可實時處理4 路模擬視頻和音頻輸入、1 路模擬/數(shù)字視頻和1 路模擬音頻信號輸出[1-2]。適應(yīng)PAL/NTSC 標(biāo)準(zhǔn)復(fù)合視頻CVBS 或分量視頻Y/C 格式的模擬信號輸入,可適于PAL/NTSC 標(biāo)準(zhǔn)S 端子或數(shù)字RGB 模擬/數(shù)字信號輸出,也可適應(yīng)標(biāo)準(zhǔn)麥克風(fēng)或立體聲音頻模擬輸入及標(biāo)準(zhǔn)立體聲音頻模擬輸出,并進(jìn)采用EDMA 的數(shù)字視頻圖像信號的實時傳輸,具有對多路采集數(shù)據(jù)進(jìn)行實時處理和分析的功能。
          
          1 系統(tǒng)設(shè)計
          
          TMS320DM642 是32 位定點(diǎn)高性能處理器,最高工作頻率可以達(dá)到720MHz,處理能力可以達(dá)到5760MIPS,因此可以實現(xiàn)對多路圖像的實時處理[3-5]。DM642 在TI 的C64x DSP內(nèi)核基礎(chǔ)上進(jìn)一步集成了完備的視頻接口、音頻接口、以太網(wǎng)接口、PCI-66 總線等片上外設(shè)。用戶可以方便地對音頻、視頻等各種復(fù)雜的運(yùn)算進(jìn)行高速處理,因此DM642 已經(jīng)廣泛的應(yīng)用于數(shù)字視頻服務(wù)器、多通道數(shù)字視頻錄像機(jī)、多通道數(shù)字視頻監(jiān)控等領(lǐng)域。
          本系統(tǒng)配置了 4M 的Flash 和32M 的SDRAM,可以滿足一般應(yīng)用的需要。DM642 有三個視頻口,分別為VP0、VP1 和VP2。其中VP2 為單一功能的視頻口。VP0 和VP1 是與McBSP、McASP 復(fù)用引腳。DM642 上集成了一條I2C 總線,本系統(tǒng)中一共有4 個視頻輸入口,而一個I2C 中線能只能接兩個SAA7113 視解編碼器,因此需要在I2C 總線上做總線切換,分成I2C0 和I2C1,這樣就可以接4 個SAA7113 視解編碼器。I2C 總線切換電路見圖1。
          整個系統(tǒng)是DM642 為核心,主要包括視頻模塊、存儲模塊、通信模塊以及其他外圍電路部分。視頻模塊由四塊編碼器芯片和一塊解碼器芯片組成,采用切換方式以支持四路復(fù)合視頻輸入和一路視頻輸出顯示;以存儲模塊通過DM642 的EMIF 接口擴(kuò)展片外存儲器SDRAM 和FLASH,并通過CPLD 控制FLASH 片內(nèi)分頁寄存器的讀寫;通信模塊部分利用CPLD 控制并口傳輸模式,實現(xiàn)時序邏輯以及數(shù)據(jù)傳輸,使整個系統(tǒng)作為從設(shè)備接受主設(shè)備控制以完成特定的圖像處理運(yùn)算等。整個系統(tǒng)的框圖。
          
          2 軟件設(shè)計
          
          本設(shè)計的驅(qū)動程序是按照TI 公司的DDK 驅(qū)動模型設(shè)計的,具有很好的復(fù)用性、移植性和借鑒性。DDK 是TI 公司為簡化驅(qū)動開發(fā)復(fù)雜度,而定義的一個標(biāo)準(zhǔn)的驅(qū)動模型和一套API 函數(shù)[6-7]。該驅(qū)動模型主要分為兩層:類驅(qū)動和微型驅(qū)動。其中類驅(qū)動通過每個外部設(shè)備獨(dú)有的微型驅(qū)動對設(shè)備進(jìn)行操作。微型驅(qū)動通過控制外設(shè)的寄存器、內(nèi)存和中斷資源對外部設(shè)備實現(xiàn)控制。微型驅(qū)動程序必須將特定的外部設(shè)備有效地表示給類驅(qū)動。
          根據(jù) DDK 驅(qū)動模型,本驅(qū)動程序設(shè)計主要包括三個部分: I2C 總線控制部分,就是I2C總線讀寫操作的實現(xiàn)部分;類驅(qū)動部分,主要是為應(yīng)用程序提供API 接口,它的設(shè)計在DDK模型里是通用的,可以不修改地直接采用,所以這里就不作具體介紹了;微型驅(qū)動部分是與硬件有關(guān)的,是驅(qū)動程序設(shè)計的重點(diǎn)。
          
          2.1 I2C 總線控制驅(qū)動程序設(shè)計
          該部分是實現(xiàn) DM642 通過I2C 總線對SAA7113H 和SAA7121H 的控制,使用了底層函數(shù)。在TI 的CSL(Ship Support Library)中都有,只要包含相應(yīng)的頭文件即可直接調(diào)用。如I2C配置結(jié)構(gòu)體(I2C_config)、I2C 寫數(shù)據(jù)函數(shù)(I2C_writeByte)、I2C 配置操作函數(shù)(I2C_RSETH)等。
          要是實現(xiàn)對SAA7113H 和SAA7121H 的控制,就要先對其進(jìn)行配置。
          對 SAA7113H 進(jìn)行配置:
          SA7113H_ConfParams sa7113hPAL[28] = {{0x01,0x08},{0x02,0xC3},{0x03,0x33},{0x04,0x00},{0x05,0x00},{0x06,0xE9},{0x07,0x0D},{0x08,0x00},{0x09,0x01},{0x0A,0x80},{0x0B,0x47},{0x0C,0x40},{0x0D,0x00},{0x0E,0x01},{0x0F,0x24},{0x10,0x08},{0x11,0x0C},{0x12,0x7E},{0x13,0x02},{0x15,0x17},{0x16,0x35},{0x17,0x02},{0x40,0x02},{0x58,0x00},{0x59,0x54},{0x5A,0x07},{0x5B,0x80},{0x5E,0x00}
          };對SAA7121H 進(jìn)行配置:
          SA7121H_ConfParams sa7121hPAL[45] = {{0x26,0x00},{0x27,0x00},{0x28,0x21},{0x29,0x1d},{0x3A,0x13},{0x5A,0x0c},{0x5B,0x21},{0x5c,0xAF},{0x5d,0x23},{0x5e,0x35},{0x5f,0x35},{0x60,0x00},{0x61,0x06},{0x62,0x2F},{0x63,0xcb},{0x64,0x8a},{0x65,0x09},{0x66,0x2a},{0x67,0x55},{0x68,0x56},{0x69,0x67},{0x6a,0x58},{0x6b,0x20},{0x6c,0x05},{0x6d,0x20},{0x6e,0xA0},{0x6f,0x14},{0x70,0x80},{0x71,0xe8},{0x72,0x10},{0x73,0x42},{0x74,0x03},{0x75,0x03},{0x76,0x05},{0x77,0x16},{0x78,0x04},{0x79,0x16},{0x7a,0x18},{0x7b,0x38},{0x7c,0x40},{0x7d,0x00},{0x7e,0x00},{0x7F,0x00}  
          };
            
          2.2 多路視頻采集的驅(qū)動程序設(shè)計
          本驅(qū)動程序是基于 DDK 驅(qū)動模型設(shè)計的,通過 DSP/BIOS 配置工具在DSP/BIOS 應(yīng)用程序中注冊并使用一個微型驅(qū)動,配置應(yīng)用程序使用該微型驅(qū)動。創(chuàng)建一個新的設(shè)備對象后,對其屬性主要設(shè)置設(shè)備號、設(shè)備參數(shù)指針、設(shè)備實例的驅(qū)動函數(shù)表以及該驅(qū)動函數(shù)表的類型。
          FVID 模型是建立在GIO 模型之上的,并對GIO 模型進(jìn)行了改進(jìn)。典型的有FVID_create()、FVID_control()、FVID_alloc()、FVID_exchange()、FVID_free()函數(shù)。FVID 函數(shù)會在設(shè)備表中查找已注冊的微型驅(qū)動,并調(diào)用微型驅(qū)動函數(shù)完成對外部設(shè)備的操作。然后創(chuàng)建FVID 采集、顯示通道,配置 SAA7121, SAA7113,分配相應(yīng)的緩沖區(qū),對得到的視頻幀進(jìn)行處理等操作。
          本設(shè)計是對兩路視頻信號同時采集,通過三個任務(wù)來完成:兩個視頻采集任務(wù)任務(wù)、一個視頻輸出任務(wù)。任務(wù)間是通過SCOM 模塊進(jìn)行通信的,SCOM 模塊管理SCOM 隊列對象。
          每一個SCOM 隊列內(nèi)部使用一個隊列對象(QUE)和一個旗語對象(SEM)。在SCOM 隊列的結(jié)構(gòu)在SCOM 模塊中是私有的。應(yīng)用程序不應(yīng)該涉及到SCOM 隊列的對象。
          視頻采集任務(wù)的程序:
          void tskVideoCaptureVp1(){FVID_Frame *capFrameBuf;SCOM_Handle fromInput1toDIS,fromDIStoInput1;fromInput1toDIS = SCOM_open("IN1TODIS"); /*打開SCOM 模塊*/fromDIStoInput1 = SCOM_open("DISTOIN1");FVID_alloc(capChan, &capFrameBuf); /*申請一個空間*/while(1){SCOM_putMsg(fromInput1toDIS, (FVID_Frame *)capFrameBuf);//向隊列中寫消息SCOM_getMsg(fromDIStoInput1, SYS_FOREVER); //重隊列中讀消息FVID_exchange(capChan, &capFrameBuf);}
          }
          這是其中的一路視頻采集程序,通過同樣的方法可以寫出第二路的采集程序。視頻輸出的任務(wù)中完成了兩路視頻的輸出,主要在循環(huán)中完成,程序如下:
          while(1){capFrameBuf=(FVID_Frame*)SCOM_getMsg(fromInput1toDIS,SYS_FOREVER);for(i = 0; i < numLines; i ++){DAT_copy(capFrameBuf->frame.iFrm.y1 + i * capLinePitch,disFrameBuf->frame.iFrm.y1 + i * disLinePitch, numPixels);}
          capFrameBuf = (FVID_Frame *)SCOM_getMsg(fromInput1btoDIS, SYS_FOREVER);for(i = 0; i < numLines; i ++){DAT_copy(capFrameBuf->frame.iFrm.y1 + i * capLinePitch,disFrameBuf->frame.iFrm.y1 + i * disLinePitch+352, numPixels);}
          DAT_wait(DAT_XFRID_WAITALL);CACHE_clean(CACHE_L2ALL,NULL,NULL);FVID_exchange(disChan, &disFrameBuf);SCOM_putMsg(fromDIStoInput1, NULL);/* loop forever */SCOM_putMsg(fromDIStoInput1b, NULL);/* loop forever */}
          整個軟件設(shè)計的流程圖見:
          
          3 系統(tǒng)調(diào)試
          
          本系統(tǒng)是一個多路視頻采集系統(tǒng),通過巧妙的硬件設(shè)計和精簡的軟件設(shè)計,可以實時輸出各路圖像。以兩路為例,通過兩個CCD 攝像頭,分別接到四個視頻采集口中的兩個,然后通過把視頻輸出端口接到VGA 顯示器上。顯示器分左半邊顯示攝像頭A 的圖像,右半邊顯示攝像頭B 的圖像。實際效果圖見。
          
          4 結(jié)論
          
          本系統(tǒng)通過 I2C 總線上切換的方法完成了多路視頻采集系統(tǒng)的硬件設(shè)計,以 DDK 驅(qū)動模型做視頻驅(qū)動開發(fā),可提高驅(qū)動程序的可重用性和可移植性,簡化視頻驅(qū)動程序的開發(fā),從而極大地提高驅(qū)動程序的開發(fā)效率。實踐證明:基于 DDK 的視頻驅(qū)動程序運(yùn)行穩(wěn)定,與應(yīng)用程序?qū)崿F(xiàn)了無縫連接,是一種高效可靠的開發(fā)方法。多路視頻采集系統(tǒng)成功研制為多路視頻實時處理系統(tǒng)的實現(xiàn)提供了軟硬件支持。

        中國碩士論文網(wǎng)提供大量免費(fèi)碩士畢業(yè)論文,如有業(yè)務(wù)需求請咨詢網(wǎng)站客服人員!
          
          [參考文獻(xiàn)] (References)
          [1] Texas Instruments Incorporated.The DSP/BIOS Driver Developer’s Guide[Z].2002.
          [2] Texas Instruments Incorporated.TMS320DM64x DSP Video Port/VCXO Interpolated Control(VIC) Portreference Guide[Z].2003.
          [3] 劉瓊,安濤,金鋼等.基于 DM642 視頻采集處理系統(tǒng)硬件設(shè)計[J].微計算機(jī)信息,2007,11—2.
          [4] 徐婉瑩,劉建軍,黃新生.基于CPLD 和DSP 的高速圖像采集技術(shù)研究[J].電子工程師,2004,30(6):48-50.
          [5] 薛長松,楊國勝,李志強(qiáng).基于DM642 的的雙CCD 同步運(yùn)動研究[J].計算技術(shù)與自動化,2006, 25(4):24-27.
          [6] T1 DSP/BIOS 用戶手冊與驅(qū)動開發(fā)[M].北京:清華大學(xué)出版社, 2007.
          [7] 吳江,遲學(xué)芬,劉娜等.基于DDK 的音視頻編碼器驅(qū)動的設(shè)計[J].吉林大學(xué)學(xué)報(信息科學(xué)版),2007,25(3):246-250.

        【基于DM642的多路視頻采集系統(tǒng)】相關(guān)文章:

        基于PLC的斷路器型式試驗系統(tǒng)設(shè)計03-10

        基于web的異地并行設(shè)計與制造系統(tǒng)研究06-02

        基于J2EE的遠(yuǎn)動系統(tǒng)Web實時曲線的研究05-11

        基于電話網(wǎng)絡(luò)的熱網(wǎng)遠(yuǎn)程控制系統(tǒng)設(shè)計05-11

        高性能數(shù)據(jù)采集系統(tǒng)芯片LM12H458及其應(yīng)用05-28

        探討基于多種通信方式并存的配網(wǎng)自動化通信系統(tǒng)06-01

        分析基于三維掃描的特種設(shè)備管理系統(tǒng)設(shè)計論文05-26

        基于價值工程的重慶生態(tài)旅游資源系統(tǒng)性研究論文04-23

        基于戰(zhàn)略治理的企業(yè)環(huán)境風(fēng)險研究08-28

        試析基于勝任素質(zhì)的薪酬模式構(gòu)建01-03

        国产高潮无套免费视频_久久九九兔免费精品6_99精品热6080YY久久_国产91久久久久久无码

        1. <tt id="5hhch"><source id="5hhch"></source></tt>
          1. <xmp id="5hhch"></xmp>

        2. <xmp id="5hhch"><rt id="5hhch"></rt></xmp>

          <rp id="5hhch"></rp>
              <dfn id="5hhch"></dfn>