我们从2011年坚守至今,只想做存粹的技术论坛。  由于网站在外面,点击附件后要很长世间才弹出下载,请耐心等待,勿重复点击不要用Edge和IE浏览器下载,否则提示不安全下载不了

 找回密码
 立即注册
搜索
查看: 1268|回复: 2

[技术文章] FPGA实现的数字密码锁

[复制链接]

该用户从未签到

52

主题

86

回帖

13

积分

游客

积分
13

社区居民终身成就奖

QQ
发表于 2015-12-20 10:42:43 | 显示全部楼层 |阅读模式

马上注册,结交更多好友,享用更多功能,让你轻松玩转社区

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

×
本文介绍了一种以FPGA 为基础的数字密码锁。采用自顶向下的数字系统设计方法, 将数字密码锁系统分解为若干子系统, 并且进一步细划为若干模块, 然后用硬件描述语言VHDL 来设计这些模块, 同时进行硬件测试。测试结果表明该数字密码锁能够校验10 位十进制数字密码, 且可以预置密码, 设有断电保护装置, 解码有效指示等相应功能。

1 功能概述

(1)密码锁的工作时钟由外部晶振提供,时钟频率为50MHz,运算速度高,工作性能稳定。

(2)密码的设置和输入由外接键盘完成,控制电路的安全系数高,操作方便;

(3)密码数字可以由锁的所有者随意设置,并可更改, 增强了用户体验。密码修改必须符合预设规则,否则无法修改密码。

(4)开锁时, 不限制密码的输入位数(1到10 位皆可以), 减少了密码被破 解的概率(约为10 亿分之一的破 解率),密码锁的保密能力高。

(5)清除密码键的设定,可以快速清除全部密码,提高了对突发事件的适应能力。

(6)对输入的数字密码既能直接显示,又能转换为星号,防治偷 窥,增强保密性。

(7)全部密码输入后, 正确时密码锁将开启, 显示屏出现:Input Right! 指示灯变亮。错误时,显示屏出现:Input Failed! 指示灯变灭。

(8)设有断电保护装置,保证电路不会因掉电失去所修改的密码,而回到最初的密码值,增强密码的稳定性。

2 系统结构

本系统设计主要包括硬件设计和软件设计两部分,均采用模块化设计。其中硬件设计主要包括中央控制模块、微控制器、显示模块、输入模块、外围电路等内容。软件设计包括状态控制模块,逻辑控制模块,液晶显示驱动模块,EPROM 驱动模块,扫描输入模块等构成。系统结构框架图如图1 所示。



                               
登录/注册后可看大图

图1:系统结构框架图


设计采用模块化编程方式,整个程序由液晶LCD1602 模块(LCD1602.v)、矩阵键盘模块(Matrix_Keys.v)、存储芯片AT24C02 模块(AT24C_XX.v) 和顶层逻辑功能模块(password.v) 组成。顶层逻辑功能模块(password.v) 调用其他3 个模块完成顶层功能的设计。如图2 所示。


                               
登录/注册后可看大图

图2:矩阵键盘原理图



3 底层设计

3.1 输入模块

由于键盘按键数量较多,为了减少I/O 口的占用,本设计将按键排列成矩阵形式。在矩阵式键盘中,每条水平线和垂直线在交叉处不直接连通,而是通过一个按键加以连接。这样,8 个端口就可以构成3*5=15个按键,实际上我们只用14 个按键就足以解决密码问题,比之直接将端口线用于键盘多出了一倍,而且线数越多,区别越明显,比如再多加一条线就可以构成20 键的键盘,而直接用端口线则只能多出一键(9 键)。故在需要的键数比较多时,采用矩阵法来做键盘是更合理的方案。

3.2 显示模块与外围电路

本设计选用了LCD1602 作为显示模块的核心,可以方便地显示所需的数字和提示语,具有界面人性化、功耗低、速度快、节约控制器资源等优点。外围电路主要是一个受控制器控制的LED,由于表示锁的开启与关闭。

3.3 存储模块

本设计使用存储芯片AT24C02 作为密码的外部存储器。二线制串行EEPROM—24C02是低工作电压的2K 位串行电可擦除只读存储器,内部组织为256 个字节,每个字节8 位,该芯片被广泛应用于低电压及低功耗的工商业领域。设计使用I2C 协议实现控制器与存储器的联结,实现密码保存,并保证密码不会因断电丢失。

4 工作方式

本系统利用上述系统模块作为硬件基础,使用VHDL 语言编写程序,实现了五大主要功能:

(1)确认密码:通过扫描矩阵键盘,判断用户输入内容,将键入的数码与密码存储器中的密码进行比较,判断密码的正误,并控制密码锁的开关;

(2)清除密码:输入密码过程中发生按键失误,可以通过选择清除键清除当前全部的密码,方便重新输入;

(3)密码保护:通过显示切换键,可以切换显示模式。在显示数字模式下,显示屏即显示输入的数字,方便用户操作;在保护模式下,显示的密码用“*”表示,防止外界偷 窥,提高安全性能;

(4)修改密码:当密码锁处于打开状态时,默认识别当前用户为锁的持有者,允许修改密码。但修改密码必须符合密码锁内设的“潜在规则”,否则无法完成修改,防止密码锁被破坏;

(5)断电保护:设置电路保护结构,保证电路不会因掉电失去所修改的密码,而回到最初的密码值。

其工作流程图如图3。


                               
登录/注册后可看大图

图3:工作流程图



5 仿真与调试

在设计过程中,首先针对各个模块,使用Quartus II 等软件进行仿真,然后将程序烧录进行硬件调试。最后,将整个系统程序进行全编译, 进行整个系统的软件仿真,仿真通过后进行整个系统的硬件调。

6 核心特点

本设计开创性地提出了修改密码“潜在规则”的概念,即在修改密码时,新密码必须满足密码锁制作时预设的潜在规则,否则无法成功修改密码,例如:潜在规则为密码必须为七位数,则在修改密码时若输入为五位数则会提示密码修改失败。本设计的意义在于,当入侵者通过非法手段获取正确密码并开锁后,如果短时间内不能发现潜在规则,就不得不放弃修改密码,防止用户利益二次受损。另外潜在规则的设计方式还可以为密码所有位数和等于N,必须为偶数等等,每一种潜在规则都有对应的说明书,所以即使批量生产也不存在潜在规则被破 解的问题。此外,用户在忘记密码时可以根据说明书,联系潜在规则回忆密码。另外,密码锁支持1~10 位任意位10 进制数作为密码,远大于一般密码锁,灵活性极高,可组合出约11 亿种密码组合,从概率学上讲,随机破 解密码为不可能事件。

7 结束语

基于FPGA 适用于设计状态机的特点,通过Quartus II 仿真以及实物测试,证明本数字密码锁具有功能完善、工作稳定、安全系数高的特点,通过修改密码方案的创新,使其在实际应用中能进一步显示优良的安全性能,具有较好的发展前景。
回复

使用道具 举报

  • TA的每日心情
    开心
    2024-6-7 11:10
  • 签到天数: 9 天

    [LV.3]偶尔看看II

    0

    主题

    417

    回帖

    542

    积分

    二级逆天

    积分
    542

    社区居民忠实会员社区劳模终身成就奖

    QQ
    发表于 2015-12-28 08:17:51 | 显示全部楼层
    回复

    使用道具 举报

  • TA的每日心情
    开心
    昨天 08:14
  • 签到天数: 88 天

    [LV.6]常住居民II

    216

    主题

    6956

    回帖

    4万

    积分

    百元学习allegro

    积分
    47924

    终身成就奖特殊贡献奖社区居民忠实会员社区劳模最爱沙发社区明星优秀斑竹奖宣传大使奖

    QQ
    发表于 2016-1-5 06:27:34 | 显示全部楼层
    回复

    使用道具 举报

    您需要登录后才可以回帖 登录 | 立即注册

    本版积分规则

    公告:服务器刚移机,
    大家请不要下载东西。
    会下载失败


    Copyright ©2011-2024 NTpcb.com All Right Reserved.  Powered by Discuz! (NTpcb)

    本站信息均由会员发表,不代表NTpcb立场,如侵犯了您的权利请发帖投诉

    ( 闽ICP备2024076463号-1 ) 论坛技术支持QQ群171867948 ,论坛问题,充值问题请联系QQ1308068381

    平平安安
    TOP
    快速回复 返回顶部 返回列表