首页 | 新闻 | 新品 | 文库 | 方案 | 视频 | 下载 | 商城 | 开发板 | 数据中心 | 座谈新版 | 培训 | 工具 | 博客 | 论坛 | 百科 | GEC | 活动 | 主题月 | 电子展
返回列表 回复 发帖

基于FPGA的电子按键密码锁设计

基于FPGA的电子按键密码锁设计

电子密码锁与传统密码锁相比,具有安全性高、成本低、易操作等诸多优点。正因如此,电子密码锁近年来发展迅速,诸如按键式密码锁、卡片式密码锁、以及更加复杂的指纹识别、虹膜识别等密码锁相继出现。目前应用最广泛、技术最成熟的电子密码锁还属按键式和卡片式密码锁,但卡片设备具有易磨损、寿命短、易受外界磁场干扰等缺点,并且一旦卡片丢失,将对密码锁的使用造成极大不便。

FPGA作为发展迅速的现代设计技术,已经被广泛应用于军事、空间、电子消费类产品等领域,是现代密码协议、算法实现的优选平台。FPGA内部算法可以并行执行,且不存在程序跑飞等风险。论文针对当前电子密码锁的发展现状,设计了一种基于FPGA的按键密码锁。为简化电路结构,节省逻辑资源,充分发挥FPGA的可靠性,本文采用了基本电路加模式控制的设计方法;同时提出了一种冗余编码结合掩码加密的硬件加密方法,使得开锁密码在对外部密码存储模块读写的过程中难以被泄漏,从而极大地提高了密码锁的安全性。

1电子密码锁设计原理

采用6位十六进制数作为开锁密码,外部密码输入正确,能成功指示,输入错误也能清除和重置;连续3次密码输入错误后,系统将死锁,此时密码锁不再响应按键输入信号,只能通过特定解锁信号解除死锁;具有修改密码功能,能够按照特定的流程对开锁密码进行修改。密码锁工作在正常解锁、修改密码和死锁三种状态下,状态转移如图1所示。

图1中,“正常解锁”状态下,按下特定功能按键使密码锁进入“修改密码”状态,密码修改完成后返回“正常解锁”状态;任一状态下连续三次输入密码错误,进入“死锁”状态,此时只有特定硬件解锁信号才能使密码锁返回“正常解锁”状态。



图1密码锁状态转移图


2基于FPGA的逻辑电路实现

根据密码锁功能需求,密码锁电路原理框图如图2所示。



图2密码锁电路原理框图


图2中,灰色方框内为FPGA内部模块,完成整个密码锁的逻辑功能。外接键盘是密码锁的输入设备,包括十六进制密码按键和密码锁功能按键。由于目前FPGA芯片大多基于SRAM架构,掉电后程序和数据都会清零,因此需要外接一片密码存储芯片对用户设置的密码进行存储。部分基于FLASH架构的FPGA芯片虽然具有掉电后保存程序的能力,但是内部FLASH的读写只能通过JTAG进行,仍旧需要外接密码存储芯片。显示、开锁和报警模块分别实现密码锁的按键位数显示、开锁信号和报警信号输出功能。

FPGA内部电路主要由输入控制、密码比较、输出控制、密码管理和模式控制等模块构成。其中输入控制模块完成对外接键盘信号的键值提取和按键消抖功能;密码比较模块用于对当前输入密码和密码存储模块中保存的正确密码进行比较;输出控制模块用于控制显示模块显示密码输入位数,并针对密码比较结果和当前电路模式,控制开锁和报警信号;密码管理模块负责处理对外部密码存储模块的读/写以及掩码加/解密等操作。当按键输入密码时,密码管理模块从密码存储模块中读取密码,送入密码比较模块与输入密码进行比较;当修改密码时,密码管理模块将按键输入新密码写入密码存储模块,更新密码锁的开锁密码。

上述输入控制、密码比较、输出控制、密码管理等模块足以保证上锁、解锁这一基本功能得以实现。然而本文设计要求中还包括修改密码和死锁报警功能,使得电路逻辑更加复杂。为此,本文采用一种基础电路加模式控制的方法来设计密码锁,就是将一个功能相对复杂的逻辑电路划分为几个相对独立的工作模式,针对不同模式分别设计电路模块;然后综合各个模式共用的电路模块作为基础电路,并引入模式控制模块对基础电路的工作模式进行有效的管理。具体到本设计当中,整个密码锁可以分为正常解锁、修改密码和死锁三种模式。其中正常解锁和修改密码的流程分别如图3(a)和图3(b)所示。



图3正常解锁和修改密码流程图


如图3所示,在正常解锁和修改密码模式下,都需要完成按键输入、原密码读取、密码比较、密码输入错误计数、显示输出等功能。因此基础电路可以由图2中的输入控制、密码比较、输出控制、密码管理等模块构成,而模式控制模块负责控制基础电路在不同模式间进行切换。例如,在正常解锁模式下,基础电路按照图3(a)中的流程工作;按下修改密码键,模式变为修改密码,基础电路工作流程如图3(b)所示。

基础电路中各个模块在不同模式下各司其职,分模式复用,不会产生冗余的功能模块;模式控制模块统领全局,控制整个基础电路的模式转换。因此,采用上述设计方法,可以简化电路结构,节省逻辑资源,使得逻辑流程更加清晰,便于电路结构和功能的拓展。
返回列表