Android Audio基础(54)——数字音频接口 I2S、PCM(TDM) 、PDM

1. 概述

本文介绍的数字音频接口全部是硬件接口,是实际的物理连线/通信方式,即同一个PCB板上IC芯片和IC芯片之间的通讯协议。

PCM、PDM也可以用于表示音频编码格式,。编码格式是指模拟信号数字化的方式。

I2S和PCM(TDM)接口传输的数据是PCM格式的音频数据。这两种协议是最为常见的音频传输协议。

PDM接口传输的数据是PDM格式的音频数据。

我们在工作中要根据具体的上下文区分PCM、PDM的含义。

下图体现了数字音频接口硬件接线的一般场景。

2. 数字音频接口

2.1. I2S接口

I2S协议定义了三根信号线:时钟信号SCK、串行数据信号SD、左右声道选择信号WS。

SCK 时钟信号,Serial Clock,也可能称BCLK/Bit Clock或SCL/Serial Clock。

WS 左右声道选择信号,Word Select,也称帧时钟,也可能称LRCLK/Left Right Clock。

SD 串行数据信号,Serial Data,也可能称SDATA、SDIN、SDOUT、DACDAT、ADCDAT等

特点:

效率高;先传高位再传低位。

工作模式:

根据SDATA相对于BCLK和LRCLK位置的不同,I2S分为三种不同的工作模式,分别为标准I2S模式、左对齐模式和右对齐模式:

I2S Phillips Standard I2S格式

Left Justified Standard 左对齐格式

Right Justified Standard 右对齐格式

左对齐:数据的MSB在LRCLK边沿起第一个BCLK上升沿,用的比较少。

右对齐:数据的LSB靠左LRCLK的上升沿,Sony使用这种格式。

在I2S总线上,只能同时存在一个主设备和发送设备。主设备可以是发送设备,也可以是接收设备,或是协调发送设备和接收设备的其它控制设备。在I2S系统中,提供时钟(BCLK和LRCLK)的设备为主设备。主设备(时钟控制)和发射/接收功能是解耦的。

2.2. PCM/TDM接口

PCM接口包括四根信号:

PCM_CLK 数据时钟信号

PCM_SYNC 帧同步时钟信号

PCM_IN 接收数据信号

PCM_OUT 发送数据信号

和I2S接口差不多,PCM接口是4根信号线,通常用于AP处理器和通信MODEM之间传输语音数据(就是双向传输的数据)。

AP处理器和蓝牙之间也是通过PCM来传输语音数据,打电话的蓝牙数据走的是PCM,放音乐的蓝牙数据走的是串口(不是PCM)。

特点:

效率高,多达16路数据;先传高位再传低位。

工作模式:

根据 SD相对帧同步时钟FSYNC的位置,TDM分两种基本模式:

Mode A:数据在FSYNC有效后,BCLK的第2个上升沿有效。

Mode B:数据在FSYNC有效后,BCLK的第1个上升沿有效。

时分复用TDM技术:

I2S只能传2个声道的数据,PCM可以传多达16路数据,采用时分复用的方式,就是TDM(Time Division Multiplexing)。

由此可见,TDM本质上是基于PCM接口的技术。

像现在流行的智能语音音箱的7麦克风矩阵,一般都是用TDM来传数据,同时可以传输7路麦克风输入和3路以上的音频ref信号。

2.3. PDM接口

PDM接口只有两根信号线:

PDM_CLK 时钟信号。

PDM_DATA 数据信号。

特点:

信号线数量少,只需两根;多用于传输麦克风录音;PDM接口发送端IC设计简单。

传输内容:

PDM编码后的音频数据。(不同于I2S接口和PCM接口哦)

在数字麦克风领域,应用最广的就是PDM接口,其次为I2S接口。

PDM在诸如手机和平板等对空间限制严格的场合有着广泛的应用。

3. 附录

编码格式是指模拟信号数字化的方法。也包括音频数据的压缩编码,比如AC3,MP3,DTS等。

本文讨论的硬件接口就是用来传输数字化的音频信号。

3.1. PCM编码

PCM (Pulse Code Modulation) 是通过等时间隔(即采样率时钟周期)采样将模拟信号数字化的方法。

PCM使用等间隔采样方法,将每次采样的模拟分量幅度表示为N位的数字分量(N = 量化精度),因此PCM方式每个采样点的结果都是N bit大小的数据。

3.2. PDM编码

PDM(Pulse Density Modulation)是一种用数字信号表示模拟信号的调制方法。同为将模拟量转换为数字量的方法。

PDM使用远高于PCM采样率的时钟采样调制模拟分量,只有1位二进制输出,表示0或1。因此通过PDM方式表示的数字音频也被称为Oversampled 1-bit Audio。

相比PDM一连串的0和1,PCM的量化结果更为直观。

相关推荐
千里马学框架2 天前
一起学 Android 14:ShellTransition 屏幕旋转过程深度剖析
android·智能手机·性能优化·framework·性能·屏幕旋转·rotation
美狐美颜SDK开放平台2 天前
开发直播APP时如何接入视频美颜SDK?开发流程与注意事项
android·人工智能·计算机视觉·音视频·直播美颜sdk
AFinalStone2 天前
Android7 SystemUI源码解析(七)Keyguard锁屏模块深度解析
android·systemui
致远ccc2 天前
Google Play 上架前如何测试 App?多国家 Android 环境测试
android·app测试·googleplay·多国家应用测试
深圳老胡2 天前
STM32F407 控制 L6470 步进电机驱动 —— 控制过程简介
笔记·stm32·单片机·嵌入式硬件·代码规范
女神下凡2 天前
嵌入式设计的各种存储芯片的硬件/软件设计规范,非常全面。
arm开发·单片机·嵌入式硬件
ttyyttemo2 天前
Kotlin 协程中的 Job 结构化并发与取消
android
sun0077002 天前
tbox 4g/5g切换,导致wan ip 改变,导致车机旧网络不可用。需要重启车机才行
android
其实防守也摸鱼2 天前
内网穿透与反向代理:原理、工具与实战指南
android·大数据·运维·安全·网络安全·自动化·渗透
开发笔记-阿牛2 天前
蓝牙音乐灯拆解,又一次拆到蓝牙音乐灯芯片CK6865L
人工智能·单片机·嵌入式硬件·音视频·音频