4. 数据编码基础:NRZ编码与PAM4编码、眼图与误码率、编码对CDR的影响

各位同学,咱们今天聊聊数据编码。这玩意儿看着基础,但你要是搞不懂它,后面CDR设计肯定要栽跟头。我当年刚入行时,就吃过这个亏——以为编码就是简单的0和1,结果调试时眼图一塌糊涂,找了两天bug才发现是编码方式选错了。

4.1 NRZ编码:最朴素的二进制

NRZ,全称Non-Return-to-Zero,不归零编码。说白了就是:高电平代表1,低电平代表0。简单粗暴,直接了当。

但这里有个坑——NRZ没有时钟信息。你想想看,如果连续发一串1,电平就一直高着,接收端怎么知道发了几个1?这就是NRZ的“直流分量”问题。

⚠ 注意: NRZ编码的频谱在低频处有大量能量,这对AC耦合的通道非常不友好。我曾经在一个10Gbps的项目中,因为没处理好低频分量,导致接收端DC偏移严重,眼图直接闭合。

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都不一样。

💡 经验之谈: 选择NRZ还是PAM4,要看你的通道质量和速率需求。56Gbps以下,NRZ还是主流;56Gbps以上,PAM4基本是唯一选择。

4.3 眼图与误码率:信号质量的照妖镜

眼图,就是把接收到的信号波形叠加在一起,形成像眼睛一样的图案。它反映了信号的质量——眼开得越大,信号越好。

NRZ的眼图只有一个眼,PAM4有三个眼。每个眼的高度、宽度、抖动,都直接决定了误码率。

误码率,BER,Bit Error Rate,就是出错的比特数占总比特数的比例。光模块的典型要求是BER < 1e-12,也就是一万亿个比特里最多错一个。

眼图和BER的关系很直接:眼图越差,BER越高。但要注意,眼图好不一定BER就低——因为BER还受编码方式、均衡算法等因素影响。

📌 核心公式: BER ≈ 0.5 * erfc(Q/√2),其中Q = (眼高) / (噪声标准差)。眼高越大,Q值越大,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%的带宽浪费,但实现复杂。
  • 扰码: 对数据进行随机化处理,减少长连相同符号的概率。
⚠ 注意: 编码方式的选择要综合考虑带宽效率、CDR性能、实现复杂度。没有完美的编码,只有最适合你系统的编码。

下面这张图展示了NRZ和PAM4的编码结构对比,以及它们对CDR的影响路径:

NRZ与PAM4编码对CDR的影响 NRZ编码 数据流:10110010 电平数:2(0和1) 每符号比特:1 眼图:1个眼 CDR挑战: • 需要数据跳变来恢复时钟 • 长连0/1会导致失锁 • 需要8B/10B编码辅助 PAM4编码 数据流:00 01 10 11 电平数:4(-3,-1,+1,+3) 每符号比特:2 眼图:3个眼 CDR挑战: • 需要恢复4个电平阈值 • 各眼抖动特性不同 • 对非线性更敏感 编码方式 → 眼图质量 → CDR恢复难度 → 系统误码率

嗯,这里要注意一点:编码对CDR的影响不是孤立的。它和通道特性、均衡算法、时钟抖动都有关系。我建议你在设计CDR时,先把编码方式定下来,然后根据编码特点去优化其他模块。

好了,这一节就到这里。编码是基础,但基础不牢,地动山摇。下一节咱们聊聊更具体的CDR架构,到时候你会看到编码的影响无处不在。


专注资料整理