目录
2. 模拟前端(Analog Front End, AFE)配置
PCIe 物理层初始化(Physical Layer Initialization)是 PCIe 链路训练过程中的第一个阶段,确保 PCIe 设备的物理层(PHY)准备好进行通信。这个阶段包括多个子步骤,每个步骤都有特定的任务和目的。以下是 PCIe 物理层初始化的详细过程:
1. 时钟和电源管理初始化
任务:
- 时钟源初始化:确保时钟源稳定且频率准确。
- 电源管理初始化:确保电源供应稳定,满足 PCIe 设备的功耗要求。
详细步骤:
- 时钟源:配置内部或外部时钟源,确保时钟信号的频率和稳定性。常见的时钟频率包括 100 MHz 和 25 MHz。
- 电源管理:配置电源管理设置,确保 PCIe 设备在不同功耗状态下(如 D0、D3 状态)的电源供应稳定。
2. 模拟前端(Analog Front End, AFE)配置
任务:
- 预加重(Pre-emphasis)设置:配置发送信号的预加重参数,以补偿信号传输过程中的衰减。
- 均衡(Equalization)设置:配置接收信号的均衡参数,以恢复信号质量。
详细步骤:
- 预加重:设置发送信号的预加重系数,以增强高频成分,减少信号衰减。预加重系数通常在 0% 到 35% 之间。
- 均衡:设置接收信号的均衡参数,以补偿信道的频率响应。均衡参数包括连续时间线性均衡(CTLE)、决策反馈均衡(DFE)等。
3. 电气特性检查
任务:
- 信号质量检查:验证发送和接收信号的质量,确保信号完整性。
- 噪声水平检查:测量和评估信号路径中的噪声水平,确保噪声在可接受范围内。
详细步骤:
- 信号质量:使用内置自检(BIST)或其他测试方法,验证发送和接收信号的眼图(Eye Diagram)质量。
- 噪声水平:测量信号路径中的噪声水平,确保噪声不会影响信号传输。
4. 复位和初始化
任务:
- 硬件复位:对物理层硬件进行复位,确保其处于已知状态。
- 寄存器初始化:初始化物理层寄存器,设置默认值或用户配置值。
详细步骤:
- 硬件复位:通过复位引脚或命令,对物理层硬件进行复位。
- 寄存器初始化:设置物理层寄存器的初始值,包括链路控制寄存器、状态寄存器等。
5. 链路对端检测
任务:
- 发送 TS1 序列:发送 Polling Training Sequence (TS1) 以检测链路对端的存在。
- 接收 TS1 序列:监听对端发送的 TS1 序列,确认链路对端已准备好进行链路训练。
详细步骤:
- 发送 TS1 序列:定期发送 TS1 序列,以检测链路对端的存在。
- 接收 TS1 序列:监听对端发送的 TS1 序列,确认链路对端已准备好进行链路训练。
6. 链路宽度和速率检测
任务:
- 链路宽度检测:通过交换信息,确定链路的最大宽度(如 x1、x4、x8、x16)。
- 链路速率检测:通过交换信息,确定链路的最大速率(如 Gen1、Gen2、Gen3、Gen4、Gen5、Gen6)。
详细步骤:
- 链路宽度检测:发送和接收链路宽度检测序列,确定链路的最大宽度。
- 链路速率检测:发送和接收链路速率检测序列,确定链路的最大速率。
7. 链路训练准备
任务:
- 配置链路参数:设置链路宽度、速率和其他相关参数。
- 进入检测状态:准备进入 LTSSM 的检测状态,继续链路训练过程。
详细步骤:
- 配置链路参数:根据检测结果,设置链路宽度、速率和其他相关参数。
- 进入检测状态:准备进入 LTSSM 的检测状态,继续链路训练过程。
总结
PCIe 物理层初始化是一个多步骤的过程,确保 PCIe 设备的物理层准备好进行通信。通过时钟和电源管理初始化、AFE 配置、电气特性检查、复位和初始化、链路对端检测、链路宽度和速率检测以及链路训练准备,可以确保 PCIe 链路的信号质量和可靠性。以下是物理层初始化的简化流程:
- 时钟和电源管理初始化:确保时钟源和电源供应稳定。
- AFE 配置:设置预加重和均衡参数。
- 电气特性检查:验证信号质量和噪声水平。
- 复位和初始化:复位物理层硬件并初始化寄存器。
- 链路对端检测:发送和接收 TS1 序列,检测链路对端的存在。
- 链路宽度和速率检测:确定链路的最大宽度和速率。
- 链路训练准备:配置链路参数并准备进入检测状态。
通过这些步骤,PCIe 设备可以顺利进入后续的链路训练阶段,最终建立稳定的通信链路。