摘要:电子密码锁和普通机械锁相比具有很多优点,广泛适用于商业、办公、个人等应用领域。本文讨论了一种基于FPGA的电子密码锁的设计方案,软件部分采用状态机描述的方法实现,采用状态机的描述方法,可以使程序的编写清晰简化,具有一定的实用价值。
关键词:电子密码锁;FPGA;状态机
中图分类号:TP311.52 文献标识码:A 文章编号:1007—9599 (2012) 14—0000—02
一、引言
电子密码锁是一种通过输入密码来控制开锁、闭锁的数字电子产品。和传统机械锁相比,电子密码锁具有许多优点:无需配钥匙,仅需凭密码实现开闭锁;保密性比机械锁高;操作简单,只需要用按键进行控制即可;密码可以反复改变;当密码输入错误还可以进行声光报警等。
电子密码锁的实现方法很多,以芯片为控制核心的密码锁是目前市场上的主流产品,这类产品主要以单片机的控制实现密码锁的主要功能。EDA技术是目前数字系统设计的核心和发展方向,本文讨论了一种通过状态机描述实现电子密码锁的设计方法,采用FPGA器件实现核心控制功能,由于FPGA器件具有在线可编程的特点,可以对系统实现升级和扩展。
二、电子密码锁的系统功能要求
该电子密码锁可以在FPGA芯片的控制下实现以下功能:
(1)系统上电复位后,可通过“设置密码”键,设定6位数字密码。
(2)每输入一位密码,都在LED数码管上进行移位显示。密码设置好后,按“上锁”键进行上锁操作。
(3)在闭锁状态下,按“核对密码”键,可以输入密码开锁,且每输入一位密码,在数码管上移位显示“—”,提示已输入密码的位数。
(4)输入四位核对密码后,按“开锁”键,若密码正确则系统开锁,若密码错误三次以内,则系统仍然处于闭锁状态。
(5)密码连续输错三次,蜂鸣器发出警告信号响10秒钟。
三、系统的硬件实现
该系统以FPGA芯片作为核心控制部件,实现密码锁的主要功能。采用4×4矩阵键盘作为数据和控制信号输入,由LED数码管动态显示、蜂鸣器等作为输出部分。
(一)核心控制电路
由FPGA芯片作为核心控制部件,实现密码的主要功能。本设计采用Altera公司的Cyclone系列芯片,该系列芯片片内资源丰富,片外只需扩展时钟、电源、配置电路、I/O扩展接口即可。
(二)键盘输入电路
本方案采用4×4矩阵键盘产生输入控制信号和数字密码。矩阵键盘只需4条行线和4条列线进行控制,节省了FPGA芯片的I/O口资源。该电路配备消抖动电路、按键扫描信号、按键数据缓存等模块即可工作。
数字键盘中共有“0—9”10个数字键,另外6个按键为功能键。功能键的设定如下:
1.设置密码键:按下后可以输入四位数字密码,考虑到密码锁的实际使用,在锁开状态时该键有效,锁闭时无效。
2.核对密码键:按下后,可输入四位密码进行核对。该键在锁开状态下无效,锁闭状态下有效。
3.上锁键:在设置密码状态下输入设置的密码后,按下该键,系统进行闭锁操作。
4.开锁键:在核对密码状态下,输入4位密码后,若密码正确,系统发出开锁控制信号进行开锁操作,密码有误则不开锁。
5.清除键:在设置密码或核对密码时,按下此键可以清除前面输入的密码,等待重新输入。
6.复位键:按下该键,系统进入复位状态,考虑到实际应用,该键只在锁开的状态下有效。
(三)显示电路
本方案采用四位动态显示的数码管显示密码,在设置密码时移位显示密码的值,在核对密码的时候移位显示“—”,确保密码安全。
四、系统的软件实现
在Quarters II软件平台下,编写VHDL语言源文件,实现FPGA的逻辑功能。软件的设计采用状态机的描述法,将密码锁的控制过程分为准备、设置密码、核对密码、开锁、闭锁等状态,不同状态之间的切换通过相应的控制信号来完成。
S0:复位状态,系统上电复位后或“复位”信号有效即进入此状态,在该状态下可进行密码的设置。
S1:设置密码状态,在该状态可设置4位数字密码,并允许进行“清除”操作。
S2:闭锁状态,设置密码成功后进入该状态,FPGA存储密码并控制机械锁闭合。
S3:核对密码状态:在该状态下可进行密码核对操作,允许进行“清除”操作。
S4:开锁状态,4位密码核对正确后,进入该状态,FPGA控制机械锁打开并将存储区内保存的密码清除。在该状态下按“复位”键,可回到状态S0。
S5:核对一次错误状态,核对密码时,输入一次错误进入此状态。
S6:核对两次错误状态, 核对密码时,输入两次错误进入此状态。
S7:核对三次错误状态,此时FPGA控制蜂鸣器发出10秒的报警音。
各个状态之间转换关系如图1所示:
五、结束语
本设计采用状态机的描述方法实现密码锁的逻辑功能,基于状态机的编程方法使程序结构清晰,在Quarters II软件平台下通过编译、锁定引脚、配置,系统的仿真结果和设计要求一致,能够完成控制任务。由于FPGA的可重复编程性,可在此基础上还通过修改源程序和相应外围电路对密码锁的功能进行升级和扩展,该密码锁的设计和开发方法灵活、高效,具有一定的实际应用价值。
参考文献:
[1]焦素敏.EDA应用技术[M].北京:清华大学出版社,2005
[2]赵立民.可编程逻辑器件与数字系统设计[M].北京:机械工业出版社,2003
[3]陈丽华,何颜平.基于VHDL的数字密码锁设计[J].国外电子测量技术,2008,(4)
[作者简介]侯静(1983—),女,陕西省西安市,助教,研究生,研究方向:电子信息技术。