电子密码锁的设计与分析.ppt_第1页
电子密码锁的设计与分析.ppt_第2页
电子密码锁的设计与分析.ppt_第3页
电子密码锁的设计与分析.ppt_第4页
电子密码锁的设计与分析.ppt_第5页
已阅读5页,还剩68页未读 继续免费阅读

下载本文档

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

文档简介

第4章电子密码锁的设计与分析 4 1系统设计要求4 2系统设计方案4 3主要VHDL源程序4 4系统仿真 硬件验证4 5设计技巧分析4 6系统扩展思路 4 1系统设计要求 设计一个具有较高安全性和较低成本的通用电子密码锁 其具体功能要求如下 1 数码输入 每按下一个数字键 就输入一个数值 并在显示器上的最右方显示出该数值 同时将先前输入的数据依序左移一个数字位置 2 数码清除 按下此键可清除前面所有的输入值 清除成为 0000 3 密码更改 按下此键时会将目前的数字设定成新的密码 4 激活电锁 按下此键可将密码锁上锁 5 解除电锁 按下此键会检查输入的密码是否正确 密码正确即开锁 4 2系统设计方案 作为通用电子密码锁 主要由三个部分组成 数字密码输入电路 密码锁控制电路和密码锁显示电路 作为电子密码锁的输入电路 可供选择的方案有数字机械式键盘和触摸式数字键盘等多种 根据以上选定的输入设备和显示器件 并考虑到实现各项数字密码锁功能的具体要求 整个电子密码锁系统的总体组成框图如图4 1所示 1 密码锁输入电路包括时序产生电路 键盘扫描电路 键盘弹跳消除电路 键盘译码电路等几个小的功能电路 2 密码锁控制电路包括按键数据的缓冲存储电路 密码的清除 变更 存储 激活电锁电路 寄存器清除信号发生电路 密码核对 数值比较电路 解锁电路 开 关门锁电路 等几个小的功能电路 3 七段数码管显示电路主要将待显示数据的BCD码转换成数码器的七段显示驱动编码 图4 1数字电子密码锁系统总体框图 4 2 1密码锁输入电路的设计图4 2是电子密码锁的输入电路框图 由键盘扫描电路 弹跳消除电路 键盘译码电路 按键数据缓存器 加上外接的一个3 4矩阵式键盘组成 图4 2密码锁的输入电路框图 1 矩阵式键盘的工作原理矩阵式键盘是一种常见的输入装置 在日常的生活中 矩阵式键盘在计算机 电话 手机 微波炉等各式电子产品上已经被广泛应用 图4 3是一个3 4矩阵式键盘的面板配置图 其中数字0 9作为密码数字输入按键 作为 上锁 功能按键 作为 解锁 清除 功能按键 图4 33 4矩阵式键盘的面板配置 表4 1按键位置与数码关系 2 密码锁输入电路各主要功能模块的设计1 时序产生电路本时序产生电路中使用了三种不同频率的工作脉冲波形 系统时钟脉冲 它是系统内部所有时钟脉冲的源头 且其频率最高 弹跳消除取样信号 键盘扫描信号 2 键盘扫描电路扫描电路的作用是用来提供键盘扫描信号 表4 1中的KY3 KY0 的 扫描信号变化的顺序依次为1110 1101 1011 0111 1110 依序地周而复始 3 弹跳消除电路由于本设计中采用的矩阵式键盘是机械开关结构 因此在开关切换的瞬间会在接触点出现信号来回弹跳的现象 对于电子密码锁这种灵敏度较高的电路这种弹跳将很可能会造成误动作输入 从而影响到密码锁操作的正确性 从图4 4中可以观察出弹跳现象产生的原因 虽然只是按下按键一次然后放掉 然而实际产生的按键信号却不止跳动一次 经过取样信号的检查后 将会造成误判断 以为键盘按了两次 如果调整抽样频率 如图4 5所示 可以发现弹跳现象获得了改善 图4 4弹跳现象产生错误的抽样结果 图4 5调整抽样频率后得到的抽样结果 弹跳消除电路的实现原理如图4 6所示 先将键盘的输入信号D IN做为电路的输入信号 CLK是电路的时钟脉冲信号 也就是取样信号 D IN经过两级D触发器延时后再使用RS触发器处理 图4 6弹跳消除电路的内部实现原理图 此处RS触发器的前端连接和非门的处理原则是 1 因为一般人的按键速度至多是10次 秒 亦即一次按键时间是100ms 所以按下的时间可估算为50ms 以取样信号CLK的周期为8ms计 则可以取样到6次 2 对于不稳定的噪声 在4ms以下则至多抽样一次 3 在触发器之前 接上AND NOT之后 SR的组态如表4 2所示 表4 2RS触发器真值表 4 键盘译码电路上述键盘中的按键可分为数字按键和文字按键 每一个按键可能负责不同的功能 例如清除数码 退位 激活电锁 开锁等 详细功能参见表4 3 表4 3键盘参数表 5 按键存储电路因为每次扫描会产生新的按键数据 可能会覆盖前面的数据 所以需要一个按键存储电路 将整个键盘扫描完毕后的结果记录下来 按键存储电路可以使用移位寄存器构成 4 2 2密码锁控制电路的设计密码锁的控制电路是整个电路的控制中心 主要完成对数字按键输入和功能按键输入的响应控制 1 数字按键输入的响应控制 1 如果按下数字键 第一个数字会从显示器的最右端开始显示 此后每新按一个数字时 显示器上的数字必须左移一格 以便将新的数字显示出来 2 假如要更改输入的数字 可以按倒退按键来清除前一个输入的数字 或者按清除键清除所有输入的数字 再重新输入四位数 3 由于这里设计的是一个四位的电子密码锁 所以当输入的数字键超过四个时 电路不予理会 而且不再显示第四个以后的数字 2 功能按键输入的响应控制 1 清除键 清除所有的输入数字 即做归零动作 2 激活电锁键 按下此键时可将密码锁的门上锁 上锁前必须预先设定一个四位的数字密码 3 解除电锁键 按下此键会检查输入的密码是否正确 若密码正确无误则开门 图4 7电子密码锁的三种模式及关系 4 2 3密码锁显示电路的设计密码锁显示电路的设计比较简单 这里直接采用四个4 7译码器来实现 4 2 4密码锁的整体组装设计将前面各个设计好的功能模块进行整合 可得到一个完整的电子密码锁系统的整体组装设计原理图 如图4 8所示 图4 8密码锁的整体组装设计原理图 4 3主要VHDL源程序 4 3 1键盘输入去抖电路的VHDL源程序 DCFQ VHDLIBRARYIEEE USEIEEE STD LOGIC 1164 ALL ENTITYDCFQISPORT CLK CLRN PRN D INSTD LOGIC Q OUTSTD LOGIC ENDENTITYDCFQ ARCHITECTUREARTOFDCFQISBEGINPROCESS CLK CLRN PRN BEGINIFCLRN 0 ANDPRN 1 THENQ 0 ELSIFCLRN 1 ANDPRN 0 THENQ 1 ELSIFCLK EVENTANDCLK 1 THENQ D ENDIF ENDPROCESS ENDARCHITECTUREART DEBOUNCING VHDLIBRARYIEEE USEIEEE STD LOGIC 1164 ALL LIBRARYALTERA USEALTERA MAXPLUS2 ALL ENTITYDEBOUNCINGISPORT D IN CLK INSTD LOGIC DD1 DD0 QQ1 QQ0 OUTSTD LOGIC D OUT D OUT1 OUTSTD LOGIC ENDENTITYDEBOUNCING ARCHITECTUREARTOFDEBOUNCINGISCOMPONENTDCFQISPORT CLK CLRN PRN D INSTD LOGIC Q OUTSTD LOGIC ENDCOMPONENTDCFQ SIGNALVCC INV D STD LOGIC SIGNALQ0 Q1 STD LOGIC SIGNALD1 D0 STD LOGIC BEGINVCC 1 INV D NOTD IN U1 DCFQPORTMAP CLK CLK CLRN INV D PRN VCC D VCC Q Q0 U2 DCFQPORTMAP CLK CLK CLRN Q0 PRN VCC D VCC Q Q1 PROCESS CLK BEGINIFCLK EVENTANDCLK 1 THEND0 NOTQ1 D1 D0 ENDIF ENDPROCESS DD0 D0 DD1 D1 QQ1 Q1 QQ0 Q0 D OUT NOT D1ANDNOTD0 D OUT1 NOTQ1 ENDARCHITECTUREART 4 3 2密码锁输入电路的VHDL源程序 KEYBOARD VHDLIBRARYIEEE USEIEEE STD LOGIC 1164 ALL USEIEEE STD LOGIC ARITH ALL USEIEEE STD LOGIC UNSIGNED ALL ENTITYKEYBOARDIS PORT CLK 1K INSTD LOGIC 系统原始时钟脉冲 1kHz KEY IN INSTD LOGIC VECTOR 2DOWNTO0 按键输入CLK SCAN OUTSTD LOGIC VECTOR 3DOWNTO0 仿真时用 键盘扫描序列DATA N OUTSTD LOGIC VECTOR 3DOWNTO0 数字输出 DATA F OUTSTD LOGIC VECTOR 3DOWNTO0 功能输出FLAG N OUTSTD LOGIC 数字输出标志FLAG F OUTSTD LOGIC 功能输出标志CLK CTR OUTSTD LOGIC 控制电路工作时钟信号CLK DEBOUNCE OUTSTD LOGIC 仿真时用 去抖电路工作时钟信号 ENDENTITYKEYBOARD ARCHITECTUREARTOFKEYBOARDISCOMPONENTDEBOUNCINGISPORT D IN INSTD LOGIC CLK INSTD LOGIC D OUT OUTSTD LOGIC ENDCOMPONENTDEBOUNCING SIGNALCLK STD LOGIC 电路工作时钟脉冲SIGNALC KEYBOARD STD LOGIC VECTOR 1DOWNTO0 键扫信号 00 01 10 11 寄存器SIGNALC DEBOUNCE STD LOGIC 去抖时钟信号SIGNALC STD LOGIC VECTOR 2DOWNTO0 键盘输入去抖后的寄存器 SIGNALN F STD LOGIC VECTOR 3DOWNTO0 数字 功能按键译码值的寄存器SIGNALFN FF STD LOGIC 数字 功能按键标志值数字 功能按键SIGNALSEL STD LOGIC VECTOR 3DOWNTO0 BEGIN 内部连接DATA N N DATA F F FLAG N FN FLAG F FF CLK CTR CLK 扫描信号发生器COUNTER BLOCKISSIGNALQ STD LOGIC VECTOR 5DOWNTO0 SIGNALSEL STD LOGIC VECTOR 3DOWNTO0 1110 1101 1011 0111BEGINPROCESS CLK 1K ISBEGINIFCLK 1K EVENTANDCLK 1K 1 THENQ Q 1 ENDIF C DEBOUNCE Q 2 去抖时钟信号 大约125HzC KEYBOARD Q 6DOWNTO5 产生键扫信号 00 01 10 11 大约16Hz C DEBOUNCE Q 1 仿真时用 C KEYBOARD Q 5DOWNTO4 仿真时用CLK Q 0 ENDPROCESS CLK DEBOUNCE C DEBOUNCE SEL 1110 WHENC KEYBOARD 0ELSE 1101 WHENC KEYBOARD 1ELSE 1011 WHENC KEYBOARD 2ELSE 0111 WHENC KEYBOARD 3ELSE 1111 CLK SCAN SEL ENDBLOCKCOUNTER 键盘去抖 DEBOUNUING BLOCKISBEGINU1 DEBOUNCINGPORTMAP D IN KEY IN 0 D OUT C 0 CLK C DEBOUNCE U2 DEBOUNCINGPORTMAP D IN KEY IN 1 D OUT C 1 CLK C DEBOUNCE U3 DEBOUNCINGPORTMAP D IN KEY IN 2 D OUT C 2 CLK C DEBOUNCE ENDBLOCKDEBOUNUING 键盘译码KEY DECODER BLOCKSIGNALZ STD LOGIC VECTOR 4DOWNTO0 按键位置BEGINPROCESS CLK BEGINZ C KEYBOARDIFCLK EVENTANDCLK 1 THEN CASEZISWHEN 11101 NNNNNNNNNNN 1111 ENDCASE ENDIF IFCLK EVENTANDCLK 1 THENCASEZISWHEN 11011 FFF 1000 ENDCASE ENDIF ENDPROCESS FN NOT N 3 ANDN 2 ANDN 1 ANDN 0 FF F 2 ORF 0 ENDBLOCKKEY DECODER ENDARCHITECTUREART 4 3 3密码锁控制电路的VHDL源程序 CTRL VHDLIBRARYIEEE USEIEEE STD LOGIC 1164 ALL USEIEEE STD LOGIC ARITH ALL USEIEEE STD LOGIC UNSIGNED ALL ENTITYCTRLIS PORT DATA N INSTD LOGIC VECTOR 3DOWNTO0 DATA F INSTD LOGIC VECTOR 3DOWNTO0 FLAG N INSTD LOGIC FLAG F INSTD LOGIC CLK INSTD LOGIC ENLOCK OUTSTD LOGIC 1 LOCK 0 UNLOCKDATA BCD OUTSTD LOGIC VECTOR 15DOWNTO0 ENDENTITYCTRL ARCHITECTUREARTOFCTRLISSIGNALACC REG STD LOGIC VECTOR 15DOWNTO0 ACC用于暂存键盘输入的信息 REG用于存储输入的密码SIGNALNC STD LOGIC VECTOR 2DOWNTO0 SIGNALRR2 CLR BB QA QB STD LOGIC SIGNALR1 R0 STD LOGIC BEGIN 寄存器清零信号的产生进程 PROCESS CLK BEGINIFCLK EVENTANDCLK 1 THENR1 R0 R0 FLAG F ENDIF RR2 R1ANDNOTR0 CLR RR2 ENDPROCESS 按键输入数据的存储 清零进程KEYIN PROCESS BLOCKISSIGNALRST D0 D1 STD LOGIC BEGINRST RR2 PROCESS FLAG N RST ISBEGINIFRST 1 THENACC 0000000000000000 CLEARINPUTNC 000 ELSEIFFLAG N EVENTANDFLAG N 1 THENIFNC 4THENACC ACC 11DOWNTO0 上锁 开锁控制进程LOCK PROCESS BLOCKISBEGINPROCESS CLK DATA F ISBEGINIF CLK EVENTANDCLK 1 THENIFNC 4THENIFDATA F 2 1 THEN 上锁控制信号有效REG ACC 密码存储 QA 1 QB 0 ELSIFDATA F 0 1 THEN 开锁控制信号有效IFREG ACCTHEN 密码核对QA 0 QB 1 ENDIF ELSIFACC 1000100010001000 THEN 设置 8888 为万用密码QA 0 QB 1 ENDIF ENDIF ENDIF ENDPROCESS ENDBLOCKLOCK PROCESS 输出上锁 开锁控制信号ENLOCK QAANDNOTQB 输出显示信息DATA BCD ACC ENDARCHITECTUREART 4 3 4其他电路的VHDL源程序对于密码锁显示电路及电子密码锁整体组装的VHDL源程序 请读者根据图4 8密码锁的整体组装设计原理图自行完成 4 4系统仿真 硬件验证 4 4 1系统的有关仿真1 键盘输入去抖电路的仿真图4 9为键盘输入去抖电路的仿真结果图 图中的输出信号QQ0 QQ1 D OU

温馨提示

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

评论

0/150

提交评论