新聞中心

EEPW首頁(yè) > 模擬技術(shù) > 設(shè)計(jì)應(yīng)用 > 基于USB傳輸及CMOS圖像傳感器的指紋識(shí)別儀的實(shí)現(xiàn)

基于USB傳輸及CMOS圖像傳感器的指紋識(shí)別儀的實(shí)現(xiàn)

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

引 言

是近年來(lái)得到快速發(fā)展的一種新型固態(tài)圖像傳感器。它將圖像傳感部分和控制電路高度集成在同一芯片里,體積明顯減小、功耗也大大降低,滿(mǎn)足了對(duì)高度小型化、低功耗成像系統(tǒng)的要求。與傳統(tǒng)的CCD圖像傳感器相比,還具有集成度高、控制簡(jiǎn)單、價(jià)格低廉等諸多優(yōu)點(diǎn)。因此隨著CMOS集成電路工藝的不斷進(jìn)步和完善,已經(jīng)廣泛應(yīng)用于各種通用圖像采集系統(tǒng)中。同時(shí)作為一種PC機(jī)與外圍設(shè)備間的高速通信接口,USB具有許多突出的有點(diǎn): 連接簡(jiǎn)便,可熱插拔,無(wú)需定位及運(yùn)行安裝程序,無(wú)需連接外設(shè)時(shí)關(guān)機(jī)及重啟系統(tǒng),實(shí)現(xiàn)真正的即插即用;高傳輸速率,USB1.1協(xié)議支持12Mb/s;不占用系統(tǒng)硬件資源,能夠自動(dòng)檢測(cè)和配置外圍設(shè)備,不存在硬件沖突問(wèn)題。

因此,利用CMOS數(shù)字圖像傳感器與USB接口數(shù)據(jù)傳輸來(lái)實(shí)現(xiàn)的具有結(jié)構(gòu)簡(jiǎn)單,體積小,便攜化等優(yōu)點(diǎn)?,F(xiàn)將介紹利用OMniVision公司的CMOS彩色數(shù)字圖像傳感器OV762M和cypress公司的EZ—USB USB控制傳輸芯片(內(nèi)部集成了增強(qiáng)形51內(nèi)核)來(lái)實(shí)現(xiàn)指紋信息的采集和USB傳輸,同時(shí)由于指紋傳感器輸出數(shù)據(jù)的速率(27MB/s)與USB控制器()數(shù)據(jù)傳輸速率(12Mb/s)的不匹配,故系統(tǒng)采用了SRAM和構(gòu)成中間高速緩沖區(qū)。

系統(tǒng)結(jié)構(gòu)

應(yīng)用、和OV762M設(shè)計(jì)的指紋識(shí)別系統(tǒng)硬件框圖如圖1所示:

基于USB傳輸及CMOS圖像傳感器的指紋識(shí)別儀的實(shí)現(xiàn)
圖1 指紋識(shí)別硬件系統(tǒng)簡(jiǎn)略框架圖

首先,AN2131QC通過(guò)I2C對(duì)指紋識(shí)別傳感器()的窗口設(shè)置等參數(shù)進(jìn)行配置,光學(xué)透鏡把像成在OV762M的像面上后,CMOS圖像傳感器()對(duì)其進(jìn)行空間采樣,并按照一定的幀頻連續(xù)輸出8位的數(shù)字圖像數(shù)據(jù)Y[7∶M](輸出數(shù)字圖像數(shù)據(jù)的幀同步信號(hào)為VSYNC,水平有效信號(hào)為HREF,輸出時(shí)鐘信號(hào)為PCLK)。為了實(shí)現(xiàn)指紋傳感器輸出數(shù)據(jù)與USB控制器(AN2131QC)讀取數(shù)據(jù)速度與時(shí)序的匹配,使用了SRAM(IS61C1024)和構(gòu)成高速緩沖區(qū),利用此高速緩沖區(qū)將OV762M采集的指紋數(shù)據(jù)緩存。最后AN2131QC實(shí)現(xiàn)與上位機(jī)的USB通信,將高速緩沖區(qū)中數(shù)據(jù)的傳輸?shù)絇C機(jī)進(jìn)行相應(yīng)圖像處理。

CMOS數(shù)字圖像傳感器

CMOS數(shù)字圖像傳感器OV762M集成了一個(gè)664×492 的感光陣列、幀(行)控制電路、視頻時(shí)序產(chǎn)生電路、模擬信號(hào)處理電路、A/D轉(zhuǎn)換電路、數(shù)字信號(hào)輸出電路及寄存器I2C編程接口。感光陣列得到原始的彩色圖像信號(hào)后,模擬處理電路完成諸如顏色分離與均衡、增益控制、gamMA校正、白電平調(diào)整等主要的信號(hào)處理工作,最后可根據(jù)需要輸出多種標(biāo)準(zhǔn)的視頻信號(hào)。視頻時(shí)序產(chǎn)生電路用于產(chǎn)生行同步、場(chǎng)同步、混合視頻同步等多種同步信號(hào)和像素時(shí)鐘等多種內(nèi)部時(shí)鐘信號(hào),外部控制器可通過(guò)I2C總線接口設(shè)置或讀取OV762M的工作狀態(tài)、工作方式以及數(shù)據(jù)的輸出格式等。

AN2131QC通過(guò)I2C總線接口設(shè)定OV762M的寄存器來(lái)控制輸出幀率在0.5幀/s~3M幀/s之間變化,輸出窗口在4×2~664×492 之間可調(diào)(默認(rèn)輸出640×48M的標(biāo)準(zhǔn)VGA格式),設(shè)置黑白平衡等。根據(jù)指紋采集的需要,窗口輸出設(shè)置為: 320×288,經(jīng)過(guò)設(shè)定后的OV762M輸出時(shí)序如圖2 所示:

基于USB傳輸及CMOS圖像傳感器的指紋識(shí)別儀的實(shí)現(xiàn)
圖2 0V762M輸出時(shí)序

VSYNC是垂直場(chǎng)同步信號(hào)(也是每幀同步信號(hào),CMOS是按列采集圖像的),其下降沿表示一幀圖像的開(kāi)始,HREF 提供了一種有效的控制方式,當(dāng)輸出像素行列分別處于設(shè)定窗口之間時(shí)HREF 為有效高電平,此時(shí)輸出有效的視頻數(shù)據(jù),PCLK是輸出數(shù)據(jù)同步信號(hào),上升沿輸出一個(gè)有效的像素Y[7∶M]。

基于CPLD技術(shù)的高速數(shù)據(jù)緩沖區(qū)的實(shí)現(xiàn)

在由CPLD和SRAM構(gòu)成的高速數(shù)據(jù)緩沖區(qū)中,CPLD充當(dāng)了SRAM的控制器,其內(nèi)部電路實(shí)現(xiàn)框圖如圖3所示:

基于USB傳輸及CMOS圖像傳感器的指紋識(shí)別儀的實(shí)現(xiàn)
圖3 SRAM高速緩沖區(qū)控制器的CPLD實(shí)現(xiàn)

圖3中ram_rd,raM_wr為輸出到SRAM的讀寫(xiě)信號(hào)線,raM_data,ram_addr為SRAM的數(shù)據(jù)地址總線;latch_f為SRAM的讀寫(xiě)允許信號(hào),當(dāng)為高電平時(shí)允許對(duì)SRAM寫(xiě)操作,為低電平時(shí)允許對(duì)SRAM讀操作;兩個(gè)8路三態(tài)門(mén)用于隔離總線,當(dāng)對(duì)SRAM寫(xiě)時(shí),輸出cpu_datA為高阻態(tài),當(dāng)對(duì)SRAM讀時(shí),將采集數(shù)據(jù)信號(hào)Y [7∶M]隔離;cpu_rds,vsync為開(kāi)始讀寫(xiě)信號(hào),單個(gè)正脈沖將SRAM地址置0;cpu_rD作為SRAM快速讀脈沖,pclk為SRAM寫(xiě)脈沖;irq為寫(xiě)滿(mǎn)標(biāo)志,用于向上提供中斷標(biāo)志;地址發(fā)生器用于產(chǎn)生SRAM地址(IS61C1024有17根地址線)。

基于USB傳輸及CMOS圖像傳感器的指紋識(shí)別儀的實(shí)現(xiàn)

圖4 CPLD實(shí)現(xiàn)的仿真波形

由圖3中邏輯知道,當(dāng)允許對(duì)SRAM寫(xiě)(latch_f=1)且采集的數(shù)據(jù)有效(href=1)時(shí),pclk脈沖通過(guò)地址發(fā)生器產(chǎn)生地址(sync單個(gè)正脈沖將SRAM地址復(fù)位到0),將采集的數(shù)據(jù)Y[7∶M]寫(xiě)入SRAM中,當(dāng)寫(xiě)滿(mǎn)(寫(xiě)完一幀的32M像素×288像素)時(shí),irq信號(hào)有效,通過(guò)中斷將latch_f置低允許將SRAM數(shù)據(jù)讀出(cpu_rds單個(gè)正脈沖將SRAM地址復(fù)位到0),此后cpu_rD通過(guò)地址發(fā)生器產(chǎn)生地址將SRAM中數(shù)據(jù)讀出到USB緩沖區(qū)。上述邏輯仿真波形如圖4 所示(由于數(shù)據(jù)線和地址線較多,故只取其中部分信號(hào)時(shí)序,cpu_datA為X 表示其值根據(jù)SRAM數(shù)據(jù)總線上具體值而定),由圖4 可知,CPLD實(shí)現(xiàn)了對(duì)SRAM的控制,與SRAM一起組成了高速數(shù)據(jù)緩沖區(qū)。

USB快速批量傳輸?shù)膶?shí)現(xiàn)

USB控制接口芯片AN2131QC特性簡(jiǎn)介

AN2131QC是基于USB1.1協(xié)議設(shè)計(jì)的,支持高速12Mb/s的傳輸速率,內(nèi)嵌有增強(qiáng)型8051微控制器、8kB的RAM和一個(gè)智能USB內(nèi)核的收發(fā)器,它包含一個(gè)I2C總線控制器和3個(gè)8位多功能I/O口,有8位數(shù)據(jù)總線和16位地址總線用于外部RAM擴(kuò)展。其結(jié)構(gòu)如圖5所示。

基于USB傳輸及CMOS圖像傳感器的指紋識(shí)別儀的實(shí)現(xiàn)

圖5 AN2131QC結(jié)構(gòu)簡(jiǎn)圖

AN2131QC內(nèi)部的USB差分收發(fā)器連接到USB總線的D+和D-上。串行接口引擎(SIE)對(duì)USB總線上串行數(shù)據(jù)進(jìn)行編碼和譯碼(即實(shí)現(xiàn)USB協(xié)議的打包和解包工作),同時(shí)執(zhí)行錯(cuò)誤糾正、位填充及其它USB需要的信號(hào)標(biāo)準(zhǔn),這種機(jī)制大大減輕了8051的工作,簡(jiǎn)化了固件的編程。內(nèi)核微處理器是一個(gè)增強(qiáng)型8051,其指令周期為4 個(gè)時(shí)鐘周期并具有雙DPTR指針,同時(shí)指令與標(biāo)準(zhǔn)8051兼容。它使用內(nèi)部RAM存儲(chǔ)固件程序和數(shù)據(jù),上電后,主機(jī)通過(guò)USB總線將固件程序和外設(shè)特性描述符下載到內(nèi)部RAM(也可以直接從板上E2PROM上讀取),然后重連接,按照下載的特性描速符進(jìn)行重枚舉,這種設(shè)計(jì)可以實(shí)現(xiàn)軟件的隨時(shí)在線升級(jí)。

USB快速批量傳輸?shù)膶?shí)現(xiàn)

當(dāng)采集的指紋數(shù)據(jù)導(dǎo)入了由SRAM和CPLD構(gòu)成的高速數(shù)據(jù)緩沖緩沖區(qū)后,要通過(guò)USB接口將數(shù)據(jù)發(fā)送到上位PC機(jī),AN2131QC必須先將數(shù)據(jù)讀入到內(nèi)部USB緩沖區(qū),因此,AN2131QC將數(shù)據(jù)傳到內(nèi)部USB緩沖的速度將是整個(gè)USB數(shù)據(jù)傳輸速度快慢的關(guān)鍵。為了使USB數(shù)據(jù)傳輸(從外部讀入數(shù)據(jù)并將之傳到PC機(jī))達(dá)到最快,需要采用很多措施,下面就設(shè)計(jì)固件(AN2131QC程序)中采用的USB批量傳輸進(jìn)行探討。

正常情況下,AN2131QC內(nèi)核結(jié)構(gòu)從外部讀入數(shù)據(jù)到USB的端點(diǎn)緩沖區(qū),要使用的匯編程序?yàn)椋?

movx a,@dptr;讀外部數(shù)據(jù)到acc寄存器incdptr;外部地址加1
incdps;切換DPTR指針(內(nèi)核有雙DPTR指針,用dps進(jìn)行切換)
movx @dptr,a;將acc內(nèi)容放入U(xiǎn)SB緩沖區(qū)
incdptr;USB緩沖區(qū)地址加1
incdps;切換DPTR指針

由上述程序可知,數(shù)據(jù)在寄存器中完成操作后,都必須有一個(gè)“incdptr”和“incdps”指令來(lái)完成16位地址的增加和緩沖區(qū)指針切換。為了消除這種內(nèi)部消耗,使用AN2131QC提供的一種特殊的硬件指針即自動(dòng)指針(只用于內(nèi)部緩沖區(qū)),8051裝載USB緩沖區(qū)地址到兩個(gè)AUTOPTRH (高字節(jié)地址)和AUTOPTRL(低字節(jié)地址)寄存器中,向AUTODATA寫(xiě)入的數(shù)據(jù)就直接存入由AUTOPTR/H2L指向的地址緩沖區(qū)中,并且內(nèi)核自動(dòng)增加AUTOPTR/H2L中16位地址的值。這樣USB緩沖區(qū)可以像FIFO一樣來(lái)順序?qū)懭霐?shù)據(jù),節(jié)省了每次寫(xiě)內(nèi)部USB緩沖區(qū)時(shí)的“incdptr”指令。同時(shí)內(nèi)核還提供一種快速模式(只用于對(duì)外部數(shù)據(jù)操作),此模式從外部讀數(shù)據(jù)“movx a,@dptr”時(shí),直接將外部數(shù)據(jù)總線和內(nèi)部緩沖區(qū)連在一起,由于使用CPLD和SRAM構(gòu)成的指紋高速緩沖區(qū)具有FIFO的性質(zhì),所以使用快速模式讀外部指紋數(shù)據(jù)時(shí)也節(jié)省了“incdptr”指令。將上述兩種方式結(jié)合起來(lái),讀外部數(shù)據(jù)到內(nèi)部緩沖區(qū)程序就只需要一條指令:movx @dptr,A(dptR存放AUTODATA寄存器地址),此指令需要兩個(gè)8051機(jī)器周期(8個(gè)24MHz時(shí)鐘周期)。這樣,一個(gè)字節(jié)可以在333ns內(nèi)讀入到USB端點(diǎn)緩沖區(qū)。

在USB接口數(shù)據(jù)傳輸一側(cè),當(dāng)PC機(jī)要對(duì)一特定端點(diǎn)進(jìn)行讀數(shù)據(jù)并發(fā)送IN令牌,如果一個(gè)IN令牌到達(dá)時(shí)8051還沒(méi)有完成向USB端點(diǎn)緩沖區(qū)的數(shù)據(jù)裝載(讀外部數(shù)據(jù)),AN2131QC就發(fā)送一個(gè)NAK握手信號(hào)來(lái)響應(yīng)IN令牌,表明PC機(jī)應(yīng)該在稍后再發(fā)送一個(gè)IN令牌。為了解決這種等待從而達(dá)到最快的傳輸速度,可以使用雙緩沖技術(shù)(端點(diǎn)配對(duì)),使8051在前一個(gè)數(shù)據(jù)包在USB總線上傳輸?shù)臅r(shí)候,裝載塊數(shù)據(jù)的下一個(gè)數(shù)據(jù)包。

結(jié) 論

利用CMOS數(shù)字圖像傳感器OV762M和USB控制器AN2131QC實(shí)現(xiàn)的指紋儀結(jié)構(gòu)簡(jiǎn)單,體積小,使用方便。指紋識(shí)別系統(tǒng)中使用CPLD技術(shù)實(shí)現(xiàn)了高速緩沖,解決了速度時(shí)序匹配問(wèn)題;使用了快速批量USB傳輸技術(shù)實(shí)現(xiàn)了數(shù)據(jù)的快速傳輸,使指紋數(shù)據(jù)的傳輸達(dá)到最高速(每幀傳輸只用80Ms)。使用現(xiàn)論述的方法實(shí)現(xiàn)的指紋儀采集的指紋數(shù)據(jù)經(jīng)PC機(jī)重現(xiàn)后效果如圖6所示(左圖是未經(jīng)任何處理的重現(xiàn),右圖是經(jīng)過(guò)平滑、細(xì)化等算法處理后的重現(xiàn))。

基于USB傳輸及CMOS圖像傳感器的指紋識(shí)別儀的實(shí)現(xiàn)
圖6 采集指紋重現(xiàn)效果(處理前后)

光電開(kāi)關(guān)相關(guān)文章:光電開(kāi)關(guān)原理


評(píng)論


相關(guān)推薦

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

關(guān)閉