一种基于GPRS的远程监控系统(4)

2018-04-27 神汽专用车

2 数据交换方式

GGSN向终端屏蔽了计算机网络的通信细节, 即终端只需以GPRS方式向GSM 网络提供数据和地址。同时, GGSN也向控制中心屏蔽了GPRS网络的存在, 即控制中心只需向计算机网络

技术提交含有指令的IP包。

2. 1 终端的指令接收

只要终端的无线链接和端口处于开通状态, 控制中心通过GSM 网络(可以先通过因特网)传送的含有指令的IP数据包就会自动及时接收并存储在GPRS接收协议栈中。如果指令是以/ 短消息0方式发送的, GPRS模块收到后, 会自动将其保存在默认存储区中。

2. 2 终端的数据发送

下面给出发送IP数据包时的步骤, 控制命令为AT 指令集。

(1)建立无线链接

AT + M IPCALL = 1, CMNET (ENTER)返回: + M IPCALL: 10. 103. 201. 135返回本地IP地址。只要终端不主动释放, 链接将一直保持下去, 这个地址也是控制中心寻找远程监控终端的目的IP地址。

(2)打开一个SOCKET,本地端口为2000,目标地址(控制中心) 为/ 10. 103. 67. 30 0, 目标端口为

3000, 协议类型为UDP。AT + M IPOPEN = 1, 2000, / 210. 31. 104. 20,3000, 1

(3)发送数据内容, 以/ ABCDE0为例AT + M IPSEND = 1, / 41424344450

(4)将发送数据压入发送协议栈, 只要设备空闲, 就立刻发送。AT + M IPPUSH = 1

(5)发送结束后, 关闭此SOCKET。AT + M IPCLOSE = 1

(6)若常时间不与控制中心交换数据, 出于能耗考虑(请参见2)可以释放无线链接。AT + M IPCALL = 0

2. 3 控制中心的数据接收

我们采用W idndows中的SOCKET技术, 我们以UDP( 用户数据报协议) 为例。W inSock 提供了对UDP 的支持, 利用Csocket操纵无连接的数据交换比较简单, 首先生成一个本地套接端口( 需指明SOCK_DGRAM标记), 端口号与终端所发数据包的目的端口一致。然后利用/ CasyncSockey: : R eceive-From 0方法, 接收数据。

2. 4 控制中心的指令发送

正常情况下, 指令的发送与上述/ 数据接收0雷同, 只是采用/ CasyncSockey: : SendTo0方法来发送。但有些情况下必须采用/ 短消息0方式发送指令, 比如计算机网络出现故障, 或某控制中心, 因费用不愿采用固定IP地址方案, 而寻求诸如ADSL 等方式。ADSL 每次拨号后的IP地址为动态IP地址,这就要求控制中心先以某种方式通知远程监控终端当前控制中心IP地址。此刻, 只能使用短消息,因为远程监控终端的SIM 卡号码(移动通信终端地址)是预先固定的。监控终端可以用AT 指令从短消息中解析出控制中心的IP地址, 当然, 短信格式需提前统一规定。