新型MP3解码芯片VS1001K及其应用_消费类电子论文
关键词:mp3 编码 播放器 vs1001k
1 引言
目前,INTERNET网上和便携式播放器所使用的MP3音频数据压缩方法已经成为一种公认的行业标准了。这种方法以其压缩率高、音质好而迅速风靡全世界。但实际上,许多MP3播放器的核心就是一片MP3音频解码芯片。VS1001K是芬兰VLSI Solution公司推出的新型MP3解码芯片。该芯片内含高质量的立体声数模转换器(DAC)和耳机驱动电路,它支持PCM数据输入,同时具有体积小、功耗低、接口简单、价格便宜等优点。因而有望成为新型MP3解码器的首选芯片。
2 VS1001K的功能结构
2.1 VS1001K的引脚功能
VS1001K具有两种封装形式:分别为28脚SOIC双列式和49脚BGA球栅阵列式。图1给出了28脚SOIC封装的引脚排列图。各引脚的具体功能说明如表1所列。
表1 vs1001k的引脚功能
引脚号 | 引脚名称 | 功 能 |
1 | dreq | 数据请求端口 |
2 | dclk | sdi时钟信号输入端 |
3 | sdata | sdi数据输入端 |
4 | bsync | 字节同步信号端 |
5,9,28 | dvdd | 数字电源 |
6,10,27 | dgnd | 数字地 |
7 | xtalo | 时钟信号输出 |
8 | xtali | 时钟信号输入 |
11 | xcs | 片选,低电平有效 |
12 | sclk | sci时钟输入端 |
13 | si | sci数据输入端 |
14 | so | sci数据输出端 |
15~17 | test0 | 备用测试端口 |
18,21,25 | agnd | 模拟地 |
19,23 | avdd | 模拟电源 |
20 | right | 右声道音频输出 |
22 | rcap | 外接电容接入端 |
24 | left | 左声道音频输出 |
26 | xreset | 电路复位端,低电平有效 |
表2 sci寄存器功能
寄存器名 | 地 址 | 类 型 | 功 能 |
mode | 0x00 | rw | 用于控制vs1001k的操作 |
status | 0x01 | rw | 当前vs1001k的状态 |
int_fctlh | 0x02 | - | 内部寄存器,一般不用 |
clockf | 0x03 | rw | 控制时钟频率和倍频器 |
decode_time | 0x04 | r | 确定解码时间(单位为秒) |
audata | 0x05 | r | 声音数据 |
wram | 0x06 | w | 用于向程序ram写入用户程序 |
wramaddr | 0x07 | w | 为wram操作设置基地址 |
hdat0 | 0x08 | r | 读取mp3表头数据 |
hdat1 | 0x09 | r | 读取mp3表头数据 |
a1addr | 0x0a | rw | 确定用户应用程序的开始地址 |
vol | 0x0b | rw | 用于音量控制,高、低字节分别为左、右声道。音量取值范围为0~ff,0位最大,ff为最小 |
reserved | 0x0c | - | 保留 |
a1ctrl[0] | 0x0d | rw | 用于控制用户应用程序 |
a1ctrl | 0x0e | rw | 用于控制用户应用程序 |
2.2 VS1001K的内部结构
VS1001K解码芯片内部集成有VS DSP处理器,同时它还集成有立体声音频DAC、立体声耳机放大驱动器、以及程序ROM和程序RAM等,此外,VS1001K还带有串行的数据接口和控制接口。图2是VS1001K的内部结构原理框图。
3 VS1001K的工作原理
VS1001K主要通过两个串行接口SCI和SDI来接收外部微处理器传送来控制命令和MP3数据。其中SCI用于接收外部微处理器传送来控制命令,SDI用来接收外部微处理器传送的MP3数据。
3.1 SCI控制接口
对VS1001K的控制主要是通过对SCI中的15个16位寄存器进行操作来实现的。表2所列是SCI的15个16位寄存器的名称、地址、类型和功能说明。实际上,对VS1001K的主要操作都是通过MODE寄存器来完成的,表3给出了MODE寄存器各位的操作功能说明。
表3 mode寄存器的操作方法
位 | 名 称 | 功 能 | 操作说明 |
0 | sm_diff | 差分输出控制 | 0为正常,1为左声道反相 |
1 | sm_ffwd | 快进 | 0为正常快速度,1为快进 |
2 | sm_reset | 软件复位 | 0时不复位,1时复位 |
3 | sm_mp12 | 是否解码mp1和2 | 0为只解mp3,1时解码mp1/2/3 |
4 | sm_pdown | 掉电控制 | 0为上电,1为掉电 |
5 | sm_dac | 数模转换模式控制 | 0为一般mpeg解码,1为pcm解码 |
6 | sm_dacmono | 立体声数模转换控制 | 0为立体声,1为单声道 |
7 | sm_bass | 高/低音增强器 | 0为关,1为开 |
8 | sm_dact | dclk触发沿 | 0为从msb开始,1为从lsb开始 |
9 | sm_byteord | 字节传送顺序 | 0为上升沿,1为降沿 |
10 | sm_ibmode | 工作模式 | 0为从模式,1为主模式 |
11 | sm_ibclk | vs1001k在主模式工作时,用于dclk频率设置 | 0时选512khz,1时选1024khz |
SCI和外部微处理器的通讯协议包括指令字节、地址字节和16位字三部分。其中指令字节取0X03时为读寄存器,取0X02时为写寄存器;地址字节的主要用途是确定地址寄存器的地址,其范围为0X00~0X0E.而16位字则用于指向指定寄存器写入或读出的值。图3所示是SCI寄存器的读写操作时序。
3.2 SDI数据接口
当外部微处理器通过SDI接口向VS1001K传送MP3数据时,在MODE寄存器的不同设定下,SDI可工作在主、从两种模式。
当SDI在主模式下工作时,其DCLK信号由VS1001K内部产生(具体是512kHz还是1024kHz由MODE寄存器的SM IBCLK位决定),而当SDI工作在从模式时,DCLK由外部输入。
SDI通常以字节为单位来进行数据传送,并在DCLK的上升沿或下降沿(具体由MODE寄存器的SM_DACT位决定)将SDATA数据信号输入。数据传送时采用高位在前还是低位在前是由MODE寄存器的SM DACT位来决定的。SDI采用BSYNC信号来确保数据传送时不出现错位的情况。
图3、图4
当SDI在从模式下接收数据时,如果片内FIFO还有足够的空间,VS1001K会发出一个高电平DREQ数据请求信号,以表示可以接收至少32个字节的MP3数据。
4 VS1001K的应用
图4是VS1001K通过SDI和SCI接口与外部微处理器进行连接的应用电路。从图中可见,由于VS1001K解码器在其芯片内部已经集成了数模转换器和耳机音频驱动电路,因而其外围电路十分简单。实际上,图4电路已经对VS1001K与微处理器的接口电路进行了优化。
关于读写SCI的寄存器或向SDI传送MP3数据的软件编程,对于不同的外部微处理器,其软件编程可能会有所不同。但都不是很复杂。限于篇幅,本文不再赘述。