SPI通信とは? SPI通信の特徴まとめ

2024/03/03

通信

t f B! P L

SPI通信について、使う側の立場から、ざっくりとまとめてみました。

SPI通信とは? SPI通信の特徴

マイコンとIC間のやりとりに、よく使われる同期式シリアル通信です。その特徴をまとめると、こんな感じです。

SPI通信の特徴
  • 「マスタ」、「スレーブ」がある
  • クロックはマスタが出す
  • クロック、データout、データin、GNDで接続
  • マスタがCS(チップセレクト)で通信する相手を選ぶ(基本的にマスタとスレーブの1対1の通信)
  • シフトレジスタのイメージで送受信
  • 送受信は同時に行われる
  • クロックとデータ送り出しの組み合わせ、MSBファーストかLSBファーストか、CSが正論理か負論理か、など色々種類がある
  • 波形の電圧レベルは、電源電圧("H")とGND("L")
  • データの論理は正論理(NRZ)

SPI通信の特徴(もう少し詳しく)

「マスタ」、「スレーブ」がある

「マスタ」と「スレーブ」があり、通信はマスタが主導して行います。

クロックはマスタが送出します。このクロックに合わせて通信が行わるので、送受信をいつやるか?等は全てマスタが管理することになります。

クロック、データout、データin、GND、(CS)で接続

SPI通信 接続

※CS(チップセレクト)も使う場合は必要です。

マスタがCS(チップセレクト)で通信する相手を選ぶ(基本的にマスタとスレーブの1対1の通信)

SPI通信 複数スレーブ

1つのマスタに対して、複数のスレーブを接続することができます。その場合は、マスタがCSによって通信したいスレーブを選択して、選択したスレーブと1:1通信をすることになります。そのため、CS信号は、接続するスレーブの数だけ(マスタに)必要となります。

また、CS信号はスレーブによって正論理の場合と、負論理の場合があるので注意が必要です。

シフトレジスタのイメージで送受信、送受信は同時に行われる

SPI通信は、クロックに合わせて1bitずつシフトさせて、マスタ側とスレーブ側のデータを交換します。シフトレジスタの動作イメージです。(というか、ほぼシフトレジスタそのもの)

1bit押し出された分、1bit受け取る。という動作になるので、送受信は同時に行われます。クロック8つで、マスタ側、スレーブ側のそれぞれ1byte分のデータを交換することになります。

SPI通信の動作

上図はLSBファーストの場合です。MSBファーストの場合は、bitが逆回りにシフトします。

クロックとデータ送り出しの組み合わせ、MSBファーストかLSBファーストか、CSが正論理か負論理か、など色々種類がある

クロックの極性(アイドル"L"or"H")と送受信データをいつシフトするか(立上りor立下り)の組み合わせで、SPI通信は大きく4つのモードに分かれます。

モードについてはこちら→(SPI通信は「モード」に注意! SPI通信は4種類ある!)

他にも、データをMSBから送信する(MSBファースト)か、LSBから送信する(LSBファースト)か?、CSは正論理か負論理か?など、使いたいICによって違いがあります。

波形の電圧レベルは、電源電圧("H")とGND("L")、データの論理は正論理(NRZ)

SPI通信波形レベル

SPI通信のデータは正論理(電圧Hが論理1、電圧Lが論理0)で、電圧レベルは電圧Hが電源電圧、電圧LがGNDとなっています。

データはクロックの立ち上がりor立ち下がりでサンプリングされます。そのため、送受信データは、論理が"1"の間はずっと電圧"H"になります。(毎回電圧"L"に戻ったりはしない)

当ブログはアフィリエイト広告を利用しています。

このブログを検索

最新記事

ブログ運営者:そのへんの誰か


このブログのURL

QooQ