EDA课程设计—电子密码锁

上传人:一*** 文档编号:82027570 上传时间:2022-04-28 格式:DOC 页数:20 大小:405KB
收藏 版权申诉 举报 下载
EDA课程设计—电子密码锁_第1页
第1页 / 共20页
EDA课程设计—电子密码锁_第2页
第2页 / 共20页
EDA课程设计—电子密码锁_第3页
第3页 / 共20页
资源描述:

《EDA课程设计—电子密码锁》由会员分享,可在线阅读,更多相关《EDA课程设计—电子密码锁(20页珍藏版)》请在装配图网上搜索。

1、华东交通大学EDA课设华东交通大学EDA课设目录摘要21绪论31.1电子密码锁简介31.2电子密码锁的国内外研究现状和发展趋势31.3 EDA技术及VHDL语言42电子密码锁总体设计62.1总体设计方案62.2设计思路简述72.3整体组装设计原理图83单元模块程序设计93.1 电子密码锁输入模块93.1.1输入模块程序93.1.2输入模块单元123.1.3输入模块仿真123.2电子密码锁系统控制模块123.2.1 控制模块程序133.2.2 控制模块单元153.2.3 控制模块仿真图153.3电子密码锁系统显示模块163.3.1 显示模块程序163.3.2 显示模块单元173.3.3 显示模块

2、仿真174小结18参考文献19电子密码锁设计摘要随着人们生活水平的提高,如何实现家庭防盗这一问题逐渐变的尤为突出,传统的机械锁由于其构造简单,故安全性能不容乐观,同时电子技术的高速发展使得具有防盗报警等功能的电子密码锁代替密码量少、安全性差的机械式密码锁已是必然趋势。电子密码锁是一种通过密码输入来控制电路或是芯片工作,从而控制机械开关的闭合,完成开锁、闭锁任务的电子产品。目前设计密码锁的方法有很多,而用VHDL可以更加快速、灵活地设计出符合各种要求的密码锁,优于其他设计方法。关键字:家庭防盗 安全 电子密码锁 VHDL 1绪论1.1电子密码锁简介电子密码锁是一种通过密码输入来控制电路或是芯片工

3、作,从而控制机械开关的闭合,完成开锁、闭锁任务的电子产品。它的种类很多,有简易的电路产品,也有基于芯片的性价比较高的产品。现在应用较广的电子密码锁是以芯片为核心,通过编程来实现的。其性能和安全性已大大超过了机械锁。其特点如下:保密性好,编码量多,远远大于弹子锁,随机开锁成功率几乎为零;密码可变,用户可以随时更改密码,防止密码被盗,同时也可以避免因 人员的更替而使锁的密级下降;误码输入保护,当输入密码多次错误时,报警系统自动启动;无活动零件,不会磨损,寿命长;使用灵活性好,不像机械锁必须佩带钥匙才能开锁;电子密码锁操作简单易行,一学即会。1.2电子密码锁的国内外研究现状和发展趋势随着生活水平的提

4、高和安全意识的加强,人们对安全的要求也就越来越高。锁自古以来就是把守护门的铁将军,人们对它要求甚高,既要安全可靠的防盗,又要使用方便,这也是制锁者长期以来研制的主题。随着电子技术的发展,各类电子产品应运而生,电子密码锁就是其中之一。据有关资料介绍,电子密码锁的研究从20世纪30年代就开始了,在一些特殊场所早就有所应用。这种锁是通过键盘输入一组密码完成开锁过程。研究这种锁的初衷,就是为提高锁的安全性。由于电子锁的密钥量(密码量)极大,可以与机械锁配合使用,并且可以避免因钥匙被仿制而留下安全隐患。电子锁只需记住一组密码,无需携带金属钥匙,免除了人们携带金属钥匙的烦恼,而被越来越多的人所欣赏。电子锁

5、的种类繁多,例如数码锁,指纹锁,磁卡锁,IC卡锁,生物锁等。但较实用的还是按键式电子密码锁。20世纪80年代后,随着电子锁专用集成电路的出现,电子锁的体积缩小,可靠性提高,成本较高,是适合使用在安全性要求较高的场合,且需要有电源提供能量,使用还局限在一定范围,难以普及,所以对它的研究一直没有明显进展。目前,在西方发达国家,电子密码锁技术相对先进,种类齐全,电子密码锁已被广泛应用于智能门禁系统中,通过多种更加安全,更加可靠的技术实现大门的管理。在我国电子锁整体水平尚处于国际上70年代左右,电子密码锁的成本还很高,市场上仍以按键电子锁为主,按键式和卡片钥匙式电子锁已引进国际先进水平,现国内有几个厂

6、生产供应市场。但国内自行研制开发的电子锁,其市场结构尚未形成,应用还不广泛。国内的不少企业也引进了世界上先进的技术,发展前景非常可观。希望通过不断的努力,使电子密码锁在我国也能得到广泛应用。目前使用的电子密码锁大部分是基于单片机技术,以单片机为主要器件,其编码器与解码器的生成为软件方式。在实际应用中,由于程序容易跑飞,系统的可靠性能较差。基于现场可编程逻辑门阵列FPGA器件的电子密码锁,用FPGA器件构造系统,所有算法完全由硬件电路来实现,使得系统的工作可靠性大为提高。由于FPGA具有现场可编程功能,当设计需要更改时,只需更改FPGA中的控制和接口电路,利用EDA工具将更新后的设计下载到FPG

7、A中即可,无需更改外部电路的设计,大大提高了设计的效率。1.3 EDA技术及VHDL语言 在电子设计技术领域,可编程逻辑器件(如PLD,GAL)的应用,已有了很好的普及。这些器件为数字系统的设计带来极大的灵活性。由于这类器件可以通过软件编程而对其硬件的结构和工作方式进行重构,使得硬件的设计可以如同软件设计那样方便快捷。这一切极大地改变了传统的数字系统设计方法、设计过程、乃至设计观念。纵观可编程逻辑器件的发展史,它在结构原理、集成规模、下载方式、逻辑设计手段等方面的每一次进步都为现代电子设计技术的革命与发展提供了不可或缺的强大动力。随着可编程逻辑器件集成规模不断扩大,自身功能的不断完善和计算机辅

8、助设计技术的提高,在现代电子系统设计领域中的EDA便应运而生了。传统的数字电路设计模式,如利用卡诺图的逻辑化简手段以及难懂的布尔方程表达方式和相应的TTL或4000系列小规模集成芯片的堆砌技术正在迅速地退出历史舞台。电子设计自动化(EDA)是一种实现电子系统或电子产品自动化设计的技术,它与电子技术、微电子技术的发展密切相关,吸收了计算机科学领域的大多数最新研究成果,以高性能的计算机作为工作平台,是20世纪90年代初从CAD(计算机辅助设计)、CAM(计算机辅助制造)、CAT(计算机辅助测试)和CAE(计算机辅助工程)的概念发展而来的。EDA技术就是以计算机为工具,在EDA软件平台上,根据硬件描

9、述语言HDL完成的设计文件,自动地完成逻辑编译、化简、分割、综合及优化、布局线、仿真,直至对于特定目标芯片的适配编译、逻辑映射和编程下载等工作。设计者的工作仅限于利用软件的方式来完成对系统硬件功能的描述,在EDA工具的帮助下和应用相应的FPG刀CPLD器件,就可以得到最后的设计结果。尽管目标系统是硬件,但整个设计和修改过程如同完成软件设计一样方便和高效。当然,这里的所谓EDA主要是指数字系统的自动化设计,因为这一领域的软硬件方面的技术已比较成熟,应用的普及程度也已比较大。而模拟电子系统的EDA正在进入实用,其初期的EDA工具不一定需要硬件描述语言。此外,从应用的广度和深度来说,由于电子信息领域

10、的全面数字化,基于EDA的数字系统的设计技术具有更大的应用市场和更紧迫的需求性。VHDL是一种全方位的硬件描述语言,包括系统行为级、寄存器传输级和逻辑门级多个设计层次,支持结构、数据流、行为三种描述形式的混合描述,因此VHDL几乎覆盖了以往各种硬件描述语言的功能,整个自顶向下或自底向上的电路设计过程都可以用VHDL来完成。2电子密码锁总体设计2.1总体设计方案如图2.1 电子密码锁总体组成框图 该电子密码锁可以分成三部分来设计,数字密码输入部分、密码锁控制电路和密码锁显示电路。作为密码锁的输入部分,可供选择的方案有数字机械式键盘和触摸式数字键盘等多种。考虑种种因素,建议本设计采用通用数字机械键

11、盘。根据以上选定的输入设备和显示器件,并考虑到实现各项数字密码锁功能的具体要求,整个电子密码锁系统的总体组成框图如图2.1所示。密码锁输入电路包括时序产生电路、键盘扫描电路、键盘去抖动电路、键盘译码电路等几个小的功能电路。密码锁控制电路包括按键数据的缓冲存储电路,密码的清除、变更、存储、激活电锁电路(寄存器清除信号发生电路),密码核对(数值比较电路),解锁电路(开/关门锁电路)等几个小的功能电路。七段数码管显示电路主要将待显示数据的BCD码转换成数码器的七段显示驱动编码。根据以上选定的输入设备和显示器件,并考虑到实现各项数字密码锁功。密码输入一般采用机械式和接触式两种键盘。机械式3x4键盘虽然

12、易产生抖动、磨损等问题,但具有电路结构简单、成本低、可靠性高、技术成熟、应用广泛等优点,在密码锁的设计过程中经常被采用。图2.2是一个34矩阵式键盘的面板配置图,其中数字09作为密码数字输入按键,*作为“上锁”功能按键,#作为“解锁/清除”功能按键。如图2.2所示:图2.2 机械式键盘密码密码电路2.2设计思路简述 (1)密码锁输入电路ENTER.VHD中对各种分频信号/信号序列的设计有独到之处。该设计中,利用一个自由计数器来产生各种需要的频率,也就是先建立一个N位计数器,N的大小根据电路的需求决定。N的值越大,电路可以除频的次数就越多,这样就可以获得更大的频率变化,以便提供多种不同频率的时钟

13、信号。若输入时钟为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)取得的是一个脉冲波形序列,其值是依00-01-10-11-00-01周期性变化的,其变化频率为CLK的25分频,也就是32分频。我们利用以上规律即可得到各种我们所需要频率的信号或信号序列; (2)键盘输入去抖电路的设计程序DEBOUCING.VHD在实际系统的开发中有较好的参考价值。 (3)密码锁控制电路CONTROL.VHD中对于数据的更新及移位方法比较好。程序中使用

14、语句“ACC=ACC(11 DOWNTO 0)&DATA_N”非常简洁地同时实现了ACC中低4位用DATA_N进行更新,而高12位用ACC中原来的低12位左移而来的处理。 (4)在密码锁输入电路等模块的程序的设计和仿真中,为了便于观察一些中间结果,在程序中增加了一些观测输出点。这一设计技巧,对于较大的程序或多进程程序的设计非常重要。同时在仿真时,为了便于观测全局结果,降低了分频常数。同理,在进行程序仿真时,对于程序中数目较大的分频/计数/计时常数的修改是非常必要的。2.3整体组装设计原理图系统的整体组装设计有密码输入模块、密码控制模块、密码显示模块三部分组成,故如图2.3所示:图2.3 系统整

15、体组装设计原理图3单元模块程序设计 本章节介绍的是单独模块的程序、原理图、仿真以及功能说明,共有三个模块,分别是电子密码锁输入模块、电子密码锁控制模块以及显示模块。3.1电子密码锁输入模块(1)时序产生电路 本时序产生电路中使用了三种不同频率的工作脉冲波形:系统时钟脉冲(它是系统内部所有时钟脉冲的源头,且其频率最高)、弹跳消除取样信号、键盘扫描信号。(2)键盘扫描电路扫描电路的作用是用来提供键盘扫描信号(表3-1中的KY3KY0)的,扫描信号变化的顺序依次为11101101101101111110.依序地周而复始。 (3)弹跳消除电路由于本设计中采用的矩阵式键盘是机械开关结构,因此在开关切换的

16、瞬间会在接触点出现信号来回弹跳的现象,对于电子密码锁这种灵敏度较高的电路这种弹跳将很可能会造成误动作输入,从而影响到密码锁操作的正确性。表3-1 按键位置的数码关系3.1.1输入模块程序LIBRARY IEEE;USE IEEE.STD_LOGIC_1164.ALL;USE IEEE.STD_LOGIC_ARITH.ALL;USE IEEE.STD_LOGIC_UNSIGNED.ALL;ENTITY ENTER ISPORT(CLK_1K: IN STD_LOGIC; KEY_IN: IN STD_LOGIC_VECTOR(2 DOWNTO 0);DATA_N: OUT STD_LOGIC_V

17、ECTOR(3 DOWNTO 0);DATA_F: OUT STD_LOGIC_VECTOR(3 DOWNTO 0);FLAG_N: OUT STD_LOGIC;FLAG_F: OUT STD_LOGIC;CQD: OUT STD_LOGIC;KSEL: OUT STD_LOGIC_VECTOR(3 DOWNTO 0);CSR: OUT STD_LOGIC_VECTOR(1 DOWNTO 0);END ENTITY ENTER;ARCHITECTURE ART OF ENTER ISSIGNAL C_QD: STD_LOGIC;SIGNAL C_SR: STD_LOGIC_VECTOR(1 D

18、OWNTO 0);SIGNAL N,F: STD_LOGIC_VECTOR(3 DOWNTO 0);SIGNAL FN,FF: STD_LOGIC;SIGNAL SEL: STD_LOGIC_VECTOR(3 DOWNTO 0);SIGNAL Q: STD_LOGIC_VECTOR(5 DOWNTO 0);SIGNAL C: STD_LOGIC_VECTOR(2 DOWNTO 0);BEGIN DATA_N = N; DATA_F = F; FLAG_N = FN; FLAG_F = FF; CQD = C_QD; CSR = C_SR; KSEL = SEL; C(0)=KEY_IN(0)

19、; C(1) = KEY_IN(1); C(2) = KEY_IN(2); COUNTER:BLOCK IS BEGIN PROCESS(CLK_1K) IS BEGIN IF(CLK_1KEVENT AND CLK_1K =1)THEN Q = Q+1; END IF; C_QD = Q(3); C_SR = Q(5 DOWNTO 4); END PROCESS; SEL =1110 WHEN C_SR= 0 ELSE 1101 WHEN C_SR= 1 ELSE 1011 WHEN C_SR= 2 ELSE 0111 WHEN C_SR= 3 ELSE 1111; END BLOCK CO

20、UNTER; KEY_DECODER : BLOCK SIGNAL Z : STD_LOGIC_VECTOR(4 DOWNTO 0); BEGIN PROCESS(C_QD) BEGIN Z N N N N N N N N N N N F F F = 1000; END CASE; END IF; END PROCESS; FN = NOT ( N(3) AND N(2) AND N(1) AND N(0); FF = F(2) OR F(0);END BLOCK KEY_DECODER;END ARCHITECTURE ART;3.1.2输入模块单元有上面的程序通过quartus II,我们

21、可以得到下面这个封装元件。图3.1电子密码锁键盘输入3.1.3输入模块仿真图3.2 密码锁输入模块仿真图3.2电子密码锁系统控制模块密码锁的控制电路是整个电路的控制中心,主要完成对数字按键输入和功能按键输入的响应控制。数字按键输入的响应控制:(1) 如果按下数字键,第一个数字会从显示器的最右端开始显示,此后每新按一个数字时,显示器上的数字必须左移一格,以便将新的数字显示出来。(2) 假如要更改输入的数字,可以按倒退按键来清除前一个输入的数字,或者按清除键清除所有输入的数字,再重新输入四位数。(3) 由于这里设计的是一个四位的电子密码锁,所以当输入的数字键超过四个时,电路不予理会,而且不再显示第

22、四个以后的数字。3.2.1 控制模块程序LIBRARY IEEE;USE IEEE.STD_LOGIC_1164.ALL;USE IEEE.STD_LOGIC_ARITH.ALL;USE IEEE.STD_LOGIC_UNSIGNED.ALL;ENTITY CONTROL ISPORT( DATA_N: IN STD_LOGIC_VECTOR(3 DOWNTO 0); DATA_F: IN STD_LOGIC_VECTOR(3 DOWNTO 0); FLAG_N: IN STD_LOGIC; FLAG_F: IN STD_LOGIC; MIMAIN: BUFFER STD_LOGIC; SET

23、IN: BUFFER STD_LOGIC; OLD: BUFFER STD_LOGIC; CQD: IN STD_LOGIC; ENLOCK: OUT STD_LOGIC; DATA_BCD: OUT STD_LOGIC_VECTOR(15 DOWNTO 0);END ENTITY CONTROL;ARCHITECTURE ART OF CONTROL IS SIGNAL ACC,REG:STD_LOGIC_VECTOR(15 DOWNTO 0); BEGIN PROCESS(CQD,FLAG_F) IS BEGIN IF CQDEVENT AND CQD=0THEN IF FLAG_F=1T

24、HEN IF(DATA_F=0100)THEN ACC=1111111111111111; MIMAIN=0;SETIN=0;OLDENLOCKMIMAIN=1; ACCSETIN=1; ACC=1111111111111111; OLD NULL; END CASE; ELSIF(MIMAIN=1)THEN IF ACC=REG THEN ENLOCK=0; MIMAIN=0; ELSE MIMAIN=0; END IF; ELSIF(SETIN=1)THEN IF(OLD=1)THEN IF(ACC=REG)THEN OLD=0; ELSE SETIN=0; OLD=0; END IF;

25、ELSE IF (ACC1001100110011001)THEN REG=ACC; SETIN=0; END IF; END IF; END IF; END IF; ELSIF FLAG_N=1THEN ACC=ACC(11 DOWNTO 0)&DATA_N; END IF; END IF; END PROCESS; DATA_BCDDOUT7DOUT7DOUT7DOUT7DOUT7DOUT7DOUT7DOUT7DOUT7DOUT7DOUT7=0000000; END CASE; END PROCESS;END ARCHITECTURE ART;3.3.2显示模块单元图3.5 电子密码锁显示

26、模块元件3.3.3显示模块仿真图3.6 密码锁显示模块仿真图4小结 经过这次EDA课程设计的一个星期,不仅温习和巩固了课堂上所学过的基础知识,而且学到了很多书本上都没有提及的内容,进一步加深了对EDA技术的了解。在课设过程中,调试顶层文件程序时遇到了不少问题,比如,各元件之间的连接和信号的定义,但是最后在细心的检查下,还是成功排除了错误和警告;在波形仿真时,想要的结果不能在波形上得到正确的显示,在经过十几次的调试后,才发现是因为输入的时钟信号对于器件的延迟时间来说太短了。时钟周期设置在15秒左右比较合适,Endtime的值需要设置的长一点10us左右,这样就可以观察到完整的仿真结果。 其次,在

27、连接各个模块的时候一定要注意各个输入、输出引脚的线宽,因为每个线宽是不一样的,只有让各个线宽互相匹配,才能得出最终的正确的结果。否则,出现任何一点小的误差就会导致整个文件系统的编译出现错误提示,在器件的选择上也有一定的技巧,只有选择了适合当前电路所的器件,编译才能成功。 通过这次EDA课程设计使我懂得了理论与实际相结合是很重要的,只有把所学的理论知识与实践相结合起来,才能提高自己的实际动手能力和独立思考的能力。参考文献1 谭会生,张昌凡. EDA 技术及应用(第二版)西安:西安电子科技大学出版社,20012 徐光军,徐光辉. CPLD/FPGA 的开发与应用. 北京:电子工业出版社,20023 李国丽,朱维勇. EDA 与数字系统设计. 北京:机械工业出版社,2004编(1997). 北京:北京理工大学出版社,19994 潘松,黄继业. EDA 技术实用教程. 北京:科学出版社,20025 18

展开阅读全文
温馨提示:
1: 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
2: 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
3.本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
5. 装配图网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
关于我们 - 网站声明 - 网站地图 - 资源地图 - 友情链接 - 网站客服 - 联系我们

copyright@ 2023-2025  zhuangpeitu.com 装配图网版权所有   联系电话:18123376007

备案号:ICP2024067431-1 川公网安备51140202000466号


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