SMBus stands for System Management Bus, a simple two wire bus used in devices such as a computer motherboard for communication, mostly on low bandwidth devices.
The SMBus was developed by Intel in 1995. One of the main duties of a SMBus is carry clock, data, and instructions from the motherboard to the device. It is based on Phillips C serial bus protocol. A SMBus can be found in many of the electronic devices that you own. For instance, on your laptop's rechargeable batter subsystem, in your computer, and many other types of electronics that include temperature sensors and lid switches. A SMBus can inform the user of specific, but basic types of information. For instance, a device which has a SMBus can indicate the model or version of a device. In addition, a SMBus is also an extremely valuable tool for reporting errors, an event or accept control parameters. It should be noted that a SMBus even when located in a laptop or desktop computer can not be configured and is usually not accessible.
The SMBus does have support from a variety of operating systems including Linux, MS Windows 2000, MS Windows XP and MS Windows Vista. However, MS Windows 98 does not support the SMBus.
The History of the SMBus
The SMBus was developed by Intel in 1995. The SMBus was primarily developed for both controlling and receiving information from motherboards in an inexpensive, but highly effective manner. It was designed to be extremely simple and utilize analog semiconductor technologies with limited digital capabilities. Because of the design, commands are usually simple logic implementations. Below is a list of some of the terms used with a SMBus:
Definition of SMBus Terms
It should be noted that every device on the bus has its own unique seven bit address. Each address also has a bit appended- the bit position is 0. This means that a total of 127 addresses are possible. If you would like to register an address on the bus, you will need to submit it to Intel for approval.
Protocol is the sequence of bits that come across the bus. It should be noted that each command has its unique protocol which is the form of a bit sequence.
Because each device has its own protocol and every device also has a unique address, each device also has its own set of commands.
The SMBus speed is from 10K Hz to 100K Hz. However, current implementations use the speed of either 50K Hz or 100K Hz.
Each command has the following parts; a start condition, begin the transmission, transmit the command, wait and acknowledge the command from the receiving device (sometimes referred to as the slave), a stop condition on the SMBus
A quick command is an 8 bit command and is the simplest type of command with an address of either a read/write bit. This quick command was designed to specifically turn a device on and off. For instance, a write command turns a device on, a read command, turns a device off.
Besides quick commands there are also16 Bits commands. These commands are used to send up to 256 unique commands to a device.
A write/read block sends many bits; in fact it can send or receive up to 32 bytes of data to and from the device.
A write byte has a length of 24 bits. A write byte is used to send 16 bits of data to a device (command and data). A read byte sends an 8 bit command and then receives back from the device eight other bits. It should be noted that a read byte has the length of 32 bits because when sending a read byte, the device address is put on the bus twice, making 32 bits cross the bus.
A write word sends 24 bits of data to a device (both command and data). A read sends an 8 bit command to the device, but receives back 16 bits. It should be noted that the read command (8 bits) and the device address bothgoing across and back from the bus equals 40 bits.