基于FPGA的数字密码锁设计(VHDl代码全,11个模块均调试通过)(已处理).doc

基于FPGA的数字密码锁设计(VHDl代码全,11个模块均调试通过)(已处理).doc

  1. 1、本文档共27页,可阅读全部内容。
  2. 2、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。
  3. 3、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载
  4. 4、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
查看更多
基于FPGA的数字密码锁设计(VHDl代码全,11个模块均调试通过)(已处理)

基于FPGA的数字密码锁设计(VHDl代码全,11个模块均调试通过) 3 功能模块设计与实现 根据前面确定的方案, 数字密码锁主要是由控制模块和外围模块组成,以FPGA为控制核心, 配以相应硬件电路,完成密码的设置、存贮、识别和显示、报警等功能。下面就各个模块的设计、仿真调试和结果等作概要的介绍。 3.1 数字密码锁的构架 数字密码锁由主控部分和外围电路组成,前者主要作用是接收密码并进行密码的验证操作;附加的外围指示电路的主要作用是用来显示输入的密码和根据密码验证的结果来给出不同的指示灯显示和报警,而报警装置则通常采用扬声器。 结合设计任务和确定的实现方案,确定的数字密码锁的构架图如图3-1所示。具体设定数字密码锁的主要功能如下:数字密码锁的工作时钟由外部晶振来提供,时钟频率为1MHz;密码采用3位十进制数字;密码输入正确后,密码锁将启动开锁装置;密码输入错误后,密码锁将给出报警信息,它通过红灯和蜂鸣器来指示;报警后,内部人员可以通过按键I-SETUP对密码进行重新设置;保险柜开启后,操作人员可以通过SETUP使密码器回到初始等待状态。 图3-1数字密码锁的构架图对照图3-1,各输入输出如表3-1所示。 表3-1 各输入输出信号说明 信号 说明 信号 说明 i_setup 报警复位 open 开锁 setup 复位 clk 时钟脉冲 start 启动密码输入 A0---A9 十进制密码输入 dip 启动密码修改 A-----G 七段译码器 LED_R、LED_G 红、绿指示灯 ALERT 报警扬声器 3.2 功能模块的划分 在本次设计中将系统分成七个模块来分别设计仿真。分别为以下十一个模块:分频、同步消抖、使能电路、反相电路、密码存储、编码、比较、计数选择、数码管译码、指示电路、控制器等模块组成。下面就具体如何设计和具体实现作必要的说明。 表3-1各个模块的功能 模块 功能 分频模块 对已有的时钟频率进行分频获得我们需要的频率 同步消抖模块 对输入的数字密码A0-A9、START、OPEN、SETUP和I-SETUP等按键信号进行同步消抖 使能电路模块 控制输入按键是否有效 反相电路模块 用来对输入的SETUP、I-SETUP和START按键输入信号进行反相操作 密码存储模块 对计数模块的计数值进行寄存 编码模块 将外接键盘输入的信号转换成BCD码 比较模块 对编成模块的输出数据和密码存储模块的输出数据进行比较 计数选择模块 根据动态选择信号,选择相应的需要显示的计数值 数码管译码模块 将BCD码译成数码管的显示数据 指示电路模块 显示输出的状态和发出警报声 控制器模块 控制整个电路中各状态之间的转换和运行 3.3 各功能模块的实现与调试 3.3.1分频模块 密码锁中分频模块的主要功能是用来对输入的外部时钟进行1000分频和200000分频,目的是得到1000Hz的时钟信号CLK_DIV1和5Hz的时钟信号CLK_DIV2。在数字密码锁中,它的外部时钟信号CLK是由外部晶振来提供的,时钟频率为1MHz.。在密码锁系统中,时钟信号的作用是用来驱动蜂鸣器报警装置和用来提供给消抖同步电路的时钟信号。这里假设用来驱动蜂鸣器的时钟信号为CLK_DIV1,它的频率为1000Hz;用来提供给消抖同步电路的时钟信号CLK_DIV2,它的时钟频率为4?8Hz。这里取5Hz。这两个时钟信号都是由外部时钟信号CLK经过分频产生的[5]。 通常数字电路中的分频操作是采用计数来进行。就是利用一个自由计数器来产生各种需要的频率,也就是先建立一个N位计数器,N的大小根据电路的需求来决定,N的值越大,电路可以分频的次数就越多,这样就可以获得更大的频率变化,以便提供多种不同频率的时钟信号[6]。若输入时钟为CLK,N位计数器的输出为Q[N-1…0],则Q(0)的CLK的2分频脉冲信号,Q(1)为CLK的4分频脉冲信号,Q(2)为CLK的8分频脉冲信号Q(N-1)为CLK的分频脉冲信号;Q(5 DOWNTO 4)取得的是一个脉冲波形序列,其值依次为00-01-10-11周期性变化,其变化频率为CLK的分频,也就是32分频。利用以上规律即可得到各种我们需要频率的信号或信号序列,但是对于分频数目较大的分频电路来说,采用计数方法容易出现错误,因此这时一般采用小数目分频电路的级联方法来完成较大规模的分频电路。对于外部信号CLK的200分频来说,这里可以采用10分频电路和20分频电路来构成,1000分频和200000分频也是按照这个原理来做的,如图3-2所示。 图3-2 级联构成的200分频电路 通过图3-2所示的分频电路的级联结构可以看出,

文档评论(0)

seunk + 关注
实名认证
内容提供者

该用户很懒,什么也没介绍

1亿VIP精品文档

相关文档