(57)【要約】【課題】オープンフロー接続の確立をより早く完了させることが可能な車両ネットワークシステムを提供する。【解決手段】車両ネットワークは、オープンフロー制御部１０を有するコントローラＡと、オープンフロー制御部１０からの指示を実行するオープンフロー処理部２０を有するスイッチＢ１〜Ｂ３と、Ｅｔｈｅｒｎｅｔ信号線５１〜５５と、ＣＡＮ信号線６１〜６５と、を備える。コントローラＡ及びスイッチＢ１〜Ｂ３は、Ｅｔｈｅｒｎｅｔ通信制御部１１，２１と、ＣＡＮ通信制御部１２，２２と、を備える。オープンフロー制御部１０及びオープンフロー処理部２０のそれぞれは、コントローラＡとスイッチＢ１〜Ｂ３のそれぞれとの間にＥｔｈｅｒｎｅｔ通信が確立するまでの期間において、オープンフロー接続の確立前及び確立後のオープンフローメッセージをＣＡＮ通信制御部１２，２２から送信する。【選択図】図１
2019054486.tif 000002
【特許請求の範囲】
【請求項１】
車両に搭載された車両ネットワークシステム（１００）であって、
オープンフロープロトコルに従ってネットワークを制御するように構成されたオープンフロー制御部（１０）を有する第１制御装置（Ａ）と、
前記オープンフロー制御部からの指示を実行するように構成されたオープンフロー処理部（２０）を有する複数の第２制御装置（Ｂ１〜Ｂ３）と、
前記第１制御装置と前記複数の第２制御装置のそれぞれとを接続する信号線であって、Ｅｔｈｅｒｎｅｔ（登録商標）フレームを送信するための第１信号線（５１〜５５）と、
前記第１制御装置と前記複数の第２制御装置のそれぞれとを接続する信号線であって、ＣＡＮ（登録商標）フレームまたはＣＡＮ−ＦＤフレームを送信するための第２信号線（６１〜６５）と、
を備え、
前記第１制御装置及び前記複数の第２制御装置のそれぞれは、
Ｅｔｈｅｒｎｅｔプロトコルに従って通信を制御するように構成されたＥｔｈｅｒｎｅｔ通信制御部（１１，２１）と、
ＣＡＮまたはＣＡＮ−ＦＤプロトコルに従って通信を制御するように構成されたＣＡＮ通信制御部（１２，２２）と、
を備え、
前記オープンフロー制御部は、前記複数の第２制御装置のそれぞれとの間にＥｔｈｅｒｎｅｔ通信が確立するまでの期間において、オープンフロー接続の確立前及び確立後のオープンフローメッセージを前記ＣＡＮ通信制御部から送信するように構成されており、
前記オープンフロー処理部のそれぞれは、前記第１制御装置との間に前記Ｅｔｈｅｒｎｅｔ通信が確立するまでの期間において、前記オープンフロー接続の確立前及び確立後のオープンフローメッセージを前記ＣＡＮ通信制御部から送信するように構成されている、
車両ネットワークシステム。
【請求項２】
前記オープンフロー制御部と前記オープンフロー処理部のそれぞれは、前記オープンフロー接続を確立する前に、前記Ｅｔｈｅｒｎｅｔ通信が確立した場合には、前記Ｅｔｈｅｒｎｅｔ通信が確立した後において、前記オープンフローメッセージを前記ＣＡＮ通信制御部及び前記Ｅｔｈｅｒｎｅｔ通信制御部のいずれかから送信するように構成されている、
請求項１に記載の車両ネットワークシステム。
【請求項３】
前記オープンフロー制御部は、前記複数の第２制御装置との間ごとに、前記Ｅｔｈｅｒｎｅｔ通信が確立したか否か判定し、前記第１制御装置との間で前記Ｅｔｈｅｒｎｅｔ通信が確立している前記第２制御装置に対して、前記オープンフローメッセージを前記ＣＡＮ通信制御部及び前記Ｅｔｈｅｒｎｅｔ通信制御部のいずれかから送信するように構成されている、
請求項２に記載の車両ネットワークシステム。
【発明の詳細な説明】
【技術分野】
【０００１】
本開示は、車両ネットワークシステムに関する。
【背景技術】
【０００２】
車両に要求される機能が多彩化していくにつれ、車両内の機器の搭載位置に関する制約の廃止、異常状態の発生や新たな機器の追加に対する柔軟な対応などが、要求されると予想される。このような要求に対応するネットワークの仕組みとして、Software Defined Networkがある。そして、この仕組みを実現する手段として、特許文献１に記載の通信処理装置のように、オープンフロープロトコルを適用したオープンフローネットワークがある。
【先行技術文献】
【特許文献】
【０００３】
【特許文献１】特開２０１６−１４４１１７号公報
【発明の概要】
【発明が解決しようとする課題】
【０００４】
オープンフロープロトコルは、セキュリティの観点から、コントローラと複数のスイッチのそれぞれとの間を、通常のメッセージを送信するためのＥｔｈｅｒｎｅｔ（登録商標）信号線と、オープンフローメッセージを送信するためのＥｔｈｅｒｎｅｔ信号線とで、別個に接続することを推奨している。
【０００５】
推奨されるオープンフロープロトコル通りに車両ネットワークを実装した場合、コントローラ及び複数のスイッチが起動すると、Ｅｔｈｅｒｎｅｔ通信の確立処理が開始される。そして、Ｅｔｈｅｒｎｅｔ通信が確立した後に、Ｅｔｈｅｒｎｅｔ通信によって、コントローラと各スイッチとの間のオープンフロー接続の確立処理が開始される。ここで、Ｅｔｈｅｒｎｅｔ通信の確立処理は、コントローラと複数のスイッチとのそれぞれとの間で通信できるように設定する必要があるため、ＣＡＮ通信などと比べて、完了するまでに長い時間を要する。ひいては、オープンフロー制御の実施を開始するまでに長い時間を要する。
【０００６】
本開示は、上記実情に鑑みてなされたものであり、オープンフロー接続の確立までに要する時間を抑制することが可能な車両ネットワークシステムを提供することを目的とする。
【課題を解決するための手段】
【０００７】
車両に搭載された車両ネットワークシステム（１００）であって、第１制御装置（Ａ）と、複数の第２制御装置（Ｂ１〜Ｂ３）と、第１信号線（５１〜５５）と、第２信号線（６１〜６５）と、を備える。第１制御装置は、オープンフロープロトコルに従ってネットワークを制御するように構成されたオープンフロー制御部（１０）を有する。複数の第２制御装置は、オープンフロー制御部からの指示を実行するように構成されたオープンフロー処理部（２０）を有する。第１信号線は、第１制御装置と複数の第２制御装置のそれぞれとを接続する信号線であって、Ｅｔｈｅｒｎｅｔ（登録商標）フレームを送信するための信号線である。第２信号線は、第１制御装置と複数の第２制御装置のそれぞれとを接続する信号線であって、ＣＡＮ（登録商標）フレームまたはＣＡＮ−ＦＤフレームを送信するための信号線である。
【０００８】
また、第１制御装置及び複数の第２制御装置のそれぞれは、Ｅｔｈｅｒｎｅｔ通信制御部（１１，２１）と、ＣＡＮ通信制御部（１２，２２）と、を備える。Ｅｔｈｅｒｎｅｔ通信制御部は、Ｅｔｈｅｒｎｅｔプロトコルに従って通信を制御する。ＣＡＮ通信制御部は、ＣＡＮまたはＣＡＮ−ＦＤプロトコルに従って通信を制御する。さらに、オープンフロー制御部は、複数の第２制御装置のそれぞれとの間にＥｔｈｅｒｎｅｔ通信が確立するまでの期間において、オープンフロー接続の確立前及び確立後のオープンフローメッセージをＣＡＮ通信制御部から送信する。オープンフロー処理部のそれぞれは、第１制御装置との間にＥｔｈｅｒｎｅｔ通信が確立するまでの期間において、オープンフロー接続の確立前及び確立後のオープンフローメッセージを前記第ＣＡＮ通信制御部から送信する。
【０００９】
本開示によれば、第１制御装置と複数の第２制御装置のそれぞれとが、Ｅｔｈｅｒｎｅｔ通信用の第１信号線とＣＡＮ通信用の第２信号線とで接続される。一般に、ＣＡＮ通信の確立処理は、バスと通信できるように設定するだけであるため、制御装置が起動してから完了するまでに比較的短い時間を要する。これに対して、Ｅｔｈｅｒｎｅｔ通信の確立処理は、第１制御装置と複数の第２制御装置のそれぞれとの間で通信できるように設定する必要があるため、制御装置が起動してから完了するまでに比較的長い時間を要する。そこで、Ｅｔｈｅｒｎｅｔ通信が確立するまでの期間において、オープンフロー接続の確立前及び確立後のオープンフローメッセージがＣＡＮ通信により送信される。これにより、Ｅｔｈｅｒｎｅｔ通信の確立処理の実行中でも、オープンフロー接続の確立処理を進めることができる。したがって、第１制御装置と複数の第２制御装置のそれぞれとの間において、オープンフロー接続の確立までに要する時間を抑制することができる。
【００１０】
なお、この欄及び特許請求の範囲に記載した括弧内の符号は、一つの態様として後述する実施形態に記載の具体的手段との対応関係を示すものであって、本開示の技術的範囲を限定するものではない。
【図面の簡単な説明】
【００１１】
【図１】車両ネットワークシステムの構成を示す図である。
【図２】第１実施形態の通信の起動処理を示すフローチャートである。
【図３】第１実施形態のＥｔｈｅｒｎｅｔ通信準備タスクを示すフローチャートである。
【図４】Ｅｔｈｅｒｎｅｔ接続の確立処理における、コントローラとスイッチとのやり取りを示すシーケンス図である。
【図５】Ｅｔｈｅｒｎｅｔ通信の通信速度及びモードとその優先順位を説明する図である。
【図６】ＭＡＣアドレス解決を説明する図である。
【図７】ＴＣＰ接続の確立処理における、コントローラとスイッチとのやり取りを示すシーケンス図である。
【図８】第１実施形態のオープンフロー接続確立タスクを示すフローチャートである。
【図９】オープンフロー接続の確立処理における、コントローラとスイッチとのやり取りを示すシーケンス図である。
【図１０】オープンフロー通信タスクの処理手順を示すフローチャートである。
【図１１】制御通信タスクの処理手順を示すフローチャートである。
【図１２】オープンフロープロトコル通りに実装したネットワークシステムの構成を示す図である。
【図１３】第２実施形態の通信の起動処理を示すフローチャートである。
【図１４】第２実施形態のＥｔｈｅｒｎｅｔ通信準備タスクを示すフローチャートである。
【図１５】第２実施形態のオープンフロー接続の確立処理を示すフローチャートである。
【図１６】コントローラの起動からオープンフロー接続確立までにおける、コントローラと複数のスイッチとのやり取りを示すシーケンス図である。
【発明を実施するための形態】
【００１２】
以下、図面を参照しながら、発明を実施するための形態を説明する。
（第１実施形態）
＜１．構成＞
まず、本開示を適用したネットワークシステム１００の構成について、図１を参照して説明する。ネットワークシステム１００は、車両に搭載されたネットワークシステムであり、メインネットワーク３０と、サブネットワーク４０〜４３と、を備える。
【００１３】
メインネットワーク３０は、コントローラＡと、スイッチＢ１〜Ｂ３と、Ｅｔｈｅｒｎｅｔ（登録商標）信号線５１〜５５と、ＣＡＮ（登録商標）信号線６１〜６５と、を備えた、オープンフローネットワークである。メインネットワーク３０では、制御メッセージとオープンフローメッセージの通信が行われる。制御メッセージは、車両を制御するためのメッセージで、所定のＥＣＵへの指令等である。
【００１４】
Ｅｔｈｅｒｎｅｔ信号線５１〜５５は、Ｅｔｈｅｒｎｅｔプロトコルに従ったＥｔｈｅｒｎｅｔフレームを送信するための信号線である。そのうちのＥｔｈｅｒｎｅｔ信号線５１〜５３は、それぞれ、コントローラＡとスイッチＢ１〜Ｂ３のそれぞれとを１対１で接続する信号線である。残りのＥｔｈｅｒｎｅｔ信号線５４，５５は、それぞれ、スイッチＢ１とスイッチＢ２、スイッチＢ２とスイッチＢ３を１対１で接続する信号線である。以下では、Ｅｔｈｅｒｎｅｔ信号線５１〜５５をまとめてＥｔｈｅｒｎｅｔ信号線５０と称する。Ｅｔｈｅｒｎｅｔ信号線５０が、本開示の第１信号線に相当する。
【００１５】
ＣＡＮ信号線６１〜６５は、ＣＡＮプロトコルに従ったＣＡＮフレームを送信するための信号線である。そのうちのＣＡＮ信号線６１はメイン信号線である。残りのＣＡＮ信号線６２〜６５は、それぞれ、ＣＡＮ信号線６１とコントローラＡ及びスイッチＢ１〜Ｂ３のそれぞれとを接続するサブ信号線である。つまり、ＣＡＮ信号線６１〜６５は、バス型ネットワークを構成している。以下では、ＣＡＮ信号線６１〜６５をまとめてＣＡＮ信号線６０と称する。ＣＡＮ信号線６０が、本開示の第２信号線に相当する。
【００１６】
サブネットワーク４０〜４３は、それぞれ、コントローラＡ及びスイッチＢ１〜Ｂ３のそれぞれに接続されており、ＣＡＮ信号線７０〜７３に複数のＥＣＵ等の通信装置が接続されて構成されている。ＣＡＮ信号線７０〜７３は、ＣＡＮプロトコルに従ってＣＡＮフレームを通信するための信号線である。車両に搭載されたＥＣＵ等の通信装置は、車両における搭載位置や機能などに応じて分類されて、サブネットワークを構成している。サブネットワーク４０〜４３では、制御メッセージの通信が行われる。なお、ＣＡＮ信号線７０〜７３は、ＣＡＮプロトコル以外のプロトコルに従ってフレームを送信するための信号線であってもよい。
【００１７】
コントローラＡは、ＣＰＵ、ＲＯＭ、ＲＡＭ及びＩ／Ｏ等を備え、オープンフロープロトコルにおけるコントローラとして機能するＥＣＵである。コントローラＡには、サブネットワーク４０が接続されている。コントローラＡは、オープンフロー制御部１０と、Ｅｔｈｅｒｎｅｔ通信制御部１１と、ＣＡＮ通信制御部１２と、を備える。コントローラＡの各機能は、ハードウェア及びソフトウェアの少なくとも一方により実現される。コントローラＡが、本開示の第１制御装置に相当する。
【００１８】
スイッチＢ１〜Ｂ３は、ＣＰＵ、ＲＯＭ、ＲＡＭ及びＩ／Ｏ等を備え、オープンフロープロトコルにおけるスイッチとして機能するＥＣＵである。スイッチＢ１〜Ｂ３のそれぞれには、サブネットワーク４１〜４３のそれぞれが接続されている。
【００１９】
本実施形態では、スイッチＢ１〜Ｂ３は、同様の構成となっているため、代表してスイッチＢ１の構成について説明する。スイッチＢ１は、オープンフロー処理部２０と、Ｅｔｈｅｒｎｅｔ通信制御部２１と、ＣＡＮ通信制御部２２と、を備える。スイッチＢ１〜スイッチＢ３が、本開示の第２制御装置に相当する。
【００２０】
オープンフロー制御部１０及びオープンフロー処理部２０は、コントローラＡとスイッチＢ１〜Ｂ３とのそれぞれとの間にオープンフロー接続を確立し、オープンフロープロトコルに従ったオープンフローメッセージのやり取りを行う。
【００２１】
オープンフロー制御部１０は、オープンフロープロトコルに従って、スイッチＢ１〜Ｂ３の動作を指示するオープンフローメッセージをスイッチＢ１〜Ｂ３へ送信し、メインネットワーク３０を制御する。コントローラＡからスイッチＢ１〜Ｂ３へ送信するオープンフローメッセージには、メインネットワーク３０の通信ルール設定用のメッセージや、情報取得用のメッセージが含まれる。
【００２２】
オープンフロー処理部２０は、オープンフロー制御部１０からの指示を実行する。例えば、オープンフロー処理部２０は、スイッチＢ１が通信ルール設定用のオープンフローメッセージを受信した場合には、受信したオープンフローメッセージに応じてスイッチＢ１の通信ルールを設定する。また、オープンフロー処理部２０は、スイッチＢ１が情報取得用のオープンフローメッセージを受信した場合には、要求に応じた情報を含むオープンフローメッセージを、Ｅｔｈｅｒｎｅｔ通信制御部２１またはＣＡＮ通信制御部２２からコントローラＡへ送信する。さらに、オープンフロー処理部２０は、メインネットワーク３０の負荷状態や異常状態、新しいネットワークノードを検出した場合の検出情報を含むオープンフローメッセージを、Ｅｔｈｅｒｎｅｔ通信制御部２１またはＣＡＮ通信制御部２２からコントローラＡへ送信する。
【００２３】
Ｅｔｈｅｒｎｅｔ通信制御部１１，２１は、コントローラＡとスイッチＢ１〜Ｂ３のそれぞれとの間、スイッチＢ１とスイッチＢ２との間、及びスイッチＢ２とスイッチＢ３との間にＥｔｈｅｒｎｅｔ通信を確立し、Ｅｔｈｅｒｎｅｔプロトコルに従って通信を制御する。つまり、Ｅｔｈｅｒｎｅｔ通信制御部１１，１２は、Ｅｔｈｅｒｎｅｔ信号線５０を介したＥｔｈｅｒｎｅｔフレームの送信及び受信を行う。以下では、Ｅｔｈｅｒｎｅｔ通信制御部１１，１２によって行われる、Ｅｔｈｅｒｎｅｔ信号線５０を介した通信を、Ｅｔｈｅｒｎｅｔ通信と称する。
【００２４】
ＣＡＮ通信制御部１２，２２は、コントローラＡ，スイッチＢ１〜Ｂ３のそれぞれのＣＡＮ通信を確立し、ＣＡＮプロトコルに従って通信を制御する。つまり、ＣＡＮ通信制御部１２，２２は、ＣＡＮ信号線６０を介したＣＡＮフレームの送信及び受信を行う。以下では、ＣＡＮ通信制御部１２，２２によって行われる、ＣＡＮ信号線６０を介した通信を、ＣＡＮ通信と称する。
【００２５】
また、コントローラＡ及びスイッチＢ１〜Ｂ３は、Ｅｔｈｅｒｎｅｔ通信制御部１１，２１またはＣＡＮ通信制御部１２，２２によって受信された制御メッセージを中継処理する。例えば、サブネットワーク４１のノードＣ１からサブネットワーク４３のノードＣ３に対して制御メッセージが送信された場合、ノードＣ１からノードＣ３へ中継経路上のスイッチＢ１，コントローラＡ，スイッチＢ３は、ノードＣ１からノードＣ３へ制御メッセージを中継する。中継に用いる中継経路及び通信方法は、予めオープンフローメッセージにより通信ルールとして設定されている。
【００２６】
＜２．通信の起動処理＞
次に、第１実施形態の通信の起動処理の処理手順について、図２のフローチャートを参照して説明する。本起動処理は、コントローラＡが実行する処理の１つである。コントローラＡは、電源が投入されて起動された際に、本起動処理を実行する。
【００２７】
まず、Ｓ１０では、コントローラＡは、ＣＡＮ通信に必要なハードウェアまたはソフトウェアの設定を行う。例えば、コントローラＡは、ＣＡＮ通信制御部１２に電源を供給して、ＣＡＮ通信制御部１２を通信許可モードに切り替える。一般に、この設定は数ｍｓｅｃ〜数十ｍｓｅｃで完了する。Ｓ１０の処理が終了した時点で、ＣＡＮ通信は確立される。よって、Ｓ１０の処理が終了した時点で、ＣＡＮ通信を用いて制御メッセージを送信することは可能である。ただし、Ｓ１０の処理が終了した時点で、オープンフロー接続は確立されていないので、オープンフロー通信は実行できない。
【００２８】
続いて、Ｓ２０では、コントローラＡは、Ｅｔｈｅｒｎｅｔ通信に必要なハードウェア及びソフトウェアの設定を行う。例えば、コントローラＡは、Ｅｔｈｅｒｎｅｔ通信制御部１１に電源を供給して、Ｅｔｈｅｒｎｅｔ通信制御部１１のハードウェア及びソフトウェアを初期化する。Ｅｔｈｅｒｎｅｔ通信は、ＣＡＮ通信と異なりPeer-to-Peer（Ｐ２Ｐ）で接続するため、ＣＡＮ通信と比べて通信確立の手順が多い。Ｓ２０の処理が終了した時点では、Ｅｔｈｅｒｎｅｔ通信は確立されていない。つまり、Ｓ２０の処理が終了した時点では、Ｅｔｈｅｒｎｅｔ通信を用いることはできない。
【００２９】
続いて、Ｓ３０では、コントローラＡは、Ｓ１０及びＳ２０以外のコントローラＡの起動に必要なハードウェア及びソフトウェアの設定を行う。例えば、コントローラＡは、オペレーティングシステムの設定を行う。
【００３０】
続いて、Ｓ４０では、コントローラＡは、Ｅｔｈｅｒｎｅｔ通信準備タスクを行う。Ｅｔｈｅｒｎｅｔ通信準備タスクの詳細は後述する。本実施形態において、「タスク」とは、決められた目的を達成するまでの間、他のタスクとは非同期に処理を行い続ける処理を意味する。よって、コントローラＡは、Ｅｔｈｅｒｎｅｔ通信準備タスクの実行中に、次のＳ５０の処理を開始する。
【００３１】
Ｓ５０では、コントローラＡは、オープンフロー接続の確立タスクを行う。オープンフロー接続の確立タスクの詳細は後述する。コントローラＡは、オープンフロー接続の確立タスクの実行中に、次のＳ６０の処理を開始する。
【００３２】
Ｓ６０では、コントローラＡは、オープンフロー通信タスクを行う。オープンフロー通信タスクの詳細は後述する。コントローラＡは、オープンフロー通信タスクの実行中に、Ｓ７０の処理を開始する。
【００３３】
Ｓ７０では、コントローラＡは、制御通信タスクを行う。制御通信タスクの詳細は後述する。コントローラＡは、制御通信タスクの実行中に、Ｓ８０処理を開始する。
Ｓ８０では、コントローラＡは、Ｓ４０〜Ｓ７０以外のタスクを行う。コントローラＡは、その他タスクの実行中に、Ｓ６０へ戻り、Ｓ６０〜Ｓ８０の処理を繰り返し実行する。以上で、本処理を終了する。なお、スイッチＢ１〜Ｂ３も、電源が投入されて起動された際に、Ｓ１０〜Ｓ８０の処理と同様の処理を行う。
【００３４】
＜２−１．Ｅｔｈｅｒｎｅｔ通信準備タスク＞
次に、Ｅｔｈｅｒｎｅｔ通信準備タスクの処理手順について、図３のフローチャートを参照して説明する。本Ｅｔｈｅｒｎｅｔ通信準備タスクは、コントローラＡ及びスイッチＢ１〜Ｂ３がそれぞれ行う処理の１つだが、ここではコントローラＡを例に説明する。
【００３５】
まず、Ｓ４１０では、コントローラＡは、コントローラＡとスイッチＢ１との間のＥｔｈｅｒｎｅｔ接続を確立する。具体的には、図４に示すように、オートネゴシエーション機能を用いて、コントローラＡとスイッチＢ１との間で用いる通信速度及び通信モードを決定する。
【００３６】
Ｅｔｈｅｒｎｅｔ通信で設定できる通信速度と通信モードの通信組み合わせは、図５に示す７種類があり、１〜７までの優先順位が設定されている。コントローラＡ及びスイッチＢ１には、それぞれ、対応可能な通信組み合わせが設定されている。図４に示す例では、コントローラＡは７種類の通信組み合わせのうちの６種類の通信組み合わせに対応可能であり、スイッチＢ１は７種類の通信組み合わせのうちの４種類の通信組み合わせに対応可能である。
【００３７】
コントローラＡ及びスイッチＢ１は、Ｅｔｈｅｒｎｅｔ通信制御部１１，２１のハードウェア及びソフトウェアの初期化処理を完了した後、各自で通信速度及び通信モードの設定処理を開始する。図４に示す例では、スイッチＢ１がコントローラＡよりも先に初期化処理を完了して設定処理を開始している。
【００３８】
スイッチＢ１は、初期化処理を完了した後、スイッチＢ１の対応可能な通信組み合わせを伝達するために、Fast Link Pulse（ＦＬＰ）をコントローラＡへバースト送信する。コントローラＡは、初期化処理中は、スイッチＢ１から送信されたＦＬＰを認識することができない。スイッチＢ１は、コントローラＡからＦＬＰに対する応答があるまで、繰り返しＦＬＰをコントローラＡへバースト送信する。
【００３９】
コントローラＡは、初期化処理を完了した後、スイッチＢ１から送信されたＦＬＰに基づいて、スイッチＢ１が対応可能な通信組み合わせを認識する。そして、コントローラＡは、コントローラＡとスイッチＢ１との間で用いる通信速度及び通信モードを、コントローラＡとスイッチＢ１の両方で対応可能な通信組み合わせの中で、最も優先順位が高い通信組み合わせに決定する。本実施形態の例では、コントローラＡは、コントローラＡとスイッチＢ１との間で用いる通信速度及び通信モードを、「１００ＢＡＳＥ−ＴＸ  全二重」に決定する。
【００４０】
そして、コントローラＡは、決定した通信速度及び通信モードをスイッチＢ１へ伝達するために、ＦＬＰをスイッチＢ１へバースト送信する。スイッチＢ１は、コントローラＡから送信されたＦＬＰに基づいて、コントローラＡとスイッチＢ１との間で用いる通信速度及び通信モードを認識する。以上で、コントローラＡとスイッチＢ１との間のＥｔｈｅｒｎｅｔ接続が確立する。
【００４１】
Ｓ４２０では、Ｓ４１０の処理と同様にして、コントローラＡは、コントローラＡとスイッチＢ２との間のＥｔｈｅｒｎｅｔ接続を確立する。Ｓ４３０では、Ｓ４１０の処理と同様にして、コントローラＡは、コントローラＡとスイッチＢ３との間のＥｔｈｅｒｎｅｔ接続を確立する。コントローラＡは、Ｓ４２０及びＳ４３０の処理を、Ｓ４１０の処理と並行して実行すればよい。
【００４２】
続いて、Ｓ４３５では、コントローラＡは、Ｓ４１０〜Ｓ４３０の処理の同期を取る。つまり、コントローラＡは、Ｓ４１０〜Ｓ４３０のすべての処理が終了するまで待機し、Ｓ４１０〜Ｓ４３０のすべての処理が終了した後に次の処理へ進む。
【００４３】
続いて、Ｓ４４０では、コントローラＡが、スイッチＢ１のＩＰアドレスから同スイッチのＭＡＣアドレスを特定させる。ＭＡＣアドレスは、機器固有の固定的に付与された物理的なアドレスであり、ＩＰアドレスは、機器がネットワークに接続された時に自動的に付与される機器ごとの論理的なアドレスである。アプリケーションのレベルではＩＰアドレスを用いて通信が行われるが、Ｅｔｈｅｒｎｅｔ通信のレベルではＭＡＣアドレスを用いて通信が行われるため、ＩＰアドレスとＭＡＣアドレスとを対応付ける必要がある。以下、ＩＰアドレスからＭＡＣアドレスを特定させる処理を、アドレスを解決する、またはアドレス解決と呼ぶ。
【００４４】
コントローラＡは、図６に示すように、Address Resolution Protocol（ＡＲＰ）を用いて、スイッチＢ１のＩＰアドレスに対応する物理アドレスの情報を取得する。コントローラＡは、ＡＲＰリクエストをスイッチＢ１〜Ｂ３のそれぞれへ送信する。ＡＲＰリクエストは、所定のＩＰアドレスを持つノードのＭＡＣアドレスを教えて欲しいというリクエストである。ここでは、コントローラＡは、スイッチＢ１のＩＰアドレスを持つノードのＭＡＣアドレスを教えて欲しいというＡＲＰリクエストを送信する。スイッチＢ１は、ＡＲＰリクエストを受信すると、スイッチＢ１のＭＡＣアドレスを教えるＡＲＰリプライをコントローラＡへ送信する。これにより、コントローラＡは、スイッチＢ１のＭＡＣアドレスの情報を得る。
【００４５】
Ｓ４５０では、Ｓ４４０の処理と同様にして、コントローラＡは、スイッチＢ２のＭＡＣアドレスを解決する。Ｓ４６０では、Ｓ４４０の処理と同様にして、コントローラＡは、スイッチＢ３のＭＡＣアドレスを解決する。コントローラＡは、Ｓ４５０及びＳ４６０の処理を、Ｓ４４０の処理と並行して実行すればよい。
【００４６】
続いて、Ｓ４６５では、コントローラＡは、Ｓ４４０〜Ｓ４６０の処理の同期を取る。つまり、コントローラＡとは、Ｓ４４０〜Ｓ４６０のすべての処理が終了するまで待機し、Ｓ４４０〜Ｓ４６０のすべての処理が終了した後に次の処理へ進む。
【００４７】
続いて、Ｓ４７０では、コントローラＡは、コントローラＡとスイッチＢ１とのＴＣＰ接続を確立する。具体的には、図７で示すように、コントローラＡとスイッチＢ１との間で、３回のやり取りを行う３ウェイハンドシェイクによってＴＣＰ接続を確立する。
【００４８】
Ｓ４８０では、Ｓ４７０の処理と同様にして、コントローラＡは、スイッチＢ２とのＴＣＰ接続を確立する。Ｓ４９０では、Ｓ４７０の処理と同様にして、コントローラＡは、スイッチＢ３とのＴＣＰ接続を確立する。コントローラＡは、Ｓ４８０及びＳ４９０の処理を、Ｓ４７０の処理と並行して実行すればよい。
【００４９】
続いて、Ｓ４９５では、Ｓ４７０〜Ｓ４８０の処理の同期を取る。以上で、Ｅｔｈｅｒｎｅｔ通信準備タスクを終了する。この結果、コントローラＡとスイッチＢ１〜Ｂ３との間において、Ｅｔｈｅｒｎｅｔ通信が確立する。このように、Ｅｔｈｅｒｎｅｔ通信の確立には手間がかかるため、一般に、Ｅｔｈｅｒｎｅｔ通信の確立には、ＣＡＮ通信の確立に要する時間の数十倍程度である秒単位の時間を要する。なお、スイッチＢ１は、コントローラＡ及びスイッチＢ２，Ｂ３との間で、Ｓ４１０〜Ｓ４９０と同様の処理を行う。また、スイッチＢ２は、コントローラＡ及びスイッチＢ１，Ｂ３との間で、Ｓ４１０〜Ｓ４９０と同様の処理を行う。また、スイッチＢ３は、コントローラＡ及びスイッチＢ１，Ｂ２との間で、Ｓ４１０〜Ｓ４９０と同様の処理を行う。
【００５０】
＜２−２．オープンフロー接続確立タスク＞
次に、オープンフロー接続確立タスクの処理手順について、図８のフローチャートを参照して説明する。本オープンフロー接続確立タスクは、コントローラＡが実行する処理の１つのである。
【００５１】
まず、Ｓ５１０では、コントローラＡは、すでに通信が確立されているＣＡＮ通信を用いて、コントローラＡとスイッチＢ１とのオープンフロー接続を確立する。
【００５２】
具体的には、図９に示すように、コントローラＡとスイッチＢ１は、Helloメッセージを交換する。このHelloメッセージは、コントローラＡとスイッチＢ１のどちらが先に出してもよいが、スイッチＢ１から先に出すことが多い。コントローラＡとスイッチＢ１は、Helloメッセージを交換することで、お互いのバージョンを確認する。
【００５３】
続いて、コントローラＡは、Features RequestメッセージをスイッチＢ１へ送信し、スイッチＢ１からFeatures Replyメールを受信する。これによって、コントローラＡが、スイッチＢ１の識別子及び対応機能を取得し、コントローラＡとスイッチＢ１との間のオープンフロー接続が確立する。その後、コントローラＡは、必要に応じて、Flow ModメッセージをスイッチＢ１へ送信して、スイッチＢ１のフローテーブルを書き換える。
【００５４】
Ｓ５２０では、コントローラＡは、Ｓ５１０の処理と同様にして、コントローラＡとスイッチＢ２とのオープンフロー接続を確立する。Ｓ５３０では、コントローラＡは、Ｓ５１０の処理と同様にして、コントローラＡとスイッチＢ２とのオープンフロー接続を確立する。コントローラＡは、Ｓ５２０及びＳ５３０の処理を、Ｓ５１０の処理と並行して実行すればよい。
【００５５】
続いて、Ｓ５３５では、Ｓ５１０〜Ｓ５３０の処理の同期を取る。以上で、オープンフロー接続確立タスクを終了する。なお、スイッチＢ１〜Ｂ３は、それぞれ、オープンフロー接続確立タスクにおいて、コントローラＡとのオープンフロー接続を確立する。
【００５６】
＜２−３．オープンフロー通信タスク＞
次に、オープンフロー通信タスクの処理手順について、図１０のフローチャートを参照して説明する。本オープンフロー通信タスクは、コントローラＡが実行する処理の１つである。
【００５７】
まず、Ｓ６１０では、コントローラＡは、オープンフローメッセージを受信する。オープンフローメッセージがＥｔｈｅｒｎｅｔフレームの場合は、コントローラＡは、Ｅｔｈｅｒｎｅｔ通信制御部１１によりオープンフローメッセージを受信する。オープンフローメッセージがＣＡＮフレームの場合は、コントローラＡは、ＣＡＮ通信制御部１２によりオープンフローメッセージを受信する。
【００５８】
続いて、Ｓ６２０では、コントローラＡは、Ｓ６１０において受信したオープンフローメッセージにおいて、オープンフローメッセージの送信が要求されているか否か判定する。Ｓ６２０において、オープンフローメッセージの送信が要求されていないと判定された場合は、Ｓ６１０の処理へ戻る。Ｓ６２０において、オープンフローメッセージの送信が要求されていると判定された場合は、Ｓ６３０の処理へ進む。
【００５９】
Ｓ６３０では、コントローラＡは、Ｅｔｈｅｒｎｅｔ通信準備タスクが終了しているか否か判定する。つまり、コントローラＡは、コントローラＡとスイッチＢ１〜Ｂ３のそれぞれとの間で、Ｅｔｈｅｒｎｅｔ通信が確立しているか否か判定する。
【００６０】
Ｓ６３０において、Ｅｔｈｅｒｎｅｔ通信準備タスクが終了していると判定された場合は、Ｓ６４０の処理へ進む。Ｓ６４０では、コントローラＡは、Ｅｔｈｅｒｎｅｔ通信制御部１１からオープンフローメッセージを送信する。その後、Ｓ６１０の処理へ戻る。一方、Ｓ６３０において、Ｅｔｈｅｒｎｅｔ通信準備タスクが終了していないと判定された場合は、Ｓ６５０の処理へ進む。Ｓ６５０では、コントローラＡは、ＣＡＮ通信制御部１２からオープンフローメッセージを送信する。その後、Ｓ６１０の処理へ戻る。以上により、Ｅｔｈｅｒｎｅｔ通信が確立する前は、オープンフローメッセージはＣＡＮ通信により送信される。なお、スイッチＢ１〜Ｂ３も、Ｓ６１０〜Ｓ６５０の処理と同様の処理を行う。
【００６１】
＜２−４．制御通信タスク＞
次に、制御通信タスクの処理手順について、図１１のフローチャートを参照して説明する。本制御通信タスクは、コントローラＡが実行する処理の１つである。
【００６２】
まず、Ｓ７１０では、コントローラＡは、制御メッセージを受信する。制御メッセージがＥｔｈｅｒｎｅｔフレームの場合は、コントローラＡは、Ｅｔｈｅｒｎｅｔ通信制御部１１により制御メッセージを受信する。制御メッセージがＣＡＮフレームの場合は、コントローラＡは、ＣＡＮ通信制御部１２によりオープンフローメッセージを受信する。
【００６３】
続いて、Ｓ７２０では、コントローラＡは、Ｓ７１０において受信した制御メッセージにおいて、ＣＡＮ通信による制御メッセージの送信が要求されているか否か判定する。Ｓ７２０において、ＣＡＮ通信による制御メッセージの送信が要求されていると判定された場合は、Ｓ７３０の処理へ進む。Ｓ７３０では、コントローラＡは、ＣＡＮ通信制御部１２から制御メッセージを送信する。その後、Ｓ７１０の処理へ戻る。
【００６４】
一方、Ｓ７２０において、ＣＡＮ通信による制御メッセージの送信が要求されていないと判定された場合は、Ｓ７４０の処理へ進む。Ｓ７４０では、コントローラＡは、Ｓ７１０において受信した制御メッセージにおいて、Ｅｔｈｅｒｎｅｔ通信による制御メッセージの送信が要求されているか否か判定する。Ｓ７４０において、Ｅｔｈｅｒｎｅｔ通信による制御メッセージの送信が要求されていないと判定された場合は、Ｓ７１０の処理へ戻る。
【００６５】
一方、Ｓ７４０において、Ｅｔｈｅｒｎｅｔ通信による制御メッセージの送信が要求されていると判定された場合は、Ｓ７５０の処理へ進む。Ｓ７５０では、コントローラＡは、Ｅｔｈｅｒｎｅｔ通信準備タスクが終了しているか否か判定する。Ｓ７５０において、Ｅｔｈｅｒｎｅｔ通信準備タスクが終了していないと判定された場合は、Ｓ７１０の処理へ戻る。Ｓ７５０において、Ｅｔｈｅｒｎｅｔ通信準備タスクが終了していると判定された場合は、Ｓ７６０へ進む。
【００６６】
Ｓ７６０では、コントローラＡは、Ｅｔｈｅｒｎｅｔ通信制御部１１から制御メッセ―ジを送信する。その後、Ｓ７１０の処理へ戻る。なお、スイッチＢ１〜Ｂ３も、Ｓ７１０〜Ｓ７６０の処理と同様の処理を行う。
【００６７】
＜３．効果＞
以上説明した第１実施形態によれば、以下の効果が得られる。
（１）コントローラＡとスイッチＢ１〜Ｂ３のそれぞれとが、Ｅｔｈｅｒｎｅｔ信号線５０とＣＡＮ信号線６０とで接続される。そして、コントローラＡ及びスイッチＢ１〜Ｂ３が起動してからＥｔｈｅｒｎｅｔ通信が確立するまでの期間において、コントローラＡとスイッチＢ１〜Ｂ３のそれぞれとの間で、ＣＡＮ通信によってオープンフローメッセージがやり取りされる。これにより、Ｅｔｈｅｒｎｅｔ通信の確立処理の実行中に、オープンフロー接続の確立処理を進めることができる。したがって、コントローラＡ及びスイッチＢ１〜Ｂ３の起動後からオープンフロー接続確立までの時間を抑制し、ネットワークシステム１００におけるオープンフロー制御の実施を早く開始することができる。
【００６８】
これに対して、図１２に示すように、オープンフロープロトコル通りに車両ネットワークを実装すると、コントローラＡとスイッチＢ１〜Ｂ３のそれぞれとの間が、Ｅｔｈｅｒｎｅｔ信号線５０及びＥｔｈｅｒｎｅｔ信号線５００で接続される。この場合は、コントローラＡとスイッチＢ１〜Ｂ３のそれぞれとの間において、Ｅｔｈｅｒｎｅｔ通信を確立した後でなければ、オープンフロー接続の確立処理を開始することができない。そのため、コントローラＡ及びスイッチＢ１〜Ｂ３の起動後からオープンフロー接続確立までの時間が長くなり、車両ネットワークにおけるオープンフロー制御の実施の開始が遅くなる。
【００６９】
（第２実施形態）
＜１．第１実施形態との相違点＞
第２実施形態は、基本的な構成は第１実施形態と同様であるため、共通する構成については説明を省略し、相違点を中心に説明する。なお、第１実施形態と同じ符号は、同一の構成を示すものであって、先行する説明を参照する。
【００７０】
前述した第１実施形態では、コントローラＡとスイッチＢ１〜Ｂ３のそれぞれとの間において、各Ｅｔｈｅｒｎｅｔ通信の確立処理の実行が同期しているとともに、各オープンフロー接続の確立処理の実行が同期していた。これに対し、第２実施形態では、コントローラＡとスイッチＢ１〜Ｂ３のそれぞれとの間において、各Ｅｔｈｅｒｎｅｔ通信の確立処理が独立して実行されるとともに、各オープンフロー接続の確立処理が独立して実行される点で、第１実施形態と相違する。
【００７１】
＜２．通信の起動処理＞
次に、第２実施形態の通信の起動処理の処理手順について、図１３のフローチャートを参照して説明する。本起動処理はコントローラＡ及びスイッチＢ１〜Ｂ３がそれぞれ行う処理の１つだが、ここではコントローラＡを例に説明する。コントローラＡは、電源が投入されて起動された際に、本起動処理を実行する。
【００７２】
まず、Ｓ１０〜Ｓ３０では、コントローラＡは、上述した図２のフローチャートのＳ１０〜Ｓ３０と同様の処理を実行する。
続いて、Ｓ４０Ａでは、コントローラＡは、コントローラＡとスイッチＢ１との間のＥｔｈｅｒｎｅｔ通信準備タスクを行う。Ｅｔｈｅｒｎｅｔ通信準備タスクの詳細は後述する。本実施形態において、「タスク」は、第１実施形態と同様の処理を意味する。
【００７３】
続いて、Ｓ４０Ｂでは、コントローラＡは、Ｓ４０Ａと同様にして、コントローラＡとスイッチＢ２との間のＥｔｈｅｒｎｅｔ通信準備タスクを行う。
続いて、Ｓ４０Ｃでは、コントローラＡは、Ｓ４０Ａと同様にして、コントローラＡとスイッチＢ３との間のＥｔｈｅｒｎｅｔ通信準備タスクを行う。
【００７４】
続いて、Ｓ５０Ａでは、コントローラＡは、コントローラＡとスイッチＢ１との間のオープンフロー接続の確立処理を行う。オープンフロー接続の確立処理の詳細は後述する。
続いて、Ｓ５０Ｂでは、コントローラＡは、Ｓ５０Ａと同様にして、コントローラＡとスイッチＢ２との間のオープンフロー接続の確立処理を行う。続いて、Ｓ５０Ｃでは、コントローラＡは、Ｓ５０Ａと同様にして、コントローラＡとスイッチＢ３との間のオープンフロー接続の確立処理を行う。
【００７５】
続いて、Ｓ６０〜Ｓ８０では、コントローラＡは、上述した図２のフローチャートのＳ６０〜Ｓ８０と同様の処理を実行する。なお、スイッチＢ１〜Ｂ３も、電源が投入されて起動された際に、Ｓ１０〜Ｓ８０の処理と同様の処理を行う。
【００７６】
＜２−１．Ｅｔｈｅｒｎｅｔ通信準備タスク＞
次に、第２実施形態のＥｔｈｅｒｎｅｔ通信準備タスクの処理手順について、図１４のフローチャートを参照して説明する。図１４のフローチャートにおいて、Ｘは、Ｂ１〜Ｂ３のいずれかを示す変数である。第１実施形態では、コントローラＡとスイッチＢ１〜Ｂ３のそれぞれとの間において、Ｅｔｈｅｒｎｅｔ通信の確立処理の実行が同期していたが、本実施形態では、各Ｅｔｈｅｒｎｅｔ通信の確立処理が非同期で実行される。
【００７７】
Ｓ４０５において、コントローラＡは、スイッチＸとの間のＥｔｈｅｒｎｅｔ接続を確立する。詳しくは、コントローラＡは、第１実施形態のＳ４１０〜Ｓ４３０の処理と同様に、オートネゴシエーション機能を用いて、Ｅｔｈｅｒｎｅｔ接続を確立する。
【００７８】
続いて、Ｓ４１５において、コントローラＡは、スイッチＸのＭＡＣアドレスを解決する。詳しくは、コントローラＡは、第１実施形態のＳ４４０〜Ｓ４６０の処理と同様に、ＡＲＰを用いて、スイッチＸのＩＰアドレスに対応する物理アドレスの情報を取得する。
【００７９】
続いて、Ｓ４２５において、コントローラＡは、スイッチＸとのＴＣＰ接続を確立する。詳しくは、コントローラＡは、第１実施形態のＳ４７０〜Ｓ４９０の処理と同様に、３ウェイハンドシェイクによってＴＣＰ接続を確立する。以上で本処理を終了する。本実施形態では、コントローラＡとスイッチＢ１〜Ｂ３のそれぞれとの間において、Ｅｔｈｅｒｎｅｔ通信準備タスクが終了するタイミングは必ずしも一致しない。
【００８０】
＜２−２．オープンフロー接続確立処理＞
次に、オープンフロー接続の確立処理の処理手順について、図１５のフローチャートを参照して説明する。図１５のフローチャートにおいて、Ｘは、Ｂ１〜Ｂ３の何れかを示す変数である。第１実施形態では、コントローラＡとスイッチＢ１〜Ｂ３のそれぞれとの間において、各オープンフロー接続の確立処理の実行が同期していたが、本実施形態では、各オープンフロー接続の確立処理が非同期で実行される。また、本接続確立処理は、タスクではない。つまり、Ｘ＝Ｂ１〜Ｂ３について、Ｓ５０５〜Ｓ５２５の処理が完了しない限り、通信の起動処理には戻らない。
【００８１】
Ｓ５０５において、コントローラＡは、コントローラＡとスイッチＸとの間において、Ｅｔｈｅｒｎｅｔ通信準備タスクが終了したか否か判定する。
Ｓ５０５において、Ｅｔｈｅｒｎｅｔ通信準備タスクが終了したと判定された場合は、Ｓ５１５へ進む。Ｓ５１５では、コントローラＡは、Ｅｔｈｅｒｎｅｔ通信を用いて、コントローラＡとスイッチＸとの間に、オープンフロー接続を確立する。詳しくは、コントローラＡは、Ｅｔｈｅｒｎｅｔ通信を用いて、スイッチＸと、図９に示すオープンフローメッセージのやり取りをし、コントローラＡとスイッチＸとの間にオープンフロー接続を確立する。
【００８２】
一方、Ｓ５０５において、Ｅｔｈｅｒｎｅｔ通信準備タスクが終了していないと判定された場合は、Ｓ５２５へ進む。Ｓ５２５では、コントローラＡは、Ｓ５１０〜Ｓ５３０の処理と同様に、すでに通信が確立されているＣＡＮ通信を用いて、コントローラＡとスイッチＸとの間にオープンフロー接続を確立する。以上で本処理を終了する。
【００８３】
本実施形態では、コントローラＡとスイッチＢ１〜Ｂ３との間ごとに、Ｅｔｈｅｒｎｅｔ通信が確立したか否か判定される。そして、コントローラＡとスイッチＢ１〜Ｂ３の間ごとに、Ｅｔｈｅｒｎｅｔ通信の確立が終了次第、オープンフロー接続の確立にＥｔｈｅｒｎｅｔ通信が用いられる。
【００８４】
＜３．動作＞
次に、第２実施形態のコントローラＡの起動からオープンフロー接続の確立までにおける、コントローラＡとスイッチＢ１〜Ｂ３のそれぞれとのやり取りの一例を説明する。ここでは、コントローラＡに着目したやり取りのみを示すが、スイッチＢ１〜Ｂ３もコントローラＡと同様の処理を行っている。図１６において、二重の矢印はＥｔｈｅｒｎｅｔ信号線５０を用いたメッセージの送信を示し、一重の矢印はＣＡＮ信号線６０を用いたメッセージの送信を示す。
【００８５】
まず、コントローラＡ及びスイッチＢ１〜Ｂ３の電源が順次投入される。コントローラＡは、電源が投入されて起動すると、Ａ２１において、ＣＡＮ通信に必要なハードウェアまたはソフトウェアの設定をする。続いて、Ａ２２において、コントローラＡは、Ｅｔｈｅｒｎｅｔ通信に必要なハードウェア及びソフトウェアの設定をする。続いて、Ａ２３において、コントローラＡは、その他の起動に必要なハードウェア及びソフトウェアの設定をする。
【００８６】
続いて、Ａ２４において、コントローラＡは、Ｅｔｈｅｒｎｅｔ信号線５０を介して、コントローラＡとスイッチＢ１との間のＥｔｈｅｒｎｅｔ通信の確立処理を開始する。続いて、Ａ２５において、コントローラＡは、スイッチＢ１との間のＥｔｈｅｒｎｅｔ通信の確立処理が完了する前に、Ｅｔｈｅｒｎｅｔ信号線５０を介して、コントローラＡとスイッチＢ２との間のＥｔｈｅｒｎｅｔ通信の確立処理を開始する。続いて、Ａ２６において、コントローラＡは、スイッチＢ１及びスイッチＢ２のそれぞれとの間のＥｔｈｅｒｎｅｔ通信の確立処理が完了する前に、Ｅｔｈｅｒｎｅｔ信号線５０を介して、コントローラＡとスイッチＢ３との間のＥｔｈｅｒｎｅｔ通信の確立処理を開始する。
【００８７】
続いて、Ａ２７において、コントローラＡは、スイッチＢ１〜Ｂ３のそれぞれとの間のＥｔｈｅｒｎｅｔ通信の確立処理が完了する前に、ＣＡＮ信号線６０を介して、コントローラＡとスイッチＢ１とのオープンフロー接続の確立処理を開始する。
【００８８】
続いて、Ａ２８において、コントローラＡは、Ｅｔｈｅｒｎｅｔ信号線５０を介した、コントローラＡとスイッチＢ１とのＥｔｈｅｒｎｅｔ通信の確立処理を終了する。続いて、Ａ２９において、コントローラＡは、Ｅｔｈｅｒｎｅｔ信号線５０を介した、コントローラＡとスイッチＢ２とのＥｔｈｅｒｎｅｔ通信の確立処理を終了する。
【００８９】
続いて、Ａ３０において、コントローラＡとスイッチＢ２とのＥｔｈｅｒｎｅｔ通信が確立しているため、コントローラＡは、Ｅｔｈｅｒｎｅｔ通信を用いて、コントローラＡとスイッチＢ２とのオープンフロー接続の確立処理を開始する。
【００９０】
＜４．効果＞
以上説明した第２実施形態によれば、前述した第１実施形態の効果（１）に加え、以下の効果が得られる。
【００９１】
（２）オープンフロー接続の確立前にＥｔｈｅｒｎｅｔ通信が確立した場合には、Ｅｔｈｅｒｎｅｔ通信の確立後において、オープンフロー接続の確立前及び確立後のオープンフローメッセージが、Ｅｔｈｅｒｎｅｔ通信のいずれかにより送信される。したがって、ＣＡＮ通信によるオープンフロー接続の確立処理に時間がかかっている場合には、Ｅｔｈｅｒｎｅｔ通信によりオープンフロー接続の確立処理を実行することができる。また、ＣＡＮ信号線６０が断線していてＣＡＮ通信を実行できない場合でも、Ｅｔｈｅｒｎｅｔ通信によりオープンフロー接続の確立処理を実行することができる。ひいては、ネットワークシステム１００の信頼性を向上させることができる。
【００９２】
（３）コントローラＡとスイッチＢ１〜Ｂ３のそれぞれとの間において、Ｅｔｈｅｒｎｅｔ通信が早く確立したＥＣＵ間から順次、オープンフロー接続を確立する通信方法がＥｔｈｅｒｎｅｔ通信に切り替えられる。よって、より早いオープンフロー接続の確立を実現することができる。
【００９３】
（他の実施形態）
以上、本開示を実施するための形態について説明したが、本開示は上述の実施形態に限定されることなく、種々変形して実施することができる。
【００９４】
（ａ）図１０に示すオープンフロー通信タスクにおいて、Ｅｔｈｅｒｎｅｔ通信準備タスクが終了していると判定された場合には、コントローラＡ及びスイッチＢ１〜Ｂ３は、常にＥｔｈｅｒｎｅｔ通信によりオープンフローメッセージを送信していたが、本開示はこれに限定されるものではない。この場合、コントローラＡ及びスイッチＢ１〜Ｂ３は、オープンフローメッセージの種別や送信タイミングに応じて、Ｅｔｈｅｒｎｅｔ通信及びＣＡＮ通信の一方を選択し、選択した通信方法を用いてオープンフローメッセージを送信してもよい。
【００９５】
（ｂ）図１５に示すオープンフロー接続の確立処理において、Ｅｔｈｅｒｎｅｔ通信準備タスクが終了していると判定された場合には、コントローラＡは、常にＥｔｈｅｒｎｅｔ通信を用いてオープンフロー接続の確立処理を実行していたが、本開示はこれに限定されるものではない。この場合、コントローラＡは、Ｅｔｈｅｒｎｅｔ通信及びＣＡＮ通信のいずれか一方を用いて、オープンフロー接続の確立処理を実行すればよい。
【００９６】
（ｃ）上記実施形態において、ＣＡＮ信号線６０は、ＣＡＮ−ＦＤプロトコルに従ってＣＡＮ−ＦＤフレームを送信するための信号線であってもよい。この場合、ＣＡＮ通信制御部１２，２２は、ＣＡＮ−ＦＤプロトコルに従って通信を制御する通信制御部として構成し、オープンフロー制御部１０及びオープンフロー処理部２０は、ＣＡＮ通信の代わりに、ＣＡＮ−ＦＤ通信を用いるように構成すればよい。
【００９７】
（ｄ）上記実施形態における１つの構成要素が有する複数の機能を、複数の構成要素によって実現したり、１つの構成要素が有する１つの機能を、複数の構成要素によって実現したりしてもよい。また、複数の構成要素が有する複数の機能を、１つの構成要素によって実現したり、複数の構成要素によって実現される１つの機能を、１つの構成要素によって実現したりしてもよい。また、上記実施形態の構成の一部を省略してもよい。また、上記実施形態の構成の少なくとも一部を、他の上記実施形態の構成に対して付加又は置換してもよい。なお、特許請求の範囲に記載した文言のみによって特定される技術思想に含まれるあらゆる態様が本開示の実施形態である。
【符号の説明】
【００９８】
１０…オープンフロー制御部、１１，２１…Ｅｔｈｅｒｎｅｔ通信制御部、１２，２２…ＣＡＮ通信制御部、２０…オープンフロー処理部、５１〜５５…Ｅｔｈｅｒｎｅｔ信号線、６１〜６５…ＣＡＮ信号線、１００…ネットワークシステム、Ａ…コントローラ、Ｂ１〜Ｂ３…スイッチ。
【図１】
2019054486.tif 000003
【図２】
2019054486.tif 000004
【図３】
2019054486.tif 000005
【図４】
2019054486.tif 000006
【図５】
2019054486.tif 000007
【図６】
2019054486.tif 000008
【図７】
2019054486.tif 000009
【図８】
2019054486.tif 000010
【図９】
2019054486.tif 000011
【図１０】
2019054486.tif 000012
【図１１】
2019054486.tif 000013
【図１２】
2019054486.tif 000014
【図１３】
2019054486.tif 000015
【図１４】
2019054486.tif 000016
【図１５】
2019054486.tif 000017
【図１６】
2019054486.tif 000018