0
  • 聊天消息
  • 系统消息
  • 评论与回复
登录后你可以
  • 下载海量资料
  • 学习在线课程
  • 观看技术视频
  • 写文章/发帖/加入社区
会员中心
创作中心

完善资料让更多小伙伴认识你,还能领取20积分哦,立即完善>

3天内不再提示

Air780EPM开发板FTP功能实战:LuatOS嵌入式开发全解析

合宙LuatOS 来源:合宙LuatOS 作者:合宙LuatOS 2025-09-29 15:37 次阅读
加入交流群
微信小助手二维码

扫码添加小助手

加入工程师交流群

本文深入讲解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 硬件环境

wKgZO2jaMOiATYSmACB5Mmxv_9w178.png

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 配件板的硬件接线方式为:

wKgZO2jaMhiAdUpBAABSz6ioeFg184.png

四、准备软件环境

在开始实践本示例之前,先准备一下软件环境:

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/”,按回车键。

wKgZO2jaMrmANtsLAAGTNy0v8IE548.png

在登录界面输入用户名和密码,点击登录,即可看到服务器上保存的文件。

wKgZO2jaMuWAa4OYAALDmLvFsbs257.png

方法 2 IE 浏览器访问: - 打开 IE 浏览器,在浏览器输入 121.43.224.154,回车,然后输入用户名和密码,点击登录,进入服务器。

wKgZO2jaMxCABLdXAAF13hNJBmU096.png

方法 3 客户端软件:下载安装Xftp客户端软件,并配置好 ftp 服务器地址,端口号,用户名,密码等信息,即可登录,安装教程可自行上网查找。

wKgZPGjaMzKAeHmiAAJ6kU_9sXg176.png

注意选择 FTP 协议,如果新建会话后无法打开会话,可以再次检查登录信息是否正确。

wKgZO2jaM1WASMLqAAN2aXruVz4698.png

五、API 接口说明

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

wKgZO2jaNCiAeK1MAAkfjq81ybE669.png

6.2.2 核心代码部分

wKgZO2jaNOOAMINVACeYzT82_FI288.png


6.2.3 例程 log 打印如下:

wKgZPGjaNSeACFpqABAxN9ulJs0486.png


6.2.4 luatools 页面显示如下:

wKgZPGjaNVeAe55HAAStzgDdDlo639.png


6.2.5 ftp 服务器查看上传的文件

wKgZO2jaNXqABO2XAAGaqld8yk4368.png

七、总结

本文档主要介绍 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 端口)接收客户端的连接请求,并根据配置允许用户上传、下载文件。


今天的内容就分享到这里了~

审核编辑 黄宇

声明:本文内容及配图由入驻作者撰写或者入驻合作网站授权转载。文章观点仅代表作者本人,不代表电子发烧友网立场。文章及其配图仅供工程师学习之用,如有内容侵权或者其他违规问题,请联系本站处理。 举报投诉
  • 物联网
    +关注

    关注

    2939

    文章

    47325

    浏览量

    407987
  • FTP
    FTP
    +关注

    关注

    0

    文章

    118

    浏览量

    42030
  • 开发板
    +关注

    关注

    25

    文章

    6126

    浏览量

    113415
  • LuatOS
    +关注

    关注

    0

    文章

    134

    浏览量

    2575
收藏 人收藏
加入交流群
微信小助手二维码

扫码添加小助手

加入工程师交流群

    评论

    相关推荐
    热点推荐

    Air780EPM嵌入式开发LuatOS下的MQTT通信实践

    通过LuatOS脚本在Air780EPM开发板上实现MQTT通信,是物联网设备开发中高效且便捷的解决方案。 一、MQTT 协议详解   1.1 什么是 MQTT? MQTT(Messa
    的头像 发表于 09-30 16:11 1610次阅读
    <b class='flag-5'>Air780EPM</b><b class='flag-5'>嵌入式开发</b>:<b class='flag-5'>LuatOS</b>下的MQTT通信实践

    实战Air780EPM:构建4G共享网关,服务WiFi与有线设备!

    通过Air780EPM开发板,我们可以轻松实现4G网络作为数据出口,为周边的WiFi设备和以太网设备提供互联网共享,适用于移动办公、远程部署等场景。 一、多网融合概述   Air780EPM
    的头像 发表于 09-30 16:03 876次阅读
    <b class='flag-5'>实战</b><b class='flag-5'>Air780EPM</b>:构建4G共享网关,服务WiFi与有线设备!

    Air780EPM开发板NTP对时教程:LuatOS脚本开发入门指南

    通过简单的LuatOS脚本,Air780EPM即可实现NTP时间同步。本指南从零开始,带你掌握嵌入式设备联网校时的核心方法。 一、NTP通信概述 1.1 NTP 网络时间协议(英语:Network
    的头像 发表于 09-30 16:01 969次阅读
    <b class='flag-5'>Air780EPM</b><b class='flag-5'>开发板</b>NTP对时教程:<b class='flag-5'>LuatOS</b>脚本<b class='flag-5'>开发</b>入门指南

    LuatOS嵌入式开发实战Air780EPM与MQTT通信

     本教程聚焦于LuatOSAir780EPM开发板上的应用,演示如何通过脚本实现MQTT协议通信,助力物联网设备快速联网。 一、MQTT 协议详解   1.1 什么是 MQTT? MQTT
    的头像 发表于 09-29 18:10 290次阅读
    <b class='flag-5'>LuatOS</b><b class='flag-5'>嵌入式开发</b><b class='flag-5'>实战</b>:<b class='flag-5'>Air780EPM</b>与MQTT通信

    LuatOS Air780EPM 开发板 HTTP 教程:原理讲解与项目实操!

    本篇教程将系统介绍 LuatOS Air780EPM 在 HTTP 通信中的应用,从请求机制到响应解析,配合完整代码演示,让你轻松实现设备端与云端的数据交互。 一、HTTP 概述 1.1
    的头像 发表于 09-26 20:36 426次阅读
    <b class='flag-5'>LuatOS</b> <b class='flag-5'>Air780EPM</b> <b class='flag-5'>开发板</b> HTTP 教程:原理讲解与项目实操!

    Air8101多网融合战略升级:Air780EPM模块助力4G联网落地

    应用迈向新高度。 本文将分享Air8101核心通过外挂Air780EPM整机开发板,实现4G联网的功能示例。   一、硬件准备工作   1
    的头像 发表于 06-23 16:53 373次阅读
    <b class='flag-5'>Air</b>8101多网融合战略升级:<b class='flag-5'>Air780EPM</b>模块助力4G联网落地

    Air780EPM — ADC硬件电路设计:场景化优化与实践!

    Air780EPM的ADC精度怎么样,想节约一颗外挂ADC…   今天也跟大家一起分享下相关内容。在设计ADC硬件电路之前,请务必先查看LuatOS二次开发ADC相关库函数的描述。 最新ADC库函数
    的头像 发表于 06-11 14:40 508次阅读
    <b class='flag-5'>Air780EPM</b> — ADC硬件电路设计:场景化优化与实践!

    解锁Air780EPM:N种GPIO操控LED的实战技巧!

    在物联网项目中,灵活使用Air780EPM的GPIO控制LED至关重要。本文将展示实现方式,涵盖硬件配置与软件编程,满足不同场景需求。 今天特别分享基于Air780EPM的GPIO控制LED实现方案
    的头像 发表于 05-28 16:56 553次阅读
    解锁<b class='flag-5'>Air780EPM</b>:N种GPIO操控LED的<b class='flag-5'>实战</b>技巧!

    如何解决Air780EPM开发中的调试难题?深度解析高效调试方法

    Air780EPM项目开发中,调试效率往往直接影响进度。面对代码报错、逻辑漏洞等常见痛点,开发者亟需一套系统化的方法论。本文将揭秘实战中验证的调试技巧,助您快速定位问题并优化代码流程
    的头像 发表于 05-17 10:46 551次阅读
    如何解决<b class='flag-5'>Air780EPM</b><b class='flag-5'>开发</b>中的调试难题?深度<b class='flag-5'>解析</b>高效调试方法

    深度解析Air780EPM模组:LuatOS下CAN总线通信的完整方案!

    本文聚焦Air780EPM的CAN通信能力,结合LuatOS实时操作系统,从底层驱动到应用层协议,详细拆解如何实现工业级CAN总线数据传输,助力开发者快速落地项目。 最新资料详见: https
    的头像 发表于 05-06 14:22 689次阅读
    深度<b class='flag-5'>解析</b><b class='flag-5'>Air780EPM</b>模组:<b class='flag-5'>LuatOS</b>下CAN总线通信的完整方案!

    快速开发实战——4路低功耗ADC接口,Air780EPM二次开发必看!

    Air780EPM 模组,内置4MB大内存RAM,支持LCD、摄像头、Modbus、以太网、CAN;具备更强大的二次开发资源,更完善的外设能力,也更适于工业场景。   最新开发资料详见
    的头像 发表于 04-01 14:56 529次阅读
    快速<b class='flag-5'>开发</b><b class='flag-5'>实战</b>——4路低功耗ADC接口,<b class='flag-5'>Air780EPM</b>二次<b class='flag-5'>开发</b>必看!

    血泪教训总结:Air780EPMLuatOS二次开发——OneWire协议调试注意事项

    在物联网设备开发中,精准且稳定的数据传输是构建智能系统的核心。通过本文,开发者不仅能掌握规避常见陷阱的方法,还能学习如何利用Air780EPM的硬件特性与LuatOS的灵活API设计,
    的头像 发表于 03-20 17:52 910次阅读
    血泪教训总结:<b class='flag-5'>Air780EPM</b>的<b class='flag-5'>LuatOS</b>二次<b class='flag-5'>开发</b>——OneWire协议调试注意事项

    新手必看!4G模组Air780EPM——GPIO的设计说明

    Air780EPM的GPIO设计需兼顾硬件可靠性与软件灵活性,开发者应基于具体应用场景权衡复用功能优先级,并遵循电源管理规范以延长设备生命周期。通过模块化配置与精细化调试,可最大化释放模组性能潜力
    的头像 发表于 03-20 17:48 605次阅读
    新手必看!4G模组<b class='flag-5'>Air780EPM</b>——GPIO的设计说明

    手把手教你!4G模组Air780EPM——GPIO的设计说明

      开发方式 :Air780EPM 仅支持 LuatOS 软件开发方式,不支持 AT 指令开发方式。若使用 AT 指令
    的头像 发表于 03-17 16:07 843次阅读
    手把手教你!4G模组<b class='flag-5'>Air780EPM</b>——GPIO的设计说明

    Air780EPM 模块串口电路设计硬件指导

    串口作为Air780EPM模块的核心通信接口,承担着设备控制、数据传输及外设交互等关键功能,在物联网终端、智能设备、工业自动化等场景中不可或缺。 一、概述   串口作为 Air780EPM 模块最最
    的头像 发表于 03-07 17:56 598次阅读
    <b class='flag-5'>Air780EPM</b> 模块串口电路设计硬件指导