SOC设计之MIPI I3C [续]

2022-04-06 19:43:08 浏览数 (1)

关键功能

对于 I3C 接口来说,两个主要问题是最重要的:

  • 在传输数据和控制时使用尽可能少的能量
  • 减少接口使用的物理引脚的数量。

因此,I3C接口具有:

  • 使用推拉式高达12.5MHz的双线串行接口
  • 旧版 I2C 设备在同一总线上共存(有一些限制
  • 动态寻址,同时支持传统 I2C 设备的静态寻址
  • 传统I2C消息传递
  • 类似于I2C的单数据速率消息传递(SDR)
  • 可选的高数据速率消息传递模式(HDR)(I3C基本版中不支持
  • 多点能力
  • 多主功能
  • 支持带内中断
  • 支持热连接
  • 同步定时支持和异步时间戳(I3C基本版中不支持

I3C 接口提供了总线电源的主要效率,同时提供超过I2C 10倍的速度改进。

技术概况

下面主要介绍 I3C 总线接口以及 I3C主设备和从设备。

I3C 是一种两线双向串行总线,针对多个传感器从设备进行了优化,一次只有一个 I3C 主设备。I3C 向后兼容许多传统I2C 设备,并且I3C 有着显著的速度和新的通信模式,包括随时间更改设备角色的能力(即初始主控器可以将主控器角色传递给总线上的另一个 I3C 设备,如果第二个 I3C 设备支持该功能)。

I3C基础包括:

  • 支持许多传统 I2C 从设备和消息
  • I3C 单数据速率 (SDR) 模式:新的 I3C 增强版 I2C支持协议private messages,并增加了两种标准的内置消息:
    • 广播消息,它们被发送到总线上的所有I3C 从设备
    • 直接消息,它们被发送给特定的从设备

基本原理

I3C 支持多种通信格式,全部共享一个两线接口。两条线分别指定为 SDA 和 SCL:

  • SDA(串行数据)是双向数据引脚
  • SCL(串行时钟)是时钟引脚

I3C总线支持各种消息类型的混合:

  • 类似I2C 的 SDR 消息,SCL时钟速度可达12.5MHz
  • 广播消息和直接消息的通用命令编码 (CCC) 消息,允许主设备分别与 I3C 总线上的所有或一个从设备通信。
  • HDR模式消息,它在每个等效时钟周期中实现更高的数据速率(I3C基本版中不支持)
  • I2C消息传递给传统的I2C从设备。
  • 从设备向主设备发起的 START 请求,例如发送带内中断或请求主设备。

下图说明了如何启动I3C通信:

  • 所有的I3C通信都发生在一帧内。帧以一个START开始,接着是一个或更多的传输和STOP。
  • 对于 I3C Basic 不支持但 I3C Basic设备可以容忍的 HDR 模式:
    • 首先,专用广播 I3C 地址 (7’h7E) 被分配给 I3C 总线上的所有从设备。
    • 然后发出其中一个EnterHDR CCCs,表明主设备正在进入 HDR 模式。每个 HDR 模式都有自己的 EnterHDR CCC。
    • 接下来是一个或多个HDR传输。
    • HDR模式通过使用HDR退出模式协议来结束。

I3C基本框架总是至少包括开始STAR、头Header、数据Data,和停止STOP。

在START之后的报头允许总线仲裁。主设备使用报头来定位从设备。从设备可以将报头仲裁用于多种目的:

  • 用于带内中断
  • 用于热连接
  • 用于Secondary Master辅助主设备功能

I3C在同一时间只允许一个Master控制I3C总线。提供了将主设备从一个设备切换到另一个设备的机制。

通信流程

主设备和从设备

主设备

I3C总线要求在同一时间恰好有一个I3C设备作为I3C主设备。用I3C术语来说,这个I3C主设备就是当前主设备。在典型的应用程序中,当前主设备是总线上的I3C设备,它发送大部分的I3C命令(CCC),地址可以是所有从设备(广播CCC),也可以是特定的单个从设备(定向CCC)。当前主设备也是I3C总线上唯一允许发送I2C消息的设备。

除了发送I3C命令和I2C消息外,I3C主设备还包括:

  • 产生总线时钟
  • 管理上拉结构
  • 管理动态地址分配过程(包括热连接事件),同时作为主设备
  • 管理来自总线上I3C从设备的启动请求以及地址仲裁请求:
    • 产生带内中断
    • 热连接事件
    • 成为当前主设备
  • 支持 I2C 传统从设备
  • 支持 I3C SDR 模式

下图是一个典型的通用I3C主设备:

所有的I3C主设备都支持两个主设备角色中的一个,也可以支持两个从主设备角色中的一个。

Main Master Device Roles(Main Master和SDR-Only Main Master)

Secondary Master Device Roles(I3C Secondary Master和SDR-Only Secondary Master)

从设备

一个I3C总线支持多达11个I3C从设备,最大的设备数量取决于跟踪长度,每个设备的电容负载,以及总线上的设备类型(I2C和I3C),这些因素会影响时钟频率。

I3C从设备通过I3C总线接收当前主设备发送的相关I3C命令(ccc),并进行相应的响应。

这包括所有广播命令(CCC)和任何定向命令(CCC),专门针对该I3C从设备,并由该I3C从设备支持。

除了响应I3C命令外,I3C从设备也支持I3C SDR模式。

此外,I3C从属设备还可以选择:

  • 请求带内中断
  • 产生热连接事件
  • 如果I3C从属设备也具有I3C主设备功能,则请求成为当前主设备

下图是一个典型的通用I3C从设备:

所有I3C从设备都支持I3C从设备角色: I3C Slave SDR-Only I3C Slave

特性解释

带内中断

2 线 I3C 接口使用推挽时钟线 (SCL) 和开漏数据线 (SDA)。 SDA 允许从设备控制数据线并启动中断。(SPI和I2C只能通过使用第三条专用线提供从设备中断。) I3C 从设备可以在总线空闲时请求中断。 I3C 通过允许最低分配地址获胜来仲裁来自多个从设备的冲突。

热连接

I3C 总线协议支持目标在总线已配置后加入 I3C 总线的机制。这种机制称为热连接。I3C 规范定义了目标可以执行此操作的条件,例如,目标必须等待总线空闲条件。

从而使传感器能够在需要之前关闭。

增加的吞吐量

主时钟使用 SCL 将通信总线计时到 12.5 MHz。I3C 支持多种类型的设备:I3C 主主机、I3C 辅助主机、I3C 从机和 I2C 从机。

I3C 有一个标准化的程序,主机可以动态地为所有 I3C 设备分配 7 位地址,并支持同一总线上 I2C 设备的静态设备地址。

I3C 提供四种数据传输模式,可有效提供 11.1、20、23.5 和 33.3 Mbps 的数据比特率,包括 I3C 比特率错误检测。

动态寻址

I2C 使用静态寻址。这里的问题之一是,对于使用 I2C 总线的产品,供应商可能使用与另一供应商相同的地址,从而导致集成过程中出现问题。

I3C 通过为 I3C 总线上的设备提供寻址解决了这个问题。

0 人点赞