1 LVDS概述
LVDS(Low Voltage Differential Signaling)是一种小振幅差分信号技术,它使用非常低的幅度信号(100Mv~450mV)通过一对平行的PCB走线或平衡电缆传输数据。在两条平行的差分信号线上流经的电流及电压振幅相反,噪声信号同时耦合到两条线上,而接受端只关心两信号的差值,于是噪声被抵消。由于两条信号线周围的电磁场也相互抵消,故差分信号传输比单线信号传输电磁辐射小得多。此外,该传输标准采用电流模式驱动输出,不会产生振铃和信号切换所带来的尖峰信号,具有良好的EMI特性。由于LVDS差分信号技术降低了对噪声的关注,所以可以采用较低的信号电压幅度。这个特性非常重要,它使提高数据传输率和降低功耗成为可能。低驱动振幅意味着数据可更块地反转。由于驱动器是恒流源模式,功耗几乎不会随频率而变化,而且单路的功耗非常低(LVDS25标准2mAx250mV=0.5mW)。
因此,采用这种技术后,只要保证一对平行传输线的长度足够一致,并在接受端提供良好的匹配端接阻抗技术,以减小反射信号的产生,就可以提供非常高的数据传输率。目前,不用经行复杂和特殊的处理,提供840MHz的数据传输速率已经非常容易。
由于LVDS具有这些优良的特性,使得其应用越来越普及。特别是在器件与器件之间以及器件与板级之间的高速串行数据通信中,已作为首选的标准。目前,Xilinx FPGA的每个输入输出引脚都支持这种信号标准。
2 LVDS的使用
LVDS的发送和接受通常为点到点结构,如下图所示:
在芯片与芯片之间交换数据时,传统的应用是采用TTL,LVCMOS等单端接口标准,这种通信方式不仅易受干扰,而且数据传输率无法提高。如果要提高带宽(数据传输速率),必须提供足够的数据通道。这样,不仅提高了系统成本,而且需要处理复杂和棘手的数据同步问题。然而,如果采用LVDS标准,可有效地解决这些问题。实现的方法是,利用可编程逻辑器件的特性,将寄存器的数据输出经过串化处理,并由LVDS接口输出,在接受端再将数据利用解串流程恢复,如下图所示:
采用上述方法处理后,将原有的32条数据线变成了4对差分输出线,并可达到或超过单端输出的带宽,且更容易实现,功率更低。
2x50MHz(单端输出) = 4x400MHz(差分输出)
在上述的应用中,需要注意的是随路时钟(同步控制时钟)的处理。为了保证接收端时钟与数据的同步,可以采用如下图的时钟方案。
ISE综合工具可以自动推论HDL代码中的LVDS模块,标准的可例化LVDS代码如下。
1) 差分输入时钟缓冲器(IBUFDS)
IBUFDS instance_name (.O(user_O),
.I (user_I),
.IB(user_IB));
2)差分输入的全局时钟缓冲器(IBUFGDS)
IBUFGDS instance_name (.O(user_O),
.I (user_I),
.IB(user_IB));
3)差分输出时钟缓冲器(OBUFDS)
OBUFDS instance_name (.O(user_G),
.OB(user_OB),
.I(user_I));