您好,欢迎访问三七文档
当前位置:首页 > 电子/通信 > 综合/其它 > 基于VHDL的数字密码锁设计
河南机电高等专科学校结课大作业河南机电高等专科学校《职业技能培训》结课大作业基于VHDL的数字密码锁设计姓名:专业班级:学号:任课教师:时间:成绩:河南机电高等专科学校结课大作业基于VHDL的数字密码锁设计医电08级1班任课老师:摘要:本文主要介绍运用删,技术设计数字密码锁统分解为若干子系统,并且进一步细划为若干模块,然后用硬件描述语言VHDL来设计这些模块,并且分别进行软件和硬的仿真。仿真结果表明:该数字密码锁能够校验3位十进制数密码,且可以预置密码,显示输入密码,具有输入错误指示有效指示等相应的状态指示。该密码锁体积小,功耗低,操作简单,不怕掉电,维护和升级都十分方便,具有较好的应用前景。关键词:QUARlrIISII;VHDL;数字密码锁河南机电高等专科学校结课大作业目录1.概述...................................................................................................42.设计要求...........................................................................................43.总体设计...........................................................................................44.各单元电路的设计和实现...............................................................55.功能仿真及其结果.........................................................................126.编译、下载及调试.........................................................................137.总结与展望.....................................................................................21参考文献...............................................................................................22河南机电高等专科学校结课大作业1.概述随着社会物质财富的日益增长,安全防盗已成为社会问题。而锁自古以来就是把守门户的铁将军,人们对它要求甚高,既要安全可靠地防盗,又要使用方便,这也是制者长期以来研制的主题。数字密码锁是实际生活中运用广泛的一种数字电路,主要功能是对某些操作进行加密保护,目的是避免无权人员使用某些设施或者进行越权操作,例如自动柜员机,自动售货机,门卡系统或者保险柜都含有这种密码器[1]。数字密码锁是集计算机技术、电子技术、数字密码技术为一体的机电一体化高科技产品,具有安全性高,使用方便等优点圈。2.设计要求1)密码预先在内部设置,可以设置任意位密码,这里采用6位十进制数字作为密码;2)密码输入正确后,密码器将启动开启装置。这里密码器只接受前6位密码输入,并以按键音提示,多余位数的密码输入将不起作用;3)允许密码输入错误的最大次数为三次,密码错误次数超过三次则进入死锁状态,并发出警报;4)报警后,内部人员可以通过按键SETUP使密码器回到初始等待状态;5)密码器具有外接键盘,可以用来输入密码和操作指令;3.总体设计先对数字密码器进行顶层设计并写出相应的VHDL程序,然后将数字密码器划分为分频模块、消抖同步模块、使能电路模块、密码预置模块、编码模块、比较模块、计数器选择模块、数码管显示译码模块、指示电路模块、数码管扫描模块、误码模块和控制器模块12个部分,将各个模块一一实现。顶层设计中各个模块是作为元件来引用的,因此这里需要将各个模块设计成独立设计实体的具体形式,这样便可以在顶层设计来引用这些模块了。3.1数字密码锁的主要功能河南机电高等专科学校结课大作业(1)密码器的工作时钟由外部晶振来提供,时钟频率为4MHz[印;(2)密码的设置和输入由外接键盘完成;(3)密码可以由锁的所有者随意设置,并可更改,这里采用3位十进制数字作为密码,不怕断电,这是本设计的一个创新点,(4)开锁时,不限制密码的输入位数,这将增强密码锁的保密性,(5)不小心输错1位密码,可以重新输入;3.2根据上述的功能分析,可以得到如图3-1所示的数字密码锁的系统结构图图3-1数字密码锁的系统结构图4.各单元电路的设计和实现首先,密码器通过外接键盘输入数字密码,然后密码需要经过10线至4线编码器变成BCD码;接下来通过4位比较器与存储在系统中的预置密码进行比较,同时将输入的密码通过数码管扫描模块和数码管显示译码模块显示出来;最后将比较的结果DEP送到控制器模块中。本次设计中的密码是串行输入的,每次分别与一个预置码比较。可见,6个十进制的密码分别有24个端口送入,因此需要使用一个数据选择器来进行选择。这里,数据选择器是一个4位的六选一数据选择器,它的两位选择信号是由一个模6的计河南机电高等专科学校结课大作业数器来给出的,计数器的控制信号是由控制信号RESET和时钟信号CNP是由控制模块来提供的。外接键盘每送一个密码数字,计数器的计数值加1。如果计数器的数值计到6时,那么表示6个密码已经输入完毕。接下来计数器应向控制器发出反馈信号FULL,这表示控制器已经可以进入到启动状态。计数器2用来记录输入密码错误次数,当密码输入错误时,密码器将发出警报,并提示用户还可以输入密码的次数。当密码输入错误的达到次数三次时,计数器2应向控制器反馈信号NOTC,密码器将进入死锁状态,并发出警报。这时只能通过内部按键SETUP使密码器回到初始状态。4.1数字密码器的实现密码器的顶层设计由各个子模块构成。其中各个模块是以元件的形式给出的,首先必须进行元件的说明,然后进行元件的例化调用就可以构成顶层模块。顶层设计的模块图如图4-1所示。图4-1顶层设计模块图由上图可以给出数字密码器的对外接口信号,即输入和输出信号。1、数字按键输入信号A0~A9,用来进行密码的输入操作;2、外部时钟信号CLK,用来作为内部操作时钟和驱动蜂鸣器;3、按键输入信号READY,用来设置密码器的准备操作状态;4.1.1分频模块设计1、分频模块的输入、输出河南机电高等专科学校结课大作业图4-2分频模块图分频模块的模块图如图4-2所示,可以定义输入、输出信号如下:CLK:系统输入时钟,300Hz。CLK_DIV1、CLK_DIV2:分频输出时钟信号,分别为10Hz、1Hz。2、模块描述在数字密码器中,它的外部时钟信号CLK是由外部晶振来提供的,时钟频率为300Hz。对CLK进行分频输出两路时钟CLK_DIV1和CLK_DIV2,其中CLK_DIV1作为按键检测消抖时钟和控制器模块时钟,而CLK_DIV2作为密码错误次数计数模块的时钟。CLK时钟信号还作为蜂鸣器启动信号和LED显示扫描时钟信号。CLK_DIV1设为CLK的30分频,为10Hz。再将CLK_DIV1进行10分频可以得到CLK_DIV2时钟,为1HZ。因此,分频模块可以采用10分频和30分频电路来构成,如图4-5所示。3、VHDL设计由图2-5可知,分频模块内部含有两个单元电路:30分频电路和10分频电路。首先需要进行30分频和10分频这两个单元电路的VHDL设计,这两个单元电路的设计可以采用计数的方法来完成。而对于分频模块的设计,可以通过对两个单元电路元件的例化调用来实现。其中30分频电路和10分频电路的VHDL程序分别为clk_div30.vhd,clk_div10.vhd;分频模块的VHDL程序为clkdiv_model.vhd。4.1.2消抖同步模块设计1、消抖同步模块的输入、输出信号定义30分频电路10分频电路CLKCLK_DIV1CLK_DIV1CLK_DIV2图4-5河南机电高等专科学校结课大作业图4-6消抖同步模块图消抖同步模块的模块图如图2-6所示,由图可以得到输入、输出信号定义:1)输入信号C1、C2、C3、C4:分别由WAIT_T、SETUP、READY、OPEN_T操作指令得到;AOO~A90:由使能模块提供;CLK:由分频模块输出的CLK_DIV1(10Hz)来提供;2)输出信号C11、C22、C33、C44:由WAIT_T、SETUP、READY、OPEN_T经过消抖后产生;A01~A91:有AOO~A90经过消抖后产生。2、模块描述在数字密码器中,由按键方式产生的数字密码A0~A9、READY、OPEN_T、WAIT_T、SETUP的产生时刻和持续长短是随机不定的,同时存在因开关簧片反弹而引起的电平抖动现象,因此必须添加消抖同步模块,目的是保证系统能捕捉到输入脉冲,同时保证每按一键只形成一个宽度为系统时钟周期的脉冲。3、VHDL设计在数字电路中,消抖同步电路的设计方案[11]较多,本设计采用的是一种应用较为广泛的消抖同步电路。如图2-7所示。因为采用与非门构成的触发器使用底电平触发,因此按键输入的数字或者操作指令要设计成低电平有效。河南机电高等专科学校结课大作业根据图4-7可以看出消抖同步电路含有两个与非门、一个与门和两个D触发器。所以首先必须进行D触发器的VHDL设计,然后构成消抖同步电路的VHDL设计,最后通过元件例化调用完成消抖同步模块的VHDL设计。其中,D触发器的VHDL程序为dff_1.vhd,消抖同步电路的VHDL程序为key_sync.vhd,消抖同步模块的VHDL程序为keysync_model.vhd。4.1.3使能电路模块设计1、使能电路模块的输入、输出信号定义图4-8使能电路模块图使能电路模块的模块图如图4-8所示,模块的输入、输出信号定义如下:1)输入信号A0~A9:由按键0~9提供;EN:由控制器模块提供。2)输出信号A00~A90:当其为低电平0时,表示对应的A0~A9有信号输入。该输出用于提供给消抖同步模块。&&DQCPQDQCPQ&输出输入CLK图4-7河南机电高等专科学校结课大作业2、模块描述在数字密码器中,数字密码A0~A9的按键输入信号是通过控制器模块给出的使能信号EN来进行控制的:当使能信号有效(高电平)时,输入的信号A0~A9有效;否则输出为高电平。3、VHDL设计使能电路模块的VHDL程序为enable_model.vhd。4.1.4密码预置模块设计1、输入输出定义信号定义图4-9密码预置输出模块图密码预置输出模块的模块图如图4-9所示,模块的输入、输出信号定义如下:1)输入信号S0、S1、S2:由计数器选择模块提供。2)输出信号E1、E2、E3、E4:密码预置信号。2、模块描述该模块用来预置密码器的密码,用于与输入的数字密码进行比较操作。密码器的密码可以设置成任意位,这里设为6位,为“654321”。它的输入有三个,分别为s2、s1、s0,由计数器选择模块提供;输出有为4位的2进制密码。3、VHDL设计密码预置输出模块的VHDL程序为mux4_model.vhd。4.1.5编码模块设计1、输入输出信号定义河南机电高等专科学校结课大作业图4-10密码预置输出模块图密码预置输出模块的模块图如图4-10所示,模块的输入、输出定义如下:1)输入信号A01~A91:由消抖同步模块提供,对应于数字按键0~9;RESET:由控制器模块提供;DUS:由控制器模块提供,用于检测是否有按键输入;2)输出信号B1~B4:由按键信号转换成4位BCD码,用来提供给比较模块;DATA_IN:当其为高电平是,表示有密码输入,用来提供给控制器模块;DI:按键音信号,用来提供给指示模块,以驱动扬声器。IN1~IN6:用于按顺序存储密码,其中IN1用于存储第一位密
本文标题:基于VHDL的数字密码锁设计
链接地址:https://www.777doc.com/doc-4279422 .html