基于EDA技术的电子密码锁的设计_第1页
基于EDA技术的电子密码锁的设计_第2页
基于EDA技术的电子密码锁的设计_第3页
基于EDA技术的电子密码锁的设计_第4页
基于EDA技术的电子密码锁的设计_第5页
已阅读5页,还剩15页未读 继续免费阅读

下载本文档

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

1、基于eda技术的电子密码锁的设计摘 要随着电子技术的发展,具有防盗报警等功能的电子密码锁代替密码量少、安全性差的机械式密码锁已是必然趋势。电子密码锁与普通机械锁相比,具有许多独特的优点:保密性好,防盗性强,可以不用钥匙,记住密码即可开锁等。目前使用的电子密码锁大部分是基于单片机技术,以单片机为主要器件,其编码器与解码器的生成为软件方式。在实际应用中,由于程序容易跑飞,系统的可靠性能较差。本文主要阐述了一种基于现场可编程门阵列fpga器件的电子密码锁的设计方法。用fpga器件构造系统,所有算法完全由硬件电路来实现,使得系统的工作可靠性大为提高。由于fpga具有现场可编程功能,当设计需要更改时,只

2、需更改fpga中的控制和接口电路,利用eda工具将更新后的设计下载到fpga中即可,无需更改外部电路的设计,大大提高了设计的效率。因此,采用fpga开发的数字系统,不仅具有很高的工作可靠性,而且升级也极其方便。本文采用eda技术,利用quartus ii工作平台和硬件描述语言,设计了一种电子密码锁,并通过一片fpga芯片实现。关键词:电子密码锁;fpga;硬件描述语言;eda1.绪论1.1本课题研究的目的和意义为了使现在的电子密码锁更能智能化的管理,让人们更能方便的使用,让其具有更高的安全性和经济性,针对基于单片机的电子密码锁的不足之处,本文采用eda技术,利用quartus工作平台硬件描述语

3、言,设计一种电子密码锁,并通过一片fpga芯片实现。采用vhdl语言使用自顶向下的方法对系统进行了描述,并在fpga芯片cyclone上实现。设计充分利用了fpga的资源可编程特性,可高效率的对系统进行升级与改进。设计的密码锁可设置任意密码,比一般的四位密码锁具有更高的安全可靠性,因此,采用fpga 开发的数字系统,不仅具有很高的工作可靠性,其升级与改进也极其方便,应用前景十分良好。1.2国内外现状及其发展随着人们生活水平的提高和安全意识的加强,对安全的要求也就越来越高。锁自古以来就是把守护门的铁将军,人们对它要求甚高,既要安全可靠的防盗,又要使用方便,这也是制锁者长期以来研制的主题。随着电子

4、技术的发展,各类电子产品应运而生,电子密码锁就是其中之一。据有关资料介绍,电子密码锁的研究从20世纪30年代就开始了,在一些特殊场所早就有所应用。这种锁是通过键盘输入一组密码完成开锁过程。研究这种锁的初衷,就是为提高锁的安全性。由于电子锁的密钥量(密码量)极大,可以与机械锁配合使用,并且可以避免因钥匙被仿制而留下安全隐患。电子锁只需记住一组密码,无需携带金属钥匙,免除了人们携带金属钥匙的烦恼,而被越来越多的人所欣赏。电子锁的种类繁多,例如数码锁,指纹锁,磁卡锁,ic卡锁,生物锁等。但较实用的还是按键式电子密码锁。20世纪80年代后,随着电子锁专用集成电路的出现,电子锁的体积缩小,可靠性提高,成

5、本较高,是适合使用在安全性要求较高的场合,且需要有电源提供能量,使用还局限在一定范围,难以普及,所以对它的研究一直没有明显进展。目前,在西方发达国家,电子密码锁技术相对先进,种类齐全,电子密码锁已被广泛应用于智能门禁系统中,通过多种更加安全,更加可靠的技术实现大门的管理。在我国电子锁整体水平尚处于国际上70年代左右,电子密码锁的成本还很高,市场上仍以按键电子锁为主,按键式和卡片钥匙式电子锁已引进国际先进水平,现国内有几个厂生产供应市场。但国内自行研制开发的电子锁,其市场结构尚未形成,应用还不广泛。国内的不少企业也引进了世界上先进的技术,发展前景非常可观。希望通过不断的努力,使电子密码锁在我国也

6、能得到广泛应用。目前使用的电子密码锁大部分是基于单片机技术,以单片机为主要器件,其编码器与解码器的生成为软件方式。在实际应用中,由于程序容易跑飞,系统的可靠性能较差。基于现场可编程逻辑门阵列fpga器件的电子密码锁,用fpga器件构造系统,所有算法完全由硬件电路来实现,使得系统的工作可靠性大为提高。由于fpga具有现场可编程功能,当设计需要更改时,只需更改fpga中的控制和接口电路,利用eda工具将更新后的设计下载到fpga中即可,无需更改外部电路的设计,大大提高了设计的效率。1.3fpga的设计流程:(如图1.1)系统设计要求时序、同步、算法测试等方案模块划分及其功能描述各模块接口信号定义系

7、统行为描述系统行为仿真系统设计方案图1.1 fpga的设计流程图2.电子密码锁的原理2.1编码总量的确定电子密码锁随机开锁成功的概率定义为:p=1/nt其中p为随机开锁成功概率,nt为密码编码总量。显然要使密码锁保密安全性高,nt应尽可能大,使p趋于零,但nt越大,相应电路越复杂,密码的记忆与操作也越麻烦。故nt应有合理的上限和下限。下限ntl的选择应使密码落在随机开锁可能成功的操作时区以外。若每一次开锁操作时间为t,为便于做随机试验,将n t分为n段并期望在1/n段的1/2处开锁成功。此时p=1/2n则随机开锁试验期望成功的时间为:tr=ntt/2n假定系统设计不考虑误码输入的保护,密码锁在

8、无保护的情况下使操作人员任意作随机开锁试验的时间为ten,则:ntl=(2nt en t)x,其中x为最低安全系数。即:ten=(n tlt2n)x显然若使nt=ntl,则trten,则使分段随机试验不易成功。由此可得出数字密码锁的编码总量设定是系统设计安全性、保密性的首要技术指标。一般来说,当nt选定之后,nt的上限nth原则上是越大越安全,但一般设计时取nth=(101000)ntl较为合理。2.2编码制式的选择编码制式应根据nt的大小选取,可分为如下三种:(1)密码的各位都可以重码:nt1=ai;(2)密码的非相邻位可以重码:nt2=a(a-1)i;(3)密码的任何一位都不能重码:nt3

9、=a(a-1)(a-i+1)。其中a为基数,i为位数,a和i的选取应该满足ntntl , a=2,3,4,10,12,14,16。现在以最常用的a=10,i=6为例,可以计算出nt2=0159nt 1,nt 3=0.15n t1,所以编码制式考虑是否重码对nt有很大影响。另外,相同制式下不同的基底对编码总量nt会有影响,而且基底的选择也会影响到硬件电路的设计。本文设计的密码锁采用十进制编码,密码各位允许重码,为简化电路设计,密码锁口令采用对串行脉冲计数的方式输入。2.3误码输入的保护措施如前所述,电子密码锁的设计应考虑自身的安全保密性,由于编码和捕捉密码的实验都是随机的,若要使p=1 /nt趋

10、近于0,必须采取误码输入的保护措施。假定设定的误码输入次数不超过三次,误码达到三次时系统应关闭主控电路,拒绝大于三次的密码输入,并且系统进入死锁状态。系统正常状态的恢复也可采用以下三种方式:(1)延时后输入二级密码管理方式,即由管理员级密码作为正常输入的开锁密码,之后重新定义新的开锁密码;(2)使用一个按键使系统重新恢复到正常状态;(3)系统掉电恢复或万能密码。2.4系统流程系统流程图如图2.1: 图2.1 系统流程图2.5密码锁系统总体框图通过电子密码锁系统结构的分析,我们知道通用的电子密码锁主要由三个部分组成:数字密码输入电路、密码锁控制电路和密码锁显示电路。也就是说,设计分为三个大的功能

11、模块。图2.2为数字电子密码锁系统总体框图。图2.2 数字电子密码锁系统总体框图2.5硬件设备作为电子密码锁的输入电路,数字密码输入电路可采用一个44的通用数字机械键盘作为本设计的输入设备。机械式键盘具有低成本、可靠性高、构成电路简单、技术成熟和应用广泛等特点,因此将其应用到通用电子密码锁中还是比较适宜的。数字电子密码锁的显示信息电路可采用led数码管显示和液晶屏幕显示两种。液晶显示具有高速显示、高可靠性、易于扩展和升级等优点,但是普通液晶显示屏存在亮度低、对复杂环境的适应能力差等缺点,在低亮度的环境下还需要加入其它辅助的照明设备,驱动电路设计相对复杂,因此本设计的显示电路使用通用的led数码

12、管。3.系统设计要求设计一个具有较高安全性和较低成本的通用电子密码锁,具体功能要求如下:(1)数码输入:每按下一个数字键,就输入一个数值,并在显示器上的显示出该数值,同时将先前输入的数据依序左移一个数字位置。(2)数码清除:按下此键可清除前面所有的输入值,清除为“0000”。(3)密码更改:按下此键时会将目前的数字设定成新的密码。(4)激活电锁:按下此键可将密码锁上锁。(5)解除电锁:按下此键会检查输入的密码是否正确,密码正确即开锁。4.电子密码锁的设计与分析4.1几个主要功能模块的设计本系统为一个简洁型的电子密码锁,该系统以开发板为主要核心,采用44的键盘,前10个键为数字键,8个数码管显示

13、密码输入,后面的按键实现电子密码锁的各个功能,总体外观如图4.1所示。图4.1 电子密码外观图上图为在实验开发板上实现,使用开发板有十六个按键,分别对应数字0到9和各个功能键,led显示为开发板上数码管显示。4.1.1密码锁输入电路1时序产生电路本时序产生电路中使用了三种不同频率的工作脉冲波形:系统时钟脉冲(它是系统内部所有时钟脉冲的源头,且其频率最高)、弹跳消除取样信号、键盘扫描信号。当一个系统中需使用多种操作频率的脉冲波形时,最方便的方法之一就是利用一计数器来产生各种需要的频率。也就是先建立一个n位计数器,n的大小根据电路的需求决定,n的值越大,电路可以分频的次数就越多,这样就可以获得更大

14、的频率变化,以便提供多种不同频率的时钟信号。若输入时钟为clk,n位计数器的输出为qn-1.0,则q(0)为clk的2分频脉冲信号,q(1)为clk的4分频脉冲信号,q(2)为clk的8分频脉冲信号q(n-1)为clk的2n分频脉冲信号;q(5 downto 4)取得的是一个脉冲波形序列,其值依000110110001周期性变化,其变化频率为clk的32分频。我们利用以上规律即可得到各种我们所需要频率的信号或信号序列。signal clk: std_logic ; -电路工作时钟脉冲signal c_keyboard: std_logic_vector(1 downto 0); -键扫信号“0

15、0-01-10-11”寄存器signal c_debounce: std_logic ; -去抖时钟信号2键盘扫描电路扫描电路的作用是用来提供键盘扫描信号的,扫描信号变化的顺序依次为11101101101101111110依序的周而复始。扫描时依序分别扫描四列按键,当扫描信号为1110时扫描ky3这一排按键;当扫描信号为1101室,扫描ky2这一排按键;当扫描信号为1011时,扫描ky1这一排按键;当扫描信号为0111时,扫描ky0这一排按键。每扫描一排按键就检查一次是否有键被按下,如果这排没有按键被按下就忽略,反之,如果出现被按下的键则立刻进行按键编码的动作,且将编码的结果储存于寄存器中。-

16、扫描信号发生器 counter : block issignal q: std_logic_vector(5 downto 0); signal sel: std_logic_vector (3 downto 0); -1110-1101-1011-0111 beginprocess (clk_1k) is begin if clk_1kevent and clk_1k =1 then q = q+1; end if; c_debounce = q(2) ; -去抖时钟信号, 大约125 hz c_keyboard = q(6 downto 5) ; - 产生键扫信号*“00-01-10-11

17、”, 大约16 hz-c_debounce = q(1) ; -仿真时用 -c_keyboard = q(5 downto 4) ; -仿真时用 clk key_in(0) , d_out = c(0), clk = c_debounce); u2: debouncing port map (d_in = key_in(1) , d_out = c(1), clk = c_debounce); u3: debouncing port map (d_in = key_in(2) , d_out = c(2), clk = c_debounce ); 4.1.2密码锁控制电路控制锁的控制电路是整个

18、电路的控制中心,主要完成对数字按键输入和功能按键输入的相应控制。1数字按键输入的响应控制(1)如果按下数字键,第一个数字会从显示其的最右端开始显示,此后每新按一个数字时,显示器上的数字必须左移一格,以便将新的数字显示出来。(2)假如要更改输入的数字,可以按倒退按键来清除前一个输入的数字,或者按清除键清除所有出入的数字,再重新输入四位数。(3)当输入的数字键超过预设位数时,电路不予理会,而且不再显示以后的数字。2.功能按键输入的响应控制(1)清除键:清除所有的输入数字,即作归零动作。(2)激活电锁键:按下此键时可将密码锁的门上锁。(3)解除电锁键:按下此键会检查输入的密码是否正确,若密码正确无误

19、则开门。使用电子密码锁的时候,只会用到三种工作模式,其中输入文字模式用的是数字按键,只有上锁和开锁两个模式必须占用功能按键。但是在实际操作中,难免会有按错键的情况发生,使得“清除输入”功能是用的机率很高,所以在设计中共设置了两个功能按键,其中“接触电锁”和“清除电锁”共用一个功能按键,另一个功能按键是“激活电锁”。-ctrl.vhdlibrary ieee; use ieee.std_logic_1164.all; use ieee.std_logic_arith.all; use ieee.std_logic_unsigned.all; entity ctrl isport (data_n:

20、 in std_logic_vector(3 downto 0); data_f: in std_logic_vector(3 downto 0); flag_n: in std_logic; flag_f: in std_logic; clk: in std_logic; enlock: out std_logic; -1: lock, 0: unlock data_bcd: out std_logic_vector (15 downto 0); end entity ctrl ; architecture art of ctrl is signal acc, reg: std_logic_

21、vector (15 downto 0); -acc用于暂存键盘输入的信息,reg用于存储输入的密码 signal nc: std_logic_vector (2 downto 0); signal rr2, clr, bb, qa, qb: std_logic; signal r1, r0: std_logic; begin -寄存器清零信号的产生进程process(clk) begin if clkevent and clk=1 then r1=r0; r0=flag_f; end if; rr2=r1 and not r0; clr=rr2; end process; -按键输入数据的存

22、储、清零进程 keyin_process : block is signal rst, d0, d1: std_logic ; begin rst = rr2; process(flag_n, rst) is beginif rst = 1 then acc = 0000000000000000 ; -clear input nc = 000 ; else if flag_nevent and flag_n = 1 then if nc 4 then acc = acc(11 downto 0) & data_n ; nc = nc + 1 ; end if; end if ; end if

23、; end process ; end block keyin_process ; -上锁/开锁控制进程lock_process : block is beginprocess(clk, data_f) is begin if (clkevent and clk = 1) thenif nc = 4 then if data_f(2) = 1 then -上锁控制信号有效 reg = acc ; -密码存储qa = 1 ; qb = 0; elsif data_f(0) = 1 then-开锁控制信号有效if reg = acc then -密码核对 qa= 0; qb = 1 ; end i

24、f ; elsif acc = 1000100010001000 then -设置“8888”为万用密码qa = 0 ; qb= 1; end if ; end if; end if ; end process ; end block lock_process ; -输出上锁/开锁控制信号 enlock = qa and not qb ; -输出显示信息 data_bcddout7dout7dout7dout7dout7dout7dout7dout7dout7dout7dout7= 0000000;译码显示的实现生成电路符号图4.6:图4.6 译码显示电路符号图模块外部信号端口:data_bc

25、d:密码信号输入端口,提供密码信号输入。dout7:密码锁状态信号显示灯,提供状态显示信号。5.计算机仿真5.1电子密码锁的设计流程使用quartus进行电子密码锁设计的流程为(1)编写vhdl程序(使用text editor)(见附录);(2)编译vhdl程序(使用compiler);(3)仿真验证vhdl程序(使用waveform editor, simulator);(4)进行芯片的时序分析(使用timing analyzer);(5)安排芯片管脚位置(使用floorplan editor);(6)下载程序至芯片(使用programmer)。5.2系统的有关编译与仿真本节主要是阐述设计在quartus ii6.0软件中实现编译与仿真。在quartus ii6.0在输入源程序后,我们需要建立一个工程,在工程中我们要把设计文件加入工程中;然后选择仿真器和综合器类型值得注意的是如果选择默认的“none”,表示选择quartus ii软件中自带的仿真器和综合器,结合自己的设计,在此我选择默认项“none”;最后选择目标芯片。在“family”栏选择芯片系列,在此我选择“cyclone”系列再选择此系列的具体芯片ep2c35f484c6。工程建立以后,可以进行源程序的

温馨提示

  • 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
  • 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
  • 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
  • 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
  • 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
  • 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
  • 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

评论

0/150

提交评论