如何在 ISO CAN FD新中计算 CRC?

问题描述

我看到一些关于结构的消息:

帧开始 - [ID,DLC,CRC,DATA] - 帧结束。

那么,为什么 CRC 不在 DATA 之后呢?我认为这种情况更容易检查? 我什至不知道他们是如何在 CAR CAN 中生成这个 CRC 值的:

ID 接收 DLC CRC 数据
03A0 接收 16 F4 7B 2D 00 FF FF FF FF 00 00 00 00 00 00 00 00

我尝试了很多多项式,但没有结果。谁能从示例数据中计算出这个 CRC?

解决方法

This web page 表示数据之前的 CRC 不是。在它之后:

four CAN frame layouts

您在查看哪些文档表明 CRC 在数据之前?

This page 提供多项式,但您需要更多信息来重现计算。

,

为什么 CRC 不在 DATA 之后?

是的。您发布的图片只是来自某些记录器工具的一些蹩脚转储,而不是 CAN FD 帧的表示。谷歌“CAN FD框架”,你会得到这样的东西:

enter image description here

(Source)

如何计算 ISO CAN FD 中的 CRC

你为什么要这样做?它由 CAN 控制器在硬件中完成,因此您不必这样做。这是自定义的 CRC-17 或 CRC-21,请参阅 https://www.can-cia.org/can-knowledge/can/can-fd/。一般而言,在学习 CAN 的基础知识之前,不要跑去做奇怪的事情。在学习 CAN FD 之前先学习经典 CAN - 它也有一个硬件检查的 CRC,但有一个 CRC-15。