参考:
1. https://blog.csdn.net/sprewel3260334/article/details/50447614
2. https://baike.911cha.com/ci/SMBus
The I²C bus and the SMBus are popular 2-wire buses that areessentially compatible( 兼容的;能共处的;可并立的) with each other.
Below,significantdifferences between the two buses.
|
I²C |
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与I2C总线之间在时序特性上存在一些差别。首先,SMBus需要一定数据保持时间,而 I2C总线则 是从内部延长数据保持时间。SMBus具有超时功能,因此当SCL太低而超过35 ms时,从器件将复位正在进行的通信。相反,I2C采用硬件复位。SMBus具有一种警报响应地址(ARA),因此当从器件产生一个中断时,它不会马上清 除中断,而是一直保持到其收到一个由主器件发送的含有其地址的ARA为止。SMBus只工作在从10kHz到最高100kHz。最低工作频率10kHz是由SMBus超时功能决定的
SMBus
SMBus 是 System Management Bus 的缩写,是1995年由Intel提出的,应用于移动PC和桌面PC系统中的低速率通讯。它主要是希望通过一条廉价并且功能强大的总线(由两条线组成),来控制主板上的设备并收集相应的信息。
SMBus 为系统和电源管理这样的任务提供了一条控制总线,使用 SMBus 的系统,设备之间发送和接收消息都是通过 SMBus,而不是使用单独的控制线,这样可以节省设备的管脚数。
使用 SMBus,设备还可以提供它的生产信息,告诉系统它的型号,部件号等,针对挂起事件保存它的状态,报告不同类别的错误,接收控制参数,并返回它的状态等。
SMBus器件存在现有7层OSI网络模型中的前3层,即物理层,数据链路层和网络层。
SMBus最初的目的是为智能电池,充电电池和与其他系统通信的微控制器之间的通信链路而定义的。SMBus也被用来连接各种设备,包括电源相关设备,系统传感器,EEPROM通讯设备等等。
SMBus 最适用于笔记本电脑上,检测各元件状态并更新硬件设置引脚 (pull-high 或 pull-low)。例如,将不存在的 DIMM 时钟关闭,或检测电池低电压状态。 SMBus 的数据传输率只有 100Kbit/s;这允许单一主机与 CPU 和多个主从硬盘通讯并收发数据。SMBus 也可用于免跳线设计的主板上。