课程设计(论文)_基于FPGA的智能密码锁设计

上传人:工**** 文档编号:486218202 上传时间:2023-03-10 格式:DOC 页数:71 大小:6.59MB
返回 下载 相关 举报
课程设计(论文)_基于FPGA的智能密码锁设计_第1页
第1页 / 共71页
课程设计(论文)_基于FPGA的智能密码锁设计_第2页
第2页 / 共71页
课程设计(论文)_基于FPGA的智能密码锁设计_第3页
第3页 / 共71页
课程设计(论文)_基于FPGA的智能密码锁设计_第4页
第4页 / 共71页
课程设计(论文)_基于FPGA的智能密码锁设计_第5页
第5页 / 共71页
点击查看更多>>
资源描述

《课程设计(论文)_基于FPGA的智能密码锁设计》由会员分享,可在线阅读,更多相关《课程设计(论文)_基于FPGA的智能密码锁设计(71页珍藏版)》请在金锄头文库上搜索。

1、 摘 要本文简述了VHDL语言的功能及其特点,介绍一种用EDA技术和VHDL语言,在Quartus 环境下,设计一种新型的智能密码锁,该密码锁具有密码预置和误码报警等功能,用一片FPGA(Field Programmable Gate Array)现场可编程门阵列芯片实现,从而大大简化了系统结构,降低成本,提高了系统的保密性和可靠性。它体积小,功耗低,价格便宜,安全可靠,维护和升级都十分方便,具有较好的应用前景。关键词:智能密码锁、硬件描述语言、电子设计自动化、Quartus IIAbstract The paper introduces the function and characteri

2、stic of VHDL language. A new type intelligent digital password lock is designed using VHDL language. An FPGA (Field Programmable Gate Array) chips is adopted in this design, thus greatly simplifying the system structure, reduce cost and improve the system of confidentiality and reliability .This new

3、 digital intelligent has better application prospect based on its small volume, low power, security and easy maintenance and upgrade.Keywords: intelligent lock、VHDL、 EDA、Quartus II目 录引言31 VHDL语言特点32 智能密码锁的设计要求43 智能密码锁的电路组成4密码锁输入电路4密码锁控制电路43.3 密码锁输出显示电路44 密码锁输入电路的设计54.1 时序电路54.2 键盘扫描电路84.3 键盘消抖电路94.4

4、 键盘译码电路104.5 按键存储电路134.6 智能密码锁控制电路145 结论23谢 辞24参考文献25引言随着社会物质财富的日益增长,安全防盗已成为全社会问题。人们对锁的要求越来越高,既要安全可靠的防盗,又要使用方便,因此具有防盗报警等功能的电子密码锁代替密码量少,安全性差的机械密码锁已是必然趋势。目前设计密码锁的方法很多,例如用传统的PCB(Printed Circuit Board, 印刷电路板)设计或者用单片机设计。但是使用的电子密码锁大部分是采用单片机进行设计,其成本较高及可靠性得不到保证,电路比较复杂,性能不够灵活。而用VHDL(VHSIC Hardware Descriptio

5、n Language)可以更加快速、灵活地设计出符合各种要求的密码锁,优于其他设计方法,使设计过程达到高度自动化。本文采用先进的EDA(即 Electronic Design Automation)技术,利用Quartus工作平台和VHDL 语言,设计了一种新型的智能密码锁。该密码锁具有密码预置和误码报警等功能,用一片FPGA芯片实现,从而大大简化了系统结构,降低成本,提高了系统的保密性和可靠性1。采用这种器件开发的数字系统,其升级与改进极其方便。1 VHDL语言特点电子设计自动化EDA的关键技术之一就是可以用硬件描述语言HDL(Hardware Description Language)来描

6、述硬件电路。VHDL是用来描述从抽象到具体级别的工业标准语言,它是由美国国防部在20世纪80年代开发的HDL,现在已成为IEEE承认的标准硬件描述语言。VHDL支持硬件的设计、验证、综合和测试,以及硬件设计数据的交换、维护、修改和硬件的实现,具有描述能力强、生命周期长、支持大规模设计的分解和已有设计的再利用等优点2。VHDL 主要用于描述数字系统的结构、行为和功能,其程序结构特点是将一个电路模块或一个系统分成端口和内部功能算法实现两部分。对于一个电路模块或者数字系统而言,定义了外部端口调用该电路模块或数字系统,而不必知道其内部结构和算法。VHDL 的特点使得电子系统新的设计方法-“自顶向下”设

7、计方法更加容易实现。可以先对整个系统进行方案设计,按功能划分成若干单元模块,然后对每个单元模块进一步细分,直到简单实现的单元电路。其优点:用软件的方式设计硬件;用软件方法设计的系统到硬件系统的转换是由有关的开发软件自动完成;设计过程中可用有关软件进行各种仿真等3。2 智能密码锁的设计要求该密码锁的密码由六位十进制数字组成,初始设定“000000”。可由用户任意设置密码。密码输入正确时开锁,连续三次输入错误密码时系统报警。3 智能密码锁的电路组成为达到以上功能,可将电子密码锁分为以下几个模块:键盘接口电路、键盘矩阵、键盘扫描、键盘消抖、键盘译码及按键存储电路。数字按键输入、存储及清除。功能按键设

8、计。密码清除、修改与存储。数字密码锁的激活与解除。3.3 密码锁输出显示电路BCD译码、动态扫描电路。4 密码锁输入电路的设计4.1 时序电路图1是电子密码锁的输入电路框图,由键盘扫描电路、键盘消抖电路、键盘译码电路、按键数据缓存器,加上外接的一个34矩阵式键盘组成。 矩阵式键盘是一种常见的输入装置,在日常的生活中,矩阵式键盘在计算机、 、 、微波炉等各式电子产品上已经被广泛应用。其中数字09作为密码锁数字输入按键,*作为“上锁”功能按键,#作为“解除清除”功能按键。键盘上的每一个按键其实就是一个开关电路,当某键被按下时。该按键的接点会呈现0的状态,反之,未被按下时则呈现逻辑1的状态。 在一个

9、系统的设计中,往往需要多种时钟信号,最为方便的方法是利用一个自由计数器来产生各种需要的频率。时序电路中使用了三种不同频率的工作脉冲波形:系统时钟脉冲、消除抖动取样信号、键盘扫描信号。本电路需要:系统主时钟、消抖取样时钟和动态扫描时钟。当一个系统中需使用多种操作频率的脉冲波形时,其方法就是利用一个自由计数器来产生各种需要的频率。也就是先建立一个N位计数器,N的大小根据电路的需求决定,N的值越大,电路可以分频的次数就越多,这样就可以获得更大的频率变化,以便提供多种不同频率的时钟信号。若输入时钟为CLK,N位计数器的输出为QN1.0,则Q(0)为CLK的2分频脉冲信号,Q(1)为CLK的4分频脉冲信

10、号Q(5 DOWNTO 4)取得的是一个脉冲波形序列,其值依000110110001周期性变化,其变化频率为32分频4。图1 34键盘矩阵图 时序产生电路的VHDL程序:library ieee; use ieee.std_logic_1164.all;use ieee.std_logic_arith.all;use ieee.std_logic_unsigned.all;entity fee_counter isport(clk : in std_logic; clk_a : out std_logic; clk_b : out std_logic_vector(1 downto 0);en

11、d fee_counter;architecture a of fee_counter issignal q : std_logic_vector(6 downto 0);beginprocess (clk)beginif clkevent and clk = 1 thenq = q + 1;end if;end process;clk_a = q(1);clk_b = q(4 downto 3);end architecture;分析: 首选信号q建立一个7位自由计数器,对输入主时钟进行降频处理; 使用clk_a = q(1)语句,取得一个脉冲波形,对主时钟进行4分频; 使用clk_b =

12、q(4 downto 3) 语句,取得一个脉冲序列; library ieee是表示库文件; use ieee.all打开库中地程序包,是表示实体中描述器件的输入、输出或者数据类型;实体声明部分的语句格式: entity 实体名 is port端口表;- std_logic表示逻辑型端口,std_logic_vector(1 downto 0)为标准型逻辑位矢量且矢量长度为2。 end 实体名; 结构体的语句格式为:architecture a of 实体名is 信号声明语句;-为内部型号名称及类型声明 begin功能描述语句end 结构体名;process (clk)-是进程名,用来描述cl

13、k的行为if clkevent and clk = 1 thenq = q + 1;-当时钟信号clk = 1时,则q = q + 1,否则clk = 0时,保持原状态。信号用= 来赋值if 语句的格式为:if 条件语句 then顺序语句; end if;-其中条件语句必须由boolean表达式构成仿真波形图: 该图是时序电路的仿真波形图,从其结果可以看出程序对时钟信号进行了降频处理,得到了两个不同的时钟脉冲序列。图2时序电路仿真波形图4.2 键盘扫描电路扫描电路的作用是用来提供键盘扫描信号的,扫描信号变化的顺序依次为11101101101101111110依序地周而复始。每扫描一排按键就检查

14、一次是否有按键被按下,如果这排没有按键被按下就忽略,反之,如果出现被按下的键则立刻进行按键编码的动作,且将编码的结果存储于寄存器中。键盘扫描电路的VHDL程序:library ieee; use ieee.std_logic_1164.all;use ieee.std_logic_arith.all;use ieee.std_logic_unsigned.all;entity scan isport(clk : in std_logic; clk_scan : out std_logic_vector(3 downto 0);end scan;architecture a of scan issignal s : std_logic_vector(1 downto 0);signal q : std_logic_vector(3 downto 0);beginprocess (clk)beginif clkevent and clk = 1 thenq = q + 1;s = q (3 downto 2);end if;end process;clk_scan= 1110 when s=0 else 1101 when s=1 else 1011 when s=2 else

展开阅读全文
相关资源
相关搜索

当前位置:首页 > 幼儿/小学教育 > 幼儿教育

电脑版 |金锄头文库版权所有
经营许可证:蜀ICP备13022795号 | 川公网安备 51140202000112号