2つのCANポートがシステムで同じCAN IDを持つことは可能ですか?

2つのCANポートがシステムで同じCAN IDを持つことは可能ですか?

2つのCANポートを持つデバイスが同じCAN-idを持つ場合、問題は発生しますか?

何らかの理由でネットワークは分離されていますが、両方のネットワークの「マスター」は同じでなければなりません。

編集:ネットワークトポロジの下。

 ("master")   CAN-BUS 0     +----------+
+----------+       |------->| CAN-ID 2 |
|          |<------|        +----------+
| CAN-ID 1 |
|          |<------|        +----------+
+----------+       |------->| CAN-ID 3 |
              CAN-BUS 1     +----------+

今私が知っている限り、CAN-idはソフトウェアに設定されています。遊ぶとifconfigCAN-idを設定できません。代わりに、以下を介してCANトラフィックを生成したい場合は、この値を設定してくださいcangen

CANID=1
ip link set can0 type can bitrate 125000
ip link set up can0
cangen can0 -I $CANID -L 8 -v

答え1

はい、そうです。

CANのアーキテクチャはイーサネットのアーキテクチャとほぼ同じです。 CAN ID の役割はイーサネットの MAC アドレスとほぼ同じです。したがって、2つのネットワークセグメントが別々に維持されている限り、異なる2つの装置で同一のIDを有することができる。これらのセグメントが1つのネットワークに再接続すると、競合が発生し、両方のデバイスが正しく通信できません。

CANはp2pプロトコルに近づくように設計されており、実際にホスト間にマスターとスレーブの関係がないため、「2つのネットワークの同じマスター」が何を意味するのかわかりません。

セグメントに参加した後に「マスター」のメッセージ優先順位を維持するには、IDに間隔を置いて「マスター」と2つのマスターより高い「スレーブ」のIDに小さい値を割り当てます。デバイス。

編集する:私はこのようなマルチポートCANデバイスを使ったことがありません。ただし、純粋に理論的な観点からは、デバイス自体がそのポートで同じIDを使用できるようにする限り、これは機能します。 IDがバス内で一意である限り、マスターは通信できます。

「CANゲートウェイ」という「特別なケース」デバイスがあります。 2つのCANバスを1つにまとめます。しかし、ゲートウェイは一般に「マスター」と呼ばれていないので、それを念頭に置いているかどうかはわかりません。

ゲートウェイを介してバスに接続すると、バスは1つだけで、両方のセグメントのすべてのデバイスが互いに通信できます。ゲートウェイは単に信号中継器です。ただし、バスが物理的に十分に長い場合は、信号強度を確保するためにゲートウェイを意図的に中央に配置できます。
CAN-CANゲートウェイは、ゲートウェイデバイスと共に配布される(または製造会社からダウンロードされる)専用ソフトウェアで構成されています。したがって、ツールを実行すると、そのポートのID質問に自動的に応答します。 :)

私が使用する別のマルチポートデバイスはCANイーサネットゲートウェイです。ただし、この場合、デバイスには1つのCANポートしかあり、通常のID(およびイーサネット側の通常のMACアドレス)を持つ通常のCANデバイスのように動作します。

関連情報