四位电子密码锁设计剖析
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
高级电子线路实验报告
题目:基于FPGA的四位电子密码锁设计院(系):信息与通信学院
专业:
学生姓名:
学号:
2015 年 6 月18 日
基于FPGA的的四位电子密码锁设计
摘要
本文主要介绍了一种运用可编程逻辑器件(FPGA)技术来编程实现电子密码锁的设计方法。在整个系统设计实现中采用FPGA器件作为控制器,继而了解密码锁系统的总体流程、各个模块的功能与接口的分配。基于FPGA,使用VHDL语言编写模块程序,再通过Quartus II 集成开发环境下进行设计、综合与仿真。要求用Verilog HDL语言实现系统中的各个模块功能,并且能够仿真,验证本次设计四位密码锁的功能。每按下一个数字键,就输入一个数值,并显示该数值,当按下密码更改键时会将目前的数字设定成新的密码。当按下激活电锁键的时候可以将密码锁上锁。当按下解除电锁键时会检查输入的密码是否正确,密码正确即开锁。电子密码锁由键盘扫描模块、分频模块、密码计数模块、比较器模块、存储模块、显示模块和控制模块七大部分组成。通过硬件描述,验证了整个设计的正确性以及系统的完整性。
关键词:可编程逻辑器件;电子密码锁;硬件描述;时序仿真
引言
本设计利用QuartusⅡ工作平台硬件描述语言,设计一种电子密码锁,并通过用FPGA 芯片实现。用VHDL语言使用自顶向下的方法对系统进行了描述,并在FPGA芯片上实现。设计充分利用了FPGA的资源可编程特性,可高效率的对系统进行升级与改进。设计的密码锁可设置任意密码,比一般的四位密码锁具有更高的安全可靠性,因此,采用FPGA 开发的数字系统,不仅具有很高的工作可靠性,其升级与改进也极其的方便,应用前景十分宽广。
随着人们生活水平的提高和安全意识的加强,对安全的要求也就越来越高,因此导致了电子行业的蓬勃发展。随着电子技术的发展,各类电子产品应运而生,电子密码锁就是其中之一。
在安全技术防范领域,具有防盗报警功能的电子密码锁逐渐代替传统的机械式密码锁,克服了机械式密码锁密码量少、安全性能差的缺点,使密码锁无论在技术上还是在性能上都获得了大大的提高。随着大规模集成电路技术的发展,特别是单片机的问世,出现了带微处理器的智能密码锁,它除具有电子密码锁的功能外,还引入了智能化管理、专家分析系统等功能,从而使密码锁具有很高的安全性、可靠性,应用日益广泛。
1 总体方案设计
1.1 方案论证
方案一:采用数字电路控制。利用数字逻辑电路,实现对锁的电子控制,突破了传统的机械锁的单一性、保密性低、易撬性的缺点,数字电子密码锁具有保密性高、使用灵活性好、安全系数高的优点。虽然采用数字密码锁电路的好处是设计简单,但是由于其实纯电路实际,在系统运行时,延时会比较严重。
方案二:通过单片机实现。现在一种新的方案就是采用一种以AT89S51为核心的单片机控制方案。虽然有灵活的设计和丰富的IO端口,但是单片机运行的缺点是程序运行时容易出现跑飞现象。
通过以上比较显然单片机方案有较大的活动空间,不但能实现所要求的功能,而且能在很大程度上扩大功能,并可以方便的对系统进行升级。但是由于所学知识不能将其有效运用,现有环境不能满足,而且以单片机为核心的密码锁有一定的不足之处,在运行时会产生PC指针错误,因此提出了第三种方案。
方案三:利用FPGA设计数字密码锁。FPGA即现场可编程门阵列,它是在PAL、GAL、EPLD等可编程器件的基础上进一步发展的产物,是一种超大规模集成电路,具有对电路可重配置能力。通常FPGA都有着上万次的重写次数,也就是说现在的硬件设计和软件设计一样灵活、方便。相对于基于单片机技术的电子密码锁,用FPGA器件来构成系统,可
靠性提高,并且由于FPGA具有的现场可编程功能,使得电子密码锁的更改与升级更为方便简单。
通过以上比较描述,本设计采用基于FPGA的数字密码设计方案。
1.2 基于FPGA的数字密码锁系统流程图
根据所要实现的数字密码锁的功能,设计出所要完成的的系统流程,系统设计的流程图如3.1所示。
图3.1详细的描述了一个数字密码锁所要完成的功能,开始时,首先要对密码锁系统进行复位初始化,将所要设置的密码首先存入到存储模块当中。然后进行键盘输入,键盘输入分为密码输入和功能输入,如果是密码输入就要把输入的密码与预置的密码进行比较,如果相同则开锁,不相同则报警,而其中密码的个数由计数器限制;如果是功能输入,则看是什么功能,本设计主要设计了四个功能:设置密码键、退出键、清零键和关锁键,密码锁会根据所要求的功能进行相应的操作。如果是其他的不与功能相对应的键输入,密码锁将进行系统复位初始化阶段,重新开始操作。
图3.1系统流程图
3.3 基于FPGA的数字密码锁总体框图
通过数字密码锁系统结构的分析,我们知道通用的数字密码锁主要由八个部模块组成:分频模块、键盘扫描模块、比较模块、计数模块、寄存模块、存储模块、显示模块和控制模块。根据系统流程图的设计以及各个模块之间的逻辑关系将得到系统总体框图,如图3.2所示。
图3.2数字电子密码锁系统总体框图
键盘扫描模块:设定数字键0—9,以及功能键;
分频模块:设定系统时钟CLK的频率,对其分频,分别作为按键检测时钟和LED控制器扫描时钟;
密码计数模块:统计所输密码位数;
比较器模块:比较所输两数是否相等;
比较结果寄存器模块:存储比较器模块的结果;
存储模块:存储所设置的密码;
显示模块:显示所输数字;
控制模块:根据分析的数字密码结果,控制单元的算法。
2 系统详细设计
2.1 分频模块设计
分频模块的主要功能是所给频率转化成系统所需频率。通常数字电路中的分频操作是采用计数来进行。就是利用一个自由计数器来产生各种需要的频率,也就是先建立一个N 位计数器,N的大小根据电路的需求来决定,N的值越大,电路可以分频的次数就越多,这样就可以获得更大的频率变化,以便提供多种不同频率的时钟信号。本密码系统所设计的分频模块是执行十分频功能的模块,其目的是为了得到频率为时钟频率十分之一的clk_scan。主要程序如下所示。
if(clk'event and clk='1') then
if(cnt=cnt'high)then
cnt <= 0;
else
cnt <= cnt+1;
end if;
end if;
process(cnt,clk)
begin
if(clk'event and clk='1')then
if(cnt>cnt'high/2)then
clk_scan<='1';
else
clk_scan<='0';
end if;
end if;
end process;
分频模块源代码编译后所生成的示意图如图4.1所示。
图4.1分频模块示意图
分频模块的输入输出管脚及代表的意义如下表所示。