0 引言
随着社会物质财富的日益增长,安全防盗已成为全社会关注的问题。基于EDA技术设计的电子密码锁,以其价格便宜、安全可靠、使用方便,受到了人们的普遍关注。而以现场可编程逻辑器件(FPGA)为设计载体,以硬件描述语言(VHDE)为主要表达方式,以QuartusⅡ开发软件和GW48EDA开发系统为设计工具设计的电子密码锁,由于其能够实现数码输入、数码清除、密码解除、密码更改、密码上锁和密码解除等功能,因此,能够满足社会对安全防盗的要求。
1 电子密码锁的基本功能
电子密码锁主要实现的功能包括:
(1)数码输入:按下一个数字键,其对应的数字就显示在最右边的数码管上,同时将先前输入的所有数字向左移动一位。设计密码为4位,系统只能显示前4位输人的数码。
(2)数码清除:当按下清除键时,清除前面输入的所有值,并显示为“----”。
(3)密码解除:按下55#键,可以将电子密码锁的旧密码解除。
(4)密码更改:将旧密码解除之后,可以进行密码更改。输入任意四位密码数字,再按#号就可以将输入的数码当作新的密码。
(5)密码上锁:输入新的密码之后,按下11#键,可以进行密码上锁操作。
(6)密码解锁:按下99#键,再输入数码;如果输入与系统储存密码一致,密码锁就能开启;否则不能解锁。
2 电子密码锁的结构原理
2.1 电子密码锁的整体结构
电子密码锁的整体结构如图1所示,它包括密码锁输入模块、控制模块和显示模块等。
2.2 密码锁输入模块
密码锁输入模块的电路框图如图2所示,它由时序产生电路、键盘扫描电路、弹跳消除电路、键盘译码电路和按键存储电路组成。
时序产生电路用于产生电路中三种不同频率的工作脉冲波形,包括系统时钟信号、弹跳消除取样信号和键盘扫描信号。
键盘电路可提供键盘扫描信号。该信号由ky3~ky0进入键盘,其变化的顺序为1110-1101-1011-0111-1110……周而复始。扫描信号0111代表扫描的为*、0、#这一排按键,当*这个按键被按下时,由kx2~kx0读出的值为011。按键位置的数码关系如表1所列。
弹跳消除电路可避免误操作发生。由于设计中采用的矩阵式键盘是机械开关结构,因此,在开关切换的瞬间,会在接触点出现信号来回弹跳的现象。为使电子密码锁可靠工作,必须加上弹跳消除电路。弹跳消除电路采用软件延时的方法消除抖动,其仿真波形如图3所示。从图3中可以看出,若采样信号连续两次或超过两次检测到高电平信号,说明按键状态确实发生了变化,此时电路输出一个时钟周期的按键信号;否则当作抖动处理而不予理会,以此来消除抖动。
对于键盘译码电路,由于图2中的键盘按键分为数字按键和功能按键,每一个按键可负责不同的功能,而键盘所产生的输出(也就是扫描回复信号)却无法直接拿来用作密码锁控制电路的输入,所以必须由键盘译码电路来规划每个按键的输出形式,以便执行相应的动作。
键盘存储电路可将每次扫描产生的新按键数据存储下来,因此新数据可能会覆盖前面的数据,所以需要一个按键存储电路,以将整个键盘扫描完毕的结果记录下来。
图4所示是密码锁输入模块的仿真波形,图中,数字键数据“0、1、2、3、4、5、6、7、8、9”和功能键数据“0100、0001”所得到的输出不同,由此可证明密码锁输入模块的正确性。
2.3 控制模块
密码锁控制电路是整个电路的控制中心,主要完成对数字键输入和功能键输入的响应和控制。密码锁控制电路的仿真波形如图5所示。从图5可见,其数字键输入的响应控制过程如下:
(1)按下数字键,第一个数字会在显示器的最右端显示,随后每按下一个新数字,显示器上已经存在的数字整体会向左移一位,并将以新的数字显示出来;
(2)若要更改输入数字,则可按*键清除所有输入的数字,再重新输入数字。
(3)电子密码锁为4位,当输人超过4位时,电路不予理会,且不显示第4个以后的数字。
功能按键的输入响应控制功能如下:
(1)清除功能:按下*键,可清除所有输入的数字,显示为“----”。
(2)更改密码:按下55#键,输入旧密码(设计中为“0000 ”),再按#键,即可解除旧密码。接着输入4位数字,再按下#键,就可以将4位数字作为新密码。
(3)密码上锁:输入4位新的密码数字之后,再按11#键,就可以将密码锁上锁。
(4)密码解锁:按下99#键可输入密码解锁,假如输入“2345”这个密码,然后按下#键,系统将比较键盘输入的数码和寄存器中的数码,如果一致,就会给出一个开锁信号,密码锁开锁;否则密码输入无效。
2.4 显示模块
本电子密码锁的显示模块比较简单,其作用是将控制模块的BCD码输出转换为7段显示编码,然后驱动数码管,其仿真波形如图6所示。
3 电子密码锁的整合和验证
要完成电子密码锁的设计,还必须将上述三个功能模块进行整合。其整合电路图如图1所示。
本设计选用杭州康芯电子有限公司生产的GW48EDA系统作为硬件验证系统,同时选用Altera公司的EPlK30TC144-3作为主控芯片。该芯片是一种基于查找表结构的现场可编程逻辑器件,它的基本逻辑单元是可编程的查找表,能够实现组合逻辑运算,并可用可编程寄存器实现时序逻辑运算。设计时只需要对电子密码锁整体设计中的输入输出引脚作引脚锁定,然后重新编译和下载,即可进行电子密码锁的硬件验证。实验表明:本设计能够实现电子密码锁的全部功能。
4 结束语
本文以现场可编程逻辑器件(FPGA)为设计载体,以硬件描述语言(VHDL)为主要表达方式,以QuartusⅡ开发软件和GW48EDA开发系统为设计工具设计了一种具有密码输入、数码清除、密码解除、密码设置和密码激活等功能的电子密码锁。同时阐述电子密码锁的工作原理和软硬件实现方法。对该电子密码锁进行时序仿真和硬件验证的结果表明:该电路能够实现所要求的功能。由于本设计中的FPGA芯片体积小,功耗低,价格便宜,安全可靠,稍加修改就可以改变密码的位数,而且维护和升级比较方便,很容易做成ASIC芯片,因而具有较好的应用前景.