0 引言
随着生活水平的提高,人们对物质生活的要求越来越高,尤为注重住宅安全问题。随着生物特征识别技术的发展,指纹识别技术逐渐进入人们的生活领域,指纹锁进入了人们的家庭。常见的指纹锁,需要管理员指纹或者管理员密码,才能进行指纹和密码的添加和删除操作。本文设计的电子机械锁,具有上述功能,还可以用正确钥匙管理指纹和密码。
常见的指纹锁配备的机械锁,可使用普通的正确钥匙打开,安全级别较低,很容易被专业人员破解。本文设计的基于PIC16F72的机械锁,配套的钥匙内置编码芯片,能够设置正确钥匙以及发送钥匙编码信息,只有用正确钥匙才能打开,不能被铁丝或其他非法钥匙打开,安全性大大提高。在非法开门的情况下,机械锁发送报警信息。
1 系统设计方案
电子机械锁,分为电子锁和机械锁这两个部分。电子锁以单片机ATmega162为核心,通过指纹识别模块,完成了对指纹管理的操作;通过键盘,完成密码管理的操作;通过超外差接收模块,能够接收来自机械锁的钥匙编码信息,完成与机械锁的通信。
机械锁以PIC单片机PIC16F72为核心,获取钥匙编码信息,经超外差发送模块发送。超外差发送和接收模块的工作频率在433 MHz,PCB布线时注意超外差模块,远离其他器件,不然会影响系统的工作状态。另外,该系统要求体积小,供电方便,整个系统的功耗要尽量低。
1.1 电子锁框图
电子锁主体为AVR单片机ATmega162、指纹识别模块、超外差接收模块、12 V电子锁驱动、门锁、键盘、按键和指示灯等,如图1所示。指纹识别模块型号为:TFS-M12,采用TI的DSP芯片TMS320VC5501,指纹算法采用TFS-9。稳定快速的芯片以及优良的指纹算法,不仅提高了整个系统的识别率以及缩短了识别时间,而且大大缩短了整个系统的研发时间。
电子锁在不使用的时候,处于睡眠状态。用户打开指纹识别模块上的金属防尘罩时,产生唤醒信号,电子锁进入正常工作状态。
正常工作状态下,电子锁支持两种开门方式:指纹开门和输入密码开门。指纹采集头上输入指纹,指纹识别模块将当前指纹与已存指纹进行比较,单片机ATmega162接收到比较结果,若正确产生开门信号,经12 V电子锁驱动,打开门锁。键盘输入密码,单片机ATmega162将当前输入密码和用户设置的正确密码进行比较,若正确产生开门信号,经12 V电子锁驱动,打开门锁。输入指纹和密码的机会共3次,若3次都错误,系统进入睡眠状态。
1.2 机械锁框图
机械锁主体为PIC单片机PIC16F72、超外差发送模块、设置键、指示灯等,如图2所示。设置正确钥匙步骤:按下设置键,指示灯常亮,插入需要设置的钥匙,等待指示灯有规律的闪烁3下,设置成功;设置完成后用正确钥匙开门1次,恢复正常使用状态。当插入错误钥匙或者是铁丝等非法钥匙时,指示灯会快速闪烁,并通过超外差发送模块发送报警信息。
为了降低整个系统的功耗,机械锁在不使用时,处于不工作状态。在安装机械锁的时候,会在机械锁的锁芯安装一个金属转接口,该金属转接口连接了电子锁的防尘罩,转动金属转接口,不仅给机械锁供电使之进入正常工作状态,还唤醒电子锁,让电子锁进入正常工作状态。转动金属转接口,还使得电子锁中的单片机ATmega162第4口的第5位(即P4.5)变成高电平,电子锁只处理来自机械锁发出的信息。
机械锁正常工作状态时,插入钥匙,单片机PIC16F72会识别钥匙的编码,若正确,则打开锁芯上的阀,可以转动钥匙开门,若错误则发送错误钥匙信息,锁芯的阀依旧关闭,不能开门,从而保证了,用户的安全。
1.3 电子锁和机械锁的通信
电子锁和机械锁之间的通信是通过超外差发送和接收模块完成。机械锁发送如图3所示的信息,每位数据宽度为1 ms。由于噪声的影响,单片机ATmega162只能通过查询方式接收。
前导码是由23位数据组成。数据码由FAH码、地址码以及KEY码组成,每个数据码有10位,分别由8位数据、起始位(1)和结束位(0)组成。
地址码就是机械锁的识别码,识别码是惟一的,每次读取KEY码,都会将当前地址码和存储的地址码进行比较,若相同才能读取KEY码,因此不会接收来自其他用户的锁发出的信息。
KEY码就是钥匙的编码,每个钥匙的编码是惟一的,因此可以记录用户家庭成员的开门信息,方便用户查询。电子机械锁应用在办公场合时,若发生偷窃情况,可以查询最近的开门信息,来确定怀疑对象;也可以查询特殊钥匙开门情况,比如保姆工作的具体时间。若发生非法开门时,KEY码为0x00,接收到该KEY码时,产生报警信号。
2 指纹识别算法原理
2.1 指纹识别算法
指纹识别分为以下4个步骤如图4所示。
指纹图像预处理是最重要的一步,关系到后面提取的特征点的正确与否。
由于指纹采集设备的不完善性,对于干、湿、脏、老化、磨损的指纹,往往难以采集到清晰的图像,因此需要图像增强,是指纹图像预处理中重要的一步,采用Gabor滤波完成。根据指纹图像局部区域的纹线分布具有较稳定的方向和频率,设计相应的Gabor带通滤波器,能有效地在局部区域对指纹进行修正和滤噪。Gabor函数是惟一能达到时频测不准关系下界的函数,二维表达式为:
Gabor函数是二维高斯函数在空间频率域的平移函数,σx,σy为对应于x方向和y方向的角频率平移参数。二维Gabor函数的实部和虚部可各自表示为一个函数,分别称为偶Gahor和奇Gabor函数。偶Gahor函数适于增强目标物体,而奇Gabor函数适于增强物体边缘。
Gabor滤波器系数分量为:
式中:x=mcosφ+nsinφ;y=-msinφ+ncosφ;(i,j)为当前点的坐标,φ为当前点(块)的方向,f为当前块(整体)的正弦平面波的频率;(m,n)取值范围与指纹图像的坐标(i,j)取值范围相同。σx,σy增大,对噪声的适应能力增强,但有可能会产生伪纹线;减小,消除噪声的作用减弱。
对于每一点,根据其方向、频率,求出Gabor滤波器系数,然后根据式(3)计算当前点滤波后的值:
从图5可很明显地看出,经过Gabor滤波处理后,图像对比增强,纹理清晰,特征明显,提高了后续提取指纹特征点的正确率。
2.2 指纹识别模块的通信协议
指纹识别模块作为从设备,通过串口,由主芯片ATmega162发送相关命令对其进行控制。
命令接口:19200b/s 1起始位1停止位(无校验位)。
主芯片发送的命令及指纹模块的应答数据长度为8 B,数据格式如下:
CMD:命令/应答类型;P1.P2,P3:命令参数;Q1,Q2,Q3:应答参数;CHK:校验和,为第2字节到第6字节的异或值;Q3用于返回操作的有效性信息,表示操作是否成功,数据是否存在,采集指纹超时等。
3 程序设计
系统从睡眠状态启动时,首先进行系统初始化,然后进入正常工作状态,如图6所示。
转动机械锁上的金属转接口会改变单片机ATmega162的P4.5的状态。开启金属转接口,单片机ATmega162处理来自机械锁发送的信息;关闭金属转接口,单片机ATmega162处理来自电子锁上指纹识别模块或键盘的信息。
系统还开启了两个中断:设置中断和匹配中断。匹配中断就是电子锁和指定的机械锁进行匹配,只接收来自指定的机械锁发出的信息;设置中断就是指纹和密码的管理。
3.1 匹配中断
匹配中断是链接多特征电子机械锁两个部分的前提,初次安装电子机械锁必须进行匹配中断。在开启该中断前,必须没置好正确钥匙。匹配中断为外部中断,通过按下控制系统模块上的匹配键,进入匹配中断如图7所示。
3.2 设置中断
设置中断分为两种模式:普通模式和特殊模式。特殊模式就是利用正确钥匙管理指纹和密码,如图8所示。
多特征电子机械锁添加了钥匙管理指纹和密码的功能,目前的指纹锁并不具备该功能。当没有管理员指纹,而密码忘记的情况下,该锁可以用正确钥匙进行指纹和密码的添加和删除,给用户带来了方便。
4 实验结果与分析
超外差发送和接收模块之间的通信,由于外界噪声和系统本身的影响,不是每次都能接收到如图3的信息,可能会出现通信错误的情况,为此进行可靠性测试实验。
用示波器精确测量超外差接收模块上的波形的时序,调整代码,使侦测点落在高电平的中间;仔细计算延时函数,确保时间的准确性。在实际调试过程中,进行了5组的实验,每组的测试条件都不同,如温度、环境噪声等,每组测试100次,共计500次的测试,只出现了2次没有正确识别钥匙的情况,可靠性达到99.6%,具有实际应用价值。
5 结语
本文设计的电子机械锁,巧妙利用超外差发送和接收模块,把两个相对独立的部分链接起来。整个系统以单片机ATmega162为核心,直接控制指纹识别模块和键盘,并通过超外差发送和接收模块,间接控制机械锁部分。多特征电子机械锁不仅可以用管理员指纹和密码管理用户信息,还可以使用正确钥匙管理用户信息,目前市场上还没有具备该功能的锁出现。该锁功能强大,给用户带来了方便和快捷的同时,安全性也得到大大提高。