処理中

しばらくお待ちください...

設定

設定

出願の表示

1. WO2020130136 - 車載中継装置、中継方法及びプログラム

Document

明 細 書

発明の名称 車載中継装置、中継方法及びプログラム

技術分野

0001  

背景技術

0002   0003  

先行技術文献

特許文献

0004  

発明の概要

0005  

図面の簡単な説明

0006  

発明を実施するための形態

0007   0008   0009   0010   0011   0012   0013   0014   0015   0016   0017   0018   0019   0020   0021   0022   0023   0024   0025   0026   0027   0028   0029   0030   0031   0032   0033   0034   0035   0036   0037   0038   0039   0040   0041   0042   0043   0044   0045   0046   0047   0048   0049   0050   0051   0052   0053   0054   0055   0056   0057   0058   0059   0060   0061   0062   0063   0064   0065  

符号の説明

0066  

請求の範囲

1   2   3   4   5   6  

図面

1   2   3   4  

明 細 書

発明の名称 : 車載中継装置、中継方法及びプログラム

技術分野

[0001]
 本発明は、車載中継装置、中継方法及びプログラムに関する。
 本出願は、2018年12月21日出願の日本出願第2018-239787号に基づく優先権を主張し、前記日本出願に記載された全ての記載内容を援用するものである。

背景技術

[0002]
 従来、車両には複数の車載ECU(Electronic Control Unit)が搭載され、これらがCAN(Controller Area Network)などのネットワークを介して接続されている。これら複数の車載ECUは、ネットワークを介して情報を交換しながら処理を進めている。近年では車内ネットワークの規模が大きくなる傾向があり、この場合には複数の小規模なネットワーク(セグメント)がゲートウェイなどの中継装置に接続される。中継装置は、異なるセグメントに接続される車載ECU間にて通信されるメッセージの中継を行う(例えば特許文献1参照)。
[0003]
 特許文献1の中継装置は、受信したCANメッセージ(フレーム)に含まれるCRCを判定するためのCRC判定回路を備えている。中継装置のCRC判定回路は、受信フレームに含まれるCRCに基づき、受信フレームに転送エラーがあるか否かを判定する。

先行技術文献

特許文献

[0004]
特許文献1 : 特開2007-166302号公報

発明の概要

[0005]
 本開示の一態様に係る車載中継装置は、車両に搭載され、複数の通信部を有し、前記複数の通信部間にてCANメッセージを中継する車載中継装置であって、前記通信部から受信した前記CANメッセージに含まれるCANIDに基づき、中継先となる通信部を特定して中継制御する制御部を備え、前記制御部は、前記中継先となる通信部を特定した後、受信した前記CANメッセージに含まれるCRCと、受信した前記CANメッセージに含まれるデータに基づき導出した導出CRCとが同じ場合、受信した前記CANメッセージを中継し、受信した前記CANメッセージに含まれるCRCと、前記導出CRCとが異なる場合、受信した前記CANメッセージを中継しない。

図面の簡単な説明

[0006]
[図1] 実施形態1に係る車載中継装置を例示する模式図である。
[図2] 車載中継装置の内部構成を例示するブロック図である。
[図3] CANメッセージのフレームの一態様を例示する説明図である。
[図4] 車載中継装置の制御部の処理を例示するフローチャートである。

発明を実施するための形態

[0007]
[本開示が解決しようとする課題]
 特許文献1の中継装置は、受信したCANメッセージのCRCを判定した後、いずれかのセグメントに出力して中継するまでの間の中継装置内での処理において、当該CANメッセージ内のデータが破損又は化けてしまった場合の対応について考慮されていないという問題点がある。
[0008]
 本開示の目的は、CANメッセージを受信した後、中継するまでの間における中継装置内の処理において、当該CANメッセージ内のデータが破損等した場合に適切に対応することができる車載中継装置等を提供する。
[0009]
[本開示の効果]
 本開示の一態様によれば、CANメッセージを受信した後、中継するまでの間における中継装置内の処理において、当該CANメッセージ内のデータが破損等した場合に適切に対応することができる車載中継装置等を提供することができる。
[0010]
[本開示の実施形態の説明]
 最初に本開示の実施態様を列挙して説明する。また、以下に記載する実施形態の少なくとも一部を任意に組み合わせてもよい。
[0011]
(1)本開示の一態様に係る車載中継装置は、車両に搭載され、複数の通信部を有し、前記複数の通信部間にてCANメッセージを中継する車載中継装置であって、前記通信部から受信した前記CANメッセージに含まれるCANIDに基づき、中継先となる通信部を特定して中継制御する制御部を備え、前記制御部は、前記中継先となる通信部を特定した後、受信した前記CANメッセージに含まれるCRCと、受信した前記CANメッセージに含まれるデータに基づき導出した導出CRCとが同じ場合、受信した前記CANメッセージを中継し、受信した前記CANメッセージに含まれるCRCと、前記導出CRCとが異なる場合、受信した前記CANメッセージを中継しない。
[0012]
 本態様にあたっては、CANメッセージを受信した後、車載中継装置が行う処理として、CANメッセージに含まれるCANIDを参照し、当該CANIDに基づき、中継先となる通信部を特定する処理がある。当該処理は、FPGA又はマイコン等によって構成される制御部が行うところ、マイコン等の内部処理において、CANメッセージに含まれるデータが、ビット反転等により破損又は化ける場合がある。しかしながら、制御部は、マイコン等の内部処理である中継先となる通信部を特定した後、すなわち当該内部処理を行った後にCANメッセージに含まれるデータに基づき導出した導出CRC(送信時導出CRC)と、受信したCANメッセージに含まれるCRC(受信CRC)とが異なる場合は、当該CANメッセージを中継しない。従って、車載中継装置のマイコン等による内部処理において、受信したCANメッセージ内のデータが破損等した場合であっても、適切に対応することができる。
[0013]
(2)本開示の一態様に係る車載中継装置は、前記制御部は、前記中継先となる通信部を特定する前に、受信した前記CANメッセージに含まれるCRCと、受信した前記CANメッセージに含まれるデータに基づき導出した第2導出CRCとが同じ場合、前記中継先となる通信部を特定し、受信した前記CANメッセージに含まれるCRCと、前記第2導出CRCとが異なる場合、受信した前記CANメッセージを中継しない。
[0014]
 本態様にあたっては、車載中継装置の制御部は、中継先となる通信部を特定する前後、すなわち受信時及び送信時(中継時)の2回にて、受信した前記CANメッセージに含まれるCRC(受信CRC)と、CANメッセージに含まれるデータに基づき導出した導出CRC(送信時導出CRC)及び第2導出CRC(受信時導出CRC)との同異に基づき、中継の要否を制御する。従って、CANメッセージに含まれるデータが、伝送途中等の受信時以前に破損又は化けてしまっている場合であっても、適切に対応することができる。
[0015]
(3)本開示の一態様に係る車載中継装置は、前記制御部は、前記中継先となる通信部を特定した後、受信した前記CANメッセージに含まれるCRCと、前記導出CRCとが異なる場合、前記CANメッセージ内に含まれるデータは自装置内の処理においてデータ化け又は破損したと判定する。
[0016]
 本態様にあたっては、制御部は、中継先となる通信部を特定する前後(受信時及び送信時(中継時))の2回にて受信した前記CANメッセージに含まれるCRCと、CANメッセージに含まれるデータに基づき導出したCRCとの同異に基づき、中継の要否を制御する。中継先となる通信部を特定する前、すなわち受信時にこれらCRCが同一の場合、制御部は中継先の通信部を特定し中継を行うところ、当該通信部を特定した後にこれらCRCが異なる場合は、CANメッセージ内に含まれるデータは自装置内の処理においてデータ化け又は破損したものとなる。従って、これらCRCが異なる場合において、CANメッセージ内に含まれるデータのデータ化け又は破損が、受信時以前に発生したものであるか、又は受信後の車載中継装置の内部の処理において発生したものであるかの切り分けを行うことができる。
[0017]
(4)本開示の一態様に係る車載中継装置は、前記制御部は、受信した前記CANメッセージに含まれるCRCと、前記導出CRCとが、所定回数以上異なることが発生した場合、自装置が故障したと判定する。
[0018]
 本態様にあたっては、制御部は、前記中継先となる通信部を特定した後、受信した前記CANメッセージに含まれるCRCと、前記導出CRCとが、所定回数以上異なることが発生した場合、自装置が故障したと判定するため、自装置の故障判定を効率的に行うことができる。
[0019]
(5)本開示の一態様に係るプログラムは、コンピュータに、CANメッセージを受信し、受信した前記CANメッセージに含まれるCANIDに基づき、中継先となる通信部を特定し、前記中継先となる通信部を特定した後、受信した前記CANメッセージに含まれるデータに基づき導出CRCを導出し、受信した前記CANメッセージに含まれるCRCと、導出した前記導出CRCとが同じ場合、受信した前記CANメッセージを前記中継先となる通信部から中継し、受信した前記CANメッセージに含まれるCRCと、導出した前記導出CRCとが異なる場合、受信した前記CANメッセージを中継しない処理を実行させる。
[0020]
 本態様にあたっては、コンピュータを車載中継装置として動作させることができる。
[0021]
(6)本開示の一態様に係る中継方法は、CANメッセージを受信し、受信した前記CANメッセージに含まれるCANIDに基づき、中継先となる通信部を特定し、前記中継先となる通信部を特定した後、受信した前記CANメッセージに含まれるデータに基づき導出CRCを導出し、受信した前記CANメッセージに含まれるCRCと、導出した前記導出CRCとが同じ場合、受信した前記CANメッセージを前記中継先となる通信部から中継し、受信した前記CANメッセージに含まれるCRCと、導出した前記導出CRCとが異なる場合、受信した前記CANメッセージを中継しない。
[0022]
 本態様にあたっては、CANメッセージを受信した後、中継するまでの間に車載中継装置内の処理において、当該CANメッセージ内のデータが破損等した場合に適切に対応することができる中継方法を提供することができる。
[0023]
[本開示の実施形態の詳細]
 本開示をその実施の形態を示す図面に基づいて具体的に説明する。本開示の実施形態に係る車載中継装置2を、以下に図面を参照しつつ説明する。なお、本開示はこれらの例示に限定されるものではなく、請求の範囲によって示され、請求の範囲と均等の意味及び範囲内でのすべての変更が含まれることが意図される。
[0024]
(実施形態1)
 図1は、実施形態1に係る車載中継装置2を例示する模式図である。図2は、車載中継装置2の内部構成を例示するブロック図である。車両1には、車載中継装置2及び、車載中継装置2と通信可能に接続された複数の車載ECU3(Electronic Control Unit)が搭載されている。車載中継装置2及び車載ECU3は、CAN(Control Area Network/登録商標)等の通信プロトコルに対応したCANバス等による通信線41によって通信可能に接続されている。これらCANバス等による通信線41によって、車内LAN4が構成される。
[0025]
 車載中継装置2は、これら複数の通信線41夫々に接続される車載ECU3間において送受信されるCANメッセージを中継する。又、車載中継装置2は、無線機能を有する車外通信装置(図示せず)を介して車外ネットワークに接続されたプログラム提供装置(図示せず)から取得したプログラム又はデータを、車両1に搭載されている車載ECU3に送信するものであってもよい。
[0026]
 車載中継装置2は、制御部20、記憶部21、CAN通信部23及び入出力I/F24を含む。記憶部21、CAN通信部23及び入出力I/F24は、内部バス25を介して制御部20と通信可能に接続されている。車載中継装置2は、例えば、制御系の車載ECU3、安全系の車載ECU3及び、ボディ系の車載ECU3等の複数の系統の通信線41(CANバス/CANケーブル)によるセグメントを統括し、これらセグメント間での車載ECU3同士の通信を中継するゲートウェイ(中継器)である。又は、車載中継装置2は、車両1全体をコントロールするボディECUの一機能部として構成されるものであってもよい。
[0027]
 記憶部21は、RAM(Random Access Memory)等の揮発性のメモリ素子又は、ROM(Read Only Memory)、EEPROM(Electrically Erasable Programmable ROM)若しくはフラッシュメモリ等の不揮発性のメモリ素子により構成してあり、制御プログラム及び処理時に参照するデータがあらかじめ記憶してある。記憶部21に記憶された制御プログラムは、車載中継装置2が読み取り可能な記録媒体22から読み出された制御プログラムを記憶したものであってもよい。また、図示しない通信網に接続されている図示しない外部コンピュータから制御プログラムをダウンロードし、記憶部21に記憶させたものであってもよい。記憶部21には、車両1に搭載される全ての車載ECU3の構成情報及び中継処理を行うにあたり用いる経路情報(ルーティングテーブル)が記憶される。
[0028]
 当該経路情報(ルーティングテーブル)は、例えばCANメッセージに含まれるCAN-ID(CANID/CANIDentifier)の番号(メッセージ識別子)と、当該CAN-IDの番号を含むCANメッセージの中継先となるCAN通信部23のチャネル番号(物理ポート番号)とを関連付けた対応表形式(テーブル形式)で定義される情報である。
[0029]
 CAN通信部23は、例えば、CAN(Control Area Network)の通信プロトコルを用いた入出力インターフェイス、すなわちCANトランシーバである。CANトランシーバ(CAN通信部23)は、CANバス(通信線41)上にて伝送されるCANメッセージに対応するものであり、ハイ側及びロー側の2本の配線により構成されるCANバス(通信線41)上の差動電圧の電位差による波形を受信し、受信した波形を1と0のビット列で表される信号に復号し、内部バス25を介して制御部20に出力する。制御部20は、CAN通信部23を介して車内LAN4に接続されている車載ECU3又は他の中継装置等の車載機器と相互に通信する。CAN通信部23は、複数個(図面上では3つ)設けられており、CAN通信部23夫々に、車内LAN4を構成する通信線41が接続されている。このようにCAN通信部23を複数個設けることにより、車内LAN4を複数個のセグメントに分け、各セグメントに車載ECU夫々を、当該車載ECUの機能(制御系機能、安全系機能、ボディ系機能)に応じて接続する。
[0030]
 制御部20は、CPU(Central Processing Unit)又はMPU(Micro Processing Unit)等を含む例えばマイクロコンピュータにより構成してあり、記憶部21に予め記憶された制御プログラム及びデータを読み出して実行することにより、種々の制御処理及び演算処理等を行うようにしてある。又は、制御部20は、FPGA(Field Programmable Gate Array)又はASIC(Application Specific IC)により構成されるものであってもよい。又は、制御部20は、FPGA又はASICと、マイクロコンピュータとの組み合わせによって構成されるものであってもよい。
[0031]
 制御部20は、通信線41夫々に接続されている車載ECU3から送信されるCANメッセージを受信(取得)、又は当該車載ECU3に対しCANメッセージを送信(出力)するものであり、例えばCANコントローラとして機能する。CANコントローラは、ビットスタッフィング、通信調停、エラーハンドリング及びCRCチェックを行う。CRCチェックとは、受信したCANメッセージに含まれるデータに基づき演算して導出したCRCと、後述するCRCフィールドに格納されているCRCとの整合性を確認するものであり、当該CRCフィールドに格納されているCRCの値が、導出したCRCの値と同じか否かを確認する処理である。
[0032]
 CANコントローラとして機能する制御部20は、CANメッセージを受信時、CRCチェックを行い、CRCフィールドに格納されているCRCの値が、導出したCRCの値と異なる場合、CRCエラーを検出する。CRCエラーを検出した場合、CANコントローラとして機能する制御部20は、ACKデリミタの後からエラーフラグを出力する。CANコントローラとして機能する制御部20は、CANメッセージを中継等する際の送信時においても、CRCチェックを行う。すなわち、制御部20は、CANメッセージの中継処理を行うにあたり、受信時及び送信時の2回において、CRCチェックを行う。詳細は、フローチャートの説明において詳述する。
[0033]
 制御部20は、受信したCANメッセージ内に含まれるCAN-IDを参照し、参照したCAN-IDの番号(メッセージ識別子)及び記憶部21に記憶してある経路情報(ルーティングテーブル)に基づいて送信先(中継先)となるセグメントに対応するCAN通信部23を特定する。そして、制御部20は、特定したCAN通信部23から、当該受信したCANメッセージを送信することにより、該CANメッセージを中継するCANゲートウェイとして機能する。上述のごとく、制御部20は、CANコントローラ及びCANゲートウェイとして機能するものであり、受信したCANメッセージを中継する中継部に相当する。
[0034]
 入出力I/F24は、車載中継装置2と例えばシリアル通信するための通信インターフェイスである。入出力I/F24を介して、車載中継装置2には、表示装置5がシリアルケーブル等のハーネスにより通信可能に接続されている。
[0035]
 表示装置5は、例えばカーナビゲーションのディスプレイ等のHMI(Human Machine Interface)装置である。表示装置5には、車載中継装置2の制御部20から入出力I/F24を介して出力されたデータ又は情報が表示される。
[0036]
 車載中継装置2は、上述のごとく、CANメッセージの送受信時において2回のCRCチェックを行い、当該2回のCRCチェックの結果に基づく情報を表示装置5に送信し、表示装置5に当該情報を表示させるものであってもよい。表示装置5と車載中継装置2との接続形態は、入出力I/F24等による接続形態に限定されず、表示装置5と車載中継装置2とは、車内LAN4を介した接続形態であってもよい。
[0037]
 図3は、CANメッセージのフレームの一態様を例示する説明図である。CANは、ISO11898等により規定されている通信プロトコルであり、送受信されるCANメッセージ(フレーム)のフレームタイプは、データフレーム、リモートフレーム、エラーフレーム及びオーバーロードフレームに分類される。図3おいては、これらフレームタイプにおいて、データフレームの一態様を例示する。CANメッセージのデータフレームは、CAN-ID、DLC、DATA(データ)及びCRCの4つのフィールドに分類される。
[0038]
 CAN-IDフィールドには、CANメッセージを識別し、CANメッセージの優先順位を示す(決定)するためのメッセージ識別子(CAN-IDの番号)が格納される。メッセージ識別子は、CAN-ID又はアービトレーションIDと称され、例えば11bitのデータで表される。車載中継装置2及び車載ECU3は、受信したCANメッセージのCAN-IDフィールドに格納されているメッセージ識別子(CAN-ID)を抽出(参照)し、当該メッセージ識別子に基づいてCANメッセージに対する処理の要否を判定する。
[0039]
 DLCフィールドには、データ長コードを示す情報が格納されるものであり、DATAフィールド(データフィールド)に格納されるデータのバイト数を示す。DATAフィールドには、8yteまでのコンテンツデータが格納される。
[0040]
 CRCフィールドには、CRCの値となる巡回冗長検査コード及びリセッシブデリミタビットが格納される。当該CRCは、DATAフィールドに格納されるコンテンツデータ等がビット反転した場合等のエラー検出を行うためのCRCチェックに用いられる。なお、データフレームのCANメッセージには、上記フィールド以外にSOF(Start Of Frame)、IDE(Identifier Extension)及びACKが含まれるが、これについての説明は省略する。
[0041]
 図4は、車載中継装置2の制御部20の処理を例示するフローチャートである。車載中継装置2の制御部20は、車両1が起動状態又は停止状態において、常時的に以下の処理を行う。
[0042]
 制御部20は、CANメッセージを受信する(S10)。制御部20は、CAN通信部23を介してCANメッセージを受信(取得)する。
[0043]
 制御部20は、CRCチェックを行い、データは正しいか否かの判定を行う(S11)。上述のごとく、制御部20は、CANコントローラとして機能し、受信したCANメッセージに対し、CRCチェック(受信時CRCチェック)を行う。制御部20は、受信したCANメッセージに含まれるデータに基づきCANの規格で定められた演算方式によって演算し、当該演算結果としてCRCを導出する。以降、CANメッセージの受信時に導出したCRCを、受信時導出CRCとする。制御部20は、受信時に導出した受信時導出CRC及び、受信したCANメッセージのCRCフィールドに格納されているCRC(以降、受信CRCとする)を、記憶部21に記憶する。
[0044]
 制御部20は、受信時導出CRCと受信CRCとを比較し、夫々の値が同じであるか否かを判定する。夫々の値が同じである場合、CANメッセージに含まれるデータは正しいと判定する。夫々の値が同じでない場合、CANメッセージに含まれるデータは正しくない、すなわち誤っていると判定する。夫々の値が同じでない場合は、CANメッセージのデータフィールド等に格納されているデータ、又はCRCフィールドに格納されているデータ(受信CRCの値)のいずれかが、送信エラー、受信エラー又は伝送時のビット反転等により、誤ったデータ(データ化け又は破損)となっている場合である。従って、CANコントローラとして機能する制御部20は、受信時導出CRC及び受信CRCの夫々の値が同じでない場合、CANメッセージに含まれるデータは誤っている又は、当該CANメッセージを正常に受信できなかったと判定する。
[0045]
 データが正しくない場合(S11:NO)、制御部20は、エラーフラグを出力する(S111)。データが正しくない場合、すなわちCANメッセージに含まれるデータが誤っており当該CANメッセージを正常に受信できなかった場合、制御部20は、CRCエラーを検出し、ACKデリミタの後からエラーフラグを出力する。制御部20は、エラーフラグを出力した後、当該CANメッセージを送信(中継)することなく破棄する。
[0046]
 データが正しい場合(S11:YES)、制御部20は、中継するセグメント(CAN通信部23)を特定する(S12)。データが正しい場合、すなわちCANメッセージを正常に受信した場合、制御部20は、CAN-IDフィールドに格納されている番号(メッセージ識別子)を抽出し、記憶部21に記憶している経路情報に基づいて、中継先となるセグメント、すなわちCANメッセージを送信するためのCAN通信部23を特定する。中継先となるCAN通信部23を特定することにより、制御部20はCANゲートウェイとして機能する。
[0047]
 制御部20は、CRCチェックを行い、データは正しいか否かの判定を行う(S13)。制御部20は、S12で特定したCAN通信部23からCANメッセージを送信して当該CANメッセージの中継処理を行うにあたり、当該送信の前処理として、再度CRCチェック(送信時CRCチェック)を行い、送信するCANメッセージのデータが正しいか否かの判定を行う。
[0048]
 制御部20は、S11の処理と同様に、送信するCANメッセージに含まれるデータに基づきCANの規格で定められた演算方式によって演算し、当該演算結果としてCRCを導出する。以降、CANメッセージの送信時に導出したCRCを、送信時導出CRCとする。制御部20は、送信時導出CRCと、受信時導出CRC又は受信CRCとを比較する。S13の処理は、S11の処理にて受信時導出CRC及び受信CRCが同じ値である場合、行われるものである。従って、S13の処理を行うにあたり、受信時導出CRC及び受信CRCの夫々の値が同じ値であることが担保(保証)されている。制御部20は、送信時導出CRCの値と、受信時導出CRC又は受信CRCのいずれかの値とを比較し、これら値における同異を判定することにより、送信するCANメッセージに含まれるデータが正しいか否かを判定することができる。これら値夫々が同じ値である場合、制御部20は、送信するCANメッセージに含まれるデータは正しいと判定する。これら値夫々が異なる値である場合、制御部20は、送信するCANメッセージに含まれるデータは正しくない、すなわち当該データにおいてデータ化け又は破損が発生していると判定する。
[0049]
 データが正しい場合(S13:YES)、制御部20は、CANメッセージを送信し、中継処理を実行する(S14)。データが正しい場合、すなわち送信時に導出した送信時導出CRCの値と、受信時導出CRC又は受信CRCの値とが同じ場合、制御部20は、S12で特定したCAN通信部23からCANメッセージを送信することにより、当該CANメッセージの中継処理を行う。制御部20は、S13の処理における送信時CRCチェックの結果、データが正しいと判定した場合、自装置は正常であると判定するものであってもよい。
[0050]
 制御部20は、S11からS14までの処理を行うにあたり、受信したCANメッセージのCRCフィールドを削除することなく、受信CRCが格納されているCRCフィールドを維持して、これら処理を行うものであってもよい。受信したCANメッセージを中継するにあたり、受信したCANメッセージのCRCフィールドを維持することにより、当該CANメッセージに対するデータ加工に伴う処理数を低減させることができる。
[0051]
 制御部20は、S11の処理の後、受信したCANメッセージのCRCフィールドを削除し、S14の処理、すなわち当該CANメッセージを送信する際の準備処理として、導出した送信時導出CRCを格納したCRCフィールドを付与した後、CANメッセージを送信するものであってもよい。CRCチェックを行った後、CRCフィールドを削除することにより、例えば、中継先となるCAN通信部23を特定する処理等を行うにあたり、制御部20が取り扱うデータ容量を低減させ、制御部20の計算負荷を低減させることができる。
[0052]
 データが正しくない場合(S13:NO)、制御部20は、CANメッセージを破棄する(S15)。データが正しくない場合、すなわち送信時に導出した送信時導出CRCの値と、受信時導出CRC又は受信CRCの値とが異なる場合、制御部20は、S10で受信したCANメッセージを中継(送信)することなく、当該CANメッセージを破棄する。S13の処理おいて、データが正しくないと判定された場合は、制御部20は、CANメッセージを正常に受信したにもかかわらず、これ以降の制御部20における内部処理、すなわち車載中継装置2内(自装置内)の処理において、当該CANメッセージのデータに誤り(データ化け又は破損)が発生したと判定する。
[0053]
 上述のごとく、制御部20はCANコントローラ及びCANゲートウェイとして機能する。これら機能を発揮するにあたり、CANコントローラはFPGAにより構成され、CANゲートウェイはマイクロコンピュータによって構成される場合がある。従って、FPGA及びマイクロコンピュータ間での通信において、CANメッセージのデータがビット反転等することも想定される。又は、FPGA又はマイクロコンピュータに含まれる記憶部21において、記憶されたデータがビット反転等することも想定される。
[0054]
 このようにS11の処理の以降、S13の処理が行われるまでに間にて、制御部20における内部処理において、CANメッセージのデータに誤り(データ化け又は破損)が発生した場合、制御部20は、当該データは誤っていると判定し、S10で受信したCANメッセージを中継することなく、これを破棄する。制御部20における内部処理においてCANメッセージのデータに誤り(データ化け又は破損)が発生した場合、CANメッセージを中継することなく、破棄することにより、誤ったデータが含まれるCANメッセージの中継(送信)を防止し、中継処理の信頼性を向上させることができる。
[0055]
 制御部20は、エラーカウントを増加する(S16)。制御部20は、例えば初期値を0として予め記憶部21に記憶しているエラーカウントを、一つずつ増加させるようなインクリメント処理を行う。制御部20は、当該インクリメント処理を行うことにより、S13の処理においてデータが正しくない場合が発生した回数を、エラーカウントの値として演算し、当該エラーカウントの値を記憶部21に記憶する。
[0056]
 制御部20は、エラーカウントは所定値以下かを判定する(S17)。制御部20は、記憶部21に予め記憶してある所定値を参照し、S16の処理でインクリメント処理等により値を一つ増加させたエラーカウントの値と、当該所定値とを比較し、エラーカウントの値は、所定値以下か否かを判定する。
[0057]
 所定値以下の場合(S17:YES)、制御部20は、自装置は正常と判定する(S18)。所定値以下でない場合(S17:NO)、すなわちエラーカウントの値が所定値よりも大きい場合、制御部20は、自装置は故障と判定する(S171)。データに誤りを発生させるビット反転は、制御部20等の半導体デバイスを含む電子機器に、例えば宇宙線が衝突して生じる場合もある。従って、ビット反転が発生した場合は、常に制御部20(車載中継装置2)が故障したと判定することが困難なところ、エラーカウントと所定値とを比較することにより、車載中継装置2の故障判定の精度を向上させることができる。
[0058]
 エラーカウントと所定値とを比較するにあたり、制御部20は、例えば1分等の所定期間におけるエラーカウントの増加数に基づき、所定値と比較するものであってもよい。
[0059]
 所定値は、車載中継装置2に要求される中継処理の信頼性に基づき決定されるものであってもよい。又、所定値を1とすることにより、一回でもS13の処理においてデータが正しくないと判定された場合は、車載中継装置2の制御部20は、故障したと判定するものであってもよい。
[0060]
 制御部20は、S18又はS171の判定結果に関する情報を、記憶部21に記憶する、又は表示装置5に出力し、当該情報を表示装置5に表示させるものであってもよい。
[0061]
制御部20は、S111,S14,S18又はS171を実行後、当該フローチャートによる処理を終了する。又は、制御部20は、S111,S14,S18又はS171を実行後、再度S10を実行すべくループ処理を行うものであってもよい。
[0062]
 制御部20を構成するマイコン等の内部処理において、CANメッセージに含まれるデータが、ビット反転等により破損又は化ける場合がある。これに対し、制御部20は、マイコン等の内部処理として、例えば中継先となるCAN通信部23を特定した後、すなわち当該内部処理を行った後に、CANメッセージに含まれるデータに基づき導出した送信時導出CRCと、受信したCANメッセージに含まれる受信CRCとが異なる場合は、当該CANメッセージを中継しない。従って、中継装置における内部処理において、受信したCANメッセージ内のデータが破損等した場合であっても、適切に対応することができる。
[0063]
 制御部20は、受信時及び送信時(中継時)の2回において、受信した前記CANメッセージに含まれる受信CRCと、CANメッセージに含まれるデータに基づき導出したCRC(受信時導出CRC、送信時導出CRC)との同異に基づき、中継の要否を制御する。受信CRCと送信時導出CRCとが異なる場合、CANメッセージ内に含まれるデータは制御部20内の処理においてデータ化け又は破損したものとなる。従って、これらCRCが異なる場合において、CANメッセージ内に含まれるデータのデータ化け又は破損が、受信時以前に発生したものであるか、又は受信後の車載中継装置2の内部(制御部20内)の処理において発生したものであるかの切り分けを行うことができる。
[0064]
 本実施形態において、制御部20は、受信時及び送信時(中継時)の2回において、受信CRCと、CANメッセージに含まれるデータに基づき導出したCRC(受信時導出CRC、送信時導出CRC)との同異に基づき、中継の要否を制御するとしたがこれに限定されない。制御部20は、送信時導出CRCのみを導出し、導出した送信時導出CRC及び受信CRCの同異に基づき、中継の要否を制御するものであってもよい。送信時導出CRCのみを導出し、導出した送信時導出CRC及び受信CRCの同異に基づき、中継の要否を制御するものであっても、制御部20の内部処理においてデータの破損等が発生したCANメッセージが中継されることを防止することができる。又、受信時導出CRCの導出を不要とすることにより、制御部20の計算負荷を低減させることができる。
[0065]
 今回開示された実施形態はすべての点で例示であって、制限的なものではないと考えられるべきである。本発明の範囲は、上記した意味ではなく、請求の範囲によって示され、請求の範囲と均等の意味及び範囲内でのすべての変更が含まれることが意図される。

符号の説明

[0066]
 1 車両
 2 車載中継装置
 20 制御部
 21 記憶部
 22 記録媒体
 23 CAN通信部(通信部)
 24 入出力I/F
25 内部バス
 3 車載ECU
 4 車内LAN
 41 通信線
 5 表示装置

請求の範囲

[請求項1]
 車両に搭載され、複数の通信部を有し、前記複数の通信部間にてCANメッセージを中継する車載中継装置であって、
 前記通信部から受信した前記CANメッセージに含まれるCANIDに基づき、中継先となる通信部を特定して中継制御する制御部を備え、
 前記制御部は、
 前記中継先となる通信部を特定した後、受信した前記CANメッセージに含まれるCRCと、受信した前記CANメッセージに含まれるデータに基づき導出した導出CRCとが同じ場合、受信した前記CANメッセージを中継し、
 受信した前記CANメッセージに含まれるCRCと、前記導出CRCとが異なる場合、受信した前記CANメッセージを中継しない
 車載中継装置。
[請求項2]
 前記制御部は、前記中継先となる通信部を特定する前に、
 受信した前記CANメッセージに含まれるCRCと、受信した前記CANメッセージに含まれるデータに基づき導出した第2導出CRCとが同じ場合、前記中継先となる通信部を特定し、
 受信した前記CANメッセージに含まれるCRCと、前記第2導出CRCとが異なる場合、受信した前記CANメッセージを中継しない
 請求項1に記載の車載中継装置。
[請求項3]
 前記制御部は、前記中継先となる通信部を特定した後、受信した前記CANメッセージに含まれるCRCと、前記導出CRCとが異なる場合、前記CANメッセージ内に含まれるデータは自装置内の処理においてデータ化け又は破損したと判定する
 請求項2に記載の車載中継装置。
[請求項4]
 前記制御部は、受信した前記CANメッセージに含まれるCRCと、前記導出CRCとが、所定回数以上異なることが発生した場合、自装置が故障したと判定する
 請求項3に記載の車載中継装置。
[請求項5]
 コンピュータに、
 CANメッセージを受信し、
 受信した前記CANメッセージに含まれるCANIDに基づき、中継先となる通信部を特定し、
 前記中継先となる通信部を特定した後、受信した前記CANメッセージに含まれるデータに基づき導出CRCを導出し、
 受信した前記CANメッセージに含まれるCRCと、導出した前記導出CRCとが同じ場合、受信した前記CANメッセージを前記中継先となる通信部から中継し、
 受信した前記CANメッセージに含まれるCRCと、導出した前記導出CRCとが異なる場合、受信した前記CANメッセージを中継しない
 処理を実行させるプログラム。
[請求項6]
 CANメッセージを受信し、
 受信した前記CANメッセージに含まれるCANIDに基づき、中継先となる通信部を特定し、
 前記中継先となる通信部を特定した後、受信した前記CANメッセージに含まれるデータに基づき導出CRCを導出し、
 受信した前記CANメッセージに含まれるCRCと、導出した前記導出CRCとが同じ場合、受信した前記CANメッセージを前記中継先となる通信部から中継し、
 受信した前記CANメッセージに含まれるCRCと、導出した前記導出CRCとが異なる場合、受信した前記CANメッセージを中継しない
 中継方法。

図面

[ 図 1]

[ 図 2]

[ 図 3]

[ 図 4]