ADI 音频在 PCBA 里的通用传输格式
在 PCB 板内的音频设计时,我们一般都是以模拟和数字两种格式为主,模拟音频主要用于承接各种模拟接口的音频输入。在早些时期,因为数字信号音频处理技术不是很发达,同时数字信号处理器没这么先进,加之成本较高昂,所以早期对于音频信号的处理都是以模拟的方式实现的。后来随着数字信号处理器的算力制程不断提高,成本迎来下探,开始有越来越多的音频以数字的音频格式来处理,以实现各种各样的效果。接下来将为大家就音频的板内通讯做相关介绍。
模拟音频的板内通讯
和大多数模拟信号一样,模拟音频在板内基本上以单端和差分这两种方式出现,对于音频这种周期波,频带范围为 20hz~20khz。在以前的板内,有些音频电子产品是以模拟音频的方式出现的,比如早期的 ANC 耳机。它们即使全部通过电容电阻以及运放来搭建,也一样能够设计出非常优秀的 FB 和 FF filter。
由于从前生产的一致性比较差,到后来被数字方案所替代,包括以前乐器设备的混响器、变调器和模拟功放等等,但它们仍旧具有很多优势,主要体现上产品的放大器的染色上,有很多我们目前的数字系统都不能完美模仿出来的声音效果,同时也不需要进行模拟到数字的转换,也没有什么失真。但是一般硬件的搭建都比较麻烦,而且实现一个功能颇为复杂,不适合添加更多的功能效果,因此后来也慢慢被数字芯片取代以实现更多效果。
现在我们一般都是在产品的接口上使用模拟音频输入或者输出,常见有喇叭播放声音、Line-in 外接音源、麦克风输入等。设备外的音频传输一般使用模拟信号,更多时候可以通过放大器进行调制就会进入编解码器芯片进行数字化输入处理了。
数字音频的板内通讯
数字音频在板内的通讯格式种类比较多,以下列举一些常见的数字音频格式,并介绍它们对应适合的应用场景。
IIS 协议接口
IIS (Inter-IC Sound bus) 又称 I2S,是飞利浦公司提出的串行数字音频总线协议。目前很多音频芯片和 MCU 都提供了对 IIS 的支持,作为目前使用最为广泛的芯片间二通道音频传输协议,非常适用于各种应用场景。
IIS 基本上就是三根线,有的可能有四根线,分别是 MCLK、BCLK、LRCLK、SD。
MCLK:主时钟。严格意义上, MCLK 不归属于这个协议范围之内,因为器件的启动都需要主时钟的输入,同时我们的 BCLK 基本上是从 MCLK 分频或者倍频而得到的,所以在常见的不带晶振的 AD、DA 芯片中,需要这么一个输入。例如 ADI 的 ADAU197X 系列,如果有的器件不需要 MCLKIN,那么一般是以 BCLK 作为了时钟的主导。
BCLK:数据位时钟。每一个脉冲对应着数字音频的一个数据位,在 IIS 里,一般位时钟的频率 = 2* 采样频率 * 采样位深。
LRCLK:左右时钟频率。主要用于区分 IIS 里面的 2 个声道,它的高低分别对应了不同的声道,一般是对称的,但是不一定要严格保持对称。频率和采样频率需保持一致。
SD:串行音频数据输入输出。其主要是通过二进制的补码来表示的音频数据,在 BCLK 和 LRCLK 里面的有效位中进行传输。
IIS 的对齐方式目前主要有左对齐和右对齐,一般根据 MSB 和 LSB 的位置来定,有的还有好几种其他模式,这个主要取决于芯片对这些模式的支持。不过在芯片桥接时,我们要保持 2 个芯片的对齐方式是能对应起来的,不然一定会导致采集的数据不准。
电平方式采用的 TTL 电平,输入输出的判定阈值电压根据芯片规定来,一般低电平在 0.4V,高电平在 2.4V 左右。建立时间根据 datasheet 上面的设定为准。下图 (图1) 为某芯片的 IIS 协议:
图1 IIS Port Timing
TDM 协议接口
TDM 协议可以理解为 IIS 的变体,因为 IIS 只能够传输两个通道的数据,然而这在实际应用中是远远不够用的。为了传输多个通道的数据,所以就出现了 TDM (时分复用) 模式。IIS 实际上也就是 TDM2 的一种,所以传输中它的硬件连接和管脚定义和 IIS 基本一样。
TDM 基本上也是三根线,MCLK 除外,其作用在 IIS 中已经描述清楚。
BCLK:数据位时钟。和 IIS 一样,时钟频率 = 通道数 * 采样频率 * 采样位深。
SYNC:帧同步时钟。类比 LRCLK,只是命名不同,同样是用来区别不同通道,但是它的格式会有不一样,有 50% / 50% 占空比模式,也有 Pluse 模式,要根据情况进行配置,时钟频率 = 采样频率。
SD:数据位输入输出,与 IIS 保持一致。
另外,它的对齐方式和电平方式也和 IIS 的类似。下图 (图2) 为某芯片的 TDM16 的协议:
图2 TDM16 Port Timing
PCM 与 DSD 协议接口
PCM (脉冲编码调制) 与 DSD (直接流数字编码),这两种编码格式,输出的数字接口一般是用在非常高质量的场景。我们所熟悉的 PCM384、PCM768 以及 DSD256、DSD512 等等都是用在 HIFI 的场景里,它们的接口传输模型也类似于上面二者,具体的差异点因不同厂商的设计而有所不同。
由于这两种都是将模拟音频转成数字码流的形式进行传输,对于 TDM 来说,一般用到 TDM32 就已经非常大了,带宽能够达到 49.125Mhz,在这里面传输的是 32 个通道的 48khz 32bit 的数据。然而在这些 DSD256 里面,需要 11.2896Mhz,这可能只是一个通道的带宽,所以可想而知,数据量将会有多么庞大。
这些芯片接口的 IP 都要有专门的设计,因此要根据厂商的芯片进行匹配,由于并不是严格统一的,所以不再列举。产品应用多见于声卡、HIFI类播放器等场景。
PDM 协议接口
PDM (脉冲密度调制),最多的应用场景是数字麦克风接口,一般就是 3 根线,一根 Data 线、一根时钟线、一根 LR 的片选线。
PDMCLK:PDM 时钟线。根据采样频率以及深度的不同,一般 3.072Mhz 居多。
LRCS:数字麦克风上的常用接口,用于区别具体的麦克风通道选择。
DATA:高电平或低电平有效。
下图 (图3) 为某麦克风的 PDM 的协议:
图3 PDM Port Timing
SPDIF 接口
S/PDIF,代表 Sony/Phillips Digital Interface (索尼/飞利浦数字接口),是一种传输数字音频的接口。就传输载体而言,SPDIF 又分为同轴和光纤两种。它们可传输的信号是相同的,只不过载体不同,接口和连线外观也有差异。光信号传输是今后流行的趋势,其主要优势在于无需考虑接口电平及阻抗问题,接口灵活且抗干扰能力更强。
S/PDIF 基本上是 2 根线,SPDIFIN 以及 SPDIFOUT,没有时钟线,可以板外传输。虽然线少,但是驱动层可配置的寄存器颇多,使用双相标记代码将时钟信号嵌入数据中。
S/PDIF 发射机由两个音频通道组成,在一个硬件引脚 (SPDIFOUT) 上输出。使用双相标记代码将时钟信号嵌入数据中。S/PDIF 输入和输出字长可以独立地设置为 16、20 或 24 位。
S/PDIF 接口符合 S/PDIF 消费者性能规范,但不符合音频工程协会 AES3 专业规范,也是 TTL 的电平规范。
以上介绍的基本上都是一些 DAI 的接口类型,在 PCBA 内部走线用的颇多,当然还会有一些其他的接口类型,包括双 DSP 中的级联 Link-Port,这个在 ADI 的 ADSP-2156X 系列之上的产品都有,用于高带宽的吞吐量的传输。在处理器中,是可以通过打包音频数据的方式进行串行输入输出的,只是因为用的太少,所以我们一般不采取这样的方式,同时也还有一些其他的方式,比如 USB 音频 (USB 接口中常用到),MIPI 联盟中的 SLIMBUS、A2B 协议等等。
总结
根据上面的介绍,相信大家对板间的数字通讯开始有一定的了解,在实际的设计过程中,要根据产品需求出发,合理地适配相应的协议,从而进行传输。每一种不同的协议都有其使用场景,对于上下游的芯片间也必须支持该接口规范,协议间的主从接口之间也需要匹配好,这样才能减少我们在配置中无法出声的问题。