Honda 旧版 openpilot 子集:DBC 名与 ECU 固件指纹

作者:

在

结论:这是一份旧版开源辅助驾驶项目的 Honda 子集档案,它记录的不是「某台车抓到了哪些帧」,而是「怎么认出一台 Honda 是哪款」:用 ISO 15765-4 的 29 位固定寻址(0x18DA<TA>F1)向一串 ECU 读固件版本号,再拿版本号前缀去匹配车型;同时按硬件族(Nidec 与 Bosch A / Bosch B)挑选对应的 DBC 与线束,并为每个车型设定最小转向速度。它覆盖 Civic、Accord、CR-V、Fit、Odyssey、Pilot、Insight、HR-V、Passport、Ridgeline 与 Acura ILX / RDX 等多款车。下述内容只适用源文档记录的这一份车型与固件表。

车辆与适用范围

源文档是一份旧版开源项目的静态快照:根文档是项目的通用说明,车型细节集中在 Honda 的车型常量文件里。文件同时保留了大量固件版本号样本,用于把「读到的一组版本号」映射回具体车型。

项 内容
车型 Honda:Civic(含 2016-18、2019-21、2022、Hatchback、1.6 柴油)、Accord / Accord Hybrid、CR-V(含 5G、EU、Hybrid)、Fit、Freed、HR-V、Odyssey、Pilot、Passport、Ridgeline、Insight、Honda e;Acura:ILX、RDX(含 3G)
年款 / 市场版本 以车型常量里的年份区间为准(如 Civic 2016-18 / 2019-21 / 2022);部分条目注明市场(如 Odyssey CHN、CR-V EU)
ECU / 改装状态 原厂;按车型使用 Nidec 或 Bosch A / Bosch B 线束
采集跨度 源文档未给出抓包数;车型常量登记了每个 ECU 的固件版本样本列表
适用范围 仅限源文档所列车型与固件版本;未列入的版本需自行补录,不能假定兼容

总线与寻址

这份档案的寻址方式很规整:对每个 ECU 用 0x18DA<目标地址>F1 的 29 位物理请求(F1 是测试仪地址),读回的固件版本号再按车型分组。DBC 侧则按硬件族命名,并给个别车型挂了单独的 body DBC。

项 内容
物理层 双绞线 CAN;经车型线束接到相应总线
链路层 / 比特率 源文档未在本文件给出比特率
寻址方式 ISO 15765-4 29 位固定寻址:请求 0x18DA<TA>F1,测试仪地址 F1
CAN FD 源文档未涉及;按经典 CAN 处理
硬件族 Nidec 与 Bosch A / Bosch B 三套;DBC 名如 honda_civic_touring_2016_can_generated、honda_accord_2018_can_generated、honda_civic_ex_2022_can_generated

已解码信号

主素材的「信号级」内容集中在ECU 的请求地址与固件版本前缀上,因此下表登记每个 ECU 的寻址与版本号前缀形态,并给出代表性车型的版本样本。个别条目源文档标注为「修改版固件」,按原样保留。

ECU 位置(请求地址) 固件版本前缀(样本) 证据
发动机 PCM 0x18da10f1 37805-… 车型常量 FW_VERSIONS
线控换挡 0x18da0bf1 54008-… 车型常量 FW_VERSIONS
变速箱 TCM 0x18da1ef1 28101-… / 28102-… / 28103-… 车型常量 FW_VERSIONS
电动制动助力 0x18da2bf1 46114-… / 39494-… 车型常量 FW_VERSIONS
VSA 车身稳定 0x18da28f1 57114-… 车型常量 FW_VERSIONS
EPS 电动转向 0x18da30f1 39990-… 车型常量 FW_VERSIONS;个别项标注「修改版固件」
SRS 安全气囊 0x18da53f1 77959-… 车型常量 FW_VERSIONS
组合仪表 0x18da60f1 78109-… / 78108-… 车型常量 FW_VERSIONS
HUD 0x18da61f1 78209-… 车型常量 FW_VERSIONS
前向毫米波雷达 0x18dab0f1 36802-… 车型常量 FW_VERSIONS
前视摄像头 0x18dab5f1 36161-… 车型常量 FW_VERSIONS
网关 0x18daeff1 38897-… 车型常量 FW_VERSIONS

读取方法与注意事项

第一,识别是「多 ECU 组合」而不是单点。源文档为每款车登记了若干 ECU 的版本号列表,匹配时是把读到的整组版本号与车型的列表比对;只读到某一个 ECU 的版本不足以定车。

第二,硬件族决定用哪套 DBC 与线束。源文档把车型分成 Nidec 与 Bosch 两族,Bosch 又细分到需要 Bosch A 或 Bosch B 线束:Civic 2016-18 用 Nidec,Civic 2019-21 与 Hatchback 用 Bosch A,Civic 2022 用 Bosch B。CRC/识别出错时,往往是把车放错了族。

第三,几个「例外集」是踩坑点。源文档列出:HONDA_NIDEC_ALT_SCM_MESSAGES(一批 Nidec 车用替代 SCM 报文)、HONDA_NIDEC_ALT_PCM_ACCEL(Odyssey)、HONDA_BOSCH_ALT_BRAKE_SIGNAL(Accord、CR-V 5G、Acura RDX 3G 用替代制动信号)、HONDA_BOSCH_RADARLESS(Civic 2022 无雷达)、以及 STEER_THRESHOLD 的两处覆盖(Acura RDX 与 CR-V EU 用 400,默认 1200)。

第四是最小转向速度:车型信息里为每款车写了 min_steer_speed,从 0(如 Civic 2022、Odyssey)到 25 mph(Acura ILX)不等,且都按 mph 换算。它与硬件族、DBC 一样是车型识别后要一起取用的参数。

证据等级与边界

可视为文档级证据的是:每个 ECU 的请求地址、以及各车型登记的固件版本号列表。这些是源文档快照里的明确内容。属于「示例性」的是具体版本号——它们来自项目记录的样本,不代表该车型全部生产版本;未列入的版本不能被假定兼容。

不能外推的地方有两处。第一,车型与年款是逐条列出的,同一车名不同年款可能属于不同硬件族、用不同 DBC(Civic 三代就是例子),跨年款套用没有依据。第二,源文档是旧版项目的静态快照,后续项目可能已增删车型或改动寻址;本文只反映快照当时的内容。

关于「安全访问」类问题:源文档未提供任何绕过方法,且不建议尝试。读固件版本属于常规诊断读取;本文不涉及任何写 ECU 或绕过安全机制的操作。

常见问题

这台 Honda 到底是哪款、用哪套硬件?

源文档的做法是向一组 ECU(PCM、TCM、VSA、EPS、仪表、雷达、摄像头、网关等)读固件版本,用整组版本号匹配车型,并据车型决定用 Nidec 还是 Bosch A / Bosch B 线束与对应 DBC。

Civic 2016-18、2019-21、2022 有什么区别?

硬件族不同:2016-18 属 Nidec,2019-21 与 Hatchback 属 Bosch A,2022 属 Bosch B;Civic 2022 还被列入无雷达集合,且最小转向速度记为 0。

为什么有些车要单独列出替代报文集合?

源文档为若干车设了例外集,例如一批 Nidec 车用替代 SCM 报文、Odyssey 用替代 PCM 加速报文、Accord/CR-V 5G/Acura RDX 3G 用替代制动信号、Civic 2022 无雷达;这些车的报文布局与同族其它车不同。

固件版本号能当唯一识别码吗?

不能。源文档登记的是样本列表,用于组合匹配;未列入的版本不在表内,且同一车型不同年款可能落在不同族,不能只凭一个版本号定车。

延伸阅读

参考资料

  • 项目 01 —— public-can-dbc-datasets/additional/blueopenpilot-c3-legacy-subset/README.md(主来源:项目总说明)。
  • 项目 01 —— public-can-dbc-datasets/additional/blueopenpilot-c3-legacy-subset/selfdrive/car/honda/values.py(车型常量、ECU 请求地址、固件版本表与硬件族)。

说明:本文整理自第三方开源项目的公开文档,仅代表该文档所记录的单个车辆样本,不代表同型号全系车型。CAN 与诊断操作存在风险,任何实车操作前请自行复核并遵守当地法规。

更新记录

首次发布 2026-10-11 最近核对:2026-10-11

评论

发表回复

您的邮箱地址不会被公开。 必填项已用 * 标注