摘要:以MSP430F149作为核心控制器,结合VS1003音频解码器,设计了一种带SD卡的MP3播放器,给出了MP3播放系统的软硬件设计。在硬件设计上,解码器与存储器分离,增加了存储容量;在软件设计上,使用条项菜单方式进行管理,可以方便地进行硬件或软件的升级。经过测试,该 MP3播放器播放效果较好。
关键词:MP3播放器;SPI总线;MSP430F149;VS1003
引言
虽然现在市场上MP3的款式越来越多,功能越来越丰富,外观设计也越来越个性化和人性化,但是,现有的MP3播放器大部分还是将解码器与存储器一体化。这种设计对MP3播放器的便携性起了关键性的作用,但与此同时也带来了一些问题:一方面存储容量不易扩展,另一方面也不利于MP3播放器在其他领域的应用。本系统将存储器与解码器分离,可以利用多余的I/O接口,只要适当增加少量硬件开销并添加相应代码,即可以在此系统基础上方便地增加电压测量、频率测量、温度测量等功能,做到一机多用。
1 系统设计
MP3播放器系统结构框图如图1所示。系统在硬件上主要包括MSP430F149单片机最小系统、音频解码模块、SD卡读写模块、液晶显示模块以及用来存储自制字库的Flash存储器等重要模块。
MSP430F149是美国TI公司的MSP430系列单片机,它具有适合于各种应用的16位结构。采用“冯·诺依曼”结构,因此其RAM、ROM和全部外围模块都位于同一片地址空间内。而且具有超低功耗性能,同其他微控制器相比,MSP430系列可以大大延长电池的使用寿命,这对手持设备及一些要求低功耗电子产品中是非常重要的。此外,它还具有灵活、强大的处理能力、丰富的存储器、外设等优点。
2 硬件模块的具体实现
2.1 MSP430F149单片机最小系统
MSP430F149最小系统是整体设计中最核心的部分,控制着系统各个子模块之间的协调运行。它设计的成功与否,直接关系到整个设计能否正常运行。如图 2所示,MSP430F149最小系统中主要由稳压模块、晶振电路、复位电路以及人机交互式按键输入4部分组成。SPX1117M3-3.3是系统稳压芯片,为系统提供稳定的3.3 V电源。SP708S是系统管理芯片,与手动复位开关一起,主要起可靠复位作用。考虑到MP3播放器的人机交互操作,共设计了6个按键(KEY1到 KEY6)。它们的按键功能分别是:确定、向下、向上、退出、音量加、音量减。
2.2 音频解码模块
VS1003是芬兰VLSI公司生产的单芯片MP3/WMA音频解码芯片。其拥有一个高性能、低功耗的DSP处理器核VSDSP,5 KB的指令RAM,O.5 KB的数据RAM,串行的控制和数据输入接口,4个通用I/O口,1个UART口,1个可变采样率的ADC,1个立体声DAC以及音频耳机放大器。其内部结构图如图3所示。
音频解码模块对单片机从SD卡里读取的数字MP3音频数据流进行解析,并转换成模拟信号进行输出。图4是该MP3播放器的音频解码模块电路原理图。
采用VS1003音频解码芯片来实现音乐数据流的解析。VS1003与核心控制器MSP430F149的数据通信是通过SPI总线方式进行的。 VS1003通过串行命令接口(SCI)和串行数据接口(SDI)来接收MSP430F149的控制命令和MP3的数据;通过xCS、xDCS引脚的置高/低来确认是哪一个接口处于传送状态。VS1003的功能控制,如初始化、软复位、暂停、音量控制、播放时间的读取等,均是通过SCI口写入特定寄存器实现的。两条SCI指令之间要通过DREQ引脚信号判断上一次处理是否完成。
2.3 SD卡模块
SD卡价格低,存储容量大,使用方便,通用性与安全性强,MP3、数码相机等设备上都采用SD卡作为其存储设备。
SD卡支持两种总线模式:SD模式与SPI模式。其中,SD模式采用6线制,而SPI模式采用4线制。采用单片机对SD卡进行读写时一般都采用SPI模式。可用不同的初始化方式使SD卡工作于SD或SPI模式。
本设计中,音频数据MP3文件以SD卡为载体,所以设计电路时必须含有读取SD卡模块。图5为SD卡模块(SPI模式)的接口电路。
2.4 液晶显示模块
LCD3310液晶是一个48行84列的液晶显示器。其带有低功耗PCD8544的CMOS LCD控制驱动器,串行输入速度最高可达4.O Mb/s。为了让LCD3310液晶能够显示4行12×12的汉字,系统开辟了一个6×84字节的缓冲区。写液晶时就不用直接写入LCD3310的静态 DDRAM了,可以先写入系统为它开辟的数据缓冲区,最后再刷新修改的部分就可以显示出要显示的内容。LCD3310的接口采用SPI模式,其电路如图6 所示。
3 软件设计
图7是MP3播放器的软件流程。系统启动后,先初始化硬件模块。由单片机通过FAT32文件系统接口读取SD卡的一些基本信息,如容量、扇区大小、FAT 表以及根目录所在的起始扇区等。通过这些信息就可以找出SD卡是否有可以播放的音乐文件。若有,单片机通过SPI总线方式读出音频信息,并将歌曲的码流信息送入到VS1003芯片中,通过VS1003解码芯片及其内含的高质量立体声DAC和耳机驱动电路,实现MP3歌曲的播放功能。在按键的控制下,通过 LCD3310中菜单选项的选择,实现对歌曲选择及音量控制等功能;在播放的同时,LCD3310上显示的信息除歌曲名称外,还包括进度和音量等。
经过运行测试,系统可以正常流畅地播放出320 kb/s的高音质MP3音乐文件,而且在使用500 mA锂电池的情况下,可以连续正常地播放长达10个小时。可见,其功耗比较低。
结语
本着低成本、实用性强的原则,设计了一种解码器与存储器分离的MP3播放器,可以流畅地播放出高音质的MP3文件。同时,只要适当增加少量硬件开销并添加相应代码,即可以利用多余的I/O口在此系统基础上方便地增加如电压测量、频率测量、温度测量等功能,真正做到一机多用。