I2C、SPIとは?
I2CとSPIインターフェースは同期式のシリアル通信の規格で、非同期式シリアル通信(RS-232Cなどのシリアル通信)に比べて、高速で通信でき、また複数のスレーブを接続することもできます。ただし、伝送可能距離は短いため、通信は基板内や近くにある基板間といった近距離のものに限られます。
連載(CQ出版さんのサイトです)こちらにもう少し詳しく載せています。
→ http://www.eleki-jack.com/cat21/
I2Cバス
I2CバスとはSCL(シリアル・クロック)と、双方向のSDA(シリアル・データ)の2本の信号線(GNDは含まず)で通信する同期式のシリアル通信です。バスには複数のスレーブを接続でき、マスタは個別に決められたスレーブのアドレスを指定してスレーブを選択してからそのスレーブと通信します。ビットレートにより、標準モード、ファースト・モード、ハイスピード・モードがあります。
SPIバス
SPIバスとはSCK(シリアル・クロック)と単方向のSDI、SDOの3本の信号線(GNDは含まず)で通信する同期式のシリアル通信です。バスには複数のスレーブを接続できますが、それらを特定するためにマスタはSS(スレーブ・セレクト)信号でスレーブを選択しなければなりません。信号線が増えますが、データのフォーマットや原理が単純なため高速で通信できます。
MSSP
PICにはMSSP(またはSSP)と呼ばれるハードウェアを内蔵したものがあります。これは、I2CやSPIの通信をハードウェアで実現するためのインターフェース・モジュールです。16F877(A)や16F876(A)などにはMSSPが、16F88にはSSPが内蔵されています。
16F88はSSPを内蔵していますが、これにはI2Cマスタのハードウェアが内臓されていないため、ソフトウェア(ファームウェア)で機能を実現する必要があります(マスタモード時に割り込みの一部サポート機能あり)。