MIDI音乐播放器的设计毕业论文.doc_第1页
MIDI音乐播放器的设计毕业论文.doc_第2页
MIDI音乐播放器的设计毕业论文.doc_第3页
MIDI音乐播放器的设计毕业论文.doc_第4页
MIDI音乐播放器的设计毕业论文.doc_第5页
已阅读5页,还剩44页未读 继续免费阅读

下载本文档

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

MIDI音乐播放器的设计毕业论文目 录1绪论11.1选题的意义和背景11.1.1选题背景11.1.2国内外现状21.1.3应用和发展趋势31.2研究的基本内容41.2.1 编程模块的设计41.2.2外围电路的设计42总体设计概述52.1 MAX II 系列CPLD52.2 总体设计思路52.1.1总体设计框图与设计思路52.2.2 编程模块设计思路62.2.3 外围电路设计思路63 MIDI音乐播放器芯片设计83.1 工作原理83.2 模块设计93.2.1 音乐编码器模块设计93.2.2 音调发生模块设计93.2.3 彩灯闪烁控制模块的设计123.2.4 开关选择模块设计133.2.5 顶层模块设计133.3 歌曲选择134 外围电路的设计144.1 时钟电路144.1.1音乐节奏时钟144.1.2 彩灯闪烁节奏时钟产生电路144.2 音频功率放大电路164.3 音乐选择开关与彩灯闪烁控制电路175 芯片制作及系统调试185.1 VHDL程序下载185.1.1程序仿真图185.2 系统调试205.2.1 彩灯控制时钟的调试205.2.2 音频功率放大的调试20结论22参考文献23附录1 总电路图24附录2 系统实物图25附录3 VHDL源代码26致谢4747天津职业技术师范大学2013届本科生毕业设计1 绪论1.1选题的意义和背景电子科学技术在二十世纪后期快速发展,其发展的周期和集成电路和计算机的快速发展有着密不可分的关系,随之而来的专用集成电路的设计的发展难度也在不停的提高和发展过快的矛盾。新的设计方法和使用高层次的设计工具被设计出,来解决这个矛盾,即EDA(Electronic Design Automation即电子设计自动化)技术。 EDA技术设计,是以硬件描述语言来描述作为核心的表达方式,其设计工具有大规模的可编程逻辑器件和计算机软件还有实验开发系统。可以使用自动实现软件和一些相关的软件的方法来设计电路,包括可以程序逻辑编译、化简、分割、综合、和优化,还可以完成对特定的芯片进行编译、映射和下载的工作,专用的集成芯片由此而成为一门最新的技术。大规模集成电路技术、CPLD / FPGA技术、集成电路布图设计技术、ASIC测试和封装技术等技术在硬件方面可以和EDA技术结合,由计算机辅助设计CAD和计算机辅助试验CAT还有技术计算机CAM跟各种各样的计算机语言的设计概念结合成为计算机辅助工程,然而,在现代电子设备中,数字信号处理技术,数字系统设计,系统建模和优化技术都是其能够容纳理论。EDA的主要功能是利用计算机实现电路设计自动化,由此基于计算机环境EDA工具的支持是必不可少的而且EDA的技术占领着重要的应用地位。 EDA软件应用广泛:PROTEL,ORCAD,PCAD,Viewlogic这些在我国都有应用。功能是非常强大,使用的方法很多是这些软件的一大特色,可以实现大多数的电路设计和仿真软件和PCB自动布局,还可以输出网表文件,能够与其他厂商实现软件数据共享。应用程序和主要的功能可以分为电子电路设计,PCB设计软件,仿真工具,PLD设计工具,IC设计软件和其它EDA软件工具。1.1.1选题背景编程互连矩阵单元CPLD构成可编程逻辑宏单元。其中可编程逻辑宏单元结构部分要复杂一些,其结构是由复杂的I/O单元互连,相应的功能可由用户根据需求生成特定的电路结构实现。设计的逻辑电路由此具有时间可预测性可以避开分段式互连结构时序的不完全预测缺点,因为CPLD内部采用固定长度金属线实现各逻辑块的互连的方式。可编程逻辑宏单元有很多特点:价格大众化比较便宜、成本低、开发的工具比较先进、可灵活编程、集成度高、而且对用户的水平要求不高、不需要测试标准产品、安全系数强,对于大规模电路也可以实现设计,因此经常应用于产品原型的设计和生产。FPGA和CPLD是基于它的工作原理及结构特点来进行识别和分类的。一般的分类方法为:CPLD是以乘积项结构方式构成的逻辑行为器件,列如Xilinx的XC9500系列、Lattice的ispLSI系列、Altera的MAX7000S系列和Lattice(原Vantis)的Mach系列等。 FPGA是以查表法结构方式构成的逻辑行为器件,如Xilinx的、Altera的FLEX10K SPARTAN系列或ACEX1K系列等。FPGA和CPLD是有很多共同特点的可编程ASIC器件,但是由于CPLD和FPGA具有各自特点,因为他们在结构上存在一些差异。 CPLD适合完成各种组合逻辑算法而FPGA适合于实现时序逻辑算法。换句话说,FPGA比较适用于触发器丰富的结构而CPLD比较实用于有限触发器而乘积项丰富的结构。CPLD的时序延迟是可预测的和均匀是由它的连续式布线结构决定的,而FPGA的不可预测性和延迟是由分段式布线结构决定的。 FPGA比CPLD在编程上更具有灵活性。CPLD编程是通过修改具有固定内连电路的逻辑功能来实现,FPGA编程大部分是由改变内部连线布线来实现;FPGA编程是在逻辑门下,而CPLD编程是在逻辑块下。FPGA的集成度比CPLD要高,她的逻辑实现和布线结构更复杂。 CPLD比FPGA更方便使用一些。采用E2PROM或FASTFLASH技术时,CPLD的编程不要外部存储器芯片,很简便。而FPGA的编程信息更为复杂点,它是存放在外部存储器上的。CPLD的比FPGA速度要快的多,好具有很好可预测性。这是由于FPGA是门级编程,他们之间采用分布式互联; CPLD是逻辑块级编程,且其逻辑块之间互联是集总式的而决定的。1.1.2国内外现状MIDI其实就是一种数字接口,计算机是数字世界的统治者, MIDI乐器也就主要由计算机控制,当我们将计算机接到整个音乐系统,决定了确定了它的主要控制地位。 电脑音乐带来了一个真正的繁荣时期,同时也带来了一个比较麻烦的事情,那就是各种电子乐器之间没有一个标准的模式:因为生产厂家都按照自己的规格生产电子乐器,厂家内部生产的产品当然没有什么问题。但是当您使用很多家公司的设备构成一个电脑音乐系统的时候,就可能出现音源代码不能够通用,就像语言不通一样而麻烦重重。1982年,国际乐器制造者协会在一起讨论就是为了解决电子乐器的通讯统一的问题。其中提出的“通用合成器接口”方案,最后为“音乐设备数字接口”,也就是“Musical Instrument Digital Interface”缩写为“MIDI”,公布于众。在此之后,所有的商业用电子乐器不再有“语言障碍”,统一了乐器的后面都有五孔的MIDI插座。MIDI 其实就是Musical Instrument Digital Interface 的英文缩写,即音乐设备数字接口。 这种接口技术的功能就是好比一种国际语言一样,实现电子乐器与之间的通讯和交流,这种国际语言其实也就是这个通用协议,被我们称为MIDI协议。研究计算机方面的人把MIDI理解成一种局域网,网络的通过专用的串行电缆连接来送着每个部分的数字音乐信息。 这一协议标准制定出后,在早起只是在专业电脑音乐圈发挥作用,但是近几年电子技术的发展,尤其多媒体技术的迅猛发展,MIDI被媒体炒得火热,几乎达到了人人都知道的地步。很多人这种接口技术作为一种电脑音乐符号。我们将MIDI划分为两种概念,一个为 “狭义的MIDI”,一个为“广义的MIDI”。 之前所说音乐设备数字接口是的狭义MIDI范围,MIDI音乐称为整个电脑音乐的统称,就是在广义上的定义。MIDI 1.0版的细节规定在1985年的出版又重新定义了一些控制器号码。“日本MIDI标准委员会”与“MIDI厂商协会”等一些组织相继成立,就是为了能够确保MIDI标准从成长阶段走向了成熟阶段。 MIDI标准的成熟之后,现在的电子乐器生产厂商们挖空心思的生产出各种电子乐器,乐器样式特别多,有合成的键盘式的、像鼓机一样敲击式的、还有弦控式的MIDI吉他,甚至还有呼吸控制器。 1.1.3应用和发展趋势中国EDA市场越来越成熟,目前国内EDA技术来看,它是朝着是普及性使用、多样化工具、广泛的应用、强大的软件功能方向发展的。信息通信这一块,像高速宽带信息网、计算机及软件技术、信息管理、新型元器件、第三代移动通信技术、信息安全技术,网络技术、积极开展以数字技术为基础的新一代信息产品要优先发展。我国目前积极开展计算机辅助设计、计算机辅助工程、计算机辅助工艺且要大力推进制造业信息化,、计算机辅助制造、制造资源计划。 1995年以来我国加速半导体产业的开发,为应对对亚太地区其它EDA等市场的竞争而建立了各种设计中心。美国在 EDA软件开发方面,仍然占领着集中的地位。韩国、日本都有他们自己的ASIC设计工具,却不对外开放。中国华大集成电路设计中心也能够提供IC设计软件。相信将来不久会有更多更好的设计工具在各地开花结果。1.2研究的基本内容1.2.1 编程模块的设计本次设计利用使用Quartus II软件和Altera公司的CPLD芯片来进行设计,编写设计程序用的是VHDL语言。芯片的存储空间有限,为能节省芯片内部资源,所以我们选择一些歌曲音律范围不是很广,节拍清晰,节奏缓慢。采用EPM240最小系统设计,因此基准时钟所在内的全部芯片外的东西,都需要外部接入来实现,所以我们需要了解芯片的结构。1.2.2外围电路的设计外围电路的设计主要是靠下面的四部分构成:1.NE555芯片构成多谐振荡电路2.74ls74芯片构成D类放大电路3.lm386电路构成音频放大电路4. 开关及彩灯通过仿真软件调试确定电路中电容电阻值,然后依照电路图焊接电路。焊接好外围电路,外围电路由稳压电源供电,由示波器测试时钟电路输出频率,调试电路使其达到所需要求。等到程序仿真成功实现后再与外围电路相连,最后调试外围电路使得功能得到整体实现。2总体设计概述2.1 MAX II 系列CPLDMAX II器件系列采取了一种突破性的最新型CPLD架构,是一种即用性、非易失性可编程逻辑系列。最多能达272个用户I/O管脚,芯片的密度范围可以从240到2210个逻辑单元。ALTERA公司MAX II系列的EPM240T100C芯片做为本次设计的核心芯片,该芯片内部240个逻辑单元,一共有100个管脚,如下图2.1所示,是EPM240T100C芯片的管脚功能和封装图。图2-1 EPM240T100C管脚封装图及管脚功能说明2.2 总体设计思路2.1.1总体设计框图与设计思路下图2-2,是本次设计的音乐播放器的原理框图。这主要是由外围电路模块和CPLD芯片模块两个模块构成的。整个模块由音调发生器、彩灯闪烁控制器和音乐编码器三个模块组成。它的工作基本原理是先将四首歌曲的编码储存在音乐编码器内,当前需要播放哪首音乐时,我们可以通过改变音乐选择开关状态来选择。音调发生器的音符的声音先是根据编码对应的分频系数将基准时钟分频,得到了对应频率的脉冲,扬声器被对应脉冲去激励时,就发出所想要得到的声音了。彩灯闪烁控制器部分,音符所对应的彩灯亮灭状态是根据编码将当前要播放的信号送到哪一个彩灯决定的。音调发生器和彩灯闪烁控制器是由音乐编码器控制的着,当音乐节奏时钟的一个时钟脉冲送到音乐编码器时,音乐编码器都要当前要播放的音符的编码送给音调发生器和彩灯闪烁控制器。外围模块主要包括555和7474时钟电路、LM358音频放大电路。CPLD基准时钟音乐节奏时钟彩灯闪烁节奏时钟音频放大器音乐选择开关彩灯扬声器音调发生器音乐编码器彩灯闪烁控制器图2-2 音乐播放器的工作原理图2.2.2 编程模块设计思路我们在Quartus II软件中实现我们的设计要求,通过此软件进行编程编译和仿真,之后就得出整个程序所需要的CPLD逻辑单元数。因此我们选择了内部逻辑单元数有240个EPM240型芯片,只要对程序一些合理的优化处理,就可以随心所欲的设计。并且为了能够使整个设计尽量简洁,程序中的三首歌只编写歌曲的高潮部分。2.2.3 外围电路设计思路1:在外部单独接入一个时钟信号基准时钟是为了节约CPLD内部资源, 555定时器构成的多谐振荡器电路,和7474D类触发器就能够实现彩灯闪烁时钟,四位二进制数组的四门拨码开关,每一位对应一首歌曲,通过四位开关控制哪首歌曲的播放。2:为能得到比较好的音乐效果,扬声器到最后全部系统设计完成后再做选择。3:扬声器是需要达到一定的功率才能发声,然而 CPLD内部输出的信号比较弱还不能够驱动扬声器发声,一个音频功率放大电路必须在扬声器前接好,在音频功率放大电路中接入可滑动变阻器,调节就可以改变放大器的放大倍数。3 MIDI音乐播放器芯片设计3.1 工作原理 音调发生器 Windows平台下的一种合成音乐,MIDI音乐,它的记谱方式与wave音乐相比能够减少容量,当记录一段音乐时,MIDI能够充分利用芯片的存储空间。MIDI音乐采用对乐器所奏出来的声音进行记录的数字方式,这样,再通过FM或波表合成将这样记录播放出来:通过多个频率的声音混合模拟乐曲就是FM合成;波表的合成就是将乐器的声音的采样存放在声卡波形表当中,声音播放时从波形表中取出。它的原理为:组成乐曲的每一个音符的频率值及其持续的时间是乐曲能连续演奏的两个基本数据,因此我们只要在控制端控制输出到扬声器的激励信号和每一个频率信号的持续时间长短,这样就能使扬声器发出连续的乐曲。如下图31所示,是CPLD芯片的设计原理框图。 图3-1 芯片原理3.2 模块设计3.2.1 音乐编码器模块设计这一模块包括节拍控制电路和音符产生电路。节拍控制电路可以产生乐曲所需要的全部节拍其中以乐曲中最短音符的节拍为基准。一般情况下, 1/4音符为一拍,一拍的时间为一秒,同时1/16个音符在乐谱中为最短的音符,因此为了统一四首歌曲,我们计数器的一个计数设置为1/16音符,则四个计数就是1/4音符。为了充分利用芯片的内部资源,一首歌曲只演奏高潮部分。这样4/4拍的音乐的隐形的翅膀,就是一个小节共有4拍,高潮部分共有8个小节,所以我们把计数器的范围设定为0-127,也就是128位的计数器。另外,为了在设计中实现歌曲的循环播放,当计数器设定计满时,计数器自动清零。这样,在不开开关情况下,即使不断电,歌曲也能够自动循环播放。查找表形式的形式使用音符产生电路。节拍控制产生电路接拍信号的时候,音符名称对应乐曲中音符持续时间的长短输出。具体歌曲的音符,仅仅需要通过互联网查找后,将相应的音符储存在内部即可。3.2.2 音调发生模块设计数控分频模块获得音符的频率,这个计数器的模值为8191,它是由一个初值可变的加法计数器构成数控分频电路。声音是由溢出信号发出的,而频率信号也就是计数器的溢出信号,溢出信号时计数器计满时产生的。如下表3-1,不同音符的发音频率信号在计数器输入端给定不同的初值时就可得到。计数器计满时计数初值可下面的式子得出:计数初值=8191-分频系数 需要低音时将初值设小一些,相应的分频系数大时,溢出的周期时间长,这样就可以是扬声器发出低音,音乐的乐谱变化使初值设定变化非常大,数控分频可实现自动控制分频比,音调初值和发音信号的频率成正比的关系。以上就是数控分频器自动演奏音乐的原理。表3-1为音符的分频数预制初值音名分频系数初始值低音551023089低音645453646低音740504141中音138224369中音234054786中音330345157中音428635328中音525515640中音622735918中音720256166高音119116280高音217036488高音315176674高音414326759高音512756816休止符008191音符一般选择16个音,因为它的应用最广泛。可变模值计数器可以实现频率发生器。可变模值计数器计数脉冲选用4MHz高频脉冲,因为按要求系统产生出的信号频率一般比较高。而为了最后输出到扬声器的波形为对称方波,且减少输出的偶次谐波分量,因此扬声器接受信号之前要有一个2分频的分频器。下表3-2为各音阶频率及相应的分频。表3-2 音符与频率对照表音名频率/Hz分频系数低音5391.995102低音64404545低音7493.884050中音1523.253822中音2587.333405中音3659.253034中音4698.462863中音5783992551中音68802273中音7987.762025高音11046.501911高音21174.661703高音31318.511517高音41396.921432高音51567.981275休止符081910 音调的高低是由频率的高低来决定,表3-2,为乐曲的简谱与各音名的频率对应关系。其各种频率的信号都是来源于同一基准频率分频。多为分频系数不能为小数,音阶频率一般不能是整数,要将分频系数通过四舍五入取整,综合考虑基准频率和分频系数后来加以选择,这样就可以音调没有走音。列如在48MHZ时钟下,中音1对应的频率值为523.25Hz,其分频系数此时为:48 000 000/(2*523.25)=oxb327,这样中音1通过系统时钟进行45863次分频即可得到。同样可有上式可以求出对应的分频系数,同样的方法求出其他的音频。因为5102是最大的分频系数,故满足分频要求需要采用13位二进制计数器。上表中可可以得到这样的结论:不同初始值对应各个不同音阶。加载不同的初始值即可得到不同的分频系数。采用加载初始值的时候,通过译码反馈而不将分频输出来,可以充分利用可编程逻辑器件的资源。将“0”表示成为休止符,因为在很多的音乐系统中,这个休止符是一个关键的音符。对于休止符而言,我们只要将分频系数设为0,这样扬声器就不会发声了。3.2.3 彩灯闪烁控制模块的设计彩灯闪烁控制的电路主要功能就是控制灯的亮和灭,此电路输出高低电平信号,就可以直接驱动发光二极管。在彩灯模块,我们为能够设计出不同音符相对应彩灯的亮灭,由此一样,当音乐演奏起来的时候,彩灯随着音符的变化而山洞起来。如下表3-3所显示,不同的彩灯闪亮情况对应着的不同的音符。本次设计中外围电路共接入了9个发光二极管。表3-3 不同音符对应彩灯闪烁表音名彩灯闪烁(1表示亮/ 0表示灭)低音5100100100低音6010010010低音7001001001中音1000000001中音2000000011中音3000000111中音4000001000中音5000011000中音6000111000中音7001000000高音1011000000高音2111000000高音3000111111高音4111111000高音5111000111休止符01111111113.2.4 开关选择模块设计我们采用case语句来判断外部电路输入的一个字符串,这个字符串由芯片内部处理,从而判断选择播放的歌曲是哪一首的原理来设计开关模块。上一章节的设计中,我们采用四门开关直接进行选择,case语句可以直接对一个三位二进制数组进行选择,可以设置成,001为第一首歌曲,010为第二首歌曲,101为第三首歌曲。110为第四首歌曲。3.2.5 顶层模块设计在进行顶层模块原理设计或VHDL设计时采用VHDL语言编写顶层模块设计,可以使用上面提到的所有模块,使用的组件(组件调用指令)语句的收集,然后用引脚的映射方法(端口地图语句),所有的输入和输出连接在一起,让你设计了一套完整的MIDI音乐播放芯片,简单地连接到外部电路来演示。3.3 歌曲选择歌曲选择也非常重要。因为MP3格式是流行的音乐格式,MIDI音乐播放出来时显得有些单调,而一些歌曲在用MIDI播放的时候,在音调上有一些失真,效果听起来没有那么舒适和通畅,因此我们要慎重的选着歌曲,经过很多次的耐心调试,才能调试出效果比较好。由此最后确定了我愿意、涛声依旧、隐形的翅膀三首。4 外围电路的设计4.1 时钟电路在此次设计中,不仅要提供给CPLD的4MHz晶振时钟以外(4MHZ时钟可以用有源晶振、振荡电路、用自带晶振经分频器分频得到),本次设计我们使用自带晶振经分频器分频得到。还要通过必要的外围电路接入彩灯闪烁节奏时钟。这个时钟信号是利用555定时器构成的多谐振荡电路经74LS74 D类触发器所得到。4.1.1音乐节奏时钟在上一章节中提到,我们以1/16音符为最小计数单元,而这个音符所占用的时间理论值为0.25s,所以需要一个4HZ的时钟,这个时钟可以由外部输入或者从芯片自带晶振中分频得到。通过不断调试由于音乐节奏时钟要求比较敏感,如果从外部接入产生音乐比较困弄,所以我们采用内部分频得到。4.1.2 彩灯闪烁节奏时钟产生电路NE555是一个非常普遍和用途很广的计时集成芯片,可以产生不同频率的信号脉冲,其外部只需要少数的电阻和电容。 NE555的特点有: 1. 完成特定的振荡延时作用电路只需简单的电阻器、电容器即可。延时范围由几微秒至几小时之久,范围宽。 2.它能和TTL,CMOS等逻辑电路之间相互配合,电源电压范围大。3.其输出端供给电流也很大,可直接推动很多种自动控制的负载电路。 4. 温度稳定度好,计时的精确度很高,价格便宜。 图4-1 555芯片封装Pin 1接地,一般和电路中的地线相连。 Pin 2这个脚位,是触发启动NE555时间周期。触发信号上缘电压一定要2/3 VCC,下缘须必须低于1/3 VCC 。Pin 3 是输出信号端,当555输出脚位时间周期,其电位移至比电源电压低1.7伏的高电平。最后结束的周期输出回到低电位。最大输出电流差不多在200 m A在高电位时侯 。 Pin 4 是重置端, -当这个脚位接收到一个低逻辑电位时会重置定时器,且使输出回到一个低点平。一般接到正极也可以忽略不计。 Pin 5 是控制端,可以由外部电压用来改变闸限电压和触发电压。当在稳定或者振荡的运行模式下,这个端口可以用来改变或调整输出频率。 Pin 6 是重置锁定端,重置锁定是使输出呈低态。其电压从1/3 VCC电压以下移至2/3 VCC以上时重新启动这个动作。 Pin 7 为放电端,这个接脚和输出接脚电流输出能力相同,当输出为打开时为低电平,对地显示为低阻抗,当输出为关闭时为高电平,对地显示为高阻抗。 Pin 8是555个计时器集成芯片的电源正电压端。电压范围是+4.5V至+16V。555集成定时器就是一种将模拟功能与逻辑功能非常巧妙结合在一起的混合集成电路,如图4-2所示为555定时器构成的多谐振荡器电路。由3脚输出的脉冲频率的计算公式如公式(4-1)所示。( 4-1) 图4-2音乐节奏时钟产生电路图彩灯控制时钟产生电路的频率可以调节,当调节R2值,其频率可以将在十几到几十赫兹之间变化,彩灯闪烁的速度也随之而变化,频率高一些,闪烁的就快,相反就慢一些。这个可以随意调节。4.2 音频功率放大电路扬声器两端需要一定的功率才能发出声音,然而CPLD芯片输出的音频信号强度很微小,驱动不了扬声器。音频信号通过一个音频放大电路进行放大,放大后的信号就可以驱动扬声器了。音频功率放大器主要是由集成功率放大器LM386组成的。LM386 音频功率放大器一般属于低电压消费类产品。为使外围元件尽可能的少一些,电压增益在一般在内部设20。如果在1脚和8脚之间接上一只外接电阻和电容,就可以电压增益设为想要的任何值,甚至可达到200。如果将输入端以地为参考,输出端设为电源电压的一半值,电源电压为6V事,静态功耗只有24mW,在电池供电的场合LM386特别适用。 LM386的封装形式有塑封8引线双列直插式和贴片式如图4-3。图4-3 LM386封装特性(Features):1.功耗低,约为4mA,可用于电池供电。 2.工作电压的范围,4-12V到5-18V。 3.外围元件少。 4.电压增益可调,20-200。 5.低失真度。LM386音频功率一般为0.5w,电源电压一般在4-12V之间。LM386音响功放是电源电压范围可以非常宽, 15V为最高上限,静态电流是4mA。当电源电压为12V时,负载为8欧姆时,提供功率达到几百mW的。输入阻抗一般为50K。如下图4-2所示。其中C2交流耦合电容作用是将将功率放大器的交流输出送到负载上。C1是退耦电容,R1-C3网络作用是消除高频自激振荡。 图4-4 音频功率放大电路图4.3 音乐选择开关与彩灯闪烁控制电路作为外围电路的这两个电路难度不大,如图4-5所示。音乐选择开关我们采用4门开关,当我们拨动开关来选择歌曲,开关接通时电源导通,信号这时有输入到CPLD内部来改变。9个发光二极管构成的彩灯,一共有红、绿、黄三个颜色。八个发光二极管的亮灭由高低电平控制。具体亮灭规则间第三章表3-3。 图4-5 开关电路及彩灯电路5 芯片制作及系统调试5.1 VHDL程序下载本次设计采用的是Aletra公司的MAX II系列,因此,必须用Quartus II软件系列才能对该芯片进行编译、仿真、下载等功能。我们采用JTAG线的下载模式。业内目前领先的FPGA/CPLD设计软件现在有Altera的Quartus II,具最好的开发环境,能够实现的性能非常强大。本次设计采用VHDL语言编程设计。在Quartus软件中选着VHDL语言,在vhdl文本中输入所有程序,并建立相应的工程项目,然后进行编译及仿真,编译时可以显示出当前芯片容量是否够用,若不够用,则需要对程序进行进一步优化,直到容量达到芯片标准为止。仿真结果出来且正确时,则应用软件中的下载功能,通过JTAG端口,将程序下载到芯片中。5.1.1程序仿真图 图5-1 歌曲1仿真图图5-2 歌曲2仿真图图5-3 歌曲3仿真图5.2 系统调试把程序下载到芯片内部后,将第四章所介绍的所有外围电路与CPLD连接后,形成整个系统,总电路图见附录1。而调试过程则主要根据彩灯控制时钟的频率和音频功率放大电路来进行调试的。5.2.1 彩灯控制时钟的调试彩灯控制时钟频率需要在十几道几十赫兹之间的频率。下表5-2是彩灯控制时钟调的频率记录。表5-2 彩灯控制时钟调试记录R3阻值(K)1.501.291.100.9600.8500.770彩灯时钟频率(Hz)101214161820彩灯闪烁效果慢较慢稍慢适中稍快较快经过比较和比较,我们最终将R1值定在0.960 K,用1k的电阻代替,彩灯控制时钟的频率最后定为16Hz。图5-3 彩灯控制时钟5.2.2 音频功率放大的调试调节Rw的阻值可以来改变输入到音频放大器LM358的音频信号两端的电压值,调试的结果按下表5-3所示。表5-3 音频放大调试记录Rw阻值(K)96.14.32.11.050.50.25音频放大效果声音小,无噪音声音较小,无噪声声音适中,无噪声声音稍大,无噪声声音较大,无噪声声音大,少有噪声声音大,噪声大通过比较和研究,我们将将Rw阻值可以定在1 K。结论 通过本次毕业设计让我真正认识到EDA技术的强大、cpld芯片的强大。在cpld芯片中你可以用VHDL语言编写出你所要的器件再编写相应的程序将他们连接起来,这样就能实现你想要的功能,不过程序的编程和调试将要占用大量的时间,往往一个小小的编程错误你将反复的编写、调试、仿真多次才能纠正过来。不过与单片机相比其好处可以大大的节省外围电路的设计,更加简洁方便。 在外围电路的仿真、焊接、调试中发现很多问题。例如电路的虚接、所买器件有的是损坏的等等,这是你就需要有耐心和恒心将电路分成小块进行详细的检查。各个部分调试完成还需总体调试,从这可以集体与局部的关系,局部要为集体服务,集体又将反作用于局部。深刻体会到“实践是检验真理的唯一标准”,很多事理论成立但在实践中因为环等等各种情况将产生各种不同结果,这时将要做出相应的调整,如果一味的埋头苦干将浪费你大量的时间。这就涉及到创新,成功往往是你迈出了创新这一步!本次设计根据mini音乐播放器的原理加上必要的外围电路,在前人的基础上增加三首歌曲对不同音乐的调试 ,使的设计更人性化。本次设计功能都能实现但在音质上还有不足,需要多加调试,通过本次设计不仅技术上得到锻炼,精神上也有很大的收获,这将为将来工作起到巨大的作用。参考文献1 袁慧梅,宋宇.基于CPLD的MIDI音乐播放器的设计J.微计算机信息.2006.11.2 阎石. 数字电子技术基础M.第四版.北京:高等教育出版社,1998.3 王道宪.CPLD/FPGA可编程逻辑器件应用与开发M.北京:国防工业出版社,2004.4 Zhou Zou, Wang Hongyuan, Yu Guowen. An Improved MUSIC Algorithm Implemented with High-speed Parallel Optimization for FPGA J.Huazhong University of Science and Technology. 2006.5李中发.数字电子技术M.北京:中国水利水电出版社,2001.6 袁慧梅,宋宇.MIDI音乐发生器芯片的设计J.东北师大学报(自然科学版).2006.6.7 杨雪岩. 应用CPLD开发的交通信号灯自动控制系统D. 山东:山东大学,2003.8 潘松,黄继业编著.EDA技术与VHDL语言M.第二版.北京:清华出版社,2007.9周立功.EDA试验与实践M.北京:北京航天航空大学出版社,2007.9.10 stephen Brown, Zvonko Vranesic.Fundamentals of Digital Logic with VHDL DesignM.Canada:Mc Graw Hill-Higher education,2005.11 辛艳春.VHDL硬件描述语言M.北京:国防工业出版社,2001.12 王晓丽.可编程逻辑器件CPLD/FPGA的发展J. 科技信息.2007.28.13 杨宝强,何伟,赵东晔. CPLD仿真存在的问题及解决方法J. 空进工程大学学报(自然科学版).2002.8.14 陈华容,姚胜兴. 基于CPLD的大型彩灯控制器设计J.微计算机信息.2008.24.2-2. 15 王振红.电子电路综合设计实例集萃M.北京:北京工业出版社,2008.附录1 总电路图附录2 系统实物图附录3 VHDL源代码-顶层设计模块LIBRARY IEEE;USE IEEE.STD_LOGIC_1164.ALL;-IEEE库及其程序包的使用说明ENTITY Songer ISPORT(CLK40MHZ: IN STD_LOGIC; -in定于端口输入 CLK16HZ: in std_logic; switch:in std_logic_vector(2 downto 0); SPKOUT: OUT STD_LOGIC; -out定于端口输出 lights:out std_logic_vector(8 downto 0);END; ARCHITECTURE one OF Songer IS -实体Songer的结构体one的说明COMPONENT NoteTabs -元件调用说明PORT(clk: IN STD_LOGIC; dig: in integer range 0 to 3;ToneIndex: OUT INTEGER RANGE 0 TO 15);- INTEGER表整数END COMPONENT;COMPONENT ToneTabaPORT(index: IN INTEGER RANGE 0 TO 15;Tone: OUT INTEGER RANGE 0 TO 16#1FFF#);-16#1FFF#表示十六进制1FFFEND COMPONENT;component chooseport(switch:in std_logic_vector(2 downto 0);- std_logic_vector数组 dig:out integer range 0 to 3);end component;COMPONENT SpeakeraPORT(clk: IN STD_LOGIC; Tone: IN INTEGER RANGE 0 TO 16#1FFF#; SpkS: OUT STD_LOGIC);END COMPONENT; component lightport(clk: in std_logic;Tone :in INTEGER RANGE 0 TO 15;lights:out std_logic_vector(8 downto 0);end component;component clk_div1PORT(clk_in: in std_logic; clk_out: out std_logic);end component;component ffpinport (clk4mhz:in std_logic; ft:out std_logic);end component;SIGNAL Tone: INTEGER RANGE 0 TO 16#1FFF#;- SIGNAL定义电路内部节点SIGNAL ToneIndex: INTEGER RANGE 0 TO 15;SIGNAL dig1: integer range 0 to 3;SIGNAL CLK4MHZ: STD_LOGIC;Signal a: STD_LOGIC;BEGINu1:NoteTabs PORT MAP(clk=a,dig=dig1,ToneIndex=ToneIndex);u2: ToneTaba PORT MAP(Index=ToneIndex, Tone=Tone);u3: Speakera PORT MAP(clk=CLK4MHZ,Tone=Tone,SpkS=SPKOUT);u4:light port map(clk=CLK16HZ, Tone=ToneIndex,lights=lights);u5: choose port map(switch=switch,dig=dig1);-元件连接说明u6: clk_div1 port map(clk_in=CLK40MHZ,clk_out=CLK4MHZ);u7: ffpin port map(clk4mhz=CLK4MHZ, ft=a);END;-十分频library ieee;use ieee.std_logic_1164.all;use ieee.std_logic_arith.all;use ieee.std_logic_unsigned.all;entity clk_div1 isport(clk_in: in std_logic; clk_out: out std_logic);end clk_div1;architecture b of clk_div1 issignal countQ: std_logic_vector(3 downto 0);beginprocess(clk_in)beginif(clk_inevent and clk_in=1) thenif(countQ 10) thencountQ = countQ +1;elseCountQ 0);end if;end if;end process;process(countQ)beginif(countQ 5) thenclk_out = 0;elseclk_out = 1;end if;end process;end b;-4mhz分频成4hzlibrary ieee;use ieee.std_logic_1164.all;use ieee.std_logic_arith.all;use ieee.std_logic_unsigned.all;entity ffpin is port (clk4mhz:in std_logic; ft:out std_logic);end ffpin;architecture a of ffpin issignal fm:std_logic;beginprocess(clk4mhz)variable num:integer range 0 to 1000000;b

温馨提示

  • 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
  • 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
  • 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
  • 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
  • 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
  • 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
  • 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

评论

0/150

提交评论