PMBus:电源系统的国际语言

发布时间:2010-9-3 13:56    发布者:techshare
关键词: PMBus , 电源系统 , 国际 , 语言
高效的信息交流需要适当的语言,这既适用于人与人之间的交流,也适用于系统电源管理资源之间的通信。电子系统通信经历了缓慢而持续的发展过程,USB 就是其中的一个例子。在 USB 之前,系统外设通过各种接口方法进行互连。速度较慢的设备通常采用可提供 RS-232 的简单 UART 连接,而较快设备的连接则采用并行端口。这些连接既能够像“平行接口” (Centronics Interface) 一样简单,也可能像连接海量存储设备的 SCSI 那样复杂。USB 已经发展成为一种高效的通信方法,非常适用于诸如计算机鼠标这样较慢速的设备,以及硬盘存储与 FLASH 驱动器等快速设备。另外,还为人机接口外设 (HID) 开发了标准驱动器,而且这种驱动器的应用原理已被扩展至实时物理设备 (PID)。这种物理层与数据交换的组合已经为计算机与外设提供了一种“通用语言”。

随着电源系统的集成度变得越来越高,并且受其所供电系统的管理,这就要求在它们之间提供一种高效的通信方式。这种通信应该像 USB 那样具有广泛的适用范围,并能提供一种适用于各种可用终端设备的标准。电源通信的发展已十分成熟,这为制定新的标准解决方案增加了难度。许多 OEM 厂商采用专用的电源系统通信已长达 10 年以上,这一遗留问题使推出适用标准的时间遥遥无期。

在 1995 年,当智能电池系统 (SBS) 标准被提出的时候,情况也是如出一辙。大部分便携式计算机都纷纷开发了用于管理电池的专有通信系统。这些系统的复杂程度从简单的监控到高级的电池与充电器控制不尽相同。智能电池数据 (SBD) 规范、系统管理总线以及智能电池充电器规范相组合,创造了可实现完整电池管理的系统。在此系统中,智能电池可以通过 SMBus 与电源(充电器)进行通信,并设置充电电压电流工作状态,而且通过设置阈值,还可限制逾界任务 (out-of-bound activity)。这是最早在开放式通信标准上实施标准电源管理的系统之一。

电源领域已经认识到通过电源系统通信进行动态电源管理的益处。为了推动数字控制电源的发展,用于通信的标准语言是很自然的“搭配”。Artesyn 技术公司联合了各大电源与半导体厂商,全力开发电源管理通信的标准协议。该组织于 2005 年 3 月发布了 PMBus 规范。PMBus 规范可为数据传输、命令与数据格式提供开放式标准,从而能够“模仿”智能电池的标准。PMBus 组织采用 SMBus 规范作为其数据传输方式。该通用规范使智能电池系统与 PMBus 之间息息相关,因而这些行业组织联合形成了系统管理接口论坛 (SMIF),网址www.powersig.org。PMBus 小组作为 SMIF 的一部分,负责修订、制订新规范以及 PMBus 的推广。此外,该小组还通过为业界提供配套支持来推进 PMBus 部署。

电源管理总线(PMBus)

PMBus的支持原理与 SBS 的类似。两者都是通过基本命令与数据进行操作来管理电源及通信协议,这样既简单、低价而且还可靠。与 SBS 一样,PMBus 规范也包括两部分。PMBus 中相对应的部分是,“第一部分——一般要求、传输与电气接口”,以及“第二部分——命令语言”。将该规范分为两部分使得其中任一部分的变动不会使两部分同时受到影响。

第一部分——一般要求、传输与电气接口

PMBus 的第一部分采用 SMBus1.1 作为基本规范。SMBus1.1 与 SMBus 规范最新版 SMBus2.0 之间的主要区别在于总线地址判优。PMBus 的倡导者认为此特性不必要,因为在大多数情况下,每个电源的地址均表明了其物理位置与系统功能性。地址判优会给 PMBus 解决方案增加复杂度,而不能带来任何实际的益处。

SMBus 1.1 与 SMBus 2.0 之间的另一区别在于,SMBus2.0 还包含高功率 DC 规范。SMBus1.1 限制时钟与数据上拉到最大值 350uA。在 SMB2.0 中,该限制是在低功率 DC 规范中描述的。SMB2.0 高功率 DC 规范允许电流上拉至最大 4mA。在任一种情况下,设备都必须能在低输出时,将时钟或者数据线拉到 0.4V 以下。虽然在吸收 350uA 的同时,器件只要能把时钟及数据线拉到 0.4V 以下即可实现 PMBus 兼容,但是,如果有更强的下拉能力会更有益处。使用 SMBus2.0 的高功率 DC 规范可以增强噪声抗扰度。PMBus 定义了两种必需的信号,时钟 (SCL) 与数据 (SDA)。PMBus1.0 允许采用 3 种可选信号。图 1 显示了 PMBus 所需的可选信号。SMBALERT# 是一种有线信号 (wired-and signal),任意需要引起 PMBus 主设备注意的从设备都可对其进行拉低。当 SMBALERT# 信号被拉低,主设备就在 PMBus 上发出告警响应地址。在传输完告警响应地址之后,每一告警设备根据主设备的计时将它们的设备地址放在 SDA 上。将地址转移至总线的每个设备必须在此处理过程中同时监控数据线。如果设备发送高比特的时候发现数据线低,那么,这就意味着另一设备也在做出响应,并且具有更高的优先级。一旦某设备成功地将其地址放置在总线上后,该设备就必须释放 SMBALERT# 线路。虽然该信号被列为“可选”,但却是被建议的。另外,部分 OEM 厂商还要求 PMBus 解决方案的供应商提供 SMBALERT# 信号。



图1 PMBus信号

除了 SMBSLERT# 线路之外,还定义了另外两条可选线路。可选控制信号 (CONTROL) 能够提供一种快速的方法来“关闭”启用 PMBus 的电源输出。众多系统 OEM 厂商都会要求 CONTROL 信号。可选的写保护信号 (WP) 能够保护数据与程序信息免遭意外修改。WP 信号被系统 OEM 厂商要求的可能性较小。CONGTROL 与 WP 信号的电压电平应该符合从逻辑电平,并在大多数情况下与 PMBus 的逻辑电平相同。而且 CONTROL 与 WP 信号也可以转向一个以上的从设备。

在 SMBus1.0 规范中包含至 SMBus1.1 的扩展。作为扩展的群组命令协议 (Group Command Protocol) 使得多个设备可根据 STOP 位检测保持同步。在图 2 所示的协议中,对每个从设备均进行了寻址,并向它们发送了适当的命令和数据以及可选的数据包纠错 (PEC) 字节。然而在该通信未尾没有发送 STOP 位,而是在下一个设备的地址、命令和数据之前发送中继 START 位。这一过程持续一直进行,直至所有适用设备均配置完成。最后,设备配置数据包末尾发送一个 STOP 位。建议仅为群组中的每个地址发送每群组数据包一条命令,如图 2 所示。一检测到 STOP 位,所有设备均听从于所发送命令。在这种情况下,多个设备可以在 PMBus 上实现同步。另一实现同步的方法如前文所述,需使用 CONTROL 线路。



图2 PMBus群组命令

PMBus 第一部分执行中的问题

在设计 I2C 总线时,一些工程师一直有不愉快的经历。遵循 I2C 规范非常重要,尤其是时序要求部分。一个常见的问题是,检测虚假的或意外的 START 或 STOP 位。当检测到 START 位时,从设备就开始寻找设备地址。如果这是一个虚假的 START 位,设备就会将总线上的数据解释成设备地址并做出相应的响应。检测到虚假 START 位是很严重的错误,它会导致多个从设备同时访问总线。检测到意外 STOP 位会导致数据传输过早地终止。如果数据存在微小上升或者保持时间不够,这两种问题都有可能发生。图 3 显示了这些问题需要注意的方面。如果总线电容比建议值高,上述问题就可能会发生。采用通用 I/O 引脚的软件控制方法来实施“bit-banged”解决方案时,也会造成这些问题。



图3 PMBus转变时序

规则很简单:只要在改变数据信号时远离时钟沿。在设计过程中,必须检查每一个 PMBus 设备的时钟时序与数据引脚。最好能对 PMBus 系统及其所有可能的 PMBus 设备进行在线测试。

总线噪声可能会导致意外的 START 或者 STOP 位错误检测以及错误的位值。电源可能会使环境噪声很大。各种器件之间的接地升高 (ground elevation) 是导致问题的噪声类型之一。信号低电平的参数是最高 0.8V ,而信号高电平的参数是最低 2.1V。如前文提及,PMBus 器件必须能把线拉到 0.4V 以下。如果接地升高与上拉电流导致目标低信号在器件引脚处高于 0.8V,那么数据就被毁坏了。接地升高这个问题可能在检查系统的时候不会被发现,尤其是系统负载轻的时候。

PMBus只要符合规范,是一种可靠的通信协议。出现问题主要是在转换过程中,无论是时钟还是数据。所以,系统设计师必须测试这些地方。像光耦合器与光隔离器这样的器件可能会增加转换的次数,由于器件引脚不符合规范,转换次数的增多会导致通信错误。



图4 PMBus电压调节相关命令

第二部分-命令语言

PMBus 的第二部分定义了命令语言。这种语言包括特定的操作代码,以支持启用 PMBus 电源系统的制造与运行时管理。其中共有 100 多条基本命令代码,同时还为各特定厂商和用户的命令预留了代码。此外,还为基本命令的未来拓展预留了命令代码空间。大多数 PMBus 设备不太可能仅执行所有的 PMBus命令。PMBus1.0 规范要求,符合 PMBus 标准的设备至少要执行一条非厂商命令。此外,该规范还要求采用基本命令代码的 PMBus 设备执行PMBus规范所描述的命令,才能达到 PMBus 的标准。

为了能够适应各种复杂的 PMBus 设备,用于通知 PMBus 主机不支持某命令的标准要求非常灵活。首先,这些设备要能够仅 NAK 这条命令代码,这在最大程度上为 PMBus 主机减轻了负担。PMBus的从设备也可 NAK 后续的数据字节,这最好尽可能早地完成。另一种办法是 ACK 命令和数据,但要向主机发出故障告警。然后,主机读取 STATUS_BYTE 以确定是否出现支持问题。最基本的问题是 NAK 可能意味着发生了几种不同问题的其中之一,这就好比“我听不到你说话”、“我无法给予支持”或者“我没有明白你的意思”。因而当使用 NAK 时,应避免出现模棱两可的情况。

PMBus 规范至少以两种格式支持工程数值。我们将格式定义为文字格式和直接格式 (literal and direct)。文字格式以工程单位如伏特、安培、毫米或者 ?C 等进行数据交换。这种格式在系统侧最省力,因为这种数值不需要任何额外的解释信息。然而,这会增加从设备的复杂程度,因为它必须将内部数值转换成工程单位。

直接方法会加重系统侧负担,因为它需要数据交换。要使用这种方法,主机必须具有将主机单位转换成内部从设备单位的相关信息。所有往返于从设备的通信都位于从设备的内部单位中,这简化了从设备的计算要求,但却增加了主机侧的复杂程度。其中,Y是工程单位值;X是从设备的内部单位,两字节带符号整数;m是斜率,两字节带符号整数;b是截距,两字节带符号整数;R是指数,两字节带符号整数。三种格式可支持输出电压:文字格式、直接格式和VID格式。由于受 PMBus 通信带宽的限制,VID 调节不能满足动态处理器电源所需的计时要求。然而,VID 是一种控制电压输出的简便方法,因为主从设备都不需要很高的复杂度。

对于电源输出与限制,PMBus 命令语言支持各种级别的制造和实时调节。输出电压就是一个与支持级别相关的实例,在 PMBus 规范的第 8、9 和 13 章节中涉及到了这些内容。主机可设置 VOUT_MODE 来配置输出电压格式。此命令仅在选择新模式或者初始化设置时才会用到。然后,主机可以使用 VOUT_COMMAND、VOUT_MARGIN_HIGH 或 VOUT_MARGIN_LOW 来设置输出电压,这要根据 CONTROL 信号或 OPERATION 命令的配置而定。为了校准模块和系统以精确设置输出电压,要在这些运行命令之前采用各种其他命令。这些模块命令是:

VOUT_CAL:模块或设备制造商失调校正

VOUT_TRIM:系统内失调校正

VOUT_SCALE_LOOP:针对环路控制的分压器比例

VOUT_SCALE_MONITOR:为电压监控的分隔比例值

VOUT_DROOP:制造商或系统自适应电流校正

图 4 显示了如何在转换 VOUT 输出 OPERATION 命令时,使用这些命令以调节输出电压。模块命令将所请求的电压转换成内部值,以供随后调节输出电压之用。图 4 中的灰色方框在操作系统运行期间通常保持不变。可在 PMBus 的规范中找到对这一功能性的详细描述。

结语

[table][/table] 电源通信多年以来一直是高端系统的重要组成部分。随着数控电源的出现,将电源通信扩展到了更为广泛的应用范围。电源通信需要开放式的行业标准,这样,系统侧软件的开发就不会因各种不同的命令语言和协议而负担沉重。

PMBus 规范为解决电源通信的问题提供了功能强大的灵活命令语言,并为在行业内的广泛普及提供了开放式标准。在根据规范进行系统设计的情况下,PMBus传输层为本地级别的可靠通信提供了适当的规范。一旦通信发生故障,就可以用 PEC 来进行故障检测。

一般的系统可能不执行所有的 PMBus 命令语言指令。然而,规范中规定的方法有助于主机确定实施级别。最后,系统 OEM 厂商可能为大多数解决方案创建其所需标准的 PMBus 命令子集。这一发展过程与智能电池系统在初始几年间所经历的情况相同。有了电源通信的开放式标准,数字电源管理将快速向更广泛的应用扩展。
本文地址:https://www.eechina.com/thread-25504-1-1.html     【打印本页】

本站部分文章为转载或网友发布,目的在于传递和分享信息,并不代表本网赞同其观点和对其真实性负责;文章版权归原作者及原出处所有,如涉及作品内容、版权和其它问题,我们将根据著作权人的要求,第一时间更正或删除。
您需要登录后才可以发表评论 登录 | 立即注册

厂商推荐

相关视频

关于我们  -  服务条款  -  使用指南  -  站点地图  -  友情链接  -  联系我们
电子工程网 © 版权所有   京ICP备16069177号 | 京公网安备11010502021702
快速回复 返回顶部 返回列表