4. LVDS接口原理与ADI器件实践

LVDS(Low-Voltage Differential Signaling,低压差分信号)是高速ADC向FPGA传输采样数据时最常用的物理层之一。它的核心思想是:用约350 mV的差分摆幅、约1.2 V的共模电平,在100 Ω差分阻抗的传输线上以恒定电流方向切换来传递逻辑“1”和“0”。因为接收端只关心两条线之间的电压差,共模噪声、地弹和电源波动会被大幅抑制,所以LVDS能在较低的功耗下跑到数百Mbps甚至Gbps级。

理解LVDS,先要抓住几个电气参数。差分摆幅VOD通常在247~454 mV之间,典型值350 mV;共模电压VOCM约1.2 V,允许在1.0~1.4 V范围内波动;差分阻抗100 Ω,要求PCB走线严格匹配。驱动器内部是一个约3.5 mA的恒流源,通过四个MOS开关改变电流在两条差分线上的方向:电流从D+流出、D−流入时,接收端看到正差分电压,判为逻辑1;反之判为逻辑0。由于电流方向切换而非电压强行翻转,边沿速度快、EMI低,这是LVDS适合高速串行数据的关键原因。

在ADI的ADC产品中,LVDS输出通常不是单条数据线,而是“数据对+随路时钟对”的组合。以AD9257、AD9643、AD9680等器件为例,ADC内部先完成采样和量化,再通过串行化器把多位并行数据按位或按字节串行输出到一对或多对LVDS上,同时输出一对DCO(Data Clock Output)或FCO(Frame Clock Output)作为随路时钟。FPGA侧用IDELAY、ISERDES和BUFR等资源接收,先做位对齐,再做帧对齐,最后还原成并行采样值。

LVDS数据链路:ADC串行化 → 差分传输 → FPGA解串与对齐 ADI ADC (如AD9257/AD9680) 采样保持 + 量化 N位并行数据 串行化器 DDR / SDR 位序 LVDS驱动器 3.5 mA 恒流源 DCO / FCO 时钟 随路输出 D+ / D− 差分对 100 Ω 差分阻抗 CLK+ / CLK− PCB传输线 等长 ±5 mil 差分对紧耦合 参考地完整 终端100 Ω FPGA 接收端 IBUFDS + IDELAY 差分输入缓冲 / 可调延迟 ISERDES 解串 1:7 / 1:8 位宽还原 位对齐 Bit Alignment 训练序列 / 0xAAAA 检测 帧对齐 Frame Alignment FCO / 同步字定位 并行采样数据 → 后续DSP/存储 差分电压: VOD ≈ 350 mV,VOCM ≈ 1.2 V,逻辑1/0由电流方向决定

串行化与解串是LVDS链路的核心环节。ADI ADC常见的输出模式有几种:SDR(单数据率)模式下,每个DCO周期输出1位;DDR(双数据率)模式下,DCO的上升沿和下降沿各输出1位,因此同样时钟频率下数据率翻倍。以AD9257为例,14位分辨率、65 MSPS采样率,若采用DDR LVDS输出,每对数据线需要承载的位速率约为65 MSPS × 14 bit ÷ 数据对数。假设使用7对数据线,则每对线速率约为130 Mbps,DCO频率约65 MHz。FPGA侧ISERDES需要配置为1:7解串,把每对线上的串行位流还原成7位并行数据,再与其他数据对拼接成完整的14位采样值。

位对齐解决的是“哪一位是第一位”的问题。由于PCB走线延迟、FPGA内部布线延迟和时钟相位差异,FPGA采样到的串行位流可能整体偏移若干个位周期。常用做法是让ADC输出一个已知的训练序列,例如交替的0xAAAA或0x5555,FPGA用IDELAY逐级调整延迟抽头,同时观察解串后的并行数据是否等于预期模式。当所有数据对都能稳定输出训练模式时,位对齐完成。AD9680等高速ADC还支持通过SPI配置测试模式,直接输出固定码型,便于系统调试。

帧对齐解决的是“一组采样值从哪里开始”的问题。LVDS传输中,ADC通常会在数据流中插入帧同步字或利用FCO(Frame Clock Output)标记每个采样周期的边界。FPGA检测到同步字或FCO边沿后,把解串后的并行数据按帧边界重新排列,确保14位采样值的MSB和LSB位置正确。如果帧对齐错误,会出现数据整体错位、采样值跳变或频谱中出现杂散。实际调试时,可以先用低速采样率、固定输入直流电平,观察FPGA还原出的码值是否稳定且与输入匹配,再逐步提高采样率。

差分对布线是硬件设计中最容易出问题的地方。首先,差分对内部两条线必须等长,误差控制在5 mil以内,否则会引入共模噪声和时序偏斜;其次,差分阻抗要控制在100 Ω,通常通过调整线宽、线间距和参考层距离实现;第三,差分对之间要保持足够间距,一般建议大于3倍线宽,减少串扰;第四,尽量避免过孔和层切换,如果必须换层,要在过孔附近放置回流地过孔;第五,终端电阻100 Ω应尽量靠近FPGA接收端放置。对于AD9257这类多通道ADC,还要注意数据对与时钟对之间的等长匹配,通常要求时钟对与数据对之间的偏斜控制在数据位周期的1/10以内。

在调试LVDS链路时,建议先用示波器差分探头测量ADC输出端的VOD和VOCM,确认电气参数在数据手册范围内;再用FPGA的ILA观察解串后的训练模式,逐步调整IDELAY抽头,直到所有数据对都稳定对齐。

常见ADI ADC的LVDS输出模式可以归纳为几类:AD9257、AD9643等中速ADC通常支持1:7或1:8解串的DDR LVDS输出,数据对数量与分辨率、采样率相关;AD9680、AD9694等高速ADC则采用JESD204B或LVDS双模式,LVDS模式下每对线速率可达1 Gbps以上,需要FPGA使用更高速的ISERDES和更严格的时序约束。无论哪种模式,位对齐和帧对齐都是必须完成的步骤,区别只在于训练序列的形式和对齐算法的复杂度。

从系统角度看,LVDS链路的设计可以按以下顺序推进:先根据ADC数据手册确定输出模式、数据对数量、DCO频率和位序;再完成PCB差分对布线和阻抗控制;然后在FPGA中配置IBUFDS、IDELAY、ISERDES和BUFR,建立接收通道;接着用测试模式完成位对齐和帧对齐;最后接入真实模拟输入,观察还原数据的稳定性和频谱质量。每一步都有明确的观察点和判断依据,而不是笼统地“调通即可”。

以AD9257为例,假设采样率65 MSPS、14位输出、DDR LVDS、7对数据线,则每对线数据率为130 Mbps,DCO为65 MHz。FPGA侧ISERDES配置为DDR模式、1:7解串,IDELAY参考时钟为200 MHz,每个抽头约78 ps。若PCB走线偏斜约300 ps,则需要约4个抽头的延迟补偿。实际调试时,可以从中间抽头开始,向两侧扫描,记录解串数据等于训练模式的抽头范围,取中间值作为稳定工作点。这个范围越宽,说明时序余量越大,链路越可靠。

LVDS接口看似只是几对差分线,但它涉及电气特性、PCB布线、串行化协议、FPGA解串和对齐算法等多个层面。只有把每个环节的参数和判断依据都弄清楚,才能在高速采集系统中获得稳定可靠的数据流。