起因是今天看到一条微博吐槽某品牌显示器通过 USB-C 连接,设置为 USB 3.0 后,4K 分辨率下只能达到 30Hz。于是我花了一点时间查了点资料,试图搞明白这其中的关系。

众所周知,USB-C 是一种支持正反插的连接器。但实际上,它内部的走线并不完全是对称的 —— 不然就太浪费了。具体来说,除了用于供电的 VBUS、公共地 GND 和 CC、SBU 等辅助性的接线、以及 USB 2.0 的 D+/D- 外,USB-C 里一共有 4 对独立的高速差分信号信号 (TX1+/TX1-, RX1+/RX1-, TX2+/TX2-, RX2+/RX2-,总共 8 根线)。

USB Type-C 引脚定义图,来源:AnandTech

为什么这里要排除 USB 2.0 呢?因为 USB 2.0 是在一对差分信号 (D+/D-) 上以半双工方式工作的,与 USB 3.0 以及后续其它全双工协议的工作方式非常不同,因此职责单一,并没有特殊情况需要讨论。所以,对于 USB-C 上 USB 3.0 和 DisplayPort 共存的问题,本质上就是这 4 对高速差分信号的分配问题。下面我们就来展开说说。

首先来说说 USB 3.X

对于 USB 3.X 来说,因为要全双工地同时发送 (TX) 和接收 (RX),因此对于这 4 对高速差分信号,要么用 2 对 (1 lane),要么用完 4 对 (2 lane)。剩下的才是可以分配给 DP Alt Mode 使用的数据线。

列举来说:

  • USB 3.2 Gen 1 带宽为 5 Gb/s,需要用到 1 对 TX 和 RX (共 4 根线)
  • USB 3.2 Gen 2 带宽为 10 Gb/s,采用了不一样的传输编码方式,同样也仅需 1 对 TX 和 RX (共 4 根线)
  • USB 3.2 Gen 1×2、2×2,带宽分别为 10 Gbps 和 20 Gb/s,需要用到 2 对 TX 和 RX,共 8 根线 (后者与前者同样也只是传输编码的区别)

也就是说,USB-C 是通过「接线」的方式来同时传输 USB 和 DP 信号的。如果你需要高规格的 DP 传输,就得减少 USB 3.0 可用的 lane 数,反之亦然。

再来说说 DisplayPort (DP)

之所以我们可以通过一根 USB-C 线缆连接显示器输出视频的同时也能接通显示器的 USB 口,其实是利用了 USB-C 规范中一个称之为 Alt Mode 的做法,从前面所说的 4 对差分信号中借用 2 对乃至全部 4 对来传输 DP 信号。

而 DP 截止至 1.4 版本,总共有 RBR、HBR、HBR2、HBR3 四种传输模式。根据资料,它们的带宽分别如下:

  • RBR 和 HBR,自 DP 1.0 开始支持,单个 lane 的带宽分别为 1.62 Gb/s 和 2.70 Gb/s
  • HBR2,自 DP 1.2 开始支持,单个 lane 的带宽为 5.40 Gb/s
  • HBR3,自 DP 1.3 开始支持,单个 lane 的带宽为 8.10 Gb/s

那么回到开头的问题

到底什么情况下一根 USB-C 线上才能同时拥有 USB 3.0 和 4K 60Hz 的 DP 输出呢?首先排除全部 4 对差分信号全部用作 USB 或者全部用作 DP 传输的分配方式。因此剩下一种情况。

首先,正如前面提到,USB 3.0 需要占用 2 对差分信号,分别用于发送 (TX) 和接收 (RX)。对于 USB 来说,就是一个 lane。也就是 USB 3.2 Gen 1 (5 Gb/s) 或者 USB 3.2 Gen 2 (10 Gb/s)。

剩下 2 对差分信号,由于 DP 只需要发送,因此对于 DP 来说,它就是两个 lane。也就是说,HBR2 和 HBR3 模式下分别可达到 10.80 Gb/s 和 16.20 Gb/s 的带宽。

同样根据资料,4K 分辨率下几种模式的数据速率需求:

规格SDR (24 bit)HDR (32 bit)
4K 30Hz6.18 Gb/s7.73 Gb/s
4K 60Hz12.54 Gb/s15.68 Gb/s

综上所述,如果需要在一根 USB-C 上同时实现 USB 3.0 和 4K 60Hz DP 的传输,那么,显示器和主机都需要支持 HBR3 才行。

还有别的方案吗

有,那就是 Thunderbolt (TB)。

和 USB 3.X 直接将数据线分配给不同协议的粗暴做法不同,Thunderbolt 是一个更高层次的协议。它将所有数据编码打包进自己的协议里传输,两端通过专用芯片进行编解码。总带宽 40 Gb/s。只要在这个带宽之下,里面的各家协议的带宽是按需分配使用的,不怕 USB 那种占了线没用满、没线可用的情况。

当然,控制芯片不便宜。所以 TB 协议的产品基本上会比 USB 贵几个档次。

补充:关于 USB 3.X 的协议命名

也是刚刚查资料的时候才知道。USB 3.X 每更新一个小版本,都会把前一小版本纳入进来,并且更名为当前版本的命名格式。

比如说,USB 3.2 Gen 1,也就是 USB 3.1 Gen 1,乃至 USB 3.0,都是同一个东西。

而 USB 3.2 Gen 2 和 USB 3.1 Gen 2,也是同一个东西。