利用GSM模块收发短信Word文件下载.docx
《利用GSM模块收发短信Word文件下载.docx》由会员分享,可在线阅读,更多相关《利用GSM模块收发短信Word文件下载.docx(10页珍藏版)》请在冰豆网上搜索。
![利用GSM模块收发短信Word文件下载.docx](https://file1.bdocx.com/fileroot1/2022-12/30/394b56d4-29e5-4615-85e4-eb98bf38eeeb/394b56d4-29e5-4615-85e4-eb98bf38eeeb1.gif)
UDL
UD(0〜
型
140octed)
当以移动终端为目的时,PDU的格式为:
OA
SCTS
其中,SMS(为短消息业务中心地址,DA/OA为源/目的地址,PID为协议识别,DCS为数据编码,UDL为用户数据长度,UD为用户数据,VP为有效时间,MR!
明是发出信息,SCTS旨明短消息到达业务中心的时间。
发送短信PDU格式
AT十CMGS(SendSMScommand发送短消息指令。
PDU模式中,首先发送短消息数据的长度。
AT+CMGS=<
LengthxCR等待返回
ASCII字符“〉”,贝U可将PDU数据输入,PDU数据以<
Ctrl>
+<
Z>
作为结束符,短
消息发送成功,模块返回
步骤1•发送AT<
3车>
连接测试,返回OK
步骤2.设置短信息发送格式
AT+CMGF=O(选择短消息信息格式:
O-PDU;
1-TEXT
步骤3.发送PDU短消息数据的长度(从11开始,不包括短信中心的号码)
AT+CMGS=25(<
length>
<
cr>
)(十六进制41542B434D47533D32350D)返回>
步骤4.输入PDU数据
在〉后输入(十六进制OD0A3E20)
089F011000D9F00008A71C6C344F4D003D00357C73ASCII码)
步骤5.按ctrl+z发送短消息。
如果短消息发送成功,则返回“0K,并显示信息号:
+CMGS[,]+CMGS:
000如果短消息发送失败,则返回如下信息号:
+CMSERROR:
HEX发送PDL数据格式为:
ASCII转换为HEX最后输入1A(1A=<
ctrl+z>
)
303839313638333130383230303930354630313130303044
393136383331303331393030313946303030303841373130
36433334344634443030334430303335374337331A(HEX
PDU数据格式分析:
PDU式支持汉字,汉字的十六进制PDU编码直接采用汉字
Unicode编码的格式
:
短信息服务中心地址0891683108200905F0
(1)08—短信息服务中心地址长度指(91)+(0905F0)8个字节的长度。
(2)91—短信息中心号码类型。
91是TON/NP遵守International/标准,指在号码前需加‘+'
号;
此外还有其它数值,但91最常用,91指国际类型,81指国内类型。
91—
号码类型
数值类型(TypeofNumbe):
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-lndicator):
0—不含任何
头信息;
1—含头信息
状态报告要求一TP-SPR(TP-Status-Report-Request):
0—需要报告;
1—不需要报告
有效期格式一TP-VPFTP-Validity-Period-Format):
00—不提供(Notpresent);
10—整型(标准);
01—预留;
11—提供8位字节的一半(Semi-Octet
Represented)
拒绝复制一TP-RD(TP-Reject-Duplicates):
0—接受复制;
1—拒绝复制
信息类型提示一TP-MTI(TP-Message-Type-lndicator):
00—读出(Deliver);
01—提交(Submit)
3、MR-信息类型(TP-Message-Referenee),—般为00。
4、DA-被叫号码。
0D910019F0
0D-被叫号码长度“86”共13位,实际号码长度
91—被叫号码类型,为国际类型。
0019F0-被叫号码,经过了位移处理,实际号码为“86”。
编码方式与短消息中心号码相同
5、PID—协议标识TP-PID(TP-Protocol-ldentifier),—般为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。
6DCS-数据编码方案TP-DCS(TP-Data-Coding-Scheme)
Bit与Bit:
一般设置为00;
Bit:
0—文本未压缩,1—文本用GSM标准压缩算法压缩;
0—表示Bit、Bit为保留位,不含信息类型信息,1—表示Bit、Bit含有信息类型信息;
00—默认的字母表,01—8bit,10—USC2(16bit),11—预留;
00—Class0,01—Class1,10—Class2(SIM卡特定信息),11—Class3。
(11)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模块间通信的语言⑹。
比如要设置短消息中心号码,则要向TC35I模块发送下文引号中的内容:
“AT+CSCA=+8回车>
”
如果设置成功,TC35I模块就会返回下文中引号中的内容:
“AT+CSCA=+86
OK”
其中值得注意的地方是,向TC35I模块发送一条AT指令时,TC35I模块在执行完指令时不仅返回“0K,在“0K上还显示你发送给模块的那条指令。
本文涉及的以及常用的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+CMGSS车>
>
短信内容<
Ctrl+Z>
返回+CMG:
FXX(XX代表数字)表示发送成功,返回ERRO表示发送失败。
(5)AT+CMGF=n
选择短消息信息格式,n=0为PDU编码格式,n=1为Text编码格式(只支持发送英文及数字)。
(6)AT+CSCA
短消息中心地址:
AT+CSCA=+86回车>
为设置为吉林地区短消息中心地址。
(7)AT+CNMI
显示新收到的短消息:
AT+CNMI=1,1,2<
®
车>
收到短消息后自动提示。
第五章通过串口收发短消息
用串口收发过程
当ME收到一条消息时,主动发出通知给TE,或者直接将消息转发到T巳与查询机制相比,它类似于中断机制。
先简要说明一下短消息类(class)的概念:
根据指定储存的位置,短消息分为class0-3四个类。
也可以不指定类(no
class),由ME按默认设置进行处理,存储到内存或者SIM卡中。
在TPDU勺TP-DCS字节中,当bit7-bit4为00x1,01x1,1111时,bit1-bitO指出消息所属类:
00-class0:
只显示,不储存
01-class1:
储存在ME内存中
02-class2:
储存在SIM卡中03-class3:
直接传输到TE
GSMModemr般都支持一条“AT+CNM”指令,可用于设定当有某类短消息到达时,如何处置它:
只储存在指定的内存(易失的/非易失的)中,先储存后通知TE,还是直接转发到TE,等等。
“AT+CNM”I指令语法为
AT+CNMI=[<
mode>
[,<
mt>
bm>
ds>
bfr>
]]]]]
mode-通知方式:
0-不通知TE=
1-只在数据线空闲的情况下,通知TE;
否则不通知TE=
2-通知T巳在数据线被占用的情况下,先缓冲起来,待数据线空闲,再行通知。
3-通知T巳在数据线被占用的情况下,通知混合在数据中一起传输
mt-消息储存或直接转发到TE:
0-储存到默认的内存位置(包括class3)
1-储存到默认的内存位置,并且向TE发出通知(包括class3)
2-对于class2,储存到SIM卡,并且向TE发出通知;
对于其它class,直
接将消息转发到TE
3-对于class3,直接将消息转发到TE;
对于其它class,同mt=1
bm,ds,bfr的含义,请参考相关标准文档。
一般不需要去关心它们。
在程序中具体实现时,使用mode=2,mt=1,比较简单。
对所有类型的短消息,只要在收到ME送来的“+CMT”通知后,用“AT+CMGR旨令读取消息内容就行了。
TE与ME之间的通信过程,举例如下:
(初始化)
AT+CNMI=?
(查看能支持的设置范围)
+CNMI:
(0-2),(0-3),(0,2,3),(0,1),(0,1)
OK
AT+CNMI?
(查看当前设置)
0,0,0,0,0
AT+CNMI=2,1(设置为mode=2,mt=1)
(再查看当前设置)
2,1,0,0,0
(过了一段时间,有一条消息到达)
+CMTI“ME,8(通知:
消息已经存储在ME内存中,序号为8)
AT+CMGR=8读(第8条消息)
+CMGR:
8,27
089F0240D9F052EE01
AT+CMGD=8删(除第8条消息)
OK还有一种方式mode=2,mt=2也很令人感兴趣。
在这种方式下,除了class2外,消息不存储,直接转发到TE。
需要处理消息通知和内容两种情况,复杂一些。
但如果发送方也由程序控制,可以只发noclass或class1的消息,这样不存储在接收方ME内存(一般是闪存,非易失性的)中,肯定能延长它的使用寿命。
TE与ME之间的通信过程,举例如下:
AT+CNMI=2,2(设置为mode=2,mt=2)
+CMT:
26
089F0040D9F052F60597D0021
调试及结果
本文利用串口调试助手向TC35I模块发送AT指令。
首先将GSM模块开发板中的串口与计算机串口通过串口线相连,实物图如图1所示。
打开串口调试助手,选择相应的串口号,由于TC35I模块上电复位后默认的串行通信波特率为9600,因此要选择串口调试助手的波特率为9600。
1
设置完串口调试助手后,为TC35I模块供电,供电后指示灯亮,然后按下复位按钮,这时串口调试助手上可以看出TC35I模块向计算机发送了若干数据,表
明模块启动成功。
然后可以看到模块上的LD2灯一亮一灭,亮和灭的时间间隔相同,都是600ms表明TC35I模块正在登入网络,过一分钟左右,如果看到LD2
长灭短亮,亮75ms灭3s,说明TC35I已经成功登入GSM网络,可以与外界通过通信了。
然后就可以通过串口调试助手发送AT指令来控制GSM莫块了。
首先要
做的就是对TC35I模块进行初始化设置,初始化流程如图2所示。
包括发送联机命令、设置短消息中心号码、选择文本模式和设置为收到短消息自动提醒方式等。
图2GSM模块初始化流程图
利用串口调试助手调试TC35I模块的具体步骤如下:
(1)将TC35I开发板的串口与计算机串口通过串口线连接起来,打开串口调试助手,选择相应的串口(本次调试的串口为COM)1。
(2)发送联机命令:
AT<
回车>
返回OK则连接正确,返回ERRO则连接错误。
(3)设置短信中心号码:
AT+CSCA=+86<
车>
返回OK则设置成功,返回ERRO则失败。
(4)选择文本方式:
AT+CMGF=U车>
返回OK则选择了Text方式,返回ERRO则失败。
(5)发送一条短消息
返回等待输入字符>
输入hello<
Ctrl+Z结束输入>
FXX(XX代表数字)表示发送成功,返回ERRO则发送失败。
(6)读短消息
AT+CMGR=HW>
则读取了第1条短消息。
结论
本文详细介绍了如何利用GSM莫块一一TC35I发送和接收短消息。
首先介绍了TC35I模块的结构,AT指令的格式与使用方法,最后介绍了利用串口调试助手调试TC35I莫块的步骤。
GSM莫块消息具有永远在线、无须拨号、价格低廉、覆盖范围广等特点,在
数据量不大、实时性要求不高的系统中,通过精心设计远程监控通信单元的硬件和软件,以GSM短消息为数据传输手段建立远程监控系统,具有极大的组网灵活性。
以GSM短消息为手段的远程监控,可广泛应用于实验室监控、电力系统监控、家电监视、数据采集、遥控遥测、全球定位、交通管制、汽车防盗和跟踪等领域,并可广泛应用于安防、门禁、矿山等其它行业。
使用手机莫块利于系统集成,成本较低。
在偏远地区等架设通信线路困难或不经济的地方,工程服务设施可以自由灵活的设置,不再受地形条件的限制。
总之,GSM莫块价格低廉、应用广泛,应用前景诱人,通过与手机模块接口
可以很方便的设计出用户所需要的数据接收终端。
采用GSM勺短信功能,可以使
一些控制达到“零距离”。
由于短消息的费用低廉,因此可以取代传统的无线控制。
伴随着GSM网络的全球化普及,短消息及其增值业务以其方便、灵活、快捷、价格低廉等优势已经迈入许多领域,并逐步取代传统的信息传输方式。
因此,利用GSM通信模块和短消息技术构建无线发布平台来实现信息的传输和监控将成为一种必然趋势。