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