分享
分销 收藏 举报 申诉 / 30
播放页_导航下方通栏广告

类型数字密码锁设计-学位论文.doc

  • 上传人:天****
  • 文档编号:5123971
  • 上传时间:2024-10-26
  • 格式:DOC
  • 页数:30
  • 大小:2.92MB
  • 下载积分:12 金币
  • 播放页_非在线预览资源立即下载上方广告
    配套讲稿:

    如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。

    特殊限制:

    部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。

    关 键  词:
    数字 密码锁 设计 学位 论文
    资源描述:
    山东大学本科毕业设计 目 录 摘要………………………………………….1 Abstract……………………………………..1 第1章 绪论………………………………..2 第2章设计方案……………………………3 2.1系统模块划分…………………………….3 2.2信号功能描述…………………………….5 2.3数字锁工作过程………………………….5 第3章 仿真及测试结果………………….7 3.1 顶层设计仿真波形………………………7 3.2 时钟信号仿真波形………………………8 3.3控制器的仿真……………………………8 第4章 结论………………………………13 致谢………………………………………..13 参考文献…………………………………..14 附录………………………………………..15 摘 要 电子产品的应用给人们的生活带来了方便和快捷。与传统锁相比,数字锁作为一种电子产品在当今社会生活中显出了更大的优越性。同时,EDA技术的发展使得电子产品的在实现上有了突破。一个可编程逻辑器件芯片可以实现很多功能,既减少了资源又提高了可靠性。本文通过对数字密码锁的功能分析划分了数字密码锁的结构模块,并用VHDL语言对各模块进行硬件描述,画出系统原理图。我们对原理图和程序文件进行了计算机仿真,得到了符合要求的结果。在输入密码正确时,开锁并且绿灯亮;输入密码不正确时,红灯亮并发出警报。 关键字:FPGA;CPLD;可编程逻辑器件;数字密码锁 Abstract The application of electronics products brings great convenience to our life. As a electronics product, digital encrypted lock has more advantages over traditional lock in our daily use. Meanwhile, the development of EDA technology takes a breakthrough to the performance of electronics products, which saves the resources and enhances the reliability. In this paper, through analysis of the digital encrypted lock’s function, we divided the whole system into several modules. Then, we described each module by VHDL (Very High-Speed Integrated Circuit Hardware Description Language) and drew the graphic files. We simulated the files and finally got the results. When you input correct codes, the door opens and the light is green. When the wrong codes are inputted, the light turns red and the alert rings. The results have demonstrated the feasibility of our approach. Key words: FPGA;CPLD;Programmable Logic Device;Digital Encrypted Lock 第1章 绪 论 随着科技的发展,电子产品已广泛地应用于人们的日常生活,数字密码锁也应用于保险提箱、超市物品柜等诸多场合,给人们带来了安全和方便。本项目的数字锁除能实现同于其他数字锁的一般功能外,还有一些其他的优点。安装了报警装置,在输入错误密码后发出警报,提高了安全性。另外键盘设有盲点,可以方便盲人开锁,扩大了它的应用领域。基于这些优点和其广泛的实用性,该数字锁具有研发的意义。 近几年来EDA技术的迅猛发展给电子产品的设计带来了新方法,有文章评论可编程逻辑器件FPGA/PLD将冲击未来的系统设计[1]。与此同时,IC技术发展日新月异。1960年Gordon Moore提出集成电路的功能随着时间呈指数增长的规律。Moore的预言在其后的几十年中表现出惊人的吻合,且被称之为Moore定律[2]。该定律指出,IC的集成度(即每个微电子芯片上集成的器件数),每IS个月翻一番,对应于IC制作工艺的特征线宽则每三年缩小30%。根据按比例缩小原理(Scaling Down Principle),特征线条越窄,IC工作速度越快,单元功能消耗的功率越低。因此,IC的发展不仅提高集成度,而且大大改善其性能(速度、功耗、可靠性等)。现在人们已经能够把一个完整的电子系统集成在一个芯片上了。因此,用一片可编程逻辑器件芯片——FPGA/CPLD实现数字锁的功能既节省了资源又提高了系统的可靠性。 本文将数字密码锁划分成控制器、比较器、计数器、编码器、数据选择器等一些模块,并加入使能电路、消抖电路和指示电路等外围电路。对每一个模块均进行了VHDL语言描述和基于Max+plusII软件平台的计算机仿真[3-5],得到了较理想的波形。仿真结果证明了我们设计的正确性。波形及相关程序见附录。 本文具体安排如下:论文的第一部分阐述课题的背景和研究意义;第二部分给出了数字锁的设计方案,介绍数字锁的工作过程;在第三部分中我们对系统的模块进行了仿真,得到了满意的结果;最后一个部分给出了结论。 第2章 设计方案 密码的输入方式有并行和串行两种。采用串行输入方式,电路较简单,而且还有一个优点,就是串行输入必须用时序电路实现,对结果的判别与操作程序有关。故本设计采用串行数字锁并对操作过程有所规定。 2.1系统模块划分 图2-1是数字密码锁的原理框图。通过图2-1对数字密码锁的模块划分,我们可以确定整个系统的输入输出端口信号。 图2-1 密码锁各模块划分 1. 数字按键输入信号a0~a9,用来进行数字按键操作; 2. 按键输入信号wait_t, 用来建立密码器的等待状态; 3. 按键输入信号ready,用来设置密码器的准备操作状态; 4. 按键输入信号setup,用于内部人员进行重新设置密码器; 5. 按键输入信号open_t,用来设置密码器进入启动状态; 6. 绿灯指示驱动信号led_g,驱动绿灯显示; 7. 红灯指示驱动信号led_g,驱动红灯显示; 8. 蜂鸣器驱动信号alert,驱动蜂鸣器报警; 9. 外部时钟信号clk,用来作为内部操作时钟和驱动蜂鸣器; 10. 数码管显示译码输出a, b, c, d, e, f, g 。 2.2信号功能描述 1) 给密码锁上电后按下ready键,表示密码器准备就绪,可以接受外界输入密码。 2) 通过a0~a9按键输入3位数字密码后按下open_t键,如果输入的密码正确,则开锁,同时密码器绿灯亮。如果密码有误,则不能开启,同时红灯亮,发出警报。 3) 密码锁开启结束后,密码锁进入下一次开锁等待状态。这时设置按键wait_t使密码锁重新进入等待状态。 4) 密码锁处于报警状态时,ready和wait_t键不起作用。这种情况下,密码锁由内部人员按setup键来对密码锁进行重新设置,使其回到等待状态。安全起见,setup应置于外部人员看不到的地方。 5) 如果密码输入时操作失误,按下ready键重新回到密码锁准备就绪状态。 6) 密码锁的工作时钟由外部晶振提供,可以用分频器对外部时钟进行分频操作,以产生需要的时钟。 2.3数字锁工作过程 首先,密码锁通过键盘输入数字密码,然后密码通过编码器转换输出BCD码,接下来通过比较器与预置密码进行比较,同时将输入的密码数字通过数码管显示译码模块显示出来,最后将比较的结果dep送入控制器中。外部键每送入一个密码,计数器的计数值加1。如果计数器的计数值计到3,表示3个密码已经输入完毕。接下来计数器应向控制器发出反馈信号full,这表示控制器已经进入启动状态。 控制器模块在密码器每收到一个密码数字时向计数器发出一个时钟信号,如果密码器在按下open_t键以前收到第4个密码数字,将会转入报警状态,这时等待按下open_t键开始报警。所以,密码器每输入一个密码应该向控制器模块送入一个data_in信号,显然这个信号也应该同步。 另外,数字密码a0~a9、ready、open_t 、wait_t 、setup均由按键方式产生,其产生时刻和持续时间长短是随机不定的,并且存在因开关簧片反弹而引起的电平抖动现象,因此每个开关后面安一个消抖模块以保证系统能捕捉到输入脉冲,同时保证每按一个键只形成一个宽度为系统时钟周期的脉冲。 控制器是数字密码锁的核心部分,下面将对这一部分作重点的分析。 将控制器的工作分为六个状态:Qa—建立等待状态,Qb—准备就绪状态,Qc—密码输入状态,Qd—开启状态,Qe—报警状态,Qf—报警返回状态。根据工作过程,可以得到控制器工作流程图,见附录,并化简得到状态转换的激励方程: 各状态之间的转换过程如下: 图2-2 控制器状态转换图 上图描述了控制器在6个状态之间的跳转过程和具体转换条件,可以清楚地看出控制器的工作过程。 第3章 仿真及测试结果 各模块的VHDL语言描述文件见附录,通过仿真得到了令人满意的波形。 3.1 顶层设计仿真波形: 图3-1 系统仿真结果 从图中看出,每输入一个密码,data_in出现一个高电平。在输入正确密码1,2,3时,比较器判断信号均显示高电平,系统进入Qd启动状态。按下open_t键以后,绿灯亮(低电平有效)。开锁过程完成。 3.2 时钟信号仿真波形: 图3-2 时钟信号仿真波形一 clk_div2是clk的200,000分频为控制器提供时钟信号。 图3-3 时钟信号仿真波形二 clk_div1是clk的1000分频,为报警器提供时钟信号。 3.3控制器的仿真: 下面我们对数字锁的核心部分——控制器进行仿真。clk_div2为控制器提供时钟,dep为比较器输出信号,绿灯和红灯均为低电平有效。c11为wait_t输出信号,c22为setup输出信号,c33为ready输出信号,c44为open_t输出信号。本文仿真了控制器于不同状态的跳转情况。仿真时间为3.25µs。模块流程图见附录。 仿真源程序: library ieee; use ieee.std_logic_1164.all; entity control_model is port(c11,c22,c33,c44:in std_logic; data_in :in std_logic; dep :in std_logic; full :in std_logic; clk_div2 :in std_logic; en :out std_logic; cnp,reset :out std_logic; s_lr,s_lg,wait_l::out std_logic); end control_model; architecture control_model_arch of control_model is type state is (qa,qb,qc,qd,qe,qf); signal current_state:state:=qa; begin process begin wait until clk_div2'event and clk_div2='1'; wait_1<='1'; case current_state is when qa=>en<='0'; if (c11='0')then current_state<=qa; else current_state<=qb; wait_1<='0'; s_lg<='1'; s_lr<='1'; end if; when qb=>wait_1<='1';en<='0'; if (c33='0')then current_state<=qb; else current_state<=qc; reset<='1'; end if; when qc=>reset<='0';cnp<='0';en<='1'; if (c44='0')then current_state<=qf; s_lr<='0'; elsif (c33='1') then current_state<=qc; reset='1'; elsif(full='1') then current_state<=qd; elsif(data_in='0')then current_state<=qc; else cnp<='1'; if (dep='0') then current_state<=qe; elsif(full='1')then current_state<=qd; else current_state<=qc; end if; end if; when qd=>en<='1'; if (data_in='1') then current_state<=qe; elsif(c33='1') then current_state<=qc; reset<='1'; elsif(c44='0') then current_state<=qd; else s_lg<='0'; current_state<=qa; end if; when qe=>en<='1'; if(c33='1') then current_state<=qc; reset<='1'; elsif(c44='0') then current_state<=qe; else s_lr<='0'; current_state<=qf; end if; when qf=>en<='0'; if (c22='0') then current_state<=qf; else current_state<=qb; s_lr<='1'; wait_l<='0'; end if; end case; end process; end control_model_arch; 仿真波形: 图3-4 系统各状态转换仿真图 从上图可以看出,系统处于a状态(建立等待状态)时,密码器不会接受除wait_t以外的信号,按下wait_t键,系统进入b状态(准备就绪状态)同时输出计数器清零信号setup。这时按下ready键,密码锁进入c状态(密码输入状态),控制器接受密码输入。当输入密码满3位时,full信号出现高电平,这时转入启动状态d状态。控制器要判断接下来的信号是open_t还是数字键,假设我们又输入一个数字,data_in出现高电平,系统则进入报警状态e状态。如果按下open_t键,如波形图c44出现高电平,控制器发出红灯亮信号并进入报警返回状态f状态。这时我们完成了a→b→c→d→e→f的状态转换仿真。 按下setup键,c22信号出现高电平,数字锁重新进入b状态,按ready键,进入c状态,输入密码,dep出现低电平表明密码不符合,转入e状态。系统于e状态时,按下ready键又转入c状态。在c状态时按下open_t键,不符合启动程序,则进入f状态同时红灯亮。完成b→c→e→c→f的转换仿真。同样,f状态时按下setup键,c22信号出现高电平,数字锁重新进入b状态。 系统b状态按下ready键进入c状态,输入三位密码后进入d状态,若这时发现操作失误,按下ready键可输出reset信号,返回c状态(密码输入状态),若不按ready,按下open_t则开锁,绿灯亮。 第4章 结 论 本文用可编程逻辑器件实现了多功能数字锁系统的功能,增加了系统的及程度,节省了资源。该密码锁在输入正确密码时,锁开启并且绿灯亮,输入密码不正确时,红灯亮并发出警报。本文给出顶层原理图、模块框图以及各模块的VHDL语言源程序。各模块的VHDL语言描述已通过计算机仿真测试,得到了满意的波形。这证明了设计的正确性和方法的可行性。 谢 词 感谢指导老师一直以来给我的帮助,在理论学习和查阅资料的过程中,张有志老师一直给我热心的指导,这为后来系统功能的具体实现打下了基础。还要感谢实验室的老师在软件实现过程中给与的帮助。仿真过程中遇到很多问题在老师帮助和个人努力下得以解决,最终完成了设计任务,得到正确结果。 参考文献 [1]可编程逻辑器件FPGA/PLD冲击未来的系统设计[OL]. [2] 王金明等.数字系统设计与Verilog HDL[M].电子工业出版社,2002 [3] 任勇峰, 庄新敏.VHDL与硬件实现速成[M].国防工业出版社,2005 [4] 金西.VHDL与复杂数字系统设计[M].西安电子科技大学出版社, 2003 [5] 冯涛,王程.Max+plusII入门与提高[M].人民邮电出版社, 2002 [6]汪国强等.可编程路逻辑器件实验[M].电子工业出版社, 2005 [7]居悌.可编程路逻辑器件的开发与应用[M].人民邮电出版社,1995 [8]赵立民.可编程路逻辑器件与数字系统设计[M].机械工程出版社,2003 [9] Wayne Wolf. FPGA-based system design [M]. China Machine Press, 2005 [10] 杨恒.FPGA/CPLD最新实用技术指南[M].清华大学出版社,2005 [11]Vocke.Computer aided routing for complex programmable logic device manufacturing test development [J]. IEEE, April 2000:171-176 [12] Charles W. McKay. Digital Circuits[M].Englewood Cliffs, N.J. c1978. [13] Allan R. Hambley .Electronics[M] . Publishing House of Electronics Industry ,2005 [14] Mark D. Birnbaum. Essential electronic design automation[M].2005 [15]于枫,张丽英,廖宗建.ALTERA可编程逻辑器件应用技术[M].科学出版社,2004 附录: 1) 顶层文件VHDL源程序 LIBRARY IEEE; USE IEEE.std_logic_1164.ALL; USE IEEE.std_logic_arith.ALL; USE IEEE.std_logic_unsigned.ALL; USE WORK.cipher_example.ALL; ENTITY cipher_top IS PORT(a0,a1,a2,a3,a4,a5,a6,a7,a8,a9:IN std_logic; wait_t:IN std_logic; ready: IN std_logic; setup: IN std_logic; open_t: IN std_logic; clk: IN std_logic; led_g,led_r,alert:OUT std_logic; a,b,c,d,e,f,g:OUT std_logic); END cipher_top ; ARCHITECTURE cipher_top_arch OF cipher_top IS COMPONENT clkdiv_model PORT (clk:IN std_logic; clk_div1:OUT std_logic; clk_div2:OUT std_logic); END COMPONENT clkdiv_model; COMPONENT keysync_model PORT (c1,c2,c3,c4:IN std_logic; a00,a10,a20,a30,a40,a50,a60,a70,a80,a90;IN std_logic; clk:IN std_logic; c11,c22,c33,c44:OUT std_logic; a01,a11,a21,a31,a41,a51,a61,a71,a81,a91:OUT std_logic); END COMPONENT keysync_model; COMPONENT enable_model PORT (open_t:IN std_logic; a0,a1,a2,a3,a4,a5,a6,a7,a8,a9:IN std_logic; en:IN std_logic; c4:OUT std_logic; a00,a10,a20,a30,a40,a50,a60,a70,a80,a90:OUT std_logic); END COMPONENT enable_model; COMPONENT invert_model PORT (wait_t:IN std_logic; ready: IN std_logic; setup: IN std_logic; c1,c2,c3:OUT std_logic); END COMPONENT invert_model; COMPONENT mux4_model PORT (s0,s1:IN std_logic; e1,e2,e3,e4:OUT std_logic); END COMPONENT mux4_model; COMPONENT encoder_model PORT (a01,a11,a21,a31,a41,a51,a61,a71,a81,a91:IN std_logic; b1,b2,b3,b4:OUT std_logic; data_in:OUT std_logic); END COMPONENT encoder_model; COMPONENT comparator_model PORT (b1,b2,b3,b4:IN std_logic; e1,e2,e3,e4:IN std_logic; dep:OUT std_logic); END COMPONENT comparator_model; COMPONENT counter_model PORT (reset:IN std_logic; cnp: IN std_logic; s0,s1 OUT std_logic; full:OUT std_logic); END COMPONENT counter_model; COMPONENT decoder_model PORT (b1,b2,b3,b4:IN std_logic; a,b,c,d,e,f,g: OUT std_logic); END COMPONENT decoder_model; COMPONENT indicator_model PORT (wait_l:IN std_logic; s_lg:IN std_logic; s_lr:IN std_logic; clk_div1: IN std_logic; led_g,led_r,alert:OUT std_logic); END COMPONENT indicator_model; COMPONENT control_model PORT (c11,c22,c33,c44:IN std_logic; data_in:IN std_logic; dep:IN std_logic; full: IN std_logic; clk_div2:IN std_logic; en :OUT std_logic; cnp,reset:OUT std_logic; s_lr,s_lg,wait_l:OUT std_logic); END COMPONENT control_model; SINGAL e1,e2,e3,e4:std_logic; SINGAL b1,b2,b3,b4 :std_logic; SINGAL c1,c2,c3,c4 :std_logic; SINGAL c11,c22,c33,c44 :std_logic; SINGAL a00,a10,a20,a30,a40,a50,a60,a70,a80,a90:std_logic; SINGAL a01,a11,a21,a31,a41,a51,a61,a71,a81,a91 :std_logic; SINGAL en,data_in :std_logic; SINGAL wait_l,s_lg,s_lr :std_logic; SINGAL reset,cnp :std_logic; SINGAL full,dep :std_logic; SINGAL s0,s1 :std_logic; SINGAL clk_div1 clk_div2 :std_logic; BEGIN U1:clkdiv_model PORT MAP(clk,clk_div1,clk_div2) ; U2:keysync_model PORT MAP(c1,c2,c3,c4,a00,a10,a20,a30,a40,a50,a60,a70,a80,a90, clk,c11,c22,c33,c44,a01,a11,a21,a31,a41,a51,a61,a71,a81,a91); U3:enbale_model PORT MAP(open_t,a0,a1,a2,a3,a4,a5,a6,a7,a8,a9,en,c4, a00,a10,a20, a30,a40,a50,a60,a70,a80,a90); U4:invert_model PORT MAP(wait_t,ready,setup,c1,c2,c3); U5:mux4_model PORT MAP(s0,s1,e1,e2,e3,e4); U6:encoder_model PORT MAP(a01,a11,a21,a31,a41,a51,a61,a71,a81,a91, b1,b2,b3,b4data_in); U7:comparator_model PORT MAP(b1,b2,b3,b4,e1,e2,e3,e4,dep); U8:counter_model PORT MAP(reset,cnp,s0,s1,full); U9:decoder_model PORT MAP(b1,b2,b3,b4,a,b,c,d,e,f,g); U10:indicator_model PORT MAP(wait_l,s_lg,s_lr,clk_div1,led_g,led_r,alert); U11:control_model PORT MAP(c11,c22,c33,c44,data_in,dep,full,clk_div2 en,cnp,reset,s_lr,s_lg,wait_l); END cipher_top_arch; 2)以下是为系统提供的各时钟信号,根据需要我们对1M的时钟进
    展开阅读全文
    提示  咨信网温馨提示:
    1、咨信平台为文档C2C交易模式,即用户上传的文档直接被用户下载,收益归上传人(含作者)所有;本站仅是提供信息存储空间和展示预览,仅对用户上传内容的表现方式做保护处理,对上载内容不做任何修改或编辑。所展示的作品文档包括内容和图片全部来源于网络用户和作者上传投稿,我们不确定上传用户享有完全著作权,根据《信息网络传播权保护条例》,如果侵犯了您的版权、权益或隐私,请联系我们,核实后会尽快下架及时删除,并可随时和客服了解处理情况,尊重保护知识产权我们共同努力。
    2、文档的总页数、文档格式和文档大小以系统显示为准(内容中显示的页数不一定正确),网站客服只以系统显示的页数、文件格式、文档大小作为仲裁依据,个别因单元格分列造成显示页码不一将协商解决,平台无法对文档的真实性、完整性、权威性、准确性、专业性及其观点立场做任何保证或承诺,下载前须认真查看,确认无误后再购买,务必慎重购买;若有违法违纪将进行移交司法处理,若涉侵权平台将进行基本处罚并下架。
    3、本站所有内容均由用户上传,付费前请自行鉴别,如您付费,意味着您已接受本站规则且自行承担风险,本站不进行额外附加服务,虚拟产品一经售出概不退款(未进行购买下载可退充值款),文档一经付费(服务费)、不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。
    4、如你看到网页展示的文档有www.zixin.com.cn水印,是因预览和防盗链等技术需要对页面进行转换压缩成图而已,我们并不对上传的文档进行任何编辑或修改,文档下载后都不会有水印标识(原文档上传前个别存留的除外),下载后原文更清晰;试题试卷类文档,如果标题没有明确说明有答案则都视为没有答案,请知晓;PPT和DOC文档可被视为“模板”,允许上传人保留章节、目录结构的情况下删减部份的内容;PDF文档不管是原文档转换或图片扫描而得,本站不作要求视为允许,下载前可先查看【教您几个在下载文档中可以更好的避免被坑】。
    5、本文档所展示的图片、画像、字体、音乐的版权可能需版权方额外授权,请谨慎使用;网站提供的党政主题相关内容(国旗、国徽、党徽--等)目的在于配合国家政策宣传,仅限个人学习分享使用,禁止用于任何广告和商用目的。
    6、文档遇到问题,请及时联系平台进行协调解决,联系【微信客服】、【QQ客服】,若有其他问题请点击或扫码反馈【服务填表】;文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“【版权申诉】”,意见反馈和侵权处理邮箱:1219186828@qq.com;也可以拔打客服电话:0574-28810668;投诉电话:18658249818。

    开通VIP折扣优惠下载文档

    自信AI创作助手
    关于本文
    本文标题:数字密码锁设计-学位论文.doc
    链接地址:https://www.zixin.com.cn/doc/5123971.html
    页脚通栏广告

    Copyright ©2010-2026   All Rights Reserved  宁波自信网络信息技术有限公司 版权所有   |  客服电话:0574-28810668    微信客服:咨信网客服    投诉电话:18658249818   

    违法和不良信息举报邮箱:help@zixin.com.cn    文档合作和网站合作邮箱:fuwu@zixin.com.cn    意见反馈和侵权处理邮箱:1219186828@qq.com   | 证照中心

    12321jubao.png12321网络举报中心 电话:010-12321  jubao.png中国互联网举报中心 电话:12377   gongan.png浙公网安备33021202000488号  icp.png浙ICP备2021020529号-1 浙B2-20240490   


    关注我们 :微信公众号  抖音  微博  LOFTER               

    自信网络  |  ZixinNetwork