阐述了一种基于VHDL设计一种数字电子密码锁的原理和方法,所用EDA开发工具为ISE,仿真工具是Modelsim SE该密码锁具有高安全性、低成本、低功耗、操作简单等特点。
随着社会的发展和人们生活水平的提高,人们的安全意识也逐步加强。密码锁以其安全性高、成本低、功耗低、易操作等优点受到越来越多人的欢迎。VHDL语言描述能力强,覆盖面广,抽象能力强,所以采用VHDL建立硬件模型。Modelsim是业界最优秀的HDL语言仿真调试环境,提供最佳的仿真性能和调试特性,已经成为众多FPGA(Field Programable Gate Array)和
ASIC(Application Specific Integrated Circuit)厂商首选的仿真调试工具。 一、功能描述
密码锁的设计主要达到以下五个功能:
(1)数码输入:按下一个数字键,其对应的数字就显示在最右边的数码管上,同时将先前输入的所有数字向左移动一位。此处密码设定为4位,在实际中为了增加安全性,可以设置为更多位。
(2)数码清除:当按下清除键时,清除前面输人的所有值,并显示为“0000”。
(3)密码激活:按下此键,将前面输入的四位数字设为密码,密码锁上锁。
4)密码更改:将输人的值作为新的密码。
5)电锁解除:按下电锁解除键,系统会将输人与密码进行检查核对,如果正确,电锁开启,否则打不开锁。 二、设计思路
电子密码锁主要由数字密码输入电路、密码锁控制电路和密码锁显示电路三部分组成。原理如图1所示,key board为键盘输入电路,ctrl为密码锁控制电路,采用七段数码管显示。在keyboard模块中,elk为系统原始时钟脉冲,key-in为按键输入信号,elkscan是键盘扫描序列,仿真时用;data-n为数字输出,data-f为功能输出,flag-n为数字输出标志,flag-f为功能输出标志,elk-ctr为控制电路时钟信号,enlock为上锁信号,data-bed(15:0)是4位十进制数码的bcd码形式。
密码输入一般采用机械式和触摸式两种键盘。机械式3x4键盘虽然易产生抖动、磨损等问题,但具有电路结构简单、成本低、可靠性高、技术成熟、应用广泛等优点,在密码锁的设计过程中经常被采用,如图2所示。
输入电路各主要功能模块:时序产生电路,键盘扫描电路,抖动消除电路,键盘译码电路,按键存储电路。
时序产生电路,由于设计需要不止一个时钟,若输入是ClK,N位计数器的输出位Q[N-l坷,则Q(0)为ClK的2分频脉冲,Q(3)为CLK电路16分频脉冲,Q(N-1)为2频。Q(5downto4)其脉冲序列是00-0110-11-00-01周期变化,其频率为CLK的32分颇。由此可得到设计中所需要的频率。
键盘扫描电路用来产生扫描信号,扫描信号KY32KYO按照1110-1101-1011-0111-1110……的规律依次变化,通过输出KX22KXO来检测是否有键接下,如扫描信号示1101,表示正在扫描4,5,6这三个键,如果这三个键多没被按下,则KX[2:0]输出为Ill,如果数字键4按下,口[2:0]将会输出为011。按键位置与数码关系如表1所示。
由于机械键盘易产生抖动,在键按下和放开的瞬间,因触点的接触和释放会产生多次通断不定的抖动,如果不加于顶,会产生多次识别。为了消除抖动,设计中采用延时的软件方法消除抖动,若采样信号检测到输入由\"1\"变到\"0\"或由\"0\"变为\"1\先延时l00ms,仍旧检测到是\"0\"或\"1\",则说明按键状态确实发生了变化,否则当作抖动处理,不予理会。对于持续按住某个键不放时,需先消除抖动,并累计时间,超时后作持续处理。
因篇幅问题不能全部显示,请点此查看更多更全内容
Copyright © 2019- efsc.cn 版权所有 赣ICP备2024042792号-1
违法及侵权请联系:TEL:199 1889 7713 E-MAIL:2724546146@qq.com
本站由北京市万商天勤律师事务所王兴未律师提供法律服务