电子密码锁设计设计48590542.doc
《电子密码锁设计设计48590542.doc》由会员分享,可在线阅读,更多相关《电子密码锁设计设计48590542.doc(34页珍藏版)》请在三一文库上搜索。
1、电子密码锁设计 - 1 - 电子密码锁设计电子密码锁设计 摘要:本课题设计的主要是基于CPLD/FPGA来实现电子密码锁的设计,主要包括 输入、控制和输出三大模块。其中输出部分由显示缓冲器、多路选通器、显示 模块、时钟发生器、扫描信号发生器组成。显示缓存器是一个存储量为16位的 寄存器,它用于存储LED显示的内容。多路选通器用于从显示缓存器中选择出某 一个LED的内容用于显示。扫描信号用于选择片选信号,片选信号依次并循环地 选通各个LED管时钟发生器,通过对全局时钟的分频得到扫描模块所需的时钟。 显示模块由七段译码器和七段显示器组成。总体上输出部分电路的设计都是基 于VHDL语言来实现的。 关
2、键词:电子密码锁 FPGA 硬件描述语言 EDA 电子密码锁设计 - 2 - 目录 1 引言2 2 概述4 2.1 MAX+PLUS的概述.4 2.1.1 设计输入.5 2.1.2 设计处理.6 2.1.3 设计校验.7 2.2 MAX+PLUS II 软件的设计流程.8 2.3VHDL 语言简介.9 2.3.1 CPLD/FPGA11 2.3.2 VHDL 的优点12 3 总体设计13 3.1 系统框图13 3.2 系统说明14 3.2.1 系统原理.14 3.2.2 各部分作用15 3.3 总体电路说明18 3.3.1 总体电路图.18 3.3.2 总体原理说明19 4 单元电路设计20
3、4.1 单元电路图20 4.2 原理说明30 5 总结32 5.1 设计的优缺点32 5.2 可以改进的地方32 5.3 结语32 参考文献34 致谢.35 电子密码锁设计 - 3 - 1 1 引言引言 随着人们生活水平的提高和安全意识的加强,对安全的要求也就越来越高。 锁自古以来就是把守护门的铁将军,人们对它要求甚高,既要安全可靠的防盗, 又要使用方便,这也是制锁者长期以来研制的主题。随着电子技术的发展,各 类电子产品应运而生,电子密码锁就是其中之一。据有关资料介绍,电子密码 锁的研究从 20 世纪 30 年代就开始了,在一些特殊场所早就有所应用。这种锁 是通过键盘输入一组密码完成开锁过程。
4、研究这种锁的初衷,就是为提高锁的 安全性。由于电子锁的密钥量(密码量)极大,可以与机械锁配合使用,并且 可以避免因钥匙被仿制而留下安全隐患。电子锁只需记住一组密码,无需携带 金属钥匙,免除了人们携带金属钥匙的烦恼,而被越来越多的人所欣赏。电子 锁的种类繁多,例如数码锁,指纹锁,磁卡锁,IC 卡锁,生物锁等。但较实用 的还是按键式电子密码锁。 目前使用的电子密码锁大部分是基于单片机技术,以单片机为主要器件, 其编码器与解码器的生成为软件方式。在实际应用中,由于程序容易跑飞,系 统的可靠性能较差。基于现场可编程逻辑门阵列 FPGA 器件的电子密码锁,用 FPGA 器件构造系统,所有算法完全由硬件电
5、路来实现,使得系统的工作可靠性 大为提高。 本课题设计的电子密码锁是基于 CPLD/FPGA。电子密码锁主要由输入部分, 控制部分和输出部分组成。其中输入部分包括 44 矩阵键盘、弹跳消除电路、 键盘译码电路、键盘扫描电路;控制部分包括按键存储电路、密码存储电路、 比较电路;输出部分包括多路选通器、七段译码器、扫描信号发生器。该密码 锁具有密码输入、密码清除、密码激活、电锁解除和密码更改等功能,用一片复 杂可编程逻辑芯片 CPLD 实现,因此它体积小、功耗低、价格便宜,维护和升级 都十分方便,具有较好的应用前景主要应用有:汽车锁,门锁,保险柜,仓库。 电子密码锁设计 - 4 - 2 2 概述概
6、述 2.12.1 MAX+PLUSMAX+PLUS的概述的概述 Altera 公司的 MAX+PLUS开发系统是一个完全集成化、易学易用的可编程 逻辑器件软件设计环境,可以在多种平台上运行,具有操作灵活、支持器件多、 设计输入方法灵活多变的特点,是用户设计、开发以 Altera PLD 器件为核心的 软件开发工具。 MAX+PLUS是 Multiple Array Matrix and Programmable Logic User System 的缩写,软件版本分基本版、商业版和学生版,学生版软件在功能上与 商业版类似,仅在可使用的芯片上受到限制。MAX+PLUS的 9.x 版和 10.x
7、版均 可安装在 WIN95 或 WIN98/2000 操作系统上,其中 9.x 版需 32MB 内存、1GB 以 上硬盘,10.x 版需 64MB 内存、2GB 以上硬盘。 MAX+PLUS的设计过程可用图 2-1 表示: 设计输入 项目编译 功能时序仿真项目校正 编程/配置 (可以使用原理图或文本输入设计要求) (用于检验设计输入是否正确) (用于检验所设计的电路功能是否 符合设计要求) (将正确的设计通过计算机下载到硬件 电路上,使其具有与设计电路相符的逻 辑功能) 图 2-1 MAX+PLUS设计流程图 电子密码锁设计 - 5 - 为使设计者快速掌握MAX + PLUS II软件的使用,
8、我们首先介绍MAX + PLUS II软件的设计流程,它是由设计输入、设计处理、设计校验和器件编程四部分 组成的。 2.1.1 设计输入 MAX + PLUS II软件的设计输入方法有多种多样,主要包括文本输入方式、 原理图设计输入方式、波形设计输入方式、层次设计输入方式和低层设计输入 方式。另外还可以利用第三方EDA工具生成的网络表文件输入。输入法不同, 生成的设计文件也不同,设计者可以根据自己的需要灵活掌握。 (1)原理图输入 利用MAX + PLUS II提供的各种原理图库进行设计输入是一 种最为直接的、也是我们最容易掌握的一种方法。使用该方法时,通过采用自 顶向下的设计方式,将大规模的
9、电路分成若干小块进行设计。该方法虽然效率 较低,但容易实现仿真,便于信号的观察和电路的调整。 (2)硬件描述语言输入 MAX + PLUS II包含一个集成的文本编辑程序,适合 与输入和编辑用Altera硬件描述语言编写的设计文件,MAX + PLUS II可以对这 些语言表达的逻辑进行综合,并将其映射到Altera的任何器件中。采用语言描述 的优点是效率较高,结果也较容易仿真,信号观察也较方便,但语言输入必须依 赖综合器。 (3)波形输入 波形编辑程序(MAX+PLUS II Waveform Editor)用于建立和 编辑波形设计文件及输入仿真向量和功能测试向量。波形编辑还有分析仪的功 能
10、,设计者可以通过它查看仿真结果。 波形设计输入最适合于时序和重复的函数。MAX+PLUS II Compiler采用先 进的波形综合法,可以根据用户定义的输入/输出波形自动生成逻辑关系。 (4)低层编辑 低层编辑程序(MAX+PLUS II F loorpian Editor)简化了向器件 引脚和逻辑单元分配逻辑的过程。设计方案中使用的表示每种器件的图形很容 易进行逻辑布局,高层的和详细器件视图都可以使用设计者可以在对设计进行 编译之前分配引脚和逻辑单元,编译之前分配引脚和逻辑单元,编译后再来察 看或修改结果。 低层编译允许设计者观察器件中所有已分配的逻辑。任何节点或引脚都可以 电子密码锁设计
11、 - 6 - 被拉到新的位置。可以把逻辑分配给专用引脚和逻辑单元,也可以分配给器件 中更加合适的区域。 (5)层次设计输入 层次设计可包含几种不同格式建立的设计文件,例如原理 图输入、HDL设计输入、波形设计输入和EDIF网络表输入等。MAX+PLUSII在 设计方案中支持多级层次,这种灵活性设计者可以采用最适合设计中每个部分 的设计输入方法。MAX+PLUSII层次显示程序可以显示方案的层次结构,允许 设计者穿越层次,自动打开适合于每个设计文件的编辑。 (6)网表输入库 MAX+PLUSII COMPILER可以与其他EDA工具接口。采用 这种方法输入,可以把其他软件系统上设计的电路直接移植
12、起来,不必重新输 入。MAX+PLUSII软件可以接受的网表有EDIF格式、VHDL格式及VERLIOG格 式等。在用网表输入时,必须注意在两个系统中所采用库的对应关系,所有库 单元必须一一对应,才可以成功读入网表。 2.1.2 设计处理 MAX+PLUS II 处理一个设计时,MAX+PLUS II Compile在设计文件中读 取信息并产生编辑文件和仿真文件,定时分析程序(Timing Analyzer)可分析 设计的定时,信息处理程序(Mesage Processor)可自动定位错误。 (1)自动错位定位 MAX+PLUS II 的 Mesage Processor 与 MAX+PLUS
13、 II所 有应用程序通信,可以给出信息(错误、警告等) 。设计者可利用他自动打开有 错误的文件,并一高亮度方式显示错误位置。 (2)逻辑综合与试配 MAX+PLUS II Compiler的逻辑综合(Logic Synthesis) 模块对设计方案进行逻辑综合并能看到设计实现的真实结果,该模块选择合适 的逻辑化简算法,去除剩余逻辑,确保尽可能有效地使用器件的逻辑资源,还 可设计方案中没用的逻辑。 逻辑综合选择有助于设计人员引导逻辑综合的结果。Altera提供, NORMAL(正常) 、FAST(快速) 、时钟到输出的延时、建立时间、和时钟频 率等。设计者可以为选定的逻辑功能指定定时要求,也可以
14、把设计作为一个事 例来指定定时要求。Fitter的报告文件提供详细信息一说明设计的定时要求是如 何实现的。 电子密码锁设计 - 7 - (4)设计规则检查 MAX+PLUS II Compiler 包括设计规则检查器 (Design Doctor)。该程序将检查项目中的所有设计文件,以发现在编辑器件中 可能存在的可靠性不好的逻辑。 设计规则可靠性高,涉及到含有异步输入、行波时钟、以时钟为基础的多 级逻辑、置位与清除的配置及竞争条件等的逻辑。 (5)多器件划分 如果一个设计文件较大,一个器件放不下的话,可以 自动或由用户控制将一个大的设计文件划分成几个小文件,装人多个器件中。 注意:注意:划分时
15、尽量减少器件的数量及减少器件通信的引脚数目。 (6)工业标准输出格式 MAX+PLUSII Compiler可以建立多种仿真环境里 的网表,这些网表包含结合后的功能,以及其他标准校验工具进行器件或板极 仿真时使用的定时信息。 以下接口可供使用: EDIF 接口 建立EDIF200和EDIF300网表。 Verilog接口 建立与Verilog-XL仿真器一起使用的Verilog网表。 VHDL接口 建立与VHDL仿真器一起使用的VHDL网表。 (7)编程文件的产生 装配程序(Assembler)模块为一个已编译的设计 创建一个或多个编程目标文件(.pof) 、SRAM目标文件(.sof)或JE
16、DEC文件 (.jed) 。MAX+PLUSII编译器使用这些文件和标准的A 硬件对器件进行编程。 使用工业标准的其他编程设备也可对器件编程。此外,MAX+PLUSII可以产生I 格式的十六进制文件(.hex) 、T文本文件(.ttf)和配置FLEX8000器件使用的串 行位流文件(.sbf) 。 2.1.3 设计校验 设计校验过程包括设计仿真和定时分析,其作用是测试逻辑操作和设计的内 部定时。 (1)仿真 编译成功的设计不一定完成正确,只是通过仿真才能验证电路 是否正达到设计要求。Simulation可分为三种仿真,即逻辑特性 (Functional)仿 真、时延特性 (Timing)仿真和
17、链接(Linked)仿真,仿真器利用编译器产生的数 据文件工作。 电子密码锁设计 - 8 - MAX+PLUS II提供了功能编译选项。此时,只运行仿真网表的提取,而不 作布局线,所以,此时的仿真没有延时信息,所有的延时均为零延时,而可以 预测所有内信号,对于初步的功能检测非常方便。 功能检查完成后,需进行后仿真。MAX+PLUS II的仿真具有很强的灵活性, 可以控制对单器件或多器件设计的仿真,仿真器使用编译期间生产的二进制仿 真网表进行功能和定时的仿真,或把组和连接起来的多个器件作为一个设计进 行仿真。 可以使用简明的向量输入语言定义输入激励,也可以使用 MAX+PLUS II 的波形编辑
18、程序直接画出波形。仿真结果可以在波形编辑器中看到,也可以作 为波形文件或文本打印出来。 (2)定时分析 MAX+PLUS II的定时分析器(Timing Analyzer)可以计算点 到点的器件延时矩阵,确定器件引脚上建立时间与保持时间要求,还可以计算 最高的时钟频率。MAX+PLUS II的设计输入工具与Timing Analyzer集成在一起, 这样只需简单地将设计中的起点和终端加上标志即可确定最短与最长的传播延 时。此外,Message Processor可以找出Timing Analyzer在设计文件中已证实的关 键路径,并在适当的设计编辑器中加以显示。 2.22.2 MAX+PLUS
19、MAX+PLUS IIII 软件的设计流程软件的设计流程 由前面叙述可知,MAX+PLUS II 软件设计的流程应包括以下几个部分, 如图2-2所示。 设计输入 项目编译 设计仿真 器件编程 系统测试 设计修改 电子密码锁设计 - 9 - 图 2-2 (1)设计输入 可以采用原理图输入、HDL语言描述、EDIF网表读入等方 式。 (2)编译 主要完成器件的选择及适配,逻辑的综合及器件的装入,延时信 息的提取。 (3)前仿真 此时为0延时模式,主要为检验输入是否有误。 (4)后仿真 将编译产生的延时信息加入到设计中,进入布局布线后的仿真, 是与实际器件工作时情况基本相同的仿真。 (5)编程验证
20、用后仿真确认的配置文件经EPROM或编程电缆配置CPLD, 加入实际激励,进行测试,以检查是否完成预定功能。 以上各步如果出现错误的现象,则需重新回到设计输入阶段,改成错误输入或 调整电路并重上述过程。 2.32.3 VHDLVHDL 语言简介语言简介 VHDL 是在 7080 年代中,由美国国防部资助的 VHSIC 项目开发的产品。在 这个语言首次开发出来时,其目标仅是一个使电路文本化的一种标准,使人们 采用文本方式描述的设计能够被其他人所理解。VHDL 于 1987 年由 IEEE 1076 标准所确认,1993 年 IEEE 1076 标准被升级、更新,新的 VHDL 标准为 IEEE
21、1164,1996 年 IEEE 1076.3 成为 VHDL 综合标准。现在,VHDL 已成为一个数字 电路和系统的描述、建模、综合的工业标准,在电子产业界,无论是 ASIC 设计 人员,还是系统级设计人员,都需要学习 VHDL 来提高他们的工作效率。利用 VHDL 及自顶向下设计方法在大型数字系统设计中被广泛采用,在设计中可采用 较抽象的语言来描述系统结构,然后细化成各模块,最后借助编译器将 VHDL 描 述综合为门级。 2.3.1 VHDL 的基本结构 1.VHDL 的组成 一个 VHDL 设计由若干个 VHDL 文件构成,每个文件主要包含如下三个部分 中的一个或全部: 程序包(Pack
22、age) ; 电子密码锁设计 - 10 - 实体(Entity) ; 结构体(Architecture) 。 一个完整的 VHDL 设计必须包含一个实体和一个与之对应的结构体,一个实 体可对应多个结构体,以说明采用不同方法来描述电路。 2. 程序包(Package) 程序包是用来单纯罗列 VHDL 语言中所要用到的信号定义、常数定义、数据 类型、元件语句、函数定义和过程定义等,它是一个可编译的设计单元,也是 库结构中的一个层次。 一个程序包由两大部分组成:包头(Header)和包体(Package Body) ,其 中包体是一个可选项,也就是说,程序包可以只由包头构成。一般包头列出所 有项的名
23、称,而在包体具体给出各项的细节。 3.库(Library) 库是专门存放预先编译好的程序包(package)的地方。在 VHDL 语言中, 库的说明总是放在设计单元的最前面: LIBRARY 库名; 这样,在设计单元内的语句就可以使用库中的数据。由此可见,库的好处 就在于使设计者可以共享已经编译过的设计结果。在 VHDL 语言中可以存在多个 不同的库,但是库和库之间是独立的,不能互相嵌套。实际中一个库就对应一 个目录,预编译程序包的文件就放在此目录中。用户自建的库即为设计文件所 在目录,库名与目录名的对应关系可在编译软件中指定。 4.实体(Entity) 实体是 VHDL 设计中最基本的模块,
24、VHDL 表达的所有设计均与实体有关。 设计的最顶层是顶层实体。如果设计分层次,那么在顶层实体中将包含较低级 别的实体。 实体中定义了该设计所需的输入/输出信号,信号的输入/输出类型被称为 端口模式,同时实体中还定义他们的数据类型。 5.结构体(Architecture) 结构体是 VHDL 设计中最主要部分,它具体地指明了该基本设计单元的行为、 元件及内部的连接关系,也就是说它定义了设计单元具体的功能。结构体对其 电子密码锁设计 - 11 - 基本设计单元的输入输出关系可以用 3 种方式进行描述,即行为描述(基本设 计单元的数学模型描述) 、寄存器传输描述(数据流描述)和结构描述(逻辑元 件
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- 电子 密码锁 设计 48590542
链接地址:https://www.31doc.com/p-2043760.html