【RT-Thread应用笔记】RA8D1-VisionBoard上的RW007实践——WiFi延迟和带宽测试
- 一、准备环境
- 1.1 安装RT-Thread Studio
- 1.2 安装开发板支持包
- 1.3 安装调试器支持包
- 1.4 安装工具链支持包
- 二、创建项目
- 2.1 创建RT-Thread项目
- 三、编译下载
- 3.1 编译代码
- 3.2 下载程序
- 四、WiFi测试
- 4.1 扫描测试
- 4.2 连接测试
- 五、延迟测试
- 5.1 ping百度
- 5.2 ping路由器
- 六、带宽测试
- 6.1 netutils软件包
- 6.2 iperf命令参数
- 6.3 PC端的iperf
- 6.4 iperf带宽测试
- 6.5 iperf测试小结
本文主要介绍如何使用RT-Thread Studio创建在VisionBoard开发板上运行的RT-Thread项目,以及如何配置RW007模组实现WiFi联网,以及如何进行WiFi延迟和带宽测试。本文主要在RT-Thread Studio环境下进行,只需要进行一些配置即可完成全部操作,整个操作过程不需要写代码,非常简单。
一、准备环境
1.1 安装RT-Thread Studio
RT-Thread Studio可以在RT-Thread官网下载,安装没啥难度,这里不再介绍了。
1.2 安装开发板支持包
打开RT-Thread Studio后,找到SDK Manager(SDK管理器)图标,并单击:
在弹出的RT-Thread SDK管理器界面中,找到Vision-Board支持包,选中并安装:
1.3 安装调试器支持包
继续在SDK管理器界面中,下拉到PyOCD下方,安装最新板的调试器支持包:
可以看到,最新一条更新记录里面写了支持RA8系列。
1.4 安装工具链支持包
工具链,建议下载最新的:
二、创建项目
2.1 创建RT-Thread项目
接着,通过RT-Thread Studio菜单栏,”文件”→“新建” → “RT-Thread项目”打开新建项目界面。
新建项目界面,按照如下步骤操作:
- 选中“基于开发板”;
- 开发板下拉菜单选择“VISION-BOARD”;
- 类型选择“示例工程”;
- 示例选择“vision_board_wifi”;
- 如果一开始没有填写project name,第4步选择后,project name将会变成vision_board_wifi;
如下图所示:
此时,点“完成”,就会创建项目文件了:
三、编译下载
3.1 编译代码
点击工具栏的锤子图标,或者使用快捷键Ctrl+B,编译项目:
编译完成后,可以看到控制台输出了RAM和Flash占用:
3.2 下载程序
下载固件之前,首先安装好VISION-BOARD的WiFi天线,如下图所示:
然后,使用USB Type-C线将PC和开发板连接起来,注意连接到板子的USB-DBG口,如下图所示:
连接好USB线之后,回到RT-Thread Studio中,使用“下载”按钮(或者Ctrl+Alt+D快捷键),开始下载程序:
或Ctrl+Alt+D即可进行烧录。
下载完成后,控制台窗口可以看到:
四、WiFi测试
接下来连接串口终端,我用的是MobaXterm,参数配置如下:
连接串口后,按下板子上的复位键,可以看到:
有RT-Thread系统启动日志,以及RW007模组的固件信息。
接下来,我们进行一些简单的WiFi测试。
首先,输入wifi命令,可以查看wifi命令的使用方式:
4.1 扫描测试
使用wifi scan命令,尝试扫描周围的WiFi热点:
可以看到,成功扫描到了周围的WiFi热点。
4.2 连接测试
执行wifi join命令,尝试连接其中的一个热点(这里连接的是无线路由器):
其中,马赛克的部分是WiFi密码。
可以看到,成功连接上了WiFi热点,并且获取到了IP地址。
五、延迟测试
ping命令可以输出玩咯延迟信息,可以作为网络延迟的简单测试工具。
5.1 ping百度
接下来,用 ping 命令测试一下,板子能不能ping通baidu.com:
可以ping通baidu.com,说明TCP/IP协议基本没有太大问题(域名解析OK,而且可以发送数据到公网主机)。
5.2 ping路由器
接下来,ping一下局域网的无线路由器:
作为对比,可以看一下笔记本ping路由器的延迟:
我的笔记本电脑连接的也连接在同一个无线路由器上。
模组比笔记本的WiFi延迟高一点点,正题相差不大。
六、带宽测试
6.1 netutils软件包
RT-Thread的netutils组件中提供了iperf命令,可以用于测试网络带宽。
RT-Thread Studio中,双击“RT-Thread Settings”,如下图所示:
可以看到,已经有netutils软件包了,不需要手动添加了。
鼠标放到netutils组件上,点击悬浮菜单的“配置项”,如下图所示:
此时RT-Thread Settings窗口将会跳转到netutils软件包配置页面,如下图:
可以看到iperf选项已经打开了。
也就是说,默认的vision_board_wifi示例已经有netutils软件包,并且打开了iperf配置项了。
如果没有意外,刚刚编译的程序中已经有 iperf命令,不需要重新编译了。
串口终端中,输入help,可以看到:
6.2 iperf命令参数
在RT-Thread的msh中运行iperf,默认输出帮助信息:
可以看到iperf的命令参数使用方法。
注意:
- RT-Thread的iperf命令实现中,对参数的顺序由要求,如果使用过程中发现参数报错,需要查看源码定位原因;
- RT-Thread的iperf不支持持续时间选项,一般是先启动,后通过stop选项停止的方式控制测试时长;
6.3 PC端的iperf
PC端的iperf可以到iperf项目官网下载:https://iperf.fr/iperf-download.php
我使用的mobaxterm,里面自带了iperf命令,所以就不单独下载了:
6.4 iperf带宽测试
下面进行测试,测试步骤如下:
- 在PC上,启动iperf服务端:iperf -s -p 5678
- 在开发板上,通过ping命令测试开发板和PC直接IP是否可达
- 在开发板上,启动iperf客户端:iperf -c 192.168.3.6 -p 5678 (其中192.168.3.6是PC的IP地址)
- 启动后,可以通过ps命令查看正在运行的线程
- 一段时间后,在开发板上,停止iperf客户端:iperf --stop
- 开发板上iperf停止后,PC端应该可以看到iperf的输出;
开发板上整个过程的输出如下:
PC端输出:
可以看到带宽是0.06Mbps(上一次测出来的是6.07)。
6.5 iperf测试小结
实际上,影响WiFi带宽测试结果数据的因素很多。我们这里,其中,起决定性的的主要由以下几个方面:
- 模组本身支持的最高WiFi传输速率;
- 模组接口支持的最高工作频率;
- 主控芯片接口最高支持的工作频率;
- 热点的WiFi最高传输速率;
- 各种环境因素,例如开发板和PC直接的距离、环境是否有其他热点干扰等等;
为了测出比较高的数据,我把开发板直接放到路由器天线边上,以上的结果: