SMBus : 動作、違い、およびそのアプリケーション

問題を排除するために楽器を試してください





SMBus は 1995 年に Intel によって開始され、Philips の I²C シリアル バス プロトコルに基づいています。このバスは、クロック周波数が 10 kHz から 100 kHz の範囲で、データ、CLK、および命令を伝送します。 SMBus の主な目的は、安価で強力な方法で、マザーボード上のデバイスを制御してデータを取得できるようにすることです。 SMBus は通常、PC で温度制御、スマート バッテリ、およびその他の低帯域幅システム管理通信に使用されます。


このバスは、充電器、インテリジェント バッテリー、およびシステムの残りの部分と通信するマイクロコントローラー間の通信リンクを識別します。ただし、SMBus は、システム センサー、電源関連デバイス、通信デバイス、インベントリ EEPROM などのさまざまなデバイスを接続するためにも使用されます。この記事では、SMBus の概要 (アプリケーションの操作) について説明します。



SMBus プロトコルとは何ですか?

SMBus (システム管理バス) は 2 線式インターフェースで、マザーボード上のさまざまなデバイス間で低速のシステム管理通信に頻繁に使用されます。この種のバスは、 I2C プロトコル 基礎。そのため、I2C と SMBus の両方にいくつかの類似点があり、同様のバス上で相互運用することもできます。

このバスは、システムのワイヤとピン数を減らすために個別の制御ラインを使用するのではなく、特にシステムがデバイスとの間のメッセージを許可するための制御バスを提供する I2C 動作原理に基づいて動作します。



SMBus を備えたデバイスは、製造情報を提供し、システムにその部品またはモデル番号を通知し、さまざまな種類のエラーを報告し、制御パラメーターを許可し、その位置を再確認できます。

SMBus 仕様

SMBus の仕様は、単純にホスト、マスター、スレーブの 3 種類のデバイスを指します。

  • ホストは特定のマスターであり、システムの CPU へのメイン インターフェイスを提供します。
  • 命令を発行し、クロックを生成し、転送を終了するマスター デバイス。
  • スレーブ デバイスは、それ以外の場合はコマンドに反応します。

SMBus の仕組み

次の図に示すように、ホスト、マスター、スレーブ デバイスなど、SMBus 通信内で使用される 3 種類のデバイスがあります。このバスでは、ホスト デバイスは、システムの CPU への特定のマスター ワークライク インターフェイスです。ただし、常に必要というわけではありません。単純なバッテリ充電システムなどの一部のシステムは、ホストなしで使用できます。

マスター デバイスは通信を開始し、CLK を駆動して転送を停止します。デバイスは、単にマスターまたはマスター/スレーブとして選択できます。この場合、マスター デバイスまたはスレーブ デバイスのいずれかとして機能します。

  SMBus ダイアグラム
SMBus ダイアグラム

SMBus にも 1 つ以上のマスターがありますが、常にバスをマスターできるのは 1 つだけです。たとえば、2 つのデバイスが同時にバスをマスターする場合、SMBus は、SMBus デバイスのすべてのインターフェイスの SMBus へのワイヤード AND 接続に依存するアービトレーション メカニズムを提供します。

スレーブ デバイスはそのアドレスとコマンドに応答し、マスター デバイスとの間でデータを送受信できます。デバイスを完全にスレーブとして選択することができます。それ以外の場合、特定の例ではスレーブがマスターのように動作することが達成可能です。

I2C プロトコルと同様に、このバス上のすべてのスレーブには 7 ビットのスレーブ アドレスが割り当てられ、このアドレスに読み取りまたは書き込みビットが追加され、デバイスがバス上で送信されるメッセージの読み取りまたは書き込みを行っているかどうかが示されます。

デバイスは自身のアドレスを認識する必要があるため、デバイスがアドレスを識別すると、コマンドに反応します。

このバスのスレーブ アドレスが競合する場合、ARP またはアドレス解決プロトコルがサポートされます。ホストが同様のスレーブ アドレスを持つ 2 つのデバイスを認識すると、アドレス解決プロトコル プロシージャによって新しい一意のアドレスがスレーブに動的に割り当てられます。アドレス解決プロトコルにより、システムを再起動する必要なく、デバイスをすぐに使用できます。

このバスは、SMBDAT ワイヤと SMBCLK ワイヤのような通信に 2 ワイヤを使用します。SMBDAT ワイヤはシリアル データの転送に使用され、SMBCLK ワイヤはシリアル クロックのように機能します。上記の SMBus では、マスターは単に 10 ~ 100 kHz の範囲の SMBCLK を駆動しますが、どのラインでも SMBDAT を駆動できます。

これらの 2 つのワイヤは双方向であり、デバイスがホストからの注意を要求できるようにする SMBALERT などのアラート信号を含めるオプションを提供します。

このバスのデータ パケットには、スタート ビット、ACK または NACK ビット、8 ビットのデータ、およびストップ ビットが含まれます。 SMBus のデータ転送は、Send Byte、Quick Command、Read Word、Write Byte、Read Byte、Write Word、Process Call、Block Write、Block Read、Read Process Call &ブロック書き込みブロック。

このバスは、通信の信頼性を向上させるために、PEC (パケット エラー チェック) にも対応しています。したがって、これは、すべてのメッセージの最後にパケット エラー コードを含めることで実行できます。

機能

SMBus 機能 プロトコルとも呼ばれます。したがって、SMBus の主なプロトコルは、Quick Command、Send Byte、Receive Byte、Write Byte、Read Byte、Process Call、Block Write/Read Block Write-Block Read Process Call、SMBus Host Notify Protocol、Write-32 Protocol、Read-32 です。プロトコル、64 プロトコルの書き込み、および 64 プロトコルの読み取り。

SMBUS メッセージ形式

START 条件の後、マスタはスレーブ デバイスの 7 ビット アドレスを見つけ、バス上でアドレス指定する必要があります。したがって、アドレスの長さは 7 ビット長で、その後にデータ転送方向 (R/W) を示す 8 ビットが続きます。 ONE は READ (データ) の要求を指定し、ZERO は WRITE (送信) を指定します。

  メッセージ形式
メッセージ形式

データの転送は、常にマスターを介して生成される STOP 条件によって終了します。

各バイトには 8 ビットが含まれ、各バイトは SMBus で転送され、確認ビットが続く必要があります。バイトは MSB (最上位ビット) から順に送信されます。

一般的な SMBus デバイスには、データを簡単に読み書きできる一連のコマンドが含まれています。これらすべてのコマンドの長さは 1 バイトですが、引数と戻り値は長さの範囲内で変更できます。

コマンドを許可することは存在しません。それ以外の場合はサポートされていないため、エラー状態が発生する可能性があります。 SMBus 仕様に準拠して、MSB が最初に転送されます。

すべてのコマンドは、まずバス上にスタートコンディションを設定し、その後、データまたはコマンドを送信して送信を開始し、データまたはコマンドの送信中にスレーブデバイスからの受付けを待ち、バス上にストップコンディションを設定します。

SMBus プロトコルの開始条件と停止条件

メッセージの START & STOP 条件は、ハイからロー、ローからハイの 2 つの固有のバス条件によって定義されます。

  開始条件と停止条件
開始条件と停止条件

HIGH から LOW への SMBDAT ライン遷移では、SMBCLK が HIGH のとき、メッセージの開始条件を示します。

LOW から HIGH への SMBDAT ライン遷移では、SMBCLK が HIGH のとき、メッセージの STOP 条件を定義します。したがって、これら 2 つの条件は常にバスのマスターによって生成されます。 START 条件の後、バスはビジーになります。バスは、STOP 条件に続く一定時間後に再びアイドル状態になります。

SMBus ハードウェア要件

PC とその最も重要なハードウェアの一部との間で効率的かつシームレスな通信を可能にするための SMBus のハードウェア要件は、SMBDAT と SMBCLK、PSU (電源ユニット)、一連の IC、ドライバーとその冷却ファンなどの 2 本のワイヤです。 .基本的に、この SMBus コントローラーを使用すると、コンピューターは PSU の電源を入れたり、冷却ファンを制御したりするなどのコマンドを正常に処理および実行できます。

SMBus データ転送は、バイト送信、クイック コマンド、バイト書き込み、バイト読み取り、ワード書き込み、ワード読み取り、ブロック読み取り、プロセス呼び出し、ブロック書き込みなどのメッセージを転送する際に、さまざまなプロトコルまたは機能を使用します。各メッセージの末尾にパケット エラー コードを含めるだけで、通信の信頼性が向上します。

SMBus ハードウェアは、シリアル転送に使用されるタイミングとシフト制御を提供するだけです。そのため、SMBus のハードウェアは、タイミング制御、シリアル データ転送、スレーブ アドレスの認識など、さまざまな独立したアプリケーション タスクを実行します。

SMBus対I2C

SMBus と I2C の違い 以下が含まれます。

SMBus

2C

SMBus という用語は、「システム管理バス」の略です。 I2C という用語は、「Inter-Integrated Circuit」の略です。
SMBus は、エネルギーおよびシステム管理タスクで使用される 2 線式制御バスです。 I2C は、低帯域幅および短距離に使用されるオンボード通信プロトコルです。
システムは、個々の制御線をアクティブにするのではなく、このバスを使用してデバイスとの間でメッセージをルーティングできます。

I2C は通常、マイクロコントローラやセンサーなどの低速ベースの周辺機器を IC 内の近距離にあるプロセッサに接続するために使用されます。
最大 CLK 速度は 100 kHz です。 最大 CLK 速度は 400 kHz です。
最小 CLK 速度は 10 kHz です。 最小 CLK 速度はありません。
35 ミリ秒の低 CLK タイムアウト。 タイムアウトはありません。
論理レベルが固定されています。 その論理レベルは VDD に依存します。
予約済み、動的など、さまざまなアドレスタイプがあります。 ゼネラル コール スレーブ アドレス、7 ビット、10 ビットなど、さまざまなアドレス タイプがあります。
プロセス呼び出し、クイック コマンドなど、さまざまなバス プロトコルがあります。 バスプロトコルはありません。

SMBus対Pmbus

SMBus と Pmbus の違いは次のとおりです。

SMBus

PMバス

SMBus は軽量通信に使用される 2 線式シングルエンド バスです。 SMBus の拡張は Pmbus であり、主に電源管理デバイス間の通信に使用される低コストのプロトコルです。
このバスのスレーブ モードでは、10kbps、50 kbps、100 kbps、400 kbps などのデータ レート値を使用できます。 このバスのスレーブ モードでは、100 kbps や 400 kbps などのデータ レート値が許可されます。
このタイプのバスは I2C ハードウェアで動作しますが、システムを再起動せずにデバイスをホット スワップできるようにすることで、第 2 レベルのソフトウェアが含まれています。 このバスは、デバイスの一連のコマンドを定義するだけで SMBus を拡張します。これは特に、電力変換器を処理するために設計されており、測定された電流、電圧、温度などのデバイス属性を公開します。
SMBus は I2C のスーパーセットです PMBus は SMBus のスーパーセットです。
このバスには、ネットワーク レイヤーとデータ リンク レイヤーの両方が含まれます。 このバスには、トランスポート層と一連のコマンドが含まれています。

タイミング図

SMBus タイミング図 を以下に示します。

  SMBusのタイミング図
SMBusのタイミング図

TLOW.SEXT は、1 つのメッセージ内で CLK サイクルを START から STOP まで拡張するスレーブ デバイスです。そのため、マスタまたは別のスレーブ デバイスも CLK サイクルを延長して、組み合わされた CLK の低延長時間が TLOW.SEXT より長くなる可能性があります。したがって、このパラメータは、フルスピード マスタの単一ターゲットのように、スレーブ デバイスを介して単純に測定されます。

TLOW.MEXT は、メッセージの各バイトで CLK サイクルを拡張するマスター デバイスです。そのため、別のマスターまたはスレーブ デバイスも CLK を拡張して、指定されたバイトの TLOW.MEXT と比較して結合 CLK の Low 時間を長くする可能性があります。したがって、パラメーターは、マスターの単一のターゲットのようなフルスピードのスレーブデバイスを介して簡単に測定されます。

アプリケーション

SMBusのアプリケーション 以下のものが含まれます。

  • SMBus は、システム内の通信に使用されるシステム コンポーネント チップとして使用されます。より具体的には、バッテリーが電源関連のコンポーネントや CPU などのシステムの他のコンポーネントと通信できるようにします。
  • これは、軽量通信に使用されます。
  • このバスは、重要なパラメータを監視するために使用されます。 組み込みシステム & PC のマザーボードに。
  • これは、Texas Instruments の高度な残量ゲージの最も一般的なタイプの通信です。
  • これは、帯域幅ベースの少ないシステム管理通信で利用されます。

したがって、これはすべてについてです SMBus の概要 – アプリケーションの操作。これは、軽量通信に使用されるシンプルなシングルエンドの 2 線式バスです。このバスは、コンピューターのマザーボードで、オンまたはオフの指示のために電源と通信するために使用されます。 I2C プロトコルとは何ですか?