(57)【要約】【課題】マスタ機器とスレーブ機器との間で誤差なくタイムスタンプを通信する。【解決手段】  本開示の送信装置は、α×１０ＸHzの基準クロックに基づくクロック値をカウントし、α毎に１０Ｙ−Ｘずつインクリメントする値をα回連続して出力する第１カウンタと、前記基準クロックに基づく前記クロック値をカウントして０乃至α−１を繰り返し出力する第２カウンタと、前記第２カウンタから出力されるα種類の値それぞれに対し、前記１０Ｙ−Ｘ未満の値が均等に分散されて対応付けられたテーブルと、前記第２カウンタの出力を、前記テーブルを参照して、１０Ｙ−Ｘ未満の値に変換する変換部と、前記第１カウンタの出力と、前記変換部の出力を加算することにより、前記１０−Ｙ秒単位のタイムスタンプを生成する加算部とを備える。本開示は、PTPマスタとPTPスレーブからなる通信システムに適用できる。【選択図】図３
2013172280.tif 000002
【特許請求の範囲】
【請求項１】
規格に従い１０−Ｙ秒単位のタイムスタンプを送信する送信装置において、
α×１０ＸHzの基準クロックに基づくクロック値をカウントし、α毎に１０Ｙ−Ｘずつインクリメントする値をα回連続して出力する第１カウンタと、
前記基準クロックに基づく前記クロック値をカウントして０乃至α−１を繰り返し出力する第２カウンタと、
前記第２カウンタから出力されるα種類の値それぞれに対し、前記１０Ｙ−Ｘ未満の値が均等に分散されて対応付けられたテーブルと、
前記第２カウンタの出力を、前記テーブルを参照して、前記１０Ｙ−Ｘ未満の値に変換する変換部と、
前記第１カウンタの出力と、前記変換部の出力を加算することにより、前記１０−Ｙ秒単位のタイムスタンプを生成する加算部と
を備える送信装置。
【請求項２】
前記規格は、IEEE1588PTPであり、
前記１０−Ｙ秒単位は、１０−９秒単位である
請求項１に記載の送信装置。
【請求項３】
前記α×１０ＸHzは、２７×１０６Hzである
請求項２に記載の送信装置。
【請求項４】
前記α×１０ＸHzの基準クロックに従ってカウントアップすることにより前記クロック値を生成する時計部を
さらに備える請求項２に記載の送信装置。
【請求項５】
規格に従い１０−Ｙ秒単位のタイムスタンプを送信する送信装置の送信方法において、
前記送信装置による、
α×１０ＸHzの基準クロックに基づくクロック値をカウントし、α毎に１０Ｙ−Ｘずつインクリメントする値をα回連続して出力する第１出力ステップと、
前記基準クロックに基づく前記クロック値をカウントして０乃至α−１を繰り返し出力する第２出力ステップと、
前記第２出力ステップで出力されるα種類の値それぞれに対し、前記１０Ｙ−Ｘ未満の値が均等に分散されて対応付けられたテーブルを参照することにより、前記第２出力ステップの出力を、前記１０Ｙ−Ｘ未満の値に変換する変換ステップと、
前記第１ステップの出力と、前記変換ステップの出力を加算することにより、前記１０−Ｙ秒単位のタイムスタンプを生成する加算ステップと
を含む送信方法。
【請求項６】
規格に従い１０−Ｙ秒単位のタイムスタンプを送信するコンピュータを、
α×１０ＸHzの基準クロックに基づくクロック値をカウントし、α毎に１０Ｙ−Ｘずつインクリメントする値をα回連続して出力する第１カウンタと、
前記基準クロックに基づく前記クロック値をカウントして０乃至α−１を繰り返し出力する第２カウンタと、
前記第２カウンタから出力されるα種類の値それぞれに対し、前記１０Ｙ−Ｘ未満の値が均等に分散されて対応付けられたテーブルと、
前記第２カウンタの出力を、前記テーブルを参照して、前記１０Ｙ−Ｘ未満の値に変換する変換部と、
前記第１カウンタの出力と、前記変換部の出力を加算することにより、前記１０−Ｙ秒単位のタイムスタンプを生成する加算部と
して機能させるプログラム。
【請求項７】
規格に従い１０−Ｙ秒単位のタイムスタンプを通信する送信装置と受信装置から成る通信システムにおいて、
前記送信装置は、
α×１０ＸHzの基準クロックに基づくクロック値をカウントし、α毎に１０Ｙ−Ｘずつインクリメントする値をα回連続して出力する第１カウンタと、
前記基準クロックに基づく前記クロック値をカウントして０乃至α−１を繰り返し出力する第２カウンタと、
前記第２カウンタから出力されたるα種類の値それぞれに対し、前記１０Ｙ−Ｘ未満の値が均等に分散されて対応付けられたテーブルと、
前記第２カウンタの出力を、前記テーブルを参照して、前記１０Ｙ−Ｘ未満の値に変換する変換部と、
前記第１カウンタの出力と、前記変換部の出力を加算することにより、前記１０−Ｙ秒単位のタイムスタンプを生成する加算部と
を備え、
前記受信装置は、
前記送信装置から送信された前記１０−Ｙ秒単位のタイムスタンプを１０Ｙ−Ｘで除算したときの商と余りを算出する除算部と、
前記除算部で算出された前記商にαを乗算する乗算部と、
前記送信装置の変換部が参照するものと同一のテーブルを参照することにより、前記除算部で算出された前記余りを、前記１０Ｙ−Ｘ未満の値に逆変換する逆変換部と、
前記乗算部の出力と、前記逆変換部の出力を加算することにより、前記α×１０ＸHzの基準クロックに基づく前記クロック値を復元する加算部と
を備える
通信システム。
【発明の詳細な説明】
【技術分野】
【０００１】
本開示は、送信装置、送信方法、およびプログラム、並びに通信システムに関し、特に、ネットワークを介して接続されているマスタ機器と、時刻情報を高い精度で同期させる場合に用いて好適な送信装置、送信方法、およびプログラム、並びに通信システムに関する。
【背景技術】
【０００２】
従来、ネットワークを介して接続されている装置間で、それぞれの内部の時刻情報を同期させる仕組みが存在し、その代表的なものとしてIEEE1588PTP(precision time protocol)が知られている（例えば、特許文献１参照）。
【０００３】
IEEE1588PTPによれば、ネットワークを介して接続されているマスタ機器（以下、PTPマスタと称する）とスレーブ機器（以下、PTPスレーブと称する）との間でPTPメッセージを通信することにより、PTPマスタの時刻情報に対して、PTPスレーブの時刻情報を同期させることができる。具体的には、PTPマスタ内部の発振周波数ｆ１に対してPTPスレーブ内部の発振周波数ｆ２を同期させ、その後、PTPマスタの時刻情報にPTPスレーブの時刻情報を同期させる。
【０００４】
以下、PTPマスタ内部の発振周波数ｆ１に対してPTPスレーブ内部の発振周波数ｆ２を同期させることを周波数同期と称し、PTPマスタの時刻情報にPTPスレーブの時刻情報を同期させることを時刻同期と称する。
【０００５】
図１は、IEEE1588PTPを利用した従来の高精度時刻同期処理の概要を示している。
【０００６】
PTPマスタは、発振周波数ｆ１に基づく所定の周期Δｍで、PTPマスタの時刻情報（タイムスタンプ）である送信時刻Ｔ１ｉを含むPTPメッセージとしてのSyncメッセージを、ネットワーク上に送信する。一方、PTPスレーブは、PTPマスタが送信したSyncメッセージを受信したことに応じ、そこに含まれる送信時刻Ｔ１ｉを抽出するとともに、PTPスレーブの時刻情報（タイムスタンプ）であるその受信時刻Ｔ２ｉを読み出す。すなわち、PTPスレーブは、Syncパケットを受信する毎に、送信時刻Ｔ１ｉ（PTPマスタのタイムスタンプ）と受信時刻Ｔ２ｉ（PTPスレーブのタイムスタンプ）を得ることになる。
【０００７】
また、PTPスレーブは、PTPメッセージとしてのDelay_reqを、ネットワークを介してPTPマスタに送信し、PTPスレーブの時刻情報（タイムスタンプ）であるその送信時刻Ｔ３を読み出す。一方、PTPマスタは、Delay_reqを受信したことに応じ、PTPマスタの時刻情報（タイムスタンプ）である受信時刻Ｔ４を読み出し、受信時刻Ｔ４を含めたPTPメッセージとしてのDelay_resをPTPスレーブに返信する。従って、PTPスレーブは、Delay_reqを送信し、その応答であるDelay_resを受信することにより、Delay_reqのPTPスレーブからの送信時刻Ｔ３（PTPスレーブのタイムスタンプ）とPTPマスタでの受信時刻Ｔ４（PTPマスタのタイムスタンプ）を得ることになる。
【０００８】
ここで、Syncメッセージ、Delay_req、Delay_resなどのPTPメッセージのネットワークを介する通信に要する時間（以下、ネットワーク遅延時間と称する）は、変動せず常に一定であると仮定する。
【０００９】
この仮定の下においては、PTPマスタの発振周波数ｆ１とPTPスレーブの発振周波数ｆ２が等しければ、PTPマスタにおけるSyncメッセージの送信間隔Δｍ＝Ｔ１２−Ｔ１１とPTPスレーブにおけるSyncメッセージの受信間隔Δｓ＝Ｔ２２−Ｔ２１が一致することになる。換言すれば、ΔｍとΔｓの差Δｍ−Δｓが０ではない場合、PTPマスタの発振周波数ｆ１とPTPスレーブの発振周波数ｆ２との間に誤差があって同期していない状態であるといえる。
【００１０】
したがって、周波数同期については、PTPスレーブにおいて、ΔｍとΔｓの差Δｍ−Δｓ（以下、周波数ずれと称する。）が０になるように、PTPスレーブの発振周波数ｆ２を調整すればよい。周波数ずれΔｍ−Δｓは、次式（１）によって算出できる。
【００１１】
周波数ずれΔｍ−Δｓ
＝（Ｔ１２−Ｔ１１）−（Ｔ２２−Ｔ２１）＝（Ｔ２１−Ｔ１１）−（Ｔ２２−Ｔ１２）
・・・（１）
【００１２】
時刻同期については、PTPスレーブにて、Syncメッセージの送信時刻Ｔ１２と受信時刻Ｔ２２と、Delay_reqの送信時刻Ｔ３と受信時刻Ｔ４とに基づいて、次式（４）に示す時刻差を算出し、この時刻差が０となるように、PTPスレーブにおいて内部時計Ｔ２を調整すればよい。
【００１３】
Syncメッセージのネットワーク遅延
＝（Ｔ２２−時刻差）−Ｔ１２＝（Ｔ２２−Ｔ１２）−時刻差
・・・（２）
Delay_reqのネットワーク遅延
＝Ｔ４−（Ｔ３−時刻差）＝（Ｔ４−Ｔ３）＋時刻差
・・・（３）
Syncメッセージのネットワーク遅延＝Delay_reqのネットワーク遅延＝一定と仮定しているので、時刻差は式（２）から式（３）を減算することにより、次式（４）が導出される。
時刻差＝｛（Ｔ２２−Ｔ１２）−（Ｔ４−Ｔ３）｝／２
・・・（４）
【００１４】
また、ネットワーク遅延については、式（２）と式（３）を加算することにより、次式（５）が導出される。
ネットワーク遅延＝｛（Ｔ２２−Ｔ１２）＋（Ｔ４−Ｔ３）｝／２
・・・（５）
【先行技術文献】
【特許文献】
【００１５】
【特許文献１】特開２０１０−１９０６３５号公報
【発明の概要】
【発明が解決しようとする課題】
【００１６】
ところで、PTPマスタやPTPスレーブと成り得るＡＶ関連の電子装置は、その基準クロックをビデオデータの処理に対して都合のよい２７ＭHzとすることが尤も好適であり、２７ＭHzの基準クロックに従ってカウントアップするクロック値を時刻情報として用いることにより、PLL等を別途に設けることなく時刻情報を得るための構成を簡素化し得る。
【００１７】
これに対し、IEEE1588PTPでは、PTPマスタとPTPスレーブとの間で通信する時刻情報（タイムスタンプ）に対して１０−９秒（ｎｓ：nano second）単位で通信することが規定されている。
【００１８】
したがって、PTPマスタがPTPスレーブに対して時刻情報（タイムスタンプ）を送信する場合、２７ＭHzのクロック値をｎｓ単位のタイムスタンプに変換する必要がある。そして、それを受信したPTPスレーブでは、ｎｓ単位のタイムスタンプを２７ＭHzのクロック値に逆変換する必要がある。
【００１９】
なお、２７ＭHzの１カウントはｎｓ単位で表すと37.037037037037・・・（＝１０９／２７×１０６）ｎｓとなって循環小数となるので、２７ＭHzの基準クロック値をｎｓ単位に変換する場合、従来においては、この循環小数が所定の位で丸められていた。
【００２０】
しかしながら、そのように所定の位で丸めたｎｓ単位のタイムスタンプには誤差が含まれていることになるので、PTPスレーブにおいてPTPマスタと時刻情報を高精度で同期させることができなってしまう。
【００２１】
本開示はこのような状況に鑑みてなされたものであり、マスタ機器とスレーブ機器との間で誤差なくタイムスタンプを通信できるようにするものである。
【課題を解決するための手段】
【００２２】
本開示の第１の側面である送信装置は、規格に従い１０−Ｙ秒単位のタイムスタンプを送信する送信装置において、α×１０ＸHzの基準クロックに基づくクロック値をカウントし、α毎に１０Ｙ−Ｘずつインクリメントする値をα回連続して出力する第１カウンタと、前記基準クロックに基づく前記クロック値をカウントして０乃至α−１を繰り返し出力する第２カウンタと、前記第２カウンタから出力されるα種類の値それぞれに対し、前記１０Ｙ−Ｘ未満の値が均等に分散されて対応付けられたテーブルと、前記第２カウンタの出力を、前記テーブルを参照して、前記１０Ｙ−Ｘ未満の値に変換する変換部と、前記第１カウンタの出力と、前記変換部の出力を加算することにより、前記１０−Ｙ秒単位のタイムスタンプを生成する加算部とを備える。
【００２３】
前記規格は、IEEE1588PTPであり、前記１０−Ｙ秒単位は、１０−９秒単位とすることができる。
【００２４】
前記α×１０ＸHzは、２７×１０６Hzとすることができる。
【００２５】
本開示の第１の側面である送信装置は、前記α×１０ＸHzの基準クロックに従ってカウントアップすることにより前記クロック値を生成する時計部をさらに備えることができる。
【００２６】
本開示の第１の側面である送信方法は、規格に従い１０−Ｙ秒単位のタイムスタンプを送信する送信装置の送信方法において、前記送信装置による、α×１０ＸHzの基準クロックに基づくクロック値をカウントし、α毎に１０Ｙ−Ｘずつインクリメントする値をα回連続して出力する第１出力ステップと、前記基準クロックに基づく前記クロック値をカウントして０乃至α−１を繰り返し出力する第２出力ステップと、前記第２出力ステップで出力されるα種類の値それぞれに対し、前記１０Ｙ−Ｘ未満の値が均等に分散されて対応付けられたテーブルを参照することにより、前記第２出力ステップの出力を、前記１０Ｙ−Ｘ未満の値に変換する変換ステップと、前記第１ステップの出力と、前記変換ステップの出力を加算することにより、前記１０−Ｙ秒単位のタイムスタンプを生成する加算ステップとを含む。
【００２７】
本開示の第１の側面であるプログラムは、規格に従い１０−Ｙ秒単位のタイムスタンプを送信するコンピュータを、α×１０ＸHzの基準クロックに基づくクロック値をカウントし、α毎に１０Ｙ−Ｘずつインクリメントする値をα回連続して出力する第１カウンタと、前記基準クロックに基づく前記クロック値をカウントして０乃至α−１を繰り返し出力する第２カウンタと、前記第２カウンタから出力されるα種類の値それぞれに対し、前記１０Ｙ−Ｘ未満の値が均等に分散されて対応付けられたテーブルと、前記第２カウンタの出力を、前記テーブルを参照して、前記１０Ｙ−Ｘ未満の値に変換する変換部と、前記第１カウンタの出力と、前記変換部の出力を加算することにより、前記１０−Ｙ秒単位のタイムスタンプを生成する加算部として機能させる。
【００２８】
本開示の第１の側面においては、α×１０ＸHzの基準クロックに基づくクロック値がカウントされ、α毎に１０Ｙ−Ｘずつインクリメントされる値がα回連続して出力される。また、前記基準クロックに基づく前記クロック値がカウントされて０乃至α−１が繰り返し出力され、出力されるα種類の値それぞれに対し、前記１０Ｙ−Ｘ未満の値が均等に分散されて対応付けられたテーブルが参照されることにより、出力されるα種類の値が前記１０Ｙ−Ｘ未満の値に変換される。そして、α毎に１０Ｙ−Ｘずつインクリメントされる値と変換後の値が加算されることにより、前記１０−Ｙ秒単位のタイムスタンプが生成される。
【００２９】
本開示の第２の側面である通信システムは、規格に従い１０−Ｙ秒単位のタイムスタンプを通信する送信装置と受信装置から成る通信システムにおいて、前記送信装置が、α×１０ＸHzの基準クロックに基づくクロック値をカウントし、α毎に１０Ｙ−Ｘずつインクリメントする値をα回連続して出力する第１カウンタと、前記基準クロックに基づく前記クロック値をカウントして０乃至α−１を繰り返し出力する第２カウンタと、前記第２カウンタから出力されたるα種類の値それぞれに対し、前記１０Ｙ−Ｘ未満の値が均等に分散されて対応付けられたテーブルと、前記第２カウンタの出力を、前記テーブルを参照して、前記１０Ｙ−Ｘ未満の値に変換する変換部と、前記第１カウンタの出力と、前記変換部の出力を加算することにより、前記１０−Ｙ秒単位のタイムスタンプを生成する加算部とを備える。また、前記受信装置が、前記送信装置から送信された前記１０−Ｙ秒単位のタイムスタンプを１０Ｙ−Ｘで除算したときの商と余りを算出する除算部と、前記除算部で算出された前記商にαを乗算する乗算部と、前記送信装置の変換部が参照するものと同一のテーブルを参照することにより、前記除算部で算出された前記余りを、前記１０Ｙ−Ｘ未満の値に逆変換する逆変換部と、前記乗算部の出力と、前記逆変換部の出力を加算することにより、前記α×１０ＸHzの基準クロックに基づく前記クロック値を復元する加算部とを備える。
【００３０】
本開示の第１の側面においては、送信装置により、α×１０ＸHzの基準クロックに基づくクロック値がカウントされ、α毎に１０Ｙ−Ｘずつインクリメントされる値がα回連続して出力される。また、前記基準クロックに基づく前記クロック値がカウントされて０乃至α−１が繰り返し出力され、出力されるα種類の値それぞれに対し、前記１０Ｙ−Ｘ未満の値が均等に分散されて対応付けられたテーブルが参照されることにより、出力されるα種類の値が前記１０Ｙ−Ｘ未満の値に変換される。そして、α毎に１０Ｙ−Ｘずつインクリメントされる値と変換後の値が加算されることにより、前記１０−Ｙ秒単位のタイムスタンプが生成される。
【００３１】
前記送信装置から送信された前記１０−Ｙ秒単位のタイムスタンプを１０Ｙ−Ｘで除算したときの商と余りが算出され、算出された前記商にαが乗算され、前記送信装置の変換部が参照するものと同一のテーブルが参照されることにより、算出された前記余りが前記１０Ｙ−Ｘ未満の値に逆変換される。そして、乗算の結果と、逆変換の結果とが加算されることにより、前記α×１０ＸHzの基準クロックに基づく前記クロック値が復元される。
【発明の効果】
【００３２】
本開示の第１の側面によれば、誤差なく基準クロック値を復元できるタイムスタンプを送信することができる。
【００３３】
本開示の第２の側面によれば、マスタ機器とスレーブ機器との間で誤差なくタイムスタンプを通信することができる。
【図面の簡単な説明】
【００３４】
【図１】IEEE1588PTPを利用した従来の高精度時刻同期処理の概要を示す図である。
【図２】本開示を適用したPTPマスタとPTPスレーブからなる通信システムの構成例を示すブロック図である。
【図３】ｎｓ変換処理部の機能的ブロックの構成例を示す図である。
【図４】図３に対応する回路図である。
【図５】基準クロックがαＭHzである場合に対応するテーブルの一例を示す図である。
【図６】基準クロックが２７ＭHzである場合に対応するテーブルの一例を示す図である。
【図７】ｎｓ変換処理を説明するフローチャートである。
【図８】ｎｓ逆変換処理部の機能的ブロックの構成例を示す図である。
【図９】ｎｓ逆変換処理を説明するフローチャートである。
【図１０】基準クロックがαＭHzである場合に対応するｎｓ変換処理部の各部の出力を示す図である。
【図１１】基準クロックがαＭHzである場合に対応するｎｓ逆変換処理部の各部の出力を示す図である。
【図１２】基準クロックが２７ＭHzである場合に対応するｎｓ変換処理部の各部の出力を示す図である。
【図１３】基準クロックが２７ＭHzである場合に対応するｎｓ逆変換処理部の各部の出力を示す図である。
【図１４】コンピュータの構成例を示すブロック図である。
【発明を実施するための形態】
【００３５】
以下、本開示を実施するための最良の形態（以下、実施の形態と称する）について、図面を参照しながら詳細に説明する。
【００３６】
図２は、本開示の実施の形態である、ネットワークを介して接続されたPTPマスタとPTPスレーブからなる通信システムを示している。ただし、同図には、PTPマスタとPTPスレーブそれぞれの周波数同期および時刻同期に関係する構成についてのみ図示している。
【００３７】
当該システムのPTPスレーブ３０は、PTPマスタ１０とネットワーク２０を介してPTPメッセージを送受信することにより、自身の時刻情報をPTPマスタの時刻情報を同期させるものである。
【００３８】
PTPマスタ１０は、マスタクロック発振部１１、時計部１２、メッセージ送信部１３、およびメッセージ受信部１４を含む。
【００３９】
マスタクロック発振部１１は、周波数ｆ１＝αＭHzの基準クロックを発振して時計部１２およびメッセージ送信部１３に出力する。なお、本実施の形態においてｆ１＝２７ＭHz（すなわち、α＝２７）とするが、αの値は２７に限定されるものではない。特に、１０００／αが割り切れない場合において本開示が効果的に作用する。
【００４０】
時計部１２は、内蔵するカウンタを周波数ｆ１の基準クロックに従ってカウントアップし、そのカウント値であるクロック値をPTPマスタ１０の時刻情報としてメッセージ送信部１３およびメッセージ受信部１４に供給する。
【００４１】
メッセージ送信部１３は、時刻情報（ｆ１＝αＭHzのクロック値）を、ｎｓ単位のタイムスタンプに変換するｎｓ変換処理部１３ａを内蔵している。ｎｓ変換処理部１３ａの詳細については、図３を参照して後述する。
【００４２】
メッセージ送信部１３は、Syncメッセージを送信するに際し、その送信時刻Ｔ１ｉを表す時刻情報（αＭHzのクロック値）をｎｓ単位のタイムスタンプに変換し、ｎｓ単位のタイムスタンプより表される送信時刻Ｔ１ｉを含むSyncメッセージを所定の周期Δｍでネットワーク２０に送信する。また、メッセージ送信部１３は、メッセージ受信部１４がPTPスレーブ３０からのDelay_reqを受信したことに応じ、メッセージ受信部１４から通知されるその受信時刻Ｔ４を表す時刻情報（αＭHzのクロック値）をｎｓ単位のタイムスタンプに変換し、ｎｓ単位のタイムスタンプにより表される受信時刻Ｔ４を含めたPTPメッセージとしてのDelay_resを、ネットワーク２０を介してPTPスレーブ３０に返信する。
【００４３】
メッセージ受信部１４は、PTPスレーブ３０から送信されたDelay_reqを受信した場合、その受信時刻Ｔ４を表す時刻情報（αＭHzのクロック値）をメッセージ送信部１３に通知する。
【００４４】
一方、PTPスレーブ３０は、スレーブクロック発振部３１、時計部３２、メッセージ受信部３３、補正処理部３４、およびメッセージ送信部３５を含む。
【００４５】
スレーブクロック発振部３１は、周波数ｆ２の基準クロックを発振して時計部３２に出力する。また、スレーブクロック発振部３１は、補正処理部３４から入力される、式（１）に示された周波数ずれΔｍ−Δｓが０となるように周波数ｆ２を調整する。
【００４６】
時計部３２は、内蔵するカウンタを周波数ｆ２の基準クロックに従ってカウントアップし、そのカウント値をクロック値としてPTPスレーブ３０の時刻情報としてメッセージ受信部３３およびメッセージ送信部３５に供給する。また、時計部３２は、補正処理部３４から入力される、式（４）に示された時刻差が０となるように時刻情報（周波数ｆ２のクロック値）を調整する。
【００４７】
メッセージ受信部３３は、ｎｓ単位のタイムスタンプを時刻情報（αＭHzのクロック値）に逆変換するｎｓ逆変換処理部３３ａを内蔵している。ｎｓ逆変換処理部３３ａの詳細については、図８を参照して後述する。
【００４８】
メッセージ受信部３３は、PTPマスタ１０からネットワーク２０を介して送信されるPTPメッセージとしてのSyncメッセージを受信し、Synsメッセージからｎｓ単位のタイムスタンプより表される送信時刻Ｔ１ｉを抽出する。さらに、メッセージ受信部３３は、ｎｓ単位のタイムスタンプより表される送信時刻Ｔ１ｉをαＭHzのクロック値に逆変換して補正処理部３４に出力する。さらに、メッセージ受信部３３は、Syncメッセージを受信したときの受信時刻Ｔ２（周波数ｆ２のクロック値）を補正処理部３４に出力する。
【００４９】
また、メッセージ受信部３３は、PTPスレーブ３０が送信するDelay_reqに応じ、PTPマスタ１０からネットワーク２０を介して返信されるPTPメッセージとしてのDelay_resを受信し、受信したDelay_resに含まれるDelay_reqの、ｎｓ単位のタイムスタンプより表される受信時刻Ｔ４を抽出する。さらに、メッセージ受信部３３は、ｎｓ単位のタイムスタンプより表される受信時刻Ｔ４をαＭHzのクロック値に逆変換して補正処理部３４に出力する。
【００５０】
補正処理部３４は、メッセージ受信部３３から入力されるSyncメッセージの送信時刻Ｔ１（αＭHzのクロック値）とその受信時刻Ｔ２（αＭHzのクロック値）に基づき、上述した式（１）に示された周波数ずれΔｍ−Δｓを演算してスレーブクロック発振部３１に出力する。
【００５１】
さらに、補正処理部３４は、Syncメッセージの送受信時刻Ｔ１，Ｔ２（αＭHzのクロック値）と、メッセージ送信部３５から入力される、Delay_reqの送信時刻Ｔ３（周波数ｆ２のクロック値）と、Delay_reqの受信時刻Ｔ４（αＭHzのクロック値）に基づき、式（４）に示された時刻差を演算して時計部３２に出力する。
【００５２】
メッセージ送信部３５は、ネットワーク２０を介してPTPマスタ１０に対してDelay_reqを送信するとともに、その送信時刻Ｔ３（周波数ｆ２のクロック値）を補正処理部３４に出力する。
【００５３】
［ｎｓ変換処理部１３ａの構成例］
次に図３は、PTPマスタ１０のメッセージ送信部１３に内蔵されたｎｓ変換処理部１３ａの機能的ブロックの構成例を示している。
【００５４】
ｎｓ変換処理部１３ａは、第１カウンタ５１、第２カウンタ５２、変換部５３、および加算部５５から構成される。
【００５５】
第１カウンタ５１は、ｎｓ単位のタイムスタンプの千の位以上の値を出力するためのものである。第１カウンタ５１は、時計部１２から入力される時刻情報（αＭHzのクロック値）が０からα−１までは０を出力し、αから２α−１までは１０００を出力し、２αから３α−１までは２０００を出力するように、１０００ずつインクリメントした値をα回連続して出力する。なお、第１カウンタ５１の出力が１０９−１０３となり、それがα回出力されると、第１カウンタ５１はその出力を０にリセットする。このとき同時に秒を計数するカウンタ（不図示）をインクリメントすることで、正確な１秒を計数することができる。
【００５６】
第２カウンタ５２は、ｎｓ単位のタイムスタンプの百の位以下を決定するためのものである。第２カウンタ５２は、時計部１２から入力される時刻情報（αＭHzのクロック値）が０からα−１までは入力と同じ値を出力し、入力がαから２α−１までは０からα−１までを順に出力し、それ以降の同様に、入力に合わせて０からα−１までを順に出力する。すなわち、第２カウンタ５２は、０からα−１までを順に出力するリングカウンタとすることができる。
【００５７】
変換部５３は、内蔵するテーブル５４を参照することにより、第２カウンタの値に対応する、ｎｓ単位のタイムスタンプの百の位以下の値を出力する。
【００５８】
加算部５５は、第１カウンタ５１から入力されるｎｓ単位のタイムスタンプの千の位以上の値と、変換部５３から入力されるｎｓ単位のタイムスタンプの百の位以下の値とを加算することにより、１秒未満のｎｓ単位のタイムスタンプを生成する。
【００５９】
なお、図３においては図示を省略するが、第１カウンタ５１の出力が１０９−１０３であり、且つ、第２カウンタ５２の出力がα−１であるタイミングで１秒単位のタイムスタンプを出力するようになされている。
【００６０】
図４は、図３に示されたｎｓ変換処理部３ａの機能的ブロックの構成例を具現化する電気回路の構成例を示している。なお、図４においては、図３の機能ブロックに対応する部位に対して図３と共通の番号を付しているので、その説明は省略する。
【００６１】
[テーブルの一例]
図５は、PTPマスタ１０のマスタクロック発振部１１がαＭHzの基準クロックを発振する場合に対応する、変換部５３が内蔵するテーブル５４の一例を示している。
【００６２】
テーブル５４は、第２カウンタの値である０からα−１までのα種類の値に対して、ｎｓ単位のタイムスタンプの百の位以下の値が均等に分散されて対応付けて記録されている。
【００６３】
例えば、第２カウンタの値０にはタイムスタンプの値ｔ０＝０、第２カウンタの値１にはタイムスタンプの値ｔ１＝１０００／α（整数）、第２カウンタの値２にはタイムスタンプの値ｔ２＝２×１０００／α（整数）が対応付けられている。
【００６４】
図６は、PTPマスタ１０のマスタクロック発振部１１が２７ＭHzの基準クロックを発振する場合（αが２７である場合）に対応するテーブル５４の一例を示している。
【００６５】
この場合、テーブル５４には、第２カウンタの値である０から２６までの２７種類の値に対して、ｎｓ単位のタイムスタンプの百の位以下の値が均等に正規化されて対応付けて記録されている。例えば、第２カウンタの値１にはｎｓ単位のタイムスタンプの値３７が、第２カウンタの値２にはｎｓ単位のタイムスタンプの値７４が、第２カウンタの値２６にはｎｓ単位のタイムスタンプの値９６３が対応付けられている。
【００６６】
[ｎｓ変換処理部１３ａの動作説明]
次に、PTPマスタ１０がPTPスレーブ３０に対してタイムスタンプを送信するときに実行されるｎｓ変換処理について説明する。図７は、ｎｓ変換処理を説明するフローチャートである。
【００６７】
ステップＳ１において、第１カウンタ５１は、時計部１２から入力された時刻情報（αＭHzのクロック値）をカウントし、０からα−１までは０を、αから２α−１までは１０００を、２αから３α−１までは２０００を出力するように、１０００ずつインクリメントした値をα回連続して加算部５５に出力する。
【００６８】
これと同時に、第２カウンタ５２は、時計部１２から入力された時刻情報（αＭHzのクロック値）をカウントし、その値が０からα−１までは入力と同じ値を、入力がαから２α−１までは０からα−１までを順に出力し、それ以降の同様に、入力に合わせて０からα−１までを順に変換部５３に出力する。
【００６９】
ステップＳ２において、変換部５３は、内蔵するテーブル５４を参照することにより、第２カウンタの値に対応する、ｎｓ単位のタイムスタンプの百の位以下の値を出力する。
【００７０】
ステップＳ３において、加算部５５は、第１カウンタ５１から入力されたｎｓ単位のタイムスタンプの千の位以上の値と、変換部５３から入力されたｎｓ単位のタイムスタンプの百の位以下の値とを加算することにより、１秒未満のｎｓ単位のタイムスタンプを生成する。
【００７１】
以上のようにしてαＭHzのクロック値から変換されたｎｓ単位のタイムスタンプがPTPスレーブ３０に送信される。
【００７２】
[ｎｓ逆変換処理部３３ａの構成例]
次に図３は、PTPスレーブ３０のメッセージ受信部３３に内蔵されたｎｓ逆変換処理部３３ａの機能的ブロックの構成例を示している。
【００７３】
ｎｓ逆変換処理部３３ａは、除算部６１、乗算部６２、逆変換部６３、加算部６４、および補正部６５から構成される。
【００７４】
除算部６１は、PTPマスタ１０から送信されるSyncメッセージやDelay_resに含まれるｎｓ単位のタイムスタンプを１０００で除算することにより、その商（整数）と余り（１００の位以下の値）を算出し、商を乗算部６２に、その余りを逆変換部６３に出力する。
【００７５】
乗算部６２は、除算部６１から入力される商にα（本実施の形態の場合、２７）を乗算してその乗算結果を加算部６４に出力する。逆変換部６３は、ｎｓ変換処理部１３ａの変換部５３が内蔵しているものと同一のテーブル５４を内蔵しており、除算部６１から入力される余り（ｎｃ単位のタイムスタンプの百の位以下の値）を、テーブル５４を参照することによってαＭHzのクロック値に変換して加算部６４に出力する。
【００７６】
加算部６４は、乗算部６２の出力に逆変換部６３の出力を加算することによりαＭHzのクロック値を復元して補正部６５に出力する。ただし、加算部６４により復元されたαＭHzのクロック値は、ｎｓ逆変換処理部３３ａにおける処理に要する時間だけ遅延している。そこで、補正部６５は、ｎｓ逆変換処理部３３ａに要する時間に相当する所定の値を、加算部６４の出力に加算する補正を行って、補正後のαＭHzのクロック値を後段に出力する。
【００７７】
[ｎｓ逆変換処理部３３ａの動作説明]
次に、PTPスレーブ３０がマスタ１０から、ｎｓ単位のタイムスタンプを含むSyncメッセージやDelay_resを受信した時に実行されるｎｓ逆変換処理について説明する。図９は、ｎｓ逆変換処理を説明するフローチャートである。
【００７８】
ステップＳ１１において、除算部６１は、PTPマスタ１０から送信されるSyncメッセージやDelay_resに含まれていたｎｓ単位のタイムスタンプを１０００で除算することにより、その商（整数）と余り（１００の位以下の値）を算出し、商を乗算部６２に、その余りを逆変換部６３に出力する。
【００７９】
ステップＳ１２において、乗算部６２は、除算部６１から入力された商にαを乗算してその乗算結果を加算部６４に出力する。ステップＳ１３において、逆変換部６３は、除算部６１から入力された余りを、テーブル５４を参照することによってαＭHzのクロック値に変換して加算部６４に出力する。
【００８０】
ステップＳ１４において、加算部６４は、乗算部６２の出力に逆変換部６３の出力を加算することによりαＭHzのクロック値を復元して補正部６５に出力する。ステップＳ１５において、補正部６５は、ｎｓ逆変換処理部３３ａに要する時間に相当する所定の値を、加算部６４の出力に加算する補正を行って、補正後のαＭHzのクロック値を後段に出力する。
【００８１】
以上のようにしてPTPマスタ１０から送信されたｎｓ単位のタイムスタンプがαＭHzのクロック値に逆変換されるので、PTPスレーブ３０においてはαＭHzの基準クロックに基づくPTPマスタ１０と同期した動作が可能となる。
【００８２】
[変換例の説明]
図１０は、基準クロックがαＭHzである場合のｎｓ変換処理部１３ａの各部の出力を示しており、図１１は、それに対応するｎｓ逆変換処理部３３ａの各部の出力を示している。
【００８３】
図１０の最上段に示された基準クロックのクロック値と、図１１の最下段に示された加算部６４の出力を比較して明らかなように、PTPスレーブ３０においてPTPマスタ１０から送信されたαＭHzのクロック値が正確に復元されていることを確認できる。
【００８４】
次に、図１２は、基準クロックが２７ＭHzである場合のｎｓ変換処理部１３ａの各部の出力を示しており、図１３は、それに対応するｎｓ逆変換処理部３３ａの各部の出力を示している。
【００８５】
図１２の最上段に示された基準クロックのクロック値と、図１３の最下段に示された加算部６４の出力を比較して明らかなように、PTPスレーブ３０においてPTPマスタ１０から送信された２７ＭHzのクロック値が正確に復元されていることを確認できる。
【００８６】
以上説明したように、本開示によれば、複雑な演算を要することなく、αＭHzのクロック値をｎｓ単位のタイムスタンプに変換し、それを逆変換して正確にαＭHzのクロック値を復元することができる。したがって、PTPスレーブ３０において、復元したαＭHzのクロック値に誤差が蓄積して誤動作が発生するような事態を抑止することができる。
【００８７】
なお、本実施の形態においては、基準クロックαＭHzが２７ＭHzである場合についてのみ言及したが、例えば、αＭHzが３３ＭHzなどの場合であっても本開示を適用できる。ただし、この場合、テーブル５４は、３３種類の値の対応を保持する必要がある。
【００８８】
また、本実施の形態においては、タイムスタンプのオーダーをｎｓ単位としたが、タイムスタンプのオーダーはこれに限るものではない。
【００８９】
ところで、上述したｎｓ変換処理部１３ａまたはｎｓ逆変換処理部３３ａによる一連の処理は、ハードウェアにより実行することもできるし、ソフトウェアにより実行することもできる。一連の処理をソフトウェアにより実行する場合には、そのソフトウェアを構成するプログラムが、コンピュータにインストールされる。ここで、コンピュータには、専用のハードウェアに組み込まれているコンピュータや、各種のプログラムをインストールすることで、各種の機能を実行することが可能な、例えば汎用のパーソナルコンピュータなどが含まれる。
【００９０】
図１４は、上述した一連の処理をプログラムにより実行するコンピュータのハードウェアの構成例を示すブロック図である。
【００９１】
コンピュータにおいて、CPU（Central Processing Unit）１０１，ROM（Read Only Memory）１０２，RAM（Random Access Memory）１０３は、バス１０４により相互に接続されている。
【００９２】
バス１０４には、さらに、入出力インタフェース１０５が接続されている。入出力インタフェース１０５には、入力部１０６、出力部１０７、記憶部１０８、通信部１０９、およびドライブ１１０が接続されている。
【００９３】
入力部１０６は、キーボード、マウス、マイクロフォンなどよりなる。出力部１０７は、ディスプレイ、スピーカなどよりなる。記憶部１０８は、ハードディスクや不揮発性のメモリなどよりなる。通信部１０９は、ネットワークインタフェースなどよりなる。ドライブ１１０は、磁気ディスク、光ディスク、光磁気ディスク、又は半導体メモリなどのリムーバブルメディア１１１を駆動する。
【００９４】
以上のように構成されるコンピュータでは、CPU１０１が、例えば、記憶部１０８に記憶されているプログラムを、入出力インタフェース１０５およびバス１０４を介して、RAM１０３にロードして実行することにより、上述した一連の処理が行われる。
【００９５】
コンピュータ（CPU１０１）が実行するプログラムは、例えば、パッケージメディア等としてのリムーバブルメディア１１１に記録して提供することができる。また、プログラムは、ローカルエリアネットワーク、インターネット、デジタル衛星放送といった、有線または無線の伝送媒体を介して提供することができる。
【００９６】
コンピュータでは、プログラムは、リムーバブルメディア１１１をドライブ１１０に装着することにより、入出力インタフェース１０５を介して、記憶部１０８にインストールすることができる。また、プログラムは、有線または無線の伝送媒体を介して、通信部１０９で受信し、記憶部１０８にインストールすることができる。その他、プログラムは、ROM１０２や記憶部１０８に、あらかじめインストールしておくことができる。
【００９７】
なお、コンピュータが実行するプログラムは、本明細書で説明する順序に沿って時系列に処理が行われるプログラムであってもよいし、並列に、あるいは呼び出しが行われたとき等の必要なタイミングで処理が行われるプログラムであってもよい。
【００９８】
なお、本開示の実施の形態は、上述した実施の形態に限定されるものではなく、本開示の要旨を逸脱しない範囲において種々の変更が可能である。
【符号の説明】
【００９９】
１０  PTPマスタ，  １１  マスタクロック発振部，  １２  時計部，  １３  メッセージ送信部，  １３ａ  ｎｓ変換処理部，  １４  メッセージ受信部，  ２０  ネットワーク，  ３０  PTPスレーブ，  ３１  スレーブクロック発振部，  ３２  時計部，  ３３  メッセージ受信部，  ３３ａ  ｎｓ逆変換処理部，  ３４  補正処理部，  ３５  メッセージ送信部，  ５１  第１カウンタ，  ５２  第２カウンタ，  ５３  変換部，  ５４  テーブル，  ５５  加算部，  ６１  除算部，  ６２  乗算部，  ６３  逆変換部，  ６４  加算部，  ６５  補正部，  １００  コンピュータ，  １０１  CPU
【図１】
2013172280.tif 000003
【図２】
2013172280.tif 000004
【図３】
2013172280.tif 000005
【図４】
2013172280.tif 000006
【図５】
2013172280.tif 000007
【図６】
2013172280.tif 000008
【図７】
2013172280.tif 000009
【図８】
2013172280.tif 000010
【図９】
2013172280.tif 000011
【図１０】
2013172280.tif 000012
【図１１】
2013172280.tif 000013
【図１２】
2013172280.tif 000014
【図１３】
2013172280.tif 000015
【図１４】
2013172280.tif 000016