从前面的分析可以看出,本系统充分利用了各个部件的硬件资源,最大限度地降低了硬件成本。本文主要介绍图1所示的无线远程监控系统通过中国移动梦网发送彩信时,所使用的传输协议命令格式和传输数据格式。
1 BENQ23G模块简介
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连接。下面给出一个控制设备和彩信网关服务器连接的例子:
该例子说明如何通过BENQ23G模块实现和远程服务器的连接,以及上传和下载数据。BENQ23G模块AT指令的详细说明见参考文献。
测试MMS组成及编码格式分析略,详细的编码含义见参考文献。
2 基于BENQ23G发送MMS编码格式分析
当控制设备需要发送彩信时,首先通过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所列。
其中,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所列。