3. 链路拓扑结构:Source、Sink、Branch Device、Daisy Chain 与 Multi-Stream

DisplayPort 的链路拓扑远比传统的单点视频接口复杂。它支持从单一源设备(Source)到多个显示设备(Sink)的灵活连接,中间可以插入分支设备(Branch Device)进行信号路由与转换。理解这些拓扑角色是配置链路参数和调试 CRC 校验的基础。

3.1 核心角色定义

在一条 DisplayPort 链路中,每个物理设备都承担着特定的逻辑角色。下表总结了四种基本角色的功能与典型实例:

角色 功能描述 典型设备 链路方向
Source 链路的发起端,生成视频/音频数据流,并负责训练链路(Link Training) 独立显卡、笔记本、手机 SoC 发送 Main Link 与 AUX 命令
Sink 链路的终结端,接收并消费数据流,通常为显示面板 显示器、投影仪、VR 头显 接收数据,响应 AUX 查询
Branch Device 位于 Source 与 Sink 之间,对数据流进行转发、转换或复制 Dock、Repeater、协议转换器 双向转发 AUX/Main Link
Downstream Branch Device 的下级端口,连接 Sink 或下一级 Branch Dock 的输出口、Hub 的下行口 向下游转发数据
调试要点: 在 CRC 校验调试中,Source 负责计算发送端的 CRC,Sink 负责计算接收端的 CRC。如果链路中存在 Branch Device,它可能会重新生成 CRC,导致 Source 与 Sink 的 CRC 值不一致。此时需要分段测量 CRC。

3.2 基本拓扑:Source → Sink

这是最简单的点对点拓扑,也是 DisplayPort 链路训练和 CRC 校验的基础模型。Source 通过 Main Link(4 条 Lane)发送数据,Sink 通过 AUX CH 返回链路状态与 CRC 结果。

基本点对点拓扑:Source → Sink Source GPU / 显卡 Sink 显示器 Main Link (HBR3, 4 Lane) AUX CH (Link Training / CRC 回传) CRC 校验在此拓扑中直接对比 Source 发送值与 Sink 接收值

3.3 分支设备(Branch Device)与菊花链(Daisy Chain)

当需要连接多个显示器时,DisplayPort 引入了两种扩展拓扑:Branch Device 和 Daisy Chain。两者在物理连接和逻辑处理上有本质区别。

3.3.1 Branch Device 拓扑

Branch Device 是一个主动设备,它接收上游的 DisplayPort 流,然后将其复制或转换为多个下游流。典型的 Branch Device 包括 Dock(扩展坞) 和 MST Hub(多流传输集线器)。Branch Device 内部包含独立的逻辑单元,可以重新训练每条下游链路。

3.3.2 Daisy Chain(菊花链)拓扑

Daisy Chain 利用 DisplayPort 的 Multi-Stream Transport (MST) 特性,允许显示器自身具备转发能力。每个显示器既是 Sink(消费本机画面),又是 Branch Device(将流转发给下一个显示器)。这种拓扑要求显示器硬件支持 MST 功能。

对比维度 Branch Device 拓扑 Daisy Chain 拓扑
中间设备 专用 Dock / Hub 显示器自身(需支持 MST)
链路数量 1 条上游 + N 条下游 1 条上游 + 1 条下游(链式)
CRC 校验点 Source→Branch, Branch→Sink 分段校验 每段链路独立校验,末端 Sink 汇总
典型应用 笔记本扩展多屏 会议室多屏拼接
带宽限制 上游带宽决定总吞吐 每段链路带宽独立,但受限于首段
Daisy Chain 拓扑与 CRC 分段校验 Source PC 显示器 1 Sink + Branch (MST 转发) 显示器 2 Sink + Branch (MST 转发) 显示器 3 纯 Sink CRC 分段校验策略 ① Source → 显示器1:CRC_A 校验 ② 显示器1 → 显示器2:CRC_B 校验(显示器1 重新生成 CRC) ③ 显示器2 → 显示器3:CRC_C 校验(显示器2 重新生成 CRC)
CRC 调试陷阱: 在 Daisy Chain 拓扑中,每个中间显示器都会重新生成 CRC。如果 Source 端检测到 CRC 错误,不一定代表链路末端有问题,可能是中间某段链路的物理层不稳定。建议使用支持 分段 CRC 回读 的调试工具(如 Teledyne LeCroy 的 DP 分析仪)逐段排查。

3.4 Multi-Stream Transport(MST)原理

MST 是 Daisy Chain 和 Branch Device 能够工作的核心技术。它将一条物理链路(Main Link)的带宽划分为多个 虚拟通道(Virtual Channel),每个通道承载一个独立的视频流。Source 通过 AUX 命令配置 MST 拓扑,每个 Sink 被分配一个唯一的 MST 地址。

MST 地址分配示例

在 Daisy Chain 中,Source 通过 ENUM_PATH_RESOURCES 和 ALLOCATE_STREAM_BANDWIDTH 等 AUX 事务来管理流。每个下游设备的地址格式为:

MST 地址格式:[Source GUID] → [Branch 1 Port] → [Branch 2 Port] → ... → [Sink Port]
示例:0x001A.2F → Port 1 → Port 2 → Port 0 (末端 Sink)

3.5 拓扑对 CRC 校验的影响

不同的拓扑结构决定了 CRC 校验的实施方式。下表总结了三种常见拓扑下的 CRC 校验策略:

拓扑类型 CRC 校验范围 校验主体 常见错误场景
点对点 (Source→Sink) 整条链路 Source 发送,Sink 回传 线缆过长导致信号衰减
Branch Device 分段:Source→Branch, Branch→Sink Branch 设备负责转发并重新计算 Branch 设备内部时钟抖动
Daisy Chain (MST) 每段链路独立 每个中间显示器既是校验点又是转发点 中间显示器 MST 转发逻辑错误
实践建议: 在调试 CRC 错误时,首先通过 DPCD 寄存器 0x200~0x203 读取 Sink 端的 CRC 计数。如果 CRC 错误持续增长,尝试将拓扑简化为点对点模式,排除 Branch Device 或 Daisy Chain 引入的干扰。这是定位物理层问题的最快方法。

3.6 拓扑发现与链路训练流程

Source 在上电后通过 AUX 通道执行拓扑发现,流程如下:

  1. 读取 DPCD 能力寄存器:确认 Sink 或 Branch Device 支持的最高速率与 Lane 数。
  2. 执行 Link Training:通过 CR(Clock Recovery)和 EQ(Equalization)阶段锁定链路。
  3. MST 拓扑枚举(仅 MST 模式):通过 ENUM_PATH_RESOURCES 发现下游设备。
  4. 分配流带宽:根据每个 Sink 的分辨率与刷新率,分配虚拟通道带宽。
  5. 启动 CRC 校验:Source 开始发送数据,Sink 返回每帧的 CRC 值。
拓扑发现与链路训练流程 读取 DPCD 能力 Link Training MST 枚举 分配流带宽 启动 CRC 校验 CRC 校验在带宽分配完成后立即启动,持续监测每帧数据的完整性 如果 CRC 错误超过阈值,Source 会触发 Link Training 重训练

3.7 拓扑相关的 DPCD 寄存器

调试拓扑问题时,以下 DPCD 寄存器是关键入口:

地址 名称 作用
0x00000 DPCD_REV 读取 DPCD 版本,判断是否支持 MST
0x00001 MAX_LINK_RATE 读取设备支持的最大链路速率
0x00005 MSTM_CAP 读取 MST 能力(bit 0 表示是否支持 MST)
0x00100~0x001FF MST 地址空间 枚举下游设备拓扑结构
0x00200~0x00203 CRC 计数器 读取 Sink 端 CRC 错误计数
快速验证: 在 Daisy Chain 拓扑中,如果显示器 2 和显示器 3 画面正常,但显示器 1 出现闪烁,优先检查显示器 1 的 MST 转发功能。可以通过读取显示器 1 的 MSTM_CAP 寄存器确认其 MST 支持状态,并检查其 DOWNSTREAM_PORT_COUNT 是否大于 0。