《基于FPGA的门禁系统设计说课材料.doc》由会员分享,可在线阅读,更多相关《基于FPGA的门禁系统设计说课材料.doc(36页珍藏版)》请在淘文阁 - 分享文档赚钱的网站上搜索。
1、Good is good, but better carries it.精益求精,善益求善。基于FPGA的门禁系统设计-摘要门禁系统是集计算机技术、电子技术、数字密码技术为一体的机电一体化高科技产品,具有安全性高,使用方便等优点。本论文从门禁系统系统整体功能,硬件电路设计、软件设计等方面阐述密码门禁系统设计过程。密码门禁系统系统包括电子锁,电子钥匙,用户卡及用户卡生成器四部分。电子锁里保存着当前开门密码,以及用户第一次使用用户卡时的用户卡号和加密位。用户凭用户卡在门上随时更改开门密码,更新或配制钥匙里的开门密码。本系统考虑到门禁系统成本及体积因素,在设计门禁系统部分时,以FPGA为核心;由多个
2、数码管,按键和发光二极管组成外围电路。本文采用VHDL语言使用自顶而下的方法对系统进行了描述。采用FPGA开发设计,所有算法完全由硬件电路来实现,使得系统的工作可靠性大为提高,同时由于FPGA具有在系统可编程功能,当设计需要更改对,只需更改FPGA中的控制和接口电路,利用EDA工具将更新后的设计下载到FPGA中即可,无需更改外部电路的设计,大大提高了设计的效率。因此,采用FPGA开发的数字系统,不仅具有很高的工作可靠性,其升级与改进也极其方便。关键词:门禁系统FPGAVHDL-AbstractThetechnologyofaccesscontrolsystemcombinescomputer,
3、electronicsanddigitalcodingtechnologytogether,andseemstobeahigh-techelectromechanicalintegrationproduct,canbeusedsafelyandeasily.Thispaperdiscussedthewholesystemarchitectureoftheaccesscontrolsystem;hardwaredesignandsoftwaredesignwerepresentedseparately.Thewholepasswordaccesscontrolsystemconsistsoffo
4、urparts:electroniclock,electronickey,usercardandusercardgenerator.Theelectroniclockisusedtopreservethecurrentunlockpassword,theusercardnumbersandencryptedspaces.Userscanusethecardtounlockthelock,updateorpreparationtheunlockpasswordatanytime.Thecostandsizeareputmostemphasisinthedesignofaccesscontrols
5、ystem.DesignbasedonFPGAispresented.Thesystemthenisdesignedandverifiedthroughsomeexternalcircuitcomponents,suchaskeyboardandLEDs.ThepaperisdescribedwithVHDLusingthetop-downapproach.FPGA-baseddevelopmentanddesignwhichisachievedallentirelybythehardwarecircuitalgorithm,makesthesystemworkmuchmorereliabil
6、ity,aswellasbecauseFPGAinthesystemcanbemadeavailableforthein-systemprogrammablefunction,whenthedesignneedstobechanged,thecontrolandtheinterfacecircuitcanberestructuredintheFPGAconveniently,usingEDAtools,todownloadtheupdateddesigntotheFPGAwithoutchangingtheexternalcircuitdesignSotheefficiencyofthedes
7、ignCanbeprovedThus,thedigitalsystemimplementedbyFPGAisofhighreliability,andtheupgradeandimprovementisextremelyconvenientKeywords:accesscontrolsystemFPGAVHDL目录摘要IAbstractII目录III绪论11门禁系统的分类及特点21.1门禁系统的分类及特点21.1.1按进出识别方式分类21.1.2按设计原理分类31.1.3按与微机通汛方式分类32开发工具简介42.1Max+plus开发系统的特点42.2FPGA简介52.21FPGA基本工作原理
8、52.22FPGA的基本特点52.23FPGA设计流程52.3芯片选择63门禁系统总体方案73.1系统概述74门禁系统实现94.1门禁系统输入电路的设计94.1.1矩阵式键盘的工作原理94.1.2门禁系统输入电路各主要功能模块的设计114.2门禁系统控制电路的设计154.2.1数字按键输入的响应控制154.2.2功能按键输入的响应控制154.3门禁系统显示电路的设计164.4门禁系统的整体组装设计175主要VHDL源程序185.1键盘输入去抖电路的VHDL源程序185.2键盘输入去抖电路的仿真205.3门禁系统输入电路的VHDL源程序205.4门禁系统输入电路的仿真245.5门禁系统控制电路的
9、VHDL源程序255.6门禁系统控制电路的仿真28结论29致谢30参考文献31绪论据有关资料介绍,电子锁门禁系统的研究从上世纪30年代就开始了,在某些特殊场所早就有所应用。研究这种门禁系统的初衷,是提高门的安全性,因为电子锁的密钥量(密码量)极大,可以和机械锁配合,避免因钥匙被仿制而出现的问题。因为人们携带的钥匙很多已成累赘,而电子密码锁门禁系统只需记住一组密码,无需携带金属钥匙,免除了人们的烦恼。电子锁门禁系统的种类繁多,从大的方面讲可能有数十种,例如数码门禁,指纹门禁、卡片门禁,磁卡门禁、生物锁门禁等等。但这些产品的特点是针对特定指纹或有效卡,只能适用于保密要求高且仅供个别人使用的箱、柜、
10、房间等,而且卡片式IC卡还有易丢失等特点,加上其成本一般比较高,一定程度上限制了这类产品的普及和推广,能谈的上实用一些或者大众化一些的还是按键式门禁系统。这是一种操作方式类似于按键电话机的电子锁,通过键盘上的数码按键依次输入一组密码,如果密码与内部已约定的密码相同,则输出一个电信号,以驱动电磁铁或者小马达将门闩打开,完成一个开门过程。目前随着电子技术的发展,具有防盗报警等功能的电子密码锁门禁系统代替密码量少、安全性差的机械式密码锁门禁系统已是必然趋势。电子密码锁门禁系统与普通机械锁门禁相比,具有许多独特的优点:保密性好,防盗性强,可以不用钥匙,记住密码即可开锁等。当前使用的电子密码锁门禁系统大
11、部分是基于单片机技术,以单片机为主要器件,其编码器与解码器的生成为软件方式。在实际应用中,由于程序容易跑飞,系统的可靠性能较差。本课题设计一个具有较高安全性能和较低成本的通用门禁系统,能够实现如下功能:(1)数码输入:每按下一个数字键,就输入一个数值,并在显示器上的最右方现实出该数值,同时将先前输入的数据依序左移一个数字位置。(2)数码清除:按下此键可清除前面所有的输入值,清除成为“0000”。(3)密码更改:按下此键时会将目前的数字设定成新的密码。(4)激活电锁:按下此键可将门禁系统上锁。(5)解除电锁:按下此键会检查输入的密码是否正确,密码正确即解锁。1门禁系统的分类及特点1.1门禁系统的
12、分类及特点从技术产品发展的规律看,在功能相似的情况下,简单可靠的东西总是替代繁杂的东西,而它正是以简代繁的东西。所以,它是大众化的实用性新产品,替代传统圆盘式机械门禁系统和部分门禁系统是应该的。近几年,随着智能卡技术、生物识别技术的发展,门禁系统得到了飞跃式的发展,进入了成熟期,它们在安全性、方便性、易管理性等方面都各有特长,门禁系统的应用领域也越来越广。门禁系统是新型现代化安全管理系统,它集微机自动识别技术和现代安全管理措施为一体,涉及电子、机械、光学、计算机技术、通讯技术,生物技术等诸多新技术。它是解决重要部门出入口实现安全防范管理的有效措施。在数字技术网络技术飞速发展的今天,门禁技术得到
13、了迅猛的发展。门禁系统早已超越了单纯的门道及钥匙管理,它已经逐渐发展成为一套完整的出入管理系统。它在工作环境安全、人事考勤管理等行政管理工作中发挥着巨大的作用。1.1.1按进出识别方式分类(1)密码识别:通过检验输入密码是否正确来识别进出权限。这类产品又分两类:普通型:优点是操作方便,无须携带卡片;成本低。缺点是同时只能容纳三组密码,只能单向控制。乱序键盘型(键盘上的数字不固定,不定期自动变化):优点是操作方便,无须携带卡片,安全系数稍高。缺点是密码容易泄露,安全性还是不高;无进出记录;只能单向控制;成本高。(2)卡片识别:通过读卡或读卡加密码方式来识别进出权限。按卡片种类又分为:磁卡:优点是
14、成本较低;一人一卡,安全一般,可联计算机,有开门记录。缺点是卡片、设备有磨损,寿命较短;卡片容易复制;不易双向控制;卡片信息容易因外界磁场丢失,使卡片无效。射频卡:优点是卡片与设备无接触,开门方便安全;寿命长,理论数据至少十年;安全性高,可联计算机,有开门记录;可以实现双向控制;卡片很难被复制。缺点是成本较高。(3)生物识别:通过检验人员生物特征等方式来识别进出,有指纹型、虹膜型、面部识别型。优点:从识别角度来说安全洼极高;无须携带卡片。缺点:成本很高;识别率不高,对环境要求高,对使用者要求高(比如指纹不能划伤,眼不能红肿出血,脸上不能有伤,或胡子的多少);使用不方便(比如虹膜型的和面部识别型
15、的,安装高度位置一定了,但使用者的身高却各不相同)。1.1.2按设计原理分类(1)控制器自带读卡器(识别仪),这种设计的缺陷是控制器须安装在门外,因此部分控制线必须露在门外,内行人无须卡片或密码可以轻松开门。(2)控制器与读卡器(识别仪)分体这类系统控制器安装在室内,只有读卡器输入线露在室外,其它所有控制线均在室内,而读卡器传递的是数字信号,因此,若无有效卡片或密码任何人都无法进门。这类系统应是用户的首选。1.1.3按与微机通汛方式分类(1)单机控制型:这类产品是最常见的,适用与小系统或安装位置集中的单位。常用于酒店、宾馆。(2)采用总线通讯方式它的优点是投资小,通讯线路专用。缺点是由于受总线
16、负载能力的约束,系统规模一般比较小;无法实现真正意义上的实时监控;受总线传输距离影响(理论上可达1200米,实际施工中能达到400一600米就已算比较远了),不适用于点数分散的场合。另外一旦安装好就不能方便地更换管理中心的位置,不易实现网络控制和异地控制。(3)以太网网络型这类产品的技术含量高,它的通讯方式采用的是网络常用的TCPIP协议。这类系统的优点是控制器与管理中心是通过局域网传递数据的,管理中心位置可以随时变更,不需重新布线,很容易实现网络控制或异地控制。适用于大系统或安装位置分散的单位使用。这类系统的缺点是系统的通讯部分的稳定需要依赖于局域网的稳定。2开发工具简介2.1Max+plu
17、s开发系统的特点Max+plus是Altera公司提供的FPGA/CPLD开发集成环境,Altera是世界上最大可编程逻辑器件的供应商之一。Max+plus界面友好,使用便捷,被誉为业界最易用易学的EDA软件。在Max+plus上可以完成设计输入、元件适配、时序仿真和功能仿真、编程下载整个流程,它提供了一种与结构无关的设计环境,是设计者能方便地进行设计输入、快速处理和器件编程。其特点如下:(1)开放的界面Max+plus支持与Cadence,Exemplarlogic,MentorGraphics,Synplicty,Viewlogic和其它公司所提供的EDA工具接口。(2)与结构无关Max+
18、plus系统的核心Complier支持Altera公司的FLEX10K、FLEX8000、FLEX6000、MAX9000、MAX7000、MAX5000和Classic可编程逻辑器件,提供了世界上唯一真正与结构无关的可编程逻辑设计环境。(3)完全集成化Max+plus的设计输入、处理与较验功能全部集成在统一的开发环境下,这样可以加快动态调试、缩短开发周期。(4)丰富的设计库Max+plus提供丰富的库单元供设计者调用,其中包括74系列的全部器件和多种特殊的逻辑功能(Macro-Function)以及新型的参数化的兆功能(Mage-Function)。(5)模块化工具设计人员可以从各种设计输入
19、、处理和较验选项中进行选择从而使设计环境用户化。(6)硬件描述语言(HDL)Max+plus软件支持各种HDL设计输入选项,包括VHDL、VerilogHDL和Altera自己的硬件描述语言AHDL。(7)Opencore特征Max+plus软件具有开放核的特点,允许设计人员添加自己认为有价值的宏函数。2.2FPGA简介FPGA采用了逻辑单元阵列LCA(LogicCellArray)这样一个概念,内部包括可配置逻辑模块CLB(ConfigurableLogicBlock)、输出输入模块IOB(InputOutputBlock)和内部连线(Interconnect)三个部分。2.21FPGA基本
20、工作原理FPGA是由存放在片内RAM中的程序来设置其工作状态的,因此,工作时需要对片内的RAM进行编程。用户可以根据不同的配置模式,采用不同的编程方式。加电时,FPGA芯片将EPROM中数据读入片内编程RAM中,配置完成后,FPGA进入工作状态。掉电后,FPGA恢复成白片,内部逻辑关系消失,因此,FPGA能够反复使用。FPGA的编程无须专用的FPGA编程器,只须用通用的EPROM、PROM编程器即可。当需要修改FPGA功能时,只需换一片EPROM即可。这样,同一片FPGA,不同的编程数据,可以产生不同的电路功能。因此,FPGA的使用非常灵活。2.22FPGA的基本特点(1)采用FPGA设计AS
21、IC电路,用户不需要投片生产,就能得到合用的芯片。(2)FPGA可做其它全定制或半定制ASIC电路的中试样片。(3)FPGA内部有丰富的触发器和IO引脚。(4)FPGA是ASIC电路中设计周期最短、开发费用最低、风险最小的器件之一。(5)FPGA采用高速CHMOS工艺,功耗低,可以与CMOS、TTL电平兼容。可以说,FPGA芯片是小批量系统提高系统集成度、可靠性的最佳选择之一10。2.23FPGA设计流程MAX+PLUSII曾经被普遍认为是最优秀的PLD开发平台之一,适合开发中小规模PLD/FPGA。在这里我们可以先看一看用FPGACPLD开发工具进行电路设计的一般流程,通常可将FPGA/CP
22、LD设计流程归纳为以下7个步骤,这与ASIC设计有相似之处。(1)设计输入。在传统设计中,设计人员是应用传统的原理图输入方法来开始设计的。自90年代初,Verilog、VHDL、AHDL等硬件描述语言的输入方法在大规模设计中得到了广泛应用。(2)前仿真(功能仿真)。设计的电路必须在布局布线前验证电路功能是否有效。(ASCI设计中,这一步骤称为第一次Sign-off)PLD设计中,有时跳过这一步。(3)设计编译。设计输入之后就有一个从高层次系统行为设计向门级逻辑电路设转化翻译过程,即把设计输入的某种或某几种数据格式(网表)转化为软件可识别的某种数据格式(网表)。(4)优化。对于上述综合生成的网表
23、,根据布尔方程功能等效的原则,用更小更快的综合结果代替一些复杂的单元,并与指定的库映射生成新的网表,这是减小电路规模的一条必由之路。(5)布局布线。在PLD设计中,3-5步可以用PLD厂家提供的开发软件(如Maxplus2)自动一次完成。(6)后仿真(时序仿真)需要利用在布局布线中获得的精确参数再次验证电路的时序。(ASCI设计中,这一步骤称为第二次Signoff)。(7)生产。布线和后仿真完成之后,就可以开始ASCI或PLD芯片的投产。2.3芯片选择本设计选用杭州康芯电子有限公司生产的GW48EDA系统作为硬件验证系统,同时选用A1tera公司的EPlK30TCl443作为主控芯片。该芯片是
24、一种基于查找表结构的现场可编程逻辑器件,它的基本逻辑单元是可编程的查找表。能够实现组合逻辑运算,并可用可编程寄存器实现时序逻辑运算。设计时只需要对电子密码锁整体设计中的输入输出引脚作引脚锁定然后重新编译和下载。即可进行电子密码锁的硬件验证。实验表明:本设计能够实现电子密码锁的全部功能。3门禁系统总体方案3.1系统概述作为通用门禁系统,主要有各个部分组成:数字密码输入电路、门禁系统控制电路和门禁系统显示电路。作为电子密码琐的输入电路,可供选择的方案有数字机械式键盘和触摸式键盘等多种。虽然机械式键盘存在一些诸如机械产生的弹跳消除问题和机械部分的接触等问题,但是和出没式的3*4键盘相比,机械式键盘具
25、有低成本、可靠性高、构成电路简单、技术成熟和应用广泛等特点,因此将其应用到通用数字门禁系统中还是比较适宜的。本设计中采用一个3*4的通用数字机械键盘作为设计的输入设备。数字门禁系统的显示信息电路可采用LED数码管显示和液晶屏幕显示两种。液晶显示具有高速度显示、高可靠性、易于扩展和升级等优点,但是普通液晶显示屏存在亮度低、对复杂环境的适应能力差等缺点,在低亮度的环境下还需要加入其它辅助的照明设备,驱动电路设计相对复杂,因此本设计的显示电路仍使用通用的LED数码管。根据以上选定的输入设备和显示器件,并考虑到现实各项数字门禁系统功能的具体要求,整个门禁系统系统的总体框图如图3-1所示。(1)门禁系统
26、输入电路包括时序产生电路、键盘扫描电路、去抖电路、键盘译码电路等几个小的功能电路。(2)门禁系统控制电路包括按键数据的缓冲存储电路,密码的清除、变更、存储、激活电锁电路(寄存器清除信号发生电路),密码核对(数值比较电路),解锁电路(开/关门锁电路)等几个小的功能电路。(3)七段数码管显示电路主要将待显示数据的BCD码转换成数码器的七段显示驱动编码。时序产生电路键盘键盘输入弹跳消除电路键盘译码电路扫描信号键盘扫描电路密码锁输入电路密码锁控制电路寄存器清除信号发生电路开/关门锁电路数值比较电路按键数据缓存器显示电路显示七段译码电路七段译码管图3-1门禁系统总体框图4门禁系统实现4.1门禁系统输入电
27、路的设计图4-1是门禁系统的输入电路框图,由键盘扫描电路、去抖电路、键盘译码电路、按键数据缓存器,加上外接一个3*4矩阵式键盘组成。键盘键盘输入去抖电路键盘译码电路按键数据缓存器按键数据键盘扫描电路工作时钟脉冲信号键盘扫描信号123456789*0#图4-1门禁系统的输入电路框图4.1.1矩阵式键盘的工作原理矩阵式键盘是一种常见的出入装置,在日常的生活中,矩阵式键盘在计算机、电话、手机、微波炉等各式电子产品上已经被广泛应用。图4-2是一个3*4矩阵式键盘的面板配置图,其中数字0-9作为密码数字输入按键,*作为“上锁”功能按键,#作为“接触密码”功能按键。KX2KY0(11)0111KY1(10
28、)1011KY2(01)1101KY3(00)11101110键盘扫描信号KX1KX0经提升电阻至VCC123475689#0*图4-23*4矩阵式键盘的面板配置键盘上的每一个按键其实就是一个开关电路,当某键被按下去时,该按键的接点会呈现0的状态,反之,未被按下时则呈现逻辑1的状态。扫描信号由KY3-KY0进入键盘,变化的顺序依次为1110-1101-1011-1110。每一次扫描一排,依次地周而复始。例如现在的扫描信号为1011,代表目前正在扫描7、8、9这一排的按键,如果这排当中没有按键被按下的话,则由KX2-KX0读出的值为111;反之当7这个按键被按下的话,则由KX2-KX0读出的值为
29、011。根据上面所述原理,我们可得到各按键的位置与数码关系如表4-1所示。表4-1按键位置与数码关系KY3-KY0111011101110110111011101101110111011011101110111KX2-KX0011101110011101110011101110011101110按键号123456789*0#若从KX2-KX0读出的值皆为1时,代表该列没有按键按下,则不进行按键译码的动作,反之,如果有按键按下时,则应将KX2-KX0读出的值送至译码电路进行编码。4.1.2门禁系统输入电路各主要功能模块的设计(1)时序产生电路本时序产生电路中使用了三种不同频率的工作脉冲波形:系统
30、时钟脉冲(它是系统内部所有时钟脉冲的源头,且其频率最高)、弹跳消除取样信号、键盘扫描信号。当一个系统中需要使用多种操作频率的脉冲波形时,最为方便的方法之一就是利用一个自由计数器来产生各种需要的频率。也就是先建立一个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(5DOWNTO4)取得的是一个脉冲序列,其值依0
31、0-01-10-11-00-01周期性变化,其变化频率为CLK的25分频,也就是32分频。我们利用以上规律即可得到各种我们所需要频率的信号或信号序列。(2)键盘扫描电路扫描电路的作用是用来提供键盘扫描信号(表3.1中的KY3-KY0)的,扫描信号变化的顺序依次为1110-1101-1011-0111-1110依序的周而复始。扫描时依序分别扫描四列按键,当扫描信号为1110时扫描KY3这一排按键;当扫描信号为1101时,扫描KY2这一排按键;当扫描信号为1011时,扫描KY1这一排按键;当扫描信号为0111时,扫描KY0这一排按键。每扫描一排按键就检查一次是否有按键被按下,如果这排没有按键被按下
32、就忽略,反之,如果出现被按下的键则立刻进行按键编码的动作,且将编码的结果储存于寄存器中。(3)去抖电路由于本设计中采用的矩阵式键盘是机械开关结构,因此在开关切换的瞬间会在接触点出现信号来回弹跳的现象,对于门禁系统这种灵敏度较高的电路这种弹跳将很可能会造成误动作输入,从而影响到门禁系统操作的正确性。因此必须加上去抖电路,避免误操作信号的发生。特别要注意的是,去抖电路所使用的脉冲信号的频率必须比其他电路使用的脉冲信号的频率更高;通常将扫描电路的工作频率定在24HZ左右,而将去抖电路的工作频率定在128HZ左右,其工作频率通常是前者的4倍或者更高。去抖电路Debouncing的框图4-3如下。图4-
33、3Debouncing的框图弹跳消除电路的实现原理如图4-4所示,先将键盘的输入信号D_IN作为电路的输入信号,CLK是电路的时钟脉冲信号,也就是取样信号,D_IN经过两级D触发器延时后再使用RS触发器处理。CLKD_INOFFOFFSQRQD_OUTNOTNOTAND2AND2D0D1VCCPRNDQCLRNPRNDQCLRN图4-4弹跳消除电路的内部实现原理图此处RS触发器的前端连接和非门的处理原则是:因为一般人的按键速度至多是10秒/次,亦即一次按键时间是100ms,所以按下的时间可估算为50ms。以取样信号CLK的周期为8ms计,则可以取样到6次。对于不稳定的噪声,在4ms以下则至多抽
34、样一次。在触发器之前,接上AND-NOT之后,SR的组态如表3-2所示。表4-2RS触发器真值表SRD_OUT00不变101010D0为1,且D1也为1,结果S=1,R=0,D_OUT才会输出1。这代表被取样的D_IN信号能被连续取样到两次1,此时认定它已经稳定地按下按钮D0为0,且D1也为0时,结果S=0,R=1,D_OUT才会输出0。这代表被取样的D_IN信号能被连续取样到两次0,此时认定它已经稳定地放掉按钮D0为1,且D1也0为0,结果S=0,R=0,D_OUT将维持先前的输出信号不变。D0=0,D1=1也是如此。总之,必须取样到两次1才会输出1,两次0才会输出0。最后,由于D_OUT的
35、信号输出时间宽度过长,所以输出必须再接一级微分电路后,才接到译码电路。(4)键盘译码电路上述键盘中的按键可分为数字按键和文字按键,每一个按键可能负责不同的功能,例如清除数码、退位、激活电锁、开锁等,详细功能见表4-3。表4-3键盘参数表扫描位置KY3-KY0键盘输出KX2-KX0相对应的键盘按键键盘译码电路输出按键功能11100111F=0001数码输入1012F=0010数码输入1103F=0011数码输入11010114F=0100数码输入1015F=0101数码输入1106F=0110数码输入10110117F=0111数码输入1018F=1000数码输入1109F=1001数码输入01
36、11011*T=0100激活电锁1010F=0000数码输入110#T=0001清除/解除电锁注:当没有任何数字按键被按下时,键盘译码输出“1111”;当某功能按键尚未定义其功能时,键盘译码输出“1000”。数字按键主要是用来输入数字的,但是键盘所产生的输出,也就是扫描回复信号,是无法直接拿来用做门禁系统控制电路的输入的;另外,不同的按键(数字按键和功能按键)具有不同的功能,所以必须由键盘译码电路来规划每个按键的输出形式,以便执行相应的动作。键盘译码电路主要负责的工作是:首先判别是否有键按下;若被按下的是数字按键,则解码成相应的BCD码,若被按下的是功能按键,则解码成四位数的码字,由门禁系统控
37、制电路做相应的动作。(5)按键存储电路因为每次扫描会产生新的按键数据,可能会覆盖前面的数据,所以需要一个按键存储电路,将整个键盘扫描完毕后的结果纪录下来。按键存储电路可以使用移位寄存器构成。本设计将采用串行输入/串行输出(SerialIn/SerialOut)移位寄存器硬件作为按键存储电路。所谓的串行输入/串行输出移位寄存器,即数据一个接一个的依序进来,输出时采用先进先出的顺序,同样是一个接着一个依序输出。根据以上设计思路,门禁系统输入电路的KEYBOARD的框图4-5如下,其中调用的程序(元件)DEBOUNCING.VHD为键盘输入去抖电路的VHDL源程序。图4-5KEYBOARD的框图4.
38、2门禁系统控制电路的设计门禁系统控制电路是整个电路的控制中心,主要完成对数字按键输入和功能按键输入的响应控制。4.2.1数字按键输入的响应控制(1)如果按下数字键,第一个数字会从显示器的最右端开始显示,此后每新按一个数字时,显示器上的数字必须左移一格,以便将新的数字显示出来。(2)假如需要更改输入的数字,可以按倒退按键来清除前一个输入的数字,或者按清除键清除所有输入的数字,再重新输入四位数。(3)由于这里设计的是一个四位的门禁系统,所以当输入的数字键超过四个时,电路不予理会,而且不再显示第四个以后的数字。4.2.2功能按键输入的响应控制(1)清除键:清除所有的输入数字。即做归零动作。(2)激活
39、电锁键:按下此键时可将门禁系统的门上锁。(上锁前必须预先设定一个四位的数字密码。)(3)解除电锁键:按下此键会检查输入的密码是否正确,若密码正确无误则开门。使用门禁系统的时候,只会用到三种工作模式(见图4-7),其中输入文字模式用的是数字按键,只有上锁和开锁两个模式必须占用功能按键。但是在实际操作中,难免会有按错键的情况发生,使得“清除输入”功能使用的机率很高,所以本设计中功共设置了两个功能按键,其中“解除电锁”和“清除输入”共用一个功能按键,另一个功能按键是“激活电锁”。控制电路CTRL的框图4-6如下。图4-6CTRL的框图输入文字模式开始输入4位数字,在输入数字时可能使用到清除键开锁工作
40、模式检查输入的密码是否有效核对输入密码是否有效都正确后解除电锁上锁工作模式清除原先储存于组件中的密码输入旧密码后变更密码将新密码回存于存储组件中门禁系统激活上锁图4-7电子门禁系统的三种模式及关系4.3门禁系统显示电路的设计门禁系统显示电路的设计比较简单,这里直接采用四个4-7译码器来实现。显示电路框图如图4-8。图4-8显示电路框图输入信号:in3:0输入4位BCD码。输出信号:a,b,c,d,e,f,g七个一位二进制输出。逻辑功能:将4位BCD码译成能被数码管显示的7位二进制码。源文件为“decode.v”:moduledecode(a,b,c,d,e,f,g,in);outputa,b,
41、c,d,e,f,g;input3:0in;rega,b,c,d,e,f,g;always(in)begincase(in3:0)4d0:a,b,c,d,e,f,g=7b1111110;4d1:a,b,c,d,e,f,g=7b0110000;4d2:a,b,c,d,e,f,g=7b1101101;4d3:a,b,c,d,e,f,g=7b1111001;4d4:a,b,c,d,e,f,g=7b0110011;4d5:a,b,c,d,e,f,g=7b1011011;4d6:a,b,c,d,e,f,g=7b1011111;4d7:a,b,c,d,e,f,g=7b1110000;4d8:a,b,c,d,
42、e,f,g=7b1111111;4d9:a,b,c,d,e,f,g=7b1111011;default:a,b,c,d,e,f,g=7b0000000;endcaseendendmodule4.4门禁系统的整体组装设计将前面各个设计好的功能模块进行整合,可得到一个完整的门禁系统系统的整体组装设计原理图,如图4-9系统外部框图和4-10系统内部结构图所示。图4-9门禁系统总体框图图4-10门禁系统内部结构图5主要VHDL源程序5.1键盘输入去抖电路的VHDL源程序-DCFQ.VHDLIBRARYIEEE;USEIEEE.STD_LOGIC_1164.ALL;ENTITYDCFQISPORT(CL
43、K,CLRN,PRN,D:INSTD_LOGIC;Q:OUTSTD_LOGIC);ENDENTITYDCFQ;ARCHITECTUREARTOFDCFQISBEGINPROCESS(CLK,CLRN,PRN)BEGINIFCLRN=0ANDPRN=1THENQ=0;ELSIFCLRN=1ANDPRN=0THENQ=1;ELSIFCLKEVENTANDCLK=1THENQ=D;ENDIF;ENDPROCESS;ENDARCHITECTUREART;-DEBOUNCING.VHDLIBRARYIEEE;USEIEEE.STD_LOGIC_1164.ALL;LIBRARYALTERA;USEALTE
44、RA.MAXPLUS2.ALL;ENTITYDEBOUNCINGISPORT(D_IN,CLK:INSTD_LOGIC;DDI,DD0,QQ1,QQ0:OUTSTD_LOGIC;D_OUT,D_OUT1:OUTSTD_LOGIC);ENDENTITYDEBOUNCING;ARCHITECTUREARTOFSEBOUNCINGISCOMPONENTDCFQISPORT(CLK,CLRN,PRN,D:INSTD_LOGIC;Q:OUTSTD_LOGIC);ENDCOMPONENTDCFQ;SIGNALVCC,INV_D:DTD_LOGIC;SIGNALQ0,Q1:STD_LOGIC;SIGNALD
45、1,D0:STD_LOGIC;BEGINVCC=1;INV_DCLK,CLRN=INV_D,PRN=VCC,D=VCC,Q=Q0);U2:DCFQPORTMAP(CLK=CLK,CLRN=Q0,PRN=VCC,D=VCC,Q=Q1);PROCESS(CLK)BEGINIFCLKEVENTANDCLK=1THENDO=NOTQ1;D1=D0;ENDPROCESS;DD0=D0;DD1=D1;QQ1=Q1;QQ0=Q0;D_OUT=NOT(D1ANDNOTD0);D_OUT1=NOTQ1;ENDARCHITECTUREART;注:为便于仿真时观察有关中间结果,程序中增加了一些观测点的输出,调试好后程序中的相应语句应注释掉或作相应修改。5.2键盘输入去抖电路的仿真图5-1为键盘输入去抖电路的仿真结果图,图中的输出信号QQ0,QQ1,D_OUT,DD0,DD1是为了便于仿真时观察中间结果而增加的观测点的输出,调试好后程序中的相应语句应注释掉。由图上可以看出,原来的弹跳现象经过键盘输入去抖电路的处理后已经消除了。图5-1键盘输入去抖电路DEBOUNCING.VHD的仿真结果图
限制150内