AN0054 应用笔记 |
AT32 EMAC iperf |
前言
随着物联网的发展,各式各样的装置都必须具备连网的能力,单芯片也不例外,为此我们以雅特力的AT32F407系列,演示了一系列的范例,以其用户能基于这些范例,使用雅特力的开发板发展出自己所需要的功能。
支持型号列表:
支持型号 | 具备EMAC的型号 |
目录
2.3 iperf server project设置... 6
表目录
图目录
iperf是用于网络性能测量和调整的广泛使用的工具。作为可以为任何网络生成标准化性能测量结果的跨平台工具,它意义重大。iperf具有客户端和服务器功能,并且可以创建数据流以测量一个或两个方向两端之间的吞吐量。典型的iperf输出包含带有时间戳的报告,其中包含已传输的数据量和测量的吞吐量。
本使用指南将以芯片端作为iperf server,PC端作为iperf client进行展示。
- iperf, iperf server源程序,运行iperf服务端程序
表1. 管脚配置
EMAC信号 | 管脚 |
EMAC_MDC | PC1 |
EMAC_MDIO | PA2 |
EMAC_RMII_REF_CLK | PA1 |
EMAC_RMII_CRS_DV | PD8 |
EMAC_RMII_RXD0 | PD9 |
EMAC_RMII_RXD1 | PD10 |
EMAC_RMII_TX_EN | PB11 |
EMAC_RMII_TXD0 | PB12 |
EMAC_RMII_TXD1 | PB13 |
-
- LwIP设置
硬件资源只提供从PHY到MAC的信号处理,若要进行开发,则需要实作TCP/IP协议栈,在本应用中使用LwIP协议栈,该协议栈主要关注的是怎样减少减少内存的使用和程序代码的大小,这样就可以让LwIP适用于资源有限的小型平台例如嵌入式系统,更详细的内容可以访问官方网站。
由于整个协议栈已经整合到代码中,大部分的内容都无须修改,使用者只要根据自己的网段去设定IP地址及闸口地址即可,这两个全局变量宣告在netconf.c的上头。
图1. 配置芯片的IP地址
与HTTP server相同,在始能了LwIP的TCP/IP协议栈之后,就可以配置iperf server的应用,由于是作为接受请求的一方,所以要开启一个端口等待请求进入,这边要特别注意到的一点是,iperf server的端口恒为5001, 在没有能力修改客户端程序的状况下,请勿修改服务端的端口。本例程中用户只要呼叫iperf_init()就可以始能iperf server。
图2. iperf初始化
- 设定上位机的IP地址、网路屏蔽及闸口,IP地址与闸口需要跟芯片设置在同一个网段下。
- 打开PC端的终端机,进入放置iperf主程序的文件夹,根据iperf指令的格式启动客户端,指令格式为:iperf –c [server IP] –t [test time] –I [display interval]。
- 测试结束后,会统计全部传输数据以及平均throughput, 可以透过iperf工具检测目前网络的通讯是否正常。
图3. 设置PC端的IP、网路屏蔽及闸道器
图4. 启动客户端
图5. 传输数据统计
表2. 文档版本历史
日期 | 版本 | 变更 |
2021.09.06 | 2.0.0 | 最初版本 |