ImageVerifierCode 换一换
格式:DOC , 页数:43 ,大小:1.10MB ,
资源ID:8980967      下载积分:12 金币
快捷下载
登录下载
邮箱/手机:
温馨提示:
快捷下载时,用户名和密码都是您填写的邮箱或者手机号,方便查询和重复下载(系统自动生成)。 如填写123,账号就是123,密码也是123。
特别说明:
请自助下载,系统不会自动发送文件的哦; 如果您已付费,想二次下载,请登录后访问:我的下载记录
支付方式: 支付宝    微信支付   
验证码:   换一换

加入VIP,免费下载
 

温馨提示:由于个人手机设置不同,如果发现不能下载,请复制以下地址【https://www.bingdoc.com/d-8980967.html】到电脑端继续下载(重复下载不扣费)。

已注册用户请登录:
账号:
密码:
验证码:   换一换
  忘记密码?
三方登录: 微信登录   QQ登录  

下载须知

1: 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。
2: 试题试卷类文档,如果标题没有明确说明有答案则都视为没有答案,请知晓。
3: 文件的所有权益归上传用户所有。
4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
5. 本站仅提供交流平台,并不能对任何下载内容负责。
6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

版权提示 | 免责声明

本文(基于FPGA的电子密码锁设计.doc)为本站会员(聆听****声音)主动上传,冰点文库仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对上载内容本身不做任何修改或编辑。 若此文所含内容侵犯了您的版权或隐私,请立即通知冰点文库(发送邮件至service@bingdoc.com或直接QQ联系客服),我们立即给予删除!

基于FPGA的电子密码锁设计.doc

1、摘要VHDL非常适用于可编程逻辑器件的应用设计。尤其在大容量CPLD和FPGA的应用设计中,若采用以往的布尔方程或门级描述方式,很难快速有效地完成。VHDL能提供高级语言结构,方便地描述大型电路,快速地完成设计。它是一种标准语言,它的设计描述可被不同的工具所支持,可用不同器件来实现。文中以基于FPGA的电子密码锁的设计为实例,从方案的确定,各阶层的划分,VHDL的应用,采用了VHDL自顶向下的设计方法。它是一种 高效率设计出它体积小、功耗低、价格便宜、安全可靠、维护和升级都十分方便的电子密码锁电路。关键词:VHDL;自顶向下的设计方法;数字密码锁; EDA;数字系统ABSTRACTVHDL i

2、s 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

3、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

4、. 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 设计方案的比较

5、论证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.

6、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 按键存储电路程序波形仿真第六章结语致 谢参考文献附程序第一章电子密码锁总体设计 随着电子技术的发展,电子密码锁是现代社会用的比较广泛的一种智能

7、工具,具有防盗报警、语音提示等功能的电子密码锁代替密码量少、安全性差的机械式密码锁已是必然趋势。目前大 部分密码锁采用单片机进行设计,电路较复杂,性能不够灵活。本文采用先进的EDA(电子设计自动化)技术,利用MAXPUS工作平台和VHDL(超高速集成电路硬件描述语言),设计了一种新型的电子密码锁。它能实现数码输入、数码清除、密码变更、激活电锁、解除电锁、显示器开关和万用密码等功能。用FPGA(现场可编程门阵列)芯片和实现。由于充分利用了FPGA芯片密度大、功耗低、可重复编程和具有嵌入式阵列块的结构特点,因而该密码锁体积小、功耗低、价格低、安全可靠、具有智能语音提示、维护和升级方便。根据设计的器

8、件、价格成本、可靠性的考虑,可以有不同的设计方案,在设计之前就对几种方案进行论证,首先介绍一下本次设计的电子密码锁的任务和设计要求。 1.1 设计任务和要求设计一个基于FPGA的电子密码锁,通过基于可编程逻辑器件FPGA的方法实现。要求实现从键盘输入四位密码数字,能在数码管上显示其数字。其中输入的密码数字是可清除、改变的。1.2 设计方案的比较论证设计电子密码锁的方案很多,现在讨论常见的三种设计.方案一:分立元件设计的电子密码锁,全部设计均采用硬件来完成其功能,这种设计需要的元件多,在组 装和焊接过程中易出错。而且调试不方便,使用寿命较短。方案二:设计采用基于单片机设计,利用51系列单片机为核

9、心。目前,单片机的功能已比较强大,集成度日益增高且其设计和控制比较容易。但是由于在传统的单片机设计系统中必须使用许多分立元件组成单片机的外围电路,因此整个系统显得十分复杂。方案三:利用FPGA来完成设计。如下图11所示整个系统由四部分组成:键盘模块、FPGA控制模块、显示模块、时钟脉冲器图11系统框图FPGA编程灵活,可减少硬件的使用,查错,改错容易,整个系统设计只有三部分组成44矩阵键盘接口电路、密码锁的控制电路设计、输出七段显示电路的设计。用VHDL硬件编程语言编程,简单灵活,实现效率高,使用方便可靠。综上所述,选择方案三来完成设计更方便更合理更简洁。1.3 基于FPGA电子密码锁总体设计

10、框图时钟发生器时序产生电路键盘扫描电路键盘弹跳消斗电路键盘译码电路寄存器清除信号发生电路开关门锁电路按键数据缓存器数字比较电路BCD七段译码电路图1-2 总体结构框图第一章 电子密码锁单元电路设计2.1 可编程逻辑器件当今社会是数字集成电路广泛应用的社会,数字集成电路本身在不断的更新换代,由早期的电子管,晶体管,中小规模集成电路到超大规模集成电路。在现代复杂数字逻辑设计中,专用集成电路越来越广泛。而可编程逻辑器件兼有专有集成电路的高集成度,高可靠性的优点,有克服了专有集成电路设计时间长,投资大,灵活性差的缺点,而且可编程逻辑器件设计灵活,发现错误容易,逐步成为复杂数字逻辑设计的理想器件,在某些

11、专用集成设计中,可编程逻辑设计为实现功能作为必须的一步。2.1.1 FPGA器件的特点在可编程逻辑设计器件中,比较典型的是Xilinx公司的FPGA器件系列和Altera公司的CPLD器件系列,本设计采用常用的现场可编程门阵列FPGA设计。 FPGA是英文Field Programmable Gate Array的缩写,即现场可编程门阵列,它是在PAL、GAL、EPLD等可编程器件的基础上进一步发展的产物。加电时,FPGA芯片将EPROM中数据读入片内编程RAM中,配置完成后,FPGA进入工作状态。掉电后,FPGA恢复成白片,内部逻辑关系消失,因此,FPGA能够反复使用。FPGA的编程无须专用

12、的FPGA编程器,只须将用通用的EPROM、PROM编程器即可。一个典型的FPGA芯片是围绕一个大的二维可编程逻辑块组织,在芯片的周围还有若干输出输入块,内部芯片体系与芯片外部电路之间的接口。包括送入和从可编程逻辑块中读出的逻辑信号,编程或者是调试所需的信号。在输入和输出块与可编程逻辑块之间也会有内部连线,同时还有各种开关,用于连接和控制逻辑块与输入输出块。图2-1 FPGA内部结构图FPGA的基本结构可由可编程逻辑功能块(CLB),接口功能块(IOB)和可编程内部连线(PI)三大部分组成,如图2-1所示。其中(CLB)在芯片上按照矩阵排列,定义逻辑基本功能,(IOB)用于芯片周围的输入输出,

13、实现内部逻辑和器件封装引脚之间的接口联系;(PI)在其周围起连接的作用,完成各个模块信号之间的传递。在FPGA内部中的可编程逻辑块(CLB)除实现逻辑功能外,还具有数据存储的功能,同时也具有用于数据查找的功能。通过逻辑查找表法将产生的逻辑地址,映射成查找表(LUT)中对应的数字信号数据,实现数据的查找。内部原理图如3-2所示。2.1.2 设计器件的选择设计电子密码锁时,选择FPGA器件EPM7128SLC84,它是Altera 公司生产的一中高性能的可编程器件。以下就是EPM7128SLC84可编程器件简单介绍:EPM7128SLC84是MAX7000系列器件,采用08 m CMOS EPRO

14、M技术制造。是高密度、高性能的CMOS EPLD (可擦除可编程的逻辑器件)器件。它分为8个逻辑阵列块(LAB),每一LAB又分为16个宏单元。其宏单元由逻辑阵列、乘积项选择矩阵和可编程触发器三个功能块组成。它共有2500个可用门,128个宏单元组成。100个外部引脚。8个逻辑阵列块通过可编程连线阵列(PIA)与全局总线连在一起。全局总线由所有的专用输入、IO引脚和宏单元馈给信号。EPM7128sLC84的4个专用输入,既可以作为通用输入,也可以作为每个宏单元和IO引脚的高速、全局控制信号, 如时钟(Clock)、清除(Clear)和输出(Output Enable)等。逻辑阵列实现组合逻辑,

15、给每个宏单元提供5个乘积项。“乘积项选择矩阵”分配这些乘积项作为到“或” 门和“异或” 门的主要逻辑输入,以实现组合逻辑函数,或者把这些乘积项作为宏单元中触发器的辅助输入。比如:清除、置位、时钟和时钟使能控制。每个宏单元的1个乘积项可以反相后回送到逻辑阵列。这个“可共享” 的乘积项能够连接到同一个LAB中任何其它乘积项上。根据设计的逻辑需要,MAx+PLus l开发系统将自动优化乘积项的分配。每个宏单元的触发器可以单独地编程为具有可编程时钟控制的D触发器、T触发器、SR触发器或JK触发器。另外只要需要,也可将触发器旁路,现组合逻辑工作方式。每个触发器也支持异步清零和异步置位功能,乘积项选择矩阵

16、分配乘积项来控制这些操作。MAX70OO中有可编程连线阵列(PIA)、IlO控制,并且编程具有保密性,另外还增加了可编程速度功率控制和电压摆率的控制。2.1.3 设计方法 采用自顶向下的设计 传统的电子设计通常是自底向上的,即首先确定构成系统的最底层的电路模块或元件的结构和功能,然后再根据主时钟的功能要求将它们组合成更大的功能模块,以此流程,逐步向上递推,这种设计不仅实现效率低,成本高,而且还易出错。而自顶向下的设计则可以弥补不足,这种设计是首先从系统设计入手,在对顶层进行功能框图的划分和结构设计。在框图一级进行仿真、纠错,再对高层次的系统进行行为描述,在系统一级进行验证。由于设计主要仿真和调

17、试过程是在高层上完成的,这有利于及早发现结构设计上的错误,避免设计工作的浪费,而且也减少了逻辑功仿真的工作量,提高了一次设计成功率。2.2功能电路的设计4位数的电子密码锁的设计由三部分组成:34矩阵键盘接口电路的设计(内容包括:时序产生电路,键盘扫描电路,弹跳消除电路,键盘译码电路,按键存储电路),密码锁的控制电路设计(内容包括:数字按键的数字输入、存储及清除,功能按键的功能设计,移位寄存器的设计与控制,密码清除、变更、存储电路,密码核对、激活及解除电锁电路);输出七段显示电路的设计(内容包括: 数据选择电路,BCD对七段显示器译码电路,七段显示器扫描电路)。每一部分都包含了若干子电路,将各电

18、路组合起来,就构成了一个整体。电子密码锁的主要功能包括: 数码输入、数码清除、密码变更、激活电锁、解除电锁、显示器开关和万用密码2.2.1、键盘矩正电路设计键盘接口电路的设计内容包括: 键盘矩阵的工作原理及运用、时序产生电路、键盘扫描电路、弹跳消除电路、 键盘译码电路、按键存储电路。如下图所示是电子密码锁的输入电路框图34键盘接口电路:如下图22所示:按键存储键盘译码1234567890*#清抖电路 键盘扫描 矩阵式键盘工作原理: 矩阵式键盘是一种常见的输入装置,在计算机、电话、手机、微波炉等各种电子产品中被广泛应用。如图所示为一34 矩阵式键盘。矩阵式键盘以行、列形式排列,图1-1中为4 行

19、3 列,键盘上的每一个按键盘其实是一个开关电路,当某键被按下时,该按键所对应的位置就呈现逻辑0 的状态,键盘的扫描可以以行扫或列扫方式进行,图中为行扫方式,KEYR3KEYR0 为扫描信号,其中的某一位为0 即扫描其中的一行。键盘扫描信号KEYR3 与第一行相连,KEYR2 与第二行相连,依此类推。很显然,扫描信号的变化顺序为:0111、1011、1101、1110,周而复始。当扫描信号为0111时,扫描KEYR3.0这一行,当扫描信号为1011时,扫描KEYR3.1这一行,当扫描信号为1101时,扫描KEYR3.2这一行,当扫描信号为1110时,扫描KEYR3.3这一行。在扫描的过程中,每扫

20、描一行就检查这一行有没有键被按下当有键按下时,对应的键位就为逻辑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 时序产

21、生电路在一个系统的设计中,往往需要多种时钟信号,最为方便的方法是利用一个自由计数器来产生各种需要的频率。本电路需要:系统主时钟、消抖取样时钟和动态扫描时钟。 系统所需要的时钟由计数器来提供,计数器是用来对输入脉冲的数目进行计数的时序逻辑部件。本次设计就是采用自由计数器来提供所须的频率。计数器的分类 按计数脉冲的输入方式分:同步计数和异步计数。异步计数器,计数脉冲仅输入到最低位触发器的时钟输入端,同步计数器则同时输入到所有触发器的时钟输入端。后者计数速度高,因而得到广泛应用。 计数器的基本特征模 计数器电路的主要部分由一组触发器构成。一组n个触发器共有2t1个状态。实际64计数器可能只需要K个状

22、态,则K211。随着输入脉冲数目的变化,计数器经历预先设定的K个不同的状态So,Sl,SKl序列。在Sxl状态下,再输入一个计数脉冲,计数器就返回到马状态,形成一个工作周期。 在计数器的整个工作周期内,从初始状态开始并返回到初始状态以前的全部状态数,称为计数器的模。例如,若计数器的全部状态数为K,就称为模K计数器。 模K加法计数器的状态转换可用下式描述: Si41一Si十1 (d K)其中mod为modulo(模)的缩写。计数器的模是计数器的重要特征。实际上,各种不同进位制的计数器可用其模来命名,例如4位二进制计数器可作为十六进制计数器使用,于是可称为模16计数器。通过设计电路改变模的值,可以

23、得到十六以内的任意进制计数器,如后述。可编程计数器的使用方法实际上是通过软件程序改变计数器的模 2.2.4 键盘消抖电路按键消抖动电路(又叫弹跳消除电路) 即顶层V佃L文本的debounuin:block模块。因为按键大多是机械式开关结构,在开关切换的瞬间会在接触点弹性簧片间出现若干个随机的来回弹跳的抖动现象,抖动信号的周期大致在2040M,对于激活关闭一般电器(如电灯)并不会有何影响,但对于灵敏度较高的数字逻辑电路系统,却有可能产生误动作而出错。为此需要设置与某一时钟同步的按键消抖动电路,且必须合理地选择同步时钟的工作频率,达到既要照顾响应按键动作的精度(及时快速响应),又要可靠地消抖动(单

24、次输出,而不是两次或多次输出,那样依然有抖动),但是,这两个要求是互相矛盾的,要在调试中兼顾。 若同步时钟的工作频率不合适,弹跳现象就不能很好消除,。及时快速响应的指标可能很高,但消抖动效果却不理想。在开关切换的瞬间会在接解点出现来回弹跳的现象,其现象可用图23表示:由图可见,虽然只是按了一次键,实际产生的按键信号却不只跳动一次,经过取样信号的检查后,将会造成误码判,认为是按了两次键。如果调整取样频率,可以发现抖现象得到了改善。按键信号 取样信号 取样结果 图24调整取样频率后的结果为:按键信号 取样信号 取样结果 图25 因此必须加上弹跳消除电路,且仔细选择同步时钟的工作频率,以避免误操作信

25、号的发生。注意,弹跳消除电路所使用脉冲信号的频率必须比其他电路使用的脉冲信号的频率更高;通常将扫描电路或LED显示电路的工作频率定在24Ik左右,两者的工作频率是通常的4倍或高。 2.2.5 键盘译码电路 即顶层VHDL文本的 KEYBOARD_DEC1模块。键盘中的按键分为数字键和功能键,键盘参数如表23所示。数字键主要用来输入数字,但从表中发现,键盘所产生的输出的四个状态 0111、1011、1101、1110 无法拿来直接使用;另外不同的数字按键也担负不同的功能,因此必须由键盘译码电路来规划每个按键的输出形式,以便执行相应的动作。针对有表可以对照的电路设计,只要使用CASEWHEN或WH

26、EN_ELSE语句,便可轻松完成设计,详见顶层VHDL文本的key decoder:block模块的描述。从前面所述的键盘扫描电路的输出可以看出,扫描得到的信号规律性不强,例如数字键主要用来输入数字,但键盘扫描输出无法拿来直接使用,必须对其进行译码才能使用。如表所示,只要使用casewhen 或when else 语句,便可完成设计。表23KEYR3.0KEYR2.0对应按键译码输出功能011101110001数码输入10120010数码输入11030011数码输入101101140100数码输入10150101数码输入11060110数码输入110101170111数码输入10181000数

27、码输入11091001数码输入111001100100数码输入101*0000数码输入110#00012.2.6按键存储电路因为每次按键都会产生新的数据,可能会覆盖前面的数据,所以需要一个按键存储电路,将键盘扫描译码后的结果记录下来。这一功能可以用移位寄存器来实现。寄存器是一种常用的时序逻辑电路。有趣的是,这种时序逻辑电路只包含存储电路。寄存器的存储电路是由锁存器或触发器构成的,因为一个触发器能存储1位二进制数,所以由N个锁存器或触发器可以构成N位寄存器。1、移位寄存器分类 移位寄存器按输入输出方式分类:常见的移位寄存器的下列四种:串行输入/串行输出(SISO)串行输入/并行输出(SIPO)并行输入/串行输出(PISO)并行输入/并行输出(PIPO)2 、单向串行移位寄存器(用

copyright@ 2008-2023 冰点文库 网站版权所有

经营许可证编号:鄂ICP备19020893号-2