(57)【特許請求の範囲】
【請求項１】
外部装置から受信した第一の時刻情報を含み得る入力信号に含まれるデータが正常であるか否かを判定する処理を含む、前記入力信号に対する信号処理を行う信号処理手段と、
前記信号処理手段により信号処理中である前記入力信号が存在しない待機状態においてライトポインタとリードポインタとを同じ値に設定したのち、前記入力信号を受信したときに、時刻出力手段から出力された現在時刻情報を、第二の時刻情報として記憶可能なエントリを複数有し、前記第二の時刻情報を前記ライトポインタが示す書き込み先の前記エントリに記憶するとともに前記ライトポインタの値を１加算したのち、前記信号処理手段によって前記データが正常でないと判定された場合は前記ライトポインタの値を１減算する記憶手段と、
前記入力信号に前記第一の時刻情報が含まれるか否かを判定し、前記第一の時刻情報が含まれない場合、前記リードポインタが示す前記エントリから前記第二の時刻情報を読み出さないとともに、前記第一の時刻情報が含まれないことを示す判定結果を前記記憶手段に通知し、前記信号処理手段が前記入力信号に対する前記信号処理を終了したときに前記時刻出力手段から出力された現在時刻情報である第三の時刻情報と、前記第一の時刻情報と、前記記憶手段における前記リードポインタが示す読み出し先の前記エントリに記憶された前記第二の時刻情報と、に基づいて、前記時刻出力手段が出力する現在時刻情報を更新する更新手段と、
を備え、
前記記憶手段は、前記更新手段によって前記リードポインタが示す前記エントリに記憶された前記第二の時刻情報が読み出された場合、及び、前記更新手段から前記判定結果を通知された場合に前記リードポインタの値を１加算する
時刻同期制御装置。
【請求項２】
前記更新手段は、前記入力信号が前記外部装置から送信されてから、前記入力信号を受信するまでに要する伝搬遅延時間の値と、前記第三の時刻情報が示す値と前記第二の時刻情報が示す値との差分と、に基づいて、前記時刻出力手段が出力する現在時刻情報を更新する、
請求項１に記載の時刻同期制御装置。
【請求項３】
前記時刻出力手段
をさらに備える請求項１または２に記載の時刻同期制御装置。
【請求項４】
前記信号処理手段は、前記待機状態にある場合に、待機状態情報を前記記憶手段に入力し、
前記記憶手段は、前記信号処理手段から前記待機状態情報を入力されたときに、前記ライトポインタと、前記リードポインタとを、同じ値に設定する、
請求項１乃至３のいずれか一項に記載の時刻同期制御装置。
【請求項５】
前記信号処理手段は、ＯＳＩ参照モデルにおけるデータリンク層における処理を行う、
請求項４に記載の時刻同期制御装置。
【請求項６】
請求項１乃至５のいずれか一項に記載の時刻同期制御装置と、
前記外部装置と、
を備える時刻同期制御システム。
【請求項７】
情報処理装置によって、
外部装置から受信した第一の時刻情報を含み得る入力信号に含まれるデータが正常であるか否かを判定する処理を含む、前記入力信号に対する信号処理を行い、
信号処理中である前記入力信号が存在しない待機状態においてライトポインタとリードポインタとを同じ値に設定したのち、前記入力信号を受信したときに、時刻出力手段から出力された現在時刻情報を、第二の時刻情報として記憶可能なエントリを複数有し、前記第二の時刻情報を前記ライトポインタが示す書き込み先の前記エントリに記憶するとともに前記ライトポインタの値を１加算したのち、前記信号処理によって前記データが正常でないと判定された場合は前記ライトポインタの値を１減算する記憶手段に記憶し、
前記入力信号に前記第一の時刻情報が含まれるか否かを判定し、前記第一の時刻情報が含まれない場合、前記リードポインタが示す前記エントリから前記第二の時刻情報を読み出さず、前記入力信号に対する前記信号処理を終了したときに前記時刻出力手段から出力された現在時刻情報である第三の時刻情報と、前記第一の時刻情報と、前記記憶手段における前記リードポインタが示す読み出し先の前記エントリに記憶された前記第二の時刻情報と、に基づいて、前記時刻出力手段が出力する現在時刻情報を更新し、
前記リードポインタが示す前記エントリに記憶された前記第二の時刻情報が読み出された場合、及び、前記入力信号に前記第一の時刻情報が含まれない場合に前記リードポインタの値を１加算する
時刻同期制御方法。
【請求項８】
外部装置から受信した第一の時刻情報を含み得る入力信号に含まれるデータが正常であるか否かを判定する処理を含む、前記入力信号に対する信号処理を行う信号処理機能と、
前記信号処理機能により信号処理中である前記入力信号が存在しない待機状態においてライトポインタとリードポインタとを同じ値に設定したのち、前記入力信号を受信したときに、時刻出力手段から出力された現在時刻情報を、第二の時刻情報として記憶可能なエントリを複数有し、前記第二の時刻情報を前記ライトポインタが示す書き込み先の前記エントリに記憶するとともに前記ライトポインタの値を１加算したのち、前記信号処理機能によって前記データが正常でないと判定された場合は前記ライトポインタの値を１減算する記憶手段に記憶する記憶機能と、
前記入力信号に前記第一の時刻情報が含まれるか否かを判定し、前記第一の時刻情報が含まれない場合、前記リードポインタが示す前記エントリから前記第二の時刻情報を読み出さないとともに、前記第一の時刻情報が含まれないことを示す判定結果を前記記憶機能に通知し、前記信号処理機能が前記入力信号に対する前記信号処理を終了したときに前記時刻出力手段から出力された現在時刻情報である第三の時刻情報と、前記第一の時刻情報と、前記記憶手段における前記リードポインタが示す読み出し先の前記エントリに記憶された前記第二の時刻情報と、に基づいて、前記時刻出力手段が出力する現在時刻情報を更新する更新機能と、
をコンピュータに実現させ、
前記記憶機能は、前記更新機能によって前記リードポインタが示す前記エントリに記憶された前記第二の時刻情報が読み出された場合、及び、前記更新機能から前記判定結果を通知された場合に前記リードポインタの値を１加算する
時刻同期制御プログラム。
【発明の詳細な説明】
【技術分野】
【０００１】
本願発明は、複数の装置が各々保有する時刻情報を同期する技術に関する。
【背景技術】
【０００２】
複数の電子機器が連携して動作するシステムが、様々な分野において稼働している。例えば自動車分野における車載Top Viewカメラシステムは、自動車の前後左右に設置されたカメラが同時刻に撮影した映像データに基づいて、その自動車の周囲を表示した映像データを合成する。また、互いに異なるドメイン（通信ネットワーク）に存在する複数の装置が、協調して動作することによって、１つのシステムとして動作するシステムもある。このようなシステムでは、連携して動作する電子機器が各々保有する時刻情報を同期する必要があるので、複数の電子機器が各々保有する時刻情報を高い精度で同期する技術が期待されている。
【０００３】
このような技術に関連する技術の一例として、特許文献１には、マスタ装置と、当該マスタ装置と光ファイバ伝送路により接続された中継装置と、当該中継装置と光ファイバ伝送路により接続され当該マスタ装置と時刻同期を行うスレーブ装置と、を備えた時刻同期システムが開示されている。この時刻同期システムでは、マスタ装置及び中継装置は、それぞれ、光源波長を異なる複数の波長に切り替えて、各々の遅延時間測定パケットを送出する。スレーブ装置は、各遅延時間測定パケットによる往復遅延時間の測定結果と各波長における伝送速度又は屈折率を示す情報を用いて、マスタ装置から時刻が配信された時に時刻を補正するための伝送路遅延時間補正値を算出する。
【０００４】
また、特許文献２には、伝送路を介して互いに接続された一対の終端装置を有する通信システムが開示されている。この通信システムは、測定主体である一方の終端装置が、他方の終端装置へ送信する遅延測定用の通信フレームと、このフレームに対応してその他方の終端装置から返信される返信フレームとを用いて、当該両終端装置間のフレーム遅延を求める遅延測定機能を備えている。この通信システムでは、測定主体である終端装置は、通信フレームを送信した時から受信するまでに要する時間が異なる複数のフレーム遅延の値に基づいて、両終端装置間についてローカルクロックの比を求める演算部を備える。
【０００５】
また、特許文献３には、測定フレーム生成部と、送信時刻獲得部と、補正部と、を備えた通信装置が開示されている。当該測定フレーム生成部は、測定対象である通信装置との遅延測定において使用する、送信タイムスタンプを含む測定フレームを生成する。当該送信時刻獲得部は、測定フレームが測定対象である通信装置に送信される時刻を記録する。当該補正部は、当該送信時刻獲得部が記録した時刻と当該送信タイムスタンプに記録されている時刻との差分を補正する。
【先行技術文献】
【特許文献】
【０００６】
【特許文献１】特開2014-106188号公報
【特許文献２】特開2008-182549号公報
【特許文献３】特開2010-147806号公報
【発明の概要】
【発明が解決しようとする課題】
【０００７】
複数の電子機器が各々保有する時刻情報を同期する技術に関する標準規格の１つとして、IEEE (Institute of Electrical and Electronic Engineers) 802.1ASがある。IEEE 802.1ASに準拠した一般的な時刻同期処理が使用する、ステップごとの遅延時間の構成を図６に例示する。
【０００８】
図６に例示するシステムでは、スレーブ装置５０及びマスタ装置６０は、各々時刻情報を保有し、スレーブ装置５０は、マスタ装置６０と時刻情報を同期する。マスタ装置６０は、自装置が保有する時刻情報を含むフレーム（以降本願では「ＡＳフレーム」と称する）を、スレーブ装置５０へ送信する。スレーブ装置におけるＭＡＣ（Media Access Control）処理部５１は、受信したＡＳフレームについて、ＭＡＣ処理を行う。ここでＭＡＣ処理とは、ＯＳＩ（Open System Interconnection）参照モデルによって定義されたデータリンク層における通信プロトコルを実行する処理のことである。ＭＡＣ処理部５１は、ＭＡＣ処理として、フレームデータの組み立て、及び、フレームが正常なデータであるか否かを確認する処理等を行う。ＭＡＣ処理部５１は、受信したＡＳフレームが正常である場合、当該ＡＳフレームを時刻更新処理部５２へ入力する。
【０００９】
時刻更新処理部５２は、ＭＡＣ処理部５１からＡＳフレームを入力されたときに、スレーブ装置５０が保有する時刻情報を、マスタ装置６０が保有する時刻情報と同期する処理を行う。時刻更新処理部５２は、ＡＳフレームに含まれるマスタ装置６０が保有する時刻情報が示す値に、図６に示す、信号伝搬遅延時間と、ＭＡＣ処理遅延時間と、時刻更新処理遅延時間とを加えた値を算出する。そして、時刻更新処理部５２は、スレーブ装置５０が保有する時刻情報を、算出した値に更新する。
【００１０】
ここで、信号伝搬遅延時間は、マスタ装置６０から送信されたフレームがスレーブ装置５０に届くまでに要する時間であり、マスタ装置６０とスレーブ装置５０とを通信可能に接続する通信ケーブルの線長等によって定まる固定値である。時刻更新処理遅延時間は、時刻更新処理部５２がＡＳフレームを入力されたのち時刻同期処理を完了するまでに要する時間であり、信号伝搬遅延時間と同様に、一般的に値がほとんど変動しない固定値である。
【００１１】
これらに対して、ＭＡＣ処理遅延時間は、ＭＡＣ処理部５１がＡＳフレームを受信したのち当該ＡＳフレームに対するＭＡＣ処理を完了するまでに要する時間であり、一般的に、値がシステムの状態によって変動する変動値である。すなわち、ＭＡＣ処理遅延時間は、フレームに関するトラフィック量、あるいは、ＭＡＣ方式（ストアアンドフォワード、カットスルー、フラグメントフリー）等によって変動する。
【００１２】
図６に示す一般的な時刻同期処理を行うシステムは、通常、このＭＡＣ処理遅延時間を、所定の固定値に設定している。しかしながら、システムの状態によっては、実際のＭＡＣ処理遅延時間が、当該固定値から大きくずれることがある。この場合、スレーブ装置５０がマスタ装置６０と時刻情報を同期する精度が大きく低下することになる。特許文献１乃至３に記載された技術では、この問題を解決することは困難である。
【００１３】
本願発明の主たる目的は、この問題を解決した、時刻同期制御装置等を提供することである。
【課題を解決するための手段】
【００１４】
本願発明の一態様に係る時刻同期制御装置は、外部装置から受信した第一の時刻情報を含む入力信号を受信したときに、時刻出力手段から出力された現在時刻情報を、第二の時刻情報として記憶する記憶手段と、前記入力信号に対して所定の信号処理を行う信号処理手段が前記入力信号に対する前記信号処理を終了したときに前記時刻出力手段から出力された現在時刻情報である第三の時刻情報と、前記第一の時刻情報と、前記記憶手段に記憶された前記第二の時刻情報と、に基づいて、前記時刻出力手段が出力する現在時刻情報を更新する更新手段と、を備える。
【００１５】
上記目的を達成する他の見地において、本願発明の一態様に係る時刻同期制御方法は、情報処理装置によって、外部装置から受信した第一の時刻情報を含む入力信号を受信したときに、時刻出力手段から出力された現在時刻情報を、第二の時刻情報として記憶手段に記憶し、前記入力信号に対して所定の信号処理を行う信号処理手段が前記入力信号に対する前記信号処理を終了したときに前記時刻出力手段から出力された現在時刻情報である第三の時刻情報と、前記第一の時刻情報と、前記記憶手段に記憶された前記第二の時刻情報と、に基づいて、前記時刻出力手段が出力する現在時刻情報を更新する。
【００１６】
また、上記目的を達成する更なる見地において、本願発明の一態様に係る時刻同期制御プログラムは、外部装置から受信した第一の時刻情報を含む入力信号を受信したときに、時刻出力手段から出力された現在時刻情報を、第二の時刻情報として記憶手段に記憶する記憶処理と、前記入力信号に対して所定の信号処理を行う信号処理手段が前記入力信号に対する前記信号処理を終了したときに前記時刻出力手段から出力された現在時刻情報である第三の時刻情報と、前記第一の時刻情報と、前記記憶手段に記憶された前記第二の時刻情報と、に基づいて、前記時刻出力手段が出力する現在時刻情報を更新する更新処理と、をコンピュータに実現させる。
【００１７】
更に、本発明は、係る時刻同期制御プログラム（コンピュータプログラム）が格納された、コンピュータ読み取り可能な、不揮発性の記録媒体によっても実現可能である。
【発明の効果】
【００１８】
本願発明は、特定の装置が他の装置と時刻情報を同期する際に、その特定の装置が行う処理に要する時間がその特定の装置が含まれるシステムの状態によって変動する場合であっても、高い精度で時刻同期処理を行うことを可能とする。
【図面の簡単な説明】
【００１９】
【図１】本願発明の第１の実施形態に係る時刻同期制御システム１の構成を示すブロック図である。
【図２】本願発明の第１の実施形態に係る記憶部１１の構成を示すブロック図である。
【図３Ａ】本願発明の第１の実施形態に係る時刻同期制御システム１の動作を示すフローチャート（１／２）である。
【図３Ｂ】本願発明の第１の実施形態に係る時刻同期制御システム１の動作を示すフローチャート（２／２）である。
【図４】本願発明の第２の実施形態に係る時刻同期制御装置３０の構成を示すブロック図である。
【図５】本願発明の各実施形態に係る時刻同期制御装置が備える機能を実現する時刻同期制御プログラムを実行可能な情報処理装置の構成を示すブロック図である。
【図６】一般的な時刻同期処理におけるステップごとの遅延時間の構成を例示する図である。
【発明を実施するための形態】
【００２０】
以下、本願発明の実施の形態について図面を参照して詳細に説明する。
【００２１】
＜第１の実施形態＞
図１は、第１の実施形態に係る時刻同期制御システム１の構成を概念的に示すブロック図である。本実施形態に係る時刻同期制御システム１は、時刻同期制御装置１０、及び、外部装置２０を備えている。外部装置２０は、時刻同期処理におけるマスタ装置として、自装置が有する時刻情報（マスタクロック情報）を、スレーブ装置である時刻同期制御装置１０に提供する。時刻同期制御装置１０は、外部装置２０から提供されたマスタクロック情報に基づき、外部装置２０と時刻情報を同期する。
【００２２】
外部装置２０は、様々な形式のフレーム（信号）を、時刻同期制御装置１０に送信する。時刻同期制御装置１０及び外部装置２０が時刻同期処理を行う場合、外部装置２０は、マスタクロック情報を含むフレームであるＡＳフレームを、時刻同期制御装置１０に対して送信する。
【００２３】
時刻同期制御装置１０は、記憶部１１、更新部１２、ＭＡＣ処理部１３、及び、時刻出力部１４を備えている。更新部１２、ＭＡＣ処理部１３、及び、時刻出力部１４は、電子回路の場合もあれば、コンピュータプログラムとそのコンピュータプログラムに従って動作するプロセッサによって実現される場合もある。記憶部１１は、電子メモリあるいは磁気ディスク等の不揮発性の記憶デバイスである。記憶部１１は、電子回路、あるいは、コンピュータプログラムとそのコンピュータプログラムに従って動作するプロセッサによって実現される記憶制御機能を備えている。
【００２４】
時刻出力部１４は時計（タイマ）であり、現在時刻を出力する。
【００２５】
記憶部１１は、時刻同期制御装置１０が外部装置２０からフレームを受信したタイミングに、時刻出力部１４から出力された現在時刻を表す受信時タイムスタンプを記憶する。記憶部１１の構成を図２に例示する。
【００２６】
図２に例示する通り、記憶部１１は、ｎ個（ｎは１以上の任意の整数）のエントリ１１０−１乃至１１０−ｎ、ライトポインタ１１１、及び、リードポインタ１１２を備えたリングバッファである。エントリ１１０−１乃至１１０−ｎは、受信時タイムスタンプを記憶可能なエントリである。ライトポインタ１１１は、受信時タイムスタンプの格納先であるエントリを示し、１乃至ｎのいずれかの値を格納している。リードポインタ１１２は、受信時タイムスタンプを読み出すエントリを示し、１乃至ｎのいずれかの値を格納している。
【００２７】
記憶部１１は、時刻同期制御装置１０が外部装置２０からフレームを受信したタイミングに、ライトポインタ１１１が示すエントリ１１０−ｉ（ｉは１乃至ｎのいずれかの整数）に受信時タイムスタンプを格納する。記憶部１１は、エントリ１１０−ｉに受信時タイムスタンプを格納したのち、ライトポインタ１１１を１加算する。すなわち、この場合、ライトポインタ１１１の値は「ｉ＋１」となる。また、「ｉ＝ｎ」である場合、ライトポインタ１１１の値は、１加算されることによって「１」に戻る。
【００２８】
記憶部１１は、エントリ１１０−ｉに受信時タイムスタンプを格納したのち、ＭＡＣ処理部１３から、外部装置２０から受信したフレームが正常なフレームでないことを通知された場合、「ｉ＋１」に更新されたライトポインタ１１１の値を「ｉ」に戻す。記憶部１１は、ＭＡＣ処理部１３から、ＭＡＣ処理部１３がＭＡＣ処理中であるフレームが存在しない待機状態であることを通知された場合、ライトポインタ１１１の値、及び、リードポインタ１１２の値を、同じ値（例えば「１」）に設定（リセット）する。
【００２９】
記憶部１１は、エントリ１１０−ｉに受信時タイムスタンプを格納したのち、更新部１２から、外部装置２０から受信したフレームがＡＳフレームでないことを通知された場合、リードポインタ１１２の値を「１」加算する。記憶部１１は、エントリ１１０−ｉに受信時タイムスタンプを格納したのち、更新部１２によって、リードポンタ１１２が示すエントリから受信時タイムスタンプが読み出された場合、リードポインタ１１２の値を「１」加算する。
【００３０】
ＭＡＣ処理部１３は、外部装置２０から受信したフレームについて、ＭＡＣ処理を行う。ＭＡＣ処理部１３は、フレームをＭＡＣ処理中に、後続するフレームを受け付けて、その後続フレームについてＭＡＣ処理を開始することが可能である。ＭＡＣ処理部５１は、ＭＡＣ処理として、フレームを構成するデータの組み立て処理、及び、フレームが正常なフレームであるか否かを確認する処理等を行う。ＭＡＣ処理部５１は、フレームを構成するデータについて、欠損あるいは超過が存在するかどうか、及び、ＣＲＣ（Cyclic Redundancy Check）エラー等が存在するかどうかを確認する。
【００３１】
ＭＡＣ処理部１３は、受信したフレームが正常である場合、ＭＡＣ処理した当該フレームを更新部１２へ入力する。ＭＡＣ処理部１３は、受信したフレームが異常である場合、当該フレームを廃棄するとともに、当該フレームが正常なフレームでないことを、記憶部１１へ通知する。ＭＡＣ処理部１３は、受信した全てのフレームについて処理が完了し、ＭＡＣ処理中であるフレームが存在しない待機状態になったときに、待機状態であることを記憶部１１へ通知する。
【００３２】
更新部１２は、フレーム判定部１２０、及び、時刻同期処理部１２１を備えている。フレーム判定部１２０は、フレームの種別毎にフレームの構成内容を表したフレーム構成情報を含むフレーム判定基準（不図示）を記憶している。フレーム判定部１２０は、このフレーム判定基準に基づき、ＭＡＣ処理部１３から入力されたフレームがＡＳフレームであるか否かを判定する。
【００３３】
フレーム判定部１２０は、ＭＡＣ処理部１３から入力されたフレームがＡＳフレームでない場合、当該フレームを、時刻同期制御装置１０の外部にあるフレームデータ処理部へ入力する。フレーム判定部１２０は、当該フレームがＡＳフレームでないことを、記憶部１１へ通知する。
【００３４】
フレーム判定部１２０は、ＭＡＣ処理部１３から入力されたフレームがＡＳフレームである場合、当該ＡＳフレームからマスタクロック情報を抽出し、抽出したマスタクロック情報を、時刻同期処理部１２１へ入力する。
【００３５】
時刻同期処理部１２１は、ＭＡＣ処理部１３からフレームを入力されたタイミングに、時刻出力部１４から出力された現在時刻を表すＭＡＣ処理完了時タイムスタンプを取得する。時刻同期処理部１２１は、フレーム判定部１２０からマスタクロック情報を入力された場合、記憶部１１におけるリードポインタ１１２が示すエントリから、受信時タイムスタンプを読み出す。
【００３６】
時刻同期処理部１２１は、入手したＭＡＣ処理完了時タイムスタンプの値から、入手した受信時タイムスタンプの値を減算することによって、ＭＡＣ処理遅延時間を算出する。このＭＡＣ処理遅延時間は、受信したＡＳフレームについて、ＭＡＣ処理部１３がＭＡＣ処理を行うのに要した時間である。
【００３７】
時刻同期処理部１２１は、算出したＭＡＣ処理遅延時間に、フレーム判定部１２０から入力されたマスタクロック情報が示す値と、信号伝搬遅延時間と、時刻更新処理遅延時間とを加算することによって、時刻同期制御装置１０が、現在時刻として自装置に設定すべき値（時刻）を算出する。ここで、信号伝搬時間は、外部装置２０から出力されたフレームが時刻同期制御装置１０に届くのに要する時間であり、システム管理者等によって、固定値として時刻同期処理部１２１に事前に与えられている。時刻更新処理遅延時間は、更新部１２がＭＡＣ処理部１３からＡＳフレームを入力されたのち時刻同期処理を完了するまでに要する時間であり、信号伝搬遅延時間と同様に、システム管理者等によって、固定値として時刻同期処理部１２１に事前に与えられている。
【００３８】
時刻同期処理部１２１は、時刻出力部１４が出力する現在時刻を、上述した処理によって算出した現在時刻に更新する。
【００３９】
次に図３Ａ及び３Ｂのフローチャートを参照して、本実施形態に係る時刻同期制御システム１の動作（処理）について詳細に説明する。
【００４０】
時刻同期制御装置１０は、外部装置２０からフレームを受信する（ステップＳ１０１）。記憶部１１は、当該フレームを受信したタイミングに時刻出力部１４が出力した現在時刻を、受信時タイムスタンプとして、ライトポインタ１１１が示すエントリ１１０−ｉに格納し、ライトポインタ１１１を「１」加算する（ステップＳ１０２）。ＭＡＣ処理部１３は、受信したフレームについてＭＡＣ処理を実行し、正常フレームであるか否かを判定する（ステップＳ１０３）。
【００４１】
受信したフレームが正常フレームでない場合（ステップＳ１０４でＮｏ）、ＭＡＣ処理部１３は、当該フレームを廃棄し、当該フレームを廃棄したことを記憶部１１へ通知する（ステップＳ１０５）。記憶部１１は、ライトポインタ１１１を「１」減算し（ステップＳ１０６）、全体の処理は終了する。
【００４２】
受信したフレームが正常フレームである場合（ステップＳ１０４でＹｅｓ）、ＭＡＣ処理部１３は、ＭＡＣ処理を行った当該フレームを、更新部１２へ入力する（ステップＳ１０７）。時刻同期処理部１２１は、当該フレームを入力されたタイミングに時刻出力部１４が出力した現在時刻を、ＭＡＣ処理完了時タイムスタンプとして入手する（ステップＳ１０８）。
【００４３】
フレーム判定部１２０は、当該フレームがＡＳフレームであるか否かを判定する（ステップＳ１０９）。当該フレームがＡＳフレームでない場合（ステップＳ１１０でＮｏ）、フレーム判定部１２０は、当該フレームを、外部にあるフレームデータ処理部へ入力する（ステップＳ１１１）。フレーム判定部１２０は、当該フレームがＡＳフレームでないことを、記憶部１１へ通知する（ステップＳ１１２）。記憶部１１は、リードポインタ１１２を「１」加算し（ステップＳ１１３）、全体の処理は終了する。
【００４４】
当該フレームがＡＳフレームである場合（ステップＳ１１０でＹｅｓ）、フレーム判定部１２０は、当該ＡＳフレームからマスタクロック情報を抽出して、そのマスタクロック情報を時刻同期処理部１２１へ入力する（ステップＳ１１４）。時刻同期処理部１２１は、エントリ１１０−ｉから受信時タイムスタンプを読み出す（ステップＳ１１５）。記憶部１１は、リードポインタを「１」加算する（ステップＳ１１６）。
【００４５】
時刻同期処理部１２１は、マスタクロック情報、受信時タイムスタンプ、及び、ＭＡＣ処理完了時タイムスタンプに基づき、現在時刻を算出する（ステップＳ１１７）。時刻同期処理部１２１は、時刻出力部１４が出力する現在時刻を、算出した現在時刻に更新し（ステップＳ１１８）、全体の処理は終了する。
【００４６】
本実施形態に係る時刻同期制御システム１は、特定の装置が他の装置と時刻情報を同期する際に、その特定の装置が行う処理に要する時間がその特定の装置が含まれるシステムの状態によって変動する場合であっても、高い精度で時刻同期処理を行うことができる。その理由は、記憶部１１が、外部装置２０からマスタクロック情報を受信したときの時刻を受信時タイムスタンプとして記憶し、更新部１２が、ＭＡＣ処理部１３による信号処理が完了したときの時刻であるＭＡＣ処理完了時タイムスタンプと、記憶部１１に記憶された受信時タイムスタンプと、マスタクロック情報が示す値と、に基づいて、時刻出力部１４が出力する現在時刻を更新するからである。
【００４７】
例えば「発明が解決しようとする課題」欄で説明した場合と同様に、スレーブ装置がマスタ装置と時刻情報を同期する場合を考える。この場合、スレーブ装置は、通常、自装置が使用する時刻情報を、マスタ装置から出力されたマスタクロック情報が示す値に、所定の時間を加算した値に更新する。この所定の時間は、マスタ装置からスレーブ装置にマスタクロック情報が届くまでに要する信号伝搬遅延時間と、スレーブ装置がマスタクロック情報を受信してから時刻同期処理を完了するまでに要する処理遅延時間と、を含んでいる。当該処理遅延時間は、例えば図６に示す例の場合、ＭＡＣ処理遅延時間と、時刻更新処理遅延時間と、を含んでいる。
【００４８】
一般的な時刻同期処理を行うシステムは、通常、時刻同期処理を行う際にマスタクロック情報が示す値に加算する所定の時間を、所定の固定値に設定している。図６に示す例において、信号伝搬遅延時間、及び、時刻更新処理遅延時間は、システムの状態によって変動することがほとんどない固定値である。これに対してＭＡＣ処理遅延時間は、システムの状態によって変動する変動値である。すなわち、マスタクロック情報が示す値に加算される所定の時間は、システムの状態によって変動する変動値であるので、システムの状態によっては、時刻情報を同期する精度が大きく低下する虞がある。
【００４９】
これに対して本実施形態に係る時刻同期制御システム１によれば、記憶部１１は、外部装置２０からマスタクロック情報を受信したときの時刻を、受信時タイムスタンプとして記憶する。更新部１２は、ＭＡＣ処理部１３による信号処理が完了したときの時刻を表すＭＡＣ処理完了時タイムスタンプを入手したのち、ＭＡＣ処理完了時タイムスタンプの値から受信時タイムスタンプの値を減算することによって、変動値であるＭＡＣ処理遅延時間を算出する。更新部１２は、算出したＭＡＣ処理遅延時間に、マスタクロック情報が示す値と、固定値である信号伝搬遅延時間及び時刻更新処理遅延時間と、を加算することによって、現在時刻を算出する。更新部１２は、時刻出力部１４が出力する時刻情報を、算出した現在時刻に更新する。これにより、本実施形態に係る時刻同期制御システム１は、時刻同期処理に要する時間がシステムの状態によって変動する場合であっても、高い精度で時刻同期処理を行うことができる。
【００５０】
また、本実施形態に係る時刻同期制御システム１では、記憶部１１は、複数のエントリ１１０−１乃至１１０−ｎを備えたリングバッファである。時刻同期制御装置１０は、外部装置２０から短期間に複数のマスタクロック情報が送信された場合、先行するマスタクロック情報に関する時刻同期処理が完了していなくても、後続するマスタクロック情報を複数のエントリを使用して記憶部１１に記憶する。これにより時刻同期制御装置１０は、マスタクロック情報を滞りなく受け付けることができる。そして、記憶部１１は、ＭＡＣ処理部１３が受信した全てのマスタクロック情報に関するＭＡＣ処理を完了した待機状態になったときに、ライトポインタ１１１及びリードポインタ１１２を同じ値にリセットすることによって、エントリ１１０−１乃至１１０−ｎを有効活用することができる。
【００５１】
尚、本実施形態に係る時刻同期制御システム１では、時刻同期制御装置１０は、ＭＡＣ処理部１３によるＭＡＣ処理遅延時間を、時刻同期処理における変動値として算出しているが、時刻同期制御装置１０が変動値として算出する処理遅延時間は、ＭＡＣ処理遅延時間に限定されない。時刻同期制御装置１０が変動値として算出する処理遅延時間は、例えば、ＭＡＣ処理に対して機能が拡張された処理に要する遅延時間であってもよい。時刻同期制御装置１０が変動値として算出する処理遅延時間は、あるいは、ＯＳＩ参照モデルによって定義されたデータリンク層以外の階層における通信プロトコルを実行する処理に要する遅延時間であってもよい。
【００５２】
また、本実施形態に係る時刻同期制御装置１０が、ソフトウェアにより時刻同期処理を行う場合、受信したＡＳフレームを内蔵メモリに格納したのち、ＣＰＵ（Central  Processing Unit）が実行するプログラムによって、ＭＡＣ処理及び時刻更新処理等を行う。この場合、時刻同期処理に要する処理時間は、ＣＰＵ及びメモリに関する他の処理との競合が発生することによって、専用ハードウェアにより時刻同期処理を行う場合よりも、大きく変動する。この場合でも、本実施形態に係る時刻同期制御システム１は、ＡＳフレームを受信したのち、当該ソフトウェアが所定の処理を完了するまでの遅延時間を算出することができるので、高い精度で時刻同期処理を行うことができる。
【００５３】
＜第２の実施形態＞
図４は、第２の実施形態に係る時刻同期制御装置３０の構成を概念的に示すブロック図である。
【００５４】
本実施形態に係る時刻同期制御装置３０は、記憶部３１、及び、更新部３２を備えている。
【００５５】
記憶部３１は、外部装置４０から受信した第１の時刻情報４００を含む入力信号を受信したときに、時刻出力部３４から出力された現在時刻情報を、第２の時刻情報３１０として記憶する。
【００５６】
更新部３２は、当該入力信号に対して所定の信号処理を行う信号処理部３３が当該入力信号に対する信号処理を終了したときに時刻出力部３４から出力された現在時刻情報である第３の時刻情報３４０を入手する。更新部３２は、第３の時刻情報３４０と、第１の時刻情報４００と、記憶部３１に記憶された第２の時刻情報３１０と、に基づいて、時刻出力部３４が出力する現在時刻情報を更新する。
【００５７】
本実施形態に係る時刻同期制御装置３０は、特定の装置が他の装置と時刻情報を同期する際に、その特定の装置が行う処理に要する時間がその特定の装置が含まれるシステムの状態によって変動する場合であっても、高い精度で時刻同期処理を行うことができる。その理由は、記憶部３１が、外部装置４０から第１の時刻情報４００を受信したときの時刻を第２の時刻情報３１０として記憶し、更新部３２が、信号処理部３３による信号処理が完了したときの時刻を示す第３の時刻情報３４０と、記憶部３１に記憶された第２の時刻情報３１０と、第１の時刻情報４００が示す値と、に基づいて、時刻出力部３４が出力する現在時刻情報を更新するからである。
【００５８】
＜ハードウェア構成例＞
上述した各実施形態において図１、及び、図４に示した時刻同期制御装置１０及び３０は、専用のＨＷ（ＨａｒｄＷａｒｅ）（電子回路）によって実現することができる。また、時刻同期制御装置１０及び３０は、汎用のＨＷにソフトウェアプログラムを実行させることによっても実現可能である。この場合のハードウェア環境の一例を、図５を参照して説明する。
【００５９】
図５は、本発明の各実施形態に係る時刻同期制御装置１０及び３０が備える機能を実現する時刻同期制御プログラムを実行可能な情報処理装置９００（コンピュータ）の構成を例示的に説明する図である。即ち、図５は、図１に示した時刻同期制御装置１０、及び、図４に示した時刻同期制御装置３０を実現可能なコンピュータ（情報処理装置）の構成であって、上述した実施形態における各機能を実現可能なハードウェア環境を表す。
【００６０】
図５に示した情報処理装置９００は、構成要素として下記を備えている。
・ＣＰＵ（Ｃｅｎｔｒａｌ＿Ｐｒｏｃｅｓｓｉｎｇ＿Ｕｎｉｔ）９０１、
・ＲＯＭ（Ｒｅａｄ＿Ｏｎｌｙ＿Ｍｅｍｏｒｙ）９０２、
・ＲＡＭ（Ｒａｎｄｏｍ＿Ａｃｃｅｓｓ＿Ｍｅｍｏｒｙ）９０３、
・ハードディスク（記憶装置）９０４、
・外部装置との通信インタフェース９０５、
・ＣＤ−ＲＯＭ（Ｃｏｍｐａｃｔ＿Ｄｉｓｃ＿Ｒｅａｄ＿Ｏｎｌｙ＿Ｍｅｍｏｒｙ）等の記録媒体９０７に格納されたデータを読み書き可能なリーダライタ９０８、
・入出力インタフェース９０９、
情報処理装置９００は、これらの構成がバス９０６（通信線）を介して接続された一般的なコンピュータである。
【００６１】
そして、上述した実施形態を例に説明した本発明は、図５に示した情報処理装置９００に対して、次の機能を実現可能なコンピュータプログラムを供給する。その機能とは、その実施形態の説明において参照したブロック構成図（図１、及び、図４）における、時刻同期制御装置１０及び３０、或いはフローチャート（図３Ａ及び３Ｂ）の機能である。本発明は、その後、そのコンピュータプログラムを、当該ハードウェアのＣＰＵ９０１に読み出して解釈し実行することによって達成される。また、当該装置内に供給されたコンピュータプログラムは、読み書き可能な揮発性のメモリ（ＲＡＭ９０３）またはハードディスク９０４等の不揮発性の記憶デバイスに格納すれば良い。
【００６２】
また、前記の場合において、当該ハードウェア内へのコンピュータプログラムの供給方法は、現在では一般的な手順を採用することができる。その手順としては、例えば、ＣＤ−ＲＯＭ等の各種記録媒体９０７を介して当該装置内にインストールする方法や、インターネット等の通信回線を介して外部よりダウンロードする方法等がある。そして、このような場合において、本発明は、係るコンピュータプログラムを構成するコード或いは、そのコードが格納された記録媒体９０７によって構成されると捉えることができる。
【００６３】
以上、上述した実施形態を模範的な例として本発明を説明した。しかしながら、本発明は、上述した実施形態には限定されない。即ち、本発明は、本発明のスコープ内において、当業者が理解し得る様々な態様を適用することができる。
【符号の説明】
【００６４】
１    時刻同期制御システム
１０    時刻同期制御装置
１１    記憶部
１１０−１乃至１１０−ｎ    エントリ
１１１    ライトポインタ
１１２    リードポインタ
１２    更新部
１２０    フレーム判定部
１２１    時刻同期処理部
１３    ＭＡＣ処理部
１４    時刻出力部
２０    外部装置
３０    時刻同期制御装置
３１    記憶部
３１０    第２の時刻情報
３２    更新部
３３    信号処理部
３４    時刻出力部
３４０    第３の時刻情報
４０    外部装置
４００    第１の時刻情報
５０    スレーブ装置
５１    ＭＡＣ処理部
５２    時刻更新処理部
６０    マスタ装置
９００    情報処理装置
９０１    ＣＰＵ
９０２    ＲＯＭ
９０３    ＲＡＭ
９０４    ハードディスク
９０５    通信インタフェース
９０６    バス
９０７    記録媒体
９０８    リーダライタ
９０９    入出力インタフェース
【図１】
0006612526.tif 000002
【図２】
0006612526.tif 000003
【図３Ａ】
0006612526.tif 000004
【図３Ｂ】
0006612526.tif 000005
【図４】
0006612526.tif 000006
【図５】
0006612526.tif 000007
【図６】
0006612526.tif 000008