电子密码锁设计课程设计.doc

上传人:飞****2 文档编号:60146950 上传时间:2022-11-13 格式:DOC 页数:29 大小:340KB
返回 下载 相关 举报
电子密码锁设计课程设计.doc_第1页
第1页 / 共29页
电子密码锁设计课程设计.doc_第2页
第2页 / 共29页
点击查看更多>>
资源描述

《电子密码锁设计课程设计.doc》由会员分享,可在线阅读,更多相关《电子密码锁设计课程设计.doc(29页珍藏版)》请在taowenge.com淘文阁网|工程机械CAD图纸|机械工程制图|CAD装配图下载|SolidWorks_CaTia_CAD_UG_PROE_设计图分享下载上搜索。

1、唐 山 学 院 EDA技术 课 程 设 计 题 目 电子密码锁设计 系 (部) 信息工程系 班 级 姓 名 学 号 指导教师 2012 年 12 月 24 日至 12 月 28 日 共 1 周 EDA技术 课程设计任务书一、设计题目、内容及要求 设计题目:电子密码锁设计内容及要求:(1)设计一个电子密码锁,实现密码的输入、更改、上锁等功能;(2)密码输入:开锁代码为二进制数,当输入的密码时,显示器上将显示该数值;(3)密码上锁:当按下上锁键后,密码锁将被上锁;(4)密码更改:当按下密码更改键后,密码锁将被重置为新密码;(5)密码解除:当按下解锁键后,如果密码正确,密码锁将被打开。设计要求:(1

2、)根据任务要求确定电路各功能模块;(2)写出设计程序;(3)分析时序仿真结果; (4)提交设计总结。二、设计原始资料 Quartus软件;EDA实验箱;计算机一台;三、要求的设计成果(课程设计说明书、设计实物、图纸等)课程设计说明书1份,不少于2000字,应包含设计原理分析、相关软件介绍、仿真波形分析,实验箱下载验证等。四、进程安排周1-周3: 查阅资料,上机编写并调试设计程序;周4:整理、撰写说明书;周5:课程设计答辩并提交设计说明书。五、主要参考资料1.Voknei A.Pedroni.VHDL数字电路设计教程.电子工业出版社,2008.52.潘松,黄继业.EDA技术实用教程(第二版).科

3、学出版社,2005.23.焦素敏.EDA应用技术.清华大学出版社,2002.4指导教师(签名):教研室主任(签名):课程设计成绩评定表出勤情况出勤天数 缺勤天数成绩评定出勤情况及设计过程表现(20分)课设答辩(20分)设计成果(60分)总成绩(100分)提问(答辩)问题情况综合评定 指导教师签名: 年 月 日1 引言1.1设计背景在日常的生活和工作中, 住宅与部门的安全防范、单位的文件档案、财务报表以及一些个人资料的保存多以加锁的办法来解决。若使用传统的机械式钥匙开锁,人们常需携带多把钥匙, 使用极不方便, 且钥匙丢失后安全性即大打折扣。随着社会的发展和人们生活水平的提高,人们的安全意识也逐步

4、加强。传统的机械锁由于其构造的简单,失效的事件屡见不鲜,如何实现保密防盗这一问题变的尤其的突出,密码锁以其安全性高、成本低、功耗低、易操作等优点受到越来越多人的欢迎。在数字技术网络技术飞速发展的今天,电子密码锁技术得到了迅猛的发展。它早已超越了单纯的门道及钥匙管理,逐渐发展成为一套完整的出入管理系统。它在工作环境安全、人事考勤管理等行政管理工作中发挥着巨大的作用。在该系统的基础上增加相应的辅助设备可以进行电梯控制、车辆进出控制,物业消防监控、餐饮收费、私家车库管理等,真正实现区域内一卡智能管理。基于EDA技术设计的电子密码锁。以其价格便宜、使用方便、安全性高、成本低、功耗低、易操作等优点,受到

5、了人们的普遍关注。而以可编程逻辑器件(FPGA)为设计载体,以硬件描述语言(VHDL)为主要表达方式,以Quartus5.1开发软件等为设计工具设计的电子密码锁,由于其能够实现密码输入、密码校验、密码设置和更改等功能,因此,能够满足社会对安全防盗的需求。本设计的各个模块由相应的VHDL程序具体实现,并在Quartus5.1环境下进行了整体电路的模拟仿真,最终实现“密码锁控制器设计”的要求。目前使用的电子密码锁大部分是基于单片机技术, 以单片机为主要器件, 其编码器与解码器的生成为软件方式。在实际应用中, 由于程序容易跑飞, 系统的可靠性能较差。基于VHDL语言的电子密码锁已经是现代生活中经常用

6、到的工具之一,用于各类保险柜、房门、防盗门等等。用电子密码锁代替传统的机械式密码锁,克服了机械式密码锁密码量少、安全性能差的缺点。同时基于VHDL语言的电子密码锁是新型现代化安全管理系统,它集微机自动识别技术和现代安全管理措施为一体,它涉及电子,机械,计算机技术,通讯技术,生物技术等诸多新技术。它是解决重要部门出入口实现安全防范管理的有效措施,适用各种场合,如银行、宾馆、机房、军械库、机要室、办公间、智能化小区、工厂、家庭等。1.2设计任务与要求1.2.1内容及要求1设计一个电子密码锁,实现密码的输入、更改、上锁等功能;2密码输入:开锁代码为二进制数,当输入的密码时,显示器上将显示该数值;3密

7、码上锁:当按下上锁键后,密码锁将被上锁;4密码更改:当按下密码更改键后,密码锁将被重置为新密码;5密码解除:当按下解锁键后,如果密码正确,密码锁将被打开。1.2.2设计要求1根据任务要求确定电路各功能模块;2写出设计程序;3分析时序仿真结果; 4提交设计总结。2总体方案设计2.1方案设计密码锁控制器是硬件与软件的结合。根据设计要求,决定以FPGA芯片和VHDL语言设计此电子密码锁。用一片FPGA芯片实现,从而大大简化了系统结构,降低了成本,提高了系统的保密性和可靠性。这种设计不仅简化了系统结构,降低了成本,更提高了系统的可靠性和保密性。另外,采用可编程逻辑器件开发的数字系统,方便地升级和改进。

8、2. 系统总框图本系统的硬件部分主要由密码锁控制电路、密码锁显示电路、LED显示电路、报警电路、密码更改与设置电路组成。整体系统框图如下图2.1所示。图 2.1 密码锁控制器系统总框图2.3.1密码锁内部结构密码锁控制器由密码锁主体部分和外部指示电路组成。其中密码锁主要作用是接收输入的密码并进行密码的验证操作;外部指示电路的主要作用是用LED数码管显示输入的密码以及根据密码验证的结果给出不同的LED指示灯和数码管显示;当连续输入三次次错误密码时,启动报警装置,报警装置则采用扬声器。2.3.2密码锁功能介绍1、输入密码时,七段码管从右至左显示按键对应的数值,每按键一次,显示左移一次,6次密码输入

9、结束后系统开始校验,校验结束后,七段码管全灭。也就是显示部分维持的时间就是按键6次的时间和校验的时间。2、密码输入连续三次错误开始报警,报警声要求为高声2.5KHz,低声1.25KHz交替报警,交替周期为1s(1Hz时钟,需要对系统时钟进行10K分频)。3、用LED模块的LED1指示键盘状态,如果有按键按下,LED1亮起,直到松开该按键;用LED2指示门的状态,也就是密码校验结果,如果密码校验正确,LED2亮起,否则如果密码校验错误LED2闪烁4次,然后熄灭,表明密码错误。4、具有密码设置和更改的功能。输入密码正确后5秒内按*号键输入要设置和更改的密码,按#号键确认密码设置与更改,连续输入两次

10、,则密码设置成功。3 密码锁的内部结构及单元主要功能3.1密码显示电路七段数码管是电子开发过程中常用的输出显示设备。在本设计中使用的是8个四位一体、共阴极型七段数码管。其单个静态数码管如下图3.6所示。由于七段数码管公共端连接到GND(共阴极型),当数码管的中的一个段被输入高电平,则相应的这一段被点亮。反之则不亮。共阳极性的数码管与之相反。四位一体的七段数码管在单个静态数码管的基础上加入了用于选择哪一位数码管的位选信号端口。八个数码管的a、b、c、d、e、f、g、h、dp都连在了一起,8个数码管分别由各自的位选信号来控制,被选通的数码管显示数据,其余关闭。在键盘获取到行值和列值以后,组合成一个

11、8位的数据,根据实现不同的编码在对每个按键进行匹配,找到键值后在7段码管显示。键盘扫描与7段数码管显示示意图如下图3.1所示。图3.1 单个数码管管脚示意图3.2密码锁控制电路3.2.1 软键盘的实现通常在一个键盘中使用了一个瞬时接触开关,并且用如图2.3 所示的简单电路,微处理器可以容易地检测到闭合。当开关打开时,通过处理器的I/O口的一个上拉电阻提供逻辑1;当开关闭合时,处理器的I/O 口的输入将被拉低得到逻辑0。图3.3 简单键盘电路但是开关并不完善,因为当它们被按下或者被释放时,并不能够产生一个明确的1 或者0。尽管触点可能看起来稳定而且很快地闭合,但与微处理器快速的运行速度相比,这种

12、动作是比较慢的。当触点闭合时,其弹起就像一个球。弹起效果将产生如图3.4 所示的好几个脉冲。弹起的持续时间通常将维持在5ms30ms 之间。如果需要多个键,则可以将每个开关连接到微处理器上它自己的输入端口。然而,当开关的数目增加时,这种方法将很快使用完所有的输入端口。图3.4 按键抖动键盘上阵列这些开关最有效的方法(当需要5个以上的键时)就形成了一个如图3.5所示的二维矩阵。当行和列的数目一样多时,也就是方型的矩阵,将产生一个最优化的布列方式(I/O端被连接的时候)。一个瞬时接触开关(按钮)放置在每一行与线一列的交叉点。矩阵所需的键的数目显然根据应用程序而不同。每一行由一个输出端口的一位驱动,

13、而每一列由一个电阻器上拉且供给输入端口一位。图3.5 矩阵键盘3.2.2键盘扫描键盘扫描过程:对于44键盘,通常连接为4行、4列,因此要识别按键,只需要知道是哪一行和哪一列即可,为了完成这一识别过程,我们的思想是,首先固定输出4行为高电平,然后输出4列为低电平,在读入输出的4行的值,通常高电平会被低电平拉低,如果读入的4行均为高电平,那么肯定没有按键按下,否则,如果读入的4行有一位为低电平,那么对应的该行肯定有一个按键按下,这样便可以获取到按键的行值。同理,获取列值也是如此,先输出4列为高电平,然后在输出4行为低电平,再读入列值,如果其中有哪一位为低电平,那么肯定对应的那一列有按键按下。本实验

14、箱上的44矩阵键盘的电路原理如图3.6所示。与FPGA的管脚连接如表3-1所示。图3.6 44矩阵键盘电路原理图表3-1 44矩阵键与FPGA的管脚连接表信号名称对应FPGA管脚名说明KEY_C0F8矩阵键盘的第1列选择KEY_C1A14矩阵键盘的第2列选择KEY_C2F10矩阵键盘的第3列选择KEY_C3B16矩阵键盘的第4列选择KEY_R0F12矩阵键盘的第1行选择KEY_R1B17矩阵键盘的第2行选择KEY_R2F15矩阵键盘的第3行选择KEY_R3B18矩阵键盘的第4行选择密码锁控制电路是整个系统的控制中心,当有按键按下时,系统根据译码所得数字,判断出按下的是功能键还是数字键,如果是功

15、能键(*或#),则执行相应键的功能(*表示可以输入需要设置和更改的密码;#表示设置密码完成);如果是数字键,则作为密码。控制电路的硬件由一片EP2C35F484C8实现,控制功能由软件实现。以下是EP2C35F484C8的简单介绍:Altera公司发布的第二代Cyclone FPGA,与第一代相比,加入了硬件乘法器,同时内部存储单元数量也得到了进一步的提升,EP2C35核心板上采用的FPGA是Altera公司CycloneII系列芯片EP2C35F484C8。下面介绍EP2C35核心板的有关特性。表3-2列出了EP2C35的有关资源特性,更详细的特性请参阅其数据手册。表3-2 EP2C35F4

16、84C8资源列表特性EP2C35逻辑单元Les33,216M4K Memory Blocks105所有RAM Bits483,8401818硬件乘法器35PLLs4用户可用I/O322基本串行主动配置器件EPCS4图3.7 EP2C35F484C8芯片管脚示意图如图3.7所示BGA封装的FPGA(EP2C35)的管脚名称用行、列合在一起来表示。行用英文字母表示,列用数字来表示。通过行列的组合来确定是哪一个管脚。如A2表示A行2列的管脚。F3表示F行3列的管脚。表3-3 LED灯与FPGA的管脚连接列表端口名使用模块信号对应FPGA管脚说 明CLK数字信号源L2时钟为10KHZRST复位按键B3

17、复位信号KEY-STATELED灯D1E9LED指示部分DOORLED灯D12B203.3 LED显示电路用LED显示电路状态模块中的LED1指示键盘状态,如果有按键按下,LED1亮起,直到松开该按键;用LED2指示门的状态,也就是密码校验结果,如果密码校验正确,LED2亮起,否则如果密码校验错误LED2闪烁4次,然后熄灭,表明密码错误。3.4 报警电路根据设计要求,当密码输入连续三次错误,则报警电路连通,其中报警声要求为高声2.5KHz,低声1.25KHz交替报警,交替周期为1s(1Hz时钟,需要对系统时钟进行10K分频)。在整个试验平台的下方有两组跳线,位于左边的一组跳线用来选取喇叭的声源

18、信号。当跳线位于左边的时候喇叭的声源来自FPGA,位于右边时声源来自AIC23模块的输入信号。位于右边的一组跳线用来控制喇叭的开关,当跳线位于左边时喇叭为开的状态,位于右边时为关的状态。要使喇叭发声请确认喇叭处于开的状态,并且声源是信号输入。扬声器(喇叭)电路图如图3.8所示:图3.8 扬声器电路图3.5 密码更改与设置电路该电路的的具体功能是:输入密码正确后5秒内按*号键输入要设置和更改的密码,按#号键确认密码设置与更改,连续输入两次,则密码设置成功。按要求,该部分要用到I2C总线E2PROM 器件AT24C08。它的容量为10248(8Kbytes),支持2.7V5.5V工作电压。当工作电

19、压为5V的时候,其接口速度可以达到400kHz。实验箱上的供电为3.3V,所以其接口速度最高只能达到100kHz。AT24C08与外部的I/O接口引脚连接电路如图3.9所示。在本系统中I2CSCL、I2CSDA分别与FPGA连接。图3.9 AT24C08与外部的I/O接口引脚连接电路4 VHDL程序设计4.1 密码锁显示模块当输入密码时,七段码管从右至左显示按键对应的数值,每按键(09)一次,显示左移一次,6次密码输入结束后系统开始校验,校验结束后,七段码管全灭。也就是显示部分维持的时间就是按键6次的时间和校验的时间。表4-2 显示模块的管脚分配表端口名使用模块信号对应FPGA管脚说 明CLK

20、数字信号源L2时钟为10KHZRST复位按键B3复位信号DOORLED灯D12B20DISPLAY0数码管A段G6时间显示DISPLAY 1数码管B段G7DISPLAY 2数码管C段H3DISPLAY 3数码管D段H4DISPLAY 4数码管E段H5DISPLAY 5数码管F段H6DISPLAY 6数码管G段J4SEG-SEL0位选DEL0G5SEG-SEL1位选DEL1G3SEG-SEL2位选DEL2F4process(Clk1KHz,Rst) -显示右移 begin if(Rst=0 or push_num=0) then -复位时,全灭 buff1=15; buff2=15; buff3

21、=15; buff4=15; buff5=15; elsif(Clk1KHzevent and Clk1KHz=1) then if(kflag1=1 and kflag2=0 and (keyr=0111 or keyr=1101)and keyc/=1110)or keyr=1011) then buff1=buff2; buff2=buff3; buff3=buff4; buff4=buff5; buff5=buff6; end if; end if; end process; process(Clk1KHz,Rst) - 获取键值 begin if(Rst=0 or push_num=

22、6) then -全灭 buff6buff6buff6buff6buff6buff6buff6buff6buff6buff6buff6buff6buff6buff6Disp_TempDisp_TempDisp_TempDisp_TempDisp_TempDisp_TempDisp_TempDisp_Temp=10; -1 end case; end process; process(Clk) begin if(Clkevent and Clk=1) then -扫描累加 SEG_SEL=SEG_SEL+1; DisplayDisp_DecodeDisp_DecodeDisp_DecodeDis

23、p_DecodeDisp_DecodeDisp_DecodeDisp_DecodeDisp_DecodeDisp_DecodeDisp_DecodeDisp_DecodeDisp_Decode=; -全灭 end case; end process; end behave;4.2 键盘扫描模块程序中,我们用kr表示矩阵键盘的行信号,kc表示矩阵键盘的列信号,KEY-State表示输入数据是否有效。具体端口管脚分配及其与FPGA芯片的具体连接表如下表4-3所示: 表4-3 键盘扫描程序的管脚分配表端口名使用模块信号对应FPGA管脚说 明CLK数字信号源L2时钟为10KHZRST复位按键B3复位信

24、号KR04*4矩阵键盘R0F12矩阵键盘行信号KR14*4矩阵键盘R1B17KR24*4矩阵键盘R2F15KR34*4矩阵键盘R3B18KC04*4矩阵键盘C0F8矩阵键盘列信号KC14*4矩阵键盘C1A14KC24*4矩阵键盘C2F10KC34*4矩阵键盘C3B16KEY-STATELED灯D1E9 键盘扫描部分分程序如下:process(Clk1KHz) -键盘扫描 begin if(Clk1KHzevent and Clk1KHz=1) then if(Kr=1111) then kflag1=0; kcount=kcount+1; if(kcount=0) then kc=1110;

25、elsif(kcount=1) then kc=1101; elsif(kcount=2) then kc=1011; else kc=0111; end if; else kflag1=1; keyr=Kr; keyc=Kc; end if; kflag2=kflag1; end if; end process; KEY_State=kflag1;4.3 时钟分频程序设计根据要求取FPGA的系统时钟为10KHz,因为系统中还需要有别的频率,如:1Hz(1S)、0.2Hz(5S),因此必须对其进行分频处理。对10KHz进行10分频即可得到1KHz的频率;对10KHz进行10K分频即可得到1Hz

26、的频率;对10KHz进行50K分频即可得到0.2Hz的频率。时钟分频部分源程序如下: process(Clk); -对系统时钟进行10分频,得到1KHz的频率 begin if(Clkevent and Clk=1) then -检测时钟上升沿 if(Clk_Count110) then Clk_Count1=Clk_Count1+1; else Clk_Count1=0001; end if; end if; end process; Clk1KHz=Clk_Count1(2); process(Clk1KHz) ; -对频率为1KHz的时钟进行1K分频,得到10KHz的频率 begin i

27、f(Clk1KHzevent and Clk1KHz=1) then -检测时钟上升沿 if(Clk_Count21000) then Clk_Count2=Clk_Count2+1; else Clk_Count2=; end if; end if; end process; Clk2Hz=Clk_Count2(9) ; process(Clk2Hz) ; -对频率为2 Hz时钟进行分频,得到1Hz的频率 begin if(Clk2Hzevent and Clk2Hz=1) then -检测时钟上升沿 Clk1Hz=not Clk1Hz; end if; end process;4.4 密码

28、输入及校验模块系统复位后,用户按键6次,输入一个完整的密码串,输入完6次后,系统进行比对,如果发现密码吻合,则开门,否则要求用户继续输入。用LED模块的LED1指示键盘状态,如果有按键按下,LED1亮起,直到松开该按键;用LED2指示门的状态,也就是密码校验结果,如果密码校验正确,LED2亮起,否则如果密码校验错误LED2闪烁4次,然后熄灭,表明密码错误。程序如下:process(Clk1KHz,Rst) -键盘输入 begin if(Rst=0) then push_num=0; elsif(Clk1KHzevent and Clk1KHz=1) then if(push_num=6) th

29、en push_num=0; elsif(kflag1=0 and kflag2=1) then push_num=push_num+1; end if; end if; end process; process(Clk1KHz,Rst) -密码校验, begin if(Rst=0) then Door=0; Error_Num=0; Error_Flag=0; elsif(Clk1KHzevent and Clk1KHz=1) then if(push_num=5 and Error_Num3) then -修改此处的值可修改门的密码,此处密码为 if(buff1=0 and buff2=7

30、 and buff3=0 and buff4=1 and buff5=0 and buff6=7) then Door=1; else Door=0; end if; elsif(push_num=6 and Error_Num3) then if(Door=0) then Error_Flag=1; Error_Num=Error_Num+1; else Error_Flag=0; Error_Num=0; end if; elsif(Error_Count=7) then -通过更改这里的值,可以控制LED12闪多少次 Error_Flag=0; Door=0; elsif(Error_F

31、lag=1) then Door=not Error_Count(0); end if; end if; end process; process(Clk2Hz,Rst) -判断输入错误密码次数 begin if(Rst=0 or Error_Flag=0) then Error_Count=000; elsif(Clk2Hzevent and Clk2Hz=1 and Error_Flag=1) then Error_Count=Error_Count+1; end if; end process;4.5报警模块在输入密码时,如果连续3次输入的密码串都是错误的,则系统报警,直到输入正确的密码

32、,报警声停止。报警声要求为高声2.5KHz,低声1.25KHz交替报警,交替周期为1s(1Hz时钟,需要对系统时钟进行10K分频)。表4-4 报警模块程序的管脚分配表端口名使用模块信号对应FPGA管脚说 明CLK数字信号源L2时钟为10KHZRST复位按键B3复位信号SPK喇叭模块D7报警信号报警部分程序如下:process(Clk) -报警声音分频,高声2.5KHz,低声1.25KHz交替报警 begin if(Clkevent and Clk=1) then Music_Count=3) then if(Clk1Hz=1) then SPK=Music_Count(2); else SPK=Music_Count(1); end if; end if; end process;4.6 密码更改与设置模块更改与设置密码部分要求:输入密码正确后5秒内按*号键输入要设置和更改的密码,按#号键确认密码设置与更改,连续输入两次,则密码设置成功。这部分主要采用了IIC总线部分。这部分的关键是:如何对IIC进行读和写操作。以下图4.1、图4.2、图4.3、图4.4均为IIC读写过程体现图。如图4.

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

当前位置:首页 > 教育专区 > 教案示例

本站为文档C TO C交易模式,本站只提供存储空间、用户上传的文档直接被用户下载,本站只是中间服务平台,本站所有文档下载所得的收益归上传人(含作者)所有。本站仅对用户上传内容的表现方式做保护处理,对上载内容本身不做任何修改或编辑。若文档所含内容侵犯了您的版权或隐私,请立即通知淘文阁网,我们立即给予删除!客服QQ:136780468 微信:18945177775 电话:18904686070

工信部备案号:黑ICP备15003705号© 2020-2023 www.taowenge.com 淘文阁