




已阅读5页,还剩53页未读, 继续免费阅读
版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
基于CPLD的电子密码锁的设计与实现专业电子信息科学与技术摘要本文介绍了一种在QUARTUS环境下,采用复杂可编程逻辑器件CPLD的新型电子密码锁设计方法,阐述了其工作原理和软件设计方法。该数字密码锁通过扫描电路、键盘译码电路、弹跳消除电路和七段译码电路等实现密码输入、数码清除、密码激活、电锁解锁、密码更改等功能。本论文对该密码锁的程序进行了功能仿真,结果表明该密码锁的功能满足设计要求,能够实现正常开锁、上锁和修改密码。该密码锁体积小、功耗低、易于维护和升级,有很好的市场前景。关键词电子密码锁;CPLD;QUARTUS;仿真ABSTRACTTHISPAPERINTRODUCESANEWWAYTODESIGNELECTRONCODEDLOCKWITHCPLDANDQUARTUSITSOPERATINGPRINCIPLESANDTHEDESIGNINGMETHODSOFHARDWAREAREEXPLAINEDINTHISARTICLETHISCODEDLOCKCANPERFORMTHEFOLLOWINGFUNCTIONS,SUCHASCODEINPUT,CODECLEAR,CODEACTIVATING,CODERELEASING,CODECORRECTINGANDWRONGCODEALARMINGBYSCANNINGCIRCUIT,KEYBOARDDECODECIRCUIT,BOUNCEELIMINATINGCIRCUIT,COMPARISONCIRCUITTHEFUNCTIONANDTIMINGSIMULATIONSAREMADETHERESULTSSHOWTHATDESIGNSPECIFICATIONOFTHEELECTRONICCODEDLOCKISMETANDTHEUNLOCKANDCODECORRECTINGCANBEREALIZEDTHISNEWELECTRONCODEDLOCKHASSMALLSIZE,LOWPOWERITSMAINTENANCEANDUPGRADEAREVERYCONVENIENTANDITHASABETTERAPPLICATIONPROSPECTKEYWORDSELECTRONCODEDLOCK;CPLD;QUARTUS;SIMULATION目录摘要IABSTRACTII第1章引言111课题研究的背景和意义112电子锁国内外现状1121密码识别式电子锁2123生物识别式电子锁213本论文的研究内容和结构214本章小结3第2章EDA技术概述421EDA技术及其发展4211EDA技术的发展历程4212EDA技术的基础特征422EDA技术的主要内容523EDA技术的特点及优点624EDA工程设计流程725QUARTUS软件726本章小结9第3章复杂可编程逻辑器件CPLD1031CPLD的基本结构10311逻辑阵列块10312可编程逻辑宏单元10313扩展乘积项10314可编程连线阵列11315I/O控制块1132CPLD器件的特点1133CPLD器件的编程1134本章小结12第4章硬件描述语言VHDL1341VHDL的发展与特点1342VHDL语言的开发流程1443VHDL编程思想1544描述语言1545VHDL编程特点1646VHDL语言的优点1647本章小结16第5章电子密码锁的总体设计1851方案的确定1852电子密码锁的设计要求1853电子密码锁的设计思路和各功能模块描述1854电子密码锁的工作流程2055本章小结21第6章密码锁的工作原理及其各个硬件单元电路设计2261密码锁的工作原理2262密码锁输入电路22621时序产生电路22622键盘扫描电路22623键盘检测电路23624键盘弹跳消除电路23624键盘译码电路2563密码锁控制电路2564密码显示电路2665本章小结27第7章仿真及实验结果分析2871电子密码锁的输入模块设计与仿真28711时序产生电路程序与仿真28712键盘扫描电路程序与仿真30713键盘检测电路程序与仿真31714按键弹跳消除电路程序与仿真33715键盘译码电路程序与仿真3572数字键、功能键判别电路程序与仿真3773密码锁控制电路程序与仿真3874显示译码电路程序与仿真4075系统顶层文件4376本章小结43第8章结束语44致谢45参考文献46附录47第1章引言11课题研究的背景和意义锁是古老而又现代的社会性用品。锁从遥远的古代走来,在电气时代来临之前,各种机械式锁具成为人们保护财产,防范入侵的重要手段。在机械锁具方面,瑞士人走在了世界前列。瑞士人制作的机械锁凭其精密的机械结构和一流的安全性能,让世界叹为观止。随着人们安全防范观念的提升、社会生活水平的提高和科技的发展,人们对日常生活中的安全防范设施要求越来越高,住宅和办公室等场所尤为如此。传统的机械锁具的钥匙易于复制、安全性能差,已经不能满足在这些领域安全技术防范的要求。需要突破传统机械锁具的机械、弹子结构,创造出更安全、可靠、方便并能与整个安防系统无缝对接的电子锁产品。因应这些需求,伴随着集成电路技术的迅猛发展和以MCS51为代表的单片机的出现12,智能电子锁应运而生34,其在使用的方便性、防范非法开启、智能管理等方面都是机械锁具无法比拟的,在对安全要求较高的场所及设施中得到广泛应用。12电子锁国内外现状近年来,随着超大规模集成电路等高新技术对传统锁具的不断注入,使锁具的安防功能得到了充分的延伸和扩展,它除了具备锁具的基本功能外,还具有智能化管理、报警和系统分析等功能,智能电子锁已一跃成为当今保密级别安防系统中不可或缺的组员,其地位和作用是任何机械锁具无法替代的。由于其巨大的市场潜力,国内外许多公司都投入相当大的人力、物力从事智能电子锁的开发生产。从我国目前的市场看,国内消费者对电子锁的认知程度不是太高。从现有技术水平来看,国内电子锁的应用主要是低端产品,主要用于保险箱和保险柜等安防设备。像应用于住宅和办公室等安防要求较高的设施上的高端产品还比较少。从国外市场来看,由于人们安防意识比较高,研发生产技术比较先进,智能电子锁的使用是比较广泛的。在欧美日等经济发达国家,电子锁已成为具有规模效益的重要产业。电子锁领域的SOC芯片主要有MICROCHIP公司的HCSXXX系列,ACM公司的ACM1330E系列等。但是国外生产的电子锁价格昂贵,相对于国内同类产品要高出不少。不论是国外产品还是国内产品,其单门电子锁控制器容量都比较大,对于家庭等用户来说,使用成本太高。因此研究一种价格低廉、可靠性高、功能齐全、容量较小的智能电子锁,就是我们需要研究解决的问题。目前,市场上出现的电子锁有键盘式电子密码锁、遥控式电子防盗锁、卡式电子防盗锁、生物特征防盗锁等510。121密码识别式电子锁这种电子锁通过验证输入密码的正确与否来控制锁具的开关。其在输入密码错误超次时,具有系统自锁,并带有自动报警的功能。密码的输入方式可分为键盘输入和遥控输入两种。键盘式电子锁其主要是利用键盘输入电子锁密码,电子锁控制器通过比较其内部存储的客户密码判断是否开门。它具有操作方便,无需携带卡片,成本较低等优点。但其也存在密码易泄漏、没有出入记录、只能单向控制等缺陷。122卡片识别式电子锁卡片识别式电子锁使用各类卡片(包括磁卡、IC卡等)为密码载体,通过相应读卡器读卡方式来控制电子锁。123生物识别式电子锁本生物识别式电子锁,利用人体生物特征作为密码输入,通过识别器识别控制电子锁的开闭。研究表明,人的指纹、掌纹、面孔、发音、虹膜、视网膜等都具有惟一性和稳定性的特征,即每个人的这些特征都与别人不同、且终生不变,可以据此可对人的身份进行识别。基于人的这些特征,出现了以指纹识别、面部识别、虹膜识别等多种生物识别方式的智能电子锁。由于这些生物特征有其他介质无法取代的优点,所以基于此的智能电子锁安全性极好,可靠性高,但成本很高,对环境的要求也较高。因此在小型智能电子锁系统中应用率比较低。13本论文的研究内容和结构近年来,电子密码锁的使用越来越广泛,目前使用的电子密码锁大部分是基于单片机,用分立元件实现的,其电路比较复杂、性能不够灵活、成本较高且可靠性和安全性较差。基于此,根据一般家庭住宅的需要,采用先进的EDA1112技术,基于QUARTUS工作平台和VHDL语言1314,用复杂可编程逻辑器件CPLD15设计了一种新型电子密码锁,。该密码锁具有密码输入、密码清除、密码更改、密码上锁和密码解锁等功能,同时为了取得更高的安全保密性,保留了电子锁按键键盘。利用EDA技术进行电子系统的设计,具有以下几个特点用软件的方式设计硬件;用软件的方式设计的系统到硬件系统的转换,是由有关的开发软件自动完成的;设计过程中可用有关软件进行各种仿真;系统可现场编程,在线升级;整个系统可集成在一个芯片上,体积小、功耗低、可靠性高。设计的密码锁体积小、功耗低、维护和升级都十分方便,其保密性、可靠性、安全性以及可扩展性都达到较高的水平,具有较好的应用前景。本文剩余章节内容安排如下1第二章包含EDA技术的基础知识。2第三章论述CPLD的基本结构和特点。3第四章简单介绍了硬件描述语言VHDL。4第五章给出了电子密码锁的总体设计方案。5第六章介绍了所设计密码锁的工作原理,并给出各个硬件单元电路的设计。6第七章对所给出的密码锁设计进行了仿真验证和实验分析。14本章小结本章介绍了电子锁国内外的现状及前景,对基于复杂可编程逻辑器件CPLD的电子锁进行了简要介绍,阐述了论文研究的内容,最后对本文的结构做了概括。第2章EDA技术概述21EDA技术及其发展电子设计自动化(ELECTRONICDESIGNAUTOMATION,EDA)技术1112是一种以计算机作为工作平台,以EDA软件工具为开发环境,以硬件描述语言和电路图描述为设计入口,以可编程逻辑器件为实验载体,以ASICAPPLICATIONSPECIFICINTEGRATEDCIRCUITS、SOCSYSTEMONCHIP和SOPCSYSTEMONPROGRAMMABLECHIP嵌入式系统为设计目标,以数字系统设计为应用方向的电子产品自动化设计技术。它是融合了电子技术、计算机技术、信息处理技术、智能化技术等最新成果而开发的高新技术,是现代电子系统设计、制造不可缺少的技术。EDA技术代表了当今电子设计技术的最新发展方向,它是电子设计领域的一场革命。EDA技术设计面广,包含描述语言、软件、硬件等方面的知识。211EDA技术的发展历程20世纪70年代,随着计算机技术的快速发展,人们开始研究各种计算机辅助设计技术(CAD)1617。20世纪80年代,随着集成电路规模的快速发展,出现了计算机辅助工程技术(CAE),主要表现为设计工具和单元库的完备,并具备原理图输入、编译和连接、逻辑模拟、测试代码生成以及版图自动布局等功能。20世纪90年代,基于CAD和CAE的设计过程,其自动化和智能化的程度不高,需要使用多个软件完成一个完整的工程。20世纪90年代中期以后,微电子技术以惊人的速度发展,在单芯片上可以集成数百甚至数千万只晶体管,工作速度达到GHZ以上,在这种芯片上设计系统就需要更加先进的工具来支持1819。因此,人们开始追求将整个设计过程自动化,即电子系统设计自动化(EDA)。目前,EDA技术主要以硬件描述语言输入、系统级仿真和综合技术为核心,能够自动将用户以硬件语言描述的功能需求转化为基础门电路,将设计封装到CPLD中或制成ASIC芯片,极大提高系统的设计效率。目前,EDA工具正朝着具有数模混合信号处理能力、仿真测试工具为有效、设计综合工具更为理想的方向发展。212EDA技术的基础特征1“自顶向下”的设计方法EDA设计是一种“自顶向下”的全新设计方法,这种设计方法首先从系统设计入手,在顶层进行功能方框图的划分和结构设计,并在方框图一级进行仿真、纠错。其次,用硬件描述语言对高层次的系统行为进行描述,在系统一级进行仿真。然后,用综合优化工具生成具体门电路的网表文件,其对应的物理实现级可以是印制电路板或专用集成电路。2设计用硬件描述语言硬件描述语言(HDL,HARDWAREDESCRIPTIONLANGUAGE)是一种用于设计硬件电子系统的计算机语言,利用它可以用软件编程的方式来描述电子系统的逻辑功能、电路结构和连接形式。与传统的门级描述方式相比,硬件描述语言更合适大规模系统的设计。采用硬件描述语言进行设计是当前发展的趋势,它可以大大降低成本,缩短研制周期,既适用于小批量产品的开发,也适用于大批量产品的样品研制。3具有逻辑综合和优化的功能逻辑综合功能是指较高层次的抽象描述转化到低级别抽象描述的一种方法,即根据芯片制造商提供的基本电路单元库,将硬件描述语言的电路转换为电路网表或者是一组逻辑方程。优化的功能是根据布尔方程功能等效的原则,利用逻辑综合生成的结果,采用更小更快的综合结果代替一些复杂的单元,然后根据制定的目标将其映射成新的网表或者一组逻辑方程。4采用开放性或标准化的软件架构软件架构是指一种软件平台结构,是一套配置和使用EDA软件包的规范。其主要功能是为EDA工具提供相应的操作环境。架构的关键在于提供与硬件平台无关的图形用户界面、工具之间的通信、设计数据和设计流程的管理,另外,架构还包括各种与数据库相关的服务。22EDA技术的主要内容EDA技术主要包括四方面的内容大规模可编程逻辑器件、硬件描述语言、EDA开发软件及实验开发系统。221大规模可编程逻辑器件大规模逻辑器件是一种由用户编程以实现某种逻辑功能的新型器件,它是EDA技术的物质基础。可编程逻辑器件通常分为两类,即现场可编程门阵列(FPGA2024)和复杂可编程逻辑阵列(CPLD)。222硬件描述语言最具有代表性的硬件描述语言是美国国防部开发的VHDL和VERILOG公司开发的VERILOGHDL。VHDL它的高级描述功能强大,非常适合于大型电子系统的描述;VERILOGHDL综合过程比VHDL简单,更适合于硬件细节的描述。223软件开发系统软件开发系统是进行电子设计的智能化设计工具,目前较流行的开发工具有ALTERA公司的MAXPLUS和QUARTUS,LATTICE公司的ISPDESIGNEXPERT,XILINX公司的FOUNDATION等。MAXPLUS和QUARTUS,它们界面友好,操作方便,功能强大,与第三方EDA工具的兼容性良好,支持原理图输入、硬件描述语言输入及混合输入方式。可以完成所有设计输入、仿真、综合、布局布线、下载等工作。224硬件实验箱硬件实验箱是实现PLD编程下载和硬件验证工具。EDA实验开发工具的主要作用有提供芯片下载电路、提供实验开发的外围资源、硬件验证。23EDA技术的特点及优点231EDA技术的特点利用EDA技术进行电子系统的设计,具有下面几个特点1用软件的方式设计硬件,加速硬件设计周期;2“自顶向下”的设计方法,简化设计流程;3用软件方式设计的系统到硬件系统的转换是由相关的开发软件自动完成的;4设计过程中可用有关软件进行各种仿真,包括时序和功能发仿真;5系统可现场编程、在线升级,简化系统的设计维护;6整个系统可集成在一个芯片上,体积小、功耗低、可靠性高。232EDA设计的优点用EDA设计,有如下几个优点(1)设计过程自顶向下,符合人类思维模式;(2)系统设计的早期即可进行仿真和修改,缩短设计周期,降低设计成本;(3)多种设计文件,发展趋势以HDL描述文件为主,增强设计的可移植性;(4)提高设计模块可重用性,降低硬件电路设计难度。24EDA工程设计流程EDA的工程设计流程包括设计准备、设计输入、设计处理和器件编程四个步骤,以及相应的功能仿真、时序仿真和器件测试三个验证过程。EDA的工程设计流程包括的步骤1设计准备设计准备阶段需要完成行为分析和结构设计两部分工作,即在顶层进行功能划分,确定系统结构方案;2设计输入设计输入有四种输入方式原理图输入方式、描述语言输入方式、混合输入方式、图形输入方式;3设计处理设计处理是指用开发软件对设计输入文件进行编译、逻辑化简、优化和综合、适配,最后生成下载用的编程数据文件;4设计检验包括功能仿真和时序仿真。功能仿真只是对源文件描述的逻辑功能进行模拟,没有信号延时信息。时序仿真是在选定了具体器件并完成了布局布线后进行的,仿真模型中包含延时信息;5器件编程将编程数据下载到具体的可编程器件中,使该器件成为具有设计方案确定的逻辑功能集成电路。器件编程后,通过可编程器件实现开发系统可进行硬件测试验证。25QUARTUS软件本论文是用QUARTUS来完成设计输入、仿真、综合、布局布线、时序仿真、编程配置、调试下载等过程的。QUARTUS是ALTERA公司在MAXPLUS基础上推出的新一代功能强大的WINDOWS环境下CPLD的开发软件。该软件是一个完全集成化、易学易用的可编程逻辑设计环境,可以在多种平台上运用。QUARTUS软件支持各种HDL设计输入选项,如VHDL、VERILOGHDL和AHDL等,它允许设计人员添加自己认为有价值的宏单元。QUARTUS软件有如下特点1支持多时钟定时分析、基于块的设计、SOPC(单芯片可编程系统),内嵌SIGNALTAP逻辑分析器,功能估计器等高级工具;2易于管脚分配和时序约束;3强大的HDL综合能力;4包含有MAXPLUS的用户界面,且易于由MAXPLUS开发的工程平稳地过渡到QUARTUS开发环境;5对于要求速度优化的设计具有很好的效果;6支持的器件种类众多;7支持WINDOWS、SOLARIS、HPUX和LINUX等多种操作系统;8第三方工具如综合、仿真等的链接。新项目建立建立设计文件文件设计输入原理图设计输入分析、综合、布局布线、时序分析设计修改仿真全程编译编程下载设计成功有错无错无错有错有错无错图21QUARTUS软件的基本设计流程图QUARTUS软件的设计过程主要由设计输入、设计编译、设计仿真和器件编程四部分组成。QUARTUS软件的基本设计流程图2126本章小结本章在介绍EDA技术的发展历程及其基本特征的基础上,介绍了EDA技术的主要内容;对EDA技术的特点和用EDA设计的优点也进行了分析。从设计准备、输入、处理、检验和器件编程等方面介绍了EDA的工程设计流程。并介绍了QUARTUS软件的特点及其软件设计流程。第3章复杂可编程逻辑器件CPLD31CPLD的基本结构CPLD是在20世纪80年代从PAL和GAL器件发展出来的器件,其结构和PAL和GAL器件基本相同,由可编程的与阵列、固定的或阵列、输入处理电路和输出处理电路组成。但是,CPLD扩充了一个全局共享的可编程与阵列,把多个宏单元连接起来,并增加了I/O控制模块的数量和功能。ALTERA公司的MAX7000S系列器件的CPLD结构。MAX7000S系列器件结构中主要包括5个部分,分别是逻辑阵列块(LAB),宏单元MACROCELLS、扩展乘积项(EPT)、可编程连线阵列(PIA)和I/O控制块(I/O)。311逻辑阵列块MAX7000S结构主要由多个相互关联的逻辑阵列块构成,每个逻辑阵列块又是由16个宏单元阵列构成的,多个逻辑阵列块是通过可编程阵列连接在一起的,而对于可编程连线阵列,这个全局总线包括所有的专用输入,I/O引脚和宏单元的信号引线。312可编程逻辑宏单元逻辑宏单元内部主要包括与或阵列、可编程触发器和多路选择器等电路,能独立地配置为时序或组合工作方式。CPLD器件与GAL器件相似,其逻辑宏单元同I/O在一起,称为输出逻辑宏单元,但其宏单元及与门阵列数目比GAL大得多。CPLD器件的宏单元在内部,称为内部逻辑宏单元。可编程逻辑宏单元具有如下特征(1)多触发器结构和隐瞒触发器结构。(2)乘积项共享结构。(3)异步时钟和时钟选择。313扩展乘积项MAX7000S结构中有两种扩展乘积项类型,其一是共享扩展乘积项,其二是并联扩展乘积项。MAX7000S结构允许利用共享扩展乘积项或并联扩展乘积项作为附加的乘积项直接送到统一逻辑阵列的任一宏单元,这样就可以利用扩展乘积项实现单个宏单元不能完成的复杂函数。314可编程连线阵列通过可编程连线阵列,可以把不同的逻辑阵列块相互连接,以实现用户所需要的逻辑功能。可编程连线阵列PIA的作用是在各逻辑宏单元之间以及逻辑宏单元和I/O单元之间提供互连网络。各逻辑宏单元通过可编程连线阵列接收来自专用输入或输入端的信号,并将宏单元的信号反馈到其需要到达的目的地。315I/O控制块I/O单元是内部信号到I/O引脚的接口部分。I/O控制块主要是由三态门和使能控制电路构成的在每个逻辑阵列块和I/O引脚之间都有一个控制块。CPLD的I/O由输入缓冲器、输入寄存器/锁存器、可编程数据器和三态输出缓冲器组成,三态缓冲器一般由全局使能信号控制或直接与电源或地相接。32CPLD器件的特点CPLD编程灵活、集成度高、设计开发周期短、适用范围宽、开发工具先进、设计制造成本低、对设计者的硬件经验要求低、标准产品无需测试、保密性强、价格大众化等特点,可实现较大规模的电路设计,因此被广泛应用于产品的原型设计和产品生产一般在10,000件以下之中。几乎所有应用中小规模通用数字集成电路的场合均可应用CPLD器件。CPLD器件已成为电子产品不可缺少的组成部分,它的设计和应用成为电子工程师必备的一种技能。33CPLD器件的编程CPLD的设计方法采用自顶向下的层次化设计方法,即从整个系统的整体要求出发,自上向下的逐步将系统设计内容细化,即把整个系统分割为若干功能模块,最后完成整个系统的设计。在系统编程(ISP)技术是20世纪80年代末LATTICE公司首先提出的一种先进的编程技术。所谓“在系统编程”,是指对器件、电路板或整个电子系统的逻辑功能可随时进行修改或重构的能力。利用ISP编程时,不需要使用编程器,只需要通过编程电缆将计算机系统与目标器件相连,直接在目标系统或印制线路板上进行编程。这种方式有利于提到系统的可靠性,便于系统板的调试和维修。CPLD芯片ISP编程连接示意图如下34本章小结可编程逻辑器件是EDA技术的一个重要内容,只有掌握了可编程逻辑器件技术的原理以及常用可编程逻辑器件的结构及其特征,才能充分发挥可编程逻辑器件的优势,从而实现性能优越的数字系统。根据CPLD的特点和优势,其输出结构是可编程的逻辑宏单元,因为它的硬件结构设计可由软件完成(相当于房子盖好后人工设计局部室内结构),因而它的设计比纯硬件的数字电路具有很强的灵活性。TDOTDITCKTMS1KGNDVCC1K1KTDOTDITCKTMSTDOTDITCKTMS19352410图31CPLD芯片ISP编程连接示第4章硬件描述语言VHDL41VHDL的发展与特点VHDL是一种硬件描述语言,它可以对电子电路和系统的行为进行描述。基于这种描述,结合相关的软件工具,可以得到所期望的实际电路和系统。使用VHDL语言描述的电路,可以进行综合与仿真。然而,值得注意的是,尽管所有的VHDL代码都是可仿真的,但并不是所有代码都是可综合的。VHDL是在ADA语言的基础上发展起来的硬件描述语言。VHDL是美国国防部在20世纪70年代末提出的VHSIC计划的产物,VHSIC计划的目标是使工业界可以开发比以前更为复杂的集成电路,加速美国微电子行业的发展。但是设计的可移植性和再开发性很差,信息交换和设计维护很困难。因此美国国防部委托IBM和TEXASINSTRUMENT公司联合开发并在1981年提出了一种硬件描述语言VHSICHARDWAREDESCRIPTIONLANGUAGE,取此项目的名称的第一个字母将这种硬件描述语言命名为VHDL。VHDL作为一种通用的硬件描述语言,具有以下基本特点(1)VHDL支持结构化和自顶向下的设计方法,这样非常便于设计的模块化。设计者从系统整体出发,自上而下将系统内容细化,最后将模块组合完成系统的整体设计。(2)VHDL具有多层次描述和仿真系统硬件功能的能力,可以从系统级到门级电路不同层次对数字进行建模和描述,不同的描述还可以混合使用,大大简化了硬件设计任务,提高了设计效率和可靠性,缩短了产品开发周期。(3)VHDL是一种工业标准语言,设计者、EDA开发工具的供应商和IC芯片生产商都要遵循这一标准,因为它具有设计与开发环境、具体电路实现工艺以及采用的实现芯片无关的特点,设计成果便于移植、交流和二次开发。(4)VHDL既支持传输延时也支持惯性延时,不仅可以很好地描述系统和电路的逻辑功能,也可以真实地反映系统和电路的时间特性。(5)VHDL可以支持各种不同类型的数字电路和系统的设计。既支持同步电路,也支持异步电路;既支持TTL电路,也支持CMOS电路;既可以采用CPLD芯片实现,也可以采用FPGA芯片实现。42VHDL语言的开发流程一个简单的VHDL工程设计流程主要包括设计输入、综合、仿真、适配、下载、硬件测试等步骤,如图41所示进行数字系统和数字电路的设计,首先需要在EDA工具的编辑器输入设计好的VHDL程序,VHDL程序是设计者根据系统功能要求和VHDL语法要求设计的,表达了设计者的设计思想。设计输入完成后,在综合以前可以先对VHDL程序描述的内容进行仿真。综合是VHDL开发流程中非常重要的一步,即通过EDA工具中的综合器将VHDL程序设计转换成实际的硬件电路结构,也就是将采用VHDL描述的设计进行编译、优化、转换和综合,得到门级电路甚至更底层的电路描述文件VHDL网表文件。逻辑综合完成后,必须通过适配器将综合后得到的网表文件,针对某一特定的目标器件进行逻辑映射操作,即将综合后的电路具体在某一器件上进行布局、布线及优化等配置,这一步也被称为结构综合。适配完成后即可对设计进行时序仿真,因为此时经过结构综合的网表文件中已经包含了具体器件的较为精确的延时信息,因此可以得到精确的时序仿真结果。设计输入综合仿真适配编程、下载硬件测试图41VHDL工程设计流程如果前述所有步骤没有问题,功能仿真和时序仿真结果都完全符合系统设计要求,就可以对设计进行编程下载了。当然,还需要对硬件电路进行最后的硬件测试,测试得到的电路系统是否完全满足系统设计要求。43VHDL编程思想VHDL适应实际电路系统的工作方式,以并行和顺序的多种语句方式来描述在同一时刻中所有可能发生的事件。因此可以认为,VHDL具有描述由相关和不相关的多维时空组合的复合体系统的功能。一个成功的VHDL工程设计,其评判的标准包括是否完成功能要求、满足速度要求、并考虑其可靠性以及资源的占用情况。在具体的工程设计中,必须清楚软件程序和硬件构成之间的联系,在考虑语句能够实现的功能的同时,要考虑实现这些功能可能付出的硬件代价。44描述语言VHDL语言是目前应用较为广泛的硬件描述语言,基本要素包括标识符、数据对象、数据类型、运算符等。1VHDL标识符VHDL语言是由各种语法单位构成的,如常量、变量、信号、进程、函数等。标识符的基本作用是给VHDL中的语法单位起一个独特的名字,以区别其他语单位。VHDL语言有两个标准版VHDL87版和VHDL93版。前者称为短标识符,后者称为长标识符。2VHDL数据对象在VHDL语言中,数据对象主要有常量,变量和信号。常量是在仿真和综合过程中固定不变的值,可通过标识符来引用。常量定义和设置的目的是为了使设计实体中的常数更容易阅读和修改。在VHDL语言中,变量用于暂存数据,相当于一个暂存器。在仿真过程中,变量的赋值是立即生效的。信号是电子电路内部硬件相连的抽象表示,它通常在实体、结构体和程序包中使用。(3)VHDL数据类型VHDL语言是强类型语言,它的数据类型定义是十分严格的,不同类型之间数据类型不能直接代入,相同的数据类型但位长不同时也不能直接代入。VHDL定义了10种标准数据类型整数、实数、位、位矢量、布尔量、字符、字符串、时间、错误等级、自然数和正整数,用户定义的数据类型有数组、整数和实数类型、记录类型、枚举类型、时间类型、用户定义子类型,数据类型的转换有类型标记法、函数转换法。(4)VHDL运算符VHDL语言的运算符分为四种类型逻辑运算符、算术运算符、关系运算符合连接运算符。VHDL中,操作符与操作数间的运算要严格遵守以下规则在基本操作符间操作数是同数据类型的。操作数的数据类型必须与操作符所要求的数据类型完全一致。遵守运算符的优先次序,VHDL语言运算符的优先级从低到高为逻辑运算符,关系运算符,算术运算符,连接运算符。45VHDL编程特点与其他硬件描述语言相比,VHDL具有以下特点功能强大、设计灵活。VHDL具有功能强大的语言结构,可以用简洁明确的源代码来描述复杂的逻辑控制。它具有多层次的设计描述功能,层层细化,最后可直接生成电路级描述。VHDL支持同步电路、异步电路和随机电路的设计,这是其他硬件描述语言所不能比拟的。VHDL还支持各种设计方法,既支持自底向上的设计,又支持自顶向下的设计;既支持模块化设计,又支持层次化设计。支持广泛、易于修改。强大的系统硬件描述能力。VHDL具有多层次的设计描述功能,既可以描述系统级电路,又可以描述门级电路。很强的移植能力。VHDL是一种标准化的硬件描述语言,同一个设计描述可以被不同的工具所支持,使得设计描述的移植成为可能。易于共享和复用。46VHDL语言的优点1通用性好,支持面广。由于它是工业标准,凡大型CAD软件都推出支持VHDL的设计环境。因此用VHDL描述的设计文件,可用不同的设计工具;。2重用性好。在用VHDL语言设计系统硬件时,没有嵌入与工艺有关的信息,当门级或门级以上的层次通过仿真验证后,再用相应的工具将设计映射成不同的工艺。这样,在工艺更新时,就无须修改原设程序,只有改变相应的映射工具就行了。因此VHDL设计模块便于在不同的设计场合重复使用;3可靠性好,VHDL文件兼技术文档与实体设计于一身,可读性好,即是技术说明,又是设计实现,从而保证了二者的一致性。47本章小结本章对VHDL语言要素进行了较全面的介绍。首先介绍了VHDL语言的产生、发展、特点及其开发流程,和VHDL的编程思想,然后介绍了VHDL标识符,目前有VHDL87版中的短标识符和VHDL93版中的扩展标识符两种;其次介绍了VHDL的数据对象,它由常量、变量和信号组成;在VHDL数据类型中,包含标准的数据类型和用户定义的数据类型;VHDL运算符包括逻辑运算符、算术运算符、关系运算符和连接运算符。并说明了VHDL编程的特点和VHDL语言的优点。第5章电子密码锁的总体设计51方案的确定(1)方案一采用数字电路控制。虽然采用数字电路密码锁的好处是设计简单,但是由于其是纯电路实际,在系统运行时,延时会比较严重。(2)方案二通过单片机实现,现在一种新的方案就是采用一种是用AT89S51为核心的单片机控制方案。虽然有灵活的设计和丰富的IO端口,但是单片机设计的缺点是程序运行时容易出现跑飞现象。通过以上比较显然单片机方案有较大的活动空间,不但能实现所要求的功能而且能在很大的程度上扩展功能,而且还可以方便的对系统进行升级,但是由于所学知识不能将其有效的应用,现有环境不能满足,而且单片机的密码锁有一定的不足之处,在运行时程序有时会产生PC指针错误,还有基于现在所学知识的应用,所以基于以上比较提出了第三种方案。(3)方案三利用CPLD设计电子密码锁,其成本低,设计方便(有相应的开发板)现有资源充足,实现比较容易,更利于系统的维护改进和升级,可靠性更高,更安全。通过以上比较描述,本设计采用基于CPLD的电子密码锁设计方案。52电子密码锁的设计要求设计一个具有较高安全性和较低成本的通用电子密码锁,具体功能要求如下(1)数码输入每按下一个数字键,就输入一个数值,并在显示器上的显示出该数值,同时将先前输入的数据依序左移一个数字位置。(2)数码清除按下此键可清除前面所有的输入值,清除为“0000”。(3)密码更改按下此键时会将目前的数字设定成新的密码。(4)激活电锁按下此键可将密码锁上锁。(5)解除电锁按下此键会检查输入的密码是否正确,密码正确即开锁。53电子密码锁的设计思路和各功能模块描述电子密码锁可以由三个部分组成数字密码输入电路、密码锁控制电路、密码锁显示电路。作为密码锁的输入部分,可选择的方案有数字机械式键盘和触摸式数字键盘等多种。考虑种种因素主要是成本和使用寿命因素,本设计采用通用的数字机械式键盘。数字电子密码锁的显示信息电路可采用LED数码管显示和液晶屏幕显示两种。液晶显示具有高速显示、高可靠性、易于扩展和升级等优点,但是普通液晶显示屏存在亮度低、对复杂环境的适应能力差等缺点,在低亮度的环境下还需要加入其它辅助的照明设备,驱动电路设计相对复杂,因此本设计的显示电路使用通用的LED数码管。根据以上选定的输入设备和器件,并考虑到实现各项数字密码锁功能的具体要求。本设计分为三个大的功能模块。图51为数字电子密码锁系统总体框图图51数字电子密码锁系统总体框图(1)密码锁输入电路包括时序产生电路、键盘扫描电路、键盘弹跳消除电路、键盘译码电路等几个小的功能电路。模块的功能是将用户通过键盘输入的数字密码,确认密码是否输入,产生电路中使用的三种不同频率的工作脉冲波形,即系统时钟脉冲、弹跳消除取样信号和键盘扫描信号;为了加强按键按下的准确性加了去抖模块。作为电子密码锁的输入电路,数字密码输入电路可采用一个34的通用开发板上的键盘作为本设计的输入设备。开发板键盘具有低成本、可靠性高、构成电路简单、技术成熟和应用广泛等特点,因此将其应用到通用电子密码锁中还是比较适宜的。(2)密码锁控制电路包括按键数据的缓冲存储电路,密码的清除、变更、存储、激活电锁电路(寄存器清除信号发生电路),密码核对(数值比较电路),解锁电路(开/关门锁电路)等几个小的功能电路。模块功能用于密码的更改,密码的清除,以及对密码锁的工作状态更改,对输入密码次数的计数功能,还有就是更智能化,更符合人们的思维,按键的时候都是习惯看输入数字的移位情况。(3)密码显示电路主要将显示数据的BCD码转换成相对应的编码。如,若选用七段数码管显示电路,主要将待显示数据的BCD码转换成数码器的七段显示驱动编码。由数字电子密码系统的总体框图可知通过时序产生键盘扫描信号,由键盘输入密码或者功能按键,当然在这过程中要经过按键去抖,最后将将所输入的键盘值译码得到具体的数字或者功能键;将输入值输入键盘数据存储器,在这里面可以将键盘值存储或者清除,再经过比较电路,比较输入值与原来存储的是否一致,如果一致则开启锁,如果不一致则报警(在报警后可以通过输入万能密码或者断电复位等可以解决);在经过存储电路时,同时将所输入的值通过LED显示出来,显示将通过BCD译码电路,将所获取的值显示在LED数码管上。54电子密码锁的工作流程数字电子密码锁的设计流程如图52所示,首先,从键盘输入数字和功能按键,判断按键输入,对密码按键和功能按键进行区分。如果是功能按键输入并且与相应的功能按键相等,执行相应的功能,与相应的功能按键不相等,则系统复位,重新从键盘输入。如果是密码按键,显示输入密码,并判断密码是否正确,如密码正确,则打开锁具,否则如连续三次输入密码错误,则系统报警并复位。55本章小结本章给出了数字电子密码锁的设计要求和总体设计方案。通过对三种密码锁设计方案,即对数字电路密码锁,以AT89S51为核心的单片机密码锁和基于CPLD的电子密码锁,进行各种因素的综合平衡考虑,选择用CPLD设计电子密码锁。设计的密码锁由输入、控制和显示三大模块组成,在本章最后,对其工作流程进行了阐述。下两章将给出各个硬件单元电路的详细设计。密码输入否解锁执行功能报警开始是功能输入键盘输入系统复位判断是密码还是功能输入判断密码正确否判断等于相应的功能键否不是密码和功能输入是密码输入是功能输入显示输入与相应的功能键相等与相应的功能键不相等图52数字电子密码锁的设计流程第6章密码锁的工作原理及其各个硬件单元电路设计61密码锁的工作原理本论文设计的电子密码锁主要由密码锁输入电路,密码锁控制电路和密码锁显示电路三个模块构成,其中,密码锁输入电路这个模块包括时序产生电路、键盘扫描电路、键盘弹跳消除电路、键盘译码电路;密码锁控制电路这个模块包括按键数据的缓冲存储电路,密码的清除、变更、存储,密码核对,解锁电路;密码锁显示电路这个模块主要将要显示数据的BCD码转换成数码器的七段显示驱动编码,在数码管上依次显示出来。其次,采用了34矩阵式键盘,结果显示部分,通过一个红色和绿色的发光二极管来表示。密码连续两次输错,即报警,将报警信号接至一个蜂鸣器,报警信号由开锁信号来控制。62密码锁输入电路密码锁输入模块由时序产生电路、键盘扫描电路、键盘弹跳消除电路、键盘译码电路组成。621时序产生电路当一个系统中使用不同操作频率的脉冲波形时,最方便的方法之一就是利用一个自由计数器来产生各种需要的频率。本电路中就使用三种不同频率的工作脉冲波形。即系统时钟脉冲(它是系统内部所有时钟脉冲的源头且其频率最高)、弹跳消除取样信号、键盘扫描信号和七段显示器信号。在很多的电路设计中,键盘扫描信号和七段显示器扫描信号可使用相同的时钟脉冲信号,本设计亦同。622键盘扫描电路矩阵式键盘是一种常见的输入装置,本论文是采用的34矩阵键盘的面板配置,如图61所示。键盘扫描电路的作用是提供键盘扫描信号,行扫描信号变化的顺序依次为11101101101101111110,低电平有效,依次选通第一行第二行第三行第四行第一行。列扫描信号变化的顺序依次为011101110011,低电平有效,依次选通第一列第二列第三列第一列。当键盘扫描信号为1110时,按键位置分别为011(“1”键按下)、101(“2”键按下)、110(“3”键按下);当键盘扫描信号为1101时,按键位置分别为011(“4”键按下)、101(“5”键按下)、110(“6”键按下);当键盘扫描信号为1011时,按键位置分别011(“7”键按下)、101(“8”键按下)、110(“9”键按下);当键盘扫描信号为0111时,按键位置分别为011(“”键按下)、101(“0”键按下)、110(“”键按下)。623键盘检测电路当尚未按下键盘时,依照每次输入计数对应一排一位的编码方式逐一扫描键盘按钮,如000代表一行第一个按钮;依次排序。键盘输入到按键检测电路COLUMN的值均为1,使键盘无论扫描到哪个键时,均使按键使能位(KEY_PRESSED)为1,检测到尚未按下键盘。当使用者按下键盘按钮,则键盘输入到按键监测电路COLUMN的值为0,直到键盘扫描到此键时则KEY_PRESSED0检测到已按键。624键盘弹跳消除电路一般按键的弹跳现象,如图62所示,虽然只是按下按键一次然后放掉,结果在按键信号稳定前后,竟出现了一些不该存在的噪声,如果将这样的信号直接图6134矩阵键盘的面板配置输入至计数器之类的电路,结果将可能发生计数超过一次以上的误动作。因为按键大多数是机械式开关结构,在开关切换的瞬间会在接触点出现来回弹跳的现象,对于激活关闭一般电器如日光灯、电视等一般电子用品,并不会有何影响,但对于灵敏度较高的电路,这种弹跳现象却可能造成误动作而影响到正确性。弹跳现象产生的原因可从图63说明,虽然只是按下按键一次然后放掉,然而实际产生的按键信号却不只跳动一次,经过取样信号的检查后,将会造成误判,以为键盘按了两次。如果调整抽样频率如图64所示,可以发现弹跳现象获得改善。按键信号抽样信号抽样结果按键信号抽样信号抽样结果图63弹跳现象产生的抽样结果图62弹跳信号图64调整抽样频率后得到的抽样结果因此必须加上弹跳消除电路,避免误操作信号的发生。注意,弹跳消除电路所使用的脉冲信号的频率必须比其他电路使用的脉冲信号的频率更高;通常将扫描电路或LED显示电路的工作频率定在24HZ左右,将弹跳消除电路的工作频率定做128HZ左右,两者的工作频率是通常的4倍或更高。624键盘译码电路上述键盘中的按键分为数字和功能按键,每个功能按键可能负责不同的功能,例如“消除”键、“上锁”键和“解锁”键等。数字按键主要是用来输入数字的。但是键盘所产生的输出是无法直接拿来用作密码锁控制电路的输入的;另外,不同的按键具有不同的功能,所有必须有键盘译码电路来规划每个按键的输出形式,以便执行相应的动作。1按键存储电路。因为每次扫描会产生新的按键数据,可能会覆盖前面的数据,所以需要一个按键存储电路,将整个键盘扫描完毕的结果记录下来。2各按键位置与数码关系如表61所示。其中“”为“上锁”键,“”键为“清除/解锁”键。若按下的是数字键,则译成相应的BCD码;若按下的是功能键,则译成四位数的码字,并由密码锁控制电路给出相应的动作。表61按键位置与数码关系扫描位置KEYR3KEYR0键盘输出KEYC2KEYC0相对应的键盘按键键盘译码电路输出按键功能1101F0001数码输入1012F0010数码输入11100113F0011数码输入1104F0100数码输入1015F0101数码输入11010116F0110数码输入1107F0111数码输入1018F1000数码输入10110119F1001数码输入110T1110激活电锁1010F0000数码输入0111011T1111清除及解除电锁63密码锁控制电路密码锁控制电路是整个电路的控制中心,主要完成对数字按键输入和功能按键输入的相应控制。主要工作可归纳如下1数字按键输入部分如果输入数字按键,第一个数字会从显示器的最右端开始显示,此后每新按一个数字后,显示器上的数字必须往左移动一格,以便将新的数字显示出来。若想要更改输入的数字,可按倒退按键来清除前一个输入的数字,或按清除键清除所有输入的数字(归零),再重新输入4位数。既然设计的是四位的电子密码锁,当输入的数字键超过4个时,电路不予理会,而且不会显示第4个以后输入的数字。2功能按键输入部分常见电子密码锁的功能概略如下退格键只清除前一个输入的数字。清除键清除所有输入的数字,即做归零的动作。密码核对在密码变更、解锁电锁之前,必须先核对密码是否正确。密码变更键按下此键时会将目前的数字设定成新的密码。要变更密码前必须输入旧的密码,核对无误后才能进一步变更成新密码。激活电锁键按下此键可将密码锁的门上锁。上锁之前必须先设定密码,才能上锁,此密码必须是4个数字方属有效。解除电锁键按下此键会检查输入的密码是否正确,密码正确即开门。密码清除为了怕使用者忘记密码,系统维护者可考虑设计一个万能密码,不论原先输入的密码是什么,只要输入万能密码即可开锁。在使用电子密码锁的时候,只会用到三种模式,其中文字输入模式用的是数字按键,只有上锁和开锁两个模式必须占用功能按键。在电子密码锁控制电路设计中,一开始的电路是键盘电路程序,之所以把它加进来的原因是实现控制电路中的“清除寄存器”指令的功能,必须由前一节电路的FN信号产生。64密码显示电路这个模块主要将要显示数据的BCD码转换成数码管的七段显示驱动编码,在数码管上依次显示出来。如图65所示为显示电路的方块图,寄存器所存储的数据经由数据选择器进入,在经由译码电路将原来的BCD码转换成七段显示器的显示码,之后传送到七段显示器。而且,七段显示器是轮流点亮而非一起点亮,其显示扫描的速度必须和数据选择器同步,因此需要一个计数器来提供两者的扫描信号。事实上,显示器扫描信号和键盘扫描信号两者对扫描信号的速度要求相近,所以可以共享一组扫描信号。因为设计的是4位数的电子密码锁,一位数需要4个位
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 2025年度土方拉运与综合环境治理合作合同
- 2025年度待岗人员社会活动参与与权益保障合同
- 2025年国际贸易供应链金融合同范本
- 2025版建筑行业工人劳务合同规范文本
- 2025版养老院入住后紧急救援与安全保障合同
- 2025中铁施工企业工程合同范本下载
- 2025版体育用品居间销售服务合同下载
- 2025年度水路危险品运输合同范本
- 2025年地坪工程承包合同-航空航天地坪工程
- 2025版土地复垦工程质量监督服务合同
- 《统计学7章》课件
- 《世界名画蒙娜丽莎》课件
- 黄褐斑的护理查房
- 项目档案质量审核情况报告
- 泰山版(2018版)小学信息技术第5册教学计划
- 环刀法测压实度自动计算表格(2020.4.10)
- 多系统萎缩(改良版)课件
- IATF16949仓库管理制度
- 财务开票员的岗位职责 开票员岗位职责介绍
- 运输管理实务(第四版)PPT完整全套教学课件
- 英语阅读理解专项练习(40篇)
评论
0/150
提交评论