Luat模块应用手册-指南-AT应用指南-FTP指令流程

1 概述

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

2 相关AT指令介绍

2.1 设置 FTP 控制端口:AT+FTPPORT

语法规则:

命令类型语法返回说明
设置命令AT+FTPPORT=OK正常返回
ERROR输入格式有误
查询命令AT+FTPPORT?+FTPPORT: OK
测试命令AT+FTPPORT=?OK

参数定义:

参数定义取值对取值的说明
FTP 控制端口号1~65535缺省值为 21

2.2 设置 FTP 主动或被动模式:AT+FTPMODE

语法规则:

命令类型语法返回说明
设置命令AT+FTPMODE=OK正常返回
ERROR输入格式有误
查询命令AT+FTPMODE?+FTPMODE: OK
测试命令AT+FTPMODE=?OK

参数定义:

参数定义取值对取值的说明
FTP 主动被动模式0主动模式(暂不支持)
1被动模式

2.3 设置 FTP 数据传输类型:AT+FTPTYPE

语法规则:

命令类型语法返回说明
设置命令AT+FTPTYPE=OK正常返回
ERROR输入格式有误
查询命令AT+FTPTYPE?+FTPTYPE: OK
测试命令AT+FTPTYPE=?OK

参数定义:

参数定义取值对取值的说明
FTP 数据传输类型“A”FTP ASCII 字符集
“I”FTP Binary 字符集

2.4 设置 FTP 输入类型:AT+FTPPUTOPT

语法规则:

命令类型语法返回说明
设置命令AT+FTPPUTOPT=OK正常返回
ERROR输入格式有误
查询命令AT+FTPPUTOPT?+FTPPUTOPT: OK
测试命令AT+FTPPUTOPT=?OK

参数定义:

参数定义取值对取值的说明
FTP 数据传输类型“APPE”添加文件
“STOU”存储唯一的文件
“STOR”存储文件

2.5 设置 FTP 承载标识:AT+FTPCID

语法规则:

命令类型语法返回说明
设置命令AT+FTPCID=OK正常返回
ERROR输入格式有误
查询命令AT+FTPCID?+FTPCID: OK
测试命令AT+FTPCID=?OK

参数定义:

参数定义取值对取值的说明
FTP 承载标识1~3同+SAPBR 中定义。缺省值为 0。

2.6 设置 FTP 下载续传:AT+FTPREST

语法规则:

命令类型语法返回说明
设置命令AT+FTPREST=OK正常返回
ERROR输入格式有误
查询命令AT+FTPREST?+FTPREST: OK
测试命令AT+FTPREST=?OK

参数定义:

参数定义取值对取值的说明
要续传的断点

2.7 设置 FTP 服务器地址:AT+FTPSERV

语法规则:

命令类型语法返回说明
设置命令AT+FTPSERV=OK正常返回
ERROR输入格式有误
查询命令AT+FTPSERV?+FTPSERV: OK
测试命令AT+FTPSERV=?OK

参数定义:

参数定义取值对取值的说明
FTP 服务器地址, IP 或域名32-bit 十 进 制 数 , 用 . 分 开 , 形 式 如 : xxx.xxx.xxx.xxx。 如果是 DNS,则为长度不超过 49 的 ASCII 字符串。

2.8 设置 FTP 用户名称:AT+FTPUN

语法规则:

命令类型语法返回说明
设置命令AT+FTPUN=OK正常返回
ERROR输入格式有误
查询命令AT+FTPUN?+FTPUN: OK
测试命令AT+FTPUN=?OK

参数定义:

参数定义取值对取值的说明
FTP 用户名为长度不超过 49 的 ASCII 字符串。

2.9 设置 FTP 密码:AT+FTPPW

语法规则:

命令类型语法返回说明
设置命令AT+FTPPW=OK正常返回
ERROR输入格式有误
查询命令AT+FTPPW?+FTPPW: OK
测试命令AT+FTPPW=?OK

参数定义:

参数定义取值对取值的说明
FTP 密码为长度不超过 49 的 ASCII 字符串。

2.10 设置 FTP 下载文件名称:AT+FTPGETNAME

设置服务器端目标文件的名称。

语法规则:

命令类型语法返回说明
设置命令AT+FTPGETNAME=OK正常返回
ERROR输入格式有误
查询命令AT+FTPGETNAME?+FTPGETNAME: OK
测试命令AT+FTPGETNAME=?OK

参数定义:

参数定义取值对取值的说明
FTP 下载文件名称为长度不超过 99 的 ASCII 字符串。

2.11 设置 FTP 下载文件路径:AT+FTPGETPATH

本命令是设置目标文件在服务器端的路径。

语法规则:

命令类型语法返回说明
设置命令AT+FTPGETPATH=OK正常返回
ERROR输入格式有误
查询命令AT+FTPGETPATH?+FTPGETPATH: OK
测试命令AT+FTPGETPATH=?OK

参数定义:

参数定义取值对取值的说明
FTP 下载文件路径长度不超过 255 的 ASCII 字符串。

2.12 设置 FTP 上传文件名称:AT+FTPPUTNAME

设置将文件上传到服务器后的保存名称。

语法规则:

命令类型语法返回说明
设置命令AT+FTPPUTNAME=OK正常返回
ERROR输入格式有误
查询命令AT+FTPPUTNAME?+FTPPUTNAME: OK
测试命令AT+FTPPUTNAME=?OK

参数定义:

参数定义取值对取值的说明
FTP 上传文件名称长度不超过 99 的 ASCII 字符串。

2.13 设置 FTP 上传文件路径:AT+FTPPUTPATH

设置将文件上传到服务器后的保存目录。

语法规则:

命令类型语法返回说明
设置命令AT+FTPPUTPATH=OK正常返回
ERROR输入格式有误
查询命令AT+FTPPUTPATH?+FTPPUTPATH: OK
测试命令AT+FTPPUTPATH=?OK

参数定义:

参数定义取值对取值的说明
FTP 上传文件路径长度不超过 99 的 ASCII 字符串。

2.14 远程服务器上创建文件目录:AT+FTPMKD

语法规则:

命令类型语法返回说明
执行命令AT+FTPMKDOK +FTPMKD: 1,0创建成功
OK +FTPMKD: 1,创建失败
+CME ERROR: 如果是命令错误
测试命令AT+FTPMKD=?OK
注意事项执行命令创建的文件目录由命令AT+FTPGETPATH定义

参数定义:

参数定义取值对取值的说明
错误码与 AT+FTPGET 命令的定义相同

2.15 远程服务器上删除文件目录:AT+FTPRMD

语法规则:

命令类型语法返回说明
执行命令AT+FTPRMDOK +FTPRMD: 1,0删除成功
OK +FTPRMD: 1,删除失败
+CME ERROR: 如果是命令错误
测试命令AT+FTPRMD=?OK
注意事项执行命令删除的文件目录由命令AT+FTPGETPATH定义

参数定义:

参数定义取值对取值的说明
错误码与 AT+FTPGET 命令的定义相同

2.16 下载文件:AT+FTPGET

语法规则:

命令类型语法返回说明
设置命令AT+FTPGET=[,]OK输入AT+FTPGET=1 的返回
+FTPGET:2, ………数据………… OK输入: AT+FTPGET=2, 的返回
URC 上报+FTPGET:1,1输入AT+FTPGET=1后,有此上报,表示有数据了,第一个参数 1表示为1
+FTPGET:1,输入AT+FTPGET=1后,有此上报,表示FTP下载失败,第一个参数1表示为1
+FTPGET:1,0表示数据传输结束,第一个参数1表示为1
测试命令AT+FTPGET=?OK

参数定义:

参数定义取值对取值的说明
工作模式1打开 FTP 会话
2读入 FTP 下载数据
请求读入的数据长度1~1460
确认读入的数据长度1~1460可能小于。0 表示没有数据可以读入。
错误码61网络错误 net error
62DNS 错误 DNS error
63连接错误 connect error
64超时 timeout
65服务器错误 server error
66操作禁止operation not allowed
70应答错误 reply error
71用户错误 user error
72口令错误 password error
73类型错误type error
74保持错误 rest error
75被动错误 passive error
76主动错误active error
77操作错误 operate error
78上传错误 upload error
79下载错误 download error
80~84FTP SSL 连接错误
85文件错误
86主动退出

2.17 上传文件:AT+FTPPUT

语法规则:

命令类型语法返回说明
设置命令AT+FTPPUT=[,]OK输入AT+FTPPUT=1的返回
+FTPPUT:2, ……… //input data here OK输入: AT+FTPPUT=2, 的返回
OK +FTPPUT: 1,0输入: AT+FTPPUT=2,0 的返回
URC 上报+FTPPUT:1,1,输入AT+FTPPUT=1后,有此上报,表示可以上传数据了此时通过输入AT+FTPPUT=2,上传数据第一个参数1表示为1
+FTPPUT:1,0表示数据传输会话结束。第一个参数1表示为1
+FTPPUT:1,如果=1,而且FTP会话失败。错误码定义请参考AT+FTPGET 错误码定义
测试命令AT+FTPPUT=?OK

参数定义:

参数定义取值对取值的说明
FTP 上传工作模式1打开 FTP 会话
2写 FTP 上传数据
请求上传的数据长度0-
确认可以上传的数据长度
单次可以上传的最大的长度,取决于网络状态

2.18 下载文件(扩展):AT+FTPEXTGET

语法规则:

命令类型语法返回说明
设置命令AT+FTPEXTGET=OK当=0或1
AT+FTPEXTGET=,+FTPEXTGET:2, OK当=2
AT+FTPEXTGET=,,+FTPEXTGET:3, …… //这里是输出到串口的数据 OK当=3
查询命令AT+FTPEXTGET?+FTPEXTGET: [,] OK
测试命令AT+FTPEXTGET=?OK
URC上报+FTPEXTGET:1,0=1且FTPEXTGET结束,会有如此上报
+FTPEXTGET:1,=1且FTPEXTGET出错,会有如此上报。错误码定义请参考AT+FTPGET 错误码定义
+FTPEXTGET:2,=2
+FTPEXTGET:3,=3
注意事项1) 当FTPEXTPUT =1时,不可使用本命令 2) 如果文件大小()<300KB,可以使用这个命令;如果文件大小()>=300KB,请使用缺省的FTPGET method (AT+FTPEXTGET=0) 3) 本命令的使用方法请参考本章最后一部分:使用方法举例

参数定义:

参数定义取值对取值的说明
工作模式0使用缺省的FTPGET方法
1使用扩展的FTPGET方法
2保存下载的数据到文件中
3输出下载的数据到串口
文件名字符串型,最长64个字符
保存到文件的所有数据长度,用于mode 2<302512单位:字节
输出到串口的数据长度,用于mode 3<302512单位:字节
读取文件数据的起始位置,用于mode 3
读取长度,用于mode 3单位:字节
FTPEXTGET的状态0不在FTPEXTGET过程中
1处于FTPEXTGET过程
错误码与AT+FTPGET命令的定义相同

2.19 上传文件(扩展):AT+FTPEXTPUT

语法规则:

命令类型语法返回说明
设置命令AT+FTPEXTPUT=[,,,]OK当=0或1
+FTPEXTPUT: , …… //这里从串口输入数据 OK当=2
测试命令AT+FTPEXTPUT=?OK
注意事项本命令的使用方法请参考本章最后一部分:使用方法举例

参数定义:

参数定义取值对取值的说明
工作模式0使用缺省的FTPPUT方法
1使用扩展的FTPPUT方法
2将数据PUT到RAM
每次PUT的起始位置0-300K单位:byte
每次PUT的数据长度0-300K单位:byte
串口数据传输的超时时间1000-1000000单位:ms

2.20 下载文件并保存到文件系统中:AT+FTPGETTOFS

语法规则:

命令类型语法返回
设置命令AT+FTPGETTOFS=,[,,OK成功
ERROR失败
查询命令AT+FTPGETTOFS?+FTPGETTOFS: [,,] OK
URC上报+FTPGETTOFS:0,如果下载成功
+FTPGETTOFS:如果下载失败
测试命令AT+FTPGETTOFS=?OK
注意事项重连以后会断点续传 如果两次下载都用同一个文件名,上次下载的内容会被覆盖

参数定义:

参数定义取值对取值的说明
工作模式0不在FTPGETTOFS过程
1处于FTPGETTOFS过程
文件保存的位置,是ROM还是SD卡。Disk1或Disk2可被AT+FSDRIVE获取0保存于ROM,文件夹为"Disk1:\user\ftp"
1保存于SD卡,文件夹为"Disk2:\ftp"
文件名字符串型,最长64个字符
自动重连次数0-255缺省值:3
等多少秒开始自动重连0-60单位:秒,缺省值:5
当前从FTP服务器GET多少数据
当前保存到文件系统多少数据
总共保存到文件系统多少数据
错误码与AT+FTPGET命令的定义相同

2.21 从文件系统上传文件到服务器:AT+FTPPUTFRMFS

语法规则:

命令类型语法返回
执行命令AT+FTPPUTFRMFS=[,,OK
查询命令AT+FTPPUTFRMFS?+FTPPUTFRMFS: [,] OK
测试命令AT+FTPPUTFRMFS=?OK
URC上报+FTPPUTFRMFS:0,当上传结束,有此上报
+FTPPUTFRMFS:当上传出错,有此上报。 定义请参考AT+FTPGET命令的定义
注意事项自动重连后从断点开始续传

参数定义:

参数定义取值对取值的说明
文件名字符串型,由数字和字母组成,最长128字节
自动重连次数0-255缺省值:3
等多少秒开始自动重连0-60单位:秒,缺省值:5
FTP上传状态0不在上传状态
1处于上传状态
当前从文件系统上传了多少数据单位:字节
从文件系统共上传了多少数据单位:字节

2.22 从文件系统加载到RAM中并用FTPPUT上传:AT+FTPFILEPUT

语法规则:

命令类型语法返回
设置命令AT+FTPFILEPUT=[,]OK
测试命令AT+FTPFILEPUT=?OK
注意事项当FTPEXTPUT命令=1时,本命令不可用

2.23 获取远程服务器上文件目录:AT+FTPLIST

语法规则:

命令类型语法返回
执行命令AT+FTPLIST=[,]如果=1,则命令格式为: AT+FTPLIST=1 返回值为: OK或 +CME ERROR:
如果=2,则命令格式为: AT+FTPLIST=2, 返回值为: +FTPLIST:2, ….数据… OK
测试命令AT+FTPLIST=?OK
URC上报输入AT+FTPLIST=1后, 如果是一个成功的FTP会话,后续会有如下的URC上报: +FTPLIST:1,1 如果是FTP数据传输结束,后续会有如下的URC上报: +FTPLIST:1,0 如果FTP会话失败,后续会有如下的URC上报: +FTPLIST:1,

参数定义:

参数定义取值对取值的说明
工作模式1打开FTP 获取文件目录会话
2读取FTP 获取文件目录的数据
请求的数据的长度1~1460
实际的数据长度1~1460
同+FTPGET中定义

2.24 获取远程服务器上文件大小:AT+FTPSIZE

语法规则:

命令类型语法返回说明
执行命令AT+FTPSIZEOK +FTPSIZE: 1,0,获取文件大小成功
OK +FTPSIZE: 1,,0获取文件大小失败
+CME ERROR: 如果是命令错误
测试命令AT+FTPSIZE=?OK
注意事项文件由命令AT+FTPGETNAME和AT+FTPGETPATH指定

参数定义:

参数定义取值对取值的说明
文件大小单位:字节
错误码与AT+FTPGET命令的定义相同

2.25 获取FTP状态:AT+FTPSTATE

语法规则:

命令类型语法返回
执行命令AT+FTPSTATE+FTPSTATE: OK
测试命令AT+FTPSTATE=?OK

参数定义:

参数定义取值对取值的说明
工作状态0Idle
1FTP会话进行中,包括FTPGET、FTPPUT、FTPDELE

2.26 保存FTP应用上下文:AT+FTPSCONT

语法规则:

命令类型语法返回说明
查询命令AT+FTPSCONT?+FTPSCONT: +FTPSERV: +FTPPORT: +FTPUN: +FTPPW: +FTPCID: +FTPMODE: +FTPTYPE: +FTPPUTOPT: +FTPREST: +FTPGETNAME: +FTPGETPATH: +FTPPUTNAME: +FTPPUTPATH: +FTPTIMEOUT: OK
执行命令AT+FTPSCONTOK将FTP上下文保存,等模块重启后,将自动载入上下文参数并生效

2.27 删除服务器上指定的文件:AT+FTPDELE

语法规则:

命令类型语法返回
执行命令AT+FTPDELEOK
测试命令AT+FTPDELE=?OK
URC上报+FTPDELE:1,0表示删除成功。第一个参数1表示FTP会话打开
+FTPDELE:1,表示FTP文件删除失败。错误码定义请参考AT+FTPGET 错误码定义
注意事项文件由命令AT+FTPGETNAME和AT+FTPGETPATH指定

2.28 退出当前FTP会话:AT+FTPQUIT

语法规则:

命令类型语法返回说明
设置命令AT+FTPQUITOK成功
ERROR失败
测试命令AT+FTPQUIT=?OK

3 AT指令示例

http://doc.openluat.com/article/740/0

4 相关资料以及购买链接

《AT指令手册》

相关开发板购买链接
Air724UG开发板
Air724 开发板使用说明

5 常见问题

服务器搭建教程

可参考

http://doc.openluat.com/article/470/0

  • 0
    点赞
  • 3
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值