"); //-->
iperf作为经典的网络性能测试工具,被广泛用于测量TCP和UDP带宽性能,可在客户端与服务器之间进行数据传输测试。
现在,通过LuatOS的集成支持,开发者可以直接在诸如Air780EPM等低功耗模组上运行iperf功能,轻松对设备的网络性能进行评估与验证。
LuatOS提供的iperf核心库:
支持server模式和client模式;
支持LuatOS开发的所有产品都支持iperf核心库;
需要注意的是,当前版本仅支持iperf2协议。
本文将以Air780EPM系列核心板/开发板为例,分享如何在LuatOS环境中利用iperf库进行网络测试。
一、iperf库相关API简介
LuatOS已将iperf功能封装为简洁的API,在嵌入式设备上使用极为简单。
本文示例所使用的API如下:
iperf.server(netType)
启动iperf服务器模式
iperf.client(netType, serverIp, serverPort)
启动iperf客户端模式并连接到指定服务器
iperf.abort()
中止正在进行的iperf测试
netdrv.setup(type, drv, param)
设置网络驱动参数
netdrv.dhcp(type, enable)
配置DHCP客户端
netdrv.ipv4(type, ip, mask, gw)
获取或设置IPv4地址信息
netdrv.link(type)
获取网络连接状态
二、iperf功能示例demo
本示例使用Air780EPM系列核心板/开发板进行网络性能测试,通过服务器模式和客户端模式的配合使用,可以有效地测量网络的实际带宽和稳定性,为评估设备的网络通信能力提供重要参考。
功能特性:
支持DHCP客户端模式,自动从路由器获取IP地址;
服务器模式和客户端模式分离,可在不同设备上运行;
增强的错误处理和超时机制;
清晰的日志输出,便于调试和监控;
带宽自动计算并以Mbps显示。
注意事项:
本示例可准备两套Air780EPM 开发板;如使用核心板,需搭配AirETH_1000配件板(搭载CH390H芯片的以太网小板,支持标准RJ45网口接入路由器)使用,详见中心实操教程软硬件环境说明。

以下是iperf网络性能测试各种功能的实现方法和核心代码逻辑,完整demo详见源码仓库最新文件。
2.1 iperf服务器模式iperf服务器模式允许设备作为服务器等待客户端连接,用于测量网络下行方向的带宽性能。
1)功能定义:iperf_server.lua:iperf服务器模块,用于初始化以太网接口,配置网络参数,启动iperf服务器,并处理客户端连接和测试报告。
2)代码示例:



3)烧录运行:
使用Luatools将服务器模式代码烧录到核心板/开发板中:

烧录完毕后,将核心板外挂AirETH_1000配件板连接到路由器的LAN口。设备启动后会初始化网络并启动iperf服务器,等待客户端连接。
日志中会显示服务器IP地址和启动状态:

当有客户端连接后会自动开始iperf测试,测试完毕后会在测试报告中打印数据量、持续时间和带宽等参数:

2.2 iperf客户端模式
iperf客户端模式允许设备作为客户端主动连接到服务器,用于测量网络上行方向的带宽性能。
1)功能定义:iperf_client.lua:iperf客户端模块,用于初始化以太网接口,配置网络参数,连接到指定的iperf服务器,进行带宽测试,并处理测试报告。
2)代码示例:



3)烧录运行:
在烧录前,需要修改iperf_client.lua文件中的服务器IP地址为服务器核心板的实际IP地址:

使用Luatools将客户端模式代码烧录到另一块核心板/开发板中:

烧录完成后,将客户端核心板外挂AirETH_1000配件板也连接到路由器的LAN口。设备启动后会初始化网络并尝试连接到服务器:

连接成功后,客户端会开始进行带宽测试,测试完毕后会在测试报告中打印数据量、持续时间和带宽等参数:

完整的测试场景需要将两块Air780EPM开发板,或核心板外挂AirETH_1000配件板,通过路由器连接。
测试步骤:
将服务器核心板烧录服务器模式代码,并连接到路由器;
记录服务器核心板的IP地址;
修改客户端代码中的服务器IP地址;
将客户端核心板烧录客户端模式代码,并连接到路由器;
同时观察两台设备的日志输出。
测试完成后,可以在日志中看到最终的带宽测试结果:


今天的内容就分享到这里了~
专栏文章内容及配图由作者撰写发布,仅供工程师学习之用,如有侵权或者其他违规问题,请联系本站处理。 联系我们
相关推荐
语音合成芯片T6668和单片机8031的接口电路图
GD32E230F6V6实用指南:为下一个项目选择合适单片机
AVR 单片机专栏,资料下载!
嵌入式系统与物联网
《ATmega8原理及应用手册》
纳米电力将nPZero集成电路推向超低功耗物联网的量产
单片机语言C51应用实战集锦
物联网与RFID芯片
被收购后的芯科实验室:物联网与人工智能的未来走向
MSP430 电表解决方案
用AT89C2051单片机实验合弦乐
芯科科技驱动和重塑智能门锁行业格局
利用PIC12C508单片机来实现加密狗技术[转帖]
[转帖]从Cygnal C8051F看8位单片机发展之路
超低功率高性能新一代产品MSP430F5xx
边缘计算与人工智能(Edge AI)如何引领新一轮技术革命
5V 单片机与5V 耐压单片机有何区别,为什么至关重要
倾情奉献:MSP430汇编指令集(中文),详解带实例!
长虹R2118A型彩电开关电源(LA单片机)电路
创维数码5000系列彩电开关电源(AN单片机)电路
MSP430单片机TIMER_A在产品设计中的应用
《AVR单片机C语言库》
Kwikset:超低功耗Wi-Fi解锁无缝体验
MSP430x2xx4xx系列
SmartDV展示完整的边缘与连接IP解决方案,以高速和低功耗特性赋能移动、物联网和媒体处理设备创新
AVR 单片机专栏,资料下载!之二
基于物联网的电池组均衡充电与监控系统
用单片机制作的纯正弦波逆变电源电路
16位语言函数工具库
TDK 发布 SensorStage 传感器评估平台,大幅加速 IMU 开发进程