基于vhdl的电子密码锁设计1

上传人:Bod****ee 文档编号:47220292 上传时间:2018-07-01 格式:DOC 页数:13 大小:158.51KB
返回 下载 相关 举报
基于vhdl的电子密码锁设计1_第1页
第1页 / 共13页
基于vhdl的电子密码锁设计1_第2页
第2页 / 共13页
基于vhdl的电子密码锁设计1_第3页
第3页 / 共13页
基于vhdl的电子密码锁设计1_第4页
第4页 / 共13页
基于vhdl的电子密码锁设计1_第5页
第5页 / 共13页
点击查看更多>>
资源描述

《基于vhdl的电子密码锁设计1》由会员分享,可在线阅读,更多相关《基于vhdl的电子密码锁设计1(13页珍藏版)》请在金锄头文库上搜索。

1、E ED DA A 仿仿真真与与实实践践实实习习学学 院:院: 信息科学与工程学院信息科学与工程学院 课课题题名名称称 : 硬件描述语言设计硬件描述语言设计 基于基于 VHDLVHDL 的电子密码锁的设计的电子密码锁的设计 班班 级:级: 学学 生:生: 学学 号:号: 指指导导教教师师 : 1 引言在日常的生活和工作中, 住宅与部门的安全防范、单位的文件 档案、财务报表以及一些个人资料的保存多以加锁的办法来解决。 若使用传统的机械式钥匙开锁,人们常需携带多把钥匙, 使用极不 方便, 且钥匙丢失后安全性即大打折扣。随着科学技术的不断发展, 人们对日常生活中的安全保险器件的要求越来越高。为满足人

2、们对 锁的使用要求,增加其安全性,用密码代替钥匙的密码锁应运而生。基于 EDA 技术设计的电子密码锁。以其价格便宜、使用方便、 安全性高、成本低、功耗低、易操作等优点,受到了人们的普遍关 注。而以可编程逻辑器件(FBDA)为设计载体,以硬件描述语言(VHDL) 为主要表达方式,以 Quartus5.1 开发软件等为设计工具设计的电 子密码锁,由于其能够实现密码输入、密码校验、密码设置和更改 等功能,因此,能够满足社会对安全防盗的需求。 本设计的各个模块由相应的 VHDL 程序具体实现,并在 Quartus5.1 环境下进行了整体电路的模拟仿真,最终实现“密码 锁控制器设计”的要求。2 设计内容

3、和要求设计内容和要求2.1 设计内容:设计内容:题目:电子密码锁 内容:设计一个 4 位串行数字锁。 (1)开锁代码为 4 位二进制,当输入代码的位数与锁内给定的密码一 致,且按规定程序开锁时,方可开锁,并点亮一个指示灯。否则进 入“错误”状态,并发出报警信号。 (2)锁内的密码可调,且预置方便,保密性好。 (3)串行数字锁的报警由点亮一个灯,直到按下复位开关,报警才停 下。此时,数字锁又自动等待下一个开锁状态。 要求: (1)通过查阅相关技术资料,详细描述电子密码锁的基本原理。(2)编写电子密码锁的 Verilog HDL 或 VHDL 程序,并仿真编译下载验 证。 (3)给出完整的系统顶层

4、模块图与波形仿真图。3 设计分案设计分案密码锁控制器是硬件与软件的结合。根据设计要求,决定以 FBDA 芯片和 VHDL 语言设计此电子密码锁。用一片 FBDA 芯片实现, 从而大大简化了系统结构,降低了成本,提高了系统的保密性和可 靠性。这种设计不仅简化了系统结构,降低了成本,更提高了系统 的可靠性和保密性。另外,采用可编程逻辑器件开发的数字系统,方 便地升级和改进。 3.1 系统总框图系统总框图本系统的硬件部分主要由密码锁控制电路、密码锁显示电路、LED显示电路、报警电路、密码更改与设置电路组成。整体系统框图如下图2.1所示。密码锁总框图3.2 密码锁的内部结构及主要功能密码锁的内部结构及

5、主要功能3.2.1 密码锁的主要功能密码锁的主要功能密码锁控制器的主要功能有:(1)密码输入:有二个按键来控制(分别代表0和1),每按下一个键,要求在数码管上显示,并依次左移。(2)密码校验:如果有按键按下,直到松开该按键;红绿灯指示门的状态,密码锁显示电路密 码 锁 显 示 电路LED 显示电路密码锁控制电路报 警 电 路也就是密码校验结果,如果密码校验正确,绿亮起,否则如果密码校验错误红灯亮,并凤鸣器响,表明密码错误。(3)错误报警:密码输入错误开始报警。(4)密码修改:输入密码正确后4秒内按按键输入要设置和更改的密码,按按键确认密码设置与更改,则密码设置成功4 系统硬件电路系统硬件电路

6、4.1 密码锁的显示模块密码锁的显示模块 段数码管是电子开发过程中常用的输出 显示设备。在本设计中使用的是8 个四位一 体、共阴极型七段数码管。其单个静态数 码管如下图所示。 由于七段数码管公共端连接到 GND(共阴极型) ,当数码管的中的一个段 被输入高电平,则相应的这一段被点亮。 反之则不亮。共阳极性的数码管与之相反。四位一体的七段数码管 在单个静态数码管的基础上加入了用于选择哪一位数码管的位选信 号端口。八个数码管的 a、b、c、d、e、f、g、h、dp 都连在了一起, 8 个数码管分别由各自的位选信号来控制,被选通的数码管显示数 据,其余关闭。 4.2 密码锁控制模块密码锁控制模块该模

7、块的作用是将输入的密码 (暂时寄存于 ACC 中)跟已经 存储的密码(REG 中的密码信息)进行对比,如果一样,则密码锁 开锁。而在通过密码验证后可以按按键设定密码。在这里值得注意 的是有一个密码“0000”为开始密码,如果改名密码了但是又忘记 了密码,重新下载之后的初始密码只要输入的密码为“0000”则都可 通过密码锁。模块 lock 是整个设计的核心 ,它实现密码锁的逻辑功 能。在任何时候按动密码初始化按键内密码设置为程序初始化密码 值(在本模块程序中此值为 “0000”代码为 4 位二进制数 ,当输入 代码的位数和位值与锁内给定的密码一致 ,且按规定程序开锁时 ,方 可开锁 ,并点亮开锁

8、指示灯(緑灯)亮。否则 ,系统进入 “错误”状 态 ,并发出报警信号。串行数字锁的报警方式是点亮指示灯(红灯),并使喇叭鸣叫 ,直到按下复位开关 ,报警才停止。此时 ,数字锁又 自动进入等待下一次开锁的状态。该 4 位串行电子密码锁设置 4 位二进制密码 ,要求锁内给定的密码是可调的 ,且设置方便 ,保密性 好。其具体操作分为输入密码和修改密码两部分 4.2.1 输入密码输入密码密码输入值的比较主要有两部分 ,密码位数和内容 ,任何一个条件不满足 ,都不能打开锁。若锁内密码为 “0000” , key2 和 key1 置低电平 ,分别表示输入 “1” 和 “0” 。输入密码前先进行复位操作 ,

9、再按着从密码最低位到最高位的顺序依次正确输入 0000,会在数码管逐一显示。经检验 ,输入的密码 等于锁内预先设置的密码密码锁开启信号,锁开启。同时,密码修改控制信号 rw 置低电平。若在输入密码的过程中 ,4 位二进制密码出现输入错误 ,那么锁不能开启 ,同时 ,指示灯红灯 亮 ,发出报警信号 。直到按下复位开关 ,报警才停止。此时 ,数字锁又自动进入等待下一次开锁的状态。4.2.2 修改密码修改密码为防止任意进行密码修改 ,必须在正确输入密码后 ,才能重新设置密码。输入正确密码后 ,锁打开 ,同时 ,密码修改控制信号按键 rw 置低电平 ,就可直接进行修改密码的操作。修改密码实质就是用输入

10、的新密码去取代原来的旧密码,按确定按键 ok, 存储新密码时.5 VHDL 程序设计程序设计密码锁控制器的各个功能模块都是通过 VHDL 语言来完成的。本 设计由密码锁显示显示模块、分频模块、密码输入及校验模块、报 警模块、密码更改与设置模块几部分组成,各模块分工合作,最后 达到密码锁控制器设计的要求。表表4-1 程序的管脚分配表程序的管脚分配表端口名端口名对应对应FBGA管脚管脚说明说明clkP2时钟为时钟为50HzKey1AC23按下按键代表为按下按键代表为“0”Key2AB21按下按键代表为按下按键代表为“1”startY14开始输入密码开始输入密码okAA13确定输入密码确定输入密码r

11、esetAC15复位复位rwV23该密码该密码clrU23清零清零redM19密码错误红灯亮密码错误红灯亮greenT22密码正确緑灯亮密码正确緑灯亮beepA14蜂鸣器蜂鸣器Seg7.0D16,D17,G13,D15,C15,C16,G15,J13代表数码管的片内显示代表数码管的片内显示Dig7.0E15,K18,E22,C17,H15,K16,H12,D18代表数码管的片外显示代表数码管的片外显示VHDL程序总代码程序总代码library ieee;use ieee.std_logic_1164.all;use ieee.std_logic_arith.all;use ieee.std_l

12、ogic_unsigned.all;entity lock isport(key1,key2:in std_logic; clk,start,ok,reset,rw,clr: in std_logic;red,green,beep:out std_logic:=1;dig:out std_logic_vector(7 downto 0);seg:out std_logic_vector(7 downto 0);end lock;architecture rt1 of lock issignal keyin,password:std_logic_vector(3 downto 0):=“0000

13、“;signal open1:std_logic:=0;signal beep1:std_logic:=1;signal a,shuru:std_logic;signal count: std_logic_vector(2 downto 0):=“000“;signal temp: std_logic_vector(1 downto 0):=“00“;beginprocess(clk)variable m:integer range 0 to 10; beginif clkevent and clk=1then if m=9 thenm:=0;a digseg dig digseg dig d

14、ig digseg dig dig dig dignull;end case ;else dig=“11111111“ ;seg=“11111111“;end if;end if;end process ;end rt1; 6 系统仿真系统仿真当各个模块分别编译成功后 ,则创建一个个元件符号。再用图形 编辑器将各元件模块组装起来 ,这就是本设计中最顶层的图形设计 文件。顶层图形设计文件 lock. gdf 如图所示 ,这个结构框图说明了 整个系统的外部输入和输出情况。为了获得与目标器件对应的、 精 确的时序仿真文件译了。编译成功后进行仿真。首先建立波形文件。波形文件 lock. scf 建好并

15、存盘后 ,选择菜单 “new” “Vector Waveform File”,启动仿真 操作 ,结束后观察仿真波形。本设计中 ,仿真波形如图所示。当给初 始密码输入信号 LC 一个低电平时 ,就将程序预先设定的密码( “0000” )装入 lock 中 。按下 reset 后,系统复位 ,处于输入密码状态。 输入的开锁密码串行顺序装入 ,。密码输入完毕后 ,比较输入的密码 是否等于预先设定的密码,若相等 ,锁开启。如图所示7 7 总结总结这次密码锁的设计过程表明,用 VHDL 可以快速、灵活地设计 出符合要求的密码锁控制器,而且操作简单。可以实现密码输入、 密码校验、密码设置和更改等功能。设计

16、过程能够在设计完成后在 Quartus环境下进行电路的模拟仿真,反馈结果可以验证程序设计 的可行性与可靠性。 本密码锁控制器设置的是 4 位密码,在系统复位后,输入一个 完整的密码串,输入完后,系统会进行比对,如果发现密码吻合, 则开门,否则要求用户继续输入,如果输入的密码串都是错误的, 则系统报警,直到输入正确的密码,报警声停止。这样的设计可以 很好的满足人们的日常需求。同时,密码锁还具有密码修改功能, 方便操作,使得密码锁的使用更加安全、便捷。 在软件、硬件设计和仿真过程中间我们也遇到不少问题,但最 终还是把它们解决了,使得设计符合要求。除了自己思考设计之外, 这与和同学的同心协力的合作与讨论是分不开的的。相互的探讨使 得我们的思路更加开阔,解决问题的办法也更多。总之,此次课程 设计让我收益良多,

展开阅读全文
相关资源
相关搜索

当前位置:首页 > 学术论文 > 毕业论文

电脑版 |金锄头文库版权所有
经营许可证:蜀ICP备13022795号 | 川公网安备 51140202000112号