首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >在一个系统上,两个端口可以具有相同的CAN-ids吗?

在一个系统上,两个端口可以具有相同的CAN-ids吗?
EN

Unix & Linux用户
提问于 2022-03-08 12:28:09
回答 1查看 257关注 0票数 0

如果有两个CAN端口的设备具有相同的CAN-id,这会引起麻烦吗?

由于某种原因,网络是分开的,但是对于两个网络来说,“主”应该是相同的。

编辑:下面的网络拓扑。

代码语言:javascript
复制
 ("master")   CAN-BUS 0     +----------+
+----------+       |------->| CAN-ID 2 |
|          |<------|        +----------+
| CAN-ID 1 |
|          |<------|        +----------+
+----------+       |------->| CAN-ID 3 |
              CAN-BUS 1     +----------+

正如我现在所理解的,CAN-id是在软件中设置的。如果我玩ifconfig,你就不能设置CAN-id.相反,这是在我想通过cangen生成CAN通信时设置的:

代码语言:javascript
复制
CANID=1
ip link set can0 type can bitrate 125000
ip link set up can0
cangen can0 -I $CANID -L 8 -v
EN

回答 1

Unix & Linux用户

回答已采纳

发布于 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地址)。

票数 2
EN
页面原文内容由Unix & Linux提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://unix.stackexchange.com/questions/693462

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档