单片机实现MP3播放的方法
1、VS1003芯片
1)芯片简介
VS1003是由荷兰VLSI公司出品的一款单芯片的MP3/WMA/MIDI音频解码和ADPCM编码芯片,其拥有一个高性能低功耗的DSP处理器核VS_DSP,5K的指令RAM,0.5K的数据RAM,串行的控制和数据输入接口, 4个通用IO口,一个UART口;同时片内带有一个可变采样率的ADC、一个立体声DAC以及音频耳机放大器。
VS1003通过一个串行接口来接收输入的比特流,它可以作为一个系统的从机。输入的比特流被解码,然后通过一个数字竟是控制器到达一个18位过采样多位 ε-ΔDAC。通过串行总线控制解码器。除了基本的解码,在用户RAM中它还可以做其他特殊应用,例如DSP音效处理。
2)芯片实物与SiriuS板上的VS1003
3)芯片封装
以下的讲述都是针对于LQFP-48封装的。
4)VS1003特性
1.能解码MPEG1 与MPEG2音频层III(CBR+VBR+ABR);WMA 4.0/4.1/7/8/9 5~384kbps所有流文件;WAV(PCM+IMA AD-PCM);产生MIDI/SP-MIDI文件。
2.对话筒输入或线路输入的音频信号进行IMA ADPCMM编码
3.支持MP3和WAVV流
4.高低音控制
5.单时钟12~13MHz
6.内部PLLL锁相环时钟倍频器
7.低功耗
8.内含高性能片上立体声数模转换器,两声道间无相位差
9.内含能驱动30欧负载的耳机驱动器
10.模拟,数字,I/O单独供电
11.为用户代码和数据准备的5.5KB片上RAM
12.串行的控制/数据接口
13.可被用作微处理器的从机
14.特殊应用的SPI Flash引导
15.借高度用途的UART接口
16.新功能可以通过软件和4 GPIO添加
5)VS1003的引脚定义
管脚名称 | LQFP-48 | 管脚类型 | 管脚功能 |
MICP | 1 | AI | 同相差分话筒输入,自偏压 |
MICN | 2 | AI | 反相差分话筒输入,自偏压 |
XRESET | 3 | DI | 低电平有效,异步复位端 |
DGND0 | 4 | DGND | 处理器核与I/O地 |
CVDD0 | 5 | CPWR | 处理器核电源 |
IOVDD0 | 6 | IOPWR | I/O电源 |
CVDD1 | 7 | CPEW | 处理器核电源 |
DREQ | 8 | DO | 数据请求,输入总线 |
GPIO/DCLK | 9 | DIO | 通用I/O2 /串行数据总线时钟 |
GPIO3/SDATA | 10 | DIO | 通用I/O3 /串行数据总线数据 |
XDCS/BSYNC | 13 | DI | 数据片选端/字节同步 |
IOVDD1 | 14 | IOPWR | I/O 电源 |
VCO | 15 | DO | 时钟压控振荡器VCO 输出 |
DGND1 | 16 | DGND | 处理器核与I/O 的地 |
XTALO | 17 | AO | 晶振输出 |
XTALI | 18 | AI | 晶振输入 |
IOVDD2 | 19 | IOPWR | I/O电源 |
DGND2 | 20 | DGND | 处理器核与I/O 地 |
DGND3 | 21 | DGND | 处理器核与I/O 地 |
DGND4 | 22 | DGND | 处理器核与I/O 地 |
XCS | 23 | DI | 片选输入,低电平有效 |
CVDD2 | 24 | CPWR | 处理器核电源 |
RX | 26 | DI | UART接收口,不用时接IOVDD |
TX | 27 | DO | UART发送口 |
SCLK | 28 | DI | 串行总线的时钟 |
SI | 29 | DI | 串行输入 |
SO | 30 | DO3 | 串行输出 |
CVDD3 | 31 | CPWR | 处理器核电源 |
TEST | 32 | DI | 保留做测试,连接至IOVDD |
GPIO0/SPIBOOT | 33 | DIO | 通用I/O0 /SPIBOOT,使用100K 下拉电阻 |
GPIO1 | 34 | DIO | 通用I/O1 |
AGND0 | 37 | APWR | 模拟地,低噪声参考地 |
AVDD0 | 38 | APWR | 模拟电源 |
RIGHT | 39 | AO | 右声道输出 |
AGND1 | 40 | APWR | 模拟地 |
AGND2 | 41 | APWR | 模拟地 |
GBUF | 42 | AO | 公共地缓冲器 |
AVDD1 | 43 | APWR | 模拟电源 |
RCAP | 44 | AIO | 基准滤波电容 |
AVDD2 | 45 | APWR | 模拟电源 |
LEFT | 46 | AO | 左声道输出 |
AGND3 | 47 | APWR | 模拟地 |
LINE IN | 48 | AI | 线路输入 |
6)VS1003的功能寄存器
VS1003共有16个16位的寄存器,地址分别为0X0~0XF;除了模式寄存器(MODE,0X0)和状态寄存器(STATUS,0X1)在复位后的初始值分别为0X800和OX3C外,其余的寄存器在VS1003初始化后的值均为0。下面将VS1003各寄存器逐一进行介绍。
1.MODE(地址:0X0 可读写)
bit0:SM_DIFF
SM_DIFF=0 正常音频相位
SM_DIFF=1 左声道反转
当SM_DIFF置位时,VS1003将左声道反相输出,立体声输入将产生环绕效果,对于单声道输入将产生差分(反相)左/右声道信号。
bit1:SM_SETTOZERO
置零。
bit2:SM_RESET
SM_RESET=1,VS1003软复位。软复位之后该位会自动清零。
bit3:SM_OUTOFWAV
SM_OUTOFWAV=1,停止WAV解码。
当你要中途停止WAV、WMA或者MIDI文件的解码时,置位SM_OUTOFWAV,并向VS1003持续发送数据(对于WAV文件发送0)直到将SM_OUTOFWAV清零;同时SCI_HIDAT1也将被清零。
bit4:SM_PDOWN
SM_PDOWN=1,软件省电模式,该模式不及硬件省电模式(可由VS1003的XRESET来激活)。
bit5:SM_TESTS
SM_TESTS=1,进入SDI测试模式。
bit6:SM_STREAM
SM_STREAM=1,使能VS1003的
单片机MP3播 相关文章:
- Windows CE 进程、线程和内存管理(11-09)
- RedHatLinux新手入门教程(5)(11-12)
- uClinux介绍(11-09)
- openwebmailV1.60安装教学(11-12)
- Linux嵌入式系统开发平台选型探讨(11-09)
- Windows CE 进程、线程和内存管理(二)(11-09)