DoIP的全称是Diagnostic Over Internet Protocol,即基于TCP/IP协议的诊断协议。随着以太网技术在车载领域的应用范围逐步扩大,越来越多的控制器支持通过以太网进行诊断通信,由于采用以太网通信技术,DoIP诊断具有超高的数据传输速率,速率达到了100 Mbit/s,相较于CAN总线诊断,DoIP诊断总体速率是CAN诊断的100-200倍,网络上的传输速率是CAN诊断的300-400倍。并且硬件成本低,无需使用VCI,在个人电脑上只需要一个以太网接口即可实现诊断的物理连接。DoIP技术可以完美匹配IT基础设施,固定诊断和远程诊断均能应用,车载以太网技术将是未来解决如何快速更新ECU软件及标定的主要策略之一。

DoIP诊断应用场景

场景1:单一诊断仪与车辆直连

诊断仪与车辆直连后,可以诊断单车所有DoIP节点,一般用于单车故障诊断或者ECU升级刷写等功能。

场景2:多台诊断仪并行诊断单台车辆

多台诊断仪通过交换机级联,诊断同一台汽车,各诊断信道互不干扰,可实现多团队同时作业,提高整体工作效率。

场景3:单诊断仪并行诊断多台车辆

多台车辆通过交换机级联,一台诊断仪可与这些车辆建立多个并行的诊断连接。相较于传统的CAN诊断,DoIP诊断有独有的机制,用于标识每一辆汽车及车载的各个ECU单元。单诊断仪连接多台车辆的形式一般用于产线上生产监控及ECU刷写等。

车内诊断网络布局

以上我们简要阐述了一般的应用场景,那么接下来我们走进车内网络,看看外部诊断仪是如何与车内ECU之间建立诊断连接。下图摘自DoIP协议标准文档ISO-13400-2,我们将围绕这张图来进行说明。

图中分为车内网(Vehicle network车外网(External network,车内网和车外网之间,有两组重要的线束,其中一组是用于数据传输的以太网线,另一组是用于诊断功能激活的激活线。以太网线不必多说,就是我们常见的四线制TX标准网线。

而激活线的设计,是用于车内诊断功能的激活。处于能耗和电磁干扰的考虑,要求非诊断通信期间,与诊断相关的功能处于关闭状态,这样一方面可以降低能耗,另一方面减少对网络带宽的消耗,从而降低电磁干扰。

车内网中,直接与外部诊断仪进行物理连接的节点,叫做边缘节点(DoIP edge node)。边缘节点可作为一个网络交换机,将车内网与车外网组成同一子网;也可以作为一个网关,将车内网与车外网进行安全隔离,屏蔽非法的网络访问和网络攻击。

除了边缘节点之外,还有另一类网关,即车内的DoIP网关节点。车内DoIP网关节点的作用,是实现以太网到其他网络总线(如CAN、LIN)的报文路由,这样便实现了DoIP诊断与传统网络总线的兼容。多种网络总线汇聚到DoIP网关,这大大的降低了布线的复杂性,并且提高了各总线网络中ECU的诊断效率。

车内网络中,还存在一般的DoIP节点,这些节点只支持对自身的诊断,而不具备路由功能。最后,还有一类网络节点(Network node),不具备DoIP诊断功能,与DoIP节点共享网络资源。

在车内网络中,各DoIP网关和DoIP节点可以全部级联于DoIP边缘节点,也可以分布于多个交换机网络,但最终都可以被边缘节点直接访问到。

对于边缘节点,人们经常通常有以上的疑问,其实透传和非透传这两种方案,没有好坏之分,都有各自适合的应用场景。例如,连接的外接诊断仪,主要用于多车故障诊断和ECU刷写,为了实现快速的ECU访问和在线监测,要求车内各ECU享有唯一的IP地址,适合使用透传方案。若连接的是TBOX之类具有联网功能控制单元,为了避免车内网受到外部网络攻击,因此适合使用非透传方案。

DoIP协议的主要功能

DoIP协议栈作为以太网诊断软件架构的中间件,主要具备如下五大功能,这五大功能体现了DoIP诊断的特殊性,是区别于传统CAN诊断的重要特征。

接下来我们按照DoIP诊断从连接建立到诊断通信实施的流程,对各个功能模块进行简要讲解。

车辆发现

顾名思义,就是用来检测车辆是否在线,具体来说就是诊断仪首先发送一个广播的车辆发现报文,网络中所有接收到这条报文的ECU都将发送自己的身份信息。通过各个ECU发回的身份信息,诊断仪便可以准确得获知有哪些ECU在线,并且可以根据这些信息对这些ECU进行归类,比如各自属于那一台汽车。

路由激活

与传统意义上网关的“路由”不同,DoIP协议中的“路由”指的是诊断仪与被诊断节点之间的报文传输。外部测试仪与DoIP节点之间的通信连接建立之后,应发送路由激活请求,路由激活请求被DoIP节点验证合法之后,诊断仪才能对ECU进行诊断。路由激活包含了DoIP节点对外部诊断仪的安全认证过程,ECU开发人员可以自定义安全认证的算法,用于屏蔽非法诊断仪对ECU进行的诊断。

诊断仪在线监测

与传统CAN总线不同,DoIP诊断需要预先与ECU建立通信连接,也就是TCP socket。由于socket的建立会消耗内存资源,因此不能无限制创建连接。ECU在设计阶段,会定义最多能支持并行连接的诊断仪数量,并行连接的诊断仪数量达到上限之后,将无法建立新的诊断通信连接。因此这些诊断连接通道属于稀缺的资源,为了避免通道被无效占用,因此设计了诊断仪在线监测机制。DoIP节点会向现在有的诊断连接通道上,发送诊断仪在线监测请求,若有的连接上无法收到诊断仪回复的响应报文,则会将此连接复位,以待新的诊断仪接入。

节点信息

节点信息包含了节点的属性,例如如最大支持的并行诊断仪连接数量,最大可接受的诊断报文长度,以及当前节点的电源状态,即是否所有部件都完成上电。节点信息作为诊断通信前的诊断条件检查,以确保后续诊断通信不受外部因素干扰。

诊断通信

作为DoIP协议的核心功能,此功能负责诊断报文的传输。诊断报文中包含三个信息,即诊断报文发送方的逻辑地址(以下简称SA),诊断报文接收方的逻辑地址(以下简称DA),以及诊断数据。在CAN总线网络中,通过CANID来寻址要诊断的ECU,而在DoIP网络中,DA的作用相当于CANID,用于寻址要诊断的目的ECU。下图通过一个以太网转CAN的诊断示例,展示SA和DA在诊断通信中的作用。

扩展一下:

以上介绍了DoIP诊断规范中的网络拓扑和软件功能,在实际软件开发过程中,还会涉及到诸多的技术细节,例如:

  • 边缘节点透传与非透传方案设计;
  • DoIP节点间IP地址分配策略,即静态IP或者动态IP的选择;
  • 各节点间GID(节点分组ID)同步策略设计;
  • 路由激活安全认证策略设计等。

针对DoIP诊断技术需求,东信创智可以提供以下三种服务模式:

  • DoIP协议培训服务;
  • 商用DoIP协议栈(如vector的microsar协议栈)集成和软件配置服务;
  • DoIP网关样件,可以用于技术验证和诊断测试。

https://zhuanlan.zhihu.com/p/427437371https://zhuanlan.zhihu.com/p/427437371

DoIP诊断技术一点通相关推荐

  1. 2021年危险化学品生产单位安全生产管理人员考试及危险化学品生产单位安全生产管理人员免费试题题库来源:安全生产模拟考试一点通公众号小程序 危险化学品生产单位安全生产管理人员考试是安全生产模拟考试一点

    题库来源:安全生产模拟考试一点通公众号小程序 危险化学品生产单位安全生产管理人员考试是安全生产模拟考试一点通总题库中生成的一套危险化学品生产单位安全生产管理人员免费试题,安全生产模拟考试一点通上危险化 ...

  2. emc整改措施及案例_12.5EMC一点通||EMC整改措施

    点击关注,EMC学习技巧一点通! EMC整改措施 静电精要 1.第一个是疏导,也就是说快速泄放掉静电电流,或者是通过其他的路径,尽量避开相关的敏感器件. 2.第二个就是围堵,就是通过相应的措施使静电放 ...

  3. php一点通,编程一点通

    学好编程最重要的是要细心,学会编程你将成为一个大佬了.编程一点通是一个非常厉害的学习编程的软件,里面有很多技术大佬教导大家进行学习,还有很多关于编程的最新学习方式的资讯都可以免费在线学习,一定不要错过 ...

  4. php一点通,编程一点通app下载-编程一点通安卓版下载v1.0.1-游迅网

    编程一点通是一款非常专业的学习编程的app,这里有海量的学习资源,你可以根据自己的实力选择适合自己的学习资源,不管是初学者还是资深的程序员,都能满足你的需求.收录了海量资源和题库类型,丰富专业的知识, ...

  5. 题库来源:安全生产模拟考试一点通公众号小程序 安全生产模拟考试一点通:2021年焊工(初级)考试资料为正在备考焊工(初级)操作证的学员准备的理论考试专题,每个月更新的焊工(初级)免费试题祝您顺利通过

    题库来源:安全生产模拟考试一点通公众号小程序 化工自动化控制仪表报名考试根据新化工自动化控制仪表考试大纲要求,安全生产模拟考试一点通将化工自动化控制仪表模拟考试试题进行汇编,组成一套化工自动化控制仪表 ...

  6. 计算机毕业设计springboot驾照一点通的设计与实现02bpd源码+系统+程序+lw文档+部署

    计算机毕业设计springboot驾照一点通的设计与实现02bpd源码+系统+程序+lw文档+部署 计算机毕业设计springboot驾照一点通的设计与实现02bpd源码+系统+程序+lw文档+部署 ...

  7. 基于android的家教一点通(家教帮)app

    许多大学生都利用做兼职来充实课外生活或者补贴家用,还有一些老师利用课余时间或者假期时间做家教来赚一些外快,所以家教行业当下很流行,而许多家长在寻找家教时往往像大海捞针而且信息渠道不足,而许多大学生或者 ...

  8. 汽车ECU诊断技术概念介绍

    ECU(Electronic Control Unit)是电子控制单元的简称.从用途上来说就是汽车专用的微型计算机.现代汽车的功能越来越丰富,汽车上的各个子系统都需要功能强大的ECU来控制本系统的工作 ...

  9. 题库来源:安全生产模拟考试一点通公众号小程序 熔化焊接与热切割考试试卷是安全生产模拟考试一点通生成的,熔化焊接与热切割证模拟考试题库是根据熔化焊接与热切割最新版教材汇编出熔化焊接与热切割仿真模拟考试

    题库来源:安全生产模拟考试一点通公众号小程序 2021年P气瓶充装考试内容为正在备考P气瓶充装操作证的学员准备的理论考试专题,每个月更新的P气瓶充装模拟考试题祝您顺利通过P气瓶充装考试. 1.[多选题 ...

  10. Doip诊断开发之静态IP诊断流程分析

    目录 前言 一.Doip诊断是什么? 二.为什么使用Doip诊断 三.Doip诊断流程 1.建立TCP连接 2.路由激活 3.网络链路保持 4.Doip诊断指令发送 5.代码实现 总结 前言 提示:以 ...

最新文章

  1. 什么是集电极开路(OC)?什么是漏极开路(OD)?为什么必须要在OC门输出的IO口上加上拉电阻?
  2. RHEL6.1 安装 Oracle10gr2 (图文、解析)
  3. python中csv文件的读写
  4. OpenGL fragmentlist片段列表的实例
  5. java mail urlname_javamail收发信件时,服务器,收发方的名称应该怎样设置才有效呢
  6. C++编程思想:继承与虚函数以及多态
  7. mysql 常用权限_MySQL的权限有哪些
  8. 接口传值后不起作用_聊一聊 API 接口测试
  9. 使用IDEA逆向生成实体类时注意问题(Maven)
  10. 4.MySQL优化---多表查询优化
  11. java harris corner_Harris Corner Detection
  12. 【背包问题】基于matlab量子免疫克隆算法求解背包问题【含Matlab源码 424期】
  13. Skiplist(跳表)的简单介绍与C++实现
  14. linux vi 查找内容
  15. .NET之盛派微信SDK简单操作
  16. 金融信息安全实训 课堂笔记5
  17. 【AndroidManifest.xml详解】Manifest属性之versionCode,versionName
  18. 视频教程-C++QT5跨平台界面编程原理和实战大全-C/C++
  19. Gitlab和Github区别
  20. 第一次使用acme.sh 手动生成证书(DNS手动模式)

热门文章

  1. 学生成绩管理系统——JAVA
  2. 学生成绩管理系统(Java)
  3. spring boot 设置日志打印mybatis sql
  4. meta分析-stata软件使用
  5. 2011考研数学二第(19)题——拉格朗日中值定理证不等式、单调有界证数列收敛、两问关联
  6. 实对称矩阵不同特征值对应的特征向量都正交
  7. AllWinner T113 升级篇
  8. 数据库基础知识(面试)
  9. 测试岗(平安银行)面试总结
  10. 前端实现序列帧_Html5 序列帧动画