29.4.4 Definition of I2C Terminology
There is language and terminology in the description of I2C communication that have definitions specific to I2C. That word usage is defined below and may be used in the rest of this document without explanation. This table was adapted from the Philips I2C specification.
Term | Description |
---|---|
Transmitter | The device that shifts data out onto the bus |
Receiver | The device that shifts data in from the bus |
Host | The device that initiates a transfer, generates clock signals and terminates a transfer |
Client | The device addressed by the host |
Multi-host | A bus with more than one device that can initiate data transfers |
Arbitration | Procedure to ensure that only one host at a time controls the bus. Winning arbitration ensures that the message is not corrupted. |
Synchronization | Procedure to synchronize the clocks of two or more devices on the bus |
Idle | No host is controlling the bus, and both SDA and SCL lines are high |
Active | Any time one or more host devices are controlling the bus |
Addressed Client | Client device that has received a matching address and is actively being clocked by a host |
Matching Address | Address byte that is clocked into a client that matches the value stored in SSPxADD |
Write Request | Client receives a matching address with R/W bit clear, and is ready to clock in data |
Read Request | Host sends an address byte with the R/W bit set, indicating that is ready to clock out data from Client. Any number of data bytes can be transferred until a Restart or Stop. |
Clock Stretching | When a device on the bus holds SCL low to stall communication |
Bus Collision | Any time the SDA line is sampled low by the module, drives the line and expects a high state |