您好,欢迎访问三七文档
当前位置:首页 > 电子/通信 > 综合/其它 > 基于Verilog-HDL的数字密码锁的设计
淮南师范学院电气信息工程学院2013届电子信息工程专业课程设计报告1课程设计报告题目:基于VerilogHDL的数字密码锁的设计学生姓名:江留胜学生学号:0908030113系别:电气信息工程学院专业:电子信息工程届别:2013届指导教师:马立宪成绩淮南师范学院电气信息工程学院2013届电子信息工程专业课程设计报告2基于VerilogHDL的数字密码锁的设计学生:江留胜指导教师:马立宪电气信息工程学院电子信息工程1课程设计的任务与要求1.1课程设计的任务设计一个6位的数字密码锁,利用VerilogHDL语言来实现,并使用QuartusⅡ进行仿真与调试。1.2课程设计的要求设计一个简单的数字密码锁,密码为6位,其功能:1、在内部设置密码,其密码用6位十进制数表示。2、输入密码时,每次输入一位数,输入后按#进行确认。3、当输入的密码顺序与设置的密码一致时,密码锁打开,否则,则报警。4、具有重置密码的功能。输入密码正确后按*号键输入要重的密码,按#号键确认密码的重置,连续输入两次,则密码重置成功。使用VerilogHDL语言编写密码锁的开锁过程的程序,并借助QuartusⅡ软件对其进行仿真,观察实验波形。1.3课程设计的研究基础(设计所用的基础理论)密码锁就是要有一定的自我保护功能,并且能够定时更新防止破译的危险。密码锁控制器是硬件与软件的结合。VerilogHDL是一种优秀的硬件描述语言,它与C语言有许多相似之处,并继承和借鉴了C语言的多种操作符和语法结构,有C语言基础的人很快就能够学习并使用该语言。在本次计中,系统开发平台为QuartusⅡ。QuartusⅡ界面友好,使用便捷,被誉为业界最易用易学的EDA软件。在QuartusⅡ上可以完成设计输入、元件适配、时序仿真和功能仿真、编程下载整个流程,它提供了一种与结构无关的设计环境,是设计者能方便地进行设计输入、快速处理和器件编程。在本次设计中,采用的硬件描述语言是VerilogHDL。VerilogHDL也是目前应用最为广泛的硬件描述语言,并被IEEE采纳为IEEE#1064-1995标准。VerilogHDL可以淮南师范学院电气信息工程学院2013届电子信息工程专业课程设计报告3用来进行各种层次的逻辑设计,也可以进行数字系统的逻辑综合、仿真验证和时序分析。VerilogHDL适合算法级(Algorithm)、寄存器传输级(RTL)逻辑级(Logic)、门级(Gate)和版图级(Layout)等各个层次的电路设计和描述。使设计者在进行电路设计时不必过多考虑工艺实现的具体细节,VerilogHDL只需要根据系统设计的要求施加不同的约束条件,即可设计出实际电路。利用计算机的强大功能,在EDA工具的支持下,把逻辑验证与具体工艺库相匹配,将布线及延迟计算分成不同的阶段来实现,减少了设计者的繁重劳动。2数字密码锁系统方案制定2.1方案提出(以方框图模块化设计的形式给出至少2个方案,并简要说明)设计方案一:采用数字电路控制,用以CMOS构成的数字逻辑电路作为密码锁的控制核心,用verilogHDL硬件描述语言来进行仿真。设计一个简单的数字密码锁,密码为6位,其功能:在内部设置密码,其密码用6位十进制数表示。输入密码时,每次输入一位数,输入后并进行确定。若输入密码位与对应位相同,则通过并继续输入密码,直至输入结束,最后开锁。若有一位与对应密码位不同则报警,结束输入,若要开锁需重新输入。其流程图如下:淮南师范学院电气信息工程学院2013届电子信息工程专业课程设计报告4方案一的流程图方案二:采用以AT89C51单片机为核心控制的方案。能完成开锁,修改密码,密码错误报警,LCD显示密码等基本的密码锁功能。其主要具有如下功能:(1)密码通过键盘输入,若密码正确,则将锁打开。(2)报警功能。密码输入错误密码则蜂鸣器发出报警。(3)可以进行密码的重置。输入:数值0~9n=1输入一位并确认与内置密码一致报警n+1=6结束是开锁成功否是否开锁失败淮南师范学院电气信息工程学院2013届电子信息工程专业课程设计报告5方案二的框图2.2方案比较基于单片机的实现方案原理复杂,调试比较麻烦,所用到的器件比较多,而用数字电路的实现过程相对而言比较简单,软件易于实现,容易调试。2.3方案论证随着社会物质财富的日益增长,安全防盗已成为全社会关注的问题。基于EDA技术设计的电子密码锁,以其价格便宜、安全可靠、使用方便,受到了人们的普遍关注。而以现场可编程逻辑器件(FPGA)为设计载体,以硬件描述语言(VHDE)为主要表达方式,以QuartusⅡ开发软件和GW48EDA开发系统为设计工具设计的电子密码锁,由于其能够实现数码输入、数码清除、密码解除、密码更改、密码上锁和密码解除等功能,因此,能够满足社会对安全防盗的要求。2.4方案选择综合以上情况,本次设计采用第一种方案。3数字密码锁系统方案设计3.1各单元模块功能介绍及电路设计1、密码重置模块:该电路的的具体功能是:输入密码正确后按*号键输入要设置和更改的密码,按#号键确认密码设置与更改,连续输入两次,则密码设置成功。按要求,该部分要用到I2C总线E2PROM器件AT24C08。它的容量为1024×8(8Kbytes),支持2.7V~5.5V工作电压。当工作电压为5V的时候,其接口速度可以达淮南师范学院电气信息工程学院2013届电子信息工程专业课程设计报告6到400kHz。实验箱上的供电为3.3V,所以其接口速度最高只能达到100kHz。AT24C08与外部的I/O接口引脚连接电路如图所示。在本系统中I2CSCL、I2CSDA分别与FPGA连接。AT24C08与外部的I/O接口引脚连接电路2、键盘输入模块:键盘扫描过程:在本系统中采用3×4的键盘,因此要识别按键,只需要知道是哪一行和哪一列即可,为了完成这一识别过程,我们的思想是,首先固定输出3行为高电平,然后输出4列为低电平,在读入输出的3行的值,通常高电平会被低电平拉低,如果读入的3行均为高电平,那么肯定没有按键按下,否则,如果读入的3行有一位为低电平,那么对应的该行肯定有一个按键按下,这样便可以获取到按键的行值。同理,获取列值也是如此,先输出4列为高电平,然后在输出3行为低电平,再读入列值,如果其中有哪一位为低电平,那么肯定对应的那一列有按键按下。本实验箱上的3×4矩阵键盘的电路原理如图所示。淮南师范学院电气信息工程学院2013届电子信息工程专业课程设计报告73×4矩阵键盘电路原理图3、报警电路:根据设计要求,当密码输入连续三次错误,则报警电路连通,其中报警声要求为高声2.5KHz,低声1.25KHz交替报警,交替周期为1s(1Hz时钟,需要对系统时钟进行10K分频)。在整个试验平台的下方有两组跳线,位于左边的一组跳线用来选取喇叭的声源信号。当跳线位于左边的时候喇叭的声源来自FPGA,位于右边时声源来自AIC23模块的输入信号。位于右边的一组跳线用来控制喇叭的开关,当跳线位于左边时喇叭为开的状态,位于右边时为关的状态。要使喇叭发声请确认喇叭处于开的状态,并且声源是信号输入。扬声器(喇叭)电路图如图所示:淮南师范学院电气信息工程学院2013届电子信息工程专业课程设计报告8扬声器电路图4、密码锁处理单元电路如下图为处理单元逻辑结构图由6位的拨动开关设置的数码作为6选1多路选择器的数据输入,3位二进制计数器的输出作为多路选择器的选择数据输入。多路选择器的输出与BIT开关产生的数码相比较,两者相同时输出B为1,不同时为0.。复位后,控制单元发出CLR命令使计数器清零,在控制信号的作用下,多路选择器的输入数据从低位到高位逐位被选择出来。控制单元根据处理电路反馈回来的B状态信息,获得各次比较的结果。开锁密码位数的确定由比较器完成,当输入数码的位数为8位时,比较器输出M为1,否则为0。淮南师范学院电气信息工程学院2013届电子信息工程专业课程设计报告9处理单元逻辑结构图5、密码锁控制模块控制器实际上是一个有限状态机,下图为它的状态流程图。它一共有六个状态:准备状态S0、密码输入状态S1、密码设置状态S2、确认状态S3、开锁状态S4和报警状态S5。淮南师范学院电气信息工程学院2013届电子信息工程专业课程设计报告10CCLR报警OPEN准备确认ERRORBMTRYREADTRYC=C+1CNTREAD淮南师范学院电气信息工程学院2013届电子信息工程专业课程设计报告11准备状态S0:系统开锁、报警或上电后进入准备状态,这时系统不接收除READY信号外的任何输入信号。密码输入状态S1:在该状态下,如果按下“READY”则保持该状态不变;如果按下“OK”和“OPEN”则转到报警状态;如果有数据输入,则控制器输入一个DATA-IN信号,输出RD和CNP1信号,从RAM中读取密码进行比较,同时使计数器加1;检查计数是否计数到100,若CNTe1有效,表示已经接收到四个正确的密码,可以转入下一个状态,否则返回本状态,继续接收其它密码。检查Dep信号状态,Dep=1则密码正确,进入确认状态,反之则输出CNP2信号进入报警状态;如果仍然有数据输入,则说明输入密码错误,则输出CNP2信号进入报警状态。密码设置状态S2:在确认状态下按“SET”键进入该状态,EN信号有效。该状态首先由控制器发RESET-CNT信号;检查是否有数据输入,如果没有则等待;若有数据输入,控制器则输出WR和CNP1信号,向RAM发出信号,并使计数器加1,检查计数器是否计数到100,若CNTe1有效,表示已经接收到四个正确的密码,进入确认状态,否则返回本状态,继续接收其它密码。确认状态S3:输入密码正确后进入该状态。密码输入得到确认才可以进入开锁状态,密码设置完毕后,只有得到确认才可生效,并返回准备状态。开锁状态S4:输入密码确认后进入该状态,此时按“OPEN”键,控制器便发出SLT信号开锁并返回到准备状态。报警状态S5:每次进入该状态首先检查计数器2是否计数到01。若输入错误,则CNTe2有效,控制器输出SLB信号,报警电路报警。3.2电路参数的计算及元器件的选择I2C总线E2PROM器件AT24C08实验箱供电电源5V导线若干键盘按键与编码的对应表编码000000010010001101000101按键字符012345编码011001111000100110101011按键字符6789#*淮南师范学院电气信息工程学院2013届电子信息工程专业课程设计报告12控制状态转换表3.3特殊器件的介绍通常在一个键盘中使用了一个瞬时接触开关,并且用如图2所示的简单电路,微处理器可以容易地检测到闭合。当开关打开时,通过处理器的I/O口的一个上拉电阻提供逻辑1;当开关闭合时,处理器的I/O口的输入将被拉低得到逻辑0。图2简单键盘电路但是开关并不完善,因为当它们被按下或者被释放时,并不能够产生一个明确的1或者0。尽管触点可能看起来稳定而且很快地闭合,但与微处理器快速的运行速度相比,这种动作是比较慢的。当触点闭合时,其弹起就像一个球。弹起效果将产生如图3所示的好几个脉冲。弹起的持续时间通常将维持在5ms∼30ms之间。如果需要多个键,则可以将每个开关连接到微处理器上它自己的输入端口。然而,当开关的数目增加时,这种方法将很快使用完所有的输入端口。图3按键抖动淮南师范学院电气信息工程学院2013届电子信息工程专业课程设计报告13键盘上阵列这些开关最有效的方法(当需要5个以上的键时)就形成了一个如图4所示的二维矩阵。当行和列的数目一样多时,也就是方型的矩阵,将产生一个最优化的布列方式(I/O端被连接的时候)。一个瞬时接触开关(按钮)放置在每一行与线一列的交叉点。矩阵所需的键的数目显然根据应用程序而不同。每一行由一个输出端口的一位驱动,而每一列由一个电阻器上拉且供给输入端口一位。图43.4系统整体电路图1、系统电路组成:密码锁处理电路密码锁控制电路键盘输入电路报警电路密码重置电路淮南师范学院电气信息工程学院2013届电子信息工程专业课程设计报告142、密码锁的系统结构框图:4数字密码锁系统仿
本文标题:基于Verilog-HDL的数字密码锁的设计
链接地址:https://www.777doc.com/doc-6391080 .html