导读
网络故障困扰重重?本文聚焦客户网卡故障的两种特殊情形:低温运行与信号干扰下的网络卡死。看似简单却历经波折的解决过程,带你深入剖析排查中陷入的误区。
MDIO信号反射导致网络卡死分析
客户反馈网卡故障表现有两种情形:在低温情况下运行一段时间后,容易出现网络卡死,必须重启才能恢复;外界稍微有点信号干扰就有可能引起网络卡死。
问题的解决方法看似很简单,但解决过程却颇费周章,花费了很多的精力。排查出原因是MDIO的时钟信号在低温情况振铃增强或受到干扰时,信号产生毛刺,导致寄存器被写入了错误的值,PHY进入了异常状态无法工作。最终解决的方法是在MDC信号靠近源端串联22欧电阻。下面进行分析。
首先问题的现象是低温工作一段时间后出现,双网口的板卡只有其中一个网口会出现该问题,且网络一旦卡死,必须重启才能恢复,所以开始认为是走线问题或电源问题诱发的MAC或PHY卡死。
另一个陷阱是PHY寄存器有两部分,由于MDIO协议定义的register address位宽为5bit,对PHY来说是不够用的,所以原厂将其分成了一般寄存器和扩展寄存器两部分。
以裕泰微的YT8531为例,通过一般寄存器的0x1E和0x1F间接地读写扩展寄存器,地址大于0x1F的寄存器都需要通过0x1E和0x1F作为入口,参考图1。初次检查寄存器的时候只读出了一般寄存器的值,检查对比异常时和正常时没有区别就认为寄存器没有问题了。后期又仔细核对发现出问题在扩展寄存器,才又将调试方向纠正过来。测试MDIO波形发现原本应该只在初始化过程中配置好的地址,正常通信过程中也在不停的覆写,最终在反复的“尝试”后,终于等到MDC毛刺,成功将错误值写入了寄存器。最终也通过示波器测到了MDC上的毛刺,测量得到的波形如图2所示。
图1 YT8531扩展寄存器入口
图1 示波器协议解析功能测量MDIO波形
MDIO是以太网电路中十分重要的部分,配置模式、调整性能都离不开MDIO,很多以太网故障都与MDIO有关。MDIO协议规定是可以多个网口使用同一个总线的,PHY芯片基本也都留有设置PHY地址的上下拉电阻,但很多主控芯片原厂还是会不建议一对多的设计。MDIO看似和I2C很像,但实际还是与I2C有很大区别,它的协议时序不同,速率也比I2C高很多,没有应答位,所以MDIO的上拉电阻不能用阻值太小的,信号走线也需要注意抗干扰和阻抗匹配。
关注我们,下期继续讲解:以太网Link Down问题排查题排查及其他容易忽略的问题。
AM335x升级之选
2路千兆以太网
3路CAN FD
支持GPMC
参考价格:319元起