什么是I3C总线?一文了解I3C技术原理与厂商动向

传感器智造师 2022-12-07
3238 字丨阅读本文需 8 分钟

常见的板级间通信总线有i2c、spi、uart、i2s等,这类总线常用于ADC、DAC、传感器、触摸屏等等外设中;i2s则用于传输音频信息,在音频ADC和DAC中应用。随着物联网的应用越来越广泛,涌现各类传感器,温度、气压、心率、陀螺仪,传统传感器一般是以i2c、spi、uart为接口,随着传感器种类的激增和对性能与功耗的要求,暴露出总线的一部分缺陷,典型的问题有几点:

功耗问题,i2c、spi、uart设计之初并未考虑到低功耗问题,物联网应用对于功耗要求十分苛刻;

i2c、spi、uart都是只支持单一主机;

i2c、spi是同步通信,必须由主机端(处理器)发起时钟进行通信,从机端没法主动向主机传输数据;

i2c、spi一般需增加中断线通知主机来读取数据,随着传感器增加,占用大量IO口和中断资源;

uart是异步通信,虽然没有第三第四点的缺陷,但其是点对点通信,一个总线只能挂一个从设备;

基于上述问题,MIPI主导并提出了i3c总线,可以解决现有问题,适用于多个传感器的场合。

一、I3C,升级版I2C

在过去的几十年里,I2C的广泛应用可以说是有目共睹,但是其本身也有着两个避不开的缺点,一是速率受限,二是功耗偏大。此前也有不少SPI代替I2C的做法,但是SPI本身应用比较宽泛,最终也没能替代I2C。随着移动设备上传感器数量的增加,总线上数据量开始膨胀,I2C的瓶颈越来越明显。为了提升I2C的性能,早在2013年,MIPI联盟传感器接口工作组就启动了基于I2C的需求升级。

I3C作为I2C的升级版,在使用功率和性能方面有重大改进,同时速率也升级到可以替代SPI的中速,相当于SPI 30MHz下的速率。I3C规范的主要制定者包括NXP,Qualcomm,Intel,还有Invensense,TI,STM,Synopsys,Cadence,Mentor,Sony,Knowles,Lattice这些提供助力的厂商。

众所周知I2C是两根线,但是它的中断脚、使能脚等等都要通过GPIO连到SoC上,随着传感器数量的增加,使用I2C只能不断增加GPIO。I3C将这些中断做成了内置,可以帮SoC省去很多GPIO。I3C也是向后兼容I2C,I2C可以平稳地过渡到I3C。这一升级有效助力了智能手机、可穿戴设备、物联网设备、增强现实/虚拟现实和汽车系统实现更多设计创新。

二、I3C:技术概述

从电气的角度来看,I3C 接口与 I2C 标准有一些相似之处(例如只有两条线,SDA 和 SCL),但也有一些显着差异。首先,数据信号 (SDA) 具有开漏配置(例如,可以使用集电极开路输出来实现),允许从设备控制总线并发送中断。时钟信号 (SCL) 可以切换到推挽配置,这允许主设备生成基本频率为 12.5 MHz 的时钟信号。更准确地说,I3C 具有四种数据传输模式:SDR 模式下的 12.5 Mbps(默认)和 HDR 模式下的 25、27.5 和 39.5 Mbps。不包括链接到每个事务的控制字节,可实现的实际比特率分别为 11.1、20、23.5 和 33.3 Mbps。

带内中断

由于 IBI 功能,I3C 标准克服了传统 I2C 接口的一个经典限制,即从节点无法在总线上自发地发起自己的事务。为此,传统 I2C 和 SPI 接口都需要专用线路,从而增加了成本和布线复杂性。另一方面,如果总线处于空闲状态,带内功能允许每个 I3C 从设备在它们认为必要时启动 START 事务。为此,如果总线可用,从节点将 SDA 线拉低并等待当前主节点将 SCL 线拉低,完成 START 阶段。通过在 SCL 线上向从机提供时钟信号,主机允许后者用自己的地址驱动 SDA 线。如果多个从设备同时尝试访问总线,仲裁电路会为地址最低的从设备分配优先级。此时,master 有三个选项可用:

接受slave的请求,发送ACK并获取slave发送的数据字节。 拒绝来自从设备的请求,但不禁用中断(被动 NACK),一旦总线可用,从站现在可以重试操作。 通过禁用中断并发送 NACK 来拒绝来自从设备的请求。

热连接功能

此功能允许 I3C 传感器在正确配置后连接到总线。在现代基于传感器的应用中,例如与物联网相关的多种场景,不仅要确保高性能,还要确保高效运行,从而最大限度地降低传感器(主要由电池供电)的功耗。由于具有热连接功能,传感器可以在不需要时保持关闭(或处于低功耗状态),并且仅在数据采集和传输的特定时期才连接到总线,与传统的“永远在线”解决方案。热连接请求只能由尚未分配动态地址的从站执行。为此,从站使用为此功能保留的物理地址;

同样重要的是离线功能,它允许从节点变为非活动状态,然后在稍后恢复正常操作。有两种离线模式:

从机完全不活动(相当于断电),只有在发生某些外部事件时才恢复活动;发生这种情况时,从设备热加入总线以获得新的动态地址。 从设备部分处于非活动状态,从某种意义上说,它继续监视总线以检查是否向它发送了命令,例如从设备复位,根据这些命令,从设备将唤醒并返回操作。

常用命令代码

一个非常有用的功能是通用命令代码 (CCC),即主机用来与连接到总线(广播)的所有从机或特定从机进行通信的命令。CCC 命令包括标准操作,例如启用/禁用事件、处理特定 I3C 总线功能(例如,动态寻址和时序控制)或其他总线操作。所有与 CCC 命令相关的代码均由 MIPI 联盟定义,一些值保留用于未来扩展。

主控请求

此功能允许辅助主机在他们打算获取活动主机角色时发送主机身份请求 (MR)。如果当前船长接受该请求,则将船长从后者转移到次要船长。

通讯方式

I3C接口为用户提供了多种通信方式,可分为以下几类:

单数据速率 (SDR) 是与传统 I2C 接口的消息交换兼容的模式,并提供高达 12.5 .MHz 的数据速率 高数据速率 (HDR) 包括几种与 I2C 不兼容的消息交换模式。在 SDR 和 HDR 操作模式下,SDA 引脚用作双向数据信号。第二个引脚在 SDR 和 HDR-DDR 模式下用作时钟信号(SCL)或在 HDR-TSL 和 HDR-TSP 协议通信模式下用作双向数据信号。

SDR 模式支持不同类型的消息,例如标准 I2C 消息、广播消息和 CCC 消息,这些消息允许主设备与总线上的所有设备通信并处理从设备转发的请求(例如,带内中断或请求假设主人的角色)。有两种主要的 HDR 模式:HDR-DDR(双倍数据速率)和 HDR-TSL/TSP(三进制符号),它们提供高于 33 Mbps 的比特率,并且比快速模式(400 kHz)下的标准 I2C 的吸收更低)。HDR-DDR 可用于与 MIPI I3C 从设备通信,允许传统 I2C 设备连接在同一总线上,这将忽略高速 MIPI I3C HDR 广播。HDR-DDR 模式使用 SCL 信号作为时钟,SCL 两侧的数据位同步。另一方面,HDR-TSL/TSP 模式允许三进制符号编码(即,三位数基本代码)用于 I3C (TSP) 和 I2C-legacy inclusive (TSL) MIPI 系统。HDR-TSL 同时使用 SCL 和 SDA 作为数据线,其中每个周期至少必须经过一条线。转换索引用于将二进制符号的传输编码为三进制,以实现以非常低的功率进行高速传输。

三、I3C优势与应用场景在哪里

虽然I2C说是只有时钟线数据线,但是还需要很多额外的从线连到SoC上,GPIO数量的增加以添加SoC包引脚和PCB层计数的形式增加了系统成本,相比之下I3C的布线情况就简洁很多,只需要两根信号线即可,可以显著缩小SoC尺寸。

至于功耗,众所周知I2C的两根线SCL和SDA都是需要接上拉电阻的,上拉电阻的存在导致了I2C功耗会比较大,I3C的SCL全程采用推挽,SDA大部分时间也在推挽模式下工作,因此功耗会降低很大一部分。

速率上I2C典型的速率有3 Mbps max at 3.4 MHz (Hs)、0.8 Mbps max at 1 MHz (Fm+)、0.35 Mbps max at 400 KHz (Fm)。I3C典型的数据模式SDR是12MHz下的10.6Mbps,最高速率是HDR模式下的三元采样,达到12.5MHz下的30Mbps。

另外,I2C是没有命令字的,I3C则有着一整套通用命令字的集合。可以通过这些命令字实现动态地址分配、检查当前总线状态、时间控制、IO扩展等等功能。整个功能比I2C有着全面的提升。

从I3C最典型的SDR信号处理上来看,动态地址分配后其启动条件与I2C相同(SCL和SDA从高降到底),但接下来就不同了,I3C SCL可以达到4MHz,并且其高周期<45 ns,比I2C要求的50 ns低得多。接收到ACK之后,主机就会将SDA更改为推挽模式,并将其时钟增加到12.5 MHz使器件进入SDR模式。

地址仲裁可以说是I3C极为重要的特性。上面提到,I3C将中断内置(IBI)进来了,当Slave产生中断时,IBI就会主动向主机发送中断信息,上传地址与其他信息。多个Slave同时产生中断,这时候就有多个地址信息,就需要进行地址仲裁判别优先级。地址仲裁遵从一个原则,那就是0s优先,哪个Slave小哪个优先级更高。地址冲裁也对热插拔、动态地址分配以及多主机申请判别同样有效。

四、I3C厂商动向

NXP

NXP作为I3C协议的主要制定者,提供IP与Silvaco合作,提供Free Basic Slave、Standard Slave、Advanced Slave以及主机四种不同包装的I3C产品,根据不同具体应用的区别,可以为Slave模块添加1.5K到2.5K的门,消耗的功率也很小,并支持采用时钟门控和其他方法来限制功耗。其后端可以在没有系统时钟的情况下运行。在NXP的RT系列MCU中,也可以看到I3C的身影。

Synopsys

Synopsys也发布了DesignWare MIPI I3C控制器IP,可以将更多传感器集成到系统中,同时简化电路板设计并降低总体成本和功耗。DesignWare MIPI I3C控制器IP多主机操作和32位ARM AMBA 高级外设总线(APB)从接口。基于标准的APB接口将IP连接到SoC的其余部分,同时总线连接到寄存器和直接存储器访问(DMA)接口,从而实现轻松的IP集成,使设计人员能够拥有完整的传感器接口解决方案。

Cadence

作为联盟成员Cadence可以提供MIPI I3C控制器。适用于MIPI I3C的Cadence控制器IP符合MIPI I3C规范,并与I2C规范兼容,其设计可快速轻松地集成到任何移动嵌入式SoC设备中,并以更好的性能和电源效率扩展传感器通信能力。MIPI I3C控制器具有成为I3C总线上的启动器/主机或目标的能力。

瑞萨电子

今年,瑞萨电子与Intel联手推出了面向下一代服务器主板和其他基础设施设备的I3C智能开关器件RG3MxxB12系列,为机架内的每个子系统带来先进的平台管理功能。I3C智能开关产品家族允许以最大速度将两个发起设备(上行)端口扩展到四个、八个或更多的目标端口,是MIPI I3C基础应用很好的用例。

TI

随着系统中目标设备数量的增加,主机控制器必须考虑减少延迟、实现关键警报功能以及降低通信期间的功耗。TI在今年推出了基于I3C的温度传感器TMP139,以解决DDR5 DIMM等复杂系统中的低延迟热传感挑战。在I3C的助力下,TMP139温度精度超过了规范要求,可实现更高性能的DDR5存储器模块。

文章来源: 电子发烧友网,eeweb Stefano Lovati,Acuity.

免责声明:凡注明来源本网的所有作品,均为本网合法拥有版权或有权使用的作品,欢迎转载,注明出处本网。非本网作品均来自其他媒体,转载目的在于传递更多信息,并不代表本网赞同其观点和对其真实性负责。如您发现有任何侵权内容,请依照下方联系方式进行沟通,我们将第一时间进行处理。

0赞 好资讯,需要你的鼓励
来自:传感器智造师
0

参与评论

登录后参与讨论 0/1000

为你推荐

加载中...