SPI通信とはなんのか。(分かるためのリンク集)

  • 2022.08.12
  • IT
SPI通信とはなんのか。(分かるためのリンク集)

シリアル通信の中の1つのSPI通信について、なんのか、まとめます。

 

ラズパイでADコンバーターを使う際にSPI通信を使う必要があったので、自分の知識の整理のためにまとめました。

分かるための順番

まずは、このページを見て、ザクッと概要を掴んでみてください。

つぎに、この動画をみて見てください。(この動画神すぎる。)

説明サボり過ぎな気もするので、簡単に概要だけ下で説明します。

SPI通信について

SPI(Serial Peripheral Interface)通信は、看守と囚人が、0と1の2つの道具だけで情報を交換する、そんなイメージで僕は理解しました。(どんなシチュエーション?w)

登場する概念は、4つの線です。

登場人物は、看守(ラズパイ)と囚人たち(ADコンバーター)です。彼らが4つの線を駆使して、情報をやり取りします。

略称

名称

意味

MISO

Master-In Slave-Out

ラズパイ側は入力、センサー側は出力

MOSI

Master-Out Slave-In

ラズパイ側は出力、センサー側は入力

SCLK

Slave Clock

センサーへの入力クロック

CS

Chip Select

どのADコンバーターと通信するか。この信号 = Low時に通信開始CS = Highで通信停止

イメージとしてはこんな感じです。CS(チップセレクト)線は各ADコンバーターとつながっています。

まずは、CSチップセレクトの線で、どの囚人(ADコンバーター)と通信するかを、HIGHもしくはLOW(電圧を送るかか送らないか)で伝えます。

例えば、坊主の囚人と通信したいときは、常に2本の囚人のCSの線はHIGHにしておいて、坊主の囚人のCS線だけLOWにする、という感じです。

そして、情報を交換します。

その方法は、看守が情報交換の時間だ!と合図したら、看守も囚人もHIGHかLOWを送る、というものです。

より具体的に書くと、下記のようになります。

  1. 看守は、SCLK線(Slave Clock)で、情報交換の時間だ!と合図します。(合図の間HIGHにしておきます)。
  2. 看守は、MISO線(Master-In Slave-Out)で情報を囚人に送ります。(HIGHまたはLOWです)
  3. 囚人は、MOSI線(Master-Out Slave-Inで情報を看守に送ります。(HIGHまたはLOWです)
  4. 看守は、SCLK線(Slave Clock)で、情報交換の時間だ!と合図を止めます(LOWにします)。

これで、HIGHかLOWか、を看守と囚人は、情報を交換することができました!

あとは、これをひたすら繰り返して、HIGH=1, LOW=0の2進数の情報をやり取りしていきます。

まとめ

1周回って分かりにくくなった感じはありますが、、動画を見ていただくのが一番早いかと思いますw