3. UFS 链路组成:发送端(TX)、接收端(RX)、通道(Channel)
在做 UFS 误码率排查时,有个问题我经常问团队:你到底是在测谁?是发端的问题,收端的问题,还是中间通道的问题?搞不清楚这个,测 BER 就像在黑屋子里找黑猫。所以这一章,咱们把 UFS 链路的三个核心角色拆开来看。
我个人习惯把链路比作一套高速对讲系统:发送端(TX)是说话的人,接收端(RX)是听的人,通道(Channel)就是中间的空气和电线。任何一个环节出毛病,对方就听不清——对应到数字世界,就是误码。
3.1 发送端(TX)— 信号质量的起点
TX 的核心任务,就是把芯片内部并行的数据转换成高速串行信号,然后推出去。你想想看,这个信号要是从源头就不干净,后面再怎么补救都有限。
TX 的内部一般走三步:数据编码(比如 8b10b 编码)、串行化、驱动输出。编码是为了保证 DC 平衡和足够的跳变沿;串行器把宽位宽数据压成高速比特流;驱动电路决定信号的摆幅、上升时间和预加重。
我个人习惯把 TX 的预加重参数看得特别紧。为什么?因为在高速下,通道的损耗会把高频分量吃掉,预加重相当于提前给高频分量"加量",让信号到了 RX 那边不至于太塌。
我在项目中遇到过一件事:某款 UFS 产品在 Gear 4 速率下 BER 死活过不去,眼图跟眯着眼似的。查了一圈发现是 TX 的预加重设成了 0 dB。后来调到 3.5 dB,眼图立马就张开了,BER 从 1e-6 降到了 1e-12。说白了,源头的一个小参数,就能让结果天差地别。
下面是一个 TX 参数配置的示例,我在调试时经常用这类脚本快速验证:
# UFS TX 参数快速配置(寄存器映射)
tx_config = {
'gear': 4, # UHS Gear 4
'swing_mv': 400, # 差分摆幅 400 mV
'pre_emphasis_db': 3, # 预加重 3 dB
'de_emphasis_db': 0, # 去加重 0 dB
'rise_time_ps': 48 # 上升时间 48 ps
}
# 写入 M-PHY 寄存器
for reg, val in tx_config.items():
print(f" TX_{reg} <- {val}")
3.2 接收端(RX)— 信号恢复的关键
信号经过通道传输后,到了 RX 这边往往已经面目全非了。RX 的工作,就是把这个"半残"的信号恢复成干净的数据。
RX 内部主要靠三个环节:均衡器(CTLE / DFE)、时钟恢复(CDR)和解码器。均衡器负责补偿通道的损耗,把被衰减的高频分量抬起来;CDR 从数据里提取时钟,保证采样位置正确;解码器把串行比特流还原成并行数据。
这里有个坑:均衡器不是越强越好。我在项目中见过有人把 CTLE 的增益拉到最高,结果低频噪声和高频信号一起放大,BER 反而更差。均衡器的设置要和通道的损耗曲线匹配,这需要看 S 参数来定。
你可能会问:怎么判断 RX 有没有正常工作?我习惯看两个指标:眼图在 RX 端的张开度和CDR 的锁定状态。眼图张不开,说明均衡没调好;CDR 频繁失锁,多半是带宽或抖动出了问题。
3.3 通道(Channel)— 信号的"高速公路"
通道是 TX 和 RX 之间的物理介质。UFS 链路的通道通常包括 PCB 走线、过孔、连接器 和 柔性电缆。每一个不连续点,都是信号反射的源头。
通道对信号的影响,可以用三个词概括:损耗、反射、串扰。
- 插入损耗:信号幅度随频率升高而衰减,频率越高损耗越大。
- 回波损耗:阻抗不连续导致信号反射,反射回来的信号会干扰主信号。
- 串扰:相邻走线之间的耦合,会引入额外的噪声。
我记得有一次在产线上排查 BER 问题,发现同一条 PCB 上不同通道的 BER 差异很大。用 TDR 一测,好通道的阻抗是 85Ω ± 3Ω,差的那个通道因为过孔设计不合理,阻抗掉到了 72Ω。就这一个不连续点,BER 差了整整两个数量级。
3.4 链路协同与 BER
TX、Channel、RX 三个环节不是孤立的。你想想看:TX 输出很好,但通道损耗太大,RX 再强也救不回来。反过来,通道设计得不错,但 TX 的预加重没开,信号本身就很差,RX 也无力回天。
我把三者之间的关系整理成了一张对比表,方便你排查时对照:
| 环节 | 核心指标 | 对 BER 的典型影响 | 排查优先级 |
|---|---|---|---|
| 发送端(TX) | 摆幅、预加重、上升时间 | 信号幅度不足 → 眼图闭合 → BER 升高 | ★ 第一优先 |
| 通道(Channel) | 插入损耗、回波损耗、阻抗 | 信号衰减 + 反射 → 码间干扰 → BER 劣化 | ★ 第一优先 |
| 接收端(RX) | 均衡增益、CDR 带宽、抖动容限 | 均衡不足或过均衡 → 采样误判 → BER 上升 | ★ 第二优先 |
排查 BER 问题时,我习惯先锁定 TX 和通道。为什么呢?因为这两个环节的问题通常更"硬"——要么硬件设计没做好,要么参数没调对。RX 的问题有时候会和前两个环节的表现重叠,所以放到后面再细查。