一种基于DAB接收机的MP3播放器设计方案
扫描二维码
随时随地手机看文章
引言
近年来,数字音频广播(Digital Audio Broadcasting,DAB)凭借其音质好,灵敏度高,频谱利用率高等诸多优点引起了国际通信广播行业的关注,并取得了飞速的进展。广电总局于 2006年6月推出的《30~3000 MHz地面数字音频广播系统技术规范》,不仅使DAB在我国有了标准的支持,更对DAB在全国的普及产生了重大而积极的影响。考虑到便携式MP3播放器在当今社会的普及程度与消费者对其的依赖性,在DAB接收机中融合MP3解码功能对消费市场的开拓是很必要的。本文在不改动一款DAB接收整机原有性能的基础上,提出了一种适当加入MP3解码功能的可行性方案。
1 系统总体结构
1.1 DAB接收系统结构
图1 DAB接收系统结构框图
DAB接收系统是基于重庆邮电大学微电子重点实验室自主研发的一款名为ID200的基带解码芯片设计而成。
其结构框图如图1所示。ID200具有面积较小、功耗极低等特性。MCU采用Atmel公司推出的AT91SAM7S64微处理器,该芯片具有 64 KB片内高速Flash存储器、32个可编程的复用I/O、SPI和TWI等丰富的内部集成资源,性价比较高。该接收系统的灵敏度在3波段与L波段能达到 -97 dBm以上。MPEG L2音源解码,支持48 kHz和24 kHz采样频率,自动识别声道模式,支持单通道、双通道、立体声。
1.2 主要器件选择
考虑到DAB接收机的基带解码芯片尚未加入MP3解码功能,以及生产成本、单片机速率、芯片成熟度等因素,采用了ST公司的STA013解码芯片。该芯片具有以下特点:支持MPEG1、MPEG2与MPEG2.5格式解码;支持立体声、双声道、单声道解码;支持8~320 kbps的压缩速率;串行位流输入和PCM输出接口,支持I2C总线;低功耗消耗,2?4 V时为85 mW;10 MHz、14?31818 MHz、14?7456 MHz的外部输入时钟,或内嵌工业标准XTAL晶振,以满足不同频率需求。
由于STA013没有DAC和耳机功放的功能,需选用DAC芯片,这里选用Maxim公司的MAX9850芯片。该芯片是一款低功耗、高性能的立体声音频DAC,集成了直接驱动耳机放大器,允许放大器输出直接驱动耳机,无需大量隔直电容,可节约成本和布线空间,同时还提供了I2C总线和PCM输出接口。
考虑到便携式整机的开发与存储器的普及程度,本方案选用MicroSD卡作为音频数据存储单元。MicroSD卡体积超小,却拥有着传输速度高、移动灵活性强、安全可靠的诸多优势,可以运用于各类的数码产品,不浪费产品内部设计的空间。同时,它采用FAT16/32文件系统,且提供了SPI接口,便于消费者文件下载与管理。
2 方案原理与设计思路
2.1 方案原理
DAB接收机中融合MP3解码功能的方案如图2所示。这里主要介绍与MP3解码相关的部分。AT91SAM7S64微处理器利用SPI接口的片选线,最多能与4个从属设备进行通信。该系统中MCU的4根SPI片选线分别选中ID200、MicroSD卡、STA013以及液晶显示模块。RF芯片和ADC分别选用Maxim公司的MAX2170和MAX1191。MCU通过SPI总线将存在SD卡中的音频数据读取到MCU内的缓冲器中,然后再通过 SPI总线将数据发送到STA013中进行音频解码,解码后的音频数据流能通过PCM输出接口送入MAX9850,经过D/A转换和耳机功放,最终由耳机输出。
图2 DAB结合MP3解码功能的系统方案
STA013主要是靠I2C总线来传输控制信息,串行数据线接收音频数据。可以将由SDI、SCKR、DATA_REQ三个引脚组成的串行数据线,看成是一个只有SIMO(从机输入主机输出)没有SOMI(从机输出主机输入)的SPI总线。当DATA_REQ置高时,将MCU缓冲器中的数据以尽可能快的速度通过SDI引脚输入STA013,利用SCKR为解码芯片提供串行时钟。当STA013的缓冲区快溢出时将DATA_REQ置低,数据停止传输。MCU的I2C总线与STA013的I2C接口相连,利用其传输命令、初始化解码芯片及控制解码进程。
2.2 设计思路
图3 MP3解码系统结构框图
MP3解码系统中各模块的连接如图3所示。SD存储卡系统定义了SD和SPI两种通信协议,应用时可以选择其中一种模式。由于本方案中采用的 AT91SAM7S64没有提供硬件的SD总线接口,但提供了SPI总线接口,为了避免用软件方式将I/O口模拟为SD总线接口,这里选用SPI总线模式进行Micro SD卡与MCU之间的命令和数据通信。SD卡上电时总是处于SD模式下,如果系统想使用SPI模式进行通信,可以在SD卡发送复位命令CMD0期间,将主控片选(SD_CSN)信号置低,从而进入SPI模式。通过掉电再上电,能够使SD卡系统重新回到SD模式。Micro SD卡是按簇存储的,一簇中又有32个扇区,每个扇区可存放512个字节的数据。由于SD卡、STA013和液晶都是通过SPI总线与MCU进行通信,所以要处理好总线通信的时序问题。在SD卡初始化时打开的SPI总线,需要在获取卡信息后关闭,然后打开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解码功能,对于提高整机的便携性、开发简易性起到至关重要的作用,这将是今后优化设计方案的一个重要方向。