毕业设计基于FPGA的电子密码锁的设计论文带仿真.docx
《毕业设计基于FPGA的电子密码锁的设计论文带仿真.docx》由会员分享,可在线阅读,更多相关《毕业设计基于FPGA的电子密码锁的设计论文带仿真.docx(35页珍藏版)》请在冰豆网上搜索。
毕业设计基于FPGA的电子密码锁的设计论文带仿真
摘要
基于FPGA设计的电子密码锁是一个小型的数字系统,与普通机械锁相比,具有许多独特的优点:
保密性好,防盗性强,可以不用钥匙,记住密码即可开锁等。
目前使用的电子密码锁大部分是基于单片机技术,以单片机为主要器件,其编码器与解码器的生成为软件方式。
在实际应用中,由于程序容易跑飞,系统的可靠性能较差。
本文介绍一种基于现场可编程门阵列FPGA器件的电子密码锁的设计方法采用VHDL语言对系统进行描述,并在FLEX10K10LC84-4上实现。
系统所实现的功能:
用户给电子密码锁设定一个密码,当使用本机键盘开锁时,该密码与用户设定的密码比较,如果密码正确,则开锁;如果密码不正确,则允许用户重新输入密码,最多可输入三次,若三次都不正确,则扬声器报警,直到按复位键才允许再次输入代码。
通过仿真调试,利用可编程器件FPGA的电子密码锁的设计基本达到了预期目的。
当然,该系统在一些细节的设计上还需要不断的完善和改进,特别是对系统的扩展有很好的实用和设计的价值。
关键词:
现场可编程门阵列,硬件描述语言,电子密码锁,扬声器
Abstract
FPGA-baseddesignoftheelectroniccodelockisasmalldigitalsystem,electronicpasswordlockcomparedwithordinarymechanicallocks,withmanyuniqueadvantages:
goodprivacy,securityandstrong,cannotkeytorememberpasswordstounlock,andsoon.AtpresenttheuseoftheelectroniccodelockonmostofSCMtechnologytoSCMasthemaindevices,encodersanddecodersofHealthandthesoftwareapproach.Inpractice,sincetheprocesseasyruntofly,thereliabilityofthesystemcanbepoor.Basedonthispaper,afieldprogrammablegatearraysFPGAdeviceselectronicpasswordlockdesign,VHDLlanguageusedtodescribethesystemandachieveFLEX10K10LC84-4.
Implementationofthesystemfeatures:
usersofelectronicpasswordlocktosetapassword,whenusingthekeyboardunlockthemachine,theuserpasswordandsetthepassword,ifthecorrectpassword,thenunlockifthepasswordisnotcorrect,allowsUserstoenterapassword,canenteruptothreetimes,threetimesifnotcorrect,thespeakeralarm,untiltheresetbuttononlyallowedtore-enterthecode.
ThesimulationtestsusingprogrammabledevicesFPGAelectronicpasswordlockthebasicdesigntoachievetheexpectedgoal.Ofcourse,someofthedetailsofthesysteminthedesignoftheneedtoconstantlyrefinedandimproved,inparticulartheexpansionofthesystemhaveagooddesignandpracticalvalue.
Keywords:
FPGA,VHDL,electronicpasswordlock,speaker
1绪言
系统以利用可编程器件实现电子密码锁的设计为研究背景、现状以及发展方向,明确指出了电子密码锁面临的问题和所解决的方法。
1.1课题背景
基于FPGA的电子密码锁是新型现代化安全管理系统,它集微机自动识别技术和现代安全管理措施为一体,它涉及电子,机械,计算机技术,通讯技术,生物技术等诸多新技术。
它是解决重要部门出入口实现安全防范管理的有效措施,适用各种场合,如银行、宾馆、机房、军械库、机要室、办公间、智能化小区、工厂、家庭等。
在数字技术网络技术飞速发展的今天,电子密码锁技术得到了迅猛的发展。
它早已超越了单纯的门道及钥匙管理,逐渐发展成为一套完整的出入管理系统[1]。
它在工作环境安全、人事考勤管理等行政管理工作中发挥着巨大的作用。
在该系统的基础上增加相应的辅助设备可以进行电梯控制、车辆进出控制,物业消防监控、餐饮收费、私家车库管理等,真正实现区域内一卡智能管理。
目前使用的电子密码锁大部分是基于单片机技术,以单片机为主要器件,其编码器与解码器的生成为软件方式。
在实际应用中,由于程序容易跑飞,系统的可靠性能较差[2]。
基于FPGA的电子密码锁已经是现代生活中经常用到的工具之一,用于各类保险柜、房门、防盗门等等。
用电子密码锁代替传统的机械式密码锁,克服了机械式密码锁密码量少、安全性能差的缺点。
由于采用的是可编程逻辑器件FPGA,使得系统有相当大的灵活性,随时可以进行硬件升级、扩展,而且系统设计完善以后还可以将主控的FPGA固化成一片ASIC,那么这块ASIC就可以作为专用的数字密码锁芯片。
而且由于硬件可升级,还可随时增加密码位数或增加新的功能,使得密码锁有更高的安全性、可靠性和方便性[3]。
1.2课题研究的目的和意义
电子杂志、报刊经常刊登有密码开关、密码锁这样的电路,大多数是使用常用的数字电路,如CD4017,然后通过不同的连接方式实现密码控制功能。
这种电路的特点就是密码修改只能通过改变电路的连接来实现,密码很容易被破解,电路复杂,故障率高。
本制作是针对这些电路而设计的,将以往的以单片机实现设计改为可编程器件FPGA利用VHDL编程实现电子密码锁的设计。
这种设计移动方便。
基于FPGA的电子密码锁具有保密强、灵活性高、适用范围广等特点,它在键盘上输入,与打电话差不多,因而易于掌握,其突出优点是“密码”是记在被授权人脑子里的数字和字符,既准确又可靠,不会丢失(除了忘记),难以被窃(除非自己泄露)。
但是密码不能太简单,太简单了就容易被他人在键盘上试探出来,或者可能被旁观者窥测出来,造成保密性不足。
当然,密码又不能太复杂,太复杂了可能自己都糊涂了,或者输入密码操作成功率低,造成使用不便。
因此,为了发扬优点、克服弱点,本设计采用“任意设定数字密码”技术使得被授权人可以根据自己的需要或喜好设定密码,常用常新,在输入密码的过程中,当用户键入错误密码时,系统就会报警,由扬声器发出5秒报警声,当连续三次出现密码错误时,则系统会长时间报警不止,这时必须按复位方可停止。
本设计的FPGA电子密码锁的特点是:
体积小、功耗低、价格便宜、安全可靠,维护和升级都十分方便,具有较好的应用前景。
它与传统锁具的不同之处在于:
它与可编程逻辑器件实现系统的设计,应用简洁清晰的VHDL语言实现设计编程思想,能够实现适时、智能控制管理功能,特别是在系统的扩展上有很好的优势。
1.3国内外概况
随着我国对外开放的不断深入,高档建筑发展很快,高档密码锁具市场的前景乐观。
我国密码锁具行业对密码锁具高新技术的投入正逐年增大,高档密码锁的市场需求也逐年增加[4]。
在安防工程中,锁具产品是关系到整个系统安全性的重要设备,所以锁具产品的优劣也关系了整个安防工程的质量和验收。
目前,市场上比较先进的智能电子密码锁分别有:
IC卡电子密码锁、射频卡式电子密码锁、红外遥控电子密码锁、指纹识别电子密码锁和瞳孔识别电子密码锁等。
IC卡电子密码锁成本低,体积小,卡片本身无须电源等优点占领了一定的市场份额,但是由于有机械接触,会产生接触磨损,而且使用不太方便,在一定程度上限制了它的应用;射频卡式电子密码锁是非接触式电子密码锁,成本也不太高,体积跟IC卡密码锁相当,卡片使用感应电源,重量很轻,技术成熟,受到了广泛的欢迎,但是与IC卡电子密码锁相比,成本偏高;指纹识别电子密码锁和瞳孔识别电子密码锁可靠性很高,安全性是目前应用系统中最高的,但是成本高昂,还没进入大众化使用阶段[5]。
在国外,美国、日本、德国的电子密码锁保密性较好,并结合感应卡技术,生物识别技术,使电子密码锁系统得到了飞跃式的发展。
这几个国家的密码锁识别的密码更复杂,并且综合性比较好,已经进入了成熟期,出现了感应卡式密码锁,指纹式密码锁,虹膜密码锁,面部识别密码锁,序列混乱的键盘密码锁等各种技术的系统,它们在安全性,方便性,易管理性等方面都各有特长,新型的电子密码锁系统的应用也越来越广[6]。
1.4课题的主要研究工作
课题主要解决系统硬件和软件两方面的问题。
硬件方面要解决FPGA可编程器件与其外围电路的接口设计的问题;软件方面主要问题是利用VHDL语言完成基于FPGA的电子密码锁的编程问题。
除此之外,程序还要完成基本的密码开锁功能,并通过扬声器长时间鸣叫报警。
本设计是由FPGA可编程逻辑器件编程实现的控制电路,具体有按键指示、输入错误提示、密码有效指示、控制开锁、控制报警等功能。
它具有安全可靠、连接方便、简单易用、结构紧凑、系统可扩展性好等特点。
2FPGA的相关介绍
2.1可编程逻辑器件
在数字电子系统领域,存在三种基本的器件类型:
存储器、微处理器和逻辑器件。
存储器用来存储随机信息,如数据表或数据库的内容。
微处理器执行软件指令来完成范围广泛的任务,如运行字处理程序或视频游戏。
逻辑器件提供特定的功能,包括器件与器件间的接口、数据通信、信号处理、数据显示、定时和控制操作、以及系统运行所需要的所有其它功能[7]。
逻辑器件可分为两大类,即固定逻辑器件和可编程逻辑器件。
正如其命名一样,固定逻辑器件中的电路是永久性的,它们完成一种或一组功能,一旦制造完成,就无法改变。
另一方面,可编程逻辑器件(PLD)是能够为客户提供范围广泛的多种逻辑容量、特性、速度和电压参数的标准成品部件——而且此类器件可在任何时间改变,从而完成许多种不同的功能[8]。
对于固定逻辑器件,根据器件复杂性不同,从设计、原型到最终生产所需要的时间可从数月至一年多不等。
而且,如果器件工作不合适,或者如果应用要求发生了变化,那么就必须开发全新的设计。
设计和验证固定逻辑的前期工作需要大量的NRE成本。
NRE代表在固定逻辑器件最终从芯片制造厂制造出来以前客户需要投入的所有成本,这些成本包括工程资源、昂贵的软件设计工具、用来制造芯片不同金属层的昂贵光刻掩膜组以及初始原型器件的生产成本。
这些NRE成本可能从数十万美元至数百万美元。
对于可编程逻辑器件,设计人员可利用价格低廉的软件工具快速开发、仿真和测试其设计。
然后,可快速将设计编程到器件中,并立即在实际运行的电路中对设计进行测试。
原型中使用的PLD器件与正式生产最终设备(如网络路由器、DSL调制解调器、DVD播放器、或汽车导航系统)时所使用的PLD完全相同。
这样就没有了NRE成本,最终的设计也比采用定制固定逻辑器件时完成得更快。
采用PLD的另一个关键优点是在设计阶段中客户可根据需要修改电路,直到对设计工作感到满意为止。
这是因为PLD基于可重写的存储器技术——要改变设计,只需要简单地对器件进行重新编程。
一旦设计完成,客户可立即投入生产,只需要利用最终软件设计文件简单地编程所需要数量的PLD就可以了。
2.2FPGA的简介
FPGA是英文FieldProgrammableGateArray的缩写,即现场可编程门阵列,它是在PAL、GAL、EPLD等可编程器件的基础上进一步发展的产物[9]。
它是作为专用集成电路(ASIC)领域中的一种半定制电路而出现的,既解决了定制电路的不足,又克服了原有可编程器件门电路数有限的缺点。
FPGA采用了逻辑单元阵列LCA(LogicCellArray)这样一个新概念,内部包括可配置逻辑模块CLB(ConfigurableLogicBlock)、输出输入模块IOB(InputOutputBlock)和内部连线(Interconnect)三个部分。
FPGA的基本特点主要有:
1)采用FPGA设计ASIC电路,用户不需要投片生产,就能得到合用的芯片。
2)FPGA可做其它全定制或半定制ASIC电路的中试样片。
3)FPGA内部有丰富的触发器和I/O引脚。
4)FPGA是ASIC电路中设计周期最短、开发费用最低、风险最小的器件之一。
5)FPGA采用高速CHMOS工艺,功耗低,可以与CMOS、TTL电平兼容。
可以说,FPGA芯片是小批量系统提高系统集成度、可靠性的最佳选择之一。
目前FPGA的品种很多,有XILINX的XC系列、TI公司的TPC系列、ALTERA公司的FIEX系列等。
FPGA是由存放在片内RAM中的程序来设置其工作状态的,因此,工作时需要对片内的RAM进行编程。
用户可以根据不同的配置模式,采用不同的编程方式。
加电时,FPGA芯片将EPROM中数据读入片内编程RAM中,配置完成后,FPGA进入工作状态。
掉电后,FPGA恢复成白片,内部逻辑关系消失,因此,FPGA能够反复使用。
FPGA的编程无须专用的FPGA编程器,只须用通用的EPROM、PROM编程器即可。
当需要修改FPGA功能时,只需换一片EPROM即可。
这样,同一片FPGA,不同的编程数据,可以产生不同的电路功能。
因此,FPGA的使用非常灵活。
FPGA有多种配置模式:
并行主模式为一片FPGA加一片EPROM的方式;主从模式可以支持一片PROM编程多片FPGA;串行模式可以采用串行PROM编程FPGA;外设模式可以将FPGA作为微处理器的外设,由微处理器对其编程[10]。
2.3FPGA的应用特点
随着电子技术的飞速发展,基于FPGA的设计向高集成度高速度和低价位方向不断迈进其应用领域不断扩大这主要是由于FPGA以下技术特点的不断发展[11]。
(1)集成度越来越高
如Lattice的ispLSI或AMD的MACH芯片等效逻辑门已达10万门以上Altera的10K系列也在25万门以上具有1万个以上的寄存器40kbit嵌人式存储器使得集成复杂信号处理算法成为可能Raphael系列已达到100万门以上集中了FLEX10KFLEX6000MAX7000的所有优点可进行单片设计Xilinx推出了上百万门的FPGA,它们可实现几乎任何形式的数字电路或数字系统的设计FPGA在系统中直接应用率正直逼ASIC的开发2.2在系统编程(ISP)/在线路重配置(ICR)技术。
FPGA越来越多地采用了先进的JTAGISP和ICR技术。
这种先进的编程方式已成为当今世界上各类可编程器件发展的趋势在5V工作电平下可随时对正在工作的系统上的CPLD/FPGA进行全部或部分地在系统编程并可进行芯片内部资源的重新分配同时进行所谓菊花链式多芯片串行编程其编程次数多达1万次如Lattice的ispLSIAMD的MACH以及Xilinx的XC9000系列对于SRAM结构的FPGA其下载编程次数几乎没有限制如Altera的FLEX10K系列这种编程方式可轻易地实现红外编程超声编程或无线编程或通过电话线远程在线编程这些功能在工控智能仪器表通讯和军事上有特殊用途。
(2)嵌入式存贮技术
在CPLD/FPGA内部嵌人一定数量的存贮器存贮器类型有双口SRAMROMFIFO可用于存贮信号处理的系数中间结果等这对设计电子系统的智能化功能提供了技术支持
(3)时钟锁定和倍频技术
Altera的10K系列采用了时钟锁定和倍频技术解决了时钟脉冲延迟和偏斜问题并使PLD内部时钟更高单个16bit乘法器速度可达100MHz以上这正是大带宽高速实时信号的需要CPLD/FPGA的时钟延迟可达纳秒级结合其并行工作方式在超高速应用领域和实时测控方面有非常广阔的应用前景。
(4)电子设计自动化EDA工具
EDA工具使得用户对设计的输入综合仿真非常方便Altera的Max+PlusII给用户提供了丰富的宏库和LPM(参数模块库LibraryofParameterizedModules)EDA环境由Unix/Windows共存开发环境转换事实上通过符合国际标准的硬件描述语言如VHDL或VERILOGHDL来进行电子系统设计和产品开发由于开发工具的通用性设计语言的标准化以及设计过程几乎与所用的CPLD/FPGA器件的硬件结构没有关系所以设计成功的各类逻辑功能块软件有很好的兼容性和可移植性它几乎可用于任何型号的CPLD/FPGA中从而使得片上系统的产品设计效率大幅度提高,使其用更为广泛和方便。
(5)开发周期短
由于FPGAN内部资源丰厚及功能强大以及相应的EDA软件功能完善和强大仿真能力便捷而实时开发过程形象而直观兼之硬件因素涉及甚少,一些EDA专家指出未来的大系统FPGA设计仅是各类再应用逻辑与IP核CORE的拼装TI公司认为一个ASIC80功能可用IP核等现成逻辑合成因此可在很短的时间内完成十分复杂的系统设计。
2.4FPGA的应用前景
在数字化的道路上,电子设计技术经历了并将继续经历许多重大的变革,从应用小规模集成电路SSI芯片构成电路系统,到广泛应用微控制器或单片机MCU在电子系统设计上发生了具有里程碑意义的飞跃这一飞跃不但克服了SSI数字系统许多缺陷和设计困难同时也为电子技术的应用开阔了更广泛的前景,随着社会经济的发展和技术进步及电子技术的迅猛发展,电子设计技术面临另一次更大意义的,即FPGA复杂可编程逻辑器件FieldProgrammableGateArray-FPGA/现场可编程门阵列ComplexProgrammablelogicDevice-CPLD在EDA电子设计自动化基础上的广泛应用.从本质上说,新的电子系统运转的物理机制又归回到原来的纯数字电路结构,但在更高层次上容纳了过去数字技术的优秀部分,扬弃了MCU系统的应用模式,却包括了MCU的内部资源,使电子设计的技术操作和系统构成的整体发生质的飞跃,是一种更高层次的循环,如果说MCU在逻辑的实现上是无限的话,那么CPLD/FPGA不但包括了MCU这一特点且可触及硅片电路线度的物理极限并兼有串并行工作方式高速高可靠性以及宽口径实用性等多方面的特点,不仅如此,随着EDA技术的发展和FPGA在深亚微米领域的进军。
它们与MCUMPUDSPA/DD/ARAM和ROM等独立器件间的物理与功能界限已日趋模糊特别是软/硬IP芯核IntelligenceProperty产业的迅猛发展嵌人式通用及标准FPGA器件很快就会出现片上系统SOC也已近在咫尺CPLD/FPGA以其不可替代的地位及伴随而来的极具知识经济特征的IP芯核产业的崛起正越来越受到电子技术工程师的密切关注EDA打破了软硬件之间最后的屏障使软硬件工程师们有了真正的共同语言使目前一切仍处于计算机辅助性设计CAD和规划的电子设计活动产生了实在的设计实体电子设计专家指出基于EDA的CPLD/FPGA的应用和技术推广是我国未来电子设计技术发展的主流而基于EDA的IP芯核产业的推动应是我国在新世纪知识经济发展的重要切入点之一[12]。
无论怎样的问题和障碍,FPGA的应用热潮正逐步形成随着FPGA集成水平的进一步提高芯核产业的进一步扩大,可以相信用不了多久大部分的电子设计领域MCU、MPU、DSP或AD/A和RAM等必将以各种软硬核的形式FPGA实现真正的单片系统。
3基于FPGA设计的硬件描述语言VHDL
3.1VHDL语言简介
目前数字系统的设计可以直接面向用户需求,根据系统的行为和功能要求,自上而下地逐层完成相应的描述、综合、优化、仿真与验证,直到生成器件,实现电子设计自动化。
其中电子设计自动化EDA(即ElectronicDesignAutomation)的关键技术之一就是可以用硬件描述语言(HDL)来描述硬件电路。
VHDL(VHSICHardwareDescriptionLanguage)是用来描述从抽象到具体级别硬件的工业标准语言,它是由美国国防部在20世纪80年代开发的HDL,现在已成为IEEE承认的标准硬件描述语言。
VHDL支持硬件的设计、验证、综合和测试,以及硬件设计数据的交换、维护、修改和硬件的实现,具有描述能力强、生命周期长、支持大规模设计的分解和已有设计的再利用等优点[13]。
VHDL主要用于描述数字系统的结构、行为和功能,其程序结构特点是将一个电路模块或一个系统分成端口和内部功能算法实现两部分。
对于一个电路模块或者数字系统而言,定义了外部端口后,一旦内部功能算法完成后,其他系统可以直接依据外部端口调用该电路模块或数字系统,而不必知道其内部结构和算法。
VHDL的特点使得电子系统新的设计方法——“自顶向下”设计方法更加容易实现[14]。
可以先对整个系统进行方案设计,按功能划分成若干单元模块,然后对每个单元模块进一步细分,直到简单实现的单元电路。
3.2VHDL语言的特点
VHDL语言主要用于描述数字系统的结构、行为、功能和接口,其具有以下特点:
(1)作为HDL的第一个国际标准,VHDL具有很强的可移植性;
(2)具有丰富的模拟仿真语句和库函数;
(3)VHDL有良好的可读性,接近高级语言,容易理解;
(4)系统设计与硬件结构无关;
(5)支持模块化设计;
(6)用VHDL完成的一个确定设计,可以利用EDA工具自动地把VHDL描述转变成门电路级网表文件。
3.3VHDL语言的优点
与其他硬件描述语言相比,VHDL语言有如下优越之处[15]:
(1)VHDL语言支持自上而下(Top Down)和基于库(LibraryBase )的设计方法,还支持同步电路、异步电路、FPGA以及其他随机电路的设计;
(2) VHDL语言具有多层次描述系统硬件功能的能力,可以从系统的数学模型直到门级电路,其高层次的行为描述可以与低层次的RTL描述和结构描述混合使用,还可以自定义数据 类型,给编程人员带来较大的自由和方便;
(3)VHDL对设计的描述具有相对独立性,设计者可以不懂硬件的结构,也不必关心最终设计实现的目标器件是什么;
(4)VHDL具有电路仿真与验证功能,可以保证设计的正确性,用户甚至不必编写如何测试相量便可以进行源代码级的调试,而且设计者可以非常方便地比较各种方案之间的可行性及其优劣,不需做任