【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.pswp.cn/news/716446.shtml
繁體地址,請注明出處:http://hk.pswp.cn/news/716446.shtml
英文地址,請注明出處:http://en.pswp.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")#額外需要…