找回密码
 注册
LabVIEW+单片机学习套件全套教程资料下载[免费]LabVIEW论坛精华列表贴USB0816数据采集卡《LabVIEW宝典》
LabWindows/CVI论坛精华贴NET0816以太网数据采集卡RC0210远程设备授权系统 关闭关停锁定打开设备 户外分布式数据采集
NET1624低速高精度以太网数据采集卡WIFI0824SD无线WIFI网络数据采集卡脱机运行 SD存储 小尺寸微型 串口采集远程采集 安卓 手持移动采集 纪录仪
查看: 2591|回复: 10

求助:用labview实现PDU格式短消息接受与发送

[复制链接]
发表于 2008-1-24 20:50:05 | 显示全部楼层 |阅读模式
小弟是初学者刚拿到课题一头雾水,希望哪位高手指点一下!!!
 楼主| 发表于 2008-1-24 21:05:23 | 显示全部楼层
高手能教小弟的 加QQ:314603704 谢谢
回复 顶

使用道具 举报

发表于 2008-1-24 22:27:51 | 显示全部楼层
通过串口通信,而且百度上信息很多,多看看,先了解下

pdu的编码格式

08 //短消息中心长度

91 //短消息中心有国家编码 没有为81

68 31 08 02 00 05 f0 //短消息中心

31 //需要状态报告//不需为11

00 //永远为00 //分割符

0D //目标号码的长度14位

91 //有国家编码//没有为81

68 31 36 32 64 49 F0 //目标号码 +8613632346940

00 //TP-PID.协议标识,一般为00,其他值大家知道的帮忙补充一下

08 //是否免提//是为18

A7 //有效期标志

04 //正文4字节

4F 60 59 7D //你好 短消息内容

若没有短消息中心,编码为:

00 //表示默认短消息中心

31 //需要状态报告//不需为11

00 //永远为00 //分割符

0D //目标号码的长度14位

91 //有国家编码//没有为81

68 31 36 32 64 49 F0 //目标号码 +8613632346940

00 //TP-PID.协议标识,一般为00,其他值大家知道的帮忙补充一下

08 //是否免提//是为18

A7 //有效期标志

04 //正文4字节

4F 60 59 7D //你好 短消息内容

在此感谢笨幽灵大木头,.呵呵

中文按编码以后的长度 div 2

英文按编码以后的长度* 8 div 14

你就按这样写就好了,通用

bit7 编码 是00

UCS2 编码 是08

免提的话

bit7 编码 是10

UCS2 编码 是18


与短消息开发相关的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”指令即可读出短消息内容。

3.PDU数据格式分析:

例如,我们要将字符“Hi”字符发送到目的地“13677328099”

PDU字符串为:

08 91 683108701305F0 11 00 0D 91 3176378290F9 00 00 00 02 C834

⑴08—短信息中心地址长度。指(91)+(683108701305F0)的长度。

⑵91—短信息中心号码类型。91是TON/NPI遵守International/E.164标准,指在号码前需加‘+’号;此外还有其它数值,但91最常用。

91—10010001

BIT No. 7 6 5 4 3 2 1 0

Name 1 数值类型 号码鉴别

数值类型(Type of Number):000—未知,001—国际,010—国内,111—留作扩展;

号码鉴别(Numbering plan identification):0000—未知,0001—ISDN/电话号码(E.164/E.163),1111—留作扩展;

⑶683108701305F0—短信息中心号码。由于位置上略有处理,实际号码应为:8613800731500(字母F是指长度减1)。这需要根据不同的地域作相应的修改。

⑴、⑵、⑶通称短消息中心地址(Address of the SMSC)。

⑷11—文件头字节。

11&h=00010001&b

BIT No. 7 6 5 4 3 2 1 0

Name TP-RP TP-UDHI TP-SPR TP-VFP TP-RD TP-MTI

Value 0 0 0 1 0 0 0 1

应答路径—TP-RP(TP-Reply-Path):0—不设置; 1—设置

用户数据头标识—TP-UDHL(TP-User-Data-Header-Indicator):0—不含任何头信息; 1—含头信息

状态报告要求—TP-SPR(TP-Status-Report-Request):0—需要报告; 1—不需要报告

有效期格式—TP-VPF(TP-Validity-Period-Format):00—不提供(Not present); 10—整型(标准);01—预留; 11—提供8位字节的一半(Semi-Octet Represented)

拒绝复制—TP-RD(TP-Reject-Duplicates):0—接受复制; 1—拒绝复制

信息类型提示—TP-MTI(TP-Message-Type-Indicator):00—读出(Deliver); 01—提交(Submit)

⑸00—信息类型(TP-Message-Reference)

⑹0B—被叫号码长度。

⑺91—被叫号码类型(同⑵)。

⑻3176378290F9—被叫号码,经过了位移处理,实际号码为“13677328099”。

⑹、⑺、⑻通称目的地址(TP-Destination-Address)。

⑼00—协议标识TP-PID(TP-Protocol-Identifier)

BIT No. 7 6 5 4 3 2 1 0

Bit No.7与Bit No.6: 00—如下面定义的分配Bit No.0—Bit No.5;01—参见GSM03.40协议标识完全定义;10—预留;11—为服务中心(SC)特殊用途分配Bit No.0—Bit No.5。

一般将这两位置为00。

Bit No.5:0—不使用远程网络,只是短消息设备之间的协议;1—使用远程网络。

Bit No.0—Bits No.4:00000—隐含;00001—电传;00010—group 3 telefax;00100—语音;00101—欧洲无线信息系统(ERMES);00110—国内系统;10001—任何基于X.400的公用信息处理系统;10010—Email。

⑽00—数据编码方案TP-DCS(TP-Data-Coding-Scheme)

BIT No. 7 6 5 4 3 2 1 0

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—默认的字母表,01—8bit,10—USC2(16bit),11—预留;Bit No.1与Bit No.0:00—Class 0,01—Class 1,10—Class 2(SIM卡特定信息),11—Class 3。

⑾00—有效期TP-VP(TP-Valid-Period)

VP value(&h) 相应的有效期

00 to 8F (VP+1)*5 分钟

90 to A7 12小时+(VP-143)*30分钟

A8 to C4 (VP-166)*1天

C5 to FF (VP-192)*1 周

⑿02—用户数据长度TP-UDL(TP-User-Data-Length)

⒀C834—用户数据TP-UD(TP-User-Data)“Hi”

4.短消息编码

设需要发送的短消息内容为“Hi”,使用的GSM字符集为7位编码。首先将字符转换为7位的二进制,然后,将后面字符的位调用到前面,补齐前面的差别。例如:H翻译成1001000,i翻译成1101001,显然H的二进制编码不足八位,那么就将i的最后一位补足到H的前面。那么就成了11001000(C8),i剩下六位110100,前面再补两个0,变成00110100(34),于是“Hi”就变成了两个八进制数 C8 34。

5.短消息的发送与接收案例

鉴于TC35(T)支持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)获取短消息内容(Once more),假设INDEX=8。

AT+CMGR=8

返回信息如下:

+CMGR: “REC UNREAD”,”+8613508485560″,,”01/07/16,15:37:28+32″,Once more

6.注意事项

(1)短消息中心一般不会改动,如果短消息中心号码改动,在使用“AT+CSCA”语句时,记住TC35要重新启动,否则TC35不能正常工作(TC35T不存在此问题)。

(2)某些SIM卡带有密码,启动时需要输入密码。
回复 顶

使用道具 举报

发表于 2008-1-24 22:28:18 | 显示全部楼层
GSM无线模块短消息PDU 格式说明
来源未知
第一部分PDU 格式
0891683108200105F011000B813119169083F80000A806C9363C3CA603
以上是一个SUBMIT-PDU 发出例子分析内容如下
08 91 68 31 08
20 01 05
F0 11 00 0B 81 31 19 16
90 83 F8 00 00 A8 06 C9363C3CA603
Length Tosca Address FO(PDU第一个字节) MR(消息参考号码) Length Toda address PID DSC VP UDL UD
SCA(服务中心号码) DA(目标地址) 协议标示 数据编码标准 允许时间 用户数据长度 用户数据
1-12个字节 1字节 1字节 2-12个字节 1字节 1字节 1字节 1字节 0-140字节


收到的DELIVER-PDU
SCA FO OA PID DCS SCTS UDL UD
服务中心号码 第一字节 原地址 协议表示 编码标准 服务中心时间戳 用户数据长度 用户数据


一、SCA服务中心号码
08 91 68 31 08 20 01 05 F0
Length(长度) Tosca(服务中心号码类型) Address(地址)
SCA服务中心号码


长度08即SCA区去除08外后面的字节数单位是字节如上91683108200105F0共8字节但是当长度值为00时后面SCA区将只有00后面的号码类型和地址都不存在发送短消息时从SIM卡读出SCA号码此号码要用at+csca=xxxxx设定
Tosca服务中心号发类型91为国际型81为未知类型号码A1为国内型一般为国际型
Address地址每个字节先用低位4bit后用4-7bit如果号码个数为奇数个最后一个字节的4-7bit全部设置为1即FxH如号码1234567,变化好以后就是21 43 65 F7”;

二、FO信息第一字节
收到的PDU,典型为04H
BIT 7 6 5 4 3 2 1 0
参数 RP UDHI SRI - - MMS MTI MTI


发送的PDU,典型为11H
BIT 7 6 5 4 3 2 1 0
参数 RP UDHI SRR VPF VPF RD MTI MTI


MTI 2bit消息类型00收01发其余值参考SMS with the M20文档P.22
MMS 1bit短消息服务中心是否有更多短消息等待移动台1有0无默认为1
SRI 1bit状态报告标示0不需要状态返回到移动设备1需要默认为0
UDHI 1bit用户数据头标示0用户数据没有头信息1有一般为0
RP 1bit是否有回复路径的标示1有0没有一般为0
VPF 2bit有效期限格式00 VP不存在10 VP区存在用一个字节表示是相对值01 保留11 存在半个字节表示绝对值
RD 1bit重复信元丢弃0通知服务中心碰到同源同目的地同样的MR短消息序号的短消息接受1抛弃此时将在短消息提交报告中返回一个适当的FCS值
SRR 1bit状态报告要求.
三、MR短消息参考
1个字节表示移动台向短消息服务中心提交的短消息序号从0到255一般移动模块会自动改动所以默认为00
四、OA短消息原发手机地址
OB 81 31 19 16 90 83 F8
Length(长度) Toda(地址类型) Address(地址)
DA(目标地址)
2-12字节

Length为地址的数字个数
Toda地址类型91为国际型81为国内型
Address地址编码方法与SCA同一个字节先用低4bit奇数个号码最后一位高四位设为F.
五、DA目的手机地址
短消息目的地址参考OA
六、PID协议标志
是短消息传输层作为高层协议参考或者是远程设备协同工作的标示需要服务商支持但是00H是所有服务商都支持的建议采用00H即可
七、DCS数据编码方法
表示数据编码方法和消息类别一般为00H默认7位编码等级号0。04为8位编码。
UCS2编码0等级为08H可以传输中文。

7 6 5 4 3 2 1 0
编码组 保留 X X X

具体如下:
编码组bit7-4 Bit3-0
OOXX BIT5:0文本未压缩1用GSM标准压缩
Bit4:0表示bit1,0是保留没有消息类别1表示有
Bit1  Bit0   消息类别
0      0      Class0
0      1      Class1
1      0      Class2
1      1      Class3
Bit3   Bit2   字母表
0      0      默认字母表
0      1      8bit数据
1      0      UCS2编码
1      1      保留

其余情况暂不讨论
Class0短消息直接显示到用户终端
Class1短消息存储在SIM卡上
Class2短消息必须存储在SIM卡上禁止直接传输到中断
Class3短消息存贮在用户设备上
八、SCTS服务中心时间戳
告诉目标用户短消息到达时间为7个字节表示
Year Month Day Hour Minute Second Time Zone
10 40 32 21 94 83 00

表示01年4月23号12点49分38秒时区表示本地时间和格林尼治标准时间差。
九、VP 合法时间
标示短消息服务中心在接到短消息后在没有发到目标机前可以保证短消息存在的时间其格式在FO中的VPF中设定一般是相对值10B这时时间如下:
VP值,16进制 相对合法时间
00-8F (VP+1)*5分
90-A7 12小时+(VP-143)*30分钟
A8-C4 (VP-166)*1天
C5-FF (VP-192)*1周

如果是绝对时间即VPF=11B则VP区和SCTS同.

十、UDL用户数据长度
1 如果用户用默认7位编码
1>没有用户数据头此数字标示7bit的字符个数
2>有用户数据头此数字表示包括用户数据头包含补丁在内在内的7bit个数
2 如果用户用8位编码
表示用户数据区的字节数有数据头信息包括在内
3 如果为UCS2编码则是用户数据区的字节数
十一、UD用户数据
1 如果是7bit编码则从前向后每个字节从低到高位使用最后不足的一个字节的各位全部用0补全最多可以有160个字符例子如下
设一个字母为x,它的编码的17bit分别为x1x7,如8个字母分别为ABCDEFGH,则编码如下
B1 A7 A6 A5 A4 A3 A2 A1
C2 C1 B7 B6 B5 B4 B3 B2
D3 D2 D1 C7 C6 C5 C4 C3
E4 E3 E2 E1 D7 D6 D5 D4
F5 F4 F3 F2 F1 E7 E6 E5
G6 G5 G4 G3 G2 G1 F7 F6
H7 H6 H5 H4 H3 H2 H1 G7

2 如果是8bit编码很简单最多140个字符
3 如果是UCS2编码则最多是70个字符也比较简单
至于有用户数据头的情况在这里暂不讨论
回复 顶

使用道具 举报

 楼主| 发表于 2008-1-25 12:36:47 | 显示全部楼层
回复 顶

使用道具 举报

 楼主| 发表于 2008-1-25 12:44:48 | 显示全部楼层
我现在不太知道的是,这样把编码和LABVIEW结合。。
回复 顶

使用道具 举报

发表于 2008-1-27 16:45:49 | 显示全部楼层
我大学时做过个论文,那时是用C51做的,下边是有原文,你看有没有帮助!!

本帖子中包含更多资源

您需要 登录 才可以下载或查看,没有账号?注册

×
回复 顶

使用道具 举报

 楼主| 发表于 2008-1-28 12:49:41 | 显示全部楼层
先谢谢这位大哥的帮助,资料很有用,我导师的另一个课题几乎和你的一样,可惜我没选.....
回复 顶

使用道具 举报

 楼主| 发表于 2008-1-28 12:55:03 | 显示全部楼层
我现在还不太清楚怎么把那源程序和LABVIEW结合起来..
回复 顶

使用道具 举报

发表于 2008-1-29 21:42:11 | 显示全部楼层
你准备怎么与你的下位机通信呢,你的下位机通信模块好了吗?

一般都是用串口,那么在LV中就是用VISA来操作串口
当然用MSCOMM控件自已也可以

我上面发的那个说明很清楚,指令的方式如何写

若你还是不清楚,
有一个方法是,你找一个手机带数据线的(最好不要用智能手机),一般MTK方案的手机都行
然后在系统中装一下驱动,一般就会在设备管理器中出现一个串口,
然后你用串口监视软件来监听,这个COM口,这个软件网上很多
再用附带的软件,发短信,把监听的信息分析下,你就明白是怎么发信息了
回复 顶

使用道具 举报

发表于 2008-2-1 15:02:59 | 显示全部楼层
回复 顶

使用道具 举报

您需要登录后才可以回帖 登录 | 注册

本版积分规则

Archiver|手机版|cpubbs论坛. ( 粤ICP备09171248号 )

GMT+8, 2026-9-30 11:25 , Processed in 0.057080 second(s), 12 queries , Gzip On, File On.

Powered by Discuz! X5.0

© 2001-2026 Discuz! Team.

快速回复 返回顶部 返回列表