本文系微信公众号《大话成像》,知乎专栏《all in camera》原创文章,转载请注明出处。 大话成像读者QQ 交流群2 :833282006 大话成像技术论坛:ww.dahuachengxiang.com 微信群请先加 zxzombie
本站新教学视频《图像传感器技术与应用》上线淘宝教育
《成像系统图像质量调试》《成像算法基础(python版)》 《成像系统镜头光学》《新版图像质量测试测量与国际标准》《新版cmos sensor测试测量与国际标准》《新版数字成像系统42讲》课程大话成像淘宝官方网店有售:
https://shop322456667.taobao.com/
I2C与SPI历来是嵌入式设备领域的主流接口技术,特别是在成像传感器等设备的连接中。这些接口以其简易的实施和广泛的采用而闻名,但随着技术的深入发展和应用的专业化,它们在关键特性和性能上的局限性逐渐显现,这可能对高密度和精密度的系统设计构成挑战。例如,I2C系统中的7位固定地址容易引发总线冲突,且其不支持带内中断或硬件重置(这增加了额外的线路和引脚需求),数据传输速度受限,且允许从设备控制时钟频率,可能在持续通信中导致系统冻结。而SPI的局限则包括需要为每个设备维持多达四条通信线和一个芯片选择引脚,且标准化程度不足,导致了多种不同的实施方案。
在智能手机、可穿戴设备、物联网(IoT)设备、汽车系统以及服务器环境变得越来越高级复杂的今天,对于更加高效、性能卓越、可扩展且成本效益高的通信接口的需求正日益增加。这些接口需支持快速、高效的数据控制与传输,同时实现节能和空间优化的设计,以及设备的迅速激活与配置。
I3C技术,旨在克服传统I2C和SPI接口的限制,并带来额外的性能提升。由MIPI联盟精心打造的I3C规范是一项创新的多功能接口,它不仅优化了I2C和SPI的核心特性,还提出了一个全新的、一体化的高效解决方案。I3C标准保留了与I²C系统的向后兼容性,允许现有的I²C设备接入I3C总线,同时支持I3C兼容设备之间的高速数据通信。
I3C延续了I²C的两个信号线——串行时钟线(SCL)和串行数据线(SDA)。它维持了I²C开漏输出的特性,但速度受到了由此产生的信号上升时间的限制。I3C在保持兼容性的同时,尽可能地转向推挽输出,并在协议上进行了优化,以允许更高效的切换操作。SCL保持作为传统的数字时钟信号存在,由当前的总线主设控制,不支持I2C时钟拉伸这一较少使用的功能。在交互中,SCL的占空比通常保持在50%,但在与I3C设备通信时,可以提升频率或调整占空比,使得SCL高电平周期最大不超过40纳秒。SDA负责传输串行数据流,其速率受主设备SCL信号的控制。
为了兼容I²C协议,所有事务都以开漏模式的SDA开始,这限制了传输速度。在向I3C从机发出地址之后,SDA驱动模式在事务的第一个比特后切换为推挽模式,使得时钟速率可提升至12.5 MHz,这一模式被称为标准数据速率(SDR)模式。通常情况下,SDA在SCL下降沿后变化,并在下一个上升沿接收结果。当主机向从机传输SDA时,这一变化发生在SCL的下降沿;而当从机把SDA的控制权还给主机时,它会在SCL的上升沿释放SDA,主机则在保持SCL高电平状态的同时负责变更接收到的值。因为主机控制SCL,所以上升沿先出现,导致两者在控制SDA时有短暂重叠,但由于两者输出相同值,不会造成总线冲突。
I3C在数据传输速度方面对I2C进行了显著的改进。尽管I2C在历史上通常不是一个高速协议,因为它足够满足传感器的需求,这些传感器通常不需要大量的数据吞吐量就能高效运行。然而,随着传感器和嵌入式系统的功能越来越强大、要求越来越高,对于更快的数据传输需求也随之增长。
I2C支持多种主要工作模式,包括:
标准模式:100 kHz
快速模式:400 kHz
增强快速模式:1 MHz
高速模式:3.4 MHz
超快速模式:5 MHz
相比之下,I3C的标准数据速率高达12.5 MHz,而最新版本的I3C甚至支持高达100 Mbps的速率。显然,I3C支持的速度远远超越了I2C。
在开发I3C的过程中,充分保持向后兼容性是一个核心考量。I3C应用程序能够与I2C从设备以及原生I3C设备并行工作。这种兼容性为工程师提供了平滑过渡的时间窗口,逐步淘汰旧有的I2C设施。对于嵌入式系统工程师而言,这种过渡期是宝贵的,因为它大大简化了新协议的采用过程。
I3C 相对 I2C 还有下面这些改进
动态地址
I3C 接口在动态地址分配方面提供了对 I2C 静态寻址方式的显著改进。I2C 设备的地址通常在生产时被固定,这可能导致不同供应商间的地址冲突,给集成过程带来挑战。I3C 通过在总线初始化期间为设备分配唯一的7位动态地址,解决了地址冲突的问题,从而提高了系统的整合性和可靠性。
热加入
I3C 还引入了热加入功能,允许在不中断系统的情况下,动态地添加或移除从设备。这一机制增加了系统的灵活性,使得设备可以在总线配置完成后即刻加入网络。
带内中断方面
在带内中断方面,I3C 利用推挽时钟线和开漏数据线的操作方式,允许从设备在必要时发起中断,这是 I2C 所不具备的功能,后者需要额外的线路来实现相同的功能。I3C 设备可以在总线空闲时请求中断,而在 I2C 中则不可能实现。
电源效率
关于电源效率,对于任何新技术来说,更出色的能源管理能力都是关键属性之一。我们期望计算机在保持更高性能的同时,能源消耗要低于以往的模型;同样,总线协议的新迭代也应该追求高效的能源管理。
在解决挂起问题方面,I2C 中的时钟延长(从机保持时钟在低电平)会导致总线挂起,这是一个固有的问题。I3C 通过限定只有主机可以驱动时钟,并让从机在 SDA 上执行与时钟相关的所有操作,从而消除了挂起的风险。值得注意的是,I3C 规范的新版本还将包括从复位功能,以便对无响应的 I3C 从设备进行复位。
I3C 的能源效率是其另一大优势。与 I2C 的开漏总线设计相比,I3C 通过引入时钟和推/拉功能,省去了克服上拉电阻的需求,这提高了总线速度,并减少了能源消耗。这种改进不仅提高了嵌入式设计的能源效率,还提升了控制器和处理器从传感器获取数据的速度。
高数据速率模式
此外,I3C 包含了高数据速率模式,例如双倍数据速率和三进制符号转码,这些可选模式允许有效吞吐量最多增加三倍,同时能耗仅与使用12.5 MHz时钟相同。因此,当这些高速模式启用时,每比特的能耗显著降低。I3C 的速度足够快,以至于可以集成可选的时间控制功能,使主机能对传感器数据进行精确的时间同步。这对于基于飞行时间的传感器或应用尤为重要,是 I2C 或 SPI 无法提供的功能。
防挂起
由于使用推挽(而不是开漏)和强上拉信号,所有 I3C 模式提供的每比特传输功耗低于 I2C。此外,I3C 可以通过使用更高的数据速率(结合深度睡眠模式)、IBI 以及从设备禁用所有内部时钟同时仍然在 I3C 总线上正常运行的能力来进一步节省功耗。在传统 I2C 中,时钟延长(从机将时钟保持在低电平,阻止其运行)通常会导致严重的问题,包括总线卡住。这不会发生在 I3C 总线上,因为只有主机可以驱动时钟,而从机在 SDA 上执行与该时钟相关的所有操作,从而消除了挂起的风险。还应该注意的是,I3C 规范的下一个修订版将包括从复位功能来复位无响应的 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。
在系统中,存在三种可能的I3C总线配置:
1.纯总线:总线上仅存在I3C设备。
2.混合快速总线:总线上同时存在I3C设备和旧版I2C设备,因此旧版I2C设备仅限于通常允许的设备(即,仅从设备,无从设备时钟延展) SCL上真正的I2C 50 ns尖峰滤波器。(即,在所有温度和过程中,当“高”持续时间小于50 ns时,“不”将SCL线路视为“高”的I2C器件。)
3.混合的慢速/受限总线:总线上同时存在I3C设备和Legacy I2C设备,因此Legacy I2C设备仅限于通常允许的设备(即,只有Slave,没有Slave时钟延展),但是SCL上没有真正的I2C 50 ns尖峰滤波器。
总线设计人员对总线配置的选择会影响I3C SDR可用的速度选项,以及各种时钟速度下可以使用的HDR模式。表10显示了每种总线配置的可能选项。
在MIPI I3C通信中,开漏(open drain)地址传输后续跟随着推挽(push-pull)数据传输的过程可以解释如下:
开漏地址传输:在这个阶段,主设备开始通信并允许地址仲裁。开漏模式意味着多个设备可以在同一时间对总线进行控制,只有一个设备可以将总线拉低(低电平),而其他设备必须释放总线(高电平或悬空)。这种模式对于地址传输和仲裁特别重要,因为它允许多个设备在没有冲突的情况下共享总线。
推挽数据传输:一旦地址被成功传输并且设备间的通信已建立,数据传输则采用推挽模式。在推挽模式中,设备通过主动将线路拉高或拉低来发送数据。这种模式允许更快的数据传输速率和更高效的通信,因为每个信号线都可以被主动驱动到高或低状态。
这种结合开漏地址传输和推挽数据传输的方法提供了高效、灵活的通信方式,特别适用于MIPI I3C这样的高性能通信标准
地址仲裁在MIPI I3C规范中用于多种功能,其重要性体现在以下几点:
带内中断(In-Band Interrupt):从设备可以在静默期间通过将SDA线拉低来触发主设备,随后主设备会启动其SCL线(开始条件)。
热加入(Hot-Join):允许新的设备在通信过程中加入到总线上,而不需要重新初始化总线。
总线初始化(Bus Initialization):在不知道所有从设备地址的情况下,地址仲裁可用于初始化总线。
地址仲裁是MIPI I3C中的关键机制,因为它支持设备动态加入和离开,同时确保数据传输的一致性和可靠性。通过这种方式,I3C能够提供比传统I2C更高效、灵活的通信解决方案。
以下是一些突出展示I3C关键特性的终端设备应用案例:
智能手机和物联网(IoT)设备:这些设备通常结合了I2C和SPI设备,SPI需要四根线,I2C需要两根线,加上每个外围设备的中断线。额外的设备需要更多的逻辑线并增加整体功耗。I3C提供了带内中断能力,这是一种低成本唤醒机制,即I3C目标设备在总线空闲时可以请求中断;这种设计消除了对每个目标设备单独通用输入/输出(GPIO)的需求,从而降低了系统成本和复杂性。I3C还引入了动态地址分配,这在改变目标设备的优先级时很重要,以便增加或减少来自该设备的带内中断。
大多数PC/主板应用:在这些应用中,I3C设备被用于可能有多个控制器、大量端点设备和长迹线的场合,所有这些都可能影响总线复杂性和信号完整性。I3C的多控制器和多点下降能力,以及明确定义的控制器间交接协议,提供了设备在总线上请求担任控制器角色的能力。这样,总线架构就不仅限于一个固定的控制器设备和若干目标设备。
在I3C中,目标设备被允许在总线已经配置后加入,并由I3C控制器分配动态地址。通过I3C的热加入能力,总线上的一些设备可以在操作过程中开启和关闭,允许“功率分段”设计,只在需要时保持单元活动。这个特性在那些不希望或不可能(如服务器或无线基站)关闭系统电源的应用中非常重要,或者在需要正确设计热插拔功能的情况下,无论是在背板还是外部卡上。
DDR5:DDR5也使用MIPI I3C作为核心技术之一。使用MIPI I3C而不是I2C,DDR5提供了内存带宽的改进,使得下一代高性能系统和应用得以实现,包括客户端系统和高性能服务器。I3C提供了10 Mbps的典型数据速率,并有更高性能的高数据速率(HDR)模式,提供超过30 Mbps(单通道模式)和100 Mbps(四通道)的速度。
MIPI I3C总线接口是一种革命性的规范,它极大地提高了传统接口的速度和灵活性,简化了智能手机、可穿戴设备、汽车系统和服务器环境等产品的创新设计开发。随着该协议逐渐获得动力,向I3C接口的迁移使设备能够实现更高的性能,以及更好的系统管理和配置。这使得I3C成为企业和产品更多的选择