T指令:AT即Attention。AT指令是应用于终端设备与PC应用之间的连接与通信的指令。每个AT命令行中只能包含一条AT指令;对于AT指令的发送,除AT两个字符外,最多可以接收1056个字符的长度(包括最后的空字符)。

一. AT 指令语法

基本原理

使用 AT 指令与串口通信,是一种 “礼尚往来” 的通信方式,即当控制端输入一个 AT 指令后,与之通信的外部设备将会回复一个结果,就这样一对一的进行。
以最简单的 AT 指令为例,当串口连接好以后,使用

  1. busybox microcom -s 115200 ttyUSB2

当然,4G 模块接入树莓派后会模拟出多个模块,如果选择的 ttyUSB 不对可多尝试记下;进入串口通信模式,当我输入一个 AT 后,设备将会回复一个 OK
AT指令集解析 - 图1
每输入一次 AT 设备都会回复一个 OK,就可以利用不同的指令,结合设备的返回码来与设备通信。
其实,当我敲下 AT 回车后,发送给设备的指令实际是

AT<CR>

也就是 “AT\r”
“\r” 是指回到行首,但不会换到下一行, 而当我们收到 OK 时,实际上是收到了

<CR><LF><OK><CR><LF>

也就是 “\r\nOK\r\n
“/r/n” 合起来才是 Windows 下的 Enter,即回到行首并新建一行。从上面的图中可以看到,OK 的确换到了新的一行,当我们在敲 AT 时,又是在新的一行。

  • 基本语法
    这些AT命令的格式为“ AT ”或 “AT&,其中以””为命令,并且“ “是该命令的参数。 例如“ ATE ”,它告诉DCE是否应根据“ ”的值将收到的字符回显到DTE。 “ ”是可选,如果缺少默认值,将使用默认值。
  • S 参数语法
    这些AT命令的格式为“ ATS = ”,其中“ ”是要设置的S寄存器的索引,“ ”是要分配给它的值。S参数语法这些AT命令的格式为“ ATS = ”,其中“ ”是要设置的S寄存器的索引,“ ”是要分配给它的值。

AT 指令和响应类型

Test Command AT+=? 此命令返回参数和值范围的列表由相应的写命令或内部进程设置
Read Command AT+? 命令返回参数的当前设置值或参数
Write Command AT+=<…> 此命令设置用户可定义的参数值。
Execution Command AT+ 读取受 UE 内部流程影响的被变量参数

二. AT 指令集中的几个重要术语

TE (Terminal Equipment):
终端设备,比如一台计算机,一部手机,与 DTE 等价. 它是和信息网络的一端相接的可提供必要功能的设备,这些功能使得用户可以通过接入协议接入网络。发送信息,接收信息。

TA(Terminal Adapter)
终端适配器,提供终端适配功能的物理实体,是一种接口设备,与 DCE 等价。比如 SIM300 模块

DCE(Data Communications Equipment)
数据通信设备, 它在 DTE 和传输线路之间提供信号变换和编码功能,并负责建立、保持和释放链路的连接,如 Modem。DCE 设备通常是与 DTE 对接,因此针脚的分配相反。其实对于标准的串行端口,通常从外观就能判断是 DTE 还是 DCE,DTE 是针头(俗称公头),DCE 是孔头(俗称母头),这样两种接口才能接在一起。

DTE(Data Terminal Equipment)
数据终端设备,具有一定的数据处理能力和数据收发能力的设备。DTE 提供或接收数据,例连接到调制解调器上的计算机就是一种 DTE。DTE 提供或接收数据,连接到网络中的用户端机器,主要是计算机和终端设备。与此相对的,在网络端的连接设备称为 DCE (Date Circuit - terminating Equipment )。DTE 与进行信令处理的 DCE 相连。 它是用户—网络接口的用户端设备,可作为数据源、目的地或两者兼而有之。 DTE 通过 DCE 设备 (例如,调制解调器) 连接到数据网络,且一般使用 DCE 产生的时钟信号。DTE 包括像计算机、协议转换器和多路复用器这样的设备。

ME Mobile Equipment : 移动设备,比如手机,就属于 ME

MS Mobile Station : 移动台,在移动中使用的通信站或者手持台。

三. 一般命令

ATI 显示产品标识信息

ATI 命令用来返回模块的产品标识信息:
AT指令集解析 - 图2
可以看到,我的模块式移远的 EC20F.,Revision 是修订标识
最大响应时间:300ms

AT+GMI , AT+CGMI 获取制造商

AT指令集解析 - 图3

最大响应时间:300ms

AT+GMM , AT+CGMM 申请 TA 模型识别

和查型号差不多
AT指令集解析 - 图4

AT+GMR , AT+CGMR 请求软件版本的 TA 修订标识

AT指令集解析 - 图5
可以发现,最上面的命令包含了这 3 个命令。
最大响应时间:300ms

AT+GSN , AT+CGSN 获取模块 IMEI 号

AT指令集解析 - 图6
IMEI 号,即国际移动设备识别码(International Mobile Equipment Identity,IMEI),通常所说的手机序列号,移动通信设备都会有一个 IMEI 号,就像身份证。
最大响应时间:300ms

AT&F 将所有当前参数设置为制造商默认值

例如

AT&F0

最大响应时间:300ms

AT&V 显示当前配置

AT指令集解析 - 图7

最大响应时间:300ms

AT&W 保存设置

将当前参数存储到用户定义的配置文件。
下面不标明最大响应时间的,默认 300ms

AT&Z 将所有当前参数设置为用户定义的配置文件

该命令以非易失性方式将当前 AT 命令设置恢复到用户定义的配置文件内存(如果之前已将它们存储在 AT&W 中)。 同一命令行上的任何其他 AT 命令, 可能会被忽略。

ATQ 设置结果代码演示模式

此参数设置确定 TA 是否将任何结果代码发送到 TE。 信息文字以响应方式传输不受此设置影响.

if \<n>=0:
OK
if\<n>=1:
none

:
0 —— TA 发送结果代码
1 —— 结果代码被禁止而不发送

ATV TA 响应格式

该命令确定与 AT 命令结果代码一起发送的标题和尾部的内容和信息回复。
结果代码,它们的数字等效形式以及每种用法的简要说明在列表中列出。
例如:
AT指令集解析 - 图8

各响应结果对应的数字:

ATV1 ATV0
OK 0
CONNECT 1
RING 2
NO CARRIER 3
ERROR 4
NO DIALTONE 6
BUSY 7
NO ANSWER 8

ATE 设置命令回显模式

输入的命令是否能在屏幕打印
例如 ATE0,ATE1
AT指令集解析 - 图9

A/

该命令重复上一个 AT 命令行,“/” 充当行终止符。
AT指令集解析 - 图10

ATS3 设置命令行终止符

该命令确定模块识别的字符以终止传入的命令行。 它还为结果代码和信息文本以及通过 ATS4 设置的字符值生成。

ATS4 设置响应格式字符

该命令确定模块为结果代码和信息文本生成的字符,以及通过 ATS3 设置的命令行终止字符。

ATS5 设置命令行编辑字符

该命令确定模块用来删除紧靠其前的字符值,AT 命令行中的字符(即等于退格键)。

AT+CFUN 设置电话功能

  1. AT+CFUN=?
    列出所有功能对应序号
  2. AT+CFUN?
    查询当前设置的电话功能,返回的是 fun 的值
  3. AT+CFUN=[,]
    设置电话功能


0 —— 最低功能
1 —— 完整功能(默认)
4 —— 禁止 ME 发送和接收 RF 信号

\rst>
0 —— 将 ME 设置为功能级别之前,请勿重置 ME。当未给出时,这是默认设置。
1 —— 重置 ME。 复位后,该设备可以正常使用。 该值仅用于 = 1

AT+CMEE 错误讯息格式

  1. AT+CMEE=?
    列出支持的功能
  2. AT+CMEE?
    查看当前设置
  3. AT+CMEE=
    设置错误讯息格式


0 —— 禁用结果代码
1 —— 启用结果代码并使用数值
2 —— 启用结果代码并使用详细值
这个设置比较有必要,当发生错误时如果光知道错误号还要去查询,具体看下图:
AT指令集解析 - 图11

AT+CSCS 选择字符集

AT 指令集支持三种字符集,分别是 GSM,IPA 与 UCS2 字符集.

AT+CSCS=<cheset>

AT指令集解析 - 图12

四. 串口控制命令

AT&C 设置数据载波检测模式

AT指令集解析 - 图13

1 表示总是开启数据载波检测功能
0 表示仅在有数据载体的情况下才打开

AT&D 设置 DTR 功能模式

该命令确定在数据模式期间,如果 DTR 线路从低电平更改为高电平,UE 将如何响应。

AT&D[\value>]


0 —— TA 忽略 DTR 上的状态
1 —— DTR 上的低→高:在保持连接的呼叫的同时切换到命令模式。
2 —— DTR 上的低→高:断开数据调用,然后更改为命令模式。 当 DTR 处于高级别时,自动应答功能已禁用。

AT+IFC 设置 TE-TA 本地数据流控制

  1. AT+IFC=?
    列出支持的设置
  2. AT+IFC?
    查看当前设置
  3. AT+IFC=,
    设置

指定 TE 从 TA 接收数据时将使用的方法
0 —— 无
2 —— RTS 流量控制

指定 TA 从 TE 接收数据时将使用的方法
0 —— 无
2 —— CTS 流量控制

AT指令集解析 - 图14

AT+ICF 设置 TE-TA 控制字符框

该命令确定 TA 从 TE 接收到的串行接口字符成帧格式和奇偶校验。

  1. AT+ICF=?
    查询支持的设置
  2. AT+ICF?
    查看当前设置
  3. AT+ICF=[,[]]
    设置

    AT+IPR 设置波特率

我前面关于串口通信的文章有提到过波特率,具体就不在解释了
AT指令集解析 - 图15

AT指令集解析 - 图16

五. 状态控制命令

AT+CPAS 移动设备活动状态

  1. AT+CPAS=?
    查看支持的状态
  2. AT+CPAS
    TA 返回 ME 的活动状态


0 —— 准备
3 —— 响
4 —— 正在通话或保持通话
AT指令集解析 - 图17

AT指令集解析 - 图18

AT+CLCC 是列出当前呼叫列表

更多状态控制命令请参考 ET20 的 dataeet,后面会给出下载地址。

六. EC20 4G 模块 SIM 卡相关命令

AT+CIMI 获取国际移动用户识别码

AT指令集解析 - 图19

AT+CPIN 查询 SIM 卡状态

  1. AT+CPIN?
    回复 +CPIN: ``
  2. AT+CPIN=[,]
    TA 存储密码,例如(U)SIM PIN,(U)SIM PUK 等,在操作之前这是必需的。 如果 PIN 码是输入两次,TA 将自动重复 PIN。 如果没有 PIN 请求待处理,未执行任何操作且发生了错误消息 + CME ERROR 返回给 TE。
    如果所需的 PIN 是(U)SIM PUK 或(U)SIM PUK2,则第二针是必需的。 第二个销钉用于更换(U)SIM 中的旧针脚。

``
READY MT —— 不需要任何密码
SIM PIN MT —— 正在等待提供(U)SIM PIN
SIM PUK MT —— 正在等待(U)SIM PUK
SIM PIN2 MT —— 正在等待提供(U)SIM PIN2
SIM PUK2 MT —— 正在等待(U)SIM PUK2 被给予
PH-NET PIN MT —— 正在等待提供网络个性化密码
PH-NET PUK MT —— 正在等待提供网络个性化解锁密码
PH-NETSUB PIN MT —— 正在等待提供网络子集个性化密码
PH-NETSUB PUK MT —— 正在等待提供网络子集个性化解锁密码
PH-SP PIN MT —— 正在等待提供服务提供商的个性化密码
PH-SP PUK MT —— 正在等待提供服务提供商个性化解锁密码
PH-CORP PIN MT —— 正在等待提供公司个性化密码
PH-CORP PUK MT —— 正在等待公司个性化解锁密码


字符串类型。 密码。 如果请求的密码是 PUK,例如(U)SIM PUK1,
PH-FSIM PUK 或其他密码,然后必须在后跟。

字符串类型。 如果请求的代码是 PUK,则需要新密码

AT指令集解析 - 图20

AT+CLCK 设备锁

详细用法见 datasheet 第 61 页。

AT+CPWD 修改密码

AT指令集解析 - 图21

AT+CCID , AT+QCCID 显示 SIM 的 CCID 号

AT指令集解析 - 图22

因为其他命令基本上用不上,所以就不一一列举

七. 网络服务命令

AT+COPS 操作员选择

该命令可用于查看运营商的 FDD-LTE 网络,可用于查看 SIM 的注册情况

  1. AT+COPS=?
    返回支持的 stat,运营商的长名称,短名称,FDD-LTE 以及 Act
  2. AT+COPS?
    返回当前 SIM 卡的相关信息
    格式如下:
    +COPS: [,[,][,]]
    下面来看这些参数都对应了什么内容:


0 —— 未知
1 —— 位操作员可用
2 —— 当前操作员
3 —— 禁止操作员


符合格式的运算符


0 —— 自动模式。 字段被忽略
1 —— 手动操作员选择。 字段应存在,并且可选
2 —— 手动从网络注销
3 —— 仅设置(对于 AT + COPS?Read Command),不要尝试注册 / 取消注册(和字段将被忽略)。 该值在读取命令的响应中无效。
4 —— 手动 / 自动选择。 将显示 | 字段。 如果手动选择失败,进入自动模式( = 0)


0 —— 长格式字母数字,最长 16 个字符
1 —— 短格式字母数字
2 —— 数字。 GSM 位置区域识别号码


选择了访问技术。 值 3、4、5、6 仅在读取响应中出现
MS 处于数据服务状态且不适用于 AT + COPS 写入时的命令
0 —— GSM
2 —— UTRAN
3 —— GSM W/EGPRS
4 —— UTRAN W/HSDPA
5 —— UTRAN W/HSUPA
6 —— UTRAN W/HSDPA and HSUPA
7 —— E-UTRAN
100 ——CDMA
AT指令集解析 - 图23

AT+CREG 网络注册状态

该命令返回两个参数
+CREG: ,


0 禁 —— 用未经请求的网络注册结果代码
1 —— 启用未经请求的网络注册结果代码 + CREG:
2 —— 启用带有位置信息的网络注册未经请求的结果代码


0 —— 未注册。 我目前不在搜索新的运营商来注册
1 —— 已注册,本地网络
2 —— 未注册,但 ME 当前正在搜索新的运营商以注册
3 —— 注册被拒绝
4 —— 未知
5 —— 已注册,漫游网络(外地网络)
stat 为 1,5 SIM 都可用。
AT指令集解析 - 图24

AT+CSQ 查看信号强度

AT指令集解析 - 图25

第一个返回值为信号强度,9 ~ 31 以内越高则信号越强,第二个参数为通道误码率(百分比),99 表示位置,如果返回 99,99 则表示 SIM 不可用,应该检查下天线。
插 EC20 4G 模块的天线时,要注意天线的位置,一个是 main 口,一个是 div 口,main 主要负责就收发送,而 div 口只能接受,应将天线插到 main 口。

参考资料

  • EC20 AT指令 说明

Quectel_EC20_R2.1_AT_Commands_Manual_V1.0.pdf