PMBus(Power Management Bus),中文名电源管理总线,是一种开放标准电源管理协定,它是定义电源子系统管理的双线接口。该总线是SMBus协议的扩展,因此PMBus和SMBus有很多相似之处。
这种弹性且高度通用的标准允许基于类比和数位技术的元件之间进行通讯,并提供真正的互通性,由此将能降低电源系统设计的复杂性并缩短产品上市时间。在本文中,小编将简单介绍PMBus工作原理、使用位置以及寻址方法。
PMBus规范于2005年发布,旨在帮助重新定义嵌入式系统中的电源管理。在使用PMBus之前,许多电源和半导体公司都感到缺乏与其电源系统进行有效通信能力。因此,各种电源和半导体公司合作创建了PMBus标准,该标准允许系统开发人员针对特定任务配置电源并监控电源系统的状态/整体健康状况。
目前,有超过50家公司负责监督PMBus规范的开发,他们组成了PMBus-IF,即电源管理总线接口论坛。PMBus-IF也是系统管理接口论坛 (SMIF) 下的一个子组。
由于需要用于电力通信的行业标准协议,PMBus开发人员确定SMBus 协议将最有效且最具成本效益的协议作为PMBus标准的基础。SMBus它建立在I2C总线协议之上,是作为管理智能电池和其他系统和电源管理设备的一种方式而创建的。SMBus与I2C一样成本低,但其功能和特性更强大。
由于PMBus是SMBus协议的扩展,它共享其物理层的大部分内容以及总线的运行方式。但是,PMBus定义了电源控制和管理组件所需的一组特定命令和数据结构。
想要知道PMBus通信协议的工作原理,可以通过以下四个部分来进行了解。
1、物理层/传输
PMBus是一种低成本的双线接口,是SMBus标准的扩展,它是根据I2C协议构建的。与SMBus类似,PMBus至少需要两条线进行通信,包括时钟信号SMBCLK和数据信号SMBDAT。可交换两个GPIO引脚的可选信号包括CONTROL和SMBALERT#信号。CONTROL信号充当硬连线开/关信号,SMBALERT#用于通知和引起主机或系统主机的注意;该警报信号通常在出现故障情况时使用。写保护 (WP) 信号是一个额外的可选信号,用于防止不需要的数据更改。
与I2C相比,PMBus支持更稳健的协议,因为PMBus提供超时和可选的数据包错误检查 (PEC) 以增强数据完整性。超时防止较慢的从设备保持时钟线的时间超过指定的超时间隔,从而避免总线挂起。PEC字节是使用CRC-8算法生成的,该算法用于验证事务的完整性,这在电源管理系统中通常很关键。
PMBus支持最高400kHz的总线速度,并且由于内置超时,所有PMBus设备都支持最低10 kHz的总线速度。
与SMBus一样,PMBus包括用于通信的系统主机/总线主设备和从设备(PMBus设备)。主机是启动传输和驱动时钟的任何设备。总线上可以有多个主机,但在给定时间只有一个设备可以控制总线。主设备可以是PC或微控制器,从设备可以包括集成电路、电源转换器或电源。
在某些情况下,当从设备确定故障时,PMBus设备可能会暂时成为主设备并使用SMBus主机通知协议与主机通信。主机通过使用唯一的7位地址一次将通信定向到单个从机,类似于I2C和SMBus中的从机寻址方案。在允许保留地址后,这提供了100个可能的设备地址。
2、数据格式
与I2C类似,PMBus是一个8位数据字节的可变长度数据包。PMBus的基本数据包结构包括一个由7位地址组成的地址字节,以1位读取或写入信号结尾。然后是一个8位命令字节,包括命令代码,接着是一个或多个8位数据字节。可选地,也可能有一个8位PEC字节。每个字节都包含它们自己的接收器确认,并且每个事务都包含在来自主机的起始位和停止位之间。
3、电气接口
PMBus电气接口遵循与SMBus规范类似的规范。对于电源电压要求,工作电压范围 (VDD)可以是3V至5V ±10%(2.7V至5.5V)。
对于400 kHz PMBus器件,所需的下拉电流为4mA。
PMBus定义了一组专门针对电源控制和管理组件的命令,以确保系统正常运行。这些命令允许系统执行配置、控制、状态监控、故障管理和信息存储(库存、用户数据)。
PMBus设备必须支持组命令协议,该协议旨在允许多个PMBus兼容设备同时执行命令。使用此协议,设备可以接收相同或不同的命令,但在一个组命令数据包中只能向任何设备发送一个命令。
PMBus命令是单字节命令代码,允许通过总线发送和读取256个命令。每个命令包都包含一个地址字节,后跟一个命令字节,然后是零个或多个数据字节。此外,还可以有一个额外的PEC字节。
此外,为了支持PMBus命令语言的某些命令,设备必须支持Block Write-Block Read Process Call。与SMBus的32字节限制相比,PMBus支持长度最多为255字节的块写入和读取。
PMBus规范是一个完整的电源管理协议,它说明了如何将bits和bytes从一个元件传送到另一个元件(即传输)。它还描述了一种命令语言,赋予这些bits和bytes以意义。其寻址方式可以通过以下几个过程完成。
1、定址
对于冗余系统,一旦电源安装到系统中,最多有三个讯号来设定电源的位址位置:地址2、地址1和地址0。对于非冗余系统,电源元件位址位置应为B0h。
2、硬件
针对基于I2C VDD的电源和驱动(对于VDD=3.3V),电源中的元件应与SMBus 2.0高功率规范相容。
3、电源
电源内部的电路应从备用输出获得电源。对于冗余电源,元件应从「逻辑或」元件的系统侧供电。只要系统中的电源或并联冗余电源接通交流电源,PMBus元件就应处于开启状态。
4、上拉电阻
电源内部的SCL或SDA线上只能使用弱上拉电阻。主要上拉电阻由系统提供,可以连接到3.3V或5 V。对于系统设计,主要上拉电阻应位于电源外部,并从备用电源轨获取电源。
5、数据速度
电源中的PMBus元件应以100 kbps SMBus全速运行,并尽可能避免使用时脉延展,因为它会减慢总线速度。
如上所述,PMBus是SMBus协议的变体,用于具有电源控制和管理元件的电源的数位管理。它具有支援电源管理要求的命令和结构。这表示I2C和PMBus在电气要求和命令语义上是相容和可交互操作的。
众所周知,电源管理的基本参数之一是过压位准监控,PMBus提供了设定和读取该值的命令。PMBus可以附加在I2C和SMBus的已有特性上,充当现有标准(尤其是SMBus)之上的协定层。
I2C规范仅描述了2线汇流排的实体层、时序和流控制。I2C规范没有(像SMBus协定那样)描述消息的格式,也没有描述消息的内容。
PMBus规范是一个完整的电源管理协议,它说明了如何将bits和bytes从一个元件传送到另一个元件(即传输)。它还描述了一种命令语言,赋予这些bits和bytes以意义。
那么,都作为应用比较广泛的串行接口通信协议,I2C、SMBus、PMBus三者之间又什么区别差异?这里可以通过下面一张图进行对比了解:
PMBus是一种开放的电源管理总线,它是基于I2C总线协议的扩展,专门用于电源管理。它可以帮助节能、减少外部元件、降低成本、提高可靠性和易用性。PMBus使得可以通过一条总线对多个电源进行集中监测和控制,并支持各种命令(如读写寄存器、重新启动、调整VOUT/IOUT等)。
如今,PMBus越来越多地用于系统内的数字电源管理,它可与各种电源管理产品配合使用,例如AC-DC电源、隔离式DC-DC断路转换器、非隔离式负载点 (POL) 转换器、电源定序器和负载点电压编程器,以及监视器和风扇控制器。