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

上传人:b****8 文档编号:8988429 上传时间:2023-02-02 格式:DOCX 页数:59 大小:2.11MB
下载 相关 举报
基于VHDL的多功能电子密码锁设计.docx_第1页
第1页 / 共59页
基于VHDL的多功能电子密码锁设计.docx_第2页
第2页 / 共59页
基于VHDL的多功能电子密码锁设计.docx_第3页
第3页 / 共59页
基于VHDL的多功能电子密码锁设计.docx_第4页
第4页 / 共59页
基于VHDL的多功能电子密码锁设计.docx_第5页
第5页 / 共59页
点击查看更多>>
下载资源
资源描述

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

《基于VHDL的多功能电子密码锁设计.docx》由会员分享,可在线阅读,更多相关《基于VHDL的多功能电子密码锁设计.docx(59页珍藏版)》请在冰豆网上搜索。

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

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

学位论文诚信声明书

本人郑重声明:

所呈交的学位论文(设计)是我个人在导师指导下进行的研究(设计)工作及取得的研究(设计)成果。

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

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

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

学位论文(设计)作者签名:

日期:

 

学位论文知识产权声明书

本人完全了解学校有关保护知识产权的规定,即:

在校期间所做论文(设计)工作的知识产权属西安科技大学所有。

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

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

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

学位论文(设计)作者签名:

指导教师签名:

年月日

论文题目:

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

专业:

本科生:

(签名)___________

指导教师:

(签名)___________

 

摘要

随着社会的发展,安全防盗受到人们的重视。

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

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

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

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

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

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

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

该电子锁有稳定性高、功耗低、防盗性强、可拓展等功能。

可将其用于房门、保险柜等地方。

本设计使用VHDL语言,产品可升级,可经过改造变为更优良的系统。

关键词:

密码锁,VHDL,FPGA,EP1C3T144C8

 

Subject:

DesignofelectroniccipherlockbasedonVHDL

Specialty:

Microelectronics

Name:

LuoXiangjun(Signature)___________

Instructor:

YueGaili(Signature)___________

ABSTRACT

Withthedevelopmentofsociety,peoplepayattentiontosafetyprecautions.Thelockhasbeenthepeople'ssecuritychoice.First,energysecurityandtheneedtobepracticalandconvenient.Intoday'ssocietytechnologyenvironmentelectroniclocksbecomeatrend.ThisdesignusesanFPGAdesignhaveelectroniclocks6passwords.

HardwarepartofthethesistoEP1C3T144C8chipasthecoreofthedevelopmentboard,4*4matrixkeyboard,LED,lightemittingdiodes,buzzerandsoon.VHDLlanguagebasedsoftwaredesignonanFPGAplatform.Electroniclocksgenerallycomprisesfrequencymodule,debouncemodule,thekeyboardscanmodule,passwordcontrolmodule,thepassworddisplaymodules,toachieveapasswordremoval,passwordchanges,theciphertextinputinplaintext,lock,unlock,erroralarmfunction.

Theelectroniclockhashighstability,lowpowerconsumption,strongsecurity,scalability,andotherfunctions.Itcanbeusedfordoor,safesandotherplaces.ThedesignusesVHDLlanguage,theproductcanbeupgraded,canberevampedintoabettersystem.

KEYWORDS:

Passwordlock,VHDL,FPGA,EP1C3T144C8

 

 

第1章绪论

1.1密码锁的研究背景及意义

一直锁都是人们的常用防盗工具,随着社会发展,安全防盗问题越来越受到人们重视。

传统的机械锁由于其密码量少,构造简易,不够稳定易破解,结构上的缺陷已不能满足当前社会的需求,在人常变化的地方问题更加突出,如办公室、宾馆、等场所。

电子密码锁是使用了电子技术、数字技术等现代化产品,由于其稳定性好,不容易被破解,使用方便简单,得到了广大用户的赞赏。

而当下很多密码锁使用单片机进行研发,电路繁琐、稳定性不好、性能灵活度不高、可移植性差。

所以电子密码锁的防盗性和与稳定性一直是制造商所关注的主要内容。

电子密码锁是是一种安全性高、稳定性好、较实用的数字电路。

电子密码锁的主要在于对对某些东西或某些地方进行保护,以防止不具有操作权限的人使用某些设施或者进行不当操作,比如ATM机、门禁系统或者保险箱中都有电子密码锁。

在电子技术不断迅速发展的今天,具有防盗报警等功能的多功能电子密码锁代替弹子锁和稳定性、安全性低、易用性差的机械式密码锁已成为一种趋势。

电子密码锁具有机械锁所不具有的优势,它不但可以完成机械锁本身所具有的功能,还可以拥有其他功能,如记忆、火灾预警、防盗报警等,电子密码锁以其稳定高、制作成本低、易操作、灵活性好等优点受到广大用户的赞赏。

通常不同的电子密码锁拥有不一样的功能和操作,但其基本操作流程是一至的,开始先输入密码,然后由进行密码对比,最后根据密码对比的结果来进行处理。

使用大规模、超大规模可编程逻辑器件与EDA(电子设计自动化)技术已经成为现代数字技术发展的潮流,HDL(硬件描述语言)很适用于可编程逻辑器件的研发设计。

尤其是在大容量CPLD(复杂可编程逻辑器件)和FPGA(现场可编程门阵列)的设计中,若采用以往的布尔方程描述方式或门级描述方式,很难迅速高效地完成。

VHDL(高速集成电路描述语言)能提供高级语言结构,能方便地描述大型电路,简洁了使用者的操作,有效快速地完成设计。

 

1.2密码锁的研究现状及发展趋势

在日常生活中,锁具被普遍使用,锁具的发展大致可分为三个阶段:

木质锁、机械锁、电子锁以及用于特定场合的安全密码锁。

目前使用范围最广的是机械锁,这种锁结构简单且价格便宜,但安全性差。

因为其工作原理是通过钥匙齿形来与锁芯配合完成的,一旦拿到钥匙就可开门,而且不只是钥匙,某些不法分子通过其他工具也可在没钥匙的情况下打开大门。

并且这种机械锁多为金属制造易损坏、变形、生锈从而给人们的生活带来不便。

而电子密码锁的安全性、方便性就高于机械锁。

首先有了电子锁就可以不用佩戴钥匙并且再也不用烦恼钥匙丢了怎么办,其次以具有6位密码的电子锁而言其密码的组合有百万次,不用担心会被破解掉。

一直以来人们从未中断过对锁的研究,因为锁一直是人们的安全保障,现在社会上更是出现了各种锁,比如磁卡锁、指纹锁、人脸识别、瞳孔识别等锁。

然而由于制作成本及使用局限性使得其并没有得到广泛使用,同样电子锁也存在其局限性,比如需电源提供能量。

但随着集成电路的发展使得电子密码锁的体积也越来越小,同时功耗也在降低,稳定性和可靠性也得到提高。

最终电子密码锁的局限会得到改善使得其得以普遍使用。

目前电子密码锁的功能已变得多样化,不在仅限于开锁上锁同时还具有防撬、报警、记录、显示功能。

在这方面上电子锁是机械锁所不能比拟的,其发展前景是远远超出了机械锁,而机械锁由于其结构上的局限使其不具有电子锁的发展前景。

并且使用FPGA开发的电子锁具有良好的移植性,可配合其他电路形成更强大门禁系统,在以后的发展中电子密码锁必可获得迅速的发展及更广泛的应用。

1.3本课题的主要研究内容

1)基于VHDL语言编写出可实现多功能的电子密码锁。

2)构思密码锁的总体设计方案,根据总体设计方案设计出相应的子模块。

3)实现密码清除、密码修改、上锁、解锁、错误报警、温度显示、火灾报警、时钟显示等功能。

4)通过对设计的分析,熟悉EDA设计的方法、内容及步骤。

 

1.4本章小结

本章对电子密码锁的研究背景、研究意义、研究现状、发展趋势及研究内容进行了简单介绍,确定了密码锁的开发环境、仿真软件和设计语言,并明确了密码锁的设计方案和具体的开发步骤。

 

第2章设计平台介绍

2.1FPGA简介

现场可编程门阵列FPGA器件是Xilinx公司与1985年首家推出,他是一种新型高密度PLD,采用CMOS—SRAM工艺制作。

FPGA的结构与门阵列PLD不同,其内部由许多独立可编程逻辑模块组成,逻辑快之间可以灵活的相互连接。

FPGA结构一般分为三部分:

可编程逻辑快、可编程I/O模块以及可编程内部连线。

配置数功能据存放在内部SRAM或者熔丝图上,基于SRAM的的FPGA器件工作前需要从外部加载配置数据。

配置数据可存储在片外的EPROM或者计算机上,设计人员可以控制加载控制,在现场修改器件的逻辑功能,即所谓现场可编程。

2.1.1FPGA工作原理

FPGA采用了逻辑单元阵列LCA(LogicCellArray)这样一个概念,内部包括 可配置逻辑模块CLB(ConfigurableLogicBlock)、输出输入模块IOB(InputOutputBlock)和内部连线(Interconnect)三个部分。

现场可编程门阵列(FPGA)是可编程器件,与传统逻辑电路和门阵列(如PAL,GAL及CPLD器件)相比,FPGA具有不同的结构。

FPGA利用小型查找表(16×1RAM)来实现组合逻辑,每个查找表连接到一个D触发器的输入端,触发器再来驱动其他逻辑电路或驱动I/O,由此构成了既可实现组合逻辑功能又可实现时序逻辑功能的基本逻辑单元模块,这些模块间利用金属连线互相连接或连接到I/O模块。

FPGA的逻辑是通过向内部静态存储单元加载编程数据来实现的,存储在存储器单元中的值决定了逻辑单元的逻辑功能以及各模块之间或模块与I/O间的联接方式,并最终决定了FPGA所能实现的功能,FPGA允许无限次的编程。

2.1.2FPGA基本特点

(1)采用FPGA设计ASIC电路,用户不需要投片生产,就能得到合用的芯片。

(2)FPGA可做其它全定制或半定制ASIC电路的中试样片。

(3)FPGA内部有丰富的触发器和I/O引脚。

(4)FPGA是ASIC电路中设计周期最短、开发费用最低、风险最小的器件之一。

(5)FPGA采用高速CHMOS工艺,功耗低,可以与CMOS、TTL电平兼容。

可以说,FPGA芯片是小批量系统提高系统集成度、可靠性的最佳选择之一。

FPGA是由存放在片内RAM中的程序来设置其工作状态的,因此,工作时需要对片内的RAM进行编程。

用户可以根据不同的配置模式,采用不同的编程方式。

2.2QuartusII简介

QuartusII是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图。

2.3VHDL介绍

硬件描述语言(HDL-HardwareDescriptionLanguage)是一种用于设计硬件电子系统的计算机语言,它用软件编程的方式来描述电子系统的逻辑功能、电路结构和连接形式,与传统的门级描述方式相比,它更适合大规模系统的设计,而且VHDL语言可读性强,易于修改和发现错误。

HDL是电子系统硬件行为描述、结构描述、数据流描述的语言。

目前利用硬件描述语言可以进行数字电子系统的设计。

随着研究的深入,利用硬件描述语言进行模拟电子系统设计或混合电子系统设计,也正在探索中。

硬件描述的语言种类很多,有的从PASCAL发展而来,也有一些从C语言发展而来。

有些HDL成为IEEE标准,但大部分是本企业标准。

HDL发展的技术源头是:

在HDL形成发展之前,已有了许多程序设计语言,如汇编、C、PASCAL、FORTRAN、PROLOG等。

这些语言运行在不同硬件平台、不同的操作环境中,它们适合于描述过程和算法,不适合作硬件描述。

在利用EDA工具进行电子设计时,逻辑图、分立电子元件作为整个越来越复杂的电子系统的设计已不适用。

任何一种EDA工具,都需要一种硬件描述语言作为EDA工具的工作语言。

早期的硬件描述语言,如ABEL-HDL、AHDL,是由不同的EDA厂商开发的,互相不兼容,而且不支持多层次设计,层次间翻译工作要由人工完成。

为了克服以上缺陷,1985年美国国防部正式推出了VHDL(VeryHighSpeedICHardwareDescriptionLanguage)语言,即超高速集成电路硬件描述语言;1987年IEEE采纳VHDL为硬件描述语言标准(IEEESTD-1076)。

VHDL是一种全方位的硬件描述语言,包括系统行为级、寄存器传输级和逻辑门级多个设计层次,支持结构、数据流、行为三种描述形式的混合描述,因此VHDL几乎覆盖了以往各种硬件描述语言的功能,整个自顶向下或自底向上的电路设计过程都可以用VHDL来完成。

另外,VHDL还具有以下优点:

VHDL的宽范围描述能力使它成为高层次设计的核心,将设计人员的工作重心提高到了系统功能的实现与调试,只需花较少的精力用于物理实现。

VHDL可以用简洁明确的代码描述来进行复杂控制逻辑的设计,灵活且方便,而且也便于设计结果的交流、保存和重用。

VHDL的设计不依赖于特定的器件,方便了工艺的转换。

VHDL是一个标准语言,为众多的EDA厂商支持,因此移植性好。

目前数字系统的设计可以直接面向用户需求,根据系统的行为和功能要求,自上而下地逐层完成相应的描述、综合、优化、仿真与验证,直到生成器件,实现电子设计自动化。

其中电子设计自动化EDA的关键技术之一就是可以用硬件描述语言来描述硬件电路。

VHDL是用来描述从抽象到具体级别硬件的工业标准语言,它是由美国国防部在20世纪80年代开发的HDL,现在已成为IEEE承认的标准硬件描述语言。

VHDL支持硬件的设计、验证、综合和测试,以及硬件设计数据的交换、维护、修改和硬件的实现,具有描述能力强、生命周期长、支持大规模设计的分解和已有设计的再利用等优点。

VHDL主要用于描述数字系统的结构、行为和功能,其程序结构特点是将一个电路模块或一个系统分成端口和内部功能算法实现两部分。

对于一个电路模块或者数字系统而言,定义了外部端口后,一旦内部功能算法完成后,其他系统可以直接依据外部端口调用该电路模块或数字系统,而不必知道其内部结构和算法。

VHDL的特点使得电子系统新的设计方法——“自顶向下”设计方法更加容易实现。

可以先对整个系统进行方案设计,按功能划分成若干单元模块,然后对每个单元模块进一步细分,直到简单实现的单元电路。

VHDL语言的设计方法是一种高层次的设计方法,也称为系统级的设计方法,其设计步骤如下:

第一步:

按照“自顶向下”的设计方法进行系统划分。

第二步:

输入VHDL语言代码,这是高层次设计中最为普遍的输入方式。

此外,还可以采用图形输入方式(框图,状态图等),这种输入方式具有直观、容易理解的优点。

第三步:

将以上的设计输入编译成标准的VHDL文件。

对于大型设计,还要进行代码级的功能仿真,主要是检验系统功能设计的正确性,因为对于大型设计,综合、适配要花费数小时,在综合前对源代码仿真,就可以大大减少设计重复的次数和时间,一般情况下,可略去这一仿真步骤。

第四步:

利用综合器对VHDL源代码进行综合优化处理,生成门级描述的网表文件,这是将高层次描述转化为硬件电路的关键步骤。

综合优化是针对ASIC芯片供应商的某一产品系列进行的,所以综合的过程要在相应的厂家综合库支持下才能完成。

综合后,可利用产生的网表文件进行适配前的时序仿真,仿真过程不涉及具体器件的硬件特性,较为粗略。

一般设计,这一仿真步骤也可略去。

第五步:

利用适配器将综合后的网表文件针对某一具体的目标器件进行逻辑映射操作,包括底层器件配置、逻辑分割、逻辑优化和布局布线。

适配完成后,产生多项设计结果:

(1)适配报告,包括芯片内部资源利用情况,设计的布尔方程描述情况等;

(2)适配后的仿真模型;

(3)器件编程文件。

根据适配后的仿真模型,可以进行适配后的时序仿真,因为已经得到器件的实际硬件特性(如时延特性),所以仿真结果能比较精确地预期未来芯片的实际性能。

如果仿真结果达不到设计要求,就需要修改VHDL源代码或选择不同速度品质的器件,直至满足设计要求。

第六步:

将适配器产生的器件编程文件通过编程器或下载电缆载入到目标芯片FPGA或CPLD中。

如果是大批量产品开发,通过更换相应的厂家综合库,可以很容易转由ASIC形式实现。

2.4本章小结

本章内容简述了密码锁设计所使用的FPGA开发环境,介绍了FPGA的工作原理和基本特点。

并简述仿真所使用的QuartusII软件和开发所使用的VHDL语言,介绍了“自顶向下”的设计方法。

第3章密码锁设计

本设计以EP1C3T144C8为核心,运用VHDL语言进行程序编写,配以相应硬件电路,实现目标功能。

本设计的硬件由4*4矩阵键盘电路、DS18B20、数码管显示电路、蜂鸣器电路、LED电路等组成。

其硬件框图如图3.1所示。

 

 

 

 

图3.1硬件框图

矩阵键盘用于密码数字键(0—9)、功能键(密码擦除、密码更改、上锁、解锁、转态切换)输入,DS18B20提供温度信号,数码管用于显示温度和密码,采用两个四位一体共阳数码管,数码管前两位显示温度,后六位通过状态切换键显示密码或时钟。

蜂鸣器用于报警(密码输错三次),LED用于模拟开门信号(密码正确时绿灯亮,密码错误红灯亮)。

3.1按键模块

图3.24*4矩阵键盘原理图

图3.2所示的矩阵键盘使用的是复位开关式按键,VCC接5V电源,R1至R4为10KὩ电阻,ABCD四引脚接FPGA芯片的输出,EFGH四引脚接FPGA的输入。

扫描依次为—0111—1011—1101—1110—0111—……从ABCD四引脚输入键盘,当扫描信号为0111时,A引脚被置为低电平,此时若S1键按下则AE引脚导通,故E引脚同样变为低电平,ABCDEFGH的状态为01110111,若S2键按下则F引脚为低电平,ABCDEFGH的状态为01111011,以此类推可得其他按键的引脚状态。

 

图3.3键盘图

数字键1键状态为01110111编码0001,2键状态为01111011编码0010,3键状态为01111101编码0011,4键状态为10110111编码0100,5键状态为10111011编码0101,6键状态为10111101编码0110,7键状态为11010111编码0111,8键状态为11011011编码1000,9键状态为11011110编码1001,0键状态为11101011编码0000。

功能键A键(密码清除键:

密码输错时,按下此键清除密码)状态为01111110编码0011,B键(密码切换键:

密码输入时按下此键可不显示密码)状态为101111110编码0110,C键(上锁键)状态为11011110编码0100,D键(解锁键)状态为11101110编码0001,*键(密码更改键)状态为11100111编码1000,#键(状态切换键:

切换密码和时钟显示)状态为11101101编码0010。

图3.4键盘扫描模块

Clk_in为100HZ时钟,in0至in3接键盘EFGH引脚,row[3..0]接ABCD引脚,data_n为数字键编码输出,data_f为功能键编码输出,flag_n为数字键标志位:

当有数字键按下时flag_n为1否则为0。

flag_f为功能键标志位:

当有功能键按下时flag_n为1

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

当前位置:首页 > 解决方案 > 学习计划

copyright@ 2008-2022 冰豆网网站版权所有

经营许可证编号:鄂ICP备2022015515号-1