我们从2011年坚守至今,只想做存粹的技术论坛。  由于网站在外面,点击附件后要很长世间才弹出下载,请耐心等待,勿重复点击不要用Edge和IE浏览器下载,否则提示不安全下载不了

 找回密码
 立即注册
搜索
查看: 770|回复: 0

BENQ23G的彩信发送及编码格分析 - 通信/网络 - 电子工程师俱

[复制链接]

该用户从未签到

1万

主题

1292

回帖

2万

积分

管理员

积分
29577

社区居民最爱沙发原创达人社区明星终身成就奖优秀斑竹奖宣传大使奖特殊贡献奖

QQ
发表于 2013-3-30 00:42:18 | 显示全部楼层 |阅读模式

马上注册,结交更多好友,享用更多功能,让你轻松玩转社区

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

×
<strong>引言</strong>

目前,基于GSM/GPRS模块的无线远程监控系统大多数采用嵌入式处理器,选用Linux操作系统。本文介绍一种采用Winbond公司的77FA8单片机控制明基的GSM/GPRS模块BENQ23G发送MMS彩信的方法。该方法成本低、可靠性高,器件选用工业级产品,能够在较宽温度范围内工作,即使在室外较恶劣的环境下也可以使用。

本系统组成如图1所示。其中,单片机77E58有2个串口,串口O用于与BENQ23G模块进行通信,控制BENQ23G发送彩信;串口1用于与串口摄像头(如C328-JPEG模块)进行通信,控制摄像头捕获图像。外部传感器报警接口用于连接外部报警传感器,77E58最小系统收到外部传感器报警触发信号后,捕获照片、封装MMS彩信,控制BENQ23G模块向指定的手机或远程接收设备发送彩信;同时还可以拨打指定电话号码,将现场声音传送过去。MIC 及信号放大电路用于采集外部现场声音并进行放大。

从前面的分析可以看出,本系统充分利用了各个部件的硬件资源,最大限度地降低了硬件成本。本文主要介绍图1所示的无线远程监控系统通过中国移动梦网发送彩信时,所使用的传输协议命令格式和传输数据格式。

<strong>1 BENQ23G模块简介</strong>

BENQ23G是台湾BenQ公司生产的嵌入TCP/IP协议的GSM/GPRS模块,在BENQ23A模块的基础上增加了M2M(Machine-to —Maehine)功能,可以通过GPRS承载在BENQ23G模块和因特网TCP/UDP服务器上实现连接。控制设备和BENQ23G模块之间通过 UART串口连接,传输命令和数据。

控制设备首先通过UART串口设置网络连接参数,然后拨号连接GPRS,BENQ23G模块建立GPRS连接并和指定的因特网TCP/UDP服务器建立 Socket连接。如果Socket连接成功,则模块在控制设备和因特网TCP/UDP服务器之间通过UART串口建立点对点数据连接模式,控制设备可以通过UART串口将数据原封不动地上传至因特网TCP/UDP服务器,同时可以通过UART串口原封不动地下载因特网TCP/UDP服务器上的数据,而上传和下载数据的TCP/UDP打包和解包工作由BENQ23G模块实现。

控制设备在数据模式下通过UART串口发送数据时,如果BENQ23G模块在规定时间间隔内没有继续收到UART串口的数据,就将前面接收的数据进行 TCP/UDP打包并发送到服务器。

当BENQ23G模块通过UART串口连续收到控制模块发送的3个“+”符号后,将退出点对点数据模式而进入命令模式,可以通过UART串口接收控制设备发送的AT指令。但这时BENQ23G模块和服务器之间的TCP/UDP协议Socket连接并没有中断,控制设备如果想再次进入数据模式上传数据给服务器,可以键入ATO命令实现。

控制设备可以在命令模式下通过键入ATH命令来中断BENQ23G模块和服务器之间的Socket连接。下面给出一个控制设备和彩信网关服务器连接的例子:


<ignore_js_op>





2010-4-13 10:39:40 上传
<strong>下载附件</strong> (14.6 KB)




</ignore_js_op>


该例子说明如何通过BENQ23G模块实现和远程服务器的连接,以及上传和下载数据。BENQ23G模块AT指令的详细说明见参考文献。

测试MMS组成及编码格式分析略,详细的编码含义见参考文献。

<strong>2 基于BENQ23G发送MMS编码格式分析</strong>

当控制设备需要发送彩信时,首先通过UART串口传送AT指令完成相应的参数设置(如前面例子所示),再传送“ATD*97#”指令进行 GPRS拨号,并等待BENQ23G模块完成与服务器之间的Socket连接。当收到BENQ23G模块发送的响应“Wait Socket Open”时,表明BENQ23G模块完成了与服务器的连接,并进入数据模式,控制设备可以进行发送彩信操作。

2.1 首先建立会话连接

控制设备发送会话建立连接请求(8字节):

  0001 0A OO OO 12 01 10 OO 00

发送数据序列中前4字节“0A 00 00 12”是WTP In—voke PDU。WTP Invoke PDU采用了固定长度格式,其结构如表1所列。


<ignore_js_op>





2010-4-13 10:48:16 上传
<strong>下载附件</strong> (5.03 KB)




</ignore_js_op>


其中,CON=0,PDU Type=0001,GTR=0,TTR=1,RID=0,故第1字节为0A;TID High Byte=00000000,故第2字节为00;TID Low Byte=00000000,故第3字节为00;Version=00,TIDnew=0,U/p=1,RES=00,TCL=10,故第4字节为12。

发送数据序列中的第5到8字节“01 10 O000”是WSP协议数据单元。其中第5字节“01”是WSP会话连接Connect的代码,第6到8字节是WSP Connect PDU。WSP Connect PDU结构如表2所列。


<ignore_js_op>





2010-4-13 10:48:17 上传
<strong>下载附件</strong> (6.54 KB)




</ignore_js_op>


其中,第6字节“10”是WSP协议版本号,高4位是版本号的整数部分,低4位是版本号的小数部分,这里为V1.0;第7字节是能力字段长度,没有使用能力请求,故长度为00;第8字节是报头字段长度,没有报头,故长度为00。

服务器返回数据如下(30字节):

  0001 12 80 00 02 B5 C5 1 5 00 15 45 6E 63 6F 64 69 6E........Encodin
  0017 67 2D 76 65 72 73 69 6F 6E 00 31 2F 32 00 00 00 g—version.1.2...

返回数据中第1~3字节是WTP Result PDU,其余为WSP协议数据单元。WTP Result PDU采用固定长度格式,其结构如表3所列。


<ignore_js_op>





2010-4-13 10:39:40 上传
<strong>下载附件</strong> (4.87 KB)




</ignore_js_op>


其中,CON=0,PDU Type=0010,GTR=0,TTR=1,RID=O,故第1字节为12;TID High Byte=10000000,故第2字节为80;TID Low Byte=00000000,故第3字节为OO。

返回数据中的第4字节“02”是WSP会话连接确认ConnectReply的代码;第5~30字节是WSP ConnectReplyPDU。

WSP ConneetReply PDU结构如表4所列。


<ignore_js_op>





2010-4-13 10:48:16 上传
<strong>下载附件</strong> (6.43 KB)




</ignore_js_op>


第5~8字节“B5 C5 15”是会话标识;第10字节“15”是HeadersLen(21字节),Headers是以00结束的字符串,即Encoding—version 1.2。

2.2 控制设备发送WTP确认完成会话连接

控制设备发送WTP确认(WTP Acknowledgement,3字节):18 00 00。WTP Acknowledgement PDU采用固定长度格式,如表5所列。


<ignore_js_op>





2010-4-13 10:39:41 上传
<strong>下载附件</strong> (5.83 KB)




</ignore_js_op>


其中,CON=0,PDU Type=0011,Tve/Tok=0,RES=0,RID=0,故第1字节为18;TID High Byte=00000000,故第2字节为00;TID Low Byte=00000000,故第3字节为OO。

2.3 控制设备发送WTP、WSP和MMS包

控制设备首先发送WTP和WSP(49字节):

0001 0E 00 01 1 2 60 1A 10 68 74 74 70 3A 2F 2F 6D 6D.......http://mm
0017 73 63 2E 6D 6F 6E 74 6 5 72 6E 65 74 2E 63 6F 6D SC.monternet.com
0033 2F BE 80 BE C7 80 A1 09 80 77 61 70 00 77 61 70/........wap.wap
0049 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00................

发送数据序列中,前4个字节“0E 00 01 12”是WTPInvoke PDU,后45个字节是WSP协议数据单元。

WTP Invoke PDU同样采用了固定结构格式(如表1所列)。其中,CON=0,PDU Type=0001,GTR=1,TTR=1,RID=0,故第1字节为0E;TID High Byte=00000000,故第2字节为00;TID Low Byte=00000001,故第3字节为01;Version=00,TIDnew=0,U/P=1,RES=00,TCL=10,故第4字节为12。

发送数据序列中第5字节“60”是WSP方法Post的代码,第6~49字节是WSP Post PDU。WSP Post PDU结构如表6所列。


<ignore_js_op>





2010-4-13 10:39:41 上传
<strong>下载附件</strong> (6.49 KB)




</ignore_js_op>


第6字节“1A”是UriLen(26字节);第7字节“10”是HeadersLen(16字节);第8~33字节是Uri字段,URI=http:/mmsc.monternet.com/(中国移动梦网);第34字节“BE”是ContentType的内容类型(著名域值 applica—tion/vnd.wap.mms—message的代码),即Content Type=application/vnd.wap.mms—message;第35~49字节是由3个Header组成的Headers字段,第35、 36字节是第1个Header,第37、38字节是第2个Header,第39~49字节是第3个Header。

  Headerl:80 BE(Accept:application/vnd.wap.mms—message)。
  Header2:C7 80(Cashe Control:None)。
  Header3:A1是域Proxy authorization的代码,第40字节“09”是域长度(9字节),第41字节“80”是Basic的代码,第42~44字节是User— id=wap,第46~48字节是Password=wap。

数据字段就是紧接着发送的MMS包。

服务器返回数据序列如下:


<ignore_js_op>





2010-4-13 10:39:41 上传
<strong>下载附件</strong> (15.84 KB)




</ignore_js_op>


返回数据中,第1~3字节是WTP Result PDU,其余为WSP协议数据单元。WTP Result PDU格式与前面相同,只是TID=8001,与WTP Invoke PDU中的TID=0001相对应。

返回数据中第4字节“04”是WSP会话响应Reply的代码,第5~173字节是WSP Reply PDU。WSP ReplyPDU结构如表7所列。


<ignore_js_op>





2010-4-13 10:39:41 上传
<strong>下载附件</strong> (4.89 KB)




</ignore_js_op>


第5字节“20”是Status编码,表示成功;第6、7字节“81 26”是Headers的长度(解码后为A6,即166个字节,从第8字节“61”到173字节“B1”);第8~38字节是Cont—entType的域值,ContentType=application/vnd.wap.
mms—message;第40~173字节是由6个Header组成的Headers字段,第40~52字节是第1个Header,第53~78字节是第2个Header,第79~111字节是第3个Header,第 112~143字节是第4个Header,第144~167字节是第5个Header,第168~173字节是第6个Header。


<ignore_js_op>





2010-4-13 10:39:41 上传
<strong>下载附件</strong> (4.08 KB)




</ignore_js_op>


Header6:Date=48 29 41 EB,以秒计算的日期,起始日期为1970—01-01。

返回数据中,第174~209字节是Data字段,其内容与MMS头内容相对应,解码后含义:


<ignore_js_op>





2010-4-13 10:39:40 上传
<strong>下载附件</strong> (3.05 KB)




</ignore_js_op>


2.4 控制设备发送WTP确认完成会话

控制设备发送WTP确认(WTP AcknowledgementPDU,3字节):1C 00 01。

WTP Acknowledgement PDU格式同表5。其中,CON=0,PDU Type=0011,Tve/Tok=1,RES=0,RID=0,故第l字节为1C;TID High Byte=00000000,故第2字节为00;TID Low Byte=00000001,故第3字节为01。

2.5 断开服务器连接

如果要退出数据模式,控制设备可通过UART串口传送符号+++,BENQ23G返回命令模式,但与服务器的Socket连接并没有断开。如果要断开 BENQ23G与服务器的Socket连接,则控制设备需通过UART串口发送ATH命令给BENQ23G模块。

<strong>3 结论</strong>

本文介绍了一种通过彩信传送图像的低成本远程监控系统。该系统采用Winbond公司的77E58单片机作为控制器,由外部报警传感器触发,控制串口摄像头捕获现场图像,封装MMS彩信,并通过控制BenQ公司的GSM/GPRS模块BENQ23G发送,同时还可以通过拨打预设号码将现场声音传送出去。

<strong>参考文献</strong>

1. BenQ Inc M23 AT Command User Guide.Version:1.75 2005
2. 中国移动通信集团公司 GPRS 移动终端规范--彩信分册 2004
3. 张会勇 MMS的消息格式和压缩编码分析 [期刊论文] -中国数据通信2004(6)
4. 邓戈.曹怡鹏.沈金龙 MMS 终端互通技术研究 [期刊论文] -南京邮电学院学报(自然科学版)2004(1)
5. 陈华鹏 嵌入式MMS 客户机模型研究 [期刊论文] -计算机工程2007(16)
6. 沈音乐 嵌入式 MMS客户机设计 [期刊论文] -计算机系统应用2007(11)

作者:北京航空航天大学 于捷王祖林刘有才
来源:单片机与嵌入式系统应用 2009 (2)
回复

使用道具 举报

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

本版积分规则

公告:服务器刚移机,
大家请不要下载东西。
会下载失败


Copyright ©2011-2024 NTpcb.com All Right Reserved.  Powered by Discuz! (NTpcb)

本站信息均由会员发表,不代表NTpcb立场,如侵犯了您的权利请发帖投诉

( 闽ICP备2024076463号-1 ) 论坛技术支持QQ群171867948 ,论坛问题,充值问题请联系QQ1308068381

平平安安
TOP
快速回复 返回顶部 返回列表