The I²C bus and the SMBus are popular 2-wire buses that areessentially compatible with each other.
-- | i2c | SMBus |
---|---|---|
Timeout | No | Yes |
Minimum Clock Speed | DC | 10KHz |
Maximum Clock Speed | 100kHz (400kHz and 2MHz also available) | 100kHz |
VHIGH | 0.7 × VDD, 3.0V Fixed | 2.1V |
VLOW | 0.3 × VDD, 1.5V Fixed | 0.8V |
Max I | 3mA | 350µA |
Clock Nomenclature | SCL | SMBCLK |
Data Nomenclature | SDA | SMBDAT |
General Call | Yes | Yes |
Alert# | No | Yes |
详细参考: SMBus与I2C的区别
SMbus 最早是由 Intel 公司提出来的. 现在由 SBS 管理维护这一个规格. 此规格是用 Philips 的 I2C 简化而来. SMbus 是由两条讯号所组成的一种汇流排. 是为了在系统上较慢速的装置及电源管理装置之间的沟通使用. 使系统可取得这些装置的制造厂商,型号,一些控制资讯,错误讯息及状态.
先以运作频率来说,I2C此方面相当宽裕,最低频可至0Hz(直流状态,等於时间暂停),高可至100kHz(Standard Mode)、400kHz(Fast Mode)、乃至3.4MHz(High Speed Mode),相对的SMBus就很拘限,最慢不慢於10kHz,最快不快於100kHz。很明显的,I2C与SMBus的交集运作频率即是10kHz~100kHz间。
传速要求之后还有数据停留时间(Data Hold Time)的要求,SMBus规定SMBCLK线路的准位下降后,SMBDAT上的资料必须持续保留300nS,但I2C却没有对此有相同的强制要求。类似的,SMBus对介面被重置(Reset)后的恢复时间(Timeout)也有要求,一般而言是35mS,I2C这方面亦无约束,可以任意延长时间。相同的SMBus也要求无论是在主控端(Master)或受控端(Slave),其时脉处於Lo准位时的最长持续时间不得超越限制,以免因为长时间处在Lo准位,而致收发两端时序脱轨(失去同步,造成后续误动作)。
既然对电流有限制,那麼也可容易地推断对提升电阻的阻值之范围要求,I2C在5V Vdd时当大於1.6k ohm,在3V Vdd时当大於1k ohm,类似的SMBus於5V Vdd时当大於14k ohm,3V Vdd时当大於8.5k ohm,不过这个定义并非牢不可破,就一般实务而言,在SMBus上也可用2.4k~3.9k ohm范畴的阻值。
再者是相关限制,I2C有线路电容的限制,SMBus却没有,但也有相类似的配套规范,即是准位下拉时的电流限制,当SMBus的开集极接脚导通其闸极而使线路接地时,流经接地的电流不得高於350uA,另外拉升电流(即相同的开集极接脚开路时)也一样有规范,最小不低於100uA,最高也是不破350uA。
由于看不是很懂,所以直接看链接上的内容吧。