自动驾驶记录仪数据提取标准流程(DoIP/UDS)

一、背景

随着汽车技术,特别是新能源汽车的快速发展,车载电控单元数量激增,激光雷达、视频图像等高带宽数据的需求日益增长,传统的CAN总线已逐渐难以满足高效传输的要求。在此背景下,DoIP(以太网诊断协议)等新型通信协议应运而生。

近期,我们项目涉及 DSSAD (数据存储系统,用于自动驾驶)的相关开发。随着L3级自动驾驶在2025年逐步进入标准化与法规化阶段,主流主机厂大多已将其集成至域控制器中。然而,在试验车辆或为通过L3准入而必须加装的自动驾驶记录仪(即"自动驾驶黑匣子")等领域,仍存在一定的市场机会。该设备本质上是对传统EDR(事件数据记录系统)在自动驾驶维度上的功能扩展。

本文旨在结合项目实践,对国标 《GB/T 44497-2024》 进行解读并提出部分实施建议,同时梳理其数据记录流程与报文拼接逻辑。该标准将记录系统分为III型 :I型记录数据相对精简,主要针对时间段事件与时间戳事件;II型 则要求更为全面,至少需要连续存储8小时以上的数据其中包括视频和图片,有的主机厂要求增加激光雷达数据信息的记录,这对车辆的本地存储能力提出了新的挑战。那么我们如何才能赢得市场呢?更低的价格、更高的性能。我想会是一个比较好的方面对于成本严格把控的主机厂来说。

二、国标的相关解读(参考了其他网址的图片)

2.1 不同型系统对应的种类

2.2 不同型系统对于记录的数据要求及数据元素分类

2.3 存储能力的计算(大约)

三、doip的通信流程

3.1 链接流程及其报文

根据国标GB/T 44497-2024与相关协议规定,通过DoIP读取自动驾驶数据记录系统(DSSAD)数据的完整通信流程如下。请注意,流程中ECU的逻辑地址(0x0E01)为占位符,实际地址需由主机厂提供并在车辆说明书中明确。

通信流程概览

整个流程遵循 **GB/T 43258.2 (DoIP)** 与 **GB/T 40822 (UDS)** 标准,采用物理寻址,主要分为:建立连接、数据整合、请求文件、传输数据、校验完整性及处理辅助文件等阶段。

阶段一:建立诊断连接

  1. **路由激活**

* **目的**:在DoIP层建立连接。

* **请求**:`02 fd 00 05 00 00 00 07 0f 80 00 00 00 00 00`

* **肯定响应**:`02 fd 00 06 00 00 00 09 0f 80 0e 01 10 00 00 00 00`

  1. **维持会话(TesterPresent)**

* **目的**:保持诊断会话激活,需**每2秒发送一次**。

* **请求**:`02 fd 80 01 00 00 00 06 0f 80 0e 01 3e 00`

* **肯定响应**:`02 fd 80 02 00 00 00 06 0e 01 0f 80 7e 00`

  1. **进入扩展会话**

* **目的**:使ECU进入可执行特定服务的模式。

* **请求**:`02 fd 80 01 00 00 00 06 0f 80 0e 01 10 03`

* **肯定响应**:`02 fd 80 02 00 00 00 06 0e 01 0f 80 50 03`

阶段二:数据整合

此阶段用于按需整合事件数据,为文件生成做准备。

  1. **读取VIN(车辆识别码)**

* **目的**:获取车辆VIN,用于后续构造文件名。

* **请求**:`02 fd 80 01 00 00 00 07 0f 80 0e 01 22 f1 90`

* **肯定响应**:`02 fd 80 02 00 00 00 18 0e 01 0f 80 62 f1 90 56 49 4e...` (含VIN ASCII码)

  1. **整合事件数据(RoutineControl - 0x31)**

* **目的**:驱动ECU按条件整合"时间戳事件"或"时间段事件"数据。

* **关键**:时间范围(BCD码)或事件序号需**自行构建**。

* **a. 时间戳事件整合**

* **请求**:`02 fd 80 01 00 00 00 16 0f 80 0e 01 31 01 f1 aa 开始时间BCD 结束时间BCD`

* **肯定响应(成功)**:`...71 01 f1 aa 00`

* **否定响应**:`...7f 31 31` (可能因时间超范围或无数据)

* **b. 时间段事件整合**

* **请求**:`02 fd 80 01 00 00 00 09 0f 80 0e 01 31 01 f1 ac 事件序号`

* **肯定响应(成功)**:`...71 01 f1 ac 00`

**阶段三:请求与传输数据文件

  1. **请求文件传输(RequestFileTransfer - 0x38)**

* **目的**:请求ECU准备指定的数据文件(JSON格式)以供下载。

* **关键**:文件路径为 `/var/DSSAD/<文件名>`,路径长度需**自行计算**。文件名中的 `XXXXXXXXXXXXXXXXX` 需替换为**实际读取的VIN**。

* **a. 请求时间戳事件文件**

* **示例请求**:`02 fd 80 01 ... 38 10 00 34 2f 76 61 72...` (路径: `/var/DSSAD/VIN*********_CN-DSSAD_Timestamp.json`)

* **b. 请求时间段事件文件**

* **示例请求**:`02 fd 80 01 ... 38 10 00 38 2f 76 61 72...` (路径: `/var/DSSAD/VIN*********_CN-DSSAD_Time-Sequence.json`)

* **肯定响应**:`02 fd 80 02 00 00 00 10 0e 01 0f 80 78 10 02 04 00 00 00 04 03 11 8a 11`

  1. **传输数据(TransferData - 0x36)**

* **目的**:分块传输文件数据流。

* **关键**:块序列计数器从 `0x01` 开始,每次请求递增,至 `0xFF` 后重置为 `0x00`。

* **请求**:`02 fd 80 01 00 00 00 06 0f 80 0e 01 36 块计数器`

* **肯定响应**:包含实际文件数据(如JSON内容)。

  1. **退出数据传输(RequestTransferExit - 0x37)**

* **目的**:结束当前文件的传输流程。

* **请求**:`02 fd 80 01 00 00 00 05 0f 80 0e 01 37`

* **肯定响应**:`02 fd 80 02 00 00 00 05 0e 01 0f 80 77`

**阶段四:校验与辅助文件处理**

  1. **校验文件完整性**

* **目的**:获取文件的CRC32值,用于验证传输完整性。

* **请求**:`02 fd 80 01 00 00 00 08 0f 80 0e 01 31 01 f1 ab`

* **肯定响应**:`...71 01 f1 ab CRC32值` (需**自行计算比对**)

  1. **解析JSON并读取辅助文件**

* **目的**:若JSON中引用了视频/图像文件,需循环读取。

* **流程**:对每个辅助文件路径,重复执行 **步骤6至9**。

* **注意**:请求路径通常为 `/var/DSSAD/...`,ECU内部会映射到实际存储位置(如 `/data/...`)。

**阶段五:结束诊断**

  1. **退出扩展会话**

* **目的**:使ECU返回默认会话模式。

* **请求**:`02 fd 80 01 00 00 00 06 0f 80 0e 01 10 01`

* **肯定响应**:`02 fd 80 02 00 00 00 06 0e 01 0f 80 50 01`

**总结**:本流程以标准服务为基础,实际开发中需重点注意 **ECU逻辑地址、时间/序号参数构建、文件路径动态生成(基于VIN)、CRC校验** 等需根据实际情况填充或计算的部分。

相关推荐
春日见1 天前
决策规划控制面经汇总
人工智能·深度学习·算法·机器学习·自动驾驶
三千里1 天前
路径规划算法-备忘
算法·自动驾驶·动态规划
Agilex松灵机器人1 天前
ROS 机械臂开发效率低?用 Agent + 具身智能重构开发流程
重构·机器人·自动驾驶
生成论实验室2 天前
判断力与六十四卦:AI的第三块基石
人工智能·语言模型·机器人·自动驾驶·安全架构
生成论实验室2 天前
降U动力学:用一套原理统一解释21项AI技术
人工智能·语言模型·机器人·自动驾驶·安全架构
network_tester2 天前
SENT/PSI5传感器TSN集成测试:打通传统传感与未来车载网络的“最后一公里”
数据库·网络协议·tcp/ip·自动驾驶·信息与通信·信号处理·tcpdump
行智科技3 天前
ORB-SLAM3代码详解 - 第 01 篇 · 系统总览与三线程架构
linux·ubuntu·架构·自动驾驶
HERR_QQ3 天前
端到端课程自用 8 规划 端到端与VLA 世界模型 RL的关系
人工智能·深度学习·自动驾驶·transformer