Getting started with I2C
The specifications for both I2C and SMBus are quite complex. For more in-depth documentation on the differences between I2C and SMBus, refer to the following resources:
The I2C bus is a shared-media multi-drop architecture with only two lines: (1) serial data (SDA) and (2) serial clock (SCL)—not including the ground. The bus is in a quiescent state when no transactions are being sent or received and both the SDA and SCL lines are pulled high by resistors to 3.3V in the Pi (or 5V in other implementations). The master and slave devices only ever pull the data line low, which is described as a wired OR connection. The following diagram shows the general I2C architecture and its location on the Pi I/O connector. Pins 3 and 5 can also be used as GPIO ports but not while you have I2C enabled, so you lose two GPIO ports.
At the protocol level, I2C is similar in concept to the RS232 serial...