欢迎来到淘文阁 - 分享文档赚钱的网站! | 帮助中心 好文档才是您的得力助手!
淘文阁 - 分享文档赚钱的网站
全部分类
  • 研究报告>
  • 管理文献>
  • 标准材料>
  • 技术资料>
  • 教育专区>
  • 应用文书>
  • 生活休闲>
  • 考试试题>
  • pptx模板>
  • 工商注册>
  • 期刊短文>
  • 图片设计>
  • ImageVerifierCode 换一换

    基于FPGA的电子密码锁设计.doc

    • 资源ID:30859114       资源大小:25.54KB        全文页数:5页
    • 资源格式: DOC        下载积分:6金币
    快捷下载 游客一键下载
    会员登录下载
    微信登录下载
    三方登录下载: 微信开放平台登录   QQ登录  
    二维码
    微信扫一扫登录
    下载资源需要6金币
    邮箱/手机:
    温馨提示:
    快捷下载时,用户名和密码都是您填写的邮箱或者手机号,方便查询和重复下载(系统自动生成)。
    如填写123,账号就是123,密码也是123。
    支付方式: 支付宝    微信支付   
    验证码:   换一换

     
    账号:
    密码:
    验证码:   换一换
      忘记密码?
        
    友情提示
    2、PDF文件下载后,可能会被浏览器默认打开,此种情况可以点击浏览器菜单,保存网页到桌面,就可以正常下载了。
    3、本站不支持迅雷下载,请使用电脑自带的IE浏览器,或者360浏览器、谷歌浏览器下载即可。
    4、本站资源下载后的文档和图纸-无水印,预览文档经过压缩,下载后原文更清晰。
    5、试题试卷类文档,如果标题没有明确说明有答案则都视为没有答案,请知晓。

    基于FPGA的电子密码锁设计.doc

    一、前言电子密码锁的使用体现了人们的消费水平、保安意识和科技水平的提高,而且避免了携带甚至丢失钥匙的麻烦.目前设计密码锁的方法很多,例如传统的PCB板设计、用PLC设计或者单片机设计等等.而用VHDL可以更加快速、灵活地设计出符合各种要求的密码锁,优于其他设计方法。VHDL是一种符合IEEE标准的硬件描述语言,其最大的特点是借鉴高级程序语言的功能特性,对电路的行为与结构进行高度的抽象化、规范化的形式描述,并对设计的不同层次、不同领域的模拟验证与综合优化等处理,使设计过程延到高度自动化。二、方案设计 密码锁的的构成主要由密码输入、密码设置、比较控制和报警部分组成,此外密码锁必须能够保存已设置的密码,因而需要一个寄存器来保存密码,同时由于控制电路和报警电路要用到不同的时钟,因而需要一个时序产生电路来生成需要的不同信号,采用分频方法实现。 根据密码锁的电路特点,选用的是实验箱的模式6电路,根据电路功能,在这里设计的密码锁以4位2进制代码作为密码的电子密码锁。其原理框图如下所示:报警电路时序产生电路比较控制密码输入开锁信号寄存器(保存设置的密码)密码设置图一、电子密码锁原理框图三、功能模块的实现1、时序电路 在密码锁的电路中,输入计时、报警计时需要的1HZ的时钟脉冲信号,而驱动蜂鸣器工作需要的很高频率的脉冲信号,因而这里采用输入一个高频脉冲(1024HZ)信号来驱动蜂鸣器,采用分频的方法得到1HZ的计时脉冲,程序如下:process(clk_1k) variable cnt1:integer:=0;beginif rising_edge(clk_1k) thenif cnt1=512 thenclk_1<=not clk_1;cnt1:=0;else cnt1:=cnt1+1;end if;end if;end process;程序说明:clk_1k为输入的1024HZ高频脉冲,cnt为分频得到的1HZ计时脉冲。2、密码设置为了安全性,密码锁必须能够重复的设定密码,在设定密码锁后,应该设置一个寄存器来存储设定的密码,程序如下:process(rst,password,enter_p) is beginif rst='0 thenif enter_p=1' thenram<=password;en1<=1';end if;end if;end process;程序说明:rst低电平时所有的模块复位,只有密码设置模块工作;password为设置密码时的输入端,ram就是存储密码的寄存器;enter_p为在这里为密码设置使能端,高电平有效。 密码设置的仿真波形如下图,由图中可以清楚地看到在enter_p高电平时寄存器ram中得到了输入的密码1001。图二、密码设置仿真波形3、 密码输入 密码输入部分要求在密码开始输入时进行计时,超时了要求报警,因此在 密码输入时设置一个计时使能信号en2,密码开始输入时使能信号en2有效,控制电路的计时器开始计时;而且在密码确认键按下之前,电路不能对输入密码和已设置密码进行比较,因此需要设置一个寄存器,来存储输入的数据,当确认键按下时,就将寄存器里的数据送给控制部分进行比较。程序如下:process(rst,enter_c,en1,code) beginif rst=1 thenif en1=1' thenif enter_c=1 thencode_tmp<=code;en2<=1;end if; else code_tmp<="0000";en2<='0';end if;else code_tmp="0000”;en2=0;end if;end process; 程序说明: rst置高,设置密码模块不工作,其他部分正常工作,en1为高时代表密码设置完毕,密码锁开始工作;enter_c是密码输入使能信号,高电平时表示开始密码输入,此时code_tmp中开始存储输入的数据,计时使能信号en2也变成高电平。 密码输入仿真波形如下,由图中可清楚的看到在enter_c为高时,寄存器code_tmp中存储了输入的数据code(系统仿真时有10ns的延时)。图三、密码输入仿真波形4、 控制部分此部分是密码锁设计的核心模块,它实现密码锁的逻辑功能。开锁代码为4位二进制数,当输入代码的位数和位值与锁内设置的密码一致,且在规定时间内开锁,方可打开,并且点亮开锁指示灯led_g;否则,系统进入“错误”状态,并且发出警报。警报的方式为蜂鸣器发出警报,指示灯led_r闪烁。直到30秒过后或者按下复位键,经行下一次密码输入。模块源程序:process(rst,clk_1,en2) variable lock:std_logic:='0;variable cnt3:integer:=0;beginif rst='0' thenlock:=0'cnt3:=0;sp_en='0;led_g=0;led_r='0;elseif rising_edge(clk_1) thenif lock=0' thenif en2='1 thenif cnt3=5 thensp_en=1;led_g='0;led_r<='1;cnt3:=0;lock:=1'else if code_en=1' then if ram=code_tmp thensp_en=0;led_g<=1;led_r='0;lock:='1; else sp_en=1; led_g=0;led_r='1' end if;end if;cnt3:=cnt3+1;end if;end if;else cnt3:=0;end if;end if;end if;end process;程序说明:、lock为自锁信号,lock为1时,系统进入自锁状态,不再工作。、Cnt3为密码输入计时信号,en2为1(即开始输入密码)时开始计时,当超过5秒而没有输入正确密码时,系统自锁并报警。、code_en为密码确认键,此键按下时,系统开始将输入的密码和设置的密码进行比较,若二者一致则发出开锁信号,若不一致则发出报警信号,系统进入自锁状态.5、 报警电路报警电路的作用就是在密码输入错误或者输入超时的情况下经行报警,蜂鸣器发出声音,并且警报灯不停闪烁,直到复位键按下或者计时30s结束。源程序如下:process(rst,sp_en,clk_1,clk_1k) variable tmp_en1:std_logic:=0;variable cnt4:integer:=1;beginif rst='1 thenif rising_edge(clk_1) thenif sp_en='1 and cnt40 thenif cnt4=31 thencnt4:=0;tmp_en1:='0;else cnt4:=cnt4+1; tmp_en1:='1'end if;end if;end if;else tmp_en1:='0'cnt4:=1;end if;speaker<=tmp_en1 and clk_1k;led_f<=tmp_en1 and clk_1;end process;程序说明:Cnt4是一个30进制计数器,对报警时间进行计时.Sp_en是控制电路发出的报警信号。四、 软件仿真将完整的程序在Quartus软件下进行编译,通过之后进行波形仿真,观察仿真波形看是否实现了密码锁的逻辑功能,下面是在密码输入正确、密码输入超时和密码输入错误时的仿真波形图。图四、密码输入正确仿真波形 如图所示,首先在rst为0时将密码设为1001,然后输入密码1001,当确认键code_en按下时,系统判断密码正确,输出一个开锁信号,开锁指示灯led_g点亮.图五、密码输入错误仿真波形如图,密码设置仍然为1001,但输入一个错误的密码1000,当密码确认按下时,系统发出错误警报,蜂鸣器Speaker发出响声,报警灯led_f闪烁.图六、出入超时仿真波形 如图,密码设置不变,依旧是1001,但是密码输入按键enter_c按下,输入密码后不按下确认键,五秒过后,系统判断密码输入超时,此时输出超时警报,蜂鸣器报警,led_g点亮,led_f闪烁。五、 心得体会这次的课程设计安排在了假期以后,上学期的VHDL语言已经有些生疏了,这给编程带来了一些难度,但是经过复习还是重新熟悉了编程的方法和技巧.在写程序的时候有时候不注意仿真,犯了想当然的毛病,认为程序会实现想象中的逻辑功能,但实际不然,所以在编程过程中,不能单凭想象来做,必须写完一部分后就进行一次仿真,及时发现问题,及时改正,避免可在写完程序之后才发现错误,这时再修改就会很麻烦了。这次的课程设计标题是密码锁设计,通过在查阅资料的过程中了解了电子密码锁的发展前景和FPGA的广泛应用,在日常生活中会有许多的电子设备都与FPGA有关,因此学好EDA技术对自己的以后的发展会有很大的帮助。

    注意事项

    本文(基于FPGA的电子密码锁设计.doc)为本站会员(可****阿)主动上传,淘文阁 - 分享文档赚钱的网站仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对上载内容本身不做任何修改或编辑。 若此文所含内容侵犯了您的版权或隐私,请立即通知淘文阁 - 分享文档赚钱的网站(点击联系客服),我们立即给予删除!

    温馨提示:如果因为网速或其他原因下载失败请重新下载,重复下载不扣分。




    关于淘文阁 - 版权申诉 - 用户使用规则 - 积分规则 - 联系我们

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

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

    收起
    展开