TDR:返回的波能告诉我们什么
一句话总结
TDR 是发送快速的电压变化,并读取返回变化的大小和时刻的方法。反射的符号说明边界处阻抗的变化,往返延迟则说明到边界的单程距离。但是,如果没有可观测的反射,就不能说找到了位置。
为什么需要它
在前面的实验中,比较了从电缆末端反射回来的波与端接电阻。现在来考虑电缆中间的粗细或结构发生变化的情形。仅凭接收电压的最大值,很难知道变化出现在哪里。看从发送点返回的波何时出现,就能把空间的信息读成时间。
不过,把反射时间乘以传播速度,并不能直接得到距离。信号去往边界,再沿同一条路返回。出发延迟和有限的上升时间也包含在观测时刻中。本课程是把这些项目逐一分离展示的理想实验。它并不是能解决真实设备的带宽、电缆损耗、多个边界混杂等情形的产品级位置估计器。
工作原理
实验电路由 1V 脉冲电源、50Ω 源电阻、50Ω 的第一段线路、阻抗不同的第二段线路,以及与其阻抗值相匹配的端接构成。第一段线路的单程时间是 2/3/4ns,第二段线路是 3ns。第二段线路 Z2 与端接一起,匹配为 25/50/100Ω 中的一个。这是为了消除末端端接的额外反射,只留下中间一个边界的影响。源也与第一段线路匹配,不会把返回的波再次反射。
1V 펄스 ─ 50Ω 소스 ─ TX ─ [50Ω, 편도 TD] ─ 경계 ─ [Z2, 3ns] ─ Z2 종단
└──────── 경계로 출발 → ← TX로 귀환 ────────┘
最初在 TX 处看到的前进波 A 是 0.5V。边界处的反射系数 Γ=(Z2−50)/(Z2+50),返回发送点之后的平台 B 是 A+AΓ。因此,用观测到的两个平台求出 Γ=(B−A)/A,再用 Z2=50(1+Γ)/(1−Γ) 反推。如果把 B/A 本身称作 Γ,或者对差值取绝对值,就会把低阻抗误认为高阻抗。
| 第二段线路 | 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 波形中提取这两个值。输入脉冲在 1ns 开始上升,上升时间为 0.2ns 或 0.6ns。出发时刻是 TX 向上经过 A/2 的时刻,返回时刻是 3ns 之后 TX 沿反射方向经过 (A+B)/2 的时刻。两个时刻中都含有上升时间的一半,所以取差之后,出发延迟及其一半就相互抵消了。
例如,TD=3ns、上升时间 0.2ns,则出发的一半约为 1.1ns,返回的一半约为 7.1ns。差值是 6ns,单程时间是 3ns。使用作为教学设定的传播速度 0.2m/ns,则距离是 0.6m。如果直接使用 7.1ns,或者把往返的 6ns 直接乘以速度,就会高估位置。真实的传播速度,必须根据电缆结构和电介质另行获知,并不是说这个值适用于所有线路的速度。
ngspice 的时间列以秒为单位。分析器只在读取时转换为 ns 一次,之后的时间运算全部以 ns 进行。不假设采样点是等间隔的。在夹住阈值的两个采样点之间做直线插值。上升按 a.v < 阈值 ≤ b.v,下降按 a.v > 阈值 ≥ b.v 来检查,并对插值得到的时刻应用 after 条件。即使 after 位于两个采样点之间,也不丢弃有效的穿越。一开始就已经为高的第一个点或平坦区间,不是新的穿越。请把这个约定与前面实验的 first_crossing_ns 区分开。
平台是闭区间时间窗 [2,3]ns 和 [12,14]ns 内采样点的中位数。两个窗口中各自至少要有两个采样点。这是这个固定实验的窗口选择,并不是适用于所有 TDR 波形的通用算法。没有数据时,不要用 0 填充,而应当失败。整个波形被截断或时间重复时,也不继续分析。
如果 |Γ|≤1e−6,那么在这次教学约定中,按未观测到反射处理。返回时刻和距离为 None,在 JSON 中为 null。即使模型配置中写有 TD,这个数字也不是通过观测找到的结果。可以由 Γ=0 推断阻抗是 50Ω,但对于两条阻抗相同的线路相接的位置,无法用这个波形区分。不要把没有反射,改说成没有线路。
在现场相遇的样子
分析报告中最危险的错误,是把输入的位置原样写到结果栏里。它看起来与想要的结果一致,但并不是做了分析。下一个实验中,在保留真实波形的前提下,只改变配置中的 TD,以此检查这个失误。观测到的往返时间必须保持不变,只有 consistent 变为 false。也要区分把阻抗配置改为相反方向的情形。
所有配置都要在运行之前验证,并且不覆盖已有的输出文件夹。要留下每种情形的配置、电路、引擎日志和完整波形,并与最终报告关联起来。即使结果看起来是对的,也要保持 simulated=true、physical_certified=false。求解了电路模型,与测量并认证了真实电缆,是两回事。这次的一致性检查,也只是确认该理想模型的幅度和延迟,并不具备认证整个电路文件真实性的功能。
下一项实验要做什么
完成配置验证、完整波形解析、平台提取、带符号的反射与阻抗反推、双向穿越插值、单次运行分析、多条件运行、CLI 证据保存这八个步骤。生成波形的辅助程序已提供,分析函数则要自己编写。包括没有反射的条件在内,比较九个条件,并确认即使上升时间不同,往返延迟也能保持不变。
依据文档:ngspice 官方手册 6.1 中的无损 T 元件、TI AN-905 中的反射系数。手册的最新版与实验镜像中的 ngspice 42 版本不同。这里使用的 T 元件、tran、wrdata 命令,已在真实的 42 引擎上另行确认。