『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

相关文章

Java8需要知道的4个函数式接口简单教程

《Java8需要知道的4个函数式接口简单教程》:本文主要介绍Java8中引入的函数式接口,包括Consumer、Supplier、Predicate和Function,以及它们的用法和特点,文中... 目录什么是函数是接口?Consumer接口定义核心特点注意事项常见用法1.基本用法2.结合andThen链

0基础租个硬件玩deepseek,蓝耘元生代智算云|本地部署DeepSeek R1模型的操作流程

《0基础租个硬件玩deepseek,蓝耘元生代智算云|本地部署DeepSeekR1模型的操作流程》DeepSeekR1模型凭借其强大的自然语言处理能力,在未来具有广阔的应用前景,有望在多个领域发... 目录0基础租个硬件玩deepseek,蓝耘元生代智算云|本地部署DeepSeek R1模型,3步搞定一个应

Deepseek R1模型本地化部署+API接口调用详细教程(释放AI生产力)

《DeepseekR1模型本地化部署+API接口调用详细教程(释放AI生产力)》本文介绍了本地部署DeepSeekR1模型和通过API调用将其集成到VSCode中的过程,作者详细步骤展示了如何下载和... 目录前言一、deepseek R1模型与chatGPT o1系列模型对比二、本地部署步骤1.安装oll

MyBatis-Flex BaseMapper的接口基本用法小结

《MyBatis-FlexBaseMapper的接口基本用法小结》本文主要介绍了MyBatis-FlexBaseMapper的接口基本用法小结,文中通过示例代码介绍的非常详细,对大家的学习或者工作具... 目录MyBATis-Flex简单介绍特性基础方法INSERT① insert② insertSelec

Spring排序机制之接口与注解的使用方法

《Spring排序机制之接口与注解的使用方法》本文介绍了Spring中多种排序机制,包括Ordered接口、PriorityOrdered接口、@Order注解和@Priority注解,提供了详细示例... 目录一、Spring 排序的需求场景二、Spring 中的排序机制1、Ordered 接口2、Pri

Idea实现接口的方法上无法添加@Override注解的解决方案

《Idea实现接口的方法上无法添加@Override注解的解决方案》文章介绍了在IDEA中实现接口方法时无法添加@Override注解的问题及其解决方法,主要步骤包括更改项目结构中的Languagel... 目录Idea实现接China编程口的方法上无法添加@javascriptOverride注解错误原因解决方

Java function函数式接口的使用方法与实例

《Javafunction函数式接口的使用方法与实例》:本文主要介绍Javafunction函数式接口的使用方法与实例,函数式接口如一支未完成的诗篇,用Lambda表达式作韵脚,将代码的机械美感... 目录引言-当代码遇见诗性一、函数式接口的生物学解构1.1 函数式接口的基因密码1.2 六大核心接口的形态学

详解Java如何向http/https接口发出请求

《详解Java如何向http/https接口发出请求》这篇文章主要为大家详细介绍了Java如何实现向http/https接口发出请求,文中的示例代码讲解详细,感兴趣的小伙伴可以跟随小编一起学习一下... 用Java发送web请求所用到的包都在java.net下,在具体使用时可以用如下代码,你可以把它封装成一

C#实现获取电脑中的端口号和硬件信息

《C#实现获取电脑中的端口号和硬件信息》这篇文章主要为大家详细介绍了C#实现获取电脑中的端口号和硬件信息的相关方法,文中的示例代码讲解详细,有需要的小伙伴可以参考一下... 我们经常在使用一个串口软件的时候,发现软件中的端口号并不是普通的COM1,而是带有硬件信息的。那么如果我们使用C#编写软件时候,如

Java后端接口中提取请求头中的Cookie和Token的方法

《Java后端接口中提取请求头中的Cookie和Token的方法》在现代Web开发中,HTTP请求头(Header)是客户端与服务器之间传递信息的重要方式之一,本文将详细介绍如何在Java后端(以Sp... 目录引言1. 背景1.1 什么是 HTTP 请求头?1.2 为什么需要提取请求头?2. 使用 Spr