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

1.相关的GSM AT指令
与SMS有关的GSM AT指令(from GSM07.05)如表1所示:
表1 相关的GSM AT指令

AT 指令
功                     能

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为例。
2.计算机与TC35T的通信
(1)RS232串口连接
由于TC35T自带RS232串口线,故只需将其连接到计算机串口即可。打开超级终端,选择相应的串口,将端口参数设置为:速率—4800、奇偶校验位—无、数据位—8、停止位—1、流量控制—硬件。
(2)连接测试
输入“AT”然后回车,屏幕上返回“OK”表明计算机与TC35T已连接成功,TC35T能够正常工作。这时就可以测试各类AT命令。
当测试命令“AT+CMGS=?<CR>”时,如果返回“OK”标明TC35T支持该指令。该指令的完整语法如下:
如果此时TC35T处于PDU Mode(即“AT+CMGF?<CR>”返回“0”)

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

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

 
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50