JP2007078405A - ソフトウェア時計の計時プログラム - Google Patents

ソフトウェア時計の計時プログラム Download PDF

Info

Publication number
JP2007078405A
JP2007078405A JP2005263869A JP2005263869A JP2007078405A JP 2007078405 A JP2007078405 A JP 2007078405A JP 2005263869 A JP2005263869 A JP 2005263869A JP 2005263869 A JP2005263869 A JP 2005263869A JP 2007078405 A JP2007078405 A JP 2007078405A
Authority
JP
Japan
Prior art keywords
time
temperature
error
clock
program
Prior art date
Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
Pending
Application number
JP2005263869A
Other languages
English (en)
Inventor
Tasuku Horiuchi
翼 堀内
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
Kojima Industries Corp
Original Assignee
Kojima Press Industry Co Ltd
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by Kojima Press Industry Co Ltd filed Critical Kojima Press Industry Co Ltd
Priority to JP2005263869A priority Critical patent/JP2007078405A/ja
Publication of JP2007078405A publication Critical patent/JP2007078405A/ja
Pending legal-status Critical Current

Links

Images

Abstract

【課題】予め作成した少数の周波数変動テーブルにより、水晶発振子個々のばらつきについても、ソフトウェアの処理によって温度補償する。
【解決手段】水晶発信器からのクロックのクロックカウント数に基づいて、現在時刻を求める時刻計算プログラムと、クロックカウント数に基づいた一定時間ごとに、温度検出器の入力値を温度検出テーブルで変換した温度データに基づいて周波数変動テーブルを参照して周波数変動誤差を取り出し、誤差時間データを出力する温度誤差時間計算プログラムと、現在時刻に前記誤差時間データを加減又は減算して表示時間を計算する誤差時間修正プログラムを有するソフトウェア時計の計時プログラムにおいて、補正装置からの入力に基づいて、水晶発信器からのクロックウント数を設定したクロックカウント数に補正する。
【選択図】図1

Description

本発明はコンピュータ等の情報処理装置及び車載用電子機器に用いられるソフトウェア時計の計時プログラムに関する。
コンピュータ等の情報処理装置や車載用電子機器では、一般的に、実装されるソフトウェアにおいて時刻情報を保持、管理するソフトウェア時計が用いられている。このソフトウェア時計は、ある設定された時刻の初期値からの経過時間を、毎瞬間ごとにコンピュータのCPU(中央情報処理装置)で水晶発振器から供給されるクロック数をカウント、積算することによって求めている。一方、水晶発振器の発振クロック数はその周囲の温度によって影響を受けることから、ソフトウェア時計の精度も周囲の温度によって大きく影響を受けることとなる。
図4に示すように、電子機器が周囲温度の影響を受けてその特性や、精度が変化することを防止するために、装置個々の温度特性の補償データに基づいて温度補償を行う温度補償回路が提案されている(例えば、特許文献1参照)。図4は衛星放送着信電力測定用受信器に用いられる電力計の温度補償を自動的に行う自動温度補償回路を示す。この装置において、温度補償回路を動作させるには、まず装置個々の温度特性データを蓄積する必要がある。そこで、入力端子111に既知の基準信号を入力し、この測定値とデータ発生器121によって発生させた基準信号を比較器122で比較し、その差がなくなるまで補正発生カウンタ123によって補正値を作成し、その補正値をRAM126に保存する。この時の周囲温度は温度検出器127で検出され、そのデータもRAM126に保存されるので、ある一定周囲温度における補正値が1つのデータ対としてRAM126に保存される。周囲の温度を適宜変化させて上記のプロセスを繰り返すと、RAM126の上に周囲温度の変化に対する補正値のテーブルが記録される。実測定においては、温度検出器127によって測定した周囲温度により、この補正テーブルに基づいた補正値をRAM126から読み出して、その数値を加算器118に加えることにより自動的に温度補償を行うものである。
また、ソフトウェア時計の温度補償の方法としては、水晶発振回路の温度特性を予め測定して、各温度領域における発振周波数の標準値からのずれの値を周波数変動テーブルとしてメモリに記憶保存しておき、水晶発振回路の近傍の温度センサによって測定された周囲温度からこの周波数変動テーブルを参照して水晶発振器の出力周波数のずれを読み出して時刻の進遅を補正する方法が提案されている(例えば、特許文献2参照)。
特開昭62−185173号公報 特開平11−065694号公報
前述の、装置個々の温度特性の補償データに基づいて温度補償を行う温度補償回路と同様の動作をソフトウェア時計に応用して、周囲温度の変化応じて水晶発振器の温度補償をCPU内のソフトウェアによって行うことが考えられるが、水晶発振器が温度変化による影響を受けると、その水晶発振器のクロックに基づいて動作している基準信号、比較器などの動作も温度の影響を受けることから、ソフトウェア上で図4のような装置個々の温度補償データを作成し、これに基づいて温度補償を行うことは困難で、可能な場合でもその温度補償のできる範囲は周囲温度によって基準信号、比較器などの動作が温度の影響を受けないような非常に狭い温度範囲となってしまうという問題があった。
また、複数の周波数変動テーブルを用いる方法では、水晶発振子の温度特性はその種類によって様々である上、同じ種類の発振子においても個々の発振子でその特性が異なることから、装置個々の温度特性の補償データに基づいて温度補償を行う方式とは異なり、発振子の特性によって周波数変動テーブルを変更することが必要になるという問題があった。特に時計個々について違った周波数変動テーブルが必要になるためコストアップしてしまうという問題があった。
そこで本発明の目的は、予め作成した少数の周波数変動テーブルにより、水晶発振子個々のばらつきについても、ソフトウェアの処理によって温度補償することができる、精度の高い時計機能を有するソフトウェア時計を提供することにある。
本発明の目的は、水晶発信器からのクロックのクロックカウント数に基づいて、設定された初期値からの経過時間を積算して現在時刻を求める時刻計算プログラムと、クロックカウント数に基づいた一定時間ごとに、温度検出器の入力値を温度検出テーブルで変換した温度データに基づいて周波数変動テーブルを参照して周波数変動誤差を取り出し、誤差時間データを出力する温度誤差時間計算プログラムと、現在時刻に前記誤差時間データを加減又は減算して表示時間を計算する誤差時間修正プログラムを有するソフトウェア時計の計時プログラムにおいて、補正装置からの入力に基づいて、水晶発信器からのクロックカウント数を設定したクロックカウント数に補正するクロックカウント補正プログラムを備えること、を特徴とするソフトウェア時計の計時プログラムによって実現することができる。
本発明による、ソフトウェア時計は少数の周波数変動テーブルによって個々の水晶発振子個々のばらつきについても温度補償することができるという効果を奏する。
本発明の第1の実施形態について図1を参照しながら説明する。図1は本発明のソフトウェア時計の計時プログラムを備えるソフトウェア時計の概念図を示す。第1の実施形態のソフトウェア時計は、水晶発振器1、CPU2、補正装置3、時刻表示デバイス4、温度検出器5を備えている。水晶発振器1はCPU2に動作クロックを出力する装置であって、その中に水晶振動子と発振回路を有している。CPU2はプログラムによってソフトウェア時計が組み込まれているコンピュータ等の情報処理装置の動作を指令する中央情報処理装置である。補正装置3は補正指令信号をCPU2に出力する装置である。時刻表示デバイス4は、CPU2からの信号によって、時刻を人間が認識しうるように表示する装置である。温度検出器5は温度に従って出力電圧が変化する装置であり、その出力はCPU2に接続されている。
ソフトウェア時計の計時プラグラム11はCPU2によって処理され、上記の各装置の動作指令を行うものである。このソフトフェア時計の計時プログラム11はクロックカウント補正プログラム12、時刻計算プログラム13、温度誤差時間計算プログラム14、誤差時間修正プログラム15を有している。クロックカウント修正プログラム12は、発振器1からのクロック入力のクロック数を、補正装置3からの補正指令信号によって所望のクロック数に補正し補正クロックを出力するプログラムである。時刻計算プログラム13は、ある設定された時刻の初期値からの経過時間を、毎瞬間ごとに上記の補正クロックのクロック数をカウント、積算することによって現在時刻を計算するプログラムである。温度誤差時間計算プログラム14は、温度検出器5からの電圧入力を温度検出テーブルを参照して温度データとして出力する温度検出ステップ16と、この温度データに基づいて周波数変動テーブルを参照して誤差パルス数を算出する周波数誤差計算ステップ17と、一定時間ごとに誤差パルスデータを周波数変動誤差として取り出す周波数変動誤差取得ステップ18と、取り出した周波数誤差を所定の値まで積算し、その結果を誤差時間データとして出力する誤差時間計算ステップ19とを有している。誤差時間修正プログラム15は時刻計算プログラム13が出力した現在時刻と、温度誤差時間計算プログラム14が出力した誤差時間データを加算又は減算して修正時刻を表示デバイス4に出力するプログラムである。
第1の実施形態の水晶発振器1に用いられている音叉形水晶発振子の温度特性を図2に示す。図2は横軸が温度で、縦軸は1分あたりの誤差パルス数を示す(誤差PPM)。以下の説明では、1分間のパルス数、パルス/分をPPMとしてあらわす。図2に示すように、25℃の時に周波数誤差ゼロとして、温度が25℃からずれるに従って周波数誤差(誤差PPM)は増える特性である。図2のIが基本特性で、水晶振動子個々によって図中のIIまたはIIIの様に特性がばらついてくる。この特性のばらつきは特性カーブ全体が上下にシフトするようなばらつきで、カーブの形自体が変化するようなばらつきはない。
本発明の第1の実施形態のソフトウェア時計の動作について説明する。以下の説明では、例としてソフトウェア時計のクロックは1kHz、すなわち、1,000パルス/秒あるいは60,000PPMで動作しているとして説明する。
最初に補正装置3から出力される、補正指令値の設定について説明する。補正指令値は次のような手順で設定される。
(1)ソフトウェア時計が装備されている情報処理装置を基準温度の25℃の環境に設定し、動作させる。発振器1から入力されたクロックは、クロックカウント補正プログラム12で何も補正されずに、補正クロックが出力される。たとえば、発振器1が図2のIIに示すような特性を有し、その誤差PPMが20PPMの時には、発振器からの入力、補正クロックは共に、60,020PPMとなる。
(2)補正クロックは分周プログラム21によって分周されたのち、ソフトウェア時計の外部に設置された周波数カウンタ22に出力され、所定時間のパルス数をカウントする。例として1/10に分周した時は、出力されるクロックは6,002PPMで、この分周クロックを周波数カウンタで10分間カウントすると、カウントパルス数は60,020パルスとなる。分周して計測するのは、時間平均して測定精度を上げるためである。
(3)ここで、初めて、発振器1のクロック数は20PPMの誤差PPMを有していることがわかる。そこで、1分間に20パルスだけクロック数を減少させるように補正装置から−20の補正指令値をクロックカウント補正プログラムに入力する。
(4)−20の補正指令値を受け取ったクロックカウント補正プログラム12は1パルスの誤差が発生するパルス数を計算する。上記の例では、60,000/20=3,000パルスとなる。そしてこの1パルスの誤差が発生するパルス数だけパルスを出力したら、1パルスだけパルス出力を停止するようにし、次にまた1パルスの誤差が発生するパルス数だけパルスを出力したら1パルスだけパルス出力を停止するというようにして、クロック数を補正する。上記の例では、3,000パルス毎に1パルスの出力を行わないという動作を行う。誤差PPMが−20PPMの時には、発振器からの入力は59,580PPMとなるので、上記の場合と逆に、3,000パルス毎に1パルスの追加パルス出力を行う動作を行い、クロック数を60,000PPMに補正する。
(5)上記のクロックカウント補正プログラム12の動作によって、発振器1からの60,020PPMのクロックが60,000の補正クロックに補正される。
(6)補正した後の補正クロックも最初のクロック同様、分周プログラム21で分周後、周波数カウンタ22によってパルス数をカウントされる。補正が正確であれば、カウントパルス数は60,000となることとなる。もし、カウント数が60,000にならない場合には、再度、補正指令値を修正して、周波数カウンタ22でクロック数をカウントし、所定の誤差範囲、たとえば+/−1PPM以内になるまで補正指令値を修正する。
(7)修正が完了したら、最終補正指令値はクロックカウント補正プログラム12の中の定数にセットされ、周波数カウンタ22は取り外される。この補正によって、図2のIIの特性を持つ発振子を図2のIのような特性に補正することができる。
時刻計算プログラム13は上記の補正クロックを用いて、ある設定された時刻の初期値からの経過時間を、毎瞬間ごとに上記の補正クロックのクロック数をカウント、積算することによって現在時刻を計算する。たとえば、初期値が2005年1月1日、0:00であった場合は、60,000パルスのクロックを積算すると、時刻が1分進み、2005年1月1日、0:01を現在時刻として出力する。
次に温度誤差時間計算プログラム14の動作を説明する。温度検出器5は熱電対のように、温度に従ってその電圧出力が変化する装置である。
(1)温度検出からの電圧値信号がCPUに入力値として入力される。
(2)記憶領域に格納されている温度検出テーブルを参照し、入力電圧を温度データに変換して出力する(温度検出ステップ16)。
(3)記憶領域に格納されている周波数変動テーブルを参照し、温度データからその温度における誤差PPMを計算する(周波数誤差計算ステップ17)。
(4)補正クロックからのパルスをカウントして1分間のパルス数をカウントしたら、誤差PPMを取り出す(周波数変動誤差取得ステップ18)。例えば60,000PPMのクロックの時には、1分に相当する、60,000パルスをカウントしたら、周波数誤差計算ステップで計算した誤差PPMをデータとして取り出す。周囲温度30℃の時には、周波数変動テーブルから誤差PPMは−20PPMとなるので、誤差データは、−20となる。
(5)そして、取り出した誤差PPMを合計値(SUM)に累積していく。そしてSUMの累積数が1秒に相当するパルス数に達したら、カウント数を1秒分の時間遅れとして時計データに出力する(誤差時間計算ステップ19)。そして、データを出力したら積算合計値(SUM)をゼロにリセットする。先の例のように、60,000PPMのクロックでソフトウェア時計が動作しており、その誤差データがー20とすると、この誤差データの累積値(SUM))の値が1秒に相当する−1,000に達したら(−20を50回積算する)、1秒を遅れ時間として出力する。
上記の遅れ時間は、誤差修正プログラム15に入力され、先に時刻計算プログラムで計算した現在時刻から遅れ時間分だけ時刻を減算して、修正時刻を出力する。修正時刻はCPUから時刻表示デバイス4に出力され、時刻表示デバイス4は、数字などによりその修正時刻を人間が認識しうるように表示する。
以上述べた本発明の第1の実施形態のソフトウェア時計は、補正装置3によって発振器1のクロックを補正することによって水晶発振子のばらつきによる誤差を修正し、1つの共通周波数変動テーブルで温度補償することができるので、構成を単純化しつつ精度を高くすることができるという効果を奏する。さらに、時計個々の周波数変動テーブルを持つ必要がなくなることからコストを低減できるという効果を奏する。
図3を参照しながら第2の実施形態について説明する。第1の実施形態と同様の部分は同様の符号を付して説明は省略する。第2の実施形態は誤差PPMを取り出した後、誤差データを積算して、一定数になった時に誤差時間として出力するようにしていたのを誤差データを取り出した時にその誤差データを誤差時間データに変換し、この誤差時間データを積算し、一定の値、たとえば一秒になった時に誤差時間修正プログラムに出力する。先の例と同様、60,000PPMのクロックで動作しており、誤差データが−20の時には、20/60,000分=1/3,000分=1/50秒=0.02秒ずつ誤差時間を積算していく。第1の実施形態と同様、50回積算して、誤差時間が1秒になったら誤差時間修正プログラムにその時間データが出力され、時間の修正が行われ、修正時間が時刻表示デバイス4で表示される。第2の実施形態も第1の実施形態と同様の効果を奏する。
本発明のソフトウェア時計の計時プログラムを備える第1の実施形態のソフトウェア時計の概念図。 水晶発振子の温度特性を示す図。 本発明のソフトウェア時計の計時プログラムを備える第2の実施形態のソフトウェア時計の概念図。 従来技術による衛星放送着信電力測定用受信器に用いられる電力計の温度補償を自動的に行う自動温度補償回路図。
符号の説明
1 発振器、2 CPU、3 補正装置、4 時刻表示デバイス、5 温度検出器、11 ソフトウェア時計の計時プログラム、12 クロックカウント補正プログラム、13 時刻計算プログラム、14 温度誤差時間計算プログラム、15 誤差時間修正プログラム、16 温度検出ステップ、17 周波数誤差計算ステップ、18 周波数変動誤差取得ステップ、19 誤差時間計算ステップ、21 分周プログラム、22 周波数カウンタ、111 入力端子、118 加算器、121 データ発生器、122 比較器、123 補正発生カウンタ、126 RAM、127 温度検出器。

Claims (1)

  1. 水晶発信器からのクロックのクロックカウント数に基づいて、設定された初期値からの経過時間を積算して現在時刻を求める時刻計算プログラムと、
    前記クロックカウント数に基づいた一定時間ごとに、温度検出器の入力値を温度検出テーブルで変換した温度データに基づいて周波数変動テーブルを参照して周波数変動誤差を取り出し、誤差時間データを出力する温度誤差時間計算プログラムと、
    前記現在時刻に前記誤差時間データを加減又は減算して表示時間を計算する誤差時間修正プログラムを有するソフトウェア時計の計時プログラムにおいて、
    補正装置からの入力に基づいて、前記水晶発信器からのクロックカウント数を設定したクロックカウント数に補正するクロックカウント補正プログラムを備えること、
    を特徴とするソフトウェア時計の計時プログラム。
JP2005263869A 2005-09-12 2005-09-12 ソフトウェア時計の計時プログラム Pending JP2007078405A (ja)

Priority Applications (1)

Application Number Priority Date Filing Date Title
JP2005263869A JP2007078405A (ja) 2005-09-12 2005-09-12 ソフトウェア時計の計時プログラム

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
JP2005263869A JP2007078405A (ja) 2005-09-12 2005-09-12 ソフトウェア時計の計時プログラム

Publications (1)

Publication Number Publication Date
JP2007078405A true JP2007078405A (ja) 2007-03-29

Family

ID=37938895

Family Applications (1)

Application Number Title Priority Date Filing Date
JP2005263869A Pending JP2007078405A (ja) 2005-09-12 2005-09-12 ソフトウェア時計の計時プログラム

Country Status (1)

Country Link
JP (1) JP2007078405A (ja)

Cited By (11)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2012047705A (ja) * 2010-08-30 2012-03-08 Nec Computertechno Ltd 時刻補正装置、及び制御方法
CN102591197A (zh) * 2012-02-20 2012-07-18 惠州市德赛西威汽车电子有限公司 一种时钟温度误差补偿方法及其系统
JP2013106081A (ja) * 2011-11-10 2013-05-30 Seiko Instruments Inc 熱発電型携帯機器
JP2014169873A (ja) * 2013-03-01 2014-09-18 Rinnai Corp 時計装置および時計装置の補正方法
CN104536283A (zh) * 2014-12-17 2015-04-22 深圳市航盛电子股份有限公司 一种车载温度补偿时钟的电路及方法
JP2015154191A (ja) * 2014-02-13 2015-08-24 株式会社デンソー 電子制御装置
JP2015179092A (ja) * 2015-05-15 2015-10-08 カシオ計算機株式会社 電波時計
JP2016512896A (ja) * 2013-09-04 2016-05-09 チェンドゥ スペーシオン エレクトロニクス カンパニー リミテッドChengdu Spaceon Electronics Co. Ltd. クオーツ電子時計の高精度計時方法
CN111694399A (zh) * 2019-03-15 2020-09-22 瑞鼎科技股份有限公司 调整显示时钟的方法及装置
JP2020192018A (ja) * 2019-05-27 2020-12-03 株式会社パロマ ガス炊飯器
CN112947034A (zh) * 2021-05-13 2021-06-11 北京炬玄智能科技有限公司 一种高精度时钟芯片补偿生产系统及方法

Cited By (14)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2012047705A (ja) * 2010-08-30 2012-03-08 Nec Computertechno Ltd 時刻補正装置、及び制御方法
JP2013106081A (ja) * 2011-11-10 2013-05-30 Seiko Instruments Inc 熱発電型携帯機器
CN102591197A (zh) * 2012-02-20 2012-07-18 惠州市德赛西威汽车电子有限公司 一种时钟温度误差补偿方法及其系统
JP2014169873A (ja) * 2013-03-01 2014-09-18 Rinnai Corp 時計装置および時計装置の補正方法
JP2016512896A (ja) * 2013-09-04 2016-05-09 チェンドゥ スペーシオン エレクトロニクス カンパニー リミテッドChengdu Spaceon Electronics Co. Ltd. クオーツ電子時計の高精度計時方法
JP2015154191A (ja) * 2014-02-13 2015-08-24 株式会社デンソー 電子制御装置
CN104536283A (zh) * 2014-12-17 2015-04-22 深圳市航盛电子股份有限公司 一种车载温度补偿时钟的电路及方法
JP2015179092A (ja) * 2015-05-15 2015-10-08 カシオ計算機株式会社 電波時計
CN111694399A (zh) * 2019-03-15 2020-09-22 瑞鼎科技股份有限公司 调整显示时钟的方法及装置
CN111694399B (zh) * 2019-03-15 2022-02-25 瑞鼎科技股份有限公司 调整显示时钟的方法及装置
JP2020192018A (ja) * 2019-05-27 2020-12-03 株式会社パロマ ガス炊飯器
JP7298878B2 (ja) 2019-05-27 2023-06-27 株式会社パロマ ガス炊飯器
CN112947034A (zh) * 2021-05-13 2021-06-11 北京炬玄智能科技有限公司 一种高精度时钟芯片补偿生产系统及方法
CN112947034B (zh) * 2021-05-13 2021-08-03 北京炬玄智能科技有限公司 一种高精度时钟芯片补偿生产系统及方法

Similar Documents

Publication Publication Date Title
JP2007078405A (ja) ソフトウェア時計の計時プログラム
KR100687230B1 (ko) 알티씨 장치 및 알티씨 장치의 현재시각 보정 방법
US11012032B2 (en) Systems and methods for frequency compensation of real-time-clock systems
EP2369438B1 (en) Calibration method of a real time clock signal
TWI411804B (zh) 補償一時脈偏差之方法以及裝置
GB2428799A (en) Compensating the drift of a local clock in a data acquisition apparatus
JP6282723B2 (ja) クオーツ電子時計の高精度計時方法
JP2009300128A (ja) サンプリング同期装置、サンプリング同期方法
JP2006322840A (ja) デジタルデータ記録装置、及び、そのサンプリングデータ特定方法並びにサンプリングデータ特定用プログラム
KR101942719B1 (ko) 리얼 타임 클럭 장치
CN101995816B (zh) 一种钟表自动校准方法和钟表自动校准装置
US7679466B1 (en) Counter-based resonator frequency compensation
JP5914718B2 (ja) 発振器を有する時間ベース、周波数分割回路及びクロックパルス抑制回路
JP5590174B2 (ja) 温度補償型発振回路、リアルタイムクロック装置および電子機器
US8896359B1 (en) Temperature compensated timing signal generator
CN111897202A (zh) 烟感探测器mcu的rtc校准电路及校准方法
JP2017020852A (ja) 組込装置
JP2003270369A (ja) リアルタイムクロックの時刻補正方法及び時刻補正装置
JP2005140595A (ja) 電波時計及びその時刻修正方法
JP2011182099A (ja) 基準信号発生装置及び方法
JP6728003B2 (ja) 測定値積算装置
JP5821807B2 (ja) 時刻修正装置
JP5831853B2 (ja) 温度補償型発振回路、リアルタイムクロック装置および電子機器
CN113541843A (zh) 一种同步采样信号的同步与守时方法
JP2001217708A (ja) 周波数発振器