アプリケーションノート 3829

複数スレーブを備える1-Wire®ネットワークの回復時間の算出


要約: 1-Wireネットワークに共通する設計の検討事項は、寄生給電される1-Wireスレーブデバイスに十分な電源を保証する適切な回復時間を算出することです。このドキュメントは1-Wireプロトコルを分析し、電力依存イベントを識別して、様々な数の1-Wireスレーブ、各動作電圧および動作温度に必要な回復時間を計算するアルゴリズムを提供します。

はじめに

このドキュメントは、図1に示すような、抵抗プルアップを備える1個の1-Wireドライバ(マスタ)と、1個または複数の1-Wireスレーブデバイスから構成される標準的な1-Wireネットワークに適用されます。大部分の1-Wireデバイスは寄生給電され、1-Wireラインがパワーラインおよび双方向データラインとして機能していることを意味します。1-Wireプロトコルは通信がない場合はアイドル時間になるように設計されています。つまり、このため、電力をラインを通じて1-Wireスレーブデバイスに伝送することができます。1-Wireスレーブが利用可能な電力量を制限する重要なパラメータは、回復時間、tRECです。製品データシートと読取り/書込み波形で規定されるtREC値は、単一スレーブの1-Wireネットワークでのみ有効です。
図1. 標準的な1-Wireネットワークの回路図
図1. 標準的な1-Wireネットワークの回路図
図2. 初期化手順の図:リセットパルスおよびプレゼンスパルス
図2. 初期化手順の図:リセットパルスおよびプレゼンスパルス
図2は、最新の1-Wireデータシートからコピーされたリセット/プレゼンス検出サイクルを示しています。回復時間はプレゼンスパルスの後に始まり、次のタイムスロットの立下りエッジで終了します。通常、tRSTLおよびtRSTHは、同じ持続時間になるように選択されます。標準速度では、tRSTLは480µsです。ワーストケース状態では、tPDH + tPDLは300µsであり、tRECは180µsです。オーバドライブ速度では、これらの数値は10分の1になり、tRECは18µsに短縮されます。tRECの最小データシート仕様に比べると、寄生電源(スレーブ内のコンデンサ)が再充電するのに十分な時間が残っています。このため、tRSTLがデータシートの最大制限値を超えず、寄生電源がtRSTL開始前に十分に充電されている限りは、リセット/プレゼンス検出サイクルは電力の検討において重要ではありません。オーバドライブ速度では、リセットパルス前の最小値の2.5倍の拡大回復時間で、この追加充電が行われます。標準速度では、リセットパルス前の拡大回復時間は任意選択です。
下記の読取り/書込みタイミング図は、以下の3つの波形から構成されます。すなわち、ロジック1を書き込むWrite 1タイムスロット、ロジック0を書き込むWrite 0タイムスロット、および1-Wireスレーブからビットを読み取るRead Dataタイムスロットです。図3で容易に確認することができるように、Write 1タイムスロットは電力供給には重要ではありません。電力供給のウィンドウのtSLOT-tW1Lは、標準速度では50µs以上で、オーバドライブでは6µsです。ただし、オーバドライブ時の6µsは、tRECの最小仕様をわずかに上回ります。特に連続して複数のゼロがある場合は、Write 0タイムスロットは、回復時間に比べてロー時間が長いため、電力供給にとって最も重要です。データシートのtREC仕様は、2.8Vへの2.2kΩプルアップ抵抗を備える1-Wireライン上の単一スレーブに適用されることを把握する必要があります。また、ゼロを読み取る際には、Read Dataタイムスロットも電力供給にとって重要です。ただし、スレーブは通常、許容可能な60µs (標準速度)以下または6µs (オーバドライブ)以下の間で1-Wireラインをローにプルするため、比較的良好です。
このアプリケーションノートでは、複数スレーブを備える1-Wireネットワークで十分な電源を確保するための、Write 0タイムスロットにおけるtRECと、派生値としてのtSLOTの設定方法を説明します。Read DataタイムスロットとWrite 1タイムスロットにも適用される場合は、得られたtSLOTによって、任意の1-Wireネットワークにおける信頼性の高い通信の最大データレートが定義されます。

Write 1タイムスロット

Write 0タイムスロット

Read Dataタイムスロット

図3. 読取り/書込みタイミング図
図3. 読取り/書込みタイミング図

影響パラメータ

電力供給に対する回復時間を分析する際には、複数の1次および2次パラメータを検討します。これらのパラメータは、以下の通りです。
1次パラメータ
スレーブの 電力需要が消費スレーブの数とともに増大します。
プルアップ電圧 電圧が上昇すると、より多くのエネルギーを供給することができます。
オーバドライブ時の通信速度 Write 0タイムスロットのデューティサイクルが増大します。
1-Wireドライバのタイプ 「インテリジェント」ドライバはより多くのエネルギーを供給することができます。
2次パラメータ
動作温度 温度が低い1-Wireデバイスにはより多くのエネルギーが必要です。
ケーブル ケーブルのキャパシタンスも充電する必要があります。
1-Wireデバイスタイプ 一部のデバイスは他のデバイスに比べ、若干多いまたは若干少ないエネルギーを必要とします。
2.8Vへの2.2kΩプルアップ抵抗で構成されるドライバ、ワーストケースの温度、バス上の単一の1-Wireスレーブ、およびわずかなケーブルキャパシタンスというデータシート条件で開始します。このドキュメントは1-Wireスレーブのをメインパラメータとして使用し、様々な動作電圧、動作速度、および動作温度に対する答えを提供します。1-Wireドライバとスレーブ間のケーブルが重要になる場合は、ケーブルを15メートル長ごとに追加スレーブとして計算で表すことができます。
ここに示される結果は、ROM機能コマンド、汎用メモリ読取り機能、およびSRAM書込み機能に対して標準的な1-Wireスレーブに適用されます。EEPROMへの温度変換およびSHA-1計算の書込みには、強力プルアップなどの特別なデバイス固有の電力供給要件がありますが、ここで紹介する方式の有効性には影響を与えません。ROM機能およびメモリ読取りに関する限り、複数の1-Wire EPROMデバイスを標準と見なすこともできますが、プログラミング用には単一のEPROMデバイスのみがネットワーク上で許可されます。

結果マトリックス

回復時間を以下の一次方程式を使って計算することができます。tREC = a * N + b。Nは、ネットワーク上の寄生給電スレーブデバイスの数であり、すべてのスレーブは1-Wireラインとグランドリファレンスの間に並列接続されていると仮定します。VCC端子を通じて電力を得る1-Wireデバイスは1-Wireラインにあまり負荷をかけません。これらのデバイスを1個のデバイスの10分の1としてカウントする必要があります。スロープ「a」は、温度、動作(プルアップ)電圧、および1-Wire速度に応じて変化します。このドキュメントの場合は、オフセット「b」を速度のみに応じて変化させるだけで十分です。表1は、スロープとオフセットを挿入した式を示しています。数値は手動の曲線の当てはめによって生成されます。その結果は、科学的モデルに基づいた反復プロセスを通じて得られた結果と完全一致しています。N = 1の場合は、結果マトリックスは、デバイスデータシートで公表されている数値と全く同一の数値を生成しません。この値の相違は曲線の当てはめの副次作用であり、仕様との不一致と見なすべきではありません。
表1. 結果マトリックス
Operating Voltage (V) Temperature (°C) Standard Speed (µs) Overdrive Speed (µs)
4.5 and higher -40 tREC = 2.12 × N + 1.0 tREC = 1.43 × N + 0.5
-5 tREC = 1.99 × N + 1.0 tREC = 1.37 × N + 0.5
+25 tREC = 1.83 × N + 1.0 tREC = 1.30 × N + 0.5
+85 tREC = 1.54 × N + 1.0 tREC = 1.18 × N + 0.5
2.8 (minimum) -40 tREC = 3.52 × N + 1.0 tREC = 1.82 × N + 0.5
-5 tREC = 3.30 × N + 1.0 tREC = 1.80 × N + 0.5
+25 tREC = 3.17 × N + 1.0 tREC = 1.74 × N + 0.5
+85 tREC = 2.70 × N + 1.0 tREC = 1.63 × N + 0.5
回復時間は、低動作電圧と低温の場合に最も長くなります。アプリケーションが超低温での動作を求める場合は、-40℃のエントリを用いる必要があります。室温環境の場合は、+25℃のエントリの使用が許容可能です。このエントリではより高温での安全動作も可能です。+85℃のエントリは、その温度でのみ適用される結果をもたらします。このエントリは、他の温度の設計値としてではなく、基準と見なす必要があります。
回復時間は、高動作電圧の場合に最短になります。4.5Vのエントリは、4.5V以上のプルアップ電圧に適用されます。また、2.8Vエントリに基づく回復時間はこれより高電圧でも機能しますが、データレートを必要以上に遅くします。2.8V~4.5Vの動作電圧Vxの場合は、新しいスロープ値を以下の線形補間を通じて取得することができます。Slope@Vx = Slope@2.8V - (Vx - 2.8V)/1.7V * (Slope@2.8V - Slope@4.5V)

アプリケーションには、標準速度でtW0LMIN = 60µs、オーバドライブで6µsの10個の1-Wireデバイス(N = 10)のネットワークが必要と仮定します(これらの値はデバイスのデータシートから導かれます。デバイスタイプが異なる場合は、最大値のtW0LMINを使用してください)。ネットワークは、0℃~70℃で動作するように想定されています。動作電圧は未定です。この温度範囲に適用可能なエントリは-5℃です。これが最低動作温度を下回る最近値であるためです。これより高温のスロープは-5℃のエントリのスロープを下回るため、その結果は-5℃を上回る全温度に有効です。表2は、この例のtREC結果とこの回復時間の最大データレートを示しています。
標準速度時には、このデータレートは、単一スレーブネットワークのリファレンス15.3kbpsの約70%に低減します。オーバドライブ時には、データレートはリファレンス125kbpsの40%以下になります。表2のデータレートがアプリケーションで許容可能な場合は、動作電圧の選択は重要ではありません。ただし、約5Vの動作電圧を利用可能な場合は、ノイズ耐性が向上するためこの電圧を選択する必要があります。
表2. 例の結果(N = 10)
Operating Voltage (V) Standard Speed Overdrive Speed
4.5 and higher tREC = (19.9 + 1)µs
= 20.9µs
data rate = 1/(60µs + 20.9µs)
= 12.3kbps
tREC = (13.7 + 0.5)µs
= 14.2µs
data rate = 1/(6µs + 14.2µs)
= 49.5kbps
2.8 (minimum) tREC = (33.0 + 1)µs
= 34µs
data rate = 1/(60µs + 34µs)
= 10.6kbps
tREC = (18.0 + 0.5µs)
= 18.5µs
data rate = 1/(6µs + 18.5µs)
= 40.8kbps

実現可能な改善

この表から得られた回復時間が許容不可の場合は、データレートを向上する方法が複数あります。
  1. プルアップ抵抗を2.2kΩから1kΩなどに下げてください。
    抵抗を低くすると、1-Wireネットワークの再充電流が倍増し、その結果、回復時間が50%短縮されます。この方式の場合、Read Dataタイムスロットの間に1-Wireラインをローにプルするときに、各スレーブデバイスが増加した電流、VPUP/RPUPに対応可能かどうか検証することが重要です。
  2. ネットワークトポロジを変更してください。
    1つのネットワークの代わりに、2つ以上の小規模なネットワークを採用するか、または1-WireカプラのDS2409を使用して、一部のスレーブデバイスをネットワークのアクティブパーツから切り離してください。
  3. アクティブな1-Wireドライバの使用を検討してください。
    アクティブドライバはトランジスタを使って、プルアップ抵抗を一時的にバイパスします。これによって、1-Wireネットワークの再充を高速化し、その結果、必要な回復時間が短縮されます。

アクティブな1-Wireドライバ

ダラスセミコンダクタの製品構成は、DS2480B、DS2490、およびDS2482の3種類のアクティブ1-Wireドライバで構成されます。
DS2480BおよびDS2490は同一の5Vの1-Wireドライバを備えていますが、ホストコンピュータとのインタフェースは異なります。両方のチップでは、1-Wireライン上の電圧が特定のスレッショルドを超えると、回復時間が終了します。DS2480Bの場合は、1-Wireアクティビティ(1バイトの書込みなど)が終了するとすぐに、ホストはUARTで応答バイトを受信します。USB対応のDS2490の場合は、ホストは1-Wireアクティビティの終了を検出するためにポーリングする必要があります。
DS2482は、I²Cインタフェースを通じてホストと通信します。このデバイスは、1-Wire側において3.3Vおよび5Vで動作することができます。DS2482の場合は、1-Wireタイムスロットが終了すると、回復時間は終了します。イネーブルされている場合は、固定持続時間の間、アクティブプルアップが、1-Wireライン上で立上りエッジに追加エネルギーを供給します。DS2482は純粋な抵抗プルアップに比べ強力ですが、DS2480BまたはDS2490ほど強力ではありません。DS2482の8チャネルバージョンによって、1-Wireデバイス数を各ライン上で減らして、大規模アプリケーションを小規模なネットワークに分割するのが容易になります。DS2490と同様に、DS2482のホストは1-Wireアクティビティの終了を検出するためにドライバチップをポーリングする必要があります。
インテリジェント1-Wireドライバとして動作するマイクロプロセッサによって、特に物理的に大規模な1-Wireネットワークを駆動するための最高のフレキシビリティが得られます。こうした回路の詳細とその求められるソフトウェア検討事項については、ダラスセミコンダクタのアプリケーションノート244を参照してください。マイクロコントローラの特性に応じて、こうしたドライバは3.3Vまたは5Vで動作することもできます。

結論

複数スレーブを備える1-Wireアプリケーションの必要な回復時間を計算するのは、簡単明瞭な作業です。5V環境が通常、1-Wireネットワークの推奨される選択環境です。大部分のアプリケーションにとって、抵抗プルアップを備える1-Wireドライバで十分です。大規模ネットワークの場合は、アクティブプルアップを備えるドライバが必要な場合もあります。
参考資料:
  1. DS2480Bのデータシート:負荷センサ付き、シリアル1-Wireラインドライバ
  2. DS2490のデータシート:USBから1-Wireへの変換チップ。DS2490は新規設計用に推奨されていません。
  3. DS2482-800のデータシート:8チャネル1-Wireマスタ
  4. DS2482-100のデータシート:シングルチャネル1-Wireマスタ
  5. リファレンスデザイン244:高度1-Wireネットワークドライバ
  6. DS2409のデータシート:MicroLANカプラ。DS2409は新規設計用に推奨されていません。
  7. アプリケーションノート192:DS2480Bシリアル1-Wireラインドライバの使用
  8. アプリケーションノート4104:DS2480Bの1-Wire®タイミングの理解と設定
  9. アプリケーションノート3684:DS2482 I²C 1-Wireマスタの使用方法
  10. プリケーションノート126:ソフトウェアを介した1-Wire通信