AT指令介绍及用法
AT 指令
AT 即 Attention,AT 指令集是从终端设备(Terminal Equipment,TE)或数据终端设备(Data Te
rminal Equipment,DTE)向终端适配器(Terminal Adapter, TA)或数据电路终端设备(Data Cir
cuit Terminal Equipment,DCE)发送的。通过 TA,TE 发送 AT 指令来控制移动台(Mobile St
ation,MS)的功能,与 GSM 网络业务进行交互。用户可以通过 AT 指令进行呼叫、短信、电
话本、数据业务、传真等方面的控制。90 年代初,AT 指令仅被用于 Modem 操作。没有控
制移动电话文本消息的先例,只开发了一种叫 SMS BlockMode 的协议,通过终端设备(TE)
或电脑来完全控制
SMS。几年后,主要的移动电话生产厂商诺基亚、爱立信、摩托罗拉和 HP 共同为 GSM 研
制了一整套 AT 指令,其中就包括对 SMS 的控制。AT 指令在此基础上演化并被加入 GSM 0
7.05
以及现在的 GSM07.07 标准,完全标准化和比较健全的标准。如:对 SMS 的控
制共有 3 种实现途径:最初的 Block Mode;基于 AT 指令的 Text Mode;基于 AT 指令的 P
DU Mode。到现在 PDU Mode 已经取代 BlockMode,后者逐渐淡出。GSM 模块与计算机之
间的通信协议是一些 AT 指令
集,AT 指令是以 AT 作首, 字符结束的字符串,AT 指令的响应数据包在 中。每个指令执
行成功与否都有相应的返回。其他的一些非预期的信息(如有人拨号进来、线路无信号等),
模块将有对应的一些信息提示,接收端可做相应的处理。
示例:CDMA modem DTE
AT< CR>
< LF> OK < LF>
ATTEST< CR>
< CR> ERROR < LF>
如果 AT 指令执行成功,“OK”字符串返回;
如果 AT 指令语法错误或 AT 指令执行失败,
“ERROR”字符串返回。
1.相关的 GSM AT 指令
与 SMS 有关的 GSM AT 指令(from GSM07.05)如表 1 所示:
表 1 相关的 GSM AT 指令
AT 指令
功 能
AT+CMGC
Send an SMS command(发出一条短消息命令)
AT+CMGD
Delete SMS message(删除 SIM 卡内存的短消息)
AT+CMGF
Select SMS message formate(选择短消息信息
:0-PDU;1-文本)
AT+CMGL
List SMS message from preferred store(列出 SIM 卡中的短消息 PDU/text: 0/“REC UNREAD”-
未读,1/“REC READ”-已读,2/“STO UNSENT”-待发,3/“STO SENT”-已发,4/“ALL”-全部
的)
AT+CMGR
Read SMS message(读短消息)
AT+CMGS
Send SMS message(发送短消息)
AT+CMGW
Write SMS message to memory(向 SIM 内存中写入待发的短消息)
AT+CMSS
Send SMS message from storage(从 SIN|M 内存中发送短消息)
AT+CNMI
New SMS message indications(显示新收到的短消息)
AT+CPMS
Preferred SMS message storage(选择短消息内存)
AT+CSCA
SMS service center address(短消息中心地址)
AT+CSCB
Select cell broadcast messages(选择蜂窝广播消息)
AT+CSMP
Set SMS text mode parameters(设置短消息文本模式参数)
AT+CSMS
Select Message Service(选择短消息服务)
对短消息的控制共有三种模式:
Block Mode
基于 AT 命令的 PDU Mode
基于 AT 命令的 Text Mode
使用 Block 模式需要手机生产厂家提供驱动支持,目前,PDU Mode 已取代 Block Mode, Tex
t Mode 比较简单,本文重点介绍模式 PDU Mode,以西门子公司的产品 TC35T 为例。
2.计算机与 TC35T 的通信
(1)RS232 串口连接
由于 TC35T 自带 RS232 串口线,故只需将其连接到计算机串口即可。打开超级终端,选择
相应的串口,将端口参数设置为:速率—4800、奇偶校验位—无、数据位—8、停止位—1、
流量控制—硬件。
(2)连接测试
输入“AT”然后回车,屏幕上返回“OK”表明计算机与 TC35T 已连接成功,TC35T 能够正常工
作。这时就可以测试各类 AT 命令。
当测试命令“AT+CMGS=?”时,如果返回“OK”标明 TC35T 支持该指令。该指令的完整语法
如下:
如果此时 TC35T 处于 PDU Mode(即“AT+CMGF?”返回“0”)
AT+CMGS=PDU is given<^Z/ESC>
如果短消息发送成功,则返回“OK”,并显示信息号:
+CMGS: [,]
如果短消息发送失败,则返回如下信息号:
+CMS ERROR:
如果此时 TC35T 处于 Text Mode(即“AT+CMGF?”返回“1”)
AT+CMGS=[,toda]text is entered<^Z/ESC>
如果短消息发送成功,则返回“OK”,并显示信息号:
+CMGS: [,]
如果短消息发送失败,则返回如下信息号:
+CMS ERROR:
另外,由于使用的是 TC35T,当有新的短消息到来时,需要 TC35T 产生提示,使用指令“A
T+CNMI”。该指令的完整语法如下:
AT+CNMI=[][,][,][,][,]
如果有新的短消息来到,则 TC35T 将自动返回下列提示:
+CMTI: “SM”,
此时读出,然后用“AT+CMGR”指令即可读出短消息内容。
3.PDU 数据格式
:
例如,我们要将字符“Hi”字符发送到目的地“13677328099”
PDU 字符串为:
08 91 683108701305F0 11 00 0D 91 3176378290F9 00 00 00 02 C834
⑴08—短信息中心地址长度。指(91)+(683108701305F0)的长度。
⑵91—短信息中心号码类型。91 是 TON/NPI 遵守 International/E.164 标准,指在号码前需加
„+‟号;此外还有其它数值,但 91 最常用。
91—10010001
BIT No.
7
6
5
4
3
2
1
0
Name
1
数值类型
号码鉴别
数值类型(Type of Number):000—未知,001—国际,010—国内,111—留作扩展;
号码鉴别(Numbering plan identification):0000—未知,0001—ISDN/电话号码(E.164/E.163),
1111—留作扩展;
⑶683108701305F0—短信息中心号码。由于位置上略有处理,实际号码应为:86138007315
00(字母 F 是指长度减 1)。这需要根据不同的地域作相应的修改。
⑴、⑵、⑶通称短消息中心地址(Address of the SMSC)。
⑷11—文件头字节。
11&h=00010001&b
BIT No.
7
6
5
4
3
2
1
0
Name
TP-RP
TP-UDHI
TP-SPR
TP-VFP
TP-RD
TP-MTI
value
0
0
0
1
0
0
0
1
应答路径—TP-RP(TP-Reply-Path):0—不设置; 1—设置
用户数据头标识—TP-UDHL(TP-User-Data-Header-Indicator):0—不含任何头信息; 1—含
头信息
状态
要求—TP-SPR(TP-Status-Report-Request):0—需要报告; 1—不需要报告
有效期格式—TP-VPF(TP-Validity-Period-Format):00—不提供(Not present); 10—整型
(标准);01—预留; 11—提供 8 位字节的一半(Semi-Octet Represented)
拒绝复制—TP-RD(TP-Reject-Duplicates):0—接受复制; 1—拒绝复制
信息类型提示—TP-MTI(TP-Message-Type-Indicator):00—读出(Deliver); 01—提交(S
ubmit)
⑸00—信息类型(TP-Message-Reference)
⑹0B—被叫号码长度。
⑺91—被叫号码类型(同⑵)。
⑻3176378290F9—被叫号码,经过了位移处理,实际号码为“13677328099”。
⑹、⑺、⑻通称目的地址(TP-Destination-Address)。
⑼00—协议标识 TP-PID(TP-Protocol-Identifier)
BIT No.
7
6
5
4
3
2
1
0
Bit No.7 与 Bit No.6: 00—如下面定义的分配 Bit No.0—Bit No.5;01—参见 GSM03.40 协议
标识完全定义;10—预留;11—为服务中心(SC)特殊用途分配 Bit No.0—Bit No.5。
一般将这两位置为 00。
Bit No.5:0—不使用远程网络,只是短消息设备之间的协议;1—使用远程网络。
Bit No.0—Bits No.4:00000—隐含;00001—电传;00010—group 3 telefax;00100—语音;0
0101—欧洲无线信息系统(ERMES);00110—国内系统;10001—任何基于 X.400 的公用
信息处理系统;10010—Email。
⑽00—数据编码方案 TP-DCS(TP-Data-Coding-Scheme)
BIT No.
7
6
5
4
3
2
1
0
Bit No.7 与 Bit No.6 :一般设置为 00;Bit No.5:0—文本未压缩,1—文本用 GSM 标准压缩算
法压缩;Bit No.4:0—表示 Bit No.1、Bit No.0 为保留位,不含信息类型信息,1—表示 Bit N
o.1、Bit No.0 含有信息类型信息;Bit No.3 与 Bit No.2:00—默认的字母表,01—8bit,10—
USC2(16bit),11—预留;Bit No.1 与 Bit No.0:00—Class 0,01—Class 1,10—Class 2(S
IM 卡特定信息),11—Class 3。
⑾00—有效期 TP-VP(TP-Valid-Period)
VP value(&h)
相应的有效期
00 to 8F
(VP+1)*5 分钟
90 to A7
12 小时+(VP-143)*30 分钟
A8 to C4
(VP-166)*1 天
C5 to FF
(VP-192)*1 周
⑿02—用户数据长度 TP-UDL(TP-User-Data-Length)
⒀C834—用户数据 TP-UD(TP-User-Data)“Hi”
4.短消息编码
设需要发送的短消息内容为“Hi”,使用的 GSM 字符集为 7 位编码。首先将字符转换为 7 位
的二进制,然后,将后面字符的位调用到前面,补齐前面的差别。例如:H 翻译成 1001000,
i 翻译成 1101001,显然 H 的二进制编码不足八位,那么就将 i 的最后一位补足到 H 的前面。
那么就成了 11001000(C8),i 剩下六位 110100,前面再补两个 0,变成 00110100(34),
于是“Hi”就变成了两个八进制数 C8 34。
5.短消息的发送与接收案例
鉴于 TC35(T)支持 TEXT 格式,我们在试验中主要测试该格式。
(1)设置短消息中心
AT+CSCA="+8613800731500"(短消息中心);
(2)设置短消息发送格式
AT+CMGF=1 (1-TEXT; 0-PDU);
(3)发送短消息(短消息内容为“test”)
AT+CMGS="13508485560"(目的地址)
> test ^z ;
(4)设置短消息到达自动提示: 设置短消息到达提示当短消息被接收,将获取指令: +CMT
I:"SM",INDEX(信息存储位置)
AT+CNMI=1,1,0,0,1();
(5)获取短消息内容(Once more),假设 INDEX=8。
AT+CMGR=8
返回信息如下:
+CMGR: "REC UNREAD","+8613508485560",,"01/07/16,15:37:28+32",Once more
6.注意事项
(1)短消息中心一般不会改动,如果短消息中心号码改动,在使用“AT+CSCA”语句时,记
住 TC35 要重新启动,否则 TC35 不能正常工作(TC35T 不存在此问题)。
(2)某些 SIM 卡带有密码,启动时需要输入密码。
AT 指令速查表
一、一般命令
AT+CGMI
给出模块厂商的标识。
AT+CGMM
获得模块标识。这个命令用来得到支持的频带(GSM900,DCS1800 或 PCS1900)。当模块
有多频带时,回应可能是不同频带的结合。
AT+CGMR
获得改订的软件版本。
AT+CGSN
获得 GSM 模块的 IMEI(国际移动设备标识)序列号。
AT+CSCS
选择 TE 特征设定。这个命令报告 TE 用的是哪个状态设定上的 ME。ME 于是可以转换每一
个输入的或显示的字母。这个是用来发送、读取或者撰写短信。
AT+WPCS
设定电话簿状态。这个特殊的命令报告通过 TE 电话簿所用的状态的 ME。ME 于是可以转
换每一个输入的或者显示的字符串字母。这个用来读或者写电话簿的入口。
AT+CIMI
获得 IMSI。这命令用来读取或者识别 SIM 卡的 IMSI(国际移动签署者标识)。在读取 IM
SI 之前应该先输入 PIN(如果需要 PIN 的话)。
AT+CCID
获得 SIM 卡的标识。这个命令使模块读取 SIM 卡上的 EF-CCID 文件。
AT+GCAP
获得能力表。(支持的功能)
A/
重复上次命令。只有 A/命令不能重复。这命令重复前一个执行的命令。
AT+CPOF
关机。这个特殊的命令停止 GSM 软件堆栈和硬件层。命令 AT+CFUN=0 的功能与+CPOF
相同。
AT+CFUN
设定电话机能。这个命令选择移动站点的机能水平。
AT+CPAS
返回移动设备的活动状态。
AT+CMEE
报告移动设备的错误。这个命令决定允许或不允许用结果码“+CMEERROR:”或者“+CMSER
ROR:”代替简单的“ERROR”。
AT+CKPD
小键盘控制。仿真 ME 小键盘执行命令。
AT+CCLK
时钟管理。这个命令用来设置或者获得 ME 真实时钟的当前日期和时间。
AT+CALA
警报管理。这个命令用来设定在 ME 中的警报日期/时间。(闹铃)
AT+CRMP
铃声旋律播放。这个命令在模块的蜂鸣器上播放一段旋律。有两种旋律可用:到来语音、数
据或传真呼叫旋律和到来短信声音。
AT+CRSL
设定或获得到来的电话铃声的声音级别。
二、呼叫控制命令
ATD
拨号命令。这个命令用来设置通话、数据或传真呼叫。
ATH
挂机命令。
ATA
接电话。
AT+CEER
扩展错误报告。这个命令给出当上一次通话设置失败后中断通话的原因。
AT+VTD
给用户提供应用 GSM 网络发送 DTMF(双音多频)双音频。这个命令用来定义双音频的长
度(默认值是 300 毫秒)。
AT+VTS
给用户提供应用 GSM 网络发送 DTMF 双音频。这个命令允许传送双音频。
ATDL
重拨上次电话号码。
AT%Dn
数据终端就绪(DTR)时自动拨号。
ATS0
自动应答。
AT+CICB
来电信差。
AT+CSNS
单一编号方案。
AT+VGR
AT+VGT
增益控制。这个命令应用于调节喇叭的接收增益和麦克风的传输增益。
AT+CMUT
麦克风静音控制。
AT+SPEAKER
喇叭/麦克风选择。这个特殊命令用来选择喇叭和麦克风。
AT+ECHO
回音取消。
AT+SIDET
侧音修正。
AT+VIP
初始化声音参数。
AT+DUI
用附加的用户信息拨号。
AT+HUI
用附加的用户信息挂机。
AT+RUI
接收附加用户信息。
三、网络服务命令
AT+CSQ
信号质量。
AT+COPS
服务商选择。
AT+CREG
网络注册。获得手机的注册状态。
AT+WOPN
读取操作员名字。
AT+CPOL
优先操作员列表。
四、安全命令
AT+CPIN
输入 PIN。
AT+CPIN2
输入 PIN2。
AT+CPINC
PIN 的剩余的尝试号码。
AT+CLCK
设备锁。
AT+CPWD
改变密码。
五、电话簿命令
AT+CPBS
选择电话簿记忆存储。
AT+CPBR
读取电话簿表目。
AT+CPBF
查找电话簿表目。
AT+CPBW
写电话簿表目。
AT+CPBP
电话簿电话查询。
AT+CPBN
电话簿移动动作。这个特殊命令使电话簿中的条目前移或后移(按字母顺序)
AT+CNUM
签署者号码。
AT+WAIP
防止在下一次重起时初始化所有的电话簿。
AT+WDCP
删除呼叫电话号码。
AT+CSVM
设置语音邮件号码。
六、短消息命令
AT+CSMS
选择消息服务。支持的服务有 GSM-MO、SMS-MT、SMS-CB。
AT+CNMA
新信息确认应答。
AT+CPMS
优先信息存储。这个命令定义用来读写信息的存储区域。
AT+CMGF
优先信息格式。执行格式有 TEXT 方式和 PDU 方式。
AT+CSAS
保存设置。保存+CSAS 和+CSMP 的参数。
AT+CRES
恢复设置。
AT+CSDH
显示文本方式的参数。
AT+CNMI
新信息指示。这个命令选择如何从网络上接收短信息。
AT+CMGR
读短信。信息从+CPMS 命令设定的存储器读取。
AT+CMGL
列出存储的信息。
AT+CMGS
发送信息。
AT+CMGW
写短信息并存储。
AT+CMSS
从存储器中发送信息。
AT+CSMP
设置文本模式的参数。
AT+CMGD
删除短信息。删除一个或多个短信息。
AT+CSCA
短信服务中心地址。
AT+CSCB
选择单元广播信息类型。
AT+WCBM
单元广播信息标识。
AT+WMSC
信息状态(是否读过、是否发送等等)修正。
AT+WMGO
信息覆盖写入。
AT+WUSS
不改变 SMS 状态。在执行+CMGR 或+CMGL 后仍保持 UNREAD。
七、追加服务命令
AT+CCFC
呼叫继续。
AT+CLCK
呼叫禁止。
AT+CPWD
改变追加服务密码。
AT+CCWA
呼叫等待。
AT+CLIR
呼叫线确认限制。
AT+CLIP
呼叫线确认陈述。
AT+COLP
联络线确认陈述。
AT+CAOC
费用报告。
AT+CACM
累计呼叫计量。
AT+CAMM
累计呼叫计量最大值。
AT+CPUC
单价和货币表。
AT+CHLD
呼叫相关的追加服务。
AT+CLCC
列出当前的呼叫。
AT+CSSN
追加服务通知。
AT+CUSD
无组织的追加服务数据。
AT+CCUG
关闭的用户组。