引言
对于诸如便携式
MP3播放器等独立式MP3应用,其是一片MP3解码芯片。芬兰VLSI Solution公司于去年十月出品的一款MP3解码芯片--VS1001K,片内含立体声
数模转换(DAC)和耳机驱动、支持PCM数据输入,具有体积小、功耗低、接口简单、价廉等特点,是MP3解码芯片中的佼佼者。
内部结构及引脚功能
在一片VS1001K内部嵌入了MP3解码VS_DSP及与外部
微处理器接口电路:串行数据接口(SDI)和串行控制接口(SCI)。具体如图1所示。
性能特点
(1)与外部微处理器接口
通过VS1001K的SDI和SCI(均是采用SPI
总线结构),微处理器可向其传送MP3数据和对其功能实施控制。
SDI作用与特点:作用:外部微处理器通过此接口向VS1001K传送MP3数据。
特点:(1)SDI可以在“主”或“从”模式下工作(由寄存器MODE的位1SM_IBMODE设定)。
(2)SDI在“主”模式下工作时,VS1001K产生DCLK信号(是512还是1024KHz由MODE的位SM_IBCLK决定)。SDI在“从”模式下工作时,DCLK信号由外部输入(DCLK:SDI时钟信号输入端)。
(3)SDI是以字节为单位进行数据传送,在DCLK的上升沿或下降沿(由MODE的位SM_DACT决定),将数据信号SDATA打入,传送时是位(MSB)还是位(LSB)在前由MODE的位SM_BYTEORD决定(SDATA:SDI数据输入端)。
(4)为确保数据传送时不发生错位,SDI具有字节同步信号BSYNC。
(5)当SDI在“从”模式下工作时,如果片内缓存(FIFO)空间允许,VS1001K会发出一个数据请求信号DREQ(高),表明此时至少可以接收32个字节的MP3数据。
SCI作用与特点:
作用:微处理器通过此接口对VS1001K的功能进行控制,在具体的实现上是通过对SCI的15个16位寄存器(详见表1)的读、写操作来完成的。
特点:SCI通信协议包括“指令字节”、“地址字节”和一个“字”(16位)三部分。指令字节:取值0x03表示读寄存器,取值0x02表示写寄存器。地址字节:寄存器的地址(0x00-0x0E)。字:指定寄存器读出或写入值。
(2)内部数据流动
如图2所示。首先,根据MODE寄存器SM_DAC位的设置,VS1001K接收MPEG编码或PCM编码的数据,并对其进行解码。然后,将数据送到高/低音增强器(此时,高/低音增强器SM_BASS=1表示开)。如果SCI的寄存器A1ADDR不为零,接下来数据将被送到用户程序中,之后,数据被送到了音量
控制单元和FIFO中,经过数模转换将音频输出。
应用
作为协处理器,VS1001K通过SDI和SCI与外部微处理器的接口非常简单,见图3所示。同时由于VS1001K内置了数模转换和耳机驱动等功能,因而其外围辅助电路也非常简单。如果受到微处理器的I/O端线数量限制,还可采用图4所示连接方案。
以图4连接为例,读写SCI寄存器或向SDI发送MP3数据编程可参考以下步骤:
写SCI寄存器:(以音量设置为例,音量寄存器的地址为0x0B,左右声道音量分别设置为-2dB、-3.5dB);
GIO1=0,启动SCI(XCS=0);
向SCI写4字节(0x02,0x0B,0x04,0x07);//每级为-0.5dB;
GIO1=1,结束SCI传输。
读SCI寄存器:(仍以读音量寄存器为例);
GIO1=0,启动SCI;
向SCI写2字节(0x03,0x0B)数据;//读操作,0x0B为音量寄存器;
向SCI写任意内容的一字节数据,读取微处理器的MISO,此时其值为音量寄存器的高8位;
向SCI写任意内容的一字节数据,读取微处理器的MISO,此时其值为音量寄存器的低8位;
合成音量寄存器值;
GIO1=1,结束SCI传输。
向SDI发送MP3数据:
设置VS1001K为“从”工作模式;
等待,直到DREQ=1;
GIO1=1,使SCK输出到DCLK;
对于每个字节重复下述步骤:
BSYNC=1(BSYNC为SDI的字节同步信号);
启动SPI传输;
等待8位传输结束;
BSYNC=0;
等待SPI结束。