AirM2M 无线模块AT命令手册

Similar documents
USSD DTMF 14,400 bits/s group3 class 1&2 GPRS for 900/1800/1900 AT 44pin - - 3V SIM SIM RS-232 : - AT (GSM and 07.05) ,20

XXX无线通讯模块

EC51/52 GSM /GPRS MODEN

untitled

Microsoft Word - AT COMMANDS.doc

1 AT 命令概述 文档目的 惯例和术语缩写 AT 命令语法 基本命令 查询制造商名称 :AT+CGMI 查询模块型号 :AT+CGMM 查询模块版本信息 :AT+CGMR...1

软件子系统设计说明

西门子MC53i和华为GTM900A模块对比报告

<4D F736F F D204154C3FCC1EED3C3BBA7CAD6B2E12E646F63>

F515_CS_Book.book

KL DSC DEMO 使用说明

附件一、工作绩效考量表

Microsoft Word - All_Command Code_CH_.doc

GSM无线通信模块

M6312 AT 命令用户使用手册

宏电文档

Chapter #

PS PS GMM SM.zte.com.

untitled

X713_CS_Book.book

USER

2 response personnel to speed up the rescue operations after various natural or man-made disasters. Keywords: SMS, Database, Disaster

USER

IP505SM_manual_cn.doc

WH-GM35-MQTT版-AT配置命令手册V1.01

目 录(目录名)

工程师培训

前言

Q / 24

目录 1 IPv6 快速转发 IPv6 快速转发配置命令 display ipv6 fast-forwarding aging-time display ipv6 fast-forwarding cache ipv6 fas


目录 1 IPv6 快速转发 IPv6 快速转发配置命令 display ipv6 fast-forwarding aging-time display ipv6 fast-forwarding cache ipv6 fas

LZ510B使用说明

D488Chinese_S.book

工程师培训

EE Lecture 11 (Wireless Communications Systems)

錄...1 說...2 說 說...5 六 率 POST PAY PREPAY DEPOSIT 更

E68 E68C 中性说明书 A6版

SL2511 SR Plus 操作手冊_單面.doc

PL600 IPPBX 用户手册_V2.0_.doc

沒有投影片標題

NA-001/F-V2縲€繧ス繝輔ヨ繧ヲ繧ァ繧「讖溯・莉墓ァ俶嶌

目录 1 IPv6 PIM Snooping 配置命令 IPv6 PIM Snooping 配置命令 display pim-snooping ipv6 neighbor display pim-snooping ipv6 routing-ta

IP Audio Conference Phone 2033 User Guide

GPRS模块AT指令手册

User ID 150 Password - User ID 150 Password Mon- Cam-- Invalid Terminal Mode No User Terminal Mode No User Mon- Cam-- 2

TC35短信发送程序设计

第3章 计算机网络体系结构

NeoGate_TG_Series_UserManual_en

IEC 传输帧格式

PowerPoint Presentation

Q2358、Q2438 CDMA模块AT指令测试

Microsoft PowerPoint - 数据通信-ch1.ppt

联想天工800R路由器用户手册 V2.0

目 录 目 录 1. 安 装 和 快 速 入 门 附 件 1.1 随 机 附 件 附 件 信 息... 3 连 接 和 设 定 1.3 连 接 记 录 纸... 4 快 速 入 门 1.5 发 送 传 真 / 复 印 接 收 传 真

X513_Book.book

Bus Hound 5

目 彔 1. 准 备 工 作 登 彔 设 置 功 能 说 明 实 时 监 控 基 本 控 制 功 能 设 置 画 质 调 节 彔 像 与 抓 拍

ebook71-13

WG-8010/8020 DTU 收发短信 AT 指令说明 WG-8010/8020 DTU 支持标准 GSM07.07 AT 指令集和扩展的 COMWAY 扩展 AT 指令 一 发送短信的指令 DTU 支持 GSM07.07 基本 AT 指令集和 COMWAY 扩展 AT 指令发送短信 基本 AT

QL1880new2.PDF

展讯平台软件架构介绍 [只读]

11N 无线宽带路由器

经华名家讲堂

AL-M200 Series

X523_Book.book

Microsoft Word - YDB Vehicle Telematics Service Requirement and General Framework

第 1 章 概 述 1.1 计 算 机 网 络 在 信 息 时 代 中 的 作 用 1.2 计 算 机 网 络 的 发 展 过 程 *1.2.1 分 组 交 换 的 产 生 *1.2.2 因 特 网 时 代 *1.2.3 关 于 因 特 网 的 标 准 化 工 作 计 算 机 网 络 在

计算机网络

#FT66/68CN(01~07)

9 Internet 10 Internet

WLAN 2

标题

C3_ppt.PDF

OSI OSI 15% 20% OSI OSI ISO International Standard Organization 1984 OSI Open-data System Interface Reference Model OSI OSI OSI OSI ISO Prototype Prot


epub 61-2

ebook140-8

km63-1

中文朗科AirTrackTM T600 迷你无线路由器用户手册.doc

說 說 留 說 參 了 不 弄 弄 不 落 不 異 列 切 TOA 連 異 異 落 露 2

飞鱼星多WAN防火墙路由器用户手册

ebook106-17

84

ebook140-11

目 录(目录名)

Microsoft Word - MTK平台生产软件使用说明.doc

coverage2.ppt

SC700022SS1_SC-GL4_AT_Instruction_Manual_v1.01_ doc

<4D F736F F D20D5E3BDADD5FDD4AAD6C7BBDBBFC6BCBCB9C9B7DDD3D0CFDEB9ABCBBECAD7B4CEB9ABBFAAB7A2D0D0B9C9C6B1B2A2D4DAB4B4D2B5B0E5C9CFCAD0D5D0B9C9CBB5C3F7CAE9A3A8C9EAB1A8B8E C4EA36D4C23139C8D5B1A8CBCDA3A92E646F63>

技 术 文 件

AN1011CN_MiCOKit_APP控制开发实例(基于APICloud)

第 11 章 互聯網技術 11.1 互聯 網 和 萬 維 網 的 發 展 歷 史 A. 互聯網的發展 互聯網是由 ARPANET 開 始發展的 1969 年 美國國防部高級研究計劃署 (ARPA) 把部分軍事研究所和大 的電腦連接起來 建造了㆒個實驗性的電腦網絡 稱為 ARPANET 並 列 的功能

( CIP) /,. - :, ISBN TP312 CIP ( 2004 ) : ( ) : : : : /16 : 21 : 347 : : : I

FPGAs in Next Generation Wireless Networks WPChinese

R3105+ ADSL

EZ-4206/4216/4304 操作手冊\(繁\)

(Load Project) (Save Project) (OffLine Mode) (Help) Intel Hex Motor

MASQUERADE # iptables -t nat -A POSTROUTING -s / o eth0 -j # sysctl net.ipv4.ip_forward=1 # iptables -P FORWARD DROP #

untitled

Transcription:

AirM2M Version: 3.92 适用模块型号 : GPRS 模块 GPRS+GPS 模块 Release Date: 2019-08-08

目录... 1 1 AT 命令概述... 9 1.1 文档目的...9 1.2 惯例和术语缩写...9 1.3 AT 命令语法...10 2 常用 AT 命令... 12 2.1 查询制造商名称 :AT+CGMI... 12 2.2 查询模块型号 :AT+CGMM...12 2.3 查询模块版本信息 :AT+CGMR... 13 2.4 查询 IMEI 号 :AT+CGSN...13 2.5 查询 SIM 卡 ICCID 号码 :AT+CCID/ICCID... 14 2.6 查询 IMSI:AT+CIMI... 14 2.7 查询产品信息 :ATI... 15 2.8 查询模块 FIRMWARE 版本 :AT+VER... 15 2.9 查询各种信息 :AT+EGMR...16 2.10 重复上一条命令 : A/...17 2.11 私有 AT 指令 :AT+AMAT... 17 2.12 写 SN 号命令 :AT+WISN...18 2.13 开机初始化信息...18 3 呼叫控制命令... 20 3.1 选择呼叫地址类型 :AT+CSTA...20 3.2 发起呼叫 :ATD...20 3.3 重拨上次呼叫的号码 :ATDL... 21 3.4 从数据模式或 PPP 在线模式切换至命令模式 :+++... 22 3.5 从命令模式切换至数据模式 :ATO...23 3.6 接听来电 :ATA... 24 3.7 挂断通话 :AT+CHUP... 24 3.8 列出所有当前的呼叫 :AT+CLCC...24 3.9 拒绝接听呼叫 :AT+GSMBUSY... 26 4 配置命令... 27 4.1 选择 TE 字符集 :AT+CSCS... 27 4.2 模块功能模式 :AT+CFUN... 28 4.3 保存用户当前的配置 :AT&W...28 4.4 恢复当前参数为用户的自定义配置 :ATZ...30 4.5 显示当前配置 :AT&V... 31 4.6 恢复所有参数为出厂配置 :AT&F... 31 4.7 设置命令回显模式 :ATE... 32 4.8 设置结果码抑制模式 :ATQ...32 4.9 设置 TA 响应内容的格式 :ATV...33 第 2 页共 259 页 AT 命令概述

4.10 设置 CONNECT 结果码格式和监测呼叫进程 :ATX...34 4.11 设置自动应答前振铃次数 :ATS0... 35 4.12 设置指令行终止符 :ATS3... 35 4.13 设置指令行换行字符 :ATS4... 36 4.14 设置命令行编辑字符 :ATS5... 36 4.15 设置盲拨之前的停顿时间 :ATS6... 37 4.16 等待拨号连接完成的时间 :ATS7... 37 4.17 设置 CDC 功能模式 :AT&C... 38 4.18 设置 DTR 功能模式 :AT&D... 38 4.19 实时时钟 :AT+CCLK...39 4.20 设备错误 :AT+CMEE... 40 4.21 错误码描述 :+CME ERROR:<err>...40 4.22 扩展错误报告 :AT+CEER...43 5 网络服务相关命令... 45 5.1 查询信号质量 :AT+CSQ...45 5.2 网络注册信息 :AT+CREG... 46 5.3 查询运营商 :AT+COPS... 47 5.4 自动时区更新 :AT+CTZU...49 5.5 时区自动上报 :AT+CTZR...50 5.6 获取当地时间 :AT+CLTS...50 5.7 工程模式 1:AT+CENG...52 5.8 网络参数查询 :AT%NTPM... 56 5.9 获取基站定位 (LBS) 位置和日期时间 :AT+AMGSMLOC...57 5.10 伪基站识别 :AT+JDC...58 6 NTP 相关命令... 59 6.1 设置 GPRS 承载场景 ID:AT+CNTPCID... 59 6.2 同步网络时间 :AT+CNTP...59 7 安全控制命令... 62 7.1 输入 PIN 码 :AT+CPIN... 62 7.2 设备锁定 :AT+CLCK...63 7.3 修改密码 :AT+CPWD... 64 8 设备 / 串口控制命令... 66 8.1 手机活动状态 :AT+CPAS...66 8.2 关机 :AT+CPOWD... 67 8.3 查询电池充电状态和电量 :AT+CBC...67 8.4 网络灯闪烁的时间间隔 :AT+SLEDS...67 8.5 PWM 命令 :AT+SPWM... 68 8.6 设置休眠唤醒 1:AT+CSCLK...69 8.7 设置休眠唤醒 2:AT+WAKETIM... 71 8.8 开启和关闭 SIM 卡在位硬件检测 :AT+CSDT... 72 8.9 SIM 卡在位软件检测参数设置 :AT+AMSDTC... 72 8.10 设置 TE-TA 波特率 :AT+IPR... 73 8.11 设置 TE-TA 帧格式 :AT+ICF... 74 第 3 页共 259 页 AT 命令概述

8.12 TE-TA 本地流量控制 :AT+IFC... 75 8.13 多路复用 :AT+CMUX...76 9 电话本命令... 78 9.1 选择电话本存储类型 :AT+CPBS...78 9.2 查找电话本记录 :AT+CPBF... 79 9.3 读取电话本记录 :AT+CPBR...80 9.4 写电话本记录 :AT+CPBW...81 9.5 本机号码 :AT+CNUM... 83 10 SIM 卡操作命令... 85 10.1 SIM 卡限制访问 :AT+CRSM...85 10.2 通用 SIM 访问 :AT+CSIM... 89 11 短消息命令... 91 11.1 PDU 短信编码格式介绍... 91 11.2 选择短消息服务 :AT+CSMS...93 11.3 短消息优先存储区选择 :AT+CPMS...94 11.4 保存 SMS 设置 :AT+CSAS...95 11.5 恢复 SMS 设置 :AT+CRES...95 11.6 短消息中心地址 :AT+CSCA... 96 11.7 短消息格式 :AT+CMGF...96 11.8 设置短信 TEXT 模式参数 :AT+CSMP...97 11.9 控制 TEXT 模式下短信头信息显示 :AT+CSDH... 99 11.10 新消息指示 :AT+CNMI...100 11.11 新短消息确认 :AT+CNMA... 104 11.12 发送短信 :AT+CMGS... 104 11.13 把消息写入存储器 :AT+CMGW... 107 11.14 从存储器发送短信 :AT+CMSS...109 11.15 短信链路控制命令 :AT+CMMS... 110 11.16 读短信 :AT+CMGR... 110 11.17 列举短消息 :AT+CMGL... 113 11.18 删除短消息 :AT+CMGD... 115 11.19 小区广播短消息类型选择 :AT+CSCB... 116 11.20 短信业务失败结果码 :CMS ERROR:<err>...116 12 附加业务命令... 118 12.1 呼叫转移 :AT+CCFC...118 12.2 呼叫等待 :AT+CCWA... 120 12.3 呼叫保持和多方通话 :AT+CHLD... 121 12.4 设置主叫号码显示 :AT+CLIP... 122 12.5 主叫号码显示限制 :AT+CLIR...123 12.6 被叫号码显示 :AT+COLP...125 12.7 非结构化附加业务 :AT+CUSD...126 12.8 优先运营商列表 :AT+CPOL...127 12.9 查询所有运营商名 :AT+COPN...128 12.10 选择承载业务类型 :AT+CBST...129 第 4 页共 259 页 AT 命令概述

12.11 补充业务通知 :AT+CSSN... 130 13 STK(SIM Application Toolkit) 相关命令... 132 13.1 命令类型通知 (URC):+STC... 132 13.2 获取命令数据 :AT+STGC... 132 13.3 STK 命令回复 :AT+STCR...135 13.4 STK Profile Download:AT+STPD... 138 13.5 STK Event Command:AT+STEV... 138 13.6 STK 主菜单选择命令 :AT+STMS...139 13.7 STK Response Timer:AT+STRT... 139 13.8 STK Play Tone 命令 :AT+STTONE...140 13.9 使用方法举例...140 14 音频相关命令... 144 14.1 静音控制 :AT+CMUT...144 14.2 接收器音量控制 :AT+CLVL...144 14.3 麦克风增益调节 :AT+CMIC...145 14.4 是否配备免提 :AT+CHF... 145 14.5 音频通道切换 1:AT+CHFA...146 14.6 音频通道切换 2:AT+XDRV... 147 14.7 产生 DTMF 音 :AT+VTS... 147 14.8 DTMF TONE 周期 :AT+VTD... 148 14.9 来电音开关 :AT+CALM... 148 14.10 来电音量级别 :AT+CRSL...149 14.11 播放本地 DTMF 音 :AT+CLDTMF...150 14.12 DTMF 解码开关 :AT+DDET... 151 14.13 TTS(Text To Speech) 功能 :AT+CTTS... 152 14.14 设置 TTS 播放模式 :AT+CTTSPARAM... 153 14.15 录音功能 :AT+CREC...154 14.16 音频回环测试 :AT+AUDLB...156 15 文件操作相关命令... 158 15.1 创建文件 :AT+FSCREATE...158 15.2 写文件 :AT+FSWRITE...158 15.3 读文件内容 :AT+FSREAD... 159 15.4 删除文件 :AT+FSDEL...159 15.5 列出所有已创建文件 / 目录的名字 :AT+FSLS... 159 15.6 重新命名文件 :AT+FSRENAME... 160 15.7 创建目录 :AT+FSMKDIR...160 15.8 删除目录 :AT+FSRMDIR...161 15.9 查询文件系统剩余空间 :AT+FSMEM...161 15.10 使用方法举例...161 16 GPRS 相关命令... 163 16.1 GPRS 移动台类别 :AT+CGCLASS... 163 16.2 GPRS 网络注册状态 :AT+CGREG...163 16.3 GPRS 附着分离 :AT+CGATT... 165 第 5 页共 259 页 AT 命令概述

16.4 GPRS 上下文定义 :AT+CGDCONT...166 16.5 显示 PDP 地址 :AT+CGPADDR... 167 16.6 PDP 上下文激活 :AT+CGACT...168 16.7 进入数据模式 :AT+CGDATA...169 16.8 可接受的最小服务质量简报 :AT+CGQMIN...170 16.9 请求的服务质量简报 :AT+CGQREQ...171 16.10 控制非请求 GPRS 事件上报 :AT+CGEREP...172 16.11 为 MO SMS 选择优先业务模式 :AT+CGSMS...173 17 IP 应用相关命令... 174 17.1 IP 应用设置 :AT+SAPBR...174 18 TCPSSL 相关命令...176 18.1 初始化 TCPSSL 服务 :AT+SSLINIT... 176 18.2 创建 TCPSSL 客户端 :AT+SSLCREATE...176 18.3 创建和配置证书 :AT+SSLCERT... 177 18.4 连接 TCPSSL 服务器 :AT+SSLCONNECT...178 18.5 发送数据到 TCPSSL 服务器 :AT+SSLSEND...179 18.6 接收到 TCPSSL 服务器的数据 :+SSL RECEIVE... 180 18.7 断开连接并且销毁 TCPSSL 客户端 :AT+SSLDESTROY...180 18.8 终止 TCPSSL 服务 :AT+SSLTERM...181 18.9 URC 上报... 181 18.10 TCPSSL 错误码 : ERROR:<err code>...182 18.11 使用方法举例...183 19 HTTP 相关命令...191 19.1 初始化 HTTP 服务 :AT+HTTPINIT...191 19.2 终止 HTTP 任务 :AT+HTTPTERM...191 19.3 设置 HTTP 参数值 :AT+HTTPPARA... 191 19.4 写数据 :AT+HTTPDATA...193 19.5 HTTP 方式激活 :AT+HTTPACTION... 194 19.6 查询 HTTP 服务响应 :AT+HTTPREAD...195 19.7 保存 HTTP 应用上下文 :AT+HTTPSCONT...196 19.8 HTTP 错误码 : ERROR:<err code>...197 19.9 使用方法举例...197 20 FTP 相关命令...200 20.1 设置 FTP 控制端口 :AT+FTPPORT... 200 20.2 设置 FTP 主动或被动模式 :AT+FTPMODE... 200 20.3 设置 FTP 数据传输类型 :AT+FTPTYPE...200 20.4 设置 FTP 输入类型 :AT+FTPPUTOPT...201 20.5 设置 FTP 承载标识 :AT+FTPCID... 201 20.6 设置 FTP 下载续传 :AT+FTPREST... 202 20.7 设置 FTP 服务器地址 :AT+FTPSERV...202 20.8 设置 FTP 用户名称 :AT+FTPUN...203 20.9 设置 FTP 密码 :AT+FTPPW...203 20.10 设置 FTP 下载文件名称 :AT+FTPGETNAME...203 第 6 页共 259 页 AT 命令概述

20.11 设置 FTP 下载文件路径 :AT+FTPGETPATH... 204 20.12 设置 FTP 上传文件名称 :AT+FTPPUTNAME... 204 20.13 设置 FTP 上传文件路径 :AT+FTPPUTPATH...205 20.14 获取远程服务器上文件大小 :AT+FTPSIZE... 205 20.15 下载文件 :AT+FTPGET... 206 20.16 上传文件 :AT+FTPPUT... 207 20.17 保存 FTP 应用上下文 :AT+FTPSCONT...207 20.18 退出当前 FTP 会话 :AT+FTPQUIT...208 20.19 使用方法举例...208 21 MQTT 相关命令...211 21.1 设置 MQTT 相关参数 :AT+MCONFIG... 211 21.2 建立 TCP 连接 :AT+MIPSTART... 211 21.3 客户端向服务器请求会话连接 :AT+MCONNECT...213 21.4 发布消息 :AT+MPUB...213 21.5 订阅主题 :AT+MSUB...214 21.6 取消订阅主题 :AT+MUNSUB...215 21.7 打印收到的所有的订阅消息 :AT+MQTTMSGGET... 215 21.8 设置订阅消息的打印模式 :AT+MQTTMSGSET...216 21.9 MQTT 消息编码格式切换 :AT+MQTTMODE... 217 21.10 关闭 MQTT 连接 :AT+MDISCONNECT... 217 21.11 关闭 TCP 连接 :AT+MIPCLOSE...218 21.12 查询 MQTT 连接状态 :AT+MQTTSTATU...218 21.13 使用方法举例...218 22 GPS 相关命令...221 22.1 打开 GPS:AT+CGNSPWR... 221 22.2 定义 NMEA 语句类型 :AT+CGNSSEQ...221 22.3 读取 GNSS 信息 :AT+CGNSINF... 222 22.4 打开 GNSS URC 上报 :AT+CGNSURC...223 22.5 设置辅助定位 :AT+CGNSAID... 224 22.6 给 GNSS 发送控制命令 :AT+CGNSCMD...224 22.7 将读取到的 UART2(GNSS) 数据发送到 UART1:AT+CGNSTST... 225 22.8 读取 GNSS 版本 :AT+CGNSVER... 225 22.9 使用方法举例...226 23 嵌入式 TCPIP 命令... 227 23.1 启动多 IP 连接 :AT+CIPMUX... 227 23.2 启动任务并设置接入点 APN 用户名 密码:AT+CSTT... 227 23.3 激活移动场景 ( 或发起 GPRS 或 CSD 无线连接 ):AT+CIICR...228 23.4 查询本地 IP 地址 :AT+CIFSR...228 23.5 建立 TCP 连接或注册 UDP 端口号 :AT+CIPSTART... 228 23.6 选择 TCPIP 应用模式 :AT+CIPMODE... 230 23.7 选择非透传数据发送模式 :AT+CIPQSEND...231 23.8 配置透明传输模式 :AT+CIPCCFG... 231 23.9 发送数据 :AT+CIPSEND... 232 第 7 页共 259 页 AT 命令概述

23.10 设置自动发送数据前的定时时间 :AT+CIPATS...234 23.11 设置发送数据时是否显示 > 和 SEND :AT+CIPSPRT...234 23.12 查询当前连接状态 :AT+CIPSTATUS...235 23.13 查询已连接数据传输状态 :AT+CIPACK... 236 23.14 设置为 CSD 或 GPRS 连接模式 :AT+CIPCSGP... 237 23.15 配置 TCP 协议的参数 :AT+TCPUSERPARAM...237 23.16 保存 TCP 协议的参数 :AT+TCPUSERPARAMSCONT...238 23.17 配置域名服务器 DNS:AT+CDNSCFG...239 23.18 域名解析 :AT+CDNSGIP...239 23.19 设置单链接接收数据时是否显示发送方的 IP 地址和端口号 :AT+CIPSRIP...240 23.20 设置单链接接收数据是否显示 IP 头 :AT+CIPHEAD...241 23.21 设置单链接接收数据是否在 IP 头显示传输协议 :AT+CIPSHOWTP... 241 23.22 多链接时接收数据 :+RECEIVE...242 23.23 保存 TCPIP 应用上下文 :AT+CIPSCONT... 242 23.24 手动获得网络数据 :AT+CIPRXGET...243 23.25 关闭 TCP 或 UDP 连接 :AT+CIPCLOSE...246 23.26 关闭移动场景 :AT+CIPSHUT... 246 23.27 将模块配置为服务器 :AT+SERVER... 247 23.28 TCP/UDP 错误码...247 23.29 状态机...248 23.30 模块上电初始化以及 TCPIP 流程...250 23.31 使用方法举例...252 第 8 页共 259 页 AT 命令概述

1 AT 命令概述 1.1 文档目的 本手册详细介绍了 AirM2M GPRS(+GPS) 模块做支持的 AT 命令集 1.2 惯例和术语缩写 本手册中模块可以被称为如下术语 : 1)ME ( 移动设备 ), 它可包括移动终端 (MT), 终端适配器 (TA) 2)MS ( 移动台 ), 它包括移动设备 (ME) 和用户识别模块 (SIM) 3)TA ( 终端设配器 ) 4)DCE ( 数据通信设备 ) 或者传真 DCE ( 传真调制解调器, 传真板 ) 在应用中, 控制器通过串口发送 AT 命令来控制 GSM 模块 串口线对端的控制器可以被称为如下术语 : 1) TE ( 终端设备 ) 或 2) DTE ( 数据终端设备 ) 或者简单地说, 一个嵌入式应用 其他术语缩写 : AT ATtention; this two-character abbreviation is always used to start a command line to be sent from TE to TA BCD Binary Coded Decimal DCE Data Circuit terminating Equipment DTE Data Terminal Equipment IMEI International Mobile station Equipment Identity ICCID Integrate circuit card identity 第 9 页共 259 页 AT 命令概述

IRA ME MT SIM TA TE URC NTP NITZ International Reference Alphabet (ITU-T T.50) Mobile Equipment Mobile Termination Subscriber Identity Module Terminal Adaptor, e.g. a GSM data card (equal to DCE) Terminal Equipment, e.g. a computer (equal to DTE) Unsolicited Reslut Code Network Time Protocol Network Identity and Time Zone 1.3 AT 命令语法 本手册中所有命令行必须以 "AT" 或 "at" 作为开头, 以回车 (<CR>) 作为结尾 响应通常紧随命令之后, 它的样式是 < 回车 >< 新行 >< 响应内容 >< 回车 >< 新行 > (<CR><LF>< 响应内容 ><CR><LF>) 整本手册里, 只有 < 响应内容 > 被自始至终介绍, 而 < 回车 >< 新行 > 被有意省略了 AirM2M 无线模块提供的 AT 命令包含符合 GSM07.05 GSM07.07 和 ITU-T Recommendation V.25ter 的命令, 以及开发的 Air208T 专有命令 所有 AT 命令从语法上可以分为三类 : 基础类, S 参数类 以及 扩展类, 分别介绍如下 : 基础类 AT 命令这类 AT 命令具有 AT<x><n> 或者 AT&<x><n> 格式, 其中 <x> 是命令 ; <n> 可以是一个或者多个参数 例如 : ATE<n>, 该命令用于为 DCE 开关回显功能, 即 DCE 会依据 <n> 值决定是否把接收的字符回显给 DTE <n> 是选配参数, 若没有赋值, 模块将使用默认值 S 参数类 AT 命令 这类 AT 命令格式为 ATS<n>=<m>, 其中 <n> 是 S 寄存器的索引 ; <m> 是赋予的值 <m> 是选配参数, 若没有赋值, 模块将使用默认值 扩展类 AT 命令 一般来讲, 扩展类命令依据功能可以分为以下几种类型 : 命令类型语法说明 测试命令 AT+<X>=? 该命令用于查询设置命令或内部程序设置的参数以及其取值范围 查询命令 AT+<X>? 该命令用于返回参数的当前值 设置命令 AT+<X>=< > 该命令用于设置用户自定义的参数值 执行命令 AT+<X> 该命令用于读取受 GSM 模块内部程序控制的不可变参数 扩展类命令语法 : 在命令行 TA 返回结果中 <> 内为必配参数,[ ] 内为选配参数 ; 在每条命令中, 选配参数和必配参数必须按照规定的顺序排列, 各参数间必须用逗号隔开 ; 字符串参数一般放在双引号中 ; 实际使用中,<>,[ ] 不必输入 一行内同时输入多条 AT 命令的语法 数条 AT 命令可以被放在同一命令行中输入 这样则不需要在每条命令的开头输入 AT 或 at, 仅需要在命令 第 10 页共 259 页 AT 命令概述

行的开头输入 AT 或 at 即可 请注意 : 在扩展类的命令后面, 应增加一个分号作为定界符, 基础类命令以及 S 数命令则不用输入分号 例如 : 参 ATE0&W+CREG=2;&W AT+CFUN=1;+CIMI;+VER 一条命令行最多能接收 556 个字符, 当超出这个极限, 输入的命令都不被执行, 模块返回 ERROR 第 11 页共 259 页 AT 命令概述

2 常用 AT 命令 本章节大部分 AT 命令基于 ITU-T ( 国际电信联盟, 电信部分 ) V.25ter 规范设计 另外有一部分自有命令 2.1 查询制造商名称 :AT+CGMI 本命令适用于 Luat 2G GPRS 和 4G LTE 模块 命令类型语法返回和说明 执行命令 测试命令 AT+CGMI AT+CGMI=? <manufacturer> 参数定义取值对取值的说明 <manufacturer> 生产厂商 ID 取值由模块厂商定义 举例 : 命令 ( )/ 返回 () 实例 解释和说明 AT+CGMI=? 查询模块是否支持 +CGMI 命令 返回 表示支持 ( 若返回 ERROR, 则表示不支持该命令 ) AT+CGMI 查询模块的生产厂商的 ID AirM2M 返回查询结果 2.2 查询模块型号 :AT+CGMM 命令类型语法返回和说明 执行命令 AT+CGMM <model> 参数 定义 取值 对取值的说明 <model> 模块的型号 由厂商而定 举例 : 命令 ( )/ 返回 () 实例 解释和说明 第 12 页共 259 页 常用 AT 命令

AT+CGMM 查询模块型号 GSM Mobile Station 返回查询结果 2.3 查询模块版本信息 :AT+CGMR 命令类型语法返回和说明 执行命令 测试命令 AT+CGMR AT+CGMR=? Revision: <revision> 参数 定义 取值 对取值的说明 <revision> 软件版本标识 举例 : 命令 ( )/ 实例 解释和说明 返回 () AT+CGMR 查询软件版本标识 Revision: 1.0 返回查询结果 2.4 查询 IMEI 号 :AT+CGSN 命令类型语法返回和说明 执行命令 测试命令 AT+CGSN AT+CGSN=? <sn> 参数 定义 取值 对取值的说明 <sn> 产品序列号, 即国际移动设备识别码 IMEI - 15 位数字组成 (International Mobile Equipment Identification) 第 13 页共 259 页 常用 AT 命令

举例 : 命令 ( )/ 返回 () 实例 解释和说明 AT+CGSN 查询产品序列号 359759002514931 返回查询结果 2.5 查询 SIM 卡 ICCID 号码 :AT+CCID/ICCID 命令类型 语法 返回 执行命令 AT+CCID 或 <ICCID> AT+ICCID 测试命令 AT+CCID=? 或 AT+ICCID=? 参数 定义 取值 对取值的说明 <ICCID> 产品 ICCID 号 (Integrated circuit card 一般由 20 位数字组成 identity, 集成电路卡识别码 ) 举例 : 命令 ( )/ 返回 () 实例 解释和说明 AT+CCID 查询 SIM 卡 ICCID 号 89860064091118004014 返回查询结果 2.6 查询 IMSI:AT+CIMI 命令类型 语法 返回和说明 执行命令 AT+CIMI <IMSI> 测试命令 AT+CIMI=? 参数 定义 取值 对取值的说明 <IMSI> 国际移动台用户识别码 ( International Mobile Subscriber Identity) 由 15 位数字组成 举例 : 第 14 页共 259 页 常用 AT 命令

命令 ( )/ 返回 () 实例 解释和说明 AT+CIMI 查询 IMSI 号 460001841426414 返回查询结果 2.7 查询产品信息 :ATI 命令类型 语法 返回 执行命令 ATI <module info> 参数定义取值对取值的说明 <module info> 模块相关信息 ( 厂商, 版本 ) - 由厂商定义 举例 : 命令 ( )/ 返回 () 实例 解释和说明 ATI 查询模块信息 AirM2M_V5295_AT_S 返回查询结果 2.8 查询模块 FIRMWARE 版本 :AT+VER 命令类型 语法 返回 执行命令 AT+VER <firmware ver> 参数定义取值对取值的说明 < firmware ver> 模块内部软件版本 - 由厂商定义 举例 : 命令 ( )/ 返回 () 实例 解释和说明 AT+VER 查询模块信息 SW_V006_AM001 返回查询结果 第 15 页共 259 页 常用 AT 命令

2.9 查询各种信息 :AT+EGMR 命令类型 语法 返回 设置命令 AT+EGMR=<op>,<type>,[<str>] <firmware ver> 测试命令 AT+EGMR=? +EGMR: (<op> 取值范围 ),(<type> 取值范围 ) 参数 定义 取值 对取值的说明 <op> 查询还是设置 0 查询 1 设置 <type> 查询或设置的类型 0 BASEBAND_VERSION, 暂不支持 1 DSP_VERSION, 暂不支持 2 DSP_PATCH_VERSION, 暂不支持 3 SW_VERSION, 暂不支持 4 HW_VERSION, 暂不支持 5 SN 号 7 IMEI 号 8 AUDIO,IMAGE, FONT, STR 资源的版本 9 SVN 号, 暂不支持 <str> 设置的具体内容 字符串型, 用双引号 "" 括住 举例 : 命令 ( )/ 实例 解释和说明 返回 () AT+EGMR=? +EGMR: (0,1),(0-5,7-9) AT+EGMR=0,5 查询 SN 号 +EGMR: "N9iPZvcEg3eQ1Jxt" AT+EGMR=0,7 查询 IMEI 号 +EGMR: "868575021580834" 第 16 页共 259 页 常用 AT 命令

AT+EGMR=0,8 查询 AUDIO,IMAGE, FONT, STR 资源的版本 +AUDIO: "0" +IMAGE: "0" +FONT: "0" +STR: "0" 2.10 重复上一条命令 : A/ 命令类型语法返回和说明 执行命令 A / 响应 : 重复上一条命令, 该命令行无需以终止符作为结尾 举例 : 命令 ( )/ 实例 解释和说明 返回 () AT+CIMI 查询 IMSI 号 460001841426414 返回 IMSI 号 A/ 重复上一条命令, 即 AT+CIMI 460001841426414 返回 IMSI 号 2.11 私有 AT 指令 :AT+AMAT AT+AMAT=21,<sn> 是写 IMEI 号 命令类型语法返回和说明 设置命令 AT+AMAT=21,<sn> 注 : 写 <sn> 的时候要用 号括起来 参数 定义 取值 对取值的说明 <sn> 产品序列号, 即国际移动设备识别码 IMEI - 15 位数字组成 (International Mobile Equipment Identification) 第 17 页共 259 页 常用 AT 命令

举例 : 命令 ( )/ 返回 () 实例 解释和说明 AT+AMAT=21, 359759002514931 写 IMEI 号 写入成功 AT+CGSN 查询模块 IMEI 号 359759002514931 返回查询结果, 与写入的一致 2.12 写 SN 号命令 :AT+WISN AT+WISN 是用来写用户 sn(serial number) 到模块里的 语法 : 命令类型语法返回和说明 Set Command Read Command AT+WISN=<user_sn> AT+WISN? +CME ERROR: <err> <user_sn> 参数定义取值对取值的说明 <user_sn> special SN - defined or provided by customers 举例 : 命令 ( )/ 返回 () 实例 解释和说明 AT+WISN="1234567890" 写客户 SN 号 AT+WISN? 查询客户 SN 号 1234567890 2.13 开机初始化信息 命令类型语法取值范围 URC RDY <fun>: 模块功能模式, 同 AT+CFUN 的 <fun> 0- 最小模式 第 18 页共 259 页 常用 AT 命令

+CFUN: <fun> +CSIMTYPE: <simtype>,<pinopen> +ENCRET: <encr> +CPIN: <sim_status> 1- 正常模式 4- 飞行模式 <simtype>:sim 卡类型 0 - 普通卡 ;1-USIM 卡 <pinopen>:sim 卡是否开启 PIN 码 0 未开启 ;1- 已开启 <encr>: 加密卡校验 0- 加密卡校验失败 1- 加密卡校验成功 <sim_status>:sim 卡状态 READY SIM 在位, 且未开启 PIN 码 SIM PIN SIM 在位, 开启了 PIN 吗 NOT INSERTED 未检测到 SIM 卡 举例 : 开机上报实例解释和说明 RDY 情景 1 +CFUN: 1 没插 SIM 卡 +CPIN: NOT INSERTED RDY +CFUN: 1 情景 2 +CSIMTYPE: 1,0 插了一个 USIM 卡, 检测到 SIM 在位, 且未开启 PIN 码, 加密卡校验失败 ( 或非校验卡 ) +ENCRET: 0 +CPIN: READY RDY 情景 3 +CFUN: 1 +CSIMTYPE: 0,1 检测到一张普通 SIM 卡在位, 且开启了 PIN 码 此时可以用 AT+CPIN= 1234 解码 (PIN 码缺省为 1234, 如果用户另有设置, 请输入正确的 PIN 码 ) +CPIN: SIM PIN 第 19 页共 259 页 常用 AT 命令

3 呼叫控制命令 3.1 选择呼叫地址类型 :AT+CSTA 设置命令根据 GSM 规范, 选择拨号命令 (ATD) 所涉及的号码类型 命令类型 语法 返回和说明 设置命令 AT+CSTA=<type> 查询命令 AT+CSTA? +CSTA: <type> 测试命令 AT+CSTA=? +CSTA: (<type> 取值列表 ) 参数定义取值对取值的说明 <type> 呼叫号码的类型 129 未知类型 (IDSN 格式号码 ) 注 : 下划线表示缺省值, 下同 145 国际号码 (ISDN 格式 ) 161 国内号码 (IDSN 格式号码 ) 177 特殊的网络号码 (ISDN 格式 ) 举例 : 命令 ( )/ 返回 () 实例 解释和说明 AT+CSTA=? 查询该命令所支持的取值范围 +CSTA: (129,145,161,177) 返回查询结果 AT+CSTA? 查询当前取值 +CSTA: 129 取值结果是 129 AT+CSTA=145 设置呼叫地址类型 返回 3.2 发起呼叫 :ATD 执行命令, 用于建立语音呼叫, 还可以用于控制补充业务 命令类型语法返回和说明 第 20 页共 259 页 呼叫控制命令

执行命令 ATD<dial string>; 命令成功, 则 如果成功建立连接, 则 CONNECT 如果没检测到拨号音 dial tone( 并且当 ATX2 or ATX4 时 ): NO DIALTONE If busy( 并且当 ATX3 or ATX4): BUSY 通话被挂断或建立失败 : NO CARRIER 如果被叫无应答 : NO ANSWER ATD<dial string> 数据呼叫成功, 则 CONNECT 参数 定义 取值 对取值的说明 <dial string> 呼叫号码 由以下字符组成 :0-9, *, #, +, A, B, C 注 : 拨 112 可以建立紧急呼叫, 不需要 SIM 卡 举例 : 命令 ( )/ 返回 () 实例 解释和说明 ATD131623***98; 语音呼叫号码 131623***98(*** 是为了保护隐私, 将实际数字隐去, 实际操作时要如实输入号码 ) 对方接听电话 CONNECT AT+CHUP 模块主动挂断通话 返回 3.3 重拨上次呼叫的号码 :ATDL 该命令可以重拨上次 ATD 命令所语音或数字呼叫的号码 命令类型 语法 返回和说明 执行命令 ATDL 如果命令成功, 则 第 21 页共 259 页 呼叫控制命令

如果成功建立连接, 则 CONNECT 如果没检测到拨号音 dial tone( 并且当 ATX2 or ATX4 时 ): NO DIALTONE If busy( 并且当 ATX3 or ATX4): BUSY 通话被挂断或建立失败 : NO CARRIER 如果被叫无应答 : NO ANSWER 该命令可以重拨上次 ATD 命令所数据呼叫的电话号码 如果数据呼叫接通, 则 CONNECT 举例 : 命令 ( )/ 返回 () 实例 解释和说明 ATD131623***98; 语音呼叫号码 131623***98 (URC) CONNECT 对方接听电话 AT+CHUP 模块主动挂断通话 返回 ATDL 重拨上次呼叫的号码 电话呼出, 对方接听电话 CONNECT 3.4 从数据模式或 PPP 在线模式切换至命令模式 :+++ +++ 字符序列可使 TA 忽略当前 AT 接口的数据传输, 并切换至命令模式 它允许 TA 在保持与远端服务器数据连接的状态下, 仍然可输入 AT 命令 命令类型语法返回 执行命令 +++ 说明 : 为避免 +++ 被错误的识别为数据, 需要遵循以下步骤 : 1. +++ 输入前 T1 时间 (1 秒 ) 内无字符输入 2. 在 0.5 second 内连续输入三个 + 号, 每个 + 号之间不能有其他字符 3. +++ 输入后 T1 时间 (0.5 秒 ) 内无字符输入 4. 切换至命令模式, 否则重新进入步骤 1 第 22 页共 259 页 呼叫控制命令

举例 : 命令 ( ) 实例 解释和说明 / 返回 () ATD*99# 数据拨号 CONNECT 数据拨号成功 ~~~ÿ}#à!}!}!} }<}!}$}&@}#}$À#}%}&Êê}*h }"}&} } } } }'}"}(}"7S~~ÿ}#À!}!}"} }<}!}$} &@}#}$À#}%}&Êê}*h}"}&} } } } }'}"}(}"ï ~~ÿ }#À!}!}#} }<}!}$}&@}#}$À#}%}&Êê}*h}"}& } } } } }'}"}(}" ~~ÿ}#à!}!}$} }<}!}$}&@}#} $À#}%}&Êê}*h}"}&} } } } }'}"} +++ +++ 退出数据模式, 返回到命令模式 出现, 表明已经返回到命令模式 ATH 挂断数据链接, 否则下次无法再数据拨号 挂断成功 3.5 从命令模式切换至数据模式 :ATO 命令类型 语法 返回和说明 执行命令 ATO 成功, 则 CONNECT 说明 :TA 继续数据传输连接, 即从命令模式切换回数据模式 若无法恢复到数据模式, 则 NO CARRIER 举例 : 命令 ( ) 实例 解释和说明 / 返回 () ATD*99# 数据拨号 CONNECT 成功 ~~~ÿ}#à!}!}!} }<}!}$}&@}#}$À#}%}&Êê}*h}"}&} } } } }'}"}(}"7S~~ÿ}#À!}!}"} }<}!}$} +++ 切到 AT 命令模式 成功 ATO 再切到数据模式 CONNECT 成功 ~~~ÿ}#à!}!}!} }<}!}$}&@}#}$À#}%}&Êê}*h}"}&} } } } }'}"}(}"7S~~ÿ}#À!}!}"} }<}!}$} 第 23 页共 259 页 呼叫控制命令

3.6 接听来电 :ATA 命令类型 语法 返回和说明 执行命令 ATA 有来电时, 输入该命令接听来电, 此时会 举例 : 命令 ( )/ 返回 () 实例 RING 解释和说明 有 RING 上报, 表示有来电 注 :RING 是一个 URC 命令 (Unsolicited Result Code ) ATA 模块接听来电 返回, 说明接听来电成功 3.7 挂断通话 :AT+CHUP 命令类型 语法 返回和说明 执行命令 AT+CHUP 通话过程中, 输入该命令挂断电话, 此时会 举例 : 命令 ( )/ 返回 () 实例 解释和说明 RING 有 RING 上报, 表示有来电 ATA 模块接听来电 建立通话 AT+CHUP 挂断通话 3.8 列出所有当前的呼叫 :AT+CLCC 命令类型 语法 返回 执行命令 AT+CLCC [+CLCC:<id1>,<dir>,<stat>,<mode>,<mpty>[,<number>,<type>[,<alph a>]][<cr><lf>+clcc:<id2>,<dir>,<stat>,<mode>,<mpty>[,<number>,<type>[,<alpha>]][...]]] 测试命令 AT+CLCC=? 注 : 参数定义表格定义的是各参数的释义, 表格中参数出场顺序跟语法规则表格中参数出场顺序无关! 第 24 页共 259 页 呼叫控制命令

参数定义取值对取值的说明 <idx> 呼叫识别 id - 整数型 ; 请参考 GSM 02.30 [19] 中第 4.5.5.1 节中描述 0 移动发起的呼叫 (MO 呼叫 ) <dir> 呼叫方向 1 移动终止的呼叫 (MT 呼叫 ) 0 激活 1 保持 <stat> 2 拨号中 (MO 呼叫 ) 呼叫状态 3 提示中 (MO 呼叫 ) 4 入局呼叫 (MT 呼叫 ) 5 等待中 (MT 呼叫 ) 0 语音 <mode> 承载 / 电信业务 1 数据 2 传真 <mpty> <number> 对方号码 - 字符串类型, 需加双引号 电话号码格式符合 <type> 定义 <type> 呼叫号码类型 - 请参考 AT+CSTA <number> 对应的 <alpha> - 字符型电话簿中字符该呼叫是否属于多方 0 属于呼叫 1 不属于 举例 : 命令 ( )/ 返回 () 实例 解释和说明 ATD10086; 语音呼叫号码 10086 AT+CLCC 对方接听电话前查询下通话情况 +CLCC: 1,0,2,0,0,"10086",129,"" <stat>=2 表示拨号中, 对方尚未接听 CONNECT 对方接听 AT+CLCC 此时再查询下通话状态 +CLCC: 1,0,0,0,0,"10086",129,"" <stat>= 0 表示电话接通并保持激活 AT+CHUP 挂电话 AT+CLCC 显示通话状态 只有一个, 表示没有通话 第 25 页共 259 页 呼叫控制命令

3.9 拒绝接听呼叫 :AT+GSMBUSY 命令类型 语法 返回 设置命令 AT+GSMBUSY=<mode> 或 CME ERROR:<error> 查询命令 AT+GSMBUSY? +GSMBUSY: <mode> 测试命令 AT+GSMBUSY=? +GSMBUSY: (0,1,2) 参数 定义 取值 对取值的说明 0 允许入呼叫 <mode> 是否拒绝入呼叫 1 拒绝所有入呼叫 2 拒绝所有语音入呼叫但是允许所有 CSD 入呼叫 第 26 页共 259 页 呼叫控制命令

4 配置命令 4.1 选择 TE 字符集 :AT+CSCS 设置命令通知 DCE,DTE 需要使用的字符集, 以确保 DCE 和 DTE 在约定的字符集之间准确转换字符串 命令类型 语法 返回 设置命令 AT+CSCS=<chset> 查询命令 AT+CSCS? +CSCS: <chset> 测试命令 AT+CSCS=? +CSCS: (<chset> 取值列表 ) 参数存储模式 设置命令的参数可以通过 AT&W 命令保存到 NVM 中, 重启不丢失 参数 定义 取值 对取值的说明 "GSM" GSM 7 位默认字符 (3GPP TS 23.038) "IRA" 国际参考符号集 (ITU-T T.50[13]) "UCS2" 16 位通用多字节编码字符集 <chset> 字符集 "HEX" 仅仅由 16 进制数构成的字符集,00 到 FF "PCCP" PC 字符集编码 "PSDN" PC Danish/Norwegian 字符集 "8859-1" ISO 8859 拉丁 1 字符集 举例 : 命令 ( )/ 返回 () 实例 AT+CSCS? +CSCS: "IRA" 解释和说明 AT+CSCS=? +CSCS: ("GSM","HEX","IRA","PCCP","UCS2","8859-1") 第 27 页共 259 页 配置命令

4.2 模块功能模式 :AT+CFUN 设置命令选择模块的功能模式 命令类型 语法 返回 设置命令 AT+CFUN=[<fun>[,<rst>]] 查询命令 AT+CFUN? +CFUN: <fun> 测试命令 AT+CFUN=? +CFUN: (<fun> 取值列表 ),(<rst> 取值列表 ) 参数存储模式 设置命令的参数是自动存储, 重启不消失 参数定义取值对取值的说明 0 最少功能 <fun> 功能模式 1 全部功能 4 飞行模式 屏蔽模块的 RF 电路的接收和发送功能 0 在设置 <fun> 级别时, 不能复位 ME <rst> 是否需要重启 1 在设置 <fun> 级别时, 需要复位 ME 举例 : 命令 ( )/ 返 实例 解释和说明 回 () AT+CFUN=? 查询各个参数的取值范围 +CFUN: (0,1,4),(0-1) 查询结果 AT+CFUN? 查询当前的功能模式 +CFUN: 1 查询结果 AT+CFUN=1,1 被用来主动重启模块, 重启后进入全功能模式 如果波特率设置为固定波特率, 在模块重启后, 返回字符串 4.3 保存用户当前的配置 :AT&W 本文档中大部分的 AT 命令, 若希望模块重启后其参数不变, 都需要通过 AT&W 保存 该命令将用户设置的一些 AT 命令参数保存到 EFS 中, 重开机后相关的配置自动生效 第 28 页共 259 页 配置命令

命令类型 语法 返回和说明 执行命令 AT&W[<n>] 说明 : 模块把当前参数的配置保存到用户定义的配置表中 参数定义取值对取值的说明 0 保存当前配置到用户配置表 0 中 <n> 配置表序列 1 保存当前配置到用户配置表 1 中 通过 AT&W 保存的主要命令及其参数 : 命令 参数名称 是否可以通过 AT&V 显示 ATE <echo> Y ATQ <result> Y ATV <format> Y ATX <result> Y ATS0 <num> Y ATS3 <char> Y ATS4 <char> Y ATS5 <char> Y ATS7 <time> Y ATS8 <time> Y ATS10 <time> Y AT&C <behavior> Y AT&D <behavior> Y AT+IPR <rate> Y AT+IFC <dte_by_dce>,<dce_by_dte> Y AT+VTD <n> Y AT+ICF <format>,<parity> Y AT+CMGF <mode> Y AT+CNMI <mode>,<mt>,<bm>,<ds>,<bfr> Y AT+CHF <ind> Y AT+CMEE <n> Y AT+CRLP <iws>,<mws>,<t1>,<n2>,<ver>,<t4> Y AT+SLEDS <mode>,<timer_on>,<timer_off> Y AT+CSCS <chset> Y AT+CSCLK <n> Y 第 29 页共 259 页 配置命令

4.4 恢复当前参数为用户的自定义配置 :ATZ 该命令可以将相关参数还原为用户定义的配置表中的配置, 即 AT&W 所保存的配置 命令类型 语法 返回和说明 执行命令 ATZ[<n>] 说明 : 模块把当前参数的配置恢复为用户定义的配置表中的配置 参数定义取值对取值的说明 0 还原当前配置为用户配置表 0 中的配置 <n> 配置表序列 1 还原当前配置为用户配置表 1 中的配置 通过 ATZ 可恢复的主要命令及其参数 : 命令 参数名称 是否可以通过 AT&V 显示 ATE <echo> Y ATQ <result> Y ATV <format> Y ATX <result> Y ATS0 <num> Y ATS3 <char> Y ATS4 <char> Y ATS5 <char> Y ATS7 <time> Y ATS8 <time> Y ATS10 <time> Y AT&C <behavior> Y AT&D <behavior> Y AT+IPR <rate> Y AT+IFC <dte_by_dce>,<dce_by_dte> Y AT+VTD <n> Y AT+ICF <format>,<parity> Y AT+CMGF <mode> Y AT+CNMI <mode>,<mt>,<bm>,<ds>,<bfr> Y AT+CHF <ind> Y AT+CMEE <n> Y AT+CRLP <iws>,<mws>,<t1>,<n2>,<ver>,<t4> Y AT+SLEDS <mode>,<timer_on>,<timer_off> Y AT+CSCS <chset> Y AT+CSCLK <n> Y 第 30 页共 259 页 配置命令

4.5 显示当前配置 :AT&V 命令类型语法返回和说明 执行命令 AT&V[<n>] < 当前配置文本 > 参数定义取值对取值的说明 <n> 0 以数字格式返回结果 注 :AT&V 所能显示的配置命令请参考 AT&W 4.6 恢复所有参数为出厂配置 :AT&F 命令类型语法返回和说明 执行命令 AT&F 说明 : 执行命令把所有参数恢复为出厂配置 AT&F 涉及的主要命令和参数 : 命令 参数名称 默认值 ATE <echo> 0x01 ATQ <result> 0x00 ATV <format> 0x01 ATX <result > 0x04 AT+IFC <dte_by_dce> 0x00 AT+IFC <dce_by_dte> 0x00 AT+ICF <format>,<parity> 3,3 AT+IPR <rate> 0 ATS0 <num> 0x00 ATS3 <char> 0x0D ATS4 <char> 0x0A ATS5 <char> 0x08 ATS7 <time> 0x15 ATS8 <time> 0x02 ATS10 <time> 0x0E 第 31 页共 259 页 配置命令

AT+CRLP <ver> 0 AT+CRLP <T4> 7 AT+CRLP <iws> 61 AT+CRLP <mws> 61 AT+CRLP <T1> 48 AT+CRLP <N2> 6 AT+CRC <mode> 0x0 AT+CMOD <mode> 0x0 AT+CMEE <n> 0x0 AT+CREG <n> 0x0 AT+CGREG <n> 0x0 AT+CSMS <service> 0x0 AT+CMGF <mode> 0x0 AT+CNMI <mode>,<mt>,<bm>,<ds>,<bfr> 2,1,0,0,0 AT+CSDH <show> 0x0 AT+CSCS <chset> IRA AT+CLIR <n> 0x0 AT+CLIP <n> 0x0 AT+COLP <n> 0x0 AT+CSCLK <n> 0 4.7 设置命令回显模式 :ATE 执行命令设置 TA 在命令模式下, 是否可以回显从 TE 接收到的字符 命令类型 语法 返回 执行命令 ATE<value> 参数存储模式 设置命令的参数可以通过 AT&W 命令保存到 NVM 中, 重启不丢失 参数定义取值对取值的说明 0 回显模式关闭 <value> 是否回显 1 回显模式打开 4.8 设置结果码抑制模式 :ATQ 此命令用于设置 TA 是否向 TE 发送结果码 并且此设置不会影响响应内的内容 命令类型 语法 返回和说明 执行命令 ATQ<n> 参数存储模式 设置命令的参数可以通过 AT&W 命令保存到 NVM 中, 重启不丢失 第 32 页共 259 页 配置命令

参数定义取值对取值的说明 <n> 是否显示结果码 0 向 TE 发送结果码 1 结果码被抑制, 不发送 举例 : 命令 ( )/ 返 实例 解释和说明 回 () ATQ1 设置为不返回结果码 此时没出现 这个结果码 AT+CREG? +CREG: 0,1 此时没出现 这个结果码 4.9 设置 TA 响应内容的格式 :ATV 该命令用于设置结果码和返回结果的传送格式 ( 数字格式或者字母格式 ), 并设置头部和尾部的内容, 这些内容是与结果码 和信息返回结果一起发送的 命令类型 语法 返回和说明 执行命令 ATV<value> 当 <value>=0 时, 信息<text><CR><LF> 结果码返回 ( 数字型 ):<numeric code><cr> 当 <value>=1 时, 信息<CR><LF><text><CR><LF> 结果码返回 ( 冗长字符型 ) : <CR><LF><verbose code><cr><lf> 参数存储模式 设置命令的参数可以通过 AT&W 命令保存到 NVM 中, 重启不丢失 参数定义取值对取值的说明 信息<text><CR><LF> <value> 结果码显示模式 0 1 结果码返回 ( 数字型 ):<numeric code><cr> 信息<CR><LF><text><CR><LF> 结果码返回 ( 冗长字符型 ):<CR><LF><verbose code><cr><lf> 一些常用的 code 定义如下 : <numeric code> <verbose code>(atv1) 说明 (ATV0) 0 执行命令的正确确认 第 33 页共 259 页 配置命令

1 CONNECT 连接已经建立 ;DCE 从命令状态切换为在线数据状态 2 RING DCE 已经检测到一个来自网络的呼叫 3 NO CARRIER 连接中断或尝试建立连接失败 ERROR 命令不能被识别, 超出命令行的最大长度, 参数值无效, 或命令进 4 程中的其他问题 6 NO DIALTONE 无法检测到拨号音 7 BUSY 检测到忙音信号 ( 占线 ) 8 NO ANSWER 若 "@" 拨号修改量被使用, 则紧跟 5 秒静默时间的远程振铃没有在定时器 (S7) 超时前检测到 即无人应答 9 PROCEEDING 一条 AT 命令正在被处理 制造商特殊需求 CONNECT <text> 与 CONNECT 相同, 但包含制造商特殊需求的文本可以制定 DTE 速率, 线速, 错误控制, 数据压缩, 或其他状态 举例 : 命令 ( )/ 回 () 返 实例 解释和说明 ATV0 设置结果码显示模式为 0, 即 : 信息<text><CR><LF> 结果码返回 ( 数字型 ):<numeric code><cr> 0 0 表示 (URC) 2 2 表示此时有个来电 (URC) 3 不接直接挂断, 此时会有 3 上报, 表示 NO CARRIER( 电话挂断 ) 4.10 设置 CONNECT 结果码格式和监测呼叫进程 :ATX 此命令用于设置 TA 是否做拨号音和忙音检测, 以及向 TE 发送某一个特定的结果码 命令类型 语法 返回 执行命令 ATX<value> 参数存储模式 设置命令的参数可以通过 AT&W 命令保存到 NVM 中, 重启不丢失 参数定义取值对取值的说明 < value > CONNECT 结果 码和呼叫进程模 式设定 0 1 2 3 4 进入在线数据状态时立即返回给定连接 CONNECT 结果码, 拨号音和忙音检测均禁用进入在线数据状态时立即返回给定连接 CONNECT<text> 结果码, 拨号音和忙音检测均禁用进入在线数据状态时立即返回给定连接 CONNECT<text> 结果码, 拨号音检测开启, 忙音检测禁用进入在线数据状态时立即返回给定连接 CONNECT<text> 结果码, 拨号音检测禁用, 忙音检测开启进入在线数据状态时立即返回给定连接 CONNECT<text> 结果码, 拨号音与忙音检测均开启 第 34 页共 259 页 配置命令

4.11 设置自动应答前振铃次数 :ATS0 设置命令, 可启用或禁用 DCE 自动应答入局呼叫 若 <n> 设置为非零取值, 当入局呼叫指示 (RING) 达到规定次数后,DCE 自动应答 命令类型语法返回和说明 设置命令 ATS0=<n> 查询命令 ATS0? <n> 参数存储模式 设置命令的参数可以通过 AT&W 命令保存到 NVM 中, 重启不丢失 参数定义取值对取值的说明 <n> 自动应答模式 0 禁用自动应答 ( 默认 ) 1~255 达到指定的振铃次数后, 启用自动应答 举例 : 命令 ( ) / 实例 解释和说明 返回 () ATS0=3 设置当有来电时,MT 响三声后自动接听 (URC) RING RING RING 有一个来电, 当显示 3 个 RING( 即响三声 ) 后, 自动接听 4.12 设置指令行终止符 :ATS3 设置指令, 可设置用于 AT 指令行终止符, 该字符能被 TA 识别 命令类型语法返回 设置命令 ATS3=<n> 第 35 页共 259 页 配置命令

查询命令 ATS3? <n> 参数存储模式 设置命令的参数可以通过 AT&W 命令保存到 NVM 中, 重启不丢失 参数 定义 取值 对取值的说明 <n> 指令行终止符的 ASCII 值 0~127 缺省值 :13, 对应 ASCII 字符为 <CR>( 回车符 ) 注意 : 如果改变该值有可能会影响 AT 指令的执行 4.13 设置指令行换行字符 :ATS4 使用该指令的设置命令, 可设置用于结果码和信息文本换行的字符 命令类型语法返回 设置命令 ATS4=<n> 查询命令 ATS4? <n> 参数存储模式 设置命令的参数可以通过 AT&W 命令保存到 NVM 中, 重启不丢失 参数定义取值对取值的说明 <n> 指令行换行符的 ASCII 值 0~127 缺省值 :10( 对应 ASCII 字符 <LF> 换行符 ) 4.14 设置命令行编辑字符 :ATS5 此命令设置删除命令行先前字符的字符, 该字符能被 TA 识别 命令类型语法返回 设置命令 ATS5=<n> 查询命令 ATS5? <n> 参数存储模式 设置命令的参数可以通过 AT&W 命令保存到 NVM 中, 重启不丢失 第 36 页共 259 页 配置命令

参数定义取值对取值的说明 <n> 指令行编辑符的 ASCII 值 0~127 缺省值 :8( 对应 ASCII 字符 <BS> 后退符 ) 举例 : 命令 ( ) / 实例 解释和说明 返回 () ATS5? 查询当前指令行编辑字符 008 当前指令行编辑字符为 BackSpace 后退符 ATS5=32 将删除指令行中先前字符的键值设置为空格 4.15 设置盲拨之前的停顿时间 :ATS6 命令类型语法返回 设置命令 ATS6<n> 查询命令 ATS6? <n> 参数存储模式 设置命令的参数可以通过 AT&W 命令保存到 NVM 中, 重启不丢失 参数定义取值对取值的说明 <n> 盲拨前的等待时间 0~2~299 单位 : 秒 缺省值 :2 4.16 等待拨号连接完成的时间 :ATS7 设置命令可以设置等待电话 ( 包括出呼叫和入呼叫 ) 连接完成的时间 命令类型语法返回 设置命令 ATS7=<n> 查询命令 ATS7? <n> 参数存储模式 设置命令的参数可以通过 AT&W 命令保存到 NVM 中, 重启不丢失 第 37 页共 259 页 配置命令

参数定义取值对取值的说明 <n> 等待电话呼叫连接完成的时间 1~60~255 单位 : 秒 缺省值 :60 4.17 设置 CDC 功能模式 :AT&C 此命令设置 109(DCD) 电路状态与远端接收线上信号检测之间的关系 命令类型语法返回 执行命令 AT&C[<value>] 参数存储模式 设置命令的参数可以通过 AT&W 命令保存到 NVM 中, 重启不丢失 参数定义取值对取值的说明 0 DCD 线始终为 ON <value> DCD 电路状态 1 DCD 线只在数据载波存在时为 ON 4.18 设置 DTR 功能模式 :AT&D 此命令设置数据模式下,circuit 108/2 (DTR) 从 ON 变为 OFF 状态时, TA 的响应状态 命令类型语法返回 执行命令 AT&D[<value>] 参数定义取值对取值的说明 <value> DTR 电路状态 0 TA 忽略 DTR 状态 1 DTR 由 ON 至 OFF:TA 在保持当前数据通话的同时, 切换至命令模式 2 DTR 由 ON 至 OFF:TA 释放数据通话, 切换至命令模式 DTR= OFF 时, 为自动应答关闭状态 第 38 页共 259 页 配置命令

4.19 实时时钟 :AT+CCLK 命令类型 语法 返回 设置命令 AT+CCLK=<time> 查询命令 AT+CCLK? +CCLK: <time> 测试命令 AT+CCLK=? 参数存储模式 自动存储, 重启不消失 参数定义取值对取值的说明 <time> 时间 - 字符串类型 ( 字符串需包含在引号内 ) ; 格式类似 yy/mm/dd,hh:mm:ss±zz", 最后两位字符指示年, 月, 日, 小时, 分钟, 秒和时区 ( 用当地时间和 GMT 时间之间的差别来表示, 以 1/4 小时格式来表示 ; 范围 -47...+48) 举例 : 命令 ( ) / 实例 解释和说明 返回 () AT+CCLK? 查询当前时间 +CCLK: "11/01/01,00:12:58-00" 返回的查询结果 AT+CCLK="12/08/07,13:28:29+32" 将当前时间设置为正确的时间, 设置时区可以用 + 号 AT+CCLK? 再查询一次当前时间 +CCLK: "12/08/07,13:28:29+32" 返回的查询结果 AT+CCLK="12/08/07,14:28:29-32" 设置时区也可以用 - 号 AT+CCLK? +CCLK: "12/08/07,14:28:29-32" AT+CCLK="12/08/07,13:28:33" 设置时间的时候也可以不加 + 号或 - 号 AT+CCLK? +CCLK: "12/08/07,13:28:33" 第 39 页共 259 页 配置命令

4.20 设备错误 :AT+CMEE 该命令使能或者屏蔽结果码的使用 +CME ERROR: <err>, 作为和 ME 功能错误相关的指示 命令类型 语法 返回 设置命令 AT+CMEE=[<n>] +CMEE :<n> 查询命令 测试命令 参数存储模式 AT+CMEE? +CMEE:(<n> 取值列表 ) AT+CMEE=? 设置命令的参数可以通过 AT&W 命令保存到 NVM 中, 重启不丢失 参数定义取值对取值的说明 0 禁用结果码 + CME ERROR: <err>, 使用 ERROR <n> 结果码上报模式 1 启用结果码 + CME ERROR: <err>, 并使用数字型的 <err> 取值 2 启用结果码 + CME ERROR: <err>, 并使用冗长方式的 <err> 取值 4.21 错误码描述 :+CME ERROR:<err> 数字型 <err> 取值 冗长方式的 <err> 取值 解释 常见错误 0 phone failure 手机故障 1 no connection to phone 未连接到手机 2 phone-adaptor link reserved 预留手机适配器链路 3 operation not allowed 不允许操作 4 operation not supported 不支持操作 5 PH-SIM PIN required 需要 PH-SIM 卡的 PIN 6 PH-FSIM PIN required 需要 PH-FSIM 的 PIN 7 PH-FSIM PUK required 需要 PH-FSIM 的 PUK 10 SIM not inserted 没有插入 SIM 卡 11 SIM PIN required 需要 SIM 卡的 PIN 12 SIM PUK required 需要 SIM 卡的 PUK 13 SIM failure SIM 卡故障 14 SIM busy SIM 卡遇忙 15 SIM wrong SIM 错误 16 incorrect password 密码无效 17 SIM PIN2 required 需要 SIM 卡的 PIN2 18 SIM PUK2 required 需要 SIM 卡的 PUK2 第 40 页共 259 页 配置命令

20 memory full 存储已满 21 invalid index 索引无效 22 not found 未发现 23 memory failure 存储故障 24 text string too long 文本字符串过长 25 invalid characters in text string 文本字符串中的字符无效 26 dial string too long 拨号字符串过长 27 invalid characters in dial string 拨号字符串中的字符无效 30 no network service 无网络业务 31 network timeout 网络超时 32 network not allowed - emergency calls only 网络不允许 - 只适用于紧急呼叫 40 network personalization PIN required 需要网络个性化 PIN 41 network personalization PUK required 需要网络个性化 PUK 42 network subset personalization PIN required 需要网络子集个性化 PIN 43 network subset personalization PUK required 需要网络子集个性化 PUK 44 service provider personalization PIN required 需要服务供应商个性化 PIN 45 service provider personalization PUK required 需要服务供应商个性化 PUK 46 corporate personalization PIN required 需要公司个性化 PIN 47 corporate personalization PUK required 需要公司个性化 PUK 99 资源限制 100 unknown 未知 GPRS 相关的错误 103 Illegal MS 非法 MS 106 Illegal ME 非法 ME 107 GPRS services not allowed 不允许 GPRS 业务 111 PLMN not allowed 不允许 PLMN 112 Location area not allowed 不允许位置区 113 Roaming not allowed in this location area 该位置区不允许漫游 132 service option not supported 不支持业务选择 133 requested service option not subscribed 未描述业务选择请求 134 service option temporarily out of order 业务选择暂时无连接 148 unspecified GPRS error GPRS 错误未指明 149 PDP authentication failure PDP 鉴权失败 150 invalid mobile class 移动类别无效 短信类错误码 : 错误码 <err> 定义 300 ME 故障 第 41 页共 259 页 配置命令

301 预留 ME 的 SMS 业务 302 操作不允 303 操作不支持 304 PDU 模式下无效的参数 305 TEXT 模式下无效的参数 310 SIM 卡未插入 311 需要 SIM 卡的 PIN 312 需要 PH-SIM 卡的 PIN 313 SIM 卡故障 314 SIM 卡遇忙 315 SIM 错误 316 需要 SIM 卡的 PUK 317 需要 SIM 卡的 PIN2 318 需要 SIM 卡的 PUK2 320 存储故障 321 无效存储索引 322 存储已满 323 无效参数 324 无效的输入格式 330 SMSC 地址未知 331 无网络服务 332 SMSC 地址未知 340 无预期的 +CNMA 确认 500 未知错误 511 预留 256~511 内的取值 512 根据制造商不同而变化 513 SIM 卡里有未读记录 514 CB 错误未知 515 PS 忙 517 SM 没有准备好 528 PDU 中无效 ( 非 16 进制 ) 字符 529 PDU 长度不正确 530 无效 MTI 531 地址中有无效 ( 非 16 进制 ) 字符 532 无效地址 533 PDU 长度 (UDL) 不正确 534 SCA 长度不正确 536 无效的第一个 8 位字节 ( 应为 2 或 34) 537 无效的命令类型 538 SRR 位未设置 539 SRR 设置 540 无效的 User Data Header IE 753 CRSM 缺少参数 第 42 页共 259 页 配置命令

754 CRSM 无效命令 755 CRSM 无效的文件 756 CRSM 缺少 P 参数 757 CRSM 无效的 P 参数 758 CRSM 缺少命令数据 759 CRSM 命令行中有无效字符 765 无效输入值 766 不支持的模式 767 操作失败 768 多路复用已经在运行 769 不能获得控制权 770 SIM 网络拒绝 771 正在建立呼叫 772 SIM 关闭了 773 SIM 文件不在 4.22 扩展错误报告 :AT+CEER 执行该指令,TA 将返回一行或多行的信息文本 <report> 具体行数由 ME 制造商决定 ME 制造商为 TA 用户提供了下列原因的扩展报告 : 最近一次呼叫建立失败 ( 发起或应答 ) 或呼叫内修改 ; 最近一次呼叫释放 ; 最近一次 GPRS 附着或 PDP 上下文激活失败 ; 最近一次 GPRS 去附着或 PDP 上下文去激活 命令类型 语法 返回和说明 设置命令 AT+CEER=<n> 执行命令 AT+CEER TA 返回最后一次呼叫释放的原因扩展报告 : +CEER: <report> 测试命令 AT+CEER=? +CEER: (0-1) 参数定义取值对取值的说明 <report> 错误报告 - 字符型 <n> 原因值格式 0 上报 text 格式的原因值 1 上报 number 格式的原因值 第 43 页共 259 页 配置命令

举例 : 命令 ( )/ 返 实例 解释和说明 回 () ATD139********; 呼叫号码为 139******** 的手机号 接通后, 对方挂断电话 AT+CEER 查询挂断原因 +CEER: Network ended call 查询结果 第 44 页共 259 页 配置命令

5 网络服务相关命令 5.1 查询信号质量 :AT+CSQ 执行命令返回来自 ME 的接收信号强度指示 <rssi> 和信道误码率 <ber> 测试命令返回 TA 支持的值 语法 : 命令类型 语法 返回和说明 执行命令 AT+CSQ +CSQ: <rssi>,<ber> 测试命令 AT+CSQ=? +CSQ: (<rssi> 取值列表 ),( <ber> 取值列表 ) 参数 定义 取值 对取值的说明 0 小于等于 -115dBm < rssi > 1-111dBm 接收信号强度指示 (received 2~30-109~-53dBm signal strength indication) 31 大于等于 -51dBm 99 未知或不可测 <ber> 信道误码率 (bit error rate, 只有 0~7 GSM 05.08 section 8.2.4 所示的 RXQUAL 值通话建立后, 才能获知该值 ) 99 未知或不可测 举例 : 命令 ( )/ 实例 解释和说明 返回 () AT+CSQ 查询信号强度和质量 +CSQ: 15,99 查询结果 ATD131****9873; 拨打一个手机号 AT+CSQ 手机未接通的时候查询信号 +CSQ: 10,99 <ber>=99 (URC) CONNECT 手机接听 AT+CSQ 接通后再查询信号强度和质量 第 45 页共 259 页 网络服务相关命令

+CSQ: 10,6 此时 <ber>=6 5.2 网络注册信息 :AT+CREG 命令类型 语法 返回和说明 设置命令 AT+CREG=[<n>] 如果 <n>=0( 缺省 ) 或 1, 则 +CREG: <n>,<stat> 查询命令 AT+CREG? 如果设置 <n>=2, 则 +CREG: <n>,<stat>[,<lac>,<ci>] 测试命令 AT+CREG=? 返回 +CREG: (<n> 取值列表 ) URC 上报 参数存储 模式 如果设置 <n>=1, 当网络注册状态发生改变时, 会有这样的 URC +CREG: <stat> (unsolicited result code) 如果设置 <n>=2, 当网络注册状态或注册的小区 (ci) 发生改变时, 会 +CREG: <stat>[,<lac>,<ci>] 有这样的 URC 上报设置命令的参数可以通过 AT&W 命令保存到 NVM 中, 重启不丢失 注 : 参数定义表格定义的是各参数的释义, 表格中参数出场顺序跟语法规则表格中参数出场顺序无关! 参数定义取值对取值的说明 0 禁用网络注册非请求结果码 (URC,Unsolicited Result Code) 1 启用网络注册非请求结果码 +CREG: <stat> <n> 上报状态启用网络注册和位置信息非请求结果码 2 +CREG:<stat>[,<lac>,<ci>] 0 未注册 ;ME 当前没有搜索要注册业务的新运营商 1 已注册, 本地网 2 未注册, 但 ME 正在搜索要注册业务的新运营商 <stat> 当前网络注册状态 3 注册被拒绝 4 未知 5 已注册, 漫游 第 46 页共 259 页 网络服务相关命令

<lac> 位置区号 (Location Area Code) - 字符串型,2 字节 16 进制数 <ci> 小区号 (Cell Id) - 字符串型,2 字节 16 进制数 举例 : 命令 ( ) / 实例 解释和说明 返回 () AT+CREG=? 查询 <n> 的取值范围 +CREG:(0-2) 查询结果 AT+CREG? <n> 缺省是 0, 此时查询网络的注册状态 +CREG: 0,1 查询出来 <n>=0,<stat>=1 ( 已注册, 并且注册的是本地网 ) AT+CREG=1 换一张外地的 SIM 卡, 装上 SIM, 开机, 开机后设置 <n>=1 AT+CREG? 开机后查询网络的注册状态 +CREG: 1,5 查询出来 <n>=0,<stat>=5 ( 已注册, 并且注册的是漫游网 ) (URC) +CREG:0 拔掉天线或走入没有信号的区域, 此时会有 URC 上报, 表明当前未注册网络 (URC) +CREG:5 装上天线或走入有信号的区域, 此时此时会有 URC 上报, 表明当前重新注册上了网络 AT+CREG=2 设置 <n>=2 AT+CREG? 查询网络的注册状态 (URC) +CREG: 2,5,"18be","9351" +CREG: 5,"18be","9363" 查询到 <n>=2,<stat>=5,<lac>=18be,<ci>=9351 移动模块, 当小区号发生改变的时候, 会有个 URC 上报上来 5.3 查询运营商 :AT+COPS 命令类型 语法 返回 设置命令 AT+COPS=<mode>[,<format>[,<oper>]] 查询命令 AT+COPS? +COPS:<mode>[,<format>,<oper>] 测试命令 AT+COPS=? +COPS: [ (<stat>, 长字符型 <oper>, 短字符型 第 47 页共 259 页 网络服务相关命令

<oper>, 数字型 <oper>) 取值列表 ][,, <mode> 取 值列表, <format> 取值列表 ] 说明 : 用户终端返回四组字符, 每一组代表一个在网络中的运营商 运营商以如下次序显示 : 归属网络,SIM 参考网络, 其他网络 注 : 参数定义表格定义的是各参数的释义, 表格中参数出场顺序跟语法规则表格中参数出场顺序无关! 参数定义取值对取值的说明 0 自动 (<oper> 字段可忽略 ) 1 手动 (<oper> 字段不可忽略 ) 2 从注册网络注销 <mode> 网络注册模式仅设置 <format>( 用于查询命令 +COPS?); 不尝试进行注册或注销 3 (<oper> 字段可忽略 ) 手动 / 自动 (<oper> 字段不可忽略 ); 如果手动选择失败, 将进入自动选 4 择模式 (<mode>=0) 0 长字符串型 <oper> ( 采用字母数字格式 ), 最多 16 字符 <format> 运营商的显示格式 1 短字符串型 <oper> ( 采用字母数字格式 ), 最多 8 字符 2 数字式字符串型 <oper> 字符型 ;<format> 表示该字符串采用字母数字型还是数字型 ; 数字型 <oper> 运营商 - 表示运营商的方法为 MCC(3 位 )+MNC(2 位 ), 即移动国家码 + 移动网络码 0 未知 1 可用网络 <stat> 网络可用状态 2 当前网络 3 禁用网络举例 : 命令 ( ) 实例解释和说明 / 返回 () AT+COPS=? 测试命令 +COPS: (2,"CHINAMOBILE","CMCC","46000",0), (3,"CHN-CUGSM","CU-GSM","46001",2), (3,"CHN-CUGSM","CU-GSM","46001",0),, (0,1,2,3,4),(0,1,2) AT+COPS? 查询当前注册的运营商信息 +COPS: 0,0, "CHINA MOBILE" 缺省 <format>=0( 长字符串型 ), 查出的结果是 : "CHINA MOBILE" 第 48 页共 259 页 网络服务相关命令

AT+COPS=3,1 设置 <format>=1( 短字符串型 ) AT+COPS? 再次查询当前注册的运营商信息 +COPS: 0,1,"CMCC" 查出的结果是 :"CMCC" AT+COPS=3,2 设置 <format>=2( 数字型 ) AT+COPS? 再次查询当前注册的运营商信息 +COPS: 0,2,"46000" 查出的结果是 :"46000" AT+COPS? 拔掉天线, 再查询下注册的运营商信息 +COPS: 0 查出来没有运营商信息, 因为此时模块已经退网 5.4 自动时区更新 :AT+CTZU 使用设置命令, 可设置是否启动通过 NITZ(Network Identity and Time Zone) 来自动更新时区的功能 命令类型 语法 返回 设置命令 AT+CTZU=<fun> 查询命令 AT+CTZU? +CTZU: <fun> 测试命令 AT+CTZU=? +CTZU: (<fun> 取值列表 ) 出厂时, 默认值为 0( 关闭此功能 ), 如果要打开, 需要置 1, 此参数的设置会自动存储到非易失存储器 注意事项 中 ; 当开启了时区自动更新功能, 如果从网络获取的时区和本地 AT+CCLK 的时区不相符, 本地时区会按 照网络时间自动更新 参数定义取值对取值的说明 0 禁用 NITZ 自动更新功能 <fun> 上报状态 1 启用 NITZ 自动更新功能 第 49 页共 259 页 网络服务相关命令

5.5 时区自动上报 :AT+CTZR 当使能该功能后, 只要当前的时区有变化时, 都会通过主动上报结果码 +CTZV: <tz> 上报变化之后的时区 命令类型 语法 返回 设置命令 AT+CTZR=<fun> 查询命令 AT+CTZR? +CTZR: <fun> 测试命令 AT+CTZR=? +CTZR: (<fun> 取值列表 ) 自动上报 +CTZV: <tz> 注意事项 当使能或者禁止该功能时, 设置可以自动保存, 但是需要重启设备, 否则设置不能生效 参数定义取值对取值的说明 0 禁止时区报告功能, 默认值 <fun> 上报状态 1 开启时区报告功能 <tz> 时区 - 5.6 获取当地时间 :AT+CLTS 命令类型 语法 返回和说明 设置命令 AT+CLTS=<mode> ERROR 查询命令 AT+CLTS? +CLTS: <mode> 测试命令 AT+CLTS=? +CLTS: "yy/mm/dd,hh:mm:ss+/-zz" 如果需要从网络获取当地时间, 需要在模块开机还没有注册网络的时候就输入 AT+CLTS=1, 然后可能会上报以下的 URC: 1. Refresh network name by network: 注意事项 *PSNWID: "<mcc>", "<mnc>", "<full network name>", <full network name CI>, "<short network name>",<short network name CI> 2. Refresh time and time zone by network: This is UTC time, the time queried by AT+CCLK 第 50 页共 259 页 网络服务相关命令

command is local time. *PSUTTZ: <year>, <month>, <day>, <hour>, <min>, <sec>, "<time zone>", <dst> 3. Refresh network time zone by network: +CTZV: "<time zone>" 4. Refresh Network Daylight Saving Time by network: DST: <dst> 上报这些 URC 以后, 说明模块已经获取网络时间的更新, 此时用 AT+CCLK? 可以查询到当前时间 参数定义取值对取值的说明 0 使能当地时间更新功能 <mode> 上报状态 1 禁止当地时间更新功能 <mcc> 移动国家代码 mobile county code, 字符串型 <mnc> 移动网络代码 mobile network code, 字符串型 <full network name> 运营商网络全名字符串型 <full network name CI> <short network name> 运营商网络短名字符串型 <shortnetwork name CI> <year> 年 4 digits <month> 月 <day> 日 <hour> 时 <min> 分 <sec> 秒 String type; 如果时区已经调整为夏令时, <time zone> 时区那么在 <dst> 中会标示 0 No adjustment for Daylight Saving Time +1 hour adjustment for Daylight Saving Network Daylight Saving 1 <dst> Time Time 已经调整的时间 +2 hours adjustment for Daylight Saving 2 Time 全名前是否加国家名缩写, 全名前是否加国家名缩写, 0 0 不加不加整数型整数型 1 1 加加 使用方法 : 实例 RDY 解释和说明 第 51 页共 259 页 网络服务相关命令

+CFUN: 1 AT+CLTS=1 开机还没有注册网络的时候就输入 AT+CLTS=1 +CREG: 3 AT+CCLK? +CCLK: "12/06/01,10:26:17+00" 此时查询模块时间, 还没有更新到当前时间 +CPIN: READY *PSUTTZ: 2018,9,1,8,43,12,"+32",0 获取到了网络时间的更新 +CTZV: +32,0 DST: 0 Call Ready +CREG: 1,"18A7","5E1C" SMS Ready AT+CCLK? +CCLK: "18/09/01,16:44:06+32" 查询 AT+CCLK? 可以得到当前时间 5.7 工程模式 1:AT+CENG 工程模式下允许场测工程师通过手持设备接收网络信息来查看和测试网络, 无论手持设备是空闲状态还是特定状态 ( 例如通话中 ) 在任何模式下, 工程师都能够查看当前服务小区或者邻近小区的网络交互信息 命令类型语法返回和说明 AT+CENG=<mode>[,<Ncell 设置命令 display>] 如果 <mode>=1,<ncell display>=1, +CENG: <mode>,<ncelldisplay> 查询命令 AT+CENG? [+CENG: <cell>, <arfcn>,<rxl>,<rxq>,<mcc>,<mnc>,<bsic>,<c 第 52 页共 259 页 网络服务相关命令

ellid>,<rla>,<txp>,<lac>,<ta> <CR><LF>+CENG: <cell>, <arfcn>,<rxl>, <bsic>,<cellid>,<mcc>, <mnc>, <lac> ] 如果 <mode>=1,<ncell display>=0, +CENG: <mode>,<ncelldisplay> [+CENG: <cell>, <arfcn>,<rxl>,<rxq>,<mcc>,<mnc>,<bsic>,<c ellid>,<rla>,<txp>,<lac>,<ta> ] 注 : 这种情况下只显示服务小区的网络信息 如果 <mode>=3,<ncell display>=0, +CENG: <mode>,<ncell display> [+CENG: <cell>, <mcc>,<mnc>,<lac>,<cellid>,<bsic>,<rxl> ] 如果 <mode>=3,<ncell display>=1, +CENG: <mode>,<ncell display> [+CENG: <cell>, <mcc>,<mnc>,<lac>,<cellid>,<bsic>,<rxl> <C R><LF>+CENG: <cell>, <mcc>,<mnc>,<lac>,<cellid>,<bsic>,<rxl>...] 如果 <mode>=2,<ncell display>=0 则自动上报网络信息 : +CENG: <mode>,<ncelldisplay> [+CENG: URC 上报 <cell>, <arfcn>,<rxl>,<rxq>,<mcc>,<mnc>,<bsic>,<c ellid>,<rla>,<txp>,<lac>,<ta> 如果 <mode>=2,<ncell display>=1 则自动上报网络信息 : +CENG: <mode>,<ncelldisplay> 第 53 页共 259 页 网络服务相关命令

[+CENG: <cell>, <arfcn>,<rxl>,<rxq>,<mcc>,<mnc>,<bsic>,<c ellid>,<rla>,<txp>,<lac>,<ta> <CR><LF>+CENG: <cell>, <arfcn>,<rxl>, <bsic>,<cellid>,<mcc>,<mnc>, <lac> ] 测试命令 AT+CENG=? 返回 +CENG: (<mode> 取值列表 ),(<Ncell display> 取值列表 ) 注 : 参数定义表格定义的是各参数的释义, 表格中参数出场顺序跟语法规则表格中参数出场顺序无关! 参数定义取值对取值的说明 0 关闭工程模式 1 开启工程模式 <mode> 上报状态 2 开启工程模式, 并激活自动上报网络信息 3 开启工程模式, 返回简要网络信息 0 不显示临小区的信息 <Ncell display> 是否显示临小区的信息 1 显示临小区的信息 0 当前服务小区 <cell> 小区序号 1~6 邻接小区号 Mobile country code, 移动国家代 <mcc> 十进制码 Mobile network code, 移动网络代 <mnc> 十进制码 <lac> Location area code, 位置区号十六进制 <cellid> Cell id, 小区号十六进制 base station indentity code, 基站 <bsic> 十进制识别码 <rxl> 接收信号强度十进制 <rxq> 接收信号质量十进制 <arfcn> 信道号十进制 <rla> 最小接收强度十进制 <txp> 公共控制信道最大传输功率十进制 <TA> Time advanced, 时间提前量十进制 举例 : 命令 ( ) 实例 解释和说明 / 返回 () AT+CENG=? 测试命令 第 54 页共 259 页 网络服务相关命令

+CENG: (0-3),(0-1) AT+CENG=1,0 工程模式打开, 且不上报临小区信息 AT+CENG? 查询网络信息 +CENG:1,0 +CENG:0,"560,0,0,460,0,11,40738,12,0,6334,255" AT+CENG=1,1 工程模式打开, 且上报临小区信息 AT+CENG? 查询网络信息 +CENG:1,1 +CENG:0,"560,0,0,460,0,11,40738,12,0,6334,255" +CENG:1,"580,0,460,0,52,36977,6334" +CENG:2,"16,0,460,0,24,40833,6334" +CENG:3,"576,0,460,0,51,37153,6334" +CENG:4,"583,0,460,0,25,62435,6338" +CENG:5,"18,0,460,0,12,37905,6334" +CENG:6,"573,0,460,0,3,0,6334" AT+CENG=2,1 设置为自动上报, 且上报临小区信息 +CENG:0,"560,0,0,460,0,11,40738,12,0,6334,255" +CENG:1,"580,0,460,0,52,36977,6334" +CENG:2,"576,0,460,0,51,37153,6334" +CENG:3,"583,0,460,0,25,62435,6338" +CENG:4,"16,0,460,0,24,40833,6334" +CENG:5,"18,0,460,0,12,37905,6334" +CENG:6,"573,0,460,0,3,0,6334" AT+CENG=2,0 该命令等价于 :AT+CENG=2 设置为自动上报, 且不上报临小区信息 +CENG:0,"560,0,0,460,0,11,40738,12,0,6334,255" AT+CENG=3,1 设置工程模式打开, 且上报简要网络信息 ( 上报临小区信息 ) AT+CENG? +CENG:3,1 第 55 页共 259 页 网络服务相关命令

+CENG:0,460,0,6334,40738,11,0 +CENG:1,460,0,6334,36977,52,0 +CENG:2,460,0,6334,37153,51,0 +CENG:3,460,0,6338,62435,25,0 +CENG:4,460,0,6334,40833,24,0 +CENG:5,460,0,6334,37154,20,0 +CENG:6,460,0,6334,37905,12,0 AT+CENG=3,0 设置工程模式打开, 且上报简要网络信息 ( 不上报临小区信息 ) AT+CENG? +CENG:3,1 +CENG:0,460,0,6334,40738,11,0 5.8 网络参数查询 :AT%NTPM 该命令可以查询网络参数, 服务小区参数, 临小区参数, 基站信息等 命令类型 语法 返回和说明 如果 <mode>=1, %NTPM: <arfcn>,<rxlev>,<bsic>,<cell_id>,<lac> 如果 <mode>=3, 设置命令 AT%NTPM=<mode> %NTPM: cell_num <arfcn_nc1>,<arfcn_nc2>,<arfcn_nc3>,<arfcn_nc4>,<a rfcn_nc5>,<arfcn_nc6> <rxlev_nc1>,<rxlev_nc2>,<rxlev_nc3>,<rxlev_nc4>,<rx lev_nc5>,<rxlev_nc6> <bsic_nc1>,<bsic_nc2>,<bsic_nc3>,<bsic_nc4>,<bsic_n c5>,<bsic_nc6> <cell_id_nc1>,<cell_id_nc2>,<cell_id_nc3>,<cell_id_nc4 >,<cell_id_nc5>,<cell_id_nc6> <lac_nc1>,<lac_nc2>,<lac_nc3>,<lac_nc4>,<lac_nc5>, <lac_nc6> 第 56 页共 259 页 网络服务相关命令

测试命令 AT%NTPM=? 返回 % NTPM: (1,3) 参数定义取值对取值的说明 1 服务小区网络信息 <mode> 上报网路信息类别 3 临小区网络信息 <arfcn> 十进制数字 <rxlev> received signal level 十进制数字 <lac> Location area code 十进制数字 <cellid> Cell id 十进制数字 <bsic> base station indentity code 十进制数字 nc1~6 next cell 1~6 absolute radio frequency channel number 举例 : 命令 ( ) 实例 解释和说明 / 返回 () AT%NTPM=? 测试命令 %NTPM:(1,3) AT%NTPM=1 查询服务小区相关信息 %NTPM:18,24,12,37905,6334 AT%NTPM=3 查询邻接小区相关信息 %NTPM: 6 20,26,576,13,571,3 0,0,0,0,0,0 40,14,51,53,33,4 62513,37395,37153,0,0,37714 6318,6334,6334,6334,6334,6334 5.9 获取基站定位 (LBS) 位置和日期时间 :AT+AMGSMLOC 该命令可以获取模块当前的基站定位 (LBS) 位置 ( 经度和纬度 ) 和日期时间 第 57 页共 259 页 网络服务相关命令

命令类型语法返回 执行命令 AT+AMGSMLOC +AMGSMLOC:<status>,<longitude>,<latitude>,<datetime> 参数定义取值对取值的说明 0 获取成功 <status> 获取信息是否成功 1 获取失败 <longitude> 经度 0~180 只有东经 <latitude> 纬度 0~90 只有北纬形式如 :year/month/day hh:mm:ss <datetime> 日期和时间例如 :2013/04/18 14:20:24 举例 : 命令 ( ) 实例 / 返回 () AT+AMGSMLOC +AMGSMLOC: 0,121.5988,31.20223,2013/04/18 14:20:24 解释和说明 5.10 伪基站识别 :AT+JDC 该命令可以识别伪基站的干扰 命令类型 语法 返回 执行命令 AT+JDC=1 使用方法 : 命令 ( ) 实例 解释和说明 / 返回 () AT+CENG=1,0 打开小区信息自动上报 AT+JDC=1 打开伪基站识别 (URC) +JDR:1 当识别到伪基站时, 自动上报此 URC 第 58 页共 259 页 网络服务相关命令

6 NTP 相关命令 Network Time Protocol(NTP) 是用来使计算机时间同步化的一种协议, 它可以使计算机对其服务器或时钟源 ( 如石英钟,GPS 等等 ) 做同步化, 它可以提供高精准度的时间校正 (LAN 上与标准间差小于 1 毫秒,WAN 上几十毫秒 ), 且可介由加密确认的方式来防止恶毒的协议攻击 时间按 NTP 服务器的等级传播 按照离外部 UTC 源的远近把所有服务器归入不同的 Stratum( 层 ) 中 模块支持 SNTP 协议 (Simple Network Time Protocol), 并有一套 AT 命令实现网络时间同步功能 6.1 设置 GPRS 承载场景 ID:AT+CNTPCID 命令类型语法返回 设置命令 AT+CNTPCID=<cid> 查询命令 测试命令 AT+CNTPCID? AT+CNTPCID=? +CNTPCID:<cid> +CNTPCID:(<cid> 取值范围 ) 参数定义取值对取值的说明 <cid> 承载场景 id 1-3 取值同 +SAPBR 命令的 <cid> 6.2 同步网络时间 :AT+CNTP 命令类型语法返回 设置命令 AT+CNTP=<NTP server>[,<time zone>] 执行命令 查询命令 测试命令 AT+CNTP AT+CNTP? AT+CNTP=? +CNTP: <code> +CNTP: <NTP server>,<time zone> +CNTP: <NTP server> 允许的长度,<time zone> 的范围 注意事项 使用 CNTP 同步时间之前, 需要激活 PDP 上下文 第 59 页共 259 页 NTP 相关命令

网络时间同步成功后, 可以用 AT+CCLK 命令来查询模块当前时间 参数 定义 取值 对取值的说明 <NTP server> NTP 服务器 域名或 ip 地址 <time zone> 本地时区 -47~+48 单位 :1/4 时区 时区是 -12~+12, 但是有的国家会用半时区, 甚至 1/4 时区, 为兼顾这些国家, 时区单位为 :1/4 时区 负号表示是西时区, 正号表示为东时区 1 网络时间同步成功 61 网络错误 <code> 操作码 62 DNS 解析错误 63 连接错误 64 服务响应错误 65 服务响应超时 举例 : 命令 ( ) / 返回 () 方法一 : 实例 AT+SAPBR=3,1,"Contype","GPRS" AT+SAPBR=3,1,"APN","CMNET" AT+SAPBR=1,1 AT+CNTPCID=1 AT+CNTP 解释和说明 +CNTP:1 AT+CCLK? +CCLK: "18/05/16,15:49:28+32" 方法二 : AT+CSTT=CMIOT AT+CIICR AT+CNTP 第 60 页共 259 页 NTP 相关命令

+CNTP:1 AT+CCLK? +CCLK: "18/05/16,15:59:28+32" 第 61 页共 259 页 NTP 相关命令

7 安全控制命令 7.1 输入 PIN 码 :AT+CPIN 命令类型语法返回和说明 设置命令 查询命令 AT+CPIN=<pin>[,<newpin>] AT+CPIN? 说明 : 如果需要的 PIN 是 SIM PUK 或者 SIM PUK2, 则需要第二个 pin <new pin> 用来取代 SIM 卡中的原有的 pin +CPIN: <code> 测试命令 URC AT+CPIN=? +CPIN:<code> 参数 定义 取值 对取值的说明 <pin> 密码 - 字符串型 <newpin> 新密码 - 字符串型 READY ME 不再需要提供密码 SIM PIN ME 等待提供 SIM 卡的 PIN 码 <code> SIM PUK ME 等待提供 SIM 卡的 PUK 码 SIM PIN2 ME 等待提供 SIM 卡的 PIN2 码 SIM PUK2 ME 等待提供 SIM 卡的 PUK2 码 举例 : 命令 ( )/ 实例 解释和说明 返回 () AT+CPIN? 查询 PIN 码锁状态 +CPIN: READY 表示 PIN 码锁并未开启 AT+CLCK= SC,1, 1234 开启开机 PIN 码锁,1234 是 PIN 码,SC 表示是 SIM 卡 返回 后, 重启模块 +CPIN: SIM PIN 重新开机后, 模块会自动上报 PIN 码状态,SIM PIN 表示开机 PIN 第 62 页共 259 页 安全控制命令

AT+CPIN= 1234 此时需要输入 PIN 码 +CPIN: READY 码为 ON 的状态 ( 即开机需要输入 PIN 码 ) 表示密码正确,PIN 码锁解锁 AT+CLCK= SC,2 查询当前的开机 PIN 码是否仍然开启 +CLCK: 1 1 表示仍然有开机 PIN 码提示 AT+CLCK= SC,0, 1234 关闭开机 PIN 码提示 返回 后重新开机 +CPIN: READY 重新开机后, 模块会自动上报 PIN 码状态,READY 表示开机 PIN 码 :OFF 7.2 设备锁定 :AT+CLCK 执行命令锁定 解锁 查询 ME 或网络设备 <fac> 一般需要输入密码 命令类型 语法 返回和说明 当 <mode> 2, 设置命令 当 <mode>=2, AT+CLCK=<fac>,<mode> +CLCK:<status>[,<class1><CR><LF> [,<password>[,<class>]] +CLCK:<status>,<class2>[...]] 测试命令 AT+CLCK=? +CLCK:(<fac> 取值列表 ) 注 : 参数定义表格定义的是各参数的释义, 表格中参数出场顺序跟语法规则表格中参数出场顺序无关! 参数 定义 取值 对取值的说明 "AO" 禁止所有出局呼叫 "OI" 禁止所有国际出局呼叫 "OX" 禁止所有国际出局呼叫, 归属国除外 <fac> 设备 "AI" 禁止所有入局呼叫 "IR" 归属国以外漫游时, 禁止所有入局呼叫 AB 禁止所有服务, 仅当 mode=0 有效 AG 禁止所有出局服务, 仅当 mode=0 有效 AC 禁止所有入局服务, 仅当 mode=0 有效 第 63 页共 259 页 安全控制命令

<mode> <status> <classx> <password> 工作模式激活状态业务类型密码 "SC" SIM "FD" SIM 卡固定拨号特点 "BN" SIM Barred Dailed Number "PC" corporate personalisation "PN" 网络个性化 ( 请参考 GSM 02.22 [33]) "PP" 服务供应商个性化 ( 请参考 GSM 02.22 [33]) "PU" 网络子集个性化 ( 请参考 GSM 02.22 [33]) 0 解锁 1 锁定 2 查询状态 0 非激活 1 激活 1 语音 ( 电话业务 ) 数据 ( 所有承载业务 ; 当 <mode>=2 时, 如果 TA 不支持 16 32 64 2 128 的取值, 该参数仅表示部分承载业务 ) 4 传真 ( 传真业务 ) 7 所有业务字符型 ; 与 ME 用户接口使用的设备密码 修改密码命令 +CPWD 设置的密码相同 举例 : 命令 ( )/ 返回 () 实例 解释和说明 请参考 +CPIN 词条 7.3 修改密码 :AT+CPWD 命令类型 语法 返回和说明 设置命令 AT+CPWD=<fac>,<oldpwd>, <newpwd> 测试命令 AT+CPWD=? +CPWD: (<fac>,<pwdlength>) 取值列表 参数 定义 取值 对取值的说明 <oldpwd>,<newpwd> 老密码, 新密码 - 字符型 ; 与 ME 用户接口使用的设备密码 修改密码命令 +CPWD 设置的密码相同 <pwdlength> 密码长度 - 整数型, 设备支持的最大密码长度 第 64 页共 259 页 安全控制命令

<fac> 设备与 AT+CLCK 中定义相同 举例 : 命令 ( )/ 返回 () 实例 解释和说明 AT+CLCK= SC,1, 1234 如果要修改开机 PIN 码, 必须先要打开开机 PIN 码锁 AT+CPWD="SC","1234","8888" 修改开机 PIN 码为 8888 此时重启模块 +CPIN: SIM PIN 重新开机后, 模块会自动上报 PIN 码状态,SIM PIN 表示开机 PIN 码 :ON AT+CPIN= 8888 此时需要输入 PIN 码 +CPIN: READY 表示密码正确,PIN 码锁解锁 AT+CPWD=? +CPWD: ("SC",8),("AO",4),("OI",4),("OX",4),("AI",4),("IR",4),("AB",4),("AG",4),("AC",4),("FD",8 ),("BN",8),("P2",8) 查询各个密码的最大长度 查询结果 可以看出 PIN 码的最大长度是 8 位 第 65 页共 259 页 安全控制命令

8 设备 / 串口控制命令 8.1 手机活动状态 :AT+CPAS 命令类型 语法 返回和说明 设置命令 AT+CPAS +CPAS: <pas> 测试命令 AT+CPAS=? +CPAS: (<pas> 取值列表 ) 参数 定义 取值 对取值的说明 0 ME 准备就绪 2 未知,ME 未准备好 <pas> 状态 3 振铃 4 呼叫进行中 举例 : 命令 ( ) 实例 解释和说明 / 返回 () AT+CPAS=? 查询 <pas> 取值范围 +CPAS: (0,2,3,4) ATD138********; 模块主叫一个手机号码 AT+CPAS 对方振铃, 但是未接听的时候, 模块这边做一次查询 +CPAS: 3 3 表示振铃 (URC) CONNECT 被叫接听 AT+CPAS 被叫接听后, 模块这边查询状态 +CPAS: 4 4 表示呼叫进行中 第 66 页共 259 页 设备 / 串口控制命令

(URC) NO CARRIER 被叫挂断电话 AT+CPAS 被叫挂机后, 模块再查询一次状态 +CPAS: 0 0 表示 ME 准备好 (idle 状态 ) 8.2 关机 :AT+CPOWD 命令类型 语法 返回和说明 设置命令 AT+CPOWD=<n> <n>=0, 紧急关机, 没有任何返回 <n>=1, 正常关机, NORMAL POWER DOWN 8.3 查询电池充电状态和电量 :AT+CBC 命令类型 语法 返回 设置命令 AT+CBC +CBC: <bcs>,<bcl>,<voltage> 测试命令 AT+CBC=? +CBC: (<bcs> 取值列表 ), (<bcl> 取值列表 ),<voltage> 注意事项 要正确检测电量和充电状态需要相关的硬件支持 参数 定义 取值 对取值的说明 0 充电器不在 <bcs> 电池状态 1 充电中 2 充电停止 ( 充满或者电池不在 ) <bcl> 电池相对于其满电量的百分比 0~100 单位 :% <voltage> 电池电压 单位 :mv 8.4 网络灯闪烁的时间间隔 :AT+SLEDS 命令类型 语法 返回和说明 设置命令 AT+SLEDS=<mode>, <timer_on>,<timer_off> 查询命令 AT+SLEDS? +SLEDS:<mode>, <timer_on>,<timer_off> 第 67 页共 259 页 设备 / 串口控制命令

测试命令 AT+SLEDS=? +SLEDS: (<mode> 取值列表 ), (<timer_on> 取值列表 ), (<timer_off> 取值列表 ) 参数 定义 取值 对取值的说明 1 设置没有注册上网络时的网络灯闪烁时间间隔 <mode> 设置何种状态下的闪灯间隔 2 设置已经注册上网络时的网络灯闪烁时间间隔 3 设置 PPP 通讯状态时的网络灯闪烁时间间隔 <timer_on> 灯亮的时间 0 或 40~65535 单位 ms, 0 为常亮 <timer_off> 灯灭的时间 0 或 40~65535 单位 ms, 0 为常灭 举例 : 命令 ( ) / 实例 解释和说明 返回 () AT+SLEDS=? 测试命令 +SLEDS : (1-3),(0,40-65535),(0,40-65535) AT+SLEDS? 查询命令 +SLEDS:<2>,<64>,<3000> +SLEDS:<1>,<64>,<800> +SLEDS:<3>,<64>,<300> 此为缺省配置 8.5 PWM 命令 :AT+SPWM 命令类型语法返回和说明 设置命令 AT+SPWM=<index>,<period>,<level> 参数定义取值对取值的说明 <index> 使能的硬件管脚 :UART2_TXD(Air202 PIN28) 0 频率 ( 单位 HZ):80-65535 占空比 :0-100 1 使能的硬件管脚 :UART2_RXD(Air202 PIN27) 第 68 页共 259 页 设备 / 串口控制命令

<period> 时钟周期 : 请参考 <period> 解释高电平时间 : 请参考 <level> 解释当 index=0 时 : period 取值在 80-1625 hz 范围内时,level 占空比取值范围为 :0-100; period 取值在 1626-65535 hz 范围时, 设 x=162500/period, y=x * level / 100, x 和 y 越是接近正的整数, 则输出波形越准 当 index=1 时,period 和 level 值如下 : period 0 1 2 3 4 5 6 7 时钟周期, 单位 ms 125 250 500 1000 1500 2000 2500 3000 level 1 2 3 4 5 6 7 8 <level> 高电平时 间, 单位 ms 15.6 31.2 46.9 62.5 78.1 93.7 110 125 level 9 10 11 12 13 14 15 高电平时间, 单位 ms 141 156 172 187 203 219 234 注 : 当 level=0 时, 关闭 PWM 8.6 设置休眠唤醒 1:AT+CSCLK 命令类型 语法 返回和说明 设置命令 AT+CSCLK=<n> 查询命令 AT+CSCLK? +CSCLK: <n> 测试命令 AT+CSCLK=? +CSCLK: (list of supported <n>s) 参数定义取值对取值的说明 第 69 页共 259 页 设备 / 串口控制命令

0 关闭模块休眠功能 模块无法进入休眠状态 缺省值 休眠模式 1 由 DTR 控制是否进入休眠 当串口是全串口时, 可以采用这种模式 当 DTR 拉高, 设置 AT+CSCLK=1, 没有其他中断产生 (GPIO 来电 来短信等), 模块将自动进入休眠模式 1 在这种模式下, 模块仍能接收来自网络的呼叫和短消息 在休眠模式下, 串口是不可用的 <n> 休眠设置 1 2 当模块处于休眠模式 1 时, 可以通过以下的几种方法唤醒模块 接收到外部中断信号 ; 接收到语音或数据呼叫 ; 接收到短消息 (SMS); 拉低 DTR 引脚大概 50ms 注意 : 模块收到语音 数据呼叫或短消息后会有 URC 上报, 但串口不能响应 AT 命令 只有将 DTR 引脚拉低 50ms 后模块才会响应 AT 命令 休眠模式 2 自动进入休眠 当串口为三线串口( 只连接 TXD,RXD,GND 三个信号线 ), 休眠功能只能采用休眠模式 2 设置 AT+CSCLK=2 后, 模块会连续监测串口数据, 如果模块的串口上没有数据输入, 并且没有其他中断产生 (GPIO, 来电, 来短信, 来数据等 ), 缺省 5 秒后模块会自动进入休眠模式 2( 注 : 休眠模式 2 情况下,DTR 电平对模块休眠唤醒功能无影响 ) 在这种模式下, 模块仍能接收来自网络的呼叫和短消息 当模块处于休眠模式 2 时, 可以通过以下的几种方法唤醒模块 接收到外部中断信号 ; 接收到语音或数据呼叫 ; 接收到短消息 (SMS); 串口接收到数据 举例 : 命令 ( ) / 返回 () 实例 休眠唤醒应用实例 1( 适用于三线串口 ) 解释和说明 AT+CSCLK=2 当使用三线串口时, 设置为休眠模式 2 在这种休眠模式下, 以下情 况同时满足时, 模块进入休眠 AT+WAKETIM? 查询进入休眠的时间 +WAKETIM:5 模块在 AT 口无输入 没有 URC 上报 ( 包括没有来电, 没有短信, 没有收到服务器发来的数据等 ) 无 GPIO 中断 查询结果为 5 秒钟 5 秒钟是 CSCLK 设置休眠后缺省进入休眠的时间 AT+WAKETIM=8 如果需要修改进入休眠的时间, 可以通过 WAKETIM 来设置, 例如改 为 8( 一般情况下不需要设置 ) 第 70 页共 259 页 设备 / 串口控制命令

AT+CSCLK=0 0, 设置为不允许模块休眠 休眠唤醒应用实例 2( 适用于全串口 ) 注 :WAKETIM 此时不要设置为 0, 这样会使休眠失效 模块唤醒方式有以下几种 : 1) 串口输入几个 AT 命令 ( 一个往往唤不醒, 需要多输几个 ) 2) 任意 URC 上报 ( 包括来电, 来短信, 收到服务器发的数据等 ) 3) GPIO 中断 AT+CSCLK=1 当使用全串口时, 设置为休眠模式 1 在这种休眠模式下, 以下情况 同时满足时, 模块进入休眠 AT+WAKETIM? 查询进入休眠的时间 +WAKETIM:5 模块在 AT 口无输入 没有 URC 上报 ( 包括没有来电, 没有短信, 没有收到服务器发来的数据等 ) 模块 DTR 为高 (DTR 高, 是允许模块休眠 ;DTR 低, 是唤醒模块 ) 无 GPIO 中断 查询结果为 5 秒钟 5 秒钟是 CSCLK 设置休眠后缺省进入休眠的时间 AT+WAKETIM=8 如果需要修改进入休眠的时间, 可以通过 WAKETIM 来设置, 例如改 为 8( 一般情况下不需要设置 ) AT+CSCLK=0 0, 设置为不允许模块休眠 注 :WAKETIM 此时不要设置为 0, 这样会使休眠失效 模块唤醒方式有以下几种 : 串口输入几个 AT 命令 ( 一两个 AT 就可以了 ) 任意 URC 上报 ( 包括来电, 来短信, 收到服务器发的数据等 ) GPIO 中断 DTR 唤醒 (DTR 低, 唤醒 ;DTR 高, 允许休眠 ) 8.7 设置休眠唤醒 2:AT+WAKETIM 命令类型 语法 返回和说明 设置命令 AT+WAKETIM=<wait_time> 查询命令 AT+WAKETIM? +WAKETIM:<wait_time> 注意事项 此命令无论是三线串口还是全串口皆适用 请用 WAKETIM 命令设置模块休眠时间, 请用 CSCLK 设置休眠 第 71 页共 259 页 设备 / 串口控制命令

参数定义取值对取值的说明在 IDLE 状态下 ( 无 AT, 无短信, 无通话且单位 : 秒,0 表示不休眠 <wait_time> DTR 为高的情况下 ) 等待多长时间进入休 0~4294967295 缺省值为 5 眠状态 举例 : 命令 ( ) / 实例 解释和说明 返回 () AT+WAKETIM=8 设置休眠时间为 8 秒 8.8 开启和关闭 SIM 卡在位硬件检测 :AT+CSDT 该命令的设置命令可以开启 SIMDET 这个引脚的功能 当 AT+CSDT=1 的时候, 使能该引脚 此时配合 SIM 卡外围 检测电路就能检测 SIM 卡在位状态, 即插卡或掉卡 命令类型 语法 返回和说明 设置命令 AT+CSDT=<mode> 查询命令 AT+CSDT? +CSDT:<mode> 测试命令 AT+CSDT=? +CSDT: (<mode> 取值列表 ) 注意事项 当检测到 SIM 卡在位的时候, 立刻会有一个 URC 上报 :+CPIN: READY 当检测到 SIM 卡不在位的时候, 立刻会有一个 URC 上报 :+CPIN: NOT INSERTED 参数定义取值对取值的说明 <mode> SIM 在位检测的开启状态 0 关闭 SIM 卡在位检测 1 开启 SIM 卡在位检测 8.9 SIM 卡在位软件检测参数设置 :AT+AMSDTC 建议优先使用 SIM 卡在位的硬件检测, 即 : 用 AT+CSDT 命令使能 SIMDET 引脚, 并使用 SIM 检测电路 因为硬件 检测的速度很快, 几乎没有时延 如果没有条件使用硬件的 SIM 卡在位检测, 模块缺省是有软件检测的, 且软件 SIM 检测功能不能关闭 但是可以使 第 72 页共 259 页 设备 / 串口控制命令

用本 AT 命令对参数 ( 掉卡检测周期和插卡检测周期 ) 进行设置 命令类型 语法 返回 设置命令 AT+AMSDTC=<removeDetectTime>,<In sertdetecttime> 查询命令 AT+AMSDTC? +AMSDTC: <removedetecttime>,<insertdetecttime> 测试命令 AT+AMSDTC=? +AMSDTC: (<removedetecttime> 取值范围 ), (<InsertDetectTime> 取值范围 ) 参数 定义 取值 对取值的说明 <removedetecttime> 指有卡状态下检测是否掉卡的时间周期 1~29 单位是秒 默认值 29 <InsertDetectTime> 指无卡状态下检测是否卡重新插入的周期 3~120 单位是秒 默认值 50 8.10 设置 TE-TA 波特率 :AT+IPR 命令类型 语法 返回和说明 设置命令 AT+IPR=<rate> 查询命令 AT+IPR? +IPR: <rate> 测试命令 AT+IPR=? +IPR: (<rate> 取值列表 ) 1. 缺省波特率 =0, 即自适应波特率 2. 模块开机时需要 MCU 那边输入一个 AT ( at, at, At 无法训练波特率 ), 即可把模块的波特率训练 成跟主控一致, 此时会有初始化信息上报, 表示训练成功 注意事项 3. 训练成功后,AT 命令可以识别大写, 小写或大小写混写 4. AT+IPR=x;&W, 可以设置固定波特率并保存 重启模块后, 模块仍然是这个波特率 x, 此时不用输 入任何东西, 模块就会自动上报开机初始化信息 注 :x 是波特率, 例如 115200 第 73 页共 259 页 设备 / 串口控制命令

参数 定义 取值 对取值的说明 0 自适应波特率 1200 2400 4800 9600 14400 <rate> 波特率, 单位 bps 19200 28800 38400 57600 115200 230400 460800 921600 举例 : 命令 ( )/ 实例 解释和说明 返回 () AT+IPR=? 查询当前支持的波特率 +IPR: (),(0,1200,2400,4800,9600,14400,19200,28800,38 400,57600,115200,230400,460800,921600) 8.11 设置 TE-TA 帧格式 :AT+ICF 命令类型 语法 返回和说明 设置命令 AT+ICF=<format>,[<parity>] 查询命令 AT+ICF? +ICF: < format >[,<parity >] 测试命令 AT+ICF=? +ICF: (<format> 取值列表 ),(<parity> 取值列表 ) 参数定义取值对取值的说明 <format > 帧格式 1 8 数据位 0 奇偶校验位 2 停止位 第 74 页共 259 页 设备 / 串口控制命令

<parity> 校验位 2 8 数据位 1 奇偶校验位 1 停止位 3 8 数据位 0 奇偶校验位 1 停止位 4 7 数据位 0 奇偶校验位 2 停止位 5 7 数据位 1 奇偶校验位 1 停止位 6 0 奇数位 1 偶数位 3 空格 (0) 7 数据位 0 奇偶校验位 1 停止位 注 :0 奇偶校验位是指无奇偶校验位, 此时 <parity> 被忽略,AT+ICF? 的响应是 :+ICF:<format>,255 举例 : 命令 ( )/ 返 实例 解释和说明 回 () AT+ICF=? 查询参数取值范围 +ICF: (1-6),(0-3) 8.12 TE-TA 本地流量控制 :AT+IFC 流控简介 : 对 GSM 模块与 DTE 之间可靠的通信而言, 流控是很重要的 假使一次数据或传真呼叫中, 发送端的发送速度大于 接收端的接收速度, 当接收缓存接近满的时候, 接收端应该有方法让发送端暂停发送, 直到它重新赶上 这就是流控 一般来说, 有两种方法来实现流控 它们是软件流控和硬件流控 在多路复用模式下, 推荐采用硬件流控 AirM2M GPRS+GPS 模块对这两种流控方式都支持 软件流控软件流控发送不同的字符去暂停 (XOFF, 十进制 19) 和恢复 (XON, 十进制 17) 数据流 它适用于仅仅有三根线的串口通信 AirM2M GPRS+GPS 使用软件流控, 则需要通过下面的 AT 命令配置 : AT+IFC=1, 1 因为这个配置不保存, 所以若希望重启后继续使用软件流控, 需要通过 AT&W 保存到用户配置表中 注 : 当模块传送的是二进制 / 十六进制数据时, 不适合软件流控方式, 因为 TE 可能会将二进制数据当成流控字符 硬件流控硬件流控通过 RTS/CTS 信号来实现 当接收缓存快满的时候, 模块把 CTS 信号设置为无效, 数据传输被暂停 当模块的接收缓存可以接收更多数据时,CTS 信号重新被设置为有效 要实现硬件流控功能, 请确保你的应用串口包含 RTS/CTS 线 第 75 页共 259 页 设备 / 串口控制命令

命令类型 语法 返回和说明 设置命令 AT+IFC=<dce_by_dte>,[< dte_by_dce>] 查询命令 AT+IFC? +IFC: < dce_by_dte>,< dte_by_dce> 测试命令 AT+IFC=? +IFC: (<dce_by_dte> 取 值 列 表 ),<dte_by_dce> 取值列表 ) 注意事项 模块缺省无流控 如果需要硬件流量控制, 请输入 AT+IFC=2,2;&W, 重启模块就一直生效了 参数定义取值对取值的说明 < dce_by_dte> TE 接收来自 TA 数据时采用的流控方法 < dte_by_dce> TA 接收来自 TE 数据时采用的流控方法 0 无流控 1 软件流控 2 硬件流控 0 无流控 1 软件流控 2 硬件流控 举例 : 命令 ( ) / 实例 解释和说明 返回 () AT+IFC=? 查询 < dce_by_dte> 和 < dte_by_dce> 取值范围 +IFC: (0-2),(0-2) 查询结果 AT+IFC? 查询当前的流量控制方式 +IFC: 2,2 硬件流控 8.13 多路复用 :AT+CMUX 命令类型语法返回 设置命令 AT+CMUX= 第 76 页共 259 页 设备 / 串口控制命令

[<mode>[,<subset>[,<port_spee d>[,<n1>[,<t1>[,<n2>[,<t2>[, <T3>[,<k>]]]]]]]]] 查询命令 测试命令 AT+CMUX? AT+CMUX=? +CMUX:[<mode>[,<subset>[,<port_speed>[,<N1>[, <T1>[,<N2>[,<T2>[,<T3>[,<k>]]]]]]]]] +CMUX:(<mode>),(<subset>s),( <port_speed>s),(< N1>s),(<T1>s),(<N2>s),(<T2>s),(<T3>s),(<k>s) 参数定义取值对取值的说明 <mode> 复用透传机制 0 基本选择 <subset> 控制通道的复用器建立的方式 0 仅使用 UIH 包文 <port_speed> 传输速率, 单位为 bits/s 1 9600 2 19200 3 38400 4 57600 5 115200 6 230400 7 460800 <N1> 最大报文大小 1~255 默认 :127 <T1> 接收 timer, 以 10ms 为单位 1-255 默认 :10(100 ms) <N2> 重传的最大数量 0-100 默认 :3 <T2> 复用器控制通道的响应定时器, 以 10ms 为单位 2-255 默认 :30 <T3> 唤醒响应定时器, 以秒为单位 1-255 默认 :10 <k> 窗口大小, 适用于有错误恢复选项的高级操作 1-7 默认 :2 第 77 页共 259 页 设备 / 串口控制命令

9 电话本命令 9.1 选择电话本存储类型 :AT+CPBS 选择当前电话本的存储类型, 以被别的电话本命令使用 命令类型 语法 返回和说明 设置命令 AT+CPBS=<storage> 查询命令 AT+CPBS? +CPBS:<storage>[,<used>,<total>] 测试命令 AT+CPBS=? +CPBS: (<storage> 取值列表 ) 参数 定义 取值 对取值的说明 "LA" Last Number All List SM SIM/USIM 电话簿 "FD" SIM 固定拨号号码电话簿 ( 此功能开启及存储容量取决于 SIM 卡 ) <storage> 存贮类型 "ON" SIM 卡中的号码 (MSISDN) 列表 ( 也可以使用 +CNUM 命令读出该存储器中的信息 ) "BN" SIM Barred Dialed Number "SD" SIM Service Dail Number VM SIM Voice mail Box <used> 已使用的位置 - 整数类型取值, 表示所选存储器中使用过的位置号码 <total> 位置总数 - 整数类型取值, 表示所选存储器中使用过的所有位置号码 举例 : 命令 ( ) / 实例 解释和说明 返回 () AT+CPBS=? 查询电话本所有的存储类型 +CPBS: ("LA","SM","FD","ON","BN","SD","VM") AT+CPBS? 查询当前的 PB 存储类型 +CPBS: "SM",6,250 第 78 页共 259 页 电话本命令

AT+CPBS="ON" 设置电话本类型为 ON( 自身号码 ) AT+CPBS? 查询一下 +CPBS: "ON",1,2 类型为 ON, 总共 2 个记录, 已经用了 1 个 AT+CPBR=1,2 查询这个号码 因为只有一个号码, 也可以用 AT+CPBR=1 +CPBR: 1,"+8613762613263",145,"" 总共有 4 个未接电话 9.2 查找电话本记录 :AT+CPBF 命令类型语法返回和说明 设置命令 AT+CPBF=<find text> 用户终端返回与 <find text> 相匹配的电话簿记录 ( 从当前的电话簿存储找, 存储用 +CPBS 来指定 ): [+CPBF:<index1>,<number>,<type>,<text>[[...]<CR><LF>+C BPF:<index2>,<number>,<type>,<text>]] 测试命令 AT+CPBF=? +CPBF:[<nlength>],[<tlength>] 注 : 参数定义表格定义的是各参数的释义, 表格中参数出场顺序跟语法规则表格中参数出场顺序无关! 参数 定义 取值 对取值的说明 <index1>,<index2> 电话本记录索引 - 整数型, 表示电话簿存储器中位置号码范围内的位置索引 <number> 电话号码 - 字符型 ; 格式由 <type> 定义, <type> 号码类型 - 整数型的八位字节地址类型 ( 请参考 GSM 04.08 第 10.5.4.7 节 ) 和 AT+CSTA 条目 <text>,<findtext> 电话本记录的姓名 - 字符型型, 与 选择 TE 字符集 指令 +CSCS 规定的字符集相同 <nlength> 电话号码的最大长度 - 整数型, 表示 <number> 字段的最大长度 <tlength> 电话本姓名的最大长度 - 整数型, 表示 <text> 字段的最大长度 举例 : 命令 ( )/ 返 实例 解释和说明 回 () 第 79 页共 259 页 电话本命令

AT+CPBF=? +CPBF: 40,14 表示电话本号码的最大长度为 40 字节, 姓名的最大长度为 14 个字节 AT+CPBF= zhangsan 寻找电话本中姓名为 zhangsan 的联系人 +CPBF: 5,"13601***187",129," zhangsan" 找到了,index=5 9.3 读取电话本记录 :AT+CPBR 命令类型 语法 返回和说明 [+CPBR:<index1>,<number>,<type>,<text>[...]<CR><LF> +CPBR:<index2>,<number>,<type>,<text>]] 设置命令 AT+CPBR=<index1>[, <index2>] 说明 : 使用执行指令, 可返回位置号码范围为 <index1>~<index2> 的电话簿记录, 该位置号码范围通过使用 +CPBS 从当前电话簿存储中选择 若 <index2> 为空, 只返回 <index1> 的记录 测试命令 AT+CPBR=? +CPBR: (<index> 取值列表 ),[<nlength>], [<tlength>] 注 : 参数定义表格定义的是各参数的释义, 表格中参数出场顺序跟语法规则表格中参数出场顺序无关! 参数 定义 取值 对取值的说明 <index1>,<index2> 电话本记录索引 整数型, 表示电话簿存储器中位置号码范围内的位置索引 <number> 电话号码 字符型, 格式由 <type> 定义 <type> 号码类型 整数型的八位字节地址类型 ( 请参考 GSM 04.08 第 10.5.4.7 节 ) 和 AT+CSTA 条目 <text> 电话本记录的姓名 字符型型, 与 选择 TE 字符集 指令 +CSCS 规定的字符集相同 <nlength> 电话号码的最大长度 整数型, 表示 <number> 字段的最大长度 <tlength> 电话本记录的最大长度 整数型, 表示 <text> 字段的最大长度 举例 : 命令 ( )/ 返回 () 实例 解释和说明 第 80 页共 259 页 电话本命令

AT+CPBR=1,5 列举 index=1~5 的电话本记录 +CPBR: 1,"137***8187",129,"Test" +CPBR: 2,"139****8096",129,"TEST" +CPBR: 5," 13601***187",129,"zhangsan" 查询结果 AT+CPBR=2 如果若 <index2> 为空, 只返回 <index1> 的记录 +CPBR: 2,"139****8096",129,"TEST" AT+CPBR=? 查询参数范围, 缺省的 PB 存储类型为 SM +CPBR: (1-250),40,14 AT+CPBS="ON" 设置 PB 的存储类型为 ON AT+CPBR=? +CPBR: (1-2),40,14 AT+CPBS="ME" 设置 PB 的存储类型为 ME AT+CPBR=? +CPBR: (1-18),40,21 9.4 写电话本记录 :AT+CPBW 命令类型 语法 返回和说明 说明 : 使用设置命令, 可在当前电话簿存储器的位置号码 <index> 中写入电话簿记录 通过 +CPBS, 可选择当前电话 设置命令 AT+CPBW=[<index>][,<number>[, 簿存储器 <type>,[<text>]]] 注 : 若只有 <index>, 其他字段为空, 则该 index 的电话本记录会被删除 ; 若 <index> 为空, 但给定 <number>, 则记录将被写入电话簿中第一个空闲位置 测试命令 AT+CPBW=? 第 81 页共 259 页 电话本命令

+CPBW: (<index> 取值列表 ),<nlength>,(<type> 取值 列表 ), <tlength> 注 : 参数定义表格定义的是各参数的释义, 表格中参数出场顺序跟语法规则表格中参数出场顺序无关! 参数 定义 取值 对取值的说明 <index> 电话本记录索引 整数型, 表示电话簿存储器中位置号码范围内的位置索引 <number> 电话号码 字符型, 格式由 <type> 定义 <type> 号码类型 整数型的八位字节地址类型 ( 请参考 GSM 04.08 第 10.5.4.7 节 ) 和 AT+CSTA 条目 <text> 电话本记录的姓名 字符串型, 与 选择 TE 字符集 指令 +CSCS 规定的字符集相同 <nlength> 电话号码的最大长度 整数型, 表示 <number> 字段的最大长度 <tlength> 电话本记录的最大长度 整数型, 表示 <text> 字段的最大长度 举例 : 命令 ( ) / 实例 解释和说明 返回 () AT+CPBW=? 查询参数范围 +CPBW: (1-250),40,(128-255),14 AT+CPBW=1,"150******58",129,"T" 在 index=1 的位置上写入一个电话本记录 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,"" 共有 6 个记录 AT+CPBW=1 删除 index=1 的记录 AT+CPBW=2 删除 index=2 的记录 AT+CPBW=, 123456 若 <index> 为空, 但给定 <number>, 则记录将 被写入电话簿中第一个空闲位置 AT+CPBR=1,6 再次查询所有记录 第 82 页共 259 页 电话本命令

+CPBR: 1, 123456,129, +CPBR: 3,"1502650",129,"" +CPBR: 4,"02131252252",129,"W" +CPBR: 5,"02131252252",129,"A" +CPBR: 6,"1",129,"" 9.5 本机号码 :AT+CNUM 命令类型 语法 返回和说明 执行命令 AT+CNUM +CNUM:[<alpha1>],<number1>,<type1>[,<speed>,<service>][ <CR><LF>+CNUM:[<alpha2>],<number2>,<type2>[,<speed>,< service>]][...]] 测试命令 AT+CNUM=? 参数 定义 取值 对取值的说明 <alphax> 号码的标志名 与 <numberx> 有关, 可选项, 字母数字混编字符串 所用的字符集应使用 选择 TE 字符集 指令 +CSCS 所选择的字符集 <numberx> 本机号码 <typex> 指定的字符型电话号码 <typex> 本机号码的类型 整数型的八位字节地址类型 ( 请参考 GSM 04.08 第 10.5.4.7 节 ) <speed> 速度 请参考 AT+CBST 中 <speed> 定义 0 异步 Modem 1 同步 Modem <service> 本机号相关的服务 2 PAD 接入 ( 异步 ) 3 分组接入 ( 同步 ) 4 语音 5 传真 举例 : 命令 ( )/ 实例 解释和说明 返回 () AT+CPBS= ON 选择电话本类型为 ON(Own Number) 第 83 页共 259 页 电话本命令

AT+CPBW=1, 180********,145 写入本机号码 AT+CNUM 查询本机号码 +CNUM:"","+180********",145 第 84 页共 259 页 电话本命令

10 SIM 卡操作命令 10.1 SIM 卡限制访问 :AT+CRSM 命令类型 语法 返回和说明 如果成功, 则 +CRSM:<sw1>,<sw2> [,<response>] 设置命令 测试命令 AT+CRSM=<command> [,<fileid>[,<p1>,<p2>,<p3>[,<data>]]] AT+CRSM=? 说明 : 使用设置指令, 可向 ME 发送 SIM<command> 和所需参数 注 : 参数定义表格定义的是各参数的释义, 表格中参数出场顺序跟语法规则表格中参数出场顺序无关! 参数 定义 取值 对取值的说明 176 READ BINARY, 二进制读出 ME 传送到 178 READ RECORD, 记录读出 SIM 的指令 <command> 192 GET RESPONSE, 获得返回结果 ( 请参考 214 UPDATE BINARY, 二进制更新 GSM11.1 220 UPDATE RECORD, 记录更新 1 [28]) 242 STATUS, 状态 (2FE2)12258 ICCID file (6F37)28471 ACMmax <fileid> 文件 ID 用于标识 SIM 卡中的基础数据文件 对于除了 STATUS 之外的所有命令都是必须的 (6F07)28423 IMSI (6F39)28473 ACM file (6F3A)28474 ADN file( 即 SIM 电话本 ) (6F40)28480 MSISDN (6F41)28481 PUKT (6F42)28476 SMS (6F46)28486 SPN (6FAD)28589 EFAD(Administrative data) (6FC9)28617 EFMBI (Mailbox Identifier) - 其他取值 <data> - 将写入到 SIM 卡上的信息 ( 十六进制 ) 第 85 页共 259 页 SIM 卡操作命令

0x90 0x00 0x9F 0xXX 0x92 0x0X 0x92 0x40 0x94 0x02 0x94 0x04 0x94 0x08 即 144,0,normal entry of the command, 命令执行成功 length XX of the response data update successful but after using an internal retry routine X times memory problem out of range (invalid address) file ID not found; pattern not found file is inconsistent with the command 整数型, 0x98 0x02 no CHV initialized <sw1>,<sw 2> SIM 卡中与该命令实际运行相关的信息 0x98 0x04 0x98 0x08 access condtion not fullfiled / unsuccessfull CHV verify / authentication failed in contradiction with CHV status 请参考 0x98 0x10 in contradiction with invalidation status GSM 11.11 0x98 0x40 unsuccessfull CHV-verif. or UNBLOCK CHF / CHV blocked /UNBL.blocked 0x98 0x50 increase can not be performed. Max. value reached 0x67 0xXX incorrect parameter P3 (P3 参数设置有问题, 这时应该检查 <fileid> 对应的长度 ) 0x6B 0xXX incorrect parameter P1 or P2 0x6D 0xXX unknown instruction code given in the command 0x6E 0xXX wrong instruction class given in the command 0x6F 0xXX technical problem with no diagnostic given <response> - 前一个指令成功执行完成后返回的结果 第 86 页共 259 页 SIM 卡操作命令

表示 File <P1>,<P2>,<P3> 皆为十进制整数型 定义如下表所示 : access COMMAND INS P1 P2 P3 S/R conditions STATUS 'F2' '00' '00' lgth R <P1>,<P2>, 也就是对 file 的条件 0~255 READ BINARY 'B0' Offset high Offset low lgth R 限制请参考 UPDATE 'D6' Offset Offset lgth S GSM BINARY high low 11.11 READ 'B2' Rec No. Mode lgth R RECORD 对于 GSM 应用一级的 UPDATE RECORD GET 'DC' Rec No. Mode lgth S 'C0' '00' '00' lgth R 文件表示 RESPONSE <P3> file 的长度, 对于电信目录的文 0~255 P3=00 时的意义 : ME->SIM(command 方向, 即 ingoing 方向 ),P3=00 表示没有数据传输 ; SIM->ME(response 方向, 即 outgoing 方向 ),P3=00 表示有 256 个 件表示 file 记录长度 字节的数据传输具体请参考 GSM11.11 举例 : 命令 ( )/ 返回 () 实例 用 AT+CRSM 读写 SIM 短信 EFSMS: 解释和说明 AT+CRSM=178,28476,9,4,176 读取一个 SIM 短信 ( 即 EFSMS) 参数值 参数定义 取值说明 178 <command> READ RECORD 28476 <fileid> SIM 短信 EFSMS 9 <P1> 9 是该短信的 index 4 <P2> 4 是绝对模式 176 <P3> 一个 SIM 短信记录的长度, 固定为 176 +CRSM: 144,0,"010891683110304105F16005 A10110F10008118082127424238805 00033B02015C0A656C76845BA2623 7FF0C60A8672C6B214E0A7F516D41 91CF0030002E003000370035004D00 42FF0C672C67087D2F8BA14F7F7528 672C57306D4191CF00320037003300 查询结果 参数值 参数定义 取值说明 144,0 <sw1>,<sw2> 表示命令执行成功 "01 status 01- 表示已读 MT 短信 ; 00- 表示空短信 ;02- 表示未读 MT 短信 ;05- 表示已发 MO 短信 ;07- 表示未发 MO 短信 第 87 页共 259 页 SIM 卡操作命令

36002E003300340030004D0042FF0C 595799105185672C670852694F5967 2C57306D4191CF003300330035002E 003600360030004D0042FF0C672C67 08FFFFFFFFFFFFFFFFFFFFFFFFFFFF" 0891683 11030410 5.FFFF 请参考 GSM11.11 之 10.3.3 TPDU 包请参考 GSM 03.40 and GSM 04.11 AT+CRSM=220,28476,2,4,176,"0108 91683110304105F16005A10110F100 0811808212742423880500033B0201 5C0A656C76845BA26237FF0C60A86 72C6B214E0A7F516D4191CF003000 2E003000370035004D0042FF0C672C 67087D2F8BA14F7F7528672C57306 D4191CF0032003700330036002E003 300340030004D0042FF0C595799105 185672C670852694F59672C57306D4 191CF003300330035002E003600360 030004D0042FF0C672C6708FFFFFFF FFFFFFFFFFFFFFFFFFFFF" +CRSM: 144,0,"" 写短信, 由于参数解释跟读短信相同, 这里不再赘述 命令执行成功 用 AT+CRSM 读写 SIM 电话本 ( 即 EFADN): AT+CPBR=? 查询 SIM 电话本姓名 ( 即 Alpha Identifier) 的最大长度 X +CPBR: (1-250),40,14 AT+CRSM=220,28474,3,4,28,"54545 454303132333435363738390781313 6383838F8FFFFFFFFFFFF" 返回的第 3 个参数 <tlength>=x=14 一个电话本记录长度 record length=x+14=28 字节 ( 至于为什么 record length=x+14 请参考 GSM11.11 之 10.3.1) 知道了 record length, 才能用 CRSM 之 UPDATE RECORD 命令来写 SIM 电话本记录 参数值 参数定义 取值说明 220 <command> UPDATE RECORD 28474 <fileid> SIM 电话本 ( 即 EFADN) 3 <P1> 3 是该记录的 index 4 <P2> 4 是绝对模式 28 <P3> 一个 SIM 电话本记录的长度, 刚才计算出来为 28 5454545 4303132 3334353 6373839 电话本姓名 TTTT0123456789 第 88 页共 259 页 SIM 卡操作命令

07 length of BCD number 81 TON/NPI 3136383 838F8 电话本号码 (BCD 形式, 需要两两反转 ) 一个不存在的号码 13638383838 +CRSM: 144,0,"" 命令执行成功 AT+CRSM=178,28474,3,4,28 读取第 3 个电话本记录 +CRSM: 144,0," 545454543031323334353637383907 813136383838F8FFFFFFFFFFFF " 查询结果 读取其他 EF 文件 : AT+CRSM =176,12258,0,0,10 该 EF 文件是 transparent 型, 所以用 READ BINARY, offset high 和 offset low 都置为 0, 该 EF 文件长度是 10, 所以这里 P3 设置为 10 +CRSM: 144,0,"98681011271300853289" 读取结果 10.2 通用 SIM 访问 :AT+CSIM 命令类型语法返回和说明 设置命令 AT+CSIM=<length>,<Command> 如果成功, 则 +CSIM: < length >,< response > 测试命令 AT+CSIM=? 参数定义取值对取值的说明 <length> 发往 TE 的 <Command> 或者 <response> 的字符长度 整数类型,2 倍于 <Command> 或 <response> 的实 际长度 ( 字节数 ) <Command> GSM 11.11 SIM 命令 ( 从 ME 字符串类型 ( 字符串应该包含在引号内 ), 进制格式 :16 第 89 页共 259 页 SIM 卡操作命令

< response > 到 SIM) GSM 11.11 SIM 命令的返回 ( 从 SIM 到 ME) 字符串类型 ( 字符串应该包含在引号内 ), 进制格式 :16 举例 : 命令 ( )/ 返回 () 实例 解释和说明 AT+CSCS="HEX" 设置 AT 命令双引号 内字符的编码格式为 HEX(16 进制 ) AT+CSIM=10,"A0F200002F" CSIM 命令可以应用 SIM-ME 接口的任何命令, 前提是需要对 GSM11.11 和 GSM11.14 要熟悉 该命令是个 STATUS 命令, 作用是查询当前 MF/DF/EF 的信息, 其中 : 10 - 内字符个数 A0 - CLA F2 - INS 00 -P1 00 - P2 2F- P3 具体请参考 GSM11.11 第 9 章 +CSIM: 48,"000022c07f10020000000000099 1000c0600838a838a91d3" 48- 内 <response> 长度 0000 RFU(For Future Use) 22c0 DF/EF 内剩余空间 7F10 fileid,7f10 表示这是一个 DF 文件 (DFTELECOM), SIM 卡初始化后, 缺省进入这个 DF 02 type of file,02 表示 DF 0000000000 RFU 09 后面的数据长度后面就是 GSM specific data 第 90 页共 259 页 SIM 卡操作命令

11 短消息命令 11.1 PDU 短信编码格式介绍 图表 1 :MO 短信 PDU 格式 第 91 页共 259 页 短消息命令

图表 2 :MT 短信 PDU 格式 参数 定义 解释和说明 MO Mobile Originated 模块发送的 MT Mobile Terminated 模块接收的 SCA Length 短信中心地址的长度 TON Type of Number 号码类型 : 000: 未知 001: 国际 010: 国内 111: 留作扩展 号码鉴别 : 0000: 未知 NPI Numbering Plan Identifier 0001:ISDN/ 电话号码 1111: 留作扩展 SCA Short Message Center Address 短信中心地址 信息类型 : Bit Explanation MTI Message Type Identifier 11 Reserved 10 SMS-STATUS REPORT (SC => MS) 01 SMS-SUBMIT (MS => SC) 00 SMS-DELIVER (SC => MS) 第 92 页共 259 页 短消息命令

RD Reject Duplicate 拒绝重复短信 VPF Validity Period Format 有效期格式 SRR Status Report Request 状态报告请求, 在 MO 短信中设定 SRI Status Report Indication 状态报告指示, 在 MO 短信中指示该 MT 短信是否为状态报告 UDHI User Data Header Indicator 用户数据头指示 RP Reply Path 回复路径 11.2 选择短消息服务 :AT+CSMS 命令类型 语法 返回和说明 设置命令 AT+CSMS=<service> +CSMS:<mt>,<mo>,<bm> 查询命令 测试命令 AT+CSMS? AT+CSMS=? +CSMS:<service>,<mt>,<mo>,<bm> +CSMS:(<service> 取值列表 ) 参数 定义 取值 对取值的说明 0 GSM03.40 和 03.41(SMS 的 AT 指令语法与 GSM07.05 Phase 2 中的 4.7.0 版本兼容 ; 支持不需要新指令语法的 Phase 2+ 特性 ( 比如 : 使用 Phase 2+ 新编码方案的消息路由 )) <service> 短消息服务级别 GSM03.40 和 03.41(SMS 的 AT 指令语法与 GSM07.05 1 Phase 2+ 版本兼容 ) pdu 模式操作向前兼容于与 phase2 不一致的版本 此时会认为短信 128 pdu 里不包含短信中心号 <mt> SMS-MO( 发短信 ) 0 不支持 1 支持 <mo> SMS-MT( 收短信 ) 0 不支持 1 支持 <bm> 小区广播消息 0 不支持 1 支持 第 93 页共 259 页 短消息命令

11.3 短消息优先存储区选择 :AT+CPMS 本命令可设置用于读取 存储等操作的存储器, 包括 <mem1>, <mem2> 和 <mem3> 命令类型 语法 返回和说明 +CPMS:<used1>,<total1>,<used2>,<total2>,<used3> 设置命令 AT+CPMS=<mem1>[,<mem2,<total3> >[,<mem3>]] 查询命令 AT+CPMS? +CPMS: <mem1>,<used1>,<total1>,<mem2>,<used2>,<total 2>,<mem3>,<used3>,<total3> 测试命令 AT+CPMS=? +CPMS:(<mem1> 取 值 列 表 ),(<mem2> 取 值 列 表 ),(<mem3> 取值列表 ) 注 : 参数定义表格定义的是各参数的释义, 表格中参数出场顺序跟语法规则表格中参数出场顺序无关! 参数 定义 取值 对取值的说明 读取和删除消息时使用的存储器, 涉 SM SM 即 SIM 卡 <mem1> 及以下 3 个 AT 指令 : AT+CMGL AT+CMGR AT+CMGD ME ME 为模块 <mem2> 写 存储和发送消息时使用的存储器, SM SM 即 SIM 卡涉及以下 2 个 AT 指令 :AT+CMSS 和 AT+CMGW ME ME 为模块 <mem3> 若没有建立到 TE 的路由, 则将接收 SM SM 即 SIM 卡 的消息存储在该存储器 ME ME 为模块 <used1><used2><used3> <mem1,2,3> 中当前存储消息的数量 - 整数型 <total1><total2><total3> <mem1,2,3> 中可存储的消息的总量 - 整数型 举例 : 命令 ( )/ 返回 () 实例 AT+CPMS=? +CPMS: ("SM","ME"),("SM","ME"),("SM","ME") 解释和说明 第 94 页共 259 页 短消息命令

AT+CPMS? 查询当前优选存储区类型 +CPMS: "SM",8,50,"SM",8,50,"SM",8,50 注 : 目前仅支持 SM 存储类型 请使用 : AT+CPMS= SM, SM, SM 设置短信存储类型 11.4 保存 SMS 设置 :AT+CSAS 命令类型语法返回和说明 设置命令 AT+CSAS=<profile> 执行命令 AT+CSAS 相当于 AT+CSAS=0 测试命令 AT+CSAS=? 说明 : 该命令可将 +CSCA, +CSMP 的消息设置保存到永久存储器 +CSAS: (<profile> 取值列表 ) 参数定义取值对取值的说明 <profile> 保存到哪个永久寄存器 0 保存到寄存器 0 11.5 恢复 SMS 设置 :AT+CRES 命令类型语法返回和说明 设置命令 AT+CRES=<profile> 执行命令 AT+CRES 相当于 AT+CRES=0 测试命令 AT+CRES=? 说明 : 该命令可将 +CSCA, +CSMP 的消息设置从永久存储器恢复到当前存储器 +CRES: (<profile> 取值列表 ) 参数定义取值对取值的说明 0 从寄存器 0 恢复 SM 设置 <profile> 从哪个寄存器恢复设置 1 从寄存器 1 恢复 SM 设置 第 95 页共 259 页 短消息命令

11.6 短消息中心地址 :AT+CSCA 该指令适用于 PDU 格式和 TEXT 格式, 使用设置指令, 可更新级 SMSC(Short Message Service Center) 地址 通过该地址, 可以发送移动终端 SMS,TEXT 模式下, 发送命令和写命令都可使用该项设置 ;PDU 模式下, 发送和设 置指令也可使用该项设置, 但条件是 PDU 编码后的 SMSC 地址长度等于 0 这里必须说明的是虽然用户可以自行设 置短消息的服务中心地址, 但不能随心所欲, 否则短消息发送不出去, 因此在发送短消息之前首先必须搞清楚 SIM 卡 所属的短消息服务中心地址 命令类型 语法 返回和说明 设置命令 AT+CSCA=<sca>[,<tosca>] 查询命令 AT+CSCA? +CSCA:<sca>,<tosca> 测试命令 AT+CSCA=? 参数 定义 取值 对取值的说明 <sca> 短信中心地址 ( Short Message 字符型 ;BCD 数字 ( 或 GSM 缺省字母字符 ) 需要转换为字符 ; - Center Address) 格式由 <tosca> 指定 <tosca> 短信中心地址格式 (Type of sca) - 8 位整数型 ( 缺省值请参考 <toda>) 129 ISDN/ 电话编号方式设计, 国家的 / 国际的未知 145 ISDN/ 电话编号方式设计, 国际号码 161 ISDN/ 电话编号方式设计, 国家的号码 128~255 其他值查阅 GSM 04.08 章节 10.5.4.7 举例 : 命令 ( ) / 实例 解释和说明 返回 () AT+CSCA="+8613010314500",145 对一个联通的 SIM 卡设置短信中心号码 AT+CSCA? 查询下短信中心号码的设置 +CSCA: "+8613010314500",145 已经设置成功 11.7 短消息格式 :AT+CMGF 命令类型语法返回和说明 设置命令 AT+CMGF=[<mode>] 第 96 页共 259 页 短消息命令

查询命令 测试命令 AT+CMGF? AT+CMGF=? 说明 : 设置指令用于指定短消息的输入和发送的格式, 即告诉 TA 输入输出的消息格式是 PDU 格式还是还是 TEXT 格式 +CMGF: <mode> +CMGF: (<mode> 取值列表 ) 参数 定义 取值 对取值的说明 显示消息发送 列表 读和写指令以及接 0 PDU 模式, 默认值 <mode> 收到消息时的主动汇报使用的格式 1 TEXT 模式 举例 : 命令 ( )/ 实例 解释和说明 返回 () AT+CMGF? 查询当前模式 +CMGF: 0 当前模式是 PDU 模式 11.8 设置短信 TEXT 模式参数 :AT+CSMP 命令类型 语法 返回和说明 设置命令 查询命令 AT+CSMP=[<fo>[,<vp>[,<pid >[,<dcs>]]]] AT+CSMP? 说明 : 1) 文本模式下 (+CMGF=1), 当向网络侧发送短消息或将短消息存放在存储器中时, 使用该设置命令可选择需要的附加参数取值 2) 除此之外,+CSMP 还可用于设置从 SMSC 接收到该短消息时算起的有效期 (<vp> 的取值范围为 0... 255) 或定义有效期终止的绝对时间 (<vp> 为字符串时 ) +CSMP:<fo>,<vp>,<pid>,<dcs> 测试命令 AT+CSMP=? +CSMP: (<fo> 取值列表 ),(<vp> 取值列表 ), (<pid> 取值列 第 97 页共 259 页 短消息命令

表 ), (<dcs> 取值列表 ) 注 : 参数定义表格定义的是各参数的释义, 表格中参数出场顺序跟语法规则表格中参数出场顺序无关! 参数 定义 取值 对取值的说明 对 <fo> 字节的具体描述如下 ( 以 SMS-SUBMIT 为例 ): b7 b6 b5 b4 b3 b2 b1 b0 RP UDHI SRR VPF RD MTI - - <fo> 短信首字节 (First Octet) MTI: 消息类型 b1=0&b0=0 表示 SMS-DELIVER b1=0&b0=1 表示 SMS-SUBMIT 其他消息类型请参考 GSM03.40 VPF: 定义短信有效时间的格式 b4=1&b3=0:relative format, 此时 <vp> 是 1 个字节的整数型 b4=1&b3=1:absolute format, 此时 <vp> 是 7 个字节的整数型 SRR:Status Report Request, 设置是否需要短信状态报告 UDHI:User Data Header Indicator, 指示 User Data 单元是否有一个 header RP:Reply Path, 回复路径 RD:Reject Duplicate, 拒绝重复短信取值由 <fo> 字段的 VPF 决定 : 如果 VPF=10(Binary), 则 <vp> 为相对模式, 与短信有效时间的对应关系如下 : <vp> 短信有效期 (Valid Period) <vp> 值 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), 则 <vp> 为绝对模式, 是 7 个字节的字符型, 表示短 信有效期到期的时间点 <pid> TP- 协议 - 标识 0 整数型, 具体请参考 GSM03.40 整数型, 具体请参考 GSM03.38 一般情况下: <dcs> 短信内容编码方案 0-7bit GSM Default 4-8bit Data 8- UCS2 举例 : 命令 ( ) / 实例解释和说明 第 98 页共 259 页 短消息命令

返回 () AT+CSMP=17,11,0,0 设置 TEXT 模式短信发送的各参数 : <fo>=17( 缺省 ), 表示 MTI=01(binary)=SMS-SUBMIT, 并且 VPF=10(binary)= Relative format <vp>=11, 表示有效时间为 (11+1)x5 分钟 =1 个小时 <dcs>=0, 表示编码格式是 7bit GSM Default 11.9 控制 TEXT 模式下短信头信息显示 :AT+CSDH 命令类型 语法 返回和说明 设置命令 AT+CSDH=[<show>] 查询命令 测试命令 AT+CSDH? AT+CSDH=? 说明 : 该设置命令可控制是否在文本模式下的结果码中显示详细的头信息 +CSDH:<show> +CSDH:<show> 参数 定义 取值 对取值的说明 对于 SMS-DELIVER 和 SMS-SUBMIT 短信, 不在 +CMT, +CMGL, +CMGR 指令中显示 <sca> <tosca> <fo> <vp> <pid> <show> 是否显示头信息 0 <dcs>(+csca 和 +CSMP 指令中设置的取值 ) 和 <length> <toda> 或 <tooa> ; 对于 +CMGR 指令结果码中的 SMS-COMMAND, 不显示 <pid> <mn> <da> <toda> <length> <cdata> 1 在结果码中显示这些取值 举例 : 命令 ( )/ 实例 解释和说明 返回 () AT+CSDH? 查询是否显示头信息 +CSDH: 0 查询结果为 : 不显示相关头信息 第 99 页共 259 页 短消息命令

AT+CMGR=8 查询位置为 8 的短信, 内容为 good! +CMGR: "REC READ","+86131******56",,"12/08/08,10:43:04+32" Good! 查询结果 : 不显示 <fo> <vp> <pid> 和 <dcs> <sca> <tosca> AT+CNMI=2,2,0,0,0 设置短信自动内容直接上报给 TE, 不缓 存 ( 将 +CNMI 的第二个参数 <mt> 设置 为 2 即可 ) (URC) +CMT: "+86131******56",,"12/08/08,11:09:23+32" Report 发送一个内容为 Report 的短信给模块, 上报内容不显示 <fo> <vp> <pid> 和 <dcs> <sca> <tosca> AT+CSDH=1 设置 <show>=1, 即显示头信息 AT+CMGR=8 仍旧查询位置 8 的短信 +CMGR: "REC UNREAD","+86131******56",,"12/08/08,10:43:04+ 32",145,17,0,0,"+8613800210500",145,4 Good! 查询结果 : 显示 <fo> <vp> <pid> 和 <dcs> <sca> <tosca> (URC) +CMT: "+86131******56",,"12/08/08,11:05:45+32",145,1 7,0,0,"+8613800210500",145,7 weather 发送一个内容为 weather 的短信给模块, 上报内容显示 <fo> <vp> <pid> 和 <dcs> <sca> <tosca> 11.10 新消息指示 :AT+CNMI 该指令用于 PDU 格式和 TEXT 格式, 当 TE 处于在用状态时 ( 如 :DTR 信号处于 ON 状态 ), 使用设置指令, 可设置新消息如 何从网络侧发送到 TE 命令类型语法返回和说明 设置命令 查询命令 AT+CNMI=[<mode>[,<mt>[, <bm>[,<ds>[,<bfr>]]]]] AT+CNMI? 说明 : 设置命令可设置当 TE 处于在用状态时 ( 如 :DTR 信号处于 ON 状态 ) 新消息如何从网络侧发送到 TE 若 TE 处于待用状态 ( 如 :DTR 信号处于 OFF 状态 ), 消息接收流程应该按照 GSM 03.38 的规定 +CNMI:<mode>,<mt>,<bm>,<ds>,<bfr> 测试命令 AT+CNMI=? 第 100 页共 259 页 短消息命令

+CNMI: (<mode> 取值列表 ),(<mt> 取值列表 ),(<bm> 取值列 表 ),(<ds> 取值列表 ),(<bfr> 取值列表 ) 注 : 参数定义表格定义的是各参数的释义, 表格中参数出场顺序跟语法规则表格中参数出场顺序无关! 参数定义取值对取值的说明 <mode> <mt> TA 给 TE 传 送短信的模 式 新短信上报 的方式 0 1 2 3 缓冲 TA 中的非请求结果码 ; 若 TA 结果码缓冲器已满, 结果码指示可以缓冲存储在 其他存储空间或者把最旧的非请求结果码指示丢弃, 替换为新接收到的指示 当 TA-TE 间的链路被占用 ( 比如 : 在线数据模式下 ), 丢弃结果码指示, 并拒绝新接 收消息的非请求结果码 否则, 直接转发给 TE 当 TA-TE 间的链路被占用 ( 比如 : 在线数据模式下 ), 缓冲 TA 中的非请求结果码 ; 当 链路释放后, 把所有结果码发送给 TE 否则, 直接转发给 TE 在 TA 处于数据模式的情况下, 使用特定的 TA-TE 连接技术将结果码和数据同时传给 TE 0 没有 SMS-DELIVER 的指示发送给 TE 1 2 3 若 SMS-DELIVER 存储在 ME/TA, 存储位置靠非请求结果码 +CMTI: <mem>,<index> 来提示给 TE SMS-DELIVER 消息 ( 类别 2 的消息和位于消息等待指示组中的消息 ( 存储消息 )) 直 接发送到 TE 使用如下指令的非请求结果码 : +CMT:[<alpha>],<length><CR><LF><pdu> ( 启用 PDU 模式 ) 或者 +CMT: <oa>,[<alpha>],<scts>,<tooa>[,<fo>,<pid>,<dcs>,<sca>,<tosca>,<length>]<cr><lf><data>( 启用 TEXT 模式 斜体部分是否显示由 +CSDH 设置命令决定 ) 说明 : 若 AT 指令接口作为唯一的显示设备,ME 必须支持类别 0 消息和位于消息等 待指示组中的消息的存储 ( 丢弃消息 ) 通过使用 <mt>=2 定义的非请求结果码, 类别 3 的 SMS-DELIVER 消息直可接发送 到 TE 其他数据编码方案下的消息显示结果均遵循 <mt>=1 的定义 第 101 页共 259 页 短消息命令

SMS-DELIVER 结果码 (+CMT, +CMTI) 和确认 (+CNMA) 的关系总结 : <mt> no class or class 0 or class 2 or class 3 class 1 messagewaiting indication group (discard) messagewaiting indication group (store) 1 +CMTI [+CMTI1)] +CMTI +CMTI 2 +CMT & +CNMA3) +CMT [& +CNMA2)] +CMTI +CMT & +CNMA3) 3 +CMTI [+CMTI1)] +CMTI +CMT& +CNMA3) 1) 除了 AT 命令没有其他显示手段的时候, 显示该结果码 ; 2) 当 +CSMS <service>=1 并且 ME 只有 AT 命令这一个显示手段时, 需要 +CNMA 确认 3) 当 +CSMS <service>=1 时需要 +CNMA 确认 注 : 如果在一定的时间内没有 +CNMA 确认,MT 将不再发短信提示给 TE <bm> <ds> <bfr> 小区广播短消息的上报方式短信状态报告上报方式 0 无 CBM 指示发送到 TE 收到的 CBM 使用如下格式直接发送到 TE: +CBM:<length><CR><LF><pdu>( 启用 PDU 模式 ) 或者 2 +CBM:<sn>,<mid>,<dcs>,<page>,<pages><CR><LF><data>( 启用 TEXT 模式 ) 0 无 SMS-STATUS-REPORTS 发送到 TE SMS-STATUS-REPORT 消息使用如下格式直接发送到 TE: +CDS:<length><CR><LF><pdu>( 启用 PDU 模式 ) 或者 1 +CDS :<fo>,<mr>,[<ra>],[<tora>],<scts>, <dt>,<st>( 启用 TEXT 模式 ) 注 :<dt>,<st> 请参考 +CMGR 当 <mode> 为 1~3 时, 这条指令所定义的 TA 缓存中的结果码被发送到 TE( 在发送 0 之前, 应该被接收到 ) 1 当 <mode> 为 1~3 时, 将清除该指令中定义的 TA 对非请求结果码的缓冲 举例 : 命令 ( ) 实例 解释和说明 / 返回 () AT+CNMI=? 查询参数范围 +CNMI: (0-3),(0-3),(0,2,3),(0-1),(0) AT+CNMI? 查询当前各参数设置 +CNMI: 2,1,0,0,0 2,1,0,0,0 是当前设置, 也是缺省设置 (URC) +CMTI: "SM",1 此时收到一个短信, 缓存在 <mem1> 中, 只用 +CMTI 上报 第 102 页共 259 页 短消息命令

AT+CNMI=2,2 或 AT+CNMI=2,2,0,0,0 新短信位置索引 设置 <mt>=2, 即新短信不缓存, 直接上报 AT+CSMS=1 必须把 +CSMS 的第一个参数设置为 1, 才支持 +CNMA 命令 AT+CMGF? 查询当前短信模式 +CMGF: 0 (URC) +CMT:,24 0891683108200105F0040D91683129 634152F600002180804184422304F7 349B0D 是 PDU 模式 AT+CNMA 此时需要 +CNMA 确认 AT+CMGF=1 设置为 TEXT 模式 (URC) +CMT: "+86131******56",,"12/08/08,11:05 :45+32",145,17,0,0,"+86138002105 00",145,7 此时收到一个 PDU 短信, 具体分析如下 : +CMT:,24 24-PUD 长度, 短信中心号码不算在 PDU 内 08- Length of SCA, 短信中心地址长度 ( 按字节数计算, 包括 91 在内 ) 91- 短信中心地址的 TON/NPI 683108200105F0- 短信中心地址, 需要两两反转, 反转后是 8613800210500 04- First Octet,PDU 的首字节 0D- 源地址长度 ( 号码长度 ) 91683129634152F6- 源地址 需要两两反转, 反转后是 8613923614256 00- PID(Protocol Identifier) 00- DCS(Data Coding Scheme),0 表示 7BIT GSM DEFAULT 21808041844223- SCTS(SM Center Time Stamp), 短信中心时间戳, 表示 SC 收到短信的时间为 :12 年 8 月 8 日 14:48:24,+8GMT 04- 用户数据的长度 F7349B0D- 7BIT GSM DEFAULT 编码的 will 收到一个新短信, 是 TEXT 模式 Will-go AT+CNMA 此时需要 +CNMA 确认 第 103 页共 259 页 短消息命令

11.11 新短消息确认 :AT+CNMA 使用执行命令, 可确认是否正确接收新消息 (SMS-DELIVER 或 SMS-STATUS-REPORT), 该新消息是由 MT 直接发送到 TE 而不缓存 在同时满足 2 个条件的情况下, 需要通过 AT+CNMA 给出短信确认 : 通过 AT+CSMS=1, 将 <service> 设为 1; 通过 AT+CNMI=,2, 将 <mt> 设为 2 或者 AT+CNMI=,,1, 将 <ds> 设为 1; 在满足上述 2 个条件后,TE 如果在收到短信后没有通过 AT+CNMA 给 MT 确认,CNMI 的参数 <mt> 和 <ds> 会被重置为 0, MT 也不再给 TE 发短信 命令类型 语法 返回和说明 TEXT 模式 (AT+CMGF=1): AT+CNMA 执行命令 PDU 模式 (AT+CMGF=0): AT+CNMA[=<n>[,<length>[<CR>PDUis given<ctrl-z/esc>]]] 测试命令 AT+CNMA=? 参数 定义 取值 对取值的说明 <n> 0 该指令与文本模式定义的指令执行类似 PDU 模式 1 发送 RP-ACK( 或正确接收到的缓冲结果码 ) 下确认短信发送 RP-ERROR( 若 PDU 未给定,ME/TA 将发送 GSM 03.40 TP-FCS 取值的方式 2 设定为 FF 的 SMS-DELIVER-REPORT 消息 ( 非请求错误原因 )) 举例 : 命令 ( )/ 返回 () 实例 解释和说明 具体实例请参考 +CNMI 条目 11.12 发送短信 :AT+CMGS 使用设置指令, 可将 SMS(SMS-SUBMIT) 从 TE 发送到网络侧 发送成功后, 消息参考值 <mr> 将返回给 TE 命令类型 语法 返回和说明 发送成功则 AT+CMGS=<da>[,<toda> 设置命令 ]<CR>text to send<ctrl-z/esc> +CMGS:<mr> 第 104 页共 259 页 短消息命令

测试命令 AT+CMGS=<length><CR> PDU to send< CTRL-Z/ESC> AT+CMGS=? 说明 : 此为文本模式 (AT+CMGF=1) 情况下发送短信的情况 < CTRL-Z > 是发送,<ESC> 是终止发送 发送失败则 +CMS ERROR:<err> 发送成功, +CMGS:<mr> 说明 : 此为 PDU 模式 (AT+CMGF=0) 情况下发送短信的情况 发送失败则 +CMS ERROR: <err> 注 : 参数定义表格定义的是各参数的释义, 表格中参数出场顺序跟语法规则表格中参数出场顺序无关! 参数 定义 取值 对取值的说明 GSM 03.40 TP-Destination-Address 中 地址 - 取值 字段, 字 <da> 目的地址 (Destination 符型 ; 将 BCD 数值 ( 或缺省 GSM 字母格式的字符 ) 转换为当前选 - Address) 择的 TE 字符集中的字符 ( 请参考 TS 07.07 中的 +CSCS 指令 ); 地址类型由 <toda> 定义 <toda> 整数型的 GSM 04.11 TP-Destination-Address 中的 8 位 类目的地址类型 (Type of - 型 - 地址 字段 ( 当 <da> 的首字符为 +(IRA 43) 时, 缺省值为 <da>) 145; 否则缺省值为 129) <length> PDU 短信长度 - 整数型 该长度不将短信中心号码的长度计算在内 消 息 参 考 <mr> ( MessageReference ) 0~255 整数型的 GSM 03.40 TP-Message-Reference 举例 : 命令 ( )/ 返回 () 实例 解释和说明 发送 TEXT 模式英文短信 : AT+CMGF=1 设置为 TEXT 模式 AT+CSMP? 查询当前的 TEXT 模式短信参数 +CSMP: 17,11,0,0 当前的 <dcs>=0 (GSM) AT+CSCS? +CSCS: "IRA" 第 105 页共 259 页 短消息命令

AT+CMGS= 139****6785 >HI!<ctrl-Z > +CMGS: 108 发送 TEXT 模式的中文短信 : 发英文短信给测试手机 发送成功,<mr>=108 AT+CSMP=17,167,0,8 +CSMP 中的最后一个参数 <dcs>=8(ucs2 码 ), 是 TEXT 模式下发中文短信的必要条件之一 只有这样, 对方接收到 短信的时候才会以 UCS2 码的方式解析 AT+CSCS= UCS2 设置 AT 命令的字符编码是 UCS2 是 TEXT 下发中文短信的第 二个必要条件 AT+CMGS= 0031003300380031003 6003700310030003000300039 >611F8C22<ctrl-Z > +CMGS: 109 发送 PDU 格式的中文短信 : 给测试手机 13816710009 发了个中文短信, 内容为 感谢 ( 感谢的 UCS2 码为 611F8C22) 注 : 1 手机号码要用 UCS2 码编写 2 在串口工具中,611F8C22 用字符输入, 然后 <ctrl-z > 发送 (<ctrl-z > 按照 16 进制 1A 发送也可以 ) 发送成功 AT+CMGF=0 设置成 PDU 模式 AT+CMGS=19 >0011100D91683161450179F90008 0004611F8C22 [CTRL+Z] 19- 是 PDU 字符串的长度 ( 短信中心单元不包括在内 ) 00- 表示短信中心的长度为 0, 即 PUD 字符串中将 SCA 删去, 发送短信的时候直接从 SIM 卡中取 SCA 该 00 不计入 PDU 长度中 11- PDU 短信首字节 b7 b6 b5 b4 b3 b2 b1 b0 RP UDHI SRR VPF RD MTI 0 0 0-1 0 0-0 1 +CMGS: 110 10- TP-MR,benchmark 0D- 目标地址 (DA) 长度 91683161450179F9- 目标地址 ( 收信方号码 ) 00- Protocol Identifier (PID) 08- Data coding scheme (DCS),8 表示 UCS2 00- Valid Period (VP) 04- User Data 的长度 611F8C22- 发送的中文短信 ( 内容为 感谢 ) 发送成功 第 106 页共 259 页 短消息命令

11.13 把消息写入存储器 :AT+CMGW 使用设置指令, 可将 SMS(SMS-DELIVER 或 SMS-SUBMIT) 从 TE 发送到存储器 <mem2>, 并返回已存储消息的存储位置 <index> 参数 除非 <stat> 指定其他参数, 否则, 该消息的状态将被设置为 存储未发送 命令类型 语法 返回和说明 TEXT 模式下 (AT+CMGF=1): AT+CMGW[=<oa/da>[,<tooa/toda>[, 成功, +CMGW: <index> <stat>]]]<cr>text is entered<ctrl-z/esc> 失败则 设置命令 +CMS ERROR: <err> 成功, PDU 模式下 (AT+CMGF=0): +CMGW: <index> AT+CMGW=<length>[,<stat>]<CR> PDU is given<ctrl-z/esc> 失败则 +CMS ERROR: <err> 测试命令 AT+CMGW=? 注 : 参数定义表格定义的是各参数的释义, 表格中参数出场顺序跟语法规则表格中参数出场顺序无关! 参数 定义 取值 对取值的说明 <da> GSM 03.40 TP-Destination-Address 中 地址 - 取值 字目的地址段, 字符型 ; 将 BCD 数值 ( 或缺省 GSM 字母格式的字符 ) 转 (Destination - 换为当前选择的 TE 字符集中的字符 ( 请参考 TS 07.07 中的 Address) +CSCS 指令 ); 地址类型由 <toda> 定义 <toda> 整数型的 GSM 04.11 TP-Destination-Address 中的 8 位目的地址类型 (Type - 类型 - 地址 字段 ( 当 <da> 的首字符为 +(IRA 43) 时, 缺省值 of <da>) 为 145; 否则缺省值为 129) <oa> GSM 03.40 TP-Originating-Address 中 地址 - 取值 字段, 源地址字符型 ; 将 BCD 数值 ( 或缺省 GSM 字母格式的字符 ) 转换为 ( OriginatingAddre - 当前选择的 TE 字符集中的字符 ( 请参考 TS 07.07 中的 ss) +CSCS 指令 ); 地址类型由 <tooa> 定义 <tooa> 整数型的 GSM 04.11 TP-Originating-Address 中的 8 位源地址类型 (Type of - 类型 - 地址 字段 ( 当 <oa> 的首字符为 +(IRA 43) 时, 缺省值 <oa>) 为 145; 否则缺省值为 129) <length> PDU 短信长度 - 整数型 该长度不将短信中心号码的长度计算在内 REC NREAD 已接收的未读消息 (TEXT 模式下, 即 +CMGF=1) <stat> 短信状态 REC READ 已接收的已读消息 (TEXT 模式下, 即 +CMGF=1) STO UNSENT 存储未发送消息 (TEXT 模式下, 即 +CMGF=1) 第 107 页共 259 页 短消息命令

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 模式 AT+CSCS= GSM 或 AT+CSCS= IRA AT+CSMP=17,167,0,0 AT+CMGW= 139****6785 >HI!<ctrl-Z > +CMGW: 6 返回的 index=6, 表示该短信在存储区的位置是第 6 个 存储一个 TEXT 短信 ( 中文 ): AT+CMGF=1 设置为 TEXT 模式 AT+CSCS= UCS2 设置 AT 命令中字符的编码格式为 UCS2 AT+CSMP=17,167,0,8 Dcs=8, 表示短信存放的格式为 UCS2 编码 AT+CMGW= 00300310030003000380036 >611F8C22<ctrl-Z > DA=10086(UCS2 编码格式 ) 内容为 感谢 (UCS2 编码格式 ) +CMGW: 7 该短信存在 index=7 的位置 存储一个 PDU 短信 : AT+CMGF=0 设置为 PDU 格式 AT+CMGW=19 短信内容为 感谢 >0011100D91683161450179F900080004611F8C22 [CTRL+Z] +CMGW: 8 该短信存在 index=8 的位置 第 108 页共 259 页 短消息命令

11.14 从存储器发送短信 :AT+CMSS 使用设置指令, 可将消息存储器 <mem2> 中, 位置取值参数为 <index> 的消息发送到网络侧 (SMS-SUBMIT 或 SMS-COMMAND) 若给定 SMS-SUBMIT 消息的新接收地址参数 <da>, 应使用该参数, 而不能使用已存储消息的参数 发送成功后, 参考值 <mr> 将 返回给 TE 命令类型 语法 返回和说明 设置命令 AT+CMSS=<index>[,<da>[,<toda>]] +CMSS:<mr> 测试命令 AT+CMSS=? 注 : 参数定义表格定义的是各参数的释义, 表格中参数出场顺序跟语法规则表格中参数出场顺序无关! 参数 定义 取值 对取值的说明 <index> 待发送短信在存储器的地址 - 整数型 ; 关联存储器支持的地址编号范围内的取值 <da> GSM 03.40 TP-Destination-Address 中 地址 - 取值 字段, 字目的地址符型 ; 将 BCD 数值 ( 或缺省 GSM 字母格式的字符 ) 转换为当前选 (Destination - 择的 TE 字符集中的字符 ( 请参考 TS 07.07 中的 +CSCS 指令 ); Address) 地址类型由 <toda> 定义 <toda> 整数型的 GSM 04.11 TP-Destination-Address 中的 8 位 类目的地址类型 (Type - 型 - 地址 字段 ( 当 <da> 的首字符为 +(IRA 43) 时, 缺省值为 of <da>) 145; 否则缺省值为 129) 消 息 参 考 <mr> ( MessageReferenc e) 0~255 整数型的 GSM 03.40 TP-Message-Reference 举例 : 命令 ( ) 实例 解释和说明 / 返回 () AT+CMGF=1 设置为 TEXT 模式 AT+CSCS= GSM 或 AT+CSCS= IRA 发送 +CMGW 实例中被 +CMGW 存储起来的编号为 6 的 AT+CMSS=6 短信, 接收方的号码仍为 +CMGW 存入的号码 +CMSS: 11 发送成功,<mr>=11 第 109 页共 259 页 短消息命令

AT+CMSS=7,"13192310560" 发送 +CMGW 实例中被 +CMGW 存储起来的编号为 7 的中文短信, 并且改变接收方号码为 13192310560 +CMSS: 12 发送成功 11.15 短信链路控制命令 :AT+CMMS SET 命令控制短信中继协议 (RP) 层的链接的连续性 当使能了该特性, 并且网络也支持时, 发送连续多条短信时 RP 层的链接将一直存在, 而无需在每两条短信之间再进行拆链和建链的过程, 从而发送的速度将快很多 READ 命令返回当前的参数值 TEST 命令返回命令支持的参数值 命令类型 语法 返回和说明 设置命令 AT+CMMS= [<n>] 查询命令 AT+CMMS? +CMMS: <n> 测试命令 AT+CMMS=? +CMMS: (<n> 取值列表 ) 参数 定义 取值 对取值的说明 0 禁能 <n> 状态 1 使能一次 当前一条发送短信的返回和后一条发送短信的间隔小于 1-5 秒 ( 具体的取值取决于 MS 的实现 ),RP 链接保持不断 当超过了 1-5 秒时, RP 链接中断, 并且 <n> 值将自动设置回 0, 即不再继续使能 2 一直使能 当前一条发送短信的返回和后一条发送短信的间隔小于 1-5 秒 ( 具体的取值取决于 MS 的实现 ),RP 链接保持不断 当超过了 1-5 秒时, RP 链接中断, 并且 <n> 值仍保持为 2, 即继续使能 11.16 读短信 :AT+CMGR 使用设置指令, 可将消息存储器 <mem1> 中, 索引为 <index> 的消息返回到 TE 若该消息处于 已接收未读 状态, 则将其状 态变为 已接收已读 第 110 页共 259 页 短消息命令

命令类型语法返回和说明 PDU 模式下 (AT+CMGF=0), +CMGR:<stat>,[<alpha>],<length><CR><LF><pdu> 如果是 TEXT 模式 (AT+CMGF=1): 对于 SMS-DELIVER: +CMGR:<stat>,<oa>,[<alpha>],<scts>[,<tooa>,<fo>,<pid>,< dcs>,<sca>,<tosca>,<length>]<cr><lf><data> 设置命令 AT+CMGR=<index> 对于 SMS-SUBMIT: +CMGR:<stat>,<da>,[<alpha>][,<toda>,<fo>,<pid>,<dcs>,[< vp>],<sca>,<tosca>,<length>]<cr><lf><data> 对于 SMS-STATUS-REPORT: +CMGR:<stat>,<fo>,<mr>,[<ra>],[<tora>],<scts>,<dt>,<st> 对于 SMS-COMMAND: +CMGR:<stat>,<fo>,<ct>[,<pid>,[<mn>],[<da>],[<toda>],<l ength><cr><lf><cdata>] 测试命令 AT+CMGR=? 注 : 参数定义表格定义的是各参数的释义, 表格中参数出场顺序跟语法规则表格中参数出场顺序无关! 参数 定义 取值 对取值的说明 <da>,<oa> <toda>,<tooa> 请参考 AT+CMGW 条目 <length> <stat> <alpha> MT 电话簿记录对应 <da> 或 <oa> 的显示 字符型 <pid> Protocol Identification <fo> PDU 短信首字节 请参考 AT+CSMP 条目 第 111 页共 259 页 短消息命令

<vp> Valid Period <dcs> Data Coding System <scts> 短信中心时间戳 (Short 时间 - 字符串型 GSM 03.40 Message Center Time TP-Service-Centre-Time-Stamp Stamp) <dt> Discharge time 时间 - 字符串型 GSM 03.40 TP-Discharge-Time, 与 <st> 成对出现 <st> Status 整数型 GSM 03.40 TP-Status 描述上一个已经发送的 MO 短信的状态 <ct> Command Type 整数型 GSM 03.40 TP-Command-Type, 缺省为 0 <ra> 接收地址 字符串型的 GSM 03.40 TP-Recipient-Address 地址 - 取值字段 <cdata> TEXT 模式下 SMS-COMMAND 的返回 GSM 03.40 TP-Command-Data <mr> 消息参考 (MessageReference) 整数型的 GSM 03.40 TP-Message-Reference 举例 : 命令 ( ) / 返回 () 实例 用 TEXT 模式读取短信 : 解释和说明 AT+CMGF=1 设置为 TEXT 模式 AT+CSCS= GSM +CSCS 命令决定了读取的短信内容的编码方式 AT+CMGR=6 读取 index=6 的英文短信 +CMGR: "REC READ","+86139*******9","12/03/30,20: 40:31+32" HI! 这个英文短信的内容为 HI AT+CSCS= UCS2 读中文短信内容需要设置为 UCS2 AT+CMGR=1 读一个中文短信 用 PDU 模式读取一个短信 : +CMGR: "REC READ","002B00380036003100330031003 60032003300310030003200360033",,"13 /01/06,10:11:47+32" 8C228C22 AT+CMGF=0 设置为 PDU 模式 内容为 8C228C22( 中文 谢谢 的 UCS2 码 ) 第 112 页共 259 页 短消息命令

AT+CMGR=9 读取 index=9 的短信 +CMGR: 0,,24 0891683108200105F0240D916831614501 79F900082180904121102304611F8C22 11.17 列举短消息 :AT+CMGL 使用设置指令, 可将查询优选消息存储器 <mem1> 中, 状态值为 <stat> 的消息显示在 TE 中 若该消息处于 已接收未读 状 态, 则将其状态变为 已接收已读 命令类型 语法 返回和说明 如果是 PDU 模式 (AT+CMGF=0), 则 <stat> 取值如下 : 0 已接收的未读消息 1 已接收的已读消息 2 已存储的未发送短信 3 已存储的已发送短信 4 所有短信 且返回如下 : +CMGL:<index>,<stat>,[<alpha>],<length><CR><LF>< pdu><cr><lf>+cmgl:<index>,<stat>,[<alpha>],<length><c R><LF><pdu>[...]] 设置命令 AT+CMGL=<stat> 如果是 TEXT 模式 (AT+CMGF=1), 则 <stat> 取值如下 : REC UNREAD 已接收的未读消息 REC READ 已接收的未读消息 STO UNSENT 已存储的未发送短信 STO SENT 已存储的已发送短信 ALL 所有短信 注意 : 对于以上取值, 所有字母要大写, 而且一定要有双引号. 对于 SMS-DELIVER 或 SMS-SUBMIT, 则 +CMGL:<index>,<stat>,<oa/da>,[<alpha>],[<scts>][,<tooa/to da>,<length>]<cr><lf><data>[<cr><lf>+cmgl:<index>,< stat>,<da/oa>,[<alpha>],[<scts>][,<tooa/toda>,<length>]<cr ><LF><data>[...]] 对于 SMS-STATUS-REPORT, 则 +CMGL:<index>,<stat>,<fo>,<mr>,[<ra>],[<tora>],<scts>,<d 第 113 页共 259 页 短消息命令

t>,<st>[<cr><lf>+cmgl:<index>,<stat>,<fo>,<mr>,[<ra>], [<tora>],<scts>,<dt>,<st>[...]] 对于 SMS-COMMAND, 则 +CMGL:<index>,<stat>,<fo>,<ct>[<CR><LF>+CMGL:<index>, <stat>,<fo>,<ct>[...]] 测试命令 AT+CMGL=? +CMGL: (<stat> 取值列表 ) 参数定义取值对取值的说明 本词条的所有参数在以前的命令中都有详细叙述, 这里不再赘述 举例 : 命令 ( ) 实例 / 返回 () 在 TEXT 模式下列举短信 : 解释和说明 AT+CMGF=1 设置为 TEXT 模式 AT+CMGL=? 查询 <stat> 取值列表 +CMGL: REC UNREAD, REC READ, STO UNSENT, STO SENT, ALL 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œ" 所有短信 Index=1~7 被删掉了而已 在 PDU 模式下列举短信 : AT+CMGF=0 设置为 PDU 模式 第 114 页共 259 页 短消息命令

AT+CMGL=? +CMGL: (0-4) AT+CMGL=4 查询所有的短信 +CMGL: 8,1,,24 0891683108200105F0240D91683161320162F3 00002180800134402304D7A2930A +CMGL: 9,1,,24 0891683108200105F0240D91683161320162F3 00082180904121102304611F8C22 显示查询结果 11.18 删除短消息 :AT+CMGD 使用设置指令, 可删除优选消息存储器 <mem1> 中, 位置号码参数为 <index> 的消息 命令类型 语法 返回和说明 AT+CMGD=<index> 设置命令 测试命令 AT+CMGD=<index>,<delflag> AT+CMGD=? 说明 : 这个设置命令是删除 <mem>1 中索引为 index 的短信 说明 : 这个设置命令是删除从 index=1 开始, 所有状态为 <delflag > 的短信 +CMGD:(<index> 取值列表 ),(<delflag> 取值列表 ) 参数定义取值对取值的说明 <index> 短信位置索引 - 整数型 ; 关联存储器支持的地址编号范围内的取值 <delflag> 删除类型, 整数型 当 <delflag>=1, 2,3,4 时,<index> 参数将被忽略 0 删除指定位置号码为 <index> 的短消息 1 2 删除优选消息存储其中所有已读的短消息, 保留未读短消息和原始 ( 无论是否发送 ) 的短消息删除优选存储器中所有已读的消息和已发送的原始短消息, 保留未发送的原始短消息 第 115 页共 259 页 短消息命令

3 删除优选存储器中所有已读的短消息, 已发送和未发送的原始短消息, 保留未读的短消息 4 删除优选存储器中包括未读在内所有的短消息 举例 : 命令 ( )/ 返 实例 解释和说明 回 () AT+CPMS= SM 设置存储区为 SIM AT+CMGD=1 删除掉 index=1 的短信 AT+CMGD=1,4 所有的短信都被删除掉 11.19 小区广播短消息类型选择 :AT+CSCB 命令类型 语法 返回和说明 设置命令 AT+CSCB=[<mode>[,<mids>[,<dcss >]]] 查询命令 AT+CSCB? +CSCB:<mode>,<mids>,<dcss> 测试命令 AT+CSCB=? +CSCB: (<mode> 取值列表 ) 参数定义取值对取值的说明 0 接受由 <mids> 和 <dcss> 指定的消息类型 <mode> 1 不接受由 <mids> 和 <dcss> 指定的消息类型 <mids> 所有可能的 CBM 消息标识的组合 - 字符型所有可能的 CBM 数据编码方案的 <dcss> - 字符型, 缺省值为空字符串组合 11.20 短信业务失败结果码 :CMS ERROR:<err> 短消息业务失败结果编码描述一个移动设备或网络的错误 其作用与错误结果编码类似 该编码常在一个指令失败 第 116 页共 259 页 短消息命令

时出现 返回的结果码为 :+CME ERROR: <err> <err> 具体定义请参考 :4.21 第 117 页共 259 页 短消息命令

12 附加业务命令 12.1 呼叫转移 :AT+CCFC 用户终端可以通过该命令对呼叫前转业务进行控制 同时支持注册, 删除激活, 去激活和状态查询 命令类型语法返回和说明 如果 <mode> 2, 并且命令成功, 则 设置命令 AT+CCFC=<reason>,<mode>[,<nu mber>[,<type>[,<class>[,<subadd r>[,<atype>[,<time>]]]]]] 如果 <mode>=2, 并且命令成功 ( 限定 <reason>= 0 ~3, 也就是说如果 <mode>=2,<reason> 不能等于 4 或 5) 对于已经开通呼叫转移的用户, 则 +CCFC: <status>,<class1>[,<number>,<type>[,<subaddr>,<satype>[,< time>]]][<cr><lf>+ccfc: <status>,<class2>[,<number>,<type>[,<subaddr>,<satype>[,< time>]]][ ] 如果没有注册过呼叫转移的用户, 则 +CCFC: <status>, <class> 测试命令 AT+CCFC=? +CCFC: (<reason> 取值列表 ) 注 : 参数定义表格定义的是各参数的释义, 表格中参数出场顺序跟语法规则表格中参数出场顺序无关! 参数定义取值对取值的说明 0 无条件 1 设备遇忙 2 无应答 <reason> 呼叫转移原因 3 不可及 4 所有呼叫前转 ( 请参考 GSM 02.30) 5 所有有条件的呼叫前转 ( 请参考 GSM 02.30) 0 禁用 1 启用 <mode> 呼叫转移的状态 2 状态查询 3 注册 4 删除 第 118 页共 259 页 附加业务命令

<number> 电话号码 <type> 号码类型请参考 AT+CSTA 条目 1 语音 ( 电话业务 ) 数据 ( 指所有承载业务 ; 当 <mode>=2 时, 如果 TA 不支持 2 <class> 业务类别 16,32,64 和 128, 该参数仅表示部分承载业务 ) 4 传真 7 所有类别 <subaddr> 子地址字符串类型 <satype> 子地址类型 8 位字节整数型, 规定了 <subaddr> 的类型如果启用或查询 无应答, 该参数使得在该呼叫转移前有数秒的 <time> 等待时间 1~30s 等待时间 ( 单位为秒 ), 默认值为 20 0 非激活 <status> 状态 1 激活 举例 : 命令 ( )/ 实例 解释和说明 返回 () AT+CCFC=? 查询 <reason> 范围 +CCFC: (0,1,2,3,4,5) <reason>=0,1,2,3,4,5 AT+CCFC=0,2 查询模块当前无条件呼叫转移的开启状态 +CCFC: 0,7 <status>=0, 禁用 <class>=7, 所有业务类别 AT+CCFC=1,2 查询模块当前遇忙呼叫转移的开启状态 +CCFC: 0,1 +CCFC: 0,2 +CCFC: 0,4 表示业务 1,2,4 遇忙呼叫转移都未开启 AT+CCFC=1,3,"1360******7" 设置遇忙呼叫转移到号码 1360******7 AT+CCFC=1,2 查询遇忙呼叫转移状态 +CCFC: 1,1,"+861360******7",145,,, +CCFC: 0,2 +CCFC: 0,4 <status>=1,<class>=1, 表示语音业务的遇忙呼叫转移已经开启 AT+CCFC=1,4 注销遇忙呼叫转移 AT+CCFC=1,2 再次查询遇忙呼叫转移状态 第 119 页共 259 页 附加业务命令

+CCFC: 0,1 +CCFC: 0,2 +CCFC: 0,4 表示业务 1,2,4 遇忙呼叫转移都已关闭 12.2 呼叫等待 :AT+CCWA 命令类型 语法 返回和说明 设置命令 AT+CCWA=[<n>[,<mode>[,<class>]]] 如果 <mode> 2, 并且命令成功, 则 如果 <mode>=2, 并且命令成功, 则 +CCWA:<status>,<class1>[<CR><LF>+CCWA: <status>,<class2>[...]] 查询命令 测试命令 AT+CCWA? AT+CCWA=? +CCWA: <n> +CCWA: (<n> 取值列表 ) URC 上报 +CCWA: <number>,<type>,<class>[,<alpha>] 当 AT+CCWA=1,1( 即呼叫等待打开 ) 时, 如果 MT 在通 话状态中又有一个电话进来, 此时会有如此 URC 上报 注 : 参数定义表格定义的是各参数的释义, 表格中参数出场顺序跟语法规则表格中参数出场顺序无关! 参数定义取值对取值的说明 <n> <mode> <class> <status> 是否在 TE 显示结果码 呼叫转移的状态 业务类别 状态 0 禁用 1 启用 0 禁用 1 启用 2 状态查询 1 语音 ( 电话业务 ) 2 4 传真 数据 ( 指所有承载业务 ; 当 <mode>=2 时, 如果 TA 不支持 16,32,64 和 128, 该参数仅表示部分承载业务 ) 7 所有类别 (1+2+4) 0 非激活 1 激活 第 120 页共 259 页 附加业务命令

<number> 电话号码字符串型 <type> 电话号码类型整数型, 具体参考 +CSTA 中 <type> 定义 举例 : 命令 ( ) / 实例 解释和说明 返回 () AT+CCWA=1,2 查询当前呼叫等待的开启状态 +CCWA: 0,7 表示呼叫等待未开启 AT+CCWA=1,1 开启呼叫等待 AT+CCWA=1,2 查询当前呼叫等待的开启状态 +CCWA: 1,1 ATD137******98; 呼叫 137******98 <status>=1,<class>=1, 表示语音业务的呼叫等待已经启用 (URC) CONNECT 对方接听, 通话建立, 双方通话中 (URC) +CCWA: "13601*****97",129,1 有又一个电话进来, 此时会有如此 URC 上报 12.3 呼叫保持和多方通话 :AT+CHLD 使用该指令, 可以控制 TA 的附加业务 : 呼叫保持和多方通话 呼叫能被保持, 恢复, 释放和加入多方通话 命令类型 语法 返回和说明 设置命令 AT+CHLD=<n> 测试命令 AT+CHLD=? +CHLD: (<n> 取值列表 ) 参数 定义 取值 对取值的说明 0 释放所有已保持的呼叫或者为等待中的呼叫设置用户决定用户忙 (UDUB) 条件 1 如果存在当前呼叫, 释放所有当前呼叫并接听另外一个已保持或等待中的呼叫 <n> 1X 释放当前某一特定的呼叫 X 整数型 2 如果存在当前呼叫, 保持所有当前呼叫并接听另外一个已保持或等待中的呼叫 2X 保持除呼叫 X 外的所有当前呼叫 3 将一个被保持 (held) 的通话加入到活跃 (active) 通话中 ( 建立多方通话 ) 4 连接这两个呼叫并把用户从这两个呼叫释放 (ECT) 第 121 页共 259 页 附加业务命令

举例 : 命令 ( )/ 返回 () 实例 AT+CCWA=1,1 解释和说明 ATD137******98; 呼叫 137******98 (URC) CONNECT 对方接听, 通话建立, 双方通话中 (URC) +CCWA: "13601*****97",129,1 有又一个电话进来, 此时会有如此 URC 上报 AT+CHLD=2 HOLD 第一路 (+CLCC 中 id=1), 接通第二路 (+CLCC 中 id=2) AT+CLCC 查询下当前所有当前通话 +CLCC: 1,0,1,0,0,"137******98",129 +CLCC: 2,1,0,0,0,"13601*****97",128,"TEST" 第一路第三个参数即 <stat>=1, 表示被保持第二路 <stat>=0, 表示正处激活状态 AT+CHLD=21 切回到第一路 AT+CHLD=3 建立三方通话 ( 前提为 :SIM 卡已经开通此功能 ) AT+CHLD=11 释放第一路 12.4 设置主叫号码显示 :AT+CLIP 命令类型 语法 返回和说明 设置命令 AT+CLIP=<n> 查询命令 AT+CLIP? +CLIP:<n>,<m> 测试命令 URC 上报 AT+CLIP=? +CLIP: <number>,<type> [,<subaddr>,<satype>,<alphaid>, <CLIvalidity>] +CLIP:(<n> 取值列表 ) 当 AT+CLIP=1 的时候,URC 主动上报会被打开, 此时, 如果有来电的时候, 就会上报 URC 第 122 页共 259 页 附加业务命令

注 : 参数定义表格定义的是各参数的释义, 表格中参数出场顺序跟语法规则表格中参数出场顺序无关! 参数定义取值对取值的说明 0 禁用 <n> URC 上报是否开启 1 启用 0 未提供 CLIP 业务显示用户 CLIP 业务在网络 <m> 1 提供 CLIP 业务中的状态 2 未知 ( 如 : 无网络等 ) <number>,<type> [,<subaddr>,<saty 请参考相关 AT 命令 pe>,<alphaid> 0 有效 <CLIvalidity> 主叫号码有效性 1 主叫方禁用 CLI 2 由于网间互通问题或始发网络的限制,CLI 不可用 举例 : 命令 ( )/ 返回 () 实例 解释和说明 AT+CLIP? 查询当前来电显示状态 +CLIP: 0,1 <n>=0, 表示未启用 URC 上报 <m>=1, 表示网络已经提供给该用户主叫号码显示功能 (URC) RING 此时有来电也不会显示主叫号码 AT+CHUP AT+CLIP=1 设置来电显示的 URC 上报为开 AT+CLIP? +CLIP: 1,1 <n>=1, 表示启用 URC 上报 (URC) RING 此时有来电, 会通过 +CLIP 这个 URC 来显示主叫号码 +CLIP: "1360******8",128,,,"TEST",0 12.5 主叫号码显示限制 :AT+CLIR 命令类型 语法 返回和说明 设置命令 AT+CLIR=<n> 第 123 页共 259 页 附加业务命令

查询命令 测试命令 AT+CLIR? AT+CLIR=? 说明 : 当主叫方发起呼叫时, 使用该命令可启用或者禁止在被叫侧显示 CLI(Calling line Indication) +CLIR:<n>,<m> +CLIR:(<n> 取值列表 ) 参数 定义 取值 对取值的说明 0 根据 CLIR 业务的开通状态使用提示语 <n> 用于设置去电调整的参数 1 CLIR 调用 2 CLIR 抑制 0 未提供 CLIR 业务 1 永久方式下提供的 CLIR 业务 <m> 显示用户 CLIR 业务在网络中的状态 2 未知 ( 比如 : 无网络等 ) 3 暂时模式下提供的 CLIR 业务受限 4 暂时模式下提供的 CLIR 业务不受限 举例 : 命令 ( )/ 返回 () 实例 解释和说明 以下是主叫 MT( 称为 MT1) 这边的显示 : AT+CLIR=1 开启主叫号码隐藏 AT+CLIR? 查询当前主叫号码隐藏的状态 +CLIR: 0,1 <m>=1, 表示主叫号码隐藏业务已经开启 ATD136****9087; 以下是被叫 MT( 称为 MT2) 这边的显示 : AT+CLIP=1 开启主叫号码显示 AT+CLIP? 查询是否开启主叫号码显示 ( 即来电显示 ) +CLIP: 1,1 查询到来电显示已经开启 (URC) RING MT1 语音呼叫 MT2, 由于 MT1 开启了主叫号码隐藏, 所以, MT2 这边看不到 MT1 的号码 第 124 页共 259 页 附加业务命令

+CLIP: "",128,,,,1 12.6 被叫号码显示 :AT+COLP 当主叫方 ( 模块 ) 发起 MO 呼叫前设置此命令, 可在主叫侧显示被叫号码 COL(Connected Line Identity) 命令类型 语法 返回和说明 设置命令 AT+COLP=<n> 查询命令 测试命令 URC 上报 AT+COLP? AT+COLP=? +COLP:<number>,<type>[,<subaddr>, <satype> [,<alpha>]] +COLP:<n>,<m> +COLP:(<n> 取值列表 ) 当 <n>=1 时,ATD 拨打号码, 对方接听后会返回此 URC 注 : 参数定义表格定义的是各参数的释义, 表格中参数出场顺序跟语法规则表格中参数出场顺序无关! 参数定义取值对取值的说明 0 关闭 <n> 是否在 TE 侧显示结果码 1 开启 0 COLP 未提供用以显示在网络中用户 <m> 1 COLP 提供 COLP 服务状态 2 未知 ( 例如 : 没有网络等等 ) <number>,<type>, <subaddr>,<satype 这些参数的详细定义请参考 +CLIP 词条 >,<alpha> 举例 : 命令 ( )/ 实例 解释和说明 返回 () AT+COLP? 查询当前 COLP 参数设置 +COLP:0,0 查询结果 AT+COLP=1 设置显示被叫号码 第 125 页共 259 页 附加业务命令

AT+COLP? 再次查询 COLP 参数设置 +COLP:1,0 查询结果 ATD136****0987; 语音主叫一个用户 A( 号码为 :136****0987) +COLP: "131****6895",129,"",,"SAM" ATD136****0987; 再次拨打 A A 接听, 接听后显示号码 A 始终不接听, 则此时串口无任何返回注 :+COLP 在电话接通以后才会出现,+COLP 出现后, 才能返回 所以, 对方不接电话, 就不会出现, 此时也无法输入其他 AT 命令 & 此时随便输入一个字符, 先结束前一个 ATD 命令 NO CARRIER 终止呼叫过程 12.7 非结构化附加业务 :AT+CUSD 该指令根据 GSM 02.90, 对 USSD(Unstuctured Supplementary Service Data) 进行控制 该指令支持网络和 移动发起的操作 <str> 指定时, 移动发起的 USSD 字符串或网络发起操作的返回结果 USSD 字符串将发送给网络 通过非请求结果码 +CUSD, 返回网络侧的返回结果 USSD 字符串 命令类型 语法 返回和说明 设置命令 查询命令 测试命令 AT+CUSD=[<n>[,<str>[,<dcs>]]] AT+CUSD? AT+CUSD=? 说明 :<n> 用于启用或禁用如下的非请求结果码 ( 网络返回的 USSD 返回结果或网络发起操作 ) 显示在 TE 上 : +CUSD: <m>[,<str>,<dcs>] +CUSD: <n> +CUSD: (<n> 取值列表 ) 注 : 参数定义表格定义的是各参数的释义, 表格中参数出场顺序跟语法规则表格中参数出场顺序无关! 第 126 页共 259 页 附加业务命令

参数定义取值对取值的说明 0 禁止结果码显示在 TA 上用于设置去电调整 <n> 1 启用结果码显示在 TA 上的参数 2 取消会话 ( 不适用于查询指令的返回结果 ) 字符型 如果不给定 <str>, 则不询问网络. 如果 <dcs> 表示使用 <str> USSD 字符串 - GSM03.38[25] 中的缺省符号值, ME/TA 将根据 GSM07.05[24] Annex A, 将 GSM 中的符号集转换为当前 TE 的字符集 <dcs> 数据编码方案 - GSM 03.38 中采用整数型的小区广播数据编码方案 ( 缺省值为 0) 不需要用户继续操作 ( 网络发起的 USSD 通知, 或移动发起的操作之后不 0 再需要信息 ) 需要用户继续操作 ( 网络发起的 USSD 请求, 或在移动发起的操作之后仍 1 然需要信息 ) <m> 返回的状态 2 网络终止 USSD 3 其他本地终端已经响应 4 运营商不支持 5 网络超时 举例 : 命令 ( )/ 实例 解释和说明 返回 () AT+CSCS="GSM" 设置 AT 命令中 "" 内的字符的编码格式是 GSM AT+CUSD=1,"*#21#",15 查询无条件呼叫转移 +CCFC: 0,1 +CCFC: 0,2 +CCFC: 0,4 查询结果 AT+CSCS="UCS2" 设置 AT 命令中 "" 内的字符的编码格式是 UCS2 AT+CUSD=1,"002A0023003200310 查询无条件呼叫转移 023",15 +CCFC: 0,1 查询结果 +CCFC: 0,2 +CCFC: 0,4 12.8 优先运营商列表 :AT+CPOL 第 127 页共 259 页 附加业务命令

命令类型 语法 返回和说明 设置命令 AT+CPOL=[<index>][,<format >[,<oper>]] 查询命令 AT+CPOL? +CPOL:<index1>,<format>,<oper1>[<CR><LF>+CP OL:<index2>,<format>,<oper2>[...]] 测试命令 AT+CPOL=? +CPOL:(<index> 取值列表 ), (<format> 取值列表 ) 注 : 参数定义表格定义的是各参数的释义, 表格中参数出场顺序跟语法规则表格中参数出场顺序无关! 参数 定义 取值 对取值的说明 <indexn> SIM 卡中的优先运营商列表中运营商的序号 - 整数型 0 长字符串型 <oper> ( 采用字母数字格式 ), 最多 16 字符 <format> 运营商的显示格式 1 短字符串型 <oper> ( 采用字母数字格式 ), 最多 8 字符 2 数字式字符串型 <oper> <opern> 运营商 - 字符串型, 格式由 <format> 定义 12.9 查询所有运营商名 :AT+COPN 命令类型 语法 返回和说明 执行命令 AT+COPN +COPN:<numeric1>,<alpha1>[<CR><LF>+COPN:<numeric 2>,<alpha2>[...]] 测试命令 AT+COPN=? 参数 定义 取值 对取值的说明 <numericn> 数字格式表示的运营商 - 字符串类型 ( 字符串必须包含在引号内 ), 请参考 +COPS <alphan> 长字符串格式表示的运营商 - 字符串类型 ( 字符串必须包含在引号内 ), 请参考 +COPS 第 128 页共 259 页 附加业务命令

12.10 选择承载业务类型 :AT+CBST 设置命令用于在发起数据呼叫时选择使用带有数据速率 <speed> 的承载业务 <name> 以及连接元素 <ce> 命令类型 语法 返回和说明 设置命令 AT+CBST=[<spee >[,<name>[,<ce>]]] 查询命令 AT+CBST? +CBST: <speed>,<name>,<ce> 测试命令 AT+CBST=? +CBST: (<speed> 取值列表 ), (<name> 取值列表 ), (<ce> 取值列表 ) 参数 定义 取值 对取值的说明 0 自适应波特率 <speed> 数据速率 7 9600 bps (V.32) 71 9600 bps(v.110 or X.31 标识填充 ) <name> 承载业务名 0 异步数据电路 (UDI 或 3.1 khz 的 Modem) <ce> 连接元素 1 非透明传输 举例 : 命令 ( ) / 返回 () 实例 AT+CBST=? +CBST: (0-7,12,14,34,36,38,39,43,65,66,68,70,71,75),(0,2),(0,1) 解释和说明 AT+CBST? 查询当前配置 +CBST: 7,0,1 第 129 页共 259 页 附加业务命令

12.11 补充业务通知 :AT+CSSN 该指令表示与附加业务有关的由网络发起的通知 使用该设置指令, 可启用或禁用 TA 的通知结果码显示在 TE 上 当 <n>=1, 并且在移动终端发起 MO 呼叫的过程中收到附加业务通知时, 中间结果码 +CSSI:<code1>[,<index>] 将被发送给 TE 当 <m>=1, 并且在 MT 呼叫建立或正在进行过程中收到附加业务通知时, 或在收到前转校验附加业务通知时, 将发 送给 TE 非请求结果码 +CSSU:<code2> [,<index>[,<number>,<type>[,<subaddr>,<satype>]]] 如果 +CLIP=1, 则 +CSSU 结果码在每条 +CLIP 结果码后发送 命令类型 语法 返回和说明 设置命令 AT+CSSN=[<n>[,<m>]]] 查询命令 AT+CSSN? +CSSN: <n>,<m> 测试命令 AT+CSSN=? +CSSN: (<n> 取值列表 ),(<m> 取值列表 ) 注 : 参数定义表格定义的是各参数的释义, 表格中参数出场顺序跟语法规则表格中参数出场顺序无关! 参数 定义 取值 对取值的说明 <n> MO 呼叫时 +CSSI 结 0 禁用果码显示开关 1 启用 <m> MT 呼叫时 +CSSU 结 0 禁用果码显示开关 1 启用 <index> 关闭的用户组 index 0~10 0 无条件呼叫前转在用 1 部分有条件呼叫前转在用 2 呼叫前转 3 呼叫等待中 <code1> 4 CUG 呼叫 (<index> 存在 ) 5 禁止出局呼叫 6 禁止入局呼叫 7 拒绝 CLIR 抑制 8 呼叫偏转 <code2> 0 呼叫前转 (MT 呼叫建立 ) 第 130 页共 259 页 附加业务命令

1 CUG 呼叫 (<index> 存在 )(MT 呼叫建立 ) 2 保持呼叫 ( 语音呼叫时 ) 3 检索呼叫 ( 语音呼叫时 ) 4 进入多方通话 ( 语音呼叫时 ) 5 释放呼叫保持 ( 不属于 SS 通知 )( 语音呼叫时 ) 6 收到前转校验 SS 消息 ( 可随时收到 ) 在显式呼叫转移过程中 ( 指语音呼叫 ), 正在同处于振铃状态 7 的远端通话方建立呼叫 ( 振铃 ) 在显示呼叫转移过程中 ( 指语音呼叫或 MT 呼叫建立, 且号 8 码和子地址参数必须存在 ), 已经同远端通话方建立起呼叫 9 指偏转的呼叫 (MT 呼叫建立 ) 10 附加的来电转移 <number> 电话号码 字符型, 其格式需符合 <type> 所规定 整数型, 定义 <number> 类型 ( 请参考 GSM 04.08 第 <type> 电话号码类型 10.5.4.7 节 ); 当拨号字符串包括国际接入代码字符 + 时, 缺省值为 145; 其他情况下为 129 <subaddr> 子地址 字符型 ; 由 <satype> 规定的字符型子地址的格式 <satype> 子地址类型 整数型, 定义类型 ( 请参考 GSM04.08 中的第 10.5.4.8 节 ) 第 131 页共 259 页 附加业务命令

13 STK(SIM Application Toolkit) 相关命令 13.1 命令类型通知 (URC):+STC 命令类型语法说明 URC 结果码 +STC:<command_id> 该命令通知 ME 当前的主动式命令的类型, 并等待 ME 的后续动作 注意事项 +STC:0 表示无可用的 STK 应用 参数 定义 取值 对取值的说明 10 GetAcknowledgement For Set Up Call 15 LaunchBrowser 20 PlayTone 21 DisplayText 22 Get Inkey <command_id> STK 命令的对应 id, 23 Get Input 十六进制整数 24 Select Item 25 Set UpMenu 28 Set Up Idle Mode Text 40 Open Channel 14 Send DTMF 05 Set Up Event List 81 End of proactive session 13.2 获取命令数据 :AT+STGC 当一个 URC 结果码 +STC:<command_id> 上报给 TE 后,TE 使用该命令来获取 STK 命令的数据 命令类型 语法 返回和说明 +STGC:10,<alphaId>[,<iconId>,<dispMode>] +STGC:15,<comQual>,<url>[,<browserId>[,<bearer>[,<numFile 设置命令 AT+STGC=<command_ id> s>,<provfiles>[,<dcs>,<gateway>[,<alphaid>[,<iconid>,<dispm ode>]]]]]] +STGC:20[,<alphaId>[,<tone>[,<duration>]]] +STGC:21,<dcs>,<text>,<priority>,<clear>[,<iconId>,<dispMod 第 132 页共 259 页 STK(SIM Application Toolkit) 相关命令

e>[,<response1>]] +STGC:22,<dcs>,<text>,<response2>,<helpInfo>[,<iconId>,<di spmode>] +STGC:23,<dcs>,<text>,<response3>,<echo>,<helpInfo>,<minL gth>,<maxlgth>[,<dcs>,<default>[,<iconid>,<dispmode>]] +STGC:24,<numItems>,<selection>,<helpInfo>[,<alphaId>[,<ico nid>,<dispmode>]]<cr><lf>+stgc:<itemid>,<itemtext>[,<ic onid>,<dispmode>,<nai><cr><lf> [+STGC:<itemId>,<itemText>[,<iconId>,<dispMode>,<nai><CR ><LF> [ ]]]] +STGC:25,<numItems>,<selection>,<helpInfo>,<removeMenu>< alphaid>[,<iconid>,<dispmode>]<cr><lf>+stgc:<itemid>,<it emtext>[,<iconid>,<dispmode>,<nai><cr><lf> [+STGC:<itemId>,<itemText>[,<iconId>,<dispMode>,<nai><CR ><LF> [ ]]]] +STGC:28,<dcs>,<text>[<iconId>,<dispMode>] +STGC:14[,<alphaId>[,<iconId>,<dispMode>]] +STGC:40[,<alphaId>[,< iconid>,<dispmode>]] +STGC:05,<eventList> 注 : 参数定义表格定义的是各参数的释义, 表格中参数出场顺序跟语法规则表格中参数出场顺序无关! 参数 定义 取值 对取值的说明 <command_id> STK 命令的对应 id, 十六请参考 +STC 进制整数 <text> 或 <default> 的 0 7bit GSM default alphabet (packed) <dcs> 编码方式 (data coding 4 8bit data scheme), 整数型 8 UCS2 alphabet <text> 文本信息 字符串类型 <priority> 显示优先级 0 普通优先级 1 高优先级 00 launch browser without making connection, if not already launched 01 launch browser making connection, if not already launched <comqual> Command qualifier 02 use existing browser 03 close existing browser, launch new browser, making a connection 04 close existing browser, launch new browser, usingsecure session <gateway> 网关 - 字符串类型 <bearer> 承载类型 00 SMS 01 CSD 第 133 页共 259 页 STK(SIM Application Toolkit) 相关命令

02 USSD 03 GPRS Uniform Resource <url> Locator <numfiles> 镜像文件数量 - 整数型 <provfiles> 镜像文件参考 id - 字符串型 0 Clear after delay <clear> 清除消息的模式 1 User clears message 0 没有 icon <iconid> Icon tag, 整数型 1~255 Icon tag 指示 icon 的使用模式, 整 0 只显示 icon <dispmode> 数型 1 显示 <alphaid> 和 <text> 0 normal response expected <response1> 返回信息 1 immediate responseexpected. 返回信息 0 Digits (0-9, *, # and +) only 1 SMS default alphabet <response2> 2 UCS2 alphabet 3 Yes/No response only 返回信息 1 Digits (0-9, *, # and +) only from SMS default alphabet (unpacked) 2 Digits (0-9, *, # and +) only from SMS default <response3> alphabet (packed) 3 Digits from UCS2 alphabet 4 SMS default alphabet (unpacked) 5 SMS default alphabet (packed) 6 UCS2 alphabet 0 无帮助信息 <helpinfo> 帮助信息 1 有帮助信息 0 echo input to display <echo> 回声 1 no echo allowed <minlgth> Response 的最小长度 0~255 整数型 <maxlgth> Response 的最大长度 1~255 整数型 <alphaid> 字符串型, SMS default alphabet 或 UCS2 编码 1 Dial tone( 拨号音 ) 2 Called Subscriber Busy( 被叫忙 ) 3 Congestion( 堵塞 ) <tone> Tone 音 4 Radio Path Acknowledge 5 Radio Path Not Available / Call Dropped 6 Error / Special information 7 CallWaiting Tone 第 134 页共 259 页 STK(SIM Application Toolkit) 相关命令

8 Ringing Tone 16 General Beep 17 Positive Acknowledgement Tone 18 Negative Acknowledgement or Error Tone 19 Indian Dial Tone <duration> Tone 音播放的持续时间 1~ 整数型, 单位为毫秒 15300000 <numitems> 菜单中的可选项目的数量 - 整数型 当等于 0 的时候, 标志当前菜单从菜单项中删除 <selection> 选择方式, 整数型 0 no selection preference 1 soft key selection preferred <itemid> identifier of the item - 整数型 <itemtext> Item 的文字信息 字符串型 <nai> next action indicator - 合法的取值范围同 <command_id> <removemenu> 移除菜单 0 不移除菜单 1 移除菜单 05 User Activity Event <eventlist> 事件列表 06 Idle Screen Event 08 Language Selection Event FF Clear Current Event List 13.3 STK 命令回复 :AT+STCR 当 TE(Application) 这边通过 +STGC 获取 STK 主动式命令并成功执行后, 需要发给 SIM 卡一个回复信息 :TERMINAL RESPONSE, 这个 TERMINAL RESPONSE 回复就是由 AT+STCR=<command_id>,<result>[,<data>] 来完成 的 下面的列表将此命令逐一列出 命令类型 语法 返回和说明 <command_id>=21=display Text AT+STCR=21,<result0> 或 +CME ERROR: <err> <command_id>=22= Get Inkey 设置命令 AT+STCR=22,<result1>[,<dcs>,<text>] AT+STCR=23,<result2>[,<dcs>,<text>] AT+STCR=20,<result3> 或 +CME ERROR: <err> <command_id>=23= Get Input 或 +CME ERROR: <err> <command_id>=20=play Tone 或 +CME ERROR: <err> 第 135 页共 259 页 STK(SIM Application Toolkit) 相关命令

<command_id>=25= Set UpMenu AT+STCR=25,<result4> 或 +CME ERROR: <err> <command_id>=24=select Item AT+STCR=24, <result5>[,<item_id>] AT+STCR=10, <result6> 或 +CME ERROR: <err> <command_id>=10= GetAcknowledgement For Set Up Call AT+STCR=28, <result7> 或 +CME ERROR: <err> <command_id>=28= Set Up Idle Mode Text 或 +CME ERROR: <err> <command_id>=14=send DTMF AT+STCR=14, <result8> 或 +CME ERROR: <err> <command_id>=15=launch Browser AT+STCR=15, <result9> 或 +CME ERROR: <err> <command_id>=40=open Channel AT+STCR=40,<result10> 或 +CME ERROR: <err> <command_id>=05=set up Event List AT+STCR=05, <result11> 或 +CME ERROR: <err> 注 : 参数定义表格定义的是各参数的释义, 表格中参数出场顺序跟语法规则表格中参数出场顺序无关! 参数 定义 取值 对取值的说明 <command_id> STK 命令的对应 id, - 请参考 +STC 十六进制整数 <dcs>,<text> - 请参考 +STGC <item_id> 子菜单项的 id - 整数型 0 消息显示 1 结束 STK 会话 <result0> 执行结果, 整数型 2 用户清除消息 3 屏幕忙 4 需要返回上一页 5 用户无反应 第 136 页共 259 页 STK(SIM Application Toolkit) 相关命令

0 数据输入 1 结束 STK 会话 <result1> 执行结果, 整数型 2 需要帮助信息 3 需要返回上一页 4 用户无反应 <result2> 执行结果, 整数型 1~4 取值定义与 <result1> 相同 0 命令执行 <result3> 执行结果, 整数型 1 结束 STK 会话 2 Tone 音没有被播放 3 指定的 tone 音不支持 0 菜单添加 / 移除成功 <result4> 执行结果, 整数型 1 用户选择的菜单项 2 需要帮助信息 3 菜单操作出错 0 Item( 子菜单 ) 选择 1 结束 STK 会话 <result5> 执行结果, 整数型 2 需要帮助信息 3 需要返回上一页 4 无反馈信息 0 用户接听呼叫 <result6> 执行结果, 整数型 1 用户拒听呼叫 2 用户清除呼叫 <result7> 执行结果, 整数型 0 添加 / 删除文本信息 1 执行命令时出错 <result8> 执行结果, 整数型 0 DTMF not accepted 1 DTMF required 0 命令执行成功 1 命令执行 - 部分成功 2 命令执行 - 信息缺失 3 用户拒绝打开浏览器 <result9> 执行结果, 整数型 4 ERROR- 没有明确的信息给出 5 承载不可用 6 浏览器不可用 7 ME 无法处理命令 8 网络无法处理命令 9 该命令超出 ME 的处理能力 <result10> 执行结果, 整数型 0 Channel not accepted 1 Channel required <result11> 执行结果, 整数型 0 命令执行成功 1 命令执行失败 第 137 页共 259 页 STK(SIM Application Toolkit) 相关命令

13.4 STK Profile Download:AT+STPD 当 TE(/Application) 与模块串口连接后, 模块的 AT 解析程序需要通过 AT+STPD 命令知道 TE(/Application) 的 SKT 的处理能力, 以决定是否将 STK 相关的信息发送给 TE(/Application) 如果模块这边没收到 TE(/Application) 发送的 +STPD 命令, 则模块默认 TE(/Application) 无 STK 处理能力, 将不会发送任何相关的 STK 信令给 TE(/Application) 如果 SIM 这边没有 STK 功能, 会有一个 +STC:0 的 URC 命令将此情况通知给 TE(/Application) 命令类型语法返回和说明 设置命令 AT+STPD=<length>,<data> 或 +CME ERROR: <err> 参数 定义 取值 对取值的说明 <length> <data> 的长度 整数型 <data> Terminal Profile 十六进制 13.5 STK Event Command:AT+STEV STK 通过一个 URC 命令 +STC:05 来告诉 TE(/Application) 它需要监视的一系列事件 (EVENT), 而当这些事件发生时, TE(/Application) 通过 AT+STEV 这条 AT 命令告诉 STK 事件的发生以及事件的细节, 以便 STK 的后续动作 命令类型语法返回和说明 设置命令 AT+STEV=<event>,<language> 或 +CME ERROR: <err> +STEV: (list of supported <event>s) 测试命令 注意事项 AT+STEV=? 或 : +CME ERROR: <err> <language> 仅仅在 Language SelectionEvent 事件时有效 参数 定义 取值 对取值的说明 05 User Activity Event <event> 16 进制整数 06 Idle Screen Event 08 Language Selection Event FF Clear Current Event List <language> 语言类型 字符串型, 需要用双引号 第 138 页共 259 页 STK(SIM Application Toolkit) 相关命令

13.6 STK 主菜单选择命令 :AT+STMS TE(/Application) 这边收到 SET UP Menu 菜单后, 会从主菜单中选择一个子菜单项, 这个动作用 AT+STMS 来完成 命令类型语法返回和说明 设置命令 参考 AT+STMS=<item>[,<help>] 或 +CME ERROR: <err> 例如,AT+STMS=2,1 将选择 STK 主菜单的第 2 项 (with help) 参数 定义 取值 对取值的说明 <item> 主菜单项的 ID - 整数型 <help> 帮助菜单, 整数型 0 不需要 help 信息 1 需要 help 信息 13.7 STK Response Timer:AT+STRT 当 TE(/Application) 这边收到一个 STK 主动式命令的时候, 一个自动的反馈定时器 (Response Timer) 开始计时 如果 SIM 卡在定时器到时的时候, 仍未收到一个有效的 +STCR 命令, 则一个带有 No User Response 结果码的 Terminal Response 命令将会发送到 SIM 这边 该命令允许设置该定时器, 以供特别的命令执行需要 ( 例如 GET INPUT) 该定时器的缺省定时时间是 10 秒钟, 最大允许 时间为 1 个小时 命令类型 语法 返回和说明 设置命令 AT+STRT=[<duration>] 或 +CME ERROR: <err> +STRT: <duration> 查询命令 AT+STRT? 测试命令 AT+STRT=? +STRT: (list of supported <duration>s) 参数定义取值对取值的说明 <duration> 定时器的时间 1~3600 整数型, 单位为秒 缺省为 10 秒 第 139 页共 259 页 STK(SIM Application Toolkit) 相关命令

13.8 STK Play Tone 命令 :AT+STTONE 当 TE(/Application) 这边收到一个 STK Play Tone 命令的时候, 可以用该命令实现 tone 音播放, 可以播放指定 id 的 tone 音, 也可以停止 tone 音播放 ( 由 <mode> 来控制播放或停止 ) 当完成当前的 tone 音播放后, 会有一个 +STTONE:0 的 URC 上报给 TE 但是 tone 音完成播放之前, 发送 AT+STTONE=0 来终止播放, 则不会有 URC 上报, 只会有一个 上报 命令类型语法返回和说明 设置命令 测试命令 AT+STTONE=<mode>[,<tone>,<duration>] AT+STTONE=? 或 +CME ERROR: <err> +STTONE: (<mode> 取值列表 ),(<tone> 取值列表 ),(<duration> 取值列表 >) 注 : 参数定义表格定义的是各参数的释义, 表格中参数出场顺序跟语法规则表格中参数出场顺序无关! 参数定义取值对取值的说明 0 停止播放 tone 音 <mode> 播放 tone 音的状态 1 开始播放 tone 音 1 Dial tone( 拨号音 ) 2 Called Subscriber Busy( 被叫忙 ) 3 Congestion( 堵塞 ) 4 Radio Path Acknowledge 5 Radio Path Not Available / Call Dropped 6 Error / Special information <tone> Tone 音类别, 整数型 7 CallWaiting Tone 8 Ringing Tone 16 General Beep 17 Positive Acknowledgement Tone 18 Negative Acknowledgement or Error Tone 19 Indian Dial Tone <duration> Tone 音播放的持续时间 1~15300000 整数型, 单位为毫秒 13.9 使用方法举例 由于这部分的命令具有高度相关性, 所以将各个命令的应用例程集中在一起描述 举例 : 命令 ( ) / 返回 () 实例 解释和说明 第 140 页共 259 页 STK(SIM Application Toolkit) 相关命令

以中国移动神州行 GSM SIM 卡中的 STK 应用 :SEND SM 为例 : AT+STPD=4,0000FFFF 打开 STK 应用 (URC) +STC: 25 +STC: 25 表示一个 SETUP MENU 的主动式 命令需要获取 AT+STGC=25 获取 STK 命令 +STGC: 25,15,0,0,0,80795E5DDE884C59295730 +STGC: 1,808F7B677E95EE5019 +STGC: 2,8077ED4FE17FA453D1 +STGC: 3,804F1860E05FEB8BAF +STGC: 4,804E1A52A17CBE9009 +STGC: 5,808D448D3963A88350 +STGC: 6,8081EA52A9670D52A1 +STGC: 7,808F7B677E5F6994C3 +STGC: 8,808BED97F367425FD7 +STGC: 9,8097F34E506392884C699C +STGC: 10,8065B095FB59296C14 +STGC: 11,8094C358F056FE7247 +STGC: 12,80804A59294EA453CB +STGC: 13,805F005FC34F1195F2 +STGC: 14,80751F6D3B5E388BC6 +STGC: 15,8000530049004D53614FE1606F SETUP MENU, 主菜单列表 第一个菜单是 : 轻松问候第二个菜单是 : 短信群发 AT+STCR=25,0 SETUP MENU 命令的返回 AT+STMS=2 选择主菜单中的第二个子菜单 : 短信群发 (URC) +STC: 24 +STC: 24 表示有一个 SELECT ITEM 的主动 式命令需要获取 AT+STGC=24 获取命令 +STGC: 24,6,0,0 +STGC: 1,8065B07F1677ED4FE1 +STGC: 2,805DF2653677ED4FE1 +STGC: 3,807EC454587BA17406 +STGC: 4,80589E52A07FA47EC4 +STGC: 5,807FA47EC46539540D +STGC: 6,80522096647FA47EC4 短信群发有 6 个子菜单 : 1 新编短信 2 已收短信 3 组员管理 4 增加群组 5 群组改名 6 删除群组 AT+STCR=24,0,1 SELECT ITEM, 选择新编短信 (URC) +STC: 23 +STC: 23 表示有一个 GET INPUT 的主动式命令需要获取 AT+STCR=23,0,0,07 输入一个数字 7 <result>=0, 表示选择 ITEM 第 141 页共 259 页 STK(SIM Application Toolkit) 相关命令

<dcs>=0, 表示编码格式是 : 7BIT GSM DEFAULT (URC) +STC: 24 AT+STGC=24 +STGC: 24,3,0,0 +STGC: 1,80900962E97FA47EC4 +STGC: 2,80900962E953F77801 +STGC: 3,808F93516553F77801 有 3 个 items 供选择 : 1 选择群组 2 选择号码 3 输入号码 AT+STCR=24,0,3 选择第 3 个 item: 输入号码 (URC) +STC: 23 +STC: 23 表示有一个 GET INPUT 的主动式 命令需要获取 AT+STCR=23,0,4,3133343632333130393636 输入一个手机号码 :13462310966 (URC) +STC: 24 AT+STGC=24 +STGC: 24,3,0,0 +STGC: 1,8053D1900177ED4FE1 +STGC: 2,807EE77EED6DFB52A0 +STGC: 3,8067E5770B63A56536800552178868 有 3 个 items 供选择 : 1 发送短信 2 继续添加 3 选择接受者列表 AT+STCR=24,0,1 选择发送短信 (URC) +STUD: 13,807B2C00315C01FF0C53D190017ED90031003 3003400360032003300310030003900360036 +STC: 21 AT+STGC=21 +STGC: 21,8, 53D190016210529F,1,1,0 SEND SM,text 信息显示 : 第 1 封, 发送给 13462310966 +STC:21 表示有一个 DISPLAY TEXT 的命令需要获取 53D190016210529F= 发送成功 AT+STCR=21,4 返回上级菜单 (URC) +STC: 24 +STC: 24 表示有一个 SELECT ITEM 的主动 式命令需要获取 AT+STGC=24 获取命令 +STGC: 24,6,0,0 +STGC: 1,8065B07F1677ED4FE1 +STGC: 2,805DF2653677ED4FE1 +STGC: 3,807EC454587BA17406 返回到短信群发 6 个子菜单列表 : 1 新编短信 2 已收短信 3 组员管理 第 142 页共 259 页 STK(SIM Application Toolkit) 相关命令

+STGC: 4,80589E52A07FA47EC4 +STGC: 5,807FA47EC46539540D +STGC: 6,80522096647FA47EC4 4 增加群组 5 群组改名 6 删除群组 第 143 页共 259 页 STK(SIM Application Toolkit) 相关命令

14 音频相关命令 14.1 静音控制 :AT+CMUT 使用该指令, 可启用或禁用语音呼叫中上行语音 (MIC) 静音功能 命令类型 语法 返回和说明 设置命令 AT+CMUT=<n> 注 : 此设置命令只有在语音通话进行当中才能设置生效 查询命令 测试命令 AT+CMUT? AT+CMUT=? +CMUT: <n> +CMUT: (<n> 取值列表 ) 参数定义取值对取值的说明 0 静音关闭 <n> 开启或关闭静音功能 1 静音开启 举例 : 命令 ( )/ 实例 解释和说明 返回 () ATD180****9710; 拨打一个手机 (URC) CONNECT 对方接听 AT+CMUT=1 设置 MIC 静音 设置 <n>=1 后, 再说话, 对方就听不见了 14.2 接收器音量控制 :AT+CLVL 命令类型语法返回和说明 第 144 页共 259 页 音频相关命令

设置命令 AT+CLVL =< level > 查询命令 AT+CLVL? 测试命令 AT+CLVL=? +CLVL:<level> +CLVL: (<level> 取值范围 ) 参数定义取值对取值的说明 <level> 音量级别 0~100 整型值, 和厂商相关 ( 最小值代表了最低的声音级别 ) 14.3 麦克风增益调节 :AT+CMIC 命令类型语法返回和说明 设置命令 AT+CMIC=<mode>,<value> 查询命令 测试命令 AT+CMIC? AT+CMIC=? +CMIC:<mode>,<value> +CMIC: (<mode> 取值范围 ),(<value> 取值范围 ) 参数 定义 取值 对取值的说明 <mode> 音频通道 0~9 整数型, 音频通道的定义请参考 AT+CHFA <value> MIC 增益 0~15 整数型 14.4 是否配备免提 :AT+CHF 命令类型语法返回和说明 设置命令 AT+CHF=<ind>,<state> 查询命令 AT+CHF? +CHF: <ind>,<state> 第 145 页共 259 页 音频相关命令

测试命令 AT+CHF=? +CHF: (<ind> 取值范围 ),(<state> 取值范围 ) 参数定义取值对取值的说明 0 关闭 URC 上报 <ind> URC 上报开关 1 开启 URC 上报 <state> 音频通道 0-9 定义同 +CHFA 参数 <n>, 要根据实际硬件设置 14.5 音频通道切换 1:AT+CHFA 命令类型语法返回 设置命令 AT+CHFA=<n> 查询命令 测试命令 AT+CHFA? AT+CHFA=? +CHFA: <n> +CHFA: (0 = RECEIVER, 1 = EARPIECE, 2 = LOUDSPEAKER, 3 = AUX_RECEIVER, 4 = AUX_LOUDSPEAKER, 5 = AUX_EARPIECE, 6 = DUMMY_RECEIVER, 7 = DUMMY_AUX_RECEIVER, 8 = DUMMY_LOUDSPEAKER, 9 = DUMMY_AUX_LOUDSPEAKER) 参数定义取值对取值的说明 0 通道 0(RECEIVER 通道 ) 1 通道 1(EARPIECE 通道 ) 2 通道 2(LOUDSPEAKER 通道 ) 3 通道 3(AUX_RECEIVER 通道 ) 4 通道 4(AUX_LOUDSPEAKER 通道 ) <n> 音频通道 5 通道 5(AUX_EARPIECE) 6 通道 6(DUMMY_RECEIVER) 7 通道 7(DUMMY_AUX_RECEIVER) 8 通道 8(DUMMY_LOUDSPEAKER) 9 通道 9(DUMMY_AUX_LOUDSPEAKER) 第 146 页共 259 页 音频相关命令

14.6 音频通道切换 2:AT+XDRV 命令类型语法返回说明 设置命令 AT+XDRV=0,0,1,1 切换到手柄 handset AT+XDRV=0,0,2,4 切换到免提 loudspeaker 注意事项 该命令是为了兼容 AT139 模块 14.7 产生 DTMF 音 :AT+VTS DTMF(Double Tone Multiple Frequency, 双音多频 ), 用来在电话建立以后拨打分机号码或自动语音服务 命令类型 语法 返回和说明 设置命令 AT+VTS=<dtmf-string> 或 AT+VTS=<dtmf>[,<duration>] 测试命令 AT+VTS=? +VTS:( <dtmf> 取值列表 ),,(<duration> 取值列表 ) 参数定义取值对取值的说明 <dtmf-string> <dtmf> DTMF 字符串 单个 DTMF 字符串型 它最大有 20 个字符, 由 0-9, #, *, A, B, C, D 内的字符组成, 以, 隔开, 该字符串必须放在双引号内 当播放 DTMF 字符串的时候, 单个 DTMF 音的持续时间由 +VTD 定义 单个 ASCII 字符, 此时不需要双引号 范围如下 0-9, #,*, A-D 它作为一个 DTMFtones 的序列被解析, 持续时间定义如下 : 如果 AT+VTS=<dtmf>, 则持续时间通过命令 +VTD 来设置 ; 如果 AT+VTS=<dtmf>,<duration>, 则持续时间通过 <duration> 定义 <duration> 持续时间 1~255 tone 的持续时间, 以 1/10 秒为单位 举例 : 命令 ( )/ 返回 () 实例 AT+VTS=? +VTS: (0-9,*,#,A,B,C,D),,(1-255) 解释和说明 以下的例子是拨打总机接通后, 再用 DTMF 拨打分机 109: ATD5487**06; 拨打总机 5487**06 第 147 页共 259 页 音频相关命令

总机接通 CONNECT AT+VTS= 1,0,9 拨打分机 109 ATD10086; 拨打 10086 接通 CONNECT AT+VTS=2 选择自动语音服务中的 2 服务 14.8 DTMF TONE 周期 :AT+VTD 命令类型语法返回 设置命令 AT+VTD=<n> 查询命令 测试命令 AT+VTD? AT+VTD=? + VTD:<n> + VTD: (<n> 取值列表 ) 参数定义取值对取值的说明 <n> Tone 的长度 1~255 以 1/10 秒为单位的 tone 持续时间 14.9 来电音开关 :AT+CALM 命令类型语法返回 设置命令 AT+CALM=<mode> 查询命令 AT+CALM? + CALM:<mode> 第 148 页共 259 页 音频相关命令

测试命令 AT+CALM=? + CALM: (<mode> 取值范围 ) 参数定义取值对取值的说明 0 正常模式 <mode> 来电音模式 1 静音模式 14.10 来电音量级别 :AT+CRSL 命令类型 语法 返回和说明 设置命令 AT+CRSL=<level> 查询命令 AT+CRSL? +CRSL:<level> 测试命令 AT+CRSL=? +CRSL: (<level> 取值范围 ) 参数定义取值对取值的说明 <level> 来电音模式 0~100 整型数 ( 最小值代表了最低的声音级别 ) 举例 : 命令 ( )/ 实例 解释和说明 返回 () AT+CRSL? 查询当前来电级别配置 +CRSL: 50 50 是缺省配置 第 149 页共 259 页 音频相关命令

14.11 播放本地 DTMF 音 :AT+CLDTMF AT+CLDTMF 设置命令产生本地 DTMF 音 命令类型 语法 返回和说明 设置命令 AT+CLDTMF=<n>[,<DTMF string>] 执行命令 AT+CLDTMF 中止播放 DTMF 音和 DTMF 音序列 +CLDTMF: (<n> 取值范围 ),(0~9,A,B,C,D,*,#) 测试命令 注意事项 AT+CLDTMF=? CLDTMF 播放时间问题 : 系统将按照实际播放时间进行时间和间隔的调整 这个调整存在上限和下限, 没有具体的比例 调整方式如下 : 默认单个音播放时间为 200ms, 默认播放间隔为 50ms 比如要播放 5 个字符, 那总长度需要 200X5+50X4ms=1200ms 这个 1200ms 是默认长度, 设置的时间长度会和这个默认长度进行比较 如果设置时间长度 n*100 > 1200ms 首先扩大播放间隔, 直到总的播放长度 = 设置的时间长度或者播放间隔增大到 550ms 如果这时候仍然有剩余, 那就将单个音的播放长度增加为 ( 实际长度 4*550ms)/5 如果设置时间长度 n*100 < 1200ms 首先减少单个 tone 的播放时间, 最小为 100ms 如果还不满足就减少播放个数 参数定义取值对取值的说明 <n> 整个 DTMF 字符长度播放 时间 <DTMF string> DTMF 音字符串 - 1~1000 整数型, 单位为 100 毫秒 字符串型 最长 20 个 DTMF 音 由 0~9,A,B,C,D,*,# 组成, 单个 DTMF 音之间用, 分开 举例 : 命令 ( ) 实例 解释和说明 / 返回 () AT+CLDTMF=? 测试命令 +CLDTMF: (1-1000),0-9,A,B,C,D,*,# AT+CLDTMF=14,"1,2,3,4,5" 本地播放 1,2,3,4,5 共 5 个 DTMF 音, 总播放时间是 1400ms 单个音的播放事件是 200ms, 每个音的间隔是 100ms(5*200+4*100) 第 150 页共 259 页 音频相关命令

AT+CLDTMF=9,"1,2,3,4,5" 本地播放 1,2,3,4,5 共 5 个 DTMF 音, 总播放时间是 900ms 单个音的播放时间是 100ms, 每个音的间 隔是 100ms(5*100+4*100) AT+CLDTMF=18,"1,2,3,4,5" 本地播放 1,2,3,4,5 共 5 个 DTMF 音, 总播放时间是 1800ms 单个音的播放时间是 200ms, 每个音的间 隔是 200ms(5*200+4*200) 14.12 DTMF 解码开关 :AT+DDET AirM2M GPRS+GPS 模块能辨别 DTMF 音以及某些单频音 设置命令用来打开识别 DTMF 和单频音的开关 命令类型 语法 返回 设置命令 AT+DDET=<mode>[,<interval>][, <reportmode>][,<ssdet>] 查询命令 AT+DDET? +DDET: <mode>,<interval>,<reportmode>,<ssdet> 测试命令 AT+DDET=? +DDET: (0,1),(0-10000),(0,1),(0,1) 当 <mode>=1 且 <reportmode>=0, 且检测到 DTMF 音或单频 +DTMF:<key> 音时, 会有如此的 URC 结果码上报 URC 上报当 <mode>=1 且 <reportmode>=1, 且检测到 DTMF 音或单频 +DTMF:<key>,<lasttime> 音时, 会有如此的 URC 结果码上报 参数定义取值对取值的说明 <mode> <interval> DTMF code detection is enabled or disabled the min interval between two same key URC 0 DTMF code detection is disabled 1 DTMF code detection is enabled 0-10000 the default value is 0. unit is ms. <key> DTMF 值 1-9,*,#,A,B,C,D 0 key value reported only <reportmode> key value and last time are reported, the 1 last time is in ms <lasttime> duration of keytone playing unit is ms. <ssdet> single frequency sound 0 switch off 第 151 页共 259 页 音频相关命令

detect function on off 1 switch on 举例 : 命令 ( )/ 返回 () 实例 解释和说明 AT+DTMFDET=1 设置 DTMF 解码开关为 : 打开 ATD1389000****; 语音呼叫手机 1389000**** (URC) CONNECT 对方接听 +DTMF:1 +DTMF:2 对方在手机上用键盘输入 1,2,3,4,5,6,7,8,9, 0,*,# +DTMF:3 +DTMF:4 +DTMF:5 +DTMF:6 +DTMF:7 +DTMF:8 +DTMF:9 +DTMF:0 +DTMF:* +DTMF:# (URC) NO CARRIER 对方挂机 14.13 TTS(Text To Speech) 功能 :AT+CTTS 命令类型语法返回 设置命令 AT+CTTS=<mode>[,<text>] 第 152 页共 259 页 音频相关命令

查询命令 AT+CTTS? +CTTS: <status> 测试命令 AT+CTTS=? URC 当 TTS 播放完毕, 会有以下 URC 上报 : +CTTS:0 注 : 参数定义表格定义的是各参数的释义, 表格中参数出场顺序跟语法规则表格中参数出场顺序无关! 参数定义取值对取值的说明 <mode> <text> <status> TTS 工作模式 TTS 文本 TTS 工作状态 0 停止播放 TTS 1 播放 TTS,<text> 使用 UCS2 编码 2 播放 TTS,<text> 使用 ASCII 编码 ( 字母 数字 ) 或 GBK 编码 ( 中文 ) 字母数字或 中文 最大长度为 479 个字符 ( 即一次播放最大可听到 479 个字 / 字母 / 数字 ) 如果 <mode>=1, 字符的输入形式为 UCS2 编码 例如, 播放 感谢 1, AT+CTTS=1, 6B228FCE0031 ; 如果 <mode>=2, 字符的输入形式为字母数字或中文 例如, 播放 感谢 1,AT+CTTS=2, 感谢 1 0 TTS 非播放状态 1 TTS 播放状态 举例 : 命令 ( ) / 返回 () 实例 AT+CTTS=2,"123, 欢迎你的到来 " 解释和说明 播放数字和中文 注 : 目前暂时无法播放英文,<text> 中的英文发音不是单词, 而是一个一个分离的字母 AT+CTTS=1,"6B228FCE003100310033" 播放的内容为 UCS2 编码, 发音为 : 欢迎 123 (URC) +CTTS:0 播放完毕, 会有这个 URC 上报 AT+CTTS=0 也可以在播放过程中用这个命令终止播放 14.14 设置 TTS 播放模式 :AT+CTTSPARAM 命令类型 语法 返回 设置命令 AT+CTTSPARAM=<volume>,<mode>,<pitch>,<speed>[,<channel>] 第 153 页共 259 页 音频相关命令

查询命令 AT+CTTSPARAM? +CTTSPARAM:<volume>,<mode>,<pitch>,<spee d>,<channel> 测试命令 AT+CTTSPARAM=? 参数定义取值对取值的说明 <volume> TTS 播放音量 0-100 缺省值为 50 0 auto read digit, and read digit based on number rule first TTS 播放模式, 1 auto read digit, and read digit based on telegram rule first <mode> range:0-3 2 read digit based on telegram rule 3 read digit based on number rule <pitch> TTS 播放音高 1-100 缺省值为 50 <speed> TTS 播放速度 1-100 缺省值为 50 0 main channel <channel> TTS 播放通道 1 aux channel 14.15 录音功能 :AT+CREC 该功能可以录音, 并播放录音 命令类型 语法 返回 AT+CREC=<mode>[,<id>], 具体如下 : <mode>=1, 开始录音 : AT+CREC=1,<id>,<form>[,<time>,<location>, <quality>,<input path>] <mode>=2, 停止录音 : 设置命令 AT+CREC=2 +CREC: <id>,<form>,<time>,<len> <mode>=3, 删除录音 : AT+CREC=3,<id> <mode>=4, 播放录音 : AT+CREC=4,<id>,<channel>,<level>,<repeat> <mode>=5, 停止播放录音 : +CREC: 0 第 154 页共 259 页 音频相关命令

AT+CREC=5 <mode>=6, 读取录音文件 : AT+CREC=6,<id>,<len>,<offset> <mode>=7, 查看录音文件信息 : +CREC: 6,<id>,<len> data +CREC: 7,<id>,<len>,<form> AT+CREC=7[,<id>] <mode>=8, 查询录音可用空间 : +CREC: 8,<len> 查询命令 测试命令 AT+CREC=8 <mode>=9, 创建录音文件目录 : AT+CREC=9,<location> AT+CREC? AT+CREC=? 上述命令也可能 +CME ERROR: <err> <err> 定义如下 : 5000 Be recoding 5001 Be playing 5002 Audio busy 5003 No space 5004 Format error 5005 File operation failure 5006 File is null 5007 File size is error 5008 File is not exis +CREC: <status> +CREC: (1-n),(1-10) 注 : 参数定义表格定义的是各参数的释义, 表格中参数出场顺序跟语法规则表格中参数出场顺序无关! 参数 定义 取值 对取值的说明 1 开始录音 2 停止录音 <mode> 操作 3 删除录音 4 播放录音 5 停止播放录音 第 155 页共 259 页 音频相关命令

<id> 录音文件 id 1-10 或文件路径 <form> <time> <channel> 录音文件格式 录音时间限制 音频通道 <level> 播放音量 0-100 <repeat> <len> 播放重复 长度 <offset> 读取文件的起始位置 0~ 文件长度 6 读取录音文件, 每次最大 32K 7 列出录音文件信息 8 查询剩余的空间 ( 单位 : 字节 ) 9 创建音频文件目录 0 AMR 1 WAV 2 WAV_ADPCM 0 主通道 1 辅助通道 0 播放一次 1 不停循环播放 <data> 录音文件数据 HEX 格式 <location> <input path> <quality> <status> 录音文件的存储位置 声音输入通道 录音质量 当前状态 0 System FAT 1 SD card 0 MIC1 1 MIC2 0 low 1 medium 2 high 3 best 0 idle state 1 recording state 2 playing state 如果是文件路径, 须用双引号括住 形式如 : C:\User\123.amr 如果录音时间已到, 录音将自己终止 如果空间已满, 或有来电, 也会终止录音 设置为 0 或空, 则没有时间限制 单位 : 字节读取录音文件的时候, 最大长度为 32K 字节 14.16 音频回环测试 :AT+AUDLB 该命令用于音频回环测试 命令类型 语法 返回 设置命令 AT+AUDLB=<loopback>,<audiopath> 测试命令 AT+AUDLB=? +AUDLB:<loopback> 取值列表,<audiopath> 取值列 表 第 156 页共 259 页 音频相关命令

注意事项 该命令不可以和 AT+CTTS 同时用, 需要 TTS 功能的时候, 请把音频回环关掉 参数定义取值对取值的说明 0 关闭 <loopback> 打开或关闭音频回环 1 打开 0 手柄通道 1 耳机通道 <audiopath> 音频通道 2 免提通道 3 辅助手柄通道 4 辅助免提通道 第 157 页共 259 页 音频相关命令

15 文件操作相关命令 15.1 创建文件 :AT+FSCREATE 命令类型语法返回 设置命令 AT+FSCREATE=<filename> 测试命令 AT+FSCREATE=? 参数定义取值对取值的说明 <filename> 文件名称不加双引号的字符串长度不能大于 64 不支持中文 15.2 写文件 :AT+FSWRITE 命令类型语法返回 > 输入 <filesize> 个字节 设置命令 AT+FSWRITE=<filename>,<mode>, <filesize>,<inputtime> 或者当命令输入错误会 ERROR 或者 <inputtime> 超时的时候仍然没有输入不少于 <filesize> 数量的字节会 TimeOut 测试命令 AT+FSWRITE=? 参数定义取值对取值的说明 <filename> 文件名称不加双引号的字符串长度不能大于 64 不支持中文 0 从文件的开头开始写文件 <mode> 写文件的方式 1 从文件的末尾开始写文件 <filesize> 文件的大小 1~10240 每次不超过 10240 个字节用户要在 <inputtime> 内输入不少于 <filesize> 个字节, <inputtime> 输入时间限制否则, 写文件失败 单位是秒 第 158 页共 259 页 文件操作相关命令

15.3 读文件内容 :AT+FSREAD 命令类型 语法 返回 设置命令 AT+FSREAD=<filename>,<mode>,<filesize> <data>,<position> 测试命令 AT+FSREAD =? 注意事项 当 <mode> 值设置为 0( 从头开始读取 ) 的时候,<position> 这个参数是无效的 参数定义取值对取值的说明 <filename> 要读取的文件的名称不加双引号的字符串长度不能大于 64 不支持中文 0 从文件的开头开始读文件 <mode> 读文件的方式 1 从 <position> 这个位置开始读文件该参数不超过 10240 个字节 如果设置的值大于文件 <filesize> 要读取的文件的大小 1~10240 的实际大小, 则读取的文件的长度为文件实际大小 <position> 读文件的起始位置 <data> 文件内容 0 且小于小于 <filesize> <filesize> 从文件头读的话,<position> 请设置为 0 15.4 删除文件 :AT+FSDEL 命令类型语法返回和说明 设置命令 AT+FSDEL=<filename> 测试命令 AT+FSDEL=? 参数定义取值对取值的说明 <filename> 要删除的文件的名称不加双引号的字符串 删除的时候, 文件名必须已经创建 长度不能大于 64 不支持中文 15.5 列出所有已创建文件 / 目录的名字 :AT+FSLS 第 159 页共 259 页 文件操作相关命令

命令类型 语法 返回和说明 设置命令 AT+FSLS=<filepath> <list of subdirectiories/files> 测试命令 AT+FSLS=? 注意事项 如果返回的结果字符串中最有一个字符是 \, 表明是目录, 否则是文件 参数 定义 取值 对取值的说明 <filepath> 文件目录名 不加双引号的字符串 长度不能大于 64 不支持中文 格式如 : C:\ 15.6 重新命名文件 :AT+FSRENAME 命令类型语法返回和说明 设置命令 AT+FSRENAME=<old_name>,<new_name> 测试命令 AT+FSRENAME=? 参数 定义 取值 对取值的说明 <old_name> 旧的文件名 不加双引号的字符串 长度不能大于 64 不支持中文 <new_name> 新的文件名 不加双引号的字符串 长度不能大于 64 不支持中文 15.7 创建目录 :AT+FSMKDIR 命令类型语法返回和说明 设置命令 AT+FSMKDIR=<dir_name> 测试命令 AT+FSMKDIR=? 第 160 页共 259 页 文件操作相关命令

15.8 删除目录 :AT+FSRMDIR 命令类型语法返回和说明 设置命令 AT+FSRMDIR=<dir_name> 测试命令 AT+FSRMDIR=? 15.9 查询文件系统剩余空间 :AT+FSMEM 命令类型 语法 返回和说明 设置命令 AT+FSMEM 如果 SD 卡不存在 ( 目前暂不支持 SD 卡 ), 则 +FSMEM:<local_drive>:<local_size>bytes 测试命令 AT+FSMEM=? 参数 定义 取值 对取值的说明 <local_drive> 模块本地盘符 不加双引号的字符串 长度不能大于 64 不支持中文 <local_size> 文件系统剩余空间 单位 : 字节 15.10 使用方法举例 命令 ( ) 实例 解释和说明 / 返回 () AT+FSDRIVE=0 创建盘符 C: AT+FSLS=C:\ 查询 C 盘根目录下文件和目录 User\ 模块开机会自动建立一个 User 目录 AT+FSCREATE=TEST.txt 创建一个 txt 文件 可以带路径, 如果不带路径的话, 缺省是放在 C:\ 下 AT+FSLS=C:\ 再次查询 C 盘根目录下文件和目录 User\ 多了一个刚创建的文件 TEST.txt 第 161 页共 259 页 文件操作相关命令

TEST.txt AT+FSWRITE=TEST.txt,0,8,15 从文件头输入 8 个字符 > 输入了 8 个字符 1234567- AT+FSREAD=TEST.txt,1,10,0 从头读文件 1234567- AT+FSWRITE=TEST.txt,1,2,15 从文件尾输入 2 个字符 CC > AT+FSREAD=TEST.txt,0,10,3 从头读文件 1234567-CC AT+FSMEM 查询剩余空间 +FSMEM: C:178176bytes AT+FSRENAME=TEST.txt,TY.txt 将 TEST.txt 重命名为 TY.txt AT+FSLS=C:\ 查看当前目录文件列表 User\ TY.txt AT+FSDEL=C:\TY.txt AT+FSLS=C:\ User\ 第 162 页共 259 页 文件操作相关命令

16 GPRS 相关命令 16.1 GPRS 移动台类别 :AT+CGCLASS 命令类型 语法 返回和说明 设置命令 AT+CGCLASS=<class> 查询命令 测试命令 AT+CGCLASS? AT+CGCLASS=? +CGCLASS: <class> +CGCLASS: (<class> 取值列表 ) 参数定义取值对取值的说明 <class> GPRS 移动台的类别 B CC 类别 B,MT 终端支持包交换和电路交换模式, 但不能同时支持 类别 CC,MT 终端仅支持电路交换模式 举例 : 命令 ( )/ 实例 解释和说明 返回 () AT+CGCLASS=? 查询模块支持的所有移动台级别 <class> +CGCLASS: ("B") 目前只支持 B AT+CGCLASS? 查询模块当前支持的移动台级别 <class> +CGCLASS:"B" 支持 B 16.2 GPRS 网络注册状态 :AT+CGREG 设置指令控制关于 GPRS 注册状态一些非请求结果码的显示 当 <n>=1 并且 MT 的 GPRS 注册状态发生改变, 即会有 +CGREG:<stat> 的 URC 上报 当 <n>=2 并且或 GPRS 注册状态发生变化注册小区发生改变, 会有 :+CGREG: <stat>[,<lac>,<ci>] 的 URC 上报 第 163 页共 259 页 GPRS 相关命令

查询指令返回结果码的显示形式 <n> 和一个可以表明 MT 网络注册状态的参数 <stat> 仅当 <n>=2 且 MT 在网络中注册后, 才返回位置信息要素 <lac> 和 <ci> 命令类型 语法 返回和说明 设置命令 AT+CGREG=[<n>] 查询命令 AT+CGREG? +CGREG:<n>,<stat>[,<lac>,<ci>] 测试命令 URC 上报 AT+CGREG=? +CGREG: <stat> +CGREG: <stat>[<lac>,<ci>] +CGREG:(<n> 取值列表 ) 如果设置 <n>=1, 当网络注册状态发生改变时, 会有这样的 URC(unsolicited result code) 如果设置 <n>=2, 当网络注册状态或注册的小区 (ci) 发生改变时, 会有这样的 URC 上报 : 注 : 参数定义表格定义的是各参数的释义, 表格中参数出场顺序跟语法规则表格中参数出场顺序无关! 参数定义取值对取值的说明 <n> <stat> <lac> 上报状态 当前网络注册状态 位置区号 (Location Area Code) 0 禁用网络注册非请求结果码 +CGREG: 1 启用网络注册非请求结果码 +CGREG: <stat> 2 启用网络注册和位置信息非请求结果码 +CGREG:<stat>[,<lac>,<ci>] 0 未注册 ;ME 当前没有搜索注册业务的新运营商 1 已注册, 本地网 2 3 4 未知 未注册, 但 ME 正在搜索注册业务的新运营商, 但是当前没有可用的公共陆地移动网络 (PLMN), 一旦 PLMN 有效,UE 将开始 GPRS 附着 注册被拒绝 GPRS 业务被禁用, 即使用户请求,UE 也不被允许附着 GPRS 网络 5 已注册, 漫游 - 字符型 ;2 字节十六进制位置区代码 ( 比如 :00C3 相当于十进 制中的 195) <ci> 小区号 (Cell Id) - 字符型 ;2 字节十六进制小区编号 举例 : 命令 ( )/ 实例 解释和说明 返回 () AT+CGREG? 查询当前 GPRS 注册状态 第 164 页共 259 页 GPRS 相关命令

+CGREG: 0,1 <n>=0,<stat>=1 AT+CGREG=1 设置 <n>=1, 当模块注册状态发生改变时, 会有一个 URC 上报 +CGREG: <stat> (URC) +CGREG: 1 当模块注册状态发生改变 AT+CGREG=2 设置 <n>=2, 当模块注册状态发生改变时, 会有一个 URC 上报 +CGREG: <stat>[,<lac>,<ci>] (URC) +CGREG: 5,"18be","9363" 当模块注册状态发生改变, 或移动模块, 使模块所处小区 号发生改变的时候, 会有个 URC 上报上来 16.3 GPRS 附着分离 :AT+CGATT 设置命令用于将 MT 附着 GPRS 业务, 或将 MT 从 GPRS 业务分离 查询命令返回当前的 GPRS 附着状态 命令类型语法返回和说明 设置命令 AT+CGATT=<state> 查询命令 测试命令 AT+CGATT? AT+CGATT=? +CGATT: <state> +CGATT: (<state> 取值列表 ) 参数定义取值对取值的说明 0 分离 <n> GPRS 附着状态 1 附着 举例 : 命令 ( )/ 实例 解释和说明 返回 () AT+CGATT? 查看当前 GPRS 附着状态 +CGATT: 1 <state>=1, 标明当前 GPRS 已经附着 AT+CGATT=? 查看 <state> 的取值范围 +CGATT: (0-1) 查询结果 第 165 页共 259 页 GPRS 相关命令

16.4 GPRS 上下文定义 :AT+CGDCONT 命令类型 语法 返回和说明 设置命令 AT+CGDCONT=<cid>[,<PDP_ty pe>[,<apn>[,<pdp_addr> [,<d_comp>[,<h_comp>]]]]] 查询命令 AT+CGDCONT? +CGDCONT:<cid>,<PDP_type>,<APN>,<PDP_addr>,< d_comp>,<h_comp>[<cr><lf>+cgdcont:<cid>,<p DP_type>,<APN>,<PDP_addr>,<d_comp>,<h_comp>] 测试命令 AT+CGDCONT=? +CGDCONT: (<cid> 取值列表 ),<PDP_ty pe>,,,(<d_comp> 取值列表 ),(<h_comp> 取值列表 ) 注 : 参数定义表格定义的是各参数的释义, 表格中参数出场顺序跟语法规则表格中参数出场顺序无关! 参数定义取值对取值的说明 <cid> PDP 上下文标识 1~8 <PDP_type> 分组数据协议类型 IP <APN> <PDP_address> <d_comp> <h_comp> 接入点名称 (Access Point Name) 分组数据协议地址 PDP 数据压缩 控制 PDP 头压缩 整数型 该参数对 TE-MT 接口而言是本地参数, 并且可用于其 他 PDP 上下文相关指令 字符型, 默认支持 IP 互联网协议 IP(Internet Protocol)(IETF STD5) 字符串型, 用于选择 GGSN 或外部分组数据网络的逻辑名称 若该参数取值为空或省略, 则需要请求签约值 字符型, 这是 IP 协议地址, 格式为 : "<n>.<n>.<n>.<n>" 其中 <n>=0~255; 用于标识对于特定 PDP 上下文,MT 分配的地址空间 若该参数为空或等于 0.0.0.0,MT 将被要求分配一个动态地址 使用 +CGPADDR 命令可读出此分配地址 用于控制 PDP 数据压缩 0 关闭 PDP 数据压缩 ( 若缺省, 默认为关闭的 ) 数字型参数 ; 用于控制 PDP 头压缩 0 关闭 PDP 头压缩 ( 若缺省, 默认为关闭的 ) 举例 : 命令 ( )/ 实例 解释和说明 返回 () AT+CGDCONT? 查询当前 PDP 上下文 只返回 表明当前没有任何上下文定义 第 166 页共 259 页 GPRS 相关命令

AT+CGDCONT=1,"ip","cmnet" 设置 PDP 上下文 AT+CGDCONT? 再次查询当前 PDP 上下文 +CGDCONT: 1,"IP","cmnet","",0,0 查询结果表明当前已经有一个 PDP 上下文, 其 <cid>=1 AT+CGDCONT=? 查询参数取值范围 +CGDCONT: (1-10),"IP",,,(0,1),(0,1) 查询结果 16.5 显示 PDP 地址 :AT+CGPADDR 使用设置命令, 返回的是 <cid> 所标识的 PDP 地址 ; 使用执行命令, 可返回所有上下文标识 <cid> 的 PDP 地址列表 ; 当 PDP 上下文未建立的时候, 使用该命令是无法查询和显示 PDP 地址的 命令类型 语法 返回 设置命令 AT+CGPADDR=<cid> +CGPADDR:<cid>,<PDP_addr> 执行命令 AT+CGPADDR +CGPADDR:<cid>,<PDP_addr>[<CR><LF>+CGPADDR:<cid >,<PDP_addr>[...]] 测试命令 AT+CGPADDR=? +CGPADDR: (<cid> 取值列表 ) 参数定义取值对取值的说明 <cid> PDP 上下文标识 1~8 <PDP_address> 分组数据协议地址 整数型 该参数对 TE-MT 接口而言是本地参数, 并且可用于其 他 PDP 上下文相关指令 字符型, 这是 IP 协议地址, 格式为 : "<n>.<n>.<n>.<n>" 其中 <n>=0~255; 用于标识对于特定 PDP 上下文,MT 分配的地址空间 举例 : 命令 ( )/ 返回 () 实例 解释和说明 AT+CGDCONT? 查询当前 PDP 上下文定义 +CGDCONT: 1,"IP","cmnet","",0,0 查询到有一个 PDP 上下文,<cid>=1 PDP( 即 IP) 地址 为 "", 表明 MT 被分配一个动态 IP 地址 第 167 页共 259 页 GPRS 相关命令

AT+CGACT? 查询当前的 PDP 上下文激活状态 +CGACT:1,0 <state>=0, 表明 <cid>=1 的 PDP 上下文处于未激活状态 AT+CGPADDR=1 查询 <cid>=1 的 PDP 上下文对应的 PDP 地址 ( 即 IP 地址 ) +CGPADDR: 1 <cid>=1 的 PDP 上下文未分配 IP 地址 AT+CGACT=1,1 激活 <cid>=1 的 PDP 上下文 AT+CGACT? 查询当前的 PDP 上下文激活状态 +CGACT:1,1 <state>=1, 表明 <cid>=1 的 PDP 上下文处于激活状态 AT+CGPADDR=1 查询 <cid>=1 的 PDP 上下文对应的 PDP 地址 ( 即 IP 地址 ) +CGPADDR: 1,"010.085.222.016" "010.085.222.016" 是 MT 分配的 IP 地址 AT+CGACT=0,1 去激活 <cid>=1 的 PDP 上下文 AT+CGACT? 查询状态, 已经去激活 +CGACT:1,0 (URC) CALL READY 会上报一个 CALL READY, 表明可以打电话了 16.6 PDP 上下文激活 :AT+CGACT 使用执行指令, 可激活或去激活指定的 PDP 上下文 该指令成功执行后,MT 保持 V.250ter 指令状态 若 PDP 上下文已处于所请求状态, 则该状态保持不变 当执行该指令的激活形式时, 若 MT 没有附着 GPRS,MT 首先进行 GPRS 附着, 然后尝试激活指定的上下文 若没指定 <cid>, 则指令的激活形式激活所有定义的上下文 若没指定 <cid>, 则指令的失效形式使所有激活的上下文失效 命令类型 语法 返回和说明 设置命令 AT+CGACT=<state>,<cid>[,<cid>[, ]]] 查询命令 AT+CGACT? +CGACT:<cid>,<state>[<CR><LF>+CGACT:<cid>, <state>[...]] 第 168 页共 259 页 GPRS 相关命令

测试命令 AT+CGACT=? +CGACT: (<state> 取值列表 ) 参数定义取值对取值的说明 <state> PDP 上下文激活状态 <cid> PDP 上下文标识 1~8 0 未激活 1 激活 整数型 该参数对 TE-MT 接口而言是本地参数, 并且可用于其他 PDP 上下文相关指令 举例 : 命令 ( )/ 返回 () 实例 解释和说明 具体实例请参考 +CGPADDR 条目的实例 16.7 进入数据模式 :AT+CGDATA 执行指令设置 MT 使用一个或多个分组域 PDP 类型, 执行相应的操作, 在 TE 和网络间建立通信 这包括执行 PS 域附着和一个或 多个 PDP 上下文激活 该命令若执行成功, 会显示 CONNECT, 并进入 V.250ter 在线数据状态 ; 若该命令执行失败, 比如 L2P 的参数无法被 MT 接受, 则 MT 返回 ERROR 或 +CME ERROR( 若使能 ) 来响应 该命令成功执行进入在线数据状态后输入的 AT 命令,MT 无法再处理 数据传输完毕后, 且第 2 层协议终止过程成功结束, 则重新进入 V.25ter 指令状态,MT 返回最终结果码 命令类型语法返回和说明 设置命令 AT+CGDATA[=<L2P>,[<cid>]] 设置命令用于指定一个或多个 PDP 上下文的 2 层协议,TE 和网络间建立通信 若建立成功,MT CONNECT 测试命令 AT+CGDATA=? 并进入 V.25ter 在线数据 +CGDATA: <L2P> 取值列表 参数定义取值对取值的说明 <cid> PDP 上下文标识 - 整数型 该参数对 TE-MT 接口而言是本地参数, 并且可用于其 第 169 页共 259 页 GPRS 相关命令

他 PDP 上下文相关指令 <L2P> Layer 2 协议 PPP 字符型参数 举例 : 命令 ( ) 实例 解释和说明 / 返回 () AT+CGDATA= PPP,1 TE 与网络之间建立一个 PPP 连接 CONNECT ~~~ }#À!}!}!} }<}!}$}&@}#}$À#}%}&Êê}*h} "}&} } } } }'}"}(}"7S~~ }#À!}!}"} }<}!}$} &@}#}$À#}%}&Êê}*h}"}&} } } } }'}"}(}"ï ~~ }#À!}!}#} }<}!}$}&@}#}$À#}%}&Êê}*h}"}& } } } } }'}"}(}" ~~ }#À!}!}$} }<}!}$}&@}#} $À#}%}&Êê}*h}"}&} } } } }'}"}(}"N@~~ #À!}!}'} }<}!}$}&@}#}$À#}%}&Êê}*h}"}&} } } } }'}"}(}" ~~ }#À!}!}(} }<}!}$}&@}#}$À 建立成功 NO CARRIER 退出 PPP 状态 AT+CGDATA=? 查询 <L2P> 的参数范围 +CGDATA: PPP 目前只支持 PPP 协议 16.8 可接受的最小服务质量简报 :AT+CGQMIN AT+CGQMIN TE 指定一个可接受的最小服务质量简报, 由 MT 用于与 PDP 上下文激活 消息所返回的协商简报进行比较 命令类型 语法 返回 设置命令 AT+CGQMIN=[<cid>[,<precedence> [,<delay>[,<reliability>[,<peak>,<mean >]]]]]] 查询命令 AT+CGQMIN? +CGQMIN: <cid>,<precedence>,<delay>,<reliability>,<pe ak>,<mean>[<cr><lf>+cgqmin: <cid>,<precedence>,<delay>,<reliability>,<pe ak>,<mean>[ ]] 测试命令 AT+CGQMIN=? +CGQMIN:<PDP_type>, (<precedence> 取值列 表 ),(<delay> 取值列表 ),(<reliability> 取值列 第 170 页共 259 页 GPRS 相关命令

表 ),(<peak> 取值列表 ),(<mean> 取值列表 ) [ ] 注 : 参数定义表格定义的是各参数的释义, 表格中参数出场顺序跟语法规则表格中参数出场顺序无关! 参数定义取值对取值的说明 <cid> 请参考 AT+CGDCONT 条目 0 默认, 签署的 QOS 优先级别 <precedence> 服务质量 (QOS) 优先级别 1~3 QOS 优先级别 0 签署的服务质量 (QOS) 延时级别 <delay> 服务质量 (QOS) 延时级别 1~4 QOS 延时级别 0 签署的服务质量 (QOS) 可靠性级别 <reliability> 服务质量 (QOS) 可靠性级别 1~5 QOS 可靠性级别 0 签署的服务质量 (QOS) 峰值吞吐量级别 <peak> 服务质量 (QOS) 峰值吞吐量级别 1~9 QOS 峰值吞吐量级别 0 签署的服务质量 (QOS) 平均吞吐量级别 <mean> 服务质量 (QOS) 平均吞吐量级别 1~18 QOS 平均吞吐量级别 31 尽力而为的 QOS 平均吞吐量级别 16.9 请求的服务质量简报 :AT+CGQREQ 设置命令可以设定由一个 <cid> 所标识的上下文激活请求消息的服务质量简报 上下文激活请求消息由 MT 向网络发出 命令类型 语法 返回 设置命令 AT+CGQREQ=[<cid>[,<precedence> [,<delay>[,<reliability>[,<peak>,<mean >]]]]]] 查询命令 AT+CGQREQ? +CGQREQ: <cid>,<precedence>,<delay>,<reliability>,<pe ak>,<mean>[<cr><lf>+cgqreq: <cid>,<precedence>,<delay>,<reliability>,<pe ak>,<mean>[ ]] 测试命令 AT+CGQREQ=? +CGQREQ:<PDP_type>, (<precedence> 取值列表 ),(<delay> 取值列表 ),(<reliability> 取值列表 ),(<peak> 取值列表 ),(<mean> 取值列表 ) [ ] 第 171 页共 259 页 GPRS 相关命令

注 : 参数定义表格定义的是各参数的释义, 表格中参数出场顺序跟语法规则表格中参数出场顺序无关! 参数定义取值对取值的说明 <cid> 请参考 AT+CGDCONT 条目 0 默认, 签署的 QOS 优先级别 <precedence> 服务质量 (QOS) 优先级别 1~3 QOS 优先级别 0 签署的服务质量 (QOS) 延时级别 <delay> 服务质量 (QOS) 延时级别 1~4 QOS 延时级别 0 签署的服务质量 (QOS) 可靠性级别 <reliability> 服务质量 (QOS) 可靠性级别 1~5 QOS 可靠性级别 0 签署的服务质量 (QOS) 峰值吞吐量级别 <peak> 服务质量 (QOS) 峰值吞吐量级别 1~9 QOS 峰值吞吐量级别 0 签署的服务质量 (QOS) 平均吞吐量级别 <mean> 服务质量 (QOS) 平均吞吐量级别 1~18 QOS 平均吞吐量级别 31 尽力而为的 QOS 平均吞吐量级别 16.10 控制非请求 GPRS 事件上报 :AT+CGEREP 设置命令启用或禁用 URC 提示 +CGEV: XXX 当设置为启用时, 当 GPRS MT 终端或网络侧发生某些事件, 会有此 URC 上报 命令类型语法返回 设置命令 AT+CGEREP=<mode> 查询命令 测试命令 URC 上报 AT+CGEREP? AT+CGEREP=? +CGEV: XXX +CGEREP:<mode> +CGEREP:(<mode> 取值列表 ) 如果 <mode>=1, 当 MT 或网络侧发生某些事情时, 会有此 URC 上报 参数 定义 取值 对取值的说明 缓冲 MT 中的非请求结果码 ; 如果 MT 结果码缓冲器已满, 则丢弃最旧的结 <mode> 0 果码 不转发结果码给 TE 结果码上报的模式当 MT-TE 链路处于保留状态时 ( 比如处于在线数据状态 ), 丢弃非请求结 1 果码 ; 否则 MT 直接将非请求结果码转发给 TE 第 172 页共 259 页 GPRS 相关命令

16.11 为 MO SMS 选择优先业务模式 :AT+CGSMS 命令类型 语法 返回和说明 设置命令 AT+CGSMS=<service> 说明 : 设置命令用于在 MT 发送 MO SMS 消息时, 指定业务或业务优先级别 查询命令 AT+CGSMS? +CGSMS:<service> 测试命令 AT+CGSMS=? +CGSMS: (<service> 取值列表 ) 参数定义取值对取值的说明 <service> 数字型参数 ; 用于指定业务或业务优先级别 0 GPRS 1 电路交换 2 优选 GPRS( 若 GPRS 不可用, 则使用电路交换 ) 3 优选电路交换 ( 若电路交换不可用, 则使用 GPRS) 第 173 页共 259 页 GPRS 相关命令

17 IP 应用相关命令 17.1 IP 应用设置 :AT+SAPBR 命令类型 语法 返回 如果 <cmd_type> = 2 +SAPBR: <cid>,<status>,<ip_addr> 执行命令 AT+SAPBR=<cmd_type>,<cid>[,< ConParamTag>,<ConParamValue>] 如果 <cmd_type> = 4 +SAPBR:<ConParamTag>,<ConParamValue> 测试命令 URC 上报 AT+SAPBR=? +SAPBR <cid>: DEACT 其余 +SAPBR: (0-5),(1-3),"ConParamTag","ConParamValue" 当移动场景去激活时, 会有此上报 参数定义取值对取值的说明 0 关闭承载 1 打开承载 2 查询承载状态 <cmd_type> 命令类型 3 设置承载参数 4 获取承载参数 5 保存参数值到 NVRAM <cid> 承载上下文标识 1~3 0 正在连接 1 已经连接 <Status> 承载的状态 2 正在关闭 3 已经关闭 <IP_Addr> 承载 IP 地址因特网连接类型 CONTYPE <ConParamTag> 承载参数取值请参考参数 <ConParamValue_ConType> APN 接入点名称, 最长支持 50 个字符 第 174 页共 259 页 IP 应用相关命令

USER PWD PHONENUM RATE 用户名称 : 最长支持 50 个字符密码 : 最长支持 50 个字符 CSD 电话号码 CSD 连接速率 取值请参考 <ConParamValue_Rate> <ConParamValue>( 包括 <ConParamValue_ConType> 和 <ConParamValue_Rate>): <ConParamValue_ ConType> <ConParamValue_ Rate> 因特网连接类型 CSD 连接速率 CSD CSD 数据 GPRS GPRS 连接 0 2400 1 4800 2 9600 3 14400 第 175 页共 259 页 IP 应用相关命令

18 TCPSSL 相关命令 支持的 SSL 版本是 TLSV1.2 支持的加密算法 ciphersuites 如下 : TLS_RSA_WITH_AES_128_CBC_SHA TLS_RSA_WITH_AES_256_CBC_SHA TLS_RSA_WITH_AES_128_CBC_SHA256 TLS_RSA_WITH_AES_256_CBC_SHA256 (0x3D) 以上参数都是自动支持 (0x2F) (0x35) (0x3C) 18.1 初始化 TCPSSL 服务 :AT+SSLINIT 命令类型 语法 返回 成功 SSL&0,INIT 失败 执行命令 AT+SSLINIT ERROR 或者 +CME ERROR:<err> ( 参考 4.19 章节 ) 或者 SSL&0,INIT ERROR: <err code>,<ext1>,<ext2>,<ext3>,<ext4> 测试命令 AT+SSLINIT=? 注意事项 在使用 TCPSSL 服务前, 应该先用 AT+SSLINIT 命令来初始化 TCPSSL 协议栈 参数 定义 取值 对取值的说明 <err code> 错误码 整数型, 具体请参考 18.10 章节描述 <ext1>,<ext2>,<ext3>,<ext4> 扩展使用 整数型 目前无任何意义 18.2 创建 TCPSSL 客户端 :AT+SSLCREATE 命令类型语法返回 设置命令 AT+SSLCREATE=<cid>,"<host:port> 成功 第 176 页共 259 页 TCPSSL 相关命令

",<verify server cert flag> SSL&<cid>, CREATE 注意事项 失败 ERROR 或者 +CME ERROR:<err> 参考 4.19 章节或者 SSL&<cid>,CREATE ERROR: <err code>,<ext1>,<ext2>,<ext3>,<ext4> 注意 : 如果 SSLCREATE 命令返回 SSL&<cid>,CREATE ERROR 这一种错误, 需要主动发 : AT+SSLDESTROY=<cid> 命令销毁客户端 参数 定义 取值 对取值的说明 <cid> 客户端 id 0~7 整数型 <host:port> 服务器端主机和端口 host 支持域名和 ip, 例如 : "www.baidu.com:443" "36.7.87.100:4433" <verify server cert flag> 客户端是否检验服务器 0 校验端的证书 1 不检验 <err code> 错误码 整数型, 具体请参考 18.10 章节描述 <ext1>,<ext2>,<ext3>,< ext4> 扩展使用 整数型 目前无任何意义 18.3 创建和配置证书 :AT+SSLCERT 命令类型 语法 返回 成功 > 创建证书命令 AT+SSLCERT=0,"<cert type>","<cert file name>",1,<cert file size> > 后输入 <cert file size> 长度的数据, 则数据自动发送出去 如果数据发送成功, 则有如下的 SSL&0,INPUT CERT 失败 ERROR 或者 +CME ERROR:<err> 参考 4.19 章节 第 177 页共 259 页 TCPSSL 相关命令

配置证书命令 ( 为 AT+SSLCRATE 创建的客户端配置使用的证书 ) AT+SSLCERT=1,<cid>,"<cert type>","<cert file name>"[,"<cert file password>"] 或者 SSL&0, INPUT CERT ERROR: <err code>,<ext1>,<ext2>,<ext3>,<ext4> 成功 SSL&<cid>, CONFIG CERT 失败 ERROR 或者 +CME ERROR:<err> 参考 4.19 章节或者 SSL&<cid>, CONFIG CERT ERROR: <err code>,<ext1>,<ext2>,<ext3>,<ext4> 参数 定义 取值 对取值的说明 <cid> 客户端 id 0~7 和 SSLCREATE 中的 cid 保持一致 "cacrt" 根证书, 用于验证服务器端证书 <cert type> 证书类型 ; 字符串型 "localcrt" 客户端证书 "localprivatekey" 客户端私钥 <cert file name> 证书文件名 和创建证书命令中的文件名保持一致 <cert file password> 证书密码 此参数可选 目前此参数仅在 <cert type> 为 "localcrt" 类型时才有用 <err code> 错误码 整数型, 具体请参考 18.10 章节描述 <ext1>,<ext2>,<ext 3>,<ext4> 扩展使用 整数型 目前无任何意义 18.4 连接 TCPSSL 服务器 :AT+SSLCONNECT 命令类型 语法 返回 设置命令 AT+SSLCONNECT=<cid> 先返回 或者 ERROR 或者 +CME ERROR:<err> 参考 4.19 章节 返回 之后, 后续会有如下 URC 上报 第 178 页共 259 页 TCPSSL 相关命令

连接成功上报 :SSL&<cid>, CONNECT 连接失败上报 : SSL&<cid>, CONNECT ERROR: <err code>,<ext1>,<ext2>,<ext3>,<ext4> 注意事项 如果失败, 则需要主动发送 AT+SSLDESTROY=<cid> 返回结果之后, 再从 AT+SSLCREATE 开始重 建客户端 参数 定义 取值 对取值的说明 <cid> 客户端 id 0~7 和 SSLCREATE 中的 cid 保持一致 <err code> 错误码 整数型, 具体请参考 18.10 章节描述 <ext1>,<ext2>,<ext3>,< ext4> 扩展使用 整数型 目前无任何意义 18.5 发送数据到 TCPSSL 服务器 :AT+SSLSEND 命令类型 语法 返回 成功 > > 后输入 < byte_size> 长度的数据, 则数据自动发送出去 设置命令 AT+SSLSEND=<cid>,<byte_size > <cid>: 客户端 id, 取值范围 0 到 7, 和 SSLCREATE 中的 cid 保持一致 <byte_size>: 发送的数据字节长度, 最大支持 10240 字节 如果数据发送成功 SSL&<cid>, SEND 失败 ERROR 或者 +CME ERROR:<err> 参考 4.19 章节 或者 SSL&<cid>, SEND ERROR: <err code>,<ext1>,<ext2>,<ext3>,<ext4> <err code> 为错误码, 参考 18.10 章节描述 <ext1>,<ext2>,<ext3>,<ext4> 扩展使用, 目前无任何意义 <err code>,<ext1>,<ext2>,<ext3>,<ext4> 都为数字 注意事项 如果失败, 则需要主动发送 AT+SSLDESTROY=<cid> 返回结果之后, 再从 AT+SSLCREATE 开始重建客 户端 第 179 页共 259 页 TCPSSL 相关命令

参数 定义 取值 对取值的说明 <cid> 客户端 id 0~7 和 SSLCREATE 中的 cid 保持一致 <err code> 错误码 整数型, 具体请参考 18.10 章节描述 <ext1>,<ext2>,<ext3>,< ext4> 扩展使用 整数型 目前无任何意义 <byte_size> 发送的数据字节长度 1~10240 18.6 接收到 TCPSSL 服务器的数据 :+SSL RECEIVE 命令类型语法说明 URC 上报 +SSL RECEIVE,<cid>,<length>: Received data 注 :Received data 是接收到的数据, 和 +SSL RECEIVE,<cid>,<length> 分开, 另起一行 参数 定义 取值 对取值的说明 <cid> 客户端 id 0~7 和 SSLCREATE 中的 cid 保持一致 <length> 接收到的数据字节长度 单位为 : 字节 18.7 断开连接并且销毁 TCPSSL 客户端 :AT+SSLDESTROY 命令类型 语法 返回 成功 SSL&<cid>, DESTROY 设置命令 AT+SSLCONNECT=<cid> 失败 ERROR 或者 +CME ERROR:<err> 参考 4.19 章节 或者 SSL&<cid>, DESTROY ERROR: <err code>,<ext1>,<ext2>,<ext3>,<ext4> 参数 定义 取值 对取值的说明 <cid> 客户端 id 0~7 和 SSLCREATE 中的 cid 保持一致 <err code> 错误码 整数型, 具体请参考 18.10 章节描述 第 180 页共 259 页 TCPSSL 相关命令

<ext1>,<ext2>,<ext3>, <ext4> 扩展使用 整数型 目前无任何意义 18.8 终止 TCPSSL 服务 :AT+SSLTERM 命令类型 语法 返回 成功 SSL&0,TERM 设置命令 AT+SSLTERM 失败 ERROR 或者 +CME ERROR:<err> 参考 4.19 章节或者 SSL&0,TERM ERROR: <err code>,<ext1>,<ext2>,<ext3>,<ext4> 测试命令 AT+SSLTERM=? 注意事项 不再使用 TCPSSL 服务时, 用 AT+SSLTERM 命令来终止 TCPSSL 协议栈 参数 定义 取值 对取值的说明 <cid> 客户端 id 0~7 和 SSLCREATE 中的 cid 保持一致 <err code> 错误码 整数型, 具体请参考 18.10 章节描述 <ext1>,<ext2>,<ext3>, <ext4> 扩展使用 整数型 目前无任何意义 18.9 URC 上报 命令类型语法说明 运行中错 误上报 SSL&<cid>,ERROR:< err code> 收到此 URC 上报时, 表示 TCPSSL 客户端出错 连接被动 关闭上报 SSL&<cid>,CLOSED 收到此 URC 上报时, 表示 TCPSSL 被动关闭 第 181 页共 259 页 TCPSSL 相关命令

注意事项 如果被动关闭后, 若客户端需要重新建立连接, 则需要主动发送 AT+SSLDESTROY=<cid> 返回结果之后, 再从 AT+SSLCREATE 开始重建客户端 参数 定义 取值 对取值的说明 <cid> 客户端 id 0~7 和 SSLCREATE 中的 cid 保持一致 <err code> 错误码 整数型, 具体请参考 18.10 章节描述 <ext1>,<ext2>,<ext3>, <ext4> 扩展使用 整数型 目前无任何意义 18.10 TCPSSL 错误码 : ERROR:<err code> <err code> 定义 : 取值 英文说明 中文说明 1 Parameter is error 参数错误 2 Register fail 注册失败 3 No init 尚未初始化 4 Dns fail DNS 查询失败 5 Create ctx fail 创建控制体失败 6 Create ssl fail 创建 ssl 对象失败 7 Create context fail 创建上下文失败 8 Create bio fail 创建 io 对象失败 9 Allocate memory fail 分配内存失败 10 State is error Ssl 状态错误 11 PDP is not active PDP 没有激活 12 Socket connect fail Socket 连接失败 13 Handshake fail Ssl 握手失败 14 ID is error Id 错误 15 Already closed 连接已经被关闭 16 Send data fail 发送数据失败 17 No buffer 缓冲区不足 18 Set connection request fail 设置连接请求失败 19 Set verify server cert result fail 设置校验服务器证书结果失败 20 Unregister fail 解注册失败 21 Load ca cert file fail 加载 ca 证书失败 22 Load client cert file fail 加载客户端证书失败 23 Load client private key fail 加载客户端私钥失败 24 Load PKCS12 fail 加载 PKCS12 文件失败 25 Client cert file and private key are not match 客户端证书和私钥不匹配 26 Cert file is duplicate 证书文件名重复 第 182 页共 259 页 TCPSSL 相关命令

27 Open cert file fail 打开证书文件失败 28 Write cert file fail 写证书文件失败 29 Allocate ca cert file memory fail 为 ca 证书分配内存失败 30 Allocate client cert file memory fail 为客户端证书分配内存失败 31 Allocate client private key memory fail 为客户端私钥分配内存失败 32 Allocate PKCS12 memory fail 为 PKCS12 文件分配内存失败 33 PDP is not active PDP 没有激活 34 Handshake fail Ssl 握手失败 35 Verify server cert fail 校验服务器证书失败 18.11 使用方法举例 由于这部分的命令具有高度相关性, 所以将各个命令的应用例程集中在一起描述 举例 : 命令 ( ) / 返回 () 单向认证 : 实例 解释和说明 AT+SAPBR=3,1,"CONTYPE","GPRS" SAPBR 是为了激活 PDP 上下文, 激活 PDP 上下文是为 了使用 UDP 协议, 从而可以解析域名 AT+SAPBR=3,1,"APN","CMNET" 设置 APN AT+SAPBR =1,1 激活该承载的 GPRS PDP 上下文 AT+SAPBR=2,1 查询下承载的状态 +SAPBR: 1,1,010.169.179.213 第一个参数 1 表示 cid 第二个参数 1 表示已经连接第三个参数表示模块获取的 IP 地址 AT+CCLK="18/12/21,11:09:32+32" 因为证书校验会用到系统时间, 所以必须想办法让模 块同步时间 AT+SSLINIT TCPSSL 协议栈初始化 SSL&0,INIT AT+SSLCREATE=0,"www.baidu.com:443",0 创建客户端 SSL&0,CREATE AT+SSLCERT=0,"cacrt","caBaidu.crt",1,161 6 > -----BEGIN CERTIFICATE----- MIIEaTCCA1GgAwIBAgILBAAAAAABRE7wQk cwdqyjkozihvcnaqelbqawvzelmakg 创建 CA 证书所有证书内容都是保存在内存中, 执行 AT+SSLINIT 或者 AT+SSLTERM, 都会清除证书内容, 所以下次使用时, 都需要重新创建证书 输入证书内容 第 183 页共 259 页 TCPSSL 相关命令

A1UEBhMCQkUxGTAXBgNVBAoTEEdsb2JhbF NpZ24gbnYtc2ExEDAOBgNVBAsTB1Jv b3qgq0exgzazbgnvbamtekdsb2jhbfnpz2 4gUm9vdCBDQTAeFw0xNDAyMjAxMDAw MDBaFw0yNDAyMjAxMDAwMDBaMGYxCzAJ BgNVBAYTAkJFMRkwFwYDVQQKExBHbG9i YWxTaWduIG52LXNhMTwwOgYDVQQDEzNH bg9iywxtawduie9yz2fuaxphdglvbibw YWxpZGF0aW9uIENBIC0gU0hBMjU2IC0gRz IwggEiMA0GCSqGSIb3DQEBAQUAA4IB DwAwggEKAoIBAQDHDmw/I5N/zHClnSDDD lm/fsbowphjykfvi+8dniv0ykmclkzc C33JiJ1Pi/D4nGyMVTXbv/Kz6vvjVudKRtkTIs o21zvbqoowq5pydlzm+ebomchj SHh/VzZpGhkdWtHUfcKc1H/hgBKueuqI6lfY ygokohjjomizeg0k9zfrthosewuj mxk1zusp36quarkbpdsmnenkin74fv7j9r7l /tyjqormmdlmjekyuylzca7pnrxt Nw9KHjUgKv1CGLAcRFrW4rY6uSa2EKTS Dtc7p8zv4WtdufgPDWi2zZCHlKT3hl 2pK8vjX5s8T5J4BO/5ZS5gIg4Qdz6V0rvbLx AgMBAAGjggElMIIBITAOBgNVHQ8B Af8EBAMCAQYwEgYDVR0TAQH/BAgwBgEB/ wibadadbgnvhq4efgqult5h8b0cfilt HMDMfTuDAEDmGnwwRwYDVR0gBEAwPjA8 BgRVHSAAMDQwMgYIKwYBBQUHAgEWJmh 0 dhbzoi8vd3d3lmdsb2jhbhnpz24uy29tl3jl cg9zaxrvcnkvmdmga1udhwqsmcow KKAmoCSGImh0dHA6Ly9jcmwuZ2xvYmFsc 2lnbi5uZXQvcm9vdC5jcmwwPQYIKwYB BQUHAQEEMTAvMC0GCCsGAQUFBzABhiFod HRwOi8vb2NzcC5nbG9iYWxzaWduLmNv bs9yb290cjewhwydvr0jbbgwfoauyhtmgk UNl8qJUC99BM00qP/8/UswDQYJKoZI hvcnaqelbqadggebaeyq7l69rgfgnzerhnf 0tkZJyBAW/i9iIxerH4f4gu3K3w4s 32R1juUYcqeMOovJrKV3UPfvnqTgoI8UV6Mq X+x+bRDmuo2wCId2Dkyy2VG7EQLy XN0cvfNVlg/UBsD84iJHDTu/B5GqdhcI rwbfinihy9bsrk8y1658gev1bsl3 30JAZGSGvip2CTFvHST0mdCF/vIhCPnG9vH QWe3WVjwIKANnuvD58ZAWR65n5ryA 第 184 页共 259 页 TCPSSL 相关命令

SOlCdjSXVWkkDoPWoC209fN5ikkodBpBocLT JIg1MGCUF7ThBCIxPTsvFwayuJ2G K1pp74P1S8SqtCr4fKGxhZSM9AyHDPSsQPh ZSZg= -----END CERTIFICATE----- SSL&0,INPUT CERT AT+SSLCERT=1,0,"cacrt","caBaidu.crt" 配置 ca 证书 SSL&0,CONFIG CERT AT+SSLCONNECT=0 连接服务器 SSL&0,CONNECT AT+SSLSEND=0,58 发送数据 > GET / HTTP/1.1 Host: www.baidu.com Connection: short SSL&0,SEND +SSL RECEIVE,0,2213: 出现这些 URC 上报表明收到数据 HTTP/1.1 200... +SSL RECEIVE,0,4000: dow._async_start=new Date().getTime... +SSL RECEIVE,0,4000: icon" id="bri"> 更多产品 </a>... +SSL RECEIVE,0,4000: icon" id="bri"> 更多产品 </a>... +SSL RECEIVE,0,4000: icon" id="bri"> 更多产品 </a>... +SSL RECEIVE,0,4000: icon" id="bri"> 更多产品 </a>... +SSL RECEIVE,0,1282:... </body></html> AT+SSLDESTROY=0 断开连接并且销毁客户端 第 185 页共 259 页 TCPSSL 相关命令

SSL&0,DESTROY AT+SSLTERM 终止 TCPSSL 服务 双向认证 : AT+SAPBR=3,1,"CONTYPE","GPRS" SAPBR 是为了激活 PDP 上下文, 激活 PDP 上下文是为 了使用 UDP 协议, 从而可以解析域名 AT+SAPBR=3,1,"APN","CMNET" 设置 APN AT+SAPBR =1,1 激活该承载的 GPRS PDP 上下文 AT+SAPBR=2,1 查询下承载的状态 +SAPBR: 1,1,010.169.179.213 第一个参数 1 表示 cid 第二个参数 1 表示已经连接第三个参数表示模块获取的 IP 地址 AT+CCLK="18/12/21,11:09:32+32" 因为证书校验会用到系统时间, 所以必须想办法让模 块同步时间 AT+SSLINIT TCPSSL 协议栈初始化 SSL&0,INIT AT+SSLCREATE=0,"36.7.87.100:4434",0 创建客户端 SSL&0,CREATE AT+SSLCERT=0,"cacrt","ca.crt",1,1285 创建 CA 证书所有证书内容都是保存在内存中, 执行 AT+SSLINIT 或者 AT+SSLTERM, 都会清除证书内容, 所以下次使用时, 都需要重新创建证书 > -----BEGIN CERTIFICATE----- MIIDhzCCAvCgAwIBAgIJAJVqp5Z9Aim1MA0 GCSqGSIb3DQEBBQUAMIGKMQswCQYD VQQGEwJDTjERMA8GA1UECBMIU2hhbmdIY WkxETAPBgNVBAcTCFNoYW5nSGFpMQ8w DQYDVQQKEwZhaXJtMm0xDTALBgNVBAsTB HNvZnQxDzANBgNVBAMTBnNlbGZDQTEk MCIGCSqGSIb3DQEJARYVemh1dGlhbmh1Y UBhaXJtMm0uY29tMB4XDTE4MDExMjA2 MzM1N1oXDTI4MDExMDA2MzM1N1owgYox CzAJBgNVBAYTAkNOMREwDwYDVQQIEwhT agfuz0hhaterma8ga1uebxmiu2hhbmdiy WkxDzANBgNVBAoTBmFpcm0ybTENMAsG A1UECxMEc29mdDEPMA0GA1UEAxMGc2VsZ knbmsqwigyjkozihvcnaqkbfhv6ahv0 awfuahvhqgfpcm0ybs5jb20wgz8wdqyjk ozihvcnaqebbqadgy0amigjaogbalqx 输入证书内容 第 186 页共 259 页 TCPSSL 相关命令

/4SCaPX1K9/0r3BiK3kfgW48OntIo4qbpiIlvo zwhcv+qckcvntj9jn6pzndezhi uibjh3adt7d32l2nckwo85krmhfaeyquzwr FujPuMAAEwK010IMdVcREfaAiudzI fph/jppel3eu2bundgydrwifnmainfxhoyoy3 I27AgMBAAGjgfIwge8wHQYDVR0O BBYEFMf8PqOq5B/Y1Sqz0ksgJuFKI0HTMIG/ BgNVHSMEgbcwgbSAFMf8PqOq5B/Y 1Sqz0ksgJuFKI0HToYGQpIGNMIGKMQswCQ YDVQQGEwJDTjERMA8GA1UECBMIU2hh bmdiywkxetapbgnvbactcfnoyw5nsgfpm Q8wDQYDVQQKEwZhaXJtMm0xDTALBgNV BAsTBHNvZnQxDzANBgNVBAMTBnNlbGZDQ TEkMCIGCSqGSIb3DQEJARYVemh1dGlh bmh1yubhaxjtmm0uy29tggkalwqnln0ckbu wdaydvr0tbauwaweb/zanbgkqhkig 9w0BAQUFAAOBgQCur2oMUFvtWrrE5ncwas utpga32zmojvh8ate6mnbqyiafm4zc 85sAUyd0Gdf7yh+pNgv7PuXNy7MDcr4vr01 SEJhIqlDJK0Pe42CxzvEJ2hbwLFLp u/sy5rdmx/bpj6luhqkcsngees0ppsvlkfjuz BSRVI/DgPpyiTuaOEIrQA== -----END CERTIFICATE----- SSL&0,INPUT CERT AT+SSLCERT=0,"localcrt","client.crt",1,111 8 > -----BEGIN CERTIFICATE----- MIIC/zCCAmigAwIBAgIBAjANBgkqhkiG9w0B AQUFADCBijELMAkGA1UEBhMCQ04x ETAPBgNVBAgTCFNoYW5nSGFpMREwDwYD VQQHEwhTaGFuZ0hhaTEPMA0GA1UEChMG YWlybTJtMQ0wCwYDVQQLEwRzb2Z0MQ8w DQYDVQQDEwZzZWxmQ0ExJDAiBgkqhkiG 9w0BCQEWFXpodXRpYW5odWFAYWlybTJtL mnvbtaefw0xodaxmtiwnjuwndbafw0y ODAxMTAwNjUwNDBaMIGCMQswCQYDVQQ GEwJDTjERMA8GA1UECBMIU2hhbmdIYWkx DzANBgNVBAoTBmFpcm0ybTENMAsGA1UE CxMEc29mdDEaMBgGA1UEAxQRemh1dGlh bmh1yv9jbgllbnqxjdaibgkqhkig9w0bcqe 创建客户端证书所有证书内容都是保存在内存中, 执行 AT+SSLINIT 或者 AT+SSLTERM, 都会清除证书内容, 所以下次使用时, 都需要重新创建证书 输入证书内容 第 187 页共 259 页 TCPSSL 相关命令

WFXpodXRpYW5odWFAYWlybTJtLmNv btcbnzanbgkqhkig9w0baqefaaobjqawgy kcgyea3tum2kgr02ghzqlwrmyxaa2e qzste6oawiwkrrpehptpgvge15bvlrjvjfi7 myxwipqhznbk6kiglsdugjypdzdg s8pu4/c8usk3rmv11kwrps31brcaqq/emte 9P8pZizwY02vkSWDgk9A62yS2Pav8 1E/DWS/dsJvE79n6+t8CAwEAAaN7MHkwC QYDVR0TBAIwADAsBglghkgBhvhCAQ0E HxYdT3BlblNTTCBHZW5lcmF0ZWQgQ2VydGl mawnhdguwhqydvr0obbyefa0nzpzk xaputqfpyia7bd6bsky7mb8ga1udiwqymba AFMf8PqOq5B/Y1Sqz0ksgJuFKI0HT MA0GCSqGSIb3DQEBBQUAA4GBAENH2PvC czzljsqzhaw91+wcmwhols2pqp86ak5b 9CoH6N6jdIsaXVPQwPELzmWhFf2XvRV1Fiq 5BGjoPLW8OlMsrIFciETqUvbqvN+w 1GHi73zyCaCV+M8dMcdR+3Odue5S0hrtHd hliodsqyct1ma8go8ceam8uc9h6jpa i1ka -----END CERTIFICATE----- SSL&0,INPUT CERT AT+SSLCERT=0,"localprivatekey","client.ke y",1,887 > -----BEGIN RSA PRIVATE KEY----- MIICXAIBAAKBgQDdO6baSCvTaAfNCXCsxjE ADZ6pmxMTqhpYjAquul4c9M8a8Z7X ltutgnukwluzhdyimqhocerqqiatj1qylikpn 2Czw9Tj9zy6yTdGa/XWTBGmzfVu txqpd94xmt0/ylmlpbjta+rjyoct0drbjly9 q/zut8nzl92wm8tv2fr63widaqab AoGAHoh+FcBCNDI2aWj1IRNVbfFzRWs+rcc btb8+njfijeyhrotobekuumqnnq+u bllza/ude1vqmxyg3jqau8hdsbcygatlxgx 5XoEvFwisR4tivW5p8tG8q/ZqOCs1 WoXG2yyPBt+mLa4mujNmWGnS+sNgi51n +L8rWOkxW2we4gECQQD3YO+fjkqPDkKP B6tZTNYD3JrR35/6Yw1LaIjYO+EYvbQPEy+ ZQRanZU/w/rEHDgqLobs+qDoa8cvq XavGNf3fAkEA5PFzDonv5BvjrYgo0hehj8b7X 创建客户端私钥文件所有证书内容都是保存在内存中, 执行 AT+SSLINIT 或者 AT+SSLTERM, 都会清除证书内容, 所以下次使用时, 都需要重新创建证书 输入私钥文件内容 第 188 页共 259 页 TCPSSL 相关命令

duvdqprcqr1kfn7e/nibk9ghgge 3/ZCe0grlTKOXWzCWReNCNybg75AcOCjAQ JAJ8EoQRf422yLPbkZzEwQyKYXK0so xnbmnqw5+cyhupaj7tjeh/jzzyt05+hgst /0aeQf1z3puJLLFmrfRAdBOQJAQX5A 59vV4G+KBk55PwC7myHVLtaZqOW2vpoD2 mhowsbs3fw2nbkfipsugchhl2ezem7y Ghx+oBZb9qgqTyA0AQJBAIwdm6xlaD4gjA/ BciK3knIRUaGkINrNDnhAh4ObUnuf OHriSGx89nYxZYwWuvO1Ed4oSMkRaARdS8 Vw2/XUS90= -----END RSA PRIVATE KEY----- SSL&0,INPUT CERT AT+SSLCERT=1,0,"cacrt","ca.crt" 配置 ca 证书 SSL&0,CONFIG CERT AT+SSLCERT=1,0,"localcrt","client.crt" 配置客户端证书 SSL&0,CONFIG CERT AT+SSLCERT=1,0,"localprivatekey","client.k 配置客户端私钥 ey" SSL&0,CONFIG CERT AT+SSLCONNECT=0 连接服务器 SSL&0,CONNECT AT+SSLSEND=0,56 发送数据 > GET / HTTP/1.1 Host: 36.7.87.100 Connection: short SSL&0,SEND +SSL RECEIVE,0,268: HTTP/1.1 200 Date: Fri, 21 Dec 2018 04:37:58 GMT Server: Apache/2.2.8 (Win32) mod_ssl/2.2.8 OpenSSL/0.9.8g Last-Modified: Sat, 20 Nov 2004 06:16:26 GMT ETag: "3000000007c78-2c-3e94a902f4280" Accept-Ranges: bytes Content-Length: 44 出现这些 URC 上报表明收到数据 第 189 页共 259 页 TCPSSL 相关命令

Content-Type: text/html +SSL RECEIVE,0,44: <html><body><h1>it works!</h1></body></html> SSL&0,CLOSED 服务器主动断开连接 AT+SSLDESTROY=0 断开连接并且销毁客户端 SSL&0,DESTROY AT+SSLTERM 终止 TCPSSL 服务 第 190 页共 259 页 TCPSSL 相关命令

19 HTTP 相关命令 19.1 初始化 HTTP 服务 :AT+HTTPINIT 命令类型语法返回 执行命令 AT+HTTPINIT 测试命令 AT+HTTPINIT=? 注意事项 在使用 HTTP 服务前, 应该先用 AT+HTTPINIT 命令来初始化 HTTP 协议栈 19.2 终止 HTTP 任务 :AT+HTTPTERM 命令类型语法返回 设置命令 AT+HTTPTERM 测试命令 AT+HTTPTERM=? 19.3 设置 HTTP 参数值 :AT+HTTPPARA 命令类型 语法 返回 设置命令 AT+HTTPPARA=<HTTPParamTag>, <HTTPParamValue> 查询命令 AT+HTTPPARA? +HTTPPARA: list of (<HTTPParamTag>:<HTTPParamValue>) 测试命令 AT+ HTTPPARA=? +HTTPPARA: HTTPParamTag, HTTPParamValue 注 : 参数定义表格定义的是各参数的释义, 表格中参数出场顺序跟语法规则表格中参数出场顺序无关! 参数定义取值对取值的说明 第 191 页共 259 页 HTTP 相关命令

<HTTPParamTag> :HTTP 参数, 包括 : CID 承载上下文号码 ( 必选参数 ) 1~3 Server: FQDN or IP-address Path: path of file or directory URL HTTP 或 HTTPS URL( 必选参数 ) 注 : 只有当模块版本带有 _SSL 后缀时, 才同时支持 HTTPS 和 HTTP URL, 否则只支持 HTTP URL. "http://server/path:tcpport " 或 : "https://server/path:tcpport " tcpport: 如果参数省略, 将服务连接到 HTTP 默认端口 80 参考 "IETF-RFC 261 如果 https:// 或 http:// 略去, 则是 HTTP 协议, 例如 : www.baidu.com 长度不超过 264 字节 UA 应用程序必须设置用户代理来识别移动终端 通常操作系统和软件版本信息在设置 - 默认值为 :AIRM2M module 时都会携带浏览器标识符 PROIP HTTP 代理服务器的 IP 地址 - PROPORT HTTP 代理服务器的 PORT - REDIR 作为 HTTP 客户端时用此标志控制重定向机制 如果此标记设置为 1, 当服务器发送重定向码 ( 范围 30x) - 默认值为 0( 无定向 ) 时, 客户端自动发送新的 HTTP 请求 BREAK HTTP 方法 GET 的参数 - 获取从断点到结束点的部分数据, 注意不是所有的 HTTP 服务器都支持 <BREAK> 参数 BREAKEND 和 BREAK 一起使用, 用于断点续传功能 - 如果 BREAKEND 大于 BREAK, 续传的范围从 BREAKEND 到 BREAK 如果 BREAKEND 小于 BREAK, 续传的范围从 BREAK 到文件结尾 如果 BREAKEND 和 BREAK 均为 0, 将不会续传 用户自定义参数的取值 例如 : USER_DEFINED 用户自定义参数 AT+HTTPPARA="USER_DEFINE D","Content-type: json-user-de fine" 注 : 如果需要设置多条用户自定义参数, 则一条一条地输入 第 192 页共 259 页 HTTP 相关命令

<HTTPParamValue> : <HTTPParamTag> 的取值 举例 : 命令 ( ) / 返回 () 实例 AT+HTTPPARA? +HTTPPARA: 解释和说明 CID: 1 URL: UA: AIRM2M_MODULE PROIP: 0.0.0.0 PROPORT: 0 REDIR: 0 BREAK; 0 BREAKEND: 0 19.4 写数据 :AT+HTTPDATA 命令类型语法返回 DOWNLOAD 设置命令 AT+HTTPDATA=<size>,<time> +HTTPDATA: (<size> 取值列表 ),(<time> 取值列表 ) 测试命令 AT+HTTPDATA=? 参数定义取值对取值的说明 1-102400 最大长度为 102400 <size> POST 数据的大小 0 后面一个参数不判断, 相当于把内容清除掉 1000-120000 单位 :ms <time> 输入数据的最长时间 注 : 强烈建议设置的时间 <time> 要能够全部输入所有的数据, 下载数据的真实大小不能大于 <size> 第 193 页共 259 页 HTTP 相关命令

19.5 HTTP 方式激活 :AT+HTTPACTION 命令类型 语法 返回 后面紧跟 Unsolicited Result Code: 设置命令 测试命令 AT+HTTPACTION=<method> AT+HTTPACTION=? +HTTPACTION: <Method>,<StatusCode>,<DataLen> 或如果错误与 ME 功能相关, 则 +CME ERROR: <err> 后面紧跟 Unsolicited Result Code: +HTTPACTION: <Method>,<StatusCode>,<DataLen> +HTTPACTION: (0-2) 参数 定义 取值 对取值的说明 0 GET <Method> HTTP 方法说明 1 POST 2 HEAD <DataLen> 得到的数据长度 - 整数型 100 继续 (Continue) 101 交换协议 (Switching Protocols) 200 确定 () 201 已创建 (Created) 202 已接受 (Accepted) 203 非权威消息 (Non-Authoritative Information) 204 无内容 (No Content) 205 重置内容 (Reset Content) <StatusCode> HTTP 状态码, 由远端服务 器响应, 参考 TTP1.1(RFC2616) 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) 第 194 页共 259 页 HTTP 相关命令

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 not satisfiable) 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) 19.6 查询 HTTP 服务响应 :AT+HTTPREAD 命令类型语法返回 设置命令 AT+HTTPREAD=<start_address>,<byte_size> +HTTPREAD:<date_len> <data> +HTTPREAD:<date_len> <data> 执行命令 AT+HTTPREAD 读取 AT+HTTPACTION=0 应数据 或 AT+HTTPDATA 命令的所有响 第 195 页共 259 页 HTTP 相关命令

执行命令用来将 HTTP 服务器的响应输出到 UART 或者输出准备好 POST 到服务器的数据 测试命令 AT+HTTPREAD=? +HTTPREAD: (list of supported <start_address>s),( list of supported<byte_size>s) 注 : 参数定义表格定义的是各参数的释义, 表格中参数出场顺序跟语法规则表格中参数出场顺序无关! 参数定义取值对取值的说明 <date_len> 实际输出数据长度 HTTP 服务器对 <date > AT+HTTPACTION=0 令的响应数据 命 <start_address> 输出数据的起点 1-318976 或 1-102400 最大值根据模块的不同有所不同 ( 单位 : 字节 ) <byte_size> 输出数据的长度 1-318976 或 1-102400 最大值根据模块的不同有所不同 ( 单位 : 字节 ) 19.7 保存 HTTP 应用上下文 :AT+HTTPSCONT 命令类型 语法 返回 TA 保存包含 AT 命令参数的 HTTP 应用上下文, 当系统重启时, 参数将自动载入 执行命令 AT+HTTPSCONT 响应 : +HTTPREAD: (list of supported <start_address>s),( list of supported<byte_size>s) TA 返回 HTTP 应用上下文, 响应如下 : 查询命令 AT+HTTPSCONT? +HTTPSCONT:<mode> CID:<value> URL: <value> UA: <value> PROIP: <value> PROPORT: <value> REDIR: <value> BREAK: <value> 第 196 页共 259 页 HTTP 相关命令

BREAKEND: <value> 参数定义取值对取值的说明 0 保存, 值取自 NVRAM <mode> HTTP 上下文保存模式 1 未保存, 值取自 RAM 19.8 HTTP 错误码 : ERROR:<err code> HTTP 错误码会以 ERROR:<err code> 形式上报 <err code> 定义 : 取值 英文说明 中文说明 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 去激活失败 19.9 使用方法举例 由于这部分的命令具有高度相关性, 所以将各个命令的应用例程集中在一起描述 举例 : 命令 ( ) / 返回 () 实例 HTTP GET 命令使用方法 : 解释和说明 AT+SAPBR=3,1,"CONTYPE","GPRS" 设置 HTTP 功能的承载类型 SAPBR 是为了激活 PDP 上下文, 激活 PDP 上下文是为 了使用 UDP 协议, 从而可以解析域名 第 197 页共 259 页 HTTP 相关命令

AT+SAPBR=3,1,"APN","CMNET" 设置 HTTP 功能的 APN AT+SAPBR=5,1 保存 cid=1 的承载的相关参数 (CONTYPE,APN) 到 NV, 这样关机不消失, 并且开机后自动恢复为保存的取值 这样再次开机后, 如果设置不更改, 就不用再输入这 AT+SAPBR=3,1,"CONTYPE","GPRS" 和 AT+SAPBR=3,1,"APN","CMNET" 这 2 个命令了 AT+SAPBR =1,1 激活该承载的 GPRS PDP 上下文 AT+SAPBR=2,1 查询下承载的状态 +SAPBR: 1,1,010.169.179.213 第一个参数 1 表示 cid 第二个参数 1 表示已经连接第三个参数表示模块获取的 IP 地址 AT+HTTPINIT HTTP 协议栈初始化 AT+HTTPPARA="CID",1 设置 HTTP 会话参数 :CID AT+HTTPPARA="URL","www.baidu.com" 设置 HTTP 会话参数 :URL AT+HTTPACTION=0 GET 开始 +HTTPACTION:0,200,1348 注 : 1) 如果该命令的 URL 地址是 IP 地址, 则前面完全不需要输入这 5 个 SAPBR 命令, 只有 URL 地址是域名的时候才需要 2) 第二个参数 URL 地址如果是 https:// 开头则是 HTTPS 协议 ; 如果 http:// 开头则是 HTTP 协议 ; 如果 https:// 和 http:// 都没有, 则是 HTTP 协议 3) 只有当模块版本带有 _SSL 后缀时, 才同时支持 HTTPS 和 HTTP URL, 否则只支持 HTTP URL. 出现这些 URC 上报表明 GET 数据成功, 等待 READ +HTTPACTION:0,200,1348 +HTTPACTION:0,200,1348 AT+HTTPREAD 读取从 HTTP 服务器 GET 的数据 +HTTPREAD: 9592.. 表示 HTTP 数据 AT+HTTPTERM 结束 HTTP 服务 第 198 页共 259 页 HTTP 相关命令

HTTP POST 命令使用方法 : AT+SAPBR=3,1,"CONTYPE","GPRS" 设置 HTTP 功能的承载类型 SAPBR 是为了激活 PDP 上下文, 激活 PDP 上下位是为 了使用 UDP 协议, 从而可以解析域名 AT+SAPBR=3,1,"APN","CMNET" 设置 HTTP 功能的 APN AT+SAPBR=5,1 保存 cid=1 的承载的相关参数 (CONTYPE,APN) 到 NV, 这样关机不消失, 并且开机后自动恢复为保存的取值 这样再次开机后, 如果设置不更改, 就不用再输入这 AT+SAPBR=3,1,"CONTYPE","GPRS" 和 AT+SAPBR=3,1,"APN","CMNET" 这 2 个命令了 AT+SAPBR =1,1 激活该承载的 GPRS PDP 上下文 AT+SAPBR=2,1 查询下承载的状态 +SAPBR: 1,1,010.169.179.213 第一个参数 1 表示 cid 第二个参数 1 表示已经连接第三个参数表示模块获取的 IP 地址 AT+HTTPINIT HTTP 协议栈初始化 AT+HTTPPARA="CID",1 设置 HTTP 会话参数 :CID AT+HTTPPARA="URL","https://fanyi.baidu.c om" 设置 HTTP 会话参数 :URL AT+HTTPDATA=4,100000 输入 4 个字符, 等待时间是 10S, 输入时间要设定的足 DOWNLOAD 中国 够大以保证数据输入 DOWNLOAD 表示已经准备好输入数据 输入中国 ( 中国两个字占用 4 个字节 ) 出现表示输入结束 AT+HTTPACTION=1 POST 开始 +HTTPACTION:1,200,0 表示 POST 结束 AT+HTTPTERM 结束 HTTP 服务 第 199 页共 259 页 HTTP 相关命令

20 FTP 相关命令 20.1 设置 FTP 控制端口 :AT+FTPPORT 命令类型 语法 返回 说明 设置命令 AT+FTPPORT=<value> 正常返回 ERROR 输入格式有误 查询命令 AT+FTPPORT? +FTPPORT:<value> 测试命令 AT+FTPPORT=? 参数定义取值对取值的说明 <value> FTP 控制端口号 1~65535 缺省值为 21 20.2 设置 FTP 主动或被动模式 :AT+FTPMODE 命令类型 语法 返回 说明 设置命令 AT+FTPMODE=<value> 正常返回 ERROR 输入格式有误 查询命令 AT+FTPMODE? +FTPMODE:<value> 测试命令 AT+FTPMODE=? 参数定义取值对取值的说明 0 主动模式 <value> FTP 主动被动模式 1 被动模式 20.3 设置 FTP 数据传输类型 :AT+FTPTYPE 第 200 页共 259 页 FTP 相关命令

命令类型 语法 返回 说明 设置命令 AT+FTPTYPE=<value> 正常返回 ERROR 输入格式有误 查询命令 AT+FTPTYPE? +FTPTYPE:<value> 测试命令 AT+FTPTYPE=? 参数 定义 取值 对取值的说明 <value> FTP 数据传输类型 "A" FTP ASCII 字符集 "I" FTP Binary 字符集 20.4 设置 FTP 输入类型 :AT+FTPPUTOPT 命令类型 语法 返回 说明 设置命令 AT+FTPPUTOPT=<value> 正常返回 ERROR 输入格式有误 查询命令 AT+FTPPUTOPT? +FTPPUTOPT:<value> 测试命令 AT+FTPPUTOPT=? 参数 定义 取值 对取值的说明 "APPE" 添加文件 <value> FTP 数据传输类型 "STOU" 存储唯一的文件 "STOR" 存储文件 20.5 设置 FTP 承载标识 :AT+FTPCID 命令类型 语法 返回 说明 设置命令 AT+FTPCID=<value> 正常返回 ERROR 输入格式有误 查询命令 AT+FTPCID? +FTPCID:<value> 第 201 页共 259 页 FTP 相关命令

测试命令 AT+FTPCID=? 参数定义取值对取值的说明 <value> FTP 承载标识 1~3 同 +SAPBR 中 <cid> 定义 缺省值为 0 20.6 设置 FTP 下载续传 :AT+FTPREST 命令类型 语法 返回 说明 设置命令 AT+FTPREST=<value> 正常返回 ERROR 输入格式有误 查询命令 AT+FTPREST? +FTPREST:<value> 测试命令 AT+FTPREST=? 参数 定义 取值 对取值的说明 <value> 要续传的断点 20.7 设置 FTP 服务器地址 :AT+FTPSERV 命令类型 语法 返回 说明 设置命令 AT+FTPSERV=<value> 正常返回 ERROR 输入格式有误 查询命令 AT+FTPSERV? +FTPSERV:<value> 测试命令 AT+FTPSERV=? 参数定义取值对取值的说明 <value> FTP 服务器地址, IP 或域名 32-bit 十进制数, 用. 分开, 形式如 : 第 202 页共 259 页 FTP 相关命令

xxx.xxx.xxx.xxx 如果是 DNS, 则为长度不超过 49 的 ASCII 字符串 20.8 设置 FTP 用户名称 :AT+FTPUN 命令类型 语法 返回 说明 设置命令 AT+FTPUN=<value> 正常返回 ERROR 输入格式有误 查询命令 AT+FTPUN? +FTPUN:<value> 测试命令 AT+FTPUN=? 参数定义取值对取值的说明 <value> FTP 用户名为长度不超过 49 的 ASCII 字符串 20.9 设置 FTP 密码 :AT+FTPPW 命令类型 语法 返回 说明 设置命令 AT+FTPPW=<pw> 正常返回 ERROR 输入格式有误 查询命令 AT+FTPPW? +FTPPW:<pw> 测试命令 AT+FTPPW=? 参数定义取值对取值的说明 <pw> FTP 密码为长度不超过 49 的 ASCII 字符串 20.10 设置 FTP 下载文件名称 :AT+FTPGETNAME 设置服务器端目标文件的名称 第 203 页共 259 页 FTP 相关命令

命令类型 语法 返回 说明 设置命令 AT+FTPGETNAME=<name> 正常返回 ERROR 输入格式有误 查询命令 AT+FTPGETNAME? +FTPGETNAME:<name> 测试命令 AT+FTPGETNAME=? 参数定义取值对取值的说明 <name> FTP 下载文件名称为长度不超过 99 的 ASCII 字符串 20.11 设置 FTP 下载文件路径 :AT+FTPGETPATH 本命令是设置目标文件在服务器端的路径 命令类型 语法 返回 说明 设置命令 AT+FTPGETPATH=<value> 正常返回 ERROR 输入格式有误 查询命令 AT+FTPGETPATH? +FTPGETPATH:<value> 测试命令 AT+FTPGETPATH=? 参数定义取值对取值的说明 <value> FTP 下载文件路径长度不超过 99 的 ASCII 字符串 20.12 设置 FTP 上传文件名称 :AT+FTPPUTNAME 设置将文件上传到服务器后的保存名称 命令类型 语法 返回 说明 设置命令 AT+FTPPUTNAME=<value> 正常返回 ERROR 输入格式有误 查询命令 AT+FTPPUTNAME? +FTPPUTNAME:<value> 第 204 页共 259 页 FTP 相关命令

测试命令 AT+FTPPUTNAME=? 参数定义取值对取值的说明 <value> FTP 上传文件名称长度不超过 99 的 ASCII 字符串 20.13 设置 FTP 上传文件路径 :AT+FTPPUTPATH 设置将文件上传到服务器后的保存目录 命令类型 语法 返回 说明 设置命令 AT+FTPPUTPATH=<value> 正常返回 ERROR 输入格式有误 查询命令 AT+FTPPUTPATH? +FTPPUTPATH:<value> 测试命令 AT+FTPPUTPATH=? 参数定义取值对取值的说明 <value> FTP 上传文件路径长度不超过 99 的 ASCII 字符串 20.14 获取远程服务器上文件大小 :AT+FTPSIZE 命令类型 语法 返回 说明 +FTPSIZE: 1,0,<size> 获取文件大小成功 执行命令 AT+FTPSIZE +FTPSIZE: 1,<error> 获取文件大小失败 +CME ERROR: <err> 如果是命令错误 测试命令 AT+FTPSIZE=? 注意事项 文件由命令 AT+FTPGETNAME 和 AT+FTPGETPATH 指定 第 205 页共 259 页 FTP 相关命令

参数定义取值对取值的说明 <size> 文件大小单位 : 字节 <error> 错误码与 AT+FTPGET 命令的 <error> 定义相同 20.15 下载文件 :AT+FTPGET 命令类型语法返回说明 输入 AT+FTPGET=1 设置命令 URC 上报 AT+FTPGET=<mode>[,<reqlength >] +FTPGET:1,1 +FTPGET:1,<error> +FTPGET:1,0 +FTPGET:2,<cnlength> 输入 :.. 数据.. AT+FTPGET=2, <reqlength> 输入 AT+FTPGET=1, 有此上报, 表示有数据了输入 AT+FTPGET=1, 有此上报, 表示 FTP 下载失败表示数据传输结束 测试命令 AT+FTPGET=? 参数定义取值对取值的说明 1 打开 FTP 会话 <mode> 工作模式 2 读入 FTP 下载数据 <reqlength> 请求读入的数据长度 1~1460 <cnlength> 确认读入的数据长度 1~1460 可能小于 <reqlength> 0 表示没有数据可以读入 61 网络错误 net error 62 DNS 错误 DNS error 63 连接错误 connect error 64 超时 timeout 65 服务器错误 server error 66 操作禁止 operation not allowed 70 应答错误 replay error <error> 错误码 73 类型错误 type error 74 保持错误 rest error 75 被动错误 passive error 76 主动错误 active error 77 操作错误 operate error 78 上传错误 upload error 79 下载错误 download error 71 用户错误 user error 72 口令错误 password error 第 206 页共 259 页 FTP 相关命令

20.16 上传文件 :AT+FTPPUT 命令类型 语法 返回 说明 输入 AT+FTPPUT=1 +FTPPUT:2,<cnlength> 输入 :.. //input data AT+FTPPUT=<mode>[,<reqlength AT+FTPPUT=2, 设置命令 >] <reqlength> 结束 FTP 上传会话 输入 : AT+FTPPUT=2,0 输入 AT+FTPPUT=1, 有此上报, 表示可以上传数据了 URC 上报 +FTPPUT:1,1,<maxlength> 此时通过输入 AT+FTPPUT=2,<reqlength> 上传数据 +FTPPUT:1,0 表示数据传输会话结束 +FTPPUT:1,<error> 如果 <mode>=1, 而且 FTP 会话失败 测试命令 AT+FTPPUT=? 参数定义取值对取值的说明 1 打开 FTP 会话 <mode> FTP 上传工作模式 2 写 FTP 上传数据 <reqlength> 请求上传的数据长度 0-<maxlength> <cnlength> 确认可以上传的数据长度 <maxlength> 单次可以上传的最大的长度, 取决于网络状态 20.17 保存 FTP 应用上下文 :AT+FTPSCONT 命令类型 语法 返回 说明 查询命令 AT+FTPSCONT? +FTPSCONT: <value> +FTPSERV: <value> +FTPPORT: <value> +FTPUN: <value> +FTPPW: <value> +FTPCID: <value> +FTPMODE: <value> +FTPTYPE: <value> +FTPPUTOPT: <value> 第 207 页共 259 页 FTP 相关命令

+FTPREST: <value> +FTPGETNAME: <value> +FTPGETPATH: <value> +FTPPUTNAME: <value> +FTPPUTPATH: <value> +FTPTIMEOUT: <value> 执行命令 AT+FTPSCONT 将 FTP 上下文保存, 等模块重启后, 将自动载 入上下文参数并生效 20.18 退出当前 FTP 会话 :AT+FTPQUIT 命令类型 语法 返回 说明 设置命令 AT+FTPQUIT 成功 ERROR 失败 测试命令 AT+FTPQUIT=? 20.19 使用方法举例 由于这部分的命令具有高度相关性, 所以将各个命令的应用例程集中在一起描述 举例 : 命令 ( ) / 返回 () 实例 FTP GET 命令使用方法 : 解释和说明 AT+SAPBR=3,1,"CONTYPE","GPRS" 设置 FTP 功能的承载类型 AT+SAPBR=3,1,"APN","CMNET" 设置 FTP 功能的 APN AT+SAPBR =1,1 激活该承载的 GPRS PDP 上下文 AT+SAPBR=2,1 查询下承载的状态 +SAPBR: 1,1,010.169.179.213 AT+FTPCID=1 设置 cid 第一个参数 1 表示 cid 第二个参数 1 表示已经连接第三个参数表示模块获取的 IP 地址 AT+FTPSERV="36.7.87.100" 设置服务器 ip 地址, 也可以使用域名 第 208 页共 259 页 FTP 相关命令

AT+FTPUN="user" 设置用户名 AT+FTPPW="123456" 输入密码 AT+FTPGETNAME="1.txt" 设置下载文件的名称 AT+FTPGETPATH="/" 设置下载文件的路径 AT+FTPGET=1 开始 FTP 下载会话 +FTPGET: 1,1 这个是 URC 上报, 表示有数据了 AT+FTPGET=2,20 读入 20 个数据 +FTPGET: 2, 10??/??/ 确定读到的是 10 个数据 (URC) +FTPGET: 1,0 FTP 下载会话结束 AT+FTPQUIT 退出当前 FTP 会话 FTP PUT 命令使用方法 : AT+SAPBR=3,1,"CONTYPE","GPRS" 设置 FTP 功能的承载类型 AT+SAPBR=3,1,"APN","CMNET" 设置 FTP 功能的 APN AT+SAPBR =1,1 激活该承载的 GPRS PDP 上下文 AT+SAPBR=2,1 查询下承载的状态 +SAPBR: 1,1,010.169.179.213 AT+FTPCID=1 第一个参数 1 表示 cid 第二个参数 1 表示已经连接第三个参数表示模块获取的 IP 地址 AT+FTPSERV="36.7.87.100" 设置服务器 IP 地址, 也可以使用域名 AT+FTPUN="user" 设置用户名 AT+FTPPW="123456" 输入密码 AT+FTPPUTNAME="1222.txt" 设置上传文件的名称 第 209 页共 259 页 FTP 相关命令

AT+FTPPUTPATH="/" 设置上传文件的路径 AT+FTPPUT=1 +FTPPUT:1,1,1360 这是 URC 上报, 表示可以上传数据了, 单次上传的最 大长度为 1360 AT+FTPPUT=2,7 +FTPPUT: 2,7 // 此时输入 7 个字符 AT+FTPPUT=2,0 结束上传 输入 7 个字符后, 会返回, 表示输入结束, 已经上传 第 210 页共 259 页 FTP 相关命令

21 MQTT 相关命令 21.1 设置 MQTT 相关参数 :AT+MCONFIG 命令类型 语法 返回 说明 AT+MCONFIG=<clientid>[,<username>, 正常返回 设置命令 <password>[,<will_qos>,<will_retain>, <will_topic>,<will_message>]] ERROR 输入格式有误 测试命令 AT+MCONFIG=? +MCONFIG:<clientid>[,<username>,<password> [,(0-2),(0,1),<will_topic>,<will_message>]] 参数 定义 取值 对取值的说明 <clientid> client identity 字符串 最大 256 个字节 须用 "" 括住 <username> username to login server 字符串 最大 256 个字节 须用 "" 括住 <password> password to login server 字符串 最大 256 个字节 须用 "" 括住 <will_qos> 0 at most once delivery Quality of Service for will 1 at least once delivery message 2 exactly once delivery 0 the server will restore the will meassge and its QoS <will_retain> retain flag the server must not restore the will 1 meassge and must not remove or replace any existing retained message <will_topic> the topic of the will meassage 字符串 最大 256 个字节 须用 "" 括住 <will_message> the will message content 字符串 最大 1360 个字节 须用 "" 括住 21.2 建立 TCP 连接 :AT+MIPSTART 命令类型 语法 返回 说明 普通链接 : AT+MIPSTART=<svraddr>,<port> ERROR 正常返回输入格式有误 设置命令 输入这条设置命令以后, 后续会有 URC 上报 SSL 链接 : AT+SSLMIPSTART=<svraddr>,<port> 1) 单链接 (AT+CIPMUX=0) 第 211 页共 259 页 MQTT 相关命令

如果链接成功地建立, 则上报 : CONNECT 如果链接已经存在, 则上报 : ALREADY CONNECT 如果链接失败, 则上报 : STATE:<state> CONNECT FAIL 2) 多链接 (AT+CIPMUX=1) 如果链接成功地建立, 则上报 : 7,CONNECT 如果链接已经存在, 则上报 : ALREADY CONNECT AT+MIPSTART=? 如果链接失败, 则上报 : 7,CONNECT FAIL +MIPSTART:"(0,255).(0,255).(0,255).(0,255)",(1-65 535) +MIPSTART:"DOMAIN NAME",(1-65535) 测试命令 AT+SSLMIPSTART=? +SSLMIPSTART:"(0,255).(0,255).(0,255).(0,255)",( 1-65535) +SSLMIPSTART:"DOMAIN NAME",(1-65535) 注意事项 1) 当模块版本带有 _SSL 后缀时, 才支持 SSLMIPSTART 命令 ; 2) 当使用 SSL 链接进行数据传输时, 链接命令为 : AT+SSLMIPSTART=<svraddr>,<port> 其余跟普通链接一样 这点请知悉! 参数 定义 取值 对取值的说明 <svraddr> 服务器 IP 地址或 DNS 地址 domain name 或 XXX.XXX.XXX.XXX XXX 取值范围 :0~255 <port> server port 1-65535 第 212 页共 259 页 MQTT 相关命令

21.3 客户端向服务器请求会话连接 :AT+MCONNECT 命令类型 语法 返回 说明 设置命令 AT+MCONNECT=<clean_session>, 连接成功, 正常返回 <keepalive> CONNACK ERROR 输入格式有误或连接失败 +MCONNECT:(0-1),(1-65535) 测试命令的返回的是 测试命令 AT+MCONNECT=? <clean_session> 和 <keepalive> 的取值范围 参数 定义 取值 对取值的说明 The server must resume communications with the client based on state from the current session(identifed by the client identifier). If there is no session associated with the client identifier, the server must create a new session. The Client and server MUST store the session 0 after the client and server are disconnected. After the dis connection of a session that had CleanSession set to <clean_session> 0, the server MUST store further QoS 1 and QoS2 messages that match any subscriptions that the client had at the time of disconnection as part of the session state. It may also store QoS 0 messages that meet the same criteria client 和 server 都会抛弃以前的会话, 建立一个新的会话 会 1 话持续时间与网络连接持续时间一样长 与此会话相关的会话状 态数据在后序的会话中不被采用 <keepalive> MQTT 心跳时间 1-65535 时间单位 : 秒 MQTT 内部心跳检测到上一次心跳没有应答时, 上报 URC: MQTT HEART NO ACK 21.4 发布消息 :AT+MPUB 本命令从客户端到服务器, 或从服务器到客户端, 传送应用消息 命令类型 语法 返回 说明 qos=0 设置命令 AT+MPUB=<topic>,<qos>,<retain >,<message> qos=1 PUBACK 第 213 页共 259 页 MQTT 相关命令

PUBREC qos=2 测试命令 AT+MPUB=? PUBCOMP ERROR +MPUB:<topic>,(0-2),(0-1),<message> 失败 参数 定义 取值 对取值的说明 <qos> 0 at most once delivery for application message Quality of Service for 1 at least once delivery for application message application message 2 exactly once delivery for application message 0 the server will restore the application meassge and its QoS <retain> retain flag the server must not restore the application 1 meassge and must not remove or replace any existing retained message <topic> the topic of the application meassage 字符串 最大 256 个字节 须用 "" 括住 最大 1360 个字节 须用 "" 括住 <message> the applicaton message 字符串 content 注 : 内嵌的双引号请用 \22 表达 21.5 订阅主题 :AT+MSUB 本命令从客户端到服务器, 用于一个或多个订阅主题 命令类型 语法 返回 说明 成功 SUBACK ERROR 失败 设置命令 AT+MSUB=<topic>,<qos> 当输入设置命令成功以后, 后续会有相应的 URC 上报 当 AT+MQTTMSGSET=0: +MSUB:<topic>,<len>,<message> 当 AT+MQTTMSGSET=1: +MSUB:<store_addr> 测试命令 AT+MSUB=? +MSUB:<topic>,(0-2) 第 214 页共 259 页 MQTT 相关命令

参数 定义 取值 对取值的说明 <topic> the topic of the application meassage 字符串 最大 256 个字节 须用 "" 括住 <qos> 0 at most once delivery for application message Quality of Service for 1 at least once delivery for application message application message 2 exactly once delivery for application message <len> the length of received message 单位 : 字节 <message> the applicaton message content 字符串 最大 1360 个字节 须用 "" 括住 <store_addr> 0-3 the location of the cache when messages are received 21.6 取消订阅主题 :AT+MUNSUB 本命令从客户端到服务器, 用于取消订阅主题 命令类型 语法 返回 说明 成功 设置命令 AT+MUNSUB=<topic> UNSUBACK ERROR 失败 测试命令 AT+MUNSUB=? +MUNSUB:<topic> 成功 21.7 打印收到的所有的订阅消息 :AT+MQTTMSGGET 命令类型 语法 返回 说明 [+MSUB: <topic>,<len>,<message>] [+MSUB: <topic>,<len>,<message>] 执行命令将会打印收到的保 执行命令 AT+MQTTMSGGET 将会变成 invalid [+MSUB: <topic>,<len>,<message>] 存在 cache 中的主题订阅消 [+MSUB: <topic>,<len>,<message>] 息 执行完以后,<status> 查询命令 AT+MQTTMSGGET? +MQTTMSGGET:0,<status> 第 215 页共 259 页 MQTT 相关命令

+MQTTMSGGET:1,<status> +MQTTMSGGET:2,<status> +MQTTMSGGET:3,<status> 测试命令 AT+MQTTMSGGET=? 注意事项 当 AT+MQTTMSGSET=1, 执行命令可以打印订阅消息 参数 定义 取值 对取值的说明 <topic> the topic of the application meassage 字符串 最大 256 个字节 须用 "" 括住 <len> the length of received message 单位 : 字节 <message> the applicaton message content 字符串 最大 1360 个字节 须用 "" 括住 <status> 消息状态 VALID valid data, AT+MQTTMSGGET 执行模块可以打印这些消息 INVALID invalid data 21.8 设置订阅消息的打印模式 :AT+MQTTMSGSET 命令类型 语法 返回 说明 设置命令 AT+MQTTMSGSET=<mode> 成功 ERROR 失败 查询命令 AT+MQTTMSGSET? +MQTTMSGSET:<mode> 测试命令 AT+MQTTMSGSET=? +MQTTMSGSET:(0,1) 参数 定义 取值 对取值的说明 0 主动上报到串口 有新订阅消息时, 上报的 URC 为 : +MSUB:<topic>,<len>,<message> <mode> 消息上报模式 1 缓存模式 有新订阅消息时, 上报的 URC 为 : +MSUB:<store_addr> 然后用 AT+MQTTMSGGET 来读消息 第 216 页共 259 页 MQTT 相关命令

21.9 MQTT 消息编码格式切换 :AT+MQTTMODE 本命令设置 MQTT 消息的输入编码格式, 是 ASCII 还是 HEX 命令类型 语法 返回 说明 设置命令 AT+MQTTMODE=<mode> 成功 ERROR 失败 查询命令 AT+MQTTMODE? +MQTTMODE: <mode> 测试命令 AT+MQTTMODE=? +MQTTMODE: (0,1) 参数定义取值对取值的说明 0 ASCII 格式 <mode> 消息输入编码格式 1 HEX 格式 举例 : 命令 ( ) 实例 解释和说明 / 返回 () AT+MQTTMODE=1 set the format to HEX AT+MPUB="test",0,0,"313233" the message content is 0x31 0x32 0x33 AT+MQTTMODE=0 AT+MPUB="test",0,0,"123" the message content is 123 21.10 关闭 MQTT 连接 :AT+MDISCONNECT 命令类型 语法 返回 说明 设置命令 AT+MDISCONNECT 成功 ERROR 失败 测试命令 AT+MDISCONNECT=? 返回, 表示支持此命令 第 217 页共 259 页 MQTT 相关命令

21.11 关闭 TCP 连接 :AT+MIPCLOSE 命令类型 语法 返回 说明 设置命令 AT+MIPCLOSE 成功 ERROR 失败 测试命令 AT+MIPCLOSE=? 返回, 表示支持此命令 21.12 查询 MQTT 连接状态 :AT+MQTTSTATU 命令类型 语法 返回 说明 +MQTTSTATU :<state> 成功 执行命令 AT+MQTTSTATU ERROR 失败 测试命令 AT+MQTTSTATU=? 返回, 表示支持此命令 参数定义取值对取值的说明 0 离线 <state> MQTT 连接状态 1 已经登陆认证过, 可以 PUB 数据了 2 还没认证, 需要发送 MCONNECT 命令 21.13 使用方法举例 由于这部分的命令具有高度相关性, 所以将各个命令的应用例程集中在一起描述 举例 : 命令 ( ) / 返回 () 实例 解释和说明 AT+CGREG? 查询当前 GPRS 注册状态 +CGREG: 0,1 <n>=0, 表示禁用 URC 上报 <stat>=1, 标识已经注册 GPRS 网络, 而且是本地网 AT+CGATT? 查看当前 GPRS 附着状态 +CGATT: 1 AT+CSTT="CMNET","","" <state>=1, 标明当前 GPRS 已经附着 启动任务, 设置 APN 为 "CMNET" 或 AT+CSTT="CMNET" 注 : 当用户名和密码为空时, 可以写成空字符串, 也可什么都不写 第 218 页共 259 页 MQTT 相关命令

AT+CIICR 激活移动场景, 获取 IP 地址 AT+CIFSR 查询分配的 IP 地址 010.083.172.111 AT+MCONFIG= test,, 这里填上 cellid,user 和 password 如果 user 和 password 为空, 就写空字符或省略 例如 :AT+MCONFIG= test AT+MIPSTART= ip 或域名, port 这里, 请填上用户自己的 mqtt 服务器的 IP 地址 或域名地址, 以及端口号 (URC) CONNECT 注 : 当使用 SSL 链接进行数据传输时, 链接命 令格式为 : AT+MCONNECT=1,60 建立 mqtt 会话 AT+SSLMIPSTART=<svraddr>,<por t> 其余跟普通链接一样 这点请知悉! 注 : 在 MIPSTART 返回 CONNECT 后才 CONNACK 能发 MCONNECT 命令, 而且要立即发, 否则会被服务器踢掉 AT+MSUB="mqtt/topic",0 订阅 SUBACK AT+MPUB="mqtt/topic",0,0,"SSSSddddd" 发布, 消息格式缺省为 ASCII 格式 AT+MPUB="mqtt/topic",0,0,"ab\22TOD\22}:156" 发布, 消息内容为 :ab TOD }:156 注 : 内嵌的双引号请用 \22 表达 AT+MQTTMODE=1 设置消息格式为 HEX 格式 AT+MPUB="mqtt/topic",0,0,"313233" 发送消息 "123" 到主题 "mqtt/topic" (URC) +MSUB: 0 上报方式是 cache 方式, 需要用 +MQTTMSGGET 来读 AT+MQTTMSGGET? +MQTTMSGGET: 0,VALID +MQTTMSGGET: 1,INVALID +MQTTMSGGET: 2,INVALID +MQTTMSGGET: 3,INVALID AT+MQTTMSGGET 第 219 页共 259 页 MQTT 相关命令

+MSUB: mqtt/topic,9 byte,ssssddddd AT+MQTTMSGSET=0 设置为直接上报消息 AT+MPUB="mqtt/topic",0,0,"SSSSddddd" (URC) +MSUB: "mqtt/topic",9 byte,ssssddddd AT+MDISCONNECT 模块主动发起关闭 MQTT 连接 AT+MIPCLOSE 然后关闭 TCP 链接 AT+CIPSHUT 然后关闭移动场景 如果是模块出现 MQTT 断链的主动上报和处理方法 : (URC) MQTT HEART NO ACK MQTT 发生断链的主动上报 AT+MQTTSTATU 查询 MQTT 连接状态 +MQTTSTATU :0 0 为离线 AT+MIPCLOSE 直接关闭 MQTT 链接 后面从 MCONNECT 开始重新连 如果是模块出现 TCP 层断链的主动上报和处理方法 : (URC) CLOSED TCP 层断链时的主动上报 MQTT 是建立在 TCP 连接上的, 有时候会直接发 生 TCP 层断链 AT+MQTTSTATU 查询 MQTT 连接状态 +MQTTSTATU :0 0 为离线 AT+MIPCLOSE 直接关闭 MQTT 链接 AT+CIPSHUT 然后关闭移动场景 后面从 CSTT 开始重新连 第 220 页共 259 页 MQTT 相关命令

22 GPS 相关命令 特别提醒 : 1) 本章内容不适用于纯 GPRS 模块 ( Air202/201/208 ), 只适用于含有 GPS 功能的 GPRS 模块 (Air800/868/801); 2) Air 800 模块内部包含 GPRS 单元和 GPS 单元 其中 GPRS 单元是用 UART2 口跟 GPS 单元通讯的 所以, 要确保本章命令有效, 请确保 uart2 口跟 GPS TX RX 已经连接 22.1 打开 GPS:AT+CGNSPWR 命令类型语法返回说明 成功 设置命令 AT+CGNSPWR=<mode> ERROR 或 失败 命令有格式上的错误 根据 CMEE 的设置值, 返回 +CME ERROR:<err> 形式有所不同 +CGNSPWR: <mode> 查询命令 AT+CGNSPWR? 显示是否已经打开 GPS +CGNSPWR: (list of supported 测试命令 AT+CGNSPWR=? <mode>s ) 显示是否支持 +QGNSSC 命令, 以及支持的参数范围 参数定义取值对取值的说明 <mode> GPS 电源开关 0 关闭 GPS 开关 1 打开 GPS 开关 22.2 定义 NMEA 语句类型 :AT+CGNSSEQ 命令类型 语法 返回 设置命令 AT+CGNSSEQ=<type> ERROR 或 +CME ERROR:<err> 第 221 页共 259 页 GPS 相关命令

查询命令 测试命令 AT+CGNSSEQ? AT+CGNSSEQ=? +CGNSSEQ:<type> +CGNSSEQ: (GGA,GSA,RMC,GSV) 参数 定义 取值 对取值的说明 GGA GPGGA 或 GLGGA 或 GNGGA <type> GPS NMEA 信息类型, 字符 GSA GPGSA 或 GLGSA 或 GNGSA 串型 GSV GPGSV 或 GLGSV 或 GNGSV RMC GPRMC 或 GLRMC 或 GNRMC 22.3 读取 GNSS 信息 :AT+CGNSINF 命令类型 语法 返回 +CGNSINF: <GNSS run status>,<fix status>, <UTC date & Time>,<Latitude>,<Longitude>, <MSL Altitude>,<Speed Over Ground>, <Course Over Ground>, <Fix AT+CGNSINF Mode>,<Reserved1>,<HDOP>,<PDOP>, 执行命令 <VDOP>,<Reserved2>,<GNSS Satellites in View>, <GNSS Satellites Used>,<GLONASS Satellites Used>,<Reserved3>,<C/N0 max>,<hpa>,<vpa> 参数定义取值对取值的说明 0 GNSS OFF <GNSS run status> GNSS 运行状态 1 GNSS ON 0 not fixed position <Fix status> 1 fixed position yyyy: [1980,2039] MM : [1,12] yyyymmddhhmmss.sss dd: [1,31] <UTC date & Time> hh: [0,23] mm: [0,59] ss.sss:[0.000,60.999] <Latitude> 纬度 ±dd.dddddd [-90.000000,90.000000] 第 222 页共 259 页 GPS 相关命令

<Longitude> 经度 ±ddd.dddddd [-180.000000,180.000000] <MSL Altitude> 单位 :meters <Speed Over Ground> 0~999.99 单位 :Km/hour <Course Over Ground> 0~360.00 单位 :degress <Fix Mode> 0,1,2 具体取值取决于 GPS 芯片 <Reserved1> <HDOP> 0~99.9 <PDOP> 0~99.9 <VDOP> 0~99.9 <Reserved2> <GNSS Satellites in 0~99 View> <GNSS Satellites Used> 0~99 <GLONASS Satellites Used> 0~99 <Reserved3> <C/N0 max> 0~55 单位 :dbhz <HPA> 0~9999.9 单位 :meters <VPA> 0~9999.9 单位 :meters 参数定义取值对取值的说明 <GNSS run status> GNSS 运行状态 0 GNSS OFF 22.4 打开 GNSS URC 上报 :AT+CGNSURC 命令类型 语法 返回 设置命令 AT+CGNSURC=<Navigation mode> +CME ERROR:<err> 查询命令 AT+CGNSURC? +CGNSURC: <Navigation mode> 测试命令 AT+CGNSURC=? +CGNSURC: (0-255) 与 AT+CGNSINF 的返回格式相同 : URC +CGNSINF: <GNSS run status>,<fix status>, <UTC date & Time>,<Latitude>,<Longitude>, <MSL Altitude>,<Speed Over Ground>, <Course Over Ground>, <Fix Mode>,<Reserved1>,<HDOP>,<PDOP>, <VDOP>,<Reserved2>,<GNSS Satellites in View>, 第 223 页共 259 页 GPS 相关命令

<GNSS Satellites Used>,<GLONASS Satellites Used>,<Reserved3>,<C/N0 max>,<hpa>,<vpa> 参数定义取值对取值的说明 <Navigation mode> 0 关闭导航数据 URC 上报 1~255 开启导航数据 URC 上报, 每 <Navigation mode> 个 GNSS FIX 就上报 22.5 设置辅助定位 :AT+CGNSAID 秒定位, 由时间辅助定位 <time>,epo 文件辅助 <epo>, 位置信息辅助 <loc> 3 个参数共同作用完成的 这 3 个 辅助定位都使能后, AT+CGNSPWR=1 打开 gps 就会跑秒定位的流程 命令类型语法返回 设置命令 测试命令 AT+CGNSAID=<mode>,<time>,<epo>,<loc> AT+CGNSAID=? +CME ERROR:<err> +CGNSAID: (0-31)(0-1)(0-1)(0-720) 参数定义取值对取值的说明 <mode> 是否支持辅助定位 0-31 本参数暂不起作用 0 不支持 <time> 是否同步 GNSS UTC 时间 1 支持是否同步 epo ( Extended 0 不支持 <epo> Pridiction Orbit) 文件 1 支持 <loc> 是否使能位置辅助定位 0-720 0 是不使能, 其余值都是使能 缺省值为 0 22.6 给 GNSS 发送控制命令 :AT+CGNSCMD 命令类型 语法 返回 设置命令 AT+CGNSCMD=<cmdType>,<cmdString> +CME ERROR:<err> 第 224 页共 259 页 GPS 相关命令

测试命令 AT+CGNSCMD=? +CGNSCMD:(0-1),"cmdString" 参数定义取值对取值的说明 0 NMEA style command 目前仅支持这种 <cmdtype> 命令类型 1 HEX style command <cmdstring> 命令字符串字符串类型 22.7 将读取到的 UART2(GNSS) 数据发送到 UART1:AT+CGNSTST 命令类型 语法 返回 设置命令 AT+CGNSTST=<mode> +CME ERROR:<err> 测试命令 AT+CGNSTST? +CGNSTST:<mode> 测试命令 AT+CGNSTST=? +CGNSTST:(0-1) 参数定义取值对取值的说明 <mode> 开关 0 switch off 1 switch on 22.8 读取 GNSS 版本 :AT+CGNSVER 命令类型 语法 返回 执行命令 AT+CGNSVER <version> 第 225 页共 259 页 GPS 相关命令

22.9 使用方法举例 由于这部分的命令具有高度相关性, 所以将各个命令的应用例程集中在一起描述 举例 : 命令 ( ) 实例 解释和说明 / 返回 () AT+CGNSPWR? 查询 GPS 是否已经打开 +CGNSPWR: 0 0 是未打开 AT+CGNSPWR=1 打开 GPS AT+CGNSSEQ="RMC" 设置 NMEA 语句类型 AT+CGNSINF 查询 GNSS 信息 +CGNSINF: 1,0,20171120092159.093,31.2423033,121.4734117,171.9,0.000,0.00, 1,,,,06,06,,,, AT+CGNSURC=5 设置定位信息自动上报, 每隔 5 个 fix, 就上报一次 (URC) +UGNSINF: 1,1,20171127092349.000,31.2417467,121.4732967,43.7,0.101,106.8 5,3,1.42,1.73,0.98,10,10,,,, 每隔 5 个定位, 就上报一次 +UGNSINF: 1,1,20171127092354.000,31.2417417,121.4733050,41.3,0.670,355.1 1,3,1.42,1.73,0.98,10,10,,,, +UGNSINF: 1,1,20171127092359.000,31.2417483,121.4733033,39.8,0.263,322.9 8,3,1.42,1.73,0.98,10,10,,,, AT+CGNSCMD=0,"$PGKC462*2F" 发送 GPS 命令 这里的命令是查询 GPS 版本 $PGKC463,GE9501_1.1_16093001,GE microsemi*49 第 226 页共 259 页 GPS 相关命令

23 嵌入式 TCPIP 命令 23.1 启动多 IP 连接 :AT+CIPMUX 命令类型 语法 返回和说明 设置命令 AT+CIPMUX=<n> 查询命令 AT+CIPMUX? +CIPMUX: <n> 测试命令 AT+CIPMUX=? +CIPMUX: (0,1) 注意事项 只在 IP initial 状态,AT+CIPMUX=1 设置有效 ; 只在多路连接且 GPRS 应用都关闭的情况下,AT+CIPMUX=0 设置有效 参数定义取值对取值的说明 <n> 多路连接开关 0 单路连接 ( 缺省值 ) 1 多路连接 23.2 启动任务并设置接入点 APN 用户名 密码 :AT+CSTT 命令类型 语法 返回和说明 设置命令 AT+CSTT=<apn>,<user name>,<password> 查询命令 AT+CSTT? +CSTT: <apn>,<user name>,<password> 测试命令 AT+CSTT=? +CSTT: "APN","USER","PWD" 注意事项设置命令和执行命令只有在 IP INITIAL 状态下执行有效 执行后, 状态变为 IP START 第 227 页共 259 页 嵌入式 TCPIP 命令

参数 定义 取值 对取值的说明 <apn> GPRS 接入点名称 - 字符串参数 ( 字符串需要加引号 ) <user name> GPRS 用户名 - 字符串参数 ( 字符串需要加引号 ) <password> GPRS 密码 - 字符串参数 ( 字符串需要加引号 ) 23.3 激活移动场景 ( 或发起 GPRS 或 CSD 无线连接 ):AT+CIICR 命令类型语法返回和说明 执行命令 AT+CIICR 如果激活成功, 如果激活失败, ERROR 测试命令 注意事项 AT+CIICR=? AT+CIICR 只有在 IP START 状态下才能激活移动场景, 执行后状态变为 IP CONFIG 在模块接受激活场景操作后, 如果移动场景激活成功, 状态变为 IPGPRSACT, 返回, 否则返回 ERROR 23.4 查询本地 IP 地址 :AT+CIFSR 命令类型语法返回和说明 执行命令 AT+CIFSR <IP address> 测试命令 AT+CIFSR=? 注意事项 只有在移动场景已激活的状态 :IP GPRSACT TCP/UDPCONNECTING CONNECT IP CLOSE 下才可以通过 AT+CIFSR 查询得到本地 IP 地址, 否则返回 ERROR 参数定义取值对取值的说明 <IP address> IP 地址 - 字符串参数 ( 字符串需要加引号 ) 23.5 建立 TCP 连接或注册 UDP 端口号 :AT+CIPSTART 命令类型 语法 返回和说明 设置命令 单路连接 (+CIPMUX=0) 时 : AT+CIPSTART=<mode>,<IPaddress>,<port> 如果格式正确, 否则 第 228 页共 259 页 嵌入式 TCPIP 命令

或 AT+CIPSTART=<mode>,<domain name>,<port> +CME ERROR <err> 紧接着会有 URC 上报, 上报内容如下 : 如果连接已经存在, ALREADY CONNECT 如果连接成功 ( 非透传 ), CONNECT 如果连接成功 ( 透传 ), CONNECT 否则 STATE: <sl_state> 测试命令 多路连接 (+CIPMUX=1) 时 : AT+CIPSTART=<n>,<mode>,< IP address>,<port> 或 AT+CIPSTART=<n>,<mode>,<domain name>,<port> AT+CIPSTART=? CONNECT FAIL 如果格式正确, 否则 +CME ERROR <err> 紧接着会有 URC 上报, 上报内容如下 : 如果连接已经存在, <n>,already CONNECT 如果连接成功, <n>,connect 否则 <n>,connect FAIL 单路连接 (+CIPMUX=0) 时 +CIPSTART: (<mode> 取值列表 ),(IP address range),(port range)? +CIPSTART: (<mode> 取值列表 ),(domain name),(port range) 多路连接 (+CIPMUX=1) 时 +CIPSTART: (<n> 取值列表 ),( <mode> 取值列表 ),(IP addressrange),(port range) +CIPSTART: (<n> 取值列表 ),( <mode> 取值列表 ),(domain name),(portrange) 此命令应用于建立 TCP/UDP 连接 单路连接时只允许当前状态为 IP INITIAL 或者 IP STATUS 时执行, 多路连接时只允许当前状态为 IP 注意事项 STATUS 时建立链接 因此在当前状态不是 IP INITIAL 或者 IP STATUS 时, 执行 AT+CIPSHUT 后再开始建立连接 多路连接时, 执行此命令前, 必须先执行 AT+CSTT, AT+CIICR,AT+CIFSR 注 : 参数定义表格定义的是各参数的释义, 表格中参数出场顺序跟语法规则表格中参数出场顺序无关! 参数定义取值对取值的说明 第 229 页共 259 页 嵌入式 TCPIP 命令

<n> Link No. 0~7 整数型, 表示连接序号 <mode> 连接类型, 字符串型 TCP 建立 TCP 连接 ( 需加双引号 ) UDP 建立 UDP 连接 <IP address> 远端服务器 IP 地址 - 字符串参数 ( 字符串需要加双引号 ) <domain name> 远端服务器域名 - 字符串参数 ( 字符串需要加双引号 ) <port> 远端服务端口 - 整数型 IP INITIAL 初始化 IP START 启动任务 IP CONFIG 配置场景 IP GPRSACT 场景已激活 IP STATUS 获得本地 IP 状态 TCP CONNECTING/UDP 单连接状态 TCP 连接中 /UDP 端口注册中 / 服务器侦 CONNECTING/SERVER <sl_state> 听中 LISTENING CONNECT 连接建立成功 TCP CLOSING/UDP CLOSING 正在关闭 TCP 连接, 正在注销 UDP 端口 TCP CLOSED/UDP CLOSED 连接断开 /UDP 端口被注销 PDP DEACT 场景被释放 23.6 选择 TCPIP 应用模式 :AT+CIPMODE 命令类型语法返回 设置命令 AT+CIPMODE=<mode> 查询命令 测试命令 注意事项 +CIPMODE: <mode> AT+CIPMODE? +CIPMODE: (0-NORMAL MODE,1-TRANSPARENT MODE) AT+CIPMODE=? 当模块设置为透传模式并且正在进行数据透明传输时 : 如果执行 AT+CIPSCONT, 则模块重启或关开机后,+CIPSCONT 相关的参数自动载入关机或重启前的设置, 模块一旦识别到 +CIPMODE:1, 则会以关机或重启前的连接模式 (TCP 或 UDP) IP 地址和端口进行重连 如果模块未执行 AT+CIPSCONT, 则模块重启或关开机后, 不会进行重连 参数定义取值对取值的说明 <mode> TCPIP 应用模式 0 非透明传输模式 第 230 页共 259 页 嵌入式 TCPIP 命令

1 透明传输模式 23.7 选择非透传数据发送模式 :AT+CIPQSEND 命令类型语法返回 设置命令 AT+CIPQSEND=<n> 查询命令 测试命令 AT+CIPQSEND? AT+CIPQSEND=? +CIPQSEND: <n> +CIPQSEND: (0,1) 参数定义取值对取值的说明 <n> 非透传数据发送模式 0 1 普通模式, 缺省值 也叫慢发模式 当服务器收到数据, 模块 SEND ( 单链接 ) 或 <n>, SEND ( 多链接 ) 注 : 不推荐使用 慢发模式返回 SEND 的超时时间取决于网络, 很难处理 快发模式 当数据发送到模块, 终端 DATAACCEPT:<length> ( 单链接 ) DATAACCEPT:<n>,<length> ( 多链接 ) 注 : 建议设置为模式 1, 即快发模式 23.8 配置透明传输模式 :AT+CIPCCFG 命令类型 语法 返回 设置命令 AT+CIPCCFG=<NmRetry>,<WaitTm>,<SendS z>,<esc>[,<rxmode>,<rxsize>,<rxtimer>] 查询命令 AT+CIPCCFG? +CIPCCFG: <NmRetry>,<WaitTm>,<SendSz>,<esc>,<R xmode>,<rxsize>,<rxtimer> 测试命令 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) 第 231 页共 259 页 嵌入式 TCPIP 命令

注意事项 此命令只在单路连接有效 (AT+CIPMUX=0) 注 : 参数定义表格定义的是各参数的释义, 表格中参数出场顺序跟语法规则表格中参数出场顺序无关! 参数定义取值对取值的说明 <NmRetry> 一个 IP 包的重传次数 3~8 缺省值为 5 <WaitTm> 间隔发送时间 2~10 单位为 100ms, 缺省值为 2 <SendSz> 每次发送数据字节数 1~1460 缺省值为 1024 1 开启转义序列, 缺省值 <esc> 是否开启转义序列 0 不开启转义序列 <Rxmode> <RxSize> 每次接收数据的长度 50-1460 单位为 bytes <Rxtimer> 从串口接收数据的时间间隔 20-1000 单位为 ms, 缺省值为 50ms 从串口接收数据的时间间隔 1 设置时间间隔, 间隔为 <Rxtimer> 设置 0 没有时间间隔 23.9 发送数据 :AT+CIPSEND 命令类型 语法 返回和说明 本命令用于在单链接模式下发送长度不可变的数据 1) 正常情况下返回 > > 后输入 <length> 长度的数据, 则数据自动发送出去 设置命令 单路连接 (AT+CIPMUX=0): AT+CIPSEND=<length> 如果是慢发模式, 则数据发送成功后, 有如下的 ( 不推荐使用慢发模式!) SEND 如果是快发模式, 则数据发送成功后, 有如下的 ( 推荐使用快发模式!) DATA ACCEPT:<length> 如果数据发送失败, 则有如下的 SEND FAIL 2) 如果连接未建立或者连接被断开, +CME ERROR <err> 第 232 页共 259 页 嵌入式 TCPIP 命令

当 <length> 省略时, 本命令用于多连接模式下发送长度可变的数据 响应 >, 此时输入数据, 执行 CTRL+Z(0x1A) 发送, 或执行 ESC(0x1B) 中止操作 ; 当 <length> 不省略时, 本命令用于多连接模式下发送长度不可变的数据 响应 >,> 后输入 <length> 长度的数据, 则数据自动发送出去 多路连接 (+CIPMUX=1): AT+CIPSEND=<n>[,<length>] 如果连接未建立或者连接被断开, +CME ERROR <err> 如果是慢发模式, 则数据发送成功后, 有如下的 ( 不推荐使用慢发模式!) <n>,send 执行命令 查询命令 AT+CIPSEND AT+CIPSEND? 如果是快发模式, 则数据发送成功后, 有如下的 ( 推荐使用快发模式!) DATA ACCEPT:<n>,<length> 如果数据发送失败, <n>,send FAIL 本命令用于在单链接模式下发送长度可变的数据 响应 >, 此时输入数据, 执行 CTRL+Z(0x1A) 发送, 或执行 ESC(0x1B) 中止操作 如果连接未建立或已被断开, +CME ERROR <err> 如果是慢发模式, 则数据发送成功后, 有如下的 ( 不推荐使用慢发模式!) SEND 如果是快发模式, 则数据发送成功后, 有如下的 ( 推荐使用快发模式!) DATA ACCEPT:<length> 如果数据发送失败, SEND FAIL 单路连接 (AT+CIPMUX=0) +CIPSEND: <size> 多路连接 (AT+CIPMUX=1) +CIPSEND: <n>,<size> 测试命令 AT+CIPSEND=? 单路连接 (AT+CIPMUX=0) +CIPSEND: <length> 多路连接 (AT+CIPMUX=1) +CIPSEND: <0-7>,<length> 第 233 页共 259 页 嵌入式 TCPIP 命令

注意事项 数据的最大发送长度由网络决定 通过 AT+CIPATS 可以在设定的时间内自动发送数据 只有在连接已建立的状态下才可以发送数据 一次最多能发送字节数不大于 <size> 值 不推荐使用慢发模式! 参数 定义 取值 对取值的说明 <n> Link No. 0~7 整数型, 表示连接序号 <length> 发送数据长度 - 整数型, 它必须小于 <size> <size> 每次发送数据最大值 - 整数型, 目前是 1460 字节 23.10 设置自动发送数据前的定时时间 :AT+CIPATS 命令类型语法返回 设置命令 AT+CIPATS=<mode>[,<time>] 查询命令 测试命令 AT+CIPATS? AT+CIPATS=? +CIPATS: <mode>,<time> +CIPATS: (<mode> 取值列表 ),( <time> 取值列表 ) 参数定义取值对取值的说明 0 未设置自动发送数据 ( 缺省值 ) <mode> 是否设置自动发送时间, 整数型 1 设置自动发送数据 <time> 数据将在多少秒后被发送 1~100 整数型, 以秒为单位 23.11 设置发送数据时是否显示 > 和 SEND :AT+CIPSPRT 命令类型语法返回 设置命令 AT+CIPSPRT=<send prompt> 查询命令 测试命令 AT+CIPSPRT? AT+CIPSPRT=? +CIPSPRT: <send prompt> +CIPSPRT: (<send prompt> 取值列表 ) 第 234 页共 259 页 嵌入式 TCPIP 命令

参数定义取值对取值的说明 <send prompt> 执行 AT+CIPSEND 后是否显示 > 和 SEND, 整数型 0 1 不显示 >, 返回 SEND 或 DATA ACCEPT 注 : 返回 SEND 或 DATA ACCEPT 的格式请根据 AT+CIPQSEND 这个命令的设定显示 >, 返回 SEND 或 DATA ACCEPT ( 缺省 ) 注 : 返回 SEND 或 DATA ACCEPT 的格式请根据 AT+CIPQSEND 这个命令的设定 2 不显示 >, 不返回 SEND 或 DATA ACCEPT 23.12 查询当前连接状态 :AT+CIPSTATUS 命令类型 语法 返回和说明 如果是单路连接 (AT+CIPMUX=0), 执行命令 AT+CIPSTATUS STATE: <sl_state> 如果是多路连接 (AT+CIPMUX=1), STATE:<ml_state> 测试命令 AT+CIPSTATUS=? C:<n>,<bearer>, <TCP/UDP>, <IP address>, <port>, <client state> 注 : 参数定义表格定义的是各参数的释义, 表格中参数出场顺序跟语法规则表格中参数出场顺序无关! 参数 定义 取值 对取值的说明 <n> Link No. 0~7 整数型, 表示连接序号 <bearer> GPRS 承载方式 0~1 缺省是 0 <IP address> IP 地址 - 字符串参数 ( 字符串需要加引号 ) <port> 端口号 - 整数型 IP INITIAL 初始化 IP START 启动任务 <sl_state> 单连接状态 IP CONFIG 配置场景 IP GPRSACT 场景已激活 IP STATUS 获得本地 IP 状态 TCP CONNECTING/UDP TCP 连接中 /UDP 端口注册中 / 服务器侦听中 第 235 页共 259 页 嵌入式 TCPIP 命令

CONNECTING/SERVER LISTENING CONNECT 连接建立成功 TCP CLOSING/UDP CLOSING 正在关闭 TCP 连接, 正在注销 UDP 端口 TCP CLOSED/UDP CLOSED 连接断开 /UDP 端口被注销 PDP DEACT 场景被释放 IP INITIAL 初始化 IP START 启动任务 IP CONFIG 配置场景 <ml_state> 多链接状态 IP GPRSACT 场景已激活 IP STATUS 获得本地 IP 状态 IP PROCESSING IP 数据阶段 PDP DEACT 场景被释放 INITIAL 初始化 CONNECTING 正在连接 <client state> 客户端状态 CONNECTED REMOTE CLOSING 已连接对端关闭 CLOSING 正在关闭 CLOSED 已关闭 23.13 查询已连接数据传输状态 :AT+CIPACK 命令类型 语法 返回 设置命令 多路连接 (+CIPMUX=1): +CIPACK: <txlen>, <acklen>, <nacklen> AT+CIPACK=<n> 执行命令 单路连接 (AT+CIPMUX=0): +CIPACK: <txlen>, <acklen>, <nacklen> AT+CIPACK 测试命令 AT+CIPACK=? 注意事项 当链接建立后, 查询 AT+CIPACK,<txlen>, <acklen>, <nacklen> 三个参数的初始值都是 0, 每发一 笔数据, 这三个参数都会累积增加 AT+CIPSHUT 后或链接断链后重连, 查询 AT+CIPACK, 三个参数都重置为 0 参数 定义 取值 对取值的说明 <n> Link No. 0~7 整数型, 表示连接序号 <txlen> 链接 <n> 建立以来累计已发送的数据字节数 - 整数型 第 236 页共 259 页 嵌入式 TCPIP 命令

<acklen> 链接 <n> 建立以来累计服务器已确认收到的数据字节数 - 整数型 <nacklen> 链接 <n> 建立以来服务器尙未确认收到的数据字节数 - 整数型 23.14 设置为 CSD 或 GPRS 连接模式 :AT+CIPCSGP 命令类型语法返回和说明 设置命令 查询命令 AT+CIPCSGP=<mode>,[(<apn>,<user name >,<password>)] AT+CIPCSGP? +CIPCSGP: <mode>, <apn>, <user name>, <password> 测试命令 AT+CIPCSGP=? +CIPCSGP: 1-GPRS,APN,USER NAME,PASSWORD 注 : 参数定义表格定义的是各参数的释义, 表格中参数出场顺序跟语法规则表格中参数出场顺序无关! 参数 定义 取值 对取值的说明 <mode> 无线连接模式 1 GPRS 连接 GPRS 下要设置的参数 : <apn> GPRS 接入点名称 - 字符串参数 ( 字符串需要加引号 ) <user name> GPRS 用户名 - 字符串参数 ( 字符串需要加引号 ) <password> GPRS 密码 - 字符串参数 ( 字符串需要加引号 ) 23.15 配置 TCP 协议的参数 :AT+TCPUSERPARAM 命令类型 语法 返回 设置命令 AT+TCPUSERPARAM= <RxtRttVar>,<RxtMaxCnt>,<KeepIdle> 查询命令 AT+TCPUSERPARAM? +RXTRTTVAR: <RxtRttVar> +RXTMAXCNT: <RxtMaxCnt> +KEEPIDLE: <KeepIdle> 测试命令 AT+TCPUSERPARAM=? RXTRTTVAR: (6-24) RXTMAXCNT: (0-12) 第 237 页共 259 页 嵌入式 TCPIP 命令

KEEPIDLE: (1-) 参数定义取值对取值的说明 <RxtRttVar> 计算重传超时时 间的变量 6~24 <RxtMaxCnt> 重传次数 0~12 缺省值为 3 缺省值为 6; 建立连接的过程中, 此值越小, 每次重传的超时时间越短 ; 例如 : 此值为 6 的情况下 : 正常连接请求超时时间 :3 秒第一次重传 :1 秒第二次重传 :2 秒第三次重传 :4 秒第四次重传 :8 秒第五次重传 :16 秒第六次重传 :32 秒第七次重传 :32 秒第八次重传 :32 秒第九次重传 :32 秒第十次重传 :32 秒第十一次重传 :32 秒第十二次重传 :32 秒 此值为 12 的情况下 : 正常连接请求超时时间 :3 秒第一次重传 :3 秒第二次重传 :6 秒第三次重传 :12 秒第四次重传 :24 秒第五次重传 :48 秒第六次重传 :64 秒第七次重传 :64 秒第八次重传 :64 秒第九次重传 :64 秒第十次重传 :64 秒第十一次重传 :64 秒第十二次重传 :64 秒 已经连接的状态下, 每次重传的超时时间除了跟此值有关, 还和网络对端有关, 超时时间是动态变化的 单位为秒, 缺省值为 7200, 即 2 个小时 <KeepIdle> 心跳包间隔 1~int 类型 的最大值 连接状态下的心跳包间隔指的是 : 间隔定时器时间到了之后, 发送心跳包, 设置 75 秒的等待网络对端 如果返回了, 则等下个心跳包间隔时间到后, 再发心跳包 ; 如果 75 秒没有返回, 马上再发心跳包, 连续重复 8 次, 如果仍然没有返回, 则认为网络异常, 上报 TCP ERROR: 12 错误 23.16 保存 TCP 协议的参数 :AT+TCPUSERPARAMSCONT 该命令的执行命令保存 TCP 协议的参数, 当系统重启时, 参数将自动载入 查询命令查询当前已经保存的 TCP 协议的参数 第 238 页共 259 页 嵌入式 TCPIP 命令

命令类型 语法 返回和说明 +TCPUSERPARAMSCONT +RXTRTTVAR: <RxtRttVar> 查询命令 AT+TCPUSERPARAMSCONT? +RXTMAXCNT: <RxtMaxCnt> +KEEPIDLE: <KeepIdle> 执行命令 AT+ TCPUSERPARAMSCONT 23.17 配置域名服务器 DNS:AT+CDNSCFG 命令类型语法返回和说明 设置命令 查询命令 AT+CDNSCFG=<pri_dns>,[<sec_ dns>] AT+CDNSCFG? PrimaryDns: <pri_dns> SecondaryDns: <sec_dns> 测试命令 AT+CDNSCFG=? +CDNSCFG: ( Primary DNS ),( Secondary DNS ) 参数定义取值对取值的说明 <pri_dns> 主域名服务器的 IP 地址字符串参数 ( 字符串需要加引号 ) <sec_ dns> 备域名服务器的 IP 地址字符串参数 ( 字符串需要加引号 ) 23.18 域名解析 :AT+CDNSGIP 命令类型语法返回和说明 第 239 页共 259 页 嵌入式 TCPIP 命令

如果命令正确, 而且域名解析成功, 响应 : 设置命令 AT+CDNSGIP=<domain name> +CDNSGIP: 1, <domain name>,<ipaddress> 如果命令正确, 但域名解析失败, 响应 : +CDNSGIP:0,<dns error code> 测试命令 AT+CDNSGIP=? 如果命令语法错误, 响应 : ERROR 参数 定义 取值 对取值的说明 <domain name> Internet 上注册的域名 - 字符串参数 ( 字符串需要加引号 ) <IPaddress> 域名对应的 IP 地址 - 字符串参数 ( 字符串需要加引号 ) 10 GENERAL ERROR 11 MAX RETRIES 12 NO SERVER ADDR <dns error code> DNS 相关的错误码 13 NO MEMORY 14 INVALID NAME 15 INVALID RESP 其他 一些其他的错误代码 23.19 设置单链接接收数据时是否显示发送方的 IP 地址和端口号 :AT+CIPSRIP 命令类型语法返回和说明 设置命令 查询命令 测试命令 AT+CIPSRIP=<mode> AT+CIPSRIP? AT+CIPSRIP=? +CIPSRIP: <mode> +CIPSRIP: (<mode> 取值列表 ) 注意事项 此命令只在单路连接模式下有效 (+CIPMUX=0) 参数定义取值对取值的说明 <mode> 是否显示发送方的 IP 0 不显示提示 ( 缺省值 ) 第 240 页共 259 页 嵌入式 TCPIP 命令

地址和端口号 1 显示提示, 格式如下 : RECV FROM:<IP ADDRESS>:<PORT> 23.20 设置单链接接收数据是否显示 IP 头 :AT+CIPHEAD 命令类型 语法 返回和说明 设置命令 AT+CIPHEAD=<mode> 查询命令 AT+CIPHEAD? +CIPHEAD: <mode> 测试命令 AT+CIPHEAD=? +CIPHEAD: (<mode> 取值列表 ) 注意事项 此命令只有在单路连接的模式下 (+CIPMUX=0) 才有效 参数定义取值对取值的说明 0 未设置 IP 头 <mode> 接收数据时是否增加 IP 头提示 1 设置 IP 头, 格式是 +IPD,data length: 23.21 设置单链接接收数据是否在 IP 头显示传输协议 :AT+CIPSHOWTP 命令类型 语法 返回和说明 设置命令 AT+CIPSHOWTP=<mode> 查询命令 AT+CIPSHOWTP? +CIPSHOWTP: <mode> 测试命令 AT+CIPSHOWTP=? +CIPSHOWTP: (<mode> 取值列表 ) 注意事项 此命令只有在单路连接的模式下 (+CIPMUX=0) 并且 AT+CIPHEAD=1 时才有效 参数定义取值对取值的说明 第 241 页共 259 页 嵌入式 TCPIP 命令

<mode> 接收数据时是否在 IP 头显示传输协议 0 不显示传输协议 ( 默认值 ) 1 显示传输协议, 格式是 +IPD,<data Size>,<TCP/UDP> :<data> 23.22 多链接时接收数据 :+RECEIVE 命令类型语法返回和说明 URC 上报 +RECEIVE,<n>,<length>: Received data 注 :Received data 是接收到的数据, 和 +RECEIVE,<n>,<length> 分开, 另起一行 参数 定义 取值 对取值的说明 <n> Link No. 0~7 整数型, 表示连接序号 <length> 接收到的数据的长度 - 整数型 23.23 保存 TCPIP 应用上下文 :AT+CIPSCONT 该命令的执行命令保存包含相应的 TCPIP AT 命令参数, 即 TCPIP 应用上下文, 当系统重启时, 参数将自动载入 查询命令查询当前的 TCPIP 应用上下文的设置 命令类型 语法 返回和说明 +CIPSCONT:<mode0> +CIPCSGP:<mode> 查询命令 AT+CIPSCONT? Gprs Config APN:<apn> Gprs Config UserId:<user name> Gprs Config Password:<password> +CLPORT:<port> +CIPHEAD:<mode> +CIPSHOWTP:<mode> +CIPSRIP:<mode> +CIPATS:<mode>,<time> +CIPSPRT:<send prompt> +CIPQSEND:<n> +CIPMODE:<mode> +CIPCCFG:<NmRetry>,<WaitTm>,<SendSz>,<esc> +CIPMUX:<n> +CIPDPDP:<mode>, <interval>, <timer> 第 242 页共 259 页 嵌入式 TCPIP 命令

+CIPRXGET:<mode> +CIPQRCLOSE:<mode> +CIPUDPMODE:<mode> 执行命令 AT+CIPSCONT 23.24 手动获得网络数据 :AT+CIPRXGET 命令类型语法返回和说明 打开手动获取数据功能输入 : AT+CIPRXGET=1 后续来数据会有 +CIPRXGET:1 的 URC 上报 单链接 (AT+CIPMUX=0) 时 : AT+CIPRXGET=<mode>[,<len> ] 收到 +IPRXGET:1 输入以下命令来手动读取数据 : AT+CIPRXGET=2,<len> +CIPRXGET:2,<cnlen>,<rlen> 数据.. 收到 +IPRXGET:1 也可以 16 进制读取 : AT+CIPRXGET=3,<len> 设置命令 +IPRXGET:3,<cnlen>,<rlen> 数据.. 查询还有多少数据未读 : AT+CIPRXGET=4 +IPRXGET:4,<rlen> 打开手动获取数据功能输入 : AT+CIPRXGET=1 多链接 (AT+CIPMUX=1) 时 : AT+CIPRXGET=<mode>,<n>[,< len>] 后续来数据会有 +IPRXGET:1 的 URC 上报 收到 +IPRXGET:1 输入以下命令来手动读取数据 : AT+CIPRXGET=2,<n>,<len> +CIPRXGET:2,<n>,<cnlen>,<rlen> 数据.. 第 243 页共 259 页 嵌入式 TCPIP 命令

查询命令 AT+CIPRXGET? 收到 +CIPRXGET:1 也可以 16 进制读取 : AT+CIPRXGET=3,<n>,<len> +CIPRXGET:3,<n>,<cnlen>,<rlen> 数据.. 查询还有多少数据未读 : AT+CIPRXGET=4,<n> +CIPRXGET:4,<n>,<rlen> +CIPRXGET:<mode> 测试命令 AT+CIPRXGET=? URC 上报 +IPRXGET:1 +IPRXGET:1,<n> 单链接, 设置 AT+CIPRXGET=1 后, 当收到网络数据时, 会有如此的 URC 上报, 表示收到数据 多链接, 设置 AT+CIPRXGET=1 后, 当收到网络数据时, 会有如此的 URC 上报, 表示收到数据 参数 定义 取值 对取值的说明 0 关闭手动获取网络数据功能 缺省值 1 开启手动获取网络数据功能 <mode> 模式 2 读取数据 3 读取数据 (16 进制 ) 4 还有多少数据未读 <n> 多链接时的 Link id 0-7 定义同 +CIPSTART 命令的 <n> <len> 将要读取的数据的长度 1-1460 普通字符方式读取时 1-730 HEX 方式读取时 <cnlen> 已经读取的数据 单位 : 字节 <rlen> 尚未读取的数据 单位 : 字节 举例 : 命令 ( ) / 返回 () 实例 解释和说明 单链接时如何手动读取网络数据 AT+CIPRXGET=1 开启手动获取网络数据功能 AT+CGREG? 查询当前 GPRS 注册状态 +CGREG: 0,1 <n>=0, 表示禁用 URC 上报 <stat>=1, 标识已经注册 GPRS 网络, 而且是本地网 第 244 页共 259 页 嵌入式 TCPIP 命令

AT+CIPSTART="TCP","36.9.88.120",6001 连接服务器 ( 单链接 ) (URC) CONNECT 已经连上了 (URC) +CIPRXGET: 1 服务器那边发数据过来了 AT+CIPRXGET=2,150 读取数据, 读 150 个字符, 以普通的字符的方式读取 +CIPRXGET: 2,10,0 1234567890 读到了 10 个数据 :1234567890, 还有 0 个数据未读取 AT+CIPRXGET=4 查询下还有多少数据未读 +CIPRXGET: 4,0 0 个未读 (URC) +CIPRXGET: 1 服务器那边又发数据过来了 AT+CIPRXGET=3,150 读取数据, 读 150 个字符, 以 HEX 的方式读取 +CIPRXGET: 3,5,0 读到了 5 个数据 :HELLO, 还有 0 个数据未读取 48454C4C4F 多链接时如何手动读取网络数据 AT+CIPRXGET=1 开启手动获取网络数据功能 AT+CIPMUX=1 AT+CSTT="CMNET" AT+CIICR AT+CIFSR AT+CIPSTART=3,"TCP","36.9.88.120",6001 建立多链接 (URC) 3, CONNECT (URC) +CIPRXGET: 1,3 id=3 的链接上, 收到服务器发来的数据 AT+CIPRXGET=2,3,10 读取链接 3 的数据, 读 10 个字符, 以普通的字符的 方式读取 +CIPRXGET: 2,3,5,0 在链接 3 上读取了 5 个字符 :AAAAA, 还有 0 个未读 AAAAA AT+CIPRXGET=4,3 查询下链接 3 还有多少数据未读 +CIPRXGET: 4,3,0 0 个未读 第 245 页共 259 页 嵌入式 TCPIP 命令

23.25 关闭 TCP 或 UDP 连接 :AT+CIPCLOSE 命令类型语法返回和说明 设置命令 单路连接时 AT+CIPCLOSE=<id> 多路连接时 AT+CIPCLOSE=<n>[,<id>] CLOSE <n>,close 执行命令 AT+CIPCLOSE 如果关闭成功, CLOSE 测试命令 注意事项 AT+CIPCLOSE=? 如果关闭失败, ERROR 执行命令只对单链接有效, 多链接模式下返回 ERROR 执行命令 AT+CIPCLOSE 只有在 TCP/UDP CONNECTING 或 CONNECT 状态下才会关闭连接, 否则会认为关闭失败返回 ERROR 单路连接模式下, 关闭后的状态为 IP CLOSE 参数定义取值对取值的说明 0 慢关 ( 缺省值 ) <id> 关闭模式 1 快关 <n> Link No. 0~7 整数型, 表示连接序号 23.26 关闭移动场景 :AT+CIPSHUT 命令类型语法返回和说明 执行命令 测试命令 注意事项 AT+CIPSHUT AT+CIPSHUT=? 如果关闭成功, SHUT 如果关闭失败, ERROR 可以用 AT+CIPSHUT 正常关闭移动场景, 关闭后状态为 IPINITIAL 多路连接时执行 AT+CIPSHUT, 所有的 IP 连接都将关闭 第 246 页共 259 页 嵌入式 TCPIP 命令

如果上报 +PDP:DEACT, 标识 GPRS 被网络释放, 此时仍然需要执行 AT+CIPSHUT 来改变状态 23.27 将模块配置为服务器 :AT+SERVER 命令类型语法返回和说明 设置命令 AT+CIPSERVER=<mode>[,<port>] 查询命令 测试命令 AT+CIPSERVER? AT+CIPSERVER=? +CIPSERVER: <mode>[,<port>,<channel id>,<bearer>] +CIPSERVER: (0-CLOSE SERVER, 1-OPEN SERVER),(1-65535) URC 注意事项 当 AT+CIPSERVER=<mode>[,<port>] 命令返回 后, 会 SERVER 有此 URC 上报在单链接模式下, 在 IP INITIAL 和 IP STATUS 下可以使用本设置命令 ; 在多连接模式下, 只有在 IP STATUS 可以使用本设置命令 参数定义取值对取值的说明 0 关闭 server 模式 <mode> server 模式是否开启 1 开启 server 模式 <port> 服务器监听端口 1~65535 <channel id> channel id <bearer> GPRS bearer 0 GPRS 23.28 TCP/UDP 错误码 在 TCP 应用过程中如果发生错误, 将会以 TCP ERROR:<err code> 形式上报 TCP 错误码 : 错误码 <err code> 中文释义 英文释义 0 成功 No error 1 TCPIP 线程没有被使用 TCPIP is idle 2 没有可用的 tsapi No tsapi 3 无效的 tsapi Invalid tsapi 4 空间不足 No buffer 5 网络错误 Network error 第 247 页共 259 页 嵌入式 TCPIP 命令

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 在 UDP 应用过程中如果发生错误, 将会以 UDP ERROR:<err code> 形式上报 UDP 错误码 : 错误码 <err code> 中文释义 英文释义 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 网络错误 Network error 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 23.29 状态机 当输入 TCPIP 相关命令以后, 模块的状态也会发生相应的迁移 查询状态的命令是 AT+CIPSTATUS 第 248 页共 259 页 嵌入式 TCPIP 命令

图 1 : 单链接时的状态机 关于单连接状态机的几点说明 : 输入 AT+CIICR, 会马上进入 IP CONFIG 状态, 当返回 后, 会进入到 IP GPRSACT 状态 ; 输入 AT+CIPSTART 后, 会立马进入 IP/UDP CONNECTING 状态, 如果后续模块上报 CONNECT 这个 URC, 表明连接服务器成功, 此时进入 CONNECT 状态 ; 输入 AT+CIPCLOSE 后, 立马进入 TCP/UDP CLOSING 状态, 此时如果模块上报 CLOSE, 则表明关闭与服务器的连接成功, 此时模块进入 TCP/UDP CLOSED 状态 ; 如果模块上报 +PDP DEACT 这个 URC, 则标志着模块释放 PDP 上下文, 并进入了 PDP DEACT 状态 ; 在 IP GPRSACT,IP STATUS,CONNECT 以及 TCP/UDP CLOSED 状态下, 输入 AT+CGATT=0, 则也可以使模块释放上下文, 进入 PDP DEACT 状态 ; 模块进入 PDP DEACT 状态, 仍需要输入 AT+CIPSHUT, 进入 IP INITIAL 状态 ; 模块在各个状态下均可以输入 AT+CIPSHUT, 进入 IP INITIAL 状态 第 249 页共 259 页 嵌入式 TCPIP 命令

图 2 : 多链接时的状态机 23.30 模块上电初始化以及 TCPIP 流程 见下图 : 第 250 页共 259 页 嵌入式 TCPIP 命令