(58)【調査した分野】(Int.Cl.,DB名)
【発明を実施するための形態】
【0011】
以下、図面を参照しながら、発明を実施するための形態を説明する。
<1.構成>
まず、本開示を適用したネットワークシステム100の構成について、
図1を参照して説明する。ネットワークシステム100は、車両に搭載されたネットワークシステムであり、メインネットワーク30と、サブネットワーク40〜43と、を備える。車両は、エンジン自動車、電気自動車、ハイブリッド自動車など、どのような駆動源の車両でもよい。
【0012】
メインネットワーク30は、コントローラAと、スイッチB1〜B3と、Ethernet(登録商標)信号線51〜55と、CAN(登録商標)信号線61〜65と、を備え、車両の制御用メッセージやオープンフローメッセージが通信されるネットワークである。
【0013】
Ethernet信号線51〜55は、Ethernetプロトコルに従ったEthernetフレームを送信するための信号線である。その内のEthernet信号線51〜53は、それぞれ、コントローラAとスイッチB1〜B3のそれぞれとを1対1で接続する信号線である。残りのEthernet信号線54,55は、それぞれ、スイッチB1とスイッチB2、スイッチB2とスイッチB3を1対1で接続する信号線である。以下では、Ethernet信号線51〜55をまとめてEthernet信号線50と称する。Ethernet信号線50が、本開示の第1信号線に相当する。
【0014】
CAN信号線61〜65は、CANプロトコルに従ったCANフレームを送信するための信号線である。そのうちのCAN信号線61はメイン信号線である。残りのCAN信号線62〜65は、それぞれ、CAN信号線61とコントローラA及びスイッチB1〜B3のそれぞれとを接続するサブ信号線である。つまり、CAN信号線61〜65は、バス型ネットワークを構成している。以下では、CAN信号線61〜65をまとめてCAN信号線60と称する。CAN信号線60が、本開示の第2信号線に相当する。
【0015】
ここで、オープンフロープロトコル通りに実装したメインネットワーク31を
図2に示す。メインネットワーク31は、CAN信号線60を備える代わりに、コントローラAとスイッチB1〜B3のそれぞれとを1対1で接続するEthernet信号線500を備える点で、メインネットワーク30と異なる。つまり、メインネットワーク31は、二本の信号線がどちらもEthernet信号線で構成されている。そのため、コストが増大する。
【0016】
また、信号線をEthernet信号線50の一本のみにしたメインネットワーク32を
図3に示す。メインネットワーク32は、CAN信号線60を備えず、Ethernet信号線50のみを備える点で、メインネットワーク30と異なる。つまり、メインネットワーク32は、Ethernet信号線50でオープンフローメッセージと制御メッセージのすべてを送信する。そのため、コストの増大が抑制される。しかしながら、Ethernet信号線50ですべてのメッセージを送信する構成にすると、Ethernet信号線50の通信帯域が逼迫するおそれがある。また、Ethernet信号線50ですべてのメッセージを送信する構成にすると、Ethernet信号線50に異常が発生した場合に、コントローラAが異常検出のオープンフローメッセージを受信できない可能性がある。よって、異常が発生しても、フェールセーフ機能が実現されない可能性がある。
【0017】
上述した2つの例に対して、本実施形態に係るメインネットワーク30は、Ethernet信号線50とCAN信号線60とを備えている。そのため、コストの増大を抑制しつつ、異常が発生してもオープンフローネットワークのフェールセーフ機能を維持できる。
【0018】
コントローラAは、CPU、ROM、RAM及びI/O等を備え、オープンフロープロトコルにおけるコントローラとして機能するECUである。コントローラAには、サブネットワーク40が接続されている。そして、コントローラAは、オープンフロー制御部10と、Ethernet通信制御部11と、CAN通信制御部12と、通信選択部13と、を備える。コントローラAの各機能は、ハードウェア及びソフトウェアの少なくとも一方により実現される。コントローラAが、本開示の第1制御装置に相当する。
【0019】
スイッチB1〜B3は、CPU、ROM、RAM及びI/O等を備え、オープンフロープロトコルにおけるスイッチとして機能するECUである。スイッチB1〜B3のそれぞれには、サブネットワーク41〜43のそれぞれが接続されている。そして、コントローラA及びスイッチB1〜B3は、サブネットワーク40〜43の間での車両制御用の制御メッセージの送信を中継する。
【0020】
本実施形態では、スイッチB1〜B3は、同様の構成となっているため、代表してスイッチB1の構成について説明する。スイッチB1は、オープンフロー処理部20と、Ethernet通信制御部21と、CAN通信制御部22と、通信選択部23と、を備える。スイッチB1〜スイッチB3が、本開示の第2制御装置に相当する。
【0021】
オープンフロー制御部10は、オープンフロープロトコルに従ってメインネットワーク30を制御する。詳しくは、オープンフロー制御部10は、オープンフロープロトコルに従ったオープンフローメッセージを、スイッチB1〜B3へ送信させる。オープンフローメッセージは、コントローラAとスイッチB1〜B3の間でやり取りするメッセージである。オープンフローメッセージには、スイッチB1〜B3の設定用のメッセージ、つまり、メインネットワーク30の通信ルール設定用のメッセージや、情報取得用のメッセージが含まれる。
【0022】
オープンフロー処理部20は、オープンフロー制御部10からのオープンフローメッセージに従い実行する。例えば、オープンフロー処理部20は、スイッチB1が通信ルール設定用のオープンフローメッセージを受信した場合に、オープンフローメッセージに応じてスイッチB1の通信ルールを設定する。
【0023】
また、オープンフロー処理部20は、スイッチB1が情報取得用のオープンフローメッセージを受信した場合に、要求に応じた情報をオープンフローメッセージでコントローラAへ送信させる。さらに、オープンフロー処理部20は、メインネットワーク30の負荷状態や異常状態、新しいネットワークノードを検出した場合の検出情報を、オープンフローメッセージでコントローラAへ送信させる。
【0024】
Ethernet通信制御部11,21は、Ethernetプロトコルに従って通信を制御する。つまり、Ethernet通信制御部11,21は、Ethernet信号線50を介したEthernetフレームの送信及び受信を行う。以下では、Ethernet通信制御部11,12によって行われる、Ethernet信号線50を介した通信を、Ethernet通信と称する。
【0025】
CAN通信制御部12,22は、CANプロトコルに従って通信を制御する。つまり、CAN通信制御部12,22は、CAN信号線60を介したCANフレームの送信及び受信を行う。以下では、CAN通信制御部12,22によって行われる、CAN信号線60を介した通信を、CAN通信と称する。
【0026】
通信選択部13,23は、オープンフローメッセージの通信に影響を与える要因に応じて、オープンフローメッセージを送信する際の通信制御部として、Ethernet通信制御部11,21及びCAN通信制御部12,22のいずれか一方を選択する。つまり、通信選択部13,23は、オープンフローメッセージを、Ethernet通信とCAN通信のどちらで送信するか選択し、選択した方の通信方法でオープンフローメッセージを送信させる。オープンフローメッセージの通信に影響を与える要因は、予め決められており、オープンフローメッセージの種別や、車両の電源状態を含む。
【0027】
サブネットワーク40〜43は、それぞれ、CAN信号線70〜73に複数のECU等の通信装置が接続されて構成されている。CAN信号線70〜73は、CANプロトコルに従ってCANフレームを通信するための信号線である。車両に搭載されたECU等の通信装置は、車両の搭載位置や機能などに応じて分類されて、サブネットワークを構成している。なお、CAN信号線70〜73は、CANプロトコル以外のプロトコルに従ってフレームを送信するための信号線であってもよい。
【0028】
本実施形態では、メインネットワーク30において、制御メッセージとオープンフローメッセージの通信が行われ、サブネットワーク40〜43において、制御メッセージの通信が行われる。制御メッセージは、車両を制御するためのメッセージで、所定のECUへの指令等である。例えば、サブネットワーク41に接続されたノードC11から、サブネットワーク42に接続されたノードC21への制御メッセージは、スイッチB1,B2により中継され、Ethernet信号線54を介して送信される。
【0029】
そして、メインネットワーク30において、制御メッセージの通信には、基本的に、CAN通信よりも通信速度が速いEthernet通信が用いられる。ただし、Ethernetフレームは、CANフレームよりも転送できるデータサイズが大きい。よって、コントローラA及びスイッチB1〜B3は、メインネットワーク30において、サブネットワーク40〜43のノードから受信した複数のCANフレームを1つのEthernetフレームにまとめて送信する。例えば、コントローラAが、サブネットワーク40のノードC01,02,03から、サブネットワーク41のノードC11,12,13宛ての3つのCANフレームを受信した場合には、3つのCANフレームをまとめて1つのEthernetフレームにする。そして、コントローラAは、そのEthernetフレームをスイッチB1へ送信する。スイッチB1は、受信したEthernetフレームを3つのCANフレームに分けて、ノードC11,12,13へ送信する。
【0030】
一方、メインネットワーク30において、オープンフローメッセージの通信には、上述したように、通信選択部13,23により選択された通信方法が用いられる。オープンフローメッセージは、その種別によって、メッセージ長や通信頻度、通信タイミングが異なる。メッセージ長の長いオープンフローメッセージの通信を、CAN通信によって行うと、通信に時間がかかり、リアルタイムで通信を行うことが困難な場合が生じる。その結果、制御メッセージの通信をリアルタイムで行うことが困難になったり、Ethernet通信の通信帯域を逼迫させたりする可能性がある。また、通信頻度が高いオープンフローメッセージの通信を、Ethernet通信によって行うと、Ethernet信号線50の通信帯域を逼迫させる可能性がある。よって、コントローラA及びスイッチB1〜B3は、オープンフローメッセージを、オープンフローメッセージの種別に応じて選択された通信方法によって送信する。
【0031】
また、車両の電源状態は、バッテリーオン状態、アクセサリーオン状態及びイグニッションオン状態の3つの状態を含む。イグニッションオン状態は、車両がエンジン自動車の場合には、エンジンが作動している状態であり、車両が電気自動車及びハイブリッド自動車の場合には、走行用モータに電力が供給されて、走行用モータが動作可能になっている状態である。また、本実施形態において、コントローラA及びスイッチB1〜B3は、車両全体の消費電力を抑制するため、CAN通信線60に接続されているCAN通信制御部12,22、及びEthernet通信線50に接続されているEthernet通信制御部11,21を、車両の電源状態に応じて作動状態または非作動状態に切り替える。例えば、車両の電源状態がバッテリーオン状態では、CAN通信制御部12,22、及びEthernet通信制御部11,21は共に非作動状態となり、アクセサリーオン状態では、車両の構成により異なるが、CAN通信制御部12,22は作動状態、Ethernet通信制御部11,21は非作動状態となり、イグニッションオン状態では、CAN通信制御部12,22、及びEthernet通信制御部11,21は共に作動状態となる。なお、アクセサリーオン状態では、CAN通信制御部12,22及びEthernet通信制御部11,21の両方が作動状態となることもある。
【0032】
そのため、車両の電源状態によっては、Ethernet通信を用いてオープンフローメッセージを送信できない。よって、オープンフローメッセージは、車両の電源状態に応じて選択された通信方法によって送信される。
【0033】
<2.送信処理>
次に、オープンフローメッセージを送信する処理手順について、
図4のフローチャートを参照して説明する。本実施形態のオープンフローメッセージの送信処理は、通信選択部13,23が実行する処理の1つである。通信選択部13,23は、オープンフロー制御部10またはオープンフロー処理部20からオープンフローメッセージの送信要求を受ける度、本送信処理を実行する。
【0034】
まず、S10では、車両の電源状態を確認する。また、S15で、車両の電源状態に対応したEthernet通信制御部11,21の作動状態とCAN通信制御12,22の作動状態を確認する。S15において、CAN通信制御部12,22のみが作動状態である場合は、S70へ進み、CAN通信制御部12,22によってオープンフローメッセージを送信させる。
【0035】
また、S10において、Ethernet通信制御部11,21のみが作動状態である場合は、S60へ進み、Ethernet通信制御部11,21によってオープンフローメッセージを送信させる。
【0036】
また、S10において、Ethernet通信制御部11,21及びCAN通信制御部12,22の両方が非作動状態である場合は、本処理を終了する。
さらに、S15において、Ethernet通信制御部11,21及びCAN通信制御部12,22の両方が作動状態である場合は、S30へ進み、送信するオープンフローメッセージの種別を確認する。
【0037】
続いて、S40において、通信方法選択テーブルを参照して、S30で確認したオープンフローメッセージの種別に対応する通信方法を取得する。通信方法選択テーブルは、オープンフローメッセージの種別とそのオープンフローメッセージの通信方法が対応付けられたテーブルであり、コントローラA及びスイッチB1〜B3のメモリに予め記憶されている。
図5に、通信方法選択テーブルの一例を示す。
【0038】
オープンフローメッセージの種別としては、
図5に示すように、Helloメッセージ、Echo Requestメッセージ、Echo Replyメッセージ、Errorメッセージ、Features Requestメッセージ、Features Replyメッセージ、Packet Outメッセージ、Status Requestメッセージ、Status Replyメッセージなどがある。
【0039】
Helloメッセージは、コントローラAとスイッチB1〜B3との接続開始時に用いられるメッセージである。Echo Requestメッセージは、コントローラAとスイッチB1〜B3との接続の死活監視に用いられるメッセージであり、Echo Replyは、それに対する返信メッセージである。Errorメッセージは、エラーを通知するためのメッセージである。Features Requestは、コントローラAがスイッチB1〜B3にスイッチ情報を要求するメッセージであり、Features Replyは、それに対してスイッチB1〜B3がスイッチ情報を返信するメッセージである。Packet Outは、コントローラAがスイッチB1〜B3から出力させるパケットを送るためのメッセージである。Status Requestは、コントローラAがスイッチB1〜B3に統計情報を要求するメッセージであり、Status Replyは、それに対してスイッチB1〜B3が統計情報を返信するメッセージである。
【0040】
通信方法選択テーブルでは、メッセージ長が予め設定された長さ閾値よりも短いオープンフローメッセージには、CAN通信が対応付けられ、メッセージ長が長さ閾値よりも長いオープンフローメッセージには、Ethernet通信が対応付けられていてもよい。この場合に用いるオープンフローメッセージの種別はメッセージ長である。あるいは、通信方法選択テーブルでは、メッセージ長が長さ閾値よりも短く、かつ、通信頻度が予め設定された頻度閾値よりも高いオープンフローメッセージには、CAN通信が対応付けられていてもよい。そして、通信方法選択テーブルでは、メッセージ長が長さ閾値よりも長い、または、通信頻度が頻度閾値よりも低いオープンフローメッセージには、Ethernet通信が対応付けられていてもよい。この場合に用いるオープンフローメッセージの種別は、メッセージ長及び通信頻度である。
【0041】
図5に示す通信方法選択テーブルでは、上の欄ほど、メッセージ長が短くかつ通信頻度が高いオープンフローメッセージを示し、下の欄ほど、メッセージ長が長いまたは通信頻度が低いオープンフローメッセージを示している。一般的に、メッセージ長の長いオープンフローメッセージは、通信ルール設定用のメッセージであり、コントローラA及びスイッチB1〜B3の起動時などに送信されるだけである。つまり、一般的に、メッセージ長の長いオープンフローメッセージは、制御メッセージの送信開始前に送信され、通信頻度も低い。そのため、メッセージ長の長いオープンフローメッセージをEthernet通信によって送信しても、Ethernet通信の通信帯域を逼迫させる可能性は低い。
【0042】
なお、コントローラAは、長さ閾値や頻度閾値を変更して、オープンフローメッセージの種別と通信方法との対応関係を変更し、自身の通信方法選択テーブルを変更するとともに、スイッチB1〜B3の通信方法選択テーブルを変更させてもよい。
【0043】
続いて、S50において、S40で取得した通信方法を判定する。S50において、通信方法がEthernet通信であると判定した場合は、S60へ進み、Ethernet通信制御部11,21から、オープンフローメッセージを送信させる。一方、S50において、通信方法がCAN通信であると判定した場合は、S70へ進み、CAN通信制御部12,22から、オープンフローメッセージを送信させる。以上により、本処理を終了する。
【0044】
<3.受信処理>
次に、CANフレームのメッセージを受信する処理手順について、
図6のフローチャートを参照して説明する。本実施形態のCAN受信処理は、CAN通信制御部12,22が実行する処理の1つである。CAN通信制御部12,22は、CANフレームのメッセージを受信する度、本CAN受信処理を実行する。
【0045】
まず、S100では、受信したメッセージのCAN IDを確認する。ネットワークシステム100において、CAN IDのそれぞれには、オープンフローメッセージであるか否か及び送信先のECUが予め対応付けられている。
【0046】
続いて、S110では、S100において確認したCAN IDが、オープンフローメッセージ用のCAN IDであるか否か判定する。S100において確認したCAN IDが、オープンフローメッセージ用のCAN IDである場合、S120へ進む。S120では、受信したメッセージをオープンフローメッセージとして取得するとともに制御する。
【0047】
一方、S100において確認したCAN IDが、オープンフローメッセージ用のCAN IDではない場合、すなわち制御メッセージ用のCAN IDの場合には、S130へ進む。S130では、受信したメッセージを制御メッセージとして取得するとともに制御する。以上で本処理を終了する。
【0048】
次に、Ethernetフレームのメッセージを受信する処理手順について、
図7のフローチャートを参照して説明する。本実施形態のEthernet受信処理は、Ethernet通信制御部11,21が実行する処理の1つである。Ethernet通信制御部11,21は、Ethernetフレームのメッセージを受信する度、本Ethernet受信処理を実行する。
【0049】
まず、S200では、受信したメッセージを確認する。具体的には、受信したメッセージのOSI Layer2に設定されたVLAN、あるいは、OSI Layer4に設定された論理ポートを確認する。
【0050】
続いて、S210では、受信したメッセージがオープンフローメッセージか否か判定する。具体的には、受信したメッセージのOSI Layer2に設定されたVLANがオープンフロー用VLANの場合、または、OSI Layer4に設定された論理ポートがオープンフロー用ポートの場合に、受信したメッセージがオープンフローメッセージであると判定する。S210において、受信したメッセージがオープンフローメッセージであると判定した場合には、S220に進む。S220では、受信したメッセージをオープンフローメッセージとして取得するとともに制御する。
【0051】
一方、S210において、受信したメッセージがオープンフローメッセージではないと判定した場合、つまり制御メッセージと判定した場合には、S230へ進む。S230では、受信したメッセージを制御メッセージとして取得するとともに制御する。以上で本処理を終了する。
【0052】
<5.効果>
以上説明した本実施形態によれば、以下の効果が得られる。
(1)コントローラAと複数のスイッチB1〜B3のそれぞれとが、Ethernet信号線50とCAN信号線60とで接続されているため、2つの信号線の両方を、Ethernet信号線とする場合と比べて、コストを抑制できる。そして、オープンフローメッセージの送信方法が、オープンフローメッセージの通信に影響を与える要因に応じて選択される。したがって、コントローラA及びスイッチB1〜B3は、上記要因に応じて、オープンフローメッセージの通信を適切に行うことができる。ひいては、多様な上記要因が存在する場合でも、車両ネットワークシステムは、オープンフロープロトコル作動させることができる。
【0053】
(2)車両の電源状態に応じて、オープンフローメッセージの送信方法が選択される。よって、消費電力抑制のために、Ethernet通信制御部11,21が非作動状態になっている場合でも、コントローラA及びスイッチB1〜B3は、作動状態になっているCAN通信制御部12,22を用いて、オープンフローメッセージを送信することができる。
【0054】
(3)Ethernet通信制御部11,21が作動状態になった以降においては、オープンフローメッセージの種別に応じて通信方法が選択される。そのため、制御メッセージの通信が始まり、Ethernet通信の通信負荷が高くなった場合でも、コントローラA及びスイッチB1〜B3は、Ethernet通信の通信帯域を逼迫させることを抑制しつつ、オープンフローメッセージを送信することができる。
【0055】
(4)1つのCANフレームにおけるプロトコル制御用の情報は、1つのEthernetフレームにおけるプロトコル制御用の情報よりも少ない。そのため、比較的短いメッセージ長のオープンフローメッセージは、CAN通信によって送信される。これにより、通信効率を上げることができる。また、コントローラA及びスイッチB1〜B3は、Ethernet通信を用いて、比較的長いメッセージ長のオープンフローメッセージを送信することで、Ethernet通信の通信帯域を逼迫させることを抑制しつつ、通信速度を上げることができる。
【0056】
(5)コントローラA及びスイッチB1〜B3は、メッセージ長に加えて通信頻度に応じて通信方法を選択することにより、Ethernet通信の通信帯域を逼迫させることをさらに抑制しつつ、オープンフローメッセージを送信することができる。
【0057】
(他の実施形態)
以上、本開示を実施するための形態について説明したが、本開示は上述の実施形態に限定されることなく、種々変形して実施することができる。
【0058】
(a)上記実施形態では、コントローラA及びスイッチB1〜B3は、CAN通信制御部12,22及びEthernet通信制御部11,21の両方が作動状態の場合には、オープンフローメッセージの種別に応じて通信方法を選択したが、本開示はこれに限定されるものではない。コントローラA及びスイッチB1〜B3は、CAN通信制御部12,22及びEthernet通信制御部11,21の両方が作動状態の場合には、オープンフローメッセージの種別にかかわらず、Ethernet通信によってオープンフローメッセージを送信してもよい。このようにしても、コントローラA及びスイッチB1〜B3は、Ethernet通信が非作動状態になっている場合に、作動状態になっているCAN通信を用いて、オープンフローメッセージを送信することができる。
【0059】
(b)上記実施形態及びその変形例に係る
図4のフローチャートにおいて、コントローラA及びスイッチB1〜B3は、S10,S15及びS20の処理は実行しなくてもよい。すなわち、コントローラA及びスイッチB1〜B3は、通信制御部の作動状態にかかわらず、オープンフローメッセージの種別のみに応じて、通信方法を選択してもよい。このようにしても、コントローラA及びスイッチB1〜B3は、車両の制御メッセージの通信帯域を逼迫させることなく、オープンフローメッセージの通信を行うことができる。ただし、この場合、通信が正しく行われない場合のフェールセーフ処理等が必要になる。
【0060】
(c)上記実施形態及びその変形例において、CAN信号線60は、CAN−FDプロトコルに従ってCAN−FDフレームを送信するための信号線であってもよい。この場合、CAN通信制御部12,22は、CAN−FDプロトコルに従って通信を制御する通信制御部として構成し、通信選択部13,23は、CAN通信の代わりに、CAN−FD通信を選択するように構成すればよい。
【0061】
(d)上記実施形態における1つの構成要素が有する複数の機能を、複数の構成要素によって実現したり、1つの構成要素が有する1つの機能を、複数の構成要素によって実現したりしてもよい。また、複数の構成要素が有する複数の機能を、1つの構成要素によって実現したり、複数の構成要素によって実現される1つの機能を、1つの構成要素によって実現したりしてもよい。また、上記実施形態の構成の一部を省略してもよい。また、上記実施形態の構成の少なくとも一部を、他の上記実施形態の構成に対して付加または置換してもよい。なお、特許請求の範囲に記載した文言のみによって特定される技術思想に含まれるあらゆる態様が本開示の実施形態である。