目前生物識別——活體指紋識別系統的應用日益廣泛,其中Veridicon推出的I-touch半導體指紋傳感器是一個300×300點陣、分辨率為 500DPI的低功耗傳感器件,內部集成有溫度傳感器和電阻傳感器,因而可以防止電子欺詐。該傳感器具有“體積小、成本低、耗電小、安全性高”等優點,而且該芯片表面覆蓋有傳利保護的防護層,可有效防止磨損、腐蝕等,從而得到很多指紋識別系統開發商的使用。但在開發使用I-touch指紋傳感器過程中同時也 現I-touch器件對有效圖像捕捉效率存在美中不足的問題,因而需要進行一些改裝。
1 有效指紋圖像的確認及存在問題
指紋圖像捕捉系統在工作時,只有連續兩次捕捉的圖像相同才可決定這個圖像是有效圖像。而在實際使用過程中,往往是傳感器先啟動了掃描程序,然后被檢者和放入手指進行掃描,所以,開始時可能只是掃到一個不完整的指紋圖像,等到下一次掃描時,才得到一個完整的指紋圖像,這樣,就得到兩個不相同的圖像,因而必須進行第三次掃描,但在第三次掃描還未結束時,被檢者由于在傳感器上停留的時間太長而造成不耐煩,可能又把手指取出或移動,這樣將使最后得出的三個圖像都不一樣,從而使傳感器會返回一個無效圖像。其最后結果是被檢者要重新掃描指紋。
由于I-touch指紋傳感器工作啟動模式只有兩種設定,一是由程序員預設“回車”鍵啟動;另一種是開機后即自動連續進行。而I-touch指紋傳感器沒有識別和控制被檢者是否正確操作的感應裝置。所以上述兩種啟動模式都存在著在其啟動時被檢者的手指未放置到位以致產生空掃描或不完整掃描而形成無效圖像、需要多次操作、影響工作效率的問題。
2 啟動與同步的改進設計
2.1 手指與位觸動開關
經過仔細研究和多次試驗,筆者在I-touch指紋傳感器中加裝了一個手指到位開關,只有手指完全到位,系統才開始啟動指紋掃描程序,從而有效地解決了工作啟動與被檢手指到位不同步的問題。具體結構如圖1所示,該設計是在I-touch指紋傳感器中加裝了兩個觸點,其中一個觸點由單片機P1.0腳引出,另一個直接與地連接。并在滑塊的A點加裝了一個金屬塊,從而形成一個觸動開關。工作時,使被檢手指推動滑塊,由滑槽的B點運動至C點,待完全到位時,正好接通兩個觸點,并同時使單片機的輸入P1.0腳置低電平,形成單片機輸入信號,通過單片機與PC機接口立即啟動I-touch指紋傳感器,開始進行指紋掃描。
2.2 觸動開關硬件電路
圖2為觸動開關中單片機與PC機接口設計的硬件電路圖。本電路采用ATML89C51、MAX232及一些外圍元件構成串口通訊電路。
電路工作時,開關1接通,P1.0腳由高電平變成低電平,當單片機檢測到P1.0輸入端為低電平時,即通過MAX232向PC機串口傳送“S”信號,使PC 機控制指紋傳感器執行掃描程序。當PC機要集指紋圖像完成時,再由com2口向單片機發出“E”信號表示結束,并將P2.0置低電平,同時使指示燈發亮,向用戶表明指紋采集完成。用戶此時手指即可離開。
2.3 程序設計
PC機端程序采用DHLPHI語言編寫,程序框圖如圖3所示,單片機程序采用C51語言編寫,程序框圖見圖4,以下是DELPHI程序代碼:
本程序采用Comport控件,可用來實現基于WIN9X平臺與單片機的串口通訊。
Procedure TMAINFORMA.ComPort11RxChar(Sender:Tobject;Count:Integer);
Begin
ComPort11.ReadStr(Str,Count);
If str=‘S’then
Timer40.enabled:=true;//執行指紋采集模塊
End;
//輸出控制模塊;
ComPort11.WriteStr(‘E’);//輸出驅動信號
單片機C51程序代碼如下:
#include io51.h“
void DELAY(unsigned int value)
{
while(value》0) value--;
}
bit FLAG0=0;
staTIc const char TAB[]=“S”;
main()
{
char c=0;
SCON=0x50;
TMOD=0x20;
TH1=0xe6;
TR1=1;
While(1)
{
do
{
if (RI= =1)
{
R1=0;
P2=~SBUF;
DELAY(3000);
P2=0xff;
}
}
while (P1-0!=0);
DELAY(2000);
SBUF=TAB[C];
while(TI!=1);
TI=0;
}
}
3 結束語
本設計已成功地應用到湛江師院開發的活體指紋識別通道系統及學生指紋管理系統中,效果良好,正常操作約0.2~0.3秒內一般都能正常完成指紋集。可明顯提高指紋有效圖像采集的速率。若應用在替代體指紋識別的通道中,則效果更為明顯。