欢迎来到三一办公! | 帮助中心 三一办公31ppt.com(应用文档模板下载平台)
三一办公
全部分类
  • 办公文档>
  • PPT模板>
  • 建筑/施工/环境>
  • 毕业设计>
  • 工程图纸>
  • 教育教学>
  • 素材源码>
  • 生活休闲>
  • 临时分类>
  • ImageVerifierCode 换一换
    首页 三一办公 > 资源分类 > DOC文档下载  

    毕业设计论文基于FPGA的四位电子密码锁.doc

    • 资源ID:4863410       资源大小:916.52KB        全文页数:40页
    • 资源格式: DOC        下载积分:10金币
    快捷下载 游客一键下载
    会员登录下载
    三方登录下载: 微信开放平台登录 QQ登录  
    下载资源需要10金币
    邮箱/手机:
    温馨提示:
    用户名和密码都是您填写的邮箱或者手机号,方便查询和重复下载(系统自动生成)
    支付方式: 支付宝    微信支付   
    验证码:   换一换

    加入VIP免费专享
     
    账号:
    密码:
    验证码:   换一换
      忘记密码?
        
    友情提示
    2、PDF文件下载后,可能会被浏览器默认打开,此种情况可以点击浏览器菜单,保存网页到桌面,就可以正常下载了。
    3、本站不支持迅雷下载,请使用电脑自带的IE浏览器,或者360浏览器、谷歌浏览器下载即可。
    4、本站资源下载后的文档和图纸-无水印,预览文档经过压缩,下载后原文更清晰。
    5、试题试卷类文档,如果标题没有明确说明有答案则都视为没有答案,请知晓。

    毕业设计论文基于FPGA的四位电子密码锁.doc

    基于FPGA的四位电子密码锁摘要随着电子技术的发展,具有防盗报警等功能的电子密码锁代替密码量少、安全性差的机械式密码锁已是必然趋势。电子密码锁与普通机械锁相比,具有许多独特的优点:保密性好,防盗性强,可以不用钥匙,记住密码即可开锁等。目前使用的电子密码锁大部分是基于单片机技术,以单片机为主要器件,其编码器与解码器的生成为软件方式。在实际应用中,由于程序容易跑飞,系统的可靠性能较差。本文主要阐述了一种基于现场可编程门阵列FPGA器件的电子密码锁的设计方法。用FPGA器件构造系统,所有算法完全由硬件电路来实现,使得系统的工作可靠性大为提高。由于FPGA具有现场可编程功能,当设计需要更改时,只需更改FPGA中的控制和接口电路,利用EDA工具将更新后的设计下载到FPGA中即可,无需更改外部电路的设计,大大提高了设计的效率。因此,采用FPGA开发的数字系统,不仅具有很高的工作可靠性,而且升级也极其方便。本文采用EDA技术,利用Quartus II工作平台和硬件描述语言,设计了一种电子密码锁,并通过一片FPGA芯片实现。关键词:电子密码锁;FPGA;硬件描述语言;EDAFour FPGA-based electronic lockABSTRACT With the development of electronic technology, electronic password lock with burglar alarm and other functions replacing less password and poor security mechanical code lock is an inevitable trend. compared electronic password lock with ordinary mechanical locks, it has many unique advantages : confidentiality, and security in nature, do not use the key, remember password can unlock it etc .Most electronic password locks we used now is based upon SCM technology ,SCM is its mainly device ,and the creating of encoding and decoding devices is the fashion of Software mode. In practical application, the reliability of the system may be worse because of easy running fly of the programme.This paper mainly expatiates a design method of electronic password lock based upon Field Programmable Gate Array device. We use FPGA devices to construct system , all of the algorithm entirely achieved by the hardware circuit , because of FPGA has the function of ISP , when the design needs to be changed We only need to change the control and interface circuit of FPGA,EDA tools are used to download the updated design to FPGA without changing the design of the external circuit , this greatly enhance the efficiency of the design .Therefore , we use FPGA to empolder the digital system has not only high reliability but also extremely convenient of upgrading and improvement .In this paper ,we use EDA technology , Quartus II platform and hardware description language designing an electronic password lock ,and it achieved through an FPGA chip.Key words: electronic password lock;FPGA;hardware description language;EDAIII目录摘要IABSTRACT1 绪论.1 1.1 国内外现状及其发展1 1.2 电子密码锁的系统简介2 1.3 系统设计要求2 1.4 本课题的研究目的和意义32 FPGA与VHDL硬件描述语言4 2.1 FPGA的相关介绍4 2.2 VHDL硬件描述语言6 2.2.1 VHDL语言的基本结构63 电子密码锁的设计与实现8 3.1电子密码锁设计要求8 3.2 总体设计思想8 3.3 子模块的设计思想及实现9 3.3.1输入模块的设计与实现9 3.3.2 控制电路设计与实现13 3.3.3显示模块设计与实现17 3.3.4 电子密码锁的系统实现184 电子密码锁的时序仿真19 4.1 电子密码锁的设计流程19 4.2 系统主要模块的仿真19总 结23结 束 语24参考文献25附录261 绪 论1.1 国内外现状及其发展 随着人们生活水平的提高和安全意识的加强,对安全的要求也就越来越高。锁自古以来就是把守护门的铁将军,人们对它要求甚高,既要安全可靠的防盗,又要使用方便,这也是制锁者长期以来研制的主题。随着电子技术的发展,各类电子产品应运而生,电子密码锁就是其中之一。据有关资料介绍,电子密码锁的研究从20世纪30年代就开始了,在一些特殊场所早就有所应用。这种锁是通过键盘输入一组密码完成开锁过程。研究这种锁的初衷,就是为提高锁的安全性。由于电子锁的密钥量(密码量)极大,可以与机械锁配合使用,并且可以避免因钥匙被仿制而留下安全隐患。电子锁只需记住一组密码,无需携带金属钥匙,免除了人们携带金属钥匙的烦恼,而被越来越多的人所欣赏。电子锁的种类繁多,例如数码锁,指纹锁,磁卡锁,IC卡锁,生物锁等。但较实用的还是按键式电子密码锁。20世纪80年代后,随着电子锁专用集成电路的出现,电子锁的体积缩小,可靠性提高,成本较高,是适合使用在安全性要求较高的场合,且需要有电源提供能量,使用还局限在一定范围,难以普及,所以对它的研究一直没有明显进展。目前,在西方发达国家,电子密码锁技术相对先进,种类齐全,电子密码锁已被广泛应用于智能门禁系统中,通过多种更加安全,更加可靠的技术实现大门的管理。在我国电子锁整体水平尚处于国际上70年代左右,电子密码锁的成本还很高,市场上仍以按键电子锁为主,按键式和卡片钥匙式电子锁已引进国际先进水平,现国内有几个厂生产供应市场。但国内自行研制开发的电子锁,其市场结构尚未形成,应用还不广泛。国内的不少企业也引进了世界上先进的技术,发展前景非常可观。希望通过不断的努力,使电子密码锁在我国也能得到广泛应用。目前使用的电子密码锁大部分是基于单片机技术,以单片机为主要器件,其编码器与解码器的生成为软件方式。在实际应用中,由于程序容易跑飞,系统的可靠性能较差。基于现场可编程逻辑门阵列FPGA器件的电子密码锁,用FPGA器件构造系统,所有算法完全由硬件电路来实现,使得系统的工作可靠性大为提高。由于FPGA具有现场可编程功能,当设计需要更改时,只需更改FPGA中的控制和接口电路,利用EDA工具将更新后的设计下载到FPGA中即可,无需更改外部电路的设计,大大提高了设计的效率。1.2 电子密码锁的系统简介 通用的电子密码锁主要由四个部分组成:数字密码输入电路、密码锁控制电路和密码锁显示电路。(1) 密码锁输入电路包括时序产生电路、键盘扫描电路、键盘弹跳消除电路、键盘译码电路等几个小的功能电路。(2) 密码锁控制电路包括按键数据的缓冲存储电路,密码的清除、变更、存储、激活电锁电路(寄存器清除信号发生电路),密码核对(数值比较电路),解锁电路(开/关门锁电路)等几个小的功能电路。(3) 密码显示电路主要将显示数据的BCD码转换成相对应的编码。如,若选用七段数码管显示电路,主要将待显示数据的BCD码转换成数码器的七段显示驱动编码。1.3 系统设计要求设计一个具有较高安全性和较低成本的通用电子密码锁,具体功能要求如下:(1)数码输入:每按下一个数字键,就输入一个数值,并在显示器上的显示出该数值,同时将先前输入的数据依序左移一个数字位置。(2)数码清除:按下此键可清除前面所有的输入值,清除为“0000”。(3)密码更改:按下此键时会将目前的数字设定成新的密码。(4)激活电锁:按下此键可将密码锁上锁。(5)解除电锁:按下此键会检查输入的密码是否正确,密码正确即开锁。1.4 本课题的研究目的和意义 随着人们生活水平的提高,对家庭防盗技术的要求也是越来越高,传统的机械锁由于其构造的简单,被撬的事件屡见不鲜,电子锁由于其保密性高,使用灵活性好,安全系数高,受到了广大用户的欢迎。现在市场上主要是基于单片机技术的电子密码锁,但可靠性较差。FPGA即现场可编程门阵列,它是在PAL、GAL、EPLD等可编程器件的基础上进一步发展的产物,是一种超大规模集成电路,具有对电路可重配置能力。相对于基于单片机技术的电子密码锁,用FPGA器件来构成系统,可靠性提高,并且由于FPGA具有的现场可编程功能,使得电子密码锁的更改与升级更为方便简单。通过本次设计掌握FPGA系统设计的方法,熟悉FPGA设计的相关软件,以及硬件描述语言的使用,了解电子密码锁的系统构成,利用FPGA实现电子密码锁的设计与实现,可以加深自己对所学专业的认识,关联知识,增强自己的动手能力,积累实践经验,为以后的工作打好基础。2 FPGA与VHDL硬件描述语言 此次设计是按照"自顶向下"的设计方法,对整个系统进行方案设计和功能划分,系统的关键电路用一片或几片专用集成电路(ASIC)实现,然后采用硬件描述语言(VHDL)完成系统行为级设计,最后通过综合器和适配器生成最终的目标器件。自上而下的设计方法是现代电子系统的新型设计策略,它从设计的总体要求出发,自上而下地逐步从系统数学模型的设计与仿真,到数据流级的设计与仿真,选择系统设计方案,最后完成系统硬件的整体设计。2.1 FPGA的相关介绍 FPGA是英文Field Programmable Gate Array的缩写,即现场可编程门阵列,它是在PAL、GAL、EPLD等可编程器件的基础上进一步发展的产物9。它是作为专用集成电路(ASIC)领域中的一种半定制电路而出现的,既解决了定制电路的不足,又克服了原有可编程器件门电路数有限的缺点。FPGA采用了逻辑单元阵列LCA(Logic Cell Array)这样一个新概念,内部包括可配置逻辑模块CLB(Configurable Logic Block)、输出输入模块IOB(Input Output Block)和内部连线(Interconnect)三个部分。FPGA的基本特点主要有:1)采用FPGA设计ASIC电路,用户不需要投片生产,就能得到合用的芯片。 2)FPGA可做其它全定制或半定制ASIC电路的中试样片。3)FPGA内部有丰富的触发器和IO引脚。4)FPGA是ASIC电路中设计周期最短、开发费用最低、风险最小的器件之一。5)FPGA采用高速CHMOS工艺,功耗低,可以与CMOS、TTL电平兼容。可以说,FPGA芯片是小批量系统提高系统集成度、可靠性的最佳选择之一。目前FPGA的品种很多,有XILINX的XC系列、TI公司的TPC系列、ALTERA公司的FIEX系列等。FPGA是由存放在片内RAM中的程序来设置其工作状态的,因此,工作时需要对片内的RAM进行编程。用户可以根据不同的配置模式,采用不同的编程方式。加电时,FPGA芯片将EPROM中数据读入片内编程RAM中,配置完成后,FPGA进入工作状态。掉电后,FPGA恢复成白片,内部逻辑关系消失,因此,FPGA能够反复使用。FPGA的编程无须专用的FPGA编程器,只须用通用的EPROM、PROM编程器即可。当需要修改FPGA功能时,只需换一片EPROM即可。这样,同一片FPGA,不同的编程数据,可以产生不同的电路功能。因此,FPGA的使用非常灵活。FPGA设计流程包括系统设计和设计实现,系统方案完成之后即进入设计实现阶段的工作,他以系统方案为输入,进行RTL级描述、功能仿真(RTL级仿真)、逻辑综合、布线前门级仿真、适配(布局布线)、时序仿真(布线后门级仿真)、时序分析、器件编程、系统验证一系列流程的处理才能完成FPGA芯片的设计,其设计流程如图2.1所示。时序、同步、算法测试等方案模块划分及其功能描述各模块接口信号定义系统行为描述系统行为仿真系统设计方案图2.1 系统设计流程2.2 VHDL硬件描述语言VHDL(Very high speed integrated circuit Hardware Description Language)硬件描述语言从高于逻辑级的抽象层次上描述硬件的功能、信号连接关系及定时关系。VHDL的设计流程如下图。图2.2 VHDL的设计流程。2.2.1 VHDL语言的基本结构一个完整的VHDL语言程序通常包含实体(Entity)、结构体(Architecture)、配置(Configuration)、包集合(Package)和库(Library)五个部分。1实体实体说明部分是说明一个器件的外观视图,即从器件外部看到的器件外貌,其中包括器件的端口,同时也可以定义参数,并把参数从外部传入模块内部,主要用于描述所设计的系统的外部接口。2 结构体结构体是描述一个器件的内部视图,是次级设计单元。在其对应的初级设计单元实体说明被编译并且被并入设计库之后,它就可以单独地被并入该设计库中。结构体描述一个设计的结构和行为,把一个设计的输入和输出之间的关系建立起来。一个设计可以有多个结构,分别代表该器件的不同实现方案。根据对一个器件设计由抽象到具体的过程,可把结构体的描述方式分为三个层次:行为描述方式、寄存器传输描述方式(RTL)和结构描述方式。3 库库是经编译后的实体、结构体、包集合和配置的集合。使用库时总要在设计单元的前面予以说明。一旦说明,库中的数据对该设计单元就是可见的,从而共享已经编译过的设计结果。VHDL语言中存在的库大致有IEEE库、STD库、ASIC厂家提供的库、用户定义的库和现行作业库。4 包集合包集合属库中的一个层次,是一种可编译的源设计单元。它收集了VHDL语言中所用到的信号、常数、数据类型、函数和过程的说明等。用户可以构造一个包集合,用以存放常数、数据类型、函数和过程,该包集合经编译后便自动加到WORK库中。使用库中的包集合时,在打开库后要用USE语句说明,例如:LIBRARY IEEE;USE IEEE.STD-LOGIC-1164.ALL;5 配置配置语句从一个库中为一个实体选择一个特定的结构体,是一种放在库中的被编辑单元,并有相应的配置名。通过配置技术,可以选取多种不同的结构体,以便对一个设计任务采用仿真工具进行多种配置的性能实验。另外,配置说明和规定的特性还可以用在多层描述中。3 电子密码锁的设计与实现3.1电子密码锁设计要求设计一个基于FPGA的电子密码锁,其基本要求为:1.密码锁为四位显示,可以通过按键接受密码设置;按下数字键,第一个数字会显示器的最右端显示,随后每按下一个新数字,显示器上的已经存在的数字整体会向左移一位,并将以新的数字显示出来;2.当输入密码时,四位密码都正确,则绿灯亮,密码锁开锁;当其中任意一位不正确时,则红灯亮,密码锁不开锁,当按下复位键时,显示为最初设置,可再重新输入密码。 3.若要更改输入数字,则可按复位键消除所有输入的数字,再重新输入数字。 4.电子密码锁为4位,当输入超过4位时,电路不予理会,且不会显示第4个以后的数字。3.2 总体设计思想首先根据电子密码锁的逻辑功能,设计逻辑电路。然后根据逻辑电路,编写FPGA程序实现逻辑功能,再用仿真软件进行仿真调试,最后下载到FPGA芯片上运行。本设计为四位电子密码锁,通过输入密码并直观地通过数显模块显示出来;对输入信号进行显示,通过控制模块判断输入密码是否正确,四位密码都正确,则密码锁开锁,只要其中有一位不正确,则密码锁不开锁,同时该系统还应有复位功能,按下复位键,允许重新输入密码。此电子密码锁的设计中采用自顶向下的设计思路,运用VHDL硬件描述语言对各个模块进行层次化、系统化的描述,并且先设计一个顶层文件,再把各个模块连接起来。图3.1为数字电子密码锁系统总体框图。图3.1 电子密码锁系统总体框图3.3 子模块的设计思想及实现通过第一章电子密码锁系统结构的分析和对电子密码锁的功能要求,把要设计的系统划分为几个功能模块:密码输入模块、密码锁控制模块和数码显示模块。3.3.1输入模块的设计与实现作为电子密码锁的输入电路,数字密码输入电路可采用一个3×4的通用数字机械键盘作为本设计的输入设备。机械式键盘具有低成本、可靠性高、构成电路简单、技术成熟和应用广泛等特点,因此将其应用到通用电子密码锁中是比较适宜的。输入模块主要包括时序产生电路、键盘扫描电路和弹跳消除电路。1时序产生电路本时序产生电路中使用了三种不同频率的工作脉冲波形:系统时钟脉冲(它是系统内部所有时钟脉冲的源头,且其频率最高)、弹跳消除取样信号、键盘扫描信号。当一个系统中需使用多种操作频率的脉冲波形时,最方便的方法之一就是利用一计数器来产生各种需要的频率。也就是先建立一个N位计数器,N的大小根据电路的需求决定,N的值越大,电路可以分频的次数就越多,这样就可以获得更大的频率变化,以便提供多种不同频率的时钟信号。若输入时钟为CLK,N位计数器的输出为QN-1.0,则Q(0)为CLK的2分频脉冲信号,Q(1)为CLK的4分频脉冲信号,Q(2)为CLK的8分频脉冲信号Q(N-1)为CLK的2N分频脉冲信号;Q(5 DOWNTO 4)取得的是一个脉冲波形序列,其值依000110110001周期性变化,其变化频率为CLK的32分频。我们利用以上规律即可得到各种我们所需要频率的信号或信号序列。SIGNAL CLK: STD_LOGIC ; -电路工作时钟脉冲SIGNAL C_KEYBOARD: STD_LOGIC_VECTOR(1 DOWNTO 0); -键扫信号“00-01-10-11”寄存器SIGNAL C_DEBOUNCE: STD_LOGIC ; -去抖时钟信号2键盘扫描电路扫描电路的作用是用来提供键盘扫描信号的,扫描信号变化的顺序依次为11101101101101111110依序的周而复始。扫描时依序分别扫描四列按键,当扫描信号为1110时扫描KY3这一排按键;当扫描信号为1101室,扫描KY2这一排按键;当扫描信号为1011时,扫描KY1这一排按键;当扫描信号为0111时,扫描KY0这一排按键。每扫描一排按键就检查一次是否有键被按下,如果这排没有按键被按下就忽略,反之,如果出现被按下的键则立刻进行按键编码的动作,且将编码的结果储存于寄存器中。-扫描信号发生器 COUNTER : BLOCK ISSIGNAL Q: STD_LOGIC_VECTOR(5 DOWNTO 0); SIGNAL SEL: STD_LOGIC_VECTOR (3 DOWNTO 0); -1110-1101-1011-0111 BEGINPROCESS (CLK_1K) IS BEGIN IF CLK_1K'EVENT AND CLK_1K ='1' THEN Q <= Q+1; END IF; C_DEBOUNCE <= Q(2) ; -去抖时钟信号, 大约125 Hz C_KEYBOARD <= Q(6 DOWNTO 5) ; - 产生键扫信号*“00-01-10-11”, 大约16 HzC_DEBOUNCE <= Q(1) ; -仿真时用 C_KEYBOARD <= Q(5 DOWNTO 4) ; -仿真时用 CLK <= Q(0) ; END PROCESS; 3弹跳消除电路 由于设计采用的矩阵式键盘是机械开关结构,因此在开关切换的瞬间会在接触点出现信号来回弹跳的现象,对于电子密码锁这种灵敏度较高的电路这种弹跳将很可能会造成误动作输入,从而影响到密码锁操作的正确性。弹跳现象产生的原因是,虽然每次只是按下按键一次然后放掉,然而实际产生的按键信号却不知跳动一次,经过取样信号的检查后,将会造成误判断,以为键盘按了两次。图3.2 弹跳现象产生错误的抽样结果 如果调整抽样频率,弹跳现象就可以获得改善。图3.3 调整抽样频率后得到的抽样结果因此必须加上弹跳消除电路,避免误操作信号的发生。特别要注意的是,弹跳消除电路所使用的脉冲信号的频率必须比其他电路使用的脉冲信号的频率更高;通常将扫描电路的工作频率定在24Hz左右,而将弹跳消除电路的工作频率定在128Hz左右,其工作频率通常是前者的4倍或者更高。DEBOUNUING : BLOCK IS BEGINU1: DEBOUNCING PORT MAP (D_IN => KEY_IN(0) , D_OUT => C(0), CLK => C_DEBOUNCE); U2: DEBOUNCING PORT MAP (D_IN => KEY_IN(1) , D_OUT => C(1), CLK => C_DEBOUNCE); U3: DEBOUNCING PORT MAP (D_IN => KEY_IN(2) , D_OUT => C(2), CLK => C_DEBOUNCE ); 3.3.2 控制电路设计与实现密码锁的控制电路是整个电路的控制中心,主要完成对数字按键输入和功能按键输入的相应控制。1数字按键输入的响应控制(1)如果按下数字键,第一个数字会从显示其的最右端开始显示,此后每新按一个数字时,显示器上的数字必须左移一格,以便将新的数字显示出来。(2)假如要更改输入的数字,可以按倒退按键来清除前一个输入的数字,或者按清除键清除所有出入的数字,再重新输入四位数。(3)当输入的数字键超过预设位数时,电路不予理会,而且不再显示以后的数字。2。功能按键输入的响应控制(1)清除键:清除所有的输入数字,即作归零动作。(2)激活电锁键:按下此键时可将密码锁的门上锁。(3)解除电锁键:按下此键会检查输入的密码是否正确,若密码正确无误则开门。使用电子密码锁的时候,只会用到三种工作模式,其中输入文字模式用的是数字按键,只有上锁和开锁两个模式必须占用功能按键。但是在实际操作中,难免会有按错键的情况发生,使得“清除输入”功能是用的机率很高,所以在设计中共设置了两个功能按键,其中“接触电锁”和“清除电锁”共用一个功能按键,另一个功能按键是“激活电锁”。-CTRL.VHDLIBRARY IEEE; USE IEEE.STD_LOGIC_1164.ALL; USE IEEE.STD_LOGIC_ARITH.ALL; USE IEEE.STD_LOGIC_UNSIGNED.ALL; ENTITY CTRL ISPORT (DATA_N: IN STD_LOGIC_VECTOR(3 DOWNTO 0); DATA_F: IN STD_LOGIC_VECTOR(3 DOWNTO 0); FLAG_N: IN STD_LOGIC; FLAG_F: IN STD_LOGIC; CLK: IN STD_LOGIC; ENLOCK: OUT STD_LOGIC; -1: LOCK, 0: UNLOCK DATA_BCD: OUT STD_LOGIC_VECTOR (15 DOWNTO 0); END ENTITY CTRL ; ARCHITECTURE ART OF CTRL IS SIGNAL ACC, REG: STD_LOGIC_VECTOR (15 DOWNTO 0); -ACC用于暂存键盘输入的信息,REG用于存储输入的密码 SIGNAL NC: STD_LOGIC_VECTOR (2 DOWNTO 0); SIGNAL RR2, CLR, BB, QA, QB: STD_LOGIC; SIGNAL R1, R0: STD_LOGIC; BEGIN -寄存器清零信号的产生进程PROCESS(CLK) BEGIN IF CLK'EVENT AND CLK='1' THEN R1<=R0; R0<=FLAG_F; END IF; RR2<=R1 AND NOT R0; CLR<=RR2; END PROCESS; -按键输入数据的存储、清零进程 KEYIN_PROCESS : BLOCK IS SIGNAL RST, D0, D1: STD_LOGIC ; BEGIN RST <= RR2; PROCESS(FLAG_N, RST) IS BEGINIF RST = '1' THEN ACC <= "0000000000000000" ; -CLEAR INPUT NC <= "000" ; ELSE IF FLAG_N'EVENT AND FLAG_N = '1' THEN IF NC < 4 THEN ACC <= ACC(11 DOWNTO 0) & DATA_N ; NC <= NC + 1 ; END IF; END IF ; END IF ; END PROCESS ; END BLOCK KEYIN_PROCESS ; -上锁/开锁控制进程LOCK_PROCESS : BLOCK IS BEGINPROCESS(CLK, DATA_F) IS BEGIN IF (CLK'EVENT AND CLK = '1') THENIF NC = 4 THEN IF DATA_F(2) = '1' THEN -上锁控制信号有效 REG <= ACC ; -密码存储QA <= '1' ; QB <= '0' ELSIF DATA_F(0) = '1' THEN-开锁控制信号有效IF REG = ACC THEN -密码核对 QA<= '0' QB <= '1' ; END IF ; ELSIF ACC = "1000100010001000" THEN -设置“8888”为万用密码QA <= '0' ; QB<= '1' END IF ; END IF; END IF ; END PROCESS ; END BLOCK LOCK_PROCESS ; -输出上锁/开锁控制信号 ENLOCK <= QA AND NOT QB ; -输出显示信息 DATA_BCD<= ACC ; END ARCHITECTURE ART; 3.3.3显示模块设计与实现显示模块实际上是一个译码器,作用是用来显示输入的密码,其主要原理是四位二进制BCD编码转换成七段二进制数字,以阿拉伯数字的形式输出在数码管上,使观众能够更直观的看到结果。KEY_DECODER : BLOCK SIGNAL Z : STD_LOGIC_VECTOR(4 DOWNTO 0) ; -按键位置BEGINPROCESS(CLK) BEGIN Z <= C_KEYBOARD & C ; IF CLK'EVENT AND CLK = '1' THENCASE Z IS WHEN "11101" => N <= "0000" ; -0 WHEN "00011" => N <= "0001" ; -1 WHEN "00101" => N <= "0010" ; -2 WHEN "00110" => N <= "0011" ; -3 WHEN "01011" => N <= "0100" ; -4 WHEN "01101" => N <= "0101" ; -5 WHEN "01110" => N <= "0110" ; -6 WHEN "10011" => N <= "0111" ; -7 WHEN "10101" => N <= "1000" ; -8 WHEN "10110" => N <= "1001" ; -9 WHEN OTHERS => N <= "1111" ; END CASE ; END IF ; 3.3.4 电子密码锁的系统实现单独模块只有彼此联系起来构成一个完整的系统,才能实现其功能,这个过程有两种实现方法:元件例化。也是用编程的方式将它们各个程序、信号、输入输出之间的关系用VHDL语言来叙述清楚,还关系到程序的调用问题,需要设计者思路清晰,设计合理;元器件图示连线。这种连线方法思路清晰可见,而且用的时候很简单方便,出现错误也很好检查。在设计中选择的是这种方法。通过总的顶层元件图可以很清晰的看到模块连接的原理。4 电子密码锁的时序仿真4.1 电子密码锁的设计流程使用Quartus进行电子密码锁设计的流程为(1)编写VHDL程序(使用Text Editor)(见附录);(2)编译VHDL程序(使用Compiler);(3)仿真验证VHDL程序(使用Waveform Editor, Simulator);(4)进行芯片的时序分析(使用Timing Analyzer);(5)安排芯片管脚位置(使用Floorplan Editor);(6)下载程序至芯片(使用Programmer)。4.2 系统主要模块的仿真本节主要是阐述设计在Quartus II软件中实现编译与仿真。在Quartus II在输入源程序后,我们需要建立一个工程,在工程中我们要把设计文件加入工程中;然后选择仿真器和综合器类型。值得注意的是,选择默认的“NONE”,表示选择Quartus II软件中自带的仿真器和综合器,结合自己的设计,最后选择目标芯片。工程建立以后,可以进行源程序的编译。选择“Processing”Start Compilation,启动全程编译。编译后产生的报告如下所示:图4.1 编译后产生的统计报告编译成功后,就可以进行波形的仿真。1 防抖模块的仿真图4.2为键盘输入防抖电路的仿真结果图,图中的输出信号N,ACC,REG是为了便于仿真时观察中间结果而增加的观测点的输出,调试好后程序中的相应语句应注释掉。由图上可以看出,原来的弹跳现象经过键盘输入防抖电路处理后已经清除了,必须连续两次取样检测到信号才会有反应,否则电路将其视为噪声,不予理会。图4.2 键盘输入防抖电路的仿真结果图 由图中可以看出,键盘扫描出的信号弹跳现象得到改善。2密码锁输入电路的仿真图4.3为密码锁输入电路的仿真结果图,图中的输出信号CLK_SCAN,C_DEBOUNCE是为便于仿真时观察中间结果而增加的观测点的输出,调试好后程序中的相应语句应注释掉。图4.3 密码锁输入电路仿真结果图输入信号KEY_IN2,0依序依011101110011101的顺序周期性循环,对键盘进行扫描。如有按键发生,键盘扫描输出信号CLK_SCAN做出反应。3密码锁控制电路的仿真图4.4、图4.5分别是两个密码锁控制电路仿真结果图。图4.4 密码锁控制电路仿真结果图(一) 图4.4的仿真过程为先输入上锁密码“1234”,再按下上锁键激活电锁接着输入万能解锁密码“8888”,最后按下解锁键解锁。图4.5 密码锁控制电路仿真结果图(二)图4.5的仿真过程为先输入上锁密码“1234”,再按下上锁键激活电锁,接着输入解锁密码“1234”;最后按下解锁键解锁。从仿真图上可以看出,密码控制电路的设计是正确的。通过波形仿真来验证是否完成了相应的模块功能,如果出现问题要进行相应的修改。进行完波形仿真,就可以通过QuartusII中的模块编辑器来建立相应的功能模块,将前面各个设计好的功能模块进行整合,可得到一个完整的电子密码锁系统的整体组装设计原理图。如下图所示:总 结 在基于FPGA的系统设计中,采用了自顶向下的设计方法,它的好处是可以先调试各个单元电路,在每个单元电路设计完成后,采用专门的仿真工具进行功能仿真,确定每个单元电路都没有问题后再连接顶层图形文件,这样整个系统的调试就轻松得多,可节省不少设计时间。此设计实现了基于FPGA的用VHDL语言编程的数字密码锁功能电路,它的优点是采用可编程逻辑器件FPGA,使得系统有相当大的灵活性,随时可以进行硬件升级、扩展,而且系统设计完善以后还可以将主控的FPGA固化成一片ASI

    注意事项

    本文(毕业设计论文基于FPGA的四位电子密码锁.doc)为本站会员(sccc)主动上传,三一办公仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对上载内容本身不做任何修改或编辑。 若此文所含内容侵犯了您的版权或隐私,请立即通知三一办公(点击联系客服),我们立即给予删除!

    温馨提示:如果因为网速或其他原因下载失败请重新下载,重复下载不扣分。




    备案号:宁ICP备20000045号-2

    经营许可证:宁B2-20210002

    宁公网安备 64010402000987号

    三一办公
    收起
    展开