物理层基础:SerDes基本原理、PCS与PMA分层架构、时钟数据恢复(CDR)原理

好,咱们今天聊聊高速收发器的物理层。这部分内容,说白了就是整个系统的地基。地基没打好,上层应用再花哨也白搭。我刚开始接触SerDes时,总觉得这东西像个黑盒子,数据进去,数据出来,中间发生了什么?嗯,今天我们就把它拆开看看。

一、SerDes基本原理:串行化与解串行化

SerDes,全称Serializer/Deserializer。名字很直白,就是把并行数据转成串行,再转回来。为什么要这么折腾?

你想想看,如果我们要在PCB上走一组32位的数据总线,频率200MHz,那得32根线。信号之间还要等长、要避开干扰,板子画起来头都大。但用SerDes,把32位数据串化成一路高速差分信号,比如6.4Gbps,两根线搞定。这就是它的核心价值——用速度换宽度。

核心公式: 串行速率 = 并行数据宽度 × 并行时钟频率 × 编码开销

举个例子:8位数据,100MHz时钟,8b/10b编码(开销20%),串行速率 = 8 × 100M × 1.2 = 960Mbps

我在项目中遇到过一个问题:客户要求用5Gbps的SerDes,但PCB走线长度超过30cm。当时没太在意信号完整性,结果眼图一塌糊涂。后来加了预加重和均衡才救回来。所以记住,SerDes不是简单的串并转换,它背后是一整套信号完整性工程。

二、PCS与PMA分层架构

SerDes内部通常分成两层:PCS(物理编码子层)和PMA(物理介质接入子层)。这两个层各司其职,配合默契。

2.1 PMA层:模拟硬核

PMA是离物理介质最近的一层。它处理的是真正的模拟信号。主要功能包括:

  • 串行化/解串行化:把并行数据转成串行比特流,或者反过来
  • 时钟生成:用PLL产生高速时钟
  • 时钟数据恢复(CDR):从数据流中提取时钟
  • 驱动与接收:差分信号的发送和接收
  • 预加重与均衡:补偿信道损耗

PMA是纯模拟电路,工艺敏感,设计难度大。所以大部分FPGA厂商都把PMA做成硬核,用户直接调用就好。我个人习惯是,不到万不得已不去动PMA的参数,默认配置通常已经优化得不错了。

2.2 PCS层:数字逻辑

PCS是数字逻辑层,负责数据的编码、解码、对齐、加扰等处理。常见功能包括:

  • 8b/10b或64b/66b编码:保证DC平衡,提供时钟信息
  • 通道绑定:把多个SerDes通道合并成一个逻辑通道
  • 弹性缓冲:处理跨时钟域的数据同步
  • PRBS生成与检测:用于链路测试

这里我特别想强调一下编码的作用。8b/10b编码会把每8位数据变成10位,虽然多了25%的开销,但它保证了数据流中不会出现连续的0或1。为什么重要?因为CDR需要数据有足够的跳变来恢复时钟。如果数据全是0,CDR就失锁了。

我的经验: 在做链路调试时,先用PRBS模式测试PMA层,确认眼图合格后,再打开PCS层的编码和对齐功能。这样分层排查问题,效率高很多。

三、时钟数据恢复(CDR)原理

CDR是SerDes中最核心、也最精妙的部分。它的任务很简单:从数据流中提取出时钟。但实现起来,学问大了。

3.1 为什么需要CDR?

传统的同步通信需要独立的时钟线。但SerDes为了节省引脚,把时钟信息嵌入到数据中。接收端必须自己把时钟“挖”出来。这就是CDR存在的意义。

3.2 CDR的基本架构

常见的CDR架构有两种:

架构类型 工作原理 优缺点
基于PLL的CDR 用鉴相器比较数据边沿和本地时钟,通过环路滤波器控制VCO 抖动性能好,但锁定时间长
基于相位插值的CDR 用多相时钟和插值器,动态选择最佳采样相位 锁定快,适合突发模式

大多数FPGA的GTP/GTX收发器用的是相位插值型CDR。我记得第一次调试时,发现CDR锁定指示灯一直不亮。查了半天,原来是参考时钟频率配错了。CDR对参考时钟的精度要求很高,一般要求±100ppm以内。

3.3 CDR的工作过程

  1. 频率捕获:CDR先调整本地时钟频率,使其接近数据速率
  2. 相位跟踪:锁定频率后,微调相位,找到最佳采样点
  3. 数据采样:用恢复出的时钟对数据进行重定时

避坑指南: 我曾经遇到一个案例,CDR在低温下工作正常,高温下频繁失锁。后来发现是PCB上参考时钟的走线太长,引入了过多抖动。解决办法是把参考时钟源尽量靠近收发器,并且用差分走线。

四、知识体系结构图

下面我用一张SVG图来总结本章的核心逻辑。这张图展示了SerDes从并行数据到串行传输,再到接收恢复的完整链路。

SerDes物理层知识体系 并行数据输入 PCS层:编码/加扰 PMA层:串行化 差分传输信道 (PCB走线/电缆/光纤) PMA层:解串+CDR PCS层:解码/对齐 并行数据输出 CDR核心原理 ① 频率捕获 → ② 相位跟踪 → ③ 数据重定时 关键指标:抖动容限、锁定时间、跟踪带宽 ⚠ 参考时钟精度需 ≤ ±100ppm

五、小结

物理层是高速收发器的基础。SerDes用串行化解决了并行总线的瓶颈,PCS和PMA的分层设计让数字和模拟各司其职,CDR则从数据中“变”出时钟。这三者环环相扣,缺一不可。

我个人觉得,理解物理层最好的方法就是动手调一次。找个开发板,配个GTX或GTP,跑个PRBS测试,看看眼图,调调预加重。实践一次,比看十遍书都管用。

一句话总结: SerDes不是魔法,是工程。PCS管逻辑,PMA管模拟,CDR管时钟。分层理解,逐个击破。

可可精品资料库