LVDS通信系统:发送器、接收器、传输线
LVDS 通信,说白了就是用一对差分线传高速信号。你想想看,一根线传正信号,另一根传反信号,接收端一减,噪声就抵消了。这个方案成本低、功耗小、速率高,所以FPGA和高速ADC之间、显示屏和控制器之间,到处都能看到它的影子。
我记得十年前调试一个相机视频链路,LVDS 眼图怎么都张不开。折腾了两天,最后发现是发送器输出共模电压漂了。从那以后,我养成了一个习惯——先测共模,再看差模。今天咱们就把发送器、接收器、传输线三个核心器件拆开来讲。
发送器:一个电流源撑起整个链路
LVDS 发送器本质上就是一个恒流源加四个开关管。电流通常定在 3.5mA,方向由输入数据控制:正电平把电流导向正线,低电平把电流导向负线。这个电流在接收端的 100Ω 终端电阻上产生 ±350mV 的差分电压。信号幅值就这么简单——3.5mA × 100Ω = 350mV。
我在项目里见过有人为了省功耗,把电流降到 2.5mA。结果链路长了十几厘米,眼图完全塌了。为什么?因为电缆插损会把 250mV 再削掉一截,接收器根本捉不到干净信号。我建议别动电流源,除非你做过精确的链路预算。
| 参数 | 最小值 | 典型值 | 最大值 | 单位 |
|---|---|---|---|---|
| 输出差分电压 | 250 | 350 | 450 | mV |
| 输出共模电压 | 1.125 | 1.2 | 1.375 | V |
| 输出阻抗(单端) | — | 50 | — | Ω |
| 上升/下降时间 | — | 0.3 | 0.5 | ns |
接收器:只认差值,不认值
接收器核心是一个高速比较器,专门比较两个输入端的电压差。只要 |V+ - V-| > 100mV,输出就翻转。这意味着共模噪声只要两个线上幅度一致,就被无情地拒绝了。你想想看,这有多爽——电源轨上 200mV 的纹波,到了接收器输入端就成了共模,完全不影响数据。
不过有个坑:接收器的输入阻抗非常高,通常大于 100kΩ。如果没接终端电阻,那根传输线就变成了开路状态,信号反射会把你眼睛闪瞎。我曾经见过一个同事把终端电阻焊在了发送器这边,导致信号来回弹了三四个来回才稳定,误码率直接飙到 10-3。正确位置只有一个——接收器差分输入端紧边上。
传输线:把电信号变成电磁波
LVDS 走线必须当作传输线来设计。PCB 上常见的微带线或带状线,只要差分阻抗控制在 100Ω ±10%,就能保证信号完整性。为什么是 100Ω?因为发送器输出阻抗单端 50Ω,差分就是 100Ω,搭配 100Ω 终端电阻刚好阻抗匹配,没有反射。
计算阻抗的公式你肯定查得到,但我更喜欢用 Polar SI9000 或 Altium 的层叠管理器直接算。关键在于:线宽、线距、介质厚度三个变量。举个例子,FR4 四层板,内层 1.6mm 厚,外层铜厚 1oz,想做到 100Ω 差分阻抗,线宽大约 6~7 mil,线距 6~8 mil。不放心的话,我习惯打一个 30mm 长的测试条,让板厂做 TDR 检测,回来后自己再测一遍。
- 差分对内部两根线必须等长——长度差每 1cm 大约产生 67ps 的时序偏移。100ps 的偏移足以吃掉 1GHz 信号的 40% 眼宽。
- 差分对之间与其他信号保持 3W 间距——W 是线宽。3 倍间距能把串扰压到 -40dB 以下。
- 全程避免过孔——如果一个差分对不得不过孔,请在两个过孔旁边各加一个地孔,提供电流回路。
系统联调:三个环节一个都不能弱
我曾经帮一个车载摄像头项目做 EMI 整改。发送器输出共模 1.18V,接收器输入共模 1.25V,差了 70mV。按理说 LVDS 接收器能容忍 ±1V 共模范围,但那条线长了 50cm,共模差变成了线缆共模电压偏移。结果就是接收器输出抖动超过 300ps。最后在接收端加了共模扼流圈,把差值控制在 30mV 以内,问题解决。
这个案例告诉我们:发送器、接收器、传输线,三个环节是串联的。发送器信号质量不好,再好的传输线也救不了;传输线阻抗不连续,再强的接收器也会误码;接收器终端不对,前面所有努力白费。所以做设计时,我建议你先把这三个器件的直流特性测一遍——共模、差分幅度、终端电阻,然后用 TDR 看传输线阻抗是否均匀。这三步走完,90% 的物理层问题都暴露了。