您的当前位置:首页正文

基于STM32的多功能音乐播放器设计

2022-09-28 来源:年旅网
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高压脉冲电源已成功的运用到北京工业大学阴极材料发射测试课题高压电源中,电源一直在稳定可靠的工作中。

参考:G.HANCOCK,V.L.KASYUTICH,G.A.D.RITCHIE,Wavelength-modulation spectroscopy using a frequency-doubled cur-rent-modulated diode laser:Applied Physics B,2002(74):569-575;Sakugawa.T,Matsumoto.Y,Itoh.Y.Compact capacitor charge using resonant MOSFET inverter:Pulsed Power Conference(PPC),2011:1398-1401;梁国忠,梁作亮.激光电源电路:兵器工业出版社,1992;波尔科夫(И·В·Волков),[苏]巴枯连柯(В·М·Вакуленка) 著,激光器的电源:科学出版社,1980:132-137;王志强等译.开关电源设计:电子工业出版社,2005;Sakugawa.T,Matsumoto.Y,Itoh.Y.Compact capacitor charge using a resonant MOSFET inverter:Pulsed Power Conference(PPC),2011:1398-1401;SitiZulaikhaNgah Demon,Abdul RahmanTamuri,NoriahBidin.High 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,W.Petro David.Applying PWM-inverter Power to Low-voltage Induction Motors:Why Should Engineers Be Concerned.IEEE 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 •

因篇幅问题不能全部显示,请点此查看更多更全内容