<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>
關(guān) 閉

新聞中心

EEPW首頁(yè) > 工控自動(dòng)化 > 設計應用 > 基于USB2I2C接口的CMOS圖像傳感器在線(xiàn)調試系統

基于USB2I2C接口的CMOS圖像傳感器在線(xiàn)調試系統

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

圖像傳感器是近年來(lái)發(fā)展最為快速的新型固態(tài)圖像傳感器,它利用其自身的工藝和集成的特點(diǎn)將光電成像陣列與信號模擬放大和數字圖像處理電路集成于單芯片內,與CCD圖像傳感器相比,具有體積小、功耗低、控制簡(jiǎn)單、價(jià)格低廉等優(yōu)點(diǎn)。伴隨工藝的不斷進(jìn)步和完善,以及其自身缺點(diǎn)如noise、顏色還原度、動(dòng)態(tài)范圍等籌的改進(jìn),圖像傳感器的應用越來(lái)越廣。以上CMOS圖像傳感器的諸多缺點(diǎn)大部分可以在其流片后通過(guò)調試克服或者改進(jìn),所以對CMOS圖像傳感器的快速調節顯得尤為重要。

本文引用地址:http://dyxdggzs.com/article/201610/307184.htm

USB(Universal Serial Bus)總線(xiàn)是一種PC機與外圍設備間高速通信,具有速率快,熱插拔等特性,可以廣泛應用于與計算機通信;I2C(Inter-Integrated Circuit Bus)總線(xiàn)以?xún)筛B線(xiàn)實(shí)現全雙工同步數據傳送,控制方式簡(jiǎn)單,其可直接設置或讀取CMOS圖像傳感器的。

文中詳細介紹了基于USB2I2C接口實(shí)現對CMOS圖像傳感器的在線(xiàn)的設計過(guò)程,包括固件程序的設計方法,基于WDM模型的驅動(dòng)程序設計和MFC的應用軟件設計開(kāi)發(fā)。

1 CMOS圖像傳感器

該圖像傳感器為自主設計、研發(fā)并流片的一款SoC(System—on—a—Chip)芯片——CUST1089。該款芯片集成了一個(gè)640X480的簡(jiǎn)化4T像素結構的感光陣列、模擬數據采集、模數轉換、數字圖像處理電路、SPI控制接口及I2C編程接口。CUST1089圖像傳感器采用了110 nm的CIS(CMOS圖像傳感器)工藝生產(chǎn),以PLCC(Plastic Leaded Chin Carri er)進(jìn)行封裝。其圖像采用D1格式輸出,兼具模擬與數字輸出功能,供電電壓為3.3 V。

2 的組成和工作原理

為了調節CMOS圖像傳感器的圖像,每個(gè)sensor的設計廠(chǎng)家都有自己的一套,該系統的硬件系統一般是由CMOS圖像傳感器成像板、FPGA開(kāi)發(fā)板和USB接口轉換版組成,在配上復雜龐大的軟件系統,能夠對CMOS圖像傳感器進(jìn)行細致的、全面的調節。但是這種調試系統對CMOS圖像傳感器調試周期長(cháng)、復雜性高,一般人員難以入手。既延長(cháng)了sensor的上市時(shí)間,又對客戶(hù)要求較高。從種種方面考慮,文中設計了一種基于USB2I2C接口的CMOS圖像傳感器在線(xiàn)調試系統,以USB2I2C開(kāi)發(fā)板作為在線(xiàn)調試系統的硬件部分,如圖1所示,結構簡(jiǎn)單,調試方便,旨在調節CMOS模擬輸出圖像質(zhì)量。

2.1 USB2I2C芯片

USB2I2C是一個(gè)USB總線(xiàn)與I2C總線(xiàn)相互轉化的接口芯片。不需要單片機/(數字信號處理)/MCU(微控制單元)等的監控就能實(shí)現PC上位機由USB接口與下位控制器之間數據的直接輸入和輸出,結構簡(jiǎn)單,應用廣泛。USB2I2C芯片作為USB Device使用時(shí),符合USB2.0協(xié)議規范,支持4種數據傳輸類(lèi)型:控制傳輸、同步傳輸、中斷傳輸和批量傳輸;US B2I2C芯片作為I2C的主設備(Master)時(shí),符合I2C串行接口協(xié)議規范,總線(xiàn)只能有一個(gè)主器件控制,從器件只有存總線(xiàn)空閑時(shí)才啟動(dòng)數據傳輸。USB2I2C具有的低掛起功耗可以執行總線(xiàn)供電功能。此外該芯片還集成了FlexWireTM,可編程時(shí)鐘輸出、低頻晶振、多重功能終端等特性功能。所以,PC上位機界面應用程序可通過(guò)USB接口與USB2I2C芯片通信,并利用USB2I2C芯片提供的SCL(Serial Clock)時(shí)鐘線(xiàn)和SDA(Serial Data)數據線(xiàn)可以方便地對CMOS圖像傳感器的

進(jìn)行讀寫(xiě)。

2.2 系統原理

在線(xiàn)調試系統由傳輸、顯示兩部分構成。傳輸部分由USB2I2C開(kāi)發(fā)板完成PC機與CMOS圖像傳感器數據交互,顯示部分在PC機上用MFC開(kāi)發(fā)完成的寄存器調節界面。系統構成框圖如圖1所示。

a.jpg

在系統上電前,USB2I2C開(kāi)發(fā)板的I2C接口連接以CMOS圖像傳感器為核心的成像板,其USB接口連接到PC機。系統上電后,首先寄存器調節界面由USB接口通過(guò)USB2I2C芯片利用SDA線(xiàn)和SCL線(xiàn)對CMOS圖像傳感器進(jìn)行初始化讀取,以確定CMOS圖像傳感器的初始狀態(tài),包括自動(dòng)曝光、增益、飽和度和亮度等參數的顯示。

傳輸是由USB2I2C芯片來(lái)完成,USB2I2C芯片與PC機連接時(shí),作為USB Device使用;USB2I2C芯片轉換出來(lái)的I2C總線(xiàn)連接CMOS圖像傳感器時(shí),作為I2C的主設備(Master)。當USB2I2C芯片作為USB Device時(shí),負責USB2I2C芯片的初始化和與PC的通信連接。上位機軟件與USB設備通信時(shí),USB2I2C芯片的串行接口引擎(SIE)實(shí)現USB協(xié)議層,通過(guò)管道在主機緩沖區與設備端點(diǎn)問(wèn)傳輸數據,采用了塊傳輸和中斷傳輸;當USB2I2C芯片作為I2C的主設備時(shí),SCL是單向輸出同步時(shí)鐘,向IC器件發(fā)送時(shí)鐘信號,SDA用于雙向數據輸入輸出,用7位地址位作為從機地址和一位R/W(讀/寫(xiě))位向CMOS圖像傳感器發(fā)送地址,建立連接。USB數據與I2C數據的轉換是在USB2I2C芯片內部完成。

寄存器調節是整個(gè)調試過(guò)程中最復雜的過(guò)程,要先保證CMOS圖像傳感器的正確讀取初其始狀態(tài)后,然后才是具體設置值的問(wèn)題,并且要保證CMOS圖像傳感器的寄存器值與調試界面的對應項實(shí)時(shí)變化,如修改調試界面上對比度的值,則管理對比度的CMOS圖像傳感器的寄存器的值相應的改變;反之,亦然。寄存器調節界面可以手動(dòng)調節增益、降噪、對比度、Gamma曲線(xiàn)校正等寄存器參數,還可以根據部分算法,如顏色矩陣(CMX)、自動(dòng)白平衡(AWB),自動(dòng)生成相應的寄存器參數,取代了人工大量計算,完成對圖像的自動(dòng)調整,使圖像質(zhì)量接近真實(shí)場(chǎng)景。

3 調試系統軟件設計

3.1 設備固件設計

USB2I2C固件程序由3部分構成:主程序,I2C讀寫(xiě)子程序和USB固件程序。USB2I2C分別作為USB device和I2C的Master時(shí)的同件程序設計可參考文獻。主程序的任務(wù)可以中斷,其中斷服務(wù)完成USB數據與I2C數據相互轉換。所以,中斷服務(wù)是同件程序設計的重點(diǎn)。由USB協(xié)議可知,任何傳輸都是由主機(host)開(kāi)始的。主機通過(guò)USB接口先發(fā)送令牌包給USB2I2C芯片,USB2I2C芯片接收到令牌包后,并檢測INT#引腳,當其變成高電平后主程序進(jìn)入中斷服務(wù)程序。固件程序讀USB2I2C的中斷寄存器,判斷USB令牌包的類(lèi)型,然后執行相應的事務(wù)操作,完成USB數據與I2C數據轉變。中斷服務(wù)程序流程圖如圖2所示。USB2I2C芯片可支持3個(gè)端點(diǎn)(EP0~2),其中端點(diǎn)0用來(lái)對應缺省控制通道初始化和重新配置設備地址信息,同時(shí)又能讀取沒(méi)備配置信息和控制傳輸的輸入輸出。端點(diǎn)1~2則用于支持塊傳輸和中斷傳輸。

b.jpg

3.2 設備驅動(dòng)程序設計

設備驅動(dòng)程序運行于內核層,是操作系統中控制和鏈接硬件的重要模塊,它隱藏了硬件設備內部的具體實(shí)現細節,并且對操作系統通明。因此,在Windows操作系統中,應用層只能通過(guò)運行于內核層的驅動(dòng)程序控制硬件。

USB設備驅動(dòng)程序是一種典型的WDM驅動(dòng)程序,采用分層結構。首先應用層程序通過(guò)調用WIN32API函數向設備發(fā)出命令,由I/O管理器生成一個(gè)IRP,IRP被傳輸到USB設備驅動(dòng)程序后,取出其中的控制碼來(lái)找到對應的例程入口,然后USB設備驅動(dòng)程序構造URB(USB請求包),將URB作為IRP的一個(gè)參數傳遞給底層的總線(xiàn)驅動(dòng)程序上,完成與硬件最終的通信。在本系統開(kāi)發(fā)中,驅動(dòng)程序采用了WDK(Windows Driver Kit)和DDKWizards工具。在WDK的子目錄的srcusbusbsamp目錄下,提供了一個(gè)usb驅動(dòng)程序例子。該示例全面地支持了即插即用IRP處理和電源管理,同時(shí)也很好地支持了USB設備的bulk(批量)讀寫(xiě)和中斷讀寫(xiě)。在項目開(kāi)發(fā)中,對該示例的代碼只需要指定何種管道,發(fā)送何種數據即可,然后編譯鏈接后生成.sys驅動(dòng)程序,再利用系統自帶的GenInf工具來(lái)生成.inf安裝文件的基本框架,最后對其進(jìn)行適當的修改即可生成安裝文件。

3.3 應用程序設計

在Win32系統中,應用程序可通過(guò)文件操作API函數即可實(shí)現與設備的通信。USB2I2C的并口驅動(dòng)程序和動(dòng)態(tài)鏈接庫USBIOX.DLL向應用程序提供了應用層接口,包括:設備管理API、同步串口數據傳輸API、中斷處理API。應用程序時(shí)只需調用USBIO_OpenDeviee,USBIO_StreamI2C等函數便可對USB2I2C設備進(jìn)行打開(kāi)、讀、寫(xiě)操作,實(shí)現了PC上位機與下位機的通信。

3.3.1 應用程序實(shí)時(shí)響應

由于該應用程序要相應鍵盤(pán)消息,則應用程序通過(guò)重載虛函數PreTranslateMessage()對所關(guān)心的消息進(jìn)行截取與響應。通過(guò)對鍵盤(pán)消息的截取和相應,實(shí)現了CMOS圖像傳感器的寄存器地址值與調試界面的對應項實(shí)時(shí)變化。

3.3.2 根據算法自動(dòng)生成寄存器參數

對于簡(jiǎn)單DSP算法(對比度、飽和度、Gamma曲線(xiàn)校正等)功能的實(shí)現,只需簡(jiǎn)單的調節寄存器值即可完成對相應功能的調整。但是對于一些復雜的DSP算法如CMX、AWB等,就需要經(jīng)過(guò)復雜的調試,然后得出多個(gè)相應的寄存器參數,最后改變相應的寄存器值,才能完成對圖像的調節。為了簡(jiǎn)化這種復雜的調試,對于復雜的DSP算法,該調試系統增加了其自動(dòng)調試功能:根據具體的DSP算法及其功能確定其參數計算算法,獲得參數后,把參數寫(xiě)入寄存器以完成該算法的功能調節。

下面以CMX(Color Matrix)算法為例簡(jiǎn)單介紹自動(dòng)調試功能。

CMX(Color Matrix)算法主要是對圖像顏色的旋轉和拉伸,把某些顏色往左旋轉,有些顏色往右旋轉等等,達到自己喜歡的顏色或者與真實(shí)場(chǎng)景相差無(wú)幾的圖像。CMX算法是通過(guò)5*5變換矩陣與5*1色彩矩陣(包括R,G,B,A(Alpha透明度),W(虛擬位))相乘,對圖像顏色進(jìn)行的幾何變換,轉換、縮放RGB顏色,完成對任何顏色轉換。

計算這個(gè)顏色矩陣,是個(gè)病態(tài)問(wèn)題,可能會(huì )有多個(gè)解,有的結果可能會(huì )偏這個(gè)風(fēng)格,有的結果可能會(huì )偏另外一種風(fēng)格。CMX無(wú)法完全把sensor的圖像顏色還原到人眼的特性,只能是一種模糊的調節,接近目標顏色。由于圖像的每個(gè)像素只有3個(gè)分量,所以為簡(jiǎn)化CMX算法的復雜性,采用了3X3的變換矩陣與3X1的輸入矩陣相乘,得到一個(gè)3X1的輸出顏色矩陣,如公式(1)所示:

c.jpg

其中所求矩陣為變換矩陣。

由上可知CMX算法中共用到9個(gè)參數,根據CMX算法功能,求解變換矩陣算法為:以標準色卡為測試場(chǎng)景,通過(guò)設置得到CMX的標準色卡的輸出圖像矩陣,并且色卡的標準輸入矩陣已知,如公式(2);利用公式(1),可求出一組變換矩陣,如公式(3)。

其中輸出圖像矩陣和標準色卡的標準輸入矩陣分別為:

d.jpg

同理,重復計算兩次,再得到兩組變換矩陣,如公式(4)所示。然后采用最小判斷標準,如公式(5),可以求出變換矩陣的m00參數,同理可求出其他8個(gè)參數。

e.jpg

一般情況下,越小得到的變形矩陣參數越好,圖像的質(zhì)量也越好。如圖3所示,為CMX自動(dòng)算法得出的參數。

f.jpg

4 實(shí)驗結果

該系統對CUST1089圖像傳感器進(jìn)行了測試,從對比度、亮度、飽和度等方面方便快速地調整了圖像質(zhì)量。圖4為在線(xiàn)調試系統的USB2I2C開(kāi)發(fā)板和以CUST1089芯片為核心的成像板,其中CUST1089芯片成像板連接電視,USB2I2C芯片連接PC機。圖5是對比度的寄存器值為164,飽和度的寄存器值為112;圖6為調整后對比度的寄存器值為65,飽和度的寄存器值為100。

g.jpg

h.jpg

5 結論

本設計利用USB2I2C開(kāi)發(fā)板和軟件系統實(shí)現了對CUST1089圖像傳感器的在線(xiàn)調試。該系統運行穩定,結構簡(jiǎn)單,外圍電路少。該系統驗證了通過(guò)I2C總線(xiàn)對CMOS圖像傳感器的寄存器進(jìn)行不同配置,可得到不同的成像效果。應用層程序能生成調試跟蹤文件和寄存器配置文件。調試跟蹤文件記錄調試過(guò)程中寄存器更改過(guò)程,可方便追蹤、查看調試過(guò)程;寄存器配置文件保存最終調試結果。

文中創(chuàng )新點(diǎn):該系統實(shí)現了DSP(CMX、AWB等)算法自動(dòng)生成相應的寄存器參數功能,結束了人工大量運算,完成自動(dòng)調節CMOS圖像傳感器的圖像。對于不同的CMOS圖像傳感器,程序設計者只需改變在線(xiàn)調試系統的應用層程序的寄存器地址,即可完成對所有具有I2C接口的CMOS圖像傳感器的實(shí)時(shí)調節。



關(guān)鍵詞: CMOS 調試系統 接口 DSP 寄存器

評論


相關(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>