I2C通信プロトコルの概要

I2Cは、実際のプロジェクトで最もよく使用する通信プロトコルであり、バスに接続されたデバイス間でデータを転送するために2本のワイヤー(SDAとSCL)のみを使用します。各デバイスは、一意のアドレス(MCU、外部センサー、LCDドライバー、メモリ、またはキーボードインターフェイス)によって識別され、デバイスの機能に応じて送信機または受信機として使用できます。LCDドライバは単なる受信機であり、メモリはデータを送受信できます。送信機と受信機に加えて、デバイスはデータを送信するときにマスターまたはスレーブとしても機能します。ホストは、データ送信を開始してクロック信号を生成するデバイスであり、その時点で、アドレス指定されるデバイスはすべてスレーブです。
ここに画像の説明を挿入します

SDAおよびSCL信号
SDAおよびSCLは双方向ラインであり、電流源またはプルアップ抵抗を介して順方向電圧に接続されます。バスがアイドル状態のとき、両方のラインがハイです。バスに接続されたデバイスの出力ステージは、ラインと機能を実行するためにOD(オープンドレイン)またはOC(オープンコレクタ)ゲートである必要があります。標準モードでは、I2Cバス伝送データは、高速モードで100kb / s、高速モードで400kb / s、高速モードで3.4Mb / sの速度に達することができます。クロック信号SCLは通常、ホストデバイスの責任です。
データの有効性
SDAラインのデータは、SCLがハイのクロックの間安定している必要があります。SCLラインのクロック信号がローの場合にのみ、データラインのハイ状態とロー状態を変更できます。データビット転送ごとにクロックを生成する必要があります。 。

開始条件と終了条件
すべての送信はSTART(S)によって開始され、STOP§によって終了されます。
START条件は、SCL
がハイのとき、SDAはハイからローになり、STOP条件は、SCLがハイのとき、SDAはローからハイになります。
ここに画像の説明を挿入します

開始条件と終了条件は常にホストによって生成されます。開始条件の後、バスはビジーです。終了条件の後、バスは一定時間アイドル状態になります。終了条件が生成されないが、繰り返し開始条件(Sr)の場合、バスはまだビジーです。この場合、S、Srの機能は同じです。バスに接続されたデバイスに必要なインターフェースハードウェアが含まれている場合、開始条件と終了条件を簡単に検出できます。ただし、そのようなインターフェースのないマイクロコントローラーには、各クロックにクロックがあります。 SDAラインは、レベル変更があるかどうかを識別するために、サイクル内で少なくとも2回サンプリングする必要があります。
データ送信のバイト形式は
、SDAラインに送信される1バイトあたり8ビットである必要があります。毎回送信されるバイト数は無制限です。各バイトデータは最上位ビット(MSB)から送信されます。スレーブが内部割り込みの処理など、新しい完全なデータを送受信する前にいくつかの機能を実行する必要がある場合は、クロックラインSCLをローに引き下げて、マスターを強制的に待機状態にすることができます。スレーブが新しい​​バイトデータ送信の準備ができると、クロックラインSCLが解放され、データ送信が続行されます。
ここに画像の説明を挿入します

ACKとNACKに
は、各バイトの後にACKがあります。ACK確認応答ビットを使用すると、受信者は、バイトが正常に受信され、次のバイトを送信する準備ができていることを送信機に通知できます。ホストは、確認応答ビットパルス
ACK応答信号は次のように定義されます。ACKの9番目のクロックパルスで、送信機はSDAラインを解放するため、受信機はSDAをローに引き下げることができるため、このクロックパルス。セットアップ時間とホールド時間もカウントする必要があります。
ここに画像の説明を挿入します

9番目のクロックパルス中にSDAがまだハイの場合、NACK信号として定義されます。このとき、ホストは送信を終了するための終了条件、または新しい送信を開始するための繰り返し開始条件を生成できます。5つのケースがあります。ここでNACKの生成につながります:
1。バスの現在の送信アドレスに受信機がない
ため、ACKで応答するデバイスはありません。2 受信機がいくつかのリアルタイム機能を処理しており、まだ通信する準備ができていないためホスト、受信者は送受信できません。3。
送信中、受信者は認識されないデータまたはコマンドを受信します
。4 送信中、受信者はそれ以上のデータバイトを受信できません
。5。マスター受信者はスレーブ送信者に通知する必要があります。送信の終わりの。

おすすめ

転載: blog.csdn.net/weixin_43704402/article/details/113756133