《基于FPGA的电子密码锁的研究与设计毕业论文(26页).doc》由会员分享,可在线阅读,更多相关《基于FPGA的电子密码锁的研究与设计毕业论文(26页).doc(26页珍藏版)》请在taowenge.com淘文阁网|工程机械CAD图纸|机械工程制图|CAD装配图下载|SolidWorks_CaTia_CAD_UG_PROE_设计图分享下载上搜索。
1、-基于FPGA的电子密码锁的研究与设计毕业论文基于FPGA的电子密码锁设计-第 20 页论文题目:摘要普通的机械锁保密性不好,防盗性差,而且必须使用钥匙。但是,基于FPGA设计的电子密码锁与普通的机械锁比较来说,就克服了这些不足之处。该论文主要描述的是一种电子密码锁的设计方法,这种电子密码锁是基于现场可编程门阵列(FPGA)的电子密码锁。由FPGA构造的电子密码锁系统中,硬件电路可以实现所有的算法,大幅度提高了西戎的工作可靠性。为了提高设计的效率,可以在更改设计时只更改FPGA中的控制和接口电路,这是因为FPGA的现场可编程功能,也正是利用这一点,可以将更新后的设计下载到FPGA中,省去了更改
2、外部电路设计的麻烦。所以,这样的系统既可以使工作的可靠性增强也可以更加方便的升级。系统所实现的功能:用户给电子密码锁设定一个密码,当使用本机键盘开锁时,该密码与用户设定的密码比较,如果密码正确,则开锁;如果密码不正确,用LED灯报警;允许用户重新输入密码。关键词电子密码锁;FPGA;硬件描述语言;EDAAbstractFPGA-based design of electronic locks is a small digital system,compared with ordinary mechanical locks,has many unique advantages:confident
3、iality,security and strong,you can not have the keys,remember a password to unlock.This paper describes an approach based on field programmable gate array(FPGA)devices electronic locks design.Construct systems with FPGA devices,all algorithms entirely by hardware circuit to achieve,making the work s
4、ystem reliability greatly improved.As the FPGA with field-programmable function,when you need to change the design,just change the FPGA control and interface circuitry using EDA tools designed updated downloaded to the FPGA without the need to change the external circuit design,greatly improving the
5、 design efficiency.Therefore,the use of digital FPGA development system,not only has high reliability,but also extremely easy to upgrade. System implemented features:electronic locks user to set a password when using the keyboard lock,compared with the password set by the users password,if the passw
6、ord is correct,then unlock;If the password is incorrect,the speaker alarm,allows the user to re- enter the password.Key wordsElectronic locks;FPGA;Hardware Description Language;EDA目录摘要IAbstractII前言1第一章 概述21.1 课题背景21.2 课题研究的目的和意义21.3 国内外现状31.4 课题的主要研究工作4第二章 相关知识介绍52.1 FPGA的相关介绍62.1.1 可编程逻辑器件62.1.2 FP
7、GA简介72.1.3 FPGA应用特点72.1.4 FPGA的设计流程92.2 硬件描述语言Verilog112.2.1 Verilog语言简介112.2.2 Verilog语言的优点112.2.3 Verilog语言的基本结构122.3 Quartus软件开发工具12第三章 电子密码锁的总体设计143.1 设计要求143.2 系统原理框图143.3 系统主控制流程框图15第四章 电子密码锁的软件设计174.1 主要功能模块设计174.1.1 输入模块184.1.2 显示模块194.3 电子密码锁的仿真19第五章 电子密码锁的硬件实现245.1 电子密码锁的硬件模块实现245.2 硬件设备24
8、5.3 硬件的实现25结论27参考文献28致谢30前言基于FPGA的电子密码锁是新型现代化安全管理系统,微机自动识别技术和现代安全管理措施技术,包括生物技术、通信技术、电子和机械电等诸多新技术都在其中体现,重要部门出入口安全防范问题因此得到了解决。工厂、智能化小区、办公间、军械库、机房、宾馆、银行等均适用。目前,西方的那些发达国家中,电子密码锁被广泛的应用,电子密码锁技术也比其他国家先进,种类也很齐全,在智能门禁系统中,可以使大门的管理变得更加安全和可靠。可是现在我国几个供应市场的电子密码锁生产厂还是处于国际上70年代左右的水平,生产的电子密码锁大多数还是按键电子锁,国际先进水平的按键式和卡片
9、钥匙式电子锁已被引进到国内。我国尚未形成自行研发的电子锁时常,应用并不广泛。国内很多企业也引进了世界上发展前景可观的先进技术。希望荣国不断努力电子密码锁也能在国内得到广泛应用。本文是利用Quartus工作平台硬件描述语言的EDA技术,通过FPGA芯片实现一种电子密码锁。在FPGA芯片上实现用Verilog语言对系统进行描述的自顶向下的方法。设计对系统的升级与改进效率很高,因为充分利用了FPGA的资源可编程特性。设计比一般的四位电子密码锁更加的安全和可靠,因为可以设置任意密码,所以,由于FPGA开发的数字系统不仅有工作较高的可靠性,同时升级与改进也相当方便,是的它的应用前景很可观。第一章 概述1
10、.1 课题背景如今数字技术网络技术快速发展,电子密码锁技术也飞快地发展。单纯的门道及钥匙管理早已经被电子密码锁超越,电子密码锁的出入管理系统也逐渐发展完整。在许多行政管理工作中,例如工作环境安全、人事考勤管理等,都起着重大的作用,电梯控制、车辆进出控制就是在该系统的基础上增加相应的辅助设备,其中包括物业消防监控、餐饮收费、私家车库管理等,真正实现区域内一卡智能管理。基于单片机技术基于单片机技术目前被广泛使用,用软件方式生成编码器与解码器。在现实应用中,系统因为程序容易跑飞所以可靠性比较差。基于FPGA的电子密码锁是现代生活中保险柜、房门、防盗门等常用到的工具之一。电子密码锁与传统的机械式密码锁
11、比较,具有密码量多、安全性能较好的优点。ASIC可作为专用的数字密码锁芯片,因为采用的是可编程逻辑器件FPGA,完善系统的设计之后还可以将主控的FPGA固化成一片ASIC,就可以随时的进行硬件升级、扩展,这样系统就有很大的灵活性能。密码锁之所以具有更好的安全性、方便性和可靠性,是因为它可以随时增加密码位数和新的功能,还可以将硬件升级。1.2 课题研究的目的和意义密码开关、密码锁等电路在电子杂志、报刊上时常有刊载。数字电路在其中是常用的电路,密码控制功能是通过连接方法不同来实现的。连接电路来修改密码是这种电路的特点,破解密码较容易,电路复杂,故障率高。本制作是针对这些电路而设计的,将以往的以单片
12、机完成设计改成可编程器件FPGA使用Verilog编程实现电子密码锁的设计。这种设计移动方便。基于FPGA的电子密码锁的特征是保密强、灵活性高、适用范围广等,在键盘上输入时,与打电话差不多,因而易于操作,“密码”用数字和字符表示,被记在被授权人脑子里,这样既准确又可靠,难以被窃,不会遗失,可以对某些操作进行加密保护,目的是防止无权人员利用某些措施或进行越权操作,而且电子密码锁在现实生活中应用也十分广泛,例如门卡系统、自动售货机、银行自动柜员机或者保险柜中都含有这类密码锁。在电子技术飞速发展的现在,电子密码锁与早期的机械式密码锁相比,具有密码量多,安全性能较好的优点,机械式密码锁被具备防盗报警等
13、功能的电子密码锁取代是必然的趋势。机械式密码锁没有电子密码锁那些无可比拟的优越性。电子密码锁能都在信息的安全防护方面起了重要的作用。人们的知识水平越来越高的飞速发展的时代,犯罪手段在犯罪分子手中变得越来越高。犯罪分子的犯罪工具中能够轻易地“开启”普通住户住宅的非电子密码锁大门的工具是万能钥匙,使得在电子密码锁不普遍的时代得居民财产和人身安全损失很大。可以比较大程度避免这类事情发生的是电子密码锁,它只可以主人打开,而且密码只有主人才知道,小偷企图打开门时,就会有报警,所以几乎是不可能被小偷打开的;如果密码输入连续错误很多次,也同样会发生报警信号,因为完善的电子密码锁几乎会限定输入的次数。此系统的
14、特点是安全比较高,而且成本比较低。因此,在我们生活中、军事中、政治中、文化服务中都起着保护信息安全或财产安全的作用的是电子密码锁。FPGA电子密码锁在本设计中的特点是:体积小、功耗低、价格便宜、安全可靠,维护和升级都十分便利,具备良好的应用前景。电子密码锁与传统锁具相比之下,具备的优点是:系统的设计使用编程逻辑器件实现,设计编程思想用Verilog语言实现,其优点是简洁清晰,管理功能可以适时地智能的控制,在系统扩展上具备很大的优势。1.3 国内外现状在高档建筑中,高档密码锁具具有非常乐观的市场前景,因为我国不断深入对外开放的政策。我国密码锁具行业对密码锁具高新技术的投入正逐年增大,市场需求在高
15、档密码锁行业也逐年增长。所产品是安防工程中的系统安全的重要设备,所以工程质量验收的标准也包括锁产品质量。现在,市场上的IC卡电子密码锁、射频卡式电子密码锁、红外遥控电子密码锁、指纹识别电子密码锁和瞳孔识别电子密码锁等电子密码锁都是比较先进的智能电子密码。IC卡电子密码之所以占领了一定的市场份额,是因为其成本低,体积小,卡片自身无须电源等优点,但是其缺点是再某方面限制它的应用,就是使用不太便利,而且有机械接触,会产生接触磨损,成本不太高的体积和IC卡密码锁相配非接触式电子密码锁就是射频卡式电子密码锁,其优点就是技术成熟,重量很轻,卡片利用感应电源,它收到了大众的欢迎,但是缺点就是成本偏高;指纹识
16、别电子密码锁和瞳孔识别电子密码锁具有较高的可靠性,这种应用系统安全性是最高的,但是缺点是高昂的成本,使得它还没有被普遍化。在美国、日本、德国等发达国家中,电子密码锁保密性较好,感应卡技术,生物识别技术也被结合其中,飞跃式的发展在电子密码锁系统中获得了。这几个国家的密码锁技术系统已进入了成熟期,使用感应卡式密码锁,指纹式密码锁,虹膜密码锁,面部识别密码锁,序列混乱的键盘密码锁等使得密码锁的综合性较好,它在方便性,易管理性安全性,等方面都具有特长使得新型的电子密码锁系统越来越被应用广泛。1.4 课题的主要研究工作硬件和软件两方面的问题在系统课题中主要被解决。FPGA可编程器件与其外围电路的接口设计
17、的问题在硬件方面主要被解决;Verilog语言完成基于FPGA的电子密码锁的编程方面在软件部分主要被解决。程序此外还要实现基本的密码开锁功能,而且需要利用LED灯报警。由FPGA可编程逻辑器件编程实现的控制电路是本设计的基本思路,它具备的基本功能是按键指示、输入错误提示、密码有效指示、控制开锁、控制报警等指示。它的特点是安全可靠、连接方便、简单易用、结构紧凑、系统可扩展性好等。第二章 相关知识介绍在20世纪的末期,电子技术在计算机技术的推动下取得了飞速的发展,社会的各个领域中都被现代电子产品渗透其中,社会生产力的发展和社会信息化水平的提高被有力地推动着,现代电子产品又被进一步提升了性能,越来越
18、快的更新了产品。微电子技术的发展及进步推动了电子技术的发展,半导体技术的发展使得大规模集成电路加工技术被展示了。在如今,越来越高的集成电路集成度,越来越低的设计成本,能够达到单片电子系统的要求的功能和结构,所以,越来越广泛的被应用到了现代生活中,电子产品的不可缺少的核心部分就是电子密码锁了。当代电子技术设计的核心技术就是EDA(Electronic Design Automation)技术,在EDA设计工具软件平台依靠功能强大的计算机,对那些设计以硬件描述语言为系统逻辑描述的文件,能够自动的实现的功能是逻辑化简、逻辑分割、逻辑综合、结构布线、逻辑优化和仿真测试等,以达到系统的电子综合电路的既定
19、性能。软件方法几乎成为了唯一的EDA设计工作的设计者的方法,其优点就是有很多便利,也能使资源节省在工作当中。大规模集成电路制造技术、IC(Integrated Circuit)版图设计技术、ASIC(Application Specific Integrated Circuit)测试和封装技术、FPGA(Field Programmable Gate Array)和CPLD(Complex Programmable Logic Device)编程下载技术、自动测试技术等构成了EDA技术在硬件实现的实现。计算机辅助设计、计算机辅助制造、计算机辅助测试、计算机辅助工程技术以及众多计算机语言构成了计
20、算机辅助工程方面的设计概念。而电子线路设计理论、数字信号系统处理技术、嵌入式系统和计算机设计技术、数字系统建模和优化设计及微波技术等也包含在了现代电子学方面。所以,为现代电子理论和设计表达与实现提供可能性的是EDA技术。在如今的技术领域中。很多发展飞速的科学技术不是自动化设计,而多数属于计算机辅助设计。可以看出,始终处于科学技术发展的前列是电子技术,是最先进入真正的自动化的技术领域设计的也是电子技术。这也是为什么本系统的设计采用基于FPGA的EDA设计的电子密码锁。2.1 FPGA的相关介绍2.1.1 可编程逻辑器件存储器、微处理器和逻辑器件存在于数字电子系统领域中,属于三种基本的器件类型。存
21、储器用来保存例如如数据表或数据库的内容的随机信息。微处理器完成广泛的任务,实行例如运行字处理程序或视频游戏的软件指令。逻辑器件提供包括设备与设备间的接口、数据通信、信号处理、数据显示、时序和控制操作、以及系统运行所需要的特定的功能。逻辑器件包括固定逻辑器件和可编程逻辑器件。固定逻辑器件正如其命名,它的电路是永久性的,能实现一种或一组功能,制造完成后,就无法变动。与其相对,可编程逻辑器件(PLD)是一种成品部件,它是为客户提供范围广泛的多种逻辑容量、特性、速度和电压参数的标准成品,而且可以完成不同的功能在任何的时间。固定逻辑器件出产从几个月到一年多时间不同,因为它复杂性差别很大,多以最终生产时间
22、大多不同。另外如果对应用要求发生某些变化或者器件工作的不合适等原因,就要开发全新的设计。某些方面需要大量的NRE成本,比如,设计和验证固定逻辑的前期工作。NRE就是客户需要投入的全部成本,就是包括固定逻辑器件最后从芯片制造厂制造出来之前的所有成本,其中包括工程资源、高昂的软件设计工具费用、用来制造芯片不同金属层的昂贵光刻掩膜组和初始原型器件的生产成本。它的费用少则几十万元美元,多则几百万美元。可编程逻辑器件与固定逻辑器件相比,设计者可利用价格低廉的软件工具快速开发、仿真和测试其设计。然后,可设计编程后快速的编程到器件当中,并且可以立即对设计进行测试在实际运行的电路中。没有NRE成本、设计也比固
23、定逻辑器件快是因为PLD器件在原型中使用的和正式生产最终设备(如网络路由器、DSL调制解调器、DVD播放器、或汽车导航系统)的可以完全相同。由于PLD基于可重写的存储器技术要一一改变设计,所以另一个关键优点在PLD中显著显示出来的就是客户可根据需要修改电路在任意的设计阶段中直到满意为止,只要对器件简单的重新编程就可以了。设计完成后,客户可以利用最终软件设计文件投入生产,就是简单地编程。2.1.2 FPGA简介FPGA的可编程电路包括可编程逻辑块(CLB)、输入/输出模块(IOB)及可编程互连资源(PIR),和一个SPAM结构的配置存储单元组成。分散在整个芯片中的排列成阵列的逻辑功能的基本单位是
24、CLB;排列在芯片的四周主要负责芯片上的逻辑与外部引脚的接口的是可编程输入/输出模块(IOB);将各个CLB之间或CLB与IOB之间以及IOB之间连接起来的构成特定功能的电路的各种长度的连接线段和一些可编程连接开关的是可编程互连资源(PIR)。选择FPGA芯片,因为它统集成度由于是小批量系统所以有所提高,也具有一定的可靠性。FPGA的特点是采用高速CHMOS工艺,功耗低,可以与CMOS、TTL电平兼容。设计ASIC电路时无需投片生产就可以得到合用的芯片是因为它的内部具有大量的触发器和I/O引脚。FPGA与PLD相比的特点是不受结构的限制,可以组成任何复杂的逻辑电路是因为门与门的连接,也可以更好
25、地实现多级逻辑功能。基于SRAM结构的FPGA的编程单元,可以无限次重复编程。2.1.3 FPGA应用特点伴随着电子技术的飞速发展,基于FPGA的设计向高速度高集成度和低价位方向不断前进,应用领域不断扩大其主要原因是由于FPGA以下几个技术特点的发展。(1) 集成度越来越高如Lattice的ispLSI或AMD的MACH芯片等效逻辑门已达10万门以上。Altera的10K系列也在25万门以上,具有1万个以上的寄存器40kbit嵌人式存储器,可以实现集成复杂信号处理算法。Raphael系列已达到100万门以上,结合了FLEX10KFLEX6000、MAX7000的所有优点,可进行单片设计。Xil
26、inx推出了上百万门的FPGA,它们几乎可实现所有形式的数字电路和数字系统的设计。JTAG ISP和ICR技术越来越多地被采用于FPGA中。当今世界上各类可编程器件发展的趋势是这种先进的编程方式。正在工作的系统上的CPLD/FPGA可随时在5V工作电平下进行全部或部分地在系统编程,并可进行芯片内部资源的重新分配同时进行所谓菊花链式多芯片串行编程,其编程次数多达1万次。如Lattice的ispLSI AMD的MACH以及Xilinx的XC9000系列,几乎不限制对于SRAM结构的FPGA其下载编程次数。如Altera的FLEX10K系列,这种编程方式可很轻松的实现红外编程,无线编程或超声编程,或
27、通过电话线远程在线编程。这些功能可以运用在工控、智能仪器表、通讯和军事上。(2) 嵌入式存贮技术 把一定数量的存贮器嵌在CPLD/FPGA内部,用于存贮信号处理的系数、中间结果等,这对于电子系统的智能化的设计功能提供了技术支持。(3) 时钟锁定和倍频技术 时钟锁定和倍频技术 是Altera的10K系列,解决了时钟脉冲延迟和许多偏斜问题,并使PLD内部时钟更高,可达100MHz以上的是单个16bit乘法器的速度。这需要大带宽高速实时信号。延迟可达纳秒级,结合CPLD/FPGA时钟的并行工作方式,在超高速应用领域和实时测控方面有非常广阔的应用前景。(4) 电子设计自动化EDA工具 用户对设计的输入
28、综合仿真非常方便是因为有EDA工具,Altera的MaxPlusII给用户提供了丰富的宏库和LPM(Library of Parameterized Modules)。Unix/Windows共存开发环境转换的是EDA环境。事实上,硬件描述语言是符合国际标准的,用来进行电子系统设计和产品开发是VHDL或VERILOGHDL。因为开发工具的通用性,设计语言的标准化以及设计过程基本与所用的CPLD/FPGA器件的硬件结构没有任何关系,所以兼容性和可移植性是设计成功的各类逻辑功能块软件的原因。它几乎可以用于任何型号的CPLD/FPGA中,从而使得片上系统的产品设计效率大幅度提高,使其应用更为广泛和方
29、便。(5) 开发周期短内部资源丰厚及功能强大是FPGA的优点,以及相应的EDA软件功能完善和强大仿真能力便捷而实时开发过程形象而直观兼之硬件因素涉及甚少,一些EDA专家指出未来的大系统FPGA设计仅是各类再应用逻辑与IP核CORE的拼装。TI公司认为现成逻辑合成一个ASIC80功能可用IP核等,因此可在非常短的时间内完成很复杂的系统设计。2.1.4 FPGA的设计流程设计输入的三种方式是硬件描述语言、状态图与原理图输入。针对给定的电路实现功能和实现此电路的约束条件(例如速度、功耗、成本及电路类型等),就是设计综合,可以用计算机优化进行处理,得到一个电路设计方案且能够满足上述要求。它可以集成HD
30、L文件或相应文件等,其结果是一个必须满足功能和约束条件的期望的硬件电路实现方案,且能够满足各种约束描述。对于综合来说,可能有多个方案满足要求,一个最优的或着接近最优的结果将在综合工具中产生,所以,综合的过程就是设计目标的优化过程,得到的结构和综合工具的工作性能有关。从广义讲,功能与时序仿真和电路验证全都包含到设计验证中,对已实现设计进行完整的测试用设计软件包就是仿真,物理环境工况模拟。仅对逻辑功能进行测试模拟的仿真是功能仿真,用来了解器件的功能能否达到原设计的要求,仿真的过程中不加入时序的信息,也不涉及到各种器件的硬件特性,例如延时特性;但是在布局布线后,提取有关的器件延时、连线延时等时序参数
31、,之后再进行的仿真就是后仿真,它是最能接近真是器件的运行的。利用实现工具来吧逻辑映射到目标器件结构的资源中就是设计实现,它能够决定逻辑的最佳布局,进行连线的布线通道时用户根据选择逻辑与输入输出功能来选择的,之后产生相对应的文件。它的五个步骤分别为转换、映射、布局与布线、时序提取和配置。在设计实现的过程中,需要对一个设计的实际功能的延时和估计的布线延时进行时序分析在映射后;在布局布线后,静态分析也是必要的,对实际布局布线的功能块的延时和实际布线延时分析。从某些方面看,整个FPGA设计中最重要的步骤就是静态时序分析,它允许设计者详尽地分析所有关键路径并得出一个有次序的含有其他调试信息的报告。能够实
32、现一下功能的是静态时序分析器,其功能包括为了使计算各通路性能而检查设计的逻辑和时序,识别可靠的踪迹,检测建立和保持时间的配合。芯片配置就是用户不要求产生输入激励或测试矢量在时序分析中,而后下载正确的功能仿真与时序仿真,具体的FPGA芯片中需要下载综合后形成的位流。直接由计算机经过专用下载电缆进行配置和由外围配置芯片进行上电时自动配置是FPGA设计的两种配置形式。电路验证几十FPGA器件内部下载位流文件后再进行实际器件的物理测试,当得到正确的验证结果后就证明了设计的正确性。FPGA投片生产中具有较大意义的就是电路验证以系统方案为输入,进行RTL级描述、功能仿真(RTL级仿真)、逻辑综合、布线前门
33、级仿真、适配(布局布线)、时序仿真(布线后门级仿真)、时序分析、器件编程、系统验证等一系列流程就是FPGA设计系统方案完成之后的设计实现阶段的工作,其设计流程如下图所示。需要说明的是,如果仿真验证不对或者某一步有错,就要返回修改。RTL级描述、系统方案、约束和测试激励等就有必要检查和修改。有时,原理图包括对RTL级的描述或者HDL设计代码是最多的也是最有效的。流程要重新走一遍在修改之后,有的时候则要反复的修改,最后的设计就是这样经过多次的修改之后完成的。在理论中讲,系统级(系统功能、参数定义)、算法级(描述系统功能行为)、RTL级、门级(逻辑门)、电路级(晶体管)、版图级(物理工艺)为VLSI
34、(Ultra Large Scale Integration,超大规模集成电路)的设计描述的6个层次1,2。行为域描述、结构域描述、物理域描述为每一级的3个侧面。但在实际情况中往往把算法级行为域描述或者RTL级行为域描述都称为行为级描述。系统设计要求时序、同步、算法测试等方案模块划分及其功能描述各模块接口信号定义系统行为描述系统行为仿真系统设计方案 图2-1 FPGA设计流程2.2 硬件描述语言Verilog2.2.1 Verilog语言简介目前数字系统的设计可以直接面向用户需求,自上而下地逐层完成相应的描述、综合、优化、仿真与验证,直到生成器件,实现电子设计自动化是根据系统的行为和功能要求的
35、。从抽象到具体级别硬件的工业标准语言是用Verilog来描述的。Verilog支持硬件的设计、验证、综合和测试,以及硬件设计数据的交换、维护、修改和硬件的实现的优点是具有描述能力强、生命周期长、支持大规模设计的分解和已有设计的再利用的。用于描述数字系统的结构、行为和功能的主要是Verilog,他程序结构特点的两部分是将一个电路模块或一个系统分成端口和内部功能算法实现的。对于一个电路模块或者数字系统来说,定义了外部端口后,一旦完成内部功能算法,其他的系统就可以直接依据外部端口调用该电路模块或数字系统,而不需要知道他的内部结构和算法。Verilog的特点使得电子系统新的设计方法“自顶向下”设计方法
36、更加容易实现。可以先对整个系统进行方案设计,按功能划分成若干单元模块,然后对每个单元模块进一步细分,直到简单实现的单元电路。Verilog语言的设计流程如下图:硬件验证网表综合:面向FPGA和ASIC编写HDL代码总体方案软件模拟 图2-2 Verilog的设计流程2.2.2 Verilog语言的优点相比于其他硬件描述语言,Verilog语言有以下几个优点:(1) 综合技能电路的设计,又可以用于模拟仿真。(2) 对所设计的系统加以描述可以从多个层次上,如开关级、门级、寄存器传输级(RTL)到行为级等;语言不对规模施加任何限制。(3) 灵活多样的电路描述风格,可以进行行为描述,也可进行结构描述或
37、数据流描述;支持混合建模在一个设计中各个模块可以在不同的设计层次上建模和描述。2.2.3 Verilog语言的基本结构(1) Verilog程序是由几个模块构成的。每个模块都嵌套在endmodule和module语句中。模块可以进行有层次嵌套的。(2) 每个Verilog源文件中只准有一个顶层模块,其他均为子模块。(3) 每个模块都要进行端口定义,并且说明输入输出端口,然后对模块的功能进行行为逻辑描述。(4) 程序书写格式是自由的,每一行都可以写几个语句,一个语句也可以分多行来写。(5) 每个语句和数据定义的最后必须有分号。除了endmodule语句、begin_end语句和fork_join
38、语句外,可用/*.*/和/.对程序的任何部分作注释。加上必要的注释,以增强程序的可维护性和可读性。2.3 Quartus软件开发工具美国Altera公司的Quartus是本设计采用的软件开发工具,它支持包括原理图输入、文本输入(如AHDL,VHDL,Verilog文本文件)和第三方EDA工具输入文件(如EDIF,HDL,VQM文件)的多种设计输入方法,要想将设计电路图或电路描述程序变成基本的逻辑单元写入到可编程的芯片中(如FPGA芯片),做成ASIC芯片,就得利用该工具所配备的编辑、编译、仿真综合、芯片编程等功能。它具有的优点就是强大的功能、简单易懂的界面、能够方便的使用。适合于大规模逻辑电路
39、设计,其设计流程概括为设计输入、设计编辑输入法,VHDL、Verilog和AHDL的文本编辑输入法,符号编辑输入法,以及内存编辑输入法。Quartus软件集成了Altera的FPGA/CPLD开发流程中所涉及的所有工具和第三方软件接口。Quartus与MATLAB和DSP Builder结合可以进行基于FPGA的DSP系统开发,是DSP硬件系统实现的关键EDA工具,与SOPC buider结合,可实现SOPC系统开发。支持多时钟定时分析、LogicLock基于块的设计、SOPC(可编程片上系统)、内嵌SignalTap 逻辑分析器、功率估计器等高级工具是Quartus软件的特点;方便引脚分配和
40、时序约束;HDL综合能力非常强大;包含有MAX+PLUS的GUI,且易于MAX+PLUS的工程平稳地过渡到Quartus开发环境;对于Fmax的设计具有很好的效果;支持的器件种类众多;支持Windows、Solaris、HP-UNIX和Linux等多种操作系统;第三方工具如综合、仿真等的链接。第三章 电子密码锁的总体设计3.1 设计要求在EDA出现以前人们采用传统的硬件电路的设计方法设计系统。传统的硬件电路采用自下而上(BOTTOM UP)的设计方法。其具体的步骤是:根据系统对硬件电路的要求,详细地编写技术规格书,并画出系统控制流图,然后根据技术规格书和系统控制流图,对系统功能进行划分,合理的
41、划分功能模块,并画出系统功能框图,接着就是对各功能模块的细化和电路设计,各功能模块电路的设计和调试完毕后,再将各硬件电路连接起来,再进行系统的调试,最后完成整个系统硬件电路的设计。本系统主要集中在以FPGA以核心外围扩展设计,整个电路主要电子锁具的组成框图是以可编程逻辑器件(FPGA)为核心,配以相应硬件电路,完成密码的设置、存贮、识别和显示、驱动电磁执行器并检测其驱动电流值,报警等功能。完成基于FPGA的电子密码锁,要求设置4位密码,密码可以由用户自己修改设定;密码通过按键输入,若密码正确,则将锁打开;密码输入错误,系统通过报警、数码显示器进行错误提示。3.2 系统原理框图一个通用的密码锁是
42、由密码锁控制器以及附加的外围电路组成的,其中密码锁控制器的主要作用是接收输入密码并进行密码的验证操作,外围指示电路的主要作用是用来输入密码、显示输入的密码和根据密码验证的结果给出不同的信号显示。本系统由主控芯片(FPGA),显示电路,LED灯报警电路和按键电路组成,而主控芯片又可分为按键处理部分,控制部分和译码显示部分。键盘按键处理主控部分译码显示显示开/关门电路报警电路FPGA 图3-2 系统框图3.3 系统主控制流程框图基于FPGA电子密码锁以FPGA为主控芯片,将开锁电路,执行电路,报警电路,键盘输入次数锁定电路等完整地集成在一个电路板。包括输入电路模块,密码识别电路模块,密码错误报警模
43、块,显示模块。该电子密码锁通过键盘输入密码,利用识别系统检验其准确,根据其准确性来激发报警系统。最终将会显示其是否成功,然后执行解开锁功能来完成既定的安全任务。有限状态机应该包括以下状态:密码为输入前的等待状态、输入密码时的等待状态、输入密码正确时的通过状态、输入密码错误时的警报状态。其中当密码输入时又可包括以下状态,正常输入状态、异常输入状态(包括命令状态)、输入确认状态。通过时序产生键盘扫描信号,由键盘输入密码,将所输入的键盘值译码得到具体的数字;将输入值输入键盘数据存储器,在这里面可以将键盘值存储或者清除,再经过比较电路,比较输入值与原来存储的是否一致,如果一致则开启锁,如果不一致则报警
44、;在经过存储电路时,同时将所输入的值通过LED显示出来,显示将通过BCD译码电路,将所获取的值显示在LED数码管上。开始判断是否复位原始信号2222LED灯全亮等待输入密码 判断pass是否为1NY报警LED0亮开锁LED3亮结束 图3-2 流程图第四章 电子密码锁的软件设计4.1 主要功能模块设计通用的电子密码锁主要由三个部分组成:数字密码输入电路、密码锁控制电路和密码锁显示电路。(1)密码锁输入电路包括时序产生电路、键盘扫描电路、键盘弹跳消除电路、键盘译码电路等几个小的功能电路。(2)密码锁控制电路包括按键数据的缓冲存储电路,密码的清除、变更、存储、激活电锁电路(寄存器清除信号发生电路),
45、密码核对(数值比较电路),解锁电路(开/关门锁电路)等几个小的功能电路。(3)密码显示电路主要将显示数据的BCD码转换成相对应的编码。如,若选用七段数码管显示电路,主要将待显示数据的BCD码转换成数码器的七段显示驱动编码。密码锁输入电路 时序产生电路 键盘扫描电路扫描信号 键盘译码电路 弹跳消除电路按键输入 键盘密码锁控制电路 寄存器消除信号放生电路按键数据缓存器 数值比较电路 开/关门锁电路 BCD至七段译码电路 七段数码管 图4-1 数字电子密码锁系统总体框图4.1.1 输入模块本次密码锁的密码输入采用FPGA芯片上的4位单个按键,考虑到按键数目不够,密码只能设置0-9其中的三个数字;即分
46、别为K0=0,K1=1,K3=2。K2对应确认键,reset对应复位键。密码输入完成后可以按确认键检验密码的正误,报警、输入错误或者其他情况可以按复位按键重新输入。另外由于按键的时候同时会引起状态机的转换,所以如果按键的时候对按键判断次数过多会产生状态的过快转换,记录的密码和数码管的显示就同时会出现错误,因此在按键部分加入了消除多重按键的程序,只检测一次按键的下降沿,解决了这个问题。4.1.2 显示模块密码显示电路主要将显示数据的BCD码转换成相对应的编码。如,若选用七段数码管显示电路,主要将待显示数据的BCD码转换成数码器的七段显示驱动编码。通过时序产生键盘扫描信号,由键盘输入密码或者功能按
47、键,当然在这过程中要经过按键去抖,最后将将所输入的键盘值译码得到具体的数字或者功能键;将输入值输入键盘数据存储器,在这里面可以将键盘值存储或者清除,再经过比较电路,比较输入值与原来存储的是否一致,如果一致则开启锁,如果不一致则报警(在报警后可以通过输入万能密码或者断电复位等可以解决);在经过存储电路时,同时将所输入的值通过LED显示出来,显示将通过BCD译码电路,将所获取的值显示在LED数码管上。密码显示采用数码管动态扫描显示,初始时显示密码为4位,当输入密码后数码管的第一位、第二位、第三位、第四位会依次显示输入的密码,错误后复位可以重新输入。数码管动态扫描显示电路,因为每个数码管的需要连接的I/O口9个,当数码管需要的数量比较多,采取静态显示需求的I/O口就会成倍增加,为了节省FPGA芯片I/O口的使用,数码管动态扫描显示就成了设计者的选择。数码管动态扫描显示其实主要是靠人眼的视觉停留原理:数码管其实是一个一个亮过去的,每个数码管显示它该现实的数字,