ZYNQ7000器件的PS部分包含两个独立的吉比特以太网控制器(Gigabit Ethernet Controller)实现两个10/100/1000Mb/s的以大网MAC,如要实现以太网连接还需要外部再连接一个PHY芯片,MYD-C7Z010/20开发板是在核心板上板载有MICREL 公司(已经被Microchip Technology收购)生产的千兆网卡PHY芯片,型号为KSZ9031RN,,使用RGMII 接口和MAC通信,这样对于使用核心板来开发的用户就比较方便,底板设计时不用考虑过多的PHY电路,只需要连接TXRX数据线到RJ45接口上就可以了。下面就ZYNQ的以太网功能做些基本的功能和性能测试,包括无操作系统或实时系统(RTOS)环境和LINUX环境下两种情况的测试。
一、无操作系统或实时系统(RTOS)环境下以太网测试
在无操作系统或实时系统(RTOS)环境下要实现以太网连接,一般都是移植开源的轻量级TCP/IP网络协议栈LWIP,XilinxSDK 2018.3是直接支持LWIP 2.0.2版本。
1、首先我们按上一篇试用报告DDR3测试(https://mbb.eet-china.com/forum.php?mod=viewthread&tid=74374)的步骤新建Vavido工程, 工程命名为eth_test, 区别是在第12步IP配置步骤,我们需要使用Ethernet0外设,勾上该外设,并点击Enet0使用MIO16-27的引脚,这个是和核心板上ZYNQ和PHY的硬件连接关系对应,如下图示:米尔科技提供了一个IP配置脚本MYIR.tcl,在开发板配套光盘的MYD-C7Z01020_V08_20181220\05-Programmable_Source\7Z010目录下的tutorial.rar压缩包内(刚开始我没有找到,问了该公司技术支持人员刘恒刘工提供了MYIR.tcl文件后才找到该位置)。
2、生成Vavido工程后运行SDK软件,直接新建一个应用工程,选择lwIPEcho Server软件DEMO,如下图示:
按Finish完成,将在工程浏览区看到新生成的eth_test和eth_test_bsp工程。
3、工程的修改,打开工程浏览区eth_test –> src–> main.c文件,右键菜单选择显示行号,如下图示:然后在第29行 #include<stdio.h>
后面的空行插入下列代码:
#include <xil_io.h>
#include "sleep.h"
在第129行 unsigned char mac_ethernet_address[] =
{ 0x00, 0x0a, 0x35, 0x00, 0x01, 0x02 };
后面的空行插入下列代码:
Xil_Out32(0xE000A000 + 0x244,0x00080000);
Xil_Out32(0xE000A000 + 0x248,0x00080000);
Xil_Out32(0xE000A000 + 0xC,0xFFF70008);
sleep(1);
打开工程浏览区eth_test_bsp –> ps7_cortexa9_0 –> libsrc –> lwip202_v1_2 –> src –> contrib –>ports –> xilinx –> netif –> xemacpsif_physpeed.c 文件, 如下图示:在519行找到static u32_tget_Marvell_phy_speed(XEmacPs *xemacpsp, u32_t phy_addr)函数,把第592~603行替换为下面代码:
XEmacPs_PhyRead(xemacpsp, phy_addr, 0x1f,&status_speed);
if ( (status_speed & 0x0040) != 0)/*1000Mbps */
return 1000;
else if ( (status_speed & 0x0020) !=0)/* 100Mbps */
return 100;
else /*10Mbps */
return 10;
/*
XEmacPs_PhyRead(xemacpsp,phy_addr,IEEE_SPECIFIC_STATUS_REG,
&status_speed);
if (status_speed & 0x400) {
temp_speed = status_speed &IEEE_SPEED_MASK;
if (temp_speed == IEEE_SPEED_1000)
return 1000;
else if(temp_speed ==IEEE_SPEED_100)
return 100;
else
return 10;
} */
(注: 以上代码参考MYC_C7Z01020入门指导手册.pdf第57~58页)
最后按ctrl+s保存文件后工程自动进行编译。
4、在硬件上运行程序,首先连接到下载线、串口线、网线到开发板,然后上电,在 软件左侧工程浏览区下,点击选中eth_test工程, 然后右键选择 Run As > 1Launch on
Hardware (System Debugger) 就可以把工程生成 的 eth_test.elf 可执行文件将加载到 开发板上运行。在串口终端上可以看到lwIPEcho Server工程自动分配的IP 地址,如下图示:由于我们是把网线一头连开发板,另外一头直接连的电脑,需要在电脑的网卡属性指定IP为同一网段,否则电脑无法PING通开发板,如下图示:
我们可以在windows的命令窗口用ping 和telnet命令进行功能测试,所用命令如下图示:
输入telnet命令时有可能提示telnet不是内部或外部命令,这可能是telnet服务器或者客户端没有开启的原因,打开控制面板–>程序–> 程序和功能–> 打开或关闭Windows功能,找到Telnet 客户端–>点击勾选–>确定,如下图示:
连接上进入Telnet界面所有输入的字符都会回显出来,如果要退出Telnet界面,输入ctrl+] 然后在telnet 命令行输入quit 就可以退出回到命令行窗口。
5、性能测试,TCP/IP和UDP/IP的性能测量工具一般使用Iperf工具,它能够提供网络吞吐率信息,以及震动、丢包率、最大段和最大传输单元大小等统计信息;从而能够帮助我们测试网络性能,定位网络瓶颈。要用Iperf工具进行性能测试,需要在主机端和客户端分别运行Iperf。首先我们需要下载一个Windows版本的Iperf工具,我们使用的版本为iperf-2.0.9,为了方便我已上传见附件,根据所用PC是32位还是64位解压对应的压缩包,然后把文件夹下所有文件复制到%systemroot%目录,如WIN64位为C:\Windows目录。
再按上面第2步新建一个工程,在软件模板里选择LwIP TCP Perf Client或者LwIP UDP Perf Client, 这里是让板卡运行Iperf工具客户端, PC运行Iperf工具主机端。同样按第3步加上移植代码修改(main.c和xemacpsif_physpeed.c同样位置修改),然后保存后自动进行编译。在WINDOWS的命令窗口输入iperf –s –i 5 –w 2M,然后在SDK左侧工程区点击perf工程,再右键选择Run As -> 1 Launch on Hardware (System Debugger)下载程序到开发板上运行,然后可以看到测试结果如下图示:这里注意下Perf Client应用工程连接的主机IP要在工程目录src—tcp_perf_client.h文件的102行:#define TCP_SERVER_IP_ADDRESS "192.168.0.100" 根据实际主机IP来修改,并且一定要先在WINDOWS的命令窗口输入命令运行iperf服务器后在下载程序到开发板上,顺序反了iperf服务器连接不上看不到测试结果。
上图是LwIP TCP Perf Client应用工程的测试TCP速度的结果,可以用LwIP UDP Perf Client工程来测试UDP速度,方法类似,这里不再赘述。
二、Linux环境下以太网测试
MYD-C7Z010/20开发板出厂时已经烧录有LINUX系统,接上串口上电可以看到系统启动时打印信息,然后我们可以在串口终端输入账号root, 不用密码就可以登录系统。
在WINDOWS的命令窗口输入iperf -s -i 5 -w 2M 先启动iperf服务器。
然后在串口终端顺序输入下列命令:
ifconfigeth0 up
ifconfigeth0 192.168.0.102 netmask 255.255.255.0
iperf –c 192.168.0.100
这时可以看到测试结果如下图示:如果是测试UDP速度, 在WINDOWS的命令窗口输入iperf -s -u -w 2M 先启动iperf服务器。开发板用iperf –c 192.168.0.100 –u 启动iperf客户端,具体iperf命令参数大家可通过iperf --help得到,并且可以通过设置不同参数看到对速度的影响关系。
最后有个问题是千兆网的PHY芯片我这认别到的都是100M, 按理说现在不任是电脑还是路由器基本都是千兆的网口了,具体原因还需进一步调查研究。
三、主要参考资料
1、赛灵思:xapp1026 LightWeightIP Application Examples
2、米尔科技: MYC_C7Z01020入门指导手册.pdf热门活动
全部回复 2
举报
内容系网友发布,其中涉及到安全隐患的内容系网友个人行为,不代表面包板社区观点
关闭
站长推荐 /3
- 返回顶部