基于fpga的电子密码锁的设计论文带仿真内容摘要:
FPGA/现场可编程门阵列 Complex Programmable logic DeviceCPLD 在 EDA 电子设计自动化 基础上的广泛应用 . 从本质上说 , 新的电子系统运转的物理机制又归回到原来的纯数字电路结构 ,但在更高层次上容纳了过去数字技术的优秀部分 ,扬弃了 MCU 系统的应用模式 ,却包括了 MCU的内部资源,使电子设计的技术操作和系统构成的整体发生质的飞跃,是一种更高层次的循环 ,如果说 MCU 在逻辑的实现上是无限的话,那么 CPLD/FPGA 不但包括了 MCU 这一特点 且可触及硅片电路线度的物理极限 并兼有串并行工作方式 高速 高可靠性以及宽口径实用性等多方面的特点,不仅如此,随着 EDA 技术的发展和 FPGA 在深亚微米领域的进军。 它们与MCU MPU DSP A/D D/A RAM 和 ROM 等独立器件间的物理与功能界限已日趋模糊 特别是软 /硬 IP 芯核 Intelligence Property 产业的迅猛发展 嵌人式通用及标准 FPGA 器件很快就会出现片上系统 SOC 也已近在咫尺 CPLD/FPGA 以其不可替代的地位及伴随而来的极具知识经济特征的 IP 芯核产业的崛起 正越来越受到电子技术工程师的密切关注 EDA 打破了软硬件之间最后的屏障 使软硬件工程师们有了真正的共同语言 使目前一切仍处于计算机辅助性设计 CAD 和规划的电子设计活动产生了实在的设计实体 电子设计专家指出 基于 EDA 的 CPLD/FPGA 的应用和技术推广是我国未来电子设计技术发展的主流 而基于 EDA 的 IP 芯核产业的推动应是我国在新世纪知识经济发展的重要切入点之一 [12]。 无论怎样的问题和障碍, FPGA 的应用热潮正逐步形成随着 FPGA 集成水平的进一步提高芯核产业的进一步扩大,可以相信用不了多久大部分的电子设计领域 MCU 、 MPU、 DSP 或 AD/A 和 RAM 等必将以各种软硬核的形式 FPGA 实现真正的单片系统。 8 3 基于 FPGA 设计的硬件描述语言 VHDL VHDL 语言简介 目前数字系统的设计可以直接面向用户需求 ,根据系统的行为和功能要求 ,自上而 下地逐层完成相应的描述、综合、优化、仿真与验证 ,直到生成器件 ,实现电子设计自动化。 其中电子设计自动化 EDA (即 Electronic Design Automation)的关键技术之一就是可以用硬件描述语言 (HDL)来描述硬件电路。 VHDL(VHSIC Hardware Description Language)是用来描述从抽象到具体级别硬件的工业标准语言 ,它是由美国国防部在 20 世纪 80 年代开发的 HDL ,现在已成为 IEEE 承认的标准硬件描述语言。 VHDL 支持硬件的设计、验证、综合和测试 ,以及硬件设计数据的交换、维护、修改和硬件的实现 ,具有描述能力强、生命周期长、支持大规模设计的分解和已有设计的再利用等优点 [13]。 VHDL 主要用于描述数字系统的结构、行为和功能 ,其程序结构特点是将一个电路模块或一个系统分成端口和内部功能算法实现两部分。 对于一个电路模块或者数字系统而言 ,定义了外部端口后 ,一旦内部功能算法完成后 ,其他系统可以直接依据外部端口调用该电路模块或数字系统 ,而不必知道其内部结构和算法。 VHDL 的特点使得电子系统新的设计方法 —— “ 自顶向下 ” 设计方法更加容易实 现 [14]。 可以先对整个系统进行方案设计 ,按功能划分成若干单元模块 ,然后对每个单元模块进一步细分 ,直到简单实现的单元电路。 VHDL 语言的特点 VHDL 语言主要用于描述数字系统的结构、行为、功能和接口,其具有以下特点: ( 1)作为 HDL 的第一个国际标准, VHDL 具有很强的可移植性; ( 2)具有丰富的模拟仿真语句和库函数; ( 3) VHDL 有良好的可读性,接近高级语言,容易理解; ( 4)系统设计与硬件结构无关; ( 5)支持模块化设计; ( 6)用 VHDL 完成的一个确定设计,可以利用 EDA 工具自动地把 VHDL 描述转变成门电路级网表文件。 VHDL 语言的优点 与其他硬件描述语言相比, VHDL 语言有如下优越之处 [15]: ( 1) VHDL 语言支持自上而下( Top Down)和基于库( LibraryBase )的设 9 计方法,还支持同步电路、异步电路、 FPGA 以及其他随机电路的设计; ( 2) VHDL 语言具有多层次描述系统硬件功能的能力,可以从系统的数学模型直到门级电路,其高层次的行为描述可以与低层次的 RTL 描述和结构描述混合使用,还可以自定 义数据 类型,给编程人员带来较大的自由和方便; ( 3) VHDL 对设计的描述具有相对独立性,设计者可以不懂硬件的结构,也不必关心最终设计实现的目标器件是什么; ( 4) VHDL 具有电路仿真与验证功能,可以保证设计的正确性,用户甚至不必编写如何测试相量便可以进行源代码级的调试,而且设计者可以非常方便地比较各种方案之间的可行性及其优劣,不需做任何实际的电路实验; ( 5) VHDL 语言可以与工艺无关编程; ( 6) VHDL 语言标准、规范,易于共享和复用。 VHDL 语言的基本结构 VHDL 有五大元素组成 ,即实体、结构体、配置、程序包和库 [16]。 具体说明如下: ( 1)实体( ENTITY) 程序是设计的基本模块和初级单元 ,在分层设计中 ,顶层有顶层实体 ,含在顶层实体中的较低层的描述为底层实体 .配置把顶层实体和底层实体连接起来 .实体说明语句仅对本实体与外部电路接口进行描述 . ( 2)结构体( ARCHITECTURE) 结构体也叫构造体 ,描述了实体的结构、行为、元件及内部连接关系,也就是说它定义了设计实体的功能,规定了设计实体的数据流程,制定了实体内部元件的连接关系。 ( 3)配置( CONFIGURATION) 配制用于将元件实例与实体 结构成对绑定,决定了哪个结构体于实体关联。 ( 4)程序包( PACKAGE) 程序包是经常使用的数据类型和子程序的集合,可以认为是 VHDL 的工具箱 ,主要对程序包中的常量、数据类型和子程序进行格式描述,类似于 C 语言中的头文件。 ( 5)库( LIBRARY) 库具体对程序包声明的数据类型和子程序进行功能说明。 10 VHDL 语言的应用 硬件描述语言已成为当今以及未来电子设计自动化 (EDA)解决方案的核心,特别是对于深亚微米复杂数字系统的设计,硬件描述语言具有独特的作用。 VHDL 在数字电子电路的设计中具有硬件描述能力强、设计方法灵活等优点 [17]。 利用硬件描述语言 VHDL,数字电路系统可从系统行为级、寄存器传输级和门级三个不同层次进行设计,即上层到下层(从抽象到具体)逐层描述自己的设计思想,用一系列分层次的模块来表示极其复杂的数字系统。 然后,利用电子设计自动化( EDA)工具,逐层进行仿真验证,再把其中需要变为实际电路的模块组合,经过自动综合工具转换到门级电路网表。 接着,再用专用集成电路 (ASIC)或现场可编程门阵列 (FPGA)自动布局布线工具,把网表转换为要实现的具体电 路布线结构。 目前,这种高层次设计 (highleveldesign)的方法已被广泛采用。 据统计,目前在美国硅谷约有 90%以上的 ASIC 和 FPGA 采用硬件描述语言进行设计。 VHDL 的应用已成为当今以及未来 EDA 解决方案的核心,而且是复杂数字系统设计的核心 [18]。 11 4 系统设计方案的研究 系统功能需求分析 本系统主要集中在以 FPGA 以核心外围扩展设计,整个电路主要电子锁具的组成框图是以可编程逻辑器件( FPGA)为核心,配以相应硬件电路,完成密码的设置、存贮、识别和显示、 驱动电磁执行器并检测其驱动电流值,报警等功能。 FPGA 接收键入的代码,并与存贮在闪存中的密码进行比较,如果密码正确,则驱动电磁执行器开锁;如果密码不正确,则允许操作人员重新输入密码,最多可输入三次;如果三次都不正确,则通过 FPGA 产生报警, FPGA 将每次开锁操作和此时电磁执行器的驱动电流值作为状态信息发送给监控器,同时将接收来自接口的报警信息也发送给监控器。 系统实现方案的论证比较 方案一 :采样 台湾凌阳科技有限公司推出的以凌阳自主研发的 SPCE061A 芯片为主控芯片,用一条下载线连接到计算机就 可以实现在线仿真、在线调试、在线下载,低廉的价格保证了系统可靠开发;此外, 61 板具有 SOC 概念、 DSP 功能和语音特色,为电子密码锁的语音报警提供了方便,但是基于单片机设计的密码锁外围电路比较复杂,系统可靠性差,密码的数量少,尤其是系统的程序不够稳定,功率较大,需要专门的电源供电,所以不采用这个方案。 方案二 :设计一种基于 FPGA 的电子密码锁的设计,用 FPGA 设计的系统已经是现代生活中经常用到的工具之一,通过键盘输入密码,用 FPGA 作为主控芯片,用数码管显示输入的数字,如果出现错误便通过报警电路发出报警,主控芯片又可分为按键处理部分、控制部分和译码显示部分用电子密码锁代替传统的机械式密码锁。 由于采用的是可编程逻辑器件 FPGA,使得系统有相当大的灵活性,随时可以进行硬件升级、扩展。 而且系统设计完善以后还可以将主控的 FPGA 固化成一片 ASIC,那么这块 ASIC 就可以作为专用的数字密码锁芯片。 方案的论证比较 在实际应用中 , 由于程序容易跑飞 , 系统的可靠性能较差,而基于 FPGA 设计的电子密码锁克 服了基于单片机设计密码锁的缺点。 基于上述比较以上两种方案,根据系统设计要求,采用方案二。 系统方案的总体设计 系统原理框图 本系统由主控芯片( FPGA)、键盘、显示电路、报警电路和开 /关门电路组成,而主控芯片又可分为按键处理部分、控制部分和译码显示部分。 系统原理框图如图 12 所示: 总体设计原理 实现系统大量逻辑电路的集成,在设计中使用了现场可编程逻辑门 阵列器件( FPGA)。 FPGA 主要实现以下逻辑功能:键盘处理、数码显示、设置密码、解码开门以及报警等控制功能。 本系统有 13 个按键,包括 0~ 9 共 10 个数字键和 1 个确认键, 1 个警报复位键,1 个清 0 键。 输入正确密码后,按确认键即可开门,在门开的状态下,第一次输入新密码后再确认密码可设置密码,输入的密码在八位数码管上显示,最后输入的数字显示在最右边,每输入一位数字,密码在数码管上的显示左移一位。 高位的零不用输入,因此密码可以为 1~ 8 位。 初始密码为 0,即上电后,按确认键即可开门。 门开后可通过锁门按钮关门,门关 上后要再次输入密码才能开门。 在输入密码的过程中,当用户键入错误密码时,系统就会报警,由扬声器发出报警声,当连续三次出现密码错误时,则系统会长时间报警不止,这时必须按警报复位键方可停止。 FPGA 主控部分 译码显示 按键处理 键盘 显示 开 /关门电路 报警电路 图 系统框图 13 5 系统硬件设计 系统的硬件模块实现 整个电子密码锁系统可划分为键盘扫描、获取键值、数码显示、设置密码和解码开门等五个子模块。 通过 FPGA 的处理,从而实现基于 FPGA 的电子密码锁的设计,系统实现框图如图 所示。 基于 FPGA 的设计 主控芯片 EPF10K10LC844 的介绍 FPGA 器件选择 Altera 公司 FLEX10K10 系列的 EPF10K10LC844 芯片。 FLEX10K 器件是工业界第一个嵌入式的 PLD(可编程逻辑器件 ),由于其具有高密度、低成本、低功率等特点 ,成为当今 Altera PLD 中应用广泛的器件系列 [19]。 FLEX10K器件主要由 EAB(嵌入式阵列块 )、 LAB(逻辑阵列块 )、快速 通道线和 I/O 单元 4 部分组成。 设计输入 (图形或 VHDL(甚高速集成电路硬件描述语言 )等 )经过编译后产生的数据格式 (网表 ),大多配置到 LAB 中。 在很多时候 ,为了提高设计效率、减少 LAB 的占用等 ,希望将设计配置到 EAB 中。 要将设计配置到 EAB 中是一个较为复杂的过程 ,在这个过程中必须遵守一定的规则 ,同时 ,又要对设计的状态、输入、输出 [20]。 该芯片集成有 1 万个等效逻辑门,含有 572 个逻辑单元( LEs)、 72 个逻辑阵列块( LABs)、 3 个嵌入式阵列块( EAB s),并具有 720 个片内寄存器,可以在不占用内 部资源的条件下实现 6144 bit 的片内存储器;内部模块间采用高速、延时可。基于fpga的电子密码锁的设计论文带仿真
相关推荐
也不必关心最终设计实现的目标器件是什么; ( 4) VHDL 具有电路仿真与验证功能,可以保证设计的正确性,用户甚至不必编写如何测试相量 便可以进行源代码级的调试,而且设计者可以非常方便地比较各种方案之间的可行性及其优劣,不需做任何实际的电路实验; ( 5) VHDL 语言可以与工艺无关编程; ( 6) VHDL 语言标准、规范,易于共享和复用。 VHDL 语言的基本结构 VHDL
87[LRM87]。 1993 年 VHDL 重新修订,形成了新的标准,即 IEEE STD 1076— 1993[LRM93]。 从此以后,美国国防部实施新的技术标准,要求电子系 统开发商的合同文件一律采用 VHDL 文档。 即第一个官方 VHDL 标准得到推广、实施和普及。 它源于美国政府于 1980 年开始启动的超高速集成电路计划 ,VHDL 主要用于描述数字系统的结构,行为,功能和接口。
计方案 , 给出了系统 总体 框图,并且结合框图说明了系统的工作过程。 然后 对系统 的实现方法做了相应的比较,选定了 数据缓存 模块的设计方案,接着对各模块中所使用的关键芯片进行了选择与介绍。 本科毕业设计说明书(论文) 第 9 页 共 39 页 3 硬件电路设计 硬件电路设计工具介绍 Protel 是 Altium 公司在 80 年代末推出的 EDA 软件 ,在电子行业的 CAD 软件中
ck1=lock1,start=start,oe=oe,ale=ale,access1=access1, dd1=data1,dd2=data2,dd3=data3,dd4=data4,dd5=data5,dd6=data6)。 u2:lcd port map(reset=reset,clk=clk,d1=data1,d2=data2,d3=data3, d4=data4,d5=data5
毕业设计题目是基于 FPGA 的无刷直流电动机控制器的设计,根据此题目的要求,经查阅相关资料后,我的思路如下:以 FPGA 为核心控制单元控制相关模块电路的导通和运行,用霍尔位置传感器采集电动机的转子位置, 经 FPGA 芯片 CycloneⅡ 分析后输出合适信号, 经以 Si9979 为基础的驱动电路放大 后传递至 全桥逆变电路 , 将直流转变为交流进而控制电动机的旋转 、转速和正反转。 器件
13 第四章 频率计的实现 时钟信号分频模块的设计 由于系统时钟为 1Khz,因此要将其进行 1000分频得到 1hz的周期信号,分频程序比较简单,其中 clk为输入的 1Khz系统时钟信号, clk1为输出的 1hz信号,现将源程序摘抄如下: module clkdiv(clk,clk1)。 input clk。 output clk1。 reg clk1。 reg [10:0] count。