3. 差分信号与LVDS:差分信号原理、LVDS标准与电气特性、FPGA内部LVDS资源、LVDS布线规则、LVDS终端匹配
3.1 差分信号原理——为什么我们离不开它?
先问大家一个问题:为什么高速信号非得用差分?单端信号不行吗?
嗯,我刚开始做设计时也这么想。后来在项目中调试一块ADC采集板,时钟线长了点,结果数据老是跳变。查了半天,发现是地弹噪声把时钟沿给污染了。从那以后,我对差分信号就特别上心。
差分信号说白了就是:用两根线传一个信号,一根传正相,一根传反相。接收端只看两根线的差值。这样做的好处很明显——
- 抗共模噪声:外界干扰同时耦合到两根线上,一减就没了
- 电磁辐射小:两根线电流方向相反,磁场互相抵消
- 电压摆幅低:几百毫伏就能可靠传输,功耗自然低
我个人的习惯是:只要速率超过200Mbps,优先考虑差分接口。这不是矫情,是吃过亏后的经验。
3.2 LVDS标准与电气特性
LVDS(Low Voltage Differential Signaling)是目前最主流的差分标准之一。它的核心参数我列个表,大家记一下:
| 参数 | 典型值 | 说明 |
|---|---|---|
| 差分电压摆幅 | 350 mV | 典型值250~450 mV |
| 共模电压 | 1.2 V | 相对GND的直流偏置 |
| 传输速率 | 可达3.125 Gbps | 取决于驱动器和介质 |
| 终端电阻 | 100 Ω | 跨接在差分对末端 |
这里有个坑,我提醒一下:LVDS的共模电压是1.2V,不是0V。如果你用示波器测LVDS信号,探头要设成差分模式,或者用两个通道做数学减法。直接对地测单端,你看到的波形会让人一头雾水。
3.3 FPGA内部LVDS资源
现在的FPGA,不管是Xilinx还是Intel(原Altera),内部都集成了LVDS硬核。说白了就是:你不需要自己搭差分驱动器,直接用IO Bank里的专用资源就行。
以Xilinx 7系列为例,HP Bank(高性能Bank)支持真正的LVDS,HR Bank(高范围Bank)则需要外部电阻分压。我建议:高速LVDS信号尽量走HP Bank,省心。
FPGA内部与LVDS相关的资源主要有:
- IODELAY:可调延迟,用于对齐数据和时钟
- ISERDES/OSERDES:串并转换,实现高速收发
- DIFF_TERM:内部差分终端电阻,可软件使能
我记得有一次做项目,板子空间紧张,放不下外部终端电阻。后来发现FPGA内部自带100Ω差分终端,直接在约束文件里加一句 DIFF_TERM = TRUE 就搞定了。嗯,这个功能很实用。
3.4 LVDS布线规则——实战经验
布线这块,我踩过的坑比较多。给大家总结几条硬性规则:
- 差分对内等长:误差控制在±5 mil以内。为什么?因为不等长会导致共模转差模,噪声性能下降。
- 差分对间等长:同一组总线(比如4对LVDS),对间误差控制在±50 mil。这个要求没那么严,但也不能太随意。
- 阻抗控制:单端50Ω,差分100Ω。这个要靠叠层设计和线宽线距来保证。
- 避免跨越分割:差分对不能跨过电源或地平面的分割槽。我曾经在项目中忽略了这一点,结果信号质量惨不忍睹。
- 包地处理:LVDS走线两侧打地孔,间距不超过信号上升沿长度的1/10。
3.5 LVDS终端匹配
终端匹配是LVDS设计中绕不开的一环。匹配不好,信号反射会导致眼图质量下降,严重时直接误码。
标准做法是:在接收端差分对之间跨接一个100Ω电阻。这个电阻的作用是吸收信号能量,防止反射。
匹配方式有三种:
- 外部电阻匹配:最传统的方式,精度高,但占板面积
- FPGA内部匹配:使用DIFF_TERM功能,省电阻省空间
- AC耦合匹配:串电容后再接电阻,适用于不同共模电压的场景
我个人偏好外部匹配,尤其是速率超过1Gbps时。内部匹配虽然方便,但精度和温度稳定性不如外部电阻。当然,如果板子空间紧张,内部匹配也能用,我做过测试,1Gbps以下基本没问题。
3.6 知识体系结构图
下面这张图把本章的核心逻辑串起来了,方便大家理解:
这张图把差分信号、LVDS标准、FPGA资源、布线规则、终端匹配和调试验证串在了一起。你想想看,任何一个环节出问题,高速链路都跑不起来。所以我的建议是:设计阶段就把这五个方面都考虑进去,别等板子回来了再补课。
好了,这一章的内容就到这里。差分信号和LVDS是高速接口的基石,理解透了,后面的SerDes、DDR、MIPI学起来会轻松很多。