(57)【要約】【課題】予め作成した少数の周波数変動テーブルにより、水晶発振子個々のばらつきについても、ソフトウェアの処理によって温度補償する。【解決手段】水晶発信器からのクロックのクロックカウント数に基づいて、現在時刻を求める時刻計算プログラムと、クロックカウント数に基づいた一定時間ごとに、温度検出器の入力値を温度検出テーブルで変換した温度データに基づいて周波数変動テーブルを参照して周波数変動誤差を取り出し、誤差時間データを出力する温度誤差時間計算プログラムと、現在時刻に前記誤差時間データを加減又は減算して表示時間を計算する誤差時間修正プログラムを有するソフトウェア時計の計時プログラムにおいて、補正装置からの入力に基づいて、水晶発信器からのクロックウント数を設定したクロックカウント数に補正する。【選択図】図１
2007078405.tif 000002
【特許請求の範囲】
【請求項１】
水晶発信器からのクロックのクロックカウント数に基づいて、設定された初期値からの経過時間を積算して現在時刻を求める時刻計算プログラムと、
前記クロックカウント数に基づいた一定時間ごとに、温度検出器の入力値を温度検出テーブルで変換した温度データに基づいて周波数変動テーブルを参照して周波数変動誤差を取り出し、誤差時間データを出力する温度誤差時間計算プログラムと、
前記現在時刻に前記誤差時間データを加減又は減算して表示時間を計算する誤差時間修正プログラムを有するソフトウェア時計の計時プログラムにおいて、
補正装置からの入力に基づいて、前記水晶発信器からのクロックカウント数を設定したクロックカウント数に補正するクロックカウント補正プログラムを備えること、
を特徴とするソフトウェア時計の計時プログラム。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明はコンピュータ等の情報処理装置及び車載用電子機器に用いられるソフトウェア時計の計時プログラムに関する。
【背景技術】
【０００２】
コンピュータ等の情報処理装置や車載用電子機器では、一般的に、実装されるソフトウェアにおいて時刻情報を保持、管理するソフトウェア時計が用いられている。このソフトウェア時計は、ある設定された時刻の初期値からの経過時間を、毎瞬間ごとにコンピュータのＣＰＵ（中央情報処理装置）で水晶発振器から供給されるクロック数をカウント、積算することによって求めている。一方、水晶発振器の発振クロック数はその周囲の温度によって影響を受けることから、ソフトウェア時計の精度も周囲の温度によって大きく影響を受けることとなる。
【０００３】
図４に示すように、電子機器が周囲温度の影響を受けてその特性や、精度が変化することを防止するために、装置個々の温度特性の補償データに基づいて温度補償を行う温度補償回路が提案されている（例えば、特許文献１参照）。図４は衛星放送着信電力測定用受信器に用いられる電力計の温度補償を自動的に行う自動温度補償回路を示す。この装置において、温度補償回路を動作させるには、まず装置個々の温度特性データを蓄積する必要がある。そこで、入力端子１１１に既知の基準信号を入力し、この測定値とデータ発生器１２１によって発生させた基準信号を比較器１２２で比較し、その差がなくなるまで補正発生カウンタ１２３によって補正値を作成し、その補正値をＲＡＭ１２６に保存する。この時の周囲温度は温度検出器１２７で検出され、そのデータもＲＡＭ１２６に保存されるので、ある一定周囲温度における補正値が１つのデータ対としてＲＡＭ１２６に保存される。周囲の温度を適宜変化させて上記のプロセスを繰り返すと、ＲＡＭ１２６の上に周囲温度の変化に対する補正値のテーブルが記録される。実測定においては、温度検出器１２７によって測定した周囲温度により、この補正テーブルに基づいた補正値をＲＡＭ１２６から読み出して、その数値を加算器１１８に加えることにより自動的に温度補償を行うものである。
【０００４】
また、ソフトウェア時計の温度補償の方法としては、水晶発振回路の温度特性を予め測定して、各温度領域における発振周波数の標準値からのずれの値を周波数変動テーブルとしてメモリに記憶保存しておき、水晶発振回路の近傍の温度センサによって測定された周囲温度からこの周波数変動テーブルを参照して水晶発振器の出力周波数のずれを読み出して時刻の進遅を補正する方法が提案されている（例えば、特許文献２参照）。
【０００５】
【特許文献１】特開昭６２−１８５１７３号公報
【特許文献２】特開平１１−０６５６９４号公報
【発明の開示】
【発明が解決しようとする課題】
【０００６】
前述の、装置個々の温度特性の補償データに基づいて温度補償を行う温度補償回路と同様の動作をソフトウェア時計に応用して、周囲温度の変化応じて水晶発振器の温度補償をＣＰＵ内のソフトウェアによって行うことが考えられるが、水晶発振器が温度変化による影響を受けると、その水晶発振器のクロックに基づいて動作している基準信号、比較器などの動作も温度の影響を受けることから、ソフトウェア上で図４のような装置個々の温度補償データを作成し、これに基づいて温度補償を行うことは困難で、可能な場合でもその温度補償のできる範囲は周囲温度によって基準信号、比較器などの動作が温度の影響を受けないような非常に狭い温度範囲となってしまうという問題があった。
【０００７】
また、複数の周波数変動テーブルを用いる方法では、水晶発振子の温度特性はその種類によって様々である上、同じ種類の発振子においても個々の発振子でその特性が異なることから、装置個々の温度特性の補償データに基づいて温度補償を行う方式とは異なり、発振子の特性によって周波数変動テーブルを変更することが必要になるという問題があった。特に時計個々について違った周波数変動テーブルが必要になるためコストアップしてしまうという問題があった。
【０００８】
そこで本発明の目的は、予め作成した少数の周波数変動テーブルにより、水晶発振子個々のばらつきについても、ソフトウェアの処理によって温度補償することができる、精度の高い時計機能を有するソフトウェア時計を提供することにある。
【課題を解決するための手段】
【０００９】
本発明の目的は、水晶発信器からのクロックのクロックカウント数に基づいて、設定された初期値からの経過時間を積算して現在時刻を求める時刻計算プログラムと、クロックカウント数に基づいた一定時間ごとに、温度検出器の入力値を温度検出テーブルで変換した温度データに基づいて周波数変動テーブルを参照して周波数変動誤差を取り出し、誤差時間データを出力する温度誤差時間計算プログラムと、現在時刻に前記誤差時間データを加減又は減算して表示時間を計算する誤差時間修正プログラムを有するソフトウェア時計の計時プログラムにおいて、補正装置からの入力に基づいて、水晶発信器からのクロックカウント数を設定したクロックカウント数に補正するクロックカウント補正プログラムを備えること、を特徴とするソフトウェア時計の計時プログラムによって実現することができる。
【発明の効果】
【００１０】
本発明による、ソフトウェア時計は少数の周波数変動テーブルによって個々の水晶発振子個々のばらつきについても温度補償することができるという効果を奏する。
【発明を実施するための最良の形態】
【００１１】
【実施例１】
【００１２】
本発明の第１の実施形態について図１を参照しながら説明する。図１は本発明のソフトウェア時計の計時プログラムを備えるソフトウェア時計の概念図を示す。第１の実施形態のソフトウェア時計は、水晶発振器１、ＣＰＵ２、補正装置３、時刻表示デバイス４、温度検出器５を備えている。水晶発振器１はＣＰＵ２に動作クロックを出力する装置であって、その中に水晶振動子と発振回路を有している。ＣＰＵ２はプログラムによってソフトウェア時計が組み込まれているコンピュータ等の情報処理装置の動作を指令する中央情報処理装置である。補正装置３は補正指令信号をＣＰＵ２に出力する装置である。時刻表示デバイス４は、ＣＰＵ２からの信号によって、時刻を人間が認識しうるように表示する装置である。温度検出器５は温度に従って出力電圧が変化する装置であり、その出力はＣＰＵ２に接続されている。
【００１３】
ソフトウェア時計の計時プラグラム１１はＣＰＵ２によって処理され、上記の各装置の動作指令を行うものである。このソフトフェア時計の計時プログラム１１はクロックカウント補正プログラム１２、時刻計算プログラム１３、温度誤差時間計算プログラム１４、誤差時間修正プログラム１５を有している。クロックカウント修正プログラム１２は、発振器１からのクロック入力のクロック数を、補正装置３からの補正指令信号によって所望のクロック数に補正し補正クロックを出力するプログラムである。時刻計算プログラム１３は、ある設定された時刻の初期値からの経過時間を、毎瞬間ごとに上記の補正クロックのクロック数をカウント、積算することによって現在時刻を計算するプログラムである。温度誤差時間計算プログラム１４は、温度検出器５からの電圧入力を温度検出テーブルを参照して温度データとして出力する温度検出ステップ１６と、この温度データに基づいて周波数変動テーブルを参照して誤差パルス数を算出する周波数誤差計算ステップ１７と、一定時間ごとに誤差パルスデータを周波数変動誤差として取り出す周波数変動誤差取得ステップ１８と、取り出した周波数誤差を所定の値まで積算し、その結果を誤差時間データとして出力する誤差時間計算ステップ１９とを有している。誤差時間修正プログラム１５は時刻計算プログラム１３が出力した現在時刻と、温度誤差時間計算プログラム１４が出力した誤差時間データを加算又は減算して修正時刻を表示デバイス４に出力するプログラムである。
【００１４】
第１の実施形態の水晶発振器１に用いられている音叉形水晶発振子の温度特性を図２に示す。図２は横軸が温度で、縦軸は１分あたりの誤差パルス数を示す（誤差ＰＰＭ）。以下の説明では、１分間のパルス数、パルス／分をＰＰＭとしてあらわす。図２に示すように、２５℃の時に周波数誤差ゼロとして、温度が２５℃からずれるに従って周波数誤差(誤差ＰＰＭ)は増える特性である。図２のＩが基本特性で、水晶振動子個々によって図中のIIまたはIIIの様に特性がばらついてくる。この特性のばらつきは特性カーブ全体が上下にシフトするようなばらつきで、カーブの形自体が変化するようなばらつきはない。
【００１５】
本発明の第１の実施形態のソフトウェア時計の動作について説明する。以下の説明では、例としてソフトウェア時計のクロックは１ｋＨｚ、すなわち、１，０００パルス／秒あるいは６０，０００ＰＰＭで動作しているとして説明する。
【００１６】
最初に補正装置３から出力される、補正指令値の設定について説明する。補正指令値は次のような手順で設定される。
（１）ソフトウェア時計が装備されている情報処理装置を基準温度の２５℃の環境に設定し、動作させる。発振器１から入力されたクロックは、クロックカウント補正プログラム１２で何も補正されずに、補正クロックが出力される。たとえば、発振器１が図２のIIに示すような特性を有し、その誤差ＰＰＭが２０ＰＰＭの時には、発振器からの入力、補正クロックは共に、６０，０２０ＰＰＭとなる。
（２）補正クロックは分周プログラム２１によって分周されたのち、ソフトウェア時計の外部に設置された周波数カウンタ２２に出力され、所定時間のパルス数をカウントする。例として１／１０に分周した時は、出力されるクロックは６，００２ＰＰＭで、この分周クロックを周波数カウンタで１０分間カウントすると、カウントパルス数は６０，０２０パルスとなる。分周して計測するのは、時間平均して測定精度を上げるためである。
（３）ここで、初めて、発振器１のクロック数は２０ＰＰＭの誤差ＰＰＭを有していることがわかる。そこで、１分間に２０パルスだけクロック数を減少させるように補正装置から−２０の補正指令値をクロックカウント補正プログラムに入力する。
（４）−２０の補正指令値を受け取ったクロックカウント補正プログラム１２は１パルスの誤差が発生するパルス数を計算する。上記の例では、６０，０００／２０＝３，０００パルスとなる。そしてこの１パルスの誤差が発生するパルス数だけパルスを出力したら、１パルスだけパルス出力を停止するようにし、次にまた１パルスの誤差が発生するパルス数だけパルスを出力したら１パルスだけパルス出力を停止するというようにして、クロック数を補正する。上記の例では、３，０００パルス毎に１パルスの出力を行わないという動作を行う。誤差ＰＰＭが−２０ＰＰＭの時には、発振器からの入力は５９，５８０ＰＰＭとなるので、上記の場合と逆に、３，０００パルス毎に１パルスの追加パルス出力を行う動作を行い、クロック数を６０，０００ＰＰＭに補正する。
（５）上記のクロックカウント補正プログラム１２の動作によって、発振器１からの６０，０２０ＰＰＭのクロックが６０，０００の補正クロックに補正される。
（６）補正した後の補正クロックも最初のクロック同様、分周プログラム２１で分周後、周波数カウンタ２２によってパルス数をカウントされる。補正が正確であれば、カウントパルス数は６０，０００となることとなる。もし、カウント数が６０，０００にならない場合には、再度、補正指令値を修正して、周波数カウンタ２２でクロック数をカウントし、所定の誤差範囲、たとえば＋／−１ＰＰＭ以内になるまで補正指令値を修正する。
（７）修正が完了したら、最終補正指令値はクロックカウント補正プログラム１２の中の定数にセットされ、周波数カウンタ２２は取り外される。この補正によって、図２のIIの特性を持つ発振子を図２のＩのような特性に補正することができる。
【００１７】
時刻計算プログラム１３は上記の補正クロックを用いて、ある設定された時刻の初期値からの経過時間を、毎瞬間ごとに上記の補正クロックのクロック数をカウント、積算することによって現在時刻を計算する。たとえば、初期値が２００５年１月１日、０：００であった場合は、６０，０００パルスのクロックを積算すると、時刻が１分進み、２００５年１月１日、０：０１を現在時刻として出力する。
【００１８】
次に温度誤差時間計算プログラム１４の動作を説明する。温度検出器５は熱電対のように、温度に従ってその電圧出力が変化する装置である。
（１）温度検出からの電圧値信号がＣＰＵに入力値として入力される。
（２）記憶領域に格納されている温度検出テーブルを参照し、入力電圧を温度データに変換して出力する（温度検出ステップ１６）。
（３）記憶領域に格納されている周波数変動テーブルを参照し、温度データからその温度における誤差ＰＰＭを計算する（周波数誤差計算ステップ１７）。
（４）補正クロックからのパルスをカウントして１分間のパルス数をカウントしたら、誤差ＰＰＭを取り出す（周波数変動誤差取得ステップ１８）。例えば６０，０００ＰＰＭのクロックの時には、１分に相当する、６０，０００パルスをカウントしたら、周波数誤差計算ステップで計算した誤差ＰＰＭをデータとして取り出す。周囲温度３０℃の時には、周波数変動テーブルから誤差ＰＰＭは−２０ＰＰＭとなるので、誤差データは、−２０となる。
（５）そして、取り出した誤差ＰＰＭを合計値（ＳＵＭ）に累積していく。そしてＳＵＭの累積数が１秒に相当するパルス数に達したら、カウント数を１秒分の時間遅れとして時計データに出力する（誤差時間計算ステップ１９）。そして、データを出力したら積算合計値（ＳＵＭ）をゼロにリセットする。先の例のように、６０，０００ＰＰＭのクロックでソフトウェア時計が動作しており、その誤差データがー２０とすると、この誤差データの累積値（ＳＵＭ）)の値が１秒に相当する−１，０００に達したら（−２０を５０回積算する）、１秒を遅れ時間として出力する。
【００１９】
上記の遅れ時間は、誤差修正プログラム１５に入力され、先に時刻計算プログラムで計算した現在時刻から遅れ時間分だけ時刻を減算して、修正時刻を出力する。修正時刻はＣＰＵから時刻表示デバイス４に出力され、時刻表示デバイス４は、数字などによりその修正時刻を人間が認識しうるように表示する。
【００２０】
以上述べた本発明の第１の実施形態のソフトウェア時計は、補正装置３によって発振器１のクロックを補正することによって水晶発振子のばらつきによる誤差を修正し、１つの共通周波数変動テーブルで温度補償することができるので、構成を単純化しつつ精度を高くすることができるという効果を奏する。さらに、時計個々の周波数変動テーブルを持つ必要がなくなることからコストを低減できるという効果を奏する。
【実施例２】
【００２１】
図３を参照しながら第２の実施形態について説明する。第１の実施形態と同様の部分は同様の符号を付して説明は省略する。第２の実施形態は誤差ＰＰＭを取り出した後、誤差データを積算して、一定数になった時に誤差時間として出力するようにしていたのを誤差データを取り出した時にその誤差データを誤差時間データに変換し、この誤差時間データを積算し、一定の値、たとえば一秒になった時に誤差時間修正プログラムに出力する。先の例と同様、６０，０００ＰＰＭのクロックで動作しており、誤差データが−２０の時には、２０／６０，０００分＝１／３，０００分＝１／５０秒＝０．０２秒ずつ誤差時間を積算していく。第１の実施形態と同様、５０回積算して、誤差時間が１秒になったら誤差時間修正プログラムにその時間データが出力され、時間の修正が行われ、修正時間が時刻表示デバイス４で表示される。第２の実施形態も第１の実施形態と同様の効果を奏する。
【図面の簡単な説明】
【００２２】
【図１】本発明のソフトウェア時計の計時プログラムを備える第１の実施形態のソフトウェア時計の概念図。
【図２】水晶発振子の温度特性を示す図。
【図３】本発明のソフトウェア時計の計時プログラムを備える第２の実施形態のソフトウェア時計の概念図。
【図４】従来技術による衛星放送着信電力測定用受信器に用いられる電力計の温度補償を自動的に行う自動温度補償回路図。
【符号の説明】
【００２３】
１  発振器、２  ＣＰＵ、３  補正装置、４  時刻表示デバイス、５  温度検出器、１１  ソフトウェア時計の計時プログラム、１２  クロックカウント補正プログラム、１３  時刻計算プログラム、１４  温度誤差時間計算プログラム、１５  誤差時間修正プログラム、１６  温度検出ステップ、１７  周波数誤差計算ステップ、１８  周波数変動誤差取得ステップ、１９  誤差時間計算ステップ、２１  分周プログラム、２２  周波数カウンタ、１１１  入力端子、１１８  加算器、１２１  データ発生器、１２２  比較器、１２３  補正発生カウンタ、１２６  ＲＡＭ、１２７  温度検出器。
【図１】
2007078405.tif 000003
【図２】
2007078405.tif 000004
【図３】
2007078405.tif 000005
【図４】
2007078405.tif 000006