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

下载本文档

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

文档简介

0 学号 成绩 现代数字系统设计 课程论文 题目 基于 FPGA 的密码锁设计 作 者 嘿嘿 班 级 0803BF 院 别 信息与通信工程 专 业 电子信息工程 完成时间 2011 年 5 月 8 日 评语 1 基于基于 FPGA 的密码锁设的密码锁设计计 摘要摘要 基于FPGA设计的电子密码锁是一个小型的数字系统 与普通机械锁相 比 具有许多独特的优点 保密性好 防盗性强 可以不用钥匙 记住密码即可开锁 等 目前使用的电子密码锁大部分是基于单片机技术 以单片机为主要器件 其编码 器与解码器的生成为软件方式 在实际应用中 由于程序容易跑飞 系统的可靠性能 较差 本文介绍一种基于现场可编程门阵列FPGA 器件的电子密码锁的设计方法采 用Verilog HDL语言对系统进行描述 并在EP1K10TC100 3上实现 系统所实现的功能 用户给电子密码锁设定一个密码 当使用本机键盘开锁时 该密码与用户设定的密码比较 如果密码正确 则开锁 如果密码不正确 则允许 用户重新输入密码 最多可输入三次 若三次都不正确 则扬声器报警 直到按复 位键才允许再次输入代码 通过仿真调试 利用可编程器件 FPGA 的电子密码锁的设计基本达到了预期目 的 当然 该系统在一些细节的设计上还需要不断的完善和改进 特别是对系统的 扩展有很好的实用和设计的价值 关键词关键词 现场可编程门阵列 硬件描述语言 电子密码锁 扬声器 2 Abstract FPGA based design of the electronic code lock is a small digital system electronic password lock compared with ordinary mechanical locks with many unique advantages good privacy security and strong can not key to remember passwords to unlock and so on At present the use of the electronic code lock on most of SCM technology to SCM as the main devices encoders and decoders of Health and the software approach In practice since the process easy run to fly the reliability of the system can be poor Based on this paper a field programmable gate arrays FPGA devices electronic password lock design Verilog HDL language used to describe the system and achieve EP1K10TC100 3 Implementation of the system features users of electronic password lock to set a password when using the keyboard unlock the machine the user password and set the password if the correct password then unlock if the password is not correct allows Users to enter a password can enter up to three times three times if not correct the speaker alarm until the reset button only allowed to re enter the code The simulation tests using programmable devices FPGA electronic password lock the basic design to achieve the expected goal Of course some of the details of the system in the design of the need to constantly refined and improved in particular the expansion of the system have a good design and practical value Key words FPGA Verilog HDL electronic password lock speaker 3 基于 FPGA 的密码锁设计 2 一 概述 5 1 1 电子密码锁的现状 5 1 2 论文主要完成的工作 6 二 系统硬件设计 6 2 1 系统设计方案 6 2 1 1 系统功能需求分析 6 2 1 2 系统实现方案的论证比较 6 2 1 3 系统方案的总体设计 7 2 2 主控模块 8 2 2 1 主控芯片 EP1K10TC100 3 的介绍 8 2 3 键盘模块 8 2 4 显示模块 9 2 5 报警模块 10 三 系统软件设计 10 3 1 系统主控制流程框图 10 3 2 键盘扫描程序框图 11 3 3 获取键值程序框图 12 3 4 解码 报警模块 13 3 5 系统软件设计总 RTL 级图 14 四 系统测试与总结 14 4 1 仿真波形图 14 4 2 本次课题设计体会 15 参考文献 15 附 录 15 4 1 概述 1 11 1 电子密码锁的现状电子密码锁的现状 随着我国对外开放的不断深入 高档建筑发展很快 高档密码锁具市场的前景 乐观 我国密码锁具行业对密码锁具高新技术的投入正逐年增大 高档密码锁的市 场需求也逐年增加 在安防工程中 锁具产品是关系到整个系统安全性的重要设备 所以锁具产品的优劣也关系了整个安防工程的质量和验收 目前 市场上比较先进的智能电子密码锁分别有 IC 卡电子密码锁 射频卡式 电子密码锁 红外遥控电子密码锁 指纹识别电子密码锁和瞳孔识别电子密码锁等 IC 卡电子密码锁成本低 体积小 卡片本身无须电源等优点占领了一定的市场份额 但是由于有机械接触 会产生接触磨损 而且使用不太方便 在一定程度上限制了 它的应用 射频卡式电子密码锁是非接触式电子密码锁 成本也不太高 体积跟 IC 卡密码锁相当 卡片使用感应电源 重量很轻 技术成熟 受到了广泛的欢迎 但 是与 IC 卡电子密码锁相比 成本偏高 指纹识别电子密码锁和瞳孔识别电子密码锁 可靠性很高 安全性是目前应用系统中最高的 但是成本高昂 还没进入大众化使 用阶段 在国外 美国 日本 德国的电子密码锁保密性较好 并结合感应卡技术 生 物识别技术 使电子密码锁系统得到了飞跃式的发展 这几个国家的密码锁识别的 密码更复杂 并且综合性比较好 已经进入了成熟期 出现了感应卡式密码锁 指 纹式密码锁 虹膜密码锁 面部识别密码锁 序列混乱的键盘密码锁等各种技术的 系统 它们在安全性 方便性 易管理性等方面都各有特长 新型的电子密码锁系 统的应用也越来越广 基于 FPGA 的电子密码锁是新型现代化安全管理系统 它集微机自动识别技术和 现代安全管理措施为一体 它涉及电子 机械 计算机技术 通讯技术 生物技术 等诸多新技术 它是解决重要部门出入口实现安全防范管理的有效措施 适用各种 场合 如银行 宾馆 机房 军械库 机要室 办公间 智能化小区 工厂 家庭 等 在数字技术网络技术飞速发展的今天 电子密码锁技术得到了迅猛的发展 它 早已超越了单纯的门道及钥匙管理 逐渐发展成为一套完整的出入管理系统 它在 工作环境安全 人事考勤管理等行政管理工作中发挥着巨大的作用 在该系统的基 础上增加相应的辅助设备可以进行电梯控制 车辆进出控制 物业消防监控 餐饮 收费 私家车库管理等 真正实现区域内一卡智能管理 目前使用的电子密码锁大部分是基于单片机技术 以单片机为主要器件 其编码 器与解码器的生成为软件方式 在实际应用中 由于程序容易跑飞 系统的可靠性 能较差 基于 FPGA 的电子密码锁已经是现代生活中经常用到的工具之一 用于各类 5 保险柜 房门 防盗门等等 用电子密码锁代替传统的机械式密码锁 克服了机械 式密码锁密码量少 安全性能差的缺点 由于采用的是可编程逻辑器件 FPGA 使得 系统有相当大的灵活性 随时可以进行硬件升级 扩展 而且系统设计完善以后还 可以将主控的 FPGA 固化成一片 ASIC 那么这块 ASIC 就可以作为专用的数字密码锁 芯片 而且由于硬件可升级 还可随时增加密码位数或增加新的功能 使得密码锁 有更高的安全性 可靠性和方便性 1 21 2 论文主要完成的工作论文主要完成的工作 课题主要解决系统硬件和软件两方面的问题 硬件方面要解决 FPGA 可编程器件 与其外围电路的接口设计的问题 软件方面主要问题是利用 Verilog HDL 语言完成 基于 FPGA 的电子密码锁的编程问题 除此之外 程序还要完成基本的密码开锁功能 并通过扬声器长时间鸣叫报警 本设计是由 FPGA 可编程逻辑器件编程实现的控制电 路 具体有按键指示 输入错误提示 密码有效指示 控制开锁 控制报警等功能 它具有安全可靠 连接方便 简单易用 结构紧凑 系统可扩展性好等特点 2 系统硬件设计 2 2 1 1 系统系统设计方案设计方案 2 1 12 1 1 系统功能需求分析系统功能需求分析 本系统主要集中在以 FPGA 以核心外围扩展设计 整个电路主要电子锁具的组成 框图是以可编程逻辑器件 FPGA 为核心 配以相应硬件电路 完成密码的设置 存贮 识别和显示 驱动电磁执行器并检测其驱动电流值 报警等功能 FPGA 接收 键入的代码 并与存贮在闪存中的密码进行比较 如果密码正确 则驱动电磁执行 器开锁 如果密码不正确 则允许操作人员重新输入密码 最多可输入三次 如果 三次都不正确 则通过 FPGA 产生报警 FPGA 将每次开锁操作和此时电磁执行器的驱 动电流值作为状态信息发送给监控器 同时将接收来自接口的报警信息也发送给监 控器 2 1 22 1 2 系统实现方案的论证比较系统实现方案的论证比较 方案一方案一 采样台湾凌阳科技有限公司推出的以凌阳自主研发的 SPCE061A 芯片 为主控芯片 用一条下载线连接到计算机就可以实现在线仿真 在线调试 在线下 载 低廉的价格保证了系统可靠开发 此外 61 板具有 SOC 概念 DSP 功能和语音 特色 为电子密码锁的语音报警提供了方便 但是基于单片机设计的密码锁外围电 路比较复杂 系统可靠性差 密码的数量少 尤其是系统的程序不够稳定 功率较 6 大 需要专门的电源供电 所以不采用这个方案 方案二方案二 设计一种基于 FPGA 的电子密码锁的设计 用 FPGA 设计的系统已经是 现代生活中经常用到的工具之一 通过键盘输入密码 用 FPGA 作为主控芯片 用数 码管显示输入的数字 如果出现错误便通过报警电路发出报警 主控芯片又可分为 按键处理部分 控制部分和译码显示部分用电子密码锁代替传统的机械式密码锁 由于采用的是可编程逻辑器件 FPGA 使得系统有相当大的灵活性 随时可以进行硬 件升级 扩展 而且系统设计完善以后还可以将主控的 FPGA 固化成一片 ASIC 那么 这块 ASIC 就可以作为专用的数字密码锁芯片 方案的论证比较方案的论证比较 在实际应用中 由于程序容易跑飞 系统的可靠性能较差 而基于 FPGA 设计的 电子密码锁克服了基于单片机设计密码锁的缺点 基于上述比较以上两种方案 根 据系统设计要求 采用方案二 2 1 32 1 3 系统方案的总体设计系统方案的总体设计 系统原理框图系统原理框图 本系统由主控芯片 FPGA 键盘 显示电路 报警电路和开 关门电路组成 而 主控芯片又可分为按键处理部分 控制部分和译码显示部分 系统原理框图如图 2 1 3 所示 图 2 1 3 系统总体框架 总体设计原理总体设计原理 实现系统大量逻辑电路的集成 在设计中使用了现场可编程逻辑门阵列器件 FPGA FPGA 主要实现以下逻辑功能 键盘处理 数码显示 设置密码 解码开 门以及报警等控制功能 本系统有 13 个按键 包括 0 9 共 10 个数字键和 1 个确认 键 1 个警报复位键 1 个清 0 键 输入正确密码后 按确认键即可开门 在门开的 7 状态下 第一次输入新密码后再确认密码可设置密码 输入的密码在八位数码管上 显示 最后输入的数字显示在最右边 每输入一位数字 密码在数码管上的显示左 移一位 高位的零不用输入 因此密码可以为 1 8 位 初始密码为 0 即上电后 按确认键即可开门 门开后可通过锁门按钮关门 门关上后要再次输入密码才能开 门 在输入密码的过程中 当用户键入错误密码时 系统就会报警 由扬声器发出 报警声 当连续三次出现密码错误时 则系统会长时间报警不止 这时必须按警报 复位键方可停止 2 22 2 主控模块主控模块 2 2 12 2 1 主控芯片主控芯片EP1K10TC100 3EP1K10TC100 3的介绍的介绍 主控芯片采用 ACEX1K 系列的 EP1K10TC100 3 ACEX 系列是当今 Altera CPLD 中应 用前景最好的器件系列之一 1 2 该系列的 FPGA 由逻辑阵列块 LAB Logic array block 嵌入式阵列块 EAB embedded array block 快速互联以及 IO 单 元构成 每个逻辑阵列块 包含8 个逻辑单元 LE logic element 和一个局部互联 每个逻辑单元则由一个4 输入查找 表 LUT 一个可编程触发器 快速进位链 级 连链组成 多个 LAB 和多个 EAB 则可通过快速通道互相连接 3 EAB 是 ACEX 系列 器件在结构设计上的一个重要部件 他是输入 端口和输出端口都带有触发器的一种 灵活的 RAM 块 其主要功能是实现一些规模不太大的 FIFO ROM RAM 和双端口 RAM 等 2 32 3 键盘模块键盘模块 按键方式分为独立式和行列式两种 本设计采用行列式按键结构 是 4 4 键盘 本设计中只用了其中的 11 个按键 行列式按键是指直接用 I O 口线通过动态扫描构 成的按键电路 每个按键通过动态扫描需要八根 I O 口线 每根 I O 口线上的按键 工作状态不会影响其他 I O 口线的工作状态 它的电路配置灵活 软件结构简单 占用的 I O 资源少 首先固定输出 4 行为高电平 接到电源 然后输出 4 列为低电平 在读入输出 的 4 行的值 通常高电平会被低电平拉低 如果读入的 4 行均为高电平 那么肯定 没有按键按下 否则 如果读入的 4 行有一位为低电平 那么对应的该行肯定有一 个按键按下 这样便可以获取到按键的行值 同理 获取列值也是如此 先输出 4 列为高电平 然后在输出 4 行为低电平 再读入列值 如果其中有哪一位为低电平 那么肯定对应的那一列有按键按下 获取到行值和列值以后 组合成一个 8 位的数据 根据实现不同的编码在对每 个按键进行匹配 找到键值后在 7 段码管显示 8 按键控制电路如图 2 3 所示 图 2 3 4 4 矩阵键盘 2 42 4 显示模块显示模块 LED 显示块是由发光二极管显示字段的显示器件 在单片机应用系统中通常使用 的是 7 段 LED 本设计将采用共阳极 共阳极 LED 显示块的发光二极管与阳极并接 数码管显示块中共有 8 个发光二极管 其中 7 个发光二极管构成七笔字形 8 1 个发光二极管构成小数点 7 段显示块与 FPGA 接口非常容易 只要将一个 8 位并 行输出与显示块的发光二极管引脚相连即可 8 位并行输出口输出不同的字节数据即 可获得不同的数字或字符 如表 5 1 所示 通常将控制发光二极管的 8 位字节数据 称为段选码 共阳极与共阴极的段选码互为补数 显示字 符 共阴极段 选码 共阳极段 选码 显示字符共阴极段选 码 共阳极段 选码 0 3FH C0H C 39H C6H 1 06H F9H D 5EH A1H 2 5BH A4H E 79H 86H 3 4FH B0H B 7CH 83H 4 66H 99H F 71H 8EH 5 6DH 92H P 73H 8CH 6 7DH 82H U 3EH C1H 7 07H F8H L 31H CEH 8 7FH 80H Y 6EH 91H 9 6FH 90H A 77H 88H 9 表 2 4 LED 显示块功能表 2 52 5 报警模块报警模块 驱动端为高电平则报警电路启动 三三 系统软件设计 3 3 1 1 系统主控制流程框图系统主控制流程框图 当用户输入密码后 按确认键即可开门 在门开的状态下 输入新密码 再按 确认键可设置密码 输入的密码在八位数码管上显示 最后输入的数字显示在最右 边 每输入一位数字 密码在数码管上的显示左移一位 高位的零不用输入 因此 密码可以为 1 8 位 初始密码为 0 即上电后 按确认键即可开门 本系统控制流 程如图 3 1 所示 开始 有锁门信号 键盘扫描 数字键 门已开 密码正确 密码不正确 累计三次 次数加一 清除显示 关门 输入一位密码 存入新密码 清除显 示 开门 报警 是 是 是 是 是 否 否 否 否 否 否 图 3 1 系统控制图 10 3 3 2 2 键盘扫描程序框图键盘扫描程序框图 开始 时钟上升沿触发 列为高电平 逐列扫描 图 3 2 键盘扫描程序框图 3 3 3 3 获取键值程序框图获取键值程序框图 图 3 3 键值程序框图 开始 时钟上升 数字键确认键 键盘扫描 数码管整体左移一 位 并在空出的最 低位显示扫描结果密码判断 11 3 3 4 4 解码 报警模块解码 报警模块 开始 门已开 输入密码后确认 密码正确 开门 不响警报 计数器 1 仍关 门 不正确次 数 大于 3 复位 位 计数器清 0 警报停 止 报警 图 3 4 解码报警模块 12 3 53 5 系统软件设计总系统软件设计总 RTLRTL 级图级图 4 系统测试与总结 4 14 1 仿真波形图仿真波形图 因为功能实现需要键盘输入 在波形仿真中无法体现 13 4 24 2 本次课题设计体会本次课题设计体会 本次课题设计完成的是基于 FPGA 的密码锁设计 通过一个多星期的不断努力 克服各种困难 最终实现了任务目标 本次设计解决的主要问题是是利用 verilog HDL 语言完成基于 FPGA 的电子密码锁的编程问题 设计是理论知识与实践的完美结合 对于现代大学生的实践能力是个很好的培养 短短的一个星期的时间的设计虽然短暂 但是它给我的收获确实难忘 不仅仅在 智能仪器方面有了很大的进步 而且在 FPGA Quartus 软件等方面也学到了不少在 上课学不到的知识 这段时间我查阅到很多关于课程设计的书籍 对我帮助也很大 我觉得自己以前的盲目 现在明白了很多 也对我们专业动手实践的兴趣提高了很 多 有了这些经历对于我日后工作一定会有很大帮助 相信这次设计中学到的种种 东西一定会存在我的脑海里 令我终身受益 在课程设计的过程中也可以看到我的不足 如原理知识掌握不实 曾经学过的知 识如今却不会应用 软件的应用也不熟练 希望日后提供给我们更多的锻炼机会来 培养我们的实践能力 参考文献 1 高移南 遥控变号电子锁 J 电子世界 1994 07 15 2 许 琦 基于FPGA 的电子密码锁设计 J 中国科技信息 2007 1 240 241 3 刘韬 楼兴华 FPGA 数字电子系统设计与开发实例导航 M 人民邮电出版社 2005 4 王金明 数字系统设计与 Verilog HDL 附 录 1 主控程序 module keyword key clk lock alarm door word0 word1 word2 word3 word4 word5 word6 word7 主控程序 output 3 0 word0 word1 word2 word3 word4 word5 word6 word7 output door 开 关门信号 1 为开 0 为关 output reg alarm 密码输入错误 3 次后的报警信号 input 3 0 key 键盘输入后检测到的一个键值 input clk lock lock 门为锁闭状态时的标志位 reg 3 0 w0 w1 w2 w3 w4 w5 w6 w7 k0 k1 k2 k3 k4 k5 k6 k7 w 代表的是电子密码 锁的密码 k 代表的是按键输入的数值 reg 1 0 i reg m m 为 door 的标志位 always posedge clk 14 begin if lock 1 begin m 0 k0 0 k1 0 k2 0 k3 0 k4 0 k5 0 k6 0 k7 0 门未开 时清屏 end else if key 10 确认键 按下时 begin if m 0 门未开 begin if k0 w0 k1 w1 k2 w2 k3 w3 k4 w4 k5 w5 k6 w6 k7 w7 判断密码是否正确 begin if i 3 begin i i 1 k0 0 k1 0 k2 0 k3 0 k4 0 k5 0 k6 0 k7 0 密码错误后清屏 end else alarm 1 报警打开 end else begin m 1 密码正确 门打开 alarm 0 报警关闭 end end else begin w0 k0 w1 k1 w2 k2 w3 k3 w4 k4 w5 k5 w6 k6 w7 k7 门为开时设置密码 k0 0 k1 0 k2 0 k3 0 k4 0 k5 0 k6 0 k7 0 清屏 end end else if key 10 数字键按下时 begin k7 k6 k6 k5 k5 k4 k4 k3 k3 k2 k2 k1 k1 k0 k0 key 新键值显示在最右端 其余数值左移一位 end end assign door m 15 assign word0 k0 assign word1 k1 assign word2 k2 assign word3 k3 assign word4 k4 assign word5 k5 assign word6 k6 assign word7 k7 endmodule 2 解码显示程序 module decode t0 t1 t2 t3 t4 t5 t6 t7 clk code led 数码显示 模块 output reg 7 0 code led code 为数码管显示的数值 led 为数码管位选信号 input 3 0 t0 t1 t2 t3 t4 t5 t6 t7 input clk reg 2 0 n reg 3 0 m always posedge clk begin if n 8 n n 1 else n 0 end always n begin case n 0 begin m t7 led 8 b end 1 begin m t6 led 8 b end 2 begin m t5 led 8 b end 3 begin m t4 led 8 b end 4 begin m t3 led 8 b end 5 begin m t2 led 8 b end 6 begin m t1 led 8 b end 7 begin m t0 led 8 b end endcase end always m begin case m 0 code 8 b 1 code 8 b 2 code 8 b 3 code 8 b 16 4 code 8 b 5 code 8 b 6 code 8 b 7 code 8 b 8 code 8 b 9 code 8 b 10 code 8 b 确认值 11 code 8 b 复位值 endcase end Endmodule 3 键盘扫描获取键值程序 module keyscan clk reset row col key value output reg 3 0 key value output reg 3 0 col input clk reset input 3 0 row reg 5 0 count delay 20ms reg 2 0 state 状态标志 reg key flag 按键标志位 reg clk 500khz 500KHZ 时钟信号 reg 3 0 col reg 寄存扫描列值 reg 3 0 row reg 寄存扫描行值 always posedge clk or negedge reset begin if reset begin clk 500khz 0 count 50 begin clk 500khz clk 500khz count 0 end else count count 1 end end always posedge clk 500khz or negedge reset begin if reset begin c

温馨提示

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

评论

0/150

提交评论