CAN通信:了解哪个节点传输数据

问题描述 投票:0回答:2

我是 CAN 通信新手,我的任务之一是使用 CANalyzer 来了解产品使用哪些消息 ID 以及正在发送/接收哪些数据。

该产品有多个节点可以发送/接收CAN消息。我知道 CAN 消息被广播到所有节点,但我很难确定哪个节点发送了消息以及哪些节点接收了消息。

那么,例如,如果我有 3 个 CAN 节点,有没有办法可以确定节点 1 发送消息而节点 2/3 正在接收消息?

提前谢谢您。

can-bus
2个回答
0
投票

一般来说,仅靠听CAN总线是无法得知这一点的。每当有人询问“CAN 总线”上的数据时,同样的老故事是:它使用什么应用层协议? “CAN总线”不会告诉你杰克,它只是规范物理层和数据链路层。识别单个节点的概念在数据链路层不存在,仅在应用层存在。

有两种可能的方式供您判断:

  • 如果您知道物理 CAN 总线之上使用的应用层并知道它使用节点 ID,那么您可以通过解码应用层协议来判断哪个节点正在发送什么数据。
  • 在每个节点上,您可以使用示波器嗅探 MCU 和 CAN 收发器之间的 Tx 信号。该节点仅在节点发送或 ACK:ing 时才会激活。大多数现代示波器都具有 CAN 帧解码器功能,省去了手动解码帧的麻烦。

0
投票

如果 Canalyzer 知道它是什么车辆或该车辆的哪个部分,它能否告诉 CAN 消息上每个 ID 的功能?我没用过canalyzer,我用的软件可以查看can并识别不同的Id

© www.soinside.com 2019 - 2024. All rights reserved.