(58)【調査した分野】(Int.Cl.,DB名)
【発明の概要】
【発明が解決しようとする課題】
【0004】
ところで、一のノードから他のノードに対してデータを送信する際、他のノードが正常に当該データを受信できたか否かを一のノード側で検証することがある。
【0005】
しかしながら、上述のノードの正当性の検証のように、一のノードが、他のノードから送信される検証用データと、自己で生成する検証用データとに基づき、他のノードが正常にデータを受信できたか否かを検証する場合、検証完了までに比較的長い時間がかかってしまう可能性がある。例えば、検証対象の他のノードが複数ある場合、一のノードは、複数の他のノードの各々に対する検証を順番に行う必要があるため、検証完了までに時間がかかってしまい、一のノードで行われる他の処理に影響する可能性がある。
【0006】
そこで、上記課題に鑑み、あるノードから複数のノードに送信されるデータが複数のノードの各々で正常に受信できたか否かの検証に要する時間をより短縮することが可能な車載ネットワークシステムを提供することを目的とする。
【課題を解決するための手段】
【0007】
上記目的を達成するため、本発明の一実施形態では、
1つの第1ノードと、複数の第2ノードと、を含む車載ネットワークシステムであって、
前記第1ノードに設けられ、前記複数の第2ノードの各々に所定のデータを
一斉送信する第1送信部と、
前記第1ノードに設けられ、前記第1送信部により前記
複数の第2ノード
の各々に前記所定のデータが
一斉送信された場合に、
前記複数の第2ノード
の各々により
前記所定のデータが正常に受信されたか否かを検証するための検証用データを、
前記複数の第2ノード
の各々に
一斉送信する第2送信部と、
前記複数の第2ノードの各々に設けられ、前記第1ノードから送信される前記所定のデータを受信する第1受信部と、
前記複数の第2ノードの各々に設けられ、前記第1ノードから送信される前記検証用データを受信する第2受信部と、
前記複数の第2ノードの各々に設けられ、前記第1受信部が受信した前記所定のデータと、前記第2受信部が受信した前記検証用データとに基づき、前記第1受信部が受信した前記所定のデータが正常に受信されたか否かを検証する検証部と、
前記複数の第2ノードの各々に設けられ、前記検証部による検証結果を前記第1ノードに送信する第3送信部と、を備える、
車載ネットワークシステムが提供される。
【0008】
本実施形態によれば、第1ノードから複数の第2ノードに所定のデータが送信される際、複数の第2ノード(検証部)のそれぞれにおいて、所定のデータが正常に受信されたか否かの検証が並列して行われ、検証結果は複数の第2ノード(第3送信部)の各々から第1ノードに送信される。従って、第1ノードが検証対象となる複数の第2ノードの各々について順番に検証を行う場合と比較して、検証に要する時間をより短縮することができる。
【0010】
また、本実施形態によれば、第1ノードから複数の第2ノードの各々に同一のデータを一斉送信する場合に、複数の第2ノードの各々により同一のデータが正常に受信されたか否かの検証に要する時間をより短縮することができる。
【0011】
また、上述の実施形態において、
前記
所定のデータは、前記第1ノード及び前記複数の第2ノードの間でのメッセージ認証を行うための暗号鍵のデータであってもよい。
【0012】
本実施形態によれば、メッセージ認証を行うための暗号鍵を第1ノード及び複数の第2ノードが属する同一ネットワーク内で共有する場合に、複数の第2ノードの各々により暗号鍵のデータが正常に受信されたか否かの検証に要する時間をより短縮することができる。
【0013】
また、上述の実施形態において、
前記第1ノードは、外部のネットワークとの通信を中継するゲートウェイ装置であってもよい。
【0014】
本実施形態によれば、複数の第2ノードで検証が並列して行なわれるため、ゲートウェイ装置(第1ノード)の処理負荷が軽減され、ゲートウェイ装置及び複数の第2ノードを含むネットワーク内における通信や外部との通信への影響を抑制することができる。
【0015】
また、上述の実施形態において、
前記第1ノードは、マスタノードであり、
前記第2ノードは、スレーブノードであってもよい。
【0016】
本実施形態によれば、1つのマスタノード(第1ノード)が複数のスレーブノード(第2ノード)の動作(通信)を制御するマスタ/スレーブ方式を採用する場合に、複数のスレーブノードの各々で検証が並列して行なわれるため、マスタノードの処理負荷を抑制することができる。
【発明の効果】
【0017】
本実施の形態によれば、あるノードから複数のノードに送信されるデータが複数のノードの各々で正常に受信できたか否かの検証に要する時間をより短縮することが可能な車載ネットワークシステムを提供することができる。
【発明を実施するための形態】
【0019】
以下、図面を参照して発明を実施するための形態について説明する。
【0020】
まず、
図1を参照して、本実施形態に係る車載ネットワークシステム1の構成について説明をする。
【0021】
図1は、車載ネットワークシステム1の構成の一例を概略的に示すブロック図である。車載ネットワークシステム1は、任意の車両に搭載され、所定の通信プロトコル(例えば、CAN(Controller Area Network)、LIN(Local Interconnect Network)、イーサネット(登録商標)等)に基づくネットワーク2を介して相互に通信可能な複数(本実施形態では4つ)のECU(Electronic Control Unit)10を含む。以下、ネットワーク2において、ECU10は、イーサネットプロトコルに基づき相互に通信を行う前提で説明を行う。
【0022】
複数のECU10は、それぞれ、所定の機能に関する各種処理を行う電子制御ユニットである。ECU10は、その機能が任意のハードウェア、ソフトウェア、或いはこれらの組み合わせにより実現されてよく、例えば、CPU,RAM,ROM,I/O等を含むマイクロコンピュータを中心に構成されてよい。複数のECU10は、マスタ/スレーブ方式における1つのマスタECU11と、複数(本実施形態では、3つ)のスレーブECU12を含む。
【0023】
マスタECU11(第1ノードの一例)は、例えば、ネットワーク2の外部のネットワーク(例えば、同じ車両に搭載される他のローカルネットワークや車両の外部の無線ネットワーク等)との間での通信を中継するゲートウェイECU(ゲートウェイ装置の一例)である。マスタECU11は、例えば、1つ以上のプログラムをCPU上で実行することにより実現される機能部として、通信処理部111、暗号鍵生成部112、検証用データ生成部113、判定部114を含む。
【0024】
通信処理部111(第1送信部、第2送信部の一例)は、マスタECU11に設けられる所定のインターフェース(例えば、イーサネット通信IC等)を制御し、他のECU10(スレーブECU12)との間での各種信号(制御信号、情報信号等)の送受信を行う。
【0025】
暗号鍵生成部112は、複数のECU10(マスタECU11及びスレーブECU12)の相互間での送受信されるメッセージの認証を行うための暗号鍵を生成する。暗号鍵生成部112は、予め規定されたタイミング、例えば、所定周期ごと、或いは、車両に接続されるダイアグツールや遠隔のサーバ等の外部からの指令を受信したとき等に、暗号鍵を生成すると共に、スレーブECU12が復号可能な態様(例えば、初期値として有する暗号鍵や前回受信した暗号鍵で復号可能な態様)で暗号化する。暗号鍵生成部112は、通信処理部111に送信要求を送り、暗号化した暗号鍵のデータをスレーブECU12に一斉送信(ブロードキャスト送信)させる。
【0026】
検証用データ生成部113は、暗号鍵の送信先であるスレーブECU12の各々によって、暗号鍵のデータが正常に受信できたか否かを検証するためのデータ(検証用データ)を生成する。検証用データ生成部113は、例えば、検証用データとして、任意に生成される乱数と、スレーブECU12に送信された暗号鍵により復号可能な態様で暗号化された乱数を含むデータを生成してよい。検証用データ生成部113は、通信処理部111に送信要求を送り、生成した検証用データをスレーブECU12に一斉送信(ブロードキャスト送信)させる。
【0027】
判定部114は、通信処理部111に送信要求を送り、スレーブECU12に対して、暗号鍵のデータが正常に受信されたか否かの検証結果の問い合わせを送信する。そして、判定部114は、スレーブECU12の各々から返信される検証結果に基づき、全てのスレーブECU12で暗号鍵のデータが正常に受信されたか否かを判定する。
【0028】
スレーブECU12(第2ノードの一例)は、各種車載装置(例えば、エンジン、パワーステアリング装置、変速機等の駆動系装置やオーディオ装置、ナビゲーション装置等の情報系装置)を制御する電子制御ユニットである。スレーブECU12は、例えば、1つ以上のプログラムをCPU上で実行することにより実現される機能部として、通信処理部121、検証部122を含む。
【0029】
通信処理部121(第1受信部、第2受信部、第3送信部の一例)は、スレーブECU12に設けられる所定のインターフェース(例えば、イーサネット通信IC等)を制御し、他のECU10との間での各種信号(制御信号、情報信号等)の送受信を行う。
【0030】
検証部122は、通信処理部121により受信される、マスタECU11からの暗号鍵のデータと、検証用データとに基づき、暗号鍵のデータが正常に受信されたか否かを検証する。例えば、検証部122は、検証用データに含まれる暗号化された乱数を暗号鍵で復号したものと、検証用データに含まれる暗号化されていない乱数とを比較し、一致する場合、暗号鍵のデータが正常に受信された(受信成功)と判断し、一致しない場合、正常に受信されていない(受信失敗)と判断する。検証部122は、通信処理部121に送信要求を送り、マスタECU11に検証結果を送信する。
【0031】
次に、
図2を参照して、マスタECU11による処理フローについて説明する。
【0032】
図2は、マスタECU11による処理の一例を概略的に示すフローチャートである。
【0033】
ステップS102にて、暗号鍵生成部112は、暗号鍵を生成する。
【0034】
ステップS104にて、暗号鍵生成部112は、生成した暗号鍵を暗号化する。
【0035】
ステップS106にて、検証用データ生成部113は、検証用データを生成する。
【0036】
ステップS108にて、通信処理部111は、暗号鍵生成部112からの送信要求に応じて、暗号化された暗号鍵のデータを全てのスレーブECU12にブロードキャスト送信する。
【0037】
ステップS110にて、通信処理部111は、検証用データ生成部113からの送信要求に応じて、検証用データを全てのスレーブECU12にブロードキャスト送信する。
【0038】
ステップS112にて、通信処理部111は、判定部114からの送信要求に応じて、検証結果の問い合わせをスレーブECU12にブロードキャスト送信する。
【0039】
尚、検証結果は、マスタECU11からの問い合わせなしに、即ち、自動的に、スレーブECU12からマスタECU11に返信される態様であってもよい。この場合、ステップS112は、省略されてよい。
【0040】
ステップS114にて、判定部114は、問い合わせの送信から所定時間内で、通信処理部111により全てのスレーブECU12からの検証結果が受信されているか否かを判定する。当該所定時間は、全てのスレーブECU12から検証結果を受信するのに要する最大時間よりも十分に長い時間として設定されてよい。判定部114は、通信処理部111により全てのスレーブECU12からの検証結果が受信されている場合、ステップS116に進み、それ以外の場合、ステップS108に戻って、ステップS108〜S114の処理を繰り返す。
【0041】
尚、マスタECU11(判定部114)は、通信障害等の発生を把握している場合、通信障害が回復するのを待って、ステップS108〜S114の処理を再開させてもよい。
【0042】
ステップS116にて、判定部114は、通信処理部111によりスレーブECU12から受信された全ての検証結果が"受信成功"であるか否かを判定する。判定部114は、
全ての検証結果が"受信成功"である場合、今回の処理を終了し、それ以外の場合、ステップS108に戻って、ステップS108〜S116の処理を繰り返す。
【0043】
次に、
図3を参照して、スレーブECU12による処理フローについて説明する。
【0044】
図3は、スレーブECU12による処理の一例を概略的に示すフローチャートである。本フローチャートによる処理は、通信処理部121がマスタECU11から暗号鍵のデータを受信すると、実行開始される。
【0045】
ステップS202にて、検証部122は、通信処理部121により受信された暗号鍵のデータを取得し、暗号鍵のデータを復号すると共に、スレーブECU12のEEPROM(Electrically Erasable Programmable Read-Only Memory)等の内部メモリ(不図示)に保存させる。
【0046】
ステップS204にて、検証部122は、暗号鍵のデータの受信から所定時間内で、通信処理部121によりマスタECU11から検証用データが受信されたか否かを判定する。当該所定時間は、マスタECU11から検証用データを受信するのに要する最大時間よりも十分に長い時間として設定されてよい。検証部122は、通信処理部121によりマスタECU11から検証用データが受信されている場合、ステップS206に進み、それ以外の場合、今回の処理を終了する。
【0047】
ステップS206にて、検証部122は、通信処理部121により受信された、マスタECU11からの暗号鍵のデータ(復号済)と、検証用データとに基づき、暗号鍵のデータが正常に受信されたか否かを検証する。
【0048】
ステップS208にて、検証部122は、スレーブECU12のRAM上のバッファ等に検証結果("受信成功"或いは"受信失敗")を保持させる。
【0049】
ステップS210にて、検証部122は、検証用データの受信から所定時間内で、通信処理部121によりマスタECU11からの検証結果の問い合わせが受信されたか否かを判定する。当該所定時間は、マスタECU11から検証結果の問い合わせを受信するのに要する最大時間より十分に長い時間として設定されてよい。検証部122は、通信処理部121によりマスタECU11から検証結果の問い合わせが受信されている場合、ステップS212に進み、それ以外の場合、今回の処理を終了する。
【0050】
尚、上述の如く、検証結果は、マスタECU11からの問い合わせなしに、即ち、自動的に、スレーブECU12からマスタECU11に返信される態様であってもよい。この場合、ステップS210は、省略される。
【0051】
ステップS212にて、通信処理部121は、検証部122からの送信要求に応じて、ステップS208で保持された検証結果のデータをマスタECU11に送信する。
【0052】
次に、
図4を参照して、
図2、
図3の処理フローに基づく車載ネットワークシステム1全体としての動作について説明をする。
【0053】
図4は、車載ネットワークシステム1の動作の一例を示すシーケンス図である。
【0054】
ステップS10にて、マスタECU11(暗号鍵生成部112)は、暗号鍵を生成すると共に、暗号鍵を暗号化する(
図2のステップS102,S104)。
【0055】
ステップS12にて、マスタECU11(検証用データ生成部113)は、検証用データを生成する(
図2のステップS106)。
【0056】
ステップS14にて、マスタECU11(通信処理部111)は、暗号化された暗号鍵のデータを全てのスレーブECU12にブロードキャスト送信する(
図2のステップS108)。
【0057】
ステップS16にて、スレーブECU12(検証部122)は、それぞれ、マスタECU11から受信した暗号鍵のデータを復号すると共に、スレーブECU12のEEPROM等の内部メモリ(不図示)に保存させる。(
図3のステップS202)。
【0058】
一方、ステップS18にて、マスタECU11(通信処理部111)は、暗号鍵のデータの送信に次いで、検証用データを全てのスレーブECU12にブロードキャスト送信する(
図2のステップS110)。
【0059】
ステップS20にて、スレーブECU12(検証部122)は、それぞれ、通信処理部121により受信された、マスタECU11からの暗号鍵のデータ(復号済)と、検証用データとに基づき、暗号鍵のデータが正常に受信されたか否かを検証する(
図3のステップS206)。
【0060】
一方、ステップS22にて、マスタECU11(通信処理部111)は、検証用データの送信に次いで、検証結果の問い合わせを全てのスレーブECU12にブロードキャスト送信する(
図2のステップS112)。
【0061】
ステップS24にて、スレーブECU12(通信処理部121)は、それぞれ、マスタECU11からの検証結果の問い合わせに応じて、マスタECU11に検証結果のデータを送信する(
図3のステップS212)。
【0062】
ステップS26にて、マスタECU11(判定部124)は、通信処理部111によりスレーブECU12から受信された全ての検証結果を確認し、全てのスレーブECU12により正常に暗号鍵のデータが受信されているか否かを判定する(
図2のステップS116)。
【0063】
このように、本実施形態では、マスタECU11(第1ノード)の通信処理部111は、複数のスレーブECU12(第2ノード)の各々に所定のデータ(暗号鍵のデータ)を送信すると共に、複数のスレーブECU12により当該所定のデータが正常に受信されたか否かを検証するための検証用データを複数のスレーブECU12に送信する。また、複数のスレーブECU12の通信処理部121は、それぞれ、マスタECU11から送信される所定のデータを受信すると共に、マスタECU11から送信される検証用データを受信する。そして、複数のスレーブECU12の検証部122は、それぞれ、受信した所定のデータと検証用データとに基づき、所定のデータが正常に受信されたか否かを検証すると共に、複数のスレーブECU12の通信処理部121は、それぞれ、検証結果をマスタECU11に送信する。これにより、マスタECU11から複数のスレーブECU12に所定のデータが送信される際、複数のスレーブECU12(検証部122)のそれぞれにおいて、所定のデータが正常に受信されたか否かの検証が並列して行われ、検証結果は複数の第2ノード(通信処理部121)の各々からマスタECU11に送信される。従って、マスタECU11が検証対象となる複数のスレーブECU12の各々について順番に検証を行う場合と比較して、検証に要する時間をより短縮することができる。
【0064】
また、本実施形態では、マスタECU11の通信処理部111は、複数のスレーブECU12の各々に、所定のデータとして同一のデータを一斉送信する。そのため、マスタECU11から複数のスレーブECU12の各々に同一のデータを一斉送信する場合に、複数のスレーブECU12の各々により同一のデータが正常に受信されたか否かの検証に要する時間をより短縮することができる。
【0065】
また、本実施形態では、マスタECU11から送信される同一のデータは、マスタECU11及び複数のスレーブECU12の間でのメッセージ認証を行うための暗号鍵のデータである。これにより、メッセージ認証を行うための暗号鍵をマスタECU11及び複数のスレーブECU12が属する同一ネットワーク(即ち、ネットワーク2)内で共有する場合に、複数のスレーブECU12の各々により暗号鍵のデータが正常に受信されたか否かの検証に要する時間をより短縮することができる。
【0066】
また、本実施形態では、マスタECU11は、例えば、外部のネットワークとの通信を中継するゲートウェイECU(ゲートウェイ装置)である。これにより、複数のスレーブECU12で検証が並列して行なわれるため、ゲートウェイ装置(マスタECU11)の処理負荷が軽減され、ゲートウェイ装置及び複数のスレーブECU12を含むネットワーク内(即ち、ネットワーク2内)における通信や外部との通信への影響を抑制することができる。
【0067】
また、本実施形態では、複数のECU10のうち、所定のデータ(暗号鍵のデータ)の送信元のノードは、マスタノード(マスタECU11)であり、所定のデータの送信先の複数のノードは、それぞれ、スレーブノード(スレーブECU12)である。これにより、1つのマスタノード(マスタECU11)が複数のスレーブノード(スレーブECU12)の動作(通信)を制御するマスタ/スレーブ方式を採用する場合に、複数のスレーブノードの各々で検証が並列して行なわれるため、マスタノードの処理負荷を抑制することができる。
【0068】
尚、本実施形態では、マスタECU11は、メッセージ認証に用いられる暗号鍵のデータをスレーブECU12に一斉送信するが、暗号鍵以外のデータをスレーブECU12に一斉送信する態様であってもよい。例えば、複数のECU10の何れかが故障し、交換された場合に、マスタECU11に接続される外部ツールからの要求により、マスタECU11から複数のスレーブECU12に仕向け地情報(複数のECU10がどの仕向け地の車両に搭載されるかを示す情報)のデータを一斉送信することがある。かかる場合においても、上述の実施形態と同様の検証方法が実行されてよい。これにより、スレーブECU12における所定の機能に関する制御仕様が車両の仕向け地によって異なる場合、スレーブECU12が故障等により交換されたときに、スレーブECU12は、それぞれ、マスタECU11から送信される仕向け地情報のデータにより車両の仕向け地を把握することができる。そして、この際、スレーブECU12の各々が一斉送信された仕向け地情報が正常に受信されたか否かの検証を実行することにより、マスタECU11は、より短い時間で全てのスレーブECU12により仕向け地情報が正常に受信されたか否かを検証することができる。
【0069】
また、本実施形態では、マスタECU11及び複数のスレーブECU12は、マスタECU11が複数のスレーブECU12に同一のデータを一斉送信する場合に、上述の検証方法を実行するが、複数のスレーブECU12に送信されるデータの内容や送信されるタイミングが異なる場合であっても、同様の検証方法を採用してよい。この場合、マスタECU11(通信処理部111)は、スレーブECU12に所定のデータが送信された場合に、当該スレーブECU12により当該所定のデータが正常に受信されたか否かを検証するための検証用データを、当該スレーブECU12に送信するようにすればよい。これにより、マスタECU11から複数のスレーブECU12の各々に送信されるデータの内容や送信されるタイミングに問わず、送信先であるスレーブECU12の各々で検証が実行されるため、マスタECU11は、複数のスレーブECU12に送信される各種データの全てについて、正常に受信されたかを検証する際、同様に、検証に要する時間を短縮できると共に、マスタECU11における処理負荷を低減することができる。
【0070】
また、本実施形態では、複数のECU10において、マスタ/スレーブ方式が採用され、所定のデータ(暗号鍵のデータ)の送信元がマスタであり、送信先が複数のスレーブノードであるが、複数のECU10のうちの1つのECU10が送信元となり、他の複数のECU10が送信先となる態様であればよい。この場合についても、他の複数のECU10の各々が並列して検証を行う同様の検証方法を採用することにより、送信先である他の複数のECU10の各々で所定のデータが正常に受信されたか否かをより短い時間で検証することができる。
【0071】
以上、本発明を実施するための形態について詳述したが、本発明はかかる特定の実施形態に限定されるものではなく、特許請求の範囲に記載された本発明の要旨の範囲内において、種々の変形・変更が可能である。