首页
|
新闻
|
新品
|
文库
|
方案
|
视频
|
下载
|
商城
|
开发板
|
数据中心
|
座谈新版
|
培训
|
工具
|
博客
|
论坛
|
百科
|
GEC
|
活动
|
主题月
|
电子展
注册
登录
论坛
博客
搜索
帮助
导航
默认风格
uchome
discuz6
GreenM
»
FPGA/CPLD可编程逻辑
» 基于CPLD的MIDI音乐播放器的设计
返回列表
回复
发帖
发新话题
发布投票
发布悬赏
发布辩论
发布活动
发布视频
发布商品
基于CPLD的MIDI音乐播放器的设计
发短消息
加为好友
pengpengpang
(pengpengpang)
当前离线
UID
1023229
帖子
6106
精华
0
积分
3055
阅读权限
90
来自
中国
在线时间
156 小时
注册时间
2013-12-20
最后登录
2016-7-3
论坛元老
UID
1023229
来自
中国
1
#
打印
字体大小:
t
T
pengpengpang
发表于 2015-6-28 22:22
|
只看该作者
基于CPLD的MIDI音乐播放器的设计
音乐播放器
,
微软雅黑
0 引言
大规模可编程逻辑器件CPLD和FPGA是当今应用最广泛的两类可编程逻辑器件,电子设计工程师利用它可以在办公室或实验室设计出所自己所需要的专用芯片和专用产品,从而大大缩短了产品上市时间,降低了开发成本。此外,可编程逻辑器件还具有静态可重复编程和动态在系统重构的特性,使得硬件的功能可以像软件一样通过编程来修改,这样就极大的提高了电子系统设计的灵活性和通用性。
1 工作原理
MIDI音乐是Windows下的一种合成音乐,由于它通过记谱的方式来记录一段音乐,因此与wave 音乐相比,它可以极大的减少存储容量。MIDI音乐的基本原理:组成乐曲的每一个音符的频率值(音调)及其持续的时间(音长)是乐曲能连续演奏的两个基本数据,因此只要控制输出到扬声器的激励信号的频率的高低和每个频率信号持续时间,就可以使扬声器发出连续的乐曲。
图1是本文设计的音乐播放器的原理框图。该音乐编码器内储存着预先设定的四首歌曲的编码,通过改变音乐选择开关的状态可以决定当前要播放哪首音乐。音乐编码器控制着音调发生器和彩灯闪烁控制器,每当音乐节奏时钟送给音乐编码器一个时钟脉冲时,音乐编码器就将当前要播放的音符的编码送给音调发生器和彩灯闪烁控制器。音调发生器根据编码对应的分频系数将2MHz的基准时钟分频,得到当前要播放的音符所对应频率的脉冲,再用这个脉冲去激励扬声器,就可以得到这个音符的声音。彩灯闪烁控制器根据编码将当前要播放的音符对应的彩灯亮灭状态送给彩灯。
图1 音乐播放器的工作原理框图
其中音调发生器、音乐编码器、彩灯控制器这三项功能可由ALTERA公司可编程逻辑器件(CPLD)EPF10LC84-4芯片,采用VHDL语言来完成[1-3]。音频放大器、彩灯、各种时钟可由具体的外围电路来实现。
2.MIDI音乐发生器芯片的设计
本设计的关键是要准确地产生音乐中各音符所对应的频率信号,并根据乐曲要求按节拍输出。为了减少系统复杂性,本设计根据可变模值计数器的原理,按照乐曲要求定时改变计数器的预置数,即可产生乐曲所需要的频率信号。芯片原理框图如图2所示,芯片是采用VHDL硬件描述语言,在MUXPLUS II环境下设计的。
图2 芯片原理图
图中节拍控制电路产生节拍定时信号;音符产生电路按节拍要求产生乐曲所需要的音符;预值数产生电路受音符控制,产生该音符频率相对应的预置数,送计数器的置入数据输入端。音符频率发生器根据不同的预置数产生相应的频率信号,从而完成乐曲的演奏功能。
3 外围电路设计
3.1 音乐节奏时钟和彩灯闪烁节奏时钟产生电路
我们需要的音乐节奏时钟是一个4Hz左右的时钟脉冲,其频率很低,利用555定时器构成的多谐振荡器即可产生,如图3所示。
555集成定时器是一种将模拟功能与逻辑功能巧妙结合在一起的混合集成电路,555定时器构成的多谐振荡器电路图如图3所示,由3脚输出的脉冲频率的计算公式为:
改变可变电阻的阻值就可以改变输出频率。我们要求输出的频率为4Hz,C=47Uf,所以R1+R2应为7.66K。
音乐节奏时钟对整个音乐播放器的作用至关重要,要求音乐节奏时钟脉冲非常稳定,这样才能保证音乐的流畅播放,否则播放出来的将是一段杂乱无章的声音,就不是音乐而是噪声了。为了使输出的脉冲比较稳定、减少外界干扰,将输出的脉冲再经过D触发器(7474)后送给CPLD芯片,因此555定时器件脚输出的脉冲频率应提高一倍(即8Hz),这样R1+R2的阻值应为3.83K。
图3 音乐节奏时钟产生电路图
彩灯闪烁节奏时钟产生电路与音乐节奏时钟产生电路原理相同,也是用555定时器构成的多谐振荡器来实现,只是彩灯控制时钟产生电路的频率要比音乐节奏时钟产生电路的频率高,在十几到几十赫兹之间,它的R2值不定,可根据自己的要求来定,如果想要彩灯闪烁快点则频率就高一些,想闪烁频率慢就低一些。
3.2 音频功率放大电路
由CPLD芯片输出的音频信号很微弱,不能直接去驱动扬声器,因此需要一个音频放大电路对输出的音频信号进行放大,然后再去驱动扬声器。我们采用由集成功率放大器LM386组成的音频功率放大器,如图4所示。其中,C2是交流耦合电容,将功率放大器的交流输出送到负载上,输出信号通过Rw接到LM386的同相端。C1是退耦电容,R1-C3网络起到消除高频自激振荡作用。
图4 音频功率放大电路图
3.4 音乐选择开关与彩灯闪烁控制电路
这两部分电路很简单,在音乐选择开关电路中(图5)S1断开时A端为高电平,闭合时A端为低电平,S2 断开时B端为高电平,闭合时B端为低电平,通过S1、S2的开与关来改变A、B的状态,从而实现对四首音乐的选择。
彩灯闪烁控制电路(图6)是由发光二极管构成的,A、B、C、D、E、F、G、H八端电平的高低变化控制着八个发光二极管的亮灭。
4 系统调试
把以上各部分电路与预先设计好的MIDI音乐发生器芯片(EPF10LC84-4)连接起来,形成整个系统。
系统调试主要是对音乐节奏时钟、彩灯控制时钟的频率和音频功率放大电路进行调试。
1.音乐节奏时钟的调试:音乐节奏时钟理论要求时4Hz,在实际的演奏过程中频率稍微高于4Hz效果较好,通过改变R1的电阻来改变音乐节奏时钟,从而改变音乐节奏。表1是音乐节奏时钟调试过程中的记录。
表1 音乐节奏时钟调试记录
经过比较,最终将R1的阻值定在3.4 KΩ,音乐节奏时钟的频率为4.5 Hz。
2.彩灯控制时钟的调试:彩灯控制时钟频率要求在十几到几十赫兹之间。表2是彩灯控制时钟调试过程中的记录。
表2 彩灯控制时钟调试记录
经过比较,最终将R1的阻值定在0.958 KΩ,彩灯控制时钟的频率为16Hz。
3.音频功率放大的调试:通过调节RW的阻值来改变输入到音频放大器LM386的音频信号的电压值,调试结果如表3。
表3 音频放大调试记录
参考文献
[1] 赵曙光,郭万有,杨颂华.可编程逻辑器件原理、开发与应用,西安:西安电子科技大学出版社,2000:
http://www.51kaifa.com
[2] 曾繁泰,陈美金.VHDL程序设计.第二版,北京:清华大学出版社,2001:
[3] 卢毅,赖杰.VHDL与数字电路设计,北京:北京科学出版社,2001:
收藏
分享
评分
记录学习中的点点滴滴,让每一天过的更加有意义!
回复
引用
订阅
TOP
返回列表
电商论坛
Pine A64
资料下载
方案分享
FAQ
行业应用
消费电子
便携式设备
医疗电子
汽车电子
工业控制
热门技术
智能可穿戴
3D打印
智能家居
综合设计
示波器技术
存储器
电子制造
计算机和外设
软件开发
分立器件
传感器技术
无源元件
资料共享
PCB综合技术
综合技术交流
EDA
MCU 单片机技术
ST MCU
Freescale MCU
NXP MCU
新唐 MCU
MIPS
X86
ARM
PowerPC
DSP技术
嵌入式技术
FPGA/CPLD可编程逻辑
模拟电路
数字电路
富士通半导体FRAM 铁电存储器“免费样片”使用心得
电源与功率管理
LED技术
测试测量
通信技术
3G
无线技术
微波在线
综合交流区
职场驿站
活动专区
在线座谈交流区
紧缺人才培训课程交流区
意见和建议