《基于CPLD的MIDI音乐播放器设计毕业设计论文(32页).doc》由会员分享,可在线阅读,更多相关《基于CPLD的MIDI音乐播放器设计毕业设计论文(32页).doc(32页珍藏版)》请在taowenge.com淘文阁网|工程机械CAD图纸|机械工程制图|CAD装配图下载|SolidWorks_CaTia_CAD_UG_PROE_设计图分享下载上搜索。
1、-基于CPLD的MIDI音乐播放器设计毕业设计论文-第 26 页宜宾职业技术学院 毕业设计基于CPLD的MIDI音乐播放器设计系 部 电子信息与控制工程系 专 业 名 称 电子信息工程技术 班 级 电子11101班 姓 名 万 芬 学 号 201115724 指 导 教 师 唐 军、张 艳 2012 年 09 月 20 日基于CPLD的MIDI音乐播放器设计摘 要本文设计一个具有播放音乐、显示时间及彩灯闪烁功能的MIDI音乐播放器。根据音乐播放器的基本原理,以Verilog HDL作为编程语言,选用Altera公司MAX II系列可编程逻辑器件 (CPLD)EPM570T144C5作为控制核心
2、,实现音乐播放器的功能。此外电路还设计了光控功能,彩灯选用LED发光二极管,时间显示采用数码管。产品制作完成后,经过测试,实现了所有功能,具有电路简单、工作稳定、耗电小的优点,可适用于生活中。关键词:CPLD;Verilog HDL;蜂鸣器;光控Design of MIDI Music Player Based on CPLDAbstractAmusic player,time display andflashing lights and function of the MIDImusic playeris designed in this paper.According to the bas
3、ic principle ofthe music player,with VerilogHDL as the programming language, theAlteraMAXII series programmablelogic device (CPLD)EPM570T144C5 as control core,realize the function of music player.In additioncircuitalso designed thecontrol function,lightsuse LEDlight-emitting diode, digital tubedispl
4、aythetime.Productproduction is completed,after testing,realize all the functions, has the advantages of simple circuit, stable operation, small power consumption,suitable forlife.Keywords:CPLD;VerilogHDL;Buzzer;Light目 录1 引 言12 方案论证与选择22.1 主控模块的论证与选择22.2 显示模块的论证与选择22.3总体系统方案23硬件设计43.1 MAX II系列CPLD43.
5、2 EPM570T144C5芯片53.3 蜂鸣器电路63.4 光电传感器电路73.5 数码管显示及彩灯闪烁电路74 软件设计84.1 工作原理及设计思路84.2 有限状态机94.3 中央处理器设计104.4 音调发生器设计104.5 光电传感器设计114.6 彩灯闪烁设计124.7 数码管显示设计125 产品制作135.1 PCB制作135.2 元器件装配135.2.1元器件检测135.2.2元器件安装135.2.3 元器件焊接146 系统调试156.1 CPLD程序编译156.2 CPLD引脚配置156.3 CPLD程序下载166.4 系统联调186.4.1 蜂鸣器的调试186.4.2 光电
6、传感器的调试186.4.3 数码管的调试186.4.4 彩灯的调试186.4.5 分频的调试18结束语20致 谢21参考文献22附 录附录1 电路原理图附录2 系统板PCB图附录3 部分RTL电路图附录4 产品实物图附录5 曲谱附录6 程序源代码基于CPLD的MIDI音乐播放器设计1 引 言随着微电子技术和计算机技术的不断发展,在涉及通信、国防、航天、工业自动化、仪器仪表等领域的电子系统设计工作中,EDA技术的市场正以惊人的速度上升,它已成为当今电子技术发展的前沿之一。EDA(Electronics Design Automation)即电子设计自动化技术,是指以计算机为基本工作平台,融合应用
7、电子技术、计算机技术、智能化技术的最新成果而研制成的一整套软件工具,主要能辅助进行三方面的设计工作:IC设计,电子电路设计,PCB设计。没有EDA技术的支持,想要完成一些超大规模集成电路的设计制造是不可想象的。大规模可编程逻辑器件CPLD(Complex Programmable Logic Device,复杂可编程逻辑器件)和FPGA(Field Programmable Gates Array,现场可编辑门阵列)是当今应用最广泛的两类可编程逻辑器件,电子设计工程师利用它可以在办公室或实验室设计出所自己所需要的专用芯片和专用产品,从而大大缩短了产品上市时间,降低了开发成本。此外,可编程逻辑器
8、件还具有静态可重复编程和动态在系统重构的特性,使得硬件的功能可以像软件一样通过编程来修改,这样就极大的提高了电子系统设计的灵活性和通用性。选择做音乐播放器的意义:因上学期开设了HDL程序设计和FPGA系统设计两门课程,通过这两门课程,系统掌握了Verilg HDL,并且利用了HDL做一些设计。音乐播放器是常用的电子产品,为了更好的掌握FPGA/CPLD器件使用,加深对HDL的深层次运用。因本次毕业设计能够更加的体现所学专业的知识,故选定该题目。2 方案论证与选择2.1 主控模块的论证与选择方案一:采用MCU设计做核心的控制,MCU的频率较低(以AT89S52为例,它只有20MHz),其缺点是功
9、耗太大,并且是复杂指令集,用的麻烦,运行速度低,因此本设计中不采用。方案二:采用FPGA设计做核心的控制,其典型工作频率为50MHz,其缺点是编程数据信息在系统断电时丢失,每次上电时,需从器件的外部存储器或计算机中将编程数据写入SRAM中。其优点是可进行任意次数的编程,并可在工作中快速编程,实现板级和系统级的动态配置,因此可称为在线重配置的PLD或可重配置硬件,但FPGA的价格较高,不适宜本设计。方案三:采用CPLD设计做核心的控制,其典型工作频率为50MHz,规模小,使用简单,保密性好,集成度高,其优点是在系统断电后,编程信息不丢失,时序延时是均匀的和可预测的,改变引脚输出很灵活,I/O数目
10、多。适合于触发器有限而积项丰富的结构,不需设计人员了解很深的IC知识,而且CPLD的价格合理。综上所述,采用方案三的CPLD作为主控模块。2.2 显示模块的论证与选择 方案一:采用数码管显示,数码管不仅价格便宜、数据稳定、无闪烁、占用CPU时间少,外围电路较为简单,而且编写程序也很简单。方案二:采用LCD1602液晶显示,虽然显示效果好,其外围电路也很简单,但是价格较高,对于本设计不需显示过多的东西来说,过于浪费。综上所述,采用方案一的数码管作为显示模块。2.3总体系统方案 通过方案论证与比较,以CPLD作为主控芯片,采用数码管作为显示器件,CPLD负责接收光电传感器的检测结果,根据检测结果确
11、定蜂鸣器鸣叫、数码管显示以及彩灯闪烁,系统框图如图2.1所示。图2.1 系统框图3硬件设计本设计的主控芯片选用CPLD,硬件电路由光电传感器、蜂鸣器、数码管显示、彩灯闪烁及串口电路,由于串口电路选用CPLD的专用下载器(USB -Blaster),所以在此不多做介绍。3.1 MAX II系列CPLDMAX II器件系列是一种非易失性、即用性可编程逻辑系列,它采用了一种突破性的新型CPLD架构。这种新型架构的成本是原先MAX器件的一半,功耗是其十分之一,密度是其四倍,性能却是其两倍。这些超级性能是在提供了所有MAX系列CPLD先进特性的架构的基础上,根据Altera专家们的意见而重新采用基于查找
12、表的架构而得到的。这种基于查找表的架构在最小的I/O焊盘约束的空间内提供了最多的逻辑容量。因此,MAX II CPLD是所有CPLD系列产品中成本最低、功耗最小和密度最高的器件。基于成本优化的0.18微米6层金属Flash工艺,MAX II器件系列具有CPLD所有的优点,例如非易失性、即用性、易用性和快速传输延时性。以满足通用性,低密度逻辑应用为目标,MAX II器件成为接口桥接、I/O扩展、器件配置和上电顺序等应用最理想的解决方案。除这些典型的CPLD应用之外,MAX II器件还能满足大量从前在FPGA、ASSP和标准逻辑器件中实现的低密度可编程逻辑需求。MAX II器件提供的密度范围从24
13、0到2210个逻辑单元(LE),最多达272个用户I/O管脚如下表3.1所示。表3.1 EPM系列参数 特性EPM240EPM570EPM1270EPM2210LE24057012702210典型的等效宏单元数1924409801700最大用户I/O80160212272用户可用Flash比特数8192819281928192速度等级3,4,53,4,53,4,53,4,5封装100-pinTQFP144-pinTQFP144-pinTQFP256-pinFBGA由Quartus II综合出来的电路信号可知,本设计占用512个逻辑单元,其硬件EPM240T100C5不符合设计的需求,仿真结果如
14、下图3.1,故选用容量为570个逻辑单元的器件EPM570T144C5来实现,仿真结果如下图3.2。图3.1 EPM240T100C5综合报告图3.2 EPM570T144C5综合报告 3.2 EPM570T144C5芯片 采用Altera公司生产的EPM570T144C5芯片,该芯片有570个逻辑单元,资源比较丰富,内有8Kbit Flash的存储空间。该芯片采用TQFP封装,共144只管脚,可用I/O是116个,如表3.1所示。所有的VCCINT管脚必需接3.3V或2.5V的电压,VCCIO管脚可以接入四种不同的电压,分别为3.3V、2.5V、1.8V和1.5V。该芯片有四个全局时钟,它们
15、具有兼用功能,可以用做普通的I/O口,DEV_CLRn用于信号的复位,故选定该芯片,如图3.3引脚说明图。 图3.3 引脚说明图3.3 蜂鸣器电路蜂鸣器采用杜邦线接在CPLD上,一端接IO29脚,另一端接地,达到播放音乐的功能,如图3.4所示。图3.4 蜂鸣器连接电路3.4 光电传感器电路光电传感器电路(如图3.5所示)对环境光线较敏感,一般用来检测周围环境的光线的亮度,触发控制器或继电器模块等,模块在环境光线亮度达不到设定阀值时,D0端输出高电平,当外界环境光线亮度超过设定阀值时,D0端输出低电平,DO输出端可以与控制器的I/O口直接相连,通过控制器来检测高低电平,由此来检测环境的光线亮度改
16、变。电源极性不能接反,否则有可能将芯片烧坏,开关信号指示灯亮时输出低电平,不亮输出高电平,输出的电平接近于电源电压。图3.5 光电传感器电路3.5 数码管显示及彩灯闪烁电路数码管显示电路由3个共阳数码管显示,彩灯闪烁电路由6个发光二极管构成,高低电平控制着6个发光二极管的亮灭。当光电传感器检测到有光时,音乐会暂停,数码管显示的时间也会定格在暂停的瞬间,彩灯也会暂停,当光电传感器检测到无光时,音乐会继续,数码管显示的时间也会依次加一,彩灯循环闪烁,如图3.6所示。图3.6 数码管显示及彩灯闪烁电路4 软件设计设计从成本考虑出发和功能实现等,采用Altera的Quartus II来软件来处理。选用
17、Verilog HDL来编写程序,如果有C语言的编程经验,可以在一个较短的时间内很快的学习和掌握,因而选择Verilog HDL作为编程语言。4.1 工作过程及设计思路(1)工作过程:MIDI音乐是Windows下的一种合成音乐,由于它通过记谱的方式来记录一段音乐,因此与wave音乐相比,它可以极大地减少存储容量。MIDI音乐的工作过程为:组成乐曲的每一个音符的频率值及其持续的时间是乐曲能连续演奏的两个基本数据,因此只要控制输出到扬声器的激励信号频率的高低和每一个频率信号的持续时间,就可以使蜂鸣器发生连续的乐曲,如图4.1所示。(2)设计思路:本设计将歌曲设计成一个状态机,每个音节做成一个状态
18、机的状态,音节持续的时间由计数器变量TIME控制。频率的高低决定了音调的高低,而乐曲的简谱与各音名的频率对应关系在后面将给出。所有不同频率的信号都是从基准频率分频而得来的,由于音阶频率多为非整数,而分频系数有不能为小数,故必须将计算得到的分频数进行四舍五入取整,基准频率和分频系数应综合考虑加以选择,从而保证音乐不会走调。如在48MHz时钟下,中音1(对应的频率值是523.25Hz)的分频系数应该为:48000000/(2*523.25)=45867,这样只需对系统时钟进行45867次分频即可得到所要的中音M1(分频系数计算公式为,由于之后,会使分频系数D变小,所以功能模块中语句:beep_r=
19、!beep_r,使得输出取反,消除了前面除以2K的影响)。至于其他音符,可以同样求出对应的分频系数。在程序中设置一个状态机,每250ms改变一个状态(即一个节拍),组成乐曲的每个音符的频率值(音调)相对应于状态机的每一个状态。只要让状态机的状态按顺序转换,就可以自动演奏播放音乐了。友谊地久天长乐曲的简谱见附录5所示,(注: N一拍;N两拍;N四拍;N八拍;N为音谱)。图4.1 CPLD内部芯片设计原理4.2 有限状态机有限状态机FSM思想广泛应用于硬件控制电路设计,也是软件上常用的一种处理方法(软件上称为FMM-有限消息机)。它把复杂的控制逻辑分解成有限个稳定状态,在每个状态上判断事件,变连续
20、处理为离散数字处理,符合计算机的工作特点。同时,因为有限状态机具有有限个状态,所以可以在实际的工程上实现。但这并不意味着其只能进行有限次的处理,相反,有限状态机是闭环系统,有限无穷,可以用有限的状态,处理无穷的事务。有限状态机是指输出取决于过去输入部分和当前输入部分的时序逻辑电路。一般来说,除了输入部分和输出部分外,有限状态机还含有一组具有“记忆”功能的寄存器,这些寄存器的功能是记忆有限状态机的内部状态,它们常被称为状态寄存器。在有限状态机中,状态寄存器的的下一个状态不仅与输入信号有关,而且还与该寄存器的当前状态有关,因此有限状态机又可以认为是组合逻辑和寄存器逻辑的一种组合。其中,寄存器逻辑的
21、功能是存储有限状态机的内部状态;而组合逻辑又可以分为次态逻辑和输出逻辑两部分,次态逻辑的功能是确定有限状态机的下一个状态,输出逻辑的功能是确定有限状态机的输出。有限状态机的工作原理如图4.2所示,发生事件(event)后,根据当前状态(cur_state),决定执行的动作(action),并设置下一个状态(nxt_state)。图4.2 有限状态机工作原理状态机的现态(当前状态)和次态(下一状态),分别表示现在演奏的音调和将要演奏的音调,而每个音调持续的时间都是TIME变量的整数倍。在程序中,TIME的值在时钟50MHz频率下,设定为250ms。4.3 中央控制器设计中央控制器包括节拍控制电路
22、和音符产生电路。节拍控制电路以乐曲中最短音符的节拍为基准,产生乐曲所需要的全部节拍。在大部分音乐中,多以1/4为一拍,一拍则为一秒,同时在乐谱中,一般最短的音符多为1/16音符,因此为了达到四首歌曲的统一,我们将1/16音符设置为计数器的一个计数,对应的1/4音符则是四个计数。为了节省内部资源,我们只演奏一首歌曲。另外,在设计中为了让歌曲循环播放,计数器设定计满自动清零计数的功能,这样,只要不断电,不关开关,歌曲就可以自动循环播放了。4.4 音调发生器设计控制好每一个音符的频率和维持的频率时间,就可以组成两个连续的音符,从而发出连续的乐曲,如表4.1音符与频率对照表所示。表4.1 音符与频率对
23、照表音名频率/Hz分频系数低音5391.9961225低音644054545中音1523.2545867中音2587.3340863中音3659.336402中音5783.9930612中音688027273高音11045.522956休止符081910由于音阶频率多为非整数,而分频系数又不能为小数,故必须将得到的分频数四舍五入取整。根据系统最大的分频系数为61225,故采用16位二进制计数器已能满足分频要求。在表3.1中,可以看到不同音阶对应的不同初始值。对于不同的分频系数,只要加载不同的初始值即可。采用加载初始值而不将分频输出译码反馈,可以有效地减少设计占用可编程逻辑器件的资源。“0”表示
24、休止符,在很多音乐中,休止符也是一个重要的音符。对于休止符,只要将分频系数设为0,蜂鸣器就不会发声了,程序代码如下所示。parameter L_5 = 16d61224, /低音5 L_6 = 16d54545, /低音6 M_1 = 16d45863, /中音1 M_2 = 16d40865, /中音2 M_3 = 16d36402, /中音3 M_5 = 16d30612, /中音5 M_6 = 16d27273, /中音6 H_1 = 16d22956; /高音1 parameter TIME=12000000; /控制音的长短(250ms) assign beep=beep_r; /输
25、出音乐4.5 光电传感器设计光电传感器根据电路设计,当它检测到有光时,它内部为低电平,蜂鸣器不会叫,没有检测到光时,它内部为高电平,蜂鸣器会叫,程序代码如下所示。always(posedge sys_clk)begincount=count + 1b1; /计数器加1if(count=count_end)begincount=16h0; /计数器清零if(ke=1b0) /如果有光beep_r=0; /蜂鸣器不叫elsebeep_r25) clkout=1; else clkout=0;endendmodule用分频得到仿真图如图6.7及图6.8所示。图6.7 仿真图1图6.8 仿真图2通过蜂
26、鸣器、光电传感器、数码管、彩灯及分频的调试,产品能正常实现功能,产品实物图见附录4。结束语通过对整体的学习和编程设计,完成了音乐播放器的设计,音乐播放器的设计经过了整体分析、模块化分析、整体与模块的仿真分析这样三个步骤,硬件实现了循环演奏以及数码管显示时间等功能,描述了其工作原理、设计思路及实现方法,并在Quartus II上选用目标芯片仿真实现了音乐硬件演奏电路的功能。实践证明,采用CPLD设计实现音乐硬件演奏电路的可行性和可靠性,而且更改乐曲容易,可根据需要修改程序中的音符数据文件,从而使电路实现任一曲子的播放。在此次设计中,所有设计要求全部实现,然而在音乐的播放质量上仍有一些瑕疵,可能是
27、由于蜂鸣器的质量问题或者芯片内部产生信号不稳定等关系,这都有待更多的时间对整个系统进行更多的测试,从而使播放出来的音乐更加悦耳。通过此次设计,对可编程逻辑器件CPLD/FPGA有了更深一步的了解,真正的达到了将课本中学习到的知识应用于实践,更深化了对这个领域的认知度。在设计的过程中,还掌握了许多有关电子领域必要软件的使用,对今后的工作都有一定得帮助。致 谢为期半年的准备,我的毕业论文终于完成了,这意味着大学生活即将结束。在大学阶段,我在学习和思想上都受益非浅,这除了自身的努力外,与各位老师、同学和朋友的关心、支持和鼓励是分不开的。在此,我特别要感谢我的导师唐军老师和张艳老师。从论文的选题、文献
28、的采集、框架的设计、结构的布局到最终的论文定稿,从内容到格式,从标题到标点,他们都费尽心血。没有老师们的辛勤栽培、孜孜教诲,就没有我论文的顺利完成。同时,感谢所有任课老师和所有同学在这三年来给自己的指导和帮助,是他们教会了我专业知识,教会了我如何学习,教会了我如何做人。正是由于他们,我才能在各方面取得显著的进步,在此向他们表示我由衷的谢意,并祝所有的老师培养出越来越多的优秀人才!最后要感谢我的家人以及我的朋友们对我的理解、支持、鼓励和帮助,正是因为有了他们,我所做的一切才更有意义,也正是因为有了他们,我才有了追求进步的勇气和信心。时间的仓促及自身专业水平的不足,整篇论文肯定存在尚未发现的缺点和
29、错误。恳请阅读此篇论文的老师、同学,多予指正,不胜感激!参考文献1 袁慧梅,宋宇.基于CPLD的MIDI音乐播放器的设计J.微计算机信息.2006.11.2 宋万杰,罗丰,吴顺君.CPLD技术及其应用M .西安:西安电子科技大学出版社,1999.3 朱正伟.EDA技术及应用M .北京:清华大学出版社,2005.4 吴继华,王诚,薛宁.Altera FPGA/CPLD设计M .北京:人民邮电出版社,2005.5 夏宇闻.Verilog数字系统设计教程M .北京:北京航空航天大学出版社,2003.6 樊昌信,曹丽娜等.通信原理M .北京:国防工业出版社,2007.7 蒋青,吕翊,李强.现代通信技术
30、基础M .北京:高等教育出版社,2008.8 罗文超,徐钊,盛祥佐.一种基于DDS的QPSK调制器及其FPGA实现J .电视技术,2007.9 赖昭胜,管立新,曾祥华.QPSK高性能数字调制器的FPGA实现J .微计算机信息,2006.10 潘松,黄继业.EDA技术实用教程M .北京:科学出版社,2006.11 李红伟,袁世华.基于Quartus的FPGA/CPLD设计M .北京:电子工业出版社,2006.12 赵红梅, 王召东.可编程逻辑器件FPGA与CPLD的发展与应用一例J.平顶山工学院学报.2005.7.13 童世华,付蔚.谈ASIC、FPGA/CPLD 的区别与发展J.重庆职业技术学
31、院学报.2007.11.14 赵鑫,蒋亮,齐兆群,李晓凯.VHDL与数字电路设计M. 北京:机械工业出版社,2005.4.15 王晓丽.可编程逻辑器件CPLD/FPGA的发展J. 科技信息.2007.28.16 杨宝强,何伟,赵东晔. CPLD仿真存在的问题及解决方法J. 2002.8.17 Altera公司. 华禹公司选用Altera零功耗CPLD服务2008夏季奥运会J.电子技术应用.2008.7.附 录附录1 电路原理图附录2 系统板PCB图附录3 部分RTL电路图附录4 产品实物图附录5 曲谱附录6 程序源代码module wf(sys_clk,beep,led,ke,fa);inpu
32、t sys_clk; /系统时钟48MHz input ke; /光电传感器 output beep; /蜂鸣器输出端 output23:0led; /数码管输出端 output 5:0fa; /彩灯输出端 regbeep_r; /寄存器 reg7:0 state; /乐谱状态机 reg15:0 count; reg15:0 count_end; reg23:0 count1; reg 31:0counter2;reg23:0led; /数码管reg 5:0fa_r; /彩灯reg clk_s;reg 11:0min; /乐谱参数:D=F/2K parameter L_5 = 16d61224, /低音5 L_6 = 16d54545, /低音6 M_1 = 16d45863, /中音1 M_2 = 16d40865, /中音2 M_3 = 16d36402, /中音3 M_5 = 16d30612, /中音5 M_6 = 16d27273, /中音6 H_1 = 16d22956; /高音1 parameter TIME=12000000; /控制音的长短(250ms) assign beep=beep_r; /输出音乐/* *模块名称:分频器* 功能描述:计数分频*/always(posedge sys_clk)