基于vhdl数码锁设计说明书.doc_第1页
基于vhdl数码锁设计说明书.doc_第2页
基于vhdl数码锁设计说明书.doc_第3页
基于vhdl数码锁设计说明书.doc_第4页
基于vhdl数码锁设计说明书.doc_第5页
已阅读5页,还剩66页未读 继续免费阅读

下载本文档

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

文档简介

毕业设计(论文) 基于 VHDL 的数码锁的设计 专 业: 电子信息工程 姓 名: 学 号: 指导教师: 2012 年 6 月 摘要 I 摘摘 要要 这里阐述了一种基于 VHDL 设计一种数字电子数码锁的原理和方法,所用的 EDA 仿真工具是 Quartus II ,该数码锁具有安全性能高、成本低廉、功耗较低、 操作简单等优点。 本文介绍的 VHDL 数码锁应具有如下功能:密码预先存入寄存器中,开锁 时,输入密码存入另一寄存器中,当按下“确定”键时,启动比较器,比较两 个寄存器中的内容,当结果相同时开锁;当结果不同时不开锁。三次输入错误, 则发出报警信号,直到管理员终止此报警信号。用户需要修改密码时,先开锁, 再按“设定密码” ,清除预先存入的密码,通过键盘输入新的 4 位十进制码, 按“确定”完成。此锁可设置四位密码,如果不设置密码时,默认为“0000” 。 此数码锁有三个电路组成:密码输入电路、数码锁控制电路和密码显示电 路,数字密码的显示我们采用 LED 数码管来实现,相对而言其电路简单,成本 低,且具有一定的可靠性。此外,输入采用 4*4 矩阵式键盘。 关键词:VHDL 数码锁 Quartus II Abstract II Abstract It is elaborated here the principles and methods of a digital electronic lock based on the VHDL, the EDA simulation tool used is the Quartus II, the lock has a high safety performance, low cost, low power consumption for simple operation, etc This article describes the VHDL code lock should have the following functions: password pre-stored in another register in the register, unlock, enter the password deposit, when press the “OK“ button to start the comparator compare two registers when the results were the same to unlock; not unlock when the results. Three input error, the alarm signal is issued until the administrator to terminate the alarm signal. Users need to modify the password, unlock, and then set a password, remove the pre- deposited into the password, enter a new four decimal code via the keyboard, press the “OK“ to complete. This lock can be set to a four-digit PIN if you do not set a password, default is “0000“. This lock is composed of three circuits: the password input circuit, the lock control circuit and password display circuit, digital password LED digital tube is relatively simple circuit, low cost, and reliability. In addition, type 4 * 4 matrix keyboard. Key words: VHDL digital lock Quartus II 目 录 III 目目 录录 摘 要.I ABSTRACT.II 目 录.III 第一章 引 言1 1.1 国内外的研究现状.1 第二章 数码锁设计基础3 2.1 设计目标及方案.3 2.2 集成电路的设计流程.4 2.3 IP 核复用技术6 2.3.1 IP 复用技术7 2.4 复杂可编程逻辑器件(CPLD).7 2.4.1 CPLD 的基本特点 .7 2.4.2 MAX7000E 功能描述8 2.5 硬件描述语言.10 2.5.1 Verilog HDL 语言 11 2.5.2 VHDL 语言 .12 2.5.3 Verilog HDL 和 VHDL 的比较13 第三章 数码锁的电路设计.15 3.1 数码锁的整体电路设计.15 3.2 数码锁输入电路15 3.2.1 键盘接口电路17 3.2.2 键盘扫描电路19 3.2.3 弹跳消除电路19 3.2.4 键盘译码电路23 3.2.5 按键存储电路23 3.2.6 键盘输入电路的整体的仿真24 3.3 控制电路的设计25 目 录 IV 3.3.1 数字按键输入部分25 3.3.2 功能按键输入部分26 3.4 显示电路的设计.27 第四章 外围电路设计及整体电路30 4.1 开锁电路的设计30 4.2 报警电路设计30 4.3 整体电路图31 结 论.32 参 考 文 献33 致 谢.34 附 录 第一章 引 言 1 第一章第一章 引引 言言 1.1 国内外的研究现状 随着人民生活水平的提高和安全意识的加强,人们对安全的要求也就越来 越高。锁定自古以来就是守护大门的铁将军,它的安全性能要求非常高,这是 必要的安全和防盗的可靠保障,锁具也很容易使用,这是各种锁定长期发展的 主题。随着电子技术的发展,应运而生了各种电子产品,电子锁就是其中之一。 据有关资料介绍,从 20 世纪 30 年代以来,电子锁就长期以来一直被应用在一些 特殊的地方。电子锁是通过输入密码,通过键盘来完成解锁过程。电子锁的初 衷,是为了提高安全性。巨大的电子锁的密钥量(密码量)显著降低了机械锁 的安全风险,同时电子锁也可以和机械锁共同使用。这种电子锁只要记住一个 密码,需要开锁时按下金属键。这样就消除了人们的担心,于是这种电子锁受 到越来越多的人的欣赏。广泛的电子锁,数码锁,指纹锁,磁卡锁,IC 卡锁, 生物锁等也相继问世。但更实际的按键式电子锁则更加受到消费者的青睐。 20 世纪 80 年代后,由于电子锁 ASIC 的出现,电子锁的体积逐渐缩小, 提高了可靠性,也降低了成本,适合应用于安全性要求较高的场合。这种锁需 要有电源来提供能量,所以其使用还局限在一定范围内,难以普及,因此对它 的研究尚未取得重大进展。 在西方发达国家,电子锁技术是比较先进的,全方位的电子锁已被广泛应 用在智能门禁系统和门禁管理中,这些实现都依靠于各种更安全,更可靠的技 术。中国的电子锁整体水平的是仍然在落后于国际水平,电子锁的成本是也高, 市场仍然以电子按键锁为主流产品,按键式和电子卡钥匙锁已经引进具有国际 先进的水平,国内多家生产厂商已经开始供应市场。国内自主开发的电子锁, 市场格局尚未形成,应用并不广泛。国内许多企业还引进了世界先进技术,发 展前景非常可观。希望通过不断的努力,使电子锁在中国得到广泛使用。 目前使用的电子锁大多是基于单片机技术的,其编码器和解码器以软件方 式诞生。这些电子锁以单片机作为电路系统的主设备。在实际应用中,这种电 子锁程序很容易跑飞,系统可靠性差。基于复杂可编程逻辑的 CPLD 器件很好 地解决了这个问题,这种电子锁所有的算法完全由硬件电路实现,使系统的可 第一章 引 言 2 靠性进行了改进。 CPLD 是一种用户根据自己的需要自行定义构造逻辑功能的 数字集成电路。基本设计方法是通过集成开发软件平台,原理图,硬件描述语 言和其他方法来生成目标文件,通过下载电缆传送到目标芯片,实现数字系统 的设计。 1.21.2 课题的目的和意义课题的目的和意义 随着人民生活水平的提高和安全意识的加强,人们对安全的要求越来越高。 锁自古以来就是守护大门的铁将军,它的要求对安全和可靠的防盗要求非常高, 也更容易使用,这是锁长期发展的主题。 通过本次 CPLD 数码锁的设计,熟悉 CPLD 器件的设计软件,以及硬件描 述语言,使用 CPLD 设计,熟悉电子数码锁系统的设计流程,加深对自己相关 专业知识的了解,提高自己的综合能力,以获得实际经验,为今后的工作奠定 扎实的基础。 这次毕业设计用到了 EDA 技术,包括 Quartus II 仿真平台和 VHDL 硬件描 述语言,不同于单片机电子锁的设计,CPLD 芯片电子数码锁的用途更广泛。 设计时比使用单片机的电路设计更方便,也更简单。 第二章 数码锁设计基础 3 第二章第二章 数码锁设计基础数码锁设计基础 2.1 设计目标及方案 从机械锁的当前的发展形势来看,它通常会包含一个复杂的机器和电动的 功能部件,需要利用先进的制造工艺和装配工艺,制造周期比较长,成本较高。 电子卡锁的卡装置,容易磨损,寿命较短,卡也很容易被复制,更不容易双向 控制,易受外部磁场干扰,外磁场会紊乱内存储的信息,导致无效卡(钥匙) 。 指纹锁从方便的角度看安装环境和用户的要求是同一人,指纹如果受到损伤, 就不能解锁。目前市场上使用微处理器控制的电子锁,也有一些缺点: (1)输入密码很容易操作失误。 (2)单片机的外围电路和安全性较差,易被破解代码。 (3)单片机电路逻辑性能比较差。 (4)要完成复杂的电路结构需要利用单独的存储器来实现。 将要设计数码锁系统的设计目标: (1)产品设计环境要求相对较低,易于实现,成本低廉。 (2) 产品性能稳定可靠,安全性能有保证。 (3) 易于使用,提供了一个固定的密码键盘来设置密码。 (4) 在断电的情况下,原设定的密码保持不变,用户可以随时更改密码。 (5)数码锁采用十进制数累计计数,可设置数位密码。 (6)当输入正确密码和正确的密码的位数后,可以解锁。 (7)允许密码输入错误的最大次数是三次,当密码错误超过三次后就进入死 锁状态,然后报警。 数码锁系统设计方案: (1)通过硬件描述语言 VHDL 实现对可编程门阵列及复杂可编程逻辑器 (CPLD:Complex Programmable Logic Device)的逻辑控制。 (2)设计中使用 QUARTUS II 软件进行系统仿真。 第二章 数码锁设计基础 4 (3) 集成电路应用“自顶向下”的正向设计流程来设计。 2.2 集成电路的设计流程 PLD 器件的出现和计算机技术的发展,使得 EDA 技术的设计方法发生了根 本性的变化,由传统的“自底向上”的设计方法转变为一种新的“自顶向下” 的设计方法。而这两大类中又包含正向和逆向两种不同的设计方法,其具体的 设计要求如表 2.1 所示。 表 2.1“自顶向下”和“由底向上”的设计要求 方法 步 骤 自顶向下 由底向上 正向设计 结构设计 电路设计 逻辑设计 行为设计 版图设计 划分系统 单元设计 功能逻辑 子电路系统 系统组成 逆向设计 版图解析 电路图提取 功能分析 逻辑修改 逻辑设计 电路设计 版图设计 版图设计 电路图提取 功能分析 单元设计 功能块设计 子系统设计 系统设计 在“自顶向下”的正向设计时,首先应该进行行为设计,确定此 IC 芯片 的功能、性能和允许的芯片面积及成本等。接下来进行结构设计,根据芯片的 具体特点,将其分解成接口清晰、相互关系明确、尽量简单的子系统,得到其 总体结构。然后再进行逻辑设计,即把子系统转换成逻辑图,接着进行电路设 计,逻辑图将会被转换成电路图。最后进行电路版图的设计,把逻辑图转化成 版图。 “自底向上”的设计方法是先设计出下层模块的原理图,然后再由这些 原理图产生方块单元电路,进而产生上层电路原理图。这样层层向上组织,最 后生成总设计系统。在设计过程中,通常把“自顶向下”和“由底向上”两者 结合在一起以完成电路设计。一般情况下都是采用“自顶向下”的正向设计。在 “自顶向下”的设计中,首先需要进行行为设计,确定电子系统的功能性能及 允许的芯片面积和成本等。接着再进行下一步的单元电路的结构设计。图 2.1 第二章 数码锁设计基础 5 中就会对“自顶向下”的正向设计设计流程进行详细的说明。 IC 电路的设计过程从给出芯片的设计要求开始到芯片封装的结束要经过很 多的步骤,概括如下: (1)功能设计阶段。设计人员产品的应用场合,设定一些诸如功能、操作速 度、接口规格、环境温度及消耗功率等规格,以做为将来电路设计时的依据。 更可进一步规划软件模块及硬件模块该如何划分,哪些功能该整合于 SOC 内, 哪些功能可以设计在电路板上。 (2)设计描述和行为级验证。供能设计完成后,可以依据功能将 SOC 划分 为若干功能模块,并决定实现这些功能将要使用的 IP 核。此阶段将接影响了 SOC 内部的架构及各模块间互动的讯号,及未来产品的可靠性。决定模块之后, 可以用 VHDL 或 Verilog 等硬件描述语言实现各模块的设计。接着,利用 VHDL 或 Verilog 的电路仿真器,对设计进行功能验证(function simulation, 或行为验证 behavioral simulation) 。注意,这种功能仿真没有考虑电路实际的 延迟,但无法获得精确的结果。 (3)逻辑综合。确定设计描述正确后,可以使用逻辑综合工具 (synthesizer)进行综合。综合过程中,需要选择适当的逻辑器件库(logic cell library) ,作为合成逻辑电路时的参考依据。硬件语言设计描述文件的编写风格 是决定综合工具执行效率的一个重要因素。事实上,综合工具支持的 HDL 语 法均是有限的,一些过于抽象的语法只适于作为系统评估时的仿真模型,而不 能被综合工具接受。逻辑综合得到门级网表。 (4)门级验证(Gate-Level Netlist Verification) 门级功能验证是寄存器传输 级验证。主要的工作是要确认经综合后的电路是否符合功能需求,该工作一般 利用门电路级验证工具完成。 注意,此阶段仿真需要考虑门电路的延迟。 (5)布局和布线。布局指将设计好的功能模块合理地安排在芯片上,规划好 它们的位置。布线则指完成各模块之间互连的连线。注意,各模块之间的连线 通常比较长,因此,产生的延迟会严重影响 SOC 的性能,尤其在 0.25 微米制 程以上,这种现象更为显著。 (6)设计验证。在得到布局和几何图形的形式后,有必要进行设计验证,也 被称为布局验证,以确保制造工艺的要求和系统设计规范。布局验证,包括设 第二章 数码锁设计基础 6 计规则检查(DRC) ,电子规则检查(ERC) ,布局和原理图一致性检查(LVS) , 一些还需要做的布局参数提取(LPE) 。验证的版图,创建后的模板可以用于制 造芯片。 图 2.1“自顶向下”正向设计的设计流程图 (7) 生产加工。芯片制造过程包括硅的制备,杂质注入,扩散和光刻等工 艺。 (8) 封装和测试。芯片制造完成后要进行芯片的封装和测试。放置在印刷 电路板上的芯片可以封装成双列直插式和引脚阵列式两种不同的形式。多模块 的芯片则不需要封装。IC 设计可重复一个步骤或几个步骤之间的交替,直至最 终实现最优化的设计。 行为设计 结构设计 电路设计 版图设计 设计验证 芯片制造 Top-down 测试封装 第二章 数码锁设计基础 7 2.3 IP 核复用技术 当高层 IC 设计保持高速的发展同时,基于 IP 复用的设计已经越来越显示 其优越性。 未来 IP 技术将会像现在的逻辑门是一样容易使用。 2.3.1 IP 复用技术 IP,其本义是指知识产权和版权,在集成电路设计领域可以被理解为旨在 实现某些功能的设计。 IP 内核(IP 模块) ,是指虚拟电路的功能模块,也称为 虚拟组件。 IP 内核可在不同的硬件描述级实现,由此产生了三类 IP 内核:软核、固 核和硬核。这种分类主要依据产品交付的方式,而这三种 IP 内核实现方法也 各具特色。 软核是用 VHDL 等硬件描述语言描述的功能块,但是并不涉及用什么具体 电路元件实现这些功能。软 IP 通常是以硬件描述语言 HDL 源文件的形势出现, 应用开发过程与普通的 HDL 设计也十分相似,只是所需的开发硬软件环境比较 昂贵。软 IP 的设计周期短,设计投入少。由于不涉及物理实现,为后续设计 留有很大的发挥空间,增大了 IP 的灵活性和适应性。其主要缺点是在一定程 度上使后续工序无法适应整体设计,从而需要一定程度的软 IP 修正,在性能 上也不可能获得全面的优化。 硬核提供设计阶段最终阶段产品:掩模。以经过完全的布局布线的网表形 式提供,这种硬核既具有可预见性,同时还可以针对特定工艺或购买商进行功 耗和尺寸上的优化。 固核则是软核和硬核的折衷。大多数应用于 FPGA 的 IP 内核均为软核,软 核有助 于用户调节参数并增强可复用性。软核通常以加密形式提供,这样实 际的 RTL 对用户是不可见的,但布局和布线灵活。在这些加密的软核中,如果 对内核进行了参数化,那么用户就可通过头文件或图形用户接口(GUI)方便地 对参数 进行操作。对于那些对时序要求严格的内核(如 PCI 接口内核),可预 布线特定信号或分配特定的布线资源,以满足时序要求。 第二章 数码锁设计基础 8 2.4 复杂可编程逻辑器件(CPLD) 2.4.1 CPLD 的基本特点 CPLD(Complex Programmable Logic Device)复杂可编程逻辑器件,是从 PAL 和 GAL 器件发展出来的器件,相对而言规模大,结构复杂,属于大规模 集成电路范围。是一种用户根据各自需要而自行构造逻辑功能的数字集成电路。 其基本设计方法是借助集成开发软件平台,用原理图、硬件描述语言等方法, 生成相应的目标文件,通过下载电缆将代码传送到目标芯片中,实现设计的数 字系统。它具有编程灵活、集成度高、设计开发周期短、适用范围宽、开发工 具先进、设计制造成本低、对设计者的硬件经验要求低、标准产品无需测试、 保密性强、价格大 众化等特点,可实现较大规模的电路设计,因此被广泛应 用于产品的原型设计和产品生产(一般在 10,000 件以下)之中。几乎所有应用中 小规模通用数字集成电路的场合均可应用 CPLD 器件。 I/O 单元 I/O 单元 FB FB FB FB FB FB FB FB 全局可编程布 线区 图 2.2 CPLD 内部电路的原理结构图 CPLD 主要是由可编程逻辑宏单元(MC,Macro Cell)围绕中心的可编程互 连矩阵单元组成。其中 MC 结构较复杂,并具有复杂的 I/O 单元互连结构,可 由用户根据需要生成特定的电路结构,完成一定的功能。由于 CPLD 内部采用 固定长度的金属线进行各逻辑块的互连,所以设计的逻辑电路具有时间可预测 第二章 数码锁设计基础 9 性,避免了分段式互连结构时序不完全预测的缺点。图 2.2 描述了 CPLD 的结 构图。其中的 FB 是可编程逻辑功能块,其中包括有乘积项、宏单元等。 2.4.2 MAX7000E 功能描述 MAX7000系列是ALTERA第二代结构的器件,它是工业界速度最快的高集 成度可编程逻辑器件系列, 其集成度为6005000门可用门,有32256宏单 元和36164个用户I/O引脚,该系列器件的组合传播延时快达5ns,16位计数器 频率为178.9MHZ。此外,它们能提供很快的输入寄存器建立时间,多个系统时 钟和可编程的速度/功率控制,I/O引脚输出电压摆率是可控制的。 从而提供一 个附加的开关噪声电平控制,基于EEPROM的MAX7000系列是编程信息不易失 的电可擦除的器件。MAX7000E器件是MAX 7000系列中密度更高,性能更强 的成员。MAX7000E的结构框图如图2.3所示。 MAX7000E 器件结构是基于被称为逻辑阵列模块(LABs)的高性能的灵 活的逻辑单元。LABs 包括 16 个宏单元阵列,多个 LABs 通过可编程互联阵列 (PIA)连接,通用总线由所有专用输入,I/O 脚,宏单元反馈。MAX700E 的 宏单元如图 2.3 所示。 第二章 数码锁设计基础 10 图 2.3 MAX7000E 的结构图 MAX7000E 的宏单元可分别设置成时序逻辑或组合逻辑功能。宏单元由 3 个功能模块组成:逻辑阵列,乘积项选择矩阵和可编程寄存器。组合逻辑是在 逻辑阵列中实现的。在逻辑阵列中,它为每个宏单元提供 5 个乘积项。乘积项 选择矩阵起着分配这些乘积项的作用。 Altera 开发系统会根据设计的逻辑要求自动地对乘积项分配进行优化。每 个宏单元触发器在可编程时钟的控制下可分别编程,来实现 D,T,JK 或 SR 触发 器的功能。在组合逻辑操作时,这些触发器就被旁路。在设计入口时,设计者 指定所需要的触发器类型;Quartus II 开发系统软件再为每个寄存器功能选择最 有效的触发器进行工作,以优化资源利用。 在 MAX7000E 器件中,有两个全局时钟信号,分别为 GCLK1 和 GCLK2。 每个可编程的触发器可以在以下 3 种不同的控制时钟下工作: (1)一个全局时钟信号。此方式能最快实现时钟到达输出的操作。 (2)一个全局时钟信号由一个高电平有效的时钟使能信号控制。此方式为每 个触发器提供一个使能信号,但它仍旧可以实现快速的时钟达到输出的操作。 (3)带一个乘积项的阵列时钟。在此方式下,触发器的时钟信号来自隐含的 宏单元或 I/O 脚,宏单元内部的结构如图 2.4 所示。 第二章 数码锁设计基础 11 图 2.4 宏单元内部结构框图 2.5 硬件描述语言 硬件描述语言(Hardware Description Language)是硬件设计人员和电子设 计自动化(EDA)工具之间的界面,其主要目的是用来编写设计文件,建立电 子系统行为级的仿真模型。即利用计算 机的巨大能力对 Verilog HDL 或 VHDL 建模的复杂数字逻辑进行仿真,然后再自动综合,生成符合要求且在电路结构 上可以实现的数字逻辑网表(Netlist) ,根据网表和某种工 艺的器件自动生成 具体电路,最后生成该工艺条件下这种具体电路的时延模型。仿真验证无误后, 该模型可用于制造 ASIC 芯片或写入 CPLD 和 FPGA 器件中。HDL 语言有以下 几个特点: 1、HDL 语言既包含一些高层程序设计语言的结构形式,同时也兼顾描述 硬件线路连接的具体构件。 2、HDL 语言是并发的,即具有在同一时刻执行多任务的能力。 3、HDL 语言有时序的概念。 4、通过使用结构级或行为级描述可以在不同的抽象层次描述设计,HDL 语言采用自顶向下的数字电路设计方法,主要包括 3 个领域 5 个抽象层次 HDL 编译器是处理硬件描述语言的文本编译器。他可以支持的语言有 第二章 数码锁设计基础 12 Verilog HDLABELHDL 编译器为外界的仿真工具提供界面。基于 HDL 的源编 码可以代替某些原理图的一部分或者整个项目的原理图。 原理图编译器支持基于多层次原理图的设计。所有的项目类型都支持原理 图这种最常用的设计描述方法。原理图编译器是唯一的一种能够允许混合多种 设计描述方法的工具。 2.5.1 Verilog HDL 语言 Verilog HDL 是一种硬件描述语言,是一种以文本形式来描述数字系统硬 件的结构和行为的语言,用它可以表示逻辑电路图、逻辑表达式,还可以表示 数字逻辑系统所完成的逻辑功能。 Verilog HDL 和 VHDL 是目前世界上最流行 的两种硬件描述语言,都是在 20 世纪 80 年代中期开发出来的。 Verilog HDL 是在最广泛使用的 C 语言基础上发展起来的硬件描述语言, 它是由 GDA 公司的 PhilMoorby 在 1983 年底第一次开发的,最初只是设计了 仿真和验证工具,后来开发出了故障仿真和时序分析工具。 1985 年 Moorby 推 出其第三个商业模拟器 Verilog-XL,并获得了巨大成功,这使得 Verilog HDL 语言迅速推广并应用开来。 Cadence 公司在 1989 年收购 GDA 公司,使得 Verilog HDL 成为该公司的独家专利。 Cadence 公司在 1990 年出版的 Verilog HDL,并成立 LVI 的组织,以促进 Verilog HDL 的 IEEE 标准的建立,即 IEEE 标准 1364-1995。 Verilog HDL 语言,最重要的特点是易于使用已有的 C 语言编程经验,在 很短的时间内迅速地学习和掌握,因而可以把 Verilog HDL 内容安排在与 ASIC 设计等相关课程内部进行讲授,由于 HDL 语言本身是专门面向硬件与系统设 计的,这样的安排可以使学习者同时获得设计实际电路的经验。与之相比, VHDL 的学习要困难一些。具体如表 2.2 所示。 表 2.2 不同层级的描述方式 设计层次行为描述结构描述 系统级系统算法系统逻辑图 寄存器输出级数据流图 真值表 状态机 寄存器 ALUROL 等 分模块描述 门级布尔方程真值表逻辑门触发器锁存器 第二章 数码锁设计基础 13 构成的逻辑图 板图级几何图形图形连接关系 2.5.2 VHDL 语言 VHDL 全名 Very-High-Speed Integrated Circuit HardwareDescription Language,诞生于 1982 年。1987 年底,VHDL 被 IEEE 和美国国防部确认为标 准硬件描述语言 。自 IEEE-1076(简称 87 版)之后,各 EDA 公司相继推出自 己的 VHDL 设计环境,或宣布自己的设计工具可以和 VHDL 接口。1993 年, IEEE 对 VHDL 进行了修订,从更高的抽象层次和系统描述能力上扩展 VHDL 的内容,公布了新版本的 VHDL,即 IEEE 标准的 1076-1993 版本,简称 93 版。 VHDL 和 Verilog 作为 IEEE 的工业标准硬件描述语言,得到众多 EDA 公司支 持,在电子工程领域,已成为事实上的通用硬件描述语言。 VHDL 主要用于描述数字系统的结构,行为,功能和接口。除了含有许多 具有硬件特征的语句外,VHDL 的语言形式、描述风格以及语法是十分类似于 一般的计算机高级语言。 VHDL 的程序结构特点是将一项工程设计,或称设 计实体(可以是一个元件,一个电路模块或一个系统)分成外部(或称可视部 分,及端口)和内部(或称不可视 部分) ,既涉及实体的内部功能和算法完成部 分。在对一个设计实体定义了外部界面后,一旦其内部开发完成后,其他的设 计就可以直接调用这个实体。这种将设计 实体分成内外部分的概念是 VHDL 系统设计的基本点。VHDL 除具备一般的 HDL 优点外,其特殊的优点是: (1)功能强大、设计灵活。 (2)支持广泛、易于修改。 (3)强大的系统硬件描述能力。 (4)独立于器件的设计、与工艺无关。 (5)很强的移植能力。 (6)易于共享和复用。 2.5.3 Verilog HDL 和 VHDL 的比较 至今为止,工业界已见到很多种硬件描述语言出现。但最强有力的竞争者 第二章 数码锁设计基础 14 是 VHDL 和 Verilog。就硬件所涉及的基本原理和表现方法来说,两者具有类 似的 特点和灵活性。如前所述,两者都是国际标准。这意味着语言都是标准 化的,不会为任何公司和组织所单独控制。每种语言又都有其自己的特点和应 用领域。描述抽象的特性方面两者性能都很好,但在对硬件具体结构描述时会 出现不同。由于含有 PLI,Verilog 作结构描述比较容易。PLI 即编程语言接口, 它是一组能帮助进行仿真的 C 语言接口。PLI 能够用于延迟时间计算,测试布 线过程等等工作。PLI 在 HDL 中的作用与编程语言中 API 的作用相同。VHDL 的程序则能够被编译(如果是多层板,分别作为独立单元进行编译) 。而大多 数 Verilog 程序仍然是解释型的。当前,仅有少数几种为特殊目标而单 独放入 编译器。由于 VHDL 支持线路板的原理图,所以程序在放置相关函数或过程到 电路板及在希望使用的设计项目中使用线路板时比较灵活。但在 Verilog 环境 中,函数及过程必须放在单独的头文件中,并且象在 C 语言中一样包含在模块 中。VHDL 超过 Verilog 的一个领域是过程的并发处理方 式。这在 Verilog 中 是作不到的。VHDL 是对环境不敏感和自由格式语言。在以用户为基础的项目 方面 Verilog 具有较高的能力,因为 Verilog 具有比 VHDL 更多的实用工具。 2.6 QUARTUS 的简介 Altera 公司的可编程逻辑器件开发软件 Quartus II 支持原理图,VHDL 语言, Verilog HDL 语言,并用 AHDL(Altera 的硬件描述语言)等多种设计形式,内 嵌入自己的模拟器,你可以完成从输入设计到硬件配置这样一个完整的 PLD 的 设计过程。 Linux 和 Unix 以及 XP 操作系统都可以运行 Quartus II,可以使用 Tcl 脚本 完成设计过程中,也提供了一个图形用户界面设计。具有运行速度快,界面是 统一的,集中的功能,易于使用的功能。Quartus II 支持 Altera 的 IP 内核,包 括 LPM/MegaFunction 宏功能模块库,使用户可以利用成熟的模块的优势,简 化设计复杂性,并加快了设计速度。第三方 EDA 工具的良好支持,并且也可 以在设计过程中的各个阶段允许使用熟悉的第三方 EDA 工具。 此外,Quartus II 和 DSP Builder 工具和 Matlab / Simulink 相结合,你可以 很容易地实现各种 DSP 应用;支持 Altera 的可编程系统芯片(SOPC)的发展, 集系统级设计,嵌入式软件开发,可编程逻辑的设计,这是一个全面发展的平 台。 第二章 数码锁设计基础 15 Altera 的 Quartus II 可编程逻辑设计环境中,由于其强大的设计能力和直观 的界面,受到越来越多的数字系统设计师的欢迎。Altera 的 Quartus II 可编程逻 辑软件属于第四代 PLD 的发展平台。该平台支持根据设计要求的工作组,包括 支持基于 Internet 的协同设计。兼容的 Quartus 平台与 Cadence 设计系统, ExemplarLogic,Mentor Graphics,Synopsys 和 Synplicity 的工具的 EDA 供应商。 这里改进了软件的 LogicLock 模块设计功能,并增加了一个 FastFit 编译器选项, 并促进网络编辑器的性能,增强的调试功能。支持 MAX7000/MAX3000 等乘积 项。 第三章 数码锁的电路设计 16 第三章 数码锁的电路设计 3.1 数码锁的整体电路设计 四位数的电子数码锁,主要由三部分组成:数字锁输入部分,控制电路, 显示电路。再加上相应外围电路,可实现一个完整的电子数码锁功能。键盘接 口电路包括时序发生电路,键盘扫描电路,弹跳消除电路和译码电路。控制电 路设计包括数字键输入存储删除功能;功能键包括控制移位寄存器,清除密码, 变更保存,激活电锁,报警信号发生控制电路;显示电路包括数据选择和七段 显示译码电路,BCD 对七段显示器扫描电路输出。图 3.1 显示了数码锁的框图。 数字密码锁的电源是直流 5V,使用原始的时钟频率为 4MHz 的,它具有 以下特点:数字输入,按下一个数字键,就输入一个数值显示输入值的右侧, 并将以前的输入数据向左移动一位,留下一个数字的位置。 (1)可设置四位密码,如果不设置密码时,默认为“0000” ; (2)密码正确,锁打开; (3)密码错误,提示“密码错误” ,要求重新输入,三次输入错误,则发出 报警信号,直到管理员终止此报警信号; 3.2 数码锁输入电路数码锁输入电路 时钟脉冲信号 扫描电路信号 弹跳消 除电路 报警电路 键盘译 码电路 按键 数据 缓存 器 键盘扫描电路 1 c65 a98 f#0 n32 4 7 * 第三章 数码锁的电路设计 17 图 3.2(a) 输入电路示意图 图 3.1 数码锁系统总体框图 数码锁输入电路 键盘扫描电路 时序产生电路 扫描信号 按键输入 键盘 弹跳消除电路 键盘译码电路 数码锁控制电路 寄存器消除信号发生电路 开/关门锁电路 数值比较电路 按键数据缓存器 显示电路 BCD 至七段译码电路 七段数码管 第三章 数码锁的电路设计 18 使用键盘输入,操作简单,易于使用的输入电路。输入电路图如图 3.2(a) 所示。 3.2.1 键盘接口电路 (1)矩阵式键盘工作原理 使用通用格式的矩阵键盘,4x4 矩阵键盘面板设置如图 3.2(b)所示。 KX3 KX2 KX1 KX0 经提升电阻至 VCC 图 3.2(b)4*4 矩阵键盘的面板设置 每个键盘键是一个开关电路,按下一个按钮时,按钮触点将显示逻辑 0 状 态,不按下时显示逻辑 1 状态。扫描信号输入键盘的 KY3 KY0(见图 3.2(a)) 。变化的顺序是 1110-1101-1011-0111-1110。每次扫描一排,一次又一次地重 复周而复始。例如,现在 1101 是扫描信号,则目前正在扫描“4”, “5”, “6”, “C” 这四个按键,如果不按按钮,那么此行的值读 KX0 KX3 为 1111,否则的话 就正好相反。 当按键读出 1101 年的值时表示按键“6”被按下,出于同样的原 因可以列出其他的按钮和数字之间的关系,如表 3.1 所示。 如果 KX3 KX0 列读值为 1111,表示不按任何按钮,所以不进行编码的 动作,相反,如果按下按钮,KX3-KX0 读取值发送到编码解码器电路。 仅有矩阵键盘不能完成按钮动作,所以需要匹配时序产生电路,键盘扫描 12 546c n3 789a 1#0* 1110 1101 1011 0111 KY3(11) KY2(10) KY1(01) KY0(00) 第三章 数码锁的电路设计 19 电路,弹跳消除电路,键盘解码电路和密钥存储电路,以便完成键盘输入的动 作。 (2)时序产生电路 简称为时序逻辑电路的时序电路,其结构特点是存储电路和组合电路组合 而成的,通俗地说就是在图 3.3 所示,由触发器和逻辑门构成。在时序逻辑电 路中,存储器电路内存时序电路的状态,触发器是必不可少的。 输入 存储电路 组合电路 输出 3.3 时序逻辑电路的结构图 脉冲波形的电路系统采用三个不同的工作频率,分别为:系统时钟脉冲 (这是系统时钟源,频率最高的) ,采样信号,键盘扫描信号和七段显示器的 反弹消除扫描信号(使用相同的时钟脉冲信号) 。所以,你可以使用自由计数 器来产生不同的频率。 这是一个 N 位计数器。N 的大小取决于电路的需求。 N 值越大,除频次数 相应增加,频率变化的数量相对的电路合成也将需要更多的空间。可以使用模 拟软件来模拟,几乎每家公司的 EDA 产品都有仿真工具。往往要使用的是 Verilog-XL,NC 等应用于 Verilog 仿真,Leapforg 用于 VHDL 仿真,Analog Artist 可用于模拟电路仿真。 viewlogic 模拟器:viewsim 门级仿真器 speedwaveVHDL 仿真器,VCS Verilog 仿真器。Mentor Graphics 公司及其附属 公司开发的两个 VHDL 和 Verilog 仿真器 :模型 Sim.Cadence 和 Synopsys 所使 第三章 数码锁的电路设计 20 用 VSS(VHDL 仿真器) 。现在的趋势是主要的 EDA 公司已逐步使用 Quartus II 作为电路的验证工具仿真器。 可以看出,在波形图 3.4 中,q0,q1,q2.得到时钟脉冲信号的 1/2,1/4,1/8 的波形的频率,即时钟脉冲信号 CLK 频率除 2,4,8因此,我们 可以看到可用的信号 N 位计数器的频率除 20 后的结果。我们也可以看到,频 率的波形,Q(I)的波形的频率是 Q(1+ I)的 2 倍。 图 3.4 计数器时序仿真图 3.2.2 键盘扫描电路键盘扫描电路 键盘扫描信号(表 3.1 KY3-KY0)电路起到扫描电路的作用,信号的扫描 顺序“1110-1101-1011-0111-1110” ,一遍又一遍的扫描,周而复始。扫描时分 别扫描四个按钮,当扫描信号是 1110,扫描 KY3 此行的键。当扫描信号是 1101 扫描 KY2 此行的键。当扫描信号是 1011,扫描的 KY1 此行的键。当扫描 信号是 0111 扫描 KY0 此行的键。每当一排按钮扫描,检查是否有按键被按下, 如果此行的按钮没有被被按下就忽略。相反,如果一个按键被按下就立即编码 键盘操作动作,编码的结果存储在寄存器中。 3.2.3 弹跳消除电路 机械按钮采用开关结构,所以在开关接触点时刻,会来回反弹,所以可用 来激活关闭开关日光灯,电视和普通的电子设备。对通用电器并没有太大的影 响,但高灵敏度的电路可能会因为这种跳跃现象而导致故障,影响其准确性。 第三章 数码锁的电路设计 21 图 3.5 键盘扫描电路 表 3.1 按键位置和数码的关系 KY3-KY0KX3-KXO对应的按键 01111 10112 11013 1110 1110n 01114 10115 11016 1101 1110c 01117 10118 11019 1011 1110a 第三章 数码锁的电路设计 22 0111* 10110 1101# 0111 1110f 图 3.6 显示了反弹现象的原因,尽管只有一次按下按钮然后松手,但实际 的关键信号不只是跳动了一次,时间抽样检验就会导致误判,从而导致键盘被 按下了两次。 图 3.6 弹跳现象产生错误后的抽样结果 图 3.7 调整抽样频率后得到的抽样结果 如果采样频率被调整(图 3.7) ,我们可以发现反弹的现象已大大改善。 因此,必须增加弹跳消除电路,以避免发生信号的错误。这里指出,反弹 较高的脉冲频率应该比其他任何脉冲信号电路的频率更高。一般扫描电路或 LED 显示电路的工作频率设定在 24HZ,弹跳消除电路的工作频率约 125Hz 的 设置,这两个的工作频率通常高出四倍。图 3.8 显示了弹跳消除电路。 第三章 数码锁的电路设计 23 图 3.8 弹跳消除电路 首先将关键信号引致 KYE 引脚,CLK 是电路时钟脉冲信号,是大约为 Stns 的抽样信号。KYE 信号通过两个 D 触发器的延迟,然后再经 RS 触发器处 理。RS 触发器连接与非门的原则如下所述: (1) 按键的速度一般是 10 次/秒,一次按键的时间为 100ms,按下去所用时 间可估计为 50 毫秒。采样信号 CLK 频率为 8ms,即可采样 6 次。 (2) 对于 4ms 以下的不稳定的噪声信号,可以达到采样时间。 (3) 上述 R5 连接到 AND_NOT 后,RS 触发器的状态如表 3.2 所示。 即 D0D1= 11 时,SR= 10,DLY_OUT= 1。说明信号 KEY 进行采样两次, 所以确定了稳定的按钮。 当 DOD1=00,SR= 01,DLY_OUT= 0。表示信号 KEY 进行采样两次,0 键被释放,所以确定按键已稳定。 当 DOD1= 01 时,SR= 00,SR=10 和 DOD1 DLY_OUT 不改变。 SRDLY_OU T 00 不变 101 010 该电路的基础上,可以耦合一个微分电路,让各关键反应的时间长度保持 在脉冲波形的时间长度。图 3.9 可以看出,前后弹跳消除电路处理后的反弹已 被淘汰,原有的信号不会导致信号产生的错误操作。 表 3.2 SR 组态 第三章 数码锁的电路设计 24 图 3.9 弹跳电路时序仿真图 3.2.4 键盘译码电路 键盘上方的按钮,可以分为数字键和文字键,每个按键都有其相应的职能, 清除密码,切换,设置一个新密码,清除密码,解锁,开锁,上锁等。表 3.3 列出了相应的功能键。 数字键主要用于输入数字,但可以发现(在表 3.3 中)键盘产生的(KX3- KX0)生成输出。此外,不同的数字按键有不同的逻辑功能,键盘译码电路负 责规划每个按键的输出形式,以执行适当的行动。 3.2.5 按键存储电路 键盘电路在每次扫描的时候将产生一个新的关键数据,这会覆盖以前的数 据,所以你需要一个内存数据电路,来写下记忆电路,以便把键盘上的按键扫 描数据,用移位寄存器电路存储结果。 一般所常见的移位寄存器有以下几种: (1)串行输入/串行输出(SISO, Serial In/Serial Out)。所讲的 SISO 移位寄存 图3.10 键盘译码电路时序仿真图 第三章 数码锁的电路设计 25 器即数据是一个接着一个按顺序进来,输出采用先进先出的次序,输出也是后 进后出,一个接一个。 (2)串行输入/并行输出(SIPO, Serial In/Parallel Out)。 SIPO 移位寄存器 输入的数据是一个接一个按照顺序进来,输出则是一起被送出去。 (3)并行输入/串行输出(PISO, Parallel In/Serial Out)。PISO 移位寄存器输 入的数据是整组一起进来,输出是一个接一个顺序输出。 (4)并行输入/并行输出(PIPO,Parallel In/Parallel Out)。PIPO 移位寄存器 输入的数据是整组一起进来,输出是一整组被一起输出。 作为一个最基本的时序逻辑电路,在这里就不过多讨论移位寄存器。 3.2.6 键盘输入电路的整体的仿真 表 3.3 键盘参数表 扫描位值 KY3-KY0键盘输出 KX3-KX0 对应 按键 键盘译码电路输出按键功能按键功能 011101111 1N=0001N=0001 数码输入数码输入 101110112 2N=0010N=0010 数码输入数码输入 110111013 3N=0011N=0011 数码输入数码输入 11101110 11101110N NF=0101F=0101 开启显示器开启显示器 011101114 4N=0100N=0100 数码输入数码输入 101110115 5N=0101N=0101 数码输入数码输入 110111016 6N=0110N=0110 数码输入数码输入 11011101 11101110c cF=0110F=0110 总控键总控键 011101117 7N=0111N=0111 数码输入数码输入 101110118 8N=1000N=1000 数码输入数码输入 110111019 9N=1001N=1001 数码输入数码输入 101

温馨提示

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

评论

0/150

提交评论