参赛队员:谭建军
摘要
基于FPGA设计的电子密码锁是一个小型的数字系统,与普通机械锁相比, 具有许多独特的优点: 保密性好, 防盗性强, 可以不用钥匙, 记住密码即可开锁等。目前使用的电子密码锁大部分是基于单片机技术, 以单片机为主要器件, 其编码器与解码器的生成为软件方式。在实际应用中, 由于程序容易跑飞, 系统的可靠性能较差。本文介绍一种基于现场可编程门阵列FPGA 器件的电子密码锁的设计方法采用VHDL语言对系统进行描述,并在FLEX10K10LC84-4上实现。
系统所实现的功能:用户给电子密码锁设定一个密码,当使用本机键盘开锁时,该密码与用户设定的密码比较,如果密码正确,则开锁;如果密码不正确,则允许用户重新输入密码,最多可输入三次,若三次都不正确,则扬声器报警,直到按复位键才允许再次输入代码。
通过仿真调试,利用可编程器件FPGA的电子密码锁的设计基本达到了预期目的。当然,该系统在一些细节的设计上还需要不断的完善和改进,特别是对系统的扩展有很好的实用和设计的价值。
关键词:现场可编程门阵列, 硬件描述语言, 电子密码锁, 扬声器
I
1 绪言
系统以利用可编程器件实现电子密码锁的设计为研究背景、现状以及发展方向,明确指出了电子密码锁面临的问题和所解决的方法。
1.1课题背景
基于FPGA的电子密码锁是新型现代化安全管理系统,它集微机自动识别技术和现代安全管理措施为一体,它涉及电子,机械,计算机技术,通讯技术,生物技术等诸多新技术。它是解决重要部门出入口实现安全防范管理的有效措施,适用各种场合,如银行、宾馆、机房、军械库、机要室、办公间、智能化小区、工厂、家庭等。
在数字技术网络技术飞速发展的今天,电子密码锁技术得到了迅猛的发展。它早已超越了单纯的门道及钥匙管理,逐渐发展成为一套完整的出入管理系统[1]。它在工作环境安全、人事考勤管理等行政管理工作中发挥着巨大的作用。在该系统的基础上增加相应的辅助设备可以进行电梯控制、车辆进出控制,物业消防监控、餐饮收费、私家车库管理等,真正实现区域内一卡智能管理。
目前使用的电子密码锁大部分是基于单片机技术, 以单片机为主要器件, 其编码器与解码器的生成为软件方式。在实际应用中, 由于程序容易跑飞, 系统的可靠性能较差[2]。基于FPGA的电子密码锁已经是现代生活中经常用到的工具之一,用于各类保险柜、房门、防盗门等等。用电子密码锁代替传统的机械式密码锁,克服了机械式密码锁密码量少、安全性能差的缺点。由于采用的是可编程逻辑器件FPGA,使得系统有相当大的灵活性,随时可以进行硬件升级、扩展,而且系统设计完善以后还可以将主控的FPGA固化成一片ASIC,那么这块ASIC就可以作为专用的数字密码锁芯片。而且由于硬件可升级,还可随时增加密码位数或增加新的功能,使得密码锁有更高的安全性、可靠性和方便性[3]。
1.2 课题研究的目的和意义
电子杂志、报刊经常刊登有密码开关、密码锁这样的电路,大多数是使用常用的数字电路,如CD4017,然后通过不同的连接方式实现密码控制功能。这种电路的特点就是密码修改只能通过改变电路的连接来实现,密码很容易被破解,电路复
1
杂,故障率高。本制作是针对这些电路而设计的,将以往的以单片机实现设计改为可编程器件FPGA利用VHDL编程实现电子密码锁的设计。这种设计移动方便。基于FPGA的电子密码锁具有保密强、灵活性高、适用范围广等特点,它在键盘上输入,与打电话差不多,因而易于掌握,其突出优点是“密码”是记在被授权人脑子里的数字和字符,既准确又可靠,不会丢失(除了忘记),难以被窃(除非自己泄露)。但是密码不能太简单,太简单了就容易被他人在键盘上试探出来,或者可能被旁观者窥测出来,造成保密性不足。当然,密码又不能太复杂,太复杂了可能自己都糊涂了,或者输入密码操作成功率低,造成使用不便。因此,为了发扬优点、克服弱点,本设计采用“任意设定数字密码”技术使得被授权人可以根据自己的需要或喜好设定密码,常用常新,在输入密码的过程中,当用户键入错误密码时,系统就会报警,由扬声器发出5秒报警声,当连续三次出现密码错误时,则系统会长时间报警不止,这时必须按复位方可停止。
本设计的FPGA电子密码锁的特点是:体积小、功耗低、价格便宜、安全可靠,维护和升级都十分方便,具有较好的应用前景。它与传统锁具的不同之处在于:它与可编程逻辑器件实现系统的设计,应用简洁清晰的VHDL语言实现设计编程思想,能够实现适时、智能控制管理功能,特别是在系统的扩展上有很好的优势。
1.3 国内外概况
随着我国对外开放的不断深入,高档建筑发展很快,高档密码锁具市场的前景乐观。我国密码锁具行业对密码锁具高新技术的投入正逐年增大,高档密码锁的市场需求也逐年增加[4]。在安防工程中,锁具产品是关系到整个系统安全性的重要设备,所以锁具产品的优劣也关系了整个安防工程的质量和验收。
目前,市场上比较先进的智能电子密码锁分别有:IC卡电子密码锁、射频卡式电子密码锁、红外遥控电子密码锁、指纹识别电子密码锁和瞳孔识别电子密码锁等。IC卡电子密码锁成本低,体积小,卡片本身无须电源等优点占领了一定的市场份额,但是由于有机械接触,会产生接触磨损,而且使用不太方便,在一定程度上了它的应用;射频卡式电子密码锁是非接触式电子密码锁,成本也不太高,体积跟IC卡密码锁相当,卡片使用感应电源,重量很轻,技术成熟,受到了广泛的欢迎,但是与IC卡电子密码锁相比,成本偏高;指纹识别电子密码锁和瞳孔识别电子密码锁可靠性很高,安全性是目前应用系统中最高的,但是成本高昂,还没进入大众化使用阶段[5]。
2
在国外,美国、日本、德国的电子密码锁保密性较好,并结合感应卡技术,生物识别技术,使电子密码锁系统得到了飞跃式的发展。这几个国家的密码锁识别的密码更复杂,并且综合性比较好,已经进入了成熟期,出现了感应卡式密码锁,指纹式密码锁,虹膜密码锁,面部识别密码锁,序列混乱的键盘密码锁等各种技术的系统,它们在安全性,方便性,易管理性等方面都各有特长,新型的电子密码锁系统的应用也越来越广[6]。
1.4课题的主要研究工作
课题主要解决系统硬件和软件两方面的问题。硬件方面要解决FPGA可编程器件与其外围电路的接口设计的问题;软件方面主要问题是利用VHDL语言完成基于FPGA的电子密码锁的编程问题。除此之外,程序还要完成基本的密码开锁功能,并通过扬声器长时间鸣叫报警。本设计是由FPGA可编程逻辑器件编程实现的控制电路,具体有按键指示、输入错误提示、密码有效指示、控制开锁、控制报警等功能。它具有安全可靠、连接方便、简单易用、结构紧凑、系统可扩展性好等特点。
2 FPGA的相关介绍
2.1 可编程逻辑器件
在数字电子系统领域,存在三种基本的器件类型:存储器、微处理器和逻辑器件。存储器用来存储随机信息,如数据表或数据库的内容。微处理器执行软件指令来完成范围广泛的任务,如运行字处理程序或视频游戏。逻辑器件提供特定的功能,包括器件与器件间的接口、数据通信、信号处理、数据显示、定时和控制操作、以及系统运行所需要的所有其它功能[7]。
逻辑器件可分为两大类,即固定逻辑器件和可编程逻辑器件。正如其命名一样,固定逻辑器件中的电路是永久性的,它们完成一种或一组功能,一旦制造完成,就无法改变。另一方面,可编程逻辑器件(PLD)是能够为客户提供范围广泛的多种逻辑容量、特性、速度和电压参数的标准成品部件 —— 而且此类器件可在任何时间改变,从而完成许多种不同的功能[8]。
对于固定逻辑器件,根据器件复杂性不同,从设计、原型到最终生产所需要的时间可从数月至一年多不等。而且,如果器件工作不合适,或者如果应用要求发生了变化,那么就必须开发全新的设计。设计和验证固定逻辑的前期工作需要大量的
3
NRE成本。NRE代表在固定逻辑器件最终从芯片制造厂制造出来以前客户需要投入的所有成本,这些成本包括工程资源、昂贵的软件设计工具、用来制造芯片不同金属层的昂贵光刻掩膜组以及初始原型器件的生产成本。这些NRE成本可能从数十万美元至数百万美元。
对于可编程逻辑器件,设计人员可利用价格低廉的软件工具快速开发、仿真和测试其设计。然后,可快速将设计编程到器件中,并立即在实际运行的电路中对设计进行测试。原型中使用的PLD器件与正式生产最终设备(如网络路由器、DSL调制解调器、DVD播放器、或汽车导航系统)时所使用的PLD完全相同。这样就没有了NRE成本,最终的设计也比采用定制固定逻辑器件时完成得更快。
采用PLD的另一个关键优点是在设计阶段中客户可根据需要修改电路,直到对设计工作感到满意为止。这是因为PLD基于可重写的存储器技术——要改变设计,只需要简单地对器件进行重新编程。一旦设计完成,客户可立即投入生产,只需要利用最终软件设计文件简单地编程所需要数量的PLD就可以了。
2.2 FPGA的简介
FPGA是英文Field Programmable Gate Array的缩写,即现场可编程门阵列,它是在PAL、GAL、EPLD等可编程器件的基础上进一步发展的产物[9]。它是作为专用集成电路(ASIC)领域中的一种半定制电路而出现的,既解决了定制电路的不足,又克服了原有可编程器件门电路数有限的缺点。
FPGA采用了逻辑单元阵列LCA(Logic Cell Array)这样一个新概念,内部包括可配置逻辑模块CLB(Configurable Logic Block)、输出输入模块IOB(Input Output Block)和内部连线(Interconnect)三个部分。FPGA的基本特点主要有:
1)采用FPGA设计ASIC电路,用户不需要投片生产,就能得到合用的芯片。 2)FPGA可做其它全定制或半定制ASIC电路的中试样片。 3)FPGA内部有丰富的触发器和I/O引脚。
4)FPGA是ASIC电路中设计周期最短、开发费用最低、风险最小的器件之一。 5)FPGA采用高速CHMOS工艺,功耗低,可以与CMOS、TTL电平兼容。 可以说,FPGA芯片是小批量系统提高系统集成度、可靠性的最佳选择之一。 目前FPGA的品种很多,有XILINX的XC系列、TI公司的TPC系列、ALTERA公司的FIEX系列等。
FPGA是由存放在片内RAM中的程序来设置其工作状态的,因此,工作时需要
4
对片内的RAM进行编程。用户可以根据不同的配置模式,采用不同的编程方式。
加电时,FPGA芯片将EPROM中数据读入片内编程RAM中,配置完成后,FPGA进入工作状态。掉电后,FPGA恢复成白片,内部逻辑关系消失,因此,FPGA能够反复使用。FPGA的编程无须专用的FPGA编程器,只须用通用的EPROM、PROM编程器即可。当需要修改FPGA功能时,只需换一片EPROM即可。这样,同一片FPGA,不同的编程数据,可以产生不同的电路功能。因此,FPGA的使用非常灵活。
FPGA有多种配置模式:并行主模式为一片FPGA加一片EPROM的方式;主从模式可以支持一片PROM编程多片FPGA;串行模式可以采用串行PROM编程FPGA;外设模式可以将FPGA作为微处理器的外设,由微处理器对其编程[10]。
2.3 FPGA的应用特点
随着电子技术的飞速发展, 基于FPGA的设计向高集成度高速度和低价位方向
不断迈进 其应用领域不断扩大这主要是由于FPGA以下技术特点的不断发展[11]。 (1)集成度越来越高
如Lattice的ispLSI或AMD的MACH芯片等效逻辑门已达10 万门以上 Altera 的10K 系列也在25 万门以上具有1 万个以上的寄存器 40 kbit 嵌人式存储器 使得集成复杂信号处理算法成为可能 Raphael系列已达到100 万门以上集中了 FLEX10KFLEX6000 MAX7000的所有优点可进行单片设计Xilinx推出了上百万门的FPGA,它们可实现几乎任何形式的数字电路或数字系统的设计 FPGA在系统中直接应用率正直逼ASIC的开发2.2 在系统编程(ISP)/在线路重配置(ICR)技术。 FPGA 越来越多地采用了先进的 JTAG ISP和ICR 技术。这种先进的编程方式已成为当今世界上各类可编程器件发展的趋势在 5V 工作电平下可随时对正在工作的系统上的 CPLD/FPGA 进行全部或部分地在系统编程 并可进行芯片内部资源的重新分配同时进行所谓菊花链式多芯片串行编程 其编程次数多达1万次 如Lattice 的ispLSI AMD的MACH以及Xilinx的XC9000系列 对于SRAM结构的FPGA其下载编程次数几乎没有 如Altera的FLEX10K系列 这种编程方式可轻易地实现红外编程 超声编程或无线编程 或通过电话线远程在线编程 这些功能在工控 智能仪器表 通讯和军事上有特殊用途。 (2) 嵌入式存贮技术
5
在 CPLD/FPGA 内部嵌人一定数量的存贮器 存贮器类型有双口SRAM ROM FIFO 可用于存贮信号处理的系数 中间结果等 这对设计电子系统的智能化功能提供了技术支持
(3)时钟锁定和倍频技术
Altera 的 10K 系列采用了时钟锁定和倍频技术解决了时钟脉冲延迟和偏斜问题并使PLD 内部时钟更高 单个16 bit 乘法器速度可达100 MHz 以上 这正是大带宽高速实时信号的需要 CPLD/FPGA的时钟延迟可达纳秒级 结合其并行工作方式 在超高速应用领域和实时测控方面有非常广阔的应用前景。 (4)电子设计自动化 EDA 工具
EDA工具使得用户对设计的输入综合仿真非常方便 Altera的Max+PlusII给用户提供了丰富的宏库和LPM(参数模块库Library of Parameterized Modules)EDA 环境由 Unix/Windows 共存开发环境转换 事实上 通过符合国际标准的硬件描述语言 如 VHDL 或VERILOG HDL 来进行电子系统设计和产品开发由于开发工具的通用性 设计语言的标准化以及设计过程几乎与所用的 CPLD/FPGA 器件的硬件结构没有关系 所以设计成功的各类逻辑功能块软件有很好的兼容性和可移植性它几乎可用于任何型号的CPLD/FPGA中 从而使得片上系统的产品设计效率大幅度提高,使其用更为广泛和方便。 (5)开发周期短
由于FPGAN 内部资源丰厚及功能强大以及相应的EDA软件功能完善和强大仿真能力便捷而实时开发过程形象而直观兼之硬件因素涉及甚少,一些EDA专家指出未来的大系统FPGA设计仅是各类再应用逻辑与 IP 核 CORE 的拼装 TI 公司认为 一个ASIC 80 功能可用IP 核等现成逻辑合成 因此可在很短的时间内完成十分复杂的系统设计。
2.4 FPGA的应用前景
在数字化的道路上,电子设计技术经历了并将继续经历许多重大的变革,从应
用小规模集成电路SSI芯片构成电路系统,到广泛应用微控制器或单片机MCU 在电子系统设计上发生了具有里程碑意义的飞跃 这一飞跃不但克服了 SSI 数字系统许多缺陷和设计困难 同时也为电子技术的应用开阔了更广泛的前景 ,随着社会经济的发展和技术进步及电子技术的迅猛发展 ,电子设计技术面临另一次更大意
6
义的,即FPGA 复杂可编程逻辑器件 FieldProgrammable Gate Array-FPGA/现场可编程门阵列Complex Programmable logic Device-CPLD 在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 实现真正的单片系统。
3 基于FPGA设计的硬件描述语言VHDL
3.1 VHDL语言简介
目前数字系统的设计可以直接面向用户需求 ,根据系统的行为和功能要求 ,自
上而下地逐层完成相应的描述、综合、优化、仿真与验证 ,直到生成器件 ,实现电子设计自动化。其中电子设计自动化EDA (即Electronic Design Automation)的关键技术之一就是可以用硬件描述语言(HDL)来描述硬件电路。VHDL(VHSIC Hardware Description Language)是用来描述从抽象到具体级别硬件的工业标准语言 ,它是由
7
美国国防部在 20 世纪 80 年发的 HDL ,现在已成为 IEEE承认的标准硬件描述语言。VHDL 支持硬件的设计、验证、综合和测试 ,以及硬件设计数据的交换、维护、修改和硬件的实现 ,具有描述能力强、生命周期长、支持大规模设计的分解和已有设计的再利用等优点[13]。
VHDL 主要用于描述数字系统的结构、行为和功能 ,其程序结构特点是将一个电路模块或一个系统分成端口和内部功能算法实现两部分。对于一个电路模块或者数字系统而言 ,定义了外部端口后 ,一旦内部功能算法完成后 ,其他系统可以直接依据外部端口调用该电路模块或数字系统 ,而不必知道其内部结构和算法。VHDL 的特点使得电子系统新的设计方法——“自顶向下”设计方法更加容易实现[14]。可以先对整个系统进行方案设计 ,按功能划分成若干单元模块 ,然后对每个单元模块进一步细分 ,直到简单实现的单元电路。
3.2 VHDL语言的特点
VHDL语言主要用于描述数字系统的结构、行为、功能和接口,其具有以下特点:
(1)作为HDL的第一个国际标准,VHDL具有很强的可移植性; (2)具有丰富的模拟仿真语句和库函数;
(3)VHDL有良好的可读性,接近高级语言,容易理解; (4)系统设计与硬件结构无关; (5)支持模块化设计;
(6)用VHDL完成的一个确定设计,可以利用EDA工具自动地把VHDL描述转变成门电路级网表文件。
3.3 VHDL语言的优点
与其他硬件描述语言相比,VHDL语言有如下优越之处[15]:
(1)VHDL语言支持自上而下(Top Down)和基于库(LibraryBase )的设计方法,还支持同步电路、异步电路、FPGA以及其他随机电路的设计; (2) VHDL语言具有多层次描述系统硬件功能的能力,可以从系统的数学模型直到门级电路,其高层次的行为描述可以与低层次的RTL描述和结构描述混合使用,还可以自定义数据 类型,给编程人员带来较大的自由和方便;
8
(3)VHDL对设计的描述具有相对性,设计者可以不懂硬件的结构,也不必关心最终设计实现的目标器件是什么;
(4)VHDL具有电路仿真与验证功能,可以保证设计的正确性,用户甚至不必编写如何测试相量便可以进行源代码级的调试,而且设计者可以非常方便地比较各种方案之间的可行性及其优劣,不需做任何实际的电路实验; (5) VHDL语言可以与工艺无关编程; (6)VHDL语言标准、规范,易于共享和复用。
3.4 VHDL语言的基本结构
VHDL有五大元素组成,即实体、结构体、配置、程序包和库[16]。具体说明如下:
(1)实体(ENTITY)
程序是设计的基本模块和初级单元,在分层设计中,顶层有顶层实体,含在顶层实体中的较低层的描述为底层实体.配置把顶层实体和底层实体连接起来.实体说明语句仅对本实体与外部电路接口进行描述. (2)结构体(ARCHITECTURE)
结构体也叫构造体,描述了实体的结构、行为、元件及内部连接关系,也就是说它定义了设计实体的功能,规定了设计实体的数据流程,制定了实体内部元件的连接关系。
(3)配置(CONFIGURATION)
配制用于将元件实例与实体-结构成对绑定,决定了哪个结构体于实体关联。 (4)程序包(PACKAGE)
程序包是经常使用的数据类型和子程序的集合,可以认为是VHDL的工具箱,主要对程序包中的常量、数据类型和子程序进行格式描述,类似于C语言中的头文件。
(5)库(LIBRARY)
库具体对程序包声明的数据类型和子程序进行功能说明。
3.5 VHDL语言的应用
硬件描述语言已成为当今以及未来电子设计自动化(EDA)解决方案的核心,特
9
别是对于深亚微米复杂数字系统的设计,硬件描述语言具有独特的作用。VHDL在数字电子电路的设计中具有硬件描述能力强、设计方法灵活等优点[17]。
利用硬件描述语言VHDL,数字电路系统可从系统行为级、寄存器传输级和门级三个不同层次进行设计,即上层到下层(从抽象到具体)逐层描述自己的设计思想,用一系列分层次的模块来表示极其复杂的数字系统。然后,利用电子设计自动化(EDA)工具,逐层进行仿真验证,再把其中需要变为实际电路的模块组合,经过自动综合工具转换到门级电路网表。接着,再用专用集成电路(ASIC)或现场可编程门阵列(FPGA)自动布局布线工具,把网表转换为要实现的具体电路布线结构。目前,这种高层次设计(highleveldesign)的方法已被广泛采用。据统计,目前在美国硅谷约有90%以上的ASIC和FPGA采用硬件描述语言进行设计。VHDL的应用已成为当今以及未来EDA解决方案的核心,而且是复杂数字系统设计的核心[18]。
4 系统设计方案的研究
4.1系统功能需求分析
本系统主要集中在以FPGA以核心外围扩展设计,整个电路主要电子锁具的组成框图是以可编程逻辑器件(FPGA)为核心,配以相应硬件电路,完成密码的设置、存贮、识别和显示、驱动电磁执行器并检测其驱动电流值,报警等功能。 FPGA接收键入的代码,并与存贮在闪存中的密码进行比较,如果密码正确,则驱动电磁执行器开锁;如果密码不正确,则允许操作人员重新输入密码,最多可输入三次;如果三次都不正确,则通过FPGA产生报警,FPGA将每次开锁操作和此时电磁执行器的驱动电流值作为状态信息发送给监控器,同时将接收来自接口的报警信息也发送给监控器。
4.2 系统实现方案的论证比较
方案一 :采样凌阳科技有限公司推出的以凌阳自主研发的SPCE061A芯片为主控芯片,用一条下载线连接到计算机就可以实现在线仿真、在线调试、在线下载,低廉的价格保证了系统可靠开发;此外,61板具有SOC概念、DSP功能和语音特色,为电子密码锁的语音报警提供了方便,但是基于单片机设计的密码锁外围电路比较复杂,系统可靠性差,密码的数量少,尤其是系统的程序不够稳定,功率较
10
大,需要专门的电源供电,所以不采用这个方案。
方案二:设计一种基于FPGA的电子密码锁的设计,用FPGA设计的系统已经是现代生活中经常用到的工具之一,通过键盘输入密码,用FPGA作为主控芯片,用数码管显示输入的数字,如果出现错误便通过报警电路发出报警,主控芯片又可分为按键处理部分、控制部分和译码显示部分用电子密码锁代替传统的机械式密码锁。由于采用的是可编程逻辑器件FPGA,使得系统有相当大的灵活性,随时可以进行硬件升级、扩展。而且系统设计完善以后还可以将主控的FPGA固化成一片ASIC,那么这块ASIC就可以作为专用的数字密码锁芯片。 方案的论证比较 在实际应用中, 由于程序容易跑飞, 系统的可靠性能较差,而基于FPGA设计的电子密码锁克服了基于单片机设计密码锁的缺点。基于上述比较以上两种方案,根据系统设计要求,采用方案二。
4.3系统方案的总体设计
4.3.1 系统原理框图
本系统由主控芯片(FPGA)、键盘、显示电路、报警电路和开/关门电路组成,
而主控芯片又可分为按键处理部分、控制部分和译码显示部分。系统原理框图如图4.1所示: 键盘
4.3.2总体设计原理
实现系统大量逻辑电路的集成,在设计中使用了现场可编程逻辑门阵列器件
图4.1 系统框图 开/关门电路 报警电路 按键处理 主控部分 FPGA 译码显示 显示 (FPGA)。FPGA主要实现以下逻辑功能:键盘处理、数码显示、设置密码、解码
11
开门以及报警等控制功能。
本系统有13个按键,包括0~9共10个数字键和1个确认键,1个警报复位键,1个清0键。输入正确密码后,按确认键即可开门,在门开的状态下,第一次输入新密码后再确认密码可设置密码,输入的密码在八位数码管上显示,最后输入的数字显示在最右边,每输入一位数字,密码在数码管上的显示左移一位。高位的零不用输入,因此密码可以为1~8位。初始密码为0,即上电后,按确认键即可开门。门开后可通过锁门按钮关门,门关上后要再次输入密码才能开门。在输入密码的过程中,当用户键入错误密码时,系统就会报警,由扬声器发出报警声,当连续三次出现密码错误时,则系统会长时间报警不止,这时必须按警报复位键方可停止。 5 系统硬件设计
5.1 系统的硬件模块实现
整个电子密码锁系统可划分为键盘扫描、获取键值、数码显示、设置密码和解码开门等五个子模块。通过FPGA的处理,从而实现基于FPGA的电子密码锁的设计,系统实现框图如图5.1所示。
5.2 基于FPGA的设计
5.2.1 主控芯片EPF10K10LC84-4的介绍
FPGA器件选择Altera公司FLEX10K10系列的EPF10K10LC84-4芯片。FLEX10K器件是工业界第一个嵌入式的PLD(可编程逻辑器件),由于其具有高密度、
12
低成本、低功率等特点,成为当今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的片内存储器;内部模块间采用高速、延时可预测的快速通道连接;逻辑单元间具有高速、高扇出的级联链和快速进位链;片内还有三态网络和6个全局时钟、4个全局清零信号以及丰富的I/O资源;每个I/O引脚可以选择为三态控制或集电极开路输出,可以通过编程控制每个I/O引脚的速度以及I/O寄存器的使用[21]。
5.2.2 FPGA逻辑功能结构及开发
FPGA芯片FLEX10K在工作期间,将配置数据保存在SRAM中,而SRAM数
据是易丢失的。SRAM单元必须在器件加电后装入配置数据,且配置完成后,它的存储器和I/O引脚必须被初化。初始化后,器件进入用户模式,开始系统运行。对于FLEX10K系列器件,Altera公司提供了4种配置方案:EPC1(或EPC1441)EPPOM方式配置法、被动串行法、被动并行同步法、被动并行异步法。对器件进行配置时,我们先用被动串行法(passive serial)。这种方式是通过下载电缆对器件进行配置的,适合于调试阶段。当整个系统设计完成后,利用EPPOM方式对器件进行配置。这样固化在EPROM中的数据将在系统上电时对FPGA芯片配置,其中EPROM芯片选用EPC1441[22]。
FPGA使用的开发软件为MAX+PLUS II。该软件是ALTERA公司开发的一个集设计输入、编译、仿真和编程为一体的超级集成环境;提供了自动逻辑综合工具,可以在多个逻辑层次上对高级设计描述进行综合、优化,大大缩短了编译时间,加速了FPGA设计开发进程[23]。MAX+PLUS II支持各种HDL输入选项,包括VHDL、Verilog HDL和ALTERA的硬件描述语言AHDL;提供丰富的库单元供设计者调用,其中包括74个系列的全部器件和多种特殊的逻辑宏单元(macrofunction),以及新型的参数化的巨单元(magafunction)。FPGA设计经过4个基本阶段:设计输入、
13
设计编译、设计验证和器件编程。首先,根据系统的逻辑功能生成顶层结构图。然后,分成几个小模块进行下一级设计。由此由上而下分析其逻辑功能,从底层进行设计编译,每一级都进行波形验证。当最后顶层模块的逻辑功能在波形仿真中满足系统时序要求时,才可进行器件编程[24]。
5.3 键盘控制电路结构与原理
按键方式分为式和行列式两种,本设计采用行列式按键结构,是4×4键盘,本设计中只用了其中的11个按键。行列式按键是指直接用I/O口线通过动态扫描构成的按键电路。每个按键通过动态扫描需要八根I/O口线,每根I/O口线上的按键工作状态不会影响其他I/O口线的工作状态。它的电路配置灵活,软件结构简单,占用的I/O资源少。
首先固定输出4行为高电平(接到电源),然后输出4列为低电平,在读入输出的4行的值,通常高电平会被低电平拉低,如果读入的4行均为高电平,那么肯定没有按键按下,否则,如果读入的4行有一位为低电平,那么对应的该行肯定有一个按键按下,这样便可以获取到按键的行值。同理,获取列值也是如此,先输出4列为高电平,然后在输出4行为低电平,再读入列值,如果其中有哪一位为低电平,那么肯定对应的那一列有按键按下。
获取到行值和列值以后,组合成一个8位的数据,根据实现不同的编码在对每个按键进行匹配,找到键值后在7段码管显示。
按键控制电路如图5.2所示:
14
图5.2 4×4键盘结构原理图
5.4 LED显示器结构与原理
LED显示块是由发光二极管显示字段的显示器件。在单片机应用系统中通常使用的是7段LED。这种显示块共有共阴极与共阳极两种,本设计将采用共阳极。共阳极LED显示块的发光二极管与阳极并接[25]。
数码管显示块有8个发光二极管,其中7个发光二极管构成七笔字形“8”,1个发光二极管构成小数点。7段显示块与FPGA接口非常容易。只要将一个8位并行输出与显示块的发光二极管引脚相连即可。8位并行输出口输出不同的字节数据即可获得不同的数字或字符,如表5.1所示。通常将控制发光二极管的8位字节数据称为段选码。共阳极与共阴极的段选码互为补数。
表5.1 LED显示块功能表
显示字共阴极段选共阳极段选显示字符 共阴极段选共阳极段符
码 码 码 选码 15
0 3FH C0H C 39H C6H 1 06H F9H D 5EH A1H 2 5BH A4H E 79H 86H 3 4FH B0H B 7CH 83H 4 66H 99H F 71H 8EH 5 6DH 92H P 73H 8CH 6 7DH 82H U 3EH C1H 7 07H F8H L 31H CEH 8 7FH 80H Y 6EH 91H 9 6FH 90H ┊ ┊ ┊ A 77H 88H
16
5.5 报警电路
图5.3 报警电路
6 系统的软件设计
6.1系统主控制流程框图
当用户输入密码后,按确认键即可开门,在门开的状态下,输入新密码,再按
确认键可设置密码,输入的密码在八位数码管上显示,最后输入的数字显示在最右边,每输入一位数字,密码在数码管上的显示左移一位。高位的零不用输入,因此密码可以为1~8位。初始密码为0,即上电后,按确认键即可开门。 本系统控制流程如图6.1所示:
17
开始 是 有锁门信号? 清显示,关门 否 键盘输入 是 是数字键? 输入一位密码 否 是 门已开? 存入新密码,清显示 否 是 密码正确? 开门 否 不正确次数是 报警 达到三? 否 不正确次数加一 图6.1 系统控制图
18
键盘扫描程序框图
开始 时钟上升沿触列为高电逐列扫描 图6.2 键盘扫描程序框图
6.2
19
6.3 获取键值程序框图
开始 时钟上升按键按清判断行左移 右移清零 和列 输出
图6.3 键值程序框图
20
6.4解码、报警模块
开始 门已开? 输入密码后确密码正开门,不响警报 计数器+1,仍关门 不正确次数 复计数器清0,警报停报警 图6.4 解码报警模块 7系统的原理实现
7.1系统的层次化设计
基于FPGA的数字系统的层次化设计,一般都要经过 4 个阶段: 设计输入、
21
编译、仿真验证、下载器件。本设计采用的是自下而上的设计方法 , 逐层完成相应的描述、编译、仿真与验证 , 即先建立一些低层次的设计 , 再将它们组合在一起 , 最后形成一个单一的顶层设计文件。一般的VHDL综合工具都有多种输入方式 ,主要有: 各种文本输入、原理图输入和波形输入。对于不同层次的模块, 应采用不同的输入方式进行描述。由于 VHDL 擅长描述模块的逻辑功能 , 而原理图擅长描述硬件连接关系,所以在底层设计中,对底层所有模块使用VHDL 语言进行描述,在顶层设计中,使用原理图输入方法。当各个模块分别编译成功后 ,则创建一个个元件符号。再用图形编辑器将各元件模块组装起来 ,这就是本设计中最顶层的图形设计文件。
7.2顶层图形设计
本设计在QuartusⅡ环境下的顶层图形设计文件如图7.1所示。
图7.1 顶层图形
原理图输入完成后还要选定器件,锁定引脚,然后就可以进行综合了。如果综合没有错误的话就可以对芯片进行配置了,配置完成后FPGA芯片就成了一片密码锁芯片。再与其它的电路相连就构成一个完整的数字密码锁。
22
7.3 系统仿真演示结果
图7.2 系统仿真演示结果
总结
在基于FPGA的系统设计中,不同电路系统的设计往往采用自顶向下的设计方法,亦即将一个大的系统分解成单元电路。这样做的好处是可以先调试各个单元电路,在每个单元电路设计完成后 ,采用专门的仿真工具进行功能仿真,确定每个单元电路都没有问题后再连接顶层图形文件,这样整个系统的调试就轻松得多,可节省不少设计时间。
由于考虑到体积、成本等因素,本装置在性能上功能上还存在不足,还有待于进一步提高:
(1)增加语音播报功能,可以提高装置的灵敏度,同时方便用户的操作。 (2)可在装置中增加一个语音芯片,将蜂鸣报警改为语音说明指示,可以根据输入的密码数字播报,同时可以扩展锁的安全防盗报警功能。
23
本系统的特色与创新点:
(1)从测试结果分析可知,本装置采用较低成本的器件设计制作,且误差较小,完全满足用户的基本要求。
(2)本装置结构简单、体积小、性能稳定,操作容易、使用方便,可以安装在不同的门上,具有一定推广应用价值。
(3)本系统结合了现在最有发展前景的FPGA设计的电子密码锁系统,安全可靠,科技含量高,易于扩展。
参考文献
[1] 高移南.遥控变号电子锁[J].电子世界,1994,07:15
[2 ]. 许 琦.基于FPGA 的电子密码锁设计[J ]. 中国科技信息, 2007 (1) : 240-241 [3] 刘韬,楼兴华.FPGA数字电子系统设计与开发实例导航[M].人民邮电出版社,2005.
[4] 王汝文,宋政湘,杨伟等.电器智能化原理及应用[M].北京:电子工业出版社,2003.4:45.
[5] 尤国平,陈新,林伟,黄世震.基于VHDL语言的串行密码锁设计[J].国外电子测量技
[6]王宽仁.可靠安全的智能密码锁.电子技术应用.2001,27(2):14~16.术,2005(9):13-16.
[7] Susan A. R. Garrod, Rober J. Borns.The Application and Design of Digital logic Analysis[M]. Purdue University, Saunders College Publishing, Philadelphia, 1991:45. [8]廖裕评,陆瑞强.CPLD数字电路设计.北京:清华大学出版社,2001. [9] A.T. Alouani,etal. On sensor Track Fusion[M]. Proceedings of America control Conference,Maryland, June 1994:142~144.
[10 ]王卫兵, 刘克刚, 朱秋萍. 用FPGA 的电子密码锁[J ]. 电子技术, 2005, 32 (1) : 26- 28.
[11] 李广军,孟宪元。可编程ASIC设计及其应用。成都:电子科技大学出版社,2000.
[12] 尹常永编著.EDA技术与数字系统设计.西安:西安电子科技大学出版社.2004. [13] 潘松等编著.VHDL实用教程.电子科技大学出版社.2002.6.
24
[14] 辛春艳,VHDL硬件描述语音。北京:国防工业出版社,2002.
[15] (美)Stefan Sjoholm. 用VHDL设计电子线路.边计年,薛宏熙译。北京:清华大学出版社,1997.
[16] 杨春玲,张辉.现代可编程逻辑器件及SOPC应用设计[M].哈尔滨工业大学出版社,2005.
[17] 尹常永编著.EDA技术与数字系统设计.西安:西安电子科技大学出版社.2004. [ 18 ]谭会生, 瞿遂春. EDA 技术综合应用实例与分析[M ].西安: 西安电子科技大学出版社, 2004.
[19] 于枫编著.ALTERA可编程逻辑器件应用技术.北京:科学出版社.2004. [20] A.T. Alouani,etal. On sensor Track Fusion[M]. Proceedings of America control Conference,Maryland, June 1994:142~144.
[21]李连华. 基于FPGA 的电子密码锁设计[J ]. 中国科技信.
[22]王道宪.CPLD/FPGA可编程逻辑器件应用与开发.北京:国防工业出版社,2004.1. [23] 卢毅,赖杰,VHDL与数字电路设计,北京:科学出版社,2002.3. 社,2005.
[24] 王振红.VHDL数字电路设计与应用实践教程.北京:机械工业出版社,2003. [25] 阎石.数字电子技术基础[M].北京:高等教育出版社,1998:19
25
因篇幅问题不能全部显示,请点此查看更多更全内容
Copyright © 2019- sarr.cn 版权所有 赣ICP备2024042794号-1
违法及侵权请联系:TEL:199 1889 7713 E-MAIL:2724546146@qq.com
本站由北京市万商天勤律师事务所王兴未律师提供法律服务