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

下载本文档

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

文档简介

1、四川师范大学成都学院专科毕业设计四川师范大学成都学院专科毕业设计 基于FPGA的电子密码锁电路设计学生姓名XXX学 号XXXXXXXXXXXX所 在 系通信工程系专业名称计算机通信班 级09级计算机通信班指导教师XXXXXXX四川师范大学成都学院二一二年五月基于FPGA的电子密码锁电路设计学生:杨琴 指导教师: 张莹内容摘要:本文主要介绍了一种运用可编程逻辑器件(FPGA)技术来编程实现电子密码锁的设计方法。在整个系统设计实现中采用FPGA器件作为控制器,所有算法完全由硬件电路来实现,使得系统的工作可靠性大大提高。该密码锁具有的功能是可以设置4位密码,通过数字键盘进行输入并在数码管上进行显示。

2、同时,该密码锁还设计了一个万能密码,在忘记了密码的情况下可使用万能密码来开锁。本文的内容主要包含以下几个部分:EDA技术的介绍,电子密码锁总体设计,系统详细设计,系统仿真和结束语。文中重点介绍了应用EDA技术和硬件描述语言,在Quartus II工作平台上完成电子密码锁系统总体设计的详细过程。通过时序仿真,验证了整个设计的正确性以及系统的完整性。 关键词:电子密码锁 可编程逻辑器件 EDA技术 Circuit Design of Digital Lock Based on FPGAAbstract: The article mainly introduce the technology of

3、designing a digital lock with the utility of FPGA. All the calculation are totally finished by the hardware ,based on the FPGA, so as to improve the reliability of the system. We just change the control and interface circuit of FPGA when there is something needed to change in the designing because o

4、f the field programme function. Its tremendously increase the efficiency because we only need to download the newest design into the FPGA by the help of EDA without modifying the external circuit design . Therefore, FPGA will not only improve the reliability , but the conveniences of promotion. Ther

5、e are four password for digital lock and we can also set a universal password in case of forgetting the password. The article mainly includes several parts :The introduction of EDA, the overall design of digital lock, the design in detail of system, emulation and conclusion . Through the introductio

6、n of EDA, we know the software requirement of production the digital lock . In the overall design and detail design of digital lock , it introduce in detail the theory and the system designing .The article designed a digital lock and made it be in form with FPGA .Key Word: EDA verall Password Digita

7、l Lock Chip.目 录前言11 设计背景知识介绍11.1 常用EDA软件介绍11.2 FPGA硬件设计描述21.3 Quartus综述及设计流程52 电子密码锁系统总体设计52.1 电子密码锁系统设计要求52.2 方案的提出52.3 系统设计和各功能模块的描述63 系统详细设计83.1 电子密码锁输入模块83.1.1 时序产生电路83.1.2 按键消抖电路83.1.3 键盘扫描电路93.1.4 键盘译码电路103.1.5 键盘输入模块的实现103.2 电子密码锁控制模块113.2.1 控制模块的功能描述113.2.2 控制模块的实现113.3 电子密码锁显示模块123.3.1 数码管显

8、示原理123.3.2 译码显示的实现134 系统仿真134.1 去抖模块的仿真134.2 密码锁输入电路的仿真134.3 密码锁控制电路的仿真144.4 数码管译码器仿真165 结束语16附录17参考文献:2324基于FPGA的电子密码锁电路设计前言 当今人们对物质的积累越来越多,觉得要如何有效的保护好自己的财产,这已成为了全社会的问题,人们对锁的要求越来越高,既要安全性很高,又要能很好的防盗,又要能让他使用很方便,这也导致了电子行业的蓬勃发展。现今的电子锁非常入人们的眼中,市场上就出现了不同款型的电子密码锁。但在实际应用中,密码锁用不同的器件来构造的系统,就会出现不同的程序故障。本文的电子密

9、码锁是运用FPGA来编程的,所有的运算方法完全由硬件电路来实现,这使得密码锁的工作可靠性大大的提高了,而且当想改变电子密码锁的程序设计时,只需要改变FPGA中的控制电路和接口电路,用EDA工具将更换后的设计码下载导入FPGA中就行了,没有必要改变外部电路的设计,很大程度的提高了电子密码锁设计的效率。 为了让电子密码锁像现在的智能手机一样,能随时更改系统,下载运用软件,方便人们的使用,本文采用EDA技术,利用Quartus工作平台硬件描述语言,设计一种电子密码锁,并通过用FPGA芯片实现。用VHDL语言使用自顶向下的方法对系统进行了描述,并在FPGA芯片上实现。设计充分利用了FPGA的资源可编程

10、特性,可高效率的对系统进行升级与改进。设计的密码锁可设置任意密码,比一般的四位密码锁具有更高的安全可靠性,因此,采用FPGA 开发的数字系统,不仅具有很高的工作可靠性,其升级与改进也极其的方便,应用前景十分宽广。1 设计背景知识介绍EDA技术是以计算机为工作平台,用相关的EDA开发软件技术为工具,以大规模可编程逻辑器件(包括CPLD,FPGA,EPLD等)为设计载体,以硬件描述语言1(Hardware Description Language,HDL)为系统逻辑描述的主要表达方式,自动完成系统算法和电路设计,最终形成电子系统或专用集成芯片的一门新技术。EDA技术研究的对象是电力或系统芯片设计的

11、过程,可分为系统级、电路级和物理级三个层次。EDA设计领域和内容包括从低频、高频到微波,从线性到非线性,从模拟到数字,从可编程逻辑器件、通用集成电路到专用集成电路的电子自动化设计。1.1 常用EDA软件介绍EDA软件可根据其复位的对象分为:用于电路级设计、分析的EDA软件,如PSpice和Multisim8等;用于数字电子电路设计的EDA软件,如Quartus等;用于射频电子电路设计的EDA软件,如ADS等;用于电路板设计及电路仿真的EDA软件,如Protel,EWB等。EDA软件根据其设计模块大致分为设计输入编辑器、仿真器(Simulator)、HDL综合器(Synthesizer)适配器(

12、Place and Routing ,P&R)或布局布线器、下载器五大部分。EDA软件还有两种分类方法:一种是按公司类别进行分类,另一种是按功能进行分类。若按公司类别可分为两类:一类是EDA专业软件公司的EDA软件,另一类是PLD厂商为了销售其产品而开发的EDA软件。若按功能分类,EDA软件可分为:集成的FPGA/CPLD开发软件、综合类软件、仿真类软件、面向ASIC设计的软件。集成的FPGA/CPLD开发软件由半导体公司提供,基本上可以完成设计输入(,基本上可以完成设计输入(状态图、原理图或文本)仿真综合布线下载到器件等PLD开发流程中的所有工作。其优势是功能全且集成化,可以加快动态

13、调试,缩短开发周期;缺点是在综合和仿真环节与专业软件相比,都不是最优秀的。综合类软件的功能是对设计输入进行逻辑分析、综合和优化,将硬件描述语句(通常是系统级、寄存器级的描述语句)翻译成最基本的与、或、非门的连接关系(网表),导出给FPGA/CPLD厂商的软件布线。为了优化设计,在进行较复杂的设计时,基本上都是用这些专业的逻辑综合软件,如ynplicity, FPGA express 、FPGA Compiler 等。仿真类软件的功能是对设计进行模拟仿真,包括布局布线前的“功能仿真”和后端的包含了门延时、布线延时等的“时序仿真”。如Modelsim, Cadence公司的NC-Verilog/N

14、C-VHDL/NC-SIM等。面向ASIC设计的软件包括数字电路设计、模拟电路设计、数模混合设计、系统设计、仿真验证等电子设计的许多领域。这些软件对硬件环境要求高,一般的运行平台要求是工作站、UNIX或Linux操作系统,其功能齐全、性能优良,一般由专门开发EDA软件的软件公司提供,如Cadence、Mentor Graphics和Synopsys等都有其特色工具。1.2 FPGA硬件设计描述FPGA出现在20世纪80年代中期,与阵列型PLD有所不同,FPGA由许多独立的可编程逻辑模块组成,用户可以通过编程将这些模块连接起来实现不同的设计。FPGA具有跟高的集成度、更强的 逻辑实现能力和更好的

15、设计灵活性。FPGA器件具有高密度、高速率、系列化、标准化、小型化、多功能、低功耗、低成本,设计灵活方便,可无限次反复编程,并可现场模拟调试验证等特点。FPGA由可编程逻辑块(CLB)(主要由逻辑函数发生器、触发器、数据选择器等电路组成)、输入/输出模块(IOB)(主要由输入触发器、输入缓冲器和输出触发/锁存器、输出缓冲器组成,IOB控制一个引脚,它们可被配置为输入、输出或双向I/O功能)及可编程互连资源(PIR)(由许多金属线段构成,这些金属线段带有可编程开关,通过自动布线实现各种电路的连接,从而实现FPGA内部的CLB和CLB之间、CLB和IOB之间的连接)等3中可编程电路和1个SPAM结

16、构的配置存储单元组成。CLB是实现逻辑功能的基本单元,它们通常规则地排列成一个阵列,散布于整个芯片中;可编程输入/输出模块(IOB)主要完成芯片上的逻辑与外部引脚的接口,它通常排列在芯片的四周;可编程互连资源(PIR)包括各种长度的连接线段和一些可编程 连接开关,它们将各个CLB之间或CLB与IOB之间以及IOB之间连接起来,构成特定功能的电路。由于LUT主要适合SRAM工艺生产,所以目前大部分FPGA都是基于SRAM工艺的,而基于SRAMA工艺的芯片在掉电后信息就会丢失,一定需要外加一片专用配置芯片,上电时由这个专用配置芯片把数据加载到FPGA中,然后FPGA就可以正常工作,由于配置时间很短

17、,不会影响系统正常工作。也有少数FPGA采用烦熔丝或Flash工艺,对这种FPGA,就不需要外加专用的配置芯片了。 FPGA不像PLD那样受结构的限制,它可以靠门与门的连接来组成任何复杂的逻辑电路,更适合实现多级逻辑功能。FPGA的编程单元基于SRAM结构,从理论上讲,具有无限次重复编程的能力。 现在最新的FPGA,具有很高的逻辑密度、很丰富的特性和很高的性能,如Xilinx Virtex系列中的部分器件,可提供八百万个“系统门”(相对逻辑密度)。这些先进的器件还提供诸如内建的硬连线处理器(如IBM Power PC)、大容量存储器、始终管理系统等,并支持多种最新的超快速器件至器件(devic

18、e-to-device)的信号技术。FPGA应用范围广泛,从数据处理和存储,到仪器仪表、数字信号处理等都有使用。目前市场上有三种FPGA编程技术:SRAM、反熔丝、Flash.其中,基于SRAM工艺的FPGA是迄今为止应用范围最广的架构,主要是因为它快速且具有可重复编程能力,而基于反熔丝工艺的FPGA只有一次可编程(One Time Programmable,OTP)能力基于Flash工艺的FPGA经常带来一些其他的额外成本,包括启动PROMS支持安全和保密应用的备用电池等。基于Flash和反熔丝工艺的GPGA没有这些隐含成本,因此可保证较低的总系统成本。l 基于SRAM工艺的FPGA这类FP

19、GA是基于SRAM结构的可再配置型器件,上电时要将配置数据读入片内SRAM中,配置完成就可进入工作状态。掉电后SRAM中的配置数据丢失,FPGA内部逻辑关系随之消失。这类FPGA可以反复使用。l 基于反熔丝工艺的FPGA这类FPGA内部具有反熔丝阵列开关,其逻辑功能的定义由专用编辑器根据设计实现所给出的数据文件,对其内部的反熔丝阵列进行烧录,从而使器件实现星月的逻辑功能。这类器件的缺点是只能一次性编程;优点是具有高抗干扰性和低功能,适合于要求高可靠性、高保密性的定性产品。l 基于Flash工艺的FPGA这类FPGA中集成了SRAM和非易失性EEPROM两类存储结构。其中SRAM用于在器件正常工

20、作时对系统进行控制,而EEPROM则用来装载SRAM.由于这类FPGA将EEPROM集成在基于SRAM工艺的现场可编程器件中,因而可以充分发挥EEPROM中,因此不需要片外的配置芯片,有助于降低系统成本,提到设计的安全性。FPGA设计流程包括系统设计和设计实现,系统方案完成之后即进入设计实现阶段的工作,他以系统方案为输入,进行RTL级描述、功能仿真(RTL级仿真)、逻辑综合、布线前门级仿真、适配(布局布线)、时序仿真(布线后门级仿真)、时序分析、器件编程、系统验证一系列流程的处理才能完成FPGA芯片的设计,其设计流程如图1.2-1所示。需要说明的是,如果仿真验证不对或者某一步有错,就要返回修改

21、。有时要反复修改,经过多次这样的迭代才能完成最后的设计。对于FPGA的设计而言,只考虑系统级、算法级、RTL级、门级4个层次的行为域描述和结构域描述即可。上述的FPGA系统设计中的系统实际上是指系统级和算法级,而“RTL级描述”主要是指RTL级行为域的描述。在门级,由综合工具产生的门级网表来描述。图1.2-1 系统设计流程1.3 Quartus综述及设计流程Quartus是Altera公司在20世纪初推出的FPGA/CPLD新一代开发软件,是Altera前一代FPGA/CPLD集成开发环境MAX+PLUS 的更新换代产品,其特点是功能强大、界面简单易懂、使用方便。适合于大规模逻辑电路设计,其设

22、计流程概括为设计输入、设计编辑输入法,VHDL、Verilog HDL和AHDL的文本编辑输入法,符号编辑输入法,以及内存编辑输入法。Quartus软件集成了Altera 的FPGA/CPLD开发流程中所涉及的所有工具和第三方软件接口。 Quartus与MATLAB和DSP Builder结合可以进行基于FPGA的DSP系统开发,是DSP硬件系统实现的关键EDA工具,与SOPC buider结合,可实现SOPC系统开发。Quartus软件的特点:支持多时钟定时分析、LogicLock基于块的设计、SOPC(可编程片上系统)、内嵌SignalTap 逻辑分析器、功率估计器等高级工具;易于引脚分配

23、和时序约束;强大的HDL综合能力;包含有MAX+PLUS的GUI,且易于MAX+PLUS的工程平稳地过渡到Quartus开发环境;对于Fmax的设计具有很好的效果;支持的器件种类众多;支持Windows、Solaris、HP-UNIX和Linux等多种操作系统;第三方工具如综合、仿真等的链接。2 电子密码锁系统总体设计2.1 电子密码锁系统设计要求设计一个具有较高安全性和较低成本的通用电子密码锁,具体功能要求如下:数码输入:每按下一个数字键,就输入一个数值,并在显示器上的显示出该数值,同时将先前输入的数据依序左移一个数字位置。数码清除:按下此键可清除前面所有的输入值,清除为“0000”。密码更

24、改:按下此键时会将目前的数字设定成新的密码。激活电锁:按下此键可将密码锁上锁。解除电锁:按下此键会检查输入的密码是否正确,密码正确即开锁。数字位退格:按下此键可清除最低的数字位,并使各位向右移。万能密码:为了怕使用者忘记密码,系统可在设计时考虑设计一个万用密码,不论原来密码是什么,只要输入万能密码就能开锁。2.2 方案的提出方案一:采用数字电路控制。虽然采用数字密码锁电路的好处是设计简单,但是由于其是纯电路实际,在系统运行时,延时会比较严重。方案二:通过单片机实现,现在一种新的方案就是采用一种是用以AT89S51为核心的单片机控制方案。虽然有灵活的设计和丰富的IO端口,但是单片机设计的缺点是程

25、序运行时容易出现跑飞现象。通过以上比较显然单片机方案有较大的活动空间,不但能实现所要求的功能而且能在很大的程度上扩展功能,而且还可以方便的对系统进行升级,但是由于所学知识不能将其有效的应用,现有环境不能满足,而且单片机的密码锁有一定的不足之处,在运行时程序有时会产生PC指针错误,还有基于现在所学知识的应用,所以基于以上比较提出了第三种方案。方案三:利用FPGA设计电子密码锁,其成本低,设计方便(有相应的开发板),现有资源充足,实现比较容易,更利于系统的维护改进和升级,可靠性更高,更安全。通过以上比较描述,本设计采用基于FPGA的电子密码锁设计方案。2.3 系统设计和各功能模块的描述本系统为一个

26、简洁型的电子密码锁,该系统以开发板为主要核心,采用4*4的键盘,前10个键为数字键,8个数码管显示密码输入,后面的按键实现电子密码锁的各个功能,总体外观如图2.3-1所示。图2.3-1 电子密码外观图上图为在实验开发板上实现,使用开发板有十六个按键,分别对应数字0到9和各个功能键,LED显示为开发板上电子密码锁主要由四个部分组成:数字密码输入电路、密码锁控制电路、密码锁显示电路和报警模块。也就是说,设计分为四个大的功能模块。图2.3-2为数字电子密码功能模块图。密码锁输入电路包括时序产生电路、键盘扫描电路、键盘弹跳消除电路、键盘译码电路等几个小的功能电路。 模块的功能是:将用户通过键盘输入的数

27、字密码,确认密码是否输入,产生电路中使用的三种不同频率的工作脉冲波形,即系统时钟脉冲、弹跳消除取样信号和键盘扫描信号;为了加强按键按下的准确性加了去抖模块。 密码锁控制电路包括按键数据的缓冲存储电路,密码的清除、变更、存储、激活电锁电路(寄存器清除信号发生电路),密码核对(数值比较电路),解锁电路(开/关门锁电路)、报警电路等几个小的功能电路。模块功能:用于密码的更改,密码的清除,以及对密码锁的工作状态更改,对输入密码次数的计数功能,还有就是更智能化,更符合人们的思维,按键的时候都是习惯看输入数字的移位情况。图2.3-2 数字电子密码功能模块图 密码显示电路主要将显示数据的BCD码转换成相对应

28、的编码。如,若选七段数码管显示电路,主要将待显示数据的BCD码转换成数码器的七段显示驱动编码。通过上面所描述的系统结构可知,通用的电子密码锁主要由三个部分组成:数字密码输入电路、密码锁控制电路和密码锁显示电路。从图2.3-2可知:通过时序产生键盘扫描信号,由键盘输入密码或者功能按键,当然在这过程中要经过按键去抖,最后将所输入的键盘值译码得到具体的数字或者功能键;将输入值输入键盘数据存储器,在这里面可以将键盘值存储或者清除,再经过比较电路,比较输入值与原来存储的是否一致,如果一致则开启锁,如果不一致则报警(在报警后可以通过输入万能密码或者断电复位等可以解决);在经过存储电路时,同时将所输入的值通

29、过LED显示出来,显示将通过BCD译码电路,将所获取的值显示在LED数码管上。3 系统详细设计3.1 电子密码锁输入模块3.1.1 时序产生电路本时序产生电路中使用了三种不同频率的工作脉冲波形:系统时钟脉冲(它是系统内部所有时钟脉冲的源头,且其频率最高)、弹跳消除取样信号、键盘扫描信号。当一个系统中需使用多种操作频率的脉冲波形时,最方便的方法之一就是利用一计数器来产生各种需要的频率。也就是先建立一个N位计数器,N的大小根据电路的需求决定,N的值越大,电路可以分频的次数就越多,这样就可以获得更大的频率变化,以便提供多种不同频率的时钟信号。若输入时钟为CLK,N位计数器的输出为QN-1.0,则Q(

30、0)为CLK的2分频脉冲信号,Q(1)为CLK的4分频脉冲信号,Q(2)为CLK的8分频脉冲信号Q(N-1)为CLK的2N分频脉冲信号;Q(5 DOWNTO 4)取得的是一个脉冲波形序列,其值依000110110001周期性变化,其变化频率为CLK的32分频。我们利用以上规律即可得到各种我们所需要频率的信号或信号序列。CLK_1K:时钟信号SIGNAL K_SRCLK: STD_LOGIC ; -键盘输入采样时钟SIGNAL K_POS: STD_LOGIC_VECTOR(1 DOWNTO 0); -按键位置信号SIGNAL KSCAN:STD_LOGIC_VECTOR(3 DOWNTO 0)

31、; -键盘扫描信号KEY IN:STD_LOGIC_VECTOR(2 DOWNTO 0);-按键输入信号KSRCLK:STD_LOGIC;-键盘输入采样时钟3.1.2 按键消抖电路由于设计采用的矩阵式键盘是机械开关结构,因此在开关切换的瞬间会在接触点出现信号来回弹跳的现象。弹跳现象产生的原因是,虽然每次只是按下按键一次然后放掉,然而实际产生的按键信号却不知跳动一次,经过取样信号的检查后,将会造成误判断,以为键盘按了两次。图3.1.2-1 弹跳现象产生错误的抽样结果图3.1.2-2 调整抽样频率后得到的抽样结果因此必须加上弹跳消除电路,避免误操作信号的发生。特别要注意的是,弹跳消除电路所使用的脉

32、冲信号的频率必须比其他电路使用的脉冲信号的频率更高;通常将扫描电路的工作频率定在100KHz左右。(图见附录1)按键消抖部分是由两个小的模块集成为一个去抖电路的,所以在此分开介绍此两个模块。Dcfq模块:dcfq 模块的主要程序(图见附录2)。此段程序作用是判断输入信号是否有效, 如有效则输出,无效清零。Debouncing 模块主要程序(图见附录3)这段程序的作用就是通过对信号的分频处理,从而将按键产生的不规则信号转换为便于识别的按键信号,达到消除抖动的目的。3.1.3 键盘扫描电路扫描电路的作用是用来提供键盘扫描信号的,扫描信号变化的顺序依次为11101101101101111110依序的

33、周而复始。每扫描一排按键就检查一次是否有键被按下,如果这排没有按键被按下就忽略,反之,如果出现被按下的键则立刻进行按键编码的动作,且将编码的结果储存于寄存器中。-扫描信号发生器 (图见附录4)键盘扫描电路的作用是提供键盘扫描信号,扫描信号变化的顺序为1110- -1101-1011-0111-1110周而复始。扫描信号0111代表扫描的为*、0、#这一排按键, 当*这个按键被按下时, 由CSR1.0读出的值为11,按键位置的数码关系如表3.1.3-1所列。表3.1.3-1 按键位置的数码关系扫描信号CSR1.0000000010101101010111111键盘输出信号SEL3.0001101

34、010110001101010110001101010110001101010110按键号123456789*0#3.1.4 键盘译码电路在密码输入电路中,按键又分为数字按键和文字按键,每一个按键可能负责不同的功能,例如清除键、上锁键和解锁键等。数字按键主要是用来输入数字的,但是键盘所产生的输出是无法直接拿来用作密码锁控制电路的输入的。盘译码电路主要将所对应的键盘值设定成所要用的功能键,其主要程序如下:(图见附录5)3.1.5 键盘输入模块的实现键盘输入模块进行封装过后生成符号图如3.1.5-1:图3.1.5-1 键盘输入电路符号图模块外部信号端口:clk_1k:时钟脉冲输入端口,为系统提供工

35、作的时钟脉冲。key_in:按键输入端口,为按键输入提供输入信号。kscan:键盘扫描序列(仿真时用),为按键扫描提供信号。data_n:数字输出端口,为数字的输出提供信号。data_f:功能输出端口,为功能的输出提供信号。flag_n:数字输出标志,用于识别数字是否输出。flag_f:功能输出标志,用于识别功能是否输出。ksrclk:键盘输入采样时钟。kpos:按键位置,用于识别按键所在位置提供信号。3.2 电子密码锁控制模块电子密码锁控制模块是利用FPGA技术来处理输入信息。3.2.1 控制模块的功能描述电子密码锁控制模块分为两个部分:数字按键输入的响应控制和功能按键输入的响应控制。数字按

36、键输入的响应控制,如果按下数字键,第一个数字会从显示其的最右端开始显示,此后每新按一个数字时,显示器上的数字必须左移一个数码管,以便将新的数字显示出来。假如要更改输入的数字,可以按倒退按键来清除前一个输入的数字,或者按清除键清除所有出入的数字,再重新输入四位数。由于这里设计的是一个四位的电子密码锁,所以当输入的数字键超过预设位数时,电路不予理会,而且不再显示以后的数字。输入的响应控制的功能按键有:清除键清除所有的输入数字,即作归零动作。激活电锁键按下此键时可将密码锁的门上锁(上锁前必须预先设定一个四位的数字密码)。解除电锁键按下此键会检查输入的密码是否正确,若密码正确则开门。3.2.2 控制模

37、块的实现电子密码锁控制模块进行封装后生产电路符号图。如下: 图3.2.2-1 控制模块电路符号图模块外部信号端口:data_n数字输入端口,是用于提供数字输入信号。data_f_功能输入端口,用于提供功能输入信号。flag_n数字输入标志,用于识别数字是否输入。flag_f功能输入标志,用于识别功能是否输入。Ksrclk键盘输入采样时钟,用于提供键盘输入的采样时钟。Enlock密码锁控制信号输出端口,提供密码锁控制信号输出。data_bcd按键显示输出端口,用于提供按键显示输出信号。Mimain密码输入标志,用于提供密码输入信号。Setin密码设定标志,提供密码设置信号。Old旧密码设置标志,

38、提供旧密码设置标志。模块内部信号有acc暂存键盘输入信息。Reg密码存储位置3.3 电子密码锁显示模块电子密码锁显示模块是用二极管显示器来展现。3.3.1 数码管显示原理数字显示主要由LED数码管实现。分段式显示器由7条线段围成8型,每一段包含一个发光二极管,外加正向电压时二极管导通,发出清晰的光,有红、黄、绿等色。图3.3.1-1介绍了左边右边是共阴式和共阳式LED数码管的原理图,以及共阴式的连接法和驱动原理。图3.3.1-1 七段数码管电路图根据组成09这10个字形的要求列出8421BCD七段译码器真值表,见图3.3.1-2。图3.3.1-2 七段译码器真值表3.3.2 译码显示的实现把译

39、码显示进行封装后生成电路符号如图3.3.2-1:图3.3.2-1译码显示电路符号图模块外部信号端口:data_bcd密码信号输入端口,提供密码信号输入。dout7密码锁状态信号显示灯,提供状态显示信号。 4 系统仿真本章节记录了以下几个模块的仿真:去抖模块、密码锁输入电路、密码锁控制电路、数码管译码。4.1 去抖模块的仿真图4.1.1-1为键盘输入防抖电路的仿真结果图,由图上可以看出,原来的弹跳现象经过防抖电路处理后已经清除了由图中可以看出,键盘扫描出的信号弹跳现象可以得到改善。 图4.1.1-1键盘输入防抖电路的仿真结果图4.2 密码锁输入电路的仿真图4.2.1-1为密码输入电路原理图,图4

40、.2.1-2为密码锁输入电路的仿真结果图,图中的输出信号kscan,是为便于仿真时观察中间结果而增加的观测点的输出。 图4.2.1-1密码输入电路原理图图4.2.1-2 密码锁输入电路仿真结果图输入信号KEY_IN2.0依序依011101110011101的顺序周期性循环,对键盘进行扫描。如有按键发生,键盘扫描输出信号CLK_SCAN做出反应。4.3 密码锁控制电路的仿真电路原理图4.3.1-1:图4.3.1-1密码锁控制电路原理图图4.3.1-2是密码锁控制电路仿真结果图。图4.3.1-2 密码锁控制电路仿真结果图系统整体仿真设置新密码部分(初始时有出厂时设置的密码为“0000”,用户设置的

41、新密码为“”0622),具体仿真如图4.3.1-3:图4.3.1-3 密码锁系统整体电路仿真结果图上锁部分(按下“*11#” 时表示上锁,设置完毕后上锁键ENLOCK有效),具体仿真如图4.3.1-4:图4.3.1-4 密码锁系统整体电路仿真结果图(二)4.4 数码管译码器仿真数码管译码仿真电路原理图4.4.1-1:图4.4.1-1密码锁显示电路原理图A为4位输入,为BCD码格式,通过译码电路,输出7位译码,在LED数码管上显示相应的数字信息。仿真图如4.4.1-2:图4.4.1-2 密码锁显示电路仿真结果图5 结束语本系统是基于FPGA来完成的,用现有资源PC机、便携式EDA/SOPC/DS

42、P实验系统, Quartus II 7.0开发系统来完成。本系统经过详细设计,代码编译仿真等,实现了一个简单的电子密码锁。设计的重点在于控制模块的设计,因为此模块是整个系统的核心,因此在这个模块中花的时间也是最多的,在整体仿真中,能从仿真图上看到功能的具体实现,但是仿真图不能完全仿真显示完所有的仿真结果,这个问题一直是比较困惑的,考虑许久,判定是时钟信号给的不够多造成后面无法完全显示完成吧,可能还有一些问题没考虑到吧,系统也存在一定的不足,由于时间上的限制和环境的限制,比如在显示模块做的比较简单,还有报警模块等,都没真正的考虑完全,这些都有待以后提高。附录1:弹跳消除电路主要程序附录2:dcf

43、q 模块的主要程序附录3:debouncing 模块主要程序附录4:扫描信号发生器主要程序附录5:键盘译码电路主要程序附录6:七段译码器主要程序设计见图参考文献:1 李连华:基于FPGA的电子密码锁设计,中国科技信息,2006.01,P642 许 琦:基于FPGA的电子密码锁的设计,科技信息,2006,(10,P240-P2413 王卫兵,刘克刚,朱秋萍:用FPGA的电子密码锁.电子技术,2005,(01):P26-P284 赵益丹,徐晓林,周振峰:电子密码锁的系统原理、设计程序及流程图,嘉兴学院学报,2003,P103-P1055 陆重阳,卢东华:FPGA技术及其发展趋势,微电子技术,200

44、3.01,P5-P76 王晓勇:FPGA的基本原理及运用,舰船电子工程,2005.02,P82-P857 程耀林:FPGA的系统设计方法解析,现代电子技术,2005,P90-P938 张 忠:自顶向下的FPGA设计,电子产品世界,1998.11,P33-P34,P729 路而红:专用集成电路设计与电子设计自动化,北京清华大学出版社,2004,P162-P181,P239-P280,P329-P33210 罗 杰,康华光:两种硬件描述语言VHDL/Verilog的发展及其应用,电气电子教学学报,2002, P1-P511 曹建国, 王威, 王丹.:一种基于VHDL的电子密码锁的设计与实现.沈阳大

45、学学报,2006,P77-P7912 谭会生,瞿遂春:EDA技术综合应用实例与分析.西安:西安电子科技大学版社,2004.P1-P42,P64-P8513 梁 丽:电子密码锁的计算机仿真设计,计算机仿真,2005,P218-P220毕业设计任务书学生姓名杨琴学 号2009208060指导教师张莹系 名 称通信工程系专业名称计算机通信设计题目基于FPGA的电子密码锁电路设计题目来源教学一、基本任务与要求基本任务:应用EDA技术,在FPGA中实现一个简易电子密码锁电路设计。该密码锁具备的功能有能设置4位密码,并在数码管上显示。用常见的数字键盘作为密码锁的输入电路模块,具备一个万能密码,同时能提供密

46、码输入错误时的报警功能。要求:能利用Quartus II软件开发环境和硬件描述语言,编写所有的程序代码,并能绘制出系统顶层设计文件框图。通过软件提供的仿真器,对所有模块进行时序仿真,并分析仿真结果。最后将设计文件下载到目标器件中进行硬件模拟检测,观察结果。严格按照要求撰写毕业设计报告书。 二、工作内容及时间安排1、选题: 2012年01月01日 2012年01月04日2、开题报告: 2012年01月05日 2012年01月10日3、收集资料、确定实施方案: 2012年01月11日 2012年02月11日4、模块设计与系统设计: 2012年02月12日 2012年04月10日5、整理资料、编写设

47、计报告: 2012年04月11日 2012年04月21日6、完成定稿、打印、交付设计报告: 2012年04月21日 2012年05月07日7、评审: 2012年05月08日 2012年05月10日 三、需要提供有关材料1、毕业设计任务书;2、毕业设计开题报告;3、毕业设计实施过程记录表;4、设计报告正文严格按照四川师范大学成都学院毕业设计规范要求撰写;5、毕业设计评审表(指导教师);6、毕业设计评审表(评阅人1、2);7、毕业设计成绩登记表。毕业设计开题报告学生姓名杨琴学 号2009208060设计题目基于FPGA的电子密码锁电路设计1、选题背景(含国内外相关研究综述及评价)与意义。当今人们对

48、物质的积累越来越多,觉得要如何有效的保护好自己的财产,这已成为了全社会的问题。现今的电子锁非常入人们的眼中,市场上就出现了不同款型的电子密码锁。但在实际应用中,密码锁用不同的器件来构造的系统,就会出现不同的程序故障。本文的电子密码锁是运用FPGA来编程的,所有的运算方法完全由硬件电路来实现,这使得密码锁的工作可靠性大大的提高了,而且当想改变电子密码锁的程序设计时,只需要改变FPGA中的控制电路和接口电路,用EDA工具将更换后的设计码下载导入FPGA中就行了,没有必要改变外部电路的设计,很大程度的提高了电子密码锁设计的效率。 为了让电子密码锁像现在的智能手机一样,能随时更改系统,下载运用软件,方

49、便人们的使用,本文采用EDA技术,利用Quartus工作平台硬件描述语言,设计一种电子密码锁,并通过用FPGA芯片实现。用VHDL语言使用自顶向下的方法对系统进行了描述,并在FPGA芯片上实现。设计充分利用了FPGA的资源可编程特性,可高效率的对系统进行升级与改进。设计的密码锁可设置任意密码,比一般的四位密码锁具有更高的安全可靠性,因此,采用FPGA 开发的数字系统,不仅具有很高的工作可靠性,其升级与改进也极其的方便,应用前景十分宽广。 2、选题研究的方法与主要内容。研究方法: ,本文采用EDA技术,利用Quartus工作平台硬件描述语言,设计一种电子密码锁,并通过用FPGA芯片实现。用VHD

50、L语言使用自顶向下的方法对系统进行了描述,并在FPGA芯片上实现。主要内容:3、研究条件和可能存在的问题。研究条件: 可能存在的问题: 4、拟解决的主要问题和预期的结果。拟解决的主要问题:预期的结果:5.指导教师意见。 指导教师签名: 20 年 月 日6、教学单位意见。 教学单位负责人签名(公章): 20 年 月 日毕业设计实施过程记录表学生姓名杨琴学 号2009208060设计题目基于FPGA的电子密码锁电路设计开题阶段进展情况记录:已找到基于FPGA的电子密码锁的电路设计的相关资料。对于该论文已经有一定的写作思路。我对要开始的论文结构进行思索,再联系课堂上老师所讲的知识,了解到该论文的写作

51、步骤和相关的内容并开始收集各种资料,整理论文的设计方案和大致的内容筛选,在老师的指定帮助下在规定时间内完成了我的开题报告。指导教师意见:指导教师签名: 20 年 月 日资料收集和实施方案研究阶段进展情况记录:通过开题报告的整理,总体方向就可以大致确定,在图书馆和网上以及一些相关的教材中,收集到了不少的资料,对论文的开展有很大的帮助。在指导老师的帮助下,加强了对论文的了解,最后确定了论文的整体情况。指导教师意见: 指导教师签名: 20 年 月 日模块和系统设计阶段进展情况记录:我们在学习专业知识时对单片机的相关知识有所掌握,以及对论文的相关模块有一定了解,先进行该设计的整体计划,再结合资料,以及网上论文的参考,初步完成各个模块和软、硬件的系统设计。虽然在具体的实验中和系统的设计中,出现了不少的问题和一些不懂得地方,但在

温馨提示

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

评论

0/150

提交评论