インテル® Agilex™ ハード・プロセッサー・システムのテクニカル・リファレンス・マニュアル

ID 683567
日付 1/19/2023
Public
ドキュメント目次

20.4.2. 動作

I2Cコントローラーは、ソフトウェアを介して次のいずれかのモードに制御することができます。

  • I2Cマスター専用。他のI2Cスレーブと通信します。
  • I2Cスレーブ専用。1つまたは複数のI2Cマスターと通信します。

マスターは、クロックの生成とデータ転送の制御を担います。スレーブは、マスターとの間でデータを送信または受信します。データの肯定応答は、データを受信しているデバイス (マスターまたはスレーブのいずれか) によって送信されます。前述のように、I2Cプロトコルでは、I2Cバスに複数のマスターを配置することも可能であり、調停手順を使用してバスの所有権を決定します。†

各スレーブには、システム設計者が決定する一意のアドレスがあります。マスターがスレーブと通信を行う際に、マスターはSTART/RESTART条件を送信します。また、その後に続くスレーブのアドレスと制御ビット (R/W) で、マスターがデータを送信するのか、スレーブからデータを受信するのかを決定します。スレーブはその後、アドレスの後に肯定応答 (ACK) パルスを送信します。†

マスター (マスター送信機) がスレーブ (スレーブ受信機) に書き込みを行っている場合、受信機は1バイトのデータを受信します。このトランザクションは、マスターがSTOP条件で送信を終了するまで続きます。マスター (マスター受信機) がスレーブから読み出しを行っている場合、スレーブ (スレーブ送信機) は1バイトのデータをマスターに送信し、マスターはACKパルスでトランザクションに肯定応答します。このトランザクションは、最後のバイトを受信後に、マスターがトランザクションを否定応答 (NACK) することで送信を終了するまで継続します。その後、マスターはSTOP条件を発行する、もしくはRESTART条件を発行して別のスレーブをアドレス指定します。†

図 101. I2Cバスでのデータ転送 †

I2Cコントローラーは同期シリアル・インターフェイスです。SDAラインは双方向信号であり、STOP、START、およびRESTART条件を除いて、SCLラインがLowの間にのみ変化します。出力ドライバーはオープンドレインまたはオープンコレクターであり、バスでワイヤードAND機能を実行します。バス上の最大デバイス数は、400pFの最大静電容量の仕様でのみ制限されます。データはバイトパッケージで送信されます。†