1980年代にPhilipsが開発したI2Cは、エレクトロニクスで最も一般的なシリアル通信プロトコルの1つになっています。 I2Cは、コンポーネントが同じPCB上にあるか、ケーブルを介して接続されているかにかかわらず、電子部品またはICとIC間の通信を可能にします。 I2Cの主な機能は、単一の通信バス上に多数のコンポーネントを搭載し、わずか2本のワイヤで処理できるため、I2Cはシンプルさと低コストのスピードを必要とするアプリケーションに最適です。
I2Cプロトコル
I2Cは、2本の信号線のみを必要とするシリアル通信プロトコルです。これは、PCB上のチップ間の通信用に設計されています。 I2Cはもともと100kbps通信用に設計されていましたが、3.4Mbitまでの速度を達成するために長年に渡ってより高速なデータ伝送モードが開発されています。 I2Cプロトコルは公式な標準として確立されており、I2C実装と良好な下位互換性の間の良好な互換性を提供します。
I2C信号
I2Cプロトコルは、2つの双方向信号線のみを使用して、I2Cバス上のすべてのデバイスと通信します。使用される2つの信号は次のとおりです。
- シリアルデータライン(SDL)
- シリアルデータクロック(SDC)
I2Cが複数の周辺機器と通信するために2つの信号しか使用できない理由は、バスに沿った通信がどのように処理されるかにあります。各I2C通信は、残りの通信が通信を受信することが意図されている周辺機器のアドレスを呼び出す7ビット(または10ビット)アドレスで始まります。これにより、I2Cバス上の複数のデバイスが、システムの必要に応じてマスタデバイスの役割を果たすことができます。通信の衝突を防ぐために、I2Cプロトコルにはアービトレーションと衝突検出機能があり、バスに沿ったスムーズな通信が可能です。
利点と限界
通信プロトコルとして、I2Cには多くの利点があります。これは、多くの組込み設計アプリケーションにとって最適です。 I2Cには次の利点があります。
- I2Cは2本の信号線
- フレキシブルなデータ伝送速度
- バス上の各デバイスは独立してアドレス可能です
- デバイスは単純なマスタ/スレーブ関係
- I2Cは、アービトレーションと通信の衝突検出を提供することにより、複数のマスタ通信を処理できます
- SPIよりも遠距離通信
これらの利点をすべて備えているため、I2Cにはいくつかの制限があります。最も重要なI2Cの制限事項は次のとおりです。
- デバイスアドレス指定には7ビット(または10ビット)しか使用できないため、同じバス上のデバイスは同じアドレスを共有できます。いくつかのデバイスは、アドレスの最後の数ビットを構成することができるが、これは依然として同じバス上のデバイスの制限を課す。
- 限られた通信速度しか利用できず、多くの装置は高速での伝送をサポートしていません。遅いデバイスが部分的な送信を捕まえて動作上の不具合を引き起こさないように、バス上の各速度の部分的なサポートが必要です。
- I2Cバスの共通の性質は、バス上の単一のデバイスが動作を停止したときにバス全体がハングすることになります。バスへの電力の循環は、バスを再始動させ、適切な動作を回復させるために使用することができる。
- デバイスは通信速度を設定できるため、低速の動作デバイスは高速のデバイスの動作を遅らせる可能性があります。
- I2Cは、通信ラインのオープンドレイントポロジにより、他のシリアル通信バスよりも多くの電力を消費します。
- I2Cバスの限界は、通常、バス上のデバイスの数を約12個のデバイスに制限します。
アプリケーション
I2Cバスは、高速ではなく低コストで簡単な実装が必要なアプリケーションに最適です。たとえば、特定のメモリICの読み取り、DACとADCへのアクセス、センサーの読み取り、ユーザー主導のアクションの送信と制御、ハードウェアセンサーの読み取り、および複数のマイクロコントローラとの通信はI2C通信プロトコルの一般的な使用です。