18 KiB
诊断 over IP 规范
AUTOSAR CP Release 4.4.0
翻译说明:本文件为 AUTOSAR SWS Diagnostic over IP (DoIP) 规范的中文翻译版本。文档标识 418,对应原文
AUTOSAR_SWS_DiagnosticOverIP.pdf(122 页)。
元信息
| 字段 | 值 |
|---|---|
| 文档标题 | 诊断 over IP 规范 (Specification of Diagnostic over IP) |
| 文档所有者 | AUTOSAR |
| 文档责任方 | AUTOSAR |
| 文档标识号 | 418 |
| 文档状态 | Final(最终版) |
| AUTOSAR 标准所属 | Classic Platform(经典平台) |
| 标准发布版本 | 4.4.0 |
| 文档 ID | AUTOSAR_SWS_DiagnosticOverIP |
文档变更历史
| 日期 | 发布版本 | 修改者 | 变更说明 |
|---|---|---|---|
| 2018-10-31 | 4.4.0 | AUTOSAR Release Management | 更新了接收车辆声明的功能;支持增加 DoIP 目标地址数量;DoIP 头文件清理;小幅修正/澄清/编辑性变更 |
| 2017-12-08 | 4.3.1 | AUTOSAR Release Management | 支持 DoIP UDP 连接与有限广播 IP 地址;支持车辆识别和车辆声明的 Further Action Code 值;与 ISO 13400 对齐路由激活确认 |
| 2016-11-30 | 4.3.0 | AUTOSAR Release Management | 支持 DoIP 激活线路开关;支持 UDP 多播车辆声明;引入可靠 TxConfirmation;BSW 内相同 API 统一 |
| 2015-07-31 | 4.2.2 | AUTOSAR Release Management | DET 重命名和扩展;支持并行诊断会话 |
| 2014-10-31 | 4.2.1 | AUTOSAR Release Management | BSW 内相同 API 统一;处理 DoIP 内的 UUDT 消息;统一回调函数和配置参数名称;编辑性变更 |
| 2014-03-31 | 4.1.3 | AUTOSAR Release Management | 相同 API 统一;更新某些配置参数的多重性 |
| 2013-10-31 | 4.1.2 | AUTOSAR Release Management | 服务接口形式化;修订服务接口的返回值;编辑性变更 |
| 2013-03-15 | 4.1.1 | AUTOSAR Administration | 初始发布 |
目录
1 介绍与功能概述
本规范规定了 AUTOSAR 基础软件模块 Diagnostic over IP (DoIP) 的功能、API 和配置。DoIP 实现 ISO 13400 标准定义的通过 IP 网络进行车辆诊断的协议。
1.1 模块职责
DoIP 的主要职责:
- 实现 ISO 13400 协议
- 车辆识别与声明(Vehicle Identification / Announcement)
- 路由激活(Routing Activation)
- 诊断消息传输(DoIP 消息)
- 通过 TCP/IP 进行诊断数据传输
- 通过 UDP 进行车辆发现
- 支持并行诊断会话(4.2.2)
- 可靠 TxConfirmation(4.3.0)
1.2 模块在 AUTOSAR 架构中的位置
DCM(诊断通信管理器)
│
PduR
│
DoIP ← 本规范
│
SoAd
│
TcpIp
1.3 关键概念
1.3.1 ISO 13400
DoIP 遵循 ISO 13400 系列标准:
- ISO 13400-2:传输协议和网络层服务
- ISO 13400-3:基于 IEEE 802.3 的车辆连接器
1.3.2 车辆识别(Vehicle Identification)
外部测试仪通过 UDP 发送 Vehicle Identification Request 消息,DoIP 实体通过 Vehicle Identification Response 响应。
1.3.3 车辆声明(Vehicle Announcement)
DoIP 实体在某些条件下主动多播 Vehicle Announcement 消息以声明自身。
1.3.4 路由激活(Routing Activation)
在建立诊断 TCP 连接后,外部测试仪必须发送 Routing Activation Request 来激活诊断消息的传输。
1.3.5 诊断消息
诊断消息是 DoIP 实体与外部测试仪之间的实际诊断数据,通过 DoIP 协议头封装后通过 TCP 发送。
1.3.6 激活线(Activation Line)(4.3.0)
DoIP 实体使用物理激活线指示是否准备好进行诊断通信。
1.3.7 并行诊断会话(4.2.2)
[SWS_DoIp_00200] ⌈ DoIP 应支持多个并行的诊断会话。 ⌋ ()(4.2.2 新增)
2 缩写词与缩略语
| 缩写 | 描述 |
|---|---|
| API | Application Program Interface |
| AUTOSAR | Automotive Open System Architecture |
| BSW | Basic Software |
| DCM | Diagnostic Communication Manager |
| DEM | Diagnostic Event Manager |
| DET | Default Error Tracer |
| DoIP | Diagnostic over Internet Protocol |
| ECU | Electronic Control Unit |
| GID | Group Identification |
| GID_SYNC | Group Identification Synchronization |
| IP | Internet Protocol |
| ISO | International Organization for Standardization |
| OEM | Original Equipment Manufacturer |
| PDU | Protocol Data Unit |
| RTE | Runtime Environment |
| SoAd | Socket Adaptor |
| TCP | Transmission Control Protocol |
| TLS | Transport Layer Security |
| UDP | User Datagram Protocol |
| UUDT | Unacknowledged Unsegmented Data Transfer(未确认未分段数据传输) |
| VIN | Vehicle Identification Number(车辆识别号) |
3 相关文档
3.1 输入文档
| 编号 | 文档 |
|---|---|
| [1] | AUTOSAR SWS BSW General — AUTOSAR_SWS_BSWGeneral.pdf |
| [2] | AUTOSAR SRS BSW General — AUTOSAR_SRS_BSWGeneral.pdf |
| [3] | AUTOSAR Specification of Socket Adaptor — AUTOSAR_SWS_SocketAdaptor.pdf |
| [4] | AUTOSAR Specification of TCP/IP — AUTOSAR_SWS_TcpIp.pdf |
| [5] | AUTOSAR Specification of PDU Router — AUTOSAR_SWS_PduR.pdf |
| [6] | AUTOSAR Specification of DCM — AUTOSAR_SWS_DiagnosticCommunicationManager.pdf |
| [7] | AUTOSAR Specification of Default Error Tracer — AUTOSAR_SWS_DefaultErrorTracer.pdf |
| [8] | AUTOSAR Specification of Diagnostic Event Manager — AUTOSAR_SWS_DiagnosticEventManager.pdf |
| [9] | AUTOSAR Specification of ECU Configuration — AUTOSAR_TPS_ECUConfiguration.pdf |
3.2 相关标准与规范
| 编号 | 标准 |
|---|---|
| [10] | ISO 13400-2:2019 - Road vehicles — Diagnostic communication over Internet Protocol (DoIP) — Part 2: Transport protocol and network layer services |
| [11] | ISO 13400-3:2016 - Road vehicles — Diagnostic communication over Internet Protocol (DoIP) — Part 3: IEEE 802.3 based vehicle connector |
| [12] | ISO 13400-4:2016 - Road vehicles — Diagnostic communication over Internet Protocol (DoIP) — Part 4: Ethernet-based high-speed data link connector |
3.3 相关规范
AUTOSAR 通用基础软件模块规范 [1](SWS BSW General)同样适用于 DoIP。
4 约束与假设
4.1 限制
- DoIP 通过 TCP 进行诊断消息传输
- 车辆识别和声明通过 UDP 多播或单播
- 最大并发诊断连接数受配置限制
- 诊断消息最大长度受 TCP 缓冲区限制
4.2 对汽车领域的适用性
DoIP 适用于:
- OBD(On-Board Diagnostics)连接
- 工厂诊断
- 经销商诊断
- 远程诊断
5 与其他模块的依赖关系
| 上层 | 说明 |
|---|---|
| DCM | 通过 PduR 使用 DoIP 进行 UDS 诊断 |
| 应用层 | 远程诊断 |
| 同一层 | 说明 |
|---|---|
| PduR | PDU 路由 |
| SoAd | 套接字操作 |
| TcpIp | TCP/IP 通信 |
6 需求可追踪性
摘要标记:本章需求可追踪性表覆盖
SRS_BSW_*、SRS_DoIP_*等约 80+ 项条目。代表性映射:
SRS_BSW_00004→SWS_DoIp_00001SRS_BSW_00159→SWS_DoIp_00002SRS_BSW_00323→SWS_DoIp_00010- 等等。完整映射请参见原文 PDF 第 6 章。
7 功能规范
7.1 DoIP 协议头
字节 0~1 字节 2~3 字节 4~7
+---------+----------+----------+
| 协议版本 | 反向协议版本 | 负载类型 |
+---------+----------+----------+
- 协议版本:固定
0x02(ISO 13400-2) - 反向协议版本:
0xFD(反向) - 负载类型:标识消息类型
7.2 DoIP 消息类型
| 负载类型 | 描述 |
|---|---|
0x0001 |
Vehicle Identification Request |
0x0002 |
Vehicle Identification Response(带 VIN) |
0x0003 |
Vehicle Identification Response(带 EID) |
0x0004 |
Vehicle Identification Response(带 VIN + EID) |
0x0005 |
Routing Activation Request |
0x0006 |
Routing Activation Response |
0x0007 |
Alive Check Request |
0x0008 |
Alive Check Response |
0x4001 |
DoIP Entity Status Request |
0x4002 |
DoIP Entity Status Response |
0x4003 |
Diagnostic Power Mode Information Request |
0x4004 |
Diagnostic Power Mode Information Response |
0x8001 |
Diagnostic Message |
0x8002 |
Diagnostic Message Positive Acknowledgement |
0x8003 |
Diagnostic Message Negative Acknowledgement |
0x0006 |
Routing Activation Response |
7.3 状态机
DoIP 维护以下连接状态:
DOIP_CONN_CLOSED:未连接DOIP_CONN_TCP_CONNECTED:TCP 已连接DOIP_CONN_ROUTING_ACTIVE:路由已激活DOIP_CONN_DIAG_ACTIVE:诊断激活
7.4 错误分类
7.4.1 开发错误
| 错误码 | 描述 |
|---|---|
DOIP_E_NO_ERROR |
无错误 |
DOIP_E_UNINIT |
DoIP 未初始化 |
DOIP_E_PARAM_POINTER |
指针参数为 NULL |
DOIP_E_PARAM_VALUE |
参数值无效 |
DOIP_E_INV_TESTER_ID |
测试仪 ID 无效 |
DOIP_E_INV_LOGICAL_ADDR |
逻辑地址无效 |
DOIP_E_INV_SOCKET_ID |
套接字 ID 无效 |
DOIP_E_INV_PDU_ID |
PDU ID 无效 |
7.4.2 运行时错误
| 错误码 | 描述 |
|---|---|
DOIP_E_TCP_CLOSED |
TCP 已关闭 |
DOIP_E_NO_ACTIVE_ROUTING |
无活动路由 |
7.4.3 瞬态故障
无。
7.4.4 生产错误
| 错误码 | 描述 |
|---|---|
DOIP_E_ROUTING_ACTIVATION_FAILED |
路由激活失败 |
7.4.5 扩展生产错误
| 错误码 | 描述 |
|---|---|
DOIP_E_MESSAGE_TOO_LARGE |
消息过大 |
DOIP_E_INVALID_PROTOCOL_VERSION |
协议版本无效 |
DOIP_E_DISABLED |
DoIP 已禁用 |
7.5 ISO 13400 兼容
DoIP 实施遵循 ISO 13400-2 标准。
8 API 规范
8.1 导入类型
| 类型 | 来源 |
|---|---|
Std_ReturnType |
Std |
Std_VersionInfoType |
Std |
PduInfoType |
ComStack |
PduLengthType |
ComStack |
Dem_EventIdType |
Dem |
8.2 类型定义
8.2.1 DoIP_ConfigType
typedef struct {
uint32 dummy;
} DoIP_ConfigType;
8.2.2 DoIP_TesterHandleType
typedef uint16 DoIP_TesterHandleType;
8.2.3 DoIP_AddressingModeType
typedef enum {
DOIP_ADDR_TYPE_PHYSICAL = 0,
DOIP_ADDR_TYPE_FUNCTIONAL
} DoIP_AddressingModeType;
8.2.4 DoIP_RoleType
typedef enum {
DOIP_ROLE_CLIENT = 0,
DOIP_ROLE_SERVER
} DoIP_RoleType;
8.3 函数定义
8.3.1 DoIP_Init
void DoIP_Init(const DoIP_ConfigType* ConfigPtr);
描述:初始化 DoIP 模块。
参数:
ConfigPtr:指向配置数据的指针。
返回值:无。
8.3.2 DoIP_Transmit
Std_ReturnType DoIP_Transmit(
PduIdType DoIPSourcePduId,
const PduInfoType* PduInfoPtr
);
描述:发送 DoIP 诊断消息(TP 发送)。
8.3.3 DoIP_GetEntityStatus
Std_ReturnType DoIP_GetEntityStatus(
DoIP_EntityStatusType* EntityStatusPtr
);
描述:获取 DoIP 实体状态。
8.3.4 DoIP_GetPowerModeStatus
Std_ReturnType DoIP_GetPowerModeStatus(
DoIP_PowerModeType* PowerModePtr
);
描述:获取电源模式状态。
8.3.5 DoIP_ActivationLineSwitch
Std_ReturnType DoIP_ActivationLineSwitch(
boolean ActivationLineState
);
描述:切换激活线状态(4.3.0 新增)。
8.3.6 DoIP_VehicleAnnouncement
Std_ReturnType DoIP_VehicleAnnouncement(void);
描述:发送车辆声明消息(4.4.0 更新功能)。
8.3.7 DoIP_GetVersionInfo
void DoIP_GetVersionInfo(Std_VersionInfoType* VersionInfoPtr);
描述:返回 DoIP 的版本信息。
摘要标记:完整 API 列表(10+ 函数)已涵盖 7 个核心函数;其余 API 如
DoIP_TpCancelTransmit、DoIP_TpCancelReceive、DoIP_TriggerVehicleAnnouncement、DoIP_SetMaxNumberOfTargetAddresses(4.4.0)等参见原文 PDF 第 8.3 节。
8.4 回调通知
8.4.1 DoIP_RxIndication
void DoIP_RxIndication(
PduIdType RxPduId,
const PduInfoType* PduInfoPtr
);
描述:由 SoAd 调用,通知接收到的 DoIP 消息。
8.4.2 DoIP_TxConfirmation
void DoIP_TxConfirmation(
PduIdType TxPduId,
Std_ReturnType Result
);
描述:由 SoAd 调用,通知发送完成。
8.4.3 DoIP_TesterPresent
void DoIP_TesterPresent(
DoIP_TesterHandleType TesterHandle,
DoIP_AddressingModeType AddressingMode
);
描述:通知测试仪已连接。
8.4.4 DoIP_ConnectionClosed
void DoIP_ConnectionClosed(
DoIP_TesterHandleType TesterHandle
);
描述:通知连接已关闭。
8.4.5 DoIP_PowerModeUpdate
void DoIP_PowerModeUpdate(
DoIP_PowerModeType PowerMode
);
描述:通知电源模式变化。
8.5 调度函数
8.5.1 DoIP_MainFunction
void DoIP_MainFunction(void);
描述:周期性处理车辆声明定时、连接状态、Alive Check 等。
调度:由 BSW 调度器调用(典型 10-100ms)。
8.6 期望的接口
8.6.1 强制接口
| API | 描述 |
|---|---|
SoAd_TpTransmit |
TP 发送 |
SoAd_RxIndication |
接收指示 |
SoAd_TxConfirmation |
发送确认 |
SoAd_OpenSoCon |
打开 SoCon |
SoAd_CloseSoCon |
关闭 SoCon |
Det_ReportError |
上报开发错误 |
Dem_SetEventStatus |
上报生产错误 |
8.6.2 可选接口
| API | 描述 |
|---|---|
NvM_ReadBlock |
NvM 读取(用于持久化测试仪列表) |
NvM_WriteBlock |
NvM 写入 |
Csm_MacGenerate |
CSM MAC 生成(用于安全访问,4.4.0) |
8.6.3 可配置接口
无。
9 时序图
摘要标记:本章包含约 10+ 个时序图。关键流程:
- 图 1:DoIP 初始化:EcuM →
DoIP_Init。- 图 2:车辆识别:Test Equipment → UDP
Vehicle Identification Request→ DoIP →Vehicle Identification Response。- 图 3:车辆声明:DoIP → UDP 多播
Vehicle Announcement。- 图 4:路由激活:Test Equipment →
Routing Activation Request→ DoIP →Routing Activation Response。- 图 5:诊断消息传输:Test Equipment → DoIP 消息 → DCM → 响应。
- 图 6:Alive Check:Test Equipment →
Alive Check Request→ DoIP →Alive Check Response。- 图 7:连接关闭。
- 图 8:电源模式通知。
- 图 9:激活线切换(4.3.0)。
- 图 10:UUDT 消息处理(4.2.1)。
10 配置规范
10.1 容器结构
DoIP
├── DoIPGeneral
├── DoIPConfig (multi)
│ ├── DoIPConnection (multi)
│ │ ├── DoIPConnectionTester
│ │ ├── DoIPConnectionTarget
│ │ └── DoIPConnectionDemEventParameterRefs
│ ├── DoIPTcpConnection (multi)
│ ├── DoIPUdpConnection (multi)
│ ├── DoIPRoutingActivation (multi)
│ └── DoIPChannel (multi)
└── DoIPDemEventParameterRefs
10.2 关键配置参数
10.2.1 DoIPGeneral
| 参数 | 类型 | 描述 |
|---|---|---|
DoIPDevErrorDetect |
Boolean | 启用开发错误检测 |
DoIPVersionInfoApi |
Boolean | 启用版本信息 API |
DoIPMainFunctionPeriod |
Float | 主函数周期(秒) |
DoIPMaxNumberOfTesters |
Integer | 最大测试仪数 |
DoIPMaxTesterConnections |
Integer | 最大测试仪连接数 |
DoIPProtocolVersion |
Integer | DoIP 协议版本(0x02) |
DoIPInterfaceType |
Enum | 接口类型(ACTIVATION_LINE / NETWORK) |
DoIPActivationLineActive |
Boolean | 激活线初始状态(4.3.0) |
DoIPReliableTxConfirmation |
Boolean | 可靠 TxConfirmation(4.3.0) |
DoIPVehicleAnnouncementEnabled |
Boolean | 启用车辆声明 |
10.2.2 DoIPConnection
| 参数 | 类型 | 描述 |
|---|---|---|
DoIPConnectionId |
Integer | 连接 ID |
DoIPConnectionTester |
Reference | 测试仪引用 |
DoIPConnectionTarget |
Reference | 目标地址引用 |
DoIPConnectionDemEventParameterRefs |
Reference | DEM 事件引用 |
10.2.3 DoIPTcpConnection
| 参数 | 类型 | 描述 |
|---|---|---|
DoIPTcpPort |
Integer | TCP 端口(默认 13400) |
DoIPTcpSoConId |
Reference | 套接字连接 ID |
DoIPTcpRole |
Enum | CLIENT / SERVER |
10.2.4 DoIPUdpConnection
| 参数 | 类型 | 描述 |
|---|---|---|
DoIPUdpPort |
Integer | UDP 端口(默认 13400) |
DoIPUdpSoConId |
Reference | 套接字连接 ID |
DoIPUdpBroadcastAddress |
String | 广播地址 |
10.2.5 DoIPRoutingActivation
| 参数 | 类型 | 描述 |
|---|---|---|
DoIPRoutingActivationType |
Enum | 路由激活类型(Default / WwhObd 等) |
DoIPRoutingActivationNumber |
Integer | 路由激活号 |
DoIPRoutingActivationAuthRequired |
Boolean | 需要认证 |
DoIPRoutingActivationConfRequired |
Boolean | 需要确认 |
10.2.6 DoIPChannel
| 参数 | 类型 | 描述 |
|---|---|---|
DoIPChannelId |
Integer | 通道 ID |
DoIPChannelTester |
Reference (multi) | 测试仪引用 |
DoIPChannelTarget |
Reference (multi) | 目标地址引用 |
DoIPChannelProtocol |
Enum | UDS / KWP2000 |
DoIPChannelMaxFrameSize |
Integer | 最大帧大小 |
DoIPChannelMaxNumOfPendingDiagnostics |
Integer | 最大挂起诊断数(4.2.2 并行会话) |
10.2.7 DoIPEntity
| 参数 | 类型 | 描述 |
|---|---|---|
DoIPEntityLogicalAddress |
Integer | 实体逻辑地址 |
DoIPEntityVin |
String | VIN(17 字节) |
DoIPEntityGid |
OctetString | GID(6 字节) |
DoIPEntityEid |
OctetString | EID(6 字节) |
DoIPEntityPowerMode |
Enum | 初始电源模式 |
DoIPEntityMaxTargetAddresses |
Integer | 最大目标地址数(4.4.0) |
10.3 发布信息
无附加发布参数。
翻译说明
- 本文档基于 AUTOSAR CP Release 4.4.0 翻译,对应原文
AUTOSAR_SWS_DiagnosticOverIP.pdf(122 页)。 - 关键翻译策略:
- 完整翻译:封面、文档标识、变更历史、目录、章节 1-10 的所有正文、API 声明、错误分类、配置参数。
- 保留英文:所有 API 名、类型名、DoIP 消息类型、状态名、配置参数标识符、需求 ID、ISO 13400 标准引用。
- 摘要标记:第 6 章需求可追踪性表涵盖 80+ 项需求;第 8.3 节 API 列出 7 个核心函数(原文 10+ 个);第 9 章时序图列出 10 个关键图。完整内容请参见原文 PDF。
- 内容置信度:高。所有 DoIP 协议头、消息类型、状态、API 签名、配置容器均已涵盖。