<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>

新聞中心

EEPW首頁(yè) > 嵌入式系統 > 設計應用 > 基于A(yíng)RM和滑動(dòng)指紋傳感器的采集系統

基于A(yíng)RM和滑動(dòng)指紋傳感器的采集系統

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

  時(shí)獲得的每一個(gè)像素,由一個(gè)16進(jìn)制數表示,對應著(zhù)4個(gè)時(shí)鐘周期。當通過(guò)SPI端口傳輸獲取到一幀數據時(shí),先傳輸一個(gè)幀同步信號F0F00200,然后再傳輸232×8像素數據。因此,每傳輸一幀數據,需要n=(232×8+8)×4=7496個(gè)時(shí)鐘周期。當FingerChip以6Mbps工作時(shí),每秒中可獲取804幀數據。獲取到的指紋數據存儲在SDRAM中,通過(guò)程序將紋幀序列拼接成完整的指紋圖像,然后通過(guò)USB傳輸回PC主機中顯示。

4、 定制和驅動(dòng)程序加載

  4.1定制

  為了增加的可維護性,采用Linux系統,Linux內核可根據需要裁減。系統定制過(guò)程為:(1) 首先將RomBoot.bin下載到的SDRAM里;當超級終端顯示RomBoot程序界面之后,分別將RomBoot.bin和U-Boot.bin程序下載存儲到DataFlash的0xc0000000和0xc0008000地址。復位開(kāi)發(fā)板,進(jìn)入U-Boot命令行。(2)在超級終端中,通過(guò)tftp將裁減過(guò)的Linux內核鏡像文件和文件系統下載到Dataflash中運行。

  4.2 加載驅動(dòng)程序

  設備驅動(dòng)程序在Linux內核中,使某個(gè)特定的硬件響應一個(gè)定義良好的內部編程接口,同時(shí)完全隱藏了設備的工作細節。用戶(hù)通過(guò)一組標準化的調用完成對硬件的操作,而這些調用是和特定的驅動(dòng)程序無(wú)關(guān)的。將這些調用映射到作用了實(shí)際硬件的設備特定的操作上,就是設備驅動(dòng)程序的任務(wù)。另一方面,這種編程接口使得驅動(dòng)程序獨立于內核的其他部分而建立,在需要的時(shí)候,可以在運行時(shí)“插入”內核(調入內存),也即Linux中的模塊化實(shí)現,這也是Linux中設備驅動(dòng)程序的一大特點(diǎn)。

  將FingerChip驅動(dòng)程序加載到Linux文件系統中,當系統運行時(shí),使用insmod命令,即可實(shí)現指紋設備的裝載。通過(guò)標準化的調用,實(shí)現對傳感器的控制。

5、 式指紋傳感器的算法

  當手指滑過(guò)時(shí),指紋傳感器到是一系列指紋幀序列,因此在嵌入式系統中,需要對獲取的指紋幀序列進(jìn)行拼接。與PC機中的CPU相比,芯片速度較低。為了減少刮取指紋后的等待時(shí)間,對速度的要求很高。

  從大量的指紋序列中發(fā)現,當速度足夠快時(shí),指紋幀序列相鄰兩幀之間是連續的,而且會(huì )有部分重疊。同時(shí),相鄰指紋幀之間的旋轉和形變微乎其微,幾乎可以被忽略,所以在相鄰指紋幀配準的時(shí)候,只需要計算出兩幀之間的偏移量就可以。

  本文運用指紋拼接算法[5],能夠快速有效的尋找到相鄰指紋幀之間的偏移量。算法是:(1)在圖像A中選取M×N大小的X區域;(2)在圖像B中選取所有可能的M×N大小的Y區域;(3)計算X區域和Y區域對應象素差值的平均值MAE;MAE越小,兩區域相似度越高;(4)MAE最小值對應的Y區域即為與X區域匹配。計算公式為:

(1)

其中0≤i≤M-1,0≤j≤N-1,p(i,j)為X區域的點(diǎn)p的象素值,q(i,j)為Y區域對應點(diǎn)q的象素值。MAE越小,兩區域相似度越高。理想情況下,MAE最小值為0。

  具體實(shí)現步驟:(1)FingerChip AT77104A獲取到的指紋幀數據大小為232×8,設x方向為232,y方向為8。為了有效的拼接相鄰兩幀指紋,設置獲取每一幀數據的頻率,使得y方向的偏移量dy不大于8,即保證相鄰兩幀一定有重疊。(2)理想情況下,手指在y方向滑動(dòng),在x方向上偏移量為0。因此,只考慮dx不大于dy的情況。當dx超過(guò)dy時(shí),滑動(dòng)無(wú)效。(3)由(1)(2)可得,|dx|8。同時(shí)可得,最后一行,中間的(232-8×2)個(gè)象素與下一幀必有重疊。(4)取前一幀最后一行(232-8×2)個(gè)象素,即(232-8×2)×1的模板,與新獲取的一幀指紋匹配。(5)匹配方法:在新的指紋幀里面尋找所有可能的(232-8×2)×1的模板,計算求得MAE。選取MAE的最小值對應的模板,此模板與上一幀的最后一行的(232-8×2)×1的模板相匹配。即得dx,dy。(6)重復執行以上步驟,直到得到一幅完整的指紋圖像。圖3-a為拼接前的指紋幀,圖3-b為拼接后的指紋圖像。

圖3 a.拼接前的指紋幀 b.拼接后的指紋圖像

6、 總結

  本文實(shí)現了9芯片AT77C104B FingerChip的指紋系統,具有低功耗,采集便捷,通信系統簡(jiǎn)單等優(yōu)點(diǎn),具有很大的實(shí)用價(jià)值。開(kāi)發(fā)的指紋拼接算法通過(guò)了AT77C104B FingerChip獲取的100幅指紋幀序列的測試,均能達到較好的效果。該系統獲取到的指紋幀序列和拼接后的指紋圖像,均可通過(guò)USB接口導出,可用于指紋拼接算法有效性的測試和指紋識別算法的測試。因為支持以太網(wǎng)的接入,因此可以聯(lián)網(wǎng)集控。下一步的工作是,在此和指紋拼接算法的基礎上,開(kāi)發(fā)指紋識別系統。


上一頁(yè) 1 2 下一頁(yè)

評論


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