本文要讲的是低功耗4G模组AT指令的FTP指南,我以常用的Air780E模组为例,供大家参考。
一、 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;如果采用被动模式,则具体最终使用哪个端口要服务器端和客户端协商决定。模块FTP默认是被动模式,不支持主动模式,无法设置主动模式,公网下要想模块正常连接服务器,服务器肯定不能设置为主动模式,否则哪家模块都不能用。
二、 本教程实现的功能概述
本文教你4G模组使用AT命令连接FTP服务器,实现模组和服务器之间数据的传输!
本教程实现的功能定义是:
1、准备一个公网 FTP 服务器;
2、4G 模组插卡开机,把模组作为 FTP 客户端去连接服务器;
3、分步演示 FTP 控制命令;这些命令包括列出目录内容 改变工作目录 上传文件 下载文件 删除文件等。
4、演示完毕关闭连接
三、 准备硬件环境
在正式介绍本功能示例之前,需要先准备好以下硬件环境。
3.1 Air780E 开发板
使用的开发板是Air780E核心板,如下图所示:
此核心板的详细使用说明参考:
https://docs.openluat.com/air780e/product/
Air780E产品手册 公用产品资料 - 模组资料中心 (openluat.com)中的 << 开发板 Core_Air780E 使用说明 VX.X.X.pdf>>,写这篇文章时最新版本的使用说明为:20240419155721583_开发板Core_Air780E使用说明V1.0.5.pdf (vue2.cn);核心板使用过程中遇到任何问题,可以直接参考这份使用说明 pdf 文档。
3.2 SIM 卡
准备一张可以上网的SIM卡,可以是物联网卡,也可以是自己的手机卡;
注意:SIM卡不能欠费,可以正常上网。
3.3 PC 电脑
准备一台电脑;注意:电脑有USB口,并且可以正常上网。
3.4 数据通信线
准备一根数据线,此数据线的作用是,连接Air780E开发板和PC电脑,通过AT命令完成业务逻辑的控制和交互;有两种数据线可以使用,二选一即可;第一种数据线是 USB 数据线(连接 Air780E 开板的一段是 Type-C 接口),一般来说这种数据线如下图所示:
普通的手机 USB 数据线一般都可以直接使用;
第二种数据线是 USB 转 TTL 串口线,一般来说这种数据线如下图所示:
在本教程中,使用的是第一种 USB 数据线。
3.5 组装硬件环境
按照 SIM 卡槽上的插入方向,插入 SIM 卡,注意不要插反!如下图所示,将 SIM 卡用力推入卡槽,听到咔嚓声音后即可。
USB 数据线,连接电脑和 Air780E 开发板,如下图所示:
四 、准备软件环境
在正式使用之前,需要安装装备好以下软件。
4.1 Luatools 工具
要想烧录 AT 固件到 4G 模组中,需要用到的调试工具:Luatools;
详细使用说明参考:
Luatools 工具使用说明:
https://docs.openluat.com/Luatools/
4.2 AT 固件
4G 模组中必须烧录正确的 AT 固件才能支持 AT 命令功能;
通过 Luatools 可以烧录 AT 固件;
有两种方式可以获取到 Air780E 模组的最新 AT 固件,二选一即可;
第一种方式是通过 Luatools 获取,如下图所示,可以直接选中最新版本的 AT 固件:
第二种方式是访问:Air780E 固件版本 ,找到最新版本的固件即可。
4.3 FTP 测试服务器
为了方便测试,合宙提供了免费的不可商用的 FTP 测试服务器;
4.4 PC 端串口工具
在量产的项目硬件设计中,一般都是由主控 MCU 通过 UART 给 4G 模组发送命令实现具体的业务逻辑;
在本教程中,为了测试方便,没有使用主控 MCU;
而是使用了 PC 电脑上的一个串口工具 SSCOM 给 4G 模组发送命令来实现演示功能。
五 、FTP 相关 AT 指令
点击链接查看4G 模组 FTP 指令
六 、使用方法举例
6.1 确认开发板正常开机并联网正常
本次教程所用固件版本是 v1169,通过 luatools 烧录过固件后可以通过打印来判断设备情况,具体参考下图:
6.2 FTP GET 请求使用流程举例
下面演示780E 4G 模组通过 at 指令去 ftp 服务器下载文件的流程:
6.3 FTP PUT 请求使用流程举例
首先需要服务器上有需要写入数据的文件,这里我们通过工具在服务器上创建一个空白 test.txt 的文件
然后通过780E 4G 模组上传两次数据到新建的空白文件里,下面演示 4G 模组的 AT 指令流程:
然后验证是否 PUT 成功,通过工具连接 ftp 服务器,找到对应的文件下载下来,打开查看文件里的内容和上报的是一样的,
6.4 FTP 断点续传流程举例
本例使用上面 PUT 流程上传的文件来演示断点续传
七 、APN 设置与专网卡
用户根据自己使用的网络类型来区分,sim 卡可以分为公网卡和专网卡两种;对于如何判断自己手里的 sim 卡是公网卡还是专网卡可以通过下面两种办法区分:
咨询 sim 卡供应商;
如果有 apn 账号 或者有密码 或者有加密类型,则可以认为是专网卡。
对于公网卡和专网卡设置和查询有不同的指令,780E 4G 模组设置和查询 APN 相关指令可以参考下图:
APN 及专网卡常见问题
模块如何设置APN
1、 如果是公网SIM卡,不需要用户主动设置APN,软件自动去网络端查询APN进行设置。
2、如果是专网SIM卡,首先咨询SIM卡提供商APN参数,然后通过AT+CPNETAPN=mode,“apnname”,“user”,“pwd”,authmoded进行专网卡的参数设置。
专网卡连接服务器失败
1、有的专网卡没设置APN的情况下也能激活PDP,但是不能连专网卡指定的服务器,或者开机后模块没自动激活PDP,这个时候参考1,检查APN参数是否设置正确。
2、如果有其他厂家的模块,对比测试下是否连接正常。
3、如果无法百分百保证服务器配置没问题,最好在服务器端用wireshark抓包,或者在服务器上安装一个第三方工具,开启一个服务器端口来对比测试。
4、用定向Ip的物联网卡,需要把域名或IP加入白名单才能使用。
专网卡访问白名单 用定向 IP 的物联网卡,需要把域名或 IP 加入白名单才能使用,下面列出模块会访问的域名或 IP 服务器。
八 、总结
本文全面地探讨了4G模组通过 AT 指令实现与 FTP 服务器交互的技术细节。如何通过AT指令完成文件的 GET(下载) PUT(上传)操作,以及实现关键的断点续传功能。这些功能对于提高数据传输的效率和可靠性至关重要,尤其是在网络不稳定或大数据量传输的场景中。文章通过实例展示了具体的操作步骤,为读者提供了宝贵的实践指导。总体而言,本文不仅加深了对 FTP 协议和 4G 模组应用的理解,也为开发者在类似项目中实现高效文件传输提供了实用的技术参考和解决方案。
九、 常见问题
关于不支持主动模式:
模块ftp默认是被动模式,不支持主动模式,无法设置主动模式,公网下要想模块正常连接服务器,服务器肯定不能设置为主动模式,否则哪家模块都不能用。
发送带 0x0d 0x0a 这些数据会丢失
需要通过AT+FTPTYPE="I"设置为二进制方式传输文件,否则传输过程中会丢弃换行符。
分享完毕,欢迎关注