PCI-E的针脚定义的简单讲解(备忘)

PCI-E是什么呢?
简而言之,PCI-E是英特尔在2001年提出的一种取代以前的PCI、AGP的计算机内部互联总线标准。特点是串行(以前的ISA、PCI、AGP等都是并行的),并且支持1到32条通道(然而常见的最长的就是显卡上最常用的X16),速度见下表。
在这里插入图片描述

首先,PCI-E传输的信号是差分信号。

关于什么是差分信号,我来解释一下。
相位信号和单端信号对比:传统的单端信号通过相对于地线的电势差的高低来传递,所以只需要一根地线就可以,传递几路信号只需要相应数量的信号线就可以了;而差分信号使用一根公共地线(电势为0),传输一路信号时,需要两根信号线——一根相对于地线的电压是正的(电势为正),另一根电压为负的(电势为负),绝对值相同(相位相差180度),用两根信号线的电势差高低来传递信号,只不过传递两个信号,假如一根信号线为3.3V,另一根信号线就是-3.3V,地线是0。这种看似浪费线的传输方式其实有很多优势:第一,因为地线是可以控制的,所以不会因为线长带来的压降而导致地线的差异,进而可以降低传输的电压来降低功耗(早期的AGP 2X的工作电压高达5V,而现在的PCI-E已经低于1.5V了);第二,因为电磁干扰对差分信号两根信号线的影响几乎相同,即使有干扰,高电势依然相对于低电势高,而单端信号则可能因为干扰而将低电势变成高电势,导致传输错误,因此差分信号抗干扰性强。现在,大多数高速串行接口都采用了差分信号,比如USB3.0/3.1、PCI-E、HDMI、以太网等。

然后看一下PCI-E的接口定义。

首先是图例。
在这里插入图片描述
在这里插入图片描述

这就是显卡插口前面的那段短的金手指,就是这段:
在这里插入图片描述
这一段负责供电、SMBus和感知设备是否插上,对于数据的传输作用不大,所以不用深究。
用浅绿色标出来的是检测插槽上设备的“长度”(X1/X4/X8或X16)的,比如,X1的设备的对应的针脚和这个相连,就可以让主板知道这是X1的设备,然后正常工作。因为第二数据通道的位置没有这个绿色的对应针脚,所以PCI-E X2插槽的设备并不存在(但是可以用于其他接口,比如X2通道的m.2 NGFF接口和SATA-Express)。
在这里插入图片描述
这是X1的那个数据传输的区域,就是下图中圈上的那段。

在这里插入图片描述

这一段的作用是时钟信号、一路双向的串行差分信号,并且有6路地线(有些过多了,但是对于插槽而言多几根地线成本并不高,并且可以提高可靠性)。
在这里插入图片描述
这一段就比较简单了,就是三对差分信号和对应的地线,加上一个用于检测卡长度的浅绿色引脚。和前面的一路信号构成X4插槽。
在这里插入图片描述

这一段也比较简单,四对差分信号、地线、感应长度的引脚。因为这一段有4条通道,加上上文中介绍的1条和3条通道,共同构成了一个X8的PCI-E插槽。
在这里插入图片描述

这一段传输八对差分信号,加上前面8路信号,构成了现在的显卡最常见的X16插槽。
可以看出,PCI-E具有串行、可变多通道、差分传输、多功能等优势,是比较先进的接口标准,不仅可以用于内部设备(显卡、网卡、磁盘阵列卡、USB扩展卡、声卡、视频采集卡等),也可以用于外部设备。

本文来源:https://www.bilibili.com/read/cv225848/

在Three.js中,由于WebGL渲染层默认会处理鼠标右键事件,这可能会导致与浏览器的右键菜单交互冲突。在Microsoft Edge浏览器中,用户通常通过右键点击并滑动来触发快捷菜单。如果你想要禁用这个右键手势,你可以利用`PointerLockControls`或类似控件,并覆盖默认的鼠标右键事件。 首先,确保你有一个Three.js项目并且已经引入了`PointerLockControls`: ```javascript import * as THREE from 'three'; import { PointerLockControls } from 'three/examples/jsm/controls/PointerLockControls'; // ... const controls = new PointerLockControls(camera, renderer.domElement); ``` 然后,可以重写`pointerlockchange`和`pointerlocklost`事件来阻止默认的行为: ```javascript controls.addEventListener('pointerlockchange', function (event) { if (event.isLocked) { document.body.style.userSelect = 'none'; // 阻止文本选择 document.body.style.cursor = 'default'; // 修改鼠标图标 // 添加阻止右键手势的逻辑 document.addEventListener('contextmenu', function (e) { e.preventDefault(); // 阻止默认的右键菜单 e.stopPropagation(); // 阻止向上冒泡 }, false); // 可能需要添加一个自定义的右键菜单替代功能 createCustomContextMenu(); } else { // 当退出全屏模式时恢复默认设置 document.body.style.userSelect = ''; document.body.style.cursor = 'auto'; document.removeEventListener('contextmenu'); } }); function createCustomContextMenu() { // 自定义你的右键菜单逻辑 // ... } ``` 最后,在页面加载完成后启动锁定: ```javascript renderer.domElement.requestPointerLock(); // 或者 renderer.domElement.mozRequestPointerLock(); ``` 这样就实现了关闭Edge浏览器的右键手势。注意,你需要确保在适当的时候解除用户锁定,例如当用户离开全屏模式或手动结束锁定时。同时,自定义右键菜单部分取决于你的应用需求。
评论 5
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值