sim900a各功能指令

上传人:小** 文档编号:89185543 上传时间:2019-05-20 格式:DOC 页数:16 大小:2.16MB
返回 下载 相关 举报
sim900a各功能指令_第1页
第1页 / 共16页
sim900a各功能指令_第2页
第2页 / 共16页
sim900a各功能指令_第3页
第3页 / 共16页
sim900a各功能指令_第4页
第4页 / 共16页
sim900a各功能指令_第5页
第5页 / 共16页
点击查看更多>>
资源描述

《sim900a各功能指令》由会员分享,可在线阅读,更多相关《sim900a各功能指令(16页珍藏版)》请在金锄头文库上搜索。

1、1 AT 指令简介关键词:发送第一条指令;同步波特率; AT 即 Attention,指令集是从终端设备 (TerminalEquipment, ATTE)或数据终端设备(DataTerminalEquipment, DTE)向终端适配器(TerminalAdapter, TA)或数据电路终端设备(DataCircuitTerminalEquipment, DCE)发送的。通过 TA, TE 发送 AT 指令来控制移动台(MobileStation, MS)的功能,与 GSM 网络业务进行交互。用户可以通过 AT 指令进行呼叫、短信、电话本、数据业务、传真等方面的控制。 AT 指令必须以AT或

2、at开头( 第一条发给模块的指令要都大写),以回车( )结尾。模块的响应通常紧随其后,格式为: 。 我们通过串口调试助手 SSCOM 来测试一下,打开:选择正确的 COM 号(连接到 SIM900A模块的 COM 端口,我电脑是 COM3),然后设置波特率为 115200, 勾选发送新行( 必选!即 sscom 自动添加回车换行功能),然后发送 AT 到 SIM900A 模块,如下图所示:我们发送了 2 次 AT 指令,第一次看到有乱码,这是因为模块上电后,还没有实现串口同步,在收到第一次数据(不一定要 AT 指令)后,模块会自动实现串口同步后续通信就不会出现乱码了。 因为 SIM900A 具

3、有自动串口波特率识别功能(识别范围: 1200115200),所以我们的电脑(或设备)可以随便选择一个波特率(不超过识别范围即可),来和模块进行通信,这里我们选择最快的 115200。从上图可以看出,我们现在已经可以和 SIM900A 模块进行通信了,我们通过发送不同的 AT 指令,就可以实现对 SIM900A 的各种控制了。 常用的 AT 指令:1, AT+CPIN? 该指令用于查询 SIM 卡的状态,主要是 PIN 码,如果该指令返回+CPIN:READY,则表明 SIM 卡状态正常,返回其他值,则有可能是没有 SIM 卡。2, AT+CSQ 该指令用于查询信号质量,返回 SIM900A

4、模块的接收信号强度,如返回+CSQ:30,0,表示信号强度是 30 (最大有效值是 31)。如果信号强度过低,则要检查天线是否接好了?3, AT+COPS? 该指令用于查询当前运营商,该指令只有在连上网络后,才返回运营商,否则返回空,如返回: +COPS:0,0,CHINAMOBILE,表示当前选择的运营商是中国移动。4, AT+CGMI 该指令用于查询模块制造商,如返回: SIMCOM_Ltd,说明 SIM900A 模块是 SIMCOM 公司生产的。5, AT+CGMM 该指令用于查询模块型号,如返回: SIMCOM_SIM900A,说明模块型号是SIM900A。6, AT+CGSN 该指令

5、用于查询产品序列号(即 IMEI 号),每个模块的 IMEI 号都是不一样的,具有全球唯一性,如返回: 869988012018905,说明模块的产品序列号是: 869988012018905。7, AT+CNUM 该指令用于查询本机号码,必须在 SIM 卡在位的时候才可查询,如返回:+CNUM:,15902020353,129,7,4,则表明本机号码为: 15902020353。另外,不是所有的 SIM卡都支持这个指令,有个别 SIM 卡无法通过此指令得到其号码。8, ATE1 该指令用于设置回显模式(默认开启),即模块将收到的 AT 指令完整的返回给发送端,启用该功能,有利于调试模块。如果

6、不需要开启回显模式,则发送 ATE0 指令即可关闭,这样收到的指令将不再返回给发送端,这样方便程序控制。发送给模块的指令,如果执行成功,则会返回对应信息和OK,如果执行失败/指令无效,则会返回ERROR。另外,提醒大家,所有的指令都必须是以 ASCII 编码字符格式发送,不要在指令里面夹杂中文符号。同时,很多指令都带有查询或提示功能,可以通过指令+?来查询当前设置,通过指令+=?的方式来获取设置提示。2 拨打/接听电话关键词:接打电话; DTMF; ATE1,用于设置回显,即模块将收到的指令完整的返回给发送设备,方便调试。 ATD,用于拨打任意电话号码,格式为: ATD+号码+;, 末尾的 ;

7、一定要加上,否则不能成功拨号, 如发送: ATD10086;,即可实现拨打 10086。 ATA,用于应答电话,当收到来电的时候,给模块发送: ATA,即可接听来电。 ATH,用于挂断电话,要想结束正在进行的通话,只需给模块发送: ATH,即可挂断。 AT+COLP,用于设置被叫号码显示,这里我们通过发送:AT+COLP=1,开启被叫号码显示,当成功拨通的时候(被叫接听电话),模块会返回被叫号码。 AT+CLIP,用于设置来电显示,通过发送: AT+CLIP=1,可以实现设置来电显示功能,模块接收到来电的时候,会返回来电号码。 AT+VTS=*,产生 DTMF 音,该指令只有在通话进行中才有效

8、,用于向对方发送 DTMF 音,比如在拨打 10086 查询的时候,我们可以通过发送:AT+VTS=1,模拟发送按键 1。 在介绍了本节要用到的几个 AT 指令之后,我们开始实现本节功能,不过有前提条件:那就是模块必须开机,并且找到了运营商。通过发送: AT+COPS?,如果返回:+COPS:0,0,CHINAMOBILE,则可以开始下面的测试了。2.1 拨打电话本节,我们将利用 SIM900A 模块来拨打 10086,并进行话费查询。首先发送: ATE1,设置回显,再发送: AT+COLP=1,设置被叫号码显示。如图下图所示:然后,我们发送: ATD10086; ,拨打 10086 ,在接通

9、后, SIM900A 模块返回:+COLP:10086,129,,此时,待一堆话结束后,我们发送: AT+VTS=1,即可查询本机电话号码。最后,通过发送: ATH,挂断,结束本次通话。查询话费余额至此,我们就完成了一次拨号、发送 DTMF 音、结束通话的操作。十分简单,所以用 SIM900A 模块来实现打电话,那实在是小菜一碟。2.2 接听电话首先,我们发送: AT+CLIP=1,开启来电显示功能,然后我们用其他电话机/手机拨打模块上 SIM 卡的号码。然后,模块在接收到来电的时候,会通过耳机输出来电铃声,并且可以在串口接收到来电号码,如:+CLIP:15124532672,161,aili

10、n,0,表示当前接入号码为:15124532672。此时,我们发送:ATA,即可接听来电,并进行通话。当对方挂断电话的时候, SIM900A 模块会返回: NOCARRIER,并结束此次通话。当然,我们也可以通过发送: ATH,来主动结束通话。2.3 短信的读取与发送AT+CNMI,用于设置新消息指示。发送: AT+CNMI=2,1,设置新消息提示,当收到新消息,且 SIM 卡未满的时候, SIM900A 模块会返回数据给串口,如: +CMTI:SM,2,表示收到接收到新消息,存储在 SIM卡的位置 2;存满了就不会提示,可以通过删除短信来解决。AT+CMGF,用于设置短消息模式, SIM90

11、0A 支持 PDU 模式和文本( TEXT)模式等 2 种模式,发送:AT+CMGF=1,即可设置为文本模式。 AT+CSCS,用于设置 TE 字符集,默认的为 GSM7 位缺省字符集,在发送纯英文短信的时候,发送: AT+CSCS=GSM,设置为缺省字符集即可。在发送中英文短信的时候,需要发送: AT+CSCS=UCS2,设置为 16 位通用 8 字节倍数编码字符集。 AT+CSMP,用于设置短消息文本模式参数,在使用 UCS2 方式发送中文短信的时候,需要发送: AT+CSMP=17,167,2,25,设置文本模式参数。 AT+CMGR,用于读取短信,比如发送:AT+CMGR=1,则可以读

12、取 SIM 卡存储在位置 1 的短信。 AT+CMGS,用于发送短信,在GSM字符集下,最大可以发送 180 个字节的英文字符,在UCS2字符集下,最大可以发送 70 个汉字(包括字符/数字)。该指令我们在后面详细介绍。 AT+CPMS,用于查询/设置优选消息存储器,通过发送: AT+CPMS?,可以查询当前 SIM 卡最大支持多少条短信存储,以及当前存储了多少条短信等信息。如返回: +CPMS:用户手册SM,1,50,SM,1,50,SM,1,50,表示当前 SIM 卡最大存储 50 条信息,目前已经有 1 条存储的信息。2.4 英文短信的读取 本节,我们将用其他手机先发送一条英文短信到 S

13、IM900A 模块上,然后读取模块接收到的这条英文短信。 首先,我们发送: AT+CMGF=1,设置为文本模式,然后发送: AT+CSCS=GSM,设置GSM 字符集,然后发送: AT+CNMI=2,1,设置新消息提示。接着,我们用别的手机发送一条英文短信“ SIM900AModule”到我们的模块上(如果不知道模块号码,可以发送: AT+CNUM,查询模块号码)。模块接收到短信后,会提示如: +CMTI:SM,2,表明收到了新的短信,存放在 SIM 卡位置 2。然后,我们发送 AT+CMGR=2,即可读取该短信。注意:某些时候,模块收到了短信,但却不发送提示,原因是:模块存储容量有限,不能继

14、续存储短信。解决方法:可以删除一些短信,例如发送: AT+CMGD=1,删除全部短信命令。2.5 英文短信的发送 本节,我们将利用 SIM900A 模块来给指定手机号码发送一条英文短信。这里,我们用到 AT+CMGS 指令来发送短信,发送全英文/数字短信的时候,我们先设置为: GSM字符集( AT+CSCS=GSM),文本模式( AT+CMGF=1)假设我们要给手机号:。 15124532672,发送一条短信,则发送: AT+CMGS=15124532672,然后模块返回: ,此时我们输入我们需要发送的内容: SIM900A TEST,注意,此可以不用发送回车了。在发送完内容以后,最后以十六进

15、制(HEX)格式单独发送: 1A(即 0X1A),即可启动一次短信发送.注 1: 0X1A,“ CTRL+Z”的键值,即用于告诉 SIM900A,要执行发送操作。另外还可以发送: 0X1B,即“ ESC”的键值,用于告诉 SIM900A, 取消本次操作,不执行发送。稍等片刻,在短信成功发送后,模块返回如: +CMGS:156,的确认信息,表示短信成功发送, 其中 156 为模块内部的短信计数器,一般不用理会。2.6 中英文短信的发送 本节,我们将利用 SIM900A 模块来给指定手机号码发送一条中英文短信。同样,我们用到 AT+CMGS 指令来发送中英文短信。还是采用文本模式发送,发送步骤如下:首先,发送: AT+CMGF=1,设置为文本模式。然后,发送: AT+CSMP=17,167,2,25,设置文本模式参数。最后发送: AT+CSCS=UCS2,设置为 UCS2 编码字符集。此时,我们便可以发送 AT+CMGS 指令来发送中英文短信了,不过由于使用了 UCS2 字符集,所有字符/数

展开阅读全文
相关资源
相关搜索

当前位置:首页 > 商业/管理/HR > 管理学资料

电脑版 |金锄头文库版权所有
经营许可证:蜀ICP备13022795号 | 川公网安备 51140202000112号