51/AVR单片机技术驿站!  <在线翻译>     便利工具    特色网址   无弹窗、无插件的绿色站点...  英才招聘   学历查询  喜欢>>收藏我站 

当前位置:首页 > 单片机技术文章 > 51单片机 > 详细内容
用单片机控制手机收发短信息原理
发布时间:2009/7/7  阅读次数:1955  字体大小: 【】 【】【
       当由移动终端发起时,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指明短消息到达业务中心的时间。
2 PDU格式下短信息的接收
       根据设置不同,手机将收到的短消息保存在缓存单元或存入SIM卡,单片机从手机中接收短消息实质上就是从SIM或缓存中读出信息。这主要利用AT+CMGR和AT+CMGL两条指令来完成,其工作过程见图2。
由于不同的厂商对AT指令集的解释代码和响应信息不一样,所以单片机首先要确认能否与手机建立起通信,一般用ATE指令完成此确认;然后用AT+CMGF指令选定短消息的数据格式;在收到手机的正确回答反以AT指令完成读出功能。一般用AT+CMGL读取以前的信息,在收到手机的RING(振铃)数据时,用AT+CMGR读取实时信息。
       以下是笔者设计的物流数据采集系统中用到的接收SMS的一个实例,它说明了PDU模式的应用。单片机发送和接收(手机回答)均为ASCII码。所用手机为SIEMENS S3508i。
操作过程如下({}内为注释):
发送:ATE
手机回答:OK {已建立联接}
发送:AT+CMGF=0 {选用PDU格式}
手机回答:OK {允许选择PDU格式}
发送:AT+CMGL=2 {列出已有的短信息}
手机回答:+CMGL:1,2,,24{1表示信息个数,2表示未发信息,24表示信息总容量}
0D71683108370105F004000D81683179133208F10000026080410033802632184CF682D
95E0DC2B36D3D170A0243106933D97A0243106933D97A02451068B1983492608
OK
以上这组PDU格式的十六进制字符串,不但包含了短消息的内容,同时包含了发送者的手机号码、短信息中心号码、短消息发送时间等。
下面对信息内容进行分析:
0D:短信息中心地址(号码)长度。
91:短信息中心号码类型,91是TON/NPI。TON/NPI遵守International/E.164标准,指在号码前需加+号;此外还可直有其他数值,但91最常用。
683108370105F0:SMSC 短信息所使用的服务中心号码13807310500。它经过十六进制以字节为单位的高低半字节换位处理,号码是奇数的添F,构成一个HEX字节。
04:PDU类型,文件头字节。
0B:主叫号码长度。
81:主叫号码类型。
3179133208F1:0A主叫号码,也经过了处理,实际号码为13973123801。
00:PID,为协议标识。
00:DCS短信息编码类型是GSM Default Alphabet,即由7位ASCII码移位组成8位十六进制码(octet),其方法见表2。
1sthex
B0
A6
A5
A4
A3
A2
A1
A0
2ndhex
C1
C0
B6
B5
B4
B3
B2
B1
3rdhex
D2
D1
D0
C6
C5
C4
C3
C2
4thhex
E3
E2
E1
E0
D6
D5
D4
D3
5thhex
F4
F3
F2
F1
F0
E6
E5
E4
6thhex
G5
G4
G3
G2
G1
G0
F6
F5
6thhex
H6
H5
H4
H3
H2
H1
H0
G6
02608041003380:SCTS短信息发送时间,02/06/08/14:00:33.08。
26:UDL经处理后的8位码(octet)短信息字节长度,它小于消息ASCII码的长度。
32184CF682D95E30DC2B36D3D170A0243106933D97A0243106933D97A02451068B1983492608:UD 编码后的PDU数据,短信息内容“2002/06/08/13:48ID102OKID103OK ID201FAIL”。
3 短信息的发送
与接收短信息一样,发送时也要先建立联接,传送一些初始化指令,然后发送短消息内容。下面是用SIEMENS S3508i发送一个短信息的例子,内容为:“2002/06/08/13:48 ID102OK ID103OK ID201FAIL”。其ASCII码为:“32030322F30362F30382F31333A34382049443130324F4B
2049443130334F4B2049443230314641494C20”。
发送:ATE {请求建立联接}
手机回答:OK {已建立联接}
发送:AT+CMGF=0 {选择PDU模式}
手机回答:OK
发送:AT+CSMS=0{检测手机是否支持SMS命令}
手机回答:OK
发送:AT+CMGS=52{发送短信息,52 octets(不包括最初9个短信息元字节)}
手机回答:>{允许上传数据,ASCII码是($20H,$2EH)}
发送:0891683108701305F011000B813179133208F10000AA2632184CF682D95
E30DC2B36D3D170A0243106933D97A0243106933D97A02451068B19834926081A
不计最初9个短消息信元字节,本短信息有52字节(104个字符)。AT+CMGS仅说明了SMSC信息内容的长度,在收到手机回答的>符号手才发送PDU数据串,并以(CTRL^Z)结束。
PDU数据串的内容说明如下:
我要评论
  • 匿名发表
  • [添加到收藏夹]
  • 发表评论:(匿名发表无需登录,已登录用户可直接发表。) 登录状态:未登录
最新评论
    暂无已审核评论!

网站导航 管理登陆 ┊ 免责声明 问题反馈  友链说明
本站部分内容来自网络共享资源,如有冒犯您的权利请来信告之删除或纠正!
不得对本站进行复制、盗链或镜像,转载内容须获得同意或授权;欢迎友情链接、站务合作!

    我要报警 Alexa
 mcusy_cn#126.com (请把#改成@) 交流:522422171
本站学习交流群:138..158(高级群1-)、77930286(高级群2)、61804809(群3)
Copyright© MCUSY All Rights Reserved
本站网警备案号: WZ36040002485
  ICP备案证书号:粤ICP备09034963号