JP5449566B2 - 通信装置および遅延検出方法 - Google Patents

通信装置および遅延検出方法 Download PDF

Info

Publication number
JP5449566B2
JP5449566B2 JP2012533784A JP2012533784A JP5449566B2 JP 5449566 B2 JP5449566 B2 JP 5449566B2 JP 2012533784 A JP2012533784 A JP 2012533784A JP 2012533784 A JP2012533784 A JP 2012533784A JP 5449566 B2 JP5449566 B2 JP 5449566B2
Authority
JP
Japan
Prior art keywords
frame
time
communication
refresh instruction
transmission time
Prior art date
Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
Active
Application number
JP2012533784A
Other languages
English (en)
Other versions
JPWO2012035629A1 (ja
Inventor
輝顕 伊東
智之 藤田
泰人 金山
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
Mitsubishi Electric Corp
Original Assignee
Mitsubishi Electric Corp
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by Mitsubishi Electric Corp filed Critical Mitsubishi Electric Corp
Publication of JPWO2012035629A1 publication Critical patent/JPWO2012035629A1/ja
Application granted granted Critical
Publication of JP5449566B2 publication Critical patent/JP5449566B2/ja
Active legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Images

Classifications

    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L43/00Arrangements for monitoring or testing data switching networks
    • H04L43/08Monitoring or testing based on specific metrics, e.g. QoS, energy consumption or environmental parameters
    • H04L43/0852Delays
    • H04L43/0858One way delays
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L12/00Data switching networks
    • H04L12/28Data switching networks characterised by path configuration, e.g. LAN [Local Area Networks] or WAN [Wide Area Networks]
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04JMULTIPLEX COMMUNICATION
    • H04J3/00Time-division multiplex systems
    • H04J3/02Details
    • H04J3/06Synchronising arrangements
    • H04J3/0635Clock or time synchronisation in a network
    • H04J3/0638Clock or time synchronisation among nodes; Internode synchronisation
    • H04J3/0658Clock or time synchronisation among packet nodes
    • H04J3/0661Clock or time synchronisation among packet nodes using timestamps
    • H04J3/0667Bidirectional timestamps, e.g. NTP or PTP for compensation of clock drift and for compensation of propagation delays
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L12/00Data switching networks
    • H04L12/28Data switching networks characterised by path configuration, e.g. LAN [Local Area Networks] or WAN [Wide Area Networks]
    • H04L12/40Bus networks
    • H04L12/40006Architecture of a communication node
    • H04L12/40013Details regarding a bus controller
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L12/00Data switching networks
    • H04L12/28Data switching networks characterised by path configuration, e.g. LAN [Local Area Networks] or WAN [Wide Area Networks]
    • H04L12/40Bus networks
    • H04L12/403Bus networks with centralised control, e.g. polling
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L7/00Arrangements for synchronising receiver with transmitter

Landscapes

  • Engineering & Computer Science (AREA)
  • Computer Networks & Wireless Communication (AREA)
  • Signal Processing (AREA)
  • Environmental & Geological Engineering (AREA)
  • Synchronisation In Digital Transmission Systems (AREA)
  • Data Exchanges In Wide-Area Networks (AREA)

Description

この発明は、通信装置および遅延検出方法に関するものである。
ネットワーク、特にFA(Factory Automation)システムで用いられるリアルタイム性が要求されるネットワークで通信を行う際、通信遅延が所定の時間以内であることと同時に、情報の欠損がないことが望まれる。
一般的に、遅延の測定には、測定を行う2つのノード間で、往復の遅延時間を測定する方法と、片道の遅延時間を測定する方法と、がある。片道による遅延時間測定では、受信側で通信フレームを受信した時点で遅延の判定ができるため、往復遅延時間を測定する方法と比べて、遅延の測定にかかる時間が短縮できるという利点がある。反面、片道による遅延時間測定を行うには、両ノード間でクロックが同期されていること、または両ノード間でのクロックのずれ時間が算出されていることが必要である。
片道による遅延時間の測定は、特許文献1では以下のようにして行われる。まず、クロックのずれ時間を算出し、ついで、送信側のノードでは、送信するパケットに送信時刻のタイムスタンプを付与し、パケットを送信する。その後、受信側のノードでは、パケットの受信時刻のタイムスタンプを記録する。そして、受信側のノードが、両ノード間のクロックのずれ時間、送信時刻のタイムスタンプおよび受信時刻のタイムスタンプを用いて、遅延を算出している。
また、クロックのずれ時間の算出は、以下のようにして行われる。ここで、各ノードは時間算出機能を有しているものとする。まず、第1のノードが第2のノードに対し、第1のノードの時計から取得した送信時刻のタイムスタンプを付与したずれ時間算出用のパケットを送信する。ついで、第2のノードは、受信したパケットに、第1のノードからのパケット受信時刻と、第1のノードへパケットを返送する際の送信時刻を追記し、第1のノードへ返送する。そして、第1のノードは、返送されたパケットの受信時刻を記録し、4つの時刻を基に、ずれ時間を算出していた。
一方、2つのノード間のクロック同期は、特許文献2では以下のようにして行われる。まず、第1のノードが、送信する時刻を第1のペイロードに入れた測定パケットを作成し、第2のノード宛に送信する。ついで、第2のノードは、第1のノードから測定パケットを受信すると、第1のペイロードに測定パケットの送信時刻、第2のペイロードに測定パケットの受信時刻、および第3のペイロードに返信パケットの送信時刻を入れた返信パケットを作成して第1のノードに送信する。そして、返信パケットを受信した第1のノードは、返信パケットの返信パケットの受信時刻を記録し、4つの時刻を基にしてクロックの補正を行っていた。
また、情報(パケット)の欠損について、たとえば特許文献1では、ノードにパケットロス率算出機能を設け、送信パケットにシーケンス番号を付与し、シーケンス番号の欠落によって、パケットのロス数をカウントしていた。
特開2004−289748号公報 特開2007−27985号公報
しかしながら、特許文献1に記載のずれ時間の算出方法では、ずれ時間算出用のパケットを、通常の通信に使用するパケットと並行して送受信している。このような方法を、組込みシステムのような周期的な動作を行うノードに適用した場合には、通常の通信以外に、ずれ時間算出用のパケットの送受信処理を不定期(異なる周期)で行う必要が生じ、周期的な動作を維持することが困難であるという問題点があった。
また、特許文献2に記載のクロック同期方法では、返信パケットのペイロードに時刻情報を3つ入れる必要があるため、時刻情報のデータサイズが大きくなる。そのため、ペイロードサイズが限定された状況では、通常のデータを運ぶための領域が損なわれてしまうという問題点があった。
さらに、遅延の検出にあたって、パケットに遅延検出に使用される時刻をすべて保持するようにしているので、パケットに格納する時間情報が大きくなってしまうという問題点もあった。また、パケットの欠損については、シーケンス番号の欠落によって検出していたが、送信されるパケットが1つの場合など、欠損の検出が難しいという問題点もあった。
この発明は上記に鑑みてなされたもので、周期的な動作を行うノードがネットワークで接続された通信システムで、周期的な動作を維持し、かつ通常のデータを格納するための領域を圧迫することなく各ノード間のクロックのずれを算出するための情報を送信するとことができる通信装置および遅延検出方法を得ることを目的とする。
上記目的を達成するため、この発明にかかる通信装置は、伝送路を介して接続された他の通信装置との間で周期通信を行う通信装置において、時間を計測するクロックと、通信フレームを送受信する通信手段と、自通信装置で送受信される前記通信フレームの送信時または受信時に、前記クロックを用いてタイムスタンプを生成するタイムスタンプ生成手段と、周期的に送信される前記通信フレーム中に格納する周期送信データを格納する送信データ格納手段と、周期的に受信する前記通信フレーム中の周期送信データを格納する受信データ格納手段と、前記他の通信装置に対してデータのリフレッシュ指示、前記送信データ格納手段中の前記周期送信データ、および前記タイムスタンプ生成手段から取得した送信タイミングのタイムスタンプであるフレーム送信時刻を含むリフレッシュ指示フレームを生成し、前記他の通信装置からのリフレッシュ指示フレームを受信すると、該リフレッシュ指示フレームに含まれる周期送信データを前記受信データ格納手段に格納するフレーム処理手段と、前記リフレッシュ指示フレームを受信すると前回の前記リフレッシュ指示フレームを受信してから第1遅延許容時間内につぎのリフレッシュ指示フレームを受信したか、また前記第1遅延許容時間内に前記つぎのリフレッシュ指示フレームを受信した場合に、該リフレッシュ指示フレームの前記他の通信装置から自通信装置までの伝送時間が第2遅延許容時間内であるかによって、前記他の通信装置から送信される通信フレームに遅延が生じているかを判定する片道遅延検出手段と、を備えることを特徴とする。
この発明によれば、周期通信中に2つのノード間でやり取りされる通信フレームに、送信するデータに加えて、遅延の検出に使用されるタイムスタンプを格納し、この周期通信される通信フレームに格納されているタイムスタンプと、通信フレームの受信時刻とからネットワーク内での通信フレームの遅延を検出するようにした。これによって、遅延検出のために新たな通信フレームを周期通信中にやり取りされる通信フレームのほかに送信する必要がなく、かつ通信フレームに含める時刻情報が該通信フレームの送信時刻だけでよく、通信フレームのサイズも変わらないため、シーケンス制御を行うプログラマブルコントローラのように所定の処理周期で動作する装置に適用すると、定期データ処理に影響を与えずに、通信フレームの遅延検出を行うことができるという効果を有する。
図1は、この発明の実施の形態1による通信システムが適用されるネットワークの一例を模式的に示す図である。 図2は、PDUの構成の一例を模式的に示す図である。 図3は、通信システムを構成する通信ノードの構成を模式的に示す図である。 図4は、周期通信の開始前のマスタ局とスレーブ局との間のクロックオフセット算出処理におけるPDUのやり取りを示すシーケンス図である。 図5は、周期通信時のマスタ局とスレーブ局との間のクロックオフセット算出処理におけるPDUのやり取りを示すシーケンス図である。 図6は、マスタ局のクロックオフセット算出時の動作処理手順の一例を示すフローチャートである。 図7は、スレーブ局のクロックオフセット算出時の動作処理手順の一例を示すフローチャートである。 図8は、実施の形態1による片道遅延検出処理の手順の一例を示すフローチャートである。 図9は、実施の形態1によるマスタ局での往復遅延検出処理の手順の一例を示すフローチャートである。 図10は、実施の形態1によるPDU喪失検出処理の手順の一例を示すフローチャートである。 図11は、実施の形態2によるスレーブ局のPDU送信時のチェックコード設定処理の手順の一例を示すフローチャートである。 図12は、実施の形態2による片道遅延検出処理の手順の一例を示すフローチャートである。 図13は、マスタ局による48ビットPDU送信時刻と48ビットPDU受信時刻の生成処理の手順の一例を示すフローチャートである。 図14は、スレーブ局による48ビットPDU送信時刻と48ビットPDU受信時刻の生成処理の手順の一例を示すフローチャートである。 図15は、実施の形態2による喪失検出処理の手順の一例を示すフローチャートである。 図16は、マスタ局による48ビットPDU送信時刻と48ビットPDU受信時刻の生成処理の手順の一例を示すフローチャートである。 図17は、スレーブ局による48ビットPDU送信時刻と48ビットPDU受信時刻の生成処理の手順の一例を示すフローチャートである。
以下に添付図面を参照して、この発明にかかる通信装置および遅延検出方法の好適な実施の形態を詳細に説明する。なお、これらの実施の形態によりこの発明が限定されるものではない。
実施の形態1.
図1は、この発明の実施の形態1による通信システムが適用されるネットワークの一例を模式的に示す図である。この図に示されるように、通信システムは、2つのノード1,2がイーサネット(登録商標)などの伝送路3を介して接続された構成を有している。ノード1は、ノード2に対するクロックオフセットの算出指示などの機能を有するマスタ遅延喪失検知手段14を有し、ノード2は、ノード1のマスタ遅延喪失検知手段14からの指示に従ってクロックオフセットの算出処理などを行うスレーブ遅延喪失検知手段24を有する。
この実施の形態1では、通信は、予め決められたマスタ遅延喪失検知手段14とスレーブ遅延喪失検知手段を有するペアのノード1,2間で行われる。つまり、ノード1は、周期的な通信を行っているときに、ペアの対象であるノード2に対して、所定の周期でクロックオフセットの測定/算出を指示し、ノード2は、周期的な通信を行っているときに、ペアの対象であるノード1からの指示に従ってクロックオフセットを算出するための測定およびクロックオフセットの算出を行う機能を有する。また、ノード1のマスタ遅延喪失検知手段14とノード2のスレーブ遅延喪失検知手段24は、周期通信中での通信フレームの遅延や喪失を周期通信で利用される通信フレームを用いて検知する機能もする。
以下では、クロックオフセットの算出を指示するノード1の方をマスタ局とし、マスタ局1からの指示に基づいてクロックオフセットの算出処理を行うノード2の方をスレーブ局とする。
なお、図1の例では、2つのノード1,2がネットワークに接続される場合を示しているが、3つ以上のノードがネットワークに接続されてもよい。また、1つのノードが複数の遅延喪失検知手段を備え、それぞれの遅延喪失検知手段とペアとなる遅延喪失検知手段を有する複数のノードと通信が行われるようにしてもよい。たとえば、第1のノード(マスタ局)1が第1と第2のマスタ遅延喪失検知手段を有し、第1のマスタ遅延喪失検知手段が第2のノード(スレーブ局)2のスレーブ遅延喪失検知手段とペアを組み、第2のマスタ遅延喪失検知手段が第3のノード(スレーブ局)のスレーブ遅延喪失検知手段とペアを組むようにして通信を行うことができる。
ここで、この通信システムでやり取りされる通信フレームのデータ部に格納されるプロトコル・データ・ユニット(以下、PDUという)の構成について説明する。図2は、PDUの構成の一例を模式的に示す図である。PDU30は、ヘッダ部(Header)31と、データ部(Data)32と、トレイラ部(Trailer)33と、を含む。
ヘッダ部31は、PDU30のヘッダ情報を有し、CTRL311,CID312,TS313およびOBL314を含む。CTRL311は、PDU30の種別を表す種別情報、要求/応答を表すビットを含む要求/応答情報、オフセット算出に用いるPDU30の関連付けを表すビットを含むPDU関連付け情報を含む。
PDU30の種別として、実施の形態1では、リフレッシュ処理の準備完了とオフセット計測の通知を行うRefreshReady、リフレッシュ処理とオフセット計測の通知を行うRefreshMO、リフレッシュ処理とオフセット生成の通知を行うRefreshGO、リフレッシュ処理の通知を行うRefreshの4種類が使用される。
要求/応答情報は、種別情報で表したPDU30が要求であるのか、それに対する応答であるのかを表すためのビットであり、要求と応答はそれぞれビットを反転した関係となるように決定しておく。
PDU関連付け情報は、初期状態から、オフセット算出を行う都度反転し、オフセット算出に使用するPDU30の組を特定するために使用される。つまり、1回のオフセットの算出処理の間でやり取りされるRefreshMOまたはRefreshReady(計測指示)とRefreshGO(算出指示)のPDU30に関しては、PDU関連付け情報は同じビット(値)を有し、つぎのオフセットの算出処理の間でやり取りされるRefreshMOとRefreshGOのPDU30は、前回のPDU関連付け情報を反転させたものとなる。たとえば、マスタ局1から出されるRefreshReady要求、スレーブ局2から出されるRefreshReady応答、マスタ局1から出されるRefreshGO要求、スレーブ局2から出されるRefreshGO応答の一連の処理に関して、PDU関連付け情報は同じビット(値)、たとえば「0」となる。また、そのつぎにマスタ局1から出されるRefreshMO要求、スレーブ局2から出されるRefreshMO応答、マスタ局1から出されるRefreshGO要求、スレーブ局2から出されるRefreshGO応答の一連の処理に関して、PDU関連付け情報は同じビットであり、かつ前回のPDU関連付け情報とは異なるビット、ここでは「1」となる。さらに、そのつぎにマスタ局1から出されるRefreshMO要求、スレーブ局2から出されるRefreshMO応答、マスタ局1から出されるRefreshGO要求、スレーブ局2から出されるRefreshGO応答の一連の処理に関して、PDU関連付け情報は同じビットであり、かつ前回のPDU関連付け情報とは異なるビット、ここでは「0」となる。このようにして、PDU関連付け情報が設定される。
CID312は、PDU30を、通信を行うペアであるマスタ局1のマスタ遅延喪失検知手段14とスレーブ局2のスレーブ遅延喪失検知手段24と紐付けする識別情報である。CID312に格納される識別情報は、通信を行うマスタ遅延喪失検知手段14およびスレーブ遅延喪失検知手段24のペアごとに異なり、ネットワーク内で一意となるように生成される。CID312に格納する識別情報の生成規則の一例として、マスタ局1のアドレスとスレーブ局2のアドレスを連接するという方法を例示することができる。しかし、マスタ局1に第2のマスタ遅延喪失検知手段を設け、スレーブ局2に第2のスレーブ遅延喪失検知手段を設け、第2のマスタ遅延喪失検知手段と第2のスレーブ遅延喪失検知手段を第2のペアとして、マスタ局1とスレーブ局2の間で第2の通信を行う場合には、上記の識別情報の生成規則では重複が生じてしまう。そこで、第2のペアが通信を行う場合に用いる識別情報の生成規則として、上記の識別情報生成規則での連接順序を逆転し、スレーブ局2のアドレスとマスタ局1のアドレスを連接するという方法を例示することができる。
TS313は、PDU30の送信タイミングに関するタイムスタンプを格納する領域である。具体的には、周期通信中では、マスタ遅延喪失検知手段14またはスレーブ遅延喪失検知手段24がPDU30を送信するタイミングのタイムスタンプを格納する。また、周期通信中以外では、マスタ遅延喪失検知手段14によって要求を表すPDU30が送信されるタイミングのタイムスタンプを格納し、マスタ遅延喪失検知手段14からの要求に対する応答を表すPDU30がスレーブ遅延喪失検知手段24によって送信される際に、その応答に対応する要求を表すPDU30のTS313に格納されていた値(すなわち、応答に対応する要求の送信タイミングを示すタイムスタンプ)を格納する。なお、周期通信で送信されるPDU30の主な種別は、RefreshMO,RefreshGO,Refreshである。
OBL314は、クロックのオフセットを算出する際に使用する情報を格納する領域である。具体的には、CTRL311の種別情報がRefreshGOで、要求/応答情報が要求である場合、すなわちPDU30がRefreshGO要求である場合に、RefreshGO要求を生成する基となるRefreshReady応答またはRefreshMO応答の受信タイミングを示すタイムスタンプの値が格納される。
データ部32は、周期通信されるデータなどのデータ格納領域である。また、トレイラ部33は、PDU30の破損を検知する際に使用されるチェックコードの格納領域である。チェックコードとして、CRC(Cyclic Redundancy Check)巡回冗長コードなどを使用することができる。
以上のように、TS313は、マスタ局1からスレーブ局2へまたはスレーブ局2からマスタ局1へ送信されるPDU30の遅延/喪失の検知に用いられる当該PDU30の送信時刻を格納する。しかし、この実施の形態1では、このTS313に加えて、クロックオフセットの算出に必要なマスタ局1でのPDU30の受信時刻を格納するOBL314を設けることによって、スレーブ局2側でマスタ局1を基準としたクロックオフセットの算出が可能な構成としている。なお、これらの情報を用いた遅延/喪失の検知処理やクロックオフセットの算出処理について後述する。
図3は、通信システムを構成する通信ノードの構成を模式的に示す図であり、(a)はマスタ局の構成を模式的に示すブロック図であり、(b)はスレーブ局の構成を模式的に示すブロック図である。
マスタ局1は、図3(a)に示されるように、クロック11と、送信データ格納部12と、受信データ格納部13と、マスタ遅延喪失検知手段14と、フレーム送信部15と、フレーム受信部16と、を備える。
クロック11は、マスタ局1が使用する時刻情報を生成する。送信データ格納部12は、たとえば周期通信で他のノードに送信する周期送信データを格納し、受信データ格納部13は、たとえば周期通信で受信したPDUのデータ部に格納されているデータ(周期受信データ)を格納する。送信データ格納部12に格納される周期送信データは、自装置に接続される図示しない処理装置によって行われる、他のノード(スレーブ局2)に接続される図示しない入出力機器などに設定する値の演算に利用される。また、受信データ格納部13に格納される周期受信データは、他のノードに接続される入出力機器からの出力値などであり、処理装置での演算に使用される。
マスタ遅延喪失検知手段14は、相手ノード(スレーブ局2)との間でやり取りを行うPDUを生成するとともに、周期通信されるPDUを用いてPDUの遅延や喪失を検知する機能を有する。また、スレーブ局2のクロックオフセットの算出に必要な情報をPDUに格納して送信し、スレーブ局2に対してクロックオフセットの測定/算出を指示する機能を有する。
フレーム送信部15は、マスタ遅延喪失検知手段14によって生成されたPDUを、イーサネット(登録商標)フレームなどの通信フレームのデータ部に格納してネットワークへ送出する。また、フレーム受信部16は、ネットワーク上に流れるイーサネット(登録商標)フレームなどの通信フレームのヘッダを参照して自ノード宛の通信フレームを受信し、データ部に格納されているPDUを取り出す。
ここで、マスタ遅延喪失検知手段14のさらに詳細な構成について説明する。マスタ遅延喪失検知手段14は、コネクション確立要求部141と、タイムスタンプ生成部142と、フレーム処理部143と、タイムスタンプ記憶部144と、片道遅延検出部145と、往復遅延検出部146と、喪失検出部147と、を有する。
コネクション確立要求部141は、ペアとなるノード(スレーブ局2)との間でコネクション確立処理を行う。
タイムスタンプ生成部142は、フレーム処理部143によって送信(生成)されるPDUのクロック11を基準とした送信時の時刻であるタイムスタンプを生成し、フレーム処理部143に渡す。また、他のノードからPDUを受信した時点でもタイムスタンプを生成する。
フレーム処理部143は、処理状況に応じてスレーブ局2に送信するPDUを生成する機能を有する。たとえば、コネクション確立処理が完了した場合には、RefreshReady要求を生成する。また、RefreshReady応答またはRefreshMO応答を受信し、送信データ格納部12内に周期送信データがある場合には、RefreshGO要求を生成する。さらに、RefreshGO応答を受信し、送信データ格納部12内に周期送信データがある場合には、RefreshMO要求を生成する。そして、周期通信中のその他の場合には、Refresh要求を生成する。
これらの場合において、フレーム処理部143は、送信データ格納部12内に格納されている周期送信データをデータ部32に格納したり、タイムスタンプ生成部142から渡されたタイムスタンプを各PDUのTSに格納したりするなど、所定の情報を各格納領域に格納する。また、RefreshGO要求を生成する場合には、RefreshGO要求を生成する基となるRefreshReady応答またはRefreshMO応答の受信時のタイムスタンプをOBLに格納する。
さらに、フレーム処理部143は、受信したPDUのデータ部に格納されているデータを取得して、受信データ格納部13に格納したり、TSからタイムスタンプを読み出してPDU送信時刻としてタイムスタンプ記憶部144に保持したりして、各処理部で必要な情報を取り出す機能も有する。
タイムスタンプ記憶部144は、受信したPDUのTSに格納されている値と、所定のPDUを受信したときにタイムスタンプ生成部で生成されたタイムスタンプと、を記憶する。ここでは、遅延検出用およびクロックオフセット算出用として、受信したRefresh要求,RefreshMO応答またはRefreshGO応答のTSに格納されている値を、PDU送信時刻T_sndとして記憶し、Refresh要求,RefreshMO応答またはRefreshGO応答の受信時にタイムスタンプ生成部142によって生成されたタイムスタンプをPDU受信時刻T_rcvとして記憶する。また、喪失検出用として、RefreshReady応答、Refresh要求,RefreshMO応答またはRefreshGO応答のTSに格納されている値を、前回PDU送信時刻T_psndとして記憶し、上記PDUの直後に受信するRefresh要求,RefreshMO応答またはRefreshGO応答のTSに格納されている値を、今回PDU送信時刻T_nsndとして記憶する。
片道遅延検出部145は、スレーブ局2から受け取るPDUを用いて、PDUの遅延の発生を検知する。ここでは、PDUを周期的に受信しているか否かと、相手ノードから自ノードまでにPDUが到達するのにかかる時間によって遅延判定を行う。具体的には、周期通信の開始と同時にまたは前回PDUの受信時にタイマーを起動させ、所定の時間(第1遅延許容時間r_interval)内にRefresh要求,RefreshMO応答またはRefreshGO応答を受信しなかった場合に、許容遅延超過と判定する。また、所定の時間内にRefresh要求、RefreshMO応答、RefreshGO応答を受信した場合でも、タイムスタンプ記憶部144中のPDU送信時刻T_sndとPDU受信時刻T_rcvとを用い、次式(1)によって許容遅延超過を判定する。ここで、第2遅延許容時間をd_allowedとし、(1)式を満たす場合には、遅延は発生しておらず、(1)式を満たさない場合には、遅延が発生していると判定する。なお、第1遅延許容時間r_intervalと第2遅延許容時間d_allowedとは、同じ値に設定されてもよいし、異なる値に設定されてもよい。
T_rcv−T_snd<d_allowed ・・・(1)
往復遅延検出部146は、スレーブ局2との間の要求応答シーケンスで、往復遅延が許容遅延以内であるかを検出する。具体的には、要求応答シーケンスのうちの要求PDUを送信するとタイマーを起動し、所定の時間(往復遅延許可時間rtt_allowed)内に要求に対する応答PDUを受信していない場合に、許容遅延超過と判定する。要求応答シーケンスとは、要求を示すPDUをスレーブ局2に送信すると、その応答を示すPDUがスレーブ局2から返される処理をいい、たとえばオフセット算出前の要求応答シーケンス、オフセット算出に使用するRefreshReady要求と応答、RefreshMO要求と応答、RefreshGO要求と応答、周期通信以外の通信での要求応答シーケンスを例示することができる。ここでは、周期通信が行われていないときに往復遅延検出部146による往復遅延検出処理が行われるものとする。
なお、往復遅延検出部146は、受信した応答PDUが、送信した要求PDUに対応する応答PDUであることを確認する。具体的には、自ノードが送信した要求PDUがオフセット算出前に送信する要求PDU、RefreshReady要求、および周期通信以外の通信での要求PDUである場合には、送信した要求PDUのTSと受信した応答PDUのTSとが一致するかを確認する。また、自ノードが送信した要求PDUがRefreshMO要求およびRefreshGO要求である場合には、送信した要求PDUのCTRL中のPDU関連付け情報と、相手ノードから受け取る応答PDUのCTRL中のPDU関連付け情報とが一致するかを比較する。そして、両者が一致する場合に、受信した応答PDUが、送信した要求PDUに対応する応答PDUであることを確認している。
喪失検出部147は、ネットワーク上でのPDUの喪失を検出する。具体的には、タイムスタンプ記憶部中の前回PDU送信時刻T_psndと今回PDU送信時刻T_nsndとを用い、次式(2)によってPDUの喪失を判定する。ここで、許容受信間隔を意味する喪失評価時間をtrns_intervalとし、(2)式を満たす場合には喪失は発生しておらず、(2)式を満たさない場合には喪失が発生していると判定する。
T_psnd−T_nsnd<trns_interval ・・・(2)
また、喪失検出部147は、(2)式による判定で喪失なしと判定した場合には、タイムスタンプ記憶部144中の今回PDU送信時刻の値T_nsndを、新たな前回PDU送信時刻T_psndに設定し、今回PDU送信時刻の値を削除する処理を行う。これによって、周期的に受信するRefresh要求,RefreshMO応答またはRefreshGO応答に対して、喪失検出処理を行うことができる。
スレーブ局2は、図3(b)に示されるように、クロック21と、送信データ格納部22と、受信データ格納部23と、スレーブ遅延喪失検知手段24と、フレーム送信部25と、フレーム受信部26と、を備える。ここで、クロック21、送信データ格納部22、受信データ格納部23、フレーム送信部25およびフレーム受信部26は、マスタ局1のものと同様の機能を有するので、その説明を省略する。
スレーブ遅延喪失検知手段24は、マスタ局1との間でやり取りを行うPDUを生成するとともに、周期通信されるPDUを用いてPDUの遅延や喪失を検知する機能を有する。また、相手ノードからクロックオフセットの算出に必要な情報をPDUから取得し、クロックオフセットを算出する機能も有する。このような機能を有するスレーブ遅延喪失検知手段24は、コネクション確立応答部241と、クロックオフセット記憶部242と、タイムスタンプ生成部243と、フレーム処理部244と、タイムスタンプ記憶部245と、クロックオフセット算出部246と、片道遅延検出部247と、喪失検出部248と、を有する。
コネクション確立応答部241は、ペアとなるマスタ局1との間でコネクション確立処理を行う。クロックオフセット記憶部242は、マスタ局1のクロック11を基準としたスレーブ局2のクロック21のずれの値であるクロックオフセットを記憶する。
タイムスタンプ生成部243は、フレーム処理部244によって送信(生成)されるPDUに関してマスタ局1のクロック11を基準とした送信時刻であるタイムスタンプを生成し、フレーム処理部244に渡す。また、他のノードからPDUを受信した時点でもタイムスタンプを生成する。タイムスタンプ生成部243は、クロック21から得られる時刻(値)と、クロックオフセット記憶部242中のクロックオフセットとの和に基づいて、タイムスタンプを生成する。
フレーム処理部244は、処理状況に応じてペアとなるマスタ局1に送信するPDUを生成する機能を有する。たとえば、RefreshReady要求、RefreshMO要求およびRefreshGO要求を受信し、送信データ格納部22に周期送信データが格納されている場合には、それぞれRefreshReady応答、RefreshMO応答およびRefreshGO応答を生成する。また、周期通信中で上記PDUを受信しないで前回PDUを受信してから所定の時間が経過した場合には、Refresh要求を生成する。
これらの場合において、フレーム処理部244は、送信データ格納部22内に格納されている周期送信データをPDUのデータ部に格納したり、周期通信中にタイムスタンプ生成部243から渡されたタイムスタンプをTSに格納したり、周期通信以外の場合に受信したPDUのTSに格納されている値を、受信PDUに対する応答PDUのTSに格納したりするなど所定の情報を各格納領域に格納する。
また、フレーム処理部244は、受信したPDUのデータ部に格納されているデータを取得して受信データ格納部23に格納したり、TSからタイムスタンプを読み出してPDU送信時刻としてタイムスタンプ記憶部245に格納したりして、受信したPDUから各処理部で必要な情報を取り出す機能も有する。
タイムスタンプ記憶部245は、受信したPDUのTSに格納されている値と、所定の種類のPDUを受信したときにタイムスタンプ生成部243で生成されたタイムスタンプと、を記憶する。ここでは、遅延検出用として、受信したRefresh要求,RefreshMO要求またはRefreshGO要求のTSに格納されている値を、PDU送信時刻T_sndとして記憶し、Refresh要求,RefreshMO要求またはRefreshGO要求の受信時のタイムスタンプをPDU受信時刻T_rcvとして記憶する。また、喪失検出用として、RefreshReady要求、Refresh要求,RefreshMO要求またはRefreshGO要求のTSに格納されている値を、前回PDU送信時刻T_psndとして記憶し、上記PDUの直後に受信するRefresh要求,RefreshMO要求またはRefreshGO要求のTSに格納されている値を、今回PDU送信時刻T_nsndとして記憶する。
さらに、クロックオフセット算出用として、マスタ局1から受信したオフセット測定指示を含むPDU中のTSに格納されている値を測定用PDUマスタ送信時刻Tm_sndとして記憶し、オフセット測定指示を含むPDUを受信した際にタイムスタンプ生成部243から取得したタイムスタンプを、測定用PDUスレーブ受信時刻Ts_rcvとして記憶する。また、オフセット測定指示を含むPDUに対応する応答のPDUを送信した際にタイムスタンプ生成部243から取得したタイムスタンプを測定用PDUスレーブ送信時刻Ts_sndとして記憶する。さらに、マスタ局1から受信したオフセット算出指示を含むPDUのOBL内の値を測定用PDUマスタ受信時刻Tm_rcvとして記憶する。なお、オフセット測定指示を含むPDUとして、RefreshReady要求またはRefreshMO要求を例示することができ、オフセット測定指示を含むPDUに対応する応答のPDUとして、RefreshReady応答またはRefreshMO応答を例示することができ、オフセット算出指示を含むPDUとして、RefreshGO要求を例示することができる。
クロックオフセット算出部246は、タイムスタンプによる片道遅延測定を行う際に必要となるマスタ局1のクロック11と自ノードのクロック21との間のオフセット(クロックオフセット)を算出する。具体的には、オフセット算出指示を含むPDUを受信すると、タイムスタンプ記憶部245から測定用PDUマスタ送信時刻Tm_snd、測定用PDUスレーブ受信時刻Ts_rcv、測定用PDUスレーブ送信時刻Ts_snd、および測定用PDUマスタ受信時刻Tm_rcvから、次式(3)を用いてクロックオフセットts_offsetを算出する。
ts_offset=[Tm_rcv+Tm_snd−(Ts_rcv+Ts_snd)]/2 ・・・(3)
片道遅延検出部247は、マスタ局1から受け取るPDUを用いて、PDUの遅延の発生を検知する。具体的には、周期通信の開始と同時にまたは前回PDU受信時にタイマーを起動させ、所定の時間(第1片道遅延許容値r_interval)内にRefresh要求,RefreshMO要求またはRefreshGO要求を受信しなかった場合に、許容遅延超過と判定する。また、所定の時間内にRefresh要求、RefreshMO要求、RefreshGO要求を受信した場合でも、タイムスタンプ記憶部245中のPDU送信時刻T_sndとPDU受信時刻T_rcvとから上記(1)式を用いて許容遅延超過を判定する。
喪失検出部248は、ネットワーク上でのPDUの喪失を検出する。具体的には、タイムスタンプ記憶部245中の前回PDU送信時刻T_psndと今回PDU送信時刻T_nsndとを用い、上記(2)式によってPDUの喪失を判定する。
以下に、このような構成の通信システムでのクロックオフセット算出方法、片道遅延検出方法、往復遅延検出方法および喪失検出方法について説明する。最初に、クロックオフセット算出方法の説明を行う。図4は、周期通信の開始前のマスタ局とスレーブ局との間のクロックオフセット算出処理におけるPDUのやり取りを示すシーケンス図であり、図5は、周期通信時のマスタ局とスレーブ局との間のクロックオフセット算出処理におけるPDUのやり取りを示すシーケンス図である。
図4に示されるように、周期通信開始前では、マスタ局1からスレーブ局2に対して、リフレッシュ準備完了通知とオフセット計測指示を含むRefreshReady要求が出され(SQ11)、これに対する応答であるRefreshReady応答がスレーブ局2から出される(SQ12)。ここで、マスタ局1からRefreshReady要求が出されたときのタイムスタンプTm_snd、スレーブ局2でRefreshReady要求を受信したときのタイムスタンプTs_rcv、スレーブ局2でRefreshReady応答が出されたときのタイムスタンプTs_snd、およびマスタ局1でRefreshReady応答を受信したときのタイムスタンプTm_rcvが各ノードのタイムスタンプ生成部で生成される。
ついで、マスタ局1からクロックオフセットの算出を指示するRefreshGO要求が送信される(SQ13)。スレーブ局2は、RefreshGO要求を受信すると、取得したタイムスタンプTm_snd,Ts_rcv,Ts_snd,Tm_rcvを用いてクロックオフセットの算出処理を開始する。また、RefreshGO要求の受信を契機として、スレーブ局2では、周期通信が開始される。スレーブ局2は、RefreshGO要求に対する応答であるRefreshGO応答を送信し(SQ14)、マスタ局1では、RefreshGO応答の受信を契機として、周期通信が開始される。
その後、マスタ局1は、所定の時間経過後にRefresh要求を送信し(SQ15)、またスレーブ局2でも所定の時間経過後にRefresh要求を送信する(SQ16)。マスタ局1では、RefreshGO要求を送信してからつぎのRefresh要求を送信するまでの時間が周期T1となる。また、スレーブ局2では、RefreshGO応答を送信してからつぎのRefresh要求を送信するまでの時間が周期T2となる。
一方、図5に示されるように、周期通信中では、周期的にリフレッシュ処理を指示する要求/応答がマスタ局1およびスレーブ局2から出されている(SQ31〜SQ39)。また、周期通信が開始されてから所定の時間間隔で、マスタ局1は、クロックオフセットの測定とリフレッシュ処理とを指示するRefreshMO要求を送信し(SQ32)、スレーブ局2は、これに対する応答であるRefreshMO応答を送信する(SQ37)。ここで、マスタ局1からRefreshMO要求が出されたときのタイムスタンプTm_snd、スレーブ局2でRefreshMO要求を受信したときのタイムスタンプTs_rcv、スレーブ局2でRefreshMO応答が出されたときのタイムスタンプTs_snd、マスタ局1でRefreshMO応答を受信したときのタイムスタンプTm_rcvが各ノードのタイムスタンプ生成部によって生成される。
ついで、マスタ局1からクロックオフセットの算出とリフレッシュ処理とを指示するRefreshGO要求が送信される(SQ34)。スレーブ局2は、RefreshGO要求を受信すると、取得したタイムスタンプTm_snd,Ts_rcv,Ts_snd,Tm_rcvを用いてクロックオフセットの算出処理を行い、算出したクロックオフセットを新たなクロックオフセットとして更新する。また、スレーブ局2は、RefreshGO要求に対する応答であるRefreshGO応答を送信する(SQ39)。
このように、周期通信中では、マスタ局1でもスレーブ局2でも、Refresh要求が周期的に送信されるが、クロックオフセットの測定指示や算出指示、およびこれらの指示に対する応答は、Refresh要求とは別のタイミングで送信されるのではなく、Refresh要求に含めて送信される。
マスタ局1では、Refresh要求やRefreshGO要求、RefreshMO要求などのリフレッシュ処理の指示を含むリフレッシュ指示PDUを送信してからつぎのリフレッシュ指示PDUを送信するまでの時間が周期T1となる。同様に、スレーブ局2では、リフレッシュ指示PDU(Refresh要求/RefreshGO応答/RefreshMO応答)を送信してからつぎのリフレッシュ指示PDUを送信するまでの時間が周期T2となる。
図6は、マスタ局のクロックオフセット算出時の動作処理手順の一例を示すフローチャートであり、図7は、スレーブ局のクロックオフセット算出時の動作処理手順の一例を示すフローチャートである。これらのフローチャートでは、マスタ局1とスレーブ局2での初期化処理とリフレッシュ処理とを含めて示している。ここでは、処理の流れに合わせて、図6と図7とを交互に引用しながら処理の流れを説明する。
まず、マスタ局1のコネクション確立要求部141とスレーブ局2のコネクション確立応答部241は、マスタ局1とスレーブ局2との間のコネクション確立処理を行う(図6のステップS11、図7のステップS51)。コネクション確立処理では、マスタ局1のコネクション確立要求部141は、コネクション確立要求をスレーブ局2のコネクション確立応答部241へ送信し、スレーブ局2のコネクション確立応答部241からの応答を受信し、その後、マスタ遅延喪失検知手段14とスレーブ遅延喪失検知手段24で必要なパラメータの設定や確認を行う。
コネクション確立処理が完了すると、図6に示されるように、マスタ局1のフレーム処理部143は、タイムスタンプ生成部142から送信タイミングのタイムスタンプを受取り、スレーブ局2に対してリフレッシュの準備完了の通知とともに、クロックオフセットの計測を指示するRefreshReady要求を生成する。このとき、受取ったタイムスタンプをRefreshReady要求のTSに格納する。そして、フレーム送信部15は生成されたRefreshReady要求をスレーブ局2へと送信する(ステップS12)。これは、図4のシーケンスで、SQ11に相当し、オフセット算出の開始タイミングとなる。
ついで、図7に示されるように、スレーブ局2のフレーム処理部244は、フレーム受信部26でRefreshReady要求を受信すると、タイムスタンプ生成部243から受信タイミングのタイムスタンプを受取り、受取ったタイムスタンプを測定用PDUスレーブ受信時刻Ts_rcvとしてタイムスタンプ記憶部245に格納する。また、受信したRefreshReady要求のTS内の値を測定用PDUマスタ送信時刻Tm_sndとして、タイムスタンプ記憶部245に格納する(ステップS52)。
その後、スレーブ局2のフレーム処理部244は、受信したRefreshReady要求に対する応答として、RefreshReady要求のTSに格納されている値を、TSに格納したRefreshReady応答を生成する。そして、フレーム送信部25からRefreshReady応答を送信する。このとき、フレーム処理部244は、RefreshReady応答送信時のタイムスタンプ生成部243から受け取ったタイムスタンプを測定用PDUスレーブ送信時刻Ts_sndとして、タイムスタンプ記憶部245に格納する(ステップS53)。これは図4のシーケンスで、SQ12に相当する。
ついで、図6に示されるように、マスタ局1のフレーム受信部16は、RefreshReady応答を受信する。フレーム処理部143は、タイムスタンプ生成部142から受信タイミングのタイムスタンプを受取って、一時的に記憶し(ステップS13)、送信データ格納部12に周期通信で送信するデータ(以下、周期送信データという)が新たに存在するか判定する(ステップS14)。周期送信データが格納されていない場合(ステップS14でNoの場合)には、送信データ格納部12に周期送信データが格納されるまで待ち状態となる。そして、周期送信データが格納されると(ステップS14でYesの場合)、フレーム処理部143は、タイムスタンプ生成部142から送信タイミングのタイムスタンプを受け取り、受取ったタイムスタンプをTSに格納し、周期送信データをデータ部に格納し、ステップS13で一時的に記憶したRefreshReady応答の受信タイミングのタイムスタンプをOBLに格納したRefreshGO要求を作成する。そして、フレーム送信部15からRefreshGO要求をスレーブ局2へと送信する(ステップS15)。これは図4のシーケンスで、SQ13に相当する。
その後、図7に示されるように、スレーブ局2は、フレーム受信部26でRefreshGO要求を受信すると、フレーム処理部244は、RefreshGO要求のOBLに格納されているタイムスタンプを測定用PDUマスタ受信時刻Tm_rcvとしてタイムスタンプ記憶部245に格納する。ついで、クロックオフセット算出部246は、RefreshGO要求を受信したので、タイムスタンプ記憶部245に格納されているTm_snd,Ts_rcv,Ts_snd,Tm_rcvから上記(3)式を用いて、マスタ局1のクロック11に対するスレーブ局2のクロック21のクロックオフセットを算出する。クロックオフセット算出部246は、算出したクロックオフセットを、それまでクロックオフセット記憶部242に記憶されていたクロックオフセットの値に加算したものを新たなクロックオフセットとしてクロックオフセット記憶部242に記憶する(ステップS54)。なお、通信が開始される前のクロックオフセットは0であるものとする。
その後、スレーブ局2のフレーム処理部244は、送信データ格納部22に周期送信データが新たに格納されているかを判定する(ステップS55)。周期送信データが格納されていない場合(ステップS55でNoの場合)には、送信データ格納部22に周期送信データが格納されるまで待ち状態となる。そして、周期送信データが格納されると(ステップS55でYesの場合)、フレーム処理部244は、タイムスタンプ生成部243から送信タイミングのタイムスタンプを受取り、受取ったタイムスタンプをTSに格納し、周期送信データをデータ部に格納したRefreshGO応答を作成する。そして、フレーム送信部25からマスタ局1へとRefreshGO応答が送信される(ステップS56)。これは図4のシーケンスで、SQ14に相当する。
ついで、図6に示されるように、マスタ局1は、フレーム受信部16でRefreshGO応答を受信すると(ステップS16)、フレーム処理部143は、送信データ格納部12に周期送信データが新たに格納されているか判定する(ステップS17)。周期送信データが新たに格納されていない場合(ステップS17でNoの場合)には、送信データ格納部22に送信データが格納されるまで待ち状態となる。そして、周期送信データが新たに格納されると(ステップS17でYesの場合)、フレーム処理部143は、クロックオフセット算出のタイミングであるかを判定する(ステップS18)。クロックオフセット算出は、ステップS12で最初のクロックオフセット算出を開始した後、所定の時間間隔で実施されるので、クロック11を用いた計測によって、前回のクロックオフセット算出から所定の時間が経過しているかを判定することによって行われる。
クロックオフセット算出のタイミングでない場合(ステップS18でNoの場合)には、フレーム処理部143は、タイムスタンプ生成部142から送信タイミングのタイムスタンプを受け取り、受取ったタイムスタンプをTSに格納し、周期送信データをデータ部に格納したRefresh要求を作成し、フレーム送信部15からスレーブ局2へと送信する(ステップS19)。これは図4のシーケンスでSQ15と、図5のシーケンスでSQ31に相当する。そして、ステップS17へと処理が戻る。
一方、ステップS18で、クロックオフセット算出のタイミングであると判定された場合(ステップS18でYesの場合)には、フレーム処理部143は、タイムスタンプ生成部142から送信タイミングのタイムスタンプを受け取り、受取ったタイムスタンプをTSに格納し、送信データ格納部12に格納されている周期送信データをデータ部に格納したRefreshMO要求を作成し、フレーム送信部15からスレーブ局2へと送信する(ステップS20)。これは図5のシーケンスで、SQ32に相当する。
ついで、図7に示されるように、スレーブ局2は、フレーム受信部26でRefreshMO要求を受信したかを判定する(ステップS57)。RefreshMO要求を受信していない場合(ステップS57でNoの場合)には、フレーム処理部244は、送信データ格納部22に新たな周期送信データが格納されているかをさらに判定する(ステップS58)。周期送信データが格納されていない場合(ステップS58でNoの場合)には、ステップS57へと戻る。また、周期送信データが格納されている場合(ステップS58でYesの場合)には、フレーム処理部244は、タイムスタンプ生成部243から送信タイミングのタイムスタンプを受取り、受取ったタイムスタンプをTSに格納し、送信データ格納部22に格納されている周期送信データをデータ部に格納したRefresh要求を生成し、フレーム送信部25から送信し(ステップS59)、ステップS57へと処理が戻る。これは図4のシーケンスでSQ16、図5のシーケンスで、SQ36に相当する。
一方、ステップS57でRefreshMO要求を受信している場合(ステップS57でYesの場合)には、フレーム処理部244は、タイムスタンプ生成部243からRefreshMO要求の受信タイミングのタイムスタンプを受取り、受取ったタイムスタンプを測定用PDUスレーブ受信時刻Ts_rcvとして、タイムスタンプ記憶部245に格納する。また、RefreshMO要求のTS内の値を測定用PDUマスタ送信時刻Tm_sndとして、タイムスタンプ記憶部245に格納する(ステップS60)。その後、フレーム処理部244は、送信データ格納部22に新たな周期送信データが存在するか判定する(ステップS61)。周期送信データが格納されていない場合(ステップS61でNoの場合)には、送信データ格納部22に周期送信データが格納されるまで待ち状態となる。そして、周期送信データが格納されると(ステップS61でYesの場合)、フレーム処理部244は、タイムスタンプ生成部243から送信タイミングのタイムスタンプを受取り、受取ったタイムスタンプをTSに格納し、送信データ格納部22中の周期送信データをデータ部に格納したRefreshMO応答を作成し、フレーム送信部25からマスタ局1へと送信する。このとき、フレーム処理部244は、RefreshMO応答のTSに格納したタイムスタンプを測定用PDUスレーブ送信時刻Ts_sndとしてタイムスタンプ記憶部245に格納する(ステップS62)。これは図5のシーケンスで、SQ37に相当する。
ついで、図6に示されるように、マスタ局1は、フレーム受信部16でRefreshMO応答を受信したか判定する(ステップS21)。RefreshMO応答を受信していない場合(ステップS21でNoの場合)には、フレーム処理部143は、送信データ格納部22に新たな周期送信データが格納されているかをさらに判定する(ステップS22)。周期送信データが格納されていない場合(ステップS22でNoの場合)には、ステップS21へと戻る。また、周期送信データが格納されている場合(ステップS22でYesの場合)には、フレーム処理部143は、タイムスタンプ生成部142から送信タイミングのタイムスタンプを受け取り、受取ったタイムスタンプをTSに格納し、送信データ格納部22中の周期送信データをデータ部に格納したRefresh要求を作成し、フレーム送信部15からスレーブ局2へと送信し(ステップS23)、ステップS21へと処理が戻る。これは図5のシーケンスで、SQ33に相当する。
一方、ステップS21で、RefreshMO応答を受信している場合(ステップS21でYesの場合)には、フレーム処理部143は、タイムスタンプ生成部142からRefreshMO応答の受信タイミングのタイムスタンプTm_rcvを受取り、一時的に記憶した上で、送信データ格納部22に新たな周期送信データが格納されているかをさらに判定する(ステップS24)。周期送信データが新たに格納されていない場合(ステップS24でNoの場合)には、送信データ格納部12に送信データが格納されるまで待ち状態となる。そして、周期送信データが新たに格納されると(ステップS24でYesの場合)、フレーム処理部143は、タイムスタンプ生成部142から送信タイミングのタイムスタンプを受け取り、受取ったタイムスタンプをTSに格納し、送信データ格納部22中の周期送信データをデータ部に格納し、ステップS24で一時的に記憶したRefreshMO応答の受信タイミングのタイムスタンプTm_rcvをOBLに格納したRefreshGO要求を生成し、フレーム送信部15からスレーブ局2へと送信する(ステップS25)。これは図5のシーケンスで、SQ34に相当する。
ついで、図7に示されるように、スレーブ局2は、フレーム受信部26でRefreshGO要求を受信したか判定する(ステップS63)。RefreshGO要求を受信していない場合(ステップS63でNoの場合)には、フレーム処理部244は、送信データ格納部22に新たな周期送信データが格納されているか判定する(ステップS64)。周期送信データが格納されていない場合(ステップS64でNoの場合)には、ステップS63へと戻る。また、周期送信データが格納されている場合(ステップS64でYesの場合)には、フレーム処理部244は、タイムスタンプ生成部243から送信タイミングのタイムスタンプを受取り、受取ったタイムスタンプをTSに格納し、送信データ格納部22中の周期送信データをデータ部に格納したRefresh要求を生成し、フレーム送信部25から送信する(ステップS65)。これは図5のシーケンスで、SQ38に相当する。
一方、ステップS63でRefreshGO要求を受信している場合(ステップS63でYesの場合)には、フレーム処理部244は、受信したRefreshGO要求のOBLに格納されている値を測定用PDUマスタ受信時刻Tm_rcvとしてタイムスタンプ記憶部245に格納する。その後、クロックオフセット算出部246は、RefreshGO要求を受信したので、タイムスタンプ記憶部245に格納されているTm_snd,Ts_rcv,Ts_snd,Tm_rcvから上記(3)式を用いて、マスタ局1のクロック11に対するスレーブ局2のクロック21のクロックオフセットを算出する。そして、クロックオフセット算出部246は、算出したクロックオフセットをそれまでクロックオフセット記憶部242に記憶されていたクロックオフセットの値に加算し、これを新たなクロックオフセットとしてクロックオフセット記憶部242に記憶する(ステップS66)。
その後、スレーブ局2のフレーム処理部244は、周期送信データが送信データ格納部22に新たに格納されているかを判定する(ステップS67)。周期送信データが格納されていない場合(ステップS67でNoの場合)には、送信データ格納部22に周期送信データが格納されるまで待ち状態となる。そして、周期送信データが格納されると(ステップS67でYesの場合)、フレーム処理部244は、タイムスタンプ生成部243から送信タイミングのタイムスタンプを受取り、受取ったタイムスタンプをTSに格納し、送信データ格納部22中の周期送信データをデータ部に格納したRefreshGO応答を作成し、フレーム送信部25から送信する(ステップS68)。その後、ステップS57に戻る。これは図5のシーケンスで、SQ39に相当する。
ついで、図6に示されるように、マスタ局1は、フレーム受信部16でRefreshGO応答の受信を判定し(ステップS26)、RefreshGO応答を受信した場合(ステップS26でYesの場合)には、ステップS17へと戻り、上記した処理を繰り返し実行する。また、RefreshGO応答を受信していない場合(ステップS26でNoの場合)には、フレーム処理部143は、送信データ格納部12に周期送信データが新たに格納されているかを判定する(ステップS27)。周期送信データが格納されていない場合(ステップS27でNoの場合)には、ステップS26へと戻る。また、周期送信データが格納されている場合(ステップS27でYesの場合)には、フレーム処理部143は、タイムスタンプ生成部142から送信タイミングのタイムスタンプを受け取り、受取ったタイムスタンプをTSに格納し、送信データ格納部12中の周期送信データをデータ部に格納したRefresh要求を生成し、フレーム送信部15から生成したRefresh要求を送信し(ステップS28)、ステップS26へと処理が戻る。これは図5のシーケンスで、SQ35に相当する。
以上のようにして、マスタ局1とスレーブ局2との間での周期通信中にやり取りされるリフレッシュ処理の指示を含む周期通信フレームに、クロックオフセットの測定指示や算出指示、オフセット生成情報を含めることで、周期通信中にクロックオフセットの算出を行うことが可能となる。
つぎに、遅延検出処理について説明する。この実施の形態1では、遅延検出処理として、マスタ局1では、スレーブ局2から送信されるPDUを用いた片道遅延検出処理と、要求応答シーケンスでやり取りされるPDUを用いた往復遅延検出処理を行い、スレーブ局2では、片道遅延検出処理を行うようにしている。
図8は、実施の形態1による片道遅延検出処理の手順の一例を示すフローチャートである。最初にマスタ局1での片道遅延検出処理について説明する。スレーブ局2との間での周期通信の開始を契機に、マスタ局1の片道遅延検出部145は、クロック11を利用してタイマーを起動する(ステップS71)。なお、マスタ局1での周期通信の開始は、図4のSQ14のRefreshGO応答をスレーブ局2から受信したタイミングである。
ついで、フレーム受信部16でRefresh要求、RefreshMO応答またはRefreshGO応答を受信したかを判定し(ステップS72)、受信していない場合(ステップS72でNoの場合)には、タイマー起動から所定期間(第1遅延許容時間)r_intervalが経過したかを判定する(ステップS73)。所定期間が経過していない場合(ステップS73でNoの場合)には、ステップS72に戻る。また、所定期間が経過している場合(ステップS73でYesの場合)には、許容する遅延を超過したと判定する(ステップS77)。許容遅延超過と判定された場合には、コネクションを切断して通信が停止されるなどされ、処理が終了する。
一方、ステップS72でRefresh要求、RefreshMO応答またはRefreshGO応答のうちのいずれかを受信した場合(ステップS72でYesの場合)には、片道遅延検出部145は、Refresh要求、RefreshMO応答またはRefreshGO応答の受信タイミングのタイムスタンプをタイムスタンプ生成部142から受取り、タイムスタンプ記憶部144にそのタイムスタンプをPDU受信時刻T_rcvとして記憶する(ステップS74)。また、受信したRefresh要求、RefreshMO応答またはRefreshGO応答のTSに格納された値をPDU送信時刻T_sndとして、タイムスタンプ記憶部144に格納する(ステップS75)。
ついで、片道遅延検出部145は、ステップS74,S75でタイムスタンプ記憶部144に格納したPDU受信時刻T_rcvとPDU送信時刻T_sndとの差、すなわちリフレッシュ指示PDUがスレーブ局2から送信され、マスタ局1へと到達する時間が、予め設定された第2遅延許容時間d_allowedより小さいかを判定する(ステップS76)。
判定の結果、PDU受信時刻T_rcvとPDU送信時刻T_sndとの差が第2遅延許容時間d_allowed以上の場合(ステップS76でNoの場合)には、許容遅延超過と判定し(ステップS77)、処理が終了する。また、PDU受信時刻T_rcvとPDU送信時刻T_sndとの差が第2遅延許容時間d_allowedより小さい場合(ステップS76でYesの場合)には、許容遅延内と判定し(ステップS78)、タイマーを再起動し(ステップS79)、ステップS72へと戻る。以上のようにして、マスタ局1での片道遅延検出処理が行われる。
つぎに、スレーブ局2での片道遅延検出処理について説明する。スレーブ局2での片道遅延検出処理も基本的にマスタ局1での片道遅延検出処理と同様であるが、以下の点がマスタ局1の場合と異なる。ステップS71でタイマーを起動するタイミングである周期通信の開始は、図4のSQ43のRefreshGO要求をマスタ局1から受信したタイミングである。また、ステップS72では、Refresh要求、RefreshMO要求またはRefreshGO要求を受信したかを判定し、ステップS74では、受信したRefresh要求、RefreshMO要求またはRefreshGO要求の受信タイミングのタイムスタンプをタイムスタンプ生成部243から受取ってPDU受信時刻T_rcvとしてタイムスタンプ記憶部245に格納する。さらに、ステップS75では、受信したRefresh要求、RefreshMO要求またはRefreshGO要求のTSに格納された値をPDU送信時刻T_sndとしてタイムスタンプ記憶部245に格納する。
このように、片道遅延検出処理では、相手ノードによって送信された時刻のタイムスタンプが格納されたリフレッシュ処理の指示を含む周期通信フレームを用いて、片道での遅延検出処理を行うことができる。また、リフレッシュ処理の指示を含む周期通信フレームを受信するたびに遅延検出を行うので、遅延を速やかに検出することができる。
図9は、実施の形態1によるマスタ局での往復遅延検出処理の手順の一例を示すフローチャートである。まず、往復遅延検出部146は、フレーム送信部15から要求PDUを送信すると(ステップS91)、タイマーを起動する(ステップS92)。ついで、往復遅延検出部146は、要求PDUに対応する応答PDUを受信したか判定し(ステップS93)、応答PDUを受信している場合(ステップS93でYesの場合)には、タイマーを停止し(ステップS94)、許容遅延内と判定し(ステップS95)、処理が終了する。
また、ステップS93で応答PDUを受信していない場合(ステップS93でNoの場合)には、往復遅延検出部146は、タイマー開始から所定時間(往復遅延許可時間)rtt_allowedが経過しているかを判定し(ステップS96)、経過していない場合(ステップS96でNoの場合)には、ステップS93に戻る。一方、タイマー開始から所定時間が経過している場合(ステップS96でYesの場合)には、タイマーを停止し(ステップS97)、許容遅延超過であると判定する(ステップS98)。許容遅延超過であると判定された場合には、コネクションを切断して通信が停止される。以上によって、処理が終了する。
なお、ステップS93で往復遅延検出部146は、受信した応答PDUが、ステップS91で送信した要求PDUに対応する応答PDUであるかを確認する。具体的には、ステップS91で送信した要求PDUが、オフセット算出前に送信する要求PDU、RefreshReady要求、および周期通信以外の通信での要求PDUである場合には、ステップS91で送信した要求PDUのTSとステップS93で受信した応答PDUのTSとが一致するかを確認する。一致していれば、対応した応答であると判断する。また、ステップS91で送信した要求PDUが、RefreshMO要求およびRefreshGO要求である場合には、ステップS91で送信した要求PDUのCTRLに含まれるPDU関連付け情報が、ステップS93で受信した応答PDUのCTLRに含まれるPDU関連付け情報と一致するかを確認する。一致していれば、対応した応答であると判断する。
このように、マスタ局1が要求PDUをスレーブ局2に送信し、スレーブ局2が要求PDUに対する応答PDUをマスタ局1に送信するというシーケンスの場合に、往復遅延が許容遅延以内であるかどうかを検出することができる。また、周期通信時以外は往復遅延検出部146による往復遅延検出処理を行い、周期通信時は片道遅延検出部145による片道遅延検出処理を行うように、通信の種類によって遅延検出処理を切り替えることで、ネットワークでの通信のあらゆる場面で遅延検出を行うことができる。
つぎに、PDU喪失検出処理について説明する。図10は、実施の形態1によるPDU喪失検出処理の手順の一例を示すフローチャートである。最初にマスタ局1でのPDU喪失検出処理について説明する。フレーム受信部16で、RefreshReady応答を受信すると(ステップS111)、喪失検出部147は、受信したRefreshReady応答のTSに格納された値を前回PDU送信時刻T_psndとして、タイムスタンプ記憶部144に記憶する(ステップS112)。ついで、喪失検出部147は、Refresh要求、RefreshMO応答またはRefreshGO応答を受信したか判定する(ステップS113)。受信していない場合(ステップS113でNoの場合)には、Refresh要求、RefreshMO応答またはRefreshGO応答を受信するまで待ち状態となる。
また、Refresh要求、RefreshMO応答またはRefreshGO応答を受信している場合(ステップS113でYesの場合)には、受信したRefresh要求、RefreshMO応答またはRefreshGO応答のTSに格納された値を今回PDU送信時刻T_nsndとして、タイムスタンプ記憶部144に記憶する(ステップS114)。その後、タイムスタンプ記憶部144に記憶した今回PDU送信時刻T_nsndと前回PDU送信時刻T_psndの差が、許容受信間隔を意味する喪失評価時間trns_interval未満であるかを判定する(ステップS115)。
判定の結果、今回PDU送信時刻T_nsndと前回PDU送信時刻T_psndの差が、喪失評価時間trns_interval以上である場合(ステップS115でNoの場合)には、PDUの喪失があると判定する(ステップS116)。そして、コネクションを切断して通信が停止されるなどの処理が行われ、処理が終了する。また、今回PDU送信時刻T_nsndと前回PDU送信時刻T_psndの差が、喪失評価時間trns_interval未満である場合(ステップS115でYesの場合)には、PDUの喪失がないと判定し(ステップS117)、ステップS114でタイムスタンプ記憶部144に記憶した今回PDU送信時刻T_nsndを、新たな前回PDU送信時刻T_psndとして保持する(ステップS118)。その後、ステップS113に戻り、上述した処理を繰返し実行する。
つぎに、スレーブ局2での喪失検出処理について説明する。スレーブ局2での喪失検出処理も基本的にマスタ局1での喪失検出処理と同様であるが、ステップS111で、RefreshReady要求を受信する点と、ステップS113で、Refresh要求、RefreshMO要求またはRefreshGO要求を受信したか判定する点が、マスタ局1の場合とは異なる。
このようにして、PDU喪失検出処理では、相手ノードによって送信された時刻のタイムスタンプが格納されたリフレッシュ処理の指示を含む周期通信フレームを用いて、PDU喪失検出処理を行うことができる。また、リフレッシュ処理の指示を含む周期通信フレームを受信するたびにPDU喪失検出処理を行うので、PDU喪失を速やかに検出することができる。
以上の遅延検出処理とPDU喪失検出処理において、マスタ局1の片道遅延検出部145、往復遅延検出部146が許容遅延内と判断し、喪失検出部147がPDUの喪失なしと判断した場合には、スレーブ局2から受信したRefresh要求、RefreshMO応答、RefreshGO応答のデータ部に格納されたデータは、受信データ格納部13に格納される。
また、スレーブ局2の片道遅延検出部247が許容遅延内と判断し、喪失検出部248がPDUの喪失なしと判断した場合には、マスタ局1から受信したRefresh要求、RefreshMO要求、RefreshGO要求のデータ部に格納されたデータは、受信データ格納部23に格納される。
つぎに、マスタ局1とスレーブ局2のフレーム送信部15,25の送信間隔にばらつきがある場合の片道遅延検出部145,247の動作について説明する。送信間隔にばらつきがあり、周期通信で送信された3つのPDU(第1〜第3のPDU、たとえば図5のSQ31〜SQ33で送信されるPDU)のうち第2のPDUが喪失した場合を考える。この場合、第3のPDUの受信時に片道遅延検出部145,247が図10のS115で行うPDUが喪失したかの評価で、第3のPDUのTSに格納されているT_nsndと第1のPDUのTSに格納されていたT_psndとの差が、PDU喪失検出処理での喪失評価時間trns_intervalよりも小さくならないようにする。そのために、送信間隔が喪失評価時間trns_intervalの1/2よりも大きくなるように、マスタ局1とスレーブ局2の片道遅延検出部145,247は以下に示す動作を行う。
マスタ局1の片道遅延検出部145は、図6でRefresh要求、RefreshMO要求、RefreshGO要求(リフレッシュ処理の指示を含むリフレッシュ指示フレーム)を送信するステップ(S15,S19,S20,S23,S25,S28)で、リフレッシュ指示フレームを送信後に、送信したリフレッシュ指示フレームのTSに格納したタイムスタンプを最終送信タイミングとして保持しておく。そして、つぎにリフレッシュ指示フレームを送信する際に、最終送信タイミングと今回送信するタイミングとの差が、喪失評価時間trns_intervalの1/2を超えるまで待ち、喪失評価時間の1/2を超えたところで、フレーム送信部15から送信する。
また、スレーブ局2の片道遅延検出部247は、図7でRefresh要求、RefreshMO応答、RefreshGO応答(リフレッシュ指示フレーム)を送信するステップ(S56,S59,S62,S65,S68)で、リフレッシュ指示フレームを送信後に、送信したリフレッシュ指示フレームのTSに格納したタイムスタンプを最終送信タイミングとして保持しておく。そして、つぎにリフレッシュ指示フレームを送信する際に、最終送信タイミングと今回送信するタイミングとの差が、喪失評価時間trns_intervalの1/2を超えるまで待って、フレーム送信部25から送信する。
この実施の形態1によれば、周期通信中に2つのノード間でやり取りされるPDUに、送信するデータを格納する領域と、遅延/喪失の検出に使用されるタイムスタンプを格納する領域に加えて、クロックオフセットを算出するための情報を格納する領域を設け、遅延/喪失の検出に使用されるタイムスタンプと、オフセットを算出するための情報を基に、2つのノード間のクロックオフセットを算出するようにした。これによって、クロックオフセット算出のために新たなPDUを周期通信中にやり取りされるPDUのほかに送信する必要がなく、かつPDUのサイズも変わらないため、シーケンス制御を行うプログラマブルコントローラのように所定の処理周期で動作する装置に適用すると、定期データ処理に影響を与えないようにすることができるという効果を有する。
また、周期通信時以外は往復での遅延測定を行い、周期通信時は片道での遅延測定を行うように遅延測定方法を切替えるようにした。これによって、シーケンス制御を行うプログラマブルコントローラシステムのように所定の処理周期でセンサやアクチュエータといった入出力機器からの入出力情報を送受信しているシステムに適用すると、入出力情報の遅延および喪失を検知するまでの時間を短縮することができる。
さらに、周期通信データの生成間隔にばらつきがある場合でも、送信側では前回の送信タイミングから、受信側で喪失判定に使用する喪失評価時間の1/2を経過した後に送信するようにしているため、受信側では喪失が生じているのにもかかわらず、喪失ではないと判定することを防止し、確実に喪失を検出することができる。
実施の形態2.
実施の形態1では、PDUのTSに格納される時刻情報のサイズについては触れなかったが、実施の形態2では、任意のサイズとする場合について説明する。
実施の形態2では、マスタ局1とスレーブ局2が持つクロック11,21がいずれも48ビット幅のクロックであり、PDUのTSのサイズが16ビットに制限されている場合を例に挙げる。
この実施の形態2のマスタ局1のタイムスタンプ生成部142は、クロック11で生成された時刻情報のうち下位16ビットをタイムスタンプとして生成する。また、スレーブ局2のタイムスタンプ生成部243は、クロック21とクロックオフセット記憶部242が保持するタイムオフセットの和を算出し、算出値の下位16ビットをタイムスタンプとして生成する。
以下に、実施の形態2でのクロックオフセット算出処理、片道遅延検出処理およびPDU喪失検出処理で、実施の形態1と異なる部分について説明を行う。
<マスタ局1によるコネクション確立処理>
図6のステップS11のコネクション確立要求処理時に、マスタ局1のフレーム処理部143は、クロック11の上位32ビットの値を格納した通信フレームを生成し、フレーム送信部15からスレーブ局2に送信する。また、クロック11の上位32ビットの値を、クロック上位ビット情報up_clk_s_d,up_clk_s_lとしてタイムスタンプ記憶部144に記憶する。
<スレーブ局2によるコネクション確立処理>
図7のステップS51のコネクション確立要求処理時に、スレーブ局2のフレーム処理部244は、マスタ局1から受信したクロック11の上位32ビットの値を、タイムスタンプ記憶部245に記憶する処理も行う。このとき、フレーム処理部244は、クロック11の上位32ビットの値を、応答PDU送信時刻生成用上位ビット情報up_clk、要求PDU送信時刻生成用上位ビット情報up_clk_d_s、要求PDU受信時刻生成用上位ビット情報up_clk_d_r、喪失検出PDU時刻生成用上位ビット情報up_clk_lとして記憶する。要求PDU送信時刻生成用上位ビット情報up_clk_d_sは、PDU送信時刻T_sndに関連付けされて記憶され、要求PDU受信時刻生成用上位ビット情報up_clk_d_rは、PDU受信時刻T_rcvに関連付けされて記憶され、喪失検出PDU時刻生成用上位ビット情報up_clk_lは、前回PDU送信時刻T_psndと今回PDU送信時刻T_nsndに関連付けされて記憶される。
<マスタ局1によるチェックコード生成処理>
図6のステップS15,S19,S20,S23,S25,S28でのRefresh要求、RefreshMO要求、RefreshGO要求を送信するステップで、マスタ局1のフレーム処理部143は、送信するPDUのトレイラ部に、クロック11で生成された時刻情報の上位32ビット、ヘッダ部およびデータ部から生成したチェックコードを格納する処理も行う。
<スレーブ局2によるPDU送信時のチェックコード設定処理>
図7のステップS55、S59,S62,S65,S68でのRefresh要求、RefreshMO応答、RefreshGO応答を送信するステップで、スレーブ局2のフレーム処理部244は、送信するPDUのトレイラ部に、クロック11で生成された時刻情報の上位32ビット、ヘッダ部およびデータ部から生成したチェックコードを格納する処理も行う。
図11は、実施の形態2によるスレーブ局のPDU送信時のチェックコード設定処理の手順の一例を示すフローチャートである。まず、Refresh要求、RefreshMO応答またはRefreshGO応答を前回送信したタイミングである前回PDU送信時刻T_psndが、今回要求を送信するタイミングであるPDU送信時刻T_sndよりも大きいかを判定する(ステップS131)。前回PDU送信時刻T_psndがPDU送信時刻T_snd以下の場合(ステップS131でNoの場合)には、タイムスタンプ記憶部245から取得した応答PDU送信時刻生成用上位ビット情報up_clkを応答送信用上位ビットに設定する(ステップS132)。一方、前回PDU送信時刻T_psndがPDU送信時刻T_sndよりも大きい場合(ステップS131でYesの場合)には、タイムスタンプ記憶部245から取得した応答PDU送信時刻生成用上位ビット情報up_clkを1インクリメントしたものを応答送信用上位ビットに設定する(ステップS133)。また、ステップS133で得られた1インクリメントした応答PDU送信時刻生成用上位ビット情報up_clk+1を、新たな応答PDU送信時刻生成用上位ビット情報up_clkとして、タイムスタンプ記憶部245に記憶する。
ついで、フレーム処理部244は、設定した応答送信用上位ビット、送信するPDUのヘッダ部およびデータ部からチェックコードを生成し、生成したチェックコードを送信するPDUのトレイラ部に格納する(ステップS134)。PDUを送信した後(ステップS135)、フレーム処理部244は、今回送信するPDUのPDU送信時刻T_sndをT_psndとしてタイムスタンプ記憶部245に保持し(ステップS135)、処理が終了する。
<片道遅延検出処理>
図12は、実施の形態2による片道遅延検出処理の手順の一例を示すフローチャートである。以下では、最初にマスタ局1による片道遅延検出処理を説明した後、スレーブ局2による片道遅延検出処理について説明する。
(マスタ局1による片道遅延検出処理)
まず、マスタ局1の片道遅延検出部145は、タイムスタンプ生成部142で現在生成されたタイムスタンプを受け取り、受け取ったタイムスタンプを前回PDU受信時刻T_prcvとしてタイムスタンプ記憶部144に記憶する(ステップS151)。ついで、周期通信の開始を契機として、片道遅延検出部145は、クロック11を利用してタイマーを起動する(ステップS152)。なお、マスタ局1での周期通信の開始は、図4のSQ14のRefreshGO応答をスレーブ局2から受信したタイミングである。
ついで、フレーム受信部16でRefresh要求、RefreshMO応答またはRefreshGO応答を受信したかを判定し(ステップS153)、受信していない場合(ステップS153でNoの場合)には、タイマー起動から所定期間(第1遅延許容時間)r_intervalが経過したかを判定する(ステップS154)。所定期間が経過していない場合(ステップS154でNoの場合)には、ステップS153に戻る。また、ステップS154で所定期間が経過している場合(ステップS154でYesの場合)には、許容する遅延を超過したと判定し(ステップS159)、コネクションを切断するなどの処理を行って、処理が終了する。
一方、ステップS153でRefresh要求、RefreshMO応答またはRefreshGO応答のうちのいずれかを受信した場合(ステップS153でYesの場合)には、片道遅延検出部145は、Refresh要求、RefreshMO応答またはRefreshGO応答の受信タイミングのタイムスタンプをタイムスタンプ生成部142から受取り、タイムスタンプ記憶部144にそのタイムスタンプをPDU受信時刻T_rcvとして記憶する(ステップS155)。また、受信したRefresh要求、RefreshMO応答またはRefreshGO応答のTSに格納された値をPDU送信時刻T_sndとして、タイムスタンプ記憶部144に格納する(ステップS156)。
ついで、片道遅延検出部145は、48ビットPDU送信時刻T_snd_48と48ビットPDU受信時刻T_rcv_48を生成する(ステップS157)。図13は、マスタ局による48ビットPDU送信時刻と48ビットPDU受信時刻の生成処理の手順の一例を示すフローチャートである。
まず、マスタ局1の片道遅延検出部145は、クロック11の上位32ビットをクロック上位ビット情報up_clk_s_dとする(ステップS171)。ついで、上位32ビットをクロック上位ビット情報up_clk_s_dとし、下位16ビットをPDU受信時刻T_rcvとする48ビットPDU受信時刻T_rcv_48を生成する(ステップS172)。
その後、PDU送信時刻T_sndがPDU受信時刻T_rcvよりも大きいかを判定する(ステップS173)。PDU送信時刻T_sndがPDU受信時刻T_rcv以下である場合(ステップS173でNoの場合)には、クロック上位ビット情報up_clk_s_dを時刻算出用上位ビットに設定する(ステップS174)。一方、PDU送信時刻T_sndがPDU受信時刻T_rcvよりも大きい場合(ステップS173でYesの場合)には、クロック上位ビット情報up_clk_sを1デクリメントしたものを時刻算出用上位ビットに設定する(ステップS175)。
ついで、片道遅延検出部145は、上位32ビットをステップS174またはS175で設定した時刻算出用上位ビットとし、下位16ビットをPDU送信時刻T_sndとする48ビットPDU送信時刻T_snd_48を生成する(ステップS176)。その後、片道遅延検出部145は、設定した時刻算出用上位ビット、受信したPDUのヘッダ部およびデータ部からチェックコードを算出し(ステップS177)、算出したチェックコードは受信したPDUのトレイラ部に格納されている値と等しいかを判定する(ステップS178)。両者が一致しない場合(ステップS178の場合)には、異常が発生したと判定して処理が終了する。また、両者が等しい場合(ステップS178でYesの場合)には、図12の処理に戻る。
図12に戻り、片道遅延検出部145は、48ビットPDU受信時刻T_rcv_48と48ビットPDU送信時刻T_snd_48の差が第2遅延許容時間d_allowedより小さいかを判定する(ステップS158)。判定の結果、48ビットPDU受信時刻T_rcv_48と48ビットPDU送信時刻T_snd_48との差が第2遅延許容時間d_allowed以上の場合(ステップS158でNoの場合)には、許容遅延超過と判定し(ステップS159)、コネクションの切断処理などがなされ、処理が終了する。また、48ビットPDU受信時刻T_rcv_48と48ビットPDU送信時刻T_snd_48との差が第2遅延許容時間d_allowedより小さい場合(ステップS158でYesの場合)には、許容遅延内と判定する(ステップS160)。その後、タイムスタンプ記憶部144に記憶されたPDU受信時刻T_rcvを、前回PDU受信時刻T_prcvとしてタイムスタンプ記憶部144に記憶し(ステップS161)、タイマーを再起動し(ステップS162)、ステップS153へと戻る。以上のようにして、マスタ局1での片道遅延検出処理が行われる。
(スレーブ局2による片道遅延検出処理)
スレーブ局2での片道遅延検出処理は基本的にマスタ局1での片道遅延検出処理と同様であるが、以下にマスタ局1の場合と異なる点について説明する。図12のステップS152でのタイマーを起動するタイミングである周期通信の開始は、図4のSQ43のRefreshGO要求をマスタ局1から受信したタイミングである。また、ステップS153では、Refresh要求、RefreshMO要求またはRefreshGO要求を受信したか判定し、ステップS155では、受信したRefresh要求、RefreshMO要求またはRefreshGO要求の受信タイミングのタイムスタンプをタイムスタンプ生成部243から受取って、PDU受信時刻T_rcvとしてタイムスタンプ記憶部245に格納する。さらに、ステップS156では、受信したRefresh要求、RefreshMO要求またはRefreshGO要求のTSに格納された値をPDU送信時刻T_sndとしてタイムスタンプ記憶部245に格納する。
また、ステップS158での48ビットPDU送信時刻T_snd_48と48ビットPDU受信時刻T_rcv_48の生成処理もマスタ局1の場合と異なる。図14は、スレーブ局による48ビットPDU送信時刻と48ビットPDU受信時刻の生成処理の手順の一例を示すフローチャートである。
まず、スレーブ局2の片道遅延検出部247は、タイムスタンプ記憶部245から喪失検出部248で使用される前回PDU送信時刻T_psndを取得する(ステップS191)。ついで、ステップS156で取得した、受信したRefresh要求、RefreshMO要求またはRefreshGO要求のTSに格納されたPDU送信時刻T_sndが、ステップS191で取得した前回PDU送信時刻T_psndよりも小さいかを判定する(ステップS192)。PDU送信時刻T_sndが前回PDU送信時刻T_psnd以上である場合(ステップS192でNoの場合)には、タイムスタンプ記憶部245から取得した要求PDU送信時刻生成用上位ビット情報up_clk_d_sを送信時刻用上位ビットに設定する(ステップS193)。一方、PDU送信時刻T_sndが前回PDU送信時刻T_psndよりも小さい場合(ステップS192でYesの場合)には、タイムスタンプ記憶部245から取得した要求PDU送信時刻生成用上位ビット情報up_clk_d_sを1インクリメントしたものを送信時刻用上位ビットに設定する(ステップS194)。また、ステップS194で得られたup_clk_d_s+1を、新たな要求PDU送信時刻生成用上位ビット情報up_clk_d_sとしてタイムスタンプ記憶部245に記憶する。
その後、片道遅延検出部247は、上位32ビットをステップS193またはS194で設定した送信時刻用上位ビットとし、下位16ビットをPDU送信時刻T_sndとする48ビットPDU送信時刻T_snd_48を生成する(ステップS195)。
ついで、片道遅延検出部247は、図12のステップS155で取得したPDU受信時刻T_rcvがステップS151で取得した前回PDU受信時刻T_prcvよりも小さいか判定する(ステップS196)。判定の結果、PDU受信時刻T_rcvが前回PDU受信時刻T_prcv以上である場合(ステップS196でNoの場合)には、タイムスタンプ記憶部245から取得した要求PDU受信時刻生成用上位ビット情報up_clk_d_rを受信時刻用上位ビットに設定する(ステップS197)。一方、PDU受信時刻T_rcvが前回PDU受信時刻T_prcvよりも小さい場合(ステップS196でYesの場合)には、タイムスタンプ記憶部245から取得した要求PDU受信時刻生成用上位ビット情報up_clk_d_rを1インクリメントしたものを受信時刻用上位ビットに設定する(ステップS198)。また、ステップS198で得られたup_clk_d_r+1を、新たな要求PDU受信時刻生成用上位ビット情報up_clk_d_rとしてタイムスタンプ記憶部245に記憶する。
その後、片道遅延検出部247は、上位32ビットをステップS197またはS198で設定した受信時刻用上位ビットとし、下位16ビットをPDU受信時刻T_rcvとする48ビットPDU受信時刻T_rcv_48を生成する(ステップS199)。
ついで、ステップS193またはS194で設定した送信時刻用上位ビット、受信したPDUのヘッダ部およびデータ部からチェックコードを算出し(ステップS200)、算出したチェックコードは受信したPDUのトレイラ部に格納されている値と等しいかを判定する(ステップS201)。両者が一致しない場合(ステップS201の場合)には、異常が発生したと判定して処理が終了する。また、両者が等しい場合(ステップS201でYesの場合)には、図12の処理に戻る。
<喪失検出処理>
図15は、実施の形態2による喪失検出処理の手順の一例を示すフローチャートである。以下では、最初にマスタ局1による喪失検出処理を説明した後、スレーブ局2による喪失検出処理について説明する。
(マスタ局1による喪失検出処理)
マスタ局1の喪失検出部147は、RefreshReady応答を受信すると(ステップS221)、受信したRefreshReady応答のTSに格納されている値を前回PDU受信時刻T_psndとしてタイムスタンプ記憶部144に格納する(ステップS222)。その後、Refresh要求、RefreshMO応答またはRefreshGO応答のうちのいずれかを受信したか判定する(ステップS223)。受信していない場合(ステップS223でNoの場合)には、Refresh要求、RefreshMO応答またはRefreshGO応答を受信するまで待ち状態となる。
また、Refresh要求、RefreshMO応答またはRefreshGO応答を受信している場合(ステップS223でYesの場合)には、受信したRefresh要求、RefreshMO応答またはRefreshGO応答のTSに格納された値を今回PDU送信時刻T_sndとして、タイムスタンプ記憶部144に格納し、Refresh要求、RefreshMO応答またはRefreshGO応答の受信時刻をフレーム受信時刻T_rcvとして格納する(ステップS224)。
ついで、喪失検出部147は、48ビット前回PDU送信時刻T_psnd_48と48ビット今回PDU送信時刻T_nsnd_48を生成する(ステップS225)。図16は、マスタ局による48ビットPDU送信時刻と48ビットPDU受信時刻の生成処理の手順の一例を示すフローチャートである。
まず、マスタ局1の喪失検出部147は、クロック11の上位32ビットをクロック上位ビット情報up_clk_s_lとする(ステップS241)。ついで、ステップS224で取得した今回PDU送信時刻T_nsndが、ステップS2243で受信したRefresh要求、RefreshMO応答またはRefreshGO応答のフレーム受信時刻T_rcvよりも大きいかを判定する(ステップS242)。今回PDU送信時刻T_nsndがフレーム受信時刻T_rcv以下である場合(ステップS242でNoの場合)には、クロック上位ビット情報up_clk_s_lを第1喪失検出用上位ビットに設定する(ステップS243)。一方、今回PDU送信時刻T_nsndがフレーム受信時刻T_rcvよりも大きい場合(ステップS242でYesの場合)には、クロック上位ビット情報up_clk_s_lを1デクリメントしたものを第1喪失検出用上位ビットに設定する(ステップS244)。
ついで、喪失検出部147は、上位32ビットをステップS243またはS244で設定した第1喪失検出用上位ビットとし、下位16ビットを今回PDU送信時刻T_nsndとする48ビット今回PDU送信時刻T_nsnd_48を生成する(ステップS245)。
ついで、前回PDU送信時刻T_psndが今回PDU送信時刻T_nsndよりも大きいかを判定する(ステップS246)。前回PDU送信時刻T_psndが今回PDU送信時刻T_nsnd以下である場合(ステップS246でNoの場合)には、ステップS241で取得したクロック上位ビット情報up_clk_s_lを第2喪失検出用上位ビットに設定する(ステップS247)。一方、前回PDU送信時刻T_psndが今回PDU送信時刻T_nsndよりも大きい場合(ステップS246でYesの場合)には、ステップS241で取得したクロック上位ビット情報up_clk_s_lを1デクリメントしたものを第2喪失検出用上位ビットに設定する(ステップS248)。
その後、喪失検出部147は、上位32ビットをステップS247またはS248で設定した第2喪失検出用上位ビットとし、下位16ビットを前回PDU送信時刻T_psndとする48ビット前回PDU送信時刻T_psnd_48を生成する(ステップS249)。
ついで、喪失検出部147は、ステップS243またはS244で設定した第1喪失検出上位ビット、受信したPDUのヘッダ部およびデータ部からチェックコードを生成し(ステップS250)、算出したチェックコードは受信したPDUのトレイラ部に格納されている値と等しいかを判定する(ステップS251)。両者が一致しない場合(ステップS251の場合)には、異常が発生したと判定して処理が終了し、両者が等しい場合(ステップS251でYesの場合)には、図15の処理に戻る。
図15に戻り、喪失検出部147は、48ビット今回PDU送信時刻T_nsnd_48と48ビット前回PDU送信時刻T_psnd_48との差が、喪失評価時間trns_interval未満であるかを判定する(ステップS226)。判定の結果、上記条件を満たしていない場合(ステップS226でNoの場合)には、喪失ありと判定し(ステップS227)、コネクションを切断するなどの処理を行って、処理が終了する。また、上記条件を満たしている場合(ステップS226でYesの場合)には、喪失なしと判定する(ステップS228)。そして、今回PDU送信時刻T_nsndを、前回PDU送信時刻T_psndとして、タイムスタンプ記憶部144に記憶し(ステップS229)、ステップS223へと処理が戻る。
(スレーブ局2による喪失検出処理)
スレーブ局2での喪失検出処理も基本的にマスタ局1での喪失検出処理と同様であるが、以下にマスタ局1の場合と異なる点について説明する。ステップS221では、RefreshReady要求を受信し、ステップS223では、Refresh要求、RefreshMO要求またはRefreshGO要求を受信したか判定する。
また、ステップS225での48ビット今回PDU送信時刻T_nsnd_48と48ビット前回PDU送信時刻T_psnd_48の生成処理もマスタ局1の場合とは異なる。図17は、スレーブ局による48ビットPDU送信時刻と48ビットPDU受信時刻の生成処理の手順の一例を示すフローチャートである。
まず、スレーブ局2の喪失検出部248は、タイムスタンプ記憶部245から喪失検出PDU時刻生成用上位ビット情報up_clk_lを取得する(ステップS261)。ついで、上位32ビットを喪失検出PDU時刻生成用上位ビット情報とし、下位16ビットを前回PDU送信時刻T_psndとする48ビット前回PDU送信時刻T_psnd_48を生成する(ステップS262)。
その後、前回PDU送信時刻T_psndが今回PDU送信時刻T_nsndよりも大きいかを判定する(ステップS263)。前回PDU送信時刻T_psndが今回PDU送信時刻T_nsnd以下である場合(ステップS263でNoの場合)には、喪失検出PDU時刻生成用上位ビット情報up_clk_lを喪失検出用上位ビットに設定する(ステップS264)。一方、前回PDU送信時刻T_psndが今回PDU送信時刻T_nsndよりも大きい場合(ステップS263でYesの場合)には、喪失検出PDU時刻生成用上位ビット情報up_clk_lを1インクリメントしたものを喪失検出用上位ビットに設定する(ステップS265)。また、ステップS265で得られたup_clk_l+1を、新たな喪失検出PDU時刻生成用上位ビット情報up_clk_lとしてタイムスタンプ記憶部245に記憶する。
ついで、喪失検出部248は、上位32ビットをステップS264またはS265で設定した喪失検出用上位ビットとし、下位16ビットを今回PDU送信時刻T_nsndとする48ビット今回PDU送信時刻T_nsnd_48を生成する(ステップS266)。その後、喪失検出部248は、設定した喪失検出用上位ビット、受信したPDUのヘッダ部およびデータ部からチェックコードを算出し(ステップS267)、算出したチェックコードは受信したPDUのトレイラ部に格納されている値と等しいかを判定する(ステップS277)。両者が一致しない場合(ステップS277の場合)には、異常が発生したと判定して処理が終了する。また、両者が等しい場合(ステップS277でYesの場合)には、図12の処理に戻る。
なお、上記の例では、クロックが48ビット幅であり、PDUのTSに16ビットしか格納できない場合を示したが、クロックのビット幅は他の値でもよいし、PDUのTSに格納されるビット数も他の値でもよい。
この実施の形態2によれば、PDUのタイムスタンプを格納するTSやOBLには、その領域に入るサイズの下位ビットを格納し、クロックの上位ビットは、基準とするクロック11を持つマスタ局1がコネクション確立時にスレーブ局2へと通知するようにした。これによって、PDUのTSのサイズがクロック幅未満に制限されている場合でも、マスタ局1とスレーブ局2との間で、遅延/喪失検出およびクロックオフセットの算出処理を行うことができるという効果を有する。また、ノードが持つクロックの一部をPDUに含めるだけでよいため、PDUのサイズを削減することができるという効果も有する。
以上のように、この発明にかかる通信装置は、周期的にデータを送受信するシステムで使用される通信装置に有用である。
1 ノード、マスタ局
2 ノード、スレーブ局
3 伝送路
11,21 クロック
12,22 送信データ格納部
13,23 受信データ格納部
14 マスタ遅延喪失検知手段
15,25 フレーム送信部
16,26 フレーム受信部
24 スレーブ遅延喪失検知手段
141 コネクション確立要求部
142,243 タイムスタンプ生成部
143,244 フレーム処理部
144,245 タイムスタンプ記憶部
145,247 片道遅延検出部
146 往復遅延検出部
147,248 喪失検出部
241 コネクション確立応答部
242 クロックオフセット記憶部
246 クロックオフセット算出部

Claims (23)

  1. 伝送路を介して接続された他の通信装置との間で周期通信を行う通信装置において、
    時間を計測するクロックと、
    通信フレームを送受信する通信手段と、
    自通信装置で送受信される前記通信フレームの送信時または受信時に、前記クロックを用いてタイムスタンプを生成するタイムスタンプ生成手段と、
    周期的に送信される前記通信フレーム中に格納する周期送信データを格納する送信データ格納手段と、
    周期的に受信する前記通信フレーム中の周期送信データを格納する受信データ格納手段と、
    前記他の通信装置に対してデータのリフレッシュ指示、前記送信データ格納手段中の前記周期送信データ、および前記タイムスタンプ生成手段から取得した送信タイミングのタイムスタンプであるフレーム送信時刻を含むリフレッシュ指示フレームを生成し、前記他の通信装置からのリフレッシュ指示フレームを受信すると、該リフレッシュ指示フレームに含まれる周期送信データを前記受信データ格納手段に格納するフレーム処理手段と、
    前記リフレッシュ指示フレームを受信すると前回の前記リフレッシュ指示フレームを受信してから第1遅延許容時間内につぎのリフレッシュ指示フレームを受信したか、また前記第1遅延許容時間内に前記つぎのリフレッシュ指示フレームを受信した場合に、該リフレッシュ指示フレームの前記他の通信装置から自通信装置までの伝送時間が第2遅延許容時間内であるかによって、前記他の通信装置から送信される通信フレームに遅延が生じているかを判定する片道遅延検出手段と、
    を備えることを特徴とする通信装置。
  2. 前記片道遅延検出手段は、前記伝送時間として、前記リフレッシュ指示フレームの受信時に前記タイムスタンプ生成手段から取得したフレーム受信時刻と、前記リフレッシュ指示フレーム内に格納されている前記フレーム送信時刻との差を用いることを特徴とする請求項1に記載の通信装置。
  3. 周期通信時以外に前記他の通信装置に要求フレームを送信し、前記要求フレームを送信してから往復遅延許可時間内に前記要求フレームに対応する応答フレームを受信しない場合に遅延が発生していると判定する往復遅延検出手段を、さらに備えることを特徴とする請求項1または2に記載の通信装置。
  4. 前記リフレッシュ指示フレームを受信すると、前記タイムスタンプ生成手段から今回フレーム受信時刻を取得し、前記今回フレーム受信時刻と、前回の前記リフレッシュ指示フレーム受信時に前記タイムスタンプ生成手段から取得した前回フレーム受信時刻との差を、通信フレームの喪失を示す喪失評価時間と比較して、前記通信フレームの喪失を判定する喪失検出手段をさらに備えることを特徴とする請求項1〜3のいずれか1つに記載の通信装置。
  5. 前記喪失検出手段は、送信する通信フレームのフレーム送信時刻を記憶し、
    前記通信手段は、前記リフレッシュ指示フレームを送信する場合に、前回の前記フレーム送信時刻から、前記喪失評価時間の1/2が経過した後につぎのリフレッシュ指示フレームを送信することを特徴とする請求項4に記載の通信装置。
  6. 前記フレーム処理部は、周期通信の開始から所定の間隔で、前記リフレッシュ指示フレームにクロックオフセットの計測指示を含めて送信し、
    前記計測指示を含む前記リフレッシュ指示フレームに対する応答フレームを受信すると、クロックオフセットの算出指示と、前記応答フレームの受信タイミングを示すフレーム受信時刻と、を前記リフレッシュ指示フレームに含めて送信する機能をさらに有することを特徴とする請求項1〜5のいずれか1つに記載の通信装置。
  7. 前記通信フレーム中の前記フレーム送信時刻を格納する領域がaビットであり、前記クロックの幅がbビット(>a)の場合に、
    前記フレーム処理手段は、
    前記他の通信装置とのコネクション確立時に、前記クロックの上位(b−a)ビットを、上位ビット情報として記憶するとともに、コネクション確立要求時に前記上位ビット情報を通信フレームに含めて送信する機能と、周期通信中には前記タイムスタンプ生成手段から得られるタイムスタンプの下位aビットを、前記フレーム送信時刻を格納する領域に格納したリフレッシュ指示フレームを生成する機能と、を有し、
    前記片道遅延検出手段は、前記リフレッシュ指示フレーム中の前記フレーム送信時刻の値を、前記上位ビット情報を用いてbビットの値にして、片道遅延検出を行うことを特徴とする請求項1または2に記載の通信装置。
  8. 前記通信フレーム中の前記フレーム送信時刻を格納する領域がaビットであり、前記クロックの幅がbビット(>a)の場合に、
    前記フレーム処理手段は、
    前記他の通信装置とのコネクション確立時に、前記クロックの上位(b−a)ビットを、上位ビット情報として記憶するとともに、コネクション確立要求時に前記上位ビット情報を通信フレームに含めて送信する機能と、
    周期通信中には前記タイムスタンプ生成手段から得られるタイムスタンプの下位aビットを、前記フレーム送信時刻を格納する領域に格納したリフレッシュ指示フレームを生成する機能と、を有し、
    前記喪失検出手段は、前記リフレッシュ指示フレーム中の前記フレーム送信時刻の値を、前記上位ビット情報を用いてbビットの値にして、リフレッシュ指示フレームの喪失検出を行うことを特徴とする請求項4または5に記載の通信装置。
  9. 前記フレーム処理手段は、
    前記リフレッシュ指示フレームを送信する場合には、前記フレーム送信時刻の上位(b−a)ビット、前記リフレッシュ指示フレームのヘッダ部および前記送信データを格納するデータ部からチェックコードを生成し、前記リフレッシュ指示フレームに含める機能と、
    前記リフレッシュ指示フレームを受信する場合には、前記リフレッシュ指示フレームの自装置での受信時刻の下位aビットと、前記リフレッシュ指示フレーム中のaビットの前記フレーム送信時刻との大小に基づいて前記上位ビット情報を補正し、補正した前記上位ビット情報、受信した前記通信フレームの前記ヘッダ部および前記データ部からチェックコードを生成し、受信した前記リフレッシュ指示フレーム中のチェックコードと一致するかを判定する機能と、を有することを特徴とする請求項7または8に記載の通信装置。
  10. 前記他の通信装置の有するクロックに対する自通信装置の前記クロックの時刻のずれであるクロックオフセットを記憶するクロックオフセット記憶手段をさらに備え、
    前記タイムスタンプ生成手段は、自通信装置で送受信される前記リフレッシュ指示フレームの送信時または受信時に、前記クロックから得られる時刻を前記クロックオフセットで補正したタイムスタンプを生成することを特徴とする請求項1または2に記載の通信装置。
  11. 前記リフレッシュ指示フレームを受信すると、前記タイムスタンプ生成手段から今回フレーム受信時刻を取得し、前記今回フレーム受信時刻と、前回の前記リフレッシュ指示フレーム受信時に前記タイムスタンプ生成手段から取得した前回フレーム受信時刻との差を、通信フレームの喪失を示す喪失評価時間と比較して、前記通信フレームの喪失を判定する喪失検出手段をさらに備えることを特徴とする請求項10に記載の通信装置。
  12. 前記喪失検出手段は、送信する通信フレームのフレーム送信時刻を記憶し、
    前記通信手段は、前記リフレッシュ指示フレームを送信する場合に、前回の前記フレーム送信時刻から、前記喪失評価時間の1/2が経過した後につぎのリフレッシュ指示フレームを送信することを特徴とする請求項11に記載の通信装置。
  13. 前記他の通信装置から、クロックオフセットの計測指示を含む前記リフレッシュ指示フレームを受信すると、前記計測指示を含むリフレッシュ指示フレームに含まれる前記フレーム送信時刻をマスタ送信時刻として記憶し、前記計測指示を含むリフレッシュ指示フレームの受信タイミングをスレーブ受信時刻として記憶し、前記計測指示を含むリフレッシュ指示フレームに対する応答フレームの送信タイミングをスレーブ送信時刻として記憶する機能と、前記他の通信装置からクロックオフセットの算出指示を含む前記リフレッシュ指示フレームを受信すると、前記算出指示を含むリフレッシュ指示フレームに格納されている前記応答フレームの受信タイミングを示すフレーム受信時刻をマスタ受信時刻として記憶し、前記マスタ送信時刻、前記スレーブ受信時刻、前記スレーブ送信時刻および前記マスタ受信時刻を用いて、前記クロックオフセットを算出するクロックオフセット算出手段をさらに備えることを特徴とする請求項10〜12のいずれか1つに記載の通信装置。
  14. 前記クロックオフセット算出手段は、前記マスタ送信時刻をTm_sndとし、前記スレーブ受信時刻をTs_rcvとし、前記スレーブ送信時刻をTs_sndとし、前記マスタ受信時刻をTm_rcvとすると、次式(1)によって前記クロックオフセットts_offsetを算出することを特徴とする請求項13に記載の通信装置。
    ts_offset=[Tm_rcv+Tm_snd−(Ts_rcv+Ts_snd)]/2 ・・・(1)
  15. 前記通信フレーム中の前記フレーム送信時刻を格納する領域がaビットであり、前記クロックの幅がbビット(>a)の場合に、
    前記フレーム処理手段は、
    前記他の通信装置とのコネクション確立時に、前記他の通信装置から送信される通信フレーム内に格納されている前記他の通信装置のクロックの上位(b−a)ビットを上位ビット情報として記憶する機能を有し、
    周期通信中には前記タイムスタンプ生成手段から得られるタイムスタンプの下位aビットを、前記フレーム送信時刻を格納する領域に格納したリフレッシュ指示フレームを生成する機能を有し、
    前記片道遅延検出手段は、前記リフレッシュ指示フレーム中の前記フレーム送信時刻の値を、前記上位ビット情報を用いてbビットの値にして、片道遅延検出を行うことを特徴とする請求項10に記載の通信装置。
  16. 前記通信フレーム中の前記フレーム送信時刻を格納する領域がaビットであり、前記クロックの幅がbビット(>a)の場合に、
    前記フレーム処理手段は、
    前記他の通信装置とのコネクション確立時に、前記他の通信装置から送信される通信フレーム内に格納されている前記他の通信装置のクロックの上位(b−a)ビットを上位ビット情報として記憶する機能を有し、
    周期通信中には前記タイムスタンプ生成手段から得られるタイムスタンプの下位aビットを、前記フレーム送信時刻を格納する領域に格納したリフレッシュ指示フレームを生成する機能を有し、
    前記喪失検出手段は、前記リフレッシュ指示フレーム中の前記フレーム送信時刻の値を、前記上位ビット情報を用いてbビットの値にして、通信フレームの喪失検出を行うことを特徴とする請求項11または12に記載の通信装置。
  17. 前記通信フレーム中の前記フレーム送信時刻を格納する領域がaビットであり、前記クロックの幅がbビット(>a)の場合に、
    前記フレーム処理手段は、
    前記他の通信装置とのコネクション確立時に、前記他の通信装置から送信される通信フレーム内に格納されている前記他の通信装置のクロックの上位(b−a)ビットを上位ビット情報として記憶する機能を有し、
    周期通信中には前記タイムスタンプ生成手段から得られるタイムスタンプの下位aビットを、前記フレーム送信時刻を格納する領域に格納したリフレッシュ指示フレームを生成する機能を有し、
    前記オフセット算出手段は、前記マスタ送信時刻、前記スレーブ受信時刻、前記スレーブ送信時刻および前記マスタ受信時刻を、前記上位ビット情報を用いてbビットの値にして、クロックオフセットの算出を行うことを特徴とする請求項13または14に記載の通信装置。
  18. 前記フレーム処理手段は、
    前記通信フレームを送信する場合には、前記フレーム送信時刻の上位(b−a)ビット、前記通信フレームのヘッダ部および前記送信データを格納するデータ部からチェックコードを生成し、前記通信フレームに含める機能と、
    前記通信フレームを受信する場合には、前記通信フレーム中のaビットの前記フレーム送信時刻と、前回受信した前記フレーム中のaビットの前記フレーム送信時刻との大小に基づいて前記上位ビット情報を補正し、補正した前記上位ビット情報、受信した前記通信フレームの前記ヘッダ部および前記データ部からチェックコードを生成し、受信した前記通信フレーム中のチェックコードと一致するかを判定する機能と、をさらに有することを特徴とする請求項15〜17のいずれか1つに記載の通信装置。
  19. 伝送路を介して接続される2台の通信装置間で周期通信が行われる通信システムでの前記通信装置による遅延検出方法において、
    周期通信が開始されるとタイマーを起動する第1タイマー起動工程と、
    前記タイマーの起動から所定の時間内に、他の通信装置からのリフレッシュ指示を含むリフレッシュ指示フレームを受信するかを判定する第1片道遅延判定工程と、
    前記第1判定工程で前記リフレッシュ指示フレームを受信した場合に、前記リフレッシュ指示フレームの受信タイミングのフレーム受信時刻を取得するフレーム受信時刻取得工程と、
    前記リフレッシュ指示応答フレームに格納されている前記他の通信装置による前記リフレッシュ指示フレームの送信時刻であるフレーム送信時刻を取得するフレーム送信時刻取得工程と、
    前記フレーム受信時刻と前記フレーム送信時刻とを用いて、遅延発生の有無を判定する第2片道遅延判定工程と、
    前記第2片道遅延判定工程の後に、前記タイマーを再起動させるタイマー再起動工程と、
    を含むことを特徴とする遅延検出方法。
  20. 周期通信を行う前に、前記他の通信装置に要求フレームを送信し、前記タイマーを起動する第2タイマー起動工程と、
    前記通信装置から前記要求フレームに対する応答フレームを、所定の時間内に受信したかを判定する往復遅延判定工程と、
    をさらに含むことを特徴とする請求項19に記載の遅延検出方法。
  21. リフレッシュ準備完了を示す通信フレームを前記他の通信装置から受信すると、前記通信フレームに格納されている該通信フレームのフレーム送信時刻を前回フレーム送信時刻として取得する前回フレーム送信時刻取得工程と、
    つぎに前記他の通信装置から前記リフレッシュ指示フレームを受信すると、前記リフレッシュ指示フレームに格納されている該リフレッシュ指示フレームのフレーム送信時刻を今回フレーム送信時刻として取得する今回フレーム送信時刻取得工程と、
    前記今回フレーム送信時刻と前記前回フレーム送信時刻との差が、通信フレームの喪失であると判定されない喪失評価時間内に収まっているかを判定するフレーム喪失判定工程と、
    をさらに含むことを特徴とする請求項19または20に記載の遅延検出方法。
  22. 前記フレーム喪失判定工程で前記通信フレームの喪失が発生していないと判定された場合に、前記今回フレーム送信時刻の値を前記前回フレーム送信時刻に設定する前回フレーム送信時刻再設定工程をさらに含み、
    前記今回フレーム送信時刻取得工程からの処理を繰り返し実行することを特徴とする請求項21に記載の遅延検出方法。
  23. 前記2台の通信装置のうち基準となるクロックを有する通信装置であるマスタ局が、他の通信装置であるスレーブ局のクロックの前記マスタ局のクロックに対する時刻のずれであるクロックオフセットの算出のタイミングになると、前記スレーブ局に対するデータのリフレッシュ指示、周期送信する周期送信データ、および該フレームのフレーム送信時刻を含み、周期的に送信されるリフレッシュ指示フレームに、前記クロックオフセットの測定指示を含めた第1リフレッシュ指示要求フレームを、前記スレーブ局に送信するクロックオフセット測定指示工程と、
    前記スレーブ局は、前記第1リフレッシュ指示要求フレームを受信すると、前記第1リフレッシュ指示要求フレームに含まれるフレーム送信時刻をマスタ送信時刻として記憶し、前記第1リフレッシュ指示要求フレームの受信タイミングをスレーブ受信時刻として記憶する要求フレーム受信処理工程と、
    前記スレーブ局は、前記マスタ局へのデータのリフレッシュ指示、および周期送信データを含み、周期的に送信されるリフレッシュ指示フレームに、前記第1リフレッシュ指示要求フレームに対する応答の機能を持たせたリフレッシュ指示応答フレームを、前記マスタ局に送信するとともに、前記リフレッシュ指示応答フレームの送信時刻をスレーブ送信時刻として記憶する応答フレーム送信工程と、
    前記マスタ局は、前記リフレッシュ指示応答フレーム受信すると、該リフレッシュ指示応答フレームの受信時刻をマスタ受信時刻として取得し、前記スレーブ局に対するデータのリフレッシュ指示、周期送信する周期送信データ、および前記マスタ受信時刻を含み、周期的に送信されるリフレッシュ指示フレームに、前記クロックオフセットの算出指示を含めた第2リフレッシュ指示要求フレームを、前記スレーブ局に送信するクロックオフセット算出指示工程と、
    前記スレーブ局は、前記第2リフレッシュ指示要求フレームを受信すると、前記スレーブ受信時刻を取得した後、前記マスタ送信時刻、前記スレーブ受信時刻、前記スレーブ送信時刻および前記マスタ受信時刻を用いて、前記スレーブ局の前記クロックオフセットを算出するクロックオフセット算出工程と、
    をさらに含むことを特徴とする請求項19〜22のいずれか1つに記載の遅延検出方法。
JP2012533784A 2010-09-15 2010-09-15 通信装置および遅延検出方法 Active JP5449566B2 (ja)

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
PCT/JP2010/065986 WO2012035629A1 (ja) 2010-09-15 2010-09-15 通信装置および遅延検出方法

Publications (2)

Publication Number Publication Date
JPWO2012035629A1 JPWO2012035629A1 (ja) 2014-01-20
JP5449566B2 true JP5449566B2 (ja) 2014-03-19

Family

ID=45831129

Family Applications (1)

Application Number Title Priority Date Filing Date
JP2012533784A Active JP5449566B2 (ja) 2010-09-15 2010-09-15 通信装置および遅延検出方法

Country Status (6)

Country Link
US (1) US9270554B2 (ja)
JP (1) JP5449566B2 (ja)
KR (1) KR101479883B1 (ja)
CN (1) CN103109491B (ja)
DE (1) DE112010005881B4 (ja)
WO (1) WO2012035629A1 (ja)

Families Citing this family (56)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN102215144B (zh) * 2011-05-17 2016-06-29 中兴通讯股份有限公司 丢包率的测量方法和系统
US8619927B2 (en) 2012-05-29 2013-12-31 Magnolia Broadband Inc. System and method for discrete gain control in hybrid MIMO/RF beamforming
US8885757B2 (en) 2012-05-29 2014-11-11 Magnolia Broadband Inc. Calibration of MIMO systems with radio distribution networks
US8649458B2 (en) 2012-05-29 2014-02-11 Magnolia Broadband Inc. Using antenna pooling to enhance a MIMO receiver augmented by RF beamforming
US8861635B2 (en) 2012-05-29 2014-10-14 Magnolia Broadband Inc. Setting radio frequency (RF) beamformer antenna weights per data-stream in a multiple-input-multiple-output (MIMO) system
US8842765B2 (en) 2012-05-29 2014-09-23 Magnolia Broadband Inc. Beamformer configurable for connecting a variable number of antennas and radio circuits
US8644413B2 (en) 2012-05-29 2014-02-04 Magnolia Broadband Inc. Implementing blind tuning in hybrid MIMO RF beamforming systems
US8837650B2 (en) 2012-05-29 2014-09-16 Magnolia Broadband Inc. System and method for discrete gain control in hybrid MIMO RF beamforming for multi layer MIMO base station
US8811522B2 (en) 2012-05-29 2014-08-19 Magnolia Broadband Inc. Mitigating interferences for a multi-layer MIMO system augmented by radio distribution network
US8767862B2 (en) 2012-05-29 2014-07-01 Magnolia Broadband Inc. Beamformer phase optimization for a multi-layer MIMO system augmented by radio distribution network
US8971452B2 (en) 2012-05-29 2015-03-03 Magnolia Broadband Inc. Using 3G/4G baseband signals for tuning beamformers in hybrid MIMO RDN systems
US9154204B2 (en) 2012-06-11 2015-10-06 Magnolia Broadband Inc. Implementing transmit RDN architectures in uplink MIMO systems
US10999171B2 (en) 2018-08-13 2021-05-04 Accedian Networks Inc. Method for devices in a network to participate in an end-to-end measurement of latency
US8830860B2 (en) 2012-07-05 2014-09-09 Accedian Networks Inc. Method for devices in a network to participate in an end-to-end measurement of latency
US8792380B2 (en) * 2012-08-24 2014-07-29 Accedian Networks Inc. System for establishing and maintaining a clock reference indicating one-way latency in a data network
EP2747316A3 (en) * 2012-12-24 2018-01-03 Akademia Gorniczo-Hutnicza im. Stanislawa Staszica w Krakowie A system and a method for synchronization and transmission of information in a distributed measurement and control system
US8797969B1 (en) 2013-02-08 2014-08-05 Magnolia Broadband Inc. Implementing multi user multiple input multiple output (MU MIMO) base station using single-user (SU) MIMO co-located base stations
US9343808B2 (en) 2013-02-08 2016-05-17 Magnotod Llc Multi-beam MIMO time division duplex base station using subset of radios
US20140226740A1 (en) 2013-02-13 2014-08-14 Magnolia Broadband Inc. Multi-beam co-channel wi-fi access point
US8989103B2 (en) 2013-02-13 2015-03-24 Magnolia Broadband Inc. Method and system for selective attenuation of preamble reception in co-located WI FI access points
US8774150B1 (en) 2013-02-13 2014-07-08 Magnolia Broadband Inc. System and method for reducing side-lobe contamination effects in Wi-Fi access points
US9100968B2 (en) 2013-05-09 2015-08-04 Magnolia Broadband Inc. Method and system for digital cancellation scheme with multi-beam
US9425882B2 (en) 2013-06-28 2016-08-23 Magnolia Broadband Inc. Wi-Fi radio distribution network stations and method of operating Wi-Fi RDN stations
US8995416B2 (en) 2013-07-10 2015-03-31 Magnolia Broadband Inc. System and method for simultaneous co-channel access of neighboring access points
US8824596B1 (en) 2013-07-31 2014-09-02 Magnolia Broadband Inc. System and method for uplink transmissions in time division MIMO RDN architecture
US9497781B2 (en) 2013-08-13 2016-11-15 Magnolia Broadband Inc. System and method for co-located and co-channel Wi-Fi access points
US9060362B2 (en) 2013-09-12 2015-06-16 Magnolia Broadband Inc. Method and system for accessing an occupied Wi-Fi channel by a client using a nulling scheme
US9088898B2 (en) 2013-09-12 2015-07-21 Magnolia Broadband Inc. System and method for cooperative scheduling for co-located access points
US9172454B2 (en) 2013-11-01 2015-10-27 Magnolia Broadband Inc. Method and system for calibrating a transceiver array
US8891598B1 (en) 2013-11-19 2014-11-18 Magnolia Broadband Inc. Transmitter and receiver calibration for obtaining the channel reciprocity for time division duplex MIMO systems
US8929322B1 (en) 2013-11-20 2015-01-06 Magnolia Broadband Inc. System and method for side lobe suppression using controlled signal cancellation
US8942134B1 (en) 2013-11-20 2015-01-27 Magnolia Broadband Inc. System and method for selective registration in a multi-beam system
US9294177B2 (en) 2013-11-26 2016-03-22 Magnolia Broadband Inc. System and method for transmit and receive antenna patterns calibration for time division duplex (TDD) systems
US9014066B1 (en) 2013-11-26 2015-04-21 Magnolia Broadband Inc. System and method for transmit and receive antenna patterns calibration for time division duplex (TDD) systems
US9042276B1 (en) 2013-12-05 2015-05-26 Magnolia Broadband Inc. Multiple co-located multi-user-MIMO access points
US9100154B1 (en) 2014-03-19 2015-08-04 Magnolia Broadband Inc. Method and system for explicit AP-to-AP sounding in an 802.11 network
US9172446B2 (en) 2014-03-19 2015-10-27 Magnolia Broadband Inc. Method and system for supporting sparse explicit sounding by implicit data
US9271176B2 (en) 2014-03-28 2016-02-23 Magnolia Broadband Inc. System and method for backhaul based sounding feedback
GB2536827B (en) * 2014-05-09 2017-07-05 Imagination Tech Ltd Time stamp replication within a wireless network
US10979332B2 (en) 2014-09-25 2021-04-13 Accedian Networks Inc. System and method to measure available bandwidth in ethernet transmission system using train of ethernet frames
JP6402576B2 (ja) * 2014-10-15 2018-10-10 富士通株式会社 通信装置、情報処理装置、情報処理システム及び通信装置の制御方法
KR20160046522A (ko) 2014-10-21 2016-04-29 한국과학기술원 왕겨의 통합적 활용 방법
US20160286510A1 (en) * 2014-10-31 2016-09-29 Telefonaktiebolaget L M Ericsson (Publ) Methods and systems for synchronizing a communication node in a communication network
TWI612831B (zh) * 2016-03-01 2018-01-21 財團法人工業技術研究院 時脈同步方法、行動網路系統、網路控制器與網路交換器
WO2018088462A1 (ja) * 2016-11-10 2018-05-17 株式会社ラック 通信制御装置、通信制御方法およびプログラム
CN107548092B (zh) * 2017-08-04 2021-01-26 深圳市盛路物联通讯技术有限公司 一种分布式网络延迟的数据处理方法及系统
DE102017119578A1 (de) * 2017-08-25 2019-02-28 Phoenix Contact Gmbh & Co. Kg Verfahren zur Übertragung von Daten zwischen einer zentralen Steuereinrichtung und einer Mehrzahl dezentraler Geräte und entsprechende Vorrichtungen
US11106478B2 (en) * 2017-11-10 2021-08-31 Mitsubishi Electric Corporation Simulation device, simulation method, and computer readable medium
WO2020044908A1 (ja) * 2018-08-30 2020-03-05 株式会社安川電機 産業機器のデータ収集システム及びモータ制御装置
JP6806748B2 (ja) 2018-10-01 2021-01-06 ファナック株式会社 通信システム、送信装置、通信方法、および、送信方法
DE102018009818B4 (de) * 2018-12-14 2021-11-25 Diehl Metering S.A.S. Verfahren zum Sammeln von Daten sowie Sensor, Datensammler und Versorgungsnetz
JP7175858B2 (ja) * 2019-08-07 2022-11-21 株式会社日立製作所 情報処理装置および正規通信判定方法
KR102245059B1 (ko) * 2019-12-24 2021-04-26 한전케이디엔주식회사 비연결형 태양광 발전 시스템의 계측통신상태 추정 시스템 및 그 방법
JP7173058B2 (ja) * 2020-01-14 2022-11-16 株式会社デンソー 通信装置、及び通信装置に用いられるプログラム及び方法
CN111556559B (zh) * 2020-05-09 2021-11-26 重庆邮电大学 基于免时间戳交互与单向消息传播的混合时钟同步方法
US11616588B2 (en) * 2020-07-24 2023-03-28 Dish Wireless L.L.C. Method and system for timing synchronization in a cellular network

Family Cites Families (8)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
TW401539B (en) * 1997-08-04 2000-08-11 Matsushita Electric Ind Co Ltd Delay time adjuster and adjusting method between multiple transmission lines
US7127508B2 (en) * 2001-12-19 2006-10-24 Tropic Networks Inc. Method and system of measuring latency and packet loss in a network by using probe packets
EP1401147B1 (en) 2002-09-16 2007-11-28 Agilent Technologies, Inc. Measuring network parameters as experienced by non synthetic network traffic
JP2004289748A (ja) 2003-03-25 2004-10-14 Hitachi Information Systems Ltd マルチメディア通信の品質監視システム及びその品質監視方法
GB2417391B (en) 2004-08-18 2007-04-18 Wecomm Ltd Transmitting data over a network
ATE389983T1 (de) * 2004-10-27 2008-04-15 Nokia Siemens Networks Gmbh Verfahren und anlage zur zeitsynchronisation in einem verteilten kommunikationsnetzwerk
JP4467478B2 (ja) 2005-07-13 2010-05-26 シャープ株式会社 伝送装置および時刻同期方法
GB2447981A (en) * 2007-03-30 2008-10-01 Mitsubishi Electric Inf Tech Time delay measurement for global navigation satellite system receivers

Also Published As

Publication number Publication date
JPWO2012035629A1 (ja) 2014-01-20
US20130170388A1 (en) 2013-07-04
KR101479883B1 (ko) 2015-01-12
CN103109491B (zh) 2015-07-15
CN103109491A (zh) 2013-05-15
WO2012035629A1 (ja) 2012-03-22
DE112010005881T5 (de) 2013-07-18
DE112010005881B4 (de) 2021-08-19
KR20130060297A (ko) 2013-06-07
US9270554B2 (en) 2016-02-23

Similar Documents

Publication Publication Date Title
JP5449566B2 (ja) 通信装置および遅延検出方法
JP5377663B2 (ja) 通信システム、通信装置および時刻同期方法
TWI411277B (zh) 網路從節點與網路系統精確時間同步之方法
US20200295861A1 (en) Method for identifying an incorrect time stamp of an ethernet message and control unit for a motor vehicle
CN110649984B (zh) 一种时钟同步的方法、装置、计算机存储介质及电子设备
CN102664719B (zh) 适用于dcs的分布式安全传输方法
JP6157760B2 (ja) 通信装置、時刻補正方法およびネットワークシステム
JP2009065579A (ja) 時刻同期システム、時刻同期方法、ノード及びプログラム
CN102833061A (zh) 基于无缝冗余环网的提高时钟精度的方法及节点
WO2013099026A1 (ja) ノード装置および時刻同期方法
CN107078962B (zh) Sdn中数据处理方法、装置、系统、电子设备和计算机存储介质
CN103856578A (zh) Modbus RTU从站自动获取站地址方法及从站
CN103716420A (zh) Modbus ASCII从站自动获取站地址方法及从站
CN104363181A (zh) 流量传输控制方法及装置
JP5501939B2 (ja) 時刻同期方法、通信システムおよび通信装置
US8243607B2 (en) Packet delay characteristic measuring apparatus and method
US20160087814A1 (en) Wireless-communication quality-information processing device and communication system
JP2016119616A (ja) リング型ネットワークシステム、そのマスタノード
CN110505037B (zh) 一种网络接口通信速率匹配方法、装置、设备和存储介质
CN106549822B (zh) 测试时间同步报文的响应时间的方法、装置及测试设备
JP2019071692A (ja) 伝送装置および遅延測定方法
CN102014054A (zh) 保活报文的发送方法和设备
CN110351074A (zh) 一种量子密钥分发系统的同步修正方法以及控制器
KR20150027606A (ko) 센서 네트워크에서의 시간 동기 장치 및 방법
JP6483367B2 (ja) 伝送装置および遅延測定方法

Legal Events

Date Code Title Description
TRDD Decision of grant or rejection written
A01 Written decision to grant a patent or to grant a registration (utility model)

Free format text: JAPANESE INTERMEDIATE CODE: A01

Effective date: 20131126

A61 First payment of annual fees (during grant procedure)

Free format text: JAPANESE INTERMEDIATE CODE: A61

Effective date: 20131224

R150 Certificate of patent or registration of utility model

Free format text: JAPANESE INTERMEDIATE CODE: R150

Ref document number: 5449566

Country of ref document: JP

Free format text: JAPANESE INTERMEDIATE CODE: R150

R250 Receipt of annual fees

Free format text: JAPANESE INTERMEDIATE CODE: R250

R250 Receipt of annual fees

Free format text: JAPANESE INTERMEDIATE CODE: R250

R250 Receipt of annual fees

Free format text: JAPANESE INTERMEDIATE CODE: R250

R250 Receipt of annual fees

Free format text: JAPANESE INTERMEDIATE CODE: R250

R250 Receipt of annual fees

Free format text: JAPANESE INTERMEDIATE CODE: R250

R250 Receipt of annual fees

Free format text: JAPANESE INTERMEDIATE CODE: R250

R250 Receipt of annual fees

Free format text: JAPANESE INTERMEDIATE CODE: R250

R250 Receipt of annual fees

Free format text: JAPANESE INTERMEDIATE CODE: R250