2023年基于FPGA的电子密码锁设计.pdf

上传人:c****2 文档编号:93075885 上传时间:2023-06-26 格式:PDF 页数:5 大小:277.22KB
返回 下载 相关 举报
2023年基于FPGA的电子密码锁设计.pdf_第1页
第1页 / 共5页
2023年基于FPGA的电子密码锁设计.pdf_第2页
第2页 / 共5页
点击查看更多>>
资源描述

《2023年基于FPGA的电子密码锁设计.pdf》由会员分享,可在线阅读,更多相关《2023年基于FPGA的电子密码锁设计.pdf(5页珍藏版)》请在taowenge.com淘文阁网|工程机械CAD图纸|机械工程制图|CAD装配图下载|SolidWorks_CaTia_CAD_UG_PROE_设计图分享下载上搜索。

1、一、前言 电子密码锁的使用体现了人们的消费水平、保安意识和科技水平的提高,而且避免了携带甚至丢失钥匙的麻烦。目前设计密码锁的方法很多,例如传统的 PCB板设计、用 PLC设计或者单片机设计等等。而用 VHDL可以更加快速、灵活地设计出符合各种要求的密码锁,优于其他设计方法。VHDL 是一种符合 IEEE标准的硬件描述语言,其最大的特点是借鉴高级程序语言的功能特性,对电路的行为与结构进行高度的抽象化、规范化的形式描述,并对设计的不同层次、不同领域的模拟验证与综合优化等处理,使设计过程延到高度自动化。二、方案设计 密码锁的的构成主要由密码输入、密码设置、比较控制和报警部分组成,此外密码锁必须能够保

2、存已设置的密码,因而需要一个寄存器来保存密码,同时由于控制电路和报警电路要用到不同的时钟,因而需要一个时序产生电路来生成需要的不同信号,采用分频方法实现。根据密码锁的电路特点,选用的是实验箱的模式6 电路,根据电路功能,在这里设计的密码锁以 4 位 2 进制代码作为密码的电子密码锁。其原理框图如下所示:图一、电子密码锁原理框图 三、功能模块的实现 1、时序电路 在密码锁的电路中,输入计时、报警计时需要的 1HZ的时钟脉冲信号,而驱动蜂鸣器工作需要的很高频率的脉冲信号,因而这里采用输入一个高频脉冲(1024HZ)信号来驱动蜂鸣器,采用分频的方法得到 1HZ的计时脉冲,程序如下:process(c

3、lk_1k)variablecnt1:integer:=0;begin ifrising_edge(clk_1k)then ifcnt1=512then clk_1=notclk_1;cnt1:=0;elsecnt1:=cnt1+1;endif;endif;endprocess;程序说明:clk_1k 为输入的 1024HZ高频脉冲,cnt 为分频得到的 1HZ计时脉冲。密码输入 密码设置 比较控制 报警电路 寄存器(保存设置的密开锁信号 时序产生电路 2、密码设置 为了安全性,密码锁必须能够重复的设定密码,在设定密码锁后,应该设置一个寄存器来存储设定的密码,程序如下:process(rst,

4、password,enter_p)is begin ifrst=0then ifenter_p=1then ram=password;en1=1;endif;endif;endprocess;程序说明:rst 低电平时所有的模块复位,只有密码设置模块工作;password 为设置密码时的输入端,ram 就是存储密码的寄存器;enter_p为在这里为密码设置使能端,高电平有效。密码设置的仿真波形如下图,由图中可以清楚地看到在 enter_p 高电平时 寄存器 ram 中得到了输入的密码 1001。图二、密码设置仿真波形 3、密码输入 密码输入部分要求在密码开始输入时进行计时,超时了要求报警,因此

5、在密码输入时设置一个计时使能信号 en2,密码开始输入时使能信号 en2 有效,控制电路的计时器开始计时;而且在密码确认键按下之前,电路不能对输入密码和已设置密码进行比较,因此需要设置一个寄存器,来存储输入的数据,当确认键按下时,就将寄存器里的数据送给控制部分进行比较。程序如下:process(rst,enter_c,en1,code)begin ifrst=1then ifen1=1then ifenter_c=1then code_tmp=code;en2=1;endif;elsecode_tmp=0000;en2=0;endif;elsecode_tmp=0000;en2=0;endif

6、;endprocess;程序说明:rst 置高,设置密码模块不工作,其他部分正常工作,en1 为高时代表密码设置完毕,密码锁开始工作;enter_c是密码输入使能信号,高电平时表示开始密码输入,此时 code_tmp 中开始存储输入的数据,计时使能信号 en2 也变成高电平。密码输入仿真波形如下,由图中可清楚的看到在 enter_c为高时,寄存器 code_tmp 中存储了输入的数据 code(系统仿真时有 10ns 的延时)。图三、密码输入仿真波形 要求的密码锁优于其他设计方法是一种符合标准的硬件描述语言其最大的特点是借鉴高级程序语言的功能特性对电路计过程延到高度自动化二方案设计密码锁的的构

7、成主要由密码输入密码设置比较控制和报警部分组成此外密码锁必须一个时序产生电路来生成需要的不同信号采用分频方法实现根据密码锁的电路特点选用的是实验箱的式电路根据电路4、控制部分 此部分是密码锁设计的核心模块,它实现密码锁的逻辑功能。开锁代码为 4 位二进制数,当输入代码的位数和位值与锁内设置的密码一致,且在规定时间内开锁,方可打开,并且点亮开锁指示灯 led_g;否则,系统进入“错误”状态,并且发出警报。警报的方式为蜂鸣器发出警报,指示灯 led_r闪烁。直到 30 秒过后或者按下复位键,经行下一次密码输入。模块源程序:process(rst,clk_1,en2)variablelock:std

8、_logic:=0;variablecnt3:integer:=0;begin ifrst=0then lock:=0;cnt3:=0;sp_en=0;led_g=0;led_r=0;else ifrising_edge(clk_1)then iflock=0then ifen2=1then ifcnt3=5then sp_en=1;led_g=0;led_r=1;cnt3:=0;lock:=1;else ifcode_en=1then ifram=code_tmpthen sp_en=0;led_g=1;led_r=0;lock:=1;else sp_en=1;led_g=0;led_r0t

9、hen ifcnt4=31then cnt4:=0;tmp_en1:=0;elsecnt4:=cnt4+1;tmp_en1:=1;endif;endif;endif;elsetmp_en1:=0;cnt4:=1;endif;speaker=tmp_en1andclk_1k;led_f=tmp_en1andclk_1;endprocess;程序说明:Cnt4 是一个 30 进制计数器,对报警时间进行计时。Sp_en 是控制电路发出的报警信号。四、软件仿真 将完整的程序在 Quartus 软件下进行编译,通过之后进行波形仿真,观察 仿真波形看是否实现了密码锁的逻辑功能,下面是在密码输入正确、密码输

10、入超时和密码输入错误时的仿真波形图。图四、密码输入正确仿真波形 如图所示,首先在 rst为 0 时将密码设为 1001,然后输入密码 1001,当确认键 code_en按下时,系统判断密码正确,输出一个开锁信号,开锁指示灯led_g 点亮。图五、密码输入错误仿真波形 如图,密码设置仍然为 1001,但输入一个错误的密码 1000,当密码确认按下时,系统发出错误警报,蜂鸣器 Speaker 发出响声,报警灯 led_f 闪烁。图六、出入超时仿真波形 如图,密码设置不变,依旧是 1001,但是密码输入按键 enter_c按下,输入密码后不按下确认键,五秒过后,系统判断密码输入超时,此时输出超时警报

11、,蜂鸣器报警,led_g点亮,led_f 闪烁。要求的密码锁优于其他设计方法是一种符合标准的硬件描述语言其最大的特点是借鉴高级程序语言的功能特性对电路计过程延到高度自动化二方案设计密码锁的的构成主要由密码输入密码设置比较控制和报警部分组成此外密码锁必须一个时序产生电路来生成需要的不同信号采用分频方法实现根据密码锁的电路特点选用的是实验箱的式电路根据电路五、心得体会 这次的课程设计安排在了假期以后,上学期的 VHDL语言已经有些生疏了,这给编程带来了一些难度,但是经过复习还是重新熟悉了编程的方法和技巧。在写程序的时候有时候不注意仿真,犯了想当然的毛病,认为程序会实现想象中的逻辑功能,但实际不然,

12、所以在编程过程中,不能单凭想象来做,必须写完一部分后就进行一次仿真,及时发现问题,及时改正,避免可在写完程序之后才发现错误,这时再修改就会很麻烦了。这次的课程设计标题是密码锁设计,通过在查阅资料的过程中了解了电子密码锁的发展前景和 FPGA的广泛应用,在日常生活中会有许多的电子设备都与 FPGA有关,因此学好EDA技术对自己的以后的发展会有很大的帮助。要求的密码锁优于其他设计方法是一种符合标准的硬件描述语言其最大的特点是借鉴高级程序语言的功能特性对电路计过程延到高度自动化二方案设计密码锁的的构成主要由密码输入密码设置比较控制和报警部分组成此外密码锁必须一个时序产生电路来生成需要的不同信号采用分频方法实现根据密码锁的电路特点选用的是实验箱的式电路根据电路

展开阅读全文
相关资源
相关搜索

当前位置:首页 > 教育专区 > 高考资料

本站为文档C TO C交易模式,本站只提供存储空间、用户上传的文档直接被用户下载,本站只是中间服务平台,本站所有文档下载所得的收益归上传人(含作者)所有。本站仅对用户上传内容的表现方式做保护处理,对上载内容本身不做任何修改或编辑。若文档所含内容侵犯了您的版权或隐私,请立即通知淘文阁网,我们立即给予删除!客服QQ:136780468 微信:18945177775 电话:18904686070

工信部备案号:黑ICP备15003705号© 2020-2023 www.taowenge.com 淘文阁