基于fpga的自动打铃器学位论文.docx
- 文档编号:1349470
- 上传时间:2022-10-21
- 格式:DOCX
- 页数:43
- 大小:298.93KB
基于fpga的自动打铃器学位论文.docx
《基于fpga的自动打铃器学位论文.docx》由会员分享,可在线阅读,更多相关《基于fpga的自动打铃器学位论文.docx(43页珍藏版)》请在冰豆网上搜索。
基于fpga的自动打铃器学位论文
基于FPGA的自动打铃器的设计
学院电子工程学院
学号11111010103
班级A1121班
专业电子信息工程
姓名何树良
指导教师罗静
目录
第一章绪论4
1.1选题目的4
1.2FPGA的发展历程4
1.2.1FPGA的优点5
1.3器件及工具介绍5
1.3.1QuartusⅡ设计步骤5
第二章系统方案设计5
2.1设计方案分析与选择5
2.2自动打铃器总体构成6
2.3分频模块设计7
2.4消抖模块设计8
2.5时钟模块设计8
2.5.1秒计数模块9
2.5.2分计数模块9
2.5.3时计数模块10
2.5.4调时模块11
2.6闹钟模块设计12
2.6.1定时模块12
2.6.2比较模块13
2.7打铃模块设计15
2.8报警模块设计17
2.8.1报警时长设定模块17
2.8.2蜂鸣器发声模块17
2.9显示模块设计18
2.9.1时间切换模块18
2.9.2动态扫描模块20
2.10按键电路设计22
第三章实验结果分析22
3.1测试过程22
3.2结果分析23
参考文献25
附录26
摘要
自动打铃器为学校上下课时间的准确控制提供了很大的便利,并且在工厂、办公室等场合也起到了提醒人们时间的作用,因此打铃器的设计有一定的实用意义。
本设计的学校打铃器采用基于现场可编程门阵列(FPGA)的方法,底层模块采用硬件描述语言(HDL)设计,不仅能对时、分、秒正常计时和显示,而且还可进行闹铃时间的设定,上下课时间报警,报警时间1-15秒设置。
系统主芯片采用美国Altera公司的EP3C40F484I7器件,由时钟模块、控制模块、闹钟模块、定时模块、数据译码模块、显示以及报时等模块组成,由按键进行时钟的校时、清零、启停等。
本文在介绍FPGA器件的基础上,着重阐述了如何使用FPGA器件进行系统的开发,以及如何实现学校打铃系统。
通过仿真验证及实际测试,打铃器具有正常计时、定时报警、报警时长设定等功能,可为日常作息提供准确、便捷的提醒。
系统运行稳定,设计方法可行。
关键词:
打铃器现场可编程门阵列硬件描述语言
第一章绪论
1.1选题目的
当今社会,电子技术的应用无处不在,电子技术正在不断地改变我们的生活,改变着我们的世界。
在这快速发展的年代,时间对人们来说是越来越宝贵,在快节奏的生活时,人们往往忘记了时间,一旦遇到重要的事情而忘记了时间,这将会带来很大的损失。
因此我们需要一个定时系统来提醒这些忙碌的人。
数字化的时钟给人们带来了极大的方便。
近些年,随着科技的发展和社会的进步,人们对时钟的要求也越来越高,传统的时钟已不能满足人们的需求。
多功能数字钟不管在性能还是在样式上都发生了质的变化,自动打铃器就是以时钟为基础的,在平时校园生活中是必不可少的工具。
自动打铃器的数字化给人们生产生活带来了极大的方便,而且大大地扩展了时钟原先的报时功能。
诸如定时自动报警、定时启闭电路、定时开关烘箱、通断动力设备,甚至各种定时电气的自动启用等,所有这些,都是以时钟数字化为基础的。
因此,研究时钟及扩展应用,有着非常现实的意义。
本设计将借助EDA技术,完成基于FPGA器件的学校打铃器的设计。
EDA技术的发展经历了一个由浅到深的过程,先后经历了CAD、CAE和现代意义上的EDA三个阶段。
在可编程逻辑器件(PLD)内部,数字电路可用硬件描述语言可以进行方便的描述,经过生成元件后可作为一个标准元件进行调用。
同时,借助于开发设计平台,可以进行系统的仿真和硬件测试等。
对于数字电子技术实验和课程设计等,特别是数字系统性的课题,借助PLD器件和硬件描述语言等开发手段,即可设计出各种比较复杂的数字系统,如设计频率计、交通控制灯、秒表等,有助于实验质量的提高和对学生综合能力的锻炼。
同时,作为电子信息工程专业的学生,EDA技术应用于毕业设计中,可快速、经济地设计各种高性能的电子系统,并且很容易实现、修改及完善。
1.2FPGA的发展历程
作为一种可编程逻辑器件,现场可编程门阵列(FieldProgrammableGateArray,FPGA)的出现是PLD发展变化的必然,他的出现推动着可编程逻辑器件的进一步发展。
因此说,了解了可编程逻辑器件的发展历程,也就了解了FPGA的发展历程。
PLD是20世纪70年代发展起来的一种新型器。
它的应用不仅简化了电路设计,降低了成本,提高了系统的可靠性,而且给数字系统的设计方式带来了革命性的变化,其结构和工艺的变化经历了一个不断发展的过程。
20世纪70年代,早期的可编程逻辑器件只有可编程只读存储器(PROM)、紫外线可擦除只读存储器(EPROM)和电可擦除只读存储器(EEPROM)3种。
随后,出现了一类结构稍微复杂的可编程芯片,即可编程逻辑阵列(ProgrammableLogicArray,PLA)。
PLA在结构上由一个可编程的与阵列和可编程的或阵列构成,阵列规模小,编程过程复杂繁琐。
PLA既有现场可编程的,又有掩膜可编程的[2]。
1.2.1FPGA的优点
概括地说,FPGA器件具有下列优点:
高密度、高速度、系列化、标准化、小型化、多功能、低功耗、低成本,设计灵活方便,可无限次反复编程,并可现场模拟调试验证。
使用FPGA器件,一般可在几天到几周内完成一个电子系统的设计和制作,可以缩短研制周期,达到快速上市和进一步降低成本的要求。
用FPGA器件实现数字系统时用的芯片数量少,从而减少芯片的使用数目,减少印刷线路板面积和印刷线路板数目,最终导致系统规模的全面缩减[3]。
1.3器件及工具介绍
1.3.1QuartusⅡ设计步骤
QuartusII是Altera公司的综合性PLD开发软件,支持原理图、VHDL、VerilogHDL以及AHDL(AlteraHardwareDescriptionLanguage)等多种设计输入形式。
内嵌自有的综合器以及仿真器,可以完成从设计输入到硬件配置的完整PLD设计流程[4]。
其设计流程包括设计输入、编译、仿真与定时分析、编程与验证。
设计输入包括原理图输入、HDL文本输入、EDIF网表输入、波形输入等几种方式。
编译时要根据设计要求设定编译方式和编译策略,然后根据设定的参数和策略对设计项目进行网表提取、逻辑综合、器件适配,供分析、仿真和编程使用。
设计完成后需要进行仿真,可以测试设计的逻辑功能和延时特性。
最后可以用得到的编程文件通过编程电缆配置PLD,进行在线测试。
在设计过程中,如果出现错误,则需重新回到设计输入阶段,改正错误或调整电路后重新测试。
第二章系统方案设计
2.1设计方案分析与选择
方案一:
采用通用数字器件来设计。
比如,打铃器结构组成中最基本的是数字钟。
数字钟实际上是一个对标准频率(1HZ)进行计数的计数电路。
由于计数的起始时间不可能与标准时间(如北京时间)一致,故需要在电路上加一个校时电路,同时标准的1HZ时间信号必须做到准确稳定。
采用此方法设计数字钟通常使用石英晶体振荡器电路构成数字钟。
基于此设计方案的数字钟部分结构组成如图2-1所示。
图2-1数字钟部分结构组成
2.2自动打铃器总体构成
本设计内容为基于FPGA的学校打铃器,控制器底层模块采用硬件描述语言设计,顶层模块设计方法采用原理图方式;打铃器具有计时功能,能对时、分、秒正常计时和显示;又具有定时打铃功能,当设定的打铃时间与学校上下课时间点相同时打铃;并且计时时间、定时时间、打铃时长(1S~15S内)自由设置和调整,其数据信息通过数码管或LCD显示。
学校打铃器总体设计框图如图2-2所示。
振荡器产生稳定的高频脉冲信号,作为数字钟的时间基准,然后经过分频器输出标准秒脉冲。
秒计数器满60后向分计数器进位,分计数器满60后向小时计数器进位,小时计数器按照“24翻1”规律计数。
计满后各计数器清零,重新计数。
计数器的输出分别经译码器送数码管显示。
在控制信号中除了一般的校时信号外,还有时钟清零信号。
时基电路可以由石英晶体振荡电路构成,晶振频率为25MHz,经过分频可得到秒脉冲信号。
译码显示电路由七段译码器完成,显示由数码管构成。
图2-2学校打铃器总体设计框图
2.3分频模块设计
本设计FPGA外部使用的是25MHz晶振,在其内部再根据需要进行分频。
如图2-3所示为分频模块连接图。
分频模块由25k分频、200分频、5分频、50k分频、250分频组成。
其中25k分频的输出作为按键消抖模块的输入时钟信号,其频率为1kHz;200分频的输出作为计时模块调分模块的时钟输入,其频率为5Hz,周期为0.2s;5分频的输出作为计时模块中秒计时的输入,为1Hz频率的1s时钟信号;50k分频的输出作为动态扫描模块的输入时钟,其频率为500Hz;250分频的输出作为计时模块调时模块的输入时钟,其频率为2Hz,周期为0.5s。
图2-3分频模块连接图
现以5分频为例进行仿真,当时钟到第五个上升沿时,输出由“0”变为“1”,下降沿时又由“1”变为“0”,产生一个脉冲。
满足设计要求。
2.4消抖模块设计
在本设计初期完成后,下载程序测试时,拨动按键或者按下按键时显示出现异常,这就需要加入按键消抖模块。
按键消抖模块一般有硬件和软件两种方式,硬件就是加入去抖动电路,这样从根本上解决了按键抖动问题,除了专用电路以外,还可用编程FPGA或者CPLD设计相应的逻辑和时序电路,对按键信号进行处理,同样可以达到去抖动的目的,本次设计中采用硬件模块消抖动方式。
模块的实现方法是先判断是否有按键按下,如有按键按下则延时一段时间,待抖动过去之后再读行线状态,如果仍有低电平行线,则确定有按键按下,然后产生一个有按键按下的信号。
该模块有一个时钟输入端口,输入时钟信号是分频出来的1kHZ的时钟;有一个输入端口与按键端相连;一个输出端口,用于输出有按键按下的信号。
如图2-4所示为消抖模块符号图。
图2-4消抖模块符号图
本设计的按键消抖模块内部电路相当于一个D触发器,该模块在这里实现的比较简单,原理是当有按键按下的时候,d会变成高电平,当有时钟上升沿到来且按键按下时,q输出高电平。
由于时钟脉冲为1kHZ,故从有按键按下到输入信号产生大概需要1ms。
而按键产生抖动的时间大约2ms到10ms,所以一旦计数完成,抖动已经过去,不会发生重键现象了,这样就去除了抖动。
如图2-5所示为按键消抖模块波形仿真图。
图2-5消抖模块波形仿真
2.5时钟模块设计
时钟模块是学校打铃器最基本的模块,主要实现基本计时、调时、调分功能,包括秒计数模块、分计数模块、时计数模块和调时模块。
2.5.1秒计数模块
如图2-9所示为秒计数模块符号图。
输入端口clr是秒计数模块的清零信号,也是整个数字中的使能信号,低电平有效;cp是秒脉冲输入端口,外接分频模块频率为1Hz的时钟信号;输出端口sqmsl[3..0]是秒时钟的低位,sqmsh[3..0]是高位;co端口是进位输出端口,当秒计数到59时输出高电平,其它时候输出低电平。
图2-9秒计数模块符号图
如图2-6所示波形仿真图。
由图可以看出,随着1s时钟脉冲上升沿的到来,每来一次秒计数的低位就产生一个脉冲,当计到9时变为0,秒计数的高位变为1,当低位为9,高位为5时,也就是计到59时,高、低位都变为0,且输出co产生一个脉冲信号,由仿真图可知满足设计的要求。
图2-6秒计数模块波形仿真图
2.5.2分计数模块
如图2-7所示为分计数模块符号图。
输入端口clr是分计数模块的清零信号,也是整个数字中的使能信号,低电平有效;clk是秒脉冲输入端口输出端口;min0[3..0]是分计时的
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- 基于 fpga 自动 打铃 学位 论文