|
楼主 |
发表于 2013-11-26 21:52:18
|
显示全部楼层
I2S协议简介
数据是在SD线上以小端格式(MSB first)传输的,数据长度没有限制(通常是16/20/24/32/64位),数据是在SCK的上升沿或下降沿被发送,下降沿或上升沿被接收。
数据代表立体声音频,所以每个采样数据包含两个字,左声道采样数据和右声道采样数据。数据在同一个通道上分时传输,而不是两个通道。所以速率要乘以2。
控制信号WS(word select)是用表示传输的是左声道还是右声道。这个信号也用来表示数据的开始和结束。所以数据不需要有固定的长度,左声道数据和右声道数据也一样。
WS是在MSB之前被同步到SCK的上升沿或下降沿,所以保证有足够的时间来进行存取和移位操作。
在大部分的通信中,都有一个主设备和从设备。主设备提供SCK控制时钟和WS控制信号,而从设备只接收或发送数据。
I2S Phillips 16位/32位协议波形:
I2S_WAVE.jpg
I2S协议控制信号和配置
I2S_CTRL.jpg
STM32 I2S特性介绍
STM32实现了I2S特性,作为一个模式包含在SPI外设里。可以由软件配置选择SPI模式还是I2S模式。
STM32的I2S可以用单向通信模式,只发送或只接收,这个方向是由软件配置的。
I2S外设支持4种音频协议
• I2S飞利浦协议
• MSB协议
• LSB协议
• PCM协议(包括短PCM和长PCM)
它支持大部分音频频率(8 kHz, 16 kHz, 22.05 kHz, 44.1 kHz, 48 kHz等等)
当配置为Master模式的时候,STM32需要输出固定的频率时钟256 x Fs,其中Fs是音频的采样频率。同时codec需要配置为由STM32提供时钟。
CK的速率 = Fs x 每通道的位数 x 通道数
WS 的速率 = 采样频率Fs |
|