用CS43L42音频解码器和EP7212嵌入式处理器设计的MP3文件播放系统

[10-10 20:38:44]   来源:http://www.88dzw.com  电子制作   阅读:8674

文章摘要:(4)SDOUT,数字音频数据输出。(5)SDIN,数字音频数据输入。用MSB/Left数据调整格式意味着数据在帧同步信号(LRCK)电位改变后立即被计时。MSB在第一位时是左调整,这与I2S格式相比有些不同,I2S格式的数据在改变电位后要延迟一个时钟。数据帧每帧是128位长,这样每个声道64位长。帧的大小和LRCK的运行周期在EP7212/7312中不能被设置。SCLK可从MCLK中得到,频率等于1/2 MCLK。缺省模式中,DAI处于主模式。该模式下自己产生的MCLK时钟等于9.216MHz。这样,SCLK等于4.608MHz。对于需要SCLK有不同速率的应用,DAI可以被设置成从模式。在

用CS43L42音频解码器和EP7212嵌入式处理器设计的MP3文件播放系统,标签:电子小制作,http://www.88dzw.com

(4)SDOUT,数字音频数据输出。

(5)SDIN,数字音频数据输入。

用MSB/Left数据调整格式意味着数据在帧同步信号(LRCK)电位改变后立即被计时。MSB在第一位时是左调整,这与I2S格式相比有些不同,I2S格式的数据在改变电位后要延迟一个时钟。数据帧每帧是128位长,这样每个声道64位长。帧的大小和LRCK的运行周期在EP7212/7312中不能被设置。SCLK可从MCLK中得到,频率等于1/2 MCLK。缺省模式中,DAI处于主模式。该模式下自己产生的MCLK时钟等于9.216MHz。这样,SCLK等于4.608MHz。对于需要SCLK有不同速率的应用,DAI可以被设置成从模式。在从模式下,外部源通过MCLK引脚给MCLK提供主时钟,然后分成两半生成SCLK。不管DAI模式如何设置,SCLK和LRCK通常都设置成输出。数据一般在SCLK的上升沿锁入,在下降沿释放。

DAI接口是一种高质量的数字音频接口,可以连接与DAI接口兼容的音频设备。EP7212 的DAI接口通过位时钟和帧同步时钟产生128bit帧数据。数字音频数据的接收和发送均采用全双工方式,对应于12采样深度的接收FIFO和8采样深度的发送FIFO。在DAI 接口信号中,MCLK是主时钟,它是音频采样频率的256倍,SCLK为音频采样频率的128倍,LRCK固定为采样频率。由于本系统中的MCLK连接外部时钟发生器,频率为11.2896MHz?所以采样频率为44.1KHz。其DAI接口时序图如图5所示。

图5

    DAI的帧长128bit?其中包括一个音频采样数据,在这128bit中,仅有32bit为实际的音频数据,其余输出均为零。左/右时钟作为帧同步信号,左/右时钟从高到低表示右声道的16bit数据,从低到高表示左声道的16bit数据。

b. DAI接口初始化

DAI初始化程序中首先应设置控制寄存器, 接着选择外部时钟有效以及在左发送FIFO数据少于一半时产生中断。然后清除状态寄存器上溢、下溢位,之后使DAI接口、发送FIFO和接收FIFO有效。最后打开DAI中断。

4.2 MP3文件的解码

ARM公司提供有基于ARM处理器音频文件解码库,它能够有效地解码MP3格式的歌曲,而输出16bit立体声PCM数据。

a. 解码库所定义的结构

·tSampleRate定义了解码数据PCM的采样率

typedef enum tagSampleRate

{

SR 11 025kHz?

SR 12kHz?

SR 44 1kHz?

SR 48kHz?

SR 32kHz?

SR Reserved

} tSampleRate ?

·tMPEGStatus 给出了MP3函数返回状态值。

typedef enum tagMPEGStatus

{

eNoErr?

eNoSyncword?

eCRCError?

eBrokenFrame?

eEndOfBitstream?

eDataOverflow?

} tMPEGStatus ?

上一页  [1] [2] [3] [4]  下一页


Tag:电子制作电子小制作维修教程知识 - 电子制作