基于STM32F103的低成本无线WiFi音乐播放系统设计
摘要:以STM32F103作为微处理器,设计了一个低成本的无线WiFi音乐播放系统,结合接收WiFi数据的WM-G-MR-08(wm631)模块和VS1003B音频解码器实现了MP3音乐播放。基于Android系统开发的客户端软件采用手机控制,完成了手机端与控制端之间的数据传输,实现了手机远程对音乐播放器的控制。结果表明,该系统设备简单方便、成本较低、系统可靠、易于扩展。
关键词:Android;WiFi;VS1003B;STM32;SD卡
引言
目前市场上音乐播放器款式多样,能实现很丰富的功能,外观设计也更美观,更能满足用户的需要。但是,现有的音乐播放系统大多采用键盘、触摸平板等设备对音乐播放系统进行控制,使用此种控制终端只能进行本地控制,不能实现远程控制,造成控制方式不够方便、快捷。现代人对生活品质要求越来越高,要求音乐播放系统的操作越来越简单化、智能化。
本设计基于已经发展成熟的WiFi无线网络,充分利用WiFi覆盖范隔广、传输速度快、抗干扰能力强等优点。Android具有开源性、封装性、性价比高等优点,基于Android系统开发的客户端软件移植性强,通用性高。采用手机作为控制终端,便于操作。手机通过无线网络(WiFi)对音乐播放系统进行控制,可以实现方便、快捷、智能化的要求。
1 系统设计
采用STM32F103作为微控制器有很多优势,STM32F系列属于中等容量增强型,是32位基于ARM核心的带64或者128 KB闪存的微控制器,在市场上是性价比很高的产品。本设计主要有控制模块、WiFi无线模块、音频解码模块VS1003B、SD卡,其系统结构框图如图1所示。
工作流程:点击智能手机客户端软件上的播放按钮,通过WiFi模块接收到命令后,STM32F103读取SD卡中的MP3音乐文件,然后将读取的数据通过SPI传输到音频解码芯片VS1003B,经过解码转换后发送到耳机听筒,实现播放音乐功能;点击暂停按钮,STM32F103停止读取SD卡里的MP3音乐文件数据,这样就能实现停止播放音乐功能;点击其他按钮,也能实现相应的功能。
本设计主要特点如下:
①在开放的Android系统控制终端没计的基础上,使用支持组件的重用和替换应用程序框架。使用交互式图形界面清晰美观,操作控制简单,设计出来的产品经过用户体验反映非常好。
②本设计摒除了传统音乐播放系统对专用控制按键的依赖,通过用户的手机就能实现对音乐播放器播放、暂停等的控制,大大方便了用户的操作。这样设计出来的音乐播放系统不仅具有一般音乐播放器的功能,而且具有将控制端和硬件部分分离的优势,实现了对音乐播放系统的远距离控制。
2 硬件电路设计
2.1 音频解码模块
VS1003B是一个单片MP3/WMA/MIDI音频解码器和ADPCM解码器。它包含一个高性能、自主产权的低功耗的DSP处理器核VS_DP4,工作数据存储器为用户应用提供5 KB的指令ROM和0.5 KB的数据RAM。其还具有串行的控制和数据接口、1个高品质可变采样率的ADC和立体声DAC、4个常规用途的I/O口、1个UART,以及1个地线缓冲器和耳机放大器。
STM32F103将从SD卡里读取的MP3音频数据流传给音频解码模块,音频解码模块将该数据流解析并转换成模拟信号后再进行输出。VS1003B与STM32F103的数据通信是通过J2排针上的SPI总线方式进行的。音频解码模块电路的原理图如图2所示。
2.2 SD卡接口模块
SD卡是最为通用的数据存储卡,具有价格低、存储容量大、使用方便、通用性与安全性强等优点,因此MP3、MP4、MP5、Pad和数码相机等设备上的存储卡均为SD卡。SD卡支持的总线模式为SD模式和SPI模式,本设计中采用SPI模式。图3为SD卡模块(J10排针上的SPI模式)的接口电路。
2.3 WiFi无线模块
WiFi(Wireless Fidelity,无线保真技术)的最大优点是传输速度较高,而且能自动调整带宽,可以有效地保障网络的稳定性和可靠性。该设计采用的WM—G—MR—08模块不仅具有WiFi的功能,而且能提供小尺寸和高数据速率的无线连接,可应用于无线PDA、DSC、媒体适配器、微型打印机、条码扫描器、VOIP电话等。数据存储装置是该WM-G-MR-08潜在的应用,在嵌入式上的应用主要集中在移动装置方面。在设计中,WM-G-MR-08模块通过开发板上的J1排针的SPI引脚与主控芯片通信,ANT1 SMACON为无线网卡,其原理图如图4所示。
3 嵌入式软件设计
设计采用RealView MDK开发套件作为软件开发平台,嵌入式软件采用C语言编写,操作系统采用μC/OS-II。μC/OS-II是用C语言和汇编语言编写的,结构简洁精练,可读性很强,同时又具备实时操作系统的大部分功能,并且通过适当的扩展之后,可被广泛用于多种应用场合。
系统启动后,先
- 基于LabVIEW的STM32调试平台设计(11-17)
- 基于TLC5947的旋转LED屏显示控制器设计(01-25)
- 基于STM32F的便携式核谱仪的研制(02-01)
- STM32f103的电阻触摸屏的五点校正算法(09-25)
- STM32F103RBT6程序下载设置(12-03)
- STM32F103x时钟配置(12-01)