本文以常用的低功耗4G模組Air724UG為例,做出關于低功耗模組軟件的UDP示例,以供大家參考。
一、UDP 概述
UDP(用戶數(shù)據(jù)報協(xié)議,User Datagram Protocol)是一種無連接的、不可靠的傳輸層協(xié)議,主要用于實現(xiàn)網(wǎng)絡中的快速通訊。
以下是UDP通訊的主要特點:
1.1 無連接通訊:
UDP在發(fā)送數(shù)據(jù)之前不需要建立連接,這大大減少了通訊的延遲。發(fā)送方只需將數(shù)據(jù)包封裝成 UDP 報文,并附上目的地址和端口號,即可直接發(fā)送。
1.2 不可靠傳輸:
UDP不保證數(shù)據(jù)包的順序性、完整性和可靠性。數(shù)據(jù)包在傳輸過程中可能會丟失、重復或亂序到達。因此,UDP 通訊需要應用層自行處理這些問題,如實現(xiàn)錯誤檢測、數(shù)據(jù)重傳等機制。
1.3 面向報文:
UDP以報文為單位進行數(shù)據(jù)傳輸,每個報文都是獨立的。這種面向報文的特性使得UDP能夠保持數(shù)據(jù)的完整性,并且便于進行錯誤檢測和處理。
1.4 高效性:
UDP的頭部結構非常簡單,只包含必要的字段,如源端口、目的端口、數(shù)據(jù)長度和校驗和。這種簡潔的頭部設計使得 UDP 在處理數(shù)據(jù)包時更加高效,減少了網(wǎng)絡延遲。
1.5 實時性:
UDP通訊具有較快的傳輸速度,適用于對實時性要求較高的應用場景,如視頻通話、在線游戲等。在這些場景中,即使數(shù)據(jù)包偶爾丟失或延遲,也不會對整體功能產(chǎn)生嚴重影響。
二、功能概述
這篇文章主要通過寶寶教學的方式,細述了 udp、以及描述各種工具的使用和演示示例。
三、準備硬件環(huán)境
3.1 Air724UG-NFM 開發(fā)板
使用 Air724UG-NFM開發(fā)板,如下圖所示:
3.2 SIM 卡
請準備一張可正常上網(wǎng)的 SIM 卡,該卡可以是物聯(lián)網(wǎng)卡或您的個人手機卡。
特別提醒:
請確保 SIM 卡未欠費且網(wǎng)絡功能正常,以便順利進行后續(xù)操作。
物聯(lián)網(wǎng)需要找卡商確認 apn 配置信息并進行配置,否則可能無法注網(wǎng)。
專網(wǎng)卡需要自備服務器或找卡商將服務器拉入白名單。
注:部分卡無法使用需要進行 apn 配置:
3.3 PC 電腦
電腦操作系統(tǒng)為:
WIN7以及以上版本的WINDOWS系統(tǒng)。
3.4 數(shù)據(jù)通信線
請準備一根用于連接 Air724UG-NFM 開發(fā)板和 PC 電腦的數(shù)據(jù)線,該數(shù)據(jù)線將實現(xiàn)業(yè)務邏輯的控制與交互。
USB 數(shù)據(jù)線(其一端為 micro-B 接口(俗稱老安卓口),用于連接 Air724UG-NFM 開發(fā)板)。通常,這種數(shù)據(jù)線的外觀如下示意圖所示:
準備一塊 TTL 串口板,這里采用了高速串口板其速率高達 12Mbps,建議購買一塊備用,有需要時方便其對模塊日志進行有效抓?。?/p>
在本教程中,我們將采用以下數(shù)據(jù)線配置進行測試和數(shù)據(jù)查看:
第一部:USB 數(shù)據(jù)線:此數(shù)據(jù)線不僅用于為測試板供電,還可用于查看抓取 lua 腳本上層和底層 core 日志。其一端為 micro-B 接口,連接 Air724UG-NFM 開發(fā)板;另一端為標準 USB 接口,連接 PC 電腦。
第二部:USB 轉 TTL 串口板:主要用于 tcp 透傳串口數(shù)據(jù)的查看和發(fā)送。
3.5 組裝硬件環(huán)境
組裝準備:
組裝過程:
1)請按照 SIM 卡槽上的指示方向正確插入 SIM 卡,務必確保插入方向正確,避免插反導致?lián)p壞!
2)安裝天線,保證其網(wǎng)絡連接和傳輸質量。
3)將 usb 公口線,連接電腦和串口板并將串口板的 ch-1 使用杜邦線或者順手在網(wǎng)上買的組裝線連接至串口 (注意板子上的絲印!)
4) 將 USB 數(shù)據(jù)線,連接電腦和 Air724UG-NFM 開發(fā)板。
5)將 usb 串口板連接至電腦:
組裝完成:
四、準備軟件環(huán)境
4.1 安裝設備驅動
跳轉以下連接按照連接教程,并完成設備驅動的安裝:https://docs.openluat.com/usb_drv/
4.2 Luatools 工具
使用說明參考:
Luatools下載和詳細使用
https://docs.openluat.com/Luatools/
4.3 源碼及固件
注:這里推薦使用第一種方式。
4.3.1 選擇打包好的工程文件:
1) 選擇打包好的 UDP 工程進行下載,下載后解壓縮后按照 4.2 Luatools 工具添加工程、lib、腳本文件.
2) 目錄結構
腳本運行 lib:請選擇 lib 文件下的腳本文件。
底層固件:請選擇 core 文件下的文件 LuatOS-Air_V4028_RDA8910。
運行腳本:請選擇 lua_run_script 文件下的 udp-uart 文件下的腳本文件。
4.3.2 自行選底層固件、lib:
https://docs.openluat.com/air724ug/luatos/app/socket/udp/
根據(jù)上述鏈接打開下載界面,在下載界面中有對 Air724 相關的固件功能、固件下載、固件更細說明、固件歷史版本下載、固件功能可自定義定制以及 lib 下載等說明。
1) 底層固件
本 demo 中選擇了歷史版本中的標準版本 LuatOS-Air_V4028_RDA8910。
2) 腳本運行 lib
3) 運行腳本
解壓壓縮包 lua_run_script,添加運行腳本。
4.4 TCP/UDP web 測試工具
為了方便測試,使用了免費的不可商用的 TCP/UDP web 測試工具:TCP/UDP web 工具 (luatos.com)
詳細使用說明參考:
TCP/UDP web測試工具使用說明
https://docs.openluat.com/TCPUDP_Test/
4.5 PC 端串口工具
串口調試工具推薦使用 SSCOM 工具。
五、AIR724 硬件資料
產(chǎn)品資料:
https://docs.openluat.com/air724ug/product/
硬件手冊:
https://docs.openluat.com/air724ug/product/
六、UDP 主要 API 介紹
6.1 SOCKET 是否可用
6.2 創(chuàng)建基于 UDP 的 socket 對象
6.3 設置域名解析參數(shù)
6.4 打印所有 socket 的狀態(tài)
以上接口函數(shù)不做詳細介紹,可通過此鏈接查看具體介紹:
API 鏈接:
https://doc.openluat.com/wiki/21?wiki_page_id=2294
七、 UDP-UART 無校驗實戰(zhàn)演示
7.1 創(chuàng)建 udp 無加密的服務器
可根據(jù) 章節(jié) 4.4( TCP/UDP web 測試工具) 創(chuàng)建 udp 無校驗加密的 web 服務器:
7.2 修改腳本
選擇創(chuàng)建好 udp 的 web 服務,并記錄一下服務器地址和端口來修改腳本中的服務器地址和端口,注意這個位置速度要快一點,否則創(chuàng)建的服務器端口可能會失效,失效也不要慌張,重新刷新創(chuàng)建一個即可:
7.3 Luatools下載
這里只進行了工程下載的概述,詳細下載教程請查看章節(jié) 4.2 Luatools 工具講解
1) 模塊首先進行上電:
2) 模塊上電后,右側三種狀態(tài)燈會根據(jù)程序狀態(tài)進行閃爍:
3) 創(chuàng)建項目并添加對應的工程腳本進行下載,這里選擇了工程中的 lib 以及免 BOOT 下載固件和腳本:
4) Luatools打印效果:
7.4 sscom 串口工具發(fā)送數(shù)據(jù)
打開計算機右鍵,找到計算機管理,找到你連接的串口端口:
打開 sscom,發(fā)送數(shù)據(jù),查看返回的數(shù)據(jù),這里的數(shù)據(jù)設置了回顯,所以服務器會回復一樣的數(shù)據(jù):
查看 web 端:
八、總結
這篇文章主要通過寶寶教學的方式,細述了 udp 如何搭配串口進行數(shù)據(jù)透傳,以及描述了一系列工具的使用和演示示例。
擴展
TCP 和 UDP
TCP(Transmission Control Protocol,傳輸控制協(xié)議)和 UDP(User Datagram Protocol,用戶數(shù)據(jù)報協(xié)議)都是網(wǎng)絡層之上的傳輸層協(xié)議,它們在網(wǎng)絡通訊中扮演著重要的角色,但有著顯著的區(qū)別。以下是 TCP 和 UDP 的簡化對比:
連接性:
TCP:面向連接。在數(shù)據(jù)傳輸之前,需要先建立連接(三次握手),確保數(shù)據(jù)傳輸?shù)目煽啃浴?/p>
UDP:不保證數(shù)據(jù)的可靠性。數(shù)據(jù)包可能會丟失、重復或亂序到達。
可靠性:
TCP:提供可靠的傳輸服務。通過確認應答、超時重傳、錯誤校驗等機制,確保數(shù)據(jù)按順序、無錯誤地傳輸。
UDP:不保證數(shù)據(jù)的可靠性。數(shù)據(jù)包可能會丟失、重復或亂序到達。
速度:
TCP:由于需要建立連接和進行各種可靠性檢查,TCP 的傳輸速度相對較慢。
UDP:沒有連接建立和可靠性檢查的開銷,UDP 的傳輸速度通常更快。
應用場景:
TCP:適用于需要可靠傳輸?shù)膽脠鼍?,如網(wǎng)頁瀏覽、文件傳輸?shù)取?/p>
UDP:適用于對實時性要求較高、但對數(shù)據(jù)可靠性要求不高的應用場景,如視頻流、音頻流、在線游戲等。
流量控制:
TCP:具有流量控制和擁塞控制機制,能夠根據(jù)網(wǎng)絡狀況調整數(shù)據(jù)傳輸速率。
UDP:沒有流量控制和擁塞控制機制,數(shù)據(jù)發(fā)送速率完全取決于應用程序。
頭部開銷:
TCP:頭部開銷較大,包含源端口、目的端口、序列號、確認號、窗口大小等多個字段。
UDP:頭部開銷較小,僅包含源端口、目的端口、長度和校驗和等字段。
常見問題
sys.waitUntil("IP_READY_IND") -- 此條消息,是由底層默認注網(wǎng)流程成功后,發(fā)送此條消息,注意如果一直沒有注網(wǎng)成功,需要檢查 apn 配置啦。
分享完畢
審核編輯 黃宇
-
UDP
+關注
關注
0文章
325瀏覽量
33939 -
低功耗
+關注
關注
10文章
2404瀏覽量
103704 -
模組
+關注
關注
6文章
1492瀏覽量
30390
發(fā)布評論請先 登錄
相關推薦
評論