i2c versus spi
The SPI means Serial Pheripheals Interface and is sincronous serial with a posibity to program how to operate. The speed can be set from very low to very high (10Mbit/s). Usualy SPI is used for high speed transfer of data between two equipement. The stardard does not support addresing so if you connect more that one device you have to handle this in your sw conform how the hw was made. The hw uses 4 wires (1 - CLK, 2- DataIn, 3 -DataOut, 4 - CS).
The I2C (was develop by Philips) and means Interconect Integrated Circuit and is used to comunicate, on the same board, two or more devices. The protocol support addressing (7bit) and the user can check in the sw if a slave is present on the bus or not The ususaly speed is 100K and 400K and for fast devices 1M. The hw uses only 2 wires (1 - CLK, 2 - Data(bidirectional).
I hope this will clarify a little bit the differences between SPI and I2C.