4. 数据编码基础:NRZ编码与PAM4编码、眼图与误码率、编码对CDR的影响
各位同学,咱们今天聊聊数据编码。这玩意儿看着基础,但你要是搞不懂它,后面CDR设计肯定要栽跟头。我当年刚入行时,就吃过这个亏——以为编码就是简单的0和1,结果调试时眼图一塌糊涂,找了两天bug才发现是编码方式选错了。
4.1 NRZ编码:最朴素的二进制
NRZ,全称Non-Return-to-Zero,不归零编码。说白了就是:高电平代表1,低电平代表0。简单粗暴,直接了当。
但这里有个坑——NRZ没有时钟信息。你想想看,如果连续发一串1,电平就一直高着,接收端怎么知道发了几个1?这就是NRZ的“直流分量”问题。
NRZ的优点是简单,带宽利用率高。每个符号携带1比特信息,波特率等于比特率。缺点嘛,就是抗干扰能力弱,而且没有内嵌时钟。
4.2 PAM4编码:四电平的艺术
PAM4,Pulse Amplitude Modulation 4-level,脉冲幅度调制4电平。它用4个不同的电压电平来表示2比特信息:00、01、10、11。
为什么要用PAM4?因为带宽不够用了。在56Gbps、112Gbps这些高速率下,NRZ的带宽需求太高,通道根本扛不住。PAM4用同样的波特率,数据率翻倍。
| 参数 | NRZ | PAM4 |
|---|---|---|
| 每符号比特数 | 1 | 2 |
| 信噪比需求 | 低 | 高(约高9.5dB) |
| 眼图 | 1个眼 | 3个眼 |
| 复杂度 | 低 | 高 |
但PAM4也有它的麻烦。电平间距只有NRZ的三分之一,对噪声和失真更敏感。我调试过一个PAM4的接收机,光是均衡器就调了两周,因为每个电平的ISI都不一样。
4.3 眼图与误码率:信号质量的照妖镜
眼图,就是把接收到的信号波形叠加在一起,形成像眼睛一样的图案。它反映了信号的质量——眼开得越大,信号越好。
NRZ的眼图只有一个眼,PAM4有三个眼。每个眼的高度、宽度、抖动,都直接决定了误码率。
误码率,BER,Bit Error Rate,就是出错的比特数占总比特数的比例。光模块的典型要求是BER < 1e-12,也就是一万亿个比特里最多错一个。
眼图和BER的关系很直接:眼图越差,BER越高。但要注意,眼图好不一定BER就低——因为BER还受编码方式、均衡算法等因素影响。
我在项目中遇到过一种情况:眼图看着还行,但BER就是下不去。后来发现是PAM4的中间眼受非线性影响,实际Q值比计算值低很多。所以,别光看眼图,要结合BER测试一起分析。
4.4 编码对CDR的影响
CDR,Clock and Data Recovery,时钟数据恢复。它的核心任务是从数据流中提取时钟,然后用这个时钟去采样数据。
编码方式直接影响CDR的难度。NRZ没有内嵌时钟,CDR必须靠数据跳变来恢复时钟。如果数据长时间不跳变(比如连续发0或1),CDR就会失锁。
PAM4的CDR更复杂。它需要恢复出4个电平的判决阈值,而且每个电平的抖动特性不同。我调试PAM4的CDR时,发现中间眼的抖动比上下眼大很多,需要单独优化。
为了帮助CDR工作,实际系统中会使用一些编码技巧:
- 8B/10B编码: 保证数据流中有足够的跳变,避免长连0或长连1。代价是25%的带宽浪费。
- 64B/66B编码: 效率更高,只有3%的带宽浪费,但实现复杂。
- 扰码: 对数据进行随机化处理,减少长连相同符号的概率。
下面这张图展示了NRZ和PAM4的编码结构对比,以及它们对CDR的影响路径:
嗯,这里要注意一点:编码对CDR的影响不是孤立的。它和通道特性、均衡算法、时钟抖动都有关系。我建议你在设计CDR时,先把编码方式定下来,然后根据编码特点去优化其他模块。
好了,这一节就到这里。编码是基础,但基础不牢,地动山摇。下一节咱们聊聊更具体的CDR架构,到时候你会看到编码的影响无处不在。