周璐璐
Mp3曾经风靡全球,几乎无人不知,无人不晓。录音器是在基本mp3播放的基础上的功能的一个升级。本设计是基于Cortex-M3内核的STM32F103系列单片机设计录音的功能,单片机控制VS1053实现录音和播放的录音装置的制作。
整个系统主要由音频解码部分、音效处理部分、SD卡部分、功率放大、电源部分等几个部分组成,整个系统由一块MCU(STM32F103RBT6)控制运行,各个部分协调运作。
硬件部分介绍:
本次设计所做的是基于STM32的录音器,解码芯片VS1053的作用不言而喻,因为此次录音文件是保存在SD卡上的,自然少不了对SD卡的介绍。STM32F103系列微处理器是首款基于ARMv7-M体系结构的32位标准RISC (精简指令集)处理器,提供很高的代码效率,在通常8位和16位系统的存储空间上发挥了ARM 内核的高性能。该系列微处理器工作频率为72MHz,内置高达128K 字节的Flash存储器 。
其内部结构图如图1所示:
图1 STM32内部结构
STM32 MCU系列包含五个产品线:1.基本型系列STM32F101:36MHz 最高主频,具有高达1MB的片上闪存。2.USB基本型系列STM32F102:48MHz最高主频,具有全速USB模块。3.增强型系列STM32F103:72MHz最高主频,具有高达1MB的片上闪存,集成电机控制、USB和CAN模块。4.互联型系列STM32F105/107:72MHz最高主频,具有以太网MAC。CAN以及USB 2.0 OTG功能。
本系统采用STM32F103RBT6作为控制核心,该芯片具有6通道的16位PWM输出,RTC时钟,两个高速SPI,两个IIC,三个串口,自带USB和CAN接口。具有128K flash和20K 的SRAM,對本系统来说足够了,同时以后还有很大的升级空间。
本系统采用VS1053解码芯片,VS1053是荷兰VLSI公司出品的一款高性能的解码芯片。它不仅可以实现对MP3/OGG/WMA/FLAC/WAV/AAC/MIDI等音频格式的解码,同时还可以支持ADPCM/OGG等格式的编码,性能相当强大。
VS1053的特性
1.支持OGG/MP3/WMA/WAV/FLAC(需要加载patch)/MIDI/AAC等众多的音频格式;
2.对话筒输入或者线路输入的音频信号进行OGG(需要加载patch)/IMA ADPCM编码;
3.高低音控制;
4.带有EarSpeaker空间效果(用耳机虚拟现场空间效果);
5.单时钟操作12.13MHz;
6.内部PLL锁相环时钟倍频器;
7.低功耗;
8.内含高性能片上立体声DAC,两声道无相位差;
9.过零交差侦测和平滑的音量调整;
10.内含能驱动30 欧负载的耳机驱动器;
11.模拟,数字,I/O 单独供电;
12.为用户代码和数据准备的16KB片上RAM;
13.可扩展外部DAC的I2S接口;
14.用于控制和数据的串行接口(SPI);
15.可被用作微处理器的从机;
16.特殊应用的SPI Flash引导;
17.供调试用途的UART接口;
18.新功能可以通过软件和 8 GPIO 添加。
VS1053解码芯片电路原理图如图2所示
图2 VS1053解码芯片电路原理图
SD 卡(Secure Digital Memory Card)中文翻译为安全数码卡,是一种基于半导体快闪记忆器的新一代记忆设备,它被广泛地使用于便携式装置上(数码相机、个人数码助理(PDA)和多媒体播放器等)。SD 卡由日本松下、东芝及美国 SanDisk 公司于 1999 年 8月共同开发研制。SD 记忆卡重量很轻只有 2 克,大小也只有一张邮票那么大,但却拥有高记忆容量、快速数据传输率、极大的移动灵活性以及很好的安全性。
TFT-LCD 即薄膜晶体管液晶显示器。其英文全称为:Thin Film Transistor-Liquid Crystal Display。TFT-LCD在液晶显示屏的每一个象素上都设置有一个薄膜晶体管(TFT),可有效地克服非选通时的串扰,使显示液晶屏的静态特性与扫描线数无关,因此大大提高了图像质量。TFT-LCD 也被叫做真彩液晶显示器。
TFTLCD 显示需要的相关设置步骤如下:
① 将 STM32 与 TFTLCD 模块相连接的 IO设置为输出。
② 向 TFTLCD 写入一系列的设置,用来启动 TFTLCD 的显示。
③ 通过编写的函数就可以将字符和数字送到 TFTLCD 模块上。
软件设计
主模块模块是系统执行最顶层的模块,进行系统的初始化,然后实现系统功能。它的目录结构
图3 主函数的目录结构
FATFS相关代码:
(1)模块介绍:
ff.c 文件是移植到本系统上的 FAT 文件体统
disio.c FATFS 和disk I/O模块接口文件
exfuns.c FATFS拓展代码
mycc936.c cc936.c修改后的代码
(2)目录结构
图4 FATFS的目录结构
USMART
(1)模块介绍
usma rt.c 负责与外部交互等
usmat_str.c 主要负责命令和参数解析
usmart_config.c 主要由用户添加需要由usmart 管理的函数
(2)目录结构
图5 USMART的目录结构
TEXT
(1)模块介绍
fontupd.c 此部分代码主要是字库的更新操作
text.c 一些函数的申明
(2)目录结构
图6 TEXT的目录结构
APP
(1)模块介绍
mp3player.c mp3驱动播放代码
recorder.c wav录音驱动代码
(2)目录结构
图7 APP的目录结构
本次设计的最终成功如图8所示,整体就是一块MINI STM32开发板,加一块VS1053解码芯片模块。硬件上就可以实现录音功能了。
图8 整体图