Honda Civic FL5:25 个 DID 与 109 个 CAN 信号

作者:

在

结论:Honda Civic FL5 的数据特征与多数车相反:OBD 口后面存在网关,且总线上几乎抓不到周期性广播帧——必须用 UDS 服务 22(ReadDataByIdentifier)主动向四个模块索取 DID,才能读到 25 个 DID、109 个信号。正因为如此,DBC 不适合做这辆车的主格式。以下所有结论仅限源文档记录的这一台车与其固件版本,不代表同型号其他车辆。

车辆与适用范围

本文数据来自第三方开源项目对一台 Honda Civic FL5 的诊断数据整理。项目以 UDS 服务 22 的读取结果为基础,按模块组织成 DID 与信号清单,并对每条信号标注了证据等级。

项 内容
车型 Honda Civic FL5
年款 / 市场版本 源文档未确认
ECU / 模块 共 4 个:0x10 ECM、0x28 VSA、0x30 EPS、0x60 仪表(组合仪表)
采集跨度 数据集 25 个 DID、109 个信号;源文档记录版本 1.0.1
适用范围 仅限源文档记录的这一台车与其固件;DID 布局与信号刻度不保证适用于其他年款或市场版本

总线与寻址

这辆车是经典 CAN 加主动诊断读取的典型:总线上没有可供解析的周期广播流,价值的全部来源是「问—答」。因此寻址方式、传输层时序与请求节奏比 DBC 更重要。

项 内容
物理层 / 速率 经典 CAN 2.0B,500 kbit/s,无 CAN FD
接入点 标准 OBD-II(J1962)引脚 6 / 14
网关 OBD 口后存在网关;源文档实测总线上为零周期性广播帧
诊断寻址 29 位 ISO 15765 物理寻址:请求 18DA<目标>F1,应答 18DAF1<目标>,诊断仪地址固定为 F1;功能广播为 18DB33F1
传输层 ISO-TP(ISO 15765-2):首帧宣告长度,随后连续帧,接收方回 30 00 00 流控帧;数据区 54–63 字节,填充 0xAA
11 位寻址 在 7E0 / 7E8 上发标准 Mode 01 无应答

已解码信号

下表从源文档的信号清单中抽取最具代表性的条目。项目的置信度分为「已确认(研究级)」「中」「低-候选」三档,表中原样保留该标注;标为「中」的条目表示解码方向明确但仍缺独立旁证。

信号 位置(ID / DID / 字节) 解码 证据
ENGINE_RPM(发动机转速) DID 0x2610 B6:B8 raw × 0.25 rpm 已确认(研究级)
MAP_ABS(绝对进气压力) DID 0x2610 B9:B11 raw × 0.0078125 kPa 已确认(研究级)
ECT(冷却液温度) DID 0x2610 B11 raw − 40 ℃ 已确认(研究级)
VEHICLE_SPEED(车速) DID 0x2610 B18 raw km/h 已确认(研究级)
OIL_PRESSURE(机油压力) DID 0x2610 B44:B46 raw kPa 已确认(研究级)
OIL_TEMP_MODEL(机油温度模型) DID 0x268F B15 raw − 40 ℃ 已确认(研究级);源文档标注该信号在公开资料中无先例
BRAKE_PRESSURE(制动压力) DID 0x4005 B7:B9 raw − 25 bar 已确认(研究级)
STEER_ANGLE(方向盘转角) DID 0x48BD B11:B13 s16 × 0.1° 已确认(研究级)
WHEEL_SPEED_FL / FR / RL / RR DID 0x48C4 B23:B31 raw × 0.01 km/h 已确认(研究级)
STEER_MODE(转向模式) DID 0x48AC B1 枚举 中
FUEL_LEVEL(燃油液位) DID 0x7029 B12:B14 raw × 0.01 L 已确认(研究级)
AMBIENT_TEMP(环境温度) DID 0x7028 B17 raw ℃ 已确认(研究级)

读取方法与注意事项

这辆车读数据必须走 UDS 服务 22。请求用 29 位物理寻址发到 18DA<目标>F1,模块在 18DAF1<目标> 上应答;诊断仪地址固定为 F1,功能广播是 18DB33F1。注意 11 位寻址(7E0 / 7E8)上的标准 Mode 01 在本车上没有应答。

一旦某个 DID 的应答超过单帧容量,就会落到 ISO-TP 分段传输:模块先发一个首帧(形如 10 29 …)宣告总长度,再发若干连续帧,诊断仪需要及时回一个流控帧 30 00 00 授权它继续。源文档特别指出,流控帧如果晚回几毫秒,ECU 会放弃整笔传输——所以「问得到」不等于「收得全」,接收端的流控时机是硬约束。

工程上还要考虑读取节奏:同一模块上多个 DID 需要轮流询问,模块之间(ECM / VSA / EPS / 仪表)也要分配请求配额,否则在高频轮询时容易触发超时或让 ECU 返回否定应答。源文档记录了若干次安全访问被拒的情形,未提供绕过方法,也不建议尝试。

证据等级与边界

项目的证据等级分「已确认(研究级)」「中」「低-候选」三档。已确认条目既有编码依据也有行为或参考交叉验证;「中」表示解码方向明确但缺少独立旁证;「低-候选」则是尚未闭环的猜测。本文抽取的信号以已确认为主,并原样保留了 STEER_MODE 的「中」标注。

项目文档中有一节专门列出「已推翻的说法」,条目数量在三十条以上——说明这辆车的诊断数据在公开讨论里存在大量误传。阅读时要把「已推翻」与「已确认」严格分开,不要把早期猜测当作结论使用。

边界上必须强调:25 个 DID 与 109 个信号全部来自这一台车的这一版固件。不同年款、不同市场版本的 DID 编号、字节偏移与刻度都可能变化;同一 DID 在不同固件下含义也未必一致。任何实车读取都应在目标车上逐条复核。

常见问题

为什么这辆车用 DBC 解析不出来东西?

因为源文档实测其总线上没有周期性广播帧,OBD 口后还有网关。DBC 描述的是「谁在什么时刻广播什么布局的帧」,而这辆车的数据要靠 UDS 服务 22 主动索取,表现形式是「问—答」而非广播,所以 DBC 不适合作主格式。

读一个 DID 需要满足哪些传输层条件?

用 29 位寻址发请求到 18DA<目标>F1,模块在 18DAF1<目标> 应答;如果应答超过单帧,模块会先发 ISO-TP 首帧宣告长度,诊断仪必须及时回 30 00 00 流控帧。源文档指出流控晚回几毫秒 ECU 就会放弃整笔传输。

标准差一点的信号还能用吗?

要按证据等级区分。标为「已确认(研究级)」的可以直接用;标为「中」的(如 STEER_MODE)解码方向明确但缺独立旁证,使用前应自行验证;「低-候选」的不要作为结论。源文档对每一条都保留了原始标注。

这些 DID 能套用到别的 Civic 上吗?

不能。源文档的全部结论限定在这一台车与其固件版本上,且明确 DID 编号、字节偏移与刻度都可能随年款或市场版本变化。换车使用前必须重新读取并复核。

延伸阅读

参考资料

  • 项目 02 —— public-can-dbc-datasets/additional/caldis-honda-civic-fl5-dids/README.zh-CN.md(本项目车型档案主来源)
  • 项目 02 —— public-can-dbc-datasets/additional/caldis-honda-civic-fl5-dids/CHANGELOG.md(版本与已推翻说法的变更记录)
  • 项目 02 —— public-can-dbc-datasets/additional/caldis-honda-civic-fl5-dids/SOURCE.md(数据集版本与来源说明)

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

更新记录

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

评论

发表回复

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