验证网口通信常见的方式就是通过ping测试。测试ping的话可以找一个以前验证过的上层程序。
ping不通需要排查硬件问题。
一般芯片都是片内mac+片外phy的方式,首先phy的配置一般是通过MDIO接口访问,先读写phy并进行配置。这一步正常的话看下数据接口。数据接口一般是RGMII,RMII等接口。mac和phy之间的电压需要匹配。
phy后面可能需要接变压器,变压器是电压控制还是电流控制这点也需要注意。
以下两个例子是我遇到过的
1 YT8521网卡
mac端的io电压是1.8V,但是实际测试出来的电压是1.2V。需要配置phy的电压。
如果不配置的话现象是ping不通,或者偶尔上电能ping通的话延迟也很大。
网卡通过外部引脚可以进行配置。如下图
2 w5500网卡
w5500连接变压器的部分推荐原理图如下所示,收和发,一个是电流驱动一个是电压驱动,就是一个接电源一个没接。这个与很多常见的phy不一样,很多都是电压驱动或者都是电流驱动。
如果接错了的话,这个状况是自适应只能协商成半双工,100M也无法ping通。通过软件强制设置成10M全双工的话可以ping通。
以上是两种现象,ping不通从硬件方面可以从类似方面排查。