加入星计划,您可以享受以下权益:

  • 创作内容快速变现
  • 行业影响力扩散
  • 作品版权保护
  • 300W+ 专业用户
  • 1.5W+ 优质创作者
  • 5000+ 长期合作伙伴
立即加入
  • 正文
  • 推荐器件
  • 相关推荐
  • 电子产业图谱
申请入驻 产业图谱

技术 | I2C 子系统(七)

2022/06/13
4320
阅读需 8 分钟
加入交流群
扫码加入
获取工程师必备礼包
参与热点资讯讨论

7、I3C Protocol

本文讲解 I3C 协议规范的详细内容,从规范中可以看出,I3C 比 I2C 复杂很多,硬件简单带来的是软件的复杂。

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

如下可以在线查看 Linux 源码,目录/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 匹配。地址头中的地址与从机的动态地址匹配。所有 I3C 从机应匹配其自己的动态地址。

Role of I3C Slave

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

I3C Address Header

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

I3C Address Arbitration

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

Hot-Join Mechanism

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

In-Band Interrupt

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

Secondary Master Functions

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

I3C Bus conditions

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

  1. Bus Free ConditionBus Available Condition(tAVAL)Bus Idle Condition(tIDLE)

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

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

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

Common Command Codes (CCC)

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

CCC 命令分为四类:

  1. Broadcast WriteDirect Read/WriteDirect WriteDirect Read

支持动态地址

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

支持多种通信模式

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

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

  1. SDR 模式:12.5Mbit/sHDR-DDR模式:25Mbit/sHDR-TSL模式:30 Mbit/sHDR-TSP模式:37.5 Mbit/s

I3C 应用场景

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

 

 

推荐器件

更多器件
器件型号 数量 器件厂商 器件描述 数据手册 ECAD模型 风险等级 参考价格 更多信息
SN74LVC1G17DCKR 1 Texas Instruments Single 1.65-V to 5.5-V buffer with Schmitt-Trigger inputs 5-SC70 -40 to 125

ECAD模型

下载ECAD模型
$0.38 查看
VSC8572XKS-05 1 Microchip Technology Inc Ethernet Transceiver
$263.97 查看
CNY65B 1 Telefunken Semiconductor GmbH & Co Kg Transistor Output Optocoupler, 1-Element, 12000V Isolation,
$1.17 查看

相关推荐

电子产业图谱

研究生在读,熟悉硬件、STM32单片机、嵌入式Linux。已收获小米、联发科、浙江大华、上能电气、英威腾、汇川技术、格力、富士康等大厂offer。在这里分享求职经验、嵌入式学习规划、考研、嵌入式Linux技术文章等。