一个指纹密码锁的设计与实现∗
2019-07-31李友胜
李友胜
(宝鸡文理学院机械工程学院 宝鸡 721016)
1 引言
指纹是人类皮肤上一种特殊的纹路结构,而这些结构的形成完全依赖于胚胎细胞的发育[1~2]。每一个胚胎因为其基因的重组是不尽相同的,所以,每个指纹也有着其特殊的纹理结构。
现代电子集成制造技术对于本系统的实现起了很大的作用[3~4],可在一个微小的单片机上存储很多个指纹信息,体现其便捷性。利用指纹图像读取设备,可以获取任何一个指纹信息,而数据库可以准确地存储这些信息,在单片机上进行两个指纹的比对和运算,所以基于单片机的指纹识别技术有着很强的可行性[5~6]。
1.1 指纹识别原理
手指表面皮肤凹凸不平而产生的纹路就是指纹[7~8],而纹路可以用结构特征来描述。
通常采用的结构特征有2种,如图1所示。
图1 指纹基本纹路图案
1)全局特征:分为:环形、弓形、螺旋形。
2)局部特征:利用指纹中最常见的断点和分叉来建立坐标,结合其他一些特征表示指纹。如图2中的小桥、三角点、分叉点、端点和环。
指纹识别原理[9~10]:是对指纹进行“照相”,生成指纹特征,如图3 所示就是一个指纹模板,录入两次这样的指纹特征就能生成一个指纹模板[11~12]。
其工作过程是:扫描指纹(录入图像)、生成特征、合成模板[13~14](建立一个指纹库文件,成功录入一个指纹)。
图2 指纹图像
图3 指纹模板
1.2 系统功能结构图
该系统由四个功能模块构成,即LCD12864、单片机[15]、指纹模块、继电器和指示灯模块。其功能结构如图4所示。
图4 系统功能结构图
管理员进入系统后,在管理员模式下可以完成录入指纹、删除指纹、应急开锁和修改密码的功能。
管理员进入录入指纹模式后,指纹模块绿灯亮起,录入同一手指两次,此时液晶显示“指纹采集成功”;在删除指纹模式下,液晶显示“输入删去的指纹号”,输入后按确认键即可完成指定指纹的删除功能,同时液晶显示“删除指纹号成功”。在非正常的情况下,如指纹模块不好用或者紧急情况下,可以使用紧急开锁功能;密码修改的功能是指可以修改并保存进入管理员的6位密码。
2 系统硬件设计
该系统硬件部分由四个模块组成:按键模块、显示模块、单片机控制模块、指纹模块。
2.1 指纹模块电路设计
指纹模块电路如图5 所示:将指纹模块里面的CMOS芯片采集一次指纹信息,然后处理生成0和1两种记录信息,存入指纹模块的FLASH芯片里面。
当切换到识别模式时,指纹模块首先采集一次指纹,然后和FLASH 芯片的数据进行对比,如果存在,则返回是几号指纹。
图5 指纹模块接口图
2.2 液晶显示的电路
本系统采用LCD12864 液晶显示器,是一种功耗极低的显示器件,广泛应用于便携式电子产品中,具有低功耗、显示信息量大、易于彩色化等特点。其电路如图6所示。
图6 LCD12864电路
2.3 按键控制电路
如果按键上为高电平,则表示断开,否则表示闭合。为了防止信号的干扰,加入消除电平,确保CPU 对一次按键动作只确认一次,图7 为按键电路,按键按下是呈低电平,采用软件消抖减少对的单片机影响。
图7 按键电路
2.4 复位电路
复位电路[16]由按键复位和上电复位两部分组成。本系统采用的复位电路如图8 所示。单片机在上电瞬间,RC 电路充电,RST 引脚端出现正脉冲,如果RST 端保持两个机器周期以上的高电平,单片机就会复位。
图8 复位电路
3 系统软件的设计
本系统采用Keil 开发软件对单片机程序进行编写、仿真调试,随后将代码文件通过开发板下载到单片机中,系统在通电之后,单片机中的主程序完成各个模块的初始化工作,同时检测对各个按键是否有按键动作,有则执行相关的程序。
3.1 主程序流程图
主程序首先对各个模块进行初始化,扫描有无按键动作,若有,先判断是哪个按键,并判断是否执行相应子程序。其主程序执行流程如图9所示。
图9 主程序流程图
3.2 按键流程图
按键模块实现其功能时,其流程如图10所示。
3.3 LCD显示流程图
LCD显示模块主要显示对比结果,方便用户更直观的获取信息。图11为显示模块的流程图。
图10 按键流程图
图11 显示模块流程图
3.4 指纹模块的通信流程图
指纹模块的串口通信中,数据的发送和接收流程图如图12所示。
图12 串口通信数据发送、接收流程图
4 系统的功能实现
4.1 程序的烧写
STC-ISP 是一款单片机下载编程烧录软件,主要用于对单片机程序的烧录,图13 为软件工作界面。
图13 STC-ISP工作界面
调试通过的代码文件通过STC_ISP_V480下载到单片机。STC_ISP_V480使用步骤为:
1)打开 STC-ISP 软件,然后在 MCU Type 栏目下选中STC89C52RC。
2)选中COM端口,波特率选择9600。
3)点击“打开文件”并在对话框内找到要下载的HEX文件。
4)点击download/下载,根据提示给单片机上电,完成程序烧写。
4.2 液晶显示屏的实现
导入12864 液晶的测试程序,设备通电后,通过调节液晶屏背面的电位器,在调试液晶时要注意:程序是否对液晶屏初始化,调整标准初始化步骤,或调整指令之间的延时。在经调试后液晶的显示结果如图14所示。
图14 液晶显示屏
4.3 指纹模块、按键的实现
导入程序后,测试指纹模块及按键是否工作,操作步骤为
1)按下电源,电源指示灯点亮;
2)按“*”键后屏幕显示“请按指纹”,指纹模块亮,将手指放到指纹头处即可识别指纹;
3)若录入指纹,指纹识别成功则继电器工作,LED灯亮,门开锁,按任意键返回初始界面,等待下一个人扫描指纹。若录入指纹后,指纹识别不成功,继电器没有动作,LED 灯不亮,将不能开锁,按任意键返回初始界面,继续扫描指纹。
4)按下 A 按键,输入 6 位密码,按下 B 按键,可删除输入的数字,按下D 按键确认,密码输入正确后,可进入管理员模式。
5)在管理员模式下,按数字键“1”进入录入指纹模式,指纹头灯亮起,此时可把手指放到指纹头进行指纹的录入,录入指纹时需要录入2 次指纹完成这个指纹的录入存储,指纹录入成功后,按任意键返回到管理员界面,如需再录入指纹重复上面操作即可。
6)按数字键“2”进入删除指纹模式,输入要删除指定的指纹号按“D”键确认,若指纹号输入错误可按“B”键撤销,再重新输入要删除的指纹号即可。
7)在非正常情况下(指纹模块不能识别或紧急情况)可按数字键“3”进行开锁。
8)按数字键“4”可进行管理员密码的修改。
5 结语
该指纹密码锁利用高性能单片机、LCD显示屏以及指纹识别模块实现了各模块的电路设计,通过系统的功能测试,实现了录入指纹、存储指纹及指纹对比及继电器的开锁功能,为身份识别奠定了良好的基础,具有现实的应用价值。