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

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

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

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

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

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

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

ftp-API 地址:https://docs.openluat.com/osapi/core/ftp/
六、示例代碼和功能展示
6.1 流程介紹
1、搭建好硬件環境
2、demo 腳本代碼 netdrv_device.lua 中,按照自己的網卡需求啟用對應的 Lua 文件
3、如果需要單 4G 網卡,打開 require "netdrv_4g",其余注釋掉
4、如果需要以太網卡,打開 require "netdrv_eth_spi",其余注釋掉
5、如果需要多網卡,打開 require "netdrv_multiple",其余注釋掉
6、本示例使用的服務器參考第四章節 5. 訪問 ftp 服務器,如果是自己的 ftp 服務器,在腳本代碼 ftp_up_download.lua 的 config 表中按自己的服務器 IP,端口號,用戶名,密碼修改參數。
7、Luatools 燒錄內核固件和修改后的 demo 腳本代碼
8、燒錄成功后,自動開機運行,查看打印日志,如果正常運行,會打印 ftp 登錄成功,文件目錄,上傳下載文件結果等信息。
6.2 代碼和 log
6.2.1 代碼示例
(復制鏈接查看 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 服務器查看上傳的文件

七、總結
本文檔主要介紹 4G 通信中 FTP 通信的應用。
結合 demo 例程講解了 FTP 基本原理,介紹了 FTP 主要 API,旨在最簡單的快速上手 Air8000 的 LuatOS 的 FTP 開發.
八、常見問題
8.1 關于不支持主動模式:
模塊 ftp 默認是被動模式,不支持主動模式,無法設置主動模式,公網下要想模塊正常連接服務器,服務器肯定不能設置為主動模式,否則哪家模塊都不能用.
8.2 ftp 服務器用 vsftpd
vsftpd 是一個 FTP 服務器軟件, 是一個 UNIX 類操作系統上運行的服務器的名字,vsftpd 是 very secure FTP daemon 的縮寫,安全性是它的一個最大的特點,它可以運行在諸如 Linux、BSD、Solaris、 HP-UNIX 等系統上面,是一個完全免費的、開放源代碼的 ftp 服務器軟件,負責搭建和提供文件存儲、訪問服務(相當于 “文件倉庫”),通過監聽網絡端口(默認 21 端口)接收客戶端的連接請求,并根據配置允許用戶上傳、下載文件。
今天的內容就分享到這里了~
審核編輯 黃宇
-
物聯網
+關注
關注
2948文章
47970瀏覽量
416948 -
FTP
+關注
關注
0文章
118瀏覽量
42282 -
開發板
+關注
關注
26文章
6346瀏覽量
119501 -
LuatOS
+關注
關注
0文章
163瀏覽量
2728
發布評論請先 登錄
LuatOS選型指南:基于Air780EPM的32/64位性能實測分析
Air780EPM開發板上的FFT應用實現:關鍵技術深度剖析
以Air780EPM開發板為例:FFT應用示例核心要點全解析
Air780EPM嵌入式開發:LuatOS下的MQTT通信實踐
實戰Air780EPM:構建4G共享網關,服務WiFi與有線設備!
Air780EPM開發板NTP對時教程:LuatOS腳本開發入門指南
LuatOS嵌入式開發實戰:Air780EPM與MQTT通信
LuatOS Air780EPM 開發板 HTTP 教程:原理講解與項目實操!
Air8101多網融合戰略升級:Air780EPM模塊助力4G聯網落地
Air780EPM — ADC硬件電路設計:場景化優化與實踐!
Air780EPM應用開發:解鎖GPIO與LED的N種交互模式
解鎖Air780EPM:N種GPIO操控LED的實戰技巧!
如何解決Air780EPM開發中的調試難題?深度解析高效調試方法
深度解析Air780EPM模組:LuatOS下CAN總線通信的完整方案!
快速開發實戰——4路低功耗ADC接口,Air780EPM二次開發必看!
Air780EPM開發板FTP功能實戰:LuatOS嵌入式開發全解析
評論