(57)【要約】【課題】情報取得装置が情報を取得した時刻を、取得された情報を処理する情報処理装置のシステム時刻と同期させる。【解決手段】記憶部４１１は、第１システム時刻を記憶する。受信部４１２は、記憶部４１１に第１システム時刻が書き込まれた後に、情報取得装置４０２から、第１情報と第１情報の取得時刻を示す第１時刻情報とを受信する。そして、受信部４１２は、第１情報と第１時刻情報とを受信した後に、情報取得装置４０２から、第２情報と第２情報の取得時刻を示す第２時刻情報とを受信する。受信時刻変換部４１３は、第１システム時刻に基づいて、受信部４１２が第１情報と第１時刻情報とを受信した受信時刻を、第２システム時刻に変換する。時刻情報変換部４１４は、第２システム時刻と第１時刻情報とに基づいて、第２時刻情報を第３システム時刻に変換する。付加部４１５は、第２システム時刻を第１情報に付加し、第３システム時刻を第２情報に付加する。【選択図】図４
2020112412.tif 000002
【特許請求の範囲】
【請求項１】
第１システム時刻を記憶する記憶部と、
前記記憶部に前記第１システム時刻が書き込まれた後に、情報取得装置から、前記情報取得装置が取得した第１情報と、前記第１情報の取得時刻を示す第１時刻情報とを受信し、前記第１情報と前記第１時刻情報とを受信した後に、前記情報取得装置から、第２情報と前記第２情報の取得時刻を示す第２時刻情報とを受信する受信部と、
前記第１システム時刻に基づいて、前記受信部が前記第１情報と前記第１時刻情報とを受信した受信時刻を、第２システム時刻に変換する受信時刻変換部と、
前記第２システム時刻と前記第１時刻情報とに基づいて、前記第２時刻情報を第３システム時刻に変換する時刻情報変換部と、
前記第２システム時刻を前記第１情報に付加し、前記第３システム時刻を前記第２情報に付加する付加部と、
を備えることを特徴とする情報処理装置。
【請求項２】
前記時刻情報変換部は、
前記第２時刻情報と前記第１時刻情報との差分を生成する減算部と、
前記第２時刻情報と前記第１時刻情報との差分から、前記第３システム時刻と前記第２システム時刻との差分を計算する第１差分計算部と、
前記第３システム時刻と前記第２システム時刻との差分を前記第２システム時刻に加算することで、前記第３システム時刻を求める第１加算部と、
を含むことを特徴とする請求項１記載の情報処理装置。
【請求項３】
前記第２時刻情報と前記第１時刻情報との差分と、クロック信号と、前記クロック信号の周波数とを用いて、前記情報取得装置において取得時刻を生成するタイミング信号の周波数を計算する第１周波数計算部をさらに備え、
前記受信時刻変換部は、前記受信部が前記第１情報と前記第１時刻情報とを受信したときに、前記クロック信号に基づいて特定された時刻を、前記受信時刻として用い、
前記第１差分計算部は、前記第２時刻情報と前記第１時刻情報との差分と、前記タイミング信号の周波数とを用いて、前記第３システム時刻と前記第２システム時刻との差分を計算することを特徴とする請求項２記載の情報処理装置。
【請求項４】
前記受信時刻変換部は、
前記受信時刻と前記クロック信号の周波数とを用いて、前記第２システム時刻と前記第１システム時刻との差分を計算する第２差分計算部と、
前記第２システム時刻と前記第１システム時刻との差分を前記第１システム時刻に加算することで、前記第２システム時刻を求める第２加算部と、
を含むことを特徴とする請求項３記載の情報処理装置。
【請求項５】
前記第１システム時刻と前記クロック信号とを用いて、前記クロック信号の周波数を計算する第２周波数計算部をさらに備えることを特徴とする請求項４記載の情報処理装置。
【請求項６】
前記受信部は、前記記憶部に前記第１システム時刻が書き込まれた後に、複数の情報取得装置のうちいずれかの情報取得装置から、前記いずれかの情報取得装置が取得した第１情報と第１時刻情報とを受信し、前記第１情報と前記第１時刻情報とを受信した後に、前記いずれかの情報取得装置から、第２情報と第２時刻情報とを受信し、
前記付加部は、前記第２システム時刻を前記いずれかの情報取得装置から受信した第１情報に付加し、前記第３システム時刻を前記いずれかの情報取得装置から受信した第２情報に付加することを特徴とする請求項１乃至５のいずれか１項に記載の情報処理装置。
【請求項７】
情報処理装置によって実行される時刻同期方法であって、
前記情報処理装置が、
第１システム時刻が記憶部に書き込まれた後に、情報取得装置から、前記情報取得装置が取得した第１情報と、前記第１情報の取得時刻を示す第１時刻情報とを受信し、
前記第１情報と前記第１時刻情報とを受信した後に、前記情報取得装置から、第２情報と前記第２情報の取得時刻を示す第２時刻情報とを受信し、
前記第１システム時刻に基づいて、前記第１情報と前記第１時刻情報とを受信した受信時刻を、第２システム時刻に変換し、
前記第２システム時刻と前記第１時刻情報とに基づいて、前記第２時刻情報を第３システム時刻に変換し、
前記第２システム時刻を前記第１情報に付加し、
前記第３システム時刻を前記第２情報に付加する、
ことを特徴とする時刻同期方法。
【請求項８】
第１システム時刻が記憶部に書き込まれた後に、情報取得装置から、前記情報取得装置が取得した第１情報と、前記第１情報の取得時刻を示す第１時刻情報とを受信し、
前記第１情報と前記第１時刻情報とを受信した後に、前記情報取得装置から、第２情報と前記第２情報の取得時刻を示す第２時刻情報とを受信し、
前記第１システム時刻に基づいて、前記第１情報と前記第１時刻情報とを受信した受信時刻を、第２システム時刻に変換し、
前記第２システム時刻と前記第１時刻情報とに基づいて、前記第２時刻情報を第３システム時刻に変換し、
前記第２システム時刻を前記第１情報に付加し、
前記第３システム時刻を前記第２情報に付加する、
処理をコンピュータに実行させるための時刻同期プログラム。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、情報処理装置、時刻同期方法、及び時刻同期プログラムに関する。
【背景技術】
【０００２】
図１は、複数のセンサから情報を収集する、従来の情報処理システムの構成例を示している。図１の情報処理システムは、情報処理装置１０１、センサ１０２−１、及びセンサ１０２−２を含む。情報処理装置１０１は、ＦＰＧＡ（Field-Programmable Gate Array）１１１を含む。
【０００３】
センサ１０２−１及びセンサ１０２−２は、個別のタイミング信号に同期して動作する。センサ１０２−１は、データ１２１−１〜データ１２１−４を取得し、取得したデータをバッファリングしながら情報処理装置１０１へ送信する。同様に、センサ１０２−２は、データ１２２−１〜データ１２２−４を取得し、取得したデータをバッファリングしながら情報処理装置１０１へ送信する。
【０００４】
ＦＰＧＡ１１１は、センサ１０２−１からデータ１２１−１〜データ１２１−４を受信し、センサ１０２−２からデータ１２２−１〜データ１２２−４を受信する。そして、ＦＰＧＡ１１１は、受信したデータに対する情報処理を行う。
【０００５】
センサに関連して、複数のセンサによる計測結果同士を時間的に対応付けるセンサ情報処理装置、及びセンサデータに関する誤差の少ないタイムスタンプが得られるセンシングシステムが知られている（例えば、特許文献１及び特許文献２を参照）。
【先行技術文献】
【特許文献】
【０００６】
【特許文献１】特開２０１５−１９２２３号公報
【特許文献２】国際公開第２０１８／１５１２０２号パンフレット
【発明の概要】
【発明が解決しようとする課題】
【０００７】
情報処理装置において複数のセンサから収集した情報を処理する際に、各情報に時刻を示すタイムスタンプを付加する場合がある。しかし、各センサが個別のタイミング信号に同期して動作している場合、複数のセンサのタイミング信号に基づく時刻は互いに同期しておらず、情報処理装置のシステム時刻とも同期していない。
【０００８】
なお、時刻同期の問題は、複数のセンサから情報を収集する場合に限らず、単一のセンサから情報を収集する場合においても生ずるものである。
【０００９】
１つの側面において、本発明は、情報取得装置が情報を取得した時刻を、取得された情報を処理する情報処理装置のシステム時刻と同期させることを目的とする。
【課題を解決するための手段】
【００１０】
１つの案では、情報処理装置は、記憶部、受信部、受信時刻変換部、時刻情報変換部、及び付加部を含む。
【００１１】
記憶部は、第１システム時刻を記憶する。受信部は、記憶部に第１システム時刻が書き込まれた後に、情報取得装置から、情報取得装置が取得した第１情報と、第１情報の取得時刻を示す第１時刻情報とを受信する。そして、受信部は、第１情報と第１時刻情報とを受信した後に、情報取得装置から、第２情報と第２情報の取得時刻を示す第２時刻情報とを受信する。
【００１２】
受信時刻変換部は、第１システム時刻に基づいて、受信部が第１情報と第１時刻情報とを受信した受信時刻を、第２システム時刻に変換し、時刻情報変換部は、第２システム時刻と第１時刻情報とに基づいて、第２時刻情報を第３システム時刻に変換する。付加部は、第２システム時刻を第１情報に付加し、第３システム時刻を第２情報に付加する。
【発明の効果】
【００１３】
実施形態によれば、情報取得装置が情報を取得した時刻を、取得された情報を処理する情報処理装置のシステム時刻と同期させることができる。
【図面の簡単な説明】
【００１４】
【図１】従来の情報処理システムの構成図である。
【図２】ＦＰＧＡの第１の比較例を示す図である。
【図３】ＦＰＧＡの第２の比較例を示す図である。
【図４】情報処理装置の機能的構成図である。
【図５】時刻同期処理のフローチャートである。
【図６】実施形態の情報処理システムの構成図である。
【図７】センサモジュールの構成図である。
【図８】ビデオモジュールの構成図である。
【図９】変換部の構成図である。
【図１０Ａ】時刻同期処理の具体例を示すフローチャート（その１）である。
【図１０Ｂ】時刻同期処理の具体例を示すフローチャート（その２）である。
【図１１】時刻同期処理を示す図である。
【図１２】第２周波数計算部の構成図である。
【図１３】第１周波数計算部の構成図である。
【図１４】クロック信号の周波数を示す図である。
【図１５】タイミング信号の周波数を示す図である。
【図１６】ＯＳ時刻を示す図である。
【図１７】パケット消失時の時刻同期処理を示す図である。
【図１８】ソフトウェア制御による時刻同期部の構成図である。
【発明を実施するための形態】
【００１５】
以下、図面を参照しながら、実施形態を詳細に説明する。
図２は、データにタイムスタンプを付加するＦＰＧＡの第１の比較例を示している。図２のＦＰＧＡ２０１は、割り込みコントローラ２１１、ＭＭＩＯ（Memory-mapped Input Output）レジスタ２１２、及び検出部２１３を含む。
【００１６】
検出部２１３は、センサから入力データを受信すると、割り込みコントローラ２１１へ検出信号を出力する。割り込みコントローラ２１１は、検出信号を受信すると、オペレーティングシステム（Operating System，ＯＳ）２０２に対して、割り込み又はポーリングにより時刻同期を要求する。ＯＳ２０２は、割り込みコントローラ２１１からの要求に基づいてＯＳ時刻２２１を取得し、ＦＰＧＡ２０１のＭＭＩＯレジスタ２１２に書き込む。ＯＳ時刻２２１は、システム時刻の一例である。
【００１７】
ＦＰＧＡ２０１は、ＭＭＩＯレジスタ２１２に書き込まれたＯＳ時刻２２１を、タイムスタンプとして、検出部２１３から出力される入力データに付加し、タイムスタンプが付加された出力データを出力する。
【００１８】
しかしながら、図２の構成では、出力データのタイムスタンプは、ＦＰＧＡ２０１が入力データを受信したときのＯＳ時刻を示しており、センサが入力データを取得したときのＯＳ時刻を示していない。
【００１９】
図３は、データにタイムスタンプを付加するＦＰＧＡの第２の比較例を示している。図３のＦＰＧＡ３０１は、ＭＭＩＯレジスタ３１１及び加算部３１２を含む。
【００２０】
センサは、タイミング信号に同期してカウント値をインクリメントするカウンタを含み、入力データを取得したときのカウント値をその入力データに付加して、ＦＰＧＡ３０１へ送信する。
【００２１】
ＯＳ２０２は、定期的にＯＳ時刻２２１を取得し、ＦＰＧＡ３０１のＭＭＩＯレジスタ３１１に書き込む。ＦＰＧＡ３０１は、ＭＭＩＯレジスタ３１１にＯＳ時刻２２１が書き込まれると、リセット信号をセンサへ送信し、センサは、リセット信号を受信すると、カウンタをリセットする。
【００２２】
ＦＰＧＡ３０１は、センサから入力データを受信すると、入力データからカウント値を取得する。加算部３１２は、ＭＭＩＯレジスタ３１１に書き込まれたＯＳ時刻２２１に、カウント値が示す時間を加算することで、タイムスタンプを生成する。そして、ＦＰＧＡ３０１は、生成されたタイムスタンプを入力データに付加し、タイムスタンプが付加された出力データを出力する。
【００２３】
しかしながら、図３の構成では、入力データに付加されたカウント値に、ＦＰＧＡ３０１からセンサへリセット信号を送信する通信のオーバヘッドが含まれている。このため、そのカウント値から生成されるタイムスタンプは、必ずしも、センサが入力データを取得したときのＯＳ時刻を示していない。
【００２４】
図４は、実施形態の情報処理装置の機能的構成例を示している。図４の情報処理装置４０１は、記憶部４１１、受信部４１２、受信時刻変換部４１３、時刻情報変換部４１４、及び付加部４１５を含む。記憶部４１１は、第１システム時刻を記憶する。
【００２５】
図５は、図４の情報処理装置４０１が行う時刻同期処理の例を示すフローチャートである。まず、受信部４１２は、記憶部４１１に第１システム時刻が書き込まれた後に、情報取得装置４０２から、情報取得装置４０２が取得した第１情報と、第１情報の取得時刻を示す第１時刻情報とを受信する（ステップ５０１）。そして、受信部４１２は、第１情報と第１時刻情報とを受信した後に、情報取得装置４０２から、第２情報と第２情報の取得時刻を示す第２時刻情報とを受信する（ステップ５０２）。
【００２６】
受信時刻変換部４１３は、第１システム時刻に基づいて、受信部４１２が第１情報と第１時刻情報とを受信した受信時刻を、第２システム時刻に変換する（ステップ５０３）。時刻情報変換部４１４は、第２システム時刻と第１時刻情報とに基づいて、第２時刻情報を第３システム時刻に変換する（ステップ５０４）。そして、付加部４１５は、第２システム時刻を第１情報に付加し（ステップ５０５）、第３システム時刻を第２情報に付加する（ステップ５０６）。
【００２７】
図４の情報処理装置４０１によれば、情報取得装置が情報を取得した時刻を、取得された情報を処理する情報処理装置のシステム時刻と同期させることができる。
【００２８】
図６は、実施形態の情報処理システムの構成例を示している。図６の情報処理システムは、情報処理装置６０１と情報取得装置６０２−１〜情報取得装置６０２−Ｎ（Ｎは１以上の整数）を含む。情報処理装置６０１及び各情報取得装置６０２−ｉ（ｉ＝１〜Ｎ）は、図４の情報処理装置４０１及び情報取得装置４０２にそれぞれ対応する。情報処理装置６０１と各情報取得装置６０２−ｉは、通信ネットワーク６０３を介して通信することができる。
【００２９】
情報取得装置６０２−ｉは、各種センサ、撮像装置、マイクロフォン等を含み、所定の情報を取得する。例えば、情報取得装置６０２−ｉが圧力センサを含む場合、気圧、水圧等を示す情報が取得され、情報取得装置６０２−ｉが温度センサを含む場合、温度を示す情報が取得される。情報取得装置６０２−ｉが撮像装置を含む場合、画像情報が取得され、情報取得装置６０２−ｉがマイクロフォンを含む場合、音声情報が取得される。情報取得装置６０２−ｉに含まれるセンサは、湿度センサ、風力センサ等であってもよい。
【００３０】
情報取得装置６０２−ｉは、取得した情報に、その情報の取得時刻を示す時刻情報を付加することで、センサデータのパケットを生成し、生成したパケットを情報処理装置６０１へ送信する。情報取得装置６０２−ｉは、タイミング信号を用いて時刻情報を生成する。
【００３１】
情報処理装置６０１は、ＣＰＵ（Central Processing Unit）６１１、メモリ６１２、及び時刻同期部６１３を含む。ＣＰＵ６１１（プロセッサ）は、ＮＴＰ（Network Time Protocol）によって定期的に更新されるＯＳ時刻を、時刻同期部６１３へ出力する。
【００３２】
時刻同期部６１３は、ＣＰＵ６１１が出力するＯＳ時刻に基づいて、情報取得装置６０２−ｉから受信したパケットに含まれる所定の情報に、その情報の取得時刻を示すＯＳ時刻を付加することで、転送データを生成する。そして、時刻同期部６１３は、生成した転送データをメモリ６１２へ転送し、メモリ６１２は、転送された転送データを記憶する。ＣＰＵ６１１は、メモリ６１２が記憶している転送データに対する情報処理を行う。
【００３３】
時刻同期部６１３は、受信部６２１、第１周波数計算部６２２−１〜第１周波数計算部６２２−Ｎ、第１周波数計算部６２３、変換部６２４−１〜変換部６２４−Ｎ、及び付加部６２５を含む。受信部６２１及び付加部６２５は、図４の受信部４１２及び付加部４１５にそれぞれ対応する。
【００３４】
受信部６２１は、情報取得装置６０２−ｉからパケットを受信し、パケットに含まれる所定の情報を付加部６２５へ出力し、パケットに含まれる時刻情報を、第１周波数計算部６２２−ｉ及び変換部６２４−ｉへ出力する。
【００３５】
第２周波数計算部６２３は、ＣＰＵ６１１が出力するＯＳ時刻と、時刻同期部６１３内のクロック信号とを用いて、そのクロック信号の周波数を計算する。そして、第２周波数計算部６２３は、計算したクロック信号の周波数を、第１周波数計算部６２２−１〜第１周波数計算部６２２−Ｎ及び変換部６２４−１〜変換部６２４−Ｎへ出力する。
【００３６】
第１周波数計算部６２２−ｉは、２つのパケットに含まれる時刻情報の差分と、時刻同期部６１３内のクロック信号と、第２周波数計算部６２３が出力する、クロック信号の周波数とを用いて、情報取得装置６０２−ｉ内のタイミング信号の周波数を計算する。そして、第１周波数計算部６２２−ｉは、計算したタイミング信号の周波数を変換部６２４−ｉへ出力する。
【００３７】
変換部６２４−ｉは、ＣＰＵ６１１が出力するＯＳ時刻に基づいて、受信部４１２が出力する時刻情報をＯＳ時刻に変換し、そのＯＳ時刻を付加部６２５へ出力する。付加部６２５は、変換部６２４−ｉが出力するＯＳ時刻を、受信部４１２が出力する所定の情報にタイムスタンプとして付加することで、転送データを生成し、メモリ６１２へ転送する。
【００３８】
図７は、情報取得装置６０２−ｉの一例であるセンサモジュールの構成例を示している。図７のセンサモジュール７０１は、圧力センサ７１１、水晶振動子７１２、ＡＤ（Analog-to-Digital）コンバータ７１３、カウンタ７１４、書き込み回路７１５、データバッファ７１６、及びＩ２Ｃ（Inter-Integrated Circuit）バスマスタ７１７を含む。この場合、図６の通信ネットワーク６０３としてＩ２Ｃバスが用いられる。
【００３９】
圧力センサ７１１は、圧力を示すアナログ信号をＡＤコンバータ７１３へ出力し、水晶振動子７１２は、正弦波のタイミング信号をＡＤコンバータ７１３、カウンタ７１４、及びＩ２Ｃバスマスタ７１７へ出力する。
【００４０】
カウンタ７１４は、水晶振動子７１２が出力するタイミング信号に同期してカウント動作を行い、カウント値を書き込み回路７１５へ出力する。カウント値は、情報の取得時刻を示す時刻情報の一例である。ＡＤコンバータ７１３は、水晶振動子７１２が出力するタイミング信号に同期して、圧力センサ７１１が出力するアナログ信号をデジタル信号の情報７２１に変換し、書き込み回路７１５へ出力する。
【００４１】
書き込み回路７１５は、ＡＤコンバータ７１３が出力する情報７２１に、カウンタ７１４が出力するカウント値を付加することで、センサデータのパケットを生成して、データバッファ７１６へ出力する。データバッファ７１６は、複数のパケットをバッファリングして、Ｉ２Ｃバスマスタ７１７へ出力する。
【００４２】
Ｉ２Ｃバスマスタ７１７は、水晶振動子７１２が出力するタイミング信号に同期して動作し、データバッファ７１６が出力するパケットを、シリアルデータＳＤＡとして情報処理装置６０１へ送信する。Ｉ２Ｃバスマスタ７１７は、シリアルデータＳＤＡとともに、シリアルクロックＳＣＬを情報処理装置６０１へ送信する。
【００４３】
図８は、情報取得装置６０２−ｉの一例であるビデオモジュールの構成例を示している。図８のビデオモジュール８０１は、撮像装置８１１、水晶振動子８１２、ＡＤコンバータ８１３、カウンタ８１４、書き込み回路８１５、及びデータバッファ８１６を含む。
【００４４】
撮像装置８１１は、画像センサを含み、デジタル映像を撮影して、ＶＧＡ（Video Graphics Array）信号をＡＤコンバータ８１３へ出力する。ＶＧＡ信号は、Ｈｓｙｎｃ（Horizontal synchronizing signal）、Ｖｓｙｎｃ（Vertical synchronizing signal）、ｂｌｕｅビデオ信号、ｇｒｅｅｎビデオ信号、及びｒｅｄビデオ信号を含む。Ｈｓｙｎｃは、書き込み回路８１５にも出力される。水晶振動子８１２は、正弦波のタイミング信号をカウンタ８１４へ出力する。
【００４５】
カウンタ８１４は、水晶振動子８１２が出力するタイミング信号に同期してカウント動作を行い、カウント値を書き込み回路８１５へ出力する。ＡＤコンバータ８１３は、撮像装置８１１が出力するＶＧＡ信号をデジタル信号の画像情報８２１に変換し、書き込み回路８１５へ出力する。ＡＤコンバータ８１３の代わりに、デジタルエンコーダを用いてもよい。
【００４６】
書き込み回路８１５は、Ｈｓｙｎｃに同期して動作し、ＡＤコンバータ８１３が出力する画像情報８２１に、カウンタ８１４が出力するカウント値を付加することで、センサデータのパケットを生成して、データバッファ８１６へ出力する。データバッファ８１６は、複数のパケットをバッファリングして、情報処理装置６０１へ送信する。
【００４７】
図６の時刻同期部６１３は、ハードウェア制御又はソフトウェア制御によって実現される。ハードウェア制御による時刻同期部６１３としては、ＦＰＧＡのようなハードウェア論理回路が用いられ、ソフトウェア制御による時刻同期部６１３としては、コンピュータが用いられる。
【００４８】
以下では、図９〜図１７を参照しながら、時刻同期部６１３としてＦＰＧＡを用いた場合の構成及び動作を説明する。
【００４９】
図９は、図６の変換部６２４−ｉの構成例を示している。図９の変換部６２４−ｉは、書き込み回路９０１、判定回路９０２、セレクタ９０３、カウンタ９０４、レジスタ９０５〜レジスタ９１１、及び減算器（ｓｕｂ）９１２を含む。変換部６２４−ｉは、さらに、ＤＳＰ（Digital Signal Processor）９１３、ＤＳＰ９１４、加算器（ａｄｄ）９１５、及び加算器９１６を含む。
【００５０】
レジスタ９０５は、図４の記憶部４１１に対応し、ＤＳＰ９１３及び加算器９１５は、受信時刻変換部４１３に対応し、減算器９１２、ＤＳＰ９１４、及び加算器９１６は、時刻情報変換部４１４に対応する。減算器９１２は減算部の一例であり、ＤＳＰ９１４は第１差分計算部の一例であり、加算器９１６は第１加算部の一例である。ＤＳＰ９１３は第２差分計算部の一例であり、加算器９１５は第２加算部の一例である。
【００５１】
書き込み回路９０１は、ＣＰＵ６１１が出力するＯＳ時刻であるＯＳ＿ｓｙｓｔｅｍ＿ｔｉｍｅを受信すると、ＯＳ＿ｓｙｓｔｅｍ＿ｔｉｍｅをＯＳ＿ｔｉｍｅとしてレジスタ９０５に書き込む。レジスタ９０５は、ＯＳ＿ｔｉｍｅを加算器９１５へ出力する。
【００５２】
そして、書き込み回路９０１は、カウンタ９０４をクリアして、カウント値ＦＰＧＡ＿ｃｎｔに０を設定し、レジスタ９０９が記憶するフラグｆｉｒｓｔ＿ｐｋｔｆｌａｇをクリアして、ｆｉｒｓｔ＿ｐｋｔｆｌａｇに論理“０”を設定する。その後、カウンタ９０４は、時刻同期部６１３内のクロック信号ＦＰＧＡ＿ｃｌｋに同期してカウント動作を行い、カウント値ＦＰＧＡ＿ｃｎｔをレジスタ９０６へ出力する。
【００５３】
受信部６２１は、情報取得装置６０２−ｉからパケットを受信したとき、パケットの受信を示す信号ｓｅｎｓｏｒ＿ｖａｌｉｄと、パケットに含まれるカウント値ｓｅｎｓｏｒ＿ｃｎｔとを、第１周波数計算部６２２−ｉ及び変換部６２４−ｉへ出力する。ｓｅｎｓｏｒ＿ｖａｌｉｄ及びｓｅｎｓｏｒ＿ｃｎｔは、判定回路９０２及びセレクタ９０３にそれぞれ入力される。
【００５４】
判定回路９０２は、ｓｅｎｓｏｒ＿ｖａｌｉｄを受信した場合、レジスタ９０９のｆｉｒｓｔ＿ｐｋｔｆｌａｇをチェックする。ｆｉｒｓｔ＿ｐｋｔｆｌａｇが論理“０”である場合、判定回路９０２は、ｆｉｒｓｔ＿ｐｋｔｆｌａｇに論理“１”を設定し、カウンタ９０４が出力するＦＰＧＡ＿ｃｎｔを、１ｓｔ＿ｐｋｔ＿ｃｌｋとしてレジスタ９０６に書き込む。
【００５５】
したがって、ＯＳ＿ｓｙｓｔｅｍ＿ｔｉｍｅがレジスタ９０５に書き込まれた後、受信部６２１が最初のパケットを受信したときに、ｆｉｒｓｔ＿ｐｋｔｆｌａｇに論理“１”が設定され、そのときのＦＰＧＡ＿ｃｎｔが１ｓｔ＿ｐｋｔ＿ｃｌｋに設定される。１ｓｔ＿ｐｋｔ＿ｃｌｋは、最初のパケットを受信した受信時刻を示している。レジスタ９０６は、１ｓｔ＿ｐｋｔ＿ｃｌｋをＤＳＰ９１３へ出力する。
【００５６】
次に、判定回路９０２は、セレクタ９０３にレジスタ９０７を選択させ、セレクタ９０３は、ｓｅｎｓｏｒ＿ｃｎｔをレジスタ９０７へ出力し、レジスタ９０７は、ｓｅｎｓｏｒ＿ｃｎｔを１ｓｔ＿ｐｋｔ＿ｃｎｔとして記憶する。そして、判定回路９０２は、セレクタ９０３にレジスタ９０８を選択させ、セレクタ９０３は、ｓｅｎｓｏｒ＿ｃｎｔをレジスタ９０８へ出力し、レジスタ９０８は、ｓｅｎｓｏｒ＿ｃｎｔをｃｕｒ＿ｐｋｔ＿ｃｎｔとして記憶する。
【００５７】
したがって、受信部６２１が最初のパケットを受信したとき、そのパケットのｓｅｎｓｏｒ＿ｃｎｔが、１ｓｔ＿ｐｋｔ＿ｃｎｔ及びｃｕｒ＿ｐｋｔ＿ｃｎｔに設定される。
【００５８】
一方、ｆｉｒｓｔ＿ｐｋｔｆｌａｇが論理“１”である場合、判定回路９０２は、セレクタ９０３にレジスタ９０８を選択させ、レジスタ９０８は、ｓｅｎｓｏｒ＿ｃｎｔをｃｕｒ＿ｐｋｔ＿ｃｎｔとして記憶する。この場合、ｆｉｒｓｔ＿ｐｋｔｆｌａｇ、１ｓｔ＿ｐｋｔ＿ｃｌｋ、及び１ｓｔ＿ｐｋｔ＿ｃｎｔは更新されない。
【００５９】
したがって、ＯＳ＿ｓｙｓｔｅｍ＿ｔｉｍｅがレジスタ９０５に書き込まれた後、受信部６２１が２番目以降のパケットを受信したとき、そのパケットのｓｅｎｓｏｒ＿ｃｎｔがｃｕｒ＿ｐｋｔ＿ｃｎｔに設定され、１ｓｔ＿ｐｋｔ＿ｃｌｋ及び１ｓｔ＿ｐｋｔ＿ｃｎｔは変化しない。
【００６０】
このように、１ｓｔ＿ｐｋｔ＿ｃｎｔは、最初のパケットのｓｅｎｓｏｒ＿ｃｎｔを表し、ｃｕｒ＿ｐｋｔ＿ｃｎｔは、最初のパケット又は２番目以降のパケットのｓｅｎｓｏｒ＿ｃｎｔを表す。レジスタ９０７及びレジスタ９０８は、１ｓｔ＿ｐｋｔ＿ｃｎｔ及びｃｕｒ＿ｐｋｔ＿ｃｎｔをそれぞれ減算器９１２へ出力する。減算器９１２は、ｃｕｒ＿ｐｋｔ＿ｃｎｔから１ｓｔ＿ｐｋｔ＿ｃｎｔを減算することで、カウント値の差分を求め、ＤＳＰ９１４へ出力する。
【００６１】
したがって、受信部６２１が最初のパケットを受信したとき、減算器９１２は、カウント値の差分として０を出力する。一方、受信部６２１が２番目以降のパケットを受信したとき、減算器９１２は、受信したパケットのｓｅｎｓｏｒ＿ｃｎｔと最初のパケットのｓｅｎｓｏｒ＿ｃｎｔとの差分を出力する。
【００６２】
第２周波数計算部６２３は、クロック信号ＦＰＧＡ＿ｃｌｋの周波数ＦＰＧＡ＿ｆｒｅｑを、第１周波数計算部６２２−１〜第１周波数計算部６２２−Ｎ及び変換部６２４−１〜変換部６２４−Ｎへ出力する。レジスタ９１０は、ＦＰＧＡ＿ｆｒｅｑを記憶し、ＤＳＰ９１３へ出力する。
【００６３】
第１周波数計算部６２２−ｉは、情報取得装置６０２−ｉ内のタイミング信号の周波数ｓｅｎｓｏｒ＿ｆｒｅｑを変換部６２４−ｉへ出力する。レジスタ９１１は、ｓｅｎｓｏｒ＿ｆｒｅｑを記憶し、ＤＳＰ９１４へ出力する。
【００６４】
ＤＳＰ９１３は、レジスタ９０６が出力する１ｓｔ＿ｐｋｔ＿ｃｌｋと、レジスタ９１０が出力するＦＰＧＡ＿ｆｒｅｑとを用いて、受信部６２１が最初のパケットを受信したときのＯＳ時刻と、レジスタ９０５が記憶するＯＳ＿ｔｉｍｅとの差分を計算する。ＤＳＰ９１３は、１ｓｔ＿ｐｋｔ＿ｃｌｋをＦＰＧＡ＿ｆｒｅｑで除算することで、差分を求めることができる。そして、ＤＳＰ９１３は、計算した差分を加算器９１５へ出力する。
【００６５】
加算器９１５は、ＤＳＰ９１３が出力する差分を、レジスタ９０５が出力するＯＳ＿ｔｉｍｅに加算することで、受信部６２１が最初のパケットを受信したときのＯＳ時刻を求め、加算器９１６へ出力する。このように、ＤＳＰ９１３及び加算器９１５によって、１ｓｔ＿ｐｋｔ＿ｃｌｋを、最初のパケットの受信時刻を示すＯＳ時刻に変換することができる。
【００６６】
ＤＳＰ９１４は、レジスタ９１１が出力するｓｅｎｓｏｒ＿ｆｒｅｑを用いて、減算器９１２が出力するカウント値の差分から、受信したパケットのｓｅｎｓｏｒ＿ｃｎｔと最初のパケットのｓｅｎｓｏｒ＿ｃｎｔとの差分に対応する、ＯＳ時刻の差分を計算する。ＤＳＰ９１４は、カウント値の差分をｓｅｎｓｏｒ＿ｆｒｅｑで除算することで、ＯＳ時刻の差分を求めることができる。そして、ＤＳＰ９１４は、計算した差分を加算器９１６へ出力する。
【００６７】
ＤＳＰ９１４が出力するＯＳ時刻の差分は、ｓｅｎｓｏｒ＿ｃｎｔの差分をｓｅｎｓｏｒ＿ｆｒｅｑに基づいて変換した値であるため、情報取得装置６０２−ｉと時刻同期部６１３との間におけるパケットの転送時間を含んでいない。したがって、通信ネットワーク６０３の転送遅延とは無関係である。
【００６８】
加算器９１６は、ＤＳＰ９１４が出力する差分を、加算器９１５が出力するＯＳ時刻に加算することで、最初のパケットの受信時刻を示すＯＳ時刻から、ｓｅｎｓｏｒ＿ｃｎｔの差分に対応する相対時間が経過した後のＯＳ時刻を求める。そして、加算器９１６は、求めたＯＳ時刻をＲｅａｌ＿ｔｉｍｅとして付加部６２５へ出力する。
【００６９】
このように、減算器９１２、ＤＳＰ９１４、及び加算器９１６によって、受信したパケットのｓｅｎｓｏｒ＿ｃｎｔを、そのパケットに含まれる情報の取得時刻を示すＯＳ時刻に変換することができる。加算器９１６が出力するＲｅａｌ＿ｔｉｍｅは、受信したパケットに含まれる情報にタイムスタンプとして付加される。
【００７０】
図１０Ａ及び図１０Ｂは、図９の変換部６２４−ｉが行う時刻同期処理の具体例を示すフローチャートである。まず、書き込み回路９０１は、ＣＰＵ６１１からＯＳ＿ｓｙｓｔｅｍ＿ｔｉｍｅを受信したか否かをチェックする（ステップ１００１）。
【００７１】
ＯＳ＿ｓｙｓｔｅｍ＿ｔｉｍｅを受信した場合（ステップ１００１，ＹＥＳ）、書き込み回路９０１は、ＯＳ＿ｓｙｓｔｅｍ＿ｔｉｍｅをＯＳ＿ｔｉｍｅとしてレジスタ９０５に書き込む（ステップ１００３）。そして、書き込み回路９０１は、カウンタ９０４のＦＰＧＡ＿ｃｎｔをクリアし（ステップ１００４）、レジスタ９０９のｆｉｒｓｔ＿ｐｋｔｆｌａｇをクリアする（ステップ１００５）。
【００７２】
次に、判定回路９０２は、受信部６２１からｓｅｎｓｏｒ＿ｖａｌｉｄを受信したか否かをチェックする（ステップ１００２）。ｓｅｎｓｏｒ＿ｖａｌｉｄを受信した場合（ステップ１００２，ＹＥＳ）、判定回路９０２は、レジスタ９０９のｆｉｒｓｔ＿ｐｋｔｆｌａｇをチェックする（ステップ１００６）。
【００７３】
ｆｉｒｓｔ＿ｐｋｔｆｌａｇが論理“０”である場合（ステップ１００６，ＹＥＳ）、判定回路９０２は、ｆｉｒｓｔ＿ｐｋｔｆｌａｇに論理“１”を設定する（ステップ１００９）。そして、判定回路９０２は、カウンタ９０４が出力するＦＰＧＡ＿ｃｎｔを、１ｓｔ＿ｐｋｔ＿ｃｌｋとしてレジスタ９０６に書き込む（ステップ１０１０）。
【００７４】
次に、セレクタ９０３は、ｓｅｎｓｏｒ＿ｃｎｔをレジスタ９０７へ出力し、レジスタ９０７は、ｓｅｎｓｏｒ＿ｃｎｔを１ｓｔ＿ｐｋｔ＿ｃｎｔとして記憶する（ステップ１０１１）。そして、セレクタ９０３は、ｓｅｎｓｏｒ＿ｃｎｔをレジスタ９０８へ出力し、レジスタ９０８は、ｓｅｎｓｏｒ＿ｃｎｔをｃｕｒ＿ｐｋｔ＿ｃｎｔとして記憶する（ステップ１００７）。
【００７５】
次に、減算器９１２は、ｃｕｒ＿ｐｋｔ＿ｃｎｔから１ｓｔ＿ｐｋｔ＿ｃｎｔを減算することで、カウント値の差分を求める（ステップ１００８）。そして、ＤＳＰ９１４は、レジスタ９１１のｓｅｎｓｏｒ＿ｆｒｅｑを用いて、減算器９１２が出力するカウント値の差分をＯＳ時刻の差分に変換する（ステップ１０１２）。
【００７６】
次に、ＤＳＰ９１３は、レジスタ９１０のＦＰＧＡ＿ｆｒｅｑを用いて、レジスタ９０６の１ｓｔ＿ｐｋｔ＿ｃｌｋを、受信部６２１が最初のパケットを受信したときのＯＳ時刻と、レジスタ９０５のＯＳ＿ｔｉｍｅとの差分に変換する（ステップ１０１３）。
【００７７】
次に、加算器９１５は、ＤＳＰ９１３が出力する差分を、レジスタ９０５のＯＳ＿ｔｉｍｅに加算し、加算器９１６は、ＤＳＰ９１４が出力する差分を、加算器９１５が出力する加算結果に加算する（ステップ１０１４）。これにより、Ｒｅａｌ＿ｔｉｍｅが求められる。
【００７８】
次に、カウンタ９０４は、ＦＰＧＡ＿ｃｎｔをカウントアップする（ステップ１０１５）。そして、変換部６２４−ｉは、レジスタ９１１のｓｅｎｓｏｒ＿ｆｒｅｑを更新し（ステップ１０１６）、レジスタ９１０のＦＰＧＡ＿ｆｒｅｑを更新して（ステップ１０１７）、ステップ１００１以降の処理を繰り返す。
【００７９】
ＯＳ＿ｓｙｓｔｅｍ＿ｔｉｍｅを受信していない場合（ステップ１００１，ＮＯ）、変換部６２４−ｉは、ステップ１００２以降の処理を行う。ｆｉｒｓｔ＿ｐｋｔｆｌａｇが論理“１”である場合（ステップ１００６，ＮＯ）、変換部６２４−ｉは、ステップ１００７以降の処理を行う。ｓｅｎｓｏｒ＿ｖａｌｉｄを受信していない場合（ステップ１００２，ＮＯ）、変換部６２４−ｉは、ステップ１０１５以降の処理を行う。
【００８０】
図１１は、図９の変換部６２４−ｉが行う時刻同期処理の例を示している。ＣＰＵ６１１は、所定のタイミングでＯＳ＿ｓｙｓｔｅｍ＿ｔｉｍｅを出力し、レジスタ９０５のＯＳ＿ｔｉｍｅを更新する。
【００８１】
図１１の例では、１５：００：０５、１５：００：１０、及び１５：００：１６が順番にＯＳ＿ｔｉｍｅに設定されている。タイムフレーム１１０１は、１５：００：０５から１５：００：１０までの区間を表し、タイムフレーム１１０２は、１５：００：１０から１５：００：１６までの区間を表す。
【００８２】
タイムフレーム１１０１において、受信部６２１は、ＦＰＧＡ＿ｃｎｔ＝５０のときに最初のパケットを受信し、ＦＰＧＡ＿ｃｎｔ＝７１のときに２番目のパケットを受信し、ＦＰＧＡ＿ｃｎｔ＝１２５のときに３番目のパケットを受信する。最初のパケットのｓｅｎｓｏｒ＿ｃｎｔは１０１０であり、２番目のパケットのｓｅｎｓｏｒ＿ｃｎｔは１０５０であり、３番目のパケットのｓｅｎｓｏｒ＿ｃｎｔは１１５０である。
【００８３】
この場合、２番目のパケットのｓｅｎｓｏｒ＿ｃｎｔと最初のパケットのｓｅｎｓｏｒ＿ｃｎｔとの差分“４０”が、ＯＳ時刻の差分１１１１に変換される。そして、ＦＰＧＡ＿ｃｎｔ＝５０に対応するＯＳ時刻に差分１１１１が加算されて、ｓｅｎｓｏｒ＿ｃｎｔ＝１０５０に対応するＲｅａｌ＿ｔｉｍｅが求められる。
【００８４】
また、３番目のパケットのｓｅｎｓｏｒ＿ｃｎｔと最初のパケットのｓｅｎｓｏｒ＿ｃｎｔとの差分“１４０”が、ＯＳ時刻の差分１１１２に変換される。そして、ＦＰＧＡ＿ｃｎｔ＝５０に対応するＯＳ時刻に差分１１１２が加算されて、ｓｅｎｓｏｒ＿ｃｎｔ＝１１５０に対応するＲｅａｌ＿ｔｉｍｅが求められる。
【００８５】
タイムフレーム１１０２において、受信部６２１は、ＦＰＧＡ＿ｃｎｔ＝３６のときに最初のパケットを受信し、ＦＰＧＡ＿ｃｎｔ＝７３のときに２番目のパケットを受信し、ＦＰＧＡ＿ｃｎｔ＝１１４のときに３番目のパケットを受信する。最初のパケットのｓｅｎｓｏｒ＿ｃｎｔは１２１３であり、２番目のパケットのｓｅｎｓｏｒ＿ｃｎｔは１２５５であり、３番目のパケットのｓｅｎｓｏｒ＿ｃｎｔは１２９１である。
【００８６】
タイムフレーム１１０２においても、タイムフレーム１１０１の場合と同様にして、各ｓｅｎｓｏｒ＿ｃｎｔに対応するＲｅａｌ＿ｔｉｍｅが求められる。
【００８７】
図６の情報処理システムによれば、各タイムフレーム内において受信した複数のパケットに含まれる情報に、情報取得装置６０２−ｉが情報を取得したときのＯＳ時刻を示すタイムスタンプが付加される。複数の情報それぞれに付加されたタイムスタンプの差分は正確な相対時間を表しているため、それらの情報の取得時刻を情報処理装置６０１のＯＳ時刻と同期させることができる。この場合、図３の構成のように、情報処理装置６０１から情報取得装置６０２−ｉへリセット信号を送信する必要はない。
【００８８】
また、各情報取得装置６０２−ｉが個別のタイミング信号に同期して動作している場合であっても、情報取得装置６０２−１〜情報取得装置６０２−Ｎの間で、情報の取得時刻を同期させることが可能になる。
【００８９】
図１２は、図６の第２周波数計算部６２３の構成例を示している。図１２の第２周波数計算部６２３は、書き込み回路１２０１、ロード回路（τ）１２０２、カウンタ１２０３、レジスタ１２０４〜レジスタ１２０６、減算器１２０７、減算器１２０８、ＤＳＰ１２０９、及び統計値計算回路１２１０を含む。
【００９０】
書き込み回路１２０１は、ＣＰＵ６１１からＯＳ＿ｓｙｓｔｅｍ＿ｔｉｍｅを受信すると、ロード指示をロード回路１２０２へ出力し、ＯＳ＿ｓｙｓｔｅｍ＿ｔｉｍｅをｃｕｒｒｅｎｔ＿ｔｉｍｅとしてレジスタ１２０５に書き込む。レジスタ１２０５は、ｃｕｒｒｅｎｔ＿ｔｉｍｅを減算器１２０８へ出力する。
【００９１】
そして、書き込み回路１２０１は、カウンタ１２０３をクリアして、カウント値に０を設定する。その後、カウンタ１２０３は、ＦＰＧＡ＿ｃｌｋに同期してカウント動作を行い、カウント値をレジスタ１２０４及び減算器１２０７へ出力する。
【００９２】
ロード回路１２０２は、書き込み回路１２０１が出力するロード指示に従って、ＯＳ＿ｓｙｓｔｅｍ＿ｔｉｍｅが書き込まれる直前のｃｕｒｒｅｎｔ＿ｔｉｍｅを、ｌａｓｔ＿ｔｉｍｅとしてレジスタ１２０６に書き込む。レジスタ１２０６は、ｌａｓｔ＿ｔｉｍｅを減算器１２０８へ出力する。
【００９３】
また、ロード回路１２０２は、書き込み回路１２０１が出力するロード指示に従って、カウンタ１２０３がクリアされる直前のカウント値を、レジスタ１２０４に書き込む。レジスタ１２０４は、カウント値を減算器１２０７へ出力する。
【００９４】
減算器１２０７は、レジスタ１２０４が出力するカウント値から、カウンタ１２０３が出力するカウント値を減算することで、カウント値の差分を求め、ＤＳＰ１２０９へ出力する。減算器１２０８は、レジスタ１２０５が出力するｃｕｒｒｅｎｔ＿ｔｉｍｅから、レジスタ１２０６が出力するｌａｓｔ＿ｔｉｍｅを減算することで、ＯＳ時刻の差分を求め、ＤＳＰ１２０９へ出力する。
【００９５】
ＤＳＰ１２０９は、減算器１２０７が出力する差分を、減算器１２０８が出力する差分で除算することで、ＦＰＧＡ＿ｃｌｋの周波数を求め、統計値計算回路１２１０へ出力する。統計値計算回路１２１０は、ＤＳＰ１２０９が出力する複数の周波数の統計値を求め、求めた統計値をＦＰＧＡ＿ｆｒｅｑとして出力する。統計値としては、平均値、中央値、最頻値等を用いることができる。統計値を求める必要がない場合は、統計値計算回路１２１０を省略してもよい。
【００９６】
図１２の第２周波数計算部６２３によれば、環境の変化によって、時刻同期部６１３内のクロック信号ＦＰＧＡ＿ｃｌｋの周波数が変動する場合であっても、正確な周波数を求めることができる。そして、求められた周波数を用いることで、図９のＲｅａｌ＿ｔｉｍｅを補正することが可能になる。
【００９７】
図１３は、図６の第１周波数計算部６２２−ｉの構成例を示している。図１３の第１周波数計算部６２２−ｉは、カウンタ１３０１、レジスタ１３０２〜レジスタ１３０４、減算器１３０５、減算器１３０６、ＤＳＰ１３０７、ＤＳＰ１３０８、及び統計値計算回路１３０９を含む。
【００９８】
カウンタ１３０１は、ＦＰＧＡ＿ｃｌｋに同期してカウント動作を行い、カウント値ＦＰＧＡ＿ｃｕｒ＿ｃｌｋをレジスタ１３０２及び減算器１３０５へ出力する。第１周波数計算部６２２−ｉは、受信部６２１からｓｅｎｓｏｒ＿ｖａｌｉｄを受信したとき、カウンタ１３０１が出力するＦＰＧＡ＿ｃｕｒ＿ｃｌｋを、ＦＰＧＡ＿ｌａｓｔ＿ｃｌｋとしてレジスタ１３０２に書き込む。レジスタ１３０２は、ＦＰＧＡ＿ｌａｓｔ＿ｃｌｋを減算器１３０５へ出力する。
【００９９】
レジスタ１３０３は、受信部６２１が出力するｓｅｎｓｏｒ＿ｃｎｔを、ｓｅｎｓｏｒ＿ｃｕｒ＿ｃｌｋとして記憶し、ｓｅｎｓｏｒ＿ｃｕｒ＿ｃｌｋを減算器１３０６へ出力する。第１周波数計算部６２２−ｉは、受信部６２１からｓｅｎｓｏｒ＿ｖａｌｉｄを受信したとき、レジスタ１３０３のｓｅｎｓｏｒ＿ｃｕｒ＿ｃｌｋを、ｓｅｎｓｏｒ＿ｌａｓｔ＿ｃｌｋとしてレジスタ１３０４に書き込む。レジスタ１３０４は、ｓｅｎｓｏｒ＿ｌａｓｔ＿ｃｌｋを減算器１３０６へ出力する。
【０１００】
減算器１３０５は、カウンタ１３０１が出力するＦＰＧＡ＿ｃｕｒ＿ｃｌｋから、レジスタ１３０２が出力するＦＰＧＡ＿ｌａｓｔ＿ｃｌｋを減算することで、カウント値の差分を求め、ＤＳＰ１３０７へ出力する。減算器１３０６は、レジスタ１３０３が出力するｓｅｎｓｏｒ＿ｃｕｒ＿ｃｌｋから、レジスタ１３０４が出力するｓｅｎｓｏｒ＿ｌａｓｔ＿ｃｌｋを減算することで、ｓｅｎｓｏｒ＿ｃｎｔの差分を求め、ＤＳＰ１３０７へ出力する。
【０１０１】
ＤＳＰ１３０７は、減算器１３０６が出力する差分を、減算器１３０５が出力する差分で除算し、除算結果をＤＳＰ１３０８へ出力する。ＤＳＰ１３０８は、ＤＳＰ１３０７が出力する除算結果に、第２周波数計算部６２３が出力するＦＰＧＡ＿ｆｒｅｑを乗算することで、情報取得装置６０２−ｉ内のタイミング信号の周波数を求め、統計値計算回路１３０９へ出力する。統計値計算回路１３０９は、ＤＳＰ１３０８が出力する複数の周波数の統計値を求め、求めた統計値をｓｅｎｓｏｒ＿ｆｒｅｑとして出力する。統計値としては、平均値、中央値、最頻値等を用いることができる。統計値を求める必要がない場合は、統計値計算回路１３０９を省略してもよい。
【０１０２】
図１３の第１周波数計算部６２２−ｉによれば、環境の変化によって、情報取得装置６０２−ｉ内のタイミング信号の周波数が変動する場合であっても、正確な周波数を求めることができる。そして、求められた周波数を用いることで、図９のＲｅａｌ＿ｔｉｍｅを補正することが可能になる。
【０１０３】
図１４は、図１２の第２周波数計算部６２３によって計算される、クロック信号ＦＰＧＡ＿ｃｌｋの周波数ＦＰＧＡ＿ｆｒｅｑの例を示している。この例では、統計値計算回路１２１０による統計値計算は省略されている。図１４のＳｕｂ出力は、減算器１２０７が出力するカウント値の差分を表す。ＦＰＧＡ＿ｆｒｅｑは、次式により計算される。
ＦＰＧＡ＿ｆｒｅｑ
＝Ｓｕｂ出力／（ｃｕｒｒｅｎｔ＿ｔｉｍｅ−ｌａｓｔ＿ｔｉｍｅ）      （１）
【０１０４】
図１１の時刻同期処理において、ＯＳ＿ｔｉｍｅ＝１５：００：０５のとき、Ｓｕｂ出力＝１１０００である。次に、ＯＳ＿ｔｉｍｅ＝１５：００：１０のとき、カウンタ１２０３、レジスタ１２０４、ｃｕｒｒｅｎｔ＿ｔｉｍｅ、及びｌａｓｔ＿ｔｉｍｅの値は、以下のようになる。
カウンタ１２０３  ０００００
レジスタ１２０４  １００００
ｃｕｒｒｅｎｔ＿ｔｉｍｅ  １５：００：１０
ｌａｓｔ＿ｔｉｍｅ  １５：００：０５
【０１０５】
この場合、Ｓｕｂ出力＝１００００となり、ＦＰＧＡ＿ｆｒｅｑは、次式により計算される。
ＦＰＧＡ＿ｆｒｅｑ＝１００００／（１０−５）＝２０００［Ｈｚ］      （２）
【０１０６】
次に、ＯＳ＿ｔｉｍｅ＝１５：００：１６のとき、カウンタ１２０３、レジスタ１２０４、ｃｕｒｒｅｎｔ＿ｔｉｍｅ、及びｌａｓｔ＿ｔｉｍｅの値は、以下のようになる。
カウンタ１２０３  ０００００
レジスタ１２０４  １１０００
ｃｕｒｒｅｎｔ＿ｔｉｍｅ  １５：００：１６
ｌａｓｔ＿ｔｉｍｅ  １５：００：１０
【０１０７】
この場合、Ｓｕｂ出力＝１１０００となり、ＦＰＧＡ＿ｆｒｅｑは、次式により計算される。
ＦＰＧＡ＿ｆｒｅｑ＝１１０００／（１６−１０）＝１８３３［Ｈｚ］      （３）
【０１０８】
図１５は、図１３の第１周波数計算部６２２−ｉによって計算される、タイミング信号の周波数ｓｅｎｓｏｒ＿ｆｒｅｑの例を示している。この例では、統計値計算回路１３０９による統計値計算は省略されている。ｓｅｎｓｏｒ＿ｆｒｅｑは、次式により計算される。
ｓｅｎｓｏｒ＿ｆｒｅｑ
＝｛（ｓｅｎｓｏｒ＿ｃｕｒ＿ｃｌｋ−ｓｅｎｓｏｒ＿ｌａｓｔ＿ｃｌｋ）
／（ＦＰＧＡ＿ｃｕｒ＿ｃｌｋ−ＦＰＧＡ＿ｌａｓｔ＿ｃｌｋ）｝
＊ＦＰＧＡ＿ｆｒｅｑ                                                （４）
【０１０９】
図１１のタイムフレーム１１０１において、最初のパケットを受信したとき、ｓｅｎｓｏｒ＿ｃｎｔ、ＦＰＧＡ＿ｃｕｒ＿ｃｌｋ、及びＦＰＧＡ＿ｆｒｅｑの値は、以下のようになる。
ｓｅｎｓｏｒ＿ｃｎｔ＝１０１０
ＦＰＧＡ＿ｃｕｒ＿ｃｌｋ＝２０５０
ＦＰＧＡ＿ｆｒｅｑ＝２０００
【０１１０】
次に、２番目のパケットを受信したとき、ｓｅｎｓｏｒ＿ｃｎｔ、ＦＰＧＡ＿ｃｕｒ＿ｃｌｋ、ＦＰＧＡ＿ｌａｓｔ＿ｃｌｋ、ｓｅｎｓｏｒ＿ｃｕｒ＿ｃｌｋ、ｓｅｎｓｏｒ＿ｌａｓｔ＿ｃｌｋ、及びＦＰＧＡ＿ｆｒｅｑの値は、以下のようになる。
ｓｅｎｓｏｒ＿ｃｎｔ＝１０５０
ＦＰＧＡ＿ｃｕｒ＿ｃｌｋ＝２０７１
ＦＰＧＡ＿ｌａｓｔ＿ｃｌｋ＝２０５０
ｓｅｎｓｏｒ＿ｃｕｒ＿ｃｌｋ＝１０５０
ｓｅｎｓｏｒ＿ｌａｓｔ＿ｃｌｋ＝１０１０
ＦＰＧＡ＿ｆｒｅｑ＝２０００
【０１１１】
この場合、ｓｅｎｓｏｒ＿ｆｒｅｑは、次式により計算される。
ｓｅｎｓｏｒ＿ｆｒｅｑ
＝｛（１０５０−１０１０）／（２０７１−２０５０）｝＊２０００
＝３８１０［Ｈｚ］                                                    （５）
【０１１２】
次に、３番目のパケットを受信したとき、ｓｅｎｓｏｒ＿ｃｎｔ、ＦＰＧＡ＿ｃｕｒ＿ｃｌｋ、ＦＰＧＡ＿ｌａｓｔ＿ｃｌｋ、ｓｅｎｓｏｒ＿ｃｕｒ＿ｃｌｋ、ｓｅｎｓｏｒ＿ｌａｓｔ＿ｃｌｋ、及びＦＰＧＡ＿ｆｒｅｑの値は、以下のようになる。
ｓｅｎｓｏｒ＿ｃｎｔ＝１１５０
ＦＰＧＡ＿ｃｕｒ＿ｃｌｋ＝２１２５
ＦＰＧＡ＿ｌａｓｔ＿ｃｌｋ＝２０７１
ｓｅｎｓｏｒ＿ｃｕｒ＿ｃｌｋ＝１１５０
ｓｅｎｓｏｒ＿ｌａｓｔ＿ｃｌｋ＝１０５０
ＦＰＧＡ＿ｆｒｅｑ＝２０００
【０１１３】
この場合、ｓｅｎｓｏｒ＿ｆｒｅｑは、次式により計算される。
ｓｅｎｓｏｒ＿ｆｒｅｑ
＝｛（１１５０−１０５０）／（２１２５−２０７１）｝＊２０００
＝３７０４［Ｈｚ］                                                    （６）
【０１１４】
図１６は、図９の変換部６２４−ｉによって計算されるＯＳ時刻Ｒｅａｌ＿ｔｉｍｅの例を示している。Ｒｅａｌ＿ｔｉｍｅは、次式により計算される。
Ｒｅａｌ＿ｔｉｍｅ
＝（ｃｕｒ＿ｐｋｔ＿ｃｎｔ−１ｓｔ＿ｐｋｔ＿ｃｎｔ）／ｓｅｎｓｏｒ＿ｆｒｅｑ
＋１ｓｔ＿ｐｋｔ＿ｃｌｋ／ＦＰＧＡ＿ｆｒｅｑ＋ＯＳ＿ｔｉｍｅ
（７）
【０１１５】
図１１の時刻同期処理において、ＯＳ＿ｔｉｍｅ＝１５：００：０５のとき、１ｓｔ＿ｐｋｔ＿ｃｌｋ、ｆｉｒｓｔ＿ｐｋｔｆｌａｇ、ＦＰＧＡ＿ｆｒｅｑ、及びｓｅｎｓｏｒ＿ｆｒｅｑの値は、以下のようになる。
１ｓｔ＿ｐｋｔ＿ｃｌｋ＝０
ｆｉｒｓｔ＿ｐｋｔｆｌａｇ＝０
ＦＰＧＡ＿ｆｒｅｑ＝２０００
ｓｅｎｓｏｒ＿ｆｒｅｑ＝４０００
【０１１６】
次に、最初のパケットを受信したとき、ｓｅｎｓｏｒ＿ｃｎｔ、１ｓｔ＿ｐｋｔ＿ｃｌｋ、ｆｉｒｓｔ＿ｐｋｔｆｌａｇ、１ｓｔ＿ｐｋｔ＿ｃｎｔ、ｃｕｒ＿ｐｋｔ＿ｃｎｔ、ＦＰＧＡ＿ｆｒｅｑ、及びｓｅｎｓｏｒ＿ｆｒｅｑの値は、以下のようになる。
ｓｅｎｓｏｒ＿ｃｎｔ＝１０１０
１ｓｔ＿ｐｋｔ＿ｃｌｋ＝５０
ｆｉｒｓｔ＿ｐｋｔｆｌａｇ＝１
１ｓｔ＿ｐｋｔ＿ｃｎｔ＝１０１０
ｃｕｒ＿ｐｋｔ＿ｃｎｔ＝１０１０
ＦＰＧＡ＿ｆｒｅｑ＝２０００
ｓｅｎｓｏｒ＿ｆｒｅｑ＝４０００
【０１１７】
この場合、Ｒｅａｌ＿ｔｉｍｅは、次式により計算される。
Ｒｅａｌ＿ｔｉｍｅ
＝（１０１０−１０１０）／４０００＋５０／２０００＋１５：００：０５
＝１５：００：０５：０２５                                            （８）
【０１１８】
次に、２番目のパケットを受信したとき、ｓｅｎｓｏｒ＿ｃｎｔ、１ｓｔ＿ｐｋｔ＿ｃｌｋ、ｆｉｒｓｔ＿ｐｋｔｆｌａｇ、１ｓｔ＿ｐｋｔ＿ｃｎｔ、ｃｕｒ＿ｐｋｔ＿ｃｎｔ、ＦＰＧＡ＿ｆｒｅｑ、及びｓｅｎｓｏｒ＿ｆｒｅｑの値は、以下のようになる。
ｓｅｎｓｏｒ＿ｃｎｔ＝１０５０
１ｓｔ＿ｐｋｔ＿ｃｌｋ＝５０
ｆｉｒｓｔ＿ｐｋｔｆｌａｇ＝１
１ｓｔ＿ｐｋｔ＿ｃｎｔ＝１０１０
ｃｕｒ＿ｐｋｔ＿ｃｎｔ＝１０５０
ＦＰＧＡ＿ｆｒｅｑ＝２０００
ｓｅｎｓｏｒ＿ｆｒｅｑ＝３８１０
【０１１９】
この場合、Ｒｅａｌ＿ｔｉｍｅは、次式により計算される。
Ｒｅａｌ＿ｔｉｍｅ
＝（１０５０−１０１０）／３８１０＋５０／２０００＋１５：００：０５
＝１５：００：０５：０３５                                            （９）
【０１２０】
次に、３番目のパケットを受信したとき、ｓｅｎｓｏｒ＿ｃｎｔ、１ｓｔ＿ｐｋｔ＿ｃｌｋ、ｆｉｒｓｔ＿ｐｋｔｆｌａｇ、１ｓｔ＿ｐｋｔ＿ｃｎｔ、ｃｕｒ＿ｐｋｔ＿ｃｎｔ、ＦＰＧＡ＿ｆｒｅｑ、及びｓｅｎｓｏｒ＿ｆｒｅｑの値は、以下のようになる。
ｓｅｎｓｏｒ＿ｃｎｔ＝１１５０
１ｓｔ＿ｐｋｔ＿ｃｌｋ＝５０
ｆｉｒｓｔ＿ｐｋｔｆｌａｇ＝１
１ｓｔ＿ｐｋｔ＿ｃｎｔ＝１０１０
ｃｕｒ＿ｐｋｔ＿ｃｎｔ＝１１５０
ＦＰＧＡ＿ｆｒｅｑ＝２０００
ｓｅｎｓｏｒ＿ｆｒｅｑ＝３７０４
【０１２１】
この場合、Ｒｅａｌ＿ｔｉｍｅは、次式により計算される。
Ｒｅａｌ＿ｔｉｍｅ
＝（１１５０−１０１０）／３７０４＋５０／２０００＋１５：００：０５
＝１５：００：０５：０６３                                          （１０）
【０１２２】
ところで、通信ネットワーク６０３において障害等が発生した場合、情報取得装置６０２−ｉから送信されたセンサデータのパケットが消失して、情報処理装置６０１に到達しないことがある。このような場合であっても、時刻同期部６１３は、情報処理装置６０１に到達したパケットに含まれる情報に対して、タイムスタンプを付加することが可能である。
【０１２３】
図１７は、通信ネットワーク６０３におけるパケット消失時の時刻同期処理の例を示している。図１７（ａ）は、図１１のタイムフレーム１１０１において、最初のパケットが消失した場合の時刻同期処理の例を示している。
【０１２４】
図１７（ａ）のタイムフレーム１１０１において、最初のパケットが消失した場合、受信部６２１は、ＦＰＧＡ＿ｃｎｔ＝７１のときに２番目のパケットを受信し、ＦＰＧＡ＿ｃｎｔ＝１２５のときに３番目のパケットを受信する。
【０１２５】
この場合、３番目のパケットのｓｅｎｓｏｒ＿ｃｎｔと２番目のパケットのｓｅｎｓｏｒ＿ｃｎｔとの差分“１００”が、ＯＳ時刻の差分１７０１に変換される。そして、ＦＰＧＡ＿ｃｎｔ＝７１に対応するＯＳ時刻に差分１７０１が加算されて、ｓｅｎｓｏｒ＿ｃｎｔ＝１１５０に対応するＲｅａｌ＿ｔｉｍｅが求められる。
【０１２６】
図１７（ｂ）は、図１１のタイムフレーム１１０１において、２番目のパケットが消失した場合の時刻同期処理の例を示している。
【０１２７】
図１７（ｂ）のタイムフレーム１１０１において、２番目のパケットが消失した場合、受信部６２１は、ＦＰＧＡ＿ｃｎｔ＝５０のときに最初のパケットを受信し、ＦＰＧＡ＿ｃｎｔ＝１２５のときに３番目のパケットを受信する。
【０１２８】
この場合、３番目のパケットのｓｅｎｓｏｒ＿ｃｎｔと最初のパケットのｓｅｎｓｏｒ＿ｃｎｔとの差分“１４０”が、ＯＳ時刻の差分１１１２に変換される。そして、ＦＰＧＡ＿ｃｎｔ＝５０に対応するＯＳ時刻に差分１１１２が加算されて、ｓｅｎｓｏｒ＿ｃｎｔ＝１１５０に対応するＲｅａｌ＿ｔｉｍｅが求められる。
【０１２９】
このように、図６の情報処理システムによれば、タイムフレーム内のいずれのパケットが消失した場合であっても、いずれかのパケットを受信したＯＳ時刻を基準として、後続するパケットに含まれる情報にタイムスタンプを付加することができる。
【０１３０】
図１８は、ソフトウェア制御による時刻同期部６１３の構成例を示している。図１８の時刻同期部６１３は、ＣＰＵ１８０１、メモリ１８０２、及びインタフェース１８０３を含むコンピュータである。
【０１３１】
メモリ１８０２は、例えば、ＲＯＭ（Read Only Memory）、ＲＡＭ（Random Access Memory）、フラッシュメモリ等の半導体メモリであり、処理に用いられるプログラム及びデータを格納する。メモリ１８０２は、図４の記憶部４１１として用いることができる。
【０１３２】
ＣＰＵ１８０１（プロセッサ）は、例えば、メモリ１８０２を利用してプログラムを実行することにより、図４の受信時刻変換部４１３、時刻情報変換部４１４、及び付加部４１５として動作する。ＣＰＵ１８０１は、メモリ１８０２を利用してプログラムを実行することにより、第１周波数計算部、第２周波数計算部、減算部、第１差分計算部、第１加算部、第２差分計算部、及び第２加算部としても動作する。
【０１３３】
インタフェース１８０３は、通信ネットワーク６０３に接続され、通信に伴うデータ変換を行う通信インタフェース回路である。時刻同期部６１３は、プログラム及びデータを外部の装置からインタフェース１８０３を介して受信し、それらをメモリ１８０２にロードして使用することができる。インタフェース１８０３は、図４の受信部４１２又は図６の受信部６２１として用いることができる。
【０１３４】
図１８の時刻同期部６１３は、さらに、可搬型記録媒体を駆動する媒体駆動装置を含んでいてもよい。可搬型記録媒体は、メモリデバイス、フレキシブルディスク、光ディスク、光磁気ディスク等である。可搬型記録媒体は、ＣＤ−ＲＯＭ（Compact Disk Read Only Memory）、ＤＶＤ（Digital Versatile Disk）、ＵＳＢ（Universal Serial Bus）メモリ等であってもよい。オペレータ又はユーザは、この可搬型記録媒体にプログラム及びデータを格納しておき、それらをメモリ１８０２にロードして使用することができる。
【０１３５】
このように、処理に用いられるプログラム及びデータを格納するコンピュータ読み取り可能な記録媒体は、メモリ１８０２又は可搬型記録媒体のような、物理的な（非一時的な）記録媒体である。
【０１３６】
図４の情報処理装置４０１の構成は一例に過ぎず、情報処理装置４０１の用途又は条件に応じて一部の構成要素を省略又は変更してもよい。
【０１３７】
図６の情報処理システムの構成は一例に過ぎず、情報処理システムの用途又は条件に応じて一部の構成要素を省略又は変更してもよい。例えば、時刻同期部６１３内のクロック信号の周波数があまり変動せず、第１周波数計算部６２２−ｉ及び変換部６２４−ｉがその周波数を示す固定値を保持している場合は、第２周波数計算部６２３を省略することができる。情報取得装置６０２−ｉ内のタイミング信号の周波数があまり変動せず、変換部６２４−ｉがその周波数を示す固定値を保持している場合は、第１周波数計算部６２２−ｉを省略することができる。
【０１３８】
情報取得装置６０２−１〜情報取得装置６０２−Ｎは、情報処理装置６０１内に設けられていてもよい。
【０１３９】
図７のセンサモジュール７０１及び図８のビデオモジュール８０１の構成は一例に過ぎず、情報処理システムの用途又は条件に応じて一部の構成要素を省略又は変更してもよい。図７の圧力センサ７１１の代わりに、温度センサ、湿度センサ、風力センサ等を用いることもできる。
【０１４０】
図９の変換部６２４−ｉ、図１２の第２周波数計算部６２３、図１３の第１周波数計算部６２２−ｉ、及び図１８の時刻同期部６１３の構成は一例に過ぎず、情報処理システムの用途又は条件に応じて一部の構成要素を省略又は変更してもよい。
【０１４１】
図５、図１０Ａ、及び図１０Ｂのフローチャートは一例に過ぎず、変換部６２４−ｉの構成又は条件に応じて一部の処理を省略又は変更してもよい。
【０１４２】
図１１及び図１７に示した時刻同期処理は一例に過ぎず、ｓｅｎｓｏｒ＿ｃｎｔ、ＦＰＧＡ＿ｃｎｔ、及びＯＳ＿ｔｉｍｅは、情報取得装置６０２−ｉが取得する情報に応じて変化する。図１４〜図１６に示した計算結果は一例に過ぎず、計算結果は、情報取得装置６０２−ｉが取得する情報に応じて変化する。
【０１４３】
式（１）〜式（１０）の計算式は一例に過ぎず、情報処理装置６０１の構成又は条件に応じて別の計算式を用いてもよい。
【０１４４】
開示の実施形態とその利点について詳しく説明したが、当業者は、特許請求の範囲に明確に記載した本発明の範囲から逸脱することなく、様々な変更、追加、省略をすることができるであろう。
【０１４５】
図２乃至図１８を参照しながら説明した実施形態に関し、さらに以下の付記を開示する。
（付記１）
第１システム時刻を記憶する記憶部と、
前記記憶部に前記第１システム時刻が書き込まれた後に、情報取得装置から、前記情報取得装置が取得した第１情報と、前記第１情報の取得時刻を示す第１時刻情報とを受信し、前記第１情報と前記第１時刻情報とを受信した後に、前記情報取得装置から、第２情報と前記第２情報の取得時刻を示す第２時刻情報とを受信する受信部と、
前記第１システム時刻に基づいて、前記受信部が前記第１情報と前記第１時刻情報とを受信した受信時刻を、第２システム時刻に変換する受信時刻変換部と、
前記第２システム時刻と前記第１時刻情報とに基づいて、前記第２時刻情報を第３システム時刻に変換する時刻情報変換部と、
前記第２システム時刻を前記第１情報に付加し、前記第３システム時刻を前記第２情報に付加する付加部と、
を備えることを特徴とする情報処理装置。
（付記２）
前記時刻情報変換部は、
前記第２時刻情報と前記第１時刻情報との差分を生成する減算部と、
前記第２時刻情報と前記第１時刻情報との差分から、前記第３システム時刻と前記第２システム時刻との差分を計算する第１差分計算部と、
前記第３システム時刻と前記第２システム時刻との差分を前記第２システム時刻に加算することで、前記第３システム時刻を求める第１加算部と、
を含むことを特徴とする付記１記載の情報処理装置。
（付記３）
前記第２時刻情報と前記第１時刻情報との差分と、クロック信号と、前記クロック信号の周波数とを用いて、前記情報取得装置において取得時刻を生成するタイミング信号の周波数を計算する第１周波数計算部をさらに備え、
前記受信時刻変換部は、前記受信部が前記第１情報と前記第１時刻情報とを受信したときに、前記クロック信号に基づいて特定された時刻を、前記受信時刻として用い、
前記第１差分計算部は、前記第２時刻情報と前記第１時刻情報との差分と、前記タイミング信号の周波数とを用いて、前記第３システム時刻と前記第２システム時刻との差分を計算することを特徴とする付記２記載の情報処理装置。
（付記４）
前記受信時刻変換部は、
前記受信時刻と前記クロック信号の周波数とを用いて、前記第２システム時刻と前記第１システム時刻との差分を計算する第２差分計算部と、
前記第２システム時刻と前記第１システム時刻との差分を前記第１システム時刻に加算することで、前記第２システム時刻を求める第２加算部と、
を含むことを特徴とする付記３記載の情報処理装置。
（付記５）
前記第１システム時刻と前記クロック信号とを用いて、前記クロック信号の周波数を計算する第２周波数計算部をさらに備えることを特徴とする付記４記載の情報処理装置。
（付記６）
前記受信部は、前記記憶部に前記第１システム時刻が書き込まれた後に、複数の情報取得装置のうちいずれかの情報取得装置から、前記いずれかの情報取得装置が取得した第１情報と第１時刻情報とを受信し、前記第１情報と前記第１時刻情報とを受信した後に、前記いずれかの情報取得装置から、第２情報と第２時刻情報とを受信し、
前記付加部は、前記第２システム時刻を前記いずれかの情報取得装置から受信した第１情報に付加し、前記第３システム時刻を前記いずれかの情報取得装置から受信した第２情報に付加することを特徴とする付記１乃至５のいずれか１項に記載の情報処理装置。
（付記７）
情報処理装置によって実行される時刻同期方法であって、
前記情報処理装置が、
第１システム時刻が記憶部に書き込まれた後に、情報取得装置から、前記情報取得装置が取得した第１情報と、前記第１情報の取得時刻を示す第１時刻情報とを受信し、
前記第１情報と前記第１時刻情報とを受信した後に、前記情報取得装置から、第２情報と前記第２情報の取得時刻を示す第２時刻情報とを受信し、
前記第１システム時刻に基づいて、前記第１情報と前記第１時刻情報とを受信した受信時刻を、第２システム時刻に変換し、
前記第２システム時刻と前記第１時刻情報とに基づいて、前記第２時刻情報を第３システム時刻に変換し、
前記第２システム時刻を前記第１情報に付加し、
前記第３システム時刻を前記第２情報に付加する、
ことを特徴とする時刻同期方法。
（付記８）
前記情報処理装置は、
前記第２時刻情報と前記第１時刻情報との差分を生成し、
前記第２時刻情報と前記第１時刻情報との差分から、前記第３システム時刻と前記第２システム時刻との差分を計算し、
前記第３システム時刻と前記第２システム時刻との差分を前記第２システム時刻に加算することで、前記第３システム時刻を求めることを特徴とする付記７記載の時刻同期方法。
（付記９）
前記情報処理装置は、
前記第２時刻情報と前記第１時刻情報との差分と、クロック信号と、前記クロック信号の周波数とを用いて、前記情報取得装置において取得時刻を生成するタイミング信号の周波数を計算し、
前記第１情報と前記第１時刻情報とを受信したときに、前記クロック信号に基づいて特定された時刻を、前記受信時刻として用い、
前記第２時刻情報と前記第１時刻情報との差分と、前記タイミング信号の周波数とを用いて、前記第３システム時刻と前記第２システム時刻との差分を計算することを特徴とする付記８記載の時刻同期方法。
（付記１０）
前記情報処理装置は、
前記受信時刻と前記クロック信号の周波数とを用いて、前記第２システム時刻と前記第１システム時刻との差分を計算し、
前記第２システム時刻と前記第１システム時刻との差分を前記第１システム時刻に加算することで、前記第２システム時刻を求めることを特徴とする付記９記載の時刻同期方法。
（付記１１）
第１システム時刻が記憶部に書き込まれた後に、情報取得装置から、前記情報取得装置が取得した第１情報と、前記第１情報の取得時刻を示す第１時刻情報とを受信し、
前記第１情報と前記第１時刻情報とを受信した後に、前記情報取得装置から、第２情報と前記第２情報の取得時刻を示す第２時刻情報とを受信し、
前記第１システム時刻に基づいて、前記第１情報と前記第１時刻情報とを受信した受信時刻を、第２システム時刻に変換し、
前記第２システム時刻と前記第１時刻情報とに基づいて、前記第２時刻情報を第３システム時刻に変換し、
前記第２システム時刻を前記第１情報に付加し、
前記第３システム時刻を前記第２情報に付加する、
処理をコンピュータに実行させるための時刻同期プログラム。
（付記１２）
前記コンピュータは、
前記第２時刻情報と前記第１時刻情報との差分を生成し、
前記第２時刻情報と前記第１時刻情報との差分から、前記第３システム時刻と前記第２システム時刻との差分を計算し、
前記第３システム時刻と前記第２システム時刻との差分を前記第２システム時刻に加算することで、前記第３システム時刻を求めることを特徴とする付記１１記載の時刻同期プログラム。
（付記１３）
前記コンピュータは、
前記第２時刻情報と前記第１時刻情報との差分と、クロック信号と、前記クロック信号の周波数とを用いて、前記情報取得装置において取得時刻を生成するタイミング信号の周波数を計算し、
前記第１情報と前記第１時刻情報とを受信したときに、前記クロック信号に基づいて特定された時刻を、前記受信時刻として用い、
前記第２時刻情報と前記第１時刻情報との差分と、前記タイミング信号の周波数とを用いて、前記第３システム時刻と前記第２システム時刻との差分を計算することを特徴とする付記１２記載の時刻同期プログラム。
（付記１４）
前記コンピュータは、
前記受信時刻と前記クロック信号の周波数とを用いて、前記第２システム時刻と前記第１システム時刻との差分を計算し、
前記第２システム時刻と前記第１システム時刻との差分を前記第１システム時刻に加算することで、前記第２システム時刻を求めることを特徴とする付記１３記載の時刻同期プログラム。
【符号の説明】
【０１４６】
１０１、４０１、６０１  情報処理装置
１０２−１、１０２−２  センサ
１２１−１〜１２１−４、１２２−１〜１２２−４  データ
１１１、２０１、３０１  ＦＰＧＡ
２０２  ＯＳ
２１１  割り込みコントローラ
２１２、３１１  ＭＭＩＯレジスタ
２１３  検出部
２２１  ＯＳ時刻
３１２  加算部
４０２、６０２−１〜６０２−Ｎ  情報取得装置
４１１  記憶部
４１２、６２１  受信部
４１３  受信時刻変換部
４１４  時刻情報変換部
４１５、６２５  付加部
６０３  通信ネットワーク
６１１  ＣＰＵ
６１２  メモリ
６１３  時刻同期部
６２２−１〜６２２−Ｎ  第１周波数計算部
６２３  第２周波数計算部
６２４−１〜６２４−Ｎ  変換部
７０１  センサモジュール
７１１  圧力センサ
７１２、８１２  水晶振動子
７１３、８１３  ＡＤコンバータ
７１４、８１４、９０４、１２０３、１３０１  カウンタ
７１５、８１５、９０１、１２０１  書き込み回路
７１６、８１６  データバッファ
７１７  Ｉ２Ｃバスマスタ
７２１  情報
８０１  ビデオモジュール
８１１  撮像装置
８２１  画像情報
９０２  判定回路
９０３  セレクタ
９０５〜９１１、１２０４〜１２０６、１３０２〜１３０４  レジスタ
９１２、１２０７、１２０８、１３０５、１３０６  減算器
９１３、９１４、１２０９、１３０７、１３０８  ＤＳＰ
９１５、９１６  加算器
１１０１、１１０２  タイムフレーム
１１１１、１１１２、１７０１  ＯＳ時刻の差分
１２０２  ロード回路
１２１０、１３０９  統計値計算回路
１８０１  ＣＰＵ
１８０２  メモリ
１８０３  インタフェース
【図１】
2020112412.tif 000003
【図２】
2020112412.tif 000004
【図３】
2020112412.tif 000005
【図４】
2020112412.tif 000006
【図５】
2020112412.tif 000007
【図６】
2020112412.tif 000008
【図７】
2020112412.tif 000009
【図８】
2020112412.tif 000010
【図９】
2020112412.tif 000011
【図１０Ａ】
2020112412.tif 000012
【図１０Ｂ】
2020112412.tif 000013
【図１１】
2020112412.tif 000014
【図１２】
2020112412.tif 000015
【図１３】
2020112412.tif 000016
【図１４】
2020112412.tif 000017
【図１５】
2020112412.tif 000018
【図１６】
2020112412.tif 000019
【図１７】
2020112412.tif 000020
【図１８】
2020112412.tif 000021