毕业设计论文基于FPGA的电子密码锁设计.docx
- 文档编号:11092675
- 上传时间:2023-02-25
- 格式:DOCX
- 页数:35
- 大小:409.51KB
毕业设计论文基于FPGA的电子密码锁设计.docx
《毕业设计论文基于FPGA的电子密码锁设计.docx》由会员分享,可在线阅读,更多相关《毕业设计论文基于FPGA的电子密码锁设计.docx(35页珍藏版)》请在冰豆网上搜索。
毕业设计论文基于FPGA的电子密码锁设计
摘要
随着电子技术的发展,具有防盗报警等功能的电子密码锁代替密码量少、安全性差的机械式密码锁已是必然趋势。
电子密码锁与普通机械锁相比,具有许多独特的优点:
保密性好,防盗性强,可以不用钥匙,记住密码即可开锁等。
目前使用的电子密码锁大部分是基于单片机技术,以单片机为主要器件,其编码器与解码器的生成为软件方式。
在实际应用中,由于程序容易跑飞,系统的可靠性能较差。
本文主要阐述了一种基于现场可编程门阵列FPGA器件的电子密码锁的设计方法。
用FPGA器件构造系统,所有算法完全由硬件电路来实现,使得系统的工作可靠性大为提高。
由于FPGA具有现场可编程功能,当设计需要更改时,只需更改FPGA中的控制和接口电路,利用EDA工具将更新后的设计下载到FPGA中即可,无需更改外部电路的设计,大大提高了设计的效率。
因此,采用FPGA开发的数字系统,不仅具有很高的工作可靠性,而且升级也极其方便。
本文采用EDA技术,利用QuartusII工作平台和硬件描述语言,设计了一种电子密码锁,并通过一片FPGA芯片实现。
关键词:
电子密码锁;FPGA;硬件描述语言;EDA
Abstract
Withthedevelopmentofelectronictechnology,electronicpasswordlockwithburglaralarmandotherfunctionsreplacinglesspasswordandpoorsecuritymechanicalcodelockisaninevitabletrend.comparedelectronicpasswordlockwithordinarymechanicallocks,ithasmanyuniqueadvantages:
confidentiality,andsecurityinnature,donotusethekey,rememberpasswordcanunlockitetc.MostelectronicpasswordlocksweusednowisbaseduponSCMtechnology,SCMisitsmainlydevice,andthecreatingofencodinganddecodingdevicesisthefashionofSoftwaremode.Inpracticalapplication,thereliabilityofthesystemmaybeworsebecauseofeasyrunningflyoftheprogramme.
ThispapermainlyexpatiatesadesignmethodofelectronicpasswordlockbaseduponFieldProgrammableGateArraydevice.WeuseFPGAdevicestoconstructsystem,allofthealgorithmentirelyachievedbythehardwarecircuit,becauseofFPGAhasthefunctionofISP,whenthedesignneedstobechangedWeonlyneedtochangethecontrolandinterfacecircuitofFPGA,EDAtoolsareusedtodownloadtheupdateddesigntoFPGAwithoutchangingthedesignoftheexternalcircuit,thisgreatlyenhancetheefficiencyofthedesign.Therefore,weuseFPGAtoempolderthedigitalsystemhasnotonlyhighreliabilitybutalsoextremelyconvenientofupgradingandimprovement.Inthispaper,weuseEDAtechnology,QuartusIIplatformandhardwaredescriptionlanguagedesigninganelectronicpasswordlock,anditachievedthroughanFPGAchip.
Keywords:
electronicpasswordlock;FPGA;hardwaredescriptionlanguage;EDA
绪论
随着大规模和超大规模可编程器件在FPGA技术支持下的广泛应用,使现代化
设计计算已进入一个全新的阶段,从设计思想、设计工具一直到实现方式都发生了诸多变化。
在FPGA技术中,最为引人瞩目的是以现代电子技术为特征的逻辑设计仿真测试技术。
改技术只需通过计算机就能对所设计的电子系统从不同层次的性能特点上进行一些列准确测试和仿真;在完成实际系统的设计后,还能对系统上的目标器件进行边界扫描测试。
随着技术的发展,科技的日趋夜新电子密码锁种类比较多,发展更是快。
电子密码锁系统主要由电子锁体、电子密匙等部分组成,一把电子密匙里能存放多组开锁密码,用户在使用过程中能够随时修改开锁密码,更新或配制钥匙里开锁密码。
一把电子锁可配制多把钥匙。
下面就是现在主流电子密码锁。
遥控式电子防盗锁目前常见的遥控式电子防盗锁主要有光遥控和无线电遥控两类。
键盘式电子密码锁从目前的技术水平和市场认可程度看,使用最为广泛的是键盘式电子密码锁,该产品主要应用于保险箱、保险柜和金库,还有一部分应用于保管箱和运钞车。
卡式电子防盗锁使用各种“卡”作为钥匙的电子防盗锁是当前最为活跃的产品,无论卡的种类如何多种多样,按照输入卡的操作方式,都可分为接触式卡和非接触式卡两大类。
生物特征防盗锁人的某些与生俱来的个性特征(如手、眼睛、声音的特征)几乎不可重复,作为“钥匙”就是唯一的(除非被逼迫或伤害),因此,利用生物特征做密码的电子防盗锁,也特别适合金融业注重“验明正身”的行业特点。
本文介绍的基于FPGA的电子密码锁电路具有显示接口,显示时可以是明文也可以是密文星号。
由于FPGA具有ISP功能,当用户需要更改时,如增加口令位数和更改口令权限管理时,只需更改FPGA中的控制和接口电路,利用EDA工具将更新后的设计下载到FPGA中即可,无需更改外部电路,这就大大提高了设计效率。
而且采用FPGA设计的电子密码锁与单片机控制的电子密码锁相比结构简单、具有更高的系统保密性和可靠性。
这种基于FPGA的电子密码锁可以应用在办公室、仓库、宾馆等人员经常变动的场所。
FPGA技术是现代电子工程领域的一门新技术,提供了基于计算机和信息技术的电路系统设计的方法。
它是从计算机辅助设计(CAD)、计算机辅助制造(CAM)、计算机辅助测试(CAT)和计算机辅助工程(CAE)等技术发展而来的。
设计者只需要对系统功能进行描述,在FPGA工具的帮助下即可完成系统设计,从而为电子产品的设计和开发缩短了实践降低了成本,提高了系统的可靠性。
1.1本课题研究的国内外现状及其发展
随着人们生活水平的提高和安全意识的加强,对安全的要求也就越来越高。
锁自古以来就是把守护门的铁将军,人们对它要求甚高,既要安全可靠的防盗,又要使用方便,这也是制锁者长期以来研制的主题。
随着电子技术的发展,各类电子产品应运而生,电子密码锁就是其中之一。
据有关资料介绍,电子密码锁的研究从20世纪30年代就开始了,在一些特殊场所早就有所应用。
这种锁是通过键盘输入一组密码完成开锁过程。
研究这种锁的初衷,就是为提高锁的安全性。
由于电子锁的密钥量(密码量)极大,可以与机械锁配合使用,并且可以避免因钥匙被仿制而留下安全隐患。
电子锁只需记住一组密码,无需携带金属钥匙,免除了人们携带金属钥匙的烦恼,而被越来越多的人所欣赏。
电子锁的种类繁多,例如数码锁,指纹锁,磁卡锁,IC卡锁,生物锁等。
但较实用的还是按键式电子密码锁。
20世纪80年代后,随着电子锁专用集成电路的出现,电子锁的体积缩小,可靠性提高,成本较高,是适合使用在安全性要求较高的场合,且需要有电源提供能量,使用还局限在一定范围,难以普及,所以对它的研究一直没有明显进展。
目前,在西方发达国家,电子密码锁技术相对先进,种类齐全,电子密码锁已被广泛应用于智能门禁系统中,通过多种更加安全,更加可靠的技术实现大门的管理。
在我国电子锁整体水平尚处于国际上70年代左右,电子密码锁的成本还很高,市场上仍以按键电子锁为主,按键式和卡片钥匙式电子锁已引进国际先进水平,现国内有几个厂生产供应市场。
但国内自行研制开发的电子锁,其市场结构尚未形成,应用还不广泛。
国内的不少企业也引进了世界上先进的技术,发展前景非常可观。
希望通过不断的努力,使电子密码锁在我国也能得到广泛应用。
目前使用的电子密码锁大部分是基于单片机技术,以单片机为主要器件,其编码器与解码器的生成为软件方式。
在实际应用中,由于程序容易跑飞,系统的可靠性能较差。
基于现场可编程逻辑门阵列FPGA器件的电子密码锁,用FPGA器件构造系统,所有算法完全由硬件电路来实现,使得系统的工作可靠性大为提高。
由于FPGA具有现场可编程功能,当设计需要更改时,只需更改FPGA中的控制和接口电路,利用EDA工具将更新后的设计下载到FPGA中即可,无需更改外部电路的设计,大大提高了设计的效率。
本课题研究的目的和意义
为了使现在的电子密码锁更能智能化的管理,让人们更能方便的使用,让其具有更高的安全性和经济性,针对基于单片机的电子密码锁的不足之处,本文采用EDA技术,利用QuartusⅡ工作平台硬件描述语言,设计一种电子密码锁,并通过一片FPGA芯片实现。
采用VHDL语言使用自顶向下的方法对系统进行了描述,并在FPGA芯片CycloneⅡ上实现。
设计充分利用了FPGA的资源可编程特性,可高效率的对系统进行升级与改进。
设计的密码锁可设置任意密码,比一般的四位密码锁具有更高的安全可靠性,因此,采用FPGA开发的数字系统,不仅具有很高的工作可靠性,其升级与改进也极其方便,应用前景十分良好。
关键技术简介
FPGA硬件设计描述
1.1.1FPGA的设计流程
FPGA设计流程包括系统设计和设计实现,系统方案完成之后即进入设计实现阶段的工作,他以系统方案为输入,进行RTL级描述、功能仿真(RTL级仿真)、逻辑综合、布线前门级仿真、适配(布局布线)、时序仿真(布线后门级仿真)、时序分析、器件编程、系统验证一系列流程的处理才能完成FPGA芯片的设计,其设计流程如图2.1所示。
需要说明的是,如果仿真验证不对或者某一步有错,就要返回修改。
有必要检查和修改的地方有RTL级描述、系统方案、约束和测试激励等。
一般情况下,对RTL级的描述即原理图或者HDL设计代码的修改最多也最有效。
修改后要重新走一遍流程。
有时要反复修改,经过多次这样的迭代才能完成最后的设计。
在理论上,把VLSI(UltraLargeScaleIntegration,超大规模集成电路)的设计描述为6个层次[1,2],即系统级(系统功能、参数定义)、算法级(描述系统功能行为)、RTL级、门级(逻辑门)、电路级(晶体管)、版图级(物理工艺)。
每一级又都分3个侧面来描述:
行为域描述、结构域描述、物理域描述。
但在实际情况中往往把算法级行为域描述或者RTL级行为域描述都称为行为级描述。
图2.1系统设计流程(左边的箭头线太短了,最好和右边对称)
对于FPGA的设计而言,不需要关心电路级和版图级,只考虑系统级、算法级、RTL级、门级4个层次的行为域描述和结构域描述即可。
上述的FPGA系统设计中的系统实际上是指系统级和算法级,而“RTL级描述”主要是指RTL级行为域的描述。
在门级,由综合工具产生的门级网表来描述。
FPGA的设计流程和相关概念说明如下:
库:
指FPGA器件厂家提供的工艺库和EDA工具提供的标准通用库(如IEEE库等)。
工艺库中有各种宏功能模块和基本功能单元,含有他们的行为级模型、门级模型、布线模型等信息。
需要说明的是,系统行为仿真和RTL级功能仿真有时要用到某种功能模块,例如RAM模型。
对于RAM模型的控制信号,不同的厂家其规定不一定相同,如写使能信号,有的厂家规定高电平有效,有的厂家规定低电平有效。
其实,在厂家提供的工艺库中,RAM模型有行为级模型、门级模型、版图级模型等。
而行为级模型只是规定其功能,无延时信息,跟工艺无关,但门级模型和版图级模型跟工艺密切相关。
解决的方法是系统行为仿真时可以使用高级语言自己建立一个模型或者调用厂家库中提供的行为级模型,功能仿真时调用行为级模型,时序仿真时调用门级模型。
测试激励:
指测试文件,他调用FPGA设计的顶层模块,同时产生顶层模块需要的输入信号,称之为激励信号,使用行为描述即可,不要求可综合。
仿真时他作为最顶层的文件,从而可以观察FPGA的输出是否正确。
所有的仿真都可使用同一个测试激励。
约束:
指对逻辑综合和布局布线时的约束。
包括器件型号、速度、面积、功耗、引脚分配、时钟网络资源的分配、模块在器件中的定位等约束。
一部分在软件中设置,一部分以约束文件的形式存在。
1.1.2VHDL语言的基本结构
VHDL(VeryhighspeedintegratedcircuitHardwareDescriptionLanguage)硬件描述语言从高于逻辑级的抽象层次上描述硬件的功能、信号连接关系及定时关系。
VHDL的设计流程如2.2图。
图2.2VHDL的设计流程
一个完整的VHDL语言程序通常包含实体(Entity)、结构体(Architecture)、配置(Configuration)、包集合(Package)和库(Library)五个部分。
1、实体
实体说明部分是说明一个器件的外观视图,即从器件外部看到的器件外貌,其中包括器件的端口,同时也可以定义参数,并把参数从外部传入模块内部,主要用于描述所设计的系统的外部接口。
2、结构体
结构体是描述一个器件的内部视图,是次级设计单元。
在其对应的初级设计单元实体说明被编译并且被并入设计库之后,它就可以单独地被并入该设计库中。
结构体描述一个设计的结构和行为,把一个设计的输入和输出之间的关系建立起来。
一个设计可以有多个结构,分别代表该器件的不同实现方案。
根据对一个器件设计由抽象到具体的过程,可把结构体的描述方式分为三个层次:
行为描述方式、寄存器传输描述方式(RTL)和结构描述方式。
3、库
库是经编译后的实体、结构体、包集合和配置的集合。
使用库时总要在设计单元的前面予以说明。
一旦说明,库中的数据对该设计单元就是可见的,从而共享已经编译过的设计结果。
VHDL语言中存在的库大致有IEEE库、STD库、ASIC厂家提供的库、用户定义的库和现行作业库。
4、包集合
包集合属库中的一个层次,是一种可编译的源设计单元。
它收集了VHDL语言中所用到的信号、常数、数据类型、函数和过程的说明等。
用户可以构造一个包集合,用以存放常数、数据类型、函数和过程,该包集合经编译后便自动加到WORK库中。
使用库中的包集合时,在打开库后要用USE语句说明,例如:
LIBRARYIEEE;
USEIEEE.STD-LOGIC-1164.ALL;
5、配置
配置语句从一个库中为一个实体选择一个特定的结构体,是一种放在库中的被编辑单元,并有相应的配置名。
通过配置技术,可以选取多种不同的结构体,以便对一个设计任务采用仿真工具进行多种配置的性能实验。
另外,配置说明和规定的特性还可以用在多层描述中。
1.1.3自上而下(TOPDOWN)的设计方法
自上而下的设计方法是现代电子系统的新型设计策略,它从设计的总体要求出发,自上而下地逐步从系统数学模型的设计与仿真,到数据流级的设计与仿真,选择系统设计方案,最后完成系统硬件的整体设计。
VHDL的自上而下的设计方法不仅体现在它的基本结构由描述外视特性的实体与描述内视行为和结构的结构体构成,同一实体可以有一个以上的结构体,以便设计方案的选择,还体现在系统硬件设计过程的三个层次:
行为级描述与仿真、RTL级描述与仿真、逻辑综合与门级仿真。
逻辑综合与所使用的逻辑综合工具有关,由逻辑综合优化工具生成具体的门级逻辑电路的EDIF(ElectronicDesignInterchangeFormat)网表。
EDIF网表是一种标准接口,它是一个以ASCII字符为基础的中间互换格式,被大多数供应商提供的CAE/CAD系统所支持。
半导体制造厂基于这种网表生成ASIC芯片的制造工艺,FPGA则基于这种网表生成用以配置FPGA芯片的位流文件。
这三种仿真贯穿系统硬件设计的全过程,从而可以在系统设计早期发现设计中存在的问题,与传统的自下而上的后期仿真相比大大缩短系统的设计周期,并且利于方案的综合评价与选取。
这是用VHDL语言设计系统硬件的最突出的优点。
设计语言、仿真平台与开发系统
(1)硬件描述语言
电子密码锁的设计采用了功能强大的通用硬件描述语言VHDL,它具有很强的行为描述能力,设计方法灵活,可以支持自顶向下(TopDown)和基于库(Library-Based)的设计方法,硬件描述与具体的工艺技术和硬件结构无关,能轻易地改变设计的规模和结构,标准、规范易于共享与复用,易于向ASIC移植。
(2)QuartusⅡ软件开发工具
本设计采用的软件开发工具是美国Altera公司的QuartusⅡ,它支持多种设计输入方法,包括原理图输入、文本输入(如AHDL,VHDL,VerilogHDL文本文件)和第三方EDA工具输入文件(如EDIF,HDL,VQM文件),利用该工具所配备的编辑、编译、仿真综合、芯片编程等功能,可将设计电路图或电路描述程序变成基本的逻辑单元写入到可编程的芯片中(如FPGA芯片),做成ASIC芯片。
(3)EDA实验开发系统
设计中采用的EDA实验开发系统,主要用于提供可编程逻辑器件的下载电路及EDA实验开发的外围资源,供硬件验证用。
一般包括:
①实验或开发所需的各类基本信号发生模块;②FPGA/CPLD输出信息显示模块;③监控程序模块;④目标芯片适配座以及上面的FPGA/CPLD目标芯片和下载电路。
用QuartusⅡ进行系统开发的设计流程
使用QuartusⅡ进行电子密码锁设计的流程为
(1)编写VHDL程序(使用VHDLFile)(见附录);
(2)编译VHDL程序(使用Compiler);
(3)仿真验证VHDL程序(使用WaveformEditor,Simulator);
(4)进行芯片的时序分析(使用TimingAnalyzer);
(5)安排芯片管脚位置(使用FloorplanEditor);
(6)下载程序至芯片(使用Programmer)。
系统总体设计
电子密码锁设计的原理
1、编码总量的确定
电子密码锁随机开锁成功的概率定义为:
P=1/NT
其中P为随机开锁成功概率,NT为密码编码总量。
显然要使密码锁保密安全性高,NT应尽可能大,使P趋于零,但NT越大,相应电路越复杂,密码的记忆与操作也越麻烦。
故NT应有合理的上限和下限。
下限NTL的选择应使密码落在随机开锁可能成功的操作时区以外。
若每一次开锁操作时间为t,为便于做随机试验,将NT分为n段并期望在1/n段的1/2处开锁成功。
此时
p=1/2n
则随机开锁试验期望成功的时间为:
Tr=NT×t/2n
假定系统设计不考虑误码输入的保护,密码锁在无保护的情况下使操作人员任意作随机开锁试验的时间为TEN,则:
NTL=(2n×TENt)×x,其中x为最低安全系数。
即:
TEN=(NTL×t/2n)/x
显然若使NT>=NTL,则Tr>TEN,则使分段随机试验不易成功。
由此可得出数字密码锁的编码总量设定是系统设计安全性、保密性的首要技术指标。
一般来说,当NT选定之后,NT的上限NTH原则上是越大越安全,但一般设计时取NTH=(10~1000)NTL较为合理。
2、编码制式的选择
编码制式应根据NT的大小选取,可分为如下三种:
(1)密码的各位都可以重码:
NT1=ai;
(2)密码的非相邻位可以重码:
NT2=a(a-1)i;
(3)密码的任何一位都不能重码:
NT3=a(a-1)……(a-i+1)。
其中a为基数,i为位数,a和i的选取应该满足NT≥NTL,a=2,3,4,10,12,14,16。
现在以最常用的a=10,i=6为例,可以计算出NT2=0159NT1,NT3=0.15NT1,所以编码制式考虑是否重码对NT有很大影响。
另外,相同制式下不同的基底对编码总量NT会有影响,而且基底的选择也会影响到硬件电路的设计。
本文设计的密码锁采用十进制编码,密码各位允许重码,为简化电路设计,密码锁口令采用对串行脉冲计数的方式输入。
3、误码输入的保护措施
如前所述,电子密码锁的设计应考虑自身的安全保密性,由于编码和捕捉密码的实验都是随机的,若要使P=1NT趋近于0,必须采取误码输入的保护措施。
假定设定的误码输入次数不超过三次,误码达到三次时系统应关闭主控电路,拒绝大于三次的密码输入,并且系统进入报警状态。
系统正常状态的恢复可采用万能密码输入或者系统掉电恢复。
方案的提出
方案一:
采用数字电路控制。
虽然采用数字密码锁电路的好处是设计简单,但是由于其是纯电路实际,在系统运行时,延时会比较严重。
方案二:
通过单片机实现,现在一种新的方案就是采用一种是用以AT89S51为核心的单片机控制方案。
虽然有灵活的设计和丰富的IO端口,但是单片机设计的缺点是程序运行时容易出现跑飞现象。
通过以上比较显然单片机方案有较大的活动空间,不但能实现所要求的功能而且能在很大的程度上扩展功能,而且还可以方便的对系统进行升级,但是由于所学知识不能将其有效的应用,现有环境不能满足,而且单片机的密码锁有一定的不足之处,在运行时程序有时会产生PC指针错误,还有基于现在所学知识的应用,所以基于以上比较提出了第三种方案。
方案三:
利用FPGA设计电子密码锁,其成本低,设计方便(有相应的开发板),现有资源充足,实现比较容易,更利于系统的维护改进和升级,可靠性更高,更安全。
通过以上比较描述,本设计采用基于FPGA的电子密码锁设计方案。
系统设计要求
设计一个具有较高安全性和较低成本的通用电子密码锁,具体功能要求如下:
(1)数码输入:
每按下一个数字键,就输入一个数值,并在显示器上的显示出
该数值,同时将先前输入的数据依序左移一个数字位置。
(2)数码清除:
按下此键可清除前面所有的输入值,清除为“0000”。
(3)密码更改:
按下此键时会将目前的数字设定成新的密码。
(4)激活电锁:
按下此键可将密码锁上锁。
(5)解除电锁:
按下此键会检查输入的密码是否正确,密码正确即开锁。
(6)数字位退格:
按下此键可清除最低的数字位,并使各位向右移。
(7)万能密码:
为了怕使用者忘记密码,系统可在设计时考虑设计一个万用密码,不论原来密码是什么,只要输入万能密码就能开锁。
系统设计描述
本系统为一个简洁型的电子密码锁,该系统以开发板为主要核心,采用4*4的键盘,前10个键为数字键,8个数码管显示密码输入,后面的按键实现电子密码锁的各个功能,总体外观如图3.1所示。
图3.1电子密码
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- 毕业设计 论文 基于 FPGA 电子 密码锁 设计
![提示](https://static.bdocx.com/images/bang_tan.gif)