




已阅读5页,还剩21页未读, 继续免费阅读
版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
基于FPGA的学校打铃器的设计 学 院 电 子 工 程 学 院 学 号 11111010103 班 级 A1121班 专 业 电 子 信 息 工 程 姓 名 何树良 指 导 教 师 目 录第一章 绪论41.1选题目的41.2课题研究内容51.2.1 FPGA的发展历程51.2.2 FPGA的优点51.3器件及工具介绍61.3.1 Quartus设计步骤61.3.2 VHDL特点6第二章 系统方案设计72.1设计方案分析与选择72.2自动打铃器总体构成72.3分频模块设计82.4消抖模块设计92.5时钟模块设计112.5.1秒计数模块112.5.2分计数模块122.5.3时计数模块132.5.4调时模块142.6闹钟模块设计142.6.1定时模块152.6.2比较模块172.7打铃模块设计182.8报警模块设计202.8.1报警时长设定模块202.8.2蜂鸣器发声模块212.9显示模块设计232.9.1时间切换模块232.9.2动态扫描模块252.10按键电路设计27第三章 实验结果分析283.1测试过程283.2结果分析29参考文献30附 录31 摘 要自动打铃器为学校上下课时间的准确控制提供了很大的便利,并且在工厂、办公室等场合也起到了提醒人们时间的作用,因此打铃器的设计有一定的实用意义。本设计的学校打铃器采用基于现场可编程门阵列(FPGA)的方法,底层模块采用硬件描述语言(HDL)设计,不仅能对时、分、秒正常计时和显示,而且还可进行闹铃时间的设定,上下课时间报警,报警时间1-15秒设置。系统主芯片采用美国Altera公司的EP3C40F484I7器件,由时钟模块、控制模块、闹钟模块、定时模块、数据译码模块、显示以及报时等模块组成,由按键进行时钟的校时、清零、启停等。本文在介绍FPGA器件的基础上,着重阐述了如何使用FPGA器件进行系统的开发,以及如何实现学校打铃系统。通过仿真验证及实际测试,打铃器具有正常计时、定时报警、报警时长设定等功能,可为日常作息提供准确、便捷的提醒。系统运行稳定,设计方法可行。关键词:打铃器 现场可编程门阵列 硬件描述语言 第一章 绪论1.1选题目的当今社会,电子技术的应用无处不在,电子技术正在不断地改变我们的生活,改变着我们的世界。在这快速发展的年代,时间对人们来说是越来越宝贵,在快节奏的生活时,人们往往忘记了时间,一旦遇到重要的事情而忘记了时间,这将会带来很大的损失。因此我们需要一个定时系统来提醒这些忙碌的人。数字化的时钟给人们带来了极大的方便。近些年,随着科技的发展和社会的进步,人们对时钟的要求也越来越高,传统的时钟已不能满足人们的需求。多功能数字钟不管在性能还是在样式上都发生了质的变化,自动打铃器就是以时钟为基础的,在平时校园生活中是必不可少的工具。自动打铃器的数字化给人们生产生活带来了极大的方便,而且大大地扩展了时钟原先的报时功能。诸如定时自动报警、定时启闭电路、定时开关烘箱、通断动力设备,甚至各种定时电气的自动启用等,所有这些,都是以时钟数字化为基础的。因此,研究时钟及扩展应用,有着非常现实的意义。电铃广泛应用于学校、机关及工矿企事业单位,可实现作息时间的固定周期打铃,提示人们工作、学习或是休息。自古以来教育就已经成为社会生活中必不可少的一部分,随着教育体系的逐渐完善,定时提醒上下课时间的工具也尤为重要,不仅是学校中,在工厂、办公室等任何需要时间提醒的场合,打铃器都拥有举足轻重的位置,尤其是进入现代化社会以后,准确、方便的多功能打铃器便具有独特的研究意义。另外,打铃器也拥有悠久的历史,从最早的人工打铃,到如今的电动打铃、智能打铃,经历了一系列的变革,人工打铃不仅费时费力,而且准确性也不能保证,还可能会造成人为的误时误报。当代社会飞速发展的主要标志之一就是信息产品的广泛使用,而且产品的性能越来越强,复杂程度越来越高,更新步伐越来越快。支撑信息电子产品高速发展的基础就是微电子制造工艺水平的提高和电子产品设计开发技术的发展。随着技术的发展,出现了各种各样的打铃器,有些带有音乐播放功能,可编入作息时间程序,并且能同时控制路灯、广播等其他电器,无线音乐打铃器无需施工布线,降低了安装成本,还可以根据使用需要随时移动音乐电铃的位置,无线遥控的距离可达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种。随后,出现了一类结构稍微复杂的可编程芯片,即可编程逻辑阵列(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 设计法具有更好的可移植性、通用性和模块划分与重用性的特点,在目前的工程设计开发流程是基于 HDL 的6。在目前的工程设计中被广泛使用。所以,我们在使用 FPGA 设计数字电路时,其开发流程是基于HDL的。VHDL描述数字电路系统设计的行为、功能、输入和输出。它在语法上与现代编程语言相似,比如C语言。应用VHDL进行系统设计,有以下几方面的特点:功能强大、可移植性、独立性、可操作性、灵活性。第二章 系统方案设计2.1设计方案分析与选择方案一:采用通用数字器件来设计。比如,打铃器结构组成中最基本的是数字钟。数字钟实际上是一个对标准频率(1HZ)进行计数的计数电路。由于计数的起始时间不可能与标准时间(如北京时间)一致,故需要在电路上加一个校时电路,同时标准的1HZ时间信号必须做到准确稳定。采用此方法设计数字钟通常使用石英晶体振荡器电路构成数字钟。基于此设计方案的数字钟部分结构组成如图2-1所示。图2-1 数字钟部分结构组成方案二:采用基于FPGA的EDA技术来设计。打铃器结构组成中的数字部分可全部在FPGA内部完成,底层模块可以采用HDL语言或者软件中的库元件。这种设计方法可使得系统的集成度提高,抗干扰能力也相应提高。综合分析和比较方案一和二,方案二中利用EDA技术设计学校打铃器相对设计方式灵活,系统连线简单并易于校验,修改及完善也相对便捷,可以避免方案一中所用的芯片比较多,连线过于麻烦的问题。因此,本设计总体设计方案采用基于EDA技术的方法。2.2自动打铃器总体构成本设计内容为基于FPGA的学校打铃器,控制器底层模块采用硬件描述语言设计,顶层模块设计方法采用原理图方式;打铃器具有计时功能,能对时、分、秒正常计时和显示;又具有定时打铃功能,当设定的打铃时间与学校上下课时间点相同时打铃;并且计时时间、定时时间、打铃时长(1S15S内)自由设置和调整,其数据信息通过数码管或LCD显示。学校打铃器总体设计框图如图2-2所示。振荡器产生稳定的高频脉冲信号,作为数字钟的时间基准,然后经过分频器输出标准秒脉冲。秒计数器满60后向分计数器进位,分计数器满60后向小时计数器进位,小时计数器按照“24翻1”规律计数。计满后各计数器清零,重新计数。计数器的输出分别经译码器送数码管显示。在控制信号中除了一般的校时信号外,还有时钟清零信号。时基电路可以由石英晶体振荡电路构成,晶振频率为25MHz,经过分频可得到秒脉冲信号。译码显示电路由七段译码器完成,显示由数码管构成。图2-2 学校打铃器总体设计框图2.3分频模块设计晶体振荡器是构成数字时钟的核心,振荡器的稳定度及频率的精度决定了数字钟计时的准确程度,它保证了时钟的走时准确及稳定。石英晶体的选频特性非常好,只有某一频率点的信号可以通过它,其它频率段的信号均会被它所衰减,而且振荡信号的频率与振荡电路中的R、C元件的数值无关7。因此,这种振荡电路输出的是准确度极高的信号。本设计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、2-5所示分别为分频模块仿真图及其RTL图。图2-4 分频模块仿真图图2-5 分频模块RTL图2.4消抖模块设计按键开关电子设备实现人机对话的重要的器件之一8。由于大部分按键式机械触点,在触点闭合和断开时都会产生抖动,为避免抖动引起的误动作造成系统的不稳定,就要求消除按键的抖动,确保按键每按一次只做一次响应。绝大多数按键都是机械式开关结构,由于机械式开关的核心部件为弹性金属簧片,因而在开关切换的瞬间会在接触点出现来回弹跳的现象,虽然只是进行了一次按键,结果在按键信号稳定的前后出现了多个脉冲9。如果将这样的信号直接送给微处理器扫描采集的话,将可能把按键稳定前后出现的脉冲信号当做按键信号,这就出现人为的一次按键但微处理器以为多次按键的现象。机械式按键的抖动次数、抖动时间、抖动波形都是随机的,不同类型的按键其最长抖动时间也有差别,抖动时间的长短和按键的机械特征有关,一般为510ms,但是,有些按键的抖动时间可达到20ms,甚至更长。在本设计初期完成后,下载程序测试时,拨动按键或者按下按键时显示出现异常,这就需要加入按键消抖模块。按键消抖模块一般有硬件和软件两种方式,硬件就是加入去抖动电路,这样从根本上解决了按键抖动问题,除了专用电路以外,还可用编程FPGA或者CPLD设计相应的逻辑和时序电路,对按键信号进行处理,同样可以达到去抖动的目的,本次设计中采用硬件模块消抖动方式。模块的实现方法是先判断是否有按键按下,如有按键按下则延时一段时间,待抖动过去之后再读行线状态,如果仍有低电平行线,则确定有按键按下,然后产生一个有按键按下的信号。该模块有一个时钟输入端口,输入时钟信号是分频出来的1kHZ的时钟;有一个输入端口与按键端相连;一个输出端口,用于输出有按键按下的信号。如图2-6所示为消抖模块符号图。图2-6 消抖模块符号图本设计的按键消抖模块内部电路相当于一个D触发器,如图2-7所示为消抖模块RTL图。图2-7 消抖模块RTL图该模块在这里实现的比较简单,原理是当有按键按下的时候,d会变成高电平,当有时钟上升沿到来且按键按下时,q输出高电平。由于时钟脉冲为1kHZ,故从有按键按下到输入信号产生大概需要1ms。而按键产生抖动的时间大约2ms到10ms,所以一旦计数完成,抖动已经过去,不会发生重键现象了,这样就去除了抖动。如图2-8所示为按键消抖模块波形仿真图。图2-8消抖模块波形仿真2.5时钟模块设计时钟模块是学校打铃器最基本的模块,主要实现基本计时、调时、调分功能,包括秒计数模块、分计数模块、时计数模块和调时模块。2.5.1秒计数模块如图2-9所示为秒计数模块符号图。输入端口clr是秒计数模块的清零信号,也是整个数字中的使能信号,低电平有效; cp是秒脉冲输入端口,外接分频模块频率为1Hz的时钟信号;输出端口sqmsl3.0是秒时钟的低位,sqmsh3.0是高位;co端口是进位输出端口,当秒计数到59时输出高电平,其它时候输出低电平。图2-9 秒计数模块符号图如图2-10、2-11所示分别为秒计数模块RTL图及波形仿真图。由图可以看出,随着1s时钟脉冲上升沿的到来,每来一次秒计数的低位就产生一个脉冲,当计到9时变为0,秒计数的高位变为1,当低位为9,高位为5时,也就是计到59时,高、低位都变为0,且输出co产生一个脉冲信号,由仿真图可知满足设计的要求。图2-10 秒计数模块RTL图图2-11 秒计数模块波形仿真图2.5.2分计数模块如图2-12、2-13所示为分计数模块符号图及RTL图。输入端口clr是分计数模块的清零信号,也是整个数字中的使能信号,低电平有效; clk是秒脉冲输入端口输出端口;min03.0是分计时的低位,min13.0是分计时的高位;co端口是进位输出端口,接时计数的clk作为时钟输入,当秒计数到59时输出高电平,其它时候输出低电平。图2-12 分计数模块符号图图2-13 分计数模块RTL图如图2-14所示为分计数模块波形仿真图。给clk一定时钟信号之后,clr高电平清零无效,每次达到时钟脉冲上升沿时,分计数低位min0计一个数,计到9时向高位进位,当计到59时,模块进位输出co产生一个脉冲信号,由仿真图可知此模块设计满足设计要求。图2-14 分计数模块波形仿真图2.5.3时计数模块图2-15 时计数模块符号图如图2-15所示为时计数模块符号图。输入端口clr是时计数模块的清零信号,也是整个数字中的使能信号,低电平有效; clk是秒脉冲输入端口输出端口;sl3.0是分计时的低位,sh3.0是分计时的高位。图2-16 时计数模块波形仿真图时计数模块波形仿真图如图2-16所示。clk接分计时模块的仅为输出,给定时钟信号,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的脉冲。由此可知,本模块满足设计要求。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 定时模块符号图图2-21 定时模块RTL图如图2-22所示为定时模块波形仿真图。当复位键为高电平、k1为低电平时,每按下一次up_key闹钟分低位就计一个数,计到9时向高位进一,当计到59时重新从0开始计数;当复位键为高电平、k1为高电平时,开始对时计数,up_key每来一个脉冲时低位就计一个数,计到9时变为0,高位进位,计到23时重新计数,由波形仿真克制此模块满足设计要求。图2-22 定时模块波形仿真图2.6.2比较模块如图2-23所示为比较模块设计框图。设计思路为:将闹钟设定的时间与及时模块的时间分别比较,即时高位、时低位、分高位、分低位分别进行比较,若时间相等,则输出高电平,输出信号与1Hz时钟信号相与,获得的信号接蜂鸣器,可实现时隔一秒报警一次,报警时长为一秒。图2-23 比较模块设计框图如图2-24所示为比较模块符号图。Clk0为比较模块的时钟,接200分频器输出的1Hz时钟信号;QH_B3.0为时钟的时高位,QH_A3.0为时钟的时低位,QMB3.0为时钟的分高位,QM_A3.0为时钟的分低位;HARM_B3.0为闹钟时间的时高位,HARM_A3.0为闹钟时间的时低位,MARM_B3.0为闹钟时间的分高位,MARM_A3.0为闹钟时间的分低位;SPEAK为比较模块的输出,接报警时长设定模块的输入。图2-24 比较模块符号图如图2-25所示为比较模块波形仿真图。给clk0一定时钟,设定闹钟时间时高位为1,时低位为2,分高位、分低位都为0,即闹钟时间为十二点整,;首先设定时钟模块的时高位设定为1,时低位为1,分高位为5,分低位为9,即十一点五十九分,再设定为十二点整;由波形仿真图可知,当时钟时间由十一点五十九分变为十二点整时,speak输出时钟波形,可知比较模块的设计满足要求。图2-25 比较模块波形仿真图2.7打铃模块设计如表2-1所示为学校作息时间。学校作息时间分为春季和夏季之分,上课下课时间共包括46个时间点,将此写入程序中,当时钟时间与这些时间相同时,输出高电平,与时钟信号相与,作为报警模块的输入。表2-1 学校作息时间作息时段春季作息时间夏季作息时间上课下课上课下课上午08:3009:1508:3009:1509:1510:1009:1510:1010:2011:0510:2011:0511:1512:0011:1512:00下午13:3014:1514:0014:4514:2515:1014:5515:4015:2016:0515:5016:3516:1517:0016:4517:30晚上18:3019:1519:0019:4519:2520:1019:5520:4020:2021:0520:5021:3522:0022:00图2-26 打铃模块设计框图 如图2-26所示为打铃模块设计框图。模块包括作息选择和时间比较部分,其设计思路为:通过k3进行春夏作息时间选择,将时钟的时高位、时低位、分高位、分低位分别于表2.1中的打铃时间数据进行比较,若相等,则Q_Y输出高电平,否则输出低电平。图2-27 打铃模块符号图如图2-27所示为打铃模块符号图。K3为切换春夏作息时间的按键,当K3为高电平时选择春季作息时间,方为低电平时选择夏季作息时间;Q_HB3.0接时钟时间的时高位,Q_HA3.0接时钟时间的时低位,Q_MB3.0接时钟时间的分高位,Q_MA3.0接时钟时间的时低位;Q_Y为打铃模块的输出,接报警模块的输入。图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为调节报警时间的按键,时长可从一秒调至十五秒,连接按键模块;speaktime3.0为报警时长的输出,连接蜂鸣器发生模块的输入端。图2-29 报警时长设定模块符号图图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的时钟模块,报警可实现每一秒响一下;speaktime3.0接报警时长设定模块的输出,为报警持续的时间长度,范围在一秒至十五秒以内;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 蜂鸣器发声模块波形仿真图2.9显示模块设计对于本学校打铃器的设计,必不可少的就是显示模块的设计,因为根据设计要求,时钟的计时显示、闹钟的时间设定、蜂鸣器报警时长的设定,都需要数码管来显示,实际应用的时候,数码管的显示是最直观的表现。2.9.1时间切换模块如图2-36所示为时间切换模块设计框图。设计思路为:通过K2来进行时间切换,当K2为高电平时,输出正常计时时间;当K2为低电平时,输出定时时间。图2-36 时间切换模块设计框图图2-37 时间切换模块符号图如图2-37所示为时间切换模块符号图。K2为切换按键输入,用于切换时间输出;QSAI3.0为时钟时间秒低位,QSBI3.0为时钟时间秒高位,QMAI3.0为时钟时间分低位,QMBI3.0为时钟时间分高位,QHAI3.0为时钟时间时低位,QHBI3.0为时钟时间时高位;QH_ARM_A3.0为定时时间时低位,QH_ARM_B3.0为定时时间时高位,QM_ARM_A3.0为定时时间分低位,QM_ARM_B3.0为定时时间分高位;Q_HAO3.0为时间切换模块的时低位,Q_HBO3.0为时间切换模块的时高位,Q_MAO3.0为时间切换模块的分低位,Q_MBO3.0为时间切换模块的分高位,Q_SAO3.0为时间切换模块的秒低位,Q_SBO3.0为时间切换模块的秒高位。图2-38 时间切换模块波形仿真图如图2-38所示为时间切换模块波形仿真图。设定时钟时间为21点34分52秒,定时时间为12点整;当K2为高电平时,模块输出为时钟时间21点34分52秒;当K2为低电平时,模块输出为定时时间十二点整。由此可知,本模块满足设计要求。2.9.2动态扫描模块所谓动态显示就是一位一位地轮流点亮各位显示器(扫描),对于显示器的每一位而言,每隔一段时间点亮一次。虽然在同一时刻只有一位显示器在工作(点亮),但利用人眼的视觉暂留效应和发光二极管熄灭时的余辉效应,看到的却是多个字符“同时”显示。显示器的亮度既与点亮时的导通电流有关,也与点亮时间和间隔时间的比例有关10。若显示器的位数不大于8位,则控制显示器公共极电位只需一个8位I/O口(称为扫描口或字位口),控制各位LED显示器所显示的字形也需要一个8位口(称为数据口或字形口)。调整电流和时间参烽,可实现亮度较高较稳定的显示11。7段数码管一般由8个发光二极管组成,其中由7个细长的发光二极管组成数字显示,另外一个圆形的发光二极管显示小数点。当发光二极管导通时,相应的一个点或一个笔画发光。控制相应的二极管导通,就能显示出各种字符,尽管显示的字符形状有些失真,能显示的数符数量也有限,但其控制简单,使有也方便。发光二极管的阳极连在一起的称为共阳极数码管,阴极连在一起的称为共阴极数码管,本设计使用共阴数码管,如图2-39所示为七段共阴数码管结构图。图2-39 七段数码管结构如图2-40所示为数码管显示连接图。动态扫描电路将计数器输出的8421BCD码转换为数码管需要的逻辑状态,并且输出数码管的片选信号和位选信号12。所谓动态扫描显示方式是在显示某一位LED显示块的数据的时候,让其它位不显示,然后在显示下一位的数据,同时关闭其他显示块。这样做可以使每一个显示块显示与自己相对应的数据。只要保证每一位显示的时间间隔不要太大,利用人眼的视觉暂留的现象,就可以造成各位数据同时显示的假象13。一般每一位的显示时间为110ms。图2-40 数码管显示连接图如图2-41所示为动态扫描模块符号图。该模块的输入端口clk是频率为5kHZ的扫描时钟,故每一位显示的时间为0.2ms,需要扫描8个数码管,故显示间隔为1.6ms。由分频模块提供,数码管显示时、分和秒,以及报警时间。其它输入端口接计数模块输出的数据;输出端口segout7.0动态输出扫描的数据;端口selout7.0输出数码管的片选信号。图2-41 动态扫描模块符号图如图2-42所示为动态扫描模块波形仿真图。给定一定时钟脉冲,设定时钟时间为21点01分25秒,随着脉冲上升沿的到来,数码管的片选信号逐一变为低电平,分别输出时钟时间或定时时间,以及报警时长,有波形仿真图可知此模块满足设计要求。图2-42 动态扫描模块波形仿真图2.10按键电路设计本设计需要对计时时间和闹钟时间进行调整,调整的过程需要用到按键电路,用到两种按键,一种是机械式开关,另外一种是拨码开关。由于按键电路比较简单,在此主要介绍按键各自完成的功能。本设计由8个独立按键组成,包括两个拨码开关,六个机械式开关。其中2个拨码开关分别用于调节报警时长以及闹钟定时时间的调节;另外6个机械式开关分别用于复位,数码管显示切换,闹钟定时时、分切换,作息时间切换,时钟时间时、分调节。第三章 实验结果分析3.1测试过程将设计程序下载到实验箱上进行实际测试,以下为实际测试过程:当前状态为正常计时状态,将复位按键设为高电平,计时开始,时钟、闹钟显示切换按键为高电平时显示时钟时间,可通过时钟调时、调分键对时钟时间进行调整,数码管显示从左到右依次为:报警时长十位、个位,时钟时间时高位、时低位,分高位、分低位,秒高位、秒低位,显示时间为十二点十九分十八秒,报警时长为十五秒。为闹钟设定时间的显示,通过时钟、闹钟显示切换按键来进行切换,当为低电平时显示闹钟时间,可通过定时调时调分切换按键来选择调整时或分,按下闹钟时间调节的拨码开关进行闹钟时间设定,图中数码管显示从左到右依次为:报警时长高位、低位,定时时间时高位、时低位,分高位、分地位,秒高位、秒低位,当前显示闹钟设定时间为十二点十三分,报警时长为十五秒,当时钟时间为十二点十三分时,蜂鸣器报警,时长为十五秒。 通过按下报警时长调节键来改变报警时长,图中报警时长更改为1秒,左为报警时长显示,右为时钟时间显示,显示时间为十二点十一分二十九秒。时钟时间计到设定的学校作息时间时,蜂鸣器报警,持续时间为当前设定的报警时长。测试说明,最终结果与预期效果基本一致,时、分、秒能够正常计数并可调节时间,学校上下课时间打铃功能正常,并且可以通过按键调整作息时间以及报警时长。在自动打铃器设计过程中,更加熟悉了利用QuartusII软件进行原理图绘制的方法,硬件描述语言VHDL的编写模块的技巧等,并能根据仿真结果分析设计的存在的问题和缺陷,从而进行程序的修改和完善。在设计电路中,往往是先仿真后连接实物图,但有时候仿真和电路连接并不是完全一致的,例如在对具体模块的仿真的过程中,往往没有考虑到整体设计的层面以及与上下模块接口的设计。再加上器件对信号的延时等问题,实际下载到实验箱上后会出现一系列的问题,因此仿真图和电路连接图还是有一定区别的。 自动打铃器的设计重点在于按键的控制和各个模块代码的编写,虽然能把键盘接口和各个模块的代码编写出来,并能正常显示,但对于各个模块的优化设计还有一定的缺陷和不足。总的来说,通过这次的设计实验更进一步地增强了实验的动手能力,对打铃器的工作原理也有了更加透彻的理解。在本设计调试过程中遇到了一些难点问题,经过努力加以解决:1、当程序下载到实验箱上后,数码管显示全部为零,计数器不工作,经分析得知程序中的总的清零信号保持有效状态,改动程序后计数器开始计数。2、当秒时钟计数到59时变0时,分计数模块滞后计数,考虑的器件的延时,将程序中秒的进位信号提前1秒。3、在对学校打零时间设置及更改的问题上,一开始想通过ROM实现,但思考之后还是采用了通过程序实现的方法,因为ROM只能读不能写。4、在检测按键时,由于有些按键控制是秒时钟同步的,所以控制起来显得稍微慢些,但是工作正常,能满足实际的需要。3.2结果分析从实际系统测试可知,学校打铃器满足设计要求,通过复位按键可对系统进行复位,可实现基本时钟的显示及调时调分,具有闹钟功能,作息时间有春夏之分,当前时钟时间与学校上下课时间点相同时打铃,且计时时间、定时时间、打铃时长可自由设置和调整,报警时长可在1至15秒内进行调节,其数据信息都可以通过数码管显示,闹钟报警和作息报时通过蜂鸣器来实现。本设计是采用硬件描述语言和FPGA芯片相结合进行的学校打铃器的研究,从中可以看出EDA技术的发展在一定程度上实现了硬件设计的软件化,设计的过程相对简单,容易修改。本设计中仍存在一定不足,用来控制学校打铃器的按键为八个,数量较多,在实际应用中会带来不便,以后可以考虑进一步优化,如,可通过加入位选控制按键来实现节省按键资源,一键多用,便可以减少按键,实现同样的控制功能。另外,在本设计的基础上还可以进行一系列的创新,比如增加音乐报警的功能,取代稍有刺耳的蜂鸣声,会使用户在实际应用中多一份乐趣,还可以加入遥控功能、语音识别等等,相信随着电子技术的发展,打铃器的功能会更加多样化,满足人们的各种需要,为人们以后的工作和生活提供更多的方便。参考文献1 刘皖,何道君,谭明编著.FPGA设计与应用M.北京:清华大学出版社,2006.6:12-162 廖日坤.CPLD/FPGA嵌入式应用开发技术白金手册M.北京:中国电力出版社,2003:212-2183 J.Bhasker著,徐振林等译.Verilog HDL硬件描述语言M.北京:机械工业出版社,2000:36-424 侯伯亨,顾新.VHDL硬件描述语言与数字电路逻辑设计M.西安:西安电子科技大学出版社,2001:12-165 高吉祥.电子技术基础实验与课程设计M.北京:电子工业出版社,2002:67-736 李国洪,沈明山.可编程器件EDA技术与实践M.北京:机械工业出版社,2000:56-577 张庆双.电子元器件的选用与检测M.北京:机械工业出版社,2003:23-258 李婷.基于FPGA的按键弹跳消除模块的研究与应用J.科技创新导报,2008,(2):82-839 邢远秀,陈姚节.键盘消抖电路的研究与分析J.中国科技信息,2008,(1):20-2210 Zainalabedin Navabi.Vhdl: Analysis and Modeling of Digital SystemsM.New York:McGraw-Hill Professional,1998,(2):342-34611 王开军,姜宇柏.面向CPLD/FPGA的VHDL设计M.北京:机械工业出版社,2006:28-6512 刘君,常明,秦娟.基于硬件描述语言(VHDL)的数字时钟设计J.天津理工大学学报,2007,23(4):40-4113 谭会生,张昌凡.EDA技术及应用M.西安:西安电子科技大学出版社,2002:89-92 14 李可.数字钟电路及应用M.北京:电子工业出版社,1996:72-76附 录一、程序清单1.分频模块(1)library ieee;use ieee.std_logic_1164.all;entity fenpin25k is port( clk :in std_logic; co:out std_logic);end entity;Architecture art of fenpin25k issignal cqi : integer range 1 to 25000;beginco=1 when cqi=25000 and clk=0else 0; process (clk) is beginif clkevent and clk=1then if cqi=25000 then cqi=1; else cqi=cqi+1; end if; end if; end process; end architecture art;(2)library ieee;use ieee.std_logic_1164.all;entity cnt5 is port( clk :in std_logic; co:out std_logic);end entity;Architecture art of cnt5 issignal cqi : integer range 1 to 5;beginco=1 when cqi=5 and clk=0else 0; process (clk) is beginif clkevent and clk=1then if cqi=5 then cqi=1; else cqi=cqi+1; end if; end if; end process; end architecture art;(3)library ieee;use ieee.std_logic_1164.all;entity cnt200 is port( clk :in std_logic; co:out std_logic);end entity;Architecture art of cnt200 issignal cqi : integer range 1 to 200;beginco=1 when cqi=200 and clk=0else 0; process (clk) is beginif clkevent and clk=1then if cqi=200 then cqi=1; else cqi=cqi+1; end if; end if; end process; end architecture art;(4)library ieee;use ieee.std_logic_1164.all;entity cnt50e is port( clk :in std_logic; co:out std_logic);end entity;Architecture art of cnt50e issignal cqi : integer range 1 to 50e3;beginco=1 when cqi=50e3 and clk=0else 0; process (clk) is beg
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 2025年新能源行业工业互联网在能源安全与风险管理中的应用报告
- 副粘病毒分子免疫-洞察及研究
- 旅行社旅游产品营销推广手册
- 农村职业技能培训与新型城镇化建设的互动关系研究报告
- 绿色金融赋能2025新能源产业升级政策研究报告
- 咨询工程师试卷附完整答案详解【全优】
- 首件检验要求
- 养老机构医养结合模式下的智能化运营策略研究报告
- 安全性毒理分析-洞察及研究
- 年产2900套穿刺线夹项目可行性研究报告
- 完整版宪法知识竞赛试题完整题库及答案(夺冠系列)
- 云南大学附属中学数学2023-2024学年七年级上学期开学分班考试数学试题
- 小学武术校本课程教材(中学也可用)
- 自来水厂处理工艺流程图
- 全媒体运营师-国家职业标准(2023年版)
- 小学英语教学经验体会分享
- 学校矛盾调解工作制度模版
- 学习中心教学论
- 《学习共同体-走向深度学习》读书分享
- 2017年人教版英语五年级上册说教材
- 健康安全危险源识别、风险评估和风险控制表
评论
0/150
提交评论