3. 传输线理论(下)

上一讲我们把传输线的频域特性聊透了。这一讲换个视角——从时域看信号在传输线上怎么跑、遇到阻抗变化会怎样。说白了,就是给信号拍个“心电图”。

我个人习惯,做高速设计时,TDR 和眼图是必看的两个东西。一个帮你定位物理结构的问题,一个帮你评估系统整体的信号质量。今天咱们就把这两样工具的原理和用法讲清楚。

3.1 时域反射计(TDR)原理

TDR 的原理其实很简单:往传输线里发射一个快速上升沿的阶跃信号,然后观察反射回来的波形。反射波的大小和极性,直接反映了传输线上阻抗的变化情况。

我记得刚入行时,师傅跟我说:“TDR 就是给传输线拍 X 光片。”后来做多了,发现这个比喻真的很贴切。

3.1.1 反射系数与阻抗的关系

反射系数 Γ 的定义是反射电压与入射电压的比值:

Γ = (Z_load - Z_0) / (Z_load + Z_0)

其中 Z_0 是传输线的特性阻抗,Z_load 是负载阻抗或某点的瞬时阻抗。

从这个公式能看出几个关键点:

  • 匹配时:Z_load = Z_0,Γ = 0,没有反射
  • 开路时:Z_load = ∞,Γ = +1,反射波与入射波同极性
  • 短路时:Z_load = 0,Γ = -1,反射波与入射波反极性
  • 阻抗偏高时:Z_load > Z_0,Γ > 0,正反射
  • 阻抗偏低时:Z_load < Z_0,Γ < 0,负反射

关键理解:TDR 波形上升表示阻抗变大,下降表示阻抗变小。这个对应关系要刻在脑子里。

3.1.2 TDR 的测量原理

TDR 仪器内部有一个快速阶跃发生器(上升时间通常在 20-50ps)和一个高速采样示波器。它发射一个阶跃信号,同时采样反射回来的波形。

反射波回到采样点的时间 t,对应着阻抗不连续点的位置:

距离 d = (v × t) / 2

其中 v 是信号在介质中的传播速度,除以 2 是因为信号走了个来回。

我曾经调试一块 10Gbps 的背板,发现眼图总是闭合。用 TDR 一测,在距离连接器约 3 英寸的地方有个明显的阻抗凹陷。拆开一看,是过孔的反焊盘挖得太大了。嗯,这种问题,光看频域 S 参数很难定位,但 TDR 一眼就能看出来。

3.2 阻抗不连续点的时域分析

实际 PCB 上,阻抗不连续点无处不在:过孔、连接器、焊盘、拐角、分支线……每个不连续点都会产生反射,多个反射叠加起来,信号质量就恶化了。

3.2.1 常见不连续点的 TDR 特征

不连续类型 TDR 波形特征 典型原因
容性负载 先下降后上升(凹陷) 过孔、焊盘、分支线
感性负载 先上升后下降(凸起) 连接器引脚、细颈线
阻抗偏低 持续下降 线宽过宽、介质厚度偏小
阻抗偏高 持续上升 线宽过窄、介质厚度偏大
开路 急剧上升至 +1 断线、未连接
短路 急剧下降至 -1 桥接、锡珠

实用技巧:看 TDR 波形时,先看整体阻抗水平是否在目标范围内(比如 50Ω ± 10%),再看局部波动。局部波动幅度超过 5Ω 就要警惕了。

3.2.2 多级不连续点的叠加效应

当传输线上有多个不连续点时,反射会相互叠加。距离较近的不连续点,它们的反射在时域上会部分重叠,难以区分。

举个例子:两个过孔相距很近,它们的容性反射会叠加成一个更深的凹陷。你想想看,如果只看 TDR 波形,你可能以为只有一个严重的阻抗不连续点,但实际上可能是两个中等程度的问题叠加了。

我遇到过最头疼的一次,是一条 DDR4 的数据线,TDR 波形看起来只有一个凹陷,但怎么调整过孔参数都改善不了。后来用仿真软件把 TDR 波形分解开,才发现是过孔和焊盘两个不连续点靠得太近,反射叠加了。分开优化后才搞定。

3.2.3 时域反射的仿真方法

在仿真工具里做 TDR 分析,通常有两种方法:

  1. 阶跃响应法:用理想阶跃源激励传输线,观察反射电压波形
  2. 阻抗提取法:从 S 参数反推出时域阻抗分布

下面是一个简单的 TDR 仿真脚本(Python 风格,用于理解原理):

# 简化的 TDR 仿真逻辑
import numpy as np

def tdr_sim(z_profile, z0=50, t_step=10e-12):
    """
    z_profile: 沿传输线的阻抗分布数组
    z0: 参考阻抗
    t_step: 时间步长
    """
    v_inc = 1.0  # 入射阶跃幅度
    v_ref = np.zeros_like(z_profile)
    
    for i in range(1, len(z_profile)):
        # 计算当前点的反射系数
        gamma = (z_profile[i] - z0) / (z_profile[i] + z0)
        # 反射波叠加
        v_ref[i] = v_ref[i-1] + gamma * v_inc
    
    return v_ref

注意:实际 TDR 仿真要考虑上升时间、损耗、色散等因素。上面的代码只是帮你理解基本原理,不能直接用于工程分析。

3.3 眼图基础

眼图是评估数字信号质量最直观的工具。把多个比特周期的波形叠加在一起,就形成了像眼睛一样的图案。

说白了,眼图就是把信号的历史轨迹叠在一起看。眼睛睁得越大、越清晰,信号质量越好。

3.3.1 眼图的形成原理

眼图的形成需要两个条件:

  • 一个重复的码型(比如 PRBS 伪随机码)
  • 用时钟信号触发示波器,把波形按比特周期对齐叠加

叠加之后,你会看到:

  • 眼高:信号幅度的裕量,反映噪声和衰减
  • 眼宽:信号时序的裕量,反映抖动和码间干扰
  • 眼交叉点:差分信号的交叉电平,反映共模偏移
  • 眼图轮廓:轨迹的粗细,反映噪声和抖动的分布

3.3.2 眼图的关键指标

指标 定义 典型要求
眼高 眼图垂直开口的高度 > 200mV(视标准而定)
眼宽 眼图水平开口的宽度 > 0.6 UI(单位间隔)
抖动 信号边沿的时间偏移 < 0.2 UI
信噪比 眼高与噪声幅度的比值 > 6:1
交叉点 差分信号交叉电平百分比 45% - 55%

3.3.3 眼图与传输线参数的关系

传输线的损耗、反射、串扰都会在眼图上留下痕迹:

  • 损耗大:眼高变小,眼图变“瘦”
  • 反射大:眼图内部出现“鬼影”或台阶
  • 串扰大:眼图轮廓变粗,眼高降低
  • 抖动大:眼宽变小,边沿模糊

我习惯的做法是:先看眼图有没有闭合,如果闭合了,再看是垂直方向的问题(眼高不够)还是水平方向的问题(眼宽不够)。垂直问题多半跟损耗和反射有关,水平问题多半跟抖动和时序有关。这样能快速定位方向。

3.4 本章知识体系

下面这张图把本章的核心逻辑串起来了:

传输线理论(下)知识体系 TDR 原理 反射系数 Γ = (Z-Z₀)/(Z+Z₀) 阻抗不连续分析 容性/感性/开路/短路 眼图基础 眼高/眼宽/抖动/交叉点 信号完整性分析:定位问题 → 评估质量 → 优化设计 核心思路 TDR 定位阻抗不连续点 → 分析反射特征 → 用眼图评估整体信号质量

3.5 工程实践中的注意事项

最后分享几个我在项目中踩过的坑:

避坑 1:TDR 的上升时间决定了分辨率。上升时间越短,能分辨的不连续点间距越小。20ps 的上升时间大约能分辨 2-3mm 的间距。如果两个不连续点比这个距离还近,TDR 波形就会把它们“糊”在一起。

避坑 2:眼图测试时,码型选择很重要。PRBS7 和 PRBS31 测出来的眼图差异很大。PRBS31 包含更长的连续相同比特,对低频损耗更敏感。我一般两种都测,对比着看。

避坑 3:TDR 校准不能省。每次测量前都要做开路/短路/负载校准,否则测量结果会包含电缆和夹具的反射。我曾经因为没校准,把一个好端端的板子测出“严重阻抗不匹配”,折腾了两天才发现是校准的问题。