Inter-Integrated Circuit, abbreviated as I²C or I2C is a Synchronous, Half-duplex, Multi-Master, Multi-Slave protocol invented by Philips Semiconductor (now NXP Semiconductors) in 1982. It’s good for Intra-Board Communication, Short-Distance and helps for Low-Speed peripheral to handshake and data transmission.
Coming to the technicality it needs to have Peripheral with TTL interface as it operates specifically two control lines popularly known by SCL(Serial Clock) line and SDA (Serial Data Access) line which are used by communicating peripherals to handshake and data Transfers. For easily control these lines by one another these TTL pins of respective devices need to be pulled-up to supply.
For Master device which controls clock line (SCL) to sync with the slave has two ways to 7 bit address, 128 (27) unique address and rare 10 bit address is uncommon. There are different speeds of communication used initially 100kbits/s to 400kbits/s and which has been extended to 1Mbits/s (Fm+) and 3.5Mbits (high speed).
When we have 7 bit addressing it can be assumed that we can communicate to 0 to 127 slaves by single master, but wait that’s where we are wrong; due to limitation of hardware type i.e. total bus capacitance maximum number of slaves that can be communicated is limited. Okay that is it for this time; next time we will start with actual distance, address and steps in handshaking controlled by master and responded by slaves.