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我曾把地弹引起的周期抖动当成随机抖动,白忙活了半天
共模电压 Vcm0.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 滤波设计的基本思路

对付地弹,核心思路就三条:

  1. 降低电源阻抗:用 MLCC 电容在尽可能宽的频带内提供低阻抗。典型做法是在每个 VDD 引脚放一个 100nF + 1μF 电容,且距离引脚小于 2mm。
  2. 隔离开关噪声:在高速差分对与低速 IO 之间用地平面隔离。我在板级设计时一定会把 UFS PHY 区域独立出来,边上打一圈地过孔。
  3. 滤除特定频段的共模噪声:在差分对靠近 PHY 侧串联共模扼流圈(CMC),选择直流电阻低于 1Ω,共模阻抗在 100 MHz 处大于 1kΩ 的型号。

说白了,滤波不是堆电容,而是要理解噪声的频谱。地弹通常是 100 MHz ~ 1 GHz 范围内的宽带噪声,单靠一两个电容根本压不住。我习惯先做仿真,看电源分配网络(PDN)的自阻抗曲线,找到谐振峰再针对性选容值。

小技巧:想要快速判断地弹是否影响 UFS 链路?观察链路训练结果里的 PHY Adapter 状态寄存器。如果 Gear 协商反复失败,或者 M-PHY 的 Deemphasis 设置总是被复位,大概率是地弹导致接收端的时钟恢复电路失锁。我曾经靠这条规律半小时定位到问题——比看眼图快多了。

3.5 本章核心体系

为了让你对整个章节的知识逻辑有个直观印象,我画了下面这张结构图。它把 UFS 四层架构、信号完整性参数、地弹产生机制、滤波对策串在了一起。记不住细节没关系,先记住大框架:架构决定地弹的传播路径,SI 参数定义接地弹的容忍度,滤波是对抗地弹的最终武器。

UFS 系统架构与信号完整性知识体系 UFS 应用层 UFS 传输层 UniPro 链路层 M-PHY 物理层 眼高 / 眼宽 总抖动 TJ 共模电压 Vcm 误码率 BER 直接影响 地弹产生 SSO + 寄生电感 VSS 尖峰 恶化 滤波对策 MLCC 电容阵列 共模扼流圈 地平面隔离 需要抑制 目标满足 核心逻辑 架构层次 → 地弹传播路径 → 影响 SI 参数 → 滤波对策

图里从左到右就是常见的分析顺序:先理清 UFS 各层组件,再定位到关键 SI 参数,接着看地弹如何产生并恶化这些参数,最后用滤波措施锁死噪声。我在实际项目中就是按这个流程走的,只用了两次 layout 改版就把地弹从 350 mV 压到了 50 mV 以下。

记住一个数字:对于 Gear4 的 UFS 链路,尽量保证 M-PHY 附近的地弹尖峰 < 100 mV,否则即使眼图勉强合格,温度一升高误码率也会恶化。这是我吃过亏总结出来的经验阈值。