(57)【特許請求の範囲】
【請求項１】
基準時刻を管理するマスタノードとスレーブノードとがリング状に接続された通信システムにおいて前記スレーブノードが前記基準時刻に対して時刻同期処理を行う場合の時刻同期方法であって、
前記マスタノードが時刻同期を行うために用いる時刻同期用フレームを両側のポートからそれぞれ送信するフレーム送信ステップと、
前記スレーブノードが、有効な前記時刻同期用フレームを両側のポートから受信した場合に、自ノードを時刻同期処理の終端ノードである時刻同期末端ノードと設定する末端ノード設定ステップと、
自ノードを時刻同期末端ノードとして設定したノードが、両側のポートから受信した２つの前記時刻同期用フレームのうち後から受信したフレームを無効化し、無効化したフレームを、前記後から受信したフレームを受信したポートと反対側のポートから転送する無効フレーム送信ステップと、
を含むことを特徴とする時刻同期方法。
【請求項２】
前記無効フレーム送信ステップでは、両側のポートから時刻同期用フレームを同時に受信した場合、受信した２つの時刻同期用フレームをそれぞれ無効化して受信したポートの反対側のポートから転送する、ことを特徴とする請求項１に記載の時刻同期方法。
【請求項３】
前記マスタノードが、前記通信システム内の障害の有無を障害状態として検出する障害検出ステップと、
前記マスタノードが、前記フレーム送信ステップを実施した時点から障害状態が変化した場合に、前記フレーム送信ステップを再度実施するフレーム再送信ステップと、
をさらに含むことを特徴とする請求項１または２に記載の時刻同期方法。
【請求項４】
前記時刻同期処理では、前記マスタノードから同期フレームを送信した後に、前記マスタノードから前記同期フレームの前記マスタノードにおける送信時刻であるマスタ送信時刻を前記スレーブノードへ通知し、また、時刻同期末端ノードから遅延要求フレームを送信し、前記マスタノードが前記遅延要求フレームの受信時刻であるマスタ受信時刻を前記スレーブノードへ通知し、前記スレーブノードが、前記同期フレームを自ノードで受信した受信時刻と前記マスタ送信時刻と前記遅延要求フレームを自ノードから送信した送信時刻と前記マスタ受信時刻とに基づいて自ノードの時刻を補正する、
ことを特徴とする請求項１、２または３に記載の時刻同期方法。
【請求項５】
前記末端ノード設定ステップでは、前記時刻同期用フレームとして前記同期フレームを用いる、ことを特徴とする請求項４に記載の時刻同期方法。
【請求項６】
前記マスタノードが、前記マスタ送信時刻と前記マスタ受信時刻を同一フレームに格納して通知する、ことを特徴とする請求項５に記載の時刻同期方法。
【請求項７】
前記末端ノード設定ステップでは、前記時刻同期用フレームとして前記マスタ送信時刻を通知する送信時刻通知フレームを用いる、ことを特徴とする請求項４に記載の時刻同期方法。
【請求項８】
前記無効フレーム送信ステップでは、固定時間遅延させた後に無効化したフレームを転送する、ことを特徴とする請求項１〜７のいずれか１つに記載の時刻同期方法。
【請求項９】
リング状に接続された基準時刻を管理するマスタノードと前記基準時刻に対する時刻同期処理を行うスレーブノードとを備える通信システムであって、
前記マスタノードは、
時刻同期を行うために用いる時刻同期用フレームを両側のポートからそれぞれ送信する時刻同期管理部、
を備え、
前記スレーブノードは、
有効な前記時刻同期用フレームを両側のポートから受信した場合に、自ノードを時刻同期処理の終端ノードである時刻同期末端ノードと設定し、自ノードを時刻同期末端ノードとして設定した場合に、両側のポートから受信した２つの前記時刻同期用フレームのうち後から受信したフレームを無効化し、無効化したフレームを、前記後から受信したフレームを受信したポートと反対側のポートから転送する時刻同期処理部、
を備える、ことを特徴とする通信システム。
【請求項１０】
基準時刻を管理し両側のポートから時刻同期を行うために用いる時刻同期用フレームを送信するマスタノードとスレーブノードとがリング状に接続された通信システムにおいて前記スレーブノードとして機能する通信装置であって、
有効な前記時刻同期用フレームを両側のポートから受信した場合に、自ノードを時刻同期処理の終端ノードである時刻同期末端ノードと設定し、自ノードを時刻同期末端ノードとして設定した場合に、両側のポートから受信した２つの前記時刻同期用フレームのうち後から受信したフレームを無効化し、無効化したフレームを、前記後から受信したフレームを受信したポートと反対側のポートから転送する時刻同期処理部、
を備える、ことを特徴とする通信装置。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、リングネットワークにおける時刻同期方法に関する。
【背景技術】
【０００２】
各伝送路における複数のノード間の時間的な同期を実現する時刻同期方法として、下記非特許文献１に記載のＩＥＥＥ（The  Institute  of  Electrical  and  Electronics  Engineers，Inc.）１５８８規格が用いられる場合が多い。ＩＥＥＥ１５８８は、Ｅｔｈｅｒｎｅｔ（登録商標）を基本として高精度な時刻同期を行なうことを目的としたプロトコル標準規格である。
【０００３】
ＩＥＥＥ１５８８により規定される時刻同期方法では、複数のノードの内の１ノードを高精度なクロックを有するマスタノードとし、マスタノード以外のノードをスレーブノードとする。そして、マスタノードとスレーブノード間の１：１での時刻同期をベースとし、ポイント・ツーポイント、またはマルチポイント構成の組合せによる時刻同期を行うことができる。
【０００４】
ＩＥＥＥ１５８８により規定される時刻同期方法をリングネットワークに適用した場合には各スレーブノードに対して１：１の時刻同期を行なうため、時刻同期をスレーブノード数回実施する。
【０００５】
１回の時刻同期シーケンスは、マスタノードとスレーブノード間を２往復の通信で実現されている。以下、１回の時刻同期シーケンスを説明する。まず、マスタノードは、時刻同期を行うためのＳｙｎｃメッセージをスレーブノードに送信し、その際、Ｓｙｎｃメッセージの送信時刻を保持する。Ｓｙｎｃメッセージを受信したスレーブノードは受信時刻を保持する。マスタノードは、保持しているＳｙｎｃメッセージの送信時刻を格納した時刻同期用フレームの一種であるＦｏｌｌｏｗ＿ｕｐメッセージをスレーブノードへ送信する。スレーブノードは、伝搬遅延を計測するために、マスタノードへ時刻同期用フレームの一種であるＤｅｌａｙ＿Ｒｅｑメッセージを送信する。このとき、スレーブノードは、Ｄｅｌａｙ＿Ｒｅｑメッセージの送信時刻を保持する。マスタノードは、Ｄｅｌａｙ＿Ｒｅｑメッセージを受信した際の受信時刻を保持し、その受信時刻をＤｅｌａｙ＿Ｒｅｓメッセージに格納してスレーブノードに送信する。スレーブノードは、Ｆｏｌｌｏｗ＿ｕｐメッセージに含まれる送信時刻と、Ｓｙｎｃメッセージの自ノードでの受信時刻と、自ノードのＤｅｌａｙ＿Ｒｅｓメッセージの送信時刻と、Ｄｅｌａｙ＿Ｒｅｓメッセージに格納された受信時刻から、マスタクロックと自身のクロックとの時差を算出して、算出した時差を補正することにより、マスタノードの時刻に同期させる。
【０００６】
以上のシーケンスは、マスタノードとスレーブノードの１：１通信の場合のシーケンスであるが、下記非特許文献１では複数のスレーブノードの時刻同期方法としては、バウンダリクロック方式とトランスペアレント方式の２つの方式が記載されている。バウンダリクロック方式は、まず、マスタノードが、自ノードに直結する（隣接する）スレーブノードに対し、上記の時刻同期シーケンスで時刻同期を実施する。そして、時刻同期が完了したスレーブノードが新たにサブマスタノードとなり、自ノードに隣接するノードをスレーブノードとして時刻同期を行う。そして、このように時刻同期を完了したスレーブノードが新たにサブマスタノードとなり順次隣接ノードに対して時刻同期を行っていくことにより全てのノードの時刻同期を実施する。一方、トランスペアレント方式は、マスタノードが各スレーブノードに対してそれぞれ上述した時刻同期シーケンスを実施することにより、End-to-Endでの時刻同期を実施する方式である。
【０００７】
また、下記特許文献１には、リングネットワークにおける時刻同期方法として、ＩＥＥＥ１５８８と同様にマスタノードとスレーブノードに双方向のパケットの送受を行い各パケットの送信時刻と受信時刻から時刻を補正するが、Ｎ個のスレーブノードに対して１回のシーケンスで１：Ｎの時刻同期を行う方法が開示されている。
【先行技術文献】
【特許文献】
【０００８】
【特許文献１】国際公開第２００８／１２９５９４号
【非特許文献】
【０００９】
【非特許文献１】ＩＥＥＥ  Std  １５８８−２００８，“IEEE  Standard  for  a  Precision  Clock  Synchronization  Protocol  for  Networked  Measurement  and  Control”，July  ２００８
【発明の概要】
【発明が解決しようとする課題】
【００１０】
しかしながら、上記非特許文献１に記載のバウンダリクロック方式およびトランスペアレントクロック方式は、いずれも、各スレーブノードが、それぞれ１：１の時刻同期の処理を行う。そのため、時刻同期用フレームが全てのスレーブノードに到着するまでに時間がかかり、全スレーブノードの同期完了時間を高速化することが困難であり、時刻同期に使用するフレーム数も増加するという問題があった。また、バウンダリクロック方式では、時刻同期精度がノード数に比例して悪くなるという問題があった。
【００１１】
従来の特許文献１に記載されているリングネットワークにおける時刻同期方法は、各スレーブノードにおけるパケット中継時及び伝送時のクロック揺らぎがあるため、時刻同期精度の最悪値や全ノードの時刻同期完了時間がリングを構成するノード台数に比例する。このため、ノード台数が多いと、時刻同期精度が悪く、全ノードの時刻同期完了時間が長いという問題点があった。
【００１２】
本発明は、上記に鑑みてなされたものであって、従来に比べて時刻同期精度を向上させ、かつ時刻同期完了時間を短縮することができる時刻同期方法、通信システムおよび通信装置を得ることを目的とする。
【課題を解決するための手段】
【００１３】
上述した課題を解決し、目的を達成するために、本発明は、基準時刻を管理するマスタノードとスレーブノードとがリング状に接続された通信システムにおいて前記スレーブノードが前記基準時刻に対して時刻同期処理を行う場合の時刻同期方法であって、前記マスタノードが時刻同期を行うために用いる時刻同期用フレームを両側のポートからそれぞれ送信するフレーム送信ステップと、前記スレーブノードが、有効な前記時刻同期用フレームを両側のポートから受信した場合に、自ノードを時刻同期処理の終端ノードである時刻同期末端ノードと設定する末端ノード設定ステップと、自ノードを時刻同期末端ノードとして設定したノードが、両側のポートから受信した２つの前記時刻同期用フレームのうち後から受信したフレームを無効化し、無効化したフレームを、前記後から受信したフレームを受信したポートと反対側のポートから転送する無効フレーム送信ステップと、を含むことを特徴とする。
【発明の効果】
【００１４】
本発明によれば、従来に比べて時刻同期精度を向上させ、かつ時刻同期完了時間を短縮することができるという効果を奏する。
【図面の簡単な説明】
【００１５】
【図１】図１は、実施の形態１の通信システムの構成例を示す図である。
【図２】図２は、実施の形態１のマスタノードの機能構成例を示す図である。
【図３】図３は、実施の形態１のスレーブノードの機能構成例を示す図である。
【図４】図４は、実施の形態１の時刻同期情報の構成例を示す図である。
【図５】図５は、時刻同期用フレームに格納する情報の一例を示す図である。
【図６】図６は、実施の形態１の時刻同期シーケンスの一例を示すチャート図である。
【図７】図７は、実施の形態１の時刻同期シーケンスの一例を示すチャート図である。
【図８】図８は、実施の形態１のマスタノードの時刻同期処理手順の一例を示すフローチャートである。
【図９】図９は、スレーブノードがＳｙｎｃフレームを受信した場合の処理手順の一例をフローチャートである。
【図１０】図１０は、スレーブノードがＦｏｌｌｏｗ＿ｕｐフレームを受信した場合の処理手順の一例を示すフローチャートである。
【図１１】図１１は、スレーブノードがＤｅｌａｙ＿Ｒｅｑ．フレームを受信した場合の処理手順の一例を示すフローチャートである。
【図１２】図１２は、スレーブノードがＤｅｌａｙ＿Ｒｅｓ．フレームを受信した場合の処理手順の一例を示すフローチャートである。
【図１３】図１３は、実施の形態２の時刻同期シーケンスの一例を示すチャート図である。
【図１４】図１４は、実施の形態２の時刻同期シーケンスの一例を示すチャート図である。
【図１５】図１５は、実施の形態２のマスタノードの時刻同期処理手順の一例を示すフローチャートである。
【図１６】図１６は、実施の形態２のスレーブノードのＳｙｎｃフレーム受信時の処理手順の一例を示すフローチャートである。
【図１７】図１７は、実施の形態２のスレーブノードのＤｅｌａｙ＿Ｒｅｑ．フレーム受信時の処理手順の一例を示すフローチャートである。
【図１８】図１８は、実施の形態２のスレーブノードのＤｅｌａｙ＿Ｒｅｓ．フレーム受信時の処理手順の一例を示すフローチャートである。
【図１９】図１９は、実施の形態３の時刻同期シーケンスの一例を示すチャート図である。
【図２０】図２０は、実施の形態３の時刻同期シーケンスの一例を示すチャート図である。
【図２１】図２１は、実施の形態３のスレーブノードのＳｙｎｃフレームの受信時の処理手順の一例を示すフローチャートである。
【図２２】図２２は、実施の形態３のスレーブノード２のＦｏｌｌｏｗ＿ｕｐフレームの受信時の処理手順の一例を示すフローチャートである。
【図２３】図２３は、実施の形態４の通信システムの構成例を示す図である。
【図２４】図２４は、実施の形態４のマスタノードの機能構成例を示す図である。
【図２５】図２５は、実施の形態４のスレーブノードの機能構成例を示す図である。
【図２６】図２６は、実施の形態４の時刻同期情報の構成例を示す図である。
【図２７】図２７は、実施の形態４の時刻同期シーケンスの一例を示すチャート図である。
【図２８】図２８は、実施の形態４のマスタノードの時刻同期処理手順の一例を示すフローチャートである。
【図２９】図２９は、実施の形態４のスレーブノードの受信処理手順の一例を示すフローチャートである。
【発明を実施するための形態】
【００１６】
以下に、本発明にかかる時刻同期方法、通信システムおよび通信装置の実施の形態を図面に基づいて詳細に説明する。なお、この実施の形態によりこの発明が限定されるものではない。
【００１７】
実施の形態１．
図１は、本発明にかかる通信システムの実施の形態１の構成例を示す図である。図１に示すように、本実施の形態の通信システムはリングネットワークを構成し、リング状に接続されたマスタノード１とスレーブノード（通信装置）２〜６とを備える。
【００１８】
また、マスタノード１およびスレーブノード２〜６は、それぞれ隣接ノード間のリンクを終端する２つのポートを備える。具体的には、マスタノード１は、ポート１１ａおよびポート１１ｂを備え、スレーブノードｉは、ポート１ｉａ（ｉ＝２，…，６）およびポート１ｉｂを備える。
【００１９】
なお、図１の構成例ではスレーブノードの数を５つとしているが、スレーブノードの数はこれに限定されず、１以上の任意のノード数とすることができる。また、マスタノード１はリングネットワーク内の任意の１ノードとし、図１に示したマスタノード１以外の他のスレーブノード２〜６がマスタノードになることも可能であるとする。
【００２０】
図２は、マスタノード１の機能構成例を示す図である。また、図３は、スレーブノード２の機能構成例を示す図である。なお、図２および図３では、本実施の形態の時刻同期に関連する構成要素を示しており、それ以外の構成要素は図示を省略している。スレーブノード３〜６の構成はスレーブノード２の構成と同様である。ただし、ポートについては、図１で説明したように、スレーブノードｉは、ポート１ｉａおよびポート１ｉｂを備えるとする。また、上述のとおり、スレーブノード２〜６がマスタノードとなることが可能なようにスレーブノード２はマスタノード１と同様の機能を有し、マスタノード１は、スレーブノード２と同様の機能を有するとする。以降では、マスタノード１をマスタノードとする場合について説明する。
【００２１】
マスタノード１は、例えばＧＰＳ（Ｇｌｏｂａｌ  Ｐｏｓｉｔｉｏｎｉｎｇ  Ｓｙｓｔｅｍ）等を用いたグランドマスタクロックに接続する等の方法により、時刻同期を行うための基準となる高精度な時刻を持つ装置である。図２に示すように、マスタノード１は、ポート１１ａ，１１ｂと、時刻同期用フレーム送信処理部２１ａ，２１ｂと、時刻同期用フレーム受信処理部２２ａ，２２ｂと、時刻同期管理部２３と、を備える。時刻同期用フレーム送信処理部２１ａ，２１ｂは、ポート１１ａ，１１ｂから時刻同期を行うためのフレームである時刻同期用フレームを送信する。時刻同期用フレーム受信処理部２２ａ，２２ｂは、ポート１１ａ，１１ｂで受信した時刻同期用フレームを終端し、時刻同期に必要な情報を抽出し、時刻同期管理部２３に通知する。時刻同期管理部２３は、リング内の全ノードの時刻同期を行うために必要なシーケンス番号や時刻同期状態を管理し、時刻同期用フレームを送信するタイミングや受信時の処理等を行う。
【００２２】
スレーブノード２は、自ノードの時刻をマスタノード１の時刻に同期させる機能を有するノードであり、図３に示すように、ポート１２ａ、１２ｂと、時刻同期用フレーム送信処理部３１ａ、３１ｂと、時刻同期用フレーム受信処理部３２ａ，３２ｂと、時刻同期処理部３３と、遅延制御部（図３では遅延と略す）３４と、を備える。
【００２３】
時刻同期用フレーム受信処理部３２ａ、３２ｂは、ポート１２ａ、１２ｂで受信したフレームのエラーチェックを行うことにより、フレームの有効／無効を検出する機能や時刻同期に必要な情報の抽出を行い、時刻同期処理部３３に通知する。また、時刻同期用フレーム送信処理部３１ａ，３１ｂは、反対側のポート（時刻同期用フレーム送信処理部３１ａの場合はポート１２ｂ，時刻同期用フレーム送信処理部３１ｂの場合はポート１２ａ）で受信した時刻同期用フレームまたは時刻同期処理部３３より指示されて時刻同期用フレームを転送する。時刻同期処理部３３は、自ノードの時刻や自ノードの時刻同期状態等の自ノードの時刻同期を行う際に必要な情報を保持し、時刻同期用フレームより抽出された情報を基に時刻同期を行う。遅延制御部３４は、ポート１２ａ、１２ｂで受信したフレームを反対側のポート１２ｂ，１２ａに転送する際に固定時間遅延させる処理を行う。この固定時間の遅延とはノード内遅延であり、ノード内でフレームのヘッダに格納されているフレーム種別やフレームの出力先、及びフレーム優先度等情報を認識し、それに基づいてフレームを処理することが可能な時間とする。また、固定遅延時間は、全ノードの時刻同期完了時間の短縮のためには、短い方が望ましいが、受信したフレームの先頭から最後までを伝送するためにかかる時間（フレーム長）より長い時間である場合でも、本方式の同期時刻が正常に行える範囲内の時間であればよいものとする。
【００２４】
図４は、マスタノード１の時刻同期管理部２３及びスレーブノード２の時刻同期処理部３３が、それぞれ保持および管理する時刻同期情報の構成例を示す図である。時刻同期情報は、マスタノード情報と、時刻同期周期情報と、時刻情報と、時刻同期末端ノード情報と、時刻同期シーケンス番号情報と、時刻同期優先ポート情報と、時刻同期ポート情報と、時刻同期状態情報と、受信時刻Ｔ２情報と、送信時刻Ｔ１情報と、送信時刻Ｔ３情報と、受信時刻Ｔ４情報と、で構成される。なお、スレーブノード３〜６もスレーブノード２と同様に時刻同期情報を管理する。また、時刻同期ポート情報、時刻同期状態情報、受信時刻Ｔ２情報、送信時刻Ｔ１情報、送信時刻Ｔ３情報および受信時刻Ｔ４情報は、それぞれポートＡ用（ポート１１ａ，１２ａ等）とポートＢ用（ポート１１ｂ，１２ｂ等）で構成される。
【００２５】
マスタノード情報は、自ノードがマスタノードかスレーブノードかを識別するために使用する情報である。時刻同期周期情報は、マスタノード１において設定される情報であり、時刻同期を行う周期を示す。時刻情報は、マスタノード１ではリングネットワーク内の基準となる時刻、を示す。また時刻情報は、スレーブノード２では自ノードが管理する時刻であり、時刻同期を行う対象となる時刻を示す。
【００２６】
時刻同期末端ノード情報は、自ノードが、時刻同期を行う際に時刻同期に必要な情報を格納した時刻同期用フレームを終端する時刻同期末端ノードであることを識別するために使用する情報である。時刻同期シーケンス番号情報は、時刻同期を正常に行うためにマスタノード１により管理されるシーケンス番号であり、各スレーブノードが時刻同期を行う際に保持するシーケンス番号である。時刻同期優先ポート情報は、スレーブノード２が、時刻同期を行うフレームをポート１２ａ，１２ｂで同時に受信した場合に、どちらのポートから受信したフレームの情報を有効とするか予め設定しておくために使用する情報である。
【００２７】
また、時刻同期ポート情報は、スレーブノード２が、自ノードの２つのポートのうち、時刻同期用フレームにより時刻同期に関する情報を得るポートを示す情報である。時刻同期状態情報は、時刻同期シーケンス番号情報が示すシーケンス番号に対応する時刻同期シーケンスの動作の進行状態を示す情報である。受信時刻Ｔ２情報は、スレーブノード２が、マスタノード１から送信された時刻同期用フレームを受信した受信時刻Ｔ２を示す情報である。
【００２８】
また、送信時刻Ｔ１情報は、スレーブノード２が、受信時刻Ｔ２で受信した時刻同期用フレームがマスタノード１から送信された送信時刻Ｔ１を示す情報である。送信時刻Ｔ３情報は、時刻同期末端ノード（時刻同期シーケンスの末端となるノード）から送信された時刻同期用フレームをスレーブノード２が受信して転送する際に、当該時刻同期用フレームを受信したポートと反対側のポートからフレームを送信した送信時刻Ｔ３を示す情報である。受信時刻Ｔ４情報は、時刻同期末端ノードから送信された時刻同期用フレームをマスタノード１が受信した時刻を示す情報である。なお、図４の構成例は一例であり、同等の情報を保持していれば、情報の順序や形式等は図４の例に限定されない。
【００２９】
図５は、時刻同期を行うために使用する時刻同期用フレームに格納する情報の一例を示す図である。図５に示すように、時刻同期用フレームには、マスタノード発信と、時刻同期末端ノード発信と、時刻同期シーケンス番号と、時刻同期メッセージタイプと、の情報が格納される。マスタノード発信としては、フレームの送信元がマスタノードであるかどうかを識別する情報を格納する。時刻同期末端ノード発信としては、フレームの送信元が時刻同期末端ノードであるかどうかを識別する情報を格納する。時刻同期シーケンス番号としては、転送する時刻同期用フレームの時刻同期シーケンス番号情報を格納する。時刻同期メッセージタイプとしては、時刻同期の動作の進行状態を識別するために転送しているフレームのメッセージタイプを示す情報を格納する。
【００３０】
なお、図５では、送信時刻Ｔ１と、受信時刻Ｔ４と、が時刻同期用フレームに格納される例を示しているが、ここに格納される時刻は、時刻同期メッセージタイプにより異なる。
【００３１】
次に、本実施の形態の時刻同期動作（時刻同期シーケンス）について説明する。本実施の形態では、時刻同期方式としてＩＥＥＥ１５８８で規定されたプロトコルを用いる例を説明するが、用いるプロトコルはこれに限らない。また、本実施の形態では、１：Ｎ通信により時刻同期を行う。すなわち、マスタノード１から送信された時刻同期用フレームを各スレーブノードが転送し、時刻同期用フレームを終端する時刻同期末端ノードまで時刻同期用フレームが到着する。時刻同期末端ノードは、時刻同期用フレームを送信し、各スレーブノードが転送することによりマスタノード１に時刻同期用フレームが到着する。各スレーブノード（時刻同期末端ノード）は、時刻同期用フレームの送信または受信時刻と、時刻同期用フレームに格納されたマスタノード１における時刻同期用フレームの送信または受信時刻と、に基づいて時刻同期処理を実施する。
【００３２】
このようにマスタノードと時刻同期末端ノード間のネットワーク伝搬遅延時間を等しいと仮定して、両ノードから双方向にフレームを転送してスレーブノードにおいて基準とする時刻と自ノードの時刻との差を求めることにより時刻同期を行う時刻同期方式のプロトコルであればどのプロトコルでも適用可能である。
【００３３】
従来の時刻同期方法では、リングネットワーク内で上述の１：Ｎ通信により時刻同期を行う場合、マスタノードが時刻同期末端ノードとして機能する。この場合、全スレーブノードはリングネットワーク内で転送される同一の時刻同期用フレームを用いて時刻同期処理を行うため、ノード台数が多いと、時刻同期精度が悪く、全ノードの時刻同期完了時間が長いという問題がある。本実施の形態では、マスタノード１が両ポートから時刻同期用フレームを送信し、スレーブノード２〜６のうちの１つのノードまたは隣接する２つのノードが、受信した時刻同期用フレームに基づいて自ノードを時刻同期末端ノードとして設定することにより、１つの時刻同期用フレームを用いて時刻同期処理を実施するノード数を低減する。
【００３４】
図６および図７は、本実施の形態の時刻同期シーケンスの一例を示すチャート図である。また、図８は、マスタノード１の時刻同期処理手順の一例を示すフローチャートである。図９〜図１２は、スレーブノード２〜６が各時刻同期用フレームを受信した場合の処理手順の一例を示すフローチャートである。図６の例では、スレーブノードが４つ（スレーブノード２，３，５，６）の構成の場合を示し、図７はスレーブノード５つ（スレーブノード２〜６）の構成の場合を示している。なお、図６および図７では、マスタノード１を時刻マスタ１と記載し、スレーブノード２〜６を時刻スレーブ２〜６として記載している。以下の説明では、同様のシーケンス図では、マスタノード１を時刻マスタ１と記載し、スレーブノード２〜６を時刻スレーブ２〜６として記載する。
【００３５】
図６〜１２を用いて本実施の形態の時刻同期処理を説明する。まず、図８を用いてマスタノード１の時刻同期処理手順を説明する。マスタノード１の時刻同期管理部２３は、時刻同期シーケンスを開始すると、タイマによる経過時間の計測を開始し、タイマが時刻同期周期を満了したか（経過時間が時刻同期周期になったか）否かを判断する（ステップＳ７１）。タイマが満了していない場合（ステップＳ７１  Ｎｏ）には、ステップＳ７１を繰り返す。
【００３６】
タイマが満了した場合（ステップＳ７１  Ｙｅｓ）、時刻同期管理部２３は、タイマの時刻同期周期カウンタをクリアし新たに経過時間の計測を開始し、時刻同期情報の時刻同期シーケンス番号情報を更新し（１加算する）、両ポートの時刻同期状態情報を時刻同期用フレームを未送信であることを示す値（ここでは例えば“００００（ｂ）”とする）に設定する（ステップＳ７２）。
【００３７】
次に、時刻同期管理部２３は、タイマがフレーム送信周期を満了したか（経過時間がフレーム送信周期になったか）否かを判断する（ステップＳ７３）。タイマが満了していない場合（ステップＳ７３  Ｎｏ）には、ステップＳ７３を繰り返す。
【００３８】
タイマがフレーム送信周期を満了した場合（ステップＳ７３  Ｙｅｓ）、両ポートからＳｙｎｃフレームを送信する（ステップＳ７４）。このとき、Ｓｙｎｃフレームには、時刻同期シーケンス番号情報として保持されている時刻同期シーケンス番号を格納して送信する。なお、Ｓｙｎｃフレーム（同期フレーム）は各ノードが自ノードで管理している時刻における受信時刻を計測するために送信されるフレームである。
【００３９】
時刻同期管理部２３は、また、送信時の障害状態と各ポートにおけるＳｙｎｃフレームの送信時刻Ｔ１を取得して、送信時刻Ｔ１情報として保持し、両ポートの時刻同期状態情報をＳｙｎｃフレーム送信済を示す値（ここでは例えば“０００１（ｂ）”とする）に設定する（ステップＳ７５）。
【００４０】
次に、時刻同期管理部２３は、タイマがフレーム送信周期を満了したか（経過時間がフレーム送信周期になったか）否かを判断する（ステップＳ７６）。タイマが満了していない場合（ステップＳ７６  Ｎｏ）には、ステップＳ７６を繰り返す。
【００４１】
タイマがフレーム送信周期を満了した場合（ステップＳ７６  Ｙｅｓ）、両ポートからＳｙｎｃフレームの送信時刻Ｔ１を格納した時刻同期用フレームの一種であるＦｏｌｌｏｗ＿ｕｐフレームを送信し、両ポートの時刻同期状態情報をＦｏｌｌｏｗ＿ｕｐフレーム送信済を示す値（ここでは例えば“００１０（ｂ）”とする）に設定する（ステップＳ７７）。なお、Ｆｏｌｌｏｗ＿ｕｐフレームは、マスタノード１におけるＳｙｎｃフレームの送信時刻（送信時刻Ｔ１）を通知するための送信時刻通知フレームである。
【００４２】
次に、時刻同期管理部２３は、両ポートからＤｅｌａｙ＿Ｒｅｑ．フレームを受信したか否かを判断する（ステップＳ７８）。両ポートからＤｅｌａｙ＿Ｒｅｑ．フレームを受信していない場合（ステップＳ７８  Ｎｏ）は、ステップＳ７８を繰り返す。なお、Ｄｅｌａｙ＿Ｒｅｑ．フレーム（遅延要求フレーム）は、時刻同期用フレームの一種であり、後述するように時刻同期末端ノードから送信されるフレームである。
【００４３】
両ポートからＤｅｌａｙ＿Ｒｅｑ．フレームを受信した場合（ステップＳ７８  Ｙｅｓ）は、時刻同期管理部２３は、各ポートがそれぞれＤｅｌａｙ＿Ｒｅｑ．フレームを受信した時刻を受信時刻Ｔ４情報として保持し、また時刻同期状態情報をＤｅｌａｙ＿Ｒｅｑ．フレーム受信済みの値（ここでは例えば“０１００（ｂ）”とする）に設定する（ステップＳ７９）。
【００４４】
次に、時刻同期管理部２３は、タイマがフレーム送信周期を満了したか（経過時間がフレーム送信周期になったか）否かを判断する（ステップＳ７Ａ）。タイマが満了していない場合（ステップＳ７Ａ  Ｎｏ）には、ステップＳ７Ａを繰り返す。
【００４５】
タイマがフレーム送信周期を満了した場合（ステップＳ７Ａ  Ｙｅｓ）、両ポートからそれぞれのポートでＤｅｌａｙ＿Ｒｅｑ．フレームを受信した時刻（受信時刻Ｔ４）を格納した時刻同期用フレームの一種であるＤｅｌａｙ＿Ｒｅｓ．フレームを送信し、両ポートの時刻同期状態情報をＤｅｌａｙ＿Ｒｅｓ．フレーム送信済を示す値（ここでは例えば“１０００（ｂ）”とする）に設定し（ステップＳ７Ｂ）、処理を終了する。なお、Ｄｅｌａｙ＿Ｒｅｓ．フレームは、マスタノード１におけるＤｅｌａｙ＿Ｒｅｑ．フレームの受信時刻を通知するための受信時刻通知フレームである。
【００４６】
なお、マスタノード１からのＳｙｎｃフレームの送信タイミングは、時刻同期周期タイマが満了すれば、フレーム送信周期タイマに関係なく任意のタイミングで送信してもよい。また、Ｆｏｌｌｏｗ＿ｕｐフレームの送信タイミングは、Ｓｙｎｃフレームを送信後であれば、任意のタイミングで送信してもよい。また、Ｄｅｌａｙ＿Ｒｅｓ．フレームの送信タイミングもＤｅｌａｙ＿Ｒｅｑ．フレームを受信後であれば、任意のタイミングで送信してもよい。
【００４７】
次に、図６に示したシーケンスを説明する。図８のステップＳ７４で示したように、マスタノード１の時刻同期管理部２３は、ＩＥＥＥ１５８８に準拠した時刻同期用フレームの１種であるＳｙｎｃフレームを生成し、両ポート１１ａ，１１ｂからそれぞれ送信する。この際、各ポートからのフレームの送信時刻Ｔ１L，Ｔ１Rをそれぞれ取得して、送信時刻Ｔ１Lおよび送信時刻Ｔ１Rを時刻同期情報の送信時刻Ｔ１情報として保持する（Ｓ１１ａ、Ｓ１１ｂ）。両ポートから送信される時刻同期用フレームには同一の時刻同期シーケンス番号が格納される。
【００４８】
ここでは、送信時刻Ｔ１Lについては図１の構成例の左回りの方向に送信した（すなわち、ポート１１ａから送信した）送信時刻とし、右回りの方向に送信した（ポート１１ｂから送信した）送信時刻をＴ１Rとする。この場合、ポートＡ用の情報が送信時刻Ｔ１Lとなり、ポートＢ用の情報が送信時刻Ｔ１Rとなる。
【００４９】
マスタノード１の両ポートから送信されたＳｙｎｃフレームは、隣接ノードであるスレーブノード６，２に伝送される（Ｓ１２ａ、Ｓ１２ｂ）。スレーブノード２，６は、自ノードのポートでＳｙｎｃフレームを受信した受信時刻Ｔ２（Ｔ２L，Ｔ２R）を取得し、時刻同期情報の受信時刻Ｔ２情報として保持する（ステップＳ１３ａ，１３ｂ）。なお、この例では、例えば、スレーブノード２〜６が、ポート１２ｂ〜１６ｂでＳｙｎｃフレームを受信した時刻を受信時刻Ｔ２Lとし、スレーブノード２〜６が、ポート１２ａ〜１６ａでＳｙｎｃフレームを受信した時刻を受信時刻Ｔ２Rとする。すなわち、受信時刻Ｔ２情報のうちポートＡ（ポート１２ａ〜１６ａ）用の情報として受信時刻Ｔ２Rが格納され、ポートＢ（ポート１２ｂ〜１６ｂ）用の情報として受信時刻Ｔ２Lが格納される。なお、本実施の形態では、各スレーブノード２〜６では、ポートＡとポートＢのうち時刻同期ポートとして設定されている方のポートの受信時刻（Ｔ２LまたはＴ２R）が格納される。
【００５０】
ここで、図９を用いてスレーブノード２がＳｙｎｃフレームを受信した場合の動作を説明する。図９に示すように、スレーブノード２〜６の時刻同期処理部３３は、ポート１２ａおよび時刻同期用フレーム受信処理部３２ａ、またはポート１２ｂおよび時刻同期用フレーム受信処理部３２ｂ経由でＳｙｎｃフレームを受信すると、受信したフレームがＦＣＳ（Ｆｒａｍｅ  Ｃｈｅｃｋ  Ｓｅｑｕｅｎｃｅ）エラー等により無効であるか否かを判断する（ステップＳ８０）。フレームが無効でないと判断した場合（ステップＳ８０  Ｎｏ）、時刻同期処理部３３は、受信したフレームに格納された時刻同期シーケンス番号が新規時刻同期シーケンス番号であるか否か（時刻同期情報に格納済みの時刻同期シーケンス番号でないか否か）を判断する（ステップＳ８１）。
【００５１】
新規時刻同期シーケンス番号であると判断した場合（ステップＳ８１  Ｙｅｓ）、時刻同期処理部３３は、両ポート同時にＳｙｎｃフレームを受信したか否かを判断する（ステップＳ８２）。両ポート同時にＳｙｎｃフレームを受信していないと判断した場合（ステップＳ８２  Ｎｏ）、時刻同期処理部３３は、受信したＳｙｎｃフレームに格納された時刻同期シーケンス番号と当該フレームを受信したポートにおける受信時刻Ｔ２（時刻同期情報の受信時刻Ｔ２情報）として保持し、また、時刻同期情報の両ポートの時刻同期状態情報を、Ｓｙｎｃフレーム受信済を示す値（ここでは例えば“０００１（ｂ）”とする）に設定し、受信したポートの時刻同期ポート情報を時刻同期ポートに設定したことを示す値（ここでは例えば“１”とする）に設定する（ステップＳ８５）。
【００５２】
そして、時刻同期処理部３３は、受信したＳｙｎｃフレームを固定時間遅延させて転送するよう遅延制御部３４へ指示し、遅延制御部３４はＳｙｎｃフレームを固定時間遅延させた後、受信したポートと反対側のポートから転送し（ステップＳ８７）、処理を終了する。
【００５３】
一方、ステップＳ８２で、両ポート同時にＳｙｎｃフレームを受信したと判断した場合（ステップＳ８２  Ｙｅｓ）、時刻同期処理部３３は、Ｓｙｎｃフレームに格納されている時刻同期シーケンス番号を時刻同期シーケンス番号情報として保持し、時刻同期情報の時刻同期優先ポート情報を参照して時刻優先ポートとして設定されているポートにおけるＳｙｎｃフレームの受信時刻Ｔ２を取得して保持し、時刻同期情報の両ポートの時刻同期状態情報をＳｙｎｃフレーム送信済を示す値に設定し、同期優先ポートの時刻同期ポート情報を時刻同期ポートに設定したことを示す値に設定する（ステップＳ８３）。なお、時刻同期優先ポート情報には、予め２つのポートのうちどちらを時刻同期優先ポートとするかの情報が格納されているとする。
【００５４】
次に、時刻同期処理部３３は、時刻同期情報の時刻同期末端ノード情報を自ノードが時刻同期の末端ノードであることを示す値（ここでは例えば“１”とする）に設定する（ステップＳ８６）。次に、時刻同期処理部３３は、遅延させる固定時間がフレーム長より大きいか否かを判断し（ステップＳ８８）、遅延制御部３４で遅延させる固定時間がフレーム長より大きい場合（ステップＳ８８  Ｙｅｓ）には、時刻同期処理部３３は、当該Ｓｙｎｃフレームを破棄する（ステップＳ８０ａ）。
【００５５】
遅延制御部３４で遅延させる固定時間がフレーム長以下の場合（ステップＳ８８  Ｎｏ）には、時刻同期処理部３３は、ＦＣＳの格納領域に正しいＦＣＳ値と異なる値を格納したＳｙｎｃフレーム（ＦＣＳエラーフレーム）を生成し、遅延制御部３４へ生成したフレームを固定時間遅延させた後に、受信したポートと反対側のポートに送信するよう指示し、遅延制御部３４は指示に基づいて遅延させたフレームを送信する（ステップＳ８９）。なお、ステップＳ８９で送信するフレームは、無効なフレームと判別されるフレームであればよく、ＦＣＳエラーフレームでなくてもよい。また、両側のポートで同時にＳｙｎｃフレームを受信した場合には、ステップＳ８９では両側のポートからＦＣＳエラーフレームが送信されることになる。
【００５６】
また、ステップＳ８１で、新規時刻同期シーケンス番号でないと判断した場合（ステップＳ８１  Ｎｏ）、時刻同期処理部３３は、時刻同期情報の時刻同期ポート情報を参照し、Ｓｙｎｃフレームを受信したポートと反対側のポートが時刻同期ポートに設定されているか否かを判断する（ステップＳ８４）。反対側のポートが時刻同期ポートに設定されている場合（ステップＳ８４  Ｙｅｓ）はステップＳ８６へ進み、反対側のポートが時刻同期ポートに設定されていない場合（ステップＳ８４  Ｎｏ）はステップＳ８８へ進む。
【００５７】
また、ステップＳ８０で、フレームが無効であると判断した場合（ステップＳ８０  Ｙｅｓ）、時刻同期処理部３３は、ステップＳ８８へ進む。なお、スレーブノード３〜６も上述のスレーブノード２と同様の処理を実施する。
【００５８】
以上の処理により、マスタノード１から送信されたＳｙｎｃフレームをリング内の全スレーブノード２〜６は２つのポートのうちの早く受信した方のポートを時刻同期ポートとして設定し、時刻同期ポートにおける受信時刻Ｔ２を保持する。そして、リングネットワーク内の両ポート同時にＳｙｎｃフレームを受信したスレーブノードまたは時刻同期ポートとして設定のポートと反対側のポートから正常なＳｙｎｃフレームを受信したスレーブノードを時刻同期末端ノードとして設定するようにした。また、時刻同期末端ノードは、受信したＳｙｎｃフレームを無効なフレームとしてから転送するようにした。これにより、短い時間で全スレーブノードがＳｙｎｃフレームを受信することが可能となる。
【００５９】
図６を用いた説明に戻る。スレーブノード２，６は、受信したＳｙｎｃフレームを、受信したポートと反対側のポートから隣接ノードへ転送する（ステップＳ１４ａ，Ｓ１４ｂ）。この場合、スレーブノード２，６は、Ｓｙｎｃフレームを両ポートで同時に受信しておらず、また同一の時刻同期シーケンス番号のＳｙｎｃフレームを受信済みでないから、図９のステップＳ８５およびステップＳ８７を実施することによりＳｙｎｃフレームを転送する。
【００６０】
スレーブノード２，６からＳｙｎｃフレームを受信したスレーブノード３，５は、スレーブノード２，６と同様に、Ｓｙｎｃフレームを受信した受信時刻Ｔ２（Ｔ２L，Ｔ２R）を受信時刻Ｔ２情報として保持し（ステップＳ１５ａ，１５ｂ）、受信したポートと反対側からＳｙｎｃフレームを転送する（ステップＳ１６ａ，１６ｂ）。この場合も、スレーブノード３，５は、Ｓｙｎｃフレームを両ポートで同時に受信しておらず、また同一の時刻同期シーケンス番号のＳｙｎｃフレームを受信済みでないから、図９のステップＳ８５およびステップＳ８７を実施することによりＳｙｎｃフレームを転送する。
【００６１】
次に、スレーブノード３からＳｙｎｃフレームを受信したスレーブノード５、およびスレーブノード５からＳｙｎｃフレームを受信したスレーブノード３は、同一の時刻同期シーケンス番号のＳｙｎｃフレームを既に受信済みであるため、ステップＳ８４、Ｓ８６、ステップＳ８８およびステップＳ８９により、受信時刻Ｔ２情報は保持せず、ＳｙｎｃフレームをＦＣＳエラーフレームとして、受信したポートと反対側のポートから転送する（ステップＳ１７ａ，１７ｂ）。
【００６２】
ＦＣＳエラーフレームを受信したスレーブノード２，６は、図９のＳ８８およびＳ８９により、ＳｙｎｃフレームをＦＣＳエラーフレームとして、受信したポートと反対側のポートから転送する（ステップＳ１８ａ，１８ｂ）。
【００６３】
次に、マスタノード１は、図８のステップＳ７７に示したように、Ｓｙｎｃフレームの送信時刻Ｔ１（Ｔ１L，Ｔ１R）を格納したＦｏｌｌｏｗ＿ｕｐフレームを生成し（ステップＳ２０ａ，２０ｂ）、各ポートから送信する（ステップ２１ａ，２１ｂ）。この例では、送信時刻Ｔ１Lを格納したＦｏｌｌｏｗ＿ｕｐフレームをポート１１ａから送信し、送信時刻Ｔ１Rを格納したＦｏｌｌｏｗ＿ｕｐフレームをポート１１ｂから送信する。また、マスタノード１は、Ｆｏｌｌｏｗ＿ｕｐフレームには時刻同期情報として保持している時刻同期シーケンス番号を格納して送信する。
【００６４】
ここで、スレーブノード２におけるＦｏｌｌｏｗ＿ｕｐフレームを受信した場合の動作について図１０を用いて説明する。図１０は、Ｆｏｌｌｏｗ＿ｕｐフレームを受信した場合のスレーブノード２の処理手順の一例を示すフローチャートである。スレーブノード２はＦｏｌｌｏｗ＿ｕｐフレームを受信すると、時刻同期処理部３３が、受信したフレームに格納された時刻同期シーケンス番号が保持している時刻同期シーケンス番号情報と一致するか否かを判断する（ステップＳ９１）。一致しない場合（ステップＳ９１  Ｎｏ）には、処理を終了する。
【００６５】
受信したフレームに格納された時刻同期シーケンス番号が保持している時刻同期シーケンス番号情報と一致した場合（ステップＳ９１  Ｙｅｓ）、時刻同期処理部３３は、当該フレームを受信したポートの時刻同期状態情報がＳｙｎｃフレーム受信状態を示す値であるか否かを判断する（ステップＳ９２）。当該フレームを受信したポートの時刻同期状態情報がＳｙｎｃフレーム受信状態を示す値でない場合（ステップＳ９２  Ｎｏ）、処理を終了する。
【００６６】
当該フレームを受信したポートの時刻同期状態情報がＳｙｎｃフレーム受信状態を示す値である場合（ステップＳ９２  Ｙｅｓ）、時刻同期処理部３３は、時刻同期ポート情報を参照し、当該フレームを受信したポートが時刻同期ポートに設定されているか否かを判断する（ステップＳ９３）。
【００６７】
当該フレームを受信したポートが時刻同期ポートに設定されている場合、受信したＦｏｌｌｏｗ＿ｕｐフレームに格納された送信時刻Ｔ１を受信したポートの送信時刻Ｔ１情報として保持する（ステップＳ９４）。そして、時刻同期処理部３３は、当該フレーム受信したポートに対応する時刻同期状態情報をＦｏｌｌｏｗ＿ｕｐフレーム受信済状態を示す値（ここでは例えば“００１０（ｂ）”とする）に設定し、受信したポートと反対側のポートからＦｏｌｌｏｗ＿ｕｐフレームを転送する（ステップＳ９５）。なお、このとき、遅延制御部３４にて固定時間遅延させた後にＦｏｌｌｏｗ＿ｕｐフレームを転送する。
【００６８】
また、ステップＳ９３で、当該フレームを受信したポートが時刻同期ポートに設定されていない場合（ステップＳ９３  Ｎｏ）は、ステップＳ９５へ進む。
【００６９】
ステップＳ９５の後、時刻同期処理部３３は、時刻同期末端ノード情報を参照し、自ノードが時刻同期末端ノードであるか否かを判断する（ステップＳ９６）。時刻同期末端ノードでない場合（ステップＳ９６  Ｎｏ）には処理を終了する。
【００７０】
時刻同期末端ノードである場合（ステップＳ９６  Ｙｅｓ）、時刻同期処理部３３は、Ｆｏｌｌｏｗ＿ｕｐフレームを受信したポートの時刻同期状態情報をＤｅｌａｙ＿Ｒｅｑ．フレーム送信済を示す値（ここでは例えば“０１００（ｂ）”とする）を格納し、受信したポートからＤｅｌａｙ＿Ｒｅｑ．フレームを送信し、送信した時刻を送信時刻Ｔ３情報として保持し（ステップＳ９７）、処理を終了する。なお、このＤｅｌａｙ＿Ｒｅｑ．フレームには、時刻同期シーケンス番号として時刻同期シーケンス番号情報に格納されている値を設定し、時刻同期メッセージタイプにはＤｅｌａｙ＿Ｒｅｑ．フレームであることを示す値を格納する。スレーブノード３〜６もスレーブノード２と同様の動作を実施する。
【００７１】
図６を用いた説明に戻る。マスタノード１からＦｏｌｌｏｗ＿ｕｐフレームを受信したスレーブノード６，２は、図１０のステップＳ９４に示したようにフレームに格納された送信時刻Ｔ１（Ｔ１LまたはＴ１R）を保持し（ステップＳ２２ａ，ステップＳ２２ｂ）、Ｆｏｌｌｏｗ＿ｕｐフレームを隣接ノードへ転送する（ステップＳ２３ａ，ステップＳ２３ｂ）。
【００７２】
スレーブノード６，２からＦｏｌｌｏｗ＿ｕｐフレームを受信したスレーブノード５，３は、スレーブノード６，２と同様に、送信時刻Ｔ１（Ｔ１LまたはＴ１R）を保持し（ステップＳ２４ａ，ステップＳ２４ｂ）、Ｆｏｌｌｏｗ＿ｕｐフレームを隣接ノードへ転送する（ステップＳ２５ａ，ステップＳ２５ｂ）。
【００７３】
以降、順次Ｆｏｌｌｏｗ＿ｕｐフレームを隣接ノードへ転送される（ステップＳ２６ａ，ステップＳ２６ｂ，ステップＳ２７ａ，ステップＳ２７ｂ）が、Ｆｏｌｌｏｗ＿ｕｐフレームを受信したポートが時刻同期ポートとして設定されていないスレーブノードでは送信時刻Ｔ１（Ｔ１LまたはＴ１R）を保持しない。
【００７４】
時刻同期末端ノードであるスレーブノード５，３は、スレーブノード６，２から転送されたＦｏｌｌｏｗ＿ｕｐフレームをに基づいて、図１０のステップＳ９７に示したように、Ｄｅｌａｙ＿Ｒｅｑ．フレームを生成してＦｏｌｌｏｗ＿ｕｐフレームを受信したポートから送信し（ステップＳ３２ａ，ステップＳ３２ｂ）、送信時刻Ｔ３（Ｔ３LまたはＴ３R）を保持する（ステップＳ３１ａ，Ｓ３１ｂ）。なお、ここでは、マスタノード１の左回りの時刻同期用フレームにより保持される送信時刻を送信時刻Ｔ３Lとし、右回りの時刻同期用フレームにより保持される送信時刻を送信時刻Ｔ３Rとする。また、時刻同期末端ノードであるスレーブノード５，３は、逆方向（スレーブノード３，５から）からもＦｏｌｌｏｗ＿ｕｐフレームを受信しているため、当該Ｆｏｌｌｏｗ＿ｕｐフレームを受信したポートと反対側のポートからＤｅｌａｙ＿Ｒｅｑ．フレームを送信する（ステップＳ３６ａ，Ｓ３６ｂ）。
【００７５】
以上のようにして、マスタノード１から送信されたＦｏｌｌｏｗ＿ｕｐフレームをリング内の全スレーブノードが時刻同期ポートにおいて受信し、マスタノード１がＳｙｎｃフレームを送信した送信時刻Ｔ１を保持することができる。更に、時刻同期末端ノードより、Ｆｏｌｌｏｗ＿ｕｐフレームを受信したポートからＤｅｌａｙ＿Ｒｅｑ．フレームを送信することにより、逆方向の遅延時間の計測を可能とする。
【００７６】
ここでＤｅｌａｙ＿Ｒｅｑ．フレームを受信した場合のスレーブノード２の動作について図１１を用いて説明する。図１１は、Ｄｅｌａｙ＿Ｒｅｑ．フレームを受信した場合のスレーブノード２の動作を示している。スレーブノード２の時刻同期処理部３３は、Ｄｅｌａｙ＿Ｒｅｑ．フレームを受信すると、受信したＤｅｌａｙ＿Ｒｅｑ．フレームに格納された時刻同期シーケンス番号と保持している時刻同期シーケンス番号情報が一致するか否かを判断する（ステップＳ１０１）。
【００７７】
時刻同期シーケンス番号と保持している時刻同期シーケンス番号情報が一致しない場合（ステップＳ１０１  Ｎｏ）は、ステップＳ１０７へ進む。時刻同期シーケンス番号と保持している時刻同期シーケンス番号情報が一致した場合（ステップＳ１０１  Ｙｅｓ）、時刻同期ポート情報を参照し、Ｄｅｌａｙ＿Ｒｅｑ．フレームを受信したポート（受信ポート）と反対側のポートが時刻同期ポートであるか否かを判断する（ステップＳ１０２）。
【００７８】
受信ポートと反対側のポートが時刻同期ポートである場合（ステップＳ１０２  Ｙｅｓ）、時刻同期処理部３３は、時刻同期末端ノード情報を参照して自ノードが時刻同期末端ノードであるか否かを判断する（ステップＳ１０３）。
【００７９】
また、Ｄｅｌａｙ＿Ｒｅｑ．フレームを受信したポート（受信ポート）と反対側のポートが時刻同期ポートでない場合（ステップＳ１０２  Ｎｏ）、ステップＳ１０７へ進む。
【００８０】
自ノードが時刻同期末端ノードでない場合（ステップＳ１０３  Ｎｏ）、時刻同期処理部３３は、受信ポートと反対側のポートの時刻同期状態情報がＦｏｌｌｏｗ＿ｕｐフレーム受信済状態を示す値（例えば００１０（ｂ））であるか否かを判断する（ステップＳ１０４）。受信ポートと反対側のポートの時刻同期ポート情報がＦｏｌｌｏｗ＿ｕｐフレーム受信済状態を示す値でない場合（ステップＳ１０４  Ｎｏ）、ステップＳ１０７へ進む。
【００８１】
受信ポートと反対側のポートの時刻同期ポート情報がＦｏｌｌｏｗ＿ｕｐフレーム受信済状態を示す値である場合（ステップＳ１０４  Ｙｅｓ）、遅延制御部３４が固定時間遅延させた後に、受信ポートと反対側のポートにＤｅｌａｙ＿Ｒｅｑ．フレームを転送し（ステップＳ１０６）、処理を終了する。また、ステップＳ１０６では、Ｄｅｌａｙ＿Ｒｅｑ．フレームを送信した送信時刻Ｔ３を送信時刻Ｔ３情報として保持し、送信したポートの時刻同期状態情報をＤｅｌａｙ＿Ｒｅｑ．フレーム送信済を示す値（ここでは例えば“０１００（ｂ）”とする）に設定する。
【００８２】
また、ステップＳ１０３で、自ノードが時刻同期末端ノードであると判断した場合（ステップＳ１０３  Ｙｅｓ）、時刻同期処理部３３は、遅延制御部３４で遅延させる固定時間がフレーム長以下の場合は遅延制御部３４で固定時間の遅延をさせた後、受信ポートと反対側のポートにＦＣＳエラーとしたＤｅｌａｙ＿Ｒｅｑ．フレームを送信し（ステップＳ１０５）、処理を終了する。なお、遅延制御部３４で遅延させる固定時間がフレーム長以上の場合は当該フレームを破棄する。
【００８３】
ステップＳ１０７では、遅延制御部３３が固定時間遅延させた後、受信したＤｅｌａｙ＿Ｒｅｑ．フレームを受信ポートと反対側のポートから送信することにより隣接ノードにフレームを転送する（ステップＳ１０７）。スレーブノード３〜６の動作もスレーブノード２の動作と同様である。
【００８４】
図６を用いた説明に戻る。スレーブノード５，３からＤｅｌａｙ＿Ｒｅｑ．フレームを受信したスレーブノード６，２は、図１１のステップＳ１０６に示したように、Ｄｅｌａｙ＿Ｒｅｑ．フレームを送信した送信時刻Ｔ３（Ｔ３L，Ｔ３R）を保持し（ステップＳ３３ａ，３３ｂ）、受信ポートと反対側のポートにＤｅｌａｙ＿Ｒｅｑ．フレームを転送する（ステップＳ３４ａ，３４ｂ）。
【００８５】
マスタノード１は、図８のステップＳ７９に示したように、各ポートでＤｅｌａｙ＿Ｒｅｑ．フレームを受信した受信時刻Ｔ４（Ｔ４L，Ｔ４R）を受信時刻Ｔ４情報として保持する（ステップＳ３５ａ，３５ｂ）。そして、マスタノード１は、図８のステップＳ７Ｂに示したように、各ポートに対応する受信時刻Ｔ４（Ｔ４LまたはＴ４R）情報を格納したＤｅｌａｙ＿Ｒｅｓ．フレームを生成し（ステップＳ４０ａ，４０ｂ）、各ポートから送信する（ステップＳ４１ａ，Ｓ４１ｂ）。
【００８６】
以上のようにして、時刻同期末端ノードから送信されたＤｅｌａｙ＿Ｒｅｑ．フレームをリングネットワーク内の時刻同期末端ノード以外のスレーブノードが時刻同期ポートと反対側のポートで受信し、時刻同期ポートから送信することにより、各スレーブノードにおいて、Ｄｅｌａｙ＿Ｒｅｑ．フレームを送信した送信時刻Ｔ３を保持することができる（Ｓ３３ａ，Ｓ３３ｂ）。また、マスタノード１がＤｅｌａｙ＿Ｒｅｑ．フレームを受信した場合は、時刻同期管理部２３で管理している受信したポートの時刻同期状態情報をＤｅｌａｙ＿Ｒｅｑ．フレームの受信済みを示す値に設定し、フレームの受信時刻Ｔ４を保持する（Ｓ３５ａ，Ｓ３５ｂ）。
【００８７】
ここでＤｅｌａｙ＿Ｒｅｓ．フレームを受信した場合のスレーブノード２の動作について図１２を用いて説明する。図１２は、Ｄｅｌａｙ＿Ｒｅｓ．フレームを受信した場合のスレーブノード２の動作を示している。スレーブノード２の時刻同期処理部３３は、Ｄｅｌａｙ＿Ｒｅｓ．フレームを受信すると、受信したＤｅｌａｙ＿Ｒｅｓ．フレームに格納された時刻同期シーケンス番号と保持している時刻同期シーケンス番号情報が一致するか否かを判断する（ステップＳ１１１）。
【００８８】
時刻同期シーケンス番号と保持している時刻同期シーケンス番号情報が一致しない場合（ステップＳ１１１  Ｎｏ）は、ステップＳ１１６へ進む。時刻同期シーケンス番号と保持している時刻同期シーケンス番号情報が一致した場合（ステップＳ１１１  Ｙｅｓ）、時刻同期ポート情報を参照し、Ｄｅｌａｙ＿Ｒｅｑ．フレームを受信したポート（受信ポート）が時刻同期ポートであるか否かを判断する（ステップＳ１１２）。
【００８９】
受信ポートが時刻同期ポートである場合（ステップＳ１１２  Ｙｅｓ）、時刻同期処理部３３は、時刻同期情報がＤｅｌａｙ＿Ｒｅｑ．フレーム受信状態を示す値（例えば０１００（ｂ））であるか否かを判断する（ステップＳ１１３）。
【００９０】
時刻同期情報がＤｅｌａｙ＿Ｒｅｑ．フレーム受信状態を示す値である場合（ステップＳ１１３  Ｙｅｓ）、Ｄｅｌａｙ＿Ｒｅｓ．フレームに格納された受信時刻Ｔ４を受信時刻Ｔ４情報として保持し、時刻同期状態情報にＤｅｌａｙ＿Ｒｅｓ．フレーム受信状態を示す値（ここでは例えば“１０００（ｂ）”とする）を設定し、受信ポートを反対側のポートからＤｅｌａｙ＿Ｒｅｓ．フレームを転送する（ステップＳ１１４）。なお、フレームの転送の際には、遅延制御部３４が固定時間遅延させてから転送する。
【００９１】
そして、時刻同期処理部３３は、保持している時刻同期情報に基づいて後述する時刻演算、時刻補正の処理を実施し、実施後に両ポートの時刻同期状態情報を初期状態（ここでは例えば“００００（ｂ）”とする）に設定し、時刻同期ポート情報、時刻同期末端ノード情報をクリア（初期値に設定）し（ステップＳ１１５）、処理を終了する。
【００９２】
なお、ステップＳ１１１でシーケンス番号が一致しない場合（ステップＳ１１１  Ｎｏ）、ステップＳ１１２で受信ポートが時刻同期ポートでない場合（ステップＳ１１２  Ｎｏ）、およびステップＳ１１３で時刻同期状態情報がＤｅｌａｙ＿Ｒｅｑ．フレーム受信状態を示す値でない場合（ステップＳ１１３  Ｎｏ）には、時刻同期状態情報にＤｅｌａｙ＿Ｒｅｓ．フレーム受信状態を示す値を設定し、受信ポートと反対側のポートからＤｅｌａｙ＿Ｒｅｓ．フレームを転送し（ステップＳ１１６）、処理を終了する。なお、フレームの転送の際には、遅延制御部３４が固定時間遅延させてから転送する。スレーブノード３〜６の動作は、スレーブノード２の動作と同様である。
【００９３】
図６を用いた説明に戻る。Ｄｅｌａｙ＿Ｒｅｓ．フレームを受信したスレーブノード６，２は、図１２のステップＳ１１４に示したように、Ｄｅｌａｙ＿Ｒｅｓ．フレームに格納された受信時刻Ｔ４（Ｔ４L，Ｔ４R）を保持し（ステップＳ４２ａ，Ｓ４２ｂ）、Ｄｅｌａｙ＿Ｒｅｓ．フレームを受信ポートと反対側から転送する（ステップＳ４３ａ，Ｓ４３ｂ）。
【００９４】
Ｄｅｌａｙ＿Ｒｅｓ．フレームを受信したスレーブノード５，３は、スレーブノード６，２と同様に、Ｄｅｌａｙ＿Ｒｅｓ．フレームに格納された受信時刻Ｔ４（Ｔ４L，Ｔ４R）を保持し（ステップＳ４４ａ，Ｓ４４ｂ）、Ｄｅｌａｙ＿Ｒｅｓ．フレームを受信ポートと反対側から転送する（ステップＳ４５ａ，Ｓ４５ｂ）。
【００９５】
スレーブノード６，２からＤｅｌａｙ＿Ｒｅｓ．フレームを受信したスレーブノード５，３は、時刻同期ポートからの受信ではないため、ステップS１１６により、Ｄｅｌａｙ＿Ｒｅｓ．フレームに格納された受信時刻Ｔ４（Ｔ４L，Ｔ４R）を保持せずに、Ｄｅｌａｙ＿Ｒｅｓ．フレームを受信ポートと反対側から転送する（ステップＳ４６ａ，４６ｂ）。その後、Ｄｅｌａｙ＿Ｒｅｓ．フレームを受信したスレーブノード２，６も同様にＤｅｌａｙ＿Ｒｅｓ．フレームを受信ポートと反対側から転送する（ステップＳ４７ａ，４７ｂ）。
【００９６】
以上のようにして、マスタノード１から送信されたＤｅｌａｙ＿Ｒｅｓ．フレームをリングネットワーク内の全スレーブノードが時刻同期ポートにおいて受信することにより、全スレーブノードがマスタノード１でのＤｅｌａｙ＿Ｒｅｑ．フレーム受信時刻Ｔ４を保持することができる。
【００９７】
次に、図７に示したシーケンスについて説明する。図７では、図６の例とスレーブノードの数が異なっている。図６の例では、マスタノード１から送信されるＳｙｎｃフレームの方向ごとに、スレーブノード５およびスレーブノード３がそれぞれ時刻同期末端ノードとして設定されたが、図７の例ではスレーブノード４が両方向の時刻同期末端ノードとして設定される。
【００９８】
以下、図６の例と異なる部分を説明する。ステップＳ１１ａ〜ステップＳ１６ａ，ステップＳ１１ｂ〜ステップＳ１６ｂは、図６の例と同様である。スレーブノード４は、ステップＳ１６ａ，ステップＳ１６ｂでそれぞれ転送されたＳｙｎｃフレームを両ポート同時に受信する。そして、スレーブノード４は、Ｓｙｎｃフレームを受信した受信時刻Ｔ２を受信時刻Ｔ２情報として保持する（ステップＳ５１ｂ）。スレーブノード４は、このＳｙｎｃフレームを受信すると、図９のステップＳ８３に示したように、両ポートを時刻同期ポートとしてなお、この場合、同時に受信しているため、両ポートの受信時刻は同一であるため、両ポートの受信時刻Ｔ２R，Ｔ２Lのうちどちらか同期優先ポートとして予め設定されている方の時刻を保持する。図７ではＴ２Rを保持した例を示している。
【００９９】
また、スレーブノード４は、Ｓｙｎｃフレームを受信したポートと反対側のポートからＦＣＳエラーとしたＳｙｎｃフレームを転送する（ステップＳ５２ａ，５２ｂ）。以降、このＦＣＳエラーとしたＳｙｎｃフレームが各ノードで転送される（ステップＳ５３ａ，Ｓ５４ａ，Ｓ５３ｂ，Ｓ５４ｂ）。
【０１００】
次に、図６の例と同様にステップＳ２０ａ〜ステップＳ２５ａ，ステップＳ２０ｂ〜ステップＳ２５ｂが実施される。スレーブノード４は、ステップＳ２５ａ，ステップＳ２５ｂでそれぞれ転送されたＦｏｌｌｏｗ＿ｕｐフレームを両ポート同時に受信し、時刻同期ポートで受信したフレームに格納された送信時刻Ｔ１Rを送信時刻Ｔ１情報として保持する（ステップＳ５５ｂ）。以降、Ｆｏｌｌｏｗ＿ｕｐフレームが各ノードで転送される（ステップＳ５７ａ，Ｓ５８ａ，Ｓ５７ｂ，Ｓ５８ｂ）。
【０１０１】
次に、時刻同期末端ノードであるスレーブノード４は、両ポートから受信したそれぞれのＦｏｌｌｏｗ＿ｕｐフレームに対応してＤｅｌａｙ＿Ｒｅｑ．フレームを、受信したポートと反対側のポートからそれぞれ送信し（ステップＳ６０ａ，６０ｂ）、時刻同期ポートでＤｅｌａｙ＿Ｒｅｑ．フレームを送信した送信時刻Ｔ３Rを送信時刻Ｔ３情報として保持する（ステップＳ５９ｂ）。
【０１０２】
以降、図６の例と同様にステップＳ３１ａ〜ステップＳ３５ａ，ステップＳ３１ｂ〜ステップＳ３５ｂ，ステップＳ４０ａ〜ステップＳ４５ａ，ステップＳ４０ｂ〜ステップＳ４５ｂが実施される。ただし、ステップＳ３１ａ，３１ｂでは、時刻スレーブ５，３は自ノードが時刻同期末端ノードではないため、受信したＤｅｌａｙ＿Ｒｅｑ．フレームを送信した送信時刻Ｔ３L，Ｔ３Rを保持する。
【０１０３】
スレーブノード４は、ステップＳ４５ａ，ステップＳ４５ｂで転送されたＤｅｌａｙ＿Ｒｅｓ．フレームを受信すると、時刻同期ポートで受信したＤｅｌａｙ＿Ｒｅｓ．フレームに格納された受信時刻Ｔ４Rを送信時刻Ｔ４情報として保持する（ステップＳ６１ｂ）。以降、Ｄｅｌａｙ＿Ｒｅｓ．フレームは各ノードで転送される（ステップＳ６２ａ〜Ｓ６４ａ，Ｓ６２ｂ〜Ｓ６４ｂ）。
【０１０４】
上記動作により各スレーブノードでは、マスタノード１でのＳｙｎｃフレームの送信時刻Ｔ１（マスタ時刻）およびＤｅｌａｙ＿Ｒｅｑ．フレームの受信時刻Ｔ４（マスタ時刻）と、自ノードでのＳｙｎｃフレームの受信時刻Ｔ２（自身の時刻）およびＤｅｌａｙ＿Ｒｅｑ．フレームの送信時刻Ｔ３（自身の時刻）を保持していることになる。これらの送受信時刻Ｔ１〜Ｔ４から各スレーブノードで管理している時刻を補正する（同期させる）方法（時刻演算、時刻補正の処理）について説明する。
【０１０５】
受信時刻Ｔ２と送信時刻Ｔ１の差には、マスタ時刻（マスタノード１の基準時刻）と自ノードの時刻との時差ΔＴに加え、マスタノード１から自ノードまでの伝播遅延ＴNが含まれている。すなわち、Ｔ２−Ｔ１＝ΔＴ＋ＴNである。
【０１０６】
一方、受信時刻Ｔ４と送信時刻Ｔ３の差には、−ΔＴに加え、自ノードからマスタノード１への伝播遅延ＴN´が含まれている。ＩＥＥＥ１５８８では、往路と復路の伝播遅延は同一として扱っており、ここでも伝播遅延ＴN´＝ＴNとする。したがって、Ｔ４−Ｔ３＝−ΔＴ＋ＴNである。
【０１０７】
各スレーブノード２〜６は、以上の関係を用いて、ΔＴとＴNを算出することにより、ΔＴを用いて自身の時刻をマスタ時刻に同期させる。このようにしてリングネットワーク内の全ノードにおいて時刻同期を行うことができる。
【０１０８】
このように本実施の形態では、マスタノード１とリングネットワーク内の全スレーブノード２〜６との間で時刻同期を行う際に、マスタノード１の両側のポートから時刻同期用フレームを送信し、各スレーブノードが新たな時刻同期シーケンス番号が格納されたＳｙｎｃフレームを受信した場合に受信したポートを時刻同期ポートとして設定する（スレーブノード２〜６がマスタノード１から同時に送信されたＳｙｎｃフレームを受信した２つのポートのうちの早く受信した方のポートを時刻同期ポートとして設定する）。そして、両ポート同時にＳｙｎｃフレームを受信した場合、または受信済みのＳｙｎｃフレームと同一の時刻同期シーケンス番号が格納されたＳｙｎｃフレームを受信したポートと反対側のポートが時刻同期ポートとして既に設定されている場合に、自ノードを時刻同期末端ノードとして設定するようにした。また、時刻同期末端ノードとして設定されたスレーブノード２〜６は、受信したＳｙｎｃフレームを無効なフレームとして受信ポートと反対側から転送するようにした。これにより、従来に比べて、同一の時刻同期用フレームを用いて時刻同期を実施するノードの数が減少するため、時刻同期精度を向上させ、かつ時刻同期完了時間を短縮することができる。
【０１０９】
実施の形態２．
図１３および図１４は、本発明にかかる通信システムの実施の形態２の時刻同期シーケンスの一例を示すチャート図である。図１３は、図６と同様にスレーブノード２，３，５，６を備える構成例の場合のシーケンス例であり、図１４は、図７と同様にスレーブノード２，３，４，５，６を備える構成例の場合のシーケンス例である。本実施の形態の通信システムの構成は実施の形態１と同様である。本実施の形態のマスタノード１およびスレーブノード２〜６の構成は、実施の形態１と同様である。また、本実施の形態のマスタノード１およびスレーブノード２〜６は、実施の形態１と同様の構成の時刻同期情報を保持する。
【０１１０】
実施の形態１．では、マスタノード１からスレーブノード２〜６にＳｙｎｃフレームの送信時刻Ｔ１およびＤｅｌａｙ＿Ｒｅｑ．フレームの受信時刻Ｔ４をＦｏｌｌｏｗ＿ｕｐフレームとＤｅｌａｙ＿Ｒｅｓ．フレームの２つのフレームを用いて通知した。本実施の形態では、ＳｙｎｃフレームおよびＤｅｌａｙ＿Ｒｅｑ．フレームの送受信後に、送信時刻Ｔ１および受信時刻Ｔ４をＤｅｌａｙ＿Ｒｅｑ．フレームに格納して、マスタノード１の両ポートより送信する。
【０１１１】
図１３および図１４に示すように、マスタノード１は、Ｆｏｌｌｏｗ＿ｕｐフレームを送信しない。また、時刻同期末端ノードは、自ノードが時刻同期末端ノードであると認識すると、Ｓｙｎｃフレームを受信したポートへＤｅｌａｙ＿Ｒｅｑ．フレームを送信する（ステップＳ３１ａ，Ｓ３６ａ，Ｓ３１ｂ，Ｓ３６ｂ）。また、ステップＳ１１ａ，Ｓ１１ｂでは、マスタノード１は、実施の形態１と同様にＳｙｎｃフレームの送信時刻Ｔ１R，Ｔ１Lを送信時刻Ｔ１情報として保持する（ステップＳ１１ａ，Ｓ１１ｂ）。本実施の形態ではＦｏｌｌｏｗ＿ｕｐフレームを送信しないため、ステップＳ４０ａ，ｂでマスタノード１がＤｅｌａｙ＿Ｒｅｓ．フレームを生成する際に、送信時刻Ｔ１R，Ｔ１LをＤｅｌａｙ＿Ｒｅｓ．フレームへ格納する。これら以外の時刻同期シーケンスは、実施の形態１と同様である。
【０１１２】
図１５は、本実施の形態のマスタノード１の時刻同期処理手順の一例を示すフローチャートである。Ｆｏｌｌｏｗ＿ｕｐフレームを送信せず（ステップＳ７６，Ｓ７７を実施せず）、ステップＳ７Ｂの代わりにステップＳ７Ｃを実施する以外は、図８で説明した実施の形態１の処理と同様である。
【０１１３】
ステップＳ７Ｃでは、マスタノード１は、Ｄｅｌａｙ＿Ｒｅｓ．フレームにＤｅｌａｙ＿Ｒｅｑ．フレームを受信した受信時刻Ｔ４だけでなく送信時刻Ｔ１についても格納して送信し、各ポートの時刻同期状態情報をＤｅｌａｙ＿Ｒｅｓ．フレーム送信済みを示す値に設定する（ステップＳ７Ｃ）。
【０１１４】
図１６は、本実施の形態のスレーブノード２のＳｙｎｃフレーム受信時の処理手順の一例を示すフローチャートである。本実施の形態では、ステップＳ８６の後に、スレーブノード２の時刻同期処理部３３は、Ｓｙｎｃフレームを受信したポートの時刻同期状態情報をＤｅｌａｙ＿Ｒｅｑ．フレーム送信済を示す値を格納し、受信したポートからＤｅｌａｙ＿Ｒｅｑ．フレームを送信し、送信した時刻を送信時刻Ｔ３情報として保持し（ステップＳ８Ａ）、ステップＳ８９へ進む。なお、このＤｅｌａｙ＿Ｒｅｑ．フレームには、時刻同期シーケンス番号として時刻同期シーケンス番号情報に格納されている値を設定し、時刻同期メッセージタイプにはＤｅｌａｙ＿Ｒｅｑ．フレームであることを示す値を格納する。以上述べた以外のスレーブノード２のＳｙｎｃフレーム受信時の処理は、実施の形態１と同様である。
【０１１５】
図１７は、本実施の形態のスレーブノード２のＤｅｌａｙ＿Ｒｅｑ．フレーム受信時の処理手順の一例を示すフローチャートである。実施の形態１のステップＳ１０４の判断の代わりに、本実施の形態では、時刻同期処理部３３は、時刻同期情報がＳｙｎｃフレームを受信済の状態を示す値（０００１（ｂ））であるか否かを判断する（ステップＳ１０８）。そして、時刻同期情報がＳｙｎｃフレームを受信済の状態を示す値である場合（ステップＳ１０８  Ｙｅｓ）は、ステップＳ１０６へ進み、時刻同期情報がＳｙｎｃフレームを受信済の状態を示す値でない場合（ステップＳ１０８  Ｎｏ）は、ステップＳ１０７へ進む。以上述べた以外のスレーブノード２のＤｅｌａｙ＿Ｒｅｑ．フレーム受信時の処理は、実施の形態１と同様である。
【０１１６】
図１８は、本実施の形態のスレーブノード２のＤｅｌａｙ＿Ｒｅｓ．フレーム受信時の処理手順の一例を示すフローチャートである。本実施の形態のＤｅｌａｙ＿Ｒｅｓ．フレーム受信時の処理は、実施の形態１のステップＳ１１４の代わりにステップＳ１１６を実施する以外は、実施の形態１のＤｅｌａｙ＿Ｒｅｓ．フレーム受信時の処理と同様である。
【０１１７】
ステップＳ１１６では、受信したＤｅｌａｙ＿Ｒｅｓ．フレームに格納されたＳｙｎｃフレームの送信時刻Ｔ１およびＤｅｌａｙ＿Ｒｅｑ．フレーム受信時刻Ｔ４を、それぞれ受信時刻Ｔ１情報，送信時刻Ｔ４情報として保持し、時刻同期状態情報をＤｅｌａｙ＿Ｒｅｓ．フレームを受信済みを示す値に設定し、受信ポートの反対側のポートからＤｅｌａｙ＿Ｒｅｓ．フレームを転送する（ステップＳ１１６）。
【０１１８】
スレーブノード３〜６の動作は、スレーブノード２の動作と同様である。以上の動作により、各スレーブノード２〜６は、受信時刻Ｔ４、送信時刻Ｔ１、受信時刻Ｔ２、送信時刻Ｔ３を保持することができる。したがって、実施の形態１と同様に、時刻演算、時刻補正の処理を実施することができる。
【０１１９】
このように、本実施の形態では、マスタノード１がＦｏｌｌｏｗ＿ｕｐフレームを送信せず、Ｄｅｌａｙ＿Ｒｅｓ．フレームにＳｙｎフレームの送信時刻Ｔ１およびＤｅｌａｙ＿Ｒｅｑ．フレーム受信時刻Ｔ４を格納するようにした。このため、実施の形態１と同様の効果が得られるとともに、実施の形態１に比べより時刻同期に用いるリソースを低減し、全スレーブノードに対する時刻同期完了時間を短くすることができる。
【０１２０】
実施の形態３．
図１９および図２０は、本発明にかかる通信システムの実施の形態３の時刻同期シーケンスの一例を示すチャート図である。図１９は、図６と同様にスレーブノード２，３，５，６を備える構成例の場合のシーケンス例であり、図２０は、図７と同様にスレーブノード２，３，４，５，６を備える構成例の場合のシーケンス例である。本実施の形態の通信システムの構成は実施の形態１と同様である。本実施の形態のマスタノード１およびスレーブノード２〜６の構成は、実施の形態１と同様である。また、本実施の形態のマスタノード１およびスレーブノード２〜６は、実施の形態１と同様の構成の時刻同期情報を保持する。
【０１２１】
実施の形態１では、マスタノード１の両ポートからリングネットワーク内のスレーブノード２〜６にＳｙｎｃフレームを送信し、受信したＳｙｎｃフレームに基づいてスレーブノード２〜６は自ノードが時刻同期末端ノードであるか否かを判断していた。本実施の形態では、ＳｙｎｃフレームではなくＦｏｌｌｏｗ＿ｕｐフレームに基づいて、スレーブノード２〜６は自ノードが時刻同期末端ノードであるか否かを判断する。
【０１２２】
マスタノード１の時刻同期処理手順は実施の形態１と同様である。図１９に示すように、マスタノード１は実施の形態１と同様に、Ｓｙｎｃフレームを両ポートから送信する（ステップＳ１１ａ，Ｓ１１ｂ）。
【０１２３】
図２１は、本実施の形態のスレーブノード２のＳｙｎｃフレームの受信時の処理手順の一例を示すフローチャートである。スレーブノード２の時刻同期処理部３３は、受信したフレームに格納された時刻同期シーケンス番号が新規シーケンス番号か否かを判断する（ステップＳ１３１）。
【０１２４】
新規シーケンス番号である場合（ステップＳ１３１  Ｙｅｓ）、時刻同期処理部３３は、受信したＳｙｎｃフレームに格納された時刻同期シーケンス番号と当該フレームを受信したポートにおける受信時刻Ｔ２（時刻同期情報の受信時刻Ｔ２情報）として保持し、時刻同期情報の両ポートの時刻同期状態情報を、Ｓｙｎｃフレーム受信済を示す値（ここでは例えば“０００１（ｂ）”とする）に設定する（ステップＳ１３２）。そして、遅延制御部３４により固定時間遅延させた後、受信ポートと反対側のポートにＳｙｎｃフレームを転送し（ステップＳ１３３）、処理を終了する。
【０１２５】
新規シーケンス番号でない場合（ステップＳ１３１  Ｎｏ）、時刻同期処理部３３は、時刻同期状態情報を参照し、受信ポートと反対側のポートで既にＳｙｎｃフレームを受信済みであるか否かを判断する（ステップＳ１３４）。受信ポートと反対側のポートで既にＳｙｎｃフレームを受信済みの場合（ステップＳ１３４  Ｙｅｓ）、ステップＳ１３２に進む。
【０１２６】
受信ポートと反対側のポートで既にＳｙｎｃフレームを受信済みでない場合（ステップＳ１３４  Ｎｏ）、ステップ８９と同様のステップＳ１３５を実施する（ステップＳ１３５）。ステップＳ８８，ステップＳ８０ａについては、実施の形態１と同様である。スレーブノード３〜６の動作はスレーブ２の動作と同様である。
【０１２７】
図１９の説明に戻る。Ｓｙｎｃフレームを受信したスレーブノード６，２は、上述のＳｙｎｃフレームの受信処理手順を実施し（ステップＳ１２１ａ，ステップＳ１２１ｂ）、Ｓｙｎｃフレームがスレーブノード５，３へ転送される（ステップＳ１４ａ，Ｓ１４ｂ）。スレーブノード５，３も、上述のＳｙｎｃフレームの受信処理手順を実施し（ステップＳ１２２ａ，ステップＳ１２２ｂ）、Ｓｙｎｃフレームがスレーブノード５，３へ転送される（ステップＳ１６ａ，Ｓ１６ｂ）。
【０１２８】
Ｓｙｎｃフレームを受信したスレーブノード５，３は、受信したＳｙｎｃフレームをスレーブノード３，５へ転送する（ステップＳ１７ａ，Ｓ１７ｂ）。同様にＳｙｎｃフレームを受信したスレーブノード６，２は、受信したＳｙｎｃフレームをマスタノード１へ転送する（ステップＳ１８ａ，Ｓ１８ｂ）。
【０１２９】
マスタノード１は、実施の形態１と同様のＦｏｌｌｏｗ＿ｕｐフレームを両ポートから送信する（ステップＳ２１ａ，Ｓ２１ｂ）。
【０１３０】
図２２は、本実施の形態のスレーブノード２のＦｏｌｌｏｗ＿ｕｐフレームの受信時の処理手順の一例を示すフローチャートである。スレーブノード２は、受信したＦｏｌｌｏｗ＿ｕｐフレームがＦＣＳエラーである等無効なフレームであるか否かを判断する（ステップＳ１５０）。無効なフレームでない場合（ステップＳ１５０  Ｎｏ）、受信したＦｏｌｌｏｗ＿ｕｐフレームに格納された時刻同期シーケンス番号が時刻同期シーケンス番号情報として保持されている値と一致するか否か判断する（ステップＳ１５１）。シーケンス番号が一致する場合（ステップＳ１５１  Ｙｅｓ）、時刻同期処理部３３は、時刻同期状態情報を参照し受信ポートの時刻同期状態がＳｙｎｃフレーム受信済みを示す値か否かを判断する（ステップＳ１５２）。
【０１３１】
受信ポートの時刻同期状態がＳｙｎｃフレーム受信済みを示す値である場合、両ポート同時にＦｏｌｌｏｗ＿ｕｐフレームを受信したか否かを判断する（ステップＳ１５３）。両ポート同時にＦｏｌｌｏｗ＿ｕｐフレームを受信していない場合（ステップＳ１５３  Ｎｏ）、受信したＦｏｌｌｏｗ＿ｕｐフレームに格納された送信時刻Ｔ１を送信時刻Ｔ１情報として保持し、受信ポートの時刻同期状態情報をＦｏｌｌｏｗ＿ｕｐフレームを受信済みを示す値（ここでは例えば“００１０（ｂ）”とする）に設定し、受信ポートの時刻同期ポート情報を時刻同期ポートであることを示す値（ここでは例えば“１”とする）に設定する（ステップＳ１５４）。そして、固定時間遅延させた後、受信ポートの反対側のポートからＦｏｌｌｏｗ＿ｕｐフレームを転送し（ステップＳ１５５）、処理を終了する。
【０１３２】
ステップＳ１５３で、両ポート同時に受信した場合（ステップＳ１５３  Ｙｅｓ）、同期優先ポートとして設定されているポートから受信したＦｏｌｌｏｗ＿ｕｐフレームに格納されている送信時刻Ｔ１を送信時刻Ｔ１情報として保持し、両ポートの時刻同期状態情報をＦｏｌｌｏｗ＿ｕｐフレームを受信済みを示す値に設定し、同期優先ポートの時刻同期ポート情報を時刻同期ポートであることを示す値に設定する（ステップＳ１５８）。そして、時刻同期末端ノード情報を時刻同期末端ノードであることを示す値（ここでは例えば“１”とする）に設定する（ステップＳ１５９）。
【０１３３】
次に、受信ポートから受信したＦｏｌｌｏｗ＿ｕｐフレームと同一の時刻同期シーケンス番号を格納したＤｅｌａｙ＿Ｒｅｑ．フレームを送信し、フレームの送信時刻Ｔ３を送信時刻Ｔ３情報として保持する（ステップＳ１６０）。次に、時刻同期処理部３３は、遅延させる固定時間がフレーム長より大きいか否かを判断し（ステップＳ１６１）、遅延制御部３４で遅延させる固定時間がフレーム長より大きい場合（ステップＳ１６１  Ｙｅｓ）には、時刻同期処理部３３は、当該Ｓｙｎｃフレームを破棄する（ステップＳ１６２）。遅延制御部３４で遅延させる固定時間がフレーム長以下の場合（ステップＳ１６１  Ｎｏ）、固定時間遅延させた後、受信ポートの反対側のポートからＦＣＳをエラーにする等の無効な（ＦＳＣエラーとした）フレームとしたＦｏｌｌｏｗ＿ｕｐフレームを転送し（ステップＳ１６３）、処理を終了する。
【０１３４】
ステップＳ１５２で受信ポートの時刻同期状態がＳｙｎｃフレーム受信済みを示す値でない場合（ステップＳ１５２  Ｎｏ）、時刻同期ポート情報を参照し、受信ポートの反対側のポートが時刻同期ポートとして設定されているか否かを判断する（ステップＳ１５６）。反対側のポートが時刻同期ポートとして設定されている場合（ステップＳ１５６  Ｙｅｓ）、受信ポートの時刻同期状態情報をＤｅｌａｙ＿Ｒｅｑ．フレーム受信済みの値（ここでは例えば“０１００（ｂ）”とする）に設定し（ステップＳ１５７）、ステップＳ１５９へ進む。
【０１３５】
ステップＳ１５１でシーケンス番号が一致しない場合（ステップＳ１５１  Ｎｏ）、およびステップＳ１５６で反対側のポートが時刻同期ポートとして設定されていない場合（ステップＳ１５６  Ｎｏ）、ステップＳ１６１へ進む。
【０１３６】
ステップＳ１５０で無効なフレームであると判断した場合（ステップＳ１５０  Ｙｅｓ）、ステップＳ１６１へ進む。
【０１３７】
図１９の説明に戻る。Ｆｏｌｌｏｗ＿ｕｐフレームを受信したスレーブノード２，６は、上述のＦｏｌｌｏｗ＿ｕｐフレームの受信処理手順を実施し（ステップＳ１２３ａ，ステップＳ１２３ｂ）、Ｆｏｌｌｏｗ＿ｕｐフレームがスレーブノード５，３へ転送される（ステップＳ２３ａ，Ｓ２３ｂ）。スレーブノード５，３も、上述のＦｏｌｌｏｗ＿ｕｐフレームの受信処理手順を実施し（ステップＳ１２４ａ，ステップＳ１２４ｂ）、Ｆｏｌｌｏｗ＿ｕｐフレームがスレーブノード５，３へ転送される（ステップＳ２５ａ，Ｓ２５ｂ）。
【０１３８】
スレーブノード５，３は、ステップＳ２５ａ，Ｓ２５ｂで転送されたＦｏｌｌｏｗ＿ｕｐフレームに基づいて、自ノードが時刻同期末端ノードであると認識し（図２２のステップＳ１５９）、受信ポートと反対側のポートにＦＣＳエラーとしたＦｏｌｌｏｗ＿ｕｐフレームを転送する（ステップＳ２６ａ，Ｓ２６ｂ：図２２のステップＳ１６１）。ＦＣＳエラーとしたＦｏｌｌｏｗ＿ｕｐフレームを受信したスレーブノード２，６は、ＦＣＳエラーとしたＦｏｌｌｏｗ＿ｕｐフレームを転送する（ステップＳ２７ａ，Ｓ２７ｂ）。ステップＳ３１ａ，Ｓ３１ｂ以降は実施の形態１と同様である（Ｄｅｌａｙ＿Ｒｅｑ．フレームを受信した場合およびＤｅｌａｙ＿Ｒｅｓ．フレームを受信した場合のスレーブノード２〜６の動作は実施の形態１と同様である）。
【０１３９】
図２０の例では、図１９の例と同様に、ステップＳ１１ａ，Ｓ１２１ａ，Ｓ１４ａ，Ｓ１２２ａ，１６ａ，Ｓ１１ｂ，Ｓ１２１ｂ，Ｓ１４ｂ，Ｓ１２２ｂ，１６ｂが実施される。そして、時刻スレーブ４がステップＳ１６ａ，Ｓ１６ｂで転送されたＳｙｎｃフレームを同時に受信し、上述のＳｙｎｃフレームの受信処理手順を実施する（ステップＳ１２５ｂ）。本実施の形態では、この時点では時刻スレーブ４は時刻同期末端ノードに設定されない。
【０１４０】
次に、図１９の例と同様に、ステップＳ２０ａ，Ｓ２１ａ，Ｓ１２３ａ，Ｓ２３ａ，Ｓ１１２４ａ，Ｓ２５ａ，Ｓ２０ｂ，２１ｂ，Ｓ１２３ｂ，Ｓ２３ｂ，Ｓ１２４ｂ，Ｓ２５ｂが実施される。そして、時刻スレーブ４がステップＳ２５ａ，Ｓ２５ｂで転送されたＦｏｌｌｏｗ＿ｕｐを同時に受信し、上述のＦｏｌｌｏｗ＿ｕｐフレームの受信処理手順を実施する（ステップＳ１２６）。時刻スレーブ４は自ノードを時刻同期末端ノードとして設定しＦＣＳエラーとしたＦｏｌｌｏｗ＿ｕｐフレームを受信ポートと反対側のポートから転送する（ステップＳ１２７ａ，Ｓ１２７ｂ）。ステップＳ２６ａ，Ｓ２６ｂ，ステップＳ２７ａ，Ｓ２７ｂは、図１９の例と同様である。ステップＳ３０ａ，３０ｂ以降は、実施の形態１の図７の例と同様である。
【０１４１】
このように本実施の形態では、各スレーブノードは、Ｓｙｎｃフレームの代わりにＦｏｌｌｏｗ＿ｕｐフレームの受信状態に基づいて、自ノードが時刻同期末端ノードであるか否かを設定するようにした。そのため、実施の形態１と同様の効果を得ることができる。
【０１４２】
実施の形態４．
図２３は、本発明にかかる通信システムの実施の形態４の構成例を示す図である。図２３に示すように、本実施の形態の通信システムはリングネットワークを構成し、リング状に接続されたマスタノード４１とスレーブノード４２〜４６とを備える。なお、スレーブノード数については、任意のノード数とし、図２３に示したノード数に限定されない。
【０１４３】
また、マスタノード４１およびスレーブノード４２〜４６は、それぞれ隣接ノード間のリンクを終端する２つのポートを備える。具体的には、マスタノード１は、ポート１１ａおよびポート１１ｂを備え、スレーブノード４ｉは、ポート１ｉａ（ｉ＝２，…，６）およびポート１ｉｂを備える。
【０１４４】
図２４は、本実施の形態のマスタノード４１の機能構成例を示す図である。本実施の形態のマスタノード４１の構成は、警報処理部（障害検出部）２４を追加する以外は実施の形態１のマスタノード１と同様である。
【０１４５】
図２５は、本実施の形態のスレーブノード４２の機能構成例を示す図である。本実施の形態のスレーブノード４２の構成は、警報処理部３５を追加する以外は実施の形態１のスレーブノード２と同様である。スレーブノード４３〜４６の構成は、スレーブノード４２と同様である。
【０１４６】
警報処理部２４および警報処理部３５は、自ノードの両ポートの障害状態を監視し、時刻同期管理部２３または時刻同期処理部３３へ通知する機能を有する。
【０１４７】
図２３に示すように、リングネットワーク内に障害５０が発生したとする。なお、障害５０の発生位置は一例であり、図２３の位置に限定されない。他のリンクやノード等で障害が発生する場合もある。
【０１４８】
図２６は、本実施の形態の時刻同期情報の構成例を示す図である。マスタノード４１の時刻同期管理部２３、およびスレーブノード４２〜４６の時刻同期処理部３３は、図２６に例示した時刻同期情報を管理する。本実施の形態の時刻同期情報は、実施の形態１の時刻同期情報に障害状態情報が追加している。
【０１４９】
図２７は、本実施の形態の時刻同期シーケンスの一例を示すチャート図である。図２７ではマスタノード４１を時刻マスタ４１、スレーブノード４２〜４６を時刻スレーブ４２〜４６として記載している。ステップＳ１１ａ〜Ｓ１６ａ，ステップＳ１１ｂ〜Ｓ１５ｂは、実施の形態１と同様である。
【０１５０】
ここで本実施の形態のマスタノード４１の時刻同期処理手順とスレーブノード４２のＳｙｎｃフレームの受信処理手順について説明する。図２８は、本実施の形態のマスタノード４１の時刻同期処理手順の一例を示すフローチャートである。図２９は、本実施の形態のスレーブノード４２の受信処理手順の一例を示すフローチャートである。
【０１５１】
図２８に示すように、マスタノード４１は、実施の形態１と同様にステップＳ７１〜ステップＳ７３を実施する。そして、ステップＳ７３でフレーム送信周期タイマが満了したと判断した場合（ステップＳ７３  Ｙｅｓ）、警報処理部２４は、リングネットワーク内に障害がないか否かを判断する（ステップＳ１７１）。リングネットワーク内に障害があるか否かの判断はどのような方法で行ってもよいが、例えば、定期的に送信される管理フレーム等が所定の時間以上未着である場合等に障害が発生したと判断する。
【０１５２】
リングネットワーク内に障害がないと判断した場合（ステップＳ１７１  Ｙｅｓ）、実施の形態１と同様にステップＳ７４，Ｓ７５を実施する。ただし、ステップＳ７５では、Ｓｙｎｃフレーム送信時の障害状態を障害状態情報として保持する。次に、警報処理部２４は、障害状態が変化したか否かを判断する（ステップＳ１７４）。具体的には、その時点での障害状態が障害状態情報に格納されている状態と異なるか否かを判断する。障害状態が変化した場合（ステップＳ１７４  Ｙｅｓ）にはステップＳ７２に戻る。
【０１５３】
ステップＳ１７４で障害状態が変化していない場合（ステップＳ１７４  Ｎｏ）、実施の形態１と同様にステップＳ７６，Ｓ７７を実施する。次に、警報処理部２４は、障害状態が変化したか否かを判断し（ステップＳ１７５）、変化した場合（ステップＳ１７５  Ｙｅｓ）にはステップＳ７２に戻る。
【０１５４】
ステップＳ１７５で障害状態が変化していない場合（ステップＳ１７５  Ｎｏ）、実施の形態１と同様にステップＳ７８，Ｓ７９を実施する。次に、警報処理部２４は、障害状態が変化したか否かを判断し（ステップＳ１７６）、変化した場合（ステップＳ１７６  Ｙｅｓ）にはステップＳ７２に戻る。
【０１５５】
ステップＳ１７６で障害状態が変化していない場合（ステップＳ１７６  Ｎｏ）、実施の形態１と同様にステップＳ７Ａ，Ｓ７Ｂを実施し、処理を終了する。
【０１５６】
ステップＳ１７１でリングネットワーク内に障害があると判断した場合（ステップＳ１７１  Ｎｏ)、警報処理部２４は、自ノード（マスタノード４１）のポートで障害を検出したか否かを判断する（ステップＳ１７２）。自ノードのポートで障害を検出した場合（ステップＳ１７２  Ｙｅｓ）は、障害を検出していない方のポートからＳｙｎｃフレームを送信し（ステップＳ１７３）、ステップＳ７５へ進む。自ノードのポートで障害を検出していない場合（ステップＳ１７２  Ｎｏ）は、ステップＳ７４へ進む。
【０１５７】
次に、スレーブノード４２のＳｙｎｃフレームの受信処理手順を説明する。図２９に示すように、本実施の形態のスレーブノード４２のＳｙｎｃフレームの受信処理手順は、ステップＳ８５とステップＳ８７の間にステップＳ１８１を追加する以外は、実施の形態１と同様である。ステップＳ１８１では、警報処理部３５が、Ｓｙｎｃフレームを受信したポートと反対側のポートに障害を検出したか否かを判断し（ステップＳ１８１）、障害を検出していない場合（ステップＳ１８１  Ｎｏ）はステップＳ８７へ進み、障害を検出した場合（ステップＳ１８１  ｙｅｓ）はステップＳ８６へ進む。
【０１５８】
図２７の説明に戻る。この例では、図２３に示したようにスレーブノード４３とスレーブノード４４の間のリンクに障害５０が発生しているとする。スレーブノード４４，４３は、ステップＳ１６ａで転送されたＳｙｎｃフレームを受信すると、上述のＳｙｎｃフレームの受信処理を実施し（ステップＳ１９１ａ，Ｓ１９１ｂ）、当該受信処理においてポート１４ａの障害を検出し（図２９のステップＳ１８１  Ｙｅｓ）、時刻同期末端ノードに設定する（図２９のステップＳ８６）。
【０１５９】
以降、実施の形態１と同様にステップＳ２０ａ〜Ｓ２５ａ，Ｓ２０ｂ〜Ｓ２４ｂが実施される。スレーブノード４４，４３は、実施の形態１と同様にＦｏｌｌｏｗ＿ｕｐフレームの受信処理を実施し（ステップＳ１９２ａ，Ｓ１９２ｂ）、自ノードが時刻同期末端ノードであるためＤｅｌａｙ＿Ｒｅｑ．フレームを送信し（ステップＳ１９４ａ，Ｓ１９４ｂ）、当該フレームの送信時刻Ｔ３を保持する（ステップＳ１９３ａ，Ｓ１９３ｂ）。
【０１６０】
以降、実施の形態１と同様にステップＳ３１ａ〜Ｓ３５ａ，Ｓ４０ａ〜Ｓ４５ａ，Ｓ３１ｂ〜Ｓ３５ｂ，Ｓ４０ｂ〜Ｓ４４ｂが実施される。そして、スレーブノード４４，４３は、実施の形態１と同様にＤｅｌａｙ＿Ｒｅｓ．フレームの受信処理を実施する（ステップＳ１９５ａ）。
【０１６１】
以上述べた以外の本実施の形態の動作は、実施の形態１と同様である。なお、本実施の形態では、実施の形態１の時刻同期シーケンスを実施する例を説明したが、実施の形態２または実施の形態３の時刻同期シーケンスを実施する場合に、本実施の形態の障害検出時の処理を追加してもよい。
【０１６２】
このように本実施の形態では、リングネットワーク内で時刻同期処理中に障害状態が変化した場合（時刻同期処理中に障害が発生した場合あるいはリングネットワーク内で時刻同期中に障害が解除された場合）には、マスタノード４１は、時刻同期をやり直す（Ｓｙｎｃフレームを送信し直し）。これにより、障害状態が変化した場合に時刻同期末端ノードを変更することができる。このため、実施の形態１と同様の効果が得られるとともに、リングネットワーク内で障害状態が変化しても、短時間で全スレーブノードに対する時刻同期を行うことが可能である。
【０１６３】
以上の実施の形態１〜４において使用する時刻同期用フレームは、例えばＥｔｈｅｒｎｅｔのＲ−ＡＰＳフレームやＲＰＲのＴＰフレームなど、他の用途に使用するフレームに時刻同期に必要な情報（例えば図５に示した情報）を追加して使用することも可能である。また、実施の形態１〜４のリングネットワークにおける時刻同期方式は、物理的にメッシュネットワークを構成しているが論理的にリングネットワークである場合にも適用可能である。なお、本実施の形態１〜４において、実施例としてＳｙｎｃフレームやＦｏｌｌｏｗ＿ｕｐフレーム等のＩＥＥＥ１５８８，ＩＥＥＥ８０２．１ＡＳにおいて使用する時刻同期用フレームの名称を付与しているが、時刻同期用に用いるフレームであれば、同様に時刻同期末端ノードの設定に用いることができ、用いるフレーム名称はこれらに限定されない。
【産業上の利用可能性】
【０１６４】
以上のように、本発明にかかる時刻同期方法、通信システムおよび通信装置は、リングネットワークを構成する通信システムに有用であり、特に、１つの時刻マスタノードと１つ以上の時刻スレーブノードとを備える通信システムに適している。
【符号の説明】
【０１６５】
１，４１  マスタノード
２〜６，４２〜４６  スレーブノード
１１ａ，１１ｂ，１２ａ，１２ｂ，１３ａ，１３ｂ，１４ａ，１４ｂ，１５ａ，１５ｂ，１６ａ，１６ｂ  ポート
２１ａ，２１ｂ  時刻同期用フレーム送信処理部
２２ａ，２２ｂ  時刻同期用フレーム受信処理部
２３  時刻同期管理部
３１ａ，３１ｂ  時刻同期用フレーム送信処理部
３２ａ，３２ｂ  時刻同期用フレーム受信処理部
３４  遅延制御部
２４，３５  警報処理部
【図１】
0005501939.tif 000002
【図２】
0005501939.tif 000003
【図３】
0005501939.tif 000004
【図４】
0005501939.tif 000005
【図５】
0005501939.tif 000006
【図６】
0005501939.tif 000007
【図７】
0005501939.tif 000008
【図８】
0005501939.tif 000009
【図９】
0005501939.tif 000010
【図１０】
0005501939.tif 000011
【図１１】
0005501939.tif 000012
【図１２】
0005501939.tif 000013
【図１３】
0005501939.tif 000014
【図１４】
0005501939.tif 000015
【図１５】
0005501939.tif 000016
【図１６】
0005501939.tif 000017
【図１７】
0005501939.tif 000018
【図１８】
0005501939.tif 000019
【図１９】
0005501939.tif 000020
【図２０】
0005501939.tif 000021
【図２１】
0005501939.tif 000022
【図２２】
0005501939.tif 000023
【図２３】
0005501939.tif 000024
【図２４】
0005501939.tif 000025
【図２５】
0005501939.tif 000026
【図２６】
0005501939.tif 000027
【図２７】
0005501939.tif 000028
【図２８】
0005501939.tif 000029
【図２９】
0005501939.tif 000030