衡阳派盒市场营销有限公司

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

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

3天內不再提示

RW007 Wi-Fi 實戰分享

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

1.開發環境

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

ENV環境

2.步驟說明

2.1 RW007模組介紹

RW007模組是由上海睿賽德電子科技有限公司開發的一款支持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模組引腳的連接關系,如下表所示:

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

2.2 Arduino接口簡介

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

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

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

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

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

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

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

2.3 RW007軟件包簡介

RT-Thread RW007軟件包實現了MCU主控端與RW007模組的SPI/UART接口的底層通訊,同時實現了與RT-Thread的WiFi框架、網絡協議棧對接。借助此軟件包,開發者可以在RT-Thread系統上輕松實現WiFi聯網或BLE功能。

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

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

2.4 RT-Thread env工具簡介

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

2.5 新建工程

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

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

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

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

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

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

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

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

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

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

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

scons命令創建的目錄,內容如下圖所示:

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

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

2.5.1 添加RW007軟件包

在env命令行環境中,跳轉到上一小節創建的項目目錄 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驅動

類似的,依次進入菜單:

→ Hardware Drivers Config → On-chip Peripheral Drivers

如下圖所示:

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

如圖,選中Enable GPIO。

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

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

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

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

2.5.4 禁用RW007的STM32驅動

類似的,依次選擇:

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驅動就被禁用掉了。

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

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

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

2.5.5 下載軟件包

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

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

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

2.5.6 更新MDK項目文件

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

對于scons創建時添加了project-name參數的,更新時也要加project-name參數:

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

2.6 編譯運行

2.6.1 打開MDK項目

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

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

可以看到,RW007的代碼已經在里面了。

2.6.2 編譯下載程序

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

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

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

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

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

2.6.3 運行RT-Thread

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

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

連接串口后,

按下開發板復位鍵,串口終端可以看到,輸出了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命令可以輸出網絡延遲信息,可以作為網絡延遲的簡單測試工具。

2.8.1 ping百度

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

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

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

2.8.2 ping路由器

接下來,ping一下局域網的無線路由器:

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

ping局域網的路由器,延遲明顯小了很多。

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

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

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

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

2.9 帶寬測試

2.9.1 添加netutils軟件包

RT-Thread的netutils組件中提供了iperf命令,可以用于測試網絡帶寬。

menuconfig界面,依次選擇:

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

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

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

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

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

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

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

執行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命令參數

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

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

可以看到iperf的命令參數使用方法。

注意:

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

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

2.9.3 PC端的iperf

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

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

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

2.9.4 iperf測試準備工作

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

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

確保開發板和PC直接的距離不要太遠,否則WiFi信號較弱,測試的結果可能會偏小;

最好在WiFi熱點較少的環境下進行測試,否則測出的結果數據也會偏小;

2.9.5 進行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的輸出;

開發板上整個過程的輸出如下:

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

PC端輸出:

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

可以看到帶寬為7.02Mbps。

2.9.6 iperf測試小結

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

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

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

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

熱點的WiFi最高傳輸速率;

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

為了測出比較高的數據,我把開發板直接放到路由器天線邊上,才測到以上的結果:

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

2.10 補充說明

如果有時候測試發現棧溢出,則需要修改TCPIP線程棧大小:

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

將其修改為4096即可。

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

    關注

    81

    文章

    5308

    瀏覽量

    204771
  • 開發板
    +關注

    關注

    25

    文章

    5121

    瀏覽量

    98194
  • RT-Thread
    +關注

    關注

    31

    文章

    1305

    瀏覽量

    40386
收藏 人收藏

    評論

    相關推薦

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

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

    【Vision Board創客營連載體驗】RW007 WIFI模塊聯網

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

    RT-Thread RW007 SPI WiFi 模塊使用

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

    【睿賽德 RW007 WiFi 模塊試用連載】RW007 WIFI模塊聯網與使用(一)

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

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

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

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

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

    【睿賽德 RW007 WiFi 模塊試用連載】RW007模塊調試心路歷程

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

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

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

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

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

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

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

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

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

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

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

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

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

    RW007系列綜合實戰1】STM32+RW007實現BLE透傳功能

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

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

    本文主要基于 PSoC? 62 with CAPSENSE? evaluation kit開發板 X RT-Thread,測試RW007(SPI接口)的無線網絡功能。
    發表于 08-09 16:23 ?1797次閱讀
    基于RT-Thread測試<b class='flag-5'>RW007</b>(SPI接口)的無線網絡功能
    买百家乐程序| 百家乐官网评级网站| LV百家乐客户端LV| 怎么玩百家乐官网呀| 盛世国际,| 风水学坐向24山| 增城市| 运城百家乐的玩法技巧和规则| 百家乐官网游戏模拟| 棋牌类玩具| 百家乐开户优惠多的平台是哪家 | 大发888 娱乐免费游戏| 百家乐稳定打法| 百家乐官网百家乐官网伴侣| 百家乐翻牌规则| 澳门百家乐官网娱乐场开户注册| 碌曲县| 百家乐发牌盒子| 喜力百家乐官网的玩法技巧和规则 | 百家乐追号工具| 百家乐官网平注常赢玩法| 菠菜百家乐官网娱乐城| 大发888游戏平台hg dafa 888 gw| 实战百家乐博彩正网| 百家乐官网免佣台| 龙博| 累积式百家乐的玩法技巧和规则| 百家乐官网免费改| 百家乐官网单跳双跳| 大发888娱乐游戏--| 玩百家乐优博娱乐城| 百家乐官网真人游戏娱乐场| 皇冠网小说网址| 百家乐黏土筹码| 互博百家乐现金网| 百家乐官网透明牌靴| 百家乐官网分析下载| 大发888娱乐场18| 老虎百家乐的玩法技巧和规则| 百家乐玩法守则| 广州百家乐官网牌具公司|