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

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

3天内不再提示

盘点Air780E的FTP应用,你了解吗?

青山老竹农 来源:jf_82863998 作者:jf_82863998 2024-10-29 13:45 次阅读
加入交流群
微信小助手二维码

扫码添加小助手

加入工程师交流群

一、FTP 概述

FTP(File Transfer Protocol,文件传输协议) 是 TCP/IP 协议组中的协议之一。

FTP协议包括两个组成部分,其一为FTP服务器,其二为FTP客户端。

其中FTP服务器用来存储文件,用户可以使用FTP客户端通过FTP协议访问位于 FTP 服务器上的资源。在开发网站的时候,通常利用FTP协议把网页或程序传到Web服务器上。此外,由于FTP传输效率非常高,在网络上传输大的文件时,一般也采用该协议。

默认情况下FTP协议使用TCP端口中的20和21这两个端口,其中20用于传输数据,21用于传输控制信息。但是,是否使用20作为传输数据的端口与FTP使用的传输模式有关,如果采用主动模式,那么数据传输端口就是20;如果采用被动模式,则具体最终使用哪个端口要服务器端和客户端协商决定。

二、演示功能概述

本文教你合宙4G模组使用LuatOS开发4G通信中FTP网络协议的应用。

本教程实现的功能定义是:

使用 Air780E核心板下载Air780的LuatOS 示例代码中ftp的例程进行验证,例程流程为:

● 登录FTP服务器

● 用 ftp.command 操作 ftp 服务器目录

● ftp.pull 下载文件

● ftp.push 上传文件

● FTP 客户端关闭

三、硬件环境

3.1 Air780E核心板

此核心板的详细使用说明参考:Air780E 产品手册 中的 << 开发板 Core_Air780E 使用说明 VX.X.X.pdf>>,写这篇文章时最新版本的使用说明为:开发板 Core_Air780E 使用说明 V1.0.5.pdf ;核心板使用过程中遇到任何问题,可以直接参考这份使用说明 pdf 文档。

3.2 PC电脑

WINDOWS 系统,其他暂无特别要求;

3.3 SIM

中国大陆环境下,可以上网的sim卡,一般来说,使用移动、电信、联通的物联网卡或者手机卡都行;

3.4 数据通信线

USB 数据线,暂无特别要求;

四、软件环境

4.1 Luatools工具

要想烧录LuatOS固件到4G模组中,需要用到合宙的强大的调试工具:Luatools

详细使用说明参考:

Luatools工具使用说明:

https://docs.openluat.com/Luatools/

Luatools工具集具备以下几大核心功能:

  • 一键获取最新固件:自动连接合宙服务器,轻松下载最新的合宙模组固件。
  • 固件与脚本烧录:便捷地将固件及脚本文件烧录至目标模组中。
  • 串口日志管理:实时查看模组通过串口输出的日志信息,并支持保存功能。
  • 串口调试助手:提供简洁的串口调试界面,满足基本的串口通信测试需求。

Luatools下载之后, 无需安装, 解压到你的硬盘,点击 Luatools_v3.exe 运行,出现如下界面,就代表 Luatools 安装成功了.

4.2 准备需要烧录的代码

首先要说明一点:脚本代码, 要和固件的 soc 文件一起烧录。

4.2.1 烧录的底层固件文件

底层 core 下载地址:LuatOS 固件版本下载地址

图片

Air780E的底层固件在Luatools解压后目录的:

LuatOS-SoC_V1112_EC618_FULL.soc

图片

4.2.2 烧录的脚本代码

首先要下载Air780的LuatOS示例代码到一个合适的项目目录。

示例代码网站:

https://gitee.com/openLuat/LuatOS-Air780E

下载流程参考下图:

图片

图片

下载的文件解压,找到 LuatOS-Air780E-masterdemoftpmain.lua,如图:

图片

4.3 烧录步骤

4.3.1 正确连接电脑和4G模组电路板

使用带有数据通信功能的数据线,不要使用仅有充电功能的数据线;

4.3.2 识别4G模组的 boot 引脚

在下载之前,要用模组的 boot 引脚触发下载, 也就是说,要把4G模组的 boot 引脚拉到 1.8v,或者直接把 boot 引脚和 VDD_EXT 引脚相连。我们要在按下BOOT 按键时让模块开机,就可以进入下载模式了。

具体到Air780E开发板:

1、当我们模块没开机时,按着 BOOT 键然后长按 PWR 开机。

2、当我们模块开机时,按着 BOOT 键然后点按重启键即可。

图片

4.3.3 识别电脑的正确端口

判断是否进入 BOOT 模式:模块上电,此时在电脑的设备管理器中,查看串口设备, 会出现一个端口表示进入了 boot 下载模式,如下图所示:

图片

当设备管理器出现了 3 个连续数字的 com 端口,并且每个数字都大于 4,这时候, 硬件连接上就绪状态,恭喜你,可以进行烧录了!

4.3.4 用 Luatools 工具烧录

  • 新建项目

首先,确保你的 Luatools 的版本,大于等于 3.0.6 版本的。

在 Luatools 的左上角上有版本显示的,如图所示:

图片

Luatools 版本没问题的话, 就点击 LuaTOols 右上角的“项目管理测试”按钮,如下图所示:

图片

这时会弹出项目管理和烧录管理的对话框,可以新建一个项目,如下图:

图片

  • 开始烧录

选择 780E 板子对应的底层 core 和刚改的 main.lua 脚本文件。下载到板子中。

图片

点击下载后,我们需要进入 boot 模式才能正常下载。

图片

如果没进入 boot 模式会出现下图情况:

图片

当我们模块没开机时,按着 BOOT 键然后长按 PWR 开机,进入下载。

当我们模块开机时,按着 BOOT 键然后点按重启键即可。可以进入下载,如图:

图片

图片

五、API 说明

5.1 ftp.pull(local_name,remote_name)

FTP 文件下载

参数

传入值类型解释
stringlocal_name 本地文件
stringremote_name 服务器文件

返回值

返回值类型解释
bool/string成功返回 true 失败返回 string

例子

ftp.pull("/1222.txt","/1222.txt").wait()

5.2 ftp.push(local_name,remote_name)

FTP 文件上传

参数

传入值类型解释
stringlocal_name 本地文件
stringremote_name 服务器文件

返回值

返回值类型解释
bool/string成功返回 true 失败返回 string

例子

ftp.push("/1222.txt","/1222.txt").wait()

5.3 ftp.login(adapter,ip_addr,port,username,password)

FTP 客户端

参数

传入值类型解释
int适配器序号, 只能是:socket.ETH0, socket.STA, socket.AP如果不填,会选择平台自带的方式,然后是最后一个注册的适配器
stringip_addr 地址
stringport 端口,默认 21
stringusername 用户名
stringpassword 密码
bool/table是否为 ssl 加密连接,默认不加密,true 为无证书最简单的加密,table 为有证书的加密server_cert 服务器 ca 证书数据client_cert 客户端 ca 证书数据client_key 客户端私钥加密数据client_password 客户端私钥口令数据

返回值

返回值类型解释
bool/string成功返回 true 失败返回 string

例子

ftp_login = ftp.login(nil,"xxx")

5.4 ftp.command(cmd)

FTP 命令

参数

传入值类型解释
stringcmd 命令 目前支持:NOOP SYST TYPE PWD MKDCWD CDUP RMD DELE LIST

返回值

返回值类型解释
string成功返回 true 失败返回 string

例子

// 空操作,防止连接断掉

print(ftp.command("NOOP").wait())

// 报告远程系统的操作系统类型

print(ftp.command("SYST").wait())

// 指定文件类型

print(ftp.command("TYPE I").wait())

// 显示当前工作目录名

print(ftp.command("PWD").wait())

// 创建目录

print(ftp.command("MKD QWER").wait())

// 改变当前工作目录

print(ftp.command("CWD /QWER").wait())

// 返回上一层目录

print(ftp.command("CDUP").wait())

// 删除目录

print(ftp.command("RMD QWER").wait())

// 获取当前工作目录下的文件名列表

print(ftp.command("LIST").wait())

// 删除文件

print(ftp.command("DELE /1/12222.txt").wait())

5.5 ftp.close()

FTP 客户端关闭

参数

返回值

返回值类型解释
bool/string成功返回 true 失败返回 string

例子

ftp.close().wait()

5.6 ftp.debug(onoff)

配置是否打开 debug 信息

参数

传入值类型解释
boolean是否打开 debug 开关

返回值

返回值类型解释
nil无返回值

例子

六、实现流程

  • 打开 FTP 服务器。记录地址,端口号,用户名,密码等必要信息。
  • 改 DEMO,将登录中的地址,端口号,用户名,密码等必要信息修改为自己服务器的。
  • 登录 ftp 服务器(ftp 服务器用 vsftpd)
  • 等待登录成功
  • 执行自己的命令

6.1 例程

示例代码如下:

图片

七、总结

本文档主要介绍4G通信中FTP通信的应用。结合例程讲解了FTP基本原理,介绍了FTP主要API,旨在最简单的上手Air780的LuatOS的 FTP开发。

八、常见问题

8.1 ftp服务器用vsftpd

ftp的服务器用vsftpd。

8.2 关于不支持主动模式

模块 ftp 默认是被动模式,不支持主动模式,无法设置主动模式,公网下要想模块正常连接服务器,服务器肯定不能设置为主动模式,否则哪家模块都不能用。

​审核编辑 黄宇

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

    关注

    9

    文章

    2228

    浏览量

    67736
  • FTP
    FTP
    +关注

    关注

    0

    文章

    118

    浏览量

    42336
  • 核心板
    +关注

    关注

    6

    文章

    1422

    浏览量

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

扫码添加小助手

加入工程师交流群

    评论

    相关推荐
    热点推荐

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

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

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

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

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

    本文深入讲解Air780EPM模组在LuatOS环境下的FTP应用开发,涵盖AT指令配置、网络连接与文件传输流程,助你高效完成嵌入式通信项目。 一、什么是 FTP   1.1 基本概念 FTP
    的头像 发表于 09-29 15:37 636次阅读
    <b class='flag-5'>Air780</b>EPM开发板<b class='flag-5'>FTP</b>功能实战:LuatOS嵌入式开发全解析

    Air780EGH串口电路设计攻略:硬件工程师必知要点

    作为硬件工程师,设计Air780EGH的UART串口电路需关注多个技术维度。本文聚焦关键要点,涵盖主串口与扩展串口特性、电平兼容性处理、休眠唤醒配置及调试串口安全使用,助力打造高可靠性串口系统
    的头像 发表于 08-14 17:53 1002次阅读
    <b class='flag-5'>Air780</b>EGH串口电路设计攻略:硬件工程师必知要点

    Air780EGH串口通信优化:硬件电路设计核心要素剖析

    要充分发挥Air780EGH的串口通信效能,硬件电路设计必须精准把控核心要素。下面将深入分析UART接口的电平标准、流控信号配置、波特率适配及调试串口管理,为优化通信稳定性提供技术依据。 本文主要
    的头像 发表于 08-11 15:44 909次阅读
    <b class='flag-5'>Air780</b>EGH串口通信优化:硬件电路设计核心要素剖析

    Air780EGH开源代码来袭!定位功能快速入门指南

    欢迎探索Air780EGH开源生态!最新版本解锁定位功能源代码,无论是新手还是资深开发者,都能通过简洁的示例代码快速上手。从初始化配置到实时定位数据获取,一站式解决定位开发痛点。 下文将以
    的头像 发表于 07-29 16:13 955次阅读
    <b class='flag-5'>Air780</b>EGH开源代码来袭!定位功能快速入门指南

    揭秘Air780EGH定位功能:源码开放助力极速开发 !

    Air780EGH定位模块源代码全面开放!无需复杂前置知识,只需跟随本文教程,即可从零开始搭建定位系统。代码注释清晰,示例完整,助你短时间内掌握定位功能核心用法。 下文将以Air780EGH核心板为
    的头像 发表于 07-29 16:11 882次阅读
    揭秘<b class='flag-5'>Air780</b>EGH定位功能:源码开放助力极速开发 !

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

    在物联网通信技术持续迭代的背景下,Air8101通过战略级模块外挂——Air780EPM,正式迈入4G联网时代。多网融合架构的完善,使设备在复杂环境中仍能保持高速、稳定的数据传输性能,推动智能化
    的头像 发表于 06-23 16:53 706次阅读
    <b class='flag-5'>Air</b>8101多网融合战略升级:<b class='flag-5'>Air780</b>EPM模块助力4G联网落地

    优化的设计:Air780EPM场景化ADC硬件电路指南!

    提升ADC性能需从场景需求出发。本文针对Air780EPM在数据采集中的常见挑战,如噪声抑制、动态范围适配等,提供场景化的优化方案与电路设计建议,助力打造高性价比的硬件系统。 最近有工程师朋友问
    的头像 发表于 06-13 18:02 1058次阅读
    优化<b class='flag-5'>你</b>的设计:<b class='flag-5'>Air780</b>EPM场景化ADC硬件电路指南!

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

    不同应用场景对ADC电路的要求差异明显,Air780EPM的设计需针对性优化。本文通过实例解析电源滤波、信号隔离等关键技术,阐述如何根据具体场景需求打造高性能的硬件电路方案。 最近有工程师朋友问
    的头像 发表于 06-11 14:40 797次阅读
    <b class='flag-5'>Air780</b>EPM — ADC硬件电路设计:场景化优化与实践!

    Air780EPM应用开发:解锁GPIO与LED的N种交互模式

    今天特别分享探索Air780EPM中GPIO与LED的多样交互!本文介绍N种交互模式,包括脉冲控制、状态切换及多LED联动,为智能设备开发提供丰富技术选型。适用于智能照明、状态指示等物联网场景。 一
    的头像 发表于 05-29 14:31 896次阅读
    <b class='flag-5'>Air780</b>EPM应用开发:解锁GPIO与LED的N种交互模式

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

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

    揭秘Air780EPM开发陷阱:20个避坑指南与最佳解决方案

    :www.air780epm.cn 问题01: Air780EPM在PSM+模式下,dtimer定时器可以开几个?   答案: 同一时间只能有64个定时器的任务;如果要支持超过64个定时器任务,执行完就得释放,同时继续创建定时器任务,需要加延时(实测100ms延时没问题)
    的头像 发表于 05-21 16:04 937次阅读
    揭秘<b class='flag-5'>Air780</b>EPM开发陷阱:20个避坑指南与最佳解决方案

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

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

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

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