【RT-Thread应用笔记】英飞凌PSoC 62 + CYW43012 WiFi延迟和带宽测试

文章目录

    • 一、安装SDK
    • 二、创建项目
    • 三、编译下载
      • 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带宽测试
      • 6.6 iperf测试小结

本文主要介绍如何在PSoC62 Evaluation kit开发板上运行RT-Thread,如何连接CYW43012 WiFi蓝牙模组,以及如何进行WiFi联网、网络延迟、网络带宽测试。本文主要在RT-Thread Studio环境下进行,只需要进行一些配置即可完成全部操作,整个操作过程不需要写代码,非常简单。

一、安装SDK

RT-Thread Studio可以在RT-Thread官网下载,安装没啥难度,这里不再介绍了。

打开RT-Thread Studio后,首先打开SDK Manager,

Untitled

在RT-Thread SDK管理器界面,找到PSOC62-IFX-EVAL-KIT支持包,选中并安装:

Untitled

以及调试器支持包:

Untitled

二、创建项目

接着,通过RT-Thread Studio菜单栏,”文件”→“新建” → “RT-Thread项目”打开新建项目界面。

新建项目界面,按照如下步骤操作:

  1. 选中“基于开发板”;
  2. 开发板下拉菜单选择“PSOC62-IFX-EVAL-KIT”;
  3. 类型选择“示例工程”;
  4. 示例选择“cyw43012_wifi_demo”;
  5. 按照前面几步后,Project name已经自动填充了,可以修改,也可以不改;

如下图所示:

Untitled

此时,点“完成”,就会创建项目目录了:

Untitled

三、编译下载

3.1 编译代码

点击工具栏的锤子图标,编译项目:

Untitled

或者使用快捷键Ctrl+B也可以。

3.2 下载程序

编译完成后,可以看到控制台输出了RAM和Flash占用:

Untitled

接下来将CYW43012模组插到板子上:

psoc6_board_module.jpg

psoc6_board_connected.jpg

然后,再通过USB线,将开发板连接到PC,注意连接到板子的DAP口。

再到RT-Thread Studio中,使用“下载”按钮,开始烧录:

Untitled

或Ctrl+Alt+D即可进行烧录。

下载过程中,控制台窗口可以看到进度:

Untitled

下载完成:

Untitled

四、WiFi测试

接下来连接串口终端,我用的是MobaXterm,参数配置如下:

Untitled

连接串口后,按下板子上的复位键,可以看到:

Untitled

有RT-Thread系统启动日志,以及模组的固件信息。

接下来,我们进行一些简单的WiFi测试。

在RT-Thread的msh交互环境中,使用help查看当前已有哪些命令:

Untitled

可以看到有一个wifi命令。

接下来我们查看wifi命令的使用方式:

Untitled

4.1 扫描测试

尝试扫描周围的WiFi热点:

Untitled

可以看到,成功扫描到了周围的WiFi热点。

4.2 连接测试

尝试连接其中的一个热点(这里连接的是无线路由器):

Untitled

可以看到,成功连接上了WiFi热点。

五、延迟测试

ping命令可以输出玩咯延迟信息,可以作为网络延迟的简单测试工具。

5.1 ping百度

接下来,用 ping 命令测试一下,板子能不能ping通baidu.com:

Untitled

可以ping通baidu.com,说明TCP/IP协议基本没有太大问题(域名解析OK,而且可以发送数据到公网主机)。

5.2 ping路由器

接下来,ping一下局域网的无线路由器:

Untitled

作为对比,可以看一下笔记本ping路由器的延迟:

Untitled

我的笔记本电脑连接的也是同一个无线路由器。

模组比笔记本的WiFi延迟高一些,不过还好,还算可以接受。

六、带宽测试

6.1 添加netutils软件包

RT-Thread的netutils组件中提供了iperf命令,可以用于测试网络带宽。

RT-Thread Studio中,双击“RT-Thread Settings”:

Untitled

点击“添加软件包”,在弹出的搜索框中输入netutils,回车搜索:

Untitled

点击“添加”,关闭搜索界面,回到RT-Thread Settings界面:

Untitled

鼠标放到netutils组件上,点击悬浮菜单的“配置项”,netutils配置项下方的Version下拉菜单选择v1.3.3,打开“使能类似iperf的网络性能工具”,如下图:

Untitled

此时,Ctrl+S保存配置,此时将会下载netutils软件包源码到本地,控制台可以看到下载进度:

Untitled

重新,编译、烧录、运行,msh中就有iperf命令了:

Untitled

6.2 iperf命令参数

在RT-Thread的msh中运行iperf,默认输出帮助信息:

Untitled

可以看到iperf的命令参数使用方法。

注意:

  1. RT-Thread的iperf命令实现中,对参数的顺序由要求,如果使用过程中发现参数报错,需要查看源码定位原因;
  2. RT-Thread的iperf不支持持续时间选项,一般是先启动,后通过stop选项停止的方式控制测试时长;

6.3 PC端的iperf

PC端的iperf可以到iperf项目官网下载:https://iperf.fr/iperf-download.php

我使用的mobaxterm,里面自带了iperf命令,所以就不单独下载了:

moba_iperf_help.png

6.4 iperf测试准备工作

进行iperf测试之前,需要准备:

  1. 最好用PC创建热点,用无线路由器也行,但是需要确保信号强度足够;
  2. 确保开发板和PC直接的距离不要太远,否则WiFi信号较弱,测试的结果可能会偏小;
  3. 最好在WiFi热点较少的环境下进行测试,否则测出的结果数据也会偏小;

6.5 进行iperf带宽测试

下面进行测试,测试步骤如下:

  1. 在PC上,启动iperf服务端:iperf -s -p
  2. 在开发板上,通过ping命令测试开发板和PC直接IP是否可达
  3. 在开发板上,启动iperf客户端:iperf -c 192.168.3.6 -p 5678 (其中192.168.3.6是PC的IP地址)
    • 启动后,可以通过ps命令查看正在运行的线程
  4. 一段时间后,在开发板上,停止iperf客户端:iperf --stop
  5. 开发板上iperf停止后,PC端应该可以看到iperf的输出;

开发板上整个过程的输出如下:

Untitled

PC端输出:

Untitled

可以看到带宽为8.61Mbps(8.47是上一次测出来的值)。

6.6 iperf测试小结

实际上,影响WiFi带宽测试结果数据的因素很多。我们这里,其中,起决定性的的主要由以下几个方面:

  1. 模组本身支持的最高WiFi传输速率;
  2. 模组接口支持的最高工作频率;
  3. 主控芯片接口最高支持的工作频率;
  4. 热点的WiFi最高传输速率;
  5. 各种环境因素,例如开发板和PC直接的距离、环境是否有其他热点干扰等等;

为了测出比较高的数据,我把开发板直接放到路由器天线边上,才测到8Mbps以上的结果:

psoc62_and_ap.jpg

好了,本篇内容就到这里,感谢阅读。

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/news/716446.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

未来三年AI的深度发展:AIGC、视频AI与虚拟世界构建

人工智能(AI)正站在科技演进的前沿,未来三年将见证其在多领域实现更深层次的突破。以下是对AI发展方向的深度探讨以及其对各行业的深远影响: 1. AIGC的演进与全面提升: AIGC,即AI通用性能力,将…

AI前沿-YOLOV9算法

AI前沿-YOLOV9算法 关注B站查看更多手把手教学: 肆十二-的个人空间-肆十二-个人主页-哔哩哔哩视频 (bilibili.com) 今天我们来一起说下最近刚出的YOLOV9算法 论文和源码 该算法的原始论文地址为:https://arxiv.org/abs/2402.13616 该算法的原始代码地…

Muduo库编译学习(1)

1.muduo库简介 muduo是由Google大佬陈硕开发,是一个基于非阻塞IO和事件驱动的现代C网络库,原生支持one loop per thread这种IO模型,该库只支持Linux系统,网上大佬对其褒贬不一,作为小白用来学习就无可厚非了。 git仓库…

b站小土堆pytorch学习记录——P14 torchvision中的数据集使用

文章目录 一、前置知识如何查看torchvision的数据集 二、代码(附注释)及运行结果 一、前置知识 如何查看torchvision的数据集 (1)打开官网 https://pytorch.org/ pytorch官网 (2)打开torchvision 在Do…

Linux:top显示信息

简介 top命令是Linux系统中常用的性能监控工具,它可以实时显示系统中各个进程的CPU使用情况以及其他系统资源的使用情况。当您在终端中运行top命令时,它会显示一个实时更新的列表。 CPU相关的信息 CPU状态: us(user&#xff09…

梯度和梯度损失

梯度主要用于计算图像融合过程中的梯度损失,对应的损失函数是梯度损失(loss_grad)。 梯度的作用: 图像的梯度是指图像中每个像素的灰度变化率,通常用于表示图像的边缘和纹理信息。在图像融合任务中,通过计算…

Unity游戏输入系统(新版+旧版)

使用新版还是旧版 旧版 using System.Collections; using System.Collections.Generic; using UnityEngine;public class c5 : MonoBehaviour {void Start(){}void Update(){// 注意要在游戏中 点鼠标键盘进行测试// 鼠标// 0左键 1右键 2滚轮if (Input.GetMouseButtonDown(0)…

【javaSE-语法】lambda表达式

【javaSE-语法】lambda表达式 1. 先回忆一下:1.1 接口不能直接通过关键字new进行实例化1.2 函数式接口1.3 匿名内部类1.31 匿名内部类在代码中长啥样?1.32 构造一个新的对象与构造一个扩展了某类的匿名内部类的对象,两者有什么区别&#xff1…

maven--->maven中的<properties>属性有什么作用?

🙌🙌🙌🙌🙌🙌 在Maven中,元素用于定义项目中可重用的属性值。这些属性值可以在项目的POM文件中被引用,以便在整个项目中统一管理和使用。通过使用元素,可以避免在POM文件…

SpringBean生命周期之InitializingBean,初始化bean

1 yml文件 weixin:appid: aaaaaapartner: 12313214partnerkey: ccccccert: C:\\Users\\lenovo\\Desktop 2 Bean初使化 import org.springframework.beans.factory.InitializingBean; import org.springframework.beans.factory.annotation.Value; import org.springframewor…

midjourney提示词语法

更高级的提示可以包括一个或多个图像URL、多个文本短语和一个或更多个参数 Image Prompts 可以将图像URL添加到提示中,以影响最终结果的样式和内容。图像URL总是位于提示的前面。 https://docs.midjourney.com/image-prompts Text Prompt 要生成的图像的文本描述。…

YOLOv6、YOLOv7、YOLOv8网络结构图(清晰版)

承接上一篇博客:YOLOv3、YOLOv4、YOLOv5、YOLOx的网络结构图(清晰版)_yolox网络结构图-CSDN博客 1. YOLOv6网络结构图 2. YOLOv7网络结构图 3. YOLOv8网络结构图

搭建 LNMP 架构

一 理论知识 (一)架构图 (二)CGI 由来 最早的Web服务器只能简单她响应浏览器发来的HTTP请求,并将存储在服务器上的HTML文件返回给浏览器,也就是静态html文件,但是后期随着网站功能增多网站开…

c++阶梯之模板初阶

1. 泛型编程 void Swap(int& x, int& y) {int tmp x;x y;y tmp; }void Swap(double& x, double& y) {double tmp x;x y;y tmp; }void Swap(char& x, char& y) {char tmp x;x y;y tmp; } int main() {int a 10, b 20;double c 1.1, d 2.2…

《Spring Security 简易速速上手小册》第7章 REST API 与微服务安全(2024 最新版)

文章目录 7.1 保护 REST API7.1.1 基础知识详解7.1.2 重点案例:使用 JWT 进行身份验证和授权案例 Demo 7.1.3 拓展案例 1:API 密钥认证案例 Demo测试API密钥认证 7.1.4 拓展案例 2:使用 OAuth2 保护 API案例 Demo测试 OAuth2 保护的 API 7.2 …

读书笔记-三国演义-夏侯惇

夏侯惇(公元夏侯惇(公元190年-公元220年),字元让,沛国谯县(今安徽亳州市)人,是中国东汉末年至三国时期魏国重要将领之一。他是曹操麾下的得力将领,以勇猛忠诚而闻名于世。…

linux安装matlab获取许可证

1.点击许可证 2. 3. 4. 4.主机ID 打开linux输入 /sbin/ifconfigether后边的就是 6.计算机登录名 打开linux输入 whoami7. 8. 9.

局域网https自签名教程

们的客户是在内网环境里面,所以就只能用自签名证书来搞,我一想这还不容易,就迅速的百度了一下随便找了个文章开始照猫画虎,很快就弄完了,但是弄完后发现还是有问题,而且https 还是报不安全, 1、…

(规划)24届春招和25届暑假实习路线准备规划

春招&&暑假实习: 1.八股: 可以去一些八股网站上面进行阅读。 2.项目:至少准备1-2个项目,可以条理清晰的进行项目介绍和难点剖析。 3.算法: hot100 ,剑指offer 能刷的很熟,算法关就差…

【R包报错】使用sceasy包转换rds文件与h5ad文件报错PyType_GetFlags

想要将scanpy的h5ad文件转为rds文件,有一个很方便的包sceasy可以使用,安装简单,代码简易。 安装方式 # bioconda package:conda install -c bioconda r-sceasy# R package:devtools::install_github("cellgeni/sceasy")#额外需要…