基于单片机的MP3播放器设计
扫描二维码
随时随地手机看文章
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所示。
[!--empirenews.page--]
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所示。
[!--empirenews.page--]
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,实现解码。在此采用的方法一是提高系统的时钟;二是通过修改软件,精简程序,来加快了系统的传输速率,使播放音乐更加流畅。