基于USB和CMOS圖像傳感器的指紋識別儀設(shè)計
USB快速批量傳輸?shù)膶崿F(xiàn)
本文引用地址:http://m.butianyuan.cn/article/255777.htmUSB控制接口芯片AN2131QC特性簡介
AN2131QC是基于USB1.1協(xié)議設(shè)計的,支持高速12Mb/s的傳輸速率,內(nèi)嵌有增強型8051微控制器、8kB的RAM和一個智能USB內(nèi)核的收發(fā)器,它包含一個I2C總線控制器和3個8位多功能I/O口,有8位數(shù)據(jù)總線和16位地址總線用于外部RAM擴展。其結(jié)構(gòu)如圖5所示。
?
圖5 AN2131QC結(jié)構(gòu)簡圖
AN2131QC內(nèi)部的USB差分收發(fā)器連接到USB總線的D+和D-上。串行接口引擎(SIE)對USB總線上串行數(shù)據(jù)進(jìn)行編碼和譯碼(即實現(xiàn)USB協(xié)議的打包和解包工作),同時執(zhí)行錯誤糾正、位填充及其它USB需要的信號標(biāo)準(zhǔn),這種機制大大減輕了8051的工作,簡化了固件的編程。內(nèi)核微處理器是一個增強型8051,其指令周期為4 個時鐘周期并具有雙DPTR指針,同時指令與標(biāo)準(zhǔn)8051兼容。它使用內(nèi)部RAM存儲固件程序和數(shù)據(jù),上電后,主機通過USB總線將固件程序和外設(shè)特性描述符下載到內(nèi)部RAM(也可以直接從板上E2PROM上讀取),然后重連接,按照下載的特性描速符進(jìn)行重枚舉,這種設(shè)計可以實現(xiàn)軟件USB快速批量傳輸?shù)膶崿F(xiàn)。
當(dāng)采集的指紋數(shù)據(jù)導(dǎo)入了由SRAM和CPLD構(gòu)成的高速數(shù)據(jù)緩沖緩沖區(qū)后,要通過USB接口將數(shù)據(jù)發(fā)送到上位PC機,AN2131QC必須先將數(shù)據(jù)讀入到內(nèi)部USB緩沖區(qū),因此,AN2131QC將數(shù)據(jù)傳到內(nèi)部USB緩沖的速度將是整個USB數(shù)據(jù)傳輸速度快慢的關(guān)鍵。為了使USB數(shù)據(jù)傳輸(從外部讀入數(shù)據(jù)并將之傳到PC機)達(dá)到最快,需要采用很多措施,下面就設(shè)計指紋識別儀固件(AN2131QC程序)中采用的USB批量傳輸進(jìn)行探討。
正常情況下,AN2131QC內(nèi)核結(jié)構(gòu)從外部讀入數(shù)據(jù)到USB的端點緩沖區(qū),要使用的匯編程序為:
movx a,@dptr;讀外部數(shù)據(jù)到acc寄存器incdptr;外部地址加1
incdps;切換DPTR指針(內(nèi)核有雙DPTR指針,用dps進(jìn)行切換)
movx @dptr,a;將acc內(nèi)容放入USB緩沖區(qū)
incdptr;USB緩沖區(qū)地址加1
incdps;切換DPTR指針
由上述程序可知,數(shù)據(jù)在寄存器中完成操作后,都必須有一個“incdptr”和“incdps”指令來完成16位地址的增加和緩沖區(qū)指針切換。為了消除這種內(nèi)部消耗,使用AN2131QC提供的一種特殊的硬件指針即自動指針(只用于內(nèi)部緩沖區(qū)),8051裝載USB緩沖區(qū)地址到兩個AUTOPTRH (高字節(jié)地址)和AUTOPTRL(低字節(jié)地址)寄存器中,向AUTODATA寫入的數(shù)據(jù)就直接存入由AUTOPTR/H2L指向的地址緩沖區(qū)中,并且內(nèi)核自動增加AUTOPTR/H2L中16位地址的值。這樣USB緩沖區(qū)可以像FIFO一樣來順序?qū)懭霐?shù)據(jù),節(jié)省了每次寫內(nèi)部USB緩沖區(qū)時的“incdptr”指令。同時內(nèi)核還提供一種快速模式(只用于對外部數(shù)據(jù)操作),此模式從外部讀數(shù)據(jù)“movx a,@dptr”時,直接將外部數(shù)據(jù)總線和內(nèi)部緩沖區(qū)連在一起,由于使用CPLD和SRAM構(gòu)成的指紋高速緩沖區(qū)具有FIFO的性質(zhì),所以使用快速模式讀外部指紋數(shù)據(jù)時也節(jié)省了“incdptr”指令。將上述兩種方式結(jié)合起來,讀外部數(shù)據(jù)到內(nèi)部緩沖區(qū)程序就只需要一條指令:movx @dptr,A(dptR存放AUTODATA寄存器地址),此指令需要兩個8051機器周期(8個24MHz時鐘周期)。這樣,一個字節(jié)可以在333ns內(nèi)讀入到USB端點緩沖區(qū)。
在USB接口數(shù)據(jù)傳輸一側(cè),當(dāng)PC機要對一特定端點進(jìn)行讀數(shù)據(jù)并發(fā)送IN令牌,如果一個IN令牌到達(dá)時8051還沒有完成向USB端點緩沖區(qū)的數(shù)據(jù)裝載(讀外部數(shù)據(jù)),AN2131QC就發(fā)送一個NAK握手信號來響應(yīng)IN令牌,表明PC機應(yīng)該在稍后再發(fā)送一個IN令牌。為了解決這種等待從而達(dá)到最快的傳輸速度,可以使用雙緩沖技術(shù)(端點配對),使8051在前一個數(shù)據(jù)包在USB總線上傳輸?shù)臅r候,裝載塊數(shù)據(jù)的下一個數(shù)據(jù)包。
結(jié) 論
利用CMOS數(shù)字圖像傳感器OV762M和USB控制器AN2131QC實現(xiàn)的指紋儀結(jié)構(gòu)簡單,體積小,使用方便。指紋識別系統(tǒng)中使用CPLD技術(shù)實現(xiàn)了高速緩沖,解決了速度時序匹配問題;使用了快速批量USB傳輸技術(shù)實現(xiàn)了數(shù)據(jù)的快速傳輸,使指紋數(shù)據(jù)的傳輸達(dá)到最高速(每幀傳輸只用80Ms)。使用現(xiàn)論述的方法實現(xiàn)的指紋儀采集的指紋數(shù)據(jù)經(jīng)PC機重現(xiàn)后效果如圖6所示(左圖是未經(jīng)任何處理的重現(xiàn),右圖是經(jīng)過平滑、細(xì)化等算法處理后的重現(xiàn))。
?
圖6 采集指紋重現(xiàn)效果(處理前后)
傳感器相關(guān)文章:傳感器工作原理
負(fù)離子發(fā)生器相關(guān)文章:負(fù)離子發(fā)生器原理 風(fēng)速傳感器相關(guān)文章:風(fēng)速傳感器原理 脈沖點火器相關(guān)文章:脈沖點火器原理 離子色譜儀相關(guān)文章:離子色譜儀原理 溫濕度控制器相關(guān)文章:溫濕度控制器原理
評論