GD32VF103 User Manual
369
I2C for communication with low-bandwidth devices on a motherboard, especially power
related chips such as a laptop's rechargeable battery subsystem (see Smart Battery Data).
SMBus protocol
Each message transaction on SMBus follows the format of one of the defined SMBus
protocols. The SMBus protocols are a subset of the data transfer formats defined in the I2C
specifications. I2C devices that can be accessed through one of the SMBus protocols are
compatible with the SMBus specifications. I2C devices that do not adhere to these protocols
cannot be accessed by standard methods as defined in the SMBus and Advanced
Configuration and Power Management Interface (abbreviated to ACPI) specifications.
Address resolution protocol
The SMBus uses I2C hardware and I2C hardware addressing, but adds second-level
software for building special systems. Additionally, its specifications include an Address
Resolution Protocol that can make dynamic address allocations. Dynamic reconfiguration of
the hardware and software allow bus devices to be
‘
hot-plugged
’
and used immediately,
without restarting the system. The devices are recognized automatically and assigned unique
addresses. This advantage results in a plug-and-play user interface. In both those protocols
there is a very useful distinction made between a System Host and all the other devices in
the system that can have the names and functions of masters or slaves.
Time-out feature
SMBus has a time-out feature which resets devices if a communication takes too long. This
explains the minimum clock frequency of 10 kHz to prevent locking up the bus. I2C can be a
‘
DC
’
bus, meaning that a slave device stretches the master clock when performing some
routine while the master is accessing it. This will notify to the master that the slave is busy but
does not want to lose the communication. The slave device will allow continuation after its
task is completed. There is no limit in the I2C bus protocol as to how long this delay can be,
whereas for a SMBus system, it would be limited to 35ms. SMBus protocol just assumes that
if something takes too long, then it means that there is a problem on the bus and that all
devices must reset in order to clear this mode. Slave devices are not allowed to hold the clock
low too long.
Packet error checking
SMBus 2.0 and 1.1 allow Packet Error Checking (PEC). In that mode, a PEC (packet error
code) byte is appended at the end of each transaction. The byte is calculated as CRC-8
checksum, calculated over the entire message including the address and read/write bit. The
polynomial used is x8+x2+x+1 (the CRC-8-ATM HEC algorithm, initialized to zero).
SMBus alert
The SMBus has an extra optional shared interrupt signal called SMBALERT# which can be