(57)【要約】      （修正有）【課題】ゲートウェイ装置において、低優先度のデータフレームの送信完了を待って高優先度のデータフレームの送信が大幅に遅延してしまうのを回避しつつ処理負荷を低減する。【解決手段】より短い送信周期のデータフレームにより高い優先度の識別子が付されており、送信周期に対応付けられた送信バッファ１７０〜１７４と、各送信バッファに対応付けられた一以上の送信ＭＢ１１６〜１２６と、送信ＭＢに格納されたデータフレームをその識別子が表す優先度順に送信する送信機１１２と、処理ユニット１９２と、を備え、処理ユニットは、受信したデータフレームの送信周期をその識別子から特定して、当該データフレームを当該送信周期に対応付けられた送信バッファに格納し、送信待ちのデータフレームが格納されていない送信ＭＢがあるときは、当該送信ＭＢに対応付けられた送信バッファからデータフレームを読み出して当該送信ＭＢに格納する。【選択図】図２
2014204160.tif 000002
【特許請求の範囲】
【請求項１】
複数の電子制御装置が接続される複数のネットワークを相互に接続するように介在し、一のネットワークに接続される前記電子制御装置から複数の異なる送信周期でそれぞれ送信されるデータフレームを、当該データフレームに含まれる識別子に応じた順序で他のネットワークに転送するゲートウェイ装置において、
前記他のネットワークへ送信すべきデータフレームをそれぞれ格納する複数の送信メッセージボックスと、
当該各送信メッセージボックスに格納されたデータフレームを、当該データフレームに含まれた識別子が表す優先度の順に、順次、前記他のネットワークに送信する送信機と、
受信した前記データフレームを、それぞれ所定の数だけ送信待ちデータとして格納することのできる複数の送信バッファと、
前記データフレームに含まれる識別子に基づいて、前記送信バッファへの前記データフレームの書込み及び読み出し、並びに前記送信メッセージボックスへの前記データフレームの書込みを行う処理ユニットと、
を備え
前記データフレームに含まれる前記識別子は、当該データフレームの前記送信周期に応じて、当該送信周期が短いほどより高い優先度が与えられるように設定されており、
前記各送信バッファは、それぞれ前記各送信周期に対応付けられていると共に、それぞれ一以上の送信メッセージボックスに対応付けられており、
前記処理ユニットは、
一のネットワークから受信した前記データフレームを、当該データフレームに含まれる前記識別子に基づき、当該識別子に応じた送信周期に対応付けられた前記送信バッファに格納し、
送信待ちのデータフレームが格納されていない前記送信メッセージボックスがあるときは、当該送信メッセージボックスに対応付けられた送信バッファからデータフレームを読み出して、当該読み出したデータフレームを当該送信メッセージボックスに格納する、
ゲートウェイ装置。
【請求項２】
前記送信バッファは、
周期が所定時間未満である一の前記送信周期のみがそれぞれ対応付けられた一以上の第１送信バッファと、
周期が所定時間以上である複数の前記送信周期が対応付けられた一の第２送信バッファとから成る、
請求項１に記載のゲートウェイ装置。
【請求項３】
前記第１の送信バッファには、それぞれ、一以上の前記送信メッセージボックスが対応付けられており、
前記第２の送信バッファには、一の前記送信メッセージボックスが対応付けられている、
請求項２に記載のゲートウェイ装置。
【請求項４】
前記データフレームに含まれる前記識別子は、前記送信周期が同一である複数のデータフレームに対し、当該データフレームの送信元である前記電子制御装置の優先度に応じて異なる優先度が与えられるように設定されている、
請求項１ないし３のいずれか一項に記載のゲートウェイ装置。
【請求項５】
前記処理ユニットは、
前記送信バッファに格納された前記各データフレームに含まれる前記識別子に基づき、前記識別子が表す優先度の順に、前記送信バッファから前記各データフレームを順次読み出して、当該読み出したデータフレームを、当該送信バッファに対応付けられた前記送信メッセージボックスに格納する、
請求項４に記載のゲートウェイ装置。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、複数のＥＣＵ（電子制御装置、Electronic Control Unit）が接続された複数のネットワーク相互間の通信接続を中継するゲートウェイ装置に関する。
【背景技術】
【０００２】
車両に求められる機動性や操作性等の高度化に伴い、現在ではエンジン、トランスミッション、パワーステアリング等の各種装置はＥＣＵにより電子制御されており、かつ、車両の更なる高機能化に向けて電子制御を必要とする装置の範囲は拡大しつつある。
【０００３】
このため、車両には様々な装置を制御する多くのＥＣＵが搭載されており、これらのＥＣＵは、ネットワークを介して互いに通信可能に接続されて、全体として統合された車両制御を行っている。
【０００４】
通常、ＥＣＵはその機能分類ごとにグルーピングされ、グループ毎にそれぞれ一つのネットワークが構築されて同一グループ内でのＥＣＵ間の通信が確立されると共に、ネットワーク間の通信接続を中継するゲートウェイ装置を介して、異なるグループに属するＥＣＵ間においても通信が行われる。
【０００５】
このようなＥＣＵ間のデータ通信に関し、現在最も普及している通信規格の一つはＣＡＮ（Controller Area Network）である。ＣＡＮ通信では、各ＥＣＵは、データフレームと称される最大ビット長が規定されたビット列を単位としてデータを送出する。また、ネットワーク（物理的には、当該ネットワークを構成する情報通信路であるバス）に対し異なる複数のＥＣＵが同時にデータを送出して通信が競合してしまうのを防止するため、データフレームの種類毎にその優先度を示す識別子（ＩＤ）が割り当てられ、各データフレームには割り当てられたＩＤが当該データフレームの一部として含まれている。
【０００６】
ここで、データフレームに与えるＩＤの割り当て規則は設計者が任意に決定でき、例えば、当該データフレームに含まれるデータの重要度や、当該データを出力する装置の重要度に応じて、優先度を決定してＩＤを割り当てることができる。なお、ＩＤ番号（ＩＤデータのビット列が示す値）は、通常、小さいほど高い優先度を表すものとして規定される。
【０００７】
データフレームは、その先頭から順に、当該フレームの開始を表すＳＯＦフィールド、上記ＩＤなどを格納する調停（アービトレーション）フィールド、データ長などを格納する制御フィールド、送信すべきデータを格納するデータフィールド、エラーチェック用のＣＲＣフィールド、他のＥＣＵからの受信応答を受信するためバスを特定の状態に置くためのＡＣＫフィールド、およびフレームの終了を表すＥＯＦフィールドを含んでいる。
【０００８】
ＥＣＵは、ネットワークを構成するバスに対しデータフレームを送信する場合、当該データフレームのデータを、その先頭からバス上に送出する。これにより、データフレームの開始を示すＳＯＦに続いて、調停フィールドに含まれたＩＤデータがバス上に送出される。一つのネットワークに対し複数のＥＣＵが同時にＩＤデータを送出する場合があるため、各ＥＣＵは、自分よりも高い優先度を示すＩＤデータがネットワーク上に送出されているか否かを検知し、送出されているときはデータフレームの送出を停止する。これにより、ネットワーク上におけるＥＣＵ間の通信競合を防止するための通信調停（アービットレーション）が行われる。
【０００９】
すなわち、同時にＩＤデータを送出したＥＣＵのうち、最も高い優先度を持つＩＤデータを送出したＥＣＵだけがそのデータフレームの送信を継続し、他のＥＣＵとの競合を発生させることなく当該データフレームの送信を完了することができる。
【００１０】
複数のネットワークを接続するゲートウェイ装置も、ＣＡＮ通信規則に則り、一のネットワークからデータフレームを受信して、当該受信したデータフレームを他のネットワークへ送出する。したがって、例えば他のネットワークにおいて他のＥＣＵから優先度のより高いデータフレームの送信が行われている場合には、ゲートウェイ装置は当該他のネットワークへデータフレームを送信することができず、一のネットワークから受信したデータフレームを蓄積して、他のネットワークにおける優先度の高いデータフレームの送信が完了するのを待機することとなる。
【００１１】
この場合、一のネットワークから受信したデータフレームを、受信した順に他のネットワークへ送信しようとすると、先に受信された優先度の低いデータフレームの存在により後続の優先度の高いデータフレームの送信が遅延するという問題が発生する。
【００１２】
この問題を解決するため、従来、一のネットワークから受信したデータフレームを他のネットワークへ送信するまで格納しておく送信キューを記憶装置内に設け、送信キュー内に複数のデータフレームが蓄積される場合には、新しいデータフレームを送信キューに格納する毎に、これらデータフレームを優先度の高い順（すなわち、ＩＤ番号の小さい順）に並べ替える、車載中継装置（車載ゲートウェイ装置）が知られている（特許文献１参照）。このゲートウェイ装置では、上記並べ替えを行った後に送信キュー内の先頭のデータフレームから順に送信を行うことで、一のネットワークから受信され蓄積されたデータフレームを、受信順ではなく優先度順に、他のネットワークに送信することができる。
【００１３】
しかしながら、上記従来のゲートウェイ装置では、一のネットワークから受信したデータフレームを送信キューに格納する際に送信キュー内の全てのデータフレームを対象として優先度順にソーティングを行う必要があることから、ゲートウェイ装置内の処理負荷が増大する。
【００１４】
また、ＣＡＮ規格に従って通信を行う装置では、通常、ＣＡＮインタフェースモジュールと称されるＣＡＮ規格通信を行うための汎用モジュールが用いられ、当該モジュール内に設けられた複数の送信メッセージボックスと称される記憶領域にデータフレームを格納すると、当該メッセージボックス内のデータフレームが優先度順に送信される。
【００１５】
この場合、ＣＡＮインタフェースモジュール内に設けられる送信メッセージボックスの数が限られていることから、十分な容量の送信キューを確保するためには、ゲートウェイ装置が備える記憶装置内に、受信したデータフレームを格納するためのバッファ（データを一時保存する記憶領域又は記憶装置）を設ける必要がある。すなわち、上記バッファと、ＣＡＮインタフェースモジュール内の送信メッセージボックスとにより、上記送信キューが実現される。
【００１６】
このように、異なる記憶装置（バッファと送信メッセージボックス）を用いて一つの送信キューを構成した場合、当該送信キュー内において優先度順にデータフレームを並べ替える際に、多くの処理が必要となる。例えば、送信メッセージボックス内に現在格納されているいずれかのデータフレームよりも高い優先度のデータフレームが新たに受信された場合には、送信メッセージボックスに格納されているより低い優先度のデータフレームを、上記新たに受信されたデータフレームにより置き換えて格納する必要がある。
【００１７】
この場合、ゲートウェイ装置は、例えば、１）ＣＡＮインタフェースモジュールに対し、低優先度のデータフレームを格納している送信メッセージボックスについてのデータ送信の開始を禁止し、２）当該低優先度のデータフレームを、送信メッセージボックスからバッファへ退避させ、３）当該低優先度のデータフレームが格納されていた送信メッセージボックスに、上記新たに受信されたデータフレームを格納し、４）ＣＡＮモジュールに対し当該送信メッセージボックスについてのデータ送信の開始を許可する、という多くの処理ステップを実行しなければならないこととなる。その結果、新たに受信されたデータフレームを送信メッセージボックスに格納するまでに相当の時間を要してしまうほか、ゲートウェイ装置における制御が煩雑となって動作負荷も高くなる。
【先行技術文献】
【特許文献】
【００１８】
【特許文献１】特開２００８−１７２３５３号公報
【発明の概要】
【発明が解決しようとする課題】
【００１９】
上記の背景より、低優先度のデータフレームの送信完了を待って高優先度のデータフレームの送信が大幅に遅延してしまうのを回避しつつ処理負荷を低減することのできるゲートウェイ装置の実現が望まれている。
【課題を解決するための手段】
【００２０】
本発明は、複数の電子制御装置が接続される複数のネットワークを相互に接続するように介在し、一のネットワークに接続される前記電子制御装置から複数の異なる送信周期でそれぞれ送信されるデータフレームを、当該データフレームに含まれる識別子に応じた順序で他のネットワークに転送するゲートウェイ装置である。本ゲートウェイ装置は、前記他のネットワークへ送信すべきデータフレームをそれぞれ格納する複数の送信メッセージボックスと、当該各送信メッセージボックスに格納されたデータフレームを、当該データフレームに含まれた識別子が表す優先度の順に、順次、前記他のネットワークに送信する送信機と、受信した前記データフレームを、それぞれ所定の数だけ送信待ちデータとして格納することのできる複数の送信バッファと、前記データフレームに含まれる識別子に基づいて、前記送信バッファへの前記データフレームの書込み及び読み出し、並びに前記送信メッセージボックスへの前記データフレームの書込みを行う処理ユニットと、を備える。そして、前記データフレームに含まれる前記識別子は、当該データフレームの前記送信周期に応じて、当該送信周期が短いほどより高い優先度が与えられるように設定されており、前記各送信バッファは、それぞれ前記各送信周期に対応付けられていると共に、それぞれ一以上の送信メッセージボックスに対応付けられている。また、前記処理ユニットは、一のネットワークから受信した前記データフレームを、当該データフレームに含まれる前記識別子に基づき、当該識別子に応じた送信周期に対応付けられた前記送信バッファに格納し、送信待ちのデータフレームが格納されていない前記送信メッセージボックスがあるときは、当該送信メッセージボックスに対応付けられた送信バッファからデータフレームを読み出して、当該読み出したデータフレームを当該送信メッセージボックスに格納する。
本発明の一の態様によると、前記送信バッファは、周期が所定時間未満である一の前記送信周期のみがそれぞれ対応付けられた一以上の第１送信バッファと、周期が所定時間以上である複数の前記送信周期が対応付けられた一の第２送信バッファとから成る。
本発明の他の態様によると、前記第１の送信バッファには、それぞれ、一以上の前記送信メッセージボックスが対応付けられており、前記第２の送信バッファには、一の前記送信メッセージボックスが対応付けられている。
本発明の他の態様によると、前記データフレームに含まれる前記識別子は、前記送信周期が同一である複数のデータフレームに対し、当該データフレームの送信元である前記電子制御装置の優先度に応じて異なる優先度が与えられるように設定されている。
本発明の他の態様によると、前記処理ユニットは、前記送信バッファに格納された前記各データフレームに含まれる前記識別子に基づき、前記識別子が表す優先度の順に、前記送信バッファから前記各データフレームを順次読み出して、当該読み出したデータフレームを、当該送信バッファに対応付けられた前記送信メッセージボックスに格納する。
【００２１】
本発明によれば、ゲートウェイ装置において、低優先度のデータフレームの送信完了を待って高優先度のデータフレームの送信が大幅に遅延してしまうのを回避しつつ処理負荷を低減することができる。
【図面の簡単な説明】
【００２２】
【図１】本発明の一実施形態に係るゲートウェイ装置の構成を示す図である。
【図２】本実施形態に係るゲートウェイ装置の中継ユニットの構成を示す図である。
【図３】本実施形態における、送信周期に基づく識別子（ＩＤ）の割り当ての一例を示す図である。
【図４】本実施形態に係るゲートウェイ装置で用いられる送信周期情報の一例を示す図である。
【図５】図３に示すデータフレームが受信される場合の、本実施形態に係るゲートウェイ装置の動作を説明するための説明図である。
【図６】本実施形態に係るゲートウェイ装置の、受信処理の動作手順を示すフロー図である。
【図７】本実施形態に係るゲートウェイ装置の、送信処理の動作手順を示すフロー図である。
【図８】本実施形態に係るゲートウェイ装置の、ルーティング処理の動作手順を示すフロー図である。
【図９】本実施形態に係るゲートウェイ装置の、データフレーム振分処理の動作手順を示すフロー図である。
【図１０】本実施形態に係るゲートウェイ装置の、データフレーム出力処理の動作手順を示すフロー図である。
【図１１】本実施形態に係るゲートウェイ装置の変形例を構成する中継ユニットの構成を示す図である。
【発明を実施するための形態】
【００２３】
以下、図面を参照して、本発明の実施の形態を説明する。
本ゲートウェイ装置は、複数の電子制御装置（ＥＣＵ）が接続される複数のネットワークを相互に接続するように介在し、一のネットワークに接続される電子制御装置から複数の異なる送信周期でそれぞれ送信されるデータフレームを、当該データフレームに含まれる識別子（ＩＤ）に応じた順序で他のネットワークに転送（又は送信）するものである。
【００２４】
図１は、本発明の一実施形態に係るゲートウェイ装置の構成を示す図である。図１では、本ゲートウェイ装置は車内ネットワークに接続されている。
図示の例では、本ゲートウェイ装置１０にはネットワークＮ１〜Ｎ４をそれぞれ構成するバスＢ１〜Ｂ４が接続されており、これにより、バスＢ１、Ｂ２とバスＢ３、Ｂ４との間が、本ゲートウェイ装置１０を介して互いに通信可能に接続される。バスＢ１〜Ｂ４には、複数の電子制御装置（ＥＣＵ）１ａ〜１ｇが接続されており、これらのＥＣＵ１ａ〜１ｇは、ゲートウェイ装置１０を介して、所定の通信プロトコルに従って互いに通信することができる。本実施形態では、通信プロトコルとして、周知のＣＡＮ（controller area network）プロトコルを用いる。
【００２５】
ＥＣＵ１ａ〜１ｇは、例えばエンジン制御用のＥＣＵ、ドア制御用のＥＣＵ、エアバック制御用のＥＣＵ、ナビゲーションシステム用のＥＣＵであり、各ＥＣＵは、例えば中央処理装置（ＣＰＵ、Central Processing Unit）およびメモリを備えるコンピュータとして実現される。
【００２６】
本実施形態では、各データフレームの優先度が、当該データフレームの送信周期に応じて定められており、当該送信周期が短いほど高い優先度が割り当てられ、従ってより小さなＩＤ番号が割り当てられる。また、送信周期が同じで種類の異なるデータフレームが複数存在する場合には、これら複数のデータフレームには、少なくとも当該送信周期よりも長い送信周期を持つデータフレームよりも高い優先度である範囲内において、異なる優先度のＩＤ番号を割り当てることができる。さらに、当該異なる優先度のＩＤは、当該データフレームの送信元である電子制御装置（ＥＣＵ）の優先度や重要度に応じて割り当てられるものとすることができる。
【００２７】
ゲートウェイ装置１０（図１）は、バスＢ１及びＢ２からデータフレームを受信してバスＢ３又はＢ４にデータフレームを送信する中継ユニット１２と、バスＢ３及びＢ４からデータフレームを受信してバスＢ１又はＢ２にデータフレームを送信する中継ユニット１４と、を有している。
【００２８】
中継ユニット１２と１４とは、データフレームを送受信するバスの組み合わせのみが異なり、その構成及び動作（作用）は同様である。
このため、説明を簡潔にして理解を容易にすべく、以下では、中継ユニット１２を例にとり、ゲートウェイ装置１０のより詳細な構成及び動作を説明する。
【００２９】
図２は、ゲートウェイ装置１０の中継ユニット１２の構成を示す図である。
中継ユニット１２は、ＣＡＮモジュール１００、１０２と、ルート検索ユニット１０４と、送信制御ユニット１０６とを備える。ＣＡＮモジュール１００、１０２は、ＣＡＮプロトコルに従ってデータフレームを送受信するよう構成されており、例えば上述した汎用のＣＡＮインタフェースモジュールにより構成することができる。
【００３０】
ＣＡＮモジュール１００は、受信機１１０と、送信機１１２と、受信機１１０が受信したデータフレームを格納する記憶装置である受信ＭＢ（メッセージボックス、Massage Box）１１４と、送信機１１２から送信されるデータフレームを一時格納する記憶装置である６つの送信ＭＢ１１６、１１８、１２０、１２２、１２４、１２６を有する。ここで、受信ＭＢ１１４及び送信ＭＢ１１６〜１２６は、例えばＲＡＭ（Random Access Memory）により構成することができる。
【００３１】
同様に、ＣＡＮモジュール１０２は、受信機１３０と、送信機１３２と、受信機１３０が受信したデータフレームを格納する記憶装置である受信ＭＢ１３４と、送信機１３２から送信されるデータフレームを一時格納する記憶装置である６つの送信ＭＢ１３６、１３８、１４０、１４２、１４４、１４６を有する。ここで、受信ＭＢ１３４及び送信ＭＢ１３６〜１４６は、例えばＲＡＭにより構成することができる。
【００３２】
ＣＡＮモジュール１００及び１０２の受信機１１０及び１３０は、それぞれバスＢ１及びＢ２に接続されており、ＣＡＮモジュール１００及び１０２の送信機１１２及び１３２は、それぞれバスＢ３及びＢ４に接続されている。
【００３３】
ＣＡＮモジュール１００及び１０２は、それぞれ、バスＢ１及びＢ２から受信したデータフレームを受信ＭＢ１１４及び受信ＭＢ１３４に格納する。また、ＣＡＮモジュール１００及び１０２は、送信ＭＢ１１６〜１２６及び１３６〜１４６に一時的に格納されたデータフレームを、それぞれ優先度の高い順にバスＢ３及びＢ４に送信する。
【００３４】
ＣＡＮモジュール１００及び１０２における上記処理は、本実施形態ではハードウェアで実現されているものとする。なお、代替的に、ＣＡＮモジュール１００及び１０２がそれぞれＣＰＵ等のプロセッサを備えるものとし、当該各プロセッサが所定のソフトウェアプログラムをそれぞれ実行することにより上記処理が行われるものとしてもよい。
【００３５】
ルート検索ユニット１０４は、検索エンジン１５０、１５２と、ＲＡＭ等の記憶装置で構成されるレジスタ１５４、１５６と、フラッシュメモリ等で構成される不揮発性メモリ１５８、１６０と、を有している。
【００３６】
レジスタ１５４、１５６は、それぞれ、検索エンジン１５０、１５２から出力されるデータフレームを一時記憶する。
不揮発性メモリ１５８には、バスＢ１から受信されるデータフレームの転送ルート、すなわち、当該データフレームに含まれるＩＤに応じてバスＢ３又はＢ４のいずれのバスへ送信すべきかを示すルーティングマップ１６２が予め記憶されている。同様に、不揮発性メモリ１６０には、バスＢ２から受信されるデータフレームの転送ルート、すなわち、当該データフレームに含まれるＩＤに応じてバスＢ３又はＢ４のいずれのバスへ送信すべきか、を示すルーティングマップ１６４が予め記憶されている。
【００３７】
検索エンジン１５０及び１５２は、本実施形態では、汎用ロジックＩＣ（Integrated Circuit）や大規模集積回路（ＬＳＩ、Large scale Integration）、あるいはＡＳＩＣ（Application Specific Integrated Circuit）等のハードウェアにより構成されており、それぞれルーティングマップ１６２及び１６４を参照し、受信機１１０及び１３０により受信されたデータフレームの転送ルートを検索する。すなわち、当該受信されたデータフレームをバスＢ３又はＢ４のいずれに送信すべきかを特定する。
【００３８】
より詳細には、検索エンジン１５０は、ＣＡＮモジュール１００の受信機１１０によりバスＢ１からのデータフレームの受信が完了し当該受信されたデータフレームが受信ＭＢ１１４に格納されたことに応じて、当該受信ＭＢ１１４からデータフレームを読み出すと共にルーティングマップ１６２を参照し、当該データフレームのＩＤに基づいて当該データフレームを送信すべき転送先のバス（バスＢ３又はＢ４のいずれか）を特定する。このとき、検索エンジン１５０は、受信したデータフレームのＩＤに対応する転送先の情報がルーティングマップ１６２に含まれていないときは、当該データフレームを、転送すべきデータフレームではないものとして破棄する。
【００３９】
そして、検索エンジン１５０は、上記特定した転送先のバスがバスＢ３であれば、受信ＭＢ１１４から読み出した上記データフレームをレジスタ１５４に格納し、上記特定した転送先のバスがバスＢ４であれば当該データフレームをレジスタ１５６に格納する。
【００４０】
同様に、検索エンジン１５２は、ＣＡＮモジュール１０２の受信機１３０によりバスＢ２から受信されたデータフレームが受信ＭＢ１３４に格納されたことに応じて、当該データフレームを受信ＭＢ１３４から読み出すと共にルーティングマップ１６４を参照し、当該データフレームのＩＤに基づいて当該データフレームの転送先のバスを特定して、当該特定したバスに対応するレジスタ１５４又は１５６に、当該データフレームを格納する。また、検索エンジン１５２は、受信したデータフレームのＩＤに対応する転送先の情報がルーティングマップ１６４に含まれていないときは、当該データフレームを破棄する。
【００４１】
なお、検索エンジン１５０及び１５２は、上述したように本実施形態ではハードウェアにより構成されるものとしたが、代替的に、ＣＰＵ等のプロセッサとＲＡＭやＲＯＭ（Read Only Memory）等の記憶装置とを備えるコンピュータが、所定のソフトウェアプログラムを実行することにより実現されるものとすることもできる。
【００４２】
送信制御ユニット１０６は、バスＢ３へ送信すべきデータフレームを格納する３つの送信バッファ１７０〜１７４と、バスＢ４へ送信すべきデータフレームを格納する３つの送信バッファ１７６〜１８０と、不揮発性メモリ１９０と、処理ユニット１９２と、を有している。
【００４３】
各送信バッファ１７０〜１８０は、例えばＲＡＭにより構成される。送信バッファ１７０〜１８０は、それぞれ、所定数（例えば５個）のデータフレームを格納できるように当該所定数のデータフレーム格納領域を備えている。
【００４４】
不揮発性メモリ１９０は、例えばフラッシュメモリやＥＥＰＲＯＭ（Electrically Erasable Programmable Read-Only Memory）、あるいはハードディスク装置等により構成される。不揮発性メモリ１９０には、ＩＤ番号と当該ＩＤ番号を持つデータフレームの送信周期との対応情報である送信周期情報１９４が、予め記憶されている。
【００４５】
処理ユニット１９２は、ＣＰＵ等のプロセッサとＲＡＭやＲＯＭ等の記憶装置とを備えるコンピュータであり、上記プロセッサ（不図示）がソフトウェアプログラムを実行することにより、データフレームに含まれる識別子に基づいて、送信バッファ１７０〜１８０へのデータフレームの書込みや読み出しを行ったり、送信ＭＢ１１６〜１２６、１３６〜１４６へのデータフレームの書込み等を行う。
【００４６】
上述したように、本実施形態では、データフレームの優先度が当該データフレームの送信周期によって定められており、当該送信周期がより短いデータフレームにはより高い優先度（より小さいＩＤ番号）が割り当てられている。また、送信周期が同じで種類の異なるデータフレームが複数存在する場合には、少なくともより長い送信周期を持つデータフレームよりも高い優先度である範囲内において、それぞれ異なる優先度のＩＤが割り当てられている。不揮発性メモリ１９０に記憶されている送信周期情報１９４には、これらのＩＤと送信周期との対応関係の情報が含まれている。
【００４７】
送信バッファ１７０〜１７４、１７６〜１８０は、それぞれ各送信周期に対応付けられており、各送信バッファ１７０〜１８０には当該対応付けられた送信周期を持つデータフレームだけが格納される。
【００４８】
本実施形態では、例えば送信周期は１０ｍｓ、２０ｍｓ、及び３０ｍｓの３種類であり、送信バッファ１７０及び１７６が送信周期１０ｍｓに、送信バッファ１７２及び１７８が送信周期２０ｍｓに、送信バッファ１７４及び１８０が送信周期３０ｍｓに、それぞれ対応付けられている。
【００４９】
さらに、送信バッファ１７０〜１７４は、それぞれ、ＣＡＮモジュール１００に備える送信ＭＢ１１６〜１２６のいずれか一つ以上の送信ＭＢが対応付けられ、送信ＭＢ１１６〜１２６には、それぞれ、当該送信ＭＢに対応付けられた送信バッファに格納されているデータフレームのみが格納される。
【００５０】
同様に、送信バッファ１７６〜１８０は、それぞれ、ＣＡＮモジュール１０２に備える送信ＭＢ１３６〜１４６のいずれか一つ以上の送信ＭＢが対応付けられ、各送信ＭＢ１３６〜１４６には、それぞれ、当該送信ＭＢに対応付けられた送信バッファに格納されているデータフレームのみが格納される。
【００５１】
本実施形態では、例えば、送信周期１０ｍｓに対応付けられた送信バッファ１７０には送信ＭＢ１１６及び１１８が、送信周期２０ｍｓに対応付けられた送信バッファ１７２には送信ＭＢ１２０及び１２２が、送信周期３０ｍｓに対応付けられた送信バッファ１７４には送信ＭＢ１２４及び１２６が、それぞれ対応付けられている。また、同様に、送信周期１０ｍｓに対応付けられた送信バッファ１７６には送信ＭＢ１３６及び１３８が、送信周期２０ｍｓに対応付けられた送信バッファ１７８には送信ＭＢ１４０及び１４２が、送信周期３０ｍｓに対応付けられた送信バッファ１８０には送信ＭＢ１４４及び１４６が、それぞれ対応付けられている。
【００５２】
これらの、各送信周期と、送信バッファ１７０〜１８０と、送信ＭＢ１１６〜１２６、１３６〜１４６との対応付けは、予め定めて、例えば処理ユニット１９２のプロセッサ（不図示）が実行するソフトウェアプログラムの中で規定しておくことができる。また、代替的には、これらの対応付けに関する情報を不揮発性メモリ１９０に予め記憶させておき、処理ユニット１９２が、不揮発性メモリ１９０に記憶された当該対応付けに関する情報を参照しつつ、処理を行うものとすることができる。
【００５３】
送信制御ユニット１０６の処理ユニット１９２における処理は、以下のように行われる。
【００５４】
処理ユニット１９２は、レジスタ１５４にデータフレームが格納されると、当該データフレームをレジスタ１５４から読み出すと共に、不揮発性メモリ１９０が記憶する送信周期情報１９４を参照し、上記読み出したデータフレームに含まれるＩＤに基づいて、当該データフレームの送信周期を特定する。
【００５５】
そして、処理ユニット１９２は、レジスタ１５４から読み出したデータフレームを、送信バッファ１７０〜１７４のうち上記特定した送信周期に対応する一の送信バッファに格納する。例えば、上記特定された送信周期が１０ｍｓであれば当該データフレームを送信バッファ１７０に格納し、上記特定された送信周期が２０ｍｓ又は３０ｍｓであれば、当該データフレームを送信バッファ１７２又は１７４にそれぞれ格納する。
【００５６】
同様に、処理ユニット１９２は、レジスタ１５６にデータフレームが格納されると、当該データフレームをレジスタ１５６から読み出すと共に、不揮発性メモリ１９０が記憶する送信周期情報１９４を参照し、上記読み出したデータフレームに含まれるＩＤに基づいて、当該データフレームの送信周期を特定する。
【００５７】
そして、処理ユニット１９２は、レジスタ１５６から読み出したデータフレームを、送信バッファ１７０〜１７４のうち上記特定した送信周期に対応する一の送信バッファに格納する。例えば、上記特定された送信周期が１０ｍｓであれば当該データフレームを送信バッファ１７６に格納し、上記特定された送信周期が２０ｍｓ又は３０ｍｓであれば、当該データフレームを送信バッファ１７８又は１８０にそれぞれ格納する。
【００５８】
なお、レジスタ１５４及び１５６にデータフレームが格納されたか否かの情報は、ルート検索ユニット１０４が送信制御ユニット１０６に対し信号線（不図示）を介して通知するものとしてもよいし、ルート検索ユニット１０４内に上記情報を示すステータスレジスタ（不図示）を設けるものとし、送信制御ユニット１０６の処理ユニット１９２が所定の時間間隔で当該ステータスレジスタのデータを読み出して当該情報を得るものとしてもよい。また、あるいは、送信制御ユニット１０６の処理ユニット１９２が、所定の時間間隔で、レジスタ１５４及び１５６からデータフレームを読み出してレジスタ１５４及び１５６をリセット（例えばリセット値０に設定）するものとし、当該読み出したデータがリセット値でなければ、当該読み出したデータを新たに受信されたデータフレームとして処理するものとしてもよい。
【００５９】
さらに、処理ユニット１９２は、ＣＡＮモジュール１００及び１０２にそれぞれ備える送信ＭＢ１１６〜１２６及び１３６〜１４６の状態を監視し、送信ＭＢ１１６〜１２６、１３６〜１４６の中に送信待ちのデータフレームが格納されていない送信ＭＢがあるときは、送信バッファ１７０〜１８０のうち当該送信ＭＢに対応付けられた送信バッファからデータフレームを読み出して、当該読み出したデータフレームを当該送信ＭＢに格納する。その際、処理ユニット１９２は、当該送信バッファから優先度順にデータフレームを読み出して、当該読み出したデータフレームを上記送信ＭＢに格納するものとしてもよい。
【００６０】
上述したゲートウェイ装置１０では、送信周期のより短いデータフレームにより高い優先度のＩＤが割り当てられるため、ＣＡＮモジュール１００、１０２は、送信ＭＢ１１６〜１２６、１３６〜１４６に格納されたデータフレームを従来と同様に優先度順に送信するだけで、より短い送信周期を持つデータフレームを優先的に送信することとなる。
【００６１】
また、上述した構成を有するゲートウェイ装置１０は、データフレームに含まれるＩＤから当該データフレームの送信周期を特定し、送信バッファ１７０〜１８０のうち当該送信周期に対応付けられた送信バッファに格納する。また、本ゲートウェイ装置１０では、各送信バッファ１７０〜１８０に対しそれぞれ一つ以上（本実施形態では二つ）の送信ＭＢ（すなわち、送信ＭＢ１１６〜１２６、１３６〜１４６の内のいずれか一つ以上の送信ＭＢ）を予め対応付け、各送信バッファ１７０〜１８０に格納したデータフレームを、それぞれ当該送信バッファに対応付けられた送信ＭＢにのみ格納する。
【００６２】
これにより、本ゲートウェイ装置１０では、送信バッファ１７０〜１８０を介してＣＡＮモジュール１００、１０２の送信ＭＢ１１６〜１２６、１３６〜１４６も送信周期に対応付けられることとなり、各送信ＭＢ１１６〜１２６、１３６〜１４６は、例えば送信周期１０ｍｓ用、２０ｍｓ用、３０ｍｓ用として使い分けられることとなる。
【００６３】
このため、例えば送信周期の短い（従って、優先度の高い）データフレームが新たに受信された場合には、当該データフレームは、当該短い送信周期に対応付けられた送信バッファを介して当該短い送信周期用の送信ＭＢに格納され、より長い送信周期の（従って、より優先度の低い）データフレームが他の送信ＭＢに格納されていても、当該より長い送信周期のデータフレームの送信を待つことなく、速やかに送信されることとなる。
【００６４】
したがって、本ゲートウェイ装置１０においては、より高い優先度のデータフレームが受信されて送信バッファ内に格納されたとしても、従来のように送信バッファ内の当該優先度の高いデータフレームと送信ＭＢ内の優先度の低いデータフレームとの入れ替えを行う必要はなく、データフレームの転送に伴う処理負荷を低減することができる。
【００６５】
また、上述のように、より短い送信周期のデータフレームはより高い優先度を持ち、かつ送信ＭＢ１１６〜１２６、１３６〜１４６は送信周期毎に対応付けられて使い分けられるので、同一の送信周期を持つデータフレームは、異なるＩＤを持つものであっても、ＣＡＮモジュール１００、１０２が行う送信動作の観点からは実質的に同一の優先度を持つものとなる。その結果、一の送信周期を持つデータフレームが、その時点におけるＣＡＮモジュール１００又は１０２内において最も高い優先度を持つものとなって送信ＭＢから当該バス上へ送信されれば（例えば、送信周期１０ｍｓの一のデータフレームが送信ＭＢ１１６又は１１８からバスＢ３上へ送信されれば）、当該送信周期用に対応付けられた送信バッファ内（例えば、送信バッファ１７０内）のデータフレームは当該送信周期用の送信ＭＢ（例えば、送信ＭＢ１１６及び１１８）に次々に格納されて送信されることとなり、送信周期のより長いデータフレームの存在により送信が遅延してしまう問題は生じない。
【００６６】
すなわち、送信周期に応じて互いに対応付けられた送信バッファと送信ＭＢ（例えば、送信バッファ１７０と送信ＭＢ１１６および１１８）との間において当該送信ＭＢ内に最も高い優先度のデータフレームが格納されていなくても、他の送信ＭＢに格納された送信周期のより長いデータフレームの存在により送信が遅延してしまうことはない。したがって、本ゲートウェイ装置１０では、互いに対応付けられた送信バッファと送信ＭＢとの間でのデータフレームの入れ替えを行う必要はなく、データフレームの転送に伴う処理負荷を更に低減することができる。
【００６７】
次に、上述した送信制御ユニット１０６の動作を、具体的な例を挙げて説明する。
【００６８】
図３は、バスＢ１及びＢ２に接続されたＥＣＵ１ａ〜１ｃから送信されるデータフレームの、送信周期及びＩＤ（識別子）の割り当ての一例を示す図である。図示の例では、ＥＣＵ１ａ〜１ｃのそれぞれについて、送信周期が１０ｍｓ、２０ｍｓ、３０ｍｓの３種類のデータフレーム１〜９が送信されるものとしている。また、ＥＣＵ１ａ〜１ｃの重要度が、これらＥＣＵが制御する車内装置の重要度に応じて決定されており、ＥＣＵ１ａの重要度が最も高く、続いてＥＣＵ１ｂ、１ｃの順に重要度が下がるものとなっている。
【００６９】
そして、図３の例では、まず、送信周期が１０ｍｓであるデータフレーム１、４、７に対し、それぞれ固有のＩＤ番号として１１０、１２０、１３０が割り当てられ、次に、送信周期が２０ｍｓであるデータフレーム２、５、８に対し、それぞれ固有のＩＤ番号であって、送信周期１０ｍｓのデータフレーム１、４、７よりも数字の大きい（優先度の低い）ＩＤ番号として、２１０、２２０、２３０が割り当てられている。また、同様に、送信周期が３０ｍｓであるデータフレーム３、６、９に対し、それぞれ固有のＩＤ番号であって、送信周期２０ｍｓのデータフレーム２、５、８よりも数字の大きい（優先度の低い）ＩＤ番号として、３１０、３２０、３３０が割り当てられている。
【００７０】
図４は、図３に対応して予め定められる送信周期情報１９４の例である。図４の例では、図３に示す表の図示最も右側の２列の情報が、そのまま送信周期情報１９４として用いられている（ただし、左右の列は入れ替わっている）。この送信周期情報１９４は、送信制御ユニット１０６の不揮発性メモリ１９０に記憶される。
【００７１】
図５は、図３に示す各データフレームがバスＢ１及びＢ２を介して受信される場合の、送信制御ユニット１０６における具体的な動作を説明するための説明図である。なお、冗長な説明を避けて理解を容易にするため、図５には、バスＢ３を転送先とするデータフレームの処理ルートを構成する要素、すなわち、ルート検索ユニット１０４のレジスタ１５４と、送信制御ユニット１０６の送信バッファ１７０〜１７４と、ＣＡＮモジュール１００の送信ＭＢ１１６〜１２６及び送信機１１２のみを示している。
【００７２】
図５のレジスタ１５４を示す矩形枠内に示された「（ＩＤ：１１０）」との記載は、ＩＤが１１０であるデータフレームがレジスタ１５４に格納されていることを示している。当該データフレームは、バスＢ１に接続されたＥＣＵ１ａから出力され、受信機１１０、受信ＭＢ１１４、検索エンジン１５０を介してレジスタ１５４に入力されたものである。
【００７３】
各送信バッファ１７０〜１７４には、それぞれ５つのデータフレーム記憶領域が確保されている。図５においては、送信バッファ１７０〜１７４の５つの矩形枠のそれぞれがデータフレーム記憶領域であり、矩形枠内に示された数字は、当該数値をＩＤ番号とするデータフレームがその記憶領域に格納されていることを示している。また、データフレーム記憶領域を示す矩形枠内に示された「空」は、当該データフレーム記憶領域が空いている、すなわち、送信待ちのデータフレームが格納されていないことを示している。
【００７４】
送信制御ユニット１０６の処理ユニット１９２は、レジスタ１５４にデータフレームが格納されたことを検知すると、当該データフレームをレジスタ１５４から読み出し、当該データフレームからＩＤデータを抽出して、当該データフレームのＩＤが１１０であることを検出する。次に、処理ユニット１９２は、不揮発性メモリ１９０が記憶する送信周期情報１９４（図４）を参照し、ＩＤ＝１１０が送信周期１０ｍｓに対応することを特定する。
【００７５】
続いて、処理ユニット１９２は、上記特定した送信周期１０ｍｓに対応する送信バッファ１７０内のデータフレーム記憶領域に空き（図示左端の矩形）があることを確認し、当該空いているデータフレーム記憶領域に、上記読み出したデータフレームを格納する。
【００７６】
なお、送信バッファ１７０内に空いているデータフレーム記憶領域がない場合、処理ユニット１９２は、エラー処理として所定の処理を実行することができる。例えば、当該エラー処理は、レジスタ１５４から読み込んだデータフレームと同じ優先度か又はより低い優先度を持つ送信バッファ１７０内のデータフレームを、当該読み込んだデータフレームにより上書きする処理とすることができる。
【００７７】
次に、処理ユニット１９２は、ＣＡＮモジュール１００の送信ＭＢ１１６〜１２６の空き状況を確認し、１０ｍｓ用ＭＢである送信ＭＢ１１６、１１８と、２０ｍｓ用ＭＢである送信ＭＢ１２２が空いていること検知する。続いて、処理ユニット１９２は、送信ＭＢ１１６及び１１８に送信待ちのデータフレームを格納すべく、送信ＭＢ１１６、１１８に対応付けられた１０ｍｓ用送信バッファである送信バッファ１７０の、例えば図示最も右側にある２つのデータフレーム記憶領域に格納されているデータフレーム（ＩＤ＝１１０、及び１２０）を、それぞれ、送信ＭＢ１１６と１１８に転送する。
【００７８】
また、処理ユニット１９２は、送信ＭＢ１２２に送信待ちのデータフレームを格納すべく、送信ＭＢ１２２に対応付けられた２０ｍｓ用送信バッファである送信バッファ１７２の、例えば図示最も右側にあるデータフレーム記憶領域に格納されているデータフレーム（ＩＤ＝２２０）を、送信ＭＢ１２２に転送する。
【００７９】
上述したとおり、本ゲートウェイ装置１０では、互いに対応付けられた送信バッファと送信ＭＢとの間においては、当該送信ＭＢに最も高い優先度のデータフレームを常に格納しておく必要はなく、当該送信バッファと送信ＭＢとの間でデータフレームの入れ替えを行う必要はない。このため、図５に示す例では送信ＭＢ１２６内にＩＤ＝３３０のデータフレームが格納されており、当該送信ＭＢ１２６に対応付けられた送信バッファ１７４内にＩＤ＝３３０よりも高い優先度（ＩＤ＝３２０又は３１０）を持つデータフレームが格納されているが、処理ユニット１９２は、送信ＭＢ１２６内のＩＤ＝３３０のデータフレームと、送信バッファ１７４内のＩＤ＝３１０のデータフレームとの入れ替えは行わない。
【００８０】
したがって、当該データフレームの入れ替えに伴う処理負荷は発生せず、従って、当該入れ替え処理に付随する、ＣＡＮモジュール１００への送信ＭＢ１２６についてのデータフレーム送信開始の禁止処理や、当該入れ替え後の送信開始許可等の処理負荷も発生しないこととなり、ゲートウェイ装置１０全体としての処理負荷が軽減される。
【００８１】
次に、本ゲートウェイ装置１０における動作手順について説明する。
ゲートウェイ装置１０における処理は、（ｉ）ＣＡＮモジュール１００、１０２が行う、データフレームの受信処理及び送信処理と、（ｉｉ）ルート検索ユニット１０４が行うルーティング処理と、（ｉｉｉ）送信制御ユニット１０６が行う送信制御処理と、により構成され、各処理は互いに独立に実行される。
【００８２】
〔受信処理〕
本受信処理は、ゲートウェイ装置１０の電源が投入されたときに、ＣＡＮモジュール１００、１０２において開始する。図６は、受信処理の動作手順を示すフロー図である。なお、受信処理の内容は、ＣＡＮモジュール１００及び１０２において同様であるので、以下では、ＣＡＮモジュール１００を例に採り、その処理手順を示す。
【００８３】
ゲートウェイ装置１０の電源が投入されると、ＣＡＮモジュール１００は、まず、受信機１１０により、バスＢ１に接続されたいずれかのＥＣＵ１ａ〜１ｃからバスＢ１上にデータフレームが送信されたか否かを判断し（Ｓ１００）、送信されていないときは（Ｓ１００、Ｎｏ）、ステップＳ１００に戻って、バスＢ１上にデータフレームが送信されるのを待機する。
【００８４】
一方、バスＢ１上にデータフレームが送信されたときは（Ｓ１００、Ｙｅｓ）、当該送信されたデータフレームを受信して（Ｓ１０２）、受信したデータフレームを受信ＭＢ１１４に格納し（Ｓ１０４）、ステップＳ１００に戻って処理を繰り返す。なお、本処理は、ゲートウェイ装置１０の電源が断となったときに終了する。
【００８５】
〔送信処理〕
本送信処理は、ゲートウェイ装置１０の電源が投入されたときに、ＣＡＮモジュール１００、１０２において開始する。図７は、送信処理の動作手順を示すフロー図である。なお、送信処理の内容は、ＣＡＮモジュール１００及び１０２において同様であるので、以下では、ＣＡＮモジュール１００を例に採り、その処理手順を示す。
【００８６】
ゲートウェイ装置１０の電源が投入されると、ＣＡＮモジュール１００は、まず、送信ＭＢ１１６〜１２６のいずれかに送信待ちのデータフレームが格納されているか否かを判断し（Ｓ２００）、格納されていないときは（Ｓ２００、Ｎｏ）、ステップＳ２００に戻って、送信ＭＢ１１６〜１２６のいずれかにデータフレームが格納されるのを待機する。
【００８７】
一方、送信ＭＢ１１６〜１２６のいずれかにデータフレームが格納されているときは（Ｓ２００、Ｙｅｓ）、送信ＭＢ１１６〜１２６に格納されているデータフレームのうち最も優先度の高い（したがって、最も小さいＩＤ番号を持つ）データフレームが格納されている送信ＭＢを特定し（Ｓ２０２）、当該送信ＭＢからデータフレームを読み出して（Ｓ２０４）、読み出したデータフレームを、送信機１１２によりバスＢ３に送信する（Ｓ２０６）。ここで、バスＢ３へのデータフレームの送信は、ＣＡＮプロトコルに準拠して行われる。
【００８８】
ステップＳ２０６においてデータフレームを送信すると、ＣＡＮモジュール１００は、ステップＳ２００に戻って処理を繰り返す。なお、本処理は、ゲートウェイ装置１０の電源が断となったときに終了する。
【００８９】
〔ルーティング処理〕
本ルーティング処理は、ゲートウェイ装置１０の電源が投入されたときに、ルート検索ユニット１０４により開始される。図８は、ルーティング処理の動作手順を示すフロー図である。なお、本ルーティング処理は、ルート検索ユニット１０４の検索エンジン１５０及び１５２により行われるが、本処理の内容は検索エンジン１５０及び１５２において同様であるので、以下では、検索エンジン１５０を例に採り、その処理手順を示す。
【００９０】
ゲートウェイ装置１０の電源が投入されると、検索エンジン１５０は、まず、ＣＡＮモジュール１００の受信機１１０により受信されたデータフレームが受信ＭＢ１１４に格納されているか否かを判断する（Ｓ３００）。すなわち、上述した受信処理（図６）のステップＳ１０４の処理によりバスＢ１から受信されたデータフレームが受信ＭＢ１１４に格納されたことを確認する。
【００９１】
なお、受信ＭＢ１１４にデータフレームが格納されたか否かは、例えば、検索エンジン１５０が、ＣＡＮモジュール１００に設けられたステータスレジスタ（不図示）のデータを読み出し、当該読み出したデータに含まれる特定のビットにより表わされた受信ＭＢ１１４の状態を示す情報に基づいて判断することができる。
【００９２】
そして、検索エンジン１５０は、受信されたデータフレームが受信ＭＢ１１４に格納されていないときは（Ｓ３００、Ｎｏ）、ステップＳ３００に戻ってデータフレームが受信ＭＢ１１４に格納されるのを待機する。
【００９３】
一方、受信ＭＢ１１４にデータフレームが格納されているときは（Ｓ３００、Ｙｅｓ）、当該データフレームを受信ＭＢ１１４から読み出し（Ｓ３０２）、不揮発性メモリ１５８が記憶するルーティングマップ１６２を参照し、上記読み出したデータフレームのＩＤに基づき、当該データフレームが転送すべきデータフレームか否かを判断し（Ｓ３０４）、転送すべきデータフレームでなければ（Ｓ３０４、Ｎｏ）、当該データフレームを破棄し、ステップＳ３００に戻って新たに受信されたデータフレームが受信ＭＢ１１４に格納されるのを待機する。
【００９４】
一方、受信ＭＢ１１４から読み出したデータフレームが転送すべきデータフレームであるときは（Ｓ３０４、Ｙｅｓ）、当該データフレームのＩＤとルーティングマップ１６２とに基づき、当該データフレームを送信すべきバス、すなわち転送先バス（バスＢ３、Ｂ４のいずれか）を特定する（Ｓ３０６）。そして、上記読み出したデータフレームを、上記特定した転送先バスに対応するレジスタ１５４又は１５６に格納した後（Ｓ３０８）、ステップＳ３００に戻って、新たに受信されたデータフレームが受信ＭＢ１１４に格納されるのを待機する。なお、本処理は、ゲートウェイ装置１０の電源が断になったときに終了する。
【００９５】
検索エンジン１５２におけるルーティング処理も上記と同様に行われる。すなわち、検索エンジン１５２におけるルーティング処理により、バスＢ２から受信されたデータフレームは、そのＩＤに基づいて、転送すべきデータフレームであるか否かが判断されると共に、転送すべきデータフレームであれば転送先バスが特定される。そして、バスＢ３へ転送すべきデータフレームであればレジスタ１５４に格納され、バスＢ３へ転送すべきデータフレームであればレジスタ１５６に格納される。なお、検索エンジン１５０におけるルーティング処理と検索エンジン１５２におけるルーティング処理は、並行して実行されるものとすることができる。
【００９６】
〔送信制御処理〕
本送信制御処理は、データフレーム振分処理とデータフレーム出力処理とにより構成される。データフレーム振分処理は、レジスタ１５４、１５６内のデータフレームを、その送信周期に応じた送信バッファ（すなわち、送信バッファ１７０〜１８０のいずれか）に格納する処理である。また、データフレーム出力処理は、送信ＭＢ１１６〜１２６、１３６〜１４６の空き状態に応じて、送信バッファ１７０〜１８０から送信待ちデータフレームを読み出して送信ＭＢ１１６〜１２６、１３６〜１４６に格納する処理である。
【００９７】
データフレーム振分処理とデータフレーム出力処理とは、共に、ゲートウェイ装置１０の電源が投入されたときに、送信制御ユニット１０６の処理ユニット１９２により開始される。
【００９８】
〈データフレーム振分処理〉
図９は、データフレーム振分処理の動作手順を示すフロー図である。
ゲートウェイ装置１０の電源が投入されると、送信制御ユニット１０６の処理ユニット１９２は、ルート検索ユニット１０４のレジスタ１５４、１５６のいずれかにデータフレームが格納されているか否かを判断する（Ｓ４００）。すなわち、上述したルーティング処理（図８）のステップＳ３０６の処理により、バスＢ１、Ｂ２から受信されたデータフレームがレジスタ１５４、１５６にそれぞれ格納されたか否かを確認する。
【００９９】
なお、レジスタ１５４、１５６にデータフレームが格納されているか否かは、例えばルート検索ユニット１０４が送信制御ユニット１０６に対して通知するものとしてもよいし、送信制御ユニット１０６の処理ユニット１９２が、ルート検索ユニット１０４に設けられたステータスレジスタ（不図示）を読み出して、当該読み出したデータに含まれる特定のビットにより表わされたレジスタ１５４、１５６の状態を示す情報から判断するものとすることができる。
【０１００】
そして、処理ユニット１９２は、レジスタ１５４、１５６のいずれにもデータフレームが格納されていないときは（Ｓ４００、Ｎｏ）、ステップＳ４００に戻ってデータフレームがレジスタ１５４、１５６のいずれかに格納されるのを待機する。
【０１０１】
一方、レジスタ１５４及び又は１５６にデータフレームが格納されているときは（Ｓ４００、Ｙｅｓ）、レジスタ１５４及び又は１５６に格納されているデータフレームを読み出し（Ｓ４０２）、不揮発性メモリ１９０が記憶する送信周期情報１９４を参照して、上記読み出したデータフレームのＩＤに基づき、当該データフレームの送信周期を特定する（Ｓ４０４）。
【０１０２】
処理ユニット１９２は、送信バッファ１７０〜１７４のうち当該特定した送信周期に対応する送信バッファに、上記読み出したデータフレームを格納した後（Ｓ４０６）、ステップＳ４００に戻って、新たなデータフレームがレジスタ１５４、１５６のいずれかに格納されるのを待機する。なお、本処理は、ゲートウェイ装置１０の電源が断になったときに終了する。なお、ステップＳ４０２においてレジスタ１５４及び１５６の両レジスタからそれぞれデータフレームを読み出したときは、ステップＳ４０４では当該読み出した各データフレームの送信周期をそれぞれ特定し、ステップＳ４０５では当該読み出した各フレームを、それぞれ、上記特定した送信周期に対応する送信バッファに格納するものとする。
【０１０３】
〈データフレーム出力処理〉
次に、送信制御処理のデータフレーム出力処理の動作手順について説明する。
【０１０４】
図１０は、フレーム出力処理の動作手順を示すフロー図である。
ゲートウェイ装置１０の電源が投入されると、送信制御ユニット１０６の処理ユニット１９２は、まず、ＣＡＮモジュール１００、１０２の送信ＭＢ１１６〜１２６、１３６〜１４６のいずれかに送信待ちデータフレームを格納していない送信ＭＢ（空き送信ＭＢ）があるか否かを判断する（Ｓ５００）。なお、送信ＭＢ１１６〜１２６、及び１３６〜１４６のいずれかに空きがあるか否かの判断は、例えば、処理ユニット１９２が、ＣＡＮモジュール１００及び１０２が備えるステータスレジスタ（不図示）からデータを読み出し、当該読み出したデータに含まれる特定のビットにより表わされた送信ＭＢ１１６〜１２６、及び１３６〜１４６の状態を示す情報から判断するものとすることができる。
【０１０５】
そして、処理ユニット１９２は、空き送信ＭＢがないとき、すなわち、送信ＭＢ１１６〜１２６又は１３６〜１４６のいずれにも送信待ちデータフレームが格納されているときは（Ｓ５００、Ｎｏ）、ステップＳ５００に戻って送信ＭＢに空きができるのを待機する。
【０１０６】
一方、空き送信ＭＢがあるとき、すなわち送信ＭＢ１１６〜１２６又は１３６〜１４６のいずれかに空きがあるときは（Ｓ５００、Ｙｅｓ）、空き送信ＭＢのうち、当該空き送信ＭＢに対応付けられた送信バッファに送信待ちデータフレームが格納されているものがあるか否か、すなわち、対応する送信バッファに送信待ちデータフレームが格納されている空き送信ＭＢがあるか否かを判断する（Ｓ５０２）。ここで、「対応する送信バッファ」とは、当該空き送信ＭＢに対応付けられている送信バッファをいい、例えば、送信ＭＢ１１６が空き送信ＭＢであれば、当該空き送信ＭＢに対応する送信バッファは、送信バッファ１７０であり、送信ＭＢ１２２が空き送信ＭＢであれば、当該空き送信ＭＢに対応する送信バッファは、送信バッファ１７２である。
【０１０７】
そして、いずれの空き送信バッファも、対応する送信バッファに送信待ちデータフレームが格納されていないときは（Ｓ５０２、Ｎｏ）、ステップＳ５００に戻って処理を繰り返す。
【０１０８】
一方、対応する送信バッファに送信待ちデータフレームが格納されている送信ＭＢがあるときは（Ｓ５０２、Ｙｅｓ）、当該各空き送信ＭＢについて、それぞれ対応する送信バッファから送信待ちデータフレームを読み出して、当該読み出したデータフレームを当該空き送信ＭＢに格納した後（Ｓ５０４）、ステップＳ５００に戻って処理を繰り返す。本処理は、ゲートウェイ装置１０の電源が断になったときに終了する。
【０１０９】
なお、本実施形態では、送信バッファ１７０〜１８０のすべてについて、それぞれ、送信ＭＢ１１６〜１２６、１３６〜１４６のうちの異なる２つの送信ＭＢが対応付けられるものとしたが、これに限らず、各送信バッファに対応付ける送信ＭＢの数は、１つあるいは３つ以上とすることもできる。
【０１１０】
なお、本実施形態のように各送信バッファに２つの送信ＭＢを対応付けた場合や、２つ以上の送信ＭＢを対応付けた場合には、当該対応付けた一の送信ＭＢからデータフレームが送信されている間に、対応する送信バッファから次の送信待ちデータフレームを読み出して上記対応付けた他の送信ＭＢに当該読み出したデータフレームを格納することができる。このため、２つ以上の送信ＭＢを対応付けた場合は、同一バス上に接続されたＥＣＵからのより長い送信周期を持つデータフレームの送信割り込みを防止して、同じ送信周期を持つデータフレームを連続してバス上に送信することが可能となる。
【０１１１】
また、本実施形態では、一つの送信周期に対して一つの送信バッファを対応付けるものとしたが（例えば、一の送信周期１０ｍｓに対して一の送信バッファ１７０を対応付けている）、これに限らず、所定の周期以上の複数の送信周期に対して一つの送信バッファを対応付けるものとすることもできる。このような所定の周期以上の長い送信周期を持つデータフレームの発生頻度は、より短い送信周期を持つ他のデータフレームの発生頻度よりも低いため、送信周期毎に送信バッファを設けた場合には、当該送信バッファの記憶装置としての利用効率が低下してしまうこととなる。一方、上記のように、所定の周期以上の複数の送信周期に対して一つの送信バッファを対応付けるものとすれば、送信バッファを構成する記憶装置のリソースを節約して、記憶装置としての利用効率を向上させることができる。
【０１１２】
さらに、上記所定の周期以上の複数の送信周期に対応付けられた送信バッファに対しては、一つの送信ＭＢだけを対応付けるものとすることができる。上述ように、所定の周期以上の長い送信周期を持つデータフレームの発生頻度は低く、当該送信バッファに２つ以上の送信ＭＢを対応付けて連続送信する必要性は低いためである。これにより、送信ＭＢの使用数を抑えて、ＣＡＮモジュール１００、１０２内での記憶装置のリソースを節約することができる。
【０１１３】
本実施形態の変形例として、上述のように所定の周期以上の複数の送信周期に対して１つの送信バッファを対応付け、当該送信バッファに１つの送信ＭＢを対応付けたゲートウェイ装置の例を、以下に示す。
【０１１４】
図１１は、本変形例に係るゲートウェイ装置に用いられる中継ユニットの構成を示している。図１１に示す中継ユニット２２は、図２に示す中継ユニット１２に対応するものであり、例えば図１に示すゲートウェイ装置１０の中継ユニット１２に置き代えて使用される。
【０１１５】
中継ユニット２２の構成要素のうち、図２に示す中継ユニット１２と同じ構成要素については、図２と同じ符号を用いるものとし、図２についての説明を援用する。
【０１１６】
図１１の例では、送信周期１０、２０、３０ｍｓのデータフレームのほか、送信周期１００ｍｓ、２００ｍｓ、３００ｍｓのデータフレームが存在するものとする。
【０１１７】
図１１に示す中継ユニット２２は、中継ユニット１２と同様の構成を有するが、送信制御ユニット１０６及びＣＡＮモジュール１００、１０２に代えて、送信制御ユニット２０６及びＣＡＮモジュール２００、２０２を備える。
【０１１８】
送信制御ユニット２０６は、送信制御ユニット１０６と同様の構成を有するが、送信バッファ１７０〜１８０に加えて送信バッファ２８２、２８４を備え、送信周期情報１９４を記憶する不揮発性メモリ１９０に代えて、送信周期１０、２０、３０、１００、２００、３００ｍｓのデータフレームについてのＩＤと送信周期との対応情報を含んだ送信周期情報２９４を記憶する不揮発性メモリ２９０を備える。
【０１１９】
また、送信制御ユニット２０６は、処理ユニット１９２に代えて、処理ユニット２９２を備える。処理ユニット２９２は、処理ユニット１９２と同様にプロセッサ及び記憶装置等を備えるコンピュータであり、不揮発性メモリ２９０が記憶する送信周期情報２９４を参照して、送信バッファ１７０〜１８０、２８２、２８４についてのデータフレームの書込み及び読み出し、並びに送信ＭＢ１１６〜１２６、１３６〜１４６、２２８、２４８へのデータフレームの書込み等の処理を行う。なお、処理ユニット２９２が行う処理動作は、処理ユニット１９２と同様であり、送信周期１０、２０、３０ｍｓのデータフレームに加えて１００、２００、３００ｍｓのデータフレームを扱う点が異なる。
【０１２０】
ＣＡＮモジュール２００及び２０２は、それぞれ、ＣＡＮモジュール１００及び１０２と同様の構成を有するが、送信ＭＢ１１６〜１２６、１３６〜１４６に加えて送信ＭＢ２２８及び２４８を備え、送信機１１２及び１３２に代えて送信機２１２及び２３２を備える。
【０１２１】
送信機２１２は、送信機１１２と同様に、送信ＭＢ１１６〜１２６及び２２８に格納されたデータフレームを優先度順に送信する。また、送信機２３２は、送信機１３２と同様に、送信ＭＢ１３６〜１４６及び２４８に格納されたデータフレームを優先度順に送信する。
【０１２２】
すなわち、図１１に示す中継ユニット２２では、バスＢ３を転送先とするデータフレームに関して、１００ｍｓ以上の送信周期、すなわち、送信周期１００ｍｓ、２００ｍｓ、３００ｍｓの３つの送信周期が１つの送信バッファ２８２に対応付けられ、バスＢ４を転送先とするデータフレームに関して、上記３つの送信周期が１つの送信バッファ２８４に対応付けられている。また、送信バッファ２８２及び２８４は、それぞれ１つの送信ＭＢ２２８及び２４８が対応付けられている。
【０１２３】
処理ユニット２９２は、レジスタ１５４からデータフレームを読み出すと、送信周期情報２９４を参照し、当該読み出したデータフレームに含まれるＩＤから当該データフレームの送信周期を特定し、当該データフレームを、当該特定した送信周期に対応する送信バッファに格納する。
【０１２４】
すなわち、レジスタ１５４から読み出したデータフレームについて、上記特定された送信周期が１００ｍｓ、２００ｍｓ又は３００ｍｓであるときは、当該読み出したデータフレームを送信バッファ２８２に格納する。
【０１２５】
また、同様に、処理ユニット２９２は、レジスタ１５６からデータフレームを読み出すと、送信周期情報２９４を参照して当該データフレームの送信周期を特定し、当該データフレームを、当該特定した送信周期に対応する送信バッファに格納する。
【０１２６】
すなわち、上記特定した送信周期が１００ｍｓ、２００ｍｓ又は３００ｍｓであるときは、レジスタ１５６から読み出した当該データフレームを送信バッファ２８４に格納する。
格納する。
【０１２７】
そして、処理ユニット２９２は、送信ＭＢ２２８又は２４８が空いている（すなわち、送信待ちデータフレームが格納されていない）ときは、それぞれ、送信バッファ２８２又は２８４から送信待ちデータフレームを読み出して、送信ＭＢ２２８又は２４８に当該読み出したデータフレームを格納する。なお、処理ユニット２９２における他の処理は、処理ユニット１９２における処理と同様であるので、処理ユニット１９２についての上記説明を援用する。
【０１２８】
以上、説明したように、本実施形態のゲートウェイ装置１０では、より短い送信周期のデータフレームにより高い優先度の識別子が付されており、かつ、送信待ちのデータフレームを格納する送信バッファを送信周期に対応付けると共に、各送信バッファに一以上の送信ＭＢを対応付けることで、送信周期毎に送信バッファと送信ＭＢとが使い分けられる。
【０１２９】
これにより、本ゲートウェイ装置１０では、同一の送信周期を持つデータフレームは同じ送信バッファを経由して同じ一以上の送信ＭＢから送信されることとなるので、他の送信ＭＢ内のより長い送信周期のデータフレームの存在により送信が遅延することがない。このため、従来のように、送信バッファ内のより優先度の高いデータフレームの送信が送信ＭＢ内のより優先度の低いデータフレームの送信完了を待って遅延してしまう問題を回避すべく、送信バッファと送信ＭＢとの間でのデータフレームの入れ替えを行う必要はなく、データフレームの転送処理の負荷が軽減される。
【符号の説明】
【０１３０】
１ａ〜１ｇ・・・ＥＣＵ、１０・・・ゲートウェイ装置、１２、１４、２２・・・中継ユニット、１００、１０２、２００、２０２・・・ＣＡＮモジュール、１０４・・・ルート検索ユニット、１０６、２０６・・・送信制御ユニット、１１０、１３９・・・受信機、１１２、１３２、２１２、２３２・・・送信機、１１４、１３４・・・受信ＭＢ、１１６〜１２６、１３６〜１４６、２２８、２４８・・・送信ＭＢ、１５０、１５２・・・検索エンジン、１５４、１５６・・・レジスタ、１５８、１６０、１９０、２９０・・・不揮発性メモリ、１６２、１６４・・・ルーティングマップ、１７０〜１８０、２８２、２８４・・・送信バッファ、１９２、２９２・・・処理ユニット、１９４、２９４・・・送信周期情報。
【図１】
2014204160.tif 000003
【図２】
2014204160.tif 000004
【図３】
2014204160.tif 000005
【図４】
2014204160.tif 000006
【図５】
2014204160.tif 000007
【図６】
2014204160.tif 000008
【図７】
2014204160.tif 000009
【図８】
2014204160.tif 000010
【図９】
2014204160.tif 000011
【図１０】
2014204160.tif 000012
【図１１】
2014204160.tif 000013