3. 1000BASE-T信号编码与PAM5归纳总结
各位,今天我们聊核心。千兆以太网物理层用了一种很聪明的调制方式——PAM5。说白了就是一对线上同时传5种电平。为什么要用5个电平?而不是4个、8个?我刚开始接触时也一头雾水,后来被一个实际的链路抖动问题逼着啃完了标准,嗯,今天我把关键点掰开了讲。
3.1 为什么是PAM5?
1000BASE-T要在四对五类线上实现1000Mbps的全双工。每对线需要承载250Mbps。如果只用NRZ(2电平),带宽需求太高。用4电平PAM能降一半,但还不够。标准选用了5电平——多出来的那1个电平不是白给的,它用来做**差错检测**和**链路控制**。
| 调制方式 | 每符号比特数 | 波特率 (MBaud) | 噪声鲁棒性 |
|---|---|---|---|
| NRZ (2电平) | 1 | 250 | 强 |
| MLT-3 (3电平) | 1 | 125 | 中 |
| PAM5 (5电平) | 2 (实际2.33含辅助) | 125 | 弱于NRZ,但配合编码可纠 |
我的经历: 有一回实验室的千兆链路误码率总偏高,示波器看眼图,五个电平叠在一起几乎分不清。后来发现是发送端预加重没配好。如果改用PAM8,直接没法跑。PAM5是在带宽和信噪比之间找的那个平衡点。
3.2 8B1Q4 编码
8个二进制比特→4个四进制符号(每符号2比特),再映射到1个PAM5电平。注意:不是简单的查表,是带扰码的。为什么要加扰?你想想,如果数据全是0或全是1,电平一直不变,时钟恢复会出问题。
// 8B1Q4 映射示例(简化):
// 输入字节 0x53 = 0101 0011
// 分成4组2bit:01 | 01 | 00 | 11
// 映射为四进制符号:1, 1, 0, 3
// 最终PAM5电平(经过直流平衡调整):+1V, +1V, 0V, +2V
实际标准里不是直接映射,而是在编码前对原始数据做移位寄存器的加扰,再用LFSR产生的伪随机序列去控制极性翻转。我建议你去看IEEE 802.3 40.2.1.2节,里面那张状态机图很关键。
3.3 四维5电平符号映射(4D-PAM5)
四对线同时发送一个4维符号。每个维度(每对线)取值-2,-1,0,+1,+2。加起来共有5^4=625种组合。标准定义了其中512种用于数据(每维2.33比特理论,实际2.5比特),剩余的113种用于控制、空闲和错误指示。
要点: 四对线不是独立的。发送端必须保证所有线上符号的直流平衡。标准用一个5状态FIFO来调整极性,确保每对线的长时平均电平为零。
3.4 发送电平与接收阈值
差分发送电平幅度为±2V。对应的接收判决阈值通常设置在-1.5V, -0.5V, +0.5V, +1.5V。由于线损和噪声,实际眼高没那么理想。我在项目中调试过一个板子,五电平眼图中间两个电平几乎闭合,原来是接收端的比较器参考电压有偏移,换了精密电阻就好了。
| PAM5电平代码 | 差分电压 (V) | 理想判决阈值 (V) |
|---|---|---|
| +2 | +2.000 | > +1.5 |
| +1 | +1.000 | +0.5 ~ +1.5 |
| 0 | 0.000 | -0.5 ~ +0.5 |
| -1 | -1.000 | -1.5 ~ -0.5 |
| -2 | -2.000 | < -1.5 |
3.5 信号编码的避坑指南
我曾经踩过的坑: 在做一致性测试时,发现发送端PAM5电平的对称性总不达标——+2V和-2V幅值差了80mV。查了两天才找到原因:发送端共模扼流圈的直流偏置不对称。老板问为什么拖这么久,我说“五电平,五个坑,填了一个又冒一个”。后来我们在设计规范里明确要求共模扼流圈的DC电阻匹配精度在1%以内。
- 加扰种子不能全0: 如果LFSR初始值全0,输出的扰码序列也全是0,相当于没加扰。我记得有些老芯片有这种bug。
- 直流平衡不要只靠一个维度: 四对线的直流分量是独立调整的,但测试时需要同时看每对的累计非零积分。
- 符号间干扰(ISI)管理: PAM5比PAM3更容易受ISI影响,因为电平间隔只有1V(差分)。发送端预加重(3dB~6dB)几乎是必须的。
3.6 测试中的观察点
合规测试时,我会重点关注以下几点:
- 眼图模板: PAM5需要测四个眼,每个眼高至少0.3V(协议要求),实际通常要0.5V以上才有余量。
- 噪声基底: 关闭发送,用频谱仪看接收端本底噪声。如果-60dBm以上,基本跑不到100米。
- 差分偏移: 发送±2V的实际值偏差不能超过±5%。这个用示波器测差分波形很好抓。
- 符号错误率: 长时间跑PRBS31,统计符号错误。我一般要求24小时零错误才算通过初测。
小技巧: 如果五个电平的分布不均匀——比如中间零电平出现频率远高于两端——说明直流平衡算法可能没有正常工作。快速检查方法:抓一段数据,统计电平直方图,理想情况下各电平出现概率接近相等(均匀分布)。