欢迎来到三一办公! | 帮助中心 三一办公31ppt.com(应用文档模板下载平台)
三一办公
全部分类
  • 办公文档>
  • PPT模板>
  • 建筑/施工/环境>
  • 毕业设计>
  • 工程图纸>
  • 教育教学>
  • 素材源码>
  • 生活休闲>
  • 临时分类>
  • ImageVerifierCode 换一换
    首页 三一办公 > 资源分类 > PPT文档下载  

    电子密码锁的设计与分 EDA技术综合应用实例与分析 ppt课件.ppt

    • 资源ID:1522761       资源大小:1.02MB        全文页数:73页
    • 资源格式: PPT        下载积分:16金币
    快捷下载 游客一键下载
    会员登录下载
    三方登录下载: 微信开放平台登录 QQ登录  
    下载资源需要16金币
    邮箱/手机:
    温馨提示:
    用户名和密码都是您填写的邮箱或者手机号,方便查询和重复下载(系统自动生成)
    支付方式: 支付宝    微信支付   
    验证码:   换一换

    加入VIP免费专享
     
    账号:
    密码:
    验证码:   换一换
      忘记密码?
        
    友情提示
    2、PDF文件下载后,可能会被浏览器默认打开,此种情况可以点击浏览器菜单,保存网页到桌面,就可以正常下载了。
    3、本站不支持迅雷下载,请使用电脑自带的IE浏览器,或者360浏览器、谷歌浏览器下载即可。
    4、本站资源下载后的文档和图纸-无水印,预览文档经过压缩,下载后原文更清晰。
    5、试题试卷类文档,如果标题没有明确说明有答案则都视为没有答案,请知晓。

    电子密码锁的设计与分 EDA技术综合应用实例与分析 ppt课件.ppt

    第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是电子密码锁的输入电路框图,由键盘扫描电路、弹跳消除电路、键盘译码电路、按键数据缓存器,加上外接的一个34矩阵式键盘组成。,图4.2 密码锁的输入电路框图,1矩阵式键盘的工作原理 矩阵式键盘是一种常见的输入装置,在日常的生活中,矩阵式键盘在计算机、电话、手机、微波炉等各式电子产品上已经被广泛应用。图4.3是一个34矩阵式键盘的面板配置图,其中数字09作为密码数字输入按键,*作为“上锁”功能按键,#作为“解锁/清除”功能按键。,图4.3 34矩阵式键盘的面板配置,表4.1 按键位置与数码关系,2密码锁输入电路各主要功能模块的设计 1) 时序产生电路 本时序产生电路中使用了三种不同频率的工作脉冲波形:系统时钟脉冲(它是系统内部所有时钟脉冲的源头,且其频率最高)、弹跳消除取样信号、键盘扫描信号。 2) 键盘扫描电路 扫描电路的作用是用来提供键盘扫描信号(表4.1中的KY3KY0)的,扫描信号变化的顺序依次为11101101101101111110.依序地周而复始。,3) 弹跳消除电路 由于本设计中采用的矩阵式键盘是机械开关结构,因此在开关切换的瞬间会在接触点出现信号来回弹跳的现象,对于电子密码锁这种灵敏度较高的电路这种弹跳将很可能会造成误动作输入,从而影响到密码锁操作的正确性。 从图4.4中可以观察出弹跳现象产生的原因,虽然只是按下按键一次然后放掉,然而实际产生的按键信号却不止跳动一次,经过取样信号的检查后,将会造成误判断,以为键盘按了两次。如果调整抽样频率(如图4.5所示),可以发现弹跳现象获得了改善。,图4.4 弹跳现象产生错误的抽样结果,图4.5 调整抽样频率后得到的抽样结果,弹跳消除电路的实现原理如图4.6所示,先将键盘的输入信号D_IN做为电路的输入信号,CLK是电路的时钟脉冲信号,也就是取样信号,D_IN经过两级D触发器延时后再使用RS触发器处理。,图4.6 弹跳消除电路的内部实现原理图,此处RS触发器的前端连接和非门的处理原则是: (1) 因为一般人的按键速度至多是10次/秒,亦即一次按键时间是100 ms,所以按下的时间可估算为50 ms。以取样信号CLK的周期为8 ms计,则可以取样到6次。 (2) 对于不稳定的噪声,在4 ms以下则至多抽样一次。 (3) 在触发器之前,接上AND-NOT之后,SR的组态如表4.2所示。,表4.2 RS触发器真值表,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.VHDLIBRARY IEEE; USE IEEE.STD_LOGIC_1164.ALL; ENTITY DCFQ IS PORT(CLK, CLRN, PRN, D: IN STD_LOGIC; Q: OUT STD_LOGIC);,END ENTITY DCFQ ; ARCHITECTURE ART OF DCFQ IS BEGIN PROCESS (CLK, CLRN, PRN) BEGINIF CLRN=0 AND PRN=1 THEN Q=0; ELSIF CLRN=1 AND PRN=0 THEN Q=1;,ELSIF CLKEVENT AND CLK=1 THEN Q =D; END IF ; END PROCESS ; END ARCHITECTURE ART; -DEBOUNCING.VHDLIBRARY IEEE; USE IEEE.STD_LOGIC_1164.ALL; LIBRARY ALTERA; USE ALTERA.MAXPLUS2.ALL;,ENTITY DEBOUNCING IS PORT(D_IN, CLK: IN STD_LOGIC; DD1, DD0, QQ1, QQ0 : OUT STD_LOGIC; D_OUT, D_OUT1: OUT STD_LOGIC ); END ENTITY DEBOUNCING ; ARCHITECTURE ART OF DEBOUNCING IS COMPONENT DCFQ IS PORT(CLK, CLRN, PRN, D: IN STD_LOGIC; Q: OUT STD_LOGIC);,END COMPONENT DCFQ; SIGNAL VCC, INV_D : STD_LOGIC ; SIGNAL Q0, Q1 : STD_LOGIC ; SIGNAL D1, D0 : STD_LOGIC ; BEGIN VCC = 1 ; INV_D = NOT D_IN ;,U1: DCFQ PORT MAP (CLK = CLK, CLRN = INV_D, PRN = VCC, D =VCC , Q = Q0); U2: DCFQ PORT MAP (CLK = CLK, CLRN = Q0, PRN = VCC, D =VCC , Q = Q1); PROCESS (CLK) BEGINIF CLKEVENT AND CLK=1 THEN D0 = NOT Q1; D1 = D0; END IF ;,END PROCESS ; DD0 = D0; DD1 = D1; QQ1 = Q1; QQ0 = Q0; D_OUT = NOT (D1 AND NOT D0); D_OUT1 = NOT Q1 ; END ARCHITECTURE ART;,4.3.2 密码锁输入电路的VHDL源程序-KEYBOARD.VHDLIBRARY IEEE; USE IEEE.STD_LOGIC_1164.ALL; USE IEEE.STD_LOGIC_ARITH.ALL ; USE IEEE.STD_LOGIC_UNSIGNED.ALL ; ENTITY KEYBOARD IS,PORT (CLK_1K: IN STD_LOGIC ; -系统原始时钟脉冲(1 kHz) KEY_IN: IN STD_LOGIC_VECTOR (2 DOWNTO 0); -按键输入 CLK_SCAN: OUT STD_LOGIC_VECTOR (3 DOWNTO 0) ; -( 仿真时用)键盘扫描序列 DATA_N: OUT STD_LOGIC_VECTOR(3 DOWNTO 0) ; -数字输出,DATA_F: OUT STD_LOGIC_VECTOR(3 DOWNTO 0) ; -功能输出 FLAG_N: OUT STD_LOGIC ; -数字输出标志 FLAG_F: OUT STD_LOGIC ; -功能输出标志 CLK_CTR: OUT STD_LOGIC; -控制电路工作时钟信号 CLK_DEBOUNCE: OUT STD_LOGIC -(仿真时用)去抖电路工作时钟信号 );,END ENTITY KEYBOARD ; ARCHITECTURE ART OF KEYBOARD IS COMPONENT DEBOUNCING ISPORT(D_IN: IN STD_LOGIC ; CLK: IN STD_LOGIC ; D_OUT: OUT STD_LOGIC ) ; END COMPONENT DEBOUNCING;,SIGNAL CLK: STD_LOGIC ; -电路工作时钟脉冲 SIGNAL C_KEYBOARD: STD_LOGIC_VECTOR(1 DOWNTO 0); -键扫信号“00-01-10-11”寄存器 SIGNAL C_DEBOUNCE: STD_LOGIC ; -去抖时钟信号 SIGNAL C: STD_LOGIC_VECTOR(2 DOWNTO 0) ; -键盘输入去抖后的寄存器,SIGNAL N , F: STD_LOGIC_VECTOR(3 DOWNTO 0) ; -数字、功能按键译码值的寄存器 SIGNAL FN , FF: STD_LOGIC ; -数字、功能按键标志值数字、功能按键 SIGNAL SEL: STD_LOGIC_VECTOR (3 DOWNTO 0) ; BEGIN,- 内部连接DATA_N = N ; DATA_F = F ; FLAG_N = FN ; FLAG_F = FF ; CLK_CTR = CLK ; -扫描信号发生器 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”, 大约16 Hz-C_DEBOUNCE = Q(1) ; -仿真时用 -C_KEYBOARD = Q(5 DOWNTO 4) ; -仿真时用 CLK = Q(0) ; END PROCESS;,CLK_DEBOUNCE=C_DEBOUNCE; SEL = 1110 WHEN C_KEYBOARD=0 ELSE1101 WHEN C_KEYBOARD=1 ELSE1011 WHEN C_KEYBOARD=2 ELSE0111 WHEN C_KEYBOARD=3 ELSE1111; CLK_SCAN = SEL ; END BLOCK COUNTER ; -键盘去抖,DEBOUNUING : BLOCK IS BEGINU1: DEBOUNCING PORT MAP (D_IN = 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 );,END BLOCK DEBOUNUING ; -键盘译码 KEY_DECODER : BLOCK SIGNAL Z : STD_LOGIC_VECTOR(4 DOWNTO 0) ; -按键位置BEGINPROCESS(CLK) BEGIN Z = C_KEYBOARD IF CLKEVENT AND CLK = 1 THEN,CASE Z IS WHEN 11101 = N N N N N N N N N N N = 1111 ;,END CASE ; END IF ; IF CLKEVENT AND CLK = 1 THENCASE Z IS WHEN 11011 = F F F = 1000 ; END CASE ; END IF ; END PROCESS ;,FN = NOT ( N(3) AND N(2) AND N(1) AND N(0) ) ; FF = F(2) OR F(0) ; END BLOCK KEY_DECODER ; END ARCHITECTURE ART;,4.3.3 密码锁控制电路的VHDL源程序-CTRL.VHDLIBRARY IEEE; USE IEEE.STD_LOGIC_1164.ALL; USE IEEE.STD_LOGIC_ARITH.ALL; USE IEEE.STD_LOGIC_UNSIGNED.ALL; ENTITY CTRL IS,PORT (DATA_N: 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_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;,-按键输入数据的存储、清零进程 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) ,-上锁/开锁控制进程 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 IF ; 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_BCD= ACC ; END ARCHITECTURE ART;,4.3.4 其他电路的VHDL源程序 对于密码锁显示电路及电子密码锁整体组装的VHDL源程序,请读者根据图4.8 密码锁的整体组装设计原理图自行完成。,4.4 系统仿真/硬件验证,4.4.1 系统的有关仿真 1. 键盘输入去抖电路的仿真 图4.9为键盘输入去抖电路的仿真结果图,图中的输出信号QQ0,QQ1,D_OUT1,DD0,DD1是为便于仿真时观察中间结果而增加的观测点的输出,调试好后程序中的相应语句应注释掉。,图4.9 键盘输入去抖电路DEBOUNCING.VHD的仿真结果图,2密码锁输入电路的仿真 图4.10为密码锁输入电路的仿真结果图,图中的输出信号CLK_SCAN,C_DEBOUNCE是为便于仿真时观察中间结果而增加的观测点的输出,调试好后程序中的相应语句应注释掉。,图4.10 密码锁输入电路仿真结果图,3密码锁控制电路的仿真 图4.11、图4.12分别是两个密码锁控制电路仿真结果图。其中图4.11的仿真过程为先输入上锁密码“1234”,再按下上锁键激活电锁,接着输入万能解锁密码“8888”,最后按下解锁键解锁。,图4.11 密码锁控制电路仿真结果图(一),图4.12 密码锁控制电路仿真结果图(二),4. 其他电路的仿真请读者根据实际需要自行完成。,4.4.2 系统的硬件验证请读者根据自己所拥有的实验设备自行完成。,4.5 设计技巧分析,(1) 密码锁输入电路KEYBOARD.VHD中对各种分频信号/信号序列的设计有独到之处。 (2) 键盘输入去抖电路的设计程序DEBOUNCING.VHD在实际系统的开发中有较好的参考价值。 (3) 密码锁控制电路CTRL.VHD中对于数据的更新及移位方法比较好。,(4) 在密码锁输入电路等模块的程序的设计和仿真中,为了便于观察一些中间结果,在程序中增加了一些观测输出点。,4.6 系统扩展思路,(1) 本系统基本达到作为数字密码锁的绝大部分功能,但还有许多不足或需完善的地方。比如说采用34的通用机械键盘受到键盘数量的限制,在很大的程度上限制了其功能的扩展。 (2) 设计外围电路:系统用方波信号源,直流工作电源。 (3) 若为毕业设计,可要求设计调试程序、外围电路等,还可要求设计制作整个系统,包括PCB的制作。,

    注意事项

    本文(电子密码锁的设计与分 EDA技术综合应用实例与分析 ppt课件.ppt)为本站会员(牧羊曲112)主动上传,三一办公仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对上载内容本身不做任何修改或编辑。 若此文所含内容侵犯了您的版权或隐私,请立即通知三一办公(点击联系客服),我们立即给予删除!

    温馨提示:如果因为网速或其他原因下载失败请重新下载,重复下载不扣分。




    备案号:宁ICP备20000045号-2

    经营许可证:宁B2-20210002

    宁公网安备 64010402000987号

    三一办公
    收起
    展开