基于FPGA的学校打铃器毕业设计论文

更新时间:2024-05-26 03:01:01 阅读量: 综合文库 文档下载

说明:文章内容仅供预览,部分内容可能不全。下载后的文档,内容与下面显示的完全一致。下载之前请确认下面内容是否您想要的,是否完整无缺。

(此文档为word格式,下载后您可任意编辑修改!)

基于FPGA的学校打铃器的设计

学 学 班 专 姓 指 导

院 电 子 工 程 学 院 号

级 A1121班

业 电 子 信 息 工 程 名 何树良 教 师

1

目 录

第一章 绪论 ............................................ 4

1.1选题目的 ................................................................................................. 4 1.2课题研究内容 ......................................................................................... 5 1.2.1 FPGA的发展历程 ........................................................................ 5 1.2.2 FPGA的优点 ................................................................................ 5 1.3器件及工具介绍 ............................................................................... 6 1.3.1 QuartusⅡ设计步骤 ...................................................................... 6 1.3.2 VHDL特点 .................................................................................... 6

第二章 系统方案设计 .................................... 7

2.1设计方案分析与选择 ............................................................................. 7 2.2自动打铃器总体构成 ............................................................................. 7 2.3分频模块设计 ......................................................................................... 8 2.4消抖模块设计 ......................................................................................... 9 2.5时钟模块设计 ........................................................................................ 11 2.5.1秒计数模块 ................................................................................... 11 2.5.2分计数模块 .................................................................................. 12 2.5.3时计数模块 .................................................................................. 13 2.5.4调时模块 ............................................................................................ 14 2.6闹钟模块设计 ....................................................................................... 14 2.6.1定时模块 ...................................................................................... 15 2.6.2比较模块 ...................................................................................... 17 2.7打铃模块设计 ....................................................................................... 18 2.8报警模块设计 ....................................................................................... 20 2.8.1报警时长设定模块 ............................................................................ 20 2.8.2蜂鸣器发声模块 .......................................................................... 21 2.9显示模块设计 ....................................................................................... 23 2.9.1时间切换模块 .............................................................................. 23 2.9.2动态扫描模块 .............................................................................. 25 2.10按键电路设计 ............................................................................... 27

第三章 实验结果分析 ................................... 28

3.1测试过程 ............................................................................................... 28 3.2结果分析 ............................................................................................... 29

参考文献 ............................................... 30 附 录 ................................................. 31

摘 要

2 自动打铃器为学校上下课时间的准确控制提供了很大的便利,并且在工厂、办公室等场合也起到了提醒人们时间的作用,因此打铃器的设计有一定的实用意义。

本设计的学校打铃器采用基于现场可编程门阵列(FPGA)的方法,底层模块采用硬件描述语言(HDL)设计,不仅能对时、分、秒正常计时和显示,而且还可进行闹铃时间的设定,上下课时间报警,报警时间1-15秒设置。系统主芯片采用美国Altera公司的EP3C40F484I7器件,由时钟模块、控制模块、闹钟模块、定时模块、数据译码模块、显示以及报时等模块组成,由按键进行时钟的校时、清零、启停等。本文在介绍FPGA器件的基础上,着重阐述了如何使用FPGA器件进行系统的开发,以及如何实现学校打铃系统。通过仿真验证及实际测试,打铃器具有正常计时、定时报警、报警时长设定等功能,可为日常作息提供准确、便捷的提醒。

系统运行稳定,设计方法可行。

关键词:打铃器 现场可编程门阵列 硬件描述语言

第一章 绪论

1.1选题目的

当今社会,电子技术的应用无处不在,电子技术正在不断地改变我们的生活,改变着我们的世界。在这快速发展的年代,时间对人们来说是越来越宝贵,在快节奏的生活时,人们往往忘记了时间,一旦遇到重要的事情而忘记了时间,这将会带来很大的损失。因此我们需要一个定时系统来提醒这些忙碌的人。数字化的时钟给人们带来了极大的方便。近些年,随着科技的发展和社会的进步,人们对时钟的要求也越来越高,传统的时钟已不能满足人们的需求。多功能数字钟不管在性能还是在样式上都发生了质的变化,自动打铃器就是以时钟为基础的,在平时校园生活中是必不可少的工具。

自动打铃器的数字化给人们生产生活带来了极大的方便,而且大大地扩展了时钟原先的报时功能。诸如定时自动报警、定时启闭电路、定时开关烘箱、通断动力设备,甚至各种定时电气的自动启用等,所有这些,都是以时钟数字化为基础的。因此,研究时钟及扩展应用,有着非常现实的意义。

电铃广泛应用于学校、机关及工矿企事业单位,可实现作息时间的固定周期打铃,提示人们工作、学习或是休息。自古以来教育就已经成为社会生活中必不可少的一部分,随着教育体系的逐渐完善,定时提醒上下课时间的工具也尤为重要,不仅是学校中,在工厂、办公室等任何需要时间提醒的场合,打铃器都拥有举足轻重的位置,尤其是进入现代化社会以后,准确、方便的多功能打铃器便具有独特的研究意义。

另外,打铃器也拥有悠久的历史,从最早的人工打铃,到如今的电动打铃、智能打铃,经历了一系列的变革,人工打铃不仅费时费力,而且准确性也不能保证,还可能会造成人为的误时误报。当代社会飞速发展的主要标志之一就是信息产品的广泛使用,而且产品的性能越来越强,复杂程度越来越高,更新步伐越来越快。支撑信息电

3 子产品高速发展的基础就是微电子制造工艺水平的提高和电子产品设计开发技术的发展。随着技术的发展,出现了各种各样的打铃器,有些带有音乐播放功能,可编入作息时间程序,并且能同时控制路灯、广播等其他电器,无线音乐打铃器无需施工布线,降低了安装成本,还可以根据使用需要随时移动音乐电铃的位置,无线遥控的距离可达500米,成为学校、部队、工厂等部门的打铃控制新宠,十分简洁、便捷。

如今电子产品正向功能多元化,体积最小化,功耗最低化的方向发展。它与传统的电子产品在设计上的显着区别是大量使用大规模可编程逻辑器件,使产品的性能提高,体积缩小,功耗降低,同时广泛运用现代计算机技术,提高产品的自动化程度和竞争力,缩短研发周期[1]。EDA技术正是为了适应现代电子技术的要求,吸收众多学科最新科技成果而形成的一门新技术。

本设计将借助EDA技术,完成基于FPGA器件的学校打铃器的设计。EDA技术的发展经历了一个由浅到深的过程,先后经历了CAD、CAE和现代意义上的EDA三个阶段。在可编程逻辑器件(PLD)内部,数字电路可用硬件描述语言可以进行方便的描述,经过生成元件后可作为一个标准元件进行调用。同时,借助于开发设计平台,可以进行系统的仿真和硬件测试等。

对于数字电子技术实验和课程设计等,特别是数字系统性的课题,借助PLD器件和硬件描述语言等开发手段,即可设计出各种比较复杂的数字系统,如设计频率计、交通控制灯、秒表等,有助于实验质量的提高和对学生综合能力的锻炼。同时,作为电子信息工程专业的学生,EDA技术应用于毕业设计中,可快速、经济地设计各种高性能的电子系统,并且很容易实现、修改及完善。

1.2课题研究内容

随着社会的发展,科技水平的日益提高,很多高新技术都应用于电子设计产品的设计中,比如,本设计中的学校打铃器就应用了FPGA技术,不仅能够非常准确的设定响铃时间,而且能直观地显示时、分、秒等信息,为人们的使用带来了很大的方便。

本课题是基于FPGA的学校打铃器的设计,下面简要介绍现场可编程门阵列(FPGA)的发展历程及其优点。

1.2.1 FPGA的发展历程

作为一种可编程逻辑器件,现场可编程门阵列(Field Programmable Gate Array,FPGA)的出现是PLD发展变化的必然,他的出现推动着可编程逻辑器件的进一步发展。因此说,了解了可编程逻辑器件的发展历程,也就了解了FPGA的发展历程。

PLD是20世纪70年代发展起来的一种新型器。它的应用不仅简化了电路设计,降低了成本,提高了系统的可靠性,而且给数字系统的设计方式带来了革命性的变化,其结构和工艺的变化经历了一个不断发展的过程。20世纪70年代,早期的可编程逻辑器件只有可编程只读存储器(PROM)、紫外线可擦除只读存储器(EPROM)和电可擦除只读存储器(EEPROM)3种。随后,出现了一类结构稍微复杂的可编程芯片,

4 即可编程逻辑阵列(Programmable Logic Array,PLA)。PLA在结构上由一个可编程的与阵列和可编程的或阵列构成,阵列规模小,编程过程复杂繁琐。PLA既有现场可编程的,又有掩膜可编程的[2]。

如今,FPGA期间已经成为当前主流的可编程逻辑器件之一。经过20年的发展,可编程逻辑器件已经取得了长足的进步,资源更加丰富,使用越来越方便。将来的可编程逻辑器件,密度会更高,速度会更快,功耗会更低,同时还会增加更多的功能,向着继承了可编程逻辑、CPU、存储器等组件的可编程单片系统(System On Programmable Chip,SOPC)方向发展。

1.2.2 FPGA的优点

概括地说,FPGA器件具有下列优点:高密度、高速度、系列化、标准化、小型化、多功能、低功耗、低成本,设计灵活方便,可无限次反复编程,并可现场模拟调试验证。使用FPGA器件,一般可在几天到几周内完成一个电子系统的设计和制作,可以缩短研制周期,达到快速上市和进一步降低成本的要求。用FPGA器件实现数字系统时用的芯片数量少,从而减少芯片的使用数目,减少印刷线路板面积和印刷线路板数目,最终导致系统规模的全面缩减[3]。

1.3器件及工具介绍 1.3.1 QuartusⅡ设计步骤

Quartus II 是Altera公司的综合性PLD开发软件,支持原理图、VHDL、VerilogHDL以及AHDL(Altera Hardware Description Language)等多种设计输入形式。内嵌自有的综合器以及仿真器,可以完成从设计输入到硬件配置的完整PLD设计流程[4]。

其设计流程包括设计输入、编译、仿真与定时分析、编程与验证。设计输入包括原理图输入、HDL 文本输入、EDIF 网表输入、波形输入等几种方式。编译时要根据设计要求设定编译方式和编译策略,然后根据设定的参数和策略对设计项目进行网表提取、逻辑综合、器件适配,供分析、仿真和编程使用。设计完成后需要进行仿真,可以测试设计的逻辑功能和延时特性。最后可以用得到的编程文件通过编程电缆配置PLD,进行在线测试。在设计过程中,如果出现错误,则需重新回到设计输入阶段,改正错误或调整电路后重新测试。

1.3.2 VHDL特点

硬件描述语言HDL(HardwareDescriptionLanguage)诞生于1962年。与SDL(SoftwareDescriptionLanguage)相似,经历了从机器码(晶体管和焊接)、汇编(网表)、到高级语言(HDL)的过程[5]。HDL是用形式化的方法描述数字电路和设计数字逻辑系统的语言。主要用于描述离散电子系统的结构和行为。

HDL和原理图是两种最常用的数字硬件电路描述方法,HDL 设计法具有更好的可移植性、通用性和模块划分与重用性的特点,在目前的工程设计开发流程是基于

5

图2-13 分计数模块RTL图

如图2-14所示为分计数模块波形仿真图。给clk一定时钟信号之后,clr高电平清零无效,每次达到时钟脉冲上升沿时,分计数低位min0计一个数,计到9时向高位进位,当计到59时,模块进位输出co产生一个脉冲信号,由仿真图可知此模块设计满足设计要求。

图2-14 分计数模块波形仿真图

2.5.3时计数模块

图2-15 时计数模块符号图

如图2-15所示为时计数模块符号图。输入端口clr是时计数模块的清零信号,也是整个数字中的使能信号,低电平有效; clk是秒脉冲输入端口输出端口;sl[3..0]是分计时的低位,sh[3..0]是分计时的高位。

图2-16 时计数模块波形仿真图

时计数模块波形仿真图如图2-16所示。clk接分计时模块的仅为输出,给定时钟

11 信号,clr高电平清零无效,每次达到时钟脉冲上升沿时,时计数低位sl计一个数,计到9时向高位进位,当计到24时,高、低都变为零,计数重新开始,由仿真图可知此模块设计满足设计要求。

2.5.4调时模块

图2-17 调时模块符号图

如图2-17所示为调时模块符号图。本设计的调时模块类似于二选一数据选择器,输入端口key是调时模块的调时开关,当为高电平是输出a的数据,当为低电平时输出b的数据;a端接上一个计时模块的进位输出;b端接分频器的输出时钟脉冲;c为模块的输出,作为计时模块的输入时钟。由此可知当key为低电平时可进行调时、调分。

图2-18 调时模块波形仿真图

如图2-18所示为调时模块波形仿真图。当key为低电平时,调时模块输出b的脉冲;当key为高电平时,输出a的脉冲。由此可知,本模块满足设计要求。

12 2.6闹钟模块设计

图2-19 闹钟模块总体设计框图

如图2-19所示为闹钟模块总体设计框图。本模块主要由定时模块、比较模块组成,另外还有正常计时时间和定时时间输出选择切换模块,连接基本数字钟模块的时、分、秒输出,以及定时时间的时、分输出,另一端连接动态显示模块,通过外部按键来选择基本时钟或者是闹钟时间设定的显示。定时控制模块有复位键、调时调分切换键、累加键,来设定闹钟时间。

2.6.1定时模块

如图2-20、2-21所示分别为定时模块符号图及RTL图。输入端口reset是定时模块的复位信号,也是整个打铃器的使能信号,低电平有效; k1是闹钟时间设定时、分切换按键,高电平时对时进行调节,低电平时对分进行调节;up_key是调整闹钟时间的累加按键,另一端接按键消抖模块,每按一次计数加一;Q_tmpma、Q_tmpmb、Q_tmpha、Q_tmphb分别为闹钟时间的分低位、分高位、时低位时高位。

图2-20 定时模块符号图

13

图2-21 定时模块RTL图

如图2-22所示为定时模块波形仿真图。当复位键为高电平、k1为低电平时,每按下一次up_key闹钟分低位就计一个数,计到9时向高位进一,当计到59时重新从0开始计数;当复位键为高电平、k1为高电平时,开始对时计数,up_key每来一个脉冲时低位就计一个数,计到9时变为0,高位进位,计到23时重新计数,由波形仿真克制此模块满足设计要求。

图2-22 定时模块波形仿真图

2.6.2比较模块

如图2-23所示为比较模块设计框图。设计思路为:将闹钟设定的时间与及时模块的时间分别比较,即时高位、时低位、分高位、分低位分别进行比较,若时间相等,

14 则输出高电平,输出信号与1Hz时钟信号相与,获得的信号接蜂鸣器,可实现时隔一秒报警一次,报警时长为一秒。

图2-23 比较模块设计框图

如图2-24所示为比较模块符号图。Clk0为比较模块的时钟,接200分频器输出的1Hz时钟信号;QH_B[3..0]为时钟的时高位,QH_A[3..0]为时钟的时低位,QMB[3..0]为时钟的分高位,QM_A[3..0]为时钟的分低位;HARM_B[3..0]为闹钟时间的时高位,HARM_A[3..0]为闹钟时间的时低位,MARM_B[3..0]为闹钟时间的分高位,MARM_A[3..0]为闹钟时间的分低位;SPEAK为比较模块的输出,接报警时长设定模块的输入。

图2-24 比较模块符号图

如图2-25所示为比较模块波形仿真图。给clk0一定时钟,设定闹钟时间时高位为1,时低位为2,分高位、分低位都为0,即闹钟时间为十二点整,;首先设定时钟模块的时高位设定为1,时低位为1,分高位为5,分低位为9,即十一点五十九分,再设定为十二点整;由波形仿真图可知,当时钟时间由十一点五十九分变为十二点整时,speak输出时钟波形,可知比较模块的设计满足要求。

15

图2-25 比较模块波形仿真图

2.7打铃模块设计

如表2-1所示为学校作息时间。学校作息时间分为春季和夏季之分,上课下课时间共包括46个时间点,将此写入程序中,当时钟时间与这些时间相同时,输出高电平,与时钟信号相与,作为报警模块的输入。

表2-1 学校作息时间

春季作息时间 上课 08:30 上午 09:15 10:20 11:15 13:30 下午 14:25 15:20 16:15 18:30 晚上 19:25 20:20 22:00 下课 09:15 10:10 11:05 12:00 14:15 15:10 16:05 17:00 19:15 20:10 21:05 上课 08:30 09:15 10:20 11:15 14:00 14:55 15:50 16:45 19:00 19:55 20:50 22:00 夏季作息时间 下课 09:15 10:10 11:05 12:00 14:45 15:40 16:35 17:30 19:45 20:40 21:35 16

图2-26 打铃模块设计框图

如图2-26所示为打铃模块设计框图。模块包括作息选择和时间比较部分,其设计思路为:通过k3进行春夏作息时间选择,将时钟的时高位、时低位、分高位、分低位分别于表2.1中的打铃时间数据进行比较,若相等,则Q_Y输出高电平,否则输出低电平。

图2-27 打铃模块符号图

如图2-27所示为打铃模块符号图。K3为切换春夏作息时间的按键,当K3为高电平时选择春季作息时间,方为低电平时选择夏季作息时间;Q_HB[3..0]接时钟时间的时高位,Q_HA[3..0]接时钟时间的时低位,Q_MB[3..0]接时钟时间的分高位,Q_MA[3..0]接时钟时间的时低位;Q_Y为打铃模块的输出,接报警模块的输入。

17

图2-28 打铃模块波形仿真图

如图2-28所示为打铃模块波形仿真图。可以看出:当K3为高电平时,选择春季作息时间,当时钟时间由八点二十九分跳变为八点三十分时,Q_Y由低电平变为高电平,此为春季作息时间上午的的八点三十分;当K3为低电平时,选择夏季作息时间,当时钟时间由八点二十九分跳变为八点三十分时,Q_Y由低电平变为高电平,此为夏季作息时间上午的八点三十分;当K3为高电平时,选择春季作息时间,当时钟时间由十三点二十九分跳变为十三点三十分时,Q_Y由低电平变为高电平,此为春季作息时间下午的十三点三十分;当K3为低电平时,选择夏季作息时间,当时钟时间由十三点五十九分跳变为十四点整时,Q_Y由低电平变为高电平,此为夏季作息时间下午的十四点整。由此可知打铃模块满足设计要求。

2.8报警模块设计

报警模块主要包括报警时长设定模块和蜂鸣器发生模块,实现学校作息时间报时和闹钟报警的功能。

2.8.1报警时长设定模块

如图2-29、2-30所示分别为报警时长设定模块符号图和RTL图。其中Reset为复位端,低电平有效;up_key为调节报警时间的按键,时长可从一秒调至十五秒,连接按键模块;speaktime[3..0]为报警时长的输出,连接蜂鸣器发生模块的输入端。

图2-29 报警时长设定模块符号图

18

图2-30 报警时长设定模块RTL图

如图2-31所示为报警时长设定模块波形仿真图。复位按键reset设为高电平,给up_key一定脉冲时钟,没到达一次脉冲上升沿,speaktime就加一,当计到15时重新从0开始,实现了报警时长在1至15秒内自由设定的要求。

图2-31 报警时长设定模块波形仿真图

2.8.2蜂鸣器发声模块

如图2-32所示为蜂鸣器电路。本设计需用两个蜂鸣器,一个蜂鸣器用于学校作息时间报时,另外一个蜂鸣器用于闹钟报警。

图2-32 蜂鸣器电路

如图2-33,2-34所示为蜂鸣器发声模块符号图和RTL图。QY接比较模块的输出,相当于蜂鸣器发生模块的使能信号;CLK接1Hz的时钟模块,报警可实现每一秒响一下;speaktime[3..0]接报警时长设定模块的输出,为报警持续的时间长度,范围在一秒

19 至十五秒以内;q_20s为蜂鸣器发声模块的输出,接蜂鸣器的负极。

图2-33 蜂鸣器发声模块符号图

图2-34 蜂鸣器发声模块RTL图

如图2-35所示为蜂鸣器发声模块波形仿真图。给clk接入一定脉冲,speaktime为一秒,当Q_Y为高电平时,伴随时钟脉冲下一个周期的到来,q_20s由低电平变为高电平,高电平持续时间与时钟脉冲的一个周期相等,实际测试时,时钟脉冲为1Hz的秒信号,所以报警时长为1s;当设定speaktime为15秒时,q_20s伴随时钟脉冲下一个周期的到来,由低电平变为高电平,持续时间与时钟脉冲的15个周期相等,可实现15s的报警时长。由此可知,蜂鸣器发生模块满足设计要求,可实现1-15秒自由调节。

图2-35 蜂鸣器发声模块波形仿真图

20

本文来源:https://www.bwwdw.com/article/0x87.html

Top