短信通信的几种情况和CMS错误(转宋光辉的博客)

短信通信的几种情况和CMS错误(转宋光辉的博客)

1. 如何与GSM MODEM建立通信联系

2. 不能与GSM MODEM进行正常的通信或总是在仿真终端上出现乱码

3. 如何才能知道错误代码

4. 发送短消息后,收到出错信息+CMS ERROR 512

5. 发送短消息后,收到出错信息+CMS ERROR 513

6. 发送短消息后,收到出错信息+CMS ERROR 514

7. 发送短消息后,收到出错信息+CMS ERROR 515

8. 如何才能知道您发送的短消息已被送达目的号码

9. 如何发送中文短消息

10.如何建立一个话音呼叫

11.如何建立一个数据呼叫

12.当GSM MODEM作被叫时,如何显示主叫的电话号码

13.当GSM MODEM作被叫时,如何判别主叫发起的是话音、数据或传真呼叫

14.当GSM MODEM作被叫时,如何使其自动应答或不能自动应答

15.如何不通过SIM卡直接读或写短消息

1. 如何与GSM MODEM建立通信联系

您可用诸如Windows下的超级终端或Pcomm等终端仿真软件,将计算机的串行口与GSM MODEM的串行口用电缆直接连接。

2. 不能与GSM MODEM进行正常的通信或总是在仿真终端上出现乱码

检查您的串口是否保证正常连接,计算机的串口引线与GSM MODEM的串口引线应是一一对应的。GSM MODEM与仿真终端应设置相同的通信速率。

但您初次使用GSM MODEM时,请在仿真终端上设置为通信速率9600bps、8位数据位、无较验位、1位停止位。

3. 如果您想在出错后得到错误代码号,需将GSM Modem作如下设置:

AT+CMEE=1

4. 发送短消息后,收到出错信息+CMS ERROR 512

表示您的GSM MODEM在发送短消息的同时它收到了新的短消息,发送短消息被拒绝,您需要重新发送此条短消息。

5. 发送短消息后,收到出错信息+CMS ERROR 513

您遇上了下面问题中的一种:

a) 您的GSM MODEM失去了无线链路连接;

b) 在发送完短消息后的28秒内,您的GSM MODEM没有收到短消息中心送来的接收确认+CMGS:〈顺序号〉;

c) 在送出请求建立发送短消息的控制信道指令后的42秒内,您的GSM MODEM没有收到基站送来的确认〉。

6. 发送短消息后,收到出错信息+CMS ERROR 514

您遇上了下面问题中的一种:

a) 您设置的短消息中心的号码是错误的;

b) 短消息将要送达的目的号码是错误的;

c) 您发送的短消息被短消息中心拒绝(一般为目的号码不存在或目的号码被禁用)。

7. 发送短消息后,收到出错信息+CMS ERROR 515

如果您的GSM MODEM在初始化期间或在指令执行过程当中GSM MODEM又接受新的指令,将会出现此错误。您必须等到初始化完成或指令执行完毕。

8. 如何才能知道您发送的短消息已被送达目的号码

a) 采用文本格式发送

在您采用文本格式发送短消息时,您的GSM MODEM须作以下的设置:

at+csmp=49,〈X〉,〈X〉,〈X〉

at+cnmi=〈X〉,〈X〉,〈X〉,1,〈X〉

〈X〉代表根据您的需要您所选择的合适的参数。

当您发送完短消息后,您将收到来自短消息中心的以下两种确认中的一种:

+CDS:〈X〉,〈顺序号〉,"电话号码","发送时间","接收时间",0

或:

+CDS:〈X〉,〈顺序号〉,"电话号码","发送时间","接收时间",48

确认中的最后个数代表了此短消息的传输状态。(0表示已经送达目的号码,48表示不可能将此送达目的号码)

b) 采用PDU格式发送

在您采用PDU格式发送短消息时,您的GSM MODEM须作以下的设置:

at+cnmi=〈X〉,〈X〉,〈X〉,1,〈X〉

〈X〉代表根据您的需要您所选择的合适的参数。

在您所要发送的PDU格式的短消息中,您须将短消息中心号码后的第一个字节设成31

在发送完短消息后,您将收到来自短消息中心的以下确认:

+CDS:〈长度〉00〈PDU格式的确认信息〉

注意:在收到的PDU格式的确认中,顺序号和传输状态标志都是以16进制数存在的,您可将其直接转成10进制数而无需将其倒置后再转换。

9. 如何发送中文短消息

采用现有的GSM MODEM发送中文短消息,都必须先将准备发送的中文短消息转换成16位的Unicode编码。

A) 采用文本方式发送

在您采用文本格式发送Unicode编码中文短消息时,您的GSM MODEM须作的设置:

at+csmp=〈X〉,〈X〉,〈X〉,8

〈X〉代表根据您的需要您所选择的合适的参数。

然后您就可将转换好的Unicode编码中文短消息按照发送普通文本短消息的方法发送出去。

B) 采用PDU方式发送

您只须在您的PDU格式的短消息中,将目的号码字符串后的第二个字节设成08,将转

换好的Unicode编码中文短消息作为PDU中的发送内容一齐发送。

10. 如何建立一个话音呼叫

向GSM MODEM的串口送指令ATD〈电话号码〉;〈回车〉必须确认电话号码是一个话音号码而非传真或数据号码。

11. 如何建立一个数据呼叫

先将您的GSM MODEM作如下设置:

at+ipr=9600

at+ifc=2,2

at+cbst=0,0,1

向GSM MODEM的串口送指令ATD〈电话号码〉〈回车〉

必须确认电话号码是一个数据号码而非传真或话音号码,同时必须确认您的SIM卡已开通数据通信的服务。

12.当GSM MODEM作被叫时,如何显示主叫的电话号码

将您的GSM MODEM作如下设置:

at+clip=1

13.当GSM MODEM作被叫时,如何判别主叫发起的是话音、数据或传真呼叫

将您的GSM MODEM作如下设置:

at+crc=1

14.当GSM MODEM作被叫时,如何使其自动应答或不能自动应答

如果您想让您的GSM MODEM自动应答,将您的GSM MODEM作如下设置:

ats0=〈N〉 N是代表GSM MODEM震铃的次数的一个整数,即GSM MODEM在N 次 震铃后将自动应答。

如果您想让您的GSM MODEM不能自动应答,将您的GSM MODEM作如下设置:

ats0=0

15.如何不通过SIM卡直接读或写短消息

因为SIM卡只有1万到10万次的读写次数和10-15条短消息的存储空间,还涉及到SIM卡上短消息读写需要一定的时间才能完成。这些因素影响了许多应用,这些应用需要通过GSM网络进行大量的数据交换,为保证流程的顺利进行,SIM卡要完成大量的读、写和删除操作,SIM卡的寿命周期很快就会达到,此外,SIM卡完成这些工作所耗费的时间比外界要求的要多。为解决这些问题,有必要在终端上作一些软件设置,使短消息不通过SIM卡进行读写操作。

以下的描述介绍了如何采用这种方法在Falcom A2系列和数据终端MT4002之间不通过SIM卡交换数据,这种方法也可用与2个MT4002之间。

a) 串口上的从终端来的RTS信号可用来指示数据交换时隙是否忙,串口准备好接收数据

b) 如果终端双方都可用来接收和发送短消息,在设置时双方都要设同样的命令和常数。

在接收端,设命令AT+CNMI=2,2,0,0,0

在发送端,设命令AT+CSMP=17,167,0,240 (当使用PDU格式发送时,240改成字符串DCS(F0))

c) 当程序发现短消息以前缀+CMT后跟所传送的数据这种格式时,立即将此短消息捕获并将其分发到原定的地址。

d) 当发送端如果没有设置CSMP=17,167,0,240时,捕获到的短消息应有前缀+CMTI,此时用命令AT+CMGR=n读取并分发到原定的地址,随后用命令AT+CMGD=n将此短消息删除以保证SIM卡有足够多的空间。

AT+CMGC Send an SMS command(发出一条短消息命令)
AT+CMGD Delete SMS message(删除SIM卡内存的短消息)
AT+CMGF Select SMS message formate(选择短消息信息格式:0-PDU;1-文本)
AT+CMGL List SMS message from preferred store
    (列出SIM卡中的短消息PDU/text: 0/“REC UNREAD”-未读,1/“REC READ”-已读,
     2/“STO UNSENT”-待发,3/“STO SENT”-已发,4/“ALL”-全部的)
AT+CMGR Read SMS message(读短消息)
AT+CMGS Send SMS message(发送短消息)
AT+CMGW Write SMS message to memory(向SIM内存中写入待发的短消息)
AT+CMSS Send SMS message from storage(从SIN|M内存中发送短消息)
AT+CNMI New SMS message indications(显示新收到的短消息)
AT+CPMS Preferred SMS message storage(选择短消息内存)
AT+CSCA SMS service center address(短消息中心地址)
AT+CSCB Select cell broadcast messages(选择蜂窝广播消息)
AT+CSMP Set SMS text mode parameters(设置短消息文本模式参数)
AT+CSMS Select Message Service(选择短消息服务)


对短消息的控制共有三种模式:
Block Mode   基于AT命令的
   PDU Mode     基于AT命令的
   Text Mode    使用Block模式需要手机生产厂家提供驱动支持, 目前,PDU Mode 已取代 Block Mode, Text Mode比较简单,本文重点介绍模式PDU Mode,以西门子公司的产品TC35T为例。


TC35基本命令
1.设置短消息中心
    AT+CSCA=“+8613800270500”回车(具体的号码由当地的运营商决定。)
2.接收短消息
    +CMTI:“SM”,X (X表示接收短消息的SIM卡存储号码)
    AT+CMGR=X回车 (从X存储区读短消息)
    AT+CMGD=X回车 (从X存储区删除短消息)
3.发送短消息
    AT+CMGF=1回车(采用文本格式发送,如用PDU格式,则AT+CMGF=0) AT+CMGS=“+8613xxxxxxxxx”回车 >输入短消息。Crtl+Z结束并发送。
4.重要的指令
ATZ;E 回车 Echo OFF ATZ;E1回车 Echo ON AT+CREG?回车 回答x(X=2脱网,X=1注册,X=0状态不明) AT+COPS?回车 表示SIM卡是否被网络接受 AT+COPS=?回车 显示所有可用的网络。
5.建立语音呼叫
AT+CREG?回车(是否网络注册) ATD13xxxxxxxxx;回车(语音呼叫和数据呼叫建立的区别在于号码后所接的分号上)
6.改变并保存参数
AT+IPR=2400 回车(改变RS232口的速率至2400bps) AT&W 回车 (保存已改参数)
7.输入PIN码
AT+CPIN=“xxxx”

 
2.计算机与TC35T的通信
(1)RS232串口连接由于TC35T自带RS232串口线,故只需将其连接到计算机串口即可。打开超级终端,选择相应的串口,将端口参数设置为:速率—4800、奇偶校验位—无、数据位—8、停止位—1、流量控制—硬件。
(2)连接测试输入“AT”然后回车,屏幕上返回“OK”表明计算机与TC35T已连接成功,TC35T能够正常工作。这时就可以测试各类AT命令。
当测试命令“AT+CMGS=?”时,如果返回“OK”标明TC35T支持该指令。
该指令的完整语法如下:
如果此时TC35T处于PDU Mode(即“AT+CMGF?”返回“0”) AT+CMGS=PDU is given<^Z/ESC> 如果短消息发送成功,则返回“OK”,并显示信息号: +CMGS: [,] 如果短消息发送失败,则返回如下信息号: +CMS ERROR:
如果此时TC35T处于Text Mode(即“AT+CMGF?”返回“1”) AT+CMGS=[,toda]text is entered<^Z/ESC> 如果短消息发送成功,则返回“OK”,并显示信息号: +CMGS: [,] 如果短消息发送失败,则返回如下信息号: +CMS ERROR:
另外,由于使用的是TC35T,当有新的短消息到来时,需要TC35T产生提示,使用指令“AT+CNMI”。该指令的完整语法如下: AT+CNMI=[][,][,][,][,] 如果有新的短消息来到,则TC35T将自动返回下列提示: +CMTI: “SM”, 此时读出,然后用“AT+CMGR”指令即可读出短消息内容。
3.PDU数据格式分析:
例如,我们要将字符“Hi”字符发送到目的地“13823788935” PDU字符串为: 08 91 683108701305F0 11 00 0D 91 3128738839F5 00 00 00 02 C834
⑴08—短信息中心地址长度。指(91)+(683108701305F0)的长度。
⑵91—短信息中心号码类型。91是TON/NPI遵守International/E.164标准,指在号码前需加‘+’号;此外还有其它数值,但91最常用。
91—10010001 BIT No. 7 6 5 4 3 2 1 0
Name 1 数值类型 号码鉴别
数值类型(Type of Number):
000—未知,001—国际,010—国内,111—留作扩展;
号码鉴别(Numbering plan identification):
0000—未知,0001—ISDN/电话号码(E.164/E.163),1111—留作扩展;  
⑶683108701305F0—短信息中心号码。
由于位置上略有处理,实际号码应为:8613800731500(字母F是指长度减1)。这需要根据不同的地域作相应的修改。 ⑴、⑵、⑶通称短消息中心地址(Address of the SMSC)。 ⑷11—文件头字节。
11&h=00010001&b BIT No. 7 6 5 4 3 2 1 0
Name TP-RP TP-UDHI TP-SPR TP-VFP TP-RD TP-MTI &#118alue 0 0 0 1 0 0 0 1
应答路径—TP-RP(TP-Reply-Path):0—不设置;1—设置
用户数据头标识—TP-UDHL(TP-User-Data-Header-Indicator):
0—不含任何头信息; 1—含头信息
状态报告要求—TP-SPR(TP-Status-Report-Request):0—需要报告; 1—不需要报告
有效期格式—TP-VPF(TP-Validity-Period-Format):
00—不提供(Not present); 10—整型(标准);01—预留; 11—提供8位字节的一半(Semi-Octet Represented)
拒绝复制—TP-RD(TP-Reject-Duplicates):0—接受复制; 1—拒绝复制
信息类型提示—TP-MTI(TP-Message-Type-Indicator):00—读出(Deliver); 01—提交(Submit)
⑸00—信息类型(TP-Message-Reference)
⑹0B—被叫号码长度。
⑺91—被叫号码类型(同⑵)。
⑻3128738839F5—被叫号码,经过了位移处理,实际号码为“13823788935”。
⑹、⑺、⑻通称目的地址(TP-Destination-Address)。
⑼00—协议标识TP-PID(TP-Protocol-Identifier)
BIT No. 7 6 5 4 3 2 1 0
Bit No.7与Bit No.6: 00—如下面定义的分配Bit No.0—Bit No.5;01—参见GSM03.40协议标识完全定义;10—预留;11—为服务中心(SC)特殊用途分配Bit No.0—Bit No.5。一般将这两位置为00。 Bit No.5:0—不使用远程网络,只是短消息设备之间的协议;1—使用远程网络。
Bit No.0—Bits No.4:
00000—隐含;00001—电传;00010—group 3 telefax;00100—语音;00101—欧洲无线信息系统(ERMES);00110—国内系统;10001—任何基于X.400的公用信息处理系统;10010—Email。
⑽00—数据编码方案TP-DCS(TP-Data-Coding-Scheme)
BIT No. 7 6 5 4 3 2 1 0
Bit No.7与Bit No.6 :一般设置为00;
Bit No.5:0—文本未压缩,1—文本用GSM标准压缩算法压缩;
Bit No.4:0—表示Bit No.1、Bit No.0为保留位,不含信息类型信息,1—表示Bit No.1、Bit No.0含有信息类型信息;
Bit No.3与Bit No.2:00—默认的字母表,01—8bit,10—USC2(16bit),11—预留;Bit No.1与Bit No.0:00—Class 0,01—Class 1,10—Class 2(SIM卡特定信息),11—Class 3。
⑾00—有效期TP-VP(TP-Valid-Period)
VP &#118alue(&h) 相应的有效期 00 to 8F (VP+1)*5 分钟 90 to A7 12小时+(VP-143)*30分钟 A8 to C4 (VP-166)*1天 C5 to FF (VP-192)*1 周
⑿02—用户数据长度TP-UDL(TP-User-Data-Length)
⒀C834—用户数据TP-UD(TP-User-Data)
“Hi” 4.短消息编码设需要发送的短消息内容为“Hi”,使用的GSM字符集为7位编码。首先将字符转换为7位的二进制,然后,将后面字符的位调用到前面,补齐前面的差别。
例如:H翻译成1001000,i翻译成1101001,显然H的二进制编码不足八位,那么就将i的最后一位补足到H的前面。那么就成了11001000(C8),i剩下六位110100,前面再补两个0,变成00110100(34),于是“Hi”就变成了两个八进制数 C8 34。
5.短消息的发送与接收案例鉴于TC35(T)支持TEXT格式,我们在试验中主要测试该格式。
(1)设置短消息中心 AT+CSCA="+8613800731500"(短消息中心);
(2)设置短消息发送格式 AT+CMGF=1 (1-TEXT; 0-PDU);
(3)发送短消息(短消息内容为“test”) AT+CMGS="13823788935"(目的地址) > test ^z ;
(4)设置短消息到达自动提示: 设置短消息到达提示当短消息被接收,将获取指令: +CMTI:"SM",INDEX(信息存储位置) AT+CNMI=1,1,0,0,1();
(5)获取短消息内容(Once more),假设INDEX=8。 AT+CMGR=8 返回信息如下: +CMGR: "REC UNREAD","+8613823788935",,"01/07/16,15:37:28+32",Once more 6.注意事项 (1)短消息中心一般不会改动,如果短消息中心号码改动,在使用“AT+CSCA”语句时,记住TC35要重新启动,否则TC35不能正常工作(TC35T不存在此问题)。(
2)某些SIM卡带有密码,启动时需要输入密码。

你可能感兴趣的:(短息猫相关指令)