引 言
PCIe是一个在很多领域中都有着广泛且重要应用的接口,经过十几年的发展,PCIe接口已经从1.0发展到现在的3.0,4.0也已即将开始应用。PCIe技术的物理层基于串行SerDes技术,因此用极少的物理连线就可以实现高速的数据传输。笔者在前段时间碰上了两个PCIe接口失效的问题,第一个经过分析是PCIe的ESD防护没有做好导致通讯中断,第二个是电源负载过大导致PCIe供电异常,FPGA PCIe IPCORE逻辑时钟失锁。现把这两个问题的定位和解决过程与读者一同分享。
1.系统概述及问题描述
现简略的介绍该系统,其简略框图如下:
该系统由两个模块组成,前端模块可插拔,在插入后会传输信号给FPGA,信号经过前端接收,A/D采样后进入FPGA做信号处理,然后FPGA把处理过的信号通过PCIe接口传送给工控机进行后处理及显示。工控机也会通过PCIe接口控制FPGA的工作状态。前端的模块是可插拔的。
第一个问题是该机器在做测试时,发现在换模块时会偶发的出现工控机与FPGA的通讯异常的现象,该现象出现的频率很低,测试组的同事反馈在做测试时经常会有换模块的操作,但该现象基本上几天才出现一次,虽然该现象概率低,但是问题影响甚为重大,必须攻破。
第二个问题则是系统不接交流电而使用电池运行在某种模式下,在达到10%低电量时,会必发的出现PCIe通讯异常。
2.第一个问题定位及解决过程