CANbus診断
ハードウェア障害の診断
ほとんどのCANの問題は、誤った配線または障害のあるCANデバイスにまでさかのぼります。潜在的なエラーには次のものがあります。
端子抵抗器の欠落または寸法が正しくない
バスは、最初と最後に120Ωの端子抵抗で正確に終端する必要があります。
異なるボーレート
すべての加入者は同じボーレートを使用する必要があります。
CANLow、CANHigh、CANGround、V +間の短絡
CANLowとCANHighが交換されました
CANHighとCANLowの長さが異なる
CANHighとCANLowはツイストペアではありません。その結果、信号をより簡単に中断できます。
CANGroundのさまざまな接地ソース
CANバスケーブルの両面接地
CANバスケーブルのシールドの両端が接地されると、接地ループが形成され、中断を引き起こす可能性があります。
バスケーブルが長すぎます
最大バス長は、設定されたボーレートによって異なります(表を参照)。
ビットレート | ケーブルの長さ |
---|---|
10 kbps | 6.7 km |
20 kbps | 3.3 km |
50 kbps | 1.0 km |
125 kbps | 500メートル |
250 kbps | 250メートル |
500 kbps | 125メートル |
1 Mbps | 25メートル |
ハードウェア障害の検出

端子抵抗は、ノードのインピーダンスを使用する伝送ケーブルのインピーダンスに適合させるために使用されます。インピーダンスの不整合があると、送信信号が負荷に完全に吸収されず、その一部が反射して伝送ケーブルに戻ります。ソース、伝送ケーブル、および負荷のインピーダンスが同じである場合、これらの反射は排除されます。このテストでは、CANデータペアケーブルと接続されている端子抵抗のシリアル抵抗が測定されます。
すべてのCANノードの電源をオフにします。
ネットワークの中央と端でCAN_HとCAN_Lの間の抵抗を測定します。
測定値は50Ωから70Ωの間でなければなりません。値は、ネットワーク内のすべての場所で同じである必要があります。
値が50Ω未満の場合は、次のことを確認してください。
CAN_HケーブルとCAN_Lケーブルの間に短絡はありません。
端子抵抗は2つまでです。
ノードに欠陥のあるトランシーバーはありません。
値が70Ωより大きい場合は、次のことを確認してください。
CAN_HケーブルとCAN_Lケーブルの配線に断線はありません。
バスシステムには2つの端子抵抗があり、それぞれが120Ωで、両端に1つずつあります。

すべてのノードには、差分信号を送信するCANトランシーバーが含まれています。ネットワーク通信がアイドル状態のとき、CAN_HとCAN_Lの電圧は約2.5 Vです。トランシーバーに障害があると、開回路電圧が変化し、ネットワーク通信が中断する可能性があります。
すべてのCANノードの電源をオフにします。
すべてのネットワーク通信を停止します。
CAN_HとGND間の直流電流を測定します。
測定値は2.0V〜4.0Vである必要があります。2.0V未満または4.0Vを超える場合は、1つ以上のノードでトランシーバーに障害がある可能性があります。
2.0 V未満の電圧では、CAN_HケーブルとCAN_Lケーブルの導通を確認する必要があります。
4.0 Vを超える電圧では、過電圧をチェックする必要があります。

CANネットワークのシールドは、1か所でのみ接地できます。このテストは、シールドが複数の場所で接地されているかどうかを示します。
シールドを地面から分離します。
シールドとアース間の直流抵抗を測定します。
シールドを地面に接続します。
抵抗は1MΩより大きくする必要があります。それが低い場合は、シールドの追加の接地を探す必要があります。

CANトランシーバーには、CAN_Hを制御する回路とCAN_Lを制御する別の回路があります。経験によれば、一方または両方の回路に電気的損傷があると、これらの回路の漏れ電流が増加する可能性があります。
抵抗測定器を使用して漏れ電流を測定します。
ノードをネットワークから分離します。電流なしでノードを離れます。
CAN_HとCAN_GND間の直流抵抗を測定します。
CAN_LとCAN_GND間の直流抵抗を測定します。
通常、抵抗は1MΩから4MΩ以上の間でなければなりません。この範囲よりも低い場合は、CANトランシーバーに欠陥がある可能性があります。

CANコントローラーのエラー処理
エラー処理はCANプロトコルに統合されており、CANシステムのパフォーマンスにとって非常に重要です。エラー処理は、送信者が失敗したメッセージを再送信できるように、CANメッセージのエラーを検出することを目的としています。すべてのCANコントローラーは、メッセージ内のエラーを検出しようとします。エラーが検出されると、検出ノードはエラーフラグを送信するため、バストラフィックが中断されます。他のノードは、エラーフラグによって引き起こされたエラーを検出します(元のエラーをまだ検出していない場合)。彼らは適切な行動を取り、現在のメッセージを拒否します。
これらのカウンタとバスの状態は、CANエラーを診断するときにエラーの原因に関する最初の洞察を提供することがよくあります。この情報はで読むことができます CODESYS ユーザーインターフェイスとアプリケーションを使用します。