基于MSP430单片机的MP3播放器设计洪家平,郑吉祥摘要:以MSP430F149作为核心控制器和VS1003音频解码器为基础,设计了一种带SD卡的MP3播放器,给出了MP3播放系统的软硬件设计。在硬件设计上解码器与存储器分离,增加存储容量,极大地方便了应用,同样节省了成本。在软件设计上使用条项菜单方式进行管理,这样可以方便地为它进行硬件或软件方面的升级。经过测试,该系统播放MP3效果较好。关键词:MP3播放器SPI总线解码器VS1003中图分类号:TP368.1TheDesignofMP3playerbasedonMSP430HongJia-Ping,Zhengji-xiang(CollegeofcomputerscienceandtechnologyHubeinormaluniversityHubeihuangshi435002china)Abstract:Abstract:Abstract:Abstract:ThisdesignisbasedonMSP430F149asthecorecontrollerandVS1003asaudiodecoder;itdesignsasimpleMP3playerbasedontheSDcardandgivesthehardwareandsoftware.Inthedesignofhardware,thedecoderandmemoryareseparatedwhichisincreasethestoragecapacity,Inthedesignofsoftware,itusesmenuitemstomanagesothatitcaneasilygoontheupgradesofhardwareorsoftwarewhichinordertoincreasetheotherfunctionsofthisMP3player.Aftertesting,thisMP3playercanplayahigh-qualityaudiofilesandtheeffectisalsogood.KeywordsKeywordsKeywordsKeywords:MP3player,SPIbus,decoderVS10031引言虽然现在市场的MP3款式越来越多,功能也越来越丰富,外观设计也越来越个性化和人性化,但是,现有的MP3播放器大部分还是将解码器与存储器一体化,这种设计对MP3播放器的便携性起了关键性的作用,但与此同时,也带来了一些问题,一方面存储容量不易扩展,另一方面也不利于MP3播放器在其他领域的应用。将存储器与解码器分离,是MP3播放器的发展方向,同时本系统还可以利用多余的I/O接口,只要适当增加少量硬件开销和添加相应代码,即可以在此系统基础上方便地增加如电压测量、频率测量、温度测量等功能,做到一机多用。2系统设计系统围绕MSP430F149作为主控制器和用VS1003作音频解码器来进行搭建。MSP430F149单片机是美国TI公司的MSP430X1XX系列单片机的MCU,它具有适合于各种应用的16位结构。采用“冯若依曼”结构,因此其RAM、ROM和全部外围模块都位于同一片地址空间内。而且具有超低功耗性能,同其它微控制器相比,MSP430系列可以大大延长电池的使用寿命,这对手持设备及一些要求低功耗电子产品中是非常重要的。而且它还具有灵活、强大的处理能力、丰富的存储器、外设等优点。基于MSP430的MP3播放器系统整体框图如图1所示,系统在硬件上主要分为MSP430F149单片机最小系统、VS1003音频解码模块、SD卡读写模块、液晶显示模块以及用来储存自制字库的FLASH存储器等重要模块。图1MP3播放器整体系统框图3硬件各模块的原理及实现3.1MSP430F149单片机最小系统本设计是基于MSP430F149为核心控制器的MP3播放器。当然,MSP430F149最小系统是整体设计中最核心部分,它控制着系统的各个子模块的之间的协调运行,它设计的成功与否,直接关系到整个设计能否正常运行。MSP430F149最小系统中主要由稳压模块、晶震电路以及复位电路系统和实现人机交互式按键输入四个部分组成。如图2所示。图2MSP430F14X最小系统100pFC6103R347KD21N4148R447KV33RSTMR1NC6PFI4GND3VCC2RST8RST7PFO5U6SP708SV33S8SW-PBRSTVin3Vout2GND1U5SPX1117M3-3.3C3104V33S7C2220uFR21k4007VCC1234P12USBDREQxCSxDCSX132768P6.0/A059P6.1/A160P6.2/A261P6.3/A32P6.4/A43P6.5/A54P6.6/A65P6.7/A76P1.0/TACLK12P1.1/TA013P1.2/TA114P1.3/TA215P1.4/SMCLK16P1.5/TA017P1.6/TA118P1.7/TA219P2.0/ACK20P2.1/TAINCLK21P2.2/CAOUT/TA022P2.3/CA0/TA123P2.4/CA1/TA224P2.5/Rosc25P2.6/ADC12CLK26P2.7/TA027P3.0/STE028P3.1/SIMO029P3.2/SOMI030P3.3/UCLK031P3.4/UTXD032P3.5/URXD033P3.6/UTXD134P3.7/URXD135DVss63AVss62TCK57TMS56TDI/TCLK55TDO/TDI54DVcc1AVcc64RST/NMI58VREF+7VeREF+10VREF-/VeREF-11X2OUT52X2IN53XOUT/TCLK9XIN8STE1/P5.044SIMO1/P5.145SOMI1/P5.246UCLK1/P5.347MCLK/P5.448SMCLK/P5.549ACLK/P5.650TBOUTH/P5.751TB0/P4.036TB1/P4.137TB2/P4.238TB3/P4.339TB4/P4.440TB5/P4.541TB6/P4.642TBCLK/P4.743U4MSP430F14xV33RSTUTXD0URXD0P41P44SOMI0UCLK0AIN0SIMO0P62P63UTXD1URXD1AIN1P16P1712345678P612345678P112345678P212345678P312345678P412345678P5TDOTDITMSTCKP50P51P52P53P54P55P56P57KEY6KEY1KEY2KEY3KEY4KEY5SDCARD_CSLCD_RSLCD_RWLCD_ENP42P43VS1003_RSTP20P21P22P23P24P25P26P27CS_FLASH100pFC5X28MC4S3SW-PBS4SW-PBS5SW-PBKEY1KEY2KEY3KEY4KEY5S1SW-PBS2SW-PBS6SW-PBKEY6在图2中还设计了按键电路,主要考虑是因为MP3播放器的人机交互操作,共设计了6个按键,从KEY1到KEY6,他们的按键功能分别是:确定、向下、向上、退出、音量加、音量减,按键部分电路如图2所示。3.2音频解码模块设计VS1003是由芬兰VLSI公司出品的一款单芯片的MP3/WMA音频解码芯片,其拥有一个高性能低功耗的DSP处理器核VS_DSP,5K的指令RAM,0.5K的数据RAM,串行的控制和数据输入接口,4个通用IO口,一个UART口,同时片内带有一个可变采样率的ADC、一个立体声DAC以及音频耳机放大器。其内部结构图如图3所示。图3VS1003内部结构图音频解码模块是完成MCU从SD卡里读取的数字MP3音频数据流进行解析,并图4VS1003模块系统原理图xCSxDCSxRSTDREQSCLKSISO12Y112M1MR6105IOVDDCVDDAVDDMICP1MICN2XRESET3DGND04CVDD05IOVDD06CVDD17DREQ8GPIO29GPIO310NC11NC12XDCS13IOVDD114VCO15DGND116XTAL017XTAL118IOVDD219DGND220DGND321DGND422XCS23CVDD224NC25RX26TX27SCLK28SI29SO30CVDD331TEST32GPIO033GPIO134NC35NC36AGND037AVDD038RIGHT39AGND140AGND241GBUF42AVDD143RCAP44AVDD245LEFT46AGND347LINEIN48U7vs1003mp3decode100nFC9104100KR5104DREQVS1003_RSTXDCSXCSUCLK0SIMO0SOMI0D3Diode1N414810uFC8106CVDD10uFC7106IOVDDAVDDLEFTGBUFRIGHT145P9earphoneGBUFRIGHTLEFTV33VS1003_RSTDREQ转化成模拟信号进行输出。在这里系统使用VS1003音频解码芯片来实现音乐数据流的解析,VS1003与核心控制器MSP430F149的数据通信是通过SPI总线方式进行的。VS1003主要通过串行命令接口(SCI)和串行数据接口(SDI)来接收MSP430F149控制器的控制命令和MP3的数据。通过xCS、xDCS引脚的置高、置低来确认是哪一个接口处于传送状态。对于VS1003芯片的功能控制,如初始化、软复位、暂停、音量控制、播放时间的读取等,均是通过SCI写入到特定寄存器实现的。两条SCI指令之间要通过DREQ引脚信号判断上次处理是否完成。图4是该MP3播放器的VS1003的电路原理图。3.3SD卡模块设计SD卡在现在的日常生活与工作中使用非常广泛,时下已经成为最为通用的数据存储卡。在诸如MP3、数码相机等设备上也都采用SD卡作为其存储设备。SD卡之所以得到如此广泛的使用,是因为它价格低廉、存储容量大、使用方便、通用性与安全性强等优点。既然它有着这么多优点,那么如果将它加入到单片机应用开发系统中来,将使系统变得更加出色。SD卡支持两种总线方式:SD方式与SPI方式。其中SD方式采用6线制,而SPI方式采用4线制,采用单片机对SD卡进行读写时一般都采用SPI模式。可用不同的初始化方式可以使SD卡工作于SD方式或SPI方式。在本设计中,音频数据MP3文件是以SD卡为载体。所以在电路设计中必须含有读取SD卡模块。图5为SD卡模块的系统电路原理图。DAT29DAT18DAT07GND6CLK5VCC4GND3CMD2CD/DAT31U2SDSDCARD_CSSIMO0UCLK0SOMI0V33图5SD模块系统原理图3.4液晶显示模块设计LCD3310液晶是一个48行84列的液晶显示器。其内存带有低功耗PCD8544的CMOSLCD控制驱动器,串行输入速度最高可达4.0Mbits/S,而且所有必须的显示功能集成在一块芯片上,包括LCD电压及偏置电压发生器,所以LCD3310是一款低功耗的液晶显示器。为了让LCD3310液晶能够显示4行12*12的汉字,系统开辟了一个6*84字节的缓冲区,要写液晶时,就不用直接写LCD3310的静态DDRAM了,可以先写系统为它开辟的数据缓冲区,最后再刷新修改的部分就可以显示出要显示的内容,LCD3310是以SPI方式的接口,其电路原理如图6所示。图6LCD3310显示模块原理图4MP3播放器的软件设计4.1MP3播放器软件系统流程原理:系统启动后,先初始化硬件模块。由MCU通过FAT32文件系统接口读取SD卡的一些基本信息,如容量、扇区大小、FAT表及根目录所在的启始扇区等。通过获得这些信息后,就可以找出SD卡是否有我们可以播放的音乐文件。若有音乐文件,微处理器将通过SPI总线方式读出音频信息,并将歌曲的码流信息送入到VS1003芯片中,通过VS1003芯片解码以及其内含的高质量