由于网络分析仪等设备的缺乏,上板进行以太网链路测试时,采用了两种方法:
方法①PC及上使用wireshark抓包分析;
方法②PGL22G开发板的网口与基于XILINX芯片的开发板ALINX AX7101的其中一个网口与进行互联测试。两个开发板在以太网设计上是一致的,开发板ALINX AX7101经过验证,网口是正常的。如下图所示。
发送报文采用两层以太网报文,以太网TYPE固定为0x8899。由于测试环境比较简单,不会有其它的杂包,因此无论是采用wireshark抓包还是用开发板对接收报文的检查/统计,均用(TYPE=0x8899)来识别报文。接收端进行统计时,同时统计报文个数和字节数。
控制PGL22G开发板网口(千兆模式下)发送长度随机的以太网报文(伪随机),长度介于64~1518字节之间,网口连接到PC机使用wireshark抓包。发送一段时间后停止,抓包结果如下:
通过串口读取PGL22G开发板内部的发包个数统计,结果却与wireshark抓包个数不符:PGL22G开发板网口发包个数为328003,而wireshark抓包个数为326565,存在丢包。
将PGL22G网口的发包间隔加大(带宽降低),再次做测试,发现还是有丢包发生,但是丢包率有所下降。为避免PC机性能对抓包结果产生影响,干脆直接使用AX7101的网口来进行测试。
单独进行PGL22G开发板发送、AX7101开发板接收测试。发送报文的长度是随机的(伪随机),长度介于64~1518字节之间。发送一段时间后查看两个开发板的统计结果,发送端和接收端统计的报文个数和字节数完全一致(图片左侧为发送端统计,右侧为接收端统计。红色框内为包个数统计,蓝色框内为字节数统计)。查看接收端的内部信息,接收无crc错和长度错。测试证明PGL22G芯片的RGMII发送是ok的。
然后单独进行AX7101开发板发送、PGL22G开发板接收测试。测试方法同上,结果发现PGL22G开发板接收端可以连续接收到正确的包,但有丢包,丢包率2%左右。首先考虑时序约束不够的可能性。将RGMII接收时序收紧一下,设计原本约束的setup/hold时间均为1.05ns,改为setup/hold=0.95ns(2ns-1.05ns=0.95ns)。
编译下载后再次测试,发送端和接收端统计的报文个数和字节数完全一致。说明前一步的测试确实是因为时序约束不够导致的。
最后进行长时间双向传输测试,将两端的发送功能同时打开,先用PC机的流量统计功能得到的当前的流量(单向)约是970Mbps。
然后两个网口互连,测试约2小时后,两端均停止发包,查看内部统计信息如下:
扫码免费申请试用
紫光同创PGL22G开发平台试用连载-(2)以太网测试工程一
紫光同创PGL22G开发平台试用连载-(1)软硬件初步体验
紫光同创PGL22G开发平台试用连载(8)---程序密码之程序篇
紫光同创PGL22G开发平台试用连载(7)---程序密码之理论篇
紫光同创PGL22G开发平台试用连载(6)---边缘检测之综合篇
紫光同创PGL22G开发平台试用连载(5)---边缘检测之算法篇
紫光同创PGL22G开发平台试用连载(4)---边缘检测之串口通信篇
紫光同创PGL22G开发平台试用连载(3)---重点功能初探
紫光同创PGL22G开发平台试用连载(2)---基本流程dome
紫光同创PGL22G开发平台试用连载(1)---软件和器件
紫光同创PGL22G开发平台试用连载(1)-FPGA参数分析和对比
紫光同创PGL22G开发平台试用连载(2)---PDS软件试用
紫光同创PGL22G开发平台试用连载(3)---在FPGA上实现DW8051 MCU