COMPARE / 選定と使い分け

I2CとSPIの違い

I2CはSDAとSCLの2本にアドレスで複数のデバイスをつなぐ方式で、受信側が応答ビットを返します。SPIはクロック・データ線に加えてスレーブごとの選択線を使い、全二重で転送できますが、応答確認やエラー検出の仕組みはありません。必要なピン数と転送の確実さのどちらを重視するかで選び分けます。

HOW IT WORKS / 仕組みを図で見る

I²C:2本の信号線を共有

SDASCLVDD 制御側Controller周辺IC 1周辺IC 2Address AAddress B
アドレスで相手を選びます。標準的な双方向I²Cの例で、SDA・SCLはプルアップ抵抗を使います。

SPI:選択線で相手を指定

制御側周辺ICSCLKMOSIMISOCS
典型的な4線接続です。複数の周辺ICを個別に選ぶ構成では、CSを相手ごとに用意します。

電源・GND配線は省略しています。I²Cの縦配線は丸印のある交点だけ接続します。SPIの信号名・電圧・CPOL/CPHAは製品資料で照合してください。

参考資料・更新情報 (2件)

確認日: 2026-11-01

FOCUS / 気になる違いから読む

信号線

A / I2C

SDA(データ)とSCL(クロック)の2本

B / SPI

SS(スレーブ選択)、SCLK、MOSI、MISOの4本が典型。1本の双方向データ線を使う3線・半二重の変種もある

デバイスの選択

A / I2C

7ビットアドレス(10ビット拡張もある)。予約を除き112個のアドレスが使える

B / SPI

スレーブごとにSS線を持つ。デイジーチェーンならSS線は1本で済む。スレーブにアドレスは不要

電気的な構成

A / I2C

SDA・SCLともオープンドレイン(オープンコレクタ)でプルアップ抵抗が必要。バス容量は400 pFまで

B / SPI

I2Cより回路が少なく(プルアップ抵抗を含む)、消費電力が小さい傾向がある

通信速度

A / I2C

標準100 kbit/s、ファスト400 kbit/s、ファストプラス1 Mbit/s(550 pF上限)、ハイスピード3.4 Mbit/s、ウルトラファスト5 Mbit/s(単方向)

B / SPI

プロトコル上の最大クロックはなく、デバイスごとに許容周波数が決まる。例として新しい部品は約20 MHz程度

データの流れ

A / I2C

プロトコルのオーバーヘッド(アドレスやACK)があるため、実効のデータ転送量はピーク速度より低い

B / SPI

原典仕様は全二重。1クロックごとに両者が1ビットずつ交換する

応答確認

A / I2C

8ビットごとに受信側がACK(0)またはNACK(1)を返す

B / SPI

スレーブからのハードウェアのフロー制御・応答確認・エラー検出の仕組みはない

規格

A / I2C

仕様書に版があり、v7で用語が「コントローラ/ターゲット」に変更された

B / SPI

正式な規格はなく、適合性を検証できない。1987年のアプリケーションノートが事実上の定義になっている

距離

A / I2C

バス容量の制限から実用距離は数メートル程度

B / SPI

RS-232、RS-485、CANと比べると短距離に限られる

A / こんなときに検討

I2C

  • 使える信号ピンが少なく、2本で複数デバイスを接続したい場合
  • デバイスごとのチップセレクト線を引き回したくない場合
  • 受信側の応答(ACK)を通信の中で確認したい場合
B / こんなときに検討

SPI

  • 全二重で送受信を同時に行いたい場合
  • I2Cより回路が少なく、消費電力を抑えたい場合

観点ごとの違い

観点I2CSPI
信号線SDA(データ)とSCL(クロック)の2本SS(スレーブ選択)、SCLK、MOSI、MISOの4本が典型。1本の双方向データ線を使う3線・半二重の変種もある
デバイスの選択7ビットアドレス(10ビット拡張もある)。予約を除き112個のアドレスが使えるスレーブごとにSS線を持つ。デイジーチェーンならSS線は1本で済む。スレーブにアドレスは不要
電気的な構成SDA・SCLともオープンドレイン(オープンコレクタ)でプルアップ抵抗が必要。バス容量は400 pFまでI2Cより回路が少なく(プルアップ抵抗を含む)、消費電力が小さい傾向がある
通信速度標準100 kbit/s、ファスト400 kbit/s、ファストプラス1 Mbit/s(550 pF上限)、ハイスピード3.4 Mbit/s、ウルトラファスト5 Mbit/s(単方向)プロトコル上の最大クロックはなく、デバイスごとに許容周波数が決まる。例として新しい部品は約20 MHz程度
データの流れプロトコルのオーバーヘッド(アドレスやACK)があるため、実効のデータ転送量はピーク速度より低い原典仕様は全二重。1クロックごとに両者が1ビットずつ交換する
応答確認8ビットごとに受信側がACK(0)またはNACK(1)を返すスレーブからのハードウェアのフロー制御・応答確認・エラー検出の仕組みはない
規格仕様書に版があり、v7で用語が「コントローラ/ターゲット」に変更された正式な規格はなく、適合性を検証できない。1987年のアプリケーションノートが事実上の定義になっている
距離バス容量の制限から実用距離は数メートル程度RS-232、RS-485、CANと比べると短距離に限られる

置き換え・調達で確認すること

  • I2Cはバス上のデバイスをアドレスで区別するため、使う部品のアドレスが重ならないか確認する
  • SPIはクロック極性(CPOL)と位相(CPHA)の4モードがあり、マスタとデバイスのモードが一致するか確認する
  • SPIは仕様が統一されておらず用語や信号名が部品で異なることがあるため、データシートで信号の対応を確認する
  • I2Cはバス容量(400 pFなど)とプルアップ抵抗値、選ぶ速度モードの上限を確認する

関連する比較

参考資料・更新情報 (3件)

一般的な傾向をまとめたものです。個々の製品の値はデータシートで確認してください。誤りはこちらからお知らせください。