- Power:电源部分,PCIe协议规定了关于标准的卡槽电源部分主要有12V、3.3V、3.3Vaux三种,其中3.3V和3.3Vaux电压在不同的插槽宽度下通流能力是一致的(例如X1、X4、X16),关于3种电源的应用说明如下图所示:
- 12V电源:电源通常用于提供设备的主要功率需求,特别是对于高功耗设备,如高性能显卡、加速器卡等。这些设备通常需要较高的电源供应以确保其正常运行。
- 3.3V电源:通常用于提供设备的辅助电源需求,例如用于设备的逻辑电路和控制电路。一些低功耗设备可能会主要使用3.3V电源。
- 3.3Vaux电源:用于提供设备的辅助功能支持,这种电源通常用于设备的唤醒功能、管理接口、EEPROM等辅助电路的供电。与3.3V电源相比,3.3Vaux电源可能在设备处于低功耗状态时仍然保持激活,以支持设备的管理和唤醒功能。
- 功率限制:如下图所示,列出了不同链路宽度和卡类型的功耗限制。例如,该表指出x1卡不能超过10W,除非它是用于服务器应用的高功率设备,在这种情况下,最大功率为25W。在高端,x16图形卡允许消耗高达75W(对应PCIe3.0)。
笔注:需注意当PCIe卡槽采用不同的尺寸时,所允许的最大功率也是不一样的,例如当采用Low Profile card尺寸时,所对应的X4/X8的最大功率为10W。其中Low Profile card和Standard Height的差异为高度,Low Profile card通常为68.9mm,Standard Height为111.28mm。
- PERST信号:代表全局复位信号(低有效),PERST信号用于向PCIe设备发送重置信号,将其恢复到初始状态。PERST信号通常通过PCIe插槽上的一个或多个引脚连接到PCIe设备。这些引脚通过主板的硬件连接到系统的主控制器,以便发送重置信号。PERST信号可以作为 Cold Reset 或 Warm Reset 的触发信号之一,可以由系统硬件或软件发出,用于触发设备的重置操作。PERST信号可能是冷复位或热复位,具体取决于触发该信号的条件和操作系统的要求。在电路设计上通常会在该引脚处并联100nF电容,用于增强系统的稳定性(例如:热插拔等)。Cold Reset是一种全局复位操作,用于将整个PCIe总线系统恢复到初始状态。Cold Reset会影响整个PCIe总线系统和连接的所有设备,将它们恢复到初始状态。通常由系统重启或电源重启时触发。Warm Reset是一种设备级的重置操作,用于重置特定的PCIe设备而不影响整个PCIe总线系统。Warm Reset通常是由操作系统或设备驱动程序发出的命令,用于解决特定设备的问题。
- WAKE#信号:在PCIe接口中,WAKE#信号是一种用于唤醒设备的信号。它的作用是通知设备有关系统状态的变化,例如系统从睡眠状态或节能模式中唤醒。WAKE#信号低电平有效,当WAKE#信号处于低电平时,设备应该响应并恢复到正常运行状态,WAKE#信号是开漏输出(open-drain)。在电路设计上通常会在该引脚处不做处理,建议预留上拉电阻(一般关于PCIe的应用中很少会涉及到低功耗模式)。
- SMBus信号:SMbus是一种额外的串行总线,分为SMB_DATA、SMB_CLK两个信号,可用于支持PCIe设备之间的通信和管理。由英特尔引入的串行总线标准,用于连接系统中的各种设备,如电源管理控制器、温度传感器、风扇控制器等,并提供对这些设备的监控和管理功能。在电路设计上一般不使用,如要使用,功能类似于IIC总线,需做上拉。
- JATG信号:此可选接口提供了一个测试访问端口(TAP),以方便对实现它的卡进行测试。TAP引脚工作在3.3V。在电路设计上一般不使用。
- PET/PER信号:PCIe使用多条差分数据信号线来传输数据。这些信号通常被标记为Tx和Rx,在不同的PCIe速率下,会有不同数量的差分数据信号线。在电路设计上通常会在信号发出端,串接电容,例如在Gen2中电容容值一般为100nF,在Gen3中电容容值一般为220nF。
- PRSNT信号:在PCIe接口中,PRSNT#信号通常用于指示设备是否已经插入到插槽中。这个信号是由插槽上的机械开关或电气连接器控制的,当设备插入插槽时,PRSNT#信号会被拉低(active low),表示设备已经插入到插槽中,下图为PCIe协议中关于PRSNT信号的典型应用。在电路设计上,通常PRSNT1#默认接地,PRSNT2#_1、PRSNT2#_2默认接到一起,外部做上拉处理,之后接入到CPU等PCIe主控当中,PRSNT2信号一般应用于热插拔检测。
REFCLK信号
- CDR电路:CDR电路作为串行总线中的关键所在,是一种用于从串行数据流中提取时钟信号并恢复数据的关键电路。它通常用于高速串行通信系统中,例如PCIe、以太网、光纤通信等,以确保数据在发送和接收端之间的正确同步和解析。CDR电路通常包括一个锁相环(PLL)或类似的反馈控制电路。首先,会从串行数据流中提取到可能的时钟信号,将提取到的时钟信号和本地时钟信号进行比较,以确定它们之间的相位和频率差异。并根据比较结果调整本地时钟信号的相位和频率,以尽量与数据流的时钟保持同步。使用恢复的时钟信号对接收到的数据进行解析和恢复,以获得正确的数据。关于CDR电路的原理类似于PLL电路,本文不再赘述。需注意CDR电路常规设计上都是采用PLL的方式来实现,而PLL锁相环的带宽决定着输入数据中有多少抖动可以传输到恢复的时钟内。PLL带宽越宽传输到恢复时钟内的抖动就越多,从而会减少眼图中显示的抖动量,而较窄的PLL带宽则会使得时钟的抖动较小,从而在解析数据时,产生较多的CRC问题(例如,笔者遇到过CPU芯片内部的SerDes由于PLL带宽软件配置的较小,导致输出存在较多CRC的情况)。
- REFCLK:如何去完成PCIe接口中的REFCLK时钟电路设计,需要根据接口所支持的不同PCIe速率进行设计。通常来讲,REFCLK的时钟频率为100MHz,差异点在于不同的PCIe速率所对应的参考时钟的抖动是不同的。PCIe协议中规定的参考时钟为HCSL电平,在Gen1~Gen4接口下要求收发端参考时钟精度在±300ppm以内,Gen5要求频率稳定性 ±100ppm,详细要求见下图。笔注:以PCIe3.0为例,要求收发端参考时钟频率稳定性在±300ppm以内、RMS抖动不超过1.0ps,而到PCIe5.0中,对于参考时钟的稳定性为±100ppm以内、RMS抖动不超过0.15ps。
参考时钟架构
PCIe协议中规定了3种参考时钟架构,用户可自由选择3种时钟架构中的任意架构进行电路设计,分别为Shared Refclk、Data Clocked Rx Architecture、Separate Refclk Architecture,通常关于PCIe接口上的参考时钟架构设计,常采用Shared Refclk的方式。关于这3种架构的介绍如下所示:
- Shared Refclk:TX端和RX端均使用同一个参考时钟源。即使系统使用了带有扩频的参考时钟源,时钟抖动也只有-300~+2800ppm(在Gen5中该范围变为-100~+2600ppm),这样的设计,可以降低CDR的复杂程度,达到节约成本的目的。由于所有PCIe设备共享相同的参考时钟信号,这有助于确保数据在不同设备之间的同步传输,避免数据传输中的时序问题和数据丢失。其次,当PCIe链路处于L0s或者L1状态时,即使链路上没有数据流,RxCDR依然可以设计出保持锁定的状态,这样做的好处是,链路从L0s或L1状态恢复到L0状态的时间将会更短。
- Data Clocked Rx Architecture:在这种架构中,接收器使用数据本身的边沿来提取时钟信号,而不是依赖于独立的时钟信号源。为了从数据信号中提取时钟信息,Data Clocked Rx Architecture通常使用一些专门的时钟提取算法。这些算法可以识别数据信号中的特定模式或边沿,并从中恢复出稳定和精确的时钟信号。常见的时钟提取算法包括差分信号比较、时钟边沿检测、时钟数据恢复等。
- Separate Refclk Architecture:在这种架构下,每个PCIe设备都有自己独立的参考时钟信号源。这些信号源可以是晶振、外部时钟发生器或其他类型的时钟源。每个设备都使用自己的参考时钟信号来同步数据传输和时序。同时根据有无SSC可进一步分为SRNS ( Separate Refclk with No SSC) 及SRIS(Separate Refclk with Independent SSC)。SRNS 允许 ±300 ppm (600ppm),而 SRIS 允许 ±2800 ppm (5600 ppm,其中SSC允许 5000ppm,TX/RX允许 600 ppm)。
笔注:Data Clock 时钟方案仅适用于Gen2及Gen3,单lane单向最高速率8GT/s。
Retimer介绍
-
Retimer芯片作用
Retimer的主要职责是补偿由于传输介质引起的信号损失和失真。它通过几种方式来实现。一种方法是在模拟域中工作,以电补偿信号损失。Retimer可以利用自适应均衡器(EQ)和决策反馈均衡器(DFE)来补偿信号损耗、噪声和串扰。它还可以在发射器上提供预加重或去加重,以改善信号调理。
Retimer的最后一个功能是积极参与PCIe协议通信。Retimer是协议感知的,它们在Root Complex和PCIE Endpoint之间进行通信,以优化其输入和输出的信号。链路训练和状态状态机(LTSSM)指示Retimer如何通过PCIe协议与CPU或端点进行交互。这些任务中的每一个对于Retimer的整体功能都很重要,下图所示为Retimer的内部简图,包括了Rx和Tx均衡部分、CDR电路,以及其它辅助功能。其中Rx接收侧由CTLE+DFE组成均衡能力的电路,Tx发射侧由3阶的FIR实现均衡调节高速信号的功能,CDR 的功能是通过输入信号将时钟恢复出来。
笔注:需注意Reimer芯片的使用场景,常见于各类高速串行总线,如HDMI、PCIe、USB 100GbE/40GbE/10GbE QSFP+以太网等。
-
Retimer芯片改善信号的方式
笔注:在Gen2.0中,对于去加重只支持-3.5dB和-6dB两种调节值。
Linear driver介绍
PCIe布线要求
-
采用10°走线,避免玻纤效应,选择合适的板材,减少损耗。 - PCIe规范要求85欧姆的差分走线阻抗,对内等长控制在5mil以内。
- PCIe 规范要求在TX信号上放置交流耦合电容,电容下方做挖空处理。
- 控制走线长度,尽可能避免过孔,对于过孔处,需要做阻抗匹配以及预留回流地过孔。
- Lane和Lane之间采用地孔进行隔离,同时保持3W或5H原则,以减少串扰或交叉耦合的影响。
PCIe总线带宽计算
笔注:GT/s是指链路上传输的原始数据,而Gbps是指链路上传输的有效数据,Gbps表示每秒传输1千兆个比特,GT/s代表每秒千兆传输。
参考资料:《PCI EXPRESS SYSTEM ARCHITECTURE》以及TI官网。
写得很好,收藏!大神可以帮我看一份图不,想知道PCIE X1 最少需要几根线,不需要热插拔、不需要唤醒和休眠。可以联系我解答一下吗?
debuer@qq.com
对于不需要热插拔、不需要唤醒和休眠功能的PCIe X1接口,最少需要4条差分线来实现基本功能。2条用于差分信号线数据传输,2条差分线用于控制信号。