SMBus (System Management Bus) was proposed by Intel in 1995. Its original purpose was to define a communication link between smart batteries, rechargeable batteries and microcontrollers that communicate with other systems. It is a cheap and powerful A bus (consisting of two wires) for low-rate data exchange between a master and a smart battery or other slave device.

Through SMBus, the smart battery can report battery information such as the current state of the battery, voltage, current, temperature, remaining power, remaining usable time, required charging voltage and charging current, and can also provide its production information, telling the system it model, manufacturer, etc., saves its state for pending events, reports different classes of errors, receives control parameters, and returns its state, etc.

The Smbus interface consists of 3 lines, namely SMC/SMD/GND. SMC and SMD are open-drain outputs. When using, the host side should be pulled up, and necessary electrostatic protection devices should be added. Its communication rate generally works at 10kHz – 100kHz.

There are some differences in timing characteristics between SMBus and I2C bus. First, SMBus requires a certain data retention time, while the I2C bus extends the data retention time internally. SMBus has a time-out feature, so when SCL is too low for more than 35 ms, the slave will reset the ongoing communication. Instead, I2C uses a hardware reset. SMBus has an Alert Response Address (ARA), so when a slave device generates an interrupt, it does not clear the interrupt immediately, but keeps it until it receives an ARA with its address sent by the master device. SMBus only works from 10kHz up to 100kHz. The minimum operating frequency of 10kHz is determined by the SMBus timeout function.