一、SMBUS
SMBus 全称 System Management Bus,即系统管理总线。一种基于I2C而扩展出来的协议,是 I2C 协议的一个子集。但SMBus 要求更严格,规定了更多细节与规范。有一些更为复杂的操作,但是原理都还是基于I2C。
SMBus 为系统和电源管理这样的任务提供了一条控制总线,使用 SMBus 的系统,设备之间发送和接收消息都是通过 SMBus,而不是使用单独的控制线,这样可以节省设备的管脚数。
SMBus可用于需要对参数进行关键监控的应用。包括系统传感器,EEPROM 通讯设备等等,它最常见的应用是计算机主板和嵌入式系统。对于温度、电源电压、风扇监控和或控制集成芯片,它有额外的监控规范。
SMBus器件每次收到其自己的地址时,无论在做什么,它都必须应答(ACK),这是一个明确要求,目的是确保主器件可以准确地判断总线上哪些器件处于活动状态。所有SMBus事务都通过指定的SMBus协议之一执行。
SMBus还有一个可选信号SMBALERT#,节点器件可以使用该信号块速通知主器件或系统主机,它有主器件需要的信息,例如报告故障情况。
SMBus 拓扑结构
SMBus 拓扑结构
SMBus是一种2线总线。两个主要信号是时钟(SMBCLK)和数据(SMBDAT)。I2C Primer和SMBus相互兼容,但存在明显差异。
I2C规范仅描述了2线总线的物理层、时序和流控制。I2C规范没有(像SMBus协议那样)描述消息的格式,也没有描述消息的内容。
I2C、SMBUS的区别
SMBUS总线与I2C总线存在很大不同,具体体现在以下几个方面:
-
SMBUS逻辑电平阈值是固定的,和器件电源电压无关。所以,不同电源电压系统(1.8V、3.3V、5V),可以同时运行在SMBUS总线上。I2C 协议的范围很广,甚至讨论了高达 12V 的情况,而SMBus规定了在1.8V~5V。
-
时钟的最高频率为100kHz,但I2C总线最高时钟频率可为100kHz和2MHz两个版本。I2C 没有时钟频率限制,一般最常见的是100k、400k,而SMBus规定时钟频率必须在10k~100k内。
-
SMBus规定了最低时钟速度速率为10kHz(与其超时时间有关)。并限制了时钟在一个事务中可以延展的量。违反超时限制会导致所有SMBus器件复位其I⁄O逻辑以允许总线重启。这种设计增强了总线的鲁棒性。
-
二者的超时也不同。I2C Primer没有超时,而SMBus有超时——对于10 kHz最低时钟速度,可以考虑35 ms的超时。
-
总线超时功能,当时钟信号保持低电平超过35ms时,将引发从设备的超时复位;I2C总线只能通过硬件进行复位。当设备需要处理内部事情时,可将时钟线拉低,I2C 没有规定拉低时长,而SMBus有规定时限。
-
地址应答规定不同。一个 设备接收到它的设备地址后,I2C 协议没有强制要求必须发出回应信号,而SMBus:强制要求必须发出回应信号。
-
提供分组差错检验(PEC)功能。分组差错校验(PEC)最初是为SMBus定义的。在每个事务的末尾添加一个分组错误码字节。
-
较强的实时性,从设备每次接收到自己地址时,无论在做什么,都会有限回复应答信号(ACK),其主要的目的是为了让主设备知道各个从设备当前的状态。
-
数据格式规定不同。I2C 没有定义数据的格式,格式由设备来定义,而SMBus 协议明确了数据的传输格式。
-
SMBus 有低功耗的版本
-
SMBUS还有一个可选信号SMBALERT#,从设备可以通过该信号快速通知主设备一些重要的信息,例如故障等。
-
其余的一些差异涉及传输类型、警报线、暂停线、关断或上电。
附注:I2C的时钟线称SCK或SCL,数据线称SDA。SMBus的时钟线称SMBCLK,数据线称SMBDAT。
二、PMBUS
PMBus全称Power Management Bus,即电源管理总线,是系统管理总线 (SMBus) 的变体,是基于SMBUS,是一种开放标准电源管理协议,具有支持电源管理要求的命令和结构,旨在实现电源的数字管理。这意味着I2C Primer和PMBus在电气要求和命令语义上是兼容和可互操作的。
PMBus在物理传输上,和SMBUS是完全一致的。由于 PMBus 是 SMBus 协议的扩展,因此它共享其大部分物理层以及总线的运行方式,除了电源控制和管理组件所需的一组特定命令和数据结构。
PMBus同时与SMBus、I2C标准中的任何一个不同,它定义了大量特定于域的命令,而不仅仅是说如何使用读者定义的命令进行通信。
PMBus基本参数之一是过压电平监控,PMBus提供了设置和读取该值的命令。PMBus可以附加在I2C Primer和SMBus的已有特性 上,充当现有标准(尤其是SMBus)之上的协议层。
PMBus规范是一个完整的电源管理协议。它说明了如何将比特和 字节从一个器件传送到另一个器件(即传输)。它还描述了一 种命令语言,赋予这些比特和字节以意义。
物理层/传输
PMBus 是一种低成本的双线接口,包括时钟信号 SMBCLK 和数据信SMBDAT。可选信号将换成两个 GPIO 引脚,包括 CONTROL 和 SMBALERT# 信号。
与 I2C 相比,PMBus 支持更强大的协议,因为 PMBus 提供超时和可选的数据包错误检查 (PEC) 以增强数据完整性。超时可防止较慢的从器件将时钟线保持超过指定的超时间隔,从而避免总线挂断。PEC字节是使用CRC-8算法生成的,该算法用于验证事务的完整性,这在电源管理系统中通常至关重要。与 SMBus 一样,PMBus 包括用于通信的系统主机/总线主站和从设备(PMBus 设备)。
数据格式
与 I2C 类似,PMBus 是一个由 8 位数据字节组成的可变长度数据包。PMBus 的基本数据包结构包括一个地址字节,该地址字节由一个 7 位地址组成,以 1 位读取或写入信号结尾。然后是一个 8 位命令字节(包括命令代码),然后是一个或多个 8 位数据字节。(可选)也可能有一个 8 位 PEC 字节。每个字节都包含自己的接收方确认,并且每个事务都包含在主机的"启动"位和"停止"位之间。
电气性能
PMBus 电气接口遵循与 SMBus 规范类似的规范。对于电源电压要求,工作电压范围(V断续器)电压可能为3 V至5 V±10%(2.7 V至5.5 V)。对于 400 kHz PMBus 设备,所需的下拉电流为 4 mA。
上拉电阻
电源内部的SCL或SDA线上只能使用弱上拉电阻。主要上拉电阻由系统提供,可以连接到3.3 V或5 V。对于系统设计,主要上拉电阻应位于电源外部,并从备用电源轨获取电源。
数据速度
电源中的PMBus器件应以100 kbps SMBus全速运行,并尽可能避免使用时钟延展,因为它会减慢总线速度。
应用方向
PMBus 已越来越多地用于系统内的数字电源管理。PMBus 可与各种电源管理产品配合使用,例如 AC-DC 电源、隔离式 DC-DC 断开转换器、非隔离式负载点 (POL) 转换器、电源定序器和负载点电压编程器,以及监视器和风扇控制器。
专属优势
PMBUS优点
-
易于设计。
-
缩短了设计时间。
-
能够监测电源,并筛选出设计不太好的电路板。
-
使用全新的特定用途集成电路 (ASIC) 时,能够优化功率级(测量实际汲取的电流值,并且不必过度设计输出电感器和输出电容器)。
-
PMBus可以在不需要外部模拟组件的情况下,轻松创建全新电源设计,这样的话,您就不必在工作台上尝试新的电阻器和电容器时忍受烟熏火燎的痛苦了。
-
通过一个图形化用户界面 (GUI),PMBus能够实现编程、排序、配置、控制、电压裕量调节、输出电压调节、以及参数和故障监视,这样可快速实现重新设计,并更加智能地对参数和观察到的故障做出响应。
-
PMBus IC可以免除对外部硬件监视器、监控器、温度传感器,以及针对延迟的分立逻辑电路的需要。
三、PMBUS、SMBUS的区别
四、I2C、SMBus、PMBus有何关系?
SMBus最初开发用于协助电池管理系统,使用I2C硬件,但增加了第二级软件,最终允许器件热插拔,而无需重新启动系统。PMBus扩展了SMBus,定义了一组专门用于管理功率转换器的器件命令,暴露了器件的测量电压、电流、温度等属性。一般而言,I2C Primer、SMBus和PMBus器件可以共享总线而不会发生什么大问题。
五、I2C、SMB、PMB的共同点
优势
1、仅使用两条线
2、具有ACK/NACK位
3、广为人知的协议
4、支持多个主器件和多个节点
5、硬件比UART简单
6、广泛使用的方法
缺点
1、数据传输速率比SPI慢
2、数据帧的大小限制为8位
3、实现所需的硬件比SPI复杂
六、I2C、SMBus、PMBus规格总结
具体三者总线的地址和时序等详解见地址:
https://download.csdn.net/download/weixin_45365488/88844815