本发明涉及车联网
技术领域:
,尤其涉及一种车载远程通信方法。
背景技术:
:Telematics是远距离通信的电信(Telecommunications)与信息科学(Informatics)的合成词,通常指应用了无线通信技术的车载信息系统。Telematics是无线通信技术、卫星导航系统、网络通信技术和车载电脑的综合产物,可使汽车驾乘者在车内随时随地与外部后台、服务资源做双向的信息传递,享受实时化、位置化、个性化的各类应用服务。如图1所示,Telematics系统通常包括以下装置:汽车总线网络CAN:所有汽车的执行部件通过汽车网络进行信息交换;TBOX(Telematics-Box,即Telematics系统的终端):具有汽车总线接口,通过汽车总线接口与汽车总线网络中任何一个控制部件进行信息交换及车辆控制;具有移动通信接口,通过移动通信接口,可以和云端服务器进行信息交换;具有串行通信接口,通过串行通信接口,可以和车机进行信息交换;云端服务器:按照用户要求,提供各种网络资源服务,可以通过移动通信基站接入/互联网接入;车机端:具有串行通信接口,可以通过串行通信接口联系到TBOX,间接访问云端资源/汽车总线资源;手机:主要通过访问云端服务器去完成与车辆的信息交换,实现汽车资源的访问及控制;电脑:主要通过访问云端服务器去完成与车辆的信息交换,实现汽车资源的访问及控制。为保证车辆与云端服务器的通信安全可靠,不同厂商均定制有各自的通信协议,规定双方的通信规范、流量控制、应用数据格式、安全验证等机制。但目前还缺乏一种兼顾流量和连接效率的通信方法。技术实现要素:本发明所要解决的技术问题在于,提供一种节省移动通信流量,提高连接效率的车载远程通信方法。为了解决上述技术问题,本发明提供一种车载远程通信方法,包括:在车载端或服务器端发起会话前,检查是否已有存在的连接,如有则使用该存在的连接,如无则建立新的连接;使用新建立的连接发起会话前,在车载端和服务器端之间进行身份验证,身份验证通过后根据具体流程发送消息,身份验证未通过则流程终止;车载端使用该存在的连接或新建立的连接,每隔一定时间向服务器端发送一个心跳包,服务器端如果在设定时间内没有检测到数据包,则主动断开与车载端的连接。其中,服务器端首先检查是否已有存在的连接,如果有则直接使用已经存在的连接,如果没有则振铃通知车载端建立连接。其中,车载端每隔10秒向服务器端发送一个心跳包;服务器端检测是否有数据包传输,如果超过10秒没有数据包传输,服务器端再尝试3次检测,当达到30秒没有数据包传输,服务器端将主动断开与车载端的连接。其中,如果车载端或服务器端在接收的消息的错误元素中解析出错误值,则不再主动发送消息,并释放之前所占用的系统资源。其中,所述车载端和服务器端之间的身份验证过程包括:车载端通过CRC32算法生成第一AuthToken值,并填入身份验证消息中;服务器端接收到身份验证消息后,通过CRC32算法生成第二AuthToken值,并与所述第一AuthToken值进行对比,如果一致则身份认证通过,否则不通过;服务器端向车载端反馈身份验证结果。其中,车载端发送身份验证消息之后开启定时器,在一定时间内如果没有收到服务器端的回复,则判定属于超时,根据定时器超时回调函数发送的超时消息进行数据处理或超时处理,并在收到所述超时消息时清零所述定时器。其中,车载端对接收到的数据进行分割,按首包和后续包区分处理,当接收到完整数据的时候,则根据各应用标识APPID将数据分发到各个应用中。其中,所述车载端为车载智能盒TBOX,所述服务器端为TSP服务器。本发明实施例汽车遥控钥匙学习方法所带来的有益效果包括:通过短连接方法,一方面可以利用已存在的连接,避免频繁的进行身份验证,节约流量,同时提到连接效率;对于新建立的连接则需要身份验证,同时保证了通信的安全性;另一方面利用心跳机制,如果在设定时间内没有数据包传输,则服务器端主动断开与车载端的连接,避免长时间占用服务器资源所造成的服务器资源浪费;通过建立错误处理机制,当在消息中存在错误元素时,则不再主动发送消息,及时释放所占用的系统资源,减少系统开销。附图说明为了更清楚地说明本发明实施例或现有技术中的技术方案,下面将对实施例或现有技术描述中所需要使用的附图作简单地介绍,显而易见地,下面描述中的附图仅仅是本发明的一些实施例,对于本领域普通技术人员来讲,在不付出创造性劳动的前提下,还可以根据这些附图获得其他的附图。图1是本发明实施例中Telematics系统组成示意图。图2是本发明实施例车载远程通信方法的流程示意图。图3是本发明实施例中ACP消息的结构示意图。图4是本发明实施例中身份验证流程示意图。图5是本发明实施例中服务器端发起会话时车载端的处理流程示意图。图6是本发明实施例中车载端发起会话时车载端的处理流程示意图。具体实施方式以下各实施例的说明是参考附图,用以示例本发明可以用以实施的特定实施例。请参照图1所示,本发明实施例提供一种车载远程通信方法,包括:在车载端或服务器端发起会话前,检查是否已有存在的连接,如有则使用该存在的连接,如无则建立新的连接;使用新建立的连接发起会话前,在车载端和服务器端之间进行身份验证,身份验证通过后根据具体流程发送消息,身份验证未通过则流程终止;车载端使用该存在的连接或新建立的连接,每隔一定时间向服务器端发送一个心跳包,服务器端如果在设定时间内没有检测到数据包,则主动断开与车载端的连接。以下进行具体说明。现有的车载端与服务器端的通信连接方案一般包括两种:一种是长连接:即连接一直存在,每辆车占用服务器的一个通道。优点是能快速连接上服务器,通信能快速响应;而缺点则是由于长期占有服务器资源,造成服务器资源的浪费;另一种是超短连接:即每次通信均需要身份验证,每次发送完信息都需要断掉连接。优点在于能快速释放服务器资源;而缺点是由于频繁通信造成移动流量的浪费,为了保证通信安全,需要每次通信均需要进行身份验证,造成信息发送及接受效率过低及过慢。本发明实施例为了兼顾移动通信流量和连接效率,创新设计出一种短连接方案:对于车载端,首先检查是否已有存在的连接,如果有则直接使用已经存在的连接,如果没有则根据具体流程建立;对于服务器端,同样首先检查是否已有存在的连接,如果有则直接使用已经存在的连接,如果没有则振铃通知车载端建立连接。服务器端除非出错,不会主动释放连接,如果出错,则将断开连接。车载端发起会话一般用于车辆数据主动上传,车辆异动,车辆救援,严重故障上传等应用;服务器端发起会话一般用于如远程控制,远程监控,远程诊断,远程升级等应用。车载端发起会话与服务器端发起会话的区别为:车载端发起会话并没有振铃的步骤,而服务器端发起会话需要振铃的步骤,这样的设计是针对车载端和服务器端的处理能力而进行合理的区别对待。由于车载端为车载ECU的一种,满足一定的条件的时候需要休眠,以降低功耗,这样则需要服务器端对其振铃唤醒之后才能继续处理命令;而服务器功能强大,能处理大量数据请求,并不需要振铃唤醒过程。通过这种短连接方法,一方面可以利用已存在的连接,避免频繁的进行身份验证,节约流量,同时提到连接效率;对于新建立的连接则需要身份验证,同时保证了通信的安全性;另一方面利用心跳机制,如果在设定时间内没有数据包传输,则服务器端认为车载端已经掉线,主动断开与车载端的连接,避免长时间占用服务器资源所造成的服务器资源浪费。作为一种实现方式,本实施例中,车载端为TBOX,即车载智能盒;服务器端为TSP(TelematicsServiceProvider,Telematics服务提供商)服务器。为叙述简便,以下以TBOX和TSP服务器为例进行说明。心跳机制具体为:为了检测TBOX是否在线,TBOX建立连接后,每隔10秒向TSP发送一个心跳包;TSP检测通道上是否有数据包传输,如果超过10秒没有数据包传输,TSP尝试3次检测,当达到30秒没有数据包传输,则认为TBOX已经掉线,TSP将主动断开与TBOX的连接。由于每个网络连接的打开都消耗一定的系统资源(内存及进程的占用)及网络流量,而TSP后台同时并发的连接数量是一定的,为了提高通信效率,节省网络流量及提高系统资源利用率,本实施例还设置了错误处理机制,即:如果车载端或服务器端在接收的消息的错误元素中解析出错误值,则不再主动发送消息,并释放之前所占用的系统资源。上述错误元素为本发明实施例定义的应用通信协议ACP(ApplicationCommunicationProtocol)消息的一部分。请参照图3所示,定义了ACP消息的消息头和通用元素,其中消息中位顺序:0~7代表从字节的最高位到最低位,由TCP传输协议保证消息的完整性、有效性和报文超时重传等。ACP消息装载在TCP协议中的应用报文中,其中:帧头(SOF:StartOfFrame)和帧尾(EOF:EndOfFrame)是固定的字符,用于标志一帧完整的数据帧;消息头(ApplicationHeader)为ACP协议的消息头,主要包含的信息为整个ACP消息的长度;元素(Element)主要为要传递的信息主体。下面介绍重点字段:VehicleDescriptor:用于描述汽车的唯一标号,其中包括汽车的VIN号,TBOX序列号,通信模块的IMEI、ICCID,这几个号组合在一起形成VehicleDescriptor。Source:取值范围为0-255,由TSP服务器端下发到TBOX,以标志同一流程中不同的会话开始,TBOX后续回复中必须使用相同的Source值。由TBOX自动发起的交互中,如果存在Source元素,则设置Source值为0;当一个会话完成后(即整个流程完成后),Source值被重置,下一会话可以再次使用该Source值,例如:当TSP服务器向车机发送多条异步远程控制命令时,通过该值区分返回值为哪一条远程控制命令所发起。AuthToken:当TBOX建立连接后,通过TSP服务器验证身份完毕时,由TSP服务器根据TBOX身份信息生成唯一的AuthToken值,AuthToken用于标识TBOX身份信息,当TBOX收到AuthToken值时,根据相同算法计算出该值,与从TSP服务器收到的进行比较,如果相同则验证通过。ErrorElement:协议中包含的所有ErrorCode汇总,如果该元素ErrorCode值为非零,则流程结束。如果消息下的元素ErrorElement出现非零错误(参见表1),则表示该流程结束。TBOX和TSP收到该错误后都不再主动发送消息,并释放之前应用占用的系统资源(内存,连接),如果需要继续之前的服务,则需要重新发起。表1为错误类型列表:表1错误类型列表错误值含义0无错误1AuthToken验证失败2车辆认证失败3TSP身份验证失败(后台下发)4ACP协议解析错误5CAN通信错误6TBOX系统忙7无效指令8包序号错误9CRC验证失败10任务执行失败11任务执行超时12应答数据过长13车辆配置错误14任务执行条件不满足15功能禁止16VIN号错误17车辆未上电18电压异常TBOX与TSP服务器交互时,无论是通过TSP服务器通知发起的流程或是TBOX主动发起的流程,建立连接后都需要首先发起身份验证流程,通过后则根据具体流程发送消息,如没有通过则流程终止。基于上述ACP消息,在TBOX和TSP服务器之间的身份验证过程如图4所示:TBOX通过CRC32(循环冗余校验码)算法生成第一AuthToken值,并填入身份验证消息中;TSP服务器接收到身份验证消息后,通过CRC32算法生成第二AuthToken值,并与第一AuthToken值进行对比,如果一致则身份认证通过,否则不通过;TSP服务器向TBOX反馈身份验证结果。请再参照图5所示,为TSP服务器主动发起会话的时候,TBOX的处理流程。其中本实施例建立了超时处理机制,具体流程为:TBOX发送身份验证消息之后开启定时器,在一定时间内如果没有收到TSP服务器的回复,则判定属于超时,根据定时器超时回调函数发送的超时消息进行数据处理或超时处理,并在收到该超时消息时清零该定时器。由于TSP服务器与TBOX之间的移动通信是串口通信,则涉及到数据的分割问题,需要进行首包和后续包的区分处理。当接收到完整的数据的时候,则会根据各应用标识(APPID)将数据分发到各个应用中。再如图6所示,为TBOX主动发起会话,或TSP服务器请求TBOX数据时,TBOX回复数据,TBOX的处理流程。各个应用根据需要进行数据的打包,填入帧头帧尾,计算CRC,根据身份验证还是应用报文的不同填入不同的数据内容,并把发送是否成功返回给各个应用业务。综上所述,本发明实施例所带来的有益效果包括:通过短连接方法,一方面可以利用已存在的连接,避免频繁的进行身份验证,节约流量,同时提到连接效率;对于新建立的连接则需要身份验证,同时保证了通信的安全性;另一方面利用心跳机制,如果在设定时间内没有数据包传输,则服务器端主动断开与车载端的连接,避免长时间占用服务器资源所造成的服务器资源浪费;通过建立错误处理机制,当在消息中存在错误元素时,则不再主动发送消息,及时释放所占用的系统资源,减少系统开销。以上所揭露的仅为本发明较佳实施例而已,当然不能以此来限定本发明之权利范围,因此依本发明权利要求所作的等同变化,仍属本发明所涵盖的范围。当前第1页1 2 3