システムレベルのテストでCANトランシーバのデータ伝送問題を回避する
DigiKeyの北米担当編集者の提供
2023-10-11
コントローラエリアネットワーク(CAN)は、産業オートメーションや自動車分野などで使用されている、実績のある堅牢な通信規格です。この技術には次のような2つのバージョンがあります。CAN2.0と、より新しいバージョンであるCAN-FD(Flexible Data)です。旧来のCAN2.0システムは、CAN-FDノードを追加することで強化できます。CAN-FDノードは、より高いペイロードスループットを提供し、重要な通信イベントをサポートします。
この2つのテクノロジーは一般的に互換性がありますが、システムの複雑さとバス長が増すにつれて、混在システムにおけるCAN-FDの高速化が同期の問題を引き起こし、伝送障害を引き起こす可能性があります。
2つのコントローラ/トランシーバペアを接続する1つの短いバスを含むCANシステムテストは、単純なシステムでは十分かもしれません。しかし、このテストでは、CAN2.0とCAN-FDコンポーネントを組み合わせた、より複雑なマルチノードシステムで発生する問題を検出できないことが多いです。実稼働システムと全く同じシステムを用いて、潜在的なすべてのユースケースを網羅的にテストすることで、現場で発生する可能性のあるすべての問題を検出することができます。
この記事では、CAN2.0とCAN-FDについて簡単に紹介し、伝送上の課題について説明します。そして、これらのネットワークを使用するシステムが、フィールドでの障害を最小限に抑えていることを保証するためのテスト技術について説明します。この記事では、 Analog Devices が提供する、障害検出とレポート機能を組み込んだコンポーネントの例を紹介し、このようなコンポーネントを使用することで、展開されたシステムのテスト段階とトラブルシューティングをいかに加速できるかを説明します。関連する評価ボードも紹介しています。
CAN2.0およびCAN-FDについて
CANは、障害処理を内蔵した分散型通信の標準規格です。物理層(PHY)とデータリンク層(DLL)はISO-118981規格で規定されています。
CANの特長は、以下の通りです。
- バス上のマルチマスターの許容
- メッセージに対する固有の優先レベル
- メッセージ優先順位によるバス調停
- 複数レベルでのエラー検出および復旧
- 個別のクロックソースを持つノード間でのデータタイミングの同期
CANは、2つのバス電圧状態を特徴とする差動電圧データ伝送方式を採用しています。これは「リセッシブ」(ドライバ出力はハイインピーダンス)と「ドミナント」の2つのバス電圧状態があり、閾値は表1に示すとおりです。
|
表1:RS-485と比較したCANのリセッシブとドミナントの電圧レベル。ドミナント(高い)な電圧はロジック「0」に対応することに注意してください。(画像提供:Analog Devices)
ノードは、ロジック「0」(この状態では、一方のバスライン(CANH)がHighで、他方のバスライン(CANL)がLow)のドミナント状態を送信し、ロジック「1」のリセッシブ状態を送信します。アイドル状態のCANバスは、標準フレームまたはエラーフレームの終了後に複数のリセッシブビットを検出することで、リセッシブビット伝送モードのCANバスと区別されます(図1)。
図1:CANの伝送方式。アイドルモードは複数の下位ビットで識別されます。(画像提供:Analog Devices)
CANトランシーバは、DLL、CANコントローラ(多くの場合、マイクロコントローラなどの別のデバイスに内蔵されている)、およびCANバスの物理的な配線間の差動PHYインターフェースを提供します。CANアプリケーションを実装するために必要なさまざまな要素を、OSI(Open Systems Interconnection)レイヤとの関係、および各項目によって実装される機能とともに図2に示します。
図2:CANトランシーバは、CANコントローラとCANバス間の差動PHYインターフェースを形成します。(画像提供:Analog Devices)
CAN2.0は1991年に導入され、公称スループットは500キロビット/秒(Kbits/s)です。このデータレートでは重要な通信イベントに対応できないことがあるため、2012年にCAN-FDが開始されました。CAN-FDの公称スループットは、通常動作時で最大2メガビット/秒(Mbits/s)、診断やプログラミング時で最大5Mbits/秒です。高速通信は、メッセージのペイロードにのみ適用されることに注意してください。11ビットの識別子、巡回冗長検査(CRC)、確認応答(ACK)などのメッセージの他の要素は、CAN2.0の500Kbits/sのレートで送信されます。
CAN2.0とCAN-FDのさらなる違いは、標準データフレームのペイロードにあり、CAN2.0の8バイト(B)からCAN-FDの64Bに増加しました。このペイロードの増加により、オーバーヘッド/データ比が向上し、CAN-FD通信がより効率的になります。さらに、CAN2.0の8Bのペイロード制限のために分割しなければならなかったメッセージも、CAN-FDを使って1つのメッセージにまとめることができます。さらに、CAN-FDメッセージはデータレートが高く、ペイロードが大きくなるため、暗号化によってセキュリティを強化することができます。
CAN-FDコントローラは、CAN2.0とCAN-FDの両方のプロトコルをサポートしているため、同じネットワーク内にCAN2.0とCAN-FDのノードを混在させることは一般的です。ノードを混在させることで、旧来のネットワークを長期間にわたってより高速なプロトコルに移行させることができるため、多く採用されています。混合システムのデメリットとしては、トランシーバがCAN2.0ノードでCAN-FDフィルタリング方式をサポートし、CAN-FD通信中にエラーフレームが生成されないようにする必要があるため、コストと複雑さが増すことが挙げられます。
CANの通信調停およびエラーメカニズム
接続されたCANノードであれば、バス上にデータを送信することができます。通信の衝突を避けるため、ノードはバスの使用を調停し、優先順位に従ってメッセージが次々と送信されるようにします。CANは非破壊的で透過的な通信調停を採用しており、調停に成功したノードは、他のノードが情報を妨害したり破損したりすることなく、より優先度の高いメッセージを送信し続けます。このような調停が可能なのは、ドミナントビットの送信がリセッシブバスの状態を上書きするからです。
標準データフレームには、メッセージ識別子といくつかのフラグビットが含まれます。この情報は 「調停フィールド」と呼ばれます。調停を指示し、その結果、メッセージの優先順位が決まります。IDが低い(最初の 「0 」が多い)メッセージほど優先度が高くなります(図3)。
図3:CAN標準データフレームには、メッセージ識別子とRTRおよびIDEフラグビットが含まれます。この調停フィールドは、調停とメッセージの優先順位を決定します。(画像提供:Analog Devices)
調停スキームを使っても、うまくいかないことはあります。問題に対処するため、CANプロトコルにはエラーチェックとエラー処理をサポートするメカニズムがあります。これらのメカニズムには以下のようなものがあります。
- 伝送ビットの検証
- CRCチェック
- 固定形式のビットフィールドチェック
- 必須メッセージACK
エラーは以下のメカニズムで処理されます。
- エラーフレーム
- エラーカウンタ
- ノードのエラー状態
どのCANコントローラもエラーを検出し、エラーフレームとエラーノードカウンタをトリガーして反応することができます。エラーフレームは、連続する6つのドミナントビットまたはリセッシブビットによって区別されます。このようなシーケンスは、通常の送信ルールと矛盾しているため、他のノードに検出されてしまいます。エラーフレームを送信するノードは、バスがリセッシブ状態にあることが検出されるまで、リセッシブビットを送信します。さらに7つのリセッシブビットを送信すると、ノードは通常のCANフレームの送信を試みることができます(図4)。
図4:(余分なビット[1]によるCRCビットエラーによる)誤送信の例で、6連続ビットエラーフレームが右端に示されています。(画像提供:Analog Devices)
エラーフレーム送信に加えて、すべてのCANノードは送信エラーカウンタと受信エラーカウンタを実装しています。エラーになるとカウントは1つ増え、メッセージの送信または受信に成功するとカウンターは1つ減ります。エラーカウンタに基づいて、ノードは「エラーアクティブ」、「エラーパッシブ」、または「バスオフ」の状態にある可能性があります。エラーアクティブ状態では、ノードはバス上で通信でき、エラーが検出されるとアクティブエラーフラグを送信します。エラーパッシブ状態では、カウンタが127を超えたときに発生します。この状態では、ノードはパッシブエラーフラグのみを送信することができます。カウンタが127以下になると、ノードは再びエラーアクティブになります。カウンタが256を超えると、ノードはバスオフ状態になり、バス上で通信できなくなります。ノードカウンタは、連続する11個のリセッシブビットを128回連続で受信した後、0にリセットすることができます。
包括的なテストの重要性
CANの通信調停とエラーメカニズムは、障害が発生したときにフィールドでシステムを稼動し続けるのに役立ちます。しかし、送受信障害を制限するようにシステムを設計することで、より高効率な運用が可能になります。いくつかの運用シナリオの下で提案されたシステムをテストすることは、設置前に弱点を特定し修正する一つの方法です。
一般的なテクニックは、ファンクションジェネレータを使用して、トランシーバのTxDピンに典型的な動作標準データフレームを送信し、エラーが発生するかどうかをチェックすることによって、選択したCANトランシーバを動作させることです。これはシングルノードにとっては実用的なテストですが、長いバスを持つマルチノードシステムがフィールドでどのような性能を発揮するかを評価するには適していません。たとえば、複雑なシステムで発生する可能性のある問題には、高周波動作中に回路のスタブによって生じる反射やその他人為的な影響があります。これらはビット間に位相のずれを生じさせる可能性があります。
CANの通信調停メカニズムは、ビットが同期している場合にのみ機能します。ビット間の位相シフトが1ビット伝送時間の2分の1を超えると、同期に失敗し、通信調停ができなくなります。
500Kbits/sから1Mbit/sで動作するCAN2.0の旧来のシステムでは、1ビットの伝送時間は十分に長いため、誘導される位相シフトが問題になることはほとんどありません。しかし、CAN-FDはスループット速度が速いため、ビット伝送時間が短くなり、位相のずれがすぐに大きくなります。
このような課題は、単に単一ノードをテストするのではなく、エンドシステム全体を複製し、さまざまな動作条件下でテストすることによって設計を検証することで、軽減する必要があります。これは基本的なテストよりも時間とコストがかかりますが、現場での失敗や結果に満足のいかないお客様に対処するよりははるかに低コストに抑えるこうとができます。
実施例
位相シフトテストが実際にどのように機能するかを確認するために、候補に挙がったサプライヤのCANトランシーバとCANコントローラで設計されたシステムを考えてみましょう。このノードは20メートル(m)のバスに接続されており、CAN2.0やCAN-FDコンポーネントなど、他の多くのノードもサポートしています。テストの目的上、ノードは13.3Mbits/sで送信しており、これは75ナノ秒(ns)のビット幅に相当します。同期と通信調停用にコントローラは、TxD幅の80%でサンプリングするため、立ち上がり時間、立ち下がり時間、ループ遅延を含め、最小RxDビット幅は0.8 x 75 = 60nsが必要です。テストされたコンポーネントはTxDビット幅が48nsとなり、結果としてシステム障害になります。
同じテストを、Analog Devicesの MAX33012EASA+ という別のCANトランシーバでも実施しました。このテストでは、TxDビット幅は75ns、RxDビット幅は72nsで測定されました。72nsのビット幅は、80%のサンプル時間要件である60nsを上回っているため、システムの同期と調停は十分に動作します。13.3Mbits/sというスループットは、ターゲットアプリケーションで使用されるシステムよりも高速であり、想定されるすべての動作条件にわたって動作するのに十分な堅牢性を実証しています(図5)。
図5:MAX33012EASA+ CANトランシーバを20mバス上で13.3Mbits/s(TxDビット幅75ns)で動作させたテストの結果。RxDのビット幅は72nsであり、コントローラの80%のサンプル時間(60ns)を満足し、同期を達成するのに十分です。(画像提供:Analog Devices)
内蔵されたトラブルシューティング機能
障害検出とレポート機能を組み込んだコンポーネントを使用することで、テストサイクルをより簡単に、より低コストで行うことができます。MAX33012EASA+ CANトランシーバのようなコンポーネントは、プロトタイプや量産前のCAN回路の問題を迅速に浮き彫りにするだけでなく、ライブ制御システムの展開において迅速なトラブルシューティングが重要なアプリケーションにも役立ちます。
MAX33012EASA+は、過電流、過電圧、伝送障害などの一般的な障害に対応する+5V CANトランシーバです。最大±65ボルトまでの障害保護機能が備えられており、過電圧保護が必要なアプリケーションに適しています。コモンモード電圧範囲は±25ボルトで、重機のあるようなノイズの多い環境でも通信が可能です。CANHおよびCANL出力は短絡電流制限されており、ドライバ出力をハイインピーダンス状態にするサーマルシャットダウン回路によって過度の電力消費から保護されています。
MAX33012EASA+は最大5Mbits/sで動作し、電磁妨害(EMI)を最小限に抑え、シールドされていないツイストケーブルまたはパラレルケーブルを使用できるように、スルーレートを8ボルト/マイクロ秒(μs)に下げるオプションを備えています(図6)。
図6:マルチモードシステムにおけるMAX33012EASA+アプリケーション回路。この例では、組み込みCANコントローラは、マイクロコントローラに内蔵されています。(画像提供:Analog Devices)
CANトランシーバの障害検出は、電源投入時にTxDをLowからHighに100回遷移させることで有効になります(使用するプロトコルによって異なりますが、通常1~2個の標準データフレームが使用されます)。障害検出が有効になった後、障害が検出されると、フォルトコードを送信するためにTxDのLowからHighへの遷移がさらに16回必要となります。最後に、障害を取り除くにはさらに10パルスが必要になります。
障害検出が有効になってから10サイクル連続してRxDの信号がTxDと一致しない場合、伝送障害検出がトリガされます。これはたとえば、終端抵抗が2つともない場合や、CANHとグランド、CANLとVDDのどちらかがショートしている場合などに起こり、差動信号が仕様に適合しなくなります。
Analog Devicesは、MAX33012Eの機能を実証するために、評価ボードCANbus Interface Arduino Platform Evaluation Board MAX33012Eを提供しています。このデバイスはArduinoシールドのフォームファクタを備えていますが、スタンドアロンの評価ボードとしても使用できます。
まとめ
マルチモードCAN2.0およびCAN-FD混合システムの信頼性の高いフィールドオペレーションを保証するためには、設計全体を徹底的にテストすることが重要です。しかし、単純な単一ノードのテストでは、技術の通信調停メカニズムを破壊する同期の問題により、後にフィールド障害を引き起こす可能性のある障害を検出するには不十分です。このような混合マルチノードCANシステムの初期テストとその後のフィールドトラブルシューティングは、障害検出とレポート機能を内蔵したCANトランシーバを選択することで容易に行うことができます。
免責条項:このウェブサイト上で、さまざまな著者および/またはフォーラム参加者によって表明された意見、信念や視点は、DigiKeyの意見、信念および視点またはDigiKeyの公式な方針を必ずしも反映するものではありません。

