基于ARM9處理器的嵌入式指紋識別系統(tǒng)設計
0 引言
指紋鑒定是人身識別最重要的手段之一, 指紋自動識別系統(tǒng)給指紋鑒定工作提供了一個新的平臺, 并使指紋自動識別系統(tǒng)在身份認證方面具有更廣闊的前景。目前, 自動指紋識別系統(tǒng)一般都是聯(lián)機的,大多數(shù)系統(tǒng)都選用指紋傳感器來采集, 并以計算機(PC) 作為主機來處理, 從而對指紋進行匹配。而本文提出的基于ARM9的嵌入式指紋識別系統(tǒng)則是把采集和處理集于一身的獨立系統(tǒng), 因而可以做得很小, 比較適合用于高檔汽車門、防盜門以及公*勤系統(tǒng)等場合。嵌入式系統(tǒng)是指以應用為中心, 以計算機技術為基礎, 軟硬件可裁剪, 其應用系統(tǒng)對功能、可靠性、成本、體積和功耗等要求都比較嚴格的專用計算機系統(tǒng)。本文選用SAMSUNG的S3C2440A作為嵌入式指紋系統(tǒng)的主處理芯片,提出了系統(tǒng)的軟硬件設計方案。:
1 嵌入式指紋識別系統(tǒng)的硬件設計
圖1所示是本嵌入式指紋識別系統(tǒng)的硬件框圖。從圖1中可以看到, 本系統(tǒng)主要由指紋數(shù)據(jù)采集模塊、微處理器模塊、數(shù)據(jù)存儲模塊和通訊模塊等四個模塊組成。本系統(tǒng)以ARM9處理器為核心來驅(qū)動指紋傳感器采集指紋, 并將指紋數(shù)據(jù)放入存儲器中, 此數(shù)據(jù)可以被PC通過串口獲取,也可以保存在數(shù)據(jù)存儲器中。
指紋數(shù)據(jù)采集模塊可利用軟件方式來判斷是否進行指紋的采集。當進行指紋采集時, 指紋傳感芯片將按照設定的參數(shù)來采集指紋, 并將模擬圖像轉(zhuǎn)換成數(shù)字圖像, 然后在ARM的控制下, 將數(shù)據(jù)存儲在外部數(shù)據(jù)空間, 以等待下一步的處理。
指紋識別系統(tǒng)的硬件框圖
圖1 指紋識別系統(tǒng)的硬件框圖。
微處理器模塊以ARM和數(shù)據(jù)存儲器為核心,可對采集到的指紋圖像進行相應的預處理, 并通過對發(fā)光二極管的控制來顯示指紋預處理結果。
數(shù)據(jù)存儲模塊由SDRAM、FLASH構成。其中Flash中存放的是系統(tǒng)的應用程序和一個指紋預處理后的數(shù)據(jù), 系統(tǒng)上電后, 即可通過“BootLoader”
功能將程序加載到FLASH中以便程序運行。
SDRAM用來存放指紋圖像并提供程序運行時所需要的臨時數(shù)據(jù)空間。
通訊模塊的設計要考慮到處理的簡易性。本系統(tǒng)的指紋數(shù)據(jù)上傳采用的是串口方式。
2 指紋傳感器與處理器的接口設計
2.1 指紋采集器件的選擇
考慮到產(chǎn)品價格的因素和所需精度的要求,本系統(tǒng)選擇了FPS200 指紋傳感器。FPS200 是Veridicom公司推出的第三代半導體指紋傳感器,是一款專為嵌入式系統(tǒng)設計的高性能、低功耗、低價格指紋傳感器。FPS200可以輕易地集成到各種設備中, 如便攜式電腦、個人數(shù)字助理(PDA)、移動電話等。FPS200基于電容器充放電原理, 它由300行和256列電容陣列組成, 傳感陣列的每一點都是一個金屬電極,可充當電容器的一極, 手指按在傳感接觸面上的對應點則作為另一極, 傳感面形成兩極之間的介電層。由于指紋的脊和谷會導致各點的電容值不同, 因此, 這個電容值陣列就形成了一幅指紋圖像。FPS200是面向行的器件, 即每次可獲得一行圖像, 每列接有兩個采樣保持電路, 當選定一行后, 對此行的所有電容充電至VDD, 而在充電結束時, 第一組采樣保持電路將保存該電壓值。然后, 該行電容將被放電, 經(jīng)過一定的放電時間后, 另一組采樣保持電路將保存剩余電壓值。兩組采樣保持電路的電壓值之差正比于電容值, 這樣, 將其數(shù)字化即可表示該行的指紋圖像。FPS200的放電電流和放電時間可分別由寄存器DCR、DTR的值來設定。
FPS200在待命模式下的操作電流小于20μA, 故可在移動設備的應用中節(jié)約電池的消耗, 延長電池壽命。此外, FPS200還有手指自動檢測電路(AFD), 當有手指按在傳感器表面時,系統(tǒng)將向主機發(fā)送一個中斷信號。自動檢測電路允許主機在沒有指紋時處在低功耗待命模式, 只有當有手指時才喚醒主機進行處理,從而節(jié)省了整個系統(tǒng)的功耗。FPS200的圖像搜索功能則可通過改變電容陣列的參數(shù)值來在1秒種內(nèi)掃描多幅指紋圖像并自動選擇最好的一幅。
2.2 指紋圖像的采集方式
FPS200有三種總線接口: USB接口、微處理器總線(MCU) 接口和串行外設接口(SPI)。使用時可由模式選擇管腳MODE [1:0] 確定其所處的工作模式。
在MCU接口模式, 通過自動增加行列地址寄存器的值以及模數(shù)轉(zhuǎn)換的路徑優(yōu)化功能, 可使FPS200內(nèi)置的標準8位微處理器總線的性能大大加強, 其圖像傳輸速度可達到30幀/秒, 故可以滿足連續(xù)指紋圖像的采集和比對。
在SPI接口模式, FPS200傳感器可通過其內(nèi)置的SPI接口來減小FPS200對硬件的依賴, 這樣,系統(tǒng)只需6條線就可以與帶SPI接口的微處理器相連接。在SPI模式下, FPS200的圖像傳輸速度為10幀/秒。
而在USB接口模式下, 由于FPS200內(nèi)置有高速USB核電路, 其外部不再需要其它USB控制器,因而可作為標準的USB設備來使用。在USB模式下, FPS200的圖像傳輸速度為13幀/秒。
本設計選用SPI接口, 其FPS200與ARM處理器的連線圖如圖2所示。
FPS200與ARM的連線圖
圖2 FPS200與ARM的連線圖。
FPS200的一些狀態(tài)寄存器(如DTR、DCR、PGC、THR等) 需要在進行指紋采集之前被初始化。FPS200共有19個寄存器, 其中控制寄存器C(CTRLC) 主要負責時鐘輸出, 端口P0和Pl在使用中無需考慮。
3 系統(tǒng)軟件設計
本系統(tǒng)的軟件主程序流程圖如圖3所示。
系統(tǒng)軟件主程序流程圖
圖3 系統(tǒng)軟件主程序流程圖。
一般情況下, 系統(tǒng)上電后, 都要對整個采集系統(tǒng)進行初始化操作, 包括微處理器系統(tǒng)的初始化以及目標板上外設的初始化, 以對它們的參數(shù)進行配置。初始化完成后, 就可以開始檢測傳感器上是否有手指, 如果有, 則進行指紋圖像的采集, 采集完成后, 再對這枚指紋圖像進行預處理。若這枚指紋圖像采集的質(zhì)量比較好, 則將數(shù)據(jù)上傳; 如果采集的圖像質(zhì)量很差, 則重新采集指紋數(shù)據(jù)。[!--empirenews.page--]
指紋圖像的采集是在中斷程序中開始的, 當指紋傳感器上沒有手指時,系統(tǒng)將進入省電模式。通過指紋傳感器FPS200的手指自動檢測中斷可喚醒系統(tǒng), 并進行一次指紋圖像的采集、預處理和數(shù)據(jù)上傳。完成后再將進入省電模式, 并等待下一次的手指中斷采集。ARM中的主程序很簡潔, 因為主要的操作都由中斷完成。手指檢測由指紋傳感器FPS200的自動手指檢測中斷來完成,當檢測到有手指后, 即可開始對這枚指紋的處理工作。
系統(tǒng)初始化完成后, 系統(tǒng)將對手指是否安放在指紋傳感器上進行檢測, 若傳感器上有手指,則進行一次指紋采集及相應的處理, 然后等待下一次指紋數(shù)據(jù)的采集。實際上, 指紋的采集和指紋數(shù)據(jù)的上傳都是由中斷過程完成的, 所以, 整個系統(tǒng)的主程序流程比較簡潔。
4 實驗結果
通過不斷實驗并設定FPS200的寄存器DCR、DTR值可以調(diào)整放電電流和放電時間, 以使采集的圖像獲得最佳。圖4所示是原圖和預處理后的指紋圖像對比, 由圖4可以看到, 實驗的預處理效果是比較理想的。
原圖與處理后的指紋圖像對比
圖4 原圖與處理后的指紋圖像對比。
本文對幾十個采集的指紋圖像進行了匹配實驗, 所得出的據(jù)真率和誤識率及其所需要的驗證時間如表1所列。
表1 實驗數(shù)據(jù)列表
實驗數(shù)據(jù)列表
5 結束語
本文給出了基于ARM9和FP200傳感器的指紋識別系統(tǒng)的設計和實現(xiàn)方法。本方法在指紋識別的可靠性及快速性上, 充分發(fā)揮了ARM9的優(yōu)勢。
ARM體系結構是面向低預算市場的第一款RISC微處理器, 具有可集成、可擴展、可移植的特點。
我們相信, 隨著其性價比的提高, ARM的應用領域?qū)絹碓綇V泛。