- 基于USB傳輸及CMOS圖像傳感器的指紋識別儀的實現
- 來源:賽斯維傳感器網 發表于 2014/12/25
引言
CMOS圖像傳感器是近年來得到快速發展的一種新型固態圖像傳感器。它將圖像傳感部分和控制電路高度集成在同一芯片里,體積明顯減小、功耗也大大降低,滿足了對高度小型化、低功耗成像系統的要求。與傳統的CCD圖像傳感器相比,CMOS圖像傳感器還具有集成度高、控制簡單、價格低廉等諸多優點。因此隨著CMOS集成電路工藝的不斷進步和完善,CMOS圖像傳感器已經廣泛應用于各種通用圖像采集系統中。同時作為一種PC機與外圍設備間的高速通信接口,USB具有許多突出的有點:連接簡便,可熱插拔,無需定位及運行安裝程序,無需連接外設時關機及重啟系統,實現真正的即插即用;高傳輸速率,USB1.1協議支持12Mb/s;不占用系統硬件資源,能夠自動檢測和配置外圍設備,不存在硬件沖突問題。
因此,利用CMOS數字圖像傳感器與USB接口數據傳輸來實現的指紋識別儀具有結構簡單,體積小,便攜化等優點。現將介紹利用OMniVision公司的CMOS彩色數字圖像傳感器OV762M和cypress公司的EZ—USB AN2131QC USB控制傳輸芯片(內部集成了增強形51內核)來實現指紋信息的采集和USB傳輸,同時由于指紋傳感器輸出數據的速率(27MB/s)與USB控制器(AN2131QC)數據傳輸速率(12Mb/s)的不匹配,故系統采用了SRAM和CPLD構成中間高速緩沖區。
系統結構
應用AN2131QC、CPLD和OV762M設計的指紋識別系統硬件框圖如圖1所示:
圖1指紋識別硬件系統簡略框架圖
首先,AN2131QC通過I2C對指紋識別傳感器(OV7620)的窗口設置等參數進行配置,光學透鏡把像成在OV762M的像面上后,CMOS圖像傳感器(OV7620)對其進行空間采樣,并按照一定的幀頻連續輸出8位的數字圖像數據Y[7∶M](輸出數字圖像數據的幀同步信號為VSYNC,水平有效信號為HREF,輸出時鐘信號為PCLK)。為了實現指紋傳感器輸出數據與USB控制器(AN2131QC)讀取數據速度與時序的匹配,使用了SRAM(IS61C1024)和CPLD構成高速緩沖區,利用此高速緩沖區將OV762M采集的指紋數據緩存。最后AN2131QC實現與上位機的USB通信,將高速緩沖區中數據的傳輸到PC機進行相應圖像處理。
CMOS數字圖像傳感器OV7620
CMOS數字圖像傳感器OV762M集成了一個664×492的感光陣列、幀(行)控制電路、視頻時序產生電路、模擬信號處理電路、A/D轉換電路、數字信號輸出電路及寄存器I2C編程接口。感光陣列得到原始的彩色圖像信號后,模擬處理電路完成諸如顏色分離與均衡、增益控制、gamMA校正、白電平調整等主要的信號處理工作,最后可根據需要輸出多種標準的視頻信號。視頻時序產生電路用于產生行同步、場同步、混合視頻同步等多種同步信號和像素時鐘等多種內部時鐘信號,外部控制器可通過I2C總線接口設置或讀取OV762M的工作狀態、工作方式以及數據的輸出格式等。
AN2131QC通過I2C總線接口設定OV762M的寄存器來控制輸出幀率在0.5幀/s~3M幀/s之間變化,輸出窗口在4×2~664×492之間可調(默認輸出640×48M的標準VGA格式),設置黑白平衡等。根據指紋采集的需要,窗口輸出設置為:320×288,經過設定后的OV762M輸出時序如圖2所示:
圖2 0V762M輸出時序
VSYNC是垂直場同步信號(也是每幀同步信號,CMOS是按列采集圖像的),其下降沿表示一幀圖像的開始,HREF提供了一種有效的控制方式,當輸出像素行列分別處于設定窗口之間時HREF為有效高電平,此時輸出有效的視頻數據,PCLK是輸出數據同步信號,上升沿輸出一個有效的像素Y[7∶M].
基于CPLD技術的高速數據緩沖區的實現
在由CPLD和SRAM構成的高速數據緩沖區中,CPLD充當了SRAM的控制器,其內部電路實現框圖如圖3所示:
圖3 SRAM高速緩沖區控制器的CPLD實現圖3中ram_rd,raM_wr為輸出到SRAM的讀寫信號線,raM_data,ram_addr為SRAM的數據地址總線;latch_f為SRAM的讀寫允許信號,當為高電平時允許對SRAM寫操作,為低電平時允許對SRAM讀操作;兩個8路三態門用于隔離總線,當對SRAM寫時,輸出cpu_datA為高阻態,當對SRAM讀時,將采集數據信號Y [7∶M]隔離;cpu_rds,vsync為開始讀寫信號,單個正脈沖將SRAM地址置0;cpu_rD作為SRAM快速讀脈沖,pclk為SRAM寫脈沖;irq為寫滿標志,用于向上提供中斷標志;地址發生器用于產生SRAM地址(IS61C1024有17根地址線)。
圖4 CPLD實現的仿真波形
由圖3中邏輯知道,當允許對SRAM寫(latch_f=1)且采集的數據有效(href=1)時,pclk脈沖通過地址發生器產生地址(sync單個正脈沖將SRAM地址復位到0),將采集的數據Y[7∶M]寫入SRAM中,當寫滿(寫完一幀的32M像素×288像素)時,irq信號有效,通過中斷將latch_f置低允許將SRAM數據讀出(cpu_rds單個正脈沖將SRAM地址復位到0),此后cpu_rD通過地址發生器產生地址將SRAM中數據讀出到USB緩沖區。上述邏輯仿真波形如圖4所示(由于數據線和地址線較多,故只取其中部分信號時序,cpu_datA為X表示其值根據SRAM數據總線上具體值而定),由圖4可知,CPLD實現了對SRAM的控制,與SRAM一起組成了高速數據緩沖區。
USB快速批量傳輸的實現
USB控制接口芯片AN2131QC特性簡介AN2131QC是基于USB1.1協議設計的,支持高速12Mb/s的傳輸速率,內嵌有增強型8051微控制器、8kB的RAM和一個智能USB內核的收發器,它包含一個I2C總線控制器和3個8位多功能I/O口,有8位數據總線和16位地址總線用于外部RAM擴展。其結構如圖5所示。
圖5 AN2131QC結構簡圖
AN2131QC內部的USB差分收發器連接到USB總線的D+和D-上。串行接口引擎(SIE)對USB總線上串行數據進行編碼和譯碼(即實現USB協議的打包和解包工作),同時執行錯誤糾正、位填充及其它USB需要的信號標準,這種機制大大減輕了8051的工作,簡化了固件的編程。內核微處理器是一個增強型8051,其指令周期為4個時鐘周期并具有雙DPTR指針,同時指令與標準8051兼容。它使用內部RAM存儲固件程序和數據,上電后,主機通過USB總線將固件程序和外設特性描述符下載到內部RAM(也可以直接從板上E2PROM上讀取),然后重連接,按照下載的特性描速符進行重枚舉,這種設計可以實現軟件的隨時在線升級。
USB快速批量傳輸的實現當采集的指紋數據導入了由SRAM和CPLD構成的高速數據緩沖緩沖區后,要通過USB接口將數據發送到上位PC機,AN2131QC必須先將數據讀入到內部USB緩沖區,因此,AN2131QC將數據傳到內部USB緩沖的速度將是整個USB數據傳輸速度快慢的關鍵。為了使USB數據傳輸(從外部讀入數據并將之傳到PC機)達到最快,需要采用很多措施,下面就設計指紋識別儀固件(AN2131QC程序)中采用的USB批量傳輸進行探討。
正常情況下,AN2131QC內核結構從外部讀入數據到USB的端點緩沖區,要使用的匯編程序為:
movx a,@dptr;讀外部數據到acc寄存器incdptr;外部地址加1 incdps;切換DPTR指針(內核有雙DPTR指針,用dps進行切換)
movx @dptr,a;將acc內容放入USB緩沖區incdptr;USB緩沖區地址加1 incdps;切換DPTR指針
由上述程序可知,數據在寄存器中完成操作后,都必須有一個“incdptr”和“incdps”指令來完成16位地址的增加和緩沖區指針切換。為了消除這種內部消耗,使用AN2131QC提供的一種特殊的硬件指針即自動指針(只用于內部緩沖區),8051裝載USB緩沖區地址到兩個AUTOPTRH (高字節地址)和AUTOPTRL(低字節地址)寄存器中,向AUTODATA寫入的數據就直接存入由AUTOPTR/H2L指向的地址緩沖區中,并且內核自動增加AUTOPTR/H2L中16位地址的值。這樣USB緩沖區可以像FIFO一樣來順序寫入數據,節省了每次寫內部USB緩沖區時的“incdptr”指令。同時內核還提供一種快速模式(只用于對外部數據操作),此模式從外部讀數據“movx a,@dptr”時,直接將外部數據總線和內部緩沖區連在一起,由于使用CPLD和SRAM構成的指紋高速緩沖區具有FIFO的性質,所以使用快速模式讀外部指紋數據時也節省了“incdptr”指令。將上述兩種方式結合起來,讀外部數據到內部緩沖區程序就只需要一條指令:movx @dptr,A(dptR存放AUTODATA寄存器地址),此指令需要兩個8051機器周期(8個24MHz時鐘周期)。這樣,一個字節可以在333ns內讀入到USB端點緩沖區。
在USB接口數據傳輸一側,當PC機要對一特定端點進行讀數據并發送IN令牌,如果一個IN令牌到達時8051還沒有完成向USB端點緩沖區的數據裝載(讀外部數據),AN2131QC就發送一個NAK握手信號來響應IN令牌,表明PC機應該在稍后再發送一個IN令牌。為了解決這種等待從而達到最快的傳輸速度,可以使用雙緩沖技術(端點配對),使8051在前一個數據包在USB總線上傳輸的時候,裝載塊數據的下一個數據包。
結 論
利用CMOS數字圖像傳感器OV762M和USB控制器AN2131QC實現的指紋儀結構簡單,體積小,使用方便。指紋識別系統中使用CPLD技術實現了高速緩沖,解決了速度時序匹配問題;使用了快速批量USB傳輸技術實現了數據的快速傳輸,使指紋數據的傳輸達到最高速(每幀傳輸只用80Ms)。使用現論述的方法實現的指紋儀采集的指紋數據經PC機重現后效果如圖6所示(左圖是未經任何處理的重現,右圖是經過平滑、細化等算法處理后的重現)。
圖6采集指紋重現效果(處理前后)
轉載請注明來源:賽斯維傳感器網(www.sensorway.cn)
- 如果本文收錄的圖片文字侵犯了您的權益,請及時與我們聯系,我們將在24內核實刪除,謝謝!