CANデバイスが通信に失敗する、または高いボーレートで不一致となる

更新しました Apr 18, 2024

使用製品

その他

CAN産業用通信機器

問題

CANデバイスは低いボーレートで正しく通信することができますが、ボーレートを上げると間欠的にしか通信しないか、まったく通信できません。次のCANエラーが発生します。

フォームエラー、CRCエラー、ビットエラーまたはスタッフエラー

解決策

これらのエラーは、不適切なCAN終端の結果である可能性があります。このKBは、CAN通信の各形式に対する適切な終端について説明します。

追加情報

CAN仕様(ISO 11898)は、CANネットワークにおける2つの両端(通常はコントローラノードと「最遠デバイス」ノード)のそれぞれでCANバスを適切に終端する必要があります。NI-CAN DB-9インタフェースのピン2と7であるCAN_HとCAN_Lの間に120オームの抵抗を配置すれば十分です。CANネットワークを終端する方法のより正確な取り扱いについては、関連リンクにあるProper Termination for NI-CAN Hardwareを参照してください。適切な終端がなければ、通信を試みると次の望ましくない動作のいずれかが発生する可能性があります。


 
  • 低いボーレートでは通信は成功しますが、高いボーレートでは失敗します(障害が発生するボーレートは、CANネットワークの長さ、フレームに関連するデータなど、さまざまな要素によって異なります。これは、特定の伝送最高周波数成分、ネットワーク近くの電磁干渉などによって変わる可能性があります)。下記の表は、終端テストの要約です。
     
    CANボーレート - 終端テスト
    ボーレート適切に終端されたケーブル?ポート間通信が成功するか?
    1Mはいはい
    1Mいいえいいえ
    125Kはいはい
    125Kいいえときどき
    40Kはいはい
    40Kいいえはい

    通信は適切に終端していれば成功していますが、通信速度は40Kという低いボーレートでは、終端を使用せずにCAN ISO 11898仕様に準拠していないにもかかわらず成功したことに注意してください。
     
  • CANエラー - フォームエラー、CRCエラー、ビットエラー、スタッフエラー、およびその他の不適切な終端により発生する可能性があります。CANエラーの詳細については、下記の関連リンクにあるNI-CAN Hardware and Software User Manual を参照してください(付録B CAN規格の要約、CAN Error Detection and Confinementと呼ばれるCANエラーを説明するセクションが含まれています)。


不適切な終端によって説明できるCANエラーの例(およびCAN ISO 11898仕様に基づいて定義されたエラー条件)は、スタッフエラーです。バス上で等しい値の連続した6ビットが検出されるたびに、エラーが発生します。送信装置が等しい5ビットの連続するビットを検出すると、自動的に補足されたビットを送信ビットストリームに挿入します。このスタッフビットは検出され、すべての受信デバイスによって自動的に削除されます。 

このビットスタッフィングスキームは、フレーム内で同期を維持するためにビットストリームに十分なエッジを保証するために使用されます。リスニングデバイスが同じ値の6ビットを検出した場合、同期が失われ、受信したものが送信されたものではなかったはずです。これは、不適切な終端で起こる可能性があります。フレーム内の一部のビットは正しく送受信されますが、フレーム全体(およびそのフレーム内のすべてのビットの完全性)はリスニングCANインターフェイスで維持されずに受信されません。

その理由は、一般的に、CANネットワークが伝送ラインを定義しているからです。伝送ライン理論は、十分に高い周波数成分が、受信端末での適切な終端なしに所与の伝送ライン長に沿ってうまく伝送されないことを定義しています。この終端はしばしばマッチングネットワークと呼ばれ、終端はネットワークに戻って見えるインピーダンスの複素共役を使用することによって負荷(この場合は受信CANインタフェース)への最大電力転送に対して選択されることが多いです(実際には、 多くのアプリケーションでは、ノイズ性能やその他の考慮事項を考慮してわずかに異なる終端を使用しています)。

良い点は、CAN ISO 11898の仕様は、(実際にこのCAN規格に準拠している)CANネットワーク全体を適切に終端することが、ネットワークの「両端に」2つの120オーム抵抗を配置するのと同じくらい簡単であるということです 。