基于红外模块的单片机电子密码锁安全性论证
扫描二维码
随时随地手机看文章
摘要 以单片机为主控单元,结合键盘、LCD显示、AT24C02存储、遥控等外围电路,使密码锁能够在接受用户设定的正确密码时开锁,反之报警提示。用户可随时更改开锁密码以提高安全性。设计中遥控功能更是应用广泛的人性化设计。
关键词 单片机;密码锁;遥控检查;安全性
1 密码锁的安全性论述
1.1 课题背景
随着科技发展与生活水平的提高,人们的安全意识越来越强。传统的机械锁仍在大量使用,但是在安全性能要求较高的场合,传统的机械锁由于其成本高、制造难度大、安全系数低等缺点,已不能满足需求。
电子密码锁是由输入密码来控制电路或芯片工作,继而控制机械开关的闭合,完成开锁、闭锁任务的电子产品。近年来,红外遥控技术在各个领域已得到广泛应用,将其应用到电子锁领域,则形成了红外控制开启的电子锁。
1.2 设计目标与意义
以AT89S52单片机作为主控芯片,设计合理的外围电路,从而构成电子密码锁系统,并对主控芯片编程实现以下功能:
(1)输入正确密码后开锁。用户按开锁键进入开锁模式,正确键入6位密码,实现开锁。
(2)用户可随时更改开锁密码。用户按SET键,进入密码设置模式,可设置6位新密码。但要求先正确输入当前密码,然后输入新密码,以防用户误操作,需再次输入新密码进行确定。
(3)提示输入密码位数。设计有LCD显示电路,当用户通过键盘或是遥控器输入密码时,不显示输入具体数值,而是显示“*”,如此即方便了用户输入,同时增加了保密性。
(4)防盗报警。当用户输入错误密码时,会提示输入错误。当用户连续3次输入密码错误时,会自动声光报警,以增加防盗安全系数。
(5)遥控功能。实现一定距离的遥控操作开锁,在车库仓库等应用广泛,用户不需要下车,只需遥控操作,键入正确密码开锁。
2 密码锁安全系统总体方案设计
根据系统设计目标要求,其系统框图如图1所示。
3 红外遥控作用
遥控编码脉冲信号通常包括3大部分,即引导码、系统码和功能码。
(1)引导码,也称引导脉冲,一般由高电平1和低电平0的脉冲组成,二者的宽度之比可为1:1,占9 ms,也可为2:1,占13.5 ms(宽度为9 ms的高电平和宽度为4.5 ms的低电平组成),也可能有其他组成情况。引导码的主要作用类似于穿行通信中的同步脉冲,用来标志遥控编码脉冲信号的开始,使遥控接收器能由此判断出所接收的信号是干扰还是系统的遥控代码。
(2)系统码,也称用户码、识别码、设备码、安全码,用来指示遥控系统的种类,以区别其它遥控系统,防止各遥控系统的误动作。这种码是由生产厂商自行规定,出厂时已设置好。这是不同遥控器不能通用的主要原因。
(3)功能码,也称键位数据码。它与键盘的键位相对应,由它传送所需要的遥控信息。功能码通常也是由8位原码和8位反码组成。反码的加入是为了能在接收端校对传输过程中是否产生差错。
下面以LC7461编码芯片为例。LC7461是采用PWM调制的串行二进制码,所发送的一帧数据中含42位码,包含一引导码、13位用户码和8位数据码以及它们的反码。发射码的格式如图2所示。
“1”和“0”的区分取决与脉冲之间的时间:以脉宽为0.565 ms、间隔0.56 ms、周期为1.125 ms的组合表示二进制的“0”;以脉宽为0.565ms、间隔1.685ms、周期为2.25ms的组合表示二进制的“1”。如图4所示,图中Tm=0.56ms。
4 遥控模块硬件的安全性设计方案
4.1 遥控系统的构成
遥控系统主要由红外遥控发射装置、接收装置、微处理机等组成,如图5所示。
4.2 选用芯片介绍
(1)遥控编码芯片LC7461。
LC7461是由SANYO公司生产能的遥控专用编码芯片。OSCO和OSC1之间接谐振器。由Ko0~Ko7,KI0~KI3构成键盘的行与列。OUT引脚输出红外发射管控制信号。
7461产生的遥控编码是连续的42位二进制码组,其中前26位为用户识别利,能区别不同的红外遥控设备,防止不同机种遥控码互相干扰。后16位为8位操作码和8位操作反码用于核对数据是否接收准确。当遥控器上任意一个按键按下超过36 ms时,LC7461芯片的振荡器使芯片激活,将发射一个特定的同步码,对于接收端而言就是一个9 ms的低电平和一个4.5 ms的高电平,使程序知道从这个同步码之后可以开始接收数据。
(2)一体化红外接收头。
HS0038接收红外信号频率为38 kHz,周期约26μs,同时将遥控信号的接收、放大、检波、整形集于一身,是红外接收电路一体化的红外接收装置,如图7所示。并能与TTL、COMS电路兼容,简化了接收电路的复杂程度和电路的设计工作。
HS0038为黑色环氧树脂封装,不受日光、荧光灯等光源干扰,内附磁屏蔽,功耗低、灵敏度高。在用小功率发射管发射信号情况下,其接收距离可达35m。HS0038为直立侧面收光型,3个管脚分别是地、+5 V电源、解调信号输出端。
4.3 遥控模块电路设计
当键盘有键按下时,编码芯片激活,发送相应红外编码信号。由遥控器发送的红外信号,经过红外一体化接收头接收、放大、解调之后,将信号送到单片机P3.2引脚。
5 遥控模块软件的安全性设计方案
(1)HS0038的解调。一体化红外接收头HS0038将接收到的红外信号放大、解调才送给单片机的。接收头接收到的是38 kHz的串行脉冲信号,经过解调之后转换成TTL电平。接收头的解调可简单理解为:在输入脉冲串时输出低电平,否则输出高电平。一体化红外接收头解调前后的信号对比如图10所示,可见解调后信号与编码信号反相。
当按键按下后,经过HS0038解调输出的一帧信号则如图11所示。
(2)解码。
7461产生的遥控编码是连续的42位二进制码组,其中前26位为用户识别码,能区别不同的红外遥控设备,防止不同机种遥控码互相干扰。后16位为8位的操作码和8位的操作反码用于核对数据是否接收准确。
单片机解码是根据一体化红外接收头的解调信号进行的,从上面的分析可知:任意按键按下后,都有9 ms的低电平起始码和4.5 ms的高电平结果码作为引导信号,因此应该在引导码之后才能进行解码。
如何识别“0”和“1”是解码的关键。根据位定义:“0”、“1”均以0.56 ms的低电平作为起始,两者区别在于高电平的宽度不同,即“0”高电平为0.56 ms,“1”高电平为1.68 ms,因此解码时须根据高电平的宽度来区别“0”和“1”。若从0.56 ms低电平过后,开始延时,0.56 ms之后,检测到的为低电平,则该位为“0”,反之则为“1”。为了保证解码的可靠性,高电平检测延时应该在0.56~1.12ms,否则如果该位为“0”,读到的已是下一位的高电平,因此取(1.12+0.56)/2=0.84ms较可靠,一般取0.84ms即可。
6 密码锁安全系统硬件设计方案
(1)密码掉电存储模块,如图12所示。
AT24C02是美国Atmel公司的低功耗CMOS型EEPROM,内含256×8位存储空间。芯片采用I2C总线式进行数据读写的串行器件,占用很少的资源和1/O线,并且支持在线编程,进行数据实时存取十分方便。串行时钟由单片机P3.6引脚提供,通过P3.7引脚对AT24C02进行在线读写。由于该芯片数据掉电不丢失,故用于存放开锁密码。当需要开锁和设置新密码时,均需读取AT24C02中的密码;设置新密码后,在线写AT24C02,覆盖原密码。
(2)开锁电路,如图13所示。开锁电路由三极管、继电器、绿色发光二极管组成,由P2.7引脚控制,低电平有效。按下键盘开锁键进入开锁模式,正确输入6位密码,按下“OK”键之后,单片机对输入密码与设定密码进行对比,对比正确,则P27发出低电平,使三极管Q3导通,从而使得继电器RL吸合,并由继电器控制使得门禁得电打开。此设计中,若是有开锁动作,则绿色LED灯亮。
7 密码锁安全系统软件设计方案
(1)主程序流程图,如图14所示。
(2)密码接收子程序流程图,如图15所示。
若正确接收6位密码,则输入密码存于数组中,返回值为1。若取消操作,返回值为0。
(3)安全开锁判断子程序流程图如图16所示。
该程序将输入密码进行对比。若密码正确,则返回值为1,表明应该进行开锁动作。密码错误,返回值为0,不进行开锁。有取消动作,则返回3,不进行密码对比。
(4)更改密码判定子程序流程图如图17所示。
改程序要求先输入当前密码,当前密码正确后,连续两次输入新密码,两次输入相同时,返回1,表明应该写AT24C02。否则返回0,表明修改密码失败。
8 系统安全性分析论证
设计采用AT89S52单片机作为主控芯片,结合相应的外围电路,构成电子密码锁系统。该电子密码锁,开发简单、安全性高、成本低,适合办公室、实验室、档案室等场所,其遥控功能更适合应用在车库仓库的安全防盗。在设计完成过程中,先进行Proteus软件仿真,最后进行实物调试,最终达到了预期的设计目标。另外UPS供电还有待解决。电子密码锁安全性能较高,具有较好的市场前景。