基于VHDL的电子密码锁的设计(1)

合集下载

彭胜-基于VHDL的电子密码锁设计与实现正文

彭胜-基于VHDL的电子密码锁设计与实现正文

1 引言电子密码锁的使用体现了人们消费水平、保安意识和科技水平的提高,而且避免了携带甚至丢失钥匙的麻烦。

目前设计密码锁的方法很多,例如用传统的PCB 板设计、用PLC 设计或者用单片机设计。

而用V HDL 可以更加快速、灵活地设计出符合各种要求的密码锁,优于其他设计方法,使设计过程达到高度自动化。

本设计在Max + plus Ⅱ的环境中进行,用Al2tera 公司ACEX 1 K系列的EP1 K30 TC14423 来实现。

ACEX 1 K是Altera 公司着眼于通信、音频处理及类似场合的应用而推出的FPGA 器件芯片系列,其典型门数为10 万门,是当今Altera 多种产品中应用前景最好的器件系列之一。

EDA 技术设计电子系统具有用软件的方式设计硬件;设计过程中可用有关软件进行各种仿真,系统可现场编程、在线升级,整个系统可集成在一个芯片上等特点;不但设计周期短、设计成本低,而且将提高产品或设备的性能,缩小产品体积、提高产品的技术含量,提高产品的附加值。

用VHDL设计电子密码锁方案:作为通用电子密码锁,主要由3 个部分组成:数字密码输入电路、密码锁控制电路和密码锁显示电路,作为电子密码锁的输入电路。

可供选择的方案有数字机械式键盘和触摸式数字键盘等多种。

(1)密码锁输入电路包括时序产生电路、键盘扫描电路、键盘弹跳消除电路、键盘译码电路等几个小的功能电路。

(2)密码锁控制电路包括按键数据的缓冲存储电路,密码的清除、变更、存储、激活电锁电路(寄存器清除信号发生电路),密码核对(数值比较电路),解锁电路(开/关门锁电路)等几个小的功能电路。

(3)七段数码管显示电路主要将待显示数据的BCD码转换成数码器的七段显示驱动编码。

1.1 课题背景随着社会的发展和人们生活水平的提高,人们的安全意识也逐步加强。

传统的机械锁由于其构造的简单,失效的事件屡见不鲜,如何实现保密防盗这一问题变的尤其的突出,密码锁以其安全性高、成本低、功耗低、易操作等优点受到越来越多人的欢迎。

基于VHDL的电子密码锁的设计(1)

基于VHDL的电子密码锁的设计(1)

《E D A仿真与实践实习》学院:信息科学与工程学院课题名称:硬件描述语言设计——基于VHDL的电子密码锁的设计班级:学生:学号:指导教师:1 引言在日常的生活和工作中, 住宅与部门的安全防范、单位的文件档案、财务报表以及一些个人资料的保存多以加锁的办法来解决。

若使用传统的机械式钥匙开锁,人们常需携带多把钥匙, 使用极不方便, 且钥匙丢失后安全性即大打折扣。

随着科学技术的不断发展,人们对日常生活中的安全保险器件的要求越来越高。

为满足人们对锁的使用要求,增加其安全性,用密码代替钥匙的密码锁应运而生。

基于EDA技术设计的电子密码锁。

以其价格便宜、使用方便、安全性高、成本低、功耗低、易操作等优点,受到了人们的普遍关注。

而以可编程逻辑器件(FBDA)为设计载体,以硬件描述语言(VHDL)为主要表达方式,以QuartusⅡ5.1开发软件等为设计工具设计的电子密码锁,由于其能够实现密码输入、密码校验、密码设置和更改等功能,因此,能够满足社会对安全防盗的需求。

本设计的各个模块由相应的VHDL程序具体实现,并在QuartusⅡ5.1环境下进行了整体电路的模拟仿真,最终实现“密码锁控制器设计”的要求。

2 设计内容和要求2.1 设计内容:题目:电子密码锁内容:设计一个4位串行数字锁。

(1)开锁代码为4位二进制,当输入代码的位数与锁内给定的密码一致,且按规定程序开锁时,方可开锁,并点亮一个指示灯。

否则进入“错误”状态,并发出报警信号。

(2)锁内的密码可调,且预置方便,保密性好。

(3)串行数字锁的报警由点亮一个灯,直到按下复位开关,报警才停下。

此时,数字锁又自动等待下一个开锁状态。

要求:(1)通过查阅相关技术资料,详细描述电子密码锁的基本原理。

(2)编写电子密码锁的Verilog HDL或VHDL程序,并仿真编译下载验证。

(3)给出完整的系统顶层模块图与波形仿真图。

3 设计分案密码锁控制器是硬件与软件的结合。

根据设计要求,决定以FBDA芯片和VHDL语言设计此电子密码锁。

基于VHDL语言的电子密码锁v1.0

基于VHDL语言的电子密码锁v1.0

成绩题目基于VHDL语言的电子密码锁设计课程名称EDA技术实训_______院(系)电子通信工程学院___专业班级 ____________________学生姓名 _____________________学号 _____________________设计地点EDA实验室_________指导教师设计起止时间: 年月日至年月日目录1 绪论 (3)1.1电子密码锁的功能要求 (3)1.2总体模块设 (3)1.3顶层文件设计 (4)2 各功能模块的具体实现 (5)2.1拨码输入模块 (5)2.2寄存器 (6)2.3密码比较模块 (8)2.4显示模块 (10)3 系统仿真 (15)4 硬件测试 (16)5实践心得及体会 (17)绪论1.1电子密码锁的功能要求1、设计六位密码(每位均可以是0~9任意数字)的电子密码锁,用四个拨码开关(k1~k4)输入,并通过七段数码管显示输入密码。

2、密码验证:按键设置验证开始,输入密码后, 密码正确时开锁,绿灯亮,红灯灭,表示开锁成功;当密码输入错误时,绿灯灭,红灯亮,表示开锁失败。

3、密码更改:密码验证正确后可以更改,并设置按键控制更改密码功能。

4、密码清除:密码输入过程中可以清除,并重新输入。

5、初始密码:预设初始密码为123456。

1.2总体模块设计通过拨码输入密码,送到密码校验电路,如果校验正确开锁,并执行显示在LED灯上,同时密码校验正确可以进行密码修改。

图11.3顶层文件设计本设计采用EDA 技术和VHDL 语言设计了一种按键输入密码并数码管回显,当输入正确密码时轰动绿灯亮、红灯熄灭表示开锁,而当输入错误密码时,红灯亮、绿灯熄灭表示关锁。

根据系统设计要求,系统设计采用自顶向下的设计方法。

顶层设计采用原理图设计方式,系统的整体组装设计原理图如图2所示。

它由拨码输入、寄存器、密码比较和显示灯四个模块组成。

其顶层文件设计如图:密码修改电路拨码输入 密码校验电路 执行电路开锁电路图2各功能模块的具体实现2.1拨码输入模块1、拨码输入模块包括设置密码并读取、输入密码、系统复位功能。

基于VHDL的电子密码锁的设计论文

基于VHDL的电子密码锁的设计论文

摘要FPGA/VHDL是近几年集成电路中发展最快的产品。

由于FPGA性能的高速发展以及设计人员自身能力的提高,可编程逻辑器件供应商将进一步扩大可编程芯片的领地,将复杂的专用芯片挤向高端和超复杂应用。

据IC Insights的数据显示,FPGA市场从1999年的29亿美元增长到去年的56亿美元,几乎翻了一番。

Matas预计这种高速增长局面以后很难出现,但可编程逻辑器件依然是集成电路中最具活力和前途的产业。

本文介绍的VHDL密码锁应具有如下功能:密码预先存入寄存器中,开锁时,输入密码存入另一寄存器中,当按下“确定”键时,启动比较器,比较两个寄存器中的内容,当结果相同时开锁;当结果不同时不开锁。

用户需要修改密码时,先开锁,再按“设定密码”,清除预先存入的密码,通过键盘输入新的2位十进制码,按“确定”完成。

关键词:VHDL,密码锁,矩阵目录摘要 (1)目录 (3)一、设计要求 (5)二电路组成 (5)三功能电路的设计 (7)1、总体设计框图 (7)2、键盘接口电路 (7)3.时序产生电路 (10)4.键盘扫描电路 (12)5.键盘消抖电路 (15)6.键盘译码电路 (19)7.按键存储电路 (26)(1)SISO—串行输入/串行输出 (26)(2)SIPO--串行输入/并行输出 (28)(3)PISO--并行输入/串行输出 (30)(4)PIPO--并行输入/并行输出 (32)8.密码设置和比较模块 (34)9.电锁控制电路设计 (36)(1)数字按键输入部分 (37)(2)功能键输入部分 (37)(3)三种工作模式 (38)附件1:程序清单 (39)一、设计要求设计一个简单的数字电子密码锁,密码为6位。

功能1、密码输入:每按下一个键,要求在数码管上显示,并依次左移;2、密码清除:清除密码输入,并将输入置为”000000”;3、密码修改:将当前输入设为新的密码;4、上锁和开锁。

二电路组成为达到以上功能,可将电子密码锁分为以下几个模块:1、键盘接口电路键盘矩阵、键盘扫描、键盘消抖、键盘译码及按键存储。

《基于VHDL语言和FPGA的电子密码锁》范文

《基于VHDL语言和FPGA的电子密码锁》范文

《基于VHDL语言和FPGA的电子密码锁》篇一一、引言随着科技的发展,电子密码锁已逐渐取代传统的锁具,成为了安全领域的重要组成部分。

而作为电子密码锁核心技术之一的FPGA(现场可编程门阵列)技术,以及VHDL语言编程的灵活性,更是对密码锁设计起到了重要的推动作用。

本文旨在详细探讨基于VHDL语言和FPGA的电子密码锁的设计与实现。

二、VHDL语言与FPGA概述VHDL(VHSIC Hardware Description Language)是一种硬件描述语言,用于描述电子系统的结构和行为。

而FPGA则是一种可编程逻辑器件,其内部由许多可配置的逻辑单元组成,通过编程可以实现各种复杂的数字电路功能。

将VHDL语言与FPGA相结合,可以实现电子密码锁的高效、灵活和可定制的设计。

三、电子密码锁的设计要求在基于VHDL语言和FPGA的电子密码锁设计中,首先需要明确设计要求。

这些要求包括:高安全性、易于使用、良好的扩展性以及低成本等。

此外,密码锁应能抵抗各种常见的攻击方式,如暴力破解等。

四、基于VHDL的密码锁设计与实现基于VHDL语言的电子密码锁设计主要分为几个模块:密码输入模块、解码模块、控制模块和输出模块等。

密码输入模块负责接收用户输入的密码;解码模块对输入的密码进行解码,判断其是否正确;控制模块根据解码结果控制输出模块的开关状态;而整个系统则由FPGA实现。

在VHDL编程中,需要详细描述各个模块的功能、接口以及它们之间的通信方式。

例如,密码输入模块应能接收一定长度的密码输入,并将其传递给解码模块。

解码模块则根据预设的算法对密码进行解码,并将结果传递给控制模块。

控制模块根据解码结果控制输出模块的开关状态,以实现密码锁的开启或关闭。

五、FPGA的实现与优化在FPGA上实现电子密码锁时,需要利用FPGA的编程工具进行编程和配置。

首先,将VHDL代码编译成可在FPGA上运行的二进制代码;然后,将二进制代码下载到FPGA中,实现对电子密码锁的硬件配置。

基于某VHDL语言地电子密码锁地设计最终定稿子

基于某VHDL语言地电子密码锁地设计最终定稿子

基于VHDL语言的电子密码锁设计组长:李柳 201254080308 组员:刘永兴 201254080201 邝七月 201254080209庄美琳 201254080303王常汉 201154080121系统的原理设计(1)数码输入:每按下一个数字键,就输入一个数值,并在显示器的最右方显示该数,同时将先前输入的数依次左移一位。

(2)数码清除:按下此键会清除前面所有的输入值,成为“0000”。

(3) 激活电锁:按下此键可将密码锁上锁。

(4) 解除电锁:按下此键会检查输入的密码是否正确,密码正确即开锁。

作为通用电子密码锁,主要由三个部分组成:数字密码输入电路、密码锁控制电路和密码锁显示电路。

作为电子密码锁的输入电路,可供选择的方案有数字机械式键盘和触摸式数字键盘等多种。

虽然机械式键盘存在一些诸如机械产生的弹跳消除问题和机械部分的接触等问题,但是和触摸式的4×3键盘相比,机械式键盘具有低成本、可靠性高、构成电路简单、技术成熟和应用广泛等特点,因此将其应用到通用数字电子密码锁中还是比较适宜的。

本设计中采用一个4×3的通用数字机械键盘作为该设计的输入设备。

数字电子密码锁的显示信息电路可采用LED数码管显示和液晶屏幕显示两种。

液晶屏幕显示具有高速显示、高可靠性、易于扩展和升级等优点,但是普通液晶显示屏存在亮度低、对复杂环境的适应能力差等缺点,在低亮度的环境下还需要加入其他辅助的照明设备,驱动电路设计相对复杂,因此本设计的显示电路仍使用通用的LED数码管。

根据以上选定的输入设备和显示器件,并考虑到实现各项数字密码锁功能的具体要求,密码锁结构框图如图4-1所示。

图4-1 密码锁结构框图键盘:用户对系统输入密码,采用4×3数字机械式键盘实现显示器:用来显示输入的密码,采用4个LED数码管实现时钟脉冲器:用来产生方波信号CPLD控制部分:核心部分,实现分频、内部逻辑、数字比较、数据存储、译码等功能整个电子密码锁系统的总体组成框图如图4-2所示。

基于VHDL的电子密码锁

基于VHDL的电子密码锁

华南师范大学课程设计实验报告课程名称:可编程数字系统设计课程设计题目:电子密码锁姓名:程硕学院:物理与电信工程学院专业:理综一班年级:2011学号:20112600104一、设计原理用VHDL设计电子密码锁方案:作为通用电子密码锁,主要由 3 个部分组成:数字密码按键输入电路、密码锁控制电路和密码锁显示电路,作为电子密码锁的输入电路。

可供选择的方案有数字机械式键盘和触摸式数字键盘等多种。

(1)密码锁输入电路包括时序产生电路、键盘检测电路、键盘消抖电路等几个小的功能电路。

(2)密码锁控制电路包括按键数据存储电路,恢复出厂密码、两次正确输入后可修改密码、密码核对,多次错误报警,清屏等几个小的功能电路。

(3)八段数码管显示电路主要将待显示数据的BCD码转换成数码器的八段显示驱动编码。

二、系统分析本次课程设计成功地设计了一个简单的数字电子密码锁,密码为 4 位。

将电子密码锁分为以下几个模块:按键消抖模块、密码锁逻辑控制模块和密码锁显示模块,实现了以下功能:(1)密码输入:KEY1按下一次,数码管上显示数字加一,相应位置输入密码加一(2)位置选择:KEY2按下一次,数码管选择位左移一位(3)密码确认:KEY3按下一次,比较外部输入密码与原密码,正确LED长亮,错误LED变暗,同时显示密码置0;(4)密码修改:正确输入两次密码后,按下KEY4一次,将当前输入设为新的密码;(5)清屏:KEY5按下一次,外部输入置0;(6)恢复出厂设置:连续按下KEY5三次后恢复出厂密码“1234”;三、程序设计1由于程序稍显庞大,故采取分层次设计的方法,顶层采用画图法设计,底层采用VHDL 语言进行设计。

顶层电路图如图1所示图1Xiao_dou模块为按键消抖模块,main为密码锁控制模块,yima为数码管显示译码模块。

Set_shuma端口为数码管段选端口,用于选择数码管。

Led端口为led灯端口,key1,key2,key3,key4,key5为五个按键接口,show_shuma端口为数码管位选选择端口。

基于VHDL语言的8位数字密码锁设计

基于VHDL语言的8位数字密码锁设计

.EDA课程设计报告书课题名称基于VHDL语言的8位数字密码锁设计姓名学号院、系、部专业指导教师2016年6月20日※※※※※※※※※※※※※※※※※※※※※※※※2014级学生EDA课程设计基于VHDL语言的8位数字密码锁设计1 设计目的(1)熟悉集成电路的引脚安排。

(2)掌握各芯片的逻辑功能及使用方法。

(3)了解面包板结构及其接线方法。

(4)了解电子密码锁的组成及工作原理。

(5)熟悉电子密码锁的设计与制作。

2设计方案电子密码锁,主要由三部分组成:密码输入电路、密码锁控制电路和密码锁显示电路。

作为电子密码锁的输入电路,可选用的方案有拨码与按键来控制输入和触摸式键盘输入等多种。

拨码与按键和触摸式4*4键盘相比简单方便而且成本低,构成的电路简单,本设计中采用拨码与按键来作为该设计的输入设备。

数字电子密码锁的显示信息电路可采用LED数码显示管和液晶屏显示两种。

液晶显示具有高速显示、可靠性高、易于扩展和升级的特点,但是普通的液晶存在亮度低、对复杂环境适应能力差的特点,但是在本设计中任然使用LED数码管。

根据以上选定的输入设备与与显示器件,并考虑到现实各项密码锁功能的具体要求,与系统的设计要求,系统设计采用自顶向下的设计方案。

整个密码锁系统的总体总体框图如图2.1所示。

图2.1电子密码锁系统总体框图3功能模块 3.1 输入模块3.1.1功能介绍输入时有三个拨码键控制输入,每个拨码各控制一位密码,对于其中一个拨码键每拨一次码按一次按键,表示输入一位,当输入四位时输出一位数,用“888”作为初始密码。

3.1.2输入模块与仿真图形单脉冲控制如图3.1如下图BCD 七段译码显示电路显示模块图3.1上图为单脉冲控制输入,当M给一上升沿信号将在PUL输出一位与之对应的高或低电平。

四位串行输入并行输出寄存器如下图3.2图3.2上图为4为串行输入并行输出寄存器,它由4个D触发组成,当reset为高电平时,每给一脉冲输入数据将向右移一位二值代码,它能同时复位。

vhdl密码锁

vhdl密码锁

Vhdl短学期实验-—密码锁设计小组成员:04008230 李黎04008228 陈宗渊04008211 周炳宇一、课题描述:用于模仿密码锁的工作过程。

完成密码锁的核心控制功能。

二、功能要求:设计一个密码锁,平时处于等待状态。

管理员可以设置或更该密码.如果不预置密码,密码缺省为“999999”。

用户如果需要开锁,按相应的按键进入输入密码状态,输入6位密码,按下确定键后,若密码正确,锁打开,若密码错误,将提示密码错误,要求重新输入,三次输入都错误,将发出报警信号。

报警后,只有管理员作相应的处理才能停止报警。

用户输入密码时,若输入错误,在按下确定键之前,可以通过按取消键重新输入。

正确开锁后,用户处理完毕后,按下确定键,系统回到等待状态。

系统操作过程中,只要密码锁没有打开,如果60秒没有对系统操作,系统回到等待状态.注意:输入按键信号时必须一个按键一个按键输入,不得6个按键一起输入。

三、设计流程:1.结构框图:①按键输入;②复位(设置缺省密码);③等待状态④工作状态⑤修改密码⑥提醒错误及报警⑦开锁⑧恢复等待2.模块设计:★控制模块:实现输入输出,实现等待工作的转换,实现开锁及报警;★比较模块:比较输入密码与正确密码★寄存模块:存放密码★计数及使能模块:(1)输入个数为6,多于无效自动忽略;(2)60s的空闲时间,无操作返回等待;(3)错误次数为3(4)进入工作状态,是能段即打开,直到进入等待。

四、具体实现:★控制模块:library ieee;use ieee.std_logic_1164。

all;use ieee.std_logic_unsigned。

all;entity ctrl isport(change,vers,keysign : in std_logic;ok,cancel : in std_logic;clk : in std_logic;result : in std_logic;wt : in std_logic;enable : out std_logic);end ctrl;architecture ctrl_behave of ctrl issignal sec : integer range 0 to 60;beginprocess(clk)beginif (clk’event and clk='1') thenif (vers='1’) thenenable〈=’1';end if;if (wt=’1’ and result=’1') thenenable<=’0';sec〈=0;end if;if (change=’0' and vers='0' and keysign=’0' and ok='0' and cancel=’0’) then sec<=sec+1;if (sec=59) thenenable<='0';sec<=0;end if;elsesec<=0;end if;end if;end process;end ctrl_behave;★比较模块:library ieee;use ieee。

基于VHDL-4位电子密码锁的设计说明

基于VHDL-4位电子密码锁的设计说明

理工大学本科实验报告题目:基于VHDL 4位电子密码锁的设计课程名称:数字电路课程设计学院(系):电子信息与电气工程专业:电子英强班级:学生:学号:完成日期:2013.7.8成绩:2013 年7 月08 日题目:基于VHDL 4位电子密码锁的设计1 设计要求○1电子密码锁为4位8421BCD码,多于4位,密码只取前4位。

○2在输入密码错误,给出一个错误信号,有三次输入机会,若三次密码都输入错误,则给出一个报警信号,此后只能由密码管理员取消报警信号。

○3在输入密码正确的情况下,可以再次设定密码。

○4每次输入一个密码,将显示在7段数码管上,并依次左移。

○5每次输入密码的时候,按取消(cancel)键可以取消这次密码的输入,课重新输入4位密码。

2 设计分析及系统方案设计在实验室DE2开发板的条件下,考虑到key键只有4个,可以用switch开关来实现密码输入模块,用switch[9]~switch[0] 来实现数字9~0的输入,并通过译码模块将其转化为8421BCD码,由8421BCD码来驱动7段数码管作为密码锁的显示模块。

每按一个键,产生一个上升沿,给4个数码管做时钟,实现没输入一个数左移一位的效果。

为了实现密码输入多于4位,可以构造一个模为4的计数器来控制只取前4位密码。

共有三次输入密码的机会,可以构造一个模为3的计数器来控制。

密码比较模块:当按下确定键(yes)键,则将输入的密码和置密码进行比较。

密码输入模块:当输入密码正确时,再输入密码,利用重置密码键(set_psw)直接将其赋值给置的密码psw即可实现。

LED显示模块,用来显示密码输入的正确与否。

若输入密码与置密码一致,则锁打开,输出一个高电平给LEDG,绿灯亮,密码错误则输出一个高电平给LEDR,红灯亮。

综合上述分析,本系统的硬件部分主要由密码锁输入译码模块、密码锁显示模块、密码锁控制模块、密码比较和重置模块和LED显示模块五个部分组成。

基于VHDL的多功能电子密码锁设计

基于VHDL的多功能电子密码锁设计

学位论文诚信声明书本人郑重声明:所呈交的学位论文(设计)是我个人在导师指导下进行的研究(设计)工作及取得的研究(设计)成果。

除了文中加以标注和致谢的地方外,论文(设计)中不包含其他人或集体已经公开发表或撰写过的研究(设计)成果,也不包含本人或其他人在其它单位已申请学位或为其他用途使用过的成果。

与我一同工作的同志对本研究(设计)所做的任何贡献均已在论文中做了明确的说明并表示了致谢。

申请学位论文(设计)与资料若有不实之处,本人愿承担一切相关责任。

学位论文(设计)作者签名:日期:学位论文知识产权声明书本人完全了解学校有关保护知识产权的规定,即:在校期间所做论文(设计)工作的知识产权属西安科技大学所有。

学校有权保留并向国家有关部门或机构送交论文的复印件和电子版。

本人允许论文(设计)被查阅和借阅;学校可以公布本学位论文(设计)的全部或部分内容并将有关内容编入有关数据库进行检索,可以采用影印、缩印或其它复制手段保存和汇编本学位论文。

保密论文待解密后适用本声明。

学位论文(设计)作者签名:指导教师签名:年月日论文题目:基于VHDL的多功能电子密码锁设计专业:本科生:(签名)___________指导教师:(签名)___________摘要随着社会的发展,安全防盗受到人们的重视。

而锁一直都是人们的防盗首选。

首先需能防盗且要实用方便。

在现今社会技术环境下电子密码锁已成一种趋势。

本设计采用FPGA 设计一个具有6位密码的电子密码锁并具有火灾报警和数字时钟功能。

论文的硬件部分以EP1C3T144C8芯片为核心的开发板、4*4矩阵键盘、数码管、发光二极管、蜂鸣器等组成。

软件以VHDL语言为基础在FPGA平台上设计。

电子密码锁由分频模块、消抖模块、键盘扫描模块、密码控制模块、密码显示模块组成,实现了密码清除、密码修改、暗文输入、明文输入、上锁、解锁、错误报警的功能;火灾报警模块具有温度显示、报警功能;数字时钟模块显示时钟并可调。

基于VHDL的电子密码锁设计

基于VHDL的电子密码锁设计
关键词: D M X L SI V D ;密码锁 E A; A P U I; H L
中图分 类号 :P 9 T31
文献标识 码 : B
文章 编号 :6 1 72(0 090 1.3 17 - 9. 1).130 4 2
Ab t c: o gwi ed v lp n f  ̄c o i c n lg , lcrn cp s wo dlc a etef c o f sr tAln t t e eo me t e t nct h oo y ee t i a s r kh v m d no a hh o r e o o h i
ue e D vl met iiF G t mu t n ols X L SI, ip s od ok a elh8 u s t Ad e p n k P A,e i li o iMA P U t s a w r c sl i c- E h e o ts h s ao t I h s l h t lg e 1
r 、 elw ott elw o rls eo eains l h rcei is n n i t c s、 p we st p rt i ec aa trs e ds o . y t h o h o o h o mp t a o
Ke wo d : DA;M AXP US I ;VHDL;P swo d1  ̄k y rs E L I as r xc .


< 工 0

的 电

D s g f E e t o i a s o d L c a e n V D e i n o l c r n c P s w r ok B s d o H L



韩团军
H r un n a aj t T u ( 陕西理工学院, 陕西 汉 中 7 30 ) 2 00 (h nx iesy f ehooy hax azo g 2 00 S ani vri T c lg,S ani nhn 30 ) Un to n H 7

基于vhdl语言的电子密码锁设计说明书

基于vhdl语言的电子密码锁设计说明书

EDA技术课程设计论文题目基于VHDL语言的电子密码锁设计课程名称 EDA技术实训院(系)电子通信工程学院专业班级学生姓名学号设计地点 EDA实验室指导教师设计起止时间: 年月日至年月日目录1 绪论 (3)1.1电子密码锁的功能要求 (3)1.2总体模块设 (3)1.3顶层文件设计 (4)2 各功能模块的具体实现 (5)2.1拨码输入模块 (5)2.2寄存器 (6)2.3密码比较模块 (8)2.4显示模块 (10)3 系统仿真 (15)4 硬件测试 (16)5实践心得及体会 (17)绪论1.1电子密码锁的功能要求1、设计六位密码(每位均可以是0~9任意数字)的电子密码锁,用四个拨码开关(k1~k4)输入,并通过七段数码管显示输入密码。

2、密码验证:按键设置验证开始,输入密码后, 密码正确时开锁,绿灯亮,红灯灭,表示开锁成功;当密码输入错误时,绿灯灭,红灯亮,表示开锁失败。

3、密码更改:密码验证正确后可以更改,并设置按键控制更改密码功能。

4、密码清除:密码输入过程中可以清除,并重新输入。

5、初始密码:预设初始密码为123456。

1.2总体模块设计通过拨码输入密码,送到密码校验电路,如果校验正确开锁,并执行显示在LED灯上,同时密码校验正确可以进行密码修改。

图11.3顶层文件设计本设计采用EDA技术和VHDL语言设计了一种按键输入密码并数码管回显,当输入正确密码时轰动绿灯亮、红灯熄灭表示开锁,而当输入错误密码时,红灯亮、绿灯熄灭表示关锁。

根据系统设计要求,系统设计采用自顶向下的设计方法。

顶层设计采用原理图设计方式,系统的整体组装设计原理图如图2所示。

它由拨码输入、寄存器、密码比较和显示灯四个模块组成。

其顶层文件设计如图:图2各功能模块的具体实现2.1拨码输入模块1、拨码输入模块包括设置密码并读取、输入密码、系统复位功能。

该模块中我们设置了6个按键,各个按键的功能分别为:按键1、2、3、4分别对应4位二进制密码输入、键5为密码确认键、键6为系统复位和密码读取按键。

一种基于VHDL的电子密码锁的设计与实现

一种基于VHDL的电子密码锁的设计与实现

一种基于VHDL的电子密码锁的设计与实现阐述了一种基于VHDL设计一种数字电子密码锁的原理和方法,所用EDA开发工具为ISE,仿真工具是Modelsim SE该密码锁具有高安全性、低成本、低功耗、操作简单等特点。

随着社会的发展和人们生活水平的提高,人们的安全意识也逐步加强。

密码锁以其安全性高、成本低、功耗低、易操作等优点受到越来越多人的欢迎。

VHDL语言描述能力强,覆盖面广,抽象能力强,所以采用VHDL建立硬件模型。

Modelsim是业界最优秀的HDL语言仿真调试环境,提供最佳的仿真性能和调试特性,已经成为众多FPGA(Field Programable Gate Array)和ASIC(Application Specific Integrated Circuit)厂商首选的仿真调试工具。

一、功能描述密码锁的设计主要达到以下五个功能:(1)数码输入:按下一个数字键,其对应的数字就显示在最右边的数码管上,同时将先前输入的所有数字向左移动一位。

此处密码设定为4位,在实际中为了增加安全性,可以设置为更多位。

(2)数码清除:当按下清除键时,清除前面输人的所有值,并显示为“0000”。

(3)密码激活:按下此键,将前面输入的四位数字设为密码,密码锁上锁。

4)密码更改:将输人的值作为新的密码。

5)电锁解除:按下电锁解除键,系统会将输人与密码进行检查核对,如果正确,电锁开启,否则打不开锁。

二、设计思路电子密码锁主要由数字密码输入电路、密码锁控制电路和密码锁显示电路三部分组成。

原理如图1所示,key board为键盘输入电路,ctrl为密码锁控制电路,采用七段数码管显示。

在keyboard模块中,elk为系统原始时钟脉冲,key-in为按键输入信号,elkscan是键盘扫描序列,仿真时用;data-n为数字输出,data-f为功能输出,flag-n为数字输出标志,flag-f为功能输出标志,elk-ctr为控制电路时钟信号,enlock为上锁信号,data-bed(15:0)是4位十进制数码的bcd码形式。

基于VHDL的电子密码锁设计

基于VHDL的电子密码锁设计

图2 密 码锁 存 模 块
实体为 : nt x mi et m i y s
p r a i d l gc v co ( o t 1 o t : s _ o i— e t r d wno l : ( nt 3 )
d u :u d lgc v co ( o t ) o t t t o i e t r3d wno I : o s 1
t[. A .】 30
11 1
Bf3 0卜 o 【. t .】


图 3 输 入 密 码 馈 存 模 块
图1密码锁结构图
不处 于报警状态 ,可设置密码 :如果处于报警状态 ,即当反馈信 号上 升沿 到来时 ,禁止安 锁。当R S T E E 为高 电平时 ,这 时锁存 器受控 于 S T  ̄钮 ,进入安锁状 态。其模块 图如图2 E UP 所示 。 ( ) 2 初始 密码 锁存模块 的输入 、 出。 输 初始密码锁存模块的输入 :

_
R S T:系统的复位信号 。当需要复位系统时 ( EE 一般在密码锁 自 动报 警之 后 ),只需使 R S T E E 变为 高电平 ( E E =l) R S T ’ 即可将整 个 系统复位 ,处 于等待输入 密码的状 态。 D 3 t :设置的 电子密码 锁的4 [.】 . ) 位二进 制原始密码 ,可以 自由的
bgn ei
p o e ss r.) r s(t t c a a
e i b gn
i a =0 te f tr ’’h n s t
k 3d wno‘ < a 3d wn oI ; ( o t 1 = ( o t J ) l
e ndi; f e m c s ; nd p e s d <=k: out

基于VHDL的数字密码锁设计

基于VHDL的数字密码锁设计

河南机电高等专科学校《职业技术培训》结课大作业基于VHDL的数字密码锁设计姓名:专业班级:学号:任课教师:时间:成绩:基于VHDL的数字密码锁设计医电08级1班任课教师:摘要:本文要紧介绍运用删,技术设计数字密码锁统分解为假设干子系统,而且进一步细划为假设干模块,然后用硬件描述语言VHDL来设计这些模块,而且别离进行软件和硬的仿真。

仿真结果说明:该数字密码锁能够校验3位十进制数密码,且能够预置密码,显示输入密码,具有输入错误指示有效指示等相应的状态指示。

该密码锁体积小,功耗低,操作简单,不怕掉电,保护和升级都十分方便,具有较好的应用前景。

关键词:QUARlrIIS II;VHDL;数字密码锁目录1. 概述 ....................................................................错误!未定义书签。

2. 设计要求 ............................................................错误!未定义书签。

3. 整体设计 ............................................................错误!未定义书签。

4. 各单元电路的设计和实现 ................................错误!未定义书签。

5. 功能仿真及其结果 ............................................错误!未定义书签。

6. 编译、下载及调试 ............................................错误!未定义书签。

7. 总结与展望 ........................................................错误!未定义书签。

参考文献..................................................................错误!未定义书签。

基于VHDL密码锁的设计PPT

基于VHDL密码锁的设计PPT

完成弹跳消除原理图及仿真波形
输入模块仿真波形
密码锁控制电路


密码锁控制电路,完成对数字按键输入和功能按键 输入的响应控制。 它包括按键数据的缓冲存储电路,密码的清除、变 更、存储、激活电锁电路,密码核对,解锁电路 (开/关门锁电路)等几个小的功能电路数字按键输 入
控制模块仿真波形
密码锁显示电路的设计

可以看出当设定密码为1 5 9 0,当按下*时,ENLOCK出现高电 平,上锁成功。开始解码时,输入的解码值为6 7 0 1,按下#解 锁,密码错误,ENLOCK仍然保持高电平,证明锁没有被打开。 SOUND为按键音当每次有键被按下的时候就伴随着一个伴随音。 当密码输错的时候SOUND一直为高电平当输入正确密码的时候 SOUND才为低电平即报警音消除。接着输入开锁密码1 5 9 0, 按下#键确认,系统判断正确,ENLOCK端变为低电平,SOUND 端也同时变为低电平,证明开锁成功。

密码显示电路的设计比较简单,七段数码管显示 电路主要将待显示数据的BCD码转换成数码器的 七段显示驱动编码。
显示模块仿真波形

密码锁显示电路仿真波形对照仿真图可 以看到,当为1111110时,对应数码管的 a b c d e f为高电平,只有g为低电平, 即数码管显示为0。

密码锁顶层图
密码锁顶层仿真波形
基于VHDL密码锁的设计
指导老师: 作者:
设计要求

设计一个四位密码锁。 该密码锁系统:要求可以用4个数码管显示 并能对密码进行清除,变更等操作。

在MAX+ plus II 设计平台上完成全部编译和仿 真,并下载实现。
密码锁工作模式
密码锁整体设计原理图
  1. 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
  2. 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
  3. 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。

《E D A仿真与实践实习》学院:信息科学与工程学院课题名称:硬件描述语言设计——基于VHDL的电子密码锁的设计班级:学生:学号:指导教师:1 引言在日常的生活和工作中, 住宅与部门的安全防范、单位的文件档案、财务报表以及一些个人资料的保存多以加锁的办法来解决。

若使用传统的机械式钥匙开锁,人们常需携带多把钥匙, 使用极不方便, 且钥匙丢失后安全性即大打折扣。

随着科学技术的不断发展,人们对日常生活中的安全保险器件的要求越来越高。

为满足人们对锁的使用要求,增加其安全性,用密码代替钥匙的密码锁应运而生。

基于EDA技术设计的电子密码锁。

以其价格便宜、使用方便、安全性高、成本低、功耗低、易操作等优点,受到了人们的普遍关注。

而以可编程逻辑器件(FBDA)为设计载体,以硬件描述语言(VHDL)为主要表达方式,以QuartusⅡ5.1开发软件等为设计工具设计的电子密码锁,由于其能够实现密码输入、密码校验、密码设置和更改等功能,因此,能够满足社会对安全防盗的需求。

本设计的各个模块由相应的VHDL程序具体实现,并在QuartusⅡ5.1环境下进行了整体电路的模拟仿真,最终实现“密码锁控制器设计”的要求。

2 设计内容和要求2.1 设计内容:题目:电子密码锁内容:设计一个4位串行数字锁。

(1)开锁代码为4位二进制,当输入代码的位数与锁内给定的密码一致,且按规定程序开锁时,方可开锁,并点亮一个指示灯。

否则进入“错误”状态,并发出报警信号。

(2)锁内的密码可调,且预置方便,保密性好。

(3)串行数字锁的报警由点亮一个灯,直到按下复位开关,报警才停下。

此时,数字锁又自动等待下一个开锁状态。

要求:(1)通过查阅相关技术资料,详细描述电子密码锁的基本原理。

(2)编写电子密码锁的Verilog HDL或VHDL程序,并仿真编译下载验证。

(3)给出完整的系统顶层模块图与波形仿真图。

3 设计分案密码锁控制器是硬件与软件的结合。

根据设计要求,决定以FBDA芯片和VHDL语言设计此电子密码锁。

用一片FBDA芯片实现,从而大大简化了系统结构,降低了成本,提高了系统的保密性和可靠性。

这种设计不仅简化了系统结构,降低了成本,更提高了系统的可靠性和保密性。

另外,采用可编程逻辑器件开发的数字系统,方便地升级和改进。

3.1 系统总框图本系统的硬件部分主要由密码锁控制电路、密码锁显示电路、LED显示电路、报警电路、密码更改与设置电路组成。

整体系统框图如下图2.1所示。

密码锁总框图3.2密码锁的内部结构及主要功能3.2.1密码锁的主要功能密码锁控制器的主要功能有:(1)密码输入:有二个按键来控制(分别代表0和1),每按下一个键,要求在数码管上显示,并依次左移。

(2)密码校验:如果有按键按下,直到松开该按键;红绿灯指示门的状态,也就是密码校验结果,如果密码校验正确,绿亮起,否则如果密码校验错误红灯亮,并凤鸣器响,表明密码错误。

(3)错误报警:密码输入错误开始报警。

(4)密码修改:输入密码正确后4秒内按按键输入要设置和更改的密码,按按键确认密码设置与更改,则密码设置成功4 系统硬件电路4.1 密码锁的显示模块段数码管是电子开发过程中常用的输出显示设备。

在本设计中使用的是8个四位一体、共阴极型七段数码管。

其单个静态数码管如下图所示。

由于七段数码管公共端连接到GND(共阴极型),当数码管的中的一个段被输入高电平,则相应的这一段被点亮。

反之则不亮。

共阳极性的数码管与之相反。

四位一体的七段数码管在单个静态数码管的基础上加入了用于选择哪一位数码管的位选信号端口。

八个数码管的a、b、c、d、e、f、g、h、dp都连在了一起,8个数码管分别由各自的位选信号来控制,被选通的数码管显示数据,其余关闭。

4.2 密码锁控制模块该模块的作用是将输入的密码(暂时寄存于ACC中)跟已经存储的密码(REG中的密码信息)进行对比,如果一样,则密码锁开锁。

而在通过密码验证后可以按按键设定密码。

在这里值得注意的是有一个密码“0000”为开始密码,如果改名密码了但是又忘记了密码,重新下载之后的初始密码只要输入的密码为“0000”则都可通过密码锁。

模块lock是整个设计的核心,它实现密码锁的逻辑功能。

在任何时候按动密码初始化按键内密码设置为程序初始化密码值(在本模块程序中此值为“0000”代码为4位二进制数,当输入代码的位数和位值与锁内给定的密码一致,且按规定程序开锁时,方可开锁,并点亮开锁指示灯(緑灯)亮。

否则,系统进入“错误”状态,并发出报警信号。

串行数字锁的报警方式是点亮指示灯(红灯),并使喇叭鸣叫,直到按下复位开关,报警才停止。

此时,数字锁又自动进入等待下一次开锁的状态。

该4位串行电子密码锁设置4位二进制密码,要求锁内给定的密码是可调的,且设置方便,保密性好。

其具体操作分为输入密码和修改密码两部分4.2.1输入密码密码输入值的比较主要有两部分,密码位数和内容,任何一个条件不满足,都不能打开锁。

若锁内密码为“0000” , key2和key1置低电平,分别表示输入“1” 和“0” 。

输入密码前先进行复位操作,再按着从密码最低位到最高位的顺序依次正确输入0000,会在数码管逐一显示。

经检验,输入的密码等于锁内预先设置的密码密码锁开启信号,锁开启。

同时,密码修改控制信号rw置低电平。

若在输入密码的过程中,4位二进制密码出现输入错误,那么锁不能开启,同时,指示灯红灯亮,发出报警信号。

直到按下复位开关,报警才停止。

此时,数字锁又自动进入等待下一次开锁的状态。

4.2.2修改密码为防止任意进行密码修改,必须在正确输入密码后,才能重新设置密码。

输入正确密码后,锁打开,同时,密码修改控制信号按键rw置低电平,就可直接进行修改密码的操作。

修改密码实质就是用输入的新密码去取代原来的旧密码,按确定按键ok,存储新密码时.5 VHDL程序设计密码锁控制器的各个功能模块都是通过VHDL语言来完成的。

本设计由密码锁显示显示模块、分频模块、密码输入及校验模块、报警模块、密码更改与设置模块几部分组成,各模块分工合作,最后达到密码锁控制器设计的要求。

表4-1 程序的管脚分配表VHDL程序总代码libraryieee;use ieee.std_logic_1164.all;useieee.std_logic_arith.all;useieee.std_logic_unsigned.all;entity lock isport(key1,key2:instd_logic;clk,start,ok,reset,rw,clr: in std_logic;red,green,beep:outstd_logic:='1';dig:outstd_logic_vector(7 downto 0);seg:outstd_logic_vector(7 downto 0));end lock;architecture rt1 of lock issignalkeyin,password:std_logic_vector(3 downto 0):="0000"; signal open1:std_logic:='0';signal beep1:std_logic:='1';signala,shuru:std_logic;signal count: std_logic_vector(2 downto 0):="000";signal temp: std_logic_vector(1 downto 0):="00";process(clk)variable m:integer range 0 to 10;beginifclk'event and clk='1'thenif m=9 thenm:=0;a<='1';elsem:=m+1;a<='0';end if;end if;end process;process(clk,start,ok,clr,rw,reset)beginifclk'event and clk='1'thenif reset='0' thenred<='1';green<='1';beep1<='1';open1<='0';keyin<="0000";shuru<='0';count<= "000";end if;if start='0' thenshuru<='1';end if;ifrw='0' and open1='1'thenshuru<='1';count<="000";end if;if clr='0' thenkeyin<="0000";count<="000";shuru<='1';elsif a='1' and shuru='1' thenif key1='0' thenkeyin<=keyin(2 downto 0)&'0';elsif key2='0' thenkeyin<=keyin(2 downto 0)&'1';if count="011" thenshuru<='0';count<=count+1;elsecount<=count+1;end if;end if;if ok='0'and open1='0' thenif (keyin=password)thenred<='1';green<='0';open1<='1';elsered<='0';green<='1';beep1<='0';open1<='0'; end if;end if;if ok='0'and open1='1'thenpassword<=keyin;end if;end if;end process;process(clk,start,ok,clr,rw,reset)variable g:integer range 0 to 49999999; beginifclk'event and clk='1'thenif g=49999999 theng:=0;elseg:=g+1;end if;if g<=24999999 and beep1='0' thenbeep<='0';elsebeep<='1';end if;end if;end process;process(clk)variable n:integer range 0 to 50000; beginifclk'event and clk='1'thenif n=49999 thenn:=0;if temp="11"thentemp<="00";elsetemp<=temp+1;end if;elsen:=n+1;end if;if count="001" thencase temp iswhen"00" => dig<="01111111" ;ifkeyin(0)='0'then seg<="11000000"; elseseg<="11111001";end if;when others =>seg<="11111111" ; end case ;elsif count="010" thencase temp iswhen"00" => dig<="01111111" ;ifkeyin(1)='0'then seg<="11000000"; elseseg<="11111001";end if;when"01" => dig<="10111111" ; ifkeyin(0)='0'then seg<="11000000"; elseseg<="11111001";end if;when others =>seg<="11111111" ;end case ;elsif count="011" thencase temp iswhen"00" => dig<="01111111" ;ifkeyin(2)='0'then seg<="11000000"; elseseg<="11111001";end if;when"01" => dig<="10111111" ; ifkeyin(1)='0'then seg<="11000000"; elseseg<="11111001";end if;when"10" => dig<="11011111" ; ifkeyin(0)='0'then seg<="11000000"; elseseg<="11111001";end if;when others =>seg<="11111111" ; end case ;elsif count="100" thencase temp iswhen"00" => dig<="01111111" ;ifkeyin(3)='0'then seg<="11000000"; elseseg<="11111001";end if;when"01" => dig<="10111111" ;ifkeyin(2)='0'then seg<="11000000"; elseseg<="11111001";end if;when"10" => dig<="11011111" ; ifkeyin(1)='0'then seg<="11000000"; elseseg<="11111001";end if;when"11" => dig<="11101111" ; ifkeyin(0)='0'then seg<="11000000"; elseseg<="11111001";end if;when others =>null;end case ;elsedig<="11111111" ;seg<="11111111";end if;end if;end process ;end rt1;6 系统仿真当各个模块分别编译成功后,则创建一个个元件符号。

相关文档
最新文档