"); //-->
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 客户端关闭
WINDOWS 系统,其他暂无特别要求;
3.3 SIM卡中国大陆环境下,可以上网的sim卡,一般来说,使用移动、电信、联通的物联网卡或者手机卡都行;
3.4 数据通信线USB 数据线,暂无特别要求;
要想烧录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

首先要下载Air780的LuatOS示例代码到一个合适的项目目录。
示例代码网站:
https://gitee.com/openLuat/LuatOS-Air780E
下载流程参考下图:


下载的文件解压,找到 LuatOS-Air780E-master\demo\ftp\main.lua,如图:

使用带有数据通信功能的数据线,不要使用仅有充电功能的数据线;
4.3.2 识别4G模组的 boot 引脚在下载之前,要用模组的 boot 引脚触发下载, 也就是说,要把4G模组的 boot 引脚拉到 1.8v,或者直接把 boot 引脚和 VDD_EXT 引脚相连。我们要在按下BOOT 按键时让模块开机,就可以进入下载模式了。
具体到Air780E开发板:
1、当我们模块没开机时,按着 BOOT 键然后长按 PWR 开机。
2、当我们模块开机时,按着 BOOT 键然后点按重启键即可。

判断是否进入 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 键然后点按重启键即可。可以进入下载,如图:


FTP 文件下载
参数

返回值

例子
ftp_login = ftp.login(nil,"xxx")
FTP 命令
参数

返回值

例子
// 空操作,防止连接断掉
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())
FTP 文件下载
参数

返回值

例子
ftp.pull("/1222.txt","/1222.txt").wait()
FTP 文件上传
参数

返回值

例子
ftp.push("/1222.txt","/1222.txt").wait()
FTP 客户端关闭
参数
无
返回值

例子
ftp.close().wait()
配置是否打开 debug 信息
参数

返回值

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

本文档主要介绍4G通信中FTP通信的应用。结合例程讲解了FTP基本原理,介绍了FTP主要API,旨在最简单的上手Air780的LuatOS的 FTP开发。
模块 ftp 默认是被动模式,不支持主动模式,无法设置主动模式,公网下要想模块正常连接服务器,服务器肯定不能设置为主动模式,否则哪家模块都不能用。
8.2 ftp服务器用vsftpdftp的服务器用vsftpd。
专栏文章内容及配图由作者撰写发布,仅供工程师学习之用,如有侵权或者其他违规问题,请联系本站处理。 联系我们
相关推荐
纳米电力将nPZero集成电路推向超低功耗物联网的量产
以太网通讯模组PCB图
RFID中间件关键技术研究
芯科科技驱动和重塑智能门锁行业格局
物联网无线系统+Xilinx Zynq 开发板申请
Kwikset:超低功耗Wi-Fi解锁无缝体验
嵌入式系统的一些新理念
“智慧的地球”与“物联网”(转)
RFID技术在移动电子商务中的应用
嵌入式系统与物联网
SmartDV展示完整的边缘与连接IP解决方案,以高速和低功耗特性赋能移动、物联网和媒体处理设备创新
基于ANDROID4.X的智能电视电脑一体机的设计方案
ZedBoard开发板申请
意法半导体全新STM32C5系列,重新定义入门级微控制器性能与价值,赋能万千智能设备
基于K60的物联网数据采集器
ARM首席技术官谈物联网的过去、现在和未来
Taoglas 针对多无线天线系列的紧凑型物联网设计
TDK 发布 SensorStage 传感器评估平台,大幅加速 IMU 开发进程
智能家居系统
物联网与RFID芯片
智慧城市IPv6互联参考设计
基于K60的webserver图像监控系统
求物联网和嵌入式的大神指教
基于物联网的电池组均衡充电与监控系统
基于蓝牙的汽车物联网应用与开发
以太网通讯模组PCB图
边缘计算与人工智能(Edge AI)如何引领新一轮技术革命
物联网的输电高压线路智能驱鸟系统
以太网通讯模组源代码
被收购后的芯科实验室:物联网与人工智能的未来走向