第4节:UFS时钟信号的EMI控制策略

时钟信号,说白了就是EMI的“震中”。

UFS链路的时钟频率通常在几十兆到上百兆赫兹。这个频段的谐波能量特别丰富,一不小心就会辐射超标。我个人习惯是:先搞定时钟,再谈其他信号。

4.1 时钟信号为什么是EMI的“主凶”?

你想想看,时钟信号是周期性方波。方波的上升沿和下降沿越陡,高频分量就越丰富。UFS的时钟信号通常是差分对(如REF_CLK),信号幅度虽然只有1.8V左右,但跳变沿特别陡——快的话只有几百皮秒。

关键概念:

  • 谐波能量:时钟基频的奇数倍频(3次、5次、7次...)具有较强能量
  • 辐射效率:当谐波频率接近PCB走线或电缆的天线谐振点时,辐射效率会急剧升高
  • 共模转换:差分时钟的共模分量,是造成EMI的主要原因

我在项目中遇到过这样的情况:某个产品UFS读写时,865MHz处出现超标噪声。查了半天,发现是REF_CLK的7次谐波(约868MHz)耦合到了外壳地线上。嗯,时钟信号的谐波真的不能小看。

4.2 核心控制策略有哪些?

控制时钟信号的EMI,主要从三个维度入手:源头控制、路径阻断和末端处理。我列了个表,方便你对照选择:

策略类别 具体方法 适用场景 效果等级
源头控制 展频时钟(SSC) 系统级EMI超标,频率可调 ★★★★★
源头控制 降低时钟幅度 链路余量充足时 ★★★☆☆
源头控制 减慢上升/下降时间 时序余量允许时 ★★★☆☆
路径阻断 时钟走线包地 PCB层数充足时 ★★★★☆
路径阻断 远离IO和缝隙 布局阶段 ★★★★★
末端处理 RC端接或共模扼流圈 信号完整性允许时 ★★★★☆

我的经验:展频时钟是最有效的“第一个动作”。只要系统允许,我一定会优先打开SSC功能。但不建议把展频率设得太高——展频过大可能导致UFS链路的时序抖动超标。

4.3 展频技术(SSC)的具体用法

展频时钟,简单说就是让时钟频率在一定范围内“抖动”。这样,能量的峰值就会被摊平。展频的方式有两种:

  • 中心展频(Center Spread):频率在中心值上下变化,如±0.5%
  • 向下展频(Down Spread):频率只在中心值以下变化,如-0.5%~-1%

UFS规范中,REF_CLK通常支持向下展频。展频率一般在-1000ppm到-5000ppm之间(ppm代表百万分之一,即0.1%~0.5%)。

注意坑:展频不是万能的!如果你PCB上的时钟走线本身就是一根“大天线”,那展频的效果会大打折扣。我曾经在一个项目上,展频开了20kHz调制深度,连续测试了6种设置,结果发现走线过长、跨分割的问题才是根源。先改PCB,再调展频,问题才算真正解决。

展频参数怎么调?我一般按这个步骤来:

  1. 先确认系统对时钟抖动的耐受度——UFS控制器手册里会有jitter tolerance的指标
  2. 选择展频率,建议从较低值(如-1000ppm)开始试
  3. 用频谱仪看EMI峰值有没有明显下降
  4. 如果下降不明显,逐步增大展频率,直到效果和信号完整性之间找到平衡

4.4 时钟走线的包地与隔离

包地,是PCB上最老实但也最好用的招。

时钟差分对的包地处理,我习惯这么做:

  • 在差分对两侧各加一条GND走线,线宽3~5mil,间距保持在2H以内(H是介质厚度)
  • 包地走线上每隔100~200mil打一个GND过孔
  • 过孔不能打在包地线的末端,而是要分布在整条走线上

为什么过孔不能只放在两头?因为如果包地线的“地”回流路径太长,它会变成一根新的天线。我以前就犯过这个错——包地线没打过孔,结果EMI反而更差了。

小技巧:时钟走线两侧的包地线不要悬空,一定要接到完整的地平面上。如果PCB层数有限,可以考虑在地层上“开槽隔离”——把时钟区域与其他噪声区域的地平面隔开,但要注意不能破坏信号的回流路径。

4.5 时钟链路的RC端接

端接的作用是匹配阻抗、抑制反射。UFS时钟通常是LVDS或HCSL电平,端接方式略有不同。

时钟电平类型 端接方式 阻值参考 注
LVDS 100Ω跨接在差分端 100Ω±1% 尽量靠近接收端
HCSL 50Ω下拉到GND(每端) 50Ω±1% + 串阻 串阻在源端
单端CMOS 末端RC串联到GND R=22~47Ω, C=15~33pF R和C值需实验调整

我建议在时钟信号的源端加一个小电阻(串阻),比如22Ω。这能显著抑制过冲和振铃,减少高频辐射。但电阻不能太大,否则信号幅度会衰减过多,影响UFS链路的时序眼图。

直接用的参数参考:

UFS REF_CLK(频率范围19.2MHz~52MHz):

  • 源端串阻:22Ω(0402封装,靠近时钟源)
  • 差分阻抗:100Ω(控制在95Ω~105Ω)
  • 终端匹配:100Ω跨接在接收端
  • 走线长度:尽量控制在2000mil以内

4.6 PCB布局与走线的“铁律”

布局阶段就要想清楚时钟线的走向。我有一个基本的检查清单:

  • 时钟源要靠近UFS控制器,走线越短越好
  • 时钟走线不跨过任何分割槽(地平面或电源平面)
  • 时钟周围3W范围内不要走其他高速信号
  • 时钟走线远离板边、连接器、按键、天线区域
  • 时钟走线换层时,旁边要有至少2个GND过孔

我曾经遇到过一个典型案例:UFS时钟走线从顶层换到底层,但旁边只有一个GND过孔。换层处的回流路径瞬间变长,形成了一个小环天线。结果UFS读操作时,带宽在3.2GHz处出现一个明显的尖峰。加了一个过孔后,尖峰直接消失了。

下面是本章知识点的结构图,方便你对照记忆:

UFS时钟信号EMI控制核心策略 时钟源(REF_CLK) 源头控制 路径阻断 末端处理 展频时钟(SSC) 降低幅度/减慢边沿 包地 + 过孔 远离IO / 缝隙 / 外设 RC端接(源端/终端) 共模扼流圈(选配) 核心原则: ① 源头控制最有效 → ② 路径阻断保底线 → ③ 末端处理补漏洞 先软件(SSC),再硬件(包地/端接),最后看布局走线

4.7 一些很实际的调试技巧

调试时钟EMI的时候,我通常会这样做:

  • 用近场探头沿着时钟走线扫一下,找到辐射最强的位置
  • 如果某个谐波特别突出,先检查时钟源端的端接电阻有没有虚焊
  • 试试在时钟差分对的串阻后面并联一个10pF的电容(对地)——这是最简单的低通滤波
  • 如果时钟走线必须跨过分割槽,那就加个GND stitching capacitor(桥接电容),容值100pF或1nF

最后一条建议:时钟走线的长度一定要匹配。差分对的两条线长度差不要超过5mil。如果误差太大,共模噪声会明显增加。我以前用示波器看过——长度差10mil的差分时钟,共模分量比匹配好的大了将近3dB。

时钟EMI控制,说白了就是“让时钟信号呆在自己的地盘上,别乱跑”。

做到这一点,UFS链路的EMI问题就解决了一大半。