引言
随着汽车数量的增长,车辆被盗、遇险等现象不断发生。针对交通运输业对车辆的管理要求,一套具有定位、跟踪、调度、报警等功能的GPSGPRS车辆监控系统的车辆管理方案,就成了解决问题的关键。特别是公交系统、出租、铁路、运输等服务行业正在寻求这样一种全新的、功能完善的、易操作的车辆管理系统。网络通信的迅速发展,也为该系统的实现提供了最基本的保障。GPSGPRS车辆监控系统是基于计算机通信技术、网络技术、自动控制技术和微电子技术的全方位、全时段新型监控系统。它能够准确定位车辆的位置、速度、方向、时间等信息并将此信息传递给监控中心,让监控人员实时掌握车辆的运行状况。此外,监控人员还可调出车辆在某一特定时段的运行轨迹,以解决纠纷,保护司机及车辆的安全。
1 GPSGPRS车载系统硬件设计
1.1 总体设计
本系统采用美国Luminary Micro公司(现被TI公司收购)的Stellaris(群星)系列CortexM3内核的LM3S1138作为控制核心。处理器LM3S1138采用了纯Thumb2指令的执行方式,采用了先进的ARMv7M架构;它具有带分支预测功能的3级流水线,以NMI的方式取代了FIQ/IRQ的中断处理方式,其中断延迟最大只需12个周期;带睡眠模式;8段MPU(存储器保护单元);具有1.25 MIPS/MHz的性能,并且功耗仅为019 mW/MHz;具有片载的64 KB单周期Flash、16 KB单周期SRAM,以及7组GPIO、4个32位Timer、3路全双工UART、2路SSI等丰富的外围接口电路[1]。GPSGPRS车载硬件结构框图如图1所示。
图1 GPSGPRS车载硬件结构框图
1.2 GPRS接口电路
本系统的GPRS模块采用的是华为GTM900C两频段GSM/GPRS无线模块。它支持标准的AT命令及增强型AT命令,通过串口发送 AT 命令,即可使用GSM 模块。串行线对端的应用设备包括终端设备TE(Terminal Equipment)、数据终端设备DTE(Data Terminal Equipment)或其他应用设备。这些终端或应用设备可以运行在嵌入式系统里。
图2 GTM900C启动与数据传送的关系当供给GTM900C模块的电压大于3.3 V,同时PWON信号为低电平(维持至少10 ms)时,GTM900C开始工作。若需要关闭同样需要低脉冲,GTM900C启动与数据传送的关系如图2所示。
GSM/GPRS无线模块的RXD1、TXD1、SIMOPEN引脚分别和LM3S1138的PA0、PA1、PG5引脚连接,串口通信电路通过RXD5、TXD5完成与GTM900C的串口数据传输。GSM/GPRS模块接口电路如图3所示。
图3 GSM/GPRS模块接口电路
2 GPSGPRS车载系统软件设计
整个监控系统由车载终端、GPRS网络和监控终端组成。上位机模块作为GPRS控制系统的监控终端,用来显示、保存以及处理从车载终端发来的数据信息。GPSGPRS监控系统管理软件用来接收并显示GPRS通信网络发送的数据。它包括数据信息管理、用户管理、实时信息管理、监控功能、通信功能等几部分。网络通信接口命令按照TCP/IP网络通信协议编写接收程序,将接收到的串口通信信息在窗口中显示出来。同时,还可以在窗口中发送命令修改相应的数据信息传输方式,并能在不同IP地址下接收同一组数据。
Winsock网络通信流程如图4所示。首先初始化各个函数,开始对通信网络进行监控。当有连接请求时,在数据信息管理中查询该用户IP,若地址薄中有用户客户端IP,则建立连接,若没有,则加载控件之后建立连接。当有数据通过GPS传送并接收到时,开始接收数据。如果3 ms超时,未接收到完整数据,则转换到另外一个频点继续监控网络。数据被完整正确地接收之后,上位机通过查询数据库,能够准确定位车辆的位置、速度、方向、时间等信息并将此信息传送给监控中心。
图4 Winsock网络通信流程
以下为建立连接的程序:
void GPRSStart (void){
unsigned char GPRS_Stop[]="AT%IPCLOSE=1\\r\\n";
unsigned char GPRS_Comm1[]="AT+CGDCONT=1,\\"IP\\",\\"CMNET\\"\\r\\n";//27个字节
unsigned char GPRS_Comm2[]="AT%ETCPIP\\r\\n";//11个字节
unsigned char GPRS_Comm3[]="AT%IPOPEN=\\"TCP\\",\\"221.3.8.181\\",6000\\r\\n";//37个字节
ClearGucBuf_UART1();//清除接收到的数据
Uart1Send(GPRS_Stop,14);
Send:
write_comm(0x01);
delay(20000);
write_comm(0x80);
display(GPRS_Comm1);
Uart1Send(GPRS_Comm1,27); //发送命令1,初始化APN
delay(100000);
while(GuiPos_UART1==0);
if (GuiPos_UART1 > 0){
if(StrFind(GucBuf_UART1, "OK\\r") !=1) { //查找数据中是否存在OK
ClearGucBuf_UART1();
goto Send;
}
else {
beep(50);
}
ClearGucBuf_UART1();
}
delay(1000000);//延时
}
GPS_GPTS数据发送的程序:
void GPRSSend (unsigned char *ucSendBuf){
unsigned char GPRS_Comm4[200]="AT%IPSEND=\\"";
strcat((char *)GPRS_Comm4,(char *)ucSendBuf);
strcat((char *)GPRS_Comm4,"\\"\\r\\n");
Uart1Send(GPRS_Comm4,strlen((char *)GPRS_Comm4));
}
监控中心接收界面包括服务器端地址、端口号、服务器端接收信息、建立的IP连接等信息窗口。通过GPRS网络与车载GPS建立连接,采集车辆数据,通过无线通信发送给监控中心。同时,车载终端接收监控中心的控制指令信息,实现与车载GPS端的数据通信。通过服务器向GPS终端发送命令,终端上传数据的时间由1 s一次变为5 s一次,接收端仿真实验数据如图5所示。
图5 接收端仿真实验数据
GPSGPRS对用户进行正确定位追踪之后,通过车载终端实时的将目标车辆的动态位置、速度、方向等信息通过无线网络发送给信息管理系统,这样用户的信息便会保留在数据库之中。监控系统可以在后台数据库之中查询出目标的准确位置、速度、方向等,为调度管理提供可视化的依据。出租车GPS信息查询界面如图6所示。
图6 出租车GPS信息查询界面
结语
该GPSGPRS计价与监控系统,采用CortexM3 LM3S1138处理器为核心部件, 利用GSM/GPRS无线模块,并配合一套独特的软件算法,将GPS技术与GSM移动通信技术中的GPRS技术相结合,且以较低的成本解决了车载端的定位、跟踪、调度等关键问题。对于日益发展的出租车行业,具有较高的实用价值。