[原创] 【小梅哥FPGA进阶教程】第十二章 数字密码锁设计

芯航线跑堂   2017-2-21 19:31 楼主
十二、数字密码锁设计



本文由山东大学研友袁卓贡献,特此感谢
实验目的
实现数字密码锁设计,要求矩阵按键输出且数码管显示输入密码,密码输入正确与否均会有相应标志信号产生。
实验平台
芯航线FPGA核心板、数码管_VGA_PS2模块、矩阵按键模块
图片1.jpg
实验原理
随着生活质量的提高,当代人们也认识到了安全的重要性,已经不再满足于老式的机械钥匙。近年来越来越多的技术开始在安全领域应用,例如普通的按键输入、指纹输入或者虹膜输入等。
本节设计一款按键输入式密码锁,用矩阵键盘输入密码,输入完成后进行密码比对,如密码输入正确则输出开门信号以及灯光指示,如密码输入错误则蜂鸣器进行报警以及灯光指示。
综合以上要求可以看出此处系统框图如图1所示。
图片2.jpg
图1 系统框图
其中各模块功能描述如表1所示。
图片3.jpg
表1 各模块功能描述
矩阵按键模块
现在分开介绍,矩阵按键输入控制模块的框图及其接口列表如下所示,详细内容可以参考芯航线关于矩阵按键的教程,此处不再详述。

图片4.jpg
图2 矩阵按键模块框图
图片5.jpg
表2 矩阵按键模块接口列表
密码比较模块:
现介绍密码检测模块,其主要功能即比较输入与预设的密码是否一致,
图片6.jpg
图2 密码检测模块框图
图片7.jpg
表2 密码检测模块列表
这里先将密码设置为4位十进制数1234,如下所示
图片8.jpg
通过计数矩阵按键按下标志信号,依次将数据暂存到寄存器mima_r中。
图片9-1.jpg
图片9-2.jpg


这里通过一个独立按键来控制比较信号,用到了按键消抖模块,详细内容可以参考芯航线有关章节。
图片10.jpg
当开始比较后,根据实际情况判断后输出正确与否。
图片11.jpg
控制模块:
现在介绍模块的控制单元。本模块主要功能是根据密码检测模块的输出确定,开关门信号以及声光信号。其模块接口列表及功能描述如下所示。

图片12.jpg
图3 控制模块框图
图片13.jpg
表3 控制模块接口列表
在这里使用三段式状态机进行描述。
图片14.jpg
第一个always块:
图片15.jpg
第二个always块:
图片16-1.jpg
图片16-2.jpg


第三个always块:
图片17.jpg
图片17-2.jpg
图片17-3.jpg


数码管显示模块:
Hex8为数码管显示模块,其框图以及其接口列表如下所示,具体功能介绍可参见芯航线相关内容。
图片18.jpg
图4 数码管显示模块框图
图片19.jpg
表4 数码管显示模块接口列表
顶层设计:
最后在顶层例化各模块即可,分配引脚后全编译无误后即可下载到芯航线开发板中观测到对应现象。
图片20.jpg
图5 顶层文件RTL Viewer
如有更多问题,欢迎加入芯航线 FPGA 技术支持群交流学习:472607506
小梅哥
芯航线电子工作室
关于学习资料,小梅哥系列所有能够开放的资料和更新(包括视频教程,程序代码,教程文档,工具软件,开发板资料)都会发布在我的云分享。(记得订阅)链接:http://yun.baidu.com/share/home? ... are#category/type=0
赠送芯航线AC6102型开发板配套资料预览版下载链接:链接:http://pan.baidu.com/s/1slW2Ojj 密码:9fn3
赠送SOPC公开课链接和FPGA进阶视频教程。链接:http://pan.baidu.com/s/1bEzaFW 密码:rsyh


此内容由EEWORLD论坛网友芯航线跑堂原创,如需转载或用于商业用途需征得作者同意并注明出处

回复评论 (9)

点赞  2017-2-23 08:39

感谢您的支持!!!
点赞  2017-2-24 14:28
感谢楼主分享
点赞  2017-3-1 10:28
点赞  2017-3-26 10:44
小梅哥 求源代码
点赞  2017-5-17 14:21
小梅哥求源代码
点赞  2017-5-17 14:21
感谢楼主,拿来练练手很不错
点赞  2018-6-12 17:09

感谢楼主分享,學習學習++1

点赞  2021-7-11 22:55

精华就是精华,不错的学习例程。。。。。。。

点赞  2021-11-28 13:15
电子工程世界版权所有 京B2-20211791 京ICP备10001474号-1 京公网安备 11010802033920号
    写回复