当前位置:首页 > EDA > 电子设计自动化
[导读]摘要:本文设计的基于FPGA的电子密码锁,具有记忆和修改6位密码、输入密码位数指示及防止多次试探密码等功能,与银行卡的原理和功能极其相似,使得密码锁的保密和安全性能进一步增强。最后,给出了在Quartus II软件


摘要:本文设计的基于FPGA的电子密码锁,具有记忆和修改6位密码、输入密码位数指示及防止多次试探密码等功能,与银行卡的原理和功能极其相似,使得密码锁的保密和安全性能进一步增强。最后,给出了在Quartus II软件开发平台上实现密码锁各项功能的仿真图,并在FPGA芯片EP1K30TC144-3上通过了验证。
关键词:现场可编程门阵列;超高速集成电路硬件描述语言;密码锁

0 引言
    电子密码锁能保护用户的重要资料不被非法用户所窃取,目前使用的电子密码锁大多以单片机为控制器,通过运行程序完成密码锁的各项功能。由于受到外部干扰的影响,单片机很容易将程序“跑飞”,因而可靠性较差。仿照银行卡输入密码的原理,本文介绍了一种基于FG-PA的多功能密码锁的设计和实现方案,由于采用纯硬件实现,使得可靠性和安全性大大提高。

1 电子密码锁的功能要求
    设计的密码锁至少具有下列功能:
    (1)6位密码,与银行卡密码位数相同;
    (2)每位密码采用十六进制数,与十进制数密码相比,密码被破译的概率大大降低;
    (3)每位密码按下时,有密码位数指示,类似自动取款机输入密码时有“*”号提示;
    (4)密码输入过程中密码有误时,能对已经输入的密码清除以便重新输入密码;
    (5)6位密码输入都正确后,应有开锁指示,上锁时也应有上锁指示;
    (6)密码连续三次输入错误,密码锁死锁,并开启报警,防止窃贼多次试探密码;
    (7)初始密码默认为“123456”,密码可以修改,在密码锁打开状态下,再一次输入正确的旧密码及两次输入的新密码一致时,密码才能修改成功。

2 密码锁的系统构成
    根据密码锁具有的功能,可将其实现的功能划分成分频模块、键盘和数码管扫描模块、按键抖动消除模块、按键编码模块、键值到7段数码管译码显示模块和主控制模块等6个子模块,如图1所示。


    (1)分频模块。它对系统的主时钟进行分频,以产生4×8小键盘的列扫描信号和6位数码管的列扫描信号所需要的时钟。分频是因为消除按键抖动的计数器时钟要比分频后扫描时钟高得多。
    (2)键盘和数码管扫描模块。它检测到分频输出信号的上升沿到来时,就对扫描的列加1,当扫描到最后一列即第7列,再从第0列开始扫描。当检测到有键按下的扫描控制信号时,则停止列扫描,直至按键释放后,再接着扫描下一列。数码管的6列扫描信号和小键盘的8列扫描信号可以共用,当扫描到小键盘的第6、7列时,并没有扫描6位数码管,由于扫描速度足够快,这并不影响数码管的动态显示。
    (3)按键抖动消除模块。机械键按下时,会产生抖动现象,若不消除,一次按键会被错误地认为同一键被多次按下,从而造成无法正确地输入密码。消除的方法可以采用硬件方法如RS触发器和软件延时方法,本文采用后者。
    (4)按键编码模块。它负责将按下键的行列位置码编码成0~31的键值码,键值0~15当作有效的16进制数输入密码位,大于等于16的键值可以定义成功能键,如定义清除密码键[Clear]键值为17,确认键[Enter]键值为23,修改密码键[Chgsecret]键值为24,其他没有定义的键可
以预留升级时的备用功能键。
    (5)译码显示模块。它负责将按下的数值键0~F译码成7段LED共阴极字型码。
    (6)主控模块。它依据消除抖动后产生的按键释放信号koff及按下的是数值键或功能键决定转移的下一状态,在不同的状态完成密码的比较、修改及多次试探密码报警提示等多项控制功能。
3 软件实现
    本文采用VHDL语言实现本密码锁系统的设计。对系统中划分出的每一个模块功能都可以采用一个进程来描述。分频、扫描和译码显示三个功能模块都比较简单,本文只重点介绍剩余的3个模块实现原理及进程中的部分关键代码。完整的代码可以向本文作者发邮件索取。
    根据主控制模块实现的功能,可以整理成如下图2所示的流程图,图中对修改密码的流程作了省略。


    实现图2流程的部分关键代码如下:

    完成消除抖动的进程是在按键释放后还要经过若干个时钟的延迟再判断按键是否释放,若真的释放,信号koff才从0变为1,该信号也是控制模块根据密码输入进行状态转移的触发信号。例如按下键产生的前沿抖动,这个抖动产生的假释放高电压一般不会持续太多个时钟(若系统的时钟频率高可以增加代码中计数器的位宽以增加延时),之后又变为稳定的低电平,则该进程再一次对计数器进行清零,重新判断。

    键值编码功能是将按下键的行列位置码赋予相应的键值,自然地将0~F键定义成键值为0~15,功能键的定义比较随意。实现的部分代码如下:
   

4 仿真结果
    本设计在QuartusⅡ9.0软件平台上进行了密码锁各项功能的波形仿真。
    图3是输入了错误的密码123450并按下enter键(键值23)后,密码锁没有打开的仿真图,图4是输入正确的密码123456和enter键后,密码锁能打开的仿真图。


    图5是先输入了一位密码9,又按了clead键(键值17),接着又输入了正确的密码123456和enter键后,锁能正确打开的仿真图。


    图6是第一次输入密码123450,第二次输入了521087,第三次输入了450313,3次错误的密码后,启动防止多次试探密码功能,密码锁进入报警状态,并维持在报警状态不退出,相当于密码锁处于死锁状态。
    图3~6中的codel~code6是临时存储输入密码的寄存器。另外,在开锁状态下,按下修改密码Chgsecrer键时,进行修改密码的仿真图,由于输入输出的数据量很多,全景视图时不是很清楚,只能局部放大浏览,这里不再给出。

5 结论
    本密码锁的各项功能也在FPGA芯片上EP1K30TC144-3下载通过了验证,实验表明,此密码锁运行稳定可靠,各项功能都能满足要求。在实际应用中可将数码管显示的密码一律都用“-”来显示,起到隐藏密码位的目的

本站声明: 本文章由作者或相关机构授权发布,目的在于传递更多信息,并不代表本站赞同其观点,本站亦不保证或承诺内容真实性等。需要转载请联系该专栏作者,如若文章内容侵犯您的权益,请及时联系本站删除。
换一批
延伸阅读

9月2日消息,不造车的华为或将催生出更大的独角兽公司,随着阿维塔和赛力斯的入局,华为引望愈发显得引人瞩目。

关键字: 阿维塔 塞力斯 华为

加利福尼亚州圣克拉拉县2024年8月30日 /美通社/ -- 数字化转型技术解决方案公司Trianz今天宣布,该公司与Amazon Web Services (AWS)签订了...

关键字: AWS AN BSP 数字化

伦敦2024年8月29日 /美通社/ -- 英国汽车技术公司SODA.Auto推出其旗舰产品SODA V,这是全球首款涵盖汽车工程师从创意到认证的所有需求的工具,可用于创建软件定义汽车。 SODA V工具的开发耗时1.5...

关键字: 汽车 人工智能 智能驱动 BSP

北京2024年8月28日 /美通社/ -- 越来越多用户希望企业业务能7×24不间断运行,同时企业却面临越来越多业务中断的风险,如企业系统复杂性的增加,频繁的功能更新和发布等。如何确保业务连续性,提升韧性,成...

关键字: 亚马逊 解密 控制平面 BSP

8月30日消息,据媒体报道,腾讯和网易近期正在缩减他们对日本游戏市场的投资。

关键字: 腾讯 编码器 CPU

8月28日消息,今天上午,2024中国国际大数据产业博览会开幕式在贵阳举行,华为董事、质量流程IT总裁陶景文发表了演讲。

关键字: 华为 12nm EDA 半导体

8月28日消息,在2024中国国际大数据产业博览会上,华为常务董事、华为云CEO张平安发表演讲称,数字世界的话语权最终是由生态的繁荣决定的。

关键字: 华为 12nm 手机 卫星通信

要点: 有效应对环境变化,经营业绩稳中有升 落实提质增效举措,毛利润率延续升势 战略布局成效显著,战新业务引领增长 以科技创新为引领,提升企业核心竞争力 坚持高质量发展策略,塑强核心竞争优势...

关键字: 通信 BSP 电信运营商 数字经济

北京2024年8月27日 /美通社/ -- 8月21日,由中央广播电视总台与中国电影电视技术学会联合牵头组建的NVI技术创新联盟在BIRTV2024超高清全产业链发展研讨会上宣布正式成立。 活动现场 NVI技术创新联...

关键字: VI 传输协议 音频 BSP

北京2024年8月27日 /美通社/ -- 在8月23日举办的2024年长三角生态绿色一体化发展示范区联合招商会上,软通动力信息技术(集团)股份有限公司(以下简称"软通动力")与长三角投资(上海)有限...

关键字: BSP 信息技术
关闭
关闭