RM新时代网站-首页

0
  • 聊天消息
  • 系統(tǒng)消息
  • 評論與回復
登錄后你可以
  • 下載海量資料
  • 學習在線課程
  • 觀看技術(shù)視頻
  • 寫文章/發(fā)帖/加入社區(qū)
會員中心
創(chuàng)作中心

完善資料讓更多小伙伴認識你,還能領(lǐng)取20積分哦,立即完善>

3天內(nèi)不再提示

RW007 Wi-Fi 實戰(zhàn)分享

RT-Thread官方賬號 ? 2024-08-10 08:35 ? 次閱讀

1.開發(fā)環(huán)境

本文將會介紹如何使用RT-Thread env 工具創(chuàng)建一個基于RT-Thread RTOS的軟件項目;如何使用RT-Thread env 工具對項目進行配置,實現(xiàn)FRDM-MCXN947開發(fā)板通過RW007模組進行WiFi聯(lián)網(wǎng);以及如何使用RT-Thread env 工具對項目進行配置,實現(xiàn)WiFi網(wǎng)絡(luò)延遲和帶寬測試。

ENV環(huán)境

2.步驟說明

2.1 RW007模組介紹

RW007模組是由上海睿賽德電子科技有限公司開發(fā)的一款支持WiFi和藍牙功能的無線通信模塊,它提供了基于SPI和UART 兩種接口通信方式。

SPI接口相對于UART接口,具有更高的通信速率,因此本文采用SPI接口進行實驗。

RW007模組工作在SPI模式下時,主控芯片為模組需要提供1組SPI信號,一個中斷輸入,一個IO輸出,包含電源和地總,一共8個引腳。

RT-Thread官方也提供了RW007模組的Arduino評估板(以下簡稱RW007評估板),如下圖所示:

7cfa1b0c-56b0-11ef-817b-92fbcf53809c.jpg

圖片中間部分為RW007模組。

查閱RW007評估版原理圖,可以看到SPI和UART接口部分,如下圖所示:

7cfe503c-56b0-11ef-817b-92fbcf53809c.png

可以看到,Arduino接口與RW007模組引腳的連接關(guān)系,如下表所示:

7d0241e2-56b0-11ef-817b-92fbcf53809c.png

2.2 Arduino接口簡介

本文使用的硬件平臺是恩智浦 NXP FRDM-MCXN947, 開發(fā)板提供了Arduino接口,如下圖藍色部分:

7d0cf3b2-56b0-11ef-817b-92fbcf53809c.jpg

FRDM-MXCN947開發(fā)板 Arduino接口,和RW007評估版通信的引腳如下:

7d114a3e-56b0-11ef-817b-92fbcf53809c.jpg

其中,D10~D13為SPI信號,D9為中斷信號(INT),D8為復位控制(RST);

FRDM-MCXN947開發(fā)板和RW007評估板連接如下圖:

7d1c9d76-56b0-11ef-817b-92fbcf53809c.jpg

2.3 RW007軟件包簡介

RT-Thread RW007軟件包實現(xiàn)了MCU主控端與RW007模組的SPI/UART接口的底層通訊,同時實現(xiàn)了與RT-Thread的WiFi框架、網(wǎng)絡(luò)協(xié)議棧對接。借助此軟件包,開發(fā)者可以在RT-Thread系統(tǒng)上輕松實現(xiàn)WiFi聯(lián)網(wǎng)或BLE功能。

軟件包源碼倉庫鏈接:https://github.com/RT-Thread-packages/rw007

軟件包源碼倉庫鏈接(國內(nèi)鏡像):https://gitee.com/RT-Thread-Mirror/rw007

2.4 RT-Thread env工具簡介

RT-Thread Env 工具 包括配置器和包管理器,用來對內(nèi)核和組件的功能進行配置,對組件進行自由裁剪,對線上軟件包進行管理,使得系統(tǒng)以搭積木的方式進行構(gòu)建,簡單方便。

2.5 新建工程

首先,克隆RT-Thread主線源碼到本地(Windows系統(tǒng)使用git-bash):

7d218b56-56b0-11ef-817b-92fbcf53809c.png

接著,跳轉(zhuǎn)到 FRDM-MXCN947 板級支持包(BSP)目錄:

7d2a3dc8-56b0-11ef-817b-92fbcf53809c.png

$ cd bsp/nxp/mcx/mcxn/frdm-mcxn947/

最后,使用 scons 命令創(chuàng)建獨立的項目目錄(可以在env命令行,或者gitb-bash中執(zhí)行):

7d4e1f22-56b0-11ef-817b-92fbcf53809c.png

其中,target參數(shù)用于指定項目模板(可以使用mdk、iar等),project-name參數(shù)和project-path參數(shù)分別表示項目名稱和項目目錄,可以根據(jù)實際需要修改修改。

注意:git-bash執(zhí)行scons之前,需要保證已經(jīng)安裝了Python,并且已使用pip install scons安裝scons軟件包。否則會報 scons 命令找不到。

scons命令執(zhí)行成功,命令輸出,如下圖所示:

7d57f236-56b0-11ef-817b-92fbcf53809c.png

scons命令創(chuàng)建的目錄,內(nèi)容如下圖所示:

7d6337cc-56b0-11ef-817b-92fbcf53809c.jpg

其中,rtt_n947開頭的兩個文件,就是scons生成的項目文件。如果不加—project-name參數(shù),則是project開頭的兩個文件。

2.5.1 添加RW007軟件包

在env命令行環(huán)境中,跳轉(zhuǎn)到上一小節(jié)創(chuàng)建的項目目錄 E:\DIY\FRDM-MCXN947\rtt_n947目錄,

然后,使用 menuconfig 命令:

7d6dfa18-56b0-11ef-817b-92fbcf53809c.png

2.5.2 打開RW007配置項

類似的,依次選擇:

│ -> Hardware Drivers Config

│ -> Board extended module Drivers

如下圖所示:

7d758ad0-56b0-11ef-817b-92fbcf53809c.png

空格選中Enable RW007選項。

選中該選項后,將會自動選中RW007軟件包,以及片上SPI1配置。

左右移動光標到Save上,回車保存配置。

保存配置之后,.config和rtconfig.h文件將會更新。

保存配置后,就可以退出配置界面了。

2.5.3 啟用pin驅(qū)動

類似的,依次進入菜單:

→ Hardware Drivers Config → On-chip Peripheral Drivers

如下圖所示:

7d79e27e-56b0-11ef-817b-92fbcf53809c.jpg

如圖,選中Enable GPIO。

這樣,就開啟了pin驅(qū)動。開啟pin驅(qū)動的原因是,SPI的CS使用了pin接口進行控制。

左右移動光標到Save上,回車保存配置。

保存配置之后,.config和rtconfig.h文件將會更新。

保存配置后,就可以退出配置界面了。

2.5.4 禁用RW007的STM32驅(qū)動

類似的,依次選擇:

RT-Thread online packages → IoT - internet of things → Wi-Fi → rw007: SPI WIFI rw007 driver

進入RW007軟件包配置界面:

7d7e3f40-56b0-11ef-817b-92fbcf53809c.jpg

上下移動光標到”example driver port (RW007 for stm32)”上,回車,進入這個配置項:

7d82d3ac-56b0-11ef-817b-92fbcf53809c.png

選中,not use example driver porting by myself。

選中之后,自動返回RW007軟件包配置頁面:

7d86f734-56b0-11ef-817b-92fbcf53809c.jpg

此時,RW007的STM32驅(qū)動就被禁用掉了。

左右移動光標到Save上,回車保存配置。

保存配置之后,.config和rtconfig.h文件將會更新。

保存配置后,就可以退出配置界面了。

2.5.5 下載軟件包

剛剛我們用menuconfig選中了“RT-Thread online packages”中的RW007軟件包,RW007軟件包的代碼默認不在本地。menuconfig選中并保存配置后,需要運行pkgs —update命令,才能將RW007軟件包的代碼下載到本地。

執(zhí)行pkgs —update命令,輸出如下圖所示:

7d901968-56b0-11ef-817b-92fbcf53809c.png

2.5.6 更新MDK項目文件

使用menuconfig命令修改配置之后(尤其是增加軟件包之后),需要更新MDK項目文件,新增的代碼才會被編譯。

對于scons創(chuàng)建時添加了project-name參數(shù)的,更新時也要加project-name參數(shù):

7db40936-56b0-11ef-817b-92fbcf53809c.png

2.6 編譯運行

2.6.1 打開MDK項目

鼠標雙擊打開rtt_n947.uvprojx文件,打開后看到如下圖所示:

7dbe87bc-56b0-11ef-817b-92fbcf53809c.png

可以看到,RW007的代碼已經(jīng)在里面了。

2.6.2 編譯下載程序

Keil中,按F7編譯項目,按F8下載固件。

下載固件之前,需要使用USB Type-C線,將PCUSB口連接到FRDM-MCXN947開發(fā)板的MCU-LINK口上。

默認的下載固件設(shè)置是正確的,如果不能下載固件很可能是沒有安裝MCXN947的支持包。

下載固件完成,Keil輸出如下

7dc2f8ce-56b0-11ef-817b-92fbcf53809c.png

2.6.3 運行RT-Thread

打開串口終端,配置如下:

7de7fa02-56b0-11ef-817b-92fbcf53809c.jpg

連接串口后,

按下開發(fā)板復位鍵,串口終端可以看到,輸出了RW007固件的版本信息

7deead2a-56b0-11ef-817b-92fbcf53809c.png

2.7 WIFI測試

接下來,我們進行一些簡單的WiFi測試。

接下來我們查看wifi命令的使用方式:

7df3fbe0-56b0-11ef-817b-92fbcf53809c.png

2.7.1 掃描測試

嘗試掃描周圍的WiFi熱點:

7dff37da-56b0-11ef-817b-92fbcf53809c.png

可以看到,成功掃描到了周圍的WiFi熱點。

2.7.2 連接測試

嘗試連接其中的一個熱點(這里連接的是無線路由器):

7e04cbfa-56b0-11ef-817b-92fbcf53809c.png

可以看到,成功連接上了WiFi熱點,并且獲取到了IP地址。

2.8 延遲測試

ping命令可以輸出網(wǎng)絡(luò)延遲信息,可以作為網(wǎng)絡(luò)延遲的簡單測試工具。

2.8.1 ping百度

接下來,用 ping 命令測試一下,板子能不能ping通baidu.com:

7e09db2c-56b0-11ef-817b-92fbcf53809c.png

可以ping通baidu.com,說明TCP/IP協(xié)議基本沒有太大問題(域名解析OK,而且可以發(fā)送數(shù)據(jù)到公網(wǎng)主機)。

2.8.2 ping路由器

接下來,ping一下局域網(wǎng)的無線路由器:

7e131b74-56b0-11ef-817b-92fbcf53809c.png

ping局域網(wǎng)的路由器,延遲明顯小了很多。

作為對比,可以看一下筆記本ping路由器的延遲:

7e18c9ac-56b0-11ef-817b-92fbcf53809c.png

我的筆記本電腦連接的也是同一個無線路由器。

模組比筆記本的WiFi延遲稍微高一點點,差別不大。

2.9 帶寬測試

2.9.1 添加netutils軟件包

RT-Thread的netutils組件中提供了iperf命令,可以用于測試網(wǎng)絡(luò)帶寬。

menuconfig界面,依次選擇:

7e3e5e4c-56b0-11ef-817b-92fbcf53809c.png

選中netutils軟件包,然后回車進入軟件包配置頁面:

7e456976-56b0-11ef-817b-92fbcf53809c.png

如圖,選中Enable iperf-liked network performace tool。

左右移動光標到Save上,回車保存配置。

保存配置之后,.config和rtconfig.h文件將會更新。

保存配置后,就可以退出配置界面了。

執(zhí)行pkgs —update命令,輸出如下圖所示:

7e51704a-56b0-11ef-817b-92fbcf53809c.png

更新MDK項目文件:

7e572c56-56b0-11ef-817b-92fbcf53809c.png

重新編譯固件,下載固件,復位運行,串口終端就有iperf命令了:

7e5c3926-56b0-11ef-817b-92fbcf53809c.png

2.9.2 iperf命令參數(shù)

直接運行iperf,默認輸出幫助信息:

7e621440-56b0-11ef-817b-92fbcf53809c.png

可以看到iperf的命令參數(shù)使用方法。

注意:

RT-Thread的iperf命令實現(xiàn)中,對參數(shù)的順序由要求,如果使用過程中發(fā)現(xiàn)參數(shù)報錯,需要查看源碼定位原因;

RT-Thread的iperf不支持持續(xù)時間選項,一般是先啟動,后通過stop選項停止的方式控制測試時長;

2.9.3 PC端的iperf

PC端的iperf可以到iperf項目官網(wǎng)下載:https://iperf.fr/iperf-download.php

我使用的mobaxterm,里面自帶了iperf命令,所以就不單獨下載了:

7e684d56-56b0-11ef-817b-92fbcf53809c.png

2.9.4 iperf測試準備工作

進行iperf測試之前,需要準備:

最好用PC創(chuàng)建熱點,用無線路由器也行,但是需要確保信號強度足夠;

確保開發(fā)板和PC直接的距離不要太遠,否則WiFi信號較弱,測試的結(jié)果可能會偏?。?/p>

最好在WiFi熱點較少的環(huán)境下進行測試,否則測出的結(jié)果數(shù)據(jù)也會偏?。?/p>

2.9.5 進行iperf帶寬測試

下面進行測試,測試步驟如下:

在PC上,啟動iperf服務(wù)端:iperf -s -p 5678

在開發(fā)板上,通過ping命令測試開發(fā)板和PC直接IP是否可達

在開發(fā)板上,啟動iperf客戶端:iperf -c 192.168.3.6 -p 5678 (其中192.168.3.6是PC的IP地址)

啟動后,可以通過ps命令查看正在運行的線程

一段時間后,在開發(fā)板上,停止iperf客戶端:iperf —stop

開發(fā)板上iperf停止后,PC端應該可以看到iperf的輸出;

開發(fā)板上整個過程的輸出如下:

7e6fb67c-56b0-11ef-817b-92fbcf53809c.png

PC端輸出:

7e7bf25c-56b0-11ef-817b-92fbcf53809c.png

可以看到帶寬為7.02Mbps。

2.9.6 iperf測試小結(jié)

實際上,影響WiFi帶寬測試結(jié)果數(shù)據(jù)的因素很多。我們這里,其中,起決定性的的主要由以下幾個方面:

模組本身支持的最高WiFi傳輸速率;

模組接口支持的最高工作頻率;

主控芯片接口最高支持的工作頻率;

熱點的WiFi最高傳輸速率;

各種環(huán)境因素,例如開發(fā)板和PC直接的距離、環(huán)境是否有其他熱點干擾等等;

為了測出比較高的數(shù)據(jù),我把開發(fā)板直接放到路由器天線邊上,才測到以上的結(jié)果:

7e821df8-56b0-11ef-817b-92fbcf53809c.jpg

2.10 補充說明

如果有時候測試發(fā)現(xiàn)棧溢出,則需要修改TCPIP線程棧大?。?/p>

7e8c52fa-56b0-11ef-817b-92fbcf53809c.png

將其修改為4096即可。

聲明:本文內(nèi)容及配圖由入駐作者撰寫或者入駐合作網(wǎng)站授權(quán)轉(zhuǎn)載。文章觀點僅代表作者本人,不代表電子發(fā)燒友網(wǎng)立場。文章及其配圖僅供工程師學習之用,如有內(nèi)容侵權(quán)或者其他違規(guī)問題,請聯(lián)系本站處理。 舉報投訴
  • WIFI
    +關(guān)注

    關(guān)注

    81

    文章

    5296

    瀏覽量

    203572
  • 開發(fā)板
    +關(guān)注

    關(guān)注

    25

    文章

    5032

    瀏覽量

    97371
  • RT-Thread
    +關(guān)注

    關(guān)注

    31

    文章

    1285

    瀏覽量

    40081
收藏 人收藏

    評論

    相關(guān)推薦

    睿賽德(RT-Thread) RW007 WIFI模塊免費試用申請

    RW007是RT-Thread推出的一款高性價比 SPI或SDIO 接口 的Wi-Fi模塊,內(nèi)置RT-Thread,提供基于 802.11 b/g/n 的高速 無線 數(shù)據(jù) 傳輸 功能,降低高速
    的頭像 發(fā)表于 05-25 16:20 ?3232次閱讀

    【Vision Board創(chuàng)客營連載體驗】RW007 WIFI模塊聯(lián)網(wǎng)

    : RT-Thread online packages —> 、IoT - internet of things —>、Wi-Fi —>,勾選 rw007: SPI WIFI
    發(fā)表于 04-29 21:55

    RT-Thread RW007 SPI WiFi 模塊使用

    、安全固件功能。支持快速連接、airkiss 配網(wǎng)支持存儲多達 5 條連接信息更多相關(guān)信息資料見 RW007 介紹頁面:睿賽德科技推出高速Wi-Fi模塊RW007:內(nèi)置RT-Thread物聯(lián)網(wǎng)操作系統(tǒng)
    發(fā)表于 06-11 13:56

    【睿賽德 RW007 WiFi 模塊試用連載】RW007 WIFI模塊聯(lián)網(wǎng)與使用(一)

    packages---> 、IoT - internet of things--->、Wi-Fi--->,勾選 rw007: SPI WIFI rw007 driver---> 選項接著進一步
    發(fā)表于 06-16 07:06

    【睿賽德 RW007 WiFi 模塊試用連載】基于RT-STUDIO配置RW007的過程

    一、工具背景開發(fā)板,本次測試用的是原子的探索者407,為什么呢?因為漂亮啊。網(wǎng)絡(luò)模塊,就是本文的核心RW007,藍色的PCB,跟探索者一起情侶裝。二、新建RT-STUDIO工程目前RT-STUDIO
    發(fā)表于 07-12 12:57

    【睿賽德 RW007 WiFi 模塊試用連載】基于RT-STUDIO配置RW007

    `一、工具背景開發(fā)板,本次測試用的是原子的探索者407,為什么呢?因為漂亮啊。網(wǎng)絡(luò)模塊,就是本文的核心RW007,藍色的PCB,跟探索者一起情侶裝。二、新建RT-STUDIO工程目前
    發(fā)表于 07-12 12:58

    【睿賽德 RW007 WiFi 模塊試用連載】RW007模塊調(diào)試心路歷程

    本篇帖子是我拿到RW007后的試用記錄,也算是心路歷程了吧,我的試用文章:https://bbs.elecfans.com/jishu_2099349_1_1.html,歡迎各位去逛逛。2021
    發(fā)表于 07-12 22:20

    【睿賽德 RW007 WiFi 模塊試用連載】STM32F411連接RW007

    ` 本帖最后由 TLLED 于 2021-7-13 09:50 編輯 官網(wǎng)的例程是使用STM32F401 Nucleo-64開發(fā)板來驅(qū)動RW007,手上有一塊STM32F411
    發(fā)表于 07-13 00:15

    手把手教你適配RW007 Wi-Fi模塊

    RW007是什么?RW007 Wi-Fi模塊有何功能?RW007Wi-Fi模塊有哪些基本參數(shù)呢?
    發(fā)表于 02-28 09:33

    請問RW007是否可以作為WIFI主機?

    請問RW007是否可以作為WIFI主機,手機連接RW007的熱點。
    發(fā)表于 05-27 11:41

    在柿餅派上更新RW007固件與驅(qū)動并測試RW007的BLE功能

    1、通過RW007的BLE 功能讀取米家藍牙溫濕度計數(shù)據(jù)  一直在關(guān)注 RT-Thread 的柿餅派和 RW007 模塊,聽說最近新版的 RW007 模塊支持 BLE 功能了,于是便向客服咨詢在柿餅
    發(fā)表于 09-29 14:15

    rw007不確定原因的不定時重啟何解

    使用rw007 spi lwip連接,經(jīng)常性會發(fā)生下圖這樣當發(fā)送失敗的時候,個人感覺是rw007重啟了,導致rtt wlan框架沒法自動重連wifi。打印的wifi信息目前是已經(jīng)把wlan框架的自動
    發(fā)表于 02-21 11:17

    配置rw007 SPI WiFi模塊的步驟教程

    RW007是RT-Thread推出的一款高性價SPI的Wi-Fi模塊,內(nèi)置RT-Thread,提供基于802.11b/g/n的高速無線數(shù)據(jù)傳輸功能,減低高速Wi-Fi模塊的應用門檻。
    的頭像 發(fā)表于 09-14 14:17 ?6489次閱讀
    配置<b class='flag-5'>rw007</b> SPI WiFi模塊的步驟教程

    RW007系列綜合實戰(zhàn)1】STM32+RW007實現(xiàn)BLE透傳功能

    本期文章將分為5篇連載,前2篇將圍繞模塊功能詳解展開,其后3篇將為大家講解基于RW007相關(guān)DEMO的實現(xiàn),文章目錄如下:
    發(fā)表于 01-25 18:05 ?2次下載
    【<b class='flag-5'>RW007</b>系列綜合<b class='flag-5'>實戰(zhàn)</b>1】STM32+<b class='flag-5'>RW007</b>實現(xiàn)BLE透傳功能

    基于RT-Thread測試RW007(SPI接口)的無線網(wǎng)絡(luò)功能

    本文主要基于 PSoC? 62 with CAPSENSE? evaluation kit開發(fā)板 X RT-Thread,測試RW007(SPI接口)的無線網(wǎng)絡(luò)功能。
    發(fā)表于 08-09 16:23 ?1662次閱讀
    基于RT-Thread測試<b class='flag-5'>RW007</b>(SPI接口)的無線網(wǎng)絡(luò)功能
    RM新时代网站-首页