基于vhdl的电子密码锁设计与仿真内容摘要:

本节将对电子密码锁的开发环境 Quartus II和最后的实现环境 CPLD进行简要介绍。 Quartus II 简介 本设计是基于 Quartus II 的, 在此 对它作一些介绍。 QuartusII[12]是 Altera 提供的 FPGA/CPLD 开发集成环境, Altera 是世界上最大的可编程逻辑器件供应商之一。 QuartusII 在 21 世纪初推出,是 Altera 前一代 FPGA/CPLD集成开发环境 MAX+PLUSII 的更新换代产品,其界面友好,使用便捷。 QuartusII 提供了一种与结构无关的设 计环境,使设计者能方便地进行设计输入、快速处理和器件编程。 Altera 的 QuartusII 提供了完整的多平台设计环境,能满足各种特定设计的需要,也是单芯片可编程系统( SOPC)设计的综合性环境和 SOPC 开发的基本设计工具,并为Altera DSP 开发包进行系统模型设计提供了集成综合环境。 QuartusII 设计工具完全支持VHDL、 Verilog 的设计流程,其内部嵌有 VHDL、 Verilog 逻辑综合器。 QuartusII 也可以利用第三方的综合工具,如 Leonardo Spectrum、 Synplify Pro、 FPGA Compiler II,并能直接调用这些工具。 同样, Quartus II 具有仿真功能,同时也支持第三方仿真工具,如ModelSim。 此外, Quartus II 与 MATLAB 和 DSP Builder 结合,可以进行基于 FPGA 的DSP 系统开发和数字通信模块的开发。 Quartus II 包括模块化得编译器。 编译器包括的功能模块由分析 /综合器( Analysis amp。 Synthesis)、适配器( Fitter)、装配器( Assembler)、时序分析器( Timing Analyzer)、设计辅助模块( Design Assistant)、 EDA 网表文件生成器( EDA Netlist Writer)、编辑数据接口( Compiler Database Interface)等。 可以通过选择 Start Compiler 来运行所有的编译器模块,也可以通过选择 Start 单独运行各个模块。 还可以通过选择 Compiler Tool( Tools菜单),在 Compiler Tool 窗口中运行该模块来启动编译器模块。 在 Compiler Tool 窗口中,可以打开该模块的设置文件或报告文件,或打开其他相关窗口。 Quartus II 编译器支持的硬件描述语言有 VHDL、 Verilog 和 AHDL。 Quartus II 支持层次化设计,可以在一个新的编辑输入环境中对使用不同输入设计方式完成的模块(元件)进行调用,从而解决了原理图与 HDL 混合输入设计的问题。 在 贵州大学本科毕业论文(设计) 第 4 页 设计输入之后, Quartus II 的编译器将给出设计输入的错误报告。 可以使用 Quartus II 带有的 RTL Viewer 观察综合后的 RTL 图。 CPLD 简介 CPLD (Complex Programmable Logic Device)复杂可编程逻辑器件 [12],是从 PAL 和GAL 器件发展出来的器件,相对而言规模大,结构复杂,属于大规模集成电路范围。 早期的 CPLD 大多采用 EPROM 编程技术,其编程过程与简单 PLD 一样,每次编程需要在专用或通过设备上运行。 后来采用 E2PROM 和闪烁存储器技术,使 CPLD 具有了 “在系统可编程( ISP) ”特性。 所谓在系统可编程是指未编程的 ISP 器件可以直接焊接在印制电路板上,然后通过计算机的数据传输端口和专用的编程电缆对焊接在电路板上的 ISP 器件直接多次编程,从而使器件具有所需要的逻辑功能。 这种编程不需要使用专用的编程器,因为已将 原来属于编 程器的编程电路和升压电路集成在 ISP 器件内部。 ISP 技术使得调试过程不需要反复拨插 芯片,从而不会产生引脚弯曲变形现象,提高了可靠性,而且可以随时对焊接在电路板上的 ISP 器件的逻辑功能进行修改,从而加快了数字系统的调试过程。 目前。 ISP 已成为系统在线远程升级的技术手段。 目前,绝大多数 FPGA 器件具有 ISP 功能。 例如, Altera 公司的 MAX7000S( 5V)、MAX7000A( )和 MAX7000B( )系列, Xilinx 公司的 XC9500 系列以及 Lattice公司的 CPLD 器件等。 贵州大学本科毕业论文(设计) 第 5 页 第二章 开发方案与论证 本章将首先介绍数字锁两种不同的开发方案,从方案的原理,实现的成本进行比较。 然后论证本设计采用的方案 —— 串行方案。 开发方案 开发方案有串行开发方案和并行开发方案下面分别介绍 并行开发方案 并行开发方案,密码采用并行输入方式。 密码输入完毕后再一次性比较。 原理图如图 所示。 图 并行开发原理图 数据通过键盘输入,消抖后编码存入数据缓冲器。 在控制器的控制下与预存密码进行比较正确则开启密码锁。 达到错误次数报警。 贵州大学本科毕业论文(设计) 第 6 页 串行开发方案 串行开发方案,密码采用串行输入。 边输入 , 边比较。 多拨 、 少拨均视为错误。 原理图如图 所示。 图 串行开发原理图 数据通过键盘输入,消抖后编码。 在控制器的控制下与预存密码进行比较正确则开启密码。 否则视为错误开启,达到错误次数报警。 方案论证 串行开发所需硬件资源少,本设计采用串行开发方案。 依据上述对数字锁系统的功能要求,其系统整体框图如图 所示,它将系统划分为控制器和受控电路两部分,受控电路 由消抖电路模块、编码器、比较器、密码预置、计数器、触发器等模块组成。 数字密码锁控制系统的输入信号包括:数字密码键盘 0~ 9,上锁键 STEUP,复位键START,解除锁定键 ISETUP,开锁键 OPEN;输出信号包括:开门指示灯 LD,错误指示灯HD,报警器 BG。 数字锁的密码采用 3x4 键盘输入, 由于 3x4 键盘输出为行线 /列线信号,所以首先经编码器编码(图中 kr,kc 为总线信号)将行线 /列线信号变为相应 0~ 9 的 8421BCD 码并与原存储于系统中的密码相比较,因而需要有一个 4 位等值比较器,并将比较结果 DEP反馈给控制器。 贵州大学本科毕业论文(设计) 第 7 页 图 数字密码锁 系统电路整体框图 编码器模块的作用 是将键盘输入的信号编成 BCD 码,并且每键入一个数码,应向控制器送一个脉冲 DATA_IN 表示有数据输入。 比较器模块的作用是将输入的密码和内置密码进行比较,并将结果 DEP 反馈给控制器。 密码预置模块的作用是预置内部密码,因为内部预置密码采用 8 位十进制数,且用BCD 码表示,需 32 个输入端送入,所以可选用 32 选 4 数据选择 电路来选择密码。 由于密码是串行输入,依次分别于一个预置码进行比较,因为 8 个十进制预置码是提前预置好的,所以还需要一个计数器来选择目前要比较第几个数据。 32 选 4 数据选择器的 3 位地址码用一个模 8 计数器控制。 控制器向计数器提供一个清零信号 RESET_CNP和时钟信号 CNP,每次通过键盘输入一个密码数字,控制器向计数器提供一个时钟脉冲CNP,使计数器加 1,当计数器到 8 时,说明 8 个密码数字已经比较完毕,此时计数器产生进位信号 CO8 反馈给控制器,控制器进入待启动状态或预警状态。 贵州大学本科毕业论文(设计) 第 8 页 由于输入都采用键盘输入,其按下时刻和持续时间长短是随机的 ,且存在因簧片反弹引起的电平抖动现象。 必须在每个开关后面安排一个消抖同步模块,以保证系统能真确捕捉到输入脉冲。 消抖同步模块的作用是保证系统能捕捉到输入脉冲,并保证没按一次键只形成一个宽度等于系统时钟周期的脉冲。 报警计数器模块的作用是,每一次开启错误,控制器向报警计数器提供一个时钟信号 HD,使计数器加 1,当计数器到 3 时,说明错误次数达到 3 次,模 3 进位信号 CO3反馈给控制器,控制器发出报警信号 BG。 解除锁定或正确开门后控制器向报警计数器发出清零信号 ISETUP,使计数器清零。 控制器模块在密码系统每收到一个输入的密码数字时,应向比较计数器发出一个时钟信号 CNP。 当密码系统在按下开锁键 OPEN 前收到第 9 个时钟信号时,应装入预警状态,等待按下开锁键 OPEN 后发出错误信号 HD。 因此,密码锁系统没输入一个密码数字,应向控制器送入一个脉冲 DATA_IN,显然此信号也应同步,即形成宽度只占一个系统时钟的脉冲。 密码锁系统的输出有开锁指示灯 LD(绿灯)、错误指示灯 HD( 红灯)和扬声器。 LD 和 HD 由触发器控制。 控制器分别向触发器提供一个置位信号 S_LD、 S_HD,按下上锁键时向触发器提供一个复位 信号 RESET_L,用来控制绿灯 LD、红灯 HD 工作。 贵州大学本科毕业论文(设计) 第 9 页 第三章 电路模块功能设计 数字密码锁系统电路设计采用自顶而下的设计方法。 自顶而下设计方法的主要思想是对数字系统分模块,分层次进行设计,这样可以将复杂的设计划分成若干个相对简单的模块,不同的模块可完成数字系统中某一部分的具体功能,从而使电路设计大为简化。 本章对个模块进行功能设计,即各模块的功能描述。 将分受控电路和控制电路两部分描述。 受控电路 受控电路的主要版块有,键盘编码电路模块、消抖电路模块、比较器模块、密码预置木 块、比较计数器模块和报警计数模块 键盘编码 电路模块 数字密码锁控制系统的输入信号包括:数字密码键盘 0~9,复位键 START,开锁键OPEN,上锁键 SETUP,功能键 ISETUP。 4*4 矩阵式键盘完全能满足上述要求,且经济美观。 根据需要,键盘布局如图 所示。 图 键盘按键布局 根据 4*4 矩阵式键盘特点,采用行列式编码方式。 为减少硬件的开销,只对数字 0~9进行编码。 行线 kc 送高电平( 1111),列线 kr 送低电平( 000)。 当没有按键时,行线和列线是断开的。 当有按键时,行线 和列线信号将相应有所改变,据此,可对此类信号 贵州大学本科毕业论文(设计) 第 10 页 进行编码,达到识别的目的。 键盘的输入原理如图 所示。 图 键盘编码原理 按键消抖 电路模块 由于本设计采用的是键盘输入,按键时手部的抖动,输入信号就会产生不稳定脉冲。 如果信号不加以处理就可能会导致错误的信号识别。 因此每个输入端就各需要一个消抖电路。 也就是说,输入信号波形有抖动,但经过消抖之后,其输出也为正规的矩形波。 如图 所示的信号波形,在正常信号的上升沿和下降沿含有一些随即干扰信号,或随即抖动。 为了去除这些抖动干扰脉冲,可采用如图 所示电路来实现这个目标。 图 信号上升与下降沿都含有随机干扰抖动信号 图 所示电路有 2 个上升沿 D 触发器和一个 2 输入与门构成。 设 key_in 是输入信号, clk 是消抖电路本身的工作时钟。 2 个 D 触发器连接成同步时序方式,即将他们的输入端都连在一起。 输入信号以移位串行方式向前传递。 信号的输出口是 key_out。 当信号输入电路后,能在 key_out 输出脉冲信号的条件是,必须 2 个 D 触发器的输出端都同为 1,从而 2 输入与门来输出高电平。 由于干扰信号是一群宽度狭窄的随机信号,在串入是,很难同时时与门输出为 1,而只有正常信号才有足够的宽度通过此电路,从而起到 “滤波 ”功能。 贵州大学本科毕业论文(设计) 第 11 页 图 消抖电路 密码比较 电路模块 密码验证用于将编码器转化后的 8421BCD 码与预置密码进行比较。 因此只需要比较两组数据是否相等,不需要知道谁大谁小,所以采用等值比较器。 设比较器的 4 个输入端为 y0~ y3,输出端为 f0~ f3,当比较两数正确时输出一个 dep有效信号 “1”给控制器,否则输出为 “0”。 如图 所示。 图 密码验证 密码比较计数器电路模块 本设计采用串行输入,所以还得有计数器,用于判断 密码比较到第几个数字和密码是否输入完毕。 计数器是。
阅读剩余 0%
本站所有文章资讯、展示的图片素材等内容均为注册用户上传(部分报媒/平媒内容转载自网络合作媒体),仅供学习参考。 用户通过本站上传、发布的任何内容的知识产权归属用户或原始著作权人所有。如有侵犯您的版权,请联系我们反馈本站将在三个工作日内改正。