基于fpga电子密码锁设计与实现内容摘要:
器件通过硬件电路来实现所有的算法 ,提高 了 系统的可靠保密性。 FPGA 数 万 次的 重写 ,与 基于单片机的电子密码锁 相比, FPGA 构成系统设备 的可靠安全性得到提高 ,而且 更新 和升级 更加方便。 经过 设计 了解 FPGA 系统设计的 构想 ,并 学习 FPGA 设计 所用到的 软件 ,以及 Verilog 硬件语言的使用 ,掌握 电子密码 的设计步骤 ,增强 专业知识 , 为以后的工作实践经验建立基础。 本系统采用人们比较熟悉的数字键盘来实现,通过 Verilog 语言来编码实现相应数值的输入。 在密码锁控制模块、显示模块中, Verilog 的运用使得许多硬件逻辑电路代码化,大大降低了硬件制作的困难,通过可编程逻辑电路省去了许多硬件芯片,简化 系统结构,降低成本,提高了系统的保密性和可靠性。 而且 FPGA 的可擦除功能使得系统的修改和更新变得十分容易。 本文介绍的密码锁系统最大的另一个优势在于贴近现实生活,具有使用价值,在设计过程中充分考虑了生活中会遇到的各种情况。 基于 FPGA电子密码锁设计与实现 2 1 电子密码锁原理 编码总量 的确定 编码总量即密钥量定义为 NT 所以 随机试验开锁 概率定义为: NTP 1 公式 () 其中 P 为开锁成功 的随机 概率, 所以 NT 有一个合理的区间。 NTL 选择下限使密码锁可能落在随机外操作成功。 如果开锁一次要用掉 t的时间 ,随机试验测试中 , 那么 将 NT 分为 n段并期望在 1/n 段的 1/2 处开锁成功。 此时 nP 21 公式 () 所以 随机开锁试验 预期 成功的时间为: NTntTr 2 公式 () 如果保护系统的设计没有加入错误的输入,在随机开启测试时间时 随机开锁试验的时间为 TEN,则: xN TLntTNE )2( 其中 x 为最低安全系数 公式 () 试验说明 系统设计安全保密性 主要依靠的是密钥量的大小。 总之 ,当选定 NT 之后,要使安全性保密性越强则 NTH 就要越大 ,但 常 取 NTH=(10~ 1000)NTL 在设计中。 编码制式 的选择要考虑到 NT 的大小, 有 如下三种: ( 1) 每位密码都可以相同 : aiNT1 ; 公式( ) ( 2) 相邻密码不能相同 : aiaNT )1(2 ; 公式( ) ( 3) 每位密码都不可以相同 : aiiaaaNT )1....()1(3 。 公式( ) A 代表 , i 代表 位数, a 和 i 的 选择要符合 NT≥ NTL , a=2, 3, 4, 10, 12, 14,16。 当 a=10, i=6 时 可以 得 出 NT2 等于 0159NT 1, NT 3 等于 T1,所以 编码制式重 码与 NT 的关系非常大。 此外,就算是相同制式 基底 的不同 对 密钥 量 NT 也 会有影响,硬件电路的设计 也将伴随着产生改变。 本 设计使用 串行脉冲计数 方式作为密码锁口输入,在 密码锁 设计中 采用十进制编码, 各位密码可以一样。 误码输入保护措施 基于 FPGA电子密码锁设计与实现 3 电子密码锁设计的主要目标是保密安全性 , 随机试验测试是不可预见的 , 所以必须加入 保护措施 错误 输入次数 设定为 三次, 当错误输入 达到三次时主控电路 应当关闭,要使 系统 恢复 正常状态 要采用以下的方式 : ( 1) 管理员密码 管理方式; ( 2) 设置系统恢复按键 ; ( 3)系统掉电 自动 恢复 ; 设计一个电子密码锁控制,具备以下功能,编程并测试 : ; 密码可以更改; ,按确认键,三次输入错误锁定密码锁; ,主人忘记密码或者锁定后解锁使用。 基于 FPGA电子密码锁设计与实现 4 2 系统分析 FPGA 简介 FPGA 已有 超过十年的历史 , 在这十多年的发展 ,可编程设备有一个质的飞跃 ,从最初的门只有 1200,到今天已经达到 250000人 ,规模增加 250倍 ,供应商也来 由 Xilinx 的独霸天下 ,到 今天近 20制造商 群雄逐鹿 ,充分体现了可编程设 备的重要性和市场潜力。 FPGA 种类繁多 就 逻辑功能块 来说 , FPGA 可分为细粗粒度 FPGA。 持续互连和分段互连的分类 是 根据不同的内部连接。 可重复编程和 一次 编程 也是 FPGA 的一种分类方式。 用于存放数据的 SRAM 和 互联资源 (IR)及 可编程逻辑 模 块 (CLB)和 输入输出模块(IOB)构成了 FPGA。 Xilinx SpartanⅡ芯片 的 内部结构 如下图。 可配置存储器 静态存储器 是用来 配置 FPGA 的 逻辑功能, 经过 对 SRAM 的加电 实现 不同的 逻辑配置 , 相应芯片执行自身 的逻辑功能。 可配置 逻辑块( CLB) 图 32 CLB 结构框图 基于 FPGA电子密码锁设计与实现 5 若干个多路转换器 和 一对触发器 以及 两个独立的四输入逻辑函数发生器 组成了 CLB的内部结构。 输入 /输出块( IOB) 图 33 输入输出模块 IOB 芯片外部引脚和内部逻辑 的 界面 由 可配置的 IOB(见图 33) 提供 , 每 一个外部引脚 由一个 IOB 控制。 模块化设计 FPGA 可编程技术 随着时代 的发展, FPGA 设计 被应用到越来越多复杂电路的设计中, 市场需求 使得设计 这些电子产品的周期 要 尽量缩短, 优质 的产品 较早的 推出 才能得到有效推广。 矛盾出现在 百万门以上的大规模 FPGA需求与 短的时间内高质量的完成设计。 投入更多的人力,进行 协同设计、 并行工作 才是 解决这个矛盾的唯一 方法。 并行工作、协同设计工业生产中 往往采用较多 ,例如生产一部 手机 ,可以在不同车间并行生产外壳、屏幕、主板等 ,然后统一将这些配件组装起来即可。 严格控制部件的 公差标准 ,手机部件之间的联系越来越远 ,运用并行、协同工作方式 批量 生产 各个 零部件, 然后 将这些 散件组装 起来的 高效 方法就是一种模块化设计方法。 自上而下设计方法 从上至下的设计策略,根据设计的一般要求,从上到下,从系统的数学模型,对数据流进行设计和仿真 ,设计指定系统的总体设计,硬件系统的最终实现。 Verilog 自顶向下的设计方法,反映了其基本结构由实体的表观特征和视觉行为和结构的描述结构,相同的实体可以有一个以上的结构体 ,以便设计方案的选择。 ASIC 芯片的制造过程是基于网表生成的网表,由芯片 FPGA 配置比特流文件生成是基于 FPGA。 系统硬件设计是通过三种仿真,设计中存在的问题可以被早期发现,和传统的自下而上的设计相比大大节省时间和成本,而且还有助于方案的选择与综合评价,这是硬件语言 Verilog 设计系统硬件的最大优势。 基于 FPGA电子密码锁设计与实现 6 Verilog 硬件描述语言 Verilog 硬件 描述 语言从抽象层次上 描画 硬件的功能、信号连接 联系和 定时关系。 设计流程如下图。 模块 的描述方式 在 Verilog 语言中,对 模块有 三种描述方式,建模方法 各有不同。 行为描述方式 行为描述方式是 抽象的 对 数学模型的 描述。 通过关系 运算、 算数 运算、 传输 延时和惯性 延时等难以或不能进行逻辑综合的 Verilog 语句 在程序中。 RTL 描述方式 RTL 描述方式 是一种能进行逻辑综合描述的描述方法 , 处于结构 描述和 行为 描述之间 的一种描述方式。 结构描述方式 结构描述 的 是子元件及之间的连线。 相对于 行为描述的端口与硬件端口的对应关系 结构描述 所描述的端口与硬件端口之间的对应关系要更容易明白。 它可以将现有的设计成果 直接 地 运 用到新的设计 中去,使得设计效率大大提高。 总体方案 编写 Verilog代码 软件模拟 综 合 ; 面 向FPGA和 ASIC 网表 硬件验证 基于 FPGA电子密码锁设计与实现 7 3 系统设计 本 设计 是 一个电子密码锁控制,具备以下功能 : ,设置的密码共 4位,用数码管显示 ; 密码可更改 ; ,按确认键,三次输入错误锁定密码锁; ,主人忘记密码或者锁定后解锁使用。 系统分为四个模块分别为输入模块、 主控模块、报警模块和显示模块系统框图如图。 图 系统框图 ( 1) 密码 的 输入 采用矩阵 键盘 输入。 ( 2) 控制电路 由 数据缓冲存储器 ,密码清除和修改 ,密码存储 ,触发 电动锁电路 (注册明确信号生成电路 ),数值比较电路 ,打开 /关闭门锁电路 等 一些小的功能电路。 ( 3) 密码显示电路 的功能是编码 BCD 码。 本设计就是将 数据的 BCD 码 编码 成数码器 可识别的 七段显示驱动编码 然后在数码管显示出来。 ( 4) 报警模块采用 频率为 1000Hz 用来 控制 蜂鸣器 鸣叫。 顶层实体说明的 Verilog 语言程序 在采用自顶向下 的设计方法时 , 设计人员所要做的第一步就是描述系统顶层模块的对外接口 , 如图 所示。 基于 FPGA电子密码锁设计与实现 8 图 系统顶层模块的对外接口 顶层结构体的设计 电子密码锁的 顶层模块 编写 在 高的层次上进 行 ,设计人员编写实际控制器之前 可以对 控制器等功能进行 确认。 一般 顶层模块的结构 体是 电路设计的系统 标准。 数字 密码 是串行输入 比较器将对输入的密码一一比较,每收到一个密码 计数器状态加 1。 直至为 4 时 密码已全部送入 ,控制器 将 进入开锁状态。 READY、 LOCK_OFF 和 数字密码 一样都是由按键产生 ,所以 必须 增加 消抖和同步化电路模块 ,从而使 系统能捕捉到输入 信号 ,同时保证每按一键只 接受一个脉冲信号。 系统 拥有 报警信号 ,采用 单频信号 1000Hz 来 控制 蜂鸣器 报警。 至此为止 ,已经对电子密码锁中除控制器外的所有受控部分的电路模块进行了分析。 图 系统的状态转移图 基于 FPGA电子密码锁设计与实现 9 ( 1) 建立等待状态 按下 WAIT _T 键 后 ,系统将会 进入等待状态。 等待状态采用图 所示的框图来表示。 图 等待状态流程图 ( 2) 准备操作状态 系统的准备操作状态是在按下 WklTT 键后 发出 READY 信号 ,系统转入到第三状态 ,则进入开锁。 如图 所示。 图 电子密 码锁控制器的流程图 ( 3) 输入密码操作状态 基于 FPGA电子密码锁设计与实现 10 进 第三 状态 即输入密码操作状态 ,EN 信号变为有效 ,密码数字及开锁信号 允许被 输入。 ( 4) 开锁操作状态 第四状态 ,首先区分输入 是数据信号还是 LOCK_OFF 信号 ,如果 是 LOCK_OFF 信号 ,则发出 SLT 信号 ,点亮 开锁指示 灯 LT;如果 是数据信号 ,马上 报警 , 要使、 其返回到输入密码操作状态 则 在接收信号以前按动 READY 键系统将发出 RESET_CNT 信号。 ( 5) 报警操作状态 按下 READY 键 系统 回到第三状态 ;按 LOCK_OFF 键 ,系统将 进入报警返回状态。 ( 6) 报警 恢复 状态 报警状 态为最后状态 ,按下 SETUP 键 将回到 等待状态。 图 详细表明了上述的控制器的具体流程 ,这种流程图也称为算法状态流程图( ASM) ,它描述了电子密码锁系统的具体功能。 顶层结构体的 Verilog 语言程序 就是根据电子密码锁的结构框图写出来的 ,所以 顶层结构体 明确了 系统的各个模块以及各个模块之间的连接关系。 底层模块的分析、实现与仿真 前面已经讨论了电子密码锁的原理以及顶层设计 ,现在进一步分析控制部分和受控部分的具体设计思路。 本节将重点讨论受控部分中所包含的各个底层模块的实现以及它们的 Verilog 语言程 序设计与仿真 ,控制部分的实现将在下一节中讨论。 输入消抖同步电路 键盘密码 输入 需要 同步消抖电路 , 按键 输入 的密码数字设计 成 低电平有效。 用来描述输入消抖同步电路功能的 Verilog 语言程序(。基于fpga电子密码锁设计与实现
相关推荐
when 0111 =b:=0001110000010100。 when 1000 =b:=0001101000011110。 when 1001 =b:=0010100111110000。 when 1010 =b:=0010100000010000。 when 1011 =b:=0100100000010000。 when 1100 =b:=1000100000010000。 when
中的 t个或更少个错误的任意组合,称之为能纠正t个错误的二元本原 BCH码。 BCH码是循环码的一类,因此,它具有分组码、循环码的一切性质。 但它明确界定了码长,校验位数目,码的最小距离之间的关系。 可以看出它的性能较好,在同样的编码效率下,纠错能力均较强,故可在无线通信系统中获得广泛应用。 根据 BCH码的定义,若 a是 ( )中的本原元,又码长为 ,能纠正 t个错误的二元
)直到门级电路逐层进行描述。 另外,高层次的行为描述可以与底层次的寄存器描述和结构描述混合使用。 采用 VHDL 语言设计硬件电路时,当门级或门级以上层次的描述通过仿真检验以后,再用相应的工具将设计映射成不同的工艺。 在工艺更新时无须 原设计程序,只需改变相应的映射工具。 由此可见,修改电路和修改工艺相互之间不会产生影响。 作为 IEEE 标准的 VHDL 语言,语法严格,设计成果便于复用和交流
对其编程。 第 3 页 西华大学 课程 设计说明书 2 智力抢答器设计方案 Verilog HDL 的设计流程 1)文本编辑:用任何文本编辑器都可以进行,也可以用专用的 HDL 编辑环境。 通常 Verilog HDL 文件保存 为 .v 文件。 2) 功能仿真:将文件调入 HDL 仿真软件进行功能仿真,检查逻辑功能是否正确(也叫前仿真,对简单的设计可以跳过这一步,只有在布线完成之后
1=39。 039。 then t:=t+1。 case t is when 1=cba=000。 dw1=1。 when 2=cba=001。 dw1=2。 when others=cba=000。 dw1=1。 end case。 end if。 end if。 end if。 end process。 end Behavioral。 15 显示; library IEEE。 use。
,所以能设计出一款方便安全操作的微波炉是非常有必要的。 南昌工程学院(本)毕业设计(论文) 3 第 二章 概述 VHDL简介 随着 VLSI、 EDA( Electronic Design Automation ) 工具的迅速发展,用户系统的设计从单纯的 ASIC( Application Specific Integrated Circuit) 设计向着系统单片化SOC( System On