CPLD FPGA实现电子密码锁设计结题报告Word文件下载.docx
- 文档编号:18454220
- 上传时间:2022-12-16
- 格式:DOCX
- 页数:9
- 大小:452.98KB
CPLD FPGA实现电子密码锁设计结题报告Word文件下载.docx
《CPLD FPGA实现电子密码锁设计结题报告Word文件下载.docx》由会员分享,可在线阅读,更多相关《CPLD FPGA实现电子密码锁设计结题报告Word文件下载.docx(9页珍藏版)》请在冰豆网上搜索。
随着社会物质财富的日益增长,安全防盗已成为社会问题。
而锁自古以来就是把守门户的铁将军,人们对它要求甚高,既要安全可靠地防盗,又要使用方便,这也是制锁者长期以来研制的主题。
为满足人们对锁的使用要求,增加其安全性,用密码代替钥匙的密码锁应运而生。
密码锁具有安全性高、成本低、功耗低、易操作等优点。
三、课题研究的目的和意义:
近年来,电子密码锁的使用越来越广泛,电子密码锁与普通机械锁相比,具有许多独特的优点:
保密性好,防盗性强,可以不用钥匙,记住密码即可开锁等。
目前使用的电子密码锁大部分是基于单片机技术,以单片机为主要器件,其编码器与解码器的生成为软件方式。
其电路比较复杂、性能不够灵活、成本较高;
且由于程序容易跑飞,系统的可靠性能和安全性较差。
设计一款具有较高的安全性和较低的成本、且具有外围扩展功能的电子密码锁,是本次研究的重点。
本项目采用可编程器件(CPLD)为核心器件的新型电子密码锁的设计方法,具有可编程功能。
该密码锁还具有密码输入、电锁解除和密码更改等功能。
CPLD可编程器件,它是在PAL、GAL、等可编程器件的基础上进一步发展的产物。
它是作为专用集成电路(ASIC)领域中的一种半定制电路而出现的,既解决了定制电路的不足,又克服了原有可编程器件门电路数有限的缺点。
CPLD的使用非常灵活,同一片CPLD通过不同的编程数据可以产生不同的电路功能。
CPLD在通信、数据处理、网络、仪器、工业控制、军事和航空航天等众多领域得到了广泛应用
四、课题的研究方法:
本文设计了一种新型的电子密码锁,采用先进的EDA技术,利用QuartusⅡ工作平台,CPLD芯片和VHDL语言。
该密码锁具有密码输入、密码清除、密码激活、电锁解除和密码更改等功能。
它用一片复杂可编程逻辑芯片CPLD实现,因此体积小、功耗低、价格便宜,维护和升级都十分方便,克服了目前使用的电子密码锁大部分是基于单片机用分离元件实现,其电路比较复杂、性能不够灵活、成本较高且可靠性和安全性差的缺点。
五、课题研究的步骤
1、根据设计所需画原理图
2、根据原理图制作PCB板
3、焊接
4、调试相关的程序
5、检查相关的硬件电路
6、写出相关的实验报告
六、总体结构及原理
本论文设计的电子密码锁主要由输入部分,控制部分和输出部分组成。
其中输入部分包括4×
4矩阵键盘、弹跳消除电路、键盘译码电路、键盘扫描电路;
控制部分包括按键存储电路、密码存储电路、比较电路;
输出部分包括多路选通器、七段译码器、扫描信号发生器。
其中键盘扫描模块、弹跳消除模块、键盘译码模块、控制模块、多路选通模块、七段译码模块都是通过软件实现的。
6.1系统设计方案
6.1.1主控芯片的选择
本电路的主要控制部分和接口输入部分都是在CPLD内部通过VHDL语言实现的,所以CPLD模块为本设计的核心。
根据系统要求的功能,以及CPLD芯片容量的分级,本实验项目选用ALTERA公司MAX3000A系列的PM3128ATC100-10器件作为主控芯片,它是一种基于乘积项结构的复杂可编程逻辑器件,它的基本逻辑单元是由一些与、或阵列加上触发器构成,其中与或阵列完成组合逻辑功能,触发器完成时序逻辑。
它的逻辑控制灵活,可反复编程,有利于系统的扩展和修改,而且其集成度高,保密性好。
6.1.2矩阵键盘原理
本次设计选用的是4×
4矩阵键盘,它是用4条I/O线作为行线,4条I/O线作为列线组成的键盘。
在行线和列线的每一个交叉点上,设置一个按键,当某键被按下时,该按键的接点会连接行线和列线,这样有按键按下时行线呈现逻辑0的状态,未按下时则呈现逻辑1状态。
键盘电路的工作原理是通过行线送入扫描信号,然后从列线读取状态判断是否有按键按下。
其方法是依次给行线送低电平,检查列线的输出。
如果列线信号为高电平,则代表低电平信号所在的行中无按键按下;
如果列线输入为低电平,则低电平信号所在的行和出现低电平的列的交点处有按键按下。
扫描信号由KY3—KYO进入键盘,变化的顺序依次是:
1110—1101—1011—0111—1110,每次扫描一行,依序循环。
假设现在扫描信号为1101,即扫描“4”、“5”、“6”这一排按键,如果这排当中没有按键被按下的话,则列扫描信号KX2-KXO读出的值为111;
反之,当“6”按键被按下时则由KX2-KXO读出的值为110,其它依次类推。
由于矩阵式键盘是无法独自地完成按键工作的,要搭配时序产生电路、键盘扫描电路、弹跳消除电路、键盘译码电路才能可靠工作。
键盘上的有效数据是0到9这十个数字键和两个功能键(*键:
修改密码键;
#键:
输入数字小于四位时按下此键表示清除键,输入数字等于四位时表示开锁键)。
6.1.3键盘扫描电路
键盘扫描电路是用于产生KY3-KY0信号,即键盘的行扫描信号。
每扫描一排按键,就检查一次是否有按键被按下,如果这排没有按键被按下就忽略。
反之,如果出现被按下的键则立即进行按键编码的动作,且将编码的结果存储于寄存器中。
扫描停留在每个状态的时间大约为10ms。
更短的停留时间容易采集到陡动信号,会干扰判断。
而太长的停留时间则容易丢失某些较快的按键动作。
6.1.4弹跳消除电路
因为本次设计的按键采用机械式开关结构,在开关切换的瞬间会在接触点出现来回弹跳的现象,这种弹跳现象可能造成误动作而影响到正确性。
本设计中采用延时的软件方法消除抖动,若采样信号检测到输入由“1”变到“0”或由“0”变为“1”,先延时2个周期,仍旧检测到是“0”或“1”,则说明按键状态确实发生了变化,否则当作抖动处理,不予理会。
这样就消除了抖动。
6.1.5键盘译码电路
上述键盘中的按键可分为数字按键和功能按键,每个按健都有自己相应的作用,比如#键可以清除密码和开锁,*键可以设置密码。
数字按键主要用来输入数字,键盘所产生的输出(KX2-KXO)无法直接拿来使用,因此必须由键盘译码电路来规划每个按键的输出形式,以便执行相应的动作。
6.2控制部分
输入电路完成之后,接下来进行电子密码锁的控制电路设计,如图1所示包括输入数字寄存部分,预存密码部分和比较部分。
图1控制部分结构框图
其中输入数字寄存器部分是一个16位的寄存器,负责保存输入的4位数字,在按下解锁信号后其全部数据送入比较器,解锁后,如果按下更改密码按键,则把所有数据送入预存密码寄存器。
预存密码寄存器也是一个16位的寄存器,负责保存密码。
比较器的功能是比较输入的数字和预存密码是否相等,相等则解锁,不等则红灯亮。
如果输入数字,第一个数字会从显示器的最右端显示,每按一个新数字,显示器上的数字往左移动一格,以便将新数字显示出来;
如果想更改输入的数字,按清除键清除所有输入的数字,再重新输入4位数。
因为设计的是四位电子密码锁,当输入的数字键超过4个时,电路不予理会,且不显示第四个以后输入的数字。
功能按键的作用如下:
(1)密码核对:
在密码变更、解除电锁之前,必须先核对密码是否正确。
(2)密码变更:
按下此键可将目前的数字设定成新的密码。
要变更密码前须输入旧的密码。
(3)上锁:
按下此键可将密码锁上锁。
上锁之前必须先设定密码,才能上锁,此密码必须是四位才有效。
(4)解锁:
检查输入的密码是否正确,密码正确即开锁。
(5)密码清除:
为了怕使用者忘记密码,设计一个四位数字作为万能密码,不论所设密码是什么,只要输入万能密码即可开锁。
6.3输出部分
该设计的输出电路由显示缓存器、多路选通器、时钟发生器、扫描信号发生器、七段译码器组成,其结构和模块划分如图2所示。
其中显示缓存器是一个存储量为16位的寄存器,它用于存储LED显示的内容。
所以4个数码管就需要16位的存储器。
多路选通器用于从显示缓存器中选择出某一个LED的内容用于显示。
扫描信号用于选择片选信号,片选信号依次并循环地选通各个LED管时钟发生器,通过对全局时钟的分频得到扫描模块所需的时钟。
七段译码模块把4位BCD码译成便于显示的七段码。
该显示电路的工作过程如下:
寄存器所存储的数据经由数据选择器送到译码电路,将其转换成七段显示器的显示码,转送到七段显示器,数据选择与显示管选择必须同步。
由于设计的是4位数的数字密码锁,一位十进制数需要4个二进制位表示,所以寄存器必须是16位的。
因为是以扫描的方式轮流被点亮的,因此寄存器上的数据必须一组一组地分开传送,每次送4个位。
6.4键盘显示模块
6.4.1基本特性与参数指标
LED键盘模组集成LED、KEY、数码管功能,可作为单片机常用外围器件的扩展模块。
LED键盘模组采用DC5V供电。
6.4.2主要功能
扩展了4位8段数码管,最大显示数据为9999;
8个发光二极管,可作为显示状态信息使用;
16个按键,可以组成1*8KEY也可组成2*4KEY;
一个电位器,可以提供0--5V的模拟电压信号或者0--3.3V的模拟电压,与模组输入的VDD有关。
键盘LED模组接口简单,可方便与任何一款单片机进行软硬件接口设计。
6.5锁体机械部分设计
图3(a)电机驱动电路图
(b)锁体部分方框图
如图3(a)uc3717芯片驱动6v直流电机,上图为驱动电路,AOUT和BOUT引出口接电动机的两个接线端。
P—VCC接口接电源。
信号由CON口输入。
最后控制电机正转反转。
用霍尔传感器检测电机转动的位置,检测到的信号传给单片机。
有单片机发出命令,控制电机停止和转动。
电机转动带动锁开和关,这里应用了定滑轮来改变方向,在机械锁的开纽上加长了。
6.6软件设计
6.6.1系统软件总体构成
在进行应用系统设计时,软件设计和硬件设计应统一考虑,相结合进行。
当系统的电路设计定型后,软件的任务就明确了。
根据系统的需要,该基于CPLD电子密码锁系统软件主要完成以下一些功能:
驱动电机的脉冲序列由单片机定时器软件产生;
电机的连续运行由软件实现,不能失步或越步;
实现电机加减速系统软件主要由以下几大部分构成:
主程序设计、中断服务程序设计以及系统功能子程序流程等,下面分别对各部分程序设计加以说明。
6.6.2主程序设计
系统软件采用模块化程序设计,使程序流程清晰明了。
系统主程序主要完成的内容:
系统参数初始化、调用功能子程序、打开中断启动电机。
系统主程序流程图如图4所示。
可以看出,主程序是一个循环,在系统上电初始化完毕后,系统一直在不断的执行这个循环程序。
在循环过程中,调用功能子程序,若产生中断,则程序就转去执行相应的中断服务程序。
图4系统主程序流程图
七、课题的成果与分析
7.1电子密码锁性能特点
(1)保密性好,编码总量达10亿种,远远大于弹子锁。
使随机开锁成功率几乎为零。
(2)编码可变,这就避免因人员的更替而使锁的密级下降,且有利用户编制易于记忆的密码。
(3)误码输入保护。
三次输入错码发出警声并关闭主控电路。
(4)停电不丢码。
(5)多种密码开锁方式,使用方便。
设有单人开锁和多人开锁方式。
7.2仿真及实验结果与分析
测试步骤:
将各个模块的电路制作完成后,我们对其进行单独的测试。
1)单片机最小系统,键盘和显示。
2)调试直流电机的正转、反转、转速,以及每步绳子拉伸的长度。
综合调试
编写主程序逐次添加子程序,逐个调试其功能,把软件和硬件连接后进行整体调试,得到了所需要的控制效果。
7.2.1仿真结果
该密码锁利用ALTERA公司的仿真软件MAX+PLUSⅡ对所设计的电子密码锁进行编译和综合仿真,其仿真结果如图5所示。
仿真说明:
KX是输入列扫描信号,即按下键盘后键盘输出的信号。
当在行扫描信号为B时,列扫描信号输入为3,则代表数字键7按下,这时输入数字计数器NUMB_CNT自动加一,输入数字缓存器值变为0007,数字键标志FLAG-NUMB发出一个时钟周期的脉冲;
当行扫描信号为E时,列扫描信号输入为5,经过译码后知数字键2按下,NUMB_CNT自动又加一,数字键标志又发出脉冲;
行扫描信号为7时,列扫描信号送入3代表功能解锁键按下,这时功能键标志FLAG-FUNC发出一个时钟周期的脉冲,并且把输入的数字清除,把送入的数字和密码寄存器的数字进行比较后ENLOCK输出为1代表输入密码正确,并且解锁。
DBOUT、SEGOUT、SELOUT是独立的模块,只是负责包BCD_CODE的值依次轮流的输出到数码管上。
至此密码锁的整体程序的仿真结果表明本设计完全可以达到所要求的功能。
7.2.2实验结果
将程序下载到PM3128ATC100-10芯片中,在自己制作的PCB板上进行硬件测试,经实验验证,该电子密码锁达到了设计要求,其实验结果如下:
(1)当使用时,输入4位密码,然后按上锁键“*”,如果这个键是开的,那么用户刚输入的4位密码就是预存密码,等下一次开锁时输入这4位密码,按解锁键“#”,就可开锁;
如果锁这时是锁的,输入的4位密码按解锁键“#”后就和原来预存密码进行比较,正确的话,锁自动打开,错误的话,刚输入的4位密码被清零,重新输入4位密码。
其中#号键即为开锁键又为清零键。
(2)输入4位万能密码时,锁自动开。
(3)当用户不小心按错数字时,按“#”键,可作清零处理,显示器显示为“0000”,重新输入4位密码。
(4)当需要修改密码时,先开锁,然后输入四位新密码,并按下密码修改键(“*”号键)完成密码修改。
从仿真及实验结果可以看出,本文提出的电子密码锁具有很强的实践性,对于不同的场合所需要的不同的密码的位数和输入密码的次数,只需稍加修改就可实现,这样升级和维护都很方便。
若要求更复杂的功能,还可以进一步完善。
7.3误差分析
从测试结果可以看出,测试结果尽管都在规定的允许误差范围内,但还是存在着一定的误差,我们从以下几个方面对误差产生的原因进行了分析:
绕线滑轮半径引起的误差,由于加工上精度有限不能达到理想要求,不可避免地为后面的计算带来误差。
电机绕线轮引起的误差等问题。
八、对课题研究的思考与总结
在老师精心的指导下,经过自己努力,我们已基本完成设计要求的内容。
减速直流电机能够实现比较精确的定位,能通过控制脉冲频率来对直流减速电机实现控制。
在系统可行性分析、原理图设计、PCB绘制等方面都作了许多实际工作,取得了一些成绩,同时也遇到了不少问题,存在一定不足。
经过这期间不断的学习,我们不论是在理论知识方面还是在动手能力方面都有了不小的进步,自己从中受益匪浅。
这次设计很好地把在校期间学到的理论知识充分应用于实践,使我们认识到理论知识与实践之间有不可避免的一定差异。
同时更深刻理会到通过不断的努力学习和实践才能很好的把理论知识应用到实践当中,也只有通过不断的实践才能对理论知识更深刻的理解。
通过这次设计学会了如何去查找相关资料,更重要的是通过查找资料和翻阅书籍补充所缺乏的知识,扩大了知识面,提高了自身水平。
经过单元设计和系统设计巩固了所学专业知识,不仅对数电、模电、程序有了更深层次的认识,而且也为以后的学习和工作提供了很多有价值的经验。
通过这次设计不仅增强了自己的动脑能力和动手能力,也提高了思考问题、分析问题、解决问题的能力,确切的说是学会用工程化的思想来解决问题。
这在以前的学习过程中都是没有深刻体会和意识到的。
知识的缺乏令设计过程变得漫长,而通过老师悉心的指导却又变得那么的短暂。
能够利用相对狭窄的知识面在短短的时间内完成设计内容,这在很大程度上得益于指导老师的帮助。
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- CPLD FPGA实现电子密码锁设计结题报告 FPGA 实现 电子 密码锁 设计 报告