前往小程序,Get更优阅读体验!
立即前往
首页
学习
活动
专区
工具
TVP
发布
社区首页 >专栏 >SOC设计之MIPI I3C [续]

SOC设计之MIPI I3C [续]

作者头像
数字芯片社区
发布2022-04-06 19:43:08
1.1K0
发布2022-04-06 19:43:08
举报
文章被收录于专栏:数字芯片

关键功能

对于 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 总线上的设备提供寻址解决了这个问题。

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

本文分享自 数字ICer 微信公众号,前往查看

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

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

评论
登录后参与评论
0 条评论
热度
最新
推荐阅读
目录
  • 关键功能
  • 技术概况
  • 基本原理
  • 主设备和从设备
    • 主设备
      • 从设备
      • 特性解释
        • 带内中断
          • 热连接
            • 增加的吞吐量
              • 动态寻址
              领券
              问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档