李 伟,张 真,范文豪
(黄河科技学院,河南 郑州450063)
基于STM32微控制器的mp3播放器设计
李 伟,张 真,范文豪
(黄河科技学院,河南 郑州450063)
介绍了一种音乐播放器的设计方法,该播放器是基于Cortex⁃M3内核的STM32微控制器的MP3播放器。Cor⁃tex⁃M3是ARM公司为要求低成本、低功耗、高性能的嵌入式应用专门设计的内核。结果表明该系统可以播放MP3和WAV音乐文件,播放同时显示歌曲名字,歌手和专辑名称。
音乐播放器;STM32;MP3播放器;Cortex⁃M3
随着科技发展,MP3播放器早已摆脱了单纯听音的时代,而朝着多功能一体化方向不断发展。MP3从一个音乐播放载体逐渐演变为数码多功能产品。MP3是MPEG Audio Layer3的简称,其通过音频压缩技术,可以将音乐压缩,从而降低了音乐文件的体积。尽管MP3是一种有损压缩,其压缩过后还能保持很好的音质。正是因为MP3体积小、音质高的特点,使得MP3格式的音乐在网络上广为传播。市面上的中低端MP3都是采用的单芯片解决方案,而本系统采用双芯片解决方案,理论上要比市场上的中低端质量要好。
该设计是基于STM32微控制器所设计的MP3播放器,MP3文件储存在SD卡上,由STM32读取数据并送到VS1003音频解码模块解码输出。同时STM32驱动液晶模块显示当前播放信息,提供播放歌曲名显示。
整个系统硬件模块分为两个模块:STM32开发板、VS1053音频解码模块。
如图1所示STM32开发板由供电电路、时钟源电路、SPI存储电路、JTAG接口和复位电路、SD卡插座、USB接口、液晶显示模块及与音频解码芯片的连接电路。VS1053是单独的模块,作用是音频解码。
图1 硬件电路
1.1 供电电路设计
供电电源采用AMS1117⁃3.3。该电源的特点:三端可调或固定电压3.3 V输出电流为1 A线路调整率。如图2所示,输入5 V,提供3.3 V的固定电压输出,为了降低电磁干扰,C7~C10滤波后为CPU提供电源,R8为DGND与AGND的连接,R9和D5为LED电源指示。
1.2 SPI存储电路
该设计采用M25P16(16 MB)作为存储电路。CPU采用SPI1端口PA7⁃SPI1⁃MOSI(P32)、PA6⁃SPI1⁃MISO
(P31)、PA5⁃SPI1⁃SCK(P30)、PA4⁃SPI1⁃NSS(P29)控制读/写访问,SPI1地址为0x4000 3800~0x4000 3BFF。SPI存储电路见图3。
图2 供电电路
1.3 JTAG接口
该接口用于测试芯片的电气特性,检测芯片是否有问题。如图4所示为JTAG接口电路。
图3 SPI存储电路
图4 JTAG接口电路
1.4 SD卡接口
本设计采用的MicroSD卡,卡座接口为8脚(见图5),与CPU的SD卡接口连接分别为SD卡座CPU 1~8:SDIO⁃D2 PC10⁃SDIO⁃D2(P78);SDIO⁃D3 PC11⁃SDIO⁃D3(P79);SDIO⁃CMD PD2⁃SDIO⁃CMD(P83);+3 V+3 V;SDIO⁃CK PC12⁃SDIO⁃CK(P80);GND GND;SDIO⁃D0 PC8⁃SDIO⁃D0(P65);SDIO⁃D1 PC9⁃SDIO⁃D1(P66)SDIO。地址为0x4001 8000~0x4001 83FF。
图5 SD卡座
1.5 Cortex⁃M3处理器的设计
Cortex⁃M3具有调试成本低,中断延短,门数目少的特点,是一种低功耗处理器,主要应用于有快速中断响应能力的深度嵌入式设备中。所以该设计采用Cortex⁃M3作为处理器。
Cortex⁃M3处理器整合了以下组件:
(1)处理器内核,ARMv7⁃M:Thumb⁃2 ISA子集,包含所有基本的16位和32位Thumb⁃2指令。硬件除法指令,SDIV和UDIV(Thumb⁃2指令)处理模式(Han⁃dler Mode)和线程模式(Thread Mode)。
(2)嵌套向量中断控制器(NVIC)。为了实现低延迟中断处理,让嵌套向量中断控制器和处理器紧密结合,并且具有以下特性:
①优先级分组。分为占先中断等级和非占先中断等级。
②优先级位可配置为3~8位。
③外部中断可配置为1~240个。
④中断优先级可动态地重新配置。
(3)存储器保护单元(MPU)的主要作用是对存储器进行保护,具有以下特性:
① 子区禁止功能(SRD),实现对存储器区的有效使用。
②可使能背景区,执行默认的存储器映射属性。
③8个存储器区。
1.6 Cortex⁃M3的层次和实现
Cortex⁃M3处理器的组件存在于两个层次等级中。因为ROM、SW/JTAG⁃DP、TPIU和ETM组件是可选的,这4个组件位于Cortex⁃M3处理器的外面,执行和使用它们的方式非常灵活。可能的系统实现的选项有TPIU和SW/JTAG⁃DP。
(1)TPIU的实现选项。如果系统中有ETM,则会含有TPIU格式程序,否则就不包含该格式程序。一个多内核的实现可使用单个或多个TPIU来跟踪。ARM TPIU模块可以用兼容TPIU的指定合作伙伴的Core⁃Sight取代。在生产设备中,TPIU可以移除。
(2)SW/JTAG⁃DP的实现选项。实现可以含有SW⁃DP或JTAG⁃DP中的任一个或两者都有。ARM SW⁃DP可以被兼容SW⁃DP的指定合作伙伴的CoreSight取代。ARM JTAG⁃DP可以被兼容JTAG⁃DP的指定合作伙伴的CoreSight取代。SW⁃DP或JTAG⁃DP可以包含指定合作伙伴的测试接口。
1.7 VS1003的主控单元设计
1.7.1 VS1003芯片介绍
解码芯片用的是VLSI的VS1003。VS1003是由荷
兰VLSI公司出品的一款单芯片MP3/WMA/MIDI/WAV音频解码和ADPCM编码芯片。VS1003的特性如下:能解码音频文件;支持MP3和WAV;对话筒输入或线路输入的音频信号进行IMAADPCM编码;低功耗;单时钟操作12~13 MHz;高低音控制;内含能驱动30 Ω负载的耳机驱动器。
VS1003通过SPI接口来接收输入的音频数据流,它可以是一个系统的从机,也可以作为独立的主机。这里只把它当成从机使用。通过SPI口向VS1003不停地输入音频数据,它就会自动解码,然后从输出通道输出音乐,这时接上耳机就能听到所播放的歌曲。VS1003音频解码模块是一个通用的解码模块。
1.7.2 控制VS1003播放歌曲步骤
(1)复位VS1003。这里包括了硬复位和软复位,是为了让VS1003的状态回到原始状态,准备解码下一首歌曲。建议在每首歌曲播放之前都执行一次硬件复位和软件复位,以便更好的播放音乐。
(2)配置VS1003的相关寄存器;这里配置的寄存器包括VS1003的模式寄存器(MODE)、时钟寄存器(CLOCKF)、音调寄存器(BASS)、音量寄存器(VOL)。
(3)发送音频数据。当经过以上两步配置以后,需要往VS1003里面送音频数据了,只要是VS1003支持的音频格式,直接往里面送就可以,VS1003会自动识别,并进行播放。不过发送数据要在DRE信号的控制下有序的进行,不能乱发。这个规则很简单:只要DREQ变高,就向VS1003发送32 B。然后继续等待DREQ变高,直到音频数据发送完。
2.1 主程序流程图
主程序完成开发板的初始化和文件系统的初始化,初始化后MCU先把音乐文件信息比如歌曲名字、作者和专辑名称显示出来。然后开始向VS1003模块发送32 B的音乐数据,VS1003开始解码音乐数据,解码后VS1003把DREQ拉高,MCU判断DREQ为高后继续发送32 B数据,直到把音乐数据发送完毕,之后系统进入死循环,如图6所示。
2.2 开发板初始化
开发板初始化程序,先是系统时钟的初始化,然后初始化LED为后面的电亮做准备,然后初始化LCD,为显示做准备。如图7所示。
2.3 软件结构
本设计具有开始、暂停、Vol+、Vol-和播放上一首下一首的功能。每一个功能都有对应的按键。软件结构如图8所示。
图6 主流程序流程图
图7 开发板初始化
图8 软件结构示意图
该设计基于以AMS1117⁃3.3作为供电电源,以Cor⁃tex⁃M3作为处理器,通过VS1003实现音频解码,达到播放音乐的目的。
该音乐播放器可以实现开始、暂停、声音加减和上一首、下一首的功能。功能比较单一,如何在单一平台上实现更多的功能是一个发展方向,譬如iPod通过移植操作系统作为通用平台,然后下载各种应用软件实现各种应用,比如上网浏览网页、游戏等功能。
[1]YIU Joseph.Cortex⁃M3权威指南[M].宋岩,译.北京:北京航空航天大学出版社,2009.
[2]VLSI公司.VS1003中文说明书[EB/OL].[2011⁃04⁃07].http:// wenku.baidu.com.
[3]张阳天,韩异凡.Protel DXP电路设计[M]北京:清华大学出版社,2003.
[4]VLSI公司.VS1003⁃MP3/WMA AUDIO CODE数据手册[EB/ OL].[2005⁃06⁃07].http://download.csdn.net/detail/zhongpai/ 4392299.
[5]陈杰.基于ARM平台的MP3编码器的实现及性能优化[D].上海:上海交通大学,2007.
[6]李国辉.基于ARM的MP3播放器设计与实现[J].现代电子技术,2012,35(16):1⁃2.
Design of MP3 player based on STM32 micro controller
LI Wei,ZHANG Zhen,FAN Wen⁃hao
(Huanghe Science and Technology College,Zhengzhou,450063,China)
A design method of a music player is introduced in this paper,which is the MP3 player based on STM32 mi⁃cro controller of Cortex⁃M3 kernel that is designed specifically by ARM for the embedded applications of low cost,low power con⁃sumptionand high performance.This system can realize the functions:playback of MP3 and WAV music file,and name dis⁃play of song,singer name and album.
music player;STM32;MP3 player;Cortex⁃M3
TN710⁃34
A
1004⁃373X(2015)04⁃0118⁃03
李 伟(1983—),女,河南南阳人,硕士,讲师。主要研究方向为移动通信与无线网络技术。
张 真(1992—),男。研究方向为通信工程。
2014⁃08⁃15
郑州市无线与移动通信网络应用技术创新团队(121PCXTD511);河南省民办高校通信工程品牌专业