最近在负责调试某芯片自带的以太网接口,丢包严重,求各位大神帮忙,谢谢。
芯片型号就不说了,内嵌了一个数据链路层模块,称为GEDI,通过外接一个PHY芯片实现以太网连接
调试设置:10M(先调试慢的),设置了芯片内部的mac地址,IP地址,通过网线与电脑直接相连
芯片IP设置为:10.10.2.100,电脑主机IP设置为:10.10.2.102,子网掩码设置为:255.255.255.0
芯片内部通过fireware把收发的frame全部保存起来;电脑通过wireshark抓包,使用ping命令ping 100次
通过交叉对比,电脑发送的请求包芯片全部收到并且发送了对应的响应,但是有45%的响应timeout
芯片内部负责统计收发数据帧的寄存器中的计数器值也与预期相同。
timeout期间芯片发了一些arp包,电脑都正确收到了,GEDI模块在EDA环境DUT验证没有问题
通过上述现象,我觉得芯片中以太网数据链路层收发通路都是好的,PHY接收发送也是ok的,但是就是丢包,望各位大神帮忙解决,谢谢。
下图是以太网的帧格式,GEDI主要完成同步头、界定符,DA,SA,TYPE/LEN的分析,解帧,生成/检查headchksun、payload chksum等内容,然后根据DMA配置读取/写入芯片内置RAM。补充一下,实现以太网协议和802.3协议,下图只是网上找的一个,示意一下。
下图是wireshark抓包的一个截图,在timeou期间芯片发送了一些ARP包。
下图是电脑使用ping命令的截图
|