三、MIPI M-PHY 物理层基础:Gear、Sub-lane 与信号模式
各位,搞 UFS 调试,你迟早得跟 M-PHY 打交道。它是 UFS 链路最底层的物理接口,负责把要传的 0 和 1 变成线缆上的电压变化。
我这些年调试下来,发现很多工程师一上来就盯着协议层,结果链路不稳、训练不过,最后追根溯源,问题全在物理层。所以说,把这层的基础打牢,能帮你少走很多弯路。
3.1 Gear:速率的档位
M-PHY 的速率不是固定的,它分了几个档位,叫作 Gear。每个 Gear 对应一个标称速率。UFS 从早期的 Gear 1 一路走到现在的 Gear 5,速率越来越高。
| Gear | 标称速率 (Gbps/Lane) | 典型应用 |
|---|---|---|
| Gear 1 | 1.45 | UFS 2.0 早期,低速场景 |
| Gear 2 | 2.90 | UFS 2.0 主流 |
| Gear 3 | 5.80 | UFS 2.1 / 3.0 提升性能 |
| Gear 4 | 9.60 (HS-G4) | UFS 3.0 / 3.1 旗舰 |
| Gear 5 | 23.20 (HS-G5) | UFS 4.0 超高速 |
我个人的习惯是,在调试初期,千万别一上来就压到最高 Gear。先从一个较低的 Gear 开始,确认链路基本无误。这能帮你排除掉很多因为高频信号完整性带来的故障。我曾经有个项目,Gear 4 死活训练不过,后来降回 Gear 2,问题马上复现,结果发现是接收端的共模电压偏了 50mV。
3.2 Sub-lane:一条 Lane 里的“小车道”
这个概念有点绕,我尽量说清楚。一条 M-PHY 的 Lane 里,还能拆分成更细的 Sub-lane。比如 HS-Gear 4 的 Lane 里,就包含了两条 Sub-lane。
为什么要这么干?
- 降低单条线速率:用两条半速的 Sub-lane 并行传,而不是用一条全速的 Lane。这样对 PCB 走线和芯片内部时钟的要求都降低了,硬件实现起来更友好。
- 实现双倍数据速率 (DDR):每个 Sub-lane 的时钟上升沿和下降沿都采样数据,进一步提升了吞吐量。
说白了,就是把一条高速路拆成两条中速路并行跑。你在看协议文档的时候,看到 “2-lane” 或者 “8B/10B” 编解码,其实背后都与 Sub-lane 有关系。
在 UFS 的寄存器里,你通常能看到一个叫 PA_SubLane 的参数。它的值决定了当前 Gear 下,一条 Lane 被拆成了几条 Sub-lane。这一点在查看 Link Startup 状态时特别有用。我曾经遇到过一次设备识别错误,最后查下来就是 Host 和 Device 在 Sub-lane 的配置上不一致。
3.3 差分信号:抗干扰的法宝
M-PHY 用的是差分信号,这在高速串行总线里非常普遍。它用一对互补的线(D+ 和 D-)来传输信息。电压差为正表示 1,电压差为负表示 0。
它的好处很明显。
- 极强的抗共模干扰:外部噪声会同时影响 D+ 和 D-,但它们的差值几乎不受影响。你想想看,手机里那么多干扰源,差分对是保证信号干净的基石。
- 更低的电压摆幅:HS 模式下,信号摆幅只有 200mV 左右,这在高速下能显著降低功耗。
我见过一个很典型的错误:有人为了节省面积,把差分对的两根线在 PCB 上走了不同的层,或者没做等长处理。结果就是链路非常不稳定,动不动就失锁。切记,差分对的等长、阻抗控制(通常是 85Ω 或 100Ω)是硬指标,不能省。
我曾经调试过一块板子,Link Training 总是在某个阶段失败。查了三天,最后拿着示波器去量 HS 差分信号,发现 D+ 和 D- 之间有一个周期性的共模尖刺。后来发现是电源层噪声耦合进来的。记住,给 M-PHY 的供电一定要干净,去耦电容的位置和容量都得仔细。
3.4 PWM 与 HS 模式:两种工作状态
M-PHY 的接口可以在两种模式下工作:PWM 和 HS。
PWM (Pulse Width Modulation) 模式:
- 用于低速、低功耗的场景,比如链路初始化、休眠唤醒、或者传递一些控制信号。
- 信号是单端模式,摆幅大(1.2V 左右),速率慢(最高到 Gear 1)。我理解它更像是一个带外通信通道,可靠性高,但速度慢。
HS (High Speed) 模式:
- 用于大数据量的传输,比如读写文件。
- 信号是差分模式,摆幅小(约 200mV),速率快(从 Gear 1 到 Gear 5)。它是我们追求性能的核心。
- 从 PWM 切换到 HS,需要经过一个特定的启动序列,叫 HS-Init。这个序列如果出错,链路就无法进入高速状态。
我个人习惯,在调试 UFS 时,首先看它能不能正常进入 HS 模式。如果卡在 HS-Init 阶段,八成是差分信号质量有问题,或者物理层的基本配置(如 Term 电阻、偏置电压)不对。
说得更直白一点:PWM 模式是“打招呼”,HS 模式是“干活”。
无论是 PWM 还是 HS,它们的核心物理层机制(Gear、Sub-lane、差分信号)都是协同工作的。HS 模式依赖差分信号的高抗干扰性来实现低摆幅、高带宽;PWM 模式依赖其低速、高摆幅来保证在噪声环境下也能可靠通信。
下面这张图清晰地把 M-PHY 的核心概念串了起来。
理解了这些基础概念,你再去看复杂的链路训练过程,心里就有底了。你不会被那些奇怪的寄存器名称吓到,因为你已经知道了它们操控的是哪些物理层元素。