0

正如标题所说,我使用命令candump can0 can1观看CAN总线上的帧,但无法区分接收到哪些帧和发送了哪些帧。

有时我需要接收帧的时间戳来分析问题。

我不知道 candump 是否支持这些。

candump 截图

4

3 回答 3

2

很久没有关于这个话题的更新了。但也许它可以帮助某人。

您可以使用本网站上显示的选项显示时间戳:

-ta : absolute
-td : delta
-tz : zero
-tA : Absolute with date

因此,对于您的问题,您可以使用:

candump -ta can0 can1
于 2020-01-15T08:01:38.070 回答
2

正如评论中所说,CAN 协议不跟踪发送者/接收者。唯一标识消息的数据是消息 ID。在普通 CAN 网络中,每个设备都分配有特定的 ID 用于传输和接收。您需要了解 CAN 网络定义(或 CAN 矩阵)才能正确理解 CAN 总线的内容。

该定义通常存储在 .dbc 文件中,这是许多工具支持的专有文件格式。这些文件描述了如何解释 CAN 消息,还列出了网络中的节点以及每个节点的消息 ID。汽车制造商通常不共享这些定义文件。一些大制造商甚至不会与他们的合作伙伴分享他们在车内开发ECU......(我在这里谈论经验)

请注意,CAN 层之上的一些协议在消息 ID 中编码源/目标地址(通常仅通过具有 29 位 ID 的扩展 CAN 帧)。J1939 和 ISO-15765-3(与 UDS 一起使用)等协议可以做到这一点。

于 2018-11-28T02:51:48.193 回答
0

-x 参数打印额外的消息信息,rx/tx brs esi

例如 candump -ta -x -c -c can0 can1

有关其他详细信息:candump -h

于 2020-07-14T03:00:38.710 回答