资讯详情

I2C 子系统(二):I3C spec

I3C :Improved Inter Integrated Circuit ,是 MIPI(Mobile Industry Processor Interface)移动工业处理器接口联盟推出的改进型 i2c 总线接口。

传感器在手机等移动产品中的快速发展带来了新的设计挑战。由于没有统一的连接物理传感器的方法,设计师面临的数字接口碎片包括 I2C、SPI 和 UART 等。

除主接口外,还可能需要其他信号,如特殊中断和芯片选择信号(SPI),启用和睡眠信号。这将增加所需的主机 GPIO 数量和更多 PCB 层的系统成本。

随着时间的推移和传感器数量的增加,这种情况变得越来越难以控制。

MIPI I3C 该产品通过为传感器提供快速、低成本、低功耗的二线数字接口,简化了移动无线传感器系统的设计架构。

框架如下:

Example classes of sensor addressed by I3C are listed in Table 1.

翻译一下:

是否需要额外的中断线

I2C 和 I3C 主要区别如下:

  1. I2C 虽然也是两条线,但传感器往往需要一条额外的中断线来告诉主控数据已经准备好了。I3C 允许设备直接在总线上中断,不再需要额外的中断线。
  2. I2C 传输速度最高 3.4MHz,I3C 可以 12.5MHz。
  3. I3C 向下兼容 I2C,但不兼容 10bit 的 I2C 扩展地址。
  4. I2C 的从设备是静态地址,I3C 动态地址由主设备分配。
  5. 由于支持带内中断,涉及到设备的优先级。一般来说,如果动态设备数量较低且优先级较高,则优先响应为中断。(这也是线和线的特性)
  6. I3C 支持使用 推挽输出 的GPIO,增强驱动能力只需要特殊设置。

如果所有 sensor 器件都采用 I3C 如下图所示:

I3C 关键特性

Mbps 而数据流量单位 MHz 是频率单位。

Mbps 是 Million bits per second 的缩写,1 Mbps代表每秒传输 1048576 位(1Mb=1024Kb=1024*1024bit),也就是说,每秒048、576 / 8 = 131,072 字节 = 128 KB = 0.125MB。

  1. 使用推拉功能的双线串行接口最高可达 12.5 MHz

  2. 同一总线共存的传统传统 I2C 设备(有一些限制)

  3. 同时支持传统的动态搜索I2C静态寻址设备

  4. 传统I2C通讯

  5. 类似I2C单数据速率信息传输(SDR)

  6. I3C BASIC 不支持:可选高数据速率消息模式(HDR)

  7. 多点功能

  8. 多主功能

  9. 带内中断支持

  10. 热连接支持

  11. I3C BASIC 不支持:同步计时支持和异步计时冲压

  12. secondary master support

  13. 不支持 I2C master

  14. 不支持从机 clock stretching

  15. 每个 I2C 需要有从机设备 50ns spile filter on SCL

  16. 还不多 I3C 市场上出现了设备

I3C

I3C 支持许多传统 I2C 从设备,I3C 有两种模式:SDR Mode、HDR Modes

I3C Single Data Rate (SDR) Mode

  1. 数据只在时钟的边缘传输。
  2. Private/Typical messages: 使用动态地址将消息发送到从机
  3. 广播信息:所有从机发送到总线(如:ENTDAA)
  4. 直接消息:向特定从属设备发送消息(如:SETDASA)

I3C High Data Rate (HDR) Modes

  1. 双数据速率(HDR-DDR)模型:使用与使用SDR相同模式的信令(即12)C协议没有明显区别),但运行速度约为SDR速度的2倍
  2. 通过在两个时钟边缘传输数据实现更高的速度
  3. Ternary Symbol Legacy (HDR-TSL) Mode: 混合更高的数据速率和三元编码I2C和I3C设备总线I2C协议明显不同
  4. Ternary Symbol Pure-bus (HDR-TSP) Mode: 更高的数据速率和三值编码适用于只有I3C设备总线C协议显着不同
  5. 三元符号有三种状态,SCL线改变状态,SDA线改变状态,或两条线改变状态

SDR Mode

  1. SDR 模式是 I3C 默认模式的总线
  2. 用于传递从当前主设备到设备的特殊信息。
  3. 用于进入其他模式、子模式和状态
  4. 用于内置功能,如通用命令(CCC)、通过分配动态地址,区域中断和从I2C过渡到I3C。
  5. 在程序和条件上I2C协议【NXP01】非常相似,所以I3C设备和许多传统I2C从设备(但不是I2C主设备)可以相同I3C总线共存。
  6. 对于I3C与I2C共享程序和条件,SDR严格遵循模式I2C规范中的定义。
  7. 所有I3C正确忽略从机I3C主机到I2C从机的I2C通信,因为I3C协议旨在允许I2C通信。
  8. 大多数传统I2C从设备上看不到I3C主设备到I3C从设备的I3C因为通信量I2C尖峰滤波器对I3C时钟速度不透明。

I3C Master Device

I3C Slave Device

本文讲解 I3C 从规范中可以看出协议规范的详细内容,I3C 比 I2C 硬件带来的复杂性要复杂得多。

对于 Linux 常用版本,kernel-4.14 和 kernel-4.19 并没有提供 I3C 驱动,kernel-5.10 有提供 I3C 驱动(从 kernel-5.0开始提供)

以下可在线查看,目录/drivers/i3c/…

https://elixir.bootlin.com/linux/latest/source 

Bus configuration

I3C 不仅支持多个设备,还支持多个主设备。I3C 可支持总线的设备有:

  1. Main Master(当前主设备)
  2. Secondary master(辅助主设备)
  3. i3c Slave(i3c从设备)
  4. i2c Slave(i2c从设备)

I3C 特性寄存器的描述和定义 I3C 兼容设备在 I3C 总线上的 capabilities 和 functions,没有 I3C 特性寄存器的设备不得与公众连接I3C总线。

寄存器有三种类型:

  1. Bus Characteristics Register (BCR)
  2. Device Characteristics Register (DCR)
  3. Legacy Virtual Register (LVR)

Bus Communicaton

SDR 协议基于 I2C 标准协议有几个显著变化:

SDR Message

  1. 地址头中的地址是7’h7E(I3C广播地址) I3C 从设备应与地址值 7’h7E 匹配。
  2. 地址头中的地址与从机动态地址相匹配。 I3C 从机应匹配自己的动态地址。

Role of I3C Slave

  1. 在分配动态地址之前,I3C从设备应作为I2C设备运行
  2. I3C START 和 STOP 在信号方面与 I2C START 和 STOP 相同,但在时序上可能不同。

I3C Address Header

  1. 支持带内中断
  2. 支持辅助主设备
  3. 支持热拔插 (热插拔特性可以让i3c从设备在不工作时处理睡眠或者关闭状态,需使用时才挂载到总线上使用,进一步达到降低功耗的目的)

I3C Address Arbitration

  1. 主设备和一个或多个从设备
  2. following a START (but not a Repeated START)
  3. Open Drain(whether Master or Slave)
  4. lower Addresses having higher Priority

Hot-Join Mechanism

  1. After a START, 7’b0000_010 + RnW(1’b0)
  2. 允许从设备在I3C总线配置完成后加入
  3. 热拔插设备可以是任何有效的从设备类型,包括辅助主设备

In-Band Interrupt

  1. After a START (but not a Repeated START) + Dynamic Address + RnW(1’b1)
  2. I3C 主设备提供 ack bits

Secondary Master Functions

  1. After a START (but not a Repeated START)+Dynamic Address +RnW(1’b0)
  2. 辅助主机保持控制总线,直到另一个主机被授予总线控制。
  3. defer some actions to a more capable Master(GETACCMST)

I3C Bus conditions

I3C总线应被视为不活动的三种不同情况:

  1. Bus Free Condition
  2. Bus Available Condition(tAVAL)
  3. Bus Idle Condition(tIDLE)

I3C为主设备提供了一种机制,用于通知从属设备I3C总线上预期即将到来的活动级别:

总线初始化和动态地址分配模式

头地址是 7h7E(I3C 广播地址),所有的 I3C 从机将匹配 7h7E,任何的 I2C 从机设备将不会匹配此地址,因为这个地址在 I2C 中是保留的并且未使用。

Common Command Codes (CCC)

通用命令代码(CCC)是全球支持的命令,可以直接传输到特定的I3C从设备,也可以同时传输到所有I3C从设备。

CCC 命令分为四类:

  1. Broadcast Write
  2. Direct Read/Write
  3. Direct Write
  4. Direct Read

支持动态地址

i3c支持动态地址,同时可以分配 7bit 静态地址以适配传统 i2c 从设备。i3c从设备地址由主设备仲裁,但并不是所有设备地址都可用,部分地址是 i3c 标准所保留的,用于后期拓展或者错误仲裁。

支持多种通信模式

i3c支持4种通信模式,分别是SDR、HDR-DDR、HDR-TSL、HDR-TSP,不同模式通信速率有差异。

SDR 很多 I3C 主控和设备支持,HDR 很多设备不支持,所以最常用的是 12.5MHz。

  1. SDR 模式:12.5Mbit/s
  2. HDR-DDR模式: 25Mbit/s
  3. HDR-TSL模式:30 Mbit/s
  4. HDR-TSP模式:37.5 Mbit/s

I3C 应用场景

  1. 多传感器领域,节约总线 IO。
  2. 物联网领域,功耗低。
  3. 传统 i2c、spi、uart 设备接口中。
  4. camera、touch panel。
  5. i3c 向下兼容 i2c,可与传统 i2c 接口器件一起使用。

标签: tsp100传感器interface传感器mb

锐单商城拥有海量元器件数据手册IC替代型号,打造 电子元器件IC百科大全!

锐单商城 - 一站式电子元器件采购平台