基于VHDL的电子密码锁设计与仿真.docx

上传人:b****1 文档编号:1319465 上传时间:2023-04-30 格式:DOCX 页数:51 大小:957.55KB
下载 相关 举报
基于VHDL的电子密码锁设计与仿真.docx_第1页
第1页 / 共51页
基于VHDL的电子密码锁设计与仿真.docx_第2页
第2页 / 共51页
基于VHDL的电子密码锁设计与仿真.docx_第3页
第3页 / 共51页
基于VHDL的电子密码锁设计与仿真.docx_第4页
第4页 / 共51页
基于VHDL的电子密码锁设计与仿真.docx_第5页
第5页 / 共51页
基于VHDL的电子密码锁设计与仿真.docx_第6页
第6页 / 共51页
基于VHDL的电子密码锁设计与仿真.docx_第7页
第7页 / 共51页
基于VHDL的电子密码锁设计与仿真.docx_第8页
第8页 / 共51页
基于VHDL的电子密码锁设计与仿真.docx_第9页
第9页 / 共51页
基于VHDL的电子密码锁设计与仿真.docx_第10页
第10页 / 共51页
基于VHDL的电子密码锁设计与仿真.docx_第11页
第11页 / 共51页
基于VHDL的电子密码锁设计与仿真.docx_第12页
第12页 / 共51页
基于VHDL的电子密码锁设计与仿真.docx_第13页
第13页 / 共51页
基于VHDL的电子密码锁设计与仿真.docx_第14页
第14页 / 共51页
基于VHDL的电子密码锁设计与仿真.docx_第15页
第15页 / 共51页
基于VHDL的电子密码锁设计与仿真.docx_第16页
第16页 / 共51页
基于VHDL的电子密码锁设计与仿真.docx_第17页
第17页 / 共51页
基于VHDL的电子密码锁设计与仿真.docx_第18页
第18页 / 共51页
基于VHDL的电子密码锁设计与仿真.docx_第19页
第19页 / 共51页
基于VHDL的电子密码锁设计与仿真.docx_第20页
第20页 / 共51页
亲,该文档总共51页,到这儿已超出免费预览范围,如果喜欢就下载吧!
下载资源
资源描述

基于VHDL的电子密码锁设计与仿真.docx

《基于VHDL的电子密码锁设计与仿真.docx》由会员分享,可在线阅读,更多相关《基于VHDL的电子密码锁设计与仿真.docx(51页珍藏版)》请在冰点文库上搜索。

基于VHDL的电子密码锁设计与仿真.docx

基于VHDL的电子密码锁设计与仿真

本科毕业论文(设计)

 

论文(设计)题目:

基于VHDL的电子密码锁设计与仿真

 

学院:

计算机科学与信息

专业:

信息安全

班级:

2007级

学号:

070806110221

学生姓名:

姜峰

指导教师:

栾岚

 

年月日

 

贵州大学本科毕业设计

诚信责任书

本人郑重声明:

本人所呈交的毕业论文(设计),是在导师的指导下独立进行研究所完成。

毕业论文(设计)中凡引用他人已经发表或未发表的成果、数据、观点等,均已明确注明出处。

特此声明。

 

设计作者签名:

日期:

 

 

 

基于VHDL的电子密码锁设计与仿真

中文摘要

随着社会物质财富的不断积累,安全防盗以成为社会问题。

而锁自古以来就是人们防盗的首选。

要既能防盗又要实用方便。

在当下技术环境下数字锁成为一种趋势。

本设计采用EDA技术设计一个防盗数字密码锁,欲解决此问题。

在QuartusII环境下采用VHDL硬件描述语言设计电子密码锁,阐述了其工作原理,给出了具体的电路图和仿真波形。

该密码锁具有体积小、功耗低、保密性强、错误累积报警等功能。

可应用于住宅、保险箱等需要防盗的场所,实用性较强。

采用VHDL描述,产品的扩展性强,很容易于最新技术结合形成功能更加强大的系统。

本系统采用矩阵键盘输入。

密码由8位十进制数组成,密码多一位少一位都算错误,安全性有足够保障。

并且当错误开锁次数达到3次报警器将鸣叫,形成一个连锁防盗系统。

在错误尚未发生时,可通过复位回到密码输入状态,体现人性化的设计。

在报警时,警报的切断只能由保安室或实用者不能接触的地方控制,为无关操作人员增加了心理威慑作用。

关键词:

QuartusII,VHDL,密码锁,电路仿真

 

DesignandsimulationofdigitalcodedlockbasedonVHDL

Abstract

Withtheaccumulationofsocialmaterialwealth,thepreventionofthieveshasbecomeasocialproblem.Lockisalwaysthefirstchoicewhenpeopledealwiththieves.Itrequireslocknotonlytobeagainstwiththeft,butalsopracticalandconvenient.Underthecircumstanceofcurrenttechnology,numberspadlockisbecomingatrendamonglocks.ThisdesignmakesuseofEDAtechnologytodesignaburglardigitalcombinationlocktopreventfromthieves.ThisdesignwilluseVHDL(HardwareDescriptionLanguage)underthecircumstanceofQuartusIItoexpounditsworkingprincipleandprovidecircuitdiagramandsimulationwaveform.Thiscodedlockhasthecharacteristicofsmallsize,lowconsumption,highsecurityandthefunctionoferroraccumulationalarmetc.Thiskindoflockispracticalbecauseitcanbeusedinresidence,proofboxandotherplaceswherehavetheneedofpreventfromthieves.Thelockusematrixkeyboardtoinput.It’shasenoughsbecauseitspasswordconstitutesof8decimalnumbersanditwouldbewrongifthenumberismorethan8orlessthan8.It’shumanizationbecausetherewillbealarmifthereare3timeserrorswheninputthepassword.Thealarmcanonlybecutbypublicsecurityorwherebeyondthievestouch,whichwillmakethievesmoreafeard.

Keywords:

QuartusII,VHDL,codedlock,circuitsimulation

 

第一章引言

随着社会物质财富的日益增长,安全防盗已成为社会问题。

而锁自古以来就是把守门户的铁将军,人们对它要求甚高,既要安全可靠地防盗,又要使用方便,这也是制锁者长期以来研制的主题。

数字密码锁是实际生活中运用广泛的一种数字电路,主要功能是对某些操作进行加密保护,目的是避免无权人员使用某些设施或者进行越权操作。

本章首先介绍本设计的目的、设计意义以及设计要求。

然后简述相关领域的发展。

1.1设计目的

硬件描述VHDL语言,描述能力强、覆盖面广、抽象能力强,采用VHDL建立硬件模型可以从繁琐的元件设计转向功能设计。

用VHDL可以快速方便地设计出符合各种要求的数字密码锁,而且操作简单,密码的位数可适当增该,增强其安全性,且很容易做成ASIC芯片,设计过程达到高度自动化,设计完成后可在Quartus

环境下进行电路的模拟仿真。

使设计成本尽可能降低。

本次设计为开发一款体积小,功耗低,操作简易便于修改维护,具有良好应用前景的数字密码锁。

1.2设计意义

在日常生活中和工作中,住宅的安全,单位的文件,和一些个人资料的保存。

人们往往采用上锁的方法来解决。

如果采用传统的机械锁,人们往往需要携带很多钥匙,既不方便,钥匙的丢失还会使安全性大打折扣。

随着物质财富的积累和科学技术的发展,人们对锁的要求越来越高。

密码锁代替机械锁成为一种趋势。

密码锁具有安全性高、低成本、低功耗、易于操作,等等优点。

在安保领域,有防盗报警功能的电子密码锁逐渐取代了传统机械密码锁。

机械密码锁结构的复杂度和密码位数成正比成本高且安全性能差。

而电子密码锁无论在技术上还是性能上都优于机械密码锁。

当然,特定的使用环境除外。

随着大规模集成电路技术的发展,特别是硬件描述语言(VHDL),出现了用微型智能密码锁,它是除了具有电子密码锁的功能外,还拥有了智能化管理,专家分析系统,从而使密码锁的作用,比如高安全性、可靠性,应用日益广泛的应用。

人们对安全的重视和科学技术的发展,许多电子智能锁如,指纹识别、IC识别等已经出现在国内外。

但是这些产品的特点需要一个特别的指纹或有效卡,成本相对较高不益于普及使用。

针对当前技术和水平、市场接纳、电子密码锁是这类电子防盗产品的主流。

1.3设计要求

根据实际需求数字密码锁应具有以下功能:

1)采用8位十进制数字作为内置密码,修改密码必须重构逻辑。

2)系统通电后必须给密码锁上锁,即按上锁键SETUP,表示密码锁准备就绪,可以接受外部输入的密码数字,这时用来指示密码锁工作情况的指示灯和扬声器处于不工作状态,系统处于上锁等待密码输入状态。

3)开锁。

开锁操作过程如下:

I按下复位键START,此时系统各部分处于初始状态。

II输入密码,一次键入8个十进制数字。

III按下开锁键OPEN,若密码正确,锁被打开(用绿灯LD点亮表示);若密码不正确,锁不被打开(绿灯LD不亮)不提示错误(用红灯HD表示)。

IV使用者按错号码,可在按开锁键OPEN以前按复位键START消除输入,重新输入密码。

V开门成功事物处理完毕后,必须按下上锁键SETUP,是系统进入就绪状态。

VI所有输入采用键盘输入。

4)报警功能。

系统允许错误开门2次,当第3次错误开门将报警。

在报警状态,上锁键SETUP、复位键START、开门键OPEN、数字键0~9应不起作用,需用另一内部设置键解除锁定(ISETUP),该按键在实际应用中可放置在保安室或其他使用者不能接触的地方。

在本设计中为描述方便,将内置与键盘中。

1.4相关领域概述

本节将对电子密码锁的开发环境QuartusII和最后的实现环境CPLD进行简要介绍。

1.4.1QuartusII简介

本设计是基于QuartusII9.0的,在此对它作一些介绍。

QuartusII[12]是Altera提供的FPGA/CPLD开发集成环境,Altera是世界上最大的可编程逻辑器件供应商之一。

QuartusII在21世纪初推出,是Altera前一代FPGA/CPLD集成开发环境MAX+PLUSII的更新换代产品,其界面友好,使用便捷。

QuartusII提供了一种与结构无关的设计环境,使设计者能方便地进行设计输入、快速处理和器件编程。

Altera的QuartusII提供了完整的多平台设计环境,能满足各种特定设计的需要,也是单芯片可编程系统(SOPC)设计的综合性环境和SOPC开发的基本设计工具,并为AlteraDSP开发包进行系统模型设计提供了集成综合环境。

QuartusII设计工具完全支持VHDL、Verilog的设计流程,其内部嵌有VHDL、Verilog逻辑综合器。

QuartusII也可以利用第三方的综合工具,如LeonardoSpectrum、SynplifyPro、FPGACompilerII,并能直接调用这些工具。

同样,QuartusII具有仿真功能,同时也支持第三方仿真工具,如ModelSim。

此外,QuartusII与MATLAB和DSPBuilder结合,可以进行基于FPGA的DSP系统开发和数字通信模块的开发。

QuartusII包括模块化得编译器。

编译器包括的功能模块由分析/综合器(Analysis&Synthesis)、适配器(Fitter)、装配器(Assembler)、时序分析器(TimingAnalyzer)、设计辅助模块(DesignAssistant)、EDA网表文件生成器(EDANetlistWriter)、编辑数据接口(CompilerDatabaseInterface)等。

可以通过选择StartCompiler来运行所有的编译器模块,也可以通过选择Start单独运行各个模块。

还可以通过选择CompilerTool(Tools菜单),在CompilerTool窗口中运行该模块来启动编译器模块。

在CompilerTool窗口中,可以打开该模块的设置文件或报告文件,或打开其他相关窗口。

QuartusII编译器支持的硬件描述语言有VHDL、Verilog和AHDL。

QuartusII支持层次化设计,可以在一个新的编辑输入环境中对使用不同输入设计方式完成的模块(元件)进行调用,从而解决了原理图与HDL混合输入设计的问题。

在设计输入之后,QuartusII的编译器将给出设计输入的错误报告。

可以使用QuartusII带有的RTLViewer观察综合后的RTL图。

1.4.2CPLD简介

CPLD(ComplexProgrammableLogicDevice)复杂可编程逻辑器件[12],是从PAL和GAL器件发展出来的器件,相对而言规模大,结构复杂,属于大规模集成电路范围。

早期的CPLD大多采用EPROM编程技术,其编程过程与简单PLD一样,每次编程需要在专用或通过设备上运行。

后来采用E2PROM和闪烁存储器技术,使CPLD具有了“在系统可编程(ISP)”特性。

所谓在系统可编程是指未编程的ISP器件可以直接焊接在印制电路板上,然后通过计算机的数据传输端口和专用的编程电缆对焊接在电路板上的ISP器件直接多次编程,从而使器件具有所需要的逻辑功能。

这种编程不需要使用专用的编程器,因为已将原来属于编程器的编程电路和升压电路集成在ISP器件内部。

ISP技术使得调试过程不需要反复拨插芯片,从而不会产生引脚弯曲变形现象,提高了可靠性,而且可以随时对焊接在电路板上的ISP器件的逻辑功能进行修改,从而加快了数字系统的调试过程。

目前。

ISP已成为系统在线远程升级的技术手段。

目前,绝大多数FPGA器件具有ISP功能。

例如,Altera公司的MAX7000S(5V)、MAX7000A(3.3V)和MAX7000B(2.5V)系列,Xilinx公司的XC9500系列以及Lattice公司的CPLD器件等。

 

第二章开发方案与论证

本章将首先介绍数字锁两种不同的开发方案,从方案的原理,实现的成本进行比较。

然后论证本设计采用的方案——串行方案。

2.1开发方案

开发方案有串行开发方案和并行开发方案下面分别介绍

2.1.1并行开发方案

并行开发方案,密码采用并行输入方式。

密码输入完毕后再一次性比较。

原理图如图2.1所示。

图2.1并行开发原理图

数据通过键盘输入,消抖后编码存入数据缓冲器。

在控制器的控制下与预存密码进行比较正确则开启密码锁。

达到错误次数报警。

2.1.2串行开发方案

串行开发方案,密码采用串行输入。

边输入,边比较。

多拨、少拨均视为错误。

原理图如图2.2所示。

图2.2串行开发原理图

数据通过键盘输入,消抖后编码。

在控制器的控制下与预存密码进行比较正确则开启密码。

否则视为错误开启,达到错误次数报警。

2.2方案论证

串行开发所需硬件资源少,本设计采用串行开发方案。

依据上述对数字锁系统的功能要求,其系统整体框图如图2.3所示,它将系统划分为控制器和受控电路两部分,受控电路由消抖电路模块、编码器、比较器、密码预置、计数器、触发器等模块组成。

数字密码锁控制系统的输入信号包括:

数字密码键盘0~9,上锁键STEUP,复位键START,解除锁定键ISETUP,开锁键OPEN;输出信号包括:

开门指示灯LD,错误指示灯HD,报警器BG。

数字锁的密码采用3x4键盘输入,由于3x4键盘输出为行线/列线信号,所以首先经编码器编码(图中kr,kc为总线信号)将行线/列线信号变为相应0~9的8421BCD码并与原存储于系统中的密码相比较,因而需要有一个4位等值比较器,并将比较结果DEP反馈给控制器。

图2.3数字密码锁系统电路整体框图

编码器模块的作用是将键盘输入的信号编成BCD码,并且每键入一个数码,应向控制器送一个脉冲DATA_IN表示有数据输入。

比较器模块的作用是将输入的密码和内置密码进行比较,并将结果DEP反馈给控制器。

密码预置模块的作用是预置内部密码,因为内部预置密码采用8位十进制数,且用BCD码表示,需32个输入端送入,所以可选用32选4数据选择电路来选择密码。

由于密码是串行输入,依次分别于一个预置码进行比较,因为8个十进制预置码是提前预置好的,所以还需要一个计数器来选择目前要比较第几个数据。

32选4数据选择器的3位地址码用一个模8计数器控制。

控制器向计数器提供一个清零信号RESET_CNP和时钟信号CNP,每次通过键盘输入一个密码数字,控制器向计数器提供一个时钟脉冲CNP,使计数器加1,当计数器到8时,说明8个密码数字已经比较完毕,此时计数器产生进位信号CO8反馈给控制器,控制器进入待启动状态或预警状态。

由于输入都采用键盘输入,其按下时刻和持续时间长短是随机的,且存在因簧片反弹引起的电平抖动现象。

必须在每个开关后面安排一个消抖同步模块,以保证系统能真确捕捉到输入脉冲。

消抖同步模块的作用是保证系统能捕捉到输入脉冲,并保证没按一次键只形成一个宽度等于系统时钟周期的脉冲。

报警计数器模块的作用是,每一次开启错误,控制器向报警计数器提供一个时钟信号HD,使计数器加1,当计数器到3时,说明错误次数达到3次,模3进位信号CO3反馈给控制器,控制器发出报警信号BG。

解除锁定或正确开门后控制器向报警计数器发出清零信号ISETUP,使计数器清零。

控制器模块在密码系统每收到一个输入的密码数字时,应向比较计数器发出一个时钟信号CNP。

当密码系统在按下开锁键OPEN前收到第9个时钟信号时,应装入预警状态,等待按下开锁键OPEN后发出错误信号HD。

因此,密码锁系统没输入一个密码数字,应向控制器送入一个脉冲DATA_IN,显然此信号也应同步,即形成宽度只占一个系统时钟的脉冲。

密码锁系统的输出有开锁指示灯LD(绿灯)、错误指示灯HD(红灯)和扬声器。

LD和HD由触发器控制。

控制器分别向触发器提供一个置位信号S_LD、S_HD,按下上锁键时向触发器提供一个复位信号RESET_L,用来控制绿灯LD、红灯HD工作。

 

第三章电路模块功能设计

数字密码锁系统电路设计采用自顶而下的设计方法。

自顶而下设计方法的主要思想是对数字系统分模块,分层次进行设计,这样可以将复杂的设计划分成若干个相对简单的模块,不同的模块可完成数字系统中某一部分的具体功能,从而使电路设计大为简化。

本章对个模块进行功能设计,即各模块的功能描述。

将分受控电路和控制电路两部分描述。

3.1受控电路

受控电路的主要版块有,键盘编码电路模块、消抖电路模块、比较器模块、密码预置木块、比较计数器模块和报警计数模块

3.1.1键盘编码电路模块

数字密码锁控制系统的输入信号包括:

数字密码键盘0~9,复位键START,开锁键OPEN,上锁键SETUP,功能键ISETUP。

4*4矩阵式键盘完全能满足上述要求,且经济美观。

根据需要,键盘布局如图3.1所示。

图3.1键盘按键布局

根据4*4矩阵式键盘特点,采用行列式编码方式。

为减少硬件的开销,只对数字0~9进行编码。

行线kc送高电平(1111),列线kr送低电平(000)。

当没有按键时,行线和列线是断开的。

当有按键时,行线和列线信号将相应有所改变,据此,可对此类信号进行编码,达到识别的目的。

键盘的输入原理如图3.2所示。

图3.2键盘编码原理

3.1.2按键消抖电路模块

由于本设计采用的是键盘输入,按键时手部的抖动,输入信号就会产生不稳定脉冲。

如果信号不加以处理就可能会导致错误的信号识别。

因此每个输入端就各需要一个消抖电路。

也就是说,输入信号波形有抖动,但经过消抖之后,其输出也为正规的矩形波。

如图3.3所示的信号波形,在正常信号的上升沿和下降沿含有一些随即干扰信号,或随即抖动。

为了去除这些抖动干扰脉冲,可采用如图3.4所示电路来实现这个目标。

图3.3信号上升与下降沿都含有随机干扰抖动信号

图3.4所示电路有2个上升沿D触发器和一个2输入与门构成。

设key_in是输入信号,clk是消抖电路本身的工作时钟。

2个D触发器连接成同步时序方式,即将他们的输入端都连在一起。

输入信号以移位串行方式向前传递。

信号的输出口是key_out。

当信号输入电路后,能在key_out输出脉冲信号的条件是,必须2个D触发器的输出端都同为1,从而2输入与门来输出高电平。

由于干扰信号是一群宽度狭窄的随机信号,在串入是,很难同时时与门输出为1,而只有正常信号才有足够的宽度通过此电路,从而起到“滤波”功能。

图3.4消抖电路

3.1.3密码比较电路模块

密码验证用于将编码器转化后的8421BCD码与预置密码进行比较。

因此只需要比较两组数据是否相等,不需要知道谁大谁小,所以采用等值比较器。

设比较器的4个输入端为y0~y3,输出端为f0~f3,当比较两数正确时输出一个dep有效信号“1”给控制器,否则输出为“0”。

如图3.5所示。

图3.5密码验证

3.1.4密码比较计数器电路模块

本设计采用串行输入,所以还得有计数器,用于判断密码比较到第几个数字和密码是否输入完毕。

计数器是一种累积脉冲的逻辑部件,clr为复位信号,高电平有效。

当复位信号clr为低电平时,脉冲信号clk每来一个脉冲就计数一次,模8进位信号co8用于判断密码是否输入完毕,q[i]用于判断目前比较到第几个数字。

设计如图3.6所示。

图3.6密码比较计数器

3.1.5密码预置电路模块

密码预置电路用于设置密码,本系统密码采用内置方式。

修改密码需重够逻辑。

密码预置需能判断需比较第几位密码。

系统内置8位密码用8421BCD码表示则需要4位输出y0~y3。

q[i]接收由密码比较计数器发来的信号用于判断比较第几位密码。

设计如图3.7所示。

图3.7密码预置

3.1.6错误报警电路模块

在实际运用中,增加报警功能有他的必要。

本系统采用3次错误报警设置。

那么就需要一个模3计数器。

同密码比较计数器原理基本一样。

clr为复位信号,高电平有效。

当复位信号clr为低电平时,脉冲信号clk每来一个脉冲计数一次,模3进位信号co3用于判断错误次数是否达到上限。

设计如图3.8所示。

图3.8报警计数器

3.1.7触发器电路模块

触发器是一个门输出电路,用LD表示密码锁打开,HD表示开启过程出错。

控制器向该模块提供置数和复位信号(低电平有效),用于驱动两个指示灯和门电路工作。

当复位信号RESET_L有效时,指示灯LD和HD熄灭。

RESET_L为脉冲信号,门状态是一个连续状态,所以采用非门信号作为输出。

设计图如图3.9所示。

图3.9触发器

3.2控制器电路

控制器是整个电子密码锁的核心。

根据设计要求,可知控制器共有6个状态,即待锁状态A、上锁状态B、输入密码状态C、待启动装袋D、预警状态E和报警状态F。

控制器模块工作状态流程图(简称ASM图)如图3.10所示。

矩形框:

工作状态菱形框:

分支条件平行四边形框:

条件输出

开门键(OPEN)上锁(SETUP)解除锁定(ISETUP)上锁(STATR)

图3.10控制器工作状态流程图

(1)待锁状态A

待锁状态是指密码锁系统处于打开、报警后的状态。

此时数字锁尚未“锁好”,还未进入正常运行,因此系统不接受除上锁键(SETUP)或解除锁定键(ISETUP)外的任何输入信号。

当按下上锁键后,系统将进入上锁状态,且将开门标志灯LD、错误灯HD熄灭,警报器声音切断,因而需输入RESET_L复位信号。

在图3-10待锁状态的流程中,当SETUP=1时进入第二状态,START=0时维持原状态;当SETUP=1时输出RESET_L复位信号。

至于en使能信号,是用来控制数据输入信号DATA_IN、开门信号OPEN输入的,在本状态皆应无效且条件上锁SETUP无关,是一种无条件输出,因而标在算法状态框旁边,并用箭头↓表示无效。

(2)上锁状态B

系统的第二状态实在按下上锁键SETUP以后,数字锁已“锁好”,系统正常运行,等待执行开锁状态。

当按下START时,将转入开锁状态,开锁程序开始执行,等待输入密码数字,此时应将计数器清零,故在第二工作状态中有一条输出框,输出比较计数器清零信号RESER_CNP。

(3)输入密码状态C

进入此状态时,en使能信号变为有效允许输入密码数字0~9或按下开锁键OPEN,故而在状态框旁边标有en↑。

该状态每收到一个信号应线判断是密码数据信号DATA_IN还是开锁信号OPEN。

如果是开锁信号OPEN则不符合开锁程序,应发出开锁错误信号,级发出红灯信号HD;若是密码信号,

展开阅读全文
相关资源
猜你喜欢
相关搜索
资源标签

当前位置:首页 > 人文社科 > 法律资料

copyright@ 2008-2023 冰点文库 网站版权所有

经营许可证编号:鄂ICP备19020893号-2