用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 ?
《用CS43L42音频解码器和EP7212嵌入式处理器设计的MP3文件播放系统》相关文章
- › 用CS43L42音频解码器和EP7212嵌入式处理器设计的MP3文件播放系统
- 在百度中搜索相关文章:用CS43L42音频解码器和EP7212嵌入式处理器设计的MP3文件播放系统
- 在谷歌中搜索相关文章:用CS43L42音频解码器和EP7212嵌入式处理器设计的MP3文件播放系统
- 在soso中搜索相关文章:用CS43L42音频解码器和EP7212嵌入式处理器设计的MP3文件播放系统
- 在搜狗中搜索相关文章:用CS43L42音频解码器和EP7212嵌入式处理器设计的MP3文件播放系统