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: Tezilkree Daitilar
Country: Czech Republic
Language: English (Spanish)
Genre: Love
Published (Last): 20 February 2012
Pages: 228
PDF File Size: 12.95 Mb
ePub File Size: 19.12 Mb
ISBN: 632-9-87164-873-3
Downloads: 49890
Price: Free* [*Free Regsitration Required]
Uploader: Akigal

If any node is driving the line low, it will be low. If pyilips is more than one master, all but one of them will normally lose arbitration. When writing multiple bytes, all the bytes must be in the same byte page. Once the clock is released the master can proceed with the next byte. As with clock stretching, not all devices support arbitration.

I2C Bus Specification

In this situation, the master is in master transmit mode, and the slave is in slave receive mode. SMBus reserves some additional addresses.

The terminating STOP indicates when those grouped actions should take effect. Again, this issue can partially be addressed by ARP in L2c systems, especially when vendor and product identifiers are used; but that has not really caught on. If the master needs to communicate with other slaves phulips can generate a repeated start with another slave address without generation Stop condition.

Not supporting arbitration or clock stretching is one common limitation, which is still useful for a single master communicating with simple slaves that never stretch the clock. High-speed mode introduces also few differences or improvements in the specifications: In all modes, the clock frequency is controlled by the master sand a longer-than-normal bus may ;hilips operated at a slower-than-nominal speed by underclocking.

However, most modern I2C controllers support all speeds and addressing modes. This method requires that all other devices on the bus have thresholds which are compatible and often means that multiple buffers implementing this scheme cannot be put in series with one another. This completes transmission of one bit. For successful philps arbitration a synchronized clock is needed.


In this situation, the master is in master receive mode, and the slave is in slave transmit mode. However, if the I2C interface is implemented by the software, the microcontroller has to sample SDA line at least twice per clock pulse in order to detect changes. For example, a command which is issued by only one master need not be idempotent, nor is it necessary for a specific command to be idempotent when some mutual exclusion mechanism ensures that only one master can be caused to issue that command at any given time.

One purpose of SMBus is phipips promote robustness prtocol interoperability.

Specification – I2C Bus

For this reason, when a slave can be accessed by multiple masters, every command recognized by the slave either must be idempotent or must be guaranteed never to be issued by two masters at the same time. An addressed pyilips device may hold the clock line SCL low after receiving or sending a byte, indicating that it is not yet ready to process more data.

Protoocol this the master device starts reading the data.

Multiplexers can be implemented with analog switches, which can tie one segment to another. In particular, is reserved for the SMBus host, which may be used by master-capable devices, is the “SMBus alert response address” which is polled by the host after an out-of-band interrupt, and is the default address which is initially used by devices capable of dynamic address assignment.

Each message is a read or a write. A bus means specification for the connections, protocol, formats, addresses and procedures that define the rules on the bus. All devices must at least partially support the highest speed used or they may spuriously detect their device address.

For all data bits including the Acknowledge bit, the master must generate clock pulses. Views Read Edit View history. For each clock pulse one bit of data is transferred. Nodes that are trying to transmit a logical one i. Bus capacitance also places a limit on the transfer speed, especially when current sources are not used to decrease signal rise times.


The complexity and the cost of connecting all those devices together must be kept to a minimum. AV colour space converters. This resulted in few upgrades to the standard-mode I2C specifications: Each message begins with a start symbol, and the transaction ends with a stop symbol.

After this procedure the data can be read from the slave device. The address and the data bytes are sent most significant bit first. One method for preventing latch-up is for a buffer to have carefully selected input and output levels such that the output level of its driver is higher than its ic threshold, preventing it from triggering itself. The device Philiips protocol requires a single transaction; slaves are forbidden from responding if they observe a stop symbol. If the two masters are sending a message to two different slaves, the one sending the lower portocol address always “wins” arbitration in the address stage.

After the Start condition the bus is considered as busy and can be used by another master only after a Stop condition is detected.

The communication is ended with the Stop condition which also signals that the I2C bus is free. Although in theory any pphilips pulse may be stretched, generally it is the intervals before or after the acknowledgment bit which are used. Arbitration A process to determine which of the masters on the bus can use it when more masters o2c to use the bus. For example, a buffer may have an input threshold of 0.

I2C Bus Specification

However, if the I2C communication is implemented in software, the bus signals must be sampled at least two times per clock cycle in order to detect necessary changes. Many other bus technologies used in similar applications, such as Serial Peripheral Interface Bus SPIrequire more pins and signals to connect multiple devices. This is exactly phikips I2C bus specifications define.