3. UFS 系统架构与信号完整性基础
做 UFS 接口,不能只盯着协议层看。底层物理上的信号完整性要是垮了,协议栈再漂亮也没用。我自己刚接触 UFS 那会儿,就被地弹折腾得不轻——眼图直接闭合成一条线,所有链路训练都过不去。所以这一章,咱们先把架构画清楚,再讲信号完整性里那些最容易踩坑的点。
3.1 UFS 系统架构的分层视野
UFS 协议栈分四层,从下往上:
- M-PHY 物理层:负责高速串行差分信号的发送/接收,速率从 Gear1 到 Gear5 不等。我在项目里常用 Gear4(约 11.6 Gbps),Gear5 还在评估中。
- UniPro 链路层:完成数据成帧、流控、重传等。它跟 M-PHY 之间通过 RM_IF(速率匹配接口)连接,这里最容易引入共模噪声。
- UFS 传输层:管理命令队列、任务管理、数据分段。说白了就是把上层发来的 SCSI 命令拆成 UniPro 能理解的帧。
- UFS 应用层:标准 SCSI 命令集的封装,外加 UFS 特有的命令(如写入封锁、安全擦除)。
地弹干扰主要发生在哪一层?我的经验是:M-PHY 物理层和 UniPro 层的接口处。为什么?M-PHY 是差分对,对地弹不敏感?别急,差分信号抗的是共模噪声,地弹本质是电源和地平面的瞬态压降,它能改变差分对共模电平,进而迫使接收端的共模抑制电路饱和,最终把差模信号也毁掉。
要点:地弹不直接“攻击”差分信号,而是通过抬高/拉低共模电压,让差分接收器失去正常工作点。这就像你在一根平衡木上走路,有人从两头猛拽绳子——平衡木本身没问题,但你的重心稳不住。
3.2 信号完整性基础:从眼图看起
信号完整性说白了就是看眼图。眼图张开得像只蛤蟆,说明链路干净;眼图闭合得像条缝,赶紧查布局和滤波。
UFS 高速链路的几个关键 SI 参数:
| 参数 | 典型目标值(Gear4) | 我踩过的坑 |
|---|---|---|
| 眼高 | > 250 mV | 地弹导致眼高降到 150 mV 以下,误码率飙升 |
| 眼宽 | > 0.4 UI | 串扰让眼宽缩到 0.2 UI,符号间干扰明显 |
| 总抖动 (TJ) | < 0.3 UI | 我曾把地弹引起的周期抖动当成随机抖动,白忙活了半天 |
| 共模电压 Vcm | 0.6 ~ 0.8 V | 地弹使 Vcm 波动超过 200 mV,接收端直接罢工 |
你想想看,差分信号虽然抗共模,但接收器内部有一个固定偏置的共模反馈环路。如果 Vcm 波动太快(比如因为地弹产生的几十到几百 MHz 的噪声),反馈环路来不及响应,输出差分电压就会被调制——结果就是眼高下降、抖动增加。嗯,这地方特别容易被忽略。
3.3 地弹是怎么跟 UFS 链路扯上关系的?
地弹的学名叫同步开关输出噪声(SSO)。当芯片内部很多 IO 同时从 0 跳变到 1 时,瞬间电流通过封装寄生电感,在芯片内部地电位上产生一个电压尖峰。
UFS 接口通常有 2 条差分对(TX+/- 和 RX+/-),外加若干低速控制信号。看起来不多吧?但别忘了主控芯片和存储芯片内部还有 DDR 控制器、NAND 控制器等一大堆高速 IO。它们同时翻转时,地弹幅度可能达到 500 mV 甚至更高。我做项目时有一次测得 VSS 尖峰高达 1.2V——直接让差分接收器误码率爆表。
避坑:我曾经把地弹噪声全怪到 UFS PHY 的电源滤波上,换了十几颗电容没效果。最后发现是 NAND 控制器的 8 位数据总线同时翻转,耦合到 UFS 的地平面。所以地弹排查不能只看 UFS 本境,要看整个芯片的供电网络。
3.4 滤波设计的基本思路
对付地弹,核心思路就三条:
- 降低电源阻抗:用 MLCC 电容在尽可能宽的频带内提供低阻抗。典型做法是在每个 VDD 引脚放一个 100nF + 1μF 电容,且距离引脚小于 2mm。
- 隔离开关噪声:在高速差分对与低速 IO 之间用地平面隔离。我在板级设计时一定会把 UFS PHY 区域独立出来,边上打一圈地过孔。
- 滤除特定频段的共模噪声:在差分对靠近 PHY 侧串联共模扼流圈(CMC),选择直流电阻低于 1Ω,共模阻抗在 100 MHz 处大于 1kΩ 的型号。
说白了,滤波不是堆电容,而是要理解噪声的频谱。地弹通常是 100 MHz ~ 1 GHz 范围内的宽带噪声,单靠一两个电容根本压不住。我习惯先做仿真,看电源分配网络(PDN)的自阻抗曲线,找到谐振峰再针对性选容值。
小技巧:想要快速判断地弹是否影响 UFS 链路?观察链路训练结果里的 PHY Adapter 状态寄存器。如果 Gear 协商反复失败,或者 M-PHY 的 Deemphasis 设置总是被复位,大概率是地弹导致接收端的时钟恢复电路失锁。我曾经靠这条规律半小时定位到问题——比看眼图快多了。
3.5 本章核心体系
为了让你对整个章节的知识逻辑有个直观印象,我画了下面这张结构图。它把 UFS 四层架构、信号完整性参数、地弹产生机制、滤波对策串在了一起。记不住细节没关系,先记住大框架:架构决定地弹的传播路径,SI 参数定义接地弹的容忍度,滤波是对抗地弹的最终武器。
图里从左到右就是常见的分析顺序:先理清 UFS 各层组件,再定位到关键 SI 参数,接着看地弹如何产生并恶化这些参数,最后用滤波措施锁死噪声。我在实际项目中就是按这个流程走的,只用了两次 layout 改版就把地弹从 350 mV 压到了 50 mV 以下。
记住一个数字:对于 Gear4 的 UFS 链路,尽量保证 M-PHY 附近的地弹尖峰 < 100 mV,否则即使眼图勉强合格,温度一升高误码率也会恶化。这是我吃过亏总结出来的经验阈值。