LVDS/SerDes高速采集接口避坑

高速采集系统里,LVDS和SerDes是主力接口。看似简单——差分传输、低电压摆幅、抗干扰能力强——实际项目中却坑得你怀疑人生。

这篇不讲原理,讲设计决策和验证方法,特别是多通道并行的Skew控制和眼图验证——这两个点踩坑的最多。

痛点一:AC耦合电容位置与容值选择

现象

LVDS链路调试时,眼图勉强张开,但高频图案(如0101交替)误码率异常高。换电容容值后,有时好转,有时恶化,毫无规律。

错误做法

  • 无脑加AC耦合:所有LVDS链路都串0.1μF电容,“反正不会错”

  • 位置随意:电容放发送端、接收端、中间任意位置,“都差不多”

  • 容值抄参考设计:直接照搬数据手册推荐值,不考虑实际数据率和码型

正确做法

决策流程:

💡 工程提示:上述容值下限公式为工程估算方法,实际高速链路中还需考虑眼图退化和直流平衡恢复时间。建议在计算值基础上通过仿真或实测确认最佳容值。

关键决策

场景AC耦合位置容值推荐
同板LVDS(共地)不加--
跨板LVDS(有地回路)接收端数据率×10倍频率对应容值
SerDes(千兆以太网)两端0.1μF(典型)
热插拔模块接收端0.01μF + TVS保护

📌实测经验:AC耦合电容的寄生电感比容值更关键。高频应用优先选0402封装,避开0805以上大封装。

痛点二:端接阻抗失配

现象

LVDS信号边沿振铃明显,接收端眼图双线、抖动大。示波器测差分阻抗,只有75Ω,远低于100Ω标称值。

错误做法

  • 端接电阻随便放:放发送端、接收端、中间任意位置,“只要有就行”

  • 精度不讲究:用5%精度的普通电阻,“100Ω就是100Ω”

  • SerDes预加重乱调:眼图不好就加大预加重,“预加重越大越好”

正确做法

LVDS端接三原则:

  1. 位置:100Ω端接电阻必须放接收端,紧邻接收器输入管脚(<5mm)

  2. 精度:至少1%精度金属膜电阻,温度系数<100ppm/°C(部分场景0.1%薄膜电阻更优)

  3. 布局:差分对下方不要走其他信号,避免阻抗突变

SerDes预加重调参流程:
预加重不是越大越好。过度预加重会导致眼图“睁眼”但抖动恶化、高频成分过强EMI超标、接收端均衡器饱和。

调参流程:

关键决策

参数错误选择正确选择原因
端接位置发送端接收端LVDS是电流模驱动,端接必须在末端
端接精度5%普通电阻1%金属膜(或0.1%薄膜)5%误差=±5Ω,差分阻抗偏差10%
预加重无脑最大根据链路损耗调过强预加重增加抖动和EMI

📌实测经验:用TDR(时域反射计)实测PCB差分阻抗,不要信仿真值。实际生产中,PCB厂商的阻抗控制误差可达±10%。

痛点三:多通道LVDS的Skew控制与预算分配

现象

144路并行LVDS采集系统,调试时发现:

  • 单路眼图都合格

  • 并行数据重建后,部分通道数据错位

  • 降低采样率后问题消失,但无法满足带宽需求

根本原因:多通道Skew超出预算,采样窗口重叠失败。

错误做法

  • 只关注单路时序:每路LVDS单独调试通过,就以为系统OK

  • 忽略PCB走线差异:不同通道走线长度差几百mil,“LVDS快得很,差这点没事”

  • IODELAY不校准:直接用默认值,“FPGA自动对齐”

正确做法

144路并行LVDS的Skew预算分配

假设系统参数:

  • 数据率:400Mbps(单路)

  • 时钟频率:200MHz(DDR采样)

  • 采样窗口:2.5ns(理论)

Skew预算总表:

误差来源Intra-pair Skew(对内)Inter-pair Skew(对间)备注
PCB走线≤5ps≤100ps等长匹配要求
接插件≤10ps≤50ps高速差分连接器
FPGA IO Delay0(可控)≤200psIODELAY校准后残差(取决于FPGA型号和温度范围)
发送端Skew≤5ps≤50psASIC输出离散性
接收端建立时间-≤150psFPGA建立时间离散性
总计预算≤20ps≤550ps-
设计余量≤10ps≤300ps留50%余量

关键决策点:

1. PCB走线Skew控制

Intra-pair Skew(对内):

  • 要求:P/N走线长度差 < 5mil

  • 控制:差分对紧耦合,同层走线,避免换层

  • 验证:TDR实测,或用网络分析仪测相位差

Inter-pair Skew(对间):

  • 要求:144对差分线长度差 < 200mil

  • 控制:蛇形走线等长匹配,等长误差 < 10mil

  • 挑战:144路布线空间紧张,需分层绕线

2. 接插件选型

接插件类型Intra-pair SkewInter-pair Skew结论
普通排针(2.54mm间距)50~100ps不可控❌ 高速LVDS禁用
高速差分连接器(如Samtec Q-Series)≤10ps≤50ps✅ 必须选用

💡选型提示:不同厂商的高速连接器Skew指标差异较大,选型时以具体数据手册为准,不可仅凭型号系列判断。

3. FPGA IODELAY动态校准

静态IODELAY不够用:

  • 不同IO bank的延迟单元离散性大(±20ps)

  • 温度变化导致延迟漂移(~2ps/°C)

  • 必须动态校准

校准方法:

  1. 发送端输出已知图案(如递增计数器)

  2. 接收端扫描IODELAY值,找到数据稳定窗口

  3. 锁定窗口中心值,周期性刷新(温度补偿)

实测数据示例:

通道组IODELAY校准前SkewIODELAY校准后Skew改善
Bank 0 (1-36路)450ps120ps73%
Bank 1 (37-72路)520ps150ps71%
Bank 2 (73-108路)380ps100ps74%
Bank 3 (109-144路)490ps140ps71%

关键决策

环节预算分配控制措施验证方法
PCB走线100ps等长匹配±10milTDR实测
接插件50ps高速差分连接器厂商数据手册
FPGA IO200psIODELAY动态校准自动化校准程序
系统余量300ps-全温测试验证

📌实测经验:多通道Skew校准是持续过程,不是一次性的。温度变化、老化、供电波动都会引入新的Skew,需周期性刷新IODELAY值(建议每秒刷新一次)。

痛点四:眼图验证方法论

现象

调试时眼图“看着还行”,但误码率测试一直不通过。换示波器测,发现眼图其实很烂——不同示波器、不同设置,眼图结果差异巨大。

错误做法

  • 测试条件随便设:用什么图案、多大码率、多长时间,“反正眼图能看”

  • 只看眼高眼宽:眼图张开就认为OK,不看抖动和对称性

  • 室温测完就交差:高温、低温不做验证,“实验室没问题就行”

正确做法

眼图验证完整方法论

一、测试条件设定

参数设定原则推荐值(400Mbps LVDS)
PRBS图案包含足够的低频和高频成分PRBS7(短期测试)/ PRBS31(长期测试)
数据率实际工作速率400Mbps
采样点数统计意义足够≥100k UI
温度范围覆盖工作环境-40°C / +25°C / +85°C
供电电压覆盖容差范围标称值±5%

PRBS图案选择逻辑:

二、关键指标解读

指标定义判定标准(LVDS)异常原因
眼高上下眼图开度≥200mV(典型值)幅度衰减、噪声
眼宽左右眼图开度≥0.5 UI(典型值)抖动、ISI
抖动RMS抖动的均方根值≤0.1 UI随机噪声、电源噪声
抖动PK-PK抖动的峰峰值≤0.3 UI确定性抖动、SSO
上升/下降沿对称性上升时间vs下降时间差异≤10%驱动器不对称、阻抗失配

眼图诊断流程:

三、温度循环退化验证

单温度点眼图测试不够,必须验证温度范围内的退化。

温度循环测试流程:

实测数据示例:

测试条件眼高眼宽抖动PK-PK结论
+25°C(常温)320mV1.8ns180ps基准
+85°C(高温)280mV1.6ns210ps眼高下降12.5%
-40°C(低温)350mV1.5ns250ps抖动恶化39%
温度循环后310mV1.7ns190ps无累积退化

关键决策

验证环节标准流程常见偷工减料风险
PRBS图案PRBS31长期测试只用PRBS7快速看ISI问题漏检
温度范围三点测试+循环只测室温现场失效
抖动分析RMS + PK-PK分别看只看总抖动无法定位根因
采样量≥100k UI看着差不多就停统计意义不足

📌实测经验:眼图测试最容易被“调参数”骗过去。固定一套测试条件,形成标准化测试报告,不要每次都换设置“凑眼图”。

痛点五:SerDes CDR失锁

现象

SerDes链路在正常数据传输时突然误码率飙升,恢复出厂设置后短暂正常,但问题反复出现。查硬件没发现问题,怀疑是CDR(时钟数据恢复)失锁。

错误做法

  • 训练序列随便设计:用固定图案0x55或0xAA,“足够跳变了”

  • CDR失锁后无感知:没有监控CDR状态,误码了才知道

  • 复位策略简单粗暴:失锁就全局复位,“重启能解决一切”

正确做法

CDR失锁的三大原因:

  1. 固定图案误锁:长连0或长连1期间,CDR丢失边沿信息,频率漂移

  2. 训练序列不足:锁定时间不够,或训练图案频谱不匹配

  3. 温度/电压漂移:锁定后环境变化,超出CDR跟踪范围

训练序列设计:

CDR看门狗机制:

温度/电压补偿:

参数温度系数电压系数补偿策略
CDR相位~0.5ps/°C~2ps/mV周期性重新锁定
PLL频率~1ppm/°C~0.5ppm/mV参考时钟校准
均衡器高温增益下降-自适应均衡

关键决策

场景错误做法正确做法备注
训练序列固定0x55PRBS + 跳变密度控制0x55频谱单一
CDR监控不监控,误码才知道周期性查询状态寄存器失锁比误码早发现
失锁恢复全局复位插入训练序列优先复位代价大

📌实测经验:CDR失锁问题往往在实验室环境(温度恒定)不出现,到了现场(温度波动大)才暴露。设计阶段必须做温度循环下的CDR稳定性测试。

FAQ

Q1:LVDS和SerDes有什么区别?什么时候用哪个?

A:LVDS是物理层电气标准(差分、低摆幅),SerDes是收发器架构(串行化/解串行化)。

LVDS适用场景:并行数据传输(如ADC多路输出)、短距离(<1m)、中等速率(<1Gbps)
SerDes适用场景:串行数据传输、长距离(>1m)、高速率(>1Gbps)

很多SerDes内部也用LVDS电气标准,但多了8b/10b编码、CDR、均衡等功能。

Q2:144路LVDS,Skew校准用什么方法最可靠?

A:IODELAY动态扫描是最可靠的方法:

  1. 发送端输出已知图案(如递增计数器或PRBS)

  2. 接收端从0到最大值扫描IODELAY

  3. 记录每个通道的数据稳定窗口

  4. 锁定窗口中心值

  5. 周期性刷新(补偿温度漂移)

不要依赖静态匹配(PCB等长做不到那么精确),也不要用“发送端调延迟”的方法(发送端通常没有可调延迟单元)。

Q3:眼图测试,采样量多大才够?

A:≥100k UI是基本要求,≥1M UI才能发现低概率事件(如1e-5级别的抖动峰值)。

快速验证可以用10k UI,但最终验证必须上100k以上。很多示波器默认只采集几千UI,要手动调大采样深度。

Q4:AC耦合电容,为什么不能放发送端?

A:LVDS是电流模驱动,端接电阻在接收端。如果AC耦合电容放发送端:

  • 发送端输出共模电压被电容隔离

  • 接收端共模电压由端接电阻决定,可能与发送端不匹配

  • 接收器输入共模电压超范围,可能失效

正确做法:AC耦合电容放接收端,紧邻端接电阻。

Q5:SerDes CDR失锁,怎么快速定位原因?

A:按以下步骤排查:

  1. 查训练序列:是否有足够跳变密度?是否在空闲时持续发送?

  2. 查数据流:是否有长连0/长连1?(可能超出CDR跟踪范围)

  3. 查环境:温度/电压是否大幅波动?

  4. 查参考时钟:频率稳定性是否足够?

  5. 查硬件:信号完整性是否恶化?(眼图闭合导致CDR失锁)

90%的CDR失锁是训练序列设计不当或长连码型导致的。

Q6:多通道LVDS,IODELAY校准值需要存储吗?

A:不建议存储固化值,原因:

  • 温度变化导致延迟漂移(~2ps/°C)

  • 供电电压波动影响延迟

  • 老化会改变延迟特性

正确做法:每次上电自动校准,运行中周期性刷新。校准时间一般几十毫秒,不会影响系统启动速度。

⚠️ 注意事项

设计阶段

  • Skew预算要留余量:理论预算的50%作为设计目标,给生产偏差和老化留空间

  • 接插件选型先行:高速差分连接器选型必须在PCB布局前确定,否则布线空间不够

  • IODELAY资源评估:FPGA的IODELAY资源有限,144路可能占用多个IO Bank,提前评估

  • 电源完整性:LVDS/SerDes对电源噪声敏感,独立的LDO供电,不要和数字逻辑共用

PCB布局

  • 差分对紧耦合:P/N走线间距≤线宽,减小对内Skew

  • 等长匹配优先级:先保证对内等长,再保证对间等长

  • 避免跨分割:差分对下方的参考平面必须完整,不要跨GND分割

  • 端接电阻位置:紧邻接收端输入管脚,距离<5mm

测试验证

  • 标准化测试条件:固定PRBS图案、采样量、测试时间,形成测试报告模板

  • 全温测试:-40°C、+25°C、+85°C三点必须测,温度循环至少5次

  • TDR实测阻抗:不要只信PCB厂商的阻抗控制报告,抽样实测

  • 长期误码率测试:眼图OK不代表误码率OK,必须跑24小时误码测试

生产阶段

  • IODELAY校准自动化:生产测试时自动校准,不要人工干预

  • 连接器检测:高速差分连接器易接触不良,生产测试要包含连通性检测

  • 温度筛选:高温老化筛选,剔除早期失效单元

总结

LVDS/SerDes高速接口,表面看是硬件问题,实际是系统级问题:

  • 多通道Skew控制:从PCB设计、接插件选型、FPGA校准三个环节系统控制

  • 眼图验证:标准化测试条件、多温度点验证、长期误码测试

  • CDR稳定性:训练序列设计、看门狗机制、环境补偿

核心原则:设计阶段把预算分配清楚,测试阶段用标准化流程验证,生产阶段自动化校准。不要靠“调试技巧”,要靠方法论。

引用说明

本文为接口协议避坑系列第7篇。系列其他篇目:

  • 第1篇:I2C接口避坑

  • 第2篇:SPI接口避坑

  • 第3篇:UART接口避坑

  • 第4篇:以太网接口避坑

  • 第5篇:级联时序避坑

  • 第6篇:DDR接口避坑


承接FPGA定制开发、项目调试、IP定制,需要开发服务可私信咨询。