SPI
SPIとは
SPI(Serial Peripheral Interface)はクロックに同期させてデータの通信を行う同期式シリアル通信のひとつで、EEPROMやセンサとのデータ通信によく使われています。
SPIでは、クロック(SCLK)、データ入力(SIN)、データ出力(SOUT)およびチップセレクト(CS)の4本の信号線を用いて通信します。
そして、通信をする場合には、マスタとスレーブというように役割を分けます。クロックは必ずマスタから出力され、入力と出力はクロックに同期して行われます。
マスタ1つに対しスレーブは複数接続できますが、その場合、マスタ側には接続するスレーブの数だけCSの信号線を用意する必要があります。
マスタとスレーブの接続は以下のようになります。
SPI通信の概要
マスタからスレーブへデータを送信する時、マスタからスレーブにクロックを送信します。マスタはクロックとデータを同期させて送信します。スレーブはクロックと同期して受信します。
スレーブからマスタへデータを送信する時も、マスタからスレーブにクロックを送信します。スレーブはクロックとデータを同期させて送信します。マスタはクロックとデータを同期して受信します。
マスタとスレーブがデータを送受信する時、マスタからスレーブにクロックを送信します。マスタとスレーブはクロックと同期して送受信します。
これらの動作は、SPIの通信がデータの送信と受信を同時に行うため可能となります。
クロックに同期して、送信側のデータはシフトレジスタの最上位ビット(MSB)からSOUTを通して出力され、SINから入力されたデータはシフトレジスタの最下位ビット(LSB)に格納されていきます。最下位ビットまでのデータが転送されると完了となります。
このような構成なので、マスタとスレーブの通信をすると、データが入れ替わることになります。