JP6261822B2 - 時刻同期装置及び時刻同期システム及び時刻同期方法 - Google Patents

時刻同期装置及び時刻同期システム及び時刻同期方法 Download PDF

Info

Publication number
JP6261822B2
JP6261822B2 JP2017522769A JP2017522769A JP6261822B2 JP 6261822 B2 JP6261822 B2 JP 6261822B2 JP 2017522769 A JP2017522769 A JP 2017522769A JP 2017522769 A JP2017522769 A JP 2017522769A JP 6261822 B2 JP6261822 B2 JP 6261822B2
Authority
JP
Japan
Prior art keywords
time
data
recorded
synchronization
reception
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
JP2017522769A
Other languages
English (en)
Other versions
JPWO2016199196A1 (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 JPWO2016199196A1 publication Critical patent/JPWO2016199196A1/ja
Application granted granted Critical
Publication of JP6261822B2 publication Critical patent/JP6261822B2/ja
Active legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Images

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F13/00Interconnection of, or transfer of information or other signals between, memories, input/output devices or central processing units
    • G06F13/38Information transfer, e.g. on bus
    • G06F13/42Bus transfer protocol, e.g. handshake; Synchronisation
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L69/00Network arrangements, protocols or services independent of the application payload and not provided for in the other groups of this subclass
    • H04L69/28Timers or timing mechanisms used in protocols

Description

本発明は、時刻同期装置及び時刻同期システム及び時刻同期方法に関するものである。
PA(Process・Automation)分野において、クローズドネットワーク構成からオープンネットワーク構成へのシフト、及び、新たな情報技術の適用等により、広域的なスマート通信を実現することが推進されている。具体例として、スマートグリッドが挙げられる。多数のデバイスの計測及び制御において、イベント同期とデータ相関とを簡易化するために、高精度な時刻同期が求められている。
クローズドネットワーク構成では、数十台といった比較的少数のデバイスの時刻が独自の時刻同期方式を利用して同期される。時刻同期精度は、マイクロ秒単位である。時刻同期精度を高めるため、時刻同期方式は、主にハードウェアベースで実装される。
オープンネットワーク構成で利用可能な時刻同期方式として、IEEE(Institute・of・Electrical・and・Electronics・Engineers)は、イーサネット(登録商標)を利用した時刻同期規格IEEE1588を策定している。IEEE1588では、ネットワークを介して時刻を記録した同期フレームを送受信することで時刻を同期する方法が定められている。IEEE1588の実装は、ハードウェアベース実装とソフトウェアベース実装との2種類に分かれる。
ハードウェアベース実装では、OSI(Open・Systems・Interconnection)参照モデルの物理層の処理を行うPHYのハードウェアタイムスタンプ機能を用いて時刻が記録される(例えば、特許文献1参照)。よって、時刻送信側は、PHYが同期フレームを送信するときのタイムスタンプを送信時刻として記録し、記録した送信時刻を送信する。同様に、時刻受信側は、PHYが同期フレームを受信したときのタイムスタンプを受信時刻として記録し、記録した受信時刻をアプリケーションプログラムで利用する。時刻同期精度は、理論上は1ナノ秒であるが、実際には最高100ナノ秒程度である。
ソフトウェアベース実装では、OSI参照モデルのアプリケーション層の処理を行うアプリケーションプログラムのソフトウェアタイムスタンプ機能を用いて時刻が記録される。よって、時刻送信側は、アプリケーションプログラムが下位処理に同期フレームの送信を指示したときのタイムスタンプを送信時刻として記録し、記録した送信時刻を送信する。同様に、時刻受信側は、アプリケーションプログラムが下位処理から同期フレームの受信を通知されたときのタイムスタンプを受信時刻として記録し、記録した受信時刻をアプリケーションプログラムで利用する。時刻同期精度は、最悪の場合100ミリ秒程度まで劣化する。なお、ソフトウェアベース実装の時刻同期精度は、アプリケーションプログラムが動作するOS(Operating・System)、及び、通信機能の階層構造によって大幅に変動する。
特開2012−256965号公報
システムをクローズドネットワーク構成からオープンネットワーク構成に変更する際には、そのシステムを別のシステムと接続することになる。資産流用の観点から、システム内部での時刻同期には既存の時刻同期方式を継続して利用し、システム外部との時刻同期にはIEEE1588を利用することが考えられる。しかし、その場合、既存の時刻同期方式とIEEE1588との両方に対応する端末が必要である。IEEE1588を新たに導入する場合、ハードウェアベース実装を採用すれば、高い時刻同期精度が得られるが、膨大なコストがかかる。したがって、コスト節約の観点から、ソフトウェアベース実装を採用することが望まれる。
本発明は、ソフトウェアベース実装による時刻同期方式の時刻同期精度を向上させることを目的とする。
本発明の一の態様に係る時刻同期装置は、
マスタクロックを有するマスタ装置から第1データを受信する受信部と、
前記受信部により前記第1データが受信された後に、前記マスタ装置に第2データを送信する送信部と、
ソフトウェアクロックであるスレーブクロックを用いて、前記受信部での前記第1データの受信時刻と前記送信部での前記第2データの送信時刻とを記録する記録部と、
前記記録部により記録された前記第1データの受信時刻と前記第2データの送信時刻とを補正する補正部と、
少なくとも前記マスタ装置から通知される前記マスタ装置での前記第1データの送信時刻と前記補正部により補正された前記第1データの受信時刻と前記補正部により補正された前記第2データの送信時刻と前記マスタ装置から通知される前記マスタ装置での前記第2データの受信時刻とから、前記マスタクロックと前記スレーブクロックとの時刻のずれであるオフセットを計算する同期部とを備える。
本発明では、ソフトウェアクロックを用いて記録される時刻が補正されるため、ソフトウェアベース実装による時刻同期方式の時刻同期精度が向上する。
実施の形態1に係る時刻同期システムの構成例を示す図。 実施の形態1に係るマスタ装置及び時刻同期装置の構成を示すブロック図。 実施の形態1に係る時刻同期システムの動作を示すフローチャート。 実施の形態1に係る時刻同期システムの動作を示すフローチャート。 実施の形態1に係る時刻同期システムの動作を示すフローチャート。 実施の形態1に係るマスタ装置及び時刻同期装置の実装例を示すブロック図。 実施の形態1に係るマスタ装置及び時刻同期装置の間の通信手順を示すシーケンス図。 実施の形態2に係る時刻同期システムの構成例を示す図。 実施の形態3に係る時刻同期システムの構成例を示す図。 本発明の実施の形態に係る時刻同期装置のハードウェア構成例を示す図。
以下、本発明の実施の形態について、図を用いて説明する。なお、各図中、同一又は相当する部分には、同一符号を付している。実施の形態の説明において、同一又は相当する部分については、その説明を適宜省略又は簡略化する。
実施の形態1.
従来のソフトウェアベース実装による時刻同期方式には、前述したような時刻同期精度の劣化という課題がある。この課題の要因は、ソフトウェアタイムスタンプの揺らぎ、及び、時刻同期が実装される端末の内部処理遅延の非対称性である。本実施の形態では、時刻の記録値を補正することで、これらの要因の少なくとも一部を除去又は抑制する。
本実施の形態は、複数台のデバイスが存在する分散システムにおける時刻同期をソフトウェアベース実装により実現するものである。本実施の形態に係るソフトウェアベース実装による時刻同期方式では、IEEE1588の原理が利用される。この時刻同期方式は、分散システムに存在する任意の端末に実装可能である。端末にインストールされるOSは、リアルタイムOSである。時刻送信側の端末は、マスタである。時刻受信側の端末は、スレーブであり、時刻同期を実施する端末である。
以下、本実施の形態に係るシステムの構成、本実施の形態に係るシステムの動作、本実施の形態の効果を順番に説明する。
***構成の説明***
図1を参照して、本実施の形態に係るシステムである時刻同期システム100の構成例を説明する。
時刻同期システム100は、分散システムである。時刻同期システム100は、1台のGM110(Grand・Master)と、複数台のPLC120(Programmable・Logic・Controller)と、複数台のフィールドデバイス130とを備える。
本例では、ツリー型のネットワークトポロジーが採用されている。GM110がルートになっており、ルートの下位ノードとして少なくとも3台のPLC120がGM110に接続されている。さらに下位のノードとして少なくとも1台のPLC120又は少なくとも3台のフィールドデバイス130が接続され、サブネットワークが構成されている。
GM110は、時刻基準を提供する。GM110と、GM110に接続されたPLC120との間の時刻同期には、第1時刻同期方式101が適用される。第1時刻同期方式101は、本実施の形態に係るソフトウェアベース実装による時刻同期方式であり、IEEE1588の原理を利用したものである。第1時刻同期方式101による時刻同期の手順については後述する。
各サブネットワーク内部の時刻同期には、第2時刻同期方式102が適用される。第2時刻同期方式102は、各サブネットワークの独自の時刻同期方式である。第2時刻同期方式102による時刻同期の手順については、任意の手順を適用できるため、説明を省略する。
GM110に接続されたPLC120は、各サブネットワークの第2時刻同期方式102に対応するとともに、第1時刻同期方式101に対応する。
なお、GM110に接続されたPLC120の台数、及び、各サブネットワークの構成は、適宜変更することができる。PLC120は、NC(Numerical・Controller)等、他の種類の機器に置き換えられてもよい。
図2を参照して、本実施の形態に係るマスタ装置200及び時刻同期装置300の構成を説明する。
マスタ装置200は、マスタクロック201を有する。マスタクロック201は、ハードウェアクロックではなく、ソフトウェアクロックである。ハードウェアクロックとは、ハードウェアに搭載される時計のことである。ハードウェアクロックは、ハードウェアタイムスタンプ機能に利用される。ソフトウェアクロックとは、ソフトウェアによって管理される時計のことである。ソフトウェアクロックは、ソフトウェアタイムスタンプ機能に利用される。
マスタ装置200は、送信部210と、受信部220と、記録部230と、補正部240とを備える。
図1に示したGM110は、第1時刻同期方式101における時刻送信側の端末であり、マスタ装置200に相当する。
時刻同期装置300は、スレーブクロック301を有する。スレーブクロック301は、マスタクロック201と同じように、ハードウェアクロックではなく、ソフトウェアクロックである。
時刻同期装置300は、受信部310と、送信部320と、記録部330と、補正部340と、同期部350とを備える。
図1に示した、GM110に接続されたPLC120は、第1時刻同期方式101における時刻受信側の端末であり、時刻同期装置300に相当する。
マスタ装置200と時刻同期装置300は、以下に説明する第1時刻同期方式101の通信手順に沿って、ネットワーク400を介して互いにデータを送受信する。これにより、時刻同期装置300が、スレーブクロック301の時刻をマスタクロック201の時刻に合わせることができる。
マスタ装置200の送信部210は、時刻同期装置300に第1データ401を送信する。
時刻同期装置300の受信部310は、マスタ装置200から第1データ401を受信する。
時刻同期装置300の送信部320は、受信部310により第1データ401が受信された後に、マスタ装置200に第2データ402を送信する。
マスタ装置200の受信部220は、時刻同期装置300から第2データ402を受信する。
マスタ装置200の記録部230は、マスタクロック201を用いて、送信部210での第1データ401の送信時刻と受信部220での第2データ402の受信時刻とを記録する。
マスタ装置200の補正部240は、記録部230により記録された第1データ401の送信時刻と第2データ402の受信時刻とを補正する。
マスタ装置200の送信部210は、時刻同期装置300に、少なくとも補正部240により補正された第1データ401の送信時刻を通知するための第3データ403と少なくとも補正部240により補正された第2データ402の受信時刻を通知するための第4データ404とを送信する。これにより、送信部210は、時刻同期装置300に、少なくとも補正部240により補正された第1データ401の送信時刻と第2データ402の受信時刻とを通知する。
時刻同期装置300の受信部310は、マスタ装置200から第3データ403と第4データ404とを受信する。
時刻同期装置300の記録部330は、スレーブクロック301を用いて、受信部310での第1データ401の受信時刻と送信部320での第2データ402の送信時刻とを記録する。
時刻同期装置300の補正部340は、記録部330により記録された第1データ401の受信時刻と第2データ402の送信時刻とを補正する。
時刻同期装置300の同期部350は、少なくともマスタ装置200から通知されるマスタ装置200での第1データ401の送信時刻と補正部340により補正された第1データ401の受信時刻と補正部340により補正された第2データ402の送信時刻とマスタ装置200から通知されるマスタ装置200での第2データ402の受信時刻とから、オフセット405を計算する。オフセット405は、マスタクロック201とスレーブクロック301との時刻のずれである。同期部350は、オフセット405を計算する際に、受信部310により受信された第3データ403と第4データ404とを参照する。即ち、同期部350は、受信部310により受信された第3データ403から、マスタ装置200での第1データ401の送信時刻を得る。同期部350は、受信部310により受信された第4データ404から、マスタ装置200での第2データ402の受信時刻を得る。
本実施の形態において、第3データ403は、マスタ装置200の補正部240により補正された第1データ401の送信時刻だけでなく、マスタ装置200の記録部230により記録された第1データ401の送信時刻も通知するためのデータである。第4データ404は、補正部240により補正された第2データ402の受信時刻だけでなく、記録部230により記録された第2データ402の受信時刻も通知するためのデータである。即ち、本実施の形態では、マスタ装置200の送信部210が、時刻同期装置300に、さらに、記録部230により記録された第1データ401の送信時刻と第2データ402の受信時刻とを通知する。このため、時刻同期装置300の同期部350は、オフセット405を計算する際に、マスタ装置200の記録部230により記録された第1データ401の送信時刻とマスタ装置200の補正部240により補正された第1データ401の送信時刻との両方を、マスタ装置200から通知されるマスタ装置200での第1データ401の送信時刻として用いる。また、時刻同期装置300の同期部350は、オフセット405を計算する際に、マスタ装置200の記録部230により記録された第2データ402の受信時刻とマスタ装置200の補正部240により補正された第2データ402の受信時刻との両方を、マスタ装置200から通知されるマスタ装置200での第2データ402の受信時刻として用いる。
本実施の形態において、同期部350は、オフセット405を計算する際に、補正部340により補正された第1データ401の受信時刻だけでなく、記録部330により記録された第1データ401の受信時刻も用いる。また、同期部350は、オフセット405を計算する際に、補正部340により補正された第2データ402の送信時刻だけでなく、記録部330により記録された第2データ402の送信時刻も用いる。
つまり、本実施の形態では、同期部350が、マスタ装置200で記録された第1データ401の送信時刻とマスタ装置200で補正された第1データ401の送信時刻と記録部330により記録された第1データ401の受信時刻と補正部340により補正された第1データ401の受信時刻と記録部330により記録された第2データ402の送信時刻と補正部340により補正された第2データ402の送信時刻とマスタ装置200で記録された第2データ402の受信時刻とマスタ装置200で補正された第2データ402の受信時刻とから、オフセット405を計算する。
具体的には、同期部350は、マスタ装置200で記録された第1データ401の送信時刻とマスタ装置200で補正された第1データ401の送信時刻との合計と、記録部330により記録された第1データ401の受信時刻と補正部340により補正された第1データ401の受信時刻との合計との差、及び、記録部330により記録された第2データ402の送信時刻と補正部340により補正された第2データ402の送信時刻との合計と、マスタ装置200で記録された第2データ402の受信時刻とマスタ装置200で補正された第2データ402の受信時刻との合計との差から、オフセット405を計算する。
なお、第3データ403は、マスタ装置200の記録部230により記録された第1データ401の送信時刻のみを通知するためのデータであってもよい。第4データ404は、記録部230により記録された第2データ402の受信時刻のみを通知するためのデータであってもよい。よって、マスタ装置200は、補正部240を備えなくてもよい。
マスタ装置200が補正部240を備えないか、又は、補正部240が記録部230により記録された第1データ401の送信時刻を補正しない場合、時刻同期装置300の補正部340は、マスタ装置200から通知されるマスタ装置200での第1データ401の送信時刻を補正してもよい。その場合、時刻同期装置300の同期部350は、オフセット405を計算する際に、マスタ装置200から通知されるマスタ装置200での第1データ401の送信時刻とともに、補正部340により補正された第1データ401の送信時刻を用いることができる。
マスタ装置200が補正部240を備えないか、又は、補正部240が記録部230により記録された第2データ402の受信時刻を補正しない場合、時刻同期装置300の補正部340は、マスタ装置200から通知されるマスタ装置200での第2データ402の受信時刻を補正してもよい。その場合、時刻同期装置300の同期部350は、オフセット405を計算する際に、マスタ装置200から通知されるマスタ装置200での第2データ402の受信時刻とともに、補正部340により補正された第2データ402の受信時刻を用いることができる。
***動作の説明***
図3及び図4及び図5を参照して、時刻同期システム100の動作を説明する。時刻同期システム100の動作は、本実施の形態に係る時刻同期方法に相当する。
図3は、第1データ401の送受信に関連する動作を示している。本実施の形態では、第1データ401の送受信が繰り返される。
ステップS11において、マスタ装置200の送信部210は、時刻同期装置300に第1データ401を繰り返し送信する。
ステップS12において、時刻同期装置300の受信部310は、マスタ装置200から第1データ401を繰り返し受信する。
ステップS13において、マスタ装置200の記録部230は、送信部210により第1データ401が送信される度に、マスタクロック201を用いて、送信部210での第1データ401の送信時刻を記録する。
ステップS14において、マスタ装置200の補正部240は、記録部230により第1データ401の送信時刻が記録される度に、乱数を生成し、生成した乱数を用いて、記録部230により記録された第1データ401の送信時刻の補正値を計算する。
ステップS15において、マスタ装置200の送信部210は、時刻同期装置300に、補正部240により計算された第1データ401の送信時刻の補正値を通知するためのデータを第3データ403として送信する。
ステップS16において、時刻同期装置300の受信部310は、マスタ装置200から第3データ403を繰り返し受信する。
ステップS17において、時刻同期装置300の記録部330は、受信部310により第1データ401が受信される度に、スレーブクロック301を用いて、受信部310での第1データ401の受信時刻を記録する。
ステップS18において、時刻同期装置300の補正部340は、記録部330により第1データ401の受信時刻が記録される度に、乱数を生成し、生成した乱数を用いて、記録部330により記録された第1データ401の受信時刻の補正値を計算する。
後述するように、時刻同期装置300の同期部350は、オフセット405を計算する際に、補正部340により計算された第1データ401の受信時刻の補正値を第1データ401の受信時刻として用いる。
図4は、第2データ402の送受信に関連する動作を示している。本実施の形態では、第2データ402の送受信も繰り返される。
ステップS21において、時刻同期装置300の送信部320は、受信部310により第1データ401が受信される度に、マスタ装置200に第2データ402を送信する。
ステップS22において、マスタ装置200の受信部220は、時刻同期装置300から第2データ402を繰り返し受信する。
ステップS23において、マスタ装置200の記録部230は、受信部220により第2データ402が受信される度に、マスタクロック201を用いて、受信部220での第2データ402の受信時刻を記録する。
ステップS24において、マスタ装置200の補正部240は、記録部230により第2データ402の受信時刻が記録される度に、乱数を生成し、生成した乱数を用いて、記録部230により記録された第2データ402の受信時刻の補正値を計算する。
ステップS25において、マスタ装置200の送信部210は、時刻同期装置300に、補正部240により計算された第2データ402の受信時刻の補正値を通知するためのデータを第4データ404として送信する。
ステップS26において、時刻同期装置300の受信部310は、マスタ装置200から第4データ404を繰り返し受信する。
ステップS27において、時刻同期装置300の記録部330は、送信部320により第2データ402が送信される度に、スレーブクロック301を用いて、送信部320での第2データ402の送信時刻を記録する。
ステップS28において、時刻同期装置300の補正部340は、記録部330により第2データ402の送信時刻が記録される度に、乱数を生成し、生成した乱数を用いて、記録部330により記録された第2データ402の送信時刻の補正値を計算する。
後述するように、時刻同期装置300の同期部350は、オフセット405を計算する際に、補正部340により計算された第2データ402の送信時刻の補正値を第2データ402の送信時刻として用いる。
本実施の形態では、上記のように、第1データ401と第2データ402と第3データ403と第4データ404とを1つずつ順番に送受信する通信手順が繰り返される。
図5は、オフセット405を計算する動作を示している。
ステップS31において、時刻同期装置300の同期部350は、受信部310により第1データ401が受信される度に、オフセット405を計算する。即ち、同期部350は、1回の通信手順につき、1つのオフセット405を計算する。
ステップS32において、時刻同期装置300の同期部350は、オフセット405の複数の計算値を蓄積する。即ち、同期部350は、2回以上の通信手順に対応する2つ以上のオフセット405を蓄積する。
ステップS33において、時刻同期装置300の同期部350は、蓄積した複数の計算値の統計処理を行う。同期部350は、その統計処理の結果に応じて、スレーブクロック301の時刻を調整する。具体的には、同期部350は、蓄積した複数の計算値の平均を統計処理の結果として用いて、スレーブクロック301の時刻を調整する。これにより、マスタクロック201の時刻とスレーブクロック301の時刻とが同期する。
本実施の形態では、前述したように、IEEE1588の原理が利用される。即ち、第1データ401と第2データ402と第3データ403と第4データ404とが同期フレームとして送受信される。具体的には、第1データ401がSyncメッセージとして送受信され、第2データ402がFollow_Upメッセージとして送受信され、第3データ403がDelay_Reqメッセージとして送受信され、第4データ404がDelay_Respメッセージとして送受信される。
マスタ装置200と時刻同期装置300との間の片道の遅延が往復の遅延の半分であると仮定すれば、記録部330により記録された第1データ401の受信時刻と補正部340により補正された第1データ401の受信時刻との合計から、第3データ403によって通知された、マスタ装置200で記録された第1データ401の送信時刻とマスタ装置200で補正された第1データ401の送信時刻との合計を引いた値と、第4データ404によって通知された、マスタ装置200で記録された第2データ402の受信時刻とマスタ装置200で補正された第2データ402の受信時刻との合計から、記録部330により記録された第2データ402の送信時刻と補正部340により補正された第2データ402の送信時刻との合計を引いた値との合計を4で割った値が、片道の遅延になる。そして、記録部330により記録された第1データ401の受信時刻と補正部340により補正された第1データ401の受信時刻との合計から、マスタ装置200で記録された第1データ401の送信時刻とマスタ装置200で補正された第1データ401の送信時刻との合計を引いた値を2で割った値と、マスタ装置200で記録された第2データ402の受信時刻とマスタ装置200で補正された第2データ402の受信時刻との合計から、記録部330により記録された第2データ402の送信時刻と補正部340により補正された第2データ402の送信時刻との合計を引いた値を2で割った値とのいずれか一方から、片道の遅延を引いた値が、オフセット405になる。
即ち、オフセット405をT_offset、マスタ装置200の記録部230により記録された第1データ401の送信時刻をT_m1、T_m1の補正値をT_m1’、時刻同期装置300の記録部330により記録された第1データ401の受信時刻をT_s1、T_s1の補正値をT_s1’、時刻同期装置300の記録部330により記録された第2データ402の送信時刻をT_s2、T_s2の補正値をT_s2’、マスタ装置200の記録部230により記録された第2データ402の受信時刻をT_m2、T_m2の補正値をT_m2’としたとき、T_offset=((T_s1+T_s1’)−(T_m1+T_m1’))/2−(((T_s1+T_s1’)−(T_m1+T_m1’))+((T_m2+T_m2’)−(T_s2+T_s2’)))/4=(((T_s1+T_s1’)−(T_m1+T_m1’))−((T_m2+T_m2’)−(T_s2+T_s2’)))/4、又は、T_offset=((T_m2+T_m2’)−(T_s2+T_s2’))/2−(((T_s1+T_s1’)−(T_m1+T_m1’))+((T_m2+T_m2’)−(T_s2+T_s2’)))/4=−(((T_s1+T_s1’)−(T_m1+T_m1’))−((T_m2+T_m2’)−(T_s2+T_s2’)))/4となる。ステップS31では、このような計算式を用いてオフセット405を求めることができる。
なお、補正部340により補正された第1データ401の受信時刻から、第3データ403によって通知された第1データ401の送信時刻を引いた値と、第4データ404によって通知された第2データ402の受信時刻から、補正部340により補正された第2データ402の送信時刻を引いた値との合計を2で割った値が、片道の遅延になるとみなしてもよい。この場合、補正部340により補正された第1データ401の受信時刻から、第3データ403によって通知された第1データ401の送信時刻を引いた値と、第4データ404によって通知された第2データ402の受信時刻から、補正部340により補正された第2データ402の送信時刻を引いた値とのいずれか一方から、片道の遅延を引いた値が、オフセット405になる。
即ち、ステップS31では、T_offset=(T_s1’−T_m1’)−((T_s1’−T_m1’)+(T_m2’−T_s2’))/2=((T_s1’−T_m1’)−(T_m2’−T_s2’))/2、又は、T_offset=(T_m2’−T_s2’)−((T_s1’−T_m1’)+(T_m2’−T_s2’))/2=−((T_s1’−T_m1’)(T_m2’−T_s2’))/2という計算式を用いてオフセット405を求めてもよい。
図6を参照して、マスタ装置200及び時刻同期装置300の実装例を説明する。
時刻同期装置300の受信部310及び送信部320の機能は、PHY302及びMAC303(Media・Access・Control)に実装される。PHY302及びMAC303は、時刻同期装置300に内蔵されるハードウェアである。具体的には、PHY302は、OSI参照モデルの物理層の処理を行うチップであり、MAC303は、OSI参照モデルのデータリンク層の処理を行うチップである。なお、PHY302及びMAC303は、同じチップに統合されていてもよい。
同じように、マスタ装置200の送信部210及び受信部220の機能も、PHY202及びMAC203に実装される。PHY202は、物理層の処理を行うチップであり、MAC203は、データリンク層の処理を行うチップである。
時刻同期装置300の記録部330の機能は、MACドライバ304に実装される。MACドライバ304は、時刻同期装置300に搭載されるソフトウェアである。具体的には、MACドライバ304は、MAC303を制御及び操作するためにOS305によって利用されるミドルウェアである。MACドライバ304は、スレーブクロック301を用いてタイムスタンプを生成するソフトウェアタイムスタンプ機能を有する。
同じように、マスタ装置200の記録部230の機能も、MACドライバ204に実装される。MACドライバ204は、MAC203を制御及び操作するためにOS205によって利用されるミドルウェアである。MACドライバ204は、マスタクロック201を用いてタイムスタンプを生成するソフトウェアタイムスタンプ機能を有する。
時刻同期装置300の補正部340及び同期部350の機能は、時刻同期アプリケーション306に実装される。時刻同期アプリケーション306は、時刻同期装置300に搭載されるソフトウェアである。具体的には、時刻同期アプリケーション306は、他のアプリケーション307とともにOS305の上で動作するアプリケーションプログラムである。時刻同期アプリケーション306は、MACドライバ304により生成されるタイムスタンプの揺らぎを補正するための補正テーブル308を管理する。
同じように、マスタ装置200の補正部240の機能も、時刻同期アプリケーション206に実装される。時刻同期アプリケーション206は、他のアプリケーション207とともにOS205の上で動作するアプリケーションプログラムである。時刻同期アプリケーション206は、MACドライバ204により生成されるタイムスタンプの揺らぎを補正するための補正テーブル208を管理する。
時刻を送信するマスタ装置200と、時刻を同期させる時刻同期装置300は、時刻同期に関して、同一の階層構造を持つ。この階層構造は、OS205,305及び時刻同期アプリケーション206,306に対応するアプリケーション層、MACドライバ204,304及びMAC203,303に対応するデータリンク層、PHY202,302に対応する物理層という3層構造である。このように、本実施の形態に係る時刻同期プロトコルでは、アプリケーション層から、OSI参照モデルのトランスポート層及びネットワーク層を介さず、データリンク層が直接アクセスされる。
図7を参照して、図6に示した例におけるマスタ装置200及び時刻同期装置300の動作を説明する。
マスタ装置200が同期フレームとしてSyncメッセージを送信するステップS41において、時刻同期アプリケーション206は、Syncメッセージである同期フレームを生成する。時刻同期アプリケーション206は、この同期フレームには時刻を格納しない。OS205は、時刻同期アプリケーション206で同期フレームが生成されたことを検知すると、優先割り込みを起動し、この同期フレームを他のフレームよりも先にMACドライバ204に入力する。MACドライバ204は、同期フレームが入力された時点でソフトウェアタイムスタンプを生成することで、同期フレームの送信時刻T_m1を記録する。その後、MACドライバ204は、MAC203に同期フレームを入力する。MAC203は、PHY202より同期フレームを送信する。MACドライバ204は、記録した送信時刻T_m1を時刻同期アプリケーション206にフィードバックする。時刻同期アプリケーション206は、MACドライバ204よりフィードバックされた送信時刻T_m1を補正テーブル208の1行目の空いている列のうち最初の列に格納する。時刻同期アプリケーション206は、正規分布に従う乱数を生成し、生成した乱数を補正テーブル208の2行目の同じ列に格納する。時刻同期アプリケーション206は、補正テーブル208の1行目に格納した送信時刻T_m1から、補正テーブル208の2行目に格納した乱数を引くことで、送信時刻T_m1の揺らぎを補正する。時刻同期アプリケーション206は、補正済の送信時刻T_m1’を補正テーブル208の3行目の同じ列に格納する。なお、送信時刻T_m1は、送信時刻T_m1から乱数を引く代わりに、送信時刻T_m1に乱数を足す等、他の方法で補正されてもよい。また、送信時刻T_m1、乱数、補正済の送信時刻T_m1’を補正テーブル208の何行目の何列目に格納するかは適宜変更することができる。
時刻同期装置300が同期フレームとしてSyncメッセージを受信するステップS51において、PHY302は、マスタ装置200から同期フレームを受信する。PHY302は、受信した同期フレームをMAC303に入力する。MACドライバ304は、MAC303に同期フレームが入力されたことを検知した時点でソフトウェアタイムスタンプを生成することで、同期フレームの受信時刻T_s1を記録する。その後、MACドライバ304は、記録した受信時刻T_s1を時刻同期アプリケーション306に即座に入力する。時刻同期アプリケーション306は、MACドライバ304より入力された受信時刻T_s1を補正テーブル308の1行目の空いている列のうち最初の列に格納する。時刻同期アプリケーション306は、正規分布に従う乱数を生成し、生成した乱数を補正テーブル308の2行目の同じ列に格納する。時刻同期アプリケーション306は、補正テーブル308の1行目に格納した受信時刻T_s1から、補正テーブル308の2行目に格納した乱数を引くことで、受信時刻T_s1の揺らぎを補正する。時刻同期アプリケーション306は、補正済の受信時刻T_s1’を補正テーブル308の3行目の同じ列に格納する。なお、受信時刻T_s1は、受信時刻T_s1から乱数を引く代わりに、受信時刻T_s1に乱数を足す等、他の方法で補正されてもよい。また、受信時刻T_s1、乱数、補正済の受信時刻T_s1’を補正テーブル308の何行目の何列目に格納するかは適宜変更することができる。
マスタ装置200が同期フレームとしてFollow_Upメッセージを送信するステップS42において、時刻同期アプリケーション206は、Follow_Upメッセージである同期フレームを生成する。時刻同期アプリケーション206は、この同期フレームに、補正テーブル208の1行目及び3行目に格納した補正前及び補正済の送信時刻T_m1,T_m1’の組のうち最後の列に格納した補正前及び補正済の送信時刻T_m1,T_m1’の組、即ち、直前のSyncメッセージの補正前及び補正済の送信時刻T_m1,T_m1’を格納する。OS205は、時刻同期アプリケーション206で同期フレームが生成されたことを検知すると、優先割り込みを起動し、この同期フレームを他のフレームよりも先にMACドライバ204に入力する。MACドライバ204は、同期フレームが入力された時点でソフトウェアタイムスタンプを生成する。しかし、MACドライバ204は、同期フレームがFollow_Upメッセージであることを検知し、生成したタイムスタンプをバッファ等に一定時間保持するだけで時刻同期アプリケーション206にはフィードバックしない。その後、MACドライバ204は、MAC203に同期フレームを入力する。MAC203は、PHY202より同期フレームを送信する。
時刻同期装置300が同期フレームとしてFollow_Upメッセージを受信するステップS52において、PHY302は、マスタ装置200から同期フレームを受信する。PHY302は、受信した同期フレームをMAC303に入力する。MACドライバ304は、MAC303に同期フレームが入力されたことを検知した時点でソフトウェアタイムスタンプを生成する。しかし、MACドライバ304は、同期フレームがFollow_Upメッセージであることを検知し、生成したタイムスタンプをバッファ等に一定時間保持するだけで時刻同期アプリケーション306には入力しない。その後、MACドライバ304は、同期フレームを、OS305を介して時刻同期アプリケーション306に入力する。時刻同期アプリケーション306は、MACドライバ304より入力された同期フレームがFollow_Upメッセージであることを検知し、同期フレームに格納された補正前及び補正済の送信時刻T_m1,T_m1’を抽出する。
時刻同期装置300が同期フレームとしてDelay_Reqメッセージを送信するステップS53において、時刻同期アプリケーション306は、Delay_Reqメッセージである同期フレームを生成する。時刻同期アプリケーション306は、この同期フレームには時刻を格納しない。OS305は、時刻同期アプリケーション306で同期フレームが生成されたことを検知すると、優先割り込みを起動し、この同期フレームを他のフレームよりも先にMACドライバ304に入力する。MACドライバ304は、同期フレームが入力された時点でソフトウェアタイムスタンプを生成することで、同期フレームの送信時刻T_s2を記録する。その後、MACドライバ304は、MAC303に同期フレームを入力する。MAC303は、PHY302より同期フレームを送信する。MACドライバ304は、記録した送信時刻T_s2を時刻同期アプリケーション306にフィードバックする。時刻同期アプリケーション306は、MACドライバ304よりフィードバックされた送信時刻T_s2を補正テーブル308の4行目の空いている列のうち最初の列に格納する。時刻同期アプリケーション306は、正規分布に従う乱数を生成し、生成した乱数を補正テーブル308の5行目の同じ列に格納する。時刻同期アプリケーション306は、補正テーブル308の4行目に格納した送信時刻T_s2から、補正テーブル308の5行目に格納した乱数を引くことで、送信時刻T_s2の揺らぎを補正する。時刻同期アプリケーション306は、補正済の送信時刻T_s2’を補正テーブル308の6行目の同じ列に格納する。なお、送信時刻T_s2は、送信時刻T_s2から乱数を引く代わりに、送信時刻T_s2に乱数を足す等、他の方法で補正されてもよい。また、送信時刻T_s2、乱数、補正済の送信時刻T_s2’を補正テーブル308の何行目の何列目に格納するかは適宜変更することができる。
マスタ装置200が同期フレームとしてDelay_Reqメッセージを受信するステップS43において、PHY202は、時刻同期装置300から同期フレームを受信する。PHY202は、受信した同期フレームをMAC203に入力する。MACドライバ204は、MAC203に同期フレームが入力されたことを検知した時点でソフトウェアタイムスタンプを生成することで、同期フレームの受信時刻T_m2を記録する。その後、MACドライバ204は、記録した受信時刻T_m2を時刻同期アプリケーション206に即座に入力する。時刻同期アプリケーション206は、MACドライバ204より入力された受信時刻T_m2を補正テーブル208の4行目の空いている列のうち最初の列に格納する。時刻同期アプリケーション206は、正規分布に従う乱数を生成し、生成した乱数を補正テーブル208の5行目の同じ列に格納する。時刻同期アプリケーション206は、補正テーブル208の4行目に格納した受信時刻T_m2から、補正テーブル208の5行目に格納した乱数を引くことで、受信時刻T_m2の揺らぎを補正する。時刻同期アプリケーション206は、補正済の受信時刻T_m2’を補正テーブル208の6行目の同じ列に格納する。なお、受信時刻T_m2は、受信時刻T_m2から乱数を引く代わりに、受信時刻T_m2に乱数を足す等、他の方法で補正されてもよい。また、受信時刻T_m2、乱数、補正済の受信時刻T_m2’を補正テーブル208の何行目の何列目に格納するかは適宜変更することができる。
マスタ装置200が同期フレームとしてDelay_Respメッセージを送信するステップS44において、時刻同期アプリケーション206は、Delay_Respメッセージである同期フレームを生成する。時刻同期アプリケーション206は、この同期フレームに、補正テーブル208の4行目及び6行目に格納した補正前及び補正済の受信時刻T_m,T_m2’の組のうち最後の列に格納した補正前及び補正済の受信時刻T_m,T_m2’の組、即ち、直前のDelay_Reqメッセージの補正前及び補正済の受信時刻T_m,T_m2’を格納する。OS205は、時刻同期アプリケーション206で同期フレームが生成されたことを検知すると、優先割り込みを起動し、この同期フレームを他のフレームよりも先にMACドライバ204に入力する。MACドライバ204は、同期フレームが入力された時点でソフトウェアタイムスタンプを生成する。しかし、MACドライバ204は、同期フレームがDelay_Respメッセージであることを検知し、生成したタイムスタンプをバッファ等に一定時間保持するだけで時刻同期アプリケーション206にはフィードバックしない。その後、MACドライバ204は、MAC203に同期フレームを入力する。MAC203は、PHY202より同期フレームを送信する。
時刻同期装置300が同期フレームとしてDelay_Respメッセージを受信するステップS54において、PHY302は、マスタ装置200から同期フレームを受信する。PHY302は、受信した同期フレームをMAC303に入力する。MACドライバ304は、MAC303に同期フレームが入力されたことを検知した時点でソフトウェアタイムスタンプを生成する。しかし、MACドライバ304は、同期フレームがDelay_Respメッセージであることを検知し、生成したタイムスタンプをバッファ等に一定時間保持するだけで時刻同期アプリケーション306には入力しない。その後、MACドライバ304は、同期フレームを、OS305を介して時刻同期アプリケーション306に入力する。時刻同期アプリケーション306は、MACドライバ304より入力された同期フレームがDelay_Respメッセージであることを検知し、同期フレームに格納された補正前及び補正済の受信時刻T_m,T_m2’を抽出する。
ステップS54の後、時刻同期アプリケーション306は、ステップS51で補正テーブル308の1行目及び3行目に格納した補正前及び補正済の受信時刻T_s1,T_s1’と、ステップS52で抽出した補正前及び補正済の送信時刻T_m1,T_m1’と、ステップS53で補正テーブル308の4行目及び6行目に格納した補正前及び補正済の送信時刻T_s2,T_s2’と、ステップS54で抽出した補正前及び補正済の受信時刻T_m2,T_m2’とを用いて、オフセット405を計算する。計算式としては、前述したように、T_offset=(((T_s1+T_s1’)−(T_m1+T_m1’))−((T_m2+T_m2’)−(T_s2+T_s2’)))/4、又は、T_offset=−(((T_s1+T_s1’)−(T_m1+T_m1’))−((T_m2+T_m2’)−(T_s2+T_s2’)))/4を用いることができるが、他の式が用いられてもよい。
以降、ステップS41からステップS44までの手順とステップS51からステップS54までの手順とが繰り返し実行される。
***効果の説明***
本実施の形態では、ソフトウェアクロックを用いて記録される時刻が補正されるため、ソフトウェアベース実装による時刻同期方式の時刻同期精度が向上する。
実施の形態2.
本実施の形態について、主に実施の形態1との差異を説明する。
図8を参照して、本実施の形態に係る時刻同期システム100の構成例を説明する。
本例では、図1に示した例と同じツリー型のネットワークトポロジーが採用されている。
実施の形態1では、全てのサブネットワーク内部の時刻同期に第2時刻同期方式102が適用されるが、本実施の形態では、一部のサブネットワーク内部の時刻同期に第1時刻同期方式101が適用される。
したがって、GM110に接続されたPLC120のうち、一部のPLC120は、第1時刻同期方式101における時刻送信側の端末でもあり、マスタ装置200及び時刻同期装置300の両方に相当する。また、その一部のPLC120に接続されたフィールドデバイス130は、第1時刻同期方式101における時刻受信側の端末であり、時刻同期装置300に相当する。
本実施の形態に係るマスタ装置200及び時刻同期装置300の構成及び動作については、実施の形態1のものと同じである。
実施の形態3.
本実施の形態について、主に実施の形態1との差異を説明する。
図9を参照して、本実施の形態に係る時刻同期システム100の構成例を説明する。
本例では、ライン型のネットワークトポロジーが部分的に採用されている。GM110に3台のPLC120が直列に接続されている。これら3台のPLC120の下位には、少なくとも1台のPLC120又は少なくとも2台のフィールドデバイス130が接続され、ツリー型のサブネットワークが構成されている。
GM110と、GM110に直列に接続されたPLC120との間の時刻同期には、第1時刻同期方式101が適用される。GM110に直列に接続されたPLC120同士の時刻同期にも、第1時刻同期方式101が適用される。
したがって、GM110に直列に接続されたPLC120のうち、中間の2台のPLC120は、第1時刻同期方式101における時刻送信側の端末でもあり、マスタ装置200及び時刻同期装置300の両方に相当する。このように、本実施の形態は、マスタ機能をGM110と2台のPLC120とに分散した形態になっている。
なお、GM110に直列に接続されたPLC120のうち、中間の2台のPLC120は、第1時刻同期方式101における時刻送信側の端末にならずに、GM110と他のPLC120との間で送受信される同期フレームを単に転送するだけでもよい。その場合、中間の2台のPLC120は、時刻同期装置300のみに相当する。このように、本実施の形態は、マスタ機能をGM110に集約した形態に変更することができる。
本実施の形態に係るマスタ装置200及び時刻同期装置300の構成及び動作については、実施の形態1のものと同じである。
以下では、図10を参照して、本発明の実施の形態に係る時刻同期装置300のハードウェア構成例を説明する。
時刻同期装置300は、コンピュータである。時刻同期装置300は、プロセッサ901、補助記憶装置902、メモリ903、通信装置904、入力インタフェース905、ディスプレイインタフェース906といったハードウェアを備える。プロセッサ901は、信号線910を介して他のハードウェアと接続され、これら他のハードウェアを制御する。入力インタフェース905は、入力装置907に接続されている。ディスプレイインタフェース906は、ディスプレイ908に接続されている。
プロセッサ901は、プロセッシングを行うIC(Integrated・Circuit)である。プロセッサ901は、例えば、CPU(Central・Processing・Unit)、DSP(Digital・Signal・Processor)、又は、GPU(Graphics・Processing・Unit)である。
補助記憶装置902は、ROM(Read・Only・Memory)、フラッシュメモリ、又は、HDD(Hard・Disk・Drive)等の記録媒体である。
メモリ903は、例えば、RAM(Random・Access・Memory)である。
通信装置904は、データを受信するレシーバ921及びデータを送信するトランスミッタ922を含む。通信装置904は、例えば、通信チップ又はNIC(Network・Interface・Card)である。
入力インタフェース905は、入力装置907のケーブル911が接続されるポートである。入力インタフェース905は、例えば、USB(Universal・Serial・Bus)端子である。
ディスプレイインタフェース906は、ディスプレイ908のケーブル912が接続されるポートである。ディスプレイインタフェース906は、例えば、USB端子又はHDMI(登録商標)(High・Definition・Multimedia・Interface)端子である。
入力装置907は、例えば、マウス、タッチペン、キーボード、又は、タッチパネルである。
ディスプレイ908は、例えば、LCD(Liquid・Crystal・Display)である。
補助記憶装置902には、受信部310、送信部320、記録部330、補正部340、同期部350といった「部」の機能を実現するプログラムが記憶されている。このプログラムは、メモリ903にロードされ、プロセッサ901に読み込まれ、プロセッサ901によって実行される。補助記憶装置902には、OSも記憶されている。OSの少なくとも一部がメモリ903にロードされ、プロセッサ901はOSを実行しながら、「部」の機能を実現するプログラムを実行する。
図10では、1つのプロセッサ901が示されているが、時刻同期装置300が複数のプロセッサ901を備えていてもよい。そして、複数のプロセッサ901が「部」の機能を実現するプログラムを連携して実行してもよい。
「部」の処理の結果を示す情報やデータや信号値や変数値は、補助記憶装置902、メモリ903、又は、プロセッサ901内のレジスタ又はキャッシュメモリに記憶される。
「部」を「サーキットリ」で提供してもよい。また、「部」を「回路」又は「工程」又は「手順」又は「処理」に読み替えてもよい。「回路」及び「サーキットリ」は、プロセッサ901だけでなく、ロジックIC、GA(Gate・Array)、ASIC(Application・Specific・Integrated・Circuit)、FPGA(Field−Programmable・Gate・Array)といった他の種類の処理回路をも包含する概念である。
なお、図10に示したハードウェア構成は、本発明の実施の形態に係るマスタ装置200にも適用することができる。
以上、本発明の実施の形態について説明したが、これらの実施の形態のうち、いくつかを組み合わせて実施しても構わない。或いは、これらの実施の形態のうち、いずれか1つ又はいくつかを部分的に実施しても構わない。例えば、これらの実施の形態の説明において「部」として説明するもののうち、いずれか1つのみを採用してもよいし、いくつかの任意の組み合わせを採用してもよい。なお、本発明は、これらの実施の形態に限定されるものではなく、必要に応じて種々の変更が可能である。
100 時刻同期システム、101 第1時刻同期方式、102 第2時刻同期方式、110 GM、120 PLC、130 フィールドデバイス、200 マスタ装置、201 マスタクロック、202 PHY、203 MAC、204 MACドライバ、205 OS、206 時刻同期アプリケーション、207 他のアプリケーション、208 補正テーブル、210 送信部、220 受信部、230 記録部、240 補正部、300 時刻同期装置、301 スレーブクロック、302 PHY、303 MAC、304 MACドライバ、305 OS、306 時刻同期アプリケーション、307 他のアプリケーション、308 補正テーブル、310 受信部、320 送信部、330 記録部、340 補正部、350 同期部、400 ネットワーク、401 第1データ、402 第2データ、403 第3データ、404 第4データ、405 オフセット、901 プロセッサ、902 補助記憶装置、903 メモリ、904 通信装置、905 入力インタフェース、906 ディスプレイインタフェース、907 入力装置、908 ディスプレイ、910 信号線、911 ケーブル、912 ケーブル、921 レシーバ、922 トランスミッタ。

Claims (5)

  1. マスタクロックを有するマスタ装置から第1データを繰り返し受信する受信部と、
    前記受信部により前記第1データが受信される度に、前記マスタ装置に第2データを送信する送信部と、
    前記受信部により前記第1データが受信される度に、ソフトウェアクロックであるスレーブクロックを用いて、前記受信部での前記第1データの受信時刻を記録し、前記送信部により前記第2データが送信される度に、前記スレーブクロックを用いて、前記送信部での前記第2データの送信時刻を記録する記録部と、
    前記記録部により前記第1データの受信時刻が記録される度に、正規分布に従う乱数を用いて、前記記録部により記録された前記第1データの受信時刻を補正し、前記記録部により前記第2データの送信時刻が記録される度に、正規分布に従う乱数を用いて、前記記録部により記録された前記第2データの送信時刻を補正する補正部と、
    前記受信部により前記第1データが受信されてから前記補正部により前記第1データの受信時刻と前記第2データの送信時刻とが補正されるまでの一連の手順が実行される度に、前記マスタ装置から通知される前記マスタ装置で記録された前記第1データの送信時刻と前記マスタ装置で正規分布に従う乱数を用いて補正された前記第1データの送信時刻との合計と、前記記録部により記録された前記第1データの受信時刻と前記補正部により補正された前記第1データの受信時刻との合計との差、及び、前記記録部により記録された前記第2データの送信時刻と前記補正部により補正された前記第2データの送信時刻との合計と、前記マスタ装置から通知される前記マスタ装置で記録された前記第2データの受信時刻と前記マスタ装置で正規分布に従う乱数を用いて補正された前記第2データの受信時刻との合計との差から、前記マスタクロックと前記スレーブクロックとの時刻のずれであるオフセットを計算し、前記オフセットの複数の計算値を蓄積し、蓄積した複数の計算値の統計処理を行い、前記統計処理の結果に応じて、前記スレーブクロックの時刻を調整する同期部と
    を備える時刻同期装置。
  2. 前記同期部は、蓄積した複数の計算値の平均を前記統計処理の結果として用いて、前記スレーブクロックの時刻を調整する請求項に記載の時刻同期装置。
  3. 前記受信部は、前記マスタ装置から、前記マスタ装置での前記第1データの送信時刻を通知するための第3データと前記マスタ装置での前記第2データの受信時刻を通知するための第4データとを受信し、
    前記同期部は、前記オフセットを計算する際に、前記受信部により受信された前記第3データと前記第4データとを参照する請求項1又は2に記載の時刻同期装置。
  4. 請求項1からのいずれか1項に記載の時刻同期装置と、
    ソフトウェアクロックであるマスタクロックを用いて、前記第1データの送信時刻と前記第2データの受信時刻とを記録し、記録した前記第1データの送信時刻と前記第2データの受信時刻とを補正し、前記時刻同期装置に、記録した前記第1データの送信時刻と前記第2データの受信時刻と、補正した前記第1データの送信時刻と前記第2データの受信時刻とを通知するマスタ装置と
    を備える時刻同期システム。
  5. マスタクロックを有するマスタ装置が、第1データを繰り返し送信し、
    ソフトウェアクロックであるスレーブクロックを有する時刻同期装置が、前記マスタ装置から前記第1データが送信される度に、前記第1データを受信し、
    前記時刻同期装置が、前記第1データを受信する度に、第2データを送信し、
    前記マスタ装置が、前記時刻同期装置から前記第2データが送信される度に、前記第2データを受信し、
    前記マスタ装置が、前記第1データを送信する度に、マスタクロックを用いて、前記第1データの送信時刻を記録し、正規分布に従う乱数を用いて、記録した前記第1データの送信時刻を補正し、記録した前記第1データの送信時刻と、補正した前記第1データの送信時刻とを通知し、
    前記時刻同期装置が、前記第1データを受信する度に、前記スレーブクロックを用いて、前記第1データの受信時刻を記録し、正規分布に従う乱数を用いて、記録した前記第1データの受信時刻を補正し、
    前記時刻同期装置が、前記第2データを送信する度に、前記スレーブクロックを用いて、前記第2データの送信時刻を記録し、正規分布に従う乱数を用いて、記録した前記第2データの送信時刻を補正し、
    前記マスタ装置が、前記第2データを受信する度に、前記マスタクロックを用いて、前記第2データの受信時刻を記録し、正規分布に従う乱数を用いて、記録した前記第2データの受信時刻を補正し、記録した前記第2データの受信時刻と、補正した前記第2データの受信時刻とを通知し、
    前記時刻同期装置が、前記第1データを受信してから前記第1データの受信時刻と前記第2データの送信時刻とを補正するまでの一連の手順を実行する度に、前記マスタ装置から通知された前記マスタ装置で記録された前記第1データの送信時刻と前記マスタ装置で補正された前記第1データの送信時刻との合計と、記録した前記第1データの受信時刻と補正した前記第1データの受信時刻との合計との差、及び、記録した前記第2データの送信時刻と補正した前記第2データの送信時刻との合計と、前記マスタ装置から通知された前記マスタ装置で記録された前記第2データの受信時刻と前記マスタ装置で補正された前記第2データの受信時刻との合計との差から、前記マスタクロックと前記スレーブクロックとの時刻のずれであるオフセットを計算し、前記オフセットの複数の計算値を蓄積し、蓄積した複数の計算値の統計処理を行い、前記統計処理の結果に応じて、前記スレーブクロックの時刻を調整する時刻同期方法。
JP2017522769A 2015-06-08 2015-06-08 時刻同期装置及び時刻同期システム及び時刻同期方法 Active JP6261822B2 (ja)

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
PCT/JP2015/066503 WO2016199196A1 (ja) 2015-06-08 2015-06-08 時刻同期装置及び時刻同期システム及び時刻同期方法

Publications (2)

Publication Number Publication Date
JPWO2016199196A1 JPWO2016199196A1 (ja) 2017-07-27
JP6261822B2 true JP6261822B2 (ja) 2018-01-17

Family

ID=57504772

Family Applications (1)

Application Number Title Priority Date Filing Date
JP2017522769A Active JP6261822B2 (ja) 2015-06-08 2015-06-08 時刻同期装置及び時刻同期システム及び時刻同期方法

Country Status (7)

Country Link
JP (1) JP6261822B2 (ja)
KR (1) KR101847366B1 (ja)
CN (1) CN107636627B (ja)
DE (1) DE112015006604B4 (ja)
SG (1) SG11201709362WA (ja)
TW (1) TWI599863B (ja)
WO (1) WO2016199196A1 (ja)

Families Citing this family (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
KR20190013077A (ko) * 2017-07-31 2019-02-11 한국전기연구원 이더캣 네트워크의 마스터와 슬레이브들 간의 동기화 오차 보상을 위한 동기화 오차 보상시스템 및 그 동기화 오차 보상방법
US11050501B2 (en) * 2018-06-14 2021-06-29 Microchip Technology Incorporated Performing PHY-level hardware timestamping and time synchronization in cost-sensitive environments
JP6800390B2 (ja) * 2018-09-21 2020-12-16 三菱電機株式会社 通信装置、通信システム、通信方法および通信プログラム
CN110244635A (zh) * 2019-06-24 2019-09-17 中国航空无线电电子研究所 具有计算转发时间功能的远程数据集中器

Family Cites Families (9)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US8473638B2 (en) * 2008-05-02 2013-06-25 James Aweya Method and apparatus for time and frequency transfer in communication networks
JP5211987B2 (ja) * 2008-09-26 2013-06-12 ブラザー工業株式会社 端末装置及びその時刻調整方法
JP2013074527A (ja) * 2011-09-28 2013-04-22 Fujitsu Ltd 伝送装置、伝送システム及び通信制御方法
JP2013083450A (ja) * 2011-10-06 2013-05-09 Sony Corp 時刻制御装置、時刻制御方法、およびプログラム
JP2013152095A (ja) * 2012-01-24 2013-08-08 Sony Corp 時刻制御装置、時刻制御方法、およびプログラム
CN102742190A (zh) * 2012-02-01 2012-10-17 华为技术有限公司 时间同步方法和设备及系统
CN104641589B (zh) 2012-09-11 2018-10-16 三菱电机株式会社 校正参数计算装置及时刻同步系统、以及校正参数计算方法
JP6158621B2 (ja) * 2013-07-19 2017-07-05 京セラドキュメントソリューションズ株式会社 画像形成装置及び画像形成方法
JP2015035158A (ja) * 2013-08-09 2015-02-19 ルネサスエレクトロニクス株式会社 データ処理システム

Also Published As

Publication number Publication date
CN107636627A (zh) 2018-01-26
CN107636627B (zh) 2020-12-29
DE112015006604B4 (de) 2020-08-20
KR101847366B1 (ko) 2018-04-09
WO2016199196A1 (ja) 2016-12-15
SG11201709362WA (en) 2017-12-28
KR20170125405A (ko) 2017-11-14
TW201643569A (zh) 2016-12-16
DE112015006604T5 (de) 2018-02-22
TWI599863B (zh) 2017-09-21
JPWO2016199196A1 (ja) 2017-07-27

Similar Documents

Publication Publication Date Title
CN101960770B (zh) 时钟同步系统、节点和时钟同步方法
US7747888B2 (en) Technique to create link determinism
JP6149150B2 (ja) スキューのあるマルチレーン通信リンクにおけるタイムスタンプ補正
JP6261822B2 (ja) 時刻同期装置及び時刻同期システム及び時刻同期方法
EP2515501A1 (en) Media clock negotiation
EP3076572B1 (en) Clock synchronization method for multiple clock domains, line card, and ethernet device
US20140325107A1 (en) Reception apparatus, information processing apparatus and method of receiving data
KR20120095221A (ko) 메모리 소자 및 메모리 컨트롤 유닛
JP5544896B2 (ja) 受信回路、情報処理装置、およびバッファ制御方法
JP2016517680A5 (ja)
WO2016058344A1 (zh) 一种确定链路延时的方法、装置、通信设备和存储介质
US20130215910A1 (en) Transmission apparatus, transmission method, program, and communication system
US9568944B2 (en) Distributed timer subsystem across multiple devices
US9991981B2 (en) Method for operating a node of a communications network, a node and a communications network
CN102916758A (zh) 以太网时间同步装置和网络设备
US7593498B2 (en) Method and apparatus for automatic rate identification and channel synchronization in a master-slave setting for high data throughput applications
US7694176B2 (en) Fault-tolerant computer and method of controlling same
CN102790652A (zh) 数据通信系统及方法
JP2010108407A (ja) 同期メッセージ発行装置、同期メッセージ発行システム、同期メッセージ発行方法および同期メッセージ発行プログラム
CN115225775B (zh) 多通道的延迟修正方法、装置、计算机设备
US20240014916A1 (en) Companion metadata for precision time protocol (ptp) hardware clock
WO2020217402A1 (ja) 時刻ずれ計算装置、時刻ずれ計算プログラム及び時刻ずれ計算方法
CN111865467A (zh) 用于时延测试的分布式机箱板卡间时钟同步系统及方法
JP5315882B2 (ja) 半導体装置及び通信方法
CN116991099A (zh) 一种低成本的硬件电机驱动器同步总线方法

Legal Events

Date Code Title Description
A521 Request for written amendment filed

Free format text: JAPANESE INTERMEDIATE CODE: A523

Effective date: 20170316

A621 Written request for application examination

Free format text: JAPANESE INTERMEDIATE CODE: A621

Effective date: 20170316

A131 Notification of reasons for refusal

Free format text: JAPANESE INTERMEDIATE CODE: A131

Effective date: 20170926

A521 Request for written amendment filed

Free format text: JAPANESE INTERMEDIATE CODE: A523

Effective date: 20171030

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: 20171114

A61 First payment of annual fees (during grant procedure)

Free format text: JAPANESE INTERMEDIATE CODE: A61

Effective date: 20171212

R150 Certificate of patent or registration of utility model

Ref document number: 6261822

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