DIY编程器网

 找回密码
 注册

QQ登录

只需一步,快速开始

扫一扫,访问微社区

查看: 112|回复: 0
打印 上一主题 下一主题

基于单片机的MP3播放器设计

[复制链接]
跳转到指定楼层
楼主
发表于 2012-1-16 16:34:53 | 只看该作者 回帖奖励 |倒序浏览 |阅读模式
0 引言
??? 随着电子技术的发展,MP3播放器是目前市场上流行的消费类数码产品之一,具有大容童、高音质、小巧便携等特点.而倍受广大消费者的青睐。本文采用ETC公司的微控制器STC89C58RD+,结合解码芯片VS1003、USb接口芯片CH375、LCD等外围设备设计并实现了MP3播放器。主要功能有:播放VS1003支持的所有音频文件,包括MP3,WMA,WAV文件,且音质非常好,具有按键控制播放上一首/下一首、音量增减等,可通过LCD显示歌曲名字和播放状态信息等功能。

1 硬件系统设计
???
系统工作原理框图如图1所示。系统启动后,单片机通过USb接口芯片CH375,从U盘中获取MP3格式文件的数据,并存入片内RAM进行缓冲,然后单片机定时将数据从缓冲区送到MP3音频解码芯片VS1003,实现解码并输出音频信号到耳机或者有源音响输出。用户可以通过键盘实现“启动”、“上一曲”、“下一曲”、“音量控制”及“停止”等功能,并将播放状态信息通过LCD显示。系统框图如图1所示。




1.1 单片机读取MP3数据模块
???
数据读取模块包括单片机控制器,USb串行数据转换成8位并行数据CH375芯片和MP3格式数据存储U盘3部分。
1.1.1 单片机控制器
???
采用宏晶公司的STC89C58RD+单片机,该单片机最高可工作于33 MHz时钟,具有32 Kb的FLASH,1 Kb的内部RAM,引脚与指令系统均与51单片机兼容。本设计中,单片机工作在30 MHz的系统时钟下,能满足系统对数据带宽的要求。
1.1.2 USb接口芯片CH375
???
CH375是一个USb总线通用接口电路,支持HOST主机方式和SLAVE设备方式。CH375内部集成了PLL倍频器、主从USb接口SIE、数据缓冲区、被动并行接口、异步串型接口、命令解释器、控制传输的协议处理器、通用的固件程序等。在本地端,CH375具有8位数据总线和读、写、片选控制线及中断输出,可以方便地挂接到单片机、DSP等控制器的系统总线上,并内置海量存储固件。CH375的USb主机方式支持各种常用的USb全速设备,外部单片机、DSP、MCU可以通过CH375按照相应的USb协议与USb设备通信,支持常用的12 Mb/s全速USb设备。
1.1.3 工作原理
???
利用单片机实现将U盘中的音频数据经CH375的USb转串行接口传送至单片机内部RAM缓冲,以等待解码。其中CH375是一款USb总线的通用接口芯片,可以方便地挂接到单片机的控制总线上,同时CH375的USb主机方式支持常用的USb全速设备,外部单片机可以通过CH375按照相应的USb通信协议与USb设备通信。
??? 由于CH375内置了USb通信协议,省去了对USb通信协议的了解,单片机可以直接调用API库读写U盘中的文件数据,硬件上只需在51单片机系统中增加一个CH375芯片,综合成本较低。CH375支持全速的USb-HOST主机接口,外围元器件只需要少量晶体和电容,便可支持5 V电源电压和3.3 V电源电压,CH375芯片还支持低功耗模式,正常工作时,需要外部为它提供12 MHz的时钟信号。电路原理如图2所示。



                          
                       
                          
                               

1.2 音频解码模块
???
音频解码模块包括2大部分单片机控制器和专用MP3音频解码芯片VS1003。
1.2.1 音频解码芯片VS1003
???
VS1003是一个单片MP3/WMA/MIDI音频解码器和ADPCM编程器。它包含一个高性能、自主产权的低功耗DSP处理器核VS_DSP,并提供5Kb的指令RAM和0.5 Kb的数据RAM。产生MIDI/SP-MIDI文件,内含高性能片上立体声数/模转换器,两声道,无相位差,在播放音频文件时不需要外加驱动电路,VS1003内部自带耳机功放,只要调试好电路系统,接入耳机就可以听到美妙的音乐。同时,VS1003为用户提供5.5 Kb的片上RAM,并支持SPI串行通信的控制数据接口。
1.2.2 工作原理
???
系统上电启动后,由单片机控制将存储于U盘中歌曲的MP3数据格式流信息通过CH375USb接口芯片送入到VS1003芯片中,通过VS1003芯片解码及其内含高质量的立体声DAC和耳机驱动电路,实现MP3歌曲的播放,在按键的控制下,可实现对歌曲的选择、音量增减等功能。VS1003的所有数据和控制命令均通过SPI总线接口实现,由于设计中所采用的单片机没有SPI接口,因此,在设计中采用单片机的3个I/O口来模拟SPI时序,以达到实现SPI通信功能。电路如图3所示。




1.3 键盘及显示模块
???
键盘采用的是独立按键,与单片机P30~P34相连接,实现“开始”、“下一曲”、“上一曲”、“音量+”和“音量-”等5个功能。播放的状态由Nokia5110液晶显示,该液晶为84×48点阵的LCD,可以显示4行汉字,并支持串行通信协议,传输速率高达4 Mb/s,可全速写入显示数据,方便地与单片机进行通信。该液晶外部信号线仅有9条,节约本来就紧张的I/O口,其串行通信模式下的控制时序如图4所示。



                          
                       
                          
                               

1.4 电源模块
???
系统采用的是5 V直流电源供电,并通过5 V转3.3 V的SPX1117-3.3 V芯片给单片机,VS1003解码器和USb专用芯片CH375模块供电,其电源电路原理如图5所示。





2 软件系统设计
???
本系统单片机的软件设计采用C51语言编写,源程序共分3个部分,即:单片机驱动CH375程序,单片机控制VS1003实现音频解码程序,按键和显示驱动程序。在编写CH375模块部分的程序时,用到了从南京沁恒公司官方网站下载的CH375的API函数库“CH375HF4.LIb”文件,简化了程序设计。因为单片机的硬件资源十分有限,在硬件调试过程中,出现在传送频率较高的歌曲时,由于采样频率低,带宽不够,而造成声音失真。所以在系统的开发过程中,应优化程序,提高运行速度,保证播放歌曲的流畅,其软件流程如图6所示。

3 结语
???
设计的MP3播放器采用51单片机加VS1003解码,并通过CH375USb专用芯片进行数据读取,这种组合方式相比于采用AVR或者MSP430系列的高端单片机,达到的播放效果也毫不逊色。系统的整个设计难点在于单片机如何高效的从U盘中读取数据,并以一定的时序将缓冲的数据传输给VS1003,实现解码。在此采用的方法一是提高系统的时钟;二是通过修改软件,精简程序,来加快了系统的传输速率,使播放音乐更加流畅。
                          
                       
                          
                               
分享到:  QQ好友和群QQ好友和群 QQ空间QQ空间 腾讯微博腾讯微博 腾讯朋友腾讯朋友 微信微信
收藏收藏 分享分享 支持支持 反对反对
您需要登录后才可以回帖 登录 | 注册

本版积分规则

小黑屋|文字版|手机版|DIY编程器网 ( 桂ICP备14005565号-1 )

GMT+8, 2025-8-9 12:24 , 耗时 0.082660 秒, 18 个查询请求 , Gzip 开启.

各位嘉宾言论仅代表个人观点,非属DIY编程器网立场。

桂公网安备 45031202000115号

DIY编程器群(超员):41210778 DIY编程器

DIY编程器群1(满员):3044634 DIY编程器1

diy编程器群2:551025008 diy编程器群2

QQ:28000622;Email:libyoufer@sina.com

本站由桂林市临桂区技兴电子商务经营部独家赞助。旨在技术交流,请自觉遵守国家法律法规,一旦发现将做封号删号处理。

快速回复 返回顶部 返回列表