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)去加重更有效 |
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。接收端看到这个幅度差,就能知道那是同一个数据流,而不是噪声。
为什么会这样?因为接收端的CTLE(连续时间线性均衡器)和DFE(判决反馈均衡器)通常假设入信号幅度在合理范围内。去加重过狠,稳态信号被衰减到接近噪声门限,均衡器再抬就抬不上来了。所以,TX均衡和RX均衡是配合的,不是单边使劲。
3.5 实战调试流程
个人习惯的调试顺序是这样的:
- 先关掉所有TX均衡,测量原始通道的损耗曲线(S参数)。
- 设置去加重为-2dB,看接收端眼图是否变好。
- 逐步增加去加重(每次0.5dB),记录每个点的眼高、眼宽和误码率。
- 如果眼高不够,加一点点预加重(Pre-shoot),通常0.5-1.5dB就够。
- 同时调整RX端的CTLE峰值频率,确保两者互补。
- 最后用PRBS31码型跑长期误码率测试,确认裕量。
我手边有一个项目,用这套流程三小时就把16Gbps链路的BER从10-8压到了10-12以下。嗯,关键是别贪心,一步一步来。
3.6 一张图看懂TX均衡的干预效果
下面这张SVG把发送器、信道、接收器的信号变化画出来了。对照看,更容易理解“预加重抬高频、去加重压低频”这句话的实际含义。
从上图可以看出,预加重在数据跳变时拉高了幅度(红色波形),去加重在数据不变时压低了幅度(绿色波形)。它们的共同目的都是为了补偿信道的高频损耗,让接收端眼图更开阔。
3.7 绕不开的注意事项
- 功耗与均衡的权衡: 预加重会增加发送器峰值电流,注意散热和电源完整性。去加重相对节能,但幅度变化可能引起共模噪声。
- 码型依赖性: 长连“1”或长连“0”下,去加重的稳态电平会“塌陷”,接收端DC恢复能力不够的话,容易产生基线漂移。建议用PRBS23以上码型验证。
- 不可单独优化TX端: 我见过团队把TX均衡调得完美,结果RX端的均衡器反而被饱和了。始终要收发联调。
好了,这一章的内容就是这些。把TX均衡概念吃透,后面章节讲RX均衡和整体链路调试时,你就能更快形成系统认知。自己找一套开发板,调一调那几个寄存器,比看十遍书都管用。