文档详情

四位电子密码锁设计剖析

s9****2
实名认证
店铺
DOCX
1.36MB
约23页
文档ID:493390654
四位电子密码锁设计剖析_第1页
1/23

村井令孑科技大序GUILIhUNIVERSITYOFELECTRONICTECHNOLOGY高级电子线路实验报告题目:基于FPGA勺四位电子密码锁设计院(系):信息与通信学院专业:学生姓名:学号:2015年6月18日基于FPGA勺的四位电子密码锁设计摘要本文主要介绍了一种运用可编程逻辑器件(FPGA技术来编程实现电子密码锁的设计方法在整个系统设计实现中采用FPG器件作为控制器,继而了解密码锁系统的总体流程、各个模块的功能与接口的分配基于FPGA使用VHD语言编写模块程序,再通过QuartusII集成开发环境下进行设计、综合与仿真要求用VerilogHDL语言实现系统中的各个模块功能,并且能够仿真,验证本次设计四位密码锁的功能每按下一个数字键,就输入一个数值,并显示该数值,当按下密码更改键时会将目前的数字设定成新的密码当按下激活电锁键的时候可以将密码锁上锁当按下解除电锁键时会检查输入的密码是否正确,密码正确即开锁电子密码锁由键盘扫描模块、分频模块、密码计数模块、比较器模块、存储模块、显示模块和控制模块七大部分组成通过硬件描述,验证了整个设计的正确性以及系统的完整性关键词:可编程逻辑器件;电子密码锁;硬件描述;时序仿真引言本设计利用QuartusH工作平台硬件描述语言,设计一种电子密码锁,并通过用FPGA芯片实现。

用VHDL语言使用自顶向下的方法对系统进行了描述,并在FPGA芯片上实现设计充分利用了FPGA的资源可编程特性,可高效率的对系统进行升级与改进设计的密码锁可设置任意密码,比一般的四位密码锁具有更高的安全可靠性,因此,采用FPGA开发的数字系统,不仅具有很高的工作可靠性,具升级与改进也极其的方便,应用前景十分宽广随着人们生活水平的提高和安全意识的加强,对安全的要求也就越来越高,因此导致了电子行业的蓬勃发展随着电子技术的发展,各类电子产品应运而生,电子密码锁就是其中之一在安全技术防范领域,具有防盗报警功能的电子密码锁逐渐代替传统的机械式密码锁,克服了机械式密码锁密码量少、安全性能差的缺点,使密码锁无论在技术上还是在性能上都获得了大大的提高随着大规模集成电路技术的发展,特别是单片机的问世,出现了带微处理器的智能密码锁,它除具有电子密码锁的功能外,还引入了智能化管理、专家分析系统等功能,从而使密码锁具有很高的安全性、可靠性,应用日益广泛1总体方案设计1.1 方案论证方案一:采用数字电路控制利用数字逻辑电路,实现对锁的电子控制,突破了传统的机械锁的单一性、保密性低、易撬性的缺点,数字电子密码锁具有保密性高、使用灵活性好、安全系数高的优点。

虽然采用数字密码锁电路的好处是设计简单,但是由于其实纯电路实际,在系统运行时,延时会比较严重方案二:通过单片机实现现在一种新的方案就是采用一种以AT89S51为核心的单片机控制方案虽然有灵活的设计和丰富的IO端口,但是单片机运行的缺点是程序运行时容易出现跑飞现象通过以上比较显然单片机方案有较大的活动空间,不但能实现所要求的功能,而且能在很大程度上扩大功能,并可以方便的对系统进行升级但是由于所学知识不能将其有效运用,现有环境不能满足,而且以单片机为核心的密码锁有一定的不足之处,在运行时会产生PC指针错误,因此提出了第三种方案方案三:利用FPGAS计数字密码锁FPGAII3现场可编程门阵列,它是在PALGALEPLD等可编程器件的基础上进一步发展的产物,是一种超大规模集成电路,具有对电路可重配置能力通常FPGATB有着上万次的重写次数,也就是说现在的硬件设计和软件设计一样灵活、方便相对于基于单片机技术的电子密码锁,用FPGAS件来构成系统,可靠性提高,并且由于FPGAft有的现场可编程功能,使得电子密码锁的更改与升级更为方便简单通过以上比较描述,本设计采用基于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'eventandclk='1')thenif(cnt=cnt'high)thencnt<=0;elsecnt<=cnt+1;endif;endif;process(cnt,clk)beginif(clk'eventandclk='1')thenif(cnt>cnt'high/2)thenclk_scan<='1';elseclk_scan<='0';endif;endif;endprocess;分频模块源代码编译后所生成的示意图如图4.1所示图4.1分频模块示意图分频模块的输入输出管脚及代表的意义如下表所示表4.1分频模块输入输出变量定义输入端子clk输入时钟信号轴出端了clk_scan输出时钟信号源程序编译以后,建立仿真波形,所得功能仿真波形如图 4.2所示。

LlLi Xdl L 0*8 I^TIJiKL FE4C+BJLBf JhblE 1n w ff图4.2分频模块功能仿真波形图图中输入的时钟频率clk是1亿赫兹(1/10ns),经过程序编译以后,输出的波形是clk_scan为1千万赫兹(1/10ns),符合十分频的要求2.2键盘扫描模块设计行列式键盘又叫做矩阵式键盘.用带有I/O口的线组成行列结构,按键设置在行列的交点上本次试验用到的是4X4的行列结构键盘,可以构成16个按键这样,当按键数量平方增长是,I/O口只是线性增长,这样就可以节省I/O口行列式键盘的原理如图4.3所示key_col{0..3}上拉电阻key_row{3 …0}CDEF89AB45670123图4.3行列式键盘的原理按键设置在行列线交叉点,行、列线分别连接到按键开关的两端列线通过上拉电阻接+5V的电压,即列线的输出被嵌位在高电平状态判断按键中有无键按下时通过行线输入扫描信号,然后从列线读取到状态实现的具方法是依次给行线送低电平,检查列线的输入如果列线信号全为高电平,则代表低电平所在的行中无按键按下;如果列线有输入为低电平,则低电平信号所在的行和出现低电平的列的交点处有按键按下。

部分程序如下所示process(temp,scan_en)beginifscan_en='O'thencasetempiswhen"11101110"=>key_code_reg<="00000”;key_out_reg<="0000000000000001”;temp_num<='1';temp_function<='0';when"11101101"=>key_code_reg<="00001";key_out_reg<="0000000000000010";temp_num<='1';temp_function<='0';when"11101011"=>key_code_reg<="00010";key_out_reg<="0000000000000100";temp_num<='1';temp_function<='0';设行扫描信号为key_row{3…0},列线按键输入信号key_col{0..3}与按键位置的关系如表4.2所小表4.2行扫描信号、列线按键输入信号与按键位置的关系key_row{3…0}key_col{0..3}对应的按键111011100(key_num)11011(key_num)10112(key_num)01113(key_num)110111104(key_num)11015(key_num)10116(key_num)01117(key_num)101111108(key_num)11019(key_num)1011A(设置密码键)0111B(退出键)01111110C(清零键)1101D(没有设置)1011[e(没有设置)0111F(关锁键)键盘扫描模块源代码编译后所生成的示意图如图4.4所示。

图4.4键盘扫描模块示意图键盘扫描模块的输入输出管脚及代表的意义如下图所示表4.3键盘扫描模块输入输出变量定义输入端子clk_scan时钟扫描信号key_col[3..0]键盘列扫描输出端子key_row[3..0]键盘行扫描key_code[3..0]键值输出key_out[15..0]键盘按键one-hot码输出key_press有键按卜key_num数字键key_func功能键源程序编译以后,建立仿真波形,所得功能仿真波形如图4.5所示d工图4.5键盘扫描模块功能仿真波形图,Q [.Lli J11 L 好g F[-X+B1LB< 工卜包E [^1^8□ a ,睢mmr Fg/c; 猿电在图5.5中, 的键应该是功能键键盘扫描的列输入为1011,行输出为1011,由图5.3可得,此时按下A键,因此key_func、key_press变为高电平,key_num为低电平,而图4.6比较模块示意图比较模块的输入输出管脚及代表的意义如下图所示表4.4比较模块输入输出变量定义输入端子a输入数字b输入数字en使能轴出端了y比较结果以one-hot码(独热码)编码的key_ou。

下载提示
相似文档
正为您匹配相似的精品文档