原创 I2C与SMBus之间的技术差异

2019-2-27 15:47 543 1 1 分类: MCU/ 嵌入式
关于I2C与SMBus,许多人很少去谈论与了解两者的细节差异,包括很多国外的简报,文章也经常将两者混写、交杂描述、交替运用。
确实,在一般运用下,I2C Bus与SMBus没有太大的差别,从实际接线上看也几乎无差异,甚至两者直接相连多半也能相安无误地正确互通并运作。不过若真要仔细探究,其实还是有诸多不同,如果电子设计工程师不能明辨两者的真实差异,那么在日后的开发设计的验证纠错阶段必然会产生困扰,为此本文将从各层面来说明I2CBus与SMBus的细微区别,期望能为各位带来些许帮助。
运用背景、版本演进之别
首先从规格的制订背景开始,I2C是在设计电视应用时所研发的界面,首版于1992 年发表;而SMBus(System Management Bus)则是Intel与Duracell(金顶电池)共同制订笔记本电脑所用的智能型电池(Smart Battery)时所研发的接口,首版于1995 年发表,不过SMBus文件中也提及,SMBus确实是参考自I2C,并以I2C为基础所衍生成。
I2C起源于电视设计,但之后朝通用路线发展,各种电子设计都有机会用到I2C;而SMBus则在之后为PC所制订的先进组态与电源管理接口(AdvancedConfiguration & Power Interface;ACPI)规范中成为基础的管理讯息传递接口、控制传递接口。
虽然I2C与SMBus先后制订时间不同,但都在2000年左右进入成熟化改版,I2C的过程改版以加速为主要诉求,而SMBus以更切合Smart Battery及ACPI的需求为多。
I2C三次主要改版:
1992 年v1.0
1998 年v2.0
2000 年v2.1
SMBus三次主要改版:
1995 年v1.0
1998 年v1.1
2000 年v2.0

电气特性差异:逻辑电平定义、限流、相关限制
I2C的Hi/Lo逻辑电平有两种认定法:相对认定与绝对认定,相对认定是依据Vdd的电压来决定,Hi为0.7Vdd,Lo为0.3Vdd,绝对认定则与TTL 准位认定相同,直接指定Hi/Li电压,Hi为3.0V,Lo为1.5V。相对的SMBus只有绝对认定,且电平与I2C有异,Hi为2.1V,Lo为0.8V,与I2C不全然吻合但也算部分交集。
不过,SMBus后来也增订一套更低电压的电平认定,Hi为1.4V,Lo为0.6V,这是为了让运用SMBus的装置能更省成本的作法。
了解电压后再来是电流,由于SMBus一开始就是运用在笔记本电脑内,所以省电的表现优于I2C,只需100uA就能维持工作,I2C却要到3mA同样的低用电特性也反应在漏电流(Leakage Current)的要求上,I2C最大的漏电流为10uA,SMBus为1uA,但是1uA似乎过度严苛,使运用SMBus的装置在验证测试时耗费过多的成本与心力,因此之后的SMBus 1.1版放宽了漏电流上限,最高可至5uA。
再者是相关限制,I2C有线路电容的限制,SMBus却没有,但也有相类似的配套规范,即是电平下拉时的电流限制,当SMBus的集电极开路Pin导通而使线路接地时,流经接地的电流不能高于350uA,另上电流(即相同的集电极开路Pin开路时)也一样有规范,最小不低于100uA,最高也是不破350uA的。
既然对电流有限制,那么也可容易地推断对上拉电阻的阻值之范围要求,I2C 在5V Vdd时当大于1.6kohm,在3V Vdd时当大于1kohm,类似的SMBus于5V Vdd时当大于14kohm,3V Vdd时当大于8.5kohm,不过这个定义并非牢不可破,就一般实务而言,在SMBus上也可用2.4k〜3.9kohm范畴的阻值。
附注:I2C的时钟线称SCK或SCL,数据线称SDA。SMBus的时钟线称SMBCLK,数据线称SMBDAT。

I2C与SMBus 在逻辑位准的电压定义不尽相同,基本上I2C的定义较为宽裕、弹性,而SMBus 则更专注在省电方面的要求。
时序差别与考验
物理层面的空间要求完后,再来就是物理层面的时间,即是时序(Timing)方面的差别。
先以运作频率来说,I2C此方面相当宽裕,最低频可至0Hz(直流状态,等于时间暂停),高可至100kHz(Standard Mode)、400kHz(Fast Mode)、乃至3.4MHz(High Speed Mode),相对的SMBus就很局限,最慢不慢于10kHz,最快不快于100kHz。很明显的,I2C与SMBus的交集运作频率即是10kHz〜100kHz间。
用于笔记本电脑的电池管理或PC组态管理、用电管理的SMBus,很容易体会不需要更高运作频率的理由,只要传递小数据量的监督信息、控制指令本就不用过于高速,而朝向广泛运用的I2C自然希望用更高的传输以应对各种可能的需求。然而大家可能会疑惑,为何SMBus有最低速的要求?何不放宽到与I2C相同的无最低速限制呢?

文章评论0条评论)

登录后参与讨论
相关推荐阅读
大帝七七 2019-03-05 16:11
为 SAR ADC 的新性能标准做好准备了吗?
凌力尔特已用了数年时间对通常被称为逐次逼近寄存器ADC (SAR ADC) 的非常通用之模数转换器(ADC) 展开了创新。SARADC 面市已有多年,并被宽泛地接受为最简单易用的ADC 类型。许多人仅...
大帝七七 2019-03-05 16:05
ADI参考电路设计 1-4册+仪器仪表选集
ADI参考电路设计 1-4册,外加一本仪器仪表选集,均为中文。《参考电路合集 -  1-4册》书中的电路为许多通用应用提供解决方案。每款电路包含详细的设计文档,常见电路变化以及更多...
大帝七七 2019-02-27 15:59
胡润百富榜机器人共8席
机器人虽然属于新兴行业,近几年上榜人数不多,但一直呈上升趋势,今年新上榜两家机器人企业大佬,分别是“扫地机器人”起家的科沃斯钱奇东家族和“巡检机器人”大拿亿嘉和董事长朱付云;而大疆造就了3位身价超过2...
大帝七七 2019-02-27 15:50
PID控制原理
小明接到这样一个任务:有一个水缸漏水,且漏水的速度是不定的,但要求水面高度维持在某个位置,一旦发现水面高度低于要求位置,就要往水缸里加水。    开始小明用瓢加...
大帝七七 2019-02-27 14:51
Arduino,做到最优才叫编程
转自北邮电路课程公众号,模电数电标准的Arduino UNO板子上的13引脚接有一个LED,IDE中的Blink例程就是控制这个LED以一秒的间隔闪烁,下面给出的就是Blink程序代码。/* ...
广告
我要评论
0
1
广告
关闭 热点推荐上一条 /6 下一条