94
I²C: Inter-Integrated Circuit Bus Controller
1.
Presentation of I²C protocol
1.1.
I²C is an half-duplex, two-wire, bidirectional, multi-master, multi-slave communication bus. It
supports addressing, data acknowledging, detecting arbitration loss or busy bus and using
multiple baud rates.
Figure 104 : Physical Interface of I²C Bus
Only masters can initiate a communication with a slave, either for transmitting or receiving, and
most of the devices can switch between master and slave modes. These communications start
with a start signal which is followed by an address transmission for selecting a slave. With the
address, the master indicates whether it needs to receive or transmit on a R/W bit. And then the
communication is maintained until the master sends the stop bit.
Figure 105 : I²C Communication Time Diagrams
After each successfully transmitted byte, the slave uses an acknowledge bit on the bus.