物理层基础知识:SerDes、差分信号、速率与编码
讲JESD204B,绕不开物理层。很多工程师调试链路时只盯着协议层,结果眼图一团糟还不知道为什么。我个人的习惯是——先摸清物理层的脾气,再谈链路建立。
这一节我们就来拆解四个核心概念:SerDes结构、差分信号、数据速率和编码方式。说白了,它们决定了你的信号能不能从发送端完整地跑到接收端。
SerDes结构:收发器的骨架
SerDes是Serializer/Deserializer的缩写。发送端把并行的多路数据转换成高速串行流,接收端再把它还原成并行数据。JESD204B的链路本质上就是一条或多条SerDes通道。
一个典型的SerDes通道包含以下模块:
- PLL(锁相环):产生高速时钟,频率精度和抖动直接影响眼图质量。
- TX驱动器:把串行数据驱动到差分线上,输出摆幅、预加重可调。
- RX均衡器:补偿传输损耗,常见有CTLE(连续时间线性均衡)和DFE(判决反馈均衡)。
- CDR(时钟数据恢复):从数据流中提取时钟,并调整采样相位。
我在一个12Gbps的项目中遇到过CDR锁定失败的问题。后来发现是TX端的预加重没打开,导致接收端眼图闭合。调试时我习惯先检查PLL锁定状态,再看CDR的锁定指示,这两个锁定了,物理层基本就通了。
差分信号:抗干扰的法宝
JESD204B高速信号走的是差分对(P和N)。差分信号比单端信号有两个明显优势——共模抑制和低辐射。
你想想看,如果外界干扰同时作用在P和N线上,接收端的减法器就会把共模干扰抵消掉。这就是差分信号抗干扰的本质。
实际布线时要注意这两条线必须等长、紧耦合。我记得有一次调一个8Gbps的链路,眼图张开角度总是不够。用示波器一看,P和N的长度差了5mm……改版后眼图马上变干净。
数据速率:别被标称值迷惑
JESD204B标准定义的物理层速率范围很宽,从1Gbps到12.5Gbps(B版),C版甚至支持到32Gbps。但速率不是越高越好。
这里有一个关键公式:
Line Rate = (M × F × N' × 10) / (L × 8)
其中M是转换器个数,F是每帧字节数,N'是样本比特数(包括控制位),L是通道数。那个10是8b/10b编码带来的开销。
实际项目中,我建议你先根据ADC/DAC的采样率和分辨率算出理论线速率,再留出20%~30%的裕量。为什么要留裕量?因为PCB损耗、连接器反射、时钟抖动都会吃掉你的眼图裕量。
| JESD204B版本 | 最高线速率 (Gbps) | 典型应用 |
|---|---|---|
| Rev A | 3.125 | 低速ADC/DAC |
| Rev B | 12.5 | 中高速转换器 |
| Rev C | 32.0 | 射频直采/雷达 |
曾经有一个客户用了一款12.5Gbps的SerDes芯片做10Gbps的JESD204B链路,结果眼图一直不过。我带上示波器去现场,发现他们PCB的走线没有做阻抗连续,S参数在10GHz附近有个很大的谐振峰。后来换了低损耗板材,问题解决。这件事让我养成了一个习惯:选型时至少留20%的速率裕量。
编码方式:8b/10b与64b/66b
JESD204B物理层用的是8b/10b编码。每8位数据被编码成10位,额外增加2位用于直流平衡和时钟恢复。
8b/10b编码的好处是:
- 保证数据传输中0和1的数量大致相等,避免直流偏移
- 提供足够的跳变沿,让CDR能稳定恢复时钟
- 内置运行不一致(Running Disparity)检测,可以快速发现单比特错误
编码开销是20%,也就是说实际传输的有效数据速率只有线速率的80%。比如线速率是12.5Gbps,有效数据吞吐量就是10Gbps。
后来JESD204C引入了64b/66b编码,开销降到3%左右,但物理层更复杂。目前主流还是8b/10b,我建议大家先掌握这个。
知识结构总览
下面这张图把物理层的四个核心维度串在一起,方便你理解它们之间的关系:
调试时的关注点
有了这些基础知识,调试时你就有方向了。我个人的排查顺序是这样的:
- 先看PLL和CDR的锁定状态:设备寄存器里通常有明确的锁定指示位。
- 再测眼图:用示波器观察眼高、眼宽、抖动。合格的眼图应该满足JESD204B的模板要求。
- 最后跑PRBS(伪随机码)测试:让发送端发PRBS模式,接收端统计误码率。比特误码率低于1e-12才算可靠。
物理层是JESD204B链路的基础。你把这四个概念吃透了,后续链路建立、眼图测量、抖动分析都会顺很多。