资源描述
VHDL电子密码锁毕业论文(电路图+原理图+程序+参考文献)-论文VHDL电子密码锁毕业论文(电路图+原理图+程序+参考文献)基于VHDL的家用电子密码锁的设计显示电路的设计目 录摘 要IIABSTRACTIII第一章 绪论11-1 电子密码锁的综述11-2电子密码锁的实现功能与方法11-3电子密码锁的意义1第二章 课题研究的技术平台32-1课题研究的背景32-2课题研究所需要的开发软件3第三章 电子密码锁的设计73-1键盘接口电路73-2 控制电路83-3 显示电路9第四章 密码锁显示局部的设计114-1显示局部的设计114-2 显示电路局部的仿真12第五章 硬件的实现165-1 FPGA的简介165-2 硬件实现18结束语19参考文献20致谢21附录22 基于VHDL的家用电子密码锁的设计显示电路的设计内容摘要本篇论文主要介绍了基于FPGA的电子密码锁的设计,本设计采用先进的EDA技术,基于MAX+PULS2平台和VHDL语言进行设计。MAX+PULS2是一款集多种功能于一体的辅助设计软件。它具有丰富多样的编辑功能、强大便捷的自动化设计能力、完善有效的检测工具、灵活有序的设计管理手段,它为用户提供了极其丰富的数字逻辑元件。以及出色的在线库编辑和库管理,良好的开放性还使它可以兼容多种格式的设计文件。EDA技术的应用引起了电子系统产品开发的革命性变革。利用先进的EDA工具,基于硬件描述语言,可以进行系统级数字逻辑电路的设计。而VHDL非常适用于可编程逻辑器件的设计,尤其在大容量的CPLD和FPGA的应用设计中。VHDL能够提供高级的语言结构,方便描述电路,可以快速的完成的设计。同时,它支持设计单元库的建立,可以从复使用设计中的顶层元件。关键词 : 电子密码锁 VHDL MAX+PULS2 EDA FPGABased on VHDL home use electronic combination lock design- - display circuits designABSTRACTThis paper introduces the FPGA-based design of electronic locks, the design of advanced EDA technology, based on the MAX + PULS2 platform and VHDL design languages. MAX + PULS2 is a multi-functional in one-aided design software. It has a variety of editing features, a powerful and convenient design of the automated ability to detect sound, efficient tool for the design of an orderly and flexible management tools, which provide users with an extremely rich component of the digital logic. Excellent online database, as well as editing and database management, and good also that it can open a variety of formats compatible with the design documents. EDA technology electronic systems led to revolutionary changes in product development. The use of advanced EDA tools, hardware description language-based, can be system-level design of digital logic circuits. And VHDL is very applicable to the design of programmable logic devices, particularly in the large-capacity applications CPLD and FPGA design. VHDL can provide high-level language structure, to facilitate description of the circuit can be completed faster design. At the same time, it supports the establishment of cell library design, you can use from the complex design of the top-level components.Key words: Electronic combination lock VHDL MAX+PULS2 EDA FPGA1088VHDL电子密码锁毕业论文(电路图+原理图+程序+参考文献)第一章 绪论 1-1 电子密码锁的综述目前使用的电子密码锁大多是基于单片机进行设计的,针对基于单片机的电子密码锁的缺乏之处,介绍了一种基于FPGA的电子密码锁的设计方法.采用VHDL语言使用自顶而下的方法对系统进行了描述,并用一片FPGA芯片实现。设计充分利用了FPGA芯片密度大、功耗低、可重复编程和具有嵌入式阵列块的结构特点,从而大大简化了系统结构,降低了本钱,提高了系统的保密性和可靠性,可高效率的对系统进行升级与改良1。1-2电子密码锁的实现功能与方法设计一个具有较高平安性和较低本钱的通用电子密码锁,具体功能要求如下:1数码输入2数码去除3密码更改4激活电锁5解除电锁实现方法:1利用单片机进行设计2基于FPGA芯片设计基于单片机设计的缺点:1其编码器与解码器的生成为软件方式2系统的可靠性差基于FPGA芯片设计的优点:1用FPGA器件构造系统,所有的算法完全由硬件电路来实现,使得系统的可靠性大为提高。2FPGA具有现场可编程功能,当设计需要更改时,只需改FPGA中的控制电路和接口电路,利用EDA工具,将更新后的设计下载到FPGA中即可,无需更改外部电路的设计,大大提高了设计效率。3采用FPGA开发的系统,不仅具有很高的工作可靠性,而且升级也很方便2。因此,本文采用先进的EDA技术,利用MAX+PLUS工作平台和VHDL语言进行仿真与设计。1-3电子密码锁的意义现在市场上主要是基于单片机技术的电子密码锁,但可靠性较差。FPGA即现场可编程门阵列,它是在PAL、GAL、EPLD等可编程器件的根底上进一步开展的产物,是一种超大规模集成电路,具有对电路可重配置能力。通常FPGA都有着上万次的重写次数,也就是说现在的硬件设计和软件设计一样灵活、方便。相对于基于单片机技术的电子密码锁,用FPGA器件来构成系统,可靠性提高,并且由于FPGA具有的现场可编程功能,使得电子密码锁的更改与升级更为方便简单。家用电子密码锁是一种通过密码输入来控制电路或是芯片工作,从而控制机械开关的闭合,完成开锁、闭锁任务的电子产品。它的种类很多,有简易的电路产品,也有基于芯片的性价比较高的产品。现在应用较广的电子密码锁是以芯片为核心,通过编程来实现的。其性能和平安性已大大超过了机械锁,特点如下:保密性好,编码量多,远远大于弹子锁。随机开锁成功率几乎为零。密码可变, 用户可以经常更改密码,防止密码被盗,同时也可以防止因人员 的更替 而使锁的密级下降。误码输入保护,当输入密码屡次错误时,报警系统自动启动。电子密码锁操作简单易行,一学即会。体积小、功耗低、价格廉价,维护和升级都十分方便。通过本次设计掌握FPGA系统设计的方法,熟悉FPGA设计的相关软件,以及硬件描述语言的使用,了解电子密码锁的系统构成,利用FPGA实现电子密码锁的设计与实现,可以加深自己对所学专业的认识,关联知识,增强自己的动手能力,积累实践经验,为以后的工作打好根底。 第二章 课题研究的技术平台2-1课题研究的背景随着人们生活水平的提高和平安意识的加强,对平安的要求也就越来越高。锁自古以来就是把守护门的铁将军,人们对它要求甚高,既要平安可靠的防盗,又要使用方便,这也是制锁者长期以来研制的主题。随着电子技术的开展,各类电子产品应运而生,电子密码锁就是其中之一。据有关资料介绍,电子密码锁的研究从20世纪30年代就开始了,在一些特殊场所早就有所应用。这种锁是通过键盘输入一组密码完成开锁过程。研究这种锁的初衷,就是为提高锁的平安性。由于电子锁的密钥量极大,可以与机械锁配合使用,并且可以防止因钥匙被仿制而留下平安隐患3。电子锁只需记住一组密码,无需携带金属钥匙,免除了人们携带金属钥匙的烦恼,而被越来越多的人所欣赏。电子锁的种类繁多,例如数码锁,指纹锁,磁卡锁,IC卡锁,生物锁等。但较实用的还是按键式电子密码锁。目前,在西方兴旺国家,电子密码锁技术相对先进,种类齐全,电子密码锁已被广泛应用于智能门禁系统中,通过多种更加平安,更加可靠的技术实现大门的管理。在我国电子锁整体水平尚处于国际上70年代左右,电子密码锁的本钱还很高,市场上仍以按键电子锁为主,按键式和卡片钥匙式电子锁已引进国际先进水平,现国内有几个厂生产供给市场。但国内自行研制开发的电子锁,其市场结构尚未形成,应用还不广泛。国内的不少企业也引进了世界上先进的技术,开展前景非常可观。希望通过不断的努力,使电子密码锁在我国也能得到广泛应用。2-2课题研究所需要的开发软件2-2-1 EDA技术的介绍EDA是电子设计自动化Electronic Design Automation的缩写,它是指以计算机为工作平台,并且融合了应用电子技术、计算机技术、智能化技术最新成果而研制成的电子CAD通用软件包,主要能辅助进行三方面的设计工作,即IC设计、电子电路设计和PCB设计。20世纪90年代,国际上电子和计算机技术较先进的国家,一直在积极探索新的电子电路设计方法,并在设计方法、工具等方面进行了彻底的变革,取得了巨大成功。在电子技术设计领域,可编程逻辑器件如CPLD、FPGA的应用,已得到广泛的普及,这些器件为数字系统的设计带来了极大的灵活性。这些器件可以通过软件编程而对其硬件结构和工作方式进行重构,从而使得硬件的设计可以如同软件设计那样方便快捷。这一切极大地改变了传统的数字系统设计方法、设计过程和设计观念,促进了EDA技术的迅速开展。2-2-2 VHDL语言特点和根本结构VHDL语言即超高速集成电路硬件描述语言,它是一种用形式化方法描述数字电路和设计数字逻辑系统的语言,特别适合描述复杂的组合逻辑、组运算、状态机和真值表。与传统的门级设计方法相比,VHDL语言具有以下特点:VHDL电子密码锁毕业论文(电路图+原理图+程序+参考文献)与其他的硬件描述语言相比,VHDL具有更强的行为描述能力,从而决定了他成为系 统设计领域最正确的硬件描述语言。强大的行为与描述能力是避开具体器件结构,从逻辑行为上描述和设计大规模电子系统的保证。就目前流行的EDA工具VHDL综合器而言,将基于抽象的行为描述风格的VHDL程序综合成为具体的FPGA和CPLD等目标器件的网表文件已经不成问题,只是在综合与优化效率上略有差异。VHDL具有丰富的仿真语句和库函数,使得在任何大系统的设计早期,就能查验设计系统的功能可行性,随时可对系统进行仿真模拟,使设计者对整个工程的结构和功能可行性做出判断VHDL语句的行为描述能力和程序结构,决定了它具有支持大规模设计的分解和已有设计的再利用功能。符合市场需求的大规模系统高效、高速的完成必须有多人甚至多个开发组共同并行工作才能实现,VHDL中设计实体的概念、程序包的概念、设计库的概念为设计的分解和并行工作提供了有利的支持。用VHDL完成一个确定的设计,可以利用EDA工具进行逻辑综合和优化,并自动把VHDL描述设计转变为门级网表。这种方式突破了门级设计的瓶颈,极大的减少了电路设计的时间和可能发生的错误,降低了开发本钱。利用EDA工具的逻辑优化功能,可以自动的把一个综合后的设计变成一个更小的、更高速的电路系统。反过来,设计者还可以容易地从综合和优化的电路获得设计信息,返回去更新、修改VHDL的设计描述,使之更加完善。VHDL对设计的描述具有相对独立性。设计者可以不懂硬件的结构,也不必管最终的设计的目标器件是什么,而进行独立的设计。正因为VHDL的硬件描述与具体的工艺技术和硬件结构无关,所以VHDL设计程序的硬件实现目标器件有广阔的选择范围,其中包括各种系列的CPLD、FPGA及各种门阵列器件。由于VHDL具有类属描述语句和子程序调用等功能,对于完成的设计,在不改变源程序的条件下,只需改变类属参量或函数,就能轻易地改变设计规模和结构。 设计层次高,用于较复杂的运算时能尽快发现问题,缩短产品上市时间,从而本钱降低;与工艺无关,独立实现,修改方便,系统描述能力强;可读性好,有利于交流,适合文档保存;VHDL标准、标准并且可移植性强:VHDL类型多且支持用户自定义类型,也支持自顶向下的设计方法和多种电路设计4。 VHDL语言程序设计的根本语法结构如图2-1所示:图2-1VHDL语言程序设计的根本语法结构 2-2-3 MAX+PLUS的介绍 Max+plusII(或写成Maxplus2,或MP2) 是Altera公司推出的的第三代PLD开发系统(Altera第四代PLD开发系统被称为:Quartus,主要用于设计6万-100万门的大规模CPLD/FPGA).使用MAX+PLUSII的设计者不需精通器件内部的复杂结构。设计者可以用自己熟悉的设计工具如原理图输入或硬件描述语言建立设计,MAX+PLUSII把这些设计转自动换成最终所需的格式。其设计速度非常快。对于一般几千门的电路设计,使用MAX+PLUSII,从设计输入到器件编程完毕,用户拿到设计好的逻辑电路,大约只需几小时。设计处理一般在数分钟内内完成。特别是在原理图输入等方面,Maxplus2被公认为是最易使用,人机界面最友善的PLD开发软件,特别适合初学者使用。MAX+PLUS开发系统是一个完全集成化、易学易用的可编程逻辑设计环境,它可以在多种平台上运用。它所提供的灵活性和高效性是无可比较的。其丰富的图形界面,辅之以完整的、可及时访问的在线文档,使学生能够轻松掌握和使用MAX+PLUS软件。 MAX+PLUSII 普遍认为MaxplusII曾经是最优秀的PLD开发平台之一,适合开发中小规模PLD/FPGA5。 MAX+plus 设计流程数字系统的设计采用自顶向下、由粗到细,逐步分解的设计方法,最顶层电路是指系统的整体要求,最下层是具体的逻辑电路的实现。自顶向下的设计方法将一个复杂的系统逐渐分解成假设干功能模块,从而进行设计描述,并且应用EDAEDA 软件平台自动完成各功能模块的逻辑综合与优化,门级电路的布局,再下载到硬件中实现设计。 使用Max+plus软件设计流程由以下几局部组成。如下2-2图所示。2-2 软件设计流程 第三章 电子密码锁的设计本次设计主要由键盘接口电路、控制电路和显示译码电路三局部组成。其硬件结构图如图3-1所示。其中输入局部包括43矩阵键盘、弹跳消除电路、键盘译码电路、键盘扫描电路;控制局部包括按键存储电路、密码存储电路、比较电路;输出局部包括多路选通器、七段译码器、扫描信号发生器。其中键盘扫描模块、弹跳消除模块、键盘译码模块、控制模块、多路选通模块、七段译码模块都是通过软件实现的。图3-1电子密码锁的硬件结构3-1键盘接口电路键盘接口电路包括键盘矩阵的工作原理及运用、时序产生电路、键盘扫描电路、弹跳消除电路、键盘译码电路和按键存储电路。键盘矩阵的工作原理及运用:本次设计选用的是43矩阵键盘,它是用4条I/O线作为行线,3条I/O线作为列线组成的键盘。在行线和列线的每一个交叉点上,设置一个按键,当某键被按下时,该按键的接点会连接行线和列线,这样有按键按下时行线呈现逻辑0的状态,未按下时那么呈现逻辑1状态。键盘电路的工作原理是通过行线送入扫描信号,然后从列线读取状态判断是否有按键按下。其方法是依次给行线送低电平,检查列线的输出。如果列线信号为高电平, VHDL电子密码锁毕业论文(电路图+原理图+程序+参考文献)那么代表低电平信号所在的行中无按键按下;如果列线输入为低电平,那么低电平信号所在的行和出现低电平的列的交点处有按键按下。扫描信号由KY3KYO进入键盘,变化的顺序依次是:11101101101101111110,每次扫描一行,依序循环。假设现在扫描信号为1101,即扫描“4、“5、“ 6这一排按键,如果这排当中没有按键被按下的话,那么列扫描信号KX2-KXO读出的值为111;反之,当“6按键被按下时那么由KX2-KXO读出的值为110,其它依次类推。由于矩阵式键盘是无法单独地完成按键工作的,要搭配时序产生电路、键盘扫描电路、弹跳消除电路、键盘译码电路才能可靠工作6。键盘上的有效数据是0到9这十个数字键和两个功能键*键:修改密码键;#键:输入数字小于四位时按下此键表示去除键,输入数字等于四位时表示开锁键。键盘扫描电路键盘扫描电路是用于产生KY3-KY0信号,即键盘的行扫描信号。每扫描一排按键,就检查一次是否有按键被按下,如果这排没有按键被按下就忽略。反之,如果出现被按下的键那么立即进行按键编码的动作,且将编码的结果存储于存放器中。扫描停留在每个状态的时间大约为10ms。更短的停留时间容易采集到陡动信号,会干扰判断。而太长的停留时间那么容易丧失某些较快的按键动作。 弹跳消除电路因为本次设计的按键采用机械式开关结构,在开关切换的瞬间会在接触点出现来回弹跳的现象,这种弹跳现象可能造成误动作而影响到正确性。本设计中采用延时的软件方法消除抖动,假设采样信号检测到输入由“1变到“0或由“0变为“1,先延时2个周期 ,仍旧检测到是“0或“1,那么说明按键状态确实发生了变化,否那么当作抖动处理,不予理会。这样就消除了抖动。键盘译码电路上述键盘中的按键可分为数字按键和功能按键,每个按健都有自己相应的作用,比方#键可以去除密码和开锁,*键可以设置密码。数字按键主要用来输入数字,键盘所产生的输出(KX2-KXO)无法直接拿来使用,因此必须由键盘译码电路来规划每个按键的输出形式,以便执行相应的动作7。3-2 控制电路输入电路完成之后,接下来进行电子密码锁的控制电路设计,如图3-2所示包括输入数字存放局部,预存密码局部和比较局部。 图3-2 控制局部结构框图 其中输入数字存放器局部是一个16位的存放器,负责保存输入的4位数字,在按下解锁信号后其全部数据送入比较器,解锁后,如果按下更改密码按键,那么把所有数据送入预存密码存放器8。预存密码存放器也是一个16位的存放器,负责保存密码。比较器的功能是比较输入的数字和预存密码是否相等,相等那么解锁,不等那么不能解锁。如果输入数字,第一个数字会从显示器的最右端显示,每按一个新数字,显示器上的数字往左移动一格,以便将新数字显示出来;如果想更改输入的数字,按去除键去除所有输入的数字,再重新输入4位数。因为设计的是四位电子密码锁,当输入的数字键超过4个时,电路不予理会,且不显示第四个以后输入的数字。功能按键的作用如下:(1) 密码核对:在密码变更、解除电锁之前,必须先核对密码是否正确。(2) 密码变更:按下此键可将目前的数字设定成新的密码。要变更密码前须输入旧的密码。(3) 上锁:按下此键可将密码锁上锁。上锁之前必须先设定密码,才能上锁,此密码必须是四位才有效。(4) 解锁:检查输入的密码是否正确,密码正确即开锁。 (5) 密码去除:设计一个四位数字,如果使用者不小心按错数字,可以去除并新输入新密码9。3-3 显示电路该设计的输出电路由显示缓存器、多路选通器、时钟发生器、扫描信号发生器、七段译码器组成 一个七段译码器SSD接收四路信号,表示一个二进制码的4个比特位,并产生七个输出信号用来驱动7sd中的7个段。因此,比方,如果SSD输入为“0000,那么除了“g,所有的输出都有效在7sd中显示“0,如果输入为“1000,那么所有的输出都有效显示“8。一般来说,输入信号名称为B3-B0,输出信号是一个字母用于表示其驱动的段A-F。和上面讨论的一样,七个输出中的每一个都可以被认为是一个独立的4输入逻辑设计问题,使用前面讨论的技术可以很容易的找出每个输出的优化电路。在这一章节实验中,我们将把系统作为一个整体并使用不同的方法来优化它,即同时考虑 所有七个输出8。如图3-3所示:图3-3译码驱动数码管 比方,如果只有b和c段亮,而其它段不亮,那么就显示数字“1;如果a,b和c段亮,而其它段不亮,那么就显示数字“7。为了能在任何给定的发光二极管段上产生发光电流,就需要有一个逻辑信号通过该段发光二极管。在典型的7sd电路中,在发光二极管的阴极会放置一个限流电阻,在阳极端放置一个三极管来提供额外的电流绝大多数数字ICs中的引脚,比方Digilent板卡中的FPGA都不能提供足够的电流来点亮所有的显示段,所以有必要使用一个三极管来提供更多的电流。为了能够显示所有10个十进制数字,在7sd中就需要7个逻辑信号,每个逻辑信号驱动一段。通过让这些逻辑信号的指定组合有效,那么就可以显示所有10个十进制数字了10。 Digilent板卡使用通用的阳极显示,意思是所有给定数字的阳极节点都连接在一起作为共用的的电路节点,如下图。为了在给定数字中点亮给定的段,在数字阴极必须加上LHV,在段的阴极加上GND。VHDL电子密码锁毕业论文(电路图+原理图+程序+参考文献)第四章 密码锁显示局部的设计 4-1显示局部的设计该设计的输出电路由显示缓存器、多路选通器、时钟发生器、扫描信号发生器、七段译码器组成,其结构和模块划分如图4-1所示。图4-1 显示局部结构和模块 其中显示缓存器是一个存储量为16位的存放器,它用于存储LED显示的内容。所以4个数码管就需要16位的存储器。多路选通器用于从显示缓存器中选择出某一个LED的内容用于显示。扫描信号用于选择片选信号,片选信号依次并循环地选通各个LED管时钟发生器,通过对全局时钟的分频得到扫描模块所需的时钟。七段译码模块把4位BCD码译成便于显示的七段码。该显示电路的工作过程如下:存放器所存储的数据经由数据选择器送到译码电路, 将其转换成七段显示器的显示码, 转送到七段显示器, 数据选择与显示管选择必须同步11。由于设计的是4位数的数字密码锁, 一位十进制数需要4个二进制位表示, 所以存放器必须是16 位的。因为是以扫描的方式轮流被点亮的, 因此存放器上的数据必须一组一组地分开传送, 每次送4个位。如图4-2所示是一个七段译码器和七段数码管示意图:图4-2七段译码器和七段数码管示意图其中A,B,C,D 接拨号开关,a,b,c,d,e,f,g 接数码显示接口,管脚映射均为I/O 口,映射后,通过拨号开关改变输入二进制码,那么输出数码管上显示相应的数值。如图4-3所示:图4-3 BCD七段译码器真值表显示的方式可分为两种:静态显示和动态显示。4个LED数码管以静态的方式显示时,需要用到8X4条引脚线。在较为复杂的系统中,FPGA的引脚端资源是有限的。对于多个LED数码管显示,我们采用动态扫描的方式来实现LED数码管的动态显示。实现方法是依次点亮各个数码管,循环进行显示,利用人的视觉暂留特性,可以得到多个数码管同时显示的效果。采用扫描方式来实现LED数码管动态显示,控制好数码管之间的延时是相当重要。根据人眼视觉暂留原理,LED数码管每秒导通16次以上,人眼就无法分辨LED数码管暂时不亮,认为是一直点亮的12。4-2 显示电路局部的仿真该密码锁利用ALTERA公司的仿真软件MAX+PLUS对所设计的电子密码锁进行编译和综合仿真,其仿真程序为:display :LIBRARY IEEE;USE IEEE.STD_LOGIC_1164.ALL;USE IEEE.STD_LOGIC_ARITH.ALL;USE IEEE.STD_LOGIC_UNSIGNED.ALL;-*ENTITY display isPORT( CLK : in STD_LOGIC; -system clock C_DISPLAY : in STD_LOGIC_VECTOR(1 DOWNTO 0) ; -CLK for display ACC : in STD_LOGIC_VECTOR (15 downto 0); -digit data 4 numbers DBOUT : OUT STD_LOGIC_VECTOR(3 DOWNTO 0) ; -showing data SEGOUT: OUT STD_LOGIC_VECTOR(6 DOWNTO 0); - SEG7 Display O/P SELOUT: OUT STD_LOGIC_VECTOR(3 DOWNTO 0) - Select SEG7 O/P : STD_LOGIC_VECTOR( 3 DOWNTO 0);- Select SEG7 SignalSignal S : STD_LOGIC_VECTOR(1 DOWNTO 0) ; - display scan sequenceBEGINConnection : BlockBeginSELOUT = SEL ;- Seg7 Disp Selection SEGOUT(6 DOWNTO 0) = SEG;- Seven Segment DisplayS = C_DISPLAY ;DBOUT = DB ;End Block Connection;-*-*MULTIPLEXER : BLOCKBEGINVHDL电子密码锁毕业论文(电路图+原理图+程序+参考文献)- to decide which data will send out DB = ACC(15 DOWNTO 12) WHEN S = 0 ELSE ACC(11 DOWNTO 8) WHEN S = 1 ELSE ACC(7 DOWNTO 4) WHEN S = 2 ELSE ACC(3 DOWNTO 0) ;- to decide which 7_segment can display SEL Segment 7 CodeBegin -gfedcbaSEG = 0111111 WHEN DB = 0 ELSE 0000110 WHEN DB = 1 ELSE1011011 WHEN DB = 2 ELSE1001111 WHEN DB = 3 ELSE1100110 WHEN DB = 4 ELSE1101101 WHEN DB = 5 ELSE1111101 WHEN DB = 6 ELSE 0000111 WHEN DB = 7 ELSE1111111 WHEN DB = 8 ELSE1101111 WHEN DB = 9 ELSE0001000;End Block SEVEN_SEGMENT;END a;仿真结果如图4-4所示:图4-4显示电路局部的仿真图仿真说明:通常为了降低功率的需求,会采用依序扫描的方式即为动态显示轮流点亮多个七段显示器。当本程序和其他两个局部电路整合时,只剩下SEGOUT和SELOUT两个依然为输入接口的管脚,其余将以SIGNAL的方式定义为内部信号。显示电路只会显示数字按键所产生的数码,而不会显示功能按键所产生的数码。第五章 硬件的实现 5-1 FPGA的简介FPGA采用了逻辑单元阵列LCALogic Cell Array这样一个新概念,内部包括可配置逻辑模块CLBConfigurable Logic Block、输出输入模块IOBInput Output Block和内部连线Interconnect三个局部。FPGA的根本特点主要有: 1.采用FPGA设计ASIC电路,用户不需要投片生产,就能得到合用的芯片。FPGA可做其它全定制或半定制ASIC电路的中试样片。2.FPGA内部有丰富的触发器和IO引脚。3.FPGA是ASIC电路中设计周期最短、开发费用最低、风险最小的器件之 一。4.FPGA采用高速CHMOS工艺,功耗低,与CMOS、TTL电平兼容。可以说,FPGA芯片是小批量系统提高系统集成度、可靠性的最正确选择之一。FPGA有多种配置模式:并行主模式为一片FPGA加一片EPROM的方式;主从模式可以支持一片PROM编程多片FPGA;串行模式可以采用串行PROM编程FPGA;外设模式可以将FPGA作为微处理器的外设,由微处理器对其编程13。CPLD/FPGA介绍可编程逻辑器件PLD(Programable Logic Device)是允许用户编程(配置)实现所需逻辑功能的电路, 它与分立元件相比,具有速度快、容量大、功耗小和可靠性高等优点。由于集成度高,设计方法先进、现场可编程,可以设计各种数字电路,因此,在通信、数据处理、网络、仪器、工业控制、军事和航空航天等众多领域内得到了广泛应用14。不久的将来将全部取代分立数字元件,目前一些数字集成电路生产厂商已经停止了分立数字集成电路的生产。因此应该学会PLD的设计技术。 PLD电路早期代表产品由XLINX公司推出的门阵列,称为FPGAField Programable Gate Array,随后ALTERA公司推出以并行走线的PLD产品,称为CPLDComplex Programable Logic Device,这些早期产品价格高达万元,其开发软件价格高达几十万元。但是随着生产技术水平的提高,现在PLD产品的价格已大大降低,一片5000门、具有5K X 8的SRAM电路作配置、84脚封装、速度达40200MHz的PLD的价格已经下降到一百元以下。每一片这样的PLD可以设计成单片机、或者是CPU等,并且可以在外部接线完成以后还可以重新进行设计屡次15。本课题根据实际条件,采用本校实验室的KHF1型FPGA实验箱。实验系统由主板和下载板组成,能够满足实验的需要,同时也可用作FPGA应用系统,用户能够使用实验板上的2个标准26针插座CMO6、COM7进行外扩。在主板上设有开关量输入按扭、脉冲信号输入开关、LED数码管显示器、LED发光二极管、键盘等,可进行计数器、移位存放器、扫描显示、加法器、A/D转换器、分频器等几十种数字电路与系统的实验。下载板采用了Altera公司生产的引脚为208、集成度为3 万门FPGA芯片EP1K30QC2083,具有芯片集成度高、内部资源丰富、用户可用引脚多等显著优点,不易出现芯片内部资源尚有空余而芯片引脚已经用完的情况。本实验系统在PC机上还配有一个专用下载软件,供用户下载程序。当串行通信电缆分别与下载板和PC机相连后,通过次界面可以将在MAX+PLUS下编写的电路进行下载、写EEPROM和读EEPROM。1时钟源本实验系统有22.1184M,10M晶振,4M晶振,分别接在CPLD芯片的管脚P80,P183,P184,为实验板提供时钟信号。同时,为了方便操作,还为系统提供了约1Hz-1MHz连续可调的时钟信号,接至CPLD/FPGA的P78脚,通过调节短路夹J1和J2来改变其输出的频率值。2输入开关其中16个数据开关与CPLD/FPGA管脚的连接情况依次为:SW1-P28,SW2-P29,SW3-P30,SW4-P31,SW5-P38,SW6-P39,SW7-P40,SW8-P41,SW9-P44,SW10-P45,SW11-P46,SW12-P47,SW13-P53,SW14-P54,SW15-P55,SW16-P56。同时与数据开关和CPLD/FPGA相应引脚相连的还有16个LED显示管,可以作为输出使用。KHF-1型CPLD/FPGA实验开发系统有10个数码管SEG1-SEG10,采用共阴极8段LED数码管。其中SEG1-SEG6采用静态显示方式,SEG7-SEG10采用动态扫描显示方式。3数码显示本实验系统有10个数码管SEG1SEG10,采用工阴8段LED数码管。其中SEG1SEG6采用静态显示方式,SEGSEG10采用动态扫描显示方式。4小键盘主板上有一组矩阵式3*4小键盘,行线从上至下连接CPLD/FPGA的管脚P119,P120,P121,P122。列线从左至右连接CPLD/FPGA的管脚P111,P112,P115,P116。VHDL电子密码锁毕业论文(电路图+原理图+程序+参考文献)5-2 硬件实现图5-2硬件实现图 结束语本次毕业设计可以说是大学四年的一次总结,是所学知识的一次重要的综合性运用,在这次设计中,我把重点放在了新知识的学习以及设计流程中的程序仿真和模块分析上。在设计过程中,需要解决的问题都是些很具体的问题,这和以往有很大的区别。以往要解决问题只要求我们在局部解答,各种条件都是的,解决方案可以在已学的课本知识中得到。而这次设计中碰到的难题,要求我们通过网络知识的搜集和去图书馆相关资料的查询来解决,增强了我们依靠资源共享解决实际问题的能力。 在这次毕业设计的过程中,我学到了很多东西,锻炼了自己独立学习的能力。在与导师和同学的讨论过程中,也看到了自己的缺乏,更鼓励我要努力。感谢我的老师和同学给予我的帮助,同时也让我体会到成功带来的喜悦。参考文献1 潘松,王国栋EDA技术与VHDLM杭州电子科技大学出版社,20052 李景华,杜玉远可编程逻辑器件与EDA技术M东北大学出版社,20003 陈琼,潘礼 FPGA系统设计与实践M. 电子工业出版社,20054 徐志军、徐光芒.CPLD/FPGA的开发与应用M.电子工业出版社,2002;5 蒋璇、臧春华,数字系统设计与PLD应用技术M.电子工业出版社,2001;6 Altera Digital Library,Altera Corporation M.Altera,2002;7 王小军.VHDL简明教程M.北京:清华大学出版社;8 周期成.电子设计硬件描述语言M.北京:清华大学出版社;9 潘松,黄继业. EDA技术与VHDLM.清华大学出版社,2005;10 康华光,电子技术根底-数字局部M.高等教育出版社,1991;11 黄仁欣,EDA技术实用教程M.北京:清华大学出版社;12 杨晓慧、杨永健,基于FPGA的EDA/SOPC技术与VHDLM.国防工业出版社;13宁爱民. 应用AT89C2051 单片机设计电子密码锁J . 淮海工学院学报,2003 :14刘钰、张有志.一种用VHDL语言设计的数字密码锁J .信息技术与信息化, 2004:15谭会生、瞿遂春. EDA技术综合应用实例与分析M .西安: 西安电子科技大学出版社:致谢经过一个学期的努力,通过老师的耐心指导,终于圆满完成了本次毕业设计。在此次设计中首先要感谢我的指导老师黄寒华, 她严谨的科学态度,严谨的治学精神,精益求精的工作作风,深深的感染并鼓励着我。从课题的选择到最后的完成,黄老师都给我耐心的指导和不懈的支持,在此谨向黄老师致以诚挚的谢意和崇高的敬意。其次,我还要感谢大学四年来所有指导过,教育过我的老师们,正是你们不倦的教诲,使我打下了扎实的专业根底;同时还要感谢所有的同学们,正是因为有了你们的支持和鼓励,此次毕业设计才会顺利完成。由于本人学识能力有限,定有许多缺乏之处,恳请辩论场各位老师多多指正.同时,感谢你们为我付出的心血。VHDL电子密码锁毕业论文(电路图+原理图+程序+参考文献)总体程序清单:LIBRARY ieee;USE ieee.std_logic_1164.ALL;USE IEEE.STD_LOGIC_ARITH.ALL ;USE IEEE.STD_LOGIC_UNSIGNED.ALL ;LIBRARY altera;USE altera.maxplus2.ALL;NTITY lock ISPORT ( CLK : IN STD_LOGIC ; -system original clock 4MHzkEY_IN : IN STD_LOGIC_VECTOR (3 downto 0) ; -KEY IN button codeCLK_SCAN : OUT STD_LOGIC_VECTOR (3 downto 0) ; -scan sequenceBIBI : OUT STD_LOGIC ; -bit overflow alarm ENCLOCK : OUT STD_LOGIC ; -1:lock 0:unlockSEGOUT : OUT STD_LOGIC_VECTOR (6 DOWNTO 0) ; -seg7 display O/PSELOUT : OUT STD_LOGIC_VECTOR (3 DOWNTO 0) -Select seg7 O/P );END lock ;ARCHITECTURE a OF lock IS COMPONENT keyboardPORT ( CLK : IN STD_LOGIC ; -system original clockKEY_IN : IN STD_LOGIC_VECTOR (3 downto 0) ; -KEY IN button codeCLK_SCAN : OUT STD_LOGIC_VECTOR (3 downto 0) ; -scan sequence OUT_NUMB : OUT STD_LOGIC_VECTOR(3 downto 0) ;OUT_FUNC : OUT STD_LOGIC_VECTOR(7 downto 0) ;FLAG_NUMB : OUT STD_LOGIC ;FLAG_Func : OUT STD_LOGIC ); END COMPONENT ;COMPONENT displayPORT ( CLK : in STD_LOGIC; -system clockACC : in STD_LOGIC_VECTOR (15 downto 0); -digit data 4 numbers SEGOUT : OUT STD_LOGIC_VECTOR(7 DOWNTO 0); - SEG7 Display O/P SELOUT : OUT STD_LOGIC_VECTOR(3 DOWNTO 0) - Select SEG7 O/P ); END COMPONENT ;SIGNAL BU_1 : STD_LOGIC_VECTOR(3 downto 0) ; -OUT_NUMBSIGNAL BU_2 : STD_LOGIC_VECTOR(6 downto 0) ; -OUT_FUNCSIGNAL BU_3 : STD_LOGIC ; -FLAG_NUMBSIGNAL BU_4 : STD_LOGIC ; -FLAG_FUNCSIGNAL BU_5 : STD_LOGIC ; -ACC SIGNAL BU_6 : STD_LOGIC ; -C_DISPLAY-SIGNAL BU_7 : STD_LOGIC_VECTOR (15 DOWNTO 0) ; -C_DEBOUNCE-SIGNAL BU_7 : STD_LOGIC_VECTOR (1 DOWNTO 0) ; -NUMB_CNTBEGIN-*-SYSTEN CONNECTIONCONNECTION : BLOCK BEGINU1:KEYBOARD PORT MAP (CLK, KEY_IN, BU_1, BU_2, BU_3, BU_4, CLK_SCAN, BU_6 ) ;-KEYBOARD PORT (clk, key_in, out_numb, out_func, flag_numb, flag_Func,clk_scan,C_DEBOUNCE); U2:DISPLAY PORT MAP (CLK, BU_5, SELOUT, SEQOUT) ;-( CLK, ACC, SEGOUT, SELOUT);U3:CTRL PORT MAP (CLK, BU_1, BU_2, BU_3, BU_4, ENLOCK, BIBI, BU_5)-(CLK, OUT_NUMB, OUT_FUNC, FLAG_NUMB, FLAG_FUNC, BIBI, NUMB_CNT, BCD_CODE, );END BLOCK CONNECTION ;END OF a ;display :LIBRARY IEEE;USE IEEE.STD_LOGIC_1164.ALL;USE IEEE.STD_LOGIC_ARITH.ALL;USE IEEE.STD_LOGIC_UNSIGNED.ALL;-*ENTITY display isPORT( : OUT STD_LOGIC_VECTOR(6 DOWNTO 0); - SEG7 Display O/P SELOUT: OUT STD_LOGIC_VECTOR(3 DOWNTO 0) - Select SEG7 O/P);END display ;-*ARCHITECTURE a OF display ISSIGNAL DB : STD_LOGIC_VECTOR( 3 DOWNTO 0);- Number Display SignalSIGNAL SEG: STD_LOGIC_VECTOR( 6 DOWNTO 0);- SEG7 Display SignalSIGNAL SEL: STD_LOGIC_VECTOR( 3 DOWNTO 0);- Select SEG7 SignalSignal S : STD_LOGIC_VECTOR(1 DOWNTO 0) ; - display scan sequenceBEGINConnection : BlockBeginSELOUT = SEL ;- Seg7 Disp Selection SEGOUT(6 DOWNTO 0) = SEG;- Seven Segment DisplayS = C_DISPLAY ;DBOUT = DB ;End Block Connection;-*
展开阅读全文