(57)【要約】【課題】ＣＡＮメッセージを受信した後、中継するまでの間における中継装置内の処理において、当該ＣＡＮメッセージ内のデータが破損等した場合に適切に対応することができる車載中継装置等を提供する。【解決手段】車載中継装置は、車両に搭載され、複数の通信部を有し、前記複数の通信部間にてＣＡＮメッセージを中継する車載中継装置であって、前記通信部から受信した前記ＣＡＮメッセージに含まれるＣＡＮＩＤに基づき、中継先となる通信部を特定して中継制御する制御部を備え、前記制御部は、前記中継先となる通信部を特定した後、受信した前記ＣＡＮメッセージに含まれるＣＲＣと、受信した前記ＣＡＮメッセージに含まれるデータに基づき導出した導出ＣＲＣとが同じ場合、受信した前記ＣＡＮメッセージを中継し、受信した前記ＣＡＮメッセージに含まれるＣＲＣと、前記導出ＣＲＣとが異なる場合、受信した前記ＣＡＮメッセージを中継しない。【選択図】図２
2020102762.tif 000002
【特許請求の範囲】
【請求項１】
車両に搭載され、複数の通信部を有し、前記複数の通信部間にてＣＡＮメッセージを中継する車載中継装置であって、
前記通信部から受信した前記ＣＡＮメッセージに含まれるＣＡＮＩＤに基づき、中継先となる通信部を特定して中継制御する制御部を備え、
前記制御部は、
前記中継先となる通信部を特定した後、受信した前記ＣＡＮメッセージに含まれるＣＲＣと、受信した前記ＣＡＮメッセージに含まれるデータに基づき導出した導出ＣＲＣとが同じ場合、受信した前記ＣＡＮメッセージを中継し、
受信した前記ＣＡＮメッセージに含まれるＣＲＣと、前記導出ＣＲＣとが異なる場合、受信した前記ＣＡＮメッセージを中継しない
車載中継装置。
【請求項２】
前記制御部は、前記中継先となる通信部を特定する前に、
受信した前記ＣＡＮメッセージに含まれるＣＲＣと、受信した前記ＣＡＮメッセージに含まれるデータに基づき導出した第２導出ＣＲＣとが同じ場合、前記中継先となる通信部を特定し、
受信した前記ＣＡＮメッセージに含まれるＣＲＣと、前記第２導出ＣＲＣとが異なる場合、受信した前記ＣＡＮメッセージを中継しない
請求項１に記載の車載中継装置。
【請求項３】
前記制御部は、前記中継先となる通信部を特定した後、受信した前記ＣＡＮメッセージに含まれるＣＲＣと、前記導出ＣＲＣとが異なる場合、前記ＣＡＮメッセージ内に含まれるデータは自装置内の処理においてデータ化け又は破損したと判定する
請求項２に記載の車載中継装置。
【請求項４】
前記制御部は、受信した前記ＣＡＮメッセージに含まれるＣＲＣと、前記導出ＣＲＣとが、所定回数以上異なることが発生した場合、自装置が故障したと判定する
請求項３に記載の車載中継装置。
【請求項５】
コンピュータに、
ＣＡＮメッセージを受信し、
受信した前記ＣＡＮメッセージに含まれるＣＡＮＩＤに基づき、中継先となる通信部を特定し、
前記中継先となる通信部を特定した後、受信した前記ＣＡＮメッセージに含まれるデータに基づき導出ＣＲＣを導出し、
受信した前記ＣＡＮメッセージに含まれるＣＲＣと、導出した前記導出ＣＲＣとが同じ場合、受信した前記ＣＡＮメッセージを前記中継先となる通信部から中継し、
受信した前記ＣＡＮメッセージに含まれるＣＲＣと、導出した前記導出ＣＲＣとが異なる場合、受信した前記ＣＡＮメッセージを中継しない
処理を実行させるプログラム。
【請求項６】
ＣＡＮメッセージを受信し、
受信した前記ＣＡＮメッセージに含まれるＣＡＮＩＤに基づき、中継先となる通信部を特定し、
前記中継先となる通信部を特定した後、受信した前記ＣＡＮメッセージに含まれるデータに基づき導出ＣＲＣを導出し、
受信した前記ＣＡＮメッセージに含まれるＣＲＣと、導出した前記導出ＣＲＣとが同じ場合、受信した前記ＣＡＮメッセージを前記中継先となる通信部から中継し、
受信した前記ＣＡＮメッセージに含まれるＣＲＣと、導出した前記導出ＣＲＣとが異なる場合、受信した前記ＣＡＮメッセージを中継しない
中継方法。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、車載中継装置、中継方法及びプログラムに関する。
【背景技術】
【０００２】
従来、車両には複数の車載ＥＣＵ（Electronic Control Unit）が搭載され、これらがＣＡＮ（Controller Area Network）などのネットワークを介して接続されている。これら複数の車載ＥＣＵは、ネットワークを介して情報を交換しながら処理を進めている。近年では車内ネットワークの規模が大きくなる傾向があり、この場合には複数の小規模なネットワーク（セグメント）がゲートウェイなどの中継装置に接続される。中継装置は、異なるセグメントに接続される車載ＥＣＵ間にて通信されるメッセージの中継を行う（例えば特許文献１参照）。
【０００３】
特許文献１の中継装置は、受信したＣＡＮメッセージ（フレーム）に含まれるＣＲＣを判定するためのＣＲＣ判定回路を備えている。中継装置のＣＲＣ判定回路は、受信フレームに含まれるＣＲＣに基づき、受信フレームに転送エラーがあるか否かを判定する。
【先行技術文献】
【特許文献】
【０００４】
【特許文献１】特開２００７−１６６３０２号公報
【発明の概要】
【発明が解決しようとする課題】
【０００５】
しかしながら、特許文献１の中継装置は、受信したＣＡＮメッセージのＣＲＣを判定した後、いずれかのセグメントに出力して中継するまでの間の中継装置内での処理において、当該ＣＡＮメッセージ内のデータが破損又は化けてしまった場合の対応について考慮されていないという問題点がある。
【０００６】
本発明の目的は、ＣＡＮメッセージを受信した後、中継するまでの間における中継装置内の処理において、当該ＣＡＮメッセージ内のデータが破損等した場合に適切に対応することができる車載中継装置等を提供する。
【課題を解決するための手段】
【０００７】
本開示の一態様に係る車載中継装置は、車両に搭載され、複数の通信部を有し、前記複数の通信部間にてＣＡＮメッセージを中継する車載中継装置であって、前記通信部から受信した前記ＣＡＮメッセージに含まれるＣＡＮＩＤに基づき、中継先となる通信部を特定して中継制御する制御部を備え、前記制御部は、前記中継先となる通信部を特定した後、受信した前記ＣＡＮメッセージに含まれるＣＲＣと、受信した前記ＣＡＮメッセージに含まれるデータに基づき導出した導出ＣＲＣとが同じ場合、受信した前記ＣＡＮメッセージを中継し、受信した前記ＣＡＮメッセージに含まれるＣＲＣと、前記導出ＣＲＣとが異なる場合、受信した前記ＣＡＮメッセージを中継しない。
【発明の効果】
【０００８】
本開示の一態様によれば、ＣＡＮメッセージを受信した後、中継するまでの間における中継装置内の処理において、当該ＣＡＮメッセージ内のデータが破損等した場合に適切に対応することができる車載中継装置等を提供することができる。
【図面の簡単な説明】
【０００９】
【図１】実施形態１に係る車載中継装置を例示する模式図である。
【図２】車載中継装置の内部構成を例示するブロック図である。
【図３】ＣＡＮメッセージのフレームの一態様を例示する説明図である。
【図４】車載中継装置の制御部の処理を例示するフローチャートである。
【発明を実施するための形態】
【００１０】
［本発明の実施形態の説明］
最初に本開示の実施態様を列挙して説明する。また、以下に記載する実施形態の少なくとも一部を任意に組み合わせてもよい。
【００１１】
（１）本開示の一態様に係る車載中継装置は、車両に搭載され、複数の通信部を有し、前記複数の通信部間にてＣＡＮメッセージを中継する車載中継装置であって、前記通信部から受信した前記ＣＡＮメッセージに含まれるＣＡＮＩＤに基づき、中継先となる通信部を特定して中継制御する制御部を備え、前記制御部は、前記中継先となる通信部を特定した後、受信した前記ＣＡＮメッセージに含まれるＣＲＣと、受信した前記ＣＡＮメッセージに含まれるデータに基づき導出した導出ＣＲＣとが同じ場合、受信した前記ＣＡＮメッセージを中継し、受信した前記ＣＡＮメッセージに含まれるＣＲＣと、前記導出ＣＲＣとが異なる場合、受信した前記ＣＡＮメッセージを中継しない。
【００１２】
本態様にあたっては、ＣＡＮメッセージを受信した後、車載中継装置が行う処理として、ＣＡＮメッセージに含まれるＣＡＮＩＤを参照し、当該ＣＡＮＩＤに基づき、中継先となる通信部を特定する処理がある。当該処理は、ＦＰＧＡ又はマイコン等によって構成される制御部が行うところ、マイコン等の内部処理において、ＣＡＮメッセージに含まれるデータが、ビット反転等により破損又は化ける場合がある。しかしながら、制御部は、マイコン等の内部処理である中継先となる通信部を特定した後、すなわち当該内部処理を行った後にＣＡＮメッセージに含まれるデータに基づき導出した導出ＣＲＣ（送信時導出ＣＲＣ）と、受信したＣＡＮメッセージに含まれるＣＲＣ（受信ＣＲＣ）とが異なる場合は、当該ＣＡＮメッセージを中継しない。従って、車載中継装置のマイコン等による内部処理において、受信したＣＡＮメッセージ内のデータが破損等した場合であっても、適切に対応することができる。
【００１３】
（２）本開示の一態様に係る車載中継装置は、前記制御部は、前記中継先となる通信部を特定する前に、受信した前記ＣＡＮメッセージに含まれるＣＲＣと、受信した前記ＣＡＮメッセージに含まれるデータに基づき導出した第２導出ＣＲＣとが同じ場合、前記中継先となる通信部を特定し、受信した前記ＣＡＮメッセージに含まれるＣＲＣと、前記第２導出ＣＲＣとが異なる場合、受信した前記ＣＡＮメッセージを中継しない。
【００１４】
本態様にあたっては、車載中継装置の制御部は、中継先となる通信部を特定する前後、すなわち受信時及び送信時（中継時）の２回にて、受信した前記ＣＡＮメッセージに含まれるＣＲＣ（受信ＣＲＣ）と、ＣＡＮメッセージに含まれるデータに基づき導出した導出ＣＲＣ（送信時導出ＣＲＣ）及び第２導出ＣＲＣ（受信時導出ＣＲＣ）との同異に基づき、中継の要否を制御する。従って、ＣＡＮメッセージに含まれるデータが、伝送途中等の受信時以前に破損又は化けてしまっている場合であっても、適切に対応することができる。
【００１５】
（３）本開示の一態様に係る車載中継装置は、前記制御部は、前記中継先となる通信部を特定した後、受信した前記ＣＡＮメッセージに含まれるＣＲＣと、前記導出ＣＲＣとが異なる場合、前記ＣＡＮメッセージ内に含まれるデータは自装置内の処理においてデータ化け又は破損したと判定する。
【００１６】
本態様にあたっては、制御部は、中継先となる通信部を特定する前後（受信時及び送信時（中継時））の２回にて受信した前記ＣＡＮメッセージに含まれるＣＲＣと、ＣＡＮメッセージに含まれるデータに基づき導出したＣＲＣとの同異に基づき、中継の要否を制御する。中継先となる通信部を特定する前、すなわち受信時にこれらＣＲＣが同一の場合、制御部は中継先の通信部を特定し中継を行うところ、当該通信部を特定した後にこれらＣＲＣが異なる場合は、ＣＡＮメッセージ内に含まれるデータは自装置内の処理においてデータ化け又は破損したものとなる。従って、これらＣＲＣが異なる場合において、ＣＡＮメッセージ内に含まれるデータのデータ化け又は破損が、受信時以前に発生したものであるか、又は受信後の車載中継装置の内部の処理において発生したものであるかの切り分けを行うことができる。
【００１７】
（４）本開示の一態様に係る車載中継装置は、前記制御部は、受信した前記ＣＡＮメッセージに含まれるＣＲＣと、前記導出ＣＲＣとが、所定回数以上異なることが発生した場合、自装置が故障したと判定する。
【００１８】
本態様にあたっては、制御部は、前記中継先となる通信部を特定した後、受信した前記ＣＡＮメッセージに含まれるＣＲＣと、前記導出ＣＲＣとが、所定回数以上異なることが発生した場合、自装置が故障したと判定するため、自装置の故障判定を効率的に行うことができる。
【００１９】
（５）本開示の一態様に係るプログラムは、コンピュータに、ＣＡＮメッセージを受信し、受信した前記ＣＡＮメッセージに含まれるＣＡＮＩＤに基づき、中継先となる通信部を特定し、前記中継先となる通信部を特定した後、受信した前記ＣＡＮメッセージに含まれるデータに基づき導出ＣＲＣを導出し、受信した前記ＣＡＮメッセージに含まれるＣＲＣと、導出した前記導出ＣＲＣとが同じ場合、受信した前記ＣＡＮメッセージを前記中継先となる通信部から中継し、受信した前記ＣＡＮメッセージに含まれるＣＲＣと、導出した前記導出ＣＲＣとが異なる場合、受信した前記ＣＡＮメッセージを中継しない処理を実行させる。
【００２０】
本態様にあたっては、コンピュータを車載中継装置として動作させることができる。
【００２１】
（６）本開示の一態様に係る中継方法は、ＣＡＮメッセージを受信し、受信した前記ＣＡＮメッセージに含まれるＣＡＮＩＤに基づき、中継先となる通信部を特定し、前記中継先となる通信部を特定した後、受信した前記ＣＡＮメッセージに含まれるデータに基づき導出ＣＲＣを導出し、受信した前記ＣＡＮメッセージに含まれるＣＲＣと、導出した前記導出ＣＲＣとが同じ場合、受信した前記ＣＡＮメッセージを前記中継先となる通信部から中継し、受信した前記ＣＡＮメッセージに含まれるＣＲＣと、導出した前記導出ＣＲＣとが異なる場合、受信した前記ＣＡＮメッセージを中継しない。
【００２２】
本態様にあたっては、ＣＡＮメッセージを受信した後、中継するまでの間に車載中継装置内の処理において、当該ＣＡＮメッセージ内のデータが破損等した場合に適切に対応することができる中継方法を提供することができる。
【００２３】
[本発明の実施形態の詳細]
本発明をその実施の形態を示す図面に基づいて具体的に説明する。本開示の実施形態に係る車載中継装置２を、以下に図面を参照しつつ説明する。なお、本発明はこれらの例示に限定されるものではなく、特許請求の範囲によって示され、特許請求の範囲と均等の意味及び範囲内でのすべての変更が含まれることが意図される。
【００２４】
（実施形態１）
図１は、実施形態１に係る車載中継装置２を例示する模式図である。図２は、車載中継装置２の内部構成を例示するブロック図である。車両１には、車載中継装置２及び、車載中継装置２と通信可能に接続された複数の車載ＥＣＵ３（Electronic Control Unit）が搭載されている。車載中継装置２及び車載ＥＣＵ３は、ＣＡＮ（Control Area Network／登録商標）等の通信プロトコルに対応したＣＡＮバス等による通信線４１によって通信可能に接続されている。これらＣＡＮバス等による通信線４１によって、車内ＬＡＮ４が構成される。
【００２５】
車載中継装置２は、これら複数の通信線４１夫々に接続される車載ＥＣＵ３間において送受信されるＣＡＮメッセージを中継する。又、車載中継装置２は、無線機能を有する車外通信装置（図示せず）を介して車外ネットワークに接続されたプログラム提供装置（図示せず）から取得したプログラム又はデータを、車両１に搭載されている車載ＥＣＵ３に送信するものであってもよい。
【００２６】
車載中継装置２は、制御部２０、記憶部２１、ＣＡＮ通信部２３及び入出力Ｉ／Ｆ２４を含む。記憶部２１、ＣＡＮ通信部２３及び入出力Ｉ／Ｆ２４は、内部バス２５を介して制御部２０と通信可能に接続されている。車載中継装置２は、例えば、制御系の車載ＥＣＵ３、安全系の車載ＥＣＵ３及び、ボディ系の車載ＥＣＵ３等の複数の系統の通信線４１（ＣＡＮバス／ＣＡＮケーブル）によるセグメントを統括し、これらセグメント間での車載ＥＣＵ３同士の通信を中継するゲートウェイ（中継器）である。又は、車載中継装置２は、車両１全体をコントロールするボディＥＣＵの一機能部として構成されるものであってもよい。
【００２７】
記憶部２１は、ＲＡＭ（Random Access Memory）等の揮発性のメモリ素子又は、ＲＯＭ（Read Only Memory）、ＥＥＰＲＯＭ（Electrically Erasable Programmable ROM）若しくはフラッシュメモリ等の不揮発性のメモリ素子により構成してあり、制御プログラム及び処理時に参照するデータがあらかじめ記憶してある。記憶部２１に記憶された制御プログラムは、車載中継装置２が読み取り可能な記録媒体２２から読み出された制御プログラムを記憶したものであってもよい。また、図示しない通信網に接続されている図示しない外部コンピュータから制御プログラムをダウンロードし、記憶部２１に記憶させたものであってもよい。記憶部２１には、車両１に搭載される全ての車載ＥＣＵ３の構成情報及び中継処理を行うにあたり用いる経路情報（ルーティングテーブル）が記憶される。
【００２８】
当該経路情報（ルーティングテーブル）は、例えばＣＡＮメッセージに含まれるＣＡＮ−ＩＤ（ＣＡＮＩＤ／CANIDentifier）の番号（メッセージ識別子）と、当該ＣＡＮ−ＩＤの番号を含むＣＡＮメッセージの中継先となるＣＡＮ通信部２３のチャネル番号（物理ポート番号）とを関連付けた対応表形式（テーブル形式）で定義される情報である。
【００２９】
ＣＡＮ通信部２３は、例えば、ＣＡＮ（Control Area Network）の通信プロトコルを用いた入出力インターフェイス、すなわちＣＡＮトランシーバである。ＣＡＮトランシーバ（ＣＡＮ通信部２３）は、ＣＡＮバス（通信線４１）上にて伝送されるＣＡＮメッセージに対応するものであり、ハイ側及びロー側の２本の配線により構成されるＣＡＮバス（通信線４１）上の差動電圧の電位差による波形を受信し、受信した波形を１と０のビット列で表される信号に復号し、内部バス２５を介して制御部２０に出力する。制御部２０は、ＣＡＮ通信部２３を介して車内ＬＡＮ４に接続されている車載ＥＣＵ３又は他の中継装置等の車載機器と相互に通信する。ＣＡＮ通信部２３は、複数個（図面上では３つ）設けられており、ＣＡＮ通信部２３夫々に、車内ＬＡＮ４を構成する通信線４１が接続されている。このようにＣＡＮ通信部２３を複数個設けることにより、車内ＬＡＮ４を複数個のセグメントに分け、各セグメントに車載ＥＣＵ夫々を、当該車載ＥＣＵの機能（制御系機能、安全系機能、ボディ系機能）に応じて接続する。
【００３０】
制御部２０は、ＣＰＵ（Central Processing Unit）又はＭＰＵ（Micro Processing Unit）等を含む例えばマイクロコンピュータにより構成してあり、記憶部２１に予め記憶された制御プログラム及びデータを読み出して実行することにより、種々の制御処理及び演算処理等を行うようにしてある。又は、制御部２０は、ＦＰＧＡ（Field Programmable Gate Array）又はＡＳＣＩ（Application Specific IC）により構成されるものであってもよい。又は、制御部２０は、ＦＰＧＡ又はＡＳＣＩと、マイクロコンピュータとの組み合わせによって構成されるものであってもよい。
【００３１】
制御部２０は、通信線４１夫々に接続されている車載ＥＣＵ３から送信されるＣＡＮメッセージを受信（取得）、又は当該車載ＥＣＵ３に対しＣＡＮメッセージを送信（出力）するものであり、例えばＣＡＮコントローラとして機能する。ＣＡＮコントローラは、ビットスタッフィング、通信調停、エラーハンドリング及びＣＲＣチェックを行う。ＣＲＣチェックとは、受信したＣＡＮメッセージに含まれるデータに基づき演算して導出したＣＲＣと、後述するＣＲＣフィールドに格納されているＣＲＣとの整合性を確認するものであり、当該ＣＲＣフィールドに格納されているＣＲＣの値が、導出したＣＲＣの値と同じか否かを確認する処理である。
【００３２】
ＣＡＮコントローラとして機能する制御部２０は、ＣＡＮメッセージを受信時、ＣＲＣチェックを行い、ＣＲＣフィールドに格納されているＣＲＣの値が、導出したＣＲＣの値と異なる場合、ＣＲＣエラーを検出する。ＣＲＣエラーを検出した場合、ＣＡＮコントローラとして機能する制御部２０は、ＡＣＫデリミタの後からエラーフラグを出力する。ＣＡＮコントローラとして機能する制御部２０は、ＣＡＮメッセージを中継等する際の送信時においても、ＣＲＣチェックを行う。すなわち、制御部２０は、ＣＡＮメッセージの中継処理を行うにあたり、受信時及び送信時の２回において、ＣＲＣチェックを行う。詳細は、フローチャートの説明において詳述する。
【００３３】
制御部２０は、受信したＣＡＮメッセージ内に含まれるＣＡＮ−ＩＤを参照し、参照したＣＡＮ−ＩＤの番号（メッセージ識別子）及び記憶部２１に記憶してある経路情報（ルーティングテーブル）に基づいて送信先（中継先）となるセグメントに対応するＣＡＮ通信部２３を特定する。そして、制御部２０は、特定したＣＡＮ通信部２３から、当該受信したＣＡＮメッセージを送信することにより、該ＣＡＮメッセージを中継するＣＡＮゲートウェイとして機能する。上述のごとく、制御部２０は、ＣＡＮコントローラ及びＣＡＮゲートウェイとして機能するものであり、受信したＣＡＮメッセージを中継する中継部に相当する。
【００３４】
入出力Ｉ／Ｆ２４は、車載中継装置２と例えばシリアル通信するための通信インターフェイスである。入出力Ｉ／Ｆ２４を介して、車載中継装置２には、表示装置５がシリアルケーブル等のハーネスにより通信可能に接続されている。
【００３５】
表示装置５は、例えばカーナビゲーションのディスプレイ等のＨＭＩ（Human Machine Interface）装置である。表示装置５には、車載中継装置２の制御部２０から入出力Ｉ／Ｆ２４を介して出力されたデータ又は情報が表示される。
【００３６】
車載中継装置２は、上述のごとく、ＣＡＮメッセージの送受信時において２回のＣＲＣチェックを行い、当該２回のＣＲＣチェックの結果に基づく情報を表示装置５に送信し、表示装置５に当該情報を表示させるものであってもよい。表示装置５と車載中継装置２との接続形態は、入出力Ｉ／Ｆ２４等による接続形態に限定されず、表示装置５と車載中継装置２とは、車内ＬＡＮ４を介した接続形態であってもよい。
【００３７】
図３は、ＣＡＮメッセージのフレームの一態様を例示する説明図である。ＣＡＮは、ＩＳＯ１１８９８等により規定されている通信プロトコルであり、送受信されるＣＡＮメッセージ（フレーム）のフレームタイプは、データフレーム、リモートフレーム、エラーフレーム及びオーバーロードフレームに分類される。図３おいては、これらフレームタイプにおいて、データフレームの一態様を例示する。ＣＡＮメッセージのデータフレームは、ＣＡＮ−ＩＤ、ＤＬＣ、ＤＡＴＡ（データ）及びＣＲＣの４つのフィールドに分類される。
【００３８】
ＣＡＮ−ＩＤフィールドには、ＣＡＮメッセージを識別し、ＣＡＮメッセージの優先順位を示す（決定）するためのメッセージ識別子（ＣＡＮ−ＩＤの番号）が格納される。メッセージ識別子は、ＣＡＮ−ＩＤ又はアービトレーションＩＤと称され、例えば１１ｂｉｔのデータで表される。車載中継装置２及び車載ＥＣＵ３は、受信したＣＡＮメッセージのＣＡＮ−ＩＤフィールドに格納されているメッセージ識別子（ＣＡＮ−ＩＤ）を抽出（参照）し、当該メッセージ識別子に基づいてＣＡＮメッセージに対する処理の要否を判定する。
【００３９】
ＤＬＣフィールドには、データ長コードを示す情報が格納されるものであり、ＤＡＴＡフィールド（データフィールド）に格納されるデータのバイト数を示す。ＤＡＴＡフィールドには、８ｙｔｅまでのコンテンツデータが格納される。
【００４０】
ＣＲＣフィールドには、ＣＲＣの値となる巡回冗長検査コード及びリセッシブデリミタビットが格納される。当該ＣＲＣは、ＤＡＴＡフィールドに格納されるコンテンツデータ等がビット反転した場合等のエラー検出を行うためのＣＲＣチェックに用いられる。なお、データフレームのＣＡＮメッセージには、上記フィールド以外にＳＯＦ（Start Of Frame）、ＩＤＥ（Identifier Extension）及びＡＣＫが含まれるが、これについての説明は省略する。
【００４１】
図４は、車載中継装置２の制御部２０の処理を例示するフローチャートである。車載中継装置２の制御部２０は、車両１が起動状態又は停止状態において、常時的に以下の処理を行う。
【００４２】
制御部２０は、ＣＡＮメッセージを受信する（Ｓ１０）。制御部２０は、ＣＡＮ通信部２３を介してＣＡＮメッセージを受信（取得）する。
【００４３】
制御部２０は、ＣＲＣチェックを行い、データは正しいか否かの判定を行う（Ｓ１１）。上述のごとく、制御部２０は、ＣＡＮコントローラとして機能し、受信したＣＡＮメッセージに対し、ＣＲＣチェック（受信時ＣＲＣチェック）を行う。制御部２０は、受信したＣＡＮメッセージに含まれるデータに基づきＣＡＮの規格で定められた演算方式によって演算し、当該演算結果としてＣＲＣを導出する。以降、ＣＡＮメッセージの受信時に導出したＣＲＣを、受信時導出ＣＲＣとする。制御部２０は、受信時に導出した受信時導出ＣＲＣ及び、受信したＣＡＮメッセージのＣＲＣフィールドに格納されているＣＲＣ（以降、受信ＣＲＣとする）を、記憶部２１に記憶する。
【００４４】
制御部２０は、受信時導出ＣＲＣと受信ＣＲＣとを比較し、夫々の値が同じであるか否かを判定する。夫々の値が同じである場合、ＣＡＮメッセージに含まれるデータは正しいと判定する。夫々の値が同じでない場合、ＣＡＮメッセージに含まれるデータは正しくない、すなわち誤っていると判定する。夫々の値が同じでない場合は、ＣＡＮメッセージのデータフィールド等に格納されているデータ、又はＣＲＣフィールドに格納されているデータ（受信ＣＲＣの値）のいずれかが、送信エラー、受信エラー又は伝送時のビット反転等により、誤ったデータ（データ化け又は破損）となっている場合である。従って、ＣＡＮコントローラとして機能する制御部２０は、受信時導出ＣＲＣ及び受信ＣＲＣの夫々の値が同じでない場合、ＣＡＮメッセージに含まれるデータは誤っている又は、当該ＣＡＮメッセージを正常に受信できなかったと判定する。
【００４５】
データが正しくない場合（Ｓ１１：ＮＯ）、制御部２０は、エラーフラグを出力する（Ｓ１１１）。データが正しくない場合、すなわちＣＡＮメッセージに含まれるデータが誤っており当該ＣＡＮメッセージを正常に受信できなかった場合、制御部２０は、ＣＲＣエラーを検出し、ＡＣＫデリミタの後からエラーフラグを出力する。制御部２０は、エラーフラグを出力した後、当該ＣＡＮメッセージを送信（中継）することなく破棄する。
【００４６】
データが正しい場合（Ｓ１１：ＹＥＳ）、制御部２０は、中継するセグメント（ＣＡＮ通信部２３）を特定する（Ｓ１２）。データが正しい場合、すなわちＣＡＮメッセージを正常に受信した場合、制御部２０は、ＣＡＮ−ＩＤフィールドに格納されている番号（メッセージ識別子）を抽出し、記憶部２１に記憶している経路情報に基づいて、中継先となるセグメント、すなわちＣＡＮメッセージを送信するためのＣＡＮ通信部２３を特定する。中継先となるＣＡＮ通信部２３を特定することにより、制御部２０はＣＡＮゲートウェイとして機能する。
【００４７】
制御部２０は、ＣＲＣチェックを行い、データは正しいか否かの判定を行う（Ｓ１３）。制御部２０は、Ｓ１２で特定したＣＡＮ通信部２３からＣＡＮメッセージを送信して当該ＣＡＮメッセージの中継処理を行うにあたり、当該送信の前処理として、再度ＣＲＣチェック（送信時ＣＲＣチェック）を行い、送信するＣＡＮメッセージのデータが正しいか否かの判定を行う。
【００４８】
制御部２０は、Ｓ１１の処理と同様に、送信するＣＡＮメッセージに含まれるデータに基づきＣＡＮの規格で定められた演算方式によって演算し、当該演算結果としてＣＲＣを導出する。以降、ＣＡＮメッセージの送信時に導出したＣＲＣを、送信時導出ＣＲＣとする。制御部２０は、送信時導出ＣＲＣと、受信時導出ＣＲＣ又は受信ＣＲＣとを比較する。Ｓ１３の処理は、Ｓ１１の処理にて受信時導出ＣＲＣ及び受信ＣＲＣが同じ値である場合、行われるものである。従って、Ｓ１３の処理を行うにあたり、受信時導出ＣＲＣ及び受信ＣＲＣの夫々の値が同じ値であることが担保（保証）されている。制御部２０は、送信時導出ＣＲＣの値と、受信時導出ＣＲＣ又は受信ＣＲＣのいずれかの値とを比較し、これら値における同異を判定することにより、送信するＣＡＮメッセージに含まれるデータが正しいか否かを判定することができる。これら値夫々が同じ値である場合、制御部２０は、送信するＣＡＮメッセージに含まれるデータは正しいと判定する。これら値夫々が異なる値である場合、制御部２０は、送信するＣＡＮメッセージに含まれるデータは正しくない、すなわち当該データにおいてデータ化け又は破損が発生していると判定する。
【００４９】
データが正しい場合（Ｓ１３：ＹＥＳ）、制御部２０は、ＣＡＮメッセージを送信し、中継処理を実行する（Ｓ１４）。データが正しい場合、すなわち送信時に導出した送信時導出ＣＲＣの値と、受信時導出ＣＲＣ又は受信ＣＲＣの値とが同じ場合、制御部２０は、Ｓ１２で特定したＣＡＮ通信部２３からＣＡＮメッセージを送信することにより、当該ＣＡＮメッセージの中継処理を行う。制御部２０は、Ｓ１３の処理における送信時ＣＲＣチェックの結果、データが正しいと判定した場合、自装置は正常であると判定するものであってもよい。
【００５０】
制御部２０は、Ｓ１１からＳ１４までの処理を行うにあたり、受信したＣＡＮメッセージのＣＲＣフィールドを削除することなく、受信ＣＲＣが格納されているＣＲＣフィールドを維持して、これら処理を行うものであってもよい。受信したＣＡＮメッセージを中継するにあたり、受信したＣＡＮメッセージのＣＲＣフィールドを維持することにより、当該ＣＡＮメッセージに対するデータ加工に伴う処理数を低減させることができる。
【００５１】
制御部２０は、Ｓ１１の処理の後、受信したＣＡＮメッセージのＣＲＣフィールドを削除し、Ｓ１４の処理、すなわち当該ＣＡＮメッセージを送信する際の準備処理として、導出した送信時導出ＣＲＣを格納したＣＲＣフィールドを付与した後、ＣＡＮメッセージを送信するものであってもよい。ＣＲＣチェックを行った後、ＣＲＣフィールドを削除することにより、例えば、中継先となるＣＡＮ通信部２３を特定する処理等を行うにあたり、制御部２０が取り扱うデータ容量を低減させ、制御部２０の計算負荷を低減させることができる。
【００５２】
データが正しくない場合（Ｓ１３：ＮＯ）、制御部２０は、ＣＡＮメッセージを破棄する（Ｓ１５）。データが正しくない場合、すなわち送信時に導出した送信時導出ＣＲＣの値と、受信時導出ＣＲＣ又は受信ＣＲＣの値とが異なる場合、制御部２０は、Ｓ１０で受信したＣＡＮメッセージを中継（送信）することなく、当該ＣＡＮメッセージを破棄する。Ｓ１３の処理おいて、データが正しくないと判定された場合は、制御部２０は、ＣＡＮメッセージを正常に受信したにもかかわらず、これ以降の制御部２０における内部処理、すなわち車載中継装置２内（自装置内）の処理において、当該ＣＡＮメッセージのデータに誤り（データ化け又は破損）が発生したと判定する。
【００５３】
上述のごとく、制御部２０はＣＡＮコントローラ及びＣＡＮゲートウェイとして機能する。これら機能を発揮するにあたり、ＣＡＮコントローラはＦＰＧＡにより構成され、ＣＡＮゲートウェイはマイクロコンピュータによって構成される場合がある。従って、ＦＰＧＡ及びマイクロコンピュータ間での通信において、ＣＡＮメッセージのデータがビット反転等することも想定される。又は、ＦＰＧＡ又はマイクロコンピュータに含まれる記憶部２１において、記憶されたデータがビット反転等することも想定される。
【００５４】
このようにＳ１１の処理の以降、Ｓ１３の処理が行われるまでに間にて、制御部２０における内部処理において、ＣＡＮメッセージのデータに誤り（データ化け又は破損）が発生した場合、制御部２０は、当該データは誤っていると判定し、Ｓ１０で受信したＣＡＮメッセージを中継することなく、これを破棄する。制御部２０における内部処理においてＣＡＮメッセージのデータに誤り（データ化け又は破損）が発生した場合、ＣＡＮメッセージを中継することなく、破棄することにより、誤ったデータが含まれるＣＡＮメッセージの中継（送信）を防止し、中継処理の信頼性を向上させることができる。
【００５５】
制御部２０は、エラーカウントを増加する（Ｓ１６）。制御部２０は、例えば初期値を０として予め記憶部２１に記憶しているエラーカウントを、一つずつ増加させるようなインクリメント処理を行う。制御部２０は、当該インクリメント処理を行うことにより、Ｓ１３の処理においてデータが正しくない場合が発生した回数を、エラーカウントの値として演算し、当該エラーカウントの値を記憶部２１に記憶する。
【００５６】
制御部２０は、エラーカウントは所定値以下かを判定する（Ｓ１７）。制御部２０は、記憶部２１に予め記憶してある所定値を参照し、Ｓ１６の処理でインクリメント処理等により値を一つ増加させたエラーカウントの値と、当該所定値とを比較し、エラーカウントの値は、所定値以下か否かを判定する。
【００５７】
所定値以下の場合（Ｓ１７：ＹＥＳ）、制御部２０は、自装置は正常と判定する（Ｓ１８）。所定値以下でない場合（Ｓ１７：ＮＯ）、すなわちエラーカウントの値が所定値よりも大きい場合、制御部２０は、自装置は故障と判定する（Ｓ１７１）。データに誤りを発生させるビット反転は、制御部２０等の半導体デバイスを含む電子機器に、例えば宇宙線が衝突して生じる場合もある。従って、ビット反転が発生した場合は、常に制御部２０（車載中継装置２）が故障したと判定することが困難なところ、エラーカウントと所定値とを比較することにより、車載中継装置２の故障判定の精度を向上させることができる。
【００５８】
エラーカウントと所定値とを比較するにあたり、制御部２０は、例えば１分等の所定期間におけるエラーカウントの増加数に基づき、所定値と比較するものであってもよい。
【００５９】
所定値は、車載中継装置２に要求される中継処理の信頼性に基づき決定されるものであってもよい。又、所定値を１とすることにより、一回でもＳ１３の処理においてデータが正しくないと判定された場合は、車載中継装置２の制御部２０は、故障したと判定するものであってもよい。
【００６０】
制御部２０は、Ｓ１８又はＳ１７１の判定結果に関する情報を、記憶部２１に記憶する、又は表示装置５に出力し、当該情報を表示装置５に表示させるものであってもよい。
【００６１】
制御部２０は、Ｓ１１１，Ｓ１４，Ｓ１８又はＳ１７１を実行後、当該フローチャートによる処理を終了する。又は、制御部２０は、Ｓ１１１，Ｓ１４，Ｓ１８又はＳ１７１を実行後、再度Ｓ１０を実行すべくループ処理を行うものであってもよい。
【００６２】
制御部２０を構成するマイコン等の内部処理において、ＣＡＮメッセージに含まれるデータが、ビット反転等により破損又は化ける場合がある。これに対し、制御部２０は、マイコン等の内部処理として、例えば中継先となるＣＡＮ通信部２３を特定した後、すなわち当該内部処理を行った後に、ＣＡＮメッセージに含まれるデータに基づき導出した送信時導出ＣＲＣと、受信したＣＡＮメッセージに含まれる受信ＣＲＣとが異なる場合は、当該ＣＡＮメッセージを中継しない。従って、中継装置における内部処理において、受信したＣＡＮメッセージ内のデータが破損等した場合であっても、適切に対応することができる。
【００６３】
制御部２０は、受信時及び送信時（中継時）の２回において、受信した前記ＣＡＮメッセージに含まれる受信ＣＲＣと、ＣＡＮメッセージに含まれるデータに基づき導出したＣＲＣ（受信時導出ＣＲＣ、送信時導出ＣＲＣ）との同異に基づき、中継の要否を制御する。受信ＣＲＣと送信時導出ＣＲＣとが異なる場合、ＣＡＮメッセージ内に含まれるデータは制御部２０内の処理においてデータ化け又は破損したものとなる。従って、これらＣＲＣが異なる場合において、ＣＡＮメッセージ内に含まれるデータのデータ化け又は破損が、受信時以前に発生したものであるか、又は受信後の車載中継装置２の内部（制御部２０内）の処理において発生したものであるかの切り分けを行うことができる。
【００６４】
本実施形態において、制御部２０は、受信時及び送信時（中継時）の２回において、受信ＣＲＣと、ＣＡＮメッセージに含まれるデータに基づき導出したＣＲＣ（受信時導出ＣＲＣ、送信時導出ＣＲＣ）との同異に基づき、中継の要否を制御するとしたがこれに限定されない。制御部２０は、送信時導出ＣＲＣのみを導出し、導出した送信時導出ＣＲＣ及び受信ＣＲＣの同異に基づき、中継の要否を制御するものであってもよい。送信時導出ＣＲＣのみを導出し、導出した送信時導出ＣＲＣ及び受信ＣＲＣの同異に基づき、中継の要否を制御するものであっても、制御部２０の内部処理においてデータの破損等が発生したＣＡＮメッセージが中継されることを防止することができる。又、受信時導出ＣＲＣの導出を不要とすることにより、制御部２０の計算負荷を低減させることができる。
【００６５】
今回開示された実施形態はすべての点で例示であって、制限的なものではないと考えられるべきである。本発明の範囲は、上記した意味ではなく、特許請求の範囲によって示され、特許請求の範囲と均等の意味及び範囲内でのすべての変更が含まれることが意図される。
【符号の説明】
【００６６】
１  車両
２  車載中継装置
２０  制御部
２１  記憶部
２２  記録媒体
２３  ＣＡＮ通信部（通信部）
２４  入出力Ｉ／Ｆ
２５  内部バス
３  車載ＥＣＵ
４  車内ＬＡＮ
４１  通信線
５  表示装置
【図１】
2020102762.tif 000003
【図２】
2020102762.tif 000004
【図３】
2020102762.tif 000005
【図４】
2020102762.tif 000006