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

加入VIP,免费下载
 

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

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

下载须知

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

版权提示 | 免责声明

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

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

1、基于FPGA的电子密码锁电路设计四川师范大学成都学院专科毕业设计 基于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.基于FPGA的电子密码锁电路设计前言 当今人们对物质的积累越来越多,觉得要如何有效的保护好自己的财产,这已成为了全社会的问题,人们对锁的要求越来越高,既要安全性很高,又要能很好的防盗,又要能让他使用很方便,这也导致了电子行业的蓬勃发展。现今的电子锁非常入人们的眼中,市场上就出现了不同款型的电子密码锁。但在实际应用中,密码锁用不同的器件来构造的系统,就会出现不同的程序故障。本文的电子密码锁是运用FPGA来编程的,所有的运算方法完全由硬件电路来实现,这使得密码锁的工作可靠性大大的提高了,而且当想改变电子密码锁的程序设计时,只需要改变FPGA中的控制电路和接口电路,用EDA工

8、具将更换后的设计码下载导入FPGA中就行了,没有必要改变外部电路的设计,很大程度的提高了电子密码锁设计的效率。 为了让电子密码锁像现在的智能手机一样,能随时更改系统,下载运用软件,方便人们的使用,本文采用EDA技术,利用Quartus工作平台硬件描述语言,设计一种电子密码锁,并通过用FPGA芯片实现。用VHDL语言使用自顶向下的方法对系统进行了描述,并在FPGA芯片上实现。设计充分利用了FPGA的资源可编程特性,可高效率的对系统进行升级与改进。设计的密码锁可设置任意密码,比一般的四位密码锁具有更高的安全可靠性,因此,采用FPGA 开发的数字系统,不仅具有很高的工作可靠性,其升级与改进也极其的方

9、便,应用前景十分宽广。1 设计背景知识介绍EDA技术是以计算机为工作平台,用相关的EDA开发软件技术为工具,以大规模可编程逻辑器件(包括CPLD,FPGA,EPLD等)为设计载体,以硬件描述语言1(Hardware Description Language,HDL)为系统逻辑描述的主要表达方式,自动完成系统算法和电路设计,最终形成电子系统或专用集成芯片的一门新技术。EDA技术研究的对象是电力或系统芯片设计的过程,可分为系统级、电路级和物理级三个层次。EDA设计领域和内容包括从低频、高频到微波,从线性到非线性,从模拟到数字,从可编程逻辑器件、通用集成电路到专用集成电路的电子自动化设计。1.1 常

10、用EDA软件介绍EDA软件可根据其复位的对象分为:用于电路级设计、分析的EDA软件,如PSpice和Multisim8等;用于数字电子电路设计的EDA软件,如Quartus等;用于射频电子电路设计的EDA软件,如ADS等;用于电路板设计及电路仿真的EDA软件,如Protel,EWB等。EDA软件根据其设计模块大致分为设计输入编辑器、仿真器(Simulator)、HDL综合器(Synthesizer)适配器(Place and Routing ,P&R)或布局布线器、下载器五大部分。EDA软件还有两种分类方法:一种是按公司类别进行分类,另一种是按功能进行分类。若按公司类别可分为两类:一类是EDA

11、专业软件公司的EDA软件,另一类是PLD厂商为了销售其产品而开发的EDA软件。若按功能分类,EDA软件可分为:集成的FPGA/CPLD开发软件、综合类软件、仿真类软件、面向ASIC设计的软件。集成的FPGA/CPLD开发软件由半导体公司提供,基本上可以完成设计输入(,基本上可以完成设计输入(状态图、原理图或文本)仿真综合布线下载到器件等PLD开发流程中的所有工作。其优势是功能全且集成化,可以加快动态调试,缩短开发周期;缺点是在综合和仿真环节与专业软件相比,都不是最优秀的。综合类软件的功能是对设计输入进行逻辑分析、综合和优化,将硬件描述语句(通常是系统级、寄存器级的描述语句)翻译成最基本的与、或

12、、非门的连接关系(网表),导出给FPGA/CPLD厂商的软件布线。为了优化设计,在进行较复杂的设计时,基本上都是用这些专业的逻辑综合软件,如ynplicity, FPGA express 、FPGA Compiler 等。仿真类软件的功能是对设计进行模拟仿真,包括布局布线前的“功能仿真”和后端的包含了门延时、布线延时等的“时序仿真”。如Modelsim, Cadence公司的NC-Verilog/NC-VHDL/NC-SIM等。面向ASIC设计的软件包括数字电路设计、模拟电路设计、数模混合设计、系统设计、仿真验证等电子设计的许多领域。这些软件对硬件环境要求高,一般的运行平台要求是工作站、UNI

13、X或Linux操作系统,其功能齐全、性能优良,一般由专门开发EDA软件的软件公司提供,如Cadence、Mentor Graphics和Synopsys等都有其特色工具。1.2 FPGA硬件设计描述FPGA出现在20世纪80年代中期,与阵列型PLD有所不同,FPGA由许多独立的可编程逻辑模块组成,用户可以通过编程将这些模块连接起来实现不同的设计。FPGA具有跟高的集成度、更强的 逻辑实现能力和更好的设计灵活性。FPGA器件具有高密度、高速率、系列化、标准化、小型化、多功能、低功耗、低成本,设计灵活方便,可无限次反复编程,并可现场模拟调试验证等特点。FPGA由可编程逻辑块(CLB)(主要由逻辑函

14、数发生器、触发器、数据选择器等电路组成)、输入/输出模块(IOB)(主要由输入触发器、输入缓冲器和输出触发/锁存器、输出缓冲器组成,IOB控制一个引脚,它们可被配置为输入、输出或双向I/O功能)及可编程互连资源(PIR)(由许多金属线段构成,这些金属线段带有可编程开关,通过自动布线实现各种电路的连接,从而实现FPGA内部的CLB和CLB之间、CLB和IOB之间的连接)等3中可编程电路和1个SPAM结构的配置存储单元组成。CLB是实现逻辑功能的基本单元,它们通常规则地排列成一个阵列,散布于整个芯片中;可编程输入/输出模块(IOB)主要完成芯片上的逻辑与外部引脚的接口,它通常排列在芯片的四周;可编

15、程互连资源(PIR)包括各种长度的连接线段和一些可编程 连接开关,它们将各个CLB之间或CLB与IOB之间以及IOB之间连接起来,构成特定功能的电路。由于LUT主要适合SRAM工艺生产,所以目前大部分FPGA都是基于SRAM工艺的,而基于SRAMA工艺的芯片在掉电后信息就会丢失,一定需要外加一片专用配置芯片,上电时由这个专用配置芯片把数据加载到FPGA中,然后FPGA就可以正常工作,由于配置时间很短,不会影响系统正常工作。也有少数FPGA采用烦熔丝或Flash工艺,对这种FPGA,就不需要外加专用的配置芯片了。 FPGA不像PLD那样受结构的限制,它可以靠门与门的连接来组成任何复杂的逻辑电路,

16、更适合实现多级逻辑功能。FPGA的编程单元基于SRAM结构,从理论上讲,具有无限次重复编程的能力。 现在最新的FPGA,具有很高的逻辑密度、很丰富的特性和很高的性能,如Xilinx Virtex系列中的部分器件,可提供八百万个“系统门”(相对逻辑密度)。这些先进的器件还提供诸如内建的硬连线处理器(如IBM Power PC)、大容量存储器、始终管理系统等,并支持多种最新的超快速器件至器件(device-to-device)的信号技术。FPGA应用范围广泛,从数据处理和存储,到仪器仪表、数字信号处理等都有使用。目前市场上有三种FPGA编程技术:SRAM、反熔丝、Flash.其中,基于SRAM工艺

17、的FPGA是迄今为止应用范围最广的架构,主要是因为它快速且具有可重复编程能力,而基于反熔丝工艺的FPGA只有一次可编程(One Time Programmable,OTP)能力基于Flash工艺的FPGA经常带来一些其他的额外成本,包括启动PROMS支持安全和保密应用的备用电池等。基于Flash和反熔丝工艺的GPGA没有这些隐含成本,因此可保证较低的总系统成本。基于SRAM工艺的FPGA这类FPGA是基于SRAM结构的可再配置型器件,上电时要将配置数据读入片内SRAM中,配置完成就可进入工作状态。掉电后SRAM中的配置数据丢失,FPGA内部逻辑关系随之消失。这类FPGA可以反复使用。基于反熔丝

18、工艺的FPGA这类FPGA内部具有反熔丝阵列开关,其逻辑功能的定义由专用编辑器根据设计实现所给出的数据文件,对其内部的反熔丝阵列进行烧录,从而使器件实现星月的逻辑功能。这类器件的缺点是只能一次性编程;优点是具有高抗干扰性和低功能,适合于要求高可靠性、高保密性的定性产品。基于Flash工艺的FPGA这类FPGA中集成了SRAM和非易失性EEPROM两类存储结构。其中SRAM用于在器件正常工作时对系统进行控制,而EEPROM则用来装载SRAM.由于这类FPGA将EEPROM集成在基于SRAM工艺的现场可编程器件中,因而可以充分发挥EEPROM中,因此不需要片外的配置芯片,有助于降低系统成本,提到设

19、计的安全性。FPGA设计流程包括系统设计和设计实现,系统方案完成之后即进入设计实现阶段的工作,他以系统方案为输入,进行RTL级描述、功能仿真(RTL级仿真)、逻辑综合、布线前门级仿真、适配(布局布线)、时序仿真(布线后门级仿真)、时序分析、器件编程、系统验证一系列流程的处理才能完成FPGA芯片的设计,其设计流程如图1.2-1所示。需要说明的是,如果仿真验证不对或者某一步有错,就要返回修改。有时要反复修改,经过多次这样的迭代才能完成最后的设计。对于FPGA的设计而言,只考虑系统级、算法级、RTL级、门级4个层次的行为域描述和结构域描述即可。上述的FPGA系统设计中的系统实际上是指系统级和算法级,

20、而“RTL级描述”主要是指RTL级行为域的描述。在门级,由综合工具产生的门级网表来描述。图1.2-1 系统设计流程1.3 Quartus综述及设计流程Quartus是Altera公司在20世纪初推出的FPGA/CPLD新一代开发软件,是Altera前一代FPGA/CPLD集成开发环境MAX+PLUS 的更新换代产品,其特点是功能强大、界面简单易懂、使用方便。适合于大规模逻辑电路设计,其设计流程概括为设计输入、设计编辑输入法,VHDL、Verilog HDL和AHDL的文本编辑输入法,符号编辑输入法,以及内存编辑输入法。Quartus软件集成了Altera 的FPGA/CPLD开发流程中所涉及的

21、所有工具和第三方软件接口。 Quartus与MATLAB和DSP Builder结合可以进行基于FPGA的DSP系统开发,是DSP硬件系统实现的关键EDA工具,与SOPC buider结合,可实现SOPC系统开发。Quartus软件的特点:支持多时钟定时分析、LogicLock基于块的设计、SOPC(可编程片上系统)、内嵌SignalTap 逻辑分析器、功率估计器等高级工具;易于引脚分配和时序约束;强大的HDL综合能力;包含有MAX+PLUS的GUI,且易于MAX+PLUS的工程平稳地过渡到Quartus开发环境;对于Fmax的设计具有很好的效果;支持的器件种类众多;支持Windows、Sol

22、aris、HP-UNIX和Linux等多种操作系统;第三方工具如综合、仿真等的链接。2 电子密码锁系统总体设计2.1 电子密码锁系统设计要求设计一个具有较高安全性和较低成本的通用电子密码锁,具体功能要求如下:数码输入:每按下一个数字键,就输入一个数值,并在显示器上的显示出该数值,同时将先前输入的数据依序左移一个数字位置。数码清除:按下此键可清除前面所有的输入值,清除为“0000”。密码更改:按下此键时会将目前的数字设定成新的密码。激活电锁:按下此键可将密码锁上锁。解除电锁:按下此键会检查输入的密码是否正确,密码正确即开锁。数字位退格:按下此键可清除最低的数字位,并使各位向右移。万能密码:为了怕

23、使用者忘记密码,系统可在设计时考虑设计一个万用密码,不论原来密码是什么,只要输入万能密码就能开锁。2.2 方案的提出方案一:采用数字电路控制。虽然采用数字密码锁电路的好处是设计简单,但是由于其是纯电路实际,在系统运行时,延时会比较严重。方案二:通过单片机实现,现在一种新的方案就是采用一种是用以AT89S51为核心的单片机控制方案。虽然有灵活的设计和丰富的IO端口,但是单片机设计的缺点是程序运行时容易出现跑飞现象。通过以上比较显然单片机方案有较大的活动空间,不但能实现所要求的功能而且能在很大的程度上扩展功能,而且还可以方便的对系统进行升级,但是由于所学知识不能将其有效的应用,现有环境不能满足,而

24、且单片机的密码锁有一定的不足之处,在运行时程序有时会产生PC指针错误,还有基于现在所学知识的应用,所以基于以上比较提出了第三种方案。方案三:利用FPGA设计电子密码锁,其成本低,设计方便(有相应的开发板),现有资源充足,实现比较容易,更利于系统的维护改进和升级,可靠性更高,更安全。通过以上比较描述,本设计采用基于FPGA的电子密码锁设计方案。2.3 系统设计和各功能模块的描述本系统为一个简洁型的电子密码锁,该系统以开发板为主要核心,采用4*4的键盘,前10个键为数字键,8个数码管显示密码输入,后面的按键实现电子密码锁的各个功能,总体外观如图2.3-1所示。图2.3-1 电子密码外观图上图为在实

25、验开发板上实现,使用开发板有十六个按键,分别对应数字0到9和各个功能键,LED显示为开发板上电子密码锁主要由四个部分组成:数字密码输入电路、密码锁控制电路、密码锁显示电路和报警模块。也就是说,设计分为四个大的功能模块。图2.3-2为数字电子密码功能模块图。密码锁输入电路包括时序产生电路、键盘扫描电路、键盘弹跳消除电路、键盘译码电路等几个小的功能电路。 模块的功能是:将用户通过键盘输入的数字密码,确认密码是否输入,产生电路中使用的三种不同频率的工作脉冲波形,即系统时钟脉冲、弹跳消除取样信号和键盘扫描信号;为了加强按键按下的准确性加了去抖模块。 密码锁控制电路包括按键数据的缓冲存储电路,密码的清除

26、、变更、存储、激活电锁电路(寄存器清除信号发生电路),密码核对(数值比较电路),解锁电路(开/关门锁电路)、报警电路等几个小的功能电路。模块功能:用于密码的更改,密码的清除,以及对密码锁的工作状态更改,对输入密码次数的计数功能,还有就是更智能化,更符合人们的思维,按键的时候都是习惯看输入数字的移位情况。图2.3-2 数字电子密码功能模块图 密码显示电路主要将显示数据的BCD码转换成相对应的编码。如,若选七段数码管显示电路,主要将待显示数据的BCD码转换成数码器的七段显示驱动编码。通过上面所描述的系统结构可知,通用的电子密码锁主要由三个部分组成:数字密码输入电路、密码锁控制电路和密码锁显示电路。

27、从图2.3-2可知:通过时序产生键盘扫描信号,由键盘输入密码或者功能按键,当然在这过程中要经过按键去抖,最后将所输入的键盘值译码得到具体的数字或者功能键;将输入值输入键盘数据存储器,在这里面可以将键盘值存储或者清除,再经过比较电路,比较输入值与原来存储的是否一致,如果一致则开启锁,如果不一致则报警(在报警后可以通过输入万能密码或者断电复位等可以解决);在经过存储电路时,同时将所输入的值通过LED显示出来,显示将通过BCD译码电路,将所获取的值显示在LED数码管上。3 系统详细设计3.1 电子密码锁输入模块3.1.1 时序产生电路本时序产生电路中使用了三种不同频率的工作脉冲波形:系统时钟脉冲(它

28、是系统内部所有时钟脉冲的源头,且其频率最高)、弹跳消除取样信号、键盘扫描信号。当一个系统中需使用多种操作频率的脉冲波形时,最方便的方法之一就是利用一计数器来产生各种需要的频率。也就是先建立一个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)取得的是一个脉冲波形序列,其值依00011011

29、0001周期性变化,其变化频率为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); -键盘扫描信号KEY IN:STD_LOGIC_VECTOR(2 DOWNTO 0);-按键输入信号KSRCLK:STD_LOGIC;-键盘输入采样时钟3.1.2 按键消抖电路由于设计采用的矩阵式键盘是机械

30、开关结构,因此在开关切换的瞬间会在接触点出现信号来回弹跳的现象。弹跳现象产生的原因是,虽然每次只是按下按键一次然后放掉,然而实际产生的按键信号却不知跳动一次,经过取样信号的检查后,将会造成误判断,以为键盘按了两次。图3.1.2-1 弹跳现象产生错误的抽样结果图3.1.2-2 调整抽样频率后得到的抽样结果因此必须加上弹跳消除电路,避免误操作信号的发生。特别要注意的是,弹跳消除电路所使用的脉冲信号的频率必须比其他电路使用的脉冲信号的频率更高;通常将扫描电路的工作频率定在100KHz左右。(图见附录1)按键消抖部分是由两个小的模块集成为一个去抖电路的,所以在此分开介绍此两个模块。Dcfq模块:dcf

31、q 模块的主要程序(图见附录2)。此段程序作用是判断输入信号是否有效, 如有效则输出,无效清零。Debouncing 模块主要程序(图见附录3)这段程序的作用就是通过对信号的分频处理,从而将按键产生的不规则信号转换为便于识别的按键信号,达到消除抖动的目的。3.1.3 键盘扫描电路扫描电路的作用是用来提供键盘扫描信号的,扫描信号变化的顺序依次为11101101101101111110依序的周而复始。每扫描一排按键就检查一次是否有键被按下,如果这排没有按键被按下就忽略,反之,如果出现被按下的键则立刻进行按键编码的动作,且将编码的结果储存于寄存器中。-扫描信号发生器 (图见附录4)键盘扫描电路的作用是提供键盘扫描信号,扫描信号变化的顺序为1110- -1101-1011-0111-1110周而复始。扫描信号0111代表扫描的为*、0、#这一排按键, 当*这个按键被按下时, 由CSR1.0读出的值为11,按键位置的数码关系如表3.1.3-1所列。表3.1.3-1 按键位置的数码关系扫描信号CSR1.0000000010101101010111111键盘输出信号SEL3.0001101010110001101010110001101010110001101010110按键号123456789*0#3.1.4 键盘译码电路在密码输入电路中,按键又分为数字按键和文字

copyright@ 2008-2022 冰豆网网站版权所有

经营许可证编号:鄂ICP备2022015515号-1