I2C (for Inter-Integrated Circuit, pronounced I-squared-C) is a serial computer bus by Philips. It is used to connect low-speed peripherals in an embedded system or motherboard.

The original system was created in the early 1980s as a battery control interface, but it was later used as a simple internal bus system for building control electronics with various Philips chips.

I2C uses only two bi-directional pins, clock and data, both running at +5V and pulled high with resistors. The bus operates at 100 kbit/s in standard mode but also includes a 10 kbit/s low-speed mode.

Buses of this type became popular when engineers realized that much of the expense of an integrated circuit results from the size of the package and the number of pins. A large package has more pins, thus more assembly steps when manufactured, more area on a printed circuit board, more weight, and more connections to fail. All of those cost money to make, assemble and test, and can increase operational expenses (fuel), or decrease convenience (weight is critical in cell-phones, for example).

A particular strength of I2C is that a microcontroller can control a network of several chips with just two general-purpose I/O pins and software.

Although much slower than most bus systems, the low expense is excellent for peripherals that have to exist, but need not be fast. The bus is often used for built-in-tests, volume, tone and color balance controls, low-speed analog-to-digital and digital-to-analog controllers, real-time-clocks, small non-volatile memories (used to preserve user-settable options), control of clock-generators (for computers that can vary their clock speeds) and integrated circuits that combine a shift-register and power transistors. Chips can also be added to or removed from the bus while the system is running, which makes I2C useful for hot swappable components.

The basic bus has a seven-bit address space, allowing up to 112 nodes on one bus (16 of the 128 addresses are reserved). In 1992 the first standardized version was released, v1.0. This added a new fast mode at 400 kbit/s and a ten-bit addressing mode to support up to 1024 nodes. v2.0 from 1998 added high-speed mode at 3.4 Mbit/s, while reducing the voltage and current requirements when run in that mode (thus saving power as well as being faster). The latest v.2.1 from 2001 is a minor cleanup of 2.0.

I2C was also used as the basis for ACCESS.bus and VESA's monitor data interface (Display Data Channel or DDC) - both for low-speed control and built-in-test.

External links

Philips I2C specifications
I2C Bus / Access Bus