The Serial Peripheral Interface or SPI bus is a synchronous serial data link, a de facto standard, named by Motorola, which operates in full duplex mode. It is used for short distance, single-master communications.
Working
The I2C bus has become one of the most important microcontroller subsystems used to connect multiple IC devices with a microcontroller. It is unique in its ability to maximize hardware efficiency and circuit simplicity. The I2C bus uses only bi-directional data lines to communicate with the microcontroller. This bus is called Inter IC or I2C bus. All compatible I2C-bus devices incorporate an on-chip interface that allows them to communicate directly with each other via I2C-bus. The I2C protocol specification can support up to 128 devices connected to the same bus. Today many I2C IC devices available on the market such as EEPROM series, I / O Expander, RTC, ADC, DAC, Sensors, etc.
The I2C protocol uses the master and slave method, the master which in most cases is a microcontroller while the slave can be any I2C device such as serial EEPROM, RTC, etc. The I2C protocol uses only two signals: clock and data. The Clock is referred to as SCL (Serial Clock) while the data is referred to as SDA (Serial Data).