微波EDA网,见证研发工程师的成长!
首页 > 硬件设计 > 电源设计 > PMBus:电源系统的国际语言

PMBus:电源系统的国际语言

时间:09-03 来源:互联网 点击:
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 的规范中找到对这一功能性的详细描述。

Copyright © 2017-2020 微波EDA网 版权所有

网站地图

Top