电子密码锁Word文件下载.docx
《电子密码锁Word文件下载.docx》由会员分享,可在线阅读,更多相关《电子密码锁Word文件下载.docx(25页珍藏版)》请在冰豆网上搜索。
![电子密码锁Word文件下载.docx](https://file1.bdocx.com/fileroot1/2022-11/24/5f92b12e-11f2-4a46-93f2-00e81c0eea47/5f92b12e-11f2-4a46-93f2-00e81c0eea471.gif)
因此,采用FPGA开发的数字系统,不仅具有很高的工作可靠性,而且升级也极其方便。
本文采用EDA技术,利用QuartusII工作平台和硬件描述语言,设计了一种电子密码锁,并通过一片FPGA芯片实现。
关键词:
电子密码锁FPGA硬件描述语言EDA
FourFPGA-basedelectroniclock
Abstract
Withthedevelopmentofelectronictechnology,withfeaturessuchaselectronicanti-theftalarmlockinsteadofapasswordless,poorsecuritymechanicallocksisaninevitabletrend.Electroniccodelock,comparedwithordinarymechanicallocks,withmanyuniqueadvantages:
confidentiality,securityandstrong,youcannotkeytorememberapasswordtounlock.Currentlyusedbymostelectroniclocksisbasedonchiptechnology,themicrocontrollerasthemaindevice,theencoderanddecoderintosoftwaremodeofHealth.Inpractice,becauseofeasyrunningout,thesystemreliabilitycanbepoor.
Thispaperdescribesafieldprogrammablegatearray-basedFPGAdevicedesignmethodofelectroniclocks.StructuralsystemwithFPGAdevices,allthealgorithmsimplementedentirelybyhardwarecircuit,makingthesystemworkmuchhigherreliability.TheFPGAwithfield-programmablefunctions,whenthedesignneedstochange,justchangetheFPGA,thecontrolandinterfacecircuits,theuseofEDAtoolswillbeupdatedinthedesigncanbedownloadedtotheFPGA,withoutchangingtheexternalcircuitdesign,greatlyimprovingdesignefficiency.Therefore,thedevelopmentofdigitalsystemsusingFPGA,notonlyhashighworkingreliabilityandisalsoextremelyeasytoupgrade.
Inthispaper,EDA,usingQuartusIIworkingplatformandhardwaredescriptionlanguage,designedanelectroniclock,andthroughanFPGAchip.朗读
显示对应的拉丁字符的拼音
字典
Keywords:
lockFPGAhardwaredescriptionlanguageEDA
目录
1绪论1
1.1课程背景1
1.2本课题的研究目的和意义1
1.3EDA的相关介绍2
1.4FPGA的技术开发流程3
1.5VHDL硬件描述语言3
2电子密码锁的设计与实现5
2.1电子密码锁设计要求5
2.2总体设计思想5
2.3子模块的设计思想及实现6
2.3.1输入模块的设计与实现6
2.3.2控制电路设计与实现8
2.3.3显示模块设计与实现10
3电子密码锁的波形仿真11
3.1电子密码锁的设计流程11
3.2系统主要模块的仿真11
4总结14
参考文献15
附录15
1绪论
1.1课程背景
基于FPGA的电子密码锁是新型现代化安全管理系统,它集微机自动识别技术和现代安全管理措施为一体,它涉及电子,机械,计算机技术,通讯技术,生物技术等诸多新技术。
它是解决重要部门出入口实现安全防范管理的有效措施,适用各种场合,如银行、宾馆、机房、军械库、机要室、办公间、智能化小区、工厂、家庭等。
在数字技术网络技术飞速发展的今天,电子密码锁技术得到了迅猛的发展。
它早已超越了单纯的门道及钥匙管理,逐渐发展成为一套完整的出入管理系统。
它在工作环境安全、人事考勤管理等行政管理工作中发挥着巨大的作用。
在该系统的基础上增加相应的辅助设备可以进行电梯控制、车辆进出控制,物业消防监控、餐饮收费、私家车库管理等,真正实现区域内一卡智能管理。
目前使用的电子密码锁大部分是基于单片机技术,以单片机为主要器件,其编码器与解码器的生成为软件方式。
在实际应用中,由于程序容易跑飞,系统的可靠性能较差。
基于FPGA的电子密码锁已经是现代生活中经常用到的工具之一,用于各类保险柜、房门、防盗门等等。
用电子密码锁代替传统的机械式密码锁,克服了机械式密码锁密码量少、安全性能差的缺点。
由于采用的是可编程逻辑器件FPGA,使得系统有相当大的灵活性,随时可以进行硬件升级、扩展,而且系统设计完善以后还可以将主控的FPGA固化成一片ASIC,那么这块ASIC就可以作为专用的数字密码锁芯片。
而且由于硬件可升级,还可随时增加密码位数或增加新的功能,使得密码锁有更高的安全性、可靠性和方便性。
1.2本课题的研究目的和意义
随着人们生活水平的提高,对家庭防盗技术的要求也是越来越高,传统的机械锁由于其构造的简单,被撬的事件屡见不鲜,电子锁由于其保密性高,使用灵活性好,安全系数高,受到了广大用户的欢迎。
现在市场上主要是基于单片机技术的电子密码锁,但可靠性较差。
FPGA即现场可编程门阵列,它是在PAL、GAL、EPLD等可编程器件的基础上进一步发展的产物,是一种超大规模集成电路,具有对电路可重配置能力。
相对于基于单片机技术的电子密码锁,用FPGA器件来构成系统,可靠性提高,并且由于FPGA具有的现场可编程功能,使得电子密码锁的更改与升级更为方便简单。
通过本次设计掌握FPGA系统设计的方法,熟悉FPGA设计的相关软件,以及硬件描述语言的使用,了解电子密码锁的系统构成,利用FPGA实现电子密码锁的设计与实现,可以加深自己对所学专业的认识,关联知识,增强自己的动手能力,积累实践经验,为以后的工作打好基础。
1.3EDA的相关介绍
EDA的特点:
EDA技术对电子系统设计方法的影响:
传统的电路设计的方法是自低向上(Buttumup),即设计师根据设计要求首先选用合适的元器件,然后完成各个单元电路的设计、搭试、性能指标的测试,最后形成系统。
而基于EDA技术的设计方法是自顶向下(ToptoDown),即首先从系统设计入手,在顶端进行功能方框图的划分和结构设计。
然后利用EDA软件进行设计的验证、仿真以及PCB布局布线等工作[12]。
硬件描述语言:
硬件描述语言(HDL)是一种用于进行电子系统硬件设计的计算机高级语言,它采用软件的设计方法来描述电子系统的逻辑功能、电路结构和连接形式。
EDA的另一个特点体现在大规模可编程逻辑器件PLD(ProgrammableLogicDevices)是一种由用户编程以实现某种逻辑功能的新型逻辑器件。
PLD最早出现在20世纪70年代初,其后经历了PROM、PLA、PAL、GAL等几个发展阶段。
80年代中期,美国Xilin公司首先推出了现场可编程门陈列(FPGA)器件。
90年代初,美国Lattice公司又推出了在系统可编程大规模集成电路(ispLSI)。
现通常将高集成度的可编程逻辑器件谶纬复杂可编程逻辑器件(CPLD)。
EDA的突出特点体现在EDA软件开发工具上。
EDA开发工具是利用EDA进行电子系统设计的智能化设计工具。
近年来许多生产可编程逻辑器件的公司都相继推出了适于开发本公司器件的EDA工具,目前国际上生产CPLD和FPGA的在发展上都很有特点。
EDA技术的方法:
EDA技术的方法与以往的设计方法有很大的不同,EDA技术的设计方法主要有行为描述法、IP复用法、ASIC设计法、SOC设计法、继承平台设计法等。
1.行为描述法:
行为描述法的基本特征是视IC芯片为黑盒并将其外部行为盒内部实现分隔开,设计的重点放在芯片功能的实现,而不在芯片制作的方法上。
行为描述法的基础视硬件语言(VHDL)的程序设计方法,硬件描述语言通过硬件的融合,使系统设计实现了软件的硬化和硬件的软化;
2.IP复用法:
IP(Intellectual-Property),也称为IP恢复用技术,是指一个公司出售给另一个公司的设计。
IP核是指完成某种功能的虚拟电路模块,或称为虚部件,IP核形式上可分为硬核、固核和软核:
硬核是版图形式描述的设计模块,常用的有存储器、模拟器件和接口部件等,用户不能改动产品的设计。
用户得到的仅是产品的功能;
软核是完成在寄存器或门级、用HDL进行描述的电路,表现为HDL语言代码,用户得到的仅可以二次修改和设计;
固核是介于硬核和软核之间,允许用户重新定义的,关键的性能参数,优化核内部连接。
在EDA技术中,软核是指复杂的模块程序;
当程序下载到芯片中,通过仿真调试后,则被称为硬核。
3.ASIC设计法:
ASIC是为某种专门应用而制造的集成电路。
ASIC的设计方法一般可分为:
全定制设计、定制设计、半定制设计、硅编译设计和可编译逻辑设计5种。
前3种是半导体工艺师在进行芯片设计生产时使用的:
硅编译设计是自动化设计的方法:
可编译逻辑设计是电子系统设计师根据系统功能要求,通过将编程(硬件逻辑描述语言)方法和工具软件配合,把整体系统下载到半导体工艺师所提供的大规模可编程芯片中
的一种方法,其精华在于设计过程可以处于用户的控制之下。
4.SOC设计法:
SOC设计法是以CP(或DSP)core为核心的集成系统设计
方法,为高层的电子设计方法。
5.集成平台设计法:
集成平台一般包括:
芯片的软件和硬件结构、前置级库。
按照目标技术预置的虚构拟部件SOC衍生器件的快速设计及验证方法。
集成平台设计方法是力求提供一种稳定的、适应特定应用范围的、经过检验合格的IP集合框架,有了该方法就可以在平台应用中提供适应特定产品的设计。
1.4FPGA的技术开发流程
通常FPGA/CPLD的开发流程分为六个步骤:
1.设计概念的确定。
首先,设计人员应根据系统的功能,技术规范,确立系统模块组成或是明确系统层次结构安排。
2.设计输入。
目前大部分软件支持电路图书入与HDL语言输入。
HDL语言使用方便,可移植性好,变成灵活,但效率不高;
电路图输入原理图比较直观,可控性好,效率比较高,通常做法是HDL与电路图相结合的办法。
3.逻辑总和。
把HDL语言设计调入逻辑综合软件中进行逻辑综合,即把语言综合成最简单的布尔表达式。
为了达到资源和时间频率的预定要求,通常要设置综合约束条件,如时间约束,面积约束等等;
在无法达到的时候,又要选择更好的综合软件或是调整设计算法。
综合的结果生成.EDF工业标准文件。
4.布局布线。
将.EDF文件调入PLD厂家提供的软件中进行布线,即把设计好的逻辑安放到PLD/FPGA内。
5.仿真。
需要利用在布局布线中获得的精确参数,用仿真软件验证电路的时序。
1.5VHDL硬件描述语言
VHDL(VeryhighspeedintegratedcircuitHardwareDescriptionLanguage)硬件描述语言从高于逻辑级的抽象层次上描述硬件的功能、信号连接关系及定时关系。
VHDL的设计流程如下图。
图1VHDL设计流程
VHDL语言是对逻辑电路进行描述的高级语言,它与其他高级语言相比既有相同之处,也有其自身特点:
1.VHDL是工业标准的文本格式语言
VHDL已成为一种工业标准。
设计者、EDA工具的供应商以及芯片生产厂家,都要遵循这一标准。
该语言是一种文本格式的语言,ASIC的设计者在设计电路时,就像编写其他高级语言一样,用文字来表达所要设计的电路,这样能比较直观地表达设计者的设计思想,并且易于修改。
2.VHDL能同时支持仿真和综合
VHDL语言是一种能够支持系统仿真的语言。
事实上,ASIC成功的关键在于生产前的设计,而保证设计正确性的主要手段就是系统仿真。
目前在大部分的EDA工具中,都有支持VHDL语言仿真的工具。
这样,设计者在ASIC生产前就能够知道设计的正确与、系统的的性能如何等关键问题。
VHDL不仅仅是一种仿真语言,它的所有语句有相当一部分是不支持综合的,也就是说EDA工具无法根据所描述的VHDL语言产生出电路;
但其中的可综合语句足以描述一个大而完整的系统。
目前所有的高层次综合工具所支持的综合语句,都是IEEE标准的一个子集。
因此,VHDL语言可以有两种完全不同的描述,一种是基于仿真的描述,它可以使用VHDL语言定义的各种语句,这类程序主要适用于编写测试基准程序和各种仿真模型的工程师使用,另外一种就是用于生成具体电路的可综合描述。
它只能使用VHDL中的可综合子集。
它主要适用于从事电路设计的工程师使用。
3.VHDL是一种并发执行的语言
我们知道,几乎所有的高级语言的执行都是顺序的,而VHDL语言在仿真过程中的执行是并行的。
这种特性是符合实际逻辑电路的工作过程的。
4.VHDL支持结构化设计和top-down设计方法
VHDL语言是一种结构化的语言,它提供的语句可以完成多层次结构结构的描述,所以VHDL语言可以支持结构化的设计。
结构化设计就是将一个系统划分为多个模块,而每个模块又可以继续划分为更多的子模块。
这样就可以采用top-down的设计方法,就是从系统整体要求出发,自上而下的逐步将系统内容细化,最后完成系统的整体设计。
5.VHDL的描述与工艺无关
设计者在利用VHDL描述时并不需要关心电路最终将在哪种工艺上实现,EDA工具可以将VHDL源代码映射到不同的工艺床上,提高了设计的可重用性。
6.支持多风格的描述方法
VHDL不仅支持行为级的描述,而且支持数据流及结构描述。
2电子密码锁的设计与实现
2.1电子密码锁设计要求
设计一个基于FPGA的电子密码锁,其基本要求为:
1.密码锁为四位显示,可以通过按键接受密码设置;
按下数字键,第一个数字会显示器的最右端显示,随后每按下一个新数字,显示器上的已经存在的数字整体会向左移一位,并将以新的数字显示出来;
2.当输入密码时,四位密码都正确,则绿灯亮,密码锁开锁;
当其中任意一位不正确时,则红灯亮,密码锁不开锁,当按下复位键时,显示为最初设置,可再重新输入密码。
3.若要更改输入数字,则可按复位键消除所有输入的数字,再重新输入数字。
4.电子密码锁为4位,当输入超过4位时,电路不予理会,且不会显示第4个以后的数字。
2.2总体设计思想
首先根据电子密码锁的逻辑功能,设计逻辑电路。
然后根据逻辑电路,编写FPGA程序实现逻辑功能,再用仿真软件进行仿真调试。
本设计为电子密码锁,通过输入密码和控制模块判断输入密码是否正确,四位密码都正确,则密码锁开锁,只要其中有一位不正确,则密码锁不开锁,同时该系统还应有复位功能,按下复位键,允许重新输入密码。
此电子密码锁的设计中采用自顶向下的设计思路,运用VHDL硬件描述语言对各个模块进行层次化、系统化的描述,并且先设计一个顶层文件,再把各个模块连接起来。
图2系统总体流程图
2.3子模块的设计思想及实现
通过第一章电子密码锁系统结构的分析和对电子密码锁的功能要求,把要设计的系统划分为几个功能模块:
密码输入模块、密码锁控制模块和数码显示模块。
2.3.1输入模块的设计与实现
作为电子密码锁的输入电路,数字密码输入电路可采用一个3×
4的通用数字机械键盘作为本设计的输入设备。
机械式键盘具有低成本、可靠性高、构成电路简单、技术成熟和应用广泛等特点,因此将其应用到通用电子密码锁中是比较适宜的。
输入模块主要包括时序产生电路、键盘扫描电路和弹跳消除电路。
1.时序产生电路
本时序产生电路中使用了三种不同频率的工作脉冲波形:
系统时钟脉冲(它是系统内部所有时钟脉冲的源头,且其频率最高)、弹跳消除取样信号、键盘扫描信号。
当一个系统中需使用多种操作频率的脉冲波形时,最方便的方法之一就是利用一计数器来产生各种需要的频率。
也就是先建立一个N位计数器,N的大小根据电路的需求决定,N的值越大,电路可以分频的次数就越多,这样就可以获得更大的频率变化,以便提供多种不同频率的时钟信号。
若输入时钟为CLK,N位计数器的输出为Q[N-1..0],则Q(0)为CLK的2分频脉冲信号,Q
(1)为CLK的4分频脉冲信号,Q
(2)为CLK的8分频脉冲信号……Q(N-1)为CLK的2N分频脉冲信号;
Q(5DOWNTO4)取得的是一个脉冲波形序列,其值依00-01-10-11-00-01周期性变化,其变化频率为CLK的32分频。
我们利用以上规律即可得到各种我们所需要频率的信号或信号序列。
SIGNALCLK:
STD_LOGIC;
--电路工作时钟脉冲
SIGNALC_KEYBOARD:
STD_LOGIC_VECTOR(1DOWNTO0);
--键扫信号“00-01-10-11”寄存器
SIGNALC_DEBOUNCE:
--去抖时钟信号
2.键盘扫描电路
扫描电路的作用是用来提供键盘扫描信号的,扫描信号变化的顺序依次为1110-1101-1011-0111-1110……依序的周而复始。
扫描时依序分别扫描四列按键,当扫描信号为1110时扫描KY3这一排按键;
当扫描信号为1101室,扫描KY2这一排按键;
当扫描信号为1011时,扫描KY1这一排按键;
当扫描信号为0111时,扫描KY0这一排按键。
每扫描一排按键就检查一次是否有键被按下,如果这排没有按键被按下就忽略,反之,如果出现被按下的键则立刻进行按键编码的动作,且将编码的结果储存于寄存器中。
--扫描信号发生器
COUNTER:
BLOCKIS
SIGNALQ:
STD_LOGIC_VECTOR(5DOWNTO0);
SIGNALSEL:
STD_LOGIC_VECTOR(3DOWNTO0);
BEGIN
PROCESS(CLK_1K)IS
IFCLK_1K'
EVENTANDCLK_1K='
1'
THEN
Q<
=Q+1;
ENDIF;
C_DEBOUNCE<
=Q
(2);
--去抖时钟信号,大约125Hz
C_KEYBOARD<
=Q(6DOWNTO5);
--产生键扫信号***“00-01-10-11”,大约16Hz
=Q
(1);
--仿真时用
=Q(5DOWNTO4);
--仿真时用
CLK<
=Q(0);
ENDPROCESS;
3.弹跳消除电路
由于开关切换的瞬间会在接触点出现信号来回弹跳的现象,对于电子密码锁这种灵敏度较高的电路这种弹跳将很可能会造成误动作输入,从而影响到密码锁操作的正确性。
弹跳现象产生的原因是,虽然每次只是按下按键一次然后放掉,然而实际产生的按键信号却不只跳动一次,经过取样信号的检查后,将会造成误判断,以为键盘按了两次。
图3弹跳现象产生错误的抽样结果
如果调整抽样频率,弹跳现象就可以获得改善。
图4调整抽样频率后得到的抽样结果
因此必须加上弹跳消除电路,避免误操作信号的发生。
特别要注意的是,弹跳消除电路所使用的脉冲信号的频率必须比其他电路使用的脉冲信号的频率更高;
通常将扫描电路的工作频率定在24Hz左右,而将弹跳消除电路的工作频率定在128Hz左右,其工作频率通常是前者的4倍或者更高。
DEBOUNUING:
BEGIN
U1:
DEBOUNCINGPORTMAP(D_IN=>
KEY_IN(0),
D_OUT=>
C(0),
CLK=>
C_DEBOUNCE);
U2:
KEY_IN
(1),D_OUT=>
C
(1),
U3:
KEY_IN
(2),D_OUT=>
C
(2),
C_DEBOUNCE;
2.3.2控制电路设计与实现
密码锁的控制电路是整个电路的控制中心,主要完成对数字按键输入和功能按键输入的相应控制。
1.数字按键输入的响应控制
1.如果按下数字键,第一个数字会从显示器的最右端开始显示,此后每新按一个数字时,显示器上的数字必须左移一格,以便将新的数字显示出来。
2.假如要更改输入的数字,可以按倒退按键来清除前一个输入的数字,或者按清除键清除所有出入的数字,再重新输入四位数。
3.当输入的数字键超过预设位数时,电路不予理会,而且不再显示以后的数字。
2.功能按键输入的响应控制
1.清除键:
清除所有的输入数字,即作归零动作。
2.激活电锁键:
按下此键时可将密码锁的门上锁。
3.解除电锁键:
按下此键会检查输入的密码是否正确,若密码正确无误则开门。
--CTRL.VHD
LIBRARYIEEE;
USEIEEE.STD_LOGIC_1164.ALL;
USEIEEE.STD_LOGIC_ARITH.ALL;
USEIEEE.STD_LOGIC_UNS