0%

PCIe总线

PCIe

PCI-E总线是一种通用的总线规格,它由Intel所提倡和推广,其最终的设计目的是为了取代现有 电脑系统 内部的总线 传输接口 ,这不只包括 显示接口 ,还囊括了 CPU 、PCI、HDD、Network等多种应用接口。

PCIe特点

首先就是差分信号,其次就是全双工,有点422的味道了,还有就是支持热插拔,对了pci也是支持热插拔的,高速,多个设备等。

即允许在同一时刻,同时进行发送和接收数据。如下图所示,设备A和设备B之间通过双向的Link相连接,每个Link支持1到32个通道(Lane)PCIe使用的是8b/10b的编码。

为了实现直流均衡。在高速串行通信中,8B/10B编码是一种经常用到的编码方式。而高速串行总线中,通常采用交流耦合方式,即在发送端(TX)串接电容,根据电容“隔直流,通交流”的特性,或者理想电容的阻抗公式:
电容阻抗公式

信号频率越高,电容阻抗越低。当数据位流中出现多个连续的1或0时,可以认为该时间段信号是直流的,电容的损耗变大,导致信号的幅度降低,直流信号被滤除,到最后无法识别是1还是0。而且接收端收到连续的1或0时,没有充分的定时信息,对接收端的解码带来了困难。其原理如下图所示:

8B/10B编码以字节为单位,将数据映射成10位宽度的数据(具体映射方式可查表),使得编码后的二进制数据流中1和0的数量基本保持一致,同时确保字节同步易于实现。

8B/10B编码基本原理_8b10b编码原理-CSDN博客

PCIe协议是一种端对端的互连协议,一个典型的PCIe系统框图如下:

与PCIe拓扑结构相关的其他术语如下:

  • 根复合体(Root Complex)
  • PCIe终端设备(PCIe Endpoint)
  • PCIe桥接器(PCIe bridge)

Root Complex我们简称为根复合体。根复合体将CPU和内存子系统(Memory)连接到由一个或多个PCIe或PCI设备组成的PCI Express交换结构。它是PCI反向树拓扑结构的“根”,代表CPU与其他设备进行通信。

PCIe endpoint就是PCIe的终端设备/PCIe终结点。PCIe终端设备可以直接与根设备进行连接,也可以通过Swith交换设备与根设备连接(交换设备类似于接口扩展功能)。

根据PCIe规范,在PCIe拓扑中可以有256个总线,每个总线上有32个设备,每个设备有8个功能。一个终节点最多可以支持8个功能,每个功能都有自己独立的配置空间。

例如:基于PCIe的非易失性内存(NVM)和基于PCIe的固态硬盘(SSD)是计算机系统中的两种终节点设备。

PCIe桥接器:桥接器可以将PCI设备的请求转换为PCIe x1规范的请求,并连接到计算机PCIe插槽上。工作流程如下:

主设备发送带有必要参数的请求到PCIe桥接器。

PCIe桥接器接收请求并进行协议转换,将PCI请求转换为适合PCIe接口的形式。

转换后的请求在PCIe接口上发起点对点传输。

请求在接口通道上进行传输,通过PCIe总线连接到目标设备。

通过这种方式,PCI设备能够利用PCIe插槽和接口连接到计算机系统,实现数据和控制的交换。

PCIe层级

PCIe体系结构包括应用层、事务层(Transaction Layer)、数据链路层(Data Link Layer)和物理层(Physical Layer)。

PCIe接口版本

PCIe-x只是一个接口协议,如果大家都老老实实就好了,但是,这个接口而已嘛,想要干嘛就可以干嘛,只要两边对上引脚和协议就ok了。

PCIe协议版本

PCIE1.0/PCIE2.0/PCIE3.0/PCIE4.0/PCIE5.0

  • PCIe的向下兼容性体现在以下几个方面:PCIe具有向下兼容的特性,这意味着较新版本的PCIe插槽和设备可以与较旧版本的PCIe插槽和设备进行互操作。这种兼容性确保了新设备可以与旧设备一起使用,从而减少了升级和更换设备时的不便。

  • 插槽兼容性:较新版本的PCIe插槽通常可以容纳较旧版本的PCIe卡。例如,一个PCIe x16插槽通常可以容纳任何较小的PCIe卡,如PCIe x8、PCIe x4或PCIe x1。这意味着您可以将较旧的PCIe卡插入较新的插槽中,以实现互操作性。

  • 带宽适配:如果您将一个使用较少通道的PCIe卡插入一个具有更多通道的PCIe插槽中,系统会自动适配带宽。例如,将一个PCIe x1卡插入PCIe x16插槽中,系统会将该卡的带宽限制为PCIe x1的速度。这确保了卡与插槽之间的通信不会出现不匹配问题。

  • 协议兼容性:即使新版本的PCIe协议引入了一些新功能和特性,但它们通常会保持与旧版本的兼容性。这意味着使用旧版本PCIe设备的系统不会因为新版本PCIe插槽而出现兼容性问题。

  • 供电兼容性:PCIe插槽还需要向下兼容供电。较新的PCIe插槽可以为较旧版本的PCIe卡提供适当的电源。这确保了即使插槽能够提供更高的电源能力,也不会损坏较旧的卡。

  • PCIe的向下兼容性使得用户能够在升级或更换设备时更加灵活,无需担心新设备是否与旧设备兼容。这种特性有助于维持系统的稳定性和灵活性,同时节省了升级成本。

PCIe用途

显卡、固态硬盘(PCIe接口形式)、无线网卡、有线网卡、声卡、视频采集卡、PCIe转接M.2接口、PCIe转接USB接口、PCIe转接Tpye-C接口

PCIe自定义引脚和协议

因为,我们看到PCIe是有物理层的,所以,我们其实就可以单独使用物理层一个就可以了,什么意思就是,插口卡口是固定的,但是接的线是可以改动的,我不一定要按照它的协议进行设计,我也可以用我自己的接口引脚协议,只要两个设备统一引脚和接线协议就好了。

总结

PCIe是一个高级的协议和接口,它在iso层级中有4层使用方法,所以,它不但是硬件协议,还是软件协议,自然是只有高端的嵌入式设备或者高性能设备才有使用到的资格,但是,只是使用硬件协议,就是那些接口的话,啥地方都能用的。

-------------下次的来访是什么时候呢[doge]-------------