(57)【要約】【課題】スレーブ装置においてマスタ装置との完全な時刻同期化を実現する。【解決手段】スレーブ装置１２０において、マスタ装置１１０との間の時刻オフセットである第１の値（Offset）が算出され、時計部の時刻が第１の値だけ減算した値となるように補正される（(a)〜(i)）。スレーブ装置１２０において、時刻ｔ５に発行されたメッセージがマスタ装置１１０で受信される時刻の予想値である第２の値ｔ６′が算出され、実際の到着時刻ｔ６と比較され、時計部のカウントクロックの周波数は、ｔ６′＜ｔ６であるとき上げられ、逆のときに下げられる（(j)〜(P)）。上述の時計部の時刻補正とクロック周波数補正とが繰り返されることで、スレーブ装置１２０の時刻は、オフセット補正時点だけでなく、常に、マスタ装置１１０の時刻と一致するようになり、スレーブ装置１２０においてマスタ装置１１０との完全な時刻同期化が可能となる。【選択図】図２
2010197320.tif 000002
【特許請求の範囲】
【請求項１】
カウンタにより構成され、時刻情報を出力する時計部と、
上記カウンタをカウントアップするためのクロックを発生するクロック発生部と、
マスタ装置から送られてくるメッセージを受信するメッセージ受信部と、
上記マスタ装置にメッセージを送信するメッセージ送信部と、
上記時計部の時刻の補正に必要な第１の値を求める第１の演算部と、
上記第１の演算部で求められた上記第１の値に基づいて、上記時計部の時刻を補正する第１の補正部と、
上記クロック発生部で発生されるクロックの周波数の補正に必要な第２の値を求める第２の演算部と、
上記第２の演算部で求められた上記第２の値に基づいて、上記クロック発生部で発生されるクロックの周波数を補正する第２の補正部を備え、
上記メッセージ受信部は、上記マスタ装置において第１の時刻に発行された第１のメッセージと、上記マスタ装置において上記第１の時刻の後に発行された、該第１の時刻を示す時刻情報を含む第２のメッセージを受信し、
上記メッセージ送信部は、第３の時刻に上記マスタ装置に第３のメッセージを発行し、
上記メッセージ受信部は、上記マスタ装置において上記第３のメッセージが受信された後に発行された、該第３のメッセージが受信された第４の時刻を示す時刻情報を含む第４のメッセージを受信し、
上記第１の演算部は、上記メッセージ受信部で上記第１のメッセージが受信された時刻を第２の時刻とし、該第２の時刻から上記メッセージ受信部で受信された上記第２のメッセージに含まれる時刻情報が示す上記第１の時刻を減算して第１の減算結果を求め、上記メッセージ受信部で受信された上記第４のメッセージに含まれる時刻情報が示す上記第４の時刻から上記メッセージ送信部で上記第３のメッセージが発行された上記第３の時刻を減算して第２の減算結果を求め、上記第１の減算結果から上記第２の減算結果を減算した後に１／２にして上記第１の値を求め、
上記第１の補正部は、上記時計部の時刻を、上記第１の演算部で求められた上記第１の値だけ減算した値となるように補正し、
上記メッセージ送信部は、上記第１の補正部で上記時計部の時刻の補正が行われた後、第５の時刻に上記マスタ装置に第５のメッセージを発行し、
上記メッセージ受信部は、上記マスタ装置において上記第５のメッセージが受信された後に発行された、該第５のメッセージが受信された第６の時刻を示す時刻情報を含む第６のメッセージを受信し、
上記第２の演算部は、上記メッセージ送信部で上記第５のメッセージが発行された上記第５の時刻に、上記第１の演算部で求められた上記第１の減算結果および上記第２の減算結果の加算平均値を加算して上記第２の値を求め、
上記第２の補正部は、上記第２の演算部で求められた上記第２の値が、上記メッセージ受信部で受信された上記第６のメッセージに含まれる時刻情報が示す上記第６の時刻より小さいとき、上記クロック発生部で発生されるクロックの周波数を上げるように補正し、上記第２の値が上記第６の時刻より大きいとき、上記クロック発生部で発生されるクロックの周波数を下げるように補正する
スレーブ装置。
【請求項２】
上記メッセージ受信部で受信される上記第２のメッセージ、上記第４のメッセージおよび上記第６のメッセージに含まれる時刻情報はカウンタ値である
請求項１に記載のスレーブ装置。
【請求項３】
マスタ装置において第１の時刻に発行された第１のメッセージを受信する第１のメッセージ受信ステップと、
上記マスタ装置において上記第１の時刻の後に発行された、該第１の時刻を示す時刻情報を含む第２のメッセージを受信する第２のメッセージ受信ステップと、
第３の時刻に上記マスタ装置に第３のメッセージを発行する第１のメッセージ送信ステップと、
上記マスタ装置において上記第３のメッセージが受信された後に発行された、該第３のメッセージが受信された第４の時刻を示す時刻情報を含む第４のメッセージを受信する第３のメッセージ受信ステップと、
上記第１のメッセージ受信ステップで上記第１のメッセージが受信された時刻を第２の時刻とし、該第２の時刻から上記第２のメッセージ受信ステップで受信された上記第２のメッセージに含まれる時刻情報が示す上記第１の時刻を減算して第１の減算結果を求め、上記第３のメッセージ受信ステップで受信された上記第４のメッセージに含まれる時刻情報が示す上記第４の時刻から上記第１のメッセージ送信ステップで上記第３のメッセージが発行された上記第３の時刻を減算して第２の減算結果を求め、上記第１の減算結果から上記第２の減算結果を減算した後に１／２にして第１の値を求める第１の演算ステップと、
カウンタにより構成され、時刻情報を出力する時計部の時刻を、上記第１の演算ステップで求められた上記第１の値だけ減算した値となるように補正する時刻補正ステップと、
上記時刻補正ステップで上記時計部の時刻の補正が行われた後、第５の時刻に上記マスタ装置に第５のメッセージを発行する第２のメッセージ送信ステップと、
上記マスタ装置において上記第５のメッセージが受信された後に発行された、該第５のメッセージが受信された第６の時刻を示す時刻情報を含む第６のメッセージを受信する第４のメッセージ受信ステップと、
上記第２のメッセージ送信ステップで上記第５のメッセージが発行された上記第５の時刻に、上記第１の演算ステップで求められた上記第１の減算結果および上記第２の減算結果の加算平均値を加算して第２の値を求める第２の演算ステップと、
上記第２の演算ステップで求められた上記第２の値が、上記第４のメッセージ受信ステップで受信された上記第６のメッセージに含まれる時刻情報が示す上記第６の時刻より小さいとき、上記時計部のカウンタをカウントアップするためのクロックの周波数を上げるように補正し、上記第２の値が上記第６の時刻より大きいとき、上記時計部のカウンタをカウントアップするためのクロックの周波数を下げるように補正するクロック周波数補正ステップ
を備えるスレーブ装置の時刻同期方法。
【請求項４】
マスタ装置とスレーブ装置とからなる電子機器システムであって、
上記マスタ装置は、
カウンタにより構成され、時刻情報を出力する時計部と、
上記カウンタをカウントアップするためのクロックを発生するクロック発生部と、
上記スレーブ装置にメッセージを送信するメッセージ送信部と、
上記スレーブ装置から送られてくるメッセージを受信するメッセージ受信部を備え、
上記メッセージ送信部は、第１の時刻に、上記スレーブ装置に、第１のメッセージを発行すると共に、上記第１の時刻の後に、上記スレーブ装置に、該第１の時刻を示す時刻情報を含む第２のメッセージを発行し、
上記メッセージ受信部は、上記スレーブ装置において第３の時刻に発行された第３のメッセージを受信し、
上記メッセージ送信部は、上記メッセージ受信部で上記第３のメッセージを受信した後に、上記スレーブ装置に、該第３のメッセージを受信した第４の時刻を示す時刻情報を含む第４のメッセージを発行し、
上記メッセージ受信部は、上記スレーブ装置において上記第３の時刻の後の第５の時刻に発行された第５のメッセージを受信し、
上記メッセージ送信部は、上記メッセージ受信部で上記第５のメッセージを受信した後に、上記スレーブ装置に、該第５のメッセージを受信した第６の時刻を示す時刻情報を含む第６のメッセージを発行し、
上記スレーブ装置は、
カウンタにより構成され、時刻情報を出力する時計部と、
上記カウンタをカウントアップするためのクロックを発生するクロック発生部と、
上記マスタ装置から送られてくるメッセージを受信するメッセージ受信部と、
上記マスタ装置にメッセージを送信するメッセージ送信部と、
上記時計部の時刻の補正に必要な第１の値を求める第１の演算部と、
上記第１の演算部で求められた上記第１の値に基づいて、上記時計部の時刻を補正する第１の補正部と、
上記クロック発生部で発生されるクロックの周波数の補正に必要な第２の値を求める第２の演算部と、
上記第２の演算部で求められた上記第２の値に基づいて、上記クロック発生部で発生されるクロックの周波数を補正する第２の補正部を備え、
上記メッセージ受信部は、上記マスタ装置において上記第１の時刻に発行された上記第１のメッセージと、上記マスタ装置において上記第１の時刻の後に発行された、該第１の時刻を示す時刻情報を含む上記第２のメッセージを受信し、
上記メッセージ送信部は、上記第３の時刻に上記マスタ装置に上記第３のメッセージを発行し、
上記メッセージ受信部は、上記マスタ装置において上記第３のメッセージが受信された後に発行された、該第３のメッセージが受信された上記第４の時刻を示す時刻情報を含む上記第４のメッセージを受信し、
上記第１の演算部は、上記メッセージ受信部で上記第１のメッセージが受信された時刻を第２の時刻とし、該第２の時刻から上記メッセージ受信部で受信された上記第２のメッセージに含まれる時刻情報が示す上記第１の時刻を減算して第１の減算結果を求め、上記メッセージ受信部で受信された上記第４のメッセージに含まれる時刻情報が示す上記第４の時刻から上記メッセージ送信部で上記第３のメッセージが発行された上記第３の時刻を減算して第２の減算結果を求め、上記第１の減算結果から上記第２の減算結果を減算した後に１／２にして上記第１の値を求め、
上記第１の補正部は、上記時計部の時刻を、上記第１の演算部で求められた上記第１の値だけ減算した値となるように補正し、
上記メッセージ送信部は、上記第１の補正部で上記時計部の時刻の補正が行われた後、上記第５の時刻に上記マスタ装置に上記第５のメッセージを発行し、
上記メッセージ受信部は、上記マスタ装置において上記第５のメッセージが受信された後に発行された、該第５のメッセージが受信された上記第６の時刻を示す時刻情報を含む上記第６のメッセージを受信し、
上記第２の演算部は、上記メッセージ送信部で上記第５のメッセージが発行された上記第５の時刻に、上記第１の演算部で求められた上記第１の減算結果および上記第２の減算結果の加算平均値を加算して上記第２の値を求め、
上記第２の補正部は、上記第２の演算部で求められた上記第２の値が、上記メッセージ受信部で受信された上記第６のメッセージに含まれる時刻情報が示す上記第６の時刻より小さいとき、上記クロック発生部で発生されるクロックの周波数を上げるように補正し、上記第２の値が上記第６の時刻より大きいとき、上記クロック発生部で発生されるクロックの周波数を下げるように補正する
電子機器システム。
【請求項５】
カウンタにより構成され、時刻情報を出力する時計部と、
上記カウンタをカウントアップするためのクロックを発生するクロック発生部と、
スレーブ装置にメッセージを送信するメッセージ送信部と、
上記スレーブ装置から送られてくるメッセージを受信するメッセージ受信部を備え、
上記メッセージ送信部は、第１の時刻に、上記スレーブ装置に、第１のメッセージを発行すると共に、上記第１の時刻の後に、上記スレーブ装置に、該第１の時刻を示す上記カウンタのカウンタ値を含む第２のメッセージを発行し、
上記メッセージ受信部は、上記スレーブ装置において第３の時刻に発行された第３のメッセージを受信し、
上記メッセージ送信部は、上記メッセージ受信部で上記第３のメッセージを受信した後に、上記スレーブ装置に、該第３のメッセージを受信した第４の時刻を示す上記カウンタのカウンタ値を含む第４のメッセージを発行し、
上記メッセージ受信部は、上記スレーブ装置において上記第３の時刻の後の第５の時刻に発行された第５のメッセージを受信し、
上記メッセージ送信部は、上記メッセージ受信部で上記第５のメッセージを受信した後に、上記スレーブ装置に、該第５のメッセージを受信した第６の時刻を示す上記カウンタのカウンタ値を含む第６のメッセージを発行する
マスタ装置。
【請求項６】
カウンタにより構成され、時刻情報を出力する時計部と、
上記カウンタをカウントアップするためのクロックを発生するクロック発生部と、
マスタ装置から送られてくるメッセージを受信するメッセージ受信部と、
上記マスタ装置にメッセージを送信するメッセージ送信部と、
上記時計部の時刻の補正に必要な第１の値を求める第１の演算部と、
上記第１の演算部で求められた第１の値に基づいて、上記時計部の時刻を補正する第１の補正部と、
上記クロック発生部で発生されるクロックの周波数の補正に必要な第２の値を求める第２の演算部と、
上記第２の演算部で求められた上記第２の値に基づいて、上記クロック発生部で発生されるクロックの周波数を補正する第２の補正部を備え、
上記メッセージ受信部は、上記マスタ装置において第１の時刻に発行された第１のメッセージと、上記マスタ装置において上記第１の時刻の後に発行された、該第１の時刻を示す時刻情報を含む第２のメッセージを受信し、
上記第１の演算部は、上記メッセージ受信部で上記第１のメッセージが受信された時刻を第２の時刻とし、該第２の時刻から上記メッセージ受信部で受信された上記第２のメッセージに含まれる時刻情報が示す上記第１の時刻を減算して上記第１の値として第１の補正値を求め、
上記第１の補正部は、上記時計部の時刻を、上記第１の演算部で求められた上記第１の補正値だけ減算した値となるように第１段階の補正を行い、
上記メッセージ送信部は、上記第１の補正部で上記第１段階の補正が行われた後、第３の時刻に上記マスタ装置に第３のメッセージを発行し、
上記メッセージ受信部は、上記マスタ装置において上記第３のメッセージが受信された後に発行された、該第３のメッセージが受信された第４の時刻を示す時刻情報を含む第４のメッセージを受信し、
上記第１の演算部は、上記メッセージ受信部で受信された上記第４のメッセージに含まれる時刻情報が示す上記第４の時刻から上記メッセージ送信部で上記第３のメッセージが発行された上記第３の時刻を減算し、該減算結果を１／２にして上記第１の値として第２の補正値を求め、
上記第１の補正部は、上記第１段階の補正を行った後、上記時計部の時刻を、上記第１の演算部で求められた上記第２の補正値だけ加算した値となるように第２段階の補正を行い、
上記メッセージ送信部は、上記第１の補正部で上記第２段階の補正が行われた後、第５の時刻に上記マスタ装置に第５のメッセージを発行し、
上記メッセージ受信部は、上記マスタ装置において上記第５のメッセージが受信された後に発行された、該第５のメッセージが受信された第６の時刻を示す時刻情報を含む第６のメッセージを受信し、
上記第２の演算部は、上記メッセージ受信部で上記第１のメッセージが受信された上記第２の時刻から上記メッセージ受信部で受信された上記第２のメッセージに含まれる時刻情報が示す上記第１の時刻を減算して第１の減算結果を求め、上記メッセージ受信部で受信された上記第４のメッセージに含まれる時刻情報が示す上記第４の時刻から上記メッセージ送信部で上記第３のメッセージが発行された上記第３の時刻を減算して第２の減算結果を求め、上記メッセージ送信部で上記第５のメッセージが発行された上記第５の時刻に、上記第１の減算結果および上記第２の減算結果の加算平均値を加算して上記第２の値を求め、
上記第２の補正部は、上記第２の演算部で求められた上記第２の値が、上記メッセージ受信部で受信された上記第６のメッセージに含まれる時刻情報が示す上記第６の時刻より小さいとき、上記クロック発生部で発生されるクロックの周波数を上げるように補正し、上記第２の値が上記第６の時刻より大きいとき、上記クロック発生部で発生されるクロックの周波数を下げるように補正する
スレーブ装置。
【請求項７】
上記メッセージ受信部で受信される上記第２のメッセージ、上記第４のメッセージおよび上記第６のメッセージに含まれる時刻情報はカウンタ値である
請求項６に記載のスレーブ装置。
【請求項８】
マスタ装置において第１の時刻に発行された第１のメッセージを受信する第１のメッセージ受信ステップと、
上記マスタ装置において上記第１の時刻の後に発行された、該第１の時刻を示す時刻情報を含む第２のメッセージを受信する第２のメッセージ受信ステップと、
上記第１のメッセージ受信ステップで上記第１のメッセージが受信された時刻を第２の時刻とし、該第２の時刻から上記第２のメッセージ受信ステップで受信された上記第２のメッセージに含まれる時刻情報が示す上記第１の時刻を減算して第１の補正値を求める第１の演算ステップと、
カウンタで構成され、時刻情報を出力する時計部の時刻を、上記第１の演算ステップで求められた上記第１の補正値だけ減算した値となるように第１段階の補正を行う第１の時刻補正ステップと、
上記第１の時刻補正ステップで上記第１段階の補正が行われた後、第３の時刻に上記マスタ装置に第３のメッセージを発行する第１のメッセージ送信ステップと、
上記マスタ装置において上記第３のメッセージが受信された後に発行された、該第３のメッセージが受信された第４の時刻を示す時刻情報を含む第４のメッセージを受信する第３のメッセージ受信ステップと、
上記第３のメッセージ受信ステップで受信された上記第４のメッセージに含まれる時間情報が示す上記第４の時刻から上記メッセージ送信ステップで上記第３のメッセージが発行された上記第３の時刻を減算し、該減算結果を１／２にして第２の補正値を求める第２の演算ステップと、
上記時計部の時刻を、上記第２の演算ステップで求められた上記第２の補正値だけ加算した値となるように第２段階の補正を行う第２の時刻補正ステップと、
上記第２の時刻補正ステップで上記時計部の時刻の補正が行われた後、第５の時刻に上記マスタ装置に第５のメッセージを発行する第２のメッセージ送信ステップと、
上記マスタ装置において上記第５のメッセージが受信された後に発行された、該第５のメッセージが受信された第６の時刻を示す時刻情報を含む第６のメッセージを受信する第４のメッセージ受信ステップと、
上記第１のメッセージ受信ステップで上記第１のメッセージが受信された上記第２の時刻から上記第２のメッセージ受信ステップで受信された上記第２のメッセージに含まれる時刻情報が示す上記第１の時刻を減算して第１の減算結果を求め、上記第３のメッセージ受信ステップで受信された上記第４のメッセージに含まれる時刻情報が示す上記第４の時刻から上記第１のメッセージ送信ステップで上記第３のメッセージが発行された上記第３の時刻を減算して第２の減算結果を求め、上記第２のメッセージ送信ステップで上記第５のメッセージが発行された上記第５の時刻に、上記第１の減算結果および上記第２の減算結果の加算平均値を加算して予想値を求める第３の演算ステップと、
上記第３の演算ステップで求められた上記予想値が、上記第４のメッセージ受信ステップで受信された上記第６のメッセージに含まれる時刻情報が示す上記第６の時刻より小さいとき、上記時計部のカウンタをカウントアップするためのクロックの周波数を上げるように補正し、上記予想値が上記第６の時刻より大きいとき、上記時計部のカウンタをカウントアップするためのクロックの周波数を下げるように補正するクロック周波数補正ステップ
を備えるスレーブ装置の時刻同期方法。
【請求項９】
マスタ装置とスレーブ装置とからなる電子機器システムであって、
上記マスタ装置は、
カウンタにより構成され、時刻情報を出力する時計部と、
上記カウンタをカウントアップするためのクロックを発生するクロック発生部と、
上記スレーブ装置にメッセージを送信するメッセージ送信部と、
上記スレーブ装置から送られてくるメッセージを受信するメッセージ受信部を備え、
上記メッセージ送信部は、第１の時刻に、上記スレーブ装置に、第１のメッセージを発行すると共に、上記第１の時刻の後に、上記スレーブ装置に、該第１の時刻を示す時刻情報を含む第２のメッセージを発行し、
上記メッセージ受信部は、上記スレーブ装置において第３の時刻に発行された第３のメッセージを受信し、
上記メッセージ送信部は、上記メッセージ受信部で上記第３のメッセージを受信した後に、上記スレーブ装置に、該第３のメッセージを受信した第４の時刻を示す時刻情報を含む第４のメッセージを発行し、
上記メッセージ受信部は、上記スレーブ装置において、上記第３の時刻の後の第５の時刻に発行された第５のメッセージを受信し、
上記メッセージ送信部は、上記メッセージ受信部で上記第５のメッセージを受信した後に、上記スレーブ装置に、該第５のメッセージを受信した第６の時刻を示す時刻情報を含む第６のメッセージを発行し、
上記スレーブ装置は、
カウンタにより構成され、時刻情報を出力する時計部と、
上記カウンタをカウントアップするためのクロックを発生するクロック発生部と、
上記マスタ装置から送られてくるメッセージを受信するメッセージ受信部と、
上記マスタ装置にメッセージを送信するメッセージ送信部と、
上記時計部の時刻の補正に必要な第１の値を求める第１の演算部と、
上記第１の演算部で求められた第１の値に基づいて、上記時計部の時刻を補正する第１の補正部と、
上記クロック発生部で発生されるクロックの周波数の補正に必要な第２の値を求める第２の演算部と、
上記第２の演算部で求められた上記第２の値に基づいて、上記クロック発生部で発生されるクロックの周波数を補正する第２の補正部を備え、
上記メッセージ受信部は、上記マスタ装置において上記第１の時刻に発行された上記第１のメッセージと、上記マスタ装置において上記第１の時刻の後に発行された、該第１の時刻を示す時刻情報を含む上記第２のメッセージを受信し、
上記第１の演算部は、上記メッセージ受信部で上記第１のメッセージが受信された時刻を第２の時刻とし、該第２の時刻から上記メッセージ受信部で受信された上記第２のメッセージに含まれる時刻情報が示す上記第１の時刻を減算して上記第１の値として第１の補正値を求め、
上記第１の補正部は、上記時計部の時刻を、上記第１の演算部で求められた上記第１の補正値だけ減算した値となるように第１段階の補正を行い、
上記メッセージ送信部は、上記第１の補正部で上記第１段階の補正が行われた後、上記第３の時刻に上記マスタ装置に上記第３のメッセージを発行し、
上記メッセージ受信部は、上記マスタ装置において上記第３のメッセージが受信された後に発行された、該第３のメッセージが受信された上記第４の時刻を示す時刻情報を含む上記第４のメッセージを受信し、
上記第１の演算部は、上記メッセージ受信部で受信された上記第４のメッセージに含まれる時刻情報が示す上記第４の時刻から上記メッセージ送信部で上記第３のメッセージが発行された上記第３の時刻を減算し、該減算結果を１／２にして上記第１の値として第２の補正値を求め、
上記第１の補正部は、上記第１段階の補正を行った後、上記時計部の時刻を、上記第１の演算部で求められた上記第２の補正値だけ加算した値となるように第２段階の補正を行い、
上記メッセージ送信部は、上記第１の補正部で上記第２段階の補正が行われた後、上記第５の時刻に上記マスタ装置に上記第５のメッセージを発行し、
上記メッセージ受信部は、上記マスタ装置において上記第５のメッセージが受信された後に発行された、該第５のメッセージが受信された上記第６の時刻を示す時刻情報を含む上記第６のメッセージを受信し、
上記第２の演算部は、上記メッセージ受信部で上記第１のメッセージが受信された上記第２の時刻から上記メッセージ受信部で受信された上記第２のメッセージに含まれる時刻情報が示す上記第１の時刻を減算して第１の減算結果を求め、上記メッセージ受信部で受信された上記第４のメッセージに含まれる時刻情報が示す上記第４の時刻から上記メッセージ送信部で上記第３のメッセージが発行された上記第３の時刻を減算して第２の減算結果を求め、上記メッセージ送信部で上記第５のメッセージが発行された上記第５の時刻に、上記第１の減算結果および上記第２の減算結果の加算平均値を加算して上記第２の値を求め、
上記第２の補正部は、上記第２の演算部で求められた上記第２の値が、上記メッセージ受信部で受信された上記第６のメッセージに含まれる時刻情報が示す上記第６の時刻より小さいとき、上記クロック発生部で発生されるクロックの周波数を上げるように補正し、上記第２の値が上記第６の時刻より大きいとき、上記クロック発生部で発生されるクロックの周波数を下げるように補正する
電子機器システム。
【発明の詳細な説明】
【技術分野】
【０００１】
この発明は、スレーブ装置、スレーブ装置の時刻同期化方法、マスタ装置および電子機器システムに関し、特に、マスタ装置との完全な時刻同期化を可能とするスレーブ装置等に関する。
【背景技術】
【０００２】
近年、メディアのデジタル化が進み、ビデオカメラに代表されるように、映像ストリームをデジタルで記録する装置が多く商品化されている。また、映像ストリームのデジタル化に伴って、編集を容易に行う環境が広まってきている。
【０００３】
複数のビデオカメラで撮影された映像ストリームを組み合わせて一つの映像ストリームを構成するような編集を行う場合、映像ストリームのタイムスタンプを参照し、複数のストリームの撮影時刻の対応付けを行い、同一時刻の映像を切り替えることで撮影時刻が前後することのない映像ストリームを構築するという手法がとられる。
【０００４】
そのためには、使用するすべてのビデオカメラの内蔵時計を常に合わせておく必要がある。従来、例えば、イーサネット（登録商標）で接続された複数のビデオカメラ等の電子機器システムにおいて、各電子機器の内蔵時計の時刻同期化のために、ＩＥＥＥ１５８８プロトコルを利用することが知られている。
【０００５】
このＩＥＥＥ１５８８プロトコル（非特許文献１参照）では、既知の通り、スレーブ装置が、マスタ装置とスレーブ装置の時刻差(Offset)とネットワークや装置間のレイテンシを含めた経路による遅延(Delay)を演算、補正することにより、スレーブ装置の時刻をマスタ装置の時刻に同期させる。
【０００６】
図８は、ＩＥＥＥ１５８８プロトコルによる時刻同期化が行われる電子機器システム２００の構成例を示している。この電子機器システム２００は、マスタ装置２１０とスレーブ装置２２０により構成されている。例えば、電子機器システム２００が複数のビデオカメラからなるカメラシステムである場合には、マスタ装置２１０は親機としてのビデオカメラであり、スレーブ装置２２０は子機としてのビデオカメラである。また、例えば、電子機器システム２００が制御機器（コンピュータ）および複数の被制御機器からなる制御システムである場合、マスタ装置２１０は制御機器であり、スレーブ装置２２０は被制御機器である。
【０００７】
なお、図８には、説明を簡単にするため、スレーブ装置２２０が１台の場合を示している。また、図８には、マスタ装置２１０およびスレーブ装置２２０の構成として、時刻同期化に関係する部分のみを示しており、その他の部分は省略している。
【０００８】
マスタ装置２１０は、時計部２１１と、マスタクロック発生部２１２と、メッセージ送信部２１３と、メッセージ受信部２１４を有している。
【０００９】
時計部２１１は、マスタクロック発生部２１２で発生されるマスタクロックＣＬＫｍでカウントアップされるカウンタにより構成されている。カメラシステム等の映像システムの場合、マスタクロックＣＬＫｍの周波数は、例えば、ビデオ伝送の基準として採用されている２７ＭＨｚとされる。この時計部２１１より出力される時刻情報（カウンタ値）は、メッセージ送信部２１３およびメッセージ受信部２１４に供給されている。
【００１０】
メッセージ送信部２１３は、スレーブ装置２２０に、イーサネット（登録商標）等の伝送路２３０を介して、ＰＴＰ（Precision Time Protocol）メッセージを送信する。ここで、ＰＴＰメッセージに時刻情報を含める際には、時刻情報としてのカウンタ値をナノセコンド（ｎｓ：nano second）単位の値に変換することが必要となる。そのため、メッセージ送信部２１３は、カウンタ値からナノセコンド（ｎｓ）単位の値への変換を行うカウンタ値／ｎｓ変換部２１３ａを備えている。メッセージ受信部２１４は、スレーブ装置２２０から伝送路２３０を介して送られてくるＰＴＰメッセージを受信する。
【００１１】
メッセージ送信部２１３がスレーブ装置２２０に送信するＰＴＰメッセージとしては、同期化（Sync）メッセージと、フォローアップ（FollowUp）メッセージと、遅延応答（DelayResponse）メッセージがある。同期化メッセージは、時刻同期化の動作を開始するために送信される。フォローアップメッセージは、同期化メッセージが送信された後に、マスタ装置２１０の時刻情報を送るために送信される。遅延応答メッセージは、メッセージ受信部２１４でスレーブ装置２２０からの後述する遅延要求（DelayRequest）メッセージを受信した後に、その応答として送信される。
【００１２】
スレーブ装置２２０は、時計部２２１と、スレーブクロック発生部２２２と、メッセージ受信部２２３と、メッセージ送信部２２４と、演算部２２５と、補正部２２６を有している。
【００１３】
時計部２２１は、スレーブクロック発生部２２２で発生されるスレーブクロックＣＬＫｓでカウントアップされるカウンタにより構成されている。カメラシステム等の映像システムの場合、スレーブクロックＣＬＫｓの周波数は、上述のマスタクロックＣＬＫｍの周波数と同様に、例えば、ビデオ伝送の基準として採用されている２７ＭＨｚとされる。この時計部２２１より出力される時刻情報（カウンタ値）は、メッセージ受信部２２３およびメッセージ送信部２２４に供給されている。
【００１４】
メッセージ受信部２２３は、マスタ装置２１０から伝送路２３０を介して送られてくるＰＴＰメッセージを受信する。上述したように、マスタ装置２１０から送られてくるＰＴＰメッセージに含まれる時刻情報は、ナノセコンド（ｎｓ）単位の値の情報である。そのため、メッセージ受信部２２３は、ナノセコンド（ｎｓ）単位の値からカウンタ値への変換を行うｎｓ／カウンタ値変換部２２３ａを備えている。メッセージ送信部２２４は、マスタ装置２１０に、伝送路２３０を介して、ＰＴＰメッセージを送信する。
【００１５】
メッセージ送信部２２４がマスタ装置２１０に送信するＰＴＰメッセージとしては、遅延要求（DelayRequest）メッセージがある。この遅延要求メッセージは、メッセージ受信部２２３でマスタ装置２１０からのフォローアップメッセージが受信された後に、マスタ装置２１０に遅延応答メッセージを要求するために送信される。
【００１６】
演算部２２５は、時計部２２１の時刻の補正に必要な補正値を求める。この演算部２２５は、以下の（１）式により、補正値として、マスタ装置２１０の時計部２１１の時刻Ｍｔ（ｘ）に対する、スレーブ装置２２０の時計部２２１の時刻Ｓｔ（ｘ）のオフセット（Offset）を求める。
Offset＝｛（ｔ２−ｔ１）−（ｔ４−ｔ３）｝／２      ・・・（１）
【００１７】
ここで、時刻ｔ２は、メッセージ受信部２２３で同期化メッセージが受信された時刻である。時刻ｔ１は、メッセージ受信部２２３で受信されたフォローアップメッセージの時刻情報が示す時刻である。時刻ｔ４は、メッセージ受信部２２３で受信された遅延応答メッセージの時刻情報が示す時刻である。さらに、時刻ｔ３は、メッセージ送信部２２４がマスタ装置２１０に遅延要求メッセージを送信（発行）した時刻である。
【００１８】
補正部２２６は、演算部２２５で求められた補正値であるオフセット（Offset）に基づいて、時計部２２１の時刻を補正する。補正前の時計部２２１の時刻Ｓｔ（ｘ）は、マスタ装置２１０の時計部２１１の時刻Ｍｔ（ｘ）にオフセット（Offset）が加わった状態となっている。そこで、補正部２２６は、時計部２２１の時刻Ｓｔ（ｘ）を、オフセット（Offset）だけ減算した値となるように、スレーブクロック発生部２２２から発生されるスレーブクロックＣＬＫｓに同期したタイミングで補正する。
【００１９】
図９は、図８に示す電子機器システム２００における時刻同期化の動作を示すシーケンス図を示している。
【００２０】
（ａ）マスタ装置２１０のメッセージ送信部２１３からスレーブ装置２２０に、同期化（Sync）メッセージが送信されて、時刻同期化の動作が開始される。この場合、メッセージ送信部２１３では、当該同期化メッセージの発行（送信）時刻ｔ１が時計部２１１の出力であるカウンタ値で記憶される。
【００２１】
（ｂ）スレーブ装置２２０のメッセージ受信部２２３では、マスタ装置２１０から送られた同期化メッセージが受信され、当該同期化メッセージの受信時刻ｔ２が時計部２２１の出力であるカウンタ値で記憶される。
【００２２】
（ｃ）次に、マスタ装置２１０のメッセージ送信部２１３からスレーブ装置２２０に、フォローアップ（FollowUp）メッセージが送信される。このフォローアップメッセージには、同期化メッセージを発行した時刻ｔ１を示す時刻情報がナノセコンド（ｎｓ）単位の値で含まれている。この場合、メッセージ送信部２１３のカウンタ値／ｎｓ変換部２１３ａで、時刻ｔ１を示すカウンタ値がナノセコンド（ｎｓ）単位の値に変換される。
【００２３】
（ｄ）スレーブ装置２２０のメッセージ受信部２２３では、マスタ装置２１０から送られたフォローアップメッセージが受信され、時刻ｔ１を示すナノセコンド（ｎｓ）単位の値が取得される。そして、この値は、ｎｓ／カウンタ値変換部２２３ａで、時刻ｔ１を示す時計部２２１の出力であるカウンタ値に変換されて記憶される。
【００２４】
（ｅ）次に、スレーブ装置２２０のメッセージ送信部２２４からマスタ装置２１０に、遅延要求（DelayRequest）メッセージが送信される。この場合、メッセージ送信部２２４では、当該遅延要求メッセージの発行（送信）時刻ｔ３が時計部２２１の出力であるカウンタ値で記憶される。
【００２５】
（ｆ）マスタ装置２１０のメッセージ受信部２１４では、スレーブ装置２２０から送られた遅延要求メッセージが受信され、当該遅延要求メッセージの受信時刻ｔ４が時計部２１１の出力であるカウンタ値で記憶される。
【００２６】
（ｇ）次に、マスタ装置２１０のメッセージ送信部２１３からスレーブ装置２２０に、遅延応答（DelayResponse）メッセージが送信される。この遅延応答メッセージには、上述のメッセージ受信部２１４が遅延要求メッセージを受信した時刻ｔ４を示す時刻情報がナノセコンド（ｎｓ）単位の値で含まれている。この場合、メッセージ送信部２１３のカウンタ値／ｎｓ変換部２１３ａで、時刻ｔ４を示すカウンタ値がナノセコンド（ｎｓ）単位の値に変換される。
【００２７】
（ｈ）スレーブ装置２２０のメッセージ受信部２２３では、マスタ装置２１０から送られた遅延応答メッセージが受信され、時刻ｔ４を示すナノセコンド（ｎｓ）単位の値が取得される。そして、この値は、ｎｓ／カウンタ値変換部２２３ａで、時刻ｔ４を示す時計部２２１の出力であるカウンタ値に変換されて記憶される。
【００２８】
（ｉ）次に、スレーブ装置２２０の演算部２２５では、メッセージ受信部２２３に記憶されている時刻ｔ１，ｔ２，ｔ４を示すカウンタ値と、メッセージ送信部２２４に記憶されている時刻ｔ３を示すカウンタ値が用いられて、上述の（１）式により、補正値としてのオフセット（Offset）が求められる。そして、補正部２２６により、時計部２２１の時刻Ｓｔ（ｘ）が、オフセット（Offset）だけ減算した値となるように補正される。補正後の時計部２２１の時刻Ｓｔ（ｘ）′は、マスタ装置２１０の時計部２１１の時刻Ｍｔと一致し、同期したものとなる。
【００２９】
上述した図９に示す時刻同期化の動作が定期的に繰り返されることで、マスタ装置２１０とスレーブ装置２２０の時刻差(Offset)が補正され、マスタスレーブ間の時刻同期が保持される。
【先行技術文献】
【非特許文献】
【００３０】
【非特許文献１】" Precision Clock Synchronization Protocol for NetworkedMeasurement and Control System "、ＩＥＥＥ１５８８規格
【発明の概要】
【発明が解決しようとする課題】
【００３１】
上述した時刻同期化の動作においては、スレーブ装置２２０の時刻が補正された時点ではマスタ装置２１０の時刻とスレーブ装置２２０の時刻は一致する。しかし、マスタ装置２１０の時刻とスレーブ装置２２０の時刻との間に時刻差(Offset)が発生する要因であるクロックの周波数補正を行っていない。そのため、スレーブ装置２２０の時刻補正後に、時間経過と共に、マスタ装置２１０とスレーブ装置２２０の時刻差(Offset)が再び大きくなっていく。したがって、スレーブ装置の時刻は、瞬間を見ると、マスタ装置の時刻と完全に同期しているとは言えない。
【００３２】
図１０は、上述した時刻同期化の動作における、マスタ装置２１０の時計部２１１のカウンタ値変化と、スレーブ装置２２０の時計部２２１のカウンタ値変化を対応させて示している。図１０（ａ）の実線Ｓｍは、マスタ装置２１０の時計部２１１のカウンタ値変化を示している。また、図１０（ｂ）の実線Ｓｓは、スレーブ装置２２０の時計部２２１のカウンタ値変化を示している。なお、図１０（ｂ）の破線Ｓｓ′は、マスタ装置２１０の時計部２１１のカウンタ値変化に対応した、スレーブ装置２２０の時計部２２１の理想的なカウンタ値変化を示している。
【００３３】
図１０（ｂ）に示すように、スレーブ装置２２０の時計部２２１のカウンタ値は、オフセット（Offset）の補正時点Ｔ１、Ｔ２、・・・では正しいカウンタ値となる。しかし、その後に、時間経過と共に理想的なカウンタ値からどんどん離れていく。
【００３４】
この発明の目的は、スレーブ装置においてマスタ装置との完全な時刻同期化を実現することにある。
【課題を解決するための手段】
【００３５】
この発明の概念は、
カウンタにより構成され、時刻情報を出力する時計部と、
上記カウンタをカウントアップするためのクロックを発生するクロック発生部と、
マスタ装置から送られてくるメッセージを受信するメッセージ受信部と、
上記マスタ装置にメッセージを送信するメッセージ送信部と、
上記時計部の時刻の補正に必要な第１の値を求める第１の演算部と、
上記第１の演算部で求められた上記第１の値に基づいて、上記時計部の時刻を補正する第１の補正部と、
上記クロック発生部で発生されるクロックの周波数の補正に必要な第２の値を求める第２の演算部と、
上記第２の演算部で求められた上記第２の値に基づいて、上記クロック発生部で発生されるクロックの周波数を補正する第２の補正部を備え、  上記メッセージ受信部は、上記マスタ装置において第１の時刻に発行された第１のメッセージと、上記マスタ装置において上記第１の時刻の後に発行された、該第１の時刻を示す時刻情報を含む第２のメッセージを受信し、
上記メッセージ送信部は、第３の時刻に上記マスタ装置に第３のメッセージを発行し、  上記メッセージ受信部は、上記マスタ装置において上記第３のメッセージが受信された後に発行された、該第３のメッセージが受信された第４の時刻を示す時刻情報を含む第４のメッセージを受信し、
上記第１の演算部は、上記メッセージ受信部で上記第１のメッセージが受信された時刻を第２の時刻とし、該第２の時刻から上記メッセージ受信部で受信された上記第２のメッセージに含まれる時刻情報が示す上記第１の時刻を減算して第１の減算結果を求め、上記メッセージ受信部で受信された上記第４のメッセージに含まれる時刻情報が示す上記第４の時刻から上記メッセージ送信部で上記第３のメッセージが発行された上記第３の時刻を減算して第２の減算結果を求め、上記第１の減算結果から上記第２の減算結果を減算した後に１／２にして上記第１の値を求め、
上記第１の補正部は、上記時計部の時刻を、上記第１の演算部で求められた上記第１の値だけ減算した値となるように補正し、
上記メッセージ送信部は、上記第１の補正部で上記時計部の時刻の補正が行われた後、第５の時刻に上記マスタ装置に第５のメッセージを発行し、
上記メッセージ受信部は、上記マスタ装置において上記第５のメッセージが受信された後に発行された、該第５のメッセージが受信された第６の時刻を示す時刻情報を含む第６のメッセージを受信し、
上記第２の演算部は、上記メッセージ送信部で上記第５のメッセージが発行された上記第５の時刻に、上記第１の演算部で求められた上記第１の減算結果および上記第２の減算結果の加算平均値を加算して上記第２の値を求め、
上記第２の補正部は、上記第２の演算部で求められた上記第２の値が、上記メッセージ受信部で受信された上記第６のメッセージに含まれる時刻情報が示す上記第６の時刻より小さいとき、上記クロック発生部で発生されるクロックの周波数を上げるように補正し、上記第２の値が上記第６の時刻より大きいとき、上記クロック発生部で発生されるクロックの周波数を下げるように補正する
スレーブ装置にある。
【００３６】
この発明において、第１の演算部により第１の値（Offset）が求められる。そして、第１の補正部により、時計部の時刻が第１の値だけ減算した値となるように補正される。これにより、スレーブ装置の時計部は、マスタ装置の時計部の時刻と一致するようにされる。
【００３７】
この発明においては、さらに、第２の演算部により、第２の値が求められる。この第２の値は、第５の時刻にマスタ装置とスレーブ装置との間の伝送遅延成分（Delay）を加算した加算結果であり、第５の時刻に発行された第５のメッセージがマスタ装置で受信される時刻の予想値である。第２の補正部により、予想値が実際の到着時刻（第６の時刻）より小さいとき、時計部のカウンタをカウントアップするクロックの周波数が上げられ、逆に、予想値が実際の到着時刻（第６の時刻）より大きいとき、当該クロックの周波数が下げられる。
【００３８】
これにより、スレーブ装置の時計部のカウンタのカウンタ値の変化は、マスタ装置の時計部のカウンタのカウンタ値の変化に対応した、理想的なカウンタ値変化に近づけられる。したがって、上述の第１の値による時計部の時刻補正と、上述の第２の値によるクロック周波数補正とが繰り返されることで、スレーブ装置の時刻は、オフセット補正時点だけでなく、常に、マスタ装置の時刻と一致するようになり、スレーブ装置においてマスタ装置との完全な時刻同期化が可能となる。
【００３９】
この発明において、例えば、メッセージ受信部で受信される第２のメッセージ、第４のメッセージおよび第６のメッセージに含まれる時刻情報はカウンタ値であってもよい。
【００４０】
このようにマスタ装置からスレーブ装置に時刻情報がカウンタ値で送られることで、マスタ装置でカウンタ値を例えばナノセコンド（ｎｓ）単位の値に変換する処理、およびスレーブ装置でナノセコンド（ｎｓ）単位の値をカウンタ値に変換する処理は行われない。そのため、マスタ装置からスレーブ装置に供給される時刻情報は、変換時の演算誤差を含まない正確な時刻情報となる。これにより、スレーブ装置ではマスタ装置との時刻同期化をより高精度に実現できる。
【００４１】
また、この発明の概念は、
カウンタにより構成され、時刻情報を出力する時計部と、
上記カウンタをカウントアップするためのクロックを発生するクロック発生部と、
マスタ装置から送られてくるメッセージを受信するメッセージ受信部と、
上記マスタ装置にメッセージを送信するメッセージ送信部と、
上記時計部の時刻の補正に必要な第１の値を求める第１の演算部と、
上記第１の演算部で求められた第１の値に基づいて、上記時計部の時刻を補正する第１の補正部と、
上記クロック発生部で発生されるクロックの周波数の補正に必要な第２の値を求める第２の演算部と、
上記第２の演算部で求められた上記第２の値に基づいて、上記クロック発生部で発生されるクロックの周波数を補正する第２の補正部を備え、
上記メッセージ受信部は、上記マスタ装置において第１の時刻に発行された第１のメッセージと、上記マスタ装置において上記第１の時刻の後に発行された、該第１の時刻を示す時刻情報を含む第２のメッセージを受信し、
上記第１の演算部は、上記メッセージ受信部で上記第１のメッセージが受信された時刻を第２の時刻とし、該第２の時刻から上記メッセージ受信部で受信された上記第２のメッセージに含まれる時刻情報が示す上記第１の時刻を減算して上記第１の値として第１の補正値を求め、
上記第１の補正部は、上記時計部の時刻を、上記第１の演算部で求められた上記第１の補正値だけ減算した値となるように第１段階の補正を行い、
上記メッセージ送信部は、上記第１の補正部で上記第１段階の補正が行われた後、第３の時刻に上記マスタ装置に第３のメッセージを発行し、
上記メッセージ受信部は、上記マスタ装置において上記第３のメッセージが受信された後に発行された、該第３のメッセージが受信された第４の時刻を示す時刻情報を含む第４のメッセージを受信し、
上記第１の演算部は、上記メッセージ受信部で受信された上記第４のメッセージに含まれる時刻情報が示す上記第４の時刻から上記メッセージ送信部で上記第３のメッセージが発行された上記第３の時刻を減算し、該減算結果を１／２にして上記第１の値として第２の補正値を求め、
上記第１の補正部は、上記第１段階の補正を行った後、上記時計部の時刻を、上記第１の演算部で求められた上記第２の補正値だけ加算した値となるように第２段階の補正を行い、
上記メッセージ送信部は、上記第１の補正部で上記第２段階の補正が行われた後、第５の時刻に上記マスタ装置に第５のメッセージを発行し、
上記メッセージ受信部は、上記マスタ装置において上記第５のメッセージが受信された後に発行された、該第５のメッセージが受信された第６の時刻を示す時刻情報を含む第６のメッセージを受信し、
上記第２の演算部は、上記メッセージ受信部で上記第１のメッセージが受信された上記第２の時刻から上記メッセージ受信部で受信された上記第２のメッセージに含まれる時刻情報が示す上記第１の時刻を減算して第１の減算結果を求め、上記メッセージ受信部で受信された上記第４のメッセージに含まれる時刻情報が示す上記第４の時刻から上記メッセージ送信部で上記第３のメッセージが発行された上記第３の時刻を減算して第２の減算結果を求め、上記メッセージ送信部で上記第５のメッセージが発行された上記第５の時刻に、上記第１の減算結果および上記第２の減算結果の加算平均値を加算して上記第２の値を求め、
上記第２の補正部は、上記第２の演算部で求められた上記第２の値が、上記メッセージ受信部で受信された上記第６のメッセージに含まれる時刻情報が示す上記第６の時刻より小さいとき、上記クロック発生部で発生されるクロックの周波数を上げるように補正し、上記第２の値が上記第６の時刻より大きいとき、上記クロック発生部で発生されるクロックの周波数を下げるように補正する
スレーブ装置にある。
【００４２】
この発明において、第１の値として第１の補正値および第２の補正値が求められ、スレーブ装置の時計部の時刻の補正は２段階で行われる。第１段階の補正では、マスタ装置において第１の時刻に発行されたメッセージを受信した第２の時刻から当該第１の時刻を減算して求められた第１の補正値が使用され、スレーブ装置の時計部の時刻は、この第１の補正値だけ減算した値となるように補正される。これにより、スレーブ装置の時計部の補正後の時刻は、マスタ装置の時計部の時刻から、マスタ装置とスレーブ装置との間の伝送遅延成分（Delay）が差し引かれた値となり、オフセット成分が除かれた状態となる。
【００４３】
また、第２段階の補正では、第３の時刻に送信したメッセージがマスタ装置で受信された第４の時刻から当該第３の時刻を減算し、さらに１／２にして求められた第２の補正値（Delay）が使用され、スレーブ装置の時計部の時刻は、この第２の補正値だけ加算した値となるよう補正される。これにより、スレーブ装置の時計部の時刻は、マスタ装置の時刻と一致し、同期化が図られる。
【００４４】
このようにスレーブ装置の時計部の時刻の補正を２段階で行う場合にあっては、スレーブ装置の時計部の時刻補正を、誤差が含まれるオフセット（Offset）の演算結果を使用して行うものではなく、スレーブ装置ではマスタ装置との時刻同期化を高精度で実現できる。
【００４５】
また、この発明において、第２の値が求められる。この第２の値は、第５の時刻にマスタ装置とスレーブ装置との間の伝送遅延成分（Delay）を加算した加算結果であり、第５の時刻に発行された第５のメッセージがマスタ装置で受信される時刻の予想値である。予想値が実際の到着時刻（第６の時刻）より小さいとき、時計部のカウンタをカウントアップするクロックの周波数が上げられ、逆に、予想値が実際の到着時刻（第６の時刻）より大きいとき、当該クロックの周波数が下げられる。これにより、スレーブ装置の時計部のカウンタのカウンタ値の変化は、マスタ装置の時計部のカウンタのカウンタ値の変化に対応した、理想的なカウンタ値変化に近づけられる。
【００４６】
上述の第１の値による時計部の時刻補正と、上述の第２の値によるクロック発生部のクロック周波数補正が繰り返されることで、スレーブ装置の時刻は、オフセット補正時点だけでなく、常に、マスタ装置の時刻と一致するようになり、スレーブ装置においてマスタ装置との完全な時刻同期化が可能となる。
【発明の効果】
【００４７】
この発明によれば、スレーブ装置の時刻を、オフセット補正時点だけでなく、常に、マスタ装置の時刻と一致させることができ、スレーブ装置においてマスタ装置との完全な時刻同期化が可能となる。
【図面の簡単な説明】
【００４８】
【図１】この発明の第１の実施の形態としての電子機器システムの構成例を示す概略ブロック図である。
【図２】第１の実施の形態としての電子機器システムにおける時刻同期化動作を説明するためのシーケンス図である。
【図３】時刻同期化時におけるマスタ装置およびスレーブ装置のカウンタ値変化を示す図である。
【図４】この発明の第２の実施の形態としての電子機器システムの構成例を示す概略ブロック図である。
【図５】第２の実施の形態としての電子機器システムにおける時刻同期化動作を説明するためのシーケンス図である。
【図６】この発明の第３の実施の形態としての電子機器システムの構成例を示す概略ブロック図である。
【図７】第３の実施の形態としての電子機器システムにおける時刻同期化動作を説明するためのシーケンス図である。
【図８】ＩＥＥＥ１５８８プロトコルによる時刻同期化が行われる電子機器システムの構成例を示す概略ブロック図である。
【図９】電子機器システムにおけるＩＥＥＥ１５８８プロトコルによる時刻同期化動作を説明するためのシーケンス図である。
【図１０】時刻同期化時におけるマスタ装置およびスレーブ装置のカウンタ値変化を示す図である。
【発明を実施するための形態】
【００４９】
以下、発明を実施するための形態（以下、「実施の形態」とする）について説明する。なお、説明は以下の順序で行う。
１．第１の実施の形態
２．第２の実施の形態
３．第３の実施の形態
４．変形例
【００５０】
＜１．第１の実施の形態＞
［電子機器システムの構成例］
図１は、第１の実施の形態としての電子機器システム１００の構成例を示している。この電子機器システム１００は、マスタ装置１１０とスレーブ装置１２０により構成されている。例えば、電子機器システム１００が複数のビデオカメラからなるカメラシステムである場合には、マスタ装置１１０は親機としてのビデオカメラであり、スレーブ装置１２０は子機としてのビデオカメラである。また、例えば、電子機器システム１００が制御機器（コンピュータ）および複数の被制御機器からなる制御システムである場合、マスタ装置１１０は制御機器であり、スレーブ装置１２０は被制御機器である。
【００５１】
なお、図１には、説明を簡単にするため、スレーブ装置１２０が１台の場合を示している。また、図１には、マスタ装置１１０およびスレーブ装置１２０の構成として、時刻同期化に関係する部分のみを示しており、その他の部分は省略している。
【００５２】
マスタ装置１１０は、時計部１１１と、マスタクロック発生部１１２と、メッセージ送信部１１３と、メッセージ受信部１１４を有している。
【００５３】
時計部１１１は、マスタクロック発生部１１２で発生されるマスタクロックＣＬＫｍでカウントアップされるカウンタにより構成されている。カメラシステム等の映像システムの場合、マスタクロックＣＬＫｍの周波数は、例えば、ビデオ伝送の基準として採用されている２７ＭＨｚとされる。この時計部１１１より出力される時刻情報（カウンタ値）は、メッセージ送信部１１３およびメッセージ受信部１１４に供給されている。
【００５４】
メッセージ送信部１１３は、スレーブ装置１２０に、イーサネット（登録商標）等の伝送路１３０を介して、ＰＴＰ（Precision Time Protocol）メッセージを送信する。ここで、ＰＴＰメッセージに時刻情報を含める際には、時刻情報としてのカウンタ値をナノセコンド（ｎｓ：nano second）単位の値に変換することが必要となる。そのため、メッセージ送信部１１３は、カウンタ値からナノセコンド（ｎｓ）単位の値への変換を行うカウンタ値／ｎｓ変換部１１３ａを備えている。メッセージ受信部１１４は、スレーブ装置１２０から伝送路１３０を介して送られてくるＰＴＰメッセージを受信する。
【００５５】
メッセージ送信部１１３がスレーブ装置１２０に送信するＰＴＰメッセージとしては、同期化（Sync）メッセージと、フォローアップ（FollowUp）メッセージと、遅延応答（DelayResponse）メッセージがある。同期化メッセージは、時刻同期化の動作を開始するために送信される。フォローアップメッセージは、同期化メッセージが送信された後に、マスタ装置１１０の時刻情報を送るために送信される。遅延応答メッセージは、メッセージ受信部１１４でスレーブ装置１２０からの後述する遅延要求（DelayRequest）メッセージを受信した後に、その応答として送信される。
【００５６】
スレーブ装置１２０は、時計部１２１と、スレーブクロック発生部１２２と、メッセージ受信部１２３と、メッセージ送信部１２４と、演算部１２５と、補正部１２６を有している。また、スレーブ装置１２０は、予想値演算部１２７と、周波数補正部１２８と、Ｄ／Ａコンバータ１２９を有している。
【００５７】
時計部１２１は、スレーブクロック発生部１２２で発生されるスレーブクロックＣＬＫｓでカウントアップされるカウンタにより構成されている。カメラシステム等の映像システムの場合、スレーブクロックＣＬＫｓの周波数は、上述のマスタクロックＣＬＫｍの周波数と同様に、例えば、ビデオ伝送の基準として採用されている２７ＭＨｚとされる。この時計部１２１より出力される時刻情報（カウンタ値）は、メッセージ受信部１２３およびメッセージ送信部１２４に供給されている。
【００５８】
メッセージ受信部１２３は、マスタ装置１１０から伝送路１３０を介して送られてくるＰＴＰメッセージを受信する。上述したように、マスタ装置１１０から送られてくるＰＴＰメッセージに含まれる時刻情報は、ナノセコンド単位の値の情報である。そのため、メッセージ受信部１２３は、ナノセコンド（ｎｓ）単位の値からカウンタ値への変換を行うｎｓ／カウンタ値変換部１２３ａを備えている。メッセージ送信部１２４は、マスタ装置１１０に、伝送路１３０を介して、ＰＴＰメッセージを送信する。
【００５９】
メッセージ送信部１２４がマスタ装置１１０に送信するＰＴＰメッセージとしては、遅延要求（DelayRequest）メッセージがある。この遅延要求メッセージは、メッセージ受信部１２３でマスタ装置１１０からのフォローアップメッセージが受信された後に、マスタ装置１１０に遅延応答メッセージを要求するために送信される。また、この遅延要求メッセージは、後述するように、補正部１２６で、時計部１２１の時刻補正が行われた後に、マスタ装置１１０に遅延応答メッセージを要求するために送信される。
【００６０】
演算部１２５は、時計部１２１の時刻の補正に必要な第１の値を求める。この演算部１２５は、第１の演算部を構成する。この第１の値は、マスタ装置１１０の時計部１１１の時刻Ｍｔ（ｘ）に対する、スレーブ装置１２０の時計部１２１の時刻Ｓｔ（ｘ）のオフセット（Offset）である。演算部１２５は、以下の（２）式により、オフセット（Offset）を求める。また、演算部１２５は、マスタ装置１１０とスレーブ装置１２０との間の伝送遅延成分（Delay）を、以下の（３）式により、求める。
Offset＝｛（ｔ２−ｔ１）−（ｔ４−ｔ３）｝／２      ・・・（２）
Delay＝｛（ｔ２−ｔ１）＋（ｔ４−ｔ３）｝／２      ・・・（３）
【００６１】
ここで、時刻ｔ１は、メッセージ受信部１２３で受信されたフォローアップメッセージの時刻情報が示す時刻である。この時刻ｔ１は、マスタ装置１２０のメッセージ送信部１１３が、スレーブ装置１２０に同期化メッセージを送信（発行）した時刻である。また、時刻ｔ２は、メッセージ受信部１２３で同期化メッセージが受信された時刻である。また、時刻ｔ３は、メッセージ受信部１２３でフォローアップメッセージが受信された後に、メッセージ送信部１２４がマスタ装置２１０に遅延要求メッセージを送信（発行）した時刻である。
【００６２】
また、時刻ｔ４は、メッセージ送信部１２４で時刻ｔ３に発行された遅延要求メッセージに対応してメッセージ受信部１２３で受信された遅延応答メッセージの時刻情報が示す時刻である。この時刻ｔ４は、メッセージ送信部１２４で時刻ｔ３に発行された遅延要求メッセージがマスタ装置１１０のメッセージ受信部１１４で受信された時刻である。
【００６３】
ここで、マスタ装置１１０の時計部１１１の時刻Ｍｔ（ｘ）と、スレーブ装置１２０の時計部１２１の時刻Ｓｔ（ｘ）との間には、（４）式が成立する。
Ｓｔ（ｘ）−Ｍｔ（ｘ）＝Offset      ・・・（４）
この（４）式を変形すると、（５）式が得られる。
Ｓｔ（ｘ）＝Offset＋Ｍｔ（ｘ）      ・・・（５）
【００６４】
時刻ｔ２は、（４）式、（５）式、さらには後述の図２からも明らかなように、時刻ｔ１に、オフセット(Offset)およびディレイ（Delay）を加算したものとなる。そのため、（ｔ２−ｔ１）は、（６）式に示すように、オフセット(Offset)とディレイ（Delay）を加算したものとなる。
（ｔ２−ｔ１）＝Offset＋Delay      ・・・（６）
【００６５】
また、時刻ｔ４は、（４）式、（５）式、さらには後述の図２からも明らかなように、時刻ｔ３からオフセット(Offset)を減算すると共にディレイ（Delay）を加算したものとなる。そのため、（ｔ４−ｔ３）は、（７）式に示すように、ディレイ（Delay）からオフセット(Offset)を減算したものとなる。
（ｔ４−ｔ３）＝Delay−Offset      ・・・（７）
【００６６】
上述の（２）式でオフセット（Offset）が求められること、および（３）式でディレイ（Delay）が求められることは、上述の（６）式および（７）式より明らかである。
【００６７】
補正部１２６は、演算部１２５で求められた第１の値（Offset）に基づいて、時計部１２１の時刻Ｓｔ（ｘ）を補正する。この補正部１２６は、第１の補正部を構成している。補正部１２６は、時計部１２１の時刻Ｓｔ（ｘ）を、第１の値（Offset）だけ減算した値となるように、スレーブクロック発生部１２２から発生されるスレーブクロックＣＬＫｓに同期したタイミングで補正する。
【００６８】
この場合、時計部１２１の補正後の時刻Ｓｔ（ｘ）′は、マスタ装置１１０の時計部１１１の時刻Ｍｔ（ｘ）と一致し、マスタ装置１１０との時刻同期化が図られる。すなわち、この補正は、以下の（８）式で表される。
Ｓｔ（ｘ）′＝Ｓｔ（ｘ）−Offset      ・・・（８）
この（８）式に、上述の（５）式を適用すると、（９）式が得られる。
Ｓｔ（ｘ）′＝（Offset＋Ｍｔ（ｘ））−Offset
＝Ｍｔ（ｘ）                ・・・（９）
【００６９】
予想値演算部１２５は、スレーブクロック発生部１２２で発生されるスレーブクロックＣＬｓの周波数の補正に必要な第２の値を求める。この予想値演算部１２５は、以下の（１０）式により、第２の値ｔ６′を求める。
ｔ６′＝ｔ５＋Delay      ・・・（１０）
【００７０】
ここで、時刻ｔ５は、上述したように補正部１２６で時計部１２１の時刻補正が行われた後に、メッセージ送信部１２４がマスタ装置２１０に遅延要求メッセージを送信（発行）した時刻である。また、Delayは、上述したように、演算部１２５で求められたマスタ装置１１０とスレーブ装置１２０との間の伝送遅延成分である（（３）式参照）。この第２の値ｔ６′は、時刻ｔ５に発行された遅延要求メッセージがマスタ装置１１０のメッセージ受信部１１４で受信される時刻の予想値である。この予想値演算部１２７および上述の演算部１２５は、第２の演算部を構成している。
【００７１】
また、予想値演算部１２７は、周波数補正部１２８に、周波数を上げる補正指令Ｆｕあるいは周波数を下げる補正指令Ｆｄを出力する。予想値演算部１２７は、第２の値ｔ６′と時刻ｔ６の比較結果に応じて、補正指令Ｆｕあるいは補正指令Ｆｄを出力する。ここで、時刻ｔ６は、メッセージ送信部１２４で時刻ｔ５に発行された遅延要求メッセージに対応してメッセージ受信部１２３で受信された遅延応答メッセージの時刻情報が示す時刻である。この時刻ｔ６は、メッセージ送信部１２４で時刻ｔ５に発行された遅延要求メッセージがマスタ装置１１０のメッセージ受信部１１４で受信された時刻である。
【００７２】
予想値演算部１２７は、ｔ６＞ｔ６′であるとき、スレーブクロックＣＬＫｓの周波数が低いと判断し、周波数を上げる補正指令Ｆｕを出力する。また、予想値演算部１２７は、ｔ６＜ｔ６′であるとき、スレーブクロックＣＬＫｓの周波数が高いと判断し、周波数を下げる補正指令Ｆｄを出力する。
【００７３】
周波数補正部１２８は、スレーブクロック発生部１２２で発生されるスレーブクロックＣＬＫｓの周波数を制御する制御電圧ＶＣに対応したデジタル信号ＤＳを出力する。この周波数補正部１２８は、予想値演算部１２７から補正指令Ｆｕが出力されるとき、デジタル信号ＤＳの値を一定ステップだけ大きくし、逆に予想値演算部１２７から補正指令Ｆｄが出力されるとき、デジタル信号ＤＳの値を一定ステップだけ小さくする。
【００７４】
Ｄ／Ａコンバータ１２９は、周波数補正部１２８から出力されるデジタル信号ＤＳをアナログの制御電圧ＶＣに変換して、スレーブクロック発生部１２２に供給する。なお、スレーブクロック発生部１２２は、例えば、ＶＣＸＯ等の電圧可変型の水晶発振器等を用いて構成されている。予想値演算部１２７、周波数補正部１２８およびＤ／Ａコンバータ１２９は、第２の補正部を構成している。
【００７５】
［時刻同期化の動作］
図２は、図１に示す電子機器システム１００における時刻同期化の動作を示すシーケンス図を示している。
【００７６】
（ａ）マスタ装置１１０のメッセージ送信部１１３からスレーブ装置１２０に、同期化（Sync）メッセージが送信されて、時刻同期化の動作が開始される。この場合、メッセージ送信部１１３では、当該同期化メッセージの発行（送信）時刻ｔ１が時計部１１１の出力であるカウンタ値で記憶される。
【００７７】
（ｂ）スレーブ装置１２０のメッセージ受信部１２３では、マスタ装置１１０から送られた同期化メッセージが受信され、当該同期化メッセージの受信時刻ｔ２が時計部１２１の出力であるカウンタ値で記憶される。
【００７８】
（ｃ）次に、マスタ装置１１０のメッセージ送信部１１３からスレーブ装置１２０に、フォローアップ（FollowUp）メッセージが送信される。このフォローアップメッセージには、同期化メッセージを発行した時刻ｔ１を示す時刻情報がナノセコンド（ｎｓ）単位の値で含まれている。この場合、メッセージ送信部１１３のカウンタ値／ｎｓ変換部１１３ａで、時刻ｔ１を示すカウンタ値がナノセコンド（ｎｓ）単位の値に変換される。
【００７９】
（ｄ）スレーブ装置１２０のメッセージ受信部１２３では、マスタ装置１１０から送られたフォローアップメッセージが受信され、時刻ｔ１を示すナノセコンド（ｎｓ）単位の値が取得される。そして、この値は、ｎｓ／カウンタ値変換部１２３ａで、時刻ｔ１を示す時計部１２１の出力であるカウンタ値に変換されて記憶される。
【００８０】
（ｅ）次に、スレーブ装置１２０のメッセージ送信部１２４からマスタ装置１１０に、遅延要求（DelayRequest）メッセージが送信される。この場合、メッセージ送信部１２４では、当該遅延要求メッセージの発行（送信）時刻ｔ３が時計部１２１の出力であるカウンタ値で記憶される。
【００８１】
（ｆ）マスタ装置１１０のメッセージ受信部１１４では、スレーブ装置１２０から送られた遅延要求メッセージが受信され、当該遅延要求メッセージの受信時刻ｔ４が時計部１１１の出力であるカウンタ値で記憶される。
【００８２】
（ｇ）次に、マスタ装置１１０のメッセージ送信部１１３からスレーブ装置１２０に、遅延応答（DelayResponse）メッセージが送信される。この遅延応答メッセージには、上述のメッセージ受信部１１４が遅延要求メッセージを受信した時刻ｔ４を示す時刻情報がナノセコンド（ｎｓ）単位の値で含まれている。この場合、メッセージ送信部１１３のカウンタ値／ｎｓ変換部１１３ａで、時刻ｔ４を示すカウンタ値がナノセコンド（ｎｓ）単位の値に変換される。
【００８３】
（ｈ）スレーブ装置１２０のメッセージ受信部１２３では、マスタ装置１１０から送られた遅延応答メッセージが受信され、時刻ｔ４を示すナノセコンド（ｎｓ）単位の値が取得される。そして、この値は、ｎｓ／カウンタ値変換部１２３ａで、時刻ｔ４を示す時計部１２１の出力であるカウンタ値に変換されて記憶される。
【００８４】
（ｉ）スレーブ装置１２０の演算部１２５では、第１の値として、Offset＝｛（ｔ４−ｔ３）−（ｔ２−ｔ１）｝／２が求められる（（２）式参照）。この場合、メッセージ受信部１２３に記憶されている時刻ｔ１，ｔ２，ｔ４を示すカウンタ値、およびメッセージ送信部１２４に記憶されている時刻ｔ３を示すカウンタ値が用いられる。そして、補正部１２６により、時計部１２１の時刻Ｓｔ（ｘ）がオフセット（Offset）だけ減算した値となるように補正される（（８）式参照）。補正後の時計部１２１の時刻Ｓｔ（ｘ）′は、マスタ装置１１０の時計部１１１の時刻Ｍｔと一致したものとなる（（９）式参照）。
【００８５】
（ｊ）次に、スレーブ装置１２０のメッセージ送信部１２４からマスタ装置１１０に、遅延要求（DelayRequest）メッセージが送信される。この場合、メッセージ送信部１２４では、当該遅延要求メッセージの発行（送信）時刻ｔ５が時計部１２１の出力であるカウンタ値で記憶される。
【００８６】
（ｋ）マスタ装置１１０のメッセージ受信部１１４では、スレーブ装置１２０から送られた遅延要求メッセージが受信され、当該遅延要求メッセージの受信時刻ｔ６が時計部１１１の出力であるカウンタ値で記憶される。
【００８７】
（ｍ）次に、マスタ装置１１０のメッセージ送信部１１３からスレーブ装置１２０に、遅延応答（DelayResponse）メッセージが送信される。この遅延応答メッセージには、上述のメッセージ受信部１１４が遅延要求メッセージを受信した時刻ｔ６を示す時刻情報がナノセコンド（ｎｓ）単位の値で含まれている。この場合、メッセージ送信部１１３のカウンタ値／ｎｓ変換部１１３ａで、時刻ｔ６を示すカウンタ値がナノセコンド（ｎｓ）単位の値に変換される。
【００８８】
（ｎ）スレーブ装置１２０のメッセージ受信部１２３では、マスタ装置１１０から送られた遅延応答メッセージが受信され、時刻ｔ６を示すナノセコンド（ｎｓ）単位の値が取得される。そして、この値は、ｎｓ／カウンタ値変換部１２３ａで、時刻ｔ６を示す時計部１２１の出力であるカウンタ値に変換されて記憶される。
【００８９】
（ｐ）また、スレーブ装置１２０の演算部１２５では、Delay＝｛（ｔ４−ｔ３）＋（ｔ２−ｔ１）｝／２が求められる（（３）式参照）。この場合、メッセージ受信部１２３に記憶されている時刻ｔ１，ｔ２，ｔ４を示すカウンタ値、およびメッセージ送信部１２４に記憶されている時刻ｔ３を示すカウンタ値が用いられる。また、予想値演算部１２７では、メッセージ送信部１２４に記憶されている時刻ｔ５を示すカウンタ値に、演算部１２５で求められたディレイ（Delay）が加算されて、予想値ｔ６′＝ｔ５＋DeLayが求められる（（１０）式参照）。
【００９０】
そして、予想値演算部１２７では、メッセージ受信部１２３に記憶されている時刻ｔ６と、予想値ｔ６′とが比較されて、その比較結果に応じた補正指令が出力される。すなわち、ｔ６＞ｔ６′であるとき、スレーブクロックＣＬＫｓの周波数が低いと判断され、周波数を上げる補正指令Ｆｕが出力される。また、ｔ６＜ｔ６′であるとき、スレーブクロックＣＬＫｓの周波数が高いと判断され、周波数を下げる補正指令Ｆｄが出力される。
【００９１】
このように予想値演算部１２７から出力される補正指令に基づいて、周波数補正部１２８では出力デジタル信号ＤＳの値が変更され、スレーブクロック発生部１２２への制御電圧ＶＣが変更され、クロックＣＬＫｓの周波数が制御される。これにより、時計部１２１のカウンタ値変化が、マスタ装置１１０の時計部１２１のカウンタ値の変化に対応した、理想的なカウンタ値変化に近づけられる。
【００９２】
図２に示す時刻同期化の動作が定期的に繰り返されることで、スレーブ装置１２０の時刻は、オフセット補正時点だけでなく、常にマスタ装置１１０の時刻と一致するようになり、スレーブ装置１２０においてマスタ装置１１０との完全な時刻同期化が可能となる。
【００９３】
図３は、上述した時刻同期化の動作における、マスタ装置１１０の時計部１１１のカウンタ値変化と、スレーブ装置１２０の時計部１２１のカウンタ値変化を対応させて示している。図３（ａ）の実線Ｓｍは、マスタ装置１１０の時計部１１１のカウンタ値変化を示している。また、図３（ｂ）の実線Ｓｓは、スレーブ装置１２０の時計部１２１のカウンタ値変化を示している。なお、図３（ｂ）の破線Ｓｓ′は、マスタ装置１１０の時計部１１１のカウンタ値変化に対応した、スレーブ装置１２０の時計部１２１の理想的なカウンタ値変化を示している。
【００９４】
図３（ｂ）に示すように、スレーブ装置１２０の時計部１２１のカウンタ値は、オフセット（Offset）の補正時点Ｔ１、Ｔ２、・・・では正しい値となる。その後、カウンタ値変化が理想的なカウンタ値変化でないときには、スレーブ装置１２０の時計部１２１のカウンタ値は、時間経過と共に理想的なカウンタ値からどんどん離れていく。
【００９５】
しかし、スレーブクロックＣＬＫｓの周波数の補正時点Ｔａ、・・・で、スレーブ装置１２０の時計部１２１のカウンタ値変化が理想的なカウンタ値変化に近づけられる。そのため、上述した図２に示す時刻同期化の動作が定期的に繰り返されることで、スレーブ装置１２０の時計部１２１のカウンタ値は、オフセット補正時点だけでなく、常に正しい値をとるようになる。これにより、スレーブ装置１２０の時刻は、オフセット補正時点だけでなく、常に、マスタ装置１１０の時刻と一致するようになり、スレーブ装置１２０においてマスタ装置１１０との完全時刻同期化が可能となる。
【００９６】
以上説明したように、図１の電子機器システム１００において、スレーブ装置１２０では、第１の値（Offset）による時計部１２１の時刻補正の他に、第２の値（予想値ｔ６′）によるスレーブクロック発生部１２２のクロックＣＬＫｓの周波数補正が行われる。
【００９７】
すなわち、演算部１２５により第１の値としてオフセット（Offset）が求められる。そして、補正部１２６により、時計部１２１の時刻がオフセット（Offset）だけ減算した値となるように補正される。これにより、スレーブ装置１２０の時計部１２１は、マスタ装置１１０の時計部１１１の時刻と一致するようにされる。
【００９８】
また、予想値演算部１２７により第２の値として予想値ｔ６′が求められる。この予想値ｔ６′は、時刻ｔ５にマスタ装置１１０とスレーブ装置１２０との間の伝送遅延成分（Delay）を加算した加算結果であり、時刻ｔ５に発行された遅延要求メッセージがマスタ装置１１０で受信される時刻の予想値である。そして、予想値ｔ６′が実際の到着時刻ｔ６より小さいとき、時計部１２１のカウンタをカウントアップするクロックＣＬＫｓの周波数が上げられ、逆に、予想値ｔ６′が実際の到着時刻ｔ６より大きいとき、当該クロックＣＬＫｓの周波数が下げられる。これにより、時計部１２１のカウンタのカウンタ値の変化は、マスタ装置１１０の時計部１１１のカウンタのカウンタ値の変化に対応した、理想的なカウンタ値変化に近づけられる。
【００９９】
したがって、上述の時刻補正およびクロック周波数補正が繰り返されることで、スレーブ装置１２０の時刻は、オフセット補正時点だけでなく、常に、マスタ装置１１０の時刻と一致するようになる。これにより、スレーブ装置１２０においてマスタ装置１１０との完全な時刻同期化が可能となる。
【０１００】
＜２．第２の実施の形態＞
［電子機器システムの構成例］
図４は、第２の実施の形態としての電子機器システム１００Ａの構成例を示している。この電子機器システム１００Ａは、上述の図１に示す電子機器システム１００と同様に、マスタ装置１１０Ａとスレーブ装置１２０Ａにより構成されている。この図４において、図１と対応する部分には、同一符号を付して示し、その詳細説明は省略する。
【０１０１】
マスタ装置１１０Ａは、時計部１１１と、マスタクロック発生部１１２と、メッセージ送信部１１３Ａと、メッセージ受信部１１４を有している。
【０１０２】
メッセージ送信部１１３Ａは、スレーブ装置１２０に、伝送路１３０を介して、ＰＴＰ（Precision Time Protocol）メッセージを送信する。メッセージ送信部１１３Ａがスレーブ装置１２０に送信するＰＴＰメッセージとしては、上述した同期化（Sync）メッセージと、フォローアップ（FollowUp）メッセージと、遅延応答（DelayResponse）メッセージの他に、Messageメッセージがある。
【０１０３】
メッセージ送信部１１３Ａは、スレーブ装置１２０に、フォローアップメッセージの送信に続いて、Messageメッセージを送信する。上述したように、フォローアップメッセージには、同期化メッセージを発行（送信）した時刻ｔ１を示す時刻情報がナノセコンド（ｎｓ）単位の値で含まれている。フォローアップメッセージに続くMessageメッセージにも時刻ｔ１を示す時刻情報が含まれるが、この時刻情報は時刻ｔ１を示すカウンタ値とされる。
【０１０４】
また、メッセージ送信部１１３Ａは、スレーブ装置１２０に、遅延応答メッセージの送信に続いて、Messageメッセージを送信する。上述したように、遅延応答メッセージには、メッセージ受信部１１４が遅延要求メッセージを受信した時刻ｔ４，ｔ６を示す時刻情報がナノセコンド（ｎｓ）単位の値で含まれている。遅延応答メッセージに続くMessageメッセージにも時刻ｔ４，ｔ６を示す時刻情報が含まれるが、この時刻情報は時刻ｔ４，ｔ６を示すカウンタ値とされる。
【０１０５】
このマスタ装置１１０Ａのその他は、図１に示す電子機器システム１００におけるマスタ装置１１０と同様に構成されている。
【０１０６】
スレーブ装置１２０Ａは、時計部１２１と、スレーブクロック発生部１２２と、メッセージ受信部１２３Ａと、メッセージ送信部１２４と、演算部１２５と、補正部１２６を有している。また、スレーブ装置１２０Ａは、予想値演算部１２７と、周波数補正部１２８と、Ｄ／Ａコンバータ１２９を有している。
【０１０７】
スレーブクロック発生部１２２で発生されるスレーブクロックＣＬＫｓの周波数は、上述したマスタ装置１１０Ａのマスタクロック発生部１１２で発生されるマスタクロックＣＬＫｍの周波数と等しくされる。例えば、カメラシステム等の映像システムの場合、クロックＣＬＫｍ，ＣＬＫｓの周波数は、双方とも、例えば、ビデオ伝送の基準として採用されている２７ＭＨｚとされる。
【０１０８】
メッセージ受信部１２３Ａは、マスタ装置１１０Ａから伝送路１３０を介して送られてくるＰＴＰメッセージを受信する。上述したように、マスタ装置１１０Ａのメッセージ送信部１１３Ａからは、フォローアップメッセージの送信に続いて、Messageメッセージが送信される。メッセージ受信部１２３Ａは、フォローアップメッセージおよびそれに続くMessageメッセージを受信する。
【０１０９】
フォローアップメッセージには、時刻ｔ１を示す時刻情報としてナノセコンド（ｎｓ）単位の値が含まれている。一方、Messageメッセージには、時刻ｔ１を示す時刻情報としてカウンタ値が含まれている。この実施の形態において、メッセージ受信部１２３Ａは、Messageメッセージに含まれる時刻ｔ１を示すカウンタ値を取得して、記憶しておく。演算部１２５は、オフセット（Offset）（（２）式参照）あるいはディレイ（Delay）（（３）式参照）を求める際に、この時刻ｔ１［カウンタ値］を用いる。
【０１１０】
また、上述したように、マスタ装置１１０Ａのメッセージ送信部１１３Ａからは、遅延応答メッセージの送信に続いて、Messageメッセージが送信される。メッセージ受信部１２３Ａは、遅延応答メッセージおよびそれに続くMessageメッセージを受信する。
【０１１１】
遅延応答メッセージには、時刻ｔ４，ｔ６を示す時刻情報としてナノセコンド（ｎｓ）単位の値が含まれている。一方、Messageメッセージには、時刻ｔ４，ｔ６を示す時刻情報としてカウンタ値が含まれている。この実施の形態において、メッセージ受信部１２３Ａは、Messageメッセージに含まれる時刻ｔ４，ｔ６を示すカウンタ値を取得して、記憶しておく。
【０１１２】
演算部１２５は、オフセット（Offset）（（２）式参照）あるいはディレイ（Delay）（（３）式参照）を求める際に、この時刻ｔ４［カウンタ値］を用いる。また、予測値演算部１２７は、予想値ｔ６′と比較する実際の到着時刻として、この時刻ｔ６［カウンタ値］を用いる。
【０１１３】
このスレーブ装置１２０Ａのその他は、図１に示す電子機器システム１００におけるスレーブ装置１２０と同様に構成されている。
【０１１４】
［時刻同期化の動作］
図５は、図４に示す電子機器システム１００Ａにおける時刻同期化の動作を示すシーケンス図を示している。
【０１１５】
（ａ）マスタ装置１１０Ａのメッセージ送信部１１３Ａからスレーブ装置１２０Ａに、同期化（Sync）メッセージが送信されて、時刻同期化の動作が開始される。この場合、メッセージ送信部１１３Ａでは、当該同期化メッセージの発行（送信）時刻ｔ１が時計部１１１の出力であるカウンタ値で記憶される。
【０１１６】
（ｂ）スレーブ装置１２０Ａのメッセージ受信部１２３Ａでは、マスタ装置１１０Ａから送られた同期化メッセージが受信され、当該同期化メッセージの受信時刻ｔ２が時計部１２１の出力であるカウンタ値で記憶される。
【０１１７】
（ｃ）次に、マスタ装置１１０Ａのメッセージ送信部１１３Ａからスレーブ装置１２０Ａに、フォローアップ（FollowUp）メッセージが送信される。このフォローアップメッセージには、同期化メッセージを発行した時刻ｔ１を示す時刻情報がナノセコンド（ｎｓ）単位の値で含まれている。この場合、メッセージ送信部１１３Ａのカウンタ値／ｎｓ変換部１１３ａで、時刻ｔ１を示すカウンタ値がナノセコンド（ｎｓ）単位の値に変換される。
【０１１８】
スレーブ装置１２０Ａのメッセージ受信部１２３Ａでは、マスタ装置１１０Ａから送られるフォローアップメッセージが受信される。しかし、この実施の形態において、メッセージ受信部１２３Ａでは、時刻ｔ１を示すナノセコンド（ｎｓ）単位の値を取得し、それをカウンタ値に変換して記憶することは、行われない。
【０１１９】
（ｄ）次に、マスタ装置１１０Ａのメッセージ送信部１１３Ａからスレーブ装置１２０Ａに、Messageメッセージが送信される。このMessageメッセージには、同期化メッセージを発行した時刻ｔ１を示す時刻情報がカウンタ値で含まれている。
【０１２０】
（ｅ）スレーブ装置１２０Ａのメッセージ受信部１２３Ａでは、マスタ装置１１０Ａから送られたMessageメッセージが受信され、時刻ｔ１を示すカウンタ値が取得されて、そのまま記憶される。
【０１２１】
（ｆ）次に、スレーブ装置１２０Ａのメッセージ送信部１２４からマスタ装置１１０Ａに、遅延要求（DelayRequest）メッセージが送信される。この場合、メッセージ送信部１２４では、当該遅延要求メッセージの発行（送信）時刻ｔ３が時計部１２１の出力であるカウンタ値で記憶される。
【０１２２】
（ｇ）マスタ装置１１０Ａのメッセージ受信部１１４では、スレーブ装置１２０Ａから送られた遅延要求メッセージが受信され、当該遅延要求メッセージの受信時刻ｔ４が時計部１１１の出力であるカウンタ値で記憶される。
【０１２３】
（ｈ）次に、マスタ装置１１０Ａのメッセージ送信部１１３Ａからスレーブ装置１２０Ａに、遅延応答（DelayResponse）メッセージが送信される。この遅延応答メッセージには、上述のメッセージ受信部１１４が遅延要求メッセージを受信した時刻ｔ４を示す時刻情報がナノセコンド（ｎｓ）単位の値で含まれている。この場合、メッセージ送信部１１３Ａのカウンタ値／ｎｓ変換部１１３ａで、時刻ｔ１を示すカウンタ値がナノセコンド（ｎｓ）単位の値に変換される。
【０１２４】
スレーブ装置１２０Ａのメッセージ受信部１２３Ａでは、マスタ装置１１０Ａから送られる遅延応答メッセージが受信される。しかし、この実施の形態において、メッセージ受信部１２３Ａでは、時刻ｔ４を示すナノセコンド（ｎｓ）単位の値を取得し、それをカウンタ値に変換して記憶することは、行われない。
【０１２５】
（ｉ）次に、マスタ装置１１０Ａのメッセージ送信部１１３Ａからスレーブ装置１２０Ａに、Messageメッセージが送信される。このMessageメッセージには、上述のメッセージ受信部１１４が遅延要求メッセージを受信した時刻ｔ４を示す時刻情報がカウンタ値で含まれている。
【０１２６】
（ｊ）スレーブ装置１２０Ａのメッセージ受信部１２３Ａでは、マスタ装置１１０Ａから送られたMessageメッセージが受信され、時刻ｔ４を示すカウンタ値が取得されて、そのまま記憶される。
【０１２７】
（ｋ）そして、スレーブ装置１２０Ａの演算部１２５では、第１の値として、Offset＝｛（ｔ４−ｔ３）−（ｔ２−ｔ１）｝／２が求められる（（２）式参照）。この場合、メッセージ受信部１２３Ａに記憶されている時刻ｔ１，ｔ２，ｔ４を示すカウンタ値、およびメッセージ送信部１２４に記憶されている時刻ｔ３を示すカウンタ値が用いられる。そして、補正部１２６により、時計部１２１の時刻Ｓｔ（ｘ）がオフセット（Offset）だけ減算した値となるように補正される（（８）式参照）。補正後の時計部１２１の時刻Ｓｔ（ｘ）′は、マスタ装置１１０Ａの時計部１１１の時刻Ｍｔと一致したものとなる（（９）式参照）。
【０１２８】
（ｍ）次に、スレーブ装置１２０Ａのメッセージ送信部１２４からマスタ装置１１０Ａに、遅延要求（DelayRequest）メッセージが送信される。この場合、メッセージ送信部１２４では、当該遅延要求メッセージの発行（送信）時刻ｔ５が時計部１２１の出力であるカウンタ値で記憶される。
【０１２９】
（ｎ）マスタ装置１１０Ａのメッセージ受信部１１４では、スレーブ装置１２０Ａから送られた遅延要求メッセージが受信され、当該遅延要求メッセージの受信時刻ｔ６が時計部１１１の出力であるカウンタ値で記憶される。
【０１３０】
（ｐ）次に、マスタ装置１１０Ａのメッセージ送信部１１３Ａからスレーブ装置１２０Ａに、遅延応答（DelayResponse）メッセージが送信される。この遅延応答メッセージには、上述のメッセージ受信部１１４が遅延要求メッセージを受信した時刻ｔ６を示す時刻情報がナノセコンド（ｎｓ）単位の値で含まれている。この場合、メッセージ送信部１１３Ａのカウンタ値／ｎｓ変換部１１３ａで、時刻ｔ１を示すカウンタ値がナノセコンド（ｎｓ）単位の値に変換される。
【０１３１】
スレーブ装置１２０Ａのメッセージ受信部１２３Ａでは、マスタ装置１１０Ａから送られる遅延応答メッセージが受信される。しかし、この実施の形態において、メッセージ受信部１２３Ａでは、時刻ｔ６を示すナノセコンド（ｎｓ）単位の値を取得し、それをカウンタ値に変換して記憶することは、行われない。
【０１３２】
（ｑ）次に、マスタ装置１１０Ａのメッセージ送信部１１３Ａからスレーブ装置１２０Ａに、Messageメッセージが送信される。このMessageメッセージには、上述のメッセージ受信部１１４が遅延要求メッセージを受信した時刻ｔ６を示す時刻情報がカウンタ値で含まれている。
【０１３３】
（ｒ）スレーブ装置１２０Ａのメッセージ受信部１２３Ａでは、マスタ装置１１０Ａから送られたMessageメッセージが受信され、時刻ｔ６を示すカウンタ値が取得されて、そのまま記憶される。
【０１３４】
（ｓ）また、スレーブ装置１２０Ａの演算部１２５では、Delay＝｛（ｔ４−ｔ３）＋（ｔ２−ｔ１）｝／２が求められる（（３）式参照）。この場合、メッセージ受信部１２３Ａに記憶されている時刻ｔ１，ｔ２，ｔ４を示すカウンタ値、およびメッセージ送信部１２４に記憶されている時刻ｔ３を示すカウンタ値が用いられる。また、予想値演算部１２７では、メッセージ送信部１２４に記憶されている時刻ｔ５を示すカウンタ値に、演算部１２５で求められたディレイ（Delay）が加算されて、予想値ｔ６′＝ｔ５＋DeLayが求められる。
【０１３５】
そして、予想値演算部１２７では、メッセージ受信部１２３に記憶されている時刻ｔ６と、予想値ｔ６′とが比較されて、その比較結果に応じた補正指令が出力される。すなわち、ｔ６＞ｔ６′であるとき、スレーブクロックＣＬＫｓの周波数が低いと判断され、周波数を上げる補正指令Ｆｕが出力される。また、ｔ６＜ｔ６′であるとき、スレーブクロックＣＬＫｓの周波数が高いと判断され、周波数を下げる補正指令Ｆｄが出力される。
【０１３６】
このように予想値演算部１２７から出力される補正指令に基づいて、周波数補正部１２８では出力デジタル信号ＤＳの値が変更され、スレーブクロック発生部１２２への制御電圧ＶＣが変更され、クロックＣＬＫｓの周波数が制御される。これにより、時計部１２１のカウンタ値変化が、マスタ装置１１０Ａの時計部１２１のカウンタ値の変化に対応した、理想的なカウンタ値変化に近づけられる。
【０１３７】
上述した図５に示す時刻同期化の動作が定期的に繰り返されることで、スレーブ装置１２０Ａの時刻は、オフセット補正時点だけでなく、常に、マスタ装置１１０Ａの時刻と一致するようになる。これにより、スレーブ装置１２０Ａにおいてマスタ装置１１０Ａとの完全な時刻同期化が可能となる。
【０１３８】
以上説明したように、図４に示す電子機器システム１００Ａにおいては、図１に示す電子機器システム１００と同様に、時刻同期化の動作が行われる。この場合、スレーブ装置１２０Ａでは、第１の値であるオフセット（Offset）による時計部１２１の時刻補正の他に、第２の値である予想値ｔ６′によるスレーブクロック発生部１２２のクロックＣＬＫｓの周波数補正が行われる。したがって、これらの時刻補正およびクロック周波数補正が繰り返されることで、スレーブ装置１２０Ａの時刻は、オフセット補正時点だけでなく、常に、マスタ装置１１０Ａの時刻と一致するようになる。これにより、スレーブ装置１２０Ａにおいてマスタ装置１１０Ａとの完全な時刻同期化が可能となる。
【０１３９】
また、図４に示す電子機器システム１００Ａにおいては、マスタ装置１１０Ａからスレーブ装置１２０Ａに、Messageメッセージが使用されて、時刻ｔ１，ｔ４，ｔ６の時刻情報がカウンタ値で送られる。マスタ装置１１０Ａからスレーブ装置１２０Ａに時刻情報をカウンタ値で送ることで、マスタ装置でカウンタ値をナノセコンド（ｎｓ）単位の値に変換する処理、およびスレーブ装置でナノセコンド（ｎｓ）単位の値をカウンタ値に変換する処理が行われない。そのため、マスタ装置１１０Ａからスレーブ装置１２０Ａに供給される時刻ｔ１，ｔ４，ｔ６の時刻情報は、変換時の演算誤差を含まない正確な時刻情報となる。したがって、演算部１２５では、オフセット(Offset)およびディレイ（Delay）を精度よく求めることができる。また、予想値演算部１２７では、予想値ｔ６′＝ｔ５＋Delayを精度よく求めることができると共に、予想値ｔ６′と実際の到着時刻ｔ６との比較を精度よく行うことができる。これにより、スレーブ装置１２０Ａではマスタ装置１１０Ａとの時刻同期化をより高精度に実現できる。
【０１４０】
＜３．第３の実施の形態＞
［電子機器システムの構成例］
図６は、第３の実施の形態としての電子機器システム１００Ｂの構成例を示している。この電子機器システム１００Ｂは、上述の図１に示す電子機器システム１００と同様に、マスタ装置１１０とスレーブ装置１２０Ｂにより構成されている。この図６において、図１と対応する部分には、同一符号を付して示し、その詳細説明は省略する。
【０１４１】
スレーブ装置１２０Ｂは、時計部１２１と、スレーブクロック発生部１２２と、メッセージ受信部１２３と、メッセージ送信部１２４と、演算部１２５Ｂと、補正部１２６Ｂを有している。また、スレーブ装置１２０Ｂは、予想値演算部１２７と、周波数補正部１２８と、Ｄ／Ａコンバータ１２９を有している。
【０１４２】
演算部１２５Ｂは、時計部１２１の時刻の補正に必要な補正値（第１の値）を求める。この補正値には、第１段階の補正で使用する第１の補正値と、第２の段階の補正で使用する第２の補正値とがある。この演算部１２５Ｂは、第１の補正値として、（ｔ２−ｔ１）を求める。ここで、時刻ｔ１は、メッセージ受信部１２３で受信されたフォローアップメッセージの時刻情報が示す時刻である。この時刻ｔ１は、マスタ装置１１０のメッセージ送信部１１３が、スレーブ装置１２０Ｂに同期化メッセージを送信（発行）した時刻である。時刻ｔ２は、メッセージ受信部１２３で同期化メッセージが受信された時刻である。
【０１４３】
また、この演算部１２５Ｂは、第２の補正値として、（ｔ４−ｔ３）／２を求める。ここで、時刻ｔ３は、メッセージ送信部１２４がマスタ装置１１０に遅延要求メッセージを送信（発行）した時刻である。時刻ｔ４は、メッセージ受信部１２３で受信された遅延応答メッセージの時刻情報が示す時刻である。この時刻ｔ４は、メッセージ送信部１２４で時刻ｔ３に発行された遅延要求メッセージがマスタ装置１１０のメッセージ受信部１１４で受信された時刻である。
【０１４４】
補正部１２６Ｂは、第１段階の補正および第２段階の補正を行う。すなわち、補正部１２６Ｂは、第１段階の補正において、演算部１２５Ｂで求められた第１の補正値に基づいて、時計部１２１の時刻Ｓｔ（ｘ）を補正する。この場合、補正部１２６Ｂは、時計部１２１の時刻Ｓｔ（ｘ）を、第１の補正値「（ｔ２−ｔ１）」だけ減算した値となるように、スレーブクロック発生部１２２から発生されるスレーブクロックＣＬＫｓに同期したタイミングで補正する。
【０１４５】
時計部１２１の補正後の時刻Ｓｔ（ｘ）′は、マスタ装置１１０の時計部１１１の時刻Ｍｔ（ｘ）から、マスタ装置１１０とスレーブ装置１２０Ｂとの間の伝送遅延成分（Delay）が差し引かれた値となり、オフセット成分（Offset）が除かれた状態となる。
【０１４６】
すなわち、スレーブ装置１２０Ｂの時計部１２１の補正前の時刻Ｓｔ（ｘ）とマスタ装置１１０の時計部１１１の時刻Ｍｔ（ｘ）との差をオフセット(Offset)とすると、（１１）式が成り立つ。
Ｓｔ（ｘ）−Ｍｔ（ｘ）＝Offset      ・・・（１１）
この（１１）式を変形すると、（１２）式が得られる。
Ｓｔ（ｘ）＝Offset＋Ｍｔ（ｘ）      ・・・（１２）
【０１４７】
マスタ装置１１０とスレーブ装置１２０Ｂとの間の伝送遅延をディレイ（Delay）とすると、第１の補正値である（ｔ２−ｔ１）は、（１３）式に示すように、オフセット(Offset)とディレイ（Delay）を加算したものとなる。
（ｔ２−ｔ１）＝Offset＋Delay      ・・・（１３）
【０１４８】
上述した第１段階の補正は、以下の（１４）式で表される。
Ｓｔ（ｘ）′＝Ｓｔ（ｘ）−（ｔ２−ｔ１）      ・・・（１４）
この（１４）式に、上述の（１２）式および（１３）式を適用すると、（１５）式が得られる。
Ｓｔ（ｘ）′＝（Offset＋Ｍｔ（ｘ））−（Offset＋Delay）
＝Ｍｔ（ｘ）−Delay            ・・・（１５）
【０１４９】
このように、第１段階の補正後の時刻Ｓｔ（ｘ）′は、マスタ装置１１０の時計部１１１の時刻Ｍｔ（ｘ）から、マスタ装置１１０とスレーブ装置１２０Ｂとの間の伝送遅延成分（Delay）が差し引かれた値となる。これにより、補正後の時刻Ｓｔ（ｘ）′は、オフセット成分（Offset）が除かれた状態となる。
【０１５０】
また、補正部１２６Ｂは、第２段階の補正において、演算部１２５Ｂで求められた第２の補正値に基づいて、時計部１２１の時刻Ｓｔ（ｘ）′を補正する。この場合、補正部１２６Ｂは、時計部１２１の時刻Ｓｔ（ｘ）′を、第２の補正値「（ｔ４−ｔ３）／２」だけ加算した値となるように、スレーブクロック発生部１２２から発生されるスレーブクロックＣＬＫｓに同期したタイミングで補正する。
【０１５１】
この場合、時計部１２１の補正後の時刻Ｓｔ（ｘ）″は、マスタ装置１１０の時計部１１１の時刻Ｍｔ（ｘ）と一致し、マスタ装置１１０との時刻同期化が図られる。
【０１５２】
すなわち、上述の（１５）式より、ｔ３が（Ｍｔ（ｘ）−Delay）であるとき、ｔ４は（Ｍｔ（ｘ）＋Delay）となる。そのため、（ｔ４−ｔ３）／２は、（１６）式に示すように、ディレイ（Delay）となる。
（ｔ４−ｔ３）／２
＝｛（Ｍｔ（ｘ）＋Delay）−（Ｍｔ（ｘ）−Delay）｝／２
＝２＊Delay／２  ＝Delay                ・・・（１６）
【０１５３】
上述した第２段階の補正は、以下の（１７）式で表される。
Ｓｔ（ｘ）″＝Ｓｔ（ｘ）′＋（ｔ４−ｔ３）／２      ・・・（１７）
この（１７）式に、上述の（１５）式および（１６）式を適用すると、（１８）式が得られる。
Ｓｔ（ｘ）″＝（Ｍｔ（ｘ）−Delay）＋Delay
＝Ｍｔ（ｘ）                ・・・（１８）
【０１５４】
このように、第２の段階の補正後の時刻Ｓｔ（ｘ）″は、マスタ装置１１０の時計部１１１の時刻Ｍｔ（ｘ）と一致し、マスタ装置１１０との時刻同期化が図られる。
【０１５５】
このスレーブ装置１２０Ｂのその他は、図１に示す電子機器システム１００におけるスレーブ装置１２０と同様に構成されている。
【０１５６】
［時刻同期化の動作］
図７は、図６に示す電子機器システム１００Ｂにおける時刻同期化の動作を示すシーケンス図を示している。
【０１５７】
（ａ）マスタ装置１１０のメッセージ送信部１１３からスレーブ装置１２０Ｂに、同期化（Sync）メッセージが送信されて、時刻同期化の動作が開始される。この場合、メッセージ送信部１１３では、当該同期化メッセージの発行（送信）時刻ｔ１が時計部１１１の出力であるカウンタ値で記憶される。
【０１５８】
（ｂ）スレーブ装置１２０Ｂのメッセージ受信部１２３では、マスタ装置１１０から送られた同期化メッセージが受信され、当該同期化メッセージの受信時刻ｔ２が時計部１２１の出力であるカウンタ値で記憶される。
【０１５９】
（ｃ）次に、マスタ装置１１０のメッセージ送信部１１３からスレーブ装置１２０Ｂに、フォローアップ（FollowUp）メッセージが送信される。このフォローアップメッセージには、同期化メッセージを発行した時刻ｔ１を示す時刻情報がナノセコンド（ｎｓ）単位の値で含まれている。この場合、メッセージ送信部１１３のカウンタ値／ｎｓ変換部１１３ａで、時刻ｔ１を示すカウンタ値がナノセコンド（ｎｓ）単位の値に変換される。
【０１６０】
（ｄ）スレーブ装置１２０Ｂのメッセージ受信部１２３では、マスタ装置１１０から送られたフォローアップメッセージが受信され、時刻ｔ１を示すナノセコンド（ｎｓ）単位の値が取得される。そして、この値は、ｎｓ／カウンタ値変換部１２３ａで、時刻ｔ１を示す時計部１２１の出力であるカウンタ値に変換されて記憶される。
【０１６１】
（ｅ）次に、スレーブ装置１２０Ｂの演算部１２５Ｂでは、メッセージ受信部１２３に記憶されている時刻ｔ１，ｔ２を示すカウンタ値が用いられて、第１の補正値として（ｔ２−ｔ１）が求められる。そして、補正部１２６Ｂにより、時計部１２１の時刻Ｓｔ（ｘ）が、第１の補正値「（ｔ２−ｔ１）」だけ減算した値となるように補正される（（１４）式参照）。補正後の時計部１２１の時刻Ｓｔ（ｘ）′は、マスタ装置１１０の時計部１１１の時刻Ｍｔ（ｘ）から、マスタ装置１１０とスレーブ装置１２０Ｂとの間の伝送遅延成分（Delay）が差し引かれた値となる。つまり、時刻Ｓｔ（ｘ）′は、オフセット成分（Offset）が除かれた状態となる（（１５）式参照）。
【０１６２】
（ｆ）次に、スレーブ装置１２０Ｂのメッセージ送信部１２４からマスタ装置１１０に、遅延要求（DelayRequest）メッセージが送信される。この場合、メッセージ送信部１２４では、当該遅延要求メッセージの発行（送信）時刻ｔ３が時計部１２１の出力であるカウンタ値で記憶される。
【０１６３】
（ｇ）マスタ装置１１０のメッセージ受信部１１４では、スレーブ装置１２０Ｂから送られた遅延要求メッセージが受信され、当該遅延要求メッセージの受信時刻ｔ４が時計部１１１の出力であるカウンタ値で記憶される。
【０１６４】
（ｈ）次に、マスタ装置１１０のメッセージ送信部１１３からスレーブ装置１２０Ｂに、遅延応答（DelayResponse）メッセージが送信される。この遅延応答メッセージには、上述のメッセージ受信部１１４が遅延要求メッセージを受信した時刻ｔ４を示す時刻情報がナノセコンド（ｎｓ）単位の値で含まれている。この場合、メッセージ送信部１１３のカウンタ値／ｎｓ変換部１１３ａで、時刻ｔ４を示すカウンタ値がナノセコンド（ｎｓ）単位の値に変換される。
【０１６５】
（ｉ）スレーブ装置１２０Ｂのメッセージ受信部１２３では、マスタ装置１１０から送られた遅延応答メッセージが受信され、時刻ｔ４を示すナノセコンド（ｎｓ）単位の値が取得される。そして、この値は、ｎｓ／カウンタ値変換部１２３ａで、時刻ｔ４を示す時計部１２１の出力であるカウンタ値に変換されて記憶される。
【０１６６】
（ｊ）次に、スレーブ装置１２０Ｂの演算部１２５Ｂでは、メッセージ受信部１２３に記憶されている時刻ｔ４を示すカウンタ値と、メッセージ送信部１２４に記憶されている時刻ｔ３を示すカウンタ値が用いられ、第２の補正値「（ｔ４−ｔ３）／２」が求められる。そして、補正部１２６Ｂにより、時計部１２１の時刻Ｓｔ（ｘ）′が、第２の補正値「（ｔ４−ｔ３）／２」だけ加算した値となるように補正される（（１７）式参照）。補正後の時計部１２１の時刻Ｓｔ（ｘ）″は、マスタ装置１１０の時計部１１１の時刻Ｍｔと一致したものとなる（（１８）式参照）。
【０１６７】
（ｋ）次に、スレーブ装置１２０Ｂのメッセージ送信部１２４からマスタ装置１１０に、遅延要求（DelayRequest）メッセージが送信される。この場合、メッセージ送信部１２４では、当該遅延要求メッセージの発行（送信）時刻ｔ５が時計部１２１の出力であるカウンタ値で記憶される。
【０１６８】
（ｍ）マスタ装置１１０のメッセージ受信部１１４では、スレーブ装置１２０Ｂから送られた遅延要求メッセージが受信され、当該遅延要求メッセージの受信時刻ｔ６が時計部１１１の出力であるカウンタ値で記憶される。
【０１６９】
（ｎ）次に、マスタ装置１１０のメッセージ送信部１１３からスレーブ装置１２０Ｂに、遅延応答（DelayResponse）メッセージが送信される。この遅延応答メッセージには、上述のメッセージ受信部１１４が遅延要求メッセージを受信した時刻ｔ６を示す時刻情報がナノセコンド（ｎｓ）単位の値で含まれている。この場合、メッセージ送信部１１３のカウンタ値／ｎｓ変換部１１３ａで、時刻ｔ６を示すカウンタ値がナノセコンド（ｎｓ）単位の値に変換される。
【０１７０】
（ｐ）スレーブ装置１２０Ｂのメッセージ受信部１２３では、マスタ装置１１０から送られた遅延応答メッセージが受信され、時刻ｔ６を示すナノセコンド（ｎｓ）単位の値が取得される。そして、この値は、ｎｓ／カウンタ値変換部１２３ａで、時刻ｔ６を示す時計部１２１の出力であるカウンタ値に変換されて記憶される。
【０１７１】
（ｑ）また、スレーブ装置１２０Ｂの演算部１２５Ｂでは、Delay＝｛（ｔ４−ｔ３）＋（ｔ２−ｔ１）｝／２が求められる（（３）式参照）。この場合、メッセージ受信部１２３に記憶されている時刻ｔ１，ｔ２，ｔ４を示すカウンタ値、およびメッセージ送信部１２４に記憶されている時刻ｔ３を示すカウンタ値が用いられる。また、予想値演算部１２７では、メッセージ送信部１２４に記憶されている時刻ｔ５を示すカウンタ値に、演算部１２５で求められたディレイ（Delay）が加算されて、予想値ｔ６′＝ｔ５＋DeLayが求められる（（１０）式参照）。
【０１７２】
そして、予想値演算部１２７では、メッセージ受信部１２３に記憶されている時刻ｔ６と、予想値ｔ６′とが比較されて、その比較結果に応じた補正指令が出力される。すなわち、ｔ６＞ｔ６′であるとき、スレーブクロックＣＬＫｓの周波数が低いと判断され、周波数を上げる補正指令Ｆｕが出力される。また、ｔ６＜ｔ６′であるとき、スレーブクロックＣＬＫｓの周波数が高いと判断され、周波数を下げる補正指令Ｆｄが出力される。
【０１７３】
このように予想値演算部１２７から出力される補正指令に基づいて、周波数補正部１２８では出力デジタル信号ＤＳの値が変更され、スレーブクロック発生部１２２への制御電圧ＶＣが変更され、クロックＣＬＫｓの周波数が制御される。これにより、時計部１２１のカウンタ値変化が、マスタ装置１１０の時計部１２１のカウンタ値の変化に対応した、理想的なカウンタ値変化に近づけられる。
【０１７４】
上述した図７に示す時刻同期化の動作が定期的に繰り返されることで、スレーブ装置１２０Ｂの時刻は、オフセット補正時点だけでなく、常に、マスタ装置１１０の時刻と一致するようになる。これにより、スレーブ装置１２０Ｂにおいてマスタ装置１１０との完全な時刻同期化が可能となる。
【０１７５】
以上説明したように、図６に示す電子機器システム１００Ｂにおいては、図１に示す電子機器システム１００と同様に、時刻同期化の動作が行われる。この場合、スレーブ装置１２０Ｂでは、第１の値（第１の補正値、第２の補正値）による時計部１２１の時刻補正の他に、第２の値である予想値ｔ６′によるスレーブクロック発生部１２２のクロックＣＬＫｓの周波数補正が行われる。したがって、これらの時刻補正およびクロック周波数補正が繰り返されることで、スレーブ装置１２０Ｂの時刻は、時刻補正時点だけでなく、常に、マスタ装置１１０の時刻と一致するようになる。これにより、スレーブ装置１２０Ｂにおいてマスタ装置１１０との完全な時刻同期化が可能となる。
【０１７６】
また、図６に示す電子機器システム１００Ｂにおいては、時刻同期化の動作において、スレーブ装置１２０Ｂの時計部１２１の時刻補正が２段階で行われる。第１段階の補正では、マスタ装置１１０において第１の時刻ｔ１に発行されたメッセージを受信した第２の時刻ｔ２から当該第１の時刻ｔ１を減算して求められた第１の補正値「（ｔ２−ｔ１）」が使用される。そして、スレーブ装置１２０Ｂの時計部１２１の時刻Ｓｔ（ｘ）は、この第１の補正値だけ減算した値となるように補正される。これにより、補正後の時刻Ｓｔ（ｘ）′は、マスタ装置１１０の時計部１１１の時刻Ｍｔ（ｘ）から、マスタ装置１１０とスレーブ装置１２０Ｂとの間の伝送遅延成分（Delay）が差し引かれた値となり、オフセット成分（Offset）が除かれた状態となる。
【０１７７】
また、第２段階の補正では、第３の時刻ｔ３に送信したメッセージがマスタ装置１１０で受信された第４の時刻ｔ４から当該第３の時刻ｔ３を減算し、さらに１／２にして求められた第２の補正値「（ｔ４−ｔ３）／２」が使用される。そして、スレーブ装置１２０Ｂの時計部１２１の時刻Ｓｔ（ｘ）′は、この第２の補正値だけ加算した値となるよう補正される。これにより、スレーブ装置１２０Ｂの時計部１２１の補正後の時刻Ｓｔ（ｘ）″は、マスタ装置１１０の時計部１１１の時刻Ｍｔ（ｘ）と一致し、同期化が図られる。
【０１７８】
従って、図６に示す電子機器システム１００Ｂにおいては、スレーブ装置１２０Ｂの時計部１２１の時刻補正が、従来のように誤差が含まれるオフセット（Offset）の演算結果を用いて行われるものではない。そのため、スレーブ装置１２０Ｂではマスタ装置１１０との時刻同期化を高精度で実現できる。
【０１７９】
因みに、従来の時刻同期化の処理において、オフセット（Offset）は上述の（１）式により算出されている。この場合、｛（ｔ２−ｔ１）−（ｔ４−ｔ３）｝を２で割っているので、当該オフセットの演算結果には０．５の誤差が必ず含まれる。したがって、このように誤差が含まれるオフセットの演算結果を用いて時計部の時刻補正を行う場合、スレーブ装置ではマスタ装置との時刻同期化を高精度で実現できない。
【０１８０】
＜４．変形例＞
なお、上述の第３の実施の形態の電子機器システム１００Ｂにおいても、上述の第２の実施の形態の電子機器システム１００Ａと同様に構成してもよい。すなわち、マスタ装置１１０からスレーブ装置１２０Ｂに、Messageメッセージを使用して、時刻ｔ１，ｔ４，ｔ６の時刻情報をカウンタ値で送ることも考えられる。このようにマスタ装置１１０からスレーブ装置１２０Ｂに時刻情報をカウンタ値で送ることで、マスタ装置でカウンタ値をナノセコンド（ｎｓ）単位の値に変換する処理、およびスレーブ装置でナノセコンド（ｎｓ）単位の値をカウンタ値に変換する処理が行われない。
【０１８１】
そのため、マスタ装置１１０からスレーブ装置１２０Ｂに供給される時刻ｔ１，ｔ４，ｔ６の時刻情報は、変換時の演算誤差を含まない正確な時刻情報となる。したがって、演算部１２５Ｂでは、第１の補正値「（ｔ２−ｔ１）」および第２の補正値「（ｔ４−ｔ３）／２」を精度よく求めることができる。また、演算部１２５Ｂでは、ディレイ（Delay）を精度よく求めることができる。また、予想値演算部１２７では、予想値ｔ６′＝ｔ５＋Delayを精度よく求めることができると共に、予想値ｔ６′と実際の到着時刻ｔ６との比較を精度よく行うことができる。これにより、スレーブ装置１２０Ｂではマスタ装置１１０との時刻同期化をより高精度に実現できる。
【０１８２】
また、上述実施の形態においては、マスタ装置１１０，１１０Ａとスレーブ装置１２０，１２０Ａ，１２０Ｂとの間で伝送されるメッセージとしてＰＴＰメッセージを用いたものを示したが、この発明は、これに限定されない。
【０１８３】
また、上述実施の形態においては、スレーブ装置１２０，１２０Ａ，１２０Ｂに演算部１２５，１２５Ｂおよび補正部１２６，１２６Ｂを別個に設けたが、スレーブ装置１２０，１２０Ａ，１２０Ｂのブロック構成は、これに限定されない。例えば、演算部１２５，１２５Ｂおよび補正部１２６，１２６Ｂの部分が１つの処理ブロックで構成されていてもよい。
【産業上の利用可能性】
【０１８４】
この発明は、スレーブ装置においてマスタ装置との完全な時刻同期化を実現できるものであり、例えば、複数のビデオカメラの時刻同期化が必要なカメラシステム、制御機器と被制御機器との時刻同期化が必要な制御システム等に適用できる。
【符号の説明】
【０１８５】
１００，１００Ａ・・・電子機器システム、１１１・・・時計部、１１２・・・マスタクロック発生部、１１３，１１３Ａ・・・メッセージ送信部、１１３ａ・・・カウンタ値／ｎｓ変換部、１１４・・・メッセージ受信部、１２０，１２０Ａ，１２０Ｂ・・・スレーブ装置、１２１・・・時計部、１２２・・・スレーブクロック発生部、１２３，１２３Ａ・・・メッセージ受信部、１２３ａ・・・ｎｓ／カウンタ値変換部、１２４・・・メッセージ送信部、１２５，１２５Ｂ・・・演算部、１２６，１２６Ｂ・・・補正部、１２７・・・予想値演算部、１２８・・・周波数補正部、１２９・・・Ｄ／Ａコンバータ、１３０・・・伝送路
【図１】
2010197320.tif 000003
【図２】
2010197320.tif 000004
【図３】
2010197320.tif 000005
【図４】
2010197320.tif 000006
【図５】
2010197320.tif 000007
【図６】
2010197320.tif 000008
【図７】
2010197320.tif 000009
【図８】
2010197320.tif 000010
【図９】
2010197320.tif 000011
【図１０】
2010197320.tif 000012