2つのCANポートを持つデバイスが同じCAN-idを持つ場合、問題は発生しますか?
何らかの理由でネットワークは分離されていますが、両方のネットワークの「マスター」は同じでなければなりません。
編集:ネットワークトポロジの下。
("master") CAN-BUS 0 +----------+
+----------+ |------->| CAN-ID 2 |
| |<------| +----------+
| CAN-ID 1 |
| |<------| +----------+
+----------+ |------->| CAN-ID 3 |
CAN-BUS 1 +----------+
今私が知っている限り、CAN-idはソフトウェアに設定されています。遊ぶとifconfig
CAN-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デバイスのように動作します。