




已阅读5页,还剩98页未读, 继续免费阅读
版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
毕业设计(论文) 基于 VHDL 的数码锁设计 学 院: 电气与电子工程学院 专 业: 电子信息工程 姓 名: 学 号: 指导教师: 2009 年 6 月 中文摘要 I 摘摘 要要 论文主要采用 EDA技术, VHDL语言设计数码锁。本设计采用数字系统设计方法中 的模块设计法,把数码锁的设计分模块分别用硬件描述语言VHDL来进行设计,并且分别进 行软件和硬件的仿真。主要的成果是:(1)改密码锁可设置四位密码,如果不设置密码 时,默认为 “0000” ;( 2)密码正确,锁打开;(3)密码错误,提示 “密码错误 ” ,要求重 新输入,上次输入错误,则发出报警信号,直到管理员终止此报警信号。 论文把密码锁的设计分为了三个大的模块:密码锁输入部分,密码锁控制部分, 密码锁显示和报警部分。其中密码锁控制部分是此次设计的核心部分,在整个系统中 占有重要的地位,涉及到密码锁的几个状态之间的转换,以及键盘按键的功能设计。 目前,计算机的应用己普及到人类生活中的各个领域,几乎各行各业的各种活动 都可以利用计算机。计算机之所以能够发挥巨大作用,软件的作用必不可少。做为人 类商品社会中的一种特殊的产品,软件生产难度大却复制容易;生产成本高但复制费用低。由 此造成世界范围内软件的非法复制现象很严重,许多人想方设法地复制别人的软件。 在这种形势下,软件的研制者或销售商为了维护自身的权益,不断采用先进的技术来 防止自己研究或销售的软件被无偿的复制。这就促使软件加密技术蓬勃发展,出现了 各种各样的软件保护技术。 关键词:关键词:VHDL,QUARTUS,数字密码锁 Abstract II Abstract EDA technology using paper, VHDL language design digital lock. The design uses a digital system design method of modular design method, the design of digital lock, respectively, sub-module VHDL hardware description language used to design, and separate software and hardware simulation. The main results are: (1) can be set to password-lock four password, if we do not set a password, the default is “0000“; (2) the password is correct, open the lock; (3) password error message “incorrect password“ request to re-enter the last input error, then issue a warning signal, until the administrator to terminate the alarm signal. At present, the application of computers has spread to human life in all fields of activities in almost all walks of life can use the computer. Computer is able to play a huge role, the role of essential software. As a human commodity society a special kind of products, software is difficult to reproduce easily; production costs are high but low-cost copying. Resulting worldwide illegal copying of software is rampant, many people try to copy someone elses software. Under such circumstances, the software developers or vendors in order to protect their own interests, Continued use of advanced technology to prevent their own research or sell a copy of the software was free. This has prompted the software encryption technology to flourish, there has been a wide range of software protection technology. Key words: VHDL, QUARTUS, digital code lock 目 录 III 目目 录录 摘 要.I ABSTRACTII 目 录.III 第一章 引 言.1 1.1 国内外的研究现状.1 1.2 课题的目的和意义.2 第二章 密码锁设计基础 .3 2.1 设计目标及方案.3 2.2 集成电路的设计流程.4 2.3 IP核复用技术.7 2.3.1 IP复用技术7 2.4 复杂可编程逻辑器件(CPLD)8 2.4.1 CPLD的基本特点8 2.4.2 MAX7000E功能描述 9 2.5 硬件描述语言11 2.5.1 Ve r i l og HDL语言.11 2.5.2 VHDL语言.12 2.5.3 Ver i l og HDL和VHDL的比较.13 第三章 数码锁的电路设计 .16 3.1 数码锁整体电路设计.16 3.2 密码锁输入电路.17 3.2.1 键盘接口电路.18 3.2.2 键盘扫描电路.21 3.2.3 弹跳消除电路.22 3.2.4 键盘译码电路.24 3.2.5 按键存储电路.25 3.2.6 键盘输入电路的整体的仿真.26 目 录 IV 3.3控制电路的设计.26 3.3.1 数字按键输入部分26 3.3.2 功能按键输入部分27 3.4 显示电路的设计.29 第四章 外围电路设计及整体电路.31 4.1 开锁电路的设计.31 4.2 报警电路的设计31 4.3 整体电路32 结 论.33 参 考 文 献.34 致 谢.35 附 录 第一章 引 言 1 第一章第一章 引引 言言 1.1 国内外的研究现状 随着电子技术的发展,电子锁的设计也在不断的发展。目前,市 场上的电子锁有键盘式电子密码锁、遥控式电子防盗锁、卡式电子防盗锁等。 80年代,在日本产生了最早的电子密码锁。随着日本经济复苏,电子行业的快速 发展,一些利用简单的门电路设计的密码锁出现了。这类电路安全性差,容易破解。到了90 年代,美国、意大利、德国、日本、加拿大、韩国以及我国的台湾、香港等地的微电 子技术的进步和通信技术的发展为密码锁提供了技术上的基础,从而推动密码锁走向 实际应用的阶段。 我国于90年代初开始对密码锁进行初步的探索。到目前为止,在此领域虽已有较 大的发展,采用各种电路进行设计的比较多,技术也相当先进,但是,我们必须正视 的一个事实是,出口产品中高档产品只占15%-20%,而我国高档产品在发达国家也只能 算是中档产品,价格低是普遍现象。此外,我国目前的出口产品,与国外产品相比, 无论是品牌知名度还是产品售价,我国产品有着非常大的差距。 电子技术发展至今已达到相当高的水平,电子密码锁技术己十分成熟。家庭、宾 馆已开始使用电子门,贵重物品、机密文件的保管也用到了电子密码锁,电子密码锁 控制器在现场与传感器及执行机构相连,进行状态监视和完成控制功能。小型便携的 新型装置,可广泛应用在各种场合,其结构简单、造价低廉、安全性好。通常电子密 码锁系统由电路部分和机械执行部分组成。电路部分有利用密码锁ASIC(专用集成电路 )芯片 控制、利用单片机控制以及逻辑门电路构成等多种方式。在现有的电子密码锁中,基 本上是用户由键盘通过接口电路将意图解锁码输入到控制器(主要由CPLD组成 )中,控制器 将输入的密码与电子锁内预置的开锁密码进行比较、鉴别,当确认完全一致时,送出 一个信号给功率放大器,然后由继电器带动机械执行部件开锁。输入的密码将被与电 子锁内预置的开锁密码进行比较。 1.2 课题的目的和意义 随着社会物质的财富的日益增长,安全防盗已成为全社会的问 第一章 引 言 2 题。人们对锁的要求越来越高,既要安全可靠的防盗,又要使用方便。电子密码锁由于其自 身的优势,越来越受到人们的青睐,但是目前使用的电子密码锁大部分是基于单片机用分离 元件实现的,其成本较高且可靠性的得不到保证。 本次设计采用 EDA技术,利用 QUARTUS 工作平台和 VHDL语言, 应用一个CPLD 芯片实现 一种与单片机控制完全不同的电子数码锁。该设计较运用单片机设计电路更加 简单, 使用方便。 第二章 密码锁设计基础 3 第二章第二章 密码锁设计基础密码锁设计基础 2.1 设计目标及方案 从密码锁的发展现状来看,机械密码锁通常包含复杂的机、电功能组件,需借助 先进的制造技术与装配工艺,制造周期长、成本高。卡片式密码锁是卡片设备,易磨 损,寿命较短,卡片容易复制,不易双向控制,磁卡内存储的信息容易因外界磁场干 扰而错乱,以致卡片(钥匙 )无效。指纹密码锁从使用是否方便的角度看,对安装环境和 使用者的要求很高,同一个人,在指纹划伤,无法开锁。还有市面上利用单片机控制 的电子密码锁,也存在一些缺点: (1)利用 单片机 设计的密码锁其 逻辑性 能相对 比较弱。 (2)利用单片机设计需要外部电路较多,这样 使得安全性 差, 密码 容易破解。 (3) 在输入密码 时容易失误 。 (4)电路结构复杂,要利用单独的存储器才能完成。 所设计电子密码锁系统设计目标: (1)所设计的产品需要的设计环境相对较低,容易实现,成本较低。 (2) 产品性能稳定可靠,安全性能有保证。 (3)使用方便,带固定键盘进行密码的设定。 (4)在掉电情况下,原设定密码保持不变,用户可根据需要随时改变密码。 (5)密码锁采用串行累加计数的方式输入十进制数字口令,可设置任意位密码。 (6)输入的口令及口令的位数均正确即可开锁。 (7)允许密码输入错误的最大次数为三次,口令错误次数超过三次则进入死锁状态, 要发生警报。 电子密码锁系统设计方案: (1)利用VHDL硬件描述语言实现对可编程门阵列和复杂可编程逻辑器(CPLD:Complex Programmable Logic Device)的控制来实现。 第二章 密码锁设计基础 4 (2)过程中采用 QUARTUS II进行仿真。 (3) IC集成电路采用正向设计“自顶向下 ”的正向设计的设计流程。 2.2 集成电路的设计流程 芯片设计 m通常分为正向设计与逆向设计两大类。正向设计通常用来实现一个新 的设计,而逆向设计是在剖析别人设计的基础上进行某种修改和改进。在这两大类中又可分为 “自顶向下 ” ,Top-down)和“由底向上 ”(bottom-up)不同的步骤,表 2.1。 表2.1“自顶向下 ”和“由底向上 ”设计 高层次设计是一种 “自顶向下 ”的全新设计方法,这种设计方法首先从系统设计入手,在顶 层进行作用方框图的划分 和结构设计。在方框图一级进行仿真、纠错,并用硬件描述语言对 高 层次的系统行为进行描述,在系统一级进行验证。然后,用综合优化工具生成具体门电路 的网 络 表,其对应的物理实现级可以是印刷电路板或专用集成电路。由于设计的主要仿真和 调试 过程是在高层次上完成的,这既有利于早期发现结构设计上的错误,避免设计工作的浪费,又 减少了逻辑作用仿真的工作量,提高了设计的一次成功率。对于 “由底向上 ”的正向 设计, 是在系统划分和分解的基础上先进行单元设计,在单元精心设计逐步向上进行功能块、子系统 设计以至到最终的系统总成。在正向设计时,也往往把“自顶向下 ”和“由底向上 ”两者结 合起来完成一个芯片设计。对于逆向设计,无论是“自顶向下 ”还是 “由底向上 ” ,开始 的版 图解剖、电路图提取和功能分析这几步都是必需的,在此之后才进行不同的处理。通常情况下 都是采用 “自顶向下 ”的正向设计。下面就劝“自顶向下 ”的正向设计的设计流程进行详细说明 见图2.1。 方法 步骤自顶向下 由底向上 正向设计 行为设计 结构设计 逻辑设计 电路设计 版图设计 系统划分 单元设计 功能设计 子设计系统 系统组成 逆向设计 版图解析 电路图提取 功能分析 逻辑修改 逻辑设计 电路设计 版图设计 版图设计 电路图提取 功能分析 单元设计 功能块设计 子系统设计 系统设计 第二章 密码锁设计基础 5 集成电路设计过程从给出芯片的设计要求开始到芯片封装结束要经过一系列步骤,简括 如 下: (1)系统规范说明 (system specification)IC设计首先要给出待设计系统的规范说明,包括系统 功能、性能和物理尺寸。而且还需考虑选择设计模式和制造工艺,最终目的是确定芯片尺寸、 工作速度、功耗和系统功能。 (2)功能设计 (function design)此步骤主要考虑系统的行为特性,常用的方法是时序图或者表 示各子模块间关系的关系图。利用这些信息可以改进整个设计程序或简化后续的设计步骤。 (3)逻辑设计 (logic design)此步骤可以得到一个表示系统功能的逻辑结构并反复测试其正确 性。 设计者通常用文本、原理图或逻辑图表示设计,有时也用布尔方程表示设计。在设计过程 中, 我们还要对该逻辑结构进行模拟以验证其正确性,并对其进行优化设计或称之为逻辑最 小化。 (4)电路设计 (circuit design)电路设计时要考虑逻辑部件的电路实现,包括速度和功耗。此外, 还要注意各种元件的电气性能。通常用详细的电路图来表示电路设计。 (5)物理设计 (physical design)物理设计即版图设计,是 IC设计中最费时的一步。物理设计要 把每个元件的电路表示转换成几何表示,同时,元件间连接的线网也被转换成几何连线图形。 电路的这种几何 表示称为版图。版图设计要符合与制造工艺有关的设计规则要求。由于版图 的 设计复杂性,往往把版图设计分成若千子步骤进行,即划分、布图、布线。 第二章 密码锁设计基础 6 功能设计 逻辑设计 电路设计 物理设计 设计验证 芯片制造 测试封装 X= (AB *CD ) + ( A + D ) + ( A ( B + C ) ) 图2.1“自顶向下 ”正向设计的设计流程图 (6)设计验证 (design verification)在版图设计完成并得到以几何图形形式表示的版图后,要进 行 设计验证,也称版图验证,以确保版图满足制造工艺要求和符合系统的设计规范。版图验 证包 括设计规则检查 (DRC)、电学规则检查 (ERC),版图与电路图一致性检查(LVS),有的还需 做版图 参数提取 (LPE)。经过验证后的版图可以送去制作模版并用于制造芯片。 (7)制造 (fabrication)芯片制造过程包括硅片准备、杂质注入、扩散、光刻等工艺。 (8)封装和测试 (package and test)在完成芯片制造后,要进行封装和测试.安置在印制电路板 (Printed Circuit Board, CB)上的芯片可封装成双列直插式(Dual In-line Pin, DIP)或引脚阵列式 (Pin Grid Array, PGA).用于多芯片模块 (Multiple-Chip module, MCM)上的芯片可不封装。 系统描述 第二章 密码锁设计基础 7 IC设计可能会在一个步骤中或在几个步骤之间反复交替进行,最后实现最优设计。 2.3 IP核复用技术 当集成电路设计越来越向高层发展的时候,基于 IP复用的设计越来越显示出其优越性。 将来的IP核将会象现在的逻辑门一样方便使用。 2.3.1 IP复用技术 IP(Intellectual Property)原来的含义指知识产权、著作权等,在IC设计领域可理解为实现某 种功能的设计。 IP核(IP模块 )则指完成某种功能的虚拟电路模块,也可称虚拟部件(VC Virtual Component)。 IP核通常分为硬核、固核和软核三种类型。软核指的是在寄存器级或门级对电路功能用 HDL进行描述。表现为 VHDL或Verilog HDL代码。用户可修改软核以满足自己所需要的功 能。软核主要用于接口、算法、编译码和加密等模块设计。硬核指以版图形式描述的设计模 块, 它基于一定的设计工艺,而且用户不能改动。用户得到的硬核仅是产品的功能,而不是 产品的 设计。常用的硬核有存储器、模拟器件和一些接口等。 固核介于软核和硬核之间,允许用户重新定义关键的性能参数,内部连线也可以重新优化。 一般软核的开发成本相对较低,使用灵活,但其可测性差,延时不一定能达到要求;而 硬 核的开发成本较高,但它的可测性强,可靠性高,能够很快地投入使用;固核介于两者之 间。 基于 IP复用的开发给设计都带来很大的方便,可以节省时间,缩短开发周期,避免重复 劳动等。可见,基于 IP复用的设计技术将成为 IC设计的主流技术之一。 2.4 复杂可编程逻辑器件( CPLD) 2.4.1 CPLD的基本特点 复杂可编程逻辑器 (CPLD: Complex Programmable Logic Device)都是近年来发展迅速的大规 模可编程专用集成电路(ASIC)。可编程 ASIC器件的使用,是电子产品领域的一场革命。它使 设计的电子产品达到小型化、微型化、集成化、高可靠性、低功耗以及成本低、重量轻、体 积 小、工作速度快、保密程度高,这些极大地提高了产品的性能价格比和竞争能力,而 CPLD器 件的在系统可编程技术使可编程器件在使用上更为方便,并大大缩短了 设计周期,减少了 设计 第二章 密码锁设计基础 8 费用,降低了设计风险。目前, CPLD器件的应用己十分广泛,已成 为电子系统设计的 重要 手 段。复杂可编程逻辑器 CPLD是一种 高集成度高密度的可编程逻辑 器件。从 Xilinx公司 推出 第 一片CPLD以来, CPLD的集成密度和性能 提高很快,其集成 密度最高达 100万门2片, 系统 性能可达 200MH。 CPLD是由GAL发展起来的,其主体结构仍是与或阵列,自从 1992年 LATICE公司高性能的具有在系统可编ISP(In System Programmable)功能的CPLD出现以来, CPLD发展迅速,具有 ISP功能的CPLD器件由于具 有同FPGA器件相似的集成度和同样的易 用性,在速度上有一定的优势,使其在可编程逻辑器件技术的竞争中与 FPGA并驾齐驱, 共同 发展。 I/O I/O FB FB FB FB FB FB FB FB FAST CONNECT SWITCH MATRIX 图2.2 CPLD内部结构原理图 CPLD器件是将多个可编程阵列逻辑(PAL)器件集成到一个芯片内,因而其具有类似PAL 的结构。一般, CPLD器件至少包括以下三个部分:可编程逻辑功能块 (FB):可编程I/O单元 :可编 程内部连线。 FB中包者有乘积项、宏单元等。有的CPLD还集成了 RAM.FIFO或双口RAM 等存储器,以适应 DSP应用设计的要求。图 2.2是CPLD的结构原理图。 2.4.2 MAX7000E功能描述 设计中采用的是 MAX7000E系列器件, MAX7000E系列器件是以第二代多阵列矩阵 (MAX)结构为基础,是一种高性能的CMOS EEPROM器件, MAX7000E系列器件通过 JTAG 第二章 密码锁设计基础 9 接口可实现在线编辑,MAX7000E系列器件内置 JTAG BST电路,逻辑密度为 600-5000个可 用门,引脚到引脚的逻辑延迟为5.Ons,计数 器工作频率达 178.6MHZ。遵守 PCI规定。 MAX7000E系列器件具有专用清除、置位、时钟使能控制,图 2.3MAX700E的结构方块 图。 MAX7000E宏单元能够单独地配置时序逻辑和组合逻辑工作方式。宏单元由三个功能块组 成:逻辑阵列、乘积项选择矩阵和可编程触发器。MAX700E的宏单元如图 2.3所示。 图2.3 MAX700E的结构方块图 逻辑阵列用来实现组合逻辑,它给每个宏单元提供5个乘积项。“乘积项选择矩阵 ”分配这 些乘积项作为到 “或”门和 “异或 ”门的主要输入,以实现组合函数;或者把这些乘积项作为宏单元 中触发器的辅助输入:清除、置位、时钟和时钟使能控制。每个宏单元的一个乘积项可以反相 送 到逻辑阵列。这个 “可共享 ”的乘积项能够连到同一个逻辑阵列块中的任何其它乘积项上。根 据 设计的逻辑需要, QUARTUS II能自动地优化乘积项的分配。 作为寄存器功能,每个宏单元触发器可以单独地编程为具有可编程时钟控制的D,T, JK、 或RS触发器工作方式。如果需要的话,可把寄存器旁路,以实现组合逻辑工作方式。在设计 输入时,用户规定所希望的触发器类型,然后,QUARTUS II对每一个寄存器功能选择最有效 第二章 密码锁设计基础 10 的触发器工作方式,以使设计所需器件资源最少。 每个可编程触发器可以按 3种不同的方式实现时钟控制: (1)全局时钟信号。这种方式能达到最快的时钟到输出的性能。 (2)全局时钟信号由高电平有效的时钟信号所使能。这种方式为每个触发器提供使能信号, 并仍能达到全局时钟的快速时钟到输出的性能。 (3)用乘积项实现阵列的时钟.在这种模式下,触发器由来自隐含的宏单元或 拍引脚的信 号进行时钟控制,图 2.4宏单元内部结构图。 图2.4宏单元内部结构图 2.5 硬件描述语言 硬件描述语言是一种用文本形式来描述和设计电路的语言。设计者可利用HDL语言来描 述 自己的设计,然后利用 EDA工具进行综合和仿真,最后变成某种目标文件,再用ASIC或 FPGA具体实现。据统计,目前美国硅谷约有80%的ASIC和FPGA是采用HDL方法设计的 方法。 HDL语言有如下特点 : (1) HDL以行为描述见长,它能从比较抽象的角度描述硬件的行为。 (2) HDL是结构化语言,可从较具体的角度描述硬件结构。 第二章 密码锁设计基础 11 (3) HDL具备了从比较抽象到比较具体的多个层面上对电子实体进行描述的能力。 (4) HDL的生命力在于用它描述实体的程序,既能被模拟(simulation),又能被综合 (synthesis)。 通过模拟,可验证设计的正确性;通过综合,抽象的设计描述将自动地自上而下地转化为 实在的物理设计 逻辑图、电路图,直至版图。HDL和传统的原理图输入方法的关系就好 比 是高级语言和汇编语言的关系。HDL的可移植性好,使用方便,但效率不如原理图;原理图 输 入的可控性好,效率高,比较直观,但设计大规模 CPLD/FPGA时显得比较烦琐。 在真正的 PLD/FPGA设计中,通常采用原理图和HDL结合的方法来设计,适合用原理图的地方就用原 理图,适合用 HDL的地方就用 HDL,并没有强制的规定。我们的最终目的是在最短的时间 内。 用自己最熟悉的工具设计出高效,稳定,符合设计要求的电路。 2.5.1 Ve r i l og HDL语言 任何新生事物的产生都有它的历史沿革,早期的硬件描述语言是以一种高级语言为基础, 加上一些特殊的约定而产生的,目的是为了实现RTL级仿真,用以验证设计的正确性,而不 必像在传统的手工设计过程中那样,必须等到完成样机后才能进行实测和调试。 Verilog HDL就是在使用最广泛的 C语言的基础上发展起来的一种软件描述语言,它是由 GDA(Gateway Design Automation)公司的PHIIMOORBY在1983年末首创的,最初只设计了一 个仿真与验证工具,之后又陆续开发了相关的故障模拟与时序分析工具。1985年MOORBY推 出它的第三个商用仿真器 Verilog-XL,获得了巨大的成功,从而使得Verilog HDL迅速得到 推 广应用。 1989年CADENCE公司收购了 GDA公司,使得 Verilog HDL成为了该公司的独 家专 利。 1990年CADENCE公司公开发表了 VerilogHDL,并成立 LVI组织以促进 Verilog HDL成 为IEEE标准,即 IEEE Standard 1364-19950。 Verilog HDL是目前应用最广泛的一种硬件描述语言,它的最大特点就是易学易用,如果有 C语言的编程经验,可以在一个较短的时间内很快的学习和掌握。Verilog HDL可以用来进行 各种层次的逻辑设计,也可以进行数字系统的逻辑综合、仿真验证和时序分析等。 Verilog HDL适合算法级 (Algorithm)、寄存器传输级 (RTL)、逻辑级 (Logic)、门级 (Gate)和 板图级 (Layout)等各个层次的设计和描述。具体如表2.2所示。 表2.2 不同层级的描述方式 第二章 密码锁设计基础 12 设计层次行为描述结构描述 系统级系统算法系统逻辑图 寄存器输出级数据流图 真值表 状态机 寄存器 ALUROL 等 分模块描述 门级布尔方程真值表逻辑门触发器锁存器 构成的逻辑图 板图级几何图形图形连接关系 2.5.2 VHDL语言 VHDL是超高速集成电路硬件描述语言的简称,它是目前标准化程度最高的一种硬件描述 语言。 VHDL最初由美国提出,并把这个任务交给了TI.IBM和IIVTERMETRICS公司。 1987 年12月, IEEE接受VHDL为标准的 HDL,这就是 IEEEStd1076-1987LRM87,后来做 了些修 改,增加了些功能,形成新的版本TEEESTD1076-1993LRM931。VHDL87和VHDL93不完 全兼容,但可对 VHDL87的源代码进行少量简单修改转变成合法的VHDL93代码。 VHDL是一种全方位的硬件描述语言,包括从系统到电路的所有设计层次。在描述风格上, VHDL支持结构、数据流和行为三种描述形式的混合描述。行为描述以过程语句来表达,数 据 流描述实际上是 RTL级语言的扩展,因此 VHDL几乎覆盖了以往各种语句描述语言的功 能, 整个自顶向下或由底向上的电路设计过程都可以用VHDL完成。 VHDL除具备一般的 HDL优 点外,其特殊的优点是: (1)通用性好,支持面广。由于它是工业标准,凡大型CAD软件都推出支持 VHDL的设计 环境。因此用 VHDL描述的设计文件,可用不同的设计工具。 (2)重用性好。在用 VHDL语言设计系统硬件时,没有嵌入与工艺有关的信息。当门级或门 级以上的层次通过仿真验证后,再用相应的工具将设计映射成不同的工艺(如MOS.CMOS等)。 这样,在工艺更新时,就无须修改原设程序,只要改变相应的映射工具就行了。因此 VHDL设 计模块便于在不同的设计场合重复使用。 (3)可靠性好。 VHDL文件兼技术文档与实体设计于一身,可读性好,既是技术说明,又 第二章 密码锁设计基础 13 是设计实现,从而保证了二者的一致性。 2.5.3 Ver i l og HDL和VHDL的比较 目前最主要的硬件描述语言是VHDL和Verilog HDL。 VHDL发展的较早,语法严格, 而Verilog HDL是在C语言的基础上发展起来的一种硬件描述语言、语法较自由(目前ASIC设 计多采用 Verilog语言 )。VHDL和Verilog HDL两者相比, VHDL是一种高级的描述语言,通 常更适合行为级和 RTL级的描述,可以用于高级建模,而VerilogHDL则是一种比较低级 的描 述语言,更适合于 RTL级,尤其是门级电路的描述,易于控制电路的资源。另外,从两种语 言推进的过程来看,VHDL偏重标准化考虑,而 Verilog语言由于是在 Cadence扶植 下针对 EDA工具开发的硬件描述语言,因此,跟EDA工具的结合更为密切。学习VHDL比学习 Verilog难一些,但 Verilog自由的语法也使得的初学者容易上手但也容易出错。国外电子专业 很多在本科阶 段教授VHDL,在研究生阶段教 Verilog。从国内来看, VHDL的参考 书很多, 便于查找资料,而 Verilog HDL的参考书则很少,这给学习Verilog HDL带来不少困 难。结合 两者的优点,经常采用 VHDL和Verilog HDL两种混 合语言进行电子线路描述,使得利用语 言 描述硬件的效果更佳。 2.6 QUARTUS 的简介 Quartus II 是Altera公司的综合性 PLD开发软件,支持原理图、VHDL、VerilogHDL以 及AHDL(Altera Hardware Description Language)等多种设计输入形式,内嵌自有的综合器以 及仿真器,可以完成从设计输入到硬件配置的完整PLD设计流程。 Quartus II可以在XP、Linux以及Unix上使用,除了可以使用 Tcl脚本完成设计流程外, 提供了完善的用户图形界面设计方式。具有运行速度快,界面统一,功能集中,易学易用等特 点。 Quartus II支持Altera的IP核,包含了 LPM/MegaFunction宏功能模块库,使用户可以充分 利用成熟的模块,简化了设计的复杂性、加快了设计速度。对第三方EDA工具的良好支 持也 使用户可以在设计流程的各个阶段使用熟悉的第三放EDA工具。 此外, Quartus II 通过和DSP Builder工具与Matlab/Simulink相结合,可以方便地实现各 种DSP应用系统;支持 Altera的片上可编程系统(SOPC)开发,集系统级设计、嵌入式软件 开发、可编程逻辑设计于一体,是一种综合性的开发平台。 第二章 密码锁设计基础 14 Maxplus II 作为Altera的上一代 PLD设计软件,由于其出色的易用性而得到了广泛的应 用。目前 Altera已经停止了对 Maxplus II 的更新支持, Quartus II 与之相比不仅仅是支持器件类 型的丰富和图形界面的改变。Altera在Quartus II 中包含了许多诸如 SignalTap II、Chip Editor和 RTL Viewer的设计辅助工具,集成了 SOPC和HardCopy设计流程,并且继承了 Maxplus II 友 好的图形界面及简便的使用方法。 Altera Quartus II 作为一种可编程逻辑的设计环境, 由于其强大的设计能力和直观易用的接 口,越来越受到数字系统设计者的欢迎。 Altera的Quartus II可编程逻辑软件属于第四代PLD开发平台。该平台支持一个工作组环 境下的设计要求,其中包括支持基于Internet的协作设计。 Quartus平台与 Cadence、ExemplarLogic、 MentorGraphics、Synopsys和Synplicity等EDA供应商的开发工具 相兼容。改进了软件的 LogicLock模块设计功能,增添 了FastFit编译选项,推进了网络编辑性 能,而且提升了调试能力。支持MAX7000/MAX3000等乘积项器件。 QuartusII设计软件根据设计者需要提供了一个完整的多平台开发环境,它包含整个FPGA 和CPLD设计阶段的解决方案。图 3.1说明了QuartusII软件的开发流程。 第二章 密码锁设计基础 15 图2.6 QuartusII软件开发流程 第三章 数码锁的电路设计 16 第三章 数码锁的电路设计 3.1 数码锁整体电路设计 四位数字电子密码锁主要由三部分组成:数码锁输入电路;数码锁的控制电路;输出 七段显示电路。再辅助相应的外围电路就可实现完整的电子密码锁功能。键盘接口电 路包括时序产生电路,键盘扫描电路,弹跳消除电路,键盘译码电路。数码锁控制电 路设计包括数字按键的数字输入、存储和清除;功能按键的功能设计;移位寄存器的 设计和控制 ;密码清除、变更、存储、激活电锁电路、报警信号产生及电锁控制电路; 密码核对、解除电锁输出七段显示电路包括数据选择电路,ICD对七段显示器译码电路,七 段显示器扫描电路。数码锁系统总体框图如3.1所示。 数字密码锁使用的电源为正5V直流电,使用的原始时钟频率为4MHZ,它具有下述功能 : 数码输入,每按下一个数字键,就输入一个数值,并在显示器上的最右方显示出该数 值,并将先前己经输入的数据依序左移一个数字位置。 数码清除 :按下此键可清除前面所有的输入值,清除为“0000” 。 密码设置 :按下此键时会将当前的数字设定成新密码。 解除密码 :按下此键时会将当前的解锁码与所设密码进行比较,如果一致可得相应的 开锁信号。 总控电锁 :按下此键可将密码锁上锁或者开锁。 系统报警 :连续开锁三次失败后,第四次开锁时,系统报警。直到管理员终止次报 警信号。 第三章 数码锁的电路设计 17 图3.1 数码锁系统总体框图 3.2 密码锁输入电路密码锁输入电路 时钟脉冲信号 扫描信号 图3.2 输入电路框图 输入电路采用键盘输入方式,操作简单,使用方便。输入电路框图如图3.2所示。 弹跳消 除电路 报警电路 键盘译 码电路 按键数 据缓存 器 键盘扫描电路 1 c65 a98 f#0 n32 4 7 * 第三章 数码锁的电路设计 18 3.2.1 键盘接口电路 (1)矩阵式键盘工作原理 矩阵式键盘采用常用的格式,4x4矩阵键盘的面板配置见图 3.2.1。 图3.2.1 4*4 矩阵键盘的面板配置 键盘上的每一个按键是一个开关电路,当某按键被按下时,该按键的接点会呈现逻辑0的 状态,未按下时则呈现逻辑1状态。扫描信号由 KY3-KY0进入键盘 (见图3.2)。变化的顺序 依 次是1110-1101-1011-0111-1110。每次扫描一排,依序地周而复始。例如现在的扫描信号为 1101,代表目前正在扫描“4” 、 “5” 、 “6” 、 “C”这一排按键,如果这排当中没有按键被按下的 话,则由 KX3-KX0读出的值为 11111 反之,当 “6”按键被按下时,则由 KX3-KX0读出的 值为1101,同理可列出其它按键与数码的关系,如表3.1所示。 如果KX3-KX0读出的值为 1111时,代表该列没有按键被按下,则不进行按键编码的动作, 反之如果有按键被按下时,则将KX3-KX0读出的值送至译码电路进行编码。 由于矩阵式键盘是无法独自地完成按键工作的,因此需搭配时序产生电路、键盘扫描电 路、 弹跳消除电路、键盘译码电路、按键存储电路以完成正确的键盘输入工作。 (2)时序产生电路 第三章 数码锁的电路设计 19 时序逻辑电路简称时序电路,其结构特点是由存储电路和组合电路两部分组成,或通俗 地说由触发器和门电路组成,如图3.3所示。时序电路的状态是由存储电路来记忆的,因而在 时序逻辑电路中,触发器是必不可少的。 输入 输出 存储电路 组合电路 图3.3时序逻辑电路的结构框图 由于本电路系统使用三种不同操作频率的脉冲波形,它们分别是:系统时钟脉冲(它是系 统内部所有时钟脉冲的源头、频率最高)、弹跳消除取样信号、键盘扫描信号和七段显示器扫 描信号 (两者使用相同的时钟脉冲信号)。因此可利用一个自由计数器来产生各种所需要的频率。 这是一个 N位的计数器。 N的大小由电路的需求而定。N值越大,除频的次数越多,可以 获得更大的频率变化,但相对的电路合成后所占的空间也越大。利用仿真软件来进行仿真,几 乎每个公司的 EDA产品都有仿真工具。Verilog-XL, NC-verilog用于Verilog仿真, Leapfrog用 于VHDL仿真, Analog Artist用于模拟电路仿真。Viewlogic的仿真器有: viewsim门级电路仿 真器, speedwaveVHDL仿真器, VCS-verilog仿真器。 Mentor Graphics有其子公司 Model Tech 出品的VHDL和Verilog双仿真器: Model Sim.Cadence, Synopsys用的是VSS(VHDL仿真器 )。 现在的趋势是各大 EDA公司都逐渐用 QUARTUS仿真器作为电路 验证的工具。 从波形图 3.4可以看出, q0, q1, q2.得到的波形频率是时钟脉冲信号的1/2,1/4,1/8, 第三章 数码锁的电路设计 20 也就是将时钟脉冲信号 CLK频率除2、除4、除8。由此可知,对于 N位计数器可获得的 信 号至多是频率除 20结果,并且我们可知,q(I)得到的波形频率是 q(I+1)得到波形频率的 2倍。 图3.4 计数器时序仿真图 表3.1 按键 位置 与数码 的关系 第三章 数码锁的电路设计 21 3.2.2 键盘扫描电路 扫描电路的作用是用来提供键盘扫描信号(表3.1中的KY3-KY0)的电路,扫描信号变化 的顺序依次为 “1110-1101-1011-0 111-1110” ,周而复始。扫描时依序分别扫描四列按键,当扫 描信号为 1110时,扫描 KY3这一排按键。当扫描信号为1101时,扫描 KY2这一排按 键。当 扫描信号为 1011时,扫描 KYl这一排按键。当扫描信号为0111时,扫描 KY0这一排 按键。 每扫描一排按键,就检查一次是否有按健被按下,如果这排没有按键被按下就忽略。反之,如 果出现被按下的键则立即进行按键盘编码的动作,且将编码的结果存储于寄存器中。 3.2.3 弹跳消除电路 因为按键采用机械式开关结构,在开关切换的瞬间会在接触点出现来回弹跳的现象,对 于 激活关闭一般电器如开关日光灯、电视等一般电子用品,并不会有何影响,但对于灵敏度较高 的电路,这种弹跳现象却可能造成误动作而影响到正确性。 图3.6说明弹跳现象产生的原因,虽然只是按下按键一次然后放掉,然而实际产生按键信 号却不只是跳动一次,经过取样的检查后,将会造成误判,以为键盘按了两次。 图3.5 扫描电路时序仿真 第三章 数码锁的电路设计 22 如果调整取样频率 (如图3.7),可以发现弹跳现象获得了改善。 必须加上弹跳消除电路,以避免发生误操作信号。请注意,消除脉冲信号电路的频率应 该 比其他任何电路的脉冲频率都要高。一般把扫描电路或每个 LED显示电路的工作频率设置 在 24HZ左右 ,弹跳消除电路的工作频率设置 约为125Hz,一般 工作频率通常高出 平常的 四倍。 图3.8消除弹跳的电路 图。 图3.6 弹跳现象产生错误的抽样结果 图3.7 调整抽样频率后得到的抽样结果 图3.8 弹跳消除电路 第三章 数码锁的电路设计 23 先将按键信号引至 KEY脚,其中 CLK是电路的时钟脉冲信号(作为取样信号,约为 Stns 左右 ).KEY信号经过两级的 D触发器延迟后,然后再用 RS触发器处理。 此处RS触法器连接 与非门的原则是: (1) 一般人的按键速度是 10 次/秒,即一次按键的时间是 100ms,而按下时所用的时间可估计为 50 毫秒。采样信号 CLK 频率为 8ms,所以可以取样到六倍。 (2)对于不稳定的嗓声在 4ms以下,则至多可取样一次。 (3)上述R5触发器之前接上 AND_NOT后, SR的组态只有如表 3.2。 即D0D1=11时, SR=10, DLY_OUT=1。表示KEY信号能被取样到连续两次 1,所以 认 定已是稳定放开按键。 当DOD1=00时, SR=01,DLY_OUT=0。表示KEY信号能被取样到连续两次 0,所以认 定己是稳定放开按键。 当DOD1=10以及DOD1=0l时, SR=00, DLY_OUT=不变。 在此电路基础上再组合一个微分电路,目的是让每一次对按键反应的时间长度都维持在 一 个脉冲波形的时间长度。 从图3.2.3可看出,原本前后弹跳的信号经过弹跳消除电路 处理后都已经被消除将不会导 致误操作信号的产生。 SRDLY_OUT 00 不变 101 010 表 3.2 SR 组态 第三章 数码锁的电路设计 24 图3.2.3 弹跳电路时序仿真图 3.2.4 键盘译码电路 上述键盘中的按键可分为数字按键和文字按键,每个按健都有自己相应的功能,比如清除 数码、切换、设置密码、解除密码、开锁、上锁等。表3.3列出各键相应的功能。 数字按键主要用来输入数字,但从表3.3中可发现,键盘所产生的输出(KX3-KX0)无法拿 来直接使用。另外,不同的数字按健也担负不同的功能,因此必须由键盘译码电路来规划每个 按健的输出形式,以便执行相应的动作。 3.2.5 按键存储电路 键盘电路由于每次扫描会产生新的按键数据,可能会覆盖前面的数据,因此需要一个按 键 存储电路,将整个键盘扫描完毕后的结果记下来,按键存储电路可由移位寄存器构成。 常见的移位寄存器主要有以下四种: (1)串行输入 /串行输出 (SISO, Serial In/Serial Out)。所谓的 SISO移位寄存器即数据是一个 接着一个依序进来,输出采用先进先出的顺序,同样是一个接着一个依序输出。 表3.3 键盘参数表 图3.2.4 键盘译码电路时序仿真 第三章 数码锁的电路设计 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.2.6.1 数字键时序仿真图 第三章 数码锁的电路设计 26 3.3控制电路的设计 电子密码锁的控制电路设计,是整个电路的中心环节,本章将做详细阐述。 3.3.1 数字按键输入部分 (1)如果输入数字键,第一个数字会从显示器的最右端显示,每按一个数字显示器上的数字 往左移动一格,以便将新数字显示出来。 (2)如果想更改输入的数字,按清除键清除所有输入的数字,再重新输入4位数。 (3)因为设计的是 4位的电子密码锁,当输入的数字按键超过4个,电路不予理会,且不 显第4个以后的数字。 3.3.2 功能按键输入部分 此4位电子密码锁具有如下功能: (1)清除键 :清除所有输入的数字,即做归零的动作。 (2)密码核对 :在密码变更,解除电锁之前,必须先核对密码是否正确。 (3)解除报警键
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 教师招聘之《小学教师招聘》题库及参考答案详解【巩固】
- 教师招聘之《小学教师招聘》考前冲刺练习题汇编附答案详解
- 有线网络创新创业项目商业计划书
- 教师招聘之《小学教师招聘》题库及参考答案详解(突破训练)
- 2025年教师招聘之《幼儿教师招聘》考前冲刺练习题附参考答案详解(培优)
- 教师招聘之《小学教师招聘》题库检测试题打印及参考答案详解【能力提升】
- 2025年教师招聘之《幼儿教师招聘》题库检测试卷及答案详解(全优)
- 2025年教师招聘之《幼儿教师招聘》基础试题库带答案详解(新)
- 教师招聘之《幼儿教师招聘》强化训练题型汇编带答案详解(a卷)
- 教师招聘之《小学教师招聘》能力测试B卷附完整答案详解(典优)
- 基础公共卫生知识试题及答案
- AI赋能与素养导向:初中英语智慧课堂的融合实践研究
- 沪教版初中英语九年级上册知识点
- 2025年高考语文备考之语用新题型得名方式、构词方式辨析专题指导与巩固训练
- (2025)中国汉字听写大赛全部试题库及答案
- spd服务合同标准文本
- 装饰装修工程投标书范本
- 免疫定性实验性能验证
- 在线网课学习课堂《人工智能(北理 )》单元测试考核答案
- 公司组织结构调整与管理流程优化
- 运用小组合作学习,打造美术有效课堂
评论
0/150
提交评论