音频I2S

2023-12-17 21:36
文章标签 音频 i2s

本文主要是介绍音频I2S,希望对大家解决编程问题提供一定的参考价值,需要的开发者们随着小编来一起学习吧!

前言
基于网上资料对相关概念做整理汇总,部分内容引用自文后文章。

学习目标:简单了解相关概念、相关协议。

1 概述
       数字音频接口DAI,即Digital Audio Interfaces,顾名思义,DAI表示在板级或板间传输数字音频信号的方式。相比于模拟接口,数字音频接口抗干扰能力更强,硬件设计简单,DAI在音频电路设计中得到越来越广泛的应用。图1和图2对比传统的音频信号和数字音频信号链的区别。

模拟音频
      在传统的音频电路(图1)中有麦克风、前置放大器、模/数转换器ADC、数/模转换器DAC、输出放大器,以及扬声器,它们之间使用模拟信号连接。随着技术的发展和对性能考虑,模拟电路逐渐被集成到设备两端,信号链中各集成电路间将出现更多的数字接口形式。

数字音频
       DSP通常都是数字接口的;换能器(Transducers, i.e. Mic & Speaker)、放大器一般而言只有模拟接口,但现在也正在逐渐集成数字接口功能。 目前,集成电路设计人员正在将换能器内的ADC、DAC和调制器集成到信号链一端,这样就不必在PCB上走任何模拟音频信号,并且减少了信号链中的器件数量。图2给出了一个完整数字音频接口的例子。

 2、I2S接口
   

2.1、I2S特点
1、支持全双工/半双工

2、支持主/从模式

3、和PCM相比,I2S更适合立体声系统。当然,I2S的变体也支持多通道的时分复用,因此可以支持多声道。

2.2 I2S主要有三个信号
       I2S是比较简单的数字接口协议,没有地址或设备选择机制。在I2S总线上,只能同时存在一个主设备和发送设备。主设备可以是发送设备,也可以是接收设备,或是协调发送设备和接收设备的其它控制设备。

       在I2S系统中,提供时钟(SCK和WS)的设备为主设备。

        图3是常见的I2S系统框图。在高端应用中,CODEC经常作为I2S的主控设备以精确控制I2S的数据流。

I2S包括两个声道(Left/Right)的数据,在主设备发出声道选择/字选择(WS)控制下进行左右声道数据切换。通过增加I2S接口的数目或其它I2S设备可以实现多声道(Multi-Channels)应用。

在I2S传输协议中,数据信号、时钟信号以及控制信号是分开传输的。

I2S协议只定义三根信号线:串行时钟信号SCLK(BCLK)、数据信号SD和左右声道选择信号WS。

(1)时钟信号 Serial Clock
       串行时钟SCLK,也叫位时钟BCLK。SCLK是模块内的同步信号,Slave模式时由外部提供,Master模式时由模块内部自己产生。不同厂家的芯片型号,时钟信号叫法可能不同,也可能称BCLK/Bit Clock或SCL/Serial Clock

       例如:设声音的采样频率为44.1 kHz,即声道选择信号(帧时钟)WS的频率必须也为44.1 kHz;左/右2个声道的量化深度均为16 bit,则I2S的SCK的频率为:44.1 kHz×16×2=1.4112 MHz

      如果需要传输20 bit、24 bit或32 bit的左右声道的数据,可以提高SCK的频率,由上式可以计算出需要的SCK的频率。
 

(2)左右声道选择信号 Word Select

        WS也称帧时钟,即LRCLK,Left Right Clock。WS频率等于声音的采样率。WS既可以在SCK的上升沿,也可以在SCK的下降沿变化。Slave设备在SCK的上升沿采样WS信号。数据信号MSB在WS改变后的第二个时钟(SCK)上升沿有效(即延迟一个SCK),这样可以让Slave设备有足够的时间以存储当前接收的数据,并准备好接收下一组数据。

WS是声道选择信号,表明数据发送端所选择的声道。当:

√ WS=0,表示选择左声道
√ WS=1,表示选择右声道

(3)数据信号 Serial Data
        SD是串行数据,在I2S中以二进制补码的形式在数据线上传输。在WS变化后的第一个SCK脉冲,先传输最高位(MSB, Most Significant Bit)。先传送MSB是因为发送设备和接收设备的字长可能不同,当系统字长比数据发送端字长长的时候,数据传输就会出现截断的现象/Truncated,即如果数据接收端接收的数据位比它规定的字长长的话,那么规定字长最低位(LSB: Least Significant Bit)以后的所有位将会被忽略。如果接收的字长比它规定的字长短,那么空余出来的位将会以0填补。通过这种方式可以使音频信号的最高有效位得到传输,从而保证最好的听觉效果。

√ 根据输入或输出特性,不同芯片上的SD也可能称SDATA、SDIN、SDOUT、DACDAT、ADCDAT等;
√ 数据发送既可以同步于SCK的上升沿,也可以是下降沿,但接收设备在SCK的上升沿采样,发送数据时序需考虑

2.3、Master Clock
在I2S/PCM接口的ADC/DAC系统中,除了SCK和WS外,CODEC经常还需要控制器提供MCLK (Master Clock),这是由CODEC内部基于Delta-Sigma (ΔΣ)的架构设计要求使然。其主要原因是因为这类的CODEC没有所谓提供芯片的工作时钟晶振电路。它需要外部的时钟提供内部PLL。

如图8和图9所示:

图8 wolfson WM8960 Stereo AUdio CODEC芯片框图

图9 WM8960 时钟框图

2.3、典型I2S信号时序图
随着技术的发展,也出现了很多种不同的数据格式。根据data相对于LRCK海人SCLK位置的不同,分为I2S标准格式(飞利浦规定的格式),左对齐(较少使用)和右对齐(日本格式,普通格式),发送和接收端必须使用相同的数据格式。

 左对齐:

右对齐: 

3、PDM接口
PDM(Pulse Density Modulation)是一种用数字信号表示模拟信号的调制方法。同为将模拟量转换为数字量的方法,PCM使用等间隔采样方法,将每次采样的模拟分量幅度表示为N位的数字分量(N = 量化深度),因此PCM方式每次采样的结果都是N bit字长的数据。PDM则使用远高于PCM采样率的时钟采样调制模拟分量,只有1位输出,要么为0,要么为1。因此通过PDM方式表示的数字音频也被称为Oversampled 1-bit Audio。相比PDM一连串的0和1,PCM的量化结果更为直观简单。

在以PDM方式作为模数转换方法的应用接收端,需要用到抽取滤波器(Decimation Filter)将密密麻麻的0和1代表的密度分量转换为幅值分量,而PCM方式得到的就已经是幅值相关的数字分量。图20示意为通过PDM方式数字化的正弦波。


图17. PDM方式表示的正弦波

PCM方式的逻辑更加简单,但需要用到数据时钟,采样时钟和数据信号三根信号线;PDM方式的逻辑相对复杂,但它只需要两根信号线,即时钟和数据。PDM在诸如手机和平板等对于空间限制严格的场合有着广泛的应用前景。在数字麦克风领域,应用最广的就是PDM接口,其次为I2S接口。PDM格式的音频信号可以在比如LCD屏这样Noise干扰强的电路附近走线(等于没说,这里指数字信号抗干扰能力相比于模拟信号更强,同样PCM也具有此优势)。

通过PDM接口方式,传输双声道数据只要用到两根信号线。如图18示意两个PDM接口的发送设备与同一个接收设备的连接情况,比如Source 1/2分别作为左右声道的麦克风,通过这种方式可以将采集到的双声道数据传送到接收设备。主设备(此例中作为接收设备)为两个从设备提供时钟,分别在时钟的上升沿和下降沿触发选择Source 1/2作为数据输入。图19为Maxim的Class-D类型功放MAX98358对PDM接口时序的要求,可以看到它在PDM_CLK的上升沿采样左声道数据,在PDM_CLK下降沿采样右声道数据。

图18. PDM连接示意图(2发送设备 + 1接收设备)

图19. PDM时序框图

基于PDM的架构不同于I2S和TDM之处在于,抽取滤波器(Decimation Filter)不在发送设备,而在接收设备内部。源端输出是原始的高采样率(oversample)调制数据,如Sigma-Delta调制器的输出,而不是像I2S中那样的抽取数据(An I2S output digital microphone includes the decimation filter, so its output is already at a standard audio sample rate that’s easy to interface to and process.)。基于PDM接口的应用降低了发送设备的复杂性,由于作为接收设备的CODEC内部集成抽取滤波器,因此系统整体复杂度大大降低。对于数字麦克风而言,通过使用面向CODEC或处理器制造的更精细硅工艺,而非传统麦克风使用的工艺,可以实现更高效率的抽取滤波器。
————————————————
版权声明:本文为CSDN博主「工作使我快乐」的原创文章,遵循CC 4.0 BY-SA版权协议,转载请附上原文出处链接及本声明。
原文链接:https://blog.csdn.net/qq_22168673/article/details/128288954

这篇关于音频I2S的文章就介绍到这儿,希望我们推荐的文章对编程师们有所帮助!



http://www.chinasem.cn/article/505945

相关文章

生日贺卡录放音芯片,多段音频录音ic生产厂商,NVF04M-32minute

可以录音播放的生日贺卡与传统的纸质贺卡相比,它有着创意以及个性的特点,仅需少量的电子元器件,即可实现录音功能,搭配上文字,让声音存储在生日贺卡里,让贺卡也变得有温度,祝福我想亲口对TA说。 生日贺卡录放音芯片方案——NVF04M 采用外挂SPI存储器的方式,达到录音的功能。它的主要特点是声音清晰,录音时间长。目前可以提供的录音时间为32分钟。NV04FM的一个显著特点是存储时间灵活,客

Pr:首选项 - 音频硬件

Pr菜单:编辑/首选项 Edit/Preferences Premiere Pro 首选项中的“音频硬件” Audio Hardware选项卡可以指定计算机的音频设备和设置,还可以指定 Pr 用于音频回放和录制的 ASIO 和 MME 设置(仅限 Windows)或 CoreAudio 设置(仅限 macOS)。 当连接音频硬件设备时,该类型设备的硬件设置(如默认输入、默认输出、主时钟、延迟和

Pr:首选项 - 音频

Pr菜单:编辑/首选项 Edit/Preferences Premiere Pro 首选项中的“音频” Audio选项卡主要作用是控制音频的处理设置,包括音量调整、波形生成、音频渲染等选项,这些设置有助于优化音频的处理和编辑工作,适用于不同的剪辑需求和项目要求。 自动匹配时间 Automatch Time 指定已调整的任何控件返回到其先前设置的时间(在调音台中),以秒 Seconds为单位。

【Python百日进阶-Web开发-音频】Day705 - 音频加载 librosa.load / librosa.stream

文章目录 一、音频加载1.1 librosa.load1.1.1 语法与参数1.1.2 例子1.1.2.1 下载并加载文件1.1.2.2 加载并重采样1.1.2.3 加载文件,从第15秒开始,加载5秒- 1.2 librosa.stream1.2.1 语法与参数1.2.2 例子1.2.2.1 一次对 256 帧的块应用短期傅里叶变换。1.2.2.2 使用较短的帧和不重叠的窗口计算流上的 m

Android AudioManager 音频管理

<?xml version="1.0" encoding="utf-8"?><LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"xmlns:app="http://schemas.android.com/apk/res-auto"xmlns:tools="http://schemas.android.

libmad音频解码库-Linux交叉编译移植

下载并解压libmad-0.15.1b.tar.gz 下载链接:https://downloads.sourceforge.net/mad/libmad-0.15.1b.tar.gz $tar -xvf libmad-0.15.1b.tar.gz$cd libmad-0.15.1b 1、先执行下面的命令:这条命令是为了适配高版本的gcc,因为高版本的gcc已经将-fforce-mem去除了:

Linux speex音频库-音频数据编解码

speex音频数据编解码 speex简述speex encoder(编码器)speex decoder(解码器)denoise vad (降噪,语音活性检测) speex简述 speex官网 Speex: A Free Codec For Free Speech Overview Speex is an Open Source/Free Software patent-fre

【Python百日进阶-Web开发-音频】Day708 - 时域处理 librosa.lpc

文章目录 一、时域处理1.1 librosa.lpc1.1.1 语法与参数1.1.2 示例1.1.2.1 在整个系列上以 16 阶计算 y 的 LP 系数1.1.2.2 计算 LP 系数,并绘制原始序列的 LP 估计值 一、时域处理 1.1 librosa.lpc https://librosa.org/doc/latest/generated/librosa.lpc.h

最新HTML5中的视频和音频讲解

第6章 HTML5中的视频和音频 H5新增video,audio,播放视频和音频,统称为多媒体元素。 6.1 多媒体元素基本属性 video用于电影文件和其他视频流的播放。 audio用于音乐文件和其他音频流的播放。 video的属性 src:文件路径,本地或者网络上。autoplay:自动播放,一进页面就自动播放。width和height:媒体元素大小,单位像素,若不设置则播放源文件

PCM 和I2S的区别

今天突然想到I2S和PCM接口都是数字音频接口,而我所见的蓝牙到cpu以及codec的音频接口都是用PCM接口,是不是两个接口有各自不同的应用呢?先来看下概念。       PCM(PCM-clock、PCM-sync、PCM-in、PCM-out)脉冲编码调制,模拟语音信号经过采样量化以及一定数据排列就是PCM了。理论上可以传输单声道,双声道立体声和多声道。是数字音频的raw da