您的位置 首页 观点

根据FPGA的电子密码锁的研发

介绍在QUATUSII环境下,采用FPGA可编程逻辑器件开发的电子密码锁,并利用状态机(FSM)实现键盘消抖及系统主控模块的行为控制,从实际工程设计角度阐述了系统所有模块及其工作原理、软件设计方法,提

跟着社会物质财富的日益增长,安全防盗已成为人们所重视的焦点。但是传统机械弹子锁安全性低,暗码量少且需时间带着钥匙使其无法满意一些特定场合的运用要求,特别是在人员常常改变的公共场所,如办公室、宾馆、轿车、银行柜员机等当地。因为电子暗码锁具有语音提示、防盗报警、易于体系升级与功用扩展的优势,越来越遭到人们的喜爱。现在运用的电子暗码锁首要有两个计划:一是依据单片机用分立元件完结的,二是通过现代人体生物特征辨认技能完结的,前者电路较杂乱且灵活性差,无法满意运用要求;后者有其先进性但需考虑本钱和安全性等许多要素。依据此,本文规划了一种新式电子暗码锁,选用FPGA芯片,运用先进的EDA技能、ALTERA公司的QUATUSII软件开发渠道进行规划。体系选用VHDL硬件编程语言对体系建模,并运用状况机(FSM)完结抵消抖电路及主控模块的规划[1]。

1 体系功用描绘

本规划首要完结以下六个功用:

(1)初始暗码设置:体系上电后输入4位数字并按“*”后暗码设置成功体系进入上锁状况。为了实践需求,体系另设置了一个4位数的优先级暗码,当用户忘掉暗码或被别人更改暗码后,可以用优先级暗码铲除所设暗码。
(2)暗码更改:为了暗码安全及防止误操作,只能在开锁状况下先输入旧暗码后才干更改体系暗码,然后输入4位新暗码后按“*”。
(3)解锁:输入暗码或优先级暗码后按“#”,体系即解锁。
(4)暗码保护:暗码输入过错时,体系主动记载一次过错输入,当过错输入次数等于3次时,体系报警并使键盘失效5分钟,防止暗码被盗。
(5)铲除输入过错:当输入数位小于4位时可以按“*”铲除前面一切的输入值,铲除为“0000”。
(6)体系复位:按“*”和“#”后体系即复位到初始状况。考虑到实践情况,体系只在暗码更改状况和体系初始状况下才干复位。

2 体系规划思路

本文选用自顶向下的模块化规划办法,先对体系级进行功用描绘,再进行功用模块的区分,最终分别对各个子模块进行VHDL建模。所规划的电子暗码锁体系结构如图1所示。

2.1 时钟发生模块

此模块首要功用是发生时钟信号和键盘扫描信号。首要发生三个时钟信号(16 Hz、64 Hz、100 kHz),分别为体系各个功用模块供给时钟驱动信号。其间键盘扫描模块包含在时钟发生模块中,用来发生扫描信号。因为要发生多个时钟信号,因此该模块的VHDL程序分别用三个进程来处理。

暗码输入一般选用机械式和触摸式两种键盘。因为机械式键盘具有本钱低、结构简略、可靠性高、运用广泛等长处,本规划选用机械式3×4键盘矩阵。其按键散布及键值编码如图2所示。其间‘*’、‘#’为多功用组合键。键盘扫描电路用来发生扫描信号KH[3..0],其依照1110-1101-1011-0111…的规则循环改变,并通过KC[2..0]来检测是否有键按下。例如,当扫描信号为1011时,键6、7、8所对应的行为低电平,此刻若8键被按下,则KC2为低电平,KC[2..0]输出为011。假如没有键被按下,则KC[2..0]输出为111。其他键也是相似原理。特别值得留意的是键盘扫描电路扫描时钟的建立,假如扫描时钟不适宜,将发生键按下时反响太慢,或KC[2..0]发生过错的输出。一般为20 Hz,本规划通过实验证明扫描时钟取16 Hz较为适宜。

2.2 按键消抖模块

本规划选用机械键盘,其缺陷是易发生颤动,因此键盘输出KC[2..0]有必要通过消抖电路后才干加入到键盘编码模块,以防止屡次辨认。此模块选用状况机规划,其状况转化图如图3所示。只有当接连检测到3次低电平输入,模块才输出一次低电平。消抖电路的时钟挑选很要害,挑选不妥则不能正常作业。因为键盘扫描电路的时钟是16 Hz且扫描信号为4组循环输出,所以消抖电路要可以在4个键盘扫描时钟内检测出是否有键按下就有必要设置其时钟信号至少为键盘扫描时钟的4倍。本规划选用64 Hz作为消抖模块的时钟驱动信号,实验证明能到达规划要求。

2.3 键盘编码模块

上述的键盘中可分为数字键和功用键,其间数字键用来输入数字,但键盘所发生的信号KC[2..0]并不能直接用于键盘输入处理模块,因此有必要由键盘编码电路对数字按键的输出方式进行规划。一起多功用键‘*’、‘#’也分别被规划为“1010”和“1011”。别的,在体系规划时,也将体系复位电路规划在此模块内,复位信号是由键盘编码模块和体系主控模块输出的体系复位辅助信号mm一起效果发生,然后完结只能在暗码更改状况和体系初始状况下才干进行体系复位,确保体系安全可靠。

2.4 按键输入处理模块

按键输入处理模块用来贮存每次按键发生的值,防止掩盖前面输入的数据,此模块运用串行移位寄存器对顺次输入的4位十进制数字进行存储。按键输入超越4位时,后边的输入将被疏忽。

2.5 显现模块

为了节约I/O管脚和芯片内部资源,本规划选用动态扫描的办法进行显现。模块用100 kHz时钟信号和人眼的视觉暂留效应使4位数码管看起来像是一起点亮。图4是依据VHDL代码所制作的显现模块框图。其间多路数据挑选器是由按键次数(NC)操控挑选哪一个数码管和哪一组输入数据。

2.6 体系主控模块

此模块是体系的中心操控模块,体系的一切操控行为都是由它完结的,选用状况机(FSM)来描绘体系的操控行为。因为多进程编程状况机的输出是由组合电路宣布的,因此在一些特定情况下简单发生毛刺现象。假如这些输出信号被用作时钟信号,则极易发生过错的驱动。因此本规划选用单进程来完结状况机,其优势是由时序器材同步输出,输出信号不会呈现毛刺现象,然后很好地防止了竞赛冒险的发生。缺陷是与多进程状况机比较,输出信号要晚一个时钟周期[2]。通过重复实验在VHDL编程时将输出信号与状况转化同步进行,然后很好地处理了输出信号滞后的问题。图5为主控模块的状况转化图。其间S0为体系上电初始化状况,也是体系复位后所转入的状况。此状况下体系未设置暗码。本规划设置S0状况的另一首要原因是考虑到一个齐备的状况机(健壮性强)应该具有初始化状况和默许状况。当芯片加电或许复位后,状况机应该可以主动将一切判别条件复位,并进入初始化状况。但需求着重的是,大多数FPGA有GSR(Global Set/Reset)信号,当FPGA加电后,GSR信号拉高,对一切的寄存器,RAM等单元复位/置位,这时配置于FPGA的逻辑并未收效;不能确保正确地进入初始化状况。所以运用GSR妄图进入FPGA的初始化状况,常常会发生种种不必要的费事[3]。S1为上锁状况,S2为解锁状况,S3为解锁过错次数记载状况,S4为体系报警状况,S5为开锁状况,S6为暗码更改状况。以S5状况为例给出S5状况的VHDL代码:

When s5=>
clr_nc=‘0’;
MMA=‘0’;
ED=‘1’;
EA=‘1’;
EB=‘1’;
alarma=‘0’;
unen_keya=‘0’;
if NC=4 and keyout_fun=1011 then
if REGS=ACC or PW=ACC then
states=s1;
clr_nc=‘1’;
else
clr_nc=‘1’;
end if;
elsif NC=4 and keyout_fun=1010 then
–transfer to the state of changing PW-
if REGS=ACC or REGS=PW then
–after entering the right previous PW.
states=s6;
clr_nc=‘1’;
else
clr_nc=‘1’;
end if;
end if;

3 首要功用模块的仿真

图6是键盘编码模块的时序仿真图。其间信号mm是主控模块,用来约束复位条件,即只在S0和S6状况下发生复位信号RR;信号rst_key和unen_key一起操控键盘,也是来自主控模块;sn是模块输出信号,为高电平时标明稀有字键被按下;sf为高电平时标明有功用键被按下。从仿真图上可知,模块规划满意要求。

 图7是主控模块的时序仿真图。其间信号NC等于4标明接连输入了4个数字,信号nn记载暗码输入过错次数。由图可知,体系初始状况为S0,设置暗码后为S1,通过3次输入过错的暗码时体系进入S4,再输入暗码后回来S1。在S1时输入暗码后通过S2进入开锁状况S5,再输入暗码后则进入暗码更改状况S6,然后设置新暗码,设置成功后回来S1,满意体系规划要求。在S6时,体系新暗码要在S5转入S6后的下一时钟上升沿时才被体系承受,这首要是因为在S5转S6状况时需求输入旧暗码或优先级暗码进行承认的原故。在工程实践中,考虑到实践按键要比体系时钟慢,所以在此期间,不可能输入4位数字,因此体系不会呈现暗码遗失的问题。而其他状况下,输出信号与状况转化是共同的,这样就克服了输出信号比多进程晚一个时钟周期的缺陷。

本文介绍了在FPGA可编程逻辑器材上运用状况机(FSM)完结的电子暗码锁,从实践工程规划视点论述了其作业原理、体系结构、软件规划办法、体系调试及规划留意点。完结了对暗码设置、暗码更改、上锁、解锁、暗码防盗报警等功用。文中对首要模块的程序进行了时序仿真,并在FPGA(EP1C6Q240C8)上下载完结,仿真与实测成果都标明该暗码锁满意功用规划要求,且体系作业安稳。此电子暗码锁是以实践需求为动身点来完结研发的,具有很好的实用价值和市场前景。

声明:本文内容来自网络转载或用户投稿,文章版权归原作者和原出处所有。文中观点,不代表本站立场。若有侵权请联系本站删除(kf@86ic.com)https://www.86ic.net/news/guandian/196776.html

为您推荐

联系我们

联系我们

在线咨询: QQ交谈

邮箱: kf@86ic.com

关注微信
微信扫一扫关注我们

微信扫一扫关注我们

返回顶部