0 引言
传统机械锁的防盗功能差,在现代高科技安防系统中无法起到作用,已逐步被更可靠、更智能的电子数字密码锁代替。目前市场上的大部分密码锁产品是以单片机为核心的,利用软件进行控制,实际应用中系统稳定性较差且成本高。本文研究的是电子密码锁的一种纯硬件实现方案,为弥补传统技术的不足,采用EDA技术在可编程芯片上实现密码的存储、运算等操作,使产品既具有硬件的安全性和高速性,又具有软件开发的灵活性和易维护性。
1 主要技术与开发环境
1.1 EDA技术及特点
EDA(Electronic Design Automation),即“电子设计自动化”,是目前电子设计领域中的主流技术。EDA技术就是依靠功能强大的电子计算机,在EDA工具软件平台上,对以硬件描述语言为系统逻辑描述手段完成的设计文件,自动地完成逻辑编译、化简、分割、综合、优化和仿真,直至下载到可编程逻辑器件CPLD/FPGA或专用集成电路ASIC芯片中,实现特定的电子电路设计功能。与传统电子设计方法相比,EDA技术具有以下主要优势:
(1)可以在电子设计的各个阶段、各个层次进行计算机模拟验证;
(2)独特的自顶向下的电子设计方案;
(3)使设计者拥有完全的自主权。
1.2 硬件描述语言
VHDL(Very High Speed Integration Circuits Hard-ware Description Language),即“超高速集成电路硬件描述语言”,是当今电子设计领域的主流硬件描述语言。
它具有很好的电路行为描述能力和系统描述能力,且具有与具体硬件电路无关、与设计平台无关的特性,使得设计者可以专心致力于系统功能的实现,而不需要对不影响功能的、与工艺有关的因素花费过多的时间和精力。
1.3 开发环境
1.3.1 软件平台
QuartusⅡ是Altera公司推出的新一代开发软件,支持多种编辑输入法,包括图形输入法,基于硬件描述语言的文本编辑输入法和内存编辑输入法。它支持Altera的IP核,包含了LPM/MegaFunction宏功能模块库,使用户可以充分利用成熟的模块,简化自己的设计、提高开发效率。
Quartus Ⅱ作为一种可编程逻辑的设计环境,其强大的设计能力已经成为广大设计人员首选的开发工具,本设计采用的是Quartus Ⅱ9.0版本作为开发平台。
1.3.2 硬件平台
CPLD(Complex Programmable Logic Device),即复杂可编程器件,由于CPLD具有编程灵活、集成度高、设计开发周期短、制造成本低、保密性强等特点,本文的硬件测试是基于MAXⅡ系列的CPLD上完成的,芯片型号为EPM240T100C5。
2 密码锁功能要求
目前市面上的电子密码锁,只允许用户输入固定位数的密码。但在实际应用中,密码位数太多,不便于老年用户记忆,而位数太少,又不能满足一些对安全性能要求高的青年用户。本文中,基于CPLD的集成度高、成本低的特点,克服了以上缺点,让用户自行设定密码位数,该功能在同行业产品竞争中有一定的优势。
设计的电子密码锁可以完成以下功能:
(1)设置密码锁的密码位数n;
(2)n位密码的输入及显示;
(3)密码的核对;
(4)报警功能;
(5)密码的清除和修改。
主要由密码输入电路、核心控制电路和显示输出电路构成。其中,输入电路包括矩阵式键盘、键盘扫描电路、消抖电路、译码电路等;控制电路主要完成密码的输入、核对、清除和修改等功能;输出电路控制数码显示屏上密码值的显示。
2 密码锁功能要求
目前市面上的电子密码锁,只允许用户输入固定位数的密码。但在实际应用中,密码位数太多,不便于老年用户记忆,而位数太少,又不能满足一些对安全性能要求高的青年用户。本文中,基于CPLD的集成度高、成本低的特点,克服了以上缺点,让用户自行设定密码位数,该功能在同行业产品竞争中有一定的优势。
设计的电子密码锁可以完成以下功能:
(1)设置密码锁的密码位数n;
(2)n位密码的输入及显示;
(3)密码的核对;
(4)报警功能;
(5)密码的清除和修改。
主要由密码输入电路、核心控制电路和显示输出电路构成。其中,输入电路包括矩阵式键盘、键盘扫描电路、消抖电路、译码电路等;控制电路主要完成密码的输入、核对、清除和修改等功能;输出电路控制数码显示屏上密码值的显示。
4 仿真与下载
4.1 仿真
在编程下载之前,必须利用EDA工具对设计结果进行模拟测试,即仿真。仿真是EDA设计过程中的重要步骤。本文采用的时序仿真是最接近真实器件运行特征的仿真,仿真精度较高。以4位密码电路为例,做出了系统仿真图,如图3所示。
从图3中可以看出,通过输入端zin,先后输入了密码值“5623”,s0、s1、s2、s3存储的值在实时更新,分析波形,总结该系统基本达到了预期的功能需求,输出波形正常。
4.2 下载
在QuartusⅡ9.0软件中,利用集成EDA工具完成的下载步骤如下:
(1)根据开发板中可编程CPLD芯片EPM240T100C5的引脚特性,将本系统的顶层设计实体的端口进行引脚分配。
(2)适配器完成适配后生成了POF格式的下载文件,再通过JTAG编程电缆向CPLD芯片进行编程。
(3)单击下载按钮Start,即对目标器件进行下载操作。当Process进度显示100%时,表示下载成功。
(4)利用开发板上的外围接口电路,进行了硬件的测试。并利用嵌入式逻辑分析仪SignalTap Ⅱ观察密码输入、修改等运行情况。
5 结语
本文弥补了传统密码锁技术上的不足,研究出了一种利用VHDL语言,结合EDA技术,在可编程芯片CPLD上构造逻辑电路。由于所有密码的存储及运算都通过纯硬件实现,其逻辑执行速度远高于单片机。充分利用了CPLD的逻辑可编程性,开发周期短、效率高,设计出来的产品具有较高的可靠性,且功耗低、体积小、易维护,势必会在安防市场中取胜。