基于STM32的单按键密码锁设计

2019-05-14 08:25孙赛伟田晓光田广强
数字技术与应用 2019年2期
关键词:密码锁体积

孙赛伟 田晓光 田广强

摘要:密码锁在生活中很常见,但其中大多数的密码锁均以阵列式按键作为输入装置,阵列式按键的密码锁有体积大、按键易损坏、密钥易传播的缺点。本文介绍一种以STM32为主控芯片的密码锁,其输入装置仅有一个按键,密钥组成方式特殊,在仅具有一个按键的情况下能灵活的实现密钥输入与修改操作。单按键式密码锁在很大程度上减小了密码锁的体积,操作简单,使用价值较高。

关键词:STM32;密码锁;密钥组成;单按键;体积

中图分类号:TS914.2 文献标识码:A 文章编号:1007-9416(2019)02-0161-02

1 前言

现在人们的生活水平越来越高,人们对自己的人身及财产安全也越来越重视。随着科技的进步与发展,我们生活中的锁具也在逐渐变化的越来越智能与安全。生活中常见的密码锁的解锁方式多是数字组合或者采用能识别人体特征的装置来解锁,比如常见的电子密码锁、指纹锁、感应卡片锁、声控锁、人脸识别锁等。这些锁具的应用大大增加了人们生活的安全系数,保证了我们的财产及人身安全,让不法分子无机可乘。但这些锁在体积上变得越来越大,结构也变得越来越复杂,使得工人在安装与维修的过程中遇到的问题也复杂多样。在一些小体积装置上使用密码锁变得越来越难。本文介绍一种小型的智能安全密码锁,其具有独特的解锁方式,仅利用单个按键来完成密钥输入,在不影响安全性的情况下极大的减小了智能锁的体积。

2 硬件设计

单按键密码锁的硬件由六个部分组成(如图1所示):输入装置、微控制器、显示设备、开关锁控制电路、警报装置、供电电路。

2.1 输入装置设計

输入装置是人机交互的一种必要设备,目前市场上最常见的密码锁多采用普通阵列式按键作为密钥输入装置,用户根据前期设置的数字密码在阵列式按键上按压对应的数字按键即可解开密码锁。而新型单按键密码锁采用单个按键作为输入装置,大大减少了按键的数量。由于采用了单个按键作为密钥输入装置,这就需要重新定义一种新的密钥组成方式。现有的单个按键作为输入装置的设计方案是通过利用按按键的次数与频率组成密钥即按压按键一次计数加一。例如密码为“5432”,按动按键方式为:连续按压5次、连续按压4次、连续按压3次、连续按压2次,密码数与密码数之间有明显停顿[1]。

通过按按键的频率与次数组成密钥实际上是在单个按键上实现数字密钥的特点。但在输入的过程中一个数字需要按按键多次反而增加了密码锁的使用复杂度,在密钥组成中有大数字的情况下以按按键次数转化为数字会变得非常繁琐。而本文在设计密钥组成方式时采取长短电信号组合作为密钥组成的特征元素,类似于摩尔斯电码的单个字符组成方式。摩尔斯电码由美国的摩尔斯在1844年发明,他有一个可输入长短电信号的信号发生装置,由操作者以不同时间间隔按压信号发生装置产生的长短电信号作为输入密钥。例如输入一个字母X操作者需要操作信号发生装置“长按-短按-短按-长按”形成“嗒-嘀-嘀-嗒”的长短电信号组合。我们也以长短信号组合作为密钥组成,且重新定义长短电信号。以发生电平变化持续时间小于1S定义为短电信号大于1S定义为长电信号。例如初步设置密钥组成为:长电信号、短电信号、短电信号、长电信号、长电信号,按照这种长短电信号组合按下按键,并且在一定时间内连续输入密钥,即可解锁密码锁。这种密钥组成方式使的密码锁使用起来更加方便,易错率低。

密码锁在使用按键输入时会出现按键抖动的现象。这是由于采用的机械式按键是依靠触点的接触来判断接通与断开,但在按键发生动作的瞬间会出现一连串的抖动,此时微控制器就会误认为多次按下按键。为消除按键抖动的影响并保持输入密钥的稳定性,我们结合硬件消抖与软件过滤按键抖动的方法。硬件消抖能将按键按下或松开时产生的抖动在信号输入系统之前消除掉,这样节约了CPU资源,提高了系统的响应速度。硬件消抖常采用基本RS触发器硬件消抖、电容滤波消抖、中断法消抖[2]。由于我们采取的按键为反弹式的单个按键,所以选取电容滤波消抖最为合适。电容滤波消抖相比于其他两种方法其电路简单,消除抖动效果显著。通过在反弹式按键的两个接线端并联一个电容,利用电容的充放电特性延时平波,然后再经过施密特反向器就可以得到平滑的脉冲波。软件消抖即在按键动作发生时执行一个延时程序,在延时程序执行完毕后程序再一次检测按键状态。这样通过利用延时程序隔断了抖动的影响。相比于普通阵列式按键密码输入装置,单按键输入装置更容易过滤非正常的输入信息,增加了输入密钥的正确性。

2.2 微控制器

微控制器的选用应考虑密码锁的体积,主控芯片应以体积小功耗低反应速度快为选取标准。常见的密码锁多以AT89C51单片机作为控制芯片,但AT89C51单片机内存小,功耗较高且接口资源有限。FPGA(Field-Programmable Gate Array)系列芯片价格昂贵,开发周期长。而STM32具有体积小性价比高的特点,基于ARM32位的Cortex-M3系列的内核,工作频率可达到72MHZ片上集成16K至512k的Flash储存器,最大64K字节的SRAM存储器,其IO口、串口通讯接口丰富。STM32系列芯片具有多种配套的软件和开发工具,其程序均是模块化的,接口相对简单些,工作速度快。选择STM32在一定程度上降低了产品的开发设计周期与成本。

2.3 显示设备与警报装置

显示设备是为了提示用户正确而规范的操作,我们利用显示屏实时提供信息提示。显示屏采用市场中常见的LCD12864字符型液晶显示屏,它具有4位或8位并行、2线或3线串行的多种接口,内置丰富的中文字库。它可一次显示多个字符,构成全中文的人机交互界面。LCD12864显示屏与普通显示屏相比较具有以下几个特点:(1)显示画面清晰,无画面抖动与亮度闪烁的情况,易于使用者实时观查显示屏上的提示信息。(2)能够便捷的与STM32系列芯片连接,片上资源丰富,易于开发与制作。(3)LCD12864价格低廉,节约了硬件成本,而且耗电量小,使用时间长久。

警报装置的应用是在一些不法分子试图打开密码锁或他人非正常操作时能够警示其操作,提高密码锁的安全性。

2.4 开关锁控制电路

用户经过提示后逐步输入密钥,密钥输入完毕后系统判断密钥是否正确,若输入正确微控制器发出开门信号,开关锁控制电路接收到信号后驱动机械设备即可将密码锁打开。开关锁控制电路必须能经受强电磁干扰,必免控制设备由于强电磁干扰造成开锁信号判断错误或者电路紊乱等问题。

3 系统设计

当密码锁上电后,系统检测门锁的状态,若密码锁为开启状态则系统在LCD12864液晶显示屏上显示“密码锁锁已开启”,若检测到密码锁处于关闭状态则LCD12864液晶显示屏上显示“请输入密钥”。在输入密钥的过程中LCD12864液晶显示屏实时提示用户“正在输入密钥中”,由于是通过单个按键的按压形成的长短电信号作为输入密钥,则在密钥输入的过程中必须保证密钥的连续性输入即在一定时间内要完成密钥输入。当两次电信号输入时间间隔超过初始设定的时间值时,系统会自动认为用户输入密钥的过程属于非正常输入状态。被判定为非正常输入状态后系统自动返回到初始输入状态并在LCD12864液晶显示屏上提醒用户“请重新输入密码”。若一次性连续输入密钥则进行下一步——密钥比对,微控制器将输入的密钥与初始设定的密钥进行比对,当输入密钥与初始设定密钥相同时则对开关锁控制电路发出开锁信号,若输入密码不正确则将重新提醒用户“请重新输入密钥”。在输入密钥时间超时与输入密钥错误累加为三次的情况下密码锁发出警报,警示用户密码锁正处于非正常操作状态,警示时间过后方可再一次重新输入。整体的解锁流程如图2所示。

当我们要对单按键密码锁的密钥重新修改时,为了防止非常规性的操作,需要设置一定的密钥修改保护措施,具体密钥修改流程如图3所示。首先密码锁应处于解锁的状态下,才能对密钥进行修改,在解锁状态下长按三次按键形成三次长电信号即可进入密钥修改模式。在密钥修改模式下LCD12864液晶屏首先提示使用者输入原始密钥。当输入原密钥不正确时则需要再一次重新提醒输入原始密钥,若输入两次原始密钥错误则自动退出密钥修改模式。若输入原密钥正确则LCD12864液晶显示屏提示下一步输入两次新密钥,在按操作提醒后输入两次新密钥,两次输入的新密钥相同时则系统自动保存新密钥,若不相同则自动退出密钥修改模式。

4 Proteus仿真

我们通过电路仿真软件Proteus对单按键密码锁进行模拟仿真,证明了单按键密码锁设计的可行性,可以在单个按键作为输入设备的情况下灵活的对密码锁进行密钥锁解锁与密码修改等控制。在没有实际制作硬件并测试时电路仿真减小了设计周期,并能多次调试发现设计中的不足之处。

5 应用前景

基于STM32的单按键密码锁可广泛应用在一些中小型电子设备及生活用品上,不同于阵列式按键密码锁其体积小便于安装与使用。例如应用到生活中的柜锁、门锁、车锁等。独特的密钥组成方式增加了密码锁使用的安全性。

6 结语

单按键密码锁设计以硬件简单、体积小、使用简便为特点。该设计方案运用了STM32芯片、LCD12864液晶显示屏、单个按键等常用的电子元件。实现了在简单的结构和电路下设计出安全性高且易于操作的密码锁。该密码锁的创新点是密钥输入装置为单个按键,密钥以不同数量不同排序的长短电信号组成。不同于已有的阵列式按键密钥输入方式。新颖的密钥输入方式在一定程度上增加了密码锁的安全性与实用性,具有较高的使用价值。

参考文献

[1] 李岗.单按键密码锁[J].电子制作,2003(06):61-63.

[2] 杨伟.单片机按键消抖技术及其扩展应用[J].电子测试,2016(03):96-97.

[3] 刘佳乐.基于单片机的电子密码锁设计[J].中国新技术新产品,2018(23):7-8.

[4] 徐庆伟,郭振铎,刘洲峰.基于STM32的电子密码锁设計[J].中原工学院学报,2018, 29(06):61-65.

[5] 王英辉,刘世行,黄英凡,王泽楠.一种智能密码锁的设计与研究[J].中国新技术新产品,2019(01):9-10.

Design of Single-button Password Lock Based on STM32

SUN Sai-wei ,TIAN Xiao-guang ,TIAN Guang-qiang

(College of Mechanical and Electrical Engineering, Huanghe Jiaotong University,Jiaozuo Henan  454150)

Abstract:Password locks are very common in life, but most of them use arrayed keys as input devices. The arrayed keys have the disadvantages of large size, easy to damage keys and easy to spread keys.This paper introduces a password lock with STM32 as the main control chip. Its input device has only one key, and the key composition is special. It can flexibly implement key input and modification operation with only one key.The single-button password lock reduces the size of the password lock to a great extent. It is easy to operate and has high value in use.

Key words:STM32;password lock;key composition;single button;volume

猜你喜欢
密码锁体积
小体积带来超高便携性 Teufel Cinebar One
开启密码锁
数字密码锁的逻辑实现