基于FPGA的电子密码锁设计.doc_第1页
基于FPGA的电子密码锁设计.doc_第2页
基于FPGA的电子密码锁设计.doc_第3页
基于FPGA的电子密码锁设计.doc_第4页
基于FPGA的电子密码锁设计.doc_第5页
已阅读5页,还剩38页未读 继续免费阅读

下载本文档

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

文档简介

摘要VHDL非常适用于可编程逻辑器件的应用设计。尤其在大容量CPLD和FPGA的应用设计中,若采用以往的布尔方程或门级描述方式,很难快速有效地完成。VHDL能提供高级语言结构,方便地描述大型电路,快速地完成设计。它是一种标准语言,它的设计描述可被不同的工具所支持,可用不同器件来实现。文中以基于FPGA的电子密码锁的设计为实例,从方案的确定,各阶层的划分,VHDL的应用,采用了VHDL自顶向下的设计方法。它是一种 高效率设计出它体积小、功耗低、价格便宜、安全可靠、维护和升级都十分方便的电子密码锁电路。关键词:VHDL;自顶向下的设计方法;数字密码锁; EDA;数字系统ABSTRACTVHDL is very suitable to the design of programmable logic devices. It is difficult to design large ca-pacity CPLD and FPGA with the description method of Boolean equations or of gates. VHDL can provide highlevel language structure, describe large scale circuit conveniently and complete design rapidly. It is a standard language. It sdesign description can be supported by different tools and implemented by different devices. This paper intro-duces the VHDL top-down design method including scheme determination, hierarchy division, and In order to FPGA-based electronic password-lock design as an example. It is a highly efficient design of its small size, low power consumption, cheap, safe and reliable, maintenance and upgrades are very convenient electronic password lock circuit.Key words: VHDL; top-down design method; digital code lock; EDA; digital system目录摘要ABSTRACT第一章总体设计1.1 设计任务和要求1.2 设计方案的比较论证1.3 基于FPGA电子密码锁总体设计框图第二章 电子密码锁单元电路设计2.1 可编程逻辑器件 2.1.1 FPGA器件的特点 2.1.2 设计器件的选择 2.1.3 设计方法采用自顶向下的设计2.2 功能电路的设计 2.2.1 键盘扫描电路设计 2.2.2 时序产生电路设计 2.2.3 键盘消抖电路设计 2.2.4 键盘译码电路设计 2.2.5 按键存储电路设计第三章 电子密码锁控制电路设计3.1 数字按键输入部分3.2 功能键输入部分3.3 三种工作模式3.4 系统各功能模块设计第四章 电子密码锁显示电路设计4.1数据选择电路 4.1.1电路原理4.2 BCD对七段显示器译码电路 4.2.1 74LS48引脚图4.2.2 74LS48内部引脚功能 4.2.3 BCD对七段显示器译码电路原理4.3七段显示器扫描电路第五章 程序调试、波形仿真、结论分析5.1 EDA工具简介5.2 FPGA的器件的配置与下载5.2.1 配置方式5.2.2 基于差分的下载电缆5.3 程序调试、波形仿真 5.3.1 键盘扫描电路程序波形仿真 5.3.2 时序产生电路程序波形仿真5.3.3 键盘消抖电路程序波形仿真5.3.4 键盘译码电路程序波形仿真5.3.5 按键存储电路程序波形仿真第六章结语致 谢参考文献附程序第一章电子密码锁总体设计 随着电子技术的发展,电子密码锁是现代社会用的比较广泛的一种智能工具,具有防盗报警、语音提示等功能的电子密码锁代替密码量少、安全性差的机械式密码锁已是必然趋势。目前大 部分密码锁采用单片机进行设计,电路较复杂,性能不够灵活。本文采用先进的EDA(电子设计自动化)技术,利用MAXPUS工作平台和VHDL(超高速集成电路硬件描述语言),设计了一种新型的电子密码锁。它能实现数码输入、数码清除、密码变更、激活电锁、解除电锁、显示器开关和万用密码等功能。用FPGA(现场可编程门阵列)芯片和实现。由于充分利用了FPGA芯片密度大、功耗低、可重复编程和具有嵌入式阵列块的结构特点,因而该密码锁体积小、功耗低、价格低、安全可靠、具有智能语音提示、维护和升级方便。根据设计的器件、价格成本、可靠性的考虑,可以有不同的设计方案,在设计之前就对几种方案进行论证,首先介绍一下本次设计的电子密码锁的任务和设计要求。 1.1 设计任务和要求设计一个基于FPGA的电子密码锁,通过基于可编程逻辑器件FPGA的方法实现。要求实现从键盘输入四位密码数字,能在数码管上显示其数字。其中输入的密码数字是可清除、改变的。1.2 设计方案的比较论证设计电子密码锁的方案很多,现在讨论常见的三种设计.方案一:分立元件设计的电子密码锁,全部设计均采用硬件来完成其功能,这种设计需要的元件多,在组 装和焊接过程中易出错。而且调试不方便,使用寿命较短。方案二:设计采用基于单片机设计,利用51系列单片机为核心。目前,单片机的功能已比较强大,集成度日益增高且其设计和控制比较容易。但是由于在传统的单片机设计系统中必须使用许多分立元件组成单片机的外围电路,因此整个系统显得十分复杂。方案三:利用FPGA来完成设计。如下图11所示整个系统由四部分组成:键盘模块、FPGA控制模块、显示模块、时钟脉冲器图11系统框图FPGA编程灵活,可减少硬件的使用,查错,改错容易,整个系统设计只有三部分组成44矩阵键盘接口电路、密码锁的控制电路设计、输出七段显示电路的设计。用VHDL硬件编程语言编程,简单灵活,实现效率高,使用方便可靠。综上所述,选择方案三来完成设计更方便更合理更简洁。1.3 基于FPGA电子密码锁总体设计框图时钟发生器时序产生电路键盘扫描电路键盘弹跳消斗电路键盘译码电路寄存器清除信号发生电路开关门锁电路按键数据缓存器数字比较电路BCD七段译码电路图1-2 总体结构框图第一章 电子密码锁单元电路设计2.1 可编程逻辑器件当今社会是数字集成电路广泛应用的社会,数字集成电路本身在不断的更新换代,由早期的电子管,晶体管,中小规模集成电路到超大规模集成电路。在现代复杂数字逻辑设计中,专用集成电路越来越广泛。而可编程逻辑器件兼有专有集成电路的高集成度,高可靠性的优点,有克服了专有集成电路设计时间长,投资大,灵活性差的缺点,而且可编程逻辑器件设计灵活,发现错误容易,逐步成为复杂数字逻辑设计的理想器件,在某些专用集成设计中,可编程逻辑设计为实现功能作为必须的一步。2.1.1 FPGA器件的特点在可编程逻辑设计器件中,比较典型的是Xilinx公司的FPGA器件系列和Altera公司的CPLD器件系列,本设计采用常用的现场可编程门阵列FPGA设计。 FPGA是英文Field Programmable Gate Array的缩写,即现场可编程门阵列,它是在PAL、GAL、EPLD等可编程器件的基础上进一步发展的产物。加电时,FPGA芯片将EPROM中数据读入片内编程RAM中,配置完成后,FPGA进入工作状态。掉电后,FPGA恢复成白片,内部逻辑关系消失,因此,FPGA能够反复使用。FPGA的编程无须专用的FPGA编程器,只须将用通用的EPROM、PROM编程器即可。一个典型的FPGA芯片是围绕一个大的二维可编程逻辑块组织,在芯片的周围还有若干输出输入块,内部芯片体系与芯片外部电路之间的接口。包括送入和从可编程逻辑块中读出的逻辑信号,编程或者是调试所需的信号。在输入和输出块与可编程逻辑块之间也会有内部连线,同时还有各种开关,用于连接和控制逻辑块与输入输出块。图2-1 FPGA内部结构图FPGA的基本结构可由可编程逻辑功能块(CLB),接口功能块(IOB)和可编程内部连线(PI)三大部分组成,如图2-1所示。其中(CLB)在芯片上按照矩阵排列,定义逻辑基本功能,(IOB)用于芯片周围的输入输出,实现内部逻辑和器件封装引脚之间的接口联系;(PI)在其周围起连接的作用,完成各个模块信号之间的传递。在FPGA内部中的可编程逻辑块(CLB)除实现逻辑功能外,还具有数据存储的功能,同时也具有用于数据查找的功能。通过逻辑查找表法将产生的逻辑地址,映射成查找表(LUT)中对应的数字信号数据,实现数据的查找。内部原理图如3-2所示。2.1.2 设计器件的选择设计电子密码锁时,选择FPGA器件EPM7128SLC84,它是Altera 公司生产的一中高性能的可编程器件。以下就是EPM7128SLC84可编程器件简单介绍:EPM7128SLC84是MAX7000系列器件,采用08 m CMOS EPROM技术制造。是高密度、高性能的CMOS EPLD (可擦除可编程的逻辑器件)器件。它分为8个逻辑阵列块(LAB),每一LAB又分为16个宏单元。其宏单元由逻辑阵列、乘积项选择矩阵和可编程触发器三个功能块组成。它共有2500个可用门,128个宏单元组成。100个外部引脚。8个逻辑阵列块通过可编程连线阵列(PIA)与全局总线连在一起。全局总线由所有的专用输入、IO引脚和宏单元馈给信号。EPM7128sLC84的4个专用输入,既可以作为通用输入,也可以作为每个宏单元和IO引脚的高速、全局控制信号, 如时钟(Clock)、清除(Clear)和输出(Output Enable)等。逻辑阵列实现组合逻辑,给每个宏单元提供5个乘积项。“乘积项选择矩阵”分配这些乘积项作为到“或” 门和“异或” 门的主要逻辑输入,以实现组合逻辑函数,或者把这些乘积项作为宏单元中触发器的辅助输入。比如:清除、置位、时钟和时钟使能控制。每个宏单元的1个乘积项可以反相后回送到逻辑阵列。这个“可共享” 的乘积项能够连接到同一个LAB中任何其它乘积项上。根据设计的逻辑需要,MAx+PLus l开发系统将自动优化乘积项的分配。每个宏单元的触发器可以单独地编程为具有可编程时钟控制的D触发器、T触发器、SR触发器或JK触发器。另外只要需要,也可将触发器旁路,现组合逻辑工作方式。每个触发器也支持异步清零和异步置位功能,乘积项选择矩阵分配乘积项来控制这些操作。MAX70OO中有可编程连线阵列(PIA)、IlO控制,并且编程具有保密性,另外还增加了可编程速度功率控制和电压摆率的控制。2.1.3 设计方法 采用自顶向下的设计 传统的电子设计通常是自底向上的,即首先确定构成系统的最底层的电路模块或元件的结构和功能,然后再根据主时钟的功能要求将它们组合成更大的功能模块,以此流程,逐步向上递推,这种设计不仅实现效率低,成本高,而且还易出错。而自顶向下的设计则可以弥补不足,这种设计是首先从系统设计入手,在对顶层进行功能框图的划分和结构设计。在框图一级进行仿真、纠错,再对高层次的系统进行行为描述,在系统一级进行验证。由于设计主要仿真和调试过程是在高层上完成的,这有利于及早发现结构设计上的错误,避免设计工作的浪费,而且也减少了逻辑功仿真的工作量,提高了一次设计成功率。2.2功能电路的设计4位数的电子密码锁的设计由三部分组成:34矩阵键盘接口电路的设计(内容包括:时序产生电路,键盘扫描电路,弹跳消除电路,键盘译码电路,按键存储电路),密码锁的控制电路设计(内容包括:数字按键的数字输入、存储及清除,功能按键的功能设计,移位寄存器的设计与控制,密码清除、变更、存储电路,密码核对、激活及解除电锁电路);输出七段显示电路的设计(内容包括: 数据选择电路,BCD对七段显示器译码电路,七段显示器扫描电路)。每一部分都包含了若干子电路,将各电路组合起来,就构成了一个整体。电子密码锁的主要功能包括: 数码输入、数码清除、密码变更、激活电锁、解除电锁、显示器开关和万用密码2.2.1、键盘矩正电路设计键盘接口电路的设计内容包括: 键盘矩阵的工作原理及运用、时序产生电路、键盘扫描电路、弹跳消除电路、 键盘译码电路、按键存储电路。如下图所示是电子密码锁的输入电路框图34键盘接口电路:如下图22所示:按键存储键盘译码1234567890*#清抖电路 键盘扫描 矩阵式键盘工作原理: 矩阵式键盘是一种常见的输入装置,在计算机、电话、手机、微波炉等各种电子产品中被广泛应用。如图所示为一34 矩阵式键盘。矩阵式键盘以行、列形式排列,图1-1中为4 行3 列,键盘上的每一个按键盘其实是一个开关电路,当某键被按下时,该按键所对应的位置就呈现逻辑0 的状态,键盘的扫描可以以行扫或列扫方式进行,图中为行扫方式,KEYR3KEYR0 为扫描信号,其中的某一位为0 即扫描其中的一行。键盘扫描信号KEYR3 与第一行相连,KEYR2 与第二行相连,依此类推。很显然,扫描信号的变化顺序为:0111、1011、1101、1110,周而复始。当扫描信号为0111时,扫描KEYR3.0这一行,当扫描信号为1011时,扫描KEYR3.1这一行,当扫描信号为1101时,扫描KEYR3.2这一行,当扫描信号为1110时,扫描KEYR3.3这一行。在扫描的过程中,每扫描一行就检查这一行有没有键被按下当有键按下时,对应的键位就为逻辑0状态,从而从KEYC2.0 读出的键值相应列为0.具体情况如表1-2 所示:若从KEYC2.0 读出的值全为1 时,表示没有键被按下,则不进行按键的处理。如果的键被按下,则将KEYC2.0 读出的送至键盘译码电路进行译码如图23所示1234567880*#经上拉电阻后接VCC。KEYC2.0KEYR3.0键盘扫描与其对应的键值的关系(如下表1-1)KEYR3.0KEYR2.0对应的按键01110111101211031011011410151106110101171018110911100110101*110#2.2.2 时序产生电路在一个系统的设计中,往往需要多种时钟信号,最为方便的方法是利用一个自由计数器来产生各种需要的频率。本电路需要:系统主时钟、消抖取样时钟和动态扫描时钟。 系统所需要的时钟由计数器来提供,计数器是用来对输入脉冲的数目进行计数的时序逻辑部件。本次设计就是采用自由计数器来提供所须的频率。计数器的分类 按计数脉冲的输入方式分:同步计数和异步计数。异步计数器,计数脉冲仅输入到最低位触发器的时钟输入端,同步计数器则同时输入到所有触发器的时钟输入端。后者计数速度高,因而得到广泛应用。 计数器的基本特征模 计数器电路的主要部分由一组触发器构成。一组n个触发器共有2t1个状态。实际64计数器可能只需要K个状态,则K211。随着输入脉冲数目的变化,计数器经历预先设定的K个不同的状态So,Sl,SKl序列。在Sxl状态下,再输入一个计数脉冲,计数器就返回到马状态,形成一个工作周期。 在计数器的整个工作周期内,从初始状态开始并返回到初始状态以前的全部状态数,称为计数器的模。例如,若计数器的全部状态数为K,就称为模K计数器。 模K加法计数器的状态转换可用下式描述: Si41一Si十1 (d K)其中mod为modulo(模)的缩写。计数器的模是计数器的重要特征。实际上,各种不同进位制的计数器可用其模来命名,例如4位二进制计数器可作为十六进制计数器使用,于是可称为模16计数器。通过设计电路改变模的值,可以得到十六以内的任意进制计数器,如后述。可编程计数器的使用方法实际上是通过软件程序改变计数器的模 2.2.4 键盘消抖电路按键消抖动电路(又叫弹跳消除电路) 即顶层V佃L文本的debounuin:block模块。因为按键大多是机械式开关结构,在开关切换的瞬间会在接触点弹性簧片间出现若干个随机的来回弹跳的抖动现象,抖动信号的周期大致在2040M,对于激活关闭一般电器(如电灯)并不会有何影响,但对于灵敏度较高的数字逻辑电路系统,却有可能产生误动作而出错。为此需要设置与某一时钟同步的按键消抖动电路,且必须合理地选择同步时钟的工作频率,达到既要照顾响应按键动作的精度(及时快速响应),又要可靠地消抖动(单次输出,而不是两次或多次输出,那样依然有抖动),但是,这两个要求是互相矛盾的,要在调试中兼顾。 若同步时钟的工作频率不合适,弹跳现象就不能很好消除,。及时快速响应的指标可能很高,但消抖动效果却不理想。在开关切换的瞬间会在接解点出现来回弹跳的现象,其现象可用图23表示:由图可见,虽然只是按了一次键,实际产生的按键信号却不只跳动一次,经过取样信号的检查后,将会造成误码判,认为是按了两次键。如果调整取样频率,可以发现抖现象得到了改善。按键信号 取样信号 取样结果 图24调整取样频率后的结果为:按键信号 取样信号 取样结果 图25 因此必须加上弹跳消除电路,且仔细选择同步时钟的工作频率,以避免误操作信号的发生。注意,弹跳消除电路所使用脉冲信号的频率必须比其他电路使用的脉冲信号的频率更高;通常将扫描电路或LED显示电路的工作频率定在24Ik左右,两者的工作频率是通常的4倍或高。 2.2.5 键盘译码电路 即顶层VHDL文本的 KEYBOARD_DEC1模块。键盘中的按键分为数字键和功能键,键盘参数如表23所示。数字键主要用来输入数字,但从表中发现,键盘所产生的输出的四个状态 0111、1011、1101、1110 无法拿来直接使用;另外不同的数字按键也担负不同的功能,因此必须由键盘译码电路来规划每个按键的输出形式,以便执行相应的动作。针对有表可以对照的电路设计,只要使用CASEWHEN或WHEN_ELSE语句,便可轻松完成设计,详见顶层VHDL文本的key decoder:block模块的描述。从前面所述的键盘扫描电路的输出可以看出,扫描得到的信号规律性不强,例如数字键主要用来输入数字,但键盘扫描输出无法拿来直接使用,必须对其进行译码才能使用。如表所示,只要使用casewhen 或when else 语句,便可完成设计。表23KEYR3.0KEYR2.0对应按键译码输出功能011101110001数码输入10120010数码输入11030011数码输入101101140100数码输入10150101数码输入11060110数码输入110101170111数码输入10181000数码输入11091001数码输入111001100100数码输入101*0000数码输入110#00012.2.6按键存储电路因为每次按键都会产生新的数据,可能会覆盖前面的数据,所以需要一个按键存储电路,将键盘扫描译码后的结果记录下来。这一功能可以用移位寄存器来实现。寄存器是一种常用的时序逻辑电路。有趣的是,这种时序逻辑电路只包含存储电路。寄存器的存储电路是由锁存器或触发器构成的,因为一个触发器能存储1位二进制数,所以由N个锁存器或触发器可以构成N位寄存器。1、移位寄存器分类 移位寄存器按输入输出方式分类:常见的移位寄存器的下列四种:串行输入/串行输出(SISO)串行输入/并行输出(SIPO)并行输入/串行输出(PISO)并行输入/并行输出(PIPO)2 、单向串行移位寄存器(用D触发器组成的移位寄存器)的内部结构如下:图263、移位寄存器的工作原理 图13所示电路是由边沿触发结构的D触发器组成的4位移位寄存器。从CP上升沿到达开始到输出端新状态的建立需要经过一段延迟时间,所以当CP的上升沿同时作用与、于所有的触发器时,它的输入端(Di)的状态还没有改变。每个触发器都按原来的状态进行翻转,同时加到移位寄存器输入端Di的代码存入第一个触发器。总的效果相当于移位寄存器里原有的代码依次向右移了一位。本次设计就是采用的是串行输入/串行输出移位寄存器。第三章 电锁控制电路设计密码锁的控制电路设计内容包括: 数字按键的数字输入、存储及清除。 功能按键的功能设计。 移位寄存器的设计与控制。 密码清除、变更、存储、激活电锁电路 密码核对、解除电锁电路。电电锁控制电路是整个电路的控制中心,主要完成如下功能:3.1 数字按键输入部分 1、如果输入数字键,第一个数字会从显示器的最右端开始显示,此后每新按一个数字时,显示器上的数字必须往左移动一位。 2、若想要更改输入的数字,可按退格键来清除前一个输入的数字,或按清除键清除输入的所有数字,再重新输入4 位数字。3、既然设计的是四位电子密码锁,当输入的数字键超过4 位时,电路不应理会。3.2 功能键输入部分退格键:只清除前一个输入的数字。清除键:清除所有输入。密码核对:在密码更改,开锁之前必须先核对密码。密码变更:按下此键将目前输入的数字设定为新的密码。激活电锁:上锁,上锁之前必须先设定密码才能上锁。解除电锁:检查输入的密码是否正确,正确才开锁。万用密码:电锁维护者使用。3.3 三种工作模式上锁工作模式:(输入密码)、密码核对、变更密码、存储密码及激活上锁。输入文字模式输入4 位数字退格及清除 开锁工作模式:(输入密码)、密码核对、开锁。图31三种工作模式3.4 系统各功能模块设计本文主要介绍系统核心部分控制器件设计。控制器采用有限状态利哒行设计,有限机状态设计克服了纯硬件数字系统中顺序方式控制不灵活的缺点,状态机的工作方式是根据控号按预先设定的状态进行的,状态机是纯硬件数字系统中的顺序控制电路,其控制灵活方便,结构模式相对简单,设计方案相定。设计中将系统分为7个工作状态。即待锁状态50、安锁状态sl、拨号状态s2、待启状态s3、预警状态S4、报普状态S5、码状态S6。根据系统框图,控制器的转换图如所示。图32状态机控制图系统上电时处于待锁状态sto,当输入一m信号时,系统进入设密码状态st6;入setup信号,进入安锁状态stl,系好;在安锁状态输入slart信号时进入状态蛇。在拨号状态,由控制器根据一i信号愉出对应脉冲个数的计数脉冲信号,计数器计数到3位(密码位数)出ce3信号到控制器,由此控制密码的正确性,此状态下密码正确时进入状态泪,否则进入预警状态st4;在状态,若输入enter信号,则产生开门510,若继续愉入密码贝四进入预警状态;警状态,继续翰入密码将保持此状态;图2控制器状态转换图stan信号,将产生resd一信号将计数器清零,回到号状态stZ,可重新翰入密码;愉入enter信号将产生报警信号sIa,进入状态sts;在报警状态,需i义加p信号控制回到安锁状态。系统处于设置密码状态时,若输入enter信号,则回到安锁状态,由控制器输出胡加信号控制寄存器工作状态是进行密码存储,还是密码输出。第四章 电子密码锁显示电路设计 输出七段显示电路的设计内容包括: 数据选择电路。 BCD对七段显示器译码电路。七段显示器扫描电路。4.1数据选择电路4.1.1电路原理 数据选择器的基本功能是从多路数据中任选其中的一路传送到公共数据通道上。若欲传送的数据有N路,就称为N选1数据选择器。显然,欲从众多路数据中选择其一,选择器必具备地址译码的功能。图是4选1数据选择器的框图。4路数据D3、D2、D1、D0。至少需要n2位地址码A1和A0。用于对其进行选择,即当A1A000时y0。,当A1A001时y0,依此类推。于是,可得到4选1数据选择器的输出逻辑表达式: yD0(A1 A0)十D1(A1 A0)十D2(A1A0)十D3(A1A0)4.2 BCD对七段显示器译码电电子密码锁设计所使用的是8421BCD码对七段显示器译码电路进行译码。BCD-七段显示译码器(74LS48)因为计算机输出的是BCD码,要想在数码管上显示十进制数,就必须先把BCD码转换成 7 段字型数码管所要求的代码。我们把能够将计算机输出的BCD码换成 7 段字型代码,并使数码管显示出十进制数的电路称为“七段字型译码器。 4.2.1 74LS48引脚图输入:8421BCD码,用A3 A2 A1 A0表示(4位)。 2)输出:七段显示,用Ya Yg 表示(7位) 3)逻辑符号: 图41 74LS48逻辑符号74LS48芯片是一种常用的七段数码管译码器驱动器,常用在各种数字电路和单片机系统显示系统中,下面我就给大家介绍一下这个元件的一些参数与应用技术等资料。图42 74LS48引脚图4.2.2 74LS48内部引脚功能七段显示译码器输出高电平有效,用以驱动共阴极显示器。该集成显示译码器设有多个辅助控制端,以增强器件的功能。 74LS148的功能表如表所示,它有3个辅助控制端LT、RBI、BI/RBO,现简要说明如下表: 表41十进数或功能输入BI RBO输出LTRBIABCDabcdefg0HH0 0 0 0H11111101H0 0 0 1H01100002H0 0 1 0H11011013H0 0 1 1H11110114H0 0 0 0H01100115H0 0 0 1H10110116H0 0 1 0H00111117H0 0 1 1H11100008H0 0 0 0H11111111、灭灯输入BI/RBO BI/RBO是特殊控制端,有时作为输入,有时作为输出。当BI/RBO作输入使用且BI0时,无论其它输入端是什么电平,所有各段输入ag均为0,所以字形熄灭。 2、试灯输入LT 当LT0时,BI/RBO是输出端,且RBO1,此时无论其它输入端是什么状态,所有各段输出ag均为1,显示字形8。该输入端常用于检查7488本身及显示器的好坏。 3、动态灭零输入RBI当LT1,RBI0且输入代码DCBA0000时,各段输出ag均为低电平,与BCD码相应的字形熄灭,故称“灭零”。利用LT=1与RBI=0可以实现某一位的“消隐”。此时BI/RBO是输出端,且RBO=0。 h9y9ylllllllllllllll 4、动态灭零输出RBOBI/RBO作为输出使用时,受控于LT和RBI。当LT1且RBI0,输入代码DCBA=0000时,RBO=0;若LT=0或者LT1且RBI1,则RBO=1。该端主要用于显示多位数字时,多个译码器之间的连接。 从功能表还可看出,对输入代码0000,译码条件是:LT和RBI同时等于1,而对其它输入代码则仅要求LT1,这时候,译码器各段ag输出的电平是由输入BCD码决定的,并且满足显示字形的要求。4.3 七段显示器扫描电路图43 74ls48驱动LED电路图电子密码锁显示电路的设计是采用四个BCD七段数码管显示译码器电路来实现的,BCD七段译码器的输入是一位BCD码(以D、C、B、A表示),输出是数码管各段的驱动信号(以FaFg表示),也称47译码器。若用它驱动共阴LED数码管,则输出应为高有效,即输出为高(1)时,相应显示段发光。例如,当输入8421码DCBA=0100时,应显示 , 即要求同时点亮b、c、f、g段, 熄灭a、d、e段,故译码器的输出应为FaFg=0110011,这也是一组代码,常称为段码。图44七段显示器电路图第五章 程序调试、波形仿真、结论分析5.1 EDA工具简介EDA工具在EDA技术应用中占据极其重要的位置,EDA的核心是利用计算机完成电子设计全过程自动化,EDA工具大致可以分为以下5个部分:1、 设计输入编辑器2、 仿真器3、 VHDL综合器4、 适配器5、 下载器现在往往把各种EDA工具集成在一起,如MAX+PLUS这款软件现简要介绍一下MAX+PLUS的使用:使用MAX+PLUS进行可编程逻辑器件开发主要包括4个阶段:设计输入、编译处理、验证(包括功能仿真、时序仿真和定时分析)和器件编程,其设计流程图如下:设计要求 设计修改设计输入编译处理验 证器件编程器件测试系统产品 图51 MAX+PLUS设计流程25.2FPGA的器件的配置与下载5.2.1 配置方式FPGA器件的配置方式主要分为两大类:主动配置方式和被动方式。主动配置方式由FPGA器件引导配置操作过程,它控制着外部存储器和初始化过程;而被动配置方式由外部计算机或控制器控制配置过程。根据数据线的多少又可以将FPGA器件配置方式分为并行配置和串行配置两类。经过不同组合就得到四种配置方式:主动串行配置(AS)、被动串行(PS)、被动并行同步(PPS)、被动并行异步(PPA)5.2.2基于差分的下载电缆在上面所述的下载电缆中,用于短距离的下载不会有什么问题;但是,当我们进行稍微长一点距离的下载时,电路就不能正常运行了。为了解决这一问题,我们提出了基于差分传输的下载电缆,并经过实践得以实现了。在前面讲述的下载电缆中出现的问题主要是由于线路变长后,驱动能力下降造成电路的非正常运行;我们的着眼点就在于增强电路的传输能力,避免电路驱动能力的下降。差分传输是靠电流方式工作的,其传输能力相当强,将其应用于下载电缆中是一种不错的选择。基于差分传输的下载电缆与前面所述下载电缆的不同在于第三部分25针到10针的变换电路,其它部分一样。我们只对不同部分进行讲述。图52差分传输的原理图首先,在发送端将信号变换为差分信号,进行传输;然后,在接受端将差分信号还原为初始信号。由此我们得到基于差分传输的下载电缆框图。53下载电缆框图在 MAX+PLUS中把程序输入后,经过编译、仿真无误后,就通过JTAP配置MAX器件把文件下载到FPGA器件EPM7128SLC84芯片中。下载接口电路如下图:54 JTAP配置MAX器件的接口电路图55 FPGA复位下载电路图5.3 程序调试、波形仿真通过Altera公司的MAX+PlusII 10.2软件并选择器件Altera的系列MAX7000系列FPGA并自动选择引脚接口,然后调试,编译,运行各模块,改正出现的错误,再调试。无误后保存并在在Wave Editor File下进行波形仿真,便可得到各模块仿真图,实图如下所示图56键盘扫描电路的程序仿真键盘扫描电路主要是提供键盘扫描信号,即表1-1 中的KEYR3.0,变化顺序依次为0111、1011、1101、1110依次重复出现。源程序如是Maxplus软件中运行,输入一个时钟信号,在时钟信号的上升沿到来时,就对主时钟进行降频处理。最后输出扫描信号所需要的四个状态. 说明:程序中,S 信号是用来产生扫描信号的四个状态,Q 是为了对输入主时钟进行降频处理。图58键盘扫描电路的时序波形5.3.2 时序产生电路波形首选信号Q 建立一个9 位自由计数器,对输入主时钟进行降频处理;使用CLK_A=Q(1)语句,取得一个脉冲波形,对主时钟进行2 分频,其值为0、1、0、1。;使用CLK_B=Q(4 DOWNTO 3)语句,取得一脉冲序列,依次为00、01、10、11、00.。;图59 时序产生电路程序调试图510时序产生电路波形5.3.3 键盘消抖电路弹跳消除电路的仿真波形如图510所示。由仿真波形以看到,原本的弹跳现象经过弹跳消除电路处理后已经消了。即必须连续3次取样都检测到信号才会反应,否则视噪声,不予理会。图511键盘消抖电路程序仿真图512键盘消抖电路仿真波形5.4.4键盘译码电路时序仿真说明:1、 键盘译码电路除了负责将键盘送出的数据进行译码外,另外就是在译码的同时,必须判别所按下的是数字键还是功能键。2、 若为数字键,则flag_numb=1,且out_num 输出BCD 码,并送往显示电路。3、 若为功能键,则flag_func=1,且out_func 输出4 位码,并送往电锁控制电路。图513键盘译码电路程序仿真图514键盘译码电路波形仿真5.5.5按键存储电路时序仿真图515按键存储电路程序仿真图516按键存储电路波形第六章 结语EDA技术是以大规模可编程逻辑器件为设计载体,以硬件描述语言为系统逻辑描述的主要表达方式,以计算机、大规模可编程逻辑器件的开发软件及实验开发系统为设计工具,通过有关开发软件,自动完成用软件的方式设计的电子系统到硬件系统实现,最终形成集成电子系统或专用集成芯片的一门新技术.本设计采用FPGA芯片和VHDL开发语言设计电子密码锁,电子密码锁广泛的应用在社会的各个方面,具有极高的实用价值,同时对电子密码锁的要求也很高,特别在保密性及功能方面。这要求我们设计的电子密码锁必须要满足社会的需要,更应该有它自身的优势。在设计中为我们提出了更高的要求。本设计在硬件设计方面采用了Altera公司的芯片EPM7128SLC84进行设计,可以极大地减少其他分立元件或其他芯片的使用,有效地缩小了印制电路板面积,提高了系统的可靠性,大大缩短了系统开发的周期。由于采用VHDL进行设计,用软件实现硬件电路,具有良好的可移植性,可随时在线更改逻辑设计及有关参数,允分体现FPGA的优越性,具有一定的实用性。本设计采用高速硬件描述语言VHDL语言并在FPGA 中实现,除具有上述特点外,还有性能稳定、工作可靠、扩展灵活、性能好、成本低等优点,较之以往采用普通分离元件或者单片机设计更具优势。当前基于FPGA的电子密码锁这种设计正在向智能化,多功能化。,在保密性、便捷性、实用性等方面越来越得到广泛的应用,在不久的将来必走上智能化的道路。基于FPGA电子密码锁的设计速度将会朝着速度更快,功能将会更强,将朝着微型化和智能化发展。 这次设计不仅锻炼了我的动手能力,激发了我的创新思维,提高了自己查找资料的能力,而且培养了我面对挫折勇于克服的意志品质和吃苦耐劳的精神。我也深深的体会到理论结合实际的重要性,体会到知识的海洋是无穷无尽,激发我去不断的追求和探索。致 谢在此谨向陈彬老师和四川理工学院电信系的其他老师表示衷心的感谢和崇高的敬意。特别是陈彬老师无论是从系统设计,还是在其后具体实施和最后的论文撰写,都得到了他悉心的指导和启发。陈老师这种对工作认真负责,对学生严格要求,细心指导的工作作风和工作热情深刻的感染了我,给我这次毕业设计的顺利完成奠定了良好的思想基础,给我毕业后能有一个正确的工作态度树立了好的榜样。同时我还要感谢这四年来与我并肩学习的同学和朋友们他们不仅给予我本次设计的帮助和支持,还在生活和其他方面给予我宝贵的批评和建议。学校图书馆为我这次设计提供了大量的宝贵资源,特别在数字系统逻辑设计和综合电子设计方面上,给我带来了很大的方便;不仅是在这两个月的设计里,在我整个大学四年的学习中一直是我的“得力助手”,在此也向图书管所有工作人员表示感谢。最后,我由衷地感谢四川理工学院四年来对我各方面的的培养,感谢那些曾经教育和帮助过我的所有老师。向为审核本文而付出辛勤劳动的各位老师致以崇高的敬意和真诚的感谢。参考文献1 阎石.数字电子技术基础M.高等教育出版社,2003.42 包明, 赵明富, 陈渝光. EDA技术与数字系统设计M。北京航空航天大学出版社.20043 中国安防产品信息,电子锁的技术现状和发展趋势J。中国期刊全文数据库,1996.054 李文石,简论电子门锁的发展和设计J。家电科技,1993.045 哈尔滨师范大学自然科学学报,电子锁发展及研制综述J 中国期刊全文数据库,1993.036 中国公证,密码锁与刷卡锁J。中国期刊全文数据库,2007.077 东北电力学院学报,新型密码锁的研制J。中国期刊全文数据库。2004.048 搜索网址:9 搜索网址:10 张敬怀. EDA技术与电子系统工程设计M. 中国铁道出版社 200311 姜雪松, 吴钰淳, 王鹰. VHDL设计实例与仿真M.机械工业出版社 2007.0212 赵雅兴. FPGA原理、设计与应用M. 天津大学出版社 1999.0413 叶淦华. FPGA嵌入式应用系统开发典型实例M. 中国电力出版社

温馨提示

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

评论

0/150

提交评论