當(dāng)前位置:首頁 > 顯示光電 > 顯示光電
[導(dǎo)讀] CMOS圖像傳感器是近年來發(fā)展最為快速的新型固態(tài)圖像傳感器,它利用其自身的工藝和集成的特點(diǎn)將光電成像陣列與信號模擬放大和數(shù)字圖像處理電路集成于單芯片內(nèi),與CCD圖像傳感器相比,具有體積小、功耗低、控制簡單、

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

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

文中詳細(xì)介紹了基于USB2I2C接口實(shí)現(xiàn)對CMOS圖像傳感器的在線調(diào)試系統(tǒng)的設(shè)計(jì)過程,包括固件程序的設(shè)計(jì)方法,基于WDM模型的驅(qū)動(dòng)程序設(shè)計(jì)和MFC的應(yīng)用軟件設(shè)計(jì)開發(fā)。

1 CMOS圖像傳感器

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

2 調(diào)試系統(tǒng)的組成和工作原理

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

2.1 USB2I2C芯片

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

寄存器進(jìn)行讀寫。

2.2 系統(tǒng)原理

在線調(diào)試系統(tǒng)由傳輸、顯示兩部分構(gòu)成。傳輸部分由USB2I2C開發(fā)板完成PC機(jī)與CMOS圖像傳感器數(shù)據(jù)交互,顯示部分在PC機(jī)上用MFC開發(fā)完成的寄存器調(diào)節(jié)界面。系統(tǒng)構(gòu)成框圖如圖1所示。

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

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

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

3 調(diào)試系統(tǒng)軟件設(shè)計(jì)

3.1 設(shè)備固件設(shè)計(jì)

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

3.2 設(shè)備驅(qū)動(dòng)程序設(shè)計(jì)

設(shè)備驅(qū)動(dòng)程序運(yùn)行于內(nèi)核層,是操作系統(tǒng)中控制和鏈接硬件的重要模塊,它隱藏了硬件設(shè)備內(nèi)部的具體實(shí)現(xiàn)細(xì)節(jié),并且對操作系統(tǒng)通明。因此,在Windows操作系統(tǒng)中,應(yīng)用層只能通過運(yùn)行于內(nèi)核層的驅(qū)動(dòng)程序控制硬件。

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

3.3 應(yīng)用程序設(shè)計(jì)

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

3.3.1 應(yīng)用程序?qū)崟r(shí)響應(yīng)

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

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

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

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

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

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

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

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

其中輸出圖像矩陣和標(biāo)準(zhǔn)色卡的標(biāo)準(zhǔn)輸入矩陣分別為:

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

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

4 實(shí)驗(yàn)結(jié)果

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

5 結(jié)論

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

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

本站聲明: 本文章由作者或相關(guān)機(jī)構(gòu)授權(quán)發(fā)布,目的在于傳遞更多信息,并不代表本站贊同其觀點(diǎn),本站亦不保證或承諾內(nèi)容真實(shí)性等。需要轉(zhuǎn)載請聯(lián)系該專欄作者,如若文章內(nèi)容侵犯您的權(quán)益,請及時(shí)聯(lián)系本站刪除。
換一批
延伸閱讀

9月2日消息,不造車的華為或?qū)⒋呱龈蟮莫?dú)角獸公司,隨著阿維塔和賽力斯的入局,華為引望愈發(fā)顯得引人矚目。

關(guān)鍵字: 阿維塔 塞力斯 華為

加利福尼亞州圣克拉拉縣2024年8月30日 /美通社/ -- 數(shù)字化轉(zhuǎn)型技術(shù)解決方案公司Trianz今天宣布,該公司與Amazon Web Services (AWS)簽訂了...

關(guān)鍵字: AWS AN BSP 數(shù)字化

倫敦2024年8月29日 /美通社/ -- 英國汽車技術(shù)公司SODA.Auto推出其旗艦產(chǎn)品SODA V,這是全球首款涵蓋汽車工程師從創(chuàng)意到認(rèn)證的所有需求的工具,可用于創(chuàng)建軟件定義汽車。 SODA V工具的開發(fā)耗時(shí)1.5...

關(guān)鍵字: 汽車 人工智能 智能驅(qū)動(dòng) BSP

北京2024年8月28日 /美通社/ -- 越來越多用戶希望企業(yè)業(yè)務(wù)能7×24不間斷運(yùn)行,同時(shí)企業(yè)卻面臨越來越多業(yè)務(wù)中斷的風(fēng)險(xiǎn),如企業(yè)系統(tǒng)復(fù)雜性的增加,頻繁的功能更新和發(fā)布等。如何確保業(yè)務(wù)連續(xù)性,提升韌性,成...

關(guān)鍵字: 亞馬遜 解密 控制平面 BSP

8月30日消息,據(jù)媒體報(bào)道,騰訊和網(wǎng)易近期正在縮減他們對日本游戲市場的投資。

關(guān)鍵字: 騰訊 編碼器 CPU

8月28日消息,今天上午,2024中國國際大數(shù)據(jù)產(chǎn)業(yè)博覽會(huì)開幕式在貴陽舉行,華為董事、質(zhì)量流程IT總裁陶景文發(fā)表了演講。

關(guān)鍵字: 華為 12nm EDA 半導(dǎo)體

8月28日消息,在2024中國國際大數(shù)據(jù)產(chǎn)業(yè)博覽會(huì)上,華為常務(wù)董事、華為云CEO張平安發(fā)表演講稱,數(shù)字世界的話語權(quán)最終是由生態(tài)的繁榮決定的。

關(guān)鍵字: 華為 12nm 手機(jī) 衛(wèi)星通信

要點(diǎn): 有效應(yīng)對環(huán)境變化,經(jīng)營業(yè)績穩(wěn)中有升 落實(shí)提質(zhì)增效舉措,毛利潤率延續(xù)升勢 戰(zhàn)略布局成效顯著,戰(zhàn)新業(yè)務(wù)引領(lǐng)增長 以科技創(chuàng)新為引領(lǐng),提升企業(yè)核心競爭力 堅(jiān)持高質(zhì)量發(fā)展策略,塑強(qiáng)核心競爭優(yōu)勢...

關(guān)鍵字: 通信 BSP 電信運(yùn)營商 數(shù)字經(jīng)濟(jì)

北京2024年8月27日 /美通社/ -- 8月21日,由中央廣播電視總臺(tái)與中國電影電視技術(shù)學(xué)會(huì)聯(lián)合牽頭組建的NVI技術(shù)創(chuàng)新聯(lián)盟在BIRTV2024超高清全產(chǎn)業(yè)鏈發(fā)展研討會(huì)上宣布正式成立。 活動(dòng)現(xiàn)場 NVI技術(shù)創(chuàng)新聯(lián)...

關(guān)鍵字: VI 傳輸協(xié)議 音頻 BSP

北京2024年8月27日 /美通社/ -- 在8月23日舉辦的2024年長三角生態(tài)綠色一體化發(fā)展示范區(qū)聯(lián)合招商會(huì)上,軟通動(dòng)力信息技術(shù)(集團(tuán))股份有限公司(以下簡稱"軟通動(dòng)力")與長三角投資(上海)有限...

關(guān)鍵字: BSP 信息技術(shù)
關(guān)閉
關(guān)閉