正如标题所述,我使用命令candump can0 can1
来监视CAN总线上的帧,但无法区分接收和发送了哪些帧。
有时,我需要接收到的帧的时间戳来分析问题。
我不知道candump是否支持这些。
答案 0 :(得分:0)
如评论中所述,CAN协议不跟踪发送方/接收方。标识消息的唯一数据是消息ID。在普通的CAN网络中,为每个设备分配了特定的ID,用于发送和接收。您需要了解CAN网络定义(或CAN矩阵),才能正确理解CAN总线的内容。
最常将定义存储在.dbc文件中,该文件是许多工具支持的专有文件格式。这些文件描述了如何解释CAN消息,还列出了网络中的节点以及每个节点归属的消息ID。汽车制造商通常不共享这些定义文件。某些大型制造商甚至不会与他们的合作伙伴共享它们开发在车内使用的ECU ...(我在这里谈论的是经验)
请注意,在CAN层之上分层的某些协议在消息ID中编码源/目标地址(通常仅通过具有29位ID的扩展CAN帧)。像J1939和ISO-15765-3(与UDS一起使用)这样的协议就可以做到这一点。
答案 1 :(得分:0)
距离该主题的任何更新已有很长时间了。但这也许对某人有帮助。
您可以使用此Site所示的选项显示时间戳:
-ta : absolute
-td : delta
-tz : zero
-tA : Absolute with date
因此,对于您的问题,您可以使用:
candump -ta can0 can1
答案 2 :(得分:0)
-x参数输出额外的消息信息,rx / tx brs esi
例如candump -ta -x -c -c can0 can1
有关其他详细信息: candump -h