基于FPGA的密码锁设计Word格式文档下载.doc
- 文档编号:4610965
- 上传时间:2023-05-03
- 格式:DOC
- 页数:19
- 大小:415.52KB
基于FPGA的密码锁设计Word格式文档下载.doc
《基于FPGA的密码锁设计Word格式文档下载.doc》由会员分享,可在线阅读,更多相关《基于FPGA的密码锁设计Word格式文档下载.doc(19页珍藏版)》请在冰点文库上搜索。
2.1系统设计方案 6
2.1.1系统功能需求分析 6
2.1.2系统实现方案的论证比较 6
2.1.3系统方案的总体设计 7
2.2主控模块 8
2.2.1主控芯片EP1K10TC100-3的介绍 8
2.3键盘模块 8
2.4显示模块 9
2.5报警模块 10
三、系统软件设计 10
3.1系统主控制流程框图 10
3.2键盘扫描程序框图 11
3.3获取键值程序框图 12
3.4解码、报警模块 13
3.5系统软件设计总RTL级图 14
四、系统测试与总结 14
4.1仿真波形图 14
4.2本次课题设计体会 15
参考文献 15
附录 15
一、概述
1.1电子密码锁的现状
随着我国对外开放的不断深入,高档建筑发展很快,高档密码锁具市场的前景乐观。
我国密码锁具行业对密码锁具高新技术的投入正逐年增大,高档密码锁的市场需求也逐年增加。
在安防工程中,锁具产品是关系到整个系统安全性的重要设备,所以锁具产品的优劣也关系了整个安防工程的质量和验收。
目前,市场上比较先进的智能电子密码锁分别有:
IC卡电子密码锁、射频卡式电子密码锁、红外遥控电子密码锁、指纹识别电子密码锁和瞳孔识别电子密码锁等。
IC卡电子密码锁成本低,体积小,卡片本身无须电源等优点占领了一定的市场份额,但是由于有机械接触,会产生接触磨损,而且使用不太方便,在一定程度上限制了它的应用;
射频卡式电子密码锁是非接触式电子密码锁,成本也不太高,体积跟IC卡密码锁相当,卡片使用感应电源,重量很轻,技术成熟,受到了广泛的欢迎,但是与IC卡电子密码锁相比,成本偏高;
指纹识别电子密码锁和瞳孔识别电子密码锁可靠性很高,安全性是目前应用系统中最高的,但是成本高昂,还没进入大众化使用阶段。
在国外,美国、日本、德国的电子密码锁保密性较好,并结合感应卡技术,生物识别技术,使电子密码锁系统得到了飞跃式的发展。
这几个国家的密码锁识别的密码更复杂,并且综合性比较好,已经进入了成熟期,出现了感应卡式密码锁,指纹式密码锁,虹膜密码锁,面部识别密码锁,序列混乱的键盘密码锁等各种技术的系统,它们在安全性,方便性,易管理性等方面都各有特长,新型的电子密码锁系统的应用也越来越广。
基于FPGA的电子密码锁是新型现代化安全管理系统,它集微机自动识别技术和现代安全管理措施为一体,它涉及电子,机械,计算机技术,通讯技术,生物技术等诸多新技术。
它是解决重要部门出入口实现安全防范管理的有效措施,适用各种场合,如银行、宾馆、机房、军械库、机要室、办公间、智能化小区、工厂、家庭等。
在数字技术网络技术飞速发展的今天,电子密码锁技术得到了迅猛的发展。
它早已超越了单纯的门道及钥匙管理,逐渐发展成为一套完整的出入管理系统。
它在工作环境安全、人事考勤管理等行政管理工作中发挥着巨大的作用。
在该系统的基础上增加相应的辅助设备可以进行电梯控制、车辆进出控制,物业消防监控、餐饮收费、私家车库管理等,真正实现区域内一卡智能管理。
目前使用的电子密码锁大部分是基于单片机技术,以单片机为主要器件,其编码器与解码器的生成为软件方式。
基于FPGA的电子密码锁已经是现代生活中经常用到的工具之一,用于各类保险柜、房门、防盗门等等。
用电子密码锁代替传统的机械式密码锁,克服了机械式密码锁密码量少、安全性能差的缺点。
由于采用的是可编程逻辑器件FPGA,使得系统有相当大的灵活性,随时可以进行硬件升级、扩展,而且系统设计完善以后还可以将主控的FPGA固化成一片ASIC,那么这块ASIC就可以作为专用的数字密码锁芯片。
而且由于硬件可升级,还可随时增加密码位数或增加新的功能,使得密码锁有更高的安全性、可靠性和方便性。
1.2论文主要完成的工作
课题主要解决系统硬件和软件两方面的问题。
硬件方面要解决FPGA可编程器件与其外围电路的接口设计的问题;
软件方面主要问题是利用VerilogHDL语言完成基于FPGA的电子密码锁的编程问题。
除此之外,程序还要完成基本的密码开锁功能,并通过扬声器长时间鸣叫报警。
本设计是由FPGA可编程逻辑器件编程实现的控制电路,具体有按键指示、输入错误提示、密码有效指示、控制开锁、控制报警等功能。
它具有安全可靠、连接方便、简单易用、结构紧凑、系统可扩展性好等特点。
二、系统硬件设计
2.1系统设计方案
2.1.1系统功能需求分析
本系统主要集中在以FPGA以核心外围扩展设计,整个电路主要电子锁具的组成框图是以可编程逻辑器件(FPGA)为核心,配以相应硬件电路,完成密码的设置、存贮、识别和显示、驱动电磁执行器并检测其驱动电流值,报警等功能。
FPGA接收键入的代码,并与存贮在闪存中的密码进行比较,如果密码正确,则驱动电磁执行器开锁;
如果密码不正确,则允许操作人员重新输入密码,最多可输入三次;
如果三次都不正确,则通过FPGA产生报警,FPGA将每次开锁操作和此时电磁执行器的驱动电流值作为状态信息发送给监控器,同时将接收来自接口的报警信息也发送给监控器。
2.1.2系统实现方案的论证比较
方案一:
采样台湾凌阳科技有限公司推出的以凌阳自主研发的SPCE061A芯片为主控芯片,用一条下载线连接到计算机就可以实现在线仿真、在线调试、在线下载,低廉的价格保证了系统可靠开发;
此外,61板具有SOC概念、DSP功能和语音特色,为电子密码锁的语音报警提供了方便,但是基于单片机设计的密码锁外围电路比较复杂,系统可靠性差,密码的数量少,尤其是系统的程序不够稳定,功率较大,需要专门的电源供电,所以不采用这个方案。
方案二:
设计一种基于FPGA的电子密码锁的设计,用FPGA设计的系统已经是现代生活中经常用到的工具之一,通过键盘输入密码,用FPGA作为主控芯片,用数码管显示输入的数字,如果出现错误便通过报警电路发出报警,主控芯片又可分为按键处理部分、控制部分和译码显示部分用电子密码锁代替传统的机械式密码锁。
由于采用的是可编程逻辑器件FPGA,使得系统有相当大的灵活性,随时可以进行硬件升级、扩展。
而且系统设计完善以后还可以将主控的FPGA固化成一片ASIC,那么这块ASIC就可以作为专用的数字密码锁芯片。
方案的论证比较
在实际应用中,由于程序容易跑飞,系统的可靠性能较差,而基于FPGA设计的电子密码锁克服了基于单片机设计密码锁的缺点。
基于上述比较以上两种方案,根据系统设计要求,采用方案二。
2.1.3系统方案的总体设计
系统原理框图
本系统由主控芯片(FPGA)、键盘、显示电路、报警电路和开/关门电路组成,而主控芯片又可分为按键处理部分、控制部分和译码显示部分。
系统原理框图如图2.1.3所示:
图2.1.3系统总体框架
总体设计原理
实现系统大量逻辑电路的集成,在设计中使用了现场可编程逻辑门阵列器件(FPGA)。
FPGA主要实现以下逻辑功能:
键盘处理、数码显示、设置密码、解码开门以及报警等控制功能。
本系统有13个按键,包括0~9共10个数字键和1个确认键,1个警报复位键,1个清0键。
输入正确密码后,按确认键即可开门,在门开的状态下,第一次输入新密码后再确认密码可设置密码,输入的密码在八位数码管上显示,最后输入的数字显示在最右边,每输入一位数字,密码在数码管上的显示左移一位。
高位的零不用输入,因此密码可以为1~8位。
初始密码为0,即上电后,按确认键即可开门。
门开后可通过锁门按钮关门,门关上后要再次输入密码才能开门。
在输入密码的过程中,当用户键入错误密码时,系统就会报警,由扬声器发出报警声,当连续三次出现密码错误时,则系统会长时间报警不止,这时必须按警报复位键方可停止。
2.2主控模块
2.2.1主控芯片EP1K10TC100-3的介绍
主控芯片采用ACEX1K系列的EP1K10TC100-3。
ACEX系列是当今AlteraCPLD中应用前景最好的器件系列之一[1,2],该系列的FPGA由逻辑阵列块LAB(Logicarrayblock)、嵌入式阵列块EAB(embeddedarrayblock)、快速互联以及IO单元构成,每个逻辑阵列块包含8个逻辑单元LE(logicelement)和一个局部互联。
每个逻辑单元则由一个4输入查找表(LUT)、一个可编程触发器、快速进位链、级连链组成,多个LAB和多个EAB则可通过快速通道互相连接[3]。
EAB是ACEX系列器件在结构设计上的一个重要部件,他是输入端口和输出端口都带有触发器的一种灵活的RAM块,其主要功能是实现一些规模不太大的FIFO、ROM、RAM和双端口RAM等。
2.3键盘模块
按键方式分为独立式和行列式两种,本设计采用行列式按键结构,是4×
4键盘,本设计中只用了其中的11个按键。
行列式按键是指直接用I/O口线通过动态扫描构成的按键电路。
每个按键通过动态扫描需要八根I/O口线,每根I/O口线上的按键工作状态不会影响其他I/O口线的工作状态。
它的电路配置灵活,软件结构简单,占用的I/O资源少。
首先固定输出4行为高电平(接到电源),然后输出4列为低电平,在读入输出的4行的值,通常高电平会被低电平拉低,如果读入的4行均为高电平,那么肯定没有按键按下,否则,如果读入的4行有一位为低电平,那么对应的该行肯定有一个按键按下,这样便可以获取到按键的行值。
同理,获取列值也是如此,先输出4列为高电平,然后在输出4行为低电平,再读入列值,如果其中有哪一位为低电平,那么肯定对应的那一列有按键按下。
获取到行值和列值以后,组合成一个8位的数据,根据实现不同的编码在对每个按键进行匹配,找到键值后在7段码管显示。
按键控制电路如图2.3所示:
图2.34*4矩阵键盘
2.4显示模块
LED显示块是由发光二极管显示字段的显示器件。
在单片机应用系统中通常使用的是7段LED,本设计将采用共阳极。
共阳极LED显示块的发光二极管与阳极并接。
数码管显示块中共有8个发光二极管,其中7个发光二极管构成七笔字形“8”,1个发光二极管构成小数点。
7段显示块与FPGA接口非常容易。
只要将一个8位并行输出与显示块的发光二极管引脚相连即可。
8位并行输出口输出不同的字节数据即可获得不同的数字或字符,如表5.1所示。
通常将控制发光二极管的8位字节数据称为段选码。
共阳极与共阴极的段选码互为补数。
显示字符
共阴极段选码
共阳极段选码
0
3FH
C0H
C
39H
C6H
1
06H
F9H
D
5EH
A1H
2
5BH
A4H
E
79H
86H
3
4FH
B0H
B
7CH
83H
4
66H
99H
F
71H
8EH
5
6DH
92H
P
73H
8CH
6
7DH
82H
U
3EH
C1H
7
07H
F8H
L
31H
CEH
8
7FH
80H
Y
6EH
91H
9
6FH
90H
┊
┊
┊
A
77H
88H
表2.4LED显示块功能表
2.5报警模块
驱动端为高电平则报警电路启动。
三、系统软件设计
3.1系统主控制流程框图
当用户输入密码后,按确认键即可开门,在门开的状态下,输入新密码,再按确认键可设置密码,输入的密码在八位数码管上显示,最后输入的数字显示在最右边,每输入一位数字,密码在数码管上的显示左移一位。
本系统控制流程如图3.1所示
图3.1系统控制图
否
是
报警
开门
存入新密码,清除显示
输入一位密码
清除显示,关门
开始
次数加一
密码不正确累计三次
密码正确
门已开
数字键
键盘扫描
有锁门信号
3.2键盘扫描程序框图
时钟上升沿触发?
列为高电平?
逐列扫描
图3.2键盘扫描程序框图
3.3获取键值程序框图
时钟上升
确认键
数码管整体左移一位,并在空出的最低位显示扫描结果
密码判断
图3.3键值程序框图
3.4解码、报警模块
门已开?
输入密码后确认
密码正确?
开门,不响警报
计数器+1,仍关门
不正确次数
大于3?
复位位?
计数器清0,警报停止
图3.4解码报警模块
3.5系统软件设计总RTL级图
四、系统测试与总结
4.1仿真波形图
因为功能实现需要键盘输入,在波形仿真中无法体现。
4.2本次课题设计体会
本次课题设计完成的是基于FPGA的密码锁设计,通过一个多星期的不断努力、克服各种困难,最终实现了任务目标。
本次设计解决的主要问题是是利用verilogHDL语言完成基于FPGA的电子密码锁的编程问题。
设计是理论知识与实践的完美结合,对于现代大学生的实践能力是个很好的培养。
短短的一个星期的时间的设计虽然短暂,但是它给我的收获确实难忘,不仅仅在智能仪器方面有了很大的进步,而且在FPGA、Quartus软件等方面也学到了不少在上课学不到的知识。
这段时间我查阅到很多关于课程设计的书籍,对我帮助也很大。
我觉得自己以前的盲目,现在明白了很多。
也对我们专业动手实践的兴趣提高了很多。
有了这些经历对于我日后工作一定会有很大帮助。
相信这次设计中学到的种种东西一定会存在我的脑海里,令我终身受益。
在课程设计的过程中也可以看到我的不足,如原理知识掌握不实,曾经学过的知识如今却不会应用,软件的应用也不熟练,希望日后提供给我们更多的锻炼机会来培养我们的实践能力。
参考文献
[1]高移南.遥控变号电子锁[J].电子世界,1994,07:
15
[2]许 琦.基于FPGA的电子密码锁设计[J].中国科技信息,2007
(1):
240-241
[3]刘韬,楼兴华.FPGA数字电子系统设计与开发实例导航[M].人民邮电出版社,2005.
[4]王金明.数字系统设计与VerilogHDL
附录
1.主控程序
modulekeyword(key,clk,lock,alarm,door,word0,word1,word2,word3,word4,word5,word6,word7);
//主控程序
output[3:
0]word0,word1,word2,word3,word4,word5,word6,word7;
outputdoor;
//开/关门信号,1为开,0为关
outputregalarm;
//密码输入错误3次后的报警信号
input[3:
0]key;
//键盘输入后检测到的一个键值
inputclk,lock;
//lock门为锁闭状态时的标志位
reg[3:
0]w0,w1,w2,w3,w4,w5,w6,w7,k0,k1,k2,k3,k4,k5,k6,k7;
//w代表的是电子密码锁的密码,k代表的是按键输入的数值
reg[1:
0]i;
regm;
//m为door的标志位
always@(posedgeclk)
begin
if(lock==1)
begin
m<
=0;
k0<
k1<
k2<
k3<
k4<
k5<
k6<
k7<
//门未开时清屏
end
elseif(key==10) //确认键按下时
if(m==0) //门未开
begin
if(k0!
=w0||k1!
=w1||k2!
=w2||k3!
=w3||k4!
=w4||k5!
=w5||k6!
=w6||k7!
=w7) //判断密码是否正确
begin
if(i<
3)
begin
i<
=i+1;
k0<
//密码错误后清屏
end
else
alarm<
=1;
//报警打开
end
else
m<
//密码正确,门打开
alarm<
//报警关闭
end
else
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- 基于 FPGA 密码锁 设计