【发布时间】:2014-09-18 12:38:56
【问题描述】:
如果在 j1939 中两个同名的节点声明相同的地址,这种情况会发生什么?任何一个节点都会要求地址或错误会发生吗?
【问题讨论】:
-
我认为这是不允许的!
-
同名是什么意思?你能详细说明一下吗?
如果在 j1939 中两个同名的节点声明相同的地址,这种情况会发生什么?任何一个节点都会要求地址或错误会发生吗?
【问题讨论】:
我的规范副本已过时,但我确信这条规则自 2003 年以来没有改变 (SAE J1939-81):
“ECU 制造商和网络集成商必须确保所有 CA 的名称旨在 在特定网络上传输是唯一的。”
当然,话虽如此,当然可以将具有相同名称的设备放在 同一组电线,无论是出于无知还是出于恶意。
我个人没有玩过它,但理论上,如果您的设备与另一个设备的名称完全相同, 您的地址声明将与另一个完全重叠,两者都不会知道另一个的存在, 消息将成功通过,并且每个设备都会假定它是发送它的设备。
我可能是错的,但我认为 CA 可能看到的唯一奇怪的是来自地址的消息 它认为它已经声称,这是一个它甚至可能没有检查的问题。
【讨论】:
从网络的角度来看,没有办法区分节点是不同的,因为它们将自己标识为同一个实体。将会发生的情况是第一个请求将被处理,而第二个请求将被忽略。换句话说,这是竞争条件,因为在数据链路中一次只处理一条消息。当第二个节点尝试声明相同的地址时,地址表已经被占用,延迟请求节点将无法获得地址已分配给它的通知。请记住,每个节点都有自己的内部状态/配置。
【讨论】: