微波EDA网,见证研发工程师的成长!
首页 > 硬件设计 > 嵌入式设计 > 单片机实现MP3播放的方法

单片机实现MP3播放的方法

时间:12-02 来源:互联网 点击:
有一个东西你一定听说过或用过,那就MP3播放器。MP3播放器以其小巧的体积、强大的功能、优异的音质倍受人们的青睐。如果把它嵌入到我们的单片机系统中,实现音频输出,那么对系统的增色是不言而喻的。单独拿单片机来说,要解码MP3文件,是不可能的,因为从处理速度和资源各个方面都是不能满足要求的。所以要依赖于专用MP3解码芯片,而单片机要作的就是对其进行控制。这里我们围绕芬兰VLSI公司出品的VS1003来进行解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的

Copyright © 2017-2020 微波EDA网 版权所有

网站地图

Top