什么是I3C总线?它和I2C和SMBus是什么关系?

article/2025/10/4 8:05:09

        计算机技术发展十分迅速,三十年前,一间房子大小的小型机的算力,到现在还比不上大家手机CPU的算力。令人吃惊的是,有这么一种38年前的技术,现在还在大家的电脑中运用十分广泛,甚至它的控制器在计算机中的个数在过去五年中增长了两倍,这项技术就是I2C (Inter-Integrated Circuit,IIC)总线。

        就在某些新入行的同学还在纠结I2C和计算机中另一个相似总线SMBus的区别的时候,另一种替代I2C的新总线I3C已经出现在地平线上。春江水暖鸭先知,跟踪最新技术的朋友也许已经在Intel路线图和DDR5内存规格书中看到了这个名字了。现在是时候最后分清楚I2C和SMBus的区别,为I3C的到来做好准备了。

I2C vs SMBus?

        I2C(Inter-Integrated Circuit,IIC) 最初由飞利浦(Philips)半导体(后并入NXP)在1982年提出,主要目的是提供一种简单的、成本低廉的串行总线,用于MCU和电视机原件进行通信。它在最初是由一个Master(可以多Master)和可以多达127个Slave在由两根线(SDA, SCL)组成的总线上进行通讯。

        这样MCU就可以不用再单独和各个设备通讯,而仅仅用两根线就可以和所有外围设备愉快的通话了。这两根线分别是数据线(SDA)和时钟线(SCL)。如此这般,大大节约了芯片引脚数目,方便主板布线,节省了整体成本。良好的设计,慢慢让它得到了广泛应用。这些年下来,I2C从省电和提高速度方面进行了三次版本升级,速度从10KHz提高到最高可达5MHz。现在计算机领域,大多数低速设备都是靠I2C通讯:大多数传感器的数据读取界面是I2C;Clock芯片CK404界面是I2C;内存条SPD信息的读取界面是I2C;有些控制器的界面是I2C,等等。随着速度提高,有些中速设备也是I2C:经常遇到的例子是笔记本电脑的触摸板(Touch Pad)和触摸屏(Touch Panel),只不过界面是HS I2C。

        电脑里面常有的一个容易混乱的相似总线是SMBus,它由Intel在1995发布,最早用于和智能电池的通讯,后也经过三次提高,于2000年左右成熟后一直变化不大。SMBus脱胎于I2C,他可以说是I2C的一个子集。它在大部分情况下,也由一个Master(可以多Master)和众多Slave组成,用两根线(SMBDAT和SMBCLK)进行通讯:

        I2C和SMBus两者在一般应用下,区别不大,甚至大多数情况下互用也没有问题。更让人迷惑的是,两者可以同时出现在一些设计中,这让一些同学相当疑惑,两者到底有什么区别?在I2C上重新发明一遍轮子有何意义呢?

        答案在于I2C偏重速度,而SMBus偏重可靠性和成本。I2C速度从10KHz起步(理论上可以更低至0),最高5MHz;而SMBus最低10KHz,最高100KHz。也就是说在10KHz到100KHz上,两者才通用,这就排除了中速和高速设备。I2C不强制Slave对地址请求发送回应(ACK),而SMBus要求必须ACK。于此对应,SMBus对NACK的要求也严格于I2C。这是因为SMBus面向电脑中很多可拆卸设备,必须确定该设备是否存在,避免误操作。SMBus还加入了WatchDog,在SMBCLK拉低后,不得超过35ms(这就是10KHz的最低频率的由来),否则Slave应该Reset。而I2C并没有该限制。这让SMBus避免了复杂的错误恢复电路。SMBus还提供了单独的SMBSUS来用于Slave向Master报警。

I2C有什么缺陷?

        I2C两根线的设计相当简洁而高效,让MCU、PCH或CPU通过两个PIN就可以通讯,节约了成本和简化了设计。但是,所有的通讯都是由Master发起,Slave只是被动相应,这造成很大的麻烦。如果是输出设备还行,但对输入设备,CPU不知道有没有数据,不得不定时Pull I2C总线,看看输入存在与否,这与现代计算机系统设计初衷相反。随着I2C使用越来越广,越来越多的设备加入了更多的带外(sideband)线来补足I2C的缺点,其中最重要的两个线就是中断线INT和一些RESET线,一个经典设计如下:

I2C经典设计

        在图中,左边慢速I2C设备虽然共用了一个I2C总线,但每个设备都有自己的INT和Host相连,用于通知Host有事发生,而不是让Host不停来查询,这样才能让Host没事进入省电状态,更加高效。右边的高速设备更是另辟自己的高速I2C总线。如此这般,理想中的简洁设计在现实中越来越被破坏的支离破碎,常常是INT线比I2C线多得多。再加上进一步提高速度的需求,业界呼唤一种新的解决方案。于是I3C应运而生。

I3C来了

        MIPI Alliance发布了I3C标准[1](Basic免费下载)。I3C(Improved Inter Integrated Circuit)另一个名字叫做SenseWire,顾名思义,它的初衷是满足众多物联网设备中的Sensor的,它带来众多的改进,除了常说的12.5MHz速度的提高之外:

        更重要的是嵌入进协议的软中断。如此,就不需要单独的INT连线了:

I3C设计

        众多带外连线不见,高速I2C也不需要了,真正实现了高速和简洁。它还向下兼容I2C,以前的设备也还用得上,一个混合系统是这样:

        它还节省了电力消耗:

        I3C还有其他许多亮度:为了简化设计,提出了I3C Hub;参考内存DDR的概念,提出了DDR加倍数据传输;支持省电模式;In-bound CRC校验;Slave和Slave直接通讯。

结论

        曾经有个同学把I2C叫做"I(ai),2(er),C(ci)"而被人狠狠嘲笑了一番,讥笑者一脸傲娇的说“应该叫做I方C!这个“2”是指“平方”!”,更有非要用英文说"I-squared-C"来显示技术niubility和知识渊博的。而实际上,我听美国同事中叫它"I-squared-C"和"I-two-C"差不多一半一半,如此说来中文说法"I(ai),2(er),C(ci)"也并不过分。到了I3C,不知道傲娇的同学如何用中文叫它,难道叫做“I三次方C”?也许可以和英文“I-three-C”一样,叫做“I,3,C”就可以了。


http://chatgpt.dhexx.cn/article/RX1HqYKj.shtml

相关文章

关于I²C和SPI总线协议

《关于IC和SPI总线协议》 来自:刘建文 | 学术半IT歌文作者:刘建文关键字:8051 数字电子 数据通信永久链接地址:http://arttech.us/y-2011/introduction-to-i%c2%b2c-and-spi-protocols.html postmeta postmeta Tags: 8051, 数字电…

PCI总线及发展历程(详细)总结

目录 一、PCI总线简介二、总线的传输速度表:三、PCI-E简介四、其他相关链接1、PCIe物理层总结-PCIE专题知识(一)2、PCIe数据链路层图文总结-PCIe专题知识(二)3、PCIe物理层链路训练和初始化总结-PCIe专题知识&#xff…

PCIe总线协议概述

正所谓,时势造英雄、英雄造时势。是时,PCI总线在PC界已然一统江湖多年,应用已然广泛,PCI的总线已蔚然成风。然,科技日益发展,需求不断膨胀,经过计算机技术10年的发展,包括摩尔定律的…

PCIE总线协议

1、pcie硬件 pci是并行总线,在高速率下信号稳定性不能得到保证pcie是串行总线,差分信号传输,Tx,Tx1,Rx,Rx-为一条lanepcie总线是端对端的传输,之间为link 2、pcie总线的层次 pcie是串行总线,类似以太网总线&#xf…

PCI总线原理

PCI即 Peripheral Component Interconnect,中文意思是“ 外围器件互联”,是由PCISIG (PCI Special Interest Group)推出的一种局部并行总线标准。在现在电子设备中应用非常广泛,下面我详细介绍下PCI总线的工作原理,希望对大家有…

CPCI总线结构

一、CPCI简介Compact PCI(Compact Peripheral Component Interconnect)简称CPCI,中文又称“紧凑型PCI”,是国际工业计算机制造者联合会(PCI Industrial Computer Manufacturers Group,简称PICMG&#xff09…

完整的连接器设计手册_CPCI高速背板设计与仿真

引言 随着高性能计算机的发展,在许多领域对系统的带宽有着越来越高的要求。因此,为了实现高速数据传输,采用新的总线技术已经成为必然的发展趋势。2005年PICMG 提出了CPCI-E 协议,开辟了新型高速总线。CPCI-E 实质上是高速PCI-E 总线基于欧卡规格的实现,在解决高带宽问题的…

Pareto集

一个MOP,对于一组给定的最优解集,如果这个集合中的解是相互非支配的,也即两两不是支配关系,那么则称这个解集为Pareto Set 。 多目标问题:

Patrol

设计要求 游戏设计要求 创建一个地图和若干巡逻兵(使用动画)每个巡逻兵走一个3~5个边的凸多边型,位置数据是相对地址。即每次确定下一个目标位置,用自己当前位置为原点计算巡逻兵碰撞到障碍物,则会自动选下一个点为目…

Pareto(帕雷托)理论—凸优化、最优化理论学习

提示:文章写完后,目录可以自动生成,如何生成可参考右边的帮助文档 文章目录 前言一、Pareto(帕雷托)理论二、Pareto(帕雷托)解三、Pareto(帕雷托)改进四、Pareto Front五…

p-中位模型与pareto解集

p-中位模型(p-median model)是一种用于解决设施选址问题的数学模型。在设施选址问题中,需要选择若干个设施点来满足需求区域内的服务需求,使得服务覆盖范围内的总成本或距离最小。p-中位模型是其中一种常用的优化模型。 在p-中位…

Matlab论文插图绘制模板第46期—帕累托图(Pareto)

在之前的文章中,分享过Matlab双轴柱线图的绘制模板: 这一次,再来分享一种特殊的柱线图:帕累托图。 ‘帕累托图(Pareto chart)是将出现的质量问题和质量改进项目按照重要程度依次排列而采用的一种图表。以意…

帕累托最优(Pareto Optimality)

帕累托最优(Pareto Optimality),也称为帕累托效率(Pareto efficiency),是指资源分配的一种理想状态,假定固有的一群人和可分配的资源,从一种分配状态到另一种状态的变化中&#xff0…

Pareto(帕雷托)相关知识

原文地址:Pareto(帕雷托)相关知识 作者: XIAO_QingJun 1879年,经济学家意大利人维弗雷多帕雷托 (Villefredo Pareto) 提出:社会财富的80%是掌握在20%的人手中,而余下的80%的人只占有20%的财富。…

【python科研绘图】绘制帕累托图(Pareto)步骤解析,并封装后直接调用

python绘制帕累托图 1 帕累托图2 python实现2.1 数据准备2.2 特征因素数值排序2.3 计算累计频率百分比2.4 标记累计百分比80%特征因素的位置2.5 输出核心的特征因素信息2.6 绘制帕累托图 3 封装3.1 全部代码3.2 应用示例 手动反爬虫: 原博地址 https://blog.csdn.n…

多目标优化——帕累托最优Pareto

多目标优化——帕累托最优Pareto 0.前言 本文是本人在学习过程中为便于记忆利用博客进行总结,期待与各位大佬共同学习交流 什么是多目标优化 在了解帕累托最优之前,我们先来讨论一下,什么是多目标优化(Multiobjective Optimiz…

【多目标进化优化】Pareto 定义及基于 Pareto 的多目标进化算法的算法流程

声明 本文内容来源于 《多目标进化优化》 郑金华 邹娟著,非常感谢两位老师的知识分享,如有侵权,本人立即删除,同时在此表示,本文内容仅学习使用,禁止侵权,谢谢! 0 前言 多目标优化…

【数字孪生百科】可视化图表知识科普——Pareto图(Pareto Chart)

简介 Pareto图(Pareto Chart)又称帕累托图、排列图,是一种特殊类型的条形图。图中标绘的值是按照事件发生的频率排序而成,显示由于各种原因引起的缺陷数量或不一致的排列顺序。Pareto图是根据 Vilfredo Pareto 命名的,…

帕累托图 (Pareto Chart)

帕累托图用于识别最有可能考虑影响过程或结果的变量行为的因子类别。流程改进团队使用Pareto图表来确定其工作的优先级。 在帕累托图中,垂直条通常代表每个类别,条形图上方的累积折线图确定了最有可能成为研究重要目标的因素。 优点 使用和理解的简单…

多目标优化中的帕累托(Pareto)相关概念

本文整理自: 多目标优化之帕累托最优 - 知乎、多目标优化---帕累托(Pareto)_纯粹的博客-CSDN博客、百度百科 1、多目标优化 在现实生活中有很多的问题都是由互相冲突和影响的多个目标组成,这些目标不可能同时达到最优的状态&am…