如果有两个CAN端口的设备具有相同的CAN-id,这会引起麻烦吗?
由于某种原因,网络是分开的,但是对于两个网络来说,“主”应该是相同的。
编辑:下面的网络拓扑。
("master") CAN-BUS 0 +----------+
+----------+ |------->| CAN-ID 2 |
| |<------| +----------+
| CAN-ID 1 |
| |<------| +----------+
+----------+ |------->| CAN-ID 3 |
CAN-BUS 1 +----------+正如我现在所理解的,CAN-id是在软件中设置的。如果我玩ifconfig,你就不能设置CAN-id.相反,这是在我想通过cangen生成CAN通信时设置的:
CANID=1
ip link set can0 type can bitrate 125000
ip link set up can0
cangen can0 -I $CANID -L 8 -v发布于 2022-03-08 15:46:40
是的,会的。
CAN具有与以太网几乎相同的架构。ID能否与以太网中的MAC地址扮演几乎相同的角色?因此,只要两个网段保持独立,您就可以在两个不同的设备上拥有相同的ID。如果这些部分重新连接到一个网络中--您将发生冲突,并且这两个设备都无法正常通信。
我不知道您所说的“两个网络中的同一个主机”是什么意思,因为CAN是为了更接近p2p协议而设计的,并且在主机之间没有主从关系。
如果您打算在加入网段后为“主程序”保留消息优先级--您只需在If中设置一个空白,并为两个“主”分配一些小的东西,而“奴隶”的If将高于两个主程序。
编辑:我从来没有工作过(或看到)这样的多端口CAN设备。但从纯理论的角度来看--只要设备本身允许端口上有相同的it -它可能会起作用。只要ID在总线中是唯一的--主机将能够通信。
有“特例”设备,即“CAN网关”。他们把两辆罐车连成一辆。但是网关通常不被称为“主人”,所以我不确定这就是你想要的。
一旦你用网关连接到总线上--你只有一条总线,来自这两个部分的所有设备都可以相互通信。网关只是一个信号中继器。顺便说一句,如果你的巴士足够长,你可以故意在中间放一个网关,以确保信号的强度。
CAN网关由一个专门的软件配置,该软件与网关设备一起分发(或从生产公司下载)。因此,当您运行该工具时,会自动回答其端口上的ID问题:)
我使用的另一个多端口设备是一个CAN以太网网关。但是在这种情况下,设备只有一个CAN端口,它充当一个普通的CAN设备,具有正常的ID (以及以太网侧的正常MAC地址)。
https://unix.stackexchange.com/questions/693462
复制相似问题