前往小程序,Get更优阅读体验!
立即前往
首页
学习
活动
专区
工具
TVP
发布
社区首页 >专栏 >音频总线-I2S

音频总线-I2S

作者头像
Linux兵工厂
发布2023-02-28 13:27:48
1.2K0
发布2023-02-28 13:27:48
举报
文章被收录于专栏:Linux兵工厂

1. 基本介绍

1.1 I2S

“I2S(Inter—IC Sound)总线, 又称集成电路内置音频总线,是飞利浦公司为数字音频设备之间的音频数据传输而制定的一种总线标准。I2S采用了独立的导线传输时钟与数据信号的设计,通过将数据和时钟信号分离,避免了因时差诱发的失真,为用户节省了购买抵抗音频抖动的专业设备的费用。

  • I2S特点 支持全双工和半双工模式 支持主、从模式

1.2 数字音频技术

现实生活中的声音是通过一定介质传播的连续的波,它可以由周期和振幅两个重要指标描述。正常人可以听到的声音频率范围为20Hz~20KHz。现实存在的声音是模拟量, 这对声音保存和长距离传输造成很大的困难,一般的做法是把模拟量转成对应的数字量保存, 在需要还原声音的地方再把数字量的转成模拟量输出。

模拟量转成数字量过程,一般可以分为三个过程,分别为采样、量化、编码,用一个比源声音频率高的采样信号去量化源声音,记录每个采样点的值, 最后如果把所有采样点数值连接起来与源声音曲线是互相吻合的,只是它不是连续的。在下图中两条蓝色虚线距离就是采样信号的周期,即对应一个采样频率(FS), 可以想象得到采样频率越高最后得到的结果就与源声音越吻合,但此时采样数据量越越大, 一般使用44.1KHz采样频率即可得到高保真的声音。每条蓝色虚线长度决定着该时刻源声音的量化值, 该量化值有另外一个概念与之挂钩,就是量化位数。量化位数表示每个采样点用多少位表示数据范围, 常用有16bit、24bit或32bit,位数越高最后还原得到的音质越好,数据量也会越大。

1.3 数字音频三要素

  • 采样频率音频采样是一种PCM采样。采样频率是指每秒钟抽取声波幅度样本的次数。采样频率越高,声音质量越好,数据量也越大。常用的采样频率有11.025KHz,22.05KHz,44.1KHz,48KHz,96KHz等。
  • 采样位数每个采样点用多少二进制位表示数据范围。量化位数也叫采样位数。量化位数越多,音质越好,数据量也越大。常用的采样位数有8位,16位,24位,32位等。8bit只能记录 256 个数, 也就是只能将振幅划分成 256 个等级; 16bit可以细到 65536 个数, 这已是 CD 标准了。
  • 声道数使用声道的个数。立体声比单声道的表现力丰富,但是数据量翻倍。常用的声道数有单声道,立体声(左声道和右声道)。

2. I2S规范

“标准的I2S总线电缆至少是由3根串行导线组成

  • 串行时钟SCLK,也叫位时钟(BCLK),即对应数字音频的每一位数据,SCLK都有1个脉冲。SCLK的频率=2×采样频率×采样位数。
  • 帧时钟LRCK,(也称WS),用于切换左右声道的数据。LRCK为“1”表示正在传输的是右声道的数据,为“0”则表示正在传输的是左声道的数据。LRCK的频率等于采样频率。
  • 串行数据SDATA,就是用二进制补码表示的音频数据。但也可称为SDATA, SDIN, SDOUT,DACDAT, ADCDAT..等。
  • 它还可能包括以下几条:1.有时为了使系统间能够更好地同步,还需要另外传输一个信号MCLK,称为主时钟,也叫系统时钟(Sys Clock),是采样频率的256倍或384倍。主时脉MCLK(256 x LRCLK)这不是I2S标准的一部分但通常包含在其中以使模拟/数字转换器的内部操作同步。2.用于传输数据的复合数据线(multiplex)

典型I2S时序图

“随着技术的发展,在统一的 I2S接口下,出现了多种不同的数据格式。根据SDATA数据相对于LRCK和SCLK的位置不同,分为左对齐(较少使用)、I2S格式(即飞利浦规定的格式)和右对齐(也叫日本格式、普通格式)。为了保证数字音频信号的正确传输,发送端接收端应该采用相同的数据格式和长度。当然,对I2S格式来说数据长度可以不同。

I2S格式

左右通道的数据MSB是在WS变化后第二个SCK/BCLK上升沿有效。WS时钟低电平为左声道,高电平为右声道。也就是说不管I2S的信号有多少有效数据,数据的最高位都是出现在WCLK(LRCK)变化后的第2个BCLK(SCLK)的脉冲处。

左对齐格式

左对齐格式的左右声道数据的MSB在WS边沿变化后SCK/BCLK的第一个上升沿有效。

右对齐格式

声音数据LSB传输完成的同时,LRCLK完成第二次翻转(刚好是LSB和LRCLK是右对齐的,所以称为右对齐标准)。注意LRCLK为1时,传输的是左声道数据,LRCLK为0时,传输的是右声道数据,这刚好与I2S标准相反。

部分内容参考网络

本文参与 腾讯云自媒体同步曝光计划,分享自微信公众号。
原始发表:2022-12-21,如有侵权请联系 cloudcommunity@tencent.com 删除

本文分享自 Linux兵工厂 微信公众号,前往查看

如有侵权,请联系 cloudcommunity@tencent.com 删除。

本文参与 腾讯云自媒体同步曝光计划  ,欢迎热爱写作的你一起参与!

评论
登录后参与评论
0 条评论
热度
最新
推荐阅读
目录
  • 1. 基本介绍
    • 1.1 I2S
      • 1.2 数字音频技术
        • 1.3 数字音频三要素
          • 2. I2S规范
            • 典型I2S时序图
            • I2S格式
            • 左对齐格式
            • 右对齐格式
        领券
        问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档