1. 概述
当UDS被用于DoIP的时候,有一些针对以太网特有的规则,我们本文来介绍一下这些规则。UDSonIP的内容在ISO 14229-5中定义。
2. UDS服务的特殊规定
部分UDS服务在应用于DoIP的时候,由于以太网通信的特性,会有下文所述的一些特殊规则。
(1)DiagnosticSessionControl (0x10) service
诊断会话控制切换会导致TCP连接中断,在再次开始诊断前要重新建立TCP连接,并发送路由激活报文。
(2)ECUReset (0x11) service
ECU复位会同样会导致TCP连接断开,路由激活失效,在再次开始诊断前也要重新建立TCP连接,并发送路由激活报文(针对所有相关DoIP节点)。
(3)ReadDataByPeriodicIdentifier (0x2A) service
这个服务我觉得其实没啥影响,只是服务原语和CAN有所不同,涉及到的具体章节是ISO 14229-5-6.5,我也没有仔细研究,大家用到的时候可以详细查查标准原文。
3. PDU映射
14229中定义的T_PDU与ISO 13400中定义的DoIP_PDU映射关系如下,需要注意的是,DoIP不支持远程诊断和扩展寻址。
4. 时间参数
下表是ISO 14229-2中定义的有关UDS会话层的时间参数,红框中的几个时间参数在UDSonCAN中不是很常用,但在UDSonIP中可能会用到:
(1)P6
P6的概念和P2很像,都是发送方等待接收方的响应的时间,不同之处在于P2是刚开始接收到响应即停止,P6是响应完全接收完毕才停止。车载以太网因为本身实时性就不如CAN这一类的网络,还可能涉及到路由转发,所以网络延迟可能比较长,所以有时候需要考虑P6。
(2)P4Server
P4Server这个时间参数其实不只是UDSonIP用到,UDSonCAN也可能用到,但用的比较少。它的含义是ECU接收到诊断请求后到最终的诊断肯定响应或否定响应(不包含NRC 0x78)的时间间隔,它是对ECU性能的要求,目的是防止ECU长时间返回NRC 0x78的否定响应。
当P4Server_max与P2Server_max相同的时候,就意味着不允许ECU返回NRC 0x78的否定响应。
标准中还规定,连续返回NRC 0x78时,时间间隔不能小于0.3 * P2*Server_max,以避免网络中存在过多不必要的否定响应。
下面是标准中对各时间参数范围的要求以及P2/P6的示意图,供大家参考:
以上就是有关UDSonIP的内容,UDSonIP在其他方面与UDSonCAN没有太大的不同。感谢大家的时间。