(58)【調査した分野】(Int.Cl.,DB名)
前記転送先ネットワークの1フレームのフレーム長が前記転送元ネットワークの1フレームのフレーム長よりも長い場合、前記転送部は、複数のフレームを1つのフレームにまとめて転送を行う、
請求項1記載のゲートウェイ装置。
前記転送部は、前記転送先ネットワークが検証機能を有している場合であっても前記転送先ネットワークのネットワーク占有率が所定値より高い場合に前記所定削除条件が満たされたとして、前記転送を行う
請求項4〜6のいずれか一項に記載のゲートウェイ装置。
前記ゲートウェイ装置は、前記1以上のネットワークに接続された電子制御ユニット毎に当該電子制御ユニットが前記検証用情報に基づくフレームの検証機能を有するか否かを示す情報を保持し、
前記転送部は、前記受信部により受信されたフレームの転送先となる前記転送先ネットワークに接続されて当該フレームに応じた処理を実行する電子制御ユニットが前記検証機能を有さない場合に、前記所定削除条件が満たされたとして、前記転送を行う
請求項4又は5記載のゲートウェイ装置。
前記転送部は、前記受信部により受信された検証用情報を含む第1フレームについて、前記検証用情報を削除するための所定削除条件が満たされなかった場合には、当該第1フレームの内容のうち前記検証用情報を除いた内容に基づく情報と、前記転送先ネットワークに接続された電子制御ユニットと共有している鍵を用いて生成した検証用情報とを含む第2フレームを生成して当該第2フレームを前記転送先ネットワークに送信する
請求項4〜12のいずれか一項に記載のゲートウェイ装置。
前記転送部は、前記受信部により受信された、検証用情報を含まないフレームについて、検証用情報を付加するための所定付加条件が満たされた場合には、当該フレームの内容に基づく情報と、検証用情報とを含むフレームを生成して、生成した当該フレームを前記転送先ネットワークに送信することで、前記転送を行う
請求項1〜13のいずれか一項に記載のゲートウェイ装置。
前記転送部は、前記受信部により受信された検証用情報を含む第1フレームについて、転送先ネットワークに検証機能を有する電子制御ユニットと検証機能を有さない電子制御ユニットが接続される場合、当該第1フレームの内容のうち前記検証用情報を除いた内容に基づく情報を含み且つ検証用情報を含まない第2フレームを生成して当該第2フレームを前記転送先ネットワークに送信し、更に、当該第1フレームの内容のうち前記検証用情報を除いた内容に基づく情報を含み且つ検証用情報を含み、前記第2フレームとは異なる、フレームの識別子を有する第3フレームを前記転送先ネットワークに送信することで、前記転送を行う、
請求項1記載のゲートウェイ装置。
【発明を実施するための形態】
【0018】
本発明の一態様に係るゲートウェイ装置は、複数の電子制御ユニットが通信に用いる1つ以上のバスに接続されたゲートウェイ装置であって、フレームを受信する受信部と、前記受信部により受信されたフレームの内容から当該フレームの検証に用いられる検証用情報を削除して当該フレームの、前記バスの1つである転送先バスへの転送を行う、又は、当該フレームの内容に検証用情報を付加して当該フレームの、前記転送先バスへの転送を行う、転送部とを備えるゲートウェイ装置である。これにより、転送に際して検証用情報の付加或いは削除がなされるので検証用情報の検証機能を有さない電子制御ユニット(ECU)を一部に含むネットワークシステムにおいて効率的なフレームの転送が実現され得る。
【0019】
また、前記転送部は、前記受信部により受信された検証用情報を含む第1フレームについて、前記検証用情報を削除するための所定削除条件が満たされた場合には、当該第1フレームの内容のうち前記検証用情報を除いた内容に基づく情報を含む第2フレームを生成して当該第2フレームを前記転送先バスに送信することで、前記転送を行うこととしても良い。これにより、一定条件下で検証用情報が削除されてフレームの転送が行われるので、検証用情報が削除されて転送された場合における転送先バスのトラフィック量が抑制され得る。また、検証用情報が削除されて転送された場合における転送先バスに接続されたECUは、検証用情報を処理する必要がなくなる。これは、例えば、ネットワークシステムにおける効率的なECUの編成の実現に繋がり得る。
【0020】
また、前記複数の電子制御ユニットは、Controller Area Network(CAN)プロトコルに従って前記バスを介して通信を行い、前記検証用情報はフレームにおいてデータフィールドに配置されるメッセージ認証コードであり、前記転送部は、前記所定削除条件が満たされた場合には、前記第1フレームにおけるメッセージ認証コード以外のデータフィールドの内容を含み、メッセージ認証コードを含まない第2フレームを前記転送先バスに送信することとしても良い。これにより、車載ネットワークシステムにおいてメッセージ認証コードを用いてフレーム(メッセージ)のセキュリティを高めることが可能であり、また、フレームの転送先となるECUにおいてメッセージ認証コードが不要な場合において所定削除条件が満たされるように所定削除条件を設定しておくことで、無駄なバス占有時間が削減され得る。
【0021】
また、前記ゲートウェイ装置は、複数のバスに接続され、前記ゲートウェイ装置は、前記複数のバスから、前記受信部により受信されたフレームの転送先となる前記転送先バスを、選択するための基準を示す転送ルール情報と、バス毎に当該バスが、前記検証用情報に基づくフレームの検証機能を有する電子制御ユニットが接続されている検証対応バスか、前記検証機能を有する電子制御ユニットが接続されていない検証非対応バスかを示すバス情報とを保持する転送ルール保持部を備え、前記転送部は前記転送に際して前記転送ルール情報に基づいて前記転送先バスを選択し、当該転送先バスが検証非対応バスである場合には前記所定削除条件が満たされたとして、前記転送を行うこととしても良い。これにより、フレームの転送先となる転送先バスに、検証用情報に係る検証機能を有するECUが接続されていない場合に、転送先バスに、有効利用されない検証用情報を含むフレームが送信されることが抑制され得る。
【0022】
また、前記バス情報は、検証対応バスに接続された前記検証機能を有する電子制御ユニットにより検証されるフレームの識別子である検証メッセージ識別子と、検証されないフレームの識別子である非検証メッセージ識別子とを区別するためのメッセージ識別子情報を含み、前記転送部は、前記転送先バスが検証対応バスである場合において、前記受信部により受信されたフレームの識別子が非検証メッセージ識別子であるときには前記所定削除条件が満たされたとして、前記転送を行うこととしても良い。これにより、例えば、ある識別子(メッセージID)を有するフレームの転送先となる転送先バスに、その識別子のフレームを検証用情報に基づいて検証機能を有するECUが接続されていない場合に、転送先バスへの、有効利用されない検証用情報を含むフレームの送信が、抑制され得る。
【0023】
また、前記転送部は、前記転送先バスのバス占有率が所定値より高い場合に前記所定削除条件が満たされたとして、前記転送を行うこととしても良い。これにより、例えば、転送先バスのトラフィック量が一定量を超えた場合には、転送先バスに接続されたECUによるフレームの検証の実行確保よりバス占有率の抑制を優先させることが可能となる。
【0024】
また、前記転送部は、前記転送先バスに送信するフレームに、当該フレームに検証用情報が含まれるか否かを表す情報を含ませることとしても良い。これにより、転送先バスに接続されたECUにおいて、例えばバス占有率の測定等を行わなくても、受信したフレームに検証用情報が含まれているか否かを容易に確認可能となる。
【0025】
また、前記ゲートウェイ装置は、前記1以上のバスに接続された電子制御ユニット毎に当該電子制御ユニットが前記検証用情報に基づくフレームの検証機能を有するか否かを示す情報を保持し、前記転送部は、前記受信部により受信されたフレームの転送先となる前記転送先バスに接続されて当該フレームに応じた処理を実行する電子制御ユニットが前記検証機能を有さない場合に、前記所定削除条件が満たされたとして、前記転送を行うこととしても良い。これにより、フレームの転送先となる転送先バスに、そのフレームに対応して検証機能を有するECUが接続されていない場合に、転送先バスへの、有効利用されない検証用情報を含むフレームの送信が、抑制され得る。
【0026】
また、前記ゲートウェイ装置は、前記1以上のバスに接続された、前記検証用情報に基づくフレームの検証機能を有する電子制御ユニットにより、検証されるフレームの識別子である検証メッセージ識別子と、検証されないフレームの識別子である非検証メッセージ識別子とを区別するメッセージ識別子情報を保持し、前記転送部は、前記受信部により受信されたフレームの識別子が非検証メッセージ識別子であるときには前記所定削除条件が満たされたとして、前記転送を行うこととしても良い。これにより、例えば、ある識別子(メッセージID)を有する転送対象のフレームが、ECUによる検証対象でない場合に、転送先バスへの、有効利用されない検証用情報を含むフレームの送信が、抑制され得る。また、メッセージID毎に検証用情報(例えばMAC)を含ませるか否かを定めることが可能となり、同一ECUへと転送するフレーム(メッセージ)でも、フレームの重要度に応じてMACを含ませるか否かを変えることが可能となる。
【0027】
また、前記転送部は、前記受信部により受信されたフレームの前記検証用情報に基づく検証により当該フレームが不正と判定した場合には、前記転送を行わないこととしても良い。これにより、不正なフレームが転送されることが抑制され、転送先のECUにおいて不正なフレームへ対処するための処理負荷が削減される。
【0028】
また、前記ゲートウェイ装置は、複数のバスに接続され、前記ゲートウェイ装置は、前記複数のバスから、前記受信部により受信されたフレームの転送先となる前記転送先バスを、選択するための基準を示す転送ルール情報と、バス毎に当該バスとフレームフォーマットとを対応付けたバス情報とを保持する転送ルール保持部を備え、前記転送部は前記転送に際して前記転送ルール情報に基づいて前記転送先バスを選択し、当該転送先バスが前記バス情報により所定のフレームフォーマットに対応付けられている場合には前記所定削除条件が満たされたとして、前記転送を行うこととしても良い。これは、例えば、所定のフレームフォーマットのバスに、フレームの検証用情報に基づく検証機能を有するECUを接続しないシステム構成において有用である。所定のフレームフォーマットとして、例えば、検証用情報の付加によるバス占有率の上昇が顕著となり易い、フレーム長が比較的短いフレームフォーマットを、定めることが有用となり得る。なお、ゲートウェイ装置は、転送元バスと転送先バスとのそれぞれに対応するフレームフォーマットが相違する場合において転送に際してフレームフォーマット変換を行っても良い。
【0029】
また、前記ゲートウェイ装置は、複数のバスに接続され、前記ゲートウェイ装置は、前記複数のバスから、前記受信部により受信されたフレームの転送先となる前記転送先バスを、選択するための基準を示す転送ルール情報と、バス毎に当該バスでの通信で用いられる通信プロトコルの種別を対応付けたバス情報とを保持する転送ルール保持部を備え、前記転送部は前記転送に際して前記転送ルール情報に基づいて前記転送先バスを選択し、当該転送先バスが前記バス情報により所定の通信プロトコルに対応付けられている場合には前記所定削除条件が満たされたとして、前記転送を行うこととしても良い。これにより、所定の通信プロトコルで通信するために用いられるバスにおいて検証用情報に基づく検証を行わないようにECUを編成したシステムにとって、効率的なフレームの転送が行われ得る。
【0030】
また、前記転送部は、前記受信部により受信された検証用情報を含む第1フレームについて、前記検証用情報を削除するための所定削除条件が満たされなかった場合には、当該第1フレームの内容のうち前記検証用情報を除いた内容に基づく情報と、前記転送先バスに接続された電子制御ユニットと共有している鍵を用いて生成した検証用情報とを含む第2フレームを生成して当該第2フレームを前記転送先バスに送信することとしても良い。これにより、フレームのセキュリティを高めることが可能となる。
【0031】
また、前記転送部は、前記受信部により受信された、検証用情報を含まないフレームについて、検証用情報を付加するための所定付加条件が満たされた場合には、当該フレームの内容に基づく情報と、検証用情報とを含むフレームを生成して、生成した当該フレームを前記転送先バスに送信することで、前記転送を行うこととしても良い。これにより、例えば、検証用情報が利用されないバスにおいてフレームに検証用情報が含まれなくても、そのフレームに検証用情報が付加されて転送され得るので、転送先バスにおいてフレームについて検証用情報に基づく検証によりセキュリティを高めること等が可能となり得る。
【0032】
また、前記転送部は、前記受信部により受信されたフレームの内容が暗号化されている場合に当該フレームを復号した後に、復号した当該フレームの内容から検証用情報を削除して、又は、復号した当該フレームの内容に検証用情報を付加して、当該フレームの前記転送を行うこととしても良い。これにより、フレームの転送に際して復号がなされるので、転送先のECUは、例えば復号機能を有さなくても、受信したフレームを適切に処理できるようになる。
【0033】
また、前記転送部は、前記受信部により受信された検証用情報を含む第1フレームについて、当該第1フレームの内容のうち前記検証用情報を除いた内容に基づく情報を含み且つ検証用情報を含まない第2フレームを生成して当該第2フレームを前記転送先バスに送信することで、前記転送を行い、更に、当該第1フレームの内容のうち前記検証用情報を除いた内容に基づく情報を含み且つ検証用情報を含み、前記第2フレームとは異なる、フレームの識別子を有する第3フレームを送信することとしても良い。これにより、転送先バスに、検証用情報に基づき検証するための検証機能を有するECUとその検証機能を有さないECUとが接続されている場合であっても、検証機能を有さないECUは第2フレームを受信して処理することができ、検証機能を有するECUは第3フレームを受信して検証をした上で処理することができるようになる。この場合には、検証機能を有さないECUにとって検証用情報に対応する処理負荷が削減される。
【0034】
また、本発明の一態様に係る車載ネットワークシステムは、1以上のバスを介して通信する複数の電子制御ユニットと前記バスに接続されたゲートウェイ装置とを備える車載ネットワークシステムであって、前記ゲートウェイ装置は、フレームを受信する受信部と、前記受信部により受信されたフレームの内容から当該フレームの検証に用いられる検証用情報を削除して当該フレームの、前記バスの1つである転送先バスへの転送を行う、又は、当該フレームの内容に検証用情報を付加して当該フレームの、前記転送先バスへの転送を行う、転送部とを備える車載ネットワークシステムである。これにより、何らかの通信路(例えば1つのバス)から受信したフレームの転送先バスへの転送に際して検証用情報の付加或いは削除がなされるので検証用情報の検証機能を有さない電子制御ユニット(ECU)を一部に含む車載ネットワークシステムにおいて効率的なフレームの転送が実現され得る。
【0035】
また、前記車載ネットワークシステムは、電子制御ユニットが接続されている複数のバスを備え、前記ゲートウェイ装置は、前記複数のバスに接続され、前記ゲートウェイ装置は、前記複数のバスから、前記受信部により受信されたフレームの転送先となる前記転送先バスを、選択するための基準を示す転送ルール情報を保持する転送ルール保持部を備え、前記転送部は前記受信部により受信されたフレームの前記転送に際して前記転送ルール情報に基づいて前記転送先バスを選択し、当該転送先バスが、検証用情報に基づくフレームの検証機能を有する電子制御ユニットが接続されているバスであるか否かに応じて、当該フレームについて検証用情報の削除又は付加をして前記転送を行うこととしても良い。これにより、フレームの転送先となる転送先バスに、検証用情報に係る検証機能を有するECUが接続されていない場合に、転送先バスに、有効利用されない検証用情報を含むフレームが送信されることが抑制され得る。
【0036】
また、本発明の一態様に係る転送方法は、1以上のバスを介して通信する複数の電子制御ユニットを備える車載ネットワークシステムにおいて用いられる転送方法であって、フレームを受信する受信ステップと、前記受信ステップでフレームが受信された場合に、前記バスの1つである転送先バスへ、当該フレームを、当該フレームの検証に用いられる検証用情報の削除又は付加をした上で、転送する転送ステップとを含む転送方法である。これにより、フレームの転送先バスへの転送に際して検証用情報の付加或いは削除がなされるので、検証用情報の検証機能を有さない電子制御ユニット(ECU)を一部に含む車載ネットワークシステムにおいて効率的なフレームの転送が実現され得る。
【0037】
なお、これらの全般的又は具体的な態様は、システム、方法、集積回路、コンピュータプログラム又はコンピュータで読み取り可能なCD−ROM等の記録媒体で実現されても良く、システム、方法、集積回路、コンピュータプログラム又は記録媒体の任意な組み合わせで実現されても良い。
【0038】
以下、実施の形態に係るゲートウェイ装置を含む車載ネットワークシステムについて、図面を参照しながら説明する。ここで示す実施の形態は、いずれも本発明の一具体例を示すものである。従って、以下の実施の形態で示される数値、構成要素、構成要素の配置及び接続形態、並びに、ステップ(工程)及びステップの順序等は、一例であって本発明を限定するものではない。以下の実施の形態における構成要素のうち、独立請求項に記載されていない構成要素については、任意に付加可能な構成要素である。また、各図は、模式図であり、必ずしも厳密に図示されたものではない。
【0039】
(実施の形態1)
以下、本発明の実施の形態として、ゲートウェイ装置を含む複数の電子制御ユニット(ECU)がバスを介して通信する車載ネットワークシステム1について、図面を用いて説明する。本実施の形態に係るゲートウェイ装置は、受信したフレーム(メッセージとも称する)について転送先のバスへと転送するために所定の転送方法を用いる。この転送方法では、フレームの転送に際して、フレームの検証のための検証用情報であるメッセージ認証コード(MAC)を、一定条件下で削除し、或いは、一定条件下で付加する。例えば、MACを検証する検証機能を有するECUが接続されていないバス(検証機能を有さないECUが接続されているバス)にフレームを転送する場合に、ゲートウェイ装置は、受信したフレームからMACを削除して転送先のバスに送信することで転送を行う。このため、転送先のバスのトラフィック量の低減化が可能となり、また、そのバスに接続されたECUはMACに関する処理を行う必要がなくなる。
【0040】
[1.1 車載ネットワークシステム1の全体構成]
図1は、実施の形態1に係る車載ネットワークシステム1の全体構成を示す図である。車載ネットワークシステム1は、CANプロトコルに従って通信するネットワーク通信システムの一例であり、制御装置、センサ等の各種機器が搭載された自動車におけるネットワーク通信システムである。車載ネットワークシステム1は、CANのバス10〜70により接続された、複数のECU(ECU100、101、200、201、300、301、400、401、500、600、700)とゲートウェイ90といった各ノードを含んで構成される。なお、
図1では省略しているものの、車載ネットワークシステム1には、更に多くのECUが含まれ得る。ECUは、例えば、プロセッサ(マイクロプロセッサ)、メモリ等のデジタル回路、アナログ回路、通信回路等を含む装置である。メモリは、ROM、RAM等であり、プロセッサにより実行される制御プログラム(コンピュータプログラム)を記憶することができる。例えばプロセッサが、制御プログラム(コンピュータプログラム)に従って動作することにより、ECUは各種機能を実現することになる。なお、コンピュータプログラムは、所定の機能を達成するために、プロセッサに対する指令を示す命令コードが複数個組み合わされて構成されたものである。
【0041】
バス10には、それぞれエンジン110、トランスミッション111に接続されたECU100及びECU101を含む、モータ、燃料、電池の制御といった車両の「走る」(走行)に関連する駆動系のECUが、接続されている。
【0042】
バス20には、それぞれブレーキ210、ステアリング211に接続されたECU200及びECU201を含む、「曲がる」、「止まる」等といった車両の挙動等の制御に関連するシャーシ系のECUが、接続されている。
【0043】
バス30には、それぞれ自動ブレーキ310、車線維持装置311に接続されたECU300及びECU301を含む、車間距離維持機能、衝突防止機能、エアバッグ等に関連する安全快適機能系のECUが、接続されている。
【0044】
バス40には、それぞれドア410、ライト411に接続されたECU400及びECU401を含む、エアコン、ウィンカー等といった車両の装備の制御に関連するボディ系のECUが、接続されている。
【0045】
バス50には、インストルメントパネル510に接続されたECU500(ヘッドユニット)を含む、カーナビゲーション、オーディオ等に関連したインフォテインメント系のECUが、接続されている。
【0046】
バス60には、ITS(Intelligent Transport Systems)装置610に接続されたE
CU600を含む、ETC(Electronic Toll Collection System)等の高度道路交通シ
ステムに対応するITS系のECUが、接続されている。
【0047】
バス70には、例えばOBD2(On-Board Diagnostics2)等といった、外部の故障診断ツール等と通信するためのインタフェースである診断ポート710に接続されたECU700が、接続されている。なお、ECU700を除き診断ポート710をバス70に接続していても良い。ここで示した各バスに接続されたECUに接続されている機器は、一例に過ぎず、例えば、他の1台又は複数台の機器に置き換えても良いし、省いても良い。
【0048】
ECU(ECU100、200等)のそれぞれは、接続されている機器(エンジン110、ブレーキ210等)の状態を取得し、定期的に状態を表すフレーム等をネットワーク(つまりCANのバス)に送信している。
【0049】
バス10に接続されたECU100、101と、バス20に接続されたECU200、201と、バス30に接続されたECU300、301とは、MAC対応ECUであり、メッセージ認証コード(MAC)を処理する機能(MACの生成機能、MACの検証機能)を有する。また、バス40に接続されたECU400、401と、バス50に接続されたECU500と、バス60に接続されたECU600と、バス70に接続されたECU700とは、MAC非対応ECUであり、MACを処理する機能(MACの生成機能、MACの検証機能)を有さない。
【0050】
ゲートウェイ90は、異なる複数の通信路を接続して通信路間でデータを転送するゲートウェイ装置である。ゲートウェイ90は、バス10、バス20、バス30、バス40、バス50、バス60及びバス70と接続している。つまり、ゲートウェイ90は、一方のバスから受信したフレーム(データフレーム)を、一定条件下で他のバス(つまり条件に応じて選択した転送先バス)に転送する機能を有する一種のECUである。ゲートウェイ90は、例えば、一方のバスから受信した、MACを含むフレームについて転送する。この転送は、具体的には、受信したMACを含むフレームの内容に基づく情報を含む送信用フレームであってMAC(例えば、受信したMACと同一のMAC、或いは、新たに生成したMAC)を含む送信用フレームを生成して、その送信用フレームを転送先バスに送信することである。また、ゲートウェイ90は、一方のバスから受信した、MACを含むフレームについて一定条件下でMACを削除した上で転送する。フレームからMACを削除して転送することは、具体的には、受信したMACを含むフレームの内容のうち、MAC以外の部分に基づく情報を含む送信用フレームを生成して、その送信用フレームにMACを含ませずに転送先バスに送信することである。また、ゲートウェイ90は、一方のバスから受信した、MACを含まないフレームについて一定条件下でMACを付加した上で転送する。フレームにMACを付加して転送することは、具体的には、受信したフレームの内容に基づく情報を含む送信用フレームを生成して、その送信用フレームにMACを含ませて転送先バスに送信することである。ゲートウェイ90は、受信したフレームを転送するかしないかを接続されたバス間毎に切り替え得る。なお、車載ネットワークシステム1には、
図1に示さないバスも含まれ得るし、ゲートウェイ90以外の1台以上のゲートウェイ装置が含まれ得る。
【0051】
この車載ネットワークシステム1においてはCANプロトコルに従って各ECUがフレームの授受を行う。CANプロトコルにおけるフレームには、データフレーム、リモートフレーム、オーバーロードフレーム及びエラーフレームがあるが、ここでは主にデータフレームに注目して説明する。
【0052】
[1.2 データフレームフォーマット]
以下、CANプロトコルに従ったネットワークで用いられるフレームの1つであるデータフレームについて説明する。
【0053】
図2は、CANプロトコルで規定されるデータフレームのフォーマットを示す図である。同図には、CANプロトコルで規定される標準フォーマット(標準IDフォーマット)におけるデータフレームを示している。データフレームは、SOF(Start Of Frame)、IDフィールド、RTR(Remote Transmission Request)、IDE(Identifier Extension)、予約ビット「r」、DLC(Data Length Code)、データフィールド、CRC(Cyclic Redundancy Check)シーケンス、CRCデリミタ「DEL」、ACK(Acknowledgement)スロット、ACKデリミタ「DEL」、及び、EOF(End Of Frame)の各フィ
ールドで構成される。
【0054】
SOFは、1bitのドミナントで構成される。バスがアイドルの状態はレセシブになっており、SOFによりドミナントへ変更することでフレームの送信開始を通知する。
【0055】
IDフィールドは、11bitで構成される、データの種類を示す値であるID(つまりフレームにおける識別子であるメッセージID)を格納するフィールドである。複数のノードが同時に送信を開始した場合、このIDフィールドで通信調停を行うために、IDが小さい値を持つフレームが高い優先度となるよう設計されている。
【0056】
RTRは、データフレームとリモートフレームとを識別するための値であり、データフレームにおいてはドミナント1bitで構成される。
【0057】
IDEと「r」とは、両方ドミナント1bitで構成される。
【0058】
DLCは、4bitで構成され、データフィールドの長さを示す値である。なお、IDE、「r」及びDLCを合わせてコントロールフィールドと称する。
【0059】
データフィールドは、最大64bitで構成される送信するデータの内容を示す値である。8bit毎に長さを調整できる。送られるデータの仕様については、CANプロトコルで規定されておらず、車載ネットワークシステム1において定められる。従って、車種、製造者(製造メーカ)等に依存した仕様となる。
【0060】
CRCシーケンスは、15bitで構成される。SOF、IDフィールド、コントロールフィールド及びデータフィールドの送信値より算出される。
【0061】
CRCデリミタは、1bitのレセシブで構成されるCRCシーケンスの終了を表す区切り記号である。なお、CRCシーケンス及びCRCデリミタを合わせてCRCフィールドと称する。
【0062】
ACKスロットは、1bitで構成される。送信ノードはACKスロットをレセシブにして送信を行う。受信ノードはCRCシーケンスまで正常に受信ができていればACKスロットをドミナントとして送信する。レセシブよりドミナントが優先されるため、送信後にACKスロットがドミナントであれば、送信ノードは、いずれかの受信ノードが受信に成功していることを確認できる。
【0063】
ACKデリミタは、1bitのレセシブで構成されるACKの終了を表す区切り記号である。
【0064】
EOFは、7bitのレセシブで構成されており、データフレームの終了を示す。
【0065】
図2において(a)は、MAC非対応ECUが送受信するフレームのデータフィールドの内容例を示しており、データフィールドは、MACを含まずにデータ80aのみを含む。
【0066】
図2において(b)は、MAC対応ECUが送受信するフレームのデータフィールドの内容例を示しており、データフィールドは、データ80bとMAC81とを含む。この(b)に例示する内容のフレームをゲートウェイ90が受信して、例えばMAC対応ECUが接続されておらずMAC非対応ECUが接続されている転送先バスに転送する場合には、データフィールド内のMACを削除したフレームが転送されることになる。
【0067】
また、(b)では、データとMACとをそれぞれ32ビットとしているが、これは一例に過ぎず、これ以外のサイズであっても良い。MACのサイズはメッセージID毎に予め定めておくこととしても良い。また、バス毎にMACのサイズを定めておくこととしても良い。また、(b)では、データとMACとを1つのフレーム内に含ませているが、データとMACとを別々のフレーム各々におけるデータフィールドに含ませて送信しても良い。この場合に、例えばMAC対応ECUが接続されておらずMAC非対応ECUが接続されている転送先バスに転送する場合には、ゲートウェイ90は、データを含むフレームを転送してMACを含んだフレームを転送しないように制御しても良い。
【0068】
[1.3 MAC非対応ECUの構成]
図3は、MAC非対応ECUであるECU400の構成図である。ECU400は、MACを処理する機能(MACの生成機能、MACの検証機能)に係る構成を有さず、フレーム送受信部800と、フレーム解釈部801と、受信ID判断部802と、受信IDリスト保持部803と、フレーム処理部804と、フレーム生成部805と、データ取得部806とを含んで構成される。これらの各構成要素の各機能は、例えばECU400における通信回路、メモリに格納された制御プログラムを実行するプロセッサ或いはデジタル回路等により実現される。
【0069】
フレーム送受信部800は、バス40に対して、CANプロトコルに従ったフレームを送受信する。バス40からフレームを1bitずつ受信し、フレーム解釈部801に通知する。また、フレーム生成部805より通知を受けたフレームの内容をバス40に送信する。
【0070】
フレーム解釈部801は、フレーム送受信部800よりフレームの値を受け取り、CANプロトコルで規定されているフレームフォーマットにおける各フィールドにマッピングするよう解釈を行う。IDフィールドと判断した値は受信ID判断部802へ通知する。フレーム解釈部801は、受信ID判断部802から通知される判定結果に応じて、IDフィールドの値と、IDフィールド以降に現れるデータフィールドとを、フレーム処理部804へ通知するか、その判定結果を受けた以降においてフレームの受信を中止する(つまりそのフレームとしての解釈を中止する)かを決定する。また、フレーム解釈部801は、CANプロトコルに則っていないフレームと判断した場合は、エラーフレームを送信するようにフレーム生成部805へ通知する。また、フレーム解釈部801は、エラーフレームを受信した場合、つまり受け取ったフレームにおける値からエラーフレームになっていると解釈した場合には、それ以降はそのフレームを破棄する、つまりフレームの解釈を中止する。
【0071】
受信ID判断部802は、フレーム解釈部801から通知されるIDフィールドの値を受け取り、受信IDリスト保持部803が保持しているメッセージIDのリストに従い、そのIDフィールド以降のフレームの各フィールドを受信するかどうかの判定を行う。この判定結果を、受信ID判断部802は、フレーム解釈部801へ通知する。
【0072】
受信IDリスト保持部803は、ECU400が受信するID(メッセージID)のリストである受信IDリストを保持する。例えば、ECU400が0x100、0x200というIDのメッセージを受信して処理する場合においては、これらの0x100、0x200というIDのリストが受信IDリストに予め登録されている。
【0073】
フレーム処理部804は、受信したフレームのデータに応じてECU毎に異なる機能に係る処理を行う。例えば、ドア410に接続されたECU400は、ブレーキがかかっていない状況でドアが開くとアラーム音を鳴らす機能を備える。ECU400は、例えばアラーム音を鳴らすためのスピーカ等を有している。そして、ECU400のフレーム処理部804は、他のECUから受信したデータを管理し、ドア410から取得されたドアの開閉状態等に基づいて一定条件下でアラーム音を鳴らす処理等を行う。なお、フレーム処理部804は、ここで例示した以外のフレームのデータに係る処理を行っても良い。
【0074】
データ取得部806は、ECUにつながっている機器、センサ等の状態を示すデータを取得し、フレーム生成部805に通知する。
【0075】
フレーム生成部805は、フレーム解釈部801から通知されたエラーフレームの送信を指示する通知に従い、エラーフレームを構成し、エラーフレームをフレーム送受信部800へ通知して送信させる。また、フレーム生成部805は、データ取得部806より通知されたデータの値に対して、予め定められたメッセージIDをつけてフレームを構成し、フレーム送受信部800へ通知する。
【0076】
なお、ECU401、500、600、700も、MAC非対応ECUであり、上述したECU400と基本的に同様の構成を備える。但し、受信IDリスト保持部803に保持される受信IDリストはECU毎に異なる内容となり得る。また、フレーム処理部804の処理内容は、ECU毎に異なる。ECU401のフレーム送受信部800は、バス40に対して、フレームを送受信し、ECU500のフレーム送受信部800は、バス50に対して、フレームを送受信し、ECU600のフレーム送受信部800は、バス60に対して、フレームを送受信し、ECU700のフレーム送受信部800は、バス70に対して、フレームを送受信する。
【0077】
[1.4 MAC対応ECUの構成]
図4は、MAC対応ECUであるECU100の構成図である。ECU100は、MACを処理する機能(MACの生成機能、MACの検証機能)に係る構成を有し、フレーム送受信部810と、フレーム解釈部811と、受信ID判断部812と、受信IDリスト保持部813と、フレーム処理部814と、フレーム生成部815と、データ取得部816と、MAC制御部820と、MAC鍵保持部821と、カウンタ保持部822とを含んで構成される。これらの各構成要素の各機能は、例えばECU100における通信回路、メモリに格納された制御プログラムを実行するプロセッサ或いはデジタル回路等により実現される。
【0078】
フレーム送受信部810と、フレーム解釈部811と、受信ID判断部812と、受信IDリスト保持部813と、フレーム処理部814と、フレーム生成部815と、データ取得部816とは、MAC非対応ECUである上述のECU400のフレーム送受信部800と、フレーム解釈部801と、受信ID判断部802と、受信IDリスト保持部803と、フレーム処理部804と、フレーム生成部805と、データ取得部806とそれぞれ同様の機能を有するので、ここでは説明を適宜省略する。
【0079】
フレーム送受信部810は、バス10に対して、CANプロトコルに従ったフレームを送受信する。
【0080】
MAC制御部820は、CANのデータフレームのデータフィールドに配置されるMAC(
図2の(b)参照)の生成、及び、MACの検証をする。フレーム送受信部810によるデータフレームの受信時には、MAC制御部820は、フレーム解釈部811から取得したフレームの内容であるメッセージID及びデータの値と、カウンタ保持部822が保持するカウンタ値とを結合した値に対して、MAC鍵保持部821が保持するMAC鍵を用いて、MAC値を計算し、計算結果であるMAC値とフレーム解釈部811から取得したフレームの内容であるMAC値とを比較する。MAC制御部820は、その比較の結果が一致しなければ、不正なメッセージと判定し、そのフレームの処理を中止して、例えばエラーフレームを送信するようにフレーム生成部815へ通知する。フレーム送受信部810によるデータフレームの送信に際しては、MAC制御部820は、データ取得部816からのデータに基づいてフレーム生成部815が構成したフレームの内容であるメッセージID及びデータの値と、カウンタ保持部822が保持するカウンタ値とを結合した値に対して、MAC鍵保持部821が保持するMAC鍵を用いて、MAC値を計算し、計算結果であるMAC値をフレーム生成部815に通知して送信用のフレームに設定させる。MAC制御部820は、MAC鍵を用いてMACを計算し、出てきた計算結果の例えば先頭4bytesをMAC値とする。なお、ここでは、MACを計算するために、メッセージIDと、データの値と、カウンタ保持部822で保持するカウンタ値との3つを用いる例を説明したが、そのいずれか1つ又は2つだけをMACの計算に用いても良いし、MACの計算に、フレーム内の他のフィールドの内容(例えばDLC等)を用いても良い。MACの計算方法としては、例えばHMAC(Hash-based Message Authentication Code)、CBC−MAC(Cipher Block Chaining Message Authentication Code)等を用いることができる。
【0081】
MAC鍵保持部821は、MAC値を計算するために必要となるMAC鍵を保持する。
【0082】
カウンタ保持部822は、MAC値を計算するために必要となるカウンタ値を保持する。ECU100においてフレームを正常に送受信した場合はカウンタ保持部822のカウンタ値が1増加(インクリメント)される。カウンタ値は、例えば送受信するフレームのメッセージID毎に保持される。
【0083】
フレーム生成部815は、フレーム解釈部811から通知されたエラーフレームの送信を指示する通知に従い、エラーフレームを構成し、エラーフレームをフレーム送受信部810へ通知して送信させる。また、フレーム生成部815は、データ取得部816より通知されたデータの値に対して、予め定められたメッセージIDをつけてフレームを構成し、フレームにMAC制御部820より通知されたMACの値を設定して、フレーム送受信部810へ通知する。
【0084】
なお、ECU101、200、201、300、301も、MAC対応ECUであり、上述したECU100と基本的に同様の構成を備える。但し、受信IDリスト保持部813に保持される受信IDリストはECU毎に異なる内容となり得る。また、フレーム処理部814の処理内容は、ECU毎に異なる。また、MAC対応ECU各々のMAC鍵保持部821は、例えば、そのECUが処理するメッセージID毎に異なるMAC鍵を保持する。なお、MAC対応ECU各々のMAC鍵保持部821は、メッセージIDに依らずそのECUが接続されるバス毎に統一したMAC鍵を保持することとしても良いし、いずれも同じMAC鍵を保持することとしても良い。ECU101のフレーム送受信部810は、バス10に対して、フレームを送受信し、ECU200、201のフレーム送受信部810は、バス20に対して、フレームを送受信し、ECU300、301のフレーム送受信部810は、バス30に対して、フレームを送受信する。
【0085】
[1.5 ゲートウェイ90の構成]
図5は、ゲートウェイ90の構成図である。ゲートウェイ90は、フレーム送受信部901と、フレーム解釈部902と、受信ID判断部903と、受信IDリスト保持部904と、フレーム生成部905と、転送制御部906と、転送ルール保持部907と、MAC制御部920と、MAC鍵保持部921と、カウンタ保持部922とを含んで構成される。これらの各構成要素の各機能は、例えばゲートウェイ90における通信回路、メモリに格納された制御プログラムを実行するプロセッサ或いはデジタル回路等により実現される。
【0086】
フレーム送受信部901は、バス10、バス20、バス30、バス40、バス50、バス60、及び、バス70のそれぞれに対して、CANプロトコルに従ったフレームを送受信する。フレーム送受信部901は、バスからフレームを1bitずつ受信し、フレーム解釈部902に通知する受信部として機能する。また、フレーム生成部905より通知を受けた転送先のバスを示す転送先バス情報及びフレームに基づいて、そのフレームの内容を、バス10、バス20、バス30、バス40、バス50、バス60、及び、バス70のうち転送先バスに、1bitずつ送信する。
【0087】
フレーム解釈部902は、フレーム送受信部901よりフレームの値を受け取り、CANプロトコルで規定されているフレームフォーマットにおける各フィールドにマッピングするよう解釈を行う。IDフィールドと判断した値は受信ID判断部903へ通知する。フレーム解釈部902は、受信ID判断部903から通知される判定結果に応じて、IDフィールドの値と、IDフィールド以降に現れるデータフィールド(データ)とを、転送制御部906へ通知するか、その判定結果を受けた以降においてフレームの受信を中止するかを決定する。また、フレーム解釈部902は、CANプロトコルに則っていないフレームと判断した場合は、エラーフレームを送信するようにフレーム生成部905へ通知する。また、フレーム解釈部902は、エラーフレームを受信した場合、つまり受け取ったフレームにおける値からエラーフレームになっていると解釈した場合には、それ以降はそのフレームを破棄する、つまりフレームの解釈を中止する。
【0088】
受信ID判断部903は、フレーム解釈部902から通知されるIDフィールドの値を受け取り、受信IDリスト保持部904が保持しているメッセージIDのリストに従い、そのIDフィールド以降のフレームの各フィールドを受信するかどうかの判定を行う。この判定結果を、受信ID判断部903は、フレーム解釈部902へ通知する。
【0089】
受信IDリスト保持部904は、ゲートウェイ90が受信するメッセージIDのリストである受信IDリストを保持する。受信IDリストには、各バス(バス10〜70)からゲートウェイ90が受信すべきフレームのメッセージIDが登録されている。なお、受信IDリスト保持部904は、バス毎に別々の受信IDリストを保持しても良いし、全体で1つの受信IDリストを保持しても良い。
【0090】
転送制御部906は、転送ルール保持部907が保持する転送ルールに従って、受信したフレームのID(メッセージID)、及び、転送元バス(つまりそのフレームを受信したバス)に応じて、転送先バスを選択し、転送先バスを示す転送先バス情報とフレーム解釈部902より通知されたメッセージIDとデータ(データフィールドの内容)と、DLC(データ長)とをフレーム生成部905へ通知する。転送制御部906は、転送ルール保持部907が保持するバス情報(バス毎にMAC対応バスかMAC非対応バスかを示す情報)と転送ルール情報とを参照し、受信したフレームの転送元バスと転送先バスとがMAC対応バスであるか否かを確認する。MAC対応バスは、MAC対応ECUが接続されているバスであり、MAC非対応バスは、MAC対応ECUが接続されていないバスである。MAC非対応バスには、MAC非対応ECUが接続され得る。
【0091】
転送元バスがMAC対応バスで且つ転送先バスがMAC非対応の場合には転送制御部906は、MAC制御部920にMAC検証を依頼し、MAC制御部920によるMAC検証に成功したとき(つまり転送元バスから受信したフレーム内のMACが計算したMACと一致したとき)には、適正なフレーム(メッセージ)と判定してMACを削除したデータフレームを転送するようフレーム生成部905に通知し、MAC検証に失敗したときには不正なフレームと判定して、フレームの転送を中止する。
【0092】
また、転送元バスがMAC対応バスで且つ転送先バスがMAC対応バスの場合には転送制御部906は、MAC制御部920にMAC検証を依頼し、MAC制御部920によるMAC検証に成功したときには、適正なフレームと判定してMACを削除せずにデータフレームを転送するようフレーム生成部905に通知し、MAC検証に失敗したときには不正なフレームと判定して、フレームの転送を中止する。MACを削除しない場合において、バス毎にMAC鍵が異なるようにしているのであれば、MACを転送先バスに合わせたMAC鍵で生成したものに付け替えてフレームの転送が行われる。
【0093】
また、転送元バスがMAC非対応バスで且つ転送先バスがMAC対応バスの場合には転送制御部906は、MAC制御部920にMAC生成を依頼し、MAC制御部920で生成されたMAC値を、データフィールドに付加してフレームの転送を行うようにフレーム生成部905に通知する。
【0094】
また、転送元バスがMAC非対応バスで且つ転送先バスがMAC非対応バスの場合には転送制御部906は、MAC制御部920にMACの検証及び生成を依頼せずに、フレームを転送するようフレーム生成部905に通知する。
【0095】
MAC制御部920は、MACの生成、及び、MACの検証をする機能を有する。MAC制御部920は、転送制御部906からのMAC検証の依頼(要求)があった場合は、転送制御部906より通知されるメッセージIDと、データの値と、カウンタ保持部922で保持するカウンタ値(そのメッセージIDと対応してカウンタリスト9220で管理されたカウンタ値)とを結合した値に対し、MAC鍵保持部921が保持するMAC鍵(そのメッセージIDと対応してMAC鍵リスト9210で管理されたMAC鍵)を用いて、MAC値を計算し、計算結果であるMAC値と、転送制御部906より通知される、受信されたフレームのデータフィールド内のMAC値とを比較する。比較の結果が一致すれば検証に成功した旨を転送制御部906に通知し、一致しなければ検証に失敗した旨を転送制御部906に通知する。また、MAC制御部920は、転送制御部906からのMAC生成の依頼(要求)があった場合は、転送制御部906より通知されるメッセージIDと、データの値と、カウンタ保持部922で保持するカウンタ値(そのメッセージIDと対応してカウンタリスト9220で管理されたカウンタ値)とを結合した値に対し、MAC鍵保持部921が保持するMAC鍵(そのメッセージIDと対応してMAC鍵リスト9210で管理されたMAC鍵)を用いて、MAC値を計算し、計算結果であるMAC値を転送制御部906へと通知する。MAC制御部920は、MAC鍵を用いてMACを計算し、出てきた計算結果の例えば先頭4bytesをMAC値とする。なお、ここでは、MACを計算するために、メッセージIDと、データの値と、カウンタ保持部922で保持するカウンタ値との3つを用いる例を説明したが、そのいずれか1つ又は2つだけをMACの計算に用いても良いし、MACの計算に、フレーム内の他のフィールドの内容(例えばDLC等)を用いても良い。MACの計算方法としては、例えばHMAC(Hash-based
Message Authentication Code)、CBC−MAC(Cipher Block Chaining Message Authentication Code)等を用いることができる。
【0096】
MAC鍵保持部921は、MAC値を計算するために必要となるMAC鍵を管理するMAC鍵リスト9210を保持する。MAC鍵リスト9210については
図8を用いて後に説明する。
【0097】
カウンタ保持部922は、MAC値を計算するために必要となるカウンタ値を管理するカウンタリスト9220を保持する。カウンタリスト9220については
図9を用いて後に説明する。カウンタ値は、例えばバス毎において、送受信するフレームのメッセージID毎に保持される。ゲートウェイ90においてフレームを正常に送受信した場合はカウンタ保持部922が、保持するカウンタリスト9220における、対応するメッセージIDのカウンタ値が1増加(インクリメント)される。カウンタ保持部922は、例えばバス毎にカウンタリスト9220を保持しても良い。
【0098】
転送ルール保持部907は、バス毎のフレームの転送についてのルールを表す情報である転送ルール情報、及び、各バスがMAC対応バスかMAC非対応バスかを示すバス情報を保持する。
図6は、バス情報の一例を示し、
図7は、転送ルール情報の一例を示す。
【0099】
フレーム生成部905は、フレーム解釈部902から通知されたエラーフレームの送信を指示する通知に従い、エラーフレームを構成し、エラーフレームをフレーム送受信部901へ通知して送信させる。また、フレーム生成部905は、転送制御部906から送信の要求に従い、転送制御部906より通知されたメッセージIDと、データフィールドの内容とを用いて送信用フレームを構成し、その送信用フレーム及び転送先バス情報(転送先バスの識別子であるバスID)をフレーム送受信部901へ通知する。
【0100】
[1.6 バス情報]
図6は、ゲートウェイ90の転送ルール保持部907が保持するバス情報の一例を示す。
図6のバス情報9070は、各バスがMAC対応バスであるかMAC非対応バスであるかをバス毎に示した情報である。
【0101】
図6の例は、
図1で示した各バスの符号が、そのバスの識別子(バスID)であることとした例である。
図6の例では、バスIDが10であるバス10はMAC対応バスであり、このバス10にはMAC対応ECUが接続されていることを示しており、つまりバス10に接続されているECU100、101がMAC対応ECUであることを示している。また、バスIDが40であるバス40は、MAC非対応バスであり、このバス40にはMAC対応ECUが接続されていないことを示しており、つまりバス40に接続されているECU400、401がMAC非対応ECUであることを示している。
【0102】
[1.7 転送ルール情報]
図7は、ゲートウェイ90の転送ルール保持部907が保持する転送ルール情報の一例を示す。
図7の転送ルール情報9071は、転送元バスと転送先バスと転送対象のデータフレーム(メッセージ)のID(メッセージID)とを対応付けている。この転送ルール情報9071は、ゲートウェイ90が、複数のバスから、受信されたフレームの転送先となる転送先バスを、選択するための基準を示す。
【0103】
図7における転送元バスIDは、ゲートウェイ90が受信するフレームがどのバスから受信されたかを示すバスIDである。
図7における転送先バスIDは、ゲートウェイ90が受信したフレームの転送先(つまり送信先)となるバスを示すバスIDである。この転送先バスIDが、転送先バス情報としてフレーム送受信部901に通知されると、フレーム送受信部901は、転送先バス情報に応じたバスへとフレームを送信することになる。
図7の例は、
図1で示した各バスの符号が、そのバスのバスIDであることとした例である。この転送ルール情報に従ってゲートウェイ90は、転送を行うか否か、どのバスを転送先バスとして選択するか等を決定する。
【0104】
図7の例は、例えば転送元バスがバス10である全メッセージが、バス20、バス30及びバス70の各々を転送先バスとして転送されるように定められていることを示す。また、転送元バスがバス10である全メッセージのうちメッセージIDが0x001、0x002、0x003であるメッセージのみが、バス40、バス50及びバス60の各々を転送先バスとして転送されるように定められており、転送元バスがバス10の、それ以外のメッセージは、バス40、バス50及びバス60の各々に対しては転送されないように定められていることを示す。また、転送元バスがバス30である全メッセージが、バス10、バス20、バス40及びバス70の各々を転送先バスとして転送されるように定められていることを示す。また、転送元バスがバス30の全メッセージについてのバスID50、60への転送は行われないように定められていることを示す。また、転送元バスがバス50であるメッセージについては、どのバスにも転送されないことを示している。
【0105】
[1.8 MAC鍵リスト]
図8は、ゲートウェイ90のMAC鍵保持部921が保持するMAC鍵リストの一例を示す。
図8のMAC鍵リスト9210は、メッセージID毎に、メッセージIDに対応するMAC鍵をリストとして登録したものであり、MAC制御部920によるMACの生成及び検証において利用される。
【0106】
図8では、メッセージID毎に、個別に異なるMAC鍵を保持している例を示したが、MAC鍵保持部921は、バス毎に個別のMAC鍵を保持しても良い。この場合には、MAC鍵リスト9210には、バスIDとバスIDに対応する鍵値とを登録する。バス毎に個別のMAC鍵を管理する場合には、ゲートウェイ90は、フレームの転送に際して、転送先バスに対応したMAC鍵を用いてMACを新たに生成して生成したMACを送信用フレームに設定して送信する。
【0107】
[1.9 カウンタリスト]
図9は、ゲートウェイ90のカウンタ保持部922が保持するカウンタリストの一例を示す。
図9のカウンタリスト9220は、メッセージID毎に、メッセージIDに対応するカウンタ値をリストとして記録したものであり、MAC制御部920によるMACの生成及び検証において利用される。
【0108】
図9では、メッセージID毎に、個別のカウンタ値を保持している例を示したが、カウンタ保持部922は、バス毎に個別のカウンタ値を保持しても良い。この場合には、カウンタリスト9220には、バスIDとバスIDに対応するカウンタ値とを記録する。
【0109】
[1.10 フレームの転送に係る動作例]
図10及び
図11は、転送元ECUが送信したフレームを一のバスから受信して、ゲートウェイ90が、転送先ECUが接続されている、他のバスへと転送する動作例を示す。一のバスと他のバスとのそれぞれは、MAC対応バスであり得るし、MAC非対応のバスであり得る。また、MAC対応ECU及びMAC非対応ECUのいずれもが、転送元ECUにも転送先ECUにもなり得る。以下、
図10及び
図11に即して、各装置の動作について説明する。
【0110】
まず、転送元ECUが、その転送元ECU自身が接続されているバスに対してフレーム(メッセージ)を送信する(ステップS1001)。CANの通信では、フレームの送信はブロードキャストであり、そのバスに接続された各ノードはそのフレームを受信し得る。転送元ECUが接続されたバスには、ゲートウェイ90も接続されており、ゲートウェイ90のフレーム送受信部901が、転送元ECUからのフレームを受信する(ステップS1002)。
【0111】
ゲートウェイ90の受信ID判断部903は、フレーム解釈部902から通知された、受信されたフレーム(メッセージ)のメッセージIDが、受信IDリスト保持部904が保持する受信IDリストに記載されたものであるか否かにより、受信すべきフレーム(受信すべきIDを含むフレーム)か否かを判断する(ステップS1003)。受信すべきフレームでない場合には、ゲートウェイ90は、受信したフレームについての転送を中止する(つまり転送を行わない)。
【0112】
ステップS1003で受信すべきフレームであると判断された場合には、ゲートウェイ90の転送制御部906は、転送ルール保持部907が保持する転送ルール情報9071を参照して、いずれかのバスに転送すべきメッセージIDのフレームか否かを判断して、転送すべきフレームであれば転送先バスを選択する(ステップS1004)。転送すべきメッセージIDのフレームでない場合には、ゲートウェイ90は、受信したフレームについての転送を中止する。
【0113】
ステップS1004で転送すべきメッセージIDのフレームであると判断された場合には、転送制御部906は、転送ルール保持部907が保持するバス情報9070を参照してフレームを受信したバスである転送元バスがMAC対応バスか否かを判断し(ステップS1005)、MAC対応バスであるときには、ステップS1006へ進み、MAC対応バスでないとき(つまりMAC非対応バスであるとき)には、ステップS1006での処理をスキップしてステップS1007へ進む。ステップS1006では、ゲートウェイ90のMAC制御部920が、MAC鍵保持部921が保持するMAC鍵リスト9210と、カウンタ保持部922が保持するカウンタリスト9220とから、受信したフレームのメッセージIDに対応するMAC鍵とカウンタとを利用してMAC値を計算し、計算結果のMAC値と、受信したフレームのデータフィールド内のMACと比較して、受信したフレームの検証(MAC検証)を行う。MAC検証の結果として、不正なフレームであると判定されると(検証に失敗すれば)、ゲートウェイ90は、そのフレームの転送を中止する。MAC検証の結果として、適正なフレームであると判定されると(検証に成功すれば)、ステップS1007へ進む。なお、検証に成功した際には、後のMAC検証のために、ゲートウェイ90は、カウンタリスト9220における、そのフレームのメッセージIDに対応するカウンタ値を、1増加(インクリメント)する。
【0114】
ステップS1007では、転送制御部906が、転送ルール保持部907が保持するバス情報9070を参照して、転送先バスがMAC対応バスか否かを判断する。ステップS1007での判断の結果として、転送先バスがMAC対応バスであると判断した場合にはステップS1010へ進み、転送先バスがMAC対応バスでないと判断した場合には、ステップS1008へ進む。
【0115】
ステップS1008では、転送制御部906は、フレームのデータフィールドからMAC部分を削除する。続いて、転送制御部906は、ステップS1008で削除したMACのサイズ(データ長)をDLCの値から減算し(ステップS1009)、ステップS1013へ進む。なお、ゲートウェイ90が受信したフレームのデータフィールドにMACが付されていない場合(つまり転送元バスがMAC非対応バスである場合)においては、ステップS1008、S1009でMACの削除、及び、MACのサイズのDLCからの減算を行わない。
【0116】
ステップS1010では、転送制御部906は、転送元バスから受信したフレームにMACが付されているか否かを確認する。MACが付されていなければ、転送制御部906は、MAC制御部920に転送先バスへ送信する送信用フレームに含ませるためのMACを生成するよう依頼し、S1011へ進む。MACが付されていれば、ステップS1013へ進む。
【0117】
ステップS1011では、MAC制御部920は、MACの付加によって増加するデータフィールドのサイズを再計算し、その値をDLCに設定する。続いて、MAC制御部920は、転送制御部906より通知されるメッセージIDと、データの値と、カウンタ保持部922で保持するカウンタリスト9220内のメッセージIDに対応するカウンタ値とを結合した値に対し、MAC鍵保持部921で保持するMAC鍵リスト9210内のメッセージIDに対応するMAC鍵を用いて、MAC値を計算し、計算結果としてのMAC値を転送制御部906へと通知する(ステップS1012)。この通知を受けて転送制御部906は、データフィールドにMACを付加する。
【0118】
ステップS1010で、受信したフレームにMACが付されていた場合、或いは、ステップS1009又はステップS1012での処理後に、転送制御部906は、フレーム生成部905に、メッセージID、データフィールド、DLC、及び、転送先バス情報(転送先バスID)を通知する。これにより、フレーム生成部905は、転送制御部906より通知されたメッセージIDと、データフィールドとを用い、CRCを再計算して送信用フレームを構成し、転送先バス情報(転送先バスID)と、その送信用フレームとをフレーム送受信部901へ通知する(ステップS1013)。
【0119】
次に、ゲートウェイ90のフレーム送受信部901は、フレーム生成部905より生成された送信用フレームを転送先バス情報が示すバス(つまり転送先バス)へと送信する(ステップS1014)。これにより、ゲートウェイ90によりバス間でのフレームの転送が実現される。
【0120】
ステップS1014に対応して、転送先バスに接続された転送先ECUは、ゲートウェイ90により送信(転送)されたフレームを受信する(ステップS1015)。
【0121】
[1.11 実施の形態1の効果]
実施の形態1に係る車載ネットワークシステム1では、ゲートウェイ90の転送制御部906、フレーム生成部905及びフレーム送受信部901が連携して、受信部として機能するフレーム送受信部901により受信されたフレーム(メッセージ)の内容からそのフレームの検証に用いられる検証用情報(例えばMAC)を削除してそのフレームの、転送先バスへの転送を行う、又は、そのフレームの内容に検証用情報を付加してそのフレームの、転送先バスへの転送を行う、転送部として機能する。この転送部は、受信部により受信された検証用情報を含む第1フレーム(例えばMACを含むフレーム)について、検証用情報を削除するための所定削除条件が満たされた場合には、その第1フレームの内容のうち検証用情報を除いた内容に基づく情報を含む第2フレーム(例えばMACを含まないフレーム)を生成してその第2フレームを転送先バスに送信することで、フレームの転送を行い得る。また、この転送部は、受信部により受信された、検証用情報を含まないフレームについて、検証用情報を付加するための所定付加条件が満たされた場合には、そのフレームの内容に基づく情報と、検証用情報とを含むフレームを生成して、生成したフレームを転送先バスに送信することで、フレームの転送を行い得る。この転送部は、例えば、所定削除条件が満たされた場合には、第1フレームにおけるMAC以外のデータフィールドの内容を含み、MACを含まない第2フレームを転送先バスに送信し得る。このようにゲートウェイ90が、フレームの転送に際して、転送先バスにMAC対応ECUが接続されていない場合(つまり転送先バスがMAC非対応バスである場合)には、MACを削除して送信するので、転送先バスのトラフィック量を抑えることできる。即ち、特定のバスに対してフレームが転送される場合にはMACが削除されて送信され得るので、そのバスに接続されたECUはMACを処理する必要がなくなる。このことは、車載ネットワークシステムにおける効率的なECUの編成の実現に繋がり得る。また、ゲートウェイ90は、転送に際してMACを検証し、検証に失敗した場合に不正なフレームの転送を中止するので、MACを削除してフレームを転送する場合であってもある程度のセキュリティを高めることが可能となる。また、ゲートウェイ90が、MACの検証に失敗した場合に不正なフレームを転送しないことにより、転送先バスに接続されたECUにとって不正なフレームに対処するための処理負荷が削減され得る。
【0122】
なお、ゲートウェイ90における上述の転送部は、受信部により受信された検証用情報を含む第1フレームについて、検証用情報を削除するための所定削除条件が満たされなかった場合には、その第1フレームの内容のうち検証用情報を除いた内容に基づく情報と、転送先バスに接続されたECUと共有している鍵を用いて生成した検証用情報とを含む第2フレームを生成してその第2フレームを転送先バスに送信し得る。これにより、フレームのセキュリティが高まり得る。
【0123】
(実施の形態2)
以下、実施の形態1で示した車載ネットワークシステム1の一部を変形した実施の形態について説明する。
【0124】
実施の形態1では、転送先バスがMAC非対応バスであることを条件として、ゲートウェイ装置がフレームの転送に際してフレーム内の検証用情報であるMACを削除した。これに対して、実施の形態2では、更に、MACを削除する所定削除条件として、転送先バスのバス占有率が所定値より高いことという条件を付加する。ゲートウェイ装置は、自装置に接続されている各バスでの通信状態を検知し、各バスの占有の度合い(例えばバスアイドル状態でない時間の割合等)を、例えば随時、測定或いは算定して、各バスについてのバス占有率として、転送に際してMACを削除すべきか否かの条件判断に用いる。
【0125】
本実施の形態におけるゲートウェイ装置を含む車載ネットワークシステムの構成要素は、概ね実施の形態1と同様であるため、ここでは、実施の形態1と同様の符号を用いる。ここでは実施の形態1と相違点について説明し、ここで説明しない点については、実施の形態1と同様である。
【0126】
[2.1 MAC削除条件リスト]
本実施の形態に係るゲートウェイ90の転送ルール保持部907は、バス情報9070と転送ルール情報9071との他に、MAC削除条件リスト9072を保持する。
【0127】
図12は、ゲートウェイ90の転送ルール保持部907が保持するMAC削除条件リストの一例を示す。
図12のMAC削除条件リスト9072は、MAC対応バスであるバス毎に、転送先バスID(転送先バスのバスID)とMACの削除条件とを対応付けた情報である。
図12の例は、
図1で示した各バスの符号が、そのバスの識別子(バスID)であることとした例である。
【0128】
図12の例では、バスIDが10であるバス10が転送先バスとして選択された場合においてはバス10のバス占有率が50%以上であることがMACの削除条件となることを示している。これにより、ゲートウェイ90は、MAC対応バスであるバス10へフレームを転送する際には、バス10のバス占有率が50%以上であればMACを削除して転送する。また、
図12の例では、バスIDが20であるバス20が転送先バスとして選択された場合においてはバス20のバス占有率が40%以上であることがMACの削除条件となることを示している。
図12はMACの削除条件の一例を示すに過ぎず、ゲートウェイ90は、転送先バスのバス占有率が予め定められた所定値(例えば50%等)より高いことというMACの削除条件を定め得るし、この所定値はバス毎に異なる値であっても良い。本実施の形態に係るゲートウェイ90の転送制御部906は、転送先バスのバス占有率を算定する機能を有し、MAC削除条件リスト9072が示すバス占有率に係るMACの削除条件を、実施の形態1で示した転送先バスがMAC非対応バスであることというMACの削除条件と合わせて適用する。なお、ゲートウェイ90が、バス占有率に係るMACの削除条件のみを用いて、MACを削除するか否かを判断することとしても良い。
【0129】
[2.2 フレームの転送に際してMAC削除条件リストを利用する場合の転送の動作例]
図13及び
図14は、転送元ECUが送信したフレームを一のバスから受信して、ゲートウェイ90が、MAC削除条件リストを参照して、転送先ECUが接続されている、他のバスへと転送する動作例を示す。一のバスと他のバスとのそれぞれは、MAC対応バスであり得るし、MAC非対応のバスであり得る。また、MAC対応ECU及びMAC非対応ECUのいずれもが、転送元ECUにも転送先ECUにもなり得る。以下、
図13及び
図14に即して、各装置の動作について説明する。なお、ステップS2001〜S2004は、実施の形態1で示したステップS1001〜S1004と同様なので説明を適宜省略する。
【0130】
ゲートウェイ90のフレーム送受信部901が、転送元ECUがステップS2001で送信したフレームを転送元バスから受信する(ステップS2002)。
【0131】
ゲートウェイ90の転送制御部906は、受信したフレームが受信すべきものであれば(ステップS2003)、転送ルール情報9071を参照して、いずれかのバスに転送すべきメッセージIDのフレームか否かを判断して、転送すべきフレームであれば転送先バスを選択する(ステップS2004)。
【0132】
ステップS2004で転送すべきメッセージIDのフレームであると判断された場合には、転送制御部906は、そのフレームにMACが含まれているか否かを判断し(ステップS2005)、MACが含まれている場合には、ステップS2006へ進み、MACが含まれていないときには、ステップS2006での処理をスキップしてステップS2007へ進む。転送制御部906は、受信したフレームにMACが含まれているか否かを、例えば、転送ルール保持部907が保持するバス情報9070を参照してフレームを受信したバスである転送元バスがMAC対応バスであるか否かによって判断する。この場合に、例えば転送元バスがMAC対応バスであれば受信したフレームにMACが含まれており、転送元バスがMAC非対応バスであれば受信したフレームにMACが含まれていると判断する。なお、転送元バスにこのゲートウェイ90と同機能を有する別のゲートウェイ装置が接続されているような場合を想定すれば、転送元バスがMAC対応バスであってもバス占有率に応じてMACが削除されていることがあり得る。このため、転送制御部906では、予めメッセージID毎にフレーム内のデータのサイズが定められているのであればDLCの値によってMACが付加されているか否かを判断しても良い。また、本実施の形態に係る車載ネットワークシステム1におけるゲートウェイ装置が、転送先バスに送信するフレームに、そのフレームにMACが含まれるか否かを表す情報を含ませることとしても良く、この場合には、その情報に基づいて転送制御部906は、受信したフレームにMACが含まれているか否かを判断し得る。
【0133】
ステップS2006では、ゲートウェイ90のMAC制御部920が、MAC鍵リスト9210と、保持するカウンタリスト9220とから、受信したフレームのメッセージIDに対応するMAC鍵とカウンタとを利用してMAC値を計算し、計算結果のMAC値と、受信したフレームのデータフィールド内のMACと比較して、受信したフレームの検証(MAC検証)を行う。MAC検証の結果として、不正なフレームであると判定されると(検証に失敗すれば)、ゲートウェイ90は、そのフレームの転送を中止する。MAC検証の結果として、適正なフレームであると判定されると(検証に成功すれば)、ステップS2007へ進む。
【0134】
ステップS2007では、転送制御部906が、転送ルール保持部907が保持するバス情報9070を参照して、転送先バスがMAC対応バスか否かを判断する。ステップS2007での判断の結果として、転送先バスがMAC対応バスであると判断した場合にはステップS2010へ進み、転送先バスがMAC対応バスでないと判断した場合には、ステップS2008へ進む。
【0135】
ステップS2008では、転送制御部906は、フレームのデータフィールドからMAC部分を削除する。続いて、転送制御部906は、ステップS2008で削除したMACのサイズをDLCの値から減算し(ステップS2009)、ステップS2014へ進む。なお、ゲートウェイ90が受信したフレームのデータフィールドにMACが付されていない場合においては、ステップS2008、S2009でMACの削除、及び、MACのサイズのDLCからの減算を行わない。
【0136】
ステップS2010では、転送制御部906は、転送先バスについてのバス占有率を算出し、転送ルール保持部907が保持しているMAC削除条件リスト9072の条件と比較し、MACの削除条件が満たされるか否かを判断する。MACの削除条件が満たされると、ステップS2008に移ってMACの削除を行う。
【0137】
ステップS2010でMACの削除条件が満たされないと判断した場合には、転送制御部906は、転送元バスから受信したフレームにMACが付されているか否かを確認する(ステップS2011)。MACが付されていなければ、転送制御部906は、MAC制御部920に転送先バスへ送信する送信用フレームに含ませるためのMACを生成するよう依頼し、S2012へ進む。MACが付されていれば、ステップS2014へ進む。
【0138】
ステップS2012では、MAC制御部920は、MACの付加によって増加するデータフィールドのサイズを再計算し、その値をDLCに設定する。続いて、MAC制御部920は、転送制御部906より通知されるメッセージIDと、データの値と、カウンタリスト9220内のメッセージIDに対応するカウンタ値とを結合した値に対し、MAC鍵リスト9210内のメッセージIDに対応するMAC鍵を用いて、MAC値を計算し、計算結果としてのMAC値を転送制御部906へと通知する(ステップS2013)。この通知を受けて転送制御部906は、データフィールドにMACを付加する。
【0139】
ステップS2011で、受信したフレームにMACが付されていた場合、或いは、ステップS2009又はステップS2013での処理後に、転送制御部906は、フレーム生成部905に、メッセージID、データフィールド、DLC、及び、転送先バス情報(転送先バスID)を通知する。これにより、フレーム生成部905は、転送制御部906より通知されたメッセージIDと、データフィールドとを用い、CRCを再計算して送信用フレームを構成し、転送先バス情報(転送先バスID)と、その送信用フレームとをフレーム送受信部901へ通知する(ステップS2014)。
【0140】
次に、ゲートウェイ90のフレーム送受信部901は、フレーム生成部905より生成された送信用フレームを転送先バス情報が示すバス(つまり転送先バス)へと送信する(ステップS2015)。これにより、ゲートウェイ90によりバス間でのフレームの転送が実現される。
【0141】
ステップS2015に対応して、転送先バスに接続された転送先ECUは、ゲートウェイ90により送信(転送)されたフレームを受信する(ステップS2016)。なお、転送先ECUがMAC対応ECUである場合において、受信したフレームにおけるデータフィールドの内容から、バス占有率に応じてMACが削除されていることがあり得る。これに対して、MAC対応ECUは、例えば、自らが処理対象とするメッセージIDのフレームについてのデータのサイズが予め仕様等により定められているのであれば、DLCの値によってMACが付加されているか否かを判断可能となる。また、本実施の形態に係る車載ネットワークシステム1においてフレームには、そのフレームにMAC(検証用情報)が含まれるか否かを表す情報(例えばデータフィールド内の1ビットの領域を用いたフラグ)を含ませることとしても良く、ゲートウェイ90でMACを削除した場合には、MACが含まれない旨を示す情報をフレームに含ませ得る。この場合には、ステップS2015でフレームを受信したMAC対応ECUは、そのMACが含まれるか否かを表す情報に基づいて、MACが含まれていればMACの検証を行い、MACが含まれていなければMACの検証を行わない等の対処を行い得る。
【0142】
[2.3 実施の形態2の効果]
実施の形態2に係る車載ネットワークシステム1では、ゲートウェイ90が、フレーム(メッセージ)の転送に際して、転送先バスにMAC対応ECUが接続されていない場合(つまり転送先バスがMAC非対応バスである場合)に加えて、転送先バスにMAC対応ECUが接続されていてもその転送先バスのバス占有率がMACの削除条件を満たす程度に高い場合にも、MACを削除して送信するので、転送先バスのトラフィック量を抑えることできる。また、MAC対応バスである転送先バスのバス占有率がMACの削除条件を満たさない程度に低い場合には、ゲートウェイ90がMACを含むフレームを転送するので、その転送先バスに接続されたMAC対応ECUにとっては、MACの検証によりフレームが不正か否かを判別可能となり、車載ネットワークのセキュリティの確保等が実現され得る。
【0143】
(実施の形態3)
以下、実施の形態1で示した車載ネットワークシステム1の一部を変形した、また別の実施の形態について説明する。
【0144】
実施の形態1では、データフレームのフォーマットとして、バス間で共通してCANの標準フォーマットを用いる例を示した(
図2参照)。これに対して、実施の形態3では、バス毎に、CANの標準フォーマットを用いるか、拡張フォーマットを用いるかが定められている例を示す。拡張フォーマットは、CANの派生プロトコルであるCAN−FD(CAN with Flexible Data Rate)で規定されるフォーマットである。
【0145】
本実施の形態におけるゲートウェイ装置を含む車載ネットワークシステムの構成要素は、概ね実施の形態1と同様であるため、ここでは、実施の形態1と同様の符号を用いる。ここでは実施の形態1と相違点について説明し、ここで説明しない点については、実施の形態1と同様である。
【0146】
[3.1 標準フォーマット及び拡張フォーマット]
図15は、データフレームの標準ファーマットと拡張フォーマットとを示す図である。
図15において(a)は、
図2に示したものと同様の、CANの標準フォーマットを示し、(b)は、CAN−FDで規定されるフォーマットである拡張フォーマットを示す。
【0147】
標準フォーマットでは、ID(メッセージID)が11ビットであり、データフィールドが64ビットであるのに対して、拡張フォーマットでは、標準フォーマットにおけるIDフィールドのベースIDの11ビットと、拡張IDの18ビットとを合わせて29ビットでID(メッセージID)が表され、データフィールドが512ビットに拡張されている。
【0148】
[3.2 バス情報(対応フォーマットリスト)]
本実施の形態に係るゲートウェイ90の転送ルール保持部907は、バス情報9070と転送ルール情報9071との他に、バス情報の一種としての対応フォーマットリスト9073を保持する。
【0149】
図16は、本実施の形態に係るゲートウェイ90の転送ルール保持部907が保持するバス情報の一種としての対応フォーマットリストの一例を示す。実施の形態1で示したバス情報9070(
図6参照)は、各バスがMAC対応バスであるかMAC非対応バスであるかをバス毎に示した情報であるのに対して、この対応フォーマットリスト9073は、各バスで送受信されるデータフレームのフォーマットが標準フォーマットであるか拡張フォーマットであるかをバス毎に示した情報である。なお、
図16の例は、
図1で示した各バスの符号が、そのバスの識別子(バスID)であることとした例である。
【0150】
図16の例では、例えばバスIDが10であるバス10は、拡張フォーマットのフレームの送受信に対応していることを示している。また、バスIDが50であるバス50は、標準フォーマットのフレームの送受信に対応しており、拡張フォーマットのフレームの送受信に対応していないことを示している。なお、対応フォーマットリスト9073の内容を、バス情報9070に含ませることとしても良い。
【0151】
また、例えば、拡張フォーマットはデータフィールドが比較的大きいため、MAC対応ECUを接続したバスを拡張フォーマットに対応させ、MAC対応ECUを接続しておらずMAC非対応ECUを接続しているバスを、標準フォーマットに対応させるように車載ネットワークシステムを構成しても良い。この場合には、バス情報9070を用いずに対応フォーマットリスト9073に基づいて、ゲートウェイ90が、転送先バスが、標準フォーマットに対応しているバスか拡張フォーマットに対応しているバスかによって、MAC対応バスであるかMAC非対応バスであるかを判断するようにしても良い。つまり、ゲートウェイ90は、バス情報の一種である対応フォーマットリスト(バス毎にバスとフレームフォーマットとを対応付けた情報)により所定のフレームフォーマットに対応付けられている場合にはMACの削除条件が満たされたとして、MACを削除して転送を行い得る。
【0152】
[3.3 標準フォーマットのバスから拡張フォーマットのバスへのフレーム転送に係るフォーマット変換例]
図17は、フレームの転送元バスが標準フォーマットに対応したMAC対応バスで、転送先バスが拡張フォーマットに対応したMAC非対応バスである場合の転送に係るフォーマット変換例を示す図である。
【0153】
同図の例では、ゲートウェイ90の転送制御部906が、転送先バスがMAC非対応バスであると判断し、受信したフレームのデータフィールドのMACを削除するとともに、フォーマットを標準フォーマットから拡張フォーマットに変更して、転送するように制御する。拡張フォーマットに変更するため、転送制御部906は、
図17に示すように、受信した複数の標準フォーマットのデータフレームを1つの拡張フォーマットのフレームに統合して転送するようにフレーム生成部905に指示する。この指示に対応して、フレーム生成部905は、転送制御部906から受信した複数のデータを1つのデータに結合して、拡張フォーマットのフレームを生成する。そして、フレーム送受信部901は、フレーム生成部905にて生成された拡張フォーマットのフレームを、転送先バスへと送信する。
【0154】
なお、ゲートウェイ90が、フレームの転送に際して、MACを付加するか削除するかに係る判断については、実施の形態1と同様である(
図10及び
図11参照)。この判断を、例えば実施の形態2で示したように転送先バスのバス占有率にも基づいて行っても良い(
図13及び
図14参照)。
【0155】
標準フォーマットに対応したバスから拡張フォーマットに対応したバスへの転送に際しては、ゲートウェイ90は、例えば、受信した標準フォーマットのデータフレームを即座に転送するのではなく、一定時間待ってその間に後続する同じメッセージIDの1以上のフレームが受信できれば、合わせて拡張フォーマットに変換してから変換後のフレームを転送先バスへと送信(転送)する。この一定時間待っている間に後続する同じメッセージIDのフレームが受信できなければ、一定時間の経過時点で受信できていたデータフレームのみを拡張フォーマットに変換して転送することになる。なお、ゲートウェイ90は、転送に際してフレームを統合しなくても良く、例えば、1つの標準フォーマットのフレームを受信する都度、1つの拡張フォーマットのフレームを送信することとしても良い。
【0156】
[3.4 拡張フォーマットのバスから標準フォーマットのバスへのフレーム転送に係るフォーマット変換例]
図18は、フレームの転送元バスが拡張フォーマットに対応したMAC対応バスで、転送先バスが標準フォーマットに対応したMAC非対応バスである場合の転送に係るフォーマット変換例を示す図である。
【0157】
同図の例では、ゲートウェイ90の転送制御部906が、転送先バスがMAC非対応バスであると判断し、受信したフレームのデータフィールドのMACを削除するとともに、フォーマットを拡張フォーマットから標準フォーマットに変更して、転送するように制御する。標準フォーマットに変更するため、転送制御部906は、
図18に示すように、受信した拡張フォーマットのデータフレームのデータフィールドの長さに応じて、1つの標準フォーマットのフレームとして転送するように、或いは、標準フォーマットのデータフィールドに収まらない場合には複数の標準フォーマットのフレームへと分割して転送するように、フレーム生成部905に指示する。この指示に対応して、フレーム生成部905は、転送制御部906から受信したデータを必要に応じて複数のデータに分割して、各データをデータフィールドに格納した標準フォーマットの各データフレームを生成する。そして、フレーム送受信部901は、フレーム生成部905にて生成された標準フォーマットの各フレームを、転送先バスへと送信する。ゲートウェイ90は、分割により複数のフレームを送信することとなる場合において、送信を連続的に行っても良いし、例えばフレーム間に予め定めた送信間隔を空けて断続的に送信を行っても良い。
【0158】
[3.5 実施の形態3の効果]
実施の形態3に係る車載ネットワークシステム1では、ゲートウェイ90が、フレーム(メッセージ)の転送に際して、フォーマットの変換を行うことができ、転送先バスにMAC対応ECUが接続されていない場合等にMACを削除して送信するので、転送先バスのトラフィック量を抑えることできる。
【0159】
(他の実施の形態)
以上のように、本発明に係る技術の例示として実施の形態1〜3を説明した。しかしながら、本発明に係る技術は、これに限定されず、適宜、変更、置き換え、付加、省略等を行った実施の形態にも適用可能である。例えば、以下のような変形例も本発明の一実施態様に含まれる。
【0160】
(1)上記実施の形態では、転送先バスがMAC対応バスであるか否か、転送先バスのバス占有率、転送先バスが対応しているフレームのフォーマット等に基づき、転送に際してフレームのMACを削除すべきか否かをゲートウェイ90が判断する例を示したが、これらの組み合わせを用いて判断しても良いし、他の条件を合わせて用いて判断しても良い。実施の形態1では、転送先バスがMAC対応バスである場合にはゲートウェイはMACを削除せずに(MACが付加されていなければ付加して)フレームを転送することとした。このMAC対応バスには、MAC対応ECUの他にMAC非対応ECUが接続されていても良い。この場合に、MAC非対応ECUでは、フレームに含まれるMACを検証しないが、MAC対応ECUではMACを検証するので、セキュリティの確保が実現され得る。
【0161】
(2)上記実施の形態2では、ゲートウェイ90が、MACを含むフレームの転送に際して、転送先バスのバス占有率が、MACの削除条件として定められた占有率の値よりも低い場合に、そのMACを含んだフレームのデータフィールドの内容を変更せずにフレームを転送先バスへと転送(送信)する例を示したが、MACの付け替えを行って転送しても良い。これは実施の形態1で示したように、バス毎にMAC鍵が異なるようにしているのであれば、MACを転送先バスに合わせたMAC鍵で生成したものに付け替える方式を採り得る。MAC鍵は、ECU毎に個別のMAC鍵にしても良いし、同一バス上に接続されるECUは同一のMAC鍵を利用することとしても良い。また、ゲートウェイ90は、MACを含まないフレームの転送に際して、転送先バスのバス占有率が、MACの付加条件として定められた占有率の値よりも低い場合に、そのフレームのデータフィールドの内容にMACを付加したフレームを構成して転送先バスへと転送(送信)することとしても良い。
【0162】
(3)上記実施の形態3では、ゲートウェイ90が、CANの標準フォーマットのデータフレームからMACを削除して、複数のデータフレームを1つのCAN−FDの拡張フォーマットのデータフレームとして送信する例を示したが、転送先バスに接続されたECUがMAC対応ECUである場合には、拡張フォーマットのデータフレーム内にMACを付加して送信しても良い。なお、標準フォーマットの複数のデータフレームにおけるMACに基づいて(例えば複数のMACの結合等で)、拡張フォーマットのデータフレーム内に含ませるMACを算定しても良いし、標準フォーマットの複数のデータフレームにおけるデータを結合したものである、拡張フォーマットのデータフレーム内に含ませるデータに基づいて、そのMACの算定を行っても良い。
【0163】
(4)上記実施の形態3では、転送元バスと転送先バスとで対応フォーマットが異なる場合においてフレームの転送に際してゲートウェイ90がMACを削除する例を示したが、転送元バスと転送先バスとが標準フォーマットに対応する場合において、ゲートウェイ90が、複数のフレームについてMACを削除して、1つの標準フォーマットのフレームにまとめて転送しても良い。例えば、データフィールドが4バイトのデータと4バイトのMACとで構成される標準フォーマットのデータフレームを受信する場合に、ゲートウェイ90は、2つのフレームのデータフィールドの4バイトのデータを、1つにまとめて8バイトのデータにしてデータフィールドに格納して標準フォーマットのデータフレームにして転送を行っても良い。また、転送元バスと転送先バスとが拡張フォーマットに対応する場合にも、同様に、ゲートウェイ90は、MACを削除した複数のフレームの内容を1つの拡張フォーマットのフレームとして転送しても良い。
【0164】
(5)上記実施の形態では、1台のゲートウェイ90に注目して説明したが、ゲートウェイ装置を複数含むように車載ネットワークシステムを構成しても良く、1つのバスに複数のゲートウェイ装置が接続され得る。この各ゲートウェイ装置は、各実施の形態で示したゲートウェイ90と同様の転送に係る処理を行い得る。
【0165】
(6)上記実施の形態では、バス毎に、そのバスがMAC対応バスか否かを区別して、フレームの転送に際してMACを削除するか付加するかの判断を行うゲートウェイ90を示した。MACは、フレームの検証用情報の一例であり、他の検証に用いられる情報であっても良い。つまり、ゲートウェイ90は、バス毎にそのバスが、検証用情報(例えばMAC)に基づくフレームの検証機能を有するECUが接続されている検証対応バス(例えばMAC対応バス)か、検証機能を有するECUが接続されていない検証非対応バス(例えばMAC非対応バス)かを示すバス情報に基づいて、検証用情報の削除又は付加に係る判断を行い得る。この他に、ゲートウェイ90は、フレームの転送に際して、そのフレームのメッセージIDと転送先バスにおいてそのメッセージIDのフレームを処理するECUがMAC対応ECUであるかMAC非対応ECUであるかを予め対応付けておいた情報を用いて、MACを削除すべきか否か、或いはMACを付加すべきか否かを判断することとしても良い。この具体例として、ゲートウェイ90は、メッセージID毎に、MAC対応ECUにより検証等の処理対象とされる検証メッセージ識別子と、その検証等の処理対象とされない非検証メッセージ識別子とを区別するメッセージ識別子情報を保持し、受信したフレームのメッセージIDに応じてMACを削除する削除条件が満たされたか否かをメッセージ識別子情報に基づいて判断することとしても良い。例えば、ゲートウェイ90は、受信したフレームのメッセージIDが非検証メッセージ識別子であるときにはMACの削除条件が満たされたとして、MACを削除して転送し得る。なお、バス情報にメッセージ識別子情報が含まれていても良く、ゲートウェイ90は、転送先バスが検証対応バス(例えばMAC対応バス)である場合において、受信されたフレームの識別子が非検証メッセージ識別子であるときにはMACの削除条件が満たされたとして、MACを削除して転送を行うこととしても良い。また別の具体例として、ゲートウェイ90は、ECU毎に、MAC対応ECU(MACに基づくフレームの検証機能を有するECU)であるか否かを示すECU情報を保持し、MACを削除する削除条件が満たされたか否かをこのECU情報に基づいて判断することとしても良い。例えば、ゲートウェイ90は、受信したフレームの転送先となる転送先バスに接続されてそのフレームに応じた処理を実行するECUがMAC対応ECUでない場合に、MACの削除条件が満たされたとして、MACを削除して転送し得る。なお、フレームの転送に際して、ゲートウェイ90は、どのバスにどのECUが接続されているかを示す情報を保持して利用しても良いし、どのメッセージIDを含むフレームがどのECUに処理されるかを示す情報を保持して利用しても良い。ゲートウェイ90は、バス毎にバスがMAC対応か否かを示すリスト、フレームを受信し得るECU毎にMAC対応ECUであるか否かを示すリスト、メッセージID毎にMAC対応ECUに処理されるか否かを示すリスト等を適宜利用し、必要に応じて転送先バスのバス占有率を用いて、転送に際してフレームのMACを削除するか否かを判断し得る。
【0166】
(7)上記実施の形態では、バス単位で、MAC対応バス(MAC対応ECUが接続されているバス)か否かにより、ゲートウェイ90がフレームの転送に際してMACを削除すべきか否かを判断する例を示した。しかし、1つのバスにMAC対応ECUとMAC非対応ECUとが接続されている場合には、ゲートウェイ90がフレームを受信した際に、MAC対応ECU向けの、MACを含ませたフレームと、そのフレームと異なるメッセージIDを有するMAC非対応ECU向けの、MACを削除したフレームとを送信することで、フレームの転送を実現しても良い。即ち、ゲートウェイ90の転送部(転送制御部906、フレーム生成部905、フレーム送受信部901等)により、受信された検証用情報(例えばMAC)を含む第1フレームについて、その第1フレームの内容のうち検証用情報を除いた内容に基づく情報を含み且つ検証用情報を含まない第2フレームを生成してその第2フレームを転送先バスに送信することで、フレームの転送を行い、更に、その第1フレームの内容のうち検証用情報を除いた内容に基づく情報を含み且つ検証用情報を含み、第2フレームとは異なる、フレームの識別子を有する第3フレームを送信することとしても良い。この場合に、ゲートウェイ90から送信される2種類のフレームそれぞれのメッセージIDについては、予め車載ネットワークシステム1において定められ、各ECUは必要なメッセージIDを識別して受信する。
【0167】
(8)上記実施の形態で示したゲートウェイ90は、転送に際して例えばステップS1006等でMACを検証するが、ゲートウェイ90は、MAC検証に成功した場合に、転送するフレームの一部に予め定めておくフラグ領域に、MACを削除するか否かに拘わらず、MAC検証に成功したことを示す値を設定することとしても良い。この場合において、転送先バスに接続されたECUでは、MAC検証に成功したことを示す値がフラグ領域に設定されているフレームを受信したときに、そのフレームについてのMACの検証処理を省略しても良い。これにより、ECUの処理負荷の削減、省電力化等の効果が生じる。また、上記実施の形態では、受信したフレームのMACの検証に失敗した場合に、ゲートウェイ90が、そのフレームの転送を中止する例を示したが、フレームのMACの検証に失敗した場合にそのフレームのメッセージIDを記憶しておき、ゲートウェイ90は、それ以後そのメッセージIDのフレームを受信しても、転送を行わないこととしても良い。
【0168】
(9)上記実施の形態3では、転送先バスと転送元バスとで対応するフレームフォーマットが異なる場合におけるMACの削除について説明しているが、逆に転送に際してMACを付加しても良い。また、フレームフォーマットが異なる他、転送元と転送先バスとにおいて対応する通信プロトコル種別が相違(物理層、その他の上位層のいずれかが相違)する場合に、ゲートウェイ90が、フレームに対するMACの削除又は付加を行うこととしても良い。ゲートウェイ90は、一のネットワークから受信したフレームを他のネットワークへと転送する機能を有するものであれば良く、バス以外のネットワーク(例えば無線ネットワーク)から受信したフレームをCANのバスに転送するものであっても良い。フレームを受信したネットワークと、転送先のネットワークとのそれぞれが対応する通信プロトコル種別の相違は、例えばネットワーク種別の相違である。バス情報として、バス毎にそのバスでの通信で用いられる通信プロトコルの種別を対応付けていても良い。例えば、ゲートウェイ90がCANのバス以外にEthernet(登録商標)にも接続されており、転送元ネットワークがEthernet(登録商標)であって転送先ネットワークがCANのバスである場合に、ゲートウェイ90は、MACの削除条件が満たされたと判定してMACを削除するようにしても良い。また、転送元ネットワークがCANのバスで、転送先ネットワークがEthernet(登録商標)の場合に、ゲートウェイ90は、MACを付加するようにしても良い。ここでの、MACの削除或いは付加の条件とする転送元ネットワークと転送先ネットワークとに係るネットワーク種別(通信プロトコル)は、いかなるものであっても良く、例えば、CAN、CAN−FD、Ethernet(登録商標)、LIN(Local Interconnect Network)、Flexray(登録商標)等の組合せであっても良い。また、ネットワーク種別毎にMACの削除又は付加を定めておく場合において、フレーム長が一定値より長いネットワークを転送先とするときにはMACを付加し、その一定値より短いネットワークを転送先とするときにはMACを削除するという方式を用いても良い。
【0169】
(10)上記実施の形態で示したゲートウェイ90は、受信したデータフレームの内容が暗号化されている場合には、そのフレームを復号した後に、その復号したフレームの内容からMACを削除して、或いは、復号したフレームの内容にMACを付加して、転送を行うこととしても良い。この場合に再度フレームの内容を暗号化しても良い。なお、ゲートウェイ90は、転送先となるECUが復号機能を有さない場合等に転送に際してフレームの内容を復号により平文にして送信することとしても良い。このフレームを受信したECUでは復号処理の負荷が削減され得る。また、転送先のECUが復号機能を有する場合には、そのECUに対応した鍵でフレームの内容を暗号して送信しても良い。このとき、共通鍵暗号方式で暗号化して転送するのであれば、ゲートウェイ90と転送先のECUとの間で共有している鍵で再暗号化することとしても良い。
【0170】
(11)上記実施の形態で示したMAC対応バスは、MAC対応ECUが接続されているバスであることとしたが、MAC対応バスは、例えば、そのバスにMACを含むフレームが流されるべきバスであることとしても良い。MAC非対応バスは、例えば、そのバスにMACを含まないフレームが流されるべきバスであることとしても良い。車載ネットワークシステム1において、各バスをMAC対応バスかMAC非対応バスかに分類しておくことにより、各バスについて、そのバスに適したECUを随時追加することが可能になる。
【0171】
(12)上記実施の形態で示したゲートウェイ90は、フレームの転送に際して一定条件下でMACを削除する機能と一定条件下でMACを付加する機能とを含むこととしたが、その機能の一方のみを含むものであっても良い。
【0172】
(13)上記実施の形態における各ECU(ゲートウェイを含む)は、例えば、プロセッサ、メモリ等のデジタル回路、アナログ回路、通信回路等を含む装置であることとしたが、ハードディスク装置、ディスプレイ、キーボード、マウス等の他のハードウェア構成要素を含んでいても良い。また、メモリに記憶された制御プログラムがプロセッサにより実行されてソフトウェア的に機能を実現する代わりに、専用のハードウェア(デジタル回路等)によりその機能を実現することとしても良い。
【0173】
(14)上記実施の形態における各装置を構成する構成要素の一部または全部は、1個のシステムLSI(Large Scale Integration:大規模集積回路)から構成されていると
しても良い。システムLSIは、複数の構成部を1個のチップ上に集積して製造された超多機能LSIであり、具体的には、マイクロプロセッサ、ROM、RAM等を含んで構成されるコンピュータシステムである。前記RAMには、コンピュータプログラムが記録されている。前記マイクロプロセッサが、前記コンピュータプログラムに従って動作することにより、システムLSIは、その機能を達成する。また、上記各装置を構成する構成要素の各部は、個別に1チップ化されていても良いし、一部又はすべてを含むように1チップ化されても良い。また、ここでは、システムLSIとしたが、集積度の違いにより、IC、LSI、スーパーLSI、ウルトラLSIと呼称されることもある。また、集積回路化の手法はLSIに限るものではなく、専用回路又は汎用プロセッサで実現しても良い。LSI製造後に、プログラムすることが可能なFPGA(Field Programmable Gate Array)や、LSI内部の回路セルの接続や設定を再構成可能なリコンフィギュラブル・プロ
セッサを利用しても良い。さらには、半導体技術の進歩又は派生する別技術によりLSIに置き換わる集積回路化の技術が登場すれば、当然、その技術を用いて機能ブロックの集積化を行っても良い。バイオ技術の適用等が可能性としてあり得る。
【0174】
(15)上記各装置を構成する構成要素の一部または全部は、各装置に脱着可能なICカードまたは単体のモジュールから構成されているとしても良い。前記ICカードまたは前記モジュールは、マイクロプロセッサ、ROM、RAM等から構成されるコンピュータシステムである。前記ICカードまたは前記モジュールは、上記の超多機能LSIを含むとしても良い。マイクロプロセッサが、コンピュータプログラムに従って動作することにより、前記ICカードまたは前記モジュールは、その機能を達成する。このICカードまたはこのモジュールは、耐タンパ性を有するとしても良い。
【0175】
(16)本発明の一態様としては、上述した車載ネットワークにおけるフレームの転送に係る転送方法等の方法であるとしても良い。例えば、転送方法は、フレームを受信する受信ステップと、受信ステップでフレームが受信された場合に、バスの1つである転送先バスへ、そのフレームを、そのフレームの検証に用いられる検証用情報(例えばMAC)の削除又は付加をした上で、転送する転送ステップとを含む。また、この方法をコンピュータにより実現するコンピュータプログラムであるとしても良いし、前記コンピュータプログラムからなるデジタル信号であるとしても良い。また、本発明の一態様としては、前記コンピュータプログラムまたは前記デジタル信号をコンピュータで読み取り可能な記録媒体、例えば、フレキシブルディスク、ハードディスク、CD−ROM、MO、DVD、DVD−ROM、DVD−RAM、BD(Blu-ray(登録商標) Disc)、半導体メモリ等に記録したものとしても良い。また、これらの記録媒体に記録されている前記デジタル信号であるとしても良い。また、本発明の一態様としては、前記コンピュータプログラムまたは前記デジタル信号を、電気通信回線、無線または有線通信回線、インターネットを代表とするネットワーク、データ放送等を経由して伝送するものとしても良い。また、本発明の一態様としては、マイクロプロセッサとメモリを備えたコンピュータシステムであって、前記メモリは、上記コンピュータプログラムを記録しており、前記マイクロプロセッサは、前記コンピュータプログラムに従って動作するとしても良い。また、前記プログラムまたは前記デジタル信号を前記記録媒体に記録して移送することにより、または前記プログラムまたは前記デジタル信号を、前記ネットワーク等を経由して移送することにより、独立した他のコンピュータシステムにより実施するとしても良い。
【0176】
(17)上記実施の形態及び上記変形例で示した各構成要素及び機能を任意に組み合わせることで実現される形態も本発明の範囲に含まれる。