SPIとは?マイクロコントローラ(MCU)のシリアルインタフェースの種類と特徴

SPI (Serial Peripheral Interface)

UARTでは、送受信機器双方がタイマを用いて時間を計測し、通信タイミングを合わせていました。これに対して、SPIでは送受信双方が専用クロック信号に同期してデータの送受信を行うものです。チップセレクト信号も用いることが可能であり、本信号線を使用することにより、1対複数台の機器と送受信を行うこともできます。UARTに比べて不利な点は、通信を行うために必要な信号線が、多くなってしまうことです。


図1.1 MCUをマスタとし外部機器3台を接続した場合の回路例

図1.1 MCUをマスタとし外部機器3台を接続した場合の回路例

【送信(マスタ→スレーブ)】
マスタ側から同期クロックを出力するとともに、本同期クロックに合わせてデータを出力します。


図1.2 SPI送信フォーマット

図1.2 SPI送信フォーマット例

【受信 (マスタ→スレーブ)】
スレーブ側から送信されたデータを本同期クロックの立ち上がりエッジで受け取ります。


図1.3 SPI送信フォーマット

図1.3 SPI受信フォーマット例

なお、データの送信順序(最上位ビット、最下位ビットどちらを先に送るか)、使用するクロックの極性、データの送信/取り込みエッジなどは、予め決めて設定しておく必要があります。


次のコラム:I2Cとは?マイクロコントローラ(MCU)のシリアルインタフェースの種類と特長