2. 收发器基础:高速串行收发器原理、PMA与PCS层、时钟数据恢复(CDR)、SerDes架构
好,咱们进入正题。这一章聊的是收发器基础,说白了就是高速串行收发器到底是怎么工作的。你想想看,为什么现在芯片之间通信动不动就几十Gbps?靠传统的并行总线肯定不行了。SerDes(串行器/解串器)就是解决这个问题的核心。
我个人习惯把SerDes理解成一个“数据变形金刚”——把宽位宽的并行数据变成高速串行流,扔到一根线上传过去,再在接收端变回并行数据。听起来简单,但里面的门道可不少。
2.1 高速串行收发器原理
先说说为什么需要串行。传统的并行总线,比如你以前可能用过的PCI或者DDR内存接口,数据线多、时钟线也多。到了高频,信号之间串扰严重,时序对齐也成了噩梦。我做过一个项目,板子上并行总线跑到200MHz就再也上不去了,眼图惨不忍睹。
高速串行收发器把这些问题都绕开了。它只用一对差分线(或者几对),数据速率却可以跑到几十Gbps。原理其实不复杂:
- 发送端:把并行数据串行化,加上编码(比如8B/10B或64B/66B),然后通过差分驱动器送出去。
- 接收端:用时钟数据恢复(CDR)从数据流里把时钟“挖”出来,再解串、解码,还原成并行数据。
这里有个关键点:没有独立的时钟线。时钟是嵌在数据流里的。接收端必须自己把时钟恢复出来。嗯,这就是CDR的活儿。
核心要点:高速串行收发器的本质是“用频率换宽度”。用更高的速率跑更少的线,从而避开并行总线的时序和串扰问题。
2.2 PMA与PCS层
收发器的内部结构,通常分成两层:PMA(物理介质附加层)和PCS(物理编码子层)。这两个词听起来挺唬人,其实分工很明确。
PMA层:模拟硬核
PMA是收发器的“物理肌肉”。它处理的是模拟信号,包括:
- 发送驱动器:把数字信号变成差分模拟信号,驱动PCB走线。
- 接收均衡器:补偿信号在传输过程中的衰减。高频信号在PCB上损耗很大,接收端必须做均衡(CTLE、DFE等)。
- 时钟生成:用PLL(锁相环)产生高速时钟。
- CDR:时钟数据恢复,后面单独讲。
我记得第一次调PMA参数时,被那些均衡系数搞晕了。后来发现,其实很多FPGA厂商提供了自动调优工具,但理解原理还是必要的——遇到极端情况,手动调才能救命。
PCS层:数字逻辑
PCS是收发器的“数字大脑”。它处理的是数字域的逻辑,包括:
- 编码/解码:比如8B/10B编码,保证DC平衡和足够的跳变沿。
- 通道绑定:把多个通道绑定成一个逻辑通道。
- 时钟补偿:处理发送端和接收端时钟频率的微小差异。
- PRBS生成/校验:用于链路测试。
说白了,PCS层负责把数据“包装”好,让PMA层能顺利传出去。PMA层负责把包装好的数据“物理”地发出去。
| 层次 | 主要功能 | 实现方式 |
|---|---|---|
| PMA | 串行化、驱动、均衡、CDR | 模拟电路(硬核) |
| PCS | 编码、解码、通道绑定、时钟补偿 | 数字逻辑(可配置) |
2.3 时钟数据恢复(CDR)
CDR是收发器里最核心、也最容易出问题的部分。它的任务是从数据流里提取出时钟,并用这个时钟去采样数据。
为什么会需要CDR?因为发送端和接收端的时钟是独立的,频率不可能完全一样。哪怕只有几十个ppm的偏差,时间长了也会导致采样错误。
CDR的基本原理是:锁相环(PLL) + 相位检测器。接收到的数据边沿和本地时钟的相位做比较,调整VCO(压控振荡器)的频率和相位,直到锁定。
我曾经在一个项目里遇到过CDR锁不住的问题。信号质量其实还行,但数据模式太“长”了——连续很多个相同的比特,没有跳变沿。CDR没有边沿可参考,频率就漂了。后来加了8B/10B编码,保证数据流里有足够的跳变,问题就解决了。
避坑指南:设计链路时,一定要保证数据流有足够的跳变密度。如果数据本身可能长时间不变,就用编码(8B/10B、64B/66B)或者加扰码来保证。
2.4 SerDes架构
SerDes的架构,从大的方向分有两种:并行时钟SerDes和嵌入式时钟SerDes。咱们现在用的基本都是后者。
嵌入式时钟SerDes的典型架构是这样的:
发送端:
并行数据 → PCS编码 → 并串转换 → 发送驱动器 → 差分线
接收端:
差分线 → 接收均衡 → CDR恢复时钟 → 串并转换 → PCS解码 → 并行数据
这里面有几个关键设计点:
- 预加重/去加重:发送端在信号跳变时加大幅度,补偿高频损耗。
- CTLE(连续时间线性均衡):接收端的高通滤波器,放大高频分量。
- DFE(判决反馈均衡):消除码间干扰(ISI),尤其对长走线有效。
我建议你在做FPGA收发器设计时,先跑一下IBERT(集成误码率测试仪)工具。它能帮你快速评估链路质量,看看眼图、误码率、均衡设置是否合理。别一上来就调复杂的参数,先看眼图——眼图睁得开,链路基本没问题。
注意:SerDes的功耗和散热不能忽视。高速收发器工作时电流很大,尤其是多通道同时跑的时候。PCB设计时要保证电源完整性,去耦电容要放够。
2.5 知识体系结构图
下面这张图总结了本章的核心逻辑。你可以看到,从并行数据到串行传输,再到接收恢复,每一步都有对应的模块在干活。
这张图把发送端、传输介质、接收端串起来了。你注意看,接收端最核心的就是CDR和均衡——这两个模块直接决定了链路能不能稳定工作。
好了,这一章的内容就到这儿。收发器的基础概念先铺开,后面咱们再深入每个模块的具体实现。记住一句话:SerDes设计的本质,是模拟和数字的博弈。你既要懂PLL、均衡这些模拟电路,也要懂编码、协议这些数字逻辑。两手都要硬。
一句话总结:高速串行收发器 = PMA(模拟硬核) + PCS(数字逻辑) + CDR(时钟恢复)。三者缺一不可,任何一个环节出问题,链路都跑不起来。
可可精品资料库