I2S是用于在两个芯片之间传送音频的标准接口。该协议类似于一个串行外设接口(SPI),只是增加了几个额外的信号。但是,音频数据的性质使得为I2S总线计时比想象的要困难。图2显示了编解码器和主芯片之间典型的I2S总线连接。 I2S总线包括(图3): • Bit clock:用于从Data In和Data Out线路读取数据的时钟。 • Word select:也被称为Left-Right Clock。该信号用于区分左右信道。 • Data out: 主芯片输出的串行数据流。 • Data in:来自编解码器的串行数据流。
图三:I2S总线的主要构件包括bit clock、word select、data in和data out 此外,大多数编解码器还需要一个主时钟(MCLK),用于为编解码器的内部逻辑计时。 音频数据有两种典型的分辨率:16位和24位。如果我们考虑一个立体声数据流,一个采样周期中的总数据流为32或48位。这个周期通常是48/44.1/32 kHz。大多数编解码器在一个word-select周期中最多支持32位,但分辨率可能仍为24位,因为要用0填充到最后。 这将每个采样周期的总数据增至64位。如果我们考虑48-kHz的24位立体声,我们所需的位时钟将为48 × 64 × 2,即6.144 MHz。 编解码器对主时钟的要求取决于所用的编解码器的品牌和类型。现代编解码器支持多个时钟模式,但每个模式都是采样频率(fS).的整数倍。主时钟的值通常为fS的128/256/512倍。因此,48-kHz采样频率的时钟值为 6.144/12.288/24.576 MHz。 USB音频同步 同步来自于I2S 接口的流入/流出数据包是实现USB音频需要克服的一个基础性的问题。USB类别规范定义了几种不同的实现方法: • 同步模式:在同步模式中,从设备的音频时钟将与USB帧起始同步(每1 ms)。这简化了系统的缓冲器管理工作,更加便于维持一个一致的数据流。 • 异步模式:在异步模式中,音频电路的从设备运行一个完全独立于USB时钟的时钟。使用一个通过USB接口的反馈路径来保持数据速率之间的同步。 |