数字音频接口I2S-PDM-TDM-PCM

news/2024/11/15 4:50:07/

主要分类:模拟、数字(I2S、PCM、PDM、TDM)

模拟音频,就是功放输出的,驱动音箱和喇叭的音频。模拟麦克风采样回来的数据也是模拟音频。通常会有单端或差分两种信号。

数字音频,不能直接驱动喇叭,必须要通过DAC转换成模拟音频,才能发出声音来。数字音频的接口比较多,目前较为通用的是I2S、PCM、PDM和TDM接口。

音频接口设计详解!智能硬件设计,I2S、PDM、TDM选什么接口?

什么时候用模拟的?

在智能硬件产品中,模拟音频主要用在:喇叭播放声音、Line-in外接音源、麦克风输入等。设备外的音频传输一般使用模拟信号。

通常看到的音频波形,都是模拟音频,能够和声音实际的波动完全对应起来。

音频接口设计详解!智能硬件设计,I2S、PDM、TDM选什么接口?

当前有不少音频产品使用D类音频功放,输出波形看起来是方波,但实际上还是属于模拟音频类型的。是高频载波叠加的模拟音频的波形,经过LC滤波之后能够还原成模拟音频波形。

如下图,下半部分是D类功放输出的方波状的音频信号,上半部分的正玄波是还原出来的模拟音频波形。

音频接口设计详解!智能硬件设计,I2S、PDM、TDM选什么接口?

↑图.D类功放输出的方波状的模拟音频信号

什么时候用数字接口?

智能硬件产品的设备内音频传输,采用I2S、PCM、TDM、PDM等数字接口。

  • I2S速度快,专门用于传音乐。

从MCU往Codec传音乐数据,一般使用I2S。包含主时钟、左右声道时钟、正反两根数据线。

如下图的I2S接口的时序,最典型的特征是LRCLK,用于区分左右声道的时钟。

音频接口设计详解!智能硬件设计,I2S、PDM、TDM选什么接口?

↑图.I2S接口的时序

  • PCM/TDM,主要用来传语音

这里讲的PCM不是PCM编码,而是PCM接口。和I2S差不多,也是4根线,通常用于AP处理器和通信MODEM之间传输语音数据(就是双向打电话的数据)。

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

I2S只能传2个声道的数据,PCM可以传多达16路数据,采用时分复用的方式,就是TDM。像现在最流行的语音智能音箱的7麦克风矩阵,一般都是用TDM来传的数据,同时可以传输7路麦克风输入和3路以上的音频反馈信号。

如下图是某智能音箱,7个麦克风通过5个ADC,接入一组TDM接口上,传输给AP处理器。

音频接口设计详解!智能硬件设计,I2S、PDM、TDM选什么接口?

↑图.某智能音箱TDM接口(局部)

  • PDM,只有2根线,传音乐,编码方式和I2S不同。

多数字麦克风使用的PDM接口,有数据和时钟两根线。PDM接口和I2S最大的区别是编码方式不同。

音频接口设计详解!智能硬件设计,I2S、PDM、TDM选什么接口?

↑图.PDM和I2S接口的数字麦克风

其他数字接口:USB

除了上述几个,在很多外接的音频模块上,用的是USB音频。

像科大讯飞的多mic降噪模块,用的就是usb接口,方便调试。

但是万变不离其宗,不管用的什么接口,传输的都是PCM或者PDM编码的数字音频。


http://www.ppmy.cn/news/78349.html

相关文章

3、Ray-分布式任务调度和依赖管理

3、Ray-分布式任务调度和依赖管理 导航 1.简介和背景 2.Ray的基本概念和核心组件 3.分布式任务调度和依赖管理 4.对象存储和数据共享 5.Actor模型和并发编程 6.Ray的高级功能和扩展性 7.使用Ray构建分布式应用程序的案例研究 8.Ray社区和资源 9.核心框架介绍 10.

windows先的conda环境复制到linux环境

如果是迁移的环境一致:同是windows或同是linux直接用这个命令即可: conda create -n new_env_name --clone old_env_path 如果是window的环境迁移到linux这种跨环境就不能用上面的方法,网上这方面的资料也很多,记录一下我的…

Vue实现仿window画图

目录 一、演示功能 二、原理实现 (1)、绘制图形 (2)、绘制逻辑原理 (3)、动画原理 (4)、图形变换原理 三、残留bug 四、源代码 一、演示功能 实现了绘制线、直线、矩形、圆 绘制时候还可以选择绘制属性(虚实线、填充图形、颜色) 可以执行图形变换操作 演示 二、原…

上海亚商投顾:沪指跌1.28%失守年线 大金融板块集体走弱

上海亚商投顾前言:无惧大盘涨跌,解密龙虎榜资金,跟踪一线游资和机构资金动向,识别短期热点和强势个股。 市场情绪 三大指数今日继续调整,沪指超1%逼近3200点,尾盘失守年线,创业板指较为抗跌。大…

thinkphp6中使用session设置无效问题的解决及注意事项

就如thinkphp官方在文档开头所描述的一样,ThinkPHP6.0基于精简核心和统一用法两大原则在5.1的基础上对底层架构做了进一步的优化改进,并更加规范化;其实从5.x版本开始thinkphp本身就是为api应用而生。特别是在6.0版本开始框架默认压根不开启和…

一百一十七、Hadoop——GZIP压缩并解压HDFS中的文件

一、解压HDFS中的gzip压缩文件 首先,先把HDFS中的gzip压缩文件下载到本地 [roothurys22 ~]# hdfs dfs -get /rtp/statistics/statistics2023-05-17.csv.gz /opt/hdfs_rtp/ 然后,在/opt/hdfs_rtp/目录下查看文件 [roothurys22 ~]# cd /opt/hdfs_r…

FreeRTOS中断配置和临界值

Cortx-M 中断 优先级分组 Cortex-M3允许具有较少中断源时使用较少的寄存器位指定中断源的优先级,因此STM32把指定中断优先级的寄存器位减少到4位。抢占优先级的级别高于响应优先级。而数值越小所代表的优先级就越高。高的抢占式优先级可以打断低的抢占式优先级&am…

Spring Security实现登录

前言 Spring Security是Spring框架下的一个用于身份验证和授权的框架,它可以帮忙管理web应用中的用户认证、授权以及安全性问题。本文将介绍如何使用Spring Security实现用户登录功能,本文主要包括以下内容: 环境准备Spring Security核心概…