(57)【要約】      （修正有）【課題】桁上がりのカウント値を読み間違えないシステムタイマおよび同システムタイマを備えた測量機を提供する。【解決手段】システムタイマ１０は、ＣＰＵ１の動作クロック２を原振とし、それぞれ同一周期の割り込み処理で桁上がりをカウントし、割り込み処理のタイミングがそれぞれ異なる複数のタイマ４、５を備え、複数のタイマのうち、時刻取得時に割り込み処理が発生していないタイマの桁上がりのカウント値を読み取る。【選択図】図１
2018141678.tif 000002
【特許請求の範囲】
【請求項１】
ＣＰＵの動作クロックを原振とし、それぞれ同一周期の割り込み処理で桁上がりをカウントし、割り込み処理のタイミングがそれぞれ異なる複数のタイマを備え、
前記複数のタイマのうち、時刻取得時に割り込み処理が発生していないタイマの桁上がりのカウント値が読み取られる
ことを特徴とするシステムタイマ。
【請求項２】
ＣＰＵの動作クロックを原振とする主タイマと、
前記ＣＰＵの動作クロックを原振とし、前記主タイマと同一周期の割り込み処理で桁上がりをカウントし、カウント値の初期値が前記主タイマから半周期ずれた状態でスタートされる副タイマと、を備え、
前記主タイマのカウント値が周期の１／４未満の時は副タイマの桁上がりのカウント値が読み取られ、
前記主タイマのカウント値が周期の１／４以上３／４未満の時は主タイマの桁上がりのカウント値が読み取られ、
前記主タイマのカウント値が周期の３／４以上の時は副タイマの桁上がりのカウント値が読み取られる
ことを特徴とするシステムタイマ。
【請求項３】
ＵＴＣ時刻を取得可能なＧＰＳモジュールと、
測距および測角を行う測量モジュールと、
前記測量モジュールおよび前記ＧＰＳモジュールを制御するＣＰＵと、
前記ＣＰＵの動作クロックを原振とし、それぞれ同一周期の割り込み処理で桁上がりをカウントし、割り込み処理のタイミングがそれぞれ異なる複数のタイマを備えたシステムタイマと、
前記ＧＰＳモジュールからＰＰＳ信号を受信し、前記ＰＰＳ信号の割り込みが入ったタイミングの前記システムタイマの時刻を取得し、前記システムタイマの時間のズレを補正して秒以上のＵＴＣ時刻を更新するＵＴＣ時刻演算部と、
前記測量モジュールから測量値を取得したタイミングで通知信号を受信し、前記通知信号の割り込みが入ったタイミングの前記システムタイマの時刻および前記ＵＴＣ時刻演算部の時刻を取得し、前記通知信号にＵＴＣ時刻を付加する測量時刻演算部と、
を備えることを特徴とする測量機。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、システムタイマおよび同システムタイマを備えた測量機に関する。
【背景技術】
【０００２】
図９は、システムタイマの基本動作を示すタイミングチャートである。システムタイマは、ハードウェアのクロックパルスをカウントするカウント値(Ｃｏｕｎｔ_Ａ０)と、一定周期で割り込みを発生させるソフトウェア処理による桁上がりカウント値（Ｃｏｕｎｔ_Ａ１)を読み取る。Ｃｏｕｎｔ_Ａ０が０からＮ（自然数）に達するのを１周期とすると、現在の時刻ｔは、ｔ＝Ｃｏｕｎｔ_Ａ１＋Ｃｏｕｎｔ_Ａ０／Ｎで取得される（特許文献１）。
【先行技術文献】
【特許文献】
【０００３】
【特許文献１】特開２０１０−１０１７９３号
【発明の概要】
【発明が解決しようとする課題】
【０００４】
しかし、現在時刻を取得する際、割り込みの優先順位や割り込み禁止などの制約により、桁上げの処理が遅延することがある。この遅延期間を図９に符号Ｄで示す。この期間Ｄに時刻を取得すると、Ｃｏｕｎｔ_Ａ０は更新されているのに、Ｃｏｕｎｔ_Ａ１が加算されていない状態となるため、時刻を読み間違えるという問題が生じる。この桁上がりの読み取りミスによる誤差は、時間の経過とともに積算的に大きくなるため、長いスパンで見ると大きく時刻がずれこむおそれがある。
【０００５】
本発明は、桁上がりのカウント値を読み間違えないシステムタイマおよび同システムタイマを備えた測量機を提供することを目的とする。
【課題を解決するための手段】
【０００６】
上記課題を解決するために、本発明のある態様のシステムタイマは、ＣＰＵの動作クロックを原振とし、それぞれ同一周期の割り込み処理で桁上がりをカウントし、割り込み処理のタイミングがそれぞれ異なる複数のタイマを備え、前記複数のタイマのうち、時刻取得時に割り込み処理が発生していないタイマの桁上がりのカウント値が読み取られることを特徴とする。
【０００７】
本発明の別の態様のシステムタイマは、ＣＰＵの動作クロックを原振とする主タイマと、前記ＣＰＵの動作クロックを原振とし、前記主タイマと同一周期の割り込み処理で桁上がりをカウントし、カウント値の初期値が前記主タイマから半周期ずれた状態でスタートされる副タイマと、を備え、前記副タイマは、動作開始時の、前記主タイマのカウント値が周期の１／４未満の時は副タイマの桁上がりのカウント値が読み取られ、前記主タイマのカウント値が周期の１／４以上３／４未満の時は主タイマの桁上がりのカウント値が読み取られ、前記主タイマのカウント値が周期の３／４以上の時は副タイマの桁上がりのカウント値が読み取られることを特徴とする。
【０００８】
本発明のある態様の測量機は、ＵＴＣ時刻を取得可能なＧＰＳモジュールと、測距および測角を行う測量モジュールと、前記測量モジュールおよび前記ＧＰＳモジュールを制御するＣＰＵと、前記ＣＰＵの動作クロックを原振とし、それぞれ同一周期の割り込み処理で桁上がりをカウントし、割り込み処理のタイミングがそれぞれ異なる複数のタイマを備えたシステムタイマと、前記ＧＰＳモジュールからＰＰＳ信号を受信し、前記ＰＰＳ信号の割り込みが入ったタイミングの前記システムタイマの時刻を取得し、前記システムタイマの時間のズレを補正して秒以上のＵＴＣ時刻を更新するＵＴＣ時刻演算部と、前記測量モジュールから測量値を取得したタイミングで通知信号を受信し、前記通知信号の割り込みが入ったタイミングの前記システムタイマの時刻および前記ＵＴＣ時刻演算部の時刻を取得し、前記通知信号にＵＴＣ時刻を付加する測量時刻演算部と、を備えることを特徴とする。
【発明の効果】
【０００９】
本発明のシステムタイマおよび同システムタイマを備えた測量機によれば、桁上がりのカウント値を読み間違えることがないので、精度良く時刻を取得することができる。
【図面の簡単な説明】
【００１０】
【図１】第１の実施の形態に係るシステムタイマのブロック図である。
【図２】第１の実施の形態に係るシステムタイマのタイミングチャートである。
【図３】第２の実施の形態に係るシステムタイマのブロック図である。
【図４】第２の実施の形態に係るシステムタイマのタイミングチャートである。
【図５】第３の実施の形態に係る測量機のブロック図である。
【図６】ＵＴＣ時刻演算部の動作フローチャートである。
【図７】測量時刻演算部の動作フローチャートである。
【図８】測量時刻演算部のタイミングチャート図である。
【図９】システムタイマの基本動作を示すタイミングチャートである。
【発明を実施するための形態】
【００１１】
次に、本発明の好適な実施の形態について、図面を参照して説明する。
【００１２】
（第１の実施形態）
図１は第１の実施の形態に係るシステムタイマ１０のブロック図である。図１において、ＣＰＵ１の動作クロック（以下、ＣＰＵクロック）２からは、一定周期でクロックパルスが出力されている。ＣＰＵ１のシステムタイマ１０は、主タイマ４と副タイマ５の二つのタイマと、システムタイム演算部３を備えている。
【００１３】
主タイマ４は、ＣＰＵクロック２を原振とし、ＣＰＵクロック２のクロックパルスをカウントする主ハードウェアタイマ４１と、主ハードウェアタイマ４１と同一周期で割り込み処理を発生させ桁上がりをカウントする主ソフトウェアタイマ４２を有する。
【００１４】
副タイマ５は、ＣＰＵ１のＣＰＵクロック２を原振とし、ＣＰＵクロック２のクロックパルスをカウントする副ハードウェアタイマ５１と、副ハードウェアタイマ５１と同一周期で割り込みを発生させ桁上がりをカウントする副ソフトウェアタイマ５２を有する。副タイマ５は、動作開始時のカウント値(Ｃｏｕｎｔ_Ｂ０)の初期値を、主タイマ４から半周期進めた状態でスタートされる。
【００１５】
システムタイム演算部３は、次のように現在時刻を取得する。図２は第１の実施の形態に係るシステムタイマ１０のタイミングチャートである。
【００１６】
一例として、主タイマ４の主ハードウェアタイマ４１のカウント値(Ｃｏｕｎｔ_Ａ０)が、１２に達するのを１周期とする。主ソフトウェアタイマ４２は、主ハードウェアタイマ４１のカウント値(Ｃｏｕｎｔ_Ａ０)が１２に達し０に戻る時に割り込み処理を発生させ、桁上がりのカウント値(Ｃｏｕｎｔ_Ａ１)を１つ増加させる。
【００１７】
副タイマ５の副ハードウェアタイマ５１のカウント値（Ｃｏｕｎｔ_Ｂ０)は、主ハードウェアタイマ４１のカウント値(Ｃｏｕｎｔ_Ａ０)から半周期進んでいるので、図２では、Ｃｏｕｎｔ_Ｂ０＝６からスタートしている。副ソフトウェアタイマ５２は、副ハードウェアタイマ５１のカウント値(Ｃｏｕｎｔ_Ｂ０)が１２に達し０に戻る時に割り込み処理を発生させ、桁上がりのカウント値(Ｃｏｕｎｔ_Ｂ１)を１つ増加させる。
【００１８】
本形態のシステムタイマ１０では、割り込み処理の制約により、主ソフトウェアタイマ４２のカウント値（Ｃｏｕｎｔ_Ａ１）の桁上げの処理が遅延することがある（遅延期間Ｄ１）。この遅延期間Ｄ１に時刻を取得すると、Ｃｏｕｎｔ_Ａ０は更新されているのに、Ｃｏｕｎｔ_Ａ１が加算されていない状態となるため、時刻を読み間違える。また、副タイマ５においても、割り込み処理の制約により、副ソフトウェアタイマ５２のカウント値（Ｃｏｕｎｔ_Ｂ１）の桁上げの処理が遅延することがある（遅延期間Ｄ２）。この遅延期間Ｄ２の桁上がりのカウント値（Ｃｏｕｎｔ_Ｂ１）を読むと、Ｃｏｕｎｔ_Ｂ０は更新されているのに、Ｃｏｕｎｔ_Ｂ１が加算されていない状態となるため、時刻を読み間違える。
【００１９】
ここで、システムタイム演算部３は、現在時刻ｔを取得する時は、主タイマ４の主ハードウェアタイマ４１のカウント値(Ｃｏｕｎｔ_Ａ０)を一度だけ読む。そして、そのカウント値(Ｃｏｕｎｔ_Ａ０)が周期の１／４未満の時（図２に示す期間Ｐ１）は、副タイマ５の桁上がりのカウント値(Ｃｏｕｎｔ_Ｂ１)を読み取り、現在の時刻ｔは、式（１）で取得する。
ｔ＝Ｃｏｕｎｔ_Ｂ１＋Ｃｏｕｎｔ_Ａ０／１２  ・・・（１）
この場合において、副タイマ５のカウント値(Ｃｏｕｎｔ_Ｂ０)は割り込み処理発生から少なくとも１／４周期離れており、また、副タイマ５の桁上がりのカウント値(Ｃｏｕｎｔ_Ｂ１)は、主タイマ４の桁上がりのカウント値(Ｃｏｕｎｔ_Ａ１)よりも早い段階でカウントアップしているので、副タイマ５は桁上がりの変数を間違えない。
【００２０】
システムタイム演算部３は、主タイマ４のカウント値(Ｃｏｕｎｔ_Ａ０)が周期の１／４以上３／４未満の時（図２に示す期間Ｐ２）は、主タイマ４の桁上がりのカウント値(Ｃｏｕｎｔ_Ａ１)を読み取り、現在の時刻ｔは、式（２）で取得する。
ｔ＝Ｃｏｕｎｔ_Ａ１＋Ｃｏｕｎｔ_Ａ０／１２  ・・・（２）
この場合において、主タイマ４のカウント値(Ｃｏｕｎｔ_Ａ０)は割り込み処理発生から少なくとも１／４周期離れ、十分なマージンが取られているため、主タイマ４は桁上がりの変数を間違えない。
【００２１】
システムタイム演算部３は、主タイマ４のカウント値(Ｃｏｕｎｔ_Ａ０)が周期の３／４以上の時（図２に示す期間Ｐ３）は、副タイマ５の桁上がりのカウント値(Ｃｏｕｎｔ_Ｂ１)を読み取り、現在の時刻ｔは、式（３）で取得する。
ｔ＝（Ｃｏｕｎｔ_Ｂ１−１）＋Ｃｏｕｎｔ_Ａ０／１２  ・・・（３）。
【００２２】
この場合において、副タイマ５のカウント値(Ｃｏｕｎｔ_Ｂ０)は割り込み処理発生から少なくとも１／４周期離れており、また、副タイマ５の桁上がりのカウント値(Ｃｏｕｎｔ_Ｂ１)は、主タイマ４の桁上がりのカウント値(Ｃｏｕｎｔ_Ａ１)よりも早い段階でカウントアップしているので、副タイマ５は桁上がりの変数を間違えることがない。
【００２３】
なお、副タイマ５を主タイマ４から半周期遅れた状態でスタートさせた場合も同様である。この場合の現在の時刻ｔは、カウント値(Ｃｏｕｎｔ_Ａ０)が周期の１／４以上３／４未満の時は式（２）で取得し、カウント値(Ｃｏｕｎｔ_Ａ０)が周期の３／４以上の時は式（１）で取得し、カウント値(Ｃｏｕｎｔ_Ａ０)が周期の１／４未満の時は、副タイマ５の桁上がりのカウント値(Ｃｏｕｎｔ_Ｂ１)を読み取り、現在の時刻ｔは、式（４）で取得する。
【００２４】
ｔ＝（Ｃｏｕｎｔ_Ｂ１＋１）＋Ｃｏｕｎｔ_Ａ０／１２  ・・・（４）
以上のように、本形態のシステムタイマ１０によれば、主タイマ４と桁上がりをカウントするための副タイマ５との二つのタイマを備えたから、現在時刻の取得時に、割り込みの優先順位や割り込み禁止などの制約が発生しても、割り込み処理が発生していないほうのタイマの桁上がりのカウント値を採用することができるので、精度良く現在時刻を取得することができる。
【００２５】
また、システムタイム演算部３が主タイマ４の主ハードウェアタイマ４１のカウント値(Ｃｏｕｎｔ_Ａ０)を一度読むだけで、正確な現在時刻が取得されるので、桁上がりが正確かを判定するためにカウント値(Ｃｏｕｎｔ_Ａ１)を複数回読み込むような処理は必要なく、余計なタイムロスが生じない。
【００２６】
また、主タイマ４と副タイマ５を半周期ずらすことで、主タイマ４と副タイマ５に、割り込みのマージン（余裕分）を、半周期ずつ、均等にふることができるので、桁あがりのカウント値の読み間違いを防ぐことができる。
【００２７】
（第２の実施形態）
図３は第２の実施の形態に係るシステムタイマ１０のブロック図である。図３において、ＣＰＵ１のＣＰＵクロック２からは、一定周期でクロックパルスが出力されている。ＣＰＵ１のシステムタイマ１０は、第１タイマ１１と第２タイマ１２および第３タイマ１３の三つのタイマと、システムタイム演算部３を備えている。
【００２８】
第１タイマ１１は、ＣＰＵクロック２を原振とし、ＣＰＵクロック２のクロックパルスをカウントする第１ハードウェアタイマ１１１と、第１ハードウェアタイマ１１１と同一周期で割り込み処理を発生させ桁上がりをカウントする第１ソフトウェアタイマ１１２を有する。
【００２９】
第２タイマ１２は、ＣＰＵクロック２を原振とし、ＣＰＵクロック２のクロックパルスをカウントする第２ハードウェアタイマ２１１と、第２ハードウェアタイマ２１１と同一周期で割り込み処理を発生させ桁上がりをカウントする第２ソフトウェアタイマ２１２を有する。第２タイマ１２は、動作開始時のカウント値の初期値を、第１タイマ１１から１／３周期進めた状態でスタートされる。
【００３０】
第３タイマ１３は、ＣＰＵクロック２を原振とし、ＣＰＵクロック２のクロックパルスをカウントする第３ハードウェアタイマ３１１と、第３ハードウェアタイマ３１１と同一周期で割り込み処理を発生させ桁上がりをカウントする第３ソフトウェアタイマ３１２を有する。第３タイマ１３は、動作開始時のカウント値の初期値を、第１タイマ１１から２／３周期進めた状態でスタートされる。
【００３１】
システムタイム演算部３は、次のように現在時刻を取得する。図４は第２の実施の形態に係るシステムタイマ１０のタイミングチャートである。
【００３２】
一例として、第１タイマ１１の第１ハードウェアタイマ１１１のカウント値(Ｃｏｕｎｔ_Ａ０)が、１２に達するのを１周期とする。第１ソフトウェアタイマ１１２は、第１ハードウェアタイマ１１１のカウント値(Ｃｏｕｎｔ_Ａ０)が１２に達し０に戻る時に割り込み処理を発生させ、桁上がりのカウント値(Ｃｏｕｎｔ_Ａ１)を１つ増加させる。
【００３３】
第２タイマ１２の第２ハードウェアタイマ２１１のカウント値（Ｃｏｕｎｔ_Ｂ０)は、第１ハードウェアタイマ１１１のカウント値(Ｃｏｕｎｔ_Ａ０)から１／３周期進んでいるので、図４では、Ｃｏｕｎｔ_Ｂ０＝４からスタートしている。第２ソフトウェアタイマ２１２は、第２ハードウェアタイマ２１１のカウント値(Ｃｏｕｎｔ_Ｂ０)が１２に達し０に戻る時に割り込み処理を発生させ、桁上がりのカウント値(Ｃｏｕｎｔ_Ｂ１)を１つ増加させる。
【００３４】
第３タイマ１３の第３ハードウェアタイマ３１１のカウント値（Ｃｏｕｎｔ_Ｃ０)は、第１ハードウェアタイマ１１１のカウント値(Ｃｏｕｎｔ_Ａ０)から２／３周期進んでいるので、図４では、Ｃｏｕｎｔ_Ｃ０＝８からスタートしている。第３ソフトウェアタイマ３１２は、第３ハードウェアタイマ３１１のカウント値(Ｃｏｕｎｔ_Ｃ０)が１２に達し０に戻る時に割り込み処理を発生させ、桁上がりのカウント値(Ｃｏｕｎｔ_Ｃ１)を１つ増加させる。
【００３５】
本形態のシステムタイマ１０では、割り込み処理の制約により、第１ソフトウェアタイマ１１２のカウント値（Ｃｏｕｎｔ_Ａ１）の桁上げの処理が遅延することがある（遅延期間Ｄ１）。同様に、第２ソフトウェアタイマ２１２のカウント値（Ｃｏｕｎｔ_Ｂ１）の桁上げの処理が遅延することがある（遅延期間Ｄ２）。同様に、第３ソフトウェアタイマ３１２のカウント値（Ｃｏｕｎｔ_Ｃ１）の桁上げの処理が遅延することがある（遅延期間Ｄ３）。この遅延期間Ｄ１,Ｄ２,およびＤ３の間の桁上がりのカウント値を読むと、桁上がりのカウント値が加算されていない状態となるため、時刻を読み間違えてしまう。
【００３６】
ここで、システムタイム演算部３は、現在時刻ｔを取得する時は、第１タイマ１１の第１ハードウェアタイマ１１１のカウント値(Ｃｏｕｎｔ_Ａ０)を一度だけ読む。そして、そのカウント値(Ｃｏｕｎｔ_Ａ０)が周期の１／３未満の時（図４に示す期間Ｐ４）は、第２タイマ１２の桁上がりのカウント値(Ｃｏｕｎｔ_Ｂ１)を読み取り、現在の時刻ｔは、式（１）で取得する
ｔ＝Ｃｏｕｎｔ_Ｂ１＋Ｃｏｕｎｔ_Ａ０／１２  ・・・（１）
この場合において、副タイマ５の桁上がりのカウント値(Ｃｏｕｎｔ_Ｂ１)は、主タイマ４の桁上がりのカウント値(Ｃｏｕｎｔ_Ａ１)よりも早い段階でカウントアップしており、また、第２タイマ１２が最も割り込み処理が発生する位置から離れているので、第２タイマ１２が最も桁上がりの変数を間違えない。
【００３７】
システムタイム演算部３は、第１タイマ１１のカウント値(Ｃｏｕｎｔ_Ａ０)が周期の１／３以上２／３未満の時（図４に示す期間Ｐ５）は、第１タイマ１１の桁上がりのカウント値(Ｃｏｕｎｔ_Ａ１)を読み取り、現在の時刻ｔは、式（２）で取得する。
ｔ＝Ｃｏｕｎｔ_Ａ１＋Ｃｏｕｎｔ_Ａ０／１２  ・・・（２）
この場合において、第１タイマ１１が最も割り込みが発生する位置から離れているので、第１タイマ１１が最も桁上がりの変数を間違えない。
【００３８】
システムタイム演算部３は、第１タイマ１１のカウント値(Ｃｏｕｎｔ_Ａ０)が周期の２／３以上の時（図４に示す期間Ｐ６）は、第３タイマ１３の桁上がりのカウント値(Ｃｏｕｎｔ_Ｃ１)を読み取り、現在の時刻ｔは、式（５）で取得する。
ｔ＝（Ｃｏｕｎｔ_Ｃ１−１）＋Ｃｏｕｎｔ_Ａ０／１２  ・・・（５）。
【００３９】
この場合において、第３タイマ１３の桁上がりのカウント値(Ｃｏｕｎｔ_Ｃ１)は、第１タイマ１１の桁上がりのカウント値(Ｃｏｕｎｔ_Ａ１)よりも早い段階でカウントアップしており、また、第３タイマ１３が最も割り込みが発生する位置から離れているので、第３タイマ１３が最も桁上がりの変数を間違えない。
【００４０】
なお、第２タイマ１２および第３タイマ１３を第１タイマ１１よりも遅れた状態でスタートさせた場合も同様である。この場合の現在の時刻ｔは、カウント値(Ｃｏｕｎｔ_Ａ０)が周期の１／３以上２／３未満の時は第１タイマ１１のカウント値（Ｃｏｕｎｔ_Ａ１）を読み、式（２）で取得する。カウント値(Ｃｏｕｎｔ_Ａ０)が周期の２／３以上の時は第２タイマ１２のカウント値（Ｃｏｕｎｔ_Ｂ１）を読み、現在の時刻ｔは、式（１）で取得する。  カウント値(Ｃｏｕｎｔ_Ａ０)が周期の１／３未満の時は第３タイマ１３のカウント値（Ｃｏｕｎｔ_Ｃ１）を読み、式（６）で取得する。
ｔ＝（Ｃｏｕｎｔ_Ｃ１＋１）＋Ｃｏｕｎｔ_Ａ０／１２  ・・・（６）
【００４１】
以上のように、本形態のシステムタイマ１０によれば、第１タイマ１１と桁上がりをカウントするための第２タイマ１２および第３タイマ１３の三つのタイマを備えたから、現在時刻の取得時に、割り込みの優先順位や割り込み禁止などの制約が発生しても、三つのタイマのうち、割り込み処理の発生から最も離れているタイマの桁上がりのカウント値を採用することができるので、精度良く現在時刻を取得することができる。
【００４２】
本形態においても、システムタイム演算部３が第１タイマ１１の第１ハードウェアタイマ１１１のカウント値(Ｃｏｕｎｔ_Ａ０)を一度読むだけで、正確な現在時刻が取得されるので、余計なタイムロスが生じない。
【００４３】
なお、システムタイマ１０は、桁上がりをカウントするためのタイマをさらに追加し、複数のタイマで構成されるようにしてもよい。複数のタイマは、ＣＰＵクロック２を原振とし、それぞれ同一周期の割り込み処理で桁上がりをカウントし、割り込み処理のタイミングがそれぞれ異なるように構成されるのが好ましい。タイマの数や割り込み処理のタイミングのズレは、制御のしやすさや、割り込みのマージンが取れているかを考慮するのが好ましい。
【００４４】
（第３の実施形態）
第３の実施形態は、第１または第２の実施形態のシステムタイマ１０を測量機に搭載した例である。
【００４５】
図５は第３の実施の形態に係る測量機２０のブロック図である。測量機２０は、トータルステーション（電子式測距測角儀）である。測量機２０は、ＧＰＳモジュール２１と、測量モジュール２２と、演算制御部２３と、記憶部２４と、図示を略する表示部および操作部を備えている。
【００４６】
ＧＰＳモジュール２１は、ＧＰＳ衛星から時刻情報を含むＧＰＳ信号を受信し、ＧＰＳ時刻（ＵＴＣ時刻）と定周期パルスを持つＰＰＳ信号を生成する。
【００４７】
測量モジュール２２は、図示しないが、測量機２０の望遠鏡内に構成された光波距離計（ＥＤＭ），上記望遠鏡の鉛直回転角を検出するエンコーダ，上記望遠鏡を水平回転させる筐体の水平回転角を検出するエンコーダ，および上記望遠鏡および上記筐体の回転駆動部を備えている。上記ＥＤＭにより、測量機２０からターゲットまでの距離が測定され（測距）、上記エンコーダにより、ターゲットまでの水平角および鉛直角が測定される（測角）。なお、測量モジュール２２は、ターゲットを自動追尾する追尾部を有していてもよい。測量モジュール２２は、これら測量値（斜距離、水平角、鉛直角）を取得したタイミングで、通知信号（以下、Ｓｙｎｃ信号）を生成する。
【００４８】
演算制御部２３は、ＣＰＵ１と記憶部２４（ＲＯＭ，ＲＡＭ等）を集積回路に実装したマイクロコントローラである。演算制御部２３は、測量モジュール２２を制御して測量を実行する。
【００４９】
演算制御部２３のＣＰＵ１は、第１の実施形態のシステムタイマ１０を備えている。但し、第２の実施形態のシステムタイマ１０を備えていてもよい。
【００５０】
ＣＰＵ１は、ＵＴＣ時刻演算部３１と、測量時刻演算部３２をさらに備えている。
【００５１】
図６は、ＵＴＣ時刻演算部３１の動作フローチャートである。ＵＴＣ時刻演算部３１は、ステップＳ６１で、ＧＰＳモジュール２１からＰＰＳ信号を受信し、該ＰＰＳ信号の割り込み処理を行う。次に、ステップＳ６２で、割り込み処理時のシステムタイム演算部３のシステムタイムを取得する。次に、ステップＳ６３で、前回のＰＰＳ信号の割り込みで取得した時刻との差から、正確な１秒の間隔を計算し、ＵＴＣ時刻とシステムタイムのズレを測定する。次に、ステップＳ６４で、ズレを補正してＵＴＣ時刻（秒以上の時間）を更新する。
【００５２】
図７は測量時刻演算部３２の動作フローチャート、図８は測量時刻演算部３２のタイミングチャート図である。測量時刻演算部３２は、ステップＳ７１で、測量モジュール２２からＳｙｎｃ信号を受信し、該Ｓｙｎｃ信号の割り込み処理を行う。次に、ステップＳ７２で、割り込み処理時のシステムタイム演算部３のシステムタイムを取得する。次に、ステップＳ７３で、測量時刻演算部３２は、ＵＴＣ時刻演算部３１から前回のＰＰＳ割り込み（図８の矢印ｉ）の時刻と、Ｓｙｎｃ信号（図８の矢印ｊｘ）の間隔（図８の符号ｄ）から、前回のＰＰＳ割り込み（矢印ｉ）から時刻を取得したいＳｙｎｃ信号（図８の矢印ｊ１）までの経過時間（図８の符号ｄpass）を計算し、秒未満の時間を求める。次に、ステップＳ７４で、ＵＴＣ時刻演算部３１からＵＴＣ時刻（秒以上）を取得し、ステップＳ７３で取得した時間（秒未満）を足して、Ｓｙｎｃ信号ｊ１にＵＴＣ時刻を付加する。
【００５３】
以上のように、本形態の測量機２０によれば、システムタイマ１０が搭載されているから、図６のステップＳ６２および図７のステップＳ７２のシステムタイムの時刻取得が、たとえ割り込み処理があっても、精度良く求まる。その結果、図７のステップＳ７４における、測距・測角をしたＵＴＣ時刻を精度良く求めることができる。
【００５４】
以上、本発明の好ましい実施の形態および変形例を述べたが、各形態および各変形例を当業者の知識に基づいて組み合わせることも可能であり、そのような形態は本発明の範囲に含まれる。
【符号の説明】
【００５５】
１０  システムタイマ
１  ＣＰＵ
２  ＣＰＵクロック
３  システムタイム演算部
４  主タイマ
５  副タイマ
１１  第１タイマ
１２  第２タイマ
１３  第３タイマ
２０  測量機
２１  ＧＰＳモジュール
２２  測量モジュール
３１  ＵＴＣ時刻演算部
３２  測量時刻演算部
【図１】
2018141678.tif 000003
【図２】
2018141678.tif 000004
【図３】
2018141678.tif 000005
【図４】
2018141678.tif 000006
【図５】
2018141678.tif 000007
【図６】
2018141678.tif 000008
【図７】
2018141678.tif 000009
【図８】
2018141678.tif 000010
【図９】
2018141678.tif 000011