以下、図面を参照して発明を実施するための形態について説明する。
以下に説明する実施形態(第1実施形態、第2実施形態)では、相互に通信可能な態様で、1対1の通信線により物理的に接続される複数のノードであって、通信線により物理的にループ接続される複数のループノードを含む複数のノードが、通信線を通じた1つの経路だけで相互に通信が行われる論理的なネットワークを構成し、該ネットワークの構成に関する情報に基づき相互に通信を行う車載ネットワークシステムを例示して説明を行う。
<第1実施形態>
本実施形態に係る車載ネットワークシステム1は、後述の如く、相互に通信可能な態様で、1対1の通信線により物理的に接続される複数のノードとして、親ノード10と、親ノード10を起点として階層的に通信線25で物理的に接続される複数の子ノード20を含む。そして、車載ネットワークシステム1では、親ノード10及び複数の子ノード20によって、親ノード10を起点とする論理的なツリー型のネットワークを構成され、ネットワークの構成に関する情報(後述するMACアドレステーブルやルーティングテーブル)に基づき相互に通信が行われる。
まず、図1、図2(図2A、図2B)を参照して、本実施形態に係る車載ネットワークシステム1の構成について説明をする。
図1は、車載ネットワークシステム1の構成の一例を概略的に示すブロック図である。車載ネットワークシステム1は、イーサネット通信プロトコルに基づき、複数の通信ノード(親ノード10、子ノード20)が相互に通信を行う。車載ネットワークシステム1は、親ノード10と、複数の子ノード20、即ち、子ノード1〜子ノード6(子ノード20−1〜20−6)を含み、親ノード10及び複数の子ノード20が、通信線25を介して階層的に接続されている。
車載ネットワークシステム1について、物理的なネットワークの側面から説明をすると、車載ネットワークシステム1では、1つの親ノード10(ルートノード)と、親ノード10を起点として階層的に通信線25で物理的に接続される複数の子ノード20(子ノード20−1〜20−6)が含まれる。ネットワークの最上位の階層(第1階層)に位置するルートノードとしての親ノード10は、通信線25を介して、1つ下位の階層(第2階層)の子ノード20−1と子ノード20−6とに接続される。また、第2階層の子ノード20−1は、通信線25を介して、1つ下位の階層(第3階層)の子ノード20−2と子ノード20−5とに接続される。また、第3階層の子ノード20−2は、通信線25を介して、1つ下位の層(第4階層)の子ノード20−3と子ノード20−4とに接続される。また、第3層の子ノード20−5は、通信線25を介して、1つ下位の層(第4層)の通信ノードである子ノード20−4に接続される。即ち、子ノード20−4は、物理的に、上位の階層の2つのノード(子ノード20−2,20−5)と接続されている。そのため、子ノード20−1,20−2,20−4,20−5は、ループ接続されている。また、第2階層の子ノード20−6及び第4階層の子ノード20−3,20−4は、下の階層の他のノードと接続されない。
また、車載ネットワークシステム1について、論理的なネットワークの側面から説明すると、車載ネットワークシステム1では、親ノード10と、複数の子ノード20(子ノード20−1〜20−6)とが、論理的なツリー型のネットワークを構成する。ツリー型のネットワークとは、ルートノード(親ノード10)と、各子ノード(子ノード20−1〜20−6)との間の通信経路が1つだけのネットワークである。そして、親ノード10及び子ノード20−1〜20−6が、論理的なネットワークの構成に関する情報(例えば、後述するルーティングテーブルやMACアドレステーブル等)に基づき相互に通信を行う。以下、図2を参照して、車載ネットワークシステムに係る論理的なネットワークの構成について説明をする。
図2は、車載ネットワークシステム1に係る論理的なネットワークの構成を示す図である。具体的には、図2Aは、車載ネットワークシステム1に係る論理的なネットワークの一例(以下、「メインネットワーク」(第1のネットワークの一例)と称する)の構成を示す図である。また、図2Bは、車載ネットワークシステム1に係る論理的なネットワークの他の例(以下、「代替ネットワーク」(第2のネットワークの一例)と称する)の構成を示す図である。
子ノード20−1,20−2,20−4,20−5は、上述の如く、物理的にループ接続(冗長接続)されており、2つの経路を通じて、相互に通信可能な構成を有する。そのため、RSTPのアルゴリズムを用いることにより、図2Aに示すように、メインネットワークでは、子ノード20−5と子ノード20−4との間の接続経路(図中の点線)がブロック状態に設定される。具体的には、後述する、子ノード20−5のスイッチ21−5のポートP1或いは子ノード20−4のスイッチ21−4のポートP1がブロックポートに設定される。これにより、ブロードキャストストームを回避し、論理的なツリー型のネットワークトポロジ(メインネットワーク)を構成することができる。
一方、子ノード20−1,20−2,20−4,20−5を物理的にループ接続する通信線25のうちのメインネットワークの構成に含まれる通信線25の何れかに断線等の通信途絶(対象となる通信線25を経由する通信ができなくなる通信障害)が発生した場合、断線等が発生した通信線25を経由した通信を行うことができなくなる。そのため、RSTPのアルゴリズムを用いることにより、ブロック状態の冗長接続された部分、即ち、子ノード20−5と子ノード20−4との間の接続経路(通信線25)が論理的に通信可能なアクティブ状態に設定変更される。具体的には、子ノード20−5或いは子ノード20−4のブロック状態に設定されたポートがフォワーディング状態に設定される。これにより、子ノード20−1,20−2,20−4,20−5を物理的にループ接続する通信線25のうちのメインネットワークの構成に含まれない通信線25を含む、論理的なツリー型の代替ネットワークが構成され、子ノード20−1,20−2,20−4,20−5を経由する通信を復旧させることができる。例えば、メインネットワークの構成(図2A参照)を前提として、図2Bに示すように、子ノード20−1と子ノード20−2との間の接続経路に断線等による通信途絶が発生した場合(図中の×印)、親ノード10、子ノード20−1等は、子ノード20−2,20−4と通信できなくなる。そのため、子ノード20−5と子ノード20−4との間の接続経路(通信線25)がブロック状態からアクティブ状態に設定変更されることにより、親ノード10、子ノード20−1等は、子ノード20−5を経由する通信経路で子ノード20−2,20−4と通信できるようになる。
尚、論理的なツリー型の代替ネットワークには、当然の如く、子ノード20−1,20−2,20−4,20−5を物理的にループ接続する通信線25のうちのメインネットワークの構成に含まれる、通信途絶が発生した通信線25を含まない。
尚、子ノード20−1と子ノード20−5との間の接続経路、或いは、子ノード20−2と子ノード20−4との間の接続経路に断線等による通信途絶が発生した場合についても、同様に、子ノード20−5と子ノード20−4との間の接続経路がブロック状態からアクティブ状態に設定変更される。
通常、RSTPのアルゴリズムは、ループ接続される子ノード20−1,20−2,20−4,20−5の各々に含まれるスイッチ21(スイッチ21−1,21−1,21−4,21−5)の相互間でのBPDU(Bridge Protocol Data Unit)のやり取りに基づき、ルートブリッジ(例えば、子ノード20−1のスイッチ21−1)により実行される。これに対して、本実施形態では、論理的なネットワークの構成に関する管理機能を親ノード10に集約させる。即ち、親ノード10は、ループ接続される子ノード20−1,20−2,20−4,20−5同士を接続する通信線25のうちのメインネットワークに含まれる通信線25の通信途絶(通信障害)をモニタリングする。そして、親ノード10は、通信途絶が検出された場合、RSTPに相当する処理を行い、子ノード20−5と子ノード20−4との間の接続経路をブロック状態からアクティブ状態にする。親ノード10による当該処理の詳細は、後述する。
図1に戻り、親ノード10は、例えば、車両に搭載される各種ECU(Electronic Control Unit)や、ネットワークの最上位のノードとして外部のネットワークとの通信を中継するゲートウェイ装置(ゲートウェイECU)等である。親ノード10は、車載ネットワークシステム1において、上述の如く、論理的なネットワークの構成を管理する機能を有する。親ノード10は、例えば、EEPROM(Electrically Erasable Programmable Read Only Memory)等の内部メモリに物理的なネットワークの構成に関する情報(物理構成情報)を保持しており、通信障害等の発生時に、物理構成情報と、現在の論理的なネットワークの構成に関する情報(論理構成情報)とに基づき、ネットワークの論理構成を変更し、通信を復旧させる処理等を行う。親ノード10は、スイッチ11、マイコン12を含む。
スイッチ11は、複数のポート(ポートP0,P1)を備え、各ポートに接続される通信線25を通じて、複数のノードと接続するスイッチ機能を有するネットワークデバイスである。スイッチ11のポートP0には、通信線25を介して、子ノード20−1(スイッチ21−1)が接続され、スイッチ11のポートP1には、通信線25を介して、子ノード20−6(スイッチ21−6)が接続されている。スイッチ11は、各ポートを通じて接続される他のノード(子ノード20−1〜20−6)のMACアドレスを、例えば、図3に示すMACアドレステーブルとして記憶している。以下、図3を参照して、説明を続ける。
例えば、図3に示すように、親ノード10のスイッチ11に対応するMACアドレステーブルには、子ノード20−1〜20−6の各々に対応するMACアドレス"1"〜"6"とポート番号とが対応付けられている。具体的には、メインネットワークの構成において、子ノード20−1〜20−5は、スイッチ11のポートP0の先に接続されており、子ノード20−6は、スイッチ11のポートP1の先に接続されていることが示される。スイッチ11は、MACアドレステーブルに基づき、親ノード10が送信する通信フレーム(イーサネットフレーム)のヘッダ部に含まれる送信先のMACアドレスに対応するノードが接続されるポートからだけ通信フレームを送信する。
図1に戻り、マイコン12は、CPU,RAM,ROM,I/O等を含み、ROMに格納される各種プログラムをCPU上で実行することにより各種機能を実現する。マイコン12は、機能部として、ネットワーク障害範囲特定部(NW障害範囲特定部)121、ネットワーク再構成部(NW再構成部)122、配信部123を含む。
尚、NW障害範囲特定部121、NW再構成部122、配信部123の機能は、マイコン22の代わりに、任意のハードウェア、ソフトウェア、或いはその組み合わせにより実現されてもよい。
NW障害範囲特定部121は、子ノード20−1、20−2から受信する通信途絶通知に含まれる通信途絶に関する情報(通信途絶情報)に基づき、ネットワークの通信障害(ネットワーク障害)の範囲を特定する。例えば、NW障害範囲特定部121は、論理構成情報(例えば、ルーティングテーブル)と、通信途絶情報(例えば、リンクダウン状態のポート番号)に基づき、子ノード20−1,20−2,20−4,20−5をループ接続する通信線25のうちの現状の論理的なネットワーク(メインネットワーク)の構成に含まれる通信線25の何れに通信途絶状態が発生しているかを把握する。そして、NW障害範囲特定部121は、親ノード10との間で通信途絶状態の子ノード20を特定する。例えば、メインネットワークの構成を前提として、上述の如く、子ノード20−1と子ノード20−2との接続経路に断線等が発生し、子ノード20−2との間の接続経路の通信途絶を検出した子ノード20−1から通信途絶通知を受信すると、図4に示すメインネットワークに対応するルーティングテーブルを確認する。以下、図4を参照して、説明を続ける。
尚、図中、ノード識別情報の"0"は、親ノード10に対応し、ノード識別情報の"1"〜"6"は、子ノード20−1〜20−6に対応する。また、経路情報における"1"〜"6"は、ノード識別情報の場合と同様、子ノード20−1〜20−6に対応し、カッコ内は、各ノードのスイッチ(スイッチ11、スイッチ21)のポート番号を表している。
図4に示すように、ルーティングテーブルは、例えば、各ノード(親ノード10、子ノード20)のノード識別情報と、親ノード10からノード識別情報に対応するノード(子ノード20)までの通信経路を示す経路情報とにより構成される。NW障害範囲特定部121は、ルーティングテーブルを確認することにより、断線等が発生している子ノード20−1と子ノード20−2との間の接続経路を経由して親ノード10と通信する子ノード20−2〜20−4(ノード識別情報"2"〜"4")を特定することができる。
図1に戻り、NW再構成部122は、NW障害範囲特定部121により特定されたネットワーク障害の範囲に基づき、通信途絶状態の子ノード20との間の通信を復旧させるためにネットワークを再構成する。例えば、NW再構成部122は、上述の如く、RSTPに相当する処理を行い、通信途絶状態の子ノード20と通信可能に接続するための論理的なネットワーク(代替ネットワーク)の構成を決定する。上述の如く、子ノード20−1,20−2,20−4,20−5が物理的にループ接続されると共に、メインネットワークの構成では、子ノード20−5と子ノード20−4との間の接続経路が論理的にブロック状態に設定される。そのため、NW再構成部122は、子ノード20−1,20−2,20−4,20−5を物理的にループ接続する通信線25のうちのメインネットワークの構成に含まれる通信線25の何れかに断線等が発生した場合、子ノード20−5と子ノード20−4との間の接続経路をアクティブ状態にし、ネットワークを再構成する。即ち、NW再構成部122は、上述の如く、子ノード20−1,20−2,20−4,20−5をループ接続する通信線25のうちのメインネットワークの構成に含まれない通信線25を含む、論理的なツリー型の代替ネットワークを再構成する。NW再構成部122は、内部メモリ等に格納されるルーティングテーブルを、再構成した論理的なネットワーク(代替ネットワーク)の構成に対応する態様に更新する。また、NW再構成部122は、再構成した論理的なネットワーク(代替ネットワーク)の構成に対応する子ノード20−1〜20−6(スイッチ21−1〜21−6)のMACアドレステーブルを生成する。
配信部123は、NW再構成部122により生成されるMACアドレステーブルを含むネットワーク構成変更通知(NW構成変更通知)を子ノード20−1〜20−6に配信する。例えば、配信部123は、NW構成変更通知を子ノード20−1〜20−6に対してユニキャスト配信してよい。また、例えば、配信部123は、NW構成変更通知を子ノード20−1〜20−6に対してブロードキャスト配信してもよい。以下、図5を参照して、MACアドレステーブルを配信する通信フレームについて説明をする。
図5は、MACアドレステーブルを配信する通信フレーム(イーサネットフレーム)を説明する図である。具体的には、図5Aは、イーサネットフレームの構成を示す図であり、図5Bは、MACアドレステーブルを配信するイーサネットフレームの一例を示す図であり、図5Cは、MACアドレステーブルを配信するイーサネットフレームの他の例を示す図である。
尚、図中、各イーサネットフレームは、その内容が4バイト単位で折り返して表示されている。
図5Aに示すように、イーサネットフレームは、14バイトのヘッダ部51と、可変バイト(46バイト〜1500バイト)のデータ部52と、誤り訂正符号である4バイトのFCS(Frame Check Sequence)53とを含む。
ヘッダ部51には、6バイトの送信先MACアドレス511、6バイトの送信元MACアドレス512、2バイトのフレームタイプ513が含まれる。フレームタイプ513は、イーサネットフレームの内容を送信先で判断可能な識別情報(識別値)であり、予め規定される。
例えば、配信部123がMACアドレステーブルをユニキャスト配信する場合、図5Bに示すように、NW構成変更通知に係るイーサネットフレームのヘッダ部51の送信先MACアドレス511には、子ノード20−1〜20−6の何れかのMACアドレスが設定される。また、ヘッダ部51のフレームタイプには、NW構成変更通知であることを示す識別値が設定される。
また、図5Bに示すように、NW構成変更通知に係るイーサネットフレームのデータ部52には、MACアドレステーブル数521と、MACアドレステーブルのデータサイズ522と、送信先の子ノード20(子ノード20−1〜20−6の何れか)に含まれるスイッチ21(後述するスイッチ21−1〜21−6)の識別情報(スイッチID)523と、MACアドレステーブルデータ524とが含まれる。MACアドレステーブル数521には、ユニキャスト配信であるので、"1"が設定され、MACアドレステーブルのデータサイズ522には、実際のサイズ(長さ)が設定される。また、スイッチID523には、送信先の子ノード20(子ノード20−1〜20−6)の何れかに対応する値(例えば、"1"〜"6"の何れか)が設定され、MACアドレステーブルデータ524には、NW再構成部122により生成されたMACアドレステーブルのデータが格納される。
この場合、配信部123は、配信先ごとにNW構成変更通知に係るイーサネットフレームを生成し、配信先ごとにスイッチ11を介して送信する。
尚、配信部123は、MACアドレステーブルに変更がない子ノード20(スイッチ21)に対して、NW構成変更通知を配信しなくてもよい。また、配信部123は、階層が上位の子ノード20から順にMACアドレステーブルを配信するとよい。これにより、下位の階層の子ノード20にMACアドレステーブルがユニキャスト配信される際、上位の階層の子ノード20のMACアドレステーブルが既に更新された状態になっているため、NW構成変更通知を適切に転送することができる。また、NW構成変更通知に係るイーサネットフレームは、ブロック状態のポートでも受信可能な設定になっている。これにより、子ノード20−4のポートP1がブロック状態に設定されていても、子ノード20−4は、子ノード20−5から転送されるNW構成変更通知を受信することができる。
また、例えば、配信部123がMACアドレステーブルをブロードキャスト配信する場合、図5Cに示すように、NW構成変更通知に係るイーサネットフレームのヘッダ部51の送信先MACアドレス511には、ブロードキャスト配信を示す"FF:FF:FF:FF:FF:FF"が指定される。また、ヘッダ部51のフレームタイプ513は、ユニキャスト配信の場合(図5B参照)と同様、NW構成変更通知であることを示す識別値が設定される。
また、図5Cに示すように、NW構成変更通知に係るイーサネットフレームのデータ部52のMACアドレステーブル数521には、配信先の数、即ち、子ノード20の数("6")に設定される。また、NW構成変更通知に係るイーサネットフレームのデータ部52には、複数(6つ)のMACアドレステーブルが格納されるため、データサイズ522、スイッチID523、及びMACアドレステーブルデータ524の組み合わせが、複数(6つ)設定される。具体的には、まず、子ノード20−1に対応するデータサイズ522、スイッチID523、及びMACアドレステーブルデータ524が設定され、次に、子ノード20−2に対応するデータサイズ522、スイッチID523、及びMACアドレステーブルデータ524が設定される形で、順次、6つの子ノード20−1〜20−6に対応するデータサイズ522、スイッチID523、及びMACアドレステーブルデータ524が設定される。
この場合、配信部123は、NW構成変更通知を1つだけ生成し、ネットワーク上の全ての子ノード20(子ノード20−1〜20−6)に対してブロードキャスト配信する。
尚、ブロードキャスト配信される場合であっても、変更がないMACアドレステーブルは、NW構成変更通知に係るイーサネットフレームのデータ部52に格納されなくてもよい。後述の如く、子ノード20−1〜20−6は、それぞれ、データ部52のスイッチID523に基づき、自身に含まれるスイッチ21−1〜21−6のMACアドレステーブルデータ524を認識する態様であり、自身に対応するスイッチID523がなければ、MACアドレステーブルを更新しないからである。また、NW構成変更通知がブロードキャスト配信される場合、ユニキャスト配信の場合と同様、より上位の階層の子ノード20からMACアドレステーブルが更新されていく。即ち、例えば、子ノード20−1は、ブロードキャスト配信されたNW構成変更通知を受信すると、スイッチ21−1のMACアドレステーブルを更新し、その更新を待って、スイッチ21−1は、NW構成変更通知を子ノード20−5(スイッチ21−5)に転送する。また、NW構成変更通知がブロードキャスト配信される場合、ユニキャスト配信の場合と同様、NW構成変更通知に係るイーサネットフレームは、ブロック状態のポートでも受信可能な設定になっている。
図1に戻り、子ノード20−1,20−2は、例えば、車両に搭載される各種ECUである。子ノード20−1,20−2は、階層的に構成される論理的なネットワークにおける中間に位置するノード(中間ノード)であり、通信線25を介して隣接する上位ノードと下位ノードとを中継する機能を有する。具体的には、第1ネットワークにおいて、子ノード20−1,20−2は、物理的にループ接続される子ノード20−1,20−2,20−4,20−5の中で、親ノード10から見て論理的に末端の子ノード20−4,20−5よりも階層が上位である。子ノード20−1,20−2の各々は、スイッチ21(スイッチ21−1,21−2)と、マイコン22(マイコン22−1,22−2)とを含む。
スイッチ21−1,21−2は、スイッチ11と同様、複数のポート(ポートP0〜P2)を備え、各ポートに接続される通信線25を通じて、複数のノードと接続するスイッチ機能を有するネットワークデバイスである。スイッチ21−1のポートP0には、親ノード10(スイッチ11)が接続され、スイッチ21−1のポートP1には、子ノード20−2(スイッチ21−2)が接続され、スイッチ21−1のポートP2には、子ノード20−5(スイッチ21−5)が接続される。また、スイッチ21−2のポートP0には、子ノード20−1(スイッチ21−1)が接続され、スイッチ21−2のポートP1には、子ノード20−3(スイッチ21−3)が接続され、スイッチ21−2のポートP2には、子ノード20−4(スイッチ21−4)が接続される。スイッチ21−1,21−2は、スイッチ11と同様、各ポートを通じて接続される他のノードのMACアドレスを、例えば、MACアドレステーブルとして記憶している。
例えば、図3に示すように、子ノード20−1のスイッチ21−1に対応するMACアドレステーブルには、親ノード10、子ノード20−2〜20−6の各々に対応するMACアドレスである"0","2"〜"6"とポート番号とが対応付けられている。具体的には、メインネットワークの構成において、親ノード10、子ノード20−6は、スイッチ21−1のポートP0の先に接続されており、子ノード20−2〜20−4は、スイッチ21−1のポートP1の先に接続されており、子ノード20−5は、スイッチ21−1のポートP2の先に接続されていることが示される。
また、例えば、図3に示すように、子ノード20−2のスイッチ21−2に対応するMACアドレステーブルには、親ノード10、子ノード20−1,20−3〜20−6の各々に対応するMACアドレスである"0","1","3"〜"6"とポート番号とが対応付けられている。具体的には、メインネットワークの構成において、親ノード10、子ノード20−1,20−5,20−6は、スイッチ21−2のポートP0の先に接続されており、子ノード20−3は、スイッチ21−2のポートP1の先に接続されており、子ノード20−4は、スイッチ21−2のポートP2の先に接続されていることが示される。
スイッチ21−1,21−2は、各々、MACアドレステーブルに基づき、子ノード20−1,20−2の各々が送信する通信フレーム(イーサネットフレーム)のヘッダ部に含まれる送信先のMACアドレスに対応するノードが接続されるポートからだけ通信フレームを送信する。
マイコン22(22−1,22−2)は、マイコン12と同様、CPU,RAM,ROM,I/O等を含み、ROMに格納される各種プログラムをCPU上で実行することにより各種機能を実現する。マイコン22−1,22−2は、機能部として、通信途絶検出部221(通信途絶検出部221−1,221−2)と、通知部222(通知部222−1,222−2)を含む。
尚、通信途絶検出部221(通信途絶検出部221−1,221−2)、及び通知部222(通知部222−1,222−2)の機能は、マイコン22の代わりに、任意のハードウェア、ソフトウェア、及びその組み合わせにより実現されてもよい。
通信途絶検出部221−1,221−2は、子ノード20−1,20−2,20−4,20−5を物理的にループ接続する通信線25のうちのメインネットワークに含まれる通信線25を経由する通信の途絶を検出する。具体的には、通信途絶検出部221−1,221−2は、隣接する下位ノード(子ノード20−1に対する子ノード20−2,20−5、子ノード20−2に対する子ノード20−4)との間の接続経路(通信線25)の通信途絶状態を検出する。例えば、通信途絶検出部221−1,221−2は、各々、周期的に、隣接する下位ノードが接続されるスイッチ21−1,21−2の各々の対象のポート(スイッチ21−1のポートP1,P2、スイッチ21−2のポートP2)における通信フレーム(イーサネットフレーム)及びリンクパルス信号の所定時間内での受信状態をモニタリングする。通信途絶検出部221−1,221−2は、各々、上記所定時間内で、スイッチ21−1,21−2の各々の対象のポートの少なくとも一方で通信フレーム及びリンクパルス信号の双方が受信されなかった場合、通信フレーム及びリンクパルス信号の双方が受信されなかったポートをリンクダウン(通信途絶)状態と判断する。そして、通信途絶検出部221−1,221−2は、リンクダウン状態のポート番号を含む通信途絶情報を生成する。
尚、通信途絶検出部221−2は、子ノード20−1,20−2,20−4,20−5を物理的にループ接続する通信線25以外の通信線25、即ち、子ノード20−2と子ノード20−3との間の接続経路(通信線25)を経由する通信の途絶を検出してもよい。
通知部222−1,222−2は、各々、通信途絶検出部221−1,221−2の各々により他のノードとの通信途絶が検出され、通信途絶情報が生成された場合、検出された通信途絶に関する通信途絶情報を含む通知途絶通知を親ノード10に送信する。第1ネットワークにおいて、子ノード20−1,20−2は、上述の如く、物理的にループ接続される子ノード20−1,20−2,20−4,20−5の中で、親ノード10から見て論理的に末端の子ノード20−4,20−5)よりも階層が上位である。そのため、物理的にループ接続される子ノード20−1,20−2,20−4,20−5同士を接続する通信線25のうちのメインネットワークに含まれる通信線25を経由する通信の途絶を、メインネットワークにおける上位側(メインネットワーク上の親ノード10側)のノードから検出することができる。これにより、ルートノードは、子ノード20−1,20−2(通知部222−1,222−2)から通信途絶情報を取得することができる。
子ノード20−3〜20−6は、例えば、車両に搭載される各種ECU、センサ、アクチュエータ等である。子ノード20−3〜20−6は、階層的に構成される論理的なネットワーク(メインネットワーク)における末端のノード(末端ノード)である。子ノード20−3〜20−6の各々は、スイッチ21(スイッチ21−3〜21−6)を含む。
尚、メインネットワークでは、子ノード20−4,20−5は、中継機能を有さない末端ノードであるが、上述の代替ネットワークでは、子ノード20−4と子ノード20−5との間の接続経路がアクティブ状態に設定されるため、中間ノードとして機能する。
スイッチ21−3〜21−6は、複数のポート(P0,P1)を備え、各ポートに接続される通信線25を通じて、複数の通信ノードと接続するスイッチ機能を有するネットワークデバイスである。スイッチ21−3のポートP0には、子ノード20−2(スイッチ21−2)が接続される。また、スイッチ21−4のポートP0には、子ノード20−2(スイッチ21−2)が接続され、スイッチ21−4のポートP1には、子ノード20−5(スイッチ21−5)が接続される。また、スイッチ21−5のポートP0には、子ノード20−1(スイッチ21−1)が接続され、スイッチ21−5のポートP1には、子ノード20−4(スイッチ21−4)が接続される。スイッチ21−3〜21−6は、スイッチ11等と同様、各ポートを通じて接続される他のノードのMACアドレスを、例えば、MACアドレステーブルとして記憶している。
尚、スイッチ21−3,21−6のポートP1は、使用されない。
例えば、図3に示すように、子ノード20−3のスイッチ21−3に対応するMACアドレステーブルには、親ノード10、子ノード20−1,20−2,20−4〜20−6の各々に対応するMACアドレスである"0","1","2","4"〜"6"とポート番号とが対応付けられている。具体的には、メインネットワークの構成において、親ノード10、子ノード20−1,20−2,20−4〜20−6は、ポートP0の先に接続されている。
また、例えば、図3に示すように、子ノード20−4のスイッチ21−4に対応するMACアドレステーブルには、親ノード10、子ノード20−1〜20−3,20−5,20−6の各々に対応するMACアドレスである"0","1"〜"3","5","6"とポート番号とが対応付けられている。具体的には、メインネットワークの構成において、親ノード10、子ノード20−1〜20−3,20−5,20−6は、スイッチ21−4のポートP0の先に接続されていることが示される。
また、例えば、図3に示すように、子ノード20−5のスイッチ21−5に対応するMACアドレステーブルには、親ノード10、子ノード20−1〜20−4,20−6の各々に対応するMACアドレスである"0","1"〜"4","6"とポート番号とが対応付けられている。具体的には、メインネットワークの構成において、親ノード10、子ノード20−1〜20−4,20−6は、スイッチ21−5のポートP0の先に接続されていることが示される。
また、例えば、図3に示すように、子ノード20−6のスイッチ21−6に対応するMACアドレステーブルには、親ノード10、子ノード20−1〜20−5の各々に対応するMACアドレスである"0"、"1"〜"5"とポート番号とが対応付けられている。具体的には、メインネットワークの構成において、親ノード10、子ノード20−1〜20−5は、スイッチ21−6のポートP0の先に接続されていることが示される。
スイッチ21−3〜21−6は、各々、MACアドレステーブルに基づき、子ノード20−3〜20−6の各々が送信する通信フレーム(イーサネットフレーム)のヘッダ部に含まれる送信先のMACアドレスが接続されるポートからだけ通信フレームを送信する。
次に、図6を参照して、親ノード10による処理フローについて説明をする。
図6は、親ノード10による処理の一例を概略的に示すフローチャートである。
本フローチャートによる処理は、例えば、親ノード10がウェイク状態(電源ON状態)にある場合に繰り返し実行される。
ステップS102にて、親ノード10は、ルーティングテーブルをメインメモリ(RAM)上に保持する。
ステップS104にて、親ノード10は、所定の周期に基づく定周期タイマの計時を開始する。
ステップS106にて、親ノード10(NW障害範囲特定部121)は、子ノード20−1,20−2からの通信途絶通知の有無を確認する。
ステップS108にて、親ノード10(NW障害範囲特定部121)は、子ノード20−1,20−2からの通信途絶通知の受信があったか否かを判定する。親ノード10(NW障害範囲特定部121)は、通信途絶通知の受信があった場合、ステップS110に進み、それ以外の場合、ステップS116に進む。
ステップS110にて、親ノード10(NW障害範囲特定部121)は、ルーティングテーブルに基づき、通信障害の範囲を特定する。
ステップS112にて、親ノード10(NW再構成部122)は、ネットワークを再構成する。即ち、親ノード10(NW再構成部122)は、通信途絶状態にある子ノード20との通信を復旧させるための代替ネットワークを決定し、ルーティングテーブルを代替ネットワークに係る内容に更新すると共に、代替ネットワークに係る子ノード20−1〜20−6(スイッチ21−1〜21−6)のMACアドレステーブルを生成する。
例えば、子ノード20−1と子ノード20−2との間の接続経路の通信途絶に関する通信途絶通知が受信された場合、NW再構成部122は、上述の如く、メインネットワークに係るルーティングテーブル(図4参照)に基づき、親ノード10と子ノード20−2〜20−4との間が通信途絶状態であると特定することができる。そのため、NW再構成部122は、上述の如く、子ノード20−5と子ノード20−4との間の接続経路をアクティブ状態に設定する代替ネットワークの構成(図2B参照)を決定し、図7に示すように、ルーティングテーブルにおける親ノード10から子ノード20−2〜20−4までの経路情報を更新する。また、NW再構成部122は、図8に示すように、代替ネットワークの構成に係る親ノード10、子ノード20−1〜20−6のMACアドレステーブルを生成する。具体的には、子ノード20−2〜20−4は、子ノード20−5を経由して子ノード20−1に接続されるため、子ノード20−1(スイッチ21−1)のMACアドレステーブルは、メインネットワークのMACアドレステーブル(図3参照)に対して、子ノード20−2〜20−4がスイッチ21−1のポートP2の接続される態様に変更される。また、子ノード20−2(スイッチ21−2)のMACアドレステーブルは、メインネットワークの構成に係るMACアドレステーブルに対して、親ノード10、子ノード20−1,20−5,20−6がスイッチ21−2のポートP2に接続される態様に変更される。また、子ノード20−4(スイッチ21−4)のMACアドレステーブルは、メインネットワークの構成に係るMACアドレステーブルに対して、親ノード10、子ノード20−1,20−5,20−6がスイッチ21−4のポートP1に接続される態様に変更される。また、子ノード20−5(スイッチ21−5)のMACアドレステーブルは、メインネットワークに係るMACアドレステーブルに対して、子ノード20−2〜20−4がスイッチ21−5のポートP1に接続される態様に変更される。
尚、図7、図8中のハイライト部分は、図4、図3からの変更(更新)部分を表す。
図6に戻り、ステップS114にて、親ノード10(配信部123)は、ステップS112で生成されたMACアドレステーブルを含むNW構成変更通知を子ノード20−1〜20−6に配信する。上述の如く、親ノード10(配信部123)は、子ノード20−1〜20−6に対してNW構成変更通知をブロードキャスト配信してもよいし、ユニキャスト配信してもよい。
ステップS116にて、親ノード10は、定周期タイマの計時が終了した否かを判定する。親ノード10は、定周期タイマの計時が終了していない場合、ステップS106に戻り、ステップS106〜S116の処理を繰り返し、定周期タイマの計時が終了した場合、今回の処理を終了する。
次に、図9を参照して、子ノード20(子ノード20−1〜20−6)による処理フローについて説明する。
図9は、子ノード20(子ノード20−1〜20−6)による処理フローについて説明する。本フローチャートによる処理は、例えば、子ノード20(子ノード20−1〜20−6)がウェイク状態(電源ON状態)にある場合に繰り返し実行される。
ステップS202にて、子ノード20は、所定の周期に基づく定周期タイマの計時を開始する。
ステップS204にて、子ノード20は、親ノード10からのNW構成変更通知の受信の有無を確認する。
ステップS206にて、子ノード20は、親ノード10からのNW構成変更通知の受信があったか否かを判定する。例えば、子ノード20は、上述の如く、NW構成変更通知に係るイーサネットフレームのフレームタイプ513(図5B、図5C参照)を確認することにより、受信したイーサネットフレームがNW構成変更通知であるか否かを判定することができる。子ノード20は、親ノード10からのNW構成変更通知の受信があった場合、ステップS208に進み、それ以外の場合、ステップS210に進む。
ステップS208にて、子ノード20は、NW構成変更通知に含まれるMACアドレステーブルの内容で、スイッチ21のMACアドレステーブルを更新する。
尚、NW構成変更通知がブロードキャスト配信される場合、子ノード20は、上述のスイッチID523を確認することにより、NW構成変更通知に係るイーサネットフレームの中から自身のスイッチ21に対応するMACアドレステーブルを取り出すことができる。
ステップS210にて、子ノード20は、定周期タイマの計時が終了したか否かを判定する。子ノード20は、定周期タイマの計時が終了していない場合、ステップS204に戻り、ステップS204〜S210の処理を繰り返し、定周期タイマの計時が終了した場合、今回の処理を終了する。
このように、本実施形態では、論理的なツリー型のメインネットワーク上で、複数のループノード(子ノード20−1,20−2,20−4,20−5)を物理的にループ接続する複数の通信線25のうちのメインネットワークに含まれる通信線25を経由する通信の途絶(通信障害)を検出する通信途絶検出部221(221−1,221−2)が設けられる。具体的には、通信途絶検出部221−1,221−2は、複数のループノードの中で論理的に末端のループノードよりも階層が上位であるループノード(即ち、子ノード20−1,20−2)に設けられる。そのため、物理的にループ接続される複数のループノードをループ接続する複数の通信線25のうちのメインネットワークに含まれる通信線25を経由する通信の途絶を、メインネットワークにおける上位側(メインネットワーク上の親ノード10側)のノードから検出することができる。これにより、親ノード10は、通信途絶情報を取得することができる。
また、複数のループノードを物理的にループ接続する複数の通信線25を経由する通信の途絶が発生した場合、親ノード10(ネットワーク再構成部122)は、複数のループノードを物理的にループ接続する複数の通信線25のうち、メインネットワークの構成には含まれない、即ち、メインネットワークの構成では、論理的にブロックされている通信線25を含む、論理的なツリー型の代替ネットワークを再構成する。そして、親ノード10(配信部123)は、再構成された代替ネットワークの構成に関する情報(MACアドレステーブル)を子ノード20−1〜20−6に配信する。従って、子ノード20−1〜20−6は、親ノード10から配信される代替ネットワークの構成に関する情報を受信することにより、再構成された代替ネットワークの構成を把握し、通信の復旧を実現することができる。そのため、例えば、ARPを利用する場合のように、ネットワークに接続される各ノードが相互に多数の信号のやり取りをしたり、多数の信号がブロードキャスト送信されてネットワーク負荷を高めたりすることがなくなるため、通信の復旧をより早く実現できる。また、ネットワークの再構成に係る処理が親ノード10に一元化される点からも、通信の復旧をより早く実現できる。
尚、本実施形態では、通信途絶検出部221の機能は、子ノード20−1,20−2に設けられるが、代わりに、親ノード10に設けられてもよい。この場合、親ノード10は、例えば、物理的にループ接続される子ノード20−1,20−2,20−4,20−5に対して、応答要求等を送信し、返信の有無等をモニタリングする。これにより親ノード10は、子ノード20−1,20−2,20−4,20−5を物理的にループ接続する通信線25のうちのメインネットワークの構成に含まれる通信線25の通信途絶を検出することができる。また、本実施形態では、複数の子ノード20が物理的にループ接続されるが、親ノード10を含む複数のノードがループ接続されてもよい。また、本実施形態では、配信部123は、ネットワーク(代替ネットワーク)の構成に関する情報としてMACアドレステーブルを子ノード20に配信するが、例えば、ルーティングテーブルを配信してもよい。この場合、子ノード20−1〜20−6は、各々、親ノード10から配信されるルーティングテーブルを受信すると、ルーティングテーブルの内容に基づき、スイッチ21−1〜21−6の各々のMACアドレステーブルを更新する。
次に、図10を参照して、車載ネットワークシステム1の各ノード(親ノード10、子ノード20)を車両に搭載される具体的なノード(ECU、センサ等)に適用した具体例を説明する。
図10は、車載ネットワークシステム1の具体例(車載ネットワークシステム100)を示す図である。
車載ネットワークシステム100は、ゲートウェイECU110、先進安全ECU120、スイッチECU130、カメラ140、センサ150,160,170,180、メータECU190を含む。また、車両は、車載ネットワークシステム100に関連する要素として、CANネットワーク200に接続されるブレーキECU210を含む。
ゲートウェイECU110は、車載ネットワークシステム100における最上位のノード(ルートノード)であり、親ノード10に相当する。ゲートウェイECU110は、スイッチ111を含み、スイッチ111の各ポートに繋がる通信線を介して、先進安全ECU120とメータECU190とに接続される。例えば、スイッチ111は、先進安全ECU120から送信される警報要求に係るイーサネットフレームを、送信先MACアドレスに基づき、メータECU190に転送する。
また、ゲートウェイECU110は、イーサネット通信プロトコルに基づく車載ネットワークシステム100と、CAN通信プロトコルに基づくCANネットワーク200の双方に接続し、車載ネットワークシステム100とCANネットワーク200との間での通信を中継する機能を有する。例えば、ゲートウェイECU110は、先進安全ECU120から送信される自動ブレーキ要求をブレーキECU210に転送する。
先進安全ECU120は、車載ネットワークシステム100における中間ノードである。先進安全ECU120は、スイッチ125を含み、スイッチ125の各ポートに繋がる通信線を介して、ゲートウェイECU110、スイッチECU130、カメラ140と接続される。特に、スイッチ125とスイッチECU130(後述するスイッチ135)とは、物理的に冗長接続(ループ接続)されており、スイッチ125の2つのポートの各々と、スイッチ135の2つのポートの各々とが通信線で接続されている。先進安全ECU120は、物理的にループ接続される複数のループノードの中で、ゲートウェイECU110から見て末端のループノード(スイッチECU130)より階層が上位のループノードあり、子ノード20−1,20−2に相当する。例えば、先進安全ECU120は、カメラ140から受信する撮像画像と、スイッチECU130を経由してセンサ150,160,170,180から受信する距離画像とに基づき、車両周辺の障害物との衝突可能性を判断する。そして、先進安全ECU120は、衝突可能性が比較的高くなり、第1の基準を超えている場合、メータECU190に対する警報要求に係るイーサネットフレームをスイッチ125からゲートウェイECU110に向けて送信する。また、先進安全ECU120は、衝突可能性が非常に高くなり、第1の基準より高い第2の基準を超えている場合、ブレーキECU210に対する自動ブレーキ要求に係るイーサネットフレームをスイッチ125からゲートウェイECU110に向けて送信する。
スイッチECU130は、車載ネットワークシステム100における中間ノードである。スイッチECU130は、スイッチ135を含み、スイッチ135の各ポートに繋がる通信線を介して、先進安全ECU120、センサ150,160,170,180に接続される。特に、上述の如く、スイッチ135と先進安全ECU120(スイッチ125)とは、物理的に冗長接続(ループ接続)されている。スイッチECU130は、物理的にループ接続される複数のループノードの中で、ゲートウェイECU110から見て末端のループノードあり、子ノード20−4,20−5に相当する。スイッチECU130は、例えば、スイッチ135は、センサ150,160,170,180から送信される距離画像に係るイーサネットフレームを、送信先MACアドレスに基づき、先進安全ECU120に転送する。
カメラ140は、車載ネットワークシステム100における末端ノードである。カメラ140は、通信線を介して、先進安全ECU120(スイッチ125)に接続される。例えば、カメラ140は、所定周期(例えば、1/30秒)毎に、車両周辺の所定範囲を撮像し、撮像画像に係るイーサネットフレームを先進安全ECU120に送信する。
センサ150,160,170,180は、車載ネットワークシステム100における末端ノードである。センサ150,160,170,180は、通信線を介して、スイッチECU130(スイッチ135)に接続される。例えば、センサ150,160,170,180は、車両周辺の所定範囲における障害物との距離を検出するレーザレーダ、ミリ波レーダ等である。センサ150,160,170,180は、先進安全ECU120を送信先とする、所定範囲で検出した障害物との距離に対応する距離画像に係るイーサネットフレームをスイッチECU130に向けて送信する。
メータECU190は、車載ネットワークシステム100における末端ノードである。メータECU190は、通信線を介して、ゲートウェイECU110(スイッチ111)に接続される。例えば、メータECU190は、ゲートウェイECU110から転送される、先進安全ECU120からの警報要求を受信した場合、車室内のメータに衝突可能性が比較的高くなっている旨を示す警告表示を行ったり、警告音をスピーカから出力させたりする。これにより、運転者に対して、障害物との衝突回避のための操作(ブレーキ操作)を促すことができる。
ブレーキECU210は、車両のブレーキ装置の作動制御を行う電子制御ユニットである。例えば、ブレーキECU210は、ゲートウェイECU110からCANネットワーク200に送信される、先進安全ECU120からの自動ブレーキ要求を受信した場合、運転者による操作に関わらず、ブレーキ装置を作動させ、自動的に、車両に制動力を発生させる。これにより、障害物との衝突可能性が非常に高くなっている状況で、自動的に、ブレーキ装置を作動させて、障害物との衝突回避を実現することができる。
車載ネットワークシステム100において、通常、先進安全ECU120(スイッチ125)とスイッチECU130(スイッチ135)との間を接続する2つの接続経路(通信線)のうち、一方がアクティブ状態に設定され、他方がブロック状態に設定される。
一方、アクティブ状態に設定された接続経路に断線等が発生すると、先進安全ECU120(通信途絶検出部221及び通知部222に相当する機能部)は、スイッチECU130との通信途絶を検出し、該通信途絶に関する通信途絶通知をゲートウェイECU110に送信する。ゲートウェイECU110(NW再構成部122に相当する機能部)は、ブロック状態に設定されている接続経路をアクティブ状態に設定する代替ネットワークを決定し、代替ネットワークに対応するMACアドレステーブルを生成する。そして、ゲートウェイECU110(配信部123に相当する機能部)は、生成したMACアドレステーブルを含むNW構成変更通知を先進安全ECU120、スイッチECU130、カメラ140、センサ150,160,170,180、メータECU190に配信する。これにより、先進安全ECU120、スイッチECU130、カメラ140、センサ150,160,170,180、メータECU190は、NW構成変更通知に基づき、MACアドレステーブルを更新し、ネットワーク障害から復旧することができる。
本例のような車両制御システム、特に、障害物との衝突を回避するシステムでは、ネットワーク障害に対して、リアルタイムに通信復旧を行う必要がある。具体的には、車両が100km/hで高速道路を走行している場合、1秒間に30m程度車両が移動する。かかる状況で、先行車の急ブレーキによる制動距離が60m程度で、且つ、先行車との車間距離が50m〜100m程度であることを考慮すると、先行車の急ブレーキに対応して、運転者への警報や自動ブレーキを確実に作動させるには、約1秒以内での通信復旧が必要になる。これに対して、本例に係る車載ネットワークシステム100では、ネットワーク障害に際して、各ノード間での信号のやり取りが行われて時間が無駄に消費されたり、信号がブロードキャスト送信されて通信負荷が非常に高くなったりすることがなく、且つ、ネットワークの再構成に係る処理がルートノード(ゲートウェイECU110)に一元化される。そのため、通信の復旧までの時間を非常に短くすることが可能となり、通信復旧をリアルタイムに(例えば、1秒以内に)実現することができる。
<第2実施形態>
次いで、第2実施形態について説明をする。
本実施形態に係る車載ネットワークシステム2は、後述の如く、相互に通信可能な態様で、1対1の通信線により物理的に接続される複数のノードとして、複数のローカルネットワークLN1〜LN3のうちの何れかに属し、複数のローカルネットワークLN1〜LN3の相互間での通信を中継する複数のゲートウェイ装置30を含む。そして、車載ネットワークシステム2では、複数のゲートウェイ装置30のうちの2つのゲートウェイ装置30間の物理的な複数の通信経路中から決定される1つだけの通信経路によって論理的なネットワークが構成され、ネットワークの構成に関する情報に基づき相互に通信が行われる。
まず、図11を参照して、本実施形態に係る車載ネットワークシステム2の構成について説明をする。車載ネットワークシステム2は、ローカルネットワークLN1〜LN3の各々に属するゲートウェイ装置30、具体的には、ゲートウェイ装置30−1〜30−3を含む。また、車載ネットワークシステム2は、ローカルネットワークLN1〜LN3の各々に属する構成要素として、ゲートウェイ装置30−1〜30−3の各々に接続されるノード41〜43を含む。
車載ネットワークシステム2について、物理的なネットワークの側面から説明すると、複数(本例では、3つ)のゲートウェイ装置30は、相互に通信線35で接続されることにより、物理的にループ接続される。そのため、各ゲートウェイ装置30が属するローカルネットワークと他のローカルネットワークとの間での通信を行う場合、複数(2つ)の通信経路を採用することが可能である。
これに対して、車載ネットワークシステム2について、論理的なネットワークの側面から説明すると、ある2つのゲートウェイ装置30の間の物理的な複数の通信経路のうちの1つの通信経路だけで通信可能な態様で、論理的なメインネットワーク(第1のネットワーク)が構成される。具体的には、ある2つのゲートウェイ装置30の間の物理的な複数の通信経路のうち、予め規定される優先度が最も高い通信経路により論理的なメインネットワークが構成される。以下、図12を参照して、車載ネットワークシステム1における論理的なネットワーク構成について説明をする。
図12は、車載ネットワークシステム2におけるゲートウェイ装置30−1〜30−3の相互間の通信経路を表す図である。具体的には、2つのゲートウェイ装置30の間の物理的な通信経路と、その優先度が示されるテーブル情報であり、後述する管理テーブル3392(3392−1)に相当する。
尚、図中、ゲートウェイ装置30−1〜30−3は、それぞれ、GW1〜GW3で示され、ノード41〜43は、それぞれ、ノード1〜ノード3で示される。以下、図13等においても同様である。また、図中、2つのゲートウェイ装置30の間の通信経路について、一方から他方への通信経路を示すが、他方から一方への通信経路は、その逆方向であるため、図示を省略している。また、通信経路のカッコ内は、後述するL3スイッチ31のポート番号を示す。
図12に示すように、ローカルネットワークLN1に属するゲートウェイ装置30−1(ノード41)とローカルネットワークLN2に属するゲートウェイ装置30−2(ノード42)との間には、ゲートウェイ装置30−1とゲートウェイ装置30−2との間を直接接続する通信線35を通じた通信経路と、ゲートウェイ装置30−1,30−2の各々に隣接するゲートウェイ装置30−3を経由する通信経路の2つが存在する。
また、同様に、ローカルネットワークLN1に属するゲートウェイ装置30−1(ノード41)とローカルネットワークLN3に属するゲートウェイ装置30−3(ノード43)との間には、ゲートウェイ装置30−1とゲートウェイ装置30−3との間を直接接続する通信線35を通じた通信経路と、ゲートウェイ装置30−1,30−3の各々に隣接するゲートウェイ装置30−2を経由する通信経路の2つが存在する。
また、同様に、ローカルネットワークLN2に属するゲートウェイ装置30−2(ノード42)とローカルネットワークLN3に属するゲートウェイ装置30−3(ノード43)との間には、ゲートウェイ装置30−2とゲートウェイ装置30−3との間を直接接続する通信線35を通じた通信経路と、ゲートウェイ装置30−2,30−3の各々に隣接するゲートウェイ装置30−1を経由する通信経路の2つが存在する。
2つのゲートウェイ装置30を物理的に接続する2つの通信経路には、上述の如く、優先度が予め規定される。本例では、2つのゲートウェイ装置30を直接接続する通信線35を通じた通信経路、即ち、最もホップ数が少ない通信経路に優先度"1"(最も高い優先度)が規定され、隣接する他のゲートウェイ装置30を経由する通信経路、即ち、最もホップ数が多い通信経路に優先度"2"(最も低い優先度)が規定されている。車載ネットワークシステム2では、上述の如く、最も優先度が高い通信経路により、論理的なメインネットワークが構成されるため、通常、2つのゲートウェイ装置30を直接接続する通信線35を通じた通信経路によって、2つのゲートウェイ装置30の間の通信が行われる。
一方、ゲートウェイ装置30−1〜30−3を相互に接続する通信線35の何れかに断線等の通信障害(通信途絶)が発生すると、その通信途絶の原因である通信線35を経由する通信を行うことができなくなる。そのため、車載ネットワークシステム2では、ゲートウェイ装置30−1〜30−3を物理的にループ接続する通信線35に通信途絶が発生すると、通信途絶の原因である通信線35を含まない通信経路の中で優先度が最も高い通信経路により、論理的な代替ネットワーク(第2のネットワーク)が構成される。例えば、ゲートウェイ装置30−2,30−3の間を物理的に直接接続する通信線35に通信途絶が発生した場合、ゲートウェイ装置30−2,30−3の間の通信経路は、物理的に直接接続する通信線35を経由しない通信経路、即ち、ゲートウェイ装置30−1を経由する通信経路(図中のハイライト部分)に変更されることにより、論理的な代替ネットワークが構成される。通信線35の何れかに通信途絶が発生した場合の処理は、後述の如く、ゲートウェイ装置30−1〜30−3のうちのゲートウェイ装置30−1で集約的に実行される。詳細は、後述する。
このように、車載ネットワークシステム2では、ある2つのゲートウェイ装置30の間の複数(2つ)の通信経路のうちの論理的に選択される1つの通信経路だけで通信が行われるため、ゲートウェイ装置30は、それぞれ、当該通信経路に対応する経路情報、即ち、後述するルーティングテーブル3391(具体的には、ゲートウェイ装置30−1〜30−3の各々に対応するルーティングテーブル3391−1〜3391−3)を有する。以下、図13、図14を参照して、ルーティングテーブル3391について説明をする。
図13は、メインネットワークに係るルーティングテーブル3391を示す図である。図14は、代替ネットワークに係るルーティングテーブル3391を示す図であり、具体的には、ゲートウェイ装置30−2,30−3の間を直接接続する通信線35に通信途絶が発生した場合の代替ネットワークに係るルーティングテーブル3391を示す図である。
尚、図中、便宜上、ゲートウェイ装置30−1〜30−3の各々のルーティングテーブル3391(ルーティングテーブル3391−1〜3391−3)を1つの表で示している。また、図中、中継先は、通信線35により物理的に直接接続される他のゲートウェイ装置30のうちの通信パケットを次に中継するゲートウェイ装置30を示し、カッコ内は、次に中継するゲートウェイ装置30が接続されるL3スイッチ31のポート番号を示す。
図13、図14に示すように、ルーティングテーブル3391は、通信パケットの宛先(具体的には、宛先を示す識別情報(IPアドレス))と、中継先の他のゲートウェイ装置30(ポート番号)とを対応付けるテーブル情報である。
上述の如く、メインネットワークは、2つのゲートウェイ装置30の間を直接接続する通信線35を通じた通信経路により構成される。そのため、図13に示すように、ゲートウェイ装置30−1(後述するL3スイッチ31−1)は、宛先に示される識別情報(IPアドレス)がノード42,43(即ち、ローカルネットワークLN2,LN3)に対応する通信パケットを、それぞれ、ゲートウェイ装置30−2,30−3に中継する。また、ゲートウェイ装置30−2(後述するL3スイッチ31−2)は、宛先に示される識別情報(IPアドレス)がノード41,43(即ち、ローカルネットワークLN1,LN3)に対応する通信パケットを、それぞれ、ゲートウェイ装置30−1,30−3に中継する。また、ゲートウェイ装置30−3(後述するL3スイッチ31−3)は、宛先に示される識別情報(IPアドレス)がノード41,42(即ち、ローカルネットワークLN1,LN2)に対応する通信パケットを、それぞれ、ゲートウェイ装置30−1,30−2に中継する。
一方、代替ネットワークでは、上述の如く、ゲートウェイ装置30−2,30−3の間の通信経路が変更される。そのため、図14に示すように、ゲートウェイ装置30−2(L3スイッチ31−2)は、宛先に示される識別情報(IPアドレス)がノード43(ローカルネットワークLN3)に対応する通信パケットを、ゲートウェイ装置30−3ではなく、ゲートウェイ装置30−1に中継する。また、ゲートウェイ装置30−3(L3スイッチ31−3)は、宛先に示される識別情報(IPアドレス)がノード42(ローカルネットワークLN2)に対応する通信パケットを、ゲートウェイ装置30−2ではなく、ゲートウェイ装置30−1に中継する。
このように、ゲートウェイ装置30−1〜30−3は、論理的なネットワークの構成に関する情報としてのルーティングテーブル3391により、ローカルネットワークLN1〜LN3の相互間の通信パケットの送受信を行うことができる。
図11に戻り、ゲートウェイ装置30は、L3スイッチ31、L2スイッチ32、マイコン33を含む。また、L3スイッチ31、L2スイッチ32、マイコン33は、それぞれ、ゲートウェイ装置30−1〜30−3に対応するL3スイッチ31−1〜31−3、L2スイッチ32−1〜32−3、マイコン33−1〜33−3を含む。
L3スイッチ31は、複数のポートP1,P2を備え、各ポートに接続される通信線35(イーサネットケーブル)を通じて、自己が含まれるゲートウェイ装置30以外の他のゲートウェイ装置30のL3スイッチ31のポートと接続される。L3スイッチ31は、マイコン33の後述する記憶部339に格納されるルーティングテーブル3391と、通信パケットに示される宛先の識別情報(例えば、宛先のノードのIPアドレス)とに基づき、他のゲートウェイ装置30から受信する通信パケット、或いは、自己が含まれるゲートウェイ装置30が属するローカルネットワーク(L2スイッチ32)から他のローカルネットワークに向けて送信された通信パケットを他のローカルネットワークに転送する。
L3スイッチ31−1は、ポートP1に繋がる通信線35を介してゲートウェイ装置30−2(L3スイッチ31−2)と物理的に接続され、ポートP2に繋がる通信線35を介してゲートウェイ装置30−3(L3スイッチ31−3)と物理的に接続される。
L3スイッチ31−2は、ポートP1に繋がる通信線35を介してゲートウェイ装置30−1(L3スイッチ31−1)と物理的に接続され、ポートP2に繋がる通信線35を介してゲートウェイ装置30−3(L3スイッチ31−3)と物理的に接続される。
L3スイッチ31−3は、ポートP1に繋がる通信線35を介してゲートウェイ装置30−1(L3スイッチ31−1)と物理的に接続され、ポートP2に繋がる通信線35を介してゲートウェイ装置30−2(L3スイッチ31−2)と物理的に接続される。
L2スイッチ32は、MACアドレステーブルに基づき、自己が含まれるゲートウェイ装置30が属するローカルネットワーク内での通信を中継する。また、L2スイッチ32は、ローカルネットワークの各ノードから他のローカルネットワークに送信された通信パケット(通信フレーム)をL3スイッチ31に送る。
L2スイッチ32−1は、複数のポート(ポートP1,P2)を有し、各々のポートに繋がる通信線を介して、ローカルネットワークLN1の構成要素であるノード41が接続される。
L2スイッチ32−2は、複数のポート(ポートP1,P2)を有し、各々のポートに繋がる通信線を介して、ローカルネットワークLN2の構成要素であるノード42が接続される。
L2スイッチ32−3は、複数のポート(ポートP1,P2)を有し、各々のポートに繋がる通信線を介して、ローカルネットワークLN3の構成要素であるノード43が接続される。
尚、ローカルネットワークLN1〜LN3は、それぞれ、更に、L2スイッチを経由して階層的にノード41〜43が接続される態様であってもよい。
マイコン33は、CPU,RAM,ROM,I/O等を含み、ROMに格納される各種プログラムをCPU上で実行することにより各種機能を実現する。マイコン33は、ゲートウェイ装置30−1〜30−3に共通する機能部として、ルーティングテーブル更新部(RT更新部)331(331−1〜331−3)、通信途絶検出部332(332−1〜332−3)、記憶部339(339−1〜339−3)を含む。また、マイコン33(マイコン33−1)は、ゲートウェイ装置30−1に特有の機能部として、ルーティング管理部333(333−1)、配信部334(334−1)を含む。また、マイコン33(マイコン33−2,33−3)は、ゲートウェイ装置30−2,30−3に特有の機能部として、通知部335(335−2,335−3)を含む。
尚、マイコン33の機能は、マイコン33の代わりに、任意のハードウェア、ソフトウェア、或いはその組み合わせにより実現されてもよい。
RT更新部331は、例えば、通信線35の断線等により通信途絶が発生した場合等に、記憶部339に格納されるルーティングテーブル3391の更新を行う。
RT更新部331−1は、後述するルーティング管理部333−1により生成される、代替ネットワークに対応するルーティングテーブルのデータに基づき、記憶部339−1のルーティングテーブル3391−1を更新する。
RT更新部331−2,331−3は、後述の如く、ゲートウェイ装置30−1(配信部334−1)から配信されるルーティングテーブル更新通知(RT更新通知)に含まれる代替ネットワークに対応するルーティングテーブルのデータに基づき記憶部339−2,339−3のルーティングテーブル3391−2,3391−3を更新する。
通信途絶検出部332(332−1〜332−3)は、自己が含まれるゲートウェイ装置30と隣接する他のゲートウェイ装置30とを接続する通信線35の通信途絶を検出する。通信途絶検出部332は、自己が含まれるゲートウェイ装置30と隣接する他のゲートウェイ装置30とを接続する2つの通信線35の双方の通信途絶を検出してもよいし、通信途絶検出部332−1〜332−3が通信線35を1つずつ分担する態様で、1つの通信線35の通信途絶を検出してもよい。
尚、通信途絶検出部332の機能は、ゲートウェイ装置30−1(一のノード)だけに設けられてもよい。この場合、ゲートウェイ装置30−1は、例えば、ゲートウェイ装置30−1〜30−3を物理的にループ接続する複数(3つ)の通信線35をの各々を経由してゲートウェイ装置30−2,30−3の何れかに応答要求を送信し、返信の有無等をモニタリングする等により、通信線35の通信途絶を検出することができる。
ルーティング管理部333(333−1)は、通信途絶検出部332(332−1〜332−3)により通信線35の何れかに通信途絶が検出された場合、代替ネットワークを再構成し、代替ネットワークの構成に関する情報、即ち、代替ネットワークに係るルーティングテーブルを生成する。具体的には、ルーティング管理部333−1は、記憶部339−1に格納される管理テーブル3392−1(図12参照)に基づき、代替ネットワークに係るルーティングテーブルを生成する。
配信部334(334−1)は、L3スイッチ31−1を介して、代替ネットワークに係るルーティングテーブルのデータを含むRT更新通知をゲートウェイ装置30−2,30−3に配信する。
尚、ゲートウェイ装置30−1のRT更新部331−1は、ルーティング管理部333(333−1)からRT更新通知を受け取る。また、配信部334は、ゲートウェイ装置30−2,30−3に対応するルーティングテーブルのうち、メインネットワークから変更されたルーティングテーブルだけを配信してもよい。
通知部335(335−2,335−3)は、それぞれ、通信途絶検出部332−2,332−3により通信線35を経由する通信の途絶が検出された場合、通信途絶の原因である通信線35に関する情報を含む通信途絶通知を、L3スイッチ31−2,31−3を介してゲートウェイ装置30−1に送信する。
尚、ゲートウェイ装置30−1の通信途絶検出部332−1は、通信線35の通信途絶を検出すると、ルーティング管理部333に通信途絶通知を送る。
次に、図15を参照して、ゲートウェイ装置30−1(ルーティング管理部333−1、配信部334−1)による処理について説明する。
図15は、ゲートウェイ装置30−1による処理の一例を概略的に示すフローチャートである。
本フローチャートによる処理は、例えば、ゲートウェイ装置30−1がウェイク状態(電源ON状態)にある場合に繰り返し実行される。
ステップS302にて、ゲートウェイ装置30−1(ルーティング管理部333−1)は、管理テーブル3392−1をメインメモリ(RAM)上に保持する。
ステップS304にて、ゲートウェイ装置30−1(ルーティング管理部333−1)は、所定の周期に基づく定周期タイマの計時を開始する。
ステップS306にて、ゲートウェイ装置30−1(ルーティング管理部333−1)は、通信途絶検出部332−1〜332−3からの通信途絶通知の有無を確認する。
ステップS308にて、ゲートウェイ装置30−1(ルーティング管理部333−1)は、通信途絶検出部332−1〜332−3からの通信途絶通知があったか否かを判定する。ゲートウェイ装置30−1(ルーティング管理部333−1)は、通信途絶通知があった場合、ステップS310に進み、それ以外の場合、ステップS316に進む。
ステップS310にて、ゲートウェイ装置30−1(ルーティング管理部333−1)は、管理テーブル3392−1に基づき、通信障害の範囲を特定する。
ステップS312にて、ゲートウェイ装置30−1(ルーティング管理部333−1)は、ネットワークを再構成する。即ち、ゲートウェイ装置30−1(ルーティング管理部333−1)は、通信途絶状態にあるネットワークの通信を復旧させるための代替ネットワークを決定し、代替ネットワークに係るゲートウェイ装置30−1〜30−3のルーティングテーブルのデータを生成する。
例えば、上述の如く、ゲートウェイ装置30−2,30−3の間の通信線35の通信途絶に関する通信途絶通知があった場合、ルーティング管理部333−1は、上述の如く、図14に示すルーティングテーブルのデータを生成する。
ステップS314にて、ゲートウェイ装置30−1(配信部334−1)は、ステップS312で生成されたルーティングテーブルのデータを含むRT更新通知を、L3スイッチ31−1を介してゲートウェイ装置30−2,30−3に配信する。また、ゲートウェイ装置30−1のルーティング管理部333−1は、RT更新通知をRT更新部331−1に送る。
ステップS316にて、ゲートウェイ装置30−1(ルーティング管理部333−1)は、定周期タイマの計時が終了した否かを判定する。ゲートウェイ装置30−1は、定周期タイマの計時が終了していない場合、ステップS306に戻り、ステップS306〜S316の処理を繰り返し、定周期タイマの計時が終了した場合、今回の処理を終了する。
次に、図16を参照して、ゲートウェイ装置30−1〜30−3(RT更新部331−1〜331−3)による処理フローについて説明する。
図16は、ゲートウェイ装置30−1〜30−3(RT更新部331−1〜331−3)による処理の一例を概略的に示すフローチャートである。本フローチャートによる処理は、例えば、ゲートウェイ装置30−1〜30−3がウェイク状態(電源ON状態)にある場合に繰り返し実行される。
ステップS402にて、ゲートウェイ装置30−1〜30−3は、所定の周期に基づく定周期タイマの計時を開始する。
ステップS404にて、ゲートウェイ装置30−1〜30−3(RT更新部331−1〜331−3)は、ルーティング管理部333−1或いはゲートウェイ装置30−1からのRT更新通知の有無を確認する。
ステップS406にて、ゲートウェイ装置30−1〜30−3は、ルーティング管理部333−1或いはゲートウェイ装置30−1からのRT更新通知があったか否かを判定する。ゲートウェイ装置30−1〜30−3は、ルーティング管理部333−1或いはゲートウェイ装置30−1からのRT更新通知の受信があった場合、ステップS408に進み、それ以外の場合、ステップS410に進む。
ステップS408にて、ゲートウェイ装置30−1〜30−3(RT更新部331−1〜331−3)は、RT更新通知に含まれる代替ネットワークに係るルーティングテーブルのデータで、記憶部339−1〜339−3のルーティングテーブル3391−1〜3391−3を更新する。
ステップS410にて、ゲートウェイ装置30−1〜30−3は、定周期タイマの計時が終了したか否かを判定する。ゲートウェイ装置30−1〜30−3は、定周期タイマの計時が終了していない場合、ステップS404に戻り、ステップS404〜S410の処理を繰り返し、定周期タイマの計時が終了した場合、今回の処理を終了する。
このように、本実施形態では、論理的なメインネットワーク(第1のネットワーク)において、複数のノード(ゲートウェイ装置30−1〜30−3)の中の一のノード(ゲートウェイ装置30−1のルーティング管理部333−1)は、複数のループノードを物理的に接続する複数の通信線35を経由する通信の途絶が検出されると、途絶の原因である通信線35を経由しない態様で、1つの経路だけで相互に接続される論理的な代替ネットワーク(第2のネットワーク)を再構成し、代替ネットワークの構成に関する情報(ルーティングテーブルのデータ)を生成する。そして、一のノード(ゲートウェイ装置30−1の配信部334−1)は、生成された代替ネットワークの構成に関する情報を一のノード以外の他のノード(ゲートウェイ装置30−2,30−3)に配信する。従って、一のノード以外の複数のノードは、一のノードから配信される代替ネットワークの構成に関する情報を受信することにより、再構成された代替ネットワークの構成を把握し、通信の復旧を実現することができる。そのため、例えば、RIPを利用する場合のように、複数のローカルネットワーク間を接続するIPネットワークの各ゲートウェイ装置が相互に信号のやり取り等を行い、ネットワーク負荷を高めたりすることがなくなるため、通信の復旧をより早く実現できる。
また、本実施形態では、複数のゲートウェイ装置30のうちの2つのゲートウェイ装置30の間の物理的な通信経路が複数ある場合に、各通信経路に予め優先度が規定される。そのため、通信途絶の検出に際して、通信途絶の原因となる通信線35を含まない通信経路を、優先度が高い順に選択することにより、論理的な代替ネットワークを容易に再構成することができる。
尚、本実施形態では、複数のローカルネットワークの間を接続するゲートウェイ装置が全て物理的に通信線でループ接続されるが、一部のゲートウェイ装置が物理的にループ接続され、残りのゲートウェイ装置30は、物理的にループ接続されるゲートウェイ装置30の何れかから分岐して接続される態様であってもよい。この場合、本実施形態におけるゲートウェイ装置30−1の機能は、物理的にループ接続されるゲートウェイ装置30に設けられてもよいし、それ以外のゲートウェイ装置30に設けられてもよい。
以上、本発明を実施するための形態について詳述したが、本発明はかかる特定の実施形態に限定されるものではなく、特許請求の範囲に記載された本発明の要旨の範囲内において、種々の変形・変更が可能である。