基于FPGA的数字密码锁_第1页
基于FPGA的数字密码锁_第2页
基于FPGA的数字密码锁_第3页
基于FPGA的数字密码锁_第4页
基于FPGA的数字密码锁_第5页
已阅读5页,还剩25页未读 继续免费阅读

下载本文档

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

CPLD FPGA 课程设计 项目名称 基于 FPGA 的数字密码锁设计 专业班级 学生学号 学生姓名 指导老师 2016 年 6 月 4 日 摘 要 本设计是基于现场可编程门阵列 FPGA 器件的电子密码锁的设计 通过 Verilog 语言控制 4 位二进制数 组成数字排列 形成一个简单的数字密码锁 假设预设密码 为 4 位数 0000 当输入正确时输出为 1 输入错误时输出为 0 同时输出输入的次数 当 3 次以上输入错误时 输出一个报警信号 即使第四 五次输入正确也输出报警信 号 本设计利用 Modelsim 软件编写 Verilog HDL 硬件描述语言程序以实现输入密码 开锁 报警功能 通过仿真调试 利用可编程器件 FPGA 的电子密码锁的设计基本达 到了预期目的 关键词 关键词 现场可编程门阵列 数字密码锁 Verilog HDL Abstract This design is the electronic code lock field programmable gate array FPGA devices based design By Verilog language control 4 bit binary number composed of figures arranged to form a simple digital lock assuming that the default password is 4 digits 0000 correct output when the input is 1 the output of the input error to zero At the same time the number of input and output and when more than three times the input error an alarm signal is output even if the fourth and fifth also enter the correct output alarm signal This design uses Modelsim software write Verilog HDL hardware description language program to implement a password lock alarm function The simulation debugging using the programmable device FPGA design basic electronic locks to achieve the desired purpose Key words FPGA The digital combination lock Verilog HDL 目 录 摘 要 I Abstract II 第 1 章 所选项目的研究意义 1 1 1 概述 1 1 2 数字密码锁的研究现状 2 1 2 1 数字密码锁的应用 3 1 2 2 数字密码锁的困难 3 1 3 本文研究意义 3 1 4 设计思路 4 第 2 章 设计方案 5 2 1 功能定义 5 2 2 模块设计 5 第 3 章 系统软件设计 7 3 1 设计概括 7 3 2 设计流程 7 3 2 1 密码存储模块 7 3 2 2 编码模块 8 3 2 3 比较模块 8 3 3 主要程序模块 9 第 4 章 软件仿真 14 4 1 仿真过程 14 4 2 仿真结果 15 4 3 仿真分析 16 4 3 1 仿真过程 17 结 论 18 参考文献 19 附录 1 程序代码 20 项目创新及特色 26 基于基于 FPGAFPGA 的数字密码锁 的数字密码锁 CPLD FPGACPLD FPGA 课程设计 课程设计 第 1 章 所选项目的研究意义 1 1 概述 数字密码锁是一个小型的数字系统 与普通机械锁相比 具有许多独特的优点 保 密性好 防盗性强 可以不用钥匙 记住密码即可开锁等 在人们平时生活中 贵重物 品或个人信息资料大多数都已加锁的方式进行保管 如果使用传统的机械锁进行对物 品及资料的保管 那么人们要携带很多把钥匙在身上 携带非常不便 而且钥匙丢失 将对物品保管的安全性大打折扣 也为人们的生活及心情带来不便 随着生活质量的不断提高 加强家庭防盗安全变得非常重要 但传统机械锁的构 造过于简单 很容易被打开 从而降低了安全性 数字密码锁因为它的保密性很高 安全系数也非常高 再加上其不需要携带避免了丢失的可能 省去了因钥匙丢失而需 要换锁的麻烦 受到了越来越多的人的欢迎 随着人们对高科技产品也越来越推崇 在当今社会科技的高度集中和创新 人们对日常生活中保护自身及财产安全的物品非 常追捧 对其安全性的要求也非常的高 为了达到人们对锁具安全性的高要求 加强 锁具的安全保密性 用密码锁来取代传统机械锁的锁具是必然趋势 数字密码锁比传 统机械锁具更加的安全 1 锁具发展到现在已有若干年的历史了 锁是用于保管物品的器件 用来关住某种 器物的一种器具 其必须用钥匙才能打开 所以在人们的日常生活中离不开锁 这使 得我们队锁具的结构和原理也多少有些了解 因此 就有了不借用钥匙就打开锁的方 法 锁具都存在致命的弱点 比如锁芯采用常见的铜 锌 铝等材料容易遭到暴力破 坏 还有就是锁具制作工艺的技术落后 从而导致防盗功能缺失 目前 国内市场的锁具 实际上都不具备真正的防盗功能 在惯偷面前用几件简单工具就可以轻松打开这些锁 其 实不是他们多么的高明 而是一般锁具的原理过于简单 面对这一社会现状 新时代提 出了锁具必须改革的迫切需求 2 安全防盗已成为人们所关注的焦点 然而传统机械弹子锁安全性低 密码量少且 需时刻携带钥匙使其无法满足一些特定场合的应用要求 特别是在人员经常变动的公 共场所 目前使用的电子密码锁主要有两个方案 一是基于单片机用分立元件实现的 二是通过现代人体生物特征识别技术实现的 前者电路较复杂且灵活性差 无法满足 应用要求 后者有其先进性但需考虑成本和安全性等诸多因素 基于此 本文设计了 一种新型电子密码锁 采用 FPGA 芯片 目前以硬件描述语言 Verilog 或 VHDL 所 完成的电路设计 可以经过简单的综合与布局 快速的烧录至 FPGA 上进行测试 是 现代 IC 设计验证的技术主流 3 这些可编辑元件可以被用来实现一些基本的逻辑门 电路 比如 AND OR XOR NOT 或者更复杂一些的组合功能比如解码器或数学方程 基于基于 FPGAFPGA 的数字密码锁 的数字密码锁 CPLD FPGACPLD FPGA 课程设计 课程设计 式 在大多数的 FPGA 里面 这些可编辑的元件里也包含记忆元件例如触发器 Flip flop 或者其他更加完整的记忆块 FPGA 一般来说比 ASIC 专用集成芯片 的速度要慢 无法完成复杂的设计 而且 消耗更多的电能 但是他们也有很多的优点比如可以快速成品 可以被修改来改正程 序中的错误和更便宜的造价 厂商也可能会提供便宜的但是编辑能力差的 FPGA 因为 这些芯片有比较差的可编辑能力 所以这些设计的开发是在普通的 FPGA 上完成的 然 后将设计转移到一个类似于 ASIC 的芯片上 另外一种方法是用 CPLD 复杂可编程逻 辑器件备 4 因此 随着电子技术的飞速发展数字密码锁的产生是必然 其在使用的方便性 防盗报警功能 智能管理等方面都是传统机械锁无法比拟的 在对安全性有较高要求 的设施及场所中得到了广泛应用 1 2 数字密码锁的研究现状 现如今 随着高新技术的涌入 对传统锁具进行了很大的的改进 锁具的防盗性 能得到了充分的加强 由传统锁具改进的智能密码锁已成为现如今安防系统中最强大 的组成部分 它的作用是每一个传统机械锁具无法取代的 由于其在市场中巨大的潜 力 国内外许多的公司都投入很大的人力 物力来从事智能数字密码锁的研究开发生 产 目前 市场上比较先进的智能电子密码锁分别有 IC 卡电子密码锁 射频卡式电 子密码锁 红外遥控电子密码锁 指纹识别电子密码锁和瞳孔识别电子密码锁等 IC 卡电子密码锁成本低 体积小 卡片本身无须电源等优点占领了一定的市场份额 但 是由于有机械接触 会产生接触磨损 而且使用不太方便 在一定程度上限制了它的 应用 射频卡式电子密码锁是非接触式电子密码锁 成本也不太高 体积跟 IC 卡密码 锁相当 卡片使用感应电源 重量很轻 技术成熟 受到了广泛的欢迎 但是与 IC 卡 电子密码锁相比 成本偏高 指纹识别电子密码锁和瞳孔识别电子密码锁可靠性很高 安全性是目前应用系统中最高的 但是成本高昂 还没进入大众化使用阶段 5 在国外 美国 日本 德国的电子密码锁保密性较好 并结合感应卡技术 生物 识别技术 使电子密码锁系统得到了飞跃式的发展 这几个国家的密码锁识别的密码 更复杂 并且综合性比较好 已经进入了成熟期 出现了感应卡式密码锁 指纹式密 码锁 虹膜密码锁 面部识别密码锁 序列混乱的键盘密码锁等各种技术的系统 它 们在安全性 方便性 易管理性等方面都各有特长 新型的电子密码锁系统的应用也 越来越广 基于基于 FPGAFPGA 的数字密码锁 的数字密码锁 CPLD FPGACPLD FPGA 课程设计 课程设计 1 2 1 数字密码锁的应用 密码锁具有安全性高 成本低 功耗低 易操作等优点 在安全技术防范领域 具有防盗报警功能的电子密码锁逐渐代替传统的机械式密码锁 克服了机械式密码锁 密码量少 安全性能差的缺点 使密码锁无论在技术上还是在性能上都大大提高一步 6 随着大规模集成电路技术的发展 出现了带微处理器的智能密码锁 它除具有电 子密码锁的功能外 还引入了智能化管理 专家分析系统等功能 从而使密码锁具有 很高的安全性 可靠性 应用日益广泛 7 随着人们对安全的重视和科技的发展 许多 电子智能锁 指纹识别 IC 卡辨认 已在国内外相继面世 但是这些产品的特点是针 对特定的指纹和有效卡 只能适用于保密要求的箱 柜 门等 而且指纹识识别器若 在公共场所使用存在容易机械损坏 IC 卡还存在容易丢失 损坏等特点 加上其成本 较高 一定程度上限制了这类产品的普及和推广 鉴于目前的技术水平与市场的接收 程度 电子密码锁是这类电子防盗产品的主流 8 1 2 2 数字密码锁的困难 1 Verilog HDL 语言的程序设计和控制函数的调用 编写 Verilog HDL 语言时 输入 4 位密码未能和程序预设密码进行比较 无论密 码输入正确与否 锁均不打开 而且报警计数器也不进行 1 操作 在程序编译时 函 数调未能调用成功 2 报警程序模块的设计 计数器 1 操作进行时 系统中断 从而导致系统重置 计数器又从 0 开始进行 1 操作 导致系统不报警 3 用 Modelsim 仿真软件波形时 为准确输出正确波形 在程序编写时 未考虑初始密码 导致波形错误 1 3 本文研究意义 电子杂志 报刊经常刊登有密码开关 密码锁这样的电路 大多数是使用常用的 数字电路 如 CD4017 然后通过不同的连接方式实现密码控制功能 这种电路的特 点就是密码修改只能通过改变电路的连接来实现 密码很容易被破解 电路复杂 故 障率高 本制作是针对这些电路而设计的 将以往的以单片机实现设计改为可编程器 基于基于 FPGAFPGA 的数字密码锁 的数字密码锁 CPLD FPGACPLD FPGA 课程设计 课程设计 件 FPGA 利用 Verilog HDL 编程实现电子密码锁的设计 这种设计移动方便 基于 FPGA 的电子密码锁具有保密强 灵活性高 适用范围广等特点 它在键盘上输入 与打电话差不多 因而易于掌握 其突出优点是 密码 是记在被授权人脑子里的数 字和字符 既准确又可靠 不会丢失 除了忘记 难以被窃 除非自己泄露 但 是密码不能太简单 太简单了就容易被他人在键盘上试探出来 或者可能被旁观者窥 测出来 造成保密性不足 当然 密码又不能太复杂 太复杂了可能自己都糊涂了 或者输入密码操作成功率低 造成使用不便 因此 为了发扬优点 克服弱点 本设 计采用 任意设定数字密码 技术使得被授权人可以根据自己的需要或喜好设定密码 常用常新 在输入密码的过程中 当连续三次出现密码错误时 则系统会长时间报警 不止 这时必须按复位方可停止 本设计的 FPGA 电子密码锁的特点是 体积小 功耗低 价格便宜 安全可靠 维 护和升级都十分方便 具有较好的应用前景 它与传统锁具的不同之处在于 它与可编 程逻辑器件实现系统的设计 应用简洁清晰的 Verilog HDL 语言实现设计编程思想 能够实现适时 智能控制管理功能 特别是在系统的扩展上有很好的优势 9 1 4 设计思路 基于 FPGA 实现的数字密码锁设计中 主要包括 4 大部分 FPGA 器件 密码存储 译码电路 报警电路 其中 FPGA 为主控部分 将消除同步模块 计数器模块 控制器 模块都用 Verilog HDL 语言写入 FPGA 中代替了传统复杂的电路设计 也省去了很多繁 琐的调试步骤 只有这些模块在 Modelsim 平台通过了仿真 就可以实现传统电路模块 的功能 本次设计的数字密码锁主要是利用软件的编程来对主控模块的实现 当通过 按键输入密码后 就把输入的信号送给 FPGA FPGA 经过里面个模块的处理后传给了各 输出电路模块 密码存储器主要是用来存储密码和防止电源掉电而导致密码锁的数据 丢失和提高密码锁的安全性 对于本次密码锁的初步设计 首先要有一个大体的思路 本次设计采用 FPGA 为核 心器件 通过 Modelsim 对其进行程序仿真 组成的完整系统 程序通过采集输入信息 与 FPGA 的存储值进行比较 如果密码正确 则开锁电路打开 如果密码错误 锁不打 开 并且计数器进行 1 操作 累计 3 次输入密码错误 给警报一个高电平 让其报警 基于基于 FPGAFPGA 的数字密码锁 的数字密码锁 CPLD FPGACPLD FPGA 课程设计 课程设计 第 2 章 设计方案 2 1 功能定义 数字密码锁具体功能如下 1 用户初次使用 可按下am en键进行密码设置 2 开锁时一次完整的输入密码 当输入的密码与设置的密码相同时密码锁打开 即lockopen为高电平 连接的绿灯亮 否则密码锁关闭 即warn en为高电平 连接的 红灯亮 3 当输入错误的次数 3时 密码锁强制自动关闭 表 2 1 数字密码锁的 FPGA 引脚定义 Inputrst复位信号高电平有效 Inputam en密码设置键高电平有效 Inputcipher in 3 0 密码输入 InputEnter确定键高电平有效 OutputReturn清除键高电平有效 Outputwarn en密码错误或输入次 3高电平有效 2 2 模块设计 2 2 1 密码设置或修改模块 基于基于 FPGAFPGA 的数字密码锁 的数字密码锁 CPLD FPGACPLD FPGA 课程设计 课程设计 用户初次使用密码锁时可通过按am en键进行密码设置 先输入初始密码 0000 则进入密码设置 高电平有效 密码是二进制的四位数字密码 以后修改密码时 按am en键 然后输入旧密码 正确时方可进入密码设置选 项 否则重新开始 1 密码输入模块 开锁时 一次完整输入密码后 按下 enter 键进行密码验证 高电平有效 看输入 的数字是否等于原密码的值 密码正确时开锁 否则关闭 当输入有误时 按下 return 键 清除输入的数字 重新输入 2 密码输入次数计数模块 开始时 count 0 当输入密码按下 enter 键时且密码错误时 count 1 当 conut 3 时 密码锁强制自动关闭 当输入的密码正确时 count 不计数 3 显示模块 当密码输入正确时 lockopen 为高电平 绿色发光二极管灯亮 当密码输入错误 时或者当 count 3 时 warn en 为高电平 红色发光二极管灯亮 基于基于 FPGAFPGA 的数字密码锁 的数字密码锁 CPLD FPGACPLD FPGA 课程设计 课程设计 第 3 章 系统软件设计 3 1 设计概括 本系统主要集中在以 FPGA 以核心外围扩展设计 整个电路主要电子锁具的组成 框图是以可编程逻辑器件 FPGA 为核心 配以相应硬件电路 完成密码的设置 存 贮 识别和驱动电磁执行器并检测其驱动电流值 报警等功能 FPGA 接收键入的代 码 并与存贮在闪存中的密码进行比较 如果密码正确 则驱动电磁执行器开锁 如 果密码不正确 则允许操作人员重新输入密码 最多可输入三次 如果三次都不正确 则通过 FPGA 产生报警 3 2 设计流程 实现系统大量逻辑电路的集成 在设计中使用了现场可编程逻辑门阵列器件 FPGA FPGA 主要实现以下逻辑功能 键盘处理 设置密码 解码开门以及报警 等控制功能 10 3 2 1 密码存储模块 在数字密码锁中 密码存储模块是它的密码规定电路 其功能有两个 一个是将 存储的密码输出到比较模块中与外部输入的数字进行比较操作 另一个是存储用户修 改后的密码 密码存储模块的地址选择信号由计数器模块电路来进行选择 模为三的计数器模 块电路控制信号 RESET 和时钟信号 CNP 是由控制器模块来提供的 下面给出密码存储 模块的流程图 如图 3 1 所示 基于基于 FPGAFPGA 的数字密码锁 的数字密码锁 CPLD FPGACPLD FPGA 课程设计 课程设计 输入密码 密码正确 Y N 存储密码 输入新密码 am en 键键 图 3 1 密码存储流程图 更改初始密码 am en 首先输入 4 位 2 进制的初始密码 程序判定和初始密码一 致 执行更改密码的程序 否则继续输入密码 直至输入正确 输入 4 位 2 进制数后 寄存器存储新密码 3 2 2 编码模块 在保险柜密码器中 由于密码数字是由外接键盘输入的信号 因此这里需要把它 转换成 4 位 BCD 码送入到比较器中 这时需要采用 10 线至 4 线编码器来完成这样的转 换 因为前级消抖同步模块的输出是高电平 因此 A0 A9 这 10 个数字的输入信号经 过消抖同步后应该是高电平有效 对于编码器的输出来说 B4 是 MSB B1 是 LSB 在 密码器中 编码模块的顶层原理图如图 3 16 所示 3 2 3 比较模块 在数字密码锁中 比较模块的主要功能是对编成模块的输出 4 位数据和密码存储 模块的输出 4 位数据进行比较 然后将比较的结果送入到控制器模块的 DEF 端口上 比较器的具体工作原理是 当比较结果相等时 DEP 的输出为 1 当比较结果不相等时 DEP 的输出为 0 基于基于 FPGAFPGA 的数字密码锁 的数字密码锁 CPLD FPGACPLD FPGA 课程设计 课程设计 比较密码正确后 即可开锁 流程图如图 3 2 所示 输入密码 密码正确 N 1 N 3 红灯亮 开锁 Y Y N N 绿 灯亮 图 3 2 解锁流程图 首先输入 4 位 2 进制密码 输入密码正确 绿灯亮并开锁 输入密码不正确 计 数器 N 自加 1 判定 N 是否大于 3 如果大于 3 红灯亮 系统报警 否则继续输入密 码 直至 N 大于 3 在这 3 次中 输入密码正确 计数器 N 重置 绿灯亮并开锁 3 3 主要程序 输入密码为 1000 再输入 0000 initial begin 10 rst 1 10 rst 0 10 am en 0 10 时间单位后 am en 赋值 0 在主程序里 有判定 am 的值来执行 if 循环 10 cipher in 4 b1000 置 cipher 为 1000 此时输入错误 10 cipher in 4 b0000 置 cipher 为 0000 此时输入正确 基于基于 FPGAFPGA 的数字密码锁 的数字密码锁 CPLD FPGACPLD FPGA 课程设计 课程设计 重新置位 判断密码是否 初始密码 10 rst 1 10 rst 0 10 am en 1 10 时间单位后 am en 赋值 1 在主程序里 有判定 am 的值来执行 if 循环 10 cipher in 4 b0000 输入 0000 错误 10 cipher in 4 b1000 输入 1000 错误 10 am en 0 10 时间单位后 am en 赋值 0 在主程序里 有判定 am 的值来执行 if 循环 10 cipher in 4 b0000 输入 0000 错误 10 cipher in 4 b0001 输入 0001 错误 10 cipher in 4 b1000 输入 1000 正确 寄存器定义 parameter s0 2 b00 定义参数的值 通过计时寄存器 s1 2 b01 s0 s3 代表输入密码错误的次数 s2 2 b10 s3 2 b11 置位 always cipher in or posedge rst if rst begin 置位设置 if rst 为 1 state 0 将 state 重置为 0 warn en 0 将 warn en 重置为 0 count 0 将 count 重置为 0 基于基于 FPGAFPGA 的数字密码锁 的数字密码锁 CPLD FPGACPLD FPGA 课程设计 课程设计 amend cipher 0 将 amend cipher 重置为 0 i 0 将 i 重置为 0 end 键入密码 else if am en begin if rst 为 0 不置位 判断初始密码 am en 是否为 0 case state out s0 if cipher in amend cipher begin 判断键入密码是否等于初始密码 执行下列程序 count 1 相同 count 1 密码正确 warn en 0 输入密码正确 警报不累计 end else state s1 state 1 输入错误 s1 if cipher in amend cipher begin 判断第二次键入密码是否等于初始密码 执行下列程序 count i 相同 count i 密码正确 warn en 0 输入密码正确 警报不累计 end else state s2 第二位输入密码错误 基于基于 FPGAFPGA 的数字密码锁 的数字密码锁 CPLD FPGACPLD FPGA 课程设计 课程设计 s2 if cipher in amend cipher begin 判断第三次输入密码是否等于初始密码 执行下列程序 count i 相同 count i 密码正确 warn en 0 输入密码正确 警报不累计 end else state s3 第三位密码错误 s3 begin warn en 1 警报此时为 1 state s3 密码输错 3 次 end 结束 if 循环嵌套 default state s0 否则次数为 0 即 0 次 endcase end 结束键入密码循环 输入密码错误判定 always cipher in or am en or rst if rst if rst 为 1 重置 j 0 判定 j 0 值返回到 j j 1 else if rst 为 0 if am en 如果初始密码为 0 case j j 1 基于基于 FPGAFPGA 的数字密码锁 的数字密码锁 CPLD FPGACPLD FPGA 课程设计 课程设计 2 b00 begin 第一位键入的密码 if cipher in amend cipher 判断输入密码和初始密码是否相等 j j 1 相等 则 j 1 else j j 否则 j 值不变 end 2 b01 begin j 01 时 执行下列程序 amend cipher cipher in 把输入密码赋值给初始密码 j j 1 j 自加 1 end default j 0 否则次数为 0 即 0 次 end 基于基于 FPGAFPGA 的数字密码锁 的数字密码锁 CPLD FPGACPLD FPGA 课程设计 课程设计 第第 4 4 章章 软件仿真软件仿真 4 1 仿真过程 本设计在 Modelsim 下仿真 通过 Verilog HDL 语言控制 打开 Modelsim 界面 如图 4 1 所示 图 4 1 ModelSim 页面 在 Modelsim 下新建工程 Lock 出现下图进行编写工程文件名 如图 4 2 图 4 2 新建工程 基于基于 FPGAFPGA 的数字密码锁 的数字密码锁 CPLD FPGACPLD FPGA 课程设计 课程设计 在文件名建立完成后就可以进行程序编写了 双击 LockI 和 LockII 进行主程序 及激励程序的编写 如图 4 3 所示 图 4 3 程序编写 编写后保存并编译 编译成功后 status 为对勾状态 若程序有错误 则不能编译 如图 4 4 所示 图 4 4 程序编译 程序编译成功后进行仿真如下图 4 4 图 4 4 成功编译 4 2 仿真结果 数字密码锁仿真 如图 4 5 基于基于 FPGAFPGA 的数字密码锁 的数字密码锁 CPLD FPGACPLD FPGA 课程设计 课程设计 图 4 5 数字密码锁仿真设计 4 3 仿真分析 如图 4 6 黄线后边仿真的验证 当更改密码时 需先使 am en 为高电平时 方 可更改密码 输入旧密码 然后输入新密码 再次验证新密码 验证正确 图 4 6 仿真分析 基于基于 FPGAFPGA 的数字密码锁 的数字密码锁 CPLD FPGACPLD FPGA 课程设计 课程设计 4 3 1 仿真过程 输入密码时 当第一次输入错误 第二次输入密码正确时 计数器 count 计数为 2 验证正确 当更改密码时 需先使 am en 为高电平时 方可更改密码 输入旧密码 然后输 入新密码 再次验证新密码 验证正确 如图 4 7 所示 图 4 7 仿真过程分析 基于基于 FPGAFPGA 的数字密码锁 的数字密码锁 CPLD FPGACPLD FPGA 课程设计 课程设计 结论 本设计主要是用硬件描述语言 Verilog HDL 为主要的编译语言 以 ModelSim 开 发系统为设计工具 设计了一种具有密码输入密码输入正确开锁和输入错误达到三次 后报警等功能的数字电子密码锁 同时介绍了阐述数字密码锁的工作原理 个工作模 块的组成及功能介绍和数字密码锁的软件实现方法 在 ModelSim 环境下进行的模拟 仿真 反馈结果都能够看出验证程序设计的可行性和可靠性 对该数字密码锁进行的 时序仿真所得出的结果都表明 该电路能够实现本设计所要求的功能 设计的数字密码锁控制器设置的是 4 位密码 在系统复位后 用户需按键 4 次 输入完整的一个密码串 在输入完后 系统将会进行比较 如果发现密码正确 则开 锁 如果连续输入密码错误达到三次系统就会报警 这样的设计可以很好的满足人们 的日常需求 可以对保管的器物可以安心 同时 本设计中的数字密码锁还具备密码 修改功能 操作简单 使得密码锁的使用更加安全 便捷 基于基于 FPGAFPGA 的数字密码锁 的数字密码锁 CPLD FPGACPLD FPGA 课程设计 课程设计 参考文献 刘昌华 EDA 技术与应用 基于 Quartus 和 VHDL M 北京 北京航空航天大学出版社 2012 任葛荣 可编程智能电子锁控制器的设计与实现 D 广东 华南理工大学 2011 赵鑫 VHDL 与数字电路设计 M 北京 机械工业出版社 2005 275 276 王金明 数字系统设计与 Verilog HDL M 北京 电子工业出版社 2009 1 贾熹滨 数字逻辑基础与 Verilog 硬件描述语言 M 北京 清华大学出版社 2012 于斌 谢文龙 ModelSim 电子系统分析及仿真 M 北京 电子工业出版社 2014 2 于斌 米秀杰 ModelSim 电子系统分析及仿真 M 北京 电子工业出版社 2014 12 于斌 ModelSim 电子系统分析及仿真 M 北京 电子工业出版社 2014 2 成超原 4 位数字密码锁设计 密码设置及验证电路 D 武汉 华中科技大学文华学院 2012 10 刘潇婷 基于 FPGA 的红外遥控电子密码锁的实现 D 大连 大连海事大学 2010 基于基于 FPGAFPGA 的数字密码锁 的数字密码锁 CPLD FPGACPLD FPGA 课程设计 课程设计 附录 1 程序代码 module latch cipher in count warn en rst am en input rst am en 定义输入变量 am en 密码设置键 input 3 0 cipher in 定义输入变量 4 位密码 output warn en 定义输出变量 警告 output 1 0 count 定义计数 reg warn en 定义警告为 reg 型变量 reg 1 0 state state out reg 型 2 位变量 reg 1 0 count reg 型 2 位变量 reg 3 0 amend cipher reg 型 4 位变量 parameter s0 2 b00 定义参数的值 通过计时寄存器 s1 2 b01 s0 s3 代表输入密码错误的次数 s2 2 b10 s3 2 b11 integer i 定义有符号位变量 always cipher in or posedge rst 置位模块 if rst begin rst 为 1 进行复位 state 0 将 state 重置为 0 warn en 0 将 warn en 重置为 0 count 0 将 count 重置为 0 基于基于 FPGAFPGA 的数字密码锁 的数字密码锁 CPLD FPGACPLD FPGA 课程设计 课程设计 amend cipher 0 将 amend cipher 重置为 0 i 0 将 i 重置为 0 end else if am en begin if rst 为 0 再判断初始密码 am en case state out s0 if cipher in amend cipher begin 判断键入密码是否等于初始密码 执行下列程序 count 1 相同 count 1 密码正确 warn en 0 输入密码正确 警报不累计 end else state s1 state 1 输入错误 s1 if cipher in amend cipher begin 判断第二次键入密码是否等于初始密码 执行下列程序 count i 相同 count i 密码正确 warn en 0 输入密码正确 警报不累计 end else state s2 第二位输入密码错误 s2 if cipher in amend cipher begin 判断第三次输入密码是否等于初始密码 执行下列程序 基于基于 FPGAFPGA 的数字密码锁 的数字密码锁 CPLD FPGACPLD FPGA 课程设计 课程设计 count i 相同 count i 密码正确 warn en 0 输入密码正确 警报不累计 end else state s3 第三位密码错误 s3 begin warn en 1 警报此时为 1 state s3 密码输错 3 次 end 结束 if 循环嵌套 default state s0 否则次数为 0 即 0 次 endcase end 结束 if 循环嵌套 end 结束 if 循环嵌套 always state or posedge rst if rst begin if rst 为 1 重置 i 1 i 置位 1 state out 0 state out 置位 0 end 结束 if 循环嵌套 else begin i i 1 i 和 i 自加 1 比较 值返回 i 基于基于 FPGAFPGA 的数字密码锁 的数字密码锁 CPLD FPGACPLD FPGA 课程设计 课程设计 state out state state out 和 state 比较 值返回 state out end 结束 if 循环嵌套 integer j 定义整型 j always cipher in or am en

温馨提示

  • 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
  • 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
  • 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
  • 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
  • 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
  • 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
  • 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

评论

0/150

提交评论