基于便携式DAB接收机的MP3播放器设计
线,需要在获取卡信息后关闭,然后打开LCD的SPI接口;在MP3节目播放时,需要关闭LCD的SPI,打开STA013的SPI总线。 STA013解码芯片有3个重要的接口,分别是串行输入接口、I2C接口以及PCM输出接口。串行输入接口的SDI、SCKR分别与MCU的SPI总线中的SIMO、SPICLK相连,由DATA_REQ向MCU提供中断信号。PCM输出接口与DAC的I2S接口相连,MCU通过I2C总线接口对MCU和DAC进行控制。在初始化STA013芯片时,必须先通过I2C总线接口写入由ST公司提供的配置文件。 该文件中,奇数项数据是I2C寄存器地址,偶数项数据是相对应的I2C寄存器缺省数值。STA013配置文件解析如图4所示。STA013和DAC的I2C地址分别为1000011和0010011,所以复用MCU的I2C总线接口时不存在设备冲突的问题。 图4 STA013配置文件解析 I2C总线接口读写数据时序如图5所示。 图5 I2C总线读写数据时序示意图 采用Mentor公司的PADS软件绘制电路图。基于STA013解码芯片和DAB系统各部分的连接电路如图6所示。 图6 STA013解码芯片与DAB系统连接电路 MP3解码的工作流程: ① 解码芯片的初始化。初始化STA013包括如下几个步骤:硬件复位STA013;SPI初始化;将由ST公司提供的配置文件通过I2C接口写入解码芯片;对解码后的PCM数据、PLL、解码器工作模式以及输入比特流时钟极性等进行配置。 ② 音频数据的传送。由于STA013具有较强的解码功能,因此当STA013需要数据(DATA_REQ为高)时,须立即通过SDI接口以尽可能快的速度(但要低于20 Mbps)传送给它。可以通过设置SPI总线的SPICLK来实现,这里将SPI时钟设置为4 MHz。数据以扇区为单位从MCU发向解码芯片的缓冲器,注意在用SPI传送数据时,需将BIT_EN端口置高才能进行有效的传送。STA013会自动决定数据输入与输出传输率的大小,当其缓冲存储器饱和时,它会终止数据请求。对于易变的比特流的MP3数据,STA013也能自动处理。另外,它还能根据自动探测到的MP3的采样频率合理调整DAC的时钟。 ③ 对音频数据的解码。通过获取MP3文件帧头来获取一些解码参数,从而自动适应不同MP3音频流的解码。例如,可以通过解码参数中的采样频率来自动调整音频的输出时钟频率等。 ④ 解码后音频流的输出。可将STA013的 SDO(PCM串行数据输出)、SCKT(PCM串行时钟输出)、OCLK(采样时钟)和LRCLK(左右声道时钟输出)引脚,分别与MAX9850的SDIN(串行数据输入)、BCLK(数字音频位时钟输入)、MCLK(主时钟输入)和LRCLK(左右声道时钟输入)相连。解码后音频流经过DAC转换为模拟音频信号后,再通过耳机功放,便可由耳机输出完整的PCM音频。 结语 该设计MP3解码方案是基于一种DAB接收机所提出的。由于该款DAB接收机采用的基带解码芯片ID200拥有极低功耗性(26 mW/128 kbps),所以MP3解码功能的加入首先要从整机功耗和成本考虑。而STA013解码芯片既满足低功耗的要求,又具备价格优势,且技术成熟度较高,故成为方案设计首选。但其体积相对较大,在PCB布板时应优化设计,以便符合便携要求。随着数字化广播在我国的迅速普及与DAB技术成熟度的提升,在DAB基带解码芯片中融入MP3解码功能,对于提高整机的便携性、开发简易性起到至关重要的作用,这将是今后优化设计方案的一个重要方向。 


- DAB接收机USB固件升级的实现(07-31)
- 基于stm32的MP3播放器调试经验(11-27)
- 汽车音响MP3播放器发射器剖析(07-24)
- 如何将DSP和MCU两者完美结合(08-10)
- 基于MCU+DSP的运动控制硬件平台设计(10-01)
- 微控制器省电管理方法(05-04)
