I2CとSPIの違い
I2CはSDAとSCLの2本にアドレスで複数のデバイスをつなぐ方式で、受信側が応答ビットを返します。SPIはクロック・データ線に加えてスレーブごとの選択線を使い、全二重で転送できますが、応答確認やエラー検出の仕組みはありません。必要なピン数と転送の確実さのどちらを重視するかで選び分けます。
I²C:2本の信号線を共有
SPI:選択線で相手を指定
電源・GND配線は省略しています。I²Cの縦配線は丸印のある交点だけ接続します。SPIの信号名・電圧・CPOL/CPHAは製品資料で照合してください。
参考資料・更新情報 (2件)
確認日: 2026-11-01
信号線
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
- 使える信号ピンが少なく、2本で複数デバイスを接続したい場合
- デバイスごとのチップセレクト線を引き回したくない場合
- 受信側の応答(ACK)を通信の中で確認したい場合
SPI
- 全二重で送受信を同時に行いたい場合
- I2Cより回路が少なく、消費電力を抑えたい場合
観点ごとの違い
| 観点 | I2C | SPI |
|---|---|---|
| 信号線 | 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など)とプルアップ抵抗値、選ぶ速度モードの上限を確認する
関連する比較
一般的な傾向をまとめたものです。個々の製品の値はデータシートで確認してください。誤りはこちらからお知らせください。