(57)【特許請求の範囲】
【請求項１】
イベント・ドリブン型の通信プロトコルによってフレームデータが送受信される第一ネットワーク、及び、タイム・トリガ型の通信プロトコルによってフレームデータが送受信される第二ネットワークに接続され、予め定められた転送対象のフレームデータを、前記第一ネットワークから前記第二ネットワークへ転送するデータ転送装置と、
前記第一ネットワークに設けられて、前記イベント・ドリブン型の通信プロトコルに従い、フレームデータの送受信を実行するノードと、
からなるデータ転送システムであって、
前記タイム・トリガ型の通信プロトコルは、予め定められたスケジュールに従い、各フレームデータを規定の時刻に、前記第二ネットワークへ送信するように定められた通信プロトコルであり、
前記データ転送装置は、
前記第一ネットワークに対してフレームデータの送受信が可能な第一通信手段と、
前記第二ネットワークに対してフレームデータの送信が可能な第二通信手段と、
前記第二ネットワークを伝送しているフレームデータが、前記スケジュールに予め定められたフレームデータの内の何れのフレームデータであるかの情報を取得し、前記取得した情報と前記スケジュールとを照合することで、現在時刻が、前記転送対象のフレームデータに対して前記タイム・トリガ型の通信プロトコルにより定められた送信開始時刻の所定時間前の時刻であるか否かを判断する判断手段と、
前記判断手段によって、現在時刻が、前記転送対象のフレームデータに対して前記タイム・トリガ型の通信プロトコルにより定められた送信開始時刻の所定時間前の時刻であると判断されると、当該転送対象のフレームデータを要求するための要求フレームデータを生成すると共に、当該転送対象のフレームデータを当該データ転送装置に対して送信可能な前記第一ネットワーク内のノードに向けて、前記生成した要求フレームデータを、前記第一通信手段に送信させる要求手段と、
を備え、
前記ノードは、前記要求フレームデータを受信すると、前記要求フレームデータの要求内容に従って、前記転送対象のフレームデータを前記第一ネットワークを介して前記データ転送装置に向けて送信する構成にされ、
前記第二通信手段は、前記第一通信手段が前記第一ネットワークを通じて受信した前記転送対象のフレームデータを、前記スケジュールに従って、規定の時刻に前記第二ネットワークに送信する
ことを特徴とするデータ転送システム。
【請求項２】
前記判断手段および前記要求手段は、繰り返し動作するように構成され、
前記データ転送装置は、
前記要求フレームデータを送信してから予め定められた時間内に、当該要求フレームデータにより要求した前記転送対象のフレームデータを、前記第一通信手段が受信しなかった場合、前記第一通信手段が受信しなかった前記転送対象のフレームデータを要求する前記要求フレームデータの次回以降の生成を、前記要求手段に禁止させることが可能な禁止手段
を備える
ことを特徴とする請求項１に記載のデータ転送システム。
【請求項３】
前記要求手段は、前記生成する要求フレームデータに待機時間の情報を格納し、
前記ノードは、前記待機時間の情報が格納された要求フレームデータを受信すると、当該要求フレームデータを受信した時点から、当該要求フレームデータが示す前記待機時間の経過後に、当該要求フレームデータにより要求された前記転送対象のフレームデータを、前記データ転送装置に向けて送信する
ことを特徴とする請求項１又は請求項２に記載のデータ転送システム。
【請求項４】
前記データ転送装置は、
前記要求手段により前記要求フレームデータを送信してから、前記第二通信手段が、前記要求フレームデータに対応する転送対象のフレームデータを、前記第二ネットワークに送信可能となるまでの時間である遅延時間を予測する予測手段
を備え、
前記判断手段は、前記所定時間を、前記予測手段によって予測された遅延時間に設定して、現在時刻が、前記送信開始時刻の所定時間前の時刻であるか否かを判断する構成にされている
ことを特徴とする請求項１から請求項３までの何れかに記載のデータ転送システム。
【請求項５】
前記予測手段は、前記第一ネットワークの負荷を測定するネットワーク負荷測定手段を備え、前記ネットワーク負荷測定手段の測定結果に基づいて、前記遅延時間を予測する
ことを特徴とする請求項４に記載のデータ転送システム。
【請求項６】
前記データ転送装置は、ＣＰＵ及び前記ＣＰＵにより実行されるプログラムを記憶するプログラム記憶手段を備え、
前記ＣＰＵは、前記プログラム記憶手段に記憶されたプログラムを実行することにより、前記判断手段、前記要求手段および前記予測手段としての機能を実現し、
前記プログラムは、前記ＣＰＵの処理負荷を測定し、前記処理負荷の測定結果に基づいて、前記遅延時間を予測する処理を、前記ＣＰＵが実行可能なように構成されている
ことを特徴とする請求項４又は請求項５に記載のデータ転送システム。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、データを転送するシステムに関する。
【背景技術】
【０００２】
従来、データ転送システムを構成するデータ転送装置としては、イベント・ドリブン型およびタイム・トリガ型など、異なる通信プロトコルによるネットワーク同士を中継し、一方のネットワークから他方のネットワークへデータを転送する際に、通信プロトコルに合わせてデータを変換するものが知られている。
【０００３】
この種のデータ転送装置では、データ変換がＣＰＵ、メモリ、バッファ等の負担になるという問題がある。その問題の解決を目指した従来発明としては、データ変換を効率よく行うように構成されたデータ転送装置が知られている（例えば、特許文献１、２参照）。
【０００４】
ここで、イベント・ドリブン型およびタイム・トリガ型の通信プロトコルについて簡単に説明しておく。イベント・ドリブン（事象駆動）型の通信プロトコルは、ＣＡＮ（Controller Area Network）に代表され、何らかのイベントが生じることでメッセージを送信するプロトコルである。一方、タイム・トリガ型の通信プロトコルはＦｌｅｘＲａｙに代表され、送信するメッセージについて、送信するスケジュールが予め定められたものである。
【特許文献１】特開２００５−３２８１１９号公報
【特許文献２】特開２００７−１７４０５３号公報
【発明の開示】
【発明が解決しようとする課題】
【０００５】
しかしながら、上述した技術では、メモリやバッファの負荷を軽減しきれず、依然として大容量のメモリやバッファが必要であるという問題があった。特に、この問題は、イベント・ドリブン型のネットワークからタイム・トリガ型のネットワークへデータを転送する場合に、顕著に現れる。なぜなら、イベント・ドリブン型のネットワークを構成するノードは、タイム・トリガ型の通信プロトコルが参照するスケジュールとは無関係のタイミングで、データを送信してしまうからである。
【０００６】
即ち、データ転送装置は、イベント・ドリブン型のネットワークから転送対象のデータを受信してから、タイム・トリガ型のネットワークへの送信がスケジュールによって許可されるまでの間、その転送対象のデータをメモリやバッファに記憶しなければならない。このため、従来技術では、どれだけ効率よくデータを変換しても、大容量のメモリやバッファが必要になるといった問題があった。
【０００７】
本発明は、上述した問題に鑑みなされたもので、イベント・ドリブン型のネットワークからタイム・トリガ型のネットワークへデータを転送する際に大容量のメモリを必要としない、データ転送システムを提供することを目的とする。
【課題を解決するための手段】
【０００８】
かかる目的を達成するためになされた請求項１のデータ転送システムは、データ転送装置と、第一のネットワークに設けられたノードとからなる。データ転送装置は、イベント・ドリブン型の通信プロトコルによってフレームデータが送受信される第一ネットワーク、及び、タイム・トリガ型の通信プロトコルによってフレームデータが送受信される第二ネットワークに接続されており、予め定められた転送対象のフレームデータを、第一ネットワークから第二ネットワークへ転送する。
【０００９】
尚、上記タイム・トリガ型の通信プロトコルは、予め定められたスケジュールに従い、各フレームデータを規定の時刻に、第二ネットワークへ送信するように定められた通信プロトコルである。また、第一のネットワークに設けられたノードは、上記イベント・ドリブン型の通信プロトコルに従い、フレームデータの送受信を実行する。
【００１０】
一方、データ転送装置は、第一通信手段と、第二通信手段と、判断手段と、要求手段と、を備える。第一通信手段は、第一ネットワークに対してフレームデータの送受信が可能な構成にされ、第二通信手段は、第二ネットワークに対してフレームデータの送信が可能な構成にされている。
【００１１】
また、判断手段は、第二ネットワークを伝送しているフレームデータが、スケジュールに予め定められたフレームデータの内の何れのフレームデータであるかの情報を取得可能に構成されている。即ち、判断手段は、上記取得した情報とスケジュールとを照合することで、現在時刻が、転送対象のフレームデータに対してタイム・トリガ型の通信プロトコルにより定められた送信開始時刻の所定時間前の時刻であるか否かを判断する。
【００１２】
そして、要求手段は、判断手段によって、現在時刻が、転送対象のフレームデータに対してタイム・トリガ型の通信プロトコルにより定められた送信開始時刻の所定時間前の時刻であると判断されると、以下の動作を実行する。その動作とは、当該転送対象のフレームデータを要求するための要求フレームデータを生成すると共に、上記転送対象のフレームデータを当該データ転送装置に対して送信可能な第一ネットワーク内のノードに向けて、生成した要求フレームデータを、第一通信手段に送信させることである。
【００１３】
また、第一ネットワークに設けられた当該データ転送システムを構成するノードは、要求フレームデータを受信すると、要求フレームデータの要求内容に従って、転送対象のフレームデータを、第一ネットワークを介して、データ転送装置に向けて送信する。
【００１４】
そして、第二通信手段は、第一通信手段が第一ネットワークを通じて受信した転送対象のフレームデータを、スケジュールに従って、規定の時刻に第二ネットワークに送信する。
【００１５】
つまり、このデータ転送システムは、タイム・トリガ型の通信プロトコルのスケジュールに合わせて、イベント・ドリブン型の通信プロトコルによって通信するノードに、転送対象のフレームデータの送信を要求するように構成されている。
【００１６】
従って、従来技術では、転送対象のフレームデータを第一ネットワークから受信してから第二ネットワークへ送信するまでの時間がランダムであったのに対して、本発明では、それを制御することができる。
【００１７】
よって、本発明によれば、当然に、転送対象のフレームデータを記憶するための記憶媒体の容量を小さくできる。
また、請求項１のデータ転送システムは、請求項２に記載のように構成されるとよい。請求項２におけるデータ転送装置は、判断手段および要求手段が繰り返し動作するように構成されると共に、禁止手段を備える。
【００１８】
この禁止手段は、要求フレームデータを送信してから予め定められた時間内に、要求フレームデータにより要求した転送対象のフレームデータを、第一通信手段が受信しなかった場合、第一通信手段が受信しなかった転送対象のフレームデータを要求する要求フレームデータの次回以降の生成を、要求手段に対して禁止させることが可能に構成されている。
【００１９】
つまり、このデータ転送システムは、要求フレームデータを送信しても返ってこないとき、要求フレームデータを送信するのを、次から禁止する。従って、本発明によれば、要求先のノードが停止している場合などに、データ転送装置の処理能力を無駄に使用することを防ぐことができる。
【００２０】
また、請求項１又は請求項２に記載のデータ転送システムは、請求項３に記載のように構成されるとよい。請求項３におけるデータ転送システムにおいて、要求手段は、生成する要求フレームデータに待機時間の情報を格納する。そして、ノードは、待機時間の情報が格納された要求フレームデータを受信すると、当該要求フレームデータを受信した時点から、当該要求フレームデータが示す待機時間の経過後に、当該要求フレームデータにより要求された転送対象のフレームデータを、データ転送装置に向けて送信する。
【００２１】
つまり、本発明のデータ転送システムによれば、要求フレームデータを受信したノードに、待機時間の情報が示す時間、転送対象のフレームデータの送信を待機させることができる。従って、データ転送装置の処理負荷が小さいときに要求フレームデータを送信して、転送対象のフレームデータの送信をノードに対して予約できるので、当該データ転送装置の処理負荷の平準化を図ることができる。
【００２２】
また、請求項１から請求項３までの何れかに記載のデータ転送システムは、請求項４に記載のように構成されるとよい。請求項４におけるデータ転送装置は、予測手段を備える。
【００２３】
この予測手段は、要求フレームデータ生成手段が要求フレームデータを生成してから、第二通信手段が転送対象のフレームデータを第二ネットワークに送信可能になるまでの時間である遅延時間を予測する。そして、判断手段は、所定時間を、予測手段によって予測された上記遅延時間とする。
【００２４】
つまり、このデータ転送システムによれば、要求フレームデータを送信する時刻を、遅延時間に基づいて変更することができる。従って、この発明によれば、遅延時間を予め長めに設定しておく必要がなく、転送対象のフレームデータを、第一通信手段を通じて受信してから、直ぐに、第二通信手段を通じて送信することができ、記憶媒体の容量をさらに小さくできる。
【００２５】
尚、請求項４に記載の予測手段は、具体的に、請求項５に記載のように構成されるとよい。請求項５記載のデータ転送システムにおける予測手段は、第一ネットワークの負荷を測定するネットワーク負荷測定手段を備え、ネットワーク負荷測定手段の測定結果に基づいて、遅延時間を予測する。
【００２６】
つまり、本発明のデータ転送システムでは、遅延時間がネットワーク負荷に依存することを利用して、ネットワーク負荷を測定すると共に、この測定結果を、遅延時間の予測に役立てる。従って、確からしい遅延時間に基づいて要求フレームデータを送信でき、記憶媒体の容量をさらに小さくできる。
【００２７】
また、請求項４又は請求項５に記載のデータ転送システムは、具体的に、請求項６のように構成されてもよい。請求項６におけるデータ転送装置は、ＣＰＵ及びＣＰＵにより実行されるプログラムを記憶するプログラム記憶手段（メモリ等）を備える。そして、このＣＰＵは、プログラム記憶手段に記憶されたプログラムを実行することにより、判断手段、要求手段および予測手段としての機能を実現する。また、このプログラムは、予測手段に対応する処理として、ＣＰＵの処理負荷を測定し、処理負荷の測定結果に基づき、遅延時間を予測する処理を、ＣＰＵが実行可能なように構成されている。
【００２８】
データ転送装置の全部または一部の手段をソフトウェアで実現するときに、遅延時間は、ＣＰＵの処理負荷に依存する。従って、本発明では、これを利用して、ＣＰＵの処理負荷を測定し、遅延時間の予測に役立てるようにしている。従って、このデータ転送システムによれば、遅延時間の確からしい予想に基づいて、要求フレームデータの送信時刻を決定でき、記憶媒体の容量をさらに小さくできる。
【発明を実施するための最良の形態】
【００２９】
以下、本発明の実施例について、図面と共に説明する。図１は、本発明が適用されたデータ転送システム１の構成を表すブロック図である。このデータ転送システム１は、複数のノード（ノード１１１、１１３、１１５、…、１２１、１２３、１２５、…、２１１、２１３、２１５、…、２２１、２２３、２２５、…）と、データ転送装置２と、複数のバス（バスＢ１１、Ｂ１２、Ｂ２１、Ｂ２２…）と、からなる。
【００３０】
詳述すると、これら複数のノードは、二種類に分類される。一つ目は、イベント・ドリブン型の通信プロトコルであるＣＡＮによって通信するように構成されたノードであり、第一ネットワークに属するもの（ノード１１１、１１３、１１５、…、１２１、１２３、１２５、…）である。二つ目は、タイム・トリガ型の通信プロトコルであるＦｌｅｘＲａｙによって通信するように構成されたノードであり、第二ネットワークに属するもの（ノード２１１、２１３、２１５、…、２２１、２２３、２２５、…）である。
【００３１】
これら各ノード（ノード１１１、１１３、１１５、…、１２１、１２３、１２５、…、２１１、２１３、２１５、…、２２１、２２３、２２５、…）は、何れかのバス（バスＢ１１、Ｂ１２、Ｂ２１、Ｂ２２…）に接続され、そのバスを介して他のノードとフレームデータの送受信を行う構成にされている。
【００３２】
尚、以下においては、上述したバスのうち、第一ネットワークに属するものの集合を第一バス群Ｂ１と呼び、第二ネットワークに属するものの集合を第二バス群Ｂ２と呼ぶことにする。
【００３３】
また、データ転送装置２は、制御部３と複数の通信部（通信部１１、１２、…、２１、２２、…）とから構成されている。具体的には、制御部３は、ＣＰＵ５、ＲＯＭ７、ＲＡＭ８及びＮＶＲＡＭ９を備える周知のマイクロコンピュータである。
【００３４】
また、各通信部（通信部１１、１２、…、２１、２２、…）は、バス（バスＢ１１、Ｂ１２、…、Ｂ２１、Ｂ２２…）の何れかと制御部３とを連結する、周知のハードウェア（通信インタフェース）によって構成されている。そして、これら各通信部は、以下の機能を有する。その機能とは、自身に接続されたバスを伝送するフレームデータを抽出して制御部３に送ったり、制御部３からフレームデータを受け取り、それを連結された上記バスに出力したり、そのバスにどのフレームデータが伝送しているかを監視したりする機能である。
【００３５】
各通信部は、さらに、バス負荷測定部（バス負荷測定部１１０、１２０、…、２１０、２２０…）を備える。このバス負荷測定部は、自身が属する通信部に接続されたバスのバス負荷を監視し、その情報を制御部３に送る機能を有する。
【００３６】
このような構成によって、データ転送装置２は、第一ネットワーク及び第二ネットワークに接続されると共に、第一ネットワークと第二ネットワークとの間で送受信されるフレームデータを転送するように構成されている。詳しくは後述する。
【００３７】
次に、図２を用いてバスＢ１１に接続されたノード１１１の構成を説明する。図２は、ノード１１１の構成を表した図である。ノード１１１は、制御部１１１３と通信部１１１０とから構成されている。制御部１１１３は、ＣＰＵ１１１５、ＲＯＭ１１１７及びＲＡＭ１１１８を備える周知のマイクロコンピュータである。そして、上述したように、ＣＡＮによってフレームデータを送信するように構成されている。
【００３８】
また、通信部１１１０は、ハードウェア（ＣＡＮ用の通信インタフェース）によって構成され、バスＢ１１と制御部１１１３とを連結している。そして、ＣＡＮプロトコルに従い、バスＢ１１を伝送するフレームデータを抽出して制御部１１１３に送ったり、制御部１１１３からフレームデータを受け取り、バスＢ１１に出力したりする。
【００３９】
因みに、第一バス群Ｂ１の何れかのバスに接続された、他の全てのノード（ノード１１１、１１３、１１５、…、１２１、１２３、１２５、…）の構成も、図２に示したものと同じである。但し、フレームデータの抽出・出力の対象のバスは、バスＢ１１とは限らず、各ノードが接続するバス（バスＢ１１、バスＢ１２、…の何れか）である。
【００４０】
尚、第二ネットワークに属するノードについては、本発明に係る特徴的なものではなく、従来技術によって、フレームデータを受信したり、ＦｌｅｘＲａｙによってフレームデータを送信したりするものである。よって、ここでは、第二ネットワークに属するノードの構成については、簡単に説明する。
【００４１】
周知のように、ＦｌｅｘＲａｙは、タイム・トリガ型の通信プロトコルである。具体的には、通信サイクルを複数の時間枠（タイムスロット）に予め細分化しておく。そして、その細分化したタイムスロットを、ネットワークを構成する各ノードに対して割り当てる。このようにすれば、各ノードの送信時間が重複するのを避けることができる。即ち、第二ネットワークを構成する各ノードには、個別のタイムスロットが予め割り当てられている。また、データ転送装置２には、バス毎に、個別のタイムスロットが予め割り当てられている。
【００４２】
そして、第二ネットワークを構成する各ノード及びデータ転送装置２は、自身に割り当てられたタイムスロットが到来すると、送信権が付与されたとして、そのタイムスロットにて送信すべきデータを、第二ネットワークに出力する構成にされている。このようにして、第二ネットワークを構成する各ノード及びデータ転送装置２は、予め定められたスケジュールに従い、規定の時刻にフレームデータを第二ネットワークへ送信して、通信の衝突が起こらないように動作する。
【００４３】
次に、図３を用いて要求処理の説明をする。この要求処理は、データ転送装置２が備えるＣＰＵ５が主体となって繰り返し実行する処理である。初めに、要求処理の概要を説明する。
【００４４】
本実施例においては、第一バス群Ｂ１の何れかのバス（バスＢ１１、バスＢ１２、…の何れか）からバスＢ２１に、転送対象のフレームデータ（以下、転送フレームデータと言う）をＣＰＵ５の処理により転送するときには、以下の動作をする必要がある。
【００４５】
その動作とは、第一バス群Ｂ１の何れかのバス（バスＢ１１、バスＢ１２、…の何れか）から、そのバスと接続された通信部（通信部１１、１２、…の何れか）を介して転送フレームデータを受け取ってから、この転送フレームデータを、通信部２１を介してバスＢ２１に送信するまでの間、その転送フレームデータを、ＲＡＭ８に記憶することである。
【００４６】
ちなみに、本実施例において、転送フレームデータは、設計段階で設計者により予め定められているものとする。尚、設計段階で定められた転送フレームデータの情報は、後述するスケジュールテーブルに記述される。
【００４７】
従来技術では、このような転送フレームデータをＲＡＭ８に記憶する時間が制御されておらずランダムであったので、ＲＡＭ等の記憶媒体を大容量にする必要があった。そこで、本実施例では、その時間を制御することを目的として、次のような処理手順で要求処理を実行するようにした。本実施例では、これによって、転送対象のフレームデータの転送元ノードに対する要求タイミングを制御するようにしている。
【００４８】
また、以下の説明においては、第二バス群Ｂ２を構成するバスの内、バスＢ２１に対して第一ネットワークから転送対象のフレームデータを転送するために、要求フレームデータを送信する例を説明する。
【００４９】
この要求処理について詳述する。まず、ＣＰＵ５は、第一バス群Ｂ１の各バス（バスＢ１１、Ｂ１２、…）に接続された各通信部（通信部１１、１２、…）から、各バス（バスＢ１１、Ｂ１２、…）のバス負荷の情報を取得する（Ｓ３０３）。ここでいうバス負荷とは、バスが単位時間当たりに伝送可能なフレームデータ数に対して、そのバスに実際どれだけの数のフレームデータが単位時間当たりに伝送しているかを示す値である。
【００５０】
次に、ＣＰＵ５自身の処理負荷を計算する（Ｓ３０７）。そして、Ｓ３０３で取得したバス負荷の情報及びＳ３０７で算出したＣＰＵ処理負荷の情報を基に、各バス（バスＢ１１、Ｂ１２、…）について遅延時間を推定する（Ｓ３１０）。
【００５１】
尚、ここでいう遅延時間とは、Ｓ３５０で、通信部（通信部１１、１２、…の何れか）を介して要求フレームデータを送信した時刻から、後で説明する転送処理において、その要求フレームデータが要求した転送フレームデータを、通信部（通信部２１、２２、…の何れか）を介して第二ネットワークに転送可能となる時刻までの所要時間である。この遅延時間は、要求フレームデータの宛先のノードが接続されたバスのバス負荷の値と、ＣＰＵ５自身の処理負荷の値とに影響を受ける。そこで、本実施例では、この二つの値を基にして、遅延時間を推定する。
【００５２】
遅延時間の推定方法の具体例を以下に述べる。遅延時間、並びに、バス負荷および自身の処理負荷の関係を、実験によって予め求めておき、三次元マップとして、ＲＯＭ７に記憶させておく。即ち、実験により、遅延時間、バス負荷、ＣＰＵ処理負荷、の夫々を軸（パラメータ）とした三次元マップを生成し、これを、予めＲＯＭ７に記憶させておく。そして、Ｓ３１０では、ＲＯＭ７に記憶された三次元マップから、現在のバス負荷及びＣＰＵ処理負荷に対応する遅延時間を割り出すことにより、その遅延時間を推定する。
【００５３】
次に、監視情報を通信部２１から取得すると共に、その監視情報をスケジュールデータに当てはめて、スケジュール上の現在時刻を求める（Ｓ３２０）。監視情報とは、スケジュールに定められたどのフレームデータがバスＢ２１を伝送しているかの情報、及び、そのフレームデータの送信開始時刻からの経過時間の情報である。
【００５４】
図４は、ＦｌｅｘＲａｙで用いられるスケジュールデータの具体例である。これは、バスＢ２１に接続されたノード（ノード２１１、２１３、２１５…）が備える制御部および制御部３のみが使用するものである。尚、本実施例では、第二バス群Ｂ２の各バス（バスＢ２１、バスＢ２２、…）において、独自のスケジュールデータが用いられるものとする。
【００５５】
このスケジュールデータは、バスＢ２１に接続された各ノード（ノード２１１、２１３、２１５、…）が備える記憶媒体（メモリ等）および制御部３が備えるＮＶＲＡＭ９によって、同じものが記憶されている。但し、バスＢ２１に接続された各ノード（ノード２１１、２１３、２１５、…）においては、後述する転送元情報及び転送要否情報が不要であるため、これら各ノード（ノード２１１、２１３、２１５、…）が備える記憶媒体は、転送元情報及び転送要否情報を記憶していない。そして、バスＢ２１に対するフレームデータの送信は、このスケジュールデータに従って行われる。
【００５６】
このスケジュールデータについて詳述すると、スケジュールデータは、バスＢ２１を流れるフレームデータ毎に、送信順序情報、フレームデータ名、メッセージスロット長、転送元情報及び送信要否情報を有する。送信順序情報は、対応するフレームデータのバスＢ２１における送信順序を表す情報であり、フレームデータ名は、当該バスＢ２１にて用いられるフレームデータの識別情報である。また、メッセージスロット長は、対応するフレームデータの送信に割り当てられた時間を表す。
【００５７】
また、転送元情報は、フレームデータ名で特定されるフレームデータの転送元ノードが属するバスの識別コードを示すものである。この情報は、後述する要求フレームデータを送信すべきバスを特定するのに用いられる。尚、転送元情報が空情報であるフレームデータについては、そのフレームデータが転送フレームデータでないことを示す。
【００５８】
また、送信要否情報は、フレームデータ名で特定されるフレームデータの転送元ノードに対して、このフレームデータを要求する要求フレームデータの送信が必要か否かを表す情報である。そして、この送信要否情報は、「要」又は「不要」に対応する値を示す。尚、送信要否情報が示す値は、後で説明する転送処理のＳ５９０で、ＣＰＵ５の動作により、「要」又は「不要」に切り替えられる。
【００５９】
そして、バスＢ２１に接続された各ノード（ノード２１１、２１３、２１５、…）が備える記憶媒体及びデータ転送装置２が備えるＮＶＲＡＭ９は、どのフレームデータの送信が自身に割り当てられているかをＣＰＵ５が判別できるように、割当情報がＮＶＲＡＭ９等に記憶されている。
【００６０】
次に、Ｓ３２０で求める「スケジュール上の現在時刻」について説明する。この時刻は、送信順序１のフレームデータの送信開始時刻を零秒とするものであり、送信順序が一巡するたびに零に戻る。具体例で説明すると、伝送しているのがフレームデータＢであり、フレームデータＢの送信開始から８ｍｓ経過していたとする。このとき、フレームデータＡのメッセージスロット長の１０ｍｓに８ｍｓを足した１８ｍｓが現在時刻になる。本実施例では、このような時間軸を定め、スケジュール上の現在時刻を求める。
【００６１】
要求処理の説明に戻る。上述のようにして、Ｓ３２０での処理を終えると、ＣＰＵ５は、スケジュールデータに登録されている転送フレームデータの夫々について、Ｓ３２０で推定した現在時刻に、Ｓ３１０で求めたその転送フレームデータの転送元ノードが接続されたバスの遅延時間を足した時刻が、その転送フレームデータの送信開始時刻であるかを判断する（Ｓ３３０）。
【００６２】
この判断は、例えば次のような手順で実行できる。まず、スケジュールデータに登録されている転送フレームデータのなかで、送信順序が最も早い転送フレームデータＡを対象にする。スケジュールデータによれば、転送フレームデータＡの転送元ノードが接続されたバスは、バスＢ１１である。
【００６３】
従って、次には、現在時刻にバスＢ１１の遅延時間を足した時刻を求める。そして、この時刻と、スケジュールデータから特定される転送フレームデータＡの送信開始時刻が一致するかを判断する。そして、この判断を、スケジュールデータに含まれる全ての転送フレームデータについて送信順序が早い順に行い、一致するものがあるかどうかを判断する。
【００６４】
但し、スケジュールデータの要求フレームデータ送信要否情報が、「不要」に設定されている転送フレームデータについては、Ｓ３３０の処理の対象から除外する。
このようにして、ＣＰＵ５は、Ｓ３３０の処理を実行する。但し、比較対象の二つの時刻が完全一致するためには、要求処理を十分に早く繰り返す必要がある。ところが、要求処理を高速に繰返し実行すると、ＣＰＵ５に大きな処理負荷が掛かってしまう。従って、本実施例では、遅延時間に公差を含ませて、二つの時刻が一致するかの判断基準を緩くしてもよい。つまり、現在時刻に遅延時間を足した時刻に幅を持たせて、Ｓ３３０では、その時間帯に送信開始時刻が含まれるか否かを判断することで、現在時刻に遅延時間を足した時刻が、転送フレームデータの送信開始時刻であるかを判断するようにしてもよい。
【００６５】
この場合に注意が必要なのは、遅延時間の公差を両振りにすると、転送フレームデータを受信した時には、その転送フレームデータの送信開始時刻が過ぎてしまう危険性がある。なぜなら、負の公差があれば、実際の遅延時間よりも短い時間によって、Ｓ３３０において一致の判断がなされる可能性があるからである。
【００６６】
その場合は、スケジュールデータが示す通信サイクルのほぼ一周期分の時間、転送フレームデータをＲＡＭ８に記憶する必要があり、本発明の目的を達成できない。従って、遅延時間の公差は、正のみの片振りにして、なおかつ、Ｓ３３０で確実に一致の判断がなされるような大きさに設定されると良い。
【００６７】
要求処理の説明に戻って、どの転送フレームデータについても、現在時刻に遅延時間を足した時刻が、その転送フレームデータの送信開始時刻でないと判断すると（Ｓ３３０：Ｎｏ）、ＣＰＵ５は、自身のＣＰＵ処理負荷が所定の閾値以下であるかを判断する（Ｓ３３５）。そして、ＣＰＵ処理負荷が所定の閾値以下でないと判断すると（Ｓ３３５：Ｎｏ）、Ｓ３１０に戻る。つまり、Ｓ３３０又はＳ３３５でＹｅｓと判断されるまで、Ｓ３１０からＳ３３５までの処理を繰り返す。
【００６８】
そして、ある転送フレームデータについて、現在時刻に遅延時間を足した時刻が、その転送フレームデータの送信開始時刻であると判断すると（Ｓ３３０：Ｙｅｓ）、その転送フレームデータを要求する要求フレームデータを生成し（Ｓ３４０）、Ｓ３５０に進む。この要求フレームデータは、転送フレームデータ識別情報を含む。この転送フレームデータ識別情報は、送信開始時刻の所定時間前の時刻であると判断された転送フレームデータを識別するための情報であり、この要求フレームデータを受信したノードに対して、その転送フレームデータを、そのノードが接続されたバスに送信することを要求する情報である。
【００６９】
一方、ＣＰＵ処理負荷が所定の閾値以下であると判断すると（Ｓ３３５：Ｙｅｓ）、ＣＰＵ５は、待機時間が最も短い転送フレームデータを対象に、待機時間の情報を含んだ要求フレームデータを生成し（Ｓ３４５）、Ｓ３５０に進む。この要求フレームデータは、転送フレームデータ識別情報に加え、待機時間の情報を含むものである。この待機時間の情報は、ノードが要求フレームデータを受信してから、要求に応じて転送フレームデータを出力するまでの間に、所定の時間、そのノードに転送フレームデータの出力を待機するように指示する情報であり、その待機時間を表すものである。
【００７０】
尚、待機時間は、各転送フレームデータについて、次のようにして計算される。すなわち、待機時間は、スケジュールデータにて規定される転送フレームデータの送信開始時刻から、現在時刻を引いて、更に、その転送フレームデータについての遅延時間を引いた時間として計算される。
【００７１】
Ｓ３４５で、このようにして、待機時間が最も短い転送フレームデータについての要求フレームデータを生成する理由を以下に述べる。その理由は、仮にＳ３３０及びＳ３３５でＮｏが繰り返されたときに、その転送フレームデータが、Ｓ３３０で最も早くＹｅｓと判断される対象の転送フレームデータになる確率が最も大きいからである。
【００７２】
また、Ｓ３３５及びＳ３４５の処理の目的は、ＣＰＵ５の処理負荷の平準化にある。即ち、Ｓ３３０でＹｅｓと判断したときには、ＣＰＵ５の処理負荷が高くなっているかも知れない。そこで、現在における処理負荷が低いのであれば、Ｓ３３０でＹｅｓになるまで待たずに、次に送信することになる転送フレームデータを要求する要求フレームデータを、その時点で送信する。そうすれば、ＣＰＵ５の処理負荷が高いときに要求フレームデータを生成・送信せずに済み、更にＣＰＵ５の処理負荷が上がるのを防止することができる。
【００７３】
このような理由から、本実施例では、ＣＰＵ処理負荷が小さいとき、現在からＳ３３０でＹｅｓと判断されるまでに必要な時間を計算して、その時間を待機時間の情報として要求フレームデータに格納するようにしている。
【００７４】
そしてＳ３５０に進むと、ＣＰＵ５は、Ｓ３４０又はＳ３４５で生成した要求フレームデータを、通信部を通じて、所定のバスに出力する。所定のバスとは、スケジュールデータの転送元情報が示すバス、換言すれば、その要求フレームデータに応答可能なノード（ノード１１１、１１３、１１５、…、１２１、１２３、１２５、…の何れか）が接続されたバス（バスＢ１１、Ｂ１２、…の何れか）である。
【００７５】
即ち、ここでは、スケジュールデータの転送元情報が示すバスに接続された通信部（通信部１１、１２、…の何れか）に、上記要求フレームデータを、出力させる。その後、要求処理を終える。
【００７６】
例えば、転送フレームデータＡ（図４参照）については、転送元ノードがバスＢ１１に接続されていることが、スケジュールデータの転送元情報から分かる。従って、転送フレームデータＡを要求する要求フレームデータを出力する場合には、この要求フレームデータを、通信部１１を通じてバスＢ１１に出力する。
【００７７】
以上に説明した要求処理は、上述したように、第二バス群Ｂ２に属するバスのうちの、バスＢ２１だけを対象にして、バスＢ２１に転送すべき転送フレームデータの要求フレームデータを、バスＢ２１のスケジュールに合わせて、転送元ノードに送信するものである。
【００７８】
本実施例の制御部３は、ＣＰＵ５にて、このような要求処理を実行すると共に、第二バス群Ｂ２の他のバスについても、同様の要求処理を実行する。こうすることで、各バスＢ２１、Ｂ２２、…に転送すべき転送フレームデータの要求フレームデータを、バスＢ２１、Ｂ２２、…のスケジュールに合わせて、転送元ノードに送信する。
【００７９】
続いて、図５を用いて、ノード１１１が備えるＣＰＵ１１１３が主体となって繰り返し実行する応答処理を説明する。ＣＰＵ１１１３は、この応答処理の実行により、上述した要求処理によってデータ転送装置２から送信されてくる要求フレームデータを受信すると共に、それに応答して転送フレームデータを返信する。
【００８０】
まず、ＣＰＵ１１１３は、通信部１１１０を介して、バスＢ１１を伝送するフレームデータを取得する（Ｓ４１０）まで待機する。そして、何れかのフレームデータを取得すると、そのフレームデータが自身宛の要求フレームデータであるか否かを判断する（Ｓ４２０）。具体的には、取得したフレームデータが要求フレームデータであるか否かを判断すると共に、取得したフレームデータが要求フレームデータである場合には、その要求フレームデータに含まれるフレームデータ識別情報によって特定される転送フレームデータを、自身が生成可能か否かを判断する。
【００８１】
そして、取得したフレームデータが要求フレームデータであると共に、その要求フレームデータに含まれるフレームデータ識別情報によって特定される転送フレームデータを、自身が生成可能である場合に限って、取得したフレームデータが自身宛の要求フレームデータであると判断する。
【００８２】
ここで、取得したフレームデータが自身宛の要求フレームデータではないと判断すると（Ｓ４２０：Ｎｏ）、ＣＰＵ１１１３は、応答処理を終える。
一方、取得したフレームデータが自身宛の要求フレームデータであると判断すると（Ｓ４２０：Ｙｅｓ）、ＣＰＵ１１１３は、その転送フレームデータ識別情報に基づいて、要求フレームデータにより要求された転送フレームデータを生成する（Ｓ４５０）。
【００８３】
次に、ＣＰＵ１１１３は、取得した要求フレームデータに、待機時間の情報が含まれているか否かを判断する（Ｓ４６０）。そして、要求フレームデータに、待機時間の情報が含まれていると判断すると（Ｓ４６０：Ｙｅｓ）、待機時間の情報が示す時間、待機する（Ｓ４７０）。そして、待機時間の経過後、その生成した転送フレームデータを、通信部１１１０を介して、通信部１１１０が接続されたバスＢ１１に出力する（Ｓ４８０）。
【００８４】
一方、要求フレームデータに、待機時間の情報が含まれていないと判断すると（Ｓ４６０：Ｎｏ）、ＣＰＵ１１１３は、生成した転送フレームデータを、生成後、直ぐに、通信部１１１０を介してバスＢ１１に出力し（Ｓ４８０）、応答処理を終える。
【００８５】
本実施例のＣＰＵ１１１０は、このような手順で応答処理を実行することにより、要求処理によってデータ転送装置２から送信されてくる要求フレームデータを受信すると共に、それに応答して転送フレームデータを返信する。
【００８６】
尚、本実施例において、第一バス群Ｂ１の何れかのバス（バスＢ１１、Ｂ１２、…の何れか）に接続された第一ネットワークに属するノードであって、転送フレームデータを生成・出力可能な全てのノードは、上述したＣＰＵ１１１０が実行する応答処理と同様の応答処理を、実行可能に構成されているものとする。但し、Ｓ４１０及びＳ４８０に対応する記載については、「バスＢ１１」を、各ノードが接続しているバスに読み替えるものとする。
【００８７】
次には、図６を用いて、転送処理を説明する。この転送処理は、データ転送装置２のＣＰＵ５が主体となって繰り返し実行する処理である。本実施例のデータ転送装置２は、ＣＰＵ５にて、この転送処理を実行することにより、第一バス群Ｂ１の何れかのバス（バスＢ１１、Ｂ１２…）から受信した転送フレームデータを、第二バス群Ｂ２の何れかのバス（バスＢ２１、Ｂ２２…）へ転送する。
【００８８】
この転送処理を開始すると、ＣＰＵ５は、まず、第一バス群Ｂ１の何れかのバス（バスＢ１１、Ｂ１２…）から、そのバスに接続された通信部（通信部１１、１２、…の何れか）を介して、転送フレームデータを受信したかを判断する（Ｓ５１０）。
【００８９】
そして、第一バス群Ｂ１の何れかのバス（バスＢ１１、Ｂ１２…）から、そのバスに接続された通信部（通信部１１、１２、…の何れか）を介して、転送フレームデータを受信したと判断すると（Ｓ５１０：Ｙｅｓ）、その転送フレームデータのフォーマットを、ＣＡＮのフォーマットからＦｌｅｘＲａｙのフォーマットに変換して、第二ネットワーク出力用の転送フレームデータを生成すると共に、生成した転送フレームデータをＲＡＭ８に記憶させる（Ｓ５２０）。
【００９０】
一方、第一バス群Ｂ１の何れのバス（バスＢ１１、Ｂ１２…）からも、通信部（通信部１１、１２、…）を介して、転送フレームデータを受信しなかったと判断すると（Ｓ５１０：Ｎｏ）、Ｓ５２０の処理はせず、Ｓ５３０に進む。
【００９１】
Ｓ５３０では、ＲＡＭ８に転送フレームデータが記憶されているかを判断する。ちなみに、この転送処理は繰り返し行われているので、直前のＳ５１０でＮｏと判断されても、ＲＡＭ８に転送フレームデータが記憶されている可能性はある。
【００９２】
そして、ＲＡＭ８に転送フレームデータが記憶されていないと判断すると（Ｓ５３０：Ｎｏ）、Ｓ５８０に進む。一方、ＲＡＭ８に転送フレームデータが記憶されていると判断すると（Ｓ５３０：Ｙｅｓ）、記憶されている各転送フレームデータが、第二バス群Ｂ２に属するバスのうちの、どのバスに送信するものであるかを、各バスのスケジュールデータに基づいて特定する（Ｓ５４０）。
【００９３】
そして、Ｓ５４０で特定した全てのバスについて、Ｓ３２０と同様な手法で、そのバスに接続された通信部（通信部２１、２２、…の何れか）から、バスを伝送するフレームデータの監視情報を取得し、その監視情報をスケジュールデータに当てはめて、スケジュールデータ上の現在時刻を求める（Ｓ５５０）。
【００９４】
そして、Ｓ５５０で求めた現在時刻の情報に基づき、現在時刻が、ＲＡＭ８に記憶されている何れかの転送フレームデータについての送信開始時刻であるか否かを判断する（Ｓ５６０）。そして、現在時刻が、ＲＡＭ８に記憶されている何れかの転送フレームデータについての送信開始時刻であると判断すると（Ｓ５６０：Ｙｅｓ）、送信開始時刻であると判断した対象の転送フレームデータについて、Ｓ５４０で特定した出力対象のバスに、その転送フレームデータを、そのバスに対応する通信部を介して出力すると共に、ＲＡＭ８からその転送フレームデータの情報を破棄し（Ｓ５７０）、Ｓ５８０に進む。一方、現在時刻が、何れの転送フレームデータの送信開始時刻でもないと判断すると（Ｓ５６０：Ｎｏ）、Ｓ５７０の処理はせずに、Ｓ５８０に進む。
【００９５】
Ｓ５８０に進むと、ＣＰＵ５は、スケジュールデータに登録されている各転送フレームデータについて、送信開始時刻までに受信できなかった転送フレームデータがあるか否かを判断する。尚、Ｓ５８０の処理は、次で述べる前提に立っている。その前提とは、データ転送システム１が正常に動作していれば、常に、データ転送装置２は、送信開始時刻までには、第一ネットワークから、各転送フレームデータを受信する、ということである。なぜなら、全ての転送フレームデータをスケジュールデータに定められた順序通りに送信できるように、要求フレームデータを要求処理で送信しているからである。即ち、Ｓ５８０では、このような正常な動作が、データ転送システム１で行われているか否かを、上記判断により、間接的に判断する。
【００９６】
そして、送信開始時刻までに受信できなかった転送フレームデータがないと判断すると（Ｓ５８０：Ｎｏ）、転送処理を終える。一方、送信開始時刻までに受信できなかった転送フレームデータがあると判断すると（Ｓ５８０：Ｙｅｓ）、送信開始時刻までに受信できなかった転送フレームデータに対応した、スケジュールデータの送信要否情報を、「要」から「不要」を示す値に変更し（Ｓ５９０）、転送処理を終える。因みに、Ｓ５９０で、送信要否情報が既に「不要」との値であったならば、ここでは、何もしない。
【００９７】
尚、Ｓ５９０の処理を行う理由は、要求フレームデータを無駄に送信するのを抑制して、ＣＰＵ５の処理負荷を下げることにある。ただし、転送フレームデータが送信されてこないのは、一時的な故障が原因である可能性がある。従って、データ転送装置２は、「不要」に設定した送信要否情報を、一定時間経過後、「要」に設定し直して、要求フレームデータの送信を再開する構成にされるとよい。また、一度の受信失敗で変更せず、所定回数、連続して失敗したら、送信要否情報を「要」から「不要」に変更するようにしてもよい。
【００９８】
以上に説明したように、本実施例においては、データ転送装置２のＣＰＵ５が実行する要求処理及び転送処理、並びに、第一ネットワークを構成するノードのＣＰＵが実行する応答処理によって、上述した目的を達することができる。なぜなら、データ転送装置２が、第一ネットワークに属するノードに対して、いつ転送フレームデータを送信するのかを制御するからである。
【００９９】
言い換えると、データ転送装置２は、要求フレームデータによって、転送フレームデータを送信するノードに、スケジュールデータの情報を伝達する。故に、第一ネットワークに属するノードは、ＣＡＮによって通信しながらも、ＦｌｅｘＲａｙが使用するスケジュールデータに即して、転送フレームデータを送信できる。従って、ＣＡＮからＦｌｅｘＲａｙへ転送フレームデータを転送するに際して、制御部３は、転送フレームデータの記憶時間を短くできる。その結果、ＲＡＭ８の容量を小さくすることができる。
【０１００】
また、本実施例の他の効果としては、第一バス群Ｂ１のバス負荷の低減を挙げることができる。従来技術では、直ぐには転送されることのない転送フレームデータが大量に、転送元のノードから送信されることもあり、過剰にバス負荷が上がってしまう可能性があった。これに対し、本実施例では、転送フレームデータは、スケジュールデータに即して定期的に、転送される量だけ転送元のノードから送信されるので、従来技術のように、バス負荷が過剰に上がることが無くなる。
【０１０１】
尚、本発明の実施形態は、本実施例に限定されない。通信プロトコルは、ＣＡＮの代わりに、他のイベント・ドリブン型のものを使用してもよい。また、ＦｌｅｘＲａｙの代わりに、他のタイム・トリガ型のものを使用してもよい。また、要求処理、応答処理または転送処理の各ステップを、ハードウェアによって実現するように、データ転送装置２や各ノードが構成されてもよい。この場合は、各ステップを速く処理できる。
【０１０２】
最後に、請求項に記載された各手段と実施例との対応関係を説明する。但し、自明のものについては説明を省略する。判断手段は、要求処理のＳ３２０及びＳ３３０によって実現され、要求手段は、要求処理のＳ３４０、Ｓ３４５、によって実現される。また、禁止手段は、転送処理のＳ５９０、予測手段は、要求処理のＳ３０３、Ｓ３０７及びＳ３１０、によってそれぞれ実現される。
【図面の簡単な説明】
【０１０３】
【図１】本発明が適用されたデータ転送システム１の概略構成を示すブロック図である。
【図２】第一ネットワークに属するノードの概略構成を示すブロック図である。
【図３】データ転送装置２のＣＰＵ５が実行する要求処理を表すフローチャートである。
【図４】スケジュールデータを表す図である。
【図５】第一ネットワークを構成するノードのＣＰＵが実行する応答処理を表すフローチャートである。
【図６】データ転送装置２のＣＰＵ５が実行する転送処理を表すフローチャートである。
【符号の説明】
【０１０４】
１…データ転送システム、２…データ転送装置、３，１１１３…制御部、５，１１１５…ＣＰＵ、７，１１１７…ＲＯＭ、８，１１１８…ＲＡＭ、９…ＮＶＲＡＭ、１１，１２，２１，２２，１１１０…通信部、１１１，１１３，１１５，１２１，１２３，１２５，２１１，２１３，２１５，２２１，２２３，２２５…ノード、１１０，１２０，２１０，２２０…バス負荷測定部、Ｂ１…第一バス群、Ｂ２…第二バス群、Ｂ１１，Ｂ１２，Ｂ２１，Ｂ２２…バス
【図１】
0004957569.tif 000002
【図２】
0004957569.tif 000003
【図３】
0004957569.tif 000004
【図４】
0004957569.tif 000005
【図５】
0004957569.tif 000006
【図６】
0004957569.tif 000007