当前位置:网站首页>DoIP测试开发实践
DoIP测试开发实践
2022-07-28 22:07:00 【Rainmicro】
DoIP简介
以太网最早由BMW引入车内,其应用场景就是刷写,满足类似HMI的地图数据、液晶仪表等软件数据更新,感兴趣的可查阅Thomas Konigseder 的Automotive Ethernet书中的介绍。由于其突出的特性,而后得到主要OEM的推崇和更广泛的应用,遂开始了国际标准化(汽车行业一直以来的“套路”)。
DoIP全称:Diagnostic communication over Internet Protocol。顾名思义,通过以太网来实现车辆诊断,其对应的国际标准为ISO 13400,其定义了DoIP协议(基于UDS)并描述了外部测试设备与车辆进行诊断数据交互的流程。
下图为DoIP及基于以太网诊断在OSI 7层模型中及在“7层之外”的“角色”和“位置”。

DoIP协议要点简述
DoIP报文
DoIP报文在以太网报文中的位置如下图。

DoIP报文分为三大类:
- 节点管理类
主要包括报头处理流程、车辆信息获取(如EID、GID、VIN等)、路由激活流程(包括授权以及确认功能)、TCP_DATA socket处理流程。

- 车辆信息类
主要包括获取DoIP实体状态信息、车辆电源模式信息。

- 诊断类
主要包括诊断报文处理流程以及UDS数据交互。

DoIP会话流程
DoIP会话的整个流程可以分为五步:硬线激活(该激活机制是否采用及激活方法不同OEM是存在差别的)->车辆发现流程->TCP_DATA socket处理流程->诊断数据交互->关闭TCP_DATA socket。

图片来源:ISO 13400-2:Road vehicles - Diagnostic communication over Internet Protocol (DoIP)
边缘和内部节点差异
关于DoIP协议,ISO 13400规范做了框架性的定义,但OEM会依据整车功能需求自定义细节内容,同时会区分边缘节点和内部以太网节点,聊到此处有的小伙伴可能会有疑问,“以太网节点为何要区分边缘节点和内部节点?两者是否可以支持完整的DoIP协议?”接下来我们通过实例讨论边缘节点和内部节点在DoIP报文配置方面的差别。
问题一:内部节点需要支持诊断报文肯定应答(0x8002)么?
分析:当Tester向内部节点发送诊断请求时,首先边缘节点会先向Tester发送0x8002报文,如果内部节点也支持0x8002报文,随后边缘节点又再一次转发内部节点发送的0x8002报文和诊断应答报文到Tester。
根据DoIP协议,Tester完成诊断报文发送后会等待0x8002报文同时开启P6Client定时器来接收诊断应答报文(暂时不考虑0x8003)。所以如果内部节点支持0x8002报文从系统设计方面考虑不符合DoIP协议,而且会导致以太网系统级诊断刷写测试P6Client参数超时。

问题二,笔者抛块砖:不同类型节点对路由激活报文该采用何种策略?
有兴趣的,可就此类技术细节约聊,同样此话题可扩展包括DoIP其他报文针对边缘和内部节点不同的配置和支持方案,当然还有区别最明显的对硬线激活特性支持的差异。
万变不离其宗,以太网节点DoIP报文的配置要服务于整车功能,这部分更应该是OEM设计工程师需要从应用场景角度考虑而进行设计的。仁者见仁,智者见智,在不同拓扑、不同需求情况下设计方案也应当有所差异。
DoIP及以太网诊断测试方案和实践
DoIP及以太网诊断测试实现可以分层来介绍,当然在各层中OEM会在ISO标准需求的基础上做自定义开发。
针对ISO 13400-2的测试
测试内容包括DoIP报文格式、DoIP流程以及DoIP时间参数等,其测试脚本和测试工程通过CANoe(CAPL)定制实现。


针对ISO 13400-3的测试
测试内容包括激活使能线等相关的测试,测试脚本同样通过CANoe(CAPL)开发实现,测试环境需借助于Vector的VT板卡,如VT2004实现硬线的仿真。
针对ISO 14229-1/-5的测试
可基于CANoe Option DiVa可实现,DiVa是Vector公司一款便捷、高效的诊断测试用例生成工具,使用DiVa实现UDSonCAN的测试大家都比较熟悉,那么对于以太网UDS测试DiVa是否也可以覆盖?答案是肯定的。DiVa可基于DoIP协议(ISO 13400)生成以太网UDS测试工程,即按照标准DoIP流程与ECU进行诊断数据交互。

介绍到这里小伙伴们可能会有疑问,对于非标准DoIP协议的以太网节点是否也可用DiVa覆盖其测试需求?比如笔者曾遇到的OEM所定义的以太网节点仅支持DoIP净荷类型中特定的报文,或者以太网节点仅支持OEM自定义格式的诊断报文等情形。
边栏推荐
- How powerful can top "hackers" be? Internet access without signal, expert: high-end operation!
- 小程序editor富文本编辑使用及rich-text解析富文本
- 商家对积分体系运营的两个误解
- Kingbasees client programming interface guide ODBC (4. Create data source)
- Worthington核糖核酸测定详细攻略
- OpenCV宏定义
- 双重for循环优化
- Worthington RNA determination detailed introduction
- 2022-07-28:以下go语言代码输出什么?A:AA;B:AB;C:BA;D:BB。 package main import ( “fmt“ ) func
- SAP oracle 复制新实例后数据库远程连接报错 ora-01031
猜你喜欢

多传感器融合定位(二)——基于地图的定位

Pycharm new project

Leetcode63. 不同路径 II

什么是驱动程序签名,驱动程序如何获取数字签名?

电脑不知卸载什么,打不开计算器无法编辑截图功能打不开txt文件等等解决方案之一

零视科技 H5S视频平台 GetUserInfo 信息泄漏漏洞 CNVD-2020-67113

Wildcard ssl/tls certificate

智能垃圾桶(七)——SG90舵机的介绍与使用(树莓派pico实现)

Multi sensor fusion positioning (II) -- map based positioning

Deep analysis of integrated learning AdaBoost
随机推荐
Deep analysis of integrated learning AdaBoost
失败率高达80%,数字化转型如何正确完成战略规划?
实时数仓:美团基于Flink的实时数仓建设实施
类中多函数填写,LeetCode919——完全二叉树插入器
有效供应链管理的八大绩效分析指标(上)
Briefly introduce the working principle and characteristics of block cipher encryption block link mode (cryptography shift cipher encryption and decryption)
猿人学第二十题
器利而工善,以RPA+LCAP赋能企业司库管理数字化升级
Jincang database kingbasees client Programming Interface Guide - ODBC feature support constraints
使用Pytorch快速训练网络模型
DevOps在物联网解决方案中的应用
多传感器融合定位(三)——惯性技术
Manufacturing steps of interactive slide screen in exhibition hall
Exchange 2013 SSL证书安装文档
Use pytoch to quickly train the network model
电脑不知卸载什么,打不开计算器无法编辑截图功能打不开txt文件等等解决方案之一
How powerful can top "hackers" be? Internet access without signal, expert: high-end operation!
Equipped with a new generation of ultra safe cellular batteries, Sihao aipao is available from 139900 yuan
添加构建依赖项报错
Leetcode62. 不同路径