三位密码锁实验报告DOC

上传人:夏** 文档编号:511340509 上传时间:2022-12-26 格式:DOC 页数:29 大小:1.06MB
返回 下载 相关 举报
三位密码锁实验报告DOC_第1页
第1页 / 共29页
三位密码锁实验报告DOC_第2页
第2页 / 共29页
三位密码锁实验报告DOC_第3页
第3页 / 共29页
三位密码锁实验报告DOC_第4页
第4页 / 共29页
三位密码锁实验报告DOC_第5页
第5页 / 共29页
点击查看更多>>
资源描述

《三位密码锁实验报告DOC》由会员分享,可在线阅读,更多相关《三位密码锁实验报告DOC(29页珍藏版)》请在金锄头文库上搜索。

1、数字系统设计实习(训)报告评语等级:评阅人: 职称:年 月 日南 工 程实习(训)报告实习目的(内容):电子密码锁实习时间:自6月17 日至6月28日共12天实习地点:三号实验楼 A307实习单位:#指导老师:翁嘉民系主任:#目录1. 引言 52. 设计思想 62.1 系统原理框图2.2 总体实现原理3. 芯片主控设计 73.1 系统设计方案3.2FPGA有限状态机3.3 设计流程3.4 状态编码3.5 密码的输入3.6 密码记录与比较3.7 密码的显示4. 引脚锁定 115. 程序仿真 136. 方框图 147. 心得体会 18基于Verilog HDL的FPGA的电子密码锁的设计报告摘要:

2、基于FPGA设计的电子密码锁是一个小型的数字系统,与普通机械锁 相比,具有许多独特的优点:保密性好,防盗性强,可以不用钥匙,记住密码即 可开锁等。目前使用的电子密码锁大部分是基于单片机技术, 以单片机为主要器 件。在实际应用中,程序容易跑飞,系统的可靠性较差。本文介绍的一种基于现 场可编辑门阵列FPGA器件的电子密码锁的设计方法,采用VHDL语言对系统进行 描述,并在EP3C10E144C上实现。通过仿真调试,利用可编程逻辑器件 FPGA的电子密码锁的设计基本达到了 预期目的。 当然,该系统在一些细节的设计上还需要不断地完善和改进, 特别是 对系统的扩展有很好的使用系统和设计的价值。一、引言数

3、字电路主要是基于两个信号(我们可以简单的说是有电压和无电压),用数字信 号完成对数字量进行算术运算和逻辑运算的电路我们称之为数字电路,它具有逻辑运算 和逻辑处理等功能,数字电路可分为组合逻辑电路和时序逻辑电路。1 EDA简介EDA( Electronics Design Automation)技术是随着集成电路和计算机技术的飞速 发展应运而生的一种高级、快速、有效的电子设计自动化工具。它是为解决自动控制系 统设计而提出的,从70年代经历了计算机辅助设计(CAD,计算机辅助工程(CAE, 电子系统设计自动化(ESDA3个阶段。前两个阶段的EDA产品都只是个别或部分的解 决了电子产品设计中的工程问

4、题;第三代EDAT具根据工程设计中的瓶颈和矛盾对设计 数据库实现了统一管理,并提出了并行设计环境概念,提供了独立于工艺和厂家的系统 级的设计工具。EDA关键技术之一就是采用硬件描述语言对硬件电路进行描述,且具有 系统级仿真和综合能力。目前应用比较广泛的硬件描述语言就是/erilog HDL。2 Verilog HDL 简介Verilog HDI和VHDL样,是目前大规模集成电路设计中最具代表性、使用最广泛的硬 件描述语言之一。 Verilog HDL 具有如下特点:(1)能够在不同的抽象层次上,如系统级、行为级、RTL级、门级和开关级,对设计系 统进行精确而简练的描述。(2,能够在每个抽象层次

5、的描述上对设计进行仿真验证,及时发现及时发现可能存在的错误,缩短设计周期,并保存整个设计过程的正确性。(3)由于代码描述与工艺过程实现无关,便于设计标准化,提高设计的可重用性。如 国有C语言的编程基础经验,只需很短的时间就能学会和掌握Verilog HDL,因此, Verilog HDL可以作为学习HDI设计方法的入门和基础。本设计名称为密码锁,共有六个模块,分别为,按键去抖、输入密码、显示模 块、比较模块、状态转换模块、输出控制。最终由总程序来实现所需功能。设计所要实现的功能为:1手动用8个拨码开关设计三位密码(0-5)或开锁。2当输入密码开锁,当密码输入正确时,指示灯亮,表示开锁成功。3当

6、密码输入错误时,灯亮(非同一个灯),表示开锁失败。二、设计思想2.1系统原理框图本系统由主控芯片(FPGA),键盘,显示电路,报警电路和开/关门电路组 成,而主控芯片又可分为按键处理部分, 控制部分和译码显示部分。系统原理框 图如图2.1所示:2.2 总体实现原理本系统有 8个按键, K0,K1,K2,K3,K4,K5 代表数字 0-9共10个数字和 1个 确认键, 1 个复位键。密码长度为四位,并且固化在锁内,输入正确密码后,按 确认键即可开门,本系统设置为 LED D8 灯亮。在输入密码的过程中,当用户键 入错误密码时,报警灯 LED D1 灯亮。按下复位键,可使报警停止,同时清除所 有密

7、码显示。三、芯片主控设计3.1 系统设计方案本电路的主要控制部分和接口输入部分都是在 FPGA 内部通过 Verilog HDL 语言实现的,所以 FPGA 模块为本设计的核心。 根据系统要求的功能, 以及 FPGA 芯片容量的分级,本论文选用 ALTERA 公司 MAX7000S 系列的 EP2C35F672C8 器件作为主控芯片, 它是一种基于乘积项结构的复杂可编程逻辑器件, 它的基本 逻辑单元是由一些与、或阵列加上触发器构成, 其中与或阵列完成组合逻辑功能, 触发器完成时序逻辑。 它的逻辑控制灵活, 可反复编程, 有利于系统的扩展和修 改,而且其集成度高,保密性好。作为通用电子密码锁,

8、主要由六个部分组成: 键盘处理电路、 输入密码电路、 显示部分、比较密码部分、状态转换部分、输出控制部分。3.2 FPGA 有限状态机本设计是通过 FPGA 有限状态机来实现,设计有限状态机最开始的工作时要 确定电路,包括哪些状态,比如某个电路包括四个状态,S0,S1,S2,S3然后对所有状态给出一个状态编码, 比如为状态 S 0赋予编码 00,为状态 S1 赋予编码 01, 为状态S2赋予编码10,为状态S3赋予编码11。状态编码是状态的标识,保存 在寄存器当中,对于此编码形式,只需一个 2 位的寄存器就可以了。FSM Encoding Style 主要有:Binary EncodingOn

9、e Hot EncodingGray Encoding状态机可以认为是组合逻辑和寄存器逻辑的特殊租户,它一般包括两个部分:组合逻辑部分和寄存器逻辑部分。 寄存器用于存储状态,组合电路用于状态 译码和产生输出信号。状态机的下一个状态及输出,不仅与输入信号有关,而且 还有寄存器当前所处的状态有关。根据输出信号产生方法的不同,状态机可以分成两类:Mealy型和Moore型。 Moore型状态机的输出只是当前状态的函数, 而Mealy型状态机的输出则是当前 状态和当前输入状态的函数。其原理如下两图:Mealy State MachineIn putsNext-State LogicnsStateReg

10、isterOutputLogicOutputs#Next state and the outputs depend on the current state and the inputs严 next_state(t) = h(current_state(t), input(t) output(t) = g(current_state(t), input(t)图3.1Mealy型状态机输出原理Moore State MachineInputs State RegisterOutputsNext state depends on the current state and the Inputs b

11、ut the output depends only on the present state next_state(t) = h(currenLstate(t)f input(t) output = g(current_state(t)图3.2 Moore型状态机输出原理3.3设计流程本次密码锁的设计,有限状态机应该包括以下状态:密码为输入前的等待状 态、输入密码时的等待状态、输入密码正确时的通过状态、 输入密码错误时的警 报状态。其中当密码输入时又可包括以下状态,正常输入状态、异常输入状态(包括命令状态)、输入确认状态。下面的图(图是在程序编译后,tools-Netlist_Vewers-

12、RTL Vewer得到的)表示了 密码输入的时候的次状态机,表示了 4个密码输入的顺序状态,以及输入完成后 的等待确认状态。图3.4次有效状态机的状态转换3.4状态编码状态编码主要有二进制编码、格雷编码和一位独热编码等方式。格雷编码时,相邻状态每次只有一个比特位产生变化, 这样减少了瞬变的次 数,也减少了产生毛刺和一些状态的可能。采用一位独热编码,虽然多用了触发器,当可以有效节省和简化组合电路。对于寄存器数量多而逻辑相对缺乏的 FPGA器件来说,采用一位独热编码可以有 效提高电路的速度和可靠性,也有利于提高器件资源的利用率。将产生状态的组合逻辑电路和用于保存状态的寄存器分别写在不同的 alwa

13、ys块中。其中主要包括:输出控制部分、警报计时部分、锁打开后的计时部 分、比较密码部分、记录密码部分和记录错误次数的部分。3.5 密码的输入数字按键输入的响应控制(1) 如果按下数字键,第一个数字会从显示器的最左端开始显示,直到数输 完四个数字。(2) 假如要更改输入的数字,按清除键清除所有输入的数字,再重新输入四 位数。(3) 由于这里设计的是一个四位的电子密码锁,所以当输入的数字键超过四个 时,电路不予理会,而且不再显示第四个以后的数字。另外由于按键的时候同时会引起状态机的转换, 所以如果按键的时候对按键 判断次数过多会产生状态的过快转换, 记录的密码和数码管的显示就同时会出现 错误,因此

14、在按键部分加入了消除多重按键的程序,只检测一次按键的下降沿, 解决了这个问题。/输入的数字编码 09,enter,cancelone=4b0001, two=4 b0010,three4=b0011,four=4b0100,five=4b0101, six=4b0110,seven=4b0111,eight=4b1000,nine=4b1001, zero=4b1000,enter=4b1010,cancel=4b1011;可以看到,在复位以后,输入第 1,2,3,4 个密码(依次为 1111) 后, passed 变成高电平。当过了一定的时间后, passed 变成低电平, 重新计入键盘读入

15、值,进行下一轮的密码辨别。3.6 密码记录与比较程序设定了一个寄存器用来记录输入的密码。 当次有效状态机 (即密码输入 的状态机) 发生转换并且有密码输入时, 程序会记录下输入的密码在寄存器的其 中 4 位里面,最后次有效状态转换到确认密码的状态时, 会将记录下的密码与固 化在锁内的密码进行对比, 正确即将主状态机转换到通过阶段, 错误则将状态机 转换到报警阶段。其中正确错误的状态转换是通过控制相应的标志位实现的。3.7 密码的显示密码显示采用数码管动态扫描显示,初始时显示密码为 4位 0,当输入密码后数码管的第一位、第二位、第三位、第四位会依次显示输入的密码,错误后复 位可以重新输入。密码显示采用的是记录密码的寄存器的数据, 显示扫描的扫描 时间设置为1ms左右,这样显示不会出现闪烁或者残影。四、引脚锁定1、本设计中所用的引脚如下:MagicSOP主板10引脚分配表时钟:clk:PIN_B13按键23C13KEY】按键CLK10, LVDSCLK5n

展开阅读全文
相关资源
相关搜索

当前位置:首页 > 办公文档 > 解决方案

电脑版 |金锄头文库版权所有
经营许可证:蜀ICP备13022795号 | 川公网安备 51140202000112号