TT Lab
はじめる
学ぶ 学習パス コース

ケーブルがこだまする

TDR:戻ってきた波から何がわかるか

TT Labで続きを見る

一言でいうと

TDRは、速い電圧変化を送り、戻ってきた変化の大きさと時刻を読む方法です。反射の符号は境界でのインピーダンスの変化を、往復の遅延は境界までの片道の距離を教えてくれます。ただし、観測できる反射がなければ、位置を見つけたとは言えません。

なぜ必要なのか

前のラボでは、ケーブルの端で反射した波と終端抵抗を比べました。今度は、ケーブルの途中で太さや構造が変わった状況を考えます。受信電圧の最大値だけでは、変化がどこで生じたのかがわかりにくいです。送信点に戻ってきた波がいつ現れたかを見れば、空間の情報を時間として読めます。

ただし、反射の時刻に伝搬速度を掛ければそのまま距離になるわけではありません。信号は境界まで行き、同じ道を戻ってきます。出発の遅延と有限の立ち上がり時間も、観測した時刻に含まれます。この授業は、こうした項目を1つずつ分けて見せる理想的な実験です。実際の機器の帯域幅・ケーブルの損失・複数の境界が混ざる状況まで解決する、製品向けの位置推定器ではありません。

どう動くのか

実験の回路は、1Vのパルス電源、50Ωのソース抵抗、50Ωの最初の線路、別のインピーダンスの2本目の線路と、その値に合わせた終端で構成されます。最初の線路の片道の時間は2/3/4ns、2本目の線路は3nsです。2本目の線路のZ2と終端は、ともに25/50/100Ωのいずれかで整合させます。終端でのさらなる反射をなくして、途中の境界1つの影響だけを残すためです。ソースも最初の線路と整合しているので、戻ってきた波は再び反射されません。

1V 펄스 ─ 50Ω 소스 ─ TX ─ [50Ω, 편도 TD] ─ 경계 ─ [Z2, 3ns] ─ Z2 종단
                         └──────── 경계로 출발 → ← TX로 귀환 ────────┘

最初にTXで見える進行波Aは0.5Vです。境界での反射係数はΓ=(Z2−50)/(Z2+50)で、送信点に戻ったあとの平坦部BはA+AΓです。したがって、観測した2つの平坦部からΓ=(B−A)/Aを求め、Z2=50(1+Γ)/(1−Γ)で逆算します。B/AそのものをΓと呼んだり、差に絶対値を付けたりすると、低いインピーダンスを高いインピーダンスと取り違えます。

2本目の線路 TXの最初の平坦部A TXの帰還後B Γ
25Ω 0.5V 約0.3333V −1/3
50Ω 0.5V 0.5V 0
100Ω 0.5V 約0.6667V +1/3

この表は指定した回路での解析値で、実物の測定値ではありません。ラボでは、ngspiceが実際に計算したTXの波形から2つの値を取り出します。入力パルスは1nsで立ち上がりを始め、立ち上がり時間は0.2nsまたは0.6nsです。出発の時刻はTXがA/2を上向きに通過するとき、帰還の時刻は3ns以降にTXが(A+B)/2を反射の方向に通過するときです。2つの時刻に同じ立ち上がり時間の半分が入っているので、差を取ると出発の遅延とその半分が打ち消されます。

たとえばTD=3ns、立ち上がり時間0.2nsなら、出発の半分は約1.1ns、帰還の半分は約7.1nsです。差は6nsで、片道の時間は3nsです。教育用に定めた伝搬速度0.2m/nsを使うと、距離は0.6mです。7.1nsをそのまま使ったり、往復の6nsにそのまま速度を掛けたりすると、位置を過大に見積もります。実際の伝搬速度はケーブルの構造と誘電体によって別に知る必要があり、この値がすべての線路の速度というわけではありません。

ngspiceの時間の列は秒です。分析器は、読み込むときに1回だけnsに変換し、それ以降の時刻の演算はすべてnsで行います。サンプルは等間隔だと仮定しません。しきい値を挟む2つのサンプルの間で、直線で補間します。立ち上がりはa.v < しきい値 ≤ b.v、立ち下がりはa.v > しきい値 ≥ b.vで検査し、補間した時刻にafter条件を適用します。afterが2つのサンプルの間にあっても、有効な交差を捨てません。すでに高い最初の点や平坦部は、新しい交差ではありません。この規約を、前のラボのfirst_crossing_nsと区別してください。

平坦部は、閉じた時間窓[2,3]nsと[12,14]nsのサンプルの中央値です。2つの窓には、それぞれ少なくとも2つのサンプルが必要です。これはこの固定された実験での窓の選び方で、すべてのTDR波形に適用できる普遍的なアルゴリズムではありません。データがなければ0で埋めずに失敗しなければなりません。波形全体が途切れていたり、時間が重複していたりしても、分析を続けません。

|Γ|≤1e−6なら、今回の教育用の規約では、反射が観測されなかったものとして扱います。帰還の時刻と距離はNone、JSONではnullです。モデルの設定にTDが書いてあっても、その数字は観測で見つけた結果ではありません。Γ=0からインピーダンスが50Ωだと推定することはできますが、同じインピーダンスの2本の線路がつながる位置は、この波形では区別できません。反射がないという言葉を、線路がないという意味にすり替えてはいけません。

現場での姿

分析報告書で最も危険な取り違えは、入力した位置をそのまま結果の欄に書くことです。望む結果と一致して見えますが、分析をしたことにはなりません。次のラボでは、実際の波形を保存したまま、設定のTDだけを変えて、このミスを検査します。観測した往復の時間はそのままで、consistentだけがfalseに変わる必要があります。インピーダンスの設定を逆の方向に変えた場合も区別します。

すべての設定は実行前に検証し、既存の出力フォルダーを上書きしません。それぞれの場合の設定、回路、エンジンのログ、全体の波形を残し、最後の報告書とつなげます。結果が正しく見える場合も、simulated=true、physical_certified=falseを維持します。回路モデルを解いたという事実と、実際のケーブルを計測・認証したという事実は別です。今回の一致の検査は、その理想的なモデルの大きさ・遅延を確認するだけで、回路ファイル全体の真正性を認証する機能でもありません。

次のラボですること

設定の検証、全体の波形のパース、平坦部の抽出、符号付きの反射とインピーダンスの逆算、両方向の交差の補間、単一の実行の分析、複数の条件の実行、CLIでの証拠の保存という、8つのステップを仕上げます。波形を生成するヘルパーは提供され、分析関数は自分で書きます。反射のない条件を含めた9つの条件を比べ、立ち上がり時間が変わっても往復の遅延が保たれるかを確認します。

根拠の文書: ngspice公式マニュアル6.1の無損失T素子、TI AN-905の反射係数。マニュアルの最新版と、ラボのイメージのngspice 42のバージョンは異なります。ここで使ったT素子・tran・wrdataのコマンドは、実際の42のエンジンで別に確認します。