doip诊断会话的建立
诊断会话5步:
激活线激活——车辆发现——路由激活——诊断交互——关闭TCP_DATA_Socket;
目录
1.激活线激活
2.车辆发现 (IP地址分配+车辆信息获取)
3.路由激活 (路由激活 +TCP_data socket处理 + 在线检测)
路由激活:
tcp_data socket处理
在线检测 (alive check)
4.诊断处理
1.激活线激活
边缘节点(网关)-硬线激活 (减少电磁干扰/降低损耗);
标准:
建立通信连接:通过OBD口连接边缘节点,并在激活线上提供激活条件所需的电压(ISO 13400规定激活条件为:至少200ms以上5V及以上电压),才可以激活边缘节点诊断功能;
断开通信连接:激活线上提供满足失活条件的电压(ISO 13400规定失活条件为:至少200ms以上2v及以下电压),边缘节点进入诊断失活状态而不能进行诊断通信。
当激活条件不满足时,外部诊断仪与边缘节点不能进行以太网通信,同时边缘节点不执行IP地址分配及车辆发现流程。
2.车辆发现 (IP地址分配+车辆信息获取)
ip 地址分配:边缘节点作为 DHCP的client; DHCP的server 在诊断仪(tester)中,激活线激活后立刻进行IP地址分配;
车辆信息获取: DHCP强制完成后,边缘节点广播发送3次(A_DoIP_Announce_Num)车辆声明报文,且第一条声明报文应在A_DoIP_Announce_Wait(0~500ms)时间内发出。
注:诊断仪(tester)也可能自行发送车辆信息请求报文 — 要求边缘节点能解析此报文并向下转发;
- 车辆声明报文采用 udp报文传输 — 多次发送提高接收到报文的概率;实际发送次数可自行设置;
- 车辆声明报文 以广播地址(255.255.255.255)作为目的IP地址;
- 车辆声明/信息响应报文中“Further action required”字段意义:该字段值一般默认为0x00,若此字段值为0x10,则诊断仪需要使用0xE0的激活类型发送路由激活请求,即在路由激活过程中需要执行厂商定义的安全认证机制(身份认证、确认)
3.路由激活 (路由激活 +TCP_data socket处理 + 在线检测)
路由激活:
逻辑地址唯一标识; 逻辑地址范围限制;定义诊断仪逻辑地址;诊断仪逻辑地址注册到 TCP_data socket;
- 在doIP通信网络中,使用逻辑地址来唯一标识一个DoIP实体(DoIP节点、诊断仪);
- ISO 13400中定义了ECU及诊断仪的逻辑地址范围,同时规定厂商设计阶段需要定义ECU支持的诊断仪逻辑地址(一个或多个)。
- 进行诊断报文交互之前,诊断仪需要通过路由激活过程将自己的逻辑地址注册到通信的TCP_DATA Socket中。
两时间参数: T_TCP_Initial_Inactivity(2s) ; T_TCP_General_Inactivity(5min);
- 诊断仪与ECU建立TCP连接后需在T_TCP_Initial_Inactivity(2s)时间内进行路由激活,否则ECU会主动关闭该连接;
- 路由激活成功之后,ECU所能保持TCP_DATA Socket静止(无任何诊断交互)的最长时间为T_TCP_General_Inactivity(5min),超时后ECU会主动关闭TCP_DATA Socket。
tcp_data socket处理
ECU所支持的最大并发Sockets数目是有限的(0~255),并且同一Socket同时仅可与一个SA绑定,因此在通过源逻辑地址、激活类型检测之后,需要执行Socket处理机制。
检测到当前激活的Socket已使用其他SA进行激活,ECU会立即停止Socket处理流程,并发送路由激活否定响应报文(响应码为0x02);
在线检测 (alive check)
用于确定已注册并且激活的socket 是否仍被诊断仪所使用;ECU节点发送到诊断仪;
若诊断仪在ISO 13400要求在T_TCP_Alive_Check(500ms)时间内回复相应的Alive Check响应,表明将继续使用并保留该socket;若超时未回复,ECU会立即关闭该Socket,即Alive Check未通过。
4.诊断处理
在路由激活完成后,诊断仪通过tcp_data socket与ecu进行诊断通信;
ECU接收到诊断请求后会进行判别处理,若所有判别均满足要求,ECU会回复诊断肯定响应及诊断响应报文,或者向目标网络转发该诊断请求。
注:
- 1.对内部ECU进行诊断时,网关接收到诊断请求后会按照诊断处理流程图所示依次进行检测,若有检测项不通过,则网关会向诊断仪发送相应诊断否定响应报文,并丢弃该诊断请求。
- 2.报文过大(0x02)是指诊断请求中DoIP报文的负载长度超过网关所支持的最大DoIP报文大小;
- 3.诊断报文过大(0x04)是指诊断报文的长度超过目标网络或者ECU所支持的DoIP报文大小。
- 4.时间限制:网关接收到诊断请求后,需要在A_DoIP_Diagnostic_Message时间内向诊断仪回复诊断肯定ack响应/否定响应报文,若超时诊断仪未接收到相应报文,应重发诊断请求。
- 5.网关内外端口:即外部OBD接口及内部通信接口,诊断仪始终通过OBD口与网关进行通信。在诊断仪对内部ECU进行诊断时,网关接收到该诊断请求并进行解析后,按照自己的诊断路由表通过内部端口将该诊断请求转发至目标ECU。
doip诊断会话的建立相关推荐
- Doip诊断开发之静态IP诊断流程分析
目录 前言 一.Doip诊断是什么? 二.为什么使用Doip诊断 三.Doip诊断流程 1.建立TCP连接 2.路由激活 3.网络链路保持 4.Doip诊断指令发送 5.代码实现 总结 前言 提示:以 ...
- 邻接矩阵中啥时候写0和无穷_(一)UDS诊断服务中的诊断会话控制(DiagnosticSessionControl,0x10)...
诊断会话在服务器中启用一组特定的诊断服务和/或功能,此服务提供服务器可以报告对启用的诊断会话有效的数据链路层特定参数值(例如定时参数值)的功能. 基本用法: ISO 14229规定了几个特定的子功能, ...
- UDS协议-0x10(诊断会话控制)
UDS诊断协议是一种汽车诊断技术,通过收发车辆ECU的请求信号,即可做出相应的响应. 命令 0x10 (诊断会话控制) Diagnostic Session Control 0x10命令用于确定模式, ...
- 会话层--协议寓意的理解和会话的建立与维护
会话层--协议寓意的理解和会话的建立与维护. header信息+会话信息. 转载于:https://www.cnblogs.com/feng9exe/p/11532294.html
- UDS诊断系列之五 诊断会话控制(10)服务
诊断会话控制服务,其服务ID是0x10,主要功能为控制服务端的会话模式的切换. 一.诊断会话模式 诊断会话模式分为默认会话模式和非默认会话模式,不同的会话模式所支持的功能.权限.时间参数等等是不一样的 ...
- UDS知识整理(三):诊断会话控制——0x10服务整理
目录 一.0x10服务(诊断会话控制)简介 二.0x10服务信息格式 (1)请求格式 (2)正响应格式 (3)负响应格式 三.0x10服务举例 (1)如:请求拓展诊断权限 (2)如:请求安全系统诊断权 ...
- 如何使用ODX描述诊断会话和安全等级
ODX 2.2是由ASAM(自动化及测量系统标准协会)提出的诊断标准,是一种基于XML语言的开放式诊断数据格式,已在国际上得到广泛使用.目前ODX诊断标准也已被国内各大OEM采用,但在ODX数据开发阶 ...
- 车载以太网——DoIP协议培训
车载以太网--DoIP协议培训 前言 长期以来,作为汽车"神经系统"的CAN总线技术曾是汽车厂商宣传的技术亮点.然而,随着汽车科技.尤其是汽车电子科技的发展,现有的汽车" ...
- uds的0x10服务介绍
UDS诊断中,0x10服务又称为"诊断会话控制",它是一种用于控制诊断会话的服务.诊断会话是指在车辆诊断过程中,诊断仪与ECU之间建立的一个通讯会话.通过发送0x10服务请求报文, ...
- 详解以太网诊断DoIP
目录 摘要: 01.概述 02.DoIP的网络拓扑 03.DoIP的接收方式和协议格式 3.1 端口 3.2 协议格式 3.3Protocol version与Inverse protocol ver ...
最新文章
- jmail反馈是否发送成功_如何在钉钉上自动发送定制消息或通知给同事?(10行代码搞定)...
- 安装Eclipse ADT插件时遇到的问题
- 【Unity】第8章 GUI开发
- dba的前景_2019年DBA薪资大起底,你拖后腿了吗?
- SAP CRM WebClient UI recent object的后台存储实现
- 1.12.05 统计单词数
- 未找到具有固定名称“System.Data.SqlClient”的 ADO.NET 提供程序的实体框架 解决方案...
- 软件工程 speedsnail 第二次冲刺1次
- Caffe100数据集使用
- mail linux 客户端,Nylas Mail: 一个 Linux 的免费邮件客户端
- div+css布局与seo的关系
- 利用selenium下载图片,不使用requests和urllib等其他工具
- 安卓游戏等待服务器响应时间,电竞显示器响应时间原理及最佳游戏设置方法
- LC串联谐振的分析方法
- Adobe Spark试用手记
- BLDC反电势过零检测计算
- 【机器学习】Python秘密武器之Numpy
- 长春理工大学成人高考报名流程
- stata质别变量赋值_【STATA学习笔记】虚拟变量的生成
- Jquery监听onChange事件
热门文章
- pop3 c语言,VisualC#编写实现POP3的程序
- [教程] MPICH2 Win7 VS2008环境搭建
- 电脑系统及软件安装日期查看
- python book118_Python3 book118.com文档下载(图片形式)
- 增霸卡传输掉线/无法登录/再次登录时间长
- c3p0连接池配置连接不上mysql_数据库连接池之c3p0的配置 + 问题解决方案
- radius认证服务器部署linux,CentOS安装配置radius服务器
- 从Java新特性看Java的未来
- 黑域BreventAutoPatcher 打补丁出错 Java Runtime not eligible
- Matlab2017a/b激活license.lic文件