I2C总线与SMBus进行比较

Comparing the I2C Bus to the SMBus
    The I2C bus and the SMBus are popular 2-wire buses that are essentially compatible with eachother. Normally devices, both masters and slaves, are freely interchangeable between bothbuses. Both buses feature addressable slaves (although specific address allocations can vary between the two). The buses operate at the same speed, up to 100kHz, but the I2C bus hasboth 400kHz and 2MHz versions. Complete compatibility between both buses is ensured onlybelow 100kHz. Here are explored the significant differences between I2C and SMB.
1 Timeout and Clock Speed differences
    Timeout and (as a consequence of timeout) minimum clock speed are the most important
differences between the I2C bus and the SMBus.
I2C Bus = DC (no timeout)
SMBus = 10kHz (35mS timeout)
    Timeout is where a slave device resets its interface whenever SCL goes low for longer than the timeout, typically 35mSec. Use of a timeout also dictates a minimum speed for the clock, because it can never go static. Thus, the SMBus has a minimum-clock-speed specification. By comparison, the I2C bus can go static indefinitely. In the I2C bus, either a master or a slave can hold the clock low as long as necessary to process data. In the I2C bus, if the slave locks up and holds either SCL or SDA low, error recovery is impossible. Very few slave devices actually have the ability to hold SCL. As a result, the most common bus error is slave devices that have ended up in a state where SDA is low. In the I2C bus, a master accomplishes error recovery by clocking SCL until SDA is high and then issuing a Start followed by a Stop.
    In contrast to the I2C bus, SMBus slaves are expected to reset their interface whenever SCL is low for longer than the timeout specified in the SMBus specification of 35mS.
    SMBus specifies t LOW: SEXT  as the cumulative clock low extend time for a slave device. I2C does not have a similar specification. SMBus specifies t LOW: MEXT  as the cumulative clock low extend time for a master device. Again I2C does not have a similar specification.
    DC specifications differences Both I2C and SMBus are capable of operating with mixed devices that have either fixed input levels (such as Smart Batteries) or input levels related to VDD. When mixing devices, the I2C specification defines the VDD to be 5.0 Volt +/- 10% and the fixed input levels to be 1.5 and 3.0 Volts. Instead of relating the bus input levels to VDD, SMBus defines them to be fixed at 0.8 and 2.1 Volts. This SMBus specification allows for bus implementations with VDD ranging from 3 to 5 Volts +/- 10%.
I2C specifies the maximum leakage current to be 10 µA while SMBus version 1.0 specified
maximum leakage current of 1 uA. Version 1.1 of the SMBus specification relaxes the leakage requirements to 5 µA, in order to reduce the cost of testing of SMBus devices.
While I 2 C defines maximum bus capacitance 400pF SMBus does not specify a maximum bus
capacitance. Instead it specifies the I PULLUP maximum of 350µA in Low-power DC specification and minimum 4mA in High-power DC specification. Bus capacitance can be calculated taking into consideration the maximum rise time and I PULLUP .
In the table below are given a summery of level specifications for the I2C Bus and the SMBus.

3 Other differences
    ACK and NACK usage:
    The differences in the use of the NACK bus signaling follow:
In I2C, a slave receiver is allowed not to acknowledge the slave address, if for example is unable to receive because it’s performing some real time task. SMBus requires devices to acknowledge their own address always, as a mechanism to detect a removable device’s
presence on the bus (battery, docking station, etc.).
I2C specifies that a slave device, although it may acknowledge its own address, some time later in the transfer it may decide that it cannot receive any more data bytes. The I2C specifies, that the device may indicate this by generating the not acknowledge on the first byte to follow.
    Besides to indicate a slave device busy condition, SMBus is using the NACK mechanism also to indicate the reception of an invalid command or data. Since such a condition may occur on the last byte of the transfer, it is required that SMBus devices have the ability to generate the not acknowledge after the transfer of each byte and before the completion of the transaction. This is important because SMBus does not provide any other resend signaling.

More information about the differences between I 2 C and SMBus can be found on:
http://www.maxim-ic.com/appnotes_frame.cfm/appnote_number/476
http://www.smbus.org/specs/


I2C总线与SMBus进行比较
I2C总线和SMBus是流行的2线总线,它们基本上彼此兼容其他。通常,设备(主机和从机)均可在两者之间自由互换公共汽车。两种总线均具有可寻址的从站(尽管特定的地址分配可能有所不同)两者之间)。总线以最高100kHz的相同速度运行,但I2C总线具有400kHz和2MHz版本。仅确保两个总线之间完全兼容低于100kHz。这里探讨了I2C和SMB之间的显着差异。
1、超时和时钟速度差异
超时和(作为超时的结果)最小时钟速度是最重要的I2C总线和SMBus之间的差异。
I2C总线= DC(无超时)
SMBus = 10kHz(35mS超时)
超时是指从设备在SCL变为低电平的时间长于复位时间时重置其接口的时间。
超时,通常为35毫秒。使用超时还规定了时钟的最低速度,因为它永远不会静止。因此,SMBus具有最低时钟速度规范。通过相比较而言,I2C总线可以无限期地变为静态。在I2C总线中,主机或从机都可以只要需要处理数据,就将时钟保持低电平。在I2C总线中,如果从站锁定并且将SCL或SDA保持在低电平,则无法恢复错误。实际上很少有从设备有能力持有SCL。结果,最常见的总线错误是从设备具有最终处于SDA低的状态。在I2C总线中,主机通过以下方式完成错误恢复:
为SCL计时,直到SDA为高,然后发出启动信号,然后发出停止信号。
与I2C总线相反,每当SCL被激活时,SMBus从设备都将重置其接口的低电平时间超过SMBus规范中指定的35ms超时时间。
SMBus指定tLOW:SEXT作为从设备的累计时钟低扩展时间。 I2C确实没有类似的规格。 SMBus指定tLOW:MEXT作为累积时钟低位扩展主设备的时间。同样,I2C没有类似的规范。
2、直流规格差异
I2C和SMBus均可与具有固定输入的混合设备一起运行电平(例如智能电池)或与VDD相关的输入电平。混合设备时,I2C规范定义VDD为5.0伏+/- 10%,固定输入电平为1.5和3.0伏特SMBus并未将总线输入电平与VDD相关联,而是将其固定为0.8,并且2.1伏该SMBus规范允许VDD为3至5伏+/- 10%。
I2C指定最大泄漏电流为10 µA,而SMBus版本1.0最大泄漏电流为1 uA。 SMBus规范的1.1版缓解了泄漏要求降至5 µA,以降低SMBus器件的测试成本。
虽然I2C定义了最大总线电容400pF,但SMBus没有指定最大总线电容。取而代之的是,它在低功耗直流规格中指定了350µA的IPULLUP最大值在大功率直流规格中最小为4mA。汇流排电容可取考虑最大上升时间和PULLUP。
下表列出了I2C总线和SMBus的电平规范。

3、其他差异
ACK和NACK用法:
NACK总线信令的使用差异如下:
在I2C中,允许从接收器不确认从地址,例如:由于正在执行某些实时任务而无法接收。 SMBus要求设备
始终确认自己的地址,以此作为检测可移动设备的地址的机制出现在公共汽车上(电池,扩展坞等)。I2C指定从设备,尽管它可能会在一段时间后确认自己的地址在传输中,它可能决定无法再接收任何数据字节。 I2C规定设备可以通过在随后的第一个字节上生成不确认来表明这一点。除了指示从设备繁忙状态外,SMBus还使用NACK机制来表示接收到无效的命令或数据。由于这种情况可能会发生在传输的最后一个字节,要求SMBus设备能够生成非在每个字节传输之后和事务完成之前确认。这是重要,因为SMBus不提供任何其他重发信令。

有关I2C和SMBus之间差异的更多信息,请参见:
http://www.maxim-ic.com/appnotes_frame.cfm/appnote_number/476
http://www.smbus.org/specs/

 

你可能感兴趣的:(I2C总线与SMBus进行比较)