(57)【要約】  待ち時間の少ない転送が可能となる。制御装置は、ルーティング制御部と、送信キュー、複数のコントローラと、を備え、ルーティング制御部は、バッファと、入力されたフレームのうち再送対象フレームを除くフレームを転送先のネットワークに対応するコントローラの送信キューに出力すると共に、転送先のネットワークに対応するコントローラが送信キューにこれ以上のフレームを格納できないフル状態である場合には、入力されたフレームを再送対象フレームに指定してバッファに格納する通常送信部と、複数のコントローラのいずれかからフル状態が解消したことを示す解消シグナルを受信すると、解消シグナルを送信したコントローラに対応するネットワークを転送先とする再送対象フレームを、解消シグナルを送信したコントローラの送信キューに出力するシグナル対処部とを備え、コントローラは、フル状態が解消すると解消シグナルをシグナル対処部に送信する。
2019026613.tif 000002
【特許請求の範囲】
【請求項１】
複数のネットワークと接続可能であり前記複数のネットワーク間でフレームを転送する制御装置であって、
前記フレームの転送を制御するルーティング制御部と、
前記複数のネットワークのそれぞれに対応して備えられ、当該ネットワークから前記フレームを受信して前記ルーティング制御部に入力すると共に、当該ネットワークを転送先として前記ルーティング制御部から出力された前記フレームを格納する送信キューを備え、前記送信キューに格納された前記フレームを当該ネットワークに送信する複数のコントローラと、を備え、
前記ルーティング制御部は、
入力された前記フレームのうち指定されたフレームを再送対象フレームとして格納するバッファと、
入力された前記フレームのうち前記再送対象フレームを除くフレームを転送先の前記ネットワークに対応する前記コントローラの前記送信キューに出力すると共に、転送先の前記ネットワークに対応する前記コントローラが前記送信キューにこれ以上のフレームを格納できないフル状態である場合には、入力された前記フレームを前記再送対象フレームに指定して前記バッファに格納する通常送信部と、
前記複数のコントローラのいずれかから前記フル状態が解消したことを示す解消シグナルを受信すると、前記解消シグナルを送信した前記コントローラに対応するネットワークを転送先とする前記再送対象フレームを、前記解消シグナルを送信した前記コントローラの前記送信キューに出力するシグナル対処部とを備え、
前記コントローラは、前記フル状態が解消すると前記解消シグナルを前記シグナル対処部に送信する制御装置。
【請求項２】
請求項１に記載の制御装置において、
前記複数のネットワークごとの前記再送対象フレームの存在を示すリトライカウンタをさらに備え、
前記通常送信部は前記リトライカウンタを参照して、転送先の前記ネットワークに対応する前記コントローラが前記フル状態であるか否かを判断する制御装置。
【請求項３】
請求項１に記載の制御装置において、
前記フレームの識別子ごとに、それぞれのネットワークに対する前記再送対象フレームの有無を示すルーティングテーブルをさらに備え、
前記通常送信部は、前記ルーティングテーブルを参照して、転送先の前記ネットワークに対応する前記コントローラが前記フル状態であるか否かを判断する制御装置。
【請求項４】
請求項１に記載の制御装置において、
前記複数のネットワークごとの前記再送対象フレームの数を示すリトライカウンタと、
前記フレームの識別子ごとの１または複数の転送先ネットワーク、および前記フレームの識別子ごとの前記再送対象フレームの有無を示すルーティングテーブルをさらに備え、
前記通常送信部は前記リトライカウンタを参照して、転送先の前記ネットワークに対応する前記コントローラが前記フル状態であるか否かを判断する制御装置。
【請求項５】
請求項１に記載の制御装置において、
前記転送を行う前に同一の識別子を有するフレームを受信すると、前記再送対象フレームであるか否かを示す情報を除いて新たに受信したフレームで従前に受信したフレームを上書きする管理部をさらに備える制御装置。
【請求項６】
請求項１に記載の制御装置において、
受信から所定時間以内に転送されないフレームを破棄するバッファ整理部をさらに備える制御装置。
【請求項７】
請求項１に記載の制御装置において、
前記フレームには転送の優先度を示す優先度情報が含まれ、
前記通常送信部および前記シグナル対処部は、前記コントローラに送信可能なフレームのうち最も優先度が高いフレームを前記コントローラに送信する制御装置。
【請求項８】
請求項１に記載の制御装置において、
転送先のネットワークに応じて受信したフレームを加工するプロトコル変換部をさらに備える制御装置。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、制御装置に関する。
【背景技術】
【０００２】
車両には複数の電子制御ユニットが搭載され、それぞれの電子制御ユニットはネットワークを介して通信を行う。電子制御ユニットの通信が複数のネットワークにまたがる場合は通信の中継に時間を要することがあり、迅速な通信が求められる。
特許文献１には、データを伝送する複数の多重通信線に接続され、各多重通信線に伝送される各データを他の多重通信線に出力する装置であって、中継元の多重通信線を介して受信したデータを一時保持する複数のバッファからなる受信バッファ群と、該受信バッファ群からのデータが転送され、中継先の多重通信線への送信に先立ってデータを一時保持する複数のバッファからなるメインバッファ群と、前記受信バッファ群に保持されたデータを前記メインバッファ群に転送する第１転送手段と、前記メインバッファ群に保持されたデータを中継先の多重通信線に送信する送信手段と、を備えたデータ中継装置において、前記第１転送手段は、前記受信バッファ群に保持されたデータを、所定の時間間隔毎に、一括して前記メインバッファ群に転送することを特徴とするデータ中継装置が開示されている。
【先行技術文献】
【特許文献】
【０００３】
【特許文献１】特開２００４−３５０１３８号公報
【発明の概要】
【発明が解決しようとする課題】
【０００４】
特許文献１に記載されている発明は、データ転送の待ち時間の点で改善の余地がある。
【課題を解決するための手段】
【０００５】
本発明の第１の態様による制御装置は、複数のネットワークと接続可能であり前記複数のネットワーク間でフレームを転送する制御装置であって、前記フレームの転送を制御するルーティング制御部と、前記複数のネットワークのそれぞれに対応して備えられ、当該ネットワークから前記フレームを受信して前記ルーティング制御部に入力すると共に、当該ネットワークを転送先として前記ルーティング制御部から出力された前記フレームを格納する送信キューを備え、前記送信キューに格納された前記フレームを当該ネットワークに送信する複数のコントローラと、を備え、前記ルーティング制御部は、入力された前記フレームのうち指定されたフレームを再送対象フレームとして格納するバッファと、入力された前記フレームのうち前記再送対象フレームを除くフレームを転送先の前記ネットワークに対応する前記コントローラの前記送信キューに出力すると共に、転送先の前記ネットワークに対応する前記コントローラが前記送信キューにこれ以上のフレームを格納できないフル状態である場合には、入力された前記フレームを前記再送対象フレームに指定して前記バッファに格納する通常送信部と、前記複数のコントローラのいずれかから前記フル状態が解消したことを示す解消シグナルを受信すると、前記解消シグナルを送信した前記コントローラに対応するネットワークを転送先とする前記再送対象フレームを、前記解消シグナルを送信した前記コントローラの前記送信キューに出力するシグナル対処部とを備え、前記コントローラは、前記フル状態が解消すると前記解消シグナルを前記シグナル対処部に送信する。
【発明の効果】
【０００６】
本発明によれば、再送対象フレームも含めて待ち時間の少ないフレームの転送が可能である。
【図面の簡単な説明】
【０００７】
【図１】制御装置１のハードウエア構成図
【図２】第１の実施の形態における制御装置１の機能構成を示す機能ブロック図
【図３】優先度ルール１５の一例を示す図
【図４】ルーティングテーブル１６の一例を示す図
【図５】リトライカウンタ１７の一例を示す図
【図６】コントローラ２０の外部受信処理を示すフローチャート
【図７】コントローラ２０の内部受信処理を示すフローチャート
【図８】コントローラ２０の送信処理を示すフローチャート
【図９】ＭＰＦＯ管理部１２の動作を示すフローチャート
【図１０】通常送信部１３の動作を示すフローチャート
【図１１】シグナル対処部１４の動作を示すフローチャート
【図１２】変形例１における再送管理テーブ１８の一例を示す図
【図１３】変形例２におけるバッファ整理部の動作を示すフローチャート
【図１４】第２の実施の形態における制御装置１Ａの機能構成を示す機能ブロック図
【図１５】第２の実施の形態における通常送信部１３の処理を表すフローチャート
【発明を実施するための形態】
【０００８】
―第１の実施の形態―
以下、図１〜図１１を参照して、本発明にかかる制御装置の第１の実施の形態を説明する。制御装置は、少なくとも２つのネットワークに接続される。本実施の形態では６つのネットワークに接続されるとして説明する。
【０００９】
（ハードウエア構成）
図１は、制御装置１のハードウエア構成図である。制御装置１は、複数のネットワーク、すなわち第１〜第６の６つのネットワークと接続される。６つのネットワークはたとえばＣＡＮ（Ｃｏｎｔｒｏｌｌｅｒ  Ａｒｅａ  Ｎｅｔｗｏｒｋ）、ＴＣＰ／ＩＰ、ＬＩＮ（Ｌｏｃａｌ  Ｉｎｔｅｒｃｏｎｎｅｃｔ  Ｎｅｔｗｏｒｋ）などである。ただしそれぞれのネットワークにおいて用いられる通信プロトコルはこれに限定されず、ＭＯＳＴ（Ｍｅｄｉａ  Ｏｒｉｅｎｔｅｄ  Ｓｙｓｔｅｍ  Ｔｒａｎｓｐｏｒｔ）やＦｌｅｘＲａｙに接続されてもよい。またそれぞれのネットワークで用いられる通信プロトコルは同一でもよい。また制御装置１は、２つ〜５つのネットワークに接続されてもよいし、７つ以上のネットワークに接続されてもよい。
【００１０】
制御装置１は、ルーティング制御部１０と、接続されるネットワークと同数の６つのコントローラ、すなわち第１コントローラ２０ａと、第２コントローラ２０ｂと、第３コントローラ２０ｃと、第４コントローラ２０ｄと、第５コントローラ２０ｅと、第６コントローラ２０ｆとを備える。第１コントローラ２０ａ〜第６コントローラ２０ｆのそれぞれは、第１ネットワーク〜第６ネットワークのそれぞれに対応して制御装置１に備えられ、それぞれ対応するネットワークとのフレームの送受信を行う。なお通信プトロコルによって送受信の対象となる一塊のデータの名称が異なるが、本実施の形態では通信プロトコルに関わらず全て「フレーム」と呼ぶ。また、通信プロトコルによってフレームを識別する識別子が異なるが本実施の形態ではいずれの通信プロトコルも「ＩＤ」によってフレームを識別することとする。たとえば「ＩＤ」は、ＣＡＮにおけるＣＡＮ−ＩＤ、ＬＩＮにおけるＰｒｏｔｅｃｔｅｄ  ＩＤ、ＴＣＰ／ＩＰにおける送信先ＩＰアドレスである。ただしＩＤは他の値を用いてもよく、たとえばＴＣＰ／ＩＰでは送信元のＩＰアドレスと送信先のポート番号との組み合わせを用いてもよい。
【００１１】
以下では、第１コントローラ２０ａ、第２コントローラ２０ｂ、第３コントローラ２０ｃ、第４コントローラ２０ｄ、第５コントローラ２０ｅ、および第６コントローラ２０ｆをまとめてコントローラ２０と呼ぶ。コントローラ２０のそれぞれは、制御装置１の内部の信号線によりルーティング制御部１０と接続される。ルーティング制御部１０は、対応するネットワークとの間でフレームを送受信する各コントローラ２０とフレームの入出力を行うことで、第１〜第６のネットワーク間でのフレームの転送を制御する。たとえば第１ネットワークから第２ネットワークへ転送されるフレームは、まず第１コントローラ２０ａが受信し、これをルーティング制御部１０が第１コントローラ２０ａから入力して転送先の第２コントローラ２０ｂに出力し、第２コントローラ２０ｂが第２ネットワークに送信する。また以下では、ルーティング制御部１０の動作の説明において、第１コントローラ２０ａ〜第６コントローラ２０ｆを第１チャンネル（ＣＨ１）〜第６チャンネル（ＣＨ６）とも呼ぶ。
【００１２】
ルーティング制御部１０は、中央演算装置であるＣＰＵ２と、読み取り専用メモリであるＲＯＭ３と、読み書き可能なメモリであるＲＡＭ４と、不揮発性記憶装置であるフラッシュメモリ５とを備える。ＣＰＵ２は、ＲＯＭ３に格納されるプログラムをＲＡＭ４に展開して実行することにより後述する機能を発揮する。フラッシュメモリ５に格納される情報は後述する。
【００１３】
コントローラ２０のそれぞれは、特定用途向け集積回路、すなわちＡＳＩＣ（ａｐｐｌｉｃａｔｉｏｎ  ｓｐｅｃｉｆｉｃ  ｉｎｔｅｇｒａｔｅｄ  ｃｉｒｃｕｉｔ）である。ただしコントローラ２０のそれぞれ、またはいずれかがＦＰＧＡ（Ｆｉｅｌｄ−Ｐｒｏｇｒａｍｍａｂｌｅ  Ｇａｔｅ  Ａｒｒａｙ）として構成されてもよいし、ソフトウエアにより実現されてもよい。ソフトウエアによる実現とは、それぞれのコントローラが不図示のＣＰＵ、ＲＯＭ、およびＲＡＭを備え、ＣＰＵがＲＯＭに格納されたプログラムをＲＡＭに展開して実行することによりＡＳＩＣと同様の機能を発揮することである。
【００１４】
（機能構成）
図２は、制御装置１の機能構成を示す機能ブロック図である。ただし図２では、機能ブロックにより利用される記憶領域および情報も併記している。
【００１５】
ルーティング制御部１０は、ＭＰＦＯ管理部１２と、通常送信部１３と、シグナル対処部１４と、プロトコル変換部１９とを備える。またルーティング制御部１０は、記憶領域であるＭＰＦＯバッファ１１を備え、フラッシュメモリ５には優先度ルール１５、ルーティングテーブル１６、およびリトライカウンタ１７が格納される。なおＭＰＦＯ管理部１２およびＭＰＦＯバッファ１１の「ＭＰＦＯ」とは、Ｍｏｓｔ  Ｐｒｉｏｒｉｔｙ  Ｆｉｒｓｔ  Ｏｕｔを意味する。第１コントローラ２０ａ〜第６コントローラ２０ｆは、記憶領域である第１送信キュー２１ａ〜第６送信キュー２１ｆを備える。以下では、第１送信キュー２１ａ、第２送信キュー２１ｂ、第３送信キュー２１ｃ、第４送信キュー２１ｄ、第５送信キュー２１ｅ、および第６送信キュー２１ｆをまとめて「送信キュー２１」と呼ぶ。また以下では、送信キュー２１にフレームが多数格納され、これ以上のフレームを格納できない状態を「フル状態」と呼ぶ。
【００１６】
ＭＰＦＯ管理部１２は、それぞれのコントローラ２０が各ネットワークから受信したフレームをＭＰＦＯバッファ１１に格納する。通常送信部１３は、ＭＰＦＯバッファ１１に格納されたフレームを転送先のネットワークに対応するコントローラ２０の送信キュー２１に送信する。シグナル対処部１４は、ルーティング制御部１０がコントローラ２０から後述する解消シグナルを受信すると、フレームの再送信処理を実行する。詳しくは後述する。プロトコル変換部１９は、コントローラ２０が外部から受信したフレームを転送先のネットワークに応じて加工する。
【００１７】
ＭＰＦＯバッファ１１には、それぞれのコントローラ２０が各ネットワークから受信したフレームが格納される。ただしＭＰＦＯバッファ１１に格納されるそれぞれのフレームには再送待ちフラグが付加される。ＭＰＦＯバッファ１１に新たにフレームが格納された初期状態では、再送待ちフラグの値は再送待ちではないことを示すゼロが設定される。ただし初期状態においてフレームに再送待ちフラグそのものを設定せず、再送待ちとなった際に再送待ち状態であることを示す値の「１」を付与してもよい。
【００１８】
優先度ルール１５は、フレームの識別子ごとの転送の優先度が格納される。換言すると、優先度ルール１５に記載された優先度が高いフレームほど先に送信キュー２１に送信される。
【００１９】
図３は、優先度ルール１５の一例を示す図である。図３に示す例では１〜５の優先度と、それぞれの優先度に対応するＩＤが示されている。優先度はたとえば１以上の整数で表され、数値が小さいほど優先される。優先度ルール１５が図３の例に示すとおりである場合に、ＭＰＦＯバッファ１１にＣＡＮ−ＩＤが「１０」、「３０」のフレームと、送信先ＩＰアドレスが「１９２．１６８．１．１０」のフレームの合計３つのフレームが存在すると、これらは次の順番で送信キュー２１に送信される。すなわち、ＣＡＮ−ＩＤが「１０」のフレーム、送信先ＩＰアドレスが「１９２．１６８．１．１０」のフレーム、ＣＡＮ−ＩＤが「３０」のフレーム、の順番で送信される。図２に戻って説明を続ける。
【００２０】
ルーティングテーブル１６には、フレームのＩＤごとの転送先チャンネル、およびリトライｂｉｔが格納される。転送先チャンネルはネットワーク構成等が変更されない限り書き換えられないが、リトライｂｉｔは各ネットワークへのフレームの転送の状況に応じて書き換えられる。転送先チャンネルとは、転送先の１以上のネットワークを示す情報であり、各ネットワークに対応するチャンネルが指定される。たとえば、あるＩＤを有するフレームを第２ネットワークと第３ネットワークに転送することが、転送先チャンネルが「２、３」として表される。リトライｂｉｔとは、フレームのＩＤごとにチャンネルごとの再送対象フレームの有無を示す情報である。たとえば再送対象フレームが存在することを「１」、存在しないことを「０」で表し、チャンネル番号の大きい方に対応する数字を先に記載する。すなわちリトライｂｉｔが「０００００１」の場合は、１桁目のみが「１」なのでチャンネル１のみ再送対象フレームが存在し、チャンネル２〜６は再送対象フレームが存在しないことを示す。
【００２１】
図４は、ルーティングテーブル１６の一例を示す図である。図４に示す例の１行目では、ＩＤが「１０」のフレームはチャンネル「３」、すなわち第３ネットワークに転送することが示されている。またＩＤが「１０」のフレームはリトライｂｉｔが「０００１００」なので、第３ネットワークに対して再送対象フレームが存在することが示されている。図４の２行目では、転送先チャンネルが「３、４、５」なので、ＩＤが「２０」のフレームは３つのネットワークに転送することが示されている。またＩＤが「２０」のフレームはリトライｂｉｔが「００１１００」なので、第３ネットワークおよび第４ネットワークに対して再送対象フレームが存在することが示されている。換言すると第５ネットワークに対しては再送対象フレームが存在しないことが示されている。図４の３行目に示すＩＤが「３０」のフレームはリトライｂｉｔが「００００００」なので、再送対象フレームが存在しないことが示されている。図２に戻って説明を続ける。
【００２２】
リトライカウンタ１７は、転送先のネットワークごとの再送対象フレームの存在、より詳細には転送先のネットワークごとの再送対象フレームのＩＤの数を示す情報である。上述したルーティングテーブル１６は、フレームのＩＤごとに各チャンネルの再送対象フレームの存在を示している。そのため、あるチャンネルについて再送対象フレームが存在するか否かを判断するためには全てのＩＤのリトライｂｉｔを確認する必要がある。しかしリトライカウンタ１７を参照することで、あるチャンネルについて再送対象フレームが存在するか否かを簡便に判断できる。なお再送対象フレームの存在は、送信キューがすでに一杯であることを示しているので、再送対象フレームが存在するチャンネルの送信キュー２１に仮にフレームを送信しても、そのフレームはコントローラ２０により受け入れが拒否されエラーが返される。そのため本実施の形態では、再送対象フレームが存在するチャンネルの送信キュー２１にはフレームを送信しない。詳しくは後述する。
【００２３】
図５は、リトライカウンタ１７の一例を示す図である。図５に示すリトライカウンタ１７の例は、図４に示すルーティングテーブル１６の１〜３行目に対応している。すなわち図５では、チャンネル４のカウンタ値が「１」、チャンネル３のカウンタ値が「２」である。これは図４のリトライｂｉｔにおいて、４桁目のビットが「１」となっているＩＤが１つ存在すること、および３桁目のビットが「１」となっているＩＤが２つ存在することに対応している。そして図４のリトライｂｉｔにおいて、１，２，５，６桁目は全てゼロなので図５のリトライカウンタ１７も同様にチャンネル１，２，５，６がゼロとなっている。
【００２４】
（コントローラ２０の動作）
図６〜図８を参照してコントローラ２０の詳細な動作を説明する。前述のとおりそれぞれのコントローラ２０は、接続されたネットワーク、すなわち制御装置１の外部とのフレームの送受信だけでなく、制御装置１の内部に存在するルーティング制御部１０とのフレームの送受信も行う。以下では、コントローラ２０が制御装置１の外部からフレームを受信する処理を「外部受信処理」と呼び、コントローラ２０が制御装置１の内部に存在するルーティング制御部１０からフレームを受信する処理を「内部受信処理」と呼ぶ。
【００２５】
図６は、コントローラ２０が外部からフレームを受信する外部受信処理を示すフローチャートである。コントローラ２０は、所定の時間間隔、たとえば１ｍｓごとに図６に示す処理を実行する。
【００２６】
図６ではまずコントローラ２０は、Ｓ３０１では、外部からフレームを受信したか否かを判断し、受信したと判断する場合はＳ３０２に進み、受信していないと判断する場合は図６のフローチャートで示す処理を終了する。Ｓ３０２ではコントローラ２０は、受信したフレームをＭＰＦＯバッファ１１へ格納して図６に示す動作を終了する。ただしＳ３０２では厳密には、受信したフレームをそのままＭＰＦＯバッファ１１へ格納するのではなく、受信したフレームをルーティング制御部１０に送信して処理をルーティング制御部１０内のＭＰＦＯ管理部１２に委ねる。
【００２７】
図７は、内部受信処理を示すフローチャートである。コントローラ２０は、所定の時間間隔、たとえば１ｍｓごとに図７に示す処理を実行する。
【００２８】
図７ではまずコントローラ２０は、Ｓ３０５では、ルーティング制御部１０からフレームを受信したか否かを判断し、受信したと判断する場合はＳ３０６に進み、受信していないと判断する場合は図７のフローチャートで示す処理を終了する。Ｓ３０６ではコントローラ２０は、送信キュー２１に空きがあるか否か、換言すると送信キュー２１に受信したフレームを格納可能であるか否かを判断する。コントローラ２０は送信キュー２１に空きがあると判断する場合はＳ３０７に進み、送信キュー２１に空きがない、すなわちフル状態であると判断するとＳ３０８に進む。Ｓ３０７ではコントローラ２０は、受信したフレームを送信キュー２１へ格納して図７に示す動作を終了する。Ｓ３０８ではコントローラ２０は、フレームを受け入れられない旨のエラーをルーティング制御部１０に返して図７に示す動作を終了する。
【００２９】
図８は、コントローラ２０が外部にフレームを送信する処理を示すフローチャートである。コントローラ２０は、所定の時間間隔、たとえば１ｍｓごとに図８に示す処理を実行する。図８ではまずコントローラ２０は、Ｓ３１１では送信キュー２１にフレームが格納されているか否かを判断する。コントローラ２０は、送信キュー２１にフレームが格納されていると判断する場合はＳ３１２に進み、送信キュー２１にフレームが存在しないと判断する場合は図８に示す動作を終了する。Ｓ３１２ではコントローラ２０は、フレームをネットワークに送信可能であるか否かを判断する。ネットワークに送信可能であると判断する場合はＳ３１３に進み、ネットワークに送信が不可能であると判断する場合は図８に示す動作を終了する。なおＳ３１２において否定判断する場合は、たとえばネットワークケーブルが接続されていない場合や、通信プロトコルに従い送信を待機している場合である。
【００３０】
Ｓ３１３ではコントローラ２０は、ネットワークにフレームを送信する。続くＳ３１４ではコントローラ２０は、送信キュー２１がフル状態であるか否か、換言するとこれまで新たなフレームの受け入れが不可能な状態であったがＳ３１３における送信により新たな送信が可能となったか否かを判断する。コントローラ２０はＳ３１４において肯定判断する場合はＳ３１５に進み、否定判断する場合はＳ３１６に進む。Ｓ３１５ではコントローラ２０は、ルーティング制御部１０に解消シグナルを送信する。この解消シグナルには、送信キュー２１のフル状態が解消されたチャンネル番号が含まれる。たとえばコントローラ２０ａはチャンネル番号が「１」なので、たとえばコントローラ２０ａからの解消シグナルには「ＣＨ１」の情報を含めて送信する。続くＳ３１６ではコントローラ２０は、Ｓ３１３において送信したフレームを送信キュー２１から削除して図８に示す動作を終了する。
【００３１】
（ＭＰＦＯ管理部１２の動作）
図９は、ＭＰＦＯ管理部１２の動作を示すフローチャートである。ＭＰＦＯ管理部１２は、所定の時間間隔、たとえば１ｍｓごとに図９に示す処理を実行する。図９ではまずＭＰＦＯ管理部１２はＳ３２１において、コントローラ２０からフレームを受信したか否かを判断する。ＭＰＦＯ管理部１２はフレームを受信したと判断する場合はＳ３２２に進み、フレームを受信していないと判断する場合は図９により動作が表されるプログラムを終了する。なおＳ３２１において受信したと判断したフレームのＩＤを図９の説明において「受信フレームＩＤ」と呼ぶ。Ｓ３２２ではＭＰＦＯ管理部１２は、ＭＰＦＯバッファ１１に受信フレームＩＤと同一のＩＤを有するフレームが格納されているか否かを判断する。ＭＰＦＯ管理部１２は、ＭＰＦＯバッファ１１に受信フレームＩＤと同一のＩＤを有するフレームが格納されていると判断する場合はＳ３２３に進み、同一のＩＤを有するフレームは格納されていないと判断する場合はＳ３２４に進む。
【００３２】
Ｓ３２３ではＭＰＦＯ管理部１２は、受信フレームＩＤと同一のＩＤを有しておりＭＰＦＯバッファ１１に格納されているフレームを、Ｓ３２１において受信したと判断したフレームで上書きして図９により動作が表されるプログラムを終了する。ただしこのとき、全ての情報を上書きするのではなく、後述する再送待ちフラグの値は維持する。Ｓ３２４ではＭＰＦＯ管理部１２は、ＭＰＦＯバッファ１１にＳ３２１において受信したと判断したフレームを新たに格納して図９により動作が表されるプログラムを終了する。
【００３３】
（通常送信部１３の動作）
図１０は、通常送信部１３の動作を示すフローチャートである。前述のとおり、通常送信部１３はそれぞれのネットワークに対して直接のデータの送信は実行できず、ネットワークに接続されたそれぞれのコントローラに対して送信すべきフレームを送る。
【００３４】
図１０ではまず通常送信部１３は、ＭＰＦＯバッファ１１にフレームが存在するか否かを判断する。通常送信部１３は、ＭＰＦＯバッファ１１にフレームが存在すると判断する場合はＳ３３２に進み、ＭＰＦＯバッファ１１にフレームが存在しないと判断すると図１０により動作が表されるプログラムを終了する。ただしＳ３３１では通常送信部１３は、再送待ちフラグが付与されているフラグは存在しないものとして扱う。
【００３５】
Ｓ３３２では通常送信部１３は、優先度ルール１５を参照してＭＰＦＯバッファ１１に存在するフレームのうち最も優先度が高いフレームを決定する。なお図１０の説明では、以下このフレームを「対象フレーム」と呼ぶ。続くＳ３３３では対象フレームを対象として、送信先のネットワークにあわせてプロトコル変換処理を行う。この処理はプロトコル変換部１９が実行する。ただし送信元のネットワークと送信先のネットワークの通信プロトコルが同一の場合はＳ３３３は省略する。続くＳ３３４では通常送信部１３は、ルーティングテーブル１６を参照し、送信先チャンネルを特定する。続くＳ３３５では通常送信部１３は、リトライカウンタ１７を参照し、送信先チャンネルのリトライカウンタがゼロであるか否かを判断することで、送信先チャンネルのコントローラ２０がフル状態であるか否かを判断する。通常送信部１３は、送信先チャンネルのリトライカウンタがゼロであると判断する場合、すなわち送信先チャンネルに対応するコントローラ２０がフル状態ではなく、送信キュー２１に対象フレームを格納可能と判断する場合はＳ３３６に進み、送信先チャンネルのリトライカウンタがゼロではないと判断する場合、すなわち送信先チャンネルに対応するコントローラ２０がフル状態であると判断する場合はＳ３４０に進む。
【００３６】
Ｓ３３６では通常送信部１３は、対象フレームを送信先チャンネルの送信キュー２１に送る。なおＳ３３６は、送信先チャンネルのリトライカウンタがゼロなので、少なくとも現時点ではそのチャンネルにおいて送信キュー２１が溢れておらず送信キュー２１に受け入れられる可能性が高いとの考えに基づいて実行している。続くＳ３３７では通常送信部１３は、正常に送信キュー２１に送信できたか否かを判断する。通常送信部１３は正常に送信できたと判断する場合はＳ３３８に進み、正常に送信できなかったと判断する場合はＳ３４０に進む。Ｓ３３８では通常送信部１３は、ＭＰＦＯバッファ１１から対象フレームを削除して図１０により動作が表されるプログラムを終了する。
【００３７】
Ｓ３３５またはＳ３３７において否定判断されると実行されるＳ３４０では通常送信部１３は、対象フレームに再送待ちフラグを付与してＭＰＦＯバッファ１１に戻す。続くＳ３４１では通常送信部１３は、送信先チャンネルのリトライカウンタをカウントアップ、換言するとインクリメントする。続くＳ３４２では通常送信部１３は、ルーティングテーブル１６の該当するリトライｂｉｔを「１」に書き換えて図１０により動作が表されるプログラムを終了する。なおＳ３４２において、該当するリトライｂｉｔがすでに「１」である場合は、該当するリトライカウンタが「１」以上になっているはずなので、リトライｂｉｔを「１」からさらにインクリメントする状況は起こりえない。
【００３８】
なお通常送信部１３がＳ３３５の判断を行った際に、送信キュー２１がちょうど一杯になりリトライカウンタがゼロの場合は、次のような処理が行われる。まずＳ３３５で肯定判断が行われてＳ３３６において対象フレームを送信キュー２１に送信する。しかしコントローラ２０は、送信キュー２１が一杯なので対象フレームを受け入れずエラーを返す（図７のＳ３０６：ＮＯ、Ｓ３０８）。これを受けて通常送信部１３はＳ３３７において否定判断をし、Ｓ３４１においてリトライカウンタをカウントアップする。
【００３９】
（シグナル対処部１４の動作）
図１１は、シグナル対処部１４の動作を示すフローチャートである。シグナル対処部１４は、コントローラ２０から解消シグナル（図８のＳ３１５）を受信すると図１１に示す処理を開始する。この解消シグナルには、フル状態が解消された送信キュー２１を有するチャンネル番号が含まれる。以下では、解消シグナルに含まれる番号のチャンネルを「解消チャンネル」とも呼ぶ。なお図１１では図１０に示す処理と同一の処理には同一のステップ番号を付して説明を簡略化する。
【００４０】
図１１ではまずシグナル対処部１４はＳ３５１において、リトライカウンタ１７における解消チャンネルのカウンタ値がゼロであるか否かを判断する。シグナル対処部１４は、解消チャンネルのカウンタ値がゼロであると判断する場合は特段の処理が必要ないので図１１により動作が表されるプログラムを終了する。シグナル対処部１４は、解消チャンネルのカウンタ値がゼロではないと判断する場合はＳ３５２に進む。Ｓ３５２ではシグナル対処部１４は、ルーティングテーブル１６を参照して送信対象ＩＤを特定する。すなわちシグナル対処部１４は、ルーティングテーブル１６において解消チャンネルに対応するリトライｂｉｔが「１」になっているＩＤのうち、最も優先度の高いＩＤを特定する。たとえばルーティングテーブル１６が図４に示すものであり、解消チャンネルが「３」の場合に、解消チャンネルに対応するリトライｂｉｔが「１」になっているＩＤは「１０」と「２０」である。このうち優先度が高い方の「１０」が本ステップにおいて特定される。この特定したフレームを図１１の説明において「対象フレーム」と呼ぶ。
【００４１】
続くＳ３３３ではシグナル対処部１４は対象フレームのプロトコル変換を行い、続くＳ３３６において対象フレームを送信キュー２１に送信する。続くＳ３３７ではシグナル対処部１４は、対象フレームを正常に送信キュー２１に送信できたか否かを判断する。シグナル対処部１４は、正常に送信できたと判断する場合はＳ３３８に進み、正常に送信できなかったと判断する場合はＳ３５７に進む。Ｓ３３８ではシグナル対処部１４は、ＭＰＦＯバッファ１１から対象フレームを削除する。続くＳ３５５ではシグナル対処部１４は、リトライカウンタ１７における解消チャンネルの値をデクリメント、すなわち「１」だけ減少させる。なおリトライカウンタ１７の値はゼロ以上の整数の値をとるので、本ステップの実行後も必ずしもゼロにはならない。続くＳ３５６ではシグナル対処部１４は、ルーティングテーブル１６の該当するリトライｂｉｔを「１」から「０」に書き換えて図１１により動作が表されるプログラムを終了する。Ｓ３３７において否定判定されると実行されるＳ３５７ではシグナル対処部１４は、対象フレームをＭＰＦＯバッファ１１に戻して図１１により動作が表されるプログラムを終了する。
【００４２】
上述した第１の実施の形態によれば、次の作用効果が得られる。
【００４３】
（１）制御装置１は、複数のネットワークと接続可能であり転送元ネットワークから転送先ネットワークにフレームを転送する。制御装置１は、フレームの転送を制御するルーティング制御部１０と、複数のネットワークのそれぞれに対応して備えられ、当該ネットワークからフレームを受信してルーティング制御部１０に入力すると共に、当該ネットワークを転送先としてルーティング制御部１０から出力されたフレームを格納する送信キュー２１を備え、送信キュー２１に格納されたフレームを当該ネットワークに送信する複数のコントローラ２０と、を備える。ルーティング制御部１０は、入力されたフレームのうち指定されたフレームを再送対象フレームとして格納するＭＰＦＯバッファ１１と、入力されたフレームのうち再送対象フレームを除くフレームを転送先のネットワークに対応するコントローラ２０の送信キュー２１に出力する（図１０、Ｓ３３６）と共に、転送先のネットワークに対応するコントローラ２０が送信キュー２１にこれ以上のフレームを格納できないフル状態である場合には（Ｓ３３５：ＮＯまたはＳ３３７：ＮＯ）、入力されたフレームを再送対象フレームに指定してバッファに格納する（Ｓ３４０）通常送信部１３と、複数のコントローラ２０のいずれかからフル状態が解消したことを示す解消シグナルを受信すると、解消シグナルを送信したコントローラ２０に対応するネットワークを転送先とする再送対象フレームを、解消シグナルを送信したコントローラ２０の送信キュー２１に出力する（図１１、Ｓ３３６）シグナル対処部１４とを備える。コントローラ２０は、フル状態が解消すると解消シグナルをシグナル対処部１４に送信（図８、Ｓ３１５）する。
【００４４】
制御装置１は、通常送信部１３によるフレームの送信キュー２１への送信に失敗するとそのフレームを再送対象フレームとし、再送信対象フレームを除くフレームを転送する。そのため再送信対象フレームが発生しても、制御装置１は待ち時間の少ないフレームの転送が可能である。そしてルーティング制御部１０はコントローラ２０から解消シグナルを受信すると、再送対象フレームを送信キュー２１に送信する。そのため制御装置１は、転送先のネットワークが混雑していて送信キュー２１に新たなフレームを送信できない場合に他のフレームを転送することができ、さらに解消シグナルの受信により再送対象フレームを送信できる。すなわち制御装置１は、再送対象フレームも含めて待ち時間の少ないフレームの転送が可能である。
【００４５】
（２）制御装置１は、複数のネットワークごとの再送対象フレームの識別子の数を示すリトライカウンタ１７と、フレームの識別子、すなわちＣＡＮ−ＩＤや送信先ＩＰアドレスごとの１または複数の転送先ネットワーク、およびフレームの識別子ごとの再送対象フレームの有無を示すルーティングテーブル１６を備える。通常送信部１３はリトライカウンタ１７を参照して、転送先のネットワークに対応するコントローラ２０がフル状態であるか否かを判断する（図１０、Ｓ３３５）。
【００４６】
すなわちルーティング制御部１０は、リトライカウンタ１７を参照して送信先チャンネルのリトライカウンタ１７の値がゼロでない場合は、すでに送信先チャンネルのコントローラ２０では送信キュー２１がフル状態であると判断して、そのコントローラ２０の送信キュー２１にフレームを送信しない。したがってコントローラ２０の負荷を軽減することができる。仮にルーティング制御部１０がリトライカウンタ１７の状態に関わらず常に送信キュー２１にフレームを送信すると、コントローラ２０は送信キュー２１への受け入れ判断、すなわち内部受信処理の負荷が増大してしまい、フレームの送信に余分な時間を要する。またルーティング制御部１０は、ルーティングテーブル１６の全ＩＤのリトライｂｉｔではなくリトライカウンタ１７を参照するので、あるチャンネルにおいて再送対象のフレームが存在するか否かを迅速に判断できる。
【００４７】
（３）制御装置１は、転送を行う前に同一の識別子を有するフレームを受信すると、再送対象フレームであるか否かを示す情報を除いて新たに受信したフレームで従前に受信したフレームを上書きする（図９のＳ３２２：ＹＥＳ，Ｓ３２３）ＭＯＦＯ管理部１２を備える。そのため制御装置１は、同一の識別子について最新のフレームのみを転送することができる。
【００４８】
（４）コントローラ２０が外部から受信するフレームには転送の優先度を示す優先度情報、すなわちＩＤが含まれる。通常送信部１３およびシグナル対処部１４は、コントローラ２０に送信可能なフレームのうち最も優先度が高いフレームをコントローラ２０に送信する。そのため制御装置１は、優先度が高いフレームを優先的に転送することができる。
【００４９】
（５）制御装置１は、転送先のネットワークに応じて受信したフレームを加工するプロトコル変換部１９を備える。そのため制御装置１は、通信プロトコルが異なるネットワーク同士のフレームの転送を行うことができる。
【００５０】
（変形例１）
上述した第１の実施の形態では、ＭＰＦＯバッファ１１に格納されるフレームごとに再送対象フラグを付加し、そのフラグの値により再送対象フレームであるか否かを判断した。しかし再送対象であるか否かを示す情報の管理はこれに限定されず、様々な手法を用いることができる。たとえば、再送対象フレームを管理するテーブルを設けてもよい。
【００５１】
図１２は、再送対象フレームを管理する再送管理テーブル１８の一例を示す図である。再送管理テーブル１８は、フレームＩＤごとに再送対象であるか否かを示す情報、たとえば「ＹＥＳ」または「ＮＯ」が格納される。図１２に示す例では、フレームＩＤ「１０」のみが再送対象であることが示されている。再送管理テーブル１８は、図１０のＳ３４０における処理で「ＹＥＳ」が書き込まれ、図１１のＳ３３８における処理で「ＮＯ」が書き込まれる。
【００５２】
（変形例２）
ルーティング制御部１０は、受信から所定時間以上経過した未送信のフレームを削除するバッファ整理部を備えてもよい。図１３は、バッファ整理部の動作を示すフローチャートである。バッファ整理部は、所定時間ごと、たとえば１００ｍｓごとに図１３により動作があらわされるプログラムを実行する。
【００５３】
図１３ではまずバッファ整理部は、Ｓ３６１において、受信から所定時間以上経過したフレームがＭＰＦＯバッファ１１に格納されているか否かを判断する。バッファ整理部は、受信から所定時間以上経過したフレームがＭＰＦＯバッファ１１に格納されていると判断する場合はＳ３６２に進み、受信から所定時間以上経過したフレームはＭＰＦＯバッファ１１に存在しないと判断する場合は図１３により動作が表されるプログラムを終了する。Ｓ３６２ではバッファ整理部は、該当するフレーム、すなわち受信から所定時間以上経過したフレームをＭＰＦＯバッファ１１から削除して図１３により動作が表されるプログラムを終了する。ただしＳ３６２では、再送待ちフラグもあわせて削除する。Ｓ３６１における所定時間は任意の時間を設定することができ、たとえばアプリケーションにより規定される通信の最大遅延時間を設定してもよい。
【００５４】
本変形例によれば、次の作用効果が得られる。
（６）制御装置１は、受信から所定時間以内に転送されないフレームを破棄するバッファ整理部を備える。そのため制御装置１は、古い情報を有するフレームを転送することなく破棄することができる。
【００５５】
（変形例３）
上述した実施の形態では、複数のＩＤが同一のネットワークに転送される場合があった。しかしそれぞれのＩＤが異なるネットワークに転送されてもよい。この場合は、リトライカウンタ１７の値がルーティングテーブル１６におけるリトライｂｉｔの値をそのまま表すので、ルーティングテーブル１６はリトライｂｉｔの列を備えなくてもよい。
【００５６】
本変形例によれば、次の作用効果が得られる。
（７）制御装置１は、転送先のネットワークごとの再送対象フレームの存在を示すリトライカウンタ１７を備える。通常送信部１３はリトライカウンタ１７を参照して、転送先のネットワークに対応するコントローラ２０がフル状態であるか否かを判断する。その結果、フレームの送信先のネットワークに送信対象フレームが存在しない場合に（図１０、Ｓ３３５：ＹＥＳ）、受信したフレームを送信キュー２１に送信し、フレームの送信先のネットワークに送信対象フレームが存在する場合は（図１０、Ｓ３３５：ＮＯ）、受信したフレームを送信キュー２１に送信しない。そのため本変形例では、ルーティングテーブル１６はリトライｂｉｔの列を備えなくてもよい。
【００５７】
（変形例４）
上述した実施の形態では、プロトコル変換部１９はルーティング制御部１０の一部であった。しかしプロトコル変換部１９は、ルーティング制御部１０とは独立して存在してもよい。この場合にプロトコル変換部１９は、ハードウエア、たとえばＡＳＩＣにより実現されてもよいし、ソフトウエアにより実現されてもよい。
【００５８】
―第２の実施の形態―
図１４〜図１５を参照して、制御装置の第２の実施の形態を説明する。以下の説明では、第１の実施の形態と同じ構成要素には同じ符号を付して相違点を主に説明する。特に説明しない点については、第１の実施の形態と同じである。本実施の形態では、主に、制御装置１がリトライカウンタ１７を備えない点で、第１の実施の形態と異なる。
【００５９】
（構成）
第２の実施の形態における制御装置１Ａのハードウエア構成は、第１の実施の形態における制御装置１と同様なので説明を省略する。
【００６０】
図１４は、第２の実施の形態における制御装置１Ａの機能構成を示す機能ブロック図である。第１の実施の形態における制御装置１との相違点は、リトライカウンタ１７を備えない点である。
【００６１】
図１５は、第２の実施の形態における通常送信部１３の処理を表すフローチャートである。動作の開始からＳ３３４までの処理は第１の実施の形態と同様なので説明を省略する。Ｓ３３４の次に通常送信部１３はＳ３３４Ａにおいて、ルーティングテーブル１６の全ＩＤにおける送信先チャンネルのリトライｂｉｔを参照する。たとえば送信先チャンネルがチャンネル３の場合は、全てのＩＤにおけるリトライｂｉｔの下から３ビット目を参照する。続くＳ３３５Ａでは通常送信部１３は、参照した全てのリトライｂｉｔがゼロであったか否かを判断する。たとえば前述の例では全てのＩＤにおけるリトライｂｉｔの下から３ビット目がゼロであったか否かを判断する。通常送信部１３は、参照した全てのリトライｂｉｔがゼロであると判断する場合はＳ３３６に進み、参照したリトライｂｉｔのうち１つでもゼロではないと判断する場合はＳ３４０に進む。Ｓ３３６およびＳ３４０以下の処理は第１の実施の形態と同様なので説明を省略する。
【００６２】
上述した第２の実施の形態によれば、次の作用効果が得られる。
（８）制御装置１Ａは、フレームの識別子ごとに、それぞれのネットワークに対する再送対象フレームの有無を示すルーティングテーブル１６を備える。通常送信部１３は、ルーティングテーブル１６を参照して、転送先のネットワークに対応するコントローラ２０がフル状態であるか否かを判断する（図１５、Ｓ３３４Ａ、Ｓ３３５Ａ）。その結果、転送先のネットワークについていずれのフレームの識別子においても再送対象フレームが存在しない場合に（図１５、Ｓ３３５Ａ：ＹＥＳ）受信したフレームを送信キューに送信し、転送先のネットワークについていずれかのフレームの識別子において再送対象フレームが存在する場合は（図１５、Ｓ３３５Ａ：ＮＯ）受信したフレームを送信キューに送信しない。そのため制御装置１Ａは、リトライカウンタ１７を省略することができる。
【００６３】
プログラムは不図示のＲＯＭに格納されるとしたが、プログラムはフラッシュメモリ５に格納されていてもよい。また、制御装置１が不図示の入出力インタフェースを備え、必要なときに入出力インタフェースと制御装置１が利用可能な媒体を介して、他の装置からプログラムが読み込まれてもよい。ここで媒体とは、例えば入出力インタフェースに着脱可能な記憶媒体、または通信媒体、すなわち有線、無線、光などのネットワーク、または当該ネットワークを伝搬する搬送波やディジタル信号、を指す。また、プログラムにより実現される機能の一部または全部がハードウエア回路やＦＰＧＡにより実現されてもよい。
【００６４】
上述した各実施の形態および変形例は、それぞれ組み合わせてもよい。上記では、種々の実施の形態および変形例を説明したが、本発明はこれらの内容に限定されるものではない。本発明の技術的思想の範囲内で考えられるその他の態様も本発明の範囲内に含まれる。
【符号の説明】
【００６５】
１…制御装置
１０…ルーティング制御部
１１…バッファ
１２…管理部
１３…通常送信部
１４…シグナル対処部
１５…優先度ルール
１６…ルーティングテーブル
１７…リトライカウンタ
１８…再送管理テーブル
１９…プロトコル変換部
２０…コントローラ
２１…送信キュー
【図１】
2019026613.tif 000003
【図２】
2019026613.tif 000004
【図３】
2019026613.tif 000005
【図４】
2019026613.tif 000006
【図５】
2019026613.tif 000007
【図６】
2019026613.tif 000008
【図７】
2019026613.tif 000009
【図８】
2019026613.tif 000010
【図９】
2019026613.tif 000011
【図１０】
2019026613.tif 000012
【図１１】
2019026613.tif 000013
【図１２】
2019026613.tif 000014
【図１３】
2019026613.tif 000015
【図１４】
2019026613.tif 000016
【図１５】
2019026613.tif 000017
【国際調査報告】
2019026613.tif 000018
2019026613.tif 000019
2019026613.tif 000020
2019026613.tif 000021