最近在调试音频,整理一下音频相关的接口概念,用于备忘。文章所有内容均来于网络,由于参考过多,就不一一列举,在此感谢。
I2S(Integrated Interchip Sound)
I2S
是飞利浦定义的数字音频传输标准,用于数字音频数据在系统内器件之间传输。使用三根数据线:SD(数据线)
、WS(帧时钟,也称LRCLK)
、SCLK(位时钟,也称BCLK)
。I2S
分为 i2s-standard mode
,i2s-MSB-Left-justified mode
,i2s-MSB-Right-justified mode
三种模式。标准的 I2S
时序如下图所示,
I2S
的三个信号分别为:
- 串行时钟
SCLK
,也叫位时钟(BCLK
),即对应数字音频的每一位数据SCLK
都有1个脉冲。SCLK
的频率=2×采样频率×采样位数。在数据传输过程中,I2S
总线的发送器和接收器都可以作为系统的主机来提供系统的时钟频率。 - 帧时钟
WS
也称LRCK
),用于切换左右声道的数据。LRCK
为“1”表示正在传输的是右声道的数据,为“0”则表示正在传输的是左声道的数据。LRCK
的频率等于采样频率。 - 串行数据
SD
,就是用二进制补码表示的音频数据。
有时为了使系统间能够更好地同步,还需要另外传输一个信号 MCLK
,称为主时钟,也叫系统时钟(Sys Clock
),是采样频率的256倍或384倍。
标准 I2S
模式下,信号无论有多少位有效数据,数据的最高位总是出现在 LRCK
变化(也就是一帧开始)后的第2个 SCLK
脉冲处。这就使得接收端与发送端的有效位数可以不同。如果接收端能处理的有效位数少于发送端,可以放弃数据帧中多余的低位数据;如果接收端能处理的有效位数多于发送端,可以自行补足剩余的位。这种同步机制使得数字音频设备的互连更加方便,而且不会造成数据错位。
PCM(Pulse Code Modulation)
PCM
为脉冲编码调制,也称 DSP
模式。通过等时间隔(即采样率时钟周期)采样将模拟信号数字化的方法。 总线接口与 I2S
类似,同样包含 BCLK(位时钟)
、LRCK(帧时钟)
、SD(数据线)
。PCM
分为 Mode-A
和 Mode-B
模式。
Mode-A
:MSB
在帧时钟后BCLK
的第一个下降沿开始传输。Mode-B
:MSB
在帧时钟的上升沿开始传输。
PCM Mode-A
模式的时序图如下所示,
与 I2S
相比较,PCM
协议更加灵活。标准 I2S
的帧时钟用于控制左右声道数据,所以它只能支持2声道。PCM
没有这样的严格限制,帧时钟仅表示一帧数据的开始,只要位时钟满足需求,它可以采集任意通道的数据。所以,PCM
可以用于多通道的数据传输,也可以应用于 TDM 传输中。
TDM(Time Division Multiplexing)
TDM
表示时分多路复用技术。由于信道的位传输率超过每一路信号的数据传输率,因此可将信道按时间分成若干片段轮换地给多个信号使用。每一时间片由复用的一个信号单独占用,在规定的时间内,多个数字信号都可按要求传输到达,从而也实现了一条物理信道上传输多个数字信号。假设每个信号输入的数据比特率是 9.6kbit/s
,信道线路的最大比特率为 76.8kbit/s
,则可传输8 路信号。在接收端,复杂的解码器通过接收一些额外的信息来准确地区分出不同的数字信号。
将 PCM
或 I2S
数据通过时分复用技术机型传输,可以将各个信号的抽样值分布到同一信道的不同时间上,达到传输多路信号的目的。在一个 TDM
系统中,各信号在时域上分开的,而在频域上是混叠在一起的。TDM
在音频上的应用可以分为 TMD-I2S mode
、TDM-DSP-A mode(short frame)
、TDM-DSP-B mode(long frame)
三种模式。其时序图如下所示,
PDM(Pulse Density Modulation)
PDM
表示脉冲分时复用,一种用数字信号表示模拟信号的调制方法。在 PDM
信号中,模拟信号的幅值使用输出脉冲对应区域的密度表示。PDM
使用远高于 PCM
采样率的时钟采样调制模拟分量,只有1位输出,要么为0,要么为1。因此通过 PDM
方式表示的数字音频也被称为 Oversampled 1-bit Audio
。
PDM
方式的逻辑相对复杂,但它只需要两根信号线,即时钟和数据。PDM
在诸如手机和平板等对于空间限制严格的场合有着广泛的应用前景。在数字麦克风领域,应用最广的就是 PDM
接口,其次为 I2S
接口。PDM
格式的音频信号可以在比如 LCD
屏这样 Noise
干扰强的电路附近走线。PDM
的时序图如下所示,
SPDIF(SONY/PHILIPS Digital Interface)
SPDIF
是一个数字音频信号传输协议,使用 IEC958
标准规范,可以通过光纤或同轴线传输。SPDIF
不同于之前讲述的音频接口,它有完整的数据包概念。一个完整的数据包为一个 Block
,一个 Block
包含 192帧,每帧由分为两个子帧,子帧又定义了严格的数据格式。
- 1 Block(192 * 64 = 12288 bits ) = 192 Frames
- 1 Frame(32*2 = 64 bits ) = 2 SubFrames
- 1 SubFrame(32 bits) = 1 Preamble(4 bits) + 1 Channel(28 bits)
- 1 Channel(28 bits) = 1 AuxData(4 bits) + 1 AudioData(20 bits) + 1 MiscData(4 bits)
SPDIF
的数据格式图下图所示,
一个子帧为 32 bits
,内部数据的具体定义如下,
- 0-3 头码(Preamble) : 用来表示一个Sub Frame的开头,有三种型态,分别表示该Sub Frame为Channel A、Channel B或者是一个Block的起始Sub Frame(为Channel A)。
- 4-7 辅助数据(Aux. Data) : 原始此区块的设计是用来传递一些使用者自行添加的信息,不过目前比较常见的用途是当音讯数据超过20Bit取样时,这四个Bit用来储存多出的取样Bit,比如说当要传送24Bit取样的数据时,用来存放末四个Bit的音讯数据。
- 8-27 音频数据(Audio Data) : 存放实际的取样数据,长度为20 Bit,以LSB优先的方式传送,当取样低于20 Bit时,没有用到的LSB Bits要设定为零,举例来说,当我们要传送16 Bit的数据时,只会用到12-27 Bit的位置(LSB在12 Bit),而8-11 Bit为零。
- 28 有效位(Validity Bit):此位设定了这一个Sub Frame内的数据是不是正确,如果设定为0,代表此Sub Frame内的数据是正确可被接收的,反之如果此Bit为1,则代表接收端应该忽略此组Sub Frame。比如说CD转盘读取CD数据时若是有某一个Sample读不到就会将代表该组Sample的Sub Frame中的有效位设为1。
- 29 使用者位(User Bit) : 此位为使用者自行定义的位,每组Sample传送一位,直到192组Sample传完后组成192位的信息,两声道各自有一组192位的使用者信息。
- 30 信道状态位(Channel Status Bit) : 此位与使用者位一样,每组Sample传送一位,最后组成两声道各自一组192位的信道状态信息(Channel Status)。这个192位信道状态信息分为专业(Professional)与一般家用(Consumer)两种不同的结构,以第一个位决定,设为1的时后为Professional模式,设为0的时后为Consumer模式。
- 31 同位检查位(Parity Bit) : 同位检查是用来判别是否有奇数个位是发生错误,是一种简便错误检查方法,这边是使用偶位同位检查(Even Parity Check)。
USB音频(USB Audio Class)
UAC
是为使用 USB
接口来传输音频数据而定义的协议。USB
是一个通用的数据总线,可以应用于各类数据的传输。USB设备工作组
制定了音频数据流规范,并应用于各种具体的音频应用中,如麦克风、扬声器、耳机、电话、乐器等。UAC
中定义了三种不同的音频子类用于规范不同的数据:
AudioControl Interface Subclass
音频控制接口子类AudioStreaming Interface Subclass
音频流接口子类MIDIStreaming Interface Subclass
MIDI流接口子类
UAC
标准又有三个版本1.0、2.0和3.0。
UAC 1.0
支持基本的音频数据,典型的是PCM
编码,最高支持双声道192Khz 16bit
的音源。UAC 2.0
引入了对高速USB
的支持,支持更大的带宽、更高的采样率、更低的延迟。UAC 2.0
也提高了对音频编码的支持,如DSD
、音效、channel clustering
、用户控制和设备描述。最高可以支持15声道384Khz 32bit
的音源。UAC 3.0
主要对便携式设备进行了改进,如降低设备功耗。
HDMI Audio
HDMI
是高清晰度多媒体接口,它可以支持高带宽的视频信号传输,同时可以传输音频信号。HDMI
的音频信号不占用额外的通道,而是采用和其他辅助信息一起组成数据包,利用3个 TMDS
通道在视频信号传输的消隐期,以岛屿数据的形式传送。随着 HDMI
的版本升级,对音频的支持也越来越丰富。到 HDMI 2.0
,音频方面支持最多32个声道,以及最高1536kHz采样率。同时支持:DVD-Audio、DSD、Dolby TrueHD、DTS-HD Master Audio、ARC、Auto Lip-Sync等功能。
Bluetooth Audio
蓝牙协议是蓝牙设备间交换信息所应该遵守的规则。与开放系统互联(OSI)模型一样,蓝牙技术的协议体系也采用了分层结构,从底层到高层形成了蓝牙协议栈,各层协议定义了所完成的功能和使用数据分组格式,以保证蓝牙产品间的互操作性。音频相关的协议包括,
HFP(Hands-free Profile)
:让蓝牙设备可以控制电话,如接听、挂断、拒接、语音拨号等,拒接、语音拨号要视蓝牙耳机及电话是否支持。HSP
:HSP
描述了Bluetooth
耳机如何与计算机或其它Bluetooth
设备(如手机)通信。连接和配置好后,耳机可以作为远程设备的音频输入和输出接口。A2DP(Advanced Audio Distribution Profile)
:蓝牙音频传输模型协议。A2DP
能够采用耳机内的芯片来堆栈数据,达到声音的高清晰度。有A2DP
的耳机就是蓝牙立体声耳机,声音能达到44.1kHz
,一般的耳机只能达到8kHz
。AVRCP(Audio/Video Remote Control Profile)
:是音频/视频远程控制规范。AVRCP
设计用于提供控制TV
、Hi-Fi
设备等的标准接口。此配置文件用于许可单个远程控制设备(或其它设备)控制所有用户可以接入的A/V
设备。它可以与A2DP
或VDP
配合使用。
蓝牙协议中常见的编码格式有,
SBC(Sub-band coding)
:子带编码,最早的编码格式。SBC
是A2DP
协议强制规定的编码格式,所有的蓝牙都会支持这个协议。ACC(Advanced Audio Coding)
:高级音频编码。ACC
是杜比实验室为音乐社区提供的技术,是一种高压缩比的编码算法。aptX
:aptX
是CSR
公司的专利编码算法,在被高通收购后,aptX
在安卓手机里面推广力度很大。aptX
分为三种:aptX
,aptX HD
和aptX Low Latency
。aptX
传输码率并不高,得益于高效的编码,使得声音保留的细节更多。aptX
的宣传也是称其可以达到CD
级别的听感。LDAC
:LDAC
是Sony
的一项新音频技术,可让您通过蓝牙欣赏高品质的无线音频。LDAC
可传输约三倍于普通Bluetooth
的数,可为您的所有音乐提供增强的无线聆听体验。LDAC
的码率高,抗干扰能力差,在干扰比较多的情况下需要降低码率来保持连接稳定。
**粗体** _斜体_ [链接](http://example.com) `代码` - 列表 > 引用
。你还可以使用@
来通知其他用户。