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

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

[复制链接]

该用户从未签到

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

EDA365欢迎您登录!

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

x
本帖最后由 Zedd 于 2019-3-30 16:00 编辑 9 N# O5 z2 E) \
+ z: Z( b* ~& }1 D, i& x' k
十二、数字密码锁设计

7 g/ p( k; J" ~2 d1 X7 Y+ `4 G/ g& q6 G' F
本文由山东大学研友袁卓贡献,特此感谢
实验目的
3 P4 a- `# d% I6 k* a实现数字密码锁设计,要求矩阵按键输出且数码管显示输入密码,密码输入正确与否均会有相应标志信号产生。 . d6 }' h4 {5 ^6 ?
实验平台
! T5 f. ~5 R& x' b- b1 x芯航线FPGA核心板、数码管_VGA_PS2模块、矩阵按键模块
5 n6 v: N+ _; W- v0 d% x% p
% i- k8 j: x& s) T- g! k3 H( n2 M
实验原理
  v: D  b2 _2 G( @/ Y" F3 H随着生活质量的提高,当代人们也认识到了安全的重要性,已经不再满足于老式的机械钥匙。近年来越来越多的技术开始在安全领域应用,例如普通的按键输入、指纹输入或者虹膜输入等。
# ]) Z8 J  H, Y* n* v. {/ T本节设计一款按键输入式密码锁,用矩阵键盘输入密码,输入完成后进行密码比对,如密码输入正确则输出开门信号以及灯光指示,如密码输入错误则蜂鸣器进行报警以及灯光指示。 9 S4 G% b$ F3 N. M" O5 Y% Q
综合以上要求可以看出此处系统框图如图1所示。 ' {" {) b& u$ P* `  A
% c6 V+ [9 A$ ^9 a
/ A" V; y6 ]$ y: M
图1 系统框图
其中各模块功能描述如表1所示。

' ]6 f( ~2 p& j
- O! n. W; u$ s7 Y

2 e0 x# d6 Q( r  Q) E
表1 各模块功能描述
矩阵按键模块
9 X8 F0 A0 k8 x/ k! R( j
现在分开介绍,矩阵按键输入控制模块的框图及其接口列表如下所示,详细内容可以参考芯航线关于矩阵按键的教程,此处不再详述。

9 T' o6 H! j9 E

8 B& k8 m9 @. {7 A+ q! K. [
+ `6 k+ _1 Y* t" {

9 F7 O- [) K' A' w* ~" ^, O9 o& ~* I
图2 矩阵按键模块框图
9 `  V0 k# }1 n& j

* c, ~2 [' K' k0 S# a
表2 矩阵按键模块接口列表
密码比较模块:

* P( Q) o# H6 ?) ~& Q! N; V) M' Y7 v
现介绍密码检测模块,其主要功能即比较输入与预设的密码是否一致,

* Q* c0 U  F( w4 W
" `; X5 J2 G& ]* C" Z
* j' z3 u8 F7 o0 T) Y# j
图2 密码检测模块框图
8 [- F1 G" f7 q. c# W- M0 n% r

( F6 p4 y8 n$ u4 [9 @$ `
表2 密码检测模块列表
这里先将密码设置为4位十进制数1234,如下所示

/ ~) k8 m4 e3 j" K8 n$ m
' U7 p0 B8 _6 i1 d9 w+ w5 x4 u6 k, l3 O
通过计数矩阵按键按下标志信号,依次将数据暂存到寄存器mima_r中。
) x9 \4 l8 J+ r7 |7 c! @

& w3 b; [! _; B% `6 S- B- ?+ n
# A6 o5 D% G' M' X
& Q+ b6 |8 y5 J- p) T
$ X  B7 s1 `/ }- H* b' f$ B

8 C& ~2 e5 `4 X' X* r" b# R这里通过一个独立按键来控制比较信号,用到了按键消抖模块,详细内容可以参考芯航线有关章节。 * p- o3 q8 E6 I% S$ j
3 L6 P6 d1 N  X) d4 K: p0 ?
当开始比较后,根据实际情况判断后输出正确与否。
" X. N2 @# U% w) ]4 s$ I6 Y. W

3 W" `6 P6 h1 Y# z9 r% H控制模块:  B4 ?3 e1 h. S% m
现在介绍模块的控制单元。本模块主要功能是根据密码检测模块的输出确定,开关门信号以及声光信号。其模块接口列表及功能描述如下所示。
5 u9 a( ]" K* U5 |$ I
' w2 l+ s  m0 [8 ^2 }5 S

1 d5 u: L: _1 g* A. V4 U/ C: h' a% j/ S+ J% L; V: w: x' b
图3 控制模块框图

6 \/ O: Q$ x0 T
/ c0 q. M6 Z5 w8 z
表3 控制模块接口列表
在这里使用三段式状态机进行描述。

3 `: L% n& h; M) z$ X/ b

/ q- x! j4 B7 _. U4 K2 Y. s- N第一个always块:
- [9 S1 H3 ?8 B# n9 |. a( |

/ D. N7 {7 t! V9 P' W3 A' P- H第二个always块: 4 z; H% u$ }6 x& m  \
- a# ?. p8 `5 ^$ w$ [
' o" v1 Y7 ?3 P) c9 w  c2 L

& |" c4 a6 O4 q& ]
  ^  R/ K, T' `1 B7 D/ `) b' e) \# }" T3 [0 s6 ?, i8 }! O- w
第三个always块:
9 y. W2 _% c, e* H: g+ V# s
( Z2 ]9 |% a6 k1 p3 v
2 z- u7 ?% e, U# y( t

2 e, ?7 X: r- U" Z& l2 q6 ~% \0 \! K0 R; w
+ k% \6 a2 v9 |: |& y6 z0 z

8 i1 t: L7 O$ a& p  g3 r! [" A# Q; Z% p! b
数码管显示模块:
4 f1 X1 f8 _% j% PHex8为数码管显示模块,其框图以及其接口列表如下所示,具体功能介绍可参见芯航线相关内容。
1 `& L5 g1 E3 g8 Q5 l3 G5 U" s
+ q  ^& `8 I3 P* K4 P( ?' Q. v3 r
7 G  k6 h% R$ F) l
图4 数码管显示模块框图
6 g1 y# o- ~  I. d- W
- b4 Q! S4 |( z5 A' `2 j' S
表4 数码管显示模块接口列表
顶层设计:
1 w% a. G2 ?; W" L1 g/ K; G
最后在顶层例化各模块即可,分配引脚后全编译无误后即可下载到芯航线
开发板
中观测到对应现象。

! j- K' ~& ^2 Q$ ?! p6 I. p

3 b# \; w' ?) r2 r/ I, A  [# p* v5 S2 I, H4 r6 q1 z
图5 顶层文件RTL Viewer
如有更多问题,欢迎加入芯航线 FPGA 技术支持群交流学习:472607506
小梅哥
芯航线电子工作室
" R0 y8 q1 b* G  a5 Y+ r" G
游客,如果您要查看本帖隐藏内容请回复
% E5 I4 ]# F  ^' B4 i  h. Q
您需要登录后才可以回帖 登录 | 注册

本版积分规则

关闭

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

EDA365公众号

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

GMT+8, 2025-10-8 20:33 , Processed in 0.140625 second(s), 26 queries , Gzip On.

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

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

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