ImageVerifierCode 换一换
格式:DOCX , 页数:17 ,大小:639.89KB ,
资源ID:8627382      下载积分:3 金币
快捷下载
登录下载
邮箱/手机:
温馨提示:
快捷下载时,用户名和密码都是您填写的邮箱或者手机号,方便查询和重复下载(系统自动生成)。 如填写123,账号就是123,密码也是123。
特别说明:
请自助下载,系统不会自动发送文件的哦; 如果您已付费,想二次下载,请登录后访问:我的下载记录
支付方式: 支付宝    微信支付   
验证码:   换一换

加入VIP,免费下载
 

温馨提示:由于个人手机设置不同,如果发现不能下载,请复制以下地址【https://www.bdocx.com/down/8627382.html】到电脑端继续下载(重复下载不扣费)。

已注册用户请登录:
账号:
密码:
验证码:   换一换
  忘记密码?
三方登录: 微信登录   QQ登录  

下载须知

1: 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。
2: 试题试卷类文档,如果标题没有明确说明有答案则都视为没有答案,请知晓。
3: 文件的所有权益归上传用户所有。
4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
5. 本站仅提供交流平台,并不能对任何下载内容负责。
6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

版权提示 | 免责声明

本文(电子密码锁课程设计本报告.docx)为本站会员(b****5)主动上传,冰豆网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对上载内容本身不做任何修改或编辑。 若此文所含内容侵犯了您的版权或隐私,请立即通知冰豆网(发送邮件至service@bdocx.com或直接QQ联系客服),我们立即给予删除!

电子密码锁课程设计本报告.docx

1、电子密码锁课程设计本报告目录摘要 2第1章 课题设计背景 31.1 EDA技术介绍 31.2硬件描述语言VHDL 41.3 Quartus设计软件的简介 4第2章 系统设计总述 52.1 设计要求 62.2 设计方案 62.3设计技巧分析 72.4 整体组装设计原理图 8第3章 单元模块程序设计 93.1 电子密码锁系统输入模块 93.1.1 输入模块程序 93.1.2 输入模块元件 113.1.3 输入模块仿真 123.2 电子密码锁系统控制模块 123.2.1 控制模块程序 123.2.2 控制模块元件 143.2.3 控制模块仿真 153.3 电子密码锁系统显示模块 153.3.1 显示

2、模块程序 153.3.2 显示模块元件 163.3.3 显示模块仿真 16第4章 收获与体验 17参考文献 18摘要随着人们生活水平的提高,如何实现家庭防盗这一问题也变的尤其的突出,传统的机械锁由于其构造的简单,被撬的事件屡见不鲜,电子锁由于其保密性高,使用灵活性好,安全系数高,收到了广大的用户的青睐。电子电路设计常用的方法是实验设计法,一般都包括设计法案提出、方案验证、方案修改3个阶段。传统的实验设计法通常采用手工接实验电路来完成,往往需要经过试验和修改的反复过程,直到设计出正确的电路。随着电子和计算机技术的发展,生产了在计算机平台上的EDA(电子设计自动化)技术,这种技术除了具有强大的设计

3、功能外,还具有测试、仿真分析、管理等功能。在“EDA桌面设计环境”下用计算机来完成电路的系统综合设计和仿真。用VHDL可以更加快速、灵活地设计出符合各种要求的密码锁,优于其他设计方法。VHDL是一种符合IEEE标准的硬件描述语言,其最大的特点是借鉴高级程序设计语言的功能特性,对电路的行为与结构进行高度抽象化、规范化的形式描述,并对设计的不同层次、不同领域的模拟验证与综合优化等处理,使设计过程廷到高度自动化。第1章 课题设计背景1.1 EDA技术介绍在电子设计技术领域,可编程逻辑器件(如PLD,GAL)的应用,已有了很好的普及。这些器件为数字系统的设计带来极大的灵活性。由于这类器件可以通过软件编

4、程而对其硬件的结构和工作方式进行重构,使得硬件的设计可以如同软件设计那样方便快捷。这一切极大地改变了传统的数字系统设计方法、设计过程、乃至设计观念。纵观可编程逻辑器件的发展史,它在结构原理、集成规模、下载方式、逻辑设计手段等方面的每一次进步都为现代电子设计技术的革命与发展提供了不可或缺的强大动力。随着可编程逻辑器件集成规模不断扩大,自身功能的不断完善和计算机辅助设计技术的提高,在现代电子系统设计领域中的EDA便应运而生了。传统的数字电路设计模式,如利用卡诺图的逻辑化简手段以及难懂的布尔方程表达方式和相应的TTL或4000系列小规模集成芯片的堆砌技术正在迅速地退出历史舞台1。电子设计自动化(ED

5、A)是一种实现电子系统或电子产品自动化设计的技术,它与电子技术、微电子技术的发展密切相关,吸收了计算机科学领域的大多数最新研究成果,以高性能的计算机作为工作平台,是20世纪90年代初从CAD(计算机辅助设计)、CAM(计算机辅助制造)、CAT(计算机辅助测试)和CAE(计算机辅助工程)的概念发展而来的2。EDA技术就是以计算机为工具,在EDA软件平台上,根据硬件描述语言HDL完成的设计文件,自动地完成逻辑编译、化简、分割、综合及优化、布局线、仿真,直至对于特定目标芯片的适配编译、逻辑映射和编程下载等工作。设计者的工作仅限于利用软件的方式来完成对系统硬件功能的描述,在EDA工具的帮助下和应用相应

6、的FPG刀CPLD器件,就可以得到最后的设计结果。尽管目标系统是硬件,但整个设计和修改过程如同完成软件设计一样方便和高效。当然,这里的所谓EDA主要是指数字系统的自动化设计,因为这一领域的软硬件方面的技术已比较成熟,应用的普及程度也已比较大。而模拟电子系统的EDA正在进入实用,其初期的EDA工具不一定需要硬件描述语言。此外,从应用的广度和深度来说,由于电子信息领域的全面数字化,基于EDA的数字系统的设计技术具有更大的应用市场和更紧迫的需求性3。1.2 硬件描述语言VHDL硬件描述语言(HDLHardware Description Language)是一种用于设计硬件电子系统的计算机语言,它用

7、软件编程的方式来描述电子系统的逻辑功能、电路结构和连接形式,与传统的门级描述方式相比,它更适合大规模系统的设计。例如一个32位的加法器,利用图形输入软件需要输入500至1000个门,而利用VHDL语言只需要书写一行A=B+C即可,而且VHDL语言可读性强,易于修改和发现错误。早期的硬件描述语言,如ABELHDL、AHDL,由不同的EDA厂商开发,互不兼容,而且不支持多层次设计,层次间翻译工作要由人工完成。为了克服以上不足,1985年美国国防部正式推出了VHDL(Very High Speed IC Hardware Description Language)语言,1987年IEEE采纳VHDL

8、为硬件描述语言标准(IEEE STD-1076)。VHDL是一种全方位的硬件描述语言,包括系统行为级、寄存器传输级和逻辑门级多个设计层次,支持结构、数据流、行为三种描述形式的混合描述,因此VHDL几乎覆盖了以往各种硬件描述语言的功能,整个自顶向下或自底向上的电路设计过程都可以用VHDL来完成。1.3 Quartus设计软件的简介Quartus是Altera提供的FPGA/CPLD开发集成环境,Quartus是Altera前一代FPGA/CPLD集成开发环境MAX+plus的更新换代产品,其界面友好,使用简捷。在Quartus上可以完成VHDL行为仿真,功能仿真,结构综合,门级时序仿真,硬件测试

9、等功能,它提供了一种与结构无关的设计环境,设计者能方便的进行设计输入、速处理和器件编程。Quartus包括模块化的编译器。编译器包括的功能模块有分析/综合器、适配器、装配器、时序分析器、设计辅助模块、EDA网表文件生成器、编辑器数据接口等。可通过选择Start单独运行各个模块。还可通过择Compiler Tool(Tools 菜单),在Compiler Tool窗口中运行该模块来启动编译器模块。在Compiler Tool窗口中,可以打开该模块的设置文件或报告文件,或打开其他相关窗口。Quartus II提供了完全集成且与电路结构无关的开发包环境,具有数字逻辑设计的全部特性,包括:(1)可利用

10、原理图、结构框图、VerilogHDL、AHDL和VHDL完成电路描述,并将其保存为设计实体文件; (2)芯片(电路)平面布局连线编辑; (3)LogicLock增量设计方法,用户可建立并优化系统,然后添加对原始系统的性能影响较小或无影响的后续模块; (4)功能强大的逻辑综合工具,完备的电路功能仿真与时序逻辑仿真工具; (5)定时/时序分析与关键路径延时分析,可使用SignalTap II逻辑分析工具进行嵌入式的逻辑分析; (6)支持软件源文件的添加和创建,并将它们链接起来生成编程文件; (7)使用组合编译方式可一次完成整体设计流程,自动定位编译错误; (8)高效的期间编程与验证工具; (9)

11、可读入标准的EDIF网表文件、VHDL网表文件和Verilog网表文件,能生成第三方EDA软件使用的VHDL网表文件和Verilog网表文件。第2章 系统设计总述2.1 设计要求 设计一个具有较高安全性和较低成本的通用电子密码锁,其具体功能要求如下:(1) 数码输入:每按下一个数字键:就输入一个数值,并在显示器上的最右方显示出该数值,同时将先前输入的数据依序左移一个数字位置(2) 数码清除:按下此键可清除前面所有的输入值,清除成为“0000”。(3) 密码更改:按下此键时会将目前的数字设定成新的密码。(4) 激活电锁:按下此键可将密码锁上锁。(5) 解除电锁:按下此键会检查输入的密码是否正确,

12、密码正确即开锁。2.2设计方案图1-1 电子密码锁总体方框图该系统可以分成三部分来设计,数字密码输入部分、密码锁控制电路和密码锁显示电路。作为密码锁的输入部分,可供选择的方案有数字机械式键盘和触摸式数字键盘等多种。考虑种种因素,建议本设计采用通用数字机械键盘。根据以上选定的输入设备和显示器件,并考虑到实现各项数字密码锁功能的具体要求,整个电子密码锁系统的总体组成框图如图1-1所示。(1) 密码锁输入电路包括时序产生电路、键盘扫描电路、键盘去抖动电路、键盘译码电路等几个小的功能电路。密码锁控制电路包括按键数据的缓冲存储电路,密码的清除、变更、存储、激活电锁电路(寄存器清除信号发生电路),密码核对

13、(数值比较电路),解锁电路(开/关门锁电路)等几个小的功能电路。(2) 七段数码管显示电路主要将待显示数据的BCD码转换成数码器的七段显示驱动编码。(3) 根据以上选定的输入设备和显示器件,并考虑到实现各项数字密码锁功。 密码输入一般采用机械式和接触式两种键盘。机械式3x4键盘虽然易产生抖动、磨损等问题,但具有电路结构简单、成本低、可靠性高、技术成熟、应用广泛等优点,在密码锁的设计过程中经常被采用。图2是一个34矩阵式键盘的面板配置图,其中数字09作为密码数字输入按键,*作为“上锁”功能按键,#作为“解锁/清除”功能按键。如图2所示:2.3设计技巧分析(1) 密码锁输入电路KEYBOARD.V

14、HD中对各种分频信号/信号序列的设计有独到之处。该设计中,利用一个自由计数器来产生各种需要的频率,也就是先建立一个N位计数器,N的大小根据电路的需求决定。N的值越大,电路可以除频的次数就越多,这样就可以获得更大的频率变化,以便提供多种不同频率的时钟信号。若输入时钟为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分

15、频。我们利用以上规律即可得到各种我们所需要频率的信号或信号序列;(2) 键盘输入去抖电路的设计程序DEBOUCING.VHD在实际系统的开发中有较好的参考价值。(3) 密码锁控制电路CTRL.VHD中对于数据的更新及移位方法比较好。程序中使用语句“ACC=ACC(11 DOWNTO 0)&DATA_N”非常简洁地同时实现了ACC中低4位用DATA_N进行更新,而高12位用ACC中原来的低12位左移而来的处理。 (4) 在密码锁输入电路等模块的程序的设计和仿真中,为了便于观察一些中间结果,在程序中增加了一些观测输出点。这一设计技巧,对于较大的程序或多进程程序的设计非常重要。同时在仿真时,为了便于

16、观测全局结果,降低了分频常数。同理,在进行程序仿真时,对于程序中数目较大的分频/计数/计时常数的修改是非常必要的。2.4 整体组装设计原理图系统的整体组装设计有密码输入模块、密码控制模块、密码显示模块三部分组成,故如图2.1所示:图 2-1 系统整体组装设计原理图第3章 单元模块程序设计本章节介绍的是单独模块的程序、原理图、仿真以及功能说明,共有三个模块,分别是电子密码锁输入模块、电子密码锁控制模块以及显示模块。3.1 电子密码锁输入模块1.时序产生电路 本时序产生电路中使用了三种不同频率的工作脉冲波形:系统时钟脉冲(它是系统内部所有时钟脉冲的源头,且其频率最高)、弹跳消除取样信号、键盘扫描信

17、号。2.键盘扫描电路扫描电路的作用是用来提供键盘扫描信号(表2-1中的KY3KY0)的,扫描信号变化的顺序依次为11101101101101111110.依序地周而复始。 3.弹跳消除电路由于本设计中采用的矩阵式键盘是机械开关结构,因此在开关切换的瞬间会在接触点出现信号来回弹跳的现象,对于电子密码锁这种灵敏度较高的电路这种弹跳将很可能会造成误动作输入,从而影响到密码锁操作的正确性。表2-1 按键位置的数码关系3.1.1输入模块程序LIBRARY IEEE;USE IEEE.STD_LOGIC_1164.ALL;USE IEEE.STD_LOGIC_ARITH.ALL;USE IEEE.STD_

18、LOGIC_UNSIGNED.ALL;ENTITY SR ISPORT(CLK_1K: IN STD_LOGIC; KEY_IN: IN STD_LOGIC_VECTOR(2 DOWNTO 0);DATA_N: OUT STD_LOGIC_VECTOR(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

19、_VECTOR(1 DOWNTO 0); END ENTITY SR; ARCHITECTURE ART OF SR IS SIGNAL C_QD: STD_LOGIC; SIGNAL C_SR: STD_LOGIC_VECTOR(1 DOWNTO 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_VE

20、CTOR(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) ; 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

21、 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 COUNTER; 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

22、(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,我们可以得到下面这个封装元件。图2-1电子密码锁键盘输入3.1.3 输入模块仿真图2-2 密码锁输入模块的仿真图3.2电子密码锁系统控制模块密码锁的控制电路是整个电路的控制中心,主要完成对数字按键输入和功能按键输入的响应控制。1数字按键输入的响应控制(1) 如果按下数字键,第一个数字会从显示器的最右端开始显示,此后每新按一个数字时,显示器上的数字必须

23、左移一格,以便将新的数字显示出来。(2) 假如要更改输入的数字,可以按倒退按键来清除前一个输入的数字,或者按清除键清除所有输入的数字,再重新输入四位数。(3) 由于这里设计的是一个四位的电子密码锁,所以当输入的数字键超过四个时,电路不予理会,而且不再显示第四个以后的数字。2功能按键输入的响应控制 (1) 清除键:清除所有的输入数字,即做归零动作。(2) 激活电锁键:按下此键时可将密码锁的门上锁。(上锁前必须预先设定一个四位的数字密码。)(3) 解除电锁键:按下此键会检查输入的密码是否正确,若密码正确无误则开门。 3.2.1 控制模块程序LIBRARY IEEE;USE IEEE.STD_LOG

24、IC_1164.ALL;USE IEEE.STD_LOGIC_ARITH.ALL;USE IEEE.STD_LOGIC_UNSIGNED.ALL;ENTITY CTRL 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; SETIN: BUFFER STD_LOGIC; OLD: BUFFER STD_LOGIC; CQD: IN

25、 STD_LOGIC; ENLOCK: OUT STD_LOGIC; DATA_BCD: OUT STD_LOGIC_VECTOR(15 DOWNTO 0);END ENTITY CTRL;ARCHITECTURE ART OF CTRL 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=1THEN IF(DATA_F=0100)THEN ACC=1111111111111111; MIMAIN=0;SET

26、IN=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; 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_BCDDOUT7DOUT7DOUT7DOUT7DOUT7DOUT7DO

copyright@ 2008-2022 冰豆网网站版权所有

经营许可证编号:鄂ICP备2022015515号-1