概述

数字音频接口DAI,即Digital Audio Interfaces,顾名思义,DAI表示在板级或板间传输数字音频信号的方式。相比于模拟接口,数字音频接口抗干扰能力更强,硬件设计简单,DAI在音频电路设计中得到越来越广泛的应用。图1和图2对比传统的音频信号和数字音频信号链的区别。

在传统的音频电路(图1)中有麦克风、前置放大器、模/数转换器ADC、数/模转换器DAC、输出放大器,以及扬声器,它们之间使用模拟信号连接。随着技术的发展和对性能考虑,模拟电路逐渐被推到链路的两端(集成到设备内部),信号链中各集成电路间将出现更多的数字接口形式。DSP通常都是数字接口的;换能器(Transducers, i.e. Mic & Speaker)、放大器一般而言只有模拟接口,但现在也正在逐渐集成数字接口功能。 目前,集成电路设计人员正在将换能器内的ADC、DAC和调制器集成到信号链一端,这样就不必在PCB上走任何模拟音频信号,并且减少了信号链中的器件数量。图2给出了一个完整数字音频接口的例子。


图1. 传统的音频信号链路


图2. 数字音频信号链路

1.1 I2S简介

I2S全称Inter-IC Sound, Integrated Interchip Sound,或简写IIS,是飞利浦在1986年定义(1996年修订)的数字音频传输标准,用于数字音频数据在系统内部器件之间传输,例如编解码器CODEC、DSP、数字输入/输出接口、ADC、DAC和数字滤波器等。除了都是由飞利浦定义外,I2S和I2C没有任何关系。

I2S是比较简单的数字接口协议,没有地址或设备选择机制。在I2S总线上,只能同时存在一个主设备和发送设备。主设备可以是发送设备,也可以是接收设备,或是协调发送设备和接收设备的其它控制设备。在I2S系统中,提供时钟(SCK和WS)的设备为主设备。图3是常见的I2S系统框图。在高端应用中,CODEC经常作为I2S的主控设备以精确控制I2S的数据流。

图3 I2S系统通信配置框图

I2S包括两个声道(Left/Right)的数据,在主设备发出声道选择/字选择(WS)控制下进行左右声道数据切换。通过增加I2S接口的数目或其它I2S设备可以实现多声道(Multi-Channels)应用。

在I2S传输协议中,数据信号、时钟信号以及控制信号是分开传输的。I2S协议只定义三根信号线:时钟信号SCK、数据信号SD和左右声道选择信号WS。

时钟信号 Serial Clock
SCK是模块内的同步信号,从模式时由外部提供,主模式时由模块内部自己产生。不同厂家的芯片型号,时钟信号叫法可能不同,也可能称BCLK/Bit Clock或SCL/Serial Clock

数据信号 Serial Data
SD是串行数据,在I2S中以二进制补码的形式在数据线上传输。在WS变化后的第一个SCK脉冲,先传输最高位(MSB, Most Significant Bit)。先传送MSB是因为发送设备和接收设备的字长可能不同,当系统字长比数据发送端字长长的时候,数据传输就会出现截断的现象/Truncated,即如果数据接收端接收的数据位比它规定的字长长的话,那么规定字长最低位(LSB: Least Significant Bit)以后的所有位将会被忽略。如果接收的字长比它规定的字长短,那么空余出来的位将会以0填补。通过这种方式可以使音频信号的最高有效位得到传输,从而保证最好的听觉效果。

√ 根据输入或输出特性,不同芯片上的SD也可能称SDATA、SDIN、SDOUT、DACDAT、ADCDAT等;
√ 数据发送既可以同步于SCK的上升沿,也可以是下降沿,但接收设备在SCK的上升沿采样,发送数据时序需考虑

左右声道选择信号 Word Select
WS是声道选择信号,表明数据发送端所选择的声道。当:
√ WS=0,表示选择左声道
√ WS=1,表示选择右声道
WS也称帧时钟,即LRCLK/Left Right Clock。WS频率等于声音的采样率。WS既可以在SCK的上升沿,也可以在SCK的下降沿变化。从设备在SCK的上升沿采样WS信号。数据信号MSB在WS改变后的第二个时钟(SCK)上升沿有效(即延迟一个SCK),这样可以让从设备有足够的时间以存储当前接收的数据,并准备好接收下一组数据。

1.2 I2S数据时钟(SCK)频率计算

例如:设声音的采样频率为44.1 kHz,即声道选择信号(帧时钟)WS的频率必须也为44.1 kHz;左/右2个声道的量化深度均为16 bit,则I2S的SCK的频率为:44.1 kHz×16×2=1.4112 MHz

如果需要传输20 bit、24 bit或32 bit的左右声道的数据,可以提高SCK的频率,由上式可以计算出需要的SCK的频率

2.1 PCM简介

PCM (Pulse Code Modulation) 脉冲编码调制是将模拟信号数字化的方法。原理是用一个固定的频率对模拟信号进行采样,采样后的信号在波形上看就像一串连续的幅值不一的脉冲(脉搏似的短暂起伏的电冲击),把这些脉冲的幅值按一定精度进行量化,这些量化后的数值被连续的输出、传输、处理或记录到存储介质中,所有这些组成了数字音频的产生过程(抽样、量化、编码三个过程)。图11为4 bit 采样深度的PCM数据量化示意图。

2.2 信号定义

PCM接口与I2S相似,电路信号包括:

PCM_CLK 数据时钟信号
PCM_SYNC 帧同步时钟信号
PCM_IN 接收数据信号
PCM_OUT 发送数据信号
TDM/PCM与I2S接口对应关系见表1

数字音频接口(I2S,PCM/TDM)相关推荐

  1. 数字音频接口(I2S,PCM/TDM,PDM)

    概述 数字音频接口DAI,即Digital Audio Interfaces,顾名思义,DAI表示在板级或板间传输数字音频信号的方式.相比于模拟接口,数字音频接口抗干扰能力更强,硬件设计简单,DAI在 ...

  2. micropython i2s_数字音频接口(I2S,PCM/TDM,PDM)

    概述 数字音频接口DAI,即Digital Audio Interfaces,顾名思义,DAI表示在板级或板间传输数字音频信号的方式.相比于模拟接口,数字音频接口抗干扰能力更强,硬件设计简单,DAI在 ...

  3. 数字音频接口 I2S、PCM、TDM 、PDM比较

    目录 1. 前言 2. 数字音频接口 2.1. I2S接口 2.2. PCM/TDM接口 2.2. PDM接口 3. 附录 3.1. PCM编码 3.2. PDM编码 1. 前言 本文介绍的数字音频接 ...

  4. 【精华贴】数字音频接口详解-I2S接口PCM/TDM接口PDM接口

    一.概述 数字音频接口DAI,即Digital Audio Interfaces,顾名思义,DAI表示在板级或板间传输数字音频信号的方式.相比于模拟接口,数字音频接口抗干扰能力更强,硬件设计简单,DA ...

  5. 数字音频接口(二) 高通平台MI2S总线调试

    硬件平台:高通SM6125 基线代码:LA.UM.8.11.1.c1 git clone https://git.codelinaro.org/clo/la/platform/vendor/opens ...

  6. [转载]数字音频接口

    一直想了解下所有的数字音频接口,进行归纳总结,这边发现一篇总结的很好的文章,放到csdn进行分享,原文链接如下: http://www.wangdali.net/wp-content/uploads/ ...

  7. 数字音频接口(一)I2S总线协议

    I2S(Inter-IC Sound)是一种广泛应用于数字音频传输的串行接口标准.它最初由飞利浦(Philips)公司开发,用于解决在集成电路之间传输音频数据的问题.I2S协议定义了音频数据的传输格式 ...

  8. DSP与DAC数字音频接口时钟分析

    加我V hezkz17 进同行数字音频系统设计开发交流答疑群 1 DAC的MCK是来自 DSP的DSP_MCK(CLKOUT) 信号脚. 2  Sigma MCK输出配置 实际调试,关闭这个也能工作! ...

  9. STM32F407 SPDIF(光纤音频)数字音频接口

    SPDIF 简介 SPDIF 是 Sony/Philip Digital InteRFace Format 的缩写,是由索尼和飞利浦公司联合开发的数 字音频接口简称,分为 SPDIF 输入(IN)和 ...

最新文章

  1. Docker学习(五)-----Docker查看日志
  2. switch在C++中的用法以及用switch结构时要注意的问题(细节问题比较全面)
  3. 每个人都应该学习编程,因为它会教你如何思考
  4. Java消息中间件--ActiveMq,RabbitMQ,Kafka
  5. 程序猿爆笑选集(1)
  6. Vue v-for生成DOM元素
  7. uniapp php交互,uni-app路由跳转及参数的传参和接收
  8. 自动驾驶之多传感器融合实践(1)------激光雷达点云数据处理
  9. 大数据 银行业应用案例_银行业市场分析大数据项目
  10. 【修身养性】那些看不见的教养
  11. android标题栏尺寸,Android平台设计规范19条(轻松入门)
  12. vertica MySQL_vertica 数据库常用命令
  13. 美容院如何更好的招揽顾客
  14. php 标点符号,php 过滤英文标点符号及过滤中文标点符号代码_PHP教程
  15. Java社交商城APP+小程序多功能B2B2C商城源码
  16. m4s格式转换mp3_超级详细!如何将B站缓存m4s文件无损转换为mp4格式
  17. 如何在Android/data文件夹下面出现包路径
  18. iOS开发——网络连接判断
  19. Ubuntu 服务器初始化、系统安全加固、系统内核参数优化以及常用软件安装脚本分享...
  20. JAVA 调用 DLL 文件 TSCLIB.DLL TSC打印机

热门文章

  1. Latex中调整多行公式行距(间距)的方法
  2. BCB(C++ Builder)创建动态库(DLL,接口导出和调用),动态加载DLL
  3. 国内有哪些比较靠谱的云主机供应商,性价比高一点的?
  4. 修改网页视频播放速度
  5. libnuma详解-A NUMA API for LINUX
  6. 软件测试用例——三角形
  7. 谷歌优化效果怎么样?外贸如何做好谷歌SEO优化排名?
  8. python字符串长度输出_python输出指定长度的字符串
  9. HTML,img标签src路径错误及src路径图片无法显示问题,相对路径和绝对路径,超级详细的新手教程。
  10. 2017 icpc 西安赛区 B.Coin(推公式+二项式定理)