《EDA课程设计—电子密码锁.docx》由会员分享,可在线阅读,更多相关《EDA课程设计—电子密码锁.docx(16页珍藏版)》请在课桌文档上搜索。
1、电子密码锁设计摘要随着人们生活水平的提高,如何实现家庭防盗这一问题渐渐变的尤为突出,传统的机械锁由于其构造简洁,故平安性能不容乐观,同时电了技术的高速发展使得具有防盗报警等功能的电子密码锁代替密码量少、平安性差的机械式密码锁已是必定趋势。电子密码锁是一种通过密码输入来限制电路或是芯片工作,从而限制机械开关的闭合,完成开锁、闭锁任务的电子产品。目前设计密码锁的方法有许多,而用VHD1.可以更加快速、敏捷地设计出符合各种要求的密码锁,优其他设计方法。关键字:家庭防盗平安电子密码锁VHD1.2电子密码锁总体设计2.1总体设计方案宏码领输入电路键打猫I启卜卜时序产生Iii斗J扫描信丁键盘按犍舛跳加除电
2、/T钝显需科电”密码锁控制电路侪存潜清除信号发生“心开/关门债电54J一数值比较由*J-按谯数据缓在*鼠示电路I-er至七段邯码电卜日日日三七段数码n如图2.1电子密码锁总体组成框图该电子密码锁可以分成三部分来设计,数字密码输入部分、密码锁限制电路和密码锁显示电路。作为密码锁的输入部分,可供选择的方案有数字机械式键盘和触摸式数字键盘等多种。考虑种种因素,建议本设计采纳通用数字机械键盘。依据以上选定的输入设备和显示洛件,并考虑到实现各项数字密码锁功能的详细要求,整个电子密码锁系统的总体组成框图如图2.1所示.密码锁输入电路包括时序产生电路、键盘扫描电路、键盘去抖动电路、键盘译码电路等几个小的功能
3、电路。密码镇限制电路包括按键数据的缓冲存储电路,密码的清除、变更、存储、激活电锁电路(寄存器清除信号发生电路),密码核对(数值比较电路),解锁电路(开/关门锁电路)等几个小的功能电路。七段数码管显示电路主要将待显示数据的BCD码转换成数码器的七段显示即动编码。依据以上选定的输入设备和显示器件,并考虑到实现各项数字密码锁功。密码输入般采纳机械式和接触式两种键盘。机械式3x4键盘虽然易产生抖动、磨损等问题,但具有电路结构简洁、成本低,牢兼性高、技术成熟、应用广泛等优点,在密码锁的设计过程中常常被采纳。图2.2是一个3X4矩阵式键盘的面板配置图,其中数字0-9作为密码数字输入按健,作为“上锁”功能按
4、键,#作为“解锁/清除”功能按键,如图2.2所示:图2.2机械式键盘密码密码电路2.2设计思路简述密码锁输入电路ENTER.VHD中对各种分频信号侑号序列的设计有独到之处。该设计中,利用一个自由计数器来产生各种须要的频率,也就是先建立一个N位计数器,N的大小依据电路的需求确定。N的值越大,电路可以除频的次数就越多,这样就可以获得更大的频率变更,以便供应多种不同频率的时钟信号.若输入时钟为C1.K.N位计数器的输出为QN-1,0,则Q(0)为C1.K的2分频脉冲信号,Q(I)为C1.K的4分频脉冲信号,Q(2)为C1.K的8分频脉冲信号Q(N-I)为C1.K的2N分频脉冲信号;Q(5DOWNTO
5、4)取得的是一个脉冲波形序列,其值是依(X)-Ol-IO-Il-(X)-Ol周期性变更的,其变更频率为C1.K的25分频,也就是32分频,我们利用以上规律即可得到各种我们所须要频率的信号或信号序列:(2)摄盘输入去抖电路的设计程序DEBoUeINGVHD在实际系统的开发中有较好的参号价值。(3)密码锁限制电路Controi-VIID中对于数据的更新及移位方法比较好。程序中运用语句ACCv=ACC(IlDOWNToO)&DATA_N”特别简洁地同时实现了ACC中低4位用DATA-N进行更新,而高12位用ACC中原来的低12位左移而来的处理。(4)在密码锁输入电路等模块的程序的设计和仿真中.为便于
6、视察一些中间结果,在程序中增加了一些观测输出点。这一设计技巧,对于较大的程序或多进程程序的设计特别重要。同时在仿真时,为了便于观测全局结果,降低了分嫉常数.同理,在进行程序仿真时,对于程序中数目较大的分频/计数/计时常数的修改是特别必要的.2.3整体组装设计原理图系统的整体组装设计有密码输入模块、密码限制模块、密码显示模块部分组成,故如图2.3所东:2“*-*OilIOIIIOItI24567S9O3.1.l输入模块程序1.IBRARYIEEE;USEIEEE.STD_1.oGlC164.A1.1.:USElEEE.STD1.1CR1TH.A1.1.:USEIEEE.STD_1.OG1C_UN
7、SIGNED.A1.1.;ENTITYENTERISPORT(C1.K_lK:INSTD_1.OGlC;KEYN:INSTDJ.0GIC_VECT0R(2DOWNTO0);DATA-N:OUTSTD_1.OGIe1.VECTOR(3DOWNTOO);DATA_F:OUTSTD_1.OGQVECTOR(3DOWNTOO);F1.AG_N:OUTSTD_1.OG1C:F1.AG_F:OUTSTDjoGIC;CQD:OUTSTD_1.OGlCKSE1.:OUTSTD-1.oGIC-VEeTOR(3DOWNTOO);CSR:OUTSTD_1.OGIC_VECTOR(1DOWNTO0);ENDENTIT
8、YENTER;ARCHlTEEJREARTOFENTERISSIGNA1.C-QD:STD.1.IC;SIGNA1.C_SR:STD_1.OGIC_VECTOR(1DOWNTOO);SIGNA1.NFSD,1.OG1C,VECOR(3DOWNTOO);SIGNA1.FN,FF:STDJOGIC;SIGNA1.SE1.:STD_1.OGIC_VECTOR(3DOWNTOO);SIGNA1.Q:STD_1.OG1C_VECTOR(5DOWNTOO);SIGNA1.C:STDJ.0GIC_VECT0R(2DOWNTOO);BEGINDATA_N=N;DAA-F=F;H.AG_N=FN;F1.AG_F
9、=FF;CQD=C.QD;CSR=C_SR;KSE1.=SE1.;C(O)=KEYN(O);C(l)=KEYN(I):C(2)=KEYJN(2);CoUNTER:B1.oCKISBEGINPROCESS(C1.K-1K)ISBEGINIF(C1.K_1KEVENTANDC1.K_IK=)THENQ=Q+l;ENDIF;C_QD=Q(3);C_SR=Q(5DOWNTO4):ENDPROCESS;SE1.=,I11(WHENC_SR=OE1.SEHOI-WHENC-SR=1E1.SE1011WHENC_SR=2E1.SE0111WHENC_SR=3E1.SEiiir;ENDB1.OCKCOUNTE
10、R;KEY.DECODER:B1.OCKSiGNA1.Z:STD_1.oGK1.VECTOR(4DOWNTOO);BEGINPROCESS(C.QD)BEGINZNNNNNNNNNNNFFFV=1()(X);ENDCASE;ENDIF;ENDPROCESS:FN=NOT(N(3)ANDN(2)ANDN(I)ANDN(O);FF=F(2)ORF(0):ENDB1.OCKKEY_DECODER;ENDARCHITECTUREART;3.1.2输入模块单元有上面的程序通过quuriusI1.我们可以得到下面这个封装元件。ENTtERC1.K-1KKEYJN2.0DATA_N3.0DATA-F3.0F
11、1.AG_NF1.AG_FCQDKSE1.3.0CSR1.0nst图3.l电子密码锁键盘输入图3.2密码锁输入模块仿真图3.1.3输入模块仿真三三三3.2 电子密码锁系统限制模块密码锁的限制电路是整个电路的限制中心,主要完成对数字按键输入和功能按键输入的响应限制。数字按键输入的响应限制:(1)假如按下数字键,第一个数字会从显示器的最右端起先显示,此后每新按一个数字时,显示器上的数学必需左移一格,以便将新的数学显示出来。(2)假如要更改输入的数字,可以按倒退按键来清除前个输入的数字,或者按清除键消除全部输入的数字,再重新输入四位数。(3)由于这里设计的是一个四位的电子密码锁,所以当输入的数字键超
12、过四个时,电路不予理睬,而且不再显示第四个以后的数字。3.2.1 限制模块程序1.IBRARYIEEE;USEIEEE.STD_1.OG1C_1164.A1.1.;USEIEEE.STD.1.IC,ARITH.A1.1.:USE1EEE.STD_1.OG1C_UNS1GNED.A1.1.;ENTITYCONTRO1.ISPORT(DATA_N:INSTD_1.OGlQVEcTOR(3DOWNTO0);DATA.F:INSTD_1.OGRVECTOR(3DOWNTO0);F1.G-N:INSTD_1.OG1C:F1.AG_F:INSTDJ.OGIC;MIMAIN:BUFFERSTD_1.OGlC
13、SETIN:BUFFERSTD_1.oGIcO1.D:BUFFERSD-1.OG1C;CQD:INSTDJXXjIC;EN1.OCK:OUTSTD_1.OGIC;DATA-BCD:OUTSTD_1.OGIC_VECTOR(15DOWNTO0);ENDENTYCONTRO1.:ARCHITECTUREARTOFCONTRO1.ISSIGNA1.ACC,REG:STD_1.OGIC_VECTOR(15DOWNTO0);BEGINPRoCESS(CQD.卜1.AG_F)ISBEGINIFCQD,EVENTANDCQD=OTHEN1FF1.AG_F=THENIF(DAlAJF=0l(M)THENMIM
14、AIN=0SETIN=,0O1.DEN1.OCKM1M1NSET1N=;O1.DNU1.1.;ENDCASE;E1.SIF(MIMAIN=)THENIFACC=REGTHENEN1.oCKV=O;M1MAIN=O;E1.SEMIMAIN=,0;ENDIF;E1.SIF(SETIN=)THENIF(O1.D=I)THEnIF(ACC=REG)THENO1.DV=U;E1.SESETIN=O;O1.DV=U;ENDIF;E1.SEREG=ACC:SETIN=();ENDIF;ENDIF;ENDIRENDIF;E1.SIFF1.AG_N=lTHENACC=ACC(1IDOWNTO0)&DATA_N:
15、ENDIF;ENDIF;ENDPROCESS:DATA.BCDBx三MHMX1.lrDWCITUiJ2JCUIYCU311X3.3 电子密码锁系统显示模块密码显示电路主要将显示数据的BCD码转换成相对应的编码.如,若选用七段数码管显示电路,主要招待显示数据的BCD码转换成数码器的七段显示驱动编码。密码锁显示电路的设计比较简洁,这里干脆采纳四个4-7译码器来实现。3.3.1 显示模块程序1.IBRARYIEEE:USEIEEE.STDjoGlCj64.A1.1.;USEIEEE.STD_1.OGIC_UNSIGNED.A1.1.;ENTITYDISP1.AYISPORT(DATA_BCD:INS
16、D-1.OG1C-VECOR(3DOWNTO0);DOUT7:OUTSTDJ.OGIC_VECTOR(6DOWNTO0);ENDDISP1.AY;ARCHITECTUREARTOFDISP1.AYISBEGINPROCESS(DATA_BCD)BEGINCASEDATA.BCDISWHEN(XXX)=DOUT7DOUT7DOUT7IXUT7DOUT7DT7DOUT7DOUT7DOUT7DOUT7D0UT7=OoOooOO;ENDCASE:ENDPROCESS;ENDARCinTECTUREART;3.3.2 显示模块单元DISP1.AYDATA_BCD3.OUT7.0i11st2图3.5电了密
17、码锁显示模块元件333显示模块仿真图3.6密码锁显示模块仿真图4小结经过这次EDA课程设计的一个星期,不仅温习和巩固了课堂上所学过的基础学问,而且学到了许多书本上都没有提及的内容,进一步加深了对EDA技术的了解。在课设过程中,调试顶层文件程序时遇到了不少问题,比如,各元件之间的连接和信号的定义,但是最终在细心的检查下,还是胜利解除了错误和警告:在波形仿其时,想要的结果不能在波形上得到正确的显示,在经过十几次的调试后,才发觉是因为输入的时钟信号对于器件的延迟时间来说太短了。时钟周期设匿在15秒左右比较合适,Endtime的值须要设理的长一点IOUS左右,这样就可以视察到完整的仿真结果。其次,在连
18、接各个模块的时候肯定要留意各个输入、输出引脚的线宽,因为每个线宽是不一样的,只有让各个线宽相互匹配,才能得出最终的正豳的结果。否则,出现任何点小的误差就会导致整个文件系统的编评出现错误提示,在器件的选择上也有肯定的技巧,只有选择/适合当前电路所的器件,编译才能胜利。通过这次EDA课程设计使我懂得了理论与实际相结合是很重要的,只有把所学的理论学问与实践相结合起来,才能提高自己的实际动手实力和独立思索的实力。参考文献Hl谭会生,张昌凡.EDA技术及应用(其次版)西安:西安电子科技商校出版社,200112J徐光军,徐光辉CP1.D/FPGA的开发与应用.北京:电子工业出版社,2(X)23J李国丽,朱维勇.EDA与数字系统设计.北京:机械工业出版社,2004编(1997).北京:北京理工高校出版社,1999|4|潘松,黄继业EDA技术好用教程.北京:科学出版社,2(X)2I51.