日产 Leaf ZE1:0x1DA 与 0x1D4 的 CRC 同多项式、两种算法

作者:

在

结论:在一份以日产 Leaf ZE1 命名的 CAN 数据库与配套研究文档里,0x1DA 与 0x1D4 两个帧使用同一个 CRC 多项式 0x85(MSB-first),但算法细节不同:0x1DA 校验时把帧 ID 字节 0xDA 拼进输入并输出异或 0xBF;0x1D4 生成校验时不拼帧 ID、也不做输出异或,只对 b0 至 b6 求 CRC。第三帧 0x11A 则根本没有 CRC 字节,b7 是多路复用(mux)载荷。需要强调:源文档自己的来源说明写明这些 CRC 结论属于「上游声明、未在本归档独立核验」,且该车型的精确年款、配置与固件均未确认。

本文整理自该研究文档与一份 ZE1 命名的 DBC 快照。文中所有结论的边界,都以下文「证据等级与边界」一节为准,不做拔高。

车辆与适用范围

素材包含两部分:一份以 Leaf ZE1 命名的 DBC(含 48 条消息、257 条信号行),以及作者围绕 0x1DA、0x1D4 的 CRC 处理所写的研究文档。文档称 CRC 结论曾用 4 帧已知良好的参考帧校验,但那 4 帧来自第三方 VCU 样机与日产逆变器的采集,并非本归档内独立复核。

项 内容
车型 日产 Leaf(DBC 以 ZE1 命名,即 Leaf-CAN_ZE1.dbc)
年款 / 市场版本 源文档未确认;精确年款、配置与固件 applicability 均未建立
ECU / 改装状态 涉及逆变器状态帧与扭矩请求帧;文档语境为第三方 VCU 搭配日产逆变器的样机
采集跨度 CRC 结论基于文档所述 4 帧参考帧;未给出完整日志规模
适用范围 仅限该 DBC 快照与文档所声明的帧;不得外推至其他年款或固件

总线与寻址

本文素材没有给出该车的物理层速率或 11 位 / 29 位寻址结论,也没有 CAN FD 的说明。文档讨论的是帧级 CRC 与字段布局,工作对象是 0x1DA、0x1D4、0x11A 三个 8 字节帧。下表只列文档明确涉及的内容,其余标注为源文档未给出。

项 内容
物理层速率 源文档未给出
寻址 源文档未给出 11 位 / 29 位结论
CAN FD 源文档未提及
帧长 所涉三个帧均为 8 字节载荷
校验字段位置 0x1DA 与 0x1D4 的 CRC 在 b7;0x11A 无 CRC,b7 为 mux 载荷

已解码信号

下表汇总文档给出的 CRC 参数、帧结构与 DBC 片段中的字段。凡未标注独立复核的,均沿用「上游声明」边界。位宽写法如 23|12 表示起始位 23、宽 12 位;@0- 表示 Motorola 字节序、有符号。

信号 位置(ID / 位域) 解码 证据
CRC_1D4(发送校验) 0x1D4 b7(DBC 56|8) poly 0x85、init 0x00、无输出异或、输入为 b0 至 b6(不拼帧 ID) 上游声明,未独立核验
0x1DA 线上校验 0x1DA b7 poly 0x85、init 0x00、输出异或 0xBF、输入为 [0xDA, b0..b6] 上游声明;按文档所述对 4 帧参考帧吻合
时钟选择 clock 0x1DA b6 低 2 位 clock = b6 与 0x03 上游声明
HCM_CLOCK 0x1D4 38|2 2 位计数,对应 b4 滚动(见下) DBC 片段
MotorAmpTorqueRequest 0x1D4 23|12 @0- 比例 0.25,范围 0 至 1024 Nm DBC 片段
ChargeStatus 0x1D4 48|8 MODEMASK 取值 DBC 片段
StatusOfHighVoltagePowerSupply 0x1D4 34|1 1 位状态 DBC 片段
Relay_Plus_Output_Status 0x1D4 46|1 1 位状态 DBC 片段
JoystickGearPosition 0x11A 4|4 4 位 DBC 片段
CarOnOffStatus 0x11A 13|3 3 位 DBC 片段
Multiplexor M(mux) 0x11A 48|8(b6) 选择器,逐帧 0、1、2、3 循环 DBC 片段与文档
HeartbeatVCM 0x11A 24|8(b3) 取值在 85 与 170 之间(文档记 b1 应为 0x40) DBC 片段
ECOselected 0x11A 12|1 1 位 DBC 片段
0x11A 的 mux 载荷 0x11A b7 mux0 至 3 对应 0x6B、0xEE、0xE4、0x61 文档表

读取方法与注意事项

接收侧校验。对 0x1DA,文档的做法是:用 [0xDA, b0..b6] 求 poly 0x85、init 0x00、xorOut 0xBF 的结果,与收到的 b7 比较,不等即判为坏帧;文档还给出一种运行时策略——连续坏帧达到 10 次则关闭 CAN 回退。

发送侧构造(文档语境)。0x1D4 每 10 毫秒发送一次:b0、b1 为静态 0x6E,b2、b3 为 0x00,b4 是滚动计数器,b5 为静态充电状态 0x44,b6 为静态 0x01,b7 填入按上文规则算出的 CRC。文档强调 b4 的计数器必须按 0x87 → 0xC7 → 0x07 → 0x47 循环,且 0x11A 的 b1 必须是 0x40,否则逆变器会持续拒帧。

第三帧无 CRC。0x11A 是每 10 毫秒的心跳:b0 至 b5 为静态字节,b6 逐帧循环 0、1、2、3 作 mux 选择器,b7 随 mux 取对应值,没有校验字节。文档把 b7 明确称为「启动 / mux 载荷数据」,并指出它「不是 CRC 字节」。

操作提示。以上帧属于车辆逆变器通信;任何在真实总线上发送或改写这些帧的操作都会影响实车,风险自负。本文只转述源文档的算法描述,不构成操作指引;源文档未提供安全访问绕过方法,也不建议尝试。

证据等级与边界

第一层边界来自来源说明本身:该归档明确写着,DBC 与其中若干信号「解析器兼容性与信号准确性需要独立复核」,且文中标注了诸如 SG_: 这样的畸形语法与形如 4294967256 这类不合理的无符号物理下限;CRC 结论是上游声明,未在本归档独立验证;精确车型年款、配置与固件 applicability 未确认。许可方面,检查的快照中也没有发现通用仓库许可证,仅作为私有离线研究副本保留。

第二层边界来自文档自己的措辞:它把结论表述为「已验证并工作」,但依据的 4 帧参考帧来自第三方样机,不是本归档的实测;文档另记录了三类被否定的旧做法(例如错误的 0x1D29 多项式),不应被当作可用方案。

因此,本文给出的 CRC 参数、计数器循环与字段布局,只能视为「这份 ZE1 命名 DBC 与这份文档所声明的范围」,不能外推到其他 Leaf 年款、其他固件或其他逆变器组合。需要真值时应以实车采集与独立复核为准。

常见问题

0x1DA 和 0x1D4 的 CRC 到底差在哪?

差在两处:0x1DA 把帧 ID 字节 0xDA 拼进输入、并对结果异或 0xBF;0x1D4 不拼帧 ID、也不做输出异或,只对 b0 至 b6 求 CRC。两者共用同一个 MSB-first 多项式 0x85。

0x1D4 的 b4 计数器为什么必须按 0x87 → 0xC7 → 0x07 → 0x47 循环?

这是源文档记录的要求:计数器不按该顺序滚动时,逆变器会拒帧并给出状态「100 000」。文档把「计数器未按 10 毫秒循环」列为导致拒帧的可能原因之一。

逆变器状态「100 000」和「000 000」分别是什么意思?

按文档,状态「100 000」表示帧被拒绝,「000 000」表示帧被接受。文档还列出可能导致拒帧的原因,包括 0x1D4 的 CRC 错误、0x1D4 计数器未循环、0x11A 未发送或 mux 未循环,以及 0x11A 的 b1 不是 0x40。

0x11A 有没有 CRC 字段?

没有。文档明确说明 0x11A 不含 CRC,其 b7 是随 mux 选择器变化的启动 / 载荷数据,而非常规校验字节。

这些结论能直接套到别的 Leaf 上吗?

不能。来源说明写明 CRC 结论为上游声明、未在本归档独立核验,且精确年款、配置与固件 applicability 未确认。任何外推都需要以实车采集和独立复核为前提。

延伸阅读

参考资料

  • 项目 01 —— public-can-dbc-datasets/additional/kristianehr-leaf-ze1/docs/CRC_ALGORITHM_DEFINITIVE.md(本项目车型档案主来源,取用了 0x1DA / 0x1D4 / 0x11A 的 CRC 参数与帧结构)。
  • 项目 01 —— public-can-dbc-datasets/additional/kristianehr-leaf-ze1/docs/NISSAN_LEAF_1DA_CRC.md(取用了 0x1DA 的校验参数与 clock 定义)。
  • 项目 01 —— public-can-dbc-datasets/additional/kristianehr-leaf-ze1/SOURCE.md(取用了适用范围与「未独立核验」等边界说明)。

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

更新记录

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

评论

发表回复

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