利用手机模块实现短消息(TC35iT) (ayanamiwww原作)

本文介绍了GPS定位数据通过短消息传至监控中心的方案,指出常使用手机模块实现与短消息中心联系。重点介绍了与短消息开发相关的GSM AT指令,以西门子TC35T为例说明计算机与它的通信,还分析了PDU数据格式、短消息编码,给出发送与接收案例及注意事项。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

全球定位系统(GPS)系统由于性能优异,在民用上应用范围很广。其可以用于空中交通管理、大地精密测量、摄影测量、监测地壳运动、火山活动、野外调查和勘探的定位、地面沉降、土地塌方,甚至于用于民用如建筑、汽车、旅行探险、狩猎等方面。但是如何将GPS定位数据传递到监控中心一直是相应系统关注的焦点。目前,移动子系统和监控中心子系统之间往往通过短消息方式传送数据。这种方式采用通常的无线GSM发送接收设备就能实现短消息的传送,实现简单,具有通信成本低、频谱利用率高、系统容量大、业务种类多、保密性能好、抗干扰能力强、通话质量高、国际自动漫游等优点,它利用信令信道传输,不用拨号建立连接,直接把要发的信息加上目的地址发送到短消息服务中心,由短消息服务中心在发给最终的信宿,是目前应用最广泛的通信方案。
目前,在相关的系统中往往使用手机模块(摩托罗拉、西门子等均有相应的产品)来实现与短消息中心的联系。主要原因在于:使用手机模块利于系统集成,成本较低,而使用手机虽然也可以实现相应功能,但是需要外加数据线,成本相当高。本文主要介绍与短消息开发相关的GSMAT指令。 <?xml:namespace prefix = o ns = "urn:schemas-microsoft-com:office:office" />

1.相关的GSMAT指令
SMS有关的GSMAT指令(fromGSM07.05)如表1所示:
1相关的GSMAT指令

AT指令

AT+CMGC
SendanSMScommand
(发出一条短消息命令)

AT+CMGD
DeleteSMSmessage
(删除SIM卡内存的短消息)

AT+CMGF
SelectSMSmessageformate
(选择短消息信息格式:0-PDU;1-文本)

AT+CMGL
ListSMSmessagefrompreferredstore
(列出SIM卡中的短消息PDU/text:0/RECUNREAD-未读,1/RECREAD-已读,2/STOUNSENT-待发,3/STOSENT-已发,4/ALL-全部的)

AT+CMGR
ReadSMSmessage
(读短消息)

AT+CMGS
SendSMSmessage
(发送短消息)

AT+CMGW
WriteSMSmessagetomemory
(向SIM内存中写入待发的短消息)

AT+CMSS
SendSMSmessagefromstorage
(从SIN|M内存中发送短消息)

AT+CNMI
NewSMSmessageindications
(显示新收到的短消息)

AT+CPMS
PreferredSMSmessagestorage
(选择短消息内存)

AT+CSCA
SMSservicecenteraddress
(短消息中心地址)

AT+CSCB
Selectcellbroadcastmessages
(选择蜂窝广播消息)

AT+CSMP
SetSMStextmodeparameters
(设置短消息文本模式参数)

AT+CSMS
SelectMessageService
(选择短消息服务)


对短消息的控制共有三种模式:
BlockMode

基于AT命令的PDUMode

基于AT命令的TextMode

使用Block模式需要手机生产厂家提供驱动支持,目前,PDUMode已取代BlockMode,TextMode比较简单,本文重点介绍模式PDUMode,以西门子公司的产品TC35T为例。
2
.计算机与TC35T的通信
1RS232串口连接
由于TC35T自带RS232串口线,故只需将其连接到计算机串口即可。打开超级终端,选择相应的串口,将端口参数设置为:速率—4800、奇偶校验位—无、数据位—8、停止位—1、流量控制—硬件。
2)连接测试
输入“AT”然后回车,屏幕上返回“OK”表明计算机与TC35T已连接成功,TC35T能够正常工作。这时就可以测试各类AT命令。
当测试命令“AT+CMGS=?<CR>”时,如果返回“OK”标明TC35T支持该指令。该指令的完整语法如下:
如果此时TC35T处于PDUMode(即“AT+CMGF?<CR>”返回“0”)

AT+CMGS=<length><CR>PDUisgiven<^Z/ESC>
如果短消息发送成功,则返回“OK”,并显示信息号:
+CMGS:<mr>[,<ackpdu>]
如果短消息发送失败,则返回如下信息号:
+CMSERROR:<err>
如果此时TC35T处于TextMode(即“AT+CMGF?<CR>”返回“1”)

AT+CMGS=<da>[,toda]<CR>textisentered<^Z/ESC>
如果短消息发送成功,则返回“OK”,并显示信息号:
+CMGS:<mr>[,<scts>]
如果短消息发送失败,则返回如下信息号:
+CMSERROR:<err>
另外,由于使用的是TC35T,当有新的短消息到来时,需要TC35T产生提示,使用指令“AT+CNMI”。该指令的完整语法如下:
AT+CNMI=[<mode>][,<mt>][,<bm>][,<ds>][,<bfr>]
如果有新的短消息来到,则TC35T将自动返回下列提示:
+CMTI:
SM,<index>
此时读出<index>,然后用“AT+CMGR”指令即可读出短消息内容。

3PDU数据格式分析:
例如,我们要将字符“Hi”字符发送到目的地“13677328099
PDU
字符串为:
0891683108701305F011000D913176378290F900000002C834
08—短信息中心地址长度。指(91+683108701305F0)的长度。
91—短信息中心号码类型。91TON/NPI遵守International/E.164标准,指在号码前需加'+'号;此外还有其它数值,但91最常用。
91
10010001
BITNo.76543210
Name1
数值类型号码鉴别

数值类型(TypeofNumber):000—未知,001—国际,010—国内,111—留作扩展;
号码鉴别(Numberingplanidentification:0000—未知,0001ISDN/电话号码(E.164/E.163)1111—留作扩展;
683108701305F0—短信息中心号码。由于位置上略有处理,实际号码应为:8613800731500(字母F是指长度减1)。这需要根据不同的地域作相应的修改。
⑴、⑵、⑶通称短消息中心地址(AddressoftheSMSC)。
11—文件头字节。
11&h=00010001&b
BITNo.76543210
NameTP-RPTP-UDHITP-SPRTP-VFPTP-RDTP-MTI
value00010001

应答路径—TP-RPTP-Reply-Path):0—不设置;1—设置
用户数据头标识—TP-UDHLTP-User-Data-Header-Indicator):0—不含任何头信息;1—含头信息
状态报告要求—TP-SPRTP-Status-Report-Request):0—需要报告;1—不需要报告
有效期格式—TP-VPFTP-Validity-Period-Format):00—不提供(Notpresent;10—整型(标准);01—预留;11—提供8位字节的一半(Semi-OctetRepresented
拒绝复制—TP-RDTP-Reject-Duplicates):0—接受复制;1—拒绝复制
信息类型提示—TP-MTITP-Message-Type-Indicator):00—读出(Deliver;01—提交(Submit
00—信息类型(TP-Message-Reference
0B—被叫号码长度。
91—被叫号码类型(同⑵)。
3176378290F9—被叫号码,经过了位移处理,实际号码为“13677328099”。
⑹、⑺、⑻通称目的地址(TP-Destination-Address)。
00—协议标识TP-PIDTP-Protocol-Identifier
BITNo.76543210
BitNo.7
BitNo.600—如下面定义的分配BitNo.0BitNo.501—参见GSM03.40协议标识完全定义;10—预留;11—为服务中心(SC)特殊用途分配BitNo.0BitNo.5
一般将这两位置为00
BitNo.5
0—不使用远程网络,只是短消息设备之间的协议;1—使用远程网络。
BitNo.0
BitsNo.400000—隐含;00001—电传;00010group3telefax00100—语音;00101—欧洲无线信息系统(ERMES);00110—国内系统;10001—任何基于X.400的公用信息处理系统;10010Email
00—数据编码方案TP-DCSTP-Data-Coding-Scheme
BITNo.76543210
BitNo.7
BitNo.6:一般设置为00BitNo.50—文本未压缩,1—文本用GSM标准压缩算法压缩;BitNo.40—表示BitNo.1BitNo.0为保留位,不含信息类型信息,1—表示BitNo.1BitNo.0含有信息类型信息;BitNo.3BitNo.200—默认的字母表,018bit10USC216bit),11—预留;BitNo.1BitNo.000Class001Class110Class2SIM卡特定信息),11Class3
00—有效期TP-VPTP-Valid-Period
VPvalue(&h)
相应的有效期
00to8F(VP+1)*5
分钟
90toA712
小时+(VP-143)*30分钟
A8toC4(VP-166)*1

C5toFF(VP-192)*1

02—用户数据长度TP-UDLTP-User-Data-Length
C834—用户数据TP-UDTP-User-Data)“Hi
4
.短消息编码
设需要发送的短消息内容为“Hi”,使用的GSM字符集为7位编码。首先将字符转换为7位的二进制,然后,将后面字符的位调用到前面,补齐前面的差别。例如:H翻译成1001000i翻译成1101001,显然H的二进制编码不足八位,那么就将i的最后一位补足到H的前面。那么就成了11001000C8),i剩下六位110100,前面再补两个0,变成0011010034),于是“Hi”就变成了两个八进制数C834
5
.短消息的发送与接收案例
鉴于TC35T)支持TEXT格式,我们在试验中主要测试该格式。
1)设置短消息中心
AT+CSCA="+8613800731500"(
短消息中心)
2)设置短消息发送格式
AT+CMGF=1(1-TEXT;0-PDU)

3)发送短消息(短消息内容为“test)
AT+CMGS="13508485560"(
目的地址)<cr>
>test^z

4)设置短消息到达自动提示:设置短消息到达提示当短消息被接收,将获取指令:+CMTI:"SM",INDEX(信息存储位置)
AT+CNMI=1,1,0,0,1()

5)获取短消息内容(Oncemore),假设INDEX8
AT+CMGR=8
返回信息如下:
+CMGR:"RECUNREAD","+8613508485560",,"01/07/16,15:37:28+32",Oncemore
6
.注意事项
1)短消息中心一般不会改动,如果短消息中心号码改动,在使用“AT+CSCA”语句时,记住TC35要重新启动,否则TC35不能正常工作(TC35T不存在此问题)。
2)某些SIM卡带有密码,启动时需要输入密码。

备注:
1、文章出处:http://www.g-ya.cn
2、近日研究这个东西,找到比较好的文章,拿来共享一下
3、首次在这里发文章,有不对之处请指出,马上更正,谢谢

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值