『FPGA通信接口』LVDS接口(2)硬件设计

2024-06-21 15:04

本文主要是介绍『FPGA通信接口』LVDS接口(2)硬件设计,希望对大家解决编程问题提供一定的参考价值,需要的开发者们随着小编来一起学习吧!

在这里插入图片描述

文章目录

  • 1.LVDS原理
  • 2.xilinx器件对于LVDS的支持
  • 3.LVDS信号PCB布线要求
  • 4.传送门

1.LVDS原理

在这里插入图片描述

如上图所LVDS的工作原理示意图,其Driver驱动器由一个恒流源是LVDS发送端(通常为 3.5mA)驱动一对差分信号线组成。驱动状态会翻转就产生正负电压的变化,在接收端表现为01状态切换。在接收端有一个高的直流输入阻抗(几乎不会消耗电流),所以几乎全部的驱动电流将流经 100Ω的终端电阻在接收器输入端产生约 350mV 的电压。由于接收机只响应差分电压,因此同邻近信号线迹耦合的噪声被接收机视作共模调制,从而被拒绝。另外,由于两个差分对导体传导电流相等但极性相反,因此它们的磁场基本互相抵消,从而实现 EMI (Electro-Magnetic Interference)最小化。
在这里插入图片描述
如图上半部分所示,将2根差动信号–正电极信号(A+)和负电极信号(B−)(这是发送端对应上图的1.2V的共同电压(Voc)为中心,使2个信号间以350mV的电位差摆动。然后,用探针测定示波器的差动,会得到上图这样的信号波形。这就是两个信号的振幅差((A+)−(B−))。这个典型电压值是350mv即Vdiff差分电压。这个中心的电压1.2V称之为共模电压,即Vcm。如图下半部分所示为探测到的差分电压值。
在这里插入图片描述
如图所示,LVDS接收器通常接受的共模电压的范围很广,具体要看设备。送信(发送机)方以1.2V的共模电压输出后,收信(接收器)方的共模电压只要在0.2~2.2V的范围内就能接收信号。

2.xilinx器件对于LVDS的支持

涉及LVDS信号的项目选择FPGA器件型号主要考虑,一带宽是否满足要求,二电平标准是否支持,三考虑将LVDS信号管脚放在HP Bank或者HR Bank上。
1.不同型号的FPGA对于LVDS的速度支持是不同的,选型时需要注意。以下截图出自xilinx A7 datasheet。
在这里插入图片描述
2.应该确认Bank类型,HR bank只有在供电电压是2.5V的时候才可以使用内部电阻,当bank电压为其他值时,此时只能作为输入管脚且不能使用内部电阻。对于HP bank标准电压是1.8v,当bank电压是1.8v时可以使用内部电阻,当bank电压为其他值时,此时只能作为输入管脚且不能使用内部电阻,需要接外部电阻。可在UG475中查看当前Bank是HR还是HP。
在这里插入图片描述
3.LVDS_25和LVDS(指1.8V)是可以互相通信的,这是因为他俩的直流特性是一样的,他们只不过是xilinx引脚的电平标准(在xdc文件中设置)与LVDS信号特性并无直接关系。即LVDS与LVDS_25可以相互通信,但要确保Vdiff和Vcm是兼容的。在xilinx官方论坛中可以找到对于此问题的回复。HR bank使用内部的终端电阻的时候,必须配置为LVDS_25,即bank电压为2.5v;当作为输入管脚,且不使用内部电阻,可以配置成其他电压;LVDS与LVDS_25可以相互通信,但要确保Vdiff和Vcm是兼容的(可在Datasheet中查看该属性)。
在这里插入图片描述
可以看到,K7芯片手册中LVDS_25的输出共模电压Vocm,输出的差分电压Vodiff符合标准的LVDS信号要求。输入的电压也是一样的。另外LVDS的共模电压与差分电压也都是一样的。因此可以使用K7的LVDS_25管脚和LVDS管脚任意双向通信。
4.最后是7系列不在支持LVDS_33,原因如图所示。
在这里插入图片描述

3.LVDS信号PCB布线要求

1.采用多层板结构。带有LVDS信号的PCB一般建议采用多层板结构形式。由于LVDS信号属于高速信号,相邻层应为地层,并屏蔽LVDS信号以防止干扰。此外,对于密度较低的板,如果物理空间条件允许,最好将LVDS信号与其他信号分别放置在不同的层。例如,对于4层板,通常可以按以下布置:LVDS信号层。地层。电源层。其他信号层。
2.阻抗一致性。LVDS信号的电压振幅仅为350mV,以电流驱动的差分信号工作。为确保信号在传输线中传输时不受反射信号的影响,LVDS信号要求传输线阻抗控制,其中单线阻抗为50&omega,差分阻抗为100&omega。阻抗控制直接影响信号的完整性和延迟。在实际应用中,一些高速电路模拟分析工具可以通过合理设置层叠厚度和介质参数来调整线宽和线间距,计算单线和差分阻抗结果,从而达到阻抗控制的目的。
3.遵循紧耦合的原则。在计算线宽和间距时,应遵循紧耦合的原则,即间距小于或等于线宽的差分线。当两条差分信号线非常接近时,电流传输方向相反,磁场相互抵消,电场相互耦合,电磁辐射要小得多。
4.线路应尽可能短而直。为了保证信号的质量,LVDS差分线应尽可能短、直;差分信号应保持布线长度一致,避免布线过长、转弯过多;尽量使用45&deg或弧,避免90&deg转弯;尽量减少布线中的和其他不连续因素。
5.不同差异线之间的间距不能太小。LVDS对布线方式的选择没有限制。微带线和带状线都可以,但必须注意有良好的参考平面。不同差分线之间的间距不宜过小,差分线间距应至少大于3~5倍。如有必要,可在不同差分线之间增加孔,以防止相互干扰。
6.远离其他信号,如TTL信号,最好使用不同的布线层。如果由于设计限制必须使用同一层布线,LVDS布线与TTL布线之间的距离应足够远,至少应大于3~5倍。
7.LVDS差分信号不能跨平面分割。虽然两个差分信号是回流路径,但跨平面分割不会切断信号的回流,但由于缺乏参考平面,跨平面分割部分的传输线将导致不连续的阻抗。
8.接收端的匹配电阻应尽可能靠近接收引脚。接收端与接收引脚的匹配电阻应尽可能短,接线距离应尽可能短。
9.控制匹配电阻的精度。使用终端匹配电阻可以匹配差分传输线的匹配,其电阻值一般在90~130&omega之间。该系统还需要使用该终端匹配电阻来产生正常工作的差分电压。对于点到点的拓扑,接线电阻通常控制在100&omega,但匹配电阻可以根据实际情况进行调整。最好将精度为1% -2%的表面电阻跨接在差分线上。如有必要,还可使用两个电阻值为50&omega的电阻,并在中间通过电容好地过滤共模噪声。根据经验,10%的阻抗不匹配会产生5%的反射。
10.未使用的引脚处理。所有未使用的LVDS接收器输入引脚悬挂,所有未使用的LVDS和TTL输出引脚悬挂,未使用的TTL输入和控制/使引脚连接到电源或地面。

4.传送门

  • 我的主页
  • FPGA通信接口专栏汇总导航
  • 源码链接
  • 下一篇:LVDS接口(3)LVDS发送端设计
END

🔈文章原创,首发于CSDN论坛。
🔈欢迎点赞❤❤收藏⭐⭐打赏💴💴!
🔈欢迎评论区或私信指出错误❌,提出宝贵意见或疑问❓。


这篇关于『FPGA通信接口』LVDS接口(2)硬件设计的文章就介绍到这儿,希望我们推荐的文章对编程师们有所帮助!



http://www.chinasem.cn/article/1081549

相关文章

MybatisPlus service接口功能介绍

《MybatisPlusservice接口功能介绍》:本文主要介绍MybatisPlusservice接口功能介绍,本文给大家介绍的非常详细,对大家的学习或工作具有一定的参考借鉴价值,需要的朋友... 目录Service接口基本用法进阶用法总结:Lambda方法Service接口基本用法MyBATisP

MyBatis设计SQL返回布尔值(Boolean)的常见方法

《MyBatis设计SQL返回布尔值(Boolean)的常见方法》这篇文章主要为大家详细介绍了MyBatis设计SQL返回布尔值(Boolean)的几种常见方法,文中的示例代码讲解详细,感兴趣的小伙伴... 目录方案一:使用COUNT查询存在性(推荐)方案二:条件表达式直接返回布尔方案三:存在性检查(EXI

Java中的Closeable接口及常见问题

《Java中的Closeable接口及常见问题》Closeable是Java中的一个标记接口,用于表示可以被关闭的对象,它定义了一个标准的方法来释放对象占用的系统资源,下面给大家介绍Java中的Clo... 目录1. Closeable接口概述2. 主要用途3. 实现类4. 使用方法5. 实现自定义Clos

java对接第三方接口的三种实现方式

《java对接第三方接口的三种实现方式》:本文主要介绍java对接第三方接口的三种实现方式,具有很好的参考价值,希望对大家有所帮助,如有错误或未考虑完全的地方,望不吝赐教... 目录HttpURLConnection调用方法CloseableHttpClient调用RestTemplate调用总结在日常工作

Java 的 Condition 接口与等待通知机制详解

《Java的Condition接口与等待通知机制详解》在Java并发编程里,实现线程间的协作与同步是极为关键的任务,本文将深入探究Condition接口及其背后的等待通知机制,感兴趣的朋友一起看... 目录一、引言二、Condition 接口概述2.1 基本概念2.2 与 Object 类等待通知方法的区别

SpringBoot实现接口数据加解密的三种实战方案

《SpringBoot实现接口数据加解密的三种实战方案》在金融支付、用户隐私信息传输等场景中,接口数据若以明文传输,极易被中间人攻击窃取,SpringBoot提供了多种优雅的加解密实现方案,本文将从原... 目录一、为什么需要接口数据加解密?二、核心加解密算法选择1. 对称加密(AES)2. 非对称加密(R

Java对接Dify API接口的完整流程

《Java对接DifyAPI接口的完整流程》Dify是一款AI应用开发平台,提供多种自然语言处理能力,通过调用Dify开放API,开发者可以快速集成智能对话、文本生成等功能到自己的Java应用中,本... 目录Java对接Dify API接口完整指南一、Dify API简介二、准备工作三、基础对接实现1.

Java controller接口出入参时间序列化转换操作方法(两种)

《Javacontroller接口出入参时间序列化转换操作方法(两种)》:本文主要介绍Javacontroller接口出入参时间序列化转换操作方法,本文给大家列举两种简单方法,感兴趣的朋友一起看... 目录方式一、使用注解方式二、统一配置场景:在controller编写的接口,在前后端交互过程中一般都会涉及

usb接口驱动异常问题常用解决方案

《usb接口驱动异常问题常用解决方案》当遇到USB接口驱动异常时,可以通过多种方法来解决,其中主要就包括重装USB控制器、禁用USB选择性暂停设置、更新或安装新的主板驱动等... usb接口驱动异常怎么办,USB接口驱动异常是常见问题,通常由驱动损坏、系统更新冲突、硬件故障或电源管理设置导致。以下是常用解决

Linux下如何使用C++获取硬件信息

《Linux下如何使用C++获取硬件信息》这篇文章主要为大家详细介绍了如何使用C++实现获取CPU,主板,磁盘,BIOS信息等硬件信息,文中的示例代码讲解详细,感兴趣的小伙伴可以了解下... 目录方法获取CPU信息:读取"/proc/cpuinfo"文件获取磁盘信息:读取"/proc/diskstats"文