怎样如何用手机查看监控pdu文件

chinese-to-ucs 中文转unicode,方便发短信用,另有PDU格式转换 SMS 手机 编程 238万源代码下载-
&文件名称: chinese-to-ucs& & [
& & & & &&]
&&所属分类:
&&开发工具: LabView
&&文件大小: 10 KB
&&上传时间:
&&下载次数: 19
&&提 供 者:
&详细说明:中文转unicode,方便发短信用,另有PDU格式转换-chinese to unicode
文件列表(点击判断是否您需要的文件,如果是垃圾请在下面评价投诉):
&&chinese to ucs.vi
&[]:很好,推荐下载
&近期下载过的用户:
&相关搜索:
&输入关键字,在本站238万海量源码库中尽情搜索:
&[] - unicode转换,用于收发中文短信,把中文汉字转换成pdu字符
&[] - PDU编码,实现短信报警,DTU传输的中文报警功能,功能强大!
&[] - vc开发时候用到的unicode库文件,包括了所有的lib和dll文件,同时包括了添加方法
&[] - 本系统在传统空调控制的基础上增设短信远程控制所需的短信收发、处理、信息反馈等模块,对空调实现远程操作,并能通过短信向用户反馈室内温度、空调运行状态等各种信息
&[] - labview的中文转成unicode码的模块,可以作为发送短信模块的子VI使用。
&[] - PDU短信的编程,做成标准类,三种编码和解码都有
&[] - PDU编解码源代码。VB6源代码。将汉字转换成PDU编码。也可以将PDU转为汉字摘要:介绍用mcs-51系列
控制手机收发短信息的原理、硬件、pdu数据格式和符合gsm07.05协议要求的短信息发送/接收程序,同时给出了一个应用实例。
关键词: 单片机 短信息 pdu gsm 接口
gsm(global system for&mobile communation)系统是目前基于时分多址技术的移动通讯体制中比较成熟、完善、应用最广泛的一种系统。目前已建成的覆盖全国的gsm数字蜂窝移动通信网,是我国公众移动通信网的主要方式。主要提供话音、短信息、数据等多种业务。基于gsm短消息功能可以做成传输各种检测、监控数据信号和控制命令的数据通信系统,能广泛用于远程监控、定位导航、个人通信终端等。由于公众gsm网络在全球范围内实现了联网和漫游,建立上述系统不须再组建专用通信网络,所以具有实时传输数据功能的短消息应用将得到迅速普及。
目前,人们设计的各类dte设备基础上以为核心,带有rs232/rs485等通信接口,在物理层上很容易实现与gsm设置(如手机等)的连接。但对sms协议的研究文献却较少,特别是用 单片机 控制手机的sms(short message service)收发的研究更少。笔者在用单片机设计基于gsm的sms数据采集器时,对怎样用单片机控制手机收发短信息进行了探讨。1 串口控制sms的工作原理
单片机 与手机一般采用串行异步通信接口,具有红外和通信电缆两种连接方式,通信速度可设定,通常为19200bps。采用红外接口的优点是单片机系统与手机电气隔离,相互不干扰,接口各自独立,使用方便;缺点是通信距离较短,红外传播的方向性对接口相对位置有要求。采用电缆连接时,数据传输的可靠性较好;其主要缺点是接口的电气参数不兼容,设计不当时会对手机的通信质量产生影响。笔者经过实践设计的接口电路如图1。
gsm的短信息业务sms利用信令信道传输,这是gsm通信网所特有的。它不用拨号建立连接,把要发的信息加上目的地址发送到短信息服务中心,经短消息服务中心完成存储后再发送给最终的信宿。所以当目的gsm终端没开机时信息不会丢失。每个短消息的信息量限制为160字节。
现在市场上大多数手机均支持gsm07.05规定的at指令集。该指令集是etsi(欧洲通信技术委员会)发布的,其中包含了对sms的控制。利用gsm手机的串行接口, 单片机 向手机收发一系列的at命令,就能达到控制手机收发sms的目的。etsi的gsm07.05中用于sms收发控制的主要at命令见表1。表1 常用at指令gsm07.05function(功能)ate0resetat csms选择短信息服务at cpms选择短信息内存at cmgf选择短信息格式at csca短信息中心地址at cnmi显示新收到的短信息at cmgr读短信息at cmgs发送短信息at cmgl列出sim卡中短信息at cmss从sim内存中发短信息at cmgw向sim内存中写入待发短信息at cmgd删除sim内存中的短信息at cscb选择蜂窝广播信息
gsm手机通过异步通信接口实现对sms的控制共有三种接入协议:bk mode;基于at命令的textmode;基于at命令的pdu mode。pdu模式是发送或接收手机sms信息的一种方法,短信息正文经过十六进制后被传送。目前,pdu mode应用最为广泛,基本上全国所有的电信局都提供支持pdu mode的短消息业务。有些地址则不支持text mode和block mode,这就限制了这两种接入协议的应用,而且pdu mode已有取代block mode的趋势。为了保证系统具有广泛的适用性,本文采用pdu模式收发sms。
pdu相当于一个数据包,它由构成消息(sms)的信息组成。作为一种数据单元,它必须包含源/目的地址、保护(有效)时间、数据格式、协议类型和正文,正文长度可达140字节,它们都以十六进制表示。pdu结构根据短消息由移动终端发起或以移动终端为目的而不同。
当由移动终端发起时,pdu的格式为:smscpdu类型mrdapiddcsvpudlud(0~140octed)
当以移动终端为目的时,pdu的格式为:smscpdu类型oapiddcssctsudlud(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。
操作过程如下({}内为注释):
手机回答:ok {已建立联接}
发送:at cmgf=0 {选用pdu格式}
手机回答:ok {允许选择pdu格式}
发送:at cmgl=2 {列出已有的短信息}
手机回答: cmgl:1,2,,24{1表示信息个数,2表示未发信息,24表示信息总容量}
0d05ff84cf682d
95e0dc2b36d3d170ad97ad97a3492608
以上这组pdu格式的十六进制字符串,不但包含了短消息的内容,同时包含了发送者的手机号码、短信息中心号码、短消息发送时间等。
下面对信息内容进行分析:
0d:短信息中心地址(号码)长度。
91:短信息中心号码类型,91是ton/npi。ton/npi遵守international/e.164标准,指在号码前需加' '号;此外还可直有其他数值,但91最常用。
f0:smsc 短信息所使用的服务中心号码。它经过十六进制以字节为单位的高低半字节换位处理,号码是奇数的添f,构成一个hex字节。
04:pdu类型,文件头字节。
0b:主叫号码长度。
81:主叫号码类型。
f1:0a主叫号码,也经过了处理,实际号码为。
00:pid,为协议标识。
00:dcs短信息编码类型是gsm default alphabet,即由7位ascii码移位组成8位十六进制码(octet),其方法见表2。1sthexb0a6a5a4a3a2a1a02ndhexc1c0b6b5b4b3b2b13rdhexd2d1d0c6c5c4c3c24thhexe3e2e1e0d6d5d4d35thhexf4f3f2f1f0e6e5e46thhexg5g4g3g2g1g0f6f56thhexh6h5h4h3h2h1h0g6
80:scts短信息发送时间,02/06/08/14:00:33.08。
26:udl经处理后的8位码(octet)短信息字节长度,它小于消息ascii码的长度。
3e30dc2b36d3d170ad97ad97a3492608:ud 编码后的pdu数据,短信息内容“/13:48id102okid103ok id201fail”。
3 短信息的发送
与接收短信息一样,发送时也要先建立联接,传送一些初始化指令,然后发送短消息内容。下面是用siemens s3508i发送一个短信息的例子,内容为:“/13:48 id102ok id103ok id201fail”。其ascii码为:“62fa30324f4b
发送:ate {请求建立联接}
手机回答:ok {已建立联接}
发送:at cmgf=0 {选择pdu模式}
手机回答:ok
发送:at csms=0{检测手机是否支持sms命令}
手机回答:ok
发送:at cmgs=52{发送短信息,52 octets(不包括最初9个短信息元字节)}
手机回答:&{允许上传数据,ascii码是($20h,$2eh)}
发送:bf14cf682d95
e30dc2b36d3d170ad97ad97aa
不计最初9个短消息信元字节,本短信息有52字节(104个字符)。at cmgs仅说明了smsc信息内容的长度,在收到手机回答的&符号手才发送pdu数据串,并以(l^z)结束。
pdu数据串的内容说明如下:
08:短信息信元smsc(短信息中心号码)的字节长度
91:短信息中心号码类型,91表明中心号码是国际通用电话号码。
f0:短信息中心号码:0。
11:pdu sms发送的文件头字节。这里11指正常发送短信息。
00:信息类型。这里00指让手机自动加上主叫号码。
0b:被叫号码长度。
81:被叫号码类型。
f1:被叫号码。
00:协议标识。
00:短信息编码类型是gsm default alphabet。
aa:短信息被保留的时间为4天,其计算方法依照表3。vp值短消息有效时间长度0~143(vp 1)×5分钟144~16712时 (vp-143)×30分168~1961天×(vp-166)197~2551周×(vp-192)
26:pdu格式短信息编码后字节长度。
3e30dc2b36d3d170ad97ad
97a3492608:编码后的pdu数据,短信息内容为“/13:
48id102okid103ok id201fail”。
1a:ascii码ctrl^z:报文结束标志。
4 应用情况及常见主要问题的解决
笔者用mcs-51系列的 单片机 研制了一个手持式的数据采集产品,通过simeens手机,利用gsm的sms传输数据。经过在国内多个省市较大数量长期广泛的使用,性能良好,没有出现数据丢失的现象。证明上述设计用,性能良好,没有出现数据丢失的现象。证明上述设计是正确的。但在调试和试用阶段也遇到了如下问题:
手机的电缆接口电平一般是3v左右, 单片机 系统的工作一般为2.7~5.5v,范围较宽,为保证数据传输的正确,需在接口加电平限制电路,详见图1。
(2)部分城市无法使用
一些城市的sms平台不允许使用缺省短消息服务中心号码的协议,只需在发送的pdu数据前面几个字节加上中心号码即可,详见本文发送实例。
(3)不能接收已正确发送的短消息
除gsm的sms信道拥塞原因外,主要是pdu中pid字节的设置,使得收到的信息要存入sim卡,而sim卡已满,故不再接收信息。改变pid的设置即可。
(4)收不到开机前的短消息
主要是发送数据时,对短消息有效时间vp值设置不当造成的。
本网站试开通微、小企业商家广告业务;维修点推荐项目。收费实惠有效果!欢迎在QQ或邮箱联系!
试试再找找您想看的资料
资料搜索:
查看相关资料 & & &
   同意评论声明
   发表
尊重网上道德,遵守中华人民共和国的各项有关法律法规
承担一切因您的行为而直接或间接导致的民事或刑事法律责任
本站管理人员有权保留或删除其管辖留言中的任意内容
本站有权在网站内转载或引用您的评论
参与本评论即表明您已经阅读并接受上述条款
copyright & &广电电器(中国梧州) -all right reserved& 若您有什么意见或建议请mail: & &
地址: 电话:(86)774-2826670&2680人阅读
SMS提供了在GSM移动站台(MS)与一个短消息实体(SME)之间通过服务中心(SC)传送短消息的方法。SC提供了在MS与SME之间消息传送的相互联系和转播的功能。
SMS采用存储转发模式,短消息被发送出去之后,不是直接地发送给接收方,而是先存储在SMS(短消息服务中心),然后再由SMC将其转发给接收方。如果接收方当时关机或不在服务区内,SMC会自动保存该短消息,排队并尝试再次发送给接收方。
点到点短消息服务包含两个基本服务:&&&&&&&&&&&&& Þ SM MT(点到点短消息移动接收)&&&&&&&&&&&&& Þ SM MO(点到点短消息移动发送)
通过 SM MT 或 SM MO 方法传送的文本消息包含 140 个八位位组(最大 160 个拉丁字母字符、70个双字节字符)。
本文仅仅给出了简单地一些AT指令及SMS PDU模式的描述。更多的详细资料,请参看下列标准:
Mobile-Station
移动站台负责系统交换管理,控制来自或发往其他电话或数据系统的通信
Short-Message-Entity
短消息实体负责接收和发送短消息。可以位于固话系统、移动基站或其他服务中心内
Short Message Service Center
短消息服务中心负责在移动基站和SME之间中继、存储或转发短消息
Protocol Data Units
协议数据单元
Protocol Data Unit Type
协议数据单元类型
Message Reference
Originator Adress
发送方地址
Destination Adress
接收方地址
Protocol Identifier
Data Coding Scheme
数据编码方案
Service Center Time Stamp
服务中心的时间戳
Validity Period
消息有效期
User Data Length
用户数据长度
Reply Path
User Data Header Indicator
用户数据头标识
Status Report Indication
状态报告指示
Status Report Request
请示状态报告
Validity Period Format
有效期格式
More Messages to Send
有更多的信息需要发送
Reject Duplicate
Message Type Indicator
消息类型指示
Mobile Equipment
Terminal Equipment
Subscriber Identity Modul
Service-Center
Service Center Address
服务中心地址
Short Message Mobile Terminated Point-to-Point
点到点短消息移动接收
Short Message Mobile Originaed Point-to-Point
点到点短消息移动发送
、设置指令
服务中心号码&&&&&& (+CSCA)
服务中心(SC)负责转播和存储转发SME和MS之间的短消息。如果MS支持SMS-MO(短消息服务移动发送),为了使用SMS,必须在MS中设置SMSC(短消息服务中心,SCA)。
使用指令 &AT+CSCA?& 可以查看存储在SIM卡中的当前服务中心地址。
使用AT指令 &AT+CSCA=&SCA&[,&TOSCA&]& 加入短消息服务号码。
查询当前服务中心地址(SCA)设置(从SIM卡中读取)
+CSCA:& &&SCA&&
AT+CSCA=&&SCA&&
定义服务中心地址(SCA) (存储到SIM卡)
服务中心地址(字符型)
服务中心地址的类型设置(编码方式)
AT+CSCA=&+0&
以国际号格式定义服务中心地址(SCA)
AT+CSCA=&+&
以国内号格式定义服务中心地址(SCA)
Þ 为了避免漫游时出现问题,推荐国际号码格式存储所有地址(以&+&和国家代码开头)。
Þ 向你本地的网络提供商询问正确的短消息服务中心号码
Þ SC地址是SMS的一部分!当任何一个SMS被存储到SIM卡上时,SC地址也同时该SMS中。
选择消息服务&&&&&& (+CSMS)
这个指令用于选择消息服务。
返回当前的服务类型及ME支持的信息
返回所有支持的服务类型
AT+CSMS=&SERVICE&
选择消息服务
+ CSMS:& &SERVICE&,&MT&,&MO&,&BM&
接收短消息
发送短消息
接收小区广播消息
返回当前的服务类型及ME支持的信息
+ CSMS:& 0,1,1,1
指令返回当前的消息服务和移动设备支持的服务选项
设置支持的消息类型
+ CSMS:& 0,1,1,1
返回移动设备支持的服务选项
SMS AT 指令的句法兼容 GSM Phase 2
SMS AT 指令的句法兼容 GSM Phase 2+
厂商自定义
&MT&,&MO&,&BM&
选择消息格式&&&&&& (+CMGF)
这个指令用于选择短消息格式。它的参数指示发送、列取、读取和写入的消息所使用的格式。
返回当前的SMS格式
AT+CMGF =?
返回所有支持的SMS格式
AT+CMGF=&MODE&
选择SMS格式
支持的值:
PDU模式(默认的)
返回当前的SMS格式
返回当前的SMS格式
设置SMS类型为Text
、SMS文本模式
、SMS PDU模式
一个完整的SMS消息所包含的所有报头信息被以二进制字符串格式传送。这个二进制串由十六进制格式的IA5 字符组合而成。
使用AT指令&AT+CMGF=0&切换到协议数据模式,之后所有的SMS输入与显示将以PDU格式执行。
发送方SMS-Submit (Mobile Originated)
SMS-SUBMIT的意思就是GSM-Molbile传送一条SMS到服务中心。
5.1.1 向SIM卡存储区写入一条SMS& (+CMGW)
执行指令&AT+CMGW&用于存储一条消息在SIM卡的存储区中。命令返回消息被存储的索引号。
AT+CMGW=&LENGTH&[,&STAT&]
&CTRL-Z&/&ESC&
+CMGW: &INDEX&
如果命令正确执行,返回消息存储位置的索引号
给定的TP层数据单元的八位位组代码数目(不包含服务中心地址的八位位组数目)
除存储未发送的状态之外的状态值
在PDU模式下该值为整型(默认值为0)
在文本模式下该值为字符型(默认值为&REC UNREAD&)
支持的值:
0 &REC UNREAD&
已接收未读的消息(例如新消息)
1 &REC READ&
已接收已读的消息
2 &STO UNSENT&
已存储未发送的消息
3 &STO SENT&
已存储已发送的消息
所有的消息(仅适用于 +CMGL命令)
*)&&& 符号&&&是的移动终端设置返回而产生的
**)& &CTRL&+&Z&执行命令;&ESC&不保存/发送、直接退出执行
5.1.2 发送SIM卡存储区中的一条SMS&&&& (+CMSS)
AT指令&AT+CMSS=&INDEX&[,&DA&[,&TODA&]]&将SIM卡消息存储区中&INDEX&索引位置的消息发送到网络中(SMS-SUBMIT)。如果指定新的接收地址&DA&,它将代替原消息中存储的接收地址。
如果消息传送成功,消息参考值&MR&将返回到终端设备(TE)。通常(当+CSMS&SERVICE&值为1,并且网络支持时),同时返回服务中心时间戳&SCTS&。
AT+CMSS=&INDEX&
+CMSS: &MR&[,&SCTS&]
SIM卡内存位置索引
服务中心时间戳
SIM卡中存储位置1的消息将被发送到服务中心
+CMSS: 255
SMS被发送到服务中心,消息参考为255
5.1.3 直接从终端设置发送SMS&&& (+CMGS)
这个指令用于从一个终端向网络中发送消息(SMS-SUBMIT),而不会在SIM卡中保存所发送的SMS消息。
如果消息传送成功,消息参考值&MR&将返回到终端设备(TE)。通常(当+CSMS&SERVICE&值为1,并且网络支持时),同时返回服务中心时间戳&SCTS&。
AT+CMGS=&LENGTH&
转换SMS输入模式,SMS将会被以&未发送&状态保存。命令后所跟的PDU字串的长度必须在这个命令中指定。
&CTRL-Z&/&ESC&
直接从终端中发送一条SMS,而不将其保存到SIM卡。
+CMGS: &MR&[,&SCTS&]
如果发送成功将返回消息参考
给定的TP层数据单元的八位位组代码数目(不包含服务中心地址的八位位组数目)
服务中心时间戳
*)&&& 符号&&&是的移动终端设备返回而产生的
**)& &CTRL&+&Z&执行命令;&ESC&不保存/发送、直接退出执行
接收方 SMS-DELIVER (Mobile Terminated)
SMS-DELIVER意味着终端设置从服务中心接收到一条SMS消息。
5.2.1 列取消息&&&&&& (+CMGL)
AT+CMGL=&INDEX&
列取内存中指定类型的SMS
+CMGL: &index&&stat&[,&alpha&],&length&
[+CMGL: &index&&stat&[,&alpha&],&length&
查看设备支持的&stat&类型
在PDU模式下该值为整型(默认值为0)
在文本模式下该值为字符型(默认值为&REC UNREAD&)
指示内存中消息的状态
定义的值:
0 &REC UNREAD&
已接收未读的消息(例如新消息)
1 &REC READ&
已接收已读的消息
2 &STO UNSENT&
已存储未发送的消息
3 &STO SENT&
已存储已发送的消息
所有类型的消息
5.2.2 读取消息&&&&&& (+CMGR)
AT+CMGR=&INDEX&
读取内存中指定索引位置的SMS
+CMGR: &STAT&[,&ALPHA&],&LENGTH&
在PDU模式下该值为整型(默认值为0)
在文本模式下该值为字符型(默认值为&REC UNREAD&)
指示内存中消息的状态
0 &REC UNREAD&
已接收未读的消息(例如新消息)
1 &REC READ&
已接收已读的消息
2 &STO UNSENT&
已存储未发送的消息
3 &STO SENT&
已存储已发送的消息
以字符型的数字文字表示的,在SIM电话薄中找到的相应&OA&条目
给定的TP层数据单元的八位位组代码数目(不包含服务中心地址的八位位组)
Þ 切不可直接提交一个DELIVER-SMS!因为它的PDU数据中头信息是与用于提交的PDU不一样的!
Þ在内存(SIM)中至少有最后一个空闲空间,以保证能接收到新的SMS!
5.2.3 删除消息&&&&&& (+CMGD)
AT+CMGD=&INDEX&
删除在SIM卡中索引&INDEX&位置的SMS
、SMS PDU 基本组成元素
下列元素是用于SMS-SUBMIT和SMS-DELIVER中的部分。
Service Center Adress
服务中心的电话号码
Protocol Data Unit Type
协议数据单元类型
Message Reference
所有成功的SMS-SUBMIT参考数目(0..255)
Originator Adress
发送方SME的地址
Destination Adress
接收方SME的地址
Protocol Identifier
参数显示SMSC以何种方式处理SM (比如FAX,、Voice等)
Data Coding Scheme
参数表示用户数据(UD)采用什么编码方案
Service Center Time Stamp
参数表示SMSC接收到消息时的时间戳
Validity Period
参数表示消息在SMSC中不再有效的时长
User Data Length
用户数据段长度
发送方PDU格式SMS-SUBMIT-PDU (Mobile Originated)
&&&&&& 向发送一条SMS,消息内容为:&Test&
&&&&&& 向发送一条SMS,消息内容为:&测试&
接受方PDU格式 SMS-DELIVER-PDU (Mobile Terminated)
&&&&&& 从接收到一条SMS,消息内容为:&Test&
&&&&&& 从接收到一条SMS,消息内容为:&测试&
6.3 SCA 短消息服务中心地址格式
服务中心地址包含三个部分:
SCA组成:1-12个八位位组
例:0505F0
0-10 Octets
Len:短消息中心地址长度。指(91)+(68 31 08 20 05 05 F0)的八位位组数目。如果Len被设置为00&h,并不提供后面的部分,那么终端设备将读取SIM中设置的SCA填充到SMS-PUD中,通过&AT+CSCA=xxxxx&指令可以设置SIM卡中存储的SCA值。
Type:短消息中心地址的类型,是国际的号码还是国内的号码(81&h表示国内,91&h表示国际的)。91&h是TON/NPI遵守International/E.164标准,指在号码前需加&+&号;此外还有其它数值,但91&h最常用。
&&&&&&&&&&&&&&&&&&&& 例:91 &h =
&&&&&&&&&&&&&&&&&&&& 第7位永远置为1
&&&&&&&&&&&&&&&&&&&& 数值类型(Type of Number):
000&未知,001&国际(以 + 开始的地址),010&国内,111&留作扩展;
号码鉴别(Numbering plan identification):
0000&未知,0001&ISDN/电话号码(E.164/E.163),1111&留作扩展;
Add:依照ISDN编号方式的短消息中心地址。
服务中心号码
PDU格式编码
08 91 86 31 08 20 05 05 F0
07 81 31 08 50 21 05 F0
04 81 21 43 65
指令AT+CMGW和AT+CMGS的参数&length&是从PDUType部分开始计算PDU的长度,不包括SCA的长度。所以:
输入:AT+CMGS=19&cr&
输出:AT+CMGS=19&cr&&cr&&lf&&
输入:D09FF29C0E&ctrl+z&
输出:D09FF29C0E&ctrl+z&&cr&&lf&+CMGS: 111&cr&&lf&&cr&&lf&OK&cr&&lf&
SCA = 0505F0
输入:AT+CMGS=19&cr&
输出:AT+CMGS=19&cr&&cr&&lf&&
输入:FD4B8BD5&ctrl+z&
输出:FD4B8BD5&ctrl+z&&cr&&lf&+CMGS: 112&cr&&lf&&cr&&lf&OK&cr&&lf&
&cr& = 0D&h
&lf& = 0A&h
&ctrl+z& = 1A&h
6.4 PDU Type(第一个八位位组)
PDUType是SMS-SUBMIT、SMS-DELIVER的第一个八位位组。它分别由下面几个部分组成:
PDUType组成:1个八位位组
&&&&&& 发送方:SMS-SUBMIT
例:31&h = &b
接收方:SMS-DELIVER
例:04&h = &b
&&&&&& :&&&&& 应答路径(Reply Paht),
0 & 未设置;
&&&&&& :& 用户数据头标识(User Data Header Indicator),
0 & 用户数据(UD)部分不包含头信息;
1 & 用户数据(UD)开始部分包含用户头信息
&&&&&& :&&& 请求状态报告(Status Report Request),
0 & 不需要报告;
1 & 需要报告
&&&&&& :&&&& 状态报告指示(Status Report Indication),此值仅被短消息服务中心(SMSC)设置
&&&&&&&&&&&&&&&&&&&& 0 & 状态报告将不会返回给短消息实体(SME)
&&&&&&&&&&&&&&&&&&&& 1 & 状态报告将返回给短消息实体(SME)
&&&&&& :&&& 有效期格式(Validity Period Format),
&&&&&&&&&&&&&&&&&&&& 00 & VP 段没有提供(长度为 0 ),
&&&&&&&&&&&&&&&&&&&& 01 & 保留,
&&&&&&&&&&&&&&&&&&&& 10 & VP 段以整型形式提供(相对的),
&&&&&&&&&&&&&&&&&&&& 11 & VP 段以8位组的一半(semi-octet)形式提供(绝对的)
&&&&&& :&&&&& 拒绝复本(Reject Duplicate),
&&&&&&&&&&&&&&&&&&&& 0 & 通知 短消息服务中心(SMSC)接受一个SMS-SUBMIT,即使该消息是先前已提交过的,并还存在于SMSC中未发送出去。MS重复的条件是:消息参考(MR)、接收方地址(DA)及发送方地址(OA)相同
&&&&&&&&&&&&&&&&&&&& 1 & 通知 SMSC 拒绝一个重复的 SMS
&&&&&& :&& 有更多的信息需要发送(More Messages to Send),此值仅被 SMSC 设置
&&&&&&&&&&&&&&&&&&&& 0 & 在 SMSC 中有更多的信息等待 MS
&&&&&&&&&&&&&&&&&&&& 1 & 在 SMSC 中没有更多的信息等待 MS
&&&&&& :&&& 信息类型指示(Message Type Indicator)
&&&&&&&&&&&&&&&&&&&& 00 & SMS-DELIVER(SMSC&MS)
&&&&&&&&&&&&&&&&&&&& 00 & SMS-DELIVER REPORT(MS & SMSC)
当手机接收到 SMS-DELIVER 时自动产生
&&&&&&&&&&&&&&&&&&&& 01 & SMS-SUBMIT(MS & SMSC)
&&&&&&&&&&&&&&&&&&&& 01 & SMS- SUBMIT REPORT(SMSC & MS)
&&&&&&&&&&&&&&&&&&&& 10 & SMS-STATUS REPORT (SMSC & MS)
&&&&&&&&&&&&&&&&&&&& 10 & SMS-COMMAND(MS & SMSC)
&&&&&&&&&&&&&&&&&&&& 11 & 保留
&&&&&&&&&&&&& 注:(粗体代表手机支持的类型,并不是所有的 PDU 类型均被服务中心支持)
PDUType是PDU的第一个八位位组,而并不是服务中心号码后的第一个字节!
6.5 MR 信息参考 (Message Reference)
&&&&&& 设为 00 即可
6.6 DA/OA 接收方地址与发送方地址
OA与DA格式是一样的,如下所示:
DA组成:2-12个八位位组
例:0D09F8
0-10 Octets
Len:地址长度。指8 的长度。这与SCA中的定义不一样!
Type:短消息中心地址的类型,是国际的号码还是国内的号码(81&h表示国内,91&h表示国际的)。
Add:依照ISDN编号方式的短消息中心地址。
PDU格式编码
0D 91 86 31 58 71 42 09 F8
0B 81 31 58 71 42 09 F8
0F A1 01 06 15 62 88 21 43 F5
06 81 21 43 65
&&&&&& *) 小灵通号码
6.7 PID 协议标识 (Protocol-Identifier)
&&&&&& 对于标准情况下的下 MS-to-SC 短消息传送,只需设置 PID 为 00
6.8 DCS 数据编码方案 (DataCoding-Scheme)
= 00&h& 7 bit 数据编码 默认字符集
= F6&h& 8 bit 数据编码 Class 1
= 08&h& USC2(16bit)双字节字符集
&&&&&& Bit No.7与Bit No.6:
一般设置为 00;
&&&&&& Bit No.5:
0 & 文本未压缩,1 & 文本用GSM标准压缩算法压缩;
&&&&&& Bit No.4:
0 & 表示 Bit No.1、Bit No.0 为保留位,不含信息类型信息,
&&&&&&&&&&&&& 1 & 表示 Bit No.1、Bit No.0 含有信息类型信息;
&&&&&& Bit No.3与Bit No.2:
00 & 默认的字母表,每个字符占用 7 比特位,此时最大可以传送 160 字符
01 & 8bit,此时最大只能传送 140 个字符
10 & USC2(16bit), 传送双字节字符集
11 & 预留;
&&&&&& Bit No.1与Bit No.0:
00 & Class 0,短消息直接显示在屏幕上
01 & Class 1,
10 & Class 2(SIM卡特定信息),
11 & Class 3。
&&&&&& 示例:
信息 Class
default (7-bit)
default (7-bit)
Class 0 (immediate display)
default (7-bit)
Class 1 (Mobile Equipment- specific)
default (7-bit)
Class 2 (SIM specific message)
default (7-bit)
Class 3 (Class3 Terminate Equipment- specific)
Class 0 (immediate display)
Class 1 (Mobile Equipment- specific)
Class 2 (SIM specific message)
Class 3 (Class3 Terminate Equipment- specific)
Class 0 (immediate display)
6.9 VP 信息有效期(Validity Period)
&&&&&& 第一种情况(相对的):&&&& VPF = 10& VP = AA H& (四天)
&&&&&& 第二种情况(绝对的):&&&& VPF = 11
&&&&&&&&&&&&&&&&&&&& 表示 03-08-20 09:45:33
&&&&&& VP 段以整型或半个8位组(semi-octet)形式提供。
第一种情况,VP为一个8位组,给定有效期的长度,
从 SMS-SUBMIT 被 SMSC 接受开始计算。
第二种情况,VP为七个8位组,给定有效期终止的绝对时间。
&&&&&& 在第一种情况下,有效期表示格式如下所示:
相应的有效期
(VF+1)*5 分钟& 从 5 分钟间隔到 12 个小时
12 小时 + (VF & 143)*30 分钟
&(VP & 166) * 1 天
&(VP & 192) * 1 周
第二种情况下的时间形式与 SCTS(Service Center TimeStamp)形式一致。
6.10 SCTS 服务中心时间戳(Service Center TimeStamp)
&&&&&& 占用七个8位组,格式如 VP 的第二种情况所示
6.11 UDL 用户数据长度 (User-Data-Length (Amount of Characters))
UDL 以整型形式提供,表示后面用户数据段的数据长度。
数据格式有3种: 7bit,8bit,16bit。
其中7bit采用GSM字符集,8bit采用ASCII字符集,16bit采用Unicode字符集。
0 .. 140 octets
E8 32 9B FD 06
如:7bit数据 &Test&
&&&&&&& UDL = 04, UD = D4 F2 9C 0E
&&& 又如:16bit数据 &Test&
&&&&&&& UDL = 08, UD = 00 54 00 65 00 73 00 74
用户数据(UD)的编码方式请参考
7、常用 AT 指令
功&&&&&&&&&&&&&&&&&&&& 能
Send an SMS command(发出一条短消息命令)
Delete SMS message(删除SIM卡内存的短消息)
Select SMS message formate(选择短消息信息格式:0-PDU;1-文本)
List SMS message from preferred store(列出SIM卡中的短消息PDU/text0/&REC UNREAD&&& -未读1/&REC READ&&&&&&&& -已读2/&STO UNSENT&&& -待发3/&STO SENT&&&&&&&&&&&&&&& -已发4/&ALL&&&&&&&&&&&&&&&&&& -全部的)
Read SMS message(读短消息)
Send SMS message(发送短消息)
Write SMS message to memory(向SIM内存中写入待发的短消息)
Send SMS message from storage(从SIN|M内存中发送短消息)
New SMS message indications(显示新收到的短消息)
Preferred SMS message storage(选择短消息内存)
SMS service center address(短消息中心地址)
Select cell broadcast messages(选择蜂窝广播消息)
Set SMS text mode parameters(设置短消息文本模式参数)
Select Message Service(选择短消息服务)
8、PDU操作实例
一台支持AT操作的手机或手机模块,建议使用SIEMENS的,我使用的是西门子2118。
一根串口数据线。
串口调试软件:
&&&&&& 串口调试助手V2.2&&&&&&&&&&&&& RoaringWindStudio 啸峰工作室&&&&&&&&&&&&&
&&&&&&&&&&&&& 用于通过串口发送和接收数据。
&&&&&& Portmon&&&&&&&&&&&&& Mark Russinovich&&&&&&&&&&&&&
&&&&&&&&&&&&& 用于监听系统中正在使用中的串口或并口当前传送的数据。
&&&&&& 西门子手机工作室
&&&&&&&&&&&&& 通过上面的监听程序分析它的动作,你可以学到很多。
将数据线插在主机的COM1上,然后运行串口调试助手V2.2,设置串口为COM1,波特率为19200,校验位为NONE,数据位为8,停止位为1。然后输入AT再加一个回车,之后点发送按钮,如果手机应答 AT&cr&&cr&&cl&OK&cr&&cl&,则说明电脑已与手机正常连接!如下图所示:
发送PDU SMS
如前面所述,向号码为 +8手机发送一条内容为&Test&的SMS,PDU串是FF29C0E,它的长度是20个八位位组,而最左方的 00 位组是PDU串中的短消息服务中心字段,AT+CMGS=&length&指令的&length&不将其计算在内,所以首先应该发送AT+CMGS=19&cr&:
如上图所示,手机返回了
AT+CMGS=19
这是要尽快输入PDU串:FF29C0E
正确输入了PDU串后,还需要输入一个控制字符&ctrl+z& 1A &h通过手机立即将它发送出去,或输入&esc& 1B &h通过终端设备放弃。
+CMGS: 111
说明短消息发送成功!返回的消息参考是111,表示这是发送成功的第111条消息(服务中心不保证该值绝对准确)。
9、SMS 编码方案与编程实现
a. 英文编码
参见表,设短信息内容为&Hello World!&。缺省的GSM 字符集为7位编码,可以简单地理解为ASCII码(ASCII值小于80Hex,因此,Bit8被忽略),依次将下一7位编码的后几位逐次移至前面,形成新的8位编码,参见表2箭头指示。GSM并非支持所有的ASCII字符显示。
下面是实现英文编码的部分Delphi 5代码:
function Encode1(var s: String): S
& i, j, len: I
& Result := '';
& len := Length(s);
& //j 用于移位计数
& while i &= len do
&&& if i & len then
&&&&& //数据变换
&&&&& cur := (Ord(s[i]) shr j) or ((Ord(s[i+1]) shl (7-j)) and $ff)
&&&&& cur := (Ord(s[i]) shr j) and $7f;
&&& FmtStr(t, '%2.2X', [cur]);
&&& Result := Result+t;
&&& inc(i);
&&& //移位计数达到7位的特别处理
&&& j := (j+1) mod 7;
&&& if j = 0 then
&&&&& inc(i);
&&&&&& b. 中文编码
通过Delphi的WideString类型转换,可以巧妙地实现GB2312到Unicode的编码转换(注意代码页和操作系统相关联)。下面是实现中文编码的部分
GB2312编码
GB2312 编码 BIN
Unicode 编码 BIN 代码页CP936
Delphi 5代码:
function Encode2(var s: WideString): S
& i, len: I
& Result := '';
& len := Length(s);
& while i &= len do
&&& cur := Ord(s[i]);
&&& //BCD转换
&&& FmtStr(t, '%4.4X', [cur]);
&&& Result := Result+t;
&&& inc(i);
Message service error
These are the error codes for +CMS ERROR.
0-127&&&&& GSM 04.11 Annex E-2 values 128-255 GSM 03.40 section 9.2.3.22 values 300&&&&&&&& Phone failure 301&&&&&&& SMS service of phone reserved 302&&&&&&& Operation not allowed 303&&&&&&& Operation not supported 304&&&&&&& Invalid PDU mode parameter 305&&&&&&& Invalid text mode parameter 310&&&&&&& SIM not inserted 311&&&&&&& SIM PIN necessary 312&&&&&&& PH-SIM PIN necessary 313&&&&&&& SIM failure 314&&&&&&& SIM busy 315&&&&&&& SIM wrong 320&&&&&&& Memory failure 321&&&&&&& Invalid memory index 322&&&&&&& Memory full 330&&&&&&& SMSC (message service center) address unknown 331&&&&&&& No network service 332&&&&&&& Network timeout 500&&&&&&& Unknown error 512&&&&&&& Manufacturer specific
0&&&&&&&&&& phone failure
1&&&&&&&&&& no connection to phone
2&&&&&&&&&& Phone-adaptor link reserved
3&&&&&&&&&& operation not allowed
4&&&&&&&&&& operation not supported
5&&&&&&&&&& PH-SIM PIN necessary
10&&&&&&&& SIM not inserted
11&&&&&&&& SIM PIN required
12&&&&&&&& SIM PUK required
13&&&&&&&& SIM failure
14&&&&&&&& SIM busy
15&&&&&&&& SIM wrong
16&&&&&&&& incorrect password
20&&&&&&&& memory full
21&&&&&&&& invalid index
22&&&&&&&& not found
23&&&&&&&& memory failure
24&&&&&&&& text string too long (+CPBW)
25&&&&&&&& invalid characters in text string
26&&&&&&&& dial string to long
27&&&&&&&& invalid characters in dial string
30&&&&&&&& no network service
31&&&&&&&& network timeout
100&&&&&& unknown
265&&&&&& PUK for theft protection necessary
266&&&&&& PUK2 for SIM necessary
267&&&&&&& PIN2 for SIM necessary
发表于 日 9:00
* 以上用户言论只代表其个人观点,不代表CSDN网站的观点或立场
访问:77943次
积分:1000
积分:1000
排名:千里之外
原创:12篇
转载:49篇
评论:16条
(1)(4)(1)(1)(1)(1)(1)(3)(1)(2)(1)(2)(1)(4)(4)(5)(4)(5)(14)(3)(3)(1)

我要回帖

更多关于 如何用手机扫描文件 的文章

 

随机推荐