tag 标签: 音频解码

相关博文
  • 热度 18
    2015-4-13 16:54
    1732 次阅读|
    0 个评论
    本实例是以STM32F103系列单片机作为核心处理器,利用VS1003芯片进行音频解码的一种无线解说器。通过对触摸显示屏的操作,实现手持部分和终端部分二者的无线通讯。系统采用大容量的SD卡作为存储部分,通过SPI将VS1003B与SD卡的数据与STM32进行交互通信。本解说器在播放时没有出现理论上的断续情况,音质较好,占用的软硬件资源也较少,为后续的扩展留下了很大空间。 无线讲解器通常用于工厂、博物馆、景区等室外空旷场所供参观介绍用,通过事先在场所安放无线发射模块,并控制发射模块的工作范围。听众到达景点后,手上的讲解器将自动接收各个地点的无线编码信号,经解码后即可将存储在SD卡中的语音播放,以便清晰地全程收听全部介绍内容。 1 系统总体构成 系统主要器件包括TFT触摸屏、STM32F103RCT6微控制器、SD卡、语音解码芯片VS1003、扬声器。STM32F103RCT6微控制器为系统终端的控制核心,通过它与手持式设备之间进行无线串口通讯,读取SD卡中的音频文件,控制VS1003解码读取的数据,实现声音的播放与控制,该系统主体结构如图1所示。 图1 系统设计框图 【分页导航】 第1页: 无线解说器系统总体构成 第2页: TFT触摸屏控制电路 第3页: VS1003音频解码控制电路 第4页: 无线解说器手持设备控制流程 第5页: 无线解说器终端设备程序流程图 2 硬件电路控制 2.1 TFT触摸屏控制电路 单片机芯片STM32F103RCT6工作在8MHz时钟下,RTC工作在32.768kHz时钟下。单片机PA3、PA5、PA6、PA7、与SD卡SD_CS、SPI1_SCK、SPI1_MISO、SPI1_MOSI相连,采用SPI通讯。显示屏接口采用并行总线方式(数据总线D 、地址总线A 、片选/CS、读/RD、写/WR),直接与单片机引脚相连,如图2所示。 图2 TFT触摸屏与单片机连接控制原理图 【分页导航】 第1页: 无线解说器系统总体构成 第2页: TFT触摸屏控制电路 第3页: VS1003音频解码控制电路 第4页: 无线解说器手持设备控制流程 第5页: 无线解说器终端设备程序流程图 2.2 VS1003音频解码控制电路 语音解码芯片VS1003可解码MP3(MPEG 12音频层III)(CBR+VBR+ABR)、WMA 4.0/4.1/7/8/9的所有配置文件(5.384kbit/s的)、WAV(PCM+IMAADPCM)、MIDI/SP—MIDI文件,对话筒输入或线路输入的音频信号进行IMA ADPCM编码,内含高性能片上立体声数模转换器,两声道间无相位差。 图3 音频解码电路原理图 VS1003通过7根引脚(VS RST、VS DREQ、VS_MISO、VS_MOSI、VS_SCK、VS_XDCS、VS_XCS)与主控芯片相连,如图3所示。需要播放音频文件时,首先应复位VS1003(包括硬复位和软复位),让其回到原始状态,准备解码下一个音频文件。接着需配置VS1003相关寄存器,包括VS1003的模式寄存器(MODE)、时钟寄存器(CLOCKF)等。最后向VS1003里写入数据。VS1003会自动识别它所支持的音频格式并进行播放。 【分页导航】 第1页: 无线解说器系统总体构成 第2页: TFT触摸屏控制电路 第3页: VS1003音频解码控制电路 第4页: 无线解说器手持设备控制流程 第5页: 无线解说器终端设备程序流程图 3 软件控制设计 3.1 手持设备控制流程 对手持式设备进行软件控制编程时,第一步使用需要对系统时钟进行初始化,需要对外部高速时钟使能,中断向量表配置,锁相环配置等过程。这样系统才能正确执行相关程序。接下来对串口进行初始化,本设计使用的串口一,需要对GPIOA进行初始化,并配置其复用功能,将TXD引脚设置成复用延迟输出,RXD配置成浮空输入。下面设置USAT的波特率、传输字长、有无奇偶校验、数据流控制、收发模式、中断优先级、中断服务函数等。 图4 手持设备控制程序流程图 手持设备上的TFT初始化以后,就可显示初始化界面,接着等待终端设备发送数据显示,手持设备在完成各种初始化工作后与终端设备进行握手连接,握手成功之后便能显示终端设备上发送过来的信息,握手失败后就不停尝试着与终端设备进行握手,直到握手成功。触摸屏点击后进行软件判断得到点击的坐标值,并将坐标值传送至终端设备。 【分页导航】 第1页: 无线解说器系统总体构成 第2页: TFT触摸屏控制电路 第3页: VS1003音频解码控制电路 第4页: 无线解说器手持设备控制流程 第5页: 无线解说器终端设备程序流程图 3.2 终端设备程序流程图 终端设备开机后需要设置无线单片机的初始值,初始值为包括解说区域的坐标代码,因此在游览干道旁需每隔约25m设置一个终端,当游人在游览干道上行进,身上的手持设备就可随时和道路旁放置的无线终端相互交换信息,播放需要的解说词。 因此终端流程最开始对所需要的外设进行初始化,确认初始化无误以后进入正弦波测试,如有初始化不成功的程序将不能进入下一个流程。在正弦波测试完之后确定终端设备上的外设运行良好,将SD卡中的音频文件信息解码出来,并发送出去,此时进入串口监控状态,时刻监控串口信息,当收到播放指令时即在SD卡中寻找对应的信息,并从SD卡中将数据读取出来,发送至VS1003进行解码,在播放过程中如接收到新的串口数据,再进行判断,是停止还是暂停或者其他命令,然后执行相应的命令。 图5 终端设备程序流程图 4 结论 本文所设计的无线解说器以STM32F103系列单片机作为核心处理器,处理速度快且性价比高。利用VS1003解码芯片控制音频解码文件,选用合适的通讯方式,严格把控时序,确保播放声音的清晰与真实。通过对触摸显示屏的操作,实现手持部分和终端部分二者的无线通讯,确保游人在指定地点接收到相应解说词,本系统经过实际使用,通信效果良好,播放的解说词流畅,音质较好。在后期设备升级中,可考虑采用高速DSP作为中央控制芯片,即可无需解码芯片,且更好地将系统嵌入到DSP为核心的产品中,从而更加人性化。 【分页导航】 第1页: 无线解说器系统总体构成 第2页: TFT触摸屏控制电路 第3页: VS1003音频解码控制电路 第4页: 无线解说器手持设备控制流程 第5页: 无线解说器终端设备程序流程图
  • 热度 20
    2014-10-3 19:50
    1768 次阅读|
    0 个评论
    以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所示。 图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所示。 图2 音频模块解码电路图 2.2 SD卡接口模块 SD卡是最为通用的数据存储卡,具有价格低、存储容量大、使用方便、通用性与安全性强等优点,因此MP3、MP4、MP5、Pad和数码相机等设备上的存储卡均为SD卡。SD卡支持的总线模式为SD模式和SPI模式,本设计中采用SPI模式。图3为SD卡模块(J10排针上的SPI模式)的接口电路。 图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所示。 图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所示。 图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的平台建设成本低、使用方便。同时,这种方式采用的手机软件具有通用性,市场应用价值高,易于推广,能为用户提供优质、方便快捷的音乐播放服务。
相关资源