DoIP协议——汽车以太网应用介绍

14 篇文章 7 订阅 ¥199.90 ¥99.00


前言

传统的车载领域诊断技术是通过CAN/LIN/Flexray/MOST的总线方式,对UDS协议数据进行传输的技术。
与传统车载诊断相比,所谓DoIP就是通过以太网通信的形式对UDS协议数据进行传输,即DoIP:Diagnostic communication over Internet Protocol。其本身也是一种协议,由ISO13400 系列标准定义,作为实现基于Ethernet的诊断通信的方案。本标准的各部分内容如下:
— Part 1: General information and use case defnition
Part 2: Transport protocol and network layer services
— Part 3: Wired vehicle interface based on IEEE 802.3
— Part 4: Ethernet Diagnostic Connector
— Part 5: Conformance test specifcation

13400

因DoIP可以传输大量数据,以及响应速度快,且可以通过以太网进行远程诊断,因此DoIP成为了车载诊断的必然趋势。


一、DoIP术语和缩写

DoIP Entity:实现DoIP协议的节点(DoIP gateway或者DoIP node)
DoIP Edge Node:连接以太网激活线的DoIP节点
Network Node:连在IP网络上,但不能实现DoIP的节点
Logical Addressing(Phy/Fun):逻辑寻址
SA:Source Address-源逻辑地址
TA:Target Address-目的逻辑地址
EID:Entity Identification实体标识符,唯一标识DoIP节点,一般是MAC地址
GID:Group Identification组标识符,当VIN码未配置的时候替代VIN使用,车内节点同步边缘节点的GID
VIN:Vehicle Identification Number-车辆识别码,Length:17bytes

二、网络拓扑

允许车辆与外部测试设备之间的通信。通常,该协议标准由一个或多个DolP实体实现,具体取决于车辆的网络架构。ISO13400-2中下图显示了车辆网络架构的一个示例。
网络拓扑
从图中可以看出整体的网络拓扑被分为了两个部分,即车内网和车外网。

该网络拓扑由如下四个角色组成的

  1. External test equipment
    外部测试设备,通常为OBD诊断仪或者是其它诊断客户端。
  2. DoIP edge node gateway
    这个角色和DoIP gateway的区别就是多了个使能线的判断
    从图中可以看出External test equipment和DoIP edge node gateway之间有一条线叫做Activation line。用于对协议栈进行使能。
  3. DoIP gateway
  4. DoIP node
    对支持以太网连接的同时支持DoIP协议的ECU认为是DoIP node。

DoIP edge node gateway可以同时支持Server端和Client端:
Server端-测试设备可以诊断该网关下的某个ECU节点
Client端-OTA升级,DoIP edge node gateway的应用层可以跑一个OTA客户端程序,进行对内网ECU的诊断及刷写

三、DoIP数据基本结构

DoIP数据映射到以太网帧中

DoIP数据作为SDU层向下传递,直至构成完整的以太网帧,通过物理层的介质发送出去。DoIP的数据内容分为5个部分:

①所使用的ISO13400版本信息,占用1个字节
②所使用的ISO13400版本信息依比特取反,占用1个字节
③数据类型,占用2个字节(标识本帧数据的用途,比如用于上报或请求车辆信息、诊断命令、诊断逻辑链接激活、alive check等)
④数据长度,占用4个字节(标识后面的数据长度)
⑤诊断数据,长度为0至2的32次方减1,这里的数据又分为sender address、receiver address、 应用数据这三部分。
Data

四、应用场景

ISO13400中定义了DoIP的4种使用场景,如下四幅图所示:

4.1 直接点对点连接

doip1

①网线
②外部测试设备
③车辆
④逻辑连接

4.2 多台外部测试设备分别和多台汽车在局域网内通过交换机点对点连接

doip2

①以太网交换机和WLAN接入点
②网线
③WLAN
④外部测试设备1
⑤外部测试设备2
⑥车辆1
⑦车辆2
⑧逻辑连接1(4和6)
⑨逻辑连接2(5和7)

4.3 一台外部测试设备跨越本地网络与多台车辆连接

doip3

①授权经销商或者维修厂网络
②网线
③WLAN
④外部测试设备
⑤网络服务器
⑥车辆1
⑦车辆2
⑧车辆3
⑨逻辑连接1(4和6)
⑩逻辑连接2(4和8)

4.4 外部测试设备的多个应用层实体(在一台硬件或多台硬件上)与单个车辆连接

doip4

①授权经销商或者维修厂网络
②网线
③WLAN
④外部测试设备1
5.外部测试设备2
6.网络服务器
7.车辆1
8.车辆2
9.车辆3
10.逻辑连接1(4和8)
11.逻辑连接2(4和8)
12.逻辑连接3(5和9)
13.逻辑连接4(6和9)

  • 1
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 0
    评论
DoIP协议(Diagnostics over Internet Protocol)是一种在汽车电子诊断应用中使用的网络协议,它可以将汽车中的诊断数据通过标准的Internet协议传输给远程诊断设备,从而允许远程的诊断过程和在线的软件更新。下面是一个简单的DoIP协议示例: ``` // DoIP消息头 typedef struct { uint16_t payload_size; // 消息体大小 uint8_t protocol_version; // 协议版本号 uint8_t inverse_version; // 反转协议版本号 uint32_t magic_number; // 魔数 uint16_t message_type; // 消息类型 uint16_t reserved; // 保留字段 } doip_header_t; // DoIP连接请求消息体 typedef struct { uint16_t source_address; // 源地址 uint16_t target_address; // 目标地址 uint16_t tester_address; // 测试器地址 uint16_t vehicle_address; // 车辆地址 uint8_t reserved[8]; // 保留字段 } doip_connect_request_t; // DoIP连接响应消息体 typedef struct { uint16_t source_address; // 源地址 uint16_t target_address; // 目标地址 uint16_t tester_address; // 测试器地址 uint16_t vehicle_address; // 车辆地址 uint8_t protocol_version; // 协议版本号 uint8_t inverse_version; // 反转协议版本号 uint8_t result_code; // 结果码 uint8_t reserved[3]; // 保留字段 } doip_connect_response_t; // DoIP发送数据消息体 typedef struct { uint8_t data[1024]; // 数据 } doip_send_data_t; ``` 需要注意的是,这只是一个简单的示例,实际的DoIP协议中可能涉及到更多的消息类型和字段。

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

诊断协议那些事儿

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值