本文深入講解Air780EPM模組在LuatOS環(huán)境下的FTP應(yīng)用開發(fā),涵蓋AT指令配置、網(wǎng)絡(luò)連接與文件傳輸流程,助你高效完成嵌入式通信項(xiàng)目。
一、什么是 FTP
1.1 基本概念
FTP 協(xié)議
在 4G 物聯(lián)網(wǎng)場(chǎng)景中,FTP 協(xié)議(File Transfer Protocol,文件傳輸協(xié)議)是一種基于 TCP/IP 的標(biāo)準(zhǔn)化文件傳輸技術(shù)。
FTP 協(xié)議包括兩個(gè)組成部分,其一為 FTP 服務(wù)器,其二為 FTP 客戶端.
FTP 服務(wù)器
FTP 服務(wù)器(File Transfer Protocol Server)是基于 FTP 協(xié)議提供文件存儲(chǔ)、傳輸與管理服務(wù)的系統(tǒng)。簡單來說,支持 FTP 協(xié)議的服務(wù)器就是 FTP 服務(wù)器, 用來存儲(chǔ)文件,用戶可以使用 FTP 客戶端通過 FTP 協(xié)議訪問位于 FTP 服務(wù)器上的資源.
FTP 客戶端
FTP 客戶端(FTP Client)是指用戶端用于連接 FTP 服務(wù)器、并進(jìn)行文件傳輸及管理操作的工具或軟件。它是 FTP 通信中的 “發(fā)起方”,負(fù)責(zé)向 FTP 服務(wù)器發(fā)送連接請(qǐng)求、認(rèn)證信息(如用戶名和密碼),并執(zhí)行上傳、下載、刪除、移動(dòng)文件等操作。
默認(rèn)情況下 FTP 協(xié)議使用 TCP 端口中的 20 和 21 這兩個(gè)端口,其中 20 用于傳輸數(shù)據(jù),21 用于傳輸控制信息.但是,是否使用 20 作為傳輸數(shù)據(jù)的端口與 FTP 使用的傳輸模式有關(guān):
如果采用主動(dòng)模式,那么數(shù)據(jù)傳輸端口就是 20;
如果采用被動(dòng)模式,要服務(wù)器端和客戶端協(xié)商決定最終使用哪個(gè)端口.
FTP 作為成熟的文件傳輸協(xié)議,在 4G 物聯(lián)網(wǎng)場(chǎng)景中承擔(dān) “標(biāo)準(zhǔn)化文件交互通道” 的角色,彌補(bǔ)了物聯(lián)網(wǎng)中輕量級(jí)協(xié)議(如 MQTT)在大文件傳輸上的不足。
1.2 關(guān)鍵特性
基于 TCP 的可靠性:FTP 依賴 TCP 協(xié)議實(shí)現(xiàn)連接,通過三次握手建立連接、重傳機(jī)制保障數(shù)據(jù)完整性,適合物聯(lián)網(wǎng)中 “固件包”“監(jiān)控錄像” 等關(guān)鍵文件的傳輸,避免丟失或損壞。
雙向文件操作:支持 “上傳”(設(shè)備 → 服務(wù)器,如傳感器日志上傳)和 “下載”(服務(wù)器 → 設(shè)備,如固件更新),滿足物聯(lián)網(wǎng)設(shè)備與云端的雙向數(shù)據(jù)交互需求。
適配 4G 網(wǎng)絡(luò)特性:4G 的高帶寬支持 FTP 傳輸較大文件;低延遲特性減少了 FTP 控制連接(端口 21)和數(shù)據(jù)連接(端口 20)的交互等待時(shí)間,提升傳輸效率。
1.3 典型應(yīng)用場(chǎng)景
設(shè)備固件升級(jí):物聯(lián)網(wǎng)設(shè)備(如工業(yè)網(wǎng)關(guān)、智能攝像頭)通過 4G 網(wǎng)絡(luò)連接 FTP 服務(wù)器,下載最新固件包并完成升級(jí),無需現(xiàn)場(chǎng)操作。
批量數(shù)據(jù)回傳:部署在戶外的傳感器(如環(huán)境監(jiān)測(cè)設(shè)備)定期將采集的日志文件(如溫度、濕度歷史數(shù)據(jù))通過 FTP 上傳至云端服務(wù)器,便于集中分析。
多媒體文件傳輸:車載終端、安防攝像頭等設(shè)備通過 4G 網(wǎng)絡(luò)將拍攝的視頻、圖片文件經(jīng) FTP 傳輸至后端平臺(tái),實(shí)現(xiàn)遠(yuǎn)程監(jiān)控。
綜上,4G 物聯(lián)網(wǎng)中的 FTP 是一種依托 4G 高帶寬、低延遲特性,實(shí)現(xiàn)設(shè)備與云端大文件可靠傳輸?shù)某墒旆桨福瑥V泛應(yīng)用于固件升級(jí)、數(shù)據(jù)回傳、多媒體傳輸?shù)葓?chǎng)景。
關(guān)于 FTP 更詳細(xì)的理論知識(shí)說明,請(qǐng)參考:https://blog.csdn.net/HinsCoder/article/details/130911658
或者其他途徑自行參考。
下面就跟著教程用模組實(shí)際操作演示一下 FTP 協(xié)議的實(shí)際應(yīng)用。
二、功能演示概述
本文演示 4G 模組使用 LuatOS 開發(fā)時(shí), 4G 通信中 ftp 網(wǎng)絡(luò)協(xié)議的應(yīng)用功能.
使用 Air780EPM 開發(fā)板下載 Air780EPM 的 LuatOS 示例代碼中 ftp 的例程,進(jìn)行驗(yàn)證,例程中實(shí)現(xiàn)的功能核心業(yè)務(wù)邏輯為:
配置 FTP 客戶端登錄服務(wù)器的參數(shù)和文件路徑
封裝一個(gè)重試機(jī)制,在登錄失敗、上傳文件失敗或者下載文件失敗時(shí)嘗試重新執(zhí)行操作
登錄 FTP 服務(wù)器,通過重試機(jī)制確保登錄成功
ftp.push 上傳本地文件到服務(wù)器,在本地新建文件并寫入內(nèi)容后上傳到服務(wù)器指定路徑,通過重試機(jī)制確保上傳成功
ftp.pull 從服務(wù)器下載文件,保存在本地指定路徑,并讀取文件長度,當(dāng)長度小于指定字節(jié)時(shí),讀取文件內(nèi)容,通常是設(shè)定 512 字節(jié),如果文件太大,會(huì)消耗 ram,通過重試機(jī)制確保上傳成功
主函數(shù)循環(huán)運(yùn)行以下流程: 登錄服務(wù)器、用 ftp.command 操作 ftp 服務(wù)器目錄以及文件上傳下載處理后關(guān)閉服務(wù)器。
三、準(zhǔn)備硬件環(huán)境
3.1 780EPM 硬件環(huán)境

1、Air780EPM 1.3 版本開發(fā)板一塊 + 可上網(wǎng)的 sim 卡一張 +4g 天線一根 + 網(wǎng)線一根:
2、sim 卡插入開發(fā)板的 sim 卡槽
3、天線裝到開發(fā)板上
4、網(wǎng)線一端插入開發(fā)板網(wǎng)口,另外一端連接可以上外網(wǎng)的路由器網(wǎng)口
5、TYPE-C USB 數(shù)據(jù)線一根 + USB 轉(zhuǎn)串口數(shù)據(jù)線一根,Air780EPM 開發(fā)板和數(shù)據(jù)線的硬件接線方式為:
6、Air780EPM 開發(fā)板通過 TYPE-C USB 口供電;(外部供電/USB 供電 撥動(dòng)開關(guān) 撥到 USB 供電一端)
7、TYPE-C USB 數(shù)據(jù)線直接插到開發(fā)板的 TYPE-C USB 座子,另外一端連接電腦 USB 口;
3.2 780EHM 硬件環(huán)境
1、Air780EHM 核心板一塊 + 可上網(wǎng)的 sim 卡一張 +4g 天線一根 + 網(wǎng)線一根
2、sim 卡插入開發(fā)板的 sim 卡槽
3、天線裝到開發(fā)板上
4、網(wǎng)線一端插入開發(fā)板網(wǎng)口,另外一端連接可以上外網(wǎng)的路由器網(wǎng)口
5、TYPE-C USB 數(shù)據(jù)線一根 + USB 轉(zhuǎn)串口數(shù)據(jù)線一根,Air780EHM 核心板和數(shù)據(jù)線的硬件接線方式為:
6、Air780EHM 核心板通過 TYPE-C USB 口供電;(外部供電/USB 供電 撥動(dòng)開關(guān) 撥到 USB 供電一端)
7、TYPE-C USB 數(shù)據(jù)線直接插到核心板的 TYPE-C USB 座子,另外一端連接電腦 USB 口;
8、USB 轉(zhuǎn)串口數(shù)據(jù)線,一般來說,白線連接開發(fā)板的 UART1_TX,綠線連接開發(fā)板的 UART1_RX,黑線連接核心板的 GND,另外一端連接電腦 USB 口;
9、可選 AirPHY_1000 配件板一塊,Air780EHM 核心板和 AirPHY_1000 配件板的硬件接線方式為:

四、準(zhǔn)備軟件環(huán)境
在開始實(shí)踐本示例之前,先準(zhǔn)備一下軟件環(huán)境:
4.1Luatools 工具,如果是第一次使用 Luatools 工具,請(qǐng)仔細(xì)閱讀此鏈接教程。
4.2 內(nèi)核固件文件(底層 core 固件文件):LuatOS-SoC_V2014_Air780EPM_1.soc;參考項(xiàng)目使用的內(nèi)核固件;如有更新可以使用最新固件。
4.3 luatos 需要的腳本和資源文件:https://gitee.com/openLuat/LuatOS/tree/master/module/Air780EHM_Air780EHV_Air780EGH/demo/ftp
main.lua:主程序入口;
netdrv_device.lua:網(wǎng)卡驅(qū)動(dòng)設(shè)備,可以配置使用netdrv文件夾內(nèi)的四種網(wǎng)卡(單4g網(wǎng)卡,單wifi網(wǎng)卡,單spi以太網(wǎng)卡,多網(wǎng)卡)中的任何一種網(wǎng)卡;
netdrv 文件夾:三種網(wǎng)卡,單 4g 網(wǎng)卡、單 spi 以太網(wǎng)卡、多網(wǎng)卡,供 netdrv_device.lua 加載配置,按需選擇。
ftp_up_download.lua,功能演示核心腳本,在 main.lua 中加載運(yùn)行。
4.4 lib 腳本文件:使用 Luatools 燒錄時(shí),勾選 添加默認(rèn) lib 選項(xiàng),使用默認(rèn) lib 腳本文件;
準(zhǔn)備好軟件環(huán)境之后,接下來查看如何燒錄項(xiàng)目文件到 Air780EPM 開發(fā)板,將本篇文章中演示使用的項(xiàng)目文件燒錄到 Air780EPM 開發(fā)板中。
4.5 訪問 ftp 服務(wù)器
以下準(zhǔn)備了三種訪問 ftp 服務(wù)器的方法
本文使用方法 1,通過 Windows 資源管理器訪問,若無法訪問,請(qǐng)嘗試方法 2 或者方法 3:
測(cè)試服務(wù)器客戶端配置參數(shù),非 ssl 加密: local server_ip = "121.43.224.154" -- 服務(wù)器 IP local server_port = 21 -- 服務(wù)器端口號(hào) local server_username = "ftp_user" -- 服務(wù)器登陸用戶名 local server_password = "3QujbiMG" -- 服務(wù)器登陸密碼
方法 1 Windows 資源管理器:- 打開“我的電腦”,在地址欄輸入“ftp://121.43.224.154/”,按回車鍵。

在登錄界面輸入用戶名和密碼,點(diǎn)擊登錄,即可看到服務(wù)器上保存的文件。

方法 2 IE 瀏覽器訪問: - 打開 IE 瀏覽器,在瀏覽器輸入 121.43.224.154,回車,然后輸入用戶名和密碼,點(diǎn)擊登錄,進(jìn)入服務(wù)器。

方法 3 客戶端軟件:下載安裝Xftp客戶端軟件,并配置好 ftp 服務(wù)器地址,端口號(hào),用戶名,密碼等信息,即可登錄,安裝教程可自行上網(wǎng)查找。

注意選擇 FTP 協(xié)議,如果新建會(huì)話后無法打開會(huì)話,可以再次檢查登錄信息是否正確。

ftp-API 地址:https://docs.openluat.com/osapi/core/ftp/
六、示例代碼和功能展示
6.1 流程介紹
1、搭建好硬件環(huán)境
2、demo 腳本代碼 netdrv_device.lua 中,按照自己的網(wǎng)卡需求啟用對(duì)應(yīng)的 Lua 文件
3、如果需要單 4G 網(wǎng)卡,打開 require "netdrv_4g",其余注釋掉
4、如果需要以太網(wǎng)卡,打開 require "netdrv_eth_spi",其余注釋掉
5、如果需要多網(wǎng)卡,打開 require "netdrv_multiple",其余注釋掉
6、本示例使用的服務(wù)器參考第四章節(jié) 5. 訪問 ftp 服務(wù)器,如果是自己的 ftp 服務(wù)器,在腳本代碼 ftp_up_download.lua 的 config 表中按自己的服務(wù)器 IP,端口號(hào),用戶名,密碼修改參數(shù)。
7、Luatools 燒錄內(nèi)核固件和修改后的 demo 腳本代碼
8、燒錄成功后,自動(dòng)開機(jī)運(yùn)行,查看打印日志,如果正常運(yùn)行,會(huì)打印 ftp 登錄成功,文件目錄,上傳下載文件結(jié)果等信息。
6.2 代碼和 log
6.2.1 代碼示例
(復(fù)制鏈接查看 ftp的完整 demo)https://gitee.com/openLuat/LuatOS/blob/master/module/Air780EPM/demo/ftp/main.lua

6.2.2 核心代碼部分

6.2.3 例程 log 打印如下:

6.2.4 luatools 頁面顯示如下:

6.2.5 ftp 服務(wù)器查看上傳的文件

七、總結(jié)
本文檔主要介紹 4G 通信中 FTP 通信的應(yīng)用。
結(jié)合 demo 例程講解了 FTP 基本原理,介紹了 FTP 主要 API,旨在最簡單的快速上手 Air8000 的 LuatOS 的 FTP 開發(fā).
八、常見問題
8.1 關(guān)于不支持主動(dòng)模式:
模塊 ftp 默認(rèn)是被動(dòng)模式,不支持主動(dòng)模式,無法設(shè)置主動(dòng)模式,公網(wǎng)下要想模塊正常連接服務(wù)器,服務(wù)器肯定不能設(shè)置為主動(dòng)模式,否則哪家模塊都不能用.
8.2 ftp 服務(wù)器用 vsftpd
vsftpd 是一個(gè) FTP 服務(wù)器軟件, 是一個(gè) UNIX 類操作系統(tǒng)上運(yùn)行的服務(wù)器的名字,vsftpd 是 very secure FTP daemon 的縮寫,安全性是它的一個(gè)最大的特點(diǎn),它可以運(yùn)行在諸如 Linux、BSD、Solaris、 HP-UNIX 等系統(tǒng)上面,是一個(gè)完全免費(fèi)的、開放源代碼的 ftp 服務(wù)器軟件,負(fù)責(zé)搭建和提供文件存儲(chǔ)、訪問服務(wù)(相當(dāng)于 “文件倉庫”),通過監(jiān)聽網(wǎng)絡(luò)端口(默認(rèn) 21 端口)接收客戶端的連接請(qǐng)求,并根據(jù)配置允許用戶上傳、下載文件。
今天的內(nèi)容就分享到這里了~
審核編輯 黃宇
-
物聯(lián)網(wǎng)
+關(guān)注
關(guān)注
2945文章
47818瀏覽量
414834 -
FTP
+關(guān)注
關(guān)注
0文章
118瀏覽量
42210 -
開發(fā)板
+關(guān)注
關(guān)注
26文章
6289瀏覽量
118051 -
LuatOS
+關(guān)注
關(guān)注
0文章
156瀏覽量
2695
發(fā)布評(píng)論請(qǐng)先 登錄
LuatOS選型指南:基于Air780EPM的32/64位性能實(shí)測(cè)分析
Air780EPM開發(fā)板上的FFT應(yīng)用實(shí)現(xiàn):關(guān)鍵技術(shù)深度剖析
以Air780EPM開發(fā)板為例:FFT應(yīng)用示例核心要點(diǎn)全解析
Air780EPM嵌入式開發(fā):LuatOS下的MQTT通信實(shí)踐
實(shí)戰(zhàn)Air780EPM:構(gòu)建4G共享網(wǎng)關(guān),服務(wù)WiFi與有線設(shè)備!
Air780EPM開發(fā)板NTP對(duì)時(shí)教程:LuatOS腳本開發(fā)入門指南
LuatOS嵌入式開發(fā)實(shí)戰(zhàn):Air780EPM與MQTT通信
LuatOS Air780EPM 開發(fā)板 HTTP 教程:原理講解與項(xiàng)目實(shí)操!
Air8101多網(wǎng)融合戰(zhàn)略升級(jí):Air780EPM模塊助力4G聯(lián)網(wǎng)落地
解鎖Air780EPM:N種GPIO操控LED的實(shí)戰(zhàn)技巧!
如何解決Air780EPM開發(fā)中的調(diào)試難題?深度解析高效調(diào)試方法
深度解析Air780EPM模組:LuatOS下CAN總線通信的完整方案!
血淚教訓(xùn)總結(jié):Air780EPM的LuatOS二次開發(fā)——OneWire協(xié)議調(diào)試注意事項(xiàng)
手把手教你!4G模組Air780EPM——GPIO的設(shè)計(jì)說明
Air780EPM 模塊串口電路設(shè)計(jì)硬件指導(dǎo)
Air780EPM開發(fā)板FTP功能實(shí)戰(zhàn):LuatOS嵌入式開發(fā)全解析
評(píng)論