0 引 言
基于GPS/ GPRS 的车辆监控系统在我国开始应用是在20 世纪90 年代初, 在2000 年后才逐渐出现了较成熟的产品。目前很多的导航定位产品数据传输的方式没有得到优化, 不能做到以较少的流量完成相对实时稳定的监控任务, 影响整个系统的实时性和可靠性。
本文从系统总体设计的角度介绍基于GPRS 网络GPS 监控系统的设计, 选用GPRS 网络为主GSM 通讯方式为辅的通讯方式, 这种通讯方式稳定性强, 面对将来的3G 网络可平滑技术升级, 耗费流量较少, 同时GPRS 网络支持TCP/ IP 协议, 使得无线数据的传输变得更加轻松,更容易扩展功能。
GPRS( 通用分组无线业务) 是在现有的GSM 网络上开通的一种数据业务, 相比原来GSM 拨号方式的数据交换传送方式, 具有“永远在线”、“ 按流量计费”、“快捷登录”、“ 支持TCP/ IP 协议”、“适用于中小数据量传输”等优点。GPRS 系统在GSM 基础上, 增加了分组控制单元( PCU ) 、服务GPRS 支持节点SGSN ( serving GPRS supportnode) 、网关GPRS 支持节点GGSN ( gateway GPRSsuppor t node) 等网元设备。
1 车辆监控系统总体及通讯通道
车辆监控管理系统包括服务器、监控服务终端、车载终端以及外围网页浏览器管理器和用户手机管理器。各个部分以服务器为中心, 通过GSM/ GPRS 网络以及Internet 网络组织起来配合工作, 完成车辆实时监控管理等功能。系统总体结构框图如图1 所示。
图1 车辆监控系统结构框图
车载终端集成控制芯片(MCU) 、GPS 定位模块、GPRS 数据传输模块以及语音模块等周边设备。GPS 定位模块采集定位信息, 通过串口发送给MCU, MCU 分析打包后通过串口发送给GPRS 模块, 完成信息的采集、分析、传送流程。
数据传输中, GPRS 网络与Internet 网络共同搭建系统的数据传输通道, 车载机与监控中心之间维持3 条通信通道:
1) T CP 协议命令通道——采用T CP 协议ASCII 方式编码传送。
2) T CP 协议数据通道——数据以二进制编码传送, 与命令通道信息在同一SOCKET传送。
3) UDP 协议数据通道——实时上传数据以UDP 协议采用二进制编码传送。
服务器申请静态IP 地址, 开放相应的TCP 及U DP端口, 开启线程完成数据接收存储工作。
2 数据采集传输协议与AT命令
2. 1 GPS 数据采集及NMEA??0183 协议
GPS 模块, GPS 信号接收机和设备软件以及GPS 数据的后处理软件包构成完整的GPS 模块。车载终端GPS定位模块选择了RoyalTek 公司的REB??1315LPX, 根据NMEA-0183 协议完成GPS 定位信息的采集。
NMEA-0183 协议, NMEA 即Nat ional Mar ine Electronics Associat ion, 是美国国际海洋电子协会的缩写。
NMEA-0183 协议是该组织为海用电子设备制定的标准格式, NMEA??0183 协议语句采用ASCI I 码, 串行通信默认参数为, 波特率4 800 bps, 8 位数据位, 1 位开始位, 1 位停止位, 无奇偶校验位。其包含的语句种类有: GPGGA,GPGSA, GPGSV, GPRMC, GPV TG.系统采用GPRMC格式, 可以完成所需定位信息的采集。
2. 2 GPRS数据传输模块及AT 命令
GPRS 数据传输模块选择SIMComWireless SolutionLtd 开发的一款紧凑型双频GSM/ GPRS无线通信模块SIM900A.工作频率为GSM/ GPRS 900/ 1 800 MHz, 其在GPRS 无线网络连接条件下, 可嵌入TCP/UDP 协议、FTP/ HTT P 等协议的数据通信, 数据下行速率最大可达到85. 6 kbps.
AT 指令集是从终端设备T E( terminalequipment) 或数据终端设备DTE( data terminal equIPMent) 向终端适配器TA( terminal adapter ) 或数据电路终端设备DCE( datacircuit terminal equipment) 发送的。通过T A, T E 发送AT 指令来控制移动台MS(mobile st ation) 的功能。系统网络传输中用到的AT 命令有如下几种:
AT + CMGF= 1 设置消息内容为文本模式;
AT + CMGS = " 138xxxxxxxx"短消息发送目标号码;
AT + CIPST ART = "T CP/U DP", "120. 192. 209.83", "8030"
TCP/ UDP 方式连接服务器, 服务器IP 为120. 192.209. 83, 端口为8030;
AT + CIPSEN D , 发送数据指令;
数据内容+ 0x0A , 输入数据内容并以0x0A 为数据结尾;
AT + CIPCLOSE, 关闭连接;
AT + CIPSHUT, 关闭移动场景;
2. 3 套接字Socket
Socket, 用于描述IP 地址和端口, 是一个通信链的句柄。服务打开一个Socket, 并绑定到一个端口上, 不同的端口对应于不同的服务。一般Socket 有2 种: 流式Socket( SOCK _ STREAM ) 和数据报式Socket ( SOCK _DGRAM) .流式是一种面向连接的S ocket , 针对于面向连接的TCP 服务应用; 数据报式Socket 是无连接的Socket, 用于UDP 服务应用。
在车载终端和服务器程序中, 定义了不同协议格式的2 种Socket( SOCK_STREAM、SOCK_DGRAM) .Socket作为网络节点, 通过T CP/U DP 协议完成数据发送接收。
3 车载模块与服务器通讯模块软件设计
软件部分设计主要包括车载模块通讯软件和服务器软件通讯模块设计。
3. 1 车载模块通讯软件设计
1) 车载终端处理器芯片
车载模块的处理器选择芯唐M0516 处理器, 车载终端内部通讯包括MCU 与GPS 模块、GPRS 模块、以及周边模块的数据传输。内部数据传输都通过串口完成。以下代码为初始化串口中断, 并使能收发中断, 中断服务函数:
Void init _ 1315 ( PFN _DRVU ART _CA LLBA CK GPS _
INT _HANDLE)
{
STR_U ART_T sParam;
UNLOCKREG( ) ;
SY SCLK??> PWRCON . XT L12M_EN= 1;
/ * 设置串口1 功能引脚* /
DrvGPIO_Init Funct ion( E_FUNC_UA RT 0) ;
/ * 串口通信设置* /
sParam. u32BaudRat e= 9 600;
sParam. u8cDataBits= DRV UART_DAT ABIT S_8;
sParam. u8cSt opBits= DRVU ART _ST OPBIT S_1;
sParam. u8cPar ity= DRVUART _PARIT Y_N ONE;
sParam. u8cRxTriggerLevel = DRVU ART _ FIFO _1BYTES;
while (DrvUART _ Open ( UART _ PORT 0,& sParam) ! = E_SUCCESS) ;
DrvU ART _EnableInt( U ART _PORT0, DRVU ART _RDAINT , GPS_IN T_HANDLE) ;
}
MCU 通过响应串口的中断, 完成车载终端内部数据传输过程。
2) GPS 模块接收数据
GPS 模块采用REB??1315LPX 模块, 其读取定位信息流程如下图2 所示。
图2 REB-1315LPX 模块数据的读取方法
代码较多, 具体实现函数不在此处详述。
(3)GPRS 模块的通讯程序
GPRS 模块与处理器的通信是通过串口完成的, 处理器向GPRS 模块发送AT 指令以及数据。GPRS 模块连接网络后利用TCP/U DP 协议与调度中心服务器进行无线通信。
3. 2 服务器软件通讯模块设计
服务器程序运用VC+ + 6. 0 为开发平台, 服务器程序通讯模块首先定义多组Socket 与其地址结构sockaddr_in, 然后根据需要调用通讯函数完成节点间通讯。
WSA DAT A wsaDat a; / / 根据版本通知操作系统, 启用相应版本的DLL 库
/ / 地址结构赋值:
serv. sin_addr. s_addr= h tonl( INADDR_ANY) ;
serv. sin_family= AF_INET ;
serv. sin_por t= htons( 8030) ; / / 取端口号为8030
addlen= sizeof( serv) ;
sock_T = socket( AF_INET , SOCK_ST REAM, 0) ;
sock_U= socket(A F_IN ET, SOCK_DGRAM, 0) ;
bind ( sock _ U , ( struct sockaddr * ) & srv, s izeof(srv) ) ; / / 绑定地址与端口
listen( sock_T , 500) ; / / 监听T CP 端口
accept( dlg-> sock_T, ( sockaddr* ) & ( dlg??> serv) ,& ( dlg-> addlen) ) ; / / 接受连接请求
AfxBeginT hread(& t hread, 0) ; / / 启动监听及数据传输线程
线程中调用recv( ) 函数和send( ) 函数, 完成数据收发任务。
4 实 验
设置车载机目标服务器IP 地址和端口号后加电, 车载机通过GPRS 网络向远程服务器发送连接请求, 服务器收到连接请求后, 建立连接并根据SIM 卡号和车载机编号识别车辆, 按照一定格式打包车辆GPS 并信息定时回传, 服务器将数据存入数据库完成数据采集, 实验结果如下:
图3 为车载终端通过TCP 协议A SCII 码通道回传的一条定位信息, 此通道数据传输稳定且不需要对数据解码, 耗费流量较大。
图3 TCP 协议ASCI I 通道回传信息
图4 为车载终端通过TCP 协议二进制编码通道回传的一条定位信息, 二进制解码后为以“ $ ”开头的定位信息。此通道传输稳定, 需要对二进制数据解码, 流量相对较小。
图4 TCP 协议ASCI I 通道回传信息
图5 为车载终端通过UDP 协议二进制编码通道回传的一条定位信息。此通道为不可靠传输, 二进制数据需要解码, 相对于T CP 协议回传包简化了包头, 节省流量, 在系统中为主用数据传输通道, 用于定时( 此处设置30S) 回传数据。
图5 TCP 协议ASCII 通道回传信息
服务终端调出GPS 回传数据并与GIS 系统结合, 完成车辆信息的分析, 为车辆提供定位、监控、管理服务。图6 为监控终端对采集的数据进行分析的监控结果。
图6 TCP 协议ASCII 通道回传信息
5 结束语
本文设计与实验基于GPS 和GPRS 的嵌入式车辆监控系统的整个通讯方式及流程, 可以稳定、低成本并且相对实时的完成车载终端的定位信息回传任务, 从而有效的为车辆提供车辆信息的监控管理、信息记录、车辆导航、调度以及防盗等功能。21 世纪是通信网络技术、嵌入式技术成熟运用的时代, 移动通信技术发展到第三代, 基于GPRS 网络与Internet 网络结合将会有更好的应用前景。