我正在开发一种使用 J1939 协议连接到 CAN 总线的产品。
在地址声明过程中,必须发送我的产品名称,其中包括制造商代码等数据。该制造商代码长度为 11 位,应该由 SAE 委员会指定。
但我对此有点困惑。
只有 11 位长度,只有 2048 种不同的代码。对于世界上所有的制造商来说,这似乎并不多(其中一些制造商分配了多个代码)。
另一方面,我真的需要制造商代码吗?有什么策略可以用来避免得到一个吗?有没有为此目的的常用策略?
另一方面,我真的需要制造商代码吗?
这取决于您的设备的性质,如果它用于大规模生产,那么您需要注册自己并获得一个 ID。
有什么策略可以用来避免得到一个吗?
您可以使用 11'b0 作为您的 ID,但仅用于实验/开发目的,否则您将不符合 J1939。
NAME 仅在地址声明过程中使用,在两个声明相同地址的 ECU 的情况下,比较它们的名称以检查谁在保留它。
争用基本上是将NAME作为数值进行比较,值越小优先级越高。根据您的设备优先级,甚至可能不考虑名称。
您需要评估您的设备正在播放系统的功能,如果不是关键的,则分配更高的 NAME,如果与安全相关,则分配更低的 NAME。