汽车以太网的统一诊断服务的功能寻址方法与流程

文档序号:18823733发布日期:2019-10-09 01:13阅读:1498来源:国知局
汽车以太网的统一诊断服务的功能寻址方法与流程
本发明属于汽车以太网的诊断通信领域,尤其是一种基于汽车以太网的uds(unifieddiagnosticservice)功能寻址方法。
背景技术
:在汽车以太网技术中,诊断的高层数据(uds)是承载在doip(diagnosticcommunicationoverinternetprotocol)之上的。具体是承载在doip协议中负载类型0x8001的诊断数据报文之上的。在当前版本的doip协议中,明确指出0x8001的诊断报文承载在tcp(transmissioncontrolprotocol)之上。也就是说基于doip的诊断通信只具备点对点通信的能力。而诊断通信实际上支持两种通信模式,即物理寻址和功能寻址。物理寻址就是点对点通信,功能寻址就是一对多通信。在当前汽车以太网诊断的实现方案上,如果需要功能寻址的通信方式,在doip层需要对每个需要通信的节点单独发送数据包,即用多次单点通信的方式完成一对多通信。传统的汽车通信总线是can(controllerareanetwork)总线,诊断通信在can总线上实施时,当需要使用功能寻址时,外部测试设备只需要发送一次报文,相应的所有服务器就能收到对应的功能寻址的报文。传统的以太网中,一对多通信也有成熟的解决方案,即基于ip的广播和组播。然而,目前汽车以太网技术还在初始发展阶段,将以太网技术和原有诊断通讯需求结合的过程,在功能寻址的实现,显得非常笨拙。用多次单点通信的方式来替代一对多通信,增加了诊断通信发起方的软件处理复杂度,且随着功能寻址对象的增加,单次功能寻址通信所需要发送的数据包也随之增加,响应的处理时间和总线带宽都被无谓的浪费掉了。而简单的直接使用以太网组播/广播来传送功能寻址报文,又对汽车诊断业务而已,不够安全。技术实现要素:本发明提供了一种基于汽车以太网的uds功能寻址方法,从而有效地减少了通信发起方的软件处理复杂度,提高了响应的处理时间和总线带宽的利用率。依据上述目的,实施本发明的一种基于汽车以太网的统一诊断服务的功能寻址方法,其特征在于,包括如下步骤:步骤s1,建立功能组地址与ip组播地址之间的映射表;步骤s2,完成服务器对外部测试设备访问权限的控制,根据所述映射表将服务器加入ip组播组;步骤s3,发送功能寻址通信模式的诊断报文给ip组播组中的服务器,所述诊断报文中包含有ip组播地址;步骤s4,根据功能寻址模式的诊断报文,进行诊断处理;其中,所述服务器具有功能组地址和ip地址,所述ip组播地址由ip地址组成。可选的,所述步骤s2包括:步骤s21,寻找服务器的ip地址;步骤s22,与服务器设备建立tcp连接;步骤s23,发送路由激活的请求报文,请求报文中包含有外部测试设备的逻辑地址;步骤s24,根据逻辑地址判断能否进行诊断通信,如果能够进行诊断通信,则将当前tcp连接标记为激活,执行步骤s25;否则,执行步骤s26;步骤s25,根据映射表,查找出与服务器的功能组地址相对应的ip组播地址,将服务器加入ip组播组中,逻辑地址标记为激活;步骤s26,断开当前的tcp连接,如果此时外部测试设备与服务器没有其它连接,则服务器退出ip组播组。可选的,所述步骤s3中,根据所述诊断报文中的ip组播地址,外部测试设备将功能寻址通信模式的诊断报文发送给ip组播组中的服务器,其中所述ip组播地址的数据包按照用户数据包协议封装。可选的,所述步骤s4包括:步骤s41,检测外部测试设备的逻辑地址是否已激活,如果是,执行下一步;否则,发送失败响应码给外部测试设备,关闭当前tcp连接;步骤s42,判断服务器是否支持与诊断报文中的ip组播地址对应的功能组地址,如果是,执行下一步;否则,发送失败响应码给外部测试设备并丢弃所述诊断报文;步骤s43,发送成功响应码给外部测试设备,将诊断报文上报给服务器内的诊断处理模块,开始诊断处理。依据上述目的,实施本发明的一种外部测试设备,用于在汽车以太网上实现统一诊断服务的功能寻址,其特征在于,所述外部测试设备发送路由激活的请求报文给服务器,路由激活后根据功能组地址与ip组播地址之间的映射表将服务器加入ip组播组,诊断通信时同时发送功能寻址通信模式的诊断报文给ip组播组中的服务器进行诊断处理;其中,所述服务器具有功能组地址和ip地址,所述诊断报文中包含有ip组播地址。可选的,所述请求报文中包含有外部测试设备的逻辑地址信息,用于服务器判断外部测试设备是否有权限进行诊断通信。依据上述目的,实施本发明的一种车载网络系统,用于在汽车以太网上实现统一诊断服务的功能寻址,包括网关和服务器,所述网关用于基于ip网络的诊断通信,其特征在于,所述网关,用于在外部测试设备与服务器之间建立tcp连接,将功能组地址与ip组播地址之间的映射表内置于其内部与诊断功能相关的节点上;所述服务器,接收外部测试设备发送路由激活的请求报文并判断外部测试设备是否有权限进行诊断通信;诊断通信时接收功能寻址通信模式的诊断报文并进行诊断处理。可选的,所述请求报文中包含的外部测试设备的逻辑地址信息,所述服务器根据所述逻辑地址信息判断外部测试设备是否有权限进行诊断通信。可选的,所述服务器内部包含有诊断处理模块,能够根据诊断报文进行诊断处理。可选的,外部设备与服务器的通信连接方式包括无线通信、有线通信;所述无线通信包括但不限于wifi、4g、5g、蓝牙。采用了本发明的技术方案,针对现有技术的不足,通过采用功能地址与ip地址映射表,并利用tcp与路由激活的限制权限访问机制以及改进的以太网组播机制,采用改进的组播模式,客户端在处理功能寻址发送时,只需要处理一次,发送一份数据包即可,外部测试设备的处理时间、整体通信的时间、以及系统带宽的占用都得到很好地改善。附图说明图1是:功能寻址模式访问控制的流程图;图2是:功能寻址模式下单播方式诊断报文的结构图;图3是:功能寻址模式下组播方式诊断报文的结构图;图4是:ip数据负载的结构示意图;图5是:tcp数据负载的结构示意图;图6是:udp头的结构示意图;图7是:单播方式示意图;图8是:组播方式示意图;图9是:功能寻址模式下诊断报文接收处理的流程图。具体实施方式下面结合附图和实施例进一步说明本发明的技术方案。本发明中基于汽车以太网的uds功能寻址方法的具体实施步骤为:首先,功能寻址地址与ip组播地址建立映射表。按照doip协议标准,功能寻址地址规定如下:表1功能寻址组地址定义而ip协议把224.0.0.0~239.255.255.255之间的ip地址都用做ip组播地址,其中224.0.2.0~238.255.255.255为用户可用的组播地址。在实际使用时,首先将功能组地址(功能寻址地址)与ip组播地址做一一映射,并将映射表内置于汽车以太网诊断功能相关节点上。一个实施例中,功能组地址与ip组播地址映射表,可以如下所示:功能组地址ip组播地址0xe000225.1.224.00xe000…0xe3ff225.1.224.0…225.1.227.2550xe400…0xefff225.1.228.0…225.1.239.255表2功能组地址与ip组播映射表需要说明的是,映射表是汽车以太网诊断服务功能寻址方式能够承载在ip组播方式上所必须的,但是映射表内容并不限定于上述表2所示的范围。其次,采用tcp与路由激活的限制权限访问机制对ip组播的进行适配,完成功能寻址模式的服务器对外部测试设备访问权限的控制和管理。如图2所示,主要步骤如下:(a)外部测试设备发起doip设备发现流程,找到服务器(ecu)的设备信息,例如如ip地址等;(b)外部测试设备主动向服务器(ecu)发起并成功建立tcp连接;(c)外部测试设备在建立的tcp通道上发起路由激活请求,请求报文中带有外部测试设备的逻辑地址信息;(d)服务器(ecu)根据外部测试设备的逻辑地址信息,判断外部测试设备是否有权限进行后续的诊断通信;(e)如果服务器(ecu)判断外部测试设备有权进行后续诊断通信,则将当前通信的tcp连接标记为有效;同时根据服务器(ecu)自己的功能组地址,查找功能组地址与ip组播映射表,将服务器(ecu)加入对应的ip组播组中;服务器(ecu)将外部测试设备的逻辑地址标记为激活,并对当前的tcp连接进行绑定;(f)如果服务器(ecu)判断外部测试设备无权进行后续诊断通信,则断开当前的tcp连接,如果此时已经没有外部测试设备连接到服务器端(ecu)上,则服务器端(ecu)退出ip组播组。逻辑地址可以是外部测试设备的ip地址、身份标识号码(id,identity)或者其它标记等信息,可以预先定义、设置于服务器(ecu)中。本发明在原有的doip路由激活机制上增加适配组播通信的流程,在激活成功情况下,服务器需要在已知本身功能组地址的情况下,查找功能组地址映射表(即表2)后,加入对应的ip组播组。而在激活失败的情况下,如果确认所有客户端都已经断开,则服务器需要退出对应的ip组播组。再其次,外部测试设备发送功能寻址通信模式的诊断报文给服务器。在外部测试设备需要发起功能寻址模式诊断通信时,应查询内置的功能组地址映射表(即表2),将诊断报文中的目的功能组地址转换成ip组播地址。一个实施例中,约定功能寻址通信模式使用的端口号为13401。如图2、3所示,采用功能寻址模式走ip组播方式后,数据包格式在doip以上层同原有走tcp方式维持不变,为了能够走组播方式,传输层承载在了udp上,ip层的目标ip地址为ip组播地址。上层诊断处理逻辑都保持不变,最大化兼容了原有的处理机制。ip头(ipheader)一般为20个字节组成,特殊情况下还会有可选(option)字段,ip头之后是ip数据负载(data)。如图4所示为ip数据负载的结构示意图,其中目的地址(destinationaddress),在使用tcp进行单点一对一通信时,填写服务器(ecu)的ip地址;在使用udp组播时,查询功能组地址与ip组播映射表,填写服务器(ecu)功能组地址对应的组播ip地址。其他ip头字段,在两种通信方式时,填写内容都是一样的。tcp头(tcpheader)部字段一般由20个字节组成,特殊情况下还会有可选(option)字段,tcp头之后是tcp数据负载(data),如图5所示为tcp数据负载的结构示意图。在doip现有协议约定中,无论是单点的一对一通信,还是一对多的通信,都统一使用tcp方式进行。udp头(udpheader)由固定8字节组成,其结构如图6所示。由于tcp协议本身就是为一对一通信设计的,不支持组播方式;而udp支持组播方式。因此在使用组播方式进行一对多的通信时,需要使用udp,按照udp头的格式封装数据包。ip层外部测试设备式由单播变为组播后,客户端在处理功能寻址发送时,只需要处理一次,发送一份数据包即可,不再需要像单播模式时,给每一个目标节点单独发送一份数据。如图7、8所示,采用组播模式后,外部测试设备的处理时间,整体通信的时间,以及系统带宽的占用都将得到改善。最后,服务器接收功能寻址诊断报文后,进行诊断处理。如图9所示,服务器接收到功能寻址诊断报文后的处理机制如下:(a)服务器(ecu)判断诊断报文中的外部测试设备的逻辑地址信息是否注册,注册过程见图1。如果没有注册,则服务器(ecu)向外部测试设备返回失败响应码,然后关闭当前的tcp连接;如果有注册,则进入下一步。(b)服务器(ecu)判断诊断报文中的功能组地址是否是自己支持的,服务器所属的功能地址组是预先设置好的,特定的服务器只接收自己所属的功能地址组的报文。如果功能组地址未知,则服务器(ecu)向外部测试设备返回失败响应码;如果功能组地址已知,则进入下一步。(c)服务器端(ecu)向外部测试设备返回成功响应码,并将诊断的相关数据发给对应的诊断处理模块进行下一步的处理。其中,客户端逻辑地址是在访问权限鉴权(路由激活)流程中首先被注册的。只有获得了服务器访问权限的客户端发出的功能寻址模式的组播包才会被服务器接收。服务器所属的功能地址组是预先设置好的,特定的服务器只接收自己所属的功能地址组的报文。说明书中的缩略语主要如下所示:表3缩略语本发明使用以太网ip层/mac层组播、广播方式,实现汽车诊断通信的功能寻址模式。本发明具体通过采用功能地址与ip地址映射表,并利用tcp与路由激活的限制权限访问机制以及改进的以太网组播机制,采用组播模式,既满足了汽车诊断业务的安全需求,同时能够实现汽车以太网功能寻址模式的一对多通信模式,外部测试设备的处理时间、整体通信的时间、以及系统带宽的占用都得到很好地改善。当前第1页12
当前第1页1 2 
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1