毕业设计论文 - 基于FPGA的电子密码锁设计(3)

2019-01-26 17:19

基于FPGA的电子密码锁设计

3、库

库是经编译后的实体、结构体、包集合和配置的集合。使用库时总要在设计单元的前面予以说明。一旦说明,库中的数据对该设计单元就是可见的,从而共享已经编译过的设计结果。VHDL语言中存在的库大致有IEEE库、STD库、ASIC厂家提供的库、用户定义的库和现行作业库。

4、包集合

包集合属库中的一个层次,是一种可编译的源设计单元。它收集了VHDL语言中所用到的信号、常数、数据类型、函数和过程的说明等。用户可以构造一个包集合,用以存放常数、数据类型、函数和过程,该包集合经编译后便自动加到WORK库中。使用库中的包集合时,在打开库后要用USE语句说明,例如:

LIBRARY IEEE;

USE IEEE.STD-LOGIC-1164.ALL; 5、配置

配置语句从一个库中为一个实体选择一个特定的结构体,是一种放在库中的被编辑单元,并有相应的配置名。通过配置技术,可以选取多种不同的结构体,以便对一个设计任务采用仿真工具进行多种配置的性能实验。另外,配置说明和规定的特性还可以用在多层描述中。

2.1.3 自上而下(TOP DOWN)的设计方法

自上而下的设计方法是现代电子系统的新型设计策略,它从设计的总体要求出发,自上而下地逐步从系统数学模型的设计与仿真,到数据流级的设计与仿真,选择系统设计方案,最后完成系统硬件的整体设计。VHDL的自上而下的设计方法不仅体现在它的基本结构由描述外视特性的实体与描述内视行为和结构的结构体构成,同一实体可以有一个以上的结构体,以便设计方案的选择,还体现在系统硬件设计过程的三个层次:行为级描述与仿真、RTL级描述与仿真、逻辑综合与门级仿真。逻辑综合与所使用的逻辑综合工具有关,由逻辑综合优化工具生成具体的门级逻辑电路的EDIF(Electronic Design Interchange Format)网表。EDIF网表是一种标准接口,它是一个以ASCII字符为基础的中间互换格式,被大多数供应商提供的CAE/CAD系统所支持。半导体制造厂基于这种网表生成ASIC芯片的制造工艺,FPGA则基于这种网表生成用以配置FPGA芯片的位流文件。这三种仿真贯穿系统硬件设计的全过程,从而可以在系统设计早期发现设计中存在的问题,与传统的自下而上的后期仿真相比大大缩短系统的设计周期,并且利于方案的综合评价与选取。这是用VHDL语言设计

- 7 -

基于FPGA的电子密码锁设计

系统硬件的最突出的优点。

2.2 设计语言、仿真平台与开发系统

(1)硬件描述语言

电子密码锁的设计采用了功能强大的通用硬件描述语言VHDL,它具有很强的行为描述能力,设计方法灵活,可以支持自顶向下(Top Down)和基于库(Library-Based)的设计方法,硬件描述与具体的工艺技术和硬件结构无关,能轻易地改变设计的规模和结构,标准、规范易于共享与复用,易于向ASIC移植。

(2)QuartusⅡ软件开发工具

本设计采用的软件开发工具是美国Altera公司的QuartusⅡ,它支持多种设计输入方法,包括原理图输入、文本输入(如AHDL,VHDL,Verilog HDL文本文件)和第三方EDA工具输入文件(如EDIF,HDL,VQM文件),利用该工具所配备的编辑、编译、仿真综合、芯片编程等功能,可将设计电路图或电路描述程序变成基本的逻辑单元写入到可编程的芯片中(如FPGA芯片),做成ASIC芯片。

(3)EDA实验开发系统

设计中采用的EDA实验开发系统,主要用于提供可编程逻辑器件的下载电路及EDA实验开发的外围资源,供硬件验证用。一般包括:①实验或开发所需的各类基本信号发生模块;②FPGA/CPLD输出信息显示模块;③监控程序模块;④目标芯片适配座以及上面的FPGA/CPLD目标芯片和下载电路。

2.3 用QuartusⅡ进行系统开发的设计流程

使用QuartusⅡ进行电子密码锁设计的流程为 (1)编写VHDL程序(使用VHDL File)(见附录); (2)编译VHDL程序(使用Compiler);

(3)仿真验证VHDL程序(使用Waveform Editor, Simulator); (4)进行芯片的时序分析(使用Timing Analyzer); (5)安排芯片管脚位置(使用Floorplan Editor); (6)下载程序至芯片(使用Programmer)。

- 8 -

基于FPGA的电子密码锁设计

3 系统总体设计

3.1 电子密码锁设计的原理

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×TEN t)×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,

- 9 -

基于FPGA的电子密码锁设计

12,14,16。

现在以最常用的a=10,i=6为例,可以计算出NT2=0159NT 1,NT 3=0.15N T1,所以编码制式考虑是否重码对NT有很大影响。

另外,相同制式下不同的基底对编码总量NT会有影响,而且基底的选择也会影响到硬件电路的设计。

本文设计的密码锁采用十进制编码,密码各位允许重码,为简化电路设计,密码锁口令采用对串行脉冲计数的方式输入。

3、误码输入的保护措施

如前所述,电子密码锁的设计应考虑自身的安全保密性,由于编码和捕捉密码的实验都是随机的,若要使P=1 NT趋近于0,必须采取误码输入的保护措施。假定设定的误码输入次数不超过三次,误码达到三次时系统应关闭主控电路,拒绝大于三次的密码输入,并且系统进入报警状态。系统正常状态的恢复可采用万能密码输入或者系统掉电恢复。

3.2 方案的提出

方案一:采用数字电路控制。虽然采用数字密码锁电路的好处是设计简单,但是由于其是纯电路实际,在系统运行时,延时会比较严重。

方案二:通过单片机实现,现在一种新的方案就是采用一种是用以AT89S51为核心的单片机控制方案。虽然有灵活的设计和丰富的IO端口,但是单片机设计的缺点是程序运行时容易出现跑飞现象。

通过以上比较显然单片机方案有较大的活动空间,不但能实现所要求的功能而且能在很大的程度上扩展功能,而且还可以方便的对系统进行升级,但是由于所学知识不能将其有效的应用,现有环境不能满足,而且单片机的密码锁有一定的不足之处,在运行时程序有时会产生PC指针错误,还有基于现在所学知识的应用,所以基于以上比较提出了第三种方案。

方案三:利用FPGA设计电子密码锁,其成本低,设计方便(有相应的开发板),现有资源充足,实现比较容易,更利于系统的维护改进和升级,可靠性更高,更安全。

通过以上比较描述,本设计采用基于FPGA的电子密码锁设计方案。

- 10 -

基于FPGA的电子密码锁设计

3.3 系统设计要求

设计一个具有较高安全性和较低成本的通用电子密码锁,具体功能要求如下: (1)数码输入:每按下一个数字键,就输入一个数值,并在显示器上的显示出 该数值,同时将先前输入的数据依序左移一个数字位置。

(2)数码清除:按下此键可清除前面所有的输入值,清除为“0000”。 (3)密码更改:按下此键时会将目前的数字设定成新的密码。 (4)激活电锁:按下此键可将密码锁上锁。

(5)解除电锁:按下此键会检查输入的密码是否正确,密码正确即开锁。 (6)数字位退格:按下此键可清除最低的数字位,并使各位向右移。 (7)万能密码:为了怕使用者忘记密码,系统可在设计时考虑设计一个万用密码,不论原来密码是什么,只要输入万能密码就能开锁。

3.4 系统设计描述

本系统为一个简洁型的电子密码锁,该系统以开发板为主要核心,采用4*4的键盘,前10个键为数字键,8个数码管显示密码输入,后面的按键实现电子密码锁的各个功能,总体外观如图3.1所示。

扬声器12345FPGA控制模块96780*#确定密码清除上锁解锁 图3.1 电子密码外观图

上图为在实验开发板上实现,使用开发板有十六个按键,分别对应数字0到9

- 11 -


毕业设计论文 - 基于FPGA的电子密码锁设计(3).doc 将本文的Word文档下载到电脑 下载失败或者文档不完整,请联系客服人员解决!

下一篇:2013年暑期政治业务学习动员讲话稿

相关阅读
本类排行
× 注册会员免费下载(下载后可以自由复制和排版)

马上注册会员

注:下载文档有可能“只有目录或者内容不全”等情况,请下载之前注意辨别,如果您已付费且无法下载或内容有问题,请联系我们协助你处理。
微信: QQ: