The Power Management Bus (PMBus) is a variant of the System Management Bus (SMBus) which is targeted at digital management of power supplies. Like SMBus, it is a relatively slow speed two wire based on I²C. 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 reader.
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.
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:
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). 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.
As of summer 2007, PMBus is relatively new so not many products yet advertise support for it. Given the richness of the specification, firmware based implementations running in microcontrollers are probably easiest to provide, although several of the current products do not involve microcontrollers. One firmware-based example is the Texas Instruments UCD9112. Another uses about 2Kbytes of code on an Atmel AVR 8-bit microcontroller on the NGW100 board controller.