2024年5月2日发(作者:)
ELECTRONICS WORLD
・
技术交流
基于STM32的多功能音乐播放器设计
以音乐播放器为研究对象,提出一种基于STM32的音乐播放器
的硬件和软件的设计方法,系统以STM32F103ZET6为控制核心,
音频解码芯片VS1053B实现音频数据解码,挂载FATFS文件系统实
现对SD卡中的音频文件进行读取,利用FFT快速傅里叶变换将音频
信号转为频谱,加入了一个小型GUI显示界面配合OLED显示屏,
实时的将界面、播放状态以及频谱生动的展示出来,此外还加入了
蓝牙音频功能,通过手机蓝牙即可连接播放器播放音乐。实验表
明,该音乐播放器连接耳机能流畅播放多种格式的音乐文件,具有
多功能、高性能、低功耗、操作方便、稳定可靠等特点。
引言:音乐可能是人类史上最古老、最具普遍性以及感染力的
艺术形式之一。音乐能提高人的审美能力,净化人们的心灵,树立
崇高的理想。不论时代怎么发展,人们的生活娱乐都离不开音乐。
因此,设计一款简单实用,多功能化的音乐播放器完全可以符合人
们的爱好及需求。本文介绍一种基于STM32F103处理器的SDIO接
口模块及外围音频解码芯片实现一个SD卡的音乐播放器,它读取
存储在SD卡里的音频格式文件,并通过立体声音解码芯片输出,
能进行频谱显示,还可以通过手机蓝牙与其连接播放音乐等功能。
1.系统硬件电路设计
基于STM32F103VET6微控制器所设计的MP3播放器,主要包
括:存储模块、蓝牙音频模块、音频解码模块、显示模块。系统
方案设计的系统框图如图1所示。主控制器芯片,利用其SDIO接口
不断读取SD卡音频文件送入缓存区;使用了三组SPI接口,第一组
SPI接口将读取的音频数据流送至音频解码芯片VS1053进行解码,
第二组SPI接口连接了字库存储芯片,用于显示歌曲名等,第三组
SPI接口连接OLED显示屏幕实现人机交互以及显示歌曲信息和频
谱等;使用了一个定时器、一个DMA以及一个ADC通道实时快速
采集音频输出,并利用FFT将其从时域转换为频域;使用通用IO控
制蓝牙以及音频切换芯片和键盘。控制键盘用以选择曲目、控制音
量、控制频谱显示等功能。
1.1 STM32F103ZET6主控芯片
本系统采用的是由ST公司推出的基于Cortex-M3内核的ST-
M32F103ZET6增强型32位低功耗ARM处理器。其工作频率为
72MHz,内置高速存储器,丰富的增强型I/O端口和联接到2条
APB总线的外设。包含2个基本定时器、4个通用定时器、2个高级
定时器、2个DMA控制器(共12个通道)、3个12位ADC、1个12
位DAC,还包含标准和先进的通信接口:3个SPI、5个串口、1个
USB、1个SDIO接口、2个IIC、1个CAN、1个FSMC接口以及112个
通用IO口。STM32较市场上同种类的单片机具有超级的价格、超多
的外设、优异的实时性能、杰出的功耗控制、极低的开发成本等优
绵阳职业技术学院 罗金生 王荣海 李 岷 刘 成
势。高达512K字节的闪存和64K字节的大容量SRAM以及丰富的外
设接口满足大型程序的设计要求。
图1 系统框图
1.2 Micro SD存储卡
本设计选择Micro SD卡作为音乐存储卡。由于它体积小、数
据传输速度快、可热插拔、存储容量大、价格便宜等特点,被广
泛地于便携式装置上使用。STM32控制器目前最高支持v2.0定义
的SD卡。使用前应确定SD卡为FAT32文件格式,同时将*.MP3,
*.WAV,*.WMA,*.FLAC,*.OGG,*.MIDI,*.AAC等格式的音
频文件复制到SD卡中的MUSIC目录。使用STM32F103的SDIO接口
访问SD卡。SD卡主要引脚和功能有:CLK信号为HOST给DEVICE
的时钟信号。CMD信号:双向的信号,用于传送命令和反应。
DAT0-DAT3信号:四条用于传送的数据线。VDD信号:电源信
号。VSS1,VSS2:电源地信号。
1.3 VS1053音频解码芯片
VS1053是一款利用SPI通讯的音频解码模块,支持大部分的
音频文件的解码播放和编码保存,是单片Ogg Vorbis/MP3/AAC/
WMA/MIDI音频解码器,及IMA ADPCM编码器和用户加载的Ogg
Vorbis编码器。它包含了一个高性能、有专利的低功耗DSP处理器
内核VS_DSP4、工作数据存储器、供用户应用程序和任何固化解
码器一起运行的16KiB指令RAM及0.5KiB多的数据RAM、串行的
控制和输入数据接口、最多8个可用的通用I/O引脚、一个UART、
并有一个优质的可变采样率立体声ADC和立体声DAC、和跟随的
一个耳机功放及一个公共电压缓冲器。主控制器通过SPI接口将读
取的音频数据流送至VS1053进行解码音频数据流,VS1053自动解
码并输出。
1.4 OLED显示
OLED由于同时具备自发光、广角度、耗电低、反应速度快、
•
123
•
ELECTRONICS WORLD
・
技术交流
对比度高和厚度薄等优异特性,被认为是下一代的平面显示器新兴
应用技术。
选用128×64分辨率的OLED显示屏来进行实时显示当前的
播放信息。播放信息主要显示歌曲名字、歌曲总时间和已播放时
间、歌曲码率、歌曲总数量、当前播放歌曲序列和当前音量等。
主控制器与显示屏采用SPI接口串行连接,D0为时钟信号线、D1
为串行数据线、RES为复位引脚、DC为数据/命令的选择线、CS是
芯片的片选信号。
1.5 字库存储
本设计采用GBK字库,由于字库较大,所以存储到外部
FLASH芯片W25Q128里,用于显示歌名等信息。W25Q128是华邦
公司推出的大容量SPI FLASH产品,W25Q128的容量为128Mbit。
支持多达10W次擦写周期,具有20年的数据保存期限,工作电压为
2.7~3.6V。主控制器与W25Q128通信采用标准SPI方式。
1.6 蓝牙音频
蓝牙音频是依靠蓝牙传输协议进行音频传输,不需要用数据线或
音频线连接,更精简,更清爽。本设计使用的是蓝牙4.0立体声音频模
块,保证音质的同时节约了成本。1、2引脚为VCC和GND,3、4引脚
为左右声道,5脚是MUTE输出开关,6脚为状态指示灯,7脚为控制开
关,主控使用2个通用I/O读取状态并进行控制。
1.7 音频切换
由于VS1053和蓝牙的音频输出共用一个耳机接口,为了避免
相互干扰,保证音质,加入了模拟通道切换芯片74HC4052,实现
本地MP3和蓝牙音频之间的输出切换。74HC4052是一块带有公共
使能输入控制位的2路四选一模拟开关电路。每一个多路选择开关
都有四个独立的输入/输出(Y0到Y3)、一个公共的输入/输出端
(Z)和选择输入端(A)。公共使能输入控制位包括两个选择输
入端A0、A1和一个低有效的使能输入端E。74HC4052主要应用于
模拟多路选择开关、数字多路选择开关及信号选通。
2 FATFS文件系统以及FFT概述
2.1 FATFS文件系统
FATFS是一个为小型嵌入式系统设计的通用FAT(File Allocation
Table)文件系统模块。FATFS的编写遵循ANSI C,并且完全与磁盘
I/O层分开。因此,它独立(不依赖)于硬件架构。它可以被嵌入到低
成本的微控制器中,如AVR,8051,PIC,ARM,Z80,68K等等。
为了存储和管理音乐文件,对于SD卡这类大容量设备,本例
选用FATFS文件系统记录存放的物理地址和剩余空间。编写SD卡驱
动,移植FATFS文件系,编写MP3驱动程序和应用程序,就可以利
用STM32读取存储在SD卡上MP3数据文件,然后送入VS1053进行
解码并进行正常的播放。
2.2 FFT(快速傅里叶变换)的作用
非周期性连续时间信号x(t)可以在频域表示出来,音乐信号
也可以在频域直观的表示出来。在人耳能听到的频率范围(20-
20KHz)中。根据采样定理设置采样频率为10KHz,来采集这
0-5KHz的音频信号。显示是使用的OLED屏,分辨率为128*64,在
•
124
•
x轴方向上最多显示128个点,所以本例把采样点数设置为256个点,
因为FFT计算出来的数据是对称的,我们只取一半,128个点刚刚好。
设置定时器采样频率为10KHz,去触发ADC转换,再使用DMA搬运,
最后使用stm32cubemx去配置这些硬件,生成基础代码。
2.3 UCGUI图形用户界面
uCGUI是一种嵌入式应用中的图形支持系统。它设计用于为任
何使用LCD图形显示的应用提供高效的独立于处理器及LCD控制
器的图形用户接口,它适用单任务或是多任务系统环境,并适用
于任意LCD控制器和CPU下任何尺寸的真实显示或虚拟显示。它
的设计架构是模块化的,由不同的模块中的不同层组成,由一个
LCD驱动层来包含所有对LCD的具体图形操作,uCGUI可以在任
何的CPU上运行,因为它是100%的标准C代码编写的。uCGUI能
够适应大多数的使用黑白或彩色LCD的应用,它提供非常好的允
许处理灰度的颜色管理.还提供一个可扩展的2D图形库及占用极少
RAM的窗口管理体。
3 系统软件设计
(1)初始化OLED显示、按键、蓝牙、字库芯片、SD卡、
VS1053音频解码芯片、音频切换芯片、FFT相关资源、GUI显示、
FATFS文件系统等。初始化程序如下所示:
(2)检查字库是否完整,不完整则从SD卡更新字库,并开始音
乐播放器任务调度。
(3)如果开启了频谱显示,FFT使用定时器2周期性经过DMA利
用ADC通道高速采样256点并存储在缓冲区,使用STM公司提供的
DSP库中的函数【void cr4_fft_256_stm32(void *pssOUT, void *ps-
sIN,uint16_t Nbin)】实现FFT转换。
4 实现效果
通电运行,0.96寸OLED屏幕上显示主菜单功能选择界面,选
择进入相应功能,音乐为本地MP3,自动读取并顺序播放内存卡里
面的歌曲并显示播放状态,可通过键盘实现切换频谱显示界面、
上一首、下一首、加音量和减音量等操作,可以实现最高256Kbps
ELECTRONICS WORLD
・
技术交流
个系统具有高性能、低功耗、操作方便、稳
定可靠等特点。
参考:杨明极,陈方县,吴学君,嵌
入式系统中SD卡的FAT32文件系统的设计:
电声技术,2010,4(04):36-39;叶桂锐,
基于Android平台的音乐播放系统歌词匹
配功能的设计与实现:电脑知识与技术,
2017(21):68-70;张琦,基于Android的音
乐播放器设计与实现:电子技术与软件工
程,2017(14):40;邢方诚,王素珍,宗卫
华,王涛,ATmega328p的音频信号最小系
图2 实物效果图
统播放器设计:单片机与嵌入式系统应用,
2016(6):25-27;何冰,一种基于单片机的MP3音频播放器设计:电
子设计工程,2016(6):142-144;张学慧,朱爱珍,基于STM32的
嵌入式MP3播放器的研究:电子世界,2012(8):22-24;高云红,
刘志群,基于STM32的多功能音频播放器的设计:福建电脑,
2012(12):108-110;杨丽娟,张白桦,叶旭桢,快速傅里叶变换FFT
及其应用:光电工程,2004(S1):1-3;程望斌,郑仁伍,阳均,
等.基于STM32的MP3播放器的设计:湖南理工学院学报:自然科学
版,2017(3):50-53。
的高音质歌曲的流畅播放;蓝牙为蓝牙音频模式,进入后打开蓝
牙,蓝牙进入等待配对模式,配对完成后即可开始播放。实物如
图2所示。
5 结语
本文提出了一种基于STM32的多功能音乐播放器的设计方案,
并对该设计的各部分功能设计方法进行了详细介绍。该方案对于需
要嵌入式媒体播放器的工业控制、车载播放器等行业具有一定的研
究价值。方案设计中涉及FATFS文件管理系统、GUI图形用户界面
和快速傅里叶变换(FFT)对嵌入式的设计具有一定的参考性。整
作者简介:罗金生(1986—),四川绵阳人,硕士研究生,助教,
研究方向:物联网技术、嵌入式技术。
(上接第122页)
由本文提出的串脉冲调频调制技术设计的500W高压脉冲电源
已成功的运用到北京工业大学阴极材料发射测试课题高压电源中,
电源一直在稳定可靠的工作中。
参考:K,ICH,E,
Wavelength-modulation spectroscopy using a frequency-doubled cur-
rent-modulated diode laser:Applied Physics B,2002(74):569-575;
Sakugawa.T,Matsumoto.Y,t capacitor charge using
resonant MOSFET inverter:Pulsed Power Conference(PPC),2011:1398-
1401;梁国忠,梁作亮.激光电源电路:兵器工业出版社,1992;波尔
科夫(И·В·Волков),[苏]巴枯连柯(В·М·Вакуленка)
著,激光器的电源:科学出版社,1980:132-137;王志强等译.开关电
源设计:电子工业出版社,2005;Sakugawa.T,Matsumoto.Y,Itoh.
t capacitor charge using a resonant MOSFET inverter:Pulsed
Power Conference(PPC),2011:1398-1401;SitiZulaikhaNgah Demon,
Abdul RahmanTamuri, Voltage Switch Mode Power
Supply For Laser System:2009 International Conference for Technical
Postgraduates(TECHPOS),2009:1-4;陈洪海,胡宝共,聂凤明,
等.YAG 脉冲激光电源硬件电路的设计:电子设计工程,2011,
19(4):85-87;李鹤轩.电力电子技术的发展动向:新技术新工艺,
2005(6):10-12;曾忠,王慧贞.谐振充电式脉冲激光电源的研制:电
力电子技术,2001,35(1):19-20;Lowery,Thomas, David.
Applying PWM-inverter Power to Low-voltage Induction Motors:Why
Should Engineers Be Conference Record of Annual
Conference of Electrical Engineering Problems in the Rubber and
Plastics Industries(1993):114-119;黄赞武.高频开关电源设计:中国
农业大学硕士论文,2000:36-42。
作者简介:
初智慧(1993—),男,硕士研究生,主要研究方向:集成电路与
片上系统。
高旭(1987—),女,博士,讲师,主要研究方向:光电位移精密
测量技术。
揣雅惠(1986—),女,博士,讲师,主要研究方向:红外透明导
电膜。
梁伟【通信作者】(1969—),男,博士,副教授,主要研究方
向:激光与物质相互作用及脉冲源研究。
•
125
•
发布评论