作者:吴社民
来源:《科技视界》 2014年第7期
吴社民
(安阳市高级技工学校,河南 安阳 455000)
【摘 要】本方案提出一种基于STM32F10X系列芯片的MP3解决方案。STM32F10x系列芯片是ST公司基于ARM公司的Cortex-M3内核设计的一款低功耗、高性能、低门数、多接口的嵌入式微处理器芯片
【关键词】STM32;SD Card;FAT32;MP3
0 引言
本方案采用ST公司的STM32F103VBT6芯片完成MP3/WMA音频文件的解码播放功能。其中STM32F103VBT6为主控芯片,采用VS1003芯片进行硬件解码,MP3/WMA格式音频文件存储在SD卡中。
由于采用新的数据压缩标准,MP3文件具有良好的音效和始于传输的体积大小。
本方案完成的功能包括:
(1)SD卡文件的读写
(2)FAT32文件系统的读写
(3)支持“上一曲/下一曲”、“顺序播放”功能
(4)支持歌词同步
1 硬件设计
1.1 器件介绍
1.1.1 Cortex-M3内核
Cortex-M3是ARM公司推出的新一代32位嵌入式微处理器内核。它采用ARM-V7-M架构,具有高性能、低功耗、少门数的特点;因此,非常适合嵌入式系统领域的设计和应用。
Cortex-M3具有一个与内核系统紧密耦合的嵌套向量终端控制器NVIC(Nested Vectored Interrupt Controller)。该NVIC可配置8级抢占式、256级优先级的1—240个外部中断,同时支持咬尾中断、迟到中断技术,大大缩短了中断响应时间。
1.1.2 STM32芯片
STM32xxx系列芯片是ST公司基于ARM Cortex-M3设计的一个32位微处理器系列。该系列处理器在继承ARM Cortex-M3内核优点的基础上,扩展了其外部接口、增强其定时器功能、增加了A/D、D/A模块。
1.1.3 VS1003音频解码芯片
VS1003是VSL公司生产的一款单片MP3/WMA/MIDI音频解码和ADPCM编码芯片。VS1003内部包含一个DSP处理器,为用户提供5KB的指令RAM和0.5KB的数据RAM,提供一个SPI接口和一个UART接口,同时支持一个高质量采样频率可变的ADC和立体声DAC模块。
1.1.4 TDA1308T数模转换芯片
TDA1308是AB类的数字音频(CD)专用耳机功放IC,具有低电压、低失真、高速率、强输出的优异特性。芯片内采用MOS管输出,可直接推动低阻抗耳机。因为封装和功能引脚位与一般的双运放相同,在特定条件下,也能当双运放使用。在低供电电压条件下,性能比一般的运放要好。因其封装体积小,低电压低功耗等特点,主要应用在便携式数字音频电路中,如discman,光驱的耳放电路等。
1.2 电路框图
按模块划分,本方案主要包括如下几个模块:SD卡模块、STM32主控模块、VS1003音频转换模块、TDA1308T数模转换模块、液晶模块、人机交互模块。
硬件电路框图如图1所示。
下面主要介绍SD卡模块、VS1003模块与STM32模块的链接。
1.2.1 SD卡与STM32
本方案中SD卡用来存储MP3/WMA格式的音频文件。STM32处理器通过SPI1接口读取SD卡中的音频文件。STM32芯片处于Master模式,SD卡处于Slave模式。
在本方案中SD卡与STM32芯片之间的数据通信采用SPI协议。
PA4:低电平有效,连接至SD卡的CS/DATA3引脚。在初始化过程中,SD卡根据该引脚电平的高低判断进入SPI模式还是SDHC模式。在STM32与SD卡的数据通信过程中,该引脚需保持为低电平。
图1 硬件电路框图
PA5:连接至SD卡的CLK引脚,用于提供STM32与SD卡数据通信过程中时钟信号。
PA6:连接至SD卡的DATA0引脚。对SD卡而言,该引脚为数据输出引脚,对STM32而言,该引脚为数据输入引脚。
PA7:连接至SD卡的CMD引脚。对SD卡而言,该引脚为数据输入引脚,对STM32而言,该引脚为数据输出引脚。
1.2.2 VS1003与STM32
本方案中VS1003用来进行MP3/WMA格式音频文件的硬件解码。STM32处理器通过SPI2接口将数据送入VS1003进行解码。STM32芯片处于Master模式,VS1003芯片处于Slave模式。
硬件电路框图如图2所示。
PB14:连接至VS1003的SO引脚。对STM32而言,该引脚为数据输入引脚;对VS1003而言,该引脚为数据输出引脚。
PB15:连接至VS1003的SI引脚。对STM32而言,该引脚为数据输出应交;对VS1003而言,该引脚为数据输入引脚。
PB13:连接至VS1003的CLK引脚,用于提供VS1003与STM32之间数据通信时所需的始终信号。
PB12:连接至VS1003的CS引脚,低电平有效。在STM32与VS1003通信过程中,该引脚需保持低电平。
2 软件设计
2.1 程序设计思想
本方案程序设计的总体思路为:STM32芯片通过SPI1接口从SD卡中读取以FAT32文件系统个格式存储的MP3/WMA音频文件,然后将数据文件通过SPI2接口送至VS1003进行解码,解码结果通过TDA1308T芯片的转换送往耳机播放。(下转第146页)
(上接第99页)2.2 应用程序设计
应用程序流程图,如图3所示。
3 结束语
本方案提出一种基于STM32F103VBT6的MP3/WMA音频文件播放设计模型。硬件上,简要介绍了各个模块的电路连接和工作流程;软件上,介绍了程序组织模型和应用程序设计流程。整个系统设计简明、简单、可靠性强,具有很高的性价比。
【参考文献】
[1]STM32F103X Datasheet Rev1[OL].pdf www.st.com.
[2]STM32F10X Reference Manual V8[OL].pdf www.st.com.
[3]The Definitive Guide to The ARM Cortex-M3.pdf[OL].
[4]李宁.ARM开发工具KeilMDK使用入门[M].北京:北京航空航天大学出版社,2008.
[5]李宁.基于MDK的STM32处理器开发应用[M].北京:北京航空航天大学出版社,2008.
[责任编辑:曹明明]
因篇幅问题不能全部显示,请点此查看更多更全内容