利用GSM模块收发短信.docx
《利用GSM模块收发短信.docx》由会员分享,可在线阅读,更多相关《利用GSM模块收发短信.docx(9页珍藏版)》请在冰豆网上搜索。
利用GSM模块收发短信
第二章GSM模块
GSM模块,是将GSM射频芯片、基带处理芯片、存储器、功放器件等集成在一块线路板上,具有独立的操作系统、GSM射频处理、基带处理并提供标准接口的功能模块。
本文选用的GSM模块为西门子TC35I模块[2]。
TC35I的内部由GSM基带处理器、射频、Flash、天线接口、匹配电源ASIC和40pin的ZIF插座组成,由若干超大规模集成电路和射频器件构成,包含信号处理、信道编码、GSM控制、收发信单元、射频控制、数据输入输出接口等部分。
可以快速安全可靠地实现系统方案中的数据传输、语音传输、短信息服务和传真服务。
模块的工作电压为~,可以工作在900MHZ和1800MHZ两个频段,所在频段功耗分别为2W(900MHZ)和1W(1800MHZ)。
模块有AT命令集接口,支持文本和PDU模式的短信息[3]。
此外,该模块还有电话簿功能、多方通话、漫游检测等功能。
常见工作模式由省电模式、IDLE、TALK等模式。
通过40管脚的zif连接器,可分别连接SIM卡支架和天线。
作为TC35I的核心,基带处理器主要处理GSM终端内的语音、数据信号,并涵盖了蜂窝射频设备中的所有的模拟和数字功能。
在不需要额外硬件电路的前提下,支持FR、HR和EFR和语音编码[4]。
TC35I模块自带串行通信接口,可以方便地与PC机、单片机等进行串行通信,从而实现对TC35I模块的控制。
虽然TC35I模块的串口提供了许多控制线,但是由于考虑到接口的简单性,并且与PC机的UART进行连接,所以采用两线(TXD、RXD)连接。
TC35I的其他管脚在不使用的时候,如果该管脚为输出的话,一般让该管脚悬空,如果该管脚为输入管脚,需要将该管脚通过10K的电阻拉高。
另由于IGT管脚是控制TC35I模块工作的管脚,所以需要将管脚上拉,从而可以通过PC机来控制TC35I模块的工作状态。
在此次连接是使将TC35I模块的电源管脚全部连接在一起,由于TC35I是一个功能完全的模块,因此不需要做任何的信号处理和射频处理[5]。
TC35I的开发板上有发光二极管来指示TC35I的工作状态,当发光二极管LED熄灭时,表明TC35I处于关闭或睡眠状态;当LED为600ms亮/600ms熄时,表明SIM卡没有插入或TC35I正在进行网络登录;当LED为75ms亮/3s熄时,表明TC35I已登录进网络,处于待机状态。
第四章PDU数据格式及AT命令
PDU数据格式
PDU简介
PDU相当于一个数据包,它由构成消息(SMS)的信息组成。
作为一种数据单元,它必须包含源/目的地址、保护(有效)时间、数据格式、协议类型和正文,正文长度可达140字节,它们都以十六进制表示。
PDU结构根据短消息由移动终端发起或以移动终端为目的而不同。
当由移动终端发起时,PDU的格式为:
SMSC
PDU类型
MR
DA
PID
DCS
VP
UDL
UD(0~140octed)
当以移动终端为目的时,PDU的格式为:
SMSC
PDU类型
OA
PID
DCS
SCTS
UDL
UD(0~140octed)
其中,SMSC为短消息业务中心地址,DA/OA为源/目的地址,PID为协议识别,DCS为数据编码,UDL为用户数据长度,UD为用户数据,VP为有效时间,MR指明是发出信息,SCTS指明短消息到达业务中心的时间。
发送短信PDU格式
AT十CMGS(SendSMScommand)发送短消息指令。
PDU模式中,首先发送短消息数据的长度。
AT+CMGS=。
等待返回ASCII字符“>”,则可将PDU数据输入,PDU数据以+作为结束符,短消息发送成功,模块返回
步骤1.发送AT<回车>连接测试,返回OK。
步骤2.设置短信息发送格式
AT+CMGF=0(选择短消息信息格式:
0-PDU;1-TEXT)
步骤3.发送PDU短消息数据的长度(从11开始,不包括短信中心的号码)
AT+CMGS=25()(十六进制41542B434D47533D32350D),返回>
步骤4.输入PDU数据
在>后输入(十六进制0D0A3E20)
089F011000D9F00008A7106C344F4D003D00357C73(ASCII码)
步骤5.按ctrl+z发送短消息。
如果短消息发送成功,则返回“OK”,并显示信息号:
+CMGS:
[,]+CMGS:
000
如果短消息发送失败,则返回如下信息号:
+CMSERROR:
HEX发送PDU数据格式为:
ASCII转换为HEX,最后输入1A(1A=)
30383931363833313038323030393035463031313030304439313638333130333139303031394630303030384137313036433334344634443030334430303335374337331A(HEX)
PDU数据格式分析:
PDU式支持汉字,汉字的十六进制PDU编码直接采用汉字Unicode编码的格式
:
短信息服务中心地址0891683108200905F0
(1)08-短信息服务中心地址长度指(91)+(0905F0)8个字节的长度。
(2)91—短信息中心号码类型。
91是TON/NPI遵守International/标准,指在号码前需加‘+’号;此外还有其它数值,但91最常用,91指国际类型,81指国内类型。
91—
号码类型
数值类型(TypeofNumber):
000—未知,001—国际,010—国内,111—留作扩展;号码鉴别(Numberingplanidentification):
0000—未知,0001—ISDN/电话号码,1111—留作扩展;
(3)683108200905F0—短信息中心号码。
对于短消息中心号码的编码采用的是半位码。
取十六进制的ASCII码,8的ASCII码是38,6的ASCII码是36,所以数字编码只要取相应的二进制的后四位就可以有效的表示一个数字,也就是十六进制的右边一位。
所有数字都取二进制的后四位,然后两两合并,后面的字符是高四位,前面的字符是低四位。
依此原则,短消息中心号码的前两位号码为86,编码后为68,同样的13编码为31,但是最后只剩下一个0,用F补齐,编码为F0。
其中86为中国的国际区号。
注:
西安短信中心号码86
⑴、⑵、(3)通称短消息中心地址SCA。
—文件头字节,发短信时设为“11”。
11&h=00010001&b
文件头格式
应答路径—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—不提供(Notpresent);10—整型(标准);01—预留;11—提供8位字节的一半(Semi-OctetRepresented)
拒绝复制—TP-RD(TP-Reject-Duplicates):
0—接受复制;1—拒绝复制
信息类型提示—TP-MTI(TP-Message-Type-Indicator):
00—读出(Deliver);01—提交(Submit)
3、MR—信息类型(TP-Message-Reference),一般为00。
4、DA—被叫号码。
0D910019F0
0D-被叫号码长度“86”共13位,实际号码长度
91—被叫号码类型,为国际类型。
0019F0—被叫号码,经过了位移处理,实际号码为“86”。
编码方式与短消息中心号码相同。
5、PID—协议标识TP-PID(TP-Protocol-Identifier),一般为00
BITNo.76543210
Bit与Bit:
00—如下面定义的分配Bit—Bit;01—参见协议标识完全定义;10—预留;11—为服务中心(SC)特殊用途分配Bit—Bit。
一般将这两位置为00。
Bit:
0—不使用远程网络,只是短消息设备之间的协议;1—使用远程网络。
Bit—Bits:
00000—隐含;00001—电传;00010—group3telefax;00100—语音;00101—欧洲无线信息系统(ERMES);00110—国内系统;10001—任何基于的公用信息处理系统;10010—Email。
6、DCS—数据编码方案TP-DCS(TP-Data-Coding-Scheme)
Bit与Bit:
一般设置为00;
Bit:
0—文本未压缩,1—文本用GSM标准压缩算法压缩;
Bit:
0—表示Bit、Bit为保留位,不含信息类型信息,1—表示Bit、Bit含有信息类型信息;
Bit与Bit:
00—默认的字母表,01—8bit,10—USC2(16bit),11—预留;
Bit与Bit:
00—Class0,01—Class1,10—Class2(SIM卡特定信息),11—Class3。
⑾00—有效期TP-VP(TP-Valid-Period)
08-使用UNICODE编码类型,00-7位编码
7、VP-相应的有效期value(&h)A7为24小时
00to8F(VP+1)*5分钟
90toA712小时+(VP-143)*30分钟
A8toC4(VP-166)*1天
C5toFF(VP-192)*1周
8、UDL-用户数据长度(TP-User-Data-Length)即实际短信息内容长度。
9、UD—用户数据(TP-User-Data),即短信内容。
短信AT命令介绍
所谓AT指令,就是指控制TC35I的命令,它们有固定的格式,选择相应的AT指令通过TC35I模块的串行通信口发送给TC35I模块,就能控制模块的工作了,其中常用的指令有设置短消息中心号码、选择文本方式、发送短消息、读短消息、删除短消息等操作命令。
AT指令就是控制器与TC35I模块间通信的语言[6]。
比如要设置短消息中心号码,则要向TC35I模块发送下文引号中的内容:
“AT+CSCA=+86<回车>”
如果设置成功,TC35I模块就会返回下文中引号中的内容:
“AT+CSCA=+86
OK”
其中值得注意的地方是,向TC35I模块发送一条AT指令时,TC35I模块在执行完指令时不仅返回“OK”,在“OK”上还显示你发送给模块的那条指令。
本文涉及的以及常用的AT指令有以下几个:
(1)AT+CMGD=X
删除SIM卡内存的短消息,X为短消息的位置序号,X=1为删除第一条短消息,以此类推。
(2)AT+CMGL=n
列出SIM卡中的短消息,n=0是未读短消息,n=1是已读短消息,n=2是未发送短消息,n=3是已发送短消息,n=4是所有短消息。
(3)AT+CMGR=X
读取第X条短消息,X为短消息的位置序号。
(4)AT+CMGS
发送短消息:
AT+CMGS=<回车>
>短信内容
返回+CMGF:
XX(XX代表数字)表示发送成功,返回ERROR表示发