低成本无线WiFi音乐播放系统设计

时间:2016-10-29来源:网络

以STM32F103作为微处理器,设计了一个低成本的无线WiFi音乐播放系统,结合接收WiFi数据的WM-G-MR-08(wm631)模块和VS1003B音频解码器实现了MP3音乐播放。基于Android系统开发的客户端软件采用手机控制,完成了手机端与控制端之间的数据传输,实现了手机远程对音乐播放器的控制。结果表明,该系统设备简单方便、成本较低、系统可靠、易于扩展。

本设计基于已经发展成熟的WiFi无线网络,充分利用WiFi覆盖范围广、传输速度快、抗干扰能力强等优点。Android具有开源性、封装性、性价比高等优点,基于Android系统开发的客户端软件移植性强,通用性高。采用手机作为控制终端,便于操作。手机通过无线网络(WiFi)对音乐播放系统进行控制,可以实现方便、快捷、智能化的要求。

1 系统设计

采用STM32F103作为微控制器有很多优势,STM32F系列属于中等容量增强型,是32位基于ARM核心的带64或者128KB闪存的微控制器,在市场上是性价比很高的产品。本设计主要有控制模块、WiFi无线模块、音频解码模块VS1003B、SD卡,其系统结构框图如图1所示。

w1.jpg

图1 系统结构框图

工作流程:点击智能手机客户端软件上的播放按钮,通过WiFi模块接收到命令后,STM32F103读取SD卡中的MP3音乐文件,然后将读取的数据通过SPI传输到音频解码芯片VS1003B,经过解码转换后发送到耳机听筒,实现播放音乐功能;点击暂停按钮,STM32F103停止读取SD卡里的MP3音乐文件数据,这样就能实现停止播放音乐功能;点击其他按钮,也能实现相应的功能。

本设计主要特点如下:

① 在开放的Android系统控制终端设计的基础上,使用支持组件的重用和替换应用程序框架。使用交互式图形界面清晰美观,操作控制简单,设计出来的产品经过用户体验反映非常好。

② 本设计摒除了传统音乐播放系统对专用控制按键的依赖,通过用户的手机就能实现对音乐播放器播放、暂停等的控制,大大方便了用户的操作。这样设计出来的音乐播放系统不仅具有一般音乐播放器的功能,而且具有将控制端和硬件部分分离的优势,实现了对音乐播放系统的远距离控制。

2 硬件电路设计

2.1 音频解码模块

VS1003B是一个单片MP3/WMA/MIDI音频解码器和ADPCM 解码器。它包含一个高性能、自主产权的低功耗的DSP处理器核VS_DSP4,工作数据存储器为用户应用提供5KB的指令ROM 和0.5KB的数据RAM。其还具有串行的控制和数据接口、1个高品质可变采样率的ADC和立体声DAC、4 个常规用途的I/O 口、1 个UART,以及1个地线缓冲器和耳机放大器。

STM32F103将从SD卡里读取的MP3音频数据流传给音频解码模块,音频解码模块将该数据流解析并转换成模拟信号后再进行输出。VS1003B与STM32F103的数据通信是通过J2排针上的SPI总线方式进行的。音频解码模块电路的原理图如图2所示。

w2.JPG

图2 音频模块解码电路图

2.2 SD卡接口模块

SD卡是最为通用的数据存储卡,具有价格低、存储容量大、使用方便、通用性与安全性强等优点,因此MP3、MP4、MP5、Pad和数码相机等设备上的存储卡均为SD卡。SD卡支持的总线模式为SD模式和SPI模式,本设计中采用SPI模式。图3为SD卡模块(J10排针上的SPI模式)的接口电路。

w3.JPG

图3 SD卡模块图

2.3 WiFi无线模块

WiFi(Wireless Fidelity,无线保真技术)的最大优点是传输速度较高,而且能自动调整带宽,可以有效地保障网络的稳定性和可靠性。该设计采用的WM-G-MR-08模块不仅具有WiFi的功能,而且能提供小尺寸和高数据速率的无线连接,可应用于无线PDA、DSC、媒体适配器、微型打印机、条码扫描器、VOIP电话等。数据存储装置是该WM-G-MR-08潜在的应用,在嵌入式上的应用主要集中在移动装置方面。在设计中,WM-G-MR-08模块通过开发板上的J1排针的SPI引脚与主控芯片通信,ANT1SMACON为无线网卡,其原理图如图4所示。

w4.JPG

图4 WM-G-MR-08模块图

3 嵌入式软件设计

设计采用RealView MDK开发套件作为软件开发平台,嵌入式软件采用C语言编写,操作系统采用μC/OS-II。μC/OS-II是用C语言和汇编语言编写的,结构简洁精练,可读性很强,同时又具备实时操作系统的大部分功能,并且通过适当的扩展之后,可被广泛用于多种应用场合。

系统启动后,先初始化STM32F103,然后初始化SD卡、音频解码模块、WiFi无线模块,最后是μC/OS-II系统初始化。当WiFi指令判断为播放指令时,由微控制器将SD卡的一些基本信息送到FAT 文件系统接口处进行读取,获取SD卡的容量、FAT 表及根目录所在的起始扇区。通过这些信息就可以判断出SD卡是否存储有音频解码模块可以解码并播放的音乐文件。若有该音乐文件,控制器将通过SPI总线方式读出该文件的音频信息,并将音频的数据流信息送入到音频解码模块中,由VS1003B芯片解码后,再通过内含的高质量的立体DAC和耳机驱动电路,就可以实现音乐的播放。程序流程图如图5所示。

w5.JPG

图5 程序流程图

4 手机客户端软件设计

手机客户端软件开发用到的开发工具包括Eclipse、JDK、ADT和Android SDK。开发环境搭建过程如下:首先安装JDK,再分别解压Eclipse和Android SDK,接着为Eclipse安装ADT插件,最后配置Android SDK,最终搭建好Android开发环境。

针对客户端软件,采用ImageView+TestView 进行UI设计,选择合适的图片作为背景并添加ButtonStart、Button-Stop、ButtonOff等功能按钮,实现对音乐播放系统的播放、暂停、关闭等控制。设计好UI界面后,通过为各个按钮添加setOnClickListener事件响应用户操作。根据命令按钮的不同,在响应函数中通过网络向子机节点发送不同的命令实现相应的控制功能。

结语

本设计是在ARM7平台上构建WiFi,成本优势明显。采用当前较新的控制方式———智能手机软件控制+无线网络,不仅能充分利用WiFi的传输速度快、覆盖范围广等优势,而且基于Android的平台建设成本低、使用方便。同时,这种方式采用的手机软件具有通用性,市场应用价值高,易于推广,能为用户提供优质、方便快捷的音乐播放服务。

  • STM32单片机中文官网
  • STM32单片机官方开发工具
  • STM32单片机参考设计

关键词: WiFi STM32 音频解码 SD卡 Android

加入微信
获取电子行业最新资讯
搜索微信公众号:EEPW

或用微信扫描左侧二维码

相关文章

查看电脑版