S4.2.4.5 Lane Polarity Inversion

news2024/11/22 8:54:48

一 本章节主讲知识点

1.1 Polarity Inversion 极性反转
1.2 Lane Reversal 通道翻转

二 本章节原文翻译

2.1 极性反转

原文摘录:

PCIe 协议规定,必须支持该特性。该特性的目标也是为了简化 PCB 的布线。每个 lane 都包含一组发送(Tx)和接收(Rx),而 Tx 和 Rx 分别包含两根差分信号线(D+ 和 D-)。Polarity Inversion 的作用就是把某个设备的 D+ 变成 D-,D- 变成 D+。

开启 Polarity Inversion 之后的效果如下图所示:

为了实现D+和D-正负极检测,接收逻辑Rx需要查看接收到的TS1或TS2中的Symbol 6到15:如果在TS1中接收到的是D21.5而不是D10.2,或者在TS2中接收到的是D26.5而不是D5.2,那么该Lane的极性就被反转了,必须被纠正。 

我们可以理解:发送D+和接收D+具有约定一致的模拟电路电气特性,发送D-和接收D-也具有约定一致的模拟电路电气特性。如果不按照D+对接D+ , 那么接收数据将会错误。

 2.2 通道翻转

对于包含多个 lane 的设备,都是从 lane 0 开始顺序编号。一般情况下,两个 PCIe 设备相连时都是 lane 0 接 lane 0,lane 1 接 lane 1,以此类推。但是,有些场景中,为了简化 PCB 的布线,需要从逻辑上反转 lane 的编号,从而避免在 PCB 交错布线。只要一个设备支持 Lane Reversal 就可以。首先,一个设备在内部反转 lane 的编号,然后在链路训练时会检测到 lane 编号被反转。鉴于 Lane Reversal 并不是 PCIe 协议规定必须支持的特性,所以硬件设计人员在设计板级电路时需要确认 PCIe 发送设备或者接收设备的其中一个支持 Lane Reversal 特性之后才能按照非交错方式布线。

下图展示了 Lane Reversal 的效果:

 

在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述 

三 本章节关联知识点

3.1 差分信号

由于PCI-E传输的信号是差分信号,所以这里有必要讲解一下差分线的定义:

相位信号和单端信号对比:传统的单端信号通过相对于地线的电势差的高低来传递,所以只需要一根地线就可以,传递几路信号只需要相应数量的信号线就可以了;而差分信号使用一根公共地线(电势为0),传输一路信号时,需要两根信号线,一根相对于地线的电压是正的(电势为正),另一根电压为负的(电势为负),绝对值相同(相位相差180度),用两根信号线的电势差高低来传递信号,只不过传递两个信号,假如一根信号线为3.3V,另一根信号线就是-3.3V,地线是0。这种看似浪费线的传输方式其实有很多优势:第一,因为地线是可以控制的,所以不会因为线长带来的压降而导致地线的差异,进而可以降低传输的电压来降低功耗(早期的AGP 2X的工作电压高达5V,而现在的PCI-E已经低于1.5V了);第二,因为电磁干扰对差分信号两根信号线的影响几乎相同,即使有干扰,高电势依然相对于低电势高,而单端信号则可能因为干扰而将低电势变成高电势,导致传输错误,因此差分信号抗干扰性强。现在,大多数高速串行接口都采用了差分信号,比如USB3.0/3.1、PCI-E、HDMI、以太网等。
————————————————
版权声明:本文为CSDN博主「朱万利」的原创文章,遵循CC 4.0 BY-SA版权协议,转载请附上原文出处链接及本声明。
原文链接:https://blog.csdn.net/qq_31444421/article/details/129828171

四 本章节存疑问题

2.1 222

五 总结

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.coloradmin.cn/o/1171772.html

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

Datawhale-AIGC实践

Datawhale-AIGC实践 部署ChatGLM3-6B平台 clone 项目,配置环境 git clone https://github.com/THUDM/ChatGLM3.git cd ChatGLM3 pip install -r requirement.txt修改web_demo.py, web_demo2.py 设置加载模型的路径修改启动代码: demo.queue().launch(shareFalse…

4.6找出字符串中第一个匹配的下标(还是不太会KMP)

算法:用了KMP算法节省时间、空间复杂度 不过代码还是不太会,只能解读正确代码 正确代码: class Solution:def getNext(self, next, s):j -1next[0] jfor i in range(1, len(s)):while j > 0 and s[i] ! s[j1]:j next[j]if s[i] s[j…

uniapp原生插件之安卓SVGA动画原生插件

插件介绍 安卓SVGA插件是原生组件式插件,支持SVGA动画文件格式播放,支持网络地址播放 插件地址 安卓SVGA动画原生插件 - DCloud 插件市场 详细使用文档 uniapp 安卓SVGA动画原生插件 超级福利 uniapp 插件购买超级福利 用法 插件权限 android…

2023年软件系统架构师论文【回忆版】

2023年11月5日,全国计算机等级下半年考试,北京市软件架构师考试其中有个考点在首都经济贸易大学丰台校区),地址:北京市丰台区花乡张家路口121号(北门入校) 注意:机考的考试时间有所变…

docker镜像使用

一、查看docker版本 docker version docker默认安装目录 /var/lib/docker 目录文件如下: 二、查看下载的镜像 docker images 三、下载镜像 docker pull [OPTIONS] NAME[:TAG|DIGEST] option作用-a, --all-tags拉取所有 tagged 镜像–disable-content-trust…

win10 + cmake3.17 编译 nvtt2.1.0

nvtt下载地址: https://github.com/pps83/nvtt 以下操作的根目录:D:\Depend_3rd_party\nvtt 2.1.0 1. 下载nvtt 2.1.0,解压到根目录,得到 D:\Depend_3rd_party\nvtt 2.1.0\nvidia-texture-tools-2.1.0 2. 创建build文件夹&am…

BO(Business Object)是一种用于表示业务对象的设计模式

BO是 Business Object 的缩写,是一种用于表示业务对象的设计模式。在Java中,BO的主要作用是 封装业务逻辑,实现业务流程的可重用性和可维护性。 BO主要有以下几个作用: 实现业务逻辑的封装:将业务逻辑封装在BO对象中&a…

LVGL_多界面切换

LVGL_多界面切换 1、创建多个界面(create_page1();) 2、加载一个界面显示(lv_scr_load(page1);) 3、切换不同界面显示(lv_scr_load_anim(page2, LV_SCR_LOAD_ANIM_OVER_LEFT, 300, 0, false);) static lv_…

窗口小插件,用于显示当前系统时间,CPU与内存占用率,网络上传下载速度

最近在弄一个小玩意儿,旨在生成一个窗口小插件,用于显示当前系统时间,CPU与内存占用率,网络上传下载速度 初始目标: 生成一个弹窗,窗口置顶弹窗内可以进行设定,勾选想要显示的对应信息&#xf…

【深度学习 AIGC】stable diffusion webUI 使用过程,参数设置,教程,使用方法

文章目录 docker快速启动vae.ckpt或者.safetensorsCFG指数/CFG Scale面部修复/Restore facesRefinerTiled VAEClip Skipprompt提示词怎么写 docker快速启动 如果你想使用docker快速启动这个项目,你可以按下面这么操作(显卡支持CUDA11.8)。如…

【蓝桥每日一题]-倍增(保姆级教程 篇1)

今天讲一下倍增 目录 题目:忠诚 思路: 题目:国旗计划 思路: 查询迭代类倍增: 本质是一个一个选区间使总长度达到 M,类似凑一个数。而我们会经常用不大于它最大的二的次幂,减去之后,再重复这…

VSCode中的任务什么情况下需要配置多个问题匹配器problemMatcher?多个问题匹配器之间的关系是什么?

☞ ░ 前往老猿Python博客 ░ https://blog.csdn.net/LaoYuanPython 一、简介 在 VS Code 中,tasks.json 文件中的 problemMatcher 字段用于定义如何解析任务输出中的问题(错误、警告等)。 problemMatcher是一个描述问题匹配器的接口&…

leetCode 416.分割等和子集 + 01背包 + 动态规划 + 记忆化搜索 + 递推 + 空间优化

关于此题我的往期文章: LeetCode 416.分割等和子集(动态规划【0-1背包问题】采用一维数组dp:滚动数组)_呵呵哒( ̄▽ ̄)"的博客-CSDN博客https://heheda.blog.csdn.net/article/details/133212716看本期文章时&…

JAVA-软开-常见八股文(2)-数据库相关

1 Drop Delete Truncate三者之间的区别和联系 drop删除整张表,包括表结构和表数据。用法 drop table 表名 truncate表示清空数据,不会删除表结构。truncate table 表名 delete表示删除数据,不会删除表结构。delete from 表名 where 列名 值…

虽然许多人表示对Windows 11的透明任务栏不满,但有时效果还是挺好的

Windows 11支持透明任务栏,这项功能可以在几秒钟内启用,但许多人表示他们对它的工作方式不满意。 在今天的指南中,我们将向你展示如何使用此功能,并通过一些技巧进一步自定义任务栏。 如何在Windows 11中使任务栏透明 使用个性…

【Linux】第十站:git和gdb的基本使用

文章目录 一、git的基本操作1.gitee新建仓库注意事项2.git的安装3.git的克隆4.git的add5.git的commit6.git的push7.git log8.git status9. .gitignore 二、Linux调试器---gdb1.背景2.gdb安装、进入与退出3.list/l4.r/run运行程序5. break/b 打断点6.info/i b 查看断点7.delete/…

如何使用Selenium处理Cookie,今天彻底学会了

📢专注于分享软件测试干货内容,欢迎点赞 👍 收藏 ⭐留言 📝 如有错误敬请指正!📢交流讨论:欢迎加入我们一起学习!📢资源分享:耗时200小时精选的「软件测试」资…

搜索引擎系统简要分析

目录 一、搜索引擎简单介绍 二、搜索引擎整体架构和工作过程 (一)整体分析 (二)爬虫系统 三个基本点 爬虫系统的工作流程 关键考虑因素和挑战 (三)索引系统 网页处理阶段 预处理阶段 反作弊分析…

【Linux】多路IO复用技术②——poll详解如何使用poll模型实现简易的一对多服务器(附图解与代码实现)

在阅读本篇博客之前,建议大家先去看一下我之前写的这篇博客,否则你很可能会一头雾水 【Linux】多路IO复用技术①——select详解&如何使用select模型在本地主机实现简易的一对多服务器(附图解与代码实现)http://t.csdnimg.cn/…

arcgis pro模型构建器

如果你不想部署代码包环境来写arcpy代码,还想实现批量或便携封装的操作工具,那么使用模型构建器是最好的选择。1.简介模型构建器 1.1双击打开模型构建器 1.2简单模型构建步骤 先梳理整个操作流程,在纸上绘制在工具箱中找到所需工具拖进来把…