自动驾驶记录仪数据提取标准流程(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校验** 等需根据实际情况填充或计算的部分。

相关推荐
地平线开发者19 小时前
征程 6 | 平台 QAT 精度一致性问题分析流程
算法·自动驾驶
退休钓鱼选手19 小时前
BehaviorTree行为树 【调试】 5
人工智能·自动驾驶
ringking12320 小时前
uniad模型详细介绍(一)
自动驾驶
康谋自动驾驶1 天前
分享 | 如何做好全自动化ADAS 高精度标注?
自动化·自动驾驶·数据采集·数据标注·技术解析
小烤箱1 天前
CUDA 编程完全理解系列(第一篇):GPU 的设计哲学与硬件架构基础
自动驾驶·硬件架构·cuda·并行计算·感知算法
m0_650108241 天前
OpenEMMA:开源多模态端到端自动驾驶框架全解析
论文阅读·自动驾驶·vla·高效推理·端到端ad·openemma
下海fallsea2 天前
避开欧美红海,深耕中东沙漠:萝卜快跑的差异化出海能走多远?
自动驾驶
m0_650108242 天前
VGGT-Long:突破千米级长 RGB 序列单目 3D 重建的极限
自动驾驶·机器人导航·vggt·3d视觉基础模型·千米级单目3d重建·通用模型·分块-对齐-闭环-全局优化
gorgeous(๑>؂<๑)3 天前
【中科院-张启超组-AAAI26】WorldRFT: 用于自动驾驶的带强化微调的潜在世界模型规划
人工智能·机器学习·自动驾驶
yuanmenghao3 天前
自动驾驶中间件iceoryx - 同步与通知机制(二)
开发语言·单片机·中间件·自动驾驶·信息与通信