程望斌,郑仁伍,阳 均,钟美涛,彭辉辉,戴添文
(1.湖南理工学院 南湖学院,湖南 岳阳 414006; 2.湖南理工学院 信息与通信工程学院,湖南 岳阳 414006)
基于STM32的MP3播放器的设计
程望斌1,2,郑仁伍1,阳 均1,钟美涛1,彭辉辉1,戴添文1
(1.湖南理工学院 南湖学院,湖南 岳阳 414006; 2.湖南理工学院 信息与通信工程学院,湖南 岳阳 414006)
以STM32F103ZET6为控制核心,设计了一款MP3播放器.详细介绍了系统的各组成模块、设计方法和功能实现过程,并对系统功能进行了分析和评价.结果表明: 本文设计的系统可实现音乐播放﹑电子书阅读﹑图片浏览等功能.本设计具有操作简单、稳定性高、音质好、能耗低等特点,因此具有一定的使用价值.
MP3播放器; VS1003; STM32F103ZET6; μC/OS-II
Abstract: In this paper,a MP3 player is designed with STM32F103ZET6 as a control core.The modules,design methods and function realization process of the system are introduced in details,and the functions of the system are analyzed and evaluated.The result shows that the system can realize some functions such as music playing,e-book reading,picture browsing and so on.The design has certain value in use with the simple operation,high stability,good sound quality,low energy consumption etc.
Key words: MP3 Players,VS1003,STM32F103ZET6,μC/OS-II
随着计算机技术和数字编解码及压缩技术的发展,各类数码产品发生了革命性的变化,新技术和新产品层出不穷.目前32位单片机已逐渐占领传统的8位机市场,而在32位机系统中,基于ARM Cortex-M3内核的STM32处理器以其高性能﹑低成本等优势,在嵌入式市场中占据较大份额[1].
本文采用STM32F103VET6与VS1003相结合的方案,对音频解码、音频功放等技术进行深入研究,设计的系统可实现音乐播放﹑电子书阅读﹑图片浏览等功能,且设计的多功能MP3播放器具有电路结构简单[2]、价格低廉、稳定性高、音质好等优点,因此具有一定的应用前景和市场价值.
图1 硬件系统总体框图
本文以STM32F103ZET6微控制器作为处理器设计MP3多功能播放器,系统包含主控制模块、电源模块、字库Flash模块,TFT触摸模块、音频解码、音频存储、音频功放七个部分.液晶部分采用带触摸功能的TFT彩屏液晶,音频解码采用VS1003解码编码芯片,音频存储采用SD卡.硬件系统总体框图如图1所示.
音频功放采用LM386芯片,它具有功耗低、电压增益可调整、电源电压范围大、外接元件少和总谐波失真小等优点[3].系统采用电位器来调节声音的大小,在1脚和8脚之间串联一个电阻、电容,将LM386的增益固定.LM386设计原理图如图2所示.
图2 LM386设计原理图
本系统从外部的电源模块获得+9V的直流电源,通过AMS1117-5和AMS1117-3.3稳压芯片获得+5V和+3.3V的电压,以供系统运行,同时放置了较多的滤波电容,保障电源稳定工作[4].主控模块与电源模块原理图如图3所示.
图3 主控模块与电源模块原理图
使用的音频解码器芯片是VS1003.VS1003是一个单片音频解码器和编码器,可为用户应用提供0.5KB 的数据 RAM 和5KB 的指令 RAM,4 个常规 I/O 口,串行控制和数据接口,一个UART接口,一个可变采样率的 ADC 和立体声 DAC.
TFT液晶电路包括TFT液晶驱动和触摸屏控制芯片.TFT液晶驱动以ILI9320芯片为控制芯片,ILI9320控制器是一款自带显存和有262144种颜色的单芯片SOC驱动的晶体显示器,容量为172800字节,有320×240的高分辨率和16位数据接口.触摸屏控制芯片采用ADS7846,ADS7846是一款四线触摸屏控制器,可以通过SPI总线控制.
多功能MP3播放器采用FAT16文件系统.FAT16的数据信息通常分为5个区: MBR区、DBR区、FAT区、FDT区和DATA区.SD卡一般不会做引导盘,也不分区,所以通常没有MBR区,直接从DBR区开始.SD卡允许在SPI 模式和SDIO模式下工作,SD四线模式速度相对较快,STM32F103ZET6芯片含有SDIO接口.
使用的字库Flash是W25X16芯片,它具有PCB板占用空间少、引脚数少、低功耗等特点.W25X16支持标准SPI接口,SPI只需四个引脚控制,因此其电路设计简单,其原理图如图4所示.
图4 W25X16原理图
采用KEIL4软件进行程序设计,整个系统程序设计分成三个步骤: 首先进行各模块驱动程序设计,然后进行操作系统移植,最后进行系统整合.设计各模块驱动程序时,采用STM32官方自带的库文件,可加快开发速度,提高系统的稳定性.系统软件设计框图如图5所示.
图5 系统软件设计框图
如果要实现音乐播放功能,就要获得相应的音乐文件数据.根据FAT文件的存储格式再结合SD卡读取驱动,每次读取512个字节,可得到相应的文件数据.当VS1003已经初始化完成并将读到的数据以每次32字节的速度送入VS1003的RAM中时,VS1003会自动处理数据并得到模拟音频信号[5].
在每次读取新的音频文件时,采用文件名比较(只比较前3个字节)的方法查找存在SD卡中的歌词文件.如果存在歌词文件,就将文件数据全部复制到RAM中(超过6144个字节的部分将丢弃),同时初始化30ms中断的定时器用于歌词显示的刷新操作.
电子书阅读和图片浏览功能在文件数据的读取上与音乐播放功能一样,但是所读取的文件属性不一样.电子书阅读支持txt、lrc文件,图片浏览则支持BMP等属性文件.电子书阅读与图片浏览功能的实现不需要做额外的数据处理,直接把读取的txt、BMP文件数据送给TFT显示驱动即可实现相应功能.
在移植FAT16文件之前,需从FAT的官网下载源码,版本号为R0.07C.下载后,可看到doc和src两个文件夹,doc里是一些使用文档,不需考虑,src里面则是需要移植的文件系统源码.FAFTS文件系统是采用标准C语言编写的代码,不受CPU和编译器的限制,移植也很方便.移植好后与SD卡驱动函数配合,即可进行文件的读写操作.
µC/GUI是一款专门针对嵌入式系统的优秀图形软件.它设计的图形用户接口可用于任意LCD图形显示,且不依赖于CPU及 LCD 的控制器.它可工作于单任务或多任务环境下,并适用于任意 LCD 控制器和 CPU 的任意尺寸的物理和虚拟显示.要实现µC/GUI移植,首先需要下载µC/GUI V3.98版本,然后放入一个对应的文件夹,再打开KEIL软件,然后将µC/GUI添加到工程中.由于µC/GUI使用标准的C语言编写,因此具有便于移植,不依赖硬件的特点.移植好后,可将自己的程序加入到其中.
µC/OS-II操作系统是一个嵌入式多任务操作系统,系统大致可以分成核心部分、任务处理部分、时间处理部分、任务同步与通信部分.要实现µC/OS-II的移植,首先应从Micrium官方网站下载基于STM32开发板的µC/OS-II系统,该版本为2.86版本,开发环境是IAR编译器.下载的µC/OS-II系统官方已经移植好,只需打开KEIL,将各个文件夹添加其中,在中断服务文件中修改两个中断函数,待µC/OS-II系统移植完成,即可新建Task.
本文设计的多功能MP3播放器的液晶部分采用带触摸功能的4.3寸TFT彩屏液晶,可实现系统彩屏显示和触摸输入功能; 音频解码采用VS1003解码编码芯片,能实现音频信号的快速硬件解码,使系统流畅地播放音乐; 音频存储采用SD卡,可满足歌曲大容量存储要求.该MP3播放器具有功能多、稳定性好、功耗低、音质佳等优点,因此具有一定的应用价值和发展前景.
[1]周双飞,黄海波,简 炜,等.基于STM32的MP3播放器设计与实现[J/OL].电脑知识与技术,2016,12(01): 260~262
[2]何 冰.一种基于单片机的MP3音频播放器设计[J].电子设计工程,2016,24(06): 142~144
[3]张 琦.基于Android的音乐播放器设计与实现[J/OL].电子技术与软件工程,2017,(14): 40
[4]邢方诚,王素珍,宗卫华,等.ATmega328p的音频信号最小系统播放器设计[J].单片机与嵌入式系统应用,2016,16(06): 25~27
[5]胡善军,左 凯,缪贤浩.单片机在MP3播放器系统设计中的应用[J].科技展望,2016,26(05): 161
[6]叶桂锐.基于Android平台的音乐播放系统歌词匹配功能的设计与实现[J].电脑知识与技术,2017,13(21): 68~70
Design of MP3 Player based on STM32
CHENG Wangbin1,2,ZHENG Renwu1,YANG Jun1,ZHONG Meitao1,PENG Huihui1,DAI Tianwen1
(1.Nanhu College,Hunan Institute of Science and Technology,Yueyang 414006,China;2.College of Information and Communication Engineering,Hunan Institute of Science and Technology,Yueyang 414006,China)
TN 98
A
1672-5298(2017)03-0050-04
2017-06-22
大学生研究性学习和创新性实验计划项目(201703); 湖南省科技计划项目(2016TP1021)
程望斌(1979− ),男,湖北崇阳人,湖南理工学院信息与通信工程学院副教授.主要研究方向: 光电子技术与学科竞赛