3. 发送器原理:TX均衡、预加重与去加重

这一章咱们聊聊发送端那几个让很多工程师头疼的概念——预加重、去加重,还有笼统的TX均衡。我记得刚入行那会儿,看到芯片手册里“Pre-emphasis”、“De-emphasis”两个词,心想这不就一个意思吗?等到第一次调链路,眼图怎么都打不开,才明白这两兄弟差别大了去了。

说白了,TX均衡就是发射器在信号出去之前,先“预判”一下信道的损耗,提前把高频分量抬一抬,或者把低频分量压一压。这样一来,信号经过有损耗的PCB走线、过孔、连接器之后,到了接收端反而能保持一个相对干净的眼睛。

3.1 为什么需要TX均衡?

信道在高频上衰减更严重。你想想看,10Gbps的信号在FR4上走20cm,高端频率(5GHz)的损耗可能比低频(几百MHz)大好几dB。如果不做任何处理,发出去方方正正的信号,到了接收端就变成圆圆钝钝的波形,眼图闭合,采样误码。

我曾经遇到过一个项目,板子走线长度已经超出设计规范,但为了节省成本不想加中继器。我试着把TX均衡的预加重幅度提高了3dB,眼图高度立刻从200mV涨到了350mV,误码率直接降了三个数量级。嗯,有时硬件上省不来的东西,咱们在码型里找回来。

核心思路: 发送器用数字或模拟方式,在比特流跳变沿(高频成分)上额外增加幅度,让高频分量拥有更多的能量,弥补信道的高频损耗。

3.2 预加重 vs 去加重

这两个概念的区分,很多刚入门的同事容易搞混。我列个表格,保证你一看就明白。

对比项预加重 (Pre-emphasis)去加重 (De-emphasis)
操作对象提高跳变沿的幅度降低非跳变沿(稳定电平)的幅度
物理实现在跳变瞬间注入额外电流在稳态时拉低驱动电流
眼图效果眼宽增大,眼高略降(功耗增加)眼高明显增大,眼宽可能略减(功耗降低)
典型应用PCIe、SATA等高速串行总线USB3.0、10G-KR等背板场景
我的经验短走线(<10cm)优先用预加重长走线(>20cm)去加重更有效
实战技巧: 芯片手册里常写成“Pre-shoot”和“De-emphasis”两个寄存器字段。Pre-shoot控制跳变沿的过冲幅度,De-emphasis控制稳态电平的衰减幅度。实际调试时,建议从De-emphasis最小值(0dB)开始,逐渐增加,同时观察接收端眼图的眼高和眼宽。

3.3 TX均衡的关键参数

调试TX均衡时,我一般关注四个参数:预加重幅度、去加重幅度、前尾比率(Pre-cursor / Post-cursor)以及均衡阶数。现代SerDes常用3-tap或5-tap的FIR滤波器来实现。

一个典型的3-tap FIR发送器,三个系数分别是c-1(前光标)、c0(主光标)、c1(后光标)。输出幅度就是这些系数乘上门级电平再求和。嗯,直接用代码更容易理解。

// 以3-tap FIR为例,伪代码风格
// 原始比特流:bit[n] ∈ {0, 1}
// 三个系数:c_pre, c_main, c_post(单位:归一化幅度)
// 输出幅度按NRZ编码:
output[n] = c_pre * (2*bit[n-1] - 1)
           + c_main * (2*bit[n] - 1)
           + c_post * (2*bit[n+1] - 1)
// 实际硬件中会做归一化和电平转换,但思路一致

注意:系数之和通常固定为1(或2,取决于归一化方式)。当你提高c_pre(预加重),c_main就得相应降低,否则输出摆幅会超限。我曾经有一次把c_pre调到0.3,没降c_main,结果发送器饱和了,眼图反而变差。

3.4 去加重到底怎么“去”

很多工程师以为去加重就是直接减掉低频幅度。实际实现方式更聪明:当数据连续不变时,驱动电流降低;当数据跳变时,驱动电流恢复到最大。这个电流差就是去加重量。

举个例子,假设我们设置去加重量为-3.5dB。如果连续发了四个“1”,第一个“1”是满摆幅(跳变之后),后面三个“1”的摆幅比第一个低3.5dB。接收端看到这个幅度差,就能知道那是同一个数据流,而不是噪声。

常见陷阱: 去加重量不能过大。我见过一个板子,为了抑制长走线损耗,把去加重设到了-6dB。结果稳态电平太低,接收端均衡器的DC恢复电路反而产生了更大的抖动,眼图从半闭变成全闭。建议单次调节步长不超过0.5dB。

为什么会这样?因为接收端的CTLE(连续时间线性均衡器)和DFE(判决反馈均衡器)通常假设入信号幅度在合理范围内。去加重过狠,稳态信号被衰减到接近噪声门限,均衡器再抬就抬不上来了。所以,TX均衡和RX均衡是配合的,不是单边使劲。

3.5 实战调试流程

个人习惯的调试顺序是这样的:

  1. 先关掉所有TX均衡,测量原始通道的损耗曲线(S参数)。
  2. 设置去加重为-2dB,看接收端眼图是否变好。
  3. 逐步增加去加重(每次0.5dB),记录每个点的眼高、眼宽和误码率。
  4. 如果眼高不够,加一点点预加重(Pre-shoot),通常0.5-1.5dB就够。
  5. 同时调整RX端的CTLE峰值频率,确保两者互补。
  6. 最后用PRBS31码型跑长期误码率测试,确认裕量。

我手边有一个项目,用这套流程三小时就把16Gbps链路的BER从10-8压到了10-12以下。嗯,关键是别贪心,一步一步来。

3.6 一张图看懂TX均衡的干预效果

下面这张SVG把发送器、信道、接收器的信号变化画出来了。对照看,更容易理解“预加重抬高频、去加重压低频”这句话的实际含义。

TX均衡对信号的影响示意 原始数据 TX预加重 TX去加重 损耗信道 接收端眼图 预加重后波形 去加重后波形 原始数据波形 ● 预加重:跳变沿幅度突增 ● 去加重:稳态电平衰减 ● 两者目标相同:补偿信道高频损耗 ● 硬件上通过调节驱动电流实现

从上图可以看出,预加重在数据跳变时拉高了幅度(红色波形),去加重在数据不变时压低了幅度(绿色波形)。它们的共同目的都是为了补偿信道的高频损耗,让接收端眼图更开阔。

3.7 绕不开的注意事项

  • 功耗与均衡的权衡: 预加重会增加发送器峰值电流,注意散热和电源完整性。去加重相对节能,但幅度变化可能引起共模噪声。
  • 码型依赖性: 长连“1”或长连“0”下,去加重的稳态电平会“塌陷”,接收端DC恢复能力不够的话,容易产生基线漂移。建议用PRBS23以上码型验证。
  • 不可单独优化TX端: 我见过团队把TX均衡调得完美,结果RX端的均衡器反而被饱和了。始终要收发联调。
一句话总结: TX均衡是给信号打一个“预补偿针”,用略微夸张的波形,抵消真实信道的低通滤波效应。预加重打强针,去加重打弱针,但针针都得打在点子上。

好了,这一章的内容就是这些。把TX均衡概念吃透,后面章节讲RX均衡和整体链路调试时,你就能更快形成系统认知。自己找一套开发板,调一调那几个寄存器,比看十遍书都管用。