一种智能密码锁的设计与研究
2019-10-09王英辉刘世行黄英凡王泽楠
王英辉 刘世行 黄英凡 王泽楠
摘 要:随着电子加密技术和智能系统的发展,智能加密系统的用途越来越广。笔者采用STC89C51单片机、16格矩阵键盘、一块LCD12864显示器以及指纹识别器等制作了这款智能电子密码锁。开锁密码是由任意6个阿拉伯数字(0~9)组成,系统允许对密码进行修改,但2次新密码需保持一致。当密码输入错误时,系统提示报警,同时设计了指纹功能部件,具备增加或删除指纹等功能。
关键词:智能电子密码锁;智能报警;LCD12864显示器
中图分类号:TP368 文献标志码:A
0 引言
随着许多高精尖技术的不断发展,计算机领域的许多技术也在不断更新换代,常见的密码锁使用的都是单片机技术,并结合其他电子元件进行实验数据的收集和算法控制,由此去完成一些在现实生活中经常用到的功能,从传统的机械锁发展到后来产生密码锁、指纹锁,用密码来开门的锁具有更高的安全系数,并且制造成本相对较低,功耗低,即使连续使用很长的时间也不会耗费太多的电力。它还具有操作简单、密码不易泄露、安全性高等优点。该文研究的智能密码锁是密码锁和指纹锁的结合,可以智能选择密码开锁或指纹开锁。
1 总体设计方案
该文设计的智能密码锁需具备6个功能:1)在输入密码时,LCD显示器的屏幕上显示*号,防止密码泄露。2)开锁密码是由6个阿拉伯数字(0~9)组成,任意6种数字组合都可以。3)开机时LCD屏幕上提示“请按手指开锁”,当指纹正确时锁打开,否则显示器屏幕上提示没搜索到指纹请重新按。4)16格矩阵键盘上有0~9这几个数字键和修改键、删除键、确认键、返回键。5)系统允许对密码进行修改,但目前只支持6位数,在开锁状态下先输1次旧密码,旧密码正确时再输2次新密码,2次新密码需保持一致。6)实现指纹的录入,最多可以增加1000个指纹。还可以删除多余的指纹。
2 系统设计
2.1 密码锁设计原理
智能密码锁主要由STC89C51单片机、16格4×4的正方形键盘、LCD显示屏、指纹识别器及报警模块等部分组成。键盘主要起到了输入数字和基本功能操作的作用。在程序设计中提前设置好密码,用户在16格键盘上输入预先设置好的6位数密码,单片机作为控制部件,会将用户输入的密码与系统内保存的密码进行比较和匹配,并判断密码是否正确,若密码正确则控制电路进行开锁操作,若密码输入错误则控制电路不做开锁操作,单片机会发出密码错误信息。实际使用的成品锁只需把继电器换成电磁线圈即可。
笔者设计的智能锁分为硬件和软件2个部分。其中电源、16格矩阵键盘、AT24C02、相关电路和LCD、继电器、指纹器等属于硬件部分。而智能锁的流程图、主程序及其他相关程序属于软件部分。
2.2 密码模块设计
在硬件设计中,设计的16格矩阵键盘包括0~9的数字键、修改键、确认和返回键,剩下的3个键是用来扩充其他功能的。设计使用的16格键盘是机械式的,键盘使用矩阵式键盘,由行和列组成,程序逐列扫描键盘确定被按键的具体位置。判断键盘上有没有键被按下、判断闭合的键有没有被放开。按键时有轻微抖动,需一小段时间才会稳定。由于存在此缺陷,因此需要对按键时长进行监测,发现按键闭合时采取延迟的方法,采用这种方式让每次按键稳定后,再按下其他数字键,从而防止STC89C51屡次接收相同的错误按键信息。
在软件设计中,程序的控制采用的是行列扫描法(最常用的按键识别方法):按顺序把要扫描的行线设为低电平,同时让其他行线处于高电平状态。系统检测到某行线处于低电平之后,才会进一步去检测其他行线的电平状态。然后检测列的电平状态,当检测到某列处于低电平,于是该线和低电平行线相交的地方就是闭合的按键所在的地方。在程序中加上延时函数,分2次扫描行和列。若2次扫描的结果是一致的,即相同的按键闭合,就可以确定这个按键闭合,转而执行按键所对应的操作,实现相应的功能,实现删除数字、修改密码、返回主界面等功能。
2.3 密码修改模块设计
密码修改原理:任何时候密码的修改都需要先输入旧密码,在旧密码输入正确的情况下,才会进入密码修改流程。修改密码时界面会出现4个选项,然后按下其中标号为4的选项,再输入新的密码,每设定1位数字就将密码存储起来,当6位密码设置完毕后按下确认键,然后再完整的输入1次密码。当输入2次正确密码后系统将自动跳到初始界面,设置成功,调用新设置的密码,此后启用新密码,旧密码将会被废弃。需要注意的是,2次输入的新密码必须保持一致,否则界面提示密码修改失败,并发出警告,如图1所示。
2.4 指纹模块设计
该设计采用的是ZFM-60指纹器,通过單片机识别指纹。CMOS芯片主要用于采集指纹、生成指纹特征,即数据资料。具体的操作流程为扫描指纹(录入图像)→生成特征→合成模板(建立一个指纹库文件, 成功录入一个指纹)。用指纹模块内的 CMOS芯片采集一次指纹信息,然后进行模糊处理,生成“0”和“1”2种记录信息,存入指纹模块的FLASH芯片中。当切换到识别模式时,指纹模块就会先让CMOS芯片采集一次指纹,然后与FLASH芯片的数据进行对比,看是否一致。如果一致,就可以返回指纹编号。
在软件设计中,设计的工作流程为第一步,启动机器,此时用户有2个选择,第一个选择是扫描指纹来开锁,系统识别成功则门打开,否则返回原来的主界面;第二个选择是通过在键盘上输入6位密码来获得管理员的权限,管理员具有最高的权限,可以重置密码、删除密码,还可以决定录入谁的指纹、删除指纹。如果密码输入正确,会出现4个选项:1)增加指纹。2)删除指纹。3)手动开锁。4)修改密码。否则返回到原来的开机界面。如果用户之前已经录入过指纹,一旦手指放上去就会智能识别,直接开锁。如果非法用户,指纹识别失败,门锁则不会打开。如果之前没有录入指纹,需先输入正确的6位数密码,进入指纹设置界面,此时,可以录入新的指纹,也可以删除之前废弃的指纹。
系统的备选方案是设置手动开锁按钮,若选择手动开锁按钮,指纹识别和密码开锁就会失效,即用机械钥匙开锁。此种方案是在系统损坏时,可以用钥匙开锁,确保住户在任何情况下都可以打开门锁。
2.5 开锁显示模块设计
开锁原理:通过指纹识别或者输入密码的方式开锁。第一步,启动机器,此时显示器界面会提示用户有2个选择,第一个选择:通过指纹扫描来开锁,系统识别成功则门打开,否则返回原来的界面;第二个选择:通过在键盘上输入6位密码来获得管理员的权限,如果密码输入正确,按下键盘上对应的键就可以开锁,否则返回原来的界面。
用户通过显示器看到输入的密码和指纹是否正确。设计采用的是LCD12864字符型液晶显示屏,它同大多数LCD显示屏类似,能够一次显示32个字符。LCD屏幕显示的是字符和专用符号,也显示数字。在电子密码锁设计中,之所以选择了LCD作为输出硬件,主要考虑了4个方面。
(1) LCD显示屏优于传统阴极射线管显示屏CRT的地方在于,它的画面更加清晰,不会出现频闪现象,这也得益于LCD具有能保持色彩和亮度且恒定发光的特性。
(2)LCD显示屏为数显,与STC89C51能轻松联接,且操作并不复杂。
(3)LCD显示屏较之传统的显示屏在质量上要轻得多,因为它是通过控制显示屏中的液晶分子的状态来显示数字的。
(4)LCD显示屏的最大优势在于它更加省电,使产品可以持续待机。
3 结论
密码锁设计方案以便宜实用为主题,方案运用了具有低功耗 CMOS的STC89C51、E2PROM 和AT24C02作为主控芯片与内存卡以及部分硬件等电路设计出了一款具有很多功能的电子密码锁。功能包括密码修改、输入0~9中6位数字实现开锁、指纹识别开锁、增加指纹、删除指纹及系统报警等;其中,输入的密码会用*号遮住,防止泄露,密码错误时会报警。用单片机STC89C51制作的电子密码锁安全系数高,操作简单方便,而且它的制作成本很低,最重要的一点是就算意外泄密了,也可以随时修改密码。保密性强,灵活性高。该文设计的智能密码锁经过实物的焊接制作,已经投入使用,该文提及的功能都能实现,运行效果良好,在后续的设计开发中,将研究虚位密码的设定方法。任意输入超过6位的数字,只要包括设置的6位数密码,即可打开锁。这种方式会大大提高锁的安全性。
参考文献
[1]王英辉.电子加密和智能报警系统的设计与研究[J].科技创新与应用,2017(2):21-22.
[2]谭虹.智能指纹密码锁的创新研究与开发[J].工业控制计算机,2018(9):156-157.
[3]杨争輝,李多,叶桦.基于AS602的智能指纹锁系统设计与实现[J].电子器件,2016(2):495-500.