SPI(Serial Peripheral Interface)はシリアル通信を行うためのインターフェースで、「エス・ピー・アイ」と呼ばれています。
SPI は CS、SDO、SDI、SCK ピンという 4 ピンを使ってデータを送受信します(3 ピン方式もあります)。
1対1でしか通信出来なかったUARTと異なり、SPI にはマスタ・スレーブ方式(※)で複数の機器と接続してデータをやりとり出来るという利点があります。
※ 近年「マスタ・スレーブ方式」という用語を違う用語で置き換えようという流れになっていて、SPIの場合はOpen Source Hardware Association という団体が「コントローラ・ペリフェラル方式」にしようと提案しています
またクロック信号で同期を取るので UART よりも高速にデータを送受信できます。
一方、使用する信号線が増えるので配線が複雑になります。
さて SPI は以下の様に接続します。
CS : チップ・セレクト・・・・通信対象の機器を選択(ロー・アクティブ)
SDO : シリアル・データアウト・・・・データを送信する
SDI : シリアル・データイン・・・・データを受信する
SCK : シリアル・クロック・・・・クロック信号
※1 マスタ機器がCSを使って通信対象の機器を選択する
※2 SDO から SDI に向かって矢印方向にデータが送られる
※3 マスタ機器が SCK を使ってクロック信号を送って同期を取る