本帖最后由 KuMo_2011 于 2013-10-31 23:08 编辑
I2S (Inter-IC Sound 或Integrated Interchip Sound )是集成芯片间的声音总线的称呼,它是IC 间传输数位音讯资料的一种接口标准,采用序列的方式传输2 组(左右声道)资料。它是飞利浦公司为数字音频设备之间的音频数据传输而制定的一种总线标准,该总线专责于音频设备之间的数据传输,广泛应用于各种多媒体系统。I2S 常被使用在传送CD 的PCM 音讯资料到CD 播放器的DAC 中。由于I2S 将资料讯号和时脉讯号分开传送,它的jitter失真十分地小。
K60芯片的I2S编程基本方法正常模式中I2S发送数据的条件是: (1)I2S使能(CR[SSIEN]=1); (2)使能FIFO,如果使用FIFO,配置发送和接收水位; (3)向发送数据寄存器写数据; (4)发送器使能(CR[TE]=1); (5)帧同步有效(对于连续时钟的情况); (6)位时钟开始(对于打开时钟的情况)。
正常模式接收数据应该满足下列条件。 (1)I2S使能(CR[SSIEN]=1); (2)使能接收FIFO(可选的); (3)使能接收器(CR[RE]=1); (4)帧同步有效(对于持续时钟情况); (5)位时钟开始(对于门控时钟情况)。
I2S 是全双工的串口,它可以使芯片和各种串行设备通信,这些串行设备有:•标准解码器•数字信号处理器(DSPs)•微处理器•外设•实现了inter-ICsound 总线(I2S)和Intel® AC97 标准的音频解码器
I2S 包含以下特性: •有独立或共享的内/外部时钟和帧同步的独立(异步)或共享(同步)的发送和接收部分,在主或从模式下工作. •使用帧同步的正常操作模式 •允许多个设备共享端口多大三十二个时段的网络操作模式 •无需同步帧的门控时钟操作模式 •两组FIFO 发送和接收队列。四组FIFO 队列中每组都是15x32 位。两组Tx/Rx FIFO 队列可以用于网络模式从而为发送和接收提供两个独立的通道 •可编程数据接口模式,例如I2S, lsb- andmsb-aligned•可编程单词长度(8, 10, 12, 16, 18, 20, 22or 24 位) •用于帧同步和时钟发生器的编程选项•可编程的I2S 模式(主,从,正常) •在I2S 的主模式下过采样时钟作为SRCK 的输出•AC97 支持 •用于发送和接收部分的完全独立的时钟和帧同步选择。在AC97 标准中时钟来自外部源,而帧同步是内部产生的 •外部网络时钟输入用于I2S 的主模式。当在同步模式下,主模式下的采样频率的过采样时钟可作为SRCK 的输出 •可编程的内部时钟分频器 •为减少CPU 开销的发送和接收的时隙屏蔽寄存器 •I2S 的断电特性
K60 I2S模块的初始化 步骤1. 执行一个上电复位或I2S 复位(CR[I2SEN] = 0) 步骤2. 位配置I2S 设置所有的控制位(见下表1) 步骤3. 通过IER 使能合适的中断/DMA 请求 步骤4. 设置CR[I2SEN]位来使能I2S 步骤5. 在AC97 模式下,编程设定ATAG 寄存器后(如果需要,对于AC97 静态模式)设置ACNT[AC97EN]位 步骤6. 在AC97 静态模式,在ATAG 寄存器如果没有编程设定帧有效位不要编程设定段请求位。 步骤7. 门控时钟模式(见下表2) 步骤8. 置CR[TE/RE]位 步骤9. 为了确保I2S 的合适的操作,在改变下表列出的任何I2S 控制位之前,使用上电或I2S 复位。
表1
表2
|