(57)【特許請求の範囲】
【請求項１】
複数のノードが伝送路を介して接続されたノードシステムにおいて、
前記複数のノードは、クロック発生器と、連続的に繰り返されるサイクル内において前記クロック発生器が第１の所定数のクロックを発生するごとに生じるマイクロチックに基づいて割り当てられるスロットでフレームを送出し、前記サイクルのサイクル長に対応するサイクルマイクロチック数の初期値と前記初期値に対するレート補正値を管理する通信制御部とを有する複数のノードとを有し、
前記複数のノードのうち、
第１のスロットで第１のフレームを送出する第１のノードは、前記複数のノードのサイクルが同期するように、第１のレート補正値を繰り返し補正し、前記第１のレート補正値の絶対値が所定のレート補正限界値を超える場合には、前記第１のフレームの送出を停止し、前記絶対値が前記レート補正限界値以内の場合には、補正された前記第１のレート補正値に基づいて、前記第１のスロットで前記第１のフレームを送出し、
第２のスロットで第２のフレームを送出する第２のノードは、前記複数のノードのサイクルが同期するように、第２のレート補正値を繰り返し補正し、前記第２のレート補正値の絶対値が前記レート補正限界値を超える場合には、前記第２のフレームの送出を停止し、前記絶対値が前記レート補正限界値以内の場合には、補正された前記第２のレート補正値に基づいて、前記第２のスロットで前記第２のフレームを送出し、
第３のスロットで第３のフレームを送出する監視ノードは、前記サイクルマイクロチック数を増加または減少させながら前記第３のスロットで前記第３のフレームを送出し、前記第１および第２のフレームの受信が停止した時の当該監視ノードの前記サイクルマイクロチック数から前記レート補正限界値を減じまたは加えた還元サイクルマイクロチック数を求めるノードシステム。
【請求項２】
請求項１に記載のノードシステムにおいて、
前記監視ノードは、更に、
前記第１および第２のフレームの送出を停止した前記第１および第２のノードに、前記第１および第２フレームの送出と前記第１および第２のレート補正値の補正とを再開させ、
前記還元サイクルマイクロチック数の中間数をサイクルマイクロチック数として設定し、前記第３のスロットで前記第３のフレームを繰り返し送出する
ことを特徴とするノードシステム。
【請求項３】
請求項２に記載のノードシステムにおいて、
前記監視ノードは、前記第１および第２のフレームの送出を停止した前記第１および第２のノードに前記第１および第２のフレームの送出と前記第１および第２のレート補正値の補正とを再開させた後に、前記第３のスロットで第３のフレームを繰り返し送出することを
特徴とするノードシステム。
【請求項４】
請求項２に記載のノードシステムにおいて、
前記監視ノードは、更に、前記第１および第２のフレームの受信が停止した後に、
前記中間数をサイクルマイクロチック数として設定して、前記第３のスロットで前記第３のフレームの送出を開始し、
その後、前記第１および第２のフレームの送出を停止した前記第１および第２のノードに、サイクル長が監視ノードのサイクル長に一致するように前記第１および第２のレート補正値を設定させ、
その後、前記第１および第２のノードに、前記第１および第２のフレームの送出と前記第１および第２のレート補正値の補正とを再開させることを、
特徴とするノードシステム。
【請求項５】
請求項１乃至４のいずれか１項に記載のノードシステムにおいて、
前記監視ノードは、サイクル対ごとに、当該サイクル対の先のサイクルを第２の所定数のマイクロチック数遅らせ又は早めて終了させ、当該サイクル対の後のサイクルを前記第２の所定数のマイクロチック数早め又は遅らせて終了させ、その後前記サイクルマイクロチック数を増加または減少させることを繰り返しながら、前記第３のスロットで前記第３のフレームを送出することを
特徴とするノードシステム。
【請求項６】
請求項１乃至５のいずれか１項に記載のノードシステムにおいて、
前記中間数は、前記複数の還元サイクルマイクロチック数のデータ数に応じた第３の所定数のデータを、前記複数の還元サイクルマイクロチック数の最大値から最小値に向かって順番に削除し且つ前記第３の所定数のデータを前記最小値から前記最大値に向かって削除し、残された前記還元サイクルマイクロチック数の最大値と最小値の平均値を切り上げまたは切り下げて得られるフォールト・トレラント中間値であることを
特徴とするノードシステム。
【請求項７】
請求項１乃至６のいずれか１項に記載のノードシステムにおいて、
前記第３のスロットは、複数のスロットを有し
前記第３のフレームは、複数のフレームを有することを
特徴とするノードシステム。
【請求項８】
クロック発生器と、連続的に繰り返されるサイクル内において前記クロック発生器が第１の所定数のクロックを発生するごとに生じるマイクロチックに基づいて割り当てられる第１および第２のスロットで第１および第２のフレームを受信し、前記マイクロチックに基づいて割り当てられる第３のスロットで第３のフレームを送出し、前記サイクルのサイクル長に対応するサイクルマイクロチック数の初期値と前記初期値に対するレート補正値を管理する通信制御部とを有し、
前記サイクルマイクロチック数を増加または減少させながら前記第３のスロットで第３のフレームを送出し、前記第１および第２のフレームの受信が停止した時のサイクルマイクロチック数から所定のレート補正限界値を減算または加算した還元サイクルマイクロチック数を求める
監視ノード。
【請求項９】
請求項８に記載の監視ノードにおいて、
更に、前記第１および第２のフレームの送出を停止した前記第１および第２のノードに、前記第１および第２フレームの送出と前記第１および第２のレート補正値の補正とを再開させ、
前記還元サイクルマイクロチック数の中間数を当該監視ノードのサイクルマイクロチック数として設定し、前記第３のスロットで前記第３のフレームを繰り返し送出する
ことを特徴とする監視ノード。
【請求項１０】
請求項８または９に記載の監視ノードにおいて、
サイクル対ごとに、当該サイクル対の先のサイクルを第２の所定数のマイクロチック数遅らせ又は早めて終了させ、当該サイクル対の後のサイクルを前記第２の所定数のマイクロチック数早め又は遅らせて終了させ、その後前記サイクルマイクロチック数を増加または減少させることを繰り返しながら、前記第３のスロットで前記第３のフレームを送出することを
特徴とする監視ノード。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、ノードシステムおよび監視ノードに関する。
【背景技術】
【０００２】
複数のノードを有する分散制御方式のネットワークでは、それぞれのノードが、クロック生成器を有している。これらのノードは、夫々、クロック生成器が生成するクロックに基づいて、データ通信のサイクルを管理する。しかし、クロック発生器の周波数（クロック周波数）は、それぞれ僅かに誤差を有している。従って、それぞれのノードは、クロック周波数の誤差により通信サイクルにずれが生じないように、他のノードと同期をとりながらデータ通信を行う。分散制御方式は、車載LAN（local area network）の高速化に適したFlexRayプロトコルにも採用されている。
【先行技術文献】
【特許文献】
【０００３】
【特許文献１】特開平９−４６７６２号公報
【特許文献２】特開平２００８―２９４６５６号公報
【特許文献３】FlexRay Communications System Protocol Specification Version 2.1, Chapter 9, 2005年.
【発明の概要】
【発明が解決しようとする課題】
【０００４】
FlexRayプロトコルでは、各ノードは、それぞれのサイクル長（サイクルの時間）が一定値に収束するように、他のノードからのフレームの受信時刻に基づいて、それぞれ自身のサイクル長を逐次補正する。
【０００５】
しかし、このような同期方法では、クロック周波数に対応する本来のサイクル長とは無関係に、同期がとられる。このため、各ノードのサイクル長は、本来のサイクル長分布の中心部から外れた位置に、収束し易い。その結果、同期外れ（同期機能の停止）が起き易くなる。そこで、本発明は、このような問題を解決することを課題とする。
【課題を解決するための手段】
【０００６】
本システムの一観点によれば、複数のノードが伝送路を介して接続されたノードシステムにおいて、前記複数のノードは、クロック発生器と、連続的に繰り返されるサイクル内において前記クロック発生器が第１の所定数のクロックを発生するごとに生じるマイクロチック(microtick)に基づいて割り当てられるスロットでフレームを送出し、前記サイクルのサイクル長に対応するサイクルマイクロチック数の初期値と前記初期値に対するレート補正値を管理する通信制御部とを有するノードシステムが提供される。
【０００７】
ここで、前記複数のノードのうち第１のスロットで第１のフレームを送出する第１のノードは、前記複数のノードのサイクルが同期するように、第１のレート補正値を繰り返し補正し、前記第１のレート補正値の絶対値が所定のレート補正限界値を超える場合には、前記第１のフレームの送出を停止し、前記絶対値が前記レート補正限界値以内の場合には、補正された前記第１のレート補正値に基づいて、前記第１のスロットで前記第１のフレームを送出する。
【０００８】
また、前記複数のノードのうち第２のスロットで第２のフレームを送出する第２のノードは、前記複数のノードのサイクルが同期するように、第２のレート補正値を繰り返し補正し、前記第２のレート補正値の絶対値が前記レート補正限界値を超える場合には、前記第２のフレームの送出を停止し、前記絶対値が前記レート補正限界値以内の場合には、補正された前記第２のレート補正値に基づいて、前記第２のスロットで前記第２のフレームを送出しする。
【０００９】
そして、前記複数のノードのうち第３のスロットで第３のフレームを送出する監視ノードは、前記サイクルマイクロチック数を増加または減少させながら前記第３のスロットで前記第３のフレームを送出し、前記第１および第２のフレームの受信が停止した時の当該監視ノードの前記サイクルマイクロチック数から前記レート補正限界値を減じまたは加えた還元サイクルマイクロチック数を求める。
【発明の効果】
【００１０】
本システムによれば、ノードの本来のサイクル長が測定される。従って、それぞれのノードのサイクル長を、本来のサイクル長分布の中心部に収束させることが可能になる。
【図面の簡単な説明】
【００１１】
【図１】実施の形態１のノードシステムの構成図である。
【図２】実施の形態１のノードシステムが有する各ノードの構成図である。
【図３】実施の形態１の各ノードのフレーム送信を説明する図である（その１）。
【図４】実施の形態１の各ノードのフレーム送信を説明する図である（その２）。
【図５】第１および第２のノードの同期制御を説明するフローチャートである。
【図６】監視ノードのメモリの構成図である。
【図７】実施の形態１のノードシステムの動作を説明するフローチャートである。
【図８】フェーズＡおよびＢにおける各ノードのサイクル長の変化を説明する図であ    る。
【図９】各ノードの起動ステップの手順を説明するフローチャートである。
【図１０】各ノードのレート補正を説明するフローチャートである。
【図１１】第１のノードのレート補正を説明するタイムチャートである。
【図１２】表４に示した例におけるサイクル長のシミュレーション結果を説明する図    である。
【図１３】ノード内部の時間構成を説明する図である。
【図１４】フレームの送信時刻を説明する図である。
【図１５】フェーズＢにおける監視ノードの動作を説明するフローチャートである。
【図１６】実施の形態１のフェーズＣにおける各ノードのサイクル長の変化を説明す    る図である。
【図１７】実施の形態１の監視ノードのフェーズＣにおける動作を説明するフローチ    ャートである。
【図１８】実施の形態２の監視ノードのフェーズＣにおける動作を説明するフローチ    ャートである。
【図１９】実施の形態２のフェーズＣにおける各ノードのサイクル長の変化を説明す    る図である。
【図２０】実施の形態３の監視ノードのフェーズＢにおける動作を説明するフローチ    ャートである。
【図２１】サイクル終了時の調整方法を説明するフローチャートである。
【図２２】サイクル終了時の調整方法を説明するタイムチャートである。
【図２３】実施の形態１の監視ノードと実施の形態２の監視ノードのサイクル長の変    化を比較するタイムチャートである。
【図２４】第１のノードが行うオフセット補正を説明するタイムチャートである。
【図２５】実施の形態４のノードシステムの構成を説明する図である。
【図２６】フォールト・トレラント・アルゴリズムを説明する図である。
【図２７】第１のノードにおけるレート補正の手順を説明するタイムチャートである    。
【発明を実施するための形態】
【００１２】
以下、図面にしたがって本発明の実施の形態について説明する。但し、本発明の技術的範囲はこれらの実施の形態に限定されず、特許請求の範囲に記載された事項とその均等物まで及ぶものである。尚、図面が異なっても対応する部分には同一符号を付し、その説明を省略する。
【００１３】
（実施の形態１）
（１）構  造
図１は、本実施の形態のノードシステム（クラスタ）２の構成図である。図２は、本ノードシステムが有する複数のノード４の構成図である。図３および４は、複数のノード４のフレーム送信方法を説明する図である。
【００１４】
図１に示すように、本ノードシステム２は、複数のノード４と、この複数のノード４が接続された伝送路６とを有している。この複数のノード４は、図２に示すように、それぞれコンピュータ７（例えば、マイクロコンピュータ）と、通信制御部８（communication controller）と、クロック発生器１０を有している。
【００１５】
クロック発生器１０が発生するクロックは、例えば、コンピュータ７を介して、通信制御部１４に供給される。コンピュータ７は、例えば、ブレーキペダルの位置センサや車輪の制動装置等の外部装置に接続されている。コンピュータ７は、外部装置の情報（例えば、ブレーキペダルの位置）を取得し、または外部装置（例えば、車輪の制動装置）を制御する。この時、複数のノード４は、夫々、通信制御部８により他のノードと情報を交換しながら、外部装置を制御する。
【００１６】
通信制御部８は、図２に示すように、メモリ１２（例えば、レジスタまたはＲＡＭ（Random Access Memory））と制御部１４とを有している。制御部１４は、FPGA（Field-Programmable Gate Array）等の論理回路、あるいは当該制御部の機能を実現するようにプログラムされるCPU（Central Processing Unit）である。
【００１７】
そして、通信制御部８は、図３に示すように、連続的に繰り返されるサイクル１６内においてクロック発生器１０が所定数（例えば、１、２、４）のクロックを発生するごとに生じるマイクロチックに基づいて割り当てられるスロット１８でフレームを送出する。ここで、サイクルは、ノード内時刻の最上位の構成要素である。一方、マイクロチック（以下、μＴと呼ぶ）は、ノード内時刻の最小単位である。
【００１８】
また、通信制御部８は、サイクル１６のサイクル長２２（例えば、１０,０００μｓ）に対応するサイクルマイクロチック数の初期値（例えば、１００,０００）と、この初期値に対するレート補正値を管理する。このサイクルマイクロチック数（以下、サイクルμＴ数と呼ぶ）の初期値とレート補正値はメモリ１２に記録される。ここで、サイクルサイクルμＴ数の初期値は、複数のノード４に共通するグローバル定数である。
【００１９】
複数のノード４は、図１に示すように、第１のノード４ａと、第２のノード４ｂと、監視ノード４ｃとを有している。第１のノード４ａは、図４に示すように、第１のスロット１８ａで第１のフレーム２０ａを送出する。第２のノード４ｂは、第２のスロット１８ｂで第２のフレーム２０ｂを送出する。監視ノード４ｃは、第３のスロット１８ｃで第３のフレーム２０ｃを送出する。
【００２０】
―第１のノード―
図５は、第１および第２のノード４ａ,４ｂの同期制御を説明するフローチャートである。
【００２１】
第１のノード４ａは、複数のノード４のサイクルが同期するように、第１のレート補正値（第１のノード４ａが管理するレート補正値）を繰り返し補正する（Ｓ２→Ｂ１→Ｓ２）。ここで、複数のノードのサイクルが同期するとは、複数のノードそれぞれのサイクルの開始または終了が揃うことである。
【００２２】
第１のノード４ａは、更に、第１のレート補正値の絶対値が所定のレート補正限界値（例えば、２〜１９２３μＴ）を超える場合（Ｓ４→Ｂ２）には、第１のフレーム２０ａの送出を停止する（ステップＳ８）。一方、第１のレート補正値の絶対値が上記補正限界値以内の場合（Ｓ４→Ｂ１）には、第１のノード４ａは、補正された第１のレート補正値に基づいて、第１のスロット１８ａで第１のフレーム２０ａを送出する（ステップＳ６）。ここで、レート補正限界値（＞０）は、複数のノード４に共通するグローバル定数である。尚、レート補正値を補正することを、以後、レート補正と呼ぶ。
【００２３】
―第２のノード―
第２のノード４ｂの同期方法は、第１のノード４ａの同期方法と略同じである。
【００２４】
すなわち、第２のノード４ｂは、複数のノード４のサイクルが同期するように、第２のレート補正値（第２のノード４ｂが管理するレート補正値）を繰り返し補正する（Ｓ２→Ｂ１→Ｓ２）。そして、第２のノード４ｂは、第２のレート補正値の絶対値が上記レート補正限界値を超える場合（Ｓ４→Ｂ２）には、第２のフレーム２０ｂの送出を停止する（ステップＳ８）。一方、第２のレート補正値の絶対値が上記補正限界値以内の場合（Ｓ４→Ｂ１）には、第２のノード４ａは、補正された第２のレート補正値に基づいて、第２のスロット１８ｂで第２のフレーム２０ｂを送出する（ステップＳ６）。
【００２５】
―監視ノード―
監視ノード４ｃは、第１および第２のノード４ａ,４ｂと同様に、複数のノード４のサイクルが同期するように、第３のレート補正値（監視ノード４ｃが管理するレート補正値）を繰り返し補正しながら、第３のスロット１８ｃで第３のフレーム２０ｃを送出する。そして、監視ノード４ｃは、複数のノード４それぞれのサイクル長が連続して所定の回数（例えば、５回）以上、所定の幅（例えば、１０μＴ）を有する範囲内にあると判定された場合に、サイクルμＴ数２２を増加（または減少）させながら第３のスロット１８ｃで第３のフレーム２０ｃを送出する。
【００２６】
このサイクル長２２の変化に応答して、第１および第２のノード２０ａは、第１および第２のレート補正値を増加（または減少）させ、やがて第１および第２のフレーム２０ａ,２０ｂの送出を停止する。
【００２７】
監視ノード４ｃは、第１および第２のフレーム２０ａ,２０ｂの受信が停止した時の（監視ノード４ｃの）サイクルμＴ数から上記レート補正限界値を減じ（または加えた）複数の還元サイクルμＴ数を求める。
【００２８】
更に、監視ノード４ｃは、第１および第２のフレーム２０ａ,２０ｂの送出を停止した第１および第２のノード４ａ,４ｂに、第１および第２のフレーム２０ａ,２０ｂの送出と第１および第２のレート補正値の補正とを再開させる。そして、監視ノード４ｃは、上記還元サイクルμＴ数の中間数（複数の数値の最大値と最小値の間の値、例えば平均値）を、監視ノード４ｃのサイクルμＴ数として設定して、第３のスロット１８ｃで第３のフレーム２０ｃを繰り返し送出する。
【００２９】
監視ノード４ｃのハードウェア構成は、第１および第２のノード４ａ,４ｂと略同じである。但し、監視ノード４ｃの制御部１４は、上記機能を果たすように構成されている。また、監視ノード４ｃのメモリは、第１および第２のノード４ａ,４ｂのメモリには無い領域を有している。
【００３０】
図６は、監視ノード４ｃのメモリ１２ａの構成図である。監視ノード４ｃのメモリ１２ａは、図６に示すように、サイクルμＴ数の初期値を記録する第１のメモリ領域３２ａと、レート補正値を記録する第２のメモリ領域３２ｂとを有している。監視ノード４ｃのメモリ１２ａは、更に、第１および第２のフレーム２０ａ,２０ｂの受信が停止した時のサイクルμＴ数を記録する第３のメモリ領域３２ｃと、還元サイクルμＴ数の中間数を記録する第４のメモリ領域３２ｄを有している。
【００３１】
これら第１乃至第４のメモリ領域３２ａ〜３２ｄは、例えば、レジスタである。或いは、第１乃至第４のメモリ領域３２ａ〜３２ｄは、ＲＡＭに設けられた複数のメモリ領域である。尚、第１および第２のメモリ領域３２ａ,３２ｂは、第１および第２のノード４ａ,４ｂにも設けられる共通のメモリ領域である。
【００３２】
（２）動  作
図７は、本ノードシステム２の動作を説明するフローチャートである。図７に示すように、本ノードシステム２の動作は３つのフェーズに分けることができる。図８は、フェーズＡおよびＢにおける各ノードのサイクル長の変化を説明する図である。横軸は、第１のノード４ａのサイクル番号である。サイクル番号の初期値は０であり、サイクルが発生するごとに１つずつ増加する。縦軸は、サイクル長である。図８には、第１および第２のノード４ａ,４ｂのサイクル長３４ａ,３４ｂと監視ノード４ｃのサイクル長３４ｃが示されている。
【００３３】
以下、各フェーズＡ〜Ｂにおける本ノードシステム２の動作を説明する。尚、特に断らない限り、以下に説明する動作は、各ノードの通信制御部８が行う動作である。他の実施の形態においても、同じである。
【００３４】
―フェーズＡ―
【００３５】
【表１】
0005662119.tif 000002
表１は、各ノード４ａ,４ｂ,４ｃが有するクロック発生器１０の周波数誤差の一例を示している。表１に示す例では、第１のノード４ａ、第２のノード４ｂ、および監視ノード４ｃの周波数誤差は、夫々、０ｐｐｍ、−３０００ｐｐｍ、および-５００ｐｐｍである。第１のノード４ａのクロック周波数は、例えば４０ＭＨｚである。従って、クロックが４つ発生するごとにマイクロチックが生じる場合、第１のノード４ａの１μＴは、０.１μｓに相当する。一方、第２のノード４ｂおよび監視ノード４ｃの１μＴは、それぞれ０.１００３μｓおよび０.１０００５μｓに相当する。
【００３６】
フェーズＡでは、図７に示すように、まず各ノードが起動されＳ１２ａ〜Ｓ１２ｃ）、その後互いに同期をとりながらフレームを送出する（Ｓ１４ａ〜Ｓ１４ｃ）。図９は、各ノードの起動ステップＳ１２ａ〜Ｓ１２ｃの手順を説明するフローチャートである。
【００３７】
各ノードにパワーが供給されると、各ノードの通信制御部８は、それぞれのコンピュータ７により初期設定（コンフィグレーション）される（Ｓ２２ａ〜２２ｃ）。
【００３８】
【表２】
0005662119.tif 000003
表２は、初期設定されたメモリ１２内のサイクルμＴ数および初期設定されたレート補正値の一例である。表２の４行目には、各ノードのサイクル長（サイクル時間）の初期値も示されている。表２に示すように、サイクルμＴ数は全てのノードで同じ値（例えば、１００,０００μＴ）に初期設定される。また、レート補正値も、全て０μＴに初期設定される。
【００３９】
第１のノード４ａには、例えば、外部スイッチ（図示せず）が接続されている。この外部スイッチが外部信号を生成すると、第１のノード４ａは、この外部信号に応答して、ウェークアップする（Ｓ２４ａ）。すると、第１のノード４ａは、ウェークアップ信号３６を送出する。
【００４０】
ここで、ウェークアップとは、次のスタートアップ・ステップＳ２８ａ〜Ｓ２８ｃ（通信準備ステップ）に入れる状態になることである。第２のノード４ｂおよび監視ノード４ｃは、監視ノード４ｃの送出するウェークアップ信号３６に応答して、ウェークアップする（Ｓ２４ｂおよびＳ２４ｃ）。
【００４１】
第２のノード４ｂまたは監視ノード４ｃの少なくても一方がウェークアップすると、第１のノード４ａは、スタートアップ・ステップに進む（Ｓ２８ａ）。
【００４２】
スタートアップ・ステップに進んだ第１のノード４ａは、第１のフレーム２０ａをスタートアップ・フレームに設定して、連続する４つのサイクルで第１のフレーム２０ａを送出する。スタートアップ・フレームとは、他のノードがスタートアップに利用するフレームのことである。
【００４３】
第１乃至第３のフレーム２０ａ〜２０ｃのヘッダセグメントには、スタートアップ・フレーム・インジケータが設けられている。スタートアップ・フレーム・インジケータが「１」に設定されたフレームが、スタートアップ・フレームである。このスタートアップ・フレーム・インジケータの値を検出して、第１および第２のノード４ａ,ｂは、受信したフレームがスターアップ・フレームか否か判断する。
【００４４】
【表３】
0005662119.tif 000004
表３は、スタートアップ期間の開始時と終了時におけるサイクルμＴ数とサイクル長の一例を示している。表３の２行目及び３行目には、スタートアップ・ステップ（Ｓ２８ａ〜Ｓ２８ｃ）開始時と終了時点におけるサイクルμＴ数が示されている。表３の４行目と５行目には、２行目および３行目のサイクルμＴ数に対応するサイクル長が示されている。
【００４５】
表３に示すように、第１のノード４ａは、スタートアップ期間の間、サイクルμＴ数を、その初期値（例えば、１０００,０００）に維持する。尚、第１のノード４ａは、上述したように、スタートアップ期間に、連続する４つのサイクルで第１のフレーム２０ａ（スタートアップフレーム）を送出する。
【００４６】
一方、第２のノード４ｂおよび監視ノード４ｃは、上記連続する４つのサイクルの最初の２サイクルで第１のフレーム２０ａを受信し、その受信時刻の差分を測定する。第２のノード４ｂおよび監視ノード４ｃは、最初の２サイクルに続く２サイクルで、それぞれのサイクル長が上記時間差に一致するように、それぞれのマイクロチック数を補正する（表３参照）。以上が、第２のノード４ｂおよび監視ノード４ｃのスタートアップ・ステップ（Ｓ２８ｂおよびＳ２８ｃ）である。
【００４７】
スタートアップ・ステップにより、第２のノード４ｂおよび監視ノード４ｃは、図８のスタートアップ期間ＳＵＰに示すように、それぞれのサイクル長３４ｂ,３４ｃを、第１のノード４ａのサイクル長３４ａに略一致させる。更に、第２のノード４ｂおよび監視ノード４ｃは、それぞれのサイクルの開始時刻を、第１のノード４ａのサイクル開始時刻に一致させる。
【００４８】
起動ステップ（Ｓ１２ａ〜Ｓ１２ｃ）が終了すると、各ノードは、同期ステップ（Ｓ１４ａ〜Ｓ１４ｃ）に進む（図７参照）。同期ステップでは、各ノードは、互いに同期をとりながらフレームを送出し、図８に示すように、それぞれのサイクル長をサイクル長初期値の最大値と最小値の間の値４２に収束させる。この間、各ノードは、それぞれのレート補正値を繰り返し補正する。
【００４９】
図１０は、各ノードのレート補正を説明するフローチャートである。図１１は、第１のノード４ａのレート補正を説明するタイムチャートである。まず、第１のノード４ａのレート補正動作を説明する。
【００５０】
第１のノード４ａは、図１１に示すように、第１のサイクル１６ａで受信される第１乃至第３のフレーム２０ａ〜２０ｃそれぞれに対するサイクル開始からの第１のマイクロチック数２４ａ,２４ｂを測定する（ステップＳ３２）。尚、後述するように、第１のノード４ａは、第１のフレーム２０ａに対するマイクロチック数は測定しない。また、受信されるフレームのサイクル開始からのマイクロチック数とは、サイクルの開示時点から当該フレームの受信時点までに発生するマイクロチックの数である。
【００５１】
同様に、第１のノード４ａは、第１のサイクル１６ａに続く第２のサイクル１６ｂで受信される第１乃至第３のフレーム２０ａ〜２０ｃそれぞれに対するサイクル開始からの第２のマイクロチック数２６ａ,２４ｂを測定する（ステップＳ３２）。
【００５２】
ところで、本実施の形態の第１のノード４ａは、自身が送信する第１のフレーム２０ａは受信しない。すなわち、第１のフレーム２０ａは、受信されるフレームではない。従って、第１のフレーム２０ａに対するマイクロチック数は測定されない。但し、以下の説明から明らかなように、第１のフレーム４ａが第１のフレーム２０ａを受信して第１および第２のマイクロチック数を測定しても、レート補正動作の結果は略同じである。第２のノード４ｂおよび監視ノード４ｃについても、同様である。
【００５３】
次に、第１のノード４ａは、第１乃至第３のフレーム２０ａ〜２０ｃそれぞれに対する第１および第２のマイクロチック数の差分（以下、第１の差分と呼ぶ）を求め、その中間値（以下、第１の中間値と呼ぶ）を第１のレート補正値に加算する（ステップＳ３４）。ここで、第１の中間値は、例えば、後述するフォールト・トレラント中間値（fault-tolerant midpoint）である。尚、監視ノード４ｃが、図４のように、第３のスロット１８ｃで第３のフレーム２０ａを一つだけ送出する場合、第１の中間値は、第１の差分の平均値を切り上げまたは切り下げた値が好ましい。
【００５４】
第１のノード４ａは、加算された第１のレート補正値が所定の減衰定数（例えば、５μＴ）以上の場合（Ｓ３５→Ｂ３２）には、加算された第１のレート補正値から上記減衰定数（＞０）を減算して、第１のレート補正値を補正する（ステップＳ３６）。減衰定数は、複数のノード４で共通に用いられるグローバル定数である。
【００５５】
一方、加算された第１のレート補正値が上記減衰定数に対応する負の値（例えば、１０に対する―１０）以下の場合（Ｓ３５→Ｂ３４）には、第１のノード４ａは、加算された前記第１のレート補正値に上記減衰定数を加算して、第１のレート補正値を補正する。また、加算された第１のレート補正値の絶対値が減衰定数より小さい場合（Ｓ３５→Ｂ３６）には、第１のノード４ａは、第１のレート補正値を０に補正する（ステップＳ４０）。最後に、第１のノード４ａは、第２のメモリ領域３２ｂのデータを、補正された第１のレート補正値で更新する（ステップＳ４２）。
【００５６】
上記レート補正動作が１回終了するごとに、第１のノード４ａは、第２のサイクル１６ｂに続く２つのサイクル（図示せず）で、第１のフレーム２０ａを送信する（図５のステップＳ６）。これら後続する２サイクルのサイクルμＴ数は、メモリ１２内の第１のメモリ領域３２ａに記録されたサイクルμＴ数の初期値に、第２のメモリ領域３２ｂ内の更新されたレート補正値を加えた値である。
【００５７】
第１の中間値を第１のレート補正値に加えることにより、第１のノード４ａのサイクル長と、第２のノード４ｂおよび監視ノード４ｃのサイクル長が近づく。一方、第１のレート補正値に減衰定数を加えまたは減ずることにより、第１のノードのサイクル長は、そのサイクル長の初期値に近づく。その結果、図８に示すように、複数のノード４のサイクルは互いに同期し、それぞれのサイクル長２２は、複数のノード４のサイクル長の最大値と最小値の間の値４２に収束する（すなわち、それぞれサイクル長が、値４２を中心とする所定の幅（例えば、減衰定数×２）を有する範囲内に入る。）。
【００５８】
同様に、第２のノード４ｂは、第２のレート補正値を補正する。すなわち、第２のノード４ｂは、第１および第２のサイクル１６ａ,１６ｂに対応する第３および第４のサイクルで受信される第１乃至第３のフレーム２０ａ〜２０ｃの第３および第４のマイクロチック数を測定する。（ステップＳ３２）。第２のノード４ｂは、この第３および第４のマイクロチック数の第２の差分の第２の中間値に基づいて、第２のレート補正値を補正する（ステップＳ３４〜Ｓ４０）。その後、第２のノード４ｂは、レート補正動作が１回終了するごとに、第４のサイクルに続く２つのサイクルで、第２のフレーム２０ｂを送信する（ステップＳ４２）。
【００５９】
同様に、監視ノード４ｃも、フェーズＡでは、第３のレート補正値を補正する。すなわち、監視ノード４ｃは、第１および第２のサイクル１６ａ, １６ｂに対応する第５および第６のサイクルで受信される第１乃至第２のフレーム２０ａ〜２０ｃの第５および第６のマイクロチック数を測定する（ステップＳ３２）。監視ノード４ｃは、この第５および第６のマイクロチック数の第３の差分の第３の中間値に基づいて、第３のレート補正値を補正する（ステップＳ３４〜Ｓ４０）。以後、監視ノード４ｃは、レート補正動作が１回終了するごとに、第６のサイクルに続く２つのサイクルで、第３のフレーム２０ｃを送信する（ステップＳ４２）。
【００６０】
このようなレート補正動作が繰り返されることで、複数のノード４のサイクルは互いに同期し、それぞれのサイクル長が一定値に収束する（図８参照）。
【００６１】
【表４】
0005662119.tif 000005
表４は、スタートアップ後の各ノードのサイクル長の推移を示している。表４の２行目および３行目には、レート補正開始時とサイクル長収束時の各ノードのサイクルμＴ数の一例が示されている。表４の４行目と５行目は、これらサイクルμＴ数に対応するサイクル長が示されている。
【００６２】
表４の５行目に示すように、各ノードの収束時のサイクル長は、４行目に示すレート補正開始時のサイクル長（１０，０００μｓ）よりサイクル長初期値分布４３（図８参照）の中心４４（１０，１６６μｓ）に近づく。しかし、サイクル長初期値分布４３の中心４４と各ノードの収束時のサイクル長との隔たりは大きい（例えば、１１６μｓ＝１０，１６６μｓ−１０，０５０μｓ）。
【００６３】
図１２は、表４に示した例におけるサイクル長のシミュレーション結果を説明する図である。横軸は、サイクル番号であり、縦軸はサイクル長である。シミュレーションに用いたサイクルμＴ数の初期値は、１００,０００μＴである。減衰定数は、５μＴである。図１２によれば、各ノードのサイクル長が、互いに引き付け合いながら、サイクル長の初期値分布の中心に向かって行く様子がよく分かる。
【００６４】
図８のフェーズＡにおけるサイクル長の変化は、図１２の概略図である。図８に示すように、第２のノード４ｂのサイクル長初期値４３と収束値４２の間には大きな隔たり４６がある。すなわち、第２のノード４ｂのレート補正値の絶対値（２４５μＴ＝１００,０００μＴ−９９，７５５μＴ）は、収束時でも小さくならない。
【００６５】
このようにレート補正値の絶対値が大きいと、雑音等の僅かな擾乱でもレート補正値がレート補正限界値（例えば、３０１μＴ）を超えてしまい、第２のノード４ｂがフレームの送出を停止してしまう。これは、図１０に示すレート補正動作では、各ノードが、サイクル長初期値の分布を考慮せずに、サイクル長を収束させようとするためである。しかし、図１０のレート補正動作により、サイクル長初期値の分布を検出することは困難である。本実施の形態では、監視ノード４ｃが、フェーズＢでサイクル長の初期値の分布を測定し、フェーズＣで、第１および第２のノード４ａ,４ｂのサイクル長を、サイクル長の初期値分布の中心を含む一定の範囲内に収束させる。
【００６６】
因みに、第１のマイクロチック数２４ａ（図１１参照）は、例えば、第１のサイクル１６ａの開始から第２のフレーム２０ｂの先頭ビットを受信するまでの間に生じるマイクロチック数を、第１のノード４ａがカウントして得られる値である。しかし、伝送路６の構成によっては、第１のフレーム２０ａの先頭部分が欠けてしまうことがある。このようなシステムでは、第１のサイクル１６ａの開始から第２のフレーム２０ｂ内の時間基準点を受信するまでの間に生じるマイクロチック数を測定し、このマイクロチック数から所定のオフセット値を差し引いて、第１のマイクロチック数２４ａを求めることができる。上記オフセット値は、第２のノード４ｂが、第２のフレーム２０ｂの送信を開始してから上記時間基準点を送出するまでに生じるマイクロチック数である。このオフセット値は、複数のノード４に共通するグローバル定数である。第２のノード４ｂおよび監視ノード４ｃについても、同様である。
【００６７】
尚、本実施の形態の各ノードは、サイクルμＴ数に基づくマクロチック（macrotick）を用いて、フレームの送信時刻を管理する。図１３は、ノード内部の時間構成を説明する図である。図１３に示すように、マクロチック２８（以下、ＭＴと呼ぶ）は、マイクロチック３０（μＴ）より上位の時間単位である。一サイクル３８当たりのマクロチック（以下、サイクルＭＴ数と呼ぶ）数は、複数のノード４に共通するグローバル定数である。
【００６８】
１ＭＴ当たりのμＴ数は、サイクルμＴ数をサイクルＭＴ数で割った値を切り上げて得られる値である。従って、１ＭＴ当たりのμＴ数は、サイクルμＴ数に応じて変化する値である。
【００６９】
図１４は、フレームの送信時刻を説明する図である。各スロット１８のサイクル開始からのＭＴ数３９は、各ノードに共通のグローバル定数である。ここで、スロット１８の開始からフレーム２０が送信されるまでに生じるＭＴ数４０（以下、アクション・ポイント・オフセットと呼ぶ）は、各ノードに共通のグローバル定数である。
【００７０】
従って、スロット１８で受信されるフレーム２０は、スロット１８の開始時刻にアクション・ポイント・オフセット４０に対応する時間を加えた時刻（以下、スロット・アクション・ポイントと呼ぶ）で受信されると期待される。
【００７１】
第１および第２のサイクル１６ａ,１６ｂにおける、サイクル開始からのスロット・アクション・ポイントのμＴ数は等しい。従って、図１１を参照して説明した、第１乃至第３のフレームのサイクル開始からのμＴ数の差分は、第１乃至第３のフレームのスロット・アクション・ポイントからのμＴ数の差分に等しい。従って、スロット・アクション・ポイントを基準にしても、レート補正を行うことができる。
【００７２】
―フェーズＢ―
フェーズＢでは、監視ノード４ｃは、サイクル長の初期値の分布を測定する。監視ノード４ｃは、フェーズＡの間各ノードのサイクル長の変化を監視し、各ノードのサイクル長が収束したと判定するとフェーズＢに進む。
【００７３】
監視ノード４ｃは、例えば、複数のノード４それぞれのサイクル長が、連続して所定の回数（例えば、５回）以上、所定の幅（例えば、減衰定数×２）を有する範囲（例えば、10,0045〜10,0055μＴ）内にある場合に、各ノードのサイクル長が収束したと判定する。すなわち、複数のノード４のサイクル長が全て、所定の幅を有するある範囲内で変動するようになった場合に、各ノードのサイクル長は、収束したと判定される。
【００７４】
尚、監視ノード４ｃのサイクル長は、そのレート補正値（第３のレート補正値）とサイクルマイクロチック数の初期値から求めることができる。すなわち、サイクルμＴ数の初期値にレート補正値を加算してサイクルμＴ数を求め、このサイクルμＴ数を時間に換算することで、第１のノード４ａのサイクル長を求めることができる。一方、第１のノード４ａのサイクル長は、第１のフレーム２０ａに対する上記第１および第２のマイクロチック数μＴ１,Ｔ２と、監視ノード４ｃのサイクルμＴ数ＣμＴから求めることができる。すなわち、これらの値を式（ＣμＴ＋μＴ２−μＴ１）に代入して第１のフレーム２０ａの間隔を求め、この間隔を時間に換算することで、第１のノード４ａのサイクル長を求めることができる。第２のノード４ｂのサイクル長も、同様に求められる。
【００７５】
図１５は、フェーズＢにおける監視ノード４ｃの動作を説明するフローチャートである。
【００７６】
第１および第２のノード４ａ,４ｂは、フェーズＢの間も、図５を参照して説明した同期制御を続ける。一方、監視ノード４ｃは、フェーズＢに進むと、そのサイクルμＴ数を増加させながら、第３のスロット１８ｃで第３のフレーム２０ｃを送出する（Ｓ４２→Ｓ４４→Ｂ４２→Ｓ４２、図７のステップＳ１６）。
【００７７】
すると、第１および第２のノード４ａ,４ｂは、第３のフレーム２０ｃのサイクル開始からのマイクロチック数の増加に応答して、それぞれのレート補正値を逐次増加させる。第１および第２のノード４ａ,４ｂは、増加したレート補正値に基づいて第１および第２のフレーム２０ａ,２０ｂを送信し、レート補正値がレート補正限界値を超えた時点で第１および第２のフレーム２０ａ,２０ｂの送信を順次停止する（図７のステップＳ１８）。
【００７８】
監視ノード４ｃは、図１５に示すように、第１および第２のノード４ａ,４ｂが第１および第２のフレームの送信を停止するまで、第３のフレーム２０ｃの送信を続ける（ステップＳ４８）。この間、監視ノード４ｃは、第１または第２のノード４ａ,４ｂが停止するごとに、その時点における監視ノード４ｃのサイクルμＴ数４８ａ,４８ｂ（図８参照）をメモリ１２ａの第３のメモリ領域３２ｃに記録する（Ｓ４６＋Ｂ４４＋Ｓ５０）。
【００７９】
第１および第２のノード４ａ,４ｂが停止すると、監視ノード４ｃは、第１および第２のフレーム２０ａ,２０ｂの受信が停止した時の監視ノード４ｃのサイクルμＴ数を第３のメモリ領域３２ｃから読み出す。監視ノード４ｃは、読み出したサイクルμＴ数からレート補正限界値を減じた複数の還元サイクルマイクロチック数（以下、還元サイクルμＴ数と呼ぶ）を求め、第４のメモリ領域３２ｄに記録する。（図１５のステップＳ５２、図７のステップＳ２０）。
【００８０】
第１および第２のノード４ａ,４ｂは、監視ノード４ｃに追随してサイクル長を増加させる。従って、第１および第２のフレーム２０ａ,２０ｂが停止した時の監視ノード４ｃのサイクルμＴ数は、監視ノード４ｃの時間単位（すなわち、マイクロチック）で測定した、第１および第２のノード４ａ,４ｂのフレーム送信停止時のサイクル長である。従って、上記還元サイクルμＴ数は、第１および第２のノード４ａ,４ｂのサイクル長の初期値を監視ノード４ｃの時間単位（マイクロチック）で測定した時間である。すなわち、監視ノード４ｃによれば、サイクル長初期値の分布を測定することができる。尚、サイクルμＴ数の増加量は、減衰定数以下が好ましい。サイクルμＴ数の増加量が大きくなり過ぎると、第１および第２のノード４ａ,４ｂと監視ノード４ｃのサイクル長の差分が大きくなるからである。
【００８１】
以上の例では、監視ノード４ｃは、サイクルμＴ数を増加させながら、第３のスロット１８ｃで第３のフレーム２０ｃを送出する。しかし、監視ノード４ｃは、サイクルμＴ数を減少させながら、第３のスロット１８ｃで第３のフレーム２０ｃを送出してもよい。その場合には、監視ノード４ｃは、第１および第２のフレーム２０ａ,２０ｂの受信が停止した時の監視ノード４ｃのサイクルμＴ数に、レート補正限界値を加えた還元サイクルμＴ数を求める。
【００８２】
―フェーズＣ―
フェーズＣでは、監視ノード４ｃは、第１および第２のノード４ａ,４ｂのサイクル長をサイクル長の初期分布の中心部に収束させる。図１６は、フェーズＣにおける各ノードのサイクル長の変化を説明する図である。横軸は、再スタートアップ後のサイクル番号である。縦軸は、サイクル長である。図１７は、監視ノード４ｃのフェーズＣにおける動作を説明するフローチャートである。
【００８３】
監視ノード４ｃは、第１および第２のフレーム２０ａ,２０ｂの受信が停止すると、第３のフレーム２０ｃの送信を一旦停止する。その後、監視ノード４ｃは、第２のメモリ領域３２ｂにレート補正値の初期値０μＴを再設定する。更に、監視ノード４ｃは、第３のメモリ領域３２ｃに記録された還元サイクルμＴ数を読出し、この還元サイクルμＴ数の中間数（最大値と最小値の間の数）を求める。監視ノード４ｃは、求めた中間数をメモリ１２ａの第４のメモリ領域３２ｄに記録する（すなわち、上記中間数をサイクルμＴ数として設定する。）。この中間数は、例えば、還元サイクルμＴ数の平均値を切り上げまたは切り下げて得られる値である。或いは、後述するように、上記中間数は、還元サイクルμＴ数のフォールト・トレラント中間値であってもよい。
【００８４】
その後、監視ノード４ｃは、再スタート信号を送出すると共にレディ状態に入る。レディ状態とは、スタートアップ・フレームに応答して、スタートアップを開始する状態である。第２のノード４ｂは、監視ノード４ｃが送出する再スタートアップ信号に応答して、レディ状態に入る。
【００８５】
一方、第１のノード４ａは、再スタートアップ信号に応答して、連続する４つサイクルで第１のフレーム２０ａをスタートアップ・フレームとして送出する（すなわち、スタートアップ処理を再開する。）。その後、第１のノード４ａは、レート補正を再開し、第１のスロット１８ｃで第１のフレーム２０ｃ（スタートアップ・フレーム）を送出する。
【００８６】
第２のノード４ｂおよび監視ノード４ｃは、第１のノード４ａが送出するスタートアップ・フレームに応答して、スタートアップ処理を実行する。その後、第２のノード４ｂおよび監視ノード４ｃは、レート補正を再開し、第２のスロット１８ｂおよび第３のスロット１８ｃでそれぞれ第２のフレーム２０ｂおよび第３のフレーム２０ｃを送出する。
【００８７】
すなわち、監視ノード４ｃは、第１および第２のフレームの送出を停止した第１および第２のノードに、第１および第２フレームの送出と第１および第２のレート補正値の補正とを再開させる（図１７のＳ６２）。
【００８８】
次に、監視ノード４ｃは、そのレート補正値（第３のレート補正値）の変化を監視し、第１および第２のノード４ａ,４ｂのサイクル長が収束したか否かを逐次判定する。そして、監視ノード４ｃは、第１および第２のノード４ａ,４ｂのサイクル長が収束したと判定すると、第４のメモリ領域３２ｄに記録された還元サイクルμＴ数の中間数を、サイクルμＴ数として設定する。
【００８９】
その後、監視ノード４ｃは、サイクルμＴ数として設定された、還元サイクルμＴ数の中間数に基づいて、第３のスロット１８ｃで第３のフレーム２０ｃを繰り返し送信する（Ｓ６４、図７のＳ２２）。ここで、還元サイクルμＴ数の中間数は、上述したように、例えば、還元サイクルμＴ数の平均値を切り上げまたは切り下げて得られる値である。従って、監視ノード４ｃのサイクル長は、サイクル長分布４３の中心４８近傍に設定される（図１６参照）。
【００９０】
第１および第２のノード４ａ,４ｂは、図１６の期間４５に示すように、監視ノード４ｃが送出する第３のフレーム２０ｃに応答して、それぞれのサイクル長３４ａ,３４ｂを監視ノード４ｃのサイクル長３４ｃ,４７（すなわち、サイクル長分布４３の中心４８）の近傍に収束させる（図７のＳ２４）。従って、第１および第２のノード４ａ,４ｂのサイクル長初期値８０ａ,８０ｂと収束値４２ａの間隔が狭くなり、第１および第２のノード４ａ,４ｂが同期外れを起し難くなる。
【００９１】
ところで、以上の例では、還元マイクロチック数の中間数は、還元マイクロチック数の平均値またはフォールト・トレラント中間値である。しかし、上記中間数は、還元サイクルμＴ数の最大値と最小値の間の平均値を、切り上げまたは切り下げて得られる値であって
もよい。或いは、上記中間数は、還元サイクルμＴ数（＞４）の数に応じて、還元サイク
ルμＴ数の最大値および最小値から所定数のデータ（＞１）を削除して残された還元サイ
クルμＴ数の、最大と最小値の間の数であってもよい。
【００９２】
因みに、第１および第２のノード４ａ,４ｂは、図２を参照して説明したように、それぞれコンピュータ７を有している。これらのコンピュータ７は、それぞれ外部装置を制御するための情報を生成する。第１および第２のノード４ａ,４ｂは、夫々、第１および第２のフレームの送出を再開した後に、第１および第２のフレーム２０ａ,２０ｂのペイロード・セグメントを用いて、生成された情報を送出する（図７のＳ２４）。一方、監視ノード４ｃのコンピュータは、このような情報を生成しない。すなわち、本実施の形態の監視ノード４ｃは、サイクル長の初期分布を測定し、第１および第２のノード４ａ,４ｂのサイクル長を制御する専用装置である。
【００９３】
但し、監視ノード４ｃのコンピュータ７も情報を生成し、第１および第２のノード４ａ,４ｂに第１および第２のフレーム２０ａ,２０ｂの送信を再開された後に、当該情報を送出してもよい。この場合、監視ノード４ｃは、第４のスロットで送出される第４のフレームにより、コンピュータ７が生成する情報を送出することができる。
【００９４】
（実施の形態２）
本実施の形態のノードシステムは、実施の形態１のノードシステム略同じ構成を有している。従って、実施の形態１と共通する部分については、説明を省略する。但し、本監視ノードのフェーズＣにおける動作は、実施の形態１の監視ノードと異なっている。
【００９５】
図１８は、本監視ノードのフェーズＣにおける動作を説明するフローチャートである。図１９は、本実施の形態のフェーズＣにおける各ノードのサイクル長の変化を説明する図である。
【００９６】
本ノードシステムでは、各ノードは、まず、実施の形態１で説明したフェーズＡおよびＢにおける動作を実行する。その後、本監視ノードは、第３のフレームの送信を一旦停止する。
【００９７】
次に、本監視ノードは、第３のメモリ領域３２ｃに記録された還元サイクルμＴ数を読出し、その中間数を求める。その後、監視ノード４ｃは、求めた中間数をサイクルμＴ数として、メモリ１２ａの第４のメモリ領域３２ｄに設定する（Ｓ７２）。
【００９８】
本監視ノードは、更に、再スタートアップ信号を送信する（Ｓ７４）。その後、監視ノードは、第３のフレームをスタートアップ・フレームに設定し、第３のスロット１８ｃで第３のフレーム２０ｃを送出する（Ｓ７６）。
【００９９】
すると、第１および第２のノード４ａ,４ｂは、監視ノード４ｃの送出するスタートアップ信号およびスタートアップ・フレームに応答して、サイクル長が監視ノードのサイクル長に一致するようにぞれぞれのレート補正値（第１および第２のレート補正値）を設定する（図１９の再スタートアップ期間ＲＳＵＰ参照）。
【０１００】
その後、第１および第２のノード４ａ,４ｂは、第１および第２のフレーム２０ａ,２０ｂの送出と第１および第２のレート補正値の補正を再開する。従って、第１および第２のノード４ａ,４ｂのサイクル長は、図１９に示すように、再スタートアップ期間ＲＳＵの終了直後からサイクル長分布の中心４８近傍に収束する。
【０１０１】
（実施の形態３）
本実施の形態のノードシステムは、実施の形態１のノードシステム略同じ構成を有している。従って、実施の形態１と共通する部分については、説明を省略する。但し、本監視ノードは、フェーズＢにおいて、実施の形態１の監視ノードと一部異なった動作をする。
【０１０２】
図２０は、本実施の形態の監視ノードのフェーズＢにおける動作を説明するフローチャートである。尚、実施の形態１と同じ処理を行うステップには、図１５と同じ符号が付されている。
【０１０３】
本監視ノードは、実施の形態１の監視ノードと同様に、フェーズＡの間各ノードのサイクル長を監視し、それぞれのノードのサイクル長が収束したと判定した場合に、フェーズＢに進む。フェーズＢにおける第１および第２のノードの動作は、実施の形態１の第１および第２のノード４ａ,４ｃと略同じである。
【０１０４】
フェーズＢにおける本監視ノードの動作も、図２０に示すように、実施の形態１の監視ノードと略同じである。但し、本監視ノードは、サイクルの終了時を調整しながら第３のフレームを送出し（Ｓ８２）、その後サイクルμＴ数を増加させる（Ｓ８４）。
【０１０５】
図２１は、このサイクル終了時の調整方法（ステップＳ８２）を説明するフローチャートである。図２２は、サイクル終了時の調整方法を説明するタイムチャートである。
【０１０６】
本監視ノードは、図２２に示すように、まず第１のサイクル対（連続する一対のサイクル）５０ａの先のサイクル５２ａの第３のスロット（図示せず）で第３のフレーム２０ｃを送出する（ステップＳ９２）。次に、本監視ノードは、先のサイクル５２ａを所定数のマイクロチック数δ遅らせて終了させる（ステップＳ９４）。
【０１０７】
その後、本監視ノードは、第１のサイクル対５０ａの後のサイクル５２ｂの第３のスロットで第３のフレーム２０ｃを送出する（ステップＳ９６）。更に、本監視ノードは、後のサイク５２ｂを上記マイクロチック数δ早めて終了させる（ステップＳ９８）。
【０１０８】
そして、本監視ノードは、第１または第２のフレーム２０ａ,２０ｂの受信が停止していない場合は、サイクルμＴ数を増加させて、第１のサイクル対５０ａに続く第２のサイクル対５０ｂで第３のフレームを送出する（図２０のＳ４８→Ｂ８２→Ｓ８４→Ｓ８２）。一方、第１または第２のフレーム２０ａ,２０ｂの受信が全て停止している場合は、本監視ノードは、第３のフレームの送出を停止し、還元サイクルμＴ数を求める（図２０のステップＳ５２）。
【０１０９】
図２２に示すように、先のサイク５２ａの終了時をδ遅らせると、第３のフレーム２０ｃの送信間隔５４はδ増加する。このため、第１および第２のノードからは、監視ノードのサイクル長がδ増加したように見える。従って、本実施の形態によれば、監視ノードのサイクル長を疑似的に増加させることができる。
【０１１０】
図２３は、本実施の形態の監視ノードと実施の形態１の監視ノードとのサイクルの変化を比較するタイムチャートである。図２３の中段には、第１のノード４ａのサイクルの時間変化が示されている。図２３の上段には、本監視ノードのサイクルの時間変化が示されている。図２３の下段には、実施の形態１における監視ノードのサイクルの時間変化が示されている。図２３のサイクルは、フェーズＢに移行直後のサイクルである。
【０１１１】
上述したように、本監視ノードは、先のサイクル５２ａの終了時点をδ遅らせた後、後のサイクル５２ｂの終了時点をδ早めて終了させる。従って、本監視ノードのサイクル対５０ａの終了時点５６ａは、第１のノード４ａのサイクル対７０ａの終了時点５６ｂと略同じになる。
【０１１２】
一方、実施の形態１の監視ノードは、フェーズＢに移行すると、まずサイクルμＴ数を増加させて、第３のフレームを送出する。このため、図２３に示すように、実施の形態１の監視ノードのサイクル対９０ａの終了時点５６ｃは、第１のノードのサイクル対７０ａの終了時点５６ｂより遅くなる。このため、実施の形態１の監視ノードのサイクル対９０ａの終了時点５６ｃと、第１のノード４ａのサイクル対７０ａの終了時点５６ｃとの間には、時間差５８が生じる。
【０１１３】
この時間差５８が大きくなると、種々の問題が生じる。図２３に示すように、実施の形態１の監視ノードの２番目のサイクル対９０ｂは、第１のノード４ａの２番目のサイクル対７０ｂより遅れてスタートする。このため、時間差５８が大きくなり過ぎると、実施の形態１の監視ノードがサイクル対９０ｂで送出する第３のフレーム２０ｃが、第１のノード４ａの第３のスロット１８ｃから食み出してしまい、通信エラーが発生する。
【０１１４】
このような問題に加え、第１のノード４ａがオフセット補正を行う場合には、時間差５８の拡大により、オフセット・エラーが発生し易くなる。図２４は、オフセット補正を説明するタイムチャートである。図２４の上段には、第１のノード４ａのサイクルの時間変化が示されている。図２４の下段には、第１のノード４ａで行われる処理の時系列が示されている。
【０１１５】
オフセット補正を行う場合には、スロット・アクション・ポイント（期待される受信タイミング）からフレームが実際に受信されるまでのμＴ数（以下、偏差と呼ぶ）を測定することが好ましい。このμＴ数の偏差に基づいて、オフセット補正およびレート補正が行われる。
【０１１６】
第１のノード４ａは、図２４に示すように、第１のサイクル対７０ａ内の先のサイクル７２ａの第１の測定期間６４ａで、第２のフレーム２０ｂおよび第３のフレーム２０ｃそれぞれに対する第１の偏差（すなわち、２つの偏差）を測定する。
【０１１７】
同様に、第１のノード４ａは、第１のサイクル対７０ａ内の後のサイクル７２ｂの第２の測定期間６４ｂで、第２のフレーム２０ｂおよび第３のフレーム２０ｃそれぞれに対する第２の偏差（すなわち、２つの偏差）を測定する。
【０１１８】
その後、第１のノード４ａは、第１のサイクル対７０ａ内の後のサイクル７２ｂのネットワーク・アイドル時間６６に設けられる第１の演算期間６８で、第１および第２の偏差に基づいて第１のレート補正値を補正する。第１のノード４ａは、この補正された第１のレート補正値に基づいて、第１のサイクル対７０ａに続く第２のサイクル対７０ｂのサイクルμＴ数を設定する。尚、ネットワーク・アイドル時間とは、スロットが割り当てられていないサイクル内の最後の期間のことである。
【０１１９】
更に、第１のノード４ａは、後のサイクル７２ｂのネットワーク・アイドル時間６６内の第２の演算期間７０で、第２の偏差の中間数を求め、この中間数をオフセット補正値として設定する。そして、第１のノード４ａは、後のサイクル７２ｂの終了時を、このオフセット補正値分遅らせる。このオフセット補正は、第１のサイクル対７０ａの終了時点が、第２のノード４ｂおよび監視ノード４ｃのサイクル対の終了時点に近づくように作用する。第２のノード４ｂも、第１のノード４ａと同様に、オフセット補正を行う。
【０１２０】
しかし、オフセット補正値の絶対値が大きくなり過ぎると（特に、オフセット補正値が負の場合）、ネットワーク・アイドル時間内で行われる演算処理に支障が生じる。そこで、オフセット補正値の絶対値がオフセット補正限界値を超えると、エラーカウンタのカウント数が一つ増加し、このカウント数が閾値を超えた時点で第１のノード４ａは、フレームの送出を停止する。以下、オフセット補正値がオフセット補正限界値を超えることを、オフセット・エラーと呼ぶ。
【０１２１】
実施の形態１のように、監視ノードがサイクルμＴ数を増加させるだけの場合、監視ノードの第１のサイクル対９０ａの終了時点５６ｃが、第１のノード４ａの最初のサイクル対７０ａの終了時点５６ｂより遅れる（図２３参照）。このため、第１のノード４ａのサイクル対７０ａに続くサイクル対７０ｂ内における第３のフレーム２０ｃの偏差が大きくなり、第１のノード４ａでオフセットセラーが生じやすくなる。第２のノード４ｂでも、同様に、オフセット・エラーが発生しやすくなる。
【０１２２】
しかし、本実施の形態によれば、図２３に示すように、監視ノードのサイクル対５０ａの終了時点５６ａと、第１のノード４ａのサイクル対７０ａの終了時点５６ｂが略同じになるので、オフセット・エラーが起き難くなる。従って、第１のノード４ａのフレームの送信が停止しし難くなる。第２のノード４ｂのフレームの送信も、同様に、停止しし難くなる。
【０１２３】
尚、監視ノードによるサイクルμＴ数の増加量は、δの１／２が好ましい。この場合、第１および第２のノード４ａ,４ｂのサイクル数の増加量が監視ノードのサイクルμＴ数の増加量に略等しくなり、最初のサイクル対５０ａ,７０ａ以降のサイクル対でも終了時点が揃いやすくなる。また、サイクルの終了時点を調整するμＴ数δは、減衰定数以下であることが好ましい。これにより、サイクル長分布の測定誤差が小さくなる。
【０１２４】
上述の例では、先のサイクル５２ａをμＴ数δ遅らせて終了させ、後のサイクル５２ｂを上記μＴ数δ早めて終了させる。しかし、先のサイクル５２ａをμＴ数δ早めて終了させ、後のサイクル５２ｂをμＴ数δ遅らせて終了させてもよい。この場合には、第１もサイクル対５０ａに続く第２もサイクル対５０ｂのサイクルμＴ数を減少させる。
【０１２５】
（実施の形態４）
本実施の形態のノードシステムは、実施の形態１のノードシステム略同じ構成を有している。従って、実施の形態１と共通する部分については、説明を省略する。
【０１２６】
図２５は、本実施の形態のノードシステム２ａの構成を説明する図である。図２５に示すように、本ノードシステム２ａは複数の第２のノード４ｂを有している。すなわち、本ノードシステム２ａは、４つ以上のノードを有している。実施の形態１と同様に、本ノードシステムに含まれる各ノードは、受信される複数のフレームのサイクル開始からのマイクロチック数の差分を測定し、この差分の中間値に基づいてレート補正を行う。従って、本ノードシステム２の各ノードは、３つ以上のマイクロチック数の差分の中間値が求める。
【０１２７】
このように３つ以上のデータの中間値を求める場合、フォールト・トレラント中間値アルゴリズム（Fault-tolerant midpoint algorithm；以下、ＦＴＭアルゴリズムと呼ぶ）を用いることで、処理対象データのエラーを抑制することができる。
【０１２８】
図２６は、ＦＴＭアルゴリズムを説明する図である。ＦＴＭアルゴリズムでは、まず処理対象のデータ７４を、大きさの順にソーティングする（Ｓ１０２）。次に、処理対象のデータの数に応じて、所定数のデータｋ（例えば、２つ）を、ソーティングされたデータの最大値および最小値から順番に削除する（Ｓ１０４）。最後に、残されたデータの最大値と最小値を平均し、得られた平均値を切り上げまたは切り下げて中間値を求める（Ｓ１０６）。
【０１２９】
【表５】
0005662119.tif 000006
表５は、ＦＴＭアルゴリズムで用いられるデータの削除数ｋの一例を示している。左側の列が、処理対象データの数である。右側の列が、データの削除数ｋである。表５に示すように、処理対象データの数が３つ以上の場合、削除数ｋは１つ以上になる。処理対象データの数が２つ以下の場合、削除数ｋは０である。
【０１３０】
次に、第１のノード４ａが、ＦＴＭアルゴリズムを用いて、レート補正の中間値を求める手順を説明する。ここでは、第２のノード４ｂは、２つのノードＡおよびノードＢを有するとする。また、本ノードシステムの各ノードは、自己が送信したフレームは受信しないものとする。
【０１３１】
図２７は、第１のノード４ａにおけるレート補正の手順を説明するタイムチャートである。図２７に示すように、ノードＡおよびＢ（第２のノード４ｂ）は、それぞれに割り当てられたスロット１８ｂ１および１８ｂ２（第２のスロット１８ｂ）で、それぞれフレーム２０ｂ１およびフレーム２０ｂ２（第２のフレーム２０ｂ）を送出する。一方、監視ノード４ｃは、スロット１８ｃ１およびスロット１８ｃ２（第３のスロット１８ｃ）で、フレーム２０ｃ１およびフレーム２０ｃ２（第３のフレーム２０ｃ）を送出する。
【０１３２】
第１のノード４ａは、第１のサイクル１６ａで受信されるフレーム２０ｂ１〜２０ｃ２それぞれに対するサイクル開始からの第１のマイクロチック数（例えば、マイクロチック数２４ｂ２）を測定する。同様に、第１のノード４ａは、第１のサイクル１６ａに続く第２のサイクル１６ｂで受信されるフレーム２０ｂ１〜２０ｃ２それぞれに対するサイクル開始からの第２のマイクロチック数（例えば、マイクロチック数２６ｂ２）を測定する。第１のノード４ａは、更に、第１のマイクロチック数と第２のマイクロチック数の差分を求める。
【０１３３】
次に、第１のノード４ａは、上記差分のデータ数（例えば、４つ）に応じた所定数のデータ（例えば、１つ）を、上記差分の最大値から最小値に向かって順番に削除する（表５参照）。更に、第１のノード４ａは、上記所定数（例えば、１つ）のデータを上記最小値から上記最大値に向かって削除する。その後、第１のノード４ａは、残された上記差分の最大値と最小値を平均し、得られた平均値を切り上げまたは切り下げてフォールト・トレラント中間値を求める。このフォールト・トレラント中間値を用いて、第１のノード４ａは、第１のレート補正値を補正する。また、第２のノード４ｂも、第１のノード４ａと同様に、フォールト・トレラント中間値を求め、第２のレート補正値を補正する。
【０１３４】
以上のように、フォールト・トレラント中間値に基づいてレート補正を行うと、サイクル長が最も長いノード（および最も短いノード）が送出するフレームは、無視されてしまう。ところで、監視ノード４ｃのサイクル長は、第１および第２のノード４ａ,４ｂより長く（または短く）なりやすい。特にフェーズＢでは、このような状態が確実に発生する。そこで、本実施の形態の監視ノード４ｃは、ＦＴＭアルゴリズムにより最大値および最小値から削除されるデータ数ｋより多くの第３のフレームを送出する。
【０１３５】
図２５に示すように、本ノードシステム２ａが有するノードは４つ以上である。従って、本監視ノード４ｃは、図２７に示すように、２つ以上の第３のフレーム２０ｃを送出する。すなわち、監視ノード４ｃは、複数の第３のスロット１８ｃで複数の第３のフレーム２０ｃを送出する。
【０１３６】
図２７の例では、第１および第２のノードが受信するフレーム数は４つ（＝５−１）である。従って、ＦＴＭアルゴリズムにより最大値および最小値から削除するデータ数は１つである（表５参照）。従って、図２７では、本監視ノード４ｃは、２つのフレーム２０ｃ１,２０ｃ２を送出している。
【０１３７】
【表６】
0005662119.tif 000007
表６は、本監視ノード４ｃが送信するフレームの数の一例である。表６の左列には、各ノードが受信するフレームの総数が示されている。表６の右列には、監視ノードが送信するフレームの数が示されている。ところで、実施の形態１のノードシステム２は、図１に示すように、３つのノードを有している。従って、実施の形態１のノードシステム２でＦＴＭアルゴリズムを用いる場合にも、表６に示すように、複数の第３のスロット１８ｃで複数の第３のフレーム２０ｃを送出することが好ましい。
【０１３８】
因みに、還元サイクルμＴ数の上記中間数も、ＦＴＭアルゴリズムで求めることができる。監視ノードは、まず、複数の還元サイクルμＴ数のデータ数（３以上）に応じた所定数のデータ（１以上）を、上記複数の還元サイクルμＴ数の最大値から最小値に向かって順番に削除する。次に、監視ノードは、上記所定数のデータを還元サイクルμＴ数の最小値から最大値に向かって削除し、残された還元サイクルμＴ数の最大値と最小値の平均値を切り上げまたは切り下げて、上記中間数を求める。これにより、還元サイクルμＴ数に含まれるエラーが抑制される。
【０１３９】
以上の実施の形態では、各ノードは、それぞれのサイクル長が収束した後に、フェーズＢに移行する。しかし、各ノードは、フェーズＡの同期制御（図７のＳ１４ａ〜Ｓ１４ｃ）を省略し、起動直後にフェーズＢに移行してもよい。この場合、監視ノード４ｃは、最初からサイクルμＴ数を増加または減少させながら、第３のスロットで第３のフレームを送出する。
【０１４０】
また、以上の実施の形態では、ノードシステムに含まれる全てのノードのフレームが、同期制御に利用される。しかし、本ノードシステムは、同期制御に利用されないフレームを送出するノードを有してもよい。この場合、各ノードは、ヘッダセグメント内の所定のインジケータにより、受信あれるフレームが同期制御に用いられるフレームか否かを判定する。
【０１４１】
また、以上の実施の形態では、伝送路６は１重である。しかし、伝送路６は、２重化されてもよい。
【０１４２】
また、以上の実施の形態では、伝送路６のトポロジは、バス型である。しかし、伝送路６のトポロジは、スター型またはバスとスターの混載型であってもよい。
【０１４３】
以上の実施の形態１〜４に関し、更に以下の付記を開示する。
【０１４４】
（付記１）
複数のノードが伝送路を介して接続されたノードシステムにおいて、
前記複数のノードは、クロック発生器と、連続的に繰り返されるサイクル内において前記クロック発生器が第１の所定数のクロックを発生するごとに生じるマイクロチックに基づいて割り当てられるスロットでフレームを送出し、前記サイクルのサイクル長に対応するサイクルマイクロチック数の初期値と前記初期値に対するレート補正値を管理する通信制御部とを有し、
前記複数のノードのうち、
第１のスロットで第１のフレームを送出する第１のノードは、前記複数のノードのサイクルが同期するように、第１のレート補正値を繰り返し補正し、前記第１のレート補正値の絶対値が所定のレート補正限界値を超える場合には、前記第１のフレームの送出を停止し、前記絶対値が前記レート補正限界値以内の場合には、補正された前記第１のレート補正値に基づいて、前記第１のスロットで前記第１のフレームを送出し、
第２のスロットで第２のフレームを送出する第２のノードは、前記複数のノードのサイクルが同期するように、第２のレート補正値を繰り返し補正し、前記第２のレート補正値の絶対値が前記レート補正限界値を超える場合には、前記第２のフレームの送出を停止し、前記絶対値が前記レート補正限界値以内の場合には、補正された前記第２のレート補正値に基づいて、前記第２のスロットで前記第２のフレームを送出し、
第３のスロットで第３のフレームを送出する監視ノードは、前記サイクルマイクロチック数を増加または減少させながら前記第３のスロットで前記第３のフレームを送出し、前記第１および第２のフレームの受信が停止した時の当該監視ノードの前記サイクルマイクロチック数から前記レート補正限界値を減じまたは加えた還元サイクルマイクロチック数を求めるノードシステム。
【０１４５】
（付記２）
付記１に記載のノードシステムにおいて、
前記監視ノードは、更に、
前記第１および第２のフレームの送出を停止した前記第１および第２のノードに、前記第１および第２フレームの送出と前記第１および第２のレート補正値の補正とを再開させ、
前記還元サイクルマイクロチック数の中間数をサイクルマイクロチック数として設定し、前記第３のスロットで前記第３のフレームを繰り返し送出する
ことを特徴とするノードシステム。
【０１４６】
（付記３）
付記２に記載のノードシステムにおいて、
前記監視ノードは、前記第１および第２のフレームの送出を停止した前記第１および第２のノードに前記第１および第２のフレームの送出と前記第１および第２のレート補正値の補正とを再開させた後に、前記第３のスロットで第３のフレームを繰り返し送出することを
特徴とするノードシステム。
【０１４７】
（付記４）
付記２に記載のノードシステムにおいて、
前記監視ノードは、更に、前記第１および第２のフレームの受信が停止した後に、
前記中間数をサイクルマイクロチック数として設定して、前記第３のスロットで前記第３のフレームの送出を開始し、
その後、前記第１および第２のフレームの送出を停止した前記第１および第２のノードに、サイクル長が監視ノードのサイクル長に一致するように前記第１および第２のレート補正値を設定させ、
その後、前記第１および第２のノードに、前記第１および第２のフレームの送出と前記第１および第２のレート補正値の補正とを再開させることを
特徴とするノードシステム。
【０１４８】
（付記５）
付記１乃至４のいずれか１項に記載のノードシステムにおいて、
前記監視ノードは、サイクル対ごとに、当該サイクル対の先のサイクルを第２の所定数のマイクロチック数遅らせ又は早めて終了させ、当該サイクル対の後のサイクルを前記第２の所定数のマイクロチック数早め又は遅らせて終了させ、その後前記サイクルマイクロチック数を増加または減少させることを繰り返しながら、前記第３のスロットで前記第３のフレームを送出することを
特徴とするノードシステム。
【０１４９】
（付記６）
付記１乃至５のいずれか１項に記載のノードシステムにおいて、
前記中間数は、前記複数の還元サイクルマイクロチック数のデータ数に応じた第３の所
定数のデータを、前記複数の還元サイクルマイクロチック数の最大値から最小値に向かっ
て順番に削除し且つ前記第３の所定数のデータを前記最小値から前記最大値に向かって削
除し、残された前記還元サイクルマイクロチック数の最大値と最小値の平均値を切り上げ
または切り下げて得られるフォールト・トレラント中間値であることを
特徴とするノードシステム。
【０１５０】
（付記７）
付記１乃至５のいずれか１項に記載のノードシステムにおいて、
前記中間数は、前記還元サイクルマイクロチック数の平均値を切り上げまたは切り下げて得られる値であることを
特徴とするノードシステム。
【０１５１】
（付記８）
付記１乃至７のいずれか１項に記載のノードシステムにおいて、
前記第３のスロットは、複数のスロットを有し
前記第３のフレームは、複数のフレームを有することを
特徴とするノードシステム。
【０１５２】
（付記９）
付記１乃至８のいずれか１項に記載のノードシステムにおいて、
前記監視ノードは、更に、
前記複数のノードのサイクルが同期するように、第３のレート補正値を繰り返し補正しながら、前記第３のスロットで前記第３のフレームを送出し、
前記複数のノードそれぞれのサイクル長が、連続して所定の回数以上、所定の幅を有する範囲内にあると判定された場合に、前記還元マイクロチック数を求めることを
特徴とするノードシステム。
【０１５３】
(付記１０）
クロック発生器と、連続的に繰り返されるサイクル内において前記クロック発生器が第１の所定数のクロックを発生するごとに生じるマイクロチックに基づいて割り当てられる第１および第２のスロットで第１および第２のフレームを受信し、前記マイクロチックに基づいて割り当てられる第３のスロットで第３のフレームを送出し、前記サイクルのサイクル長に対応するサイクルマイクロチック数の初期値と前記初期値に対するレート補正値を管理する通信制御部とを有し、
前記サイクルマイクロチック数を増加または減少させながら前記第３のスロットで第３のフレームを送出し、前記第１および第２のフレームの受信が停止した時それぞれのサイクルマイクロチック数から所定のレート補正限界値を減算または加算した還元サイクルマイクロチック数を求める
監視ノード。
【０１５４】
（付記１１）
付記１０に記載の監視ノードにおいて、
更に、前記第１および第２のフレームの送出を停止した前記第１および第２のノードに、前記第１および第２フレームの送出と前記第１および第２のレート補正値の補正とを再開させ、
前記還元サイクルマイクロチック数の中間数を当該監視ノードのサイクルマイクロチック数として設定し、前記第３のスロットで前記第３のフレームを繰り返し送出する
ことを特徴とする監視ノード。
【０１５５】
（付記１２）
付記１０または１１に記載の監視ノードにおいて、
サイクル対ごとに、当該サイクル対の先のサイクルを第２の所定数のマイクロチック数遅らせ又は早めて終了させ、当該サイクル対の後のサイクルを前記第２の所定数のマイクロチック数早め又は遅らせて終了させ、その後前記サイクルマイクロチック数を増加または減少させることを繰り返しながら、前記第３のスロットで前記第３のフレームを送出することを
特徴とする監視ノード。
【０１５６】
（付記１３）
複数のノードによって実行される同期方法であって、
前記複数のノードは、第１のノードと第２のノードと監視ノードとを有し、
前記複数のノードは、それぞれ連続的に繰り返されるサイクル内において所定数のクロックを発生するごとに生じるマイクロチックに基づいて割り当てられるスロットでフレームを送出し、前記サイクルのサイクル長に対応するサイクルマイクロチック数の初期値と前記初期値に対するレート補正値を管理し、
前記第１のノードは、前記複数のノードのサイクルが同期するように、第１のレート補正値を繰り返し補正し、前記第１のレート補正値の絶対値が所定のレート補正限界値を超える場合には、前記第１のフレームの送出を停止し、前記絶対値が前記レート補正限界値以内の場合には、補正された前記第１のレート補正値に基づいて、前記第１のスロットで前記第１のフレームの送出し、
前記第２のノードは、前記複数のノードのサイクルが同期するように、第２のレート補正値を繰り返し補正し、前記第２のレート補正値の絶対値が前記レート補正限界値を超える場合には、前記第２のフレームの送出を停止し、前記絶対値が前記レート補正限界値以内の場合には、補正された前記第２のレート補正値に基づいて、第２のスロットで前記第２のフレームを送出し、
前記監視ノードは、前記サイクルマイクロチック数を増加または減少させながら前記第３のスロットで前記第３のフレームを送出し、前記第１および第２のフレームの受信が停止した時の当該監視ノードの前記サイクルマイクロチック数から前記レート補正限界値を減じまたは加えた還元サイクルマイクロチック数を求める
同期方法。
【０１５７】
（付記１４）
付記１３に記載の同期方法において、
前記監視ノードは、更に、
前記第１および第２のフレームの送出を停止した前記第１および第２のノードに、前記第１および第２フレームの送出と前記第１および第２のレート補正値の補正とを再開させ、
前記還元サイクルマイクロチック数の中間数をサイクルマイクロチック数として設定し、前記第３のスロットで前記第３のフレームを繰り返し送出する
ことを特徴とする同期方法。
【符号の説明】
【０１５８】
２・・・ノードシステム
４・・・ノード
４ａ・・・第１のノード
４ｂ・・・第２のノード
４ｃ・・・監視ノード
６・・・伝送路
８・・・通信制御部
１０・・・クロック発生器
１２・・・メモリ
１４・・・制御部
１６・・・サイクル
１８・・・スロット
【図１】
0005662119.tif 000008
【図２】
0005662119.tif 000009
【図３】
0005662119.tif 000010
【図４】
0005662119.tif 000011
【図５】
0005662119.tif 000012
【図６】
0005662119.tif 000013
【図７】
0005662119.tif 000014
【図８】
0005662119.tif 000015
【図９】
0005662119.tif 000016
【図１０】
0005662119.tif 000017
【図１１】
0005662119.tif 000018
【図１２】
0005662119.tif 000019
【図１３】
0005662119.tif 000020
【図１４】
0005662119.tif 000021
【図１５】
0005662119.tif 000022
【図１６】
0005662119.tif 000023
【図１７】
0005662119.tif 000024
【図１８】
0005662119.tif 000025
【図１９】
0005662119.tif 000026
【図２０】
0005662119.tif 000027
【図２１】
0005662119.tif 000028
【図２２】
0005662119.tif 000029
【図２３】
0005662119.tif 000030
【図２４】
0005662119.tif 000031
【図２５】
0005662119.tif 000032
【図２６】
0005662119.tif 000033
【図２７】
0005662119.tif 000034