找回密码
 注册
关于网站域名变更的通知
查看: 312|回复: 1
打印 上一主题 下一主题

转——【小梅哥FPGA进阶教程】第十二章 数字密码锁设计 

[复制链接]

该用户从未签到

跳转到指定楼层
1#
发表于 2019-3-28 13:51 | 只看该作者 回帖奖励 |倒序浏览 |阅读模式

EDA365欢迎您登录!

您需要 登录 才可以下载或查看,没有帐号?注册

x
本帖最后由 Zedd 于 2019-3-30 16:00 编辑
* U5 y, N8 ]9 }9 `* t% j" i" X. E/ i! T; Q2 s
十二、数字密码锁设计

: M1 q% Q' g. V' F
8 l1 h) w" Z( Q3 r# J% y: v
本文由山东大学研友袁卓贡献,特此感谢
实验目的
& c' x- W4 M7 |6 f$ M: M实现数字密码锁设计,要求矩阵按键输出且数码管显示输入密码,密码输入正确与否均会有相应标志信号产生。 : B6 M7 r9 C) L0 r5 ~
实验平台
6 y' @1 _% K. l芯航线FPGA核心板、数码管_VGA_PS2模块、矩阵按键模块
; L) R( k  I9 K% j+ v/ L" @2 e( v) N
+ s/ i: V  A" P
实验原理
: j: I0 C2 K0 s  ?9 a9 A* y随着生活质量的提高,当代人们也认识到了安全的重要性,已经不再满足于老式的机械钥匙。近年来越来越多的技术开始在安全领域应用,例如普通的按键输入、指纹输入或者虹膜输入等。
5 Q8 ]5 D8 n9 c, m- D, P0 s本节设计一款按键输入式密码锁,用矩阵键盘输入密码,输入完成后进行密码比对,如密码输入正确则输出开门信号以及灯光指示,如密码输入错误则蜂鸣器进行报警以及灯光指示。
0 M1 z  V5 `# E, B综合以上要求可以看出此处系统框图如图1所示。 - v+ D# z# S9 g0 v# ~, [
% t  }8 e9 ]: _' j% U& L( |

! p) r3 G: ~" t# C
图1 系统框图
其中各模块功能描述如表1所示。

$ ]7 a, a6 T. D: `6 Z" r

# S5 G  G  K, p% Q& F: F* V* v
" }' q* k* m. N# N
表1 各模块功能描述
矩阵按键模块

  H6 q5 g1 I0 f/ S4 B. r9 ^/ X
现在分开介绍,矩阵按键输入控制模块的框图及其接口列表如下所示,详细内容可以参考芯航线关于矩阵按键的教程,此处不再详述。

  u: P- `4 p2 O' C/ P- n5 _
' X) N  Q9 t8 o+ ]9 K. Z- |
* t1 M# W7 V/ S. T$ Z: K1 j" `
7 e' V  V: L6 h* P

0 t6 y5 j5 J8 _- ]
图2 矩阵按键模块框图

8 q8 [- h) x- ]9 P# F  j
" G( _# o6 C- l  v# L
表2 矩阵按键模块接口列表
密码比较模块:
# U' a9 F# \3 i! ~) A
现介绍密码检测模块,其主要功能即比较输入与预设的密码是否一致,

  a# k+ e0 w* V6 w: m

7 b4 q/ j: W  L+ ^# P& G+ k
+ ]( ~, }- U1 `# `2 `3 ?" a
图2 密码检测模块框图

) o- R) s# h& ?# T$ d, F& J
+ r/ Q, \) z. _/ w$ H4 x
表2 密码检测模块列表
这里先将密码设置为4位十进制数1234,如下所示
5 A* }+ A/ S  b, Q

3 u/ Z1 Q' \0 ?# E  j) B通过计数矩阵按键按下标志信号,依次将数据暂存到寄存器mima_r中。
. ~1 B6 z3 A  H5 v0 m
$ s' h  b' n+ ]% X$ T

3 ~# _4 P% U: f3 v

5 V, L# C: }% I1 j# ^; B1 i
/ ~, j8 M, v0 S6 k1 z( a' \1 S( B( h1 R# c* S3 {: e
这里通过一个独立按键来控制比较信号,用到了按键消抖模块,详细内容可以参考芯航线有关章节。
6 C8 d2 |5 f) S/ T, N+ c

9 N( S# v2 b  ?+ [8 |当开始比较后,根据实际情况判断后输出正确与否。
% q& G8 u) v6 v& [0 j- ]6 ?; d" d

9 d8 R- q) U- W控制模块:
% d5 C9 w6 |5 }: G9 X现在介绍模块的控制单元。本模块主要功能是根据密码检测模块的输出确定,开关门信号以及声光信号。其模块接口列表及功能描述如下所示。 / l, f, T7 F! Y" E/ Q( W, T( x
; r; J! Y4 N% p6 L
3 v3 |) m% S. u2 D  `% }2 t, W. G

5 r$ b) z- A5 E/ e" U  d
图3 控制模块框图

6 L3 ^  C3 x/ [: C. h( H
/ p" o0 ~* P+ q5 R; F: M
表3 控制模块接口列表
在这里使用三段式状态机进行描述。
, n& n6 o% |) J1 j4 y* _

) v! s  r. L: e' ^# ~第一个always块:
; u9 I6 N/ T0 B) G0 B/ F2 v
  \: a% X2 D; J4 V9 C$ _
第二个always块:
7 U, m3 b# Y& I& ~1 Q

; \4 l& G; J: b' |
' ^. E3 |$ r+ S# S4 B0 O

& O5 ]# P( D! v! Q- y" Y
" p! ~' A' _/ S4 q$ v" S4 Z
0 y9 K( r6 q0 G; ?第三个always块: 6 ^1 C0 y1 k3 K4 m$ N0 y$ q8 f
0 q& r% ?0 q' k0 [* w5 ^% X
4 k0 W) D# R7 f0 O3 c% S9 i1 @
* d) Q' x% D0 o

$ i$ Q1 b: H. d* e% r; {2 w* M1 n
$ @) a! d4 E8 u4 {

, a0 m0 ]" d9 [9 `. P9 A8 h# y* i2 d
数码管显示模块:
) }3 O2 i: ~% ~3 V: {5 n* CHex8为数码管显示模块,其框图以及其接口列表如下所示,具体功能介绍可参见芯航线相关内容。 ) s" ~4 I6 K9 w8 M! e: ~# u1 E
" @$ L. X# V+ @) i0 G% e. D% p" V
! i5 O# `6 t& Y% O
图4 数码管显示模块框图
5 ]3 W) n, z! z) w
- F" u% \4 V5 M% ~- G$ @
表4 数码管显示模块接口列表
顶层设计:
0 a! e% M& ~. g  s$ ^
最后在顶层例化各模块即可,分配引脚后全编译无误后即可下载到芯航线
开发板
中观测到对应现象。
% W" O( C1 W9 T1 y" d

! l- U0 {/ c: f4 X  `* ?$ N  X+ u+ r% c
图5 顶层文件RTL Viewer
如有更多问题,欢迎加入芯航线 FPGA 技术支持群交流学习:472607506
小梅哥
芯航线电子工作室

2 J/ G. n' L" J3 x" L
游客,如果您要查看本帖隐藏内容请回复
  d( I: P. J+ T" w
您需要登录后才可以回帖 登录 | 注册

本版积分规则

关闭

推荐内容上一条 /1 下一条

EDA365公众号

关于我们|手机版|EDA365电子论坛网 ( 粤ICP备18020198号-1 )

GMT+8, 2025-7-29 03:24 , Processed in 0.140625 second(s), 26 queries , Gzip On.

深圳市墨知创新科技有限公司

地址:深圳市南山区科技生态园2栋A座805 电话:19926409050

快速回复 返回顶部 返回列表