The System Management Bus (SMBus) is more or less a derivative of the I2C bus. The standard has been developed by Intel and is now maintained by the SBS Forum.
The main application of the SMBus is to monitor critical parameters on PC motherboards and in embedded systems. For example there are a lot of supply voltage monitor ICs, temperature monitor ICs, and fan monitor/control ICs with an SMBus interface available.
There are some interesting differences between the I2C bus and the SMBus:
Tracii XL and Tracii XL 2.0 offer outstanding support for the SMBus.
The I2C C++ and the I2C .NET APIs of the I2C Framework contain several classes to support the SMBus master mode:
Using the SMBus master API it is possible to generate even complex SMBus messages with very few lines of code.
I2C Studio offers several interesting features to analyse an SMBus with Tracii XL / Tracii XL 2.0:
On an I2C bus a fix slave address is assigned to each I2C slave during the development of the PCB. Typically the I2C address of an I2C slave gets selected by pulling some external pins to high or low level.
SMBus devices support fix addresses, too. Additionally, the SMBus specification defines a different approach, where the slave addresses are assigned dynamically during the runtime. This process is called SMBus ARP. The SMBus master is responsible for assigning the addresses.
The SMBus ARP is supported by the I2C Framework and I2C Studio.