正点原子的领航者 ZYNQ开发板提供了两个千兆以太网接口,一个是连接到PS侧的以太网控制器外设,另外一个是连接到PL侧逻辑,注意二者所使用的PHY并不相同,连接PS侧的PHY芯片为Realtek瑞昱公司的RTL8211E-VL,是放在核心板上,连接PL侧的PHY芯片为博通公司的B50610,是放在底板上。下面用ZYNQ PS侧的以太网控制器来测试开发板提供的千兆以太网PHY的速度性能,开发板固件上使用一个轻量级TCP/IP的实现LWIP协议,这在嵌入式系统中应用的比较广泛,Xilinx SDK 2018.3直接支持的版本为LWIP 2.0.2。上位机我们使用PC上运行最常见TCP/IP和UDP/IP的性能测量工具Iperf软件,该工具能够提供网络吞吐率信息,以及震动、丢包率、最大段和最大传输单元大小等统计信息;从而能够帮助我们测试网络性能,定位网络瓶颈。我们使用的工具软件版本为iperf-2.0.9,为了方便我已上传附件供大家下载,大家需要根据所用PC是32位还是64位先解压对应的压缩包,然后把文件夹下所有文件复制到%systemroot%目录,如WIN64位为C:\Windows目录后就可以用命令行启动测试,下面为具体测试步骤:
1、首先参考最初的Hello World实验新建一个工程,这里为了简便直接用vivado2018.3打开Hello World工程后选择File->Project->SaveAs...另存为“ethernet_test”工程。
2、在Flow Navigator 中,点击IP INTEGRATOR 下的Open Block Design,然后双击ZYNQ IP重新配置,在配置界面点击左侧的 MIO Configuration,在右侧的界面中展开“ I/OPeripherals”。然后勾选 ENET 0”和其下的MDIO,在“ IO”列选择 ENET 0的 IO为 MIO16…27 ,MDIO的 IO为 MIO52…53,并选择Bank1 I/O Voltage为 LVCOMS 1.8V。 另外设置 Speed列的速度为“ fast”,最后按OK, 如下图所示:
3、按Ctrl+S快捷键保存块图,然后在sources面板中,右键点击 Block Design设计文件 system.bd 然后依次执行Generate Output Products和Create HDL Wrapper。
4、选择 File -> Export ->Export hardware导出硬件,本实验没有用到PL故不需要勾选“ Include bitstream”。完成后再选择菜单 File->Launch SDK,启动SDK开发环境。 5、在SDK软件界面,选择File->New->ApplicationProject新建一个应用工程,工程名为“ethernet_test”,按如下图示选择后按下一步:
然后选择lwIP TCP Perf Server工程模板后点击 Finish按钮完成,如下图示:
6、把工程src文件夹中和本次测试用不到的文件删除,如下面图示划线的文件:
7、打开main.c文件,把下面代码删除:
第63~75行:
#if defined (__arm__) && !defined (ARMR5)
#if XPAR_GIGE_PCS_PMA_SGMII_CORE_PRESENT == 1 || \
XPAR_GIGE_PCS_PMA_1000BASEX_CORE_PRESENT == 1
int ProgramSi5324(void);
int ProgramSfpPhy(void);
#endif
#endif
#ifdef XPS_BOARD_ZCU102
#ifdef XPAR_XIICPS_0_DEVICE_ID
int IicPhyReset(void);
#endif
#endif
第129~142行:
#if defined (__arm__) && !defined (ARMR5)
#if XPAR_GIGE_PCS_PMA_SGMII_CORE_PRESENT == 1 || \
XPAR_GIGE_PCS_PMA_1000BASEX_CORE_PRESENT== 1
ProgramSi5324();
ProgramSfpPhy();
#endif
#endif
/* Define this boardspecific macro in order perform PHY reset
* on ZCU102
*/
#ifdef XPS_BOARD_ZCU102
IicPhyReset();
#endif
8、把板卡的网口用网线直接连到电脑上,电脑的IPV4网络属性需要指定为固定IP,如下:
IP地址: 192.168.1.99
子网掩码:255.255.255.0
默认网关:192.168.1.1 9、鼠标右键点击SDK软件的“ethernet_test_bsp”,在弹出的菜单中选择 Board Support Package Settings,在里面配置禁止DHCP功能,然后编译后下载软件到板卡,最后在PC端的CMD命令窗口运行iperf–c 192.168.1.10 –i 5 –t 300 –w 2M命令来启动iperf客户端进行网速测试,具体过程和测试结果如下视频所示:
实测结果千兆网卡速度为830~850Mbps是在正常范围内。 最后提下,测试过程中可能会出现打印完第一次结果后异常退出问题,有提示write failed: connection reset by peer,经调查可能与电脑的杀毒软件有关,关闭后就正常了。
|