跳转至

Air724UG模块AT指令手册

AT指令手册PDF版本

上海合宙Cat.1模组(展锐8910平台系列)AT命令手册V1.1.4.pdf

本页由《上海合宙Cat.1模组(展锐8910平台系列)AT命令手册V1.1.4》整理生成,按章节顺序收录全部 308 条 AT 命令;命令的语法、参数、取值与示例均照手册原文。

基本命令

查询制造商名称:AT+CGMI

语法规则:

命令类型 语法 返回
执行命令 AT+CGMI
OK

参数定义:

参数 定义 取值 对取值的说明
生产厂商ID 取值由模块厂商定义

举例:

命令(→)/返回(←) 实例 解释和说明
→ AT+CGMI 查询模块的生产厂商的ID
← +CGMI: "AirM2M"
OK
返回查询结果

查询模块型号:AT+CGMM

语法规则:

命令类型 语法 返回
执行命令 AT+CGMM
OK

参数定义:

参数 定义 取值 对取值的说明
模块的型号 由厂商而定

举例:

命令(→)/返回(←) 实例 解释和说明
→ AT+CGMM 查询模块型号
← +CGMM: "Air724UG"
OK
返回查询结果

查询模块版本信息:AT+CGMR

语法规则:

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

参数定义:

参数 定义 取值 对取值的说明
软件版本标识 由厂商定义

举例:

命令(→)/
返回(←)
实例 解释和说明
→ AT+CGMR 查询软件版本标识
← +CGMR:"AirM2M_Air724UG_V401874_LTE_AT"
OK
返回查询结果

查询IMEI号:AT+CGSN

语法规则:

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

参数定义:

参数 定义 取值 对取值的说明
产品序列号,即国际移动设备识别码 IMEI
(International Mobile Equipment Identification)
- 15位数字组成

举例:

命令(→)/返回(←) 实例 解释和说明
→ AT+CGSN 查询产品IMEI
← 359759002514931
OK
返回查询结果

查询SIM卡ICCID号码:AT+CCID(/ICCID)

语法规则:

命令类型 语法 返回
执行命令 AT+CCID
OK
AT+ICCID +ICCID:
OK

参数定义:

参数 定义 取值 对取值的说明
产品 ICCID 号 (Integrated circuit card
identity , 集成电路卡识别码)
一般由20位数字组成

举例:

命令(→)/
返回(←)
实例 解释和说明
→ AT+CCID 查询SIM卡ICCID号
← 89860117831003134201
OK
返回查询结果
→ AT+ICCID 查询SIM卡ICCID号
← +ICCID: 89860117831003134201
OK
返回查询结果

查询IMSI:AT+CIMI

语法规则:

命令类型 语法 返回和说明
执行命令 AT+CIMI
OK

参数定义:

参数 定义 取值 对取值的说明
国际移动台用户识别码(International
Mobile Subscriber Identity)
由15位数字组成

举例:

命令(→)/返回(←) 实例 解释和说明
→ AT+CIMI 查询IMSI号
← 460001841426414
OK
返回查询结果

查询产品信息:ATI

语法规则:

命令类型 语法 返回
执行命令 ATI
OK

参数定义:

参数 定义 取值 对取值的说明
模块相关信息(厂商,版本) - 由厂商定义

举例:

命令(→)/
返回(←)
实例 解释和说明
→ ATI 查询模块信息
← AirM2M_Air724UG_V401874_LTE_AT
OK
返回查询结果

查询模块FIRMWARE版本:AT+VER

语法规则:

命令类型 语法 返回
执行命令 AT+VER
OK
注意事项 返回结果与ATI一致

参数定义:

参数 定义 取值 对取值的说明
< firmware ver> 模块内部软件版本 - 由厂商定义

举例:

命令(→)/
返回(←)
实例 解释和说明
→ AT+VER 查询模块信息
← AirM2M_Air724UG_V670_LTE_AT
OK
返回查询结果

查询平台硬件版本:AT^HVER

语法规则:

命令类型 语法 返回
执行命令 AT^HVER ^HVER:
OK

举例:

命令(→)/ 实例 解释和说明
返回(←)
→ AT^HVER 查询模块平台硬件信息
← ^HVER: RDA8910
OK
返回查询结果

查询各种信息:AT*I

语法规则:

命令类型 语法 返回
设置命令 AT*I Manufacturer:
Model:
Revision:
ATVer:
HWVer:
Buildtime:
IMEI:
ICCID:
IMSI:
OK
参数 Definition 取值 解释
+CGMI 命令的返回
+CGMM命令的返回
+CGMR命令的返回
AT版本
硬件版本
版本固件的编译时间
同+CGSN命令的返回值
同+ICCID命令的返回值
国际移动台用户识别码(International
Mobile Subscriber Identity)
由15位数字组成

举例:

命令(→)/
返回(←)
实例 解释和说明
→ AT*I
← Manufacturer: AirM2M
Model: Air724UG
Revision: AirM2M_Air724UG_V670_LTE_AT
ATVer: 193
HWVer: A10
Buildtime: Jun 13 2020 17:55:20
IMEI: 866714043071637
ICCID: 898600650915F6049889
IMSI: 460001651547739
OK

重复上一条命令:A/

语法规则:

命令类型 语法 返回和说明
执行命令 A/ 响应:重复上一条命令,该命令行无需以终止符作为结尾
注意事项 这条命令后面必须加回车键才能正常使用

举例:

命令(→)/
返回(←)
实例 解释和说明
→ AT+CIMI 查询IMSI号
← 460001841426414
OK
返回IMSI号
→ A/ 重复上一条命令,即AT+CIMI
← 460001841426414
OK
返回IMSI号

写SN号命令:AT+WISN

AT+WISN是用来写用户 sn(serial number)到模块里的。

语法规则:

命令类型 语法 返回
设置命令 AT+WISN= OK
+CME ERROR:
查询命令 AT+WISN?
OK

参数定义:

参数 定义 取值 对取值的说明
special SN - 由用户定义,最长64位

举例:

命令(→)/ 实例 解释和说明
返回(←)
→ AT+WISN="1234567890" 写客户SN号
← OK
→ AT+WISN? 查询客户SN号
← 1234567890
OK

重启模块:AT+RESET

重启模块。

语法规则:

命令类型 语法 返回
执行命令 AT+RESET OK

重启模块并恢复出厂设置:AT+RSTSET

重启模块并恢复出厂设置。

语法规则:

命令类型 语法 返回
执行命令 AT+RSTSET OK

配置命令

选择TE字符集:AT+CSCS

设置命令通知DCE,DTE需要使用的字符集,以确保DCE和DTE在约定的字符集之间准确转换字符串。

语法规则:

命令类型 语法 返回
设置命令 AT+CSCS= OK
查询命令 AT+CSCS? +CSCS:
OK
测试命令 AT+CSCS=? +CSCS: (取值列表)
OK

参数定义:

参数 定义 取值 对取值的说明
字符集 "GSM" GSM 7 位默认字符 (3GPP TS 23.038)
"IRA" 国际参考符号集(ITU-T T.50)
"PCCP936"
"HEX"
"UCS2" 16 位通用多字节编码字符集

举例:

命令(→)/返回(←) 实例 解释和说明
→ AT+CSCS?
← +CSCS: IRA
OK
→ AT+CSCS=? 查询字符集范围
← +CSCS: ("GSM","HEX","PCCP936","UCS2")
OK
CAT1模块的返回

保存用户当前的配置:AT&W

本文档中大部分的AT 命令,若希望模块重启后其参数不变,都需要通过AT&W 保存。该命令将用户设置的一些AT命令参数保存到NV中,重开机后相关的配置自动加载并生效。

语法规则:

命令类型 语法 返回和说明
执行命令 AT&W OK

设置命令回显模式:ATE

执行命令设置TA 在命令模式下,是否可以回显从TE 接收到的字符。

语法规则:

命令类型 语法 返回
执行命令 ATE OK

参数定义:

参数 定义 取值 对取值的说明
是否回显 0 回显模式关闭
1 回显模式打开

恢复所有参数为出厂配置:AT&F

执行命令把所有参数恢复为出厂配置。

语法规则:

命令类型 语法 返回
执行命令 AT&F OK

设置结果码抑制模式:ATQ

此命令用于设置TA 是否向TE 发送结果码。并且此设置不会影响响应内的内容。

语法规则:

命令类型 语法 返回和说明
执行命令 ATQ OK
参数存储模式 设置命令的参数可以通过AT&W命令保存到NVM中,重启不丢失

参数定义:

参数 定义 取值 对取值的说明
是否显示结果码 0 向TE发送结果码
1 结果码被抑制,不发送

举例:

命令(→)/ 返回(←) 实例 解释和说明
→ ATQ1 设置为不返回结果码
← 此时没出现OK这个结果码
→ AT+CREG?
← +CREG: 0,1 此时没出现OK这个结果码

设置TA响应内容的格式:ATV

该命令用于设置结果码和返回结果的传送格式(数字格式或者字母格式),并设置头部和尾部的内容,这些内容是与结果码和信息返回结果一起发送的。一些常用的code定义如下:

语法规则:

命令类型 语法 返回和说明
执行命令 ATV 当=0时,返回:
0或4
当=1时,返回:
OK或ERROR

参数定义:

参数 定义 取值 对取值的说明
结果码显示模式 0 设置成功后,输入AT命令后的返回信息如下:信息返回:
结果码返回(数字型):
1 设置成功后,输入AT命令后的返回信息如下:信息返回:
结果码返回(冗长字符型):

(ATV0)
(ATV1) 说明
0 OK 执行命令的正确确认
1 CONNECT 连接已经建立;DCE 从命令状态切换为在线数据状态
2 RING DCE 已经检测到一个来自网络的呼叫
3 NO CARRIER 连接中断或尝试建立连接失败
4 ERROR 命令不能被识别,超出命令行的最大长度,参数值无效,或命令进程中的其他问题
6 NO DIALTONE 无法检测到拨号音
7 BUSY 检测到忙音信号(占线)
8 NO ANSWER 若"@"拨号修改量被使用,则紧跟5 秒静默时间的远程振铃没有在定时器(S7)超时前检测到。即无人应答
9 PROCEEDING 一条AT 命令正在被处理
制造商特殊需求 CONNECT 与CONNECT 相同,但包含制造商特殊需求的文本可以制定DTE 速率,线速,错误控制,数据压缩,或其他状态。

举例:

命令(→)/ 返回(←) 实例 解释和说明
→ ATV0 设置结果码显示模式为0,设置成功后,输入AT命令后的返回信息如下:信息返回:
结果码返回(数字型):
← 0 0表示OK
←(URC) AT+CSCS?
←(URC) +CSCS: IRA
0

设置 CONNECT 结果码格式和监测呼叫进程:ATX

此命令用于设置TA 是否做拨号音和忙音检测,以及向TE发送某一个特定的结果码。

语法规则:

命令类型 语法 返回
执行命令 ATX OK

参数定义:

参数 定义 取值 对取值的说明
< value > CONNECT 结果码和呼叫进程模式设定 0 进入在线数据状态时立即返回给定连接CONNECT 结果码,拨号音和忙音检测均禁用
1 进入在线数据状态时立即返回给定连接CONNECT结果码,拨号音和忙音检测均禁用
2 进入在线数据状态时立即返回给定连接CONNECT结果码,拨号音检测开启,忙音检测禁用
3 进入在线数据状态时立即返回给定连接CONNECT结果码,拨号音检测禁用,忙音检测开启
4 进入在线数据状态时立即返回给定连接CONNECT结果码,拨号音与忙音检测均开启

设置自动应答前振铃次数:ATS0

设置命令,可启用或禁用DCE自动应答入局呼叫。若设置为非零取值,当入局呼叫指示(RING)达到规定次数后,DCE自动应答。

语法规则:

命令类型 语法 返回
设置命令 ATS0= OK
查询命令 ATS0?
OK

参数定义:

参数 定义 取值 对取值的说明
自动应答模式 0 禁用自动应答(默认)
1~255 达到指定的振铃次数后,启用自动应答

举例:

命令(→)
/返回(←)
实例 解释和说明
→ ATS0=3 设置当有来电时,MT响三声后自动接听
← OK
←(URC) RING
RING
RING
OK
有一个来电,当显示3个RING(即响三声)后,自动接听

FOTA空中升级:AT+UPGRADE

FOTA(FirmwareOverTheAir)是空中升级固件的功能。过程按顺序如下:1 跟服务器固件版本比较版本号大小;2 如果服务器固件版本号大,则启动下载固件的过程;3 下载固件完毕,模块自动重启,烧录新版本;4 模块再次自动重启,运行新固件

语法规则:

命令类型 语法 返回 说明
设置命令 AT+UPGRADE=,
[,]
OK 设置值
AT+UPGRADE= +UPGRADE:,
OK
查询值
查询命令 AT+UPGRADE? +UPGRADE:
OK
=0时的返回
+UPGRADE: ,
OK
=1时的返回
+UPGRADE: , [code>, , error cause>]
OK
=2时的返回
执行命令 AT+UPGRADE OK 手动触发升级

参数定义:

参数 定义 取值 对取值的说明
"KEY" 使用"KEY"来设置服务器的ProductKEY
"AUTO" 使用"AUTO"设置是否自动升级
"PERIOD" 使用"PERIOD"设置自动升级的查询周期,单位:秒。当设置的周期到时,模块向服务器查询版本,服务器的模块版本号比自己大时,会发起自动升级。
"URL" 使用"URL"设置自己的升级服务器的URL地址
是否把参数保存到NV 0 保存,缺省值
1 不保存
的取值,不同的有不同的取值 字符串型, = "KEY"时,设定此值为合宙
iot服务器某个产品的ProductKey即可在此产品下进行OTA升级
0 ="AUTO"时的取值,整数型。
0:关闭自动FOTA(模块不再和服务器通讯)
1:打开自动FOTA(模块定期向服务器查询)注:缺省为1,即自动升级为打开!
1
60~2^32(4294967296) ="PERIOD"时的取值,整数型,单位为秒。缺省值为86400,即24小时
"http://xxxx.bin" = "URL"时的取值,字符串型
0 未执行FOTA
1 正在从服务器下载固件
2 固件下载结果
升级百分比 1~100 当模块处于=1的状态时,下载固件的百分比
-1000 无效的URL
-1001 网络错误
-1002 服务器链接错误
-1003 无效固件
-1004 http应答错误
-1005 存储固件错误
-1006 其他错误
respone> http错误码 详细取值请参考:
https://baike.baidu.com/item/HTTP%E7%8A
%B6%E6%8
cause> FOTA错误原因 3 无效的设备。找不到设备
17 无权限
25 无效的项目
26 无效的固件
27 已经是最新版本。通过了前面的检查,但版本号已是最新,或没打开升级开关、没指定imei等

举例:

命令(→)/
返回(←)
实例 解释和说明
使用合宙提供的私人服务器进行升级:
1 将新版本固件上传服务器端
在通过合宙ERP购买模块后,ERP会自动分配一个升级服务器管理账号,登陆地址为:
http://iot.openluat.com/
登录名是购买者手机号码,登录密码缺省是:888888
登录后会请点:对应的模块型号。这里以Air72XUX标准模块为例:点击进入产品->设备列表将会看到已购买模块的IMEI列表,自动FOTA可以对这些设备进行固件升级。点击进入产品->固件列表->创建固件->上传文件,上传待更新的固件bin。固件升级用的bin文件在合宙官网发布的AT命令固件包内。以合宙AirM2M_720U_V401874_LTE_AT测试固件为例,该升级包解压后会有四个文件,其中bin文件需要上传到服务器端。上传文件完成后,将下图中的两个选项选择:是
完成上述设置以后,模块就能实现自动空中固件升级FOTA了。缺省的查询服务器的时间间隔是24小时。注:用户同样可以通过AT+UPGRADE="AUTO",0关闭自动更新。如果客户想再自动升级,有两种方法:
1)输入AT+UPGRADE手动触发升级
2)输入AT+UPGRADE="AUTO",1重新打开自动升级
2 在服务器端可以查看FOTA升级情况点固件升级->升级统计后,可以看到每个版本的升级成功数量
3 模块在整个升级过程中的表现开始下载固件。此时自动上报:
+UPGRADEIND:
percent: 0-100
下载完固件后自动重启,开始烧录固件。烧录的时候主动上报:
+UPGRADEDL:
percent: 0-100
烧录成功后再次自动重启并主动上报软件已经更新:
+UPGRADEVER:
(new version:新固件版本号,例如: "AirM2M_720U_V401874_LTE_AT")
+UPGRADEVER:
(upload state:新固件更新状态是否成功上报,1:上报成功,0:上报失败)
注意:从下载固件(打印+UPGRADEIND: ),到模块自动重启后烧录新固件(打印
+UPGRADDL: ),再到再次重启后上报升级情况(打印+UPGRADEVER: version>),整个过程模块自动完成,禁止用户在这个过程中重启模块或给模块断电!
使用用户自己的服务器进行升级:
用户在自己服务器放好bin文件,然后输入:
AT+UPGRADE="URL","http://xxxx.bin"
OK
同样的,缺省也是自动升级,间隔周期也是24小时。模块从服务器下载固件,是用HTTP协议。

PDF 第 27 页插图

PDF 第 27 页插图

PDF 第 27 页插图

PDF 第 27 页插图

PDF 第 28 页插图

设置指令行终止符:ATS3

设置指令,可设置用于AT指令行终止符,该字符能被TA识别。

语法规则:

命令类型 语法 返回
设置命令 ATS3= OK
查询命令 ATS3?
OK

参数定义:

参数 定义 取值 对取值的说明
指令行终止符的ASCII值 13 缺省值:13,对应 ASCII字符为(回车符)
注:仅支持这个值

设置命令行编辑字符:ATS5

此命令设置删除命令行先前字符的字符。

语法规则:

命令类型 语法 返回
设置命令 ATS5= OK
查询命令 ATS5?
OK

参数定义:

参数 定义 取值 对取值的说明
指令行编辑符的ASCII值 8 缺省值:8(对应ASCII字符后退符)

举例:

命令(→) /
返回(←)
实例 解释和说明
→ ATS5? 查询当前指令行编辑字符
← 008
OK
当前指令行编辑字符为BackSpace 后退符

设置CDC功能模式:AT&C

此命令设置 109(DCD)电路状态与远端接收线上信号检测之间的关系。

语法规则:

命令类型 语法 返回
执行命令 AT&C OK

参数定义:

参数 定义 取值 对取值的说明
DCD电路状态 0 DCD 线始终为ON
1 DCD线只在数据载波存在时为ON

设置DTR功能模式:AT&D

此命令设置数据模式下,circuit 108/2 (DTR) 从ON 变为OFF 状态时, TA 的响应状态。

语法规则:

命令类型 语法 返回
执行命令 AT&D OK

参数定义:

参数 定义 取值 对取值的说明
DTR电路状态 0 TA 忽略DTR 状态
1 DTR 由ON至OFF:TA在保持当前数据通话的同时,切换至命令模式
2 DTR 由ON 至OFF:TA 释放数据通话,切换至命令模式。
DTR= OFF 时,为自动应答关闭状态。

实时时钟:AT+CCLK

语法规则:

命令类型 语法 返回
设置命令 AT+CCLK= OK
查询命令 AT+CCLK? +CCLK:
测试命令 AT+CCLK=? OK

参数定义:

参数 定义 取值 对取值的说明
时间 - 字符串类型(字符串需包含在引号内) ;格式类似"yy/MM/dd,hh:mm:ss±zz",最后两位字符指示年,月,日,小时,分钟,秒和时区(用当地时间和GMT 时间之间的差别来表示,以1/4 小时格式来表示;范围-47...+48)

举例:

命令(→)/ 实例 解释和说明
返回(←)
→ AT+CCLK? 查询当前时间
← +CCLK: "18/08/01,12:12:58+00"
OK
返回的查询结果
→ AT+CCLK="18/08/07,13:28:29+32" 将当前时间设置为正确的时间,设置时区可以用"+"号
← OK
→ AT+CCLK? 再查询一次当前时间
← +CCLK: "18/08/07,13:28:31+32"
OK
返回的查询结果

设置USB模式:AT+SETUSB

本命令可以设置USB口的使用模式。

语法规则:

命令类型 语法 返回
设置命令 AT+SETUSB=[,,] OK
查询命令 AT+SETUSB? mode:
Vid:
Pid:
OK
测试命令 AT+SETUSB=? OK
注意事项 该命令可以关机自动保存

参数定义:

参数 定义 取值 对取值的说明
USB的使用模式,设置命令的必选参数 1 RNDIS+AT+PPP+DIAG模式,缺省值
2 ECM+ AT+PPP+DIAG模式
3 保留
Vendorid,设置命令的可选参数 Air72XUX系列缺省值为0x1782
Productid,设置命令的可选参数 Air72XUX系列缺省值为0x4e00

举例:

命令(→)/
返回(←)
实例 解释和说明
→ AT+SETUSB=2 设置成ECM网卡
← OK
→ AT+SETUSB?
← mode: 2
vid: 0x1782
pid: 0x4e00
OK

设备错误:AT+CMEE

该命令使能或者屏蔽结果码的使用+CME ERROR: ,作为和 ME 功能错误相关的指示。

语法规则:

命令类型 语法 返回
设置命令 AT+CMEE=[] OK
查询命令 AT+CMEE? +CMEE :
OK
测试命令 AT+CMEE=? +CMEE:(取值列表)
OK

参数定义:

参数 定义 取值 对取值的说明
结果码上报模式 0 禁用结果码+ CME ERROR: ,使用 ERROR
1 启用结果码+ CME ERROR: ,并使用数字型的取值
2 启用结果码+ CME ERROR: ,并使用冗长方式的取值

错误码描述:+CME ERROR:

数字型
取值
冗长方式的取值 解释
常见错误
0 phonefailure 手机故障
1 noconnectiontophone 未连接到手机
2 phone-adaptorlinkreserved 预留手机适配器链路
3 operationnotallowed 不允许操作
4 operationnotsupported 不支持操作
5 PH-SIMPINrequired 需要PH-SIM卡的PIN
6 PH-FSIMPINrequired 需要PH-FSIM的PIN
7 PH-FSIMPUKrequired 需要PH-FSIM的PUK
10 SIMnotinserted 没有插入SIM卡
11 SIMPINrequired 需要SIM卡的PIN
12 SIMPUKrequired 需要SIM卡的PUK
13 SIMfailure SIM卡故障
14 SIMbusy SIM卡遇忙
15 SIMwrong SIM错误
16 incorrectpassword 密码无效
17 SIMPIN2required 需要SIM卡的PIN2
18 SIMPUK2required 需要SIM卡的PUK2
20 memoryfull 存储已满
21 invalidindex 索引无效
22 notfound 未发现
23 memoryfailure 存储故障
24 textstringtoolong 文本字符串过长
25 invalidcharactersintextstring 文本字符串中的字符无效
26 dialstringtoolong 拨号字符串过长
27 invalidcharactersindialstring 拨号字符串中的字符无效
30 nonetworkservice 无网络业务
31 networktimeout 网络超时
32 networknotallowed-emergencycallsonly 网络不允许-只适用于紧急呼叫
40 networkpersonalizationPINrequired 需要网络个性化PIN
41 networkpersonalizationPUKrequired 需要网络个性化PUK
42 networksubsetpersonalizationPINrequired 需要网络子集个性化PIN
43 networksubsetpersonalizationPUKrequired 需要网络子集个性化PUK
44 serviceproviderpersonalizationPINrequired 需要服务供应商个性化PIN
45 serviceproviderpersonalizationPUKrequired 需要服务供应商个性化PUK
46 corporatepersonalizationPINrequired 需要公司个性化PIN
47 corporatepersonalizationPUKrequired 需要公司个性化PUK
48 hiddenkeyrequired 需要输入隐藏的密码
49
50 EXE_NOT_SURPORT (适用于cat1 模块)
50 InvalidParam
EXE_FAIL
无效参数(适用于cat4 模块)
51 NOMEMORY 内存不足(适用于cat1 模块)
52 OPTIONNOTSURPORT 选项不支持(适用于cat1 模块)
53 parametersareinvalid 无效参数(适用于cat1 模块)
54 EXT_REG_NOT_EXIT (适用于cat1 模块)
55 EXT_SMS_NOT_EXIT (适用于cat1 模块)
56 EXT_PBK_NOT_EXIT (适用于cat1 模块)
57 EXT_FFS_NOT_EXIT (适用于cat1 模块)
58 INVALID_COMMAND_LINE (适用于cat1 模块)
59 ITF_DIFFERENT (适用于cat1 模块)
60 BURN_FLASH_FAIL (适用于cat1 模块)
61 TFLASHNOTEXIST TF卡不存在(适用于cat1 模块)
62 FILENOTEXIST 文件不存在(适用于cat1 模块)
63 FILETOOLARGE 文件太大(适用于cat1 模块)
96 INVALIDDATEORTIME 无效日期或时间(适用于cat1 模块)
97 DIRCREATEFAIL 创建文件夹失败(适用于cat1 模块)
98 DIRNOTEXIST 文件夹不存在(适用于cat1 模块)
99 NOTIMPLEMENTED 不可执行(适用于cat1 模块)
100 unknown 未知
103 IllegalMS 非法MS
106 IllegalME 非法ME
107 GPRSservicesnotallowed 不允许GPRS业务
111 PLMNnotallowed 不允许PLMN
112 Locationareanotallowed 不允许位置区
113 Roamingnotallowedinthislocationarea 该位置区不允许漫游
132 serviceoptionnotsupported 不支持业务选择
133 requestedserviceoptionnotsubscribed 未描述业务选择请求
134 serviceoptiontemporarilyoutoforder 业务选择暂时无连接
148 unspecifiedGPRSerror GPRS错误未指明
149 PDPauthenticationfailure PDP 鉴权失败
150 invalidmobileclass 移动类别无效
151 ATcommandtimeout AT命令超时
181 UNSUPPORTEDQCIVALUE 不支持CQI
214 SS_UNKNOWN_SUBSCRIBER
222 SS_ILLEGAL_SUBSCRIBER
223 SS_BRERSERV_NOT_PROV
224 SS_TELESERV_NOT_PROV
225 SS_ILLEGAL_EQUIPMENT
226 SS_CALL_BARRED
229 SS_ILLEGAL_OPERATION
230 SS_ERROR_STATUS
231 SS_NOT_AVAILABLE
232 SS_SUBS_VIOLATION
233 SS_INCOMPATIBILITY
234 SS_FACILITY_NOT_SUPPORTED
240 SS_ABSENT_SUBSCRIBER
247 SS_SYSTEM_FAILURE
248 SS_DATA_MISSING
249 SS_UNEXPECTED_DATA_VALUE
250 SS_PWD_REGISTRATION_FAILURE
251 SS_NEGATIVE_PWD_CHECK
256 SS_NUMOF_PWD_ATTEMPT_VIOL
264 SIMVERIFYFAIL (适用于cat1 模块)
265 SIMUNBLOCKFAIL (适用于cat1 模块)
266 SIMCONDITIONNOFULLFILLED (适用于cat1 模块)
267 SS_POSITION_METHOD_FAILURE (适用于cat4 模块)
267 SIMUNBLOCKFAILNOLEFT (适用于cat1 模块)
268 SIMVERIFYFAILNOLEFT (适用于cat1 模块)
269 SIMINVALIDPARAMETER (适用于cat1 模块)
270 SIMUNKNOWCOMMAND (适用于cat1 模块)
271 SIMWRONGCLASS (适用于cat1 模块)
272 SIMTECHNICALPROBLEM (适用于cat1 模块)
273 SIMCHVNEEDUNBLOCK (适用于cat1 模块)
274 SIMNOEFSELECTED (适用于cat1 模块)
275 SIMFILEUNMATCHCOMMAND (适用于cat1 模块)
276 SIMCONTRADICTIONCHV (适用于cat1 模块)
277 SIMCONTRADICTIONINVALIDATION (适用于cat1 模块)
278 SIMMAXVALUEREACHED (适用于cat1 模块)
279 SIMPATTERNNOTFOUND (适用于cat1 模块)
280 SIMFILEIDNOTFOUND (适用于cat1 模块)
281 SIMSTKBUSY (适用于cat1 模块)
282 SIMUNKNOW (适用于cat1 模块)
283 SIMPROFILEERROR (适用于cat1 模块)
284 SS_UNKNOWN_ALPHABET
285 SS_USSD_BUSY
323 Cat1模块
339 SS_MAXMPTY_CALLS_EXCEEDED
340 SS_RESOURCES_NOT_AVAILABLE
501 WIFIlabtoolretureerror
502 BTlabtoolretureerror
503 FMlabtoolretureerror
504 MRDfilealreadyexist
505 MRDfilewithsameversionalreadyexist
506 MRDfilewithnewerversionalreadyexist
507 MRDauthorizationfailure
508 (U)SIMPUKblocked
509 Vendornotsupported
510 NVMpathnotexist
511 NVMfilecomcfgerror
535 PROTOCOLstackbusy
600 BTSAPcardnotaccessible
601 BTSAPcardpoweredoff
602 BTSAPcardremoved
603 BTSAPcardpoweredon
604 BTSAPdatanotavailable
605 BTSAPnotsupported
606 Non-Productionmode
753 missingrequiredcmdparameter CRSM 缺少参数
754 InvalidSIMcommand CRSM 无效命令
755 Invalidfileid CRSM 无效的文件
756 MissingrequiredP1/2/3parameter CRSM 缺少P 参数
757 InvalidP1/2/3parameter CRSM 无效的P 参数
758 Missingrequiredcommanddata CRSM 缺少命令数据
759 invalidcharactersincommanddata CRSM 命令行中有无效字符
765 Invalidinputvalue 无效输入值
766 Unsupportedmode 不支持的模式
767 Operationfailed 操作失败
768 Muxalreadyrunning 多路复用已经在运行
769 Unabletogetcontrol 不能获得控制权
770 SIMnetworkreject SIM 网络拒绝
771 Callsetupinprogress 正在建立呼叫
772 SIMpowereddown SIM 关闭了
773 SIMfilenotpresent SIM 文件不在
774 RACrefreshnettimefailure
791 Paramcountnotenough
792 Paramcountbeyond
793 Paramvaluerangebeyond
794 Paramtypenotmatch
795 Paramformatinvalid
796 Getanullparam
797 CFUNstateis0or4
810 NoError
811 UnrecognizedCommand
812 ReturnValueError
813 SyntaxError
814 UnspecifiedError
815 DataTransferAlready
816 ActionAlready
817 NotAtCmd
818 MultiCmdtoolong
819 AbortCops
820 NoCallDisc
821 BTSAPUndefined
822 BTSAPNotAccessible
823 BTSAPCardRemoved
824 ATNotAllowedByCustomer
890 GPS_NOT_RUNNING
891 GPS_IS_RUNNING
892 GPS_IS_FIXING
893 GPS_IS_SLEEPING
894 GPS_NOT_SLEEPING
900 DIAED_REJECT
901 PDP_NO_ACTIVE
902 PDP_ACTIVE
910 TCP_CONNECTION_REJECT
911 TCP_CONNECT_OVERTIME
912 SOCKET_CONNECTION_EXIST
913 SOCKET_CONNECTION_NOT_EXIST
914 BUFFER_OVER_SIZE
915 SENDING_OVERTIME
916 DNS_EXIST
917 DNS_PARSE_OVERTIME
918 DNS_PARSE_ERROR
980 INPUT_VALUE_ERROR
981 OTHER_ERROR
982 ERROR
983 NOT_ALLOWED
1000 UPGRADE_INVALID_URL
1001 UPGRADE_NET_ERROR
1002 UPGRADE_SERVER_CONNECT_ERROR
1003 UPGRADE_INVALID_FILE
1004 UPGRADE_SERVER_RESPONSE_ERROR
1005 UPGRADE_WRITE_FLASH_ERROR
1006 UPGRADE_ERROR
65535 OtherError

设备控制命令

手机活动状态:AT+CPAS

语法规则:

命令类型 语法 返回
执行命令 AT+CPAS +CPAS:
OK
测试命令 AT+CPAS=? +CPAS: (取值列表)
OK
注意事项 执行命令是用来查询手机活动状态的

参数定义:

参数 定义 取值 对取值的说明
状态 0 ME准备就绪
1 ME不可用
2 未知,ME未准备好
3 振铃
4 呼叫进行中
5 睡眠
6 call in active

举例:

命令(→)
/返回(←)
实例 解释和说明
→ AT+CPAS=? 查询取值范围
← +CPAS: (0,1,2,3,4,5,6)
OK
→ ATD138**; 模块主叫一个手机号码
← OK
→ AT+CPAS 对方振铃,但是未接听的时候,模块这边做一次查询
← +CPAS: 3
OK
3表示振铃
←(URC) CONNECT 被叫接听
→ AT+CPAS 被叫接听后,模块这边查询状态
← +CPAS: 4
OK
4表示呼叫进行中
←(URC) NO CARRIER 被叫挂断电话
→ AT+CPAS 被叫挂机后,模块再查询一次状态
← +CPAS: 0
OK
0表示ME准备好(idle状态)

模块功能模式:AT+CFUN

设置命令选择模块的功能模式。

语法规则:

命令类型 语法 返回
设置命令 AT+CFUN=[,] OK
查询命令 AT+CFUN? +CFUN:
OK
测试命令 AT+CFUN=? +CFUN: (取值列表),(取值列表)
OK

参数定义:

参数 定义 取值 对取值的说明
功能模式 0 最少功能
1 全部功能
3 关闭模块RF电路的接收功能
4 飞行模式。关闭模块的RF电路的接收和发送功能
5 使SIM卡失效
6 turnofffullsecondaryreceiver
是否需要重启 0 在设置级别时,不复位ME
1 在设置级别时,复位ME

举例:

命令(→)/
返回(←)
实例 解释和说明
→ AT+CFUN=? 查询各个参数的取值范围
← +CFUN: (0,1,3,4,5,6),(0-1)
OK
查询结果
→ AT+CFUN? 查询当前的功能模式
← +CFUN: 1
OK
查询结果
→ AT+CFUN=1,1 被用来主动重启模块, 重启后进入全功能模式
← OK

关机:AT+CPOWD

语法规则:

命令类型 语法 返回和说明
设置命令 AT+CPOWD= =0 ,紧急关机,没有任何返回
=1 ,正常关机,返回:NORMAL POWER DOWN

输入PIN码:AT+CPIN

语法规则:

命令类型 语法 返回和说明
设置命令 AT+CPIN=[,] OK
说明:如果需要的PIN 是SIM PUK 或者SIM PUK2, 则需要第二个
pin。用来取代 SIM 卡中的原有的pin。
查询命令 AT+CPIN? +CPIN:
OK
测试命令 AT+CPIN=? OK
URC +CPIN:

参数定义:

参数 定义 取值 对取值的说明
密码 - 字符串型
新密码 - 字符串型
READY ME不再需要提供密码
SIM PIN ME等待提供SIM卡的PIN码
SIM PUK ME等待提供SIM卡的PUK码
SIM PIN2 ME等待提供SIM卡的PIN2码
SIM PUK2 ME等待提供SIM卡的PUK2码
SIMREMOVED SIM卡未检出

举例:

命令(→)/
返回(←)
实例 解释和说明
→ AT+CPIN? 查询PIN码锁状态
← +CPIN: READY
OK
表示PIN码锁并未开启
→ AT+CLCK="SC",1,"1234" 开启开机PIN码锁,1234是PIN码,SC表示是SIM卡
← OK 返回OK后,重启模块
← +CPIN: SIM PIN 重新开机后,模块会自动上报PIN码状态,SIM PIN表示开机PIN
码为ON的状态(即开机需要输入PIN码)
→ AT+CPIN="1234" 此时需要输入PIN码
← +CPIN: READY
OK
表示密码正确,PIN码锁解锁
→ AT+CLCK="SC",2 查询当前的开机PIN码是否仍然开启
← +CLCK: 1
OK
1表示仍然有开机PIN码提示
→ AT+CLCK="SC",0,"1234" 关闭开机PIN码提示
← OK 返回OK后重新开机
← +CPIN: READY 重新开机后,模块会自动上报PIN码状态,READY表示开机PIN码:
OFF

设备锁定:AT+CLCK

执行命令锁定、解锁、查询 ME或网络设备。一般需要输入密码。

语法规则:

命令类型 语法 返回和说明
设置命令 AT+CLCK=,
[,[,]]
当≠2,返回:
OK
当=2,返回:
+CLCK:[,
+CLCK:,[...]]
OK
测试命令 AT+CLCK=? +CLCK:(取值列表)
OK

参数定义:

参数 定义 取值 对取值的说明
设备 "CS" Control surface(锁控制接口)
"PS" 将设备锁定到某个或某些SIM卡上
"PF" 将设备锁定到第一个插入的SIM卡上
"SC" SIM/UICC(锁SIM卡)
"AO" 禁止所有出局呼叫
"OI" 禁止所有国际出局呼叫
"OX" 禁止所有国际出局呼叫,归属国除外
"AI" 禁止所有入局呼叫
"IR" 归属国以外漫游时,禁止所有入局呼叫
"NT" 禁止TA未保存的号码入呼叫
"NM" 禁止MT未保存的号码入呼叫
"NS" 禁止SIM/UICC未保存的号码入呼叫
"NA" 禁止在哪个存储空间都未保存的号码呼入
"AB" 禁止所有服务,仅当 mode=0 有效
"AG" 禁止所有出局服务,仅当 mode=0 有效
"AC" 禁止所有入局服务,仅当 mode=0 有效
"FD" SIM 卡固定拨号
"PN" 网络个性化(请参考GSM 02.22)
"PP" 服务供应商个性化(请参考GSM 02.22)
"PU" 网络子集个性化(请参考GSM 02.22)
"PC" 企业个性化(请参考GSM 02.22)
工作模式 0 解锁
1 锁定
2 查询状态
激活状态 0 非激活
1 激活
业务类型 1 语音(电话业务)
2 数据(所有承载业务;当=2时,如果TA不支持16、32、64、
128 的取值,该参数仅表示部分承载业务)
4 传真(传真业务)
8 短消息服务
16 数据电路同步
32 数据电路异步
64 专用分组访问
128 PAD专用接入
密码 字符型;与ME用户接口使用的设备密码、修改密码命令+CPWD 设置的密码相同

修改密码:AT+CPWD

语法规则:

命令类型 语法 返回
设置命令 AT+CPWD=,,
OK
测试命令 AT+CPWD=? +CPWD: (,)取值列表
OK

参数定义:

参数 定义 取值 对取值的说明
, 老密码,新密码 - 字符型;与 ME用户接口使用的设备密码、修改密码命令
+CPWD设置的密码相同
密码长度 - 整数型,设备支持的最大密码长度
设备 与AT+CLCK中定义相同

举例:

命令(→)/
返回(←)
实例 解释和说明
→ AT+CLCK="SC",1,"1234" 如果要修改开机PIN码,必须先要打开开机PIN码锁
← OK
→ AT+CPWD="SC","1234","8888" 修改开机PIN码为8888
← OK 此时重启模块
← +CPIN: SIM PIN 重新开机后,模块会自动上报PIN码状态,SIM PIN
表示开机PIN码:ON
→ AT+CPIN="8888" 此时需要输入PIN码
← +CPIN: READY
OK
表示密码正确,PIN码锁解锁

网络灯闪烁的时间间隔:AT+SLEDS

语法规则:

命令类型 语法 返回
设置命令 AT+SLEDS=,
,
OK
查询命令 AT+SLEDS? +SLEDS:, ,
OK
测试命令 AT+SLEDS=? +SLEDS: (取值列表), (取值列表),
(取值列表)
OK

参数定义:

参数 定义 取值 对取值的说明
设置何种状态下的闪灯间隔 1 设置没有注册上网络时的网络灯闪烁时间间隔
2 设置已经注册上网络时的网络灯闪烁时间间隔
3 设置PPP通讯状态时的网络灯闪烁时间间隔
灯亮的时间 0或40~65535 单位ms , 0为常灭
灯灭的时间 0或40~65535 单位ms , 0为常亮

举例:

命令(→)/
返回(←)
实例 解释和说明
→ AT+SLEDS=? 测试命令
← +SLEDS : (1-3),(0,40-65535),(0,40-65535)
OK

设置TE-TA波特率:AT+IPR

语法规则:

命令类型 语法 返回和说明
设置命令 AT+IPR= OK
查询命令 AT+IPR? +IPR:
OK
测试命令 AT+IPR=? +IPR: (自适应波特率取值列表),(固定波特率取值列表)
OK
注意事项 1. 缺省波特率=0,即自适应波特率。
2. 模块开机时需要MCU那边输入若干个"AT"或(注:"aT","At"无法训练波特率),即可把模块的波特率训练成跟主控一致,此时会有初始化信息上报,表示训练成功。
3. 训练成功后,AT命令可以识别大写,小写或大小写混写。
4. "AT+IPR=x;&W",可以设置固定波特率并保存。重启模块后,模块仍然是这个波特率x,如果上位机波特率也是x,此时不用输入任何东西,模块就会自动上报开机初始化信息。注:x是波特率,例如115200

参数定义:

参数 定义 取值 对取值的说明
波特率,单位
bps
0 自适应波特率(自适应范围随模块型号不同而有所不同)
1200
2400
4800
9600
14400
19200
28800
38400
57600
115200
230400
460800
921600

举例:

命令(→)/
返回(←)
实例 解释和说明
→ AT+IPR=? 查询AIR720S当前支持的波特率范围
← +IPR:
(0,9600,14400,19200,28800,33600,38400,57600,115
200),(230400,460800,921600)
OK
自适应波特率范围是:9600,14400,
19200,28800,38400,57600,
115200
→ AT+IPR=? 查询AIR720U当前支持的波特率范围
+IPR:
(0,2400,4800,9600,14400,19200,28800,33600,38400
,57600,115200),(230400,460800,921600)
OK
自适应波特率范围是:
2400,4800,9600,14400,19200,288
00,33600,38400,57600,115200

设置 TE-TA 帧格式:AT+ICF

语法规则:

命令类型 语法 返回和说明
设置命令 AT+ICF=,[] OK
查询命令 AT+ICF? +ICF: < format >[,]
OK
测试命令 AT+ICF=? +ICF: (取值列表),(取值列表)
OK

参数定义:

参数 定义 取值 对取值的说明
帧格式 0 自动识别
1 8 数据位0 奇偶校验位2 停止位
2 8 数据位1 奇偶校验位1 停止位
3 8 数据位0 奇偶校验位1 停止位
4 7 数据位0 奇偶校验位2 停止位
5 7 数据位1 奇偶校验位1 停止位
6 7 数据位0 奇偶校验位1 停止位注:0 奇偶校验位是指无奇偶校验位,此时被忽略
校验位 0 奇数位(Odd)
1 偶数位(Even)
2 标记(Mark)
3 空格(Space)

举例:

命令(→)/ 返回(←) 实例 解释和说明
→ AT+ICF=? 查询参数取值范围
← +ICF: (1-6),(0-3)
OK
→ AT+ICF=? 查询参数取值范围
← +ICF: (1-6), (0-1) Air780E/Air600E系列模块返回值

设置指令行换行字符:ATS4

使用该指令的设置命令,可设置用于结果码和信息文本换行的字符。

语法规则:

命令类型 语法 返回
设置命令 ATS4= OK
查询命令 ATS4?
OK

参数定义:

参数 定义 取值 对取值的说明
指令行换行符的ASCII值 10 缺省值:10(对应ASCII字符换行符)
注:仅支持这个值

TE-TA 本地流量控制:AT+IFC

流控简介:对模块与 DTE 之间可靠的通信而言,流控是很重要的。假使一次数据或传真呼叫中,发送端的发送速度大于接收端的接收速度,当接收缓存接近满的时候,接收端应该有方法让发送端暂停发送,直到它重新赶上。这就是流控。一般来说,有两种方法来实现流控。它们是软件流控和硬件流控。在多路复用模式下,推荐采用硬件流控。合宙模块对这两种流控方式都支持。软件流控:软件流控发送不同的字符去暂停(XOFF,十进制 19)和恢复(XON,十进制 17)数据流。它适用于仅仅有三根线的串口通信。合宙LTE模块如果使用软件流控,则需要通过命令:AT+IFC=1,1 来配置因为这个配置不保存,所以若希望重启后继续使用软件流控,需要通过 AT&W 保存到用户配置表中。注:当模块传送的是二进制/十六进制数据时,不适合软件流控方式,因为TE可能会将二进制数据当成流控字符。硬件流控:

硬件流控通过 RTS/CTS 信号来实现。当接收缓存快满的时候,模块把 CTS 信号设置为无效,数据传输被暂停。当模块的接收缓存可以接收更多数据时,CTS 信号重新被设置为有效。要实现硬件流控功能,请确保你的应用串口包含 RTS/CTS 线。

语法规则:

命令类型 语法 返回和说明
设置命令 AT+IFC=,[< dte_by_dce>] OK
查询命令 AT+IFC? +IFC: ,
OK
测试命令 AT+IFC=? +IFC: (取值列表),取值列表)
OK
注意事项 模块缺省无流控。如果需要硬件流量控制,请输入"AT+IFC=2,2;&W",重启模块就一直生效了。

参数定义:

参数 定义 取值 对取值的说明
< dce_by_dte> TE 接收来自TA 数据时采用的流控方法 0 无流控
1 软件流控
2 硬件流控
< dte_by_dce> TA 接收来自TE 数据时采用的流控方法 0 无流控
1 软件流控
2 硬件流控

举例:

命令(→)/
返回(←)
实例 解释和说明
→ AT+IFC=? 查询< dce_by_dte>和< dte_by_dce>取值范围
← +IFC: (0-2),(0-2)
OK
查询结果
→ AT+IFC? 查询当前的流量控制方式
← +IFC: 2,2
OK
硬件流控

多路复用:AT+CMUX

语法规则:

命令类型 语法 返回
设置命令 AT+CMUX=
[[,[,d>[,[,[,[,[,
[,]]]]]]]]]
OK
查询命令 AT+CMUX? +CMUX:[[,[,[,[,<
T1>[,[,[,[,]]]]]]]]]
OK
测试命令 AT+CMUX=? +CMUX:(),(s),( s),(>s),(s),(s),(s),(s),(s)
OK

参数定义:

参数 定义 取值 对取值的说明
复用透传机制 0 基本选择
控制通道的复用器建立的方式 0 仅使用UIH 包文
传输速率,单位为bits/s 1 9600
2 19200
3 38400
4 57600
5 115200
6 230400
7 460800
最大报文大小 1-255 默认:127
接收timer,以10ms为单位 1-255 默认:10(100 ms)
重传的最大数量 0-100 默认:3
复用器控制通道的响应定时器,以10ms 为单位 2-255 默认:30
唤醒响应定时器,以秒为单位 1-255 默认:10
窗口大小,适用于有错误恢复选项的高级操作 1-7 默认:2

开启和关闭SIM卡在位硬件检测:AT+CSDT

该命令的设置命令可以开启USIM_CD这个引脚的功能。当AT+CSDT=1的时候,使能该引脚。此时配合SIM卡外围检测电路就能检测SIM卡在位状态,即插卡或掉卡。注:USIM_CD脚为USIM卡在位检测脚,具体定义请参考相关模型的硬件手册

语法规则:

命令类型 语法 返回和说明
设置命令 AT+CSDT=,[] OK
查询命令 AT+CSDT? +CSDT:,[]
OK
测试命令 AT+CSDT=? +CSDT: (取值列表)
OK
注意事项 当检测到SIM卡在位的时候,立刻会有一个URC 上报:+CPIN: READY
当检测到SIM卡不在位的时候,立刻会有一个URC 上报:+CPIN: SIM REMOVED
如果需要关机保存,请输入AT+CSDT=;&W
如下指令仅适用于合宙4GCAT1模块(Air720U/Air724U系列)(版本>=V401857)
AT+CSDT=1:默认上升沿触发,不插卡是低,插入卡是高电平
AT+CSDT=1,0:可以配置下降沿触发,不插卡是高,插入卡是低电平
AT+CSDT=1,1:可以配置上升沿触发,不插卡是低,插入卡是高电平

参数定义:

参数 定义 取值 对取值的说明
SIM在位检测的开启状态 0 关闭SIM卡在位检测
1 开启SIM卡在位检测

检测某个插槽的SIM卡是否在位:AT*SIMDETEC

注:本命令适用合宙模块类型:Air720/Air720G/ Air720H/ Air720D/ Air720S/Air72XCX。设置命令用来检测某个插槽的SIM卡是否在位。测试命令用来显示目前所支持的SIM插槽。

语法规则:

命令类型 语法 返回
设置命令 AT*SIMDETEC= *SIMDETEC:
OK
Air720系列模块的返回
*SIMDETEC:,
OK
Air720s系列模块的返回
测试命令 AT*SIMDETEC=? *SIMDETEC:(1,2)
OK

参数定义:

参数 定义 取值 对取值的说明
哪个sim卡槽 1 主sim卡
2 备用sim卡(暂不支持)
SIM卡状态 NOS SIM卡不存在
SIM SIM卡已插入

举例:

命令(→)/
返回(←)
实例 解释和说明
→ AT*SIMDETEC=1
← *SIMDETEC:NOS
OK
SIM卡不在位

控制Sim卡状态主动上报:AT^CARDMODE

设置命令控制是否允许SIM卡状态的URC上报^CARDMODE:。当设置URC上报开关=1并且SIM/USIM卡的状态发生改变时,^CARDMODE:这个URC将会报上来。查询命令读取SIM/USIM卡当前的状态。

语法规则:

命令类型 语法 返回
设置命令 AT^CARDMODE= OK
查询命令 AT^CARDMODE? ^CARDMODE:[,]
OK
测试命令 AT^CARDMODE=? ^CARDMODE:(listofsupporteds)
OK
URC ^CARDMODE:

参数定义:

参数 定义 取值 对取值的说明
URC上报开关 0 不允许上报 ^CARDMODE:
1 允许上报 ^CARDMODE:
SIM 卡状态 0 未知状态
1 有效的SIMCARD
2 有效的USIMCARD
255 未检测到SIM/USIM卡,或者pin码没有解锁

获取Sim类型:AT*EUICC

获知SIM卡类型。

语法规则:

命令类型 语法 返回
查询命令 AT*EUICC? *EUICC:
OK

参数定义:

参数 定义 取值 对取值的说明
SIMcardtype 0 SIM
1 USIM

设置在数传模式下,等待多长时间进入休眠状态:AT*RTIME

语法规则:

命令类型 语法 返回和说明
设置命令 AT*RTIME= OK
查询命令 AT*RTIME? *RTIME:
OK
注意事项 信号正常情况下,值越短功耗就越低,建议设置为2。如果实际使用环境信号比较差,数据收发经常出现重传延迟,那这个值就需要改大。

参数定义:

参数 定义 取值 对取值的说明
在数传模式下,等待多长时间进入休眠状态。 0~20 单位:秒,0表示关闭。缺省值为0。
在数传模式下,等待多长时间进入休眠状
态。

举例:

命令(→)/
返回(←)
实例 解释和说明
→ AT*RTIME=2 设置等待时间为2秒
← OK

通过UART口设置睡眠唤醒:AT+CSCLK

通过串口使模块进入睡眠的先决条件是:不接USB口。

语法规则:

命令类型 语法 返回和说明
设置命令 AT+CSCLK= OK
查询命令 AT+CSCLK? +CSCLK:
OK
测试命令 AT+CSCLK=? +CSCLK: (list ofsupported s)
OK

参数定义:

参数 定义 取值 对取值的说明
睡眠设置 0 关闭模块睡眠功能。模块无法进入睡眠状态。缺省值。
1 睡眠模式1。由模块AP_WAKEUP_MODULE 脚控制是否进入睡眠。当AP_WAKEUP_MODULE拉高(缺省为高,因为有内部上拉),设置AT+CSCLK=1,没有其他中断产生(GPIO、来电、来短信等),模块将自动进入睡眠模式1。在这种模式下,模块仍能接收来自网络的呼叫和短消息。当模块处于睡眠模式1时,可以通过以下的几种方法唤醒模块。
 模块接收到外部中断信号;
 模块接收到语音或数据呼叫;
 模块接收到短消息(SMS);
 串口接收到AT命令;
 拉低AP_WAKEUP_MODULE引脚大概50ms
注意:模块收到语音、数据呼叫或短消息后会有URC上报
2 睡眠模式2。设置AT+CSCLK=2后,模块会连续监测串口数据,如果模块的串口上没有数据输入,并且没有其他中断产生(GPIO,来电,来短信,来数据等),缺省5秒后模块会自动进入睡眠模式2(注:睡眠模式2情况下,AP_WAKEUP_MODULE电平对模块睡眠唤醒功能无影响,这个是跟休眠模式1最主要的区别)。在这种模式下,模块仍能接收来自网络的呼叫和短消息。当模块处于睡眠模式2时,可以通过以下的几种方法唤醒模块。
 模块接收到外部中断信号;
 模块接收到语音或数据呼叫;
 模块接收到短消息(SMS);
 串口接收到AT命令。

举例:

命令(→)/
返回(←)
实例 解释和说明
睡眠唤醒应用实例1
→ AT+CSCLK=2 设置为睡眠模式2。在这种睡眠模式下,以下情况同时满足时,模块进入睡眠。
 模块在AT口无输入
 没有URC上报(包括没有来电,没有短信,没有收到服务器发来的数据等)
 无GPIO中断
← OK
→ AT+WAKETIM? 查询进入睡眠的时间
← +WAKETIM:5
OK
查询结果为5秒钟。5秒钟是CSCLK设置睡眠后缺省进入睡眠的时间
→ AT+WAKETIM=8 如果需要修改进入睡眠的时间,可以通过WAKETIM来设置,例如改为8(一般情况下不需要设置)注:WAKETIM此时不要设置为0,这样会使睡眠失效。
← OK
模块唤醒方式有以下几种:
1) 串口输入几个AT命令(一个往往唤不醒,需要多输几个)
2) 任意URC上报(包括来电,来短信,收到服务器发的数据等)
3) GPIO中断
→ AT+CSCLK=0
← OK 0,设置为不允许模块睡眠
睡眠唤醒应用实例2
→ AT+CSCLK=1 设置为睡眠模式1。在这种睡眠模式下,以下情况同时满足时,模块进入睡眠。
 模块在AT口无输入
 没有URC上报(包括没有来电,没有短信,没有收到服务器发来的数据等)
 模块AP_WAKEUP_MODULE为高(AP_WAKEUP_MODULE
高,是允许模块睡眠;AP_WAKEUP_MODULE低,是唤醒模块)
 无GPIO中断
← OK
→ AT+WAKETIM? 查询进入睡眠的时间
← +WAKETIM:5
OK
查询结果为5秒钟。5秒钟是CSCLK设置睡眠后缺省进入睡眠的时间
→ AT+WAKETIM=8 如果需要修改进入睡眠的时间,可以通过WAKETIM来设置,例如改为8(一般情况下不需要设置)注:WAKETIM此时不要设置为0,这样会使睡眠失效。
← OK
模块唤醒方式有以下几种:
 串口输入几个AT命令(一两个AT就可以了)
 任意URC上报(包括来电,来短信,收到服务器发的数据等)
 GPIO中断
 AP_WAKEUP_MODULE唤醒(AP_WAKEUP_MODULE低,唤醒;AP_WAKEUP_MODULE高,允许睡眠)
→ AT+CSCLK=0
← OK 0,设置为不允许模块睡眠

设置睡眠等待时间:AT+WAKETIM

语法规则:

命令类型 语法 返回和说明
设置命令 AT+WAKETIM= OK
查询命令 AT+WAKETIM? +WAKETIM:
OK
注意事项  请用WAKETIM命令设置模块睡眠时间,请用CSCLK设置睡眠。

参数定义:

参数 定义 取值 对取值的说明
在IDLE状态下(无AT,无短信,无通话且
AP_WAKEUP_MODULE为高的情况下)等待多长时间进入睡眠状态
0~100 单位:秒,0表示不睡眠。缺省值为5。

举例:

命令(→)/
返回(←)
实例 解释和说明
→ AT+WAKETIM=8 设置睡眠时间为8秒
← OK

设置RI指示功能:AT+CFGRI

设置命令设置RI脚(在合宙Air72X系列模块中对应WAKEUP_OUT脚)在收到URC上报的时候是否会有低脉冲指示。如果打开指示功能(=1),则相应的URC到来时,RI会产生一个120ms的低脉冲(缺省设置)。

语法规则:

命令类型 语法 返回
设置命令 AT+CFGRI=[,][,][,] OK
查询命令 AT+CFGRI? +CFGRI:
OK
注意事项  无论是0还是1,当收到短信的时候,缺省都会产生一个120ms低脉冲;当来电话的时候,会跳变为低电平,直到接通或挂断电话才会变成高电平。
 只有设置AT+CFGRI=1后,数据业务(包括TCPIP,HTTP,MQTT,FTP)到来时的URC上报,才会使RI
产生低脉冲

参数定义:

参数 定义 取值 对取值的说明
RI指示状态 0 RI指示功能关闭
1 RI指示功能打开(TCPIP/FTP/HTTP/MQTT及其他URC)
拉高的时间 >0 单位:毫秒
拉低的时间 >0 单位:毫秒
拉低的次数 >0 单位:毫秒

举例:

命令(→)/
返回(←)
实例 解释和说明
→ AT+CFGRI=0 这个是模块的缺省设置。在此设置下,当收到短信的时候,会产生一个120ms低脉冲;当来电话的时候,会跳变为低电平,直到接通或挂断电话才会变成高电平
← OK
→ AT+CFGRI=1 在此设置下:当收到短信的时候,会产生一个120ms低脉冲;当来电话的时候,会跳变为低电平,直到接通或挂断电话才会变成高电平;数据业务(包括TCPIP,HTTP,MQTT,FTP)到来时的URC上报,会产生一个120ms低脉冲。
← OK

保存RI设置功能:AT+CFGRISAVE

设置是否保存AT+CFGRI指令设置的值(>=V401870软件版本支持)。

语法规则:

命令类型 语法 返回
设置命令 AT+CFGRISAVE= OK
查询命令 AT+CFGRISAVE? +CFGRISAVE:
OK
注意事项 AT+CFGRI设置对应值后,需执行AT+CFGRISAVE=1才会保持对应值

参数定义:

参数 定义 取值 对取值的说明
是否关键保存 0 不保存
1 保存

短信特定字符触发RI功能:AT*CMCRI

注:该功能目前没有实现AT*CMCRI指令增加对短信关键字的匹配功能,收到的短信中只有含有配置的特定字符的,才能触发RI120ms低脉冲(仅)。

语法规则:

命令类型 语法 返回
设置命令 AT*CMCRI=[,] OK
查询命令 AT*CMCRI? *CMCRI:,
OK

参数定义:

参数 定义 取值 对取值的说明
RI指示状态 0 不使能此功能
1 使能此功能
特定的字符串

举例:

命令(→)/
返回(←)
实例 解释和说明
→ AT*CMCRI=1, "testABC"
← OK
→ AT+CMGF=1
← OK
←(URC) +CMT:"+8617740879810",,"20/09/23,18:57:11+32"
---testABC012
收到一个短信,含有设定字符"testABC",应该能产生RI 低脉冲;如果收到的短信不含有设定的字符串,则不应该产生RI 低脉冲

设置MAC地址:AT+MIFIMAC

注:本命令适用于合宙4GCAT1模块(Air720U/Air724U系列)。MAC 地址也叫物理地址、硬件地址,由网络设备制造商生产时烧录在网卡(Network lnterface Card)的EPROM(一种闪存芯片,通常可以通过程序擦写)。它存储的是传输数据时真正赖以标识发出数据的电脑和接收数据的主机的地址。AT+MIFIMAC指令可以对MAC地址进行读写与删除。当写入MAC地址则是48位的(6个字节)。当返回值为1时,表示删除成功。当返回值为0时,表示没找到。当返回值为0时,表示删除错误。

语法规则:

命令类型 语法 返回
读MAC地址 AT+MIFIMAC=R OK
删MAC地址 AT+MIFIMAC=D
OK
写MAC地址 AT+MIFIMAC=W, OK

参数定义:

参数 定义 取值 对取值的说明
MAC地址
状态码 1 删除成功
2 没找到
0 删除错误

读取ADC:AT+CADC

语法规则:

命令类型 语法 返回
设置命令 AT+CADC=, OK
读取命令 AT+CADC? +CADC:,
OK

参数定义:

参数 定义 取值 对取值的说明
ADC id,共有两路 0
1
ADC使用模式 0 禁用
1 启用
ADC电压 单位:毫伏

读取VBAT电压:AT+CBC

语法规则:

命令类型 语法 返回
读取命令 AT+CBC +CBC: ,,
OK
测试命令 AT+CBC=? +CBC: (list of supported s),(list of supported
s),()
OK
设置命令 AT+CBC=,owerOffVol> OK
读取命令 AT+CBC? +CBC:,
OK

参数定义:

参数 定义 取值 对取值的说明
充电状态 0 模块没有在充电
1 模块正在充电
2 模块充电完成
电池电量 1~100 百分比
VBAT当前电压 单位:毫伏
开机检测的电压值 >=0 单位:毫伏
关机检测的电压值 >=0 单位:毫伏

设置VCC_LCD电压:AT+LDO

注:本命令>=V401880版本支持

语法规则:

命令类型 语法 返回
设置命令 AT+LDO=, +LDO:,
OK
读取命令 AT+LDO? +LDO:,
OK

参数定义:

参数 定义 取值 对取值的说明
ldo通道 1 ldo通道
电压等级 1~15 level=0时:关闭LDO
level=1时:LDO输出1.728V
level=2时:LDO输出1.839V
level=3时:LDO输出1.951V
level=4时:LDO输出2.064V
level=5时:LDO输出2.175V
level=6时:LDO输出2.287V
level=7时:LDO输出2.398V
level=8时:LDO输出2.514V
level=9时:LDO输出2.625V
level=10时:LDO输出2.737V
level=11时:LDO输出2.849V
level=12时:LDO输出2.960V
level=13时:LDO输出3.072V
level=14时:LDO输出3.183V
level=15时:LDO输出3.195V

打开/关闭网络灯:AT+CNETLIGHT

本命令的设置命令是用来打开或关闭网络状态指示灯(NET_MODE和NET_STATUS)。本命令的查询命令是用来查询网络状态指示灯是否已经打开。Air720系列模块分别用两个管脚信号来指示网络的状态。如下表描述了管脚定义。网络指示管脚定义

语法规则:

命令类型 语法 返回
设置命令 AT+CNETLIGHT= OK
读取命令 AT+CNETLIGHT? +CNETLIGHT:
OK

参数定义:

参数 定义 取值 对取值的说明
网络状态指示灯的开关状态 0 关闭
1 打开

PDF 第 60 页插图

SIM卡切换:AT+SIMCROSS

Air724UG-NA 支持 SIM0 和 SIM1 双卡单待。Air724UG-MA 由于模块内部已经在 SIM1 接口上内置了贴片 SIM 卡,故 SIM1 接口不可再外接 SIM 卡,也不可用作 GPIO。在+SIMCROSS的缺省设置下(缺省设置为0):Air724UG-MA模块开机后首先会去查询SIM0 接口上是否有插入SIM 卡,如果检测到SIM0 接口上的SIM 卡,就会读取SIM0 接口的卡信息去注册网络;如果SIM0 接口上没有检测到SIM 卡,则会再去检测SIM1 接口上是否有内置贴片SIM 卡,如果检测到SIM1接口上的内置贴片SIM 卡,就会读取内置贴片SIM 卡的信息去注册网络;如果SIM1 接口上也没有检测到内置SIM卡,则会报错:未插入SIM卡。

Air724UG-NA模块模块开机后首先会去查询SIM0 接口上是否有插入SIM 卡,如果检测到SIM0 接口上的SIM卡,就会读取SIM0 接口的卡信息去注册网络;如果SIM0 接口上没有检测到SIM 卡,则会再去检测SIM1 接口上是否有SIM 卡,如果检测到SIM1 接口上的SIM 卡,就会读取SIM1接口的卡信息去注册网络;如果SIM1 接口上也没有检测到SIM卡,则会报错:未插入SIM 卡;SIM0 接口和 SIM1 接口如果同时插入了 SIM 卡,默认会使用 SIM0 接口上的 SIM 卡,同时也可以通过AT+SIMCROSS 这个指令来切换。

语法规则:

命令类型 语法 返回
设置命令 AT+SIMCROSS= OK
查询命令 AT+SIMCROSS? +SIMCROSS:
OK
测试命令 AT+SIMCROSS=? +SIMCROSS:(取值范围)
OK
注意事项 本命令关机保存,但是需重启生效

参数定义:

参数 定义 取值 对取值的说明
SIMNo. 0 SIM卡0
1 SIM卡1或内置贴片卡

举例:

命令(→)/
返回(←)
实例 解释和说明
→ AT+SIMCROSS?
← +SIMCROSS:0
OK
SIM卡位置为0
→ AT+SIMCROSS=1 切换成内置贴片卡或SIM卡1
← OK

PDF 第 61 页插图

SIM卡自动切换开关:AT*SIMAUTO

注:本命令仅适用于合宙Air72XUX/Air72XCX系列模块。

语法规则:

命令类型 语法 返回
设置命令 AT*SIMAUTO= OK
查询命令 AT*SIMAUTO? *SIMAUTO:
OK
注意事项 本命令关机保存,但是需重启生效

参数定义:

参数 定义 取值 对取值的说明
自动切换开关状态 1 打开自动切换
0 关闭自动切换

RNDIS/ECM功能开关:AT+RNDISCALL

语法规则:

命令类型 语法 返回
设置命令 AT+RNDISCALL=, OK
读取命令 AT+RNDISCALL? +RNDISCALL:
OK
测试命令 AT+RNDISCALL=? +RNDISCALL:(0-disable;1-enable),(0-not save;1-save)
OK

参数定义:

参数 定义 取值 对取值的说明
工作模式 0 关闭RNDIS/ECM网卡
1 打开RNDIS/ECM网卡
是否关机保存 0 不保存
1 保存

SECURE BOOT使能开关:AT*SECUREBOOT

注:本命令仅适用于合宙4GCAT1模块(Air720U/Air724U系列)

语法规则:

命令类型 语法 返回
执行命令 AT*SECUREBOOT OK
读取命令 AT*SECUREBOOT? *SECUREBOOT:
OK

参数定义:

参数 定义 取值 对取值的说明
使能状态 0 未使能
1 已使能

重新打开USB:AT+SYSNV=1,"ureboot",1

语法规则:

命令类型 语法 返回
执行命令 AT+SYSNV=1,"ureboot",1 OK
查询命令 AT+SYSNV=0,"ureboot" +SYSNV: "ureboot",1
OK

网络服务命令

查询信号质量:AT+CSQ

语法规则:

命令类型 语法 返回
执行命令 AT+CSQ +CSQ:,
OK
测试命令 AT+CSQ=? +CSQ:(listofsupporteds),(listofsupporteds)
OK

参数定义:

参数 定义 取值 对应的接收信号强度(dbm)
接收信号强度指示(received signal
strength indication)
=(接收信号强度dBm+113)/2
0 小于等于-115dBm
1 -111dBm
2~30 -109~-53dBm
31 大于等于-51dBm
99 未知或不可测
信道误码率(biterrorrate,只有通话建立后,才能获知该值) 0~7 GSM 05.08 section 8.2.4所示的RXQUAL值
99 未知或不可测

举例:

命令(→)/
返回(←)
实例 解释和说明
→ AT+CSQ 查询信号强度和质量
← +CSQ:15,99
OK
查询结果
→ ATD131****9873; 拨打一个手机号
← OK
→ AT+CSQ 手机未接通的时候查询信号
← +CSQ:10,99
OK
=99
←(URC) CONNECT 手机接听
→ AT+CSQ 接通后再查询信号强度和质量
← +CSQ:10,6
OK
此时=6

查询信号质量(扩展):AT+CESQ

执行命令返回接收信号的各个参数。如果当前的服务小区不是一个GERAN小区,和设置为99;如果当前服务小区不是一个UTRA FDD或UTRA TDD小区,设置为255;如果当前服务小区不是一个UTRA FDD小区,设置为255;如果当前服务小区不是一个E-UTRA小区,和设置为255。62 -49dBmrssi<-48dBm

语法规则:

命令类型 语法 返回
执行命令 AT+CESQ +CESQ:,,,,,
OK

参数定义:

参数 定义 取值 对取值的说明
0 rssi<-110dBm
1 -110dBmrssi<-109dBm
2 -109dBmrssi<-108dBm
… …
61 -50dBmrssi<-49dBm

打开CSQ主动上报:AT*CSQ

上报的URC(CSQindicators)如下所列:+CSQ:,+CESQ:,,,,,*CESQ:,,,,,,

语法规则:

命令类型 语法 返回
设置命令 AT*CSQ= OK
查询命令 AT*CSQ? *CSQ:
OK
测试命令 AT*CSQ=? *CSQ= (listofsupporteds)
OK

参数定义:

参数 定义 取值 对取值的说明
0 关闭主动上报
1 打开主动上报
, 请参阅AT+CSQ
,,,, 请参阅 AT+CESQ
信号与干扰加噪声比(信噪比)

网络注册信息:AT+CREG

设置命令打开或关闭+CREG的URC上报,URC上报内容如下:设置=1,当网络注册状态发生变化时,主动上报+CREG:设置=2,当网络注册状态或驻网小区发生变化时,主动上报+CREG:[,,[,]]查询命令返回当前,的值,以及当=2时,的值。

语法规则:

命令类型 语法 返回
设置命令 AT+CREG=[] OK
查询命令 AT+CREG? =0(default)或1:
+CREG:,
OK
=2:
+CREG:,,,,
OK
测试命令 AT+CREG=? +CREG:(listofsupportedvalues)
OK
URCreport +CREG: If=1,当网络注册状态发生变化时,上报此URC
+CREG:[,,[,]] If=2,当网络注册状态改变或位置区小区发生变化时

参数定义:

参数 定义 取值 对取值的说明
URC 上报状态 0 禁用网络注册非请求结果码(URC,Unsolicited Result Code)
1 启用网络注册非请求结果码+CREG:
2 启用网络注册和位置信息非请求结果码
+CREG:[,,]
当前网络注册状态 0 未注册;ME 当前没有搜索要注册业务的新运营商
1 已注册,本地网
2 未注册,但 ME 正在搜索要注册业务的新运营商
3 注册被拒绝
4 未知
5 已注册,漫游
6 注册本地网,SMS-only(仅当=E-UTRAN时可能)
7 注册漫游网,SMS-only(仅当=E-UTRAN时可能)
8 仅附着紧急承载业务(不支持)
9 注册归属地"CSFBnotpreferred"业务(仅当=E-UTRAN时可能)
10 注册漫游地"CSFBnotpreferred"业务(仅当=E-UTRAN时可能)
11 仅紧急业务可用
位置区 - 16进制数,字符串型
小区id - 16进制数,字符串型
接入模式 0 GSM
1 GSMCompact
2 UTRAN
3 GSMw/EGPRS
4 UTRANw/HSDPA
5 UTRANw/HSUPA
6 UTRANw/HSDPAandHSUPA
7 E-UTRAN
8 UTRANHSPA+(CAT1 模块)
EC-GSM-IoT(CAT4模块)

举例:

命令(→)/
返回(←)
ATSequences 解释
→ AT+CREG=? 查询的取值范围
← +CREG:(0-2)
OK
查询结果
→ AT+CREG? 缺省是0,此时查询网络的注册状态
← +CREG:0,1
OK
查询出来=0,=1(已注册,并且注册的是本地网)
←(URC) +CREG:0 拔掉天线或走入没有信号的区域,此时会有URC上报,表明当前未注册网络
←(URC) +CREG:1 装上天线或走入有信号的区域,此时此时会有URC上报,表明当前重新注册上了网络
→ AT+CREG=2 设置=2
← OK
→ AT+CREG? 查询网络的注册状态
← +CREG:2,1,"1863","0183db22"
OK
查询到=2,=1,=1863,=0183db22
←(URC) +CREG:1,"1863","01a2c315" 移动模块,当小区号发生改变的时候,会有个URC上报上来

E-UTRAN EPS 网络注册状态:AT+CEREG

设置命令打开或关闭+CEREG的URC上报,URC上报内容如下:设置=1,当在E-UTRAN网的EPS注册状态发生变化时,主动上报+CEREG:设置=2,当在E-UTRAN网的EPS注册状态或驻网小区发生变化时,主动上报+CEREG:[,,,]设置=3,当在E-UTRAN网的EPS注册状态或驻网小区发生变化时,主动上报+CEREG:[,,,[,,]]

语法规则:

命令类型 语法 返回
设置命令 AT+CEREG= OK
查询命令 AT+CEREG? +CEREG: ,[,[],[],[[,_type>,]]]
OK
测试命令 AT+CEREG=? +CEREG:(listofsupporteds)
OK
URC上报 +CEREG: =1,当在E-UTRAN网的EPS注册状态发生变化时
+CEREG:[,[],[],[]] =2,当在E-UTRAN网的EPS注册状态或驻网小区发生变化时
+CEREG: [,[],[],[][,>,]] =3,当在E-UTRAN网的EPS注册状态或驻网小区发生变化时

参数定义:

参数 定义 取值 对取值的说明
URC上报状态 0 禁止上报网络注册状态URC+CEREG
1 允许主动上报+CEREG:
2 允许主动上报+CREG:[,,]
3 允许主动上报
+CEREG:[,[],[],[][,,ject_cause>]]
当前网络注册状态 0 未注册;ME 当前没有搜索要注册业务的新运营商
1 已注册,本地网
2 未注册,但 ME 正在搜索要注册业务的新运营商
3 注册被拒绝
4 未知(超出E-UTRAN网覆盖范围)
5 注册漫游网
6 注册归属地"SMSonly"业务
7 注册漫游地"SMSonly"业务
8 仅附着紧急承载业务
9 注册归属地"CSFBnotpreferred"业务
10 注册漫游地"CSFBnotpreferred"业务
11 仅紧急业务可用
跟踪区号 - 字符串型,16进制数
小区id - 字符串型,16进制数
接入模式 0 GSM
1 GSMCompact
2 UTRAN
3 GSMw/EGPRS
4 UTRANw/HSDPA
5 UTRANw/HSUPA
6 UTRANw/HSDPAandHSUPA
7 E-UTRAN
8 UTRANHSPA+(CAT1 模块)
EC-GSM-IoT(CAT4模块)
整数型,定义
类型
0 显示包括一个EMM 原因值(请参考
3GPPTS24.301AnnexA)
1 显示值由厂家定义
整数型,定义注册失败原因 此值的类型由定义

设置网络模式:AT^SYSCONFIG

本命令设置系统模式,GSM/WCDMA接入顺序,漫游和业务域特征。

语法规则:

命令类型 语法 返回
设置命令 AT^SYSCONFIG=,
,,
OK
查询命令 AT^SYSCONFIG? ^SYSCONFIG:,,,main>
OK

参数定义:

参数 定义 取值 对取值的说明
网络模式 2 Automaticselection
13 GSMONLY
14 WCDMAONLY
15 TD-SCDMAONLY
16 LTE+UTRAN+GSM
网络接入顺序 0 Automatic
1 GSMfirst,thenUTRAN
2 UTRANfirst,thenGSM
3 LTEfirst,thenGSMorUTRAN
漫游支持 0 roamingdisabled
1 roamingenabled
2 NoChange
域设置 0 CS_ONLY
1 PS_ONLY
2 CS_PS
3 ANY
4 NoChange

查询cid相关的上下文定义:AT+CGCONTRDP

设置命令返回 相关的 , , , , ,,,,和。

语法规则:

命令类型 语法 返回
设置命令 AT+CGCONTRDP[=] [+CGCONTRDP:,,[,,k>[,[,[,[,_addr>[,[,[,ation>]]]]]]]]]
[+CGCONTRDP:,,[,,ubnet_mask>[,[,[,[,SCF_prim_addr>[,[,[,<L
IPA_indication>]]]]]]]]
[…]]
OK
测试命令 AT+CGCONTRDP=? +CGCONTRDP:(listofsassociatedwithactivecontexts)
OK

参数定义:

参数 定义 取值 对取值的说明
定义了一个特定的PDP上下文。 整数型
指定了一个承载,例如:EPS网中的
EPS承载,UMTS/GPRS中的NSAPI
承载。
整数型
Access Point Name,接入点名称,用来选择GGSN或外部分组数据网 字符串型
模块本地IP地址 字符串型
子网掩码 字符串型
网关IP地址 字符串型
主DNS服务器IP地址 字符串型
辅DNS服务器IP地址 字符串型
主P-CSCF服务器IP地址 字符串型
辅P-CSCF服务器IP地址 字符串型
整数型,定义PDP上下文是否仅与IM
CN子系统最大值相关
0 否
1 是
整数型,显示PDP上下文是否与LIPA
PDN相关。本参数无法设置
0 否
1 是

举例:

命令(→)/
返回(←)
实例
→ AT+CGCONTRDP=5
← +CGCONTRDP:
5,5,"wonet.MNC001.MCC460.GPRS","10.192.44.242","0.0.0.0",,"112.65.184.255","210.22.84.3"
OK
→ AT+CGCONTRDP=7
← +CGCONTRDP:7,6,"CMNET","10.192.150.220","0.0.0.0",,"112.65.184.255","210.22.84.3"
OK

运营商查询和选择:AT+COPS

设置命令用来尝试选择和注册一个GSM/UMTS网络运营商。用来选择是自动注册(被忽略),还是手动注册到(的取值由定义)。如果手动选择的运营商不可用,那么也不注册其他的运营商,除非=4.当=2时,强制退网,并一直保持退网状态直到设置为0,1或4。正在执行注网或退网的当中设置此命令将不予执行。查询命令返回当前的,当前注册的运营商以及当前使用的接入技术(AccessTechnology)。

语法规则:

命令类型 语法 返回
设置命令 AT+COPS=[,[,[,[,
]]]]
OK
查询命令 AT+COPS? +COPS:[,,[,>[,]]]
OK
测试命令 AT+COPS=? +COPS:[listofsupported(,longalphanumeric
,shortalphanumeric,numeric[,<
AcT>])s][,,(listofsupporteds),(listofsupported
s)]
OK

参数定义:

参数 定义 取值 对取值的说明
运营商注册模式 0 自动模式;被忽略
1 手动注册运营商(必须有,可以有)
2 手动退网并一直保持退网状态直到设置为 0,1,4
3 仅设置 (用于查询命令+COPS?);不尝试进行注册或注销
(字段可忽略)
4 手动/自动(字段不可忽略);如果手动选择失败,将进入自动选择模式(=0)
运营商的格式 0 长字符串型 (采用字母数字格式),最多 16 字符
1 短字符串型 (采用字母数字格式),最多 8 字符
2 数字式字符串型
与相对应的运营商取值 - 字符型;表示该字符串采用字母数字型还是数字型;数字型表示运营商的方法为MCC(3位)+MNC(2位),即移动国家码+移动网络码
网络可用状态 0 未知
1 可用网络
2 当前网络
3 禁用网络
Access
Technology,网络类型
0 GSM
1 GSMCompact
2 UTRAN
3 GSMw/EGPRS
4 UTRANw/HSDPA
5 UTRANw/HSUPA
6 UTRANw/HSDPAandHSUPA
7 E-UTRAN
8 UTRANHSPA+
域 0 仅CS
1 仅PS
2 CS/PS都有

举例:

命令(→)/
返回(←)
实例 解释和说明
→ AT+COPS? 查询网络信息
← +COPS:0,2,"46001",7
OK
→ AT+COPS=3,1 设置 =1 短字符串型(采用字母数字格式)
← OK
→ AT+COPS? 查询网络信息
← +COPS:0,1,"UNICOM",7
OK
→ AT+COPS=3,0 设置 =0 长字符串型(采用字母数字格式)
← OK
→ AT+COPS? 查询网络信息
← +COPS:0,0,"CHN-UNICOM",7
OK

自动时区更新:AT+CTZU

查询命令可以查询是否使能通过NITZ来更新模块时间的功能。该命令不支持设置,仅支持查询。缺省为使能。注: NITZ=NetworkIdentityandTimeZone,可通过运营商网络来提供本地时间。

语法规则:

命令类型 语法 返回
查询命令 AT+CTZU? +CTZU:
OK
测试命令 AT+CTZU=? +CTZU:(listofsupporteds)
OK

参数定义:

参数 定义 取值 对取值的说明
时区更新状态 1 允许 NITZ 自动更新

打开NITZ自动上报:AT+CTZR

使用该命令设置是否打开NITZURC自动上报。该命令不支持设置,仅支持查询。缺省为打开。

语法规则:

命令类型 语法 返回
查询命令 AT+CTZR? +CTZR:
OK
测试命令 AT+CTZR=? +CTZR:(listofsupporteds)
OK

参数定义:

参数 定义 取值 对取值的说明
报告状态 1 允许 NITZURC上报

使能HSDPA和 HSUPA:AT*EHSDPA

语法规则:

命令类型 语法 返回
设置命令 AT*EHSDPA=[,[,CATEGORY>[,[,RY_EXT>[,[,HState>[,]]]]]]] OK
查询命令 AT*EHSDPA? *EHSDPA:,,EGORY>,,XT>,,
,
OK
测试命令 AT*EHSDPA=? InTDSCDMAmode:
EHSDPA:
(0-3),(1-11,13-16,23,35),(6),(0),(0),(0),(0),(0)
OK
InWCDMAmode:
EHSDPA:
(0-2,4),(1-12),(1-6),(0,1),(1-14),(7),(0,1),(0,1)
OK

参数定义:

参数 定义 取值 对取值的说明
0 disableHSDPA(alsodisableHSUPAifUEissupported)forRel5
1 enableHSDPA(alsoEnableHSUPAifUEissupported)forRel7
2 enableHSDPAonly(notincludeHSUPA)forRel5
3 enableDLDCforRel9forTDproduction
4 enableHSPAonlyforRel6
在TDSCDMA模式:
defaultvalueis14 1,2,3 MaxTBsize: 2788 Maxspeed:0.5M
4,5,6 MaxTBsize: 5600 Maxspeed:1.1M
7,8,9 MaxTBsize: 8416 Maxspeed:1.6M
10,11 MaxTBsize: 11226Maxspeed:2.2M
13,14 MaxTBsize: 14043Maxspeed:2.8M
defaultvalueis6 6 MaxTBsize: 11160 Maxspeed:2.2M
0 notsupported
在WCDMA 模式:
defaultvalueis6 1 MaxTBsize: 7298Maxspeed:1.2M
2 MaxTBsize: 7298Maxspeed:1.2M
3 MaxTBsize: 7298Maxspeed:1.8M
4 MaxTBsize: 7298Maxspeed:1.8M
5 MaxTBsize: 7298Maxspeed:3.6M
6 MaxTBsize: 7298Maxspeed:3.6M
0 notsupported
0 notsupported
EXT> forWCDMARel7support
1~20
1~20 default14forRel7
_EXT> for WCDMA Rel7 only
support7
7
inTDmode 0 notsupported,defaultvalue
InWCDMAmode 0 disabled
1 enabled

GSM/UMTS/LTE 模式和频段设置:AT*BAND

用户可以用设置命令进行GSM/UMTS/LTE网络类型和频段选择。新参数设定后自动保存到NVM,重启后自动加载生效。=0 强制UE仅工作在GSM网;=1 强制UE仅工作在UMTS网;=2 强制UE注册GSM和UMTS(自动选择);=3 强制UE注册GSM和UMTS(GSM优先);=4 强制UE注册GSM和 UMTS(UMTS优先);=5 强制UE仅工作在LTE网;=6 强制UE工作在GSM和LTE(自动选择);=7 强制UE工作在GSM和LTE(GSM优先);=8 强制UE工作在GSM和LTE(LTE优先);=9 强制UE工作在UMTS和LTE(自动选择);=10 强制UE工作在UMTS和LTE(UMTS优先);=11强制UE工作在UMTS和LTE(LTE优先);=12 强制UE工作在GSM,UMTS,LTE(自动选择);=13 强制UE工作在GSM,UMTS,LTE(GSM优先);=14 强制UE工作在GSM,UMTS,LTE(UMTS优先);=15 强制UE工作在GSM,UMTS,LTE(LTE优先)。=0 强制UE不支持漫游;=1强制UE支持漫游;=2强制UE不改变漫游设置。.=0 强制UE只工作于CS域(circuitservice);=1 强制UE只工作于PS域(GPRSservice);=2 强制UE工作于CS+PS域;=3让UE选择一个缺省的业务域;=4强制UE不改变业务域设置。=0:缺省值=1:设置TD-LTE频段优先.=2:设置 FDD-LTE频段优先.如果设置为GSM网络,设置命令仅支持选择GSM频段:如果设置为GSM网络,设置命令至少可以选择一个以上的UMTS频段;

如果设置为LTE网络,设置命令至少可以选择一个以上的LTE频段;如果设置为双网模式(Dualmode)和三网模式(tripmode),就没有必要设置参数,因为参数会被重置为缺省值。此时如果输入了参数,该参数将被忽略。和缺省值是0和2;的缺省值是0,该参数仅当是LTE的时候才有效。

语法规则:

命令类型 语法 返回
设置命令 AT*BAND=[[,
,,[,,<
srvDomain>,]]]
OK
查询命令 AT*BAND? *BAND:,,
,,,nfig>,,
OK
测试命令 AT*BAND=? *BAND:(listofsupporteds),,
,,,nfig>,,
OK

参数定义:

参数 定义 取值 解释
网络类型,整数型 0 GSMnetwork
1 UMTSnetwork
2 Dualmode(GSMandUMTS)(自动选择)
3 Dualmode(GSMandUMTS)(GSM 优先)
4 Dualmode(GSMandUMTS)(UMTS 优先)
5 LTEnetwork
6 Dualmode(GSMandLTE)(auto)
7 Dualmode(GSMandLTE)(GSM 优先)
8 Dualmode(GSMandLTE)(LTE 优先)
9 Dualmode(UMTSandLTE)(自动选择)
10 Dualmode(UMTSandLTE)(UMTS 优先)
11 Dualmode(UMTSandLTE)(LTE 优先)
12 Tripmode(自动选择)
13 Tripmode(GSM 优先)
14 Tripmode(TD 优先)
15 Tripmode(LTE 优先)
GSM工作频段(bitmask),整数型 1 PGSM900
2 DCSGSM1800
4 PCSGSM1900
8 EGSM900
16 GSM450
32 GSM480
64 GSM850
UMTS 工作频段 (bit
mask) ,整数型
1 UMTS_BAND_1
2 UMTS_BAND_2
4 UMTS_BAND_3
8 UMTS_BAND_4
16 UMTS_BAND_5
32 UMTS_BAND_6
64 UMTS_BAND_7
128 UMTS_BAND_8
256 UMTS_BAND_9
TDD LTE 工作频段 (bit
mask),32bit整数
2 TDLTE_BAND_34
32 TDLTE_BAND_38
64 TDLTE_BAND_39
128 TDLTE_BAND_40
256 TDLTE_BAND_41
FDD LTE 工作频段 (bit
mask) ,32bit整数
1 FDDLTE_BAND_1
2 FDDLTE_BAND_2
4 FDDLTE_BAND_3
8 FDDLTE_BAND_4
16 FDDLTE_BAND_5
32 FDDLTE_BAND_6
64 FDDLTE_BAND_7
... ...
65536 FDDLTE_BAND_17
524288 FDDLTE_BAND_20
漫游设置,整数型。该参数应不起作用。一律支持漫游。 0 不支持漫游
1 支持漫游
2 无变化
业务域设置,整数型 0 CS_ONLY
1 PS_ONLY
2 CS_PS
3 ANY
4 NoChange
优先频段,整数型 0 default
1 TD-LTE
2 FDD-LTE

举例:

命令(→)
/返回(←)
实例 解释和说明
→ AT*BAND?
← *BAND:15,74,129,482,133,0,2,0
OK
480=LTEbandH
=00000000 00000000 00000001 11100000
=2+32+64+128+256
=TDLTE_BAND_34&TDLTE_BAND_38&TDLTE_BAND_39&
TDLTE_BAND_40&TDLTE_BAND_41
133=LTEbandL
=00000000 00000000 00000000 10000101
=1+4+128
=FDDLTE_BAND_1&FDDLTE_BAND_3&FDDLTE_BAND_8

查询当前工作频段:AT*BANDIND

设置命令可以打开频段自动上报。查询命令返回当前的工作频段。

语法规则:

命令类型 语法 返回
设置命令 AT*BANDIND[=] OK
查询命令 AT*BANDIND? *BANDIND:[,,]
OK
测试命令 AT*BANDIND=? *BANDIND:(0,1)
OK
URC =1而且频段改变时,自动上报 URC:*BANDIND:,

参数定义:

参数 定义 取值 对取值的说明
=1而且频段改变时,自动上报
*BANDIND:,
0 disable
1 enable
AccessTechnology,接入机制 0 GSM
1 GSMCompact
2 UTRAN
3 GSMw/EGPRS
4 UTRANw/HSDPA
5 UTRANw/HSUPA
6 UTRANw/HSPA
7 E-UTRAN
8 UTRANHSPA+
频段 0 PGSM900 当=0/1/3
1 DCSGSM1800
2 PCSGSM1900
3 EGSM900
4 GSM450
5 GSM480
6 GSM850
0 UMTSBAND1 当=2/4/5/6/8
1 UMTSBAND2
2 UMTSBAND3
3 UMTSBAND4
4 UMTSBAND5
5 UMTSBAND6
6 UMTSBAND7
7 UMTSBAND8
8 UMTSBAND9
9 UMTSBAND10
10 UMTSBAND11
11 UMTSBAND12
12 UMTSBAND13
13 UMTSBAND14
14 UMTSBAND15
15 UMTSBAND16
16 UMTSBAND17
17 UMTSBAND18
18 UMTSBAND19
1 LTEBAND1 当=7
2 LTEBAND2
3 LTEBAND3
4 LTEBAND4
5 LTEBAND5
6 LTEBAND6
7 LTEBAND7
8 LTEBAND8
9 LTEBAND9
10 LTEBAND10
11 LTEBAND11
12 LTEBAND12
13 LTEBAND13
14 LTEBAND14
15 LTEBAND15
16 LTEBAND16
17 LTEBAND17
18 LTEBAND18
19 LTEBAND19
20 LTEBAND20
21 LTEBAND21
22 LTEBAND22
23 LTEBAND23
24 LTEBAND24
25 LTEBAND25
26 LTEBAND26
27 LTEBAND27
28 LTEBAND28
29 LTEBAND29
30 LTEBAND30
31 LTEBAND31
32 LTEBAND32
33 LTEBAND33
34 LTEBAND34
35 LTEBAND35
36 LTEBAND36
37 LTEBAND37
38 LTEBAND38
39 LTEBAND39
40 LTEBAND40
41 LTEBAND41

查询接入机制(Access Technology):AT^CACAP

查询命令返回当前小区的接入机制(AccessTechnology)。

语法规则:

命令类型 语法 返回
查询命令 AT^CACAP? +CACAP:
OK
测试命令 AT^CACAP=? +CACAP:(0-7)
OK

参数定义:

参数 定义 取值 对取值的说明
0 GSM
1 GSMCompact
2 UTRAN
3 GSMw/EGPRS
4 UTRANw/HSDPA
5 UTRANw/HSUPA
6 UTRANw/HSPA
7 E-UTRAN

查询当前的系统信息:AT^SYSINFO

本命令查询当前的系统信息,例如:服务状态,业务域,漫游状态等。

语法规则:

命令类型 语法 返回
执行命名 AT^SYSINFO ^SYSINFO:,,,mode>,,
OK

参数定义:

参数 定义 取值 对取值的说明
服务状态 0 noservice
1 restrictedservice
2 validservice
3 restrictedareaservice
4 powerservice
业务域 0 noservice
1 CSonly
2 PSonly
3 CSandPS
漫游状态 0 noroaming
1 roaming
网络模式 0 noservice
1 reserved
2 reserved
3 GSM/GPRS
4 WCDMA
5 TD_SCDMA
17 LTE
SIM卡状态 0 sim卡无效
1 sim卡有效
255 SIM未插入或PIN码未解锁
网络子模式 0 GSM
1 GSMCompact
2 UTRAN
3 GSMw/EGPRS
4 UTRANw/HSDPA
5 UTRANw/HSUPA
6 UTRANw/HSDPAandHSUPA
7 E-UTRAN

设置无线接入方式:AT+CTEC

注:本命令仅适用于合宙4GCAT1模块(Air720U/Air724U系列),不适用于合宙4GCAT4模块(Air720/Air720G/Air720H/Air720D/Air720S)本命令设置用户偏爱的无线接入方式(RAT)。

语法规则:

命令类型 语法 返回
设置命令 AT+CTEC=, OK
查询命令 AT+CTEC? +CTEC:,
OK

参数定义:

参数 定义 取值 对取值的说明
当前的RAT模式 0 automode
2 GSMonly
4 LTEonly
想要设置的RAT模式 0 automode
2 GSMonly
4 LTEonly

小区/频率锁:AT*CELL

注:本命令仅适用于合宙Air720/Air720G/Air720H/Air720D/Air720S/Air72XCX系列模块。本私有 AT用来使能Cell/Frequency锁。

语法规则:

命令类型 语法 返回
设置命令 AT*Cell=[,[,][,[,]]] OK
测试命令 AT*Cell=? *Cell:,,,,
OK
URC *Cell:,,,,

参数定义:

参数 定义 取值 对取值的说明
lockmode 0 Cell/Frequencylockdisabled
1 Frequencylockenabled
2 Celllockenabled
网络类型 0 GSM
1 UMTS_TD
2 UMTS_WB
3 LTE
当=0 0 PGSM900
1 DCSGSM1800
2 PCSGSM1900
3 EGSM900(extended)
4 GSM450
5 GSM480
6 GSM850
7 GSM750
当=1或2
时。当=1,取值为 0~7;当 mode>=2,取值为0~8;
0 Band_1 arfcn10562-10838
1 Band_2 arfcn9662-9938
2 Band_3 arfcn1162-1513
3 Band_4 arfcn1537-1738
4 Band_5 arfcn4357-4458
5 Band_6 arfcn4387-4413
6 Band_7 arfcn2237-2563
7 Band_8 arfcn2937-3088
8 Band_9 arfcn9237-9387
当=3 0~30 FDDLTE
32~43 TDDLTE
当mode>=0,1,2,3 255 无效值(invalid)
ARFCN(Absolute radio
frequency channel
number),绝对无线频率信道号
noneed noneedinGSM
UMTS-TD0~7的arfcn UMTS-TD0~7的arfcn
UMTS-WB0~8的arfcn UMTS-WB0~8的arfcn
0-599,1200-1949,
2400-2649,
2750-3449,3450-3799,
LTE网络模式下的arfcn
5180-5279,
5730-5849,6150-6449,
37750-38249,38250-386
49,38650-39649,
39650-41589
物理小区id noneed noneedinGSM
0-127 inUMTS
0-503 inLTE

举例:

命令(→)
/返回(←)
实例 解释和说明
→ AT*Cell=0
← OK
→ AT*Cell=1,1,1,10700 设置锁频
← OK

读取基站定位(LBS)信息和时间:AT+CIPGSMLOC

语法规则:

命令类型 语法 返回
设置命令 AT+CIPGSMLOC=, If=1:
+CIPGSMLOC:[,,,,
测试命令 AT+CIPGSMLOC=? +CIPGSMLOC:(listofsupporteds),(rangeof)
OK

参数定义:

参数 定义 取值 对取值的说明
操作类型 1 查看精度、维度和时间
2 只查看时间
as defined in
+SAPBR
1-3
当前经度(以度为单位) 经度(小数点后保留6位)
当前纬度,以度表示 纬度(小数点后保留6位)
格式为 yy/mm/dd 例如 18/11/08
格式为 hh/mm/ss 例如 15:47:26
0 成功
1 未找到数据
6 参数错误
7 未知错误
404 未找到
408 请求超时
601 网络错误
602 内存不足
603 DNS错误
604 堆栈忙
65535 其它错误

举例:

命令(→)
/返回(←)
实例 解释和说明
→ AT+SAPBR=3,1,"CONTYPE","GPRS" 设置承载类型为GPRS
← OK
→ AT+SAPBR=3,1,"APN","" 设置PDP承载之APN参数模块注册网络后会从网络自动获取并激活一个PDP
上下文,用于RNDIS上网使用(此可以通过
AT+CGDCONT?来查询),所以输入
AT+SAPBR=3,,"APN","" 即可,模块内部会按照自动获取的来设置APN
← OK
→ AT+SAPBR=1,1 激活GPRSPDP上下文
← OK
→ AT+SAPBR=2,1 查询是否激活
← +SAPBR:1,1,010.169.179.213
OK
返回中有IP地址表明激活成功

读取WIFI定位信息和时间:AT+WIFILOC

语法规则:

命令类型 语法 返回
设置命令 AT+WIFILOC=, If=1:
+WIFILOC:[,,,,
测试命令 AT+WIFILOC=? +WIFILOC:(listofsupporteds),(rangeof)
OK

参数定义:

参数 定义 取值 对取值的说明
操作类型 1 查看精度、维度和时间
2 只查看时间
asdefinedin+SAPBR 1-3
当前经度(以度为单位) 经度(小数点后保留6位)
当前纬度,以度表示 纬度(小数点后保留6位)
格式为 yy/mm/dd 例如 18/11/08
格式为 hh:mm:ss 例如 15:47:26
0 成功
1 未找到数据
6 参数错误
7 未知错误
404 未找到
408 请求超时
601 网络错误
602 内存不足
603 DNS错误
604 堆栈忙
65535 其它错误

举例:

命令(→)
/返回(←)
实例 解释和说明
→ AT+SAPBR=3,1,"CONTYPE","GPRS" 设置承载类型为GPRS
← OK
→ AT+SAPBR=3,1,"APN","" 设置PDP承载之APN参数模块注册网络后会从网络自动获取并激活一个PDP
上下文,用于RNDIS上网使用(此可以通过
AT+CGDCONT?来查询),所以输入
AT+SAPBR=3,,"APN","" 即可,模块内部会按照自动获取的来设置APN
← OK
→ AT+SAPBR=1,1 激活GPRSPDP上下文
← OK
→ AT+SAPBR=2,1 查询是否激活
← +SAPBR:1,1,010.169.179.213
OK
返回中有IP地址表明激活成功
→ AT+WIFILOC=1,1 查询位置和时间
← +WIFILOC:
0,31.241045,121.472313,18/11/08,15:37:30
OK
→ AT+WIFILOC=2,1 只查询时间
← +WIFILOC:0,18/11/08,15:47:26
OK
→ AT+SAPBR=0,1 去激活PDP上下文
← OK

UDP多基站定位功能:AT+CIPUDPGSMLOC

注意:>=V401881版本支持

← +CIPUDPGSMLOC:

语法规则:

命令类型 语法 返回
设置命令 AT+CIPUDPGSMLOC=,<
para>[,port]
If=0:
OK
If=1:
+CIPUDPGSMLOC:,,,
测试命令 AT+CIPUDPGSMLOC=? +CIPUDPGSMLOC:(0,1),(0,1,domainName,ipAddress),(port)
OK
读取命令 AT+CIPUDPGSMLOC? +CIPUDPGSMLOC:[,port]
OK

参数定义:

参数 定义 取值 对取值的说明
操作类型 0 设置 udpip/域名端口(默认为合宙 ip
121.40.251.45 端口 12411)
1 查询使用基站信息和wifi信息获取定位信息
服务器地址或定位模式 服务器域名或
IP地址
type为0时,设置服务器域名或IP地址
0 type为1时,查询使用基站信息获取定位信息
1 type为1时,查询使用基站信息和wifi信息获取定位信息
服务器端口 1~65535
当前经度(以度为单位) 经度(小数点后保留7位)
当前纬度,以度表示 纬度(小数点后保留7位)
格式为 yy/mm/dd 例如 2023/11/08
格式为 hh:mm:ss 例如 15:47:26
60 获取定位信息异常
61 网络错误
62 DNS解析错误
63 连接错误
64 服务器响应超时
65 服务器响应超时

举例:

命令(→)
/返回(←)
实例 解释和说明
→ AT+SAPBR=3,1,"CONTYPE","GPRS" 设置承载类型为GPRS
← OK
→ AT+SAPBR=3,1,"APN","" 设置PDP承载之APN参数模块注册网络后会从网络自动获取并激活一个
PDP上下文,用于RNDIS上网使用(此可以通过
AT+CGDCONT?来查询),所以输入
AT+SAPBR=3,,"APN","" 即可,模块内部会按照自动获取的来设置APN
← OK
→ AT+SAPBR=1,1 激活GPRSPDP上下文
← OK
→ AT+SAPBR=2,1 查询是否激活
← +SAPBR:1,1,010.169.179.213
OK
返回中有IP地址表明激活成功
→ AT+CIPUDPGSMLOC=1,0 查询使用基站信息获取定位信息

:AT+WIFISCAN

语法规则:

命令类型 语法 返回 说明
设置命令 AT+WIFISCAN= +WIFISCAN:,
OK
指定信道扫描
查询命令 AT+WIFISCAN? +WIFISCAN:,,
OK
阻塞方式查询所有信道
执行命令 AT+WIFISCAN OK
+WIFISCAN:,,
非阻塞方式查询所有信道,立即返回,查询完毕主动上报

参数定义:

参数 定义 取值 对取值的说明
信道
MAC地址
接收信号强度指示(Received Signal Strength
Indication)

(URC)系统模式: ^MODE

显示系统模式有改变。

URC
^MODE:,
参数 取值 解释
, 17,17 TDLTEcapabilities (4G)
5/15,8 3Gonly (3G)
5/15,7 3G,HSDPA,andHSDPAcapabilities (3G)
5/15,6 3GandHSUPAcapabilities (3G)
5/15,5 3GandHSDPAcapabilities (3G)
3,3 GSM,GPRS,andEGPRScapabilities (2G)
3,2 GSMandGPRScapabilities (2G)
3,1 GSMonly (2G)
0,0 无服务

小区信息查询:AT+CCED

本命令可以查询本小区和最多6个临小区的信息。

一次性查询邻接小区(GSM模式):AT+CCED=0,2+CCED:GSMneighborcellinfo:460,00,6334,20522,31,75+CCED:GSMneighborcellinfo:460,00,6334,0,21,80+CCED:GSMneighborcellinfo:460,00,6334,20521,30,91 OK邻接小区信息周期性上报(LTE模式):AT+CCED=1,2+CCED:LTEneighborcell:460,00,38950,140541985,57,24,6334,36,351+CCED:LTEneighborcell:460,00,1300,26224401,48,24,6334,27,37+CCED:LTEneighborcell:460,00,1300,26224402,43,15,6334,22,38+CCED:LTEneighborcell:460,00,38400,26224397,42,23,6334,21,191+CCED:LTEneighborcell:460,00,40936,12793923,34,15,6334,13,191+CCED:LTEneighborcell:460,00,3590,26224415,44,9,6334,27,318+CCED:LTEneighborcell:460,00,3590,26224416,47,19,6334,30,319 OK+CCED:LTEneighborcell:460,00,38950,140541985,57,24,6334,36,351+CCED:LTEneighborcell:460,00,1300,26224401,48,24,6334,27,37+CCED:LTEneighborcell:460,00,1300,26224402,43,15,6334,22,38+CCED:LTEneighborcell:460,00,38400,26224397,42,23,6334,21,191+CCED:LTEneighborcell:460,00,40936,12793923,34,15,6334,13,191+CCED:LTEneighborcell:460,00,3590,26224415,44,9,6334,27,318+CCED:LTEneighborcell:460,00,3590,26224416,47,19,6334,30,319邻接小区信息周期性上报(GSM模式):AT+CCED=1,2+CCED:GSMneighborcellinfo:460,00,6334,20522,31,76+CCED:GSMneighborcellinfo:460,00,6334,0,21,80+CCED:GSMneighborcellinfo:460,00,6334,20521,30,94 OK+CCED:GSMneighborcellinfo:460,00,6334,20522,31,85

+CCED:GSMneighborcellinfo:460,00,6334,0,21,78+CCED:GSMneighborcellinfo:460,00,6334,20521,30,83

语法规则:

命令类型 语法 返回
设置命令 AT+CCED=, OK
测试命令 AT+CCED=? +CCED:(listofs),(listofs)
OK

参数定义:

参数 定义 取值 对取值的说明
工作模式 0 一次上报
1 周期性上报
2 关闭上报
dump> 消息类型 1 主小区,即服务小区信息
2 邻小区信息如果是LTE邻小区,则上报:
MCC,MNC,frequency,cellid,rsrp,rsrq,tac,SrxLev,pcid
如果是GSM邻小区,则上报:
MCC,MNC,lac,cellid,bsic,rxlev
8 主小区的RSSI 指示,即Rxlev(0~31)
=1,上报主小区或服务小区的信息:如果当前是LTE模式,则上报:
+CCED:LTEcurrentcell:MCC,MNC,imsi,roamingFlag,bandInfo,bandwidth,dlEarfcn,cellid,rsrp,rsrq,tac,SrxLev,pcid
如果当前是GSM模式,则上报:
+CCED:GSMcurrentcellinfo:MCC,MNC,lac,cellid,bsic,rxlev,RxLevSub,Arfcn
举例:一次性查询当前小区(LTE模式):
AT+CCED=0,1
+CCED:LTEcurrentcell:460,00,460045926307603,0,40,n100,39148,140542123,51,29,6334,34,351
OK
一次性查询当前小区(GSM模式):
AT+CCED=0,1
+CCED:GSMcurrentcellinfo:460,00,18be,5045,13,63,63,6
OK
当前小区信息周期性上报(LTE模式):
AT+CCED=1,1
+CCED:LTEcurrentcell:460,00,460045926307603,0,40,n100,39148,140542123,61,31,6334,44,351
OK
+CCED:LTEcurrentcell:460,00,460045926307603,0,40,n100,39148,140542123,61,31,6334,44,351
+CCED:LTEcurrentcell:460,00,460045926307603,0,40,n100,39148,140542123,61,31,6334,44,351
+CCED:LTEcurrentcell:460,00,460045926307603,0,40,n100,39148,140542123,61,35,6334,44,351
当前小区信息周期性上报(GSM模式):
AT+CCED=1,1
+CCED:GSMcurrentcellinfo:460,00,18be,5045,13,61,61,6
OK
+CCED:GSMcurrentcellinfo:460,00,18be,5045,13,63,63,6
+CCED:GSMcurrentcellinfo:460,00,18be,5045,13,63,63,6
+CCED:GSMcurrentcellinfo:460,00,18be,5045,13,63,63,6
+CCED:GSMcurrentcellinfo:460,00,18be,5045,13,63,63,6
=2,上报邻接小区的信息:如果当前是LTE模式,则上报:
+CCED:LTEneighborcell:MCC,MNC,frequency,cellid,rsrp,rsrq,tac,SrxLev,pcid
如果当前是GSM模式,则上报:
+CCED:GSMneighborcellinfo:MCC,MNC,lac,cellid,bsic,rxlev
举例:一次性查询邻接小区(LTE模式):
AT+CCED=0,2
+CCED:LTEneighborcell:460,00,38950,140541985,57,24,6334,36,351
+CCED:LTEneighborcell:460,00,1300,26224401,48,24,6334,27,37
+CCED:LTEneighborcell:460,00,1300,26224402,43,15,6334,22,38
+CCED:LTEneighborcell:460,00,38400,26224397,42,23,6334,21,191
+CCED:LTEneighborcell:460,00,40936,12793923,34,15,6334,13,191
+CCED:LTEneighborcell:460,00,3590,26224415,44,9,6334,27,318
+CCED:LTEneighborcell:460,00,3590,26224416,47,19,6334,30,319
OK

设置工程模式:AT+EEMOPT

语法规则:

命令类型 语法 返回
设置命令 AT+EEMOPT= OK
查询命令 AT+EEMOPT? +EEMOPT:
测试命令 AT+EEMOPT=? listofoptions
OK

参数定义:

参数 定义 取值 对取值的说明
工作模式 0 关闭工程模式
1 查询模式,可以通过AT+EEMGINFO?查询网络参数
2 打开网络参数周期性自动上报,上报周期由定义注:自动上报内容为 URC: +EEMLTESVC, +EEMLTEINTRA,
+EEMLTEINTER等,请参考本文中相关的内容
整数值,单位为秒

举例:

命令(→)
/返回(←)
实例
→ AT+EEMOPT=?
← AT+EEMOPT=0 :Turnoffindicator.ThisisdefaultmodeafterMEbootup
AT+EEMOPT=1 :Settoquerymode.Usercanuse+EEMGINFOtoquerynetworkparameter
AT+EEMOPT=2, :Settoperiodicmode.ReportEMinfoinseconds
OK

在工程模式下查询GSM/UMTS/LTE信息:AT+EEMGINFO

AT+EEMOPT=1时,用来查询工程模式下当前GSM/UMTS/LTE网络参数。

语法规则:

命令类型 语法 返回
查询命令 AT+EEMGINFO? +EEMGINFO:,
OK
+EEMLTESVC:
+EEMLTEINTRA:
+EEMLTEINTER:

参数定义:

参数 定义 取值 解释
MTstate 0 Idle状态
1 Dedicated 状态
2 PSPTM 状态
3 有效状态
networktype 0 GSM
1 UMTS
2 LTE

(URC)GSM工程模式下当前小区的信息:+EEMGINFOSVC

URC
+EEMGINFOSVC:,,,,,,,,,,,,
,,,,,,,,
,,,,,,,,,
,,,,,,
参数 解释 取值范围
MobileCountryCode
MobileNetworkCode
LocationAreaCode
CellIdentifier
NetworkOperationMode
NetworkControlOrder
BaseStationIdentityCode
C1value
C2value
TimingAdvance
TransmitPower
ReceivelevelBCCH
ReceivelevelforfullsetofTCH
ReceivelevelforsubsetofTCH
BERinDTXmode
BERinnon-DTXmode
TrafficChannelARFCN(AbsoluteRadioFrequencyChannel)
Channelishopping
Channeltype
Servingtimeslot
Inpacketidlemode
RoutingAreaCode
AbsoluteRadioFrequencyChannel
BSPAframes
C31value
C32value
timeoutNo.3212
timeoutNo.3312
SupportPBCCH
SupportEDGE
NCCpermitted
Radiolinktimeout
Totalhand-overcount
Successhand-overcount
Totalchannelaccesscount
Successchannelaccesscount

(URC)GSM工程模式下PS信息:+EEMGINFOPS

URC

+EEMGINFOPS:,,,,,,,,,,,,<8psk_cv_bep>,,<8psk_mean_bep>,,,,,,,,

参数 解释
GPRS/EDGEattached
Attachtype
Servicetype
Transmitpower
Cvalue
Uplinktimeslot
Downlinktimeslot
UplinkCodingScheme
UplinkCodingScheme
DownlinkCodingScheme
Uplinkmodulation
Downlinkmodulation
GMSKCVBEP(BlockErrorProbability)
<8psk_cv_bep> 8PSKCVBEP
GMSKmeanBEP
<8psk_mean_bep> 8PSKmeanBEP
EDGEBEPperiod
IssingleGMMrejectcause
ActivatedPDPnumber
MACmode
Networkcontrol
networkmode
EDGESLQmeasurementmode
EDGEstatus

(URC)GSM工程模式下邻接小区的信息:+EEMGINFONC

URC
+EEMGINFONC:,[,,,,,,,,,,
,,[…]]
参数 解释
Neighborcellnumber
MobileCountryCode
MobileNetworkCode
LocationAreaCode
RoutingAreaCode
CellIdentifier
Receivesignallevel
BaseStationIdentityCode
C1value
C2value
AbsoluteRadioFrequencyChannel
C31value
C32value

(URC)工程模式下当前网络状态:+EEMGINBFTM

URC
+EEMGINBFTM:,,,,,,,,,,,,,,>,,,,
参数 解释
EngineeringMode
mcc
mnc
lac
cellIdentifier
bsic
C1
C2
TimeAdvance
TxPowerLevel
rxSigLevel
rxSigLevelFull
rxSigLevelSub
rxQualityFull
rxQualitySub
arfcnTch
hoppingstatus
channeltype
ServerTimeslot

(URC)UMTS工程模式下当前小区的信息:+EEMUMTSSVC

URC
+EEMUMTSSVC:,,,,[,,…>,],[,,…,],[,,…,<
p55>]
参数 解释
EngineerMode
sCMeasPresent
sCParamPresent
ueOpStatusPresent
IfsCMeasPresentisTRUE,thefollowing6itemswillbeprinted:
cpichRSCP
utraRssi
cpichEcN0
sQual
sRxLev
txPower
IfsCParamPresentisTRUE,thefollowing18itemswillbeprinted:
rac
nom
mcc
mnc
lac
ci
uraId
psc
arfcn
t3212
t3312
hcsUsed
attDetAllowed
csDrxCycleLen
psDrxCycleLen
utranDrxCycleLen
HSDPASupport
HSUPASupport
IfueOpStatusPresentisTRUE,thefollowing27itemswillbeprinted
rrcState
numLinks
srncId
sRnti
algPresent
cipherAlg
cipherOn
algPresent
cipherAlg
cipherOn
HSDPAActive
HSUPAActive
MccLastRegisteredNetwork
MncLastRegisteredNetwork
TMSI
PTMSI
IsSingleMmRejectCause
IsSingleGmmRejectCause
MMRejectCause
GMMRejectCause
mmState
gmmState
gprsReadyState
readyTimerValueInSecs
NumActivePDPContext
ULThroughput
DLThroughput
URC
+EEMUMTSSVC:,,,,[,,,],[,,…,],[,,…,53>]
参数 解释
EngineerMode
sCMeasPresent
sCParamPresent
ueOpStatusPresent
IfsCMeasPresentisTRUE,thefollowing4itemswillbeprinted:
pccpchRSCP
utraRssi
sRxLev
txPower
IfsCParamPresentisTRUE,thefollowing18itemswillbeprinted:
rac
nom
mcc
mnc
lac
ci
uraId
cellParameterId
arfcn
t3212
t3312
hcsUsed
attDetAllowed
csDrxCycleLen
psDrxCycleLen
utranDrxCycleLen
HSDPASupport
HSUPASupport
IfueOpStatusPresentisTRUE,thefollowing27itemswillbeprinted:
rrcState
numLinks
srncId
sRnti
algPresent
cipherAlg
cipherOn
algPresent
cipherAlg
cipherOn
HSDPAActive
HSUPAActive
MccLastRegisteredNetwork
MncLastRegisteredNetwork
TMSI
PTMSI
IsSingleMmRejectCause
IsSingleGmmRejectCause
MMRejectCause
GMMRejectCause
mmState
gmmState
gprsReadyState
readyTimerValueInSecs
NumActivePDPContext
ULThroughput
DLThroughput

(URC)UMTS工程欧式下同频率信息:+EEMUMTSINTRA

展示UMTS工程模式下同频(intrafrequency)信息。

URC
+EEMUMTSINTRA:,,,,,,,,,
参数 解释
indexofENGMODEINTRAFREQ
pccpchRSCP
utraRssi
sRxLev
mcc
mnc
lac
ci
arfcn
cellParameterId

(URC)UMTS工程模式下频间信息:+EEMUMTSINTER

显示UMTS工程模式下频间(interfrequency)信息。

URC
+EEMUMTSINTER:,,,,,,,,,
参数 解释
indexofENGMODEINTERFREQ
pccpchRSCP
utraRssi
sRxLev
mcc
mnc
lac
ci
arfcn
cellParameterId

(URC)UMTS工程模式下无线接入技术间信息:+EEMUMTSINTERRAT

展示UMTS 工程模式下无线接入技术间(InterRAT)信息。

URC
+EEMUMTSINTERRAT:,,,,,,,,,,
参数 解释
indexofENGMODEINTERRAT
gsmRssi
rxLev
C1
C2
mcc
mnc
lac
ci
arfcn
bsic

(URC)LTE工程模式下服务小区信息:+EEMLTESVC

ThroughPut,ulPeakThroughPut,currPuschTxPower,averUlPRB,dlBler,ulBler

URC
Air720系列:
+EEMLTESVC:,mnc>,,,,,,,,,,,,>,,,,,,,,,rModeState>,,,,,,eCode>,
Air720S系列:
+EEMLTESVC:mcc,lenofmnc,mnc,tac,phyCellId,dlEuArfcn,ulEuArfcn,band,dlBandwidth,cellId,transMode,rsrp,
rsrq,sinr,mainRsrp,errcModeState,emmState,serviceState,IsSingleEmmRejectCause,EMMRejectCause,mme
GroupId,mmeCode,mTmsi,cellId,subFrameAssignType,specialSubframePatterns,transMode,mainRsrp,diversit
yRsrp,mainRsrq,diversityRsrq,rssi,cqi,pathLoss,tb0DlTpt,tb1DlTpt,tb0DlPeakTpt,tb1DlPeakTpt,tb0UlPeakTpt
,tb1UlPeakTpt,dlThroughPut,dlPeakThroughPut,averDlPRB,averCQITb0,averCQITb1,rankIndex,grantTotal,ul
参数 解释
MobileCountryCode
lengthofmnc
MobileNetworkCode
Trackingareacode
PhysicalCellIdentifier
downlinkarfcn
uplinkarfcn
band
dlBandwidth
cellId
transMode
rsrp
rsrq
sinr
Rsrpinmainantenna
Rsrpinslaveantenna
Rsrqinmainantenna
Rsrqinslaveantenna
rssi
cqi
currentPuschTxPowerindBm
rankIndex
ErrorModeState
emmState
serviceState
IsSingleEmmRejectCause
EMMRejectCause
MmeGroupId
MmeCode
mTmsi

(URC)LTE工程模式下同频信息:+EEMLTEINTRA

展示LTE工程模式下同频(intrafrequency)信息。

URC
+EEMLTEINTRA:,,,,,,,,
参数 解释
indexofENGMODEINTRAFREQ
phyCellId
euArfcn
rsrp
rsrq
mcc
mnc
tac
cellId

(URC)LTE工程模式下频间信息:+EEMLTEINTER

展示LTE工程模式下频间(interfrequency)信息。

URC
+EEMLTEINTER:,,,,,,,,
参数 解释
indexofENGMODEINTERFREQ
phyCellId
euArfcn
rsrp
rsrq
mcc
mnc
tac
cellId

(URC)LTE工程模式下无线接入技术间信息:+EEMLTEINTERRAT

展示LTE工程模式下无线接入技术间(InterRAT)信息。

+EEMLTEINTERRAT:,,,,,,,,

URC
UMTS:
+EEMLTEINTERRAT:,,,,,,,,,
GSM:
参数 解释
networktype(0:GSM,1:UMTS)
numberofINTERRAT
mcc
mnc
lac
ci
arfcn(GSM)/uarfcn(UMTS)
bsic(GSM)/psc_cellParameterId(UMTS)
rssi(GSM)/rscp(UMTS)
cpichEcN0(UMTS)

(URC)事件控制指示:+CIEV

注:本URC仅适用于合宙4GCAT1模块(Air720U/Air724U系列),不适用于合宙4GCAT4模块(Air720/Air720G/Air720H/Air720D/Air720S)。指示电池,通话,网络和短信的事件进展。

URC 释义
+CIEV:"SOUNDER",1 audioon
+CIEV:"SOUNDER",0 audiooff
+CIEV:"CALL",1 callon
+CIEV:"CALL",0 calloff
+CIEV:service,1 注册网络功能
+CIEV:service,0 注册网络失败
+CIEV:roam,1 处于漫游状态
+CIEV:roam,0 不在漫游状态
+CIEV:"MESSAGE",1 收到一个短信
+CIEV:"MMS",1 收到一个彩信
+CIEV:"SMSFULL",1 短信存储满,没有新短信在等待
+CIEV:"SMSFULL",2 短信存储满,有新短信在等待

(URC)网络服务类型指示

注:本URC仅适用于合宙4GCAT1模块(Air720U/Air724U系列),不适用于合宙4GCAT4模块(Air720/Air720G/Air720H/Air720D/Air720S)。

注:本章内容仅适用于合宙4GCAT1模块(Air720U/Air724U系列),不适用于合宙4GCAT4模块(Air720/Air720G/Air720H/Air720D/Air720S)。

URC 释义
+E_UTRANService 表示进入4GLTE网络服务
+GSMService 提示进入2GGSM网络服务

通话控制和音频相关命令

打开VOLTE功能:AT+SETVOLTE

对于只支持4G的CAT1模块(Air720UG、Air724UG)而言,需要用本命令打开VOLTE功能才能进行语音通话。而Air720UH模块支持4G和2G,而2G支持语音通话,所以不需要打开VOLTE就可以进行语音通话。

语法规则:

命令类型 语法 返回
设置行命令 AT+SETVOLTE= OK
查询命令 AT+SETVOLTE? +SETVOLTE:
OK
测试命令 AT+SETVOLTE=? +SETVOLTE:0,1
OK

参数定义:

参数 定义 取值 解释
VOLTE功能开关 0 关闭VOLTE功能
1 开启VOLTE功能,缺省值

举例:

命令(→)/
返回(←)
实例 解释和说明
→ AT+SETVOLTE?
← +SETVOLTE:0
OK
→ AT+SETVOLTE=1 打开VOLTE功能
← OK

发起呼叫:ATD

执行命令,用于发出语音呼叫,呼叫号码长度不超过20位。

语法规则:

命令类型 语法 返回和说明
执行命令 ATD; 命令成功,则返回:
OK
如果成功建立连接,则返回:
CONNECT
如果没检测到拨号音dial tone(并且当ATX2 or ATX4时):
NO DIALTONE
If busy(并且当ATX3 or ATX4):
BUSY
通话被挂断或建立失败:
NO CARRIER
如果被叫无应答:
NO ANSWER
ATD 数据呼叫成功,则返回:
CONNECT

参数定义:

参数 定义 取值 对取值的说明
呼叫号码 由以下字符组成:0-9, * , #, +, A, B, C
注:拨112可以建立紧急呼叫,不需要SIM卡。

举例:

命令(→)/返回(←) 实例 解释和说明
→ AT+SETVOLTE=1 打开VOLTE功能
← OK 注:对于只支持4G的CAT1模块(Air720UG、Air724UG)而言,需要用AT+SETVOLTE=1命令打开VOLTE功能才能进行语音通话。而Air720UH模块支持4G和2G,所以不需要打开VOLTE就可以进行语音通话
→ ATD131623***98; 语音呼叫号码13162398(是为了保护隐私,将实际数字隐去,实际操作时要如实输入号码)
← OK
CONNECT
对方接听电话
→ AT+CHUP 模块主动挂断通话
← OK 返回OK

接听来电:ATA

有只有一个来电(RING)时,输入该命令接听来电。当有更多的来电时,请使用AT+CHLD命令接听新的来电。

语法规则:

命令类型 语法 返回和说明
执行命令 ATA OK

举例:

命令(→)/返回(←) 实例 解释和说明
←(URC) RING 有RING上报,表示有来电。注:RING 是一个URC命令(Unsolicited Result Code )
→ ATA 模块接听来电
← OK 返回OK,说明接听来电成功

挂断通话:ATH

通话过程中,输入执行命令会挂断所有电话,包括当前通话(active )、等待通话(waiting)和挂起通话(holding)。

语法规则:

命令类型 语法 返回和说明
执行命令 ATH OK

举例:

命令(→)/返回(←) 实例 解释和说明
←(URC) RING 有RING上报,表示有来电。
→ ATA 模块接听来电
← OK 建立通话
→ ATH 挂断通话
← OK OK

挂断通话:AT+CHUP

通话过程中,输入执行命令会挂断所有电话,包括当前通话(active )、等待通话(waiting)和挂起通话(holding)。作用与ATH相同。

语法规则:

命令类型 语法 返回和说明
执行命令 AT+CHUP OK

列出所有当前的呼叫:AT+CLCC

语法规则:

命令类型 语法 返回
执行命令 AT+CLCC [+CLCC:,,,,[,,[,>]][+CLCC:,,,,[,,ype>[,]][...]]]
测试命令 AT+CLCC=? OK

参数定义:

参数 定义 取值 对取值的说明
呼叫识别id - 整数型;请参考3GPP TS22.030中第 4.5.5.1 节中描述,此参数可在+CHLD命令中被使用
呼叫方向 0 移动发起的呼叫(MO 呼叫)
1 移动终止的呼叫(MT 呼叫)
呼叫状态 0 active
1 held
2 dialing(MO 呼叫)
3 alerting(MO 呼叫)
4 incoming(MT 呼叫)
5 waiting(MT 呼叫)
7 released(by network)
承载/电信业务 0 语音
1 数据
2 传真
该呼叫是否属于多方呼叫 0 不属于
1 属于
对方号码 - 字符串类型,需加双引号。电话号码格式符合定义
呼叫号码类型,具体请参考3GPP
TS 24008 10.5.4.7 部分
129 未知类型
145 国际号码
161 国内号码
177 特殊的网络号码
对应的电话簿中姓名 - 字符型

举例:

命令(→)/返回(←) 实例 解释和说明
→ ATD10086; 语音呼叫号码10086
← OK
→ AT+CLCC 对方接听电话前查询下通话情况
← +CLCC: 1,0,2,0,0,"10086",129,""
OK
=2 表示拨号中,对方尚未接听
← CONNECT 对方接听
→ AT+CLCC 此时再查询下通话状态
← +CLCC: 1,0,0,0,0,"10086",129,""
OK
= 0 表示电话接通并保持激活
→ AT+CHUP 挂电话
← OK

设置主叫号码显示:AT+CLIP

语法规则:

命令类型 语法 返回
设置命令 AT+CLIP= OK
查询命令 AT+CLIP? +CLIP:,
OK
测试命令 AT+CLIP=? +CLIP:(取值列表)
OK
URC上报 +CLIP: ,
[,,,,]
当AT+CLIP=1的时候,此URC主动上报会被打开,此时,如果有来电的时候,就会上报此URC

参数定义:

参数 定义 取值 对取值的说明
URC上报是否开启 0 禁用
1 启用
显示用户CLIP业务在网络中的状态 0 未提供 CLIP业务
1 提供 CLIP业务
2 未知(如:无网络等)
电话号码,类型由定义
电话号码类型 129 ISDN/电话编号方式设计,国家的/国际的未知
145 ISDN/电话编号方式设计,国际号码
161 ISDN/电话编号方式设计,国家的号码
128~255 其他值查阅 GSM 04.08 章节 10.5.4.7
子地址,字符串类型
字地址类型 由GSM 04.08 章节 10.5.4.8定义
电话本上定义的电话号码名字 编码方式由+CSCS定义
主叫号码显示(CLI:Calling
Line Indication)可用性
0 有效
1 主叫方禁用 CLI
2 由于网间互通问题或始发网络的限制,CLI不可用
3 由于主叫方是付费电话,CLI不可用
4 由于其他原因,CLI不可用

举例:

命令(→)/
返回(←)
实例 解释和说明
→ AT+CLIP? 查询当前来电显示状态
← +CLIP: 0,1
OK
=0,表示未启用URC上报
=1,表示网络已经提供给该用户主叫号码显示功能
←(URC) RING 此时有来电也不会显示主叫号码
→ AT+CHUP
← OK
→ AT+CLIP=1 设置来电显示的URC上报为开
← OK
→ AT+CLIP?
← +CLIP: 1,1
OK
=1,表示启用URC上报
←(URC) RING
+CLIP: "1360**8",128,,,"TEST",0
此时有来电,会通过+CLIP这个URC来显示主叫号码

呼叫保持和多方通话:AT+CHLD

使用该指令,可以控制TA的附加业务:呼叫保持和多方通话。呼叫能被保持,恢复,释放和加入多方通话。

语法规则:

命令类型 语法 返回
设置命令 AT+CHLD= OK
测试命令 AT+CHLD=? +CHLD: (取值列表)
OK

参数定义:

参数 定义 取值 对取值的说明
整数型 0 释放所有已保持的呼叫或者为等待中的呼叫设置用户决定用户忙(UDUB)条件
1 如果存在当前呼叫,释放所有当前呼叫并接听另外一个已保持或等待中的呼叫
1X 释放当前某一特定的呼叫X
2 如果存在当前呼叫,保持所有当前呼叫并接听另外一个已保持或等待中的呼叫
2X 保持除呼叫 X 外的所有当前呼叫
3 将一个被保持(held)的通话加入到活跃(active)通话中(建立多方通话)

举例:

命令(→)/
返回(←)
实例 解释和说明
→ AT+CCWA=1,1
← OK
→ ATD137**98; 呼叫137**98
← OK
←(URC) CONNECT 对方接听,通话建立,双方通话中
←(URC) +CCWA: "13601*97",129,1 有又一个电话进来,此时会有如此URC上报
→ AT+CHLD=2 HOLD第一路(+CLCC中id=1),接通第二路
(+CLCC中id=2)
← OK
→ AT+CLCC 查询下当前所有当前通话
← +CLCC: 1,0,1,0,0,"137**98",129
+CLCC: 2,1,0,0,0,"13601
***97",128,"TEST"
OK
第一路第三个参数即=1,表示被保持第二路=0,表示正处激活状态
→ AT+CHLD=21 切回到第一路
← OK
→ AT+CHLD=3 建立三方通话(前提为:SIM卡已经开通此功能)
← OK
→ AT+CHLD=11 释放第一路
← OK

产生DTMF音:AT+VTS

DTMF(Double Tone Multiple Frequency,双音多频),用来在电话建立以后拨打分机号码或自动语音服务。

语法规则:

命令类型 语法 返回和说明
设置命令 AT+VTS=或
AT+VTS=[,]
OK
测试命令 AT+VTS=? +VTS:(取值列表),(取值列表)
OK

参数定义:

参数 定义 取值 对取值的说明
单个DTMF 单个 ASCII 字符,不需要双引号""。范围如下 0-9,#,*,A,B,C,D。DTMF
持续时间定义如下:如果AT+VTS=,则持续时间通过命令+VTD 来设置;如果AT+VTS=,,则持续时间通过定义
持续时间 1~10 tone 的持续时间,以1/10 秒为单位

举例:

命令(→)/
返回(←)
实例 解释和说明
→ AT+VTS=?
← +VTS: (0-9,*,#,A,B,C,D),(1-10)
OK
以下的例子是拨打总机接通后,再用DTMF拨打分机109:

DTMF TONE周期:AT+VTD

语法规则:

命令类型 语法 返回
设置命令 AT+VTD= OK
查询命令 AT+VTD? +VTD:
OK
测试命令 AT+VTD=? + VTD: (取值列表)
OK

参数定义:

参数 定义 取值 对取值的说明
Tone的长度 1~10 以1/10 秒为单位的tone 持续时间

TTS(Text To Speech)功能:AT+CTTS

语法规则:

命令类型 语法 返回
设置命令 AT+CTTS=[,][,] OK
查询命令 AT+CTTS? +CTTS:
OK
测试命令 AT+CTTS=? OK
URC 当TTS播放完毕,会有以下URC上报:
+CTTS:0

参数定义:

参数 定义 取值 对取值的说明
TTS工作模式 0 停止播放TTS
1 播放TTS,使用UCS2编码
2 播放TTS,使用GBK编码(中文)和ASCII编码(数字)
TTS文本 中文和数字,最大长度2047字节
TTS工作状态 0 TTS非播放状态
1 TTS播放状态

举例:

命令(→)
/返回(←)
实例 解释和说明
→ AT+CTTS=2,"123,欢迎你的到来" 播放数字和中文。注:目前暂时无法播放英文,中的英文发音不是单词,而是一个一个分离的字母。
← OK
←(URC) +CTTS:0 播放完毕,会有这个URC上报
→ AT+CTTS=0 也可以在播放过程中用这个命令终止播放
← OK

设置TTS播放模式:AT+CTTSPARAM

语法规则:

命令类型 语法 返回
设置命令 AT+CTTSPARAM=,
,,[,][,dec>]
OK
查询命令 AT+CTTSPARAM? +CTTSPARAM:,,,,
,
OK
测试命令 AT+CTTSPARAM=? OK

参数定义:

参数 定义 取值 对取值的说明
TTS播放音量 0-100 缺省值为50
TTS播放模式,
range:0-3
0 自动读数字,先根据数字规则读数字
1 自动读取数字,首先根据电报规则读取数字
2 根据电报规则读取数字
3 根据数字规则读取数字
TTS播放音高 1-100 缺省值为50
TTS播放速度 1-100 缺省值为50
TTS播放通道 0 主通道
1 辅通道

音频录制:AT+CAUDREC

本命令可以进行本地microphone录音,以及语音通话(voicecall)录音。能够进行本地mic录音的条件是:当前不存在其他音频应用,例如audio play以及voice call。在语音通话进行时本命令仅能实现voice call录音。如果没有指定录音时间

语法规则:

命令类型 语法 返回
设置命令 AT+CAUDREC=[,,,
[,time]]
OK
查询命令 AT+CAUDREC? +CAUDREC:
OK
测试命令 AT+CAUDREC=? +CAUDREC: (list of supported s),
,(list of supported s), (list of
supported s),
URC上报 1) AT+CAUDREC开始录音,带time参数的时候,模块自己录音结束后上报+CAUDREC: 1,
2) AT+CAUDREC开始录音,不管带不带time参数,如果手动AT+CAUDREC=2结束录音,则上报
+CAUDREC: 2,

参数定义:

参数 定义 取值 对取值的说明
录音操作 1 开始录音
2 停止录音
录音文件名 字符串,需用双引号括住。大小写敏感。只支持WAV或AMR后缀格式,大小写皆可。即必须以.wav .WAV .amr .AMR为后缀,例如:
voice.wav song.AMR
录音文件类型 1 麦克风录音
2 通话录音
录音文件质量 0 低质量
1 中质量
2 高质量
3 最后质量
录音时间,单位:100ms 缺省值为0
当
录音状态 0 未录音状态
1 录音状态
录音持续时间 单位:毫秒

语音文件播放:AT+CAUDPLAY

语法规则:

命令类型 语法 返回
设置命令 AT+CAUDPLAY=[,[,ype>]] OK
查询命令 AT+CAUDPLAY? +CAUDPLAY:
OK
测试命令 AT+CAUDPLAY=? +CAUDPLAY: (取值范围列表),
OK
URC上报 1)AT+CAUDPLAY=1,开始播放,模块自己结束播放后提示+CAUDPLAY:1, //为播放持续时间
2) AT+CAUDPLAY=2结束播放,提示+CAUDPLAY:2, //如果播放过程没有暂停过,则为从开始播放到停止播放的持续时间;如果暂停过,则为最后一次恢复播放到停止播放的持续时间
3) AT+CAUDPLAY=3暂停播放,提示+CAUDPLAY:3, //如果播放过程没有暂停过,则为从开始播放到暂停播放的持续时间;如果暂停过,则为最后一次恢复播放到暂停播放的持续时间
4) AT+CAUDPLAY=4恢复播放,模块自己结束播放后提示+CAUDPLAY:4, //为从恢复播放到播放结束所持续的时间

参数定义:

参数 定义 取值 对取值的说明
使用模式 1 开始播放(start)
2 停止播放(stop)
3 暂停播放(pause)
4 恢复播放(resume)
音频文件名字 AMR,WAV,MP3格式。需要加后缀,支持8K采样音频数据
播放持续时间 单位:毫秒
播放模式 1 local audio path (缺省值:1)
2 voice call path
注意:播放模式只在8910 V301826及以上版本支持

举例:

命令(→)
/返回(←)
实例 解释和说明
→ AT+FSCREATE="111.mp3" 创建音频文件
← OK
→ AT+FSWRITE="111.mp3",0,6314,20 输入音频文件。这里长度6314只是举例,请以实际为准
← > 这里输入音频文件内容(二进制,即16进制)
← OK
→ AT+CAUDPLAY=1,"111.mp3" 播放音频文件注:音频文件名字需要加后缀
← OK
→ AT+CAUDPLAY=3 暂停播放
← OK
→ AT+CAUDPLAY=4 恢复播放
← OK
→ AT+CAUDPLAY=2 终止播放
← OK
通话中给对端播放语音文件:
→ AT+FSCREATE="111.mp3" 创建音频文件
← OK
→ AT+FSWRITE="111.mp3",0,6314,20 输入音频文件。这里长度6314只是举例,请以实际为准
← > 这里输入音频文件内容(二进制,即16进制)
← OK
→ AT+SETVOLTE=1 打开VOLTE功能
← OK 注:对于只支持4G的CAT1模块(Air720UG、Air724UG)而言,需要用AT+SETVOLTE=1命令打开VOLTE功能才能进行语音通话。而Air720UH模块支持4G和2G,所以不需要打开VOLTE就可以进行语音通话
→ ATD131623***98; 语音呼叫号码13162398(是为了保护隐私,将实际数字隐去,实际操作时要如实输入号码)
← OK
CONNECT
对方接听电话
→ AT+CAUDPLAY=1,"111.mp3",2 播放音频文件注:音频文件名字需要加后缀
← OK 通话对端听到播放111.mp3语音文件
→ AT+CHUP 模块主动挂断通话
← OK 返回OK

语音通道切换:AT+AUDCH

语法规则:

命令类型 语法 返回
设置命令 AT+AUDCH=, OK
查询命令 AT+AUDCH? +AUDCH: ,
OK
测试命令 AT+AUDCH=? +AUDCH: (range of s,list of
s)
OK

参数定义:

参数 定义 取值 对取值的说明
音频输出通道 0 通道0,听筒(receiver)
1 通道1,耳机(headphone)
2 通道2,喇叭(speaker)
音频输入通道 0 mainmic
1 auxiliarymic
3 headphonemicleft
4 headphonemicright
注意:输入通道取值3和4代表对应硬件上差分输入的mic两个脚,使用耳机mic时使用3、4
通道;开发板上的耳机孔需要使用四段国标耳机

通话音量控制:AT+CLVL

语法规则:

命令类型 语法 返回
设置命令 AT+CLVL= OK
查询命令 AT+CLVL? +CLVL:
OK
测试命令 AT+CLVL=? +CLVL: (取值范围)
OK

参数定义:

参数 定义 取值 对取值的说明
音频通道 0~100 0声音最小,100声音最大。缺省值为60

本地音频播放音量控制:AT+CRSL

本命令影响设备本地音频播放的音量,包括CTTS和CAUDPLAY。

语法规则:

命令类型 语法 返回
设置命令 AT+CRSL= OK
查询命令 AT+CRSL? +CRSL:
OK
测试命令 AT+CRSL=? +CRSL: (取值范围)
OK

参数定义:

参数 定义 取值 对取值的说明
音频通道 0~100 0声音最小,100声音最大。缺省值为60

音频功放类型设置指令:AT+SPKPA

本命令设置音频功放类型。

语法规则:

命令类型 语法 返回
设置命令 AT+SPKPA= OK
查询命令 AT+SPKPA? +SPKPA:
OK

参数定义:

参数 定义 取值 对取值的说明
音频功放类型 0 CLASSAB
1 CLASSD, 默认值
2 CLASSK

音频MIC增益设置指令:AT+CACCP

本命令设置音频MIC增益注意:语音业务的音频参数必须在通话过程中设置

语法规则:

命令类型 语法 返回
设置命令 AT+CACCP=,,, OK

参数定义:

参数 定义 取值 对取值的说明
设备应用模式 0 Voice Call NB
2 Music Record
5 Voice Call WB
通道 0 HandSet
1 HandFree
2 Headset4P
3 Headset3P
增益类型 0 Ingain
6 Recordgain
增益值 由算法增益和模拟增益构成:算法增益等级0-7,模拟增益0-15,小端编码。例如:设置算法增益为7,模拟增益为14,则gainHex为"07000E00"

举例:

命令(→)
/返回(←)
实例 解释和说明
通话中设置MIC增益:
→ AT+SETVOLTE=1 打开VOLTE功能
← OK VOLTE通话为Voice Call WB通话
→ ATD131623***98; 语音呼叫号码13162398(是为了保护隐私,将实际数字隐去,实际操作时要如实输入号码)
← OK
CONNECT
对方接听电话
→ AT+CACCP=5,1,0,"07000f00" 设置通话模式MIC增益,算法增益等级为7,模拟增益为15
← +CACCP:
OK
返回OK,设置成功
→ AT+CHUP 模块主动挂断通话
← OK 返回OK
录音时设置MIC增益:
→ AT+CACCP=2,1,6,"07000f00" 设置录音模式MIC增益,算法增益等级为7,模拟增益为15
← +CACCP:
OK
返回OK,设置成功
→ AT+CAUDREC=1,1.amr,1,2,50 调用录音指令进行录音
← OK 返回OK
←(URC) +CAUDREC: 1,5000 上报录音状态

IMS注册状态指令:AT+CIREG

注:本命令内容仅适用于合宙 4G CAT1 模块(Air720U/Air724U 系列),不适用于合宙 4G CAT4 模块(Air720/Air720G/Air720H/Air720D/Air720S)。

当IMS注册状态为"未注册"时,此参数不存在。1:根据MMTEL进行rtp语音传输,参见3GPP TS

语法规则:

命令类型 语法 返回
设置行命令 AT+CIREG= OK
查询命令 AT+CIREG? +CIREG:,[,]
OK
测试命令 AT+CIREG=? +CIREG:(0-2)
OK

参数定义:

参数 定义 取值 解释
IMS注册信息上报状态 0 禁用上报
1 启用上报(包含参数reg_info)
2 启用上报(包含参数reg_info和ext_info)
IMS注册状态 0 未注册
1 已注册

短消息命令

PDU短信编码格式介绍

图表 1 :MO 短信 PDU格式

图表 2 :MT 短信 PDU格式

参数 定义 解释和说明
MO Mobile Originated 模块发送的
MT Mobile Terminated 模块接收的
SCA Length 短信中心地址的长度
TON Type of Number 号码类型:
000:未知
001:国际
010:国内
111:留作扩展
NPI Numbering Plan Identifier 号码鉴别:
0000:未知
0001:ISDN/电话号码
1111:留作扩展
SCA Short Message Center Address 短信中心地址
MTI Message Type Identifier 信息类型:
Bit Explanation
11 Reserved
10 SMS-STATUS REPORT (SC => MS)
01 SMS-SUBMIT (MS => SC)
00 SMS-DELIVER (SC => MS)
RD Reject Duplicate 拒绝重复短信
VPF Validity Period Format 有效期格式
SRR Status Report Request 状态报告请求,在MO短信中设定
SRI Status Report Indication 状态报告指示,在MT短信中指示该MT短信是否为状态报告
UDHI User Data Header Indicator 用户数据头指示
RP Reply Path 回复路径

图表1:MO 短信 PDU格式

图表1:MO 短信 PDU格式

图表2:MT 短信 PDU格式

图表2:MT 短信 PDU格式

选择短消息服务:AT+CSMS

语法规则:

命令类型 语法 返回
设置命令 AT+CSMS= +CSMS:,,
OK
查询命令 AT+CSMS? +CSMS:,,,
OK
测试命令 AT+CSMS=? +CSMS:(取值列表)
OK

参数定义:

参数 定义 取值 对取值的说明
短消息服务级别 0 GSM03.40和03.41(SMS的AT指令语法与GSM07.05 Phase 2中的
4.7.0版本兼容;支持不需要新指令语法的Phase2+特性(比如:使用
Phase 2+新编码方案的消息路由))
1 GSM03.40 和 03.41(SMS 的 AT 指令语法与 GSM07.05 Phase
2+版本兼容)
128 pdu模式操作向前兼容于与phase2不一致的版本。此时会认为短信
pdu里不包含短信中心号(暂不支持)
SMS-MO(发短信) 0 不支持
1 支持
SMS-MT(收短信) 0 不支持
1 支持
小区广播消息 0 不支持
1 支持

短消息优先存储区选择:AT+CPMS

本命令可设置用于读取、存储等操作的存储器,包括, 和。

!

语法规则:

命令类型 语法 返回和说明
设置命令 AT+CPMS=[,[, +CPMS:,,,,,
]]
OK
查询命令 AT+CPMS? +CPMS:
,,,,,>,,,
OK
测试命令 AT+CPMS=? +CPMS:( 取值列表 ),( 取值列表),(取值列表)
OK

参数定义:

参数 定义 取值 对取值的说明
读取和删除消息时使用的存储器,涉及以下3个AT指令:AT+CMGL AT+CMGR
AT+CMGD
"SM" SM即SIM 卡
"ME" ME为模块
写、存储和发送消息时使用的存储器,涉及以下2个AT指令:AT+CMSS 和
AT+CMGW
"SM" SM即SIM 卡
"ME" ME为模块
若没有建立到 TE的路由,则将接收的消息存储在该存储器 "SM" SM即SIM 卡
"ME" ME为模块
中当前存储消息的数量 - 整数型
中可存储的消息的总量 - 整数型

举例:

命令(→)/
返回(←)
实例 解释和说明
→ AT+CPMS=?
← +CPMS: ("SM","ME"),("SM","ME"),("SM","ME")
OK
→ AT+CPMS? 查询当前优选存储区类型
← +CPMS: "SM",8,50,"SM",8,50,"SM",8,50
OK
注:目前仅支持"SM"存储类型。请使用:
AT+CPMS="SM","SM","SM"
设置短信存储类型。

短消息中心地址:AT+CSCA

该指令适用于PDU格式和TEXT格式,使用设置指令,可更新级SMSC(Short Message Service Center)地址。通过该地址,可以发送移动终端SMS,TEXT模式下,发送命令和写命令都可使用该项设置;PDU模式下,发送和设置指令也可使用该项设置,但条件是PDU编码后的SMSC地址长度等于0。这里必须说明的是虽然用户可以自行设置短消息的服务中心地址,但不能随心所欲,否则短消息发送不出去,因此在发送短消息之前首先必须搞清楚SIM卡所属的短消息服务中心地址。

语法规则:

命令类型 语法 返回和说明
设置命令 AT+CSCA=[,] OK
查询命令 AT+CSCA? +CSCA:,
OK
测试命令 AT+CSCA=? OK

参数定义:

参数 定义 取值 对取值的说明
短信中心地址(Short Message
Center Address)
- 字符型;BCD数字(或GSM缺省字母字符)需要转换为字符;格式由指定
短信中心地址格式(Type of sca) - 8 位整数型(缺省值请参考)
129 ISDN/电话编号方式设计,国家的/国际的未知。
145 ISDN/电话编号方式设计,国际号码。
161 ISDN/电话编号方式设计,国家的号码。
128~255 其他值查阅 GSM 04.08 章节 10.5.4.7

举例:

命令(→)
/返回(←)
实例 解释和说明
→ AT+CSCA="+8613010314500",145 对一个联通的SIM卡设置短信中心号码
← OK
→ AT+CSCA? 查询下短信中心号码的设置
← +CSCA: "+8613010314500",145
OK
已经设置成功

短消息格式:AT+CMGF

设置指令用于指定短消息的输入和发送的格式,即告诉TA输入输出的消息格式是PDU格式还是TEXT格式。

语法规则:

命令类型 语法 返回和说明
设置命令 AT+CMGF=[] OK
查询命令 AT+CMGF? +CMGF:
OK
测试命令 AT+CMGF=? +CMGF: (取值列表)
OK

参数定义:

参数 定义 取值 对取值的说明
显示消息发送、列表、读和写指令以及接收到消息时的主动汇报使用的格式 0 PDU模式,默认值
1 TEXT模式

举例:

命令(→)/
返回(←)
实例 解释和说明
→ AT+CMGF? 查询当前模式
← +CMGF: 0
OK
当前模式是PDU模式

设置短信TEXT模式参数:AT+CSMP

文本模式下(即AT+CMGF=1),当向网络侧发送短消息或将短消息存放在存储器中时,使用该设置命令可选择需要的附加参数取值。除此之外,设置命令还可用于设置从SMSC 接收到该短消息时算起的有效期(的取值范围为0...255)或定义有效期终止的绝对时间(为字符串时)。

语法规则:

命令类型 语法 返回
设置命令 AT+CSMP=[[,[,[,]]]] OK
查询命令 AT+CSMP? +CSMP:,,,
OK
测试命令 AT+CSMP=? +CSMP: (取值列表),(取值列表), (
取值列表), (取值列表)
OK

参数定义:

参数 定义 取值 对取值的说明
短信首字节(First
Octet)
17,21
,33,3
7,49,
53
对字节的具体描述如下(以SMS-SUBMIT为例):
b7 b6 b5 b4 b3 b2 b1 b0
RP UDHI SRR VPF RD MTI
- -
MTI:消息类型
b1=0&b0=0 表示SMS-DELIVER
b1=0&b0=1 表示SMS-SUBMIT
其他消息类型请参考GSM03.40
VPF:定义短信有效时间的格式
b4=1&b3=0:Relative format,此时是1个字节的整数型
b4=1&b3=1:Absolute format,此时是7个字节的整数型
SRR:Status Report Request,设置是否需要短信状态报告
b7 b6 b5 b4 b3 b2 b1 b0
RP UDHI SRR VPF RD MTI
UDHI:User Data Header Indicator,指示User Data单元是否有一个
header
RP:Reply Path,回复路径
RD:Reject Duplicate,拒绝重复短信
短信有效期(Valid
Period)
取值由字段的VPF决定:如果VPF=10(Binary),则为相对模式,与短信有效时间的对应关系如下:
值有效时间
0-143(00 to 8F) ( vp + 1) x5分钟
144-167(90 to A7) 12小时 + ( (vp – 143 )×30分钟
168-196(A8 to C4) ( vp – 166 ) x 1 天
197-255(C5 to FF) ( vp – 192 ) x 1 星期如果VPF=11(Binary),则为绝对模式,是7个字节的字符型,表示短信有效期到期的时间点。
TP-协议-标识 0 整数型,具体请参考GSM03.40
短信内容编码方案 整数型,具体请参考GSM03.38。一般情况下:
0- 7bit GSM Default
4- 8bit Data
8- UCS2
值 有效时间
0-143(00 to 8F) ( vp + 1) x5分钟
144-167(90 to A7) 12小时 + ( (vp – 143 )×30分钟
168-196(A8 to C4) ( vp – 166 ) x 1 天
197-255(C5 to FF) ( vp – 192 ) x 1 星期

举例:

命令(→)/
返回(←)
实例 解释和说明
→ AT+CSMP=17,11,0,0 设置TEXT模式短信发送的各参数:
=17(缺省),表示MTI=01(binary)=SMS-SUBMIT,并且
VPF=10(binary)= Relative format
=11,表示有效时间为(11+1)x5分钟=1个小时
=0,表示编码格式是7bit GSM Default
← OK

控制TEXT模式下短信头信息显示:AT+CSDH

设置命令可控制是否在文本模式下的结果码中显示详细的头信息.

语法规则:

命令类型 语法 返回
设置命令 AT+CSDH=[] OK
查询命令 AT+CSDH? +CSDH:
OK
测试命令 AT+CSDH=? +CSDH:
OK

参数定义:

参数 定义 取值 对取值的说明
是否显示头信息 0 对于SMS-DELIVER 和 SMS-SUBMIT短信,不在+CMT,+CMGL,+CMGR
结果码中显示+CSCA和+CSMP指令设置的参数(、、、
、、),也不显示、或;对于
+CMGR 指令结果码中的 SMS-COMMAND,不显示、、
、、、
1 在结果码中显示这些取值

举例:

命令(→)/
返回(←)
实例 解释和说明
→ AT+CSDH? 查询是否显示头信息
← +CSDH: 0
OK
查询结果为:不显示相关头信息
→ AT+CMGR=8 查询位置为8的短信,内容为"good!"
← +CMGR: "REC
READ","+86131**56",,"12/08/08,10:43:04+32"
Good!
OK
查询结果不显示
,,,,,
,
→ AT+CNMI=2,2,0,0,0 设置短信自动内容直接上报给TE,不缓存(将+CNMI的第二个参数设置为2
即可)
← OK
←(URC) +CMT:"+86131**56",,"12/08/08,11:09:23+32"
Report
发送一个内容为Report的短信给模块,上报内容不显示、、 和
、、
→ AT+CSDH=1 设置=1,即显示头信息
← OK
→ AT+CMGR=8 仍旧查询位置8的短信
← +CMGR: "REC
UNREAD","+86131**56",,"12/08/08,10:43:04+
32",145,17,0,0,"+8613800210500",145,5
Good!
OK
查询结果显示
,,,,,
,
←(URC) +CMT:
"+86131**56",,"12/08/08,11:05:45+32",145,1
7,0,0,"+8613800210500",145,7
weather
发送一个内容为weather的短信给模块,上报内容显示、、 和
、、

新消息指示:AT+CNMI

该指令用于PDU格式和TEXT格式,当TE处于在用状态时(如:DTR信号处于"ON"状态),使用设置指令,可设置新消息如何从网络侧发送到TE。若 TE 处于待用状态(如:DTR信号处于"OFF"状态),消息接收流程应该按照GSM 03.38 的规定。

语法规则:

命令类型 语法 返回和说明
设置命令 AT+CNMI=[[,[,
[,[,]]]]]
OK
查询命令 AT+CNMI? +CNMI:,,,,
OK
测试命令 AT+CNMI=? +CNMI: (取值列表),(取值列表),(取值列表),(取值列表),(取值列表)
OK

参数定义:

参数 定义 取值 对取值的说明
TA给TE传送短信的模式 0 缓冲TA中的非请求结果码;若TA结果码缓冲器已满,结果码指示可以缓冲存储在其他存储空间或者把最旧的非请求结果码指示丢弃,替换为新接收到的指示。
1 当TA-TE间的链路被占用(比如:在线数据模式下),丢弃结果码指示,并拒绝新接收消息的非请求结果码。否则,直接转发给TE。
2 当TA-TE间的链路被占用(比如:在线数据模式下),缓冲TA中的非请求结果码;当链路释放后,把所有结果码发送给TE。否则,直接转发给TE。
3 在TA 处于数据模式的情况下,使用特定的TA-TE 连接技术将结果码和数据同时传给TE。
新短信上报的方式 0 没有SMS-DELIVER的指示发送给TE
1 若 SMS-DELIVER 存储在 ME/TA ,存储位置靠非请求结果码 +CMTI:
, 来提示给TE。
2 SMS-DELIVER消息(类别2的消息和位于消息等待指示组中的消息(存储消息))直接发送到TE。使用如下指令的非请求结果码:
+CMT:[], (启用PDU模式)或者+CMT:
,[], ,[,,,,,,
](启用TEXT模式。斜体部分是否显示由+CSDH设置命令决定)
说明:若AT指令接口作为唯一的显示设备,ME必须支持类别0消息和位于消息等待指示组中的消息的存储(丢弃消息)。
3 通过使用=2定义的非请求结果码,类别3的SMS-DELIVER消息直可接发送到TE。其他数据编码方案下的消息显示结果均遵循=1的定义。
SMS-DELIVER 结果码(+CMT,+CMTI)和确认(+CNMA)的关系总结:
no class or class 0 or class 2 or class 3
class 1 messagewaiting messagewaiting
indication group indication group
(discard) (store)
1 +CMTI [+CMTI1)] +CMTI +CMTI
2 +CMT & +CMT[&+CNMA2)] +CMTI +CMT &
+CNMA3) +CNMA3)
3 +CMTI [+CMTI1)] +CMTI +CMT&
+CNMA3)
1) 除了AT命令没有其他显示手段的时候,显示该结果码;
2) 当+CSMS =1并且ME只有AT命令这一个显示手段时,需要+CNMA确认
3) 当+CSMS =1时需要+CNMA确认注:如果在一定的时间内没有+CNMA确认,MT将不再发短信提示给TE
小区广播短消息的上报方式 0 无 CBM 指示发送到 TE
2 收到的CBM使用如下格式直接发送到TE:
+CBM:(启用PDU 模式)或者
+CBM:,,,,(启用
TEXT模式)
短信状态报告上报方式 0 无SMS-STATUS-REPORTS发送到TE。
1 SMS-STATUS-REPORT消息使用如下格式直接发送到TE:
+CDS:(启用PDU模式)或者
+CDS:,,[],[],,
,(启用TEXT模式)
注:
,请参考+CMGR
0 当为1~3时,这条指令所定义的TA缓存中的结果码被发送到TE(在发送之前,OK应该被接收到)
1 当为1~3时,将清除该指令中定义的TA对非请求结果码的缓冲
no class or
class 1
class 0 or
messagewaiting
indication group
(discard)
class 2 or
messagewaiting
indication group
(store)
class 3
1 +CMTI [+CMTI1)] +CMTI +CMTI
2 +CMT &
+CNMA3)
+CMT[&+CNMA2)] +CMTI +CMT &
+CNMA3)
3 +CMTI [+CMTI1)] +CMTI +CMT&
+CNMA3)
1) 除了AT命令没有其他显示手段的时候,显示该结果码;
2) 当+CSMS =1并且ME只有AT命令这一个显示手段时,需要+CNMA确认
3) 当+CSMS =1时需要+CNMA确认注:如果在一定的时间内没有+CNMA确认,MT将不再发短信提示给TE

举例:

命令(→)
/返回(←)
实例 解释和说明
→ AT+CNMI=? 查询参数范围
← +CNMI: (0-3),(0-3),(0-3),(0-1),(0-1)
OK
模块查询结果
→ AT+CNMI=2,1 设置CNMI参数
← OK
←(URC) +CMTI: "SM",1 此时收到一个短信,缓存在中,只用+CMTI上报新短信位置索引
→ AT+CNMI=1,2 设置=2,即新短信不缓存,直接上报
← OK
→ AT+CSMS=1 必须把+CSMS的第一个参数设置为1,才支持+CNMA命令
← OK

新短消息确认:AT+CNMA

使用执行命令,可确认是否正确接收新消息(SMS-DELIVER 或SMS-STATUS-REPORT),该新消息是由 MT 直接发送到 TE而不缓存。在同时满足2个条件的情况下,需要通过AT+CNMA给出短信确认:→通过 AT+CSMS=1,将设为1;→通过AT+CNMI命令将设为2或者将设置为1;在满足上述2个条件后,TE如果在收到短信后没有通过AT+CNMA给MT确认,CNMI的参数和会被重置为0,MT也不再给TE发短信。

语法规则:

命令类型 语法 返回和说明
执行命令 TEXT模式(AT+CMGF=1):
AT+CNMA
OK
PDU模式(AT+CMGF=0):
AT+CNMA[=[,[PDUis
given]]]
OK
测试命令 AT+CNMA=? OK

参数定义:

参数 定义 取值 对取值的说明
PDU 模式下确认短信的方式 0 该指令与文本模式定义的指令执行类似
1 发送 RP-ACK(或正确接收到的缓冲结果码)
2 发送 RP-ERROR(若 PDU 未给定,ME/TA 将发送 GSM 03.40 TP-FCS 取值设定为 "FF"的 SMS-DELIVER-REPORT 消息(非请求错误原因))

举例:

命令(→)/
返回(←)
实例 解释和说明
具体实例请参考+CNMI条目

发送短信:AT+CMGS

使用设置指令,可将 SMS(SMS-SUBMIT)从TE发送到网络侧。发送成功后,消息参考值将返回给TE。

语法规则:

命令类型 语法 返回和说明
设置命令 文本模式(AT+CMGF=1)情况下:
AT+CMGS=[,]>text to send
发送成功则返回:
+CMGS:
OK
说明:即0x1A是发送,即0x1B是终止发送。
发送失败则返回:
+CMS ERROR:
PDU模式(AT+CMGF=0)情况下:
AT+CMGS=
>PDU to send
发送成功,返回:
+CMGS:
OK
发送失败则返回:
+CMS ERROR:
测试命令 AT+CMGS=? OK

参数定义:

参数 定义 取值 对取值的说明
目的地址( Destination
Address)
- GSM 03.40 TP-Destination-Address 中"地址-取值"字段,字符型;将 BCD 数值(或缺省 GSM 字母格式的字符) 转换为当前选择的 TE 字符集中的字符(请参考 TS 07.07 中的+CSCS
指令);地址类型由定义
目的地址类型(Type of
)
- 整数型的 GSM04.11TP-Destination-Address 中的 8 位"类型-地址"字段(当的首字符为+(IRA 43)时,缺省值为
145;否则缺省值为 129)
TPDU短信长度 - 整数型。该长度不将短信中心号码的长度计算在内
消息参考(MessageReference) 0~255 整数型的 GSM 03.40 TP-Message-Reference

举例:

命令(→)/
返回(←)
实例 解释和说明
发送TEXT模式英文短信:
→ AT+CMGF=1 设置为TEXT模式
← OK
→ AT+CSMP? 查询当前的TEXT模式短信参数
← +CSMP: 17,11,0,0
OK
当前的=0 (GSM)
AT+CSCS?
+CSCS: "IRA"
OK
→ AT+CMGS="139****6785" 发英文短信给测试手机。注:139****6785是发送目的号码,请按照实际填写,不要照抄
← > 此时会返回>
→ hello,world! 返回>后,输入短信内容,例如:hello,world!然后输入
即0x1A就可以发送出去了
← +CMGS: 108
OK
发送成功,=108
发送TEXT模式中文短信:
→ AT+CMGF=1 设置为TEXT模式
← OK
→ AT+CSMP?
← +CSMP: 17,167,0,0
OK
→ AT+CSMP=17,167,0,8 修改最后一个参数=8
← OK

把消息写入存储器:AT+CMGW

使用设置指令,可将SMS(SMS-DELIVER 或 SMS-SUBMIT)从TE发送到存储器,并返回已存储消息的存储位置参数。除非指定其他参数,否则,该消息的状态将被设置为"存储未发送"。

语法规则:

命令类型 语法 返回和说明
设置命令 TEXT模式下(AT+CMGF=1):
AT+CMGW[=[,[,
]]]text is
entered
成功,返回:
+CMGW:
OK
失败则返回:
+CMS ERROR:
PDU模式下(AT+CMGF=0):
AT+CMGW=[,]
成功,返回:
+CMGW:
PDU is given OK
失败则返回:
+CMS ERROR:
测试命令 AT+CMGW=? 返回:
OK

参数定义:

参数 定义 取值 对取值的说明
目的地址(Destination
Address)
- GSM 03.40 TP-Destination-Address 中"地址-取值"字段,字符型;将 BCD 数值(或缺省 GSM 字母格式的字符) 转换为当前选择的 TE 字符集中的字符(请参考 TS 07.07 中的+CSCS
指令);地址类型由定义
目的地址类型(Type
of )
- 整数型的 GSM04.11TP-Destination-Address 中的 8 位"类型-地址"字段(当的首字符为+(IRA 43)时,缺省值为
145;否则缺省值为 129)
源地址(OriginatingAddre
ss)
- GSM 03.40 TP-Originating-Address 中"地址-取值"字段,字符型;将 BCD 数值(或缺省 GSM 字母格式的字符) 转换为当前选择的 TE 字符集中的字符(请参考 TS 07.07 中的+CSCS
指令);地址类型由定义
源地址类型(Type of
)
- 整数型的 GSM 04.11 TP-Originating-Address 中的 8 位"类型-地址"字段(当的首字符为+(IRA 43)时,缺省值为
145;否则缺省值为 129)
PDU短信长度 - 整数型。该长度不将短信中心号码的长度计算在内
短信状态 REC UNREAD 已接收的未读消息(TEXT模式下,即+CMGF=1)
REC READ 已接收的已读消息(TEXT模式下,即+CMGF=1)
STO UNSENT 存储未发送消息(TEXT模式下,即+CMGF=1)
STO SENT 存储已发送消息(TEXT模式下,即+CMGF=1)
0 已接收的未读消息(PDU模式下,即+CMGF=0)
1 已接收的已读消息(PDU模式下,即+CMGF=0)
2 存储未发送消息(PDU模式下,即+CMGF=0)
3 存储已发送消息(PDU模式下,即+CMGF=0)

举例:

命令(→)
/返回(←)
实例 解释和说明
存储一个TEXT短信(英文):
→ AT+CMGF=1 设置为TEXT模式
← OK
→ AT+CSCS="GSM" 或AT+CSCS="IRA"
← OK
→ AT+CSMP=17,167,0,0
← OK
→ AT+CMGW="139****6785" 发送短信给目的号码
← > 此时会返回>
→ HI! 返回>后,输入短信内容,然后输入
即0x1A就可以保存短信
← +CMGW: 6
OK
返回的index=6,表示该短信在存储区的位置是第6个
存储一个TEXT短信(中文):
→ AT+CMGF=1 设置为TEXT模式
← OK
→ AT+CSCS="GSM" 设置AT命令中字符的编码格式为UCS2
← OK
→ AT+CSMP=17,167,0,8 Dcs=8,表示短信存放的格式为UCS2编码
← OK
→ AT+CMGW="10086" 目的地址是10086(UCS2编码格式)
内容为"感谢"(UCS2编码格式)
← > 此时会返回>
→ 611F8C22 返回>后,输入短信内容611F8C22(hex格式),然后输入即0x1A就可以保存短信
← +CMGW: 7
OK
该短信存在index=7的位置
存储一个PDU短信:
→ AT+CMGF=0 设置为PDU格式
← OK
→ AT+CMGW=19
← > 此时会返回>
→ 0011100D91683161450179F900080004611F8C22
PDU格式短信内容为"感谢"。然后输入
即0x1A就可以保存短信
← +CMGW: 8
OK
该短信存在index=8的位置

从存储器发送短信:AT+CMSS

使用设置指令,可将消息存储器中,位置取值参数为的消息发送到网络侧(SMS-SUBMIT 或 SMS-COMMAND)。若给定 SMS-SUBMIT 消息的新接收地址参数,应使用该参数,而不能使用已存储消息的参数。发送成功后,参考值 将返回给 TE。

语法规则:

命令类型 语法 返回和说明
设置命令 AT+CMSS=[,[,]] +CMSS:
OK
测试命令 AT+CMSS=? OK

参数定义:

参数 定义 取值 对取值的说明
待发送短信在存储器的地址 - 整数型;关联存储器支持的地址编号范围内的取值
目的地址(Destination
Address)
- GSM03.40TP-Destination-Address 中"地址-取值"字段,字符型;将 BCD 数值(或缺省 GSM 字母格式的字符) 转换为当前选择的 TE 字符集中的字符(请参考 TS07.07 中的+CSCS 指令);地址类型由定义
目的地址类型(Type
of )
- 整数型的 GSM 04.11 TP-Destination-Address 中的 8 位"类型-地址"字段(当的首字符为+(IRA 43)时,缺省值为 145;否则缺省值为 129)
消息参考(MessageReferenc
e)
0~255 整数型的 GSM 03.40 TP-Message-Reference

举例:

命令(→)
/返回(←)
实例 解释和说明
→ AT+CMGF=1 设置为TEXT模式
← OK
→ AT+CSCS="GSM" 或AT+CSCS="IRA"
← OK
→ AT+CMSS=6 发送+CMGW实例中被+CMGW存储起来的编号为6的短信,接收方的号码仍为+CMGW存入的号码
← +CMSS: 11
OK
发送成功,=11
→ AT+CMSS=7,"13192310560" 发送+CMGW实例中被+CMGW存储起来的编号为7的中文短信,并且改变接收方号码为13192310560
← +CMSS: 12
OK
发送成功

短信链路控制命令:AT+CMMS

SET命令控制短信中继协议(RP)层的链接的连续性。当使能了该特性,并且网络也支持时,发送连续多条短信时RP层的链接将一直存在,而无需在每两条短信之间再进行拆链和建链的过程,从而发送的速度将快很多。READ命令返回当前的参数值。TEST命令返回命令支持的参数值。

语法规则:

命令类型 语法 返回和说明
设置命令 AT+CMMS= [] OK
查询命令 AT+CMMS? +CMMS:
OK
测试命令 AT+CMMS=? +CMMS: (取值列表)
OK

参数定义:

参数 定义 取值 对取值的说明
状态 0 禁能
1 使能一次。当前一条发送短信的返回和后一条发送短信的间隔小于1-5秒(具体的取值取决于MS的实现),RP链接保持不断。当超过了1-5秒时,
RP链接中断,并且值将自动设置回0,即不再继续使能。
2 一直使能。当前一条发送短信的返回和后一条发送短信的间隔小于1-5秒(具体的取值取决于MS的实现),RP链接保持不断。当超过了1-5秒时,
RP链接中断,并且值仍保持为2,即继续使能

读短信:AT+CMGR

使用设置指令,可将消息存储器中,索引为的消息返回到TE。若该消息处于"已接收未读"状态,则将其状态变为"已接收已读"。

短信中心时间戳(Short

语法规则:

命令类型 语法 返回和说明
设置命令 AT+CMGR= PDU模式下(AT+CMGF=0),返回:
+CMGR:,[],
OK
如果是TEXT模式(AT+CMGF=1):对于SMS-DELIVER:
+CMGR:,,[],[,,,,s>,,,]
OK
对于SMS-SUBMIT:
+CMGR:,,[][,,,,,[p>],,,]
OK
对于SMS-STATUS-REPORT:
+CMGR:,,,[],[],,
,
OK
对于SMS-COMMAND:
+CMGR:,,[,,[],[],[],gth>]
OK
注:以上斜体字是否显示由+CSDH的设置决定
测试命令 AT+CMGR=? OK

参数定义:

参数 定义 取值 对取值的说明
, 请参考AT+CMGW条目
,
MT 电话簿记录对应
或的显示
字符型
Protocol Identification 请参考AT+CSMP条目
PDU短信首字节
Valid Period
Data Coding System

列举短消息:AT+CMGL

使用设置指令,可将查询优选消息存储器中,状态值为的消息显示在 TE中。若该消息处于"已接收未读"状态,则将其状态变为"已接收已读"。

语法规则:

命令类型 语法 返回和说明
设置命令 AT+CMGL= 如果是PDU模式(AT+CMGF=0),则取值如下:
0已接收的未读消息
1 已接收的已读消息
2 已存储的未发送短信
3 已存储的已发送短信
4 所有短信且返回如下:
+CMGL:,,[],<
pdu>+CMGL:,,[],>[...]]
OK
如果是TEXT模式(AT+CMGF=1),则取值如下:
"REC UNREAD" 已接收的未读消息
"REC READ" 已接收的已读消息
"STO UNSENT" 已存储的未发送短信
"STO SENT" 已存储的已发送短信
"ALL" 所有短信注意:对于以上取值,所有字母要大写。双引号可加可不加。对于SMS-DELIVER或SMS-SUBMIT,则返回(注:斜体字是否显示由+CSDH
的设置决定):
+CMGL:,,,[],[][,a>,][+CMGL:,t>,,[],[][,,]F>[...]]
OK
对于SMS-STATUS-REPORT,则返回:
+CMGL:,,,,[],[],,>,[+CMGL:,,,,[],[
],,
,[...]]
OK
对于SMS-COMMAND,则返回:
+CMGL:,,,[+CMGL:,<
stat>,,[...]]
OK
测试命令 AT+CMGL=? +CMGL: (取值列表)
OK

参数定义:

参数 定义 取值 对取值的说明
本词条的所有参数在以前的命令中都有详细叙述,这里不再赘述

举例:

命令(→)
/返回(←)
实例 解释和说明
在TEXT模式下列举短信:
→ AT+CMGF=1 设置为TEXT模式
← OK
→ AT+CMGL=? 查询取值列表
← +CMGL: "REC UNREAD","REC READ","STO
UNSENT","STO SENT","ALL"
OK
→ AT+CMGL="ALL" 查询所有的短信(注意:ALL必须为大写)
+CMGL: 8,"REC
READ","+8613162310263",,"12/08/08,10:43:04
+32"
hi
+CMGL: 9,"REC
READ","+8613162310263",,"12/08/09,14:12:01
+32"
aŒ"
OK
所有短信
Index=1~7被删掉了而已。
在PDU模式下列举短信:
→ AT+CMGF=0 设置为PDU模式
← OK
→ AT+CMGL=?
← +CMGL: (0-4)
OK
→ AT+CMGL=4 查询所有的短信
← +CMGL: 8,1,,24
0891683108200105F0240D91683161320162F3
00002180800134402304D7A2930A
+CMGL: 9,1,,24
0891683108200105F0240D91683161320162F3
00082180904121102304611F8C22
OK
显示查询结果

删除短消息:AT+CMGD

使用设置指令,可删除优选消息存储器中,位置号码参数为的消息。

语法规则:

命令类型 语法 返回和说明
设置命令 AT+CMGD= 返回:
OK
说明:这个设置命令是删除1中索引为index的短信
AT+CMGD=, 返回:
OK
说明:这个设置命令是删除所有状态为的短信。当
不等于0时,参数被忽略
测试命令 AT+CMGD=? +CMGD:(取值列表),(取值列表)
OK

参数定义:

参数 定义 取值 对取值的说明
短信位置索引 - 整数型;关联存储器支持的地址编号范围内的取值
删除类型,整数型。当=1,
2,3,4时,
参数将被忽略
0 删除指定位置号码为的短消息
1 删除优选存储器其中所有已读的短消息,保留未读短消息和已存储的MO
短消息(无论是否发送)
MO:Mobile Originated
2 删除优选存储器中所有已读的消息和已发送的MO短消息,保留未读的以及未发送的已存储MO短消息
3 删除优选存储器中所有已读的短消息,已发送和未发送的已存储MO短消息,保留未读的短消息
4 删除优选存储器中包括未读在内所有的短消息

举例:

命令(→)/返回(←) 实例 解释和说明
→ AT+CPMS="SM" 设置存储区为SIM
← OK
→ AT+CMGD=1 删除掉index=1的短信
← OK
→ AT+CMGD=1,4 所有的短信都被删除掉
← OK

小区广播短消息类型选择:AT+CSCB

注:本命令内容仅适用于合宙 4G CAT1 模块(Air720U/Air724U 系列),不适用于合宙 4G CAT4 模块(Air720/Air720G/Air720H/Air720D/Air720S)。

语法规则:

命令类型 语法 返回和说明
设置命令 AT+CSCB=[[,[,>]]] 返回:
OK

参数定义:

参数 定义 取值 对取值的说明
0 接受由和指定的消息类型
1 不接受由和指定的消息类型
所有可能的 CBM 消息标识的组合 - 字符型
所有可能的CBM 数据编码方案的组合 - 字符型,缺省值为空字符串

短信业务失败结果码:CMS ERROR:

短消息业务失败结果编码描述一个移动设备或网络的错误。其作用与错误结果编码类似。该编码常在一个指令失败时出现。返回的结果码为:+CMSERROR:

数字型
取值
冗长方式的取值 解释
1 Unassigned(unallocated)number
3 Noroutetodestination
6 Channelunacceptable
8 Operatordeterminedbarring
10 Callbarred
11 Reserved
16 Normalcallclearing
17 Userbusy
18 Nouserreponding
19 Useralerting,noanswer
21 Shortmessagetransferrejected
22 Numberchanged
25 Pre-emption
26 Non-selecteduserclearing
27 Destionationoutofservice
28 Invalidnumberformat(incompletenumber)
29 Facilityrejected
30 ResponsetoSTATUSENQUIRY
32 Normal,unspecified
34 Nocircuit/channelavailable
38 Networkoutoforder
41 Temporaryfailure
42 SwitchingequipmentCongestion
43 Accessinformationdiscarded
44 Requestedcircuit/channelnotavailable
47 Resourcesunavailable,unspecified
49 Qualityofserviceunavailable
50 Requestedfacilitynotsubscribed
55 Requestedfacilitynotsubscribed
57 Bearercapabilitynotauthorized
58 Bearercapabilitynotpresentlyavailable
63 Serviceoroptionnotavailable,unspecified
65 Bearerservicenotimplemented
68 ACMequalorgreaterthanACMmaximum
69 Requestedfacilitynotimplemented
70 Only restricted digital information bearer capability is
available
79 Serviceoroptionnotimplemented,unspecified
81 Invalidtransactionidentifiervalue
87 UsernotmemberofCUG
88 Incompatibledestination
91 Invalidtransitnetworkselection
95 Semanticallymandatoryinformation
96 Invalidmandatoryinformation
97 Messagetypenon-existentornotimplemented
98 Messagetypenotcompatiblewithprotocolstate
99 Informationelementnon-existentornotimplemented
100 Conditionalinformationelementerror
101 Messagenotcompatiblewithprotocol
102 Recoveryontimerexpiry
111 Protocolerror,unspecified
127 Interworking,unspecified
128 Telematicinterworkingnotsupported
129 ShortmessageType0notsupported
130 Cannotreplaceshortmessage
143 UnspecifiedTP-PIDerror
144 Datacodingscheme(alphabet)notsupported
145 Messageclassnotsupported
159 UnspecifiedTP-DCSerror
160 Commandcannotbeacted
161 Commandunsupported
175 UnspecifiedTP-Commanderror
176 TPDUnotsupported
192 SCbusy
193 NoSCsubscription
194 SCsystemfailure
195 InvalidSMEaddress
196 DestinationSMEbarred
197 SMRejected-DuplicateSM
198 TP-VPFnotsupported
199 TP-VPnotsupported
208 SIMSMSstoragefull
209 NoSMSstoragecapabilityinSIM
210 ErrorinMS
211 MemoryCapacityExceeded
212 SIMApplicationToolkitBusy
213 SIMdatadownloaderror
224 CPretryexceed
225 RPtrimtimeout
226 SMSconnectionbroken
255 Unspecifiederrorcause
300 MEfailure ME 错误
301 SMSserviceofMEreserved 预留 ME 的 SMS 业务
302 operationnotallowed 操作不允
303 operationnotsupported 操作不支持
304 invalidPDUmodeparameter PDU 模式下无效的参数
305 invalidtextmodeparameter TEXT 模式下无效的参数
310 (U)SIMnotinserted SIM 卡未插入
311 (U)SIMPINrequired 需要 SIM 卡的 PIN
312 PH-(U)SIMPINrequired 需要 PH-SIM 卡的 PIN
313 (U)SIMfailure SIM 卡故障
314 (U)SIMbusy SIM 卡遇忙
315 (U)SIMwrong SIM 错误
316 (U)SIMPUKrequired 需要 SIM 卡的 PUK
317 (U)SIMPIN2required 需要 SIM 卡的 PIN2
318 (U)SIMPUK2required 需要 SIM 卡的 PUK2
320 memoryfailure 存错错误
321 invalidmemoryindex 无效的存贮索引
322 memoryfull 存储满
330 SMSCaddressunknown 短信中心号码未知
331 nonetworkservice 无网络服务
332 networktimeout 网络超时
340 no+CNMAacknowledgementexpected 无预期的+CNMA 确认
500 unknownerror 未知错误
512 USERABORT (适用于cat1 模块)
513 UNABLETOSTORE (适用于cat1 模块)
514 INVALIDSTATUS (适用于cat1 模块)
515 INVALIDADDRCHAR (适用于cat1 模块)
516 INVALIDLEN (适用于cat1 模块)
517 INVALIDPDUCHAR (适用于cat1 模块)
518 INVALIDPARA (适用于cat1 模块)
519 INVALIDLENORCHAR (适用于cat1 模块)
520 INVALIDTXTCHAR (适用于cat1 模块)
521 TIMEREXPIRED (适用于cat1 模块)
528 PDU 中无效(非16 进制)字符
529 PDU 长度不正确
530 SMSSENDFAIL (适用于cat1 模块)
531 根据制造商不同而变化
532 地址中有无效(非16 进制)字符
533 无效地址
534 PDU 长度(UDL)不正确
536 SCA 长度不正确
537 无效的第一个8 位字节(应为2 或34)
538 无效的命令类型
539 SRR 位未设置
540 SRR 设置
604 unspecifiedparsingerror 未指定的解析错误

电话本命令

选择电话本存储类型:AT+CPBS

选择当前电话本的存储类型,以被别的电话本命令使用。

语法规则:

命令类型 语法 返回
设置命令 AT+CPBS= +CPBS:[,,]
OK
查询命令 AT+CPBS? +CPBS:[,,]
OK
测试命令 AT+CPBS=? +CPBS: (取值列表)
OK

参数定义:

参数 定义 取值 对取值的说明
存贮类型 "SM" SIM/USIM电话簿
"FD" SIM固定拨号号码电话簿(此功能开启及存储容量取决于SIM卡)
"DC" ME最近拨号号码电话簿(非标准的)
"LD" SIM/UICC最近一次呼叫的电话簿
"ON" SIM卡(或 ME)中的号码(MSISDN)清单(也可以使用+CNUM命令读出该存储器中的信息)
"AP" Application电话本
已使用的位置 - 整数类型取值,表示所选存储器中使用过的位置号码
位置总数 - 整数类型取值,表示所选存储器中使用过的所有位置号码

举例:

命令(→)
返回(←)
实例 解释和说明
→ AT+CPBS=? 查询电话本所有的存储类型
← +CPBS:("SM","FD","ON","AP")
OK
注:模块类型不同,此返回值有所不同
→ AT+CPBS? 查询当前的PB存储类型
← +CPBS: "SM",6,250
OK
→ AT+CPBR=1,10 查询1~10个电话本联系人
← +CPBR: 1,"131**98",129,"AA"
+CPBR: 2,"139**56",128,"BB"
+CPBR: 3,"138
*68",128,"CC"
+CPBR: 4,"133
***09",128,"DD"
+CPBR: 5,"10087",128,"EE"
+CPBR: 6,"1233333",128,"FF"
+CPBR: 7,"10010",128,"GG"
+CPBR: 8,"10011",128,"HH"
+CPBR: 9,"2222222",128,"II"
+CPBR: 10,"888888",128,"JJ"
OK

读取电话本记录:AT+CPBR

语法规则:

命令类型 语法 返回和说明
设置命令 AT+CPBR=[,
]
返回:
[+CPBR:,,,[...]
+CPBR:,,,]]
OK
说明:使用执行指令,可返回位置号码范围为~的电话簿记录,该位置号码范围通过使用+CPBS从当前电话簿存储中选择。若
为空,只返回的记录
测试命令 AT+CPBR=? +CPBR:(取值列表),[], []
OK

参数定义:

参数 定义 取值 对取值的说明
, 电话本记录索引 整数型,表示电话簿存储器中位置号码范围内的位置索引
电话号码 字符型,格式由定义
号码类型 整数型的八位字节地址类型(请参考GSM 04.08第
10.5.4.7节)和AT+CSTA条目
电话本记录的姓名 字符型型,与"选择TE字符集"指令+CSCS规定的字符集相同
电话号码的最大长度 整数型,表示字段的最大长度
电话本记录的最大长度 整数型,表示字段的最大长度

举例:

命令(→)/
返回(←)
实例 解释和说明
→ AT+CPBS=SM 设置PB的存储类型为SIM
← OK
→ AT+CPBR=1,5 列举index=1~5的电话本记录
← +CPBR: 1,"1378187",129,"Test"
+CPBR: 2,"139
8096",129,"TEST"
+CPBR: 5," 13601
**187",129,"zhangsan"
OK
查询结果
→ AT+CPBR=2 如果若为空,只返回的记录
← +CPBR: 2,"139****8096",129,"TEST"
OK
→ AT+CPBR=? 查询参数范围,缺省的PB存储类型为SM
← +CPBR: (1-500),40
OK
→ AT+CPBS="ON" 设置PB的存储类型为ON
← OK
→ AT+CPBR=1,10
← +CPBR:1,0,"+8613312345678",145,""
OK
查出手机卡的自身业务号码
→ AT+CPBR=?
← +CPBR: (1-2),40
OK

查找电话本记录:AT+CPBF

设置命令用户终端返回与相匹配的电话簿记录(从当前的电话簿存储找,存储用+CPBS 来指定)。

语法规则:

命令类型 语法 返回和说明
设置命令 AT+CPBF= [+CPBF:,,,[[...]+CB
PF:,,,]]
OK
测试命令 AT+CPBF=? +CPBF:[],[]
OK

参数定义:

参数 定义 取值 对取值的说明
, 电话本记录索引 - 整数型,表示电话簿存储器中位置号码范围内的位置索引
电话号码 - 字符型;格式由定义,
号码类型 - 整数型的八位字节地址类型(请参考GSM 04.08第
10.5.4.7节)和AT+CSTA条目
, 电话本记录的姓名 - 字符型型,与"选择TE字符集"指令+CSCS规定的字符集相同
电话号码的最大长度 - 整数型,表示字段的最大长度
电话本姓名的最大长度 - 整数型,表示字段的最大长度

举例:

命令(→)/ 返回(←) 实例 解释和说明
→ AT+CPBF=?
← +CPBF: 40,14
OK
表示电话本号码的最大长度为40字节,姓名的最大长度为14个字节
→ AT+CPBS=SM
← OK
→ AT+CPBF="zhangsan" 寻找电话本中姓名为"zhangsan"的联系人
← +CPBF: 5,"13601***187",129," zhangsan"
OK
找到了,index=5

写电话本记录:AT+CPBW

语法规则:

命令类型 语法 返回和说明
设置命令 AT+CPBW=[][,[,
,[]]]
返回:
OK
说明:使用设置命令,可在当前电话簿存储器的位置号码
中写入电话簿记录。通过+CPBS,可选择当前电话簿存储器。注:若只有,其他字段为空,则该index的电话本记录会被删除;若为空,但给定,则记录将被写入电话簿中第一个空闲位置。
测试命令 AT+CPBW=? +CPBW: (取值列表),,(取值列表),
OK

参数定义:

参数 定义 取值 对取值的说明
电话本记录索引 整数型,表示电话簿存储器中位置号码范围内的位置索引
电话号码 字符型,格式由定义
号码类型 整数型的八位字节地址类型(请参考GSM 04.08第
10.5.4.7节)和AT+CSTA条目
电话本记录的姓名 字符串型,与"选择TE字符集"指令+CSCS规定的字符集相同
电话号码的最大长度 整数型,表示字段的最大长度
电话本记录的最大长度 整数型,表示字段的最大长度

举例:

命令(→)/
返回(←)
实例 解释和说明
→ AT+CPBW=? 查询参数范围
← +CPBW: (1-250),40,(128-255),14
OK
→ AT+CPBS=SM
← OK
→ AT+CPBW=1,"150**58",129,"T" 在index=1的位置上写入一个电话本记录
← OK
→ AT+CPBR=1,200 查询所有的电话本记录
← +CPBR: 1,"150**58",129,"T"
+CPBR: 2,"152
*59",129,"LIAO"
+CPBR: 3,"1502650",129,""
+CPBR: 4,"021
52",129,"W"
+CPBR: 5,"021
***68",129,"A"
+CPBR: 6,"1",129,""
OK
共有6个记录
→ AT+CPBW=1 删除index=1的记录
← OK
→ AT+CPBW=2 删除index=2的记录
← OK
→ AT+CPBW=,"123456" 若为空,但给定,则记录将被写入电话簿中第一个空闲位置。
← OK
→ AT+CPBR=1,6 再次查询所有记录
← +CPBR: 1,"123456",129,""
+CPBR: 3,"1502650",129,""
+CPBR: 4,"02131252252",129,"W"
+CPBR: 5,"02131252252",129,"A"
+CPBR: 6,"1",129,""
OK

本机号码:AT+CNUM

语法规则:

命令类型 语法 返回
执行命令 AT+CNUM +CNUM:[],,+CNUM:[pha2>],,[...]]
OK
测试命令 AT+CNUM=? OK

参数定义:

参数 定义 取值 对取值的说明
号码的标志名 与有关,可选项,字母数字混编字符串。所用的字符集应使用"选择 TE 字符集"指令+CSCS 所选择的字符集。
本机号码 指定的字符型电话号码
本机号码的类型 整数型的八位字节地址类型(请参考 GSM 04.08第10.5.4.7
节)

举例:

命令(→)/
返回(←)
实例 解释和说明
→ AT+CPBS="ON" 选择电话本类型为ON(Own Number)
← OK
→ AT+CPBW=1,"+180**",145 写入本机号码
← OK
→ AT+CNUM 查询本机号码
← +CNUM:"","+180**",145
OK

分组域相关命令

GPRS网络注册状态:AT+CGREG

设置指令控制关于GPRS注册状态非请求结果码的显示。当=1 并且MT的 GPRS 注册状态发生改变,即会有+CGREG:的URC上报。当=2 并且或GPRS注册状态发生变化或注册小区发生改变,会有:+CGREG:[,,,,]的URC上报。当=3 并且或GPRS注册状态发生变化或注册小区发生改变,会有:+CGREG:[,,,,[,,]]的URC上报。查询指令返回结果码的显示形式和一个可以表明MT网络注册状态的参数。仅当=2且MT在网络中注册后,才返回位置信息要素和。

语法规则:

命令类型 语法 返回和说明
设置命令 AT+CGREG=[] OK
查询命令 AT+CGREG? +CGREG:,[,,]
OK
测试命令 AT+CGREG=? +CGREG:(取值列表)
OK
URC上报 +CGREG: 如果设置=1,当网络注册状态发生改变时,会有这样的URC(unsolicited result code)
+CGREG: [,,,] 如果设置=2,当网络注册状态或注册的小区
(ci)发生改变时,会有这样的URC上报
+CGREG:
[,,,,[,,cause>]]
如果设置=3,当网络注册状态或注册的小区
(ci)发生改变时,会有这样的URC上报

参数定义:

参数 定义 取值 对取值的说明
上报状态 0 禁用网络注册非请求结果码+CGREG:
1 启用网络注册非请求结果码+CGREG:
2 启用网络注册和位置信息非请求结果码
+CGREG:[,,,,]
3 启用网络注册和位置信息非请求结果码
+CGREG:
[,,,,[,,]]
当前网络注册状态 0 未注册;ME 当前没有搜索注册业务的新运营商
1 已注册,本地网
2 未注册,但 ME 正在搜索注册业务的新运营商,但是当前没有可用的公共陆地移动网络(PLMN),一旦PLMN有效,UE将开始GPRS附着。
3 注册被拒绝。GPRS业务被禁用,即使用户请求,UE也不被允许附着
GPRS网络
4 未知
5 已注册,漫游
6 注册归属地"SMSonly"业务
7 注册漫游地"SMSonly"业务
8 仅附着紧急承载业务(SeeNOTE2)
9 注册归属地"CSFBnotpreferred"业务
10 注册漫游地"CSFBnotpreferred"业务
11 仅紧急业务可用
位置区号(Location
Area Code)
- 字符型;2 字节十六进制位置区代码(比如:00C3相当于十进制中的
195)
小区号(Cell Id) - 字符型;2 字节十六进制小区编号
路由区号 (Routing
area code)
定义同+CEREG
定义同+CEREG

举例:

命令(→)/
返回(←)
实例 解释和说明
→ AT+CGREG? 查询当前GPRS注册状态
← +CGREG:0,1
OK
=0,=1
→ AT+CGREG=1 设置=1,当模块注册状态发生改变时,会有一个URC
上报+CGREG:
←(URC) +CGREG:1 当模块注册状态发生改变
→ AT+CGREG=2 设置=2,当模块注册状态发生改变时,会有一个URC
上报+CGREG: [,,]
←(URC) +CGREG: 5,"18be","9363" 当模块注册状态发生改变,或移动模块,使模块所处小区号发生改变的时候,会有个URC上报上来
→ AT+CGREG? 查询注册状态
← +CGREG: 2,1,"1863","00a2c315"
OK

GPRS附着分离:AT+CGATT

设置命令用于将MT 附着GPRS 业务,或将MT 从GPRS 业务分离。

查询命令返回当前的GPRS附着状态。

语法规则:

命令类型 语法 返回和说明
设置命令 AT+CGATT= OK
查询命令 AT+CGATT? +CGATT:
OK
测试命令 AT+CGATT=? +CGATT: (取值列表)
OK

参数定义:

参数 定义 取值 对取值的说明
GPRS附着状态 0 分离
1 附着

举例:

命令(→)/
返回(←)
实例 解释和说明
→ AT+CGATT? 查看当前GPRS附着状态
← +CGATT:1
OK
=1,标明当前GPRS已经附着
→ AT+CGATT=? 查看的取值范围
← +CGATT:(0-1)
OK
查询结果

PDP上下文定义:AT+CGDCONT

设置命令设置以cid为标志的PDP上下文参数。查询命令查询所有的PDP上下文定义。

语法规则:

命令类型 语法 返回
设置命令 AT+CGDCONT=[,[,N>[,[,[,>]]]]] OK
查询命令 AT+CGDCONT? [+CGDCONT:,,,addr>,,[,[,…[,pdN]]
][+CGDCONT:,,<
APN>,,,[,1>[,…[,pdN]]]
[…]]]
OK
测试命令 AT+CGDCONT=? +CGDCONT:
(取值列表),,,,(取值列表),(取值列表)
OK

参数定义:

参数 定义 取值 对取值的说明
PDP上下文标识,用于标识一个PDP上下文定义 1~8 整数型。该参数对TE-MT接口而言是本地参数,并且可用于其他PDP上下文相关指令
分组数据协议类型; 字符型 "IP" 支持"IP"互联网协议IP(Internet Protocol)(IETF
STD5),默认值
"IPV6" InternetProtocol,version6 (IETFRFC2460)
"PPP" Point to Point Protocol (IETF STD 51)
接入点名称(AccessPoint
Name)
字符串型,用于选择GGSN或外部分组数据网络的逻辑名称。若该参数取值为空或省略,则需要请求签约值。
分组数据协议地址 字符型,这是IP协议地址,格式为:
"..."其中=0~255;用于标识对于特定PDP上下文,MT分配的地址空间。若该参数为空或等于"0.0.0.0 ",MT将被要求分配一个动态地址。使用+CGPADDR命令可读出此分配地址。
用于控制PDP 数据压缩。仅适用于SNDCP。 0 关闭PDP数据压缩(默认值)
1 打开PDP数据头压缩(由厂商定义压缩方式,暂不支持!)
2 V.42bis
控制PDP 头压缩。数字型参数 0 关闭PDP头压缩(默认值)
1 RFC1144(仅适用于SNDCP)
2 RFC2507(暂不支持)
… 与相关的参数 字符串型

举例:

命令(→)
/返回(←)
实例 解释和说明
→ AT+CGDCONT? 开机注册后查询当前PDP上下文
← +CGDCONT:
5,"IP","cmnbiot.mnc004.mcc460.gprs","100.93.134.1
00",,,802110030100108106d388116b8306d38814cb
000d04d388116b000d04d38814cb,
OK
缺省已经有一个PDP上下文,这个PDP上下文,用于模块 RNDIS 网卡功能以及
TCPIP/HTTP/MQTT/FTP等数据业务。
→ AT+CGDCONT=? 查询参数取值范围
← +CGDCONT:(1-8),"IP", , ,(0-2),(0-2) 查询结果
+CGDCONT:(1-8),"PPP", , ,(0-2),(0-2)
+CGDCONT:(1-8),"IPV6", , ,(0-2),(0-2)
OK
← +CGDCONT:
(1-15),(1-15),(IP,IPV6,IPV4V6,PPP,Non-IP)
Air780E/Air600E查询结果

PDP上下文鉴权参数:AT+CGAUTH

注:本命令内容仅适用于合宙 4G CAT1 模块(Air720U/Air724 系列),不适用于合宙 4G CAT4 模块(Air720/Air720G/Air720H/Air720D/Air720S)。本命令是AT+CGDCONT命令的扩展,设置相关PDP上下文的鉴权方式。查询命令查询所有PDP上下文鉴权信息。

语法规则:

命令类型 语法 返回
设置命令 AT+CGAUTH=[,[,>[,]]] OK
查询命令 AT+CGAUTH? [+CGAUTH:
,,,]
[+CGAUTH:
,,,
[. . . ]]
测试命令 AT+CGAUTH=? +CGAUTH: (range of supported s), (list of
supported s), (range of supported
s), (range of supported s)

参数定义:

参数 定义 取值 对取值的说明
PDP上下文标识,用于标识一个PDP上下文定义 整数型。该参数对TE-MT接口而言是本地参数,并且可用于其他PDP上下文相关指令
鉴权类型 0 None
1 PAP
2 CHAP
用户名
密码

显示PDP地址:AT+CGPADDR

使用设置命令,返回的是所标识的PDP 地址;使用该执行命令,可返回指定上下文标识的PDP 地址列表;当PDP上下文未建立的时候,使用该命令是无法查询和显示PDP地址的。

语法规则:

命令类型 语法 返回
设置命令 AT+CGPADDR= +CGPADDR:,
OK
执行命令 AT+CGPADDR +CGPADDR:,[+CGPADDR:
,[...]]
OK
测试命令 AT+CGPADDR=? +CGPADDR: (取值列表)
OK

参数定义:

参数 定义 取值 对取值的说明
PDP上下文标识 1~8 整数型。该参数对TE-MT接口而言是本地参数,并且可用于其他
PDP上下文相关指令
分组数据协议地址 字符型,这是IP协议地址,格式为: "..."
其中=0~255;用于标识对于特定PDP上下文,MT分配的地址空间。

举例:

命令(→)/
返回(←)
实例 解释和说明
→ AT+CGACT? 查询当前的PDP上下文激活状态
← +CGACT:5,1
OK
=1,表明=5的PDP上下文处于已经激活状态
→ AT+CGPADDR=5 查询=5的PDP上下文对应的PDP地址(即IP地址)
← +CGPADDR: 5, "100.93.134.100"
OK
=5 PDP上下文分配的IP地址

PDP上下文激活:AT+CGACT

使用执行指令,可激活或去激活指定的 PDP上下文。该指令成功执行后,MT保持 V.250ter指令状态。若 PDP 上下文已处于所请求状态,则该状态保持不变。当执行该指令的激活形式时,若MT没有附着 GPRS,MT首先进行 GPRS 附着,然后尝试激活指定的上下文。若没指定,则指令的激活形式激活所有定义的上下文。若没指定,则指令的失效形式使所有激活的上下文失效。查询命令返回所有的已定义的PDP上下文的信息。

语法规则:

命令类型 语法 返回
设置命令 AT+CGACT=, OK
查询命令 AT+CGACT? +CGACT:,[+CGACT:,<
state>[...]]
OK
测试命令 AT+CGACT=? +CGACT: (取值列表)
OK

参数定义:

参数 定义 取值 对取值的说明
PDP上下文激活状态 0 未激活
1 激活
PDP上下文标识 整数型。该参数对TE-MT接口而言是本地参数,并且可用于其他
PDP上下文相关指令。

举例:

命令(→)/
返回(←)
实例 解释和说明
具体实例请参考+CGPADDR条目的实例

可接受的最小服务质量简报:AT+CGQMIN

设置命令允许 TE指定一个可接受的最小服务质量简报,与此对应的是网络返回的 "PDP上下文激活接受"消息所返回的协商简报。

语法规则:

命令类型 语法 返回
设置命令 AT+CGQMIN=[,
[,[,[,,]]]]
]
OK
查询命令 AT+CGQMIN? +CGQMIN:
,,,,
,[+CGQMIN:
,,,,
,[…]]
OK
测试命令 AT+CGQMIN=? +CGQMIN:, (取值列表),(取值列表),( 取值列表) ,(取值列表),(取值列表) […]
OK

参数定义:

参数 定义 取值 对取值的说明
请参考AT+CGDCONT条目
服务质量(QOS)优先级别 0 默认,签署的QOS优先级别
1~3 QOS优先级别
服务质量(QOS)延时级别 0 签署的服务质量(QOS)延时级别
1~4 QOS 延时级别
服务质量(QOS)可靠性级别 0 签署的服务质量(QOS)可靠性级别
1~5 QOS可靠性级别
服务质量(QOS)峰值吞吐量级别 0 签署的服务质量(QOS)峰值吞吐量级别
1~9 QOS 峰值吞吐量级别
服务质量(QOS)平均吞吐量级别 0 签署的服务质量(QOS)平均吞吐量级别
1~18 QOS 平均吞吐量级别
31 尽力而为的 QOS 平均吞吐量级别

请求的服务质量简报:AT+CGQREQ

设置命令可以设定由一个所标识的上下文激活请求消息的服务质量简报。上下文激活请求消息由MT向网络发出。

语法规则:

命令类型 语法 返回
设置命令 AT+CGQREQ=[,
[,[,[,,]]]]]]
OK
查询命令 AT+CGQREQ? +CGQREQ:
,,,
,,[+CGQREQ:
,,,
,,[…]]
OK
测试命令 AT+CGQREQ=? +CGQREQ:, (取值列表),(取值列表),( 取值列表) ,(取值列表),(取值列表) […]
OK

参数定义:

参数 定义 取值 对取值的说明
请参考AT+CGDCONT条目
服务质量(QOS)优先级别 0 默认,签署的QOS优先级别
1~3 QOS优先级别
服务质量(QOS)延时级别 0 签署的服务质量(QOS)延时级别
1~4 QOS 延时级别
服务质量(QOS)可靠性级别 0 签署的服务质量(QOS)可靠性级别
1~5 QOS可靠性级别
服务质量(QOS)峰值吞吐量级别 0 签署的服务质量(QOS)峰值吞吐量级别
1~9 QOS 峰值吞吐量级别
服务质量(QOS)平均吞吐量级别 0 签署的服务质量(QOS)平均吞吐量级别
1~18 QOS 平均吞吐量级别
31 尽力而为的 QOS 平均吞吐量级别

控制非请求GPRS事件上报:AT+CGEREP

设置命令启用或禁用URC 提示+CGEV: XXX。当设置为启用时,当数据域终端或网络侧发生某些事件,会有此URC上报。For AIR720系列模块:For AIR720S系列模块:For AIR720/AIR780E系列模块:

For AIR720S系列模块:

语法规则:

命令类型 语法 返回
设置命令 AT+CGEREP=[,] OK
查询命令 AT+CGEREP? +CGEREP:,
OK
测试命令 AT+CGEREP=? +CGEREP:(取值列表), (取值列表)
OK
URC上报 +CGEV: XXX 如果=1或2,当MT或网络侧发生某些事情时,会有此
URC上报

AT+CGEREP

语法规则:

命令类型 语法 返回
设置命令 AT+CGEREP= OK
查询命令 AT+CGEREP? +CGEREP:
OK
测试命令 AT+CGEREP=? +CGEREP:(取值列表)
OK
URC上报 +CGEV: XXX 如果=1,当MT或网络侧发生某些事情时,会有此URC
上报

参数定义:

参数 定义 取值 对取值的说明
结果码上报的模式 0 缓冲MT中的非请求结果码;如果MT结果码缓冲器已满,则丢弃最旧的结果码。不转发结果码给TE。
1 当MT-TE链路处于保留状态时(比如处于在线数据状态),丢弃非请求结果码;否则MT直接将非请求结果码转发给TE。

NTP相关命令

设置GPRS承载场景ID:AT+CNTPCID

语法规则:

命令类型 语法 返回
设置命令 AT+CNTPCID= OK
查询命令 AT+CNTPCID? +CNTPCID:
OK
测试命令 AT+CNTPCID=? +CNTPCID:(取值范围)
OK

参数定义:

参数 定义 取值 对取值的说明
承载场景id 1-3 取值同+SAPBR命令的

同步网络时间:AT+CNTP

语法规则:

命令类型 语法 返回
设置命令 AT+CNTP=[, OK
执行命令 AT+CNTP OK
+CNTP:
查询命令 AT+CNTP? +CNTP: ,
测试命令 AT+CNTP=? +CNTP: ,
注意事项 网络时间同步成功后,可以用AT+CCLK?命令来查询模块当前时间

参数定义:

参数 定义 取值 对取值的说明
NTP服务器 域名或ip地址
本地时区 -47~+48 单位:1/4时区。时区是-12~+12,但是有的国家会用半时区,甚至1/4时区,为兼顾这些国家,时区单位为:1/4时区。负号表示是西时区,正号表示为东时区
操作码 1 网络时间同步成功
61 网络错误
62 DNS解析错误
63 连接错误
64 服务响应错误
65 服务响应超时

举例:

命令(→)
/返回(←)
实例 解释和说明
→ AT+SAPBR=3,1,"Contype","GPRS" 激活PDP是使用CNTP命令同步时间的前提
← OK
→ AT+SAPBR=3,1,"APN","" 设置PDP承载之APN参数模块注册网络后会从网络自动获取并激活一个PDP
上下文,用于RNDIS上网使用(此可以通过
AT+CGDCONT?来查询),所以输入
AT+SAPBR=3,,"APN","" 即可,模块内部会按照自动获取的来设置APN
← OK
→ AT+SAPBR=1,1 激活=1的PDP
← OK
→ AT+CNTPCID=1 设置使用的PDP的=1
← OK
→ AT+CNTP
← OK
+CNTP:1
→ AT+CCLK?
← +CCLK: "18/05/16,15:49:28+32"
OK

文件系统相关命令

创建一个文件:AT+FSCREATE

语法规则:

命令类型 语法 返回
设置命令 AT+FSCREATE= OK
或
ERROR
查询命令 AT+FSCREATE=? OK
或
ERROR

参数定义:

参数 定义 取值 对取值的说明
文件名 字符串型,不用加双引号,不超过64个字节

读文件:AT+FSREAD

语法规则:

命令类型 语法 返回
设置命令 AT+FSREAD=,,,
OK
或
ERROR
查询命令 AT+FSREAD=? OK
或
ERROR

参数定义:

参数 定义 取值 对取值的说明
文件名 字符串型,不用加双引号,不超过64个字节
读文件的模式 0 从文件开头读文件
1 从文件的位置开始读文件
要读取的文件的长度 不能大于10240个字节。如果文件的实际长度小于该值,则读取的是文件的实际长度。
读文件的起始位置 该取值应小于文件的大小。当=0时,该值无效
读取的文件数据

写文件:AT+FSWRITE

语法规则:

命令类型 语法 返回
设置命令 AT+FSWRITE=,,
,
> (出现>后写入数据)
OK
或
ERROR
或
TimeOut
查询命令 AT+FSWRITE=? OK
或
ERROR
注意事项 当输入数据的长度达到时,自动写入。或输入数据的时间超过时,返回TimeOut

参数定义:

参数 定义 取值 对取值的说明
文件名 字符串型,不用加双引号,不超过64个字节
写文件的模式 0 从文件的开头开始写文件
1 从文件的末尾开始写文件
要写的数据的长度 不能大于10240个字节
输入持续的时间 1~4294967295 单位:秒

获取盘符:AT+FSDRIVE

语法规则:

命令类型 语法 返回
执行命令 AT+FSDRIVE= +FSDRIVE:
OK
查询命令 AT+FSDRIVE=? OK

参数定义:

参数 定义 取值 对取值的说明
盘符类型 0 本地盘符
1 SD卡盘符
盘符 字符串型。加不加双引号皆可.
如果是本地存储,则盘符为C;如果是SD卡,则盘符为D

显示文件目录列表:AT+FSLS

语法规则:

命令类型 语法 返回
设置命令 AT+FSLS= list of subdirectories/files
OK
查询命令 AT+FSLS=? OK
注意事项 1) 如果返回的结果最后一个字符是\,则表示为目录名,否则为文件名
2) 查询模块本地FLASH根目录使用:AT+FSLS="/"或AT+FSLS="C:/"
3) 查询外接TF卡根目录使用:AT+FSLS="D:/"

参数定义:

参数 定义 取值 对取值的说明
文件路径 字符串型,不用加双引号,不超过64个字节。

获取可用空间大小:AT+FSMEM

执行命令用来获取文件系统剩余空间大小。

语法规则:

命令类型 语法 返回
执行命令 AT+FSMEM +FSMEM:
OK
查询命令 AT+FSMEM=? OK
或
ERROR

参数定义:

参数 定义 取值 对取值的说明
文件系统可用空间大小 单位:字节

创建目录:AT+FSMKDIR

语法规则:

命令类型 语法 返回
设置命令 AT+FSMKDIR= OK
或
ERROR
查询命令 AT+FSMKDIR=? OK
或
ERROR

参数定义:

参数 定义 取值 对取值的说明
目录名 字符串型,不用加双引号,不超过64个字节

删除目录:AT+FSRMDIR

语法规则:

命令类型 语法 返回
设置命令 AT+FSRMDIR= OK
或
ERROR
查询命令 AT+FSRMDIR=? OK
或
ERROR

参数定义:

参数 定义 取值 对取值的说明
文件名 字符串型,不用加双引号,不超过64个字节

删除文件:AT+FSDEL

语法规则:

命令类型 语法 返回
设置命令 AT+FSDEL= OK
或
ERROR
查询命令 AT+FSDEL=? OK
或
ERROR

参数定义:

参数 定义 取值 对取值的说明
文件名 字符串型,不用加双引号,不超过64个字节

获取文件大小:AT+FSFLSIZE

语法规则:

命令类型 语法 返回
设置命令 AT+FSFLSIZE= +FSFLSIZE:
OK
查询命令 AT+FSFLSIZE=? OK

参数定义:

参数 定义 取值 对取值的说明
文件名 字符串型,不用加双引号,不超过64个字节
文件大小 单位:字节

使用方法举例

由于这部分的命令具有高度相关性,所以将各个命令的应用例程集中在一起描述。

命令(→)/
返回(←)
实例 解释和说明
本地文件系统读写命令使用方法:
→ AT+FSMKDIR="/testdir" 创建一级目录
← OK
→ AT+FSMKDIR="/testdir/testdir" 创建二级目录
← OK
→ AT+FSCREATE="/testdir/test.txt" 一级目录下创建文件
← OK
→ AT+FSLS="/testdir" 显示一级目录列表
← testdir\
test.txt
OK
→ AT+FSWRITE="/testdir/test.txt",0,10,10 写文件
→ >1234567890 当出现">"后,输入写入的数据:1234567890。
← OK
→ AT+FSREAD="/testdir/test.txt",0,10,10 读取文件数据
← 1234567890
OK
→ AT+FSMEM 获取文件系统可用空间大小
← +FSMEM: 1304000 bytes
OK
→ AT+FSFLSIZE="/testdir/test.txt" 获取文件大小
← +FSFLSIZE: 10
OK
→ AT+FSDEL="/testdir/test.txt" 删除文件
← OK
→ AT+FSRMDIR="/testdir/testdir" 删除目录
← OK
SD卡文件系统读写命令使用方法:
→ AT+FSMKDIR="D:/testdir" 创建一级目录
← OK
→ AT+FSMKDIR="D:/testdir/testdir" 创建二级目录
← OK
→ AT+FSCREATE="D:/testdir/test.txt" 一级目录下创建文件
← OK
→ AT+FSLS="D:/testdir" 显示一级目录列表
← testdir\
test.txt
OK
→ AT+FSWRITE="D:/testdir/test.txt",0,10,10 写文件
→ >1234567890 当出现">"后,输入写入的数据:1234567890。
← OK
→ AT+FSREAD="D:/testdir/test.txt",1,5,2 读取文件数据
← 34567
OK
→ AT+FSFLSIZE="D:/testdir/test.txt" 获取文件大小
← +FSFLSIZE: 10
OK
→ AT+FSDEL="D:/testdir/test.txt" 删除文件
← OK
→ AT+FSRMDIR="D:/testdir/testdir" 删除目录
← OK

嵌入式TCPIP命令

启动多IP连接:AT+CIPMUX

语法规则:

命令类型 语法 返回
设置命令 AT+CIPMUX= OK
查询命令 AT+CIPMUX? +CIPMUX:
OK
测试命令 AT+CIPMUX=? +CIPMUX: (0,1)
OK
注意事项  只在 IP initial 状态,本命令的设置命令才能设置成功

参数定义:

参数 定义 取值 对取值的说明
多路连接开关 0 单路连接(缺省值)
1 多路连接

启动任务并设置接入点APN、用户名、密码:AT+CSTT

语法规则:

命令类型 语法 返回
设置命令 AT+CSTT=[,[,]] OK
查询命令 AT+CSTT? +CSTT: ,,
OK
测试命令 AT+CSTT=? +CSTT: "APN","USER","PWD"
OK
注意事项 1)设置命令和执行命令只有在 IP INITIAL 状态下执行有效。执行设置命令后,状态变为 IP START
2)模块注册网络后会从网络自动获取并激活一个PDP上下文,用于RNDIS上网使用(此可以通过AT+CGDCONT?来查询),所以直接输入AT+CSTT即可,模块会按照自动获取的来设置CSTT
的APN

参数定义:

参数 定义 取值 对取值的说明
GPRS 接入点名称 - 字符串参数(双引号可加可不加),不超过128个字符
GPRS 用户名 - 字符串参数(双引号可加可不加),不超过32个字符
GPRS 密码 - 字符串参数(双引号可加可不加),不超过32个字符

专网卡设置APN、用户名、密码和鉴权方式:AT+CPNETAPN

语法规则:

命令类型 语法 返回
设置命令 AT+CPNETAPN=,,>,, OK
查询命令 AT+CPNETAPN? MODE:
APN:
USR:
PWD:
AUTHMODE:
OK
测试命令 AT+CPNETAPN=? +CPNETAPN: (0-3),,,,authmode
OK

参数定义:

参数 定义 取值 对取值的说明
参数的保存模式 0 保存并重启生效
1 不保存立即生效注:如果专网卡和普通卡都会使用,mode请设置为1
2 保存并立即生效注:如果一直使用专网卡,mode请设置为2
3 删除保存的参数
GPRS 接入点名称 字符串参数(双引号可加可不加),不超过128个字符。注:此参数不可以为空
GPRS 用户名 字符串参数(双引号可加可不加),不超过32个字符。如果为空,则表示为""
GPRS 密码 字符串参数(双引号可加可不加),不超过32个字符。如果为空,则表示为""
0 无鉴权
1 PAP
2 CHAP

举例:

命令(→)/
返回(←)
实例 解释和说明
→ AT+CPNETAPN=2,jscmiot,u9682,iot98765,2 设置专网卡的APN。各个参数请据实填写,不要照抄。设置此命令时模块会自动将AT+AUTOAPN设置为0,不用提前输入AT+AUTOAPN=0
← OK 设置成功。设置成功后参数会保存到NV,模块会自动重启
重启后缺省的PDP承载(=5)已经为所设置的APN,并已经处于激活可用状态。这个缺省的PDP承载,用于模块RNDIS网卡功能以及TCPIP/HTTP/MQTT/FTP等数据业务。
AT+CGDCONT?
+CGDCONT: 5,"IP"," jscmiot.MNC011.MCC460.GPRS","10.134.28.241",0,0,,,,
OK
后面数据应用中CSTT或SAPBR设置APN的时候,只需要APN为空或设置<专网apn>即可,不需要再设置
和
例如:
AT+CSTT=jscmiot
AT+CSTT
AT+SAPBR=3,1,"APN","jscmiot"
AT+SAPBR=3,1,"APN",""

激活移动场景(或发起GPRS 或CSD无线连接):AT+CIICR

语法规则:

命令类型 语法 返回和说明
执行命令 AT+CIICR 如果激活成功,返回:
OK
如果激活失败,返回:
ERROR
测试命令 AT+CIICR=? 返回:
OK
注意事项  AT+CIICR 只有在IP START状态下才能激活移动场景,执行后状态变为IP CONFIG。
 在模块接受激活场景操作后,如果移动场景激活成功,状态变为IPGPRSACT,返回OK,否则返回
ERROR。

查询本地IP地址:AT+CIFSR

语法规则:

命令类型 语法 返回和说明
执行命令 AT+CIFSR
测试命令 AT+CIFSR=? OK
注意事项 只有在移动场景已激活的状态: IPGPRSACT 、 TCP/UDPCONNECTING 、 CONNECT
OK 、 IP CLOSE 下才可以通过AT+CIFSR 查询得到本地 IP 地址,否则返回 ERROR

参数定义:

参数 定义 取值 对取值的说明
IP 地址 - 字符串参数(字符串需要加引号)

设置TCP使用SSL功能:AT+CIPSSL

语法规则:

命令类型 语法 返回
设置命令 AT+CIPSSL= OK
查询命令 AT+CIPSSL? +CIPSSL:
OK
测试命令 AT+CIPSSL=? +CIPSSL: (0-1)
OK
注意事项 在CIPSTART之前输入设置命令AT+CIPSSL=1来打开SSL功能。打开SSL功能后,模块会在TCP连接建立后自动进行SSL验证。当前仅支持作为SSL Client应用。

参数定义:

参数 定义 取值 对取值的说明
SSL功能开关 0 关闭SSL
1 打开SSL

配置TCP SSL参数:AT+SSLCFG

设置命令用来设置SSL版本,SSL加密算法(ciphersuites),安全等级(securitylevel),CA 证书(CertificateAuthority Certificate),客户端证书(client certificate)和客户端密钥(client key)。这些参数在SSL协议的握手过程中会用到。

语法规则:

命令类型 语法 返回
设置命令 AT+SSLCFG="sslversion",[,n>] 如果缺失,则查询对应的SSL版本:
+SSLCFG: "sslversion",,
OK
否则,设置对应的SSL版本:如果格式和参数正确,返回:
OK
如果命令格式或参数错误,返回:
ERROR
AT+SSLCFG="ciphersuite",[,uites>] 如果缺失,则查询对应的加密算法:
+SSLCFG: ciphersuite",,
OK
否则,设置对应的加密算法:如果格式和参数正确,返回:
OK
如果目录格式或参数错误,返回:
ERROR
AT+SSLCFG="cacert",[,
]
如果参数缺失,则查询对应的CA证书路径:
+SSLCFG:"cacert",,
OK
否则,设置对应的CA证书路径:如果格式和参数正确,返回:
OK
如果目录格式或参数错误,返回:
ERROR
AT+SSLCFG="clientcert",[,t_path>] 如果参数缺失,则是查询对应的客户端证书路径:
+SSLCFG:"clientcert",,
OK
否则,设置对应的客户端证书路径:如果格式和参数正确,返回:
OK
如果命令格式或参数错误,返回:
ERROR
AT+SSLCFG="clientkey",[,y_path>] 如果缺失,则是查询对应的客户端密钥路径:
+SSLCFG:"clientkey",,
OK
否则,设置对应的客户端密钥路径:如果格式和参数正确,返回:
OK
如果命令格式或参数错误,返回:
ERROR
AT+SSLCFG="seclevel",[,] 如果参数缺失,则是查询相关的安全等级:
+SSLCFG:"seclevel",,
OK
否则,设置对应的安全等级:如果格式和参数正确,返回:

参数定义:

参数 定义 取值 对取值的说明
SSL上下文 id 0~5,34,88,
153
整数型。
TCP功能时与CIPSTART中的绑定。例如:当多链接中CIPSTART中设置链接号为1,则
SSL上下文id也为1。
TCP单链接中SSL上下文id固定为0.
FTP功能时=34(十进制)
MQTT功能时=88(十进制)
HTTP功能时=153(十进制)
SSL 版本 0 SSL3.0
1 TLS1.0
2 TLS1.1
3 TLS1.12
4 ALL above
SSL ciphersuites 0X0035 TLS_RSA_WITH_AES_256_CBC_SHA
0X002F TLS_RSA_WITH_AES_128_CBC_SHA
0X0005 TLS_RSA_WITH_RC4_128_SHA
0X0004 TLS_RSA_WITH_RC4_128_MD5
0X000A TLS_RSA_WITH_3DES_EDE_CBC_SHA
0X003D TLS_RSA_WITH_AES_256_CBC_SHA256
0XFFFF ALL above
被信任的CA 证书路径 字符串型
客户端证书路径 字符串型
客户端密钥路径 字符串型
安全等级 0 No authentication
1 服务器鉴权
2 服务器鉴权和客户端鉴权(如果服务器要求的话)
主机名
该参数决定如何对待过期证书 0 关心证书的过期时间
1 忽略证书的过期时间
SSL协商阶段的最大时间 10~300 单位:秒
随机数,十六进制数组成的字符串,支持56和64个字节 数字和字母的组合 字符串型,双引号可加可不加,数字的范围:0~9,字母的范围:ABCDEF(大小写不敏感)。例如
56个字节的:
101B12C3141516171F192021222324252
62728293031323334353637
premaster
证书验证模式 0 根证书认证
1 其他证书认证

配置本地TCP端口:AT+CLPORT

语法规则:

命令类型 语法 返回
设置命令 单链接:
AT+CLPORT=,
多链接:
AT+CLPORT=,,>
OK
或
ERROR
查询命令 AT+CLPORT? +CLPORT: ,
OK
单链接
(CIPMUX=0)
+CLPORT: 0,,
+CLPORT: 1,,
+CLPORT: 2,,
+CLPORT: 3,,
多链接
(CIPMUX=1)
+CLPORT: 4,,
+CLPORT: 5,,
OK
测试命令 AT+CLPORT=? +CLPORT: ("TCP","UDP"),(0-65535)
OK
单链接
(CIPMUX=0)
+CLPORT: (0-5),("TCP","UDP"),(0-65535)
OK
多链接
(CIPMUX=1)
Link No. 0~5 整数型,表示连接序号
连接类型,字符串型(双引号可加可不加) "TCP" 建立TCP连接
"UDP" 建立UDP连接
模块端口 1~65535 整数型

建立TCP连接或注册UDP端口号:AT+CIPSTART

语法规则:

命令类型 语法 返回和说明
设置命令 单路连接 (+CIPMUX=0)时:
AT+CIPSTART=,,
如果格式正确且处于IP INITIAL 或者 IP STATUS
或TCP/UDP CLOSE状态,返回:
OK
否则返回:
+CME ERROR
紧接着会有URC上报,上报内容如下:如果连接已经存在,返回:
ALREADY CONNECT
如果连接成功(非透传),返回:
CONNECT OK
如果连接成功(透传),返回:
CONNECT
否则返回:
STATE:
CONNECT FAIL
多路连接(+CIPMUX=1)时:
AT+CIPSTART=,,,
如果格式正确且处于 IP STATUS或IP
PROCESSING时,返回:
OK
否则返回:
+CME ERROR
紧接着会有URC上报,上报内容如下:如果连接已经存在, 返回:
,ALREADY CONNECT
如果连接成功,返回:
,CONNECT OK
否则返回:
,CONNECT FAIL
测试命令 AT+CIPSTART=? 单路连接(+CIPMUX=0)时返回:
+CIPSTART: (取值列表),(IP address
range),(port range)
+CIPSTART: (取值列表),(domain
name),(port range)
OK
多路连接(+CIPMUX=1)时返回:
+CIPSTART: ( 取值列表 ),(
取值列表 ),(IP addressrange),(port range)
+CIPSTART: (取值列表),(取值列表),(domain name),(portrange)
OK
注意事项  此命令应用于建立 TCP/UDP 连接;
 当前状态可用AT+CIPSTATUS查询;
 单路连接时只当前状态为IP INITIAL 或者 IP STATUS或TCP/UDP CLOSE 时可执行,多路连接时当前状态为 IP STATUS或IP PROCESSING时可执行;
 在当前状态不是上述可执行状态时,需执行 AT+CIPSHUT后再开始建立连接;
 多路连接时,设置此命令前,必须先执行AT+CSTT, AT+CIICR,AT+CIFSR这三个命令。

参数定义:

参数 定义 取值 对取值的说明
Link No. 0~5 整数型,表示连接序号
连接类型,字符串型(双引号可加可不加) "TCP" 建立TCP连接
"UDP" 建立UDP连接
远端服务器 IP 地址或域名皆可 最大128个字节 字符串参数(双引号可加可不加)
远端服务端口 1~65535 整数型
单连接状态 IP INITIAL 初始化
IP START 启动任务
IP CONFIG 配置场景
IP GPRSACT 场景已激活
IP STATUS 获得本地 IP 状态
TCP CONNECTING/UDP
CONNECTING/SERVER
LISTENING
TCP 连接中/UDP 端口注册中/服务器侦听中
CONNECT OK 连接建立成功
TCP CLOSING/UDP
CLOSING
正在关闭 TCP 连接,正在注销 UDP 端口
TCP CLOSED/UDP
CLOSED
连接断开 /UDP 端口被注销
PDP DEACT 场景被释放

选择TCPIP应用模式:AT+CIPMODE

语法规则:

命令类型 语法 返回
设置命令 AT+CIPMODE= OK
查询命令 AT+CIPMODE? +CIPMODE:
OK
测试命令 AT+CIPMODE=? +CIPMODE: (0-NORMAL MODE,1-TRANSPARENT MODE)
OK
注意事项 此命令只有在IP INITIAL状态下才能进行设置只有TCP单链接才支持透明传输模式

参数定义:

参数 定义 取值 对取值的说明
TCPIP应用模式 0 非透明传输模式
1 透明传输模式

选择非透传数据发送模式:AT+CIPQSEND

注: 慢发模式每发送一笔数据需要服务器那边的确认,而快发则发送到模块就可以了,不需要服务器的确认。推荐使用0或1,即快发模式; 这两种快发模式实现机制没有区别,区别只在于发送完数据,模式0提示SEDN OK,模式1提示DATA ACCEPT; 建议使用CIPACK命令查询每笔数据对端是否已经收到

语法规则:

命令类型 语法 返回
设置命令 AT+CIPQSEND= OK
查询命令 AT+CIPQSEND? +CIPQSEND:
OK
测试命令 AT+CIPQSEND=? +CIPQSEND: (0,1,2)
OK

参数定义:

参数 定义 取值 对取值的说明
非透传数据发送模式 0 缺省值。快发模式0。当服务器收到数据,模块返回:
SEND OK (单链接)或
, SEND OK (多链接)
1 快发模式1。当数据发送到模块,终端返回:
DATA ACCEPT: (单链接)
DATA ACCEPT:, (多链接)
2 慢发模式当服务器收到数据,模块返回:
SEND OK (单链接)或
, SEND OK (多链接)

设置接收的数据末尾是否自动添加回车换行:AT+CIPRXF

语法规则:

命令类型 语法 返回
设置命令 AT+CIPRXF= OK
查询命令 AT+CIPRXF? +CIPRXF:
OK
测试命令 AT+CIPRXF=? +CIPRXF: (的取值列表)
OK

参数定义:

参数 定义 取值 对取值的说明
模式 0 每笔收到的数据末尾自动添加一个回车换行(\r\n)
1 每笔收到的数据末尾不添加回车换行(\r\n)

配置透明传输模式:AT+CIPCCFG

语法规则:

命令类型 语法 返回
设置命令 AT+CIPCCFG=,,z>,[,,,,
]
OK
查询命令 AT+CIPCCFG? +CIPCCFG:
,,,,xmode>,,,
OK
测试命令 AT+CIPCCFG=? +CIPCCFG:
(NmRetry:3-8),(WaitTm:2-10),(SendSz:1-14
60),(esc:0,1),(Rxmode:0,1),(RxSize:50-1460
),(Rxtimer:20-1000),(BufClean:0,1)
OK
注意事项 此命令只在单路连接(AT+CIPMUX=0)且AT+CIPMODE=1的情况下可以设置

参数定义:

参数 定义 取值 对取值的说明
一个IP包的重传次数 3~8 缺省值为5
间隔发送时间 2~10 单位为 100ms,缺省值为2。
每次发送数据字节数 1~1460 缺省值为1024
是否开启转义序列
[软件上不支持转义功能,请忽略此参数所代表的意义]
1 开启转义序列
0 不开启转义序列,默认值
从串口接收数据的时间间隔设置 1 设置时间间隔,间隔为
0 没有时间间隔
每次接收数据的长度 50-1460 单位为bytes
从串口接收数据的时间间隔 20-1000 单位为ms,缺省值为50ms
退出透传后是否清空发送缓存区 0 不清空缓冲区一旦出错自动退出透传模式后,保留缓存数据。下次重连进入透传模式后,会发送之前缓冲区中的数据给服务器
1 清空缓存区一旦出错自动退出透传模式后,缓存被清空。下次重连进入透传模式后,不会发送之前缓冲区中被清空的数据给服务器

发送数据:AT+CIPSEND

语法规则:

命令类型 语法 返回和说明
设置命令 单路连接(AT+CIPMUX=0):
AT+CIPSEND=
本命令用于在单链接模式下发送长度不可变的数据
1) 正常情况下返回 > (后面有个空格)
>(空格)后输入长度的数据,则数据自动发送出去。如果是快发模式0或慢发模式,则数据发送成功后,有如下的返回:
SEND OK
如果是快发模式1,则数据发送成功后,有如下的返回:
DATA ACCEPT:
如果数据发送失败,则有如下的返回:
SEND FAIL
2) 如果连接未建立或者连接被断开,返回:
+CME ERROR
多路连接(+CIPMUX=1):
AT+CIPSEND=[,]
当省略时,本命令用于多连接模式下发送长度可变的数据。响应"> ",此时输入数据,执行CTRL+Z(0x1A)发送,或执行
ESC(0x1B)中止操作;当不省略时,本命令用于多连接模式下发送长度不可变的数据。响应">",>后输入长度的数据,则数据自动发送出去。
如果连接未建立或者连接被断开,返回:
+CME ERROR
如果是快发模式0或慢发模式,则数据发送成功后,有如下的返回:
,SEND OK
如果是快发模式1,则数据发送成功后,有如下的返回:
DATA ACCEPT:,
如果数据发送失败,返回:
,SEND FAIL
执行命令 AT+CIPSEND 本命令用于在单链接模式下发送长度可变的数据响应"> ",此时输入数据,执行CTRL+Z(0x1A)发送,或执行
ESC(0x1B)中止操作如果连接未建立或已被断开,返回:
+CME ERROR
如果是慢发模式,则数据发送成功后,有如下的返回:
SEND OK
如果是快发模式,则数据发送成功后,有如下的返回:
DATA ACCEPT:
如果数据发送失败,返回:
SEND FAIL
查询命令 AT+CIPSEND? 单路连接(AT+CIPMUX=0)返回:
+CIPSEND:
OK
多路连接(AT+CIPMUX=1)返回:
+CIPSEND: ,
OK
测试命令 AT+CIPSEND=? 单路连接(AT+CIPMUX=0)返回:
+CIPSEND:
OK
多路连接(AT+CIPMUX=1)返回:
+CIPSEND: <0-7>,
OK
注意事项  数据的最大发送长度由网络决定。
 通过AT+CIPATS可以在设定的时间内自动发送数据。
 只有在连接已建立的状态下才可以发送数据。
 一次最多能发送字节数不大于值
 不推荐使用慢发模式!
 发送命令AT+CIPSEND或AT+CIPSEND=以\r或\r\n为结尾。若用户以\r结尾,如果发送的数据第一个字节恰好是\n,模块会判断发送命令以\r\n为结尾,导致发送的数据的第一个字符\n被吞掉。所以,此时建议用户用CIPSEND发送数据以\r\n为结尾。例如:
AT+CIPSEND\r
>\n123456
模块会判断为AT+CIPSEND\r\n,会把数据中第一个字符\n吃掉。服务器那边收到的数据是123456。
解决的方法是:
AT+CIPSEND\r\n
>\n123456
再例如:
AT+CIPSEND=7\r
>\n123456
模块会判断为AT+CIPSEND\r\n,会把数据中第一个字符\n吃掉,导致数据少一个字符,会一直发不出去。解决的方法是:
AT+CIPSEND=7\r\n
>\n123456

参数定义:

参数 定义 取值 对取值的说明
Link No.
与+CIPSTRAT中定义一致
0~5 整数型,表示连接序号
发送数据长度 - 整数型,它必须小于
每次发送数据最大值 - 整数型,目前是1460字节

设置自动发送数据前的定时时间:AT+CIPATS

语法规则:

命令类型 语法 返回
设置命令 AT+CIPATS=[, OK
查询命令 AT+CIPATS? +CIPATS: ,
测试命令 AT+CIPATS=? +CIPATS: (取值列表),(

参数定义:

参数 定义 取值 对取值的说明
是否设置自动发送时间,整数型 0 未设置自动发送数据 (缺省值)
1 设置自动发送数据
数据将在多少秒后被发送 1~100 整数型,以秒为单位

设置发送数据时是否显示‘>’和发送情况提示:AT+CIPSPRT

语法规则:

命令类型 语法 返回
设置命令 AT+CIPSPRT= OK
查询命令 AT+CIPSPRT? +CIPSPRT:
OK
测试命令 AT+CIPSPRT=? +CIPSPRT: (取值列表)
OK

参数定义:

参数 定义 取值 对取值的说明
执行 AT+CIPSEND 后是否显示‘>’ 和发送情况提示(即‘SEND
OK‘或‘DATA ACCEPT‘)。整数型
0 不显示‘>’,但返回 "SEND OK"或"DATA ACCEPT"
注:返回 "SEND OK"或"DATA ACCEPT"由
AT+CIPQSEND这个命令的设定来决定
1 显示‘>’,且返回 "SEND OK" 或"DATA ACCEPT"
缺省值注:返回 "SEND OK"或"DATA ACCEPT" 由
AT+CIPQSEND这个命令的设定来决定
2 不显示‘>’,不返回 "SEND OK" 或"DATA ACCEPT"

查询当前连接状态:AT+CIPSTATUS

语法规则:

命令类型 语法 返回和说明
执行命令 AT+CIPSTATUS 如果是单路连接(AT+CIPMUX=0),返回:
OK
STATE:
如果是多路连接 (AT+CIPMUX=1),返回:
OK
STATE:
C:,, , , ,
查询命令 AT+CIPSTATUS=
(多路连接时支持)
多路连接 (AT+CIPMUX=1),返回:
,, , , , state>
测试命令 AT+CIPSTATUS=? 返回:
OK

参数定义:

参数 定义 取值 对取值的说明
Link No. 0~5 整数型,表示连接序号与+CIPSTRAT中定义一致
GPRS 承载方式 0~1 缺省是0
IP 地址 - 字符串参数(字符串需要加引号)
端口号 - 整数型
单连接状态 IP INITIAL 初始化
IP START 启动任务
IP CONFIG 配置场景
IP GPRSACT 场景已激活
IP STATUS 获得本地 IP 状态
TCP CONNECTING/UDP
CONNECTING/SERVER
LISTENING
TCP 连接中/UDP 端口注册中/服务器侦听中
CONNECT OK 连接建立成功
TCP CLOSING/UDP
CLOSING
正在关闭 TCP 连接,正在注销 UDP 端口
TCP CLOSED/UDP
CLOSED
连接断开 /UDP 端口被注销
PDP DEACT 场景被释放
多链接状态 IP INITIAL 初始化
IP START 启动任务
IP CONFIG 配置场景
IP GPRSACT 场景已激活
IP STATUS 获得本地 IP 状态
IP PROCESSING IP 数据阶段
PDP DEACT 场景被释放
客户端状态 INITIAL 初始化
CONNECTING 正在连接
CONNECTED 已连接
REMOTE CLOSING 对端关闭
CLOSING 正在关闭
CLOSED 已关闭

查询已连接数据传输状态:AT+CIPACK

语法规则:

命令类型 语法 返回
设置命令 多路连接(+CIPMUX=1):
AT+CIPACK=
+CIPACK: , ,
OK
执行命令 单路连接(AT+CIPMUX=0):
AT+CIPACK
+CIPACK: , ,
OK
测试命令 AT+CIPACK=? OK
注意事项 当链接建立后,查询AT+CIPACK,,,三个参数的初始值都是0,每发一笔数据,这三个参数都会累积增加。
AT+CIPSHUT后或链接断链后重连,查询AT+CIPACK,三个参数都重置为0

参数定义:

参数 定义 取值 对取值的说明
Link No. 0~5 整数型,表示连接序号。与+CIPSTRAT中定义一致
链接建立以来累计已发送的数据字节数 - 整数型
链接建立以来累计服务器已确认收到的数据字节数 - 整数型
链接建立以来服务器尙未确认收到的数据字节数 - 整数型

设置为CSD或GPRS连接模式:AT+CIPCSGP

语法规则:

命令类型 语法 返回和说明
设置命令 AT+CIPCSGP=,[,,>] OK
查询命令 AT+CIPCSGP? +CIPCSGP:,,,
OK
测试命令 AT+CIPCSGP=? +CIPCSGP: 1-GPRS,APN,USER
NAME,PASSWORD
OK

参数定义:

参数 定义 取值 对取值的说明
无线连接模式 1 GPRS连接
GPRS下要设置的参数:
GPRS 接入点名称 - 字符串参数(字符串需要加引号)
GPRS 用户名 - 字符串参数(字符串需要加引号)
GPRS 密码 - 字符串参数(字符串需要加引号)

配置域名服务器DNS:AT+CDNSCFG

语法规则:

命令类型 语法 返回
设置命令 AT+CDNSCFG=[,[,]] OK
查询命令 AT+CDNSCFG? PrimaryDns:
SecondaryDns:
OK
测试命令 AT+CDNSCFG=? +CDNSCFG: ("Primary DNS"),("Secondary
DNS")
OK

参数定义:

参数 定义 取值 对取值的说明
主域名服务器的 IP地址 字符串参数(字符串需要加引号)
备域名服务器的 IP地址 字符串参数(字符串需要加引号)
定义同+SAPBR中 1~3 当使用SAPBR激活pdp承载后,如有需要,再使用带
的命令设置DNS服务器

举例:

命令(→)
返回(←)
实例 解释和说明
+CDNSCFG命令查询和修改域名服务器的场景应用1(TCPIP,MQTT应用):
→ AT+CREG? 查询当前GPRS注册状态
← +CREG:0,1
OK
=0,表示禁用URC上报
=1,标识已经注册GPRS网络,而且是本地网
→ AT+CSTT
← OK
→ AT+CIICR
← OK
→ AT+CIFSR
← 10.113.72.66
→ AT+CDNSCFG? 查询默认DNS服务器
← PrimaryDns: 211.136.112.50
SecondaryDns: 211.136.150.66
OK
→ AT+CDNSCFG=ip1,ip2 如果有需要,客户可以修改DNS服务器
ip1和ip2请按照实际的dns服务器地址输入,ip1和ip2
可以加双括号,也可以不加
← OK
→ AT+CIPSTART=TCP,, 连接一个域名地址。所有参数可加双括号,也可不加本例是TCPIP的应用举例。如果是MQTT应用,此时可依次输入:
AT+MCONFIG,AT+MIPSTART,AT+MCONNECT等命令,具体请参考MQTT使用方法举例
← OK
CONNECT OK
+CDNSCFG查询和修改域名服务器的场景应用2(HTTP,FTP应用):
→ AT+SAPBR=3,1,"CONTYPE","GPRS"
← OK

域名解析:AT+CDNSGIP

语法规则:

命令类型 语法 返回和说明
设置命令 AT+CDNSGIP= 如果命令正确,而且域名解析成功,响应:
OK
+CDNSGIP: 1, ,
如果命令正确,但域名解析失败,响应:
OK
+CDNSGIP:0,
如果命令语法错误,响应:
ERROR
测试命令 AT+CDNSGIP=? 返回:
OK

参数定义:

参数 定义 取值 对取值的说明
Internet 上注册的域名 - 字符串参数(字符串需要加引号),不超过128个字节
域名对应的IP地址 - 字符串参数(字符串需要加引号)
DNS相关的错误码 10 GENERAL ERROR
11 MAX RETRIES
12 NO SERVER ADDR
13 NO MEMORY
14 INVALID NAME
15 INVALID RESP
其他 一些其他的错误代码

设置单链接接收数据时是否显示发送方的IP地址和端口号:AT+CIPSRIP

语法规则:

命令类型 语法 返回
设置命令 AT+CIPSRIP= OK
查询命令 AT+CIPSRIP? +CIPSRIP:
OK
测试命令 AT+CIPSRIP=? +CIPSRIP: (取值列表)
OK
注意事项 此命令只在单路连接模式下有效(+CIPMUX=0)

参数定义:

参数 定义 取值 对取值的说明
是否显示发送方的 IP
地址和端口号
0 不显示提示(缺省值)
1 显示提示,格式如下: RECV FROM::

设置单链接接收数据是否显示IP头:AT+CIPHEAD

语法规则:

命令类型 语法 返回
设置命令 AT+CIPHEAD= OK
查询命令 AT+CIPHEAD? +CIPHEAD:
OK
测试命令 AT+CIPHEAD=? +CIPHEAD: (取值列表)
OK
注意事项 此命令只有在单路连接的模式下 (+CIPMUX=0)才有效

参数定义:

参数 定义 取值 对取值的说明
接收数据时是否增加 IP 头提示 0 未设置IP头
1 设置IP头,格式是 "+IPD,data length:"

设置单链接接收数据是否在IP头显示传输协议:AT+CIPSHOWTP

语法规则:

命令类型 语法 返回
设置命令 AT+CIPSHOWTP= OK
查询命令 AT+CIPSHOWTP? +CIPSHOWTP:
OK
测试命令 AT+CIPSHOWTP=? +CIPSHOWTP: (取值列表)
OK
注意事项 此命令只有在单路连接的模式下 (+CIPMUX=0) 并且AT+CIPHEAD=1 时才有效

参数定义:

参数 定义 取值 对取值的说明
接收数据时是否在
IP 头显示传输协议
0 不显示传输协议(默认值)
1 显示传输协议,格式是"+IPD,,:"

配置TCP协议的参数:AT+TCPUSERPARAM

语法规则:
命令类型 语法 返回
设置命令 AT+TCPUSERPARAM=, OK
查询命令 AT+TCPUSERPARAM? +RXTRTTVAR:
+RXTMAXCNT:
OK
测试命令 AT+TCPUSERPARAM=? RXTRTTVAR: (1-60)
RXTMAXCNT:(0-12)
OK
参数定义:
参数 定义 取值 对取值的说明
第一次重传超时时间 1~60 整数型,单位为秒,缺省值为1
事实上第i次重传超时时间为P1<<config[i]
注: <<为左移符号
config[i]={0,1,2,3,4,5,6,7,7,7,7,7} ,即:
config[1]=0,第1次重传超时时间为1(1<<0)
config[2]=1,第2次重传超时时间为2(1<<1)
config[3]=2,第3次重传超时时间为4(1<<2)
config[4]=3,第4次重传超时时间为8(1<<3)
config[5]=4,第5次重传超时时间为16(1<<4)
config[6]=5,第6次重传超时时间为32(1<<5)
config[7]=6,第7次重传超时时间为64(1<<6)
config[8]=7,第8次重传超时时间为128(1<<7)
config[9]=7,第9次重传超时时间为128 (1<<7)
config[10]=7,第10次重传超时时间为128 (1<<7)
config[11]=7,第11次重传超时时间为128 (1<<7)
config[12]=7,第12次重传超时时间为128 (1<<7)
例如:
AT+TCPUSERPARAM=1,6 的情况下:
15:57:34 开始SEND,然后在1秒无应答情况下, 15:57:35开始第1次重传,然后在2秒无应答情况下, 15:57:37开始第2次重传,然后在4秒无应答情况下, 15:57:41开始第3次重传,然后在8秒无应答情况下, 15:57:49开始第4次重传,然后在16秒无应答情况下,15:58:05开始第5次重传,然后在32秒无应答情况下,15:58:37开始第6次重传。
重传次数 0~12 整数型,缺省值为6

多链接时接收数据:+RECEIVE

语法规则:

命令类型 语法 返回和说明
URC上报 +RECEIVE,,:
Received data
注:Received data 是接收到的数据,和
+RECEIVE,,分开,另起一行

参数定义:

参数 定义 取值 对取值的说明
Link No.
与+CIPSTRAT 中
定义一致
0~5 整数型,表示连接序号
接收到的数据的长度 - 整数型

保存TCPIP应用上下文:AT+CIPSCONT

该命令的执行命令保存包含相应的TCPIP AT 命令参数,即TCPIP 应用上下文,当系统重启时,参数将自动载入。查询命令查询当前的TCPIP应用上下文的设置。

语法规则:

命令类型 语法 返回和说明
查询命令 AT+CIPSCONT? +CIPSCONT:
+CIPCSGP:
Gprs Config APN:
Gprs Config UserId:
Gprs Config Password:
+CIPHEAD:
+CIPSHOWTP:
+CIPSRIP:
+CIPATS:,
执行命令 AT+CIPSCONT OK

参数定义:

参数 定义 取值 对取值的说明
是否保存上下文 0 保存TCPIP 应用上下文
1 默认值,表示不保存TCPIP 应用上下文

手动获得网络数据:AT+CIPRXGET

语法规则:

命令类型 语法 返回和说明
打开手动获取数据功能:
AT+CIPRXGET=1(或5,从V867版本开始支持设置为5)
OK
设置为1后,第一次上报数据会有+CIPRXGET:1的URC上报,后面再来数据就不报了,直到AT+CIPRXGET=2或3来读取,才会再次上报。设置为5后,每次来数据皆有上报,不管上次数据有没有读过。
收到+CIPRXGET:1输入以下命令来手动读取数据:
AT+CIPRXGET=2,
+CIPRXGET:2,,
……数据…..
OK
收到+CIPRXGET:1也可以16进制读取:
AT+CIPRXGET=3,
+CIPRXGET:3,,
……数据…..
OK
查询还有多少数据未读:
AT+CIPRXGET=4
+CIPRXGET:4,
OK
多链接(AT+CIPMUX=1)时:
AT+CIPRXGET=,[,<
len>]
打开手动获取数据功能输入:
AT+CIPRXGET=1(或5,从V867版本开始支持设置为5)
OK
后续来数据会有+CIPRXGET:1的URC上报
收到+CIPRXGET:1输入以下命令来手动读取数据:
AT+CIPRXGET=2,,
+CIPRXGET:2,,,
……数据…..
OK
收到+CIPRXGET:1也可以16进制读取:
AT+CIPRXGET=3,,
+CIPRXGET:3,,,
……数据…..
OK
查询还有多少数据未读:
AT+CIPRXGET=4,
+CIPRXGET:4,,
OK
查询命令 AT+CIPRXGET? +CIPRXGET:
OK
测试命令 AT+CIPRXGET=? OK
URC上报 +CIPRXGET:1 单链接,设置AT+CIPRXGET=1或5后,当收到网络数据时,会有如此的URC上报,表示收到数据
+CIPRXGET:1, 多链接,设置AT+CIPRXGET=1或5后,当收到网络数据时,会有如此的URC上报,表示收到数据

参数定义:

参数 定义 取值 对取值的说明
模式 0 关闭手动获取数据功能。缺省值。
1 开启手动获取数据功能。设置为1后,第一次上报数据会有+CIPRXGET:1的
URC上报,后面再来数据就不报了,直到
AT+CIPRXGET=2或3来读取,才会再次上报
2 读取数据
3 读取数据(16进制)
4 还有多少数据未读
5 开启手动获取数据功能。设置为5后,每次来数据皆有上报。
多链接时的Link id 0-5 定义同+CIPSTART命令的
将要读取的数据的长度 1-1460 普通字符方式读取时
1-730 HEX方式读取时
已经读取的数据 单位:字节
尚未读取的数据 单位:字节

举例:

命令(→)
/返回(←)
实例 解释和说明
单链接时如何手动读取网络数据
→ AT+CIPRXGET=1 开启手动获取网络数据功能
← OK
→ AT+CGREG? 查询当前GPRS注册状态
← +CGREG:0,1
OK
=0,表示禁用URC上报
=1,标识已经注册GPRS网络,而且是本地网
→ AT+CIPSTART="TCP","36.9.88.120",6001 连接服务器(单链接)
← OK
←(URC) CONNECTOK 已经连上了
←(URC) +CIPRXGET: 1 服务器那边发数据过来了
→ AT+CIPRXGET=2,150 读取数据,读150个字符,以普通的字符的方式读取
← +CIPRXGET: 2,10,0
1234567890
OK
读到了10个数据:1234567890,还有0个数据未读取
→ AT+CIPRXGET=4 查询下还有多少数据未读
← +CIPRXGET: 4,0
OK
0个未读
←(URC) +CIPRXGET: 1 服务器那边又发数据过来了
→ AT+CIPRXGET=3,150 读取数据,读150个字符,以HEX的方式读取
← +CIPRXGET: 3,5,0
48454C4C4F
OK
读到了5个数据:HELLO,还有0个数据未读取
多链接时如何手动读取网络数据
→ AT+CIPRXGET=1 开启手动获取网络数据功能
← OK
→ AT+CIPMUX=1
← OK
→ AT+CSTT 模块注册网络后会从网络自动获取并激活一个
PDP上下文(此可以通过AT+CGDCONT?来查询),所以直接输入AT+CSTT即可,模块会按照自动获取的来设置CSTT的APN
← OK
→ AT+CIICR
← OK

关闭TCP或UDP连接:AT+CIPCLOSE

语法规则:

命令类型 语法 返回和说明
设置命令 单路连接时
AT+CIPCLOSE=
返回:
CLOSE OK
多路连接时
AT+CIPCLOSE=[,]
返回:
,CLOSE OK
执行命令 AT+CIPCLOSE 如果关闭成功,返回:
CLOSE OK
如果关闭失败,返回:
ERROR
测试命令 AT+CIPCLOSE=? 返回:
OK
注意事项  执行命令只对单链接有效,多链接模式下返回ERROR
 执行命令AT+CIPCLOSE 只有在TCP/UDP CONNECTING或CONNECT OK状态下才会关闭连接,否则会认为关闭失败返回ERROR
 单路连接模式下,关闭后的状态为IP CLOSE

参数定义:

参数 定义 取值 对取值的说明
关闭模式 0 慢关(缺省值)
1 快关
Link No. 0~5 整数型,表示连接序号。与+CIPSTRAT中定义一致

关闭移动场景:AT+CIPSHUT

语法规则:

命令类型 语法 返回和说明
执行命令 AT+CIPSHUT 如果关闭成功,返回:
SHUT OK
如果关闭失败,返回:
ERROR
测试命令 AT+CIPSHUT=? 返回:
OK
注意事项  可以用AT+CIPSHUT正常关闭移动场景,关闭后状态为IPINITIAL。
 多路连接时执行AT+CIPSHUT,所有的IP连接都将关闭。
 如果上报"+PDP:DEACT",标识GPRS被网络释放,此时仍然需要执行AT+CIPSHUT来改变状态。

修改RNDIS网卡网关IP地址:AT+ROUTEIP

语法规则:

命令类型 语法 返回
设置命令 AT+ROUTEIP= OK
查询命令 AT+ROUTEIP? ,
OK
测试命令 AT+ROUTEIP=? OK

参数定义:

参数 定义 取值 对取值的说明
当前的RNDIS网卡网关IP地址 IP地址,双引号可加可不加,只支持
192.168.X.1
已经设置好,需要重启生效的RNDIS
网卡网关IP地址
IP地址,双引号可加可不加,只支持
192.168.X.1

Ping回声请求命令:AT+CIPPING

语法规则:

命令类型 语法 返回和说明
设置命令 AT+CIPPING=[,Num>[,[,[,
]]]]
+CIPPING: ,Address>,,[ +CIPPING:
,,, [...]]
OK
查询命令 AT+CIPPING? +CIPPING: ,,,
OK
测试命令 AT+CIPPING=? +CIPPING: (list of supported s),(list of
supported s),(list of supported
s),(list of supported s)
OK
注意事项  发送PING命令之前,需激活GPRS PDP上下文。
 当发送PING到时无回应,那么返回的信息则显示=600 并且=255。
 执行本命令时,如果GPRSPDP上下文由于某种原因被去激活了,例如掉网,那么本命令立即终止执行。

参数定义:

参数 定义 取值 对取值的说明
PING的目标服务器地址。IP地址或域名都支持 ip address
Domain name
需要发送的PING的数量 1-100 缺省值:4
PING请求的长度 0-1024 缺省值:32
The timeout waiting for a single
Echo Reply
1-600 单位:100 ms
time to live 1-255 缺省值:64
Echo Reply serial number
IP Address of the remote host
time to receive the response 单位:1ms

举例:

命令(→)/
返回(←)
实例 解释和说明
→ AT+CSTT
← OK
→ AT+CIICR
← OK
→ AT+CIFSR
← 10.207.9.213
→ AT+CIPPING="www.baidu.com"
← +CIPPING:1,"36.152.44.96",35,54
+CIPPING:2,"36.152.44.96",20,54
+CIPPING:3,"36.152.44.96",20,54
+CIPPING:4,"36.152.44.96",35,54
OK

设置TCP保活(keep-alive)参数:AT+CIPTKA

注:本命令仅适用于合宙4GCAT1模块(Air720U/Air724U系列),不适用于合宙4GCAT4模块(Air720/Air720G/Air720H/Air720D/Air720S)

语法规则:

命令类型 语法 返回和说明
设置命令 AT+CIPTKA=[,[
,[,]]]
OK
查询命令 AT+CIPTKA? +CIPTKA:,,,ount>
OK
测试命令 AT+CIPTKA=? +CIPTKA:(listofsupporteds),(listofsupportedepIdle>s),(listofsupporteds),(listofsuppo
rteds)
OK

参数定义:

参数 定义 取值 对取值的说明
是否开启TCP保活(keep-alive) 0 关闭
1 开启
在时间内链接上无任何数据交互,则发送初始保活探针(initial
keep-alive probe)
30~7200 单位为秒,缺省值为7200
保活探针重传的间隔时间 30~600 单位为秒,缺省值为75
发送保活探针的最大数量 1~9 单位为次,缺省值为9

心跳包参数设置:AT^HEARTCONFIG

本命令用于配置心跳的相关参数(是否允许发送心跳包,socketid,心跳间隔)。

语法规则:

命令类型 语法 返回和说明
设置命令 AT^HEARTCONFIG= OK
查询命令 AT^HEARTCONFIG? ^HEARTCONFIG:
,,
OK
测试命令 AT^HEARTCONFIG=? OK
注意事项 目前仅支持一路链接设置心跳包。

参数定义:

参数 定义 取值 对取值的说明
是否开启心跳包功能 0 disabled
1 enabled
连接id,定义同+CIPSTART中 0~5 如果是单链接,固定为0
如果是多链接,取值为0~5
心跳间隔时间 5~600 单位为秒,缺省值为120

举例:

命令(→)/
返回(←)
实例 解释和说明
→ AT^HEARTCONFIG? 查询当前心跳配置
← ^HEARTCONFIG: 0,0,120
OK
缺省配置为:心跳为关,心跳间隔为120秒
→ AT^HEARTCONFIG=1,0,180 开启心跳功能,cid=0,并设置心跳间隔为180秒
← OK
→ AT^HEARTCONFIG? 再次查询心跳设置
← ^HEARTCONFIG: 1,0,180
OK
心跳包功能已经打开,当跟服务器建立cid=0的链接后(可以是单链接,也可以是多链接),会自动发送心跳包,心跳包内容缺省为模块的IMEI

设置心跳包内容:AT^HEARTBEAT

本命令设置心跳包的内容。默认状态下将自己的 IMEI 作为心跳包内容。

语法规则:

命令类型 语法 返回
设置命令 AT^HEARTBEAT=, OK
查询命令 AT^HEARTBEAT? ^HEARTBEAT: ,
OK
测试命令 AT^HEARTBEAT=? OK

参数定义:

参数 定义 取值 对取值的说明
连接id,定义同+CIPSTART中 0~5 如果是单链接,固定为0
如果是多链接,取值为0~5
心跳包内容 字符串类型,最长为256字节

举例:

命令(→)/
返回(←)
实例 解释和说明
→ AT^HEARTBEAT? 查询当前心跳内容
← ^HEARTBEAT: 0,866714044915436
OK
缺省心跳为IMEI
→ AT^HEARTBEAT=0,TCP-heart 设置新的心跳内容
← OK
→ AT^HEARTBEAT? 再次查询
← ^HEARTBEAT: 0,TCP-heart
OK

设置HEX编码格式心跳包内容:AT^HEARTBEATHEX

本命令将心跳包的内容设置为十六进制数据。

语法规则:

命令类型 语法 返回
设置命令 如果是单链接(即AT+CIPMUX=0)
AT^HEARTBEATHEX=,
OK
>返回后,设置的心跳包内容会自动发送出去
如果是多链接(即AT+CIPMUX=1)
AT^HEARTBEATHEX=,,
查询命令 AT^HEARTBEATHEX? ^HEARTBEATHEX: ,
OK
测试命令 AT^HEARTBEATHEX=? OK

参数定义:

参数 定义 取值 对取值的说明
连接id,定义同+CIPSTART中 0~5 如果是单链接,固定为0
如果是多链接,取值为0~5
数据长度
心跳包内容 字符串类型,最长为256字节

举例:

命令(→)/
返回(←)
实例 解释和说明

查询心跳包发送情况:AT^HEARTINQUIRE

本命令用于查询心跳包发送情况。

语法规则:

命令类型 语法 返回和说明
查询命令 AT^HEARTINQUIRE? ^HEARTINQUIRE:
,,
OK
测试命令 AT^HEARTINQUIRE=? OK

参数定义:

参数 定义 取值 对取值的说明
多少秒前发送成功了一条 单位:秒
还剩余多少秒发下一条 单位:秒
一共发了多少条了 单位:条

举例:

命令(→)/
返回(←)
实例 解释和说明

从数据模式或PPP在线模式切换至命令模式:+++

+++ 字符序列可使TA 忽略当前AT 接口的数据传输,并切换至命令模式。它允许TA 在保持与远端服务器数据连接的状态下,仍然可输入AT命令。执行命令 +++ OK说明:为避免+++ 被错误的识别为数据,需要遵循以下步骤:1. "+++"输入前 T1 时间(1 秒)内无字符输入。

语法规则:

命令类型 语法 返回

从命令模式切换至数据模式:ATO

语法规则:

命令类型 语法 返回和说明
执行命令 ATO 成功,则返回:
CONNECT
说明:TA 继续数据传输连接,即从命令模式切换回数据模式
若无法恢复到数据模式,则返回:
NO CARRIER

举例:

命令(→)
/返回(←)
实例 解释和说明
→ ATD*99# 数据拨号
← CONNECT
~~~ÿ}#À!}!}!} }<}!}$}&@}#}$À#}%}&Êê}*h}"}&}
} } } }'}"}(}"7S~~ÿ}#À!}!}"} }<}!}$}
成功
→ +++ 切到AT命令模式
← OK 成功
→ ATO 再切到数据模式
← CONNECT
~~~ÿ}#À!}!}!} }<}!}$}&@}#}$À#}%}&Êê}*h}"}&}
} } } }'}"}(}"7S~~ÿ}#À!}!}"} }<}!}$}
成功

TCP/UDP错误码

在TCP应用过程中如果发生错误,将会以TCP ERROR:形式上报。TCP错误码:

在UDP应用过程中如果发生错误,将会以UDP ERROR:形式上报。UDP错误码:

错误码 中文释义 英文释义
0 成功 No error
1 TCPIP线程没有被使用 TCPIP is idle
2 没有可用的tsapi No tsapi
3 无效的tsapi Invalid tsapi
4 空间不足 No buffer
5 网络错误 Network error
6 远程主机不可达 Remote host is unreachable
7 地址正在使用中 The address is already in use
8 地址无效 The address is not available
9 携带的数据太多或者太少 The supplied buffer is too large or small
10 参数无效 Invalid parameter
11 远程主机拒绝连接 Remote host has rejected the connection
12 超时 Time out
13 连接被终止 An established connection is aborted
14 连接被重置 Remote host has reset the connection
15 socket连接已经建立 The socket is already connected
16 socket没有连接 The socket is not connected
17 socket连接已经被断开 The socket has been shutdown
18 未知错误 Undefined error
错误码 中文释义 英文释义
0 成功 No error
1 TCPIP线程没有被使用 TCPIP is idle
2 没有可用的tsapi No tsapi
3 无效的tsapi Invalid tsapi
4 回调未注册 The callback has not been registered
5 空间不足 No buffer
6 网络错误 Networkerror
7 远程主机拒绝连接 Remote host has rejected the connection
8 远程主机不可达 Remote host is unreachable
9 地址正在使用中 The address is already in use
10 地址无效 The address is not available
11 携带的数据太多或者太少 The supplied buffer is too large or small
12 参数无效 Invalid parameter
13 TCPIP线程忙 TCPIP is busy
14 未知错误 Undefined error
15 socket连接已经建立 The socket is already connected

状态机

当输入 TCPIP 相关命令以后,模块的状态也会发生相应的迁移。查询状态的命令是 AT+CIPSTATUS。

图1 :单链接时的状态机关于单连接状态机的几点说明:◆输入AT+CIICR,会马上进入IPCONFIG状态,当返回OK后,会进入到IPGPRSACT状态;◆输入AT+CIPSTART后,会立马进入IP/UDPCONNECTING状态,如果后续模块上报CONNECTOK这个URC,表明连接服务器成功,此时进入CONNECTOK状态;◆输入AT+CIPCLOSE后,立马进入TCP/UDPCLOSING状态,此时如果模块上报CLOSEOK,则表明关闭与服务器的连接成功,此时模块进入TCP/UDPCLOSED状态;◆如果模块上报+PDPDEACT这个URC,则标志着模块释放PDP上下文,并进入了PDPDEACT状态;◆在IPGPRSACT,IPSTATUS,CONNECTOK以及TCP/UDPCLOSED状态下,输入AT+CGATT=0,则也可以使模块释放上下文,进入PDPDEACT状态;◆模块进入PDPDEACT状态,仍需要输入AT+CIPSHUT,进入IPINITIAL状态;◆模块在各个状态下均可以输入AT+CIPSHUT,进入IPINITIAL状态。

图2 :多链接时的状态机

图1:单链接时的状态机

图1:单链接时的状态机

图2:多链接时的状态机

图2:多链接时的状态机

模块上电初始化以及TCPIP流程

见下图:

PDF 第 221 页插图

使用方法举例

由于这部分的命令具有高度相关性,所以将各个命令的应用例程集中在一起描述。

如果模块出现上下文去激活的主动上报,该如何处理:

命令(→)
/返回(←)
实例 解释和说明
TCP非透传应用1:模块做为客户端,单链接,发送数据(事实上,TCP发送方式有快发和慢发两种,由+CIPQSEND命令来设置发送方式。区别就是:慢发每发送一笔数据需要服务器那边的确认,而快发则发送到模块就可以了,不需要服务器的确认。慢发可能会出现长时间没响应的情况,AT通道就堵住了,所以建议采用快发模式)
→ AT+CREG? 查询当前GPRS注册状态
← +CREG:0,1
OK
=0,表示禁用URC上报
=1,标识已经注册GPRS网络,而且是本地网
→ AT+CGATT? 查看当前GPRS附着状态
← +CGATT:1
OK
=1,标明当前GPRS已经附着
→ AT+CIPMUX=0 设置为单链接模式
← OK
→ AT+CIPQSEND=1 设置为快发模式(推荐使用这种模式)
← OK
→ AT+CSTT 启动任务,设置APN
模块注册网络后会从网络自动获取并激活一个PDP上下文(此可以通过
AT+CGDCONT?来查询),所以直接输入
AT+CSTT即可,模块内部会按照自动获取的
来设置CSTT的APN
← OK
→ AT+CIICR 激活移动场景,获取IP地址
← OK
→ AT+CIFSR 查询分配的IP地址
← 010.083.172.111
→ AT+CIPSTATUS 查询下链接状态
← OK
STATE: IP STATUS
→ AT+CIPSTART="TCP","60.166.18.9",7500
或
AT+CIPSTART="TCP","60.166.18.9","7500"
其中:
"TCP"为链接的协议类型
"60.166.18.9" 为对端服务器的IP地址
7500 为对端服务器的TCP端口号注:CIPSTART设置命令所有的参数,双括号可以用,也可以不用
← OK
←(URC) CONNECT OK 如果链接成功,会有如此URC上报
→ AT+CIPSTATUS 查询下链接状态
← OK
STATE: CONNECT OK
链接建立成功
→ AT+CIPSEND 发送数据(不定长度,手动发送)
→ >1234567890 当出现 ">" 后,输入待发送的数据:
0123456789。用来发送数据,发送16进制数0x1A即等同于发送。
← DATA ACCEPT:10 发送成功而且对端服务器收到数据
→ AT+CIPACK 每发一笔,查询下发送状态,可以知道上笔数据服务器有没有收到
← +CIPACK: 10,10,0
OK
第一个10,表明已经发送的数据字节数,第二个
10表示服务器收到的数据字节数,0表示服务器尚未收到的数据字节数
→ AT+CIPSEND=10 发送数据(确定长度)
→ >1234567890
← DATA ACCEPT:10 输入数据达到10个字节,不用发送
数据会自动发送
→ AT+CIPATS=1,10 设置自动发送,自动发送的定时为10S
← OK
→ AT+CIPSEND 发送数据
→ >1234567890
← DATA ACCEPT:10 10s定时器溢出,不用发送,数据会自己发送
→ AT+CIPSEND=100
→ >123
← DATA ACCEPT:3 10s定时器溢出,输入内容不必达到100字节,也不用发送,数据会自己发送
→ AT+CIPCLOSE 关闭TCP链接
← CLOSE OK 关闭成功
→ AT+CIPSTATUS 查询下链接状态
← OK
STATE: TCP CLOSED
TCP链接已经关闭
→ AT+CIPSHUT 关闭移动场景
← SHUT OK 关闭成功
→ AT+CIFSR 查询当前的模块IP
← ERROR IP地址已经没有了
TCP非透传应用2:模块做为客户端,单链接,发送数据,开启SSL功能
→ AT+CIPMUX=0 设置为单链接模式
← OK
→ AT+CIPQSEND=1 发送模式为快发
← OK
→ AT+CIPSTATUS 查询链接状态
← OK
STATE: IP INITIAL
→ AT+CIPSSL=1 打开SSL功能(本例中双方都不需要验证证书)
← OK
→ AT+CIPSTART="TCP","60.166.18.9",7500 当模块设置为单链接并且状态为IP INITIAL时,也可以用CIPSTART直接建立连接,不必先输入
CSTT CIICR CIFSR
请写实际的服务器地址和端口,不要照抄
← OK
←(URC) CONNECT OK 如果链接成功,会有如此URC上报
→ AT+CIPSEND 发送数据
→ >1234567890 用来发送数据,发送16进制数0x1A
即等同于发送。
← DATA ACCEPT:10 表明模块接收了从TE输入的10个字节的待发数据
…… +CIPCLOSE,+CIPSHUT,不再赘述
TCP非透传应用3:模块做为客户端,单链接,发送数据,开启SSL功能(双向证书验证)
→ AT+CIPMUX=0 设置为单链接模式
← OK
→ AT+CIPQSEND=1 设置为快发
← OK
→ AT+CIPSSL=1 开启SSL功能开关为开
← OK
→ AT+FSCREATE="ca.crt" 创建CA 证书文件
← OK
→ AT+FSCREATE="client.crt" 创建客户端证书文件
← OK
→ AT+FSCREATE="client.key" 创建客户端密钥文件
← OK
→ AT+FSWRITE="ca.crt",0,2080,15 文件长度2080只是举例,要根据实际填写。下同。
← > 这里输入CA证书文件
← OK
← AT+FSWRITE="client.crt",0,128,10
→ > 这里输入客户端证书文件
← OK
→ AT+FSWRITE="client.key",0,188,10
← > 这里输入客户端密钥文件
← OK
→ AT+SSLCFG="cacert",0,"ca.crt" 设置服务器CA 证书
SSL 上下文id,在单链接的情况下缺省为0
← OK
→ AT+SSLCFG="clientcert",0,"client.crt" 设置客户端证书
← OK
→ AT+SSLCFG="clientkey",0,"client.key" 设置客户端KEY
← OK
→ AT+SSLCFG="seclevel",0,2 设置安全等级
← OK
→ AT+SSLCFG="ciphersuite",0,0X0035 设置加密套件
← OK
→ AT+SSLCFG="clientrandom",0,101B12C31415161
71F1920212223242526272829303132333435363
7
设置随机数
← OK
→ AT+CIPSTART=TCP,tcplab.openluat.com,57513
← OK
←(URC) CONNECT OK
→ AT+CIPSEND=10 发送数据(确定长度)
→ >1234567890
← DATA ACCEPT:10 输入数据达到10个字节,不用发送
数据会自动发送
→ AT+CIPSHUT
← OK
→ AT+CIPSSL=0 关闭SSL功能
← OK
UDP非透传应用1:模块做为客户端,单链接,数据发送
→ AT+CIPMUX=0 设置为单链接模式
← OK
→ AT+CIPQSEND=1 设置为快发模式
← OK
→ AT+CSTT 启动任务,设置APN
模块注册网络后会从网络自动获取并激活一个PDP上下文(此可以通过
AT+CGDCONT?来查询),所以直接输入
AT+CSTT即可,模块内部会按照自动获取的
来设置CSTT的APN
← OK
→ AT+CIICR 激活移动场景,获取IP地址
← OK
→ AT+CIFSR 查询分配的IP地址
← 010.083.172.111
→ AT+CIPSTART="UDP","60.166.18.9",6100 建立UDP链接,其中:
"UDP"为链接的协议类型
"60.166.18.9" 为对端服务器的IP地址
6100 为对端服务器的UDP端口号
← OK
←(URC) CONNECT OK 如果链接成功,会有如此URC上报
→ AT+CIPSEND 发送数据
→ >1234567890
← DATA ACCEPT:10 成功将数据发送到模块
…… +CIPCLOSE,+CIPSHUT,不再赘述
多连接应用1:模块做为客户端,多链接,发送数据,SSL证书双向认证功能打开(快发)注:本例是同时链接不同的两个服务器。
→ AT+CIPSSL=1 开启SSL功能开关
← OK
→ AT+CIPMUX=1
← OK
→ AT+FSCREATE="server1.crt" 创建server1 的CA 证书文件
← OK
→ AT+FSCREATE="server2.crt" 创建server2 的CA 证书文件
← OK
→ AT+FSCREATE="client.crt" 创建客户端证书文件
← OK
→ AT+FSCREATE="client.key" 创建客户端密钥文件
← OK
→ AT+FSWRITE="server1.crt",0,2080,15 文件长度2080只是举例,要根据实际填写。下同。
← > 这里输入服务器1的CA证书文件
← OK
→ AT+FSWRITE="server1.crt",0,1962,15
← > 这里输入服务器2的CA证书文件
← OK
← AT+FSWRITE="client.crt",0,128,10
→ > 这里输入客户端证书文件
← OK
→ AT+FSWRITE="client.key",0,188,10
← > 这里输入客户端密钥文件
← OK
→ AT+SSLCFG="cacert",1,"server1.crt" 设置服务器1的CA 证书多链接的SSL上下文id和多链接的链接id
绑定,链接1的SSL上下文id也是1
← OK
→ AT+SSLCFG="cacert",2,"server2.crt" 设置服务器2的CA 证书
← OK
→ AT+SSLCFG="clientcert",1,"client.crt" 设置SSL上下文1(即链接1)的客户端证书
← OK
→ AT+SSLCFG="clientcert",2,"client.crt" 设置SSL上下文2(即链接2)的客户端证书
← OK
→ AT+SSLCFG="clientkey", 1,"client.key" 设置SSL上下文1(即链接1)的客户端KEY
← OK
→ AT+SSLCFG="clientkey", 2,"client.key" 设置SSL上下文2(即链接2)的客户端KEY
← OK
→ AT+SSLCFG="seclevel",1,2 设置SSL上下文1(即链接1)的安全等级:双向认证
← OK
→ AT+SSLCFG="seclevel",2,2 设置SSL上下文2(即链接2)的安全等级:双向认证
← OK
→ AT+SSLCFG="ciphersuite",1,0X0035 设置SSL上下文1(即链接1)的加密套件
← OK
→ AT+SSLCFG="ciphersuite",2,0X0035 设置SSL上下文2(即链接2)的加密套件
← OK
→ AT+SSLCFG="clientrandom",1,10B12C3141516171F19
202122232425262728293031323334353637D
设置链接1的随机数
← OK
→ AT+SSLCFG="clientrandom",2,581B12C3141516171F1
920214A23249C262728293031323334353632
设置链接2的随机数
← OK
→ AT+CIPQSEND=1 设置为快发模式
← OK
→ AT+CSTT 设置模块APN
模块注册网络后会从网络自动获取
并激活一个PDP上下文(此
可以通过AT+CGDCONT?来查询),所以直接输入AT+CSTT即可,模块内部会按照自动获取的来设置CSTT的APN
← OK
→ AT+CIICR
← OK
→ AT+CIFSR
← 010.083.172.111
→ AT+CIPSTART=1,"TCP","60.166.12.210",7500
← OK
←(URC) 1,CONNECT OK Id=1的 TCP 链接成功建立
→ AT+CIPSTART=2,"TCP","60.166.13.215",6100
← OK
←(URC) 2,CONNECT OK Id=2的 TCP 链接成功建立
→ AT+CIPSTATUS 查询当前链路状态
← OK
STATE: IP PROCESSING
C: 0,,"","","","INITIAL"
C: 1,0,"TCP","60.166.12.210","7500","CONNECTED"
C: 2,0,"TCP","60.166.12.210","7500","CONNECTED"
C: 3,,"","","","INITIAL"
C: 4,,"","","","INITIAL"
C: 5,,"","","","INITIAL"
→ AT+CIPSEND=1 在 TCP 1链接上发送数据
→ >1234567890
← DATA ACCEPT:1,10
→ AT+CIPSEND=2 在 TCP 2链接上发送数据
→ >1234567890
← DATA ACCEPT:2,10
…… 其他发送数据的动作
→ AT+CIPSHUT 如果想关闭所有的连接
← SHUT OK
→ AT+CIPMUX=0 如果想关闭多连接模式,则必须在
AT+CIPSHUT后才可以
← OK
→ AT+CIPSSL=0 关闭SSL功能。
← OK
多连接应用2:模块做为客户端,多链接,发送数据,未开启SSL功能
→ AT+CIPMUX=1 设置为多链接模式
← OK
→ AT+CIPQSEND=1 设置为快发模式
← OK
…… 仿照TCP非透传应用1的例子,依次发送
CSTT CIICR CIFSR这三个命令
→ AT+CIPSTART=4,"TCP","60.166.12.210",7500
← OK
←(URC) 4, CONNECT OK Id=6的 TCP 链接成功建立
→ AT+CIPSTART=5,"UDP","60.166.12.210",6100
← OK
←(URC) 5, CONNECT OK Id=7的 UDP 链接成功建立
→ AT+CIPSEND=4,10 在 TCP 链接上发送数据,定长发送
→ >1234567890
← DATA ACCEPT:4,10
→ AT+CIPSEND=5 在 UDP 链接上发送数据,不定长发送
→ >1234567890
← DATA ACCEPT:5,10
→ AT+CIPATS=1,10 设置为自动发送,并且定时器设置为10S,从该命令返回OK时开始计时
← OK
→ AT+CIPSEND=4 在id=6的TCP链接上发送数据
→ >TEST Auto fast send 输入待发送的字符串(不必输入
)
← DATA ACCEPT:4,19 10S定时器到时,数据自动发送
…… +CIPCLOSE,+CIPSHUT,不再赘述
单链接非透传时接收数据:
…… 建立一个TCP链接,前面已经详述,在此不再赘述
→ AT+CIPHEAD=1 设置接收数据时,有数据头
← OK
←(UCR) +IPD,4:TEST 模块收到SERVER那边发来的一串字符数据:TEST
→ AT+CIPSHOWTP=1 设置接收数据时,显示数据所使用的协议
← OK
←(UCR) +IPD,4,TCP:TEST 模块收到SERVER那边发来的数据:TEST。所使用的协议也会显示出来。如果是UDP链接,则会显示:
+IPD,4,UDP:TEST
→ AT+CIPSRIP=1 设置接收数据时显示发送方的IP地址和端口
← OK
←(URC) RECV FROM: 60.166.12.210:7500
+IPD,4:TEST
接收服务器发来的数据,是一个字符"TEST",长度为4
→ AT+CIPSHOWTP=0 不在接收数据头中显示协议类型
← OK
→ AT+CIPHEAD=0 不显示数据头
← OK
→ AT+CIPSRIP=0 不显示数据发送放的IP地址和端口
← OK
←(URC) TEST 此时接收到数据:TEST
多链接非透传时接收数据:
…… 仿照TCP非透传应用1的例子,依次发送 CSTT
CIICR CIFSR这三个命令,并建立连接号为0的
TCP链接和连接号为1的UDP链接
←(URC) +RECEIVE,0,7:
TEST123
在链接0的TCP链接上收到7个字符的字符串:
TEST123
←(URC) +RECEIVE,1,10:
TEST123456
在链接1的UDP链接上收到10个字符的字符串:
TEST123456
透明传输应用1:TCP数据传输
→ AT+CIPMODE=1 设置TCPIP应用为透明传输模式
← OK
→ AT+CIPSTART="TCP","60.166.18.9",7500 建立TCP链接,其中:
"TCP"为链接的协议类型
"60.166.18.9" 为对端服务器的IP地址
7500 为对端服务器的TCP端口号
← OK
←(URC) CONNECT 如果链接成功,会有如此URC上报
→/← ……… 透传开始,在这里输入数据并传送,此时也可以接收服务器传来的数据
→ ………+++ 如果想返回AT命令模式,则在数据后面输入+++
注: +++需要满足一定的条件才会被模块认为是
escape sequence,否则会被认为是数据:
1,第一个+之前需要1000ms的间隔
2,最后一个+之后需要500ms的间隔
3,三个+之间的间隔不能超过500ms
← OK OK表示已经返回到AT命令模式
→ ATO ATO用于返回数据模式
← CONNECT CONNECT表示进入透传模式
→/← ………. 此时又可以开始传输数据
← TCP ERROR:×× 或
CLOSED
当传输中有协议栈错误发生时,会转入AT命令状态,并上报该错误码
→ AT+CIPSHUT 发生这种情况时,+CIPSHUT关闭连接。如果没有错误发生,则+++返回AT命令状态,再
+CIPSHUT关闭连接
← SHUT OK
透明传输应用2:UDP数据传输
→ AT+CIPMODE=1 设置TCPIP应用为透明传输模式
← OK
→ AT+CSTT 设置模块APN
模块注册网络后会从网络自动获取并激活一个PDP上下文(此可以通过
AT+CGDCONT?来查询),所以直接输入AT+CSTT
即可,模块内部会按照自动获取的来设置
CSTT的APN
← OK
→ AT+CIICR 激活移动场景,获取IP地址
← OK
→ AT+CIFSR 查询分配的IP地址
← 010.083.172.111
→ AT+CIPSTART="UDP","60.166.18.9",6100 建立UDP链接,其中:
"UDP"为链接的协议类型
"60.166.18.9" 为对端服务器的IP地址
6100 为对端服务器的UDP端口号
← OK
←(URC) CONNECT 如果链接成功,会有如此URC上报
→/← ……… 透传开始,在这里输入数据并传送,此时也可以接收服务器传来的数据
← UDP ERROR:×× 当传输中有协议栈错误发生时,会转入AT命令状态,并上报该错误码
→ AT+CIPSHUT 发生这种情况时,+CIPSHUT关闭连接。如果没有错误发生,则+++返回AT命令状态,再
+CIPSHUT关闭连接
← SHUT OK
← OK
域名解析:注:该命令只有在执行完at+cstt、at+ciicr、at+cifsr后才能正常工作,这三条命令的输入方法请参考:TCP非透传应用1的例子
→ AT+CDNSGIP="WWW.SINA.COM.CN" 解析新浪网站的域名
← OK
+CDNSGIP:1,"WWW.SINA.COM.CN","221.179.180
.76"
返回IP地址
发送和接收格式总结:
数据发送(多链接模式,以链接号=5 为范例)
链接协议快发慢发单链接 TCP AT+CIPSEND AT+CIPSEND
>test TCP >test TCP
DATA ACCEPT:8 SEND OK
UDP AT+CIPSEND AT+CIPSEND
>test UDP >test UDP
DATA ACCEPT:8 SEND OK
多链接 TCP AT+CIPSEND=5 AT+CIPSEND=5
>test TCP >test TCP
DATA ACCEPT:5,8 5,SEND OK
UDP AT+CIPSEND=5 AT+CIPSEND=5
>test UDP >test UDP
DATA ACCEPT:5,8 5,SEND OK
数据接收(多链接模式以链接号=1 为范例)
AT+CIPHEAD=1
链接协议 AT+CIPHEAD=0
+CIPSHOWTP=0 +CIPSHOWTP=1
单链接 TCP TEST123 +IPD,7:TEST123 +IPD,7,TCP:TEST123
UDP TEST123 +IPD,7:TEST123 +IPD,7,UDP:TEST123
多链接 TCP +RECEIVE,1,7: +RECEIVE,1,7: +RECEIVE,1,7:
TEST123 TEST123 TEST123
UDP +RECEIVE,1,7: +RECEIVE,1,7: +RECEIVE,1,7:
TEST123 TEST123 TEST123
链接协议 快发 慢发
单链接 TCP AT+CIPSEND
>test TCP
DATA ACCEPT:8
AT+CIPSEND
>test TCP
SEND OK
UDP AT+CIPSEND
>test UDP
DATA ACCEPT:8
AT+CIPSEND
>test UDP
SEND OK
多链接 TCP AT+CIPSEND=5
>test TCP
DATA ACCEPT:5,8
AT+CIPSEND=5
>test TCP
5,SEND OK
UDP AT+CIPSEND=5
>test UDP
DATA ACCEPT:5,8
AT+CIPSEND=5
>test UDP
5,SEND OK
链接协议 AT+CIPHEAD=0 AT+CIPHEAD=1
+CIPSHOWTP=0 +CIPSHOWTP=1
单链接 TCP TEST123 +IPD,7:TEST123 +IPD,7,TCP:TEST123
UDP TEST123 +IPD,7:TEST123 +IPD,7,UDP:TEST123
多链接 TCP +RECEIVE,1,7:
TEST123
+RECEIVE,1,7:
TEST123
+RECEIVE,1,7:
TEST123
UDP +RECEIVE,1,7:
TEST123
+RECEIVE,1,7:
TEST123
+RECEIVE,1,7:
TEST123
←(URC) +PDP DEACT PDP去激活,此时需要重新激活一个PDP上下文才能继续使用
TCPIP的AT命令
→ AT+CIPSHUT 关闭移动场景
← OK
此时有两种处理方式,见右侧 1) AT+CFUN=0,AT+CFUN=1后,再重新建立连接
2) AT+RESET重启模块后再重新建立连接

IP应用相关命令

IP应用设置:AT+SAPBR

语法规则:

命令类型 语法 返回
执行命令 AT+SAPBR=,[,<
ConParamTag>,]
如果 = 2
+SAPBR: ,,
OK
如果 = 4
+SAPBR:,
OK
其余
OK
测试命令 AT+SAPBR=? +SAPBR: (0-4),(1-3),"ConParamTag","ConParamValue"
OK
URC上报 +SAPBR : DEACT 当移动场景去激活时,会有此上报
注意事项 SAPBR设置承载参数APN的时候需要注意以下事项:模块注册网络后会从网络自动获取并激活一个PDP上下文,用于RNDIS上网使用(此可以通过
AT+CGDCONT?来查询),所以直接输入AT+SAPBR=3,,"APN","" 即可,模块内部会按照自动获取的来设置APN

参数定义:

参数 定义 取值 对取值的说明
命令类型 0 关闭承载
1 打开承载
2 查询承载状态
3 设置承载参数
4 获取承载参数
承载上下文标识 1~3
承载的状态 0 正在连接
1 已经连接
2 正在关闭
3 已经关闭
承载IP地址
承载参数 "CONTYPE" 因特网连接类型。取值请参考参数
"APN" 接入点名称,最长支持 50 个字符
"USER" 用户名称:最长支持 50 个字符
"PWD" 密码:最长支持 50 个字符
"PHONENUM
"
CSD电话号码
"RATE" CSD连接速率。取值请参考。
ConType> 因特网连接类型 "CSD" CSD,电路交换数据业务
"GPRS" GPRS,通用分组无线业务注:GPRS只是兼容2G模块指令的输入格式,不会强制切换到GPRS网络上,真实的数据承载网络取决于模块当时注册的网络制式
Rate> CSD连接速率 0 2400
1 4800
2 9600
3 14400

HTTP相关命令

初始化HTTP服务:AT+HTTPINIT

语法规则:

命令类型 语法 返回
执行命令 AT+HTTPINIT OK
测试命令 AT+HTTPINIT=? OK
注意事项 1. 在使用HTTP服务前,应该先用AT+HTTPINIT命令来初始化HTTP协议栈
2. 如果使用的是https需要进行证书,加密套件,加密等级等相关的设置请参考SSLCFG指令

启用SSL:AT+HTTPSSL

语法规则:

命令类型 语法 返回
设置命令 AT+HTTPSSL= OK
读取命令 AT+HTTPSSL? + HTTPSSL:
OK
测试命令 AT+HTTPSSL=? +HTTPSSL: (0-1)
OK

参数定义:

参数 定义 取值 对取值的说明
HTTP SSL功能开关 0 关闭SSL功能
1 开启SSL功能

设置HTTP参数值:AT+HTTPPARA

语法规则:

命令类型 语法 返回
设置命令 AT+HTTPPARA=
,
OK
查询命令 AT+HTTPPARA? +HTTPPARA:listof:)
OK
测试命令 AT+HTTPPARA=? +HTTPPARA: "HTTPParamTag"," HTTPParamValue"
OK

参数定义:

参数 定义 取值 对取值的说明
:HTTP参数,包括:
"CID" 承载上下文号码(必选参数) 1~3
"URL" HTTP 或HTTPS URL(必选参数)
注:同时支持HTTPS 和
HTTP URL
"http://server/path:tcpPort"
或:
"https://server/path:tcpPort
"
最大长度500个字节
Server: FQDN or IP-address
Path: path of file or directory
tcpPort: 如果参数省略,将服务连接到
HTTP默认端口 80。参考"IETF-RFC 261
"UA" 应用程序必须设置用户代理来识别移动终端。通常操作系统和软件版本信息在设置时都会携带浏览器标识符。 - 默认值为:AM_MODULE
"PROIP" HTTP 代理服务器的 IP
地址
-
"PROPORT" HTTP 代理服务器的
PORT
-
"REDIR" 作为 HTTP 客户端时用此标志控制重定向机制。如果此标记设置为 1,当服务器发送重定向码(范围 30x)时,客户端自动发送新的 HTTP 请求 - 默认值为 0(无定向)
"BREAK" HTTP 方法"GET"的参数,整数型 - 获取从断点到结束点的部分数据,注意不是所有的 HTTP 服务器都支持
参数。BREAK最小值是0。
"BREAKEND" 和"BREAK"一起使用,用于断点续传功能。整数型。 - 如果"BREAKEND"大于"BREAK",续传的范围从"BREAKEND"到"BREAK"。如果"BREAKEND"小于"BREAK",续传的范围从"BREAK"到文件结尾。如果
"BREAKEND"和"BREAK"均为 0,将不会续传。
"USER_DEFINED" 用户自定义参数,为了兼容合宙2G模块 用户自定义参数的取值。例如:
AT+HTTPPARA="USER_DEFINED",
"Content-type: json-user-define"
注:如果需要设置多条用户自定义参数,则一条一条地输入。后面输入的不会覆盖以前的。
"USERDATA" 用户自定义参数,作用同
"USER_DEFINED",为了兼容SIMCOM模块
用户自定义参数的取值。例如:
AT+HTTPPARA="USERDATA","Con
tent-type: json-user-define"

举例:

命令(→)
/返回(←)
实例 解释和说明
→ AT+HTTPPARA?
← +HTTPPARA:
CID:1
URL:
UA:AM_MODULE
PROIP:0.0.0.0
PROPORT:0
REDIR:0
BREAK:0
BREAKEND:0
TIMEOUT:120
CONTENT:
USERDATA:
OK

写数据:AT+HTTPDATA

语法规则:

命令类型 语法 返回
设置命令 AT+HTTPDATA=, DOWNLOAD
OK
测试命令 AT+HTTPDATA=? +HTTPDATA: (取值列表),(

参数定义:

参数 定义 取值 对取值的说明
POST数据的大小 0-319488 最大长度为319488
0 后面一个参数不判断,相当于把内容清除掉
输入数据的最长时间 1000-120000 单位:ms
注:强烈建议设置的时间

HTTP方式激活:AT+HTTPACTION

语法规则:

命令类型 语法 返回
设置命令 AT+HTTPACTION= OK
后面紧跟Unsolicited Result Code:
+HTTPACTION: ,,
或如果错误与 ME 功能相关,则返回:
+CME ERROR:
后面紧跟Unsolicited Result Code:
+HTTPACTION: ,,
测试命令 AT+HTTPACTION=? +HTTPACTION: (0-2)
OK

参数定义:

参数 定义 取值 对取值的说明
HTTP 方法说明 0 GET
1 POST
2 HEAD
得到的数据长度 - 整数型
HTTP状态码,由远端服务器响应,参考
TTP1.1(RFC2616)
100 继续(Continue)
101 交换协议(Switching Protocols)
200 确定(OK)
201 已创建(Created)
202 已接受(Accepted)
203 非权威消息(Non-Authoritative Information)
204 无内容(No Content)
205 重置内容(Reset Content)
206 部分内容(Partial Content)
300 多重选择(Multiple Choices)
301 永久删除(Moved Permanently)
302 找到(Found )
303 参考其他(See Other)
304 未修改(Not Modified)
305 使用代理服务器(Use Proxy)
307 临时重定向(Temporary Redirect )
400 错误请求(Bad Request)
401 未授权(Unauthorized)
402 付费请求(Payment Required)
403 禁止(Forbidden)
404 找不到(Not Found)
405 方法不被允许(Method not Allowed)
406 不可接受(Not Acceptable)
407 要求进行代理身份认证 (Proxy
AuthenticationRequired)
408 请求超时 (Request Time-out)
409 冲突(Conflict)
410 所请求资源不在服务器上有效,且不知道转发地址(Gone)
411 需要输入长度(Length Required)
412 前提条件失败 (Precondition Failed)
413 请求实体太大(Request Entity Too Large)
414 请求URI太长(Request-URI Too Large)
415 媒体类型不支持(Unsupported Media Type)
416 所请求的范围无法满足(Requested range
notsatisfiable)
417 执行失败(Expectation Failed)
500 内部服务器错误(Internal Server Error)
501 未执行 (Not Implemented)
502 网关错误(Bad Gateway)
503 服务不可用(Service Unavailable)
504 网关超时(Gateway Time-out)
505 HTTP 版本不支持(HTTP Version not supported)
600 非 HTTP PDU 格式(Not HTTP PDU)
601 网络错误(Network Error)
602 内存不足(No memory)
603 DNS 错误(DNS Error)
604 栈忙(Stack Busy)
605 SSL建立通道失败
606 SSL通讯警告错误

查询HTTP服务响应:AT+HTTPREAD

语法规则:

命令类型 语法 返回
设置命令 AT+HTTPREAD=
,
+HTTPREAD:

OK
执行命令 AT+HTTPREAD +HTTPREAD:

OK
读取 AT+HTTPACTION=0 或 AT+HTTPDATA 命令的所有响应数据。执行命令用来将HTTP服务器的响应输出到UART或者输出准备好
POST 到服务器的数据。
测试命令 AT+HTTPREAD=? +HTTPREAD: (list of supported s),(list of
supporteds)
OK

参数定义:

参数 定义 取值 对取值的说明
实际输出数据长度
HTTP 服务器对AT+HTTPACTION=0命令的响应数据
输出数据的起点 0~319488 单位:字节
输出数据的长度 1~319488 单位:字节

获取HTTP服务响应数据:AT+HTTPGET

语法规则:

命令类型 语法 返回
设置命令 AT+HTTPGET= +HTTPGET:
OK

参数定义:

参数 定义 取值 对取值的说明
实际输出数据长度
http下载文件路径 长度不超过 255的ASCII 字符串。

查询HTTP头信息:AT+HTTPHEAD

语法规则:

命令类型 语法 返回
执行命令 AT+HTTPHEAD +HTTPREAD:

OK
测试命令 AT+HTTPHEAD=? OK

参数定义:

参数 定义 取值 对取值的说明
头信息的实际长度
头信息

保存HTTP应用上下文:AT+HTTPSCONT

执行命令保存包含 AT 命令参数的 HTTP 应用上下文,当系统重启时,参数将自动载入。查询命令返回 HTTP 应用上下文。

语法规则:

命令类型 语法 返回
执行命令 AT+HTTPSCONT +HTTPREAD: (list of supported s),( list of
supporteds)
OK
查询命令 AT+HTTPSCONT? +HTTPSCONT:
CID:
URL:
UA:
PROIP:
PROPORT:
REDIR:
BREAK:
BREAKEND:
USERDATA:
OK

参数定义:

参数 定义 取值 对取值的说明
HTTP上下文保存模式 0 保存,值取自 NVRAM
1 未保存,值取自 RAM

终止HTTP任务:AT+HTTPTERM

语法规则:

命令类型 语法 返回
设置命令 AT+HTTPTERM OK
测试命令 AT+HTTPTERM=? OK

HTTP错误码:ERROR:

HTTP错误码会以ERROR:形式上报。定义:

取值 英文说明 中文说明
0 Unknown session id 未知的会话ID
1 File is too short 文件的内容太短
2 DNS is fail 域名解析失败
3 HTTP is busy HTTP任务正忙
4 Socket is wrong 套接字失败
5 Connect fail 连接失败
6 File is error 文件错误
7 Connection is closed 连接已关闭
8 Connection is destroyed 连接已销毁
9 HTTP header is not found HTTP头不存在
10 HTTP authentication scheme is not supported HTTP认证机制不支持
11 PDP active is wrong PDP激活失败
12 Param is wrong 参数有误
13 No buffer 缓冲区不足
14 PDP deactive is wrong PDP去激活失败

使用方法举例

由于这部分的命令具有高度相关性,所以将各个命令的应用例程集中在一起描述。

命令(→)
/返回(←)
实例 解释和说明
HTTP GET 命令使用方法:
→ AT+SAPBR=3,1,"CONTYPE","GPRS" 设置HTTP功能的承载类型
← OK
→ AT+SAPBR=3,1,"APN","" 设置pdp承载参数之APN
模块注册网络后会从网络自动获取并激活一个
PDP上下文,用于RNDIS上网使用(此可以通过AT+CGDCONT?来查询),所以输入
AT+SAPBR=3,,"APN","" 即可,模块内部会按照自动获取的来设置APN
← OK
→ AT+SAPBR=1,1 激活该承载的GPRS PDP上下文
← OK
→ AT+SAPBR=2,1 查询下承载的状态
← +SAPBR: 1,1,010.169.179.213
OK
第一个参数1表示cid
第二个参数1表示已经连接第三个参数表示模块获取的IP地址
→ AT+HTTPINIT HTTP协议栈初始化
← OK
→ AT+HTTPPARA="CID",1 设置HTTP会话参数:CID
← OK
→ AT+HTTPPARA="URL","www.baidu.com" 设置HTTP会话参数:URL
← OK
→ AT+HTTPACTION=0 GET 开始
← OK
← +HTTPACTION:0,200,1348
+HTTPACTION:0,200,1348
+HTTPACTION:0,200,1348
… …
出现这些URC上报表明GET数据成功,等待READ
→ AT+HTTPREAD 读取从HTTP 服务器GET的数据
← +HTTPREAD: 9592
………………
OK
…..表示HTTP数据
→ AT+HTTPTERM 结束HTTP服务
← OK
HTTP POST 命令使用方法:
→ AT+SAPBR=3,1,"CONTYPE","GPRS" 设置HTTP功能的承载类型
SAPBR是为了激活PDP上下文
← OK
→ AT+SAPBR=3,1,"APN","" 设置 APN
模块注册网络后会从网络自动获取并激活一个
PDP上下文,用于RNDIS上网使用(此可以通过AT+CGDCONT?来查询),所以输入
AT+SAPBR=3,,"APN","" 即可,模块内部会按照自动获取的来设置APN
← OK
→ AT+SAPBR=1,1 激活该承载的GPRS PDP上下文
← OK
→ AT+SAPBR=2,1 查询下承载的状态
← +SAPBR: 1,1,010.169.179.213
OK
第一个参数1表示cid
第二个参数1表示已经连接第三个参数表示模块获取的IP地址
→ AT+HTTPINIT HTTP协议栈初始化
← OK
→ AT+HTTPSSL=1 设置使用SSL连接(不需要验证证书)
← OK
→ AT+SSLCFG="hostname",153,"fanyi.baidu.c
om"
← OK
→ AT+HTTPPARA="CID",1 设置HTTP会话参数:CID
← OK
→ AT+HTTPPARA="URL","https://fanyi.baidu.c
om"
设置HTTP会话参数:URL
← OK
→ AT+HTTPDATA=4,100000 输入4个字节,等待时间是10S,输入时间要设定的足够大以保证数据输入
←
→
←
DOWNLOAD
中国
OK
DOWNLOAD表示已经准备好输入数据输入中国(中国两个字占用4个字节)
OK出现表示输入结束
→ AT+HTTPACTION=1 POST开始
← OK
← +HTTPACTION:1,200,207751 表示POST成功
→ AT+HTTPREAD 读取内容
← +HTTPREAD: 207751
<!DOCTYPE html>



content="IE=edge,chrome=1">
鐧惧害缈昏瘧

static.com"+d,k&&l&&l>k||(g(function(){alo
g("speed.set","lt",+new
Date),e=b.createElement(c),e.async=!0,e.s
rc=d+"?v="+~(new Date/864e5)+~(new
Date/864e5),f=b.getElementsByTagName(c
)[0],f.parentNode.insertBefore(e,f)}),j())}}
(window,document,"script","/hunter/alog/dp
.min.js");
}();
!function(){ require('translation:widg
et/translate/common/sectrans');
}();

OK
→ AT+HTTPTERM 结束HTTP服务
← OK 下载HTTP会话从AT+SAPBR=2,1开始,如果此命令查询IP地址还在,则HTTPINITHTTPPARA依次执行下去
带SSL证书验证功能的HTTPS过程:
→ AT+FSCREATE="ca.crt" 创建服务器端CA 证书文件
← OK
→ AT+FSCREATE="client.crt" 创建客户端证书文件
← OK
→ AT+FSCREATE="client.key" 创建客户端密钥文件
← OK
→ AT+FSWRITE="ca.crt",0,2080,15 文件长度2080字节只是举例,要根据实际填写。下同。
← > 这里输入CA证书文件
← OK
← AT+FSWRITE="client.crt",0,128,10
→ > 这里输入客户端证书文件
← OK
→ AT+FSWRITE="client.key",0,188,10
← > 这里输入客户端密钥文件
← OK
→ AT+SAPBR=3,1,"CONTYPE","GPRS"
← OK
→ AT+SAPBR=3,1,"APN","" 设置PDP承载之APN参数模块注册网络后会从网络自动获取并激活一个
PDP上下文,用于RNDIS上网使用(此可以通过AT+CGDCONT?来查询),所以输入
AT+SAPBR=3,,"APN","" 即可,模块内部会按照自动获取的来设置APN
← OK
→ AT+SAPBR=1,1
← OK
→ AT+SAPBR=2,1
← +SAPBR: 1,1,010.169.179.213
OK
→ AT+HTTPSSL=1 开启SSL功能开关为开
← OK
→ AT+SSLCFG="cacert",153,"ca.crt" 设置服务器CA 证书
SSL 上下文id,在TCP单链接的情况下缺省为0;在HTTPS链接下为153,下同
← OK
→ AT+SSLCFG="clientcert",153,"client.crt" 设置客户端证书
← OK
→ AT+SSLCFG="clientkey",153,"client.key" 设置客户端KEY
← OK
→ AT+SSLCFG="seclevel",153,2 设置安全等级
← OK
→ AT+SSLCFG="ciphersuite",153,0X0035 设置加密套件
← OK
→ AT+SSLCFG="clientrandom",153,01B12C31
41516171F19202122232425262728293031
323334353637D
设置随机数
← OK
→ AT+HTTPINIT HTTP协议栈初始化
← OK
→ AT+HTTPPARA="CID",1 设置HTTP会话参数:CID
← OK
→ AT+HTTPPARA="URL","https://..**" 设置HTTP会话参数:URL
请写具体的网址,而不要照抄
← OK
→ AT+HTTPACTION=0 GET 开始
← OK
← +HTTPACTION:0,200,1348
+HTTPACTION:0,200,1348
+HTTPACTION:0,200,1348
… …
出现这些URC上报表明GET数据成功,等待READ
→ AT+HTTPREAD 读取从HTTP 服务器GET的数据
← +HTTPREAD:1592
………………
OK
…..表示HTTP数据
→ AT+HTTPTERM 结束HTTP服务
← OK
HTTP HEAD 过程:
→ AT+SAPBR=3,1,"CONTYPE","GPRS"
← OK
→ AT+SAPBR=3,1,"APN",""
← OK
→ AT+SAPBR=1,1
← OK
→ AT+SAPBR=2,1
← +SAPBR: 1,1,010.169.179.213
OK
→ AT+HTTPINIT
← OK
→ AT+HTTPPARA="CID",1
← OK
→ AT+HTTPPARA="URL","https://..**"
← OK
→ AT+HTTPACTION=2 AT+HTTPACTION=0也可以
← OK
→ AT+HTTPHEAD
← +HTTPHEAD:
---data---
OK
是具体的数字,---data---是具体的头信息

FTP相关命令

设置FTP控制端口:AT+FTPPORT

语法规则:

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

参数定义:

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

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

语法规则:

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

参数定义:

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

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

语法规则:

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

参数定义:

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

设置FTP输入类型:AT+FTPPUTOPT

语法规则:

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

参数定义:

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

设置FTP承载标识:AT+FTPCID

语法规则:

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

参数定义:

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

设置FTP下载续传:AT+FTPREST

语法规则:

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

参数定义:

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

设置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字符串。

设置FTP用户名称:AT+FTPUN

语法规则:

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

参数定义:

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

设置FTP密码:AT+FTPPW

语法规则:

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

参数定义:

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

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

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

语法规则:

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

参数定义:

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

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

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

语法规则:

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

参数定义:

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

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

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

语法规则:

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

参数定义:

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

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

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

语法规则:

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

参数定义:

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

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

语法规则:

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

参数定义:

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

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

语法规则:

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

参数定义:

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

下载文件: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
62 DNS错误 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~84 FTP SSL 连接错误
85 文件错误
86 主动退出

上传文件: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-
确认可以上传的数据长度
单次可以上传的最大的长度,取决于网络状态

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

语法规则:

命令类型 语法 返回 说明
设置命令 AT+FTPEXTGET= OK 当=0或1
AT+FTPEXTGET=, +FTPEXTGET:2,
OK
当=2
AT+FTPEXTGET=,,
+FTPEXTGET:3,
…… //这里是输出到串口的数据
OK
当=3
AT+FTPEXTGET= OK 当=4
+FTPEXTGET: 4,
//outputLength数据长度
AT+FTPEXTGET=
4,outputLength
//读数据
查询命令 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 输出下载的数据到串口
4 流式获取数据
文件名 字符串型,最长64个字符。注:只需指定文件名,不要指定路径,因为保存的路径是确定的C:/USER/FTP
保存到文件的所有数据长度,用于
mode 2
<302512 单位:字节
输出到串口的数据长度,用于mode
3或4
<302512 单位:字节
读取文件数据的起始位置,用于
mode 3
0
读取长度,用于mode 3 单位:字节
FTPEXTGET的状态 0 不在FTPEXTGET过程中
1 处于FTPEXTGET过程
下载的数据的长度 单位:字节
错误码 与AT+FTPGET命令的定义相同

上传文件(扩展):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

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

语法规则:

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

参数定义:

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

从文件系统上传文件到服务器: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 处于上传状态
当前从文件系统上传了多少数据 单位:字节
从文件系统共上传了多少数据 单位:字节

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

语法规则:

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

参数定义:

参数 定义 取值 对取值的说明
工作模式 0 结束从文件系统加载到RAM
1 开始从文件系统加载到RAM并上传
文件名 0-128字节 当mode为1时必须填入文件名,为0不需要

获取远程服务器上文件目录: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中定义

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

语法规则:

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

参数定义:

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

获取FTP状态:AT+FTPSTATE

语法规则:

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

参数定义:

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

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

语法规则:

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

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

语法规则:

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

退出当前FTP会话:AT+FTPQUIT

语法规则:

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

使用方法举例

由于这部分的命令具有高度相关性,所以将各个命令的应用例程集中在一起描述。

命令(→)
/返回(←)
实例 解释和说明
FTPGET 命令使用方法:
→ AT+SAPBR=3,1,"CONTYPE","GPRS" 设置FTP功能的承载类型
← OK
→ AT+SAPBR=3,1,"APN","" 设置PDP承载之APN参数模块注册网络后会从网络自动获取并激活一个PDP上下文,用于RNDIS上网使用。(此
可以通过AT+CGDCONT?来查询),所以输入AT+SAPBR=3,,"APN","" 即可,模块内部会按照自动获取的来设置
APN
← OK
→ AT+SAPBR=1,1 激活该承载的GPRS PDP上下文
← OK
→ AT+SAPBR=2,1 查询下承载的状态
← +SAPBR: 1,1,010.169.179.213
OK
第一个参数1表示cid
第二个参数1表示已经连接第三个参数表示模块获取的IP地址
→ AT+FTPCID=1 设置cid
← OK
→ AT+FTPSERV="36.7.2.150" 设置服务器ip地址,也可以使用域名。本文只是举例,请填写自己的服务器地址,不要照抄。
← OK
→ AT+FTPUN="user556" 设置服务器用户名。请填写自己FTP服务器的用户名,不要照抄
← OK
→ AT+FTPPW="222333" 输入密码。请填写自己FTP服务器的密码,不要照抄
← OK
→ AT+FTPGETPATH="/" 设置下载文件的路径
← OK
→ AT+FTPLIST=1
← OK
+FTPLIST: 1,1
→ AT+FTPLIST=2,1460
← +FTPLIST: 2,1460
drwxr-xr-x 1 ftp ftp 0 Feb 24 2018 .1
drwxr-xr-x
第一个字母表示文件类型。
d:文件目录 -:普通文件
-rw-r--r-- 1 ftp ftp 107 Jul 10 17:08 1.txt
drwxr-xr-x 1 ftp ftp 0 Apr 27 2018 11
-rw-r--r-- 1 ftp ftp 0 Sep 19 2018 111.txt
drwxr-xr-x 1 ftp ftp 0 Dec 19 2018 1221
-rw-r--r-- 1 ftp ftp 7 Apr 25 2019 1222.txt
-rw-r--r-- 1 ftp ftp 18380 May 07 2018 12220.txt
-rw-r--r-- 1 ftp ftp 0 Apr 26 2019 12222.txt
-rw-r--r-- 1 ftp ftp 10 Apr 28 2018 122343.txt
-rw-r--r-- 1 ftp ftp 254 Sep 04 2018 123456.txt
-rw-r--r-- 1 ftp ftp 601283 Jul 21 2018
2018_7_21.sdl
-rw-r--r-- 1 ftp ftp 8 Apr 26 2019 33333.txt
-rw-r--r-- 1 ftp ftp 14 Oct 13 2017 66.txt
-rw-r--r-- 1 ftp ftp 11525352 Mar 13 2019
Air720_CSDK_demo_flash.blf
-rw-r--r-- 1 ftp ftp 65536 Jul 31 2018
app2_flash.bin
-rw-r--r-- 1 ftp ftp 0 Sep 29 2017 ccc.txt
-rw-r--r-- 1 ftp ftp 65536 Jan 18 2018
demo_ota_flash.bin
-rw-r--r-- 1 ftp ftp 65536 Jul 30 2018
demo_timer_flash.bin
-rw-r--r-- 1 ftp ftp 131072 Oct 10 2017
demo_timer_flash_org.bin
-rw-r--r-- 1 ftp ftp 534110 Feb 24 2018 FM320X
绠€浠.pdf
-rw-r--r-- 1 ftp ftp 16384 Mar 26 2019
FOTA_APP_720D.bin
-rw-r--r-- 1 ftp ftp 5103616 Mar 26 2019
FOTA_CORE_APP_720D.bin
drwxr-xr-x 1 ftp ftp 0 Dec 12 2018 get
OK
后面的每三个字符分成一组来看,即 rwx 、
r-x 、r-x。第一组rwx是root组对文件的权限;第二个r-x是一般用户(用户组)对文件的权限;第三个r-x是其他用户对文件的权限
r 是可读,w 是可写,x 是可执行,
rwx 意思是可读,可写,可执行;
r-x 是可读,可执行,不可写;同理:
r-- 是可读,不可写,不可执行
rw- 是可读,可写,不可执行
→ AT+FTPQUIT 退出FTPLIST会话,才能开始后续的会话。退出FTPLIST会话的方法有两种,一是等待
+FTPLIST:1,0上报,二是主动退出FTPLIST会话
← OK
+FTPLIST: 1,86
这里采用的是主动退出FTPLIST会话
→ AT+FTPGETNAME="1.txt" 设置下载文件的名称
← OK
→ AT+FTPGET=1 开始FTP下载会话
← OK
← +FTPGET: 1,1 这个是URC上报,表示有数据了
→ AT+FTPGET=2,20 读入20个数据
← +FTPGET: 2, 10 确定读到的是10个数据
??/
??/
OK
←(URC) +FTPGET: 1,0 等一段时间会提示FTP下载会话结束
→ AT+FTPREST=6 如果FTP连接或会话意外关闭,还可以断点续传。从断掉的点开始下载。
← OK
→ AT+FTPGET=1
← OK
+FTPGET: 1,1
+FTPGET: 1,1表示有数据可读
→ AT+FTPQUIT 也可以在提示 +FTPGET: 1,0 前主动用
AT+FTPQUIT退出当前FTP会话
← OK
+FTPGET: 1,86
FTPPUT 命令使用方法:
→ AT+SAPBR=3,1,"CONTYPE","GPRS" 设置FTP功能的承载类型
← OK
→ AT+SAPBR=3,1,"APN","" 设置PDP承载之APN参数模块注册网络后会从网络自动获取并激活一个PDP上下文,用于RNDIS上网使用(此
可以通过AT+CGDCONT?来查询),所以输入AT+SAPBR=3,,"APN","" 即可,模块内部会按照自动获取的来设置
APN
← OK
→ AT+SAPBR=1,1 激活该承载的GPRS PDP上下文
← OK
→ AT+SAPBR=2,1 查询下承载的状态
← +SAPBR: 1,1,010.169.179.213
OK
第一个参数1表示cid
第二个参数1表示已经连接第三个参数表示模块获取的IP地址
→ AT+FTPCID=1
← OK
→ AT+FTPSERV="36.7.33.111" 设置服务器ip地址,也可以使用域名。本文只是举例,请填写自己的服务器地址,不要照抄。
← OK
→ AT+FTPUN="test112" 设置服务器用户名。请填写自己FTP服务器的用户名,不要照抄
← OK
→ AT+FTPPW="777888" 输入密码。请填写自己FTP服务器的密码,不要照抄
← OK
→ AT+FTPPUTNAME="1222.txt" 设置上传文件的名称
← OK
→ AT+FTPPUTPATH="/11/" 设置上传文件的路径
← OK
→ AT+FTPPUT=1
← OK
← +FTPPUT:1,1,1360 这是URC上报,表示可以上传数据了,单次上传的最大长度为1360
→ AT+FTPPUT=2,7
← +FTPPUT: 2,7
//此时输入7个字符
OK
输入7个字符后,会返回OK,表示输入结束,已经上传。
(URC) +FTPPUT: 1,0 等待一段时间不动作,会提示FTPPUT会话结束
→ AT+FTPQUIT 也可以在提示 +FTPPUT: 1,0 之前用
AT+FTPQUIT主动结束会话
← OK
+FTPPUT: 1,86
FTPEXTGET 命令使用方法:
→ AT+SAPBR=3,1,"CONTYPE","GPRS" 设置FTP功能的承载类型
← OK
→ AT+SAPBR=3,1,"APN","" 设置PDP承载之APN参数模块注册网络后会从网络自动获取并激活一个PDP上下文,用于RNDIS上网使用。此
可以通过AT+CGDCONT?来查询。这里输入AT+SAPBR=3,,"APN","" 即可,模块内部会按照自动获取的来设置
APN
← OK
→ AT+SAPBR=1,1 激活该承载的GPRS PDP上下文
← OK
→ AT+SAPBR=2,1 查询下承载的状态
← +SAPBR: 1,1,010.169.179.213
OK
第一个参数1表示cid
第二个参数1表示已经连接第三个参数表示模块获取的IP地址
→ AT+FTPCID=1
← OK
→ AT+FTPSERV="36.7.33.111" 设置服务器IP地址,也可以使用域名
← OK
→ AT+FTPUN="test112" 设置用户名
← OK
→ AT+FTPPW="777888" 输入密码
← OK
→ AT+FTPGETNAME="TEST2.txt" 设置下载文件的名字(请注意:FTPEXTGET命令只支持小于300K的文件的下载)
← OK
→ AT+FTPGETPATH="/11/" 设置下载文件所在的文件夹
← OK
→ AT+FTPEXTGET=1 开始FTP下载
← OK
→ AT+FTPEXTGET? 查询下载了多少字节
← +FTPEXTGET: 1,246840
OK
←(URC) +FTPEXTGET: 1,0 有这个URC上报,表示文件下载完毕,可以保存或读取了
→ AT+FTPEXTGET=2,hello 保存的文件名为hello
← +FTPEXTGET: 2, 296895
OK
→ AT+FTPEXTGET=3,0,296895 将数据显示在串口
← +FTPEXTGET: 3, 296895
……这里是显示在串口的数据……
OK
→ AT+FTPEXTGET=0 设置FTPEXTGET模式关闭
← OK
←(URC) +FTPEXTGET: 4,1460 有数据上报
→ AT+FTPEXTGET=4,1460 读数据
→ +FTPEXTGET: 4,1460
……这里是显示在串口的数据……
OK
FTPEXTPUT使用方法:
→ AT+SAPBR=3,1,"CONTYPE","GPRS" 设置FTP功能的承载类型
← OK
→ AT+SAPBR=3,1,"APN","" 设置PDP承载之APN参数模块注册网络后会从网络自动获取并激活一个PDP上下文,用于RNDIS上网使用。此
可以通过AT+CGDCONT?来查询。这里输入AT+SAPBR=3,,"APN","" 即可,模块内部会按照自动获取的来设置
APN
← OK
→ AT+SAPBR=1,1 激活该承载的GPRS PDP上下文
← OK
→ AT+SAPBR=2,1 查询下承载的状态
← +SAPBR: 1,1,010.169.179.213
OK
第一个参数1表示cid
第二个参数1表示已经连接第三个参数表示模块获取的IP地址
→ AT+FTPCID=1
← OK
→ AT+FTPSERV="36.7.33.111" 设置服务器IP地址,也可以使用域名
← OK
→ AT+FTPUN="test112" 设置用户名
← OK
→ AT+FTPPW="777888" 输入密码
← OK
→ AT+FTPPUTPATH="/11/"
← OK
→ AT+FTPPUTNAME="TEST8861.txt"
← OK
→ AT+FTPEXTPUT=1
← OK
→ AT+FTPEXTPUT=2,0,5,10000 将文件数据从串口输入到模块RAM。第2个参数是offset,第3个参数是数据长度,第4个参数是超时时间10s
← +FTPEXTPUT: 0,5
//这里输入5个字符:12345
OK
→ AT+FTPEXTPUT=2,5,7,10000 这次offset是5,长度为7
← +FTPEXTPUT: 5,7
//这里输入7个字符:67890AB
OK
→ AT+FTPPUT=1 将RAM中的文件传到FTP服务器
← OK
←(URC) +FTPPUT: 1,0 等一段时间会提示FTP上传会话结束。此时查看服务器/11/TEST8861.txt,看到的的内容是:
1234567890AB
→ AT+FTPEXTPUT=0 改为普通的FTP PUT模式
← OK
FTPGETTOFS命令使用方法:
→ AT+SAPBR=3,1,"CONTYPE","GPRS" 设置FTP功能的承载类型
← OK
→ AT+SAPBR=3,1,"APN","" 设置PDP承载之APN参数模块注册网络后会从网络自动获取并激活一个PDP上下文,用于RNDIS上网使用。此
可以通过AT+CGDCONT?来查询。这里输入AT+SAPBR=3,,"APN","" 即可,模块内部会按照自动获取的来设置
APN
← OK
→ AT+SAPBR=1,1 激活该承载的GPRS PDP上下文
← OK
→ AT+SAPBR=2,1 查询下承载的状态
← +SAPBR: 1,1,010.169.179.213
OK
第一个参数1表示cid
第二个参数1表示已经连接第三个参数表示模块获取的IP地址
→ AT+FTPCID=1
← OK
→ AT+FTPSERV="36.7.33.111" 设置服务器IP地址,也可以使用域名
← OK
→ AT+FTPUN="test112" 设置用户名
← OK
→ AT+FTPPW="777888" 输入密码
← OK
→ AT+FTPGETNAME="TEST.mp3"
← OK
→ AT+FTPGETPATH="/11/"
→ OK
→ AT+FTPGETTOFS=0,"TEST-1.mp3" 开始下载,并存于本地ROM中。如果第一个参数为1,则保存于SD卡中。不管保存在本地还是SD
卡,都只能指定文件名,不能指定路径,因为存放的路径是固定的这种下载方式支持自动断点续传
← OK
→ AT+FTPGETTOFS? 查询下载情况
← +FTPGETTOFS: 1,245900,207715
OK
已下载245900字节,207715字节已被存入文件系统
←(URC) +FTPGETTOFS: 0,245900 下载成功,总共下载了多少字节。可用文件系统命令对文件进行操作
→ AT+FSLS=C:/USER/FTP/ 查询保存的文件
← hello
TEST-1.mp3
OK
→ AT+CAUDPLAY=1,"C:/USER/FTP/TEST-1.mp3" 播放保存的文件
← OK
←(URC) +CAUDPLAY: 1,600 播放结束
FTPPUTFRMFS命令使用方法:
→ AT+SAPBR=3,1,"CONTYPE","GPRS" 设置FTP功能的承载类型
← OK
→ AT+SAPBR=3,1,"APN","" 设置PDP承载之APN参数模块注册网络后会从网络自动获取并激活一个PDP上下文,用于RNDIS上网使用。此
可以通过AT+CGDCONT?来查询。这里输入AT+SAPBR=3,,"APN","" 即可,模块内部会按照自动获取的来设置
APN
← OK
→ AT+SAPBR=1,1 激活该承载的GPRS PDP上下文
← OK
→ AT+SAPBR=2,1 查询下承载的状态
← +SAPBR: 1,1,010.169.179.213
OK
第一个参数1表示cid
第二个参数1表示已经连接第三个参数表示模块获取的IP地址
→ AT+FTPCID=1
← OK
→ AT+FTPSERV="36.7.33.111" 设置服务器IP地址,也可以使用域名
← OK
→ AT+FTPUN="test112" 设置用户名
← OK
→ AT+FTPPW="777888" 输入密码
← OK
→ AT+FTPPUTPATH="/"
← OK
→ AT+FTPPUTNAME="TEST001.txt" 传到服务器的文件以TEST001.txt这个名字存放
← OK
→ AT+FTPPUTFRMFS="C:/USER/FTP/TEST-1.txt" 将C:\USER\FTP\TEST-1.txt的文件传到服务器
← OK
+FTPPUTFRMFS: 0,41580
上传结束
FTPFILEPUT命令使用方法:
→ AT+SAPBR=3,1,"CONTYPE","GPRS" 设置FTP功能的承载类型
← OK
→ AT+SAPBR=3,1,"APN","" 设置PDP承载之APN参数模块注册网络后会从网络自动获取并激活一个PDP上下文,用于RNDIS上网使用。此
可以通过AT+CGDCONT?来查询。这里输入AT+SAPBR=3,,"APN","" 即可,模块内部会按照自动获取的来设置
APN
← OK
→ AT+SAPBR=1,1 激活该承载的GPRS PDP上下文
← OK
→ AT+SAPBR=2,1 查询下承载的状态
← +SAPBR: 1,1,010.169.179.213
OK
第一个参数1表示cid
第二个参数1表示已经连接第三个参数表示模块获取的IP地址
→ AT+FTPCID=1
← OK
→ AT+FTPSERV="36.7.33.111" 设置服务器IP地址,也可以使用域名
← OK
→ AT+FTPUN="test112" 设置用户名
← OK
→ AT+FTPPW="777888" 输入密码
← OK
→ AT+FTPPUTPATH="/"
← OK
→ AT+FTPPUTNAME="TEST_80.txt" 传到服务器后保存的文件名
← OK
→ AT+FTPFILEPUT=1,"C:/USER/FTP/TEST-1.txt" 将C:\USER\FTP\TEST-1.txt加载到内存
← OK
→ AT+FTPPUT=1 开始上传
← OK
← +FTPPUT: 1,0 上传结束
→ AT+FTPFILEPUT=0 结束FTPFILEPUT模式
← OK
FTP远程创建/删除目录或文件:
→ AT+SAPBR=3,1,"CONTYPE","GPRS" 设置FTP功能的承载类型
← OK
→ AT+SAPBR=3,1,"APN","" 设置PDP承载之APN参数模块注册网络后会从网络自动获取并激活一个PDP上下文,用于RNDIS上网使用。此
可以通过AT+CGDCONT?来查询。这里输入AT+SAPBR=3,,"APN","" 即可,模块内部会按照自动获取的来设置
APN
← OK
→ AT+SAPBR=1,1 激活该承载的GPRS PDP上下文
← OK
→ AT+SAPBR=2,1 查询下承载的状态
← +SAPBR: 1,1,010.169.179.213
OK
第一个参数1表示cid
第二个参数1表示已经连接第三个参数表示模块获取的IP地址
→ AT+FTPCID=1 设置cid
← OK
→ AT+FTPSERV="36.7.87.100" 设置服务器ip地址,也可以使用域名
← OK
→ AT+FTPUN="user" 设置用户名
← OK
→ AT+FTPPW="123456" 输入密码
← OK
→ AT+FTPGETPATH="/test" 设置要创建的文件目录
← OK
→ AT+FTPMKD 创建目录
← OK
← +FTPMKD: 1,0
→ AT+FTPRMD 删除目录
← OK
← +FTPRMD: 1,0
→ AT+FTPGETPATH="/"
← OK
→ AT+FTPGETNAME="HI.txt"
← OK
→ AT+FTPDELE 删除HI.txt这个文件
← OK
+FTPDELE: 1,0

MQTT相关命令

设置MQTT相关参数:AT+MCONFIG

语法规则:

命令类型 语法 返回 说明
设置命令 AT+MCONFIG=[,,
[,,,
,,eFlag>]]
OK 正常返回
ERROR 输入格式有误
测试命令 AT+MCONFIG=? +MCONFIG:
[,,[,(0-2),(0,1),
,,(0,1)]]
OK

参数定义:

参数 定义 取值 对取值的说明
客户端身份 字符串 最大256个字节。可以用""括住,也可以不用""
(不能相同,否则最后一个刚连上服务器就会被踢掉)
登录服务器的用户名 字符串 最大256个字节。可以用""括住,也可以不用""
登录服务器的密码 字符串 最大256个字节。可以用""括住,也可以不用""
服务质量 0 至多一次
1 至少一次
2 确保只有一次
保留标志 0 如果will_topic字段没有设置,该字段也需要设置为0
如果will_topic字段有设置,服务器必须将遗嘱消息当做非保留信息发布
1 如果will_topic字段有设置,服务器必须将遗嘱信息当做保留信息发布
遗嘱消息的主题 字符串 最大256个字节。需用""括住
(遗嘱主题不能相同,否则收不到遗嘱消息)
遗嘱消息内容 字符串 最大1360个字节。需用""括住
使用ss1加密数据传输时服务器域名是否上报(>=V401880版本支持) 0 不上报(默认)
1 上报

建立TCP连接:AT+MIPSTART

语法规则:

命令类型 语法 返回 说明
设置命令 普通链接:
AT+MIPSTART=,
SSL链接:
AT+SSLMIPSTART=,
OK 正常返回
ERROR 输入格式有误
输入这条设置命令以后,后续会有URC上报。
1) 单链接(AT+CIPMUX=0)如果链接成功地建立,则上报:
CONNECT OK
如果链接已经存在,则上报:
ALREADY CONNECT
如果链接失败,则上报:
STATE:
CONNECT FAIL
2) 多链接(AT+CIPMUX=1)如果链接成功地建立,则上报:
7,CONNECT OK
如果链接已经存在,则上报:
ALREADY CONNECT
如果链接失败,则上报:
7,CONNECT FAIL
测试命令 AT+MIPSTART=? +MIPSTART:"(0,255).(0,255).(0,255).(0,255)",(1-655
35)
+MIPSTART:"DOMAIN NAME",(1-65535)
OK
AT+SSLMIPSTART=? +SSLMIPSTART:"(0,255).(0,255).(0,255).(0,255)",(1-
65535)
+SSLMIPSTART:"DOMAIN NAME",(1-65535)
OK
注意事项 当使用SSL链接进行数据传输时,链接命令为: AT+SSLMIPSTART=,
其余跟普通链接一样。这点请知悉!

参数定义:

参数 定义 取值 对取值的说明
服务器IP地址或DNS地址 domain name或
XXX.XXX.XXX.XXX
XXX 取值范围:0~255
可以用""括住,也可以不用""
服务器端口 1-65535 可以用""括住,也可以不用""

客户端向服务器请求会话连接:AT+MCONNECT

语法规则:

命令类型 语法 返回 说明
设置命令 AT+MCONNECT=,
OK 设置成功
测试命令 AT+MCONNECT=? +MCONNECT:(0-1),(1-65535)
OK
测试命令的返回的是
和
的取值范围
URC 设置命令设置成功,返回OK后,后续会根据连接情况自动上报URC:如果连接成功则返回:CONNACK OK
如果连接失败则返回:ERROR

参数定义:

参数 定义 取值 对取值的说明
0 服务端必须基于当前会话(使用客户端标识符识别)的状态恢复与客户端的通信。如果没有与这个客户端标识符关联的会话,服务端必须创建一个新的会话。在连接断开之后,当连接断开后,客户端和服务端必须保存会话信息 [MQTT-3.1.2-4]。当清理会话标志为 0的会话连接断开之后,服务端必须将之后的 QoS 1 和
QoS2 级别的消息保存为会话状态的一部分,如果这些消息匹配断开连接时客户端的任何订阅 [MQTT-3.1.2-5]。服务端也可以保存满足相同条件的 QoS0 级别的消息。
1 client和server都会抛弃以前的会话,建立一个新的会话。会话持续时间与网络连接持续时间一样长。与此会话相关的会话状态数据在后序的会话中不被采用。
保活时间 1-65535 时间单位:秒设备端在保活时间内至少需要发送一次报文,包括PING请求。如果服务器端在保活时间内未接收到任何报文,会断开连接,设备端需要发起重连。建议取值在300s以上。

发布消息:AT+MPUB

本命令从客户端到服务器,传送应用消息。

语法规则:

命令类型 语法 返回 说明
设置命令 AT+MPUB=,,
,
OK qos=0
OK
PUBACK
qos=1
OK
PUBREC
PUBCOMP
qos=2
ERROR 失败
测试命令 AT+MPUB=? +MPUB:,(0-2),(0-1),
OK

参数定义:

参数 定义 取值 对取值的说明
服务质量 0 至多一次
1 至少一次
2 确保只有一次
保留标志 0 服务器不能存储这个消息也不能移除或替换任何现存的保留消息。
1 服务器必须存储这个应用消息和它的服务等级质量
(QOS),以便它可以被分发给未来的主题名匹配的订阅者。
消息主题 字符串 最大256个字节。可以用""括住,也可以不用""
消息内容 字符串 最大2384个字节。字符串类型,须用双引号括住。注:消息中内嵌的双引号请用\22表达;控制字符回车
\r(0x0D)请用\0D表达;控制字符换行\n(0x0A)请用\0A表达;控制字符反斜杠\(0x5C)请用\5C
表达如果是 MCU 发消息,可能需要用\22,\0D,
\0A,\5C来表达,即\需要转义成\

发布定长消息:AT+MPUBEX

本命令从客户端到服务器,以定长方式传送应用消息。注:Air720U/Air724U系列(版本>=V1624)或者(版本>=V301831)支持最大10K数据收发,以及不定长发送。除上述版本外只支持最大2384字节收发,且不支持不定长发送。

语法规则:

命令类型 语法 返回 说明
设置命令 AT+MPUBEX=,,,[
len]
首先返回一个>
1)如果指定了len,当长度大于等于len就退出数据模式发送数据返回OK。
2)如果没指定len,则以1A做为结束符,或者5s超时(两次数据间隔超过5s)发送数据返回OK
qos=0
首先返回一个>
1)如果指定了len,当长度大于等于len就退出数据模式发送数据返回OK。
2)如果没指定len,则以1A做为结束符,或者5s超时(两次数据间隔超过5s)发送数据返回OK
PUBACK
qos=1
首先返回一个>
1)如果指定了len,当长度大于等于len就退出数据模式发送数据返回OK。
2)如果没指定len,则以1A做为结束符,或者5s超时(两次数据间隔超过5s)发送数据返回OK
PUBREC
PUBCOMP
qos=2
ERROR 失败。一般由语法错误或条件不具备引起
测试命令 AT+MPUBEX=? +MPUBEX:,(0-2),(0-1),
OK

参数定义:

参数 定义 取值 对取值的说明
服务质量 0 至多一次
1 至少一次
2 确保只有一次
保留标志 0 服务器不会存储这个消息也不能移除或替换任何现存的保留消息。
1 服务器必须存储这个应用消息和它的服务等级质量
(QOS),以便它可以被分发给未来的主题名匹配的订阅者。
消息主题 字符串 最大256个字节。可以用""括住,也可以不用""
数据长度 1~1238
4
Air720U/Air724U系列(版本>=V1624)或者(版本>=V301831)

订阅主题:AT+MSUB

本命令从客户端到服务器,用于一个或多个订阅主题。

语法规则:

命令类型 语法 返回 说明
设置命令 AT+MSUB=, OK
SUBACK
成功
ERROR 失败
测试命令 AT+MSUB=? +MSUB:,(0-2)
OK
URC 当设置命令成功以后,如果收到MQTT消息会有相应的URC上报:如果已经设置AT+MQTTMSGSET=0,收到MQTT消息会上报:
+MSUB:,,
如果已经设置AT+MQTTMSGSET=1,收到MQTT消息会上报:
+MSUB:

参数定义:

参数 定义 取值 对取值的说明
消息主题 字符串 最大256个字节。可以用""括住,也可以不用""
服务质量 0 至多一次
1 至少一次
2 确保只有一次
接收数据长度 单位:字节
数据内容 字符串 最大1360个字节
0-3 接收消息时缓存的位置

取消订阅主题:AT+MUNSUB

本命令从客户端到服务器,用于取消订阅主题。

语法规则:

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

参数定义:

参数 定义 取值 对取值的说明
消息主题 字符串 最大256个字节。可以用""括住,也可以不用""

打印收到的所有的订阅消息:AT+MQTTMSGGET

语法规则:

命令类型 语法 返回 说明
执行命令 AT+MQTTMSGGET [+MSUB: ,,]
[+MSUB: ,,]
[+MSUB: ,,]
[+MSUB: ,,]
OK
执行命令将会打印收到的保存在cache中的主题订阅消息。执行完以后,将会变成
invalid。
查询命令 AT+MQTTMSGGET? +MQTTMSGGET:0,
+MQTTMSGGET:1,
+MQTTMSGGET:2,
+MQTTMSGGET:3,
OK
测试命令 AT+MQTTMSGGET=? OK
注意事项 当 AT+MQTTMSGSET=1,执行命令可以打印订阅消息。一次最多打印4条。如果一次上报多于4条,则打印最新的4条,最老的那条将被覆盖。

参数定义:

参数 定义 取值 对取值的说明
消息主题 字符串 最大256个字节。
接收消息长度 单位:字节
消息内容 字符串 最大1360个字节。
消息状态 VALID 有效数据,AT+MQTTMSGGET执行模块可以打印这些消息
INVALID 无效数据

设置订阅消息的打印模式:AT+MQTTMSGSET

语法规则:

命令类型 语法 返回 说明
设置命令 AT+MQTTMSGSET= OK 成功
ERROR 失败
查询命令 AT+MQTTMSGSET? +MQTTMSGSET:
OK
测试命令 AT+MQTTMSGSET=? +MQTTMSGSET:(0,1)
OK

参数定义:

参数 定义 取值 对取值的说明
消息上报模式 0 主动上报到串口。有新订阅消息时,上报的URC为:
+MSUB:,,
1 缓存模式。有新订阅消息时,上报的URC为:
+MSUB:
然后用AT+MQTTMSGGET来读消息

MQTT消息编码格式切换:AT+MQTTMODE

本命令设置MQTT发布消息的编码格式,是ASCII还是HEX。

语法规则:

命令类型 语法 返回 说明
设置命令 AT+MQTTMODE= OK 成功
ERROR 失败
查询命令 AT+MQTTMODE? +MQTTMODE:
OK
测试命令 AT+MQTTMODE=? +MQTTMODE: (0,1)
OK

参数定义:

参数 定义 取值 对取值的说明
MQTT发布消息的编码格式 0 ASCII格式
1 HEX格式

举例:

命令(→)
/返回(←)
实例 解释和说明
→ AT+MQTTMODE=1 设置发布MQTT消息的格式为:HEX
← OK
→ AT+MPUB="test",0,0,"313233" 比如发布消息内容为123,则发布的格式为十六进制格式的可见模式,实际消息接收者收到的消息内容是123
← OK
→ AT+MQTTMODE=0 设置发布MQTT消息的格式为:ASCII
← OK
→ AT+MPUB="test",0,0,"123" 发布消息的内容 123
← OK

关闭TCP连接:AT+MIPCLOSE

语法规则:

命令类型 语法 返回 说明
设置命令 AT+MIPCLOSE OK 成功
ERROR 失败
测试命令 AT+MIPCLOSE=? OK 返回OK,表示支持此命令

关闭MQTT连接:AT+MDISCONNECT

语法规则:

命令类型 语法 返回 说明
设置命令 AT+MDISCONNECT OK 成功
ERROR 失败
测试命令 AT+MDISCONNECT=? OK 返回OK,表示支持此命令

查询MQTT连接状态:AT+MQTTSTATU

语法规则:

命令类型 语法 返回 说明
执行命令 AT+MQTTSTATU +MQTTSTATU :
OK
成功
ERROR 失败
测试命令 AT+MQTTSTATU=? OK 返回OK,表示支持此命令

参数定义:

参数 定义 取值 对取值的说明
MQTT连接状态 0 离线
1 已经登陆认证过,可以PUB数据了
2 还没认证,需要发送MCONNECT命令

使用方法举例

由于这部分的命令具有高度相关性,所以将各个命令的应用例程集中在一起描述。

如果模块出现TCP断链的主动上报,该如何处理:如果模块出现上下文去激活的主动上报,该如何处理:

模块支持蓝牙4.2版本双模(经典蓝牙/低功耗蓝牙)。注:蓝牙仅适用于合宙4GCAT1模块(Air720U/Air724U系列)(版本>=V301826),不适用于合宙4GCAT4模块(Air720/Air720G/Air720H/Air720D/Air720S)。

命令(→)
/返回(←)
实例 解释和说明
普通流程以及SSL不带证书验证流程:
→ AT+CGREG? 查询当前GPRS注册状态
← +CGREG:0,1
OK
=0,表示禁用URC上报
=1,标识已经注册GPRS网络,而且是本地网
→ AT+CGATT? 查看当前GPRS附着状态
← +CGATT:1 =1,标明当前GPRS已经附着
OK
→ AT+MCONFIG=,XXXX,$$$$ 注意:
XXXX 是用户名
$$$$ 是密码请开发者写真实的、用户名和密码,不要照抄,这三个参数加不加双引号都可以。如果用户名和密码为空,则可以写成:
AT+MCONFIG=,"",""
← OK
→ AT+MIPSTART="ip或域名","port" 这里,请填上用户自己的mqtt服务器的IP地址或域名地址,以及端口号注:
1)模块开机注册后缺省就有一个激活的PDP承载,查询AT+CGDCONT?可以看到一个IP。此时可以直接用MQTT的AT命令。
2)当使用SSL链接进行数据传输时(无需证书验证),链接命令格式为:
AT+SSLMIPSTART=,
其余跟普通链接一样。这点请知悉!
← OK
←(URC) CONNECT OK
→ AT+MCONNECT=1,60 建立mqtt会话
← OK
CONNACK OK
注:在MIPSTART返回CONNECT OK后才能发
MCONNECT命令,而且要立即发,否则会被服务器踢掉。收到CONNACK OK后才能发布消息
→ AT+MSUB="mqtt/topic",0 订阅
← OK
SUBACK
→ AT+MPUB="mqtt/topic",0,0,"SSSSddddd" 发布,消息格式缺省为ASCII格式
← OK
→ AT+MQTTMODE=1 设置消息格式为HEX格式
← OK
→ AT+MPUB="mqtt/topic",0,0,"313233" 发送消息"123"到主题"mqtt/topic"
← OK
←(URC) +MSUB: 0 上报方式是cache方式,需要用+MQTTMSGGET来读
→ AT+MQTTMSGGET?
← +MQTTMSGGET: 0,VALID
+MQTTMSGGET: 1,INVALID
+MQTTMSGGET: 2,INVALID
+MQTTMSGGET: 3,INVALID
OK
→ AT+MQTTMSGGET
← +MSUB: mqtt/topic,9 byte,SSSSddddd
OK
→ AT+MQTTMSGSET=0 设置为直接上报消息
← OK
→ AT+MPUB="mqtt/topic",0,0,"SSSSddddd"
← OK
←(URC) +MSUB: "mqtt/topic",9 byte,SSSSddddd
→ AT+MDISCONNECT 模块先关闭MQTT连接
← OK
→ AT+MIPCLOSE 关闭TCP链接
← OK
SSL带证书验证流程(单向认证):
→ AT+CGATT? 查看当前GPRS附着状态
← +CGATT:1
OK
=1,标明当前GPRS已经附着
→ AT+FSCREATE="ca.crt" 创建CA 证书文件
← OK
→ AT+FSWRITE="ca.crt",0,1282,15 1282是证书文件长度,15为超时时间,这里是举例说明,请填入实际数据,不要照抄
← OK
→ AT+SSLCFG="cacert",88,"ca.crt" 设置CA证书文件名称,ca.crt为CA证书文件名称
← OK
→ AT+SSLCFG="seclevel",88,1 设置认证模式为只对服务器认证
← OK
→ AT+MCONFIG=,XXXX,$$$$ 注意:
XXXX 是用户名
$$$$ 是密码请开发者写真实的、用户名和密码,不要照抄,这三个参数加不加双引号都可以。如果用户名和密码为空,则可以写成:
AT+MCONFIG=,"",""
← OK
→ AT+SSLMIPSTART=, ,请修改为真实的MQTT服务器和端口
← OK
→ AT+MCONNECT=1,60 建立mqtt会话
← OK
CONNACK OK
注:在MIPSTART返回CONNECT OK后才能发
MCONNECT命令,而且要立即发,否则会被服务器踢掉。收到CONNACK OK后才能发布消息
后面的流程跟上面普通流程相同
SSL带证书验证流程(双向认证):
→ AT+FSCREATE="ca.crt" 创建CA 证书文件
← OK
→ AT+FSWRITE="ca.crt",0,1282,15 1282是证书文件长度,15为超时时间,这里是举例说明,请填入实际数据,不要照抄
>这里输入CA证书文件内容,1282个字节
← OK
→ AT+FSCREATE="client.crt" 创建客户端证书文件
← OK
→ AT+FSWRITE="client.crt",0,1026,15
>这里输入客户端证书文件,1026个字节
← OK
→ AT+FSCREATE="client.key" 创建客户端key文件
← OK
→ AT+FSWRITE="client.key",0,1706,15
>这里输入客户端key文件内容,1706个字节
← OK
→ AT+SSLCFG="cacert",88,"ca.crt" 设置CA证书文件为ca.crt
← OK
→ AT+SSLCFG="clientcert",88,"client.crt" 设置客户端证书文件为client.crt
← OK
→ AT+SSLCFG="clientkey",88,"client.key" 设置客户端密钥文件为client.key
← OK
→ AT+SSLCFG="seclevel",88,2 设置认证模式为双向认证
← OK
→ AT+MCONFIG=,XXXX,$$$$ 注意:
XXXX 是用户名
$$$$ 是密码请开发者写真实的、用户名和密码,不要照抄,这三个参数加不加双引号都可以。如果用户名和密码为空,则可以写成:
AT+MCONFIG=,"",""
← OK
→ AT+SSLMIPSTART=, ,请修改为真实的MQTT服务器和端口
← OK
→ AT+MCONNECT=1,360 建立mqtt会话
← OK
CONNACK OK
注:在MIPSTART返回CONNECT OK后才能发
MCONNECT命令,而且要立即发,否则会被服务器踢掉。收到CONNACK OK后才能发布消息
后面的流程跟上面普通流程相同
←(URC) CLOSED TCP发生断链
→ AT+MQTTSTATU 查询MQTT连接状态
← +MQTTSTATU:0
OK
0为离线
后面从MIPSTART开始重新连接
←(URC) +PDP DEACT PDP去激活,此时需要重新激活一个PDP上下文才能继续使用
MQTT的AT命令
→ AT+CIPSHUT 关闭移动场景
← OK
此时有三种处理方式,见右侧 3) AT+CGDCONT=5,"IP",""//请填写实际
APN
AT+CGACT=1,5
再从MIPSTART开始
4) AT+CFUN=0,再AT+CFUN=1
5) AT+RESET重启模块

蓝牙相关命令

蓝牙开关:AT+BTCOMM=ENABLE

语法规则:

命令类型 语法 返回 说明
设置命令 AT+BTCOMM=ENABLE,[,>] OK 开关正常
ERROR/
+CMEERROR:
开关失败
查询命令 AT+BTCOMM=ENABLE? +BTCOMM:ENABLE=state,mode
OK

参数定义:

参数 定义 取值 对取值的说明
开关状态 0 关闭
1 打开
模式选择 0 从模式
1 主模式

设置名称:AT+BLECOMM=NAME

注:适用于从模式注意:设置名称AT 指令会加上种类及长度会解析为广播包数据,若使用AT+BLEADV=ADVDATA指令数据中包含蓝牙名称则无需使用AT+BLECOMM=NAME。若熟悉蓝牙协议可使用AT+BLEADV=ADVDATA。

语法规则:

命令类型 语法 返回 说明
设置命令 AT+BLECOMM=NAME, OK 设置成功
ERROR/
+CMEERROR:
设置失败
查询命令 AT+BLECOMM=NAME? +BLECOMM:NAME=name
OK

参数定义:

参数 定义 取值 对取值的说明
蓝牙名称 字符串 设备名称,最长26个字节

设置广播数据:AT+BLEADV=ADVDATA

注:适用于从模式

语法规则:

命令类型 语法 返回 说明
设置命令 AT+BLEADV=ADVDATA,, OK 设置成功
ERROR/
+CMEERROR:
设置失败
查询命令 AT+BLEADV=ADVDATA? +BLEADV:DATA=,
OK

参数定义:

参数 定义 取值 对取值的说明
数据长度 数值 十六进制数据长度。例如 data 为
02010603ff3132,则取值为7,最长31个字节
数据内容 十六进制数据字符串 十六进制数据对应字符串,最长31个字节,例如:要输出,0x02,0x01,0x06,0x03,0xff,0x31,
0x32,则data为"02010603ff3132",数据格式需要遵循蓝牙广播协议,格式为length(1byte)|
type(1byte)|data。在 5.1 规范中的第 3 卷
PARTC 的第 11 节就有"Advertising and Scan
Response data format"(page2204)这么一节。具体协议如下:
https://www.bluetooth.org/docman/handlers/
downloaddoc.ashx?doc_id=457080

设置响应数据:AT+BLEADV=SCANRSPDATA

注:适用于从模式

语法规则:

命令类型 语法 返回 说明
设置命令 AT+BLEADV=SCANRSPDATA,,a> OK 设置成功
ERROR/
+CMEERROR:
设置失败
查询命令 AT+BLEADV=SCANRSPDATA? +BLEADV:DATA=,
OK

参数定义:

参数 定义 取值 对取值的说明
数据长度 数值 十六进制数据长度。例如data为"03ff3132",则取值为4,最长31个字节
数据内容 十六进制数据字符串 十六进制数据对应字符串,最长31个字节,例如:要输出 0x03,0xff,0x31,0x32,则 data 为
"03ff3132",数据格式需要遵循蓝牙广播协议,格
式为length(1byte)|type(1byte)|data。在 5.1
规范中的第 3 卷 PARTC 的第 11 节就有
"Advertising and Scan Response data
format"(page2204)这么一节。具体协议如下:
https://www.bluetooth.org/docman/handlers/
downloaddoc.ashx?doc_id=457080

设置广播参数:AT+BLEADV=ADVPARAM

注:适用于从模式此命令,用于设置广播参数,有6个或8个参数,当广播类型是定向广播时,参数为8个。具体设置要求见页:

语法规则:

命令类型 语法 返回 说明
设置命令 AT+BLEADV=ADVPARAM,,vmax>,,[,rectaddrtype>,],map>, OK 设置成功
ERROR/
+CMEERROR:
设置失败
查询命令 AT+BLEADV=ADVPARAM? +BLEADV:ADVPARAM=>,,,[,addrtype>,],,er>
OK
参数 定义 取值 对取值的说明
最小广播间隔 数值 最小广播间隔 , 单位 0.625ms ,范围
20ms~10.24s (必选)
最大广播间隔 数值 最大广播间隔 , 单位 0.625ms ,范围
20ms~10.24s (必选)
广播类型 数值 广播类型 (必选):
0: Connectable undirected advertising
(ADV_IND)
1: Connectable high duty cycle directed
advertising
2: Scannable undirected advertising
(ADV_SCAN_IND)
3: Non connectable undirected advertising
(ADV_NONCONN_IND)
4: Connectable low duty cycle directed
advertising
广播本地地址类型 数值 广播本地地址类型(必选):
0:Public Device Address
1:Random Device Address
2:Controller generates Resolvable Private
Address based on the local IRK from the
resolvinglist.Iftheresolvinglistcontainsno
matching entry, use the public address
3 : Controller generates Resolvable Private
Address based on the local IRK from the
resolving list. If the resolving list contains no
matching entry, use the random address from
LE_Set_Random_Address
定向地址类型 数值 定向地址类型(可选):
0: Public Device Address
1: Random Device Address
定向地址 字符串 定向地址(可选)
广播channel map 数值 广播channelmap,3个bit,bit0对应37信道,bit1
对应38信道,bit2对应39信道,3个通道全选对应
7(必选)
广播过滤策略 数值 广播过滤策略(必选):
0: Process scan and connection requests
from all devices.
1: Process connection requests from all
devices and only scan requests from devices
that are in the White List.
2:Processscanrequestsfromalldevicesand
only connection requests from devices that
are in the White List.
3:Processscanandconnectionrequestsonly
from devices in the White List

添加服务:AT+BLEADV=ADDSERVICE

注:适用于从模式,调用该指令后默认服务将清除不再使用。

语法规则:

命令类型 语法 返回 说明
设置命令 AT+BLEADV=ADDSERVICE, OK 发送成功
ERROR/
+CMEERROR:
发送失败

参数定义:

参数 定义 取值 对取值的说明
服务16位UUID/128位UUID 十六进制字符串 蓝牙协议规定的特征值唯一标识,例如16位使用的是 "fee0",128 位使用的是
"F2C3F0AEA9FA158C9D49AE73710A81E7"。
具体设置要求见 2034 页:
https://www.bluetooth.org/docman/handlers/
downloaddoc.ashx?doc_id=457080

添加特征:AT+BLEADV=ADDCHARACTERISTIC

注:适用于从模式,调用该指令前必须先调用添加服务指令,添加特征与添加服务有从属关系,添加特征指令要在对应的添加服务指令后设置。

语法规则:

命令类型 语法 返回 说明
设置命令 AT+BLEADV=ADDCHARACTERISTIC,id_c>,, OK 发送成功
ERROR/
+CMEERROR:
发送失败

参数定义:

参数 定义 取值 对取值的说明
特征16位UUID/128位UUID 十六进制字符串 蓝牙协议规定的特征值唯一标识,例如16位使用的是 "fee1",128 位使用的是
"F2C3F0AEA9FA158C9D49AE73710A81E7"。具体设置要求见 2034 页:
https://www.bluetooth.org/docman/handlers/
downloaddoc.ashx?doc_id=457080
type 特征属性 数值 BROADCAST1
READ2
WWP4
WRITE8
NOTIFY16
INDICATE32
ASW 64
EX_PROP128
如果需要两个及以上属性则累加
permission 特征权限 数值 READABLE1
WRITEABLE 2
R_AUTHENT_REQUIRED4
R_AUTHORIZE_REQUIRED8
R_ENCRYPTION_REQUIRED16
R_AUTHENT_MITM_REQUERED32
W_AUTHENT_REQUIRED64
W_AUTHORIZE_REQUIRED128
W_ENCRYPTION_REQUIRED 256
W_AUTHENT_MITM_REQUERED 512
BR_ACCESS_ONLY1024
如果需要两个及以上权限则累加

添加描述:AT+BLEADV=ADDDESCRIPTOR

注:适用于从模式,调用该指令前必须先调用添加特征指令,添加描述与添加特征有从属关系,添加描述指令要在对应的添加特征指令后设置。

语法规则:

命令类型 语法 返回 说明
设置命令 AT+BLEADV=ADDDESCRIPTOR,>, OK 发送成功
ERROR/
+CMEERROR:
发送失败

参数定义:

参数 定义 取值 对取值的说明
描述16位UUID 十六进制字符串 蓝牙协议规定的特征值唯一标识,例如16位使用的是"2902"。具体设置要求见 2034 页:
https://www.bluetooth.org/docman/handlers/
downloaddoc.ashx?doc_id=457080
value 描述属性 字符串/
数值
uuid_d为0x2901或0x2904时,value为字符串。
uuid_d其他值时, value为number类型。具体设置要求见 2359 页:
https://www.bluetooth.org/docman/handlers/
downloaddoc.ashx?doc_id=457080

清除所有自定义服务:AT+BLEADV=CLEANALLSERVICE

注:适用于从模式,调用该指令后默认服务将恢复使用。参数定义:无

语法规则:

命令类型 语法 返回 说明
设置命令 AT+BLEADV=CLEANALLSERVICE OK 发送成功
ERROR/
+CMEERROR:
发送失败

添加白名单:AT+BLECOMM=ADDWHITELIST

语法规则:

命令类型 语法 返回 说明
设置命令 AT+BLECOMM=ADDWHITELIST,pe>,
OK 成功
ERROR/
+CMEERROR:
失败

参数定义:

参数 定义 取值 对取值的说明
对端设备蓝牙地址 字符串 设备地址(小端排序,共6个字节),例如:
"40:45:DA:33:22:11"
对端设备蓝牙地址类型 0 public
1 random

移除白名单:AT+BLECOMM=REMOVEWHITELIST

语法规则:

命令类型 语法 返回 说明
设置命令 AT+BLECOMM=REMOVEWHITELIST,drtype>,
OK 成功
ERROR/
+CMEERROR:
失败

参数定义:

参数 定义 取值 对取值的说明
对端设备蓝牙地址 字符串 设备地址(小端排序,共6个字节),例如:
"40:45:DA:33:22:11"
对端设备蓝牙地址类型 0 public
1 random

清空白名单:AT+BLECOMM=CLEANWHITELIST

参数定义:无

语法规则:

命令类型 语法 返回 说明
设置命令 AT+BLECOMM=CLEANWHITELIST OK 成功
ERROR/
+CMEERROR:
失败

设置beacon数据:AT+BLEADV=BEACONDATA

注:适用于从模式

此命令与设置名称,设置广播数据,设置响应数据命令不兼容。

语法规则:

命令类型 语法 返回 说明
设置命令 AT+BLEADV=BEACONDATA,,ajor>, OK 设置成功
ERROR/
+CMEERROR:
设置失败
查询命令 AT+BLEADV=BEACONDATA? +BLEADV:BEACONDATA=,,
OK

参数定义:

参数 定义 取值 对取值的说明
128位UUID 十六进制字符串 蓝牙协议规定的特征值唯一标识,例如128位使用的是"F2C3F0AEA9FA158C9D49AE73710A81
E7"。具体设置要求见 2034 页:
https://www.bluetooth.org/docman/handlers/
downloaddoc.ashx?doc_id=457080
编号 数值 0~65535
编号 数值 0~65535

广播开关:AT+BLEADV=ENABLE

注:适用于从模式

语法规则:

命令类型 语法 返回 说明
设置命令 AT+BLEADV=ENABLE, OK 开关成功
ERROR/
+CMEERROR:
开关失败
查询命令 AT+BLEADV=ENABLE? +BLEADV:ENABLE=
OK

参数定义:

参数 定义 取值 对取值的说明
蓝牙广播开关 0 关闭广播
1 打开广播

(URC)断开状态上报:+BLEIND=DISCONNECT

语法规则:

命令类型 语法 说明
URC上报 +BLEIND=DISCONNECT[,
]
模块作为从设备或者主设备时,对端设备断开成功

参数定义:

参数 定义 取值 对取值的说明
对端设备蓝牙地址 字符串 设备地址(小端排序,共6个字节),例如:
"40:45:DA:33:22:11"

设置扫描参数:AT+BLESCAN=SCANPARAM

注:适用于主模式此命令,用于设置扫描参数,有5个参数。(具体设置要求见1331页:https://www.bluetooth.org/docman/handlers/downloaddoc.ashx?doc_id=457080)

语法规则:

命令类型 语法 返回 说明
设置命令 AT+BLESCAN=SCANPARAM,
,,,olicy>[,
OK 设置成功
ERROR/
+CMEERROR:
设置失败
查询命令 AT+BLESCAN=SCANPARAM? +BLESCAN:SCANPARAM=,>,,[,>
OK

参数定义:

参数 定义 取值 对取值的说明
扫描类型 数值 0 passive
1 active
扫描间隔 数值 单位0.625ms,范围2.5ms~10.24s
扫描窗口 数值 单位0.625ms,范围2.5ms~10.24s
扫描过滤策略 数值 0: Acceptalladvertisingandscanresponse
PDUsexceptdirectedadvertisingPDUsnot
addressedtothisdevice(default)
1: Acceptonlyadvertisingandscanresponse
PDUsfromdeviceswheretheadvertiser’s
addressisintheWhiteList.Directedadvertising
PDUswhicharenotaddressedtothisdevice
shallbeignored
own_addr_type 本地地址类型 数值 0:Public Device Address
1:Random Device Address
2:Controller generates Resolvable Private
Address based on the local IRK from the
resolvinglist.Iftheresolvinglistcontainsno
matching entry, use the public address
3:ControllergeneratesResolvablePrivate
AddressbasedonthelocalIRKfromthe
resolvinglist.Iftheresolvinglistcontainsno
matchingentry,usetherandomaddressfrom
LE_Set_Random_Address

扫描开关:AT+BLESCAN=ENABLE

注:适用于主模式

语法规则:

命令类型 语法 返回 说明
设置命令 AT+BLESCAN=ENABLE, OK 开关成功
ERROR/
+CMEERROR:
开关失败
查询命令 AT+BLESCAN=ENABLE? +BLESCAN:ENABLE=
OK

参数定义:

参数 定义 取值 对取值的说明
蓝牙扫描开关 0 关闭扫描
1 打开扫描

连接从设备:AT+BLECOMM=CONNECT

注:适用于主模式

语法规则:

命令类型 语法 返回 说明
设置命令 AT+BLECOMM=CONNECT,,<
address>
OK 连接成功
ERROR/
+CMEERROR:
连接失败
查询命令 AT+BLECOMM=CONNECT? +BLECOMM:CONNECT=[,address]
OK

参数定义:

参数 定义 取值 对取值的说明
连接状态 0 断开状态
1 连接状态
对端设备蓝牙地址 字符串 设备地址(小端排序,共6个字节),例如:
"40:45:DA:33:22:11"
对端设备蓝牙地址类型 0 public
1 random

断开从设备:AT+BLECOMM=DISCONNECT

参数定义:无

语法规则:

命令类型 语法 返回 说明
设置命令 AT+BLECOMM=DISCONNECT OK 断开连接成功
ERROR/
+CMEERROR:
断开连接失败

发现服务uuid:AT+BLECOMM=FINDSERVICE

注:适用于主模式

参数定义:无

语法规则:

命令类型 语法 返回 说明
设置命令 AT+BLECOMM=FINDSERVICE OK 发送成功
ERROR/
+CMEERROR:
发送失败

发现服务内的特征:AT+BLECOMM=FINDCHARACTERISTIC

注:适用于主模式

语法规则:

命令类型 语法 返回 说明
设置命令 AT+BLECOMM=FINDCHARACTERISTIC,
OK 发送成功
ERROR/
+CMEERROR:
发送失败

参数定义:

参数 定义 取值 对取值的说明
服务16位UUID/128位UUID 十六进制字符串 蓝牙协议规定的特征值唯一标识,例如16位使用的是 "fee1",128 位使用的是
"F2C3F0AEA9FA158C9D49AE73710A81E7"。具体设置要求见 2034 页:
https://www.bluetooth.org/docman/handlers/
downloaddoc.ashx?doc_id=457080

根据句柄查询服务内的特征:AT+BLECOMM=FINDCHARACTERISTICHAN

注:适用于主模式 >=V401880版本支持

语法规则:

命令类型 语法 返回 说明
设置命令 AT+BLECOMM=FINDCHARACTERISTIC,
,0,,
OK 发送成功
ERROR/
+CMEERROR:
发送失败

参数定义:

参数 定义 取值 对取值的说明
服务16位UUID/128位UUID 十六进制字符串 蓝牙协议规定的特征值唯一标识,例如16位使用的是 "fee1",128 位使用的是
"F2C3F0AEA9FA158C9D49AE73710A81E7"
。具体设置要求见 2034 页:
https://www.bluetooth.org/docman/handler
s/downloaddoc.ashx?doc_id=457080
start 开始 0-65535
end 结束 0-65535

(URC)特征uuid上报:+BLEIND=FINDCHARACTERISTIC

注:适用于主模式注:适用于主模式

语法规则:

命令类型 语法 返回 说明
设置命令 AT+BLECOMM=FINDCHARACTERISTIC,
OK 发送成功
ERROR/
+CMEERROR:
发送失败

参数定义:

参数 定义 取值 对取值的说明
服务16位UUID/128位UUID 十六进制字符串 蓝牙协议规定的特征值唯一标识,例如16位使用的是 "fee1",128 位使用的是
"F2C3F0AEA9FA158C9D49AE73710A81E7"。具体设置要求见 2034 页:
https://www.bluetooth.org/docman/handlers/
downloaddoc.ashx?doc_id=457080

(URC)特征uuid上报:+BLEIND=FINDCHARACTERISTIC

语法规则:

命令类型 语法 返回和说明
URC上报 +BLEIND=FINDCHARACTERISTIC,_c> 对端设备发出来的特征uuid数据

参数定义:

参数 定义 取值 对取值的说明
特征16位UUID/128位UUID 十六进制字符串 蓝牙协议规定的特征值唯一标识,例如16位使用的是 "fee1",128 位使用的是
"F2C3F0AEA9FA158C9D49AE73710A81E7"。具体设置要求见 2034 页:
https://www.bluetooth.org/docman/handlers/
downloaddoc.ashx?doc_id=457080

通知开关:AT+BLECOMM=NOTIFICATION

注:适用于主模式

语法规则:

命令类型 语法 返回 说明
设置命令 AT+BLECOMM=NOTIFICATION,
,
OK 发送成功
ERROR/
+CMEERROR:
发送失败

参数定义:

参数 定义 取值 对取值的说明
特征16位UUID/128位UUID 十六进制字符串 蓝牙协议规定的特征值唯一标识,例如16位使用的是 "fee1",128 位使用的是
"F2C3F0AEA9FA158C9D49AE73710A81E7"。具体设置要求见 2034 页:
https://www.bluetooth.org/docman/handlers/
downloaddoc.ashx?doc_id=457080
开关状态 0 关闭
1 打开

发送数据:AT+BLECOMM=SENDDATA

语法规则:

命令类型 语法 返回 说明
设置命令 AT+BLECOMM=SENDDATA,,en>, OK 发送成功
ERROR/
+CMEERROR:
发送失败

参数定义:

参数 定义 取值 对取值的说明
特征16位UUID/128位UUID 十六进 蓝牙协议规定的特征值唯一标识,例如16位使用的
制字符串 是 "fee1",128 位使用的是
"F2C3F0AEA9FA158C9D49AE73710A81E7"。具体设置要求见 2034 页:
https://www.bluetooth.org/docman/handlers/
downloaddoc.ashx?doc_id=457080
数据长度 数值 十六进制数据长度,最长244个字节。例如data
为"3132",则取值为2
数据内容 十六进制数据字符串 十六进制数据对应字符串,最长244个字节。例如:要输出0x31,0x32,则data为"3132"

蓝牙MAC地址:AT+BTMAC

语法规则:

命令类型 语法 返回 说明
设置命令 AT+BTMAC=
OK 设置成功
ERROR/
+CMEERROR:
设置失败
查询命令 AT+BTMAC? +BTMAC:

OK

参数定义:

参数 定义 取值 对取值的说明
本机MAC地址 字符串 设备地址(小端排序,共6个字节),例如:
"40:45:DA:33:22:11"

使用方法举例

由于这部分的命令具有高度相关性,所以将各个命令的应用例程集中在一起描述。

注:本命令仅适用于合宙4GCAT1模块(Air820U系列和CAT1外挂Air530,Air530Z)。

命令(→)
/返回(←)
实例 解释和说明
BLE从模式命令使用方法:
→ AT+BTCOMM=ENABLE? 查询蓝牙是否已经打开
← +BTCOMM:ENABLE=0,0
OK
0是未打开
→ AT+BTCOMM=ENABLE,1,0 打开蓝牙从模式
← OK
→ AT+BLECOMM=NAME,"Luat_Air724UG" 设置蓝牙名称
← OK
→ AT+BLEADV=ADVDATA,6,"02010602ff01" 设置广播包数据
← OK
→ AT+BLEADV=SCANRSPDATA,3,"020A04" 设置响应包数据
← OK
→ AT+BLEADV=ENABLE,1 打开广播等待连接成功
← OK
→ AT+BLEADV=ENABLE? 查询广播状态
← +BLEADV:ENABLE=1
OK
1是已打开
← +BLEIND=CONNECT,"40:45:DA:33:22:11" 连接状态上报
← +BLEIND=DATA,"fee1",10,"31323334353637383930" 接收到数据
→ AT+BLECOMM=SENDDATA,"fee2",10,"31323334353637383930" 发送数据
← OK
BLE主模式模式命令使用方法:
→ AT+BTCOMM=ENABLE? 查询蓝牙是否已经打开
← +BTCOMM:ENABLE=0,0
OK
0是未打开
→ AT+BTCOMM=ENABLE,1,1 打开蓝牙主模式
← OK
→ AT+BLESCAN=ENABLE,1 开启扫描
← OK
← +BLEIND=SCAN,"40:45:DA:33:22:11",0,-75,"0201060E094 扫描结果上报
C7561745F4169723732345547"
→ AT+BLESCAN=ENABLE,0 关闭扫描
← OK
→ AT+BLECOMM=CONNECT,0,"40:45:DA:33:22:11" 连接蓝牙
← OK
← +BLEIND=CONNECT 连接状态上报
→ AT+BLECOMM=FINDSERVICE 发现服务
← OK
← +BLEIND=FINDSERVICE,"fee0" 服务uuid上报
→ AT+BLECOMM=FINDCHARACTERISTIC,"fee0" 发现服务内的特征
← OK
← +BLEIND=FINDCHARACTERISTIC,"fee1"
+BLEIND=FINDCHARACTERISTIC,"fee2"
特征uuid上报
→ AT+BLECOMM=NOTIFICATION,"fee2",1 打开通知
← OK
→ AT+BLECOMM=SENDDATA,"fee1",10,"31323334353637383930" 发送数据
← OK
← +BLEIND=DATA,"fee2",10,"31323334353637383930" 接收到数据
BLE白名单使用方法:
→ AT+BTCOMM=ENABLE? 查询蓝牙是否已经打开
← +BTCOMM:ENABLE=0,0
OK
0是未打开
→ AT+BTCOMM=ENABLE,1,0 打开蓝牙从模式
← OK
→ AT+BLECOMM=NAME,"Luat_Air724UG" 设置蓝牙名称
← OK
→ AT+BLEADV=ADVDATA,6,"02010602ff01" 设置广播包数据
← OK
→ AT+BLEADV=SCANRSPDATA,3,"020A04" 设置响应包数据
← OK
→ AT+BLECOMM=ADDWHITELIST,0,"40:45:DA:33:22:11" 添加白名单
← OK
→ AT+BLEADV=ADVPARAM,128,160,0,0,7,2 设置广播参数(只允许白名单设备连接)
← OK
→ AT+BLEADV=ENABLE,1 打开广播等待连接成功
← OK
→ AT+BLEADV=ENABLE? 查询广播状态
← +BLEADV:ENABLE=1
OK
1是已打开
← +BLEIND=CONNECT,"40:45:DA:33:22:11" 连接状态上报
BLE beacon使用方法:
→ AT+BTCOMM=ENABLE? 查询蓝牙是否已经打开
← +BTCOMM:ENABLE=0,0 0是未打开
OK
→ AT+BTCOMM=ENABLE,1,0 打开蓝牙从模式
← OK
→ AT+BLEADV=BEACONDATA,"F2C3F0AEA9FA158C9D49AE73710A81E7
",10107,50179
设置beacon数据
← OK
→ AT+BLEADV=ENABLE,1 打开广播
← OK
BLE 自定义服务使用方法:
→ AT+BTCOMM=ENABLE? 查询蓝牙是否已经打开
← +BTCOMM:ENABLE=0,0
OK
0是未打开
→ AT+BTCOMM=ENABLE,1,0 打开蓝牙从模式
← OK
→ AT+BLEADV=ADDSERVICE,"fee0" 添加服务0xfee0
← OK
→ AT+BLEADV=ADDCHARACTERISTIC,"fee1",12,2 添加特征0xfee1
← OK
→ AT+BLEADV=ADDCHARACTERISTIC,"fee2",16,1 添加特征0xfee2
← OK
→ AT+BLEADV=ADDDESCRIPTOR,"2902",1 添加描述0x2902
← OK
→ AT+BLEADV=ENABLE,1 打开广播
← OK

GPS相关命令

GPS开关:AT+CGNSPWR

语法规则:

命令类型 语法 返回 说明
设置命令 AT+CGNSPWR=[,[,d>[,]]] OK 开关正常
ERROR 开关失败
查询命令 AT+CGNSPWR? +CGNSPWR:
OK

参数定义:

参数 定义 取值 对取值的说明
开关状态 0 关闭
1 打开
2 自适应打开GPS芯片(仅适用于Air820,只需开关状态一个参数)
要打开的串口号 0 串口1
1 串口2
2 串口3(默认使用串口3)
使用的波特率 常用波特率 波特率1200~921600,默认9600
GPS型号 0 中科微AT6558
1 国科9501
2 和芯星通UC6226

读取GNSS信息:AT+CGNSINF

语法规则:

命令类型 语法 返回
执行命令 AT+CGNSINF +CGNSINF: ,, ,
,, ,,
, ,,,,
,,, Used>,,,,
,
OK

参数定义:

参数 定义 取值 对取值的说明
GNSS运行状态 0 GNSS OFF
1 GNSS ON
0 not fixed position
1 fixed position
yyyyMMddhhmmss yyyy: [1980,——]
MM : [1,12]
dd:[1,31]
hh: [0,23]
mm: [0,59]
ss:[0,60]
纬度 ±dd.dddddd [-90.000000,90.000000]
经度 ±ddd.dddddd [-180.000000,180.000000]
单位:meters
0~999.99 单位:海里/小时
0~360.00 单位:degress
0,1,2 具体取值取决于GPS芯片
0~99.9
0~99.9
0~99.9
View> 0~99
0~99
Used> 0~99
0~55 单位:dBHz
0~9999.9 单位:meters
0~9999.9 单位:meters

打开GNSS URC上报:AT+CGNSURC

语法规则:

命令类型 语法 返回
设置命令 AT+CGNSURC=
OK
OK
+CME ERROR:
查询命令 AT+CGNSURC? +CGNSURC:
OK
测试命令 AT+CGNSURC=? +CGNSURC: (0-255)
OK
URC 与AT+CGNSINF的返回格式相同:
+CGNSINF:,,,,,
,, , Mode>,,,,,,,
,,,max>,,

参数定义:

参数 定义 取值 对取值的说明
0 关闭导航数据URC上报
1~255 开启导航数据URC周期上报并设置周期时间

将读取到的GNSS数据发送到AT口:AT+CGNSTST

语法规则:

命令类型 语法 返回
设置命令 AT+CGNSTST=
OK
OK
+CME ERROR:
测试命令 AT+CGNSTST? +CGNSTST:
OK
测试命令 AT+CGNSTST=? +CGNSTST:(0-1)
OK

参数定义:

参数 定义 取值 对取值的说明
开关 0 switch off
1 switch on

给GNSS发送控制命令:AT+CGNSCMD

语法规则:

命令类型 语法 返回
设置命令 AT+CGNSCMD=,,
]
OK
OK
+CME ERROR:
测试命令 AT+CGNSCMD=? +CGNSCMD:(0-1),"cmdString"
OK

参数定义:

参数 定义 取值 对取值的说明
命令类型 0 NMEA style command。目前仅支持这种。
1 HEX style command。
命令字符串 字符串类型
ng> 应答特征 填入应答的特征字符,用于捕获命令的结果

读取GNSS 版本:AT+CGNSVER

语法规则:

命令类型 语法 返回
执行命令 AT+CGNSVER
OK

设置辅助定位:AT+CGNSAID

秒定位,由时间辅助定位

语法规则:

命令类型 语法 返回
设置命令 AT+CGNSAID=, OK
+CME ERROR:
测试命令 AT+CGNSAID=? +CGNSAID: (0-31)(0-1)(0-1)(0-1)
OK

参数定义:

参数 定义 取值 对取值的说明
参数保留 0-31 本参数暂不起作用
是否同步GNSS UTC 时间 0 不使能
1 使能(建议开启)
是否同步 epo ( Extended
Pridiction Orbit)文件
0 不使能
1 使能(建议开启)
是否使能位置辅助定位 0 不使能
1 使能(建议开启)

删除EPO文件:AT+CGNSDEL

语法规则:

命令类型 语法 返回
设置命令 AT+CGNSDEL= +CGNSDEL: ,0,0
OK
+CME ERROR:

参数定义:

参数 定义 取值 对取值的说明
模式 1 1和2保留
3 删除EPO文件
2
3

增加VIB电压输出:AT+LDO

语法规则:

命令类型 语法 返回
设置命令 AT+LDO=, +LDO:,
OK
+CME ERROR:

参数定义:

参数 定义 取值 对取值的说明
ldo通道 0 ldo通道
电压等级 0 表示关闭
1-7 表示电压等级

定义NMEA解析 :AT+CGNSSEQ

语法规则:

命令类型 语法 返回
设置命令 AT+CGNSSEQ="str" OK
+CME ERROR:
查询命令 AT+CGNSSEQ? +CGNSSEQ: %s
OK
测试命令 AT+CGNSSEQ=? +CGNSSEQ: (GGA,GSA,RMC,GSV)
OK

参数定义:

参数 定义 取值 对取值的说明
str 字符串 字符串类型

传入AGPS定位,所需的大概经纬度信息 :AT+CRFLOC

内部已经实现根据基站信息自动获取,该命令无效.

语法规则:

命令类型 语法 返回
设置命令 AT+CRFLOC=, +CRFLOC: ,
OK
+CME ERROR:
测试命令 AT+CRFLOC=? +CRFLOC:\"location\"
OK

参数定义:

参数 定义 取值 对取值的说明
纬度 -180 — +180 本初子午线以东的180度属于东经,用"E(+)"作代号;本初子午线以西的180度属于西经,用"W(-)"作代号。
经度 -90 — +90 赤道以北的90度属于北纬,用"N(+)"作代号;赤道以南的90度属于南纬,用"S(-)"作代号。

检查EPO文件属性 :AT+CGNSCHK

语法规则:

命令类型 语法 返回
设置命令 AT+CGNSCHK=,[ +CGNSCHK: ,[
+CME ERROR:
测试命令 AT+CGNSCHK=? +CGNSDEL: (1-3)
OK

参数定义:

参数 定义 取值 对取值的说明
模式 0-2 保留
3 EPO file
可选,默认0 0 不显示过期日期
1 将显示EPO文件可用小时数

使用方法举例

由于这部分的命令具有高度相关性,所以将各个命令的应用例程集中在一起描述。

命令(→) 实例 解释和说明
搜索