资源预览内容
第1页 / 共24页
第2页 / 共24页
第3页 / 共24页
第4页 / 共24页
第5页 / 共24页
第6页 / 共24页
第7页 / 共24页
第8页 / 共24页
第9页 / 共24页
第10页 / 共24页
亲,该文档总共24页,到这儿已超出免费预览范围,如果喜欢就下载吧!
资源描述
EDA 技术应用课程论文论文题目: 基于 FPGA 电子密码锁的设计 论文类型: 论 文 设 计 学 校: 广西师范学院 姓 名: 黄 兆 航 学 号: 1112120124 班 级: 09 自 动 化 2012 年 6 月 28 日摘要基于 FPGA 设计的电子密码锁是一个小型的数字系统,与普通机械锁相比,具有许多独特的优点:保密性好,防盗性强,可以不用钥匙,记住密码即可开锁等。目前使用的电子密码锁大部分是基于单片机技术,以单片机为主要器件。在实际应用中,程序容易跑飞,系统的可靠性较差。本文介绍的一种基于现场可编辑门阵列 FPGA 器件的电子密码锁的设计方法,采用 Verilog HDL 语言对系统进行描述,并在 EP1C6Q240C8 上实现。本文主要阐述了一种基于现场可编程门阵列 FPGA 器件的电子密码锁的设计方法。用 FPGA 器件构造系统,所有算法完全由硬件电路来实现,使得系统的工作可靠性大为提高。通过仿真调试,利用可编程逻辑器件 FPGA 的电子密码锁的设计基本达到了预期目的。当然,该系统在一些细节的设计上还需要不断地完善和改进,特别是对系统的扩展有很好的使用系统和设计的价值。本文采用 EDA 技术,利用 Quartus II 工作平台和硬件描述语言,设计了一种电子密码锁,并通过一片 FPGA 芯片实现。关键词:电子密码锁;FPGA;Verilog HDL 语言目录第一章 前言1.1 国内外现状及其发展1.2 电子密码锁的原理第二章 现场可编程门阵列 FPGA2.1 FPGA 的基本结构2.2 FPGA 的设计流程第三章 电子密码锁的设计思想3.1 系统原理框图3.2 总体实现原理第四章 芯片主控设计4.1 FPGA 有限状态机4.2 设计流程4.3 状态编码4.4 密码的输入4.5 密码记录与比较4.6 密码的显示第五章 编程、编译与仿真结束语致谢参考文献第一章 前言1.1 国内外现状及其发展随着人们生活水平的提高和安全意识的加强,对安全的要求也就越来越高。锁自古以来就是把守护门的铁将军,人们对它要求甚高,既要安全可靠的防盗,又要使用方便,这也是制锁者长期以来研制的主题。随着电子技术的发展,各类电子产品应运而生,电子密码锁就是其中之一。据有关资料介绍,电子密码锁的研究从 20 世纪 30 年代就开始了,在一些特殊场所早就有所应用。这种锁是通过键盘输入一组密码完成开锁过程。研究这种锁的初衷,就是为提高锁的安全性。由于电子锁的密钥量(密码量)极大,可以与机械锁配合使用,并且可以避免因钥匙被仿制而留下安全隐患。电子锁只需记住一组密码,无需携带金属钥匙,免除了人们携带金属钥匙的烦恼,而被越来越多的人所欣赏。20 世纪 80 年代后,随着电子锁专用集成电路的出现,电子锁的体积缩小,可靠性提高,成本较高,是适合使用在安全性要求较高的场合,且需要有电源提供能量,使用还局限在一定范围,难以普及,所以对它的研究一直没有明显进展。目前,在西方发达国家,电子密码锁技术相对先进,种类齐全,电子密码锁已被广泛应用于智能门禁系统中,通过多种更加安全,更加可靠的技术实现大门的管理。在我国电子锁整体水平尚处于国际上 70 年代左右,电子密码锁的成本还很高,市场上仍以按键电子锁为主,按键式和卡片钥匙式电子锁已引进国际先进水平,现国内有几个厂生产供应市场。但国内自行研制开发的电子锁,其市场结构尚未形成,应用还不广泛。国内的不少企业也引进了世界上先进的技术,发展前景非常可观。希望通过不断的努力,使电子密码锁在我国也能得到广泛应用。目前使用的电子密码锁大部分是基于单片机技术,以单片机为主要器件,其编码器与解码器的生成为软件方式。在实际应用中,由于程序容易跑飞,系统的可靠性能较差。基于现场可编程逻辑门阵列 FPGA 器件的电子密码锁,用 FPGA器件构造系统,所有算法完全由硬件电路来实现,使得系统的工作可靠性大为提高。由于 FPGA 具有现场可编程功能,当设计需要更改时,只需更改 FPGA 中的控制和接口电路,利用 EDA 工具将更新后的设计下载到 FPGA 中即可,无需更改外部电路的设计,大大提高了设计的效率。1.2 电子密码锁的原理1.2.1 编码制式的选择编码制式应根据 NT 的大小选取,可分为如下三种:(1)密码的各位都可以重码:NT1=ai;(2)密码的非相邻位可以重码:NT2=a(a-1)i;(3)密码的任何一位都不能重码:NT3=a(a-1)(a-i+1)。其中 a 为基数,i 为位数,a 和 i 的选取应该满足 NTNTL , a=2,3,4,10,12,14,16。现在以最常用的 a=10,i=6 为例,可以计算出 NT2=0159NT 1,NT 3=0.15N T1,所以编码制式考虑是否重码对 NT 有很大影响。另外,相同制式下不同的基底对编码总量 NT 会有影响,而且基底的选择也会影响到硬件电路的设计。本文设计的密码锁采用十进制编码,密码各位允许重码,为简化电路设计,密码锁口令采用对串行脉冲计数的方式输入。1.2.2 误码输入的保护措施如前所述,电子密码锁的设计应考虑自身的安全保密性,由于编码和捕捉密码的实验都是随机的,若要使 P=1 NT 趋近于 0,必须采取误码输入的保护措施。假定设定的误码输入次数不超过三次,误码达到三次时系统应关闭主控电路,拒绝大于三次的密码输入,并且系统进入死锁状态。系统正常状态的恢复也可采用以下三种方式:(1)延时后输入二级密码管理方式,即由管理员级密码作为正常输入的开锁密码,之后重新定义新的开锁密码;(2)使用一个按键使系统重新恢复到正常状态;(3)系统掉电恢复。1.3 系统设计要求1.设计一个密码锁,密码为一个 8 位的十六进制数,密码固化在锁内。 2.用户有三次输入密码的机会,如果正确,则开锁。 3.如果三次都输入错误,密码将报警并进入锁定状态。 4.用户在较长的一段时间内不能再次输入密码,警报时间过后,密码重新回到等待状态,用户可以再次输入密码。1.4 本设计的目的和意义随着人们生活水平的提高,对家庭防盗技术的要求也是越来越高,传统的机械锁由于其构造的简单,被撬的事件屡见不鲜,电子锁由于其保密性高,使用灵活性好,安全系数高,受到了广大用户的欢迎。现在市场上主要是基于单片机技术的电子密码锁,但可靠性较差。FPGA 即现场可编程门阵列,它是在PAL、GAL、EPLD 等可编程器件的基础上进一步发展的产物,是一种超大规模集成电路,具有对电路可重配置能力。通常 FPGA 都有着上万次的重写次数,也就是说现在的硬件设计和软件设计一样灵活、方便。相对于基于单片机技术的电子密码锁,用 FPGA 器件来构成系统,可靠性提高,并且由于 FPGA 具有的现场可编程功能,使得电子密码锁的更改与升级更为方便简单。通过本次设计掌握 FPGA 系统设计的方法,熟悉 FPGA 设计的相关软件,以及硬件描述语言的使用,了解电子密码锁的系统构成,利用 FPGA 实现电子密码锁的设计与实现,可以加深自己对所学专业的认识,关联知识,增强自己的动手能力,积累实践经验,为以后的工作打好基础。第二章 现场可编程门阵列 FPGA2.1 FPGA 的基本结构FPGA 的发展非常迅速,形成了各种不同的结构。按逻辑功能块的大小,FPGA 可分为细粒度 FPGA 和粗粒度 FPGA。细粒度 FPGA 的逻辑功能块较小,资源可以充分利用,但连线和开关多,速度慢;粗粒度 FPGA 的逻辑功能块规模大,功能强,但资源不能充分利用。从逻辑功能块的结构上分类,可分为查找表结构、多路开关结构和多级与非门结构。根据 FPGA 内部连线的结构不同,可分为分段互联型和连续互联型。根据编程方式,FPGA 可分为一次编程和可重复编程两种。FPGA 一般可由三种可编程电路和一个用于存放编程数据的 SRAM 组成,这三种可编程电路是:可编程逻辑块(CLB)、输入/输出模块(IOB)和互联资源(IR)。CLB 是 FPGA 的主要组成部分,是实现逻辑功能的基本单元。它主要是由逻辑函数发生器、触发器、数据选择器等电路组成。IOB 提供了器件引脚和内部逻辑阵列之间的连接,通常排列在芯片的四周。其主要是由输入触发器、输入缓冲器、输出触发/锁存器和输出缓冲器组成。每一个 IOB 控制一个引脚,可被配置为输入、输出活双向 I/O 功能。可编程互联资源包括各种长度的金属连线和一些可编程连接开关,它们将各个 CLB 之间和 IOB 之间互相连接起来,构成各种复杂功能的系统。2.2 FPGA 的设计流程FPGA 设计流程包括系统设计和设计实现,系统方案完成之后即进入设计实现阶段的工作,他以系统方案为输入,进行 RTL 级描述、功能仿真(RTL 级仿真)、逻辑综合、布线前门级仿真、适配(布局布线)、时序仿真(布线后门级仿真)、时序分析、器件编程、系统验证一系列流程的处理才能完成 FPGA 芯片的设计,其设计流程如图 2.4 所示。需要说明的是,如果仿真验证不对或者某一步有错,就要返回修改。有必要检查和修改的地方有 RTL 级描述、系统方案、约束和测试激励等。一般情况下,对 RTL 级的描述即原理图或者 HDL 设计代码的修改最多也最有效。修改后要重新走一遍流程。有时要反复修改,经过多次这样的迭代才能完成最后的设计。在理论上,把 VLSI(Ultra Large Scale Integration,超大规模集成电路)的设计描述为 6 个层次1,2,即系统级(系统功能、参数定义)、算法级(描述系统功能行为)、RTL 级、门级(逻辑门)、电路级(晶体管)、版图级(物理工艺)。每一级又都分 3 个侧面来描述:行为域描述、结构域描述、物理域描述。但在实际情况中往往把算法级行为域描述或者 RTL 级行为域描述都称为行为级描述。系统设计要求模块划分及其功能描述各模块接口信号定义系统行为描述系统行为仿真系统设计方案时序、同步、算法测试等方案图 2.4 系统设计流程对于 FPGA 的设计而言,不需要关心电路级和版图级,只考虑系统级、算法级、RTL 级、门级 4 个层次的行为域描述和结构域描述即可。上述的 FPGA 系统设计中的系统实际上是指系统级和算法级,而“RTL 级描述”主要是指 RTL 级行为域的描述。在门级,由综合工具产生的门级网表来描述。FPGA 的设计流程如下:(1)系统行为描述系统行为描述是指使用硬件描述语言 HDL (Hard-ware Description Language)语句的全集来描述算法,模拟系统的行为和功能,不要求所有的语句都能够综合成电路。事实上,有些语句是专为描述行为而创建的,不能综合(不能用电路来实现其功能)。也可以使用高级语言如 C 语言来进行描述,此时往往要配合专用的系统设计工具来进行描述与仿真,如 SPW 等。这种系统算法级行为域的描述可以尽量使用最简洁的语句而不必过多地考虑其硬件实现的诸因素,所以能较快建立系统行为模型,进行行为仿真。(2)系统行为仿真主要用来验证系统方案是否正确、是否有缺陷,并可根据仿真的结果来优化系统方案和算法。他使用系统行为描述代码、测试激励、行为级模型库等为输入,利用专用的仿真工具或者系统设计软件来进行功能仿真和优化。(3)RTL 级描述指原理图(结构描述)或者使用可综合的 HDL 语句来描述的设计(一般是行为描述)。EDA 综合软件只能将 RTL 级描述综合成逻辑电路。利用综合软件可以检查出所写的代码是否是 RTL 级代码。对简单的设计而言,可以直接从 RTL 级开始设计,但对大规模的设
网站客服QQ:2055934822
金锄头文库版权所有
经营许可证:蜀ICP备13022795号 | 川公网安备 51140202000112号