エラーの追跡

バスの妨害を回避

ネットワーク全体のデータ整合性を保証するため、CANネットワークの各ノードはいずれかのCANメッセージが障害として解釈されると終了させる権利を持っている。 これは正しいCANメッセージを誤って障害ありと解釈するCANノードにも同様に適用される。伝送媒体への妨害を防ぐのに、CANプロトコルはCANノードが時々発生する障害と永続的な障害を区別出来るエラーの追跡を規定している。

TECとREC

その結果として、各CANコントローラーはTEC(Transmit Error Counter:送信エラーカウンター)REC(Receive Error Counter:受信エラーカウンター)を持っている。 データフレームまたはリモートフレームで送信が成功した場合、関連するエラーカウンターが減算される(TEC=TEC-1 、 REC=REC-1)。 エラーフラグの検出とそれ以降の送信は特定のルールに従い関連エラーカウンターを加算する。 送信機には次のルールが適用される:TEC=TEC+8。 エラー検出の受信機は最初に1単位でRECを加算する(REC=REC+1)。 受信機が原因のエラーの場合:REC=REC+8。

エラー・アクティブ

特定のエラーカウンター値に応じて、CANコントローラーはエラー状態の切り替えを処理する。 始動後、CANコントローラーは正常な状態のエラーアクティブと仮定する。 この状態では、CANコントローラーはエラー検出後に6ビット長のドミナントビット(アクティブエラーフラグ)を送信する。 制限を超過した場合(TEC>127、REC>127)、CANコントローラーは“エラーパッシブ”状態に切り替わる。

エラー・パッシブ

エラーパッシブ状態のCANコントローラーは6ビット長のレセシブビットを送信する事で検出されたエラーを示す事だけが出来る。 これはエラーを検出した受信機をグローバル検出エラーから防ぐ。 さらに2つの連続するデータフレームまたはリモートフレームを送信する時に“エラーパッシブ”状態のCANコントローラーは“サスペンド送信時間”(8ビット長)だけ待機しなければならない。

バスオフ

CANコントローラーが異常、またはエラーが極端に蓄積した場合、状態遷移はバスオフ状態になる。 CANコントローラーはCANバスから切断される。 バスオフ状態はホストの介入(128×11ビットの待機時間が必須)またはハードウェアリセットのみで終了させることが出来る。


最終更新日時: 2019年 05月 7日(Tuesday) 10:46