SIM900A-各功能指令-详细版

整理文档很辛苦,赏杯茶钱您下走!

免费阅读已结束,点击下载阅读编辑剩下 ...

阅读已结束,您可以下载文档离线阅读编辑

资源描述

1AT指令简介关键词:发送第一条指令;同步波特率;AT即Attention,指令集是从终端设备(TerminalEquipment,ATTE)或数据终端设备(DataTerminalEquipment,DTE)向终端适配器(TerminalAdapter,TA)或数据电路终端设备(DataCircuitTerminalEquipment,DCE)发送的。通过TA,TE发送AT指令来控制移动台(MobileStation,MS)的功能,与GSM网络业务进行交互。用户可以通过AT指令进行呼叫、短信、电话本、数据业务、传真等方面的控制。AT指令必须以AT或at开头(第一条发给模块的指令要都大写),以回车(CR)结尾。模块的响应通常紧随其后,格式为:回车换行响应内容回车换行。我们通过串口调试助手SSCOM来测试一下,打开:选择正确的COM号(连接到SIM900A模块的COM端口,我电脑是COM3),然后设置波特率为115200,勾选发送新行(必选!即sscom自动添加回车换行功能),然后发送AT到SIM900A模块,如下图所示:我们发送了2次AT指令,第一次看到有乱码,这是因为模块上电后,还没有实现串口同步,在收到第一次数据(不一定要AT指令)后,模块会自动实现串口同步后续通信就不会出现乱码了。因为SIM900A具有自动串口波特率识别功能(识别范围:1200~115200),所以我们的电脑(或设备)可以随便选择一个波特率(不超过识别范围即可),来和模块进行通信,这里我们选择最快的115200。从上图可以看出,我们现在已经可以和SIM900A模块进行通信了,我们通过发送不同的AT指令,就可以实现对SIM900A的各种控制了。SIM900A模块提供的AT命令包含符合GSM07.05、GSM07.07和ITU-TRecommendationV.25ter的指令,以及SIMCOM自己开发的指令。接下来我们介绍几个常用的AT指令:1,AT+CPIN?该指令用于查询SIM卡的状态,主要是PIN码,如果该指令返回:+CPIN:READY,则表明SIM卡状态正常,返回其他值,则有可能是没有SIM卡。2,AT+CSQ该指令用于查询信号质量,返回SIM900A模块的接收信号强度,如返回:+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该指令用于查询产品序列号(即IMEI号),每个模块的IMEI号都是不一样的,具有全球唯一性,如返回:869988012018905,说明模块的产品序列号是:869988012018905。7,AT+CNUM该指令用于查询本机号码,必须在SIM卡在位的时候才可查询,如返回:+CNUM:,15902020353,129,7,4,则表明本机号码为:15902020353。另外,不是所有的SIM卡都支持这个指令,有个别SIM卡无法通过此指令得到其号码。8,ATE1该指令用于设置回显模式(默认开启),即模块将收到的AT指令完整的返回给发送端,启用该功能,有利于调试模块。如果不需要开启回显模式,则发送ATE0指令即可关闭,这样收到的指令将不再返回给发送端,这样方便程序控制。以上就是我们介绍的几个常用的AT指令,当然还有其他一些常用的AT指令,比如ATD/ATA/ATH等,我们在后面的章节会慢慢介绍。关于SIM900A详细的AT指令介绍,SIM900A_AT命令手册这个文档。发送给模块的指令,如果执行成功,则会返回对应信息和OK,如果执行失败/指令无效,则会返回ERROR。另外,提醒大家,所有的指令都必须是以ASCII编码字符格式发送,不要在指令里面夹杂中文符号。同时,很多指令都带有查询或提示功能,可以通过指令+?来查询当前设置,通过指令+=?的方式来获取设置提示。2拨打/接听电话关键词:接打电话;DTMF;本节,我们将介绍如何使用SIM900A模块进行拨打和接听电话。本节,将要用到的指令有:ATE1/ATD/ATA/ATH/AT+COLP/AT+CLIP/AT+VTS等7条AT指令。ATE1,用于设置回显,即模块将收到的指令完整的返回给发送设备,方便调试。ATD,用于拨打任意电话号码,格式为:ATD+号码+;,末尾的’;’一定要加上,否则不能成功拨号,如发送:ATD10086;,即可实现拨打10086。ATA,用于应答电话,当收到来电的时候,给模块发送:ATA,即可接听来电。ATH,用于挂断电话,要想结束正在进行的通话,只需给模块发送:ATH,即可挂断。AT+COLP,用于设置被叫号码显示,这里我们通过发送:AT+COLP=1,开启被叫号码显示,当成功拨通的时候(被叫接听电话),模块会返回被叫号码。AT+CLIP,用于设置来电显示,通过发送:AT+CLIP=1,可以实现设置来电显示功能,模块接收到来电的时候,会返回来电号码。AT+VTS=*,产生DTMF音,该指令只有在通话进行中才有效,用于向对方发送DTMF音,比如在拨打10086查询的时候,我们可以通过发送:AT+VTS=1,模拟发送按键1。在介绍了本节要用到的几个AT指令之后,我们开始实现本节功能,不过有前提条件:那就是模块必须开机,并且找到了运营商。通过发送:AT+COPS?,如果返回:+COPS:0,0,CHINAMOBILE,则可以开始下面的测试了。2.1拨打电话本节,我们将利用SIM900A模块来拨打10086,并进行话费查询。首先发送:ATE1,设置回显,再发送:AT+COLP=1,设置被叫号码显示。如图下图所示:然后,我们发送:ATD10086;,拨打10086,在接通后,SIM900A模块返回:+COLP:10086,129,,,此时,待一堆话结束后,我们发送:AT+VTS=1,即可查询本机电话号码。最后,通过发送:ATH,挂断,结束本次通话。查询话费余额至此,我们就完成了一次拨号、发送DTMF音、结束通话的操作。十分简单,所以用SIM900A模块来实现打电话,那实在是小菜一碟。2.2接听电话本节,我们将通过SIM900A模块实现电话接听。首先,我们发送:AT+CLIP=1,开启来电显示功能,然后我们用其他电话机/手机拨打模块上SIM卡的号码。然后,模块在接收到来电的时候,会通过耳机输出来电铃声,并且可以在串口接收到来电号码,如:+CLIP:15124532672,161,,,ailin,0,表示当前接入号码为:15124532672。此时,我们发送:ATA,即可接听来电,并进行通话。当对方挂断电话的时候,SIM900A模块会返回:NOCARRIER,并结束此次通话。当然,我们也可以通过发送:ATH,来主动结束通话。2.3短信的读取与发送本节,我们将介绍如何使SIM900A模块进行短信的读取与发送。本节,将要用到的指令有:AT+CNMI/AT+CMGF/AT+CSCS/AT+CSMP/AT+CMGR/AT+CMGS/AT+CPMS等7条AT指令。AT+CNMI,用于设置新消息指示。发送:AT+CNMI=2,1,设置新消息提示,当收到新消息,且SIM卡未满的时候,SIM900A模块会返回数据给串口,如:+CMTI:SM,2,表示收到接收到新消息,存储在SIM卡的位置2;存满了就不会提示,可以通过删除短信来解决。AT+CMGF,用于设置短消息模式,SIM900A支持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,则可以读取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英文短信的读取本节,我们将用其他手机先发送一条英文短信到SIM900A模块上,然后读取模块接收到的这条英文短信。首先,我们发送:AT+CMGF=1,设置为文本模式,然后发送:AT+CSCS=GSM,设置GSM字符集,然后发送:AT+CNMI=2,1,设置新消息提示。接着,我们用别的手机发送一条英文短信“SIM900AModule”到我们的模块上(如果不知道模块号码,可以发送:AT+CNUM,查询模块号码)。模块接收到短信后,会提示如:+CMTI:SM,2,表明收到了新的短信,存放在SIM卡位置2。然后,我们发送AT+CMGR=2,即可读取该短信。注意:某些时候,模块收到了短信,但却不发送提示,原因是:模块存储容量有限,不能继续存储短信。解决方法:可以删除一些短信,例如发送:AT+CMGD=1,删除全部短信命令。2.5英文短信的发送本节,我们将利用SIM900A模块来给指定手机号码发送一条英文短信。这里,我们用到AT+CMGS指令来发送短信,发送全英文/数字短信的时候,我们先设置为:GSM字符集(AT+CSCS=GSM),文本模式(AT+CMGF=1)假设我们要给手机号:。15124532672,发送一条短信,则发送:AT+CMGS=15124532672,然后模块返回:,此时我们输入我们需要发送的内容:SIM900ATEST,注意,此可以不用发送回车了。在发送完内容以后,最后以十六进制(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字符集,所有字符/数字/汉字,都必须使用UNICODE编码。假定我们要给手机号:15124532672,发送一条中英文短信,内容为“SIM900A中英文短信发送测试”。我们首先要用:汉字UNICODE互换工具.exe,这个软件将号码和发送内容转换为UNICODE字符串(需要手动去掉空格),得到:15124532672转换后的UNICODE字符串(去掉空格后)为:003100350031

1 / 18
下载文档,编辑使用

©2015-2020 m.777doc.com 三七文档.

备案号:鲁ICP备2024069028号-1 客服联系 QQ:2149211541

×
保存成功