車載ネットワークは、オフィスネットワークに比べ格段に環境条件が厳しい。CAN は平衡伝送方式で比較的ノイズに強いが、GND は不安定で電気的にも厳しい環境だ。障害発生時も、ネットワーク全体を停止させることは危険だ。一部の障害箇所を切り離したり、縮小運転することで、可能な限り動き続けることが重要だ。CAN は伝送中に発生する様々なエラーを認識する機能と、エラー発生時の対処方法を規定している。図1 は主なエラーチェックだ。エラーを検出すると、エラーフレームを送信し、他のノードに知らせる。
自分自身が送信したデータとバスをモニター(受信)したデータを比較し、異なればビットエラーを検出する。ただし、ID(Arbitration Field)と ACK(Acknowledge)は、他のノードが書き換える可能性があるためチェックしない。
CRC Delimiter、ACK Delimiter、EOF は通常リセッシブと決められている。ドミナントを検出するとフォーマットエラーになる。
ACK 領域がドミナントにならないと ACK エラーになる。受信ノードは正しくデータを受信すると、ACK 領域をドミナントにドライブする。ACK がリセッシブからドミナントに変化しない場合は、全受信ノードが正しくデータを受信できなかったか、受信相手がバスに接続されていない場合だ。
送信した CRC 値が、受信ノードが計算した CRC 値と一致しないとCRC エラーになる。
スタッフエラーは、6個以上の連続した「0」または「1」を検出するとスタッフエラーになる。7個の連続したリセッシブを持つ EOF は、例外としてエラーとみなさない。
CAN ネットワークでは、エラーを検出するとエラーフレームを送信し、フレームを破壊することで他のノードにエラー発生を知らせる。エラーが多発するとネットワーク全体のパフォーマンスが低下し、全体の機能低下や機能停止を招きかねない。そこで、エラーを多発するノードに与えられる送信権を抑制したり、さらに状況が悪化した場合は、ネットワークから切り離す処置が段階的にとれるようになっている。
具体的には、各ノードにTEC(Transmit Error Counter:送信エラーカウンター)とREC (Receive Error Counter:受信エラーカウンタ)を持ち、エラーが発生するとカウンタを加算し、正常に通信が終了すると減算する仕組みになっている。つまり、送信カウンタと受信カウンタは、エラー発生状況により変動している。変動しているカウンタ値が、一定の閾値(127) を超えると送信を抑制し(Error Passive)、さらに悪化するとネットワークから切り離される (Bus off)。ネットワークから切り離された後も、ネットワークが正常に戻れば動作を再開することができる。エラー発生時の状態遷移は、図2 をご覧いただきたい。
エラーカウンタの増減ルールは、送信エラー(Bit Error/ACK Errorなど)が発生すると TEC (送信エラーカウンタ)に 8 加算し、受信エラーでは、CRC Error を検出すると REC(受信エ ラーカウンタ)に 8 加算し、副次的に発生するその他のエラーでは 1 加算する。送信・受信が正常に行われると、TEC REC ともに 1 減算する。
例えば、初期状態(TEC=0/Error Active モード)から、あるノードXが送信に失敗すると TEC に 8 加算し、Active Error フラグを送信する。その後、再送信を試みるが連続して15回再送信に失敗すると、TEC は 128 になる。TEC が 127 を超えると「Error Passive」モードに切り替わり、送信が抑制される。
Error Passive では、前のフレーム送信終了後 8 ビットの空き時間後に送信が可能になることで、送信権獲得に勝てず送信が抑制される。また、エラー発生時に Passive Error フラグを送信するように変わることで、他のトラフィックを破壊しなくなる。つまり、Error Passive になった ノードのエラーはほぼ無視されるようになる。さらに、再送信を繰り返し TEC が255を超えると、Bus Off になり、CAN バスから切り離される。
ノードXが送信エラーを多発しているときの他のノードの状況は次のようになる。ノードXが Active Error フラグを送信する度に、他のノードの REC は 1 加算される。ノードXが Bus Off になるまでに他のノードの REC は Error Passive の制限値(127)には到達しない。
TEC と REC の動作は、図3・図4 を参照いただきたい。
車載ネットワーク
-
4.車載ネットワーク
車載ネットワーク(1)変遷
自動車の基本的な機能(走る・曲がる・止まるなど)は、機械や油圧などの機能ごとの比較的単純な制御だった。アクセルペダルを踏めば加速し、ブレーキペダルを踏めば車が止まる。排ガス規制やエンジン高性能化の要求が強くなり、エンジン […] -
4.車載ネットワーク
車載ネットワーク(2)社会の変化と技術トレンド
社会の変化 2020年代に入り、自動車制御は大きく変わった。自動運転の進展が大きな要因だ。条件付きで自動運転を可能とする自動運転レベル3や、無人運転を可能にする自動運転レベル4が登場した(表1)。自動運転レベルの基準は米 […] -
4.車載ネットワーク
車載ネットワーク(3)CAN規格の歴史と概要
CAN 規格の歴史 CAN(Controller Area Network)は、、1983年にBosch社が開発した通信プロトコルだ。1986年に公式発表され、1987年に販売を開始した。CAN は数度に渡り規格が改定さ […] -
4.車載ネットワーク
車載ネットワーク(4)CANのマルチマスタとシングルマスタ
CAN は、複数のマスタノードが1組のバスラインに接続される「マルチマスタ」方式だ。全てのノードはバス接続され、送信データを全ノードが共有する。マルチマスタ方式は、平等にバスにアクセスでき、バスに空きがあればどのノードも […] -
4.車載ネットワーク
車載ネットワーク(5)CAN 通信手順とCSMA/CR 衝突時の調停
CAN には、データフレーム/リモートフレーム/オーバーロードフレーム/エラーフレームの4種類のフレームタイプがある。データフレームには標準フォーマットと拡張フォーマットの2種類がある。両者の違いは、識別コード(ID)の […] -
4.車載ネットワーク
車載ネットワーク(6)CAN 通信手順とフレーム構造
CAN には、データフレーム/リモートフレーム/オーバーロードフレーム/エラーフレームの4 種類のフレームタイプがある(表1)。 名称概要データフレーム通常のデータ送信フレーム(標準/拡張フォーマット)リモートフレームデ […] -
4.車載ネットワーク
車載ネットワーク(7)CAN 通信手順とエラー処理
車載ネットワークは、オフィスネットワークに比べ格段に環境条件が厳しい。CAN は平衡伝送方式で比較的ノイズに強いが、GND は不安定で電気的にも厳しい環境だ。障害発生時も、ネットワーク全体を停止させることは危険だ。一部の […] -
4.車載ネットワーク
車載ネットワーク(8)CAN ハードウェア
40年前の技術の影響 40年前に開発された CAN の仕様は、当時の技術を強く反映している。当時のマイクロプロセッサは、 8ビット処理でクロックも4MHzや8MHz 程度であった。メモリーも非常に高価で容量も4キロバイト […] -
4.車載ネットワーク
車載ネットワーク(10)LIN ハードウェア
トポロジ ネットワークに接続する通信機器を「ノード」と呼び、複数のノードを相互接続しネットワークを構成する方法を「トポロジ」と呼ぶ。車載ネットワークでは、ECU( Electronic Control Unit )がノー […] -
4.車載ネットワーク
車載ネットワーク(9)LINの規格概要
LIN規格 LIN(Local Interconnect Network)は、車載ネットワークのコストダウンを目的に、LIN コンソーシアムで策定された通信規格だ。LIN コンソーシアムは、欧州の自動車メーカや半導体メー […] -
4.車載ネットワーク
車載ネットワーク(11)LIN 通信手順
マスタタスクとスレーブタスク LIN は1つのマスタノードと複数のスレーブノードで構成され、唯一のマスタノードが、ネットワーク全体の通信を制御する方式だ。ネットワーク上での衝突や調停(Arbitration)をなくし、低 […] -
4.車載ネットワーク
車載ネットワーク(12)LINのフレーム構造
LIN フレームは、マスタタスクが送信する「ヘッダ」部と、スレーブタスクが送信する「レスポンス」部で構成される(図1)。ヘッダ部は次の5つで構成される。 (1) Break fieldフレームの区切り(13ビット以上)( […] -
4.車載ネットワーク
車載ネットワーク(13)LINの節電機能・エラー処理・発振子
節電機能 車載ネットワークでは「節電」は重要なテーマだ。限られたバッテリー電力と発電量の範囲内で動作しなければならない。LIN は限られた電力を有効に使うため、「ネットワーク管理」として Sleep と Wake Up […]