The I²C-Bus is a bi-directional two-wire serial bus that allows micro-controllers and computers to connect to specialized devices. I²C is an abbreviation for Inter IC Communication and it was invented nearly 20 years ago by Philips. Philips holds the patent for it. There are about 50 licensees with about one thousand devices on the market using the I²C-bus. It is worldwide established now as solution for embedded applications. It is used extensively in a variety of micro controller-based applications as a control, diagnostic and power management bus.
It is a serial bi-directional communication protocol invented by Philips used for communication between devices in mostly audio and video systems.
All I²C devices are hooked up to one 2-line cable and can be addressed individually. Most systems have one master and several slaves that communicate using only two wires. The slave can have all kinds of functions: I/O, AD/DA converter, RAM, EEPROM, DTMF dialer, LED display driver, audio sound control and video signal control and every device has its own identification code. If this identification code is sent by the master over the bus, only this special device will respond with an acknowledgement. After the acknowledgement data is sent or received between the master and the slave device.
The 2 signal lines, are Clock and Data, called SCL and SDA. Both are bi-directional signals. A connected I²C-device may connect the line to the system ground rail through an electronic switch, or it may leave it floating (open collector output). The first feature provides an input into the device, and the second an output. This way each device on the I²C-bus can monitor the voltage, or logic level, on both signals.
Also an external resistor (about 4.7k) is connected between each of the 2 signal lines and the +5V power supply line. This guaranties that if no device on the bus is connecting a line to ground, this line appears to be a logical '1'.
Master devices and most slave devices can both transmit and receive. But there are also slave devices that can receive only. The Transmitter is a device that outputs data onto the bus, while a Receiver accepts data from the bus.
A master is the device which controls the SCL line, starts and stops the data transfer, and controls the addressing of the other devices on the bus. The Slave is the device that is being controlled by the master.
The basic I²C-bus has a data transfer rate up to 100 kbits/s and 7-bit addressing. Fast mode I²C-bus supports transfer rates up to 400 kbits/s and high-speed mode I²C-bus allows 10-bit addressing for up to 1024 system addresses. High-speed mode devices can transfer information at bit rates of up to 3.4 Mbit/s. They are still fully downward compatible with fast-mode and standard-mode devices for bi-directional communication in a mixed-speed bus system.
See: www.semiconductors.philips.com, I²C-bus