当前位置:网站首页>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自定义格式的诊断报文等情形。
边栏推荐
- 商家对积分体系运营的两个误解
- field injection is not recommended 的解决办法
- 实时数仓:滴滴的实时数仓落地实践
- Arm-a53 data "recommended collection"
- Hyperparametric optimization (grid search and Bayesian Optimization)
- 考过HCIP入职心仪公司,分享华为认证学习经历及心得
- Pagoda phpMyAdmin unauthorized access vulnerability
- npm更换最新淘宝镜像
- 实时数仓:网易严选基于Flink的实时数仓实践
- Class, leetcode919 -- complete binary tree inserter
猜你喜欢

Worthington RNA determination detailed introduction

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

Zabbix 5.0 使用自带Redis模版监控

考过HCIP入职心仪公司,分享华为认证学习经历及心得

Zero view h5s video platform getUserInfo information disclosure vulnerability cnvd-2020-67113

有效供应链管理的八大绩效分析指标(上)

Worthington -- Specification of Worthington trypsin inhibitor

多传感器融合定位(一)——3D激光里程计

【CNN】为什么CNN的卷积核大小一般都是奇数

失败率高达80%,数字化转型如何正确完成战略规划?
随机推荐
Leetcode61. 旋转链表
field injection is not recommended 的解决办法
websocket心跳机制(保活机制)
Arm-a53 data "recommended collection"
Eight performance analysis indicators of effective supply chain management (Part 1)
GhostNets on Heterogeneous Devices via Cheap Operations
Codeforces Round #474 (Div. 1 + Div. 2) - C, F
The computer doesn't know what to uninstall, can't open the calculator, can't edit screenshots, can't open txt files, and so on
剑指 Offer 55 - I. 二叉树的深度
Deep analysis of integrated learning xgboost
Best practices for migration of kingbasees v8.3 to v8.6 of Jincang database (2. Compatibility of kingbasees v8.3 and v8.6)
pip镜像下载
Okaleido生态核心权益OKA,尽在聚变Mining模式
Worthington RNA determination detailed introduction
RHCE the next day
酪氨酸脱羧酶丨Worthington粪链球菌酪氨酸脱羧酶的特征
实时数仓:滴滴的实时数仓落地实践
有效供应链管理的八大绩效分析指标(上)
Solve thread safety problems & singleton mode
简述分组密码的加密分组链接模式的工作原理及其特点(密码学移位密码加密解密)