AT指令集及其通信测试方式
1 前言
AT即Attention,AT指令集是从终端设备(Terminal Equipment,TE)向终端适配器(Terminal Adapter, TA)发送的。通过TA,TE发送AT指令来控制移动台的功能,与GSM等网络业务进行交互。用户可以通过AT指令进行呼叫、短信、电话本、数据业务、传真等方面的控制。
2 通信协议
2.1 术语
GSM模块
GSM模块是一个类似于手机的通讯模块,集成了手机的若干功能于一块小电路板上,它可以发送短消息,通话等,GSM模块通过使用AT指令才能控制它,模块可以与电脑RS232串口相连,也可以用单片机来进行控制。
2.2 通信接口
支持RS232串行接口。
2.3 AT指令
一般来讲,AT命令包括四种类型,如表所示。
2.3.1 AT指令语法
1)以“AT”或“at”为前缀,以结尾,方括号中的值为缺省值。
2)选配参数和必配参数必须按照规定的顺序排列,各参数间必须用逗号隔开。
举例:AT+CPWD=<fac>,<oldpwd>,<newpwd>。
3)如果某参数是字符串(比如:<number>),该字符串必须放在双引号中。
举例:“12345”、“cmnet”,双引号中的各项符号可看作是字符串。
4)命令的可选子参数或 TA 返回结果的可选部分位于方括号中。
5)不使用双引号时,字符串中各字符间的空格可忽略不计。
6)实际使用中<>和[]不必输入。
7)所有AT命令本身不区分大小写,但其参数对大小写敏感。
2.3.2 AT指令集
一、一般命令
AT+CGMI |
给出模块厂商的标识。 SONY ERICSSON |
AT+CGMM |
获得模块标识。这个命令用来得到支持的频带(GSM900,DCS1800或PCS1900)。当模块有多频带时,回应可能是不同频带的结合。 AAB-1021011-CN |
AT+CGMR |
获得改订的软件版本。 R6C005 CXC125582CHINA1 |
AT+CGSN |
获得GSM模块的IMEI(国际移动设备标识)序列号。351254004238596 |
AT+CSCS |
选择TE特征设定。这个命令报告TE用的是哪个状态设定上的ME。ME于是可以转换每一个输入的或显示的字母。这个是用来发送、读取或者撰写短信。 |
AT+WPCS |
设定电话簿状态。这个特殊的命令报告通过TE电话簿所用的状态的ME。ME于是可以转换每一个输入的或者显示的字符串字母。这个用来读或者写电话簿的入口。 |
AT+CIMI |
获得IMSI。这命令用来读取或者识别SIM卡的IMSI(国际移动签署者标识)。在读取IMSI之前应该先输入PIN(如果需要PIN的话)。 |
AT+CCID |
获得SIM卡的标识。这个命令使模块读取SIM卡上的EF-CCID文件。 |
AT+GCAP |
获得能力表。(支持的功能)+GCAP: +FCLASS, +CGSM, +DS |
A/ |
重复上次命令。只有A/命令不能重复。这命令重复前一个执行的命令。 |
AT+CPOF |
关机。这个特殊的命令停止GSM软件堆栈和硬件层。命令AT+CFUN=0的功能与+CPOF相同。 |
AT+CFUN |
设定电话机能。这个命令选择移动站点的机能水平。 |
AT+CPAS |
返回移动设备的活动状态。 |
AT+CMEE |
报告移动设备的错误。这个命令决定允许或不允许用结果码“+CMEERROR:”或者“+CMSERROR:”代替简单的“ERROR”。 |
AT+CKPD |
小键盘控制。仿真ME小键盘执行命令。 |
AT+CCLK |
时钟管理。这个命令用来设置或者获得ME真实时钟的当前日期和时间。 |
AT+CALA |
警报管理。这个命令用来设定在ME中的警报日期/时间。(闹铃) |
AT+CRMP |
铃声旋律播放。这个命令在模块的蜂鸣器上播放一段旋律。有两种旋律可用:到来语音、数据或传真呼叫旋律和到来短信声音。 |
AT+CRSL |
设定或获得到来的电话铃声的声音级别。NONE |
二、呼叫控制命令
ATD |
拨号命令。这个命令用来设置通话、数据或传真呼叫。 |
ATH |
挂机命令。 |
ATA |
接电话。 |
AT+CEER |
扩展错误报告。这个命令给出当上一次通话设置失败后中断通话的原因。 |
AT+VTD |
给用户提供应用GSM网络发送DTMF(双音多频)双音频。这个命令用来定义双音频的长度(默认值是300毫秒)。 |
AT+VTS |
给用户提供应用GSM网络发送DTMF双音频。这个命令允许传送双音频。 |
ATDL |
重拨上次电话号码。 |
AT%Dn |
数据终端就绪(DTR)时自动拨号。 |
ATS0 |
自动应答。 |
AT+CICB |
来电信差。 |
AT+CSNS |
单一编号方案。 |
AT+VGR |
增益控制。这个命令应用于调节喇叭的接收增益和麦克风的传输增益。 |
AT+CMUT |
麦克风静音控制。 |
AT+SPEAKER |
喇叭/麦克风选择。这个特殊命令用来选择喇叭和麦克风。 |
AT+ECHO |
回音取消。 |
AT+SIDET |
侧音修正。 |
AT+VIP |
初始化声音参数。 |
AT+DUI |
用附加的用户信息拨号。 |
AT+HUI |
用附加的用户信息挂机。 |
AT+RUI |
接收附加用户信息。 |
三、网络服务命令
AT+CSQ |
信号质量。+CSQ: 17,99 |
AT+COPS |
服务商选择。 |
AT+CREG |
网络注册。获得手机的注册状态。 |
AT+WOPN |
读取操作员名字。NONE |
AT+CPOL |
优先操作员列表。NONE |
四、安全命令
AT+CPIN |
输入PIN。 |
AT+CPIN2 |
输入PIN2。 |
AT+CPINC |
PIN的剩余的尝试号码。 |
AT+CLCK |
设备锁。 |
AT+CPWD |
改变密码。 |
五、电话簿命令
AT+CPBS |
选择电话簿记忆存储。 |
AT+CPBR |
读取电话簿表目。 |
AT+CPBF |
查找电话簿表目。 |
AT+CPBW |
写电话簿表目。 |
AT+CPBP |
电话簿电话查询。 |
AT+CPBN |
电话簿移动动作。这个特殊命令使电话簿中的条目前移或后移(按字母顺序) |
AT+CNUM |
签署者号码。 |
AT+WAIP |
防止在下一次重起时初始化所有的电话簿。 |
AT+WDCP |
删除呼叫电话号码。NONE |
AT+CSVM |
设置语音邮件号码。 |
六、短消息命令
AT+CSMS |
选择消息服务。支持的服务有GSM-MO、SMS-MT、SMS-CB。 |
AT+CNMA |
新信息确认应答。 |
AT+CPMS |
优先信息存储。这个命令定义用来读写信息的存储区域。 |
AT+CMGF |
优先信息格式。执行格式有TEXT方式和PDU方式。 |
AT+CSAS |
保存设置。保存+CSAS和+CSMP的参数。 |
AT+CRES |
恢复设置。 |
AT+CSDH |
显示文本方式的参数。 |
AT+CNMI |
新信息指示。这个命令选择如何从网络上接收短信息。 |
AT+CMGR |
读短信。信息从+CPMS命令设定的存储器读取。 |
AT+CMGL |
列出存储的信息。 |
AT+CMGS |
发送信息。 |
AT+CMGW |
写短信息并存储。 |
AT+CMSS |
从存储器中发送信息。 |
AT+CSMP |
设置文本模式的参数。 |
AT+CMGD |
删除短信息。删除一个或多个短信息。 |
AT+CSCA |
短信服务中心地址。 |
AT+CSCB |
选择单元广播信息类型。 |
AT+WCBM |
单元广播信息标识。 |
AT+WMSC |
信息状态(是否读过、是否发送等等)修正。 |
AT+WMGO |
信息覆盖写入。 |
AT+WUSS |
不改变SMS状态。在执行+CMGR或+CMGL后仍保持UNREAD。 |
七、追加服务命令
AT+CCFC |
呼叫继续。 |
AT+CLCK |
呼叫禁止。 |
AT+CPWD |
改变追加服务密码。 |
AT+CCWA |
呼叫等待。 |
AT+CLIR |
呼叫线确认限制。 |
AT+CLIP |
呼叫线确认陈述。 |
AT+COLP |
联络线确认陈述。 |
AT+CAOC |
费用报告。 |
AT+CACM |
累计呼叫计量。 |
AT+CAMM |
累计呼叫计量最大值。 |
AT+CPUC |
单价和货币表。 |
AT+CHLD |
呼叫相关的追加服务。 |
AT+CLCC |
列出当前的呼叫。 |
AT+CSSN |
追加服务通知。 |
AT+CUSD |
无组织的追加服务数据。 |
AT+CCUG |
关闭的用户组。 |
八、数据命令
AT+CBST |
信差类型选择。 |
AT+FCLASS |
选择模式。这个命令把模块设置成数据或传真操作的特殊模式。 |
AT+CR |
服务报告控制。这个命令允许更为详细的服务报告。 |
AT+CRC |
划分的结果代码。这个命令在呼叫到来时允许更为详细的铃声指示。 |
AT+ILRR |
本地DTE-DCE速率报告。 |
AT+CRLP |
无线电通信线路协议参数。 |
AT+DOPT |
其他无线电通信线路参数。 |
AT%C |
数据压缩选择。 |
AT+DS |
是否允许V42二度数据压缩。 |
AT+DR |
是否报告V42二度数据压缩。 |
AT\N |
数据纠错选择。 |
九、传真命令
AT+FTM |
传送速率。 |
AT+FRM |
接收速率 |
AT+FTH |
用HDLC协议设置传真传送速率。 |
AT+FRH |
用HDLC协议设置传真接收速率。 |
AT+FTS |
停止特定时期的传送并等待。 |
AT+FRS |
接收沉默。 |
十、第二类传真命令
AT+FDT |
传送数据。 |
AT+FDR |
接收数据。 |
AT+FET |
传送页标点。 |
AT+FPTS |
页转换状态参数。 |
AT+FK |
终止会议。 |
AT+FBOR |
页转换字节顺序。 |
AT+FBUF |
缓冲大小报告。 |
AT+FCQ |
控制拷贝质量检验。 |
AT+FCR |
控制接收传真的能力。 |
AT+FDIS |
当前会议参数。 |
AT+FDCC |
设置DCE功能参数。 |
AT+FLID |
定义本地ID串。 |
AT+FPHCTO |
页转换超时参数。 |
十一、V24-V25命令
AT+IPR |
确定DTE速率。 |
AT+ICF |
确定DTE-DCE特征结构。 |
AT+IFC |
控制DTE-DCE本地流量。 |
AT&C |
设置DCD(数据携带检测)信号。 |
AT&D |
设置DTR(数据终端就绪)信号。 |
AT&S |
设置DST(数据设置就绪)信号。 |
ATO |
回到联机模式。 |
ATQ |
决定手机是否发送结果代码。 |
ATV |
决定DCE响应格式。 |
ATZ |
恢复为缺省设置。 |
AT&W |
保存设置。 |
AT&T |
自动测试。 |
ATE |
决定是否回显字符。 |
AT&F |
回到出厂时的设定。 |
AT&V |
显示模块设置情况。 |
ATI |
要求确认信息。这命令使GSM模块传送一行或多行特定的信息文字。 |
AT+WMUX |
数据/命令多路复用。 |
十二、特殊AT命令
AT+CCED |
电池环境描述。 |
AT+CCED |
自动RxLev指示。 |
AT+WIND |
一般指示。 |
AT+ALEA |
在ME和MSC之间的数据密码模式。 |
AT+CRYPT |
数据密码模式。 |
AT+EXPKEY |
键管理。 |
AT+CPLMN |
在PLMN上的信息。 |
AT+ADC |
模拟数字转换度量。 |
AT+CMER |
移动设备事件报告。这个命令决定是否允许在键按下时是否主动发送结果代码。 |
AT+WLPR |
读取语言偏好。 |
AT+WLPW |
写语言偏好。 |
AT+WIOR |
读取GPIO值。 |
AT+WIOW |
写GPIO值。 |
AT+WIOM |
输入/输出管理。 |
AT+WAC |
忽略命令。这个特殊命令允许忽略SMS、SS和可用的PLMN。 |
AT+WTONE |
播放旋律。 |
AT+WDTMF |
播放DTMF旋律。 |
AT+WDWL |
下载模式。 |
AT+WVR |
配置信差的声音速率。 |
AT+WDR |
配置数据速率。 |
AT+WHWV |
显示硬件的版本。 |
AT+WDOP |
显示产品的出厂日期。 |
AT+WSVG |
声音增益选择。 |
AT+WSTR |
返回指定状态的状态。 |
AT+WSCAN |
扫描。 |
AT+WRIM |
设置或返回铃声指示模式。 |
AT+W32K |
是否允许32kHz掉电方式。 |
AT+WCDM |
改变缺省旋律。 |
AT+WSSW |
显示内部软件版本。 |
AT+WCCS |
编辑或显示订制性质设置表。 |
AT+WLCK |
允许在特定的操作符上个性化ME。 |
AT+CPHS |
设置CPHS命令。 |
AT+WBCM |
电池充电管理。 |
AT+WFM |
特性管理。是否允许模块的某些特性,如带宽模式、SIM卡电压等。 |
AT+WCFM |
商业特性管理。是否允许Wavecom特殊特性。 |
AT+WMIR |
允许从当前存储的参数值创建定制的存储镜像。 |
AT+WCDP |
改变旋律的缺省播放器。 |
AT+WMBN |
设置SIM卡中的不同邮箱号码。 |
十三、SIM卡工具箱命令
AT+STSF |
配置工具箱实用程序。 |
AT+STIN |
工具箱指示。 |
AT+STGI |
获得从SIM卡发来的预期命令的信息。 |
AT+STCR |
主动提供的结果:工具箱控制反应。 |
AT+STGR |
给出响应。允许程序或用户从主菜单上选择项目,或响应某些命令。 |
3 测试项目编制
3.1 协议项编制
利用格西调试精灵软件的直接激励功能,根据AT指令的格式进行协议编辑。
AT指令模版
3.2 测试用例编制
测试用例(Test Case)是为某个特殊目标而编制的一组测试输入、执行条件以及预期结果,以便测试某个程序路径或核实是否满足某个特定需求。通信协议测试属于黑盒测试,可以采用黑盒测试常用的等价类划分法、边界值分析法、错误推测法、因果图法等基本方法来设计测试用例。
测试方案设计完成后,格西调试精灵软件能够利用编制完成的公共协议库,采用搭积木的方式,通过复制和粘贴命令即可非常快捷的创建测试用例。测试用例的组织方式通常是根据测试方案的设计层次采用树形结构分类组织。
4 应用实例
4.1 AT指令发送英文短消息
利用格西调试精灵软件的直接激励功能,根据AT指令发送英文短消息,选择Text模式。
AT指令发送英文短信息
AT指令集及其通信测试方式的更多相关文章
- 关于CPU、指令集、架构、芯片的一些科普
作者:王强链接:https://zhuanlan.zhihu.com/p/19893066来源:知乎 随着智能设备的广泛普及,这几年媒体上越来越多的出现关于"架构""AR ...
- 用 Lua 实现一个微型虚拟机-基本篇
用 Lua 实现一个微型虚拟机-基本篇 目录 介绍 机器指令模拟 最终核心代码 虚拟机内部状态可视化 完整项目代码 后续计划 参考 介绍 在网上看到一篇文章 使用 C 语言实现一个虚拟机, 这里是他的 ...
- [转帖]双剑合璧:CPU+GPU异构计算完全解析
引用自:http://tech.sina.com.cn/mobile/n/2011-06-20/18371792199.shtml 这篇文章写的深入浅出,把异构计算的思想和行业趋势描述的非常清楚,难得 ...
- SSE指令集学习:Compiler Intrinsic
大多数的函数是在库中,Intrinsic Function却内嵌在编译器中(built in to the compiler). 1. Intrinsic Function Intrinsic Fun ...
- ARM-汇编指令集(总结)
ARM汇编指令集 指令.伪指令 (汇编)指令: 是机器码的助记符,经过汇编器编译后,由CPU执行. (汇编)伪指令:用来指导指令执行,是汇编器的产物,最终不会生成机器码. 有两种不同风格的ARM指 ...
- Arduino下LCD1602综合探究(上)——1602的两种驱动方式,如何使LCD的控制编程变得更简单
一.前言: LCD ( Liquid Crystal Display 的简称)液晶显示器,已经逐渐替代CRT成为主流的显示设备之一,因此也成为了单片机发烧友绕不过的话题之一:而LCD1602更是很多单 ...
- Android动态方式破解apk进阶篇(IDA调试so源码)
一.前言 今天我们继续来看破解apk的相关知识,在前一篇:Eclipse动态调试smali源码破解apk 我们今天主要来看如何使用IDA来调试Android中的native源码,因为现在一些app,为 ...
- JVM体系结构与工作方式
JVM全程是java virtual machine(java虚拟机). 以计算为中心来看计算机的体系结构可以分为以下几个部分: 1.指令集:这个计算机所能识别的机器语言的命令集合; 2.计算单元:能 ...
- Linux Systemcall Int0x80方式、Sysenter/Sysexit Difference Comparation
目录 . 系统调用简介 . Linux系统调用实现方式的演进 . 通过INT 0x80中断方式进入系统调用 . 通过sysenter指令方式直接进入系统调用 . sysenter/sysexit编程示 ...
随机推荐
- 循序渐进BootstrapVue,开发公司门户网站(4)--- 使用b-carousel-slide组件实现图片轮播以及vue-awesome-swiper实现图片滑动展示
在BootstrapVue组件库里面,提供了很多对Bootstrap同等类似的组件封装,其中图片轮播可以采用b-carousel-slide组件实现,而有一些小的图片,如客户/合作伙伴Logo或者友情 ...
- linux 下安装 docker 环境
一分钟了解 Docker Docker 是一个开源的应用容器引擎,基于 Go 语言 并遵从Apache2.0协议开源.Docker 可以让开发者打包他们的应用以及依赖包到一个轻量级.可移植的容器中,然 ...
- 单元测试布道二:在全新的 DDD 架构上进行单元测试
目录 回顾 dotnet 单元测试相关的工具和知识 可测试性 不确定性/未决行为 依赖于实现:不可 mock 复杂继承/高耦合代码:测试困难 实战:在全新的 DDD 架构上进行单元测试 需求-迭代1: ...
- SpringCloud入门及创建分布式项目
1.了解微服务 1.1 什么是微服务 微服务是一种架构风格 一个应用拆分为一组小型服务 每个服务运行在自己的进程内,也就是可独立部署和升级 服务之间使用轻量级HTTP交互 服务围绕业务功能拆分 可以由 ...
- Ubuntu配置apt安装源为清华源[含自动配置脚本]
Ubuntu配置apt安装源为清华源[含自动配置脚本] 一.备份原配置文件 Ubuntu 的软件源配置文件是/etc/apt/sources.list.将系统自带的该文件做个备份,以防万一. sudo ...
- 12、Linux磁盘设备基础知识(1)
GB TB PB EP ZB YB BB:
- AcWing 1273. 天才的记忆
从前有个人名叫 WNB,他有着天才般的记忆力,他珍藏了许多许多的宝藏. 在他离世之后留给后人一个难题(专门考验记忆力的啊!),如果谁能轻松回答出这个问题,便可以继承他的宝藏. 题目是这样的:给你一大串 ...
- 基于Yarp的http内网穿透库HttpMouse
简介 前几天发表了<基于Yarp实现内网http穿透>,当时刚刚从原理图变成了粗糙的代码实现,项目连名字都还没有,也没有开放源代码.在之后几天的时间,我不断地重构,朝着"可集成. ...
- Spring:在web.xml正确加载spring配置文件的方式
web.xml加载spring配置文件的方式主要依据该配置文件的名称和存放的位置不同来区别,目前主要有两种方式. 1. 如果spring配置文件的名称为applicationContext.xml,并 ...
- Quartz和Spring Task定时任务的简单应用和比较
看了两个项目,一个用的是Quartz写的定时器,一个是使用spring的task写的,网上看了2篇文章,写的比较清楚,这里做一下留存 链接一.菠萝大象:http://www.blogjava.net/ ...