Fork me on GitHub
侧边栏

PCIE 各个管脚的作用是什么?

REQ-CLK

PCIe REQ-CLK GPIO(Request Clock GPIO) 是在某些 SoC 或平台上用于 控制 PCIe 参考时钟(REFCLK)请求/使能 的信号,通常与 CLKREQ#(Clock Request) 功能相关。它的作用主要体现在 低功耗管理链路唤醒 场景。

核心作用

  1. 请求参考时钟(REFCLK)
    • 在 PCIe 规范中,设备可以通过 CLKREQ# 信号 向上游(Root Complex 或时钟源)请求开启参考时钟。
    • 当设备进入 L1 低功耗状态D3hot/D3cold 时,REFCLK 可能被关闭以节能;当设备需要恢复链路时,通过拉低 CLKREQ# 请求重新开启时钟。
  2. GPIO 实现平台级控制
    • 在很多 SoC/嵌入式平台,CLKREQ# 可能不是直接硬连,而是通过 GPIO 模拟或控制。
    • 驱动或固件通过配置这个 GPIO 来:
      • 拉低 → 请求时钟(设备要唤醒)
      • 释放 → 允许关闭时钟(设备可休眠)
  3. 配合 ASPM(Active State Power Management)
    • 当启用 ASPM L1/L1.1/L1.2 时,REFCLK gating 是节能关键。
    • REQ-CLK GPIO 作为 时钟 gating handshake 的一部分,确保在设备需要时钟时能及时恢复。

基本逻辑

  • CLKREQ# 低电平 → 请求开启 REFCLK。
  • CLKREQ# 高电平 → 允许关闭 REFCLK(设备不再需要时钟)。

典型时序流程

  1. 进入低功耗(L1/L1.2)
    • 链路空闲,Root Complex 和设备协商进入 L1。
    • 当设备确认不再需要 REFCLK 时,释放 CLKREQ#(拉高)。
    • 平台在满足延时后关闭 REFCLK(通常通过时钟 buffer gating)。
  2. 唤醒(退出 L1/L1.2)
    • 设备需要恢复链路 → 拉低 CLKREQ#。
    • 平台检测到 CLKREQ# 低电平 → 打开 REFCLK。
    • 等待 REFCLK 稳定(典型 100ns~μs 级)。
    • 设备开始恢复 LTSSM(链路训练),退出低功耗

PERSET

PERST#(PCIe Reset)管脚的作用是为 PCIe 设备提供复位信号,确保在上电或重新初始化时,设备处于一个已知的安全状态。它是 低电平有效 的信号,通常由 Root Complex(主控)或平台控制逻辑驱动。


主要功能

  1. 上电复位(Power-On Reset)
    • 当系统上电时,PERST# 保持低电平,强制 PCIe 设备保持复位状态,直到电源和参考时钟稳定。
    • 释放 PERST#(拉高)后,设备开始初始化 PCIe 链路。
  2. 热复位(Hot Reset)
    • 在运行过程中,如果需要重新初始化 PCIe 设备(例如驱动重载、错误恢复),可以通过拉低 PERST# 来触发复位。
  3. 配合时序要求
    • PCIe 规范要求 PERST# 必须在 REFCLK 稳定后释放,并且在复位释放后,设备才会开始链路训练(LTSSM)。

典型时序

  • 上电顺序
    1. 电源稳定 → REFCLK 稳定 → 保持 PERST# 低电平一段时间(通常 >100 ms)。
    2. 拉高 PERST# → 设备退出复位 → 链路训练开始。
  • 低功耗唤醒
    • 某些平台在 D3cold 状态下会重新拉低 PERST#,再重新上电和初始化。

WAKE#

WAKE# 是 PCI Express 规范定义的一个低功耗唤醒信号,主要用于 从低功耗状态唤醒系统。它是一个由设备驱动、低电平有效的信号,通常连接到主机(Root Complex)或平台的电源管理控制逻辑。


作用

  • 当 PCIe 设备进入 D3coldL2/L3 Ready 等深度低功耗状态时,主机可能关闭设备电源或时钟。
  • 如果设备需要向主机发起事件(例如网络唤醒、外设中断),它会拉低 WAKE#,通知主机恢复电源和时钟,重新初始化链路。

信号特性

  • 方向:设备 → 主机。
  • 电平:低电平有效(Active Low)。
  • 时序要求:WAKE# 触发后,主机必须重新上电并重新训练 PCIe 链路。

PRSNT1# 和 PRSNT2#

PRSNT1# 和 PRSNT2# 是 PCIe 插槽规范中的 卡存在检测(Presence Detect)信号,主要用于判断插槽中是否插入了扩展卡,并且可以用于识别卡的机械尺寸(x1、x4、x8、x16 等)。


作用

  1. 检测卡是否插入
    • 主板通过读取 PRSNT1# 和 PRSNT2# 的连接状态,判断插槽中是否有卡。
    • 如果卡未插入,这两个信号保持开路(逻辑高电平)。
  2. 识别卡的长度(Lane 数)
    • PCIe 插槽在不同位置布置 PRSNT2# 接点,卡插入后会将 PRSNT1# 与某个 PRSNT2# 短接。
    • 主板通过检测哪一对 PRSNT2# 被短接,推断卡的机械尺寸(x1、x4、x8、x16)。
    • 注意:这只是机械尺寸,不代表实际电气 Lane 数。

信号特性

  • PRSNT1#:固定在插槽一端(通常是金手指 A1)。
  • PRSNT2#:在插槽不同位置(如 A64、A82、A98、A164 等),对应不同卡长。
  • 低电平有效:卡插入后,PRSNT1# 与某个 PRSNT2# 短接,信号被拉低。
posted @ 2025-09-30 11:43  yooooooo  阅读(306)  评论(0)    收藏  举报