Industry Standard. The “I2C Bus Specification,” published by Philips Semiconductor, provides a communication protocol definition of the signal activity on the I2C. I²C (Inter-Integrated Circuit), pronounced I-squared-C, is a synchronous, multi- master, multi-slave, packet switched, single-ended, serial computer bus invented in by Philips Semiconductor (now NXP Semiconductors). Alternatively I²C is spelled I2C (pronounced I-two-C) or IIC (pronounced I-I-C). Since October Philips do define faster speeds: Fast mode, which is up to KHz and High . The I2C protocol provides a solution to this: the slave is allowed to hold the SCL.

Author: Shajind Dujinn
Country: Germany
Language: English (Spanish)
Genre: Business
Published (Last): 11 July 2015
Pages: 449
PDF File Size: 4.93 Mb
ePub File Size: 7.70 Mb
ISBN: 830-2-49234-464-8
Downloads: 28853
Price: Free* [*Free Regsitration Required]
Uploader: Kajirg

Archived from the original on Arbitration A process to determine which of the masters on the bus can use it when more masters need to use the bus.

I2C Bus Specification

To minimize the possible damage due to plugging 0. They are connected via resistors to a positive power supply voltage. After this the data transfer direction is changed and the master device starts reading the data. The I2C hardware will detect Start condition, receive the I2C address and interrupt the software if necessary. This way by observing the SCL signal, master devices can synchronize their clocks.

I2C terminology Transmitter This is the device that transmits data to the bus Receiver This is the device that receives data from the bus Master This is the device that generates clock, starts communication, sends I2C commands l2c stops communication Slave This is the device that listens to the bus and is addressed by the master Multi-master I2C can have more than one master and each can send commands Arbitration A process to determine which of the masters on the bus can use it when more masters need to use the bus Synchronization A process to synchronize clocks of two or more devices Bus Signals Both signals Protoxol and SDA are bidirectional.


If the slave exists on the bus then it will respond with an ACK bit active low for acknowledged for that address. What alleviates the issue of address collisions between different vendors and also allows to connect to several identical devices is that manufacturers dedicate pins that can be used to set the slave address to one of a few address options per device.

Otherwise, if the data direction bit is 1, the master will read from slave device. The only reliable configuration mechanisms available to hosts involve out-of-band mechanisms such as tables provided by system firmware, which list the available devices.

Those that do, generally label themselves as supporting “multi-master” communication.

This means that when the bus is free, both lines are high. Wikimedia Commons has media related to I2C.


This is in contrast to the start bits and stop bits used in asynchronous serial communicationwhich are distinguished from data bits only by their timing. Thus it is common for designs to include a reset signal that provides an external method of resetting the bus devices. All devices on the bus must have open-collector or open-drain pins.

The number of the devices on a single bus is almost unlimited — the only requirement is that the bus capacitance does not exceed philps. In practice, most slaves adopt request-response control models, where one or more bytes following a write command are treated as a command or address.

I²C – Wikipedia

This method requires that protcol other devices on the bus have thresholds which are compatible and often means that multiple buffers implementing this protocok cannot be put in series with one another. Arbitration For normal data transfer on the I2C bus only one master can be active. Arbitration occurs very rarely, but is necessary for proper multi-master support. By using this site, you agree to the Terms of Use and Privacy Policy.


Interfaces are listed by their speed in the roughly ascending order, so the interface at the end of each section should be the fastest. The arbitration procedure can continue until all the data is transferred. Transmitter This is the device that transmits data to the bus.

This wiring allows multiple nodes to connect to the bus without short circuits from signal contention. Some I2C devices on the board, despite address pins, have the same address. Some slave devices have few bits of the I2C address dependent on the level of address pins.

The master then waits for SCL to actually go high; this will be delayed by the finite rise time of the SCL signal the RC time constant of the pull-up resistor and the parasitic capacitance of the bus and may be additionally delayed by a slave’s clock stretching. Receiver This is the device that receives data from the bus. Two or three pins is typical, and with many devices, there are three or more wiring options per address pin.

For example, if each interaction with a slave inefficiently allows only 1 byte of data to be transferred, the philip rate will be less than half the peak bit rate. In some cases it is very hard to avoid address collisions since 7 philipd for Prtoocol addresses allow only different addresses where only can actually be used.

Specification – I2C Bus

In order to communicate with specific device, each slave prohocol must have an address which is unique on the bus. Each slave device on the bus should have a unique 7-bit address. The master device must either generate Stop or Repeated Start condition. A transaction consisting of a single message is called either a read or a write transaction.