目前生物识别——活体指纹识别系统的应用日益广泛,其中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秒内一般都能正常完成指纹集。可明显提高指纹有效图像采集的速率。若应用在替代体指纹识别的通道中,则效果更为明显。