1. 参数列表

下表为标准中定义的DoIP时间参数:

2. 参数示意图

我们把这些时间参数放在通讯流程中,能更加清晰直观地看出各参数的作用:

3. 参数详解

我们按照上图中的顺序依次看一下各个参数。

(1)A_DoIP_Announce_Wait

这个时间参数应用场景有两个:

  • DoIP节点在获取IP地址成功到发送第一个车辆声明报文的时间间隔
  • DoIP节点在收到诊断设备发送的车辆信息请求报文后发送车辆信息响应报文的时间间隔

该参数是0-500ms的一个随机值,之所以设置为随机值是为了避免所有DoIP节点同时发送车辆声明报文或车辆信息响应报文,造成网络堵塞。

(2)A_DoIP_Announce_Interval

该参数是指三条车辆声明报文之间的时间间隔,为500ms。

(3)A_DoIP_Announce_Num

这个参数不是时间参数,是指DoIP节点发送车辆声明报文的次数,标准定义为3次。

(4)A_DoIP_Ctrl

该参数值诊断设备发送完上一个UDP报文后的等待响应的最长等待时间,注意两点:

  1. 如果该UDP报文以广播形式发送给多个DoIP节点,那么这个时间指等待所有节点响应的完成的时间。
  2. 该时间参数只针对UDP报文。

(5)A_Vehicle_Discovery_Timer

该参数是指留给车上DoIP节点做GID同步的时间,诊断设备只有在收到的车辆信息响应报文或车辆声明报文中带有**有效的 VIN/GID 且 VIN/GID sync. status 为 “incomplete(0x10)”**时,才会启动该定时器,等待车上的DoIP节点进行GID同步。该定时器超时时间为5s,超时后诊断设备可再次请求车辆信息。该参数的示意图如下图所示:

(6)T_TCP_Initial_Inactivity

该参数指DoIP节点在建立TCP连接后等待路由激活报文的最长等待时间,超时时间为2s,如果2S后仍没有收到路由激活报文,DoIP节点将关闭TCP连接。

(7)T_TCP_General_Inactivity

该参数指DoIP节点在收到路由激活报文后,且没有进行TCP数据交互的情况下,保持TCP连接的最长时间,超时时间为5min,超时后仍没有任何TCP数据交互的话将关闭TCP连接。

(8)A_DoIP_Diagnostic_Message

该参数指DoIP节点在诊断报文接收完成后,到发送诊断ACK/NACK的时间间隔,该参数有两层含义,对DoIP节点来说,它是对性能的要求,要求DoIP节点要在50ms内做出相应;对诊断设备来说,它是发送完诊断报文后的等待时间,超时时间为2s,超时后仍未收到诊断响应报文的话,应该重复发送该诊断报文。

(9)A_Processing_Time

有些UDS诊断请求是不需要诊断响应的(例如禁止肯定响应位为TRUE),诊断设备在发送完一个不需要响应的诊断报文后,应等待一段时间再发送下一个诊断请求,给ECU预留一段时间进行处理。A_Processing_Time就是指这个间隔时间。

(10)T_TCP_Alive_Check

该参数指DoIP节点在发送了一个诊断设备在线检查请求报文后等待响应的时间,超时时间为500ms,如果超时后未收到响应,则DoIP节点判断诊断设备已离线,关闭TCP连接。注意,当DoIP节点向TCP socket发送请求失败时也应该启动该定时器,应为这意味着诊断设备通信失败,可能已经离线。

4. DoIP节点内部状态机

DoIP节点在不同时刻处于不同的状态,其内部除了TCP socket连接状态外,还维护着一个DoIP逻辑连接状态,状态转换示意图如下图所示:

图中各个事件详解:

[DoIP-127]

当一个新的套接字建立,逻辑连接的状态就从“listen”跳转到“socket initialized”,同时启动定时器T_TCP_Initial_Inactivity。

[DoIP-128]

当DoIP节点接收到诊断设备发来的一个路由激活报文并被正确处理后,逻辑连接的状态就从“socket initialized”跳转到“Registered [Pending for Authentication]” ,此时定时器T_TCP_Initial_Inactivity被停止,启动T_TCP_General_Inactivity定时器。

[DoIP-129]

在完成Authentication之后,逻辑连接的状态就从“Registered [Pending for Authentication]”跳转到“Registered [Pending for Confirmation]” 。

[DoIP-130]

在完成Confrmation之后,逻辑连接的状态就从“Registered [Pending for Confirmation]”跳转到“Registered [Routing Active] ” 。

[DoIP-131]

当DoIP节点进入Registered [Routing Active] 状态前,除了路由激活报文、Authentication报文以及Confrmation报文,其余报文都不应该被处理和路由。

[DoIP-132]

如果T_TCP_Initial_Inactivity或T_TCP_General_Inactivity超时后仍没收到后续请求,或者authentication 和 confrmation 被拒绝了,又或者外部测试设备对alive check 消息没有响应,则逻辑连接进入“Finalize”状态。

[DoIP-133]

当DoIP节点返回“Finalize”状态后,此时TCP套接字将被关闭,并重新回到“listen”状态,相应的资源被释放,等待新的TCP连接。

DoIP(四)—— 时间参数相关推荐

  1. DoIP协议从入门到精通系列——DoIP协议时间参数

    记录一些文字,期盼能够留下时间的印记,在年终复盘有记录可查.按照习惯,分享一段喜欢的文字,避免自己成为高知识低文化的工程师: " 人只有知道自己无知后,才能从骨子里谦和起来,不再恃才傲物,不 ...

  2. NXP(I.MX6uLL)DDR3实验——DDR3重要时间参数、时钟配置与原理图简析

    目录 DDR3 内存时间参数 传输速率 tRCD 参数 CL 参数 AL 参数 tRC 参数 tRAS 参数 I.MX6U MMDC内存控制器简介 MMDC内存控制器简介 MMDC内存控制器信号引脚 ...

  3. 修改linux用户时间设置,Linux用户和组的操作(九) 修改用户账号密码时间参数 chage...

    使用chage(change age)命令也可以修改用户账号密码的时间参数,而且可以直观显示. chage命令行选项: 选项 含义 -l 列出用户账号密码的详细时间参数 -d 修改密码修改日期,/et ...

  4. 【rotors】多旋翼无人机仿真(四)——参数补偿和PID控制

    [rotors]多旋翼无人机仿真(一)--搭建rotors仿真环境 [rotors]多旋翼无人机仿真(二)--设置飞行轨迹 [rotors]多旋翼无人机仿真(三)--SE3控制 [rotors]多旋翼 ...

  5. 网络计划--时间参数的计算和优化

    根据网络图的基本概念和原则绘制出网络图之后,我们可以计算网络图中有关的时间参数,主要目的是找出关键路线,为网络计划的优化.调整和执行提供明确的时间概念.如下图中从始点①到终点⑧共有4条路线,可以分别计 ...

  6. 运筹说 第87期 | 网络计划-时间参数的计算

    一.引例 根据网络图的基本概念和原则绘制出网络图之后,我们可以计算网络图中有关的时间参数,主要目的是找出关键路线,为网络计划的优化.调整和执行提供明确的时间概念.如下图中从始点①到终点⑧共有4条路线, ...

  7. UDS(三)网络层时间参数

    网络层定义了N_Ar.N_As.N_Br.N_Bs.N_Cr.N_Cs六个时间参数. 网络层在检测到错误的时间传递至上层使用者 1.当N_As 超时时,即发送方没有及时发送出N_PDU,系统将放弃信息 ...

  8. LCD 时间参数与crt显示器联系

    如果将 LCD 显示一帧图像的过程想象成绘画,那么在显示的过程中就是用一根"笔"在不同的像素点画上不同的颜色.这根笔按照从左至右.从上到下的顺序扫描每个像素点,并且在像素画上对应的 ...

  9. DDR3 关键时间参数

    1.传输速率 比如 1066MT/S. 1600MT/S. 1866MT/S 等,这个是首要考虑的,因为这个决定了 DDR3 内存的最高传输速率. 2. tRCD 参数 tRCD 全称是 RAS-to ...

  10. python函数对变量的作用遵守原则有哪四条_创建一个包含四个参数的函数

    是的,所以我在做家庭作业,我被要求做以下工作: 创建一个名为student data的函数,它接受四个参数,一个名称(一个字符串).一个年龄(一个整数).一个学生编号(一个字符串)以及他们是否在CSC ...

最新文章

  1. 【GVA】gorm多对多关联使用Preload带出关联表中的数据
  2. JavaScript 获取客户端计算机硬件及系统信息
  3. HTML5的基本入门格式介绍
  4. EBS FORM开发问题总结
  5. IBM希望其“裁剪”过的Swift能够引诱你使用BlueMix云
  6. excel中VBa应用总结
  7. 学了Java就有用,是本世纪最大的谎言
  8. Leetcode每日一题:9.palindrome-number(回文数)
  9. git进阶(撤销pull、撤销merge、撤销add)
  10. 【激光雷达】激光雷达点云数据的技术流程和点云预处理的方法
  11. Android画板(三):WhiteBoard画板开源库
  12. 软件系统分析设计过程方法精要
  13. Word去除段前黑点
  14. linux下gzip用法,Linux gzip 命令的使用
  15. 怎么卸载光速头条_教你怎么卸载光速浏览器
  16. Pygame 简单打字游戏
  17. PCA主成分分析法浅理解
  18. 【物理】半导体物理 西安电子科技大学 柴常春等主讲-[笔记P1-P9]
  19. Android隐藏导航栏按键,Android如何控制导航栏单个按键的显隐状态
  20. AI (Adobe Illustrator)软件快捷键使用大全(适用于全部版本)

热门文章

  1. 关于QQ表情数据库的复制
  2. 最齐全的骨头VRay材质球素材,速来收藏
  3. 诺基亚10.22变革影响的分析
  4. MongoDB介绍与部署使用
  5. WPS表格填充技巧大全
  6. 谁说菜鸟不会数据分析
  7. 0.3 Python环境安装
  8. 数据库基础知识(面试)
  9. 关于dsoframer VC++下的使用
  10. 本科毕业论文降低查重率小技巧