(57)【要約】【課題】  ネットワーク相互間を中継するゲートウェイ装置において、端末装置間において動的に決定したデータ送信間隔の条件を損なうことなく当該端末装置間の通信を中継する。【解決手段】  一のネットワークを構成する一のバス（１０４）に接続された一の端末装置（１１０等）と、他のネットワークを構成する他のバス（１０６）に接続された他の端末装置（１３０）との間の通信を中継するゲートウェイ装置（１０）であって、処理装置（２０２）を備え、前記処理装置は、前記一の端末装置から前記他の端末装置へ向けて送信された、データ送信間隔を指定する情報を含む第１の所定の信号（３１２）を検出して、当該情報を記憶しておき、前記他の端末装置から受信したデータを記憶装置（２０４）に保存して、当該保存したデータを、前記記憶した情報が示すデータ送信間隔の指定に従って、前記一の端末装置へ送信するよう構成されている。【選択図】図２
2015000597.tif 000002
【特許請求の範囲】
【請求項１】
一のネットワークを構成する一のバスに接続された一の端末装置と、他のネットワークを構成する他のバスに接続された他の端末装置との間の通信を、前記一及び他のネットワーク間で中継するゲートウェイ装置であって、
前記一のバスから受信したデータの前記他のバスへの送信を管理すると共に、前記他のバスから受信したデータの前記一のバスへの送信を管理する処理装置を備え、
前記処理装置は、
前記一の端末装置から前記他の端末装置へ向けて送信された、データ送信間隔を指定する情報を含む第１の所定の信号を検出して、当該情報を記憶し、
前記他の端末装置から受信したデータを記憶装置に保存し、当該保存したデータを、前記記憶した情報が表すデータ送信間隔の指定に従って、前記一の端末装置へ送信するよう構成されている、
ゲートウェイ装置。
【請求項２】
前記処理装置は、さらに、
前記他のバスから受信して前記一のバスへ送出する第２の所定の信号の、自装置である前記ゲートウェイ装置内での滞留時間を計測し、
前記計測した滞留時間が所定時間を超えており、かつ、前記一の端末装置から受信した前記第１の所定の信号に含まれる前記情報から特定されるデータ送信間隔が所定の時間間隔より短い間隔を含むときは、当該情報を予め定めた所定の時間間隔以上のデータ送信間隔を指定する内容に書き換えて、当該書き換え後の前記第１の所定の信号を前記他の端末装置へ送信するよう構成されている、
請求項１に記載のゲートウェイ装置。
【請求項３】
前記第２の所定の信号は、前記他の端末装置から前記一の端末装置に向けてデータを連続送信する旨の通知を含むものである、
請求項２に記載のゲートウェイ装置。
【請求項４】
前記第１の所定の信号に含まれる前記情報が表すデータ送信間隔の指定は、前記第２の所定の信号により通知される連続送信に係るデータに対して適用される、
請求項３に記載のゲートウェイ装置。
【請求項５】
前記一のネットワーク及び前記他のネットワークは、共に車両に搭載された車載ネットワークであり、
前記ゲートウェイ装置は、車両に搭載されて上記車載ネットワーク間の通信を中継するものである、
請求項１ないし４のいずれか一項に記載のゲートウェイ装置。
【請求項６】
前記一の端末装置は、前記車両の動作を制御する電子制御装置（ＥＣＵ）であり、
前記他の端末装置は、前記車両の外部から前記他のネットワークに接続される、車両動作を診断するための診断装置である、
請求項５に記載のゲートウェイ装置。
【請求項７】
前記第１の所定の信号を受信しないとき、又は、前記第１の所定の信号が含む情報により特定されるデータ送信間隔の下限値が０であるときは、前記他の端末装置から受信したデータを前記一の端末装置に向けて任意の送信間隔で送信する、
請求項１ないし６のいずれか一項に記載のゲートウェイ装置。
【請求項８】
一のネットワークを構成する一のバスに接続された一の端末装置と、他のネットワークを構成する他のバスに接続された他の端末装置との間の通信を、前記一及び他のネットワーク間で中継するゲートウェイ装置であって、
前記一の端末装置から前記他の端末装置へ向けて送信された、データ送信間隔を指定する情報を含む第１の所定の信号を検出して、当該情報を記憶する手段と、
前記他の端末装置から受信したデータを記憶装置に保存し、当該保存したデータを、前記記憶した情報が表すデータ送信間隔の指定に従って、前記一の端末装置へ送信する手段と、
を備えるゲートウェイ装置。
【請求項９】
一のネットワークを構成する一のバスに接続された一の端末装置と、他のネットワークを構成する他のバスに接続された他の端末装置との間の通信を、前記一及び他のネットワーク間で中継するゲートウェイ装置が備える処理装置により行われるデータ転送処理の方法であって、
前記一の端末装置から前記他の端末装置へ向けて送信された、データ送信間隔を指定する情報を含む第１の所定の信号を検出して、当該情報を記憶するステップと、
前記他の端末装置から受信したデータを記憶装置に記憶させるステップと、
当該記憶させたデータを、前記記憶した情報が表すデータ送信間隔の指定に従って、前記一の端末装置へ送信するステップと、
を含む、データ転送処理方法。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、通信ネットワーク相互間の通信接続を中継するゲートウェイ装置に関し、特に、端末装置間において動的に決定したデータ送信間隔の条件（例えば、その下限値）を損なうことなく当該端末装置間の通信を中継することのできるゲートウェイ装置に関する。本ゲートウェイ装置は、例えば車両に搭載され、車載ネットワークシステムを構成するネットワーク相互間の通信接続を中継する。
【背景技術】
【０００２】
従来、車載ネットワークシステムにおけるゲートウェイ装置として、ＣＡＮ（Controller Area Network）通信規格に準拠し、一のネットワークから受信したフレームをメモリに蓄積して、当該受信したフレームを当該メモリから送信用バッファへ順次転送しつつ、送信用バッファ内のフレームを送信機により他のネットワークへ送出する、ゲートウェイ装置が知られている（特許文献１参照）。
【０００３】
このゲートウェイ装置では、送信機によりフレームが送出されて送信用バッファ内に空きができる毎に、即座に上記メモリから送信用バッファへ新たなフレームを非同期で転送し、メモリから送信用バッファへのフレーム転送の遅れを防止して、フレーム送信に係る処理の遅れを最小化している。
【０００４】
これにより、上記ゲートウェイ装置は、送信先であるネットワークの空き時間（バス上にデータが何も送出されていない時間）を最小化して、当該ネットワークにおける通信効率を最大化することができる。
【０００５】
ところで、車載ネットワークシステムにおいては、様々な車両動作の制御を行う複数のＥＣＵ（電子制御装置、Electronic Control Unit）が車載ネットワークを介して通信可能に接続され、各ＥＣＵは、それぞれが受け持つ制御動作に係るデータを他のＥＣＵとの間で送受信することにより、車両全体として適切な制御を実現する。
【０００６】
すなわち、各ＥＣＵは、車両動作の制御に係る処理と通信に係る処理とを、当該ＥＣＵに与えられた処理能力の範囲内で同時に実行しており、通常は、車両の動作状態に応じて車両制御に係る処理負荷が増加しても、一定の通信処理能力が確保されている。
【０００７】
しかしながら、例えば通常の車両動作の制御に加えて付加的な処理が求められるような場合には、車両制御の負荷変動や当該付加的処理の負荷変動に伴って、通信処理の能力は低下し、その時々の通信処理能力を超えて短い時間間隔でフレームが到来してしまうと、それらのフレームを正しく受信できない事態が生じ得る。
【０００８】
例えば、車両動作の異常を診断する際には、車両外部から車載ネットワークに診断装置が接続され、当該診断装置と各ＥＣＵとの間で、各ＥＣＵの動作を診断するための様々な情報のやりとり（診断通信）が行われる。ここで、診断装置がＥＣＵへ送信する一塊りの情報を、「診断情報」と称するものとする。
【０００９】
一方、ＣＡＮ通信規格に従うフレームは、１フレーム当たり最大７ｂｙｔｅの情報しか伝達することができない。このため、診断装置は、８ｂｙｔｅ以上の診断情報を送信する場合には、当該診断情報を７ｂｙｔｅ以下のデータに分割し、複数の連続するフレームとして送信する。
【００１０】
しかしながら、このような車両診断のための処理が行われる際には、各ＥＣＵは、通常の車両制御に係る処理に加えて、診断器との通信や自己診断のための付加的な処理を行うこととなるため、診断装置から短い周期で連続的にフレームが送信されたとしても、当該フレームの全てを受信できない場合があり得る。
【００１１】
そこで、このような状態を防止するため、診断通信においては、ＥＣＵが診断装置に対してフレーム送信周期の下限値を指定するためのフレームを送信する方法が用いられている。これにより、ＥＣＵと診断装置との間のデータ送信間隔の条件が、当該ＥＣＵにおける処理負荷に応じて動的に決定されることとなる。
【００１２】
この場合、診断通信は、例えば次のような手順で行われる。
まず、診断装置は、ＥＣＵに対し、複数のフレームにより診断情報を分割して送信することを示すフレーム（First Frame。以下、「ＦＦフレーム」と称する）を送信する。このＦＦフレームには、その診断情報全体の長さ（データ長）が含まれる。
【００１３】
ＦＦフレームを受信したＥＣＵは、診断情報を構成する後続のフレーム（Consecutive Frame。以下、「ＣＦフレーム」と称する）の送信周期を指定すべく、診断装置に対しＦＣ（Flow Control）フレームを送信する。このＦＣフレームには、上記ＣＦフレームの送信周期の下限を指定する値（下限値）STminが含まれている。
【００１４】
ＦＣフレームを受信した診断装置は、当該ＦＣフレームに含まれる上記下限値STmin以上の送信周期で（又は送信間隔で）ＣＦフレームをＥＣＵへ送信する。これにより、ＥＣＵは、送信された全てのＣＦフレームを受信することが可能となり、これらのＣＦフレームからデータを抽出して診断情報の全体を取得することができる。なお、ＥＣＵは、受信したＣＦフレームに含まれるデータのデータ長を積算し、その積算値と上記ＦＦフレームに含まれていた診断情報全体のデータ長とを比較することにより、全てのＣＦフレームを受信したか否かを判断することができる。
【００１５】
上述した診断通信によれば、診断装置から連続して送信される複数のフレームは、上記STmin以上の間隔でＥＣＵに到来することとなり、当該ＥＣＵは、これら連続する複数のフレームを正しく受信して、当該フレームにより分割して送信された診断情報を適正に受信することができる。
【００１６】
しかしながら、上記従来のゲートウェイ装置が診断装置とＥＣＵとの間に介在した場合には、図１１に示すように、診断装置から一のネットワークに対してSTmin以上の周期でＣＦフレームが送出されたとしても、他のネットワークに接続されたＥＣＵに対して当該ＣＦフレームがSTmin以上の周期で到来するとは限らない。
【００１７】
図１１は、従来のゲートウェイ装置を用いて構成された車載ネットワークシステムにおける、診断通信の一例を示す図である。図１１には、診断通信を構成する通信イベントが図示上方から下方に向かって時系列に示されている。図示の例では、診断装置１１００は診断情報を複数のフレームに分割して送信しようとしている。また、診断装置１１００はネットワークＡに、診断情報の送信先であるＥＣＵ１１０４はネットワークＢに、それぞれ接続されており、ゲートウェイ装置１１０２はネットワークＡ及びネットワークＢに接続されてネットワーク間の通信を中継している。
【００１８】
符号１１１０及び１１１２により示された図示縦方向の２つのラインは、ネットワークＡに接続された各装置の時間の経過を表しており、より具体的には、診断装置１１００のにおける時間の経過及びゲートウェイ装置１１０２のネットワークＡ側通信機における時間の経過をそれぞれ表している。また、符号１１１４及び１１１６により示された図示縦方向の２つのラインは、ネットワークＢに接続された各装置の時間の経過を表しており、より具体的には、ゲートウェイ装置１１０２のネットワークＢ側通信機における時間の経過及びＥＣＵ１１０４における時間の経過をそれぞれ表わしている。
【００１９】
ライン１１１０〜１１１６のうち互いに隣接するライン間に描かれた図示横方向の実線矢印は、それぞれ通信イベントを表わしている。より詳細には、ライン１１１０とライン１１１２との間の実線矢印はネットワークＡにおける通信イベントを表わし、ライン１１１４とライン１１１６との間の実線矢印はネットワークＢにおける通信イベントを表わしている。また、ライン１１１２とライン１１１４との間の図示横方向の破線矢印は、ゲートウェイ装置１１０２の内部を通過する受信フレームの流れを模式的に示している。
【００２０】
まず、診断装置１１００は、ＥＣＵ１１０４に向けてＦＦフレーム１１２０をネットワークＡへ送出し、当該ＦＦフレーム１１２０は、ゲートウェイ装置１１０２を介してネットワークＢへ送出され、ＥＣＵ１１０４に受信される。次に、ＦＦフレーム１１２０を受信したＥＣＵ１１０４は、送信周期の下限値STminを指定するＦＣフレーム１１２２を、診断装置１１００に向けてネットワークＢへ送出する。当該送出されたＦＣフレーム１１２２は、ゲートウェイ装置１１０２を介してネットワークＡへ送出され、診断装置１１００に受信される。
【００２１】
次に、診断装置１１００は、５つのＣＦフレーム１１３０、１１３２、１１３４、１１３６、及び１１３８を、上記ＦＣフレームにより指定された送信周期の下限値STmin以上の時間間隔で、ネットワークＡへ送出し、各ＦＣフレーム１１３０〜１１３８は、ゲートウェイ装置１１０２に受信される。そして、ゲートウェイ装置１１０２は、受信したこれらのＦＣフレーム１１３０〜１１３８をネットワークＢへ送出しようと試みる。
【００２２】
ここで、ＣＡＮ通信規格に従うフレームには、当該フレームの送信の優先度を表わす識別子（ＩＤ、Identifier）が含まれており、２つ以上の送信機が一のネットワークに対して同時にフレームを送信しようとする場合、各送信機は自装置が送信しようとするフレームより優先度の高いフレームが他の送信機から同時に送信されようとしている場合には、その送信動作を中止して当該優先度の高いフレームの送信完了を待たなければならない。なお、優先度の高いフレームが他の送信機から同時に送信されようとしているか否かは、各フレームの先頭に配されたＩＤコードがバス上にシリアルデータとして送出されることにより、各フレームのＩＤコードが当該バス上でビット毎に比較されることにより判断される。
【００２３】
図１１の例では、例えば時刻t7からt8までの期間１１４０において、ＣＦフレーム１１３０〜１１３８より優先度の高いフレームが、ＥＣＵ１１０４以外の他のＥＣＵ（不図示）からネットワークＢに送出されたものとする。
【００２４】
このため、ゲートウェイ装置１１０２は、期間１１４０においては、受信したＣＦフレーム１１３０〜１１３８をネットワークＢへ送出することができず、これらのＣＦフレーム１１３０〜１１３８を自装置内のメモリに保存することとなる。そして、ゲートウェイ装置１１０２は、ネットワークＢにおいて上記優先度の高いフレームの送信が終了した時刻t8の後に、メモリ内に保存したＣＦフレーム１１３０〜１１３８を順次、ネットワークＢへ送出する。
【００２５】
一般に従来のゲートウェイ装置は、特許文献１に記載のゲートウェイ装置の如く、専ら一のネットワークから他のネットワークへ向かうフレームの流れが自装置内部で停滞しないように、自装置内部に保存したフレームをできる限り迅速に他のネットワークへ送出するように構成されている。
【００２６】
このため、ゲートウェイ装置１１０２に保存されたＣＦフレーム１１３０〜１１３８は、ＥＣＵ１１０４から指定された送信周期の下限値STminよりも短い時間間隔で、ゲートウェイ装置１１０２からネットワークＢへ送出されることとなる。その結果、ＥＣＵ１１０４は、ＣＦフレーム１１３０〜１１３８の一部を受信できなくなり、診断装置１１００から送信された診断情報を正しく受信できない事態が発生し得る。
【先行技術文献】
【特許文献】
【００２７】
【特許文献１】特開２００７−２４３３２２号公報
【発明の概要】
【発明が解決しようとする課題】
【００２８】
上記背景より、端末装置間において動的に決定したデータ送信間隔の条件（例えば、その下限値）を損なうことなく当該端末装置間の通信を中継することのできるゲートウェイ装置の実現が望まれている。
【課題を解決するための手段】
【００２９】
本発明は、一のネットワークを構成する一のバスに接続された一の端末装置と、他のネットワークを構成する他のバスに接続された他の端末装置との間の通信を、前記一及び他のネットワーク間で中継するゲートウェイ装置である。本ゲートウェイ装置は、前記一のバスから受信したデータの前記他のバスへの送信を管理すると共に、前記他のバスから受信したデータの前記一のバスへの送信を管理する処理装置を備える。そして、前記処理装置は、前記一の端末装置から前記他の端末装置へ向けて送信された、データ送信間隔を指定する情報を含む第１の所定の信号を検出して、当該情報を記憶するよう構成され、かつ、前記他の端末装置から受信したデータを記憶装置に保存し、当該保存したデータを、前記記憶した情報が表すデータ送信間隔の指定に従って、前記一の端末装置へ送信するよう構成されている。
本発明の一の態様によると、前記処理装置は、さらに、前記他のバスから受信して前記一のバスへ送出する第２の所定の信号の、自装置である前記ゲートウェイ装置内での滞留時間を計測し、前記計測した滞留時間が所定時間を超えており、かつ、前記一の端末装置から受信した前記第１の所定の信号に含まれる前記情報から特定されるデータ送信間隔が所定の時間間隔より短い間隔を含むときは、当該情報を予め定めた所定の時間間隔以上のデータ送信間隔を指定する内容に書き換えて、当該書き換え後の前記第１の所定の信号を前記他の端末装置へ送信するよう構成されている。
本発明の他の態様によると、前記第２の所定の信号は、前記他の端末装置から前記一の端末装置に向けてデータを連続送信する旨の通知を含むものである。
本発明の他の態様によると、前記第１の所定の信号に含まれる前記情報が表すデータ送信間隔の指定は、前記第２の所定の信号により通知される連続送信に係るデータに対して適用される。
本発明の他の態様によると、前記一のネットワーク及び前記他のネットワークは、共に車両に搭載された車載ネットワークであり、前記ゲートウェイ装置は、車両に搭載されて上記車載ネットワーク間の通信を中継するものである。
本発明の他の態様によると、前記一の端末装置は、前記車両の動作を制御する電子制御装置（ＥＣＵ）であり、前記他の端末装置は、前記車両の外部から前記他のネットワークに接続される、車両動作を診断するための診断装置である。
本発明の他の態様によると、前記第１の所定の信号を受信しないとき、又は、前記第１の所定の信号が含む情報により特定されるデータ送信間隔の下限値が０であるときは、前記他の端末装置から受信したデータを前記一の端末装置に向けて任意の送信間隔で送信する。
また、本発明は、一のネットワークを構成する一のバスに接続された一の端末装置と、他のネットワークを構成する他のバスに接続された他の端末装置との間の通信を、前記一及び他のネットワーク間で中継するゲートウェイ装置であって、前記一の端末装置から前記他の端末装置へ向けて送信された、データ送信間隔を指定する情報を含む第１の所定の信号を検出して、当該情報を記憶する手段を備え、かつ、前記他の端末装置から受信したデータを記憶装置に保存し、当該保存したデータを、前記記憶した情報が表すデータ送信間隔の指定に従って、前記一の端末装置へ送信する手段と、を備える。
さらに、本発明は、一のネットワークを構成する一のバスに接続された一の端末装置と、他のネットワークを構成する他のバスに接続された他の端末装置との間の通信を、前記一及び他のネットワーク間で中継するゲートウェイ装置が備える処理装置により行われるデータ転送処理の方法である。本方法は、前記一の端末装置から前記他の端末装置へ向けて送信された、データ送信間隔を指定する情報を含む第１の所定の信号を検出して、当該情報を記憶するステップと、前記他の端末装置から受信したデータを記憶装置に記憶させるステップと、当該記憶させたデータを、前記記憶した情報が表すデータ送信間隔の指定に従って、前記一の端末装置へ送信するステップと、を含んでいる。
【００３０】
本発明によれば、通信ネットワーク相互間の通信接続を中継するゲートウェイ装置において、端末装置間において動的に決定したデータ送信間隔の条件を損なうことなく当該端末装置間の通信を中継することができる。
【図面の簡単な説明】
【００３１】
【図１】車載ネットワークシステムに適用された本発明の第１の実施形態に係るゲートウェイ装置の例を示す図である。
【図２】本発明の第１の実施形態に係るゲートウェイ装置の構成を示すブロック図である。
【図３】本発明の第１の実施形態に係るゲートウェイ装置の、動作の一例を示す図である。
【図４】本発明の第１の実施形態に係るゲートウェイ装置の、処理装置が行う受信処理の手順を示すフロー図である。
【図５】本発明の第１の実施形態に係るゲートウェイ装置の、処理装置が行う送信処理の手順を示すフロー図である。
【図６】本発明の第２の実施形態に係るゲートウェイ装置の構成を示す図である。
【図７】バス上に高優先度フレームが頻繁に送出される状態における、第１の実施形態に係るゲートウェイ装置１０の動作の例を示す図である。
【図８】図７と同じ状態における、本発明の第２の実施形態に係るゲートウェイ装置の動作の例を示す図である。
【図９】本発明の第２の実施形態に係るゲートウェイ装置の、処理装置が行う受信処理の手順を示すフロー図である。
【図１０】本発明の第２の実施形態に係るゲートウェイ装置の、処理装置が行う送信処理の手順を示すフロー図である。
【図１１】従来のゲートウェイ装置を用いて構成された車載ネットワークシステムにおける、診断通信の一例を示す図である。
【発明を実施するための形態】
【００３２】
以下、図面を参照して、本発明の実施の形態を説明する。
〔第１実施形態〕
図１は、車載ネットワークシステムに適用された本発明の第１の実施形態に係るゲートウェイ装置の例を示す図である。
本ゲートウェイ装置１０は、例えば、車載ネットワークシステム１を構成するネットワーク１００及び１０２に接続され、ネットワーク１００とネットワーク１０２との間の通信接続を中継する。
【００３３】
より具体的には、ネットワーク１００は、バス１０４と、当該バス１０４を介して互いに通信可能に接続された、例えばＥＣＵ１１０、１１２、１１４、１１６とを有する。また、ネットワーク１０２は、バス１０６と、当該バス１０６を介して互いに通信可能に接続された、例えばＥＣＵ１２０、１２２、１２４とを有する。なお、図１において、バス１０４及び１０６にそれぞれ接続されているＥＣＵの数は一例であり、車両制御の必要に応じてそれぞれ任意の数のＥＣＵを接続することができる。
【００３４】
ゲートウェイ装置１０は、ネットワーク１００のバス１０４とネットワーク１０２のバス１０６とに接続され、バス１０４及びバス１０６間の通信接続を中継する。また、ネットワーク１０２のバス１０６には、車両動作の診断を行う際に、バス１０６に設けられたコネクタ等（不図示）を介して診断装置１３０が車両外部から接続される。
【００３５】
診断装置１３０は、バス１０６を介してＥＣＵ１２０〜１２４と通信すると共に、バス１０６、ゲートウェイ装置１０、及びバス１０４を介してＥＣＵ１１０〜１１６と通信し、各ＥＣＵ１２０〜１２４、１１０〜１１６から制御動作に関する診断データを収集すると共に、当該診断データの収集に必要な測定パラメータ等の診断情報を各ＥＣＵ１１０〜１１６、１２０〜１２４へ送信する。
【００３６】
ここで、診断装置１３０と各ＥＣＵ１１０〜１１６、１２０〜１２４との間の通信は、診断通信の形式に従って行われるものとする。すなわち、診断装置１３０は、ＥＣＵ１１０〜１１６、１２０〜１２４に対し、診断情報を複数のフレームに分割して送信することができるものとし、ＥＣＵ１１０〜１１６、１２０〜１２４は、診断装置１３０に対し、当該複数のフレームの送信周期の下限値を指定することができるものとする。
【００３７】
より具体的には、診断装置１３０は、通信相手であるＥＣＵ１１０〜１１６、１２０〜１２４の何れかのＥＣＵに対し、ＦＦフレームを送信して、診断情報を複数のフレーム（ＣＦフレーム）に分割して送信する旨を通知し、当該通信相手であるＥＣＵは、診断装置１３０に対し、ＦＣフレームを送信してフレーム送信周期の下限値を指定し、診断装置１３０は、指定された当該下限値以上の時間間隔で、後続するＣＦフレームを送信する。
【００３８】
すなわち、ＦＣフレームは、一の端末装置から他の端末装置に向けて送信される、データ送信間隔を指定する情報を含む第１の所定の信号であり、ＦＦフレームは、他の端末装置から一の端末装置に向けてデータを連続送信する旨の通知を含む、第２の所定の信号である。また、第１の所定の信号であるＦＣフレームが指定するデータ送信間隔（すなわち、フレーム送信周期の下限値）は、第２の所定の信号であるＦＦフレームによって通知される連続送信に係るデータに対して適用される。
【００３９】
図２は、ゲートウェイ装置１０の構成を示すブロック図である。
本ゲートウェイ装置１０は、ＣＡＮ通信モジュール２００ａ及び２００ｂと、処理装置２０２と、記憶装置２０４と、を有する。
【００４０】
ＣＡＮ通信モジュール２００ａは、受信機２１０ａと、受信ＭＢ（メッセージボックス、Massage Box）２１２ａと、送信機２１４ａと、一つ以上の送信ＭＢ２１６ａと、ステータスレジスタ２１８ａと、を備える
【００４１】
受信機２１０ａは、ＣＡＮ通信規格に従ってバス１０４からフレームを受信し、当該受信したフレームを受信ＭＢ２１２ａに格納する。受信ＭＢ２１２ａは、受信機２１０ａが受信したフレーム（受信フレーム）の一時記憶装置、例えばレジスタであり、受信ＭＢ２１２ａに格納された受信フレームは、処理装置２０２により読み出される。
【００４２】
送信ＭＢ２１６ａは、一時記憶装置、例えばレジスタであり、処理装置２０２からＣＡＮ通信モジュール２００ａに入力された送信すべきフレーム（送信フレーム）を格納する。送信機２１４ａは、ＣＡＮ通信規格に従って、一つ以上の送信ＭＢ２１６ａに格納されている送信フレームを、優先度順に送信する。ここで、送信フレームの優先度は、当該送信フレームに含まれるＩＤ番号に従って決定され、通常は、ＩＤ番号の小さいフレームほど優先度が高いものと判断される。
【００４３】
ステータスレジスタ２１８ａは、ＣＡＮ通信モジュール２００ａの動作状態を表わすデータ（ステータスデータ）が格納される一時記憶装置である。ステータスレジスタ２１８ａは、上記動作状態として、例えば、受信ＭＢ２１２ａにおける受信フレームの格納の有無、各送信ＭＢ２１６ａにおける送信フレームの格納の有無を表わすステータスデータを格納する。
【００４４】
ＣＡＮ通信モジュール２００ｂは、ＣＡＮ通信モジュール２００ａと同様の構成を有しており、バス１０４に代えてバス１０６に接続されることのみが異なる。すなわち、ＣＡＮ通信モジュール２００ｂの受信機２１０ｂ、受信ＭＢ２１２ｂ、送信機２１４ｂ、送信ＭＢ２１６ｂ、及びステータスレジスタ２１８ｂは、それぞれ、ＣＡＮ通信モジュール２００ａの受信機２１０ａ、受信ＭＢ２１２ａ、送信機２１４ａ、送信ＭＢ２１６ａ、及びステータスレジスタ２１８ａに対応する。従って、ＣＡＮ通信モジュール２００ｂを構成する上記各構成要素の説明については、記載の重複を避けて理解を容易にするため、上述したＣＡＮ通信モジュール２００ａの、上記対応する各構成要素についての説明を援用するものとする。
【００４５】
本実施形態では、ＣＡＮ通信モジュール２００ａ及び２００ｂは、共に、汎用ロジックＩＣ（Integrated Circuit）や大規模集積回路（ＬＳＩ、Large scale Integration）、あるいはＡＳＩＣ（Application Specific Integrated Circuit）等のハードウェアにより構成されている。ただし、ＣＡＮ通信モジュール２００ａ及び２００ｂにＣＰＵ（Central Processing Unit）等のプロセッサを備えるものとし、上述したＣＡＮ通信モジュール２００ａ及び２００ｂの機能の一部をソフトウェア機能（上記プロセッサがソフトウェアを実行することにより実現される機能）として実現することもできる。
【００４６】
記憶装置２０４は、例えばＲＡＭ（Random Access Memory）であり、ＣＡＮ通信モジュール２００ａの受信機２１０ａが受信したフレームを一時的に記憶しておくための送信バッファ２２０ｂと、ＣＡＮ通信モジュール２００ｂの受信機２１０ｂが受信したフレームを一時的に記憶しておくための送信バッファ２２０ａと、を有している。
【００４７】
より具体的には、送信バッファ２２０ａ及び２２０ｂは、それぞれ、記憶装置２０４内の所定のアドレスから始まる所定の大きさの記憶領域であり、当該記憶領域に上記受信した複数のフレームをそれぞれ記憶しておくことができる。なお、図２において、送信バッファ２２０ａ及び２２０ｂを示す矩形内にそれぞれ点線で示した仕切り線は、当該送信バッファ２２０ａ及び２２０ｂが、それぞれ複数のフレームを格納する領域を有していることを模式的に示したものであり、例えば仕切り線で区切られた各領域にそれぞれ一つのフレームが保存される。
【００４８】
また、図２においては、送信バッファ２２０ａ及び２２０ｂは、上記仕切り線により４つの領域に区切られて４つのフレームを保存するものとなっているが、これに限らず、記憶装置２０４の記憶容量に応じた範囲において、それぞれ５個以上のフレームを保存できるように構成することもできる。
【００４９】
処理装置２０２は、ＣＰＵ等のプロセッサとＲＡＭやＲＯＭ（Read Only Memory）等の記憶装置とを備えるコンピュータであり、周期指定検出ユニット２３０と、送信間隔調整ユニット２３２と、を備える。ここで上記各ユニットは、コンピュータである処理装置２０２がプログラムを実行することにより実現される仮想マシンであり、機能実現手段である。ただし、上記各ユニットは、ハードウェアにより構成することもできる。なお、コンピュータ・プログラムは、コンピュータ読み取り可能な任意の記憶媒体に記憶させておくことができる。
【００５０】
ここで、処理装置２０２の動作の理解を容易にするため、以下では、バス１０４に接続されたＥＣＵ１１０とバス１０６に接続された診断装置１３０との間で、ゲートウェイ装置１０を介した診断通信が行われるものとする。ただし、図２に示すゲートウェイ装置１０は、診断装置１３０がバス１０４に接続された他の任意のＥＣＵとの間で診断通信を行う場合にも、同様に適用することができる。
【００５１】
周期指定検出ユニット２３０は、バス１０４から受信されたフレームをＣＡＮ通信モジュール２００ａの受信ＭＢ２１２ａから読み出して、送信バッファ２２０ｂに時系列に保存する。本実施形態では、例えば、送信バッファ２２０ｂの記憶領域の先頭から受信時刻順に受信フレームが記憶されるものとする。したがって、周期指定検出ユニット２３０は、新たに受信したフレームを、送信バッファ２２０ｂに最後に記憶されたフレームの後ろの記憶領域に保存することにより、上記時系列順の保存を行うことができる。
【００５２】
また、周期指定検出ユニット２３０は、当該受信されたフレーム（受信フレーム）がＦＣフレームか否かを判断し、受信フレームがＦＣフレームであるときは、当該ＦＣフレームに含まれるデータからフレーム送信周期の下限を指定する値（下限値）を取得し、当該取得した下限値を、処理装置２０２が備えるＲＡＭ等の記憶装置（不図示）に記憶する。
【００５３】
なお、一般に、診断通信に用いられるＦＦフレーム、ＦＣフレーム、及びＣＦフレームには、それぞれ、上述した優先度を示すＩＤコード（ＩＤ番号）とは別に、当該フレームの種類（ＦＦ、ＦＣ、又はＣＦ）を識別するためのフレーム識別コードがデータとして含まれている。したがって、周期指定検出ユニット２３０は、受信フレームに含まれる上記フレーム識別コードを参照することにより、当該受信フレームがＦＣフレームであるか否かを判断することができる。同様に、以下の説明に記載されているＦＦフレーム、ＦＣフレーム、又はＣＦフレームであるか否かについての判断は、特に断りのない限り、上記フレーム識別コードを参照することにより行われるものとする。
【００５４】
送信間隔調整ユニット２３２は、ＣＡＮ通信モジュール２００ｂに空いている（すなわち、フレームが格納されていない）送信ＭＢ２１６ｂがあるときは、当該空いている送信ＭＢ２１６ｂへ、送信バッファ２２０ｂの先頭に保存されているフレームを転送する。このとき、送信間隔調整ユニット２３２は、当該先頭に保存されているフレームがＣＦフレームであるときは、周期指定検出ユニット２３０が記憶した上記フレーム送信周期の下限値を参照し、送信バッファ２２０ｂから送信ＭＢ２１６ｂへのＣＦフレームの転送間隔が上記下限値以上の時間間隔となるように、送信ＭＢ２１６ｂへフレーム転送処理を制御する。
【００５５】
より具体的には、送信間隔調整ユニット２３２は、まず、先頭の送信バッファ２２０ｂに保存されているフレームがＣＦフレームか否かを判断する。そして、ＣＦフレームであるときは、最初のＣＦフレームか否かを判断し、最初のＣＦフレームであるときは、当該最初のＣＦフレームを空いている送信ＭＢ２１６ｂへ転送すると共に、処理装置２０２が備えるタイマ（不図示）により、当該転送後の経過時間の計測を開始する。
【００５６】
一方、先頭の送信バッファ２２０ｂに保存されているフレームがＣＦフレームであるが最初のＣＦフレームでないとき、すなわち、後続のＣＦフレームであるときは、上記タイマにより計測された前回のＣＦフレーム転送からの経過時間が上記下限値以上であるか否かを判断する。
【００５７】
そして、上記経過時間が上記下限値未満であるときは、送信バッファ２２０ｂの先頭に保存されているＣＦフレームに代えて、送信バッファ２２０ｂに記憶されているＣＦフレーム以外のフレームのうち受信時刻が最も古いフレームを、空いている送信ＭＢ２１６ｂへ転送する。一方、上記経過時間が上記下限値以上であるときは、送信バッファ２２０ｂの先頭に保存されているＣＦフレームを、空いている送信ＭＢ２１６ｂへ転送すると共に、上記タイマにより、当該転送後の経過時間の計測を新たに開始する。
【００５８】
また、一方、送信バッファ２２０ｂの先頭に保存されているフレームがＣＦフレームでないときは、送信間隔調整ユニット２３２は、当該先頭に保存されているフレームを、そのまま空いている送信ＭＢ２１６ｂへ転送する。
【００５９】
そして、送信バッファ２２０ｂ内のいずれかのフレームを送信ＭＢ２１６ｂへ転送した後は、送信バッファ２２０ｂに受信フレームが時系列順に格納されている状態となるように、送信バッファ２２０ｂの受信フレームをその到着時刻順にソートする。このソートは、例えば、当該転送により送信バッファ２２０ｂ内に生じた空き領域以降の領域に保存されているフレームを当該送信バッファ２２０ｂの先頭方向へ移動させ、送信バッファ２２０ｂ内にフレームが連続して保存されている状態となるようにすることで行うことができる。
【００６０】
上記の構成を有するゲートウェイ装置１０は、処理装置２０２の周期指定検出ユニット２３０により、ＥＣＵ１１０から診断装置１３０へ送信されたＦＣフレームを検出し、当該ＦＣフレームにより指定されたフレーム送信周期の下限値を取得して記憶する。そして、ゲートウェイ装置１０は、送信間隔調整ユニット２３２により、診断装置１３０からＥＣＵ１１０へ向けてＣＦフレームを転送する際に、上記記憶した下限値を参照し、送信バッファ２２０ｂから送信ＭＢ２１６ｂへのＣＦフレームの転送間隔が上記下限値以上となるように、送信ＭＢ２１６ｂへのフレーム転送処理を制御する。
【００６１】
これにより、ゲートウェイ装置１０は、ＥＣＵ１１０と診断装置１３０との間で動的に決定されたデータ送信間隔の条件（すなわち、ＦＣフレームにより与えられたフレーム送信周期の下限値の指定）を損なうことなく、診断装置１３０から送信されるＣＦフレームをＥＣＵ１１０に中継することができる。
【００６２】
図３は、診断装置１３０とＥＣＵ１１０との間の診断通信を中継する、ゲートウェイ装置１０の動作の一例を示す図である。図３には、当該診断通信を構成する通信イベントが、図示上方から下方に向かって時系列に示されている。
【００６３】
符号３００及び３０２により示された図示縦方向の２つのラインは、ネットワーク１０２のバス１０６に接続された各装置の時間の経過を表しており、より具体的には、診断装置１３０における時間の経過及びゲートウェイ装置１０のＣＡＮ通信モジュール２００ｂにおける時間の経過をそれぞれ表している。また、符号３０４及び３０６により示された図示縦方向の２つのラインは、ネットワーク１００のバス１０４に接続された各装置の時間の経過を表しており、より具体的には、ゲートウェイ装置１０のＣＡＮ通信モジュール２００ａにおける時間の経過及びＥＣＵ１１０における時間の経過をそれぞれ表わしている。
【００６４】
ライン３００〜３０６のうち互いに隣接するライン間に描かれた図示横方向の実線矢印は、それぞれ通信イベントを表わしている。より詳細には、ライン３００とライン３０２との間の実線矢印はバス１０６における通信イベントを表わし、ライン３０４とライン３０６との間の実線矢印はバス１０４における通信イベントを表わしている。また、ライン３０２とライン３０４との間の図示横方向の破線矢印は、ゲートウェイ装置１０内部を通過する受信フレームの流れを、模式的に示している。
【００６５】
まず、診断装置１３０は、ＥＣＵ１１０に向けてＦＦフレーム３１０をバス１０６へ送出し、当該ＦＦフレーム３１０は、ゲートウェイ装置１０を介してバス１０４へ送出され、ＥＣＵ１１０に受信される。次に、ＦＦフレーム３１０を受信したＥＣＵ１１０は、送信周期の下限値T1を指定するＦＣフレーム３１２を、診断装置１３０に向けてバス１０４へ送出する。
【００６６】
当該送出されたＦＣフレーム３１２は、ゲートウェイ装置１０により受信され、ゲートウェイ装置１０の周期指定検出ユニット２３０により検知される。当該周期指定検出ユニット２３０は、ＦＣフレーム３１２からフレーム送信周期の下限値T1を取得し、当該取得した下限値T1を記憶した後、当該ＦＣフレーム３１２をそのままバス１０６へ送出する。送出された当該ＦＣフレーム３１２は、バス１０６を介して診断装置１３０に受信される。
【００６７】
次に、ＦＣフレーム３１２を受信した診断装置１３０は、例えば５つのＣＦフレーム３２０、３２２、３２４、３２６、及び３２８を、上記ＦＣフレーム３１２により指定された送信周期の下限値T1以上の時間間隔でバス１０６へ送出する。当該送出されたＣＦフレーム３２０〜３２８は、ゲートウェイ装置１０に受信され、周期指定検出ユニット２３０により送信バッファ２２０ａに一旦格納された後、送信間隔調整ユニット２３２により送信ＭＢ２１６ａへ転送され、送信機２１４ａによりバス１０４への送信が試みられる。これにより、より優先度の高いフレームがバス１０４上に送信されなければ、上記受信されたフレームは、送信バッファ２２０ａ及び送信ＭＢ２１６ａ内に留まることなく、送信機２１４ａからバス１０４へ送出される。
【００６８】
図３に示す例では、診断装置１３０からＣＦフレーム３２０がバス１０６上に送出される時刻より少し前の時刻t1から、ＣＦフレーム２３８がバス１０６へ送出される時刻より少し後の時刻t2までの期間３４０において、バス１０４上にＣＦフレーム３２０〜３２８よりも優先度の高いフレームが他のＥＣＵから送出されたとする。この場合、ゲートウェイ装置１０が備える送信機２１４ａは、ＣＡＮ通信規格に従い、バス１０４上に送出された上記優先度の高いフレームよりも優先度の低いＣＦフレーム３２０〜３２８の送出を中止し、上記優先度の高いフレームの送信完了を待機する。その結果、バス１０６から受信されたＣＦフレーム３２０〜３２８は、送信バッファ２２０ａ内に全て保存され蓄積される。
【００６９】
時刻t2を過ぎ、バス１０４上に優先度の高いフレームが送出されなくなると、ゲートウェイ装置１０の送信機２１４ａは、ＣＡＮ通信規格に従い、送信ＭＢ２１６ａ内のフレームを優先度順にバス１０４へ送出するので、送信ＭＢ２１６ａには順次空きが生ずることとなる。送信間隔調整ユニット２３２は、送信ＭＢ２１６ａに空きが生じたことを検知すると、周期指定検出ユニット２３０が記憶した上記下限値以上の時間間隔で、送信バッファ２２０ａ内のＣＦフレーム３２０〜３２８を送信ＭＢ２１６ａへ転送する。
【００７０】
これにより、ゲートウェイ装置１０の送信機２１４ａは、診断装置１３０からのＣＦフレーム３２０〜３２８を、上記下限値以上の時間間隔でＥＣＵ１１０へ送信することとなる。
【００７１】
次に、ゲートウェイ装置１０の処理装置２０２の動作手順について説明する。
処理装置２０２は、バス１０４及びバス１０６から受信されたフレームを、それぞれ、受信ＭＢ２１２ａ及び２１２ｂから取得して送信バッファ２２０ｂ及び２２０ａに格納する受信処理と、送信バッファ２２０ａ及び２２０ｂに格納されたフレームを、それぞれ送信ＭＢ２１６ａ及び２１６ｂへ転送する送信処理と、を行う。以下、受信処理及び送信処理の手順を、順に説明する。
【００７２】
〔受信処理〕
まず、処理装置２０２が行う受信処理の手順について、図４に示すフロー図に従って説明する。以下の説明では、一例としてバス１０４から受信されたフレームを受信ＭＢ２１２ａから取得して送信バッファ２２０ｂに格納する場合の受信処理について説明する。
【００７３】
なお、バス１０６から受信されたフレームを受信ＭＢ２１２ｂから取得して送信バッファ２２０ａに格納する場合の受信処理は、以下に示すバス１０４から受信されたフレームを受信ＭＢ２１２ａから取得して送信バッファ２２０ｂに格納する場合の受信処理と同様である。
【００７４】
すなわち、以下に示す受信処理は、「バス１０４」との記載を「バス１０６」に置き換えると共に、ＣＡＮ通信モジュール２００ａの各要素についての記載をＣＡＮ通信モジュール２００ｂの各要素に置き換え、「送信バッファ２２０ｂ」との記載を「送信バッファ２２０ａ」に置き換えることにより、バス１０６から受信されたフレームを受信ＭＢ２１２ｂから取得して送信バッファ２２０ａに格納する場合の受信処理となる。
【００７５】
本処理は、ゲートウェイ装置１０の電源が投入されたときに開始する。
処理を開始すると、まず、処理装置２０２は、ＣＡＮ通信モジュール２００ａを介してバス１０４よりフレームを受信したか否かを判断する（Ｓ１００）。この判断は、例えば、処理装置２０２がＣＡＮ通信モジュール２００ａのステータスレジスタ２１８ａを参照し、受信ＭＢ２１２ａにフレームが格納されているか否かを判断することにより行うことができる。
【００７６】
そして、バス１０４からフレームを受信していないときは（Ｓ１００、Ｎｏ）、ステップＳ１００に戻ってフレームが受信されるのを待機し、一方、フレームを受信したときは（Ｓ１００、Ｙｅｓ）、周期指定検出ユニット２３０は、受信ＭＢ２１２ａから受信フレームを読み出し、当該受信フレームがＦＣフレームか否かを判断する（Ｓ１０２）。この判断は、上述したように、受信フレームに含まれるフレーム識別コードを参照することにより行うことができる。
【００７７】
ステップＳ１０２において受信フレームがＦＣフレームであったときは（Ｓ１０２、Ｙｅｓ）、周期指定検出ユニット２３０は、当該ＦＣフレームに含まれるデータからフレーム送信周期の下限値の指定を取得し、当該取得した下限値を、処理装置２０２が備える記憶装置（不図示）に記憶する（Ｓ１０４）。その後、周期指定検出ユニット２３０は、上記受信フレームを、記憶装置２０４の送信バッファ２２０ｂに時系列に保存する（Ｓ１０６）。この時系列の保存は、上述したように、例えば送信バッファ２２０ｂ内に最後に保存されたフレームの後ろの記憶領域に、上記受信フレームを保存することにより行うことができる。
【００７８】
ステップＳ１０６において受信フレームを送信バッファ２２０ｂに保存した後は、ステップＳ１００に戻って処理を繰り返す。なお、本処理は、ゲートウェイ装置１０の電源が断になったときに終了する。
【００７９】
一方、ステップＳ１０２において受信フレームがＦＣフレームでないときは（Ｓ１０２、Ｎｏ）、周期指定検出ユニット２３０は、ステップＳ１０６に処理を移し、受信フレームを送信バッファ２２０ｂに保存する。
【００８０】
〔送信処理〕
次に、処理装置２０２が行う送信処理の手順について、図５に示すフロー図に従って説明する。以下の説明では、一例として送信バッファ２２０ａに格納されたフレームを送信ＭＢ２１６ａへ転送する送信処理について説明する。
【００８１】
なお、送信バッファ２２０ｂに格納されたフレームを送信ＭＢ２１６ｂへ転送する場合の送信処理は、以下に示す送信バッファ２２０ａに格納されたフレームを送信ＭＢ２１６ａへ転送する送信処理と同様である。
【００８２】
すなわち、以下に示す送信処理は、「バス１０４」との記載を「バス１０６」に置き換えると共に、ＣＡＮ通信モジュール２００ａの各要素についての記載をＣＡＮ通信モジュール２００ｂの各要素に置き換え、「送信バッファ２２０ａ」との記載を「送信バッファ２２０ｂ」に置き換えることにより、送信バッファ２２０ｂに格納されたフレームを送信ＭＢ２１６ｂへ転送する送信処理となる。
【００８３】
本処理は、ゲートウェイ装置１０の電源が投入されたときに開始する。
処理を開始すると、まず、処理装置２０２の送信間隔調整ユニット２３２は、ＣＡＮ通信モジュール２００ａの送信ＭＢ２１６ａに空きがあるか否か、すなわち、フレームを格納していない送信ＭＢ２１６ａがあるか否かを判断し（Ｓ２００）、空きがないときは（Ｓ２００、Ｎｏ）、ステップＳ２００を繰り返して、送信ＭＢ２１６ａに空きが発生するのを待機する。
【００８４】
ここで、送信ＭＢ２１６ａに空きが発生するのは、送信ＭＢ２１６ａに格納されているフレームが送信機２１４ａからバス１０４へ送出された場合であり、したがって、送信ＭＢ２１６ａに空きが発生するのを待機することは、いずれかの送信ＭＢ２１６ａに格納されているフレームがバス１０４へ送出されるのを待機することと等価である。なお、送信ＭＢ２１６ａに空きがあるか否かは、例えば、送信間隔調整ユニット２３２がステータスレジスタ２１８が記憶するステータスデータを参照することにより、当該ステータスデータから判断することができる。
【００８５】
一方、ステップＳ２００において送信ＭＢ２１６ａに空きがあるときは（Ｓ２００、Ｙｅｓ）、送信間隔調整ユニット２３２は、記憶装置２０４が備える送信バッファ２２０ａの先頭の格納領域に保存されているフレームが、ＣＦフレームであるか否かを判断し（Ｓ２０２）、ＣＦフレームでないときは（Ｓ２０２、Ｎｏ）、送信バッファ２２０ａの先頭に保存されているフレームを、空いている送信ＭＢ２１６ａへ転送した後（Ｓ２０４）、ステップＳ２００に戻って処理を繰り返す。
【００８６】
一方、ステップＳ２０２において送信バッファ２２０ａの先頭に保存されているフレームがＣＦフレームであるときは（Ｓ２０２、Ｙｅｓ）、当該ＣＦフレームが最初のＣＦフレームであるか否かを判断する（Ｓ２０６）。そして、送信バッファ２２０ａの先頭に保存されているＣＦフレームが最初のＣＦフレームであるときは（Ｓ２０６、Ｙｅｓ）、送信バッファ２２０ａの先頭に保存されている当該最初のＣＦフレームを、空いている送信ＭＢ２１６ａへ転送し（Ｓ２０８）、処理装置２０２が備えるタイマ（不図示）による時間計測を開始した後（Ｓ２１０）、ステップＳ２００に戻って処理を繰り返す。これにより、最初のＣＦフレームを送信ＭＢ２１６ａへ転送した後の経過時間の計測が開始される。
【００８７】
一方、ステップＳ２０６において送信バッファ２２０ａの先頭に保存されているＣＦフレームが最初のＣＦフレームでないときは（Ｓ２０６、Ｎｏ）、上記タイマにより計測されている経過時間が、上述の受信処理において周期指定検出ユニット２３０が記憶したフレーム送信周期の下限値（図４のステップＳ１０４）を超えているか否かを判断する（Ｓ２１２）。
【００８８】
そして、超えているときは（Ｓ２１２、Ｙｅｓ）、上記タイマによる経過時間の計測を終了してから（Ｓ２１４）、送信バッファ２２０ａの先頭に保存されているＣＦフレームを、空いている送信ＭＢ２１６ａへ転送する（Ｓ２１６）。また、当該ＣＦフレームが最後のＣＦフレームであるか否かを判断し（Ｓ２１８）、最後のＣＦフレームであるときは（Ｓ２１８、Ｙｅｓ）、受信処理において周期指定検出ユニット２３０が記憶したフレーム送信周期の下限値（図４のステップＳ１０４）を消去した後（Ｓ２２２）、ステップＳ２００に戻って処理を繰り返す。
【００８９】
なお、図４及び図５に示すフロー図には明示的に記載されていないが、最初のＣＦフレームか否か、及び最後のＣＦフレームか否かの判断は、例えば、診断装置１３０からＦＦフレームを受信した際に当該ＦＦフレームに含まれるデータ長（後続する診断情報全体の長さ）を記憶しておき、ＣＦフレームを送信バッファ２２０ａから送信ＭＢ２１６ａに転送する毎に、転送したＣＦフレームのテータ長を積算するものとして、当該積算した値が０であれば最初のＣＦフレームであるものと判断し、当該積算値が上記データ長と一致すれば最後のＣＦフレームであるものと判断するものとすることができる。なお、当該積算値は、ＦＦフレームを受信したときにリセットするものとする。
【００９０】
一方、ステップＳ２１６において送信ＭＢ２１６ａへ転送したＣＦフレームが最後のＣＦフレームでないときは（Ｓ２１８、Ｎｏ）、上記タイマにより新たに経過時間の計測を開始した後（Ｓ２２０）、ステップＳ２００に戻って処理を繰り返す。これにより、ステップＳ２１６において送信ＭＢ２１６ａにＣＦフレームを転送した後の経過時間の計測が新たに開始される。
【００９１】
また一方、ステップＳ２１２において、上記タイマが計測した経過時間が、上記下限値を超えていないときは（Ｓ２１２、Ｎｏ）、送信バッファ２２０ａ内の、ＣＦフレーム以外のフレームのうち受信時刻が最も古いフレームを、空いている送信ＭＢ２１６ａへ転送した後（Ｓ２２４）、ステップＳ２００に戻って処理を繰り返す。なお、上記「送信バッファ２２０ａ内の、ＣＦフレーム以外のフレームのうち受信時刻が最も古いフレーム」は、“送信バッファ２２０ａに保存されているＣＦフレーム以外のフレームのうち、送信バッファ２２０ａの先頭に最も近い記憶領域に保存されているフレーム”として特定することができる。
【００９２】
上記送信処理により、送信間隔調整ユニット２３２は、受信処理において周期指定検出ユニット２３０が記憶したフレーム送信周期の下限値を用い、連続するＣＦフレームを当該下限値以上の時間間隔で送信ＭＢ２１６ａに格納することとなる。その結果、当該連続するＣＦフレームは、当該下限値以上の時間間隔で送信機２１４ａからバス１０４へ送出されることとなる。
【００９３】
なお、送信間隔調整ユニット２３２は、ステップＳ２０４、Ｓ２０８、Ｓ２１６、及びＳ２２２において、送信バッファ２２０ａから送信ＭＢ２１６ａへフレームを転送したときは、その都度、送信バッファ２２０ａ内においてフレームが受信時刻の古い順に連続して保存されている状態となるように、送信バッファ２２０ａ内に保存されているフレームをソートするものとする。
【００９４】
なお、本実施形態では、診断装置１３０と１つのＥＣＵ１１０との間で診断通信が行われるものとしたが、これに限らず、診断装置１３０は、複数のＥＣＵに対して同じ診断情報を同時に送信するものとすることもできる。すなわち、診断装置１３０は、例えば、当該複数のＥＣＵに対してＦＦフレームを送信すると共に、当該ＦＦフレームを受信したことに応じて当該複数のＥＣＵから送信される各ＦＣフレームを受信し、当該各ＦＣフレームで指定されたフレーム送信周期の下限値のうち最も長い周期を指定する下限値を用いて、後続のＣＦフレームを送信するものとすることができる。
【００９５】
この場合、ゲートウェイ装置１０の周期指定検出ユニット２３０は、上記複数のＥＣＵから送信される各ＦＣフレームを受信して、当該各ＦＣフレームで指定されたフレーム送信周期の下限値のうち最も長い周期を指定する下限値を記憶するものとし、送信間隔調整ユニット２３２は、当該記憶された下限値を用いて、送信バッファ２２０ａから送信ＭＢ２１４ａへのＣＦフレームの転送間隔を制御するものとすることができる。
【００９６】
また、本実施形態では、一度に診断装置１３０と一のＥＣＵ（例えばＥＣＵ１１０）との間での診断通信のみが中継されるものとしたが、場合によっては、診断装置１３０と一のＥＣＵ（例えばＥＣＵ１１０）との間で一の診断通信が開始された後、当該一の診断通信の中継動作が完了しないうちに、診断装置１３０と他の一のＥＣＵ（例えばＥＣＵ１１２）との間での他の診断通信が開始される場合があり得る。この場合、ゲートウェイ装置１０内に、一の診断通信に係るＣＦフレームと、他の診断通信に係るＣＦフレームとが蓄積されることとなるので、いずれのＣＦフレームにいずれの送信周期下限値を適用するかを管理する必要がある。
【００９７】
したがって、このような場合には、ゲートウェイ装置１０の周期指定検出ユニット２３０は、ＦＣフレームに含まれるフレーム送信周期下限値を、当該ＦＣフレームの送信先情報及び送信元情報と対応付けて記憶するものとし、送信間隔調整ユニット２３２は、ＣＦフレームを送信バッファ２２０ａから送信ＭＢ２１６ａに転送する際に、上記記憶された送信周期下限値のうち、当該ＣＦフレームの送信元及び送信先に対応付けられている下限値を用いて、当該転送動作を制御するものとすればよい。
【００９８】
〔第２実施形態〕
次に、本発明の第２の実施形態に係るゲートウェイ装置について説明する。
本ゲートウェイ装置は、診断装置からＥＣＵへ向けて送信されたＦＦフレームを受信すると、当該ＦＦフレームを受信してから当該ＦＦフレームを転送先のバスへ送出するまでの経過時間を計測する。そして、本ゲートウェイ装置は、当該計測した経過時間が所定時間を超えていた場合において、上記ＦＦフレームに応答して上記ＥＣＵが診断装置へ送信したＦＣフレームに含まれるフレーム送信周期の下限値が所定の閾値以下であるときは、当該ＦＣフレームの上記下限値を所定値に書き換えてから当該ＦＣフレームを診断装置へ転送する。
【００９９】
一般に、ゲートウェイ装置がＦＦフレームを受信してから当該ＦＦフレームを転送先バスへ送出するまでの時間、すなわち、ゲートウェイ装置内におけるＦＦフレームの滞留時間は、転送先バスにおける高優先度フレーム（より具体的には、診断情報に係るフレームよりも高い優先度のフレーム）の存在により当該ＦＦフレームを転送先バスへ送出できなかった時間が含まれている。そして、上記ＦＦフレームの滞留時間は、転送先バスにおける状態、より具体的には、転送先バスにおける上記高優先度フレームの存在頻度（送出頻度）に依存し、当該存在頻度が高いほど長くなる。また、このようなＦＦフレーム転送時における転送先バスの状態は、その後に続くＣＦフレームの転送時においても継続していると考えることができる。
【０１００】
したがって、ゲートウェイ装置内でのＦＦフレームの滞留時間は、その後に続くＣＦフレームの、当該ゲートウェイ装置内における滞留時間を予測的に表わすものと捉えることができる。
【０１０１】
この場合、ＦＦフレームを受信したＥＣＵが、当該ＦＦフレームを受信したことに応じてＦＣフレームを診断装置へ送信し、上記ＦＦフレームの滞留時間よりも短いフレーム送信周期の下限値を指定した場合、その後に続くＣＦフレームは、ゲートウェイ装置内での滞留時間よりも短い時間間隔で診断装置から送信されることとなり、当該送信されたＣＦフレームはゲートウェイ装置内で多量に蓄積されてしまうことが予測される。
【０１０２】
本実施形態に係るゲートウェイ装置によれば、ＦＦフレームの滞留時間が所定時間より長く、かつＦＣフレームに含まれるフレーム送信周期の下限値が所定の閾値以下であるときは、当該下限値を所定値（より具体的には、当該閾値よりも長い値）に書き換えて、当該書き換え後のＦＣフレームを診断装置へ転送することができる。このため、本ゲートウェイ装置では、その後のＣＦフレーム転送時における当該ゲートウェイ装置内でのＣＦフレームの多量な蓄積を回避して、当該蓄積に要する記憶装置の容量を低減し、当該記憶装置の利用効率を高めることができる。
【０１０３】
図６は、本発明の第２の実施形態に係るゲートウェイ装置の構成を示す図である。
本ゲートウェイ装置６０は、第１の実施形態に係るゲートウェイ装置１０と同様の構成を有するが、処理装置２０２に代えて、処理装置６０２を有する点が異なる。なお、図６において、図２に示す第１の実施形態に係るゲートウェイ装置１０と同じ構成要素については、図２に示す符号と同じ符号を用いて示し、上述した図２についての説明を援用する。
【０１０４】
処理装置６０２は、第１の実施形態に係る処理装置２０２と同様の構成を有するが、周期指定検出ユニット２３０に代えて周期指定検出ユニット６３０を備えると共に、新たに滞留時間計測ユニット６３４を備える点が異なる。ここで、周期指定検出ユニット６３０及び滞留時間計測ユニット６３４は、コンピュータである処理装置６０２がプログラムを実行することにより実現される仮想マシンであり、機能実現手段である。ただし、周期指定検出ユニット６３０及び滞留時間計測ユニット６３４は、ハードウェアにより構成することもできる。
【０１０５】
処理装置６０２についての理解を容易にするため、以下の説明においては、本ゲートウェイ装置６０が、図１に示す車載ネットワークシステム１においてゲートウェイ装置１０に代えて用いられており、かつ、バス１０４に接続されたＥＣＵ１１０と診断装置１３０との間で、ゲートウェイ装置６０を介した診断通信が行われるものとする。
【０１０６】
滞留時間計測ユニット６３４は、ＣＡＮ通信モジュール２００ｂによりＦＦフレームが受信されたときに、ゲートウェイ装置６０内での当該ＦＦフレームの滞留時間を計測する。すなわち、滞留時間計測ユニット６３４は、ＣＡＮ通信モジュール２００ｂによりＦＦフレームが受信されてから、ＣＡＮ通信モジュール２００ａにより当該ＦＦフレームが送信されるまでの滞留時間を計測して、当該計測した滞留時間を処理装置６０２が備えるＲＡＭ等の記憶装置（不図示）に記憶する。
【０１０７】
周期指定検出ユニット６３０は、第１の実施形態に係る周期指定検出ユニット２３０と同様の機能を有するが、ＣＡＮ通信モジュール２００ａからＦＣフレームを受信したときに、所定の条件が成立していれば、当該受信したＦＣフレームに含まれるフレーム送信周期の下限値を所定値に書き換え、当該書き換え後のＦＣフレームを送信バッファ２２０ｂに保存する点が異なる。
【０１０８】
より詳細には、周期指定検出ユニット６３０は、ＦＣフレームを受信すると、滞留時間計測ユニット６３４が記憶したＦＦフレームの滞留時間を参照し、当該滞留時間が所定時間を超えており、かつ受信したＦＣフレームに含まれるフレーム送信周期の下限値が所定の閾値以下であるときは、当該ＦＣフレームに含まれる上記下限値を所定値（上記閾値よりも大きな値）に書き換えた後、当該書き換え後のＦＣフレームを送信バッファ２２０ｂに保存する。
【０１０９】
次に、図７及び図８を用いて本実施形態に係るゲートウェイ装置６０の作用について説明する。図７は、バス１０４に高優先度フレームが頻繁に送出される状態における、第１の実施形態に係るゲートウェイ装置１０の動作の例を示す図、図８は、図７と同じ状態における本実施形態に係るゲートウェイ装置６０の動作の例を示す図である。
【０１１０】
図７には、図３と同様に、診断通信を構成する通信イベントが図示上方から下方に向かって時系列に示されている。図示の例では、ゲートウェイ装置１０を介して、診断装置１３０とＥＣＵ１１０との間で診断通信が行われている。
【０１１１】
符号７００及び７０２により示された図示縦方向の２つのラインは、ネットワーク１０２のバス１０６に接続された各装置の時間の経過を表しており、より具体的には、診断装置１３０における時間の経過及びゲートウェイ装置１０のＣＡＮ通信モジュール２００ｂにおける時間の経過をそれぞれ表している。また、符号７０４及び７０６により示された図示縦方向の２つのラインは、ネットワーク１００のバス１０４に接続された各装置の時間の経過を表しており、より具体的には、ゲートウェイ装置１０のＣＡＮ通信モジュール２００ａにおける時間の経過及びＥＣＵ１１０における時間の経過をそれぞれ表わしている。
【０１１２】
ライン７００〜７０６のうち互いに隣接するライン間に描かれた図示横方向の実線矢印は、それぞれ通信イベントを表わしている。より詳細には、ライン７００とライン７０２との間の実線矢印はバス１０６における通信イベントを表わし、ライン７０４とライン７０６との間の実線矢印はバス１０４における通信イベントを表わしている。また、ライン７０２とライン７０４との間の破線矢印は、ゲートウェイ装置１０内部を通過する受信フレームの流れを、模式的に示している。
【０１１３】
ここで、ゲートウェイ装置１０とＥＣＵ１１０とが接続されているバス１０４には、診断情報に係るフレーム（例えば、ＦＦフレーム７１０、ＦＣフレーム７１２、ＣＦフレーム７２０〜７３０）より高い優先度を持つフレーム（以下、高優先度フレーム）が頻繁に送出されているものとする。より具体的には、時刻t3〜t4の期間７４０及び、時刻t5〜t6の期間７４２において、上記高優先度フレームがバス１０４に送出され、ゲートウェイ装置１０は、診断情報に係るフレームの送出を待機しなければならないものとする。
【０１１４】
まず、診断装置１３０は、ＥＣＵ１１０に向けてＦＦフレーム７１０をバス１０６へ送出し、当該ＦＦフレーム７１０はゲートウェイ装置１０に受信される。ゲートウェイ装置１０は、当該受信したＦＦフレーム７１０をバス１０４へ送出しようとするが、期間７４０において高優先度フレームがバス１０４上に送出されていることから、当該高優先度フレームの送信の終了を待機する。そして、ゲートウェイ装置１０は、上記高優先度フレームの送信が終了する時刻t4の後に、ＦＦフレーム７１０をバス１０４へ送出し、当該ＦＦフレーム７１０はＥＣＵ１１０に受信される。
【０１１５】
ＥＣＵ１１０は、ＦＦフレーム７１０を受信したことに応じて、送信周期の下限値T2を指定するＦＣフレーム７１２を、診断装置１３０に向けてバス１０４へ送出する。当該ＦＣフレーム７１２は、ゲートウェイ装置１０により中継されて、診断装置１３０に受信される。そして、診断装置１３０は、例えば、ＦＣフレーム７１２により指定された下限値T2よりも大きい時間間隔であって、かつT2とほぼ等しい時間間隔で、ＣＦフレーム７２０〜７３０をバス１０６へ送出し、当該ＣＦフレーム７２０〜７３０は、ゲートウェイ装置１０に受信される。
【０１１６】
ゲートウェイ装置１０は、各ＣＦフレーム７２０〜７３０を受信する毎に、当該受信したＣＦフレームをバス１０４へ送出しようとするが、期間７４２において高優先度フレームがバス１０４上に送出されていることから、ＣＦフレーム７２０〜７３０の送信を行うことなく当該高優先度フレームの送信の終了を待機する。これにより、診断装置１３０から送信されたＣＦフレーム７２０〜７３０は、全て、ゲートウェイ装置１０の記憶装置２０４が備える送信バッファ２２０ｂに保存され蓄積される。このため、記憶装置２０４の記憶領域は、多くのＣＦフレーム（図７の例では、６個のＣＦフレーム７２０〜７３０）により占有され、記憶領域の利用効率が低下する。
【０１１７】
そして、バス１０４における高優先度フレームの送信が終了する時刻t6の後に、ゲートウェイ装置１０は、送信バッファ２２０ｂに保存されたＣＦフレーム７２０〜７３０を、ＦＣフレーム７１２により指定されたフレーム送信周期の下限値T2以上の時間間隔でバス１０４へ送出する。これにより、ＥＣＵ１１０は、当該T2以上の時間間隔で、ＣＦフレーム７２０〜７３０を受信することとなる。
【０１１８】
一方、第２の実施形態に係るゲートウェイ装置６０の場合には、図８に示すように、図７と同様の状況下においても、送信バッファ２２０ｂに蓄積されるＣＦフレームの数を低減して、記憶装置２０４の記憶領域の利用効率を高めることができる。
【０１１９】
図８には、図７と同じ表記方法を用いて、診断装置１３０とＥＣＵ１１０との間の診断通信における、ゲートウェイ装置６０の中継動作の態様が示されている。図８では、図７におけるライン７０２及び７０４に代えて、ゲートウェイ装置６０のＣＡＮ通信モジュール２００ｂ及び２００ａの時間経過がライン８０２及び８０４により、それぞれ示されている。なお、図８において、図７に示すフレームや時間軸と同じフレーム及び時間軸については、図７と同じ符号を用いて示すものとし、上述した図７についての説明を援用する。
【０１２０】
図８において、診断装置１３０から送信されたＦＦフレーム７１０が、時刻t4の後にバス１０４へ送出される点は、図７と同様である。ただし、図８においては、ゲートウェイ装置６０は、滞留時間計測ユニット６３４により、バス１０６からＦＦフレーム７１０を受信した後、当該ＦＦフレーム７１０をバス１０４へ送出するまでの時間、すなわちゲートウェイ装置６０内でのＦＦフレーム７１０の滞留時間Tmを計測する。
【０１２１】
そして、ＥＣＵ１１０は、図７と同様に、ＦＦフレーム７１０を受信したことに応じて、フレーム送信周期の下限値T2を指定するＦＣフレーム７１２をバス１０４へ送出する。
【０１２２】
ゲートウェイ装置６０は、当該ＦＣフレーム７１２を受信すると、周期指定検出ユニット６３０により当該ＦＣフレームに含まれているフレーム送信周期の下限値T2を記憶する。また、周期指定検出ユニット６３０は、滞留時間計測ユニット６３４が測定したＦＦフレーム７１０の滞留時間Tmを参照し、当該滞留時間Tmが所定時間Tthmよりも長く、上記ＦＣフレーム７１２に含まれている上記下限値T2が所定の閾値Tthaより短いときは、当該ＦＣフレームに含まれている上記下限値の値T2を予め定められたより大きな値T3（より具体的には、上記所定の閾値Tthaより大きな値）に書き換え、新たなＦＣフレーム７１２´を生成する。さらに、ゲートウェイ装置６０は、当該書き換え後の新たなＦＣフレーム７１２´をバス１０６へ送出し、当該ＦＣフレーム７１２´は診断装置１３０により受信される。
【０１２３】
これにより、診断装置１３０は、ＦＣフレーム７１２´で指定されたフレーム送信周期の下限値T3以上の時間間隔で、ＣＦフレームをバス１０６へ送出する。ここで、ＦＣフレーム７１２´により指定されたT3は元のＦＣフレーム７１２に含まれる下限値T2よりも大きいため、バス１０４において高優先度フレームが送出されている時刻t5からt6までの期間７４２の間に、ゲートウェイ装置６０は、ＣＦフレーム７２０〜７３０の総数６
よりも少ない数のＣＦフレーム、例えば４個のＣＦフレーム７２０〜７２６を受信して、当該４個のＣＦフレーム７２０〜７２６を送信バッファ２２０ｂに保存する。
【０１２４】
そして、時刻t6を過ぎた後は、ゲートウェイ装置６０は、上記記憶した下限値T2に従って、送信バッファ２２０ｂ内に保存したＣＦフレーム７２０〜７２６をバス１０４へ送出し、診断装置１３０は、下限値T3に従って後続のＣＦフレーム７２８及び７３０をバス１０６へ送出する。すなわち、ゲートウェイ装置６０は、後続のＣＦフレーム７２８、７３０を受信する間隔（下限値T3に従う時間間隔）よりも短い時間間隔（下限値T2（＜T3）に従う時間間隔）で、蓄積したＣＦフレーム７２０〜７２６をバス１０４へ送出することとなるので、ゲートウェイ装置６０の送信バッファ２２０ｂに同時に保存されている（すなわち、蓄積されている）ＣＦフレームの数は４個から減少していくこととなる。
【０１２５】
このように、図７に示すゲートウェイ装置１０の中継動作では、送信バッファ２２０ｂに蓄積されるＣＦフレームの数は最大６個であるのに対し、図８に示すゲートウェイ装置６０の中継動作では、これよりも少ない数、例えば最大４個のフレームだけを送信バッファ２２０ｂに蓄積すればよいこととなる。したがって、ゲートウェイ装置６０では、送信バッファ２２０ｂの記憶容量の低減が可能となり、記憶装置２０４の記憶領域の利用効率を高めることができる。
【０１２６】
次に、ゲートウェイ装置６０の処理装置６０２の動作手順について説明する。一例として、以下の説明では、ゲートウェイ装置６０は、図１に示す車載ネットワークシステム１においてゲートウェイ装置１０に置き換えて用いられているものとする。
【０１２７】
処理装置６０２は、バス１０４及びバス１０６から受信されたフレームを、それぞれ、受信ＭＢ２１２ａ及び２１２ｂから取得して送信バッファ２２０ｂ及び２２０ａに格納する受信処理と、送信バッファ２２０ｂ及び２２０ａに格納されたフレームを、それぞれ送信ＭＢ２１６ｂ及び２１６ａへ転送する送信処理と、を行う。以下、受信処理及び送信処理の手順を、順に説明する。
【０１２８】
〔受信処理〕
まず、処理装置６０２が行う受信処理の手順について、図９に示すフロー図に従って説明する。以下の説明では、一例としてバス１０４から受信されたフレームを受信ＭＢ２１２ａから取得して送信バッファ２２０ｂに格納する場合の受信処理について説明する。
【０１２９】
なお、バス１０６から受信されたフレームを受信ＭＢ２１２ｂから取得して送信バッファ２２０ａに格納する場合の受信処理は、以下に示すバス１０４から受信されたフレームを受信ＭＢ２１２ａから取得して送信バッファ２２０ｂに格納する場合の受信処理と同様である。
【０１３０】
すなわち、以下に示す受信処理は、「バス１０４」との記載を「バス１０６」に置き換えると共に、ＣＡＮ通信モジュール２００ａの各要素についての記載をＣＡＮ通信モジュール２００ｂの各要素に置き換え、「送信バッファ２２０ｂ」との記載を「送信バッファ２２０ａ」に置き換えることにより、バス１０６から受信されたフレームを受信ＭＢ２１２ｂから取得して送信バッファ２２０ａに格納する場合の受信処理となる。
【０１３１】
本処理は、ゲートウェイ装置６０の電源が投入されたときに開始する。
処理を開始すると、まず、処理装置６０２は、ＣＡＮ通信モジュール２００ａを介してバス１０４よりフレームを受信したか否かを判断する（Ｓ３００）。この判断は、例えば、処理装置６０２がステータスレジスタ２１８ａを参照し、受信ＭＢ２１２ａにフレームが格納されているか否かを判断することにより行うことができる。
【０１３２】
そして、バス１０４からフレームを受信していないときは（Ｓ３００、Ｎｏ）、ステップＳ３００に戻ってフレームが受信されるのを待機する。一方、バス１０４からフレームを受信したときは（Ｓ３００、Ｙｅｓ）、滞留時間計測ユニット６３４は、受信ＭＢ２１２ａから受信フレームを読み出し、当該受信フレームがＦＦフレームか否かを判断する（Ｓ３０２）。この判断は、上述したように、受信フレームに含まれるフレーム識別コードを参照することにより行うことができる。
【０１３３】
そして、受信フレームがＦＦフレームであったときは（Ｓ３０２、Ｙｅｓ）、処理装置６０２が備えるタイマ（不図示）を起動して、ＦＦフレームの滞留時間（以下、ＦＦ滞留時間）の計測を開始した後（Ｓ３０４）、当該受信フレームを送信バッファ２２０ｂに保存する（Ｓ３１４）。
【０１３４】
なお、上記ステップＳ３０４で開始したＦＦ滞留時間の計測は、後述する送信処理において、上記ＦＦフレームが送信バッファ２２０ｂから読み出されて、送信機２１４ｂからバス１０４へ送出されたときに終了し、当該計測されたＦＦ滞留時間は、滞留時間計測ユニット６３４により処理装置６０２の記憶装置（不図示）に記憶される（図１０のステップＳ４０４）。
【０１３５】
一方、受信フレームがＦＦフレームでないときは（Ｓ３０２、Ｎｏ）、周期指定検出ユニット６３０は、当該受信フレームがＦＣフレームか否かを判断し（Ｓ３０６）、ＦＣフレームでないときは（Ｓ３０６、Ｎｏ）、ステップＳ３１４に処理を移す。
【０１３６】
一方、受信フレームがＦＣフレームであるときは（Ｓ３０６、Ｙｅｓ）、周期指定検出ユニット６３０は、当該ＦＣフレームに含まれるデータからフレーム送信周期の下限値の指定を取得し、当該取得した下限値を処理装置６０２が備える記憶装置（不図示）に記憶する（Ｓ３０８）。また、周期指定検出ユニット６３０は、後述する送信処理のステップＳ４０４（図１０）において記憶されたＦＦ滞留時間Tmを参照し、当該ＦＦ滞留時間Tmが所定時間Tthmを超えており、かつ、上記記憶した下限値が所定の閾値Ttha未満であるか否かを判断する（Ｓ３１０）。
【０１３７】
そして、周期指定検出ユニット６３０は、ＦＦ滞留時間が所定時間Tthmを超えており、かつ、上記下限値が所定の閾値Ttha未満であるときは（Ｓ３１０、Ｙｅｓ）、受信フレームであるＦＣフレームに含まれているフレーム送信周期の下限値を、予め定めた所定の値に書き換えた後（Ｓ３１２）、ステップＳ３１６に処理を移す。これにより、上記書き換え後のＦＣフレームは、送信バッファ２２０ｂに保存される。
【０１３８】
ステップＳ３１４において、バス１０４からの受信フレームが送信バッファ２２０ｂに保存された後は、処理装置６０２は、ステップＳ３００に戻って処理を繰り返す。なお、本処理は、ゲートウェイ装置６０の電源が断になっときに終了する。
【０１３９】
〔送信処理〕
次に、処理装置６０２が行う送信処理の手順について、図１０に示すフロー図に従って説明する。以下の説明では、一例として送信バッファ２２０ａに格納されたフレームを送信ＭＢ２１６ａへ転送する送信処理について説明する。
【０１４０】
なお、送信バッファ２２０ｂに格納されたフレームを送信ＭＢ２１６ｂへ転送する場合の送信処理は、以下に示す送信バッファ２２０ａに格納されたフレームを送信ＭＢ２１６ａへ転送する送信処理と同様である。
【０１４１】
すなわち、以下に示す送信処理は、「バス１０４」との記載を「バス１０６」に置き換えると共に、ＣＡＮ通信モジュール２００ａの各要素についての記載をＣＡＮ通信モジュール２００ｂの各要素に置き換え、「送信バッファ２２０ａ」との記載を「送信バッファ２２０ｂ」に置き換えることにより、送信バッファ２２０ｂに格納されたフレームを送信ＭＢ２１６ｂへ転送する送信処理となる。
【０１４２】
本処理は、ゲートウェイ装置６０の電源が投入されたときに開始する。
処理を開始すると、まず、処理装置６０２の滞留時間計測ユニット６３４は、いずれかの送信ＭＢ２１６ａにＦＦフレームが格納されていることを示すフラグであるＦＬＡＧが１であるか否かを判断する（Ｓ４００）。ここで、ＦＬＡＧ＝０は、いずれの送信ＭＢ２１６ａにもＦＦフレームが格納されていないことを示し、ＦＬＡＧ＝１は、いずれかの送信ＭＢ２１６ａにＦＦフレームが格納されていることを示すものとする。このＦＬＡＧは、ＦＦフレームを送信バッファ２２０ａから送信ＭＢ２１６ａへ転送したときに、後述するステップＳ４１２において１にセットされ、送信ＭＢ２１６ａから送信機２１４ａを介してバス１０４へ送出されたことが検知されたときに、後述するステップＳ４０６により０にリセットされる。また、ＦＬＡＧは、ゲートウェイ装置６０の電源が投入されたときにも、その初期化動作の際に０にリセットされるものとする。
【０１４３】
続いて、ステップＳ４００においてＦＬＡＧ＝１であるときは（Ｓ４００、Ｙｅｓ）、送信ＭＢ２１６ａに格納されているＦＦフレームが送信されたか否かを判断する（Ｓ４０２）。ここで、ＦＦフレームが送信されたか否かの判断は、例えば、滞留時間計測ユニット６３４がゲートウェイ装置６００ａのステータスレジスタ２１８ａを参照し、ステップＳ４１６において記憶された情報に基づき、ＦＦフレームを格納している送信ＭＢ２１６ａが空になったか否かを判断することにより行うことができる。
【０１４４】
そして、送信ＭＢ２１６ａに格納されていたＦＦフレームが送信されたときは（Ｓ４０２、Ｙｅｓ）、ＦＦ滞留時間の計測を終了し、計測したＦＦ滞留時間を記憶する（Ｓ４０４）。また、ＦＬＡＧを０にリセットした後（Ｓ４０６）、送信ＭＢ２１６ａに空きがあるか否かを判断する（Ｓ４０８）。
【０１４５】
一方、ステップＳ４００においてＦＬＡＧが１でないとき（Ｓ４００、Ｎｏ）、及び、ステップＳ４０２において送信ＭＢ２１６ａに格納されているＦＦフレームが未だ送信されていないときは（Ｓ４０２、Ｎｏ）、ステップＳ４０８に処理を移す。
【０１４６】
次に、ステップＳ４０８においていずれの送信ＭＢ２１６ａにも空きがないときは（Ｓ４０８、Ｎｏ）、ステップＳ４０８を繰り返して、いずれかの送信ＭＢ２１６ａに空きができるのを待機する。
【０１４７】
一方、ステップＳ４０８においていずれかの送信ＭＢ２１６ａに空きがあるときは（Ｓ４０８、Ｙｅｓ）、送信バッファ２２０ａの先頭に保存されているフレームがＦＦフレームであるか否かを判断する（Ｓ４１０）。そして、先頭に保存されているフレームがＦＦフレームであるときは（Ｓ４１０、Ｙｅｓ）、ＦＬＡＧを１にセットすると共に（Ｓ４１２）、当該先頭に保存されているＦＦフレームを空いている送信ＭＢ２１６ａへ転送し（Ｓ４１４）、当該ＦＦフレームの転送先である送信ＭＢ２１６ａ（すなわち、当該ＦＦフレームを格納した送信ＭＢ２１６ａ）を特定するための情報を、処理装置６０２が備えるＲＡＭ等の記憶装置（不図示）に記憶した後（Ｓ４１６）、ステップＳ４００に戻って処理を繰り返す。
【０１４８】
一方、ステップＳ４１０において送信バッファ２２０ａの先頭に保存されているフレームがＦＦフレームでないときは（Ｓ４１０、Ｎｏ）、ステップＳ４１８に処理を移す。
【０１４９】
図１０における上記以外のステップＳ４１８〜Ｓ４４０は、図５のステップＳ２０２〜Ｓ２２４と同様であるので、上述した図５についての説明を援用する。
【０１５０】
以上、説明したように、第１及び第２の実施形態に係るゲートウェイ装置は、一のネットワークのバス（例えばバス１０４）に接続された一の端末装置（例えばＥＣＵ）から他のネットワークのバス（例えばバス１０６）に接続された他の端末装置（例えば診断装置）への、データ送信間隔を指定する信号（例えばＦＣフレーム）を上記２つのネットワーク間で中継（転送）すると共に、当該信号に含まれたデータ送信間隔の指定を記憶する。
【０１５１】
そして、本ゲートウェイ装置は、その後に上記他の端末装置が送信したデータを上記他のバスから受信すると、上記記憶したデータ送信間隔の指定に従った時間間隔で、当該受信したデータを上記一の端末装置へ向けて上記一のバスへ送出する。
【０１５２】
これにより、本ゲートウェイ装置は、異なる２つのネットワークを跨いで上記一の端末装置が上記他の端末装置に対して指定したデータ送信間隔の条件を損なうことなく、上記他の端末装置から送信されるデータを上記一の端末装置へ、当該２つのネットワークを跨いで中継（転送）することができる。
【０１５３】
なお、上述した実施形態では、一例として車載ネットワークシステムにおいて診断装置とＥＣＵとの間で行われる診断通信を中継するゲートウェイ装置を示したが、これに限らず、本発明に係るゲートウェイ装置は、車載ネットワークシステム以外の一般的なネットワークシステムにおいて、互いの間でデータ送信間隔を動的に決定することのできる端末装置間のデータ通信を中継する際にも、同様に適用することができる。
【符号の説明】
【０１５４】
１・・・車載ネットワークシステム、１０、６０、１１０２・・・ゲートウェイ装置、１００、１０２・・・ネットワーク、１０４、１０６・・・バス、１１０、１１２、１１４、１１６、１２０、１２２、１２４、１００４・・・ＥＣＵ、１３０、１１００・・診断装置、２００ａ、２００ｂ・・・ＣＡＮ通信モジュール、２０２、６０２・・・処理装置、２０４・・・記憶装置、２１０ａ、２１０ｂ・・・受信機、２１２ａ、２１２ｂ・・・受信ＭＢ、２１４ａ、２１４ｂ・・・送信機、２１６ａ、２１６ｂ・・・送信ＭＢ、２１８ａ、２１８ｂ・・・ステータスレジスタ、２２０ａ、２２０ｂ・・・送信バッファ、２３０、６３０・・・周期指定検出ユニット、２３２・・・送信間隔調整ユニット、６３４・・・滞留時間計測ユニット。
【図１】
2015000597.tif 000003
【図２】
2015000597.tif 000004
【図３】
2015000597.tif 000005
【図４】
2015000597.tif 000006
【図５】
2015000597.tif 000007
【図６】
2015000597.tif 000008
【図７】
2015000597.tif 000009
【図８】
2015000597.tif 000010
【図９】
2015000597.tif 000011
【図１０】
2015000597.tif 000012
【図１１】
2015000597.tif 000013