最初に、本発明の実施形態の内容を列記して説明する。
(1)本発明の実施の形態に係るスイッチ装置は、車載ネットワークにおけるデータを中継処理するスイッチ装置であって、スイッチ部と、前記スイッチ部を介して前記中継処理を行う処理部とを備え、前記処理部は、自己において前記中継処理を行うべきフレームが複数存在する場合において、各前記フレームの送信元アドレスが異なる場合における前記各フレームの前記スイッチ部への出力レートを、前記各フレームの送信元アドレスが同一である場合と比べて小さくする調整処理を行う。
このような構成により、処理部は、各フレームの送信元アドレスが同一であるか否かに基づいて、自己のスイッチ装置が輻輳状態であるか否かを判断することができる。そして、各フレームの送信元アドレスが異なる場合にRAMの空き容量が逼迫する可能性が高い輻輳状態であると判断し、出力レートを下げることで、データのロスを防ぐことができる。また、各フレームの送信元アドレスが同じである場合にデータのロスが発生する可能性が低い非輻輳状態であると判断し、出力レートを上げることで、処理部を介した中継処理をより早く完了させることができる。したがって、車載ネットワークにおいて、データのロスを防ぎながら当該データの中継処理を効率よく行うことができる。
(2)好ましくは、前記処理部は、前記各フレームの前記送信元アドレスが異なる場合における前記各フレームの出力レートを同じ値に設定する。
このような構成により、輻輳状態において、各送信元アドレスを有する装置へ同じ速度でデータを中継することができる。また、フレームごとに出力レートを変更する必要が無いので調整処理を簡素化することができる。
(3)より好ましくは、前記処理部は、前記各フレームの前記送信元アドレスが異なる場合において、各前記送信元アドレスの優先度に従って前記各フレームを前記スイッチ部へ出力する。
このような構成により、たとえば、出力レートを下げている輻輳状態において、優先して中継すべきフレームをより早くスイッチ部へ出力することができるので、車載ネットワークにおける重要なデータの伝送遅延をより小さくすることができる。
(4)好ましくは、前記処理部は、前記各フレームの前記送信元アドレスが異なる場合における前記各フレームの出力レートを、各前記送信元アドレスの全部または一部において異なる値に設定する。
このような構成により、輻輳状態において、送信元アドレスに応じた出力レートでフレームをスイッチ部へ出力することができるので、車載ネットワークにおいて、柔軟な速度設定に従ってフレームを伝送することができる。
(5)本発明の実施の形態に係るスイッチ装置は、車載ネットワークにおけるデータを中継処理するスイッチ装置であって、スイッチ部と、前記スイッチ部を介して前記中継処理を行う処理部とを備え、前記処理部は、自己において前記中継処理を行うべきフレームが複数存在する場合において、各前記フレームの送信元アドレスが異なるとき、各前記送信元アドレスを有する装置のうちの少なくともいずれか1つへフレームの送信タイミングに関する指示を送信する調整処理を行う。
このように、各フレームの送信元アドレスが異なる場合、すなわち輻輳状態である場合において、各送信元アドレスを有する装置のうちの少なくともいずれか1つへ、たとえば送信の延期要求を送信する構成により、輻輳の程度を下げるか、または非輻輳状態にすることができるので、MCUからL2スイッチへのデータの出力レートを下げる構成を用いなくてもデータのロスを防ぐことができる。したがって、車載ネットワークにおいて、データのロスを防ぎながら当該データの中継処理を効率よく行うことができる。
(6)好ましくは、前記処理部は、前記中継処理を行うべきフレームが複数存在するか否かの確認を周期的に行う。
このような構成により、定期的に確認する簡易なポーリング方式で、中継処理を行うべき複数のフレームの存在を確認することができる。
(7)好ましくは、前記処理部は、前記中継処理を行うべきフレームが所定数以上蓄積された場合に前記調整処理を行う。
このような構成により、中継処理を行うべきフレームが所定数以上蓄積されたことをトリガとするイベントドリブン型で調整処理を行うことができる。
(8)本発明の実施の形態に係る通信制御方法は、車載ネットワークにおけるデータを中継処理し、スイッチ部と、前記スイッチ部を介して中継処理を行う処理部とを備えるスイッチ装置における通信制御方法であって、前記スイッチ部を介して前記中継処理を行うステップと、前記処理部において前記中継処理を行うべきフレームが複数存在するか否かを確認するステップとを含み、前記中継処理を行うステップにおいては、前記処理部において前記中継処理を行うべきフレームが複数存在する場合、各前記フレームの送信元アドレスが異なる場合における前記各フレームの前記スイッチ部への出力レートを、前記各フレームの送信元アドレスが同一である場合と比べて小さくする調整処理を行う。
このような構成により、処理部は、各フレームの送信元アドレスが同一であるか否かに基づいて、自己のスイッチ装置が輻輳状態であるか否かを判断することができる。そして、各フレームの送信元アドレスが異なる場合にRAMの空き容量が逼迫する可能性が高い輻輳状態であると判断し、出力レートを下げることで、データのロスを防ぐことができる。また、各フレームの送信元アドレスが同じである場合にデータのロスが発生する可能性が低い非輻輳状態であると判断し、出力レートを上げることで、処理部を介した中継処理をより早く完了させることができる。したがって、車載ネットワークにおいて、データのロスを防ぎながら当該データの中継処理を効率よく行うことができる。
(9)本発明の実施の形態に係る通信制御方法は、車載ネットワークにおけるデータを中継処理し、スイッチ部と、前記スイッチ部を介して中継処理を行う処理部とを備えるスイッチ装置における通信制御方法であって、前記スイッチ部を介して前記中継処理を行うステップと、前記処理部において前記中継処理を行うべきフレームが複数存在するか否かを確認するステップとを含み、前記中継処理を行うステップにおいては、前記処理部において前記中継処理を行うべきフレームが複数存在する場合において、各前記フレームの送信元アドレスが異なるとき、各前記送信元アドレスを有する装置のうちの少なくともいずれか1つへフレームの送信タイミングに関する指示を送信する調整処理を行う。
このように、各フレームの送信元アドレスが異なる場合、すなわち輻輳状態である場合において、各送信元アドレスを有する装置のうちの少なくともいずれか1つへ、たとえば送信の延期要求を送信する構成により、輻輳の程度を下げるか、または非輻輳状態にすることができるので、MCUからL2スイッチへのデータの出力レートを下げる構成を用いなくてもデータのロスを防ぐことができる。したがって、車載ネットワークにおいて、データのロスを防ぎながら当該データの中継処理を効率よく行うことができる。
(10)本発明の実施の形態に係る通信制御プログラムは、車載ネットワークにおけるデータを中継処理するスイッチ装置において用いられる通信制御プログラムであって、コンピュータを、スイッチ部と、前記スイッチ部を介して前記中継処理を行う処理部、として機能させるためのプログラムであり、前記処理部は、自己において前記中継処理を行うべきフレームが複数存在する場合において、各前記フレームの送信元アドレスが異なる場合における前記各フレームの前記スイッチ部への出力レートを、前記各フレームの送信元アドレスが同一である場合と比べて小さくする調整処理を行う。
このような構成により、処理部は、各フレームの送信元アドレスが同一であるか否かに基づいて、自己のスイッチ装置が輻輳状態であるか否かを判断することができる。そして、各フレームの送信元アドレスが異なる場合にRAMの空き容量が逼迫する可能性が高い輻輳状態であると判断し、出力レートを下げることで、データのロスを防ぐことができる。また、各フレームの送信元アドレスが同じである場合にデータのロスが発生する可能性が低い非輻輳状態であると判断し、出力レートを上げることで、処理部を介した中継処理をより早く完了させることができる。したがって、車載ネットワークにおいて、データのロスを防ぎながら当該データの中継処理を効率よく行うことができる。
(11)本発明の実施の形態に係る通信制御プログラムは、車載ネットワークにおけるデータを中継処理するスイッチ装置において用いられる通信制御プログラムであって、コンピュータを、スイッチ部と、前記スイッチ部を介して前記中継処理を行う処理部、として機能させるためのプログラムであり、前記処理部は、自己において前記中継処理を行うべきフレームが複数存在する場合において、各前記フレームの送信元アドレスが異なるとき、各前記送信元アドレスを有する装置のうちの少なくともいずれか1つへフレームの送信タイミングに関する指示を送信する調整処理を行う。
このように、各フレームの送信元アドレスが異なる場合、すなわち輻輳状態である場合において、各送信元アドレスを有する装置のうちの少なくともいずれか1つへ、たとえば送信の延期要求を送信する構成により、輻輳の程度を下げるか、または非輻輳状態にすることができるので、MCUからL2スイッチへのデータの出力レートを下げる構成を用いなくてもデータのロスを防ぐことができる。したがって、車載ネットワークにおいて、データのロスを防ぎながら当該データの中継処理を効率よく行うことができる。
以下、本発明の実施の形態について図面を用いて説明する。なお、図中同一または相当部分には同一符号を付してその説明は繰り返さない。また、以下に記載する実施の形態の少なくとも一部を任意に組み合わせてもよい。
<第1の実施の形態>
[構成および基本動作]
図1は、本発明の第1の実施の形態に係る車載通信システムの構成を示す図である。
図1を参照して、車載通信システム301は、スイッチ装置101と、複数の車載通信デバイス111とを備える。車載通信システム301は、車両1に搭載される。
車載通信デバイス111は、たとえば、TCU(Telematics Communication Unit)、セントラルゲートウェイ(CGW)、ヒューマンマシンインタフェース、カメラ、センサ、運転支援装置およびナビゲーション装置等であり、スイッチ装置101と通信を行うことが可能である。
車両1の車載ネットワークにおけるスイッチ装置101および各車載通信デバイス111の接続関係は、たとえば固定されている。
スイッチ装置101および車載通信デバイス111は、たとえば、車載のイーサネット(登録商標)通信用のケーブル(以下、イーサネットケーブルとも称する。)により互いに接続されている。
スイッチ装置101および車載通信デバイス111は、イーサネットケーブルを用いて互いに通信する。スイッチ装置101および車載通信デバイス111間では、たとえば、IEEE802.3に従うイーサネットフレームを用いて情報のやり取りが行われる。イーサネットフレームの伝送速度は、たとえば100Mbps(Mega bits per second)である。
図2は、本発明の第1の実施の形態に係る車載通信システムの適用例を示す図である。図2には、車載通信デバイス111の具体例として、TCU111A、CGW111B、カメラ111Cおよび運転支援装置111Dが示される。
なお、車載通信システム301は、4つの車載通信デバイス111を備える構成に限らず、3つまたは5つ以上の車載通信デバイス111を備える構成であってもよい。
車載ネットワークにおいて、たとえば、TCU111AとCGW111Bとカメラ111Cおよび運転支援装置111Dとは、互いに異なるサブネットに属する。
車載ネットワークでは、たとえば、IPプロトコルに従って、IPパケットを用いて情報の送受信が行われる。IPパケットは、イーサネットフレームに格納されて伝送される。
スイッチ装置101は、車載ネットワークにおけるデータを中継処理するスイッチ装置である。
具体的には、スイッチ装置101は、TCU111A、CGW111B、カメラ111Cおよび運転支援装置111D間で伝送されるイーサネットフレームを中継する。
詳細には、スイッチ装置は、複数のレイヤを有する通信プロトコルに従って動作する。より詳細には、スイッチ装置101は、L2(レイヤ2)スイッチとして機能することが可能であり、同じサブネットに属する車載通信デバイス111間で伝送されるイーサネットフレームを中継する。
この例では、スイッチ装置101は、カメラ111Cおよび運転支援装置111D間で伝送されるイーサネットフレームを中継する。
また、スイッチ装置101は、L3(レイヤ3)中継装置としても機能することが可能であり、異なるサブネットに属する車載通信デバイス111間のイーサネットフレームを中継する。
この例では、スイッチ装置101は、TCU111Aとカメラ111Cおよび運転支援装置111Dとの間で伝送されるイーサネットフレーム、CGW111Bとカメラ111Cおよび運転支援装置111Dとの間で伝送されるイーサネットフレーム、ならびにTCU111AとCGW111Bとの間で伝送されるイーサネットフレームを中継する。
TCU111Aは、たとえば、LTE(Long Term Evolution)または3G等の通信規格に従って、図示しない無線基地局装置と無線通信を行うことが可能である。
この例では、TCU111Aは、地図情報を提供するサーバから運転支援装置111Dへ伝送される地図情報を中継する。
より詳細は、TCU111Aは、地図情報を含むIPパケットを格納した無線フレームを無線基地局から受信すると、受信した無線フレームからIPパケットを取得し、取得したIPパケットをイーサネットフレームに格納する。
ここで、サーバからのIPパケットには、たとえば、送信元IPアドレスおよび送信先IPアドレスとして、当該サーバのIPアドレスおよび運転支援装置111DのIPアドレスがそれぞれ含まれる。
TCU111Aは、自己と運転支援装置111Dとが異なるサブネットに属していることから、デフォルトゲートウェイであるスイッチ装置101のMACアドレス、および自己のMACアドレスを、送信先MACアドレスおよび送信元MACアドレスとしてそれぞれイーサネットフレームに書き込む。
以下、スイッチ装置101においてL3中継が必要なイーサネットフレームを上位中継フレームとも称する。また、TCU111Aから送信される上位中継フレームを上位中継フレームAとも称する。
また、イーサネットフレームには、たとえば優先度を設定することが可能である。具体的には、イーサネットフレームにおいて、PCP(Priority Code Point)領域に優先度を示す3ビットの値が格納される。この例では、優先度が最高を示す7が上位中継フレームAに格納されている。
TCU111Aは、サーバからのIPパケットを格納した上位中継フレームAをスイッチ装置101へ送信する。
CGW111Bは、たとえば、エンジン制御デバイス、AT(Automatic Transmission)制御デバイス、HEV(Hybrid Electric Vehicle)制御デバイス、ブレーキ制御デバイス、シャーシ制御デバイス、ステアリング制御デバイス、計器表示制御デバイスおよび盗難検知デバイス等の制御デバイスとCAN(Controller Area Network)経由で通信を行うことが可能である。
CGW111Bは、制御デバイスと他の車載通信デバイス111との間でやり取りされる情報の中継処理を行う。
この例では、CGW111Bは、たとえば、速度情報を計測する制御デバイスから運転支援装置111Dへ伝送される速度情報を中継する。
より詳細は、CGW111Bは、制御デバイスから速度情報を含むメッセージを受信すると、受信したメッセージから速度情報を取得し、取得した速度情報を含むIPパケットを作成してイーサネットフレームに格納する。
このIPパケットには、たとえば、送信元IPアドレスおよび送信先IPアドレスとして、CGW111BのIPアドレスおよび運転支援装置111DのIPアドレスがそれぞれ含まれる。
CGW111Bは、TCU111Aと同様に、自己と運転支援装置111Dとが異なるサブネットに属していることから、デフォルトゲートウェイであるスイッチ装置101のMACアドレス、および自己のMACアドレスを、送信先MACアドレスおよび送信元MACアドレスとしてそれぞれイーサネットフレームに書き込む。
以下、CGW111Bから送信される上位中継フレームを上位中継フレームBとも称する。この例では、優先度が2番目に高いことを示す6が上位中継フレームBに格納されている。
CGW111Bは、速度情報を含むIPパケットを格納した上位中継フレームBをスイッチ装置101へ送信する。
カメラ111Cは、たとえば、自己の車両1の周囲の画像または映像を撮影することが可能である。より詳細には、カメラ111Cは、たとえば、自己の車両1の周囲の画像を定期的に撮影し、撮影した画像を示す画像情報を含むIPパケットを作成してイーサネットフレームに格納する。
このIPパケットには、たとえば、送信元IPアドレスおよび送信先IPアドレスとして、カメラ111CのIPアドレスおよび運転支援装置111DのIPアドレスがそれぞれ含まれる。
カメラ111Cは、TCU111A,CGW111Bと異なり、自己と運転支援装置111Dとが同じサブネットに属していることから、運転支援装置111DのMACアドレスおよび自己のMACアドレスを、送信先MACアドレスおよび送信元MACアドレスとしてそれぞれイーサネットフレームに書き込む。
以下、スイッチ装置101においてL3中継が不要なイーサネットフレームを下位中継フレームとも称する。また、カメラ111Cから送信される下位中継フレームを下位中継フレームCとも称する。
カメラ111Cは、画像情報を含むIPパケットを格納した下位中継フレームCをスイッチ装置101へ送信する。
スイッチ装置101は、TCU111Aから上位中継フレームAを受信すると、受信した上位中継フレームAに対してL3の中継処理を行うことで、上位中継フレームAを運転支援装置111Dへ送信する。
スイッチ装置101は、CGW111Bから上位中継フレームBを受信すると、受信した上位中継フレームBに対してL3の中継処理を行うことで、上位中継フレームBを運転支援装置111Dへ送信する。
スイッチ装置101は、カメラ111Cから下位中継フレームCを受信すると、受信した下位中継フレームCに対してL2の中継処理を行うことで、下位中継フレームCを運転支援装置111Dへ送信する。
運転支援装置111Dは、たとえば、TCU111A、CGW111Bおよびカメラ111Cからスイッチ装置101経由で受信した上位中継フレームA、上位中継フレームBおよび下位中継フレームCから地図情報、速度情報および画像情報をそれぞれ取得する。
運転支援装置111Dは、取得した地図情報、速度情報および画像情報に基づいて、自己の車両1の運転を支援する。
[スイッチ装置101の構成]
図3は、本発明の第1の実施の形態に係る車載通信システムにおけるスイッチ装置の構成を示す図である。
図3を参照して、スイッチ装置101は、スイッチ部31と、通信ポート34A,34B,34C,34Dと,DRAM(Dynamic RAM)35と、処理部41とを備える。
以下、通信ポート34A,34B,34C,34Dの各々を通信ポート34とも称する。通信ポート34には、固有のポート番号が割り当てられる。
なお、スイッチ装置101は、4つの通信ポート34を備える構成に限らず、3つまたは5つ以上の通信ポート34を備える構成であってもよい。
通信ポート34は、イーサネットケーブルを介して車載通信デバイス111に接続されている。この例では、通信ポート34A,34B,34C,34Dは、イーサネットケーブルを介してTCU111A,CGW111B,カメラ111C,運転支援装置111Dにそれぞれ接続されている。
通信ポート34は、たとえば、接続先の車載通信デバイス111からイーサネットフレームを受信して、受信したイーサネットフレームのフィルタリング処理等のフレーム処理を行う。そして、通信ポート34は、処理後のイーサネットフレームをスイッチ部31へ出力する。
また、通信ポート34は、スイッチ部31からイーサネットフレームを受けて、受けたイーサネットフレームを接続先の車載通信デバイス111へ送信する。
スイッチ部31は、L2,L3のうちのL2に従って処理部41を介さずに中継処理を行うことが可能である。
詳細には、スイッチ部31は、L2スイッチとして動作し、イーサネットフレームの中継処理を行う。
より詳細には、スイッチ部31は、通信ポート34からイーサネットフレームを受けると、受けたイーサネットフレームに含まれる送信先MACアドレスを参照する。
スイッチ部31は、たとえば、送信先MACアドレスと出力先との対応関係を示すARL(Address Resolution Logic)テーブルをサブネットごとに保持する。
ARLテーブルの内容は、上述したように固定されている接続関係に基づいて、たとえばユーザにより予め定められている。
詳細には、ARLテーブルにおける出力先は、同一のサブネットに接続する通信ポート34のポート番号、および処理部41のいずれかを示す。より詳細には、同一のサブネット内で伝送される下位中継フレームの出力先は、通信ポート34のポート番号を示す。一方、異なるサブネット間で伝送される上位中継フレームの出力先は、処理部41を示す。
スイッチ部31は、参照した送信先MACアドレスに対応する出力先をARLテーブルから取得し、受信したイーサネットフレームを、取得した出力先へ出力する。
具体的には、スイッチ部31は、下位中継フレームに対しては、参照した送信先MACアドレスに対応するポート番号を出力先としてARLテーブルから取得し、受信したイーサネットフレームを、取得したポート番号に対応する通信ポート34経由で車載通信デバイス111へ送信する。
また、スイッチ部31は、上位中継フレームに対しては、処理部41を出力先としてARLテーブルから取得し、受信したイーサネットフレームを処理部41へ出力する。
また、スイッチ部31は、処理部41からイーサネットフレームを受けると、受けたイーサネットフレームに含まれる送信先MACアドレスを参照する。
スイッチ部31は、参照した送信先MACアドレスに対応するポート番号を出力先としてARLテーブルから取得し、処理部41から受けたイーサネットフレームを、取得したポート番号に対応する通信ポート34経由で車載通信デバイス111へ送信する。
処理部41は、L2よりも上位のL3に従って中継処理を行う。処理部41における中継処理の詳細については、後述する。
[スイッチ装置の比較例の構成]
図4は、スイッチの装置の比較例の詳細な構成を示す図である。図4では、スイッチ装置の比較例において、上位中継フレームA,Bが輻輳している状態が示される。
図4を参照して、スイッチ装置101の比較例であるスイッチ装置901は、スイッチ部31と、DRAM35と、処理部91とを備える。スイッチ部31は、L2スイッチ処理部32と、SRAM(Static RAM)33とを含む。処理部91は、タイマ45と、イーサネットコントローラ92と、ドライバ93と、IPスタックL3中継処理部94とを含む。
SRAM33の記憶容量は、たとえばDRAM35の記憶容量より小さい。具体的には、SRAM33およびDRAM35の記憶容量は、それぞれ128キロバイトおよび128メガバイトである。
スイッチ部31におけるL2スイッチ処理部32は、通信ポート34C経由でカメラ111Cから下位中継フレームCを受信すると、受信した下位中継フレームCを通信ポート34D経由で運転支援装置111Dへ送信する。この下位中継フレームCの伝送速度は、100Mbpsである。
また、L2スイッチ処理部32は、通信ポート34A経由でTCU111Aから上位中継フレームAを受信すると、受信した上位中継フレームAを処理部91へ出力する。
処理部91におけるイーサネットコントローラ92は、L2スイッチ処理部32から上位中継フレームAを受けると、受けた上位中継フレームAをドライバ93へ出力する。
ドライバ93は、イーサネットコントローラ92から上位中継フレームAを受けると、受けた上位中継フレームAをIPスタックL3中継処理部94へ出力する。
IPスタックL3中継処理部94は、ドライバ93から上位中継フレームAを受けると、受けた上位中継フレームAの送信先MACアドレスおよび送信元MACアドレスを書き換えるL3中継処理を行う。
より詳細には、IPスタックL3中継処理部94は、たとえば、送信先ネットワークと送出インタフェースとの対応関係を示すルーティングテーブルを保持している。また、IPスタックL3中継処理部94は、たとえば、IPアドレスとMACアドレスとの対応関係を示すARP(Address Resolution Protocol)テーブルを送出インタフェースごとに保持している。
IPスタックL3中継処理部94は、ドライバ93から上位中継フレームAを受けると、受けた上位中継フレームAに含まれるIPパケットから送信先IPアドレス、ここでは運転支援装置111DのIPアドレスを取得し、たとえば、取得した送信先IPアドレスに対してサブネットマスク計算を行うことにより送信先ネットワークを特定する。
IPスタックL3中継処理部94は、ルーティングテーブルを参照し、特定した送信先ネットワークに対応する送出インタフェースを特定する。
そして、IPスタックL3中継処理部94は、特定した送出インタフェースに対応するARPテーブルを参照し、送信先IPアドレスに対応するMACアドレス、ここでは運転支援装置111DのMACアドレスを当該ARPテーブルから取得する。
IPスタックL3中継処理部94は、上位中継フレームAの送信先MACアドレスおよび送信元MACアドレスを、それぞれ運転支援装置111DのMACアドレス、および自己のスイッチ装置101のMACアドレスに書き換え、上位中継フレームAをドライバ93へ出力する。
ドライバ93は、IPスタックL3中継処理部94から上位中継フレームAを受けると、受けた上位中継フレームAをイーサネットコントローラ92へ出力する。
イーサネットコントローラ92は、ドライバ93から上位中継フレームAを受けると、受けた上位中継フレームAをスイッチ部31へ出力する。
スイッチ部31におけるL2スイッチ処理部32は、イーサネットコントローラ92から上位中継フレームAを受けると、受けた上位中継フレームAを通信ポート34D経由で運転支援装置111Dへ送信する。
CGW111Bからスイッチ装置101を経由して運転支援装置111Dへ伝送される上位中継フレームBについても、スイッチ部31および処理部91において上位中継フレームAと同様に処理される。
図5は、スイッチの装置の比較例が、上位中継フレームおよび下位中継フレームを受信する時刻を示すタイムチャートの一例を示す図である。なお、図5において、横軸は時間を示し、縦軸は受信速度を示す。
図4および図5を参照して、たとえば、L2スイッチ処理部32とイーサネットコントローラ92との間、イーサネットコントローラ92とドライバ93との間、およびドライバ93とIPスタックL3中継処理部94との間における上位中継フレームA,Bの伝送速度が100Mbpsである場合、以下の問題が発生する。
すなわち、たとえば、L2スイッチ処理部32が通信ポート34A,34B,34Cからそれぞれ上位中継フレームA,上位中継フレームB,下位中継フレームCを並行して受信する輻輳状態になると、L2スイッチ処理部32は、受信した上位中継フレームおよび下位中継フレームのうち、処理を後回しにしたイーサネットフレームをSRAM33へ保存する。
しかしながら、SRAM33の記憶容量は大きくないため、SRAM33の空き容量が逼迫すると、L2スイッチ処理部32は、保存できないイーサネットフレームを破棄する。すなわち、輻輳状態が発生すると、フレームロスが発生する可能性が高まる。
フレームロスの発生を抑制するために、SRAM33の空きをなるべく大きく確保しておきたいという要求がある。
これに対して、スイッチ装置901における処理部91において、IPスタックL3中継処理部94からドライバ93への上位中継フレームの出力レートを、たとえば1Mbpsに制限する方法が考えられる。
図6は、スイッチの装置の比較例が、上位中継フレームおよび下位中継フレームを送信する時刻を示すタイムチャートの一例を示す図である。なお、図6において、横軸は時間を示し、縦軸は送信速度を示す。
図4および図6を参照して、IPスタックL3中継処理部94は、たとえば、上位中継フレームAおよび上位中継フレームBの順にドライバ93からこれらの上位中継フレームを100Mbpsの伝送速度で受けると、受けた順にL3中継処理を行う。
ここで、ドライバ93への上位中継フレームの出力レートが1Mbpsに制限されているため、IPスタックL3中継処理部94は、上位中継フレームAの伝送に時間を要する。
IPスタックL3中継処理部94は、たとえば、上位中継フレームAのドライバ93への伝送が完了するまで上位中継フレームBをDRAM35に一時的に保存しておき、上位中継フレームAの出力が完了次第、DRAM35から上位中継フレームBを取得してL3中継処理を行う。そして、IPスタックL3中継処理部94は、L3中継処理の完了した上位中継フレームBをドライバ93へ出力する。
このような構成により、輻輳状態においてSRAM33より容量の大きいDRAM35に上位中継フレームを蓄積することができるので、SRAM33の空き容量が逼迫してフレームロスが発生する可能性を低くすることができる。
また、IPスタックL3中継処理部94が上位中継フレームを出力するレートが1Mbpsに制限されるため、図6に示すように、スイッチ装置101からの上位中継フレームA,Bの送信速度も1Mbpsに制限される。
[課題]
図7は、スイッチの装置の比較例の詳細な構成を示す図である。図7では、スイッチ装置の比較例において、上位中継フレームA,Bが輻輳していない状態が示される。図7の見方は、図4と同様である。
図8は、スイッチの装置の比較例が、上位中継フレームおよび下位中継フレームを受信する時刻を示すタイムチャートの一例を示す図である。なお、図8において、横軸は時間を示し、縦軸は受信速度を示す。
図7および図8を参照して、スイッチ装置101は、図5に示す場合と異なり上位中継フレームA,Bを並行して受信しないため、上位中継フレームAおよび下位中継フレームCを並行して受信しても、フレームロスを発生させずに中継することができる可能性が高い。
図9は、スイッチの装置の比較例が、上位中継フレームおよび下位中継フレームを送信する時刻を示すタイムチャートの一例を示す図である。なお、図9において、横軸は時間を示し、縦軸は送信速度を示す。
図7および図9を参照して、上述したように、IPスタックL3中継処理部94が上位中継フレームAを出力するレートが1Mbpsに制限されるため、フレームロスを発生させずに中継することができる可能性が高まっている一方で、図9に示すように、スイッチ装置101からの上位中継フレームAの送信速度が1Mbpsに制限されてしまう。
フレームロスを発生させずに中継を成功させる可能性を高めながら、上位中継フレームの送信速度を向上することが可能な技術が求められる。
そこで、本発明の実施の形態に係るスイッチ装置では、以下のような構成および動作により、このような課題を解決する。
[スイッチ装置101の構成]
図10は、本発明の第1の実施の形態に係るスイッチの装置の詳細な構成を示す図である。図10では、スイッチ装置101において、上位中継フレームA,Bが輻輳している状態が示される。
図10を参照して、スイッチ装置101におけるスイッチ部31は、L2スイッチ処理部32と、SRAM33とを含む。処理部41は、イーサネットコントローラ42と、ドライバ43と、IPスタックL3中継処理部44と、タイマ45とを含む。
この例では、スイッチ装置101では、図5に示す場合と同様に、L2スイッチ処理部32が通信ポート34A,34B,34Cからそれぞれ上位中継フレームA,上位中継フレームB,下位中継フレームCを並行して受信する輻輳状態である。
スイッチ装置101におけるL2スイッチ処理部32およびSRAM33の動作は、図4に示すスイッチ装置901におけるL2スイッチ処理部32およびSRAM33とそれぞれ同様である。
L2スイッチ処理部32とイーサネットコントローラ42との間、およびイーサネットコントローラ42とドライバ43との間では、100Mbpsの伝送速度で上位中継フレームの伝送が行われる。
ドライバ43は、100Mbpsの伝送速度で上位中継フレームをIPスタックL3中継処理部44へ出力する。
処理部41におけるイーサネットコントローラ42、ドライバ43およびIPスタックL3中継処理部44は、タイマ45を使用可能である。
[ポーリング方式]
処理部41は、たとえば、ポーリング方式に従って、中継処理を行うべきイーサネットフレームすなわち上位中継フレームが複数存在するか否かの確認を周期的に行う。
より詳細には、処理部41におけるイーサネットコントローラ42は、スイッチ部31から上位中継フレームを受けると、受けた上位中継フレームを一時的に保存する。
ドライバ43は、タイマ45に待機時間Twを設定する。タイマ45は、ドライバ43の設定値に従って動作し、満了するとドライバ43に通知する。
ドライバ43は、タイマ45から満了の通知を受けると、イーサネットコントローラ42に蓄積された上位中継フレームの個数を確認する。
ドライバ43は、イーサネットコントローラ42において2つ以上の上位中継フレームが蓄積されている場合、蓄積された上位中継フレームをイーサネットコントローラ42から取得してIPスタックL3中継処理部44へ出力する。
一方、ドライバ43は、たとえば、イーサネットコントローラ42において2つ以上の上位中継フレームが蓄積されていない場合、タイマ45に新たな待機時間Twを設定し、タイマ45から通知を受けるまで待機する。
なお、ドライバ43は、イーサネットコントローラ42において2つ以上の上位中継フレームが蓄積されている場合に、上位中継フレームをイーサネットコントローラ42から取得する構成であるとしたが、これに限定するものではない。
ドライバ43は、イーサネットコントローラ42においてN1個以上の上位中継フレームが蓄積されている場合に、上位中継フレームをイーサネットコントローラ42から取得する構成であってもよい。ここで、N1は、3以上の整数である。
また、処理部41は、ポーリング方式に従って、上位中継フレームをIPスタックL3中継処理部44へ出力する構成に限定されない。
[イベントドリブン方式]
処理部41は、たとえば、中継処理を行うべきイーサネットフレームすなわち上位中継フレームが所定数以上蓄積された場合に、後述する調整処理を行う。
より詳細には、処理部41におけるイーサネットコントローラ42は、スイッチ部31から上位中継フレームを受けると、受けた上位中継フレームをドライバ43へ出力する。
ドライバ43は、イーサネットコントローラ42から上位中継フレームを受けると、受けた上位中継フレームを一時的に保存する。
ドライバ43は、保存した上位中継フレームの個数が2以上になると、保存した上位中継フレームをIPスタックL3中継処理部44へ出力する。
なお、ドライバ43は、保存した上位中継フレームの個数が2以上になると、保存した上位中継フレームをIPスタックL3中継処理部44へ出力する構成であるとしたが、これに限定するものではない。
ドライバ43は、保存した上位中継フレームの個数がN2以上になると、保存した上位中継フレームをIPスタックL3中継処理部44へ出力する構成であってもよい。ここで、N2は、3以上の整数である。
処理部41は、スイッチ部31を介して、車載ネットワークにおけるデータを中継処理する。
詳細には、処理部41は、自己において中継処理を行うべきイーサネットフレームすなわち上位中継フレームが複数存在する場合において、各上位中継フレームの送信元IPアドレスが同一であるか否かに応じて各上位中継フレームのスイッチ部31への出力レートを変更する調整処理を行う。
より詳細には、処理部41は、たとえば、各上位中継フレームの送信元IPアドレスが異なる場合における各上位中継フレームの出力レートを同じ値に設定する。具体的には、処理部41は、たとえば、調整処理において、各上位中継フレームの送信元アドレスが同一である場合と比べて異なる場合の出力レートを小さくする。
より具体的には、処理部41におけるIPスタックL3中継処理部44は、ドライバ43から複数の上位中継フレームを受けるごとに調整処理を行う。
より具体的には、IPスタックL3中継処理部44は、たとえば、図5に示すような輻輳状態においてドライバ43から上位中継フレームA,Bを受けると、受けた上位中継フレームA,Bに含まれる送信元IPアドレスがそれぞれサーバのIPアドレスおよびCGW111BのIPアドレスであること確認する。
IPスタックL3中継処理部44は、上位中継フレームA,Bに含まれる送信元IPアドレスが異なることを確認すると、上位中継フレームA,Bに対してL3中継処理を行い、上位中継フレームA,Bを1Mbpsの伝送速度でドライバ43へ出力する。
ドライバ43は、たとえば、IPスタックL3中継処理部44から上位中継フレームAを受けると、受けた上位中継フレームAをイーサネットコントローラ42へ出力する。
イーサネットコントローラ42は、ドライバ43から上位中継フレームAを受けると、受けた上位中継フレームAをスイッチ部31へ出力する。
スイッチ部31におけるL2スイッチ処理部32は、イーサネットコントローラ42から上位中継フレームAを受けると、受けた上位中継フレームAを通信ポート34D経由で運転支援装置111Dへ送信する。
上位中継フレームBも、上位中継フレームAと同様に、IPスタックL3中継処理部44から運転支援装置111Dへ伝送される。
この場合、スイッチ装置101から送信される上位中継フレームA,Bの送信速度は、図6に示すように、1Mbpsとなる。
なお、上位中継フレームA,BのIPスタックL3中継処理部44からドライバ43への伝送速度は、1Mbpsに限らず、他の速度であってもよい。
また、IPスタックL3中継処理部44は、ドライバ43から複数の上位中継フレームを受けるごとに調整処理を行う構成であるとしたが、これに限定するものではない。IPスタックL3中継処理部44は、ドライバ43から複数の上位中継フレームを2以上の所定回数受けるごとに調整処理を行う構成であってもよい。また、IPスタックL3中継処理部44は、ドライバ43から複数の上位中継フレームを受けて調整処理を行った後、所定時間調整処理を行わず、その後ドライバ43から複数の上位中継フレームを受けて、再び調整処理行う構成であってもよい。
[Strict Priority Queuing]
図11は、本発明の第1の実施の形態に係るスイッチの装置におけるIPスタックL3中継処理部のキュー制御を説明するための図である。
図11を参照して、処理部41は、たとえば、各上位中継フレームの送信元IPアドレスが異なる場合において、各送信元IPアドレスの優先度に従って各上位中継フレームをスイッチ部31へ出力する。
より詳細には、IPスタックL3中継処理部44は、たとえば、高優先キュー44Aと、低優先キュー44Bと、スケジューラ44Cとを含む。なお、IPスタックL3中継処理部44は、2つのキューを含む構成に限らず、3つ以上のキューを含む構成であってもよい。
IPスタックL3中継処理部44は、L3中継処理を行った複数の上位中継フレームに含まれる送信元IPアドレスに応じて、各上位中継フレームを高優先キュー44Aまたは低優先キュー44Bに振り分ける。
この例では、上位中継フレームAに含まれる優先度が最高の7であるので、IPスタックL3中継処理部44は、上位中継フレームAを高優先キュー44Aに振り分ける。また、上位中継フレームBに含まれる優先度が2番目に高い6であるので、IPスタックL3中継処理部44は、上位中継フレームBを低優先キュー44Bに振り分ける。
図12は、本発明の第1の実施の形態に係るスイッチの装置が、上位中継フレームおよび下位中継フレームを送信する時刻を示すタイムチャートの一例を示す図である。なお、図12において、横軸は時間を示し、縦軸は送信速度を示す。
図11および図12を参照して、スケジューラ44Cは、高優先キュー44Aに上位中継フレームAが含まれる場合、高優先キュー44Aから上位中継フレームAを取得して1Mbpsの伝送速度でドライバ43へ出力する。
スケジューラ44Cは、高優先キュー44Aにおける上位中継フレームAが無くなるまで上位中継フレームAを優先的にドライバ43へ出力し、高優先キュー44Aにおける上位中継フレームAが無くなると、低優先キュー44Bから上位中継フレームBを取得して1Mbpsの伝送速度でドライバ43へ出力する。
この例では、図12に示すように、3つの上位中継フレームAが1Mbpsの送信速度で連続してスイッチ装置101から送信された後、5つの上位中継フレームBが1Mbpsの送信速度で連続してスイッチ装置101から送信される。
なお、スケジューラ44Cは、上位中継フレームA,Bともに1Mbpsでドライバ43へ出力する構成に限らず、異なる伝送速度でドライバ43へ出力する構成であってもよい。
図13は、本発明の第1の実施の形態に係るスイッチの装置が、上位中継フレームおよび下位中継フレームを送信する時刻を示すタイムチャートの一例を示す図である。なお、図13において、横軸は時間を示し、縦軸は送信速度を示す。
図11および図13を参照して、処理部41は、たとえば、各上位中継フレームの送信元IPアドレスが異なる場合における各上位中継フレームの出力レートを、各送信元IPアドレスの全部において異なる値に設定する。
この例では、IPスタックL3中継処理部44におけるスケジューラ44Cは、たとえば、高優先キュー44Aに含まれる上位中継フレームAを50Mbpsの伝送速度でドライバ43へ出力するとともに、低優先キュー44Bに含まれる上位中継フレームBを1Mbpsの伝送速度でドライバ43へ出力する。
この場合、図13に示すように3つの上位中継フレームAが50Mbpsの送信速度で連続してスイッチ装置101から送信された後、5つの上位中継フレームBが1Mbpsの送信速度で連続してスイッチ装置101から送信される。
[Weighted Round Robin]
図14は、本発明の第1の実施の形態に係るスイッチの装置におけるIPスタックL3中継処理部のキュー制御を説明するための図である。
図14を参照して、IPスタックL3中継処理部44は、たとえば、第1のキュー44Dと、第2のキュー44Eと、スケジューラ44Fとを含む。
IPスタックL3中継処理部44は、L3中継処理を行った複数の上位中継フレームに含まれる送信元IPアドレスに応じて、各上位中継フレームを第1のキュー44Dまたは第2のキュー44Eに振り分ける。
この例では、IPスタックL3中継処理部44は、上位中継フレームA,Bを第1のキュー44D,第2のキュー44Eにそれぞれ振り分ける。
図15は、本発明の第1の実施の形態に係るスイッチの装置が、上位中継フレームおよび下位中継フレームを送信する時刻を示すタイムチャートの一例を示す図である。なお、図15において、横軸は時間を示し、縦軸は送信速度を示す。
図14および図15を参照して、スケジューラ44Fは、第1のキュー44Dおよび第2のキュー44Eの重みづけの割合に従って、上位中継フレームを第1のキュー44Dおよび第2のキュー44Eから取得する。
この例では、第1のキュー44Dおよび第2のキュー44Eに1:2の重みづけが設定されている状況を想定する。
スケジューラ44Fは、たとえば、第1のキュー44Dから上位中継フレームAを1つ取得して1Mbpsの伝送速度でドライバ43へ出力した後、第2のキュー44Eから上位中継フレームBを2つ連続で取得して1Mbpsの伝送速度でドライバ43へ出力することを繰り返す。
この例では、図15に示すように、1つの上位中継フレームAが1Mbpsの送信速度でスイッチ装置101から送信された後、2つの上位中継フレームBが1Mbpsの送信速度で連続してスイッチ装置101から送信されることが繰り返される。この場合、上位中継フレームBの伝送速度を、実質的に上位中継フレームAの伝送速度の2倍にすることができる。
このように、第1のキュー44Dおよび第2のキュー44Eの重みづけの割合を設定する構成により、上位中継フレームA,Bの実質的な伝送速度を、設定した重みづけの割合に応じて調整することができる。
なお、スケジューラ44Cは、上位中継フレームA,Bともに1Mbpsでドライバ43へ出力する構成に限らず、異なる伝送速度でドライバ43へ出力する構成であってもよい。
図16は、本発明の第1の実施の形態に係るスイッチの装置が、上位中継フレームおよび下位中継フレームを送信する時刻を示すタイムチャートの一例を示す図である。なお、図16において、横軸は時間を示し、縦軸は送信速度を示す。
図14および図16を参照して、この例では、IPスタックL3中継処理部44におけるスケジューラ44Fは、たとえば、第1のキュー44Dから上位中継フレームAを1つ取得して1Mbpsの伝送速度でドライバ43へ出力した後、第2のキュー44Eから上位中継フレームBを2つ連続で取得して50Mbpsの伝送速度でドライバ43へ出力することを繰り返す。
この場合、図16に示すように、1つの上位中継フレームAが1Mbpsの送信速度でスイッチ装置101から送信された後、2つの上位中継フレームBが50Mbpsの送信速度で連続してスイッチ装置101から送信されることが繰り返される。この場合、上位中継フレームBの伝送速度を、実質的に上位中継フレームAの伝送速度の100倍にすることができる。
図17は、本発明の第1の実施の形態に係るスイッチの装置の詳細な構成を示す図である。図17では、スイッチ装置101において、上位中継フレームA,Bが輻輳していない状態が示される。図17の見方は、図10と同様である。
図18は、本発明の第1の実施の形態に係るスイッチの装置が、上位中継フレームおよび下位中継フレームを送信する時刻を示すタイムチャートの一例を示す図である。なお、図18において、横軸は時間を示し、縦軸は送信速度を示す。
図17および図18を参照して、この例では、スイッチ装置101では、図8に示す場合と同様に、L2スイッチ処理部32が上位中継フレームAを受信するが上位中継フレームBを受信しない、上位中継フレームの輻輳がない状態である。
IPスタックL3中継処理部44は、たとえば、ドライバ43から2つの上位中継フレームAを受けると、受けた2つの送信元IPアドレスがサーバのIPアドレスであること確認する。
IPスタックL3中継処理部44は、ドライバ43から受けた2つの上位中継フレームAに含まれる送信元IPアドレスが同じであることを確認すると、当該2つの上位中継フレームAに対してL3中継処理を行い、当該2つの上位中継フレームAを100Mbpsの伝送速度でドライバ43へ出力する。
この場合、スイッチ装置101から送信される上位中継フレームAの送信速度は、図18に示すように、100Mbpsとなる。
このように、上位中継フレームの輻輳がない状態におけるスイッチ部31への出力レートを、輻輳状態におけるスイッチ部31への出力レートより大きくする構成により、上位中継フレームの輻輳がない状態のようにフレームロスを発生させずに中継することができる可能性が高まっている状況において、スイッチ装置101からの上位中継フレームの送信速度を高くすることができる。これにより、フレームロスを発生させずに中継を成功させる可能性を高めながら、上位中継フレームの送信速度を向上することができる。
[動作の流れ]
スイッチ装置101は、コンピュータを備え、当該コンピュータにおけるCPU等の演算処理部は、以下に示すフローチャートの各ステップの一部または全部を含むプログラムを図示しないメモリから読み出して実行する。この装置のプログラムは、外部からインストールすることができる。この装置のプログラムは、記録媒体に格納された状態で流通する。
図19は、本発明の第1の実施の形態に係るスイッチ装置が上位中継フレームを中継する際の動作手順を定めたフローチャートである。
図19を参照して、まず、スイッチ装置101における処理部41は、ポーリング方式またはイベントドリブン方式を用いて、複数の上位中継フレームが存在することを確認するまで待機する(ステップS102でNO)。
そして、処理部41は、複数の上位中継フレームが存在することを確認すると(ステップS102でYES)、受けた複数の上位中継フレームに対してL3中継処理を行う(ステップS104)。
次に、処理部41は、L3中継処理の完了した複数の上位中継フレームに含まれる送信元IPアドレスが異なる場合(ステップS106でYES)、当該複数の上位中継フレームを1Mbpsの伝送速度でスイッチ部31へ出力する(ステップS108)。
一方、処理部41は、L3中継処理の完了した複数の上位中継フレームに含まれる送信元IPアドレスがすべて同じである場合(ステップS106でNO)、当該複数の上位中継フレームを100Mbpsの伝送速度でスイッチ部31へ出力する(ステップS110)。
次に、処理部41は、上記複数の上位中継フレームを1Mbpsの伝送速度でスイッチ部31へ出力するか(ステップS108)、または上記複数の上位中継フレームを100Mbpsの伝送速度でスイッチ部31へ出力すると(ステップS110)、ポーリング方式またはイベントドリブン方式を用いて、複数の上位中継フレームが存在することを確認するまで待機する(ステップS102でNO)。
なお、処理部41は、上記ステップS108において、L3中継処理の完了した複数の上位中継フレームのスイッチ部31への出力順を、Strict Priority QueuingまたはWeighted Round Robinに従って、送信元IPアドレスに応じて制御してもよい。
また、本発明の第1の実施の形態に係るスイッチ装置では、処理部41は、各上位中継フレームの送信元IPアドレスが同一であるか否かに応じて調整処理を行う構成であるとしたが、これに限定するものではない。処理部41は、各上位中継フレームの送信元MACアドレスが同一であるか否かに応じて調整処理を行う構成であってもよい。
また、本発明の第1の実施の形態に係るスイッチ装置では、処理部41は、送信元アドレスの異なる上位中継フレームA,BをL3中継処理する構成であるとしたが、これに限定するものではない。処理部41は、送信元アドレスの異なる3種類以上の上位中継フレームをL3中継処理する構成であってもよい。この場合、処理部41は、たとえば、自己においてL3中継処理を行うべき上位中継フレームが3つ以上存在する場合において、各上位中継フレームに含まれる送信元アドレスの一部が異なる場合に出力レートを1Mbpsに設定する構成であってもよいし、各上位中継フレームに含まれる送信元アドレスの全部が異なる場合に出力レートを1Mbpsに設定する構成であってもよい。この際、処理部41は、各上位中継フレームに含まれる送信元アドレスの全部が同じ場合に出力レートをたとえば100Mbpsに設定する。
なお、本発明の第1の実施の形態に係るスイッチ装置では、処理部41におけるIPスタックL3中継処理部44は、スケジューラ44Cおよびスケジューラ44Fを用いて、上位中継フレームをドライバ43へ出力する構成であるとしたが、これに限定するものではない。IPスタックL3中継処理部44は、スケジューラ44Cおよびスケジューラ44Fを用いずに上位中継フレームをドライバ43へ出力する構成であってもよい。この場合、IPスタックL3中継処理部44は、たとえば、L3中継処理後の上位中継フレームを、ドライバ43から受けた順にドライバ43へ出力する。
また、本発明の第1の実施の形態に係るスイッチ装置では、処理部41は、上位中継フレームA,Bの送信元IPアドレスが異なる場合における上位中継フレームA,Bの出力レートを、各送信元IPアドレスの全部において異なる値に設定する構成であるとしたが、これに限定するものではない。処理部41は、たとえば、上位中継フレームの送信元IPアドレスが3種類ある場合において、3種類の上位中継フレームの出力レートを、各送信元IPアドレスの一部において異なる値に設定する構成であってもよい。具体的には、処理部41は、3種類の上位中継フレームの出力レートを、たとえば、それぞれ1Mbps、1Mbpsおよび20Mbpsに設定する。
また、本発明の第1の実施の形態に係るスイッチ装置では、処理部41におけるイーサネットコントローラ42およびドライバ43は、ポーリング方式またはイベントドリブン方式を用いて、複数の上位中継フレームが存在するか否かを確認する構成であるとしたが、これに限定するものではない。処理部41は、図4に示すイーサネットコントローラ92およびドライバ93のように、下位側のL2スイッチ処理部32から上位中継フレームを受けるごとに上位側のIPスタックL3中継処理部94へ出力する構成であってもよい。この場合、IPスタックL3中継処理部94が、中継すべき複数の上位中継フレームが存在するか否かを判断する。
ところで、特許文献1に記載の車載ネットワークでは、車載制御装置からの情報を中継する通信ゲートウェイが設けられる。
たとえば、通信ゲートウェイの構成として、レイヤ2の中継処理を行うL2スイッチと、レイヤ3の中継処理を行うMCUとを備える構成が考えられる。
このような構成において、たとえば通信ゲートウェイがデータを受信した場合、L2スイッチは、L2レベルで中継処理可能なデータを中継し、L3レベルでの処理が必要なデータをMCUへ出力する。MCUは、L2スイッチからデータを受けて、受けたデータの中継処理を行ってL2スイッチ経由で中継先の装置へ送信する。このような中継処理において、データは、たとえばシリアル処理される。
たとえば、通信ゲートウェイが複数の通信経路からデータを並行して受信する輻輳状態では、受信したデータの一部を待機させることが必要となる。このため、受信したデータが、L2スイッチ用のRAM等に一時的に保存される。
しかしながら、RAMの空き容量が逼迫する場合、データのロスが発生することがある。これに対して、MCUからL2スイッチへのデータの出力レートを下げる構成が考えられるが、この場合、MCUからL2スイッチへのデータの出力レートが低いため、RAMの空き容量に余裕がある非輻輳状態でも中継処理に時間がかかってしまう。
これに対して、本発明の第1の実施の形態に係るスイッチ装置は、車載ネットワークにおけるデータを中継処理する。処理部41は、スイッチ部31を介して中継処理を行う。そして、処理部41は、自己において中継処理を行うべきイーサネットフレームが複数存在する場合において、各イーサネットフレームの送信元IPアドレスが異なる場合における各イーサネットフレームのスイッチ部31への出力レートを、各イーサネットフレームの送信元IPアドレスが同一である場合と比べて小さくする調整処理を行う。
このような構成により、処理部41は、各イーサネットフレームの送信元IPアドレスが同一であるか否かに基づいて、自己のスイッチ装置101が輻輳状態であるか否かを判断することができる。そして、各フレームの送信元IPアドレスが異なる場合にSRAM33の空き容量が逼迫する可能性が高い輻輳状態であると判断し、出力レートを下げることで、データのロスを防ぐことができる。また、各フレームの送信元IPアドレスが同じである場合にデータのロスが発生する可能性が低い非輻輳状態であると判断し、出力レートを上げることで、処理部41を介した中継処理をより早く完了させることができる。したがって、車載ネットワークにおいて、データのロスを防ぎながら当該データの中継処理を効率よく行うことができる。
また、本発明の第1の実施の形態に係るスイッチ装置では、処理部41は、各イーサネットフレームの送信元IPアドレスが異なる場合における各イーサネットフレームの出力レートを同じ値に設定する。
このような構成により、輻輳状態において、各送信元IPアドレスを有する装置へ同じ速度でデータを中継することができる。また、イーサネットフレームごとに出力レートを変更する必要が無いので調整処理を簡素化することができる。
また、本発明の第1の実施の形態に係るスイッチ装置では、処理部41は、各イーサネットフレームの送信元IPアドレスが異なる場合において、各送信元IPアドレスの優先度に従って各イーサネットフレームをスイッチ部31へ出力する。
このような構成により、たとえば、出力レートを下げている輻輳状態において、優先して中継すべきイーサネットフレームをより早くスイッチ部31へ出力することができるので、車載ネットワークにおける重要なデータの伝送遅延をより小さくすることができる。
また、本発明の第1の実施の形態に係るスイッチ装置では、処理部41は、各イーサネットフレームの送信元IPアドレスが異なる場合における各イーサネットフレームの出力レートを、各送信元IPアドレスの全部または一部において異なる値に設定する。
このような構成により、輻輳状態において、送信元IPアドレスに応じた出力レートでイーサネットフレームをスイッチ部31へ出力することができるので、車載ネットワークにおいて、柔軟な速度設定に従ってイーサネットフレームを伝送することができる。
また、本発明の第1の実施の形態に係るスイッチ装置では、処理部41は、中継処理を行うべきイーサネットフレームが複数存在するか否かの確認を周期的に行う。
このような構成により、定期的に確認する簡易なポーリング方式で、中継処理を行うべき複数のイーサネットフレームの存在を確認することができる。
また、本発明の第1の実施の形態に係るスイッチ装置では、処理部41は、中継処理を行うべきイーサネットフレームが所定数以上蓄積された場合に調整処理を行う。
このような構成により、中継処理を行うべきイーサネットフレームが所定数以上蓄積されたことをトリガとするイベントドリブン型で調整処理を行うことができる。
次に、本発明の他の実施の形態について図面を用いて説明する。なお、図中同一または相当部分には同一符号を付してその説明は繰り返さない。
<第2の実施の形態>
本実施の形態は、第1の実施の形態に係るスイッチ装置と比べて、処理部が車載ネットワークにおける上位中継フレームの伝送を制御するスイッチ装置に関する。以下で説明する内容以外は第1の実施の形態に係るスイッチ装置と同様である。
[スイッチ装置102の構成]
図20は、本発明の第2の実施の形態に係る車載通信システムにおけるスイッチ装置の構成を示す図である。
図20を参照して、スイッチ装置102は、スイッチ部31と、通信ポート34A,34B,34C,34Dと、DRAM35と、処理部51とを備える。
スイッチ装置102におけるスイッチ部31、通信ポート34A,34B,34C,34DおよびDRAM35の動作は、図3に示すスイッチ装置101におけるスイッチ部31、通信ポート34A,34B,34C,34DおよびDRAM35とそれぞれ同様である。
図21は、本発明の第2の実施の形態に係るスイッチの装置の詳細な構成を示す図である。図21では、スイッチ装置102において、上位中継フレームA,Bが輻輳している状態が示される。
図21を参照して、スイッチ装置102におけるスイッチ部31は、L2スイッチ処理部32と、SRAM33とを含む。処理部51は、イーサネットコントローラ42と、43と、タイマ45と、IPスタックL3中継処理部54とを含む。
スイッチ装置102におけるL2スイッチ処理部32、SRAM33、イーサネットコントローラ42、ドライバ43およびタイマ45の動作は、図10に示すスイッチ装置101におけるL2スイッチ処理部32、SRAM33、イーサネットコントローラ42、ドライバ43およびタイマ45とそれぞれ同様である。
L2スイッチ処理部32とイーサネットコントローラ42との間、イーサネットコントローラ42とドライバ43との間、およびドライバ43とIPスタックL3中継処理部54との間では、100Mbpsの伝送速度で上位中継フレームの伝送が行われる。
処理部51は、スイッチ部31を介して、車載ネットワークにおけるデータを中継処理する。
詳細には、処理部51は、自己において中継処理を行うべきイーサネットフレームすなわち上位中継フレームが複数存在する場合において、各上位中継フレームの送信元IPアドレスが異なるとき、各送信元IPアドレスを有する装置のうちの少なくともいずれか1つへ上位中継フレームの送信タイミングに関する指示を送信する調整処理を行う。
図22は、本発明の第2の実施の形態に係る車載通信システムにおけるスイッチ装置が、上位中継フレームおよび下位中継フレームを受信する時刻を示すタイムチャートの一例を示す図である。なお、図22において、横軸は時間を示し、縦軸は受信速度を示す。
図22を参照して、この例では、スイッチ装置102では、L2スイッチ処理部32が通信ポート34A,34B,34Cからそれぞれ上位中継フレームA,上位中継フレームB,下位中継フレームCを100Mbpsの受信速度で並行して受信する輻輳状態である。
図21および図22を参照して、処理部51におけるIPスタックL3中継処理部54は、たとえば、図22に示すような輻輳状態においてドライバ43から上位中継フレームA,Bを受けると、受けた上位中継フレームA,Bに含まれる送信元IPアドレスがそれぞれサーバのIPアドレスおよびCGW111BのIPアドレスであること確認する。
IPスタックL3中継処理部54は、上位中継フレームA,Bに含まれる送信元IPアドレスが異なることを確認すると、上位中継フレームの輻輳が発生していることを認識する。
また、IPスタックL3中継処理部54は、上位中継フレームA,Bに含まれる優先度がそれぞれ7および6であることを確認し、上位中継フレームAを上位中継フレームBより優先的に中継すべきと認識する。
図23は、本発明の第2の実施の形態に係る車載ネットワークにおいて伝送されるポーズフレームの一例を示す図である。
ポーズフレームは、先頭から順に、プリアンブル、送信元MACアドレス(MAC−SA)、送信先MACアドレス(MCA−DA)、タイプ、操作コード、送信停止期間、パディングおよびFCS(Frame Check Sequence)を格納するための各フィールドを有する。
各フィールドのサイズは、先頭から順に、8バイト、6バイト、6バイト、2バイト、2バイト、2バイト、44バイトおよび4バイトである。
ポーズフレームでは、タイプおよび操作コードとして、0x8808および0x0001の値がそれぞれ格納される。ここで、「0x」で始まる数字は、「0x」以降の数字が16進数で表されていることを意味する。
また、送信停止期間に指定する値に応じてポーズ期間の長さが設定される。この例では、16進数で表す0x03E8は、10進数における1000に相当するので、1000×512/(100×10^6)で算出される5.12ミリ秒が、ポーズ期間の長さとして設定される。ここで、「a^b」は、aのb乗を意味する。
図24は、本発明の第2の実施の形態に係るスイッチの装置が、上位中継フレームおよび下位中継フレームを送信する時刻を示すタイムチャートの一例を示す図である。なお、図24において、横軸は時間を示し、縦軸は送信速度を示す。
再び図21および図24を参照して、IPスタックL3中継処理部54は、MAC−SA、MAC−DAおよび送信停止期間として、自己のスイッチ装置102のMACアドレス、CGW111BのMACアドレスおよび0x03E8をそれぞれ含むポーズフレームPF1を作成する。
IPスタックL3中継処理部54は、作成したポーズフレームPF1を時刻t1においてドライバ43およびイーサネットコントローラ42経由でスイッチ部31へ出力する。
スイッチ部31におけるL2スイッチ処理部32は、処理部51からポーズフレームPF1を受けると、受けたポーズフレームPF1を通信ポート34B経由でCGW111Bへ送信する。
また、IPスタックL3中継処理部54は、ポーズフレームPF1をドライバ43へ出力した後、上位中継フレームA,Bに対してL3中継処理を行い、上位中継フレームA,Bをこの順でドライバ43へ出力する。
スイッチ装置102からは、ポーズフレームPF1、上位中継フレームAおよび上位中継フレームBが、この順で、CGW111B、運転支援装置111Dおよび運転支援装置111Dへそれぞれ送信される。
図25は、本発明の第2の実施の形態に係る車載通信システムにおけるスイッチ装置が、上位中継フレームおよび下位中継フレームを受信する時刻を示すタイムチャートの一例を示す図である。なお、図25において、横軸は時間を示し、縦軸は受信速度を示す。
図2および図25を参照して、CGW111Bは、スイッチ装置102からポーズフレームPF1を受信すると、受信したポーズフレームPF1の内容に従い、512ミリ秒の長さを有するポーズ期間Pseにおいて、上位中継フレームBのスイッチ装置102への送信を待機する。
この例では、CGW111Bは、ポーズフレームPF1を受信してから512ミリ秒間、4つの上位中継フレームBのスイッチ装置102への送信を待機する。
一方、TCU111Aは、CGW111Bと異なり、スイッチ装置102からポーズフレームPF1を受信しないので、時刻t1後、さらに2つの上位中継フレームAをスイッチ装置102へ送信する。
再び図24を参照して、スイッチ装置102は、TCU111Aから2つの上位中継フレームAを受信して、受信した2つの上位中継フレームAを中継して運転支援装置111Dへ送信する。
また、スイッチ装置102は、ポーズ期間Pseの満了する時刻t3の後、CGW111Bから4つの上位中継フレームBを受信して、受信した4つの上位中継フレームBを中継して運転支援装置111Dへ送信する。
このように、ポーズフレームPF1を用いて、より優先度の低い上位中継フレームBの伝送タイミングを遅らせる構成により、スイッチ装置102では、上位中継フレームAおよびBの輻輳を防ぐことができる。
[ポーズの変形パターン]
図24に示すように、スイッチ装置102では、ポーズ期間Pseの満了する時刻t3までCGW111Bから上位中継フレームBを受信できないため、時刻t2において上位中継フレームAの送信が完了してから時刻t3までL3中継処理を行う余裕があるにもかかわらず、L3中継処理の待機状態となってしまう。
図26は、本発明の第2の実施の形態に係るスイッチの装置が、上位中継フレームおよび下位中継フレームを送信する時刻を示すタイムチャートの一例を示す図である。なお、図26において、横軸は時間を示し、縦軸は送信速度を示す。
図21および図26を参照して、IPスタックL3中継処理部54は、作成したポーズフレームPF1を時刻t1においてドライバ43およびイーサネットコントローラ42経由でスイッチ部31へ出力するとき、自己の状態をポーズ解消状態からポーズ状態へ遷移させる。
そして、IPスタックL3中継処理部54は、時刻t2において、ポーズ状態においてL3中継処理すべき上位中継フレームをすべてドライバ43へ出力したので、CGW111Bにおけるポーズを解除するためのポーズフレームPF2を作成する。
ポーズフレームPF2には、MAC−SA、MAC−DAおよび送信停止期間として、スイッチ装置102のMACアドレス、CGW111BのMACアドレスおよび0x0000がそれぞれ含まれる。
IPスタックL3中継処理部54は、作成したポーズフレームPF2をドライバ43およびイーサネットコントローラ42経由でスイッチ部31へ出力するとともに、自己の状態をポーズ状態からポーズ解消状態へ遷移させる。
スイッチ部31におけるL2スイッチ処理部32は、処理部51からポーズフレームPF2を受けると、受けたポーズフレームPF2を通信ポート34B経由でCGW111Bへ送信する。
図27は、本発明の第2の実施の形態に係る車載通信システムにおけるスイッチ装置が、上位中継フレームおよび下位中継フレームを受信する時刻を示すタイムチャートの一例を示す図である。なお、図27において、横軸は時間を示し、縦軸は受信速度を示す。
図2および図27を参照して、CGW111Bは、スイッチ装置102からポーズフレームPF2を受信すると、受信したポーズフレームPF2の内容に基づいて、ポーズ期間Pseの長さが0ミリ秒に短縮されたことを認識し、待機中の4つの上位中継フレームBのスイッチ装置102への送信を開始する。
再び図26を参照して、スイッチ装置102は、CGW111Bから4つの上位中継フレームBを受信して、受信した4つの上位中継フレームBを中継して運転支援装置111Dへ送信する。
このように、ポーズフレームPF2を用いてポーズ期間Pseの長さを調整する構成により、IPスタックL3中継処理部54が、L3中継処理を行う余裕があるにもかかわらず、L3中継処理の待機状態となってしまう状況を防ぐことができる。
[動作の流れ]
スイッチ装置102は、コンピュータを備え、当該コンピュータにおけるCPU等の演算処理部は、以下に示すフローチャートの各ステップの一部または全部を含むプログラムを図示しないメモリから読み出して実行する。この装置のプログラムは、外部からインストールすることができる。この装置のプログラムは、記録媒体に格納された状態で流通する。
図28は、本発明の第2の実施の形態に係るスイッチ装置が上位中継フレームを中継する際の動作手順を定めたフローチャートである。
図28を参照して、スイッチ装置102における処理部51が、ポーズ解消状態である状況を想定する。
まず、スイッチ装置102における処理部51は、ポーリング方式またはイベントドリブン方式を用いて、複数の上位中継フレームが存在することを確認するまで待機する(ステップS202でNO)。
そして、処理部51は、複数の上位中継フレームが存在することを確認すると(ステップS202でYES)、受けた複数の上位中継フレームに対してL3中継処理を行う(ステップS204)。
次に、処理部51は、L3中継処理の完了した複数の上位中継フレームに含まれる送信元IPアドレスが異なる場合(ステップS206でYES)、ポーズフレームPF1を作成し、作成したポーズフレームPF1をスイッチ部31へ出力する(ステップS208)。
次に、処理部51は、自己の状態をポーズ解消状態からポーズ状態へ遷移させる(ステップS210)。
次に、処理部51は、L3中継処理の完了した複数の上位中継フレームに含まれる送信元IPアドレスが同じであるか(ステップS206でNO)、または自己の状態をポーズ解消状態からポーズ状態へ遷移させると(ステップS210)、ポーリング方式またはイベントドリブン方式を用いて、複数の上位中継フレームが存在することを確認するまで待機する(ステップS202でNO)。
なお、処理部51は、上記ステップS208において、L3中継処理の完了した複数の上位中継フレームのスイッチ部31への出力順を、Strict Priority QueuingまたはWeighted Round Robinに従って、送信元IPアドレスに応じて制御してもよい。
また、上記ステップS208およびS210の順番は、上記に限らず、順番を入れ替えてもよい。
図29は、本発明の第2の実施の形態に係るスイッチ装置がポーズ期間を短縮する際の動作手順を定めたフローチャートである。
図29を参照して、スイッチ装置102における処理部51が、ポーズ状態である状況を想定する。
まず、スイッチ装置102における処理部51は、L3中継処理後の上位中継フレームをすべてスイッチ部31へ出力するまで待機する(ステップS302でNO)。
そして、処理部51は、L3中継処理後の上位中継フレームをすべてスイッチ部31へ出力すると(ステップS302でYES)、ポーズフレームPF2を作成し、作成したポーズフレームPF2をスイッチ部31へ出力する(ステップS304)。
次に、処理部51は、自己の状態をポーズ状態からポーズ解消状態へ遷移させる(ステップS306)。
なお、上記ステップS304およびS306の順番は、上記に限らず、順番を入れ替えてもよい。
また、本発明の第2の実施の形態に係るスイッチ装置では、処理部51は、優先度に基づいて、ポーズフレームPF1を送信すべき車載通信デバイス111を決定する構成であるとしたが、これに限定するものではない。処理部51は、ポーズフレームPF1を送信すべき車載通信デバイス111を優先度に関係なく決定する構成であってもよい。
また、本発明の第2の実施の形態に係るスイッチ装置では、処理部51は、上位中継フレームが複数存在する場合において、各上位中継フレームの送信元IPアドレスが異なるとき、ポーズフレームPF1を送信する構成であるとしたが、これに限定するものではない。処理部51は、上位中継フレームが複数存在する場合において、各上位中継フレームの送信元MACアドレスが異なるとき、ポーズフレームPF1を送信する構成であってもよい。
また、本発明の第2の実施の形態に係るスイッチ装置では、処理部51は、上位中継フレームの送信を待機すべき期間の長さを示すポーズフレームPF1を送信する構成であるとしたが、これに限定するものではない。処理部51は、上位中継フレームの送信を待機すべき期間の満了タイミングを示すイーサネットフレームまたはIPパケットを送信する構成であってもよい。
以上のように、本発明の第2の実施の形態に係るスイッチ装置は、車載ネットワークにおけるデータを中継処理する。処理部51は、スイッチ部31を介して中継処理を行う。そして、処理部51は、自己において中継処理を行うべきイーサネットフレームが複数存在する場合において、各イーサネットフレームの送信元IPアドレスが異なるとき、各送信元IPアドレスを有する装置のうちの少なくともいずれか1つへフレームの送信タイミングに関する指示を送信する。
このように、各イーサネットフレームの送信元IPアドレスが異なる場合、すなわち輻輳状態である場合において、各送信元IPアドレスを有する装置のうちの少なくともいずれか1つへ、たとえば送信の延期要求を送信する構成により、輻輳の程度を下げるか、または非輻輳状態にすることができるので、MCUからL2スイッチへのデータの出力レートを下げる構成を用いなくてもデータのロスを防ぐことができる。したがって、車載ネットワークにおいて、データのロスを防ぎながら当該データの中継処理を効率よく行うことができる。
その他の構成および動作は第1の実施の形態に係る車載通信システムと同様であるため、ここでは詳細な説明を繰り返さない。
なお、本発明の第1の実施の形態および第2の実施の形態に係る各装置の構成要素および動作のうち、一部または全部を適宜組み合わせることも可能である。
上記実施の形態は、すべての点で例示であって制限的なものではないと考えられるべきである。本発明の範囲は、上記説明ではなく特許請求の範囲によって示され、特許請求の範囲と均等の意味および範囲内でのすべての変更が含まれることが意図される。
以上の説明は、以下に付記する特徴を含む。
[付記1]
車載ネットワークにおけるデータを中継処理するスイッチ装置であって、
スイッチ部と、
前記スイッチ部を介して前記中継処理を行う処理部とを備え、
前記処理部は、自己において前記中継処理を行うべきフレームが複数存在する場合において、各前記フレームの送信元アドレスが異なる場合における前記各フレームの前記スイッチ部への出力レートを、前記各フレームの送信元アドレスが同一である場合と比べて小さくする調整処理を行い、
前記スイッチ装置は、複数のレイヤを有する通信プロトコルに従って動作し、
前記スイッチ部は、前記複数のレイヤのうちの第1のレイヤに従って前記処理部を介さずに前記中継処理を行うことが可能であり、
前記処理部は、前記第1のレイヤよりも上位の第2のレイヤに従って前記中継処理を行い、
前記スイッチ装置は、さらに、
前記スイッチ部が前記フレームを蓄積するための第1の記憶部を備え、
前記処理部は、前記第1の記憶部よりも記憶容量の大きい第2の記憶部に前記フレームを蓄積可能であり、
前記フレームは、イーサネットフレームであり、
前記送信元アドレスは、送信元IPアドレスまたは送信元MACアドレスである、スイッチ装置。
[付記2]
車載ネットワークにおけるデータを中継処理するスイッチ装置であって、
スイッチ部と、
前記スイッチ部を介して前記中継処理を行う処理部とを備え、
前記処理部は、自己において前記中継処理を行うべきフレームが複数存在する場合において、各前記フレームの送信元アドレスが異なるとき、各前記送信元アドレスを有する装置のうちの少なくともいずれか1つへフレームの送信タイミングに関する指示を送信する調整処理を行い、
前記スイッチ装置は、複数のレイヤを有する通信プロトコルに従って動作し、
前記スイッチ部は、前記複数のレイヤのうちの第1のレイヤに従って前記処理部を介さずに前記中継処理を行うことが可能であり、
前記処理部は、前記第1のレイヤよりも上位の第2のレイヤに従って前記中継処理を行い、
前記スイッチ装置は、さらに、
前記スイッチ部が前記フレームを蓄積するための第1の記憶部を備え、
前記処理部は、前記第1の記憶部よりも記憶容量の大きい第2の記憶部に前記フレームを蓄積可能であり、
前記フレームは、イーサネットフレームであり、
前記送信元アドレスは、送信元IPアドレスまたは送信元MACアドレスであり、
前記指示は、ポーズフレームである、スイッチ装置。