在底层网络调试中,经常会出现硬件电路RMII/RGMII网络问题,仔细分析可分为以下两个大类:
一、网络根本无法通信。
二、Ping包可以Ping通但是会出现卡顿,使用网络测试仪满功率测速时出现丢包,错包或速率达不到预定值。
针对以上两种情况,逐一对RMII和RGMII进行问题分析思路讲解:
1、RMII网络不通:
(1)检查硬件元器件,确认器件工作是否正常,若出现功耗异常或PCB板短路,可能硬件芯片已经损坏。
(2)检查原理图连线,重点检查CLKREF,在某些MAC设备中,RMIII的时钟线并不能用来作为RMII的CLKREF,CLKREF有专用的一条时钟线,一旦接错,无法通信;其次检查PHY的开机配置,确保配置正常。
(3)检查数据线方向是否接错,数据线是TX接RX,但大部分数据线上的网络标号命名都是以MAC为主,这样在PHY端看来,就是TX网络接在了TX上,实际上TX的数据传输是从MAC的TX测进入PHY的TX里,这是正确的。(这一点根据个人的原理图封装可能稍有差异)
(4)检查数据线电平是否匹配,例如MAC端IO电平为3.3V,PHY端IO电平也需要3.3V;检查电源域的纹波,有时电源域的纹波超出正常标准很大的情况下,网络可能不通;
(5)使用示波器量PHY的外置晶振和CLKREF,确认晶振时钟是否正常,CLKREF时钟是否是50M。
(6)时钟方向配置,在某些特定的MAC或场景下,CLKREF的时钟方向会影响RMII的通断,在网络不通时可尝试通过配置改变CLKREF的时钟方向来解决不通的问题。
(7)检查软件配置,若设置的时钟输出,是否打开时钟输出使能等等。
(8)检查RMII的PCB走线是否符合等长标准,是否满足要求的阻抗匹配。
经过以上顺序的排查,基本可以解决RMII不通的问题或者锁定不通的原因。