linux音频子系统(一)硬件基础接口

在传统的音频电路中有麦克风、前置放大器、模/数转换器ADC、数/模转换器DAC、输出放大器,以及扬声器,它们之间使用模拟信号连接,对于硬件工程师来说,调试复杂,有大量的ADC和DAC调试工作量。
linux音频子系统(一)硬件基础接口_第1张图片
但是随着技术的发展和对性能考虑,越来越多的使用数字电路接口来替换传统需要模数转化和数模转换的芯片,而使用内部集成该功能,直接从外部可以输出数字信号,软件可配置,使得工作量极大得到了提升。
linux音频子系统(一)硬件基础接口_第2张图片
对于这块,必须满足数字音频信号的传输标准,本文主要针对下面的数字音频接口进行学习。

  1. I2S
  2. PCM(Pulse Code Modulation)
  3. PDM(Pulse Density Modulation)
  4. S/PDIF和Ethernet AVB主要用于板间长距离及需要电缆连接的场合

1. I2S

I2S全称Inter-IC Sond Bus,是飞利浦在1986年定义(1996年修订)的数字音频传输标准,用于数字音频数据在系统内部器件之间传输,例如编解码器Codec、DSP、数字输入/输出接口、ADC、DAC和数字滤波器等。
对于I2S的数字接口定义也比较简单,没有从地址或者从设备的概念,在I2S总线上,只能同时存在一个主设备和发送设备。在I2S系统中,提供时钟(SCK)的设备为主设备,其常见的系统框图如下
linux音频子系统(一)硬件基础接口_第3张图片
在I2S传输协议中,数据信号、时钟信号以及控制信号是分开传输的。I2S协议只定义三根信号线:时钟信号SCK、数据信号SD和左右声道选择信号WS。

信号线 描述
SCLK 时钟信号:模块内的同步信号,主模式时由模块内部自己产生,从模式由外部提供
SD 数据信号:在WS变化后的第一个SCK脉冲,先传输最高位(MSB, Most Significant Bit)。先传送MSB是因为发送设备和接收设备的字长可能不同
WS 左右声道选择信号 Word Select:WS=0,表示选择左声道;WS=1,表示选择右声道.WS也称帧时钟,即LRCLK/Left Right Clock。WS频率等于声音的采样率

其数据传输的方式如下图:
linux音频子系统(一)硬件基础接口_第4张图片

2. PCM/TDM

PCM(Pulse Code Modulation)是通过等时间间隔(采样速率)将采样模拟信号数字化的方法。下图是4bit采样速率的PCM数据量化示意图
linux音频子系统(一)硬件基础接口_第5张图片
PCM接口常用于板级音频数字信号的传输,与I2S类似,其实I2S也是PCM的一种特例接口,只不过,I2S的速率会更高,比较适用于传音乐。而PCM通常用于AP处理器与通信MODEM之间的语言数据传输(就是双向打电话数据),对于I2S只能传2个声道的数据,而PCM可以传多达16路数据,采用时分复用的方式,也就是TDM。其接口与I2S类似,电路信号为

  • PCM_CLK 数据时钟信号
  • PCM_SYNC 帧同步时钟信号
  • PCM_IN 接收数据信号
  • PCM_OUT 发送数据信号

3. PDM

PDM(Pulse Density Modulation)是一种数字信号表示模拟信号的调制方法,声音通过传感器获得模拟信号,经过AD,得到音频数字信号,然后经过PDM脉冲转换成数字信号。PDM使用远高于PCM采样率的时钟采用调制模拟分量,只有1位输出,要么是0,要么是1。
linux音频子系统(一)硬件基础接口_第6张图片

PDM方式的逻辑相对复杂,但只需要两根线,时钟和数据。对于下图,主设备为两个从设备提供时钟,分别在时钟的上升沿和下降沿触发选择Source 1/2作为数据输入。
linux音频子系统(一)硬件基础接口_第7张图片
PDM在诸如手机和平板等对于空间限制严格的场合有着广泛的应用前景。在数字麦克风领域,应用最广的就是PDM接口,其次为I2S接口。

4. S/PDIF

S/PDIF的全称是Sony/Philips Digital Interface Format,由于被广泛采用,它成为事实上的民用数字音频格式标准,大量的消费类音频数字产品如民用CD机、DAT、MD机、计算机声卡数字口等都支持S/PDIF,在不少专业设备上也有该标准的接口。就传输方式而言,SPDIF分为输出(SPDIF OUT)和输入(SPDIF IN)两种。由于实际接触的不多,暂不具体介绍。

本章主要是了解下我们在平常使用的音频的硬件接口有哪些,基本的原理和使用的场景有一个基本的了解。

你可能感兴趣的:(音频子系统)