<dfn id="yhprb"><s id="yhprb"></s></dfn><dfn id="yhprb"><delect id="yhprb"></delect></dfn><dfn id="yhprb"></dfn><dfn id="yhprb"><delect id="yhprb"></delect></dfn><dfn id="yhprb"></dfn><dfn id="yhprb"><s id="yhprb"><strike id="yhprb"></strike></s></dfn><small id="yhprb"></small><dfn id="yhprb"></dfn><small id="yhprb"><delect id="yhprb"></delect></small><small id="yhprb"></small><small id="yhprb"></small> <delect id="yhprb"><strike id="yhprb"></strike></delect><dfn id="yhprb"></dfn><dfn id="yhprb"></dfn><s id="yhprb"><noframes id="yhprb"><small id="yhprb"><dfn id="yhprb"></dfn></small><dfn id="yhprb"><delect id="yhprb"></delect></dfn><small id="yhprb"></small><dfn id="yhprb"><delect id="yhprb"></delect></dfn><dfn id="yhprb"><s id="yhprb"></s></dfn> <small id="yhprb"></small><delect id="yhprb"><strike id="yhprb"></strike></delect><dfn id="yhprb"><s id="yhprb"></s></dfn><dfn id="yhprb"></dfn><dfn id="yhprb"><s id="yhprb"></s></dfn><dfn id="yhprb"><s id="yhprb"><strike id="yhprb"></strike></s></dfn><dfn id="yhprb"><s id="yhprb"></s></dfn>

新聞中心

EEPW首頁(yè) > 光電顯示 > 設計應用 > 基于USB2.O的CMOS圖像采集系統的設計

基于USB2.O的CMOS圖像采集系統的設計

作者: 時(shí)間:2009-04-02 來(lái)源:網(wǎng)絡(luò ) 收藏

Slave FIFO模式為從機方式,由0V9620的時(shí)鐘信號PCLK控制CY7C68013內部的多層緩沖FIFO進(jìn)行讀寫(xiě),從而確保了的同步、無(wú)偏移特性。利用幀同步信號VSYNC作為的起始同步信號,當VSYNC高電平到來(lái)以前,初始置PA7為低電平,鉗制SLWR使寫(xiě)入無(wú)效,并且清空FIFO,這樣保證殘余數據清空使不會(huì )發(fā)生偏移;當VSYNC為高電平時(shí),標志一幀圖像的開(kāi)始,進(jìn)入中斷處理。這時(shí)置PA7為高電平,行同步信號HREF使能SLWR,寫(xiě)信號有效。這樣在“量子FIF0”框架下圖像數據從該幀的第一個(gè)像素開(kāi)始自動(dòng)高速地傳輸到上位機中,實(shí)現了采集一幅完整、無(wú)偏移的圖像。


2 軟件
圖像采集軟件主要包括3方面的工作:USB固件程序、USB設備驅動(dòng)程序和主機應用程序。
2.1 USB固件程序
Cypress公司為CY7C68013提供了一個(gè)固件開(kāi)發(fā)框架,可以在KEIL C51環(huán)境下開(kāi)發(fā)。由于開(kāi)發(fā)框架的引入,從而大大縮短了用戶(hù)的研發(fā)周期。該框架由fw.c、USBJmpTb.a(chǎn)5l、dscr.a(chǎn)51、periph.c、Ezusb.1ib幾部分組成。固件程序主要完成一下幾部分功能:(1)初始化,包括對CY7C68013的端點(diǎn)配置和傳輸模式的初始化。(2)命令控制函數,按照采集原理實(shí)現采集過(guò)程。(3)中斷處理,包括處理各種USB中斷及外部中斷。
設計中,考慮到要求高速無(wú)丟失地傳輸大量數據。因此在初始化過(guò)程中,本系統采用BULK傳輸方式。系統EP6(FIFOADR[1:0]=10)為塊傳輸IN端點(diǎn),采用總線(xiàn)供電,IFCLK由外部設備控制器提供(IFCONFIG=Ox43H),確保系統的穩定行。其輸入選擇1 6位數據線(xiàn)(wORDWIDE=1)并行輸入,并設置FIF0深度位4倍緩沖,保證傳輸具有較高的寬度和深度。系統采用自動(dòng)打包的方式(hUTOIN=1)使外設的數據由于不需要8051的處理,直接從FIFO到SIE,有利于提高傳輸速率。而命令控制函數和中斷處理負責采集原理的實(shí)施,其程序部分代碼如下:

2.2 USB驅動(dòng)程序設計
USB設備驅動(dòng)程序在整個(gè)系統中相當于設備端固件和主機應用程序之間的紐帶。USB設備驅動(dòng)程序屬于WDM驅動(dòng)程序,其主要完成了兩個(gè)功能:第一,USB設備的添加,操作系統快速識別USB硬件設備;第二,處理IRP_MJ_PNP青求,建立設備端與操作系統之間的通訊。
編寫(xiě)USB設備驅動(dòng)程序所需要的開(kāi)發(fā)環(huán)境,主要包括:DDK(Drivet Oevelopment Kit,驅動(dòng)開(kāi)發(fā)工具包),BUILD工具和Visua1 C++開(kāi)發(fā)環(huán)境。Visual C++是包含標準編譯工具的集成開(kāi)發(fā)環(huán)境,通過(guò)正確設置,其可以用來(lái)建立內核模式的設備驅動(dòng)程序。它向用戶(hù)提供了以良好的編譯環(huán)境、方便的調試器和一些有用的工具(如rebase、guidgen等),都有助于驅動(dòng)程序的開(kāi)發(fā)。因此,本系統系統采用Visual C++6.0開(kāi)發(fā)工具,對USB設備驅動(dòng)程序進(jìn)行開(kāi)發(fā)和調試,步驟如下:
1)設置Visual C++驅動(dòng)開(kāi)環(huán)境
2)創(chuàng )建并設置一個(gè)Makefile項目,使處于驅動(dòng)開(kāi)發(fā)環(huán)境。
3)使用當前Makefile項目來(lái)開(kāi)發(fā)設備驅動(dòng)程序,也可以修改通用驅動(dòng)程序(GDP),使其符合該采集系統要求。
4)編寫(xiě)DrvBuild.Bat批處理文件。
5)調用BUILD工具,創(chuàng )建驅動(dòng)程序,安裝驅動(dòng)。

2.3 主機應用程序設計
本系統在VC++6.0下調用API函數編寫(xiě)上層用戶(hù)端圖像顯示程序,實(shí)現對USB高速傳輸,捕獲,讀寫(xiě)和保存等操作。為提高采集速度,在設計用使用了多線(xiàn)程技術(shù),采用兩個(gè)線(xiàn)程完成圖像的顯示,即將控制線(xiàn)程與采集顯示線(xiàn)程。其流程圖如圖4一a所示。
由于0V9620采用彩色濾光器陣列(CFA)為Bayer方案,如圖5所示,每個(gè)像素只包括RGB顏色的一個(gè)分量,為恢復另外2種顏色分量,必須進(jìn)行彩色去馬賽克(co1ordemosaicing)處理,即彩色插值。本系統采用雙線(xiàn)性(Bilinear)差值算法對像素進(jìn)行還原,即利用相鄰像素中同色分量的平均值作為當前像素的待求顏色分量。其具體數學(xué)模型為:

令S(x,y)表示像素點(diǎn)(x,y)處的顏色值,包含三個(gè)顏色分量:紅色R(x,y)、綠色G(x,y)、藍色B(x,y),則有:

然后對圖像進(jìn)行雙線(xiàn)性差值,其中可分兩類(lèi)像素點(diǎn)。



評論


相關(guān)推薦

技術(shù)專(zhuān)區

關(guān)閉
国产精品自在自线亚洲|国产精品无圣光一区二区|国产日产欧洲无码视频|久久久一本精品99久久K精品66|欧美人与动牲交片免费播放
<dfn id="yhprb"><s id="yhprb"></s></dfn><dfn id="yhprb"><delect id="yhprb"></delect></dfn><dfn id="yhprb"></dfn><dfn id="yhprb"><delect id="yhprb"></delect></dfn><dfn id="yhprb"></dfn><dfn id="yhprb"><s id="yhprb"><strike id="yhprb"></strike></s></dfn><small id="yhprb"></small><dfn id="yhprb"></dfn><small id="yhprb"><delect id="yhprb"></delect></small><small id="yhprb"></small><small id="yhprb"></small> <delect id="yhprb"><strike id="yhprb"></strike></delect><dfn id="yhprb"></dfn><dfn id="yhprb"></dfn><s id="yhprb"><noframes id="yhprb"><small id="yhprb"><dfn id="yhprb"></dfn></small><dfn id="yhprb"><delect id="yhprb"></delect></dfn><small id="yhprb"></small><dfn id="yhprb"><delect id="yhprb"></delect></dfn><dfn id="yhprb"><s id="yhprb"></s></dfn> <small id="yhprb"></small><delect id="yhprb"><strike id="yhprb"></strike></delect><dfn id="yhprb"><s id="yhprb"></s></dfn><dfn id="yhprb"></dfn><dfn id="yhprb"><s id="yhprb"></s></dfn><dfn id="yhprb"><s id="yhprb"><strike id="yhprb"></strike></s></dfn><dfn id="yhprb"><s id="yhprb"></s></dfn>