基于FPGA的高可靠性电子密码锁设计及其EDA实现

版权申诉
5星 · 超过95%的资源 | DOC格式 | 942KB | 更新于2024-06-26 | 190 浏览量 | 1 下载量 举报
1 收藏
随着电子技术的飞速发展,传统的机械式密码锁因其密码量少、安全性不高的缺陷逐渐被更高级别的电子密码锁所取代。电子密码锁以其出色的保密性和防盗特性,如无钥匙开锁、记忆密码等功能,成为了现代安防系统中的重要组成部分。然而,基于单片机技术的传统电子密码锁设计存在程序稳定性问题,软件实现的编码和解码可能导致系统可靠性较低。 针对这一挑战,本文提出了一种创新的解决方案,即采用现场可编程门阵列(Field-Programmable Gate Array,FPGA)作为核心器件的电子密码锁设计。相比于单片机,FPGA的优势在于其硬件电路的直接实现,这显著提高了系统的可靠性和抗干扰能力。FPGA的现场可编程特性意味着,当设计需要调整或升级时,只需对FPGA内部的控制和接口电路进行修改,无需重新设计外部电路,极大地提高了设计的灵活性和效率。 本文详细探讨了如何利用电子设计自动化(Electronic Design Automation,EDA)技术,如Quartus II开发平台和硬件描述语言(Hardware Description Language,HDL),来设计和实现这种基于FPGA的电子密码锁。硬件描述语言允许设计师直接描述电路的行为,而不是关注具体的晶体管级实现,这样可以减少设计时间和复杂性,同时保证系统的高可靠性。 总结来说,本文的核心内容涉及了以下几个关键知识点: 1. 电子密码锁的优势与传统设计的局限:强调了电子密码锁在安全性和便利性上的优势,以及单片机技术在实际应用中的不足,如程序易出错导致的系统不稳定。 2. FPGA在密码锁设计中的应用:阐述了FPGA如何通过硬件电路实现算法,增强系统可靠性,并介绍其现场可编程特性带来的设计灵活性和升级便捷性。 3. EDA技术和硬件描述语言的使用:介绍了如何利用Quartus II平台和HDL进行FPGA的设计,展示了设计流程和技术工具。 4. 基于FPGA电子密码锁的实践设计:包括具体的设计方法和实现步骤,以及可能面临的挑战和解决方案。 通过阅读这篇论文,读者可以深入理解FPGA在电子密码锁设计中的重要作用,并掌握如何利用现代EDA工具进行高效、可靠的系统开发。这对于电子工程领域,尤其是密码锁和嵌入式系统设计的专业人士来说,具有很高的参考价值。

相关推荐

filetype
随着社会物质财富的日益增长,安全防盗已成为人们所关注的焦点。然而传统机械弹子 锁安全性低,密码量少且需时刻携带钥匙使其无法满足一些特定场合的应用要求,特别 是在人员经常变动的公共场所,目前使用的电子密码锁主要有两个方案:一是基于单片 机用分立元件实现的,二是通过现代人体生物特征识别技术实现的,前者电路较复杂且 灵活性差,无法满足应用要求;后者有其先进性但需考虑成本和安全性等诸多因素。基 于此,本文设计了一种新型电子密码锁,采用FPGA芯片,目前以硬件描述语言(Verilo g 或 VHDL)所完成的电路设计,可以经过简单的综合与布局,快速的烧录至 FPGA 上进行测试,是现代 IC 设计验证的技术主流。这些可编辑元件可以被用来实现一些基本的逻辑门电路(比如AN D、OR、XOR、NOT)或者更复杂一些的组合功能比如解码器或数学方程式。在大多数的F PGA里面,这些可编辑的元件里也包含记忆元件例如触发器(Flip-flop)或者其他更加 完整的记忆块。 FPGA一般来说比ASIC(专用集成芯片)的速度要慢,无法完成复杂的设计,而且消耗 更多的电能。但是他们也有很多的优点比如可以快速成品,可以被修改来改正程序中的 错误和更便宜的造价。厂商也可能会提供便宜的但是编辑能力差的FPGA。因为这些芯片 有比较差的可编辑能力,所以这些设计的开发是在普通的FPGA上完成的,然后将设计转 移到一个类似于ASIC的芯片上。另外一种方法是用CPLD(复杂可编程逻辑器件备)。 1 系统功能描述   本设计主要实现以下六个功能:   (1)初始密码设置:系统上电后输入4位数字并按"*"后密码设置成功系统进入 上锁状态。为了实际需要,系统另设置了一个4位数的优先级密码,当用户忘记密码或被 他人更改密码后,可以用优先级密码清除所设密码。   (2)密码更改:为了密码安全与避免误操作,只能在开锁状态下先输入旧密码 后才能更改系统密码,然后输入4位新密码后按"*"。   (3)解锁:输入密码或优先级密码后按"#",系统即解锁。   (4)密码保护:密码输入错误时,系统自动记录一次错误输入,当错误输入次 数等于3次时,系统报警并使键盘失效5分钟,以免密码被盗。   (5)清除输入错误:当输入数位小于4位时可以按"*"清除前面所有的输入值, 清除为"0000"。   (6)系统复位:按"*"和"#"后系统即复位到初始状态。考虑到实际情况,系统 只在密码更改状态和系统初始状态下才能复位。 2 系统设计思路   VHDL主要用于描述数字系统的结构,行为,功能和接口。除了含有许多具有硬件 特征的语句外,VHDL的语言形式、描述风格以与语法是十分类似于一般的计算机高级语 言。VHDL的程序结构特点是将一项工程设计,或称设计实体(可以是一个元件,一个电 路模块或一个系统)分成外部(或称可视部分,与端口)和部(或称不可视部分),既 涉与实体的部功能和算法完成部分。在对一个设计实体定义了外部界面后,一旦其部开 发完成后,其他的设计就可以直接调用这个实体。   本文采用自顶向下的模块化设计方法,先对系统级进行功能描述,再进行功能模 块的划分,最后分别对各个子模块进行VHDL建模。所设计的电子密码锁系统结构如图1所 示。 键盘消抖 键盘编码 输入处理 显示 系统控制 键盘矩阵 时钟与扫描 图1 系统结构图  2.1 时钟产生模块   此模块主要功能是产生时钟信号和键盘扫描信号。主要产生三个时钟信号(16 Hz、64 Hz、100 kHz),分别为系统各个功能模块提供时钟驱动信号。其中键盘扫描模块包括在时钟产生 模块中,用来产生扫描信号。由于要产生多个时钟信号。 密码输入一般采用机械式和触摸式两种键盘。由于机械式键盘具有成本低、结构简单 、可靠性高、应用广泛等优点,其按键分布与键值编码如图2所示。其中'*'、'#'为多功 能组合键。键盘扫描电路用来产生扫描信号KH,其按照1110-1101-1011- 0111的规律循环变化,并通过KC来检测是否有键按下。其他键也是类似原理。特别值得 注意的是键盘扫描电路扫描时钟的确立,如果扫描时钟不合适,将产生键按下时反应太 慢,或KC产生错误的输出。  2.2 按键消抖模块   本设计采用机械键盘,其缺点是易产生抖动,因此键盘输出KC[20]必须经过消抖 电路后才能加入到键盘编码模块,以避免多次识别。此模块采用状态机设计,其状态转 换图如图3所示。只有当连续检测到3次低电平输入,模块才输出一次低电平。消抖电路 的时钟选择很关键,选择不当则不能正常工作。因为键盘扫描电路的时钟是16 Hz且扫描信号为4组循环输出,所以消抖电路要能够在4个键盘扫描时钟检测出是否有键 按下就必须设置其时钟信号至少为键盘扫描时钟的4倍。 2.3 键盘编码模块   上述的键
221 浏览量