MIDI音乐播放器的设计毕业设计.docx

上传人:b****2 文档编号:23493373 上传时间:2023-05-17 格式:DOCX 页数:51 大小:635.97KB
下载 相关 举报
MIDI音乐播放器的设计毕业设计.docx_第1页
第1页 / 共51页
MIDI音乐播放器的设计毕业设计.docx_第2页
第2页 / 共51页
MIDI音乐播放器的设计毕业设计.docx_第3页
第3页 / 共51页
MIDI音乐播放器的设计毕业设计.docx_第4页
第4页 / 共51页
MIDI音乐播放器的设计毕业设计.docx_第5页
第5页 / 共51页
点击查看更多>>
下载资源
资源描述

MIDI音乐播放器的设计毕业设计.docx

《MIDI音乐播放器的设计毕业设计.docx》由会员分享,可在线阅读,更多相关《MIDI音乐播放器的设计毕业设计.docx(51页珍藏版)》请在冰豆网上搜索。

MIDI音乐播放器的设计毕业设计.docx

MIDI音乐播放器的设计毕业设计

 

天津职业技术师范大学

TianjinUniversityofTechnologyandEducation

 

毕业设计

 

摘要

本次音乐播放器使用的芯片是可编程逻辑器件EPM240T100C5N。

播放器的原理是基于该芯片作为控制的核心,应用EDA技术从而设计出来的。

使用在CPLD内部VHDL,运用语言编程设计出来:

一个音调发生器,一个音乐编码器,还有一个灯光闪烁控制器。

外围电路的部分包括有:

时钟电路,开关电路,灯,扬声器和其他必要电路,这样可以实现由伴随音乐播放而闪烁的彩灯三首音乐选择性播放。

可编程逻辑器件电子设计领域用途特别广,设计人员通过灵活巧妙设计,轻松灵活的设计芯片或编写相应的程序,设计出他们想要的产品。

 

关键词:

MIDI音乐播放器;VHDL语言;EDA;CPLD

ABSTRACT

Thismusicplayerisdesignedaccordingtomusicbasicprinciple,usingEDAtechnology,basedonComplexProgrammableLogicDevice(CPLD)EPM240T100CtobeacontrolcoreblockwhichproducedbyALTERAcompany.ThisdesignprogramwithVHDLlanguage,designedToneblock,lightcontrollerandmusiccoderinCPLD,andmatchedtosomenecessaryperipherycircuitssuchasclock,switch,light,loudhaileretc.,torealizefoursongschosenplaying.TheEDAapplicationsystemincludesseriesoflightschangingshinningwiththedifferenttonesinthemusic.Throughthisdesign,itcanseethatCPLD/FPGAhasawidelyapplicationinElectronicarea.Thedesignercandesignachiporasystemexpediently.

 

KeyWords:

MIDIMusicPlayer;VHDL;EDA;CPLD

1绪论

1.1选题的意义和背景

电子科学技术在二十世纪后期快速发展,其发展的周期和集成电路和计算机的快速发展有着密不可分的关系,随之而来的专用集成电路的设计的发展难度也在不停的提高和发展过快的矛盾。

新的设计方法和使用高层次的设计工具被设计出,来解决这个矛盾,即EDA(ElectronicDesignAutomation即电子设计自动化)技术。

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的FLEX10KSPARTAN系列或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年,国际乐器制造者协会在一起讨论就是为了解决电子乐器的通讯统一的问题。

其中提出的“通用合成器接口”方案,最后为“音乐设备数字接口”,也就是“MusicalInstrumentDigitalInterface”缩写为“MIDI”,公布于众。

在此之后,所有的商业用电子乐器不再有“语言障碍”,统一了乐器的后面都有五孔的MIDI插座。

MIDI其实就是MusicalInstrumentDigitalInterface的英文缩

写,即音乐设备数字接口。

这种接口技术的功能就是好比一种国际语言一样,实现电子乐器与之间的通讯和交流,这种国际语言其实也就是这个通用协议,被我们称为MIDI协议。

研究计算机方面的人把MIDI理解成一种局域网,网络的通过专用的串行电缆连接来送着每个部分的数字音乐信息。

这一协议标准制定出后,在早起只是在专业电脑音乐圈发挥作用,但是近几年电子技术的发展,尤其多媒体技术的迅猛发展,MIDI被媒体炒得火热,几乎达到了人人都知道的地步。

很多人这种接口技术作为一种电脑音乐符号。

我们将MIDI划分为两种概念,一个为“狭义的MIDI”,一个为“广义的MIDI”。

之前所说音乐设备数字接口是的狭义MIDI范围,MIDI音乐称为整个电脑音乐的统称,就是在广义上的定义。

《MIDI1.0版的细节规定》在1985年的出版又重新定义了一些控制器号码。

“日本MIDI标准委员会”与“MIDI厂商协会”等一些组织相继成立,就是为了能够确保MIDI标准从成长阶段走向了成熟阶段。

MIDI标准的成熟之后,现在的电子乐器生产厂商们挖空心思的生产出各种电子乐器,乐器样式特别多,有合成的键盘式的、像鼓机一样敲击式的、还有弦控式的MIDI吉他,甚至还有呼吸控制器。

1.1.3应用和发展趋势

中国EDA市场越来越成熟,目前国内EDA技术来看,它是朝着是普及性使用、多样化工具、广泛的应用、强大的软件功能方向发展的。

信息通信这一块,像高速宽带信息网、计算机及软件技术、信息管理、新型元器件、第三代移动通信技术、信息安全技术,网络技术、积极开展以数字技术为基础的新一代信息产品要优先发展。

我国目前积极开展计算机辅助设计、计算机辅助工程、计算机辅助工艺且要大力推进制造业信息化,、计算机辅助制造、制造资源计划。

1995年以来我国加速半导体产业的开发,为应对对亚太地区其它EDA等市场的竞争而建立了各种设计中心。

美国在EDA软件开发方面,仍然占领着集中的地位。

韩国、日本都有他们自己的ASIC设计工具,却不对外开放。

中国华大集成电路设计中心也能够提供IC设计软件。

相信将来不久会有更多更好的设计工具在各地开花结果。

1.2研究的基本内容

1.2.1编程模块的设计

本次设计利用使用QuartusII软件和Altera公司的CPLD芯片来进行设计,编写设计程序用的是VHDL语言。

芯片的存储空间有限,为能节省芯片内部资源,所以我们选择一些歌曲音律范围不是很广,节拍清晰,节奏缓慢。

采用EPM240最小系统设计,因此基准时钟所在内的全部芯片外的东西,都需要外部接入来实现,所以我们需要了解芯片的结构。

1.2.2外围电路的设计

外围电路的设计主要是靠下面的四部分构成:

1.NE555芯片构成多谐振荡电路

2.74ls74芯片构成D类放大电路

3.lm386电路构成音频放大电路

4.开关及彩灯

通过仿真软件调试确定电路中电容电阻值,然后依照电路图焊接电路。

焊接好外围电路,外围电路由稳压电源供电,由示波器测试时钟电路输出频率,调试电路使其达到所需要求。

等到程序仿真成功实现后再与外围电路相连,最后调试外围电路使得功能得到整体实现。

2总体设计概述

2.1MAXII系列CPLD

MAXII器件系列采取了一种突破性的最新型CPLD架构,是一种即用性、非易失性可编程逻辑系列。

最多能达272个用户I/O管脚,芯片的密度范围可以从240到2210个逻辑单元。

ALTERA公司MAXII系列的EPM240T100C芯片做为本次设计的核心芯片,该芯片内部240个逻辑单元,一共有100个管脚,如下图2.1所示,是EPM240T100C芯片的管脚功能和封装图。

图2-1EPM240T100C管脚封装图及管脚功能说明

2.2总体设计思路

2.1.1总体设计框图与设计思路

下图2-2,是本次设计的音乐播放器的原理框图。

这主要是由外围电路模块和CPLD芯片模块两个模块构成的。

整个模块由音调发生器、彩灯闪烁控制器和音乐编码器三个模块组成。

它的工作基本原理是先将四首歌曲的编码储存在音乐编码器内,当前需要播放哪首音乐时,我们可以通过改变音乐选择开关状态来选择。

音调发生器的音符的声音先是根据编码对应的分频系数将基准时钟分频,得到了对应频率的脉冲,扬声器被对应脉冲去激励时,就发出所想要得到的声音了。

彩灯闪烁控制器部分,音符所对应的彩灯亮灭状态是根据编码将当前要播放的信号送到哪一个彩灯决定的。

音调发生器和彩灯闪烁控制器是由音乐编码器控制的着,当音乐节奏时钟的一个时钟脉冲送到音乐编码器时,音乐编码器都要当前要播放的音符的编码送给音调发生器和彩灯闪烁控制器。

外围模块主要包括555和7474时钟电路、LM358音频放大电路。

图2-2音乐播放器的工作原理图

2.2.2编程模块设计思路

我们在QuartusII软件中实现我们的设计要求,通过此软件进行编程编译和仿真,之后就得出整个程序所需要的CPLD逻辑单元数。

因此我们选择了内部逻辑单元数有240个EPM240型芯片,只要对程序一些合理的优化处理,就可以随心所欲的设计。

并且为了能够使整个设计尽量简洁,程序中的三首歌只编写歌曲的高潮部分。

2.2.3外围电路设计思路

1:

在外部单独接入一个时钟信号基准时钟是为了节约CPLD内部资源,555定时器构成的多谐振荡器电路,和7474D类触发器就能够实现彩灯闪烁时钟,四位二进制数组的四门拨码开关,每一位对应一首歌曲,通过四位开关控制哪首歌曲的播放。

2:

为能得到比较好的音乐效果,扬声器到最后全部系统设计完成后再做选择。

3:

扬声器是需要达到一定的功率才能发声,然而CPLD内部输出的信号比较弱还不能够驱动扬声器发声,一个音频功率放大电路必须在扬声器前接好,在音频功率放大电路中接入可滑动变阻器,调节就可以改变放大器的放大倍数。

3MIDI音乐播放器芯片设计

3.1工作原理

音调发生器

Windows平台下的一种合成音乐,MIDI音乐,它的记谱方式与wave音乐相比能够减少容量,当记录一段音乐时,MIDI能够充分利用芯片的存储空间。

MIDI音乐采用对乐器所奏出来的声音进行记录的数字方式,这样,再通过FM或波表合成将这样记录播放出来:

通过多个频率的声音混合模拟乐曲就是FM合成;波表的合成就是将乐器的声音的采样存放在声卡波形表当中,声音播放时从波形表中取出。

它的原理为:

组成乐曲的每一个音符的频率值及其持续的时间是乐曲能连续演奏的两个基本数据,因此我们只要在控制端控制输出到扬声器的激励信号和每一个频率信号的持续时间长短,这样就能使扬声器发出连续的乐曲。

如下图3—1所示,是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为音符的分频数预制初值

音名

分频系数

初始值

低音5

5102

3089

低音6

4545

3646

低音7

4050

4141

中音1

3822

4369

中音2

3405

4786

中音3

3034

5157

中音4

2863

5328

中音5

2551

5640

中音6

2273

5918

中音7

2025

6166

高音1

1911

6280

高音2

1703

6488

高音3

1517

6674

高音4

1432

6759

高音5

1275

6816

休止符0

0

8191

音符一般选择16个音,因为它的应用最广泛。

可变模值计数器可以实现频率发生器。

可变模值计数器计数脉冲选用4MHz高频脉冲,因为按要求系统产生出的信号频率一般比较高。

而为了最后输出到扬声器的波形为对称方波,且减少输出的偶次谐波分量,因此扬声器接受信号之前要有一个2分频的分频器。

下表3-2为各音阶频率及相应的分频。

表3-2音符与频率对照表

音名

频率/Hz

分频系数

低音5

391.99

5102

低音6

440

4545

低音7

493.88

4050

中音1

523.25

3822

中音2

587.33

3405

中音3

659.25

3034

中音4

698.46

2863

中音5

783.99

2551

中音6

880

2273

中音7

987.76

2025

高音1

1046.50

1911

高音2

1174.66

1703

高音3

1318.51

1517

高音4

1396.92

1432

高音5

1567.98

1275

休止符0

8191

0

音调的高低是由频率的高低来决定,表3-2,为乐曲的简谱与各音名的频率对应关系。

其各种频率的信号都是来源于同一基准频率分频。

多为分频系数不能为小数,音阶频率一般不能是整数,要将分频系数通过四舍五入取整,综合考虑基准频率和分频系数后来加以选择,这样就可以音调没有走音。

列如在48MHZ时钟下,中音1对应的频率值为523.25Hz,其分频系数此时为:

48000000/(2*523.25)=oxb327,这样中音1通过系统时钟进行45863次分频即可得到。

同样可有上式可以求出对应的分频系数,同样的方法求出其他的音频。

因为5102是最大的分频系数,故满足分频要求需要采用13位二进制计数器。

上表中可可以得到这样的结论:

不同初始值对应各个不同音阶。

加载不同的初始值即可得到不同的分频系数。

采用加载初始值的时候,通过译码反馈而不将分频输出来,可以充分利用可编程逻辑器件的资源。

将“0”表示成为休止符,因为在很多的音乐系统中,这个休止符是一个关键的音符。

对于休止符而言,我们只要将分频系数设为0,这样扬声器就不会发声了。

3.2.3彩灯闪烁控制模块的设计

彩灯闪烁控制的电路主要功能就是控制灯的亮和灭,此电路输出高低电平信号,就可以直接驱动发光二极管。

在彩灯模块,我们为能够设计出不同音符相对应彩灯的亮灭,由此一样,当音乐演奏起来的时候,彩灯随着音符的变化而山洞起来。

如下表3-3所显示,不同的彩灯闪亮情况对应着的不同的音符。

本次设计中外围电路共接入了9个发光二极管。

表3-3不同音符对应彩灯闪烁表

音名

彩灯闪烁(1表示亮/0表示灭)

低音5

100100100

低音6

010010010

低音7

001001001

中音1

000000001

中音2

000000011

中音3

000000111

中音4

000001000

中音5

000011000

中音6

000111000

中音7

001000000

高音1

011000000

高音2

111000000

高音3

000111111

高音4

111111000

高音5

111000111

休止符0

111111111

3.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定时器构成的多谐振荡电路经74LS74D类触发器所得到。

4.1.1音乐节奏时钟

在上一章节中提到,我们以1/16音符为最小计数单元,而这个音符所占用的时间理论值为0.25s,所以需要一个4HZ的时钟,这个时钟可以由外部输入或者从芯片自带晶振中分频得到。

通过不断调试由于音乐节奏时钟要求比较敏感,如果从外部接入产生音乐比较困弄,所以我们采用内部分频得到。

4.1.2彩灯闪烁节奏时钟产生电路

NE555是一个非常普遍和用途很广的计时集成芯片,可以产生不同频率的信号脉冲,其外部只需要少数的电阻和电容。

NE555的特点有:

1.完成特定的振荡延时作用电路只需简单的电阻器、电容器即可。

延时范围由几微秒至几小时之久,范围宽。

2.它能和TTL,CMOS等逻辑电路之间相互配合,电源电压范围大。

3.其输出端供给电流也很大,可直接推动很多种自动控制的负载电路。

4.温度稳定度好,计时的精确度很高,价格便宜。

图4-1555芯片封装

Pin1接地,一般和电路中的地线相连。

Pin2这个脚位,是触发启动NE555时间周期。

触发信号上缘电压一定要2/3VCC,下缘须必须低于1/3VCC。

Pin3是输出信号端,当555输出脚位时间周期,其电位移至比电源电压低1.7伏的高电平。

最后结束的周期输出回到低电位。

最大输出电流差不多在200mA在高电位时侯。

Pin4是重置端,-当这个脚位接收到一个低逻辑电位时会重置定时器,且使输出回到一个低点平。

一般接到正极也可以忽略不计。

Pin5是控制端

展开阅读全文
相关资源
猜你喜欢
相关搜索

当前位置:首页 > 工程科技 > 能源化工

copyright@ 2008-2022 冰豆网网站版权所有

经营许可证编号:鄂ICP备2022015515号-1