JAJSSD9D April 2006 – February 2024 LM94
PRODUCTION DATA
SMBus 2.0 仕様では、さまざまな種類の読み出し / 書き込み動作について具体的な条件が定義されていますが、一般的に SMBus プロトコルは次のように動作します。
マスタは、シリアル クロック ライン SMBCLK が High のままで、シリアル データ ライン SMBDAT が High から Low に遷移することで、START 条件を確立してデータ転送を開始します。これは、データ ストリームが続いていることを示します。シリアル バスに接続されているすべてのスレーブ ペリフェラルが START 条件に応答し、次の 8 ビットを取り込みます。これは、7 ビットのスレーブ アドレス (MSB が最初) と R/W ビットで構成されており、データ転送の方向、つまりスレーブ デバイスとの間でデータを書き込むか読み出すか (0 = 書き込み、1 = 読み出し) が決定されます。
送信されたアドレスに対応するアドレスを持つペリフェラルは、アクノリッジ ビット (9 回目のクロック パルス) の前の Low 期間中にデータ ラインを Low に引き下げ、このクロック パルスの High 期間中に Low を保持して応答します。これで、選択したデバイスがデータの読み出しまたは書き込みを待機している間、バス上の他のすべてのデバイスはアイドルのままになります。R/W ビットが 0 の場合、マスタはスレーブ デバイスに書き込みを行います。R/W ビットが 1 の場合、マスタはスレーブ デバイスから読み出しを行います。
データはシリアル バス上で 9 つのクロック パルス、8 ビットのデータ、それに続くアクノリッジ ビットのシーケンスで送信されます。クロック信号が High のときの Low から High への遷移は、STOP 信号と解釈される可能性があるため、データ ラインでのデータ遷移はクロック信号の Low 期間中に発生して High 期間中は安定している必要があります。
書き込み動作の場合、スレーブ アドレスの後の最初のデータ バイトはコマンド バイトになります。これにより、次に何を想定するべきかがスレーブ デバイスに通知されます。これは、スレーブ デバイスにブロック書き込みを想定するように指示する命令である場合もあれば、後続データの書き込み先を指示する単なるレジスタ アドレスである場合もあります。
R/W ビットで定義されるように、データは一方向にしか流れないため、読み出し動作中にスレーブ デバイスにコマンドを送信することはできません。読み出し動作を実行する前に、書き込み動作を実行して、どのような読み出し動作を想定しているか、どのアドレスからデータを読み出すのか、またはその両方をスレーブに指示する必要があります。
すべてのデータ バイトの読み出しまたは書き込みが完了すると、STOP 条件が確立されます。書き込みモードでは、マスタは 10 回目のクロック パルス中にデータ ラインを High にして、STOP 条件をアサートできます。読み出しモードでは、マスタではなくスレーブがデータを駆動します。当該ビットでは、スレーブはアクノリッジを想定しており、マスタは Low を駆動していません。これを NO ACKNOWLEDGE (アクノリッジ (受信確認) なし)と呼びます。次に、マスタは 10 回目のクロック パルスの前の Low 期間中にデータ ラインを Low にし、10 回目のクロック パルス中に High にして、STOP 条件をアサートします。
繰り返し START は、書き込み動作と読み出し動作が連続している間にのみ行うことができます。