(57)【特許請求の範囲】
【請求項１】
通信周期を構成する複数のタイムスロットのうちデータ中継の実施のために設定されているタイムスロットの範囲である設定タイムスロット範囲と、前記複数のタイムスロットのうち実際に前記データ中継が実施されたタイムスロットの範囲である実施タイムスロット範囲とを比較する比較部と、
前記比較部による比較の結果に応じて、後の通信周期における設定タイムスロット範囲を補正するか否かを判定する判定部と、
前記判定部により後の通信周期における設定タイムスロット範囲を補正することが判定された場合に、後の通信周期における設定タイムスロット範囲を前記実施タイムスロット範囲に基づいて補正する補正部とを有する中継装置。
【請求項２】
前記判定部は、
前記比較部による比較の結果、設定タイムスロット範囲と実施タイムスロット範囲との間に閾値以上のずれが生じていることが判明した場合に、後の通信周期における設定タイムスロット範囲を補正すると判定する請求項１に記載の中継装置。
【請求項３】
前記判定部は、
複数の通信周期で設定タイムスロット範囲と実施タイムスロット範囲との間に閾値以上のずれが生じていることが判明した場合に、後の通信周期における設定タイムスロット範囲を補正すると判定する請求項１に記載の中継装置。
【請求項４】
前記補正部は、
後の通信周期における設定タイムスロット範囲を、実施タイムスロット範囲と同じ範囲に補正する請求項１に記載の中継装置。
【請求項５】
前記複数のタイムスロットには番号が付されており、
前記補正部は、
後の通信周期における設定タイムスロット範囲を補正する場合に、前記複数のタイムスロットの番号を変更する請求項１に記載の中継装置。
【請求項６】
前記比較部は、
前記複数のタイムスロットのうち過去の通信周期において前記データ中継が実施されたタイムスロットの範囲を、前記設定タイムスロット範囲として用いる請求項１に記載の中継装置。
【請求項７】
前記比較部は、
前記設定タイムスロット範囲でのデータ受信数と前記実施タイムスロット範囲でのデータ受信数との相互相関値を算出し、
前記判定部は、
前記相互相関値に基づき、前記設定タイムスロット範囲でのデータ受信数と前記実施タイムスロット範囲でのデータ受信数とのずれを検出し、検出したずれが閾値以上であるか否かを判定して、後の通信周期における設定タイムスロット範囲を補正するか否かを判定する請求項１に記載の中継装置。
【請求項８】
コンピュータが、通信周期を構成する複数のタイムスロットのうちデータ中継の実施のために設定されているタイムスロットの範囲である設定タイムスロット範囲と、前記複数のタイムスロットのうち実際に前記データ中継が実施されたタイムスロットの範囲である実施タイムスロット範囲とを比較し、
前記コンピュータが、比較の結果に応じて、後の通信周期における設定タイムスロット範囲を補正するか否かを判定し、
後の通信周期における設定タイムスロット範囲を補正することが判定された場合に、前記コンピュータが、後の通信周期における設定タイムスロット範囲を前記実施タイムスロット範囲に基づいて補正する中継方法。
【請求項９】
通信周期を構成する複数のタイムスロットのうちデータ中継の実施のために設定されているタイムスロットの範囲である設定タイムスロット範囲と、前記複数のタイムスロットのうち実際に前記データ中継が実施されたタイムスロットの範囲である実施タイムスロット範囲とを比較する比較処理と、
前記比較処理による比較の結果に応じて、後の通信周期における設定タイムスロット範囲を補正するか否かを判定する判定処理と、
前記判定処理により後の通信周期における設定タイムスロット範囲を補正することが判定された場合に、後の通信周期における設定タイムスロット範囲を前記実施タイムスロット範囲に基づいて補正する補正処理とをコンピュータに実行させる中継プログラム。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、データ通信に関する。
【背景技術】
【０００２】
データ通信では低遅延かつ低ジッタ（フレームの入着タイミングの定時性を維持すること）であることが求められる。特に、制御機器と複数の被制御機器を中継局を介してネットワークで接続するシステムでは、様々な優先度のトラフィックが混在するため、低遅延かつ低ジッタのデータ通信の実現が課題である。
低遅延かつ低ジッタのデータ通信を実現する方法として、ＩＥＥＥ８０２．１Ｑｂｖに記載の方法がある（非特許文献１）。ＩＥＥＥ８０２．１Ｑｂｖでは、イーサネット（登録商標）フレームを転送するネットワーク装置の複数の送信キューの各々の出口にゲートが設けられる。そして、タイムスロットごとにフレームを送信するゲートのオープンと、フレームを送信キュー内に留めておくクローズを割り当て、これを周期的に繰り返す。この手順により、ネットワーク装置はフレームを低ジッタで送信することができる。また、ネットワーク装置とネットワーク装置に接続される端末間で時刻同期していると、端末はゲートがオープンするタイミングに合わせてフレーム送信ができるため、低遅延なデータ通信が可能となる。そのため、ＩＥＥＥ８０２．１ＱｂｖはＦＡ（Ｆａｃｔｏｒｙ  Ａｕｔｏｍａｔｉｏｎ）などのリアルタイム性が要求されるネットワークへの適用が期待されている。【０００３】
各機器の動作クロックに偏差がある場合には、徐々に機器間のゲートのオープン及びクローズのタイミングがずれ、ＩＥＥＥ８０２．１Ｑｂｖの方法によっても、低遅延かつ低ジッタのデータ通信を実現することが困難になる。このような各機器の動作クロックに偏差がある場合は、定期的な時刻同期により動作クロックを補正することで対処可能である。また、特許文献１のように、タイムスロットの通信においてエンド・ツー・エンドの機器で遅延時間を計測し、計測結果に基づきタイムスロットの割当を決定することで、ゲートのオープン、クローズのタイミングを補正することもできる。
【先行技術文献】
【特許文献】
【０００４】
【特許文献１】特開２０００−２６９８８２号公報
【非特許文献】
【０００５】
【非特許文献１】ＩＥＥＥ  Ｓｔａｎｄａｒｄ  ｆｏｒ  Ｌｏｃａｌ  ａｎｄ  ｍｅｔｒｏｐｏｌｉｔａｎ  ａｒｅａ  ｎｅｔｗｏｒｋｓ  Ｂｒｉｄｇｅｓ  ａｎｄ  Ｂｒｉｄｇｅｄ  Ｎｅｔｗｏｒｋｓ  Ａｍｅｎｄｍｅｎｔ  ２５：  Ｅｎｈａｎｃｅｍｅｎｔｓ  ｆｏｒ  Ｓｃｈｅｄｕｌｅｄ  Ｔｒａｆｆｉｃ  ＩＥＥＥ  Ｓｔｄ  ８０２．１ＱｂｖＴＭ−２０１５
【発明の概要】
【発明が解決しようとする課題】
【０００６】
しかしながら、制御のための通信では制御周期がμｓオーダであり、特許文献１のように遅延時間を計測し、タイムスロットを割り当てようとすると、ゲートのオープン、クローズのタイミングを補正するための通信が頻繁に発生し、通信帯域が消費される。【０００７】
本発明は、時刻同期のずれが発生した場合にも、通信帯域を消費することなく、データ通信のタイミングを補正できるようにすることを主な目的とする。
【課題を解決するための手段】
【０００８】
本発明に係る中継装置は、
通信周期を構成する複数のタイムスロットのうちデータ中継の実施のために設定されているタイムスロットの範囲である設定タイムスロット範囲と、前記複数のタイムスロットのうち実際に前記データ中継が実施されたタイムスロットの範囲である実施タイムスロット範囲とを比較する比較部と、
前記比較部による比較の結果に応じて、後の通信周期における設定タイムスロット範囲を補正するか否かを判定する判定部と、
前記判定部により後の通信周期における設定タイムスロット範囲を補正することが判定された場合に、後の通信周期における設定タイムスロット範囲を前記実施タイムスロット範囲に基づいて補正する補正部とを有する。
【発明の効果】
【０００９】
本発明によれば、時刻同期のずれが発生した場合にも、通信帯域を消費することなく、データ通信のタイミングを補正することができる。
【図面の簡単な説明】
【００１０】
【図１】実施の形態１に係る通信システムの構成例を示す図。
【図２】実施の形態１に係る中継局のハードウェア構成例を示す図。
【図３】実施の形態１に係る中継局の機能構成例を示す図。
【図４】実施の形態１に係る設定タイムスロット範囲の例を示す図。
【図５】実施の形態１に係るタイムスロットごとの受信フレーム数の例を示す図。
【図６】実施の形態１に係るタイムスロットごとの受信フレーム数の例を示す図。
【図７】実施の形態１に係るタイムスロットごとの送信フレーム数の例を示す図。
【図８】実施の形態１に係る中継局の動作例を示すフローチャート。
【図９】実施の形態１に係る中継局の動作例を示すフローチャート。
【図１０】実施の形態１に係る設定タイムスロット範囲の補正例を示す図。
【図１１】実施の形態１に係る設定タイムスロット範囲の補正例を示す図。
【図１２】実施の形態１に係る設定タイムスロット範囲の補正例を示す図。
【図１３】実施の形態１に係る設定タイムスロット範囲の補正例を示す図。
【図１４】実施の形態１に係る設定タイムスロット範囲の補正例を示す図。
【図１５】実施の形態１に係る設定タイムスロット範囲の補正例を示す図。
【図１６】実施の形態１に係る中継局の動作例を示すフローチャート。
【発明を実施するための形態】
【００１１】
以下、本発明の実施の形態について、図を用いて説明する。以下の実施の形態の説明及び図面において、同一の符号を付したものは、同一の部分又は相当する部分を示す。
【００１２】
実施の形態１．
＊＊＊構成の説明＊＊＊
図１は、本実施の形態に係る通信システムの構成例を示す。
【００１３】
本実施の形態に係る通信システムは、制御機器である１つの親局１００と、被制御機器である子局（１）２０１、子局（２）２０２〜子局（Ｎ）２０３と、親局１００と子局（１）２０１、子局（２）２０２〜子局（Ｎ）２０３とを接続する中継局３００で構成される。
なお、以下では、子局（１）２０１、子局（２）２０２〜子局（Ｎ）２０３を区別する必要がなければ、子局（１）２０１、子局（２）２０２〜子局（Ｎ）２０３をまとめて子局２００と表記する。
また、中継局３００は、中継装置に相当する。また、中継局３００で行われる動作は、中継方法及び中継プログラムに相当する。
【００１４】
親局１００は中継局３００の通信インターフェース［０］に接続するものとする。また、子局（１）２０１は中継局３００の通信インターフェース［１］に接続するものとする。子局（２）２０２は中継局３００の通信インターフェース［２］に接続するものとする。子局（Ｎ）２０３は中継局３００の通信インターフェース［Ｎ］に接続しているものとする。
また、親局１００は子局２００に周期的にフレームを送信する。また、子局２００は、親局１００に周期的にフレームを送信する。
より具体的には、親局１００は子局２００に、通信周期を構成する複数のタイムスロットのうちのいずれかのタイムスロットでフレームを送信する。また、子局２００は、当該複数のタイムスロットのうちのいずれかのタイムスロットでフレームを送信する。通信周期は繰り返し到来する。
【００１５】
図２は、本実施の形態に係る中継局３００のハードウェア構成例を示す。
【００１６】
本実施の形態に係る中継局３００は、コンピュータである。
中継局３００は、ハードウェアとして、プロセッサ９０１、記憶装置９０２、タイマ９０３及び通信インターフェース［０］９０４、通信インターフェース［１］９０５〜通信インターフェース［Ｎ］９０６を備える。
プロセッサ９０１は、演算処理及び判定処理を行う。より具体的には、プロセッサ９０１は、図３に示す受信部３０１、比較部３０３、判定部３０４、補正部３０５、送信時刻管理部３０６及び送信部３０７を実行する。受信部３０１、比較部３０３、判定部３０４、補正部３０５、送信時刻管理部３０６及び送信部３０７の詳細は後述する。
記憶装置９０２には、受信部３０１、比較部３０３、判定部３０４、補正部３０５、送信時刻管理部３０６及び送信部３０７の機能を実現するプログラムが記憶されている。プロセッサ９０１がこれらプログラムを実行して、受信部３０１、比較部３０３、判定部３０４、補正部３０５、送信時刻管理部３０６及び送信部３０７の動作を行う。
図２では、プロセッサ９０１が受信部３０１、比較部３０３、判定部３０４、補正部３０５、送信時刻管理部３０６及び送信部３０７の機能を実現するプログラムを実行している状態を模式的に表している。
また、記憶装置９０２は、タイムスロットごとにフレームの受信数を記憶する。
タイマ９０３は、タイムスロットの管理のために時間を計測する。
通信インターフェース［０］９０４、通信インターフェース［１］９０５〜通信インターフェース［Ｎ］９０６は、それぞれ、親局１００又は子局２００と接続する。
【００１７】
図３は、本実施の形態に係る中継局３００の機能構成例を示す。
中継局３００は、受信部３０１、記憶部３０２、比較部３０３、判定部３０４、補正部３０５、送信時刻管理部３０６及び送信部３０７で構成される。
【００１８】
受信部３０１は、親局１００又は子局２００からフレームを受信する。
また、受信部３０１は、タイムスロットごとに、フレームの受信数を計数する。
【００１９】
記憶部３０２は、受信部３０１により計数されたタイムスロットごとのフレームの受信数を記憶する。また、記憶部３０２は、送信部３０７により計数されたタイムスロットごとのフレームの送信数を記憶してもよい。
また、記憶部３０２は、後述する設定タイムスロット範囲を記憶している。
【００２０】
比較部３０３は、設定タイムスロット範囲と実施タイムスロット範囲とを比較する。
設定タイムスロット範囲は、データ中継の実施のために設定されているタイムスロットの範囲である。送信部３０７は、設定タイムスロット範囲で受信部３０１により受信されたフレームは、設定タイムスロット範囲内で中継先に送信する。一方、送信部３０７は、設定タイムスロット範囲ではないタイムスロットで受信部３０１により受信されたフレームは、次の設定タイムスロット範囲で中継先に送信する。比較部３０３は、複数のタイムスロットのうち過去の通信周期においてデータ中継が実施されたタイムスロットの範囲を、設定タイムスロット範囲として用いることができる。
実施タイムスロット範囲は、複数のタイムスロットのうち実際にデータ中継が実施されたタイムスロットの範囲である。つまり、実施タイムスロット範囲は、複数のタイムスロットのうち、受信部３０１によりフレームが受信され、送信部３０７によりフレームが中継先に送信されたタイムスロットの範囲である。
比較部３０３により行われる処理は、比較処理に相当する。
【００２１】
判定部３０４は、比較部３０３の比較の結果に応じて、後の通信周期における設定タイムスロット範囲を補正するか否かを判定する。
例えば、比較部３０３による比較の結果、設定タイムスロット範囲と実施タイムスロット範囲との間に閾値以上のずれが生じていることが判明した場合に、判定部３０４は、後の通信周期における設定タイムスロット範囲を補正すると判定する。
また、比較部３０３は、例えば、複数の通信周期で設定タイムスロット範囲と実施タイムスロット範囲との間に閾値以上のずれが生じていることが判明した場合に、後の通信周期における設定タイムスロット範囲を補正すると判定する。
判定部３０４により行われる処理は、判定処理に相当する。
【００２２】
補正部３０５は、判定部３０４により後の通信周期における設定タイムスロット範囲を補正することが判定された場合に、後の通信周期における設定タイムスロット範囲を実施タイムスロット範囲に基づいて補正する。
例えば、補正部３０５は、後の通信周期における設定タイムスロット範囲を、実施タイムスロット範囲と同じ範囲に補正する。
補正部３０５により行われる処理は、補正処理に相当する。
【００２３】
送信時刻管理部３０６は、タイムスロットを管理する。
【００２４】
送信部３０７は、受信部３０１により受信されたフレームを、中継先に送信する。
また、送信部３０７は、タイムスロットごとに、フレームの送信数を計数してもよい。送信部３０７は、タイムスロットごとに、フレームの送信数を計数しなくてもよい。
【００２５】
＊＊＊動作の説明＊＊＊
次に、本実施の形態に係る中継局３００の動作例を説明する。
なお、親局１００、子局２００、中継局３００は予め時刻同期しているものとする。また、親局１００、子局２００、中継局３００には、タイムスロットの長さのデフォルト値が設定されているものとする。親局１００は、周期的に同一タイミングでフレームを送信するものとする。同様に、子局２００も、周期的に同一タイミングでフレームを送信するものとする。中継局３００は、前述のように、設定タイムスロット範囲で受信したフレームは、設定タイムスロット範囲内で中継先に送信する。一方、中継局３００は、設定タイムスロット範囲ではないタイムスロットで受信したフレームは、次の設定タイムスロット範囲で中継先に送信する。
また、中継局３００は時刻同期のマスタとなる親局１００と時刻同期した時点を処理の開始時刻とする。
【００２６】
図４は、フレーム受信タイミングの例を示す。
より詳細には、図４は、Ｎ番目の通信周期における通信インターフェース［０］での親局１００からのフレームの受信タイミングを示す。また、図４は、通信インターフェース［１］での子局（１）２０１からのフレームの受信タイミングを示す。また、図４は、通信インターフェース［２］での子局（２）２０２からのフレームの受信タイミングを示す。また、図４は、通信インターフェース［Ｎ］での子局（Ｎ）２０３からのフレームの受信タイミングを示す。
図４の例では、通信周期は１６個のタイムスロットで構成される。例えば、１番目から８番目のタイムスロットでは、高優先のフレームである優先フレームの通信が行われる。また、９番目から１６番目のスロットでは、低優先のフレームである非優先フレームの通信が行われる。つまり、親局１００、子局２００、中継局３００では、１番目から８番目のタイムスロットで優先フレームの送受信を行うことを記憶している。
なお、本実施の形態では、優先フレームの通信が行われる１番目から８番目のタイムスロットが、設定タイムスロット範囲に相当する。つまり、図４において黒地の範囲が設定タイムスロット範囲に相当する。
また、以下では、主に設定タイムスロット範囲でのフレームの受信について説明するが、前述したように、設定タイムスロット範囲で受信されたフレームは設定タイムスロット範囲で中継先に送信される。つまり、以下では、設定タイムスロット範囲でのフレームの受信について言及している場合は、明示していなくても、設定タイムスロット範囲でのフレームの送信も発生しているものとする。
【００２７】
本実施の形態では、はじめに、中継局３００では、受信部３０１が、処理開始後の最初の通信周期で受信したフレーム数を、タイムスロットごとに、送信元ごとに計数し、計数結果を記憶部３０２に保存する。なお、本実施の形態では、受信部３０１は、優先フレームの受信数のみを計数する。
また、受信部３０１は、２回目以降の通信周期でも、タイムスロットごとに、送信元ごとに優先フレームの受信数を計数し、計数結果を記憶部３０２に保存する。
図５は、Ｎ番目の通信周期における、通信インターフェース［０］及び通信インターフェース［１］でのフレーム受信数の計数結果を示す。
図６は、Ｎ番目の通信周期における、通信インターフェース［２］及び通信インターフェース［３］でのフレーム受信数の計数結果を示す。
【００２８】
図８は、受信部３０１によるフレーム受信数の計数処理を示す。
【００２９】
先ず、受信部３０１は、ステップＳ１０１において、現在がタイムスロットの更新タイミングであるか否かを判定する。
現在がタイムスロットの更新タイミングである場合（ステップＳ１０１でＹＥＳ）は、処理がステップＳ１０６に進む。ステップＳ１０６の詳細は後述する。
一方、現在がタイムスロットの更新タイミングではない場合（ステップＳ１０１でＮＯ）は、処理がステップＳ１０２に進む。
【００３０】
ステップＳ１０２では、受信部３０１は、フレームを受信したか否かを判定する。
受信部３０１がフレームを受信している場合（ステップＳ１０２でＹＥＳ）は、処理がステップＳ１０３に進む。一方、受信部３０１がフレームを受信していない場合（ステップＳ１０２でＮＯ）は、処理がステップＳ１０１に戻る。
【００３１】
ステップＳ１０３では、受信部３０１は、受信したフレームが優先フレームであるか否かを判定する（ステップＳ１０３）。
受信したフレームが優先フレームである場合（ステップＳ１０３でＹＥＳ）は、処理がステップＳ１０４に進む。一方、受信したフレームが優先フレームでない場合（ステップＳ１０３でＮＯ）は、処理がステップＳ１０１に戻る。
【００３２】
ステップＳ１０４では、受信部３０１は受信したフレームの送信元を特定する。
【００３３】
次に、ステップＳ１０５において、受信部３０１は、該当する送信元のフレーム受信数をインクリメントする。つまり、受信部３０１は、現在のタイムスロットでのフレーム受信数を送信元ごとに管理しており、ステップＳ１０４で特定した送信元のフレーム受信数を１つ増加させる。
その後、処理がステップＳ１０１に戻る。
【００３４】
ステップＳ１０１において現在がタイムスロットの更新タイミングであると判定された場合は、ステップＳ１０６において、受信部３０１は、現タイムスロットのスロット番号と同じスロット番号のフレーム受信数の情報が記憶部３０２に記憶されているか否かを判定する。例えば、現タイムスロットが図４の１番目のタイムスロットであれば、以前の通信周期での１番目のタイムスロットのフレーム受信数の情報が記憶部３０２に記憶されているか否かを判定する。
現タイムスロットのスロット番号と同じスロット番号のフレーム受信数の情報が記憶部３０２に記憶されていない場合（ステップＳ１０６でＮＯ）は、受信部３０１は、ステップＳ１０７において、現タイムスロットのフレーム受信数の情報を、最初の通信周期の情報として記憶部３０２に保存する。
一方、現タイムスロットのスロット番号と同じスロット番号のフレーム受信数の情報が記憶部３０２に記憶されている場合（ステップＳ１０６でＹＥＳ）は、受信部３０１は、ステップＳ１０８において、現タイムスロットのフレーム受信数の情報を、最初の通信周期の情報との比較のために記憶部３０２に保存する。
以下では、ステップＳ１０７で記憶部３０２に保存したフレーム受信数の情報は、設定タイムスロット範囲を表す情報として用いられる。また、ステップＳ１０８で記憶部３０２に保存したフレーム受信数の情報は、実施タイムスロット範囲を表す情報として用いられる。
なお、ステップＳ１０７で記憶部３０２に保存した情報及びステップＳ１０８で記憶部３０２に保存した情報は、中継局３００が親局１００と時刻同期すると消去される。
【００３５】
受信部３０１は、図８に示す処理を、タイムスロットごとに、各通信インターフェースについて並列して行う。
これにより、受信部３０１は、図５及び図６に示すフレーム受信数の情報を得ることができる。
また、受信部３０１は、図８に示す処理を繰り返し行う。
受信部３０１は、図８に示す処理を、通信周期ごとに行ってもよいし、複数の通信周期に１回行うようにしてもよい。
【００３６】
また、送信部３０７は、処理開始の最初の通信周期で送信した優先フレームの送信数を、タイムスロットごとに、送信元ごとに計数してもよい。また、送信部３０７は、最初の通信周期で送信された優先フレームの送信数の情報を記憶部３０２に保存してもよい。送信部３０７によるフレーム送信数の計数処理は、図８の処理に準ずる。具体的には、図８のステップＳ１０２の「フレームを受信した？」を「フレームを送信した？」に読み替える。また、ステップＳ１０４の「送信元を特定する」を「送信先を特定する」に読み替える。また、ステップＳ１０５の「該当する送信元のフレーム受信数をインクリメントする」を「該当する送信先のフレーム送信数をインクリメントする」に読み替える。
図７は、Ｎ番目の通信周期における、通信インターフェース［０］でのフレーム送信数の計数結果を示す。
なお、システム設計時点において優先フレームの送信タイミングが判明している場合には、本段落に記載の処理は省略することできる。
【００３７】
図９は、比較部３０３の動作例、判定部３０４の動作例及び補正部３０５の動作例を示す。
【００３８】
ステップＳ２０１では、比較部３０３が、最初の通信周期で記憶部３０２に保存したフレーム受信数（設定タイムスロット範囲）と直前の通信周期で記憶部３０２に保存したフレーム受信数（実施タイムスロット範囲）を比較する。
例えば、比較部３０３は、親局１００からのフレーム受信について、最初の通信周期でのフレーム受信数と直前の通信周期でのフレーム受信数との間の相互相関値を求める。比較部３０３は、比較結果を任意の記憶領領域に保存する。
【００３９】
次に、ステップＳ２０２で、判定部３０４が、比較部３０３の比較結果（相互相関値）に基づき、最初の通信周期でのフレーム受信数と直前の通信周期でのフレーム受信数との間のずれを検出する。これにより、判定部３０４は、現在の親局１００からのフレームの受信タイミングが最初の通信周期に比べて前にずれているのか、後にずれているのか、あるいは前後に揺らいでいるのかを検出することができる。
【００４０】
次に、ステップＳ２０３において、判定部３０４は、ステップＳ２０２で検出したずれが閾値以上であるか否かを判定する。つまり、判定部３０４は、設定タイムスロット範囲と実施タイムスロット範囲が閾値以上ずれているか否かを判定する。閾値は、例えば、１タイムスロットである。図４の例において、前の通信周期の１６番目のタイムスロットでフレームが受信されている場合、または９番目のタイムスロットでフレームが受信されている場合は、フレームの受信タイミングが設定タイムスロット範囲から１タイムスロット分ずれているので、閾値以上のずれが発生している。
【００４１】
ステップＳ２０２で検出したずれが閾値以上である場合（ステップＳ２０３でＹＥＳ）は、判定部３０４は、ステップＳ２０４において、該当する局の識別子を任意の記憶領域に保存する。
一方、ステップＳ２０２で検出したずれが閾値未満である場合（ステップＳ２０３でＮＯ）は、判定部３０４は、ステップＳ２０５において、全ての局についてステップＳ２０１以降の処理が行われたか否かを判定する。
ステップＳ２０１以降の処理が行われていない局が存在する場合（ステップＳ２０５でＮＯ）は、比較部３０３が、該当する局についてステップＳ２０１の処理を行う。
一方、全ての局（親局１００、及び全ての子局２００）に対してステップＳ２０１以降の処理が行われている場合（ステップＳ２０５でＹＥＳ）は、処理がステップＳ２０５に進む。
【００４２】
ステップＳ２０５では、判定部３０４が、ステップＳ２０４で記憶領域に識別子が保存された局が存在するか否かを判定する。
ステップＳ２０４で記憶領域に識別子が保存された局が存在する場合（ステップＳ２０６でＹＥＳ）、すなわち、設定タイムスロット範囲と実施タイムスロット範囲が閾値以上ずれている局が存在する場合は、判定部３０４は、補正部３０５による補正処理を決定する。
一方、ステップＳ２０４で記憶領域に識別子が保存された局が存在しない場合（ステップＳ２０６でＮＯ）は、処理が終了する。
【００４３】
ステップＳ２０７では、補正部３０５が、ステップＳ２０２で検出されたずれに従って、設定タイムスロット範囲を補正する。つまり、補正部３０５は、後の通信周期における設定タイムスロット範囲を、実施タイムスロット範囲と同じ範囲に補正する。
【００４４】
次に、補正部３０５による補正処理の具体例を説明する。
【００４５】
図１０及び図１１は、フレームの受信タイミングが前にずれている場合の補正部３０５の補正例を示す。
図１０では、図４と同様に、１番目から８番目のタイムスロットで優先フレームの通信が行われる。つまり、１番目から８番目のタイムスロットの範囲が設定タイムスロット範囲である。
図１０に示すように、フレームの受信タイミングが１つ前の通信周期の１６番目のタイムスロットにずれたとする。
この場合は、補正部３０５は、次の通信周期において１６番目のタイムスロットをオープンに設定する。
つまり、補正部３０５は、図１１に示すように、１６番目から８番目のタイムスロットの範囲に設定タイムスロット範囲を補正する。黒地の範囲が設定タイムスロット範囲を表す。
また、図１０の例では、８番目のタイムスロットでは、いずれの局からもフレームを受信していないので、補正部３０５は、８番目のタイムスロットを設定タイムスロット範囲から除外してもよい。
図１１の例では、１６番目のタイムスロットでフレームが受信されていれば、即座に１６番目のタイムスロットを新たな設定タイムスロット範囲に追加することとしている。これに代えて、１６番目のタイムスロットでのフレームの受信が複数回確認された後、すなわち閾値以上のずれが複数回確認された後に、補正部３０５が、１６番目のタイムスロットが含まれるように設定タイムスロット範囲を補正するようにしてもよい。同様に、８番目のタイムスロットでのフレームの受信がないことが複数回確認された後に、補正部３０５が、８番目のタイムスロットが含まれないように設定タイムスロット範囲を補正するようにしてもよい。
【００４６】
図１２及び図１３は、フレームの受信タイミングが後ろにずれている場合の補正部３０５の補正例を示す。
図１２では、図４と同様に、１番目から８番目のタイムスロットで優先フレームの通信が行われる。つまり、１番目から８番目のタイムスロットの範囲が設定タイムスロット範囲である。
図１２に示すように、フレームの受信タイミングが９番目のタイムスロットにずれたとする。
この場合は、補正部３０５は、次の通信周期において９番目のタイムスロットをオープンに設定する。
つまり、補正部３０５は、図１３に示すように、１番目から９番目のタイムスロットの範囲に設定タイムスロット範囲を補正する。黒地の範囲が設定タイムスロット範囲を表す。
図１３の例では、９番目のタイムスロットでフレームが受信されていれば、即座に９番目のタイムスロットを新たな設定タイムスロット範囲に追加することとしている。これに代えて、９番目のタイムスロットでのフレームの受信が複数回確認された、すなわち閾値以上のずれが複数回確認された後に、補正部３０５が、９番目のタイムスロットが含まれるように設定タイムスロット範囲を補正するようにしてもよい。
【００４７】
図１４及び図１５は、フレームの受信タイミングが前及び後ろにずれている場合の補正部３０５の補正例を示す。
図１４では、図４と同様に、１番目から８番目のタイムスロットで優先フレームの通信が行われる。つまり、１番目から８番目のタイムスロットの範囲が設定タイムスロット範囲である。
図１４に示すように、フレームの受信タイミングが１つ前の通信周期の１６番目のタイムスロットにずれ、更に、９番目のタイムスロットにもずれたとする。
この場合は、補正部３０５は、次の通信周期において１６番目のタイムスロットと９番目のタイムスロットをオープンに設定する。
つまり、補正部３０５は、図１４に示すように、１６番目から９番目のタイムスロットの範囲に設定タイムスロット範囲を補正する。
【００４８】
図１６は、補正部３０５の動作例及び送信時刻管理部３０６の動作例を示す。
【００４９】
ステップＳ３０１において、補正部３０５は、追加対象のタイムスロットを設定タイムスロット範囲に追加する。
図１０の例では、１６番目のタイムスロットが追加対象のタイムスロットである。補正部３０５は、追加対象の１６番目のタイムスロットを設定タイムスロット範囲に追加する。
【００５０】
次に、ステップＳ３０２において、補正部３０５は、全てのずれを吸収できるように設定タイムスロット範囲を補正したか否かを判定する。
例えば、図１４の例では、１６番目のタイムスロットを設定タイムスロット範囲に追加したのみでは、９番目のタイムスロットでのずれを吸収することはできない。従って、この場合は、ステップＳ３０２の判定において「ＮＯ」が得られる。
【００５１】
次に、ステップＳ３０３において、削除対象のタイムスロットを設定タイムスロット範囲から削除する。
図１０の例では、８番目のタイムスロットではフレームが受信されていないので、８番目のタイムスロットを削除対象とする場合は、補正部３０５は、８番目のタイムスロットを設定タイムスロット範囲から削除する。
【００５２】
最後に、ステップＳ３０４において、送信時刻管理部３０６が、タイムスロットの番号を変更する。
図１５の例のように、補正の結果、新たな設定タイムスロット範囲が、１６番目から９番目の範囲になった場合は、送信時刻管理部３０６は、新たな設定タイムスロット範囲が１番目のタイムスロットから開始するようにタイムスロットの番号を変更する。この結果、新たな設定タイムスロット範囲は、１番目のタイムスロット（変更前の１６番目のタイムスロット）から１０番目のタイムスロット（変更前の９番目のタイムスロット）の範囲になる。
これにより、親局１００がフレームを送信するタイムスロットの番号が固定されるため、親局１００と中継局３００とが再同期したときにタイムスロット番号の調整が不要となる。
また、送信時刻管理部３０６は、記憶部３０２において、補正前の設定タイムスロット範囲の情報を補正後の設定タイムスロット範囲で上書きする。例えば、図１５の例では、補正前の設定タイムスロット範囲の情報である１番目から８番目のタイムスロットとの情報を、１番目から１０番目のタイムスロットとの情報に上書きする。
なお、送信時刻管理部３０６は、設定タイムスロット範囲の情報を書き換える場合でも、フレームの送信順序の情報は、記憶部３０２にそのまま残しておく。
例えば、子局（１）２０１からのフレーム、子局（２）２０２からのフレーム、子局（Ｎ）２０３からのフレームの順序で、親局１００に送信することが規定されていると仮定する。図１２のフレーム受信例では、３番目のタイムスロットにおいて子局（１）２０１からのフレームと子局（２）２０２からのフレームが受信されている。この場合に、フレーム送信順序の情報が消去されると、同じ３番目のタイムスロットで受信された子局（２）２０２からのフレームが子局（１）２０１からのフレームよりも先に親局１００に送信される事態が生じる可能性がある。このため、送信時刻管理部３０６は、フレームの送信順序が規定の通りに行われるように、設定タイムスロット範囲の情報を書き換え、また、タイムスロットの番号を変更する場合でも、フレームの送信順序の情報はそのまま残しておく。
【００５３】
＊＊＊実施の形態の効果の説明＊＊＊
以上のように、本実施の形態では、時刻同期のずれが発生した場合にも、中継局３００のタイムスロットを変更していくことで、補正のための通信を行う必要がない。このため、本実施の形態によれば、通信帯域を消費することなく、データ通信のためのタイミングを補正することができる。
【００５４】
＊＊＊ハードウェア構成の説明＊＊＊
最後に、中継局３００のハードウェア構成の補足説明を行う。
図２に示すプロセッサ９０１は、プロセッシングを行うＩＣ（Ｉｎｔｅｇｒａｔｅｄ  Ｃｉｒｃｕｉｔ）である。
プロセッサ９０１は、ＣＰＵ（Ｃｅｎｔｒａｌ  Ｐｒｏｃｅｓｓｉｎｇ  Ｕｎｉｔ）、ＤＳＰ（Ｄｉｇｉｔａｌ  Ｓｉｇｎａｌ  Ｐｒｏｃｅｓｓｏｒ）等である。
図２に示す記憶装置９０２は、ＲＡＭ（Ｒａｎｄｏｍ  Ａｃｃｅｓｓ  Ｍｅｍｏｒｙ）、ＲＯＭ（Ｒｅａｄ  Ｏｎｌｙ  Ｍｅｍｏｒｙ）、フラッシュメモリ、ＨＤＤ（Ｈａｒｄ  Ｄｉｓｋ  Ｄｒｉｖｅ）等である。
図２に示す通信インターフェース［０］９０４〜通信インターフェース［Ｎ］９０６は、データの通信処理を実行する電子回路である。通信インターフェース［０］９０４〜通信インターフェース［Ｎ］９０６は、例えば、通信チップ又はＮＩＣ（Ｎｅｔｗｏｒｋ  Ｉｎｔｅｒｆａｃｅ  Ｃａｒｄ）である。
【００５５】
また、記憶装置９０２には、ＯＳ（Ｏｐｅｒａｔｉｎｇ  Ｓｙｓｔｅｍ）も記憶されている。
そして、ＯＳの少なくとも一部がプロセッサ９０１により実行される。
プロセッサ９０１はＯＳの少なくとも一部を実行しながら、受信部３０１、比較部３０３、判定部３０４、補正部３０５、送信時刻管理部３０６及び送信部３０７の機能を実現するプログラムを実行する。
プロセッサ９０１がＯＳを実行することで、タスク管理、メモリ管理、ファイル管理、通信制御等が行われる。
また、受信部３０１、比較部３０３、判定部３０４、補正部３０５、送信時刻管理部３０６及び送信部３０７の処理の結果を示す情報、データ、信号値及び変数値の少なくともいずれかが、記憶装置９０２、プロセッサ９０１内のレジスタ及びキャッシュメモリの少なくともいずれかに記憶される。
また、受信部３０１、比較部３０３、判定部３０４、補正部３０５、送信時刻管理部３０６及び送信部３０７の機能を実現するプログラムは、磁気ディスク、フレキシブルディスク、光ディスク、コンパクトディスク、ブルーレイ（登録商標）ディスク、ＤＶＤ等の可搬記録媒体に格納されていてもよい。
【００５６】
また、受信部３０１、比較部３０３、判定部３０４、補正部３０５、送信時刻管理部３０６及び送信部３０７の「部」を、「回路」又は「工程」又は「手順」又は「処理」に読み替えてもよい。
また、中継局３００は、処理回路により実現されてもよい。処理回路は、例えば、ロジックＩＣ（Ｉｎｔｅｇｒａｔｅｄ  Ｃｉｒｃｕｉｔ）、ＧＡ（Ｇａｔｅ  Ａｒｒａｙ）、ＡＳＩＣ（Ａｐｐｌｉｃａｔｉｏｎ  Ｓｐｅｃｉｆｉｃ  Ｉｎｔｅｇｒａｔｅｄ  Ｃｉｒｃｕｉｔ）、ＦＰＧＡ（Ｆｉｅｌｄ−Ｐｒｏｇｒａｍｍａｂｌｅ  Ｇａｔｅ  Ａｒｒａｙ）である。
なお、本明細書では、プロセッサと処理回路との上位概念を、「プロセッシングサーキットリー」という。
つまり、プロセッサと処理回路とは、それぞれ「プロセッシングサーキットリー」の具体例である。
【符号の説明】
【００５７】
１００  親局、２００  子局、２０１  子局（１）、２０２  子局（２）、２０３  子局（Ｎ）、３００  中継局、３０１  受信部、３０２  記憶部、３０３  比較部、３０４  判定部、３０５  補正部、３０６  送信時刻管理部、３０７  送信部、９０１  プロセッサ、９０２  記憶装置、９０３  タイマ、９０４  通信インターフェース［０］、９０５  通信インターフェース［１］、９０６  通信インターフェース［Ｎ］。
【図１】
0006827607.tif 000002
【図２】
0006827607.tif 000003
【図３】
0006827607.tif 000004
【図４】
0006827607.tif 000005
【図５】
0006827607.tif 000006
【図６】
0006827607.tif 000007
【図７】
0006827607.tif 000008
【図８】
0006827607.tif 000009
【図９】
0006827607.tif 000010
【図１０】
0006827607.tif 000011
【図１１】
0006827607.tif 000012
【図１２】
0006827607.tif 000013
【図１３】
0006827607.tif 000014
【図１４】
0006827607.tif 000015
【図１５】
0006827607.tif 000016
【図１６】
0006827607.tif 000017