(57)【特許請求の範囲】
【請求項１】
データ用通信線、および、定周期信号を送信する専用の信号線で接続されたマスタ装置とスレーブ装置とを備える時刻同期システムであって、
前記マスタ装置は、
時刻を計時するマスタ計時部と、
一定の送信周期で前記定周期信号を生成し、前記スレーブ装置に前記信号線を介して前記定周期信号を送信する定周期信号送信部と、
前記定周期信号の送信開始時刻を示す開始時刻情報を前記スレーブ装置に前記データ用通信線を介して送信する開始時刻送信部と、
前記定周期信号の送信周期を示す送信周期情報を前記スレーブ装置に前記データ用通信線を介して送信する送信周期送信部と、を備え、
前記スレーブ装置は、
時刻を計時するスレーブ計時部と、
前記マスタ装置から前記定周期信号を前記信号線を介して受信する定周期信号受信部と、
前記マスタ装置から前記開始時刻情報を前記データ用通信線を介して受信する開始時刻受信部と、
前記マスタ装置から前記送信周期情報を前記データ用通信線を介して受信する送信周期受信部と、
前記定周期信号受信部が前記定周期信号を受信した回数をカウントするカウント部と、
前記開始時刻情報が示す送信開始時刻と、前記送信周期情報が示す送信周期と、前記定周期信号の受信回数とに基づいて、前記マスタ装置における前記定周期信号の送信時刻を前記マスタ装置の現在時刻として算出する時刻算出部と、
前記スレーブ計時部の時刻を前記時刻算出部が算出した前記マスタ装置の現在時刻に補正する時刻補正部と、
を備える時刻同期システム。
【請求項２】
前記時刻算出部は、前記カウント部が前記定周期信号の受信回数をカウントするたびに、前記開始時刻情報が示す送信開始時刻と、前記送信周期情報が示す送信周期と、前記定周期信号の受信回数とに基づいて、前記マスタ装置における前記定周期信号の送信時刻を前記マスタ装置の現在時刻として算出する、
請求項１に記載の時刻同期システム。
【請求項３】
前記マスタ装置は、
あらかじめ決められた前記定周期信号の送信開始時刻を示す前記開始時刻情報を記憶する時刻記憶部をさらに備え、
前記開始時刻送信部は、前記時刻記憶部が記憶する前記開始時刻情報を前記データ用通信線を介して前記スレーブ装置に送信し、
前記定周期信号送信部は、前記マスタ計時部の時刻が前記開始時刻情報が示す送信開始時刻になったら前記定周期信号の送信を開始する、
請求項１または２に記載の時刻同期システム。
【請求項４】
前記スレーブ装置は、
前記時刻補正部が補正しなかった場合の前記スレーブ計時部の時刻と同じ時刻を計時する補正なし計時部を更に備え、
前記時刻算出部は、前記開始時刻情報が示す送信開始時刻と、前記送信周期情報が示す送信周期と、前記定周期信号の受信回数とに基づいて、前記マスタ装置における前記定周期信号の送信時刻を算出し、前記送信周期の間の時刻補正タイミングで、前記マスタ装置における前記定周期信号の送信時刻と、前記定周期信号受信部が前記定周期信号を受信した時の前記補正なし計時部の時刻と、前記補正なし計時部の現在時刻とに基づいて、前記マスタ装置の現在時刻を算出する、
請求項１から３のいずれか１項に記載の時刻同期システム。
【請求項５】
前記マスタ装置における前記定周期信号の送信時刻と、前記定周期信号受信部が前記定周期信号を受信した時の前記スレーブ計時部の時刻とに基づいて、前記スレーブ計時部の時刻の進みおよび前記マスタ計時部の時刻の進みを算出し、前記スレーブ計時部の時刻の進みを前記マスタ計時部の時刻の進みと一致させる補正を行う時刻進み補正部をさらに備える、
請求項１から４のいずれか１項に記載の時刻同期システム。
【請求項６】
前記時刻算出部は、前記開始時刻情報が示す送信開始時刻に、前記送信周期情報が示す送信周期に前記定周期信号の受信回数から１を減算した値を乗算した時間を加えて、前記マスタ装置における前記定周期信号の送信時刻を算出する、
請求項１から５のいずれか１項に記載の時刻同期システム。
【請求項７】
データ用通信線、および、定周期信号を送信する専用の信号線でスレーブ装置と接続されるマスタ装置であって、
時刻を計時するマスタ計時部と、
一定の送信周期で前記定周期信号を生成し、前記スレーブ装置に前記信号線を介して前記定周期信号を送信する定周期信号送信部と、
前記定周期信号の送信開始時刻を示す開始時刻情報を前記スレーブ装置に前記データ用通信線を介して送信する開始時刻送信部と、
前記定周期信号の送信周期を示す送信周期情報を前記スレーブ装置に前記データ用通信線を介して送信する送信周期送信部と、
を備えるマスタ装置。
【請求項８】
データ用通信線、および、定周期信号を送信する専用の信号線でマスタ装置と接続されるスレーブ装置であって、
時刻を計時するスレーブ計時部と、
前記マスタ装置から一定の送信周期で送信される前記定周期信号を前記信号線を介して受信する定周期信号受信部と、
前記マスタ装置から前記定周期信号の送信開始時刻を示す開始時刻情報を前記データ用通信線を介して受信する開始時刻受信部と、
前記マスタ装置から前記定周期信号の送信周期を示す送信周期情報を前記データ用通信線を介して受信する送信周期受信部と、
前記定周期信号受信部が前記定周期信号を受信した回数をカウントするカウント部と、
前記開始時刻情報が示す送信開始時刻と、前記送信周期情報が示す送信周期と、前記定周期信号の受信回数とに基づいて、前記マスタ装置における前記定周期信号の送信時刻を前記マスタ装置の現在時刻として算出する時刻算出部と、
前記スレーブ計時部の時刻を前記時刻算出部が算出した前記マスタ装置の現在時刻に補正する時刻補正部と、
を備えるスレーブ装置。
【請求項９】
前記時刻算出部は、前記開始時刻情報が示す送信開始時刻に、前記送信周期情報が示す送信周期に前記定周期信号の受信回数から１を減算した値を乗算した時間を加えた前記マスタ装置における前記定周期信号の送信時刻を、前記マスタ装置の現在時刻として算出する、
請求項８に記載のスレーブ装置。
【請求項１０】
データ用通信線、および、定周期信号を送信する専用の信号線でスレーブ装置と接続されるコンピュータを、
時刻を計時するマスタ計時部、
一定の送信周期で前記定周期信号を生成し、前記スレーブ装置に前記信号線を介して前記定周期信号を送信する定周期信号送信部、
前記定周期信号の送信開始時刻を示す開始時刻情報を前記スレーブ装置に前記データ用通信線を介して送信する開始時刻送信部、および、
前記定周期信号の送信周期を示す送信周期情報を前記スレーブ装置に前記データ用通信線を介して送信する送信周期送信部、
として機能させるプログラム。
【請求項１１】
データ用通信線、および、定周期信号を送信する専用の信号線でマスタ装置と接続されるコンピュータを、
時刻を計時するスレーブ計時部、
前記マスタ装置から一定の送信周期で送信される前記定周期信号を前記信号線を介して受信する定周期信号受信部、
前記マスタ装置から前記定周期信号の送信開始時刻を示す開始時刻情報を前記データ用通信線を介して受信する開始時刻受信部、
前記マスタ装置から前記定周期信号の送信周期を示す送信周期情報を前記データ用通信線を介して受信する送信周期受信部、
前記定周期信号受信部が前記定周期信号を受信した回数をカウントするカウント部、
前記開始時刻情報が示す送信開始時刻と、前記送信周期情報が示す送信周期と、前記定周期信号の受信回数とに基づいて、前記マスタ装置における前記定周期信号の送信時刻を前記マスタ装置の現在時刻として算出する時刻算出部、および、
前記スレーブ計時部の時刻を前記時刻算出部が算出した前記マスタ装置の現在時刻に補正する時刻補正部、
として機能させるプログラム。
【請求項１２】
前記時刻算出部は、前記開始時刻情報が示す送信開始時刻に、前記送信周期情報が示す送信周期に前記定周期信号の受信回数から１を減算した値を乗算した時間を加えた前記マスタ装置における前記定周期信号の送信時刻を、前記マスタ装置の現在時刻として算出する、
請求項１１に記載のプログラム。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、時刻同期システム、マスタ装置、スレーブ装置およびプログラムに関する。
【背景技術】
【０００２】
例えば、ＰＬＣ（Programmable Logic Controller）のような時計が内蔵された複数の装置が連携している場合に各装置の時刻を同期させる技術がある。このような技術における時刻同期の方法は、複数の装置の中から基準時刻を管理するマスタ装置を決めて、マスタ装置がマスタ装置以外のスレーブ装置に送信した時刻情報に基づいて、スレーブ装置の時刻をマスタ装置の時刻に合わせる方法が一般的である。【０００３】
特許文献１には、親時計付局と子時計付局との間に専用の信号線を新設し、親時計付局が決められた周期で専用信号線上に時刻周期パルス信号を送信し、ネットワーク上に時刻周期パルス信号の送出時点の時刻情報を送信し、子時計付局は時刻周期パルス信号および時刻情報を用いて時刻合わせを行う技術が開示されている。
【先行技術文献】
【特許文献】
【０００４】
【特許文献１】特開平４−２９４４１３号公報
【発明の概要】
【発明が解決しようとする課題】
【０００５】
特許文献１に記載の技術では、親時計付局が、専用の信号線を介して時刻周期パルス信号を送信する度に、ネットワークのデータ用通信線を介して時刻周期パルス信号の送出時点の時刻情報を送信するので、子時計付局への時刻情報の到着は、データ用通信線の伝搬遅延時間及びジッタの影響を受けて、時刻周期パルス信号の到着よりも遅れる。データ用通信線に送信される時刻情報に対する伝搬遅延時間及びジッタの影響による最大遅延時間が、時刻周期パルス信号を送信する周期よりも長くなってしまうと、前の時刻周期パルス信号に対応した時刻情報が到着する前に次の時刻周期パルス信号が到着してしまう可能性があるので、時刻周期パルス信号を送信する周期をデータ用通信線の最大遅延時間よりも短くすることができない。つまり、時刻同期の精度がデータ用通信線の伝搬遅延時間及びジッタによって制限されてしまうという問題がある。【０００６】
本発明は、上記の事情に鑑みてなされたものであり、スレーブ装置の時刻をマスタ装置の時刻に合わせる時刻同期において、より高精度の時刻同期を実現することを目的とする。
【課題を解決するための手段】
【０００７】
上記目的を達成するため、本発明の時刻同期システムは、マスタ装置とスレーブ装置とを備える。マスタ装置とスレーブ装置とは、データ用通信線、および、定周期信号を送信する専用の信号線で接続される。マスタ装置は、マスタ計時部と、定周期信号送信部と、開始時刻送信部と、送信周期送信部とを備える。マスタ計時部は、時刻を計時する。定周期信号送信部は、一定の送信周期で定周期信号を生成し、スレーブ装置に信号線を介して定周期信号を送信する。開始時刻送信部は、定周期信号の送信開始時刻を示す開始時刻情報をスレーブ装置にデータ用通信線を介して送信する。送信周期送信部は、定周期信号の送信周期を示す送信周期情報をスレーブ装置にデータ用通信線を介して送信する。スレーブ装置は、スレーブ計時部と、定周期信号受信部と、開始時刻受信部と、送信周期受信部と、カウント部と、時刻算出部と、時刻補正部とを備える。スレーブ計時部は、時刻を計時する。定周期信号受信部は、マスタ装置から定周期信号を信号線を介して受信する。開始時刻受信部は、マスタ装置から開始時刻情報をデータ用通信線を介して受信する。送信周期受信部は、マスタ装置から送信周期情報をデータ用通信線を介して受信する。カウント部は、定周期信号受信部が定周期信号を受信した回数をカウントする。時刻算出部は、開始時刻情報が示す送信開始時刻と、送信周期情報が示す送信周期と、定周期信号の受信回数とに基づいて、マスタ装置における定周期信号の送信時刻を、マスタ装置の現在時刻として算出する。時刻補正部は、スレーブ計時部の時刻を時刻算出部が算出したマスタ装置の現在時刻に補正する。
【発明の効果】
【０００８】
本発明によれば、スレーブ装置の時刻をマスタ装置の時刻に合わせる時刻同期において、マスタ装置からスレーブ装置に、専用の信号線を介して定周期信号を送信し、定周期信号の受信回数と送信周期と送信開始時刻とに基づいて、スレーブ装置の時刻をマスタ装置の時刻に補正することで、定周期信号を送信する度にデータ用通信線を介して送出時点の時刻情報を送信する必要がないので、データ用通信線の伝搬遅延時間及びジッタに関係なく定周期信号を送信する周期を短くすることができ、より高精度の時刻同期を実現することが可能になる。
【図面の簡単な説明】
【０００９】
【図１】本発明の実施の形態１に係る時刻同期システムの構成を示すブロック図
【図２】実施の形態１に係るマスタ装置の機能構成を示すブロック図
【図３】実施の形態１に係るスレーブ装置の機能構成を示すブロック図
【図４】実施の形態１に係る時刻補正を説明する図
【図５】実施の形態１に係る時刻送信処理を示すフローチャート
【図６】実施の形態１に係る時刻受信処理を示すフローチャート
【図７】本発明の実施の形態２に係るマスタ装置の機能構成を示すブロック図
【図８】実施の形態２に係る時刻送信処理を示すフローチャート
【図９】実施の形態２に係る時刻受信処理を示すフローチャート
【図１０】本発明の実施の形態３に係るスレーブ装置の機能構成を示すブロック図
【図１１】実施の形態３に係る時刻補正を説明する図
【図１２】実施の形態３に係る時刻受信処理を示すフローチャート
【図１３】本発明の実施の形態４に係るスレーブ装置の機能構成を示すブロック図
【図１４】実施の形態４に係る時刻補正を説明する図
【図１５】実施の形態４に係る時刻受信処理を示すフローチャート
【図１６】実施の形態１から４に係るマスタ装置およびスレーブ装置のハードウェア構成の一例を示す図
【発明を実施するための形態】
【００１０】
以下、図面を参照して、本発明の実施の形態に係る時刻同期システム、マスタ装置、スレーブ装置およびプログラムについて詳細に説明する。なお、図中、同一または相当する部分には、同じ符号を付す。
【００１１】
（実施の形態１）
図１に示すように、本実施の形態１に係る時刻同期システム１００は、信号線３およびデータバス４で接続されたマスタ装置１とスレーブ装置２Ａ〜２Ｃとを備える。時刻同期システム１００は、スレーブ装置２Ａ〜２Ｃの時刻をマスタ装置１の時刻と同期させる。スレーブ装置２Ａ〜２Ｃを総称する場合は、スレーブ装置２と呼ぶ。
【００１２】
マスタ装置１は、信号線３を介して、定周期信号を一定の送信周期で送信する。信号線３は定周期信号を送信するための専用の通信線である。マスタ装置１は、データバス４を介して、定周期信号の送信開始時刻を示す開始時刻情報と、定周期信号の送信周期を示す送信周期情報とを送信する。データバス４は、マスタ装置１およびスレーブ装置２がデータを送受信するデータ用通信線であって、開始時刻情報および送信周期情報以外の情報の送受信に用いられてもよい。データバス４は、データ用通信線の例である。スレーブ装置２は、定周期信号の受信回数をカウントし、定周期信号の受信回数と、開始時刻情報が示す送信開始時刻と、送信周期情報が示す送信周期とに基づいて、マスタ装置１の現在時刻を算出する。スレーブ装置２は、算出したマスタ装置１の現在時刻に自身の時刻を補正する。
【００１３】
図１の例では、スレーブ装置２を３台記載したが、スレーブ装置２は何台でもよい。また、マスタ装置１およびスレーブ装置２Ａ〜２Ｃを接続するネットワークはバス型に限らず、例えばスター型でもよい。
【００１４】
続いて、マスタ装置１の機能について図２を用いて説明する。図２に示すように、マスタ装置１は、機能構成として、時刻を計時するマスタ計時部１１と、定周期信号を送信する定周期信号送信部１２と、定周期信号の送信開始時刻を示す開始時刻情報を送信する開始時刻送信部１３と、定周期信号の送信周期を示す送信周期情報を記憶する送信周期記憶部１４と、送信周期情報を送信する送信周期送信部１５とを備える。以下、マスタ装置１の時刻、つまりマスタ計時部１１の時刻をマスタ時刻と呼ぶ。
【００１５】
定周期信号送信部１２は、マスタ時刻に基づいて、送信周期記憶部１４が記憶する送信周期情報が示す送信周期で定周期信号を生成し、信号線３を介してスレーブ装置２Ａ〜２Ｃに定周期信号を送信する。定周期信号は、例えば１ビットのパルス信号である。専用の信号線３を介して定周期信号を送信する伝搬遅延時間及びジッタは、データバス４を介して送信する場合に比べて十分小さいので、マスタ装置１における定周期信号の送信時刻とスレーブ装置２における定周期信号の受信時刻は同時刻とみなすことができる。
【００１６】
開始時刻送信部１３は、定周期信号送信部１２が定周期信号の送信を開始したマスタ時刻を取得するタイムスタンプ処理を行う。開始時刻送信部１３は、定周期信号の送信を開始したマスタ時刻、つまり送信開始時刻を示す開始時刻情報を生成する。開始時刻送信部１３は、データバス４を介してスレーブ装置２Ａ〜２Ｃに開始時刻情報を送信する。
【００１７】
送信周期送信部１５は、送信周期記憶部１４が記憶する送信周期情報を、データバス４を介してスレーブ装置２Ａ〜２Ｃに送信する。送信周期送信部１５が送信周期情報を送信するタイミングは、開始時刻送信部１３が開始時刻情報を送信する前であればよい。
【００１８】
続いて、スレーブ装置２の機能について図３を用いて説明する。図３には代表してスレーブ装置２Ａの機能構成を示しているが、スレーブ装置２Ｂおよび２Ｃも同様の機能構成である。図３に示すように、スレーブ装置２Ａは、機能構成として、時刻を計時するスレーブ計時部２１と、定周期信号を受信する定周期信号受信部２２と、定周期信号の受信回数をカウントするカウント部２３と、開始時刻情報を受信する開始時刻受信部２４と、開始時刻情報を記憶する開始時刻記憶部２５と、送信周期情報を受信する送信周期受信部２６と、送信周期情報を記憶する送信周期記憶部２７と、現在のマスタ時刻を算出する時刻算出部２８と、スレーブ計時部２１の時刻を補正する時刻補正部２９とを備える。
【００１９】
定周期信号受信部２２は、信号線３を介してマスタ装置１から定周期信号を受信する。カウント部２３は、定周期信号受信部２２が定周期信号を受信した回数をカウントし、時刻算出部２８に受信回数を通知する。開始時刻受信部２４は、データバス４を介してマスタ装置１から開始時刻情報を受信する。開始時刻記憶部２５は、開始時刻受信部２４が受信した開始時刻情報を記憶する。送信周期受信部２６は、データバス４を介してマスタ装置１から送信周期情報を受信する。送信周期記憶部２７は、送信周期受信部２６が受信した送信周期情報を記憶する。
【００２０】
時刻算出部２８は、カウント部２３から定周期信号の受信回数を通知されるたびに、カウント部２３に通知された定周期信号の受信回数と、開始時刻記憶部２５が記憶する開始時刻情報と、送信周期記憶部２７が記憶する送信周期情報とに基づいて、マスタ装置１における定周期信号の送信時刻を現在のマスタ時刻として算出する。具体的には、時刻算出部２８は、開始時刻情報が示す送信開始時刻に、送信周期情報が示す送信周期に定周期信号の受信回数から１を減算した値を乗算した時間を加えた時刻、つまりマスタ装置１における定周期信号の送信時刻を算出する。前述のように、マスタ装置１における定周期信号の送信時刻とスレーブ装置２における定周期信号の受信時刻は同時刻とみなすことができるので、時刻算出部２８は、マスタ装置１における定周期信号の送信時刻を現在のマスタ時刻として算出する。時刻補正部２９は、スレーブ計時部２１の時刻を、時刻算出部２８が算出した現在のマスタ時刻に補正する。以下、スレーブ装置２の時刻、つまりスレーブ計時部２１の時刻をスレーブ時刻という。
【００２１】
ここで、スレーブ装置２で行われる時刻補正について図４を用いて説明する。図４に示すように、スレーブ装置２の定周期信号受信部２２は、定周期信号を一定の時間間隔で受信する。定周期信号を受信する時間間隔は、マスタ時刻では送信周期Ｐである。カウント部２３は、定周期信号の受信回数をカウントして、時刻算出部２８に通知する。開始時刻受信部２４は、送信開始時刻、つまりマスタ時刻Ｍ１を示す開始時刻情報を受信し、開始時刻記憶部２５に記憶する。図４の例では、開始時刻受信部２４は、１回目の定周期信号の受信タイミングと２回目の定周期信号の受信タイミングとの間に開始時刻情報を受信しているものとする。送信周期受信部２６は、開始時刻受信部２４が開始時刻情報を受信するよりも前に送信周期Ｐを示す送信周期情報を受信しており、送信周期記憶部２７に記憶している。
【００２２】
時刻算出部２８は、２回目の定周期信号の受信時にカウント部２３から定周期信号の受信回数２を通知されると、開始時刻情報が示すマスタ時刻Ｍ１に、送信周期情報が示す送信周期Ｐに定周期信号の受信回数２から１を減算した１を乗算した時間を加えた時刻をマスタ時刻Ｍ２として算出する。時刻算出部２８は、３回目の定周期信号の受信時にカウント部２３から定周期信号の受信回数３を通知されると、開始時刻情報が示すマスタ時刻Ｍ１に、送信周期情報が示す送信周期Ｐに定周期信号の受信回数３から１を減算した２を乗算した時間を加えた時刻をマスタ時刻Ｍ３として算出する。このように、時刻算出部２８は、カウント部２３から定周期信号の受信回数を通知されるたびに、マスタ時刻Ｍ１と送信周期Ｐとを用いて、下記の（１）式で現在のマスタ時刻Ｍｎを算出する。ｎ≧２である。
Ｍｎ＝Ｍ１＋Ｐ×（ｎ−１）                    （１）
【００２３】
時刻補正部２９は、時刻算出部２８が現在のマスタ時刻Ｍｎを算出するごとに、スレーブ時刻を現在のマスタ時刻Ｍｎに補正する。このように、スレーブ時刻は、スレーブ装置２が定周期信号を受信するごとに現在のマスタ時刻に補正される。なお、図４の例では、１回目の定周期信号の受信タイミングと２回目の定周期信号の受信タイミングとの間に開始時刻情報を受信するものとし、時刻算出部２８はマスタ時刻Ｍ２以降のマスタ時刻Ｍｎを算出しているが、これに限らない。時刻算出部２８は、開始時刻受信部２４が開始時刻情報を受信して開始時刻記憶部２５に記憶した後に、定周期信号受信部２２が定周期信号を受信した時からマスタ時刻Ｍｎを算出すればよい。
【００２４】
ここで、マスタ装置１が実行する時刻送信処理のフローについて、図５を用いて説明する。図５に示す時刻送信処理は、マスタ装置１の電源が投入されたことで開始する。マスタ装置１の送信周期送信部１５は、送信周期記憶部１４が記憶する送信周期情報を、データバス４を介してスレーブ装置２に送信する（ステップＳ１１）。図４の例では、送信周期送信部１５は、送信周期Ｐを示す送信周期情報を、スレーブ装置２に送信する。
【００２５】
図５に戻り、定周期信号送信部１２は、定周期信号を生成し、信号線３を介してスレーブ装置２に定周期信号を送信する（ステップＳ１２）。送信した定周期信号が最初の定周期信号である場合（ステップＳ１３；ＹＥＳ）、開始時刻送信部１３は、マスタ時刻に基づいて、定周期信号送信部１２が定周期信号の送信を開始した送信開始時刻を示す開始時刻情報を生成し、データバス４を介してスレーブ装置２に開始時刻情報を送信する（ステップＳ１４）。図４の例では、開始時刻送信部１３は、マスタ時刻Ｍ１を示す開始時刻情報をスレーブ装置２に送信する。
【００２６】
図５に戻り、送信した定周期信号が最初の定周期信号でない場合（ステップＳ１３；ＮＯ）、処理はステップＳ１５に移行する。定周期信号送信部１２は、マスタ時刻に基づいて、ステップＳ１２で定周期信号を送信してから、送信周期記憶部１４が記憶する送信周期情報が示す送信周期が経過したか否かを判定する（ステップＳ１５）。送信周期が経過していなければ（ステップＳ１５；ＮＯ）、定周期信号送信部１２は、ステップＳ１５を繰り返し、送信周期の経過を待機する。送信周期が経過した場合（ステップＳ１５；ＹＥＳ）、マスタ装置１の電源がＯＦＦになっていなければ（ステップＳ１６；ＮＯ）、処理はステップＳ１２に戻り、ステップＳ１２〜ステップＳ１６を繰り返す。これにより、送信周期記憶部１４が記憶する送信周期情報が示す送信周期でマスタ装置１からスレーブ装置２に定周期信号が送信される。図４の例では、送信周期Ｐでマスタ装置１からスレーブ装置２に定周期信号が送信されている。
【００２７】
図５に戻り、マスタ装置１の電源がＯＦＦになると（ステップＳ１６；ＹＥＳ）、処理は終了する。
【００２８】
続いて、スレーブ装置２が実行する時刻受信処理のフローについて、図６を用いて説明する。図６に示す時刻受信処理は、スレーブ装置２の電源が投入されたことで開始する。スレーブ装置２の送信周期受信部２６は、データバス４を介してマスタ装置１から送信周期情報を受信する（ステップＳ２１）。送信周期記憶部２７は、送信周期受信部２６が受信した送信周期情報を記憶する。図４の例では、送信周期受信部２６は、マスタ装置１から送信周期Ｐを示す送信周期情報を受信する。送信周期記憶部２７は、送信周期Ｐを示す送信周期情報を記憶する。
【００２９】
図６に戻り、定周期信号受信部２２は、信号線３を介してマスタ装置１から定周期信号を受信する（ステップＳ２２）。カウント部２３は、定周期信号受信部２２が定周期信号を受信した回数をカウントし（ステップＳ２３）、時刻算出部２８に受信回数を通知する。開始時刻受信部２４は、データバス４を介してマスタ装置１から開始時刻情報を受信済みであるか否かを判定する（ステップＳ２４）。開始時刻情報を受信済みでない場合（ステップＳ２４；ＮＯ）、処理はステップＳ２２に戻り、ステップＳ２２〜ステップＳ２４を繰り返し、開始時刻情報の受信を待機する。開始時刻情報を受信済みである場合（ステップＳ２４；ＹＥＳ）、開始時刻記憶部２５には、開始時刻受信部２４が受信した開始時刻情報が記憶されている。図４の例では、開始時刻記憶部２５には、開始時刻受信部２４が受信したマスタ時刻Ｍ１を示す開始時刻情報が記憶されている。
【００３０】
図６に戻り、時刻算出部２８は、カウント部２３に通知された定周期信号の受信回数と、開始時刻記憶部２５が記憶する開始時刻情報と、送信周期記憶部２７が記憶する送信周期情報とに基づいて、現在のマスタ時刻を算出する（ステップＳ２５）。図４の例では、時刻算出部２８は、上記の（１）式で現在のマスタ時刻Ｍｎを算出する。
【００３１】
図６に戻り、時刻補正部２９は、スレーブ時刻を、ステップＳ２５で算出した現在のマスタ時刻に補正する（ステップＳ２６）。スレーブ装置２の電源がＯＦＦになっていなければ（ステップＳ２７；ＮＯ）、処理はステップＳ２２に戻り、ステップＳ２２〜ステップＳ２７を繰り返す。これにより、スレーブ装置２が定周期信号を受信するごとに、スレーブ時刻が現在のマスタ時刻に補正される。スレーブ装置２の電源がＯＦＦになると（ステップＳ２７；ＹＥＳ）、処理は終了する。
【００３２】
以上説明したとおり、実施の形態１に係る、スレーブ装置２の時刻をマスタ装置１の時刻に合わせる時刻同期を行う時刻同期システム１００では、マスタ装置１からスレーブ装置２に、専用の信号線３を介して定周期信号を送信し、定周期信号の受信回数と送信周期と送信開始時刻とに基づいて、スレーブ装置２の時刻をマスタ装置１の時刻に補正する。これにより、定周期信号を送信する度にデータバス４を介して送出時点の時刻情報を送信する必要がないので、データバス４の伝搬遅延時間及びジッタに関係なく定周期信号を送信する周期を短くすることができ、より高精度の時刻同期を実現することが可能になる。また、データバス４を介して開始時刻情報および送信周期情報を送信するのは１回だけであるので、定周期信号を送信する度にデータバス４を介して送出時点の時刻情報を送信する場合に比べて、時刻同期によるデータバス４の帯域消費量を小さくすることができる。
【００３３】
（実施の形態２）
実施の形態２では、定周期信号の送信開始時刻があらかじめ決まっている。実施の形態２の時刻同期システム１００の構成、スレーブ装置２の機能構成は、実施の形態１と同様である。
【００３４】
実施の形態２のマスタ装置１の機能について図７を用いて説明する。図７に示すように、マスタ装置１は、機能構成として、マスタ計時部１１、定周期信号送信部１２と、開始時刻送信部１３、送信周期記憶部１４および送信周期送信部１５に加えて、開始時刻記憶部１６を備える。
【００３５】
開始時刻記憶部１６は、あらかじめ決められた送信開始時刻を示す開始時刻情報を記憶している。定周期信号送信部１２は、マスタ時刻が、開始時刻記憶部１６に記憶された開始時刻情報が示す送信開始時刻になったら定周期信号の送信を開始する。開始時刻送信部１３は、開始時刻記憶部１６が記憶する開始時刻情報を、データバス４を介してスレーブ装置２Ａ〜２Ｃに送信する。開始時刻送信部１３が開始時刻情報を送信するタイミングは、定周期信号送信部１２が定周期信号の送信を開始する前であればよい。マスタ装置１のその他の機能は、実施の形態１と同様である。
【００３６】
ここで、マスタ装置１が実行する時刻送信処理のフローについて、図８を用いて説明する。図８に示す時刻送信処理は、マスタ装置１の電源が投入されたことで開始する。マスタ装置１の送信周期送信部１５は、送信周期記憶部１４が記憶する送信周期情報を、データバス４を介してスレーブ装置２に送信する（ステップＳ３１）。開始時刻送信部１３は、開始時刻記憶部１６が記憶する開始時刻情報を、データバス４を介してスレーブ装置２に送信する（ステップＳ３２）。
【００３７】
定周期信号送信部１２は、マスタ時刻が、開始時刻記憶部１６に記憶された開始時刻情報が示す送信開始時刻になったか否かを判定する（ステップＳ３３）。マスタ時刻が送信開始時刻になっていなければ（ステップＳ３３；ＮＯ）、定周期信号送信部１２は、ステップＳ３３を繰り返し、送信開始時刻になるまで待機する。マスタ時刻が送信開始時刻になると（ステップＳ３３；ＹＥＳ）、定周期信号送信部１２は、定周期信号を生成し、信号線３を介してスレーブ装置２に定周期信号を送信する（ステップＳ３４）。
【００３８】
定周期信号送信部１２は、マスタ時刻に基づいて、定周期信号を送信してから、送信周期記憶部１４が記憶する送信周期情報が示す送信周期が経過したか否かを判定する（ステップＳ３５）。送信周期が経過していなければ（ステップＳ３５；ＮＯ）、定周期信号送信部１２は、ステップＳ３５を繰り返し、送信周期の経過を待機する。送信周期が経過した場合（ステップＳ３５；ＹＥＳ）、マスタ装置１の電源がＯＦＦになっていなければ（ステップＳ３６；ＮＯ）、処理はステップＳ３４に戻り、ステップＳ３４〜ステップＳ３６を繰り返す。マスタ装置１の電源がＯＦＦになると（ステップＳ３６；ＹＥＳ）、処理は終了する。
【００３９】
続いて、スレーブ装置２が実行する時刻受信処理のフローについて、図９を用いて説明する。図９に示す時刻受信処理は、スレーブ装置２の電源が投入されたことで開始する。スレーブ装置２の送信周期受信部２６は、データバス４を介して、マスタ装置１から送信周期情報を受信する（ステップＳ４１）。送信周期記憶部２７は、送信周期受信部２６が受信した送信周期情報を記憶する。開始時刻受信部２４は、データバス４を介して、マスタ装置１から開始時刻情報を受信する（ステップＳ４２）。開始時刻記憶部２５は、開始時刻受信部２４が受信した開始時刻情報を記憶する。
【００４０】
定周期信号受信部２２は、信号線３を介して、マスタ装置１から定周期信号を受信する（ステップＳ４３）。カウント部２３は、定周期信号受信部２２が定周期信号を受信した回数をカウントし（ステップＳ４４）、時刻算出部２８に受信回数を通知する。時刻算出部２８は、カウント部２３に通知された定周期信号の受信回数と、開始時刻記憶部２５が記憶する開始時刻情報と、送信周期記憶部２７が記憶する送信周期情報とに基づいて、現在のマスタ時刻を算出する（ステップＳ４５）。
【００４１】
時刻補正部２９は、スレーブ時刻を、ステップＳ４５で算出した現在のマスタ時刻に補正する（ステップＳ４６）。スレーブ装置２の電源がＯＦＦになっていなければ（ステップＳ４７；ＮＯ）、処理はステップＳ４３に戻り、ステップＳ４３〜ステップＳ４７を繰り返す。これにより、スレーブ時刻は、スレーブ装置２が定周期信号を受信するごとにマスタ時刻に補正される。実施の形態２では、スレーブ装置２が定周期信号を受信する前に開始時刻情報を受信しているので、１回目の定周期信号の受信時から、スレーブ時刻を現在のマスタ時刻に補正することができる。スレーブ装置２の電源がＯＦＦになると（ステップＳ４７；ＹＥＳ）、処理は終了する。
【００４２】
以上説明したとおり、実施の形態２に係る、スレーブ装置２の時刻をマスタ装置１の時刻に合わせる時刻同期を行う時刻同期システム１００では、マスタ装置１からスレーブ装置２に、専用の信号線３を介して定周期信号を送信し、定周期信号の受信回数と送信周期と送信開始時刻とに基づいて、スレーブ装置２の時刻をマスタ装置１の時刻に補正する。これにより、定周期信号を送信する度にデータバス４を介して送出時点の時刻情報を送信する必要がないので、データバス４の伝搬遅延時間及びジッタに関係なく定周期信号を送信する周期を短くすることができ、より高精度の時刻同期を実現することが可能になる。また、開始時刻記憶部１６が開始時刻情報をあらかじめ記憶しており、実施の形態１のように開始時刻送信部１３がタイムスタンプ処理を行う必要がないので、時刻同期の精度がタイムスタンプ処理の精度の影響を受けない。
【００４３】
（実施の形態３）
実施の形態３では、スレーブ装置２が、送信周期の間の時刻補正タイミングで時刻補正を行う。実施の形態３の時刻同期システム１００の構成、マスタ装置１の機能構成は、実施の形態２と同様である。
【００４４】
実施の形態３のスレーブ装置２の機能について図１０を用いて説明する。図１０には代表してスレーブ装置２Ａの機能構成を示しているが、スレーブ装置２Ｂおよび２Ｃも同様の機能構成である。図１０に示すように、スレーブ装置２Ａは、機能構成として、スレーブ計時部２１、定周期信号受信部２２、カウント部２３、開始時刻受信部２４、開始時刻記憶部２５、送信周期受信部２６、送信周期記憶部２７、時刻算出部２８とおよび時刻補正部２９に加えて、補正なし計時部３０を備える。
【００４５】
補正なし計時部３０は、時刻補正部２９が補正しなかった場合のスレーブ計時部２１の時刻と同じ時刻を計時する。以下、補正しなかった場合のスレーブ装置２の時刻、つまり補正なし計時部３０の時刻を補正なしスレーブ時刻という。
【００４６】
時刻算出部２８は、カウント部２３から定周期信号の受信回数を通知されるたびに、カウント部２３に通知された定周期信号の受信回数と、開始時刻記憶部２５が記憶する開始時刻情報と、送信周期記憶部２７が記憶する送信周期情報とに基づいて、マスタ装置１における定周期信号の送信時刻を算出する。具体的には、時刻算出部２８は、開始時刻情報が示す送信開始時刻に、送信周期情報が示す送信周期に定周期信号の受信回数から１を減算した値を乗算した時間を加えた時刻を、マスタ装置１における定周期信号の送信時刻として算出する。
【００４７】
時刻算出部２８は、送信周期の間の時刻補正タイミングで、マスタ装置１における定周期信号の送信時刻と、定周期信号受信部２２が定周期信号を受信した時の補正なし計時部３０の時刻と、補正なし計時部３０の現在時刻とに基づいて、現在のマスタ時刻を算出する。具体的には、時刻算出部２８は、直前の定周期信号を受信したタイミングで算出したマスタ装置１における定周期信号の送信時刻に、直前の定周期信号を受信したタイミングから現在までのマスタ時刻の経過時間を加えた時刻を現在のマスタ時刻として算出する。時刻算出部２８は、直前の定周期信号を受信したタイミングから現在までのマスタ時刻の経過時間を、直前の定周期信号を受信したタイミングから現在までの補正なしスレーブ時刻の経過時間に、補正なしスレーブ時刻の進みに対するマスタ時刻の進みの比を乗算して算出する。時刻補正部２９は、スレーブ計時部２１の時刻を、時刻算出部２８が算出した現在のマスタ時刻に補正する。
【００４８】
ここで、スレーブ装置２で行われる時刻補正について図１１を用いて説明する。図１１に示すように、スレーブ装置２の定周期信号受信部２２は、定周期信号を一定の時間間隔で受信する。定周期信号を受信する時間間隔は、マスタ時刻では送信周期Ｐである。カウント部２３は、定周期信号の受信回数をカウントして、時刻算出部２８に通知する。開始時刻受信部２４は、マスタ時刻Ｍ１よりも前に、送信開始時刻、つまりマスタ時刻Ｍ１を示す開始時刻情報を受信しており、開始時刻記憶部２５に記憶している。送信周期受信部２６は、マスタ時刻Ｍ１よりも前に送信周期Ｐを示す送信周期情報を受信しており、送信周期記憶部２７に記憶している。
【００４９】
時刻算出部２８は、カウント部２３から定周期信号の受信回数を通知されるたびに、上記の（１）式でマスタ時刻Ｍｎを算出する。時刻算出部２８は、送信周期の間の時刻補正タイミングが到来すると、マスタ時刻Ｍｎに、直前の定周期信号を受信したタイミングから現在までのマスタ時刻の経過時間ΔＭｎ’を加算して、現在のマスタ時刻Ｍｎ’を算出する。時刻算出部２８は、直前の定周期信号を受信したタイミングから現在までの補正なしスレーブ時刻の経過時間ΔＦｎ’と補正なしスレーブ時刻の進みに対するマスタ時刻の進みの比（Ｍｎ−Ｍ（ｎ−１）／（Ｆｎ−Ｆ（ｎ−１））とを用いて、下記の（２）式で直前の定周期信号を受信したタイミングから現在までのマスタ時刻の経過時間ΔＭｎ’を算出する。ｎ≧２である。
ΔＭｎ’＝ΔＦｎ’×（Ｍｎ−Ｍ（ｎ−１）／（Ｆｎ−Ｆ（ｎ−１））        （２）
【００５０】
Ｍｎ−Ｍ（ｎ−１）の代わりに送信周期情報が示す送信周期Ｐを用いてもよい。時刻補正部２９は、時刻算出部２８が現在のマスタ時刻Ｍｎ’を算出するごとに、スレーブ時刻を現在のマスタ時刻Ｍｎ’に補正する。このように、スレーブ時刻は、送信周期の間の時刻補正タイミングで現在のマスタ時刻に補正される。なお、送信周期の間の時刻補正タイミングは、ユーザが設定してもよいし、スレーブ装置２の処理能力によって決まってもよい。
【００５１】
ここで、スレーブ装置２が実行する時刻受信処理のフローについて、図１２を用いて説明する。図１２に示す時刻受信処理は、スレーブ装置２の電源が投入されたことで開始する。ステップＳ５１〜ステップＳ５４は、図９に示すフローチャートのステップＳ４１〜ステップＳ４４と同様であるので説明を省略する。スレーブ装置２の時刻算出部２８は、カウント部２３に通知された定周期信号の受信回数と、開始時刻記憶部２５が記憶する開始時刻情報と、送信周期記憶部２７が記憶する送信周期情報とに基づいて、マスタ装置１における定周期信号の送信時刻を算出する（ステップＳ５５）。図１１の例では、時刻算出部２８は、上記の（１）式でマスタ装置１における定周期信号の送信時刻Ｍｎを算出する。
【００５２】
図１２に戻り、時刻算出部２８は、時刻補正タイミングが到来したか否かを判定する（ステップＳ５６）。時刻補正タイミングが到来していない場合（ステップＳ５６；ＮＯ）、時刻算出部２８は、ステップＳ５６を繰り返し、時刻補正タイミングの到来を待機する。時刻補正タイミングが到来した場合（ステップＳ５６；ＹＥＳ）、時刻算出部２８は、マスタ装置１における定周期信号の送信時刻と、定周期信号受信部２２が定周期信号を受信した時の補正なし計時部３０の時刻と、補正なし計時部３０の現在時刻とに基づいて、現在のマスタ時刻を算出する（ステップＳ５７）。図１１の例では、時刻算出部２８は、マスタ時刻Ｍｎに、直前の定周期信号を受信したタイミングから現在までのマスタ時刻の経過時間ΔＭｎ’を加算して、現在のマスタ時刻Ｍｎ’を算出する。時刻算出部２８は、上記の（２）式で直前の定周期信号を受信したタイミングから現在までのマスタ時刻の経過時間ΔＭｎ’を算出する。
【００５３】
図１２に戻り、時刻補正部２９は、スレーブ時刻を、ステップＳ５７で算出したマスタ時刻に補正する（ステップＳ５８）。スレーブ装置２の電源がＯＦＦになっていなければ（ステップＳ５９；ＮＯ）、処理はステップＳ５３に戻り、ステップＳ５３〜ステップＳ５９を繰り返す。これにより、スレーブ時刻は、送信周期の間の時刻補正タイミングでマスタ時刻に補正される。スレーブ装置２の電源がＯＦＦになると（ステップＳ５９；ＹＥＳ）、処理は終了する。
【００５４】
以上説明したとおり、実施の形態３に係る、スレーブ装置２の時刻をマスタ装置１の時刻に合わせる時刻同期を行う時刻同期システム１００では、マスタ装置１からスレーブ装置２に、専用の信号線３を介して定周期信号を送信し、定周期信号の受信回数と送信周期と送信開始時刻とに基づいて、スレーブ装置２の時刻をマスタ装置１の時刻に補正する。これにより、定周期信号を送信する度にデータバス４を介して送出時点の時刻情報を送信する必要がないので、データバス４の伝搬遅延時間及びジッタに関係なく定周期信号を送信する周期を短くすることができ、より高精度の時刻同期を実現することが可能になる。また、送信周期の間の時刻補正タイミングでスレーブ時刻をマスタ時刻に補正することができるので、定周期信号の受信したタイミングで即時にスレーブ時刻をマスタ時刻に補正する必要がなくなる。これにより、スレーブ時刻をマスタ時刻に補正する処理をソフトウェアで実現する場合も精度の低下を防ぐことができる。
【００５５】
（実施の形態４）
実施の形態４では、スレーブ時刻の進みをマスタ時刻の進みと一致させる補正を行う。実施の形態４の時刻同期システム１００の構成、マスタ装置１の機能構成は、実施の形態２と同様である。
【００５６】
実施の形態４のスレーブ装置２の機能について図１３を用いて説明する。図１３には代表してスレーブ装置２Ａの機能構成を示しているが、スレーブ装置２Ｂおよび２Ｃも同様の機能構成である。図１３に示すように、スレーブ装置２Ａは、機能構成として、スレーブ計時部２１、定周期信号受信部２２、カウント部２３、開始時刻受信部２４、開始時刻記憶部２５、送信周期受信部２６、送信周期記憶部２７、時刻算出部２８とおよび時刻補正部２９に加えて、スレ−ブ時刻の進みをマスタ時刻の進みと一致させる補正を行う時刻進み補正部３１を備える。
【００５７】
時刻算出部２８は、カウント部２３から定周期信号の受信回数を通知されるたびに、カウント部２３に通知された定周期信号の受信回数と、開始時刻記憶部２５が記憶する開始時刻情報と、送信周期記憶部２７が記憶する送信周期情報とに基づいて、現在のマスタ時刻を算出する。具体的には、時刻算出部２８は、開始時刻情報が示す送信開始時刻に、送信周期情報が示す送信周期に定周期信号の受信回数から１を減算した値を乗算した時間を加えた時刻、つまりマスタ装置１における定周期信号の送信時刻を、現在のマスタ時刻として算出する。
【００５８】
時刻進み補正部３１は、定周期信号受信部２２が定周期信号を受信するたびに、マスタ装置１における定周期信号の送信時刻と、定周期信号受信部２２が定周期信号を受信した時のスレーブ計時部２１の時刻とに基づいて、マスタ時刻の進みおよびスレーブ時刻の進みを算出する。時刻進み補正部３１は、スレーブ計時部２１に対し、スレーブ時刻の進みをマスタ時刻の進みと一致させる補正を行う。
【００５９】
ここで、スレーブ装置２で行われる時刻の進みの補正について図１４を用いて説明する。図１４に示すように、スレーブ装置２の定周期信号受信部２２は、定周期信号を一定の時間間隔で受信する。定周期信号を受信する時間間隔は、マスタ時刻では送信周期Ｐである。カウント部２３は、定周期信号の受信回数をカウントして、時刻算出部２８に受信回数を通知する。開始時刻受信部２４は、マスタ時刻Ｍ１よりも前に、送信開始時刻、つまりマスタ時刻Ｍ１を示す開始時刻情報を受信しており、開始時刻記憶部２５に記憶している。送信周期受信部２６は、マスタ時刻Ｍ１よりも前に送信周期Ｐを示す送信周期情報を受信しており、送信周期記憶部２７に記憶している。
【００６０】
時刻算出部２８は、カウント部２３から定周期信号の受信回数を通知されるたびに、上記の（１）式でマスタ時刻Ｍｎを算出する。時刻補正部２９は、時刻算出部２８が現在のマスタ時刻Ｍｎを算出するごとに、スレーブ時刻を現在のマスタ時刻Ｍｎに補正する。時刻進み補正部３１は、時刻算出部２８がマスタ時刻Ｍｎを算出するたびに、マスタ時刻の進みΔＭｎとスレーブ時刻の進みΔＪｎとを算出する。マスタ時刻の進みΔＭｎには、前回の定周期信号の受信時のマスタ時刻から今回の定周期信号の受信時のマスタ時刻までのマスタ時刻の経過時間（Ｍｎ−Ｍ（ｎ−１））を用いてもよいし、送信周期情報が示す送信周期Ｐを用いてもよい。スレーブ時刻の進みΔＪｎには、前回の定周期信号の受信時の補正後のスレーブ時刻から今回の定周期信号の受信時の補正前のスレーブ時刻までのマスタ時刻の経過時間（Ｊｎ−Ｍ（ｎ−１））を用いる。ｎ≧２である。時刻進み補正部３１は、スレーブ計時部２１に対し、スレーブ時刻の進みΔＪｎをマスタ時刻の進みΔＭｎと一致させる補正を行う。このように、スレーブ装置２が定周期信号を受信するごとに、スレーブ時刻が現在のマスタ時刻に補正され、スレーブ時刻の進みがマスタ時刻の進みに合わせて補正される。
【００６１】
ここで、スレーブ装置２が実行する時刻受信処理のフローについて、図１５を用いて説明する。図１５に示す時刻受信処理は、スレーブ装置２の電源が投入されたことで開始する。ステップＳ６１〜ステップＳ６６は、図９に示すフローチャートのステップＳ４１〜ステップＳ４６と同様であるので説明を省略する。スレーブ装置２の時刻進み補正部３１は、マスタ装置１における定周期信号の送信時刻と、定周期信号受信部２２が定周期信号を受信した時のスレーブ計時部２１の時刻とに基づいて、マスタ時刻の進みおよびスレーブ時刻の進みを算出する（ステップＳ６７）。図１４の例では、時刻進み補正部３１は、マスタ時刻の進みΔＭｎとスレーブ時刻の進みΔＪｎとを算出する。マスタ時刻の進みΔＭｎには、前回の定周期信号の受信時のマスタ時刻から今回の定周期信号の受信時のマスタ時刻までのマスタ時刻の経過時間（Ｍｎ−Ｍ（ｎ−１））を用いてもよいし、送信周期情報が示す送信周期Ｐを用いてもよい。スレーブ時刻の進みΔＪｎには、前回の定周期信号の受信時の補正後のスレーブ時刻から今回の定周期信号の受信時の補正前のスレーブ時刻までのマスタ時刻の経過時間（Ｊｎ−Ｍ（ｎ−１））を用いる。
【００６２】
図１５に戻り、時刻進み補正部３１は、スレーブ計時部２１に対し、スレーブ時刻の進みをマスタ時刻の進みと一致させる補正を行う（ステップＳ６８）。スレーブ装置２の電源がＯＦＦになっていなければ（ステップＳ６９；ＮＯ）、処理はステップＳ６３に戻り、ステップＳ６３〜ステップＳ６９を繰り返す。これにより、スレーブ装置２が定周期信号を受信するごとに、スレーブ時刻が現在のマスタ時刻に補正され、スレーブ時刻の進みがマスタ時刻の進みに合わせて補正される。スレーブ装置２の電源がＯＦＦになると（ステップＳ６９；ＹＥＳ）、処理は終了する。
【００６３】
以上説明したとおり、実施の形態４に係る、スレーブ装置２の時刻をマスタ装置１の時刻に合わせる時刻同期を行う時刻同期システム１００では、マスタ装置１からスレーブ装置２に、専用の信号線３を介して定周期信号を送信し、定周期信号の受信回数と送信周期と送信開始時刻とに基づいて、スレーブ装置２の時刻をマスタ装置１の時刻に補正する。これにより、定周期信号を送信する度にデータバス４を介して送出時点の時刻情報を送信する必要がないので、データバス４の伝搬遅延時間及びジッタに関係なく定周期信号を送信する周期を短くすることができ、より高精度の時刻同期を実現することが可能になる。また、スレーブ時刻の進みをマスタ時刻の進みに一致させる補正を行うので、スレーブ時刻とマスタ時刻との差が小さくなる。
【００６４】
上述した実施の形態では、実施の形態３および４のスレーブ装置２を実施の形態２のマスタ装置１と組みあわせたが、これに限らない。実施の形態３および４のスレーブ装置２を実施の形態１のマスタ装置１と組みあわせてもよい。
【００６５】
上述した実施の形態では、実施の形態３および４を別々に記載したが、実施の形態３および４を組みあわせてもよい。この場合、スレーブ装置２は、機能構成として、スレーブ計時部２１、定周期信号受信部２２、カウント部２３、開始時刻受信部２４、開始時刻記憶部２５、送信周期受信部２６、送信周期記憶部２７、時刻算出部２８、時刻補正部２９、補正なし計時部３０および時刻進み補正部３１を備える。時刻進み補正部３１は、送信周期の間の時刻補正タイミングが到来するたびに、スレーブ計時部２１に対し、スレーブ時刻の進みをマスタ時刻の進みと一致させる補正を行う。
【００６６】
上述した実施の形態では、スレーブ装置２の時刻算出部２８は、カウント部２３から定周期信号の受信回数を通知されるたびに、カウント部２３に通知された定周期信号の受信回数と、開始時刻記憶部２５が記憶する開始時刻情報と、送信周期記憶部２７が記憶する送信周期情報とに基づいて、マスタ装置１における定周期信号の送信時刻を現在のマスタ時刻として算出するが、時刻算出部２８がマスタ装置１における定周期信号の送信時刻を現在のマスタ時刻として算出するタイミングは、これに限らない。時刻算出部２８は、カウント部２３から定周期信号の受信回数を複数回（例えば２回）通知されるごとに、マスタ装置１における定周期信号の送信時刻を現在のマスタ時刻として算出してもよい。つまり、単位時間あたりの定周期信号の受信回数は、時刻同期の回数より多くてもよい。
【００６７】
続いて、実施の形態１〜４に係るマスタ装置１およびスレーブ装置２のハードウェア構成について説明する。図１６に示すように、マスタ装置１およびスレーブ装置２はそれぞれ、一時記憶部１０１、記憶部１０２、計算部１０３、タイマ１０４、操作部１０５、入出力部１０６および表示部１０７を備える。一時記憶部１０１、記憶部１０２、タイマ１０４、操作部１０５、入出力部１０６および表示部１０７はいずれもＢＵＳを介して計算部１０３に接続されている。
【００６８】
計算部１０３は、例えばＣＰＵ（Central Processing Unit）である。計算部１０３は、記憶部１０２に記憶されている制御プログラムに従って、マスタ装置１の定周期信号送信部１２および開始時刻送信部１３と、スレーブ装置２のカウント部２３、時刻算出部２８、時刻補正部２９および時刻進み補正部３１との各処理を実行する。
【００６９】
一時記憶部１０１は、例えばＲＡＭ（Random-Access Memory）である。一時記憶部１０１は、記憶部１０２に記憶されている制御プログラムをロードし、計算部１０３の作業領域として用いられる。
【００７０】
記憶部１０２は、フラッシュメモリ、ハードディスク、ＤＶＤ−ＲＡＭ（Digital Versatile Disc - Random Access Memory)、ＤＶＤ−ＲＷ（Digital Versatile Disc - ReWritable)などの不揮発性メモリである。記憶部１０２は、マスタ装置１およびスレーブ装置２の処理を計算部１０３に行わせるためのプログラムを予め記憶し、また、計算部１０３の指示に従って、このプログラムが記憶するデータを計算部１０３に供給し、計算部１０３から供給されたデータを記憶する。マスタ装置１の送信周期記憶部１４および開始時刻記憶部１６と、スレーブ装置２の開始時刻記憶部２５および送信周期記憶部２７とは、記憶部１０２に構成される。
【００７１】
タイマ１０４は、水晶振動子、発振回路、時計用ＩＣ（Integrated Circuit）などである。タイマ１０４は、マスタ装置１のマスタ計時部１１およびスレーブ装置２のスレーブ計時部２１として機能する。
【００７２】
操作部１０５は、キーボード、ポインティングデバイスなどの入力装置と、キーボード、ポインティングデバイスなどの入力装置をＢＵＳに接続するインターフェース装置である。例えば、マスタ装置１およびスレーブ装置２に直接情報を入力する構成の場合、操作部１０５を介して、入力された情報が計算部１０３に供給される。
【００７３】
入出力部１０６は、ネットワークに接続する網終端装置または無線通信装置、およびそれらと接続するシリアルインターフェースまたはＬＡＮ（Local Area Network）インターフェースである。入出力部１０６は、マスタ装置１の定周期信号送信部１２、開始時刻送信部１３および送信周期送信部１５と、スレーブ装置２の定周期信号受信部２２、開始時刻受信部２４および送信周期受信部２６として機能する。
【００７４】
表示部１０７は、ＣＲＴ（Cathode Ray Tube）、ＬＣＤ（Liquid Crystal Display）などの表示装置である。例えば、マスタ装置１およびスレーブ装置２に直接情報を入力する構成の場合、表示部１０７は、操作画面を表示する。
【００７５】
図２に示すマスタ装置１のマスタ計時部１１、定周期信号送信部１２、開始時刻送信部１３、送信周期記憶部１４、送信周期送信部１５および開始時刻記憶部１６と、図３に示すスレーブ装置２のスレーブ計時部２１、定周期信号受信部２２、カウント部２３、開始時刻受信部２４、開始時刻記憶部２５、送信周期受信部２６、送信周期記憶部２７、時刻算出部２８、時刻補正部２９および時刻進み補正部３１との処理は、制御プログラムが、一時記憶部１０１、計算部１０３、記憶部１０２、タイマ１０４、操作部１０５、入出力部１０６および表示部１０７などを資源として用いて処理することによって実行する。
【００７６】
その他、上述のハードウェア構成およびフローチャートは一例であり、任意に変更および修正が可能である。
【００７７】
一時記憶部１０１、記憶部１０２、計算部１０３、タイマ１０４、操作部１０５、入出力部１０６、表示部１０７などのマスタ装置１およびスレーブ装置２の処理を行う中心となる部分は、専用のシステムによらず、通常のコンピュータシステムを用いて実現可能である。例えば、上述の動作を実行するためのコンピュータプログラムを、フレキシブルディスク、ＣＤ−ＲＯＭ（Compact Disc - Read Only Memory)、ＤＶＤ−ＲＯＭ（Digital Versatile Disc - Read Only Memory)などのコンピュータが読み取り可能な記録媒体に格納して配布し、当該コンピュータプログラムをコンピュータにインストールすることにより、上述の処理を実行するマスタ装置１およびスレーブ装置２を構成してもよい。また、インターネットなどの通信ネットワーク上のサーバ装置が有する記憶装置に当該コンピュータプログラムを格納しておき、通常のコンピュータシステムがダウンロードなどすることでマスタ装置１およびスレーブ装置２を構成してもよい。
【００７８】
また、マスタ装置１およびスレーブ装置２の機能を、ＯＳ（Operating System）とアプリケーションプログラムの分担、またはＯＳとアプリケーションプログラムとの協働により実現する場合などには、アプリケーションプログラム部分のみを記録媒体、記憶装置などに格納してもよい。
【００７９】
また、搬送波にコンピュータプログラムを重畳し、通信ネットワークを介して提供することも可能である。例えば、通信ネットワーク上の掲示板（BBS, Bulletin Board System）に上述のコンピュータプログラムを掲示し、通信ネットワークを介して上述のコンピュータプログラムを提供してもよい。そして、このコンピュータプログラムを起動し、ＯＳの制御下で、他のアプリケーションプログラムと同様に実行することにより、上述の処理を実行できる構成としてもよい。
【００８０】
本発明は、本発明の広義の精神と範囲を逸脱することなく、様々な実施の形態および変形が可能とされるものである。また、上述した実施の形態は、本発明を説明するためのものであり、本発明の範囲を限定するものではない。本発明の範囲は、実施の形態ではなく、請求の範囲によって示される。そして、請求の範囲内およびそれと同等の発明の意義の範囲内で施される様々な変形が、本発明の範囲内とみなされる。
【符号の説明】
【００８１】
１  マスタ装置、２，２Ａ，２Ｂ，２Ｃ  スレーブ装置、３  信号線、４  データバス、１１  マスタ計時部、１２  定周期信号送信部、１３  開始時刻送信部、１４  送信周期記憶部、１５  送信周期送信部、１６  開始時刻記憶部、２１  スレーブ計時部、２２  定周期信号受信部、２３  カウント部、２４  開始時刻受信部、２５  開始時刻記憶部、２６  送信周期受信部、２７  送信周期記憶部、２８  時刻算出部、２９  時刻補正部、３０  補正なし計時部、３１  時刻進み補正部、１００  時刻同期システム、１０１  一時記憶部、１０２  記憶部、１０３  計算部、１０４  タイマ、１０５  操作部、１０６  入出力部、１０７  表示部。
【要約】
時刻同期システム（１００）は、データバス（４）、および、定周期信号を送信する専用の信号線（３）で接続されたマスタ装置（１）とスレーブ装置（２Ａ，２Ｂ，２Ｃ）とを備える。マスタ装置（１）は、信号線（３）を介して、定周期信号を一定の送信周期で送信する。マスタ装置（１）は、データバス（４）を介して、定周期信号の送信開始時刻を示す開始時刻情報と、定周期信号の送信周期を示す送信周期情報とを送信する。スレーブ装置（２Ａ，２Ｂ，２Ｃ）は、定周期信号の受信回数をカウントし、定周期信号の受信回数と、開始時刻情報が示す送信開始時刻と、送信周期情報が示す送信周期とに基づいて、マスタ装置（１）における定周期信号の送信時刻をマスタ装置（１）の現在時刻として算出する。スレーブ装置（２Ａ，２Ｂ，２Ｃ）は、算出したマスタ装置（１）の現在時刻に自身の時刻を補正する。【図１】
0006707209.tif 000002
【図２】
0006707209.tif 000003
【図３】
0006707209.tif 000004
【図４】
0006707209.tif 000005
【図５】
0006707209.tif 000006
【図６】
0006707209.tif 000007
【図７】
0006707209.tif 000008
【図８】
0006707209.tif 000009
【図９】
0006707209.tif 000010
【図１０】
0006707209.tif 000011
【図１１】
0006707209.tif 000012
【図１２】
0006707209.tif 000013
【図１３】
0006707209.tif 000014
【図１４】
0006707209.tif 000015
【図１５】
0006707209.tif 000016
【図１６】
0006707209.tif 000017