2、LVDS电气特性:电压摆幅、共模电压与终端匹配

好,咱们接着聊LVDS的电气特性。这部分内容,说白了就是搞清楚LVDS信号在物理层面上是怎么“说话”的。你想想看,如果连信号的电压范围、共模点、阻抗匹配这些基本参数都搞不清楚,那板子画出来大概率是要出问题的。

我个人习惯,在开始一个LVDS项目之前,一定会先把这几项参数吃透。因为它们是整个链路设计的基础,就像盖房子打地基一样,地基不稳,后面全是白费功夫。

2.1 电压摆幅:为什么是350mV?

LVDS的全称是Low-Voltage Differential Signaling,低电压差分信号。这个“低电压”指的就是它的电压摆幅很小,典型值是350mV。

什么叫电压摆幅?就是差分信号正端(P)和负端(N)之间的电压差。当P比N高350mV时,代表逻辑“1”;当N比P高350mV时,代表逻辑“0”。

你可能会问:为什么非得是350mV?大一点不行吗?

嗯,这里有个权衡。摆幅越大,信号抗噪声能力越强,但功耗也越大,而且电磁辐射(EMI)会更严重。LVDS的设计初衷就是低功耗、低EMI,所以选择了350mV这个值。我在一个项目中试过把摆幅调到400mV,结果EMI测试差点没过,后来老老实实改回来了。

关键点:LVDS的差分电压摆幅典型值为350mV,最小250mV,最大450mV。设计时请确保接收器的输入阈值能覆盖这个范围。

2.2 共模电压:1.2V的玄机

共模电压,指的是差分对两根线上电压的平均值。对于LVDS来说,这个值固定在1.2V左右。

为什么是1.2V?因为LVDS驱动器通常采用电流源驱动方式,电流源输出接一个3.5mA的恒流源,经过100Ω的终端电阻,产生350mV的压降。而电流源的输出共模点,自然就落在了1.2V附近。

我记得有一次调试一块板子,LVDS信号眼图总是张不开。查了半天,发现是共模电压漂到了1.4V。后来发现是电源纹波太大,把共模点给带偏了。所以,共模电压的稳定性直接决定了信号质量

小技巧:在PCB布局时,LVDS差分对附近不要走大电流的电源线,避免共模电压被干扰。如果条件允许,可以在接收端加一个共模扼流圈(Common Mode Choke)。

2.3 差分阻抗:100Ω的匹配艺术

LVDS要求差分阻抗为100Ω。这个阻抗不是随便定的,它是为了匹配传输线的特性阻抗,从而消除信号反射。

你想想看,信号在PCB走线上传输,就像水在管道里流动。如果管道粗细突然变化,水就会产生回波。同样,如果走线的阻抗和终端电阻不匹配,信号就会反射,导致眼图闭合、误码率上升。

在实际PCB设计中,控制差分阻抗到100Ω需要精确计算。我一般会用阻抗计算工具(比如Polar SI9000)来算,然后跟板厂确认叠层结构。曾经有一次,我偷懒没算,直接用了默认的走线宽度,结果板子回来测试,阻抗只有85Ω,眼图惨不忍睹。

参数 典型值 范围 说明
差分阻抗 100Ω 90Ω ~ 110Ω PCB走线需精确控制
单端阻抗 50Ω 45Ω ~ 55Ω 差分对每根线对地阻抗
终端电阻 100Ω ±1% 精度 必须靠近接收器放置

2.4 终端匹配电阻:不能省的关键元件

LVDS接收器的输入端,必须在差分对之间跨接一个100Ω的电阻。这个电阻的作用就是吸收信号能量,防止反射。

有些新手会问:能不能用两个50Ω电阻串联到地?答案是:不行。LVDS是电流驱动的,终端电阻必须跨接在P和N之间,而不是对地。如果对地接电阻,会破坏共模电压,导致接收器无法正常工作。

警告:终端电阻必须尽可能靠近接收器引脚放置,走线长度不要超过5mm。否则,残留的走线会引入额外的阻抗不连续,影响信号质量。

我曾经在一个项目中,因为终端电阻放得离接收器远了点(大概1cm),结果信号在电阻和接收器之间来回反射,产生了明显的过冲。后来把电阻挪到紧贴引脚,问题就解决了。

2.5 驱动器与接收器结构

LVDS的驱动器,本质上是一个恒流源加一个H桥结构。恒流源输出3.5mA电流,通过H桥的切换,决定电流流向,从而在终端电阻上产生正负350mV的压降。

接收器则是一个高输入阻抗的比较器。它比较P和N两端的电压差,如果差值为正,输出高电平;为负,输出低电平。接收器的输入阻抗很高(通常大于100kΩ),所以几乎不从线上抽取电流。

这里有个细节:接收器的输入共模范围是0V到2.4V。也就是说,即使共模电压有波动,只要在0~2.4V之间,接收器都能正确判断差分电压的极性。这个宽共模范围,是LVDS能在恶劣环境下工作的关键。

总结一下:

  • 驱动器:3.5mA恒流源 + H桥,输出差分信号
  • 接收器:高阻抗比较器,检测差分电压极性
  • 终端电阻:100Ω,跨接在差分对之间,靠近接收器

嗯,电气特性这部分就讲到这里。你把这些参数记牢了,后面设计PCB和调试的时候,心里就有底了。下一节,咱们聊聊LVDS在FPGA中的具体实现,包括如何例化原语、如何约束时序。到时候我会拿一个实际项目中的例子来拆解,保证干货满满。