I2C(インター・インテグレーテッド・サーキット)

I2C (Inter-Integrated Circuit) 定義

I2C(Inter-Integrated Circuit)は、二線式インターフェースを使用して複数のデバイス間で通信を可能にする、広く使用されているシリアル通信プロトコルです。これは、低速の周辺機器をマザーボード、組み込みシステム、またはマイクロコントローラーに接続するのによく使われます。

I2Cはマスター/スレーブアーキテクチャを採用しており、1つのデバイスがマスターとして動作し通信を開始し、他のデバイスがスレーブとしてマスターの要求に応答します。このプロトコルはマルチマスター構成をサポートしており、複数のデバイスが同じバスに接続されて相互に通信することが可能です。

I2Cバスの2本の重要な線は次の通りです:

  • シリアルデータ (SDA): この双方向線はマスターとスレーブデバイス間でデータを伝送します。
  • シリアルクロック (SCL): この線はデバイス間のデータ転送を同期するために方形波パルスを伝送します。

I2C通信は異なる速度で行うことが可能で、一般的にはI2Cバス速度と呼ばれます。最も一般的なバス速度は標準モード(最大100 kbit/s)、高速モード(最大400 kbit/s)、および高速度モード(最大3.4 Mbit/s)です。

I2Cの動作原理

I2Cプロトコルは、マスターとスレーブデバイス間の通信を確立するために開始・停止メカニズムを使用します。開始条件はデータ転送の始まりを示し、停止条件は終了を示します。通信プロセスは次の手順で行われます:

  1. 開始条件: マスターデバイスは開始条件を送信して通信を開始します。SCL線を高くする間にSDA線を低く引きます。

  2. アドレッシング: 開始条件の後、マスターは通信したいスレーブデバイスの7ビットアドレスを、読み取りまたは書き込みビットと共に送信します。読み取りビットはマスターがスレーブからデータを読み取ることを示し、書き込みビットはマスターがスレーブにデータを書き込むことを示します。バス上の各スレーブデバイスには固有のアドレスがあります。

  3. 確認応答: 指定されたアドレスを持つスレーブがアドレスビットを受信すると、確認応答(ACK)ビットで応答します。ACKはスレーブデバイスによってSDA線がプルダウンされることです。

  4. データ転送: アドレッシングプロセスの後、マスターとスレーブは互いにデータを転送できます。データは8ビットセグメントで送信され、各セグメントの後に受信デバイスからのACKが続きます。このプロセスはマスターが通信の停止を決定するまで続きます。

  5. 停止条件: マスターデバイスはSCL線を高に保ちながらSDA線を高く引くことで停止条件を生成します。停止条件はスレーブに対して通信が終了したことを通知します。

データ転送中、SDA線が変化するのはSCL線が低のときのみということを留意することが重要です。これはマスターとスレーブデバイス間の同期された通信を保証します。

I2Cの利点

  • シンプルさ: I2Cはシンプルなアーキテクチャを持ち、実装が容易で、多様なアプリケーションに適しています。
  • 柔軟性: 複数デバイスを単一バスに接続でき、マルチマスターをサポートする能力により、I2Cは非常に柔軟で適応性があります。
  • 効率性: I2Cは共有バスシステムを利用しており、送信ラインと受信ラインを別々に設ける必要がなく、ハードウェアリソースの効率的な利用を可能にします。
  • 低速、低消費電力: I2Cは低速通信に最適化されており、低消費電力デバイスの接続に理想的です。他の通信プロトコルと比較して最小限の電力しか消費しません。

I2Cの限界

  • 速度制限: I2Cは低速アプリケーションに適していますが、その内在的な制限のため、高速通信には最適ではない場合があります。
  • 距離制限: I2Cバス内のデバイス間の最大距離は一般的に限られており、通常は数メートルです。この範囲を超える場合、バスエクステンダーやリピーターなどが必要になることがあります。
  • 複雑なアドレッシング: 7ビットアドレッシングスキームにより、デバイスに利用可能な固有アドレスの数が制限されています。同じバスに多くのデバイスを接続する際に制限となることがあります。

I2Cの用途

I2Cは、集積回路間での通信に広く使用されています。I2Cの一般的な用途には次のようなものがあります:

センサーインターフェース

I2Cは、温度センサー、湿度センサー、加速度計など、多様なセンサーと通信するためによく使用されます。これらのセンサーはそれぞれのパラメーターに関するデータを提供し、接続されたデバイスが受信した情報に基づいて判断を下せるようにします。

ディスプレイモジュール

LCDやOLEDディスプレイなど、多くのディスプレイモジュールはI2Cを使用してインターフェースできます。I2Cプロトコルは、ディスプレイモジュールと制御デバイス間の簡単な通信を可能にし、さまざまなシステムへのディスプレイの統合を簡素化します。

EEPROMプログラミング

I2Cは、電気的に消去可能でプログラム可能な読み取り専用メモリ(EEPROM)チップのプログラミングや読み取りによく使用されます。EEPROMは電源が切れてもデータを保持できる不揮発性メモリデバイスです。I2Cプロトコルは、制御デバイスとEEPROMとの間の効率的なデータ転送を容易にします。

リアルタイムクロック

I2Cは、各種デバイスにおける正確な時間管理機能を提供するために、リアルタイムクロックで使用されます。これらのクロックは正確な時間と日付情報を維持でき、データロギング、スケジューリング、時間敏感な操作などのアプリケーションで一般的に使用されます。

I2C(Inter-Integrated Circuit)は、二線式インターフェースを使用してデバイスが相互に通信することを可能にする、広く使用されているシリアル通信プロトコルです。単純なアーキテクチャを有し、マルチマスター構成をサポートすることにより、複数のデバイスを単一バスに接続するための柔軟性を提供します。I2Cは、センサーインターフェース、ディスプレイモジュール、EEPROMプログラミング、リアルタイムクロックなどのアプリケーションで一般的に使用されます。I2Cには限界はありますが、さまざまな電子システムにおいて低速通信のための一般的な選択肢であり続けています。

Get VPN Unlimited now!