(19)【発行国】日本国特許庁(JP)
(12)【公報種別】特許公報(B2)
(11)【特許番号】
(24)【登録日】2023-03-13
(45)【発行日】2023-03-22
(54)【発明の名称】情報処理装置、情報処理システム、及び情報処理方法
(51)【国際特許分類】
H04L 7/00 20060101AFI20230314BHJP
【FI】
H04L7/00 990
(21)【出願番号】P 2020142149
(22)【出願日】2020-08-25
【審査請求日】2022-02-16
(73)【特許権者】
【識別番号】000006507
【氏名又は名称】横河電機株式会社
(74)【代理人】
【識別番号】100147485
【氏名又は名称】杉村 憲司
(74)【代理人】
【識別番号】230118913
【氏名又は名称】杉村 光嗣
(74)【代理人】
【識別番号】100188307
【氏名又は名称】太田 昌宏
(74)【代理人】
【識別番号】230128026
【氏名又は名称】駒木 寛隆
(72)【発明者】
【氏名】梅崎 貴智
【審査官】北村 智彦
(56)【参考文献】
【文献】国際公開第2020/059137(WO,A1)
(58)【調査した分野】(Int.Cl.,DB名)
H04L 7/00
(57)【特許請求の範囲】
【請求項1】
一定の時間周期でカウンタ値をカウントアップすることにより時刻を測定する第1のカウンタと、通信手段とを備えた情報処理装置であって、
前記通信手段は、基準となる時刻を測定する第2のカウンタを備えた外部装置が送信した時刻保持用パケットを受信し、
前記通信手段は、前記第2のカウンタにより測定された、前記外部装置が前記時刻保持用パケットを送信した送信時刻を、前記外部装置から受信し、
前記第1のカウンタにより測定された前記時刻保持用パケットを受信した受信時刻と、前記送信時刻との差分を計算する計算手段と、
前記差分により、前記第1のカウンタのカウンタ値を補正する第1の補正手段と、
ドリフト補正を行う補正周期及び前記差分に基づき、前記第1のカウンタのカウンタ値を
1カウントだけ補正するタイミングを決定する決定手段と、
前記決定されたタイミングにおいて、前記第1のカウンタのカウンタ値を
1カウントだけ補正する第2の補正手段と
を備える情報処理装置。
【請求項2】
前記通信手段は、前記外部装置から、
前記補正周期を受信し、
前記通信手段は、前記補正周期の時間間隔で、前記外部装置から前記時刻保持用パケット及び当該時刻保持用パケットの送信時刻を受信し、
前記計算手段は、前記外部装置から前記時刻保持用パケット及び当該時刻保持用パケットの送信時刻を受信したことに応じて、前記差分を計算し、
前記決定手段は、前記計算手段が前記差分を計算したことに応じて、前記補正周期を前記差分に対応する前記第1のカウンタのカウント数で除した値により定められる時間周期を前記タイミングとして決定し、
前記第2の補正手段は、前記決定されたタイミングにおいて、前記第1のカウンタのカウンタ値を1
カウントだけ補正する
請求項1に記載の情報処理装置。
【請求項3】
前記通信手段は、前記計算手段により計算された前記差分が予め定められた値を下回ったことに応じて、第2の時刻保持用パケットを前記外部装置へ送信し、
前記通信手段は、前記第2のカウンタにより測定された、前記外部装置が前記第2の時刻保持用パケットを受信した受信時刻を、前記外部装置から受信し、
前記計算手段は、前記第1のカウンタにより測定された前記第2の時刻保持用パケットを送信した送信時刻と、前記外部装置が前記第2の時刻保持用パケットを受信した受信時刻との差分である第2の差分を計算し、
前記第1の補正手段は、前記第2の差分に基づき、前記第1のカウンタのカウンタ値を補正する
請求項1又は2に記載の情報処理装置。
【請求項4】
前記第1の補正手段は、前記第2の差分の1/2の値により前記第1のカウンタのカウンタ値を補正する請求項3に記載の情報処理装置。
【請求項5】
一定の時間周期でカウンタ値をカウントアップすることにより時刻を測定する第1のカウンタと、第1の通信手段とを備えた第1の情報処理装置と、
基準となる時刻を測定する第2のカウンタと、第2の通信手段とを備えた第2の情報処理装置と
を備えた情報処理システムであって、
前記第2の情報処理装置の前記第2の通信手段は、前記第1の情報処理装置へ時刻保持用パケットを送信し、
前記第1の情報処理装置の前記第1の通信手段は、前記第2の情報処理装置が送信した前記時刻保持用パケットを受信し、
前記第2の情報処理装置の前記第2の通信手段は、前記第2のカウンタにより測定された、前記時刻保持用パケットを送信した送信時刻を前記第1の情報処理装置へ送信し、
前記第1の情報処理装置の前記第1の通信手段は、前記第2の情報処理装置が前記時刻保持用パケットを送信した送信時刻を受信し、
前記第1の情報処理装置は、
前記第1のカウンタにより測定された前記時刻保持用パケットを受信した受信時刻と、前記送信時刻との差分を計算する計算手段と、
前記差分により、前記第1のカウンタのカウンタ値を補正する第1の補正手段と、
ドリフト補正を行う補正周期及び前記差分に基づき、前記第1のカウンタのカウンタ値を
1カウントだけ補正するタイミングを決定する決定手段と、
前記決定されたタイミングにおいて、前記第1のカウンタのカウンタ値を
1カウントだけ補正する第2の補正手段と
を備える情報処理システム。
【請求項6】
一定の時間周期でカウンタ値をカウントアップすることにより時刻を測定する第1のカウンタと、通信手段とを備えた情報処理装置の情報処理方法であって、
前記通信手段が、基準となる時刻を測定する第2のカウンタを備えた外部装置が送信した時刻保持用パケットを受信し、
前記通信手段が、前記第2のカウンタにより測定された、前記外部装置が前記時刻保持用パケットを送信した送信時刻を、前記外部装置から受信し、
計算手段が、前記第1のカウンタにより測定された前記時刻保持用パケットを受信した受信時刻と、前記送信時刻との差分を計算し、
第1の補正手段が、前記差分により、前記第1のカウンタのカウンタ値を補正し、
決定手段が、
ドリフト補正を行う補正周期及び前記差分に基づき、前記第1のカウンタのカウンタ値を
1カウントだけ補正するタイミングを決定し、
第2の補正手段が、前記決定されたタイミングにおいて、前記第1のカウンタのカウンタ値を
1カウントだけ補正する
情報処理方法。
【発明の詳細な説明】
【技術分野】
【0001】
本開示は、情報処理装置、情報処理システム、及び情報処理方法に関する。
【背景技術】
【0002】
PLC(Programmable Logic Controller)、温調計、及びレコーダーなどの制御機器では、機器間において時刻同期が行われている。
【0003】
特許文献1には機器間における時刻同期に関する技術が記載されている。
【先行技術文献】
【特許文献】
【0004】
【発明の概要】
【発明が解決しようとする課題】
【0005】
しかし、従来の構成では、時刻の同期精度を高めようとするほど、機器間において頻繁にパケットを送受信する必要があった。また、必ずしも時刻同期の精度を高めることができなかった。
【0006】
本開示は、機器間におけるパケットの送受信を抑えつつ、時刻同期の精度を高めることが可能な情報処理装置、情報処理システム、及び情報処理方法を提供することを目的とする。
【課題を解決するための手段】
【0007】
幾つかの実施形態に係る情報処理装置は、一定の時間周期でカウンタ値をカウントアップすることにより時刻を測定する第1のカウンタと、通信手段とを備えた情報処理装置であって、前記通信手段は、基準となる時刻を測定する第2のカウンタを備えた外部装置が送信した時刻保持用パケットを受信し、前記通信手段は、前記第2のカウンタにより測定された、前記外部装置が前記時刻保持用パケットを送信した送信時刻を、前記外部装置から受信し、前記第1のカウンタにより測定された前記時刻保持用パケットを受信した受信時刻と、前記送信時刻との差分を計算する計算手段と、前記差分により、前記第1のカウンタのカウンタ値を補正する第1の補正手段と、前記差分に基づき、前記第1のカウンタのカウンタ値を補正するタイミングを決定する決定手段と、前記決定されたタイミングにおいて、前記第1のカウンタのカウンタ値を補正する第2の補正手段とを備える。このように、情報処理装置は、時刻保持用パケットの送受信時刻の差分に基づいて定められる補正タイミングにおいて、第1のカウンタのカウンタ値を自動的に補正するため、機器間におけるパケットの送受信を抑えつつ、時刻同期の精度を高めることが可能となる。
【0008】
一実施形態において、前記通信手段は、前記外部装置から、ドリフト補正を行う補正周期を受信し、前記通信手段は、前記補正周期の時間間隔で、前記外部装置から前記時刻保持用パケット及び当該時刻保持用パケットの送信時刻を受信し、前記計算手段は、前記外部装置から前記時刻保持用パケット及び当該時刻保持用パケットの送信時刻を受信したことに応じて、前記差分を計算し、前記決定手段は、前記計算手段が前記差分を計算したことに応じて、前記補正周期を前記差分に対応する前記第1のカウンタのカウント数で除した値により定められる時間周期を前記タイミングとして決定し、前記第2の補正手段は、前記決定されたタイミングにおいて、前記第1のカウンタのカウンタ値を1だけ補正する。このように、情報処理装置は、ドリフト補正を行う補正周期を時刻保持用パケットの送受信時刻の差分に対応する第1のカウンタのカウント数で除した値により定められる時間周期において、第1のカウンタのカウンタ値を自動的に1だけ補正する。そのため、情報処理装置は、外部装置と頻繁に通信することなく、第1のカウンタの分解能に応じた高精度な時刻同期を行うことが可能となる。
【0009】
一実施形態において、前記通信手段は、前記計算手段により計算された前記差分が予め定められた値を下回ったことに応じて、第2の時刻保持用パケットを前記外部装置へ送信し、前記通信手段は、前記第2のカウンタにより測定された、前記外部装置が前記第2の時刻保持用パケットを受信した受信時刻を、前記外部装置から受信し、前記計算手段は、前記第1のカウンタにより測定された前記第2の時刻保持用パケットを送信した送信時刻と、前記外部装置が前記第2の時刻保持用パケットを受信した受信時刻との差分である第2の差分を計算し、前記補正手段は、前記第2の差分に基づき、前記第1のカウンタのカウンタ値を補正する。例えば、前記補正手段は、前記第2の差分の1/2の値により前記第1のカウンタのカウンタ値を補正してもよい。このように、情報処理装置は、第2の時刻保持用パケットの送受信時刻の差分に基づき第1のカウンタのカウンタ値を補正するため、外部装置との間の通信遅延に起因する時間的ずれを補正することが可能となる。
【0010】
幾つかの実施形態に係る情報処理システムは、一定の時間周期でカウンタ値をカウントアップすることにより時刻を測定する第1のカウンタと、第1の通信手段とを備えた第1の情報処理装置と、基準となる時刻を測定する第2のカウンタと、第2の通信手段とを備えた第2の情報処理装置とを備える。前記第2の情報処理装置の前記第2の通信手段は、前記第1の情報処理装置へ時刻保持用パケットを送信し、前記第1の情報処理装置の前記第1の通信手段は、前記第2の情報処理装置が送信した前記時刻保持用パケットを受信し、前記第2の情報処理装置の前記第2の通信手段は、前記第2のカウンタにより測定された、前記時刻保持用パケットを送信した送信時刻を前記第1の情報処理装置へ送信し、前記第1の情報処理装置の前記第1の通信手段は、前記第2の情報処理装置が前記時刻保持用パケットを送信した送信時刻を受信し、前記第1の情報処理装置は、前記第1のカウンタにより測定された前記時刻保持用パケットを受信した受信時刻と、前記送信時刻との差分を計算する計算手段と、前記差分に基づき、前記第1のカウンタのカウンタ値を補正するタイミングを決定する決定手段と、前記決定されたタイミングにおいて、前記第1のカウンタのカウンタ値を補正する補正手段とを備える。このように、第1の情報処理装置は、時刻保持用パケットの送受信時刻の差分に基づいて定められる補正タイミングにおいて、第1のカウンタのカウンタ値を自動的に補正するため、機器間におけるパケットの送受信を抑えつつ、時刻同期の精度を高めることが可能となる。
【0011】
幾つかの実施形態に係る情報処理方法は、一定の時間周期でカウンタ値をカウントアップすることにより時刻を測定する第1のカウンタと、通信手段とを備えた情報処理装置の情報処理方法であって、前記通信手段が、基準となる時刻を測定する第2のカウンタを備えた外部装置が送信した時刻保持用パケットを受信し、前記通信手段が、前記第2のカウンタにより測定された、前記外部装置が前記時刻保持用パケットを送信した送信時刻を、前記外部装置から受信し、計算手段が、前記第1のカウンタにより測定された前記時刻保持用パケットを受信した受信時刻と、前記送信時刻との差分を計算し、第1の補正手段が、前記差分により、前記第1のカウンタのカウンタ値を補正し、決定手段が、前記差分に基づき、前記第1のカウンタのカウンタ値を補正するタイミングを決定し、第2の補正手段が、前記決定されたタイミングにおいて、前記第1のカウンタのカウンタ値を補正する。このように、情報処理装置は、時刻保持用パケットの送受信時刻の差分に基づいて定められる補正タイミングにおいて、第1のカウンタのカウンタ値を自動的に補正するため、機器間におけるパケットの送受信を抑えつつ、時刻同期の精度を高めることが可能となる。
【発明の効果】
【0012】
本開示によれば、機器間におけるパケットの送受信を抑えつつ、時刻同期の精度を高めることが可能な情報処理装置、情報処理システム、及び情報処理方法を提供することができる。
【図面の簡単な説明】
【0013】
【
図1】本開示の一実施形態に係る時刻同期システムの構成例を示す図である。
【
図2】本開示の一実施形態に係る時刻同期システムの動作例を示す図である。
【
図3】比較例に係る時刻同期システムの構成を示す図である。
【発明を実施するための形態】
【0014】
<比較例>
図3は、比較例に係る時刻同期システム9の構成を示す図である。
図3の構成において、時刻同期システム9は、機器A80及び機器B90を備える。機器A80は、時刻用カウンタ81、送信時刻保持部82、受信時刻保持部83、パケット送信部84、及びパケット受信部85を備える。機器B90は、時刻用カウンタ91、送信時刻保持部92、受信時刻保持部93、パケット送信部94、パケット受信部95、及び差分計算部96を備える。機器A80のパケット送信部84から機器B90へ送信されたパケット71は、機器B90のパケット受信部95において受信される。機器B90のパケット送信部94から機器A80へ送信されたパケット72は、機器A80のパケット受信部85において受信される。機器A80の時刻用カウンタ81は基準となるカウンタであり、時刻同期システム9において、機器B90の時刻用カウンタ91を機器A80の時刻用カウンタ81に合わせて同期させる処理が行われる。
【0015】
機器A80の時刻用カウンタ81及び機器B90の時刻用カウンタ91はいずれも、独立した発振源を元にしたカウンタであり、非同期に動作している。これらの時刻用カウンタ81及び時刻用カウンタ91を同期させる場合、例えば、IEEE1588のように、機器間においてパケットを送受信して時刻の差分を補正することができる。このような時刻同期の処理手順は、次の動作191~動作198のとおりである。
【0016】
(動作191)
機器A80は、パケット送信部84から機器B90へ、時刻保持用パケット71を送信する。機器B90は、パケット受信部95において、時刻保持用パケット71を受信する。
【0017】
(動作192)
機器A80は、パケット送信部84から時刻保持用パケット71を送信した時刻であるパケット送信時刻を送信時刻保持部82に保持する。機器B90は、パケット受信部95において時刻保持用パケット71を受信した時刻であるパケット受信時刻を受信時刻保持部93に保持する。
【0018】
(動作193)
機器A80は、動作192において送信時刻保持部82に保持したパケット送信時刻を示すパケット71を、パケット送信部84から機器B90へ送信する。機器B90は、パケット受信部95において、パケット送信時刻を示すパケット71を受信する。
【0019】
(動作194)
機器B90の差分計算部96は、動作192において受信時刻保持部93に保持したパケット受信時刻と、動作193において機器A80から受信したパケット71により示されるパケット送信時刻との差分を計算する。差分計算部96は、計算した差分により、時刻用カウンタ91を補正する。
【0020】
(動作195)
機器B90は、パケット送信部94から機器A80へ、時刻保持用パケット72を送信する。機器A80は、パケット受信部85において、時刻保持用パケット72を受信する。
【0021】
(動作196)
機器A80は、パケット受信部85において時刻保持用パケット72を受信した時刻であるパケット受信時刻を受信時刻保持部83に保持する。機器B90は、パケット送信部94から時刻保持用パケット72を送信した時刻であるパケット送信時刻を送信時刻保持部92に保持する。
【0022】
(動作197)
機器A80は、動作196において受信時刻保持部83に保持したパケット受信時刻を示すパケット71を、パケット送信部84から機器B90へ送信する。機器B90は、パケット受信部95において、パケット送信時刻を示すパケット71を受信する。
【0023】
(動作198)
機器B90の差分計算部96は、動作196において送信時刻保持部92に保持したパケット送信時刻と、動作197において機器A80から受信したパケット71により示されるパケット受信時刻との差分を計算する。差分計算部96は、計算した差分により機器間の通信による遅延時間を計算し、その遅延時間により時刻用カウンタ91を補正する。
【0024】
上述の処理による時刻同期には、次のような問題がある。
【0025】
まず、機器A80の時刻用カウンタ81及び機器B90の時刻用カウンタ91においてはいずれも、発振源の周波数偏差によるドリフトが発生する。そのため、時刻用カウンタ81及び時刻用カウンタ91は、定期的に補正する必要がある。補正する頻度は、時刻精度を上げるほど高める必要がある。例えば、時刻用カウンタの精度が50ppm(parts per million)の場合、1秒間に50μsの誤差が生じる。この時刻用カウンタを1μsの精度に維持するためには1秒間に最低50回の補正を行わなければならない。したがって、精度を高めるには頻繁な補正が必要であり、そのためにはパケットの送受信の頻度(回数)を増加させる必要がある。
【0026】
また、動作194において機器B90の時刻用カウンタ91のずれを補正した後、動作198において機器間の通信による遅延時間を補正するまでの間にもドリフトによる時刻用カウンタのずれが発生する。したがって、上記の手法では、時刻同期を必ずしも高精度で行うことができない。
【0027】
<本開示の実施形態>
本開示は、補正の頻度を増やすことなく時刻同期の精度を高めるものである。以下、本開示の一実施形態が、図面を参照して説明される。各図面中、同一又は相当する部分には、同一符号を付している。本実施形態の説明において、同一又は相当する部分については、説明を適宜省略又は簡略化する。
【0028】
(時刻同期システムの構成)
図1は、本開示の一実施形態に係る時刻同期システム1の構成例を示す図である。
図1の例では、情報処理システムとしての時刻同期システム1は、外部装置又は第2の情報処理装置としての機器A10及び第1の情報処理装置としての機器B20を備える。機器A10は、第2のカウンタとしての時刻用カウンタ11、送信時刻保持部12、受信時刻保持部13、パケット送信部14、及びパケット受信部15を備える。機器A10のパケット送信部14及びパケット受信部15は、第1の通信手段として機能する。機器B20は、第1のカウンタとしての時刻用カウンタ21、送信時刻保持部22、受信時刻保持部23、パケット送信部24、パケット受信部25、差分計算部26、補正周期保持部27、及びドリフト補正部28を備える。機器B20のパケット送信部24及びパケット受信部25は、第2の通信手段として機能する。
【0029】
機器A10の時刻用カウンタ11は、基準となる時刻を測定するカウンタである。時刻同期システム1では、機器B20の時刻用カウンタ21を機器A10の時刻用カウンタ11に合わせて同期させる処理が行われる。時刻用カウンタ11は、予め定められた分解能(例えば、1ns)に対応する一定の時間周期でカウンタ値をカウントアップすることで時刻を測定する。
【0030】
送信時刻保持部12は、機器A10が機器B20へ時刻保持用パケットを送信した時刻を保持する保持部である。受信時刻保持部13は、機器A10が機器B20から時刻保持用パケットを受信した時刻を保持する保持部である。送信時刻保持部12及び受信時刻保持部13は、機器A10の時刻用カウンタ11により測定された時刻を保持する。パケット送信部14は、機器B20へパケットを送信する送信部である。パケット受信部15は、機器B20からパケットを受信する受信部である。
【0031】
機器B20の時刻用カウンタ21は、機器A10の時刻用カウンタ11に同期させられるカウンタである。時刻用カウンタ21は、予め定められた分解能(例えば、1ns)に対応する一定の時間周期でカウンタ値をカウントアップすることで時刻を測定する。
【0032】
送信時刻保持部22は、機器B20が機器A10へ時刻保持用パケットを送信した時刻を保持する保持部である。受信時刻保持部23は、機器B20が機器A10から時刻保持用パケットを受信した時刻を保持する保持部である。送信時刻保持部22及び受信時刻保持部23は、機器B20の時刻用カウンタ21により測定された時刻を保持する。パケット送信部24は、機器A10へパケットを送信する送信部である。パケット受信部25は、機器A10からパケットを受信する受信部である。
【0033】
計算手段及び第1の補正手段としての差分計算部26は、機器A10が送信した時刻保持用パケットの、機器A10において測定された送信時刻と機器B10において測定された受信時刻との差分等を計算する。補正周期保持部27は、後述するドリフト補正周期を保持する保持部である。決定手段及び第2の補正手段としてのドリフト補正部28は、ドリフト補正周期と、機器A10が送信した時刻保持用パケットの、機器A10において測定された送信時刻及び機器B10において測定された受信時刻の差分と、に基づきドリフト補正タイミングを計算する。ドリフト補正部28は、ドリフト補正タイミングにおいて、時刻用カウンタ21のカウンタ値を1カウント補正するドリフト補正を行う。
【0034】
機器A10のパケット送信部14から機器B20へ送信された各パケット31は、機器B20のパケット受信部25において受信される。機器B20のパケット送信部24から機器A10へ送信された各パケット32は、機器A10のパケット受信部15において受信される。
【0035】
(時刻同期システムの処理手順)
上記のような構成において、機器A10のパケット送信部14は、機器B20へ時刻保持用パケットを送信する。機器B20のパケット受信部25は、機器A10が送信した時刻保持用パケットを受信する。さらに、機器A10のパケット送信部14は、時刻用カウンタ11により測定された、時刻保持用パケットを送信した送信時刻を機器B20へ送信する。機器B20のパケット受信部25は、機器A10が時刻保持用パケットを送信した送信時刻を受信する。機器B20の差分計算部26は、時刻用カウンタ21により測定された時刻保持用パケットを受信した受信時刻と、機器A10から受信した送信時刻との差分を計算する。差分計算部26は、この差分により時刻用カウンタ21のカウンタ値を補正する。機器B20のドリフト補正部28は、計算した差分に基づき、時刻用カウンタ21のカウンタ値を補正するタイミングを決定する。ドリフト補正部28は、時刻用カウンタ21のカウンタ値を補正する。このように、機器B20は、時刻保持用パケットの送受信時刻の差分に基づいて定められる補正タイミングにおいて、時刻用カウンタ21のカウンタ値を自動的に補正する。したがって、機器B20によれば、機器間におけるパケットの送受信を抑えつつ、時刻同期の精度を高めることが可能となる。
【0036】
時刻同期システム1における時刻同期の処理手順は、次の動作110~動作140のとおりである。本実施形態に係る情報処理方法は、時刻同期システム1に含まれる各装置が次の処理を行うことにより実現される。
【0037】
○動作110
機器A10は、パケット送信部14から機器B20へ、ドリフト補正周期を示す補正周期パケット31を送信する。ドリフト補正周期とは、後述の動作121~動作127(「ドリフト補正」という。)を行う時間的間隔(補正周期)である。機器B20は、パケット受信部25において補正周期パケット31を受信し、補正周期パケット31により示されるドリフト補正周期を補正周期保持部27に保持する。
【0038】
○動作120
機器A10及び機器B20は、補正周期パケット31により示されるドリフト補正周期の時間間隔で、次の動作121~動作127を繰り返し実行する。これらの動作のうち、動作121~動作124は、比較例の動作191~動作194と同様である。さらに、機器B20は、動作121~動作127と並行して、動作128を実行する。
【0039】
(動作121)
機器A10は、パケット送信部14から機器B20へ、時刻保持用パケット31を送信する。機器B20は、パケット受信部25において、時刻保持用パケット31を受信する。
【0040】
(動作122)
機器A10は、動作121においてパケット送信部14から時刻保持用パケット31を送信した時刻であるパケット送信時刻を送信時刻保持部12に保持する。パケット送信時刻は、時刻用カウンタ11のカウンタ値により測定される。具体的には、例えば、パケット送信部14が、機器B20への時刻保持用パケット31を送信したことを送信時刻保持部12に通知する。これに応じて、送信時刻保持部12は、時刻用カウンタ11から時刻を取得して、保持する。
【0041】
機器B20は、パケット受信部25において時刻保持用パケット31を受信した時刻であるパケット受信時刻を受信時刻保持部23に保持する。パケット受信時刻は、時刻用カウンタ21のカウンタ値により測定される。具体的には、例えば、パケット受信部25が、機器A10からの時刻保持用パケット31を受信したことを受信時刻保持部23に通知する。これに応じて、受信時刻保持部23は、時刻用カウンタ21から時刻を取得して、保持する。
【0042】
(動作123)
機器A10は、動作122において送信時刻保持部12に保持したパケット送信時刻を示すパケット31を、パケット送信部14から機器B20へ送信する。機器B20は、パケット受信部25において、このパケット送信時刻を示すパケット31を受信する。
【0043】
(動作124)
機器B20の差分計算部26は、動作122において受信時刻保持部23に保持したパケット受信時刻と、動作123において機器A10から受信したパケット31により示されるパケット送信時刻との差分を計算する。差分計算部26は、計算した差分により、時刻用カウンタ21のカウンタ値を補正する。
【0044】
(動作125)
機器B20のドリフト補正部28は、補正周期保持部27からドリフト補正周期を取得する。
【0045】
(動作126)
機器B20のドリフト補正部28は、動作124により計算された差分を差分計算部26から取得する。ドリフト補正部28は、差分を取得するたびに、その累積値を計算する。累積値の初期値には0が設定されている。したがって、動作124により計算された差分を取得したのが初回の場合、累積値はその差分の値となる。
【0046】
(動作127)
機器B20のドリフト補正部28は、動作125で取得したドリフト補正周期を、動作126で累積した差分に対応する時刻用カウンタ21のカウント数で除すことで、ドリフト補正タイミング(1カウント当たりの差分)を計算する。ドリフト補正タイミングは、機器A10の時刻用カウンタ11と機器B20の時刻用カウンタ21とが時刻用カウンタ21の1カウント分(例えば、1ns)ずれるのに要する時間に相当する。
【0047】
(動作128)
動作121~動作127と並行して、機器B20のドリフト補正部28は、時刻用カウンタ21を、ドリフト補正タイミング毎に1カウントだけ補正する。累積した差分の値が大きければ大きいほど、ドリフト補正タイミングは短くなる。これにより、機器A10の時刻用カウンタ11と機器B20の時刻用カウンタ21との誤差はより大きく補正される。結果として、差分計算部26から取得する差分は、0に近いプラス又はマイナスの値となる。その結果、差分の累積値は時刻用カウンタ21の誤差と同じ値に近づくように補正され、最終的に0に収束する。
【0048】
○動作130
機器B20は、ドリフト補正部28が差分計算部26から取得する差分が十分に0に近い値になってから、次の動作131~動作134を実行する。機器B20は、例えば、求められる精度に応じて予め定められた値(閾値)を取得した差分が下回るか否かを判定し、下回ると判定された場合に動作131~動作134を実行してもよい。これらの動作131~動作134は、比較例の動作195~動作198と同様である。
【0049】
(動作131)
機器B20は、パケット送信部24から機器A10へ、時刻保持用パケット32を送信する。機器A10は、パケット受信部15において、時刻保持用パケット32を受信する。
【0050】
(動作132)
機器A10は、パケット受信部15において時刻保持用パケット32を受信した時刻であるパケット受信時刻を受信時刻保持部13に保持する。パケット受信時刻は、時刻用カウンタ11のカウンタ値により測定される。具体的には、例えば、パケット受信部15が、機器B20からの時刻保持用パケット32を受信したことを受信時刻保持部13に通知する。これに応じて、受信時刻保持部13は、時刻用カウンタ11から時刻を取得して、保持する。
【0051】
機器B20は、パケット送信部24から時刻保持用パケット32を送信した時刻であるパケット送信時刻を送信時刻保持部22に保持する。パケット送信時刻は、時刻用カウンタ21のカウンタ値により測定される。具体的には、例えば、パケット送信部24が、機器A10への時刻保持用パケット31を送信したことを送信時刻保持部22に通知する。これに応じて、送信時刻保持部22は、時刻用カウンタ21から時刻を取得して、保持する。
【0052】
(動作133)
機器A10は、動作132において受信時刻保持部13に保持したパケット受信時刻を示すパケット31を、パケット送信部14から機器B20へ送信する。機器B20は、パケット受信部25において、パケット送信時刻を示すパケット31を受信する。
【0053】
(動作134)
機器B20の差分計算部26は、動作132において送信時刻保持部22に保持したパケット送信時刻と、動作133において機器A10から受信したパケット31により示されるパケット受信時刻との差分を計算する。差分計算部26は、計算した差分により機器間の通信による遅延時間を計算し、その遅延時間により時刻用カウンタ21を補正する。機器A10におけるパケット受信時刻と機器B20におけるパケット送信時刻との差分は、機器A10と機器B20と間を通信が往復するための時間が含まれる。そこで、例えば、差分計算部26は、機器A10におけるパケット受信時刻と機器B20におけるパケット送信時刻との差分の1/2を遅延時間として計算してもよい。
【0054】
○動作140
機器B20は、上記の動作120を継続し、機器A10と時刻が同期された状態を維持する。
【0055】
上記のように、機器B20のパケット受信部25は、機器A10から、ドリフト補正を行う補正周期を受信するとともに、この補正周期の時間間隔で、機器A10から時刻保持用パケット及び当該時刻保持用パケットの送信時刻を受信する。機器A10から時刻保持用パケット及び当該時刻保持用パケットの送信時刻を受信したことに応じて、機器B20の差分計算部26は、時刻用カウンタ21により測定された時刻保持用パケットの受信時刻と、機器A10から受信したその送信時刻との差分を計算する。ドリフト補正部28は、差分計算部26が差分を計算したことに応じて、ドリフト補正周期を差分に対応する時刻用カウンタ21のカウント数で除した値により定められる時間周期をドリフト補正のタイミングとして決定し、そのタイミングにおいて、時刻用カウンタ21のカウンタ値を1だけ補正する。このように、機器B20は、ドリフト補正を行う補正周期を時刻保持用パケットの送受信時刻の差分に対応する時刻用カウンタ21のカウント数で除した値により定められる時間周期において、時刻用カウンタ21のカウンタ値を自動的に1だけ補正する。そのため、機器B20は、機器A10と頻繁に通信することなく、時刻用カウンタ21の分解能に応じた高精度な時刻同期を行うことが可能となる。
【0056】
また、機器B20のパケット送信部24は、差分計算部26により計算された時刻保持用パケットの受信時刻と機器A10から受信したその送信時刻との差分が予め定められた値を下回ったことに応じて、第2の時刻保持用パケットを機器A10へ送信する。機器B20のパケット受信部25は、機器A10の時刻用カウンタ11により測定された、機器A10が第2の時刻保持用パケットを受信した受信時刻を、機器A10から受信する。機器B20の差分計算部26は、時刻用カウンタ21により測定された第2の時刻保持用パケットを送信した送信時刻と、機器A10が第2の時刻保持用パケットを受信した受信時刻との差分である第2の差分を計算する。機器B20の差分計算部26は、第2の差分に基づき、時刻用カウンタ21のカウンタ値を補正する。例えば、差分計算部26は、第2の差分の1/2の値により時刻用カウンタ21のカウンタ値を補正してもよい。このように、機器B20は、第2の時刻保持用パケットの送受信時刻の差分に基づき時刻用カウンタ21のカウンタ値を補正するため、機器A10との間の通信遅延に起因する時間的ずれを補正することが可能となる。
【0057】
(動作例)
本実施形態に係る時刻同期システム1の具体的な動作手順の例が、
図2を参照して説明される。以下、一例として時刻はμs単位で示されるが、別の単位でもよい。
【0058】
○手順210
機器A10は、パケット送信部14から機器B20へ、ドリフト補正周期として1sを通知する補正周期パケット31を送信する(
図2のS1)。機器B20は、パケット受信部25において補正周期パケット31を受信し、補正周期パケット31により示されるドリフト補正周期1sを補正周期保持部27に保持する(
図2のS2)。
【0059】
○手順220
機器A10及び機器B20は、ドリフト補正周期1sの間隔で、次の手順221~手順227を繰り返し実行する。機器B20は、手順221~手順227と並行して、手順228を実行する。
【0060】
(手順221)
機器A10は、パケット送信部14から機器B20へ、時刻保持用パケット31を送信する(
図2のS3)。機器B20は、パケット受信部25において、時刻保持用パケット31を受信する。
【0061】
(手順222)
機器A10のパケット送信部14は、手順221において機器B20へ時刻保持用パケット31を送信したことを送信時刻保持部12に通知する。これに応じて、送信時刻保持部12は、
図2のS4に示すように、時刻用カウンタ11から時刻301μsを取得して、これを保持する。
【0062】
機器B20のパケット受信部25は、時刻保持用パケット31を受信すると、受信時刻保持部23にパケット受信を通知する。これに応じて、受信時刻保持部23は時刻用カウンタ21から時刻106μsを取得して、これを保持する(
図2のS5)。
【0063】
(手順223)
機器A10は、手順222において送信時刻保持部12に保持された時刻情報301μsを示すパケット31を、パケット送信部14から機器B20へ送信する(
図2のS6)。機器B20は、パケット受信部25において、このパケット送信時刻を示すパケット31を受信する。
【0064】
(手順224)
機器B20の差分計算部26は、機器A10から受信したパケット31により示される時刻(
図2に示す例では301μs)と、受信時刻保持部23に保持された時刻情報(
図2に示す例では106μs)とから、時刻用カウンタ21のずれ195μs(=301μs-106μs)を計算する(
図2のS7)。差分計算部26は、
図2のS8に示すように、計算した差分により、時刻用カウンタ21を補正する。
【0065】
(手順225)
機器B20のドリフト補正部28は、補正周期保持部27からドリフト補正周期1sを取得する。
【0066】
(手順226)
機器B20のドリフト補正部28は、手順224により計算された差分を差分計算部26から取得する。ドリフト補正部28は、差分を取得するたびに、その累積値を計算する(
図2のS9)。
図2の例では、累積値は195μsとなる。
【0067】
(手順227)
機器B20のドリフト補正部28は、手順225で取得したドリフト補正周期1sを累積した差分195μsに対応する時刻用カウンタ21のカウント数で除してドリフト補正タイミングを計算する(
図2のS10)。例えば、時刻用カウンタ21の分解能が1nsである場合、差分195μsに対応する時刻用カウンタ21のカウント数は、195000カウントである。したがって、
図2に示す例では、ドリフト補正タイミングは、1s÷19500カウント=約5.128μs/カウントとなる。
【0068】
(手順228)
手順221~手順227と並行して、機器B20のドリフト補正部28は、ドリフト補正タイミング5.128μs毎に時刻用カウンタ21を1カウントだけ補正する(
図2のS11)。
【0069】
○手順230
ドリフト補正部28が差分計算部26から取得する差分が十分に0に近い値になってから、機器B20は、手順221から手順227の繰り返しを停止し、次の手順231~手順234を実行する。機器B20は、例えば、求められる精度に応じて予め定められた値を取得した差分が下回るか否かを判定し、下回ると判定された場合に手順231~手順234を実行してもよい。
【0070】
(手順231)
機器B20は、パケット送信部24から機器A10へ、時刻保持用パケット32を送信する(
図2のS12)。機器A10は、パケット受信部15において、時刻保持用パケット32を受信する。
【0071】
(手順232)
機器Aのパケット受信部15は、時刻保持用パケット32を受信すると、受信時刻保持部13にパケット受信を通知する。これに応じて、
図2のS13に示すように、受信時刻保持部13は時刻用カウンタ11から時刻522μsを取得して、これを保持する。
【0072】
機器B20のパケット送信部24は、手順231において機器A10へ時刻保持用パケット32を送信したことを送信時刻保持部22に通知する。これに応じて、
図2のS14に示すように、送信時刻保持部22は、時刻用カウンタ21から時刻(
図2の例では518μs)を取得して、これを保持する。
【0073】
(手順233)
機器A10は、手順232において受信時刻保持部13に保持したパケット受信時刻522μsを示すパケット31を、パケット送信部14から機器B20へ送信する(
図2のS15)。機器B20は、パケット受信部25において、パケット送信時刻(
図2に示す例では522μs)を示すパケット31を受信する。
【0074】
(手順234)
機器B20の差分計算部26は、機器A10から受信したパケット31により示されるパケット受信時刻522μsと、送信時刻保持部22に保持されたパケット送信時刻518μsとの差分4μs(=522μs-518μs)を計算する(
図2のS16)。そして、差分計算部26は、差分4μsの1/2である2μsを機器間の通信による遅延時間として計算し、その遅延時間により時刻用カウンタ21を補正する(
図2のS17)。
【0075】
○手順240
機器B20は、上記の手順220を継続し、機器A10と時刻が同期された状態を維持する。
【0076】
上記の構成によれば、補正の頻度を減らして高精度な時刻同期を確立させることができる。例えば、機器B20の時刻用カウンタ21の精度50ppmが分解能1nsである場合、時刻同期の精度を1/1000ppmにすることができる。その結果、従来の技術では1μsの精度を維持するためには1秒に50回の頻度で補正が必要であったが、1000秒に1回の頻度に減らすことができ、通信経路を他の通信に使用できるようになる。また、高精度ではない安価な発振器を使用して、機器B20の時刻用カウンタ21の分解能1nsに相当する高精度な時刻同期を確立させることができる。
【0077】
上記のように、時刻同期システム1では、機器B20が、ドリフト補正周期毎に時刻保持用パケットの送受信時刻の差分を自身で累積し、その値に基づきドリフト補正周期を決定して、自動的にドリフト補正を行う。そのため、時刻同期システム1によれば、任意の補正頻度で高精度な時刻同期をおこなうことができる。
【0078】
なお、機器A10と機器B20は通信パケットによる時刻情報のやり取りができればよく、任意の通信プロトコルで高精度な時刻同期を実現することができる。
【0079】
また、機器B20が複数ある場合においても、同様の手法により、時刻同期を行うことができる。機器B20が複数ある場合、その配線構成は、スター型配線又はデイジーチェーンなど、任意の構成をとることができる。
【0080】
本開示は上述の実施形態に限定されるものではない。例えば、ブロック図に記載の複数のブロックは統合されてもよい。あるいは、1つのブロックは、分割されてもよい。フローチャートに記載の複数のステップは、記述に従って時系列に実行する代わりに、各ステップを実行する装置の処理能力に応じて、又は必要に応じて、並列的に又は異なる順序で実行されてもよい。その他、本開示の趣旨を逸脱しない範囲での変更が可能である。
【符号の説明】
【0081】
1 時刻同期システム
10 機器A
11 時刻用カウンタ
12 送信時刻保持部
13 受信時刻保持部
14 パケット送信部
15 パケット受信部
20 機器B
21 時刻用カウンタ
22 送信時刻保持部
23 受信時刻保持部
24 パケット送信部
25 パケット受信部
26 差分計算部
27 補正周期保持部
28 ドリフト補正部
31、32 パケット
9 時刻同期システム
80 機器A
81 時刻用カウンタ
82 送信時刻保持部
83 受信時刻保持部
84 パケット送信部
85 パケット受信部
90 機器B
91 時刻用カウンタ
92 送信時刻保持部
93 受信時刻保持部
94 パケット送信部
95 パケット受信部
96 差分計算部
71、72 パケット