SPI通信とI²C通信について

電子工作をするために、SPI通信とI²C通信について調べたので、
その内容を書き残します.
センサやADコンバータとマイコンを紐づけるために必要な通信手段であり、電子工作をする上では避けて通れなさそうですね。

通信規格には、大きくシリアル通信パラレル通信と呼ばれる2種類の規格が存在します。SPIもI2Cも「シリアル通信」の1種です。
シリアル通信:
 1つのデータ伝送路を使い、1ビットずつデータを送信する方式
パラレル通信:
 複数の伝送路を使い、1度に複数のデータを送信する方式

パラレル通信は複数の伝送線が必要になるため、コストが高くなりやすく、また複数のデータの同期をとる難しさなどがあり、現在はシンプルなシリアル通信が主流のようです。

SPI(Serial Peripheral Interface)通信とは
・異なるデバイス間での通信をするための規格。
・提唱はモトローラ社
・信号線が4本と少ない&通信速度が速い!
  →単純で汎用性が高いことから広く使用
・ADコンバータもSPI通信が活用されている。

4本の信号線の役割
①MOSI(Master-Out , Slave-In)
   マスター→スレーブの方向にデータを送信する
②MISO(Master-In , Slave-Out)
 ①の逆で、スレーブ→マスターの方向にデータを送信する
③SCKL(Serial Clock)
  データ送信のタイミングの制御をする
④CE0/CE1
 マスターとスレーブを決定する信号を送信

ここでは、2つのデバイスの主従関係の表現のためにマスター(主人)とスレーブ(奴隷)という単語が使われている。
たとえば、ラズベリーパイとADコンバータという異なるデバイスをSPI通信でつないだ時にはラズベリーパイ側がマスター、ADコンバータがスレーブというように役割別に名前が付けられる。

補足:マスターとスレーブという表現について
2020年現在、マスターとスレーブという表現はロボット業界での専門用語として広く使われているが、奴隷を連想させる言葉で、人種差別を連想させる言葉であることから、この表現を廃止しようという流れがきている。
現に、2020年に行われた第38回日本ロボット学会学術講演会でもその用語について以下のようなメッセージがあった。

以下第38回日本ロボット学会学術講演会HPより引用
[[[ご存じの方もいらっしゃると思いますが,Twitterが,「人種差別問題のため,マスタースレーブ方式を言い換える」という報道が,先日ございました.
https://www.cnn.co.jp/tech/35156321.html
黒人男性のジョージ・フロイドさんが死亡した事件を受け,使用する用語を変更する動きが出てきているとのことです.ツイッターによれば, 「マスター」と「スレーブ」は「リーダー」と「フォロワー」,あるいは「プライマリー」と「レプリカ」といった用語に置き換える方針だそうです. (「ブラックリスト」は「ディナイリスト」になるそうです.)また,金融大手JPモルガン・チェースも,内部文書から「マスター」「スレーブ」 「ブラックリスト」といった用語を排除するそうです.
~中略~
今後,日本ロボット学会では,この用語の利用を継続するという可能性も含め, 国内外の関連学会や日本学術会議等と連携しながら方針を規定し,皆さんにお伝えする予定です.]]]
引用元URL:https://ac.rsj-web.org/2020/

このように、現状では意見が分かれているようです。
なので、今後以下のように表現が変わる可能性があります。
・マスター=リーダー=プライマリー
・スレーブ=フォロワー=レプリカ
他サイトで調べた際に、上記の用語になっていても混乱せずに、同じ用語として認識しましょう。

I²C(Inter-Integrated Circuit)通信とは
・I²C通信は「アイ・スクエア・シー通信」と読みます
・フィリップス社が開発
・電子機器制御用のシンプルな規格
2本の信号線で動作する
・通信速度は一般的にはSPIよりも遅い

なので、以下のような場合にはI²C通信の方が向いていると言えます。
・配線の数をできるだけ減らしたい
・通信速度はそこまで大事ではない

以上、SPI通信とI²C通信について調べたことでした。