毕业论文-基于FPGA的新型防盗门控制系统设计与实现_第1页
毕业论文-基于FPGA的新型防盗门控制系统设计与实现_第2页
毕业论文-基于FPGA的新型防盗门控制系统设计与实现_第3页
毕业论文-基于FPGA的新型防盗门控制系统设计与实现_第4页
毕业论文-基于FPGA的新型防盗门控制系统设计与实现_第5页
已阅读5页,还剩33页未读 继续免费阅读

下载本文档

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

1、 大连东软信息学院毕业设计(论文) 摘要 1大连东软信息学院本科毕业设计(论文)论文题目论文题目:基于FPGA的新型防盗门控制系统设计与实现系 所: 电子工程系 专 业:电子信息工程(集成电路设计与系统方向) 学生姓名: 学生学号: 指导教师: 导师职称: 讲师 完成日期: 2014年4月28日 大连东软信息学院Dalian Neusoft University of Information大连东软信息学院毕业设计(论文) 摘要 - 30 -基于FPGA的新型防盗门控制系统设计与实现摘 要随着科技和技术的发展,人们安全意识也逐步提升,对各种功能的防盗门需求也随之增多,关键技术芯片体积也是越来越

2、小,性能越来越强大,功能越来越多,而功耗却在减少,只有不断的发展这项技术,才能满足人们的需求。并且随着大规模可编程器件在FPGA的支持下的应用和快速发展完善,提高了设计效率,我们只需要通过计算机就能对设计的电子系统的功能进行仿真和测试随着科技的发展,很适合普及。 本文系统地介绍了基于FPGA的新型防盗门控制系统设计,从最初的资料的查阅,调查市场现状,制定系统功能需求.在设计过程中应用了多种知识原理:FPGA,verilog语言,按键消抖,状态机的设计,结合这些知识进行了系统的功能设计,先分析逻辑框图,确定工作原理,流程,具体到每个模块每个单元,系统的功能实现,通过Xilinx ISE进行代码的

3、编写,并通过RTL级综合,最后进行系统的功能仿真,根据加入的激励信号,测试系统的基本功能完整性,最后通过这些软件的强大性能设计并实现了基于FPGA的新型防盗门系统。关键词:防盗门,FPGA,硬件描述语言大连东软信息学院毕业设计(论文) AbstractDesign and Implementation of the New Security Doors System Based on FPGAAbstract Along with the development of science and technology, safety consciousness also gradually imp

4、roved, people have more demand for various functions of security doors, key technology of the chip size grow smaller , the performance become more and morepowerful, the function become more and more colorful, and the power consumption is in decline, only by constantly the development of the technolo

5、gy so that satisfy peoples needs. And with the support of large-scale programmable devices in the FPGA application and rapid development of the perfect, improve the efficiency of the design, we only need through a computer can simulate the function of the design of electronic systems and test with t

6、he development of science and technology, which is suitable for popularization. This paper introduces the design principle of application of knowledge, such as FPGA, verilog language, elimination of state, machine design, analyses the system functional requirements, At beginning we finished the syst

7、em function design, then realization of the function of the system and the function of the system simulation. At last, by the strong performance of the software .design and implementation the new guard against theft system based on FPGA.Keywords: Door Control, FPGA, Hardware Description Language大连东软

8、信息学院毕业设计(论文) 目录目 录 TOC o 1-3 u 摘 要 PAGEREF _Toc387837799 h IAbstract PAGEREF _Toc387837800 h II第1章绪论11.1 课题研究背景与意义11.2 课题研究现状1第2章关键技术介绍22.1 FPGA22.2 Verilog语言22.3 硬件消抖42.4 软件消抖42.5 状态机设计4第3章系统需求分析63.1 系统设计目标63.2 系统需求63.2.1 功能键63.2.2 功能模块63.2.3 信号73.2.4 键值73.3 系统非功能需求83.4 系统开发环境83.5 系统可行性分析9第4章系统设计10

9、4.1 系统设计指导原则104.2 设计思想104.3 系统体系架构114.4 硬件设计114.4.1状态机设计114.4.2 密码的记录134.4.3 密码的比较144.4.4 按键的赋值144.4.5 警报计时器154.4.6 通过计时器154.4.7 尝试次数计数器164.4.8消抖模块17第5章系统实现185.1 环境配置185.2 功能模块实现185.2.1 主状态机185.2.2 次状态机195.2.3 按键赋值模块205.2.4 密码的比较205.2.5 警报计时器215.2.6 通过计时器215.2.7 尝试错误次数计数器225.2.8 顶层模块225.2.9 消抖模块23第6

10、章系统测试246.1 测试概述246.2 测试用例24第7章结论28参考文献29致 谢30大连东软信息学院毕业设计(论文)第1章绪论1.1 课题研究背景与意义 在人们的财产的增多和科技的发展,怎样保护财产安全成了不可忽视的问题,防盗门就是一种手段,如今随着大规模可编程器件在FPGA的支持下的应用和快速发展完善,我们只需要通过计算机就能对设计的电子系统的功能进行仿真和测试。防盗门系统由电子锁和电子密匙部分组成,一个电子锁可存放一组开锁密码,用户可以修改密码 现在主流的防盗门有,遥控式电子防盗门,键盘式电子防盗门。本文介绍的基于FPGA的防盗门系统与普通防盗门的机械锁相比它的特点是保密性好 防盗性

11、强 用密码开锁 钥匙丢了也没关系。1.2 课题研究现状随着人们生活水平的提高和安全意识的加强,对安全的要求也就越来越高。防盗门自古以来就是把守人们安全的铁将军,人们对它要求甚高,既要安全可靠的防盗,又要使用方便,这也是研究者长期以来研制的主题。随着电子技术的发展,各类电子产品应运而生,电子防盗门就是其中之一。据有关资料介绍,电子防盗门的研究从20世纪30年代就开始了,在一些特殊场所早就有所应用。现在比较先进的是使用键盘作为密码的录入,因为密码有多种组合,与机械锁一起使用,可以避免许多安全隐患,因为电子防盗门只需记住一组密码,即使要不用钥匙也可以起到防盗作用,电子防盗门的种类繁多,例如数码电子防

12、盗门,指纹防盗门,磁卡防盗门,IC卡防盗门,生物识别防盗门等。电子防盗门使用最为广泛。随着科技的发展,以及FPGA的发展和流行电子防盗门芯片的体积缩小,运行速度提升,成本降低,很适合普及。当前,各种智能系统应运而生,并应用在电子防盗门中,极大地增加的电子防盗门的可靠性和安全性.电子密码锁的成本还很高,我国也有很多资助研发的先进的电子防盗门,它们大多数被购买安装在社区的单元门,而且防盗效果非常好,避免的钥匙遗失带来的隐患,加强社区的治安,有效地抑制了推销人员和做小广告的闲杂人等进入。提高了人们的生活质量。 在调查中发现多数防盗门系统是基于单片机开发的,但随着大规模可编程器件在FPGA的支持下的应

13、用和快速发展完善,我们只需要通过计算机就能对设计的电子系统的功能进行仿真和测试。正是由于FPGA的这些优点无需更改外部电路的设计,大大提高了设计的效率。第2章关键技术介绍本文的设计过程中应运多种关键技术,通过最初的查阅资料,确定的本文基于FPGA开发一种新型的防盗门系统,这就要了解并熟练应用FPGA关键技术。2.1 FPGA FPGA是以硬件描述语言(包括verilog和vhdl)所完成的电路设计,可以完成简单的综合与布线布局,并在FPGA开发板上进行测试,它目前是IC设计的主流,可编辑的元件可以被用来实现基础的逻辑门电路,包括and, or ,xor ,not。FPGA设计流程包括设计系统和

14、实现设计,系统功能需求分析完成之后,接着是实现设计部分,根据系统的需求功能设计出相应的输入,进行RTL级描述、功能仿真(RTL级仿真)、逻辑综合、布线仿真、适配(布局布线)、时序仿真、时序分析、器件编程。最终就算完成FPGA芯片的设计了,只要有一步不对就要修改并重新通过上述流程。这些地方容易出错的地方有RTL级描述、系统方案、测试激励文件等。通常要经过反复的修改,才能完成。在理论上,把VLSI(Ultra Large Scale Integration,超大规模集成电路)的设计过程分为6个层次1,2,即系统级(系统功能、参数定义)、算法级(系统功能级行为)、RTL级、门级(逻辑门)、电路级(晶

15、体管)、版图级(物理工艺)。每个层次又分为:行为域描述、结构域描述、物理域描述。通常把算法级行为域描述或者RTL级行为域描述统称为行为级描述。FPGA的设计流程:库:一般是提供FPGA的原理图和封装,就是已经定义好的基本元器件,可以直接调用。测试激励:指测试文件,他关联系统设计的顶层模块,在这个文件中会产生顶层模块需要的激励信号,然后仿真,观察输出是否和预期的一致。在开发系统的过程中,需要进行系统的功能性分析和功能设计,要实现这些功能,这就要应用硬件开发语言verilog语言进行相应的编程,来实现设计的模块。2.2 Verilog语言Verilog语言是描述电路银硬件及时序的一种编程语言,他具

16、有以下特点:描述电路的的连接,描述电路的功能,在不同抽象级上描述电路,描述电路的时序,表达具有并行性。Verilog主要包括:编写的可综合的RTL代码,系统仿真,编写测试程序,用于ASIC和FPGA单元或功模块的模型开发,verilog模型可以是实际电路的不同级别的抽象,这些抽象级别包括行为综合,综合前仿真,逻辑综合,综合后仿真,版图。而在抽象级上需要进行取舍,输入仿真速度越高,一般的,详细程度越低。Verilog可在三种抽象级上进行描述 行为级。主要使用功能模块之间的数据流对系统进行描述,并在需要时在函数块之间进行调度赋值。RTL级/功能级主要是用功能快内部或功能块之间的数据流和控制信号描述

17、系统,结构级/门级 主要是基于大元或底层元件的描述连接描述系统已得到更高的精准性,特别是时序方面,在综合室也可用特定的工艺和底层元件将RTL描述映射到门级网表。对于设计工程师应在不同的阶段采用不同的抽相级,首先在行为级描述各功能块,以降低描述难度,提高仿真速度吗,在综合前将各功能模块进行RTL级描述。用于综合的苦衷的大多数单元采用结构级描述。在设计的具体过程中发现,按键在短时间内,出现多次按下的情况,在后期仿真时发现,由于按键的多次赋值,系统出错,不能正确的尽心状态转换,正确赋值,影响了系统的基本功能实现,经过查阅资料,了解到解决这个问题应用到按键消抖原理方面的知识。按键消抖又分为硬件消抖和软

18、件消抖。同时要熟练使用系统的开发软件,了解软件的功能和性能优点,还有软件的操作使用方法。Xilinx ise 是Xilinx公司的硬件设计工具。特点是功能强大,操作界面简单一指将先进的技术与灵活性、易使用性的图形界面结合在一起,无论你是初学者还是熟练的工程师都让您在最短的时间,以最少的努力,达到最佳的硬件设计。ISE工程设计流程包括第一步图形和文本输入,分析系统的功能需求,得出系统状态机,各模块的原理图;第二步综合,将行为级和功能级转换为基本结构的底层模块组合;第三步实现,根据自己所使用的芯片将综合输出的逻辑网表匹配到合适的器件上;第四步验证包括功能仿真,是对设计的电路进行模拟测试通过Xili

19、nx自带的模拟工具看仿真波形图之中的输入与输出信号之间的关系。第五步下载;将仿真正确的程序下载到开发板上,进行测试。 在仿真过程中发现,按键信号在极短的时间内多次抖动,造成按键信号多次有效,导致功能不能实现,时序出现错误,经过查阅资料,了解到了消抖的原理和几种常见的方法。 2.3 硬件消抖在键数较少时可用硬件方法消除键抖动。R-S触发器是形成小豆电路的常用手段,R-S是有两个与非门交叉耦合而成非s和非R是信号的输入端,低电平有效,Q和非Q即表示触发器的状态,又是触发器输出端,在启动过程中,非S段一旦下降到开门电平,Q端电平上升,反馈到B的输入端,促使B由截止转向导通,非Q电平下降,反馈到门A的

20、输入端,进一步促使A截止,Q端电平进一步上升。Q端进一步的上升导致非Q断电平下降,这种过程,门A快速截止,门B快速导通,触发器在极短的时间内完成从截止到导通,并通过非R段的复位时也有类似的正反馈过程,从而完成按键消抖。此外还有一种通过电容的放电延时实现按键消抖。2.4 软件消抖如果按键较多,常用软件方法去抖,即检测出键闭合后执行一个延时程序,5ms10ms的延时,让前沿抖动消失后再一次检测键的状态,如果仍保持闭合状态电平,则确认为真正有键按下。当检测到按键释放后,也要给5ms10ms的延时,待后沿抖动消失后才能转入该键的处理程序。一般来说,软件消抖的方法是不断检测按键值,直到按键值稳定。实现方

21、法:假设未按键时输入1,按键后输入为0,抖动时不定。可以做以下检测:检测到按键输入为0之后,延时5ms10ms,再次检测,如果按键还为0,那么就认为有按键输入。延时的5ms10ms恰好避开了抖动期。本文采用软件消抖。设计过程中,代码的合理编写对实现系统的功能非常重要,而状态机是整个系统状态转换和给出信号的重要模块,合适的编写方法和确定用哪种方法设计状态机,将决定了整个系统的可行型,所以了解状态机的设计必不可少。2.5 状态机设计基于FPGA的有限状态机设计:有限状态机的当前状态由过去的输入和当前输入的时序逻辑电路。有限状态机又可以认为是组合逻辑和寄存器逻辑的一种组合。状态机特别适合描述那些发生

22、有先后顺序或者有逻辑规律的事情,其实这就是状态机的本质。状态机就是对具有逻辑顺序或时序规律的事件进行描述的一种方法。在实际的应用中,状态机可以分为两大类,第一类摩尔 (Moore) 型状态机,第二种米勒 (Mealy) 型状态机。它们的形成是根据状态机的输入条件是否和状态机的输出有关系而得出的。Mooer状态机的输出只取决与当前状态,也就是由状态机当前的状态决定输出,而与此时的状态机输入无关,输入只决定状态机的中间状态改变,不影响电路最终的输出(注意:这里所说的输出不是状态机的状态机状态的输出,而是当前状态的所代表的含义,比如:检测010序列的状态机,当状态机跳转到alarm时,电路会有一个输

23、出信号,比如alarmed信号,此时alarmed就会为高电平,其他(状态时)时alarmed就会为低电平。alarmed 是我们最后电路的输出,alarmed的值置于我们的转台机当前所处的状态有关,而与输出无关。用一句话总结就是:Moore状态机的每一状态指定它的输出独立于电路的输入。Mealy状态机的输出不仅与当前的状态有关,还与当前的输出有关(同样,不要误认为状态机的输出只能是状态机的状态,即当前的输入和当前的状态共同决定当前的输入。Mooer状态机和Mealy状态机的状态的是相同的,当前的状态和输入共同决定下一个状态是什么。状态机有序多种描述方法,可以用一个always模块写状态机,这

24、一个always模块中要有系统状态机的各个状态转移关系,又要有状态转移相对应的输入和输出部分,这是一段式状态机;第二种方法是用两个always 模块写状态机,第一个always 模块同步描述状态机的状态,第二个always模块根据输入的信号状态机跳转到相应状态,这两个always模块在一起完成了状态机的所有功能,这是两段式状态机;第三种用三个always模块写状态机,第一个always 模块同步描述状态机的状态,第二个always模块根据输入的信号状态机跳转到相应状态,第三个always模块同步描述状态机的输出,这是三段式状态机。通常fpga工程师使用两段式和三段式的描述方法.因同步的时序,可

25、以增加设计的稳定性,减少输出波形的毛刺。一般状态机既有同步时序电路部分,又有组合逻辑部分。两段式相比比一段式的优点是,它的同步时序电路部分和组合逻辑部分出现在不同的的always模块中。这样方便其他人阅读,也方便优化代码, 一段式不利于时序约束、功能更改、容易报错,出现逻辑性错误。两段式也有缺点,工程师们通常用组合逻辑描述当前状态的输出 但会有毛刺产生,而且不利于约束,不利于后期实现高性能的设计。三段式的设计方法很好的解决了这个问题。与两段式相比,根据状态转移的规律,在前一状态根据输入条件判断出当前状态的输出,实现了寄存器输出。而且不插入额外时钟节拍的前提下。第3章系统需求分析3.1 系统设计

26、目标(1) 设计一个防盗门控制系统,带有密码功能(密码为4位的十进制数)。(2) 根据用户输入的密码,做出相应的判断(警报或开锁)。(3) 密码清除功能,清除前面出入的键值。3.2 系统需求3.2.1 功能键cancel,change,enter,zero1,one1,two1,three1,four1为系统的8个外部输入,其中zero1,one1,two1,three1,four1对应数字键0,数字键1,数字键2,数字键3,数字键4,cancel为取消键,change为改值键,enter为确定键。功能键表格如图3.1所示。表3.1 功能键功能编号功能按键功能描述1cancel取消键2chan

27、ge改值键3enter确定键4zero1数字键05one1数字键16two1数字键27three1数字键38four1数字键43.2.2 功能模块有10个功能模块分别是赋值模块,主状态模块,次状态模块,判断模块,警报计时器,通过计时器,次数计数器,分频模块,防消抖模块。他们的功能分别为主状态的转换(等待状态,报警状态,通过状态);移位状态的转换(第一位,第二位,第三位,第四位,完成位);判断密码比较器;警报状态的计时器通过状态下工作的计时器;错误次数计数器;分频器,有效检验按键次数。功能模块表格如图3.2所示。表3.2 功能模块功能编号功能名称功能描述1赋值模块对按键赋值2主状态模块系统状态转

28、换3次状态模块移位状态转换4判断模块对密码判断5警报计时器警报状态下计时6通过计时器通过状态下计时7次数计数器记录错误次数8分频模块分频9防消抖模块正确记录有效按键10记录密码模块依次记录输入密码11密码判断模块判断密码是否正确3.2.3信号Clk,resetb,zero1,one1,two1,three1,four1,enter,cancel,change为系统的10个外部输入信号alarmed,passed为系统的2个外部输出信号。其中clk为基准时钟输入信号;resetb为复位信号;zero1为按键0输入信号;one1为按键1输入信号;two1为按键2输入信号;three1为按键3输入信

29、号;four1为按键4输入信号;enter为按键enter信号;cancel为按键cancel信号;change为按键change信号;alarmed为报警输出信号;passed为通过输出信号。信号表格如图3.3所示。表3.3 信号功能编号功能名称功能描述1clk基准时钟2resetb复位3zero1按键0信号4one1按键1信号5two1按键2信号6three1按键3信号7four1按键4信号8enter确定9cancel取消10change改值11alarmed警报12passed通过3.2.4键值根据按下的按键zero1,one1,two1,three1,four1,change,can

30、cel,enter译码器做出相应的译码。零按键信号译为4b0000 2进制码;一按键信号译为4b0001 2进制码;二按键信号译为4b0010 2进制码;三按键信号译为4b0011 2进制码;四按键信号译为4b0100 2进制码;五按键信号译为4b0101 2进制码;六按键信号译为4b0110 2进制码;七按键信号译为4b0111 2进制码;八按键信号译为4b1000 2进制码;九按键信号译为4b1001 2进制码;enter按键信号译为4b1011 2进制码;cancel按键信号译为4b1100 2进制码;change按键信号译为无2进制码;键值表格如图3.4所示。表3.4 键值按键信号(十

31、进制)键值(2进制)04b000014b000124b001034b001144b010054b010164b011074b100084b100194b1010enter4b1011cancel4b11004b1101(无效)4b1110(无效)4b1111(无效)change无3.3 系统非功能需求电子防盗门系统是人们安全意识提高后的成果,他保护人们的财产和人生安全,电子防盗门系统带有密码保护功能,只有户主输入了正确的密码,才能进入,减少了许多安全局隐患,在输入密码的同时有显示,显示当前输入密码标识位,当输入移位密码后,显示跳转到下一位,还有取消功能,如果输入错误,不用复位重新输入,取消功能

32、按键,会返回上一位。生活中已经普遍应用这种电子防盗门系统,在社区中每栋楼的单元门安装这种电子防盗门,极大地提高了人们的安全。3.4 系统开发环境 硬件配置:100GB硬盘;3GB内存;处理器: 2.67GHZ操作系统:Windows7 32位操作系统编程语言:Verilog HDL(硬件描述语言)软件环境:Xilinx ISE8.2i、ModelSim、Visio、Workstation3.5 系统可行性分析本文使用ISE作为开发软件,它拥有先进的技术,简单灵活的操作和图形使用界面,verilog语言作为开发语言,verilog语言是硬件描述语言的一种,可用于数字电子系统设计,可通过它进行各种

33、级别的逻辑设计,并进行数字逻辑系统的仿真验证,时序分析,逻辑综合。 大连东软信息学院毕业设计(论文)第4章系统设计4.1 系统设计指导原则针对市场上一些电子防盗门系统进行分析和整理以后并对相关类型的电子防盗门系统的资料进行整合,分析完善精简功能提高可操作性和效率。电子防盗门的首要目标是满足人们自己对人生财产的需求,同时可以确保电子防盗门系统能够有效地帮助人们保护他们的人生财产安全,本系统成本低廉,可操作性强,在发达国家已经广泛应用。本设计基于FPGA的新型防盗门设计, 根据系统原理图,完成了系统体系构架,状态机,比较器,记录器,译码器的设计。并也可以用verilog硬件描述语言实现,最后进行了

34、整体系统的功能仿真。在满足上述基本要求后,可以拓展更多的功能使电子防盗门系统项目设计目标更加便捷,实用。4.2 设计思想防盗门系统组成部分:FPGA芯片,键盘(输入部分),显示部分,状态信号(密码是否正确),其中FPGA可分为按键处理部分,控制电路部分,译码显示部分,系统原理示意图如图4.1设计思想框图所示。图4.1 设计思想框图防盗门密码按键有0-9,10个数字按键enter,cancel功能按键resetb复位键,基于FPGA上的按键有限,按键会不够,增加一个change键,具体工作原理:按下0-4数字键 键盘输入0-4数字,当按下0-4数字键和change时,键盘输入5-9数字。密码输入

35、完成后按enter键确认密码输入的正误,出现报警或通过信号。在错误,关锁的情况可按下resetb键复位并重新开始,而在输入密码过程中如果出现输入的密码错误,可按下cancel取消。另外由于按下键值的同时会使状态机的状态变化,如果案件次数在短时间内过多,会对状态机的变化产生影响,过快变化状态。记录密码和显示密码会出现错误,因此加入按键消抖,在一定时间只检验一次按键的下降沿,本文采用软件消抖。4.3 系统体系架构系统体系架构如图4.2所示图4.2 系统体系架构4.4 硬件设计4.4.1状态机设计本文设计状态机先从系统中的功能和电路确定需要几个状态,例如主状态机预想的状态有3个状态分别为等待,报警和

36、通过。不同状态之间的切换通过相应的状态信号转换。起始状态(等待):复位信号有效进入该状态,处在报警状态达到规定时间,处在通过状态达到规定时间,进入该状态。报警状态:4位密码比对错误进入报警状态,尝试错误最大次数超过规定次数进入报警状态通过状态:4位密码比对正确进入通过状态。给这3个状态分配3个状态编码00,01,02,然后用一个2位位宽寄存器存储即可。次状态机用同样的方法确定有5个状态,分别为第一位,第二位,第三位,第四位,完成位。起始状态(第一位):复位信号有效进入该状态,按键enter有效进入该状态,第二位:前一状态为第一位,按键0,1,2,3,4,有效,进入该状态, 前一状态为第三位,按

37、键cancel有效,进入该状态。第三位:前一状态为第二位,按键0,1,2,3,4有效,进入该状态,前一状态为第四位,按键cancel有效,进入该状态。第四位:前一状态为第三位,按键0,1,2,3,4有效,进入该状态,前一状态为完成位,按键cancel有效,进入该状态。完成位:前一状态为第四位,按键0,1,2,3,4有效,进入该状态。 给这5个状态分配5个状态码 00,01,02,03,04,用一个3位位宽的寄存器存储。主状态机如图4.3主状态机所示,次状态机如图4.4次状态机所示。图4.3 主状态机图4.4 次状态机4.4.2密码的记录使用一个16位位宽的寄存器来储存输入的密码,当次状态机发生

38、转换并且有密码输入时,记录输入的密码在寄存器中,因为密码有4个10进制数字组成,程序会根据当前次状态机的状态把密码按对应的顺序存储在寄存器中。密码纪录器如图4.5密码记录器所示。图4.5 密码纪录器4.4.3密码的比较使用一个比较器来比较输入的密码与存储在程序中的密码是否一致,如果密码对比后一致,则输出通过状态信号,如果密码比对后不一致,输出警报状态信号。密码比较器如图4.6密码比较器所示。图4.6 密码比较器4.4.4按键的赋值如果检测到按键按下有效,则通过一个译码器把每个按键相对应的2进制值赋予给存储键值的4位位宽的寄存器。按键赋值模块如图4.7按键赋值模块所示。图4.7 按键赋值模块4.

39、4.5警报计时器从安全性考虑当系统警报后,状态机一直保持在报警状态,但在该状态下持续时间过长,会给用户带来不必要的麻烦,比如影响其他用户开锁,所以应在一定时间内状态机由报警状态自动返回到关锁模式即等待状态。此模块使用一个计时器,复位信号有效计时器清零,报警状态有效,开始工作,当计时达到规定的时间后,状态机状态返回等待。报警计时器模块如图4.8报警计时器模块所示。 图4.8 报警计时器模块4.4.6通过计时器从安全性考虑当系统开锁后,状态机保持在通过状态,但在该状态持续时间过长,会给用户带来不必要的麻烦,比如用户忘记关锁。所以应在一定时间内状态机由通过状态自动返回到关锁模式即等待状态,模块使用一

40、个计时器,复位信号有效计时器清零,通过状态有效,开始工作,当计时达到规定时间后。状态机返回等待状态。通过计时器模块如图4.9通过计时器模块所示。图4.9 通过计时器模块4.4.7尝试次数计数器从安全性考虑,不能在短时间内多次输入不正确的密码,影响用户的安全,所以应当设置最大尝试次数防止有人恶意多次尝试开锁,造成不必要的麻烦。模块使用一个计数器,复位信号有效计数清零,错误信号有效计数器加一,当纪录错误次数为规定最大次数时,状态机进入警报状态。尝试次数计数器模块如图4.10尝试次数模块所示。图4.10 尝试次数模块4.4.8消抖模块为了正确有效地得到按键信号,防止在极短的时间内多次记录按键的按下,

41、本文采用软件消抖的方法即不断检测按键值,直到按键值稳定。实现方法:假设未按键时输入1,按键后输入为0,抖动时不定。可以做以下检测:检测到按键输入为0之后,延时一定时间,再次检测,如果按键还为0,那么就认为有按键输入。延时的时间恰好避开了抖动期。第5章系统实现5.1 环境配置100GB硬盘;3GB内存;处理器: 2.67GHZ5.2 功能模块实现5.2.1主状态机图5.1 主状态机输出信号try_count,alarm_count,clk,correct,error,pass_count,resetb。输出信号有alarmed,passed,Try_count。为尝试最大错误次数信号,信号与错误

42、次数计数模块的try_count连接,当该信号有效时,状态机由等待状态跳转到报警状态;Alarm_count报警状态返回信号,信号与报警计时模块的alarm_1连接,当该信号有效时,状态机由报警状态跳转到等待状态。Clk为输入时;Correct为判断正确信号,信号与密码比较器模块中的correct端口连接;当该信号有效时,状态机由等待状态跳转到通过状态;error为判断错误信号,信号与密码比较器模块的error端口连接;当该信号有效时,状态机由等待状态跳转到报警状态;pass_count为通过状态返回信号;信号与通过计时器模块的pass_1连接,当该信号有效时,状态机由通过状态跳转到等待状态;

43、alarmed为警报信号,信号为系统的输出,当该信号有效时,开锁失败;passed为通过信号,信号为系统输出,当该信号有效时,开锁成功。如图5.1主状态机所示。5.2.2次状态机图5.2 次状态机输入信号有cmd,cancel,clk,enter,four,one,resetb,three,two,zero。输出信号有password。cmd为按键键值信号,信号与按键赋值模块的cmd连接,当该信号有效时,根据按下的按键输入相应的键值;cancel为取消信号,信号与消抖模块的cancel端口连接,当该信号有效时,次状态机从当前状态返回前一状态;clk为输入时钟;enter为确定信号;,信号与系统

44、输入enter连接,当该信号有效时,次状态机从当前状态返回到第一位;four为按键4,信号与信号与消抖模块的按键4连接,当该信号有效时,次状态根据当前状态机跳转到相应下一状态;One为按键1,信号与消抖模块的按键1端口连接,当该信号有效时,次状态机根据当前状态跳转到相应下一状态;resetb为复位信号;three为按键3,信号与消抖模块的按键3端口连接,当该信号有效时,次状态机根据当前状态跳转到相应下一状态;two为按键2,信号与消抖模块的按键2端口连接,当该信号有效时,次状态根据当前状态跳转状到相应下一状态;zero为按键0,信号与消抖模块的按键0端口连接,当该信号有效时,次状态根据当前状态

45、跳转状到相应下一状态;password为纪录的密码信号,输出到密码比较模块。如图5.2次状态机所示。5.2.3按键赋值模块图5.3 按键赋值模块输入信号有cancel,change,clk,enter,four,one,resetb,three,two,zero。.输出信号有cmd,key_flag,cancel为取消信号,信号与消抖模块的cancel端口连接,当该信号有效时,模块赋予相应的值;clk为输入时钟;enter为确定信号,信号与系统输入enter端口连接,当该信号有效时,模块赋予相应的值;four为按键4,信号与消抖模块的按键4端口连接,当该信号有效时,模块赋予相应的值;one为按

46、键1,信号与消抖模块的按键1连接,当该信号有效时,模块赋予相应的值;resetb为复位信号;three为按键3,信号与消抖模块的按端3口连接,当该信号有效时,模块赋予相应的值;two为按键2,信号与消抖模块的按键2连接,当该信号有效时,模块赋予相应的值;zero为按键0,信号与消抖模块的按键0端口连接,当该信号有效时,模块赋予相应的值;Cmd为按键键值信号,信号与次状态机的cmd端口连接,当该信号有效时,根据按下的按键输出相应的键值;key_flag为按键标示信号。如图5.3按键赋值模块所示。5.2.4密码的比较图5.4 密码比较模块密码比较模块输入信号有password,clk,enter,

47、key_flag,resetb。输出信号有correct,error。password为记录密码的信号,信号与记录密码模块的password信号连接;当该信号有效时输入记录的密码;clk为输入信号;enter为确定信号,信号与系统输入enter端口连接,当该信号有效时,开始比较密码;key_flag为按键标识信号;resetb为复位信号;correct为判断正确信号,信号与状态机的correct端口连接;error为判断错误信号,信号与状态机的error端口连接,如图5.4密码比较模块所示。5.2.5警报计时器图5.5 报警计时器模块报警计时模块输入信号有alarmed,clk1,resetb

48、。输出信号有alarm_1。Alarmed为报警信号,信号与状态机的alarmed端口连接,当该信号有效时,报警计时模块开始工作;clk1为输入时钟;resetb为复位;alarm_1为报警状态返回信号,信号与状态机中的alarm_count端口连接。如图5.5报警计时器模块所示。5.2.6通过计时器图5.6 通过计时器模块通过计时器模块输入信号有clk1,passed,resetb。输出信号有pass_1,passed为通过信号,信号与状态机的passed端口连接,当该信号有效时,通过计时模块开始工作;clk1为输入时钟;resetb为复位;pass_1为报警状态返回信号,信号与状态机中的p

49、ass_count端口连接。如图5. 6通过计时器模块所示。5.2.7尝试错误次数计数器图5.7 尝试错误次数计数器尝试错误次数计数器模块有输入信号clk,error,passed,resetb。输出信号有try_count,clk为输入时钟;error为错误信号,信号与密码判断模块的error端口连接,当该信号有效时,尝试错误次数计数器模块开始工作。如图5.7尝试错误次数计数器所示。5.2.8顶层模块图5.8 顶层模块cancel,change,clk,enter,four1,one1,resetb,three1,two1,zero1。为总输入信号, alarmed,passed为总输出信号

50、。如图5.8所示。5.2.9消抖模块图5.9 消抖模块输入信号有cancel1,clk,four1,one1,three1,two1,zero1输出信号有cancel,four,one,three,two,zero。其中cancel1,fouor1,one1,three1,two1,zero1。为系统总输入按键信号,当信号有效时,如two1高电平有效,消抖模块检测有效按键次数输出two信号。该信号与按键赋值模块的端口two连接;one与按键赋值模块的端口one连接;three与按键赋值模块的端口three连接;four与按键赋值模块的端口four连接;cancel与按键赋值模块的端口cance

51、l连接如图5. 9所示。第6章系统测试防盗门系统是保护人们安全的重要设备,文本以大学所学知识为基础,设计了一种基于FPGA的新型防盗门系统,主要针对设计的防盗门控制系统带有的密码功能(密码为4位的十进制数);根据用户输入的密码,做出相应的判断(警报或开锁)功能;密码清除功能(清除前面出入的键值),进行了仿真测试。本次测试主要目的是保证系统的基本功能,并验证系统的可操作性。6.1 测试概述本文使用Xilinx ISE进行仿真,首先创建测试文件test,选择new sources里的verilog test fixture然后选择关联文件top,在整个测试过程中输入端有clk,resetb,zer

52、o1,one1,two1,three1,four1,change,cancel1,enter。输出端有alarmed,Passed, 在新建的test文件里可以输入各种激励信号。首先重置reset,输入reset=0,并且不给时钟信号:clk=0;然后reset=1,重置无效。 always # 10 clk=clk,即定义时钟周期为20纳秒。在ISE的sources里选择behavior,然后点击processes里的simulate behavioral model。6.2 测试用例图6.1消抖仿真消抖仿真,当one1=1时,one_r=one1,one= (one _r&(one1);波

53、形图正确。如上图6.1消抖仿真所示。图6.2 按键赋值仿真按键赋值仿真,当one低电平有效时,cmd赋值为1,如上图6.2按键赋值仿真所示。图6.3 系统功能仿真系统整体仿真波形图,输入以下激励信号#30 one1=1;#30 one1=0;#60 zero1=1;#60 zero1=0;#80 two1=1;#80 two1=0;#100 zero1=1;#100 zero1=0;#120 enter=0;#120 enter=1;当按下按键one1,消抖检测后one信号有效,同时次状态机sub_state从当前状态的第一位跳转到第二位;当按下按键zero1,消抖检测后zero信号有效, 同

54、时次状态机sub_state从当前状态的第二位跳转到第三位;当按下按键two1消抖检测后two信号有效,同时次状态机 sub_state从第三位跳转到第四位;当按下按键zero1,消抖检测后zero信号有效, 同时次状态机sub_state从第四位跳转到完成位;当按下按键enter有效时,次状态机sub_state从完成位跳转到第一位。同时记录密码模块的password依次存储刚刚4次按下按键的键值依按位数存储成为密码,最后按下enter按键后,在比较密码模块比较密码得到error=1。主状态机得到error=1从等待状态跳转到警报状态alarmed=1。同时报警计时器工作,达到规定时间,al

55、arm_1=1;主状态机从当前报警状态返回等待状态;同时尝试错误次数模块try_count=1。 如上图6.3系统功能仿真所示。图6.4 系统功能仿真系统整体仿真波形图,输入以下激励信号#30 one1=1; #30 one1=0; #60 zero1=1; #60 zero1=0; #80 two1=1; #80 two1=0; #100 zero1=1; #100 zero1=0; #120 cancel1=1; #120 cancel1=0;当按下按键one1,消抖检测后one信号有效,同时次状态机sub_state从当前状态第一位跳转到第二位;当按下按键zero1,消抖检测后zero信

56、号有效,同时此状态机Sub_state从第二位跳转到第三位;当按下按键two1,消抖检测后two信号有效,同时次状态机Sub_state从第三位跳转到第四位;当按下按键zero1,消抖检测后zero信号有效,同时次状态机 Sub_state从第四位跳转到完成位;当cancel1有效时次状态机Sub_state从完成位条状到第四位。如上图6.4系统功能仿真所示。图6.5 系统功能仿真#30 one1=1;#30 one1=0;#60 two1=1;#60 two1=0;#80 three1=1;#80 three1=0;#100 four1=1;#100 four1=0;#120 enter=0

57、;#120 enter=1;当按下按键one1,消抖检测后one信号有效,同时次状态机Sub_state从第一位跳转到第二位;当按下按键two 1,消抖检测后two信号有效,同时次状态机Sub_state从第二位跳转到第三位;当按下按键three 1,消抖检测后three信号有效,同时次状态机Sub_state从第三位跳转到第四位;当按下按键four 1,消抖检测后fouor信号有效,同时次状态机Sub_state从第四位跳转到完成位;当按下按键enter有效时Sub_state从完成位条状到第一位。同时记录密码模块的password依次存储密码,然后在比较密码模块比较密码得到coorrect

58、=1。主状态机从当前的等待状态跳转到通过状态。同时通过计时器工作,达到规定时间,pass _1=1;主状态机从当前的通过状态返回等待状态;同时尝试错误次数模块try_count=0。如上图6.5系统功能仿真所示。大连东软信息学院毕业设计(论文)第7章结论随着科技和技术的发展,人们安全意识也逐步提升,对各种功能的防盗门需求也随之增多,关键技术芯片体积也是越来越小,性能越来越强大,功能越来越多,而功耗却在减少,只有不断的发展这项技术,才能满足人们的需求。从查阅资料到设计阶段,发现多数防盗门系统是基于单片机开发的,但随着大规模可编程器件在FPGA的支持下的应用和快速发展完善,我们只需要通过计算机就能

59、对设计的电子系统的功能进行仿真和测试,运用大学所学习的知识verilog语言,soc系统开发,计算机基础,数字电路开发设计基础,本文决定实现的一种基于FPGA的防盗门系统可行性非常强,起初的工作是从查阅的资料中确定现在主流的防盗门系统的功能,根据生活中的实际情况设计了几个基本的功能,由于对设计流程的不熟悉,在设计的初期,遇到了很多困难,如在语言语法的应用上比较局限,常常不能通过编译,译码器记数字进制搞混,模块中出现锁存器,信号位宽在各个模块中不一致导致的或是if else语句不完整所导致的,这些问题都很细微,处理起来很麻烦,但我还是从这些探索的过程中,学到了很多有用的知识,能较为熟料的使用ve

60、rilog语言,还学会熟练使用很多主流的开发软件和辅助软件。比如Xilinx ISE。更重要的是通过对系统功能的系统性的全面分析让我逐渐感觉得心应手,比如绘制按功能划分的系统各个模块的流程图能有效地帮助我在编写语言是保持清晰的思路。不容易连接错端口。在仿真的时候,也总结出了一些规律,就是当有逻辑错误出现时,从出错的信号一步一步的倒推,能轻易的找到问题所在。后期的修改论文也遇到些问题,比如不会使用office visio软件绘图,造成了许多论文格式错误,但在老师的耐心指导下将错误改正,本系统最终得以完成 。在完成了所有的工作后,我了解到了谨慎、细心、耐心,这些都是工作中必不可少的要素。也清楚的意

温馨提示

  • 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
  • 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
  • 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
  • 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
  • 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
  • 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
  • 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

评论

0/150

提交评论