一、SerDes概述:什么是SerDes?为什么需要SerDes?
大家好,我是老周。做高速接口设计十几年了,今天咱们聊聊SerDes。
SerDes这个词,你肯定听过。但到底什么是SerDes?说白了,就是SERializer(串行器)和DESerializer(解串器)的合称。它的工作很简单:把多路并行数据转成一路高速串行数据发出去,收端再把串行数据转回并行。
你可能会问:为什么非要这么折腾?直接并行走不行?
嗯,这个问题我当年刚入行时也问过师傅。他让我看了一块老电路板,上面密密麻麻排了32根数据线,跑100MHz。后来换成SerDes,只用两根差分线,跑3.2Gbps。你想想看,这差距有多大。
核心结论:SerDes的本质是用时间换空间——用更高的速率换取更少的物理连线。
1.1 为什么需要SerDes?
我总结了一下,主要有三个原因:
- 引脚数量爆炸:如果DDR4用并行总线,64位数据需要至少64根线。而用SerDes,4对差分线就够了。我在一个FPGA项目里,就因为引脚不够,硬生生把设计从并行改成了SerDes,省了40多个引脚。
- 信号完整性问题:并行总线速率一高,skew(偏斜)和crosstalk(串扰)就压不住。SerDes用差分信号,天然抗共模干扰。我记得有一次调试,并行总线跑到500MHz就眼图闭合了,换成SerDes跑到10Gbps还稳稳的。
- 功耗和成本:线少了,PCB层数就能降下来。一个8层板改成6层板,成本能省30%以上。
我的经验:选不选SerDes,有个简单判断——如果速率超过1Gbps或者连线超过20根,直接上SerDes准没错。
1.2 SerDes的基本架构
SerDes的架构,其实不复杂。我画了一张图,你看一眼就明白了。
这张图里,发送端把并行数据喂给Serializer,Serializer在PLL提供的时钟控制下,把数据一位一位地串行发出去。接收端用CDR(时钟数据恢复)从串行数据里把时钟提出来,再用Deserializer把数据拼回并行。
1.3 SerDes的工作原理
工作原理其实就三步:
- 串行化:并行数据在发送时钟的每个周期被锁存,然后按位依次输出。比如8位数据D[7:0],在8个时钟周期里依次送出D0、D1...D7。
- 传输:串行数据通过差分线、光纤或背板传输。差分信号用两根线传一个信号,一根传正相,一根传反相,接收端取差值,抗干扰能力极强。
- 解串:接收端用CDR从数据流里恢复出时钟,然后用这个时钟把串行数据重新拼成并行数据。
注意:CDR是SerDes最核心也最容易出问题的部分。我曾经在一个项目中,因为PCB走线太长导致信号衰减,CDR锁不住时钟,数据全乱套。后来加了均衡器才搞定。
1.4 常见的SerDes类型
实际项目中,SerDes分好几种。我列个表,方便你对比:
| 类型 | 典型速率 | 应用场景 | 我的评价 |
|---|---|---|---|
| 并行SerDes | 几百Mbps ~ 几Gbps | 芯片间互联、背板通信 | 入门级,容易上手 |
| 嵌入式时钟SerDes | 1Gbps ~ 12Gbps | PCIe、SATA、USB | 最常用,CDR是关键 |
| 高速SerDes | 12Gbps ~ 112Gbps | 数据中心、5G基站 | 难度大,PAM4调制是趋势 |
避坑指南:选型时别只看速率。我曾经选了一款标称10Gbps的SerDes,结果在长距离背板上根本跑不满。后来才发现,它的驱动能力不够。所以一定要看通道损耗预算和均衡能力。
1.5 一个简单的例子
假设我们要传一个8位数据0xA5(二进制10100101)。
发送端会这样工作:
- 并行输入:10100101
- 串行输出(LSB first):1→0→1→0→0→1→0→1
- 差分信号:TX+和TX-互为反相,接收端取差值
接收端收到串行数据后,CDR先恢复出时钟,然后用这个时钟把数据一位位收进来,再拼成8位并行数据0xA5。
嗯,听起来简单吧?但实际做起来,CDR的锁定时间、抖动容限、误码率,每一个都是坑。我后面会专门讲这些。
好了,这一章就到这里。SerDes的基本概念、为什么需要它、架构和工作原理,你应该心里有数了。下一章我们深入讲讲SerDes的核心模块——CDR和均衡器。
本章要点回顾:
- SerDes = 串行器 + 解串器,用高速串行替代并行总线
- 三大优势:减少引脚、改善信号完整性、降低功耗成本
- 基本架构:TX(Serializer+PLL)→ 通道 → RX(CDR+Deserializer)
- 工作原理:串行化 → 传输 → 解串
- 选型注意:速率不是唯一指标,通道损耗和均衡能力同样重要
可可精品资料库