以下、本発明の好適な実施形態について図面を用いて詳細に説明する。なお、以下に説明する実施の形態は、特許請求の範囲に記載された本発明の内容を不当に限定するものではない。また以下で説明される構成の全てが本発明の必須構成要件であるとは限らない。
1.計時装置(リアルタイムクロック装置)
1−1.第1実施形態
[計時装置の構成及び動作]
図1は、第1実施形態の計時装置(リアルタイムクロック装置)1の機能ブロック及び計時装置1を用いた処理システムの構成例を示す図である。図1に示すように、当該処理システムは、計時装置1、マスター制御装置2、複数のスレーブ装置3、メイン電源4及びバックアップ電源5を含んで構成されている。
マスター制御装置2は、極めて正確な時刻情報であり、基準となるマスター計時データ200を有しており、各スレーブ装置3からの要求に応じて、あるいは定期的に各スレーブ装置3に配信する。各スレーブ装置3は、自己の内部時刻をマスター計時データ200に合わせて各種の処理を行う。マスター計時データ200は、例えば、マスター制御装置2がGPS(Global Positioning System)あるいはネットワークから取得した時刻情報であり、その計時誤差は、例えば10−6秒以下である。マスター計時データ200は、必要なタイミングで、あるいは定期的に更新される。
マスター制御装置2及び各スレーブ装置3は、メイン電源4から電力が供給されて動作し、メイン電源4からの電力供給が遮断されると動作を停止する。これに対して、計時装置1は、通常はメイン電源4から電力が供給されて計時動作を行うが、メイン電源4からの電力供給が遮断されると、直ちに、バックアップ電源5から供給される電力による計時動作に切り替わる。すなわち、計時装置1は、メイン電源4からの電力供給が遮断されている間も計時動作を継続する。
そして、メイン電源4からの電力供給が再開すると、マスター制御装置2は、マスター計時データ200の更新を試みるが、更新に長い時間(例えば、数分から数十分)を要する場合もある。そこで、マスター制御装置2は、メイン電源4からの電力供給が再開すると、計時装置1から計時データを読み出してマスター計時データ200として代用する。本実施形態では、マスター制御装置2は、計時装置1から年、月、日、時、分、秒、ミリ秒の情報を含む計時データを読み出し、GPSあるいはネットワークから正確な計時データを取得できるまで、計時装置1から読み出した計時データをマスター計時データ200とする。この場合、計時装置1からの計時データには、例えば誤差が1か月当たり13秒
程度(基準周波数からの偏差に換算した場合±5ppm程度)以内となる程度の正確さが求められる。
図1に示すように、計時装置1は、発振回路10、分周回路20、分周回路30、調停回路40、下位計時部50、調停回路60、上位計時部70、インターフェース回路80、記憶回路(記憶部)90及び電源切替回路100を含んで構成されている。ただし、計時装置1は、これらの要素の一部を省略又は変更し、あるいは他の要素を追加した構成としてもよい。この計時装置1は、クロック信号に同期して計時動作を行うことにより計時データを生成するリアルタイムクロック(RTC)の機能を有している。
発振回路10は、発振動作を行うことにより、2のべき乗の周波数、例えば、32768Hz(=215Hz)の周波数を有するクロック信号CLK0を生成する。
図2は、発振回路10の構成例を示す図である。図2に示すように、発振回路10は、振動子11、インバーター(論理反転素子)12、抵抗13、キャパシター14、キャパシター群15、スイッチ回路16及びデコード回路17を含んで構成されている。
インバーター12は、入力端子が振動子11の一端と接続され、出力端子が振動子11の他端と接続されている。抵抗13は、一端がインバーター12の入力端子と接続され、他端がインバーター12の出力端子と接続されている。キャパシター14は、一端が抵抗13の他端と接続され、他端が接地されている。
キャパシター群15は、複数のキャパシターで構成され、当該複数のキャパシターの各々は、一端がインバーター12の入力端子と接続され、他端がスイッチ回路16を介して接地され、あるいはオープン(ハイインピーダンス)となる。スイッチ回路16は、デコード回路17が出力する制御信号に従って、キャパシター群15に含まれる各キャパシターの他端を接地又はオープン(ハイインピーダンス)にする。デコード回路17は、例えば、記憶回路90(図1参照)に記憶されているデータ(容量選択データ)をデコードし、スイッチ回路16の制御信号を出力する。
このように構成されている発振回路10では、インバーター12が、振動子11の出力信号を反転増幅し、反転増幅した信号を振動子11にフィードバックする。これにより、振動子11が固有の共振周波数あるいはこれに近い周波数で発振し、インバーター12の出力信号(振動子11の出力信号を反転増幅した信号)は、クロック信号CLK0として発振回路10から出力される。キャパシター群15の合成容量値を変えることで発振回路10の発振周波数の微調整が可能であるため、例えば、計時装置1の検査工程において、所望の発振周波数が得られる容量選択データが決定されて、記憶回路90が有する不揮発性メモリー(不図示)に書き込まれる。
例えば、発振回路10は、振動子11として音叉型水晶振動子、ATカット水晶振動子、SCカット水晶振動子等を用いた水晶発振回路であってもよいし、振動子11としてSAW(Surface Acoustic Wave)共振子や水晶振動子以外の圧電振動子を用いた発振回路であってもよい。また、発振回路10は、振動子11としてシリコン半導体を材料とするMEMS(Micro Electro Mechanical Systems)振動子を用いた発振回路であってもよい。振動子11は、圧電効果によって励振されてもよいし、クーロン力(静電気力)によって駆動されてもよい。
図1に戻り、発振回路10から出力されるクロック信号CLK0は、分周回路20に供給される。ただし、計時装置1は、発振回路10を省略して、外部から分周回路20にクロック信号CLK0が供給されるようにしても良い。分周回路20は、クロック信号CL
K0を分周することにより、4096Hz(=212Hz)の周波数を有するクロック信号CLK1を生成する。
図3は、分周回路20の構成例を示す回路図である。図3に示すように、分周回路20は、例えば、T(トグル)型フリップフロップ21〜23を直列に接続して構成される。T型フリップフロップ21〜23の各々は、入力端子Tに入力される信号が1周期変化する毎に出力信号を反転することにより、入力端子Tに入力される信号を2分周する。これにより、分周回路20は、例えば、32768Hz(=215Hz)の周波数を有するクロック信号CLK0を8(=23)分周して、4096Hz(=212Hz)の周波数を有するクロック信号CLK1を生成する。なお、図3には、クロック信号CLK0が32768Hz(=215Hz)の場合の分周回路20の構成例が示されているが、クロック信号CLK0が2NHz(Nは13以上の整数)であれば、N−12個のT型フリップフロップが直列に接続された構成にすればよい。
図1に戻り、クロック信号CLK1は、分周回路30に供給されると共に、調停回路40を介して下位計時部50に供給される。分周回路30は、クロック信号CLK1を分周することにより、任意の周波数を有するクロック信号CLK2を生成する。分周回路30は、分周回路20(図3)と同様、分周比に対応した個数のT型フリップフロップによって構成されてもよい。クロック信号CLK2は、計時装置1の内部の各種の回路に供給されてもよいし、計時装置1の外部に出力されて各種の装置に供給されてもよい。
下位計時部50(「第1の計時回路」の一例)は、クロック信号CLK1に同期して計時動作を行うことにより、計時データT1,T0(「第1の計時データ」の一例)を生成する。計時データT1は1/100秒単位の時刻を表す計時データであり、計時データT0は1/1000秒単位の時刻を表す計時データである。すなわち、下位計時部50は、1/1000秒単位で計時データT1,T0を更新する。また、下位計時部50は、クロック信号CLK1に基づいて、1Hzの周波数を有するクロック信号CLK3を生成する。クロック信号CLK3は調停回路40を介して上位計時部70に供給される。さらに、下位計時部50は、上位計時部70の計時動作を停止させるカウントディスエーブル信号CNTDISを生成する。
上位計時部70は、クロック信号CLK1に基づいて生成されたクロック信号CLK3に同期して計時動作を行うことにより、計時データT1,T0が更新される周期よりも長い周期で更新される計時データ、例えば、秒単位の時刻を表す計時データT2〜年単位の時刻を表す計時データT8を生成する。
インターフェース回路80は、計時装置1とマスター制御装置2との間の通信のインターフェース回路であり、マスター制御装置2から各種のコマンドを受信し、受信したコマンドに従って、記憶回路90に対する各種のデータの書き込みや読み出し、各種の制御信号の生成、下位計時部50及び上位計時部70からの計時データの読み出し等を行う。インターフェース回路80は、例えば、SPI(Serial Peripheral Interface)やI2C(Inter-Integrated Circuit)などの各種のシリアルバス対応のインターフェース回路であってもよいし、パラレルバス対応のインターフェース回路であってもよい。
本実施形態では、インターフェース回路80は、アドレスが指定された計時データ読み出しコマンドを受信すると、受信したコマンドにおいて指定されたアドレスに従い、リードイネーブル信号E0〜E8の1つをアクティブ(例えば、ハイレベル)にする。下位計時部50は、リードイネーブル信号E0がアクティブになると、インターフェース回路80に計時データT0を出力し、リードイネーブル信号E1がアクティブになると、インターフェース回路80に計時データT1を出力する。同様に、上位計時部70は、リードイ
ネーブル信号E2〜E8がそれぞれアクティブになると、インターフェース回路80に計時データT2〜T8をそれぞれ出力する。そして、インターフェース回路80は、下位計時部50又は上位計時部70から出力された計時データT0〜T8のいずれかをマスター制御装置2(「外部装置」の一例)に送信する。なお、インターフェース回路80は、計時データ読み出しコマンドを受信すると、リードイネーブル信号E0〜E8を順次アクティブにし、計時データT0〜T8を順次取得し、連続してマスター制御装置2に送信してもよい。
また、本実施形態では、インターフェース回路80は、下位計時部50による計時に用いられる−999ミリ秒〜+999ミリ秒の範囲における1/1000秒単位のオフセットデータが指定されたオフセット設定コマンドを受信すると、受信したコマンドにおいて指定されたオフセットデータを記憶回路90が有するオフセットレジスター91に書き込むと共に、フラグセット信号FSをアクティブ(例えば、ハイレベル)にして下位計時部50に出力する。オフセットレジスター91が保持するオフセットデータOFSは、下位計時部50に供給され、下位計時部50が出力するクリア信号CLR1がアクティブになるとゼロにクリアされる。
記憶回路90は、例えば、オフセットレジスター91を含むレジスター群と、容量選択データ等の制御用の各種データを記憶する不揮発性メモリーとを含んで構成される。不揮発性メモリーに記憶されている各データは、計時装置1の起動時に、不揮発性メモリーから各レジスターに転送されて保持され、各レジスターに保持されたデータに従って、計時装置1の各部が制御される。不揮発性メモリーは、例えば、EEPROM(Electrically
Erasable Programmable Read-Only Memory)やフラッシュメモリーなどの書き換え可能な種々の不揮発性メモリーであってもよいし、ワンタイムPROM(One Time Programmable Read Only Memory)のような書き換え不可能な種々の不揮発性メモリーであってもよい。
調停回路40は、下位計時部50又は上位計時部70から計時データが読み出されている間に計時データが変化しないように、計時データが読み出されている期間においてクロック信号CLK1に含まれているパルスを遅延させる。それ以外の期間において、調停回路40は、分周回路20から供給されるクロック信号CLK1をそのまま出力する。同様に、調停回路60は、上位計時部70から計時データが読み出されている間に計時データが変化しないように、計時データが読み出されている期間においてクロック信号CLK3に含まれているパルスを遅延させる。それ以外の期間において、調停回路60は、下位計時部50から供給されるクロック信号CLK3をそのまま出力する。なお、インターフェース回路80が、必ず、計時データT0〜T8を連続してマスター制御装置2に送信するのであれば、その間、調停回路40がクロック信号CLK1に含まれているパルスを遅延させることにより、調停回路60は不要となる。
電源切替回路100は、計時装置1の各部の電源電圧(動作電圧)として、メイン電源4から所定の電圧値以上の電源電圧VAが供給されている時は電源電圧VAを出力し、メイン電源4からの電源電圧VAが所定の電圧値未満になると、バックアップ電源5から出力される電源電圧VBを出力するように切り替える。すなわち、計時装置1は、電源切替回路100により、メイン電源4から所望の電源電圧VAが供給されない状態でもバックアップ電源5から供給される電源電圧VBによって計時動作を継続することができる。
[上位計時部の構成及び動作]
図4は、上位計時部70の構成例を示す図である。図4に示すように、上位計時部70は、カウンター71a〜74a、シフトレジスター75a、カウンター76a,77a及び出力制御回路71b〜77bを含んで構成されている。出力制御回路71b〜77bの
各々は、例えば、複数のトランスミッションゲート等で構成される。
カウンター71a(「第2の計時回路」の一例)は、クロック信号CLK3に同期してカウント動作を行うことにより、秒単位の時刻を表すカウント値を生成する。例えば、カウンター71aは、60進BCD(バイナリー・コーデッド・デシマル)カウンターであり、クロック信号CLK3のパルスに同期して、十進数の「0」〜「59」を表すBCDカウント値を順次生成する。カウント値が十進数の「59」を表す値に等しくなると、カウンター71aは、クロック信号CLK3の次のパルスに同期して、カウント値を「0」にリセットすると共に、キャリー信号CA1を出力する。ただし、カウンター71aは、カウントディスエーブル信号CNTDISがアクティブのときは、クロック信号CLK3のパルスが供給されてもカウント動作を行わず、その時のBCDカウント値を保持する。
カウンター71aによって生成されるカウント値は、秒単位の時刻を表す計時データT2(「第2の計時データ」の一例)として用いられる。すなわち、カウンター71aは、1秒単位で計時データT2を更新する。出力制御回路71bは、リードイネーブル信号E2がアクティブになると、カウンター71aによって生成される計時データT2をインターフェース回路80に出力する。
カウンター72aは、キャリー信号CA1に同期してカウント動作を行うことにより、分単位の時刻を表すカウント値を生成する。例えば、カウンター72aは、60進BCDカウンターであり、キャリー信号CA1のパルスに同期して、十進数の「0」〜「59」を表すBCDカウント値を順次生成する。カウント値が十進数の「59」を表す値に等しくなると、カウンター72aは、キャリー信号CA1の次のパルスに同期して、カウント値を「0」にリセットすると共に、キャリー信号CA2を出力する。
カウンター72aによって生成されるカウント値は、分単位の時刻を表す計時データT3として用いられる。すなわち、カウンター72aは、分単位で計時データT3を更新する。出力制御回路72bは、リードイネーブル信号E3がアクティブになると、カウンター72aによって生成される計時データT3をインターフェース回路80に出力する。
カウンター73aは、キャリー信号CA2に同期してカウント動作を行うことにより、時単位の時刻を表すカウント値を生成する。例えば、カウンター73aは、24進BCDカウンターであり、キャリー信号CA2のパルスに同期して、十進数の「0」〜「23」を表すBCDカウント値を順次生成する。カウント値が十進数の「23」を表す値に等しくなると、カウンター73aは、キャリー信号CA2の次のパルスに同期して、カウント値を「0」にリセットすると共に、キャリー信号CA3を出力する。
カウンター73aによって生成されるカウント値は、時単位の時刻を表す計時データT4として用いられる。すなわち、カウンター73aは、時単位で計時データT4を更新する。出力制御回路73bは、リードイネーブル信号E4がアクティブになると、カウンター73aによって生成される計時データT4をインターフェース回路80に出力する。
カウンター74aは、キャリー信号CA3に同期してカウント動作を行うことにより、日単位の時刻を表すカウント値を生成する。例えば、カウンター74aは、10進BCDカウンターであり、キャリー信号CA3のパルスに同期して、十進数の「1」〜「31」を表すBCDカウント値を順次生成する。
ただし、月によっては、月の最後の日を「28」又は「30」とする必要があり、うるう年の2月の場合には、月の最後の日を「29」とする必要がある。そこで、カウンター74aは、日単位の時刻を表すカウント値を、月単位の時刻を表すカウント値及び年単位
の時刻を表すカウント値に基づいて設定されたカウント上限値と比較する。カウント値がカウント上限値に等しくなると、カウンター74aは、キャリー信号CA3の次のパルスに同期して、カウント値を「1」にリセットすると共に、キャリー信号CA4を出力する。
カウンター74aによって生成されるカウント値は、日単位の時刻を表す計時データT5として用いられる。すなわち、カウンター74aは、日単位で計時データT5を更新する。出力制御回路74bは、リードイネーブル信号E5がアクティブになると、カウンター74aによって生成される計時データT5をインターフェース回路80に出力する。
シフトレジスター75aは、キャリー信号CA3に同期して、曜日を表す計時データT6を生成する。例えば、シフトレジスター75aは、リング状に接続された7つのD型フリップフロップを含む7ビットのシフトレジスターである。7つのフリップフロップは、日曜〜土曜の7つの曜日に対応している。
初期状態設定時に、インターフェース回路80は、マスター制御装置2から供給される7ビットの初期値データに従って、1つのフリップフロップのデータを「1」にセットすると共に、他のフリップフロップのデータを「0」にリセットする。その後、シフトレジスター75aは、キャリー信号CA3に同期して曜日データを一方向にシフトする。従って、シフトレジスター75aの7つのフリップフロップにおけるデータ「1」の位置によって、現在の曜日が表される。
シフトレジスター75aによって生成される曜日データは、曜日を表す計時データT6として用いられる。すなわち、シフトレジスター75aは、日単位で計時データT6を更新する。出力制御回路75bは、リードイネーブル信号E6がアクティブになると、シフトレジスター75aによって生成される計時データT6をインターフェース回路80に出力する。
カウンター76aは、キャリー信号CA4に同期してカウント動作を行うことにより、月単位の時刻を表すカウント値を生成する。例えば、カウンター76aは、12進BCDカウンターで構成され、キャリー信号CA4のパルスに同期して、十進数の「1」〜「12」を表すBCDカウント値を順次生成する。カウント値が十進数の「12」を表す値に等しくなると、カウンター76aは、キャリー信号CA4の次のパルスに同期して、カウント値を「1」にリセットすると共に、キャリー信号CA5を出力する。
カウンター76aによって生成されるカウント値は、月単位の時刻を表す計時データT7として用いられる。すなわち、カウンター76aは、月単位で計時データT7を更新する。出力制御回路76bは、リードイネーブル信号E7がアクティブになると、カウンター76aによって生成される計時データT7をインターフェース回路80に出力する。
カウンター77aは、キャリー信号CA5に同期してカウント動作を行うことにより、年単位の時刻を表すカウント値を生成する。例えば、カウンター77aは、10進BCDカウンターで構成され、キャリー信号CA5のパルスに同期して、西暦年号の場合に、十進数の「2015」、「2016」、「2017」・・・の下2桁を表すBCDカウント値を順次生成する。
カウンター77aによって生成されるカウント値は、年単位の時刻を表す計時データT8として用いられる。すなわち、カウンター77aは、年単位で計時データT8を更新する。出力制御回路77bは、リードイネーブル信号E8がアクティブになると、カウンター77aによって生成される計時データT8をインターフェース回路80に出力する。
[下位計時部の構成及び動作]
図5は、下位計時部50の構成例を示す図である。図5に示すように、下位計時部50は、カウント制御回路51、カウンター52、出力制御回路53、制御フラグレジスター54、カウンター55、出力制御回路56、データ変換回路57、状態フラグレジスター58及び分周回路59a,59bを含んで構成されている。
カウンター52は、例えば、6ビットバイナリーカウンターで構成される。カウンター52は、1/100秒単位の計時動作を行うために、4096Hzの周波数を有するクロック信号CLK1のパルスに同期してカウント動作を行うことにより、各々のカウントサイクルにおいて、十進数の「0」から「39」までを表す6ビットC5〜C0のカウント値を生成する。ここで、C5は最上位ビットであり、C0は最下位ビットである。
出力制御回路53は、例えば、複数のトランスミッションゲート等で構成される。出力制御回路53は、リードイネーブル信号E0がアクティブになると、カウンター52によって生成されるカウント値の上位4ビットC5〜C2を、1/1000秒単位の時刻を表す4ビットの計時データT0としてインターフェース回路80に出力する。
クロック信号CLK1の1周期は約244マイクロ秒であるので、カウンター52のカウント値の上位4ビットC5〜C2を選択することにより、1/1000秒単位の時刻を表す計時データT0が生成される。このように、本実施形態によれば、1/100秒単位の計時動作を行うために生成される6ビットのカウント値「000000」〜「100111」の上位4ビット「0000」〜「1001」を選択することにより、簡単な回路構成によって消費電流も殆ど増加させずに、1/1000秒単位の時刻として十進数の「0」〜「9」を表す4ビットの計時データT0を生成することができる。
ただし、クロック信号CLK1の4周期は、1/1000秒に対して約−23.4マイクロ秒の誤差を含んでいる。この誤差を無くすために、カウンター52によって行われるカウント動作には、カウント値が「0」〜「39」に順次変化した後に「0」に戻る40カウントのサイクルと、カウント値が2回続けて「39」になった後に「0」に戻る41カウントのサイクルとが含まれる。そこで、下位計時部50には、第40カウントの情報を表す1ビットのカウント制御フラグFL1を格納する制御フラグレジスター54が設けられている。制御フラグレジスター54は、例えば、D型フリップフロップ等で構成される。
カウント制御回路51は、初期状態設定時に、インターフェース回路80から供給されるカウント初期値をカウンター52及びカウンター55に設定すると共に、制御フラグレジスター54に格納されているカウント制御フラグFL1を「0」にリセットする。カウント制御回路51は、例えば、順序回路を含むステートマシンで構成される。
カウンター52によって生成される6ビットC5〜C0のカウント値は、カウント制御回路51にも供給される。カウントサイクルが所定の回数である場合に、カウント制御回路51は、カウンター52によって生成されるカウント値が十進数の「39」を表す値に等しくなると、カウント制御フラグFL1を「1」に設定する。これにより、カウンター52が、クロック信号CLK1の次のパルスが到来してもカウント値を維持し、クロック信号CLK1のさらに次のパルスに同期してカウント値を「0」にリセットする第1の状態遷移が設定される。
一方、カウントサイクルが所定の回数でない場合に、カウント制御回路51は、カウンター52によって生成されるカウント値が十進数の「39」を表す値に等しくなっても、
カウント制御フラグFL1を「0」に維持する。これにより、カウンター52が、クロック信号CLK1の次のパルスに同期してカウント値を「0」にリセットする第2の状態遷移が設定される。
41カウントのサイクルにおいては、1カウントサイクルの期間が、4096Hzの周波数を有するクロック信号CLK1の41周期に相当し、約10.01ミリ秒となる。一方、40カウントのサイクルにおいては、1カウントサイクルの期間が、クロック信号CLK1の40周期に相当し、約9.77ミリ秒となる。従って、カウント制御回路51は、連続する100回のカウントサイクルの内で、41カウントのサイクルを96回設定すると共に、40カウントのサイクルを4回設定することにより、41カウントのサイクルと40カウントのサイクルとにおける誤差が緩和されて、計時データによって表される時刻の誤差を低減することができる。
例えば、カウント制御回路51は、連続する100回のサイクルの内で、第13回、第38回、第63回、及び、第88回以外のサイクルにおいて、カウンター52によって生成されるカウント値が十進数の「39」を表す値に等しくなると、カウント制御フラグFL1を「1」に設定することによって第1の状態遷移を設定する。カウント制御回路51は、第1の状態遷移において、カウンター52のカウント動作を停止すると共に、クロック信号CLK1の次のパルスに同期して、カウント制御フラグFL1を「0」にリセットする。また、カウント制御回路51は、クロック信号CLK1のさらに次のパルスに同期して、カウンター52のカウント動作の停止を解除してカウント値を「0」にリセットすると共に、当該1パルスの間だけカウントイネーブル信号CNTENをアクティブ(例えば、ハイレベル)にする。これにより、41カウントのサイクルが実現される。
また、カウント制御回路51は、連続する100回のサイクルの内で、第13回、第38回、第63回、及び、第88回のサイクルにおいて、カウンター52によって生成されるカウント値が十進数の「39」を表す値に等しくなると、カウント制御フラグFL1を「0」に維持することによって第2の状態遷移を設定する。カウント制御回路51は、第2の状態遷移において、クロック信号CLK1の次のパルスに同期して、カウンター52のカウント値を「0」にリセットすると共に、当該1パルスの間だけカウントイネーブル信号CNTENをアクティブにする。これにより、40カウントのサイクルが実現される。
このように、カウンター52は、4対96の比率で40と41とを選択して4096Hzの周波数を有するクロック信号CLK1のパルスの数を6ビットでカウントし、下位計時部50は、計時データT1,T0の一部である計時データT0として、カウンター52が出力する6ビットのカウント値の上位4ビットのカウント値を出力する。従って、下位計時部50は、カウンター52がカウントする6ビットのカウント値「000000」〜「100111」の上位4ビットのカウント値「0000」〜「1001」により、簡単な回路構成によって消費電流も殆ど増加させずに、1/1000秒単位の時刻として十進数の「0」〜「9」を表す計時データT0を出力することができる。
カウント制御回路51から出力されるカウントイネーブル信号CNTENは、カウンター55に供給される。カウンター55は、カウントイネーブル信号CNTENがアクティブのときにクロック信号CLK1に同期してカウント動作を行うことにより、1/100秒単位の時刻を表すカウント値を生成する。
カウンター55は、例えば、8ビット10進BCDカウンターで構成される。カウンター55によって生成されるBCDカウント値は、十進数の1/10秒の位を表す4ビットB7〜B4と、十進数の1/100秒の位を表す4ビットB3〜B0とを含んでいる。
カウンター55は、カウントイネーブル信号CNTENがアクティブのときにクロック信号CLK1のパルスに同期して、十進数の「0」〜「99」を表すカウント値を順次生成する。カウンター55は、カウント値が十進数の「99」を表す値に等しくなると、次にカウントイネーブル信号CNTENがアクティブのときのクロック信号CLK1のパルスに同期して、カウント値を「0」にリセットする。
カウンター55の100カウントの期間は、4096−1×(41×96+40×4)=1秒となる。また、カウンター55の1カウントの期間は、最大で約±117マイクロ秒の誤差を含むものの、長期的には1/100秒の期間に正確に対応している。
カウンター55によって生成されるカウント値の上位4ビットB7〜B4及び下位4ビットB3〜B0は、1/100秒単位の時刻を表す計時データT1として用いられる。出力制御回路56は、例えば、複数のトランスミッションゲート等で構成され、リードイネーブル信号E1がアクティブになると、カウンター55によって生成される計時データT1をインターフェース回路80に出力する。
また、カウンター55は、十進数の「0」〜「99」をカウントする100回のカウントのサイクルの内で、供給されたクロック信号CLK1の先頭のパルスのみをそのまま出力するサイクルを4回設定すると共に、クロック信号CLK1のパルスを出力しないサイクルを96回設定することにより、4Hzの周波数を有するクロック信号CLK4を出力する。例えば、カウンター55は、カウント値が十進数の「0」、「25」、「50」、「75」である4回のサイクルにおいてのみ、クロック信号CLK1の先頭のパルスを出力することで、クロック信号CLK1に基づいてクロック信号CLK4を生成する。
分周回路59aは、4Hzの周波数を有するクロック信号CLK4を2分周することにより、2Hzの周波数を有するクロック信号CLK5を生成する。また、分周回路59bは、2Hzの周波数を有するクロック信号CLK5を2分周することにより、1Hzの周波数を有するクロック信号CLK3を生成する。クロック信号CLK3の立ち上がりは、カウンター55のカウント値が十進数の「99」から「0」に更新されるタイミングと一致する。
データ変換回路57は、オフセットレジスター91に保持されている−999ミリ秒〜+999ミリ秒の範囲における1/1000秒単位のオフセットデータOFSを、符号付き13ビットのBCDオフセット値に変換して出力する。この符号付き13ビットのBCDオフセット値は、第12ビットが符号値SIGNであり、第11〜4ビットがカウンター55のビットB7〜B0にセットされるオフセット値OFS1であり、第3〜0ビットがカウンター52のビットC5〜C2にセットされるオフセット値OFS0である。オフセットデータOFSが0〜+999ミリ秒の範囲では、符号値SIGNは「0」であり、オフセット値OFS1及びオフセット値OFS0は、それぞれ、オフセットデータOFSに対応する十進数の上位2桁の数値及び下位1桁の数値に相当する。例えば、オフセットデータOFSが+123ミリ秒であれば、13ビットのBCDオフセット値は「0000100100011」(+123に相当)である。一方、オフセットデータOFSが−999ミリ秒〜−1ミリ秒の範囲では、符号値SIGNは「1」であり、オフセット値OFS1及びオフセット値OFS0は、それぞれ、十進数の「1000」からオフセットデータOFSに対応する十進数を減算した上位2桁の数値及び下位1桁の数値に相当する。例えば、オフセットデータOFSが+123ミリ秒であれば、13ビットのBCDオフセット値は「1100001110111」(−877に相当)である。
状態フラグレジスター58は、状態フラグFL2を格納する。状態フラグFL2は、フ
ラグセット信号FSが非アクティブからアクティブに変化するときに「1」に設定される。状態フラグレジスター58は、例えば、SR(セット/リセット)型フリップフロップ等で構成される。
カウント制御回路51は、カウンター55のカウント値が十進数の「99」の時にカウントイネーブル信号CNTENがアクティブとなるタイミングで、状態フラグFL2が「1」であれば、クロック信号CLK1のパルスに同期して、カウンター55のカウント値のビットB7〜B0をオフセット値OFS1に更新すると共に、カウンター52のカウント値のビットC5〜C2をオフセット値OFS0に更新し、ビットC1,C0を「00」に更新する。これと同時に、カウント制御回路51は、クロック信号CLK1の1パルスの間だけクリア信号CLR1を出力し、クリア信号CLR1によりオフセットデータOFSがゼロにクリアされる。また、カウント制御回路51は、符号値SIGNが「1」であれば、クロック信号CLK1のパルスの間だけカウントディスエーブル信号CNTDISをアクティブにすると共に、4Hzの周波数を有するクロック信号CLK4のパルスを出力しない。このカウンター55及びカウンター52の各カウント値をオフセット値OFS1,OFS0に更新する処理(オフセット設定処理)により、上位計時部70による計時データT2(秒)の更新タイミングを1/1000秒単位で変更することができる。オフセット設定処理は、カウンター55及びカウンター52のカウント動作(カウント値を1だけ進める動作)よりも優先して行われる。
図6は、オフセット設定処理が行われない場合の秒更新前後のタイミングチャートの一例を示す図である。また、図7及び図8は、オフセット設定処理が行われる場合の秒更新前後のタイミングチャートの一例を示す図である。
図6の例では、計時データT1(1/100秒)は「99」から「0」に更新されると共に、計時データT0(1/1000秒)は「9」から「0」に更新されるタイミング(秒更新タイミング)において、計時データT2(秒)が「59」から「0」に更新されている。
これに対して、図7及び図8の例では、下位計時部50は、計時データT1(1/100秒)が「99」であり、かつ、計時データT0(1/1000秒)が「9」のときに(計時データT1,T0があらかじめ決められた所定値「999」のときに)、すなわち、計時データT2(秒)を更新する予定のタイミング(秒更新予定タイミング)において、計時データT1(1/100秒),T0(1/1000秒)にオフセット値OFS1,OFS0を設定することで、計時データT2(秒)の更新タイミングを補正している。そのため、図7の例では、クロック信号CLK1(不図示)に同期して、計時データT1(1/100秒)が「99」から「0」(オフセット値OFS1)に更新されると共に、計時データT0(1/1000秒)が「9」から「3」(オフセット値OFS0)に更新されている。また、この秒更新予定タイミングにおいて、計時データT2(秒)が「59」から「0」に更新されている。すなわち、符号値SIGNが「0」(オフセットデータOFSがゼロ又は正の値)の時は、オフセット設定処理のタイミング(秒更新予定タイミング)と秒更新タイミングが一致する。
一方、図8の例では、秒更新予定タイミングにおいて、計時データT1(1/100秒)が「99」を維持する(「99」(オフセット値OFS1)が設定される)と共に、クロック信号CLK1(不図示)に同期して、計時データT0(1/1000秒)が「9」から「7」(オフセット値OFS0)に更新されている。計時データT2(秒)は、この秒更新予定タイミングにおいて「59」を維持し、3/1000秒後に「59」から「0」に更新されている。すなわち、符号値SIGNが「1」(オフセットデータOFSが負の値)の時は、秒更新タイミングがオフセット設定処理のタイミング(秒更新予定タイミ
ング)よりも遅れる。
[計時補正]
上述した計時装置1によるオフセット設定処理は、1/1000秒単位での計時補正に利用される。図9は、マスター制御装置2による計時装置1の計時補正のための処理の手順の一例を示すフローチャート図である。また、図10は、計時装置1による計時補正のための処理の手順の一例を示すフローチャート図である。
図9に示すように、マスター制御装置2は、メイン電源4からの電力供給が開始すると(ステップS10のY)、まず、計時装置1の計時データを使用可能であるか否かを判断する(S20)。例えば、マスター制御装置2は、計時装置1によるバックアップ動作中に(メイン電源からの電力が遮断されている期間に)計時動作に異常がなかったか否かを判定し、異常がなかった場合は計時装置1の計時データを使用可能であると判断し、異常があった場合は使用可能ではないと判断する。例えば、計時装置1が、発振回路10の発振停止や計時装置1の電源電圧(電源切替回路100の出力電圧)が所定の電圧値よりも低下した等の異常を検出する回路を備え、異常検出の結果を示すフラグ情報を記憶回路90に記憶する。そして、マスター制御装置2は、計時装置1から異常検出の結果を示すフラグ情報を読み出して、計時装置1の計時データを使用可能であるか否かを判断してもよい。
マスター制御装置2は、計時装置1の計時データを使用可能であると判断した場合(ステップS20のY)、計時データ読み出しコマンドを計時装置1に送信する(ステップS30)。
次に、マスター制御装置2は、計時装置1から計時データを受信するまで待機し(ステップS40のN)、計時データを受信すると(ステップS40のY)、受信した計時データT0〜T8に基づいてマスター計時データ200を更新する(ステップS50)。なお、図9の手順では、ステップS30,S40により、計時データT0〜T8のすべてを受信するものとするが、少なくとも計時データT0,T1を含む必要な計時データのみを順次受信するようにしてもよい。
一方、マスター制御装置2は、計時装置1の計時データを使用可能でないと判断した場合(ステップS20のN)計時装置1に対して、初期時刻合わせ処理を別途行う(ステップS60)。
次に、マスター制御装置2は、各種の処理を開始する(ステップS70)。マスター制御装置2は、例えば、各スレーブ装置3にマスター計時データ200を配信する処理等を行う。
次に、マスター制御装置2は、GPSやネットワークから時刻情報を取得するまで待機し(ステップS80のN)、時刻情報を取得すると(ステップS80のY)、取得した時刻情報に基づいて、マスター計時データ200を更新する(ステップS90)。
次に、マスター制御装置2は、計時データ読み出しコマンドを計時装置1に送信する(ステップS100)。
次に、マスター制御装置2は、計時装置1から計時データを受信するまで待機し(ステップS110のN)、計時データを受信すると(ステップS110のY)、マスター計時データ200と受信した計時データT0〜T8との相対的なずれを算出し、ずれに応じたオフセットデータを生成する(ステップS120)。マスター制御装置2は、計時データ
T0〜T8がマスター計時データ200よりも遅れている場合は遅れ時間に対応する正の値のオフセットデータを生成し、計時データT0〜T8がマスター計時データ200よりも進んでいる場合は進み時間に対応する負の値のオフセットデータを生成する。
次に、マスター制御装置2は、生成したオフセットデータが指定されたオフセット設定コマンドを計時装置1に送信する(ステップS130)。これにより、計時装置1において、オフセット設定処理が行われ、計時補正が実現される。
次に、マスター制御装置2は、所定時間が経過すると(ステップS140のN)、ステップS100以降の処理を再度行う。ここで、所定時間は、計時補正の周期に対応し、例えば、マスター計時データ200と計時データT0〜T8との相対的なずれが±1秒以上にならない時間であってもよい。このようにすれば、計時補正のために計時データT2〜T8を再設定する必要がなくなり、マスター制御装置2の処理が簡易になる。
一方、所定時間が経過する前にメイン電源4からの電力が遮断されると(ステップS140のN、かつ、ステップS150のY)、マスター制御装置2は、メイン電源4からの電力供給が再開するまで待機する(ステップS10のN)。そして、メイン電源4からの電力供給が再開すると(ステップS10のY)、マスター制御装置2は、ステップS20以降の処理を再度行う。なお、計時装置1は、メイン電源4からの電力が遮断されている間も、バックアップ電源5から供給される電力によって計時動作を継続している。従って、マスター制御装置2は、メイン電源4からの電力供給が再開した直後、計時装置1から、前回のステップS130の処理によって計時補正された比較的精度の高い計時データT0〜T8を用いてマスター計時データ200を更新することができる。その後、マスター制御装置2は、GPSやネットワークから時刻情報を取得してマスター計時データ200を正確な時刻に更新し、正確なマスター計時データ200に基づいて計時装置1の計時補正を行うことができる。
これに対して、図10に示すように、計時装置1は、マスター制御装置2が図9のステップS30又はステップS100で送信する計時データ読み出しコマンドを受信すると(ステップS210のY)、計時データT0〜T8をマスター制御装置2に送信する(ステップS220)。
また、計時装置1は、マスター制御装置2が図9のステップS130で送信するオフセット設定コマンドを受信すると(ステップS230のY)、まず、受信したオフセット設定コマンドで指定されたオフセットデータをオフセットレジスター91に書き込む(ステップS240)。
次に、計時装置1は、オフセットレジスター91に保持されているオフセットデータOFSを符号値SIGN及びオフセット値OFS1,OFS0に変換する(ステップS250)。
次に、計時装置1は、秒更新予定タイミングが到来するまで待機する(ステップS260のN)。そして、計時装置1は、秒更新予定タイミングが到来すると(ステップS260のY)、下位計時部50のカウンター55,52のカウント値をオフセット値OFS1,OFS0に更新し(ステップS270)、ステップS210以降の処理を再度行う。
このように、マスター制御装置2及び計時装置1がそれぞれ図9及び図10に示す処理を行うことにより、定期的に、計時データT1,T0とマスター計時データ200とに基づいてマスター制御装置2によって生成されたオフセットデータOFS(「第1の補正値」の一例)が記憶回路90(オフセットレジスター91)に記憶され、計時データT2の
更新予定タイミングで、計時データT1,T0にオフセットデータOFS(オフセット値OFS1,OFS0)が設定される。これにより、計時装置1の1/1000秒単位での計時補正が定期的に行われる。
[作用効果]
以上に説明したように、本実施形態では、マスター制御装置2は、計時装置1から読み出した計時データT0〜T8と正確なマスター計時データ200との相対的なずれを算出し、ずれを無くすためのオフセットデータOFSを計時装置1に送信する。そして、計時装置1は、オフセットデータOFSを受信してオフセットレジスター91に記憶させる。計時装置1の下位計時部50は、オフセットレジスター91に記憶されているオフセットデータOFS(オフセット値OFS1,OFS0)を計時データT1(1/100秒),T0(1/1000秒)に設定することで、計時データT2(秒)の更新タイミングを補正する。具体的には、計時装置1は、−999ミリ秒〜−1ミリ秒の範囲のオフセットデータOFSが設定されることで、計時データT2(秒)の更新タイミングを1/1000秒単位で遅らせ、+1ミリ秒〜+999ミリ秒の範囲のオフセットデータOFSが設定されることで、計時データT2(秒)の更新タイミングを1/1000秒単位で進める。ここで、計時データT0〜T8の読み出しに要する通信遅延は1/1000秒単位では毎回同じなので、仮に、マスター制御装置2が補正直後の計時データT0〜T8を読み出すと、マスター計時データ200とのずれがゼロとなる。換言すれば、計時装置1がマスター計時データ200に対して計時データT0〜T8の読み出しに要する遅延時間分だけずれて計時を行うことにより、マスター制御装置2が読み出した計時データT0〜T8がマスター計時データ200と一致する状態(計時データT0〜T8をマスター計時データ200として代用可能な状態)となる。このように、第1実施形態の計時装置1によれば、マスター制御装置2との通信遅延も含めた計時のずれがオフセットデータOFSによって補正されるので、従来よりも簡単に正確な計時補正を行うことができる。
1−2.第2実施形態
図11は、第2実施形態の計時装置(リアルタイムクロック装置)1の機能ブロック及び計時装置1を用いた処理システムの構成例を示す図である。図11において、図1と同様の構成要素には同じ符号を付しており、以下では、第2実施形態について、第1実施形態と異なる内容を中心に説明し、第1実施形態と重複する説明を省略する。
図11に示すように、第2実施形態の計時装置1は、第1実施形態の計時装置1と同様、発振回路10、分周回路20、分周回路30、調停回路40、下位計時部50、調停回路60、上位計時部70、インターフェース回路80、記憶回路90及び電源切替回路100を含み、さらに計時補正部110を含む。また、第2実施形態の計時装置1では、記憶回路90に計時補正データ92が記憶されている。
計時補正データ92は、時間の経過に伴って生じる計時のずれを補正するためのデータであり、補正値(「第2の補正値」の一例)の情報と補正周期の情報とを含んでいる。例えば、振動子11の精度や振動子11の経年変化等の情報に基づいて、計時装置1の計時が1年間にX秒程度遅れる(あるいは進む)ことがあらかじめ分かっている場合は、補正周期をYか月、補正値を+X×Y/12秒(あるいは−X×Y/12秒)とする計時補正データが設定されてもよい。例えば、補正値が−999ミリ秒〜+999ミリ秒の範囲となるように(X×Y/12<1)となるようなYが選択される。計時補正データ92(補正値及び補正周期)は、計時装置1の検査工程等において、あらかじめ記憶回路90が有する不揮発性メモリー(不図示)に書き込まれてもよいし、マスター制御装置2によって記憶回路90に書き込まれてもよい。また、計時補正データ92(補正値及び補正周期)は、計時装置1の動作中に可変であってもよい。
計時補正部110は、記憶回路90に記憶されている計時補正データ92に基づいて、計時データT1(1/100秒),T0(1/1000秒)を補正する。具体的には、計時補正部110は、計時補正データ92に含まれる補正周期と計時データT2〜T8とに基づいて、補正周期が経過したか否かを判断する。そして、計時補正部110は、補正周期が経過する毎に、計時補正データ92に含まれる補正値をオフセットデータOFSとしてオフセットレジスター91に書き込むと共に、フラグセット信号FS2をアクティブ(例えば、ハイレベル)にして下位計時部50に出力する。オフセットレジスター91が保持するオフセットデータOFSは、下位計時部50に供給され、下位計時部50が出力するクリア信号CLR1がアクティブになるとゼロにクリアされる。
このように、第2実施形態の計時装置1では、オフセットレジスター91を兼用し、第1実施形態の計時装置1と同様、マスター制御装置2からオフセット設定コマンドを受信することによって1/1000秒単位での計時補正を行うことが可能であると共に、計時補正データ92に含まれる補正周期で周期的に1/1000秒単位での計時補正を行うことができる。
なお、計時補正データ92に含まれる補正値として+1秒以上又は−1秒以下の値を許容してもよい。この場合、計時補正部110は、補正値の1秒未満の値をオフセットレジスター91に書き込んで計時データT1(1/100秒),T0(1/1000秒)を補正(オフセット補正)すると共に、補正値の1秒以上の値に基づいて計時データT2(秒)〜T8(年)の少なくとも一部を補正すればよい。
図12は、第2実施形態における下位計時部50の構成例を示す図である。図12に示すように、第2実施形態における下位計時部50は、第1実施形態における下位計時部50(図5)と同様の構成に加えて、さらに、論理和回路120を含んで構成されている。
論理和回路120は、フラグセット信号FSとフラグセット信号FS2の論理和信号を出力する。すなわち、論理和回路120は、フラグセット信号FS及びフラグセット信号FS2の少なくとも一方がハイレベル(アクティブ)のときはハイレベル(アクティブ)の信号を出力し、フラグセット信号FS及びフラグセット信号FS2が共にローレベル(非アクティブ)のときはローレベル(非アクティブ)の信号を出力する。そして、状態フラグレジスター58が格納する状態フラグFL2は、論理和回路120の出力信号が非アクティブからアクティブに変化するときに「1」に設定される。すなわち、状態フラグFL2は、フラグセット信号FS又はフラグセット信号FS2が非アクティブからアクティブに変化するときに「1」に設定される。
第2実施形態における下位計時部50のその他の構成及び機能は、第1実施形態における下位計時部50(図5)と同様であるため、その説明を省略する。
なお、オフセット設定コマンドの受信による計時補正及び計時補正データ92に基づく計時補正の一方が行われている間に他方の開始タイミングが到来することが生じ得る場合には、先に開始タイミングが到来した計時補正が終了するのを待ってから後に開始タイミングが到来した計時補正が行われるように、調停回路を設ければよい。
図13は、第2実施形態の計時装置1による計時補正のための処理の手順の一例を示すフローチャート図である。図13において、図10と同じ処理を行うステップには同じ符号が付されている。なお、マスター制御装置2による計時補正のための処理の手順は、第1実施形態(図9)と同様であるため、その図示及び説明を省略する。
図10に示すように、まず、計時装置1は、記憶回路90から計時補正データを読み出
し、補正周期を設定する(ステップS200)。
次に、計時装置1は、計時データ読み出しコマンドを受信すると(ステップS210のY)、計時データT0〜T8をマスター制御装置2に送信する(ステップS220)。
また、計時装置1は、オフセット設定コマンドを受信すると(ステップS230のY)、オフセット設定コマンドで指定されたオフセットデータをオフセットレジスター91に書き込み(ステップS240)、オフセットレジスター91に保持されているオフセットデータOFSを符号値SIGN及びオフセット値OFS1,OFS0に変換する(ステップS250)。
次に、計時装置1は、秒更新予定タイミングが到来するまで待機し(ステップS260のN)、秒更新予定タイミングが到来すると(ステップS260のY)、下位計時部50のカウンター55,52のカウント値をオフセット値OFS1,OFS0に更新し(ステップS270)、ステップS210以降の処理を再度行う。
一方、計時装置1は、計時データ読み出しコマンドを受信しなければ(ステップS210のN)、計時データT2〜T8に基づいて、ステップS200で設定した補正周期が経過したか否かを判定する(ステップS232)。そして、計時装置1は、補正周期が経過していなければ(ステップS232のN)、ステップS210以降の処理を再度行う。
また、計時装置1は、補正周期が経過していれば(ステップS232のY)、記憶回路90から計時補正データを読み出し、補正値をオフセットデータとし、かつ、補正周期を設定する(ステップS234)。
次に、計時装置1は、オフセットデータ(補正値)をオフセットレジスター91に書き込み(ステップS240)、オフセットレジスター91に保持されているオフセットデータOFSを符号値SIGN及びオフセット値OFS1,OFS0に変換する(ステップS250)。
次に、計時装置1は、秒更新予定タイミングが到来するまで待機し(ステップS260のN)、秒更新予定タイミングが到来すると(ステップS260のY)、下位計時部50のカウンター55,52のカウント値をオフセット値OFS1,OFS0に更新し(ステップS270)、ステップS210以降の処理を再度行う。
このような処理により、計時補正データ92で指定された補正周期で、計時データT1,T0に計時補正データ92で指定された補正値が設定されて計時補正が行われる。
以上に説明した第2実施形態の計時装置1では、計時装置1の下位計時部50は、計時補正データ92で指定された補正周期で、オフセットレジスター91に記憶されているオフセットデータOFS(オフセット値OFS1,OFS0)(計時補正データ92で指定された補正値)を計時データT1(1/100秒),T0(1/1000秒)に設定することで、計時データT2(秒)の更新タイミングを補正する。従って、例えば、マスター制御装置2からオフセット設定コマンドを受信することによる計時補正が長期間行われないような状況であっても、計時補正データ92に含まれる補正周期で周期的に1/1000秒単位での計時補正を行うことにより、経年変化等によって生じる計時のずれを補正することができる。
1−3.変形例
[変形例1]
上記各実施形態では、1Hzの周波数のクロック信号CLK3は、下位計時部50が生成して出力しているが、分周回路によって4096Hzのクロック信号CLK1を4096分周して生成されてもよい。図14は、変形例1の計時装置1の構成例を示す図である。図14の例は、第2実施形態(図11)を変形したものであるが、第1実施形態(図1)を同様に変形してもよい。図14において、図11と同様の構成要素には同じ符号を付しており、第1実施形態又は第2実施形態と異なる内容を中心に説明し、第1実施形態又は第2実施形態と重複する説明を省略する。
図14に示すように、変形例1の計時装置1は、第2実施形態の計時装置1(図11)に対して、分周回路30及び調停回路60に代えて分周回路130及び調停回路140を備えている。分周回路130は、4096Hz(=212Hz)の周波数を有するクロック信号CLK1を4096分周することにより、1Hzの周波数を有するクロック信号CLK3を生成する。分周回路130は、分周回路20(図3)と同様、分周比に対応した12個のT型フリップフロップによって構成されてもよい。クロック信号CLK3は、調停回路140を介して上位計時部70に供給される。
調停回路140は、上位計時部70から計時データが読み出されている間に計時データが変化しないように、計時データが読み出されている期間においてクロック信号CLK3に含まれているパルスを遅延させる。それ以外の期間において、調停回路140は、分周回路130から供給されるクロック信号CLK3をそのまま出力する。また、調停回路140は、上位計時部70が計時データを更新する際に秒単位以上の計時データT2〜T8と1/100秒単位の計時データT1及び1/1000秒単位の計時データT0との間で矛盾が生じないように、クロック信号CLK3に同期して下位計時部50のカウンター55,52(図5参照)を強制的にリセットする。調停回路140は、例えば、組み合わせ回路又は順序回路を含む論理回路等で構成される。
なお、下位計時部50は、クロック信号CLK3を出力する必要がないので、図12に示した構成のうち、分周回路59a,59bは不要である。
変形例1の計時装置1によれば、上記の各実施形態と同様の効果を奏すると共に、例えば、クロック信号CLK3を生成して秒単位以上の時刻を表す複数のカウント値を生成するための回路構成が、秒単位以上の計時動作を行う従来の機種と同様のシンプルな構成を保つことができるので、回路レイアウト等に関して従来の機種との互換性を高めることができる。
[変形例2]
上記の各実施形態では、1Hzの周波数を有するクロック信号CLK3の生成を容易にするために、発振回路10が2のべき乗の周波数(32768Hz(=215Hz))を有するクロック信号CLK0を出力するようにしている。すなわち、上記の各実施形態では、例えば、共振周波数が32768Hz付近である振動子11が用いられており、そのため、カウンター52が40と41とを選択して4096Hzの周波数を有するクロック信号CLK1のパルスの数をカウントし、擬似的に1/1000秒単位の計時データT0を作成している。これに対して、変形例2の計時装置1は、共振周波数が2のべき乗×1kHzの周波数を有する振動子11を用いることにより、正確な1/1000秒単位の計時データT0を作成する。例えば、共振周波数が32000Hz付近である振動子11を用いて、発振回路10が32000Hzのクロック信号CLK0を出力し、分周回路20がクロック信号CLK0を32分周して1kHzのクロック信号CLK1を生成し、下位計時部50に供給する。図示を省略するが、下位計時部50は、図5に示した構成に対してカウンター52が4ビット10進BCDカウンターに置き換えられ、カウンター52がクロック信号CLK1のパルスをカウントして計時データT0(1/1000秒)を生成
し、カウント制御回路51がカウンター52の桁上げ時にカウントイネーブル信号CNTENをアクティブ(例えば、ハイレベル)にする。また、8ビット10進BCDカウンターであるカウンター55が、カウントイネーブル信号CNTENがアクティブのときにクロック信号CLK1に同期してカウント動作を行うことにより、計時データT1(1/100秒)を生成する。そして、上位計時部70は、クロック信号CLK1に基づいて、具体的には下位計時部50のカウンター55からの桁上げ信号(1秒周期の信号)に基づいて、計時データT2〜T8を生成すればよい。なお、図5の構成における制御フラグレジスター54及び分周回路59a,59bは不要である。
上記の各実施形態と同様、この変形例2の計時装置1においても、計時データT2(秒)の更新予定タイミングで、オフセットデータOFS(オフセット値OFS1,OFS0)が計時データT1(1/100秒),T0(1/1000秒)に設定されて計時データT2(秒)の更新タイミングが補正されるので、従来よりも簡単に正確な計時補正を行うことができる。
2.電子機器
図15は、本実施形態の電子機器の構成の一例を示す機能ブロック図である。また、図16は、本実施形態の電子機器の一例であるスマートフォンの外観の一例を示す図である。
本実施形態の電子機器300は、計時装置310、制御部320、操作部330、記憶部340、通信部350、表示部360及び音出力部370を含んで構成されている。なお、本実施形態の電子機器300は、図15の構成要素(各部)の一部を省略又は変更し、あるいは、他の構成要素を付加した構成としてもよい。
計時装置310は、計時動作を行い、制御部320からのコマンドに従って計時データを出力する。
制御部320は、記憶部340等に記憶されているプログラムに従い、各種の計算処理や制御処理を行う。具体的には、制御部320は、操作部330からの操作信号に応じた各種の処理、他の機器とデータ通信を行うために通信部350を制御する処理、表示部360に各種の情報を表示させるための表示信号を送信する処理、音出力部370から各種の音を出力させるための音信号を送信する処理等を行う。また、制御部320は、計時装置310から計時データを読み出して(受信して)各種の計算処理や制御処理を行うと共に、計時データの補正値としての例えば1/1000秒単位でのオフセットデータを送信する。制御部320は、例えば、MCU(Micro Controller Unit)やMPU(Micro Processor Unit)によって実現される。
操作部330は、操作キーやボタンスイッチ等により構成される入力装置であり、ユーザーによる操作に応じた操作信号を制御部320に出力する。制御部320は、例えば、操作部330から入力される信号に応じて、計時装置310に時刻情報を設定することができる。
記憶部340は、制御部320が各種の計算処理や制御処理を行うためのプログラムやデータ等を記憶している。また、記憶部340は、制御部320の作業領域として用いられ、記憶部340から読み出されたプログラムやデータ、操作部330から入力されたデータ、制御部320が各種プログラムに従って実行した演算結果等を一時的に記憶する。記憶部340は、ROM(Read Only Memory)やRAM(Random Access Memory)を含んで構成され、例えば、ハードディスク、フレキシブルディスク、MO、MT、各種のメモリー、CD−ROM、又は、DVD−ROM等によって実現される。
通信部350は、制御部320と外部装置との間のデータ通信を成立させるための各種制御を行う。
表示部360は、LCD(Liquid Crystal Display)等により構成される表示装置であり、制御部320から入力される表示信号に基づいて各種の情報を表示する。表示部360には操作部330として機能するタッチパネルが設けられていてもよい。
音出力部370は、スピーカー等によって構成され、制御部320から入力される音信号に基づいて各種の情報を音や音声として出力する。
計時装置310として例えば上述した各実施形態の計時装置1を適用することにより、例えば、長期間にわたって高い信頼性を維持する電子機器を実現することができる。なお、制御部320、あるいは、制御部320及び記憶部340が上述した各実施形態のマスター制御装置2に相当し、表示部360、音出力部370、あるいは、制御部320が通信部350を介して通信する外部装置がスレーブ装置3に相当する。
このような電子機器300としては種々の電子機器が考えられ、例えば、電子時計、パーソナルコンピューター(例えば、モバイル型パーソナルコンピューター、ラップトップ型パーソナルコンピューター、タブレット型パーソナルコンピューター)、スマートフォンや携帯電話機などの移動体端末、ディジタルカメラ、インクジェット式吐出装置(例えば、インクジェットプリンター)、サーバー(タイムサーバー)やルーター、スイッチなどのストレージエリアネットワーク機器、ローカルエリアネットワーク機器、移動体端末基地局用機器、テレビ、ビデオカメラ、ビデオレコーダー、カーナビゲーション装置、リアルタイムクロック装置、ページャー、電子手帳(通信機能付も含む)、電子辞書、電卓、電子ゲーム機器、ゲーム用コントローラー、ワードプロセッサー、ワークステーション、テレビ電話、防犯用テレビモニター、電子双眼鏡、POS端末、医療機器(例えば電子体温計、血圧計、血糖計、心電図計測装置、超音波診断装置、電子内視鏡)、魚群探知機、有線又は無線の通信機能を有し各種のデータを送信可能なガスメーターや水道メーターや電力量計(スマートメーター)等の各種測定機器、計器類(例えば、車両、航空機、船舶の計器類)、フライトシミュレーター、ヘッドマウントディスプレイ、モーショントレース、モーショントラッキング、モーションコントローラー、PDR(歩行者位置方位計測)等が挙げられる。
3.移動体
図17は、本実施形態の移動体の構成の一例を示す機能ブロック図である。また、図18は、本実施形態の移動体の一例である自動車の外観の一例を示す図(上面図)である。本実施形態の移動体400は、計時装置410、演算処理装置420及び制御装置430,440,450を含んで構成されている。なお、本実施形態の移動体は、図17及び図18の構成要素(各部)の一部を省略し、あるいは、他の構成要素を付加した構成としてもよい。
計時装置410は、計時動作を行い、演算処理装置420からのコマンドに従って計時データを出力する。
演算処理装置420は、内蔵される不図示の記憶部等に記憶されているプログラムに従い、各種の計算処理や制御処理を行う。具体的には、演算処理装置420は、制御装置430,440,450を制御する処理を行う。また、演算処理装置420は、計時装置410から計時データを読み出して(受信して)各種の計算処理を行うと共に、計時データの補正値としての例えば1/1000秒単位でのオフセットデータを送信する。
制御装置430,440,450は、例えば、移動体400に対して、エンジンシステム、ブレーキシステム、キーレスエントリーシステム等の各種制御を行う。
計時装置410として例えば上述した各実施形態の計時装置1を適用することにより、例えば、長期間にわたって高い信頼性を維持する移動体を実現することができる。なお、演算処理装置420が上述した各実施形態のマスター制御装置2に相当し、制御装置430,440,450がスレーブ装置3に相当する。
このような移動体400としては種々の移動体が考えられ、例えば、自動車(電気自動車も含む)、ジェット機やヘリコプター等の航空機、船舶、ロケット、人工衛星等が挙げられる。
本発明は本実施形態に限定されず、本発明の要旨の範囲内で種々の変形実施が可能である。
上述した実施形態および変形例は一例であって、これらに限定されるわけではない。例えば、各実施形態および各変形例を適宜組み合わせることも可能である。
本発明は、実施の形態で説明した構成と実質的に同一の構成(例えば、機能、方法及び結果が同一の構成、あるいは目的及び効果が同一の構成)を含む。また、本発明は、実施の形態で説明した構成の本質的でない部分を置き換えた構成を含む。また、本発明は、実施の形態で説明した構成と同一の作用効果を奏する構成又は同一の目的を達成することができる構成を含む。また、本発明は、実施の形態で説明した構成に公知技術を付加した構成を含む。