PCI Express(PCIe)是一个嵌入式系统普遍采用的接口,提供一些关键的优势包括自动检测,通道配置,强大的误差检测和纠正,高通道到通道的偏差容许量和低功耗。因为该接口的能力和多功能性,设计师有时需要调试错误的PCIe连接。Reginald介绍了设计人员改如何去解决这个问题。
当调试1个PCIe通道,没有显示链接的迹象,设计人员可以采取几个步骤来解决这个问题。首先,确认没有任何链路终端设备是停留在复位状态。下一步,探测信号线,并确保它们是正确的水平。此外,检查是否有根据数据手册规定的参考时钟提供给两个设备。非扩频时钟必须限制在PCIe ± 300ppm。如果需要用到扩频时钟,它必须是向下扩频,而且这两个系统必须工作在一个共同的时钟之下。
另一个步骤是检查是否有用不正确的或有损坏的旁路电容,确保电容器处于75至200 nF而且完好。最重要的是验证一个链接的最内层和最外层的通道。对于多通道连接,PCIe通讯协定允许从最高的通道或者最低的通道开始进行自动向下协商链接。链路宽度减少到x1并检查是否能链接上。如果寄存器访问或链接的分离是不可能的,则移除其余链接的旁路电容。
减少信号速度需要从一个变量的方程中得出。虽然是罕见的,但有些Gen1的设备连接到Gen2的设备时会有错误产生。为了解决这些不兼容的的终端设备,PCIe设备供应商通常提供一些特殊的特性来使得Gen2转换并自动协调速度回到Gen1的默认值来链接。
如果在采取这些步骤之后仍然没有连接,这意味着通道的距离构成问题。当工作在远距离中(15’’至20’’或更长),如果通道均衡设置比较差,也没有更高级别的管理器和系统计时器限制重试,PCIe-Gen2设备会在在Gen1和Gen2速率上自动来回循环的进协商。如果该链接是15’’或更长的距离,改变接收器均衡水平和(或者)发送器预加重可能能有效的解决问题。
另外一个步骤是检查接收器侦测的特定设备的屏蔽寄存器。忽略接收器的侦测并允许该设备立即发送链接协议。发送链接系列信号到Rx会初始化适当的链接握手协议。
如果这些步骤不起作用,可能有必要在两个不连接的设备间安置一个逻辑分析仪。当没有逻辑分析仪时,在一些PCIe交换器中有一种内部的调试侦测工具可以跟踪链接的状态,执行基本触发以及提供有价值的的芯片状态和链接状态。
部分连接
因为为了设置均衡器达到更长的连接,解决边缘系统时钟和传统协议错误的问题,系统工作在Gen1而不是在Gen2连接,那么请尝试增加通道的均衡。确认时钟源满足Gen2抖动的要求也可以解决此问题。即使是Gen2,首先保证连接能在Gen1的速率上链接,因此未能在Gen2上链接往往是通道质量和均衡需求的结果。鉴于这一事实,设计人员应该:
* 确保链接的两端都是适用于Gen2
* 确认PCIe参考时钟抖动在变动规范内
* 确认强制工作在Gen1是否是稳固的连接
* 测试特定寄存器,尽可能调整寄存器去降低空闲的电气的阀值。
* 如果此链接长度是10’’至15’’或者更多,整Rx和Tx均衡器(如图示1和2所示)
图1:一个接收器Rx信号在均衡之前阻止的范围。
图2: 在均衡调整之后的Rx信号,最后,设计人员应该仔细的检查正误表,那么答案可能就在那里。