0
  • 聊天消息
  • 系统消息
  • 评论与回复
登录后你可以
  • 下载海量资料
  • 学习在线课程
  • 观看技术视频
  • 写文章/发帖/加入社区
会员中心
创作中心

完善资料让更多小伙伴认识你,还能领取20积分哦,立即完善>

3天内不再提示

FPGA调试的LVDS信号线间串扰问题

电子设计 来源:网络交换FPGA 作者:网络交换FPGA 2020-11-20 12:11 次阅读

FPGA调试过程中,除了逻辑代码本身的质量之外,FPGA板子上PCB走线、接插件质量等因素的影响也非常重要。在刚上板调试不顺利的时候,不妨拿示波器看一下信号的质量,比如时钟信号的质量、差分信号的质量、高速串行信号的质量等等,这是上板调试之前首先要做的一步。没有高质量的FPGA外围管脚信号的输入,再好的代码风格和规范都无济于事。所以,调试FPGA之前一定要上示波器看一下关键信号的质量。

LVDS信号线间串扰问题

近日,在300Mbps的LVDS接口的调试过程中,出现了部分接口无法正确接收数据的现象,动用了一系列手段都无法使其老实下来踏踏实实接收数据,实可谓顽固不化。而在实验室老师的建议和要求下,经过一番折腾之后,我们终于见到了经过LVDS驱动芯片解差分后输入到FPGA的单端信号的真容。它是这样的:


(上图只抓了一位数据信号和一位时钟信号,其实是通过两位数据信号并行传输实现300Mbps的)

蓝色的波形是时钟吧,反正在上面数据信号不变化的时候还是时钟,频率也对,150MHz的……但是后面怎么就放飞自我了,这跟我们说好的不一样呀……

在此之前,有必要介绍一下我们这边调试所用硬件的情况,项目要接好多个LVDS接口,多到一个板子根本放不下,但是接口最终都是要连到一块FPGA上的,显然一块FPGA只能放在一块板子上,那这么多接口怎么办呢,不怕,反正还有别的板子,索性就把剩余接口都放在别的板子上吧。那接口需要的LVDS32和31的收发芯片怎么办,也没法都放在FPGA所在的那块板上,那就也都散开吧,LVDS接口收到的信号直接在接口旁边的LVDS32驱动芯片上解差分,单端信号通过各个板子间的接插件传到FPGA板上;发送则相反。所使用的接插件大概就类似于下面这种:


当然接插件上相邻信号线间的间隔没有这么大就是了,而且是三排一起。一共用了四块板子(别的板子还有CPU啥的实现其他功能)相互叠在一起,如下图:


绿点就表示接插件上的信号线,板间的这个接插件顺着箭头方向一直穿透到最后的FPGA板上,实现接口LVDS芯片和FPGA之间单端信号的传输。

硬件情况就是这样了,我们在测试中发现无法正确接收数据的接口全部集中在距离FPGA板最远的两块板子上,当把时钟降频之后,例如降频到60MHz时,所有的接口都可以正确接收数据,这基本排除了FPGA代码逻辑的问题。

然后在与实验室老师交流了情况之后,了解到可能是硬件这边线间串扰的问题,然后想办法找了从最远的板子某个接口传到FPGA板上单端信号的接插件管脚图,并使用示波器帮助我们对传输的数据和时钟信号进行了检测


上面就是板子接插件的管脚图,上面点亮的每一列的三个信号就对应着LVDS芯片恢复出来的一位单端时钟和两位单端数据信号,可以看到它们是相邻的,并且相距很近,可知硬件设计上并没有考虑线间串扰的问题。

然后我们就使用示波器对上述管脚的信号进行了检测,就看到了开头的那个画面……

自从上了研主要工作变成了写代码之后,感觉自己已经很久没有接触过硬件这块的东西了。这次的情况花费了我们不少的时间与精力,同时我们也明白了搞FPGA开发终归还是要对硬件有些许了解的,于是接下来我们就找了找资料,了解了一下什么是线间串扰。

线间串扰是电磁干扰的一种主要形式,当多条较长并且距离很近的导线平行传输信号时,其中每一条导线上的信号变化都会对其他导线的信号传输产生电磁干扰。

串扰的强弱受相邻电路分布电容、互感和电路本身的阻抗影响。线间串扰对受干扰电路的影响来源于电路间的分布式电容和分布式电感引起的电磁耦合:由于每一条线路都对地存在寄生电容和电感,使得线路之间存在不同程度的耦合,当其中一条线上存在电流或者电压变化时,相邻线路上就会产生电磁感应或静电感应,这就是线间串扰。线间串扰有电容耦合和电感耦合两种形式。

顾名思义,电容耦合是由于电子器件或线路之间存在的分布式电容,而产生电磁干扰的一种现象。导电传输线相互靠近时会存在一定大小的容抗,使得两边可以形成一个导电通路,一条传输线上的电压变化会通过两边传输线之间的互容将能量耦合到另一边,使其电位受到影响,具体影响效果如图:


当干扰传输线上升沿信号Vs通过时,会在受干扰线上产生一个前向的耦合电压Vf和后向的耦合电压Vb,其中前向电压产生的脉冲传向受干扰线的远端,后向电压产生的脉冲传向受干扰线的近端。

电感耦合则是由于电磁感应,一条传输线上的电流变化产生的磁场在另一条被干扰的传输线上引起感应电压导致的电磁干扰。相对于电容耦合而言,电感耦合产生的前向电压和后向电压极性是相反的,效果如图:


干扰信号在上升沿时间通过电感耦合在受干扰线上产生一个正的后向电压和一个负的前向电压。

其中电容耦合和电感耦合产生干扰的宽度和幅度变化是相似的,其脉冲宽度近似等于信号上升沿宽度,幅度与电压(电流)变化斜率成正比。

电容耦合和电感耦合一般都是同时发生的,而对于非理想地平面或微带传输线,电感耦合的影响要大于电容耦合。

在了解了这些之后,再结合我们这边的情况来看,从示波器的波形中我们可以看到时钟和数据信号相互的干扰情况(为使观察更清晰,这里以60M时钟下波形为例)


上图中下方蓝色信号为数据信号波形,实际理想波形应如画出的红线所示,为一个整齐的方波,但是由于紧邻时钟信号线,受到时钟信号串扰后数据波形上一直存在着幅度较小的与时钟同频的信号波动;而当数据信号变化自身产生较大起伏时,时钟信号也受到影响出现了电压的偏移。

根据时钟和数据各自受到的影响来看,当对方电压信号上升时,自身电压信号便会下降,可知在该板间接插件中进行信号传输时,主要是电感耦合在串扰中起作用。

如果说上图中时钟频率为60MHz时还能正常对数据信号进行采样,但时钟频率增加到150MHz以上就无法正确采样了。如下图为时钟频率为150MHz时数据与时钟的波形,已经全部乱掉了。


经过查找资料,可以用一些措施来减少线间串扰:

1. 布置电子装置内部信号线时,尽量将其靠近接地底板,增大对地电容,从而减小串扰。
2. 在允许的空间范围内,应尽量加大信号线与其他线之间的距离,减少线间耦合(3W原则:传输线中心距不少于3倍线宽时,则可保持70%的线间电场不互相干扰)。
3. 尽量缩短平行线长度,增加线间距离,如果可以,在信号线间加布隔离地线。
4. 机箱内板间的信号线越短越好。
5. 端子线进入印制板,可以在入口处增加RC去耦合电路,以便消除长线的传输串扰。

参考资料
https://wenku.baidu.com/view/401a805d312b3169a451a4ca.html
https://wenku.baidu.com/view/44c1d0cd27fff705cc1755270722192e453658ae.ht...

SpaceWire接口信号质量问题

SpaceWire总线协议支持2~200M之间速率传输,但是笔者在测试中目前无法实现200M进行跨板传输,因此通过示波器观察在200M下D、S信号的质量,从而进一步确定到底是代码质量存在问题,还是当前板卡的硬件质量问题。

1、实验环境

本文采用的实验环境如图1.1所示,该环境共有三块板卡构成。其中A、B板卡共同构成地检,实现将普通的以太网接口转换为专用的SpaceWire接口,C板卡为另外一块SpaceWire板卡。三块板卡通过接插件互相连接。


2、实验过程

由于SpaceWire在链路建立的过程中会自动发送NULL字符,因此只需将板卡上电下载代码即可进行观察传输信号的质量。为了更具有说服力,本次实验选用10M、50M、100M、200M四种传输速率进行对比,由于是同一套代码通过在线手动设置vio中寄存器的配置值实现不同的传输速率(使用VIVADO中VIO模拟CPU接口进行在线寄存器读写调试(附源代码)),因此实验结果具有可对比性。

2.1 10M传输速率

如图2.1所示,当采用10M传输速率时,D、S信号质量很好,传输中可以正常检测。


2.2 50M传输速率

如图2.2、2.3所示,当传输速率为50M时,信号的质量有下降的表现,但对于FPGA来说,该信号质量仍然很不错,能够正确的采样。

图2.2 A板给C板发送的DS信号

图2.3 C板给A板发送的DS信号

2.3 100M传输速率

将发送和接收速率设置为100M时,可得如图2.4和2.5所示结果。其中图2.4为A板给C板发送的DS信号,2.5为C板给A板发送的DS信号。可以看出,当前信号质量已经较差,但仍能正确识别与传输。

图2.4 A板给C板发送的DS信号

图2.5 C板给A板发送的DS信号

2.4 200M传输速率

在本文的实验环境下,C板内部自己产生数据源,速率为200M时,可以正确接收、解析,此时通过示波器观察到的D、S如图2.6所示,可以看出此时的信号质量已经很差了。

图2.6 C板自环200M下D、S信号采集结果

但是当通过A、B板和C板进行通信时,链路始终建立不成功,此时示波器观察不到对应的D、S信号。

3、 实验结果

通过上述对比可以发现,当传输速率为200M时,链路中信号质量很差,经分析显然不是前面例子中如串扰造成的,但应该是硬件的原因造成的。具体猜测有可能有以下几点原因造成:
1、A板通过FMC接插件和B板相连,此处的走线会对信号质量产生较大的影响;
2、FPGA程序中对于输入、输出管脚的时序约束仍有缺失;
3、FPGA接收时钟采用的是D、S异或得到的时钟,这部分时钟的约束缺失。欢迎看到本文的大牛告知真正的原因。

编辑:hfy


声明:本文内容及配图由入驻作者撰写或者入驻合作网站授权转载。文章观点仅代表作者本人,不代表电子发烧友网立场。文章及其配图仅供工程师学习之用,如有内容侵权或者其他违规问题,请联系本站处理。 举报投诉
  • FPGA
    +关注

    关注

    1635

    文章

    21837

    浏览量

    608329
  • 示波器
    +关注

    关注

    113

    文章

    6342

    浏览量

    186605
  • 电磁干扰
    +关注

    关注

    36

    文章

    2349

    浏览量

    105838
  • 串行信号
    +关注

    关注

    0

    文章

    26

    浏览量

    8558
收藏 人收藏

    评论

    相关推荐

    ADC电路的怎么解决?

    ,ADC是SAR型 18位单通道全差分输入的ADC。ADC的后端是MCU,MCU将数字信号处理之后再画到显示屏上显示实时波形。 调试发现显示的信号
    发表于 01-07 06:15

    信号线个小电阻有什么作用

    呢?   关于这个问题,我们先看下网上的一些答案:有人说:参考设计上推荐的,应该是经验设计预留,为了后续调试方便。   有人说:为了保护接口,抵抗小能量电压脉冲,防止信号脉冲损坏接口的。举个简单的例子:一个串口通讯的提示
    的头像 发表于 11-16 09:55 747次阅读
    <b class='flag-5'>信号线</b>上<b class='flag-5'>串</b>个小电阻有什么作用

    博眼球还是真本事?参考平面不完整信号反而好

    的拉开两根信号线的间距,例如在表层的间距拉大到7H;或者方法二在两根信号线之间去做包地处理。当然也可以两个方法一起组合来用,既拉开间距又做包地处理。 当然Chris也分享了包地和不包地的
    发表于 11-11 17:27

    博眼球还是真本事?参考平面不完整信号反而好

    改善的设计方法据说有两种:很多人知道的方法:信号线之间通过“包地”改善……几乎只有高速先生知道的方法:
    的头像 发表于 11-11 17:26 341次阅读
    博眼球还是真本事?参考平面不完整<b class='flag-5'>信号</b><b class='flag-5'>串</b><b class='flag-5'>扰</b>反而好

    信号线是什么线

    信号线主要是指在电气控制电路中用于传递传感信息与控制信息的线路。以下是对信号线的详细解释: 一、定义与功能 定义:信号线是用来传输由音源(信号源)所产生的各种
    的头像 发表于 11-01 10:05 1240次阅读

    lvds接口需要驱动吗

    广泛应用于高速数据传输的接口标准,特别是在大屏显示、通信设备和工业控制等领域。它采用低电压差分信号传输数据,具有低功耗、低误码率、低和低辐射等优点。LVDS接口通过一对差分
    的头像 发表于 10-06 15:06 1945次阅读
    <b class='flag-5'>lvds</b>接口需要驱动吗

    高频电路设计中的问题

    在高频电路的精密布局中,信号线的近距离平行布线往往成为引发“”现象的潜在因素。,这一术语描述的是未直接相连的
    的头像 发表于 09-25 16:04 417次阅读

    LVDS静电放电防护方案

    电缆上以几百Mbps的速率传输,由于采用低压和低电流驱动方式,实现了低噪声、低、低误码率和低功耗,LVDS在对信号完整性、低抖动及共模特性要求较高的系统中得到了越来越广泛的应用,常
    的头像 发表于 09-19 16:59 552次阅读
    <b class='flag-5'>LVDS</b>静电放电防护方案

    信号介绍

    信号(Crosstalk)是指在信号传输过程中,一条信号线上的信号对相邻
    的头像 发表于 09-12 08:08 1754次阅读
    <b class='flag-5'>信号</b>的<b class='flag-5'>串</b><b class='flag-5'>扰</b>介绍

    pcb线宽和线间距的设置原则

    的大小会影响到导线的电阻、电流承载能力和信号传输性能。 线间距:线间距是指PCB板上相邻导线之间的距离,同样以mil为单位。线间距的大小会影响到电路的
    的头像 发表于 08-15 09:31 6629次阅读

    信号完整性与电源完整性-信号

    电子发烧友网站提供《信号完整性与电源完整性-信号.pdf》资料免费下载
    发表于 08-12 14:27 0次下载

    放大器的问题

    我做了一个128通道的放大器,20层板。测试的时候发现即便不给输入信号也有一个输出,导致我的放大器完全不可用,并且这个输出信号波形很漂亮。我想请问大佬们这个信号是怎么来的?是
    发表于 06-27 11:52

    FPGA | Xilinx ISE14.7 LVDS应用

    今天给大侠带来 Xilinx ISE14.7 LVDS应用,话不多说,上货。 最近项目需要用到差分信号传输,于是看了一下FPGA上差分信号的使用。Xilinx
    发表于 06-13 16:28

    FPGA的高速接口应用注意事项

    时,要尽可能避免信号线的交叉和平行,以减少信号和EMI等问题的影响。 信号层分层:FPGA
    发表于 05-27 16:02

    差分信号线与单端信号线的区别

    差分信号线与单端信号线是电子通信领域中两种常见的信号传输方式。它们各自具有独特的特性和应用场景。
    的头像 发表于 04-10 17:02 1358次阅读