Inter Integrated Circuit) bus is a
cheap, yet effective, network used to interconnect peripheral devices
within small-scale embedded systems. It is sometimes also known as
IIC and has been in existence for more than 20
years. It is the equivalent of SPI, but its operation is somewhat
I2C uses two wires to connect multiple devices in a multidrop bus. The bus is bidirectional, low-speed, and synchronous to a common clock. Devices may be attached or detached from the I2C bus without affecting other devices. Several manufacturers, such as Microchip, Philips, Intel, and others produce small microcontrollers with I2C built in. The data rate of I2C is somewhat slower than SPI, at 100kbps in standard mode and 400kbps in fast mode.
The two wires used to interconnect with
I2C are SDA (serial data) and SCL (serial clock). Both lines are
open-drain. They are connected to a positive supply via a pull-up
resistor and therefore remain high when not in use. A device using
the I2C bus to communicate drives the
lines low or leaves them pulled high as appropriate. Each device
connected to the I2C bus has a unique address and can operate as a
transmitter (a bus master), a receiver (a bus slave), or both (Figure 9-20). I2C is a
, meaning that more than one device may
assume the role of bus master.
Figure 9-20. I2C block diagram ...