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

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

[复制链接]

该用户从未签到

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

EDA365欢迎您登录!

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

x
本帖最后由 Zedd 于 2019-3-30 16:00 编辑
: k0 c% }& ~! z
% U) @, i6 k5 T8 l# w7 i- G
十二、数字密码锁设计

5 G) \) w: i  g1 ~+ G: z  g' Z: f! Y  Q" r
本文由山东大学研友袁卓贡献,特此感谢
实验目的% ]6 u* H3 a2 o) \2 m9 ]/ t
实现数字密码锁设计,要求矩阵按键输出且数码管显示输入密码,密码输入正确与否均会有相应标志信号产生。   i0 @, n5 s* Z$ r1 Q: g1 U- |/ u
实验平台
& o; a( V! @+ e芯航线FPGA核心板、数码管_VGA_PS2模块、矩阵按键模块 9 Q* F( f+ v. }- s3 Q- Y+ i) o, o/ u

" O" z1 Q+ G2 Y  L# L实验原理
2 l) X6 E9 U& W7 X! P随着生活质量的提高,当代人们也认识到了安全的重要性,已经不再满足于老式的机械钥匙。近年来越来越多的技术开始在安全领域应用,例如普通的按键输入、指纹输入或者虹膜输入等。
" P8 T  c+ b. B% j3 ~0 e$ S8 o- H0 f本节设计一款按键输入式密码锁,用矩阵键盘输入密码,输入完成后进行密码比对,如密码输入正确则输出开门信号以及灯光指示,如密码输入错误则蜂鸣器进行报警以及灯光指示。
. y$ ^6 }# [/ ?6 R% W综合以上要求可以看出此处系统框图如图1所示。
, @9 s; i& k3 B
9 [" Y8 _1 R+ a: ^  ]3 o
6 b' W0 [! t6 n+ Z- p/ S
图1 系统框图
其中各模块功能描述如表1所示。
" p# r. N0 f" [

. |& O# P) d/ T3 h0 _0 L0 J, f: u' U/ E- @! h% o& F
表1 各模块功能描述
矩阵按键模块

6 A) a: q0 T, `
现在分开介绍,矩阵按键输入控制模块的框图及其接口列表如下所示,详细内容可以参考芯航线关于矩阵按键的教程,此处不再详述。
& _8 o* L7 u' W4 t& e8 |6 c! r
( }  D) d2 f1 P- s; O/ c- m! Z

% w2 L" a# ]& p7 r7 @
% `; G5 D3 A! V& B' u

; o3 D: O$ B/ t  h' \  r. L
图2 矩阵按键模块框图
! _: e( Y8 X, T

; Y6 ~0 U0 [6 w5 U/ y
表2 矩阵按键模块接口列表
密码比较模块:
3 G/ _5 ]+ J6 C+ E) w
现介绍密码检测模块,其主要功能即比较输入与预设的密码是否一致,

2 U8 P2 @: z  L, C
' A' b. V9 R8 g
% X9 e* C/ O. b/ t3 L
图2 密码检测模块框图
# e: ^6 C3 I6 x

5 `0 y* @  S+ Y$ w: x9 V6 g
表2 密码检测模块列表
这里先将密码设置为4位十进制数1234,如下所示

0 |+ ?% G/ G/ b. j0 F: W7 D4 H1 c

& u  F6 _  F0 c通过计数矩阵按键按下标志信号,依次将数据暂存到寄存器mima_r中。 1 `6 p0 I* f. |5 Z( }9 ]2 }

( X6 [; p( J8 s5 C4 E+ R8 C+ W& T' V
% c) {8 @5 b. j. [( G  ^+ S

( o! q: S' M% P& W- {' ^* A
* m1 ?  a7 }0 u- _  k$ g! M这里通过一个独立按键来控制比较信号,用到了按键消抖模块,详细内容可以参考芯航线有关章节。
5 S3 w$ G$ H, k1 }
. n, c: i0 G" R4 p! x( A" g  O* a
当开始比较后,根据实际情况判断后输出正确与否。 $ ^" P, D- k0 s9 H4 _8 d. v

+ ?. y" K2 m, Z控制模块:% x2 M8 B! `/ @9 j
现在介绍模块的控制单元。本模块主要功能是根据密码检测模块的输出确定,开关门信号以及声光信号。其模块接口列表及功能描述如下所示。
, |- X4 j- b7 H4 W: c! D
6 K. w; {! W  `/ S- B( Q6 F
1 q$ j; |" ]2 `# L

. n+ t! s( J4 h: ?" I! m; J
图3 控制模块框图

/ P  N7 d; v  i! w, v2 O, |+ V5 q
0 e: d1 W* a* r  M6 L' f' E: q
表3 控制模块接口列表
在这里使用三段式状态机进行描述。

) Y1 V' Q% Q- h  I* D0 U! z$ r

' T) o; N% e- I3 z' M& }第一个always块:
2 [1 {* r2 p5 q0 F/ S- y0 P6 e" r
0 Y9 M7 o3 d" L8 g
第二个always块:
# {+ s1 p! s1 }8 A% b
9 h" _+ |) p1 E8 ~" {! h8 V( y. v
8 ?8 O! G6 p2 K9 r' @6 r  e# n

3 Y$ T* @3 _9 E4 z1 e( Z7 ?; T9 N
+ V$ _* C4 @( P/ x& r
第三个always块: * v/ O0 a$ I: W- X0 V

( p, W! P- j; J- d$ b. X' I0 r5 X3 n8 F6 S

% D1 n& F7 @$ L# V4 L
$ q+ [5 g( d) S2 v( G# ?
5 W" r2 `( I  ]6 ^/ ?# l

$ K' X- w( y" D1 Z
1 ?6 a: G4 Q& E2 e- x: ?7 a% W) q数码管显示模块:1 M. C* C& F* s  Q4 u5 I; g. b. G
Hex8为数码管显示模块,其框图以及其接口列表如下所示,具体功能介绍可参见芯航线相关内容。
2 o  d1 f2 t% t5 `
# W/ {% ?0 i' x

) t8 r5 B9 z9 B/ H, b  E% u
图4 数码管显示模块框图
* r# ^/ l$ B7 p1 F" P
& ^4 [% j! a, a( f: B
表4 数码管显示模块接口列表
顶层设计:
& c6 \. E* @+ [6 J, z
最后在顶层例化各模块即可,分配引脚后全编译无误后即可下载到芯航线
开发板
中观测到对应现象。

* f) v7 q& V4 N- r7 M

  ~( a9 ^; `; ^" k1 v& ]" B6 b# ]0 \$ m: X1 W
图5 顶层文件RTL Viewer
如有更多问题,欢迎加入芯航线 FPGA 技术支持群交流学习:472607506
小梅哥
芯航线电子工作室
  B0 ^% w- k! _0 Y
游客,如果您要查看本帖隐藏内容请回复

$ {8 m/ o) {- S, A- M
您需要登录后才可以回帖 登录 | 注册

本版积分规则

关闭

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

EDA365公众号

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

GMT+8, 2025-7-29 22:21 , Processed in 0.125000 second(s), 26 queries , Gzip On.

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

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

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