[行业规范] DoIP协议之时间参数简介

[复制链接]
查看1269 | 回复0 | 2022-6-26 14:21:55 | 显示全部楼层 |阅读模式

马上注册,结交更多好友,享用更多功能,让你轻松玩转社区。

您需要 登录 才可以下载或查看,没有账号?立即注册 |

x
今天是2022年6月26日,魔都晴天、燥热,又是一个奢侈的周末,可睡眠到自然醒。
记录一些文字,期盼能够留下时间的印记,在年终复盘有记录可查。按照习惯,分享一段喜欢的文字,避免自己成为高知识低文化的工程师:

人只有知道自己无知后,才能从骨子里谦和起来,不再恃才傲物,不再咄咄逼人。所以说人总是越活越平和,我们称之为成长,成长就是慢慢的像尊重自己一样尊重他人,承认自己无知不代表否定自己,而是为了改善自己。

Return to today‘s topic!
本文主题是DoIP协议时间参数,需要了解几个背景信息:
-> 车载诊断:诊断是Tester发送请求至待测ECU,获取响应,分析数据,界定产生故障的车身部位和相应信息。伴随着需求不断丰富,诊断也囊括了车辆下线配置、Software update等功能;

-> DoIP协议:伴随着ADAS和智能座舱引入到车辆中,车身总线的带宽和速度需求不断提升,传统的车载CAN总线不能满足需求,就引入新的车载总线类型——车载以太网。类比如CAN总线传输层定义CAN TP,就有了DoIP协议。
DoIP全称是Diagnostic Over IP,望文知意就是基于IP的诊断协议,主要定义内容:
车辆识别和声明:识别整个网络(局域网)都有谁在参与DoIP通信;
路由激活(Routine Activation):通信机制允许单个诊断消息路径被激活或不区别对待不同的协议(如UDS和OBD),也可以以不同的方式对待单个测试客户端;
通信网络节点信息:提供单个DoIP实体的自属信息。测试工程师使用它获取DoIP实体当前DoIP协议相关信息;
活动机制:用于维护不同的测试客户端连接策略。
b44e5cf5-31e1-4df5-9da1-c8e6ae2402e3.png

类比机制如上,是AUTOSAR中关于基于以太网诊断通信的数据流走向。
49277a14-332b-4916-b6c4-3b1193d51c76.png

DoIP协议优势:
处理大量数据,方便对带宽要求;
节省ECU重编程时间;
快速接入其他IT设施,应用远程诊断设备;
标准通信灵活使用策略。
7bc2abfd-2c39-4f4c-a618-a382fde6d06e.png

车载以太网在车辆诊断应用过程中,会涉及到很多时间参数,用于保证整个通信快速有效进行,时间参数列表如下:
bf413abe-571c-4980-af93-c213a4e7b0ff.png

1、A_DoIP_Ctrl
应用场景:多个车辆在同一个网络
在常规条件下,当车辆接入DoIP网络且IP地址分配完成时,DoIP实体会连续发送3次车辆声明。
3458b1e3-3a23-4d43-89a6-edcfaa98810d.png

等待该时间,汇总入网的所有车辆声明信息。

2、A_DoIP_Announce_Wait
上述时间参数典型应用场景如下:
(1)DoIP实体获取IP地址后,加入网络成功到发送第一个车辆声明信息的时间间隔;
(2)DoIP实体在收到Tester发送的车辆信息请求(Vehicle information request)后发送车辆信息响应报文的时间间隔长度;
在规范中定义该参数值是0-500ms范围随机值,目的是避免所有DoIP实体同时发送车辆声明报文或车辆信息响应报文,造成网络堵塞。
3、A_DoIP_Announce_Interval
该事件参数具体如下图所示:
04a11c03-c636-4aff-bb4f-56e87fc986f0.png

该时间参数是三条车辆声明报文之间的时间间隔,协议推荐值是500ms。
4、A_DoIP_Announce_Num
该参数不是时间参数值,具体是指DoIP实体(边缘节点)发送车辆声明报文的次数,协议推荐定义为3次。
5、A_DoIP_Diagnostic_Message
具体参数示意图如下:
342edc6a-2828-45f1-a317-922b100c5f8f.png

如上示意图所示,该参数指DoIP实体(边缘节点)在接受到诊断报文后,到发送诊断ACK/NACK的时间间隔,含义有二:
-> 对DoIP节点来说,是对节点性能的要求,要求DoIP实体在50ms内做出响应;
-> 对诊断设备来说,发送完诊断报文后的等待时间,超时时间为2s,超时后仍未收到诊断响应报文的话,应该重复发送该诊断报文。

6、T_TCP_General_Inactivity
DoIP实体内部管理着一个DoIP连接表(DoIP Connection Table),用于记录和维护诊断通信的逻辑连接。当一个新的Socket 建立,逻辑连接状态从“Listen”跳转到“Socket initialized”,并同时启动一个定时器:initial inactivity timer
该参数指DoIP节点在收到路由激活报文后,且没有进行TCP数据交互的情况下,保持TCP连接的最长时间,超时时间为5min,超时后仍没有任何TCP数据交互的话将关闭TCP连接。
7、T_TCP_Initial_Inactivity
该参数指DoIP实体(可为边缘节点也可是车内DoIP实体)在建立TCP连接后等待路由激活报文的最长等待时间,协议推荐超时时间为2s,如果2S后仍没有收到路由激活报文,DoIP节点将关闭TCP连接。
8、T_TCP_Alive_Check
该时间参数指DoIP节点在发送诊断设备在线检查请求后的等待响应时间,协议推荐值超时时间为500ms,如果超时后未收到相应的响应,则DoIP实体判断诊断设备已离线,关闭TCP连接。注意,当DoIP节点向TCP socket发送请求失败时也应该启动该定时器,意味着诊断设备通信失败,可能已经离线。
这里分享个趣事,去年在参加一场线上面试时,被考官问过一个问题:Alive Check发送者是什么?
doubt-3711259.jpg

不是Tester,是DoIP实体。
9、A_Processing_Time
在诊断范畴中,有些UDS诊断请求是不需要诊断响应的(e.g. 肯定响应抑制位被置为TRUE),诊断设备在发送完一个不需要响应的诊断报文后,应等待一段时间再发送下一个诊断请求,给ECU预留一段时间进行处理。A_Processing_Time就是指这个间隔时间。保证整个通信机制正确无误进行。

10、A_Vehicle_Discovery_Timer
该参数是指车上DoIP实体做GID同步的时间,诊断设备只有在收到的车辆信息响应报文或车辆声明报文中带有效的 VIN/GID 且 VIN/GID sync. status 为 “incomplete(0x10)”时,启动该定时器,等待车上的DoIP实体进行GID同步。该定时器超时时间为5s(协议推荐),超时后诊断设备可再次请求车辆信息。
6b19cb9a-6b55-4ffd-b87f-1a0ea2d9cb75.png

上述时间参数是DoIP通信过程中所用的时间参数(次数),是为了保证协议通信一致性和有效性。有的是超时处理、间隔时间处理等。在做DoIP模块功能实现或者测试时需要注意这方面的要求。

-----------------------------------
   作者简介 | 穿拖鞋的汉子
    汽车电子工程师
微信公众号:车载诊断技术
    来,每天进步一点点!
"您的鼓励,是我前进的动力"
还没有人打赏,支持一下
车研会员,开心每一天!
您需要登录后才可以回帖 登录 | 立即注册 |

本版积分规则