博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
I2S (二) 总线规范 翻译
阅读量:4284 次
发布时间:2019-05-27

本文共 1777 字,大约阅读时间需要 5 分钟。

飞利浦半导体

I2S总线规范(爱方诶死)

1.0 简介

许多数字音频系统正被引入消费音频市场,包括光盘、数字音频磁带、数字声音处理器和数字TV-sound.

这些系统中的数字音频信号是被许多大规模集成电路和甚大规模集成电路处理,

  • 这些集成电路分类如下:

    •A/D和D/A转换器;  •数字信号处理器;  •光盘和数字录音的纠错;  •数字滤波器;  •数字输入/输出接口。

标准化的通信结构对设备制造商和集成电路制造商都至关重要,无标准增加了系统的灵活性。

为此,我们开发了集成电路内部声音(i2s)总线,这是一种特别用于数字音频的串行连接。

2.0 基本串行总线要求

总线只需处理音频数据,而其他信号,如子编码和控制,则分别传输。

  • 总线组成

    为了尽量减少所需的管脚数量并保持布线简单,使用一条3线串行总线,  该总线由一条分时复用数据通道(IN,OUT)的线、一条选字线和一条时钟线组成。
  • 时钟线

    由于发射机和接收机具有相同的时钟信号用于同步数据传输,发射机作为主机,必须产生位时钟、选字信号和数据。  然而,在复杂的系统中,可能有多个发射机和接收机,这使得很难定义主机。在这样的系统中,通常有一个系统主控器控制各个ic之间的数字音频数据流。然后,发射机必须在外部时钟的控制下生成数据,从而充当从机。

图1演示了一些简单的系统配置和基本的接口计时。注意,系统主机可以与发射机或接收机组合,并且可以在软件控制下或通过引脚编程来启用或禁用。

在这里插入图片描述

3.0 I2S总线

如图1所示,总线有三条线路:

•连续串行时钟(SCK); // 标准虽然是这样子,但是例如stm32F407 实现了5条线,(SCK,WS,SDIN,SDOUT,MCK)•单词选择(WS);•串行数据(SD);

生成sck和ws的设备是主设备

3.1串行数据

  • 发送器发送

    首先在SD线上发送msb(msb补码)  当系统字长大于发送器字长时,该字被截断(最低有效数据位被设置为“0”)以进行数据传输。  msb有一个固定的位置,而lsb的位置取决于单词的长度。
  • 接收器接收

    如果接收器接收(被发送)的比特数大于其字长,则忽略lsb之后的比特数。  如果接收器接收(被发送)的比特少于其字长,则丢失的比特在内部设置为零。
  • 接收与发送的位数

    因为发射机和接收机的字长可能不同.发射机不需要知道接收机可以处理多少位,接收机也不需要知道传输了多少位。
  • 一次发送

    一次发送中的ws  在ws改变后,发送器总是在一个时钟周期内发送下一个Word(这个word可能是16字节,32字节,48字节)的msb。    一次发送中的clk  发射机发送的串行数据可以与时钟信号的后缘(从高到低)或前缘(从低到高)同步。  然而,串行数据必须锁存在串行时钟信号前沿的接收器中,因此在传输与前沿同步的数据时存在一些限制(参见图2和表1)。

3.2 Word Select

  • WS 现用来表示正在传输的信道,同步一个个word 的发送

    •Ws=0;通道1(左); // 这里对应的是飞利浦指定的I2S标准格式下的 左声道和右声道. 左(0)右1, 如果为左对齐的话,左1右0  •WS=1;通道2(右)。
  • 一次发送中的ws (补充)

    ws可能在串行时钟的后缘或前缘发生变化,但不需要对称。  在从机中,该信号锁定在时钟信号的前沿。ws行在传输msb之前更改一个时钟周期。  这允许从发送器导出将被设置用于传输的串行数据的同步时序。此外,它使接收器能够存储前一个单词并开始接收下一个单词(参见图1)。

4.0 时序

  • 主机

    在i2s格式中,任何设备都可以通过提供必要的时钟信号来充当系统主机。
  • 延迟

    从机通常从外部时钟输入导出其内部时钟信号。这意味着,考虑到外部(主)时钟(MCLK)与数据和/或字选择信号之间的传播延迟,总延迟简单地是:  		•外部(主)时钟和从机内部时钟之间的延迟  		•内部时钟与数据和/或字选择信号之间的延迟。    对于数据和WS输入,外部到内部的时钟延迟没有任何影响,因为它只会延长有效的设置时间(见图2)。  时间间隔的主要部分是调节发射机的传播延迟和设置接收机所需的时间之间的差异。
  • 速率

    所有时序要求都是相对于设备的时钟周期或最小允许时钟周期来规定的。这意味着未来可以使用更高的数据速率。

在这里插入图片描述

转载地址:http://crngi.baihongyu.com/

你可能感兴趣的文章
数据分析-day06-pandas-dataFrame案例分析4:使用PeriodIndex将离散组成pandas的时间序列,然后统计不同时间段,两个地方的pm值走势
查看>>
static synchronized方法和synchronized方法的区别和联系-2(class锁和对象锁,不同锁,混合访问时)
查看>>
spring cloud 自定义ribbon实现负载均衡(二) 解决自定义ribbon和springboot启动类放在同一包下
查看>>
重要重要》》》》》springcloud fegin的基本使用,实现consumer通过fegin访问provider!!!!!
查看>>
spring cloud 远程仓库配置文件(yml或properties)中有server.port参数就无法访问,这是一个大坑吗?
查看>>
es 2.3.3 向es添加数据报NoNodeAvailableException[None of the configured nodes are available
查看>>
springboot 的@RequestBody JSONObject 与@RequestBody Object 的区别
查看>>
springboot pom文件设置<packaging>pom</packaging> 对于application.yml无法加载读取的问题
查看>>
springboot加载resouce下面的静态文件,templates目录的访问,以及经过controller后跳转页面问题
查看>>
shiro的通过md5+salt+hash散列进行注册操作
查看>>
springboot整合applicationContext实现上下文获取实例bean
查看>>
shiro目前问题记录
查看>>
shiro实现本地内存Ehcache实现将菜单权限进行缓存
查看>>
shiro使用redis实现将菜单权限进行缓存
查看>>
cmd窗口下执行jar包 logger.info输出乱码,out语句输出正常解决办法
查看>>
springboot启动初始化实例,后面进行使用
查看>>
shiro实现加载验证码
查看>>
springboot 搭建多模块调用以及打包执行
查看>>
shiro实现不使用密码加密器进行登录
查看>>
权限管理系统笔记
查看>>