关于I2S及音频小结

 

1.   I2S的基本知识

1.1 I2S简介

I2S总线英文简称Inter-ICSound,是飞利浦公司为数字音频设备之间的音频数据传输而制定的一种总线标准,该总线专门用于音频设备之间的数据传输,广泛应用于各种多媒体系统I2S也是同步串行通信接口。

 

1.2 I2S的连接线及作用

1) 串行时钟SCLK,也叫做时钟(BCLK),即对应数字音频的每一位数据,SCLK都有1个脉冲。SCLK的频率=2×采样频率×采样位数。

2)  帧时钟LRCK(也称WS),用于切换左右声道的数据。LRCK“1”表示正在传输的是右声道的数据,为“0”则表示正在传输的是左声道的数据。LRCK的频率等于采样频率。

3)  串行数据SDATA0,输入数据,就是用二进制补码表示的音频数据,如果是半双工就一根数据线。

4)  串行数据SDATA1,输出数据,就是用二进制补码表示的音频数据,全双工有两根数据线。

5)  MCLK,称为主时钟,也叫系统时钟Sys Clock),是采样频率的256倍或384倍。为了使系统间能够更好地同步

 

1.3    I2S 音频标准

四种不同音频标准:

1)  I2S Philips标准。

2) MSB对齐标准。

3) LSB 对齐标准。

4) PCM 标准。

1.4    频率计算

I2S 比特率 = 每个通道的位数 × 通道数 × 音频采样频率

 

2.    Nordic52840和STM32F4系列I2S的比较

 

2.1   Nordic52840的I2S

 

2.1.1  I2S的主要特性

1)  Simultaneous bi-directional (TX and RX) audio streaming(主要说明I2S的只支持全双工,52840没有半双工的概念)

2)  8, 16 and 24-bit sample width。

3)  Low-jitter Master Clock generator(有专门的主时钟MCLK发生器)。

4)  Various sample rates

 

2.1.2  LRCK SCK MCK的作用联系和区别

2.1.2.1  Leftright clock (LRCK)

 

In I2S mode, each frame contains oneleft and right sample pair, with the left sample being transferred during thelow half period of LRCK followed by the right sample being transferred duringthe high period of LRCK.

LRCK always toggles around thefalling edge of the serial clock SCK.

Consequently, the LRCK frequency isequivalent to the audio sample rate(LRCKfrequency相当于音频的采样频率)。

LRCK = MCK/CONFIG.RATIO

可以设置的CONFIG.RATIO如下:

2.1.2.2  Serial clock (SCK)

 

        The serial clock (SCK), often referred to as the serial bit clock, pulsesonce for each data bit being

transferred on the serial data lines SDIN and SDOUT(每一位数据一个波形)。

SCK = 2 * LRCK * CONFIG.SWIDTH

可以设置的CONFIG.SWIDTH如下:

 

 

 

2.1.2.3 Master clock (MCK)

1)  SCK frequency can never exceed the MCK frequency, whichcan be formulated as:

CONFIG.RATIO>= 2 * CONFIG.SWIDTH

2)  The MCK/LRCK ratio shall be a multiple of 2 *CONFIG.SWIDTH, which can be formulated as:

    Integer =(CONFIG.RATIO / (2 * CONFIG.SWIDTH))

 

主时钟MCLK可以设置的频率

 

如上图所示MCLK可以设置的范围是0.256MHz—16.0MHz.

 

Relation between RATIO, MCK and LRCK.

 

 

2.2   STM32F4xx的I2S

 

I2S2ext_SD 和 I2S3ext_SD 为扩展 SD 引脚,用于控制 I2S 全双工模式。

当使能 I2S 功能(将 SPI_I2SCFGR 寄存器中的 I2SMOD 位置 1)时,SPI 可用作音频 I2S 接口。此接口使用几乎与 SPI 相同的引脚、标志和中断。

2.2.1  I2S的主要特性

I2S 与 SPI 共用以下三个引脚:

1)  SD:串行数据(映射到 MOSI 引脚),用于发送或接收两个时分复用的数据通道上的数 据(仅半双工模式)。

2)  WS:字选择(映射到 NSS 引脚),是主模式下的数据控制信号输出以及从模式下的数 据控制信号输入。

3)  CK:串行时钟(映射到 SCK 引脚),是主模式下的串行时钟输出以及从模式下的串行时 钟输入。

 

 

多出来的3个管脚如下:

4) I2S2ext_SD 和 I2S3ext_SD:用于控制 I2S 全双工模式的附加引脚 (映射到 MISO 引脚)。 当某些外部音频设备需要使用主时钟输出时,可以使用附加引脚:

5) MCK:当 I2S 配置为主模式(并且 SPI_I2SPR 寄存器中的 MCKOE 位置 1)时,使用 主时钟(单独映射)输出此附加时钟,该时钟输出频率 256 × FS,其中 FS 为音频信号 采样频率。

其他的特性:

1) 位可编程线性预分频器,可实现精确的音频采样频率(从 8 kHz 到 192 kHz)

2) 数据格式可以是 16 位、24 位或 32 位

3) 数据包帧由音频通道固定为 16 位(可容纳 16 位数据帧)或 32 位(可容纳 16 位、 24 位、32 位数据帧)

4) 可输出主时钟以驱动外部音频元件。比率固定为 256 × FS(其中 FS 为音频采样频率)

2.2.2  支持的音频格式

有四种数据和帧格式组合,可采用下列格式发送数据:

1) 将 16 位数据封装在 16 位帧中

2) 将 16 位数据封装在 32 位帧中

3) 将 24 位数据封装在 32 位帧中

4) 将 32 位数据封装在 32 位帧中

 

 

2.2.3  时钟发生器

 

 

如上图所示,两个 I2S(I2S2和 I2S3)均有专用的 PLL(PLLI2S),可生成更为精确的时钟。

I2S(I2S2 和 I2S3)时钟可由 I2S_CKIN 引脚上的外部时钟提供。

 

 

3.  音频的业界标准及基本知识

 

3.1  音频的采样频率

在业界有三套采样率并存:

1)  44.1kHz及其下采样、上采样:22.05kHz, 11.025kHz88.2kHz, 176.4kHz

2)   48kHz及其下采样、上采样:24kHz, 12kHz,96kHz, 192kHz

3)   8kHz, 16kHz, 32kHz, 64kHz

3.2 音频小知识

       人耳的听觉是有限的,介于20Hz20kHz。跟据Nyquist采样定理,采样频率只要超过信号带宽的2倍就不会产生混迭。在数字媒体领域,如音乐CD的规范,都是以44.1kHz作为标准采样率的。因为44.kHz大于20kHz的两倍,所以实际上44.1kHz的采样率是足够用的。

4.     关于音频的问答

问:三套采样标准怎么选取?

答:但是现在普遍在工程中都是使用48kHz或者96kHz频率录音,只有在最终母带处理时才会转成44.1kHzCD格式,这样减少多次采样率转换造成的失真。

问:插在电脑上的USBAudio 应该选择什么样的采样频率?

答:而在电脑领域,作为音频硬件codec标准的AC97规范只规定了48kHz

 

问:常用音频设备是12比特点位深还是24比特点位深?

答:专业录音行业的最高质量标准就是:24比特定点位深、192000Hz采样频率,简称“24Bit/192KHz() 24-bit模拟输入的模数转换:采样率192kHz”因此普通的音频设备会选择12比特点位深。

 

 

 

问:MCU在和codec通信的时候是作为master还是slave?

答:如果codec使用外部晶振作为MCLK,那么很多专业人士建议MCU作为slave设备。Nordic52840有专门的clock发生器,如果用Nordic52840的clock发生器给codec提供MCLK,MCU这时作为slave还是master没有太大的区别,但是作为master比较好设置,建议为master设备。

 

问:codec是使用外部晶振提供MCLK还是使用MCU提供MCLK

答:外接晶振可能会和mcu出现频率不匹配的现象,从而导致声音失真。建议使用MCU提供MCLK。

 

问:fullUSB是否满足音频的传输?

答: full USB的速率为12MHz,音频所需要的带宽如下:

I2S 比特率 = 每个通道的位数 × 通道数 × 音频采样频率

Play: I2S 比特率 = 12 × 2 × 48kHz= 1152 kHz

Record: I2S 比特率 = 12 × 2 × 48kHz= = 1152 kHz

full USB的速率为12MHz > (Play: I2S 比特率 + Record: I2S)

结论:满足要求

发布了447 篇原创文章 · 获赞 128 · 访问量 59万+
展开阅读全文

没有更多推荐了,返回首页

©️2019 CSDN 皮肤主题: 程序猿惹谁了 设计师: 上身试试

分享到微信朋友圈

×

扫一扫,手机浏览