1980年代にフィリップスによって開発された私2C(別名I2C)は、電子機器で最も一般的に使用されるシリアル通信プロトコルの1つになりました。 I2Cは、電子部品間または統合された通信を容易にします 回路、コンポーネントが同じ上にあるかどうか PCB またはケーブルで接続されています。

I2Cプロトコルのフェーズ2
Mwnuk / CC BY 2.0 /ウィキメディアコモンズ

I2Cプロトコルとは何ですか?

I2Cは、2本の信号線のみを必要とするシリアル通信プロトコルです。 プリント回路基板(PCB)上のチップ間の通信用に設計されました。 I2Cはもともと100用に設計されました Kbps コミュニケーション。 ただし、最大3.4 Mbitの速度を達成するために、より高速なデータ伝送モードが長年にわたって開発されてきました。

I2Cの主な機能は、1つのコンポーネントに多くのコンポーネントを搭載できることです。 通信バス ワイヤーが2本しかないため、I2Cは単純なアプリケーションに最適です。 I2Cプロトコルは公式標準として確立されており、I2C実装間の下位互換性を可能にします。

I2C信号

I2Cプロトコルは、2本の双方向信号線を使用して通信バス上のデバイスと通信します。 使用される2つの信号は次のとおりです。

  • シリアルデータライン(SDL)
  • シリアルデータクロック(SDC)

I2Cが複数の周辺機器と通信するために2つの信号しか使用できない理由は、バスに沿った通信の処理方法にあります。 各I2C通信は7-で始まります少し ペリフェラルのアドレスを呼び出す(または10ビット)アドレス。

これにより、I2Cバス上の複数のデバイスが、システムのニーズに応じてプライマリデバイスの役割を果たすことができます。 通信の衝突を防ぐために、I2Cプロトコルには、バスに沿ったスムーズな通信を可能にするアービトレーションおよび衝突検出機能が含まれています。

I2Cの利点

通信プロトコルとして、I2Cには次の利点があります。

  • 柔軟なデータ伝送速度。
  • より長距離通信 SPI.
  • バス上の各デバイスは個別にアドレス指定できます。
  • デバイスには、単純なプライマリ/セカンダリの関係があります。
  • 必要な信号線は2本だけです。
  • アービトレーションと通信衝突検出を提供することにより、複数のプライマリ通信を処理できます。

I2Cの制限

これらすべての利点があるため、I2Cにはいくつかの制限があり、設計が必要になる場合があります。 最も重要なI2Cの制限は次のとおりです。

  • デバイスのアドレス指定に使用できるのは7ビット(または10ビット)のみであるため、同じバス上のデバイスは同じアドレスを共有できます。 一部のデバイスはアドレスの最後の数ビットを構成できますが、これにより同じバス上のデバイスに制限が課せられます。
  • 利用できる通信速度は限られており、多くのデバイスは高速での送信をサポートしていません。 低速のデバイスが部分的な送信をキャッチして動作上の不具合が発生するのを防ぐために、バスの各速度を部分的にサポートする必要があります。
  • I2Cバスの共通の性質により、バス上の1つのデバイスが動作を停止すると、バス全体がハングする可能性があります。 バスへの電源を入れ直すと、正常な動作を回復できます。
  • デバイスは独自の通信速度を設定するため、動作速度の遅いデバイスは、高速デバイスの動作を遅らせる可能性があります。
  • I2Cは、通信ラインのオープンドレイントポロジにより、他のシリアル通信バスよりも多くの電力を消費します。
  • I2Cバスの制限により、通常、バス上のデバイスの数は約12に制限されます。

I2Cアプリケーション

I2Cは、高速ではなく低コストで簡単な実装を必要とするアプリケーションに最適なオプションです。 たとえば、I2C通信プロトコルの一般的な使用法は次のとおりです。

  • 特定のメモリICの読み取り。
  • DACおよびADCへのアクセス。
  • ユーザー主導のアクションの送信と制御。
  • ハードウェアセンサーの読み取り。
  • 複数のマイクロコントローラーとの通信。