基于单片机的指纹密码锁的设计
Abstract — The paper designs a fingerprint identification combination lock based on Proteus and Keilc. Based on the STC89C52 MCU as the control core, the combination lock compares and distinguishes the fingerprint information collected by the fingerprint identification module with the fingerprint information in the storage module, displays the identification result through the LCD module, and controls the motor to realize the operations of unlocking, locking, alarming and so on.
Index Terms — IC application, Microprocessor, electronic code lock, fingerprint identification.
0 引言
现代社会科技不断发展进步,大众对于生活品质的要求也在日渐提升。就安全而言,锁从古至今都是保护个人财产安全的屏障。数字密码锁虽然不需要用户携带实体钥匙,但也要求人们记住一串字符,也会有遗忘密码以及密码被窃取的可能。而指纹识别密码锁就能完美的解决上述锁具的各种问题。指纹作为每个人特有且独一无二的生物信息是完全可以成为一不会丢失不会被盗窃的钥匙的。指纹密码锁所具备的无机械钥匙、不需要数字密码等优点足以取代过去的锁具,同时现代科技的电子集成技术与快速可靠算法也进一步促进指纹识别的发展。相信指纹识别锁将会替代传统的锁具成为人们便捷生活的一部分。
1 指纹识别原理
指纹识别技术的核心自然需要由指纹说起。指纹其实是人类皮肤上因表皮凸起而产生的纹路。在人类基因遗传的影响下,指纹成为绝对不会重复的一项身体信息。用以区别指纹的指纹特征可以分为局部特征以及总体特征两个类别。指纹总体特征是指用人类通过观察可以分辨的特征,包括指纹的基本纹型、核心点、纹数及式样线等整体的特征。指纹上的节点则是指纹局部特征的判断依据。也许会存在两枚总体特征相同的指纹,但是其局部特征是绝对不会完全一致的[3]。所以我们在指纹识别时更多地依据局部特征如小桥、三角点、分叉点以及端点等细节特征点来辨别。我们常用的指纹识别系统一般用到的也是局部特征里的端点和分叉点这两项细节特征。而局部特征中其他的特征则可以通过分叉点和端点之间的组合表现出来。
光学式指纹采集设备、硅芯片式以及超声波式这三种是目前被广泛使用的指纹采集设备。本设计中使用到的就是光学式指纹采集设备。通过指纹识别模块的光学组件,就可以取得一枚清晰的指纹。采集到的指纹图像经相应的算法处理提取出指纹的局部特征就是用于存储的指纹信息了。本设计中的指纹识别模块提取出大小为 256 字节的指纹特征,将两个指纹特征信息合成为一个完整的大小为512 字节的指纹模板文件来进行后续指纹信息的存储、对比以及查找等操作。
2 系统总体设计
2.1 系统工作流程
系统的设计围绕单片机展开,该指纹密码锁使用 STC89C52 单片机作为控制核心,接收来自指纹模块与按键模块的信息后,通过控制继电器来实现开锁,锁定等功能。同时液晶显示模块会根据单片机的反馈给出相应的操作提示以帮助用户更好的使用设备。
系统设计思路中将指纹密码锁的功能实现分到指纹识别模式以及管理员模式两部分中。
进入指纹识别模式后液晶显示模块会提示用户:“按下按键 B 开始指纹认证”,在接收到按键按下的信息后单片机控制液晶屏显示:“开始指纹认证”,此时就能按下手指开始识别指纹。当指纹信息与指纹库中信息比对成功后单片机控制继电器动作,成功开锁。指纹识别不成功时单片机会控制显示模块反馈:“指纹识别错误,按任意键继续”继电器不响应,开锁失败。
按下按键 A 后输入管理员密码,初次使用时未设置管理员密码则输入初始密码在确认密码正确后就能进入管理员模式了。管理员模式相当于指纹密码锁的后台管理系统。指纹库中的指纹存入、指纹删除以及管理员密码的设置与修改等功能都需要在管理员模式里实现。
2.2 系统程序工作分析
系统的软件设计分为两部分,一部分针对指纹识别模块的应用程序设计另一部分是为液晶显示模块、按键模块而设计。系统程序设计将分别就指纹识别模块和按键模块进行 C 语言的编译以建立相应的子程序。在单片机软件开发环境下对单片机进行编译,本设计使用的是 Keil5,它的优点是由其编译好的源程序可以和在 Proteus 中绘制的原理图进行联合仿真。在需要调试时将编译好的文件下载到单片机中。单片机上电后,主程序首先会进行初始化工作,各个模块的初始化工作完成后单片机开始监测系统电路。当有按键按下时,检测到电位变化的单片机会在确认按键点位来执行相应的操作。
2.3 主程序流程
根据上述主程序需要完成的任务绘制主程序流程。
根据系统总体设计部分的对于指纹密码锁的构思使用 Proteus 绘制出电子密码的仿真原理。
3.1 指纹识别模块电路设计
本设计使用的是型号为 ZFM-60 的指纹模块。ZFM-60 指纹模块主要由型号为 AS606 的 DSP 芯片和封装在外围的 CMOS 芯片以及光学头、通信连接线、稳压芯片、Flash 芯片组成。
指纹模块的具体工作流程:指纹录入模式时,首先由 CMOS 芯片采集指纹图像,此过程为指纹扫描过程。之后使用相应的算法将指纹图像进行模糊处理生成指纹信息,将指纹信息存入 Flash 芯片中保存指纹特征。指纹识别模式时,指纹图像扫描、生成指纹特征与录入模式时相同,再将采集到的指纹特征与 Flash 芯片中储存的数据对比,便能识别指纹是否正确。
3.2 存储模块电路设计
本设计的存储模块主要需要存储的密码有前文提到的指纹特征以及后面会出现的键盘输入密码。而指纹特征与管理员密码则需要通过不同的设计来实现存储。从指纹识别模块获取到的指纹特征信息在经过整合以及相关程序的处理后就能传到系统的存储芯片中。
电子密码锁中存在的管理员模式则需要键盘输入的管理员密码来进入,这里就需要针对性的设计键盘输入密码的存储电路。在管理员密码识别模式下,单片机会将键盘输入的密码信息与数据库中记录的密码数据比对。
只有确认密码一致才能进入管理员模式。系统进入管理员模式后可以进行密码修改的设置,此时输入想要设置的密码,系统将会调用密码存储程序与数据库程序把密码存储到数据库中。
3.3 键盘输入模块电路设计
按键输入模块采用的是矩阵按键。按键的闭合状态是通过电压来反馈到单片机的。
本设计将高电平定义为按键断开的信息,低电平设为闭合,单片机在接收到高低电平的反馈后就能确认按键有没有被按下。
本设计使用的是 4 行 4 列的矩阵键盘通过逐行扫描法来检测按键。矩阵式的键盘由行线与列线组成,行线与列线的交叉处是放置按键的位。按键按下时该按键点位所处的行线与列线被接通此时电路会发生电平变化。电路的电平变化反馈到单片机就能确认被按下的按键的点位了。
将行线设为输出口并输出低电平同时将列线设为输入口。通过读取列线上的电平状态来判断是否有按键按下并能得知被按下的键盘位于哪一列。在确认有按键按下时依次将按下按键的那一列的每根行线设为输出口并逐个输出低电平此时其他的列线输出高电平,单片机开始检测电平,以此判断键盘按下的行线,行线列线交叉点就是被按下的键盘点位。
3.4 复位电路设计
单片机在开机时将 CPU 及其他功能部件恢复到被设定好初始状态就是单片机的复位。复位电路起到的作用就是将存储模块以及寄存器重置为事设定好的值,使单片机能从这个状态开始工作。
单片机的复位电路需要在复位引脚上外接点容、电阻以达到单片机的上电复位的需求。只有持续时间超过系统的时钟振荡周期建立时间加上两个机器周期时间的高电平状态时单片机才会判定复位有效并产生复位。单片机在上电瞬间 RC 电路充电,RST 引脚端会产生正脉冲,此时 RST 引脚端保持两个周期以上的高电平,单片机就能有效复位。本设计中选用了 10μF 的电容以及 10 kΩ的电阻作为复位电路的电容与电阻。
4 系统仿真与功能实现
使用 Proteus 绘制出符合设计需求的电路仿真图,并采用 Keilc Vision5 来编译单片机源程序。在 Keil 中用 C 语言编译好源程序后开始联合仿真。分别打开位于 Proteus 中的原理图和 Keil 中的工程文件将 Keil 中的可执行文件下载到 Proteus 里,单击 Keil 菜单 Debug 中的 GO 选项就可以启动 Proteus 中的连续仿真运行了。单击 Keil 菜单中 Debug 中的 Stop Running 就可以终止仿真过程了。在联合仿真过程中不能在 Proteus 里停止程序运行以防引起系统出错提示。在联合仿真未提示出错后就可以进行程序的写入。本设计使用了宏晶 STC 单片机 STC-ISP V6.86R 软件来下载程序并写入。打开 STC-ISP 软件选择本设计的单片机型号设置好端口与波特率,选择已经过仿真无误的源程序点击下载/编程按键等到软件提示后就可以给单片机上电了,此时程序的写入就完成了。在组装完成的指纹密码锁上电后开始功能测试。按下按键 A 并输入初始管理员密码“000000”进入管理员模块,进行指纹录入、删除和管理员密码修改等功能测试,功能基本实现。按下按键 B 进入指纹识别模式,根据刚存入的指纹信息进行指纹识别功能测试,测试证实本设计实现了指纹识别功能。
5 结语
本文从锁具便捷性的角度出发,设计了以 STC89C52 单片机为控制核心,以 ZFM60 指纹模块、LCD 液晶显示屏和键盘输入模块、存储模块、继电器等部件组成的指纹密码锁。该指纹密码锁能实现通过指纹识别结果控制继电器开锁关锁功能,同时具备管理员模式来完成指纹录入、修改、删除等后台管理功能。本设计实现了预期的功能,当然也有许多需要进一步完善的部分可以根据用户的需求来改进创新。指纹密码锁作为一种便捷高效的锁具形式也是值得市场去开发的。
责任编辑:pj
-
集成电路
+关注
关注
5380文章
11377浏览量
360766 -
单片机
+关注
关注
6032文章
44513浏览量
632706
发布评论请先 登录
相关推荐
评论