动起始短消息传输与移动终接短报文传输是两回事。这并不阻碍实时对话,但系统认为不同的消息彼此独立,消息的传输总是由处于GSM外部的短消息服务中心(SMSC)进行中继,消息有目的地或起源地,但只与用户和SMSC有关,而与其他GSM基础设施无关。短消息提供了一种小数据量(不大于140个GSM短消息功能字节十六进制数)低成本、高可靠性的方便快捷通信方式。它是利用GSM系统通信令信道的空闲带宽,在电话拨号的同时,把消息发送到GSM的基站,再由短信中心处理存储发送到接收方。发送方不须等待接收方准备就绪,只要和基站联络好即可发送短信,基站收到后会自动与发送方确认,再发送给接收方确认,发送短消息的费用很低。正常情况下完成一次短信的发送时间大约20秒,但短信中心在向下发送时如遇基站忙,将把短信推后发送,头一次是几分钟,越往后推迟时间越长,因此在利用GSM发信时,要考虑畅通率与移动网业务是否繁忙有关,不过在大多数情况下畅通率可达98%,短消息能否成功发送还与终端所在地信号场强
【7】
有关。GSM通过话路在需要传输大量数据时十分适用,通过申请数据传输功能,可采用终端接GSM手机,中心可用普通电话机,一半是无线一半是有线的方式。 2.2.2 短消息的体系结构
GSM标准中定义的点一点短消息服务使得短消息能在移动台和短消息服务中心之间传递。这些服务中心是通过称为SMS—GMSC的特定MSC同GSM网络联系的。
涉及SMS管理的协议如图2—1所示
图2-1 涉及SMS管理的协议
SME:ShortMessagingEntity,短消息实体,它可以接收或改善短消息,位于固话系统、移动基站或其他服务中心内。
SMSC:ShortMessageServieeCenter..短消息服务中心,负责在基站和SME间中继、储存或转发短消息,移动台(ME)到SMSC的协议能传输来自移动台或朝向移动台的短消息,协议名为SMTP(Short Message Transmission Protoc01)。
SMCG咖S或SMCGMSC:SMS-Gateway MSC,SMS网关,接收由SMSC发送的短消息,向HLR查询路由信息,并将短消息传送给接收者所在基站的交换中心。.
HLR:Home Location Register,归属位置寄存器,用于永久储存管理用户和服务记录的数据库,由SMSC产生,SMS网关与HLR之间的协议使前者可以要求HLR搜索可找到的用户地址,它与MSC与HLR之间的协议一起,能在移动台因超出覆盖区而丢失报文,随后又可找到时加以提示。
MSC:Mobi le Switching Center,移动交换中心,负责系统切换管理并控制来自或发向其他电话或数据系统的拔叫。
VLR:Visitor Location Register,访问位置寄存器,含有用户临时信息的数据库,交换中心服务访问用户时需要这些信息。
GSM的短信息业务SMS利用信令信道传输,提供了一种有保证的双向服务,这是GSM通信网所特有的。它不用拨号建立连接,把要发的信息加上目的地址发送到短消息服务中心,经服务中心完成存储后再发送给最终的信宿。所以即使当目的GSM终端没开机时信息也不会丢失。发送方发出一条短消息后,得到一条传递成功或失败的消息,以及不可到达的原因。每个短消息的信息量限制为140字节。
目前GSM芯片和GSM收发模块的技术已经比较成熟,市场上也已经有现成的模块可供选用。这些芯片和模块一般都具备GSM无线通信的全部功能,提供标准的UART串行接口或是RS一232接口,支持GSM 07.05所定义的AT命令集的指令,很容易实现系统的集成,二次开发也比较方便。
2.3 GSM规定的AT指令集
AT命令短消息收发有关的规范主要包括GSM 03.38、GSM 03.40和GSM 07.07。前二者着重描述SMS的技术实现(含编码方式),后者则规定了SMS的DTE—DCE接口标准(AT命令集)。
AT命令即Attention,AT命令集是由诺基亚、爱立信、摩托罗拉和HP等厂家共同为GSM系统研制的DTE-DCE接口标准,是从终端设备TE(TerminalEquipment)或数据终端设备DTE(Data Terminal Equipment)向终端适配器TA(Terminal Adapter)或数据电路终接设备DCE(Data Circuit TerminatingEquipment)发送
【ll】
的。通过TA,TE发送AT命令来控制移动台MS(Mobile Station)的功能,与GsM网络业务进行交互。AT命
8
令包括一般命令,呼叫控制命令,网络业务命令,安全性命令,电话本命令,短消息(SMS)命令,补充业务命令,数据命令,传真命令和串口命令。本设计主要用的是短消息命令,对GSM中的短消息业务进行操作。短消息收发规范GSM07.07规定了短消息命令,下表中列出与SMS相关的主要命令:
表2-1 SMS常用的AT指令 AT指令 功能 AT+CMGC Send an SMS command(发出一条短消息命令) AT+CMGD Delete SMS message(删除SIM卡内存的短消息) AT+CMGF Select SMS message format(选择短消息信息格式:O-PDU:卜文本) AT+CMGL List SMS message from preferred store(列出SIM卡中的短消息信息格式PDU/text:01’REC UNREAD”为未读,1/”REC READ”为已读,2/”STOU NSENT”为待发,3/’STO SENT4为已发,4/”ALL”为全部的) AT+CMGR Read SMS message(读短消息) AT+CMGS Send SMS message(发送短消息) AT+CMGW Write SMS message to memory(向SIM内存中写入待发的短消息) AT+CMGS Send SMS message from storage(从SIM内存中发送短消息) AT+CNMI New SMS message indication(显示新收到的短消息) AT+CPMS Preferred SMS message storage(选择短消息内存) AT+CSCA SMS service center address(短消息中心地址) AT+CSCB Select cell broadcast message messages(选择蜂窝广播消息) AT+CSMP Set SMS text mode parameters(设置短消息文本模式参数) AT+CSMP Select Message Service(选择短消息服务) [12]现在市场上大多数手机均支持GSM07.07规定的AT指令集。该指令集是ETSI(欧洲通信技术委员会)发布的,其中包含了对SMS的控制说明。利用GSM手机(MoDEM)的串行接口,单片机向手机(MODEM)发送一系列的AT命令,就能达到控制手机(MODEM)收发SMS的目的。
因为AT命令是作为一个接口的标准,所以它的命令和返回的值和格式都是固定的,总体上说AT命令有四种形式:
(1)无参数命令:是一种单纯的命令:
格式:AT[+|&]
格式:AT[+|&]
格式:AT[+|&]
(4)带参数命令:应用最广的一种格式,它为命令提供了强大的灵活性。
格式是AT[+|&]
作为返回值,其情况就比较多样,但是返回值还是遵循一个大的框架格式:
本课题中与SMS相关的GSM AT指令介绍 1、短消息接收模式设置
短消息的接收模式主要有2种:
(1)通过SIM卡接收。该模式为缺省设置,即主动读取SIM卡中的短消息。 . 设置格式为:AT+CNMI=2,l,0,0,O+
(2)直接利用串口接收。当有短消息时,不经过SIM卡,直接利用串口进行收取(如果此时端口未打开,则该短消息有可能丢失)。
设置格式为:AT+CNMI=2,2,0,0,0+
在本系统设计中采用的是第二种方式,设置为短消息直接输出,设置正确则TC35i模块返回:
设置短消息中心的格式为:AT+CSCA=〞Server Center(短消息中心) 〞
在本系统中短消息中心设置如下:AT+CSCA=〞+8613800779500〞(短消息中心)
读取短消息服务中心则使用命令:AT+CSCA=?
TC35i模块应该返回:
读取短消息的格式为:AT+CMGR=
执行该命令将TC35i模块中PDU格式的短消息内容读出。返回的数据包括短消息的状态及整个指定短消
9
息的数据。
2.4 SMS短消息的编码方式
SMS短消息的编码方式主要有Block Mode、Text Mode和PDU Mode三种模式。 l、最初的Block Mode
九十年代初,AT指令仅被用于Modem的操作。由于没有控制移动电话消息文本的先例,因此开发了一种叫做SMS Block Mode的协议,通过移动终端TE(Terminal Equipment)或PC来完全控制SMs。使用Block模式需要模块生产厂家提供驱动支持,目前很少被使用到。 2、基于AT命令的Text Mode
Text Mode是纯文本方式,可使用不同的字符集,从技术上说也可用于发送中文短消息,但国内手机基本上不支持,主要用于欧美地区。Text模式的短信息发送和接收实现比较简单,但不适合做自定义的数据传输,而且只能发送ASCII码信息,如不需要传送中文则最好采用Text模式发送和接收短信息。
采用Text模式发送接收短信息的步骤分为初始化GSM模块、发送文本短信息和接收短信息。Text模式下在设置了模式后,短消息可以直接发送(对方手机号+SMS内容)而不需要进行编码,相应的程序设计也比较简单。对于GSM/GPRS模块之间的英文短信数传,Text模式是一个很好的选择。但缺点是不能处理中文信息,手机的支持范围小。 3、基于AT命令的PDU Mode
PDU模式是发送或接收手机SMS信息的一种方法,PDU串表面上是一串ASCII码,由‘O’~‘9’、‘A’~
【13】
‘F’这些数字和字母组成。它们是8位字节的十六进制数,或者BCD码十进制数。PDU串不仅包含可显示的消息本身,还包含很多其它信息,如SMS服务中心号码、目标号码、回复号码、编码方式和服务时间等。短信息正文经过十六进制编码后被传送出去。PDU Mode被所有手机支持,可以使用任何字符集,它也是手机短消息默认的编码方式。基本上全国所有的电信局都提供支持PDU Mode的短消息业务。如果需要发送中
【13】
文或者中英文混合信息,就必须使用PDU模式。
PDU相当于一个数据包,它由构成消息(SMS)的信息组成。作为一种数据单一元,它必须包含源/目的地址、保护(有效)时间、数据格式、协议类型和正文,正文长度可达140字节,它们都以十六进制表示。PDU结构根据短消息由移动终端发起或以移动终端为目的而不同。 1)移动终端发起时,PDU的格式为:
SMSC PDU类型脉DA PID DCS VP UDL UD(O--一1400cted) 2)移动终端为目的时,PDU的格式为:
SMSC PDU类型OA PID DCS SCTS UDL LID(0~1400cted)
其中,SMSC为短消息业务中心地址,DA/oA为源/目的地址,PID为协议识别,.DCS为数据编码,UDL为用户数据长度,UD为用户数据,VP为有效时间,脉指明是发出信息,SCTS指明短消息到达业务中心的时间。
(1)SMSC地址格式(TON/NPI)说明:
91—短信息中心号码类型。9l是TON/NPI遵守International/E.164标准,指在号码前需加‘+’号。具体格式如表2—2所示:0X91=10010001
表2-2 SMSC地址格式字节说明 BIT No. 7 6 5 4 3 2 1 0 Name 1 数值类型 号码鉴别 数值类型(Type of Number):00-未知,001-国际,0l-国内,111-留作扩展;号码鉴别(Numbering plan identification):0000-未知,0001-ISDN/电话号码(E.164/E.163),1111-留作扩展; (2)SMSC的地址。
PDU中,此数据项采用半字节(Semi-Octet)描述,每个半字节都是一个用BCD码表示的十进制数字。在发送时,将一个字节的低四位先发送,高四位后发送:如果数据项是由奇数个数字组成,则需要用。11 1l一作为填充位。将字符串“68 3108 70 97 05 FO\每个字节的高四位与低四位位置互换后可得到真正的号码“86 13 80 07 79 50 0F’.末尾的“F\是填充位的十六进制表示。’86一是中国的国际区号,因此短消息中心的真正号码为13800779500(北海移动短消息中心的号码)。SMSC地址应该是为发送方提供服务的SMSC地址。
(3)基本参数(TP—MTI/VFP)说明:TP—M1II/VFP是以位图形式表示信息内容。具体格式如表2-3所示:Oxl I=00010001
表2-3 基本参数格式字节说明 BIT No. 7 6 5 4 3 2 1 0 Name TP-RP TP-UDHI TP-SRR TP-VFP TP—RD TP-MTI Value 0 0 0 1 0 0 0 1 应答路径—TP—RP(TP-Reply—Path): 0—不设置; 1—设置。
用户数据头标肿P-UDHL(TP—User—Data-Header—Indicator):
10
0—不含任何头信息; 1—含头信息。
状态报告要求—TP.SPR(TP—Status—Report—Request):
0—需要报告; 1一不需要报告。 有效期格式--TP-VPF(TP-Val idity—Period—Format):
00—不提供(Not present); 10—整型(标准); Ol—预留; 11—提供8位字节的一半(Semi-Octet Represented)。 拒绝复制—-TP—RD(TP—Reject—Dupl icates):
0—卜接受复制; l—拒绝复制。
信息类型提示叫P—MTl(TP—Message—Type—Indicator):
00--读出(Deliver); 01--提交(Submit)。 (4)协议标识TP-PID (TP-Protocol--Identifier)
表2-4 协议标识字节说明 BIT No. 7 6 5 4 3 2 1 0 Bit No.7与BitNo.6:(一般将这两位置为00)
00—如下面定义的分配,参见GSM03.40协议标识完全定义; 0l—l0—预留;
11—为服务中心(SC)特殊用途分配Bit No.O-Bit No.5。 Bit No.5: 0—不使用远程网络,只是短消息设备之间的协议;
1—使用远程网络;
Bit No.0一Bits No.4:
00000--隐含; O000l--电传; 00010--group 3 telefax: 00100--语音: 00l01一欧洲无线信息系统(ERMES);
00110—国内系统:10001—任何基于X.400的公用信息处理系统: 10010--Email。
(5)数据编码方案TP—DCS(TP—Data-Coding—Scheme)
表2-5 数据编码方案字节说明 BIT No. 7 6 5 4 3 2 1 0 Bit No.7与Bit No.6:一般设置为00; Bit No.5:0--文本未压缩,l一文本用GSM标准压缩算法压缩: Bit No.4:0--表示Bit No.1、No.0为保留位,不含信息类型信息,
1一表示Bit No.1、Bit No.0含有信息类型信息:
Bit No.3与Bit No.2: 00—默认的字母表(7bit编码)
Ol一8bit, 10一USC2(16bit)编码, 11一预留;
Bit No.1与Bit No.O: 00--Class 0,01—Class 1,10—Class 2(SIM卡特定信息),ll—Class 3。
在PDU Mode中,可以采用三种编码方式来对发送的内容进行编码,它们是7-bit,8-bit和UCS2编码,下面分别进行说明。 (1)7-bit编码.
7-bit编码用于发送普通的ASCII字符,可以发送短消息的最大字符数为160。这里,将一个英文字母、一个汉字和一个数据字节都视为一个字符。需要注意的是,7位编码的字符集与ANSI标准字符集并不完全一致,在20H以下也有一些可打印的字符,但两者的英文大小写字母、阿拉伯数字和常用符号的位置是一样的。因此,采用这种方案对收发纯英文的短消息来说是完全可行的。下面以一个具体的例子说明7-bit编码的过程。对英文短信“Hello!\进行编码:
发送短消息:SMSC(短消息服务中心)号码是+8613800779500,对方号码是13627798882,消息内容是“Hello!’。从手机发出的PDU串可以是:
08 9168 3108 70 97 05 F0 1100 0D 9168 3126 7789 88 F2 00 00 00 06 C8 32 9B FD 0E Ol
对照编码规范,具体分析各个分段如下: 分段含义说明.
08 SMSC地址信息的长度共8个八位字节(包括91)
91 SMSC地址格式(ToN/NPI)用国际格式号码(在前面加‘+’)
68 3108 70 97 05 FO SMSC地址8613800779500,补‘F,凑成偶数个 11 基本参数(TP—MTI/VFP)发送,TP-VP用相对格式 00 消息基准值(TP-MR)0
0D 目标地址数字个数共13个十进制数(不包括9l和州F)
91 目标地址格式(TON/NPI)用国际格式号码(在前面加‘+’)
68 3126 7789 88 F2目标地址(TP-DA)8613627798882,补‘F’凑成偶数个 O0 协议标识(IP-PID)是普通GSM类型,点到点方式
11

