UFS PHY 物理层拓扑结构归纳总结

做 UFS 调试这么些年,我最大的体会是——不看拓扑就调参数,等于闭着眼开车。PHY 的拓扑结构决定了信号怎么走、噪声从哪来、均衡器该补偿什么。今天咱们就把这块底图画清楚,后面调参数才不会跑偏。

2.1 PHY 拓扑的整体框架

UFS PHY 是基于 MIPI M-PHY 的物理层,说白了就是一条高速差分通道,连接 Host 和 Device。但这条通道不是一根线那么简单,它分了很多层:

  • 物理媒介层:差分对(Dp/Dn)、时钟线、复位线、参考时钟
  • M-PHY 协议层:发送器(TX)、接收器(RX)、PWM/HS 模式切换
  • UniPro 层:链路的帧封装、流控、错误处理
  • UFS 传输层:命令、数据、状态传输

咱们调试时最常接触的是物理媒介层和 M-PHY 层。比如做信号完整性仿真,你得先画出整个链路的拓扑节点,不然参数设了也白设。

我的习惯:开始调优前,先拿纸笔画一遍物理拓扑——从 Host 芯片的 M-PHY TX 到 PCB 走线、连接器、Device 焊盘、再到 Device 内部 RX。把每个节点的阻抗、长度、端接方式标出来,后面调均衡器就很有针对性了。

2.2 Host 端与 Device 端的拓扑角色

UFS 通信是双向的,但 Host 和 Device 的 PHY 拓扑并不完全对称。我做过几个项目,发现很多人误以为两边结构一模一样,其实不然。

拓扑要素 Host 端 Device 端
TX/RX 对数 至少 1 组 TX + 1 组 RX(全双工) 同样 1 组 TX + 1 组 RX
参考时钟源 提供 REF_CLK(通常 19.2/26/38.4 MHz) 接收 REF_CLK 或使用内部 PLL
复位机制 控制 nRESET 拉高拉低 响应复位脉冲
HS 模式驱动能力 更强(PCB 走线较长需补偿) 较弱(片内走线短)
均衡需求 接收器通常需要均衡(因为远距离) 接收器也可能需要均衡(如果封装寄生大)

嗯,这里要留意:Host 的 TX 驱动能力一般比 Device 的 TX 强。我在调试一个 5Gbps 项目时,发现 Device 端发出来的信号幅度总是偏低,后来排查是 Device 内部驱动级数配了保守配置——你想想看,如果两边用同一套均衡参数,肯定出问题。

2.3 M-PHY 子层划分:从 PWM 到 HS

UFS PHY 最重要的特性之一,就是支持两种速率模式:PWM(低速高可靠性) 和 HS(高速差分)。它们的拓扑实现差别很大。

  • PWM 模式:单端线传输,靠脉冲宽度调制,抗干扰强,但速率上限低(通常几十 MHz)。拓扑上使用单线,需要外部上拉电阻。
  • HS 模式:差分对传输,振幅小(200–400 mV),速率高达 Gear4 (11.6 Gbps) 甚至更高。差分线必须严格控制长度差和阻抗 <5% 的差。

两者的切换过程叫 M-PHY 速率系列。我记得第一次调试 HS 切换时,波形总是有毛刺,后来发现是 PWM 到 HS 的过渡时间没留够——拓扑上的寄生电容导致瞬态过冲。

关键经验:在 PCB 布局时,PWM 线可以走宽一点,HS 差分对必须紧耦合走,并且两侧包地。我见过一个案子,工程师把 HS 差分线绕成了 S 形,结果眼图直接闭合了。

下面这张图帮你把拓扑结构串起来——

UFS PHY 物理层拓扑结构 Host 端 Device 端 Host M-PHY TX HS 发送器 Host M-PHY RX HS 接收器 Device M-PHY TX HS 发送器 Device M-PHY RX HS 接收器 HS_TX_Dp/Dn HS_RX_Dp/Dn REF_CLK 19.2/26 MHz nRESET PCB 连接器 接插件 ← 均衡器 1(Host RX 端) → 均衡器 2(Device RX 端) 图例: Host TX Host RX Device TX Device RX REF_CLK nRESET 连接器

这张图把最关键的几根线都标出来了。实际布局时,差分对必须等长,且远离时钟和复位线——我没少吃过串扰的亏,有一次 REF_CLK 的谐波直接落在了 HS 信号频段上,眼图直接出了蝴蝶结形状。

2.4 关键信号与布线拓扑要点

调均衡器之前,你得先确认物理拓扑上的这些坑有没有踩到:

  1. 差分线长度差:HS Gear4 时,每 1mm 长度差会引入约 5ps 的 skew。我建议把长度差控制在 0.5mm 以内。
  2. 阻抗连续性:主机端到连接器的过孔、器件焊盘、封装都会产生阻抗突变。我们在项目里曾把过孔塞得密,导致 50Ω 线变成了 42Ω——后来在封装上加了背钻才拉回来。
  3. 参考时钟质量:抖动太大的 REF_CLK 会让 PLL 输出劣化,进而影响 TX 的 phase 精度。调试时优先看一眼时钟的 RMS jitter 是否在 2ps 以内。
  4. 复位时序:nRESET 脉冲宽度必须满足 M-PHY 协议要求(至少 1µs),并且拉高后要留足够时间给 Device 内部 PLL 锁定。我遇到过 Device 从复位出来就发乱码,后来发现是复位释放后 10µs 内就发了第一个命令,PLL 还没稳定。
警告:千万不要在差分线上任意添加串阻吸波!有人在靠近 Device 端加了 10Ω 电阻想抑制振铃,结果导致信号幅度不足,均衡器无法正常工作。正确的做法是先仿真,再考虑是否要用 R-C 端接。

2.5 避坑指南——我踩过的几个雷

讲几个真实的教训,希望能帮你省点 debug 时间:

  • 我曾经在一个项目中把 Host 的 HS RX 和 Device 的 HS TX 长度差做大了 3mm,结果 8Gbps 下眼图完全闭合。后来用 CTLE + DFE 强行补偿,虽然能通但功耗高了 20%。如果你也遇到类似情况,建议先重画 PCB,别强求均衡器。
  • 我曾经在验证 PHY 拓扑时,只看了单端波形没看差分波形。结果单端看起来正常,差分却有过零失真——原因是两根线的共模电平不一致。从那以后,我每次都把差分对的两根线分别抓到示波器上,看共模是否在 100mV 以内。
  • 我曾经因为 REF_CLK 走线太长(靠近开关电源)导致 PHY 无法锁定 Gear4。最后切了一个干净的时钟源才解决问题。所以布线时,时钟线要远离感性负载,最好走内层屏蔽。