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所示。



图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的平台建设成本低、使用方便。同时,这种方式采用的手机软件具有通用性,市场应用价值高,易于推广,能为用户提供优质、方便快捷的音乐播放服务。