基于GPRS的车辆监控系统技术研究

发布者:自由探索者最新更新时间:2012-04-21 来源: 现代电子技术 关键字:GPRS  车辆监控  GPS 手机看文章 扫描二维码
随时随地手机看文章

0 引言
    随着我国经济的发展,车辆日益增多,交通运输的经营管理,货运、客运的安全管理等,已成为公安、交通系统中的一个重要问题。车辆监控系统以全球定位系统(Global Posit ion System,GPS)和GPRS(General Packet Radio service)通信技术基础,它可以将车载单元上接受到的实时定位数据通过无线网络传送至监控中心服务器上,监控中心计算机再利用地理信息系统的地图显示功能,以及信号指令的发送功能,实现对动态车辆的跟踪与调度控制,从而建立起的一种大范围、全方位发挥作用的、实时、准确、高效的综合车辆调度和管理系统。系统基于Internet网络,将监控中心、远程监控终端、数据服务器、无线移动通信网、GPS车载终端有机地结合在一起,以Internet服务器为核心实现分布式监控。

1 系统结构
    基于GPRS的车辆监控信息系统由4个主要部分构成,即监控服务中心、车载终端、监控终端及无线通信网络构成;监控服务中心是系统的核心部分,它连接车载终端和客户端。监控服务中心由Web服务器,通信服务器,数据库服务器构成。通信服务器接受车载终端的数据,并将数据转发给Web服务器和数据库服务器。该系统结构图如图1所示。



2 系统关键技术
2.1 GPRS通信技术及UDP数据传输协议
    在车辆和监控中心之间需要通信设备来发送或接收信息。通信手段的选择是监控系统的难点和技术关键。合理的通信方式的选择可以为监控系统的指挥调度、报警处理提供一个稳定、快速的平台。
    车辆监控系统使用GPRS网络作为传输载体。GPRS是一种采用分组交换和传输技术的高效率数据传输方式。它克服了电路交换速率低、资源利用率差等缺点,最大限度地利用了现有的GSM网络资源,提高了传输速率。相对于短消息方式来说,GPRS服务既提高了质量又降低了使用费用。移动车载终端与监控调度中心之间的通信突发性较强,而每次数据量较小,使用GPRS网络作为其传输载体是目前比较理想的解决方案,GPRS通信主要分为TCP和UDP协议。[page]

    CP和UDP协议同在传输层,由于本系统每次传输的数据量小而且突发性强,所以采用UDP协议传输数据。UDP协议的主要作用是将网络数据流压缩成数据报的形式。一个典型的数据报就是一个二进制数据的传输单位。UDP协议为不可靠的传输协议,不提供数据传送的保障机制。如果在从发送方到接收方的传递过程中出现数据报的丢失,协议本身并不能做出任何检测或提示。因此,必须在应用层的协议中添加保障信息传输可靠性的确认机制。监控中心向终端下传数据时,要求终端返回接收正确或错误的确认信息,监控中心收到正确的确认信息后数据下传进程才完毕。否则,监控中心将在规定的时间内重发,直到收到正确的确认信息或发送次数标志溢出才终止。
    GPRS网络UDP端口资源十分紧缺,变化很快;UDP由于自身特点,以及GPRS网络UDP端口资源的有限性,在一段时间没有数据流量后,端口容易改变,产生的影响就是从服务器中心端向GPRS终端发送数据,GPRS终端接收不到。原因是移动网关从中做了中转,需要隔一定时间给主机发UDP包来维持该IP和端口号,这样主机就能主动给GPRS发UDP包,笔者在测试中发现,这个间隔时间很短,约1 min发一次UDP包才能够维持,再长时间移动网关那边就要丢失这个端口了,逾期主机想主动发数据给终端,将无法送达。只有GPRS终端设备重新发一个UDP包过去,移动再分配一个中转IP和端口,才能够进行双向通信。为保证端口有效性和数据实时性,终端设备每5 s发送一条包含定位和状态的数据给服务器。
2.2 基于C#发送、接收UDP数据包使用的主要方法
    (1)UDP数据类。用Visual C#实现UDP协议,最为常用,也是最为关键的类就是UdpClient,UdpClient位于命名空间System.Net.Sock ets中,Visual C#发送、接收UDP数据包都是通过UdpClient类的。UdpClient类主要有以下几个方法,见表1。


    (2)接受终端UDP数据。接收UDP数据包使用的是UdpClient中的“Receive”方法。此方法的调用语法如下:public byte[]Receive(ref IPEndPoint remoteEP);参数remoteEP是一个IPEndPoint类的实例,它表示网络中发送此数据包的节点。下面就是通过侦听本地端口号“8 080”来获取信息代码:
    UdpClient server=new UdpClient(8080);
    IPEndPoint receivePoint=new IPEndPoint(IPAddress.Any,0);
    byte[]recData=server.Receive(ref receivePoint);
    recData就是接受到的UDP报文,其中UDP包头结构如下:源端口16位,目的端口16位,长度16位,校验和16位;上文中阐述了GPRS的UDP端口非常紧缺,随时会变化,在每次接受到UDP报文后,必须记录源端口、IP地址。receivePoint参数是引用类型,receive到新的UDP后,receivePoint对象的address和port属性值就是发送源的IP地址和端口。这个IP和端口未必是真的终端的IP和端口。因为终端上的应用程序绑定本地一个端口(比如是9002),通过这个端口发送请求给路由器,路由器由此记录下终端的内网IP和端口(9002),然后路由器分配自己的一个空闲端口(比如是7000),通过这个端口(7000)发送请求给监控中心。而对于监控中心,它没有任何关于终端的信息,它要做的只是回信息到路由器的外网IP的7000这个端口。路由器收到发送到其7000端口的数据后会再转发给终端。
    (3)发送UDP数据报。发送UDP数据报使用“Send”方法。“Send”方法的调用语法如下:public int Send(byte[]dgram,int bytes,IPEndPoint endPoint);参数说明:dgram要发送的UDP数据文报(以字节数组表示)。bytes数据文报中的字节数。endPoint一个IPEndPoint,它表示要将数据文报发送到的主机和端口。返回值是已发送的字节数。下面使用UDPClient发送UDP数据包的具体的调用例子:

    该代码实现了对某终端发送UDP报文后的回复。如果需要主动向终端发送报文则需要从数据库中提取该终端最近一次的IP和端口号,调用该方法发送内容。
2.3 数据封装和转存
    监控中心与客户端的数据通信包含2种:一种是上行数据,一种是下行数据。上行数据包含终端汇报车辆的状态信息,车辆实时信息,车辆语音信息,视频信息等。下行信息包含对终端的回应,车辆的实时控制等信息。数据种类大约一百多种,可分为20多种格式。针对每种格式定义一个结构进行数据接受和转存到数据库,进行数据显示和分析。终端返回数据一般是结构类型,为保证数据转换准确和便捷,C#也使用同样的结构对数据进行接受。上文中UDP报文接受到的正文是byte类型,该byte内容有报文头和报文类型、校验部分和正文构成。根据报文类型找到对应的C#结构体structType。利用Marshal.SizeOf(structType);获取结构体大小,并进行分配空间:IntPtrstructPtr=Marsh al.AllocHGlobal(size);然后将byte数组拷到分配好的内存空间:Marshal.Copy(recData,0,structPtr,size);将内存空间转换为目标结构体objectobj=Marshal.PtrToStructure(structPtr. struct Type)。为提高系统的实时响应速度,这些数据分为2种处理方式,如非紧急数据直接保存到数据库,而如果是紧急数据,比如车辆报警数据,车辆控制数据则直接通过Socket连接发送到Web服务器,由Web服务器推送到浏览器监控端。

3 结语
    本文主要分析了监控系统的GPRS通信技术,详细介绍了基于GPRS的UDP数据通信流程和方法,实现了C#环境下接受,发送UDP数据报文,协议的定制,数据转存等关键技术。本文解决的问题是监控系统的核心内容,但并不是全部,一个完整的系统还应包括终端硬件设计以及后台监控软件、GIS地图显示等许多方面。今后,应通过进一步的研究。解决系统其他相关技术。

关键字:GPRS  车辆监控  GPS 引用地址:基于GPRS的车辆监控系统技术研究

上一篇:模糊控制在汽车离合器中的应用
下一篇:如何解决汽车车身控制设计的三大挑战

推荐阅读最新更新时间:2024-05-02 22:01

GPS卫星定位模块使用及感受
  一直以来都以为GPS模块使用比较麻烦,觉得那是高科技的东东,接收卫星信号啊~~神秘。直到最近有朋友在项目中询问这方面的事,正好手头上没有其它事项要忙,就决心要把GPS模块搞搞,以前Cpeark论坛上有做过一款GPS接收板的,当时没有参加这个活动,后来东东把他手上的送给我(谢谢东东),于是找出板板,又在论坛上下载了一些软件,折腾了一外晚上未果,一点数据都没有,开始以为GPS模块需要初始化之类的,查找了资料发现,只要加电就可以工作,连续输出数据,无论是否有信号。果断判断模块已坏,郁闷~~     在淘宝上下手买了新的回来,严格来说应该是全新的旧货,三十多元,05年产的模块,采用的是台湾旺玖PROLIFIC公司的PL-6313芯片,这
[单片机]
<font color='red'>GPS</font>卫星定位模块使用及感受
特斯拉新专利:车辆更精确定位技术 赋能自动驾驶系统
随着自动驾驶车辆的出现,GPS精度变得越来越重要。据外媒报道,特斯拉(Tesla)研发了一种技术,可通过在车辆之间共享数据,从而实现更准确的定位。去年,特斯拉对该项技术提交了专利申请,名为“汽车定位技术”,本周美国专利商标局公布了该专利。 在专利申请中,特斯拉表示GPS定位有精度不准的问题。例如,带有定位接收器的智能手机可能能够在距离其5米之内确定自己的位置。当接收器靠近建筑物、桥梁、树木或其他结构时,定位的准确性可能会下降。尽管对于某些定位应用来说,此定位精度已经足够,但是对于自动驾驶等应用来说,需要更准确的精度。因此,尽管存在影响导航卫星信号的因素,但仍希望提供更准确的定位精度。 特斯拉的专利提供了几种解决方案,包括摄
[汽车电子]
2440裸机编程之十一 GPRS
GPRS (General Packet Radio Service)是一种基于包的无线通讯服务。它将使得通讯速率从56一直上升到114Kbps,并且支持计算机和移动用户的持续连接。较高的数据吞吐能力使得可以使用手持设备和笔记本电脑进行电视会议和多媒体页面以及类似的应用。GPRS是基于Global System for Mobile(GSM),并且能完成现有的一些服务,例如:蜂窝电话电路交换(circuit-switched)连接和短消息服务(SMS)。 GPS/GPRS 的AT命令是对早期调制解调器AT命令的一个扩充,在早其AT命令的基础上加上对GSM/GPRS业务支持的扩展AT命令集,扩展AT命令集基本格式为“AT+”+命
[单片机]
2440裸机编程之十一 <font color='red'>GPRS</font>
基于微处理器LPC2214和GPS接收器实现车载导航终端的设计
GPS在中国已经有十几年的发展历程,但在民用领域却一直投有大的突破。最近几年,GPS民用的前景已经越来越清晰,用户需求正在上升。目前有两种应用被看好:一个是民用导航终端,特别是车载系统;男一个是基于手机的移动定位服务。 导航是LBS(Location Based Services)应用在汽车上的主要方式。目前我国已经有汽车导航的实际应用,一种是“GPS接收机+简化版的GIS引擎+地图数据”的模式,通过GPS接收机获取定位信息,然后调用本机存储的地图,将定位信息映射到电子地图上实现导航功能。这种模式虽然比较方便快捷,但也有其自身的局限性,例如成本较高、地图资源不能共享、无法做到动态的地图更新。还有一种是“GPS接收机+GSM模块
[单片机]
基于微处理器LPC2214和<font color='red'>GPS</font>接收器实现车载导航终端的设计
一文读懂中国北斗卫星导航系统的厉害之处
确实挺牛的,不信且看: 1 全球四大卫星导航供应商”之一 早在上世纪70年代,美国、俄罗斯、欧洲就启动了建设全球定位系统项目。   2012年12月27日,中国 北斗导航系统 正式向亚太地区提供无源定位、导航、授时服务,成为继美国的 GPS 、俄罗斯的GLONASS之后第三个成熟的 卫星导航系统 。     截止到现在,中国的北斗导航系统、美国的GPS、俄罗斯的GLONASS、欧盟的GALILEO等,一起被联合国卫星导航委员会认定为“全球四大卫星导航供应商”。   2 定位精度准 中国的北斗卫星导航由35颗卫星组成,包括5颗静止轨道卫星、27颗中地球卫星、3颗倾斜同步轨道卫星组成。卫星数目的提高,带来的将是定位精度和服务范围的
[嵌入式]
GPS系统在车辆领域中的应用
GPS系统在出租车行业的应用 GPS系统在出租车行业的应用主要体现在灵活的出租车调度系统中,用户只需要拨打调度中心电话,中心将自动寻找最近的空车,在电话还没挂断之前,便可以告诉乘客“车牌号为XXX的车将在X分钟之内到达。”这种"叫车服务"在给乘客带来了很大的便利的同时,也同时减少了车辆的空驶率,提高出租车运营的工作效率,从一定程度上降低交通拥堵,为城市交通的疏导管理起到积极作用;从环保的角度来看,由于通过出租车将低空使率,它还带来节约能源,减少汽车废气排放的作用;从司机方面来看,GPS系统的应用,可以防止疲劳驾车,提高经济收入。相信随着GPS车调系统的推广,会使更多人从中受益。 GPS系统在公交车领域的应用 GPS车辆监控调度
[嵌入式]
51单片机GPS+sim800c GSM定位短信LCD1602液晶显示程序
sim800c+GPS芯片 一个练手的小设计,有点丑哈。附上程序和原理PcB图。 第一次发帖,做的不好烦请原谅哈 按键功能一个按键报警,蜂鸣器响,另外一个按键发送短信到指定的手机上,手机号码程序里面写好就行了 单片机源程序如下: #include common.h #include uart.h #include gps.h #include gsm.h #include lcd.h #define GPS_STR_LEN 48 uchar ess_inc; //char xdata GPS_SEND_STR ; sbit key = P1^3; sbit key1 = P1^4; sbit
[单片机]
51单片机<font color='red'>GPS</font>+sim800c GSM定位短信LCD1602液晶显示程序
基于MAX2742型电路的GPS接收机设计
   1 引言   GPS卫星发送的导航定位信号是一种可供无数用户共享的信息资源。对于陆地、海洋和空间的广大用户,只要用户拥有能够接收、跟踪、变换和测量GPS信号的接收设备即GPS信号接收机,就可以在任何时候用GPS信号进行导航定位测量。GPS信号接收机的功能是能够捕获到按一定卫星高度截止角所选择的待测卫星的信号,并跟踪这些卫星的运行,对接收到的GPS信号进行变换、放大和处理、以便测量出GPS信号从卫星接收机天线的传播时间,解译GPS卫星所发送的导航电文,实时地计算出测站的3维位置甚至3维速度和时间。   典型GPS接收机的结构如图1所示。   1575.42MHz的GPS信号在进入下变频IC前,先经过低噪声放大器(LNA)和滤
[应用]
小广播
最新嵌入式文章
何立民专栏 单片机及嵌入式宝典

北京航空航天大学教授,20余年来致力于单片机与嵌入式系统推广工作。

电子工程世界版权所有 京B2-20211791 京ICP备10001474号-1 电信业务审批[2006]字第258号函 京公网安备 11010802033920号 Copyright © 2005-2024 EEWORLD.com.cn, Inc. All rights reserved