1、基于FPGA的电子密码锁的设计摘 要随着电子技术的发展,具有防盗报警等功能的电子密码锁代替密码量少、安全性差的机械式密码锁已是必然趋势。电子密码锁与普通机械锁相比,具有许多独特的优点:保密性好,防盗性强,可以不用钥匙,记住密码即可开锁等。目前使用的电子密码锁大部分是基于单片机技术,以单片机为主要器件,其编码器与解码器的生成为软件方式。在实际应用中,由于程序容易跑飞,系统的可靠性能较差。本文主要阐述了一种基于现场可编程门阵列FPGA器件的电子密码锁的设计方法。用FPGA器件构造系统,所有算法完全由硬件电路来实现,使得系统的工作可靠性大为提高。由于FPGA具有现场可编程功能,当设计需要更改时,只需
2、更改FPGA中的控制和接口电路,利用EDA工具将更新后的设计下载到FPGA中即可,无需更改外部电路的设计,大大提高了设计的效率。因此,采用FPGA开发的数字系统,不仅具有很高的工作可靠性,而且升级也极其方便。本文采用EDA技术,利用Quartus II工作平台和硬件描述语言,设计了一种电子密码锁,并通过一片FPGA芯片实现。关键词:电子密码锁 FPGA 硬件描述语言 EDAAbstractWith the development of electronic technology, electronic password lock with burglar alarm and other fun
3、ctions replacing less password and poor security mechanical code lock is an inevitable trend. compared electronic password lock with ordinary mechanical locks, it has many unique advantages:confidentiality, and security in nature, do not use the key, remember password can unlock it etc .Most electro
4、nic password locks we used now is based upon SCM technology ,SCM is its mainly device ,and the creating of encoding and decoding devices is the fashion of Software mode. In practical application, the reliability of the system may be worse because of easy running fly of the programme.This paper mainl
5、y expatiates a design method of electronic password lock based upon Field Programmable Gate Array device. We use FPGA devices to construct system , all of the algorithm entirely achieved by the hardware circuit , because of FPGA has the function of ISP , when the design needs to be changed We only n
6、eed to change the control and interface circuit of FPGA,EDA tools are used to download the updated design to FPGA without changing the design of the external circuit , this greatly enhance the efficiency of the design .Therefore , we use FPGA to empolder the digital system has not only high reliabil
7、ity but also extremely convenient of upgrading and improvement .In this paper ,we use EDA technology , Quartus II platform and hardware description language designing an electronic password lock ,and it achieved through an FPGA chip.Keywords:electronic password lock FPGA hardware description languag
8、e EDA目 录摘 要-IAbstract-II第1章 绪论-11.1 国内外现状及其发展-11.2 电子密码锁的系统简介-11.3 系统设计要求-21.4 本课题的研究目的和意义-2第2章 现场可编程门阵列FPGA -32.1 FPGA的基本结构 - 32.1.1 可配置存储器-32.1.2 可配置逻辑块(CLB)-32.1.3 输入/输出块(IOB)-32.1.4 可编程内部连线(PI)-42.2 FPGA的设计流程-42.3 VHDL硬件描述语言-4第3章 电子密码锁的设计与仿真-53.1 硬件设备-53.2 密码锁输入电路-53.3 密码锁控制电路-83.4 系统有关编译和仿真-8结论
9、 11参考文献 12致谢 13附录 14第1章 绪论1.1 国内外现状及其发展随着人们生活水平的提高和安全意识的加强,对安全的要求也就越来越高。锁自古以来就是把守护门的铁将军,人们对它要求甚高,既要安全可靠的防盗,又要使用方便,这也是制锁者长期以来研制的主题。随着电子技术的发展,各类电子产品应运而生,电子密码锁就是其中之一。据有关资料介绍,电子密码锁的研究从20世纪30年代就开始了,在一些特殊场所早就有所应用。这种锁是通过键盘输入一组密码完成开锁过程。研究这种锁的初衷,就是为提高锁的安全性。由于电子锁的密钥量(密码量)极大,可以与机械锁配合使用,并且可以避免因钥匙被仿制而留下安全隐患。电子锁只
10、需记住一组密码,无需携带金属钥匙,免除了人们携带金属钥匙的烦恼,而被越来越多的人所欣赏。电子锁的种类繁多,例如数码锁,指纹锁,磁卡锁,IC卡锁,生物锁等。但较实用的还是按键式电子密码锁。20世纪80年代后,随着电子锁专用集成电路的出现,电子锁的体积缩小,可靠性提高,成本较高,是适合使用在安全性要求较高的场合,且需要有电源提供能量,使用还局限在一定范围,难以普及,所以对它的研究一直没有明显进展。目前,在西方发达国家,电子密码锁技术相对先进,种类齐全,电子密码锁已被广泛应用于智能门禁系统中,通过多种更加安全,更加可靠的技术实现大门的管理。在我国电子锁整体水平尚处于国际上70年代左右,电子密码锁的成
11、本还很高,市场上仍以按键电子锁为主,按键式和卡片钥匙式电子锁已引进国际先进水平,现国内有几个厂生产供应市场。但国内自行研制开发的电子锁,其市场结构尚未形成,应用还不广泛。国内的不少企业也引进了世界上先进的技术,发展前景非常可观。希望通过不断的努力,使电子密码锁在我国也能得到广泛应用1。目前使用的电子密码锁大部分是基于单片机技术,以单片机为主要器件,其编码器与解码器的生成为软件方式2。在实际应用中,由于程序容易跑飞,系统的可靠性能较差。基于现场可编程逻辑门阵列FPGA器件的电子密码锁,用FPGA器件构造系统,所有算法完全由硬件电路来实现,使得系统的工作可靠性大为提高。由于FPGA具有现场可编程功
12、能,当设计需要更改时,只需更改FPGA中的控制和接口电路,利用EDA工具将更新后的设计下载到FPGA中即可,无需更改外部电路的设计,大大提高了设计的效率。1.2 电子密码锁的系统简介通用的电子密码锁主要由三个部分组成:数字密码输入电路、密码锁控制电路和密码锁显示电路。(1) 密码锁输入电路包括时序产生电路、键盘扫描电路、键盘弹跳消除电路、键盘译码电路等几个小的功能电路。(2) 密码锁控制电路包括按键数据的缓冲存储电路,密码的清除、变更、存储、激活电锁电路(寄存器清除信号发生电路),密码核对(数值比较电路),解锁电路(开/关门锁电路)等几个小的功能电路。(3) 密码显示电路主要将显示数据的BCD
13、码转换成相对应的编码。如,若选用七段数码管显示电路,主要将待显示数据的BCD码转换成数码器的七段显示驱动编码。1.3 系统设计要求设计一个具有较高安全性和较低成本的通用电子密码锁,具体功能要求如下:(1)数码输入:每按下一个数字键,就输入一个数值,并在显示器上的显示出该数值,同时将先前输入的数据依序左移一个数字位置。(2)数码清除:按下此键可清除前面所有的输入值,清除为“0000”。(3)密码更改:按下此键时会将目前的数字设定成新的密码。(4)激活电锁:按下此键可将密码锁上锁。(5)解除电锁:按下此键会检查输入的密码是否正确,密码正确即开锁。1.4 本课题的研究目的和意义随着人们生活水平的提高
14、,对家庭防盗技术的要求也是越来越高,传统的机械锁由于其构造的简单,被撬的事件屡见不鲜,电子锁由于其保密性高,使用灵活性好,安全系数高,受到了广大用户的欢迎。现在市场上主要是基于单片机技术的电子密码锁,但可靠性较差。FPGA即现场可编程门阵列,它是在PAL、GAL、EPLD等可编程器件的基础上进一步发展的产物,是一种超大规模集成电路,具有对电路可重配置能力。通常FPGA都有着上万次的重写次数,也就是说现在的硬件设计和软件设计一样灵活、方便。相对于基于单片机技术的电子密码锁,用FPGA器件来构成系统,可靠性提高,并且由于FPGA具有的现场可编程功能,使得电子密码锁的更改与升级更为方便简单。通过本次
15、设计掌握FPGA系统设计的方法,熟悉FPGA设计的相关软件,以及硬件描述语言的使用,了解电子密码锁的系统构成,利用FPGA实现电子密码锁的设计与实现,可以加深自己对所学专业的认识,关联知识,增强自己的动手能力,积累实践经验,为以后的工作打好基础。第2章 现场可编程门阵列FPGA自1985年Xilinx公司推出第一片大规模现场可编程逻辑器件(FPGA)至今,FPGA已经历了十几年的历史。在这十几年的过程中,可编程器件有了惊人的发展:从最初的1200个可利用门,到今天的25万可利用门,规模增大了200多倍;FPGA供应商也从Xilinx的一枝独秀,到今天近20个厂商的分庭抗争;FPGA从单一的基于
16、SRA结构到今天各种结构类型的出现,都充分体现了可编程器件这一巨大市场的吸引力。2.1 FPGA的基本结构FPGA的发展非常迅速,形成了各种不同的结构。按逻辑功能块的大小,FPGA可分为细粒度FPGA和粗粒度FPGA。细粒度FPGA的逻辑功能块较小,资源可以充分利用,但连线和开关多,速度慢;粗粒度FPGA的逻辑功能块规模大,功能强,但资源不能充分利用。2.1.1 可配置存储器FPGA芯片逻辑功能的配置是由按点阵分布于芯片的存储单元静态存储器(SRAM)实现的,即通过对分布的SRAM的不同加电配置,决定各部分的逻辑定义。对于FPGA器件编程实现,实际上就是由加载于SRAM上的配置数据决定和控制各
17、个CLB、IOB及内部连线PI的逻辑功能和它们之间的相互连接关系。加载不同的配置数据,芯片便实现不同的逻辑功能。配置LCA的数据文件由XACT(Xilinx Automated CAE Tools)开发系统产生,通过数据配置方式及相应接口加载于芯片中。2.1.2 可配置逻辑块(CLB)XC4000系列的CLB具有13个输入、4个输出。内部由两个独立的四输入逻辑函数发生器、一对触发器和若干个由配置控制的多路转换器组成。逻辑块的输入输出可以接到外部的可编程连线资源。两个四输入逻辑函数发生器(输入分别为F1F4和G1G4),可以独立提供四输入的任意定义的布尔函数,它们的输出分别为F和G。2.1.3
18、输入/输出块(IOB)用户可配置的IOB为芯片外部引脚和内部逻辑提供了一个界面,每个IOB控制一个外部引脚,并可定义为输入、输出或双向三种功能。当IOB定义为输入时,输入信号经Pad进入输入缓冲器,并根据配置可以直接输入,亦可以通过边沿触发器或电平敏感锁存器输入。当IOB定义为输出时,输出信号可以通过配置选择是否反相,是直接传输到Pad,还是通过边沿触发器寄存后传输。可以选择用输出使能信号(OE)使输出缓冲器是否为高阻状态,以实现三态输出或双向I/O传输。2.1.4 可编程内部连线(PI)内部连线由一些具有可编程开关点或开关矩阵的金属线段组成,结构对称、规范,适合于建立自动有效的布局布线算法。
19、布线通道的数目由阵列规模决定。2.2 FPGA的设计流程FPGA设计流程包括系统设计和设计实现,系统方案完成之后即进入设计实现阶段的工作,他以系统方案为输入,进行RTL级描述、功能仿真(RTL级仿真)、逻辑综合、布线前门级仿真、适配(布局布线)、时序仿真(布线后门级仿真)、时序分析、器件编程、系统验证一系列流程的处理才能完成FPGA芯片的设计,其设计流程如图2.4所示。需要说明的是,如果仿真验证不对或者某一步有错,就要返回修改。有必要检查和修改的地方有RTL级描述、系统方案、约束和测试激励等。一般情况下,对RTL级的描述即原理图或者HDL设计代码的修改最多也最有效。修改后要重新走一遍流程。有时
20、要反复修改,经过多次这样的迭代才能完成最后的设计。2.3 VHDL硬件描述语言VHDL(Very high speed integrated circuit Hardware Description Language)硬件描述语言从高于逻辑级的抽象层次上描述硬件的功能、信号连接关系及定时关系。VHDL的设计流程如下图。图2.4 VHDL的设计流程第3章 电子密码锁的设计与仿真通过第一章电子密码锁系统结构的分析,我们知道通用的电子密码锁主要由三个部分组成:数字密码输入电路、密码锁控制电路和密码锁显示电路。也就是说,设计分为三个大的功能模块。图3.1为数字电子密码锁系统总体框图。图3.1 数字电子
21、密码锁系统总体框图3.1 硬件设备作为电子密码锁的输入电路,数字密码输入电路可采用一个34的通用数字机械键盘作为本设计的输入设备。机械式键盘具有低成本、可靠性高、构成电路简单、技术成熟和应用广泛等特点,因此将其应用到通用电子密码锁中还是比较适宜的。数字电子密码锁的显示信息电路可采用LED数码管显示和液晶屏幕显示两种。液晶显示具有高速显示、高可靠性、易于扩展和升级等优点,但是普通液晶显示屏存在亮度低、对复杂环境的适应能力差等缺点,在低亮度的环境下还需要加入其它辅助的照明设备,驱动电路设计相对复杂,因此本设计的显示电路使用通用的LED数码管。3.2 密码锁输入电路1时序产生电路本时序产生电路中使用
22、了三种不同频率的工作脉冲波形:系统时钟脉冲(它是系统内部所有时钟脉冲的源头,且其频率最高)、弹跳消除取样信号、键盘扫描信号。当一个系统中需使用多种操作频率的脉冲波形时,最方便的方法之一就是利用一计数器来产生各种需要的频率。也就是先建立一个N位计数器,N的大小根据电路的需求决定,N的值越大,电路可以分频的次数就越多,这样就可以获得更大的频率变化,以便提供多种不同频率的时钟信号。若输入时钟为CLK,N位计数器的输出为QN-1.0,则Q(0)为CLK的2分频脉冲信号,Q(1)为CLK的4分频脉冲信号,Q(2)为CLK的8分频脉冲信号Q(N-1)为CLK的2N分频脉冲信号;Q(5 DOWNTO 4)取
23、得的是一个脉冲波形序列,其值依000110110001周期性变化,其变化频率为CLK的32分频。我们利用以上规律即可得到各种我们所需要频率的信号或信号序列。SIGNAL CLK: STD_LOGIC ; -电路工作时钟脉冲SIGNAL C_KEYBOARD: STD_LOGIC_VECTOR(1 DOWNTO 0); -键扫信号“00-01-10-11”寄存器SIGNAL C_DEBOUNCE: STD_LOGIC ; -去抖时钟信号2键盘扫描电路扫描电路的作用是用来提供键盘扫描信号的,扫描信号变化的顺序依次为11101101101101111110依序的周而复始。扫描时依序分别扫描四列按键,
24、当扫描信号为1110时扫描KY3这一排按键;当扫描信号为1101室,扫描KY2这一排按键;当扫描信号为1011时,扫描KY1这一排按键;当扫描信号为0111时,扫描KY0这一排按键。每扫描一排按键就检查一次是否有键被按下,如果这排没有按键被按下就忽略,反之,如果出现被按下的键则立刻进行按键编码的动作,且将编码的结果储存于寄存器中。-扫描信号发生器 COUNTER : BLOCK ISSIGNAL Q: STD_LOGIC_VECTOR(5 DOWNTO 0); SIGNAL SEL: STD_LOGIC_VECTOR (3 DOWNTO 0); -1110-1101-1011-0111 BEG
25、IN PROCESS (CLK_1K) IS BEGIN IF CLK_1KEVENT AND CLK_1K =1 THEN Q = Q+1; END IF; C_DEBOUNCE = Q(2) ; -去抖时钟信号, 大约125 Hz C_KEYBOARD = Q(6 DOWNTO 5) ; - 产生键扫信号*“00-01-10-11”, 大约16 Hz-C_DEBOUNCE = Q(1) ; -仿真时用 -C_KEYBOARD = Q(5 DOWNTO 4) ; -仿真时用 CLK KEY_IN(0) , D_OUT = C(0), CLK = C_DEBOUNCE); U2: DEBOUNCING PORT MAP (D_IN = KEY_IN(1) , D_OUT = C(1), CLK = C_DEBOUNCE); U3: DEBOUNCING PORT MAP (D_IN = KEY_IN(2) , D_OUT = C(2), CLK = C_DEBOUNCE );
copyright@ 2008-2022 冰豆网网站版权所有
经营许可证编号:鄂ICP备2022015515号-1