PCIe板卡辅助信号解析

1.简介

PCIe Add-in卡借助PCIe插槽上的辅助信号,实现了很多系统级的功能,比如唤醒、复位、调试、热插拔等功能。具体的辅助信号有REFCLK-/REFCLK+、PERST#、WAKE#、SMBCLK、SMBDAT、JTAG、CLKREQ#及PRSNT1#和PRSNT2#等,具体的作用如下:

  1. REFCLK-/REFCLK+: 是一组低压差分信号,PCIe主板提供的REFCLK信号必须满足PCIe规范中的要求。
  2. PERST#: 信号用于复位PCIe设备,同时也指示了系统主电源的稳定时间。
  3. WAKE#: 信号用于给PCIe主机提供复位信号,由PCIe设备驱动,当PCIe主机接收到该信号后,需要向PCIe设备提供主电源和参考时钟,以激活PCIe链路。WAKE#信号也可以和OBFF机制配合使用,当PCIe主机需要调整设备的缓冲行为(如刷新或填充缓冲区)时,可以通过WAKE#信号通知PCIe设备。这样,设备能够在不需要发送或接收数据时进入更低功耗的状态,并在必要时迅速被唤醒以处理数据。
  4. CLKREQ#: 信号由PCIe设备驱动,用于向PCIe主机请求参考时钟,以便于PCIe接口发送和接收数据。 当PCIe设备处于L1 PM Substates状态时,CLKREQ#拉高,参考时钟被关闭,此时PCIe链路处于不活跃状态,PCIe主机或者PCIe设备拉低CLKREQ#后,PCIe设备将退出L1 PM Substates状态。
  5. SMBCLK#: 是SMBus接口的时钟信号。
  6. SMBDAT#: 是SMBus接口的数据信号。
  7. JTAG (TRST#, TCLK, TDI, TDO, and TMS) : 这些引脚用于支持IEEE Standard 1149.1规定的测试访问端口和边界扫描架构(JTAG)。对于PCIe设备来说是可选的。
  8. PRSNT1#和PRSNT2#: 是PCIe卡热插拔探测引脚。
    下面主要分析一下REFCLK-/REFCLK+、PERST#、WAKE#信号。

2.REFCLK-/REFCLK+

如下图所示,为了减少抖动和适配未来的制造工艺,参考时钟使用低电压摆幅和差分信号。每个时钟的标称单端摆幅为0V - 0.7V,时钟频率为100MHz ± 300PPM。

参考时钟
参考时钟在系统主板上的每个连接器之间点对点布线,且在系统主板上布线距离不超过15英寸(38.1厘米)。在接收端,数据和时钟的传输延迟误差必须小于12纳秒。参考时钟最大失配和通道最大长度的组合将导致约9-10纳秒的延迟误差。从时钟源到连接器之间,参考时钟REFCLK-和REFCLK+两根信号线的长度误差必须小于0.005英寸(0.0127厘米),并且需要适当地远离其他非时钟信号线,以避免过度串扰。

3.PERST#

PERST#信号用于指示电源是否在其规定的电压容许范围内并且稳定。在电源稳定后,它还会初始化PCIe设备的状态机和其他逻辑。

3.1.ACPI电源状态

PERST#信号动作通常伴随着系统电源变化,因此需要先介绍一下电源状态。ACPI规范定义了一系列的电源状态,以协调操作系统和硬件之间的电源管理。这些状态分为几个不同的类别,包括全局状态(G状态)、系统状态(S状态)、设备状态(D状态)和处理器状态(C状态)。 以下是一些常见的ACPI电源状态的表格概览:

类别状态描述
全局状态G0 (S0)工作状态,设备全功率运行
全局状态G1睡眠状态,包含多个子状态:S1、S2、S3、S4
全局状态G2 / S5关机状态,系统不工作但仍供电
全局状态G3机械关机,无任何供电
系统状态S0开机状态,系统完全运行
系统状态S1睡眠状态:处理器停止执行,较快唤醒
系统状态S2睡眠状态:处理器关闭,电源较少部分,唤醒较快
系统状态S3睡眠状态:标准睡眠模式,保存到 RAM
系统状态S4睡眠状态:休眠模式,保存到磁盘
系统状态S5关机状态,系统关闭,但电源仍然供给到某些部件
设备状态D0设备完全启动(ON)状态
设备状态D1, D2部分睡眠状态,供不同程度的电源,可能保持某些上下文
设备状态D3完全关闭(OFF)状态,但仍然供有待机电源
处理器状态C0处理器全速运行
处理器状态C1轻度休眠,处理器停止指令执行,快速恢复
处理器状态C2较深睡眠,电力优化关闭更多硬件部件,恢复较慢
处理器状态C3更深睡眠,可能关闭所有处理器缓存,恢复时间更长

3.2.Initial Power Up (G3 to S0)

下图描述了PCIe板卡从上电到稳定工作时,辅助信号、电源及PCIe链路的时序图。具体的流程如下(有些时间CEM规范做了明确定义,有些则没有,明确定义的时间本文将会写出具体时间):

  1. 如果系统和PCIe板卡支持3.3Vaux辅助电源,则需要先给3.3Vaux上电,此时PERST#可以一直保持低或者高。
  2. 3.3Vaux辅助电源稳定后,PCIe主机拉低PERST#,使PCIe设备处于复位状态。
  3. 3.3Vaux辅助电源稳定后,延时1,SMbus开始工作。若没有3.3Vaux辅助电源,则从3.3/12V主电源稳定后开始计时。
  4. 3.3/12V主电源稳定后,延时2(TPVPERL)拉高PERST#,TPVPERL为100毫秒,主电源稳定后参考时钟开始输出,参考时钟稳定需要时间3(TPERST-CLK ),TPERST-CLK为100微秒。因此PERST#拉低的时间至少为TPVPERL + TPERST-CLK = 100.1毫秒。
  5. 参考时钟稳定后,至少需要时间4,PCIe Link才能正常工作。
  6. 参考时钟稳定后,至少需要时间5,JTAG才能正常工作。

Initial_Power_Up
刚开始上电的时候,Link Control register(配置空间寄存器)的Active State Power Management Control(ASPM Control)位域的硬件状态必须设置为0,后续该位域只能由系统的BIOS或者操作系统更改,其他软件不能更改。

3.3.Power Management States (S0 to S3/S4 to S0)

如果系统要进入S3或者S4状态,则需要在PCIe插槽改变电源状态之前,将PCIe设备设置到D3hot状态,且PCIe链路为L2状态。随后,PCIe插槽的主电源和参考时钟将会关闭,直到被唤醒。由于主电源被切断,PCIe设备的状态将由D3hot转变为D3cold。PCIe设备处于D3cold状态时,3.3Vaux辅助电源还会继续供电。一旦唤醒事件到来,电源管理系统将恢复主电源和参考时钟。最后等到主电源和参考时钟稳定后,拉高PERST#。具体的流程如下:

  1. 系统在准备进入S3/S4状态之前,需要先使PCIe Link处于不活跃状态,即PCIe Link处于L2状态。
  2. PCIe Link处于不活跃状态起经过时间1,拉低PERST#,使PCIe设备进入复位状态。
  3. 拉低PERST#起经过时间2,系统开始切断主电源和参考时钟,主电源和参考时钟处于不稳定状态。
  4. 拉低PERST#起经过时间3,JTAG需要停止工作,处于不活跃状态。
  5. 唤醒时间到来,系统开始给主电源上电,然后输出参考时钟,经过时间4,PCIe设备恢复到正常工作状态。
  6. 系统从S0状态到S3/S4状态,再到S0状态,PERST#拉低的最短时间为5(TPERST),TPERST为100微秒。
    Power_Management_States
    PCIe设备从D3cold状态恢复,Link Control register(配置空间寄存器)的Active State Power Management Control(ASPM Control)位域的硬件状态必须设置为0,后续该位域只能由系统的BIOS或者操作系统更改,其他软件不能更改。

3.4.Power Down

如下图所示,考虑到容许误差,为了判断电源是否有效,CEM规范定义了两个阈值范围。3.3V和3.3Vaux电源阈值范围为2.5V-3.00V,12V电源阈值范围为9.7V-11.04V。当系统规定了3.3V、3.3Vaux、12V电源的阈值,如果电源电压低于该值,则说明电源处于不稳定状态,需要系统做下电处理。

Power_Down
PCIe设备掉电时,各个信号的时序图如下图所示。具体的流程如下:

  1. 在PCIe插槽主电源掉电之前,先要使PCIe Link处于不活跃状态,PCIe设备处于D3hot状态。
  2. PCIe Link处于不活跃状态起经过时间段1,拉低PERST#,使PCIe设备进入复位状态。
  3. 拉低PERST起经过时间段2,PCIe插槽控制主电源开始掉电。
  4. 拉低PERST起经过时间段3,参考时钟停止输出,同时JTAG也停止工作,时间段3大于时间段2。
  5. 时间段4(TFAIL)表示意外断电的情况下,PERST#拉低需要的时间。TFAIL的最大时间为500纳秒。
    Power_Down

4.WAKE#

TODO…

5.电压参数

电压参数

6.时间参数

时间参数

参考资料

  1. PCI Express® Card Electromechanical Specification Revision 4.0
  • 11
    点赞
  • 17
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值