The Power Management Bus (PMBus) is a variant of the
System Management Bus (SMBus) which is targeted at digital management of
power supplies
A power supply is an electrical device that supplies electric power to an electrical load. The main purpose of a power supply is to convert electric current from a source to the correct voltage, current, and frequency to power the load. As a r ...
. Like SMBus, it is a relatively slow speed two wire
communications protocol
A communication protocol is a system of rules that allows two or more entities of a communications system to transmit information via any variation of a physical quantity. The protocol defines the rules, syntax, semantics (computer science), sem ...
based on
I²C
I2C (Inter-Integrated Circuit; pronounced as "" or ""), alternatively known as I2C and IIC, is a synchronous, multi-master/multi-slave, single-ended, serial communication bus invented in 1980 by Philips Semiconductors (now NXP Semiconduct ...
. Unlike either of those standards, it defines a substantial number of domain-specific commands rather than just saying how to communicate using commands defined by the user.
Overview
The first part gives an overview with particular reference to SMBus, while the second part goes into detail about all the commands defined for PMBus devices. There are both standardized commands and manufacturer specific commands. Conformance requirements for PMBus are minimal, and are described in Part I of the specification. See the PMBus 1.1 specification for full details.
Comparison to SMBus
At the lowest level, PMBus follows SMBus 1.1 with a few differences. This information is presented in more detail in Part I of the PMBus specification:
* 400 kHz bus speeds are allowed (vs. the 100 kHz limit of SMBus)
* In PMBus, blocks may include up to 255 bytes (vs. the 32-byte limit of SMbus).
* As in SMBus 2.0, only seven-bit addressing is used.
* Some commands use the SMBus 2.0 block process calls.
* Either the SMBALERT# mechanism or the SMBus 2.0 host notify protocol may be used to notify the host about faults.
* PMBus devices are required to support a Group Protocol, where devices defer acting on commands until they receive a terminating STOP. Since commands can be issued to many different devices before that STOP, this lets the PMBus master synchronize their actions.
* An "extended command" protocol is defined, using a second command byte to add 256 more codes each for both standard and manufacturer-specific commands.
PMBus commands
The PMBus command space can be seen as exposing a variety of readable, and often writable, device attributes such as measured voltage and current levels, temperatures, fan speeds, and more. Different devices will expose different attributes. Some devices may expose such attributes in multiple "pages", as for example one page managing each power supply rail (maybe 3.3V, 5V, 12V, −12V, and a programmable supply supporting 1.0–1.8V). The device may set warning and fault limits, where crossing a limit will alert the host and possibly trigger fault recovery. Different devices will offer different capabilities.
The ability to query a PMBus 1.1 device about its capabilities may be particularly useful when building tools, especially in conjunction with the ability to store user data in the devices (e.g. in
EEPROM
EEPROM or E2PROM (electrically erasable programmable read-only memory) is a type of non-volatile memory. It is used in computers, usually integrated in microcontrollers such as smart cards and remote keyless systems, or as a separate chip d ...
). Without such a query capability, only error-prone external configuration data is available.
Part II of the PMBus specification covers every standard PMBus command. It also describes the models for managing output power and current, managing faults, converting values to and from the formats understood by a given device, and accessing manufacturer-provided information such as inventory data (model and serial number, etc.) and device ratings.
Linear11 Floating-Point Format
PMBus defines its own 16-bit floating-point format, termed "Linear11".
* N = Signed Exponent
* Y = Signed Mantissa
Value Represented = Y × 2
Unlike the
half-precision floating-point format
In computing, half precision (sometimes called FP16 or float16) is a binary floating-point computer number format that occupies 16 bits (two bytes in modern computers) in computer memory. It is intended for storage of floating-point values in ...
(which also uses 16 bits in total) and other typical float formats, a signed 11-bit mantissa is used rather than an unsigned fraction with a separate sign bit. Similarly, the exponent is stored as a signed 5-bit number rather than a more typical biased unsigned number. This has the following implications:
* The sign of the resulting number uniquely depends on bit 2 of the high byte, rather than the most significant bit of the high byte.
* Because both values are stored as signed numbers, it is necessary to explicitly sign-extend both values when decoding the number. However, this makes the encoding process simpler.
* There is no representation for negative zero.
* Inverting the sign of the resulting number must take into account some special edge cases:
** The sign of the result can be inverted with an 11-bit
two's complement
Two's complement is the most common method of representing signed (positive, negative, and zero) integers on computers, and more generally, fixed point binary values. Two's complement uses the binary digit with the ''greatest'' value as the ''s ...
operation, if and only if Y ≠ -1024.
** When Y = -1024, the sign inversion process must produce Y = 512, N = N + 1, if and only if N remains less than 32.
** The most negative number is represented with Y = -1024 and N = 31. There is not a positive representation for this number.
Patenting issues
In January 2008, Power-One was awarded a win in a patent infringement suit between them and Artesyn Technologies for the latter's PMBus enabled converters. Power-One claims that PMBus applications need a license from them. Potential PMBus users should investigate the issue for themselves. See external links.
See also
*
I²C
I2C (Inter-Integrated Circuit; pronounced as "" or ""), alternatively known as I2C and IIC, is a synchronous, multi-master/multi-slave, single-ended, serial communication bus invented in 1980 by Philips Semiconductors (now NXP Semiconduct ...
(I2C)
*
System Management Bus (SMBus)
*
Advanced Configuration and Power Interface
Advanced Configuration and Power Interface (ACPI) is an open standard that operating systems can use to discover and configure computer hardware components, to perform power management (e.g. putting unused hardware components to sleep), auto con ...
(ACPI)
*
List of network buses
External links
Official
*
Official PMBus specifications (free)
Other
PMBus–panacea or hype?is an article that's informative about the context of PMBus, written by the specifications' editor.
Article from Electronic Designdescribes the lawsuit between Power-One and Artesyn Technologies, accessed 24 July 2013.
{{Computer-bus
Serial buses
Battery charging