根据VHDL的电子密码锁的设计
《基于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专题--------电子密码锁一、设计要求:设计一个简单的数字电子密码锁,密码为4位。
功能:1、密码输入:每按下一个键,要求在数码管上显示,并依次左移;2、密码清除:清除密码输入,并将输入置为”0000”;3、密码修改:将当前输入设为新的密码;4、上锁和开锁。
二、电路组成:为达到以上功能,可将电子密码锁分为以下几个模块:1、键盘接口电路:键盘矩阵、键盘扫描、键盘消抖、键盘译码及按键存储。
2、电锁控制电路:数字按键输入、存储及清除。
功能按键的设计。
密码清除、修改与存储。
电锁的激活与解除。
3、输出显示电路BCD译码、动态扫描电路。
三、功能电路的设计:1、键盘接口电路:矩阵式键盘工作原理:矩阵式键盘是一种常见的输入装置,在计算机、电话、手机、微波炉等各工电子产品中被广泛应用。
如图所示为一3×4矩阵式键盘。
矩阵式键盘以行、列形式排列,图中为4行3列,键盘上的每一个按键盘其实是一个开关电路,当某键被按下时,该按键所对应的位置就呈现逻辑0的状态,键盘的扫描可以以行扫或列扫方式进行,图中为行扫方式,KEYR3—KEYR0为扫描信号,其中的某一位为0即扫描其中的一行,具体见表1-1.12键盘扫描信号KEYR3与第一行相连,KEYR2与第二行相连,依此类推。
很显然,扫描信号的变化顺序为:0111、1011、1101、1110,周而复始。
在扫描的过程中,当有键按下时,对应的键位就为逻辑0状态,从而从KEYC2..0读出的键值相应列为0.具体情况如表1-2所示:若从KEYC2..0读出的值全为1时,表示没有键被按下,则不进行按键的处理。
如果的键被按下,则将KEYC2..0读出的送至键盘译码电路进行译码。
表1-2 键盘扫描与其对应的键值的关系时序产生电路:在一个系统的设计中,往往需要多种时钟信号,最为方便的方法是利用一个自由计数器来产生各种需要的频率。
本电路需要:系统主时钟、消抖取样时钟和动态扫描时钟。
基于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端口为数码管位选选择端口。
基于-VerilogHDL的数字密码锁的设计
基于Verilog HDL的数字密码锁设计是一种常见的数字电路设计项目,它可以帮助学生理解数字逻辑电路和Verilog HDL的应用。
下面将详细介绍数字密码锁的设计方案。
一、系统结构设计数字密码锁主要由数字键盘、数码管显示、密码比对模块和控制逻辑组成。
数字键盘用于输入密码,数码管显示用于显示密码输入状态和开锁结果,密码比对模块用于比对输入的密码和预设的密码是否一致,控制逻辑用于控制整个系统的运行。
二、硬件设计1. 数字键盘:数字键盘采用矩阵式键盘,通过扫描按键来获取用户输入的密码。
2. 数码管显示:数码管用于显示密码输入状态,例如显示“请输入密码”、“密码正确”或“密码错误”等信息。
3. 密码比对模块:密码比对模块接收输入的密码和预设的密码,在Verilog HDL中实现密码比对逻辑。
4. 控制逻辑:控制逻辑用于控制密码输入、比对和显示的流程,以及控制门锁的开关。
三、Verilog HDL设计1. 数字键盘输入模块:编写Verilog HDL代码来接收数字键盘输入的密码。
2. 密码比对模块:编写Verilog HDL代码来比对输入的密码和预设的密码,输出比对结果。
3. 数码管控制模块:编写Verilog HDL代码来控制数码管的显示,根据密码比对结果显示相应的信息。
四、系统功能设计1. 密码输入功能:用户通过数字键盘输入密码。
2. 密码比对功能:系统对输入的密码进行比对,判断密码是否正确。
3. 显示功能:数码管显示密码输入状态和开锁结果。
五、仿真与综合完成Verilog HDL代码设计后,进行仿真验证,确保系统能够正常工作。
然后进行综合和布局布线,生成FPGA可编程文件。
六、总结与展望通过数字密码锁的设计,学生可以深入理解数字逻辑电路、Verilog HDL语言的应用,并且掌握数字密码锁系统的设计原理。
未来,可以进一步优化系统功能,增加更多的安全性和便利性功能,提升系统的性能和可靠性。
VHDL电子密码锁课程设计
VHDL电子密码锁课程设计一、课程目标知识目标:1. 学生能理解VHDL语言的基本语法和程序结构,掌握利用VHDL进行数字电路设计的基本方法。
2. 学生能够描述电子密码锁的工作原理,了解其电路组成和功能模块。
3. 学生能够运用所学知识,设计并实现一个简单的电子密码锁程序。
技能目标:1. 学生能够运用VHDL语言进行代码编写,培养编程实践能力。
2. 学生通过课程设计,提高问题分析、解决能力,培养创新思维和团队协作能力。
3. 学生能够运用仿真软件对设计的电子密码锁进行功能验证,提高实际操作能力。
情感态度价值观目标:1. 学生通过课程学习,培养对电子技术和数字电路设计的兴趣,提高学习积极性。
2. 学生在课程实践中,树立正确的工程观念,认识到技术发展对社会进步的重要性。
3. 学生在团队协作中,学会尊重他人、沟通协作,培养良好的团队合作精神。
本课程旨在帮助学生将理论知识与实践相结合,通过电子密码锁的设计与实现,提高学生的编程能力、问题解决能力和团队协作能力,培养学生对电子技术的兴趣和正确价值观。
二、教学内容1. VHDL语言基础:包括VHDL的基本语法、数据类型、运算符、信号与变量、进程和顺序语句等,对应教材第1-3章内容。
2. 数字电路设计方法:介绍组合逻辑电路和时序逻辑电路的设计方法,包括触发器、计数器等基本电路的设计,对应教材第4-5章内容。
3. 电子密码锁原理:分析电子密码锁的工作原理,包括密码设置、验证机制和开锁逻辑等,对应教材第6章实例分析部分。
4. VHDL代码编写:根据电子密码锁的原理,指导学生进行VHDL代码编写,实现密码设置、验证和开锁功能,对应教材第7章编程实践部分。
5. 功能仿真与验证:教授学生使用仿真软件进行电子密码锁的功能验证,确保设计的正确性,对应教材第8章仿真技术部分。
6. 课程设计与实践:安排课程设计任务,指导学生分组进行电子密码锁的设计、编程、仿真和调试,培养学生实践能力和团队协作精神。
电子密码锁vhdl课程设计
电子密码锁vhdl课程设计一、课程目标知识目标:1. 学生理解VHDL语言的基本结构和编程原理;2. 学生掌握利用VHDL进行电子密码锁设计的方法;3. 学生了解电子密码锁的工作原理及其在现实生活中的应用。
技能目标:1. 学生能够运用VHDL语言编写简单的程序;2. 学生能够独立完成电子密码锁的VHDL代码编写、仿真与验证;3. 学生具备分析电子密码锁程序问题及优化代码的能力。
情感态度价值观目标:1. 学生培养对电子信息技术领域的兴趣和热情;2. 学生形成良好的编程习惯,注重团队协作,善于沟通交流;3. 学生认识到电子密码锁在保护信息安全中的重要性,增强信息安全意识。
课程性质:本课程为实践性课程,以项目为导向,结合理论知识与实际操作,培养学生的编程能力和实际应用能力。
学生特点:学生为高年级电子信息技术专业,具备一定的电子基础和编程能力,对实际应用有较高的兴趣。
教学要求:教师需注重理论与实践相结合,引导学生主动参与,鼓励学生思考、提问、实践,提高学生的综合运用能力。
同时,关注学生的个体差异,给予个性化指导,确保每个学生都能达到课程目标。
通过课程学习,使学生在知识、技能和情感态度价值观方面取得具体的学习成果。
二、教学内容1. VHDL语言基础:回顾VHDL的基本语法、数据类型、运算符、信号与变量等基础知识,确保学生掌握VHDL编程的基本框架。
相关教材章节:第一章至第三章2. 电子密码锁原理:讲解电子密码锁的工作原理、基本构成和设计方法,使学生了解电子密码锁在实际应用中的技术要求。
相关教材章节:第六章3. VHDL编程实践:a) 电子密码锁的VHDL代码编写:引导学生根据电子密码锁原理,编写相应的VHDL代码;b) 代码仿真与验证:教授学生如何使用仿真工具进行代码测试,确保程序的正确性和可靠性。
相关教材章节:第四章、第五章4. 程序优化与调试:分析电子密码锁程序中可能存在的问题,教授学生如何对程序进行优化和调试。
基于VHDL的电子密码锁设计
中图分 类号 :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
r
的 电
子
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数字密码锁课程设计一、课程目标知识目标:1. 学生能理解VHDL语言的基本语法和程序结构,掌握数字密码锁的基本原理。
2. 学生能运用VHDL语言编写与数字密码锁相关的程序代码,实现基本功能。
3. 学生了解数字密码锁在实际工程中的应用,理解其重要性。
技能目标:1. 学生能运用所学知识,设计并实现一个简单的数字密码锁系统。
2. 学生通过实际操作,提高编程能力,培养解决实际问题的能力。
3. 学生能通过小组合作,提高团队协作和沟通能力。
情感态度价值观目标:1. 学生培养对电子设计及其编程的兴趣,激发创新意识。
2. 学生认识到科技发展对社会的重要性,增强社会责任感。
3. 学生在团队合作中,学会尊重他人,培养良好的沟通和协作精神。
课程性质:本课程为实践性课程,以培养学生的动手能力和实际编程技能为主。
学生特点:学生具备一定的电子基础和编程能力,对新鲜事物充满好奇心。
教学要求:教师需引导学生将理论知识与实际应用相结合,注重培养学生的实践能力和团队合作精神。
在教学过程中,将目标分解为具体的学习成果,以便于教学设计和评估。
二、教学内容1. 数字密码锁原理介绍:包括密码锁的工作机制、安全性分析等。
相关教材章节:第五章“数字密码锁设计原理”2. VHDL语言基础:回顾VHDL的基本语法、程序结构、数据类型和运算符等。
相关教材章节:第三章“VHDL语言基础”3. VHDL编程实践:a) 设计数字密码锁的实体和端口b) 编写行为描述和结构描述代码c) 仿真与调试相关教材章节:第四章“VHDL编程实例”和第六章“数字密码锁设计实例”4. 数字密码锁功能模块设计:a) 密码设置与修改b) 密码验证c) 锁定与解锁功能相关教材章节:第六章“数字密码锁功能模块设计”5. 数字密码锁系统集成与测试:a) 将各功能模块整合到一起,实现完整密码锁系统b) 进行系统测试,验证系统功能及性能相关教材章节:第七章“数字密码锁系统集成与测试”6. 课程项目实践:分组进行数字密码锁项目设计,培养学生的团队合作能力和实际操作技能。
基于VHDL电子密码锁毕业设计-最终版
基于VHDL的密码锁设计Xxx(xxx 电信工程系通信工程专业,2006级2班,)指导教师:[摘要] 本设计采用自顶向下的数字系统设计方法,将数字密码系统分解为若干子系统,并且进一步细化为若干模块,然后用硬件描述语言VHDL来设计这些模块,并且分别进行软件和硬件仿真。
数字密码锁的设计电路主要包括3个模块,分别为密码输入模块、控制模块、密码显示模块,各模块由相应的VHDL程序具体实现。
该数字密码锁能够校验4位十进制数密码,且可以预置密码,显示输入密码,输入错误指示,解码有效指示。
这种密码锁具有体积小,功耗低,操作简单易于修改和维护,因此具有良好的应用前景。
[关键词]EDA 密码锁 VHDLDesign of The Password Lock Based on VHDLXXX(Grade 06,Class 2,Communication engineering ,Electronics and information engineering Dept.,)Tutor:XXX[Abstract]:This digital encrypted lock is designed with top-down approach.Firstly.the digital encrypted lock system is divided into several subsystems and several modules.Secondly,these modules are described with VHDL,and simulated using software and hardware.The circuit-desing of the Digital-Password-Lock mainly includes three modules. Digital input module, respectively, the control module, the password display module, every module is desingned by VHDL language , The outcome of simulation indicates that this digital encrypted lock can checkout 3 decimal passwords。
基于VHDL语言的电子密码锁的设计(交)
EDA技术的应用引起了电子产品系统开发的革命性变革。利用先进的EDA工具,基于硬件描述语言,可以进行系统级数字逻辑电路的设计。本文简述了VHDL语言的功能及其特点,并以4位串行手机键盘电子密码锁设计为例,介绍了一种在QuartusⅡ6.0开发软件下,基于VHDL硬件描述语言的复杂可编程逻辑器件(CPLD)的新型电子密码锁设计方法,阐述了其工作原理和软硬件设计方法。该密码锁通过扫描电路、键盘译码电路、弹跳消除电路、控制电路和七段译码电路等实现了密码输入、数码清除、密码激活、电锁解除、密码更改和误码报警等功能。本论文对该密码锁的程序进行了功能和时序仿真,结果表明该密码锁的功能满足设计要求,能够实现正常开锁、上锁和修改密码。该密码锁体积小、功耗低、易于维护和升级,有很好的市场前景。
1133cpld工作原理1234fpga工作原理1441系统设计要求1442系统设计方案14421密码锁输入电路的设计17422密码锁控制电路的设计23423密码锁显示电路的设计2443密码锁的整体组装设计25目录iv2651键盘输入去抖电路的vhdl源程序2852密码锁输入电路的vhdl源程序3153密码锁控制电路的vhdl源程序3654密码锁显示电路的vhdl源程序4261系统仿真分析42611键盘输入去抖电路的仿真42612密码锁输入电路的仿真42613密码锁控制电路的仿真43614密码锁显示电路的仿真4562系统硬件验证48参考文献49致谢引言11课题背景自古以来锁具都是人们心目中的铁将军随着社会物质财富的日益增长和人们生活水平的不断提高人们对它要求也越来越高即要安全可靠又要使用方便
本课题要完成的主要任务是基于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 .】
I
—
图 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的数字密码锁设计医电08级1班任课教师:摘要:本文要紧介绍运用删,技术设计数字密码锁统分解为假设干子系统,而且进一步细划为假设干模块,然后用硬件描述语言VHDL来设计这些模块,而且别离进行软件和硬的仿真。
仿真结果说明:该数字密码锁能够校验3位十进制数密码,且能够预置密码,显示输入密码,具有输入错误指示有效指示等相应的状态指示。
该密码锁体积小,功耗低,操作简单,不怕掉电,保护和升级都十分方便,具有较好的应用前景。
关键词:QUARlrIIS II;VHDL;数字密码锁目录1. 概述 ....................................................................错误!未定义书签。
2. 设计要求 ............................................................错误!未定义书签。
3. 整体设计 ............................................................错误!未定义书签。
4. 各单元电路的设计和实现 ................................错误!未定义书签。
5. 功能仿真及其结果 ............................................错误!未定义书签。
6. 编译、下载及调试 ............................................错误!未定义书签。
7. 总结与展望 ........................................................错误!未定义书签。
参考文献..................................................................错误!未定义书签。
基于VHDL的多功能电子密码锁设计
学位论文诚信声明书本人郑重声明:所呈交的学位论文(设计)是我个人在导师指导下进行的研究(设计)工作及取得的研究(设计)成果。
除了文中加以标注和致谢的地方外,论文(设计)中不包含其他人或集体已经公开发表或撰写过的研究(设计)成果,也不包含本人或其他人在其它单位已申请学位或为其他用途使用过的成果。
与我一同工作的同志对本研究(设计)所做的任何贡献均已在论文中做了明确的说明并表示了致谢。
申请学位论文(设计)与资料若有不实之处,本人愿承担一切相关责任。
学位论文(设计)作者签名:日期:学位论文知识产权声明书本人完全了解学校有关保护知识产权的规定,即:在校期间所做论文(设计)工作的知识产权属西安科技大学所有。
学校有权保留并向国家有关部门或机构送交论文的复印件和电子版。
本人允许论文(设计)被查阅和借阅;学校可以公布本学位论文(设计)的全部或部分内容并将有关内容编入有关数据库进行检索,可以采用影印、缩印或其它复制手段保存和汇编本学位论文。
保密论文待解密后适用本声明。
学位论文(设计)作者签名:指导教师签名:年月日论文题目:基于VHDL的多功能电子密码锁设计专业:本科生:(签名)___________指导教师:(签名)___________摘要随着社会的发展,安全防盗受到人们的重视。
而锁一直都是人们的防盗首选。
首先需能防盗且要实用方便。
在现今社会技术环境下电子密码锁已成一种趋势。
本设计采用FPGA 设计一个具有6位密码的电子密码锁并具有火灾报警和数字时钟功能。
论文的硬件部分以EP1C3T144C8芯片为核心的开发板、4*4矩阵键盘、数码管、发光二极管、蜂鸣器等组成。
软件以VHDL语言为基础在FPGA平台上设计。
电子密码锁由分频模块、消抖模块、键盘扫描模块、密码控制模块、密码显示模块组成,实现了密码清除、密码修改、暗文输入、明文输入、上锁、解锁、错误报警的功能;火灾报警模块具有温度显示、报警功能;数字时钟模块显示时钟并可调。
基于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设计背景随着社会的开展和人们生活水平的提高,人们的平安意识也逐步加强。
传统的机械锁由于其构造的简单,失效的事件屡见不鲜,如何实现XX防盗这一问题变的尤其的突出,密码锁以其平安性高、本钱低、功耗低、易操作等优点受到越来越多人的欢送。
基于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设计一种数字电子密码锁的原理和方法,所用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码形式。
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 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程序总代码library ieee;use ieee.std_logic_1164.all;use ieee.std_logic_arith.all;use ieee.std_logic_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"; 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 clk'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)beginif clk'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;if rw='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';end if;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;beginif clk'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;beginif clk'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" ;if keyin(0)='0'then seg<="11000000";else seg<="11111001";end if;when others =>seg<="11111111" ;end case ;elsif count="010" thencase temp iswhen "00" => dig<="01111111" ;if keyin(1)='0'then seg<="11000000";else seg<="11111001";end if;when "01" => dig<="10111111" ;if keyin(0)='0'then seg<="11000000";else seg<="11111001";end if;when others =>seg<="11111111" ;end case ;elsif count="011" thencase temp iswhen "00" => dig<="01111111" ;if keyin(2)='0'then seg<="11000000";else seg<="11111001";end if;when "01" => dig<="10111111" ;if keyin(1)='0'then seg<="11000000";else seg<="11111001";end if;when "10" => dig<="11011111" ;if keyin(0)='0'then seg<="11000000";else seg<="11111001";end if;when others =>seg<="11111111" ;end case ;elsif count="100" thencase temp iswhen "00" => dig<="01111111" ;if keyin(3)='0'then seg<="11000000";else seg<="11111001";end if;when "01" => dig<="10111111" ;if keyin(2)='0'then seg<="11000000";else seg<="11111001";end if;when "10" => dig<="11011111" ;if keyin(1)='0'then seg<="11000000";else seg<="11111001";end if;when "11" => dig<="11101111" ;if keyin(0)='0'then seg<="11000000";else seg<="11111001";end if;when others =>null;end case ;elsedig<="11111111" ;seg<="11111111";end if;end if;end process ;end rt1;6 系统仿真当各个模块分别编译成功后,则创建一个个元件符号。