(57)【要約】【課題】  水晶時計の時刻が時間の経過とともにずれていく問題を解決した電子機器を提供する。【解決手段】  時刻をカウントし現在時刻を出力する温度補償型水晶発振器リアルタイムクロックと、外部から入力される商用交流電源の正弦波電圧を降圧する変圧器と、該変圧器により降圧された電圧を正の電圧へと変換する差動増幅器と、該差動増幅器により出力される正弦波電圧を周期的にサンプリングして正弦波電圧値のデジタルデータとするＡＤ変換器と、該正弦波電圧値のデジタルデータの中央電圧のクロス点を計数して累積回数を求め、該累積回数に対応する時間を、計数開始時点の前記温度補償型水晶発振器リアルタイムクロックの時刻に加算して時刻誤差を補正する電子回路とを備える。【選択図】  図１
2007327871.tif 000002
【特許請求の範囲】
【請求項１】
時刻をカウントし現在時刻を出力する温度補償型水晶発振器リアルタイムクロックと、
外部から入力される商用交流電源の正弦波電圧を降圧する変圧器と、
該変圧器により降圧された電圧を正の電圧へと変換する差動増幅器と、
該差動増幅器により出力される正弦波電圧を周期的にサンプリングして正弦波電圧値のデジタルデータとするＡＤ変換器と、
該正弦波電圧値のデジタルデータの中央電圧のクロス点を計数して累積回数を求め、該累積回数に対応する時間を、計数開始時点の前記温度補償型水晶発振器リアルタイムクロックの時刻に加算して時刻誤差を補正する電子回路と、
を備えたことを特徴とする電子機器。
【請求項２】
商用交流電源の正弦波電圧信号のサージ電圧を吸収するサージアブソーバと、
電圧ノイズをフィルタリングするライン・フィルタとを前記変圧器の入力部前段に備え、
さらに、前記変圧器と前記差動増幅器との間に、交流周波数を通過周波数帯域とするバンドパス・フィルタを備えたことを特徴とする請求項１記載の電子機器。
【請求項３】
商用交流電源の正弦波周波数を、ＡＤ変換器を用い一定周期でサンプリング入力し、マイクロコンピュータのプログラム制御で、同正弦波の中央電位クロス電位点間の時間周期を求め、交流電源の周波数の５０Ｈｚ、６０Ｈｚを判定することを特徴とする電子機器。
【請求項４】
水晶発振子の温度に対する周波数誤差を補正する補正回路を持った高精度リアルタイムクロックモジュールＩＣを使用して、同ＩＣによる開始時刻情報をメモリ装置に記憶し、一方、商用交流電源の正弦波電圧をＡＤ変換器へ入力可能な電圧範囲に変換した後、ＡＤ変換器を使用してサンプリング・データ化して、同正弦波電圧の中央値をクロスする電位点を検出し、その電位点の出現回数を数え上げることで、その時計の基準単位情報を数え上げ、時刻経過情報としてメモリ装置に記憶し、時刻経過情報が一定値になった時に、前記リアルタイムクロックモジュールＩＣから、終了時刻情報を読み取り、終了時刻情報と開始時刻情報の時差間での時刻経過情報の累積時間誤差を０と見做し、前記リアルタイムクロックモジュールＩＣの持つ開始時刻情報の累積時刻誤差を補正することを特徴とする電子機器の時刻修正方法。
【請求項５】
商用交流電源の通電状態・周波数変動が正常かどうかをＡＤ変換器のデータのサンプリングにより判定するステップと、サンプリングされた交流正弦波電圧の周期時間値が、使用する商用交流電源の正弦波周波数の周期時間規定値に対して一定の誤差以内に収まるか否かを判別するステップとを更に備え、同周期誤差が一定範囲に無い場合は時刻修正の手順をリセットして再度行うことを特徴とする請求項４記載の電子機器の時刻修正方法。
【請求項６】
正弦波電圧値のデジタルデータの中央電圧のクロス点を計数して累積回数を求め、該累積回数に対応する時間を、計数開始時点の前記温度補償型水晶発振器リアルタイムクロックの時刻に加算して時刻誤差を補正するプログラムを記憶した記憶媒体。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、時計機能を利用する電子機器、時刻修正方法、及び記憶媒体に関する。
【背景技術】
【０００２】
従来、時計機能を利用する電子機器として以下のようなものが知られている。
【０００３】
（１）（交流同期時計）商用交流電源の周波数５０Ｈｚ、６０Ｈｚに同期し、交流の１秒間あたりの振幅回数を数え上げ、周波数５０Ｈｚならば振幅回数５０を１秒、周波数６０Ｈｚならば振幅回数６０を１秒と見なして時刻を刻む時計が市販されている。
【０００４】
（２）（水晶時計）水晶発振器の発振周波数を分周して時計の基準単位信号を生成し、時刻を刻む水晶時計が市販されている。
【０００５】
（３）（ＴＣＸＯ内蔵高精度リアルタイムクロック（ＲＴＣ）ＩＣ）ＴＣＸＯ内蔵高精度ＲＴＣには、例えば、周波数３２．７６８［ｋＨｚ］として、温度補償型水晶発振器（ＴＣＸＯ）、水晶振動子を１つのパッケージに統合したＩＣが市販されている。こうした市販ＩＣには、０［℃］〜＋４０［℃］の範囲で±２．０［ｐｐｍ］という高精度のものもある。
【０００６】
（４）（電波時計）電波時計はＪＪＹの電波を受信し、水晶時計の時刻を補正するものが市販されている。
【０００７】
（５）（ＮＴＰ／ＳＮＴＰサーバ・クライアント・システム）原子時計等の正確な時計に接続されたコンピュータを時刻サーバとして、ＮＴＰ／ＳＮＴＰプロトコルによるネットワーク経由で、サーバから現在の正確な時刻をクライアント・コンピュータ側で取得し、時刻合わせをするＮＴＰサーバ、ＳＮＴＰサーバがインターネット上で運用されている。そうした時刻サーバに接続するクライアント・コンピュータ側では、通信遅延時間等も補正して現在時刻を得ている。
【０００８】
（６）（無線ＬＡＮまたはＰＬＣによる時計）無線ＬＡＮまたはＰＬＣ（商用交流電源ライン上にデジタル変調された高周波を重畳する通信）を用い、オフィス内の基準時計から、商用電源線上に時計情報を配信し、他の複数の時計を同期させる方式が知られている。
【０００９】
（７）商用交流電源の周波数精度が高い特性と、温度センサを利用し、温度対発振周波数の変化特性から、水晶発振式リアルタイムクロックの誤差を修正する構成が知られている（例えば、特許文献１参照。）。
【００１０】
（８）商用交流電源の周波数に同期して時刻を刻むのを時計としての基本動作とし、停電があった場合は、予備電源を使ってその停電時刻を不揮メモリへ記憶し、不揮発メモリに記憶された停電時刻と停電期間の時間を加味して現在時刻への補正を行う構成が知られている（例えば、特許文献２参照。）。
【００１１】
（９）商用交流電源の周波数に同期して時刻を刻むのを時計としての基本動作とし、停電中には、水晶発振器などの基準信号発信機のクロック信号を基準信号へ交替させて時刻の維持を図る構成が知られている（例えば、特許文献３参照。）。
【００１２】
（１０）過去に設定された時刻から、現在設定する現在時刻までの経過時間について、時計のずれ時間量が経過時間に比例すると考えて、時刻の修正量を比例の関係から計算して、時計の時刻を補正する構成が知られている（例えば、特許文献４参照。）。
【００１３】
（１１）現在普及しているパソコンは、ＣＰＵのチップセットと呼ばれるローカルバスにリアルタイムクロックＩＣを接続している。
【００１４】
（１２）商用交流電源の周波数精度が高い特性を利用して、水晶発振式時計の誤差を一定時間周期で修正する構成が知られている（例えば、特許文献５参照。）。
【００１５】
【特許文献１】特開平１１−３２５５４７号公報
【特許文献２】特開２００５−２８３５３２号公報
【特許文献３】特公昭５８−０３８８３９号公報
【特許文献４】特許第３４４５７４２号公報
【特許文献５】特開平０７−２１９６７３号公報
【発明の開示】
【発明が解決しようとする課題】
【００１６】
以下、前述の従来技術に上げた番号（１）〜（１２）に対応させて、その問題点としての課題を述べる。
【００１７】
（１）「交流同期時計」は、商用電源の交流周波数から５０Ｈｚまたは６０Ｈｚの信号を計数可能なパルス信号に変換して、１／５０分周、または１／６０分周のパルス信号を１秒信号として計数し、時刻データをデジタル・カウンタに記憶させ、その時刻データを表示している。現在の商用交流電源の周波数は、電気事業法による正確な周波数の維持努力が定められており、実績±０．０２Ｈｚの精度（（株）東京電力：２００６年２月現在）があるため、高精度の時計基準信号として利用するのに良好な特性をもっている。現在の実運用では、瞬間的な時間区間の絶対時差誤差は最大±５［ｓ］であるが、時差の積算誤差が集積しないよう、累積時間時差が０［ｓ］になるように電源周波数の調整がされている。
【００１８】
具体的には、周波数が低下して時差が−５［ｓ］となった場合には、基準周波数を５０．０２［Ｈｚ］に変更し、時差が０となったら基準周波数を５０．００［Ｈｚ］に戻し、周波数が上昇して時差が＋５［ｓ］となった場合は、基準周波数を４９．９８［Ｈｚ］に変更し、時差が０となったら基準周波数を５０．００［Ｈｚ］に戻すという周波数制御がされている。
【００１９】
このため、商用交流電源を時計の基準信号としてそのまま使用する時計では、原理的に長期的に時差が０であるため、長時間でみると正確な時刻を刻む利点があるが、瞬間的時差として最大±５［ｓ］の誤差の発生が避けられない問題がある。
【００２０】
一方、デジタル式交流同期時計は、前述の１［ｓ］信号を得るにあたって、トランス等を用いて、交流電圧を一定の電圧に変換後、正弦波電圧を一定の閾値電圧で、コンパレータ素子などを使用し、Ｈｉｇｈ信号、Ｌｏｗ信号を繰り返すパルス周期電圧信号へ変換することで、５０Ｈｚまたは６０Ｈｚの基準パルス信号を生成している。
【００２１】
しかし、商用交流電源には、他の電気装置からのスイッチングノイズ、雷やその誘導雷によるサージノイズの混入が避けられず、交流同期時計が、それらのノイズを時刻計数のためのパルス信号と誤認した場合に、時刻のずれが発生してしまう問題がある。また、商用交流電源の停電時に、交流周波数のカウントが出来ないため、時刻を刻めなくなる問題がある。
【００２２】
（２）水晶時計は、３２．７６８ｋＨｚの水晶振動子を使用した発振器の出力周波数を１／３２７６８（＝２＾１５）分周して、１秒の基準パルスを得ているものが多い。水晶時計の精度は、この水晶発振器の発振周波数精度に依存して決まる。市販の３２．７６８ｋＨｚ水晶発振子の一例には、±４０ｐｐｍ程度の精度のものがある。水晶発振周波数が正確であることは良く知られているが、それでもこうした例で±４０ｐｐｍの精度は、日間誤差±３．４５６秒以内、月間誤差±１分４３秒以内、年間誤差約±２１分以内というかなり大きな時刻誤差が起こってしまう特性的問題がある。
【００２３】
また、水晶発振器の特性として、温度に対して、その周波数誤差は、放物線特性となることが知られており、高温や低温では、その誤差は−１５０ｐｐｍ以上にもなる。その精度は、日間誤差約１３秒の遅れ、年間誤差１．３時間以上もの遅れになってしまう問題がある。
【００２４】
（３）ＴＣＸＯ内蔵高精度リアルタイムクロックＩＣは、高精度ながらも、その時刻誤差は、−４０［℃］〜０［℃］または＋４０［℃］〜＋８５［℃］の精度が±３．５ｐｐｍであり、１年で±１．８［分］に相当する。水晶発振器の周波数誤差は、温度Ｔ［Ｋ］での周波数変化Δｆに対して次の式による放物線の特性となる。
【００２５】
Δｆ／ｆ＝ｋ（Ｔ−Ｔ０）２＋ｆ０
ここで、ｆは水晶の公称周波数［Ｈｚ］、ｋはｋ＜０となる定数で、Ｔは温度［Ｋ］、Ｔ０は変曲点の温度［Ｋ］、ｆ０はＴ＝Ｔ０での周波数偏差Δｆ／ｆの最大値である。このＲＴＣは、内蔵のＴＣＸＯによって、温度に対する水晶曲線の放物線特性が相当分に平坦化される。こうした誤差に対して、ＴＣＸＯやレジスタ補償という方法で、最も高精度化の図られたリアルタイムクロックでも、−４０℃〜０℃または＋４０℃〜＋８５℃の精度は±３．５ｐｐｍであり、１年で±１．８分にも相当する誤差にまで及んでしまう問題がある。
【００２６】
（４）電波時計は、ＪＪＹの標準時刻電波（４０ｋＨｚ、６０ｋＨｚ）を受信して、その電波内の時刻情報で水晶時計の時刻を補正するものである。この方式の問題は、電波（長波帯）の受信できない場所、例えば、鉄筋コンクリートの建物内、地下鉄構内、地下街等のＪＪＹ電波の届かない場所、サービス地域外で時刻修正が出来ないことにより、水晶発振器の周波数精度に依存して、時刻に誤差が出てくる問題がある。
【００２７】
（５）ＮＴＰ／ＳＮＴＰサーバを利用した時刻修正は、ネットワークが利用できない環境のコンピュータ、または、ＮＴＰサーバ、ＳＮＴＰサーバと接続の出来ないネットワークでは時刻修正ができない、ＮＴＰ／ＳＮＴＰサーバの常時サービスは必ずしも保証されず同サービスが停止されていると時刻修正が出来ない、という問題がある。
【００２８】
（６）無線ＬＡＮまたはＰＬＣによる時計では、基準となる時計サーバが、管理下の全ての時計を持つコンピュータへ時刻情報を配信し、それぞれの管理下のコンピュータが時刻情報を受信するシステムになるので、システム構成がそれ相当分複雑となり、コストが高くなる問題がある。また、ＰＬＣでは、用いる電波が短波帯であるため、短波利用機器等への電波受信障害が発生する問題もある。
【００２９】
（７）特許文献１の蓄電式空気調和装置では、商用交流電源と温度センサを用いて水晶発振周波数を補正する概念のみが示されているが、それを実現可能な手段、あるいは方式が記述されておらず、装置を具体化して実現出来ない。
【００３０】
（８）特許文献２の時計機能付制御装置、及び、（９）特許文献３の多段系統信号発生装置は、商用交流電源周波数を時計の基準信号として使用するが、前述のように、交流電源上に混入するノイズ除去の手段が無いために、電源ノイズを計数することによる時刻誤差を発生し得る問題がある。
【００３１】
(１０)特許文献４の時刻データ作成方法は、水晶時計の時刻誤差が経過時間に比例するという仮定の元に成り立つ時刻補正方式である。しかし、水晶発振周波数は、実際には温度で変化する特性があり、また、温度特性も経年変化する特性がある。このため、この方式は、一定温度という条件下でないと正確な時刻修正を行うことは出来ず、温度変化による時刻誤差、水晶発振器の発振周波数の経時特性変化による時刻ずれを補正出来ない問題がある。
【００３２】
(１１)パソコンの持つリアルタイムクロックによる時刻は、パソコン立ち上げ時にＢＩＯＳから読み出され、以降は、Ｗｉｎｄｏｗｓ（登録商標）がその値をベースに内部のソフトウェアタイマーで時刻が管理されるため、時刻がずれてくる問題がある。このため、単にパソコン内のリアルタイムクロックＩＣの高精度化を測っただけでは、パソコンの時刻を正確にすることは出来ない問題がある。
【００３３】
(１２)特許文献５の電子機器は、一定時間間隔で、水晶時計の誤差を交流周波数のカウント値から時刻補正するという方式上、一定時間の間隔を水晶発振器周波数のカウント誤差の累積が１秒以内になるような値にしないと、それ以上の時刻誤差が発生してしまう問題がある。
【００３４】
例えば、３２．７６８ｋＨｚの水晶発振器において、±４０ｐｐｍの誤差があり、３日周期での一定時間間隔で時刻を補正する場合を考える。３日間では、時計の誤差は±１０．３６８秒もの誤差になり、ここで修正が入る迄には、１〜１０秒程度の時刻のずれた時間区間が長時間継続することになる。このケースでは、時刻誤差を１秒未満に抑えるためには、少なくとも６時間５６分４０秒以内に時刻修正を行わなければならない。
【００３５】
ここで、仮に６時間間隔で時刻補正を行うと仮定する。このとき、６時間の間は継続して安定した交流周波数が計数される必要があるが、この間に商用交流電源にノイズが載ると６時間内のパルスカウント数がずれ、時刻修正がずれて行われる。
【００３６】
すなわち、特許文献５の、交流周波数からパルス信号を取り出す方式は、交流電源上に載るサージノイズや電気機器のノイズを除去する手段が考慮されておらず、単に、整流された脈流電圧について一定の閾値を越えた電圧をコンパレータでパルス波へ変換するという方式であるため、同閾値電圧を超えるような交流電源上のノイズが混入すると、そのノイズ成分も補正カウンタに加算されてしまい、正確な時計基準信号を取り出せず、時刻誤差が発生し得る問題がある。
【００３７】
このように、特許文献５により、水晶時計の時差を商用交流電源周波数の累積カウントで修正する方式は公知であるが、この方式には、時刻修正が行なわれる前の時間区間に、水晶発振器の発振周波数誤差による時差が発生する問題と、交流周波数の周期時間の正確さを観測していないために、他の電気製品のスイッチングノイズや、雷のサージノイズが交流電源に混入すると、交流周波数の正弦波信号と区別できず、誤った交流周波数の累積カウントによる時刻修正誤差が発生する問題がある。
【００３８】
従って、本発明は、高精度な水晶振動子を用いたＲＴＣによる基準周波数を、商用周波数で補正する構成において、ノイズ混入時の時刻修正誤差の発生を防止し、正確な時刻を維持した時計機能を実現することを目的とする。
【課題を解決するための手段】
【００３９】
上記課題を解決するため、本発明では、時刻をカウントし現在時刻を出力する温度補償型水晶発振器リアルタイムクロックと、外部から入力される商用交流電源の正弦波電圧を降圧する変圧器と、該変圧器により降圧された電圧を正の電圧へと変換する差動増幅器と、該差動増幅器により出力される正弦波電圧を周期的にサンプリングして正弦波電圧値のデジタルデータとするＡＤ変換器と、該正弦波電圧値のデジタルデータの中央電圧のクロス点を計数して累積回数を求め、該累積回数に対応する時間を、計数開始時点の前記温度補償型水晶発振器リアルタイムクロックの時刻に加算して時刻誤差を補正する電子回路と、
を備えたことを特徴とする。
【００４０】
また、商用交流電源の正弦波電圧信号のサージ電圧を吸収するサージアブソーバと、電圧ノイズをフィルタリングするライン・フィルタとを前記変圧器の入力部前段に備え、さらに、前記変圧器と前記差動増幅器との間に、交流周波数を通過周波数帯域とするバンドパス・フィルタを備えたことを特徴とする。
【００４１】
また、商用交流電源の正弦波周波数を、ＡＤ変換器を用い一定周期でサンプリング入力し、マイクロコンピュータのプログラム制御で、同正弦波の中央電位クロス電位点間の時間周期を求め、交流電源の周波数の５０Ｈｚ、６０Ｈｚを判定することを特徴とする。
【００４２】
また、水晶発振子の温度に対する周波数誤差を補正する補正回路を持った高精度リアルタイムクロックモジュールＩＣを使用して、同ＩＣによる開始時刻情報をメモリ装置に記憶し、一方、商用交流電源の正弦波電圧をＡＤ変換器へ入力可能な電圧範囲に変換した後、ＡＤ変換器を使用してサンプリング・データ化して、同正弦波電圧の中央値をクロスする電位点を検出し、その電位点の出現回数を数え上げることで、その時計の基準単位情報を数え上げ、時刻経過情報としてメモリ装置に記憶し、時刻経過情報が一定値になった時に、前記リアルタイムクロックモジュールＩＣから、終了時刻情報を読み取り、終了時刻情報と開始時刻情報の時差間での時刻経過情報の累積時間誤差を０と見做し、前記リアルタイムクロックモジュールＩＣの持つ開始時刻情報の累積時刻誤差を補正することを特徴とする。
【００４３】
また、商用交流電源の通電状態・周波数変動が正常かどうかをＡＤ変換器のデータのサンプリングにより判定するステップと、サンプリングされた交流正弦波電圧の周期時間値が、使用する商用交流電源の正弦波周波数の周期時間規定値に対して一定の誤差以内に収まるか否かを判別するステップとを更に備え、同周期誤差が一定範囲に無い場合は時刻修正の手順をリセットして再度行うことを特徴とする。
【００４４】
更に、正弦波電圧値のデジタルデータの中央電圧のクロス点を計数して累積回数を求め、該累積回数に対応する時間を、計数開始時点の前記温度補償型水晶発振器リアルタイムクロックの時刻に加算して時刻誤差を補正するプログラムを記憶した記憶媒体を特徴とする。
【発明の効果】
【００４５】
本発明により、水晶発振器の温度による周波数誤差、振動子個別の周波数誤差、振動子の経時特性変化から影響を受けない、正確な時刻修正が出来、その結果、正確な時刻情報を得ることが可能となる。
【発明を実施するための最良の形態】
【００４６】
以下、本発明を、実施例に基づき詳細に説明する。
【００４７】
図１に、本発明の一実施例である電子機器及びこれに接続される上位装置を示す全体構成図である。
【００４８】
商用交流電源１は、実効値１００Ｖ、周波数５０Ｈｚまたは６０Ｈｚの単相交流である。この商用電源は、１００Ｖの周波数５０Ｈｚ、６０Ｈｚのものに限定されず、例えば、実効値２００Ｖ、５０Ｈｚ、６０Ｈｚ三相交流の商用電源へも、一相の周波数を利用することで適用可能である。
【００４９】
サージ・アブソーバ２は、雷、静電気放電、スイッチングなどにより発生するサージ、すなわち、過渡的な過大電圧から本電子機器を保護すると同時に、サージ電圧による交流正弦波のサンプリング誤りを防止する。サージ・アブソーバ２として使用できる代表的なものには、バリスタ、シリコン・サージ防護素子、ガス避雷管などがある。
【００５０】
ライン・フィルタ３は、交流電源に含まれるノイズ成分を減衰させる。
【００５１】
変圧器４は、ＡＤ変換器１４への入力を目的として、実効値１００Ｖ交流を±５Ｖｐｅｐへ変換する変圧トランスである。
【００５２】
バンドパス・フィルタ（ＢＰＦ）５は、抵抗、コンデンサ、オペアンプを使用して、電源周波数の帯域５０Ｈｚ〜６０Ｈｚを通過させ、電源周波数帯域から離れたノイズ周波数を減衰させる。図２に、バンドパス・フィルタ５の内部回路構成を示す。
【００５３】
差動増幅器６は、オペアンプにより、変圧器４出力の±５Ｖｐｅｐを、ＡＤ変換器１４が入力できる電圧範囲である０〜＋５Ｖへ変換する。図３に、差動増幅器６の内部回路構成を示す。また、図４に、差動増幅器の入力波形及Ｗｉｎ及び出力波形Ｗｏｕｔの例を示す。
【００５４】
ワンチップ型マイコン１２は、内部にＣＰＵコア１５、ＲＯＭ１６、ＲＡＭ１７、ＡＤ変換器１４、Ｉ／Ｏ回路１３、汎用インタフェイス（Ｉ／Ｆ）回路１８を持ち、それらが内部バス１９で接続され、一つのパッケージとしたＬＳＩである。
【００５５】
ＲＯＭ１６内に、本発明の時計機能を実現する制御プログラム２０を格納し、ＣＰＵコア１５は、そのプログラムを実行して、ＲＯＭ１６、ＲＡＭ１７、ＡＤ変換器１４、Ｉ／Ｏ回路１３、汎用インタフェイス（Ｉ／Ｆ）回路１８を制御する。
【００５６】
ＡＤ変換器１４は、差動増幅器６からの正弦波を０〜＋５Ｖのアナログ電圧を入力し、それをデジタル値に変換したデータを、ＣＰＵコア１５へ渡す。市販のワンチップ型マイコン１２のＡＤ変換器１４は、複数のアナログ電圧の入力端子（チャネル）を持つものが多く、本実施例ではそのうちの１チャネルを交流電源起源の正弦波入力に使用する。
【００５７】
バックアップ電池９は、ダイオード１０を介して高精度ＲＴＣ１１へ接続し、商用交流電源１が供給されず、このため直流安定化電源７からの５Ｖ電源が供給されない場合にも、高精度ＲＴＣ１１の動作を可能とするための電流を供給する。
【００５８】
Ｉ／Ｏ回路１３は、ＣＰＵコア１５の制御下で、高精度ＲＴＣ１１との信号のやりとりを仲介する。
【００５９】
汎用Ｉ／Ｆ回路１８は、ＲＳ−２３２Ｃ等の汎用インタフェイス回路であって、これにより、上位装置のマイコン装置２２との、コマンドやデータの書き込み、読み込みを行なう。
【００６０】
なお、マイコン装置２２は、本電子機器の上位装置で、マイコン制御の汎用機能を実現する。マイコン装置２２に接続する表示装置２３は液晶モニタやＣＲＴ等を意味し、入力装置２４はキーボード、マウス等を意味する。
【００６１】
高精度ＲＴＣ１１は、現在の日付と時刻をリアルタイムに、ＣＰＵの制御ではなく自立的に刻む市販のＩＣである。本発明で利用する高精度ＲＴＣ１１は、内部にＴＣＸＯと呼ばれる温度補償された水晶発振器を持ち、さらに、温度による水晶発振器の周波数誤差を補正する回路を内蔵したものである。
【００６２】
次に、図１を使用して、本実施例の電子機器の電気信号とデジタルデータ情報の流れを説明する。ワンチップ型マイコン１２動作用の５Ｖ電源は、直流安定化電源７により供給され、電源オンのタイミングで、リセット回路２１がワンチップ型マイコン１２にリセット信号を与え、これにより、制御プログラム２０がプログラムを実行する。リセット回路２１は、商用交流電源１が停電または接続を断たれた後に再通電された時にも動作し、同様に制御プログラム２０がプログラムを先頭から実行する。
【００６３】
電子装置の初期時刻を設定する時、ユーザは、マイコン装置２２を使用して、表示装置２３の案内表示内容に従い、マウスやキーボードなどの入力装置２４により、「初期設定時刻」を入力する。ユーザの入力した「初期設定時刻情報」は、ＲＳ−２３２Ｃ、ＵＳＢ等の汎用インタフェイスを利用し、汎用Ｉ／Ｆ回路１８を介してワンチップ型マイコン１２側へ送られる。これを受けたワンチップ型マイコン１２は、Ｉ／Ｏ回路１３を介して、ＴＣＸＯ内蔵高精度ＲＴＣ１１へ「初期設定時刻」を設定して、以降、高精度ＲＴＣ１１は自立的に時刻を刻む。以降、ワンチップ型マイコン１２は、商用交流電源１が供給されている条件にて、一定周期（例えば、２４時間毎）で、ＴＣＸＯ内蔵高精度ＲＴＣ１１からの現在時刻の情報を読み取り、交流正弦波の累積カウントを基準にして、時刻差の補正を行なう。
【００６４】
一方、上位装置であるマイコン装置２２も、汎用Ｉ／Ｆ回路１８を介して電子機器と通信し、必要時に電子機器の時刻情報を得る。
【００６５】
商用交流電源１の１００Ｖ（実効電圧）周波数５０Ｈｚまたは６０Ｈｚからの正弦波電圧は、サージ・アブソーバ２を通過して、サージ電圧がある場合はここで吸収する。これにより、雷や誘導雷などのサージ・ノイズを拾うことによる交流正弦波周波数のサンプリングが正しくできなくなる問題の解決を図る。
【００６６】
サージ・アブソーバ２を通過した交流正弦波は、ライン・フィルタ３を通過して、他の交流電源に接続された電気機器の発生するスイッチング・ノイズや放送波など無線強電磁界による高周波電圧の誘導電圧ノイズ等をフィルタリングする。
【００６７】
ライン・フィルタ３を通過した１００Ｖ交流は、変圧器４により、±５Ｖｐｅｐの交流へ減圧される。変圧器４は、巻き線式変圧トランスを用いることで、交流線上のコモンモード・ノイズ（同相ノイズ）をキャンセルする効果を得ることも出来る。
【００６８】
変圧器４により得られた交流正弦波±５Ｖｐｅｐは、サージ・アブソーバ２、ライン・フィルタ３、変圧器４を通過しているので、相当のノイズが除去されているが、さらに５０Ｈｚ〜６０Ｈｚを通過帯域とするバンドパス・フィルタ（ＢＰＦ）５でノイズの除去を行なう。ＢＰＦ５は、５０Ｈｚ〜６０Ｈｚというような低周波では、抵抗、コンデンサ、オペアンプを使用した、例えば、図２のようなものが一例として考えられる。このバンドパス・フィルタの例では、５０Ｈｚ〜６０Ｈｚ近辺にカットオフ周波数を設定しても、必要周波数帯域外の近接した不用周波数信号を除去することが回路特性上困難であるが、フィルタの通過周波数帯域をある程度離れた、例えば１００Ｈｚ、２００Ｈｚ程度の周波数ではフィルタ効果があり、数ｋＨｚ程度の周波数になってくると、より大きなフィルタ効果（−３０ｄＢ以上＠１ｋＨｚ）が期待できる。
【００６９】
こうして、ＢＰＦ５を通過した信号は、ノイズが相当量減衰された純度の高い周波数５０Ｈｚまたは６０Ｈｚの正弦波±５Ｖｐｅｐの信号となり、さらに差動増幅器６により、ＡＤ変換器１４の電圧入力範囲になるように、０〜＋５Ｖの正弦波へ一次変換される。
【００７０】
ＡＤ変換器１４は、制御プログラム２０により制御されたＣＰＵコア１５の制御下で、０〜＋５Ｖの正弦波を周期的にサンプリング入力してデジタルデータへ変換し、ＣＰＵコア１５内部へ取り込む。
【００７１】
周期的にサンプリングされた正弦波電圧のデジタルデータを制御プログラム２０は入力して、交流正弦波の中央電圧のクロス点を認識し、その累積カウントを求める。
【００７２】
高精度ＲＴＣ１１は、商用交流電源１が供給されていない場合でも、バックアップ電池９の供給する電力で、自立して時刻を刻む。その時刻は、３２．７６８ｋＨｚで±３ｐｐｍ程度の高精度を期待できる。
【００７３】
現在市販されているＴＣＸＯによらない３２．７６８ｋＨｚの水晶振動子の周波数誤差は、±２０ｐｐｍ〜±４０ｐｐｍ程度なので、日間誤差：±１．７［秒］〜±３．５［秒］、月間誤差：±５１［秒］〜±１分４４［秒］、年間誤差：±１０分３１［秒］〜±２１分２秒と、経過時間に対し相当量の時刻誤差が累積されてしまう。
【００７４】
これに対し、ＴＣＸＯ内蔵の高精度ＲＴＣ１１は、周波数誤差±３ＰＰＭ程度で、日間誤差：±０．２６［秒］、月間誤差：±７．８［秒］、年間誤差：±１分３５［秒］と時刻誤差が小さくなる。
【００７５】
このように、高精度ＲＴＣ１１では、一般のＴＣＸＯによらない水晶発振器に比較して、相当量の周波数安定精度があり、電子装置をバッテリ駆動で動作させ、商用交流電源１から切り離した状態でも、時刻誤差の累積を最小のレベルにできる。
【００７６】
また、商用交流電源１が供給されている場合に、時計の時差の許容誤差を±１［秒］未満と仮定すると、時刻修正は約３日内に行なえば良いことになる。例えば、一定時間が連続１日（２４時間）では、交流周波数の累積カウントが誤差０になる特性を利用して、１日１回の時刻修正で、日間秒誤差±１秒未満を容易に達成でき、商用交流電源１への電子機器への接続が続く限り、半永久的に時刻誤差は±１秒未満を維持できる。
【００７７】
ワンチップ型マイコン１２は、前述の高精度ＲＴＣ１１から現在時刻を取得し、ＡＤ変換器１４から得た正確な正弦波の累積カウント誤差と比較して、現在時刻の累積誤差が０となるように現在時刻を修正する。
【００７８】
この時刻修正の原理を、図５に示す波形グラフを用いて説明する。
【００７９】
図４のように、ＡＤ変換器１４に入力される交流正弦波電圧は、０［Ｖ］〜＋５［Ｖ］を電圧範囲として、時刻ｔ［ｓ］について、
ｖ（ｔ）＝Ｖｍ（ｓｉｎ２πｆｔ＋１）／２    ・・・式（１）
Ｖｍ＝５［Ｖ］
ｆ＝５０［Ｈｚ］
で表せる。
【００８０】
式（１）の中間電圧の式は、
ｙ＝Ｖｍ／２＝２．５［Ｖ］    ・・・式（２）
で表せる。
【００８１】
ここでｖ（ｔ）は、一定時間ｈ［時間］を決定すると、ｈ［時間］以内に一定回数だけ式（２）の電圧（＝２．５［Ｖ］）をクロスする交流の中間電圧点がある。すなわち、交流周波数をｆ［Ｈｚ］と置くと、サンプリング時間ｈ［時間］内に、式（２）の電圧をクロスする電圧点の個数Ｃは、
Ｃ＝ｆ×２×６０×６０×ｈ＋１［回］    ・・・式（３）となる。
【００８２】
カウント開始時の高精度ＲＴＣ１１の時刻をＴ１［ｓ］とし、交流周波数の上記電圧クロス点のカウントがＣ［回］（言い換えると、一定時間ｈ［時間］）になったとき、即ち、カウント終了時の高精度ＲＴＣ１１の時刻をＴ２［ｓ］とすると、
Δｔ＝Ｔ２−Ｔ１−６０×６０×ｈ［ｓ］    ・・・式（４）
式（４）が正弦波サンプリング区間＝ｈ［時間］＝６０×６０×ｈ［秒］間に発生した高精度ＲＴＣ１１の時差Δｔ［ｓ］である。
【００８３】
よって、時刻Ｔ２［ｓ］の瞬間で、時差Δｔ［ｓ］を修正した現在時刻Ｔ［ｓ］は、
Ｔ＝Ｔ２−Δｔ    ・・・式（５）
＝Ｔ１＋６０×６０×ｈ
で表せる。
【００８４】
以上が、時刻修正の原理である。時刻修正の原理は、ある程度長い時間を経過すると交流電源周波数の累積カウント時点で正確に誤差が０［ｓ］になる（累積カウント数から逆算した時間が、カウント開始時点からの時差となる）という特性に基づいている。このため、交流電源周波数の累積カウントをいかに正確に行なうかが、時刻精度を正確化するための重要なポイントになる。
【００８５】
次に、この交流電源周波数の累積カウントを正確に行なう本発明の原理を説明する。
【００８６】
式（２）で表される中間電位Ｖｍ／２をクロスする隣接する２点の電位点を検出するまでの時間は、１／（２×ｆ）であり、この間にサンプリング周期ｔｓ［回］で、Ｘ［回］のＡＤ変換のサンプリングを実行すると仮定すると、
ｔｓ×Ｘ≒１／（２×ｆ）    ・・・式（６）
が成立する。
【００８７】
式（６）の逆数をとると、
１／（ｔｓ×Ｘ）≒２×ｆ    ・・・式（６’）
を得る。
【００８８】
十分に小さな正の整数εを定義すると、式（６’）は、
｜１／（ｔｓ×Ｘ）−２×ｆ｜＜ε    ・・・式（６”）
で表せる。
【００８９】
ここで、例えば、サンプリング周期ｔｓ＝１［ｍｓ］、交流周波数ｆ＝５０［Ｈｚ］と仮定すると、５０Ｈｚ半周期＝１０［ｍｓ］でのサンプリング数Ｘは、Ｘ≒１０なので、交流周波数の誤差を１０％以内とすれば、例えば、ε＝１０程度が実用的な値となる。
【００９０】
式（２）で表される中間電位Ｖｍ／２をクロスする電位点検出について、式（６”）の条件が成立する限り、その検出回数をカウントすれば、正確な交流正弦波という条件下で交流周波数の振幅回数を累積してカウントできる。ノイズの混入があった場合や、交流周波数がずれてしまった場合は、式（６”）が成り立たないので、累積カウントを最初からやり直せばよい。以上のようにして、交流電源の正弦波周波数を、正確に累積カウントすることができる。
【００９１】
上記説明してきた時刻修正の原理は、制御プログラム２０により実現する。
【００９２】
以下、制御プログラム２０の構造とアルゴリズムを説明する。
【００９３】
制御プログラムでは、３種類の割り込みを処理する。それぞれ、一定周期でＡＤ変換のサンプリングをするためのタイマー割り込み、シリアルデータの送受信用ＵＡＲＴ（Ｕｎｉｖｅｒｓａｌ  Ａｓｙｎｃｈｒｏｎｏｕｓ  Ｒｅｃｅｉｖｅｒ  ａｎｄ  Ｔｒａｎｓｍｉｔｔｅｒ）の１バイト受信終了割り込み、１バイト送信終了割り込みである。本実施例では、割り込みの優先度は、タイマー割り込みを最優先とし、その優先度の下に、受信終了割り込み、送信終了割り込みを置くことで、時間にずれのない正確なサンプリングを可能とする。
【００９４】
制御プログラム２０は、次の構成による。
・初期化タスク
・時刻修正タスク
・送受信タスク
・タイマー割込式ＡＤ変換サンプリング処理
・受信割り込み処理
・送信割り込み処理
・タスクスケジューラ
これらのプログラムの機能について説明する。「初期化タスク」は、「時刻修正タスク」と「送受信タスク」を起動し、自タスクを停止する。「初期化タスク」の停止後、「送受信タスク」、「時刻修正タスク」が、マルチ・タスクとして時分割で並列に実行される。タスクの実行優先順位の条件は、時刻修正タスクの実行優先度が、送受信タスクより高いことを条件とする。
【００９５】
「送受信タスク」は、本発明の電子装置側で、シリアルデータによるマイコン装置２２とのコマンド／データの送受信を行なう。
【００９６】
「タイマー割り込み式ＡＤ変換サンプリング処理」は、周期ｔｓ［ｓ］の周期タイマー割り込み処理で、ｔｓ［ｓ］毎のタイマー割り込み発生事象のタイミングで、ＡＤ変換器１４のＡＤ変換処理を開始させ、ＡＤ変換終了後に、タスク実行待ち状態になっている「時刻修正タスク」の待ちを解除する。
【００９７】
「受信割込処理」は、シリアルデータ通信の１バイト受信の割り込み発生毎に、受信バッファへ受信バイトの格納と、受信待ちによるタスク実行待ち状態になっている「送受信タスク」の待ち状態の解除を行なう。
【００９８】
「送信割込処理」は、シリアルデータ通信の１バイト送信終了割り込み毎に、送信終了待ちによってタスク実行待ち状態になっている「送受信タスク」の待ち状態の解除を行なう。
【００９９】
「タスクスケジューラ」は、タスクの起動（ｓｔａｒｔ）、タスクを停止状態にする（ｓｔｏｐ）、タスクを待ち状態にする（ｗａｉｔ）、タスクの待ち状態を解除する（ｐｏｓｔ）のシステムコールを用意し、タスク処理及び割り込み処理からのシステムコールがあった場合に、マルチ・タスクを、時分割に並列に実行する制御を行なう。
【０１００】
次に、各プログラムの処理手順をフローチャートにより説明する。
【０１０１】
図５に、「初期化タスク」のフローチャートを示す。
【０１０２】
「初期化タスク」は、直流安定化電源７から５Ｖ電圧が供給された時に、リセット回路２１の発生するリセット信号解除のタイミングで実行を開始する。
【０１０３】
ステップＡ０１０、Ａ０２０にて、システムコール（ｓｔａｒｔ）を使用して、「時刻修正タスク」、「送受信タスク」の順番でそれぞれのタスクを起動し、それぞれタスク実行可能状態にする。その後、割り込み禁止を解除すると（Ａ０３０）、以降、タイマー割り込みがｔｓ［ｓ］毎に周期的に発生し、また、シリアル送受信の割り込み処理が可能となる。
【０１０４】
ステップＡ０４０で自タスク停止（ｓｔｏｐ）の処理が実行されると、スケジューラが「初期化タスク」の状態を停止状態にし、ステップＡ０１０により実行可能状態となった「時刻修正タスク」へ実行を移す。ステップＡ０４０後に、ステップＡ０１０へ戻すのは、制御プログラムの内部論理によるリセット動作を想定し、制御プログラムを実行先頭へ戻すためである。
【０１０５】
図７に、「時刻修正タスク」のフローチャートを示す。
【０１０６】
「時刻修正タスク」は、「初期化タスク」により起動され、「初期化タスク」が停止に入った後に、「スケジューラ」から実行の制御が移され、プログラム実行を開始する。
【０１０７】
ステップＢ０１０〜Ｂ０３０では、正弦波周波数が５０Ｈｚまたは６０Ｈｚと判定されるまでの繰り返し処理を実行する。正弦波周波数に周波数の異常が無い限り、通常は、「正弦波周波数の判定」手続きの実行で、変数ｆに５０または６０が、変数ｅｒｒ＿ｃｏｄｅに０が格納され、ステップＢ０４０へ進む。
【０１０８】
ここで一旦、説明を、ステップＢ０２０で呼び出される「正弦波周波数の判定」へ移す。
【０１０９】
図８に、「正弦波周波数の判定」手続きのフローチャートを示す。
【０１１０】
最初にステップＣ０１０で、正弦波の中間電位クロス点の立ち上がりフェーズのタイミングを捉える。
【０１１１】
また、図１３に、この正弦波の中間電位クロス点の立ち上がりタイミングを捉える考え方を示した。
【０１１２】
すなわち、隣接した３点の交流正弦波の中間電位クロス点を捉え、それらの隣接したクロス点の時間差が、どちらも５０Ｈｚまたは６０Ｈｚの半周期に相当する時間幅であり、かつ、現在捉えている図１３のタイミングｔ０において、正弦波が立ち上がりフェーズにある条件で、時刻ｔ０でのクロス点検出タイミングで、ステップＣ０１０の実行を終了する。
【０１１３】
こうして、交流正弦波の立ち上がりの中間電位クロス点を捉えたタイミングで、ステップＣ０２０〜Ｃ０５０では、変数Ｘに中間電位クロス点の２点間（半周期分）の、ＡＤ変換のサンプリング回数を求める。すなわち、最初にカウンタ変数Ｘを０にしておく。（ステップＣ０２０）
ステップＣ０３０では、自タスクを実行待ちとするｗａｉｔのシステムコールを実行する。すると、現在の実行タスクである「時刻修正タスク」が待ち状態になる。この状態で、タイマー割り込みが発生すると、プログラムの実行は「タイマー割込式ＡＤ変換サンプリング処理」へ移る。
【０１１４】
ここで、一旦、説明を「タイマー割込式ＡＤ変換サンプリング処理」に移す。
【０１１５】
図９に、「タイマー割込式ＡＤ変換サンプリング処理」のフローチャートを示す。
【０１１６】
「タイマー割込式ＡＤ変換サンプリング処理」は、ステップＤ０１０で、ＡＤ変換器１４へＡＤ変換開始を指示する。ＡＤ変換は変換を開始してから終了するまで、数μｓ程度の時間を要するので、ステップＤ０２０の判断ループでＡＤ変換の終了を待つ。ここでＡＤ変換の終了状態は、ＡＤ変換器１４内部のステータスレジスタを読むことで検出できる。ＡＤ変換の終了を確認すると、その変換値を変数ｄに格納し（ステップＤ０３０）、「時刻修正タスク」の待ちを解除するために、ｐｏｓｔのシステムコールを実行し、割り込み処理を終了する。（ステップＤ９９０）
ｐｏｓｔのシステムコールの実行により、スケジューラは、一旦実行を停止したステップＣ０３０の次のステップであるステップＣ０４０へ制御を戻す。
【０１１７】
ステップＣ０４０では、サンプリングされたＡＤ変換値ｄから、そのサンプリングされたデータｄのタイミングが、正弦波電圧の中間電位クロス点であるかどうかを判定する。サンプリングしたＡＤ変換値が、中間電位点かどうかを判定する方法は次による。
【０１１８】
前回のサンプリング時刻をｔｉ、今回のサンプリング時刻をｔｉ＋１とするとき、それぞれのＡＤ変換値をｄ（ｔｉ）、ｄ（ｔｉ＋１）とする。次のいずれかの条件が成立した場合に、中間電位点がサンプリングされたと判定するものとする。
ｉ）  ｄ（ｔｉ）＜Ｖｍ／２［Ｖ］  且つ  ｄ（ｔｉ＋１）≧Ｖｍ／２［Ｖ］  の時
ｉｉ）ｄ（ｔｉ）＞Ｖｍ／２［Ｖ］  且つ  ｄ（ｔｉ＋１）≦Ｖｍ／２［Ｖ］  の時
さて、サンプリングデータｄが中間電位クロス点でない場合は、ステップＣ０５０へ進み、カウンタ変数Ｘを＋１する。このように、Ｃ０３０〜Ｃ０５０のループで、中間電位点が現れる瞬間まで、Ｘのカウントが進む。
【０１１９】
ステップＣ０４０で中間電位クロス点と判定されると、カウンタ変数Ｘには、交流正弦波の半周期区間でカウントされた、ＡＤ変換のサンプリング周期回数が格納されている。サンプリング周期は一定時間であってｔｓ［ｓ］であるので、周波数ｆ［Ｈｚ］は、半周期分の２倍時間の逆数をとって、
ｆ＝１／（ｔｓ×Ｘ×２）
で計算される。（ステップＣ０６０）
周波数ｆ［Ｈｚ］が測定されたので、それが５０ＨｚかどうかをステップＣ０７０、６０ＨｚであるかをＣ０９０でチェックし、規定誤差（ε）未満であれば、周波数５０Ｈｚまたは６０Ｈｚと確定させ、「正弦波周波数の測定手続き」から呼び出し元の「時刻修正タスク」へ戻る。
【０１２０】
測定された交流周波数が、５０Ｈｚまたは６０Ｈｚより外れていれば、ｆ＝∞（マイコン中で表現できる最大の数）を設定して、周波数が規定外であることを意味するエラーコードを変数ｅｒｒ＿ｃｏｄｅに設定して（Ｃ１１０、Ｃ１２０）「正弦波周波数の測定手続き」から呼び出し元の「時刻修正タスク」へ戻る。
【０１２１】
説明を「時刻修正タスク」へ戻す。
【０１２２】
こうして「正弦波周波数の測定」手続きから実行が戻ると、通常は正弦波周波数として変数ｆに５０Ｈｚまたは、６０Ｈｚが設定され、ｅｒｒ＿ｃｏｄｅ＝０（正常）となっている。ステップＢ０３０で周波数が正常に測定されなかった場合は、周波数の再測定のため、Ｂ０１０へ戻る。通常、交流正弦波は正常に５０Ｈｚまたは６０Ｈｚと測定されるので、ステップＢ０４０へ進む。
【０１２３】
ステップＢ０４０にて、カウンタ変数Ｃｏｕｎｔには、式（２）の閾値電圧Ｖｍ／２をクロスする電位点の検出回数を格納する。このため、最初にカウンタ変数Ｃｏｕｎｔ←０に初期設定する。
【０１２４】
次に、交流正弦波の中間電位クロス点で、ＡＤ変換のサンプリング開始のタイミングをとる。（ステップＢ０５０）（ＡＤ変換のサンプリング開始タイミングのとり方は前述の通りである。）
ここで、正弦波のカウント開始タイミングで、高精度ＲＴＣ１１の現在時刻を変数Ｔ１へ記憶する。（ステップＢ０６０）
ステップＢ０７０〜Ｂ１００のループ処理は、ＡＤ変換された交流電圧値ｄが交流の中間電位Ｖｍ／２を検出するまでのサンプリング回数を、カウンタ変数Ｘに求める。
【０１２５】
まず、最初に変数Ｘ＝０に初期設定し（ステップＢ０７０）、Ｂ０８０でＡＤ変換値ｄが求まるまで、自タスク（時刻修正タスク）を待ち状態にする。ここで、タイマー割り込みが入ると、「タイマー割り込み式ＡＤ変換サンプリング処理」からＡＤ変換値ｄが求まり、「時刻修正タスク」のタスク待ちが解除される。（ここで、「タイマー割り込み式ＡＤ変換サンプリング処理」割り込み処理の手順は既に前に説明しているので、その説明を省略する。）
こうして、ステップＢ０７０〜Ｂ１００で、サンプリング回数Ｘが求まると、前述の式（６”）の条件をサンプリング回数Ｘが満たすかどうかをステップＢ１１０でチェックし、式（６”）の条件が成立するのであれば、交流周波数は正常範囲として、次のステップＢ１２０へ進み、式（６”）の条件が成立しないのであれば、時刻修正のシーケンスを最初からやり直すために、ステップＢ０４０まで戻る。
【０１２６】
ステップＢ１２０は、ＡＤ変換された電圧が交流中間電位（＝Ｖｍ／２）をクロスした回数をカウンタ変数Ｘに＋１加算する。
【０１２７】
カウント変数Ｃｏｕｎｔが、式（３）に示した回数に達していなければ、交流中間電位のクロス点のサンプリングカウントを繰り返すために、ステップＢ０７０へ戻る。
【０１２８】
カウント変数Ｃｏｕｎｔが、式（３）に示した回数に達していれば、ステップＢ１４０〜Ｂ１７０の時刻修正処理へ進む。
【０１２９】
ステップＢ１４０では、ｈ［時間］サンプリング終了瞬間の高精度ＲＴＣ１１の示す時刻を変数Ｔ２へ読み出す。
【０１３０】
ステップＢ１５０では、式（４）に従って時差Δｔ［ｓ］を計算する。
【０１３１】
ステップＢ１６０では、式（５）に従って時差を補正した現在時刻Ｔを求める。
【０１３２】
ステップＢ１７０では、その修正された時刻Ｔを高精度ＲＴＣ１１へ設定する。
【０１３３】
ステップＢ１８０は、現在時刻Ｔを変数Ｔ１へ記憶し、ステップＢ０７０へ戻り、新たな時刻補正シーケンスを開始する。
【０１３４】
以上のようにして、一定時間ｈ［時間］に該当する交流周波数の累積カウントがされる毎に、高精度ＲＴＣ１１の時刻が修正される。
【０１３５】
さて、以上のように「時刻修正タスク」が実行されることで、一定経過時間ｈ［時間］毎に時刻修正が行なわれる一方で、その時刻情報は、シリアル通信により本電子機器から上位装置であるマイコン装置２２へと送られる。この通信処理について、図１０〜図１２を用いて説明する。
【０１３６】
図１０に「送受信タスク」、図１１に「受信割り込み処理」、図１２に「送信割り込み処理」のフローチャートを示す。
【０１３７】
この「送受信タスク」は、「初期化タスク」により実行可能とされる以降は、「時刻修正タスク」でｗａｉｔのシステム・コールが発行され、「時刻修正タスク」が待ち状態になった時に「スケジューラ」から実行が移される。タスクの実行優先度は、「送受信タスク」の方が「時刻修正タスク」より低いので、「時刻修正タスク」が待ち状態になったときに「送受信タスク」が実行される。
【０１３８】
このシリアル送受信では、マイコン装置２２側がマスターとなって、コマンドを電子機器側へ送信し、そのコマンドの応答を、電子機器側が行うことを仮定している。
【０１３９】
図１０により「送受信タスク」について説明する。
【０１４０】
「スケジューラ」から「送受信タスク」への実行が移されると、上位装置であるマイコン装置２２からのコマンドが受信されていないかどうか、受信バイト数をチェックする。（ステップＥ０１０）
本電子機器に何も受信されていない場合は、ｗａｉｔのシステムコールを発行し、自タスク（「送受信タスク」）を待ち状態にする。
【０１４１】
上位装置のマイコン装置２２からコマンドが送信されると、１バイト受信毎に割り込みが発生し、「受信割り込み処理」が実行される。「受信割り込み処理」は、受信バッファへ受信バイトを格納して（ステップＦ０１０）、ｐｏｓｔシステム・コール（Ｆ０２０）により、待ち状態の「送受信タスク」を実行可能状態として割り込み処理を終了する。
【０１４２】
こうしてタスク待ちを解除された「送受信タスク」は、受信バッファからデータを読んで（ステップＥ０３０）、受信コマンドを処理し、上位装置のマイコン装置２２へ応答すべき送信データを作成する。（ステップＥ０４０）
ステップＥ０５０〜Ｅ０７０は、上位装置のマイコン装置２２へ応答すべきデータを送信する処理である。この送信処理は、１バイト送信毎にタスク待ち状態になり（ステップＥ０７０）、１バイト送信終了毎にその待ちがｐｏｓｔシステムコール（Ｇ０１０）により解除される。以上説明した手順により、「時刻修正タスク」、「送受信タスク」は、マルチ・タスクとして並列に動作し、時刻を修正しながら、上位装置のマイコン装置２２へ時刻を知らせる。
【０１４３】
以上記載したような構成を採ることにより、本発明は下記の効果を奏する。
【０１４４】
水晶発振器から生成する時計時刻を、商用交流電源周波数の累積カウントを基準に補正するので、水晶発振器の温度による周波数誤差、振動子個別の周波数誤差、振動子の経時特性変化から影響を受けない、正確な時刻修正が出来、その結果、正確な時刻情報を得ることが出来る。
【０１４５】
また、交流周波数のカウント方法は、交流波を単純に閾値を基準にパルス信号へ変換するものではなく、交流周波数を１／２周期毎にその周期時間をＡＤ変換器でサンプリング計測して、その正確さをチェックしているので、誤った周期の交流周波数を計数することが無くなり、従来の交流周波数基準とする時刻補正方式よりも、より確実に、正確な時刻を得ることが出来る。
【０１４６】
また、ＡＤ変換器の入力には、サージ・アブソーバ、ライン・フィルタ、バンドパス・フィルタを通過させているので、交流電源上のノイズを除去し、上記の時刻補正シーケンスが途中で失敗する確率を下げ、時刻修正の信頼性を向上させている。
【０１４７】
また、ＪＪＹの電波が受信できない環境でも、商用交流電源があれば、その周波数の高精度さによる正確な時刻情報を得ることが出来る。
【０１４８】
また、ＮＴＰ、ＳＮＴＰサーバが利用できない環境でも、商用交流電源があれば、その周波数の高精度さによる正確な時刻情報を得ることが出来る。
【０１４９】
また、そうしたサーバを利用するために必要なＴＣＰ／ＩＰプロトコルやＥｔｈｅｒｎｅｔ（登録商標）を制御するハードウェア、ソフトウェアを必要とせず、構成が単純であるため、実現しやすく、開発コストが低い。
【０１５０】
また、停電が発生しても、水晶時計として自立して機能するので、止まることなく時刻を刻むことが出来、尚且つ、高精度ＲＴＣを使用することで、停電時または、商用交流電源から切り離された環境でも、電子装置の時刻誤差をより小さくできる。
【０１５１】
また、パソコンのリアルタイムクロックは、チップセットと呼ばれるローカルバスに直接接続されているため、より高精度の別のリアルタイムクロックへの交換が出来ないが、本電子機器は、汎用インタフェイスを介して容易に接続して利用可能となる。
【図面の簡単な説明】
【０１５２】
【図１】本発明の実施例を示す全体構成図。
【図２】（ａ）バンドパス・フィルタ（ＢＰＦ）の回路構成図、及び（ｂ）バンドパス・フィルタによる減衰例を示すグラフ。
【図３】差動増幅器の回路構成図。
【図４】差動増幅器への入力波形及び出力波形の例。
【図５】時刻修正の原理を示す説明図。
【図６】初期化タスクのフローチャート。
【図７】時刻修正プログラムのフローチャート。
【図８】正弦波周波数の測定手続きのフローチャート。
【図９】タイマー割込式ＡＤ変換サンプリング処理のフローチャート。
【図１０】送受信タスクのフローチャート。
【図１１】受信割込処理のフローチャート。
【図１２】送信割込処理のフローチャート。
【図１３】正弦波電圧のＡＤ変換サンプリング開始タイミングを示すグラフ。
【符号の説明】
【０１５３】
１：商用交流電源、２：サージ・アブソーバ、３：ライン・フィルタ、４：変圧器、５：バンドパスフィルタ（ＢＰＦ）、６：差動増幅器、７：直流安定化電源、８：５Ｖ電源ライン、９：バックアップ電池、１０：ダイオード、１１：高精度リアルタイムクロック（ＲＴＣ）ＩＣ、１２：ワンチップ型マイコン、１３：Ｉ／Ｏ回路、１４：ＡＤ変換器、１５：ＣＰＵコア、１６：ＲＯＭ、１７：ＲＡＭ、１８：汎用インタフェイス回路、１９：ワンチップ型マイコンの内部バス、２０：制御プログラム、２１：リセット回路、２２：マイコン装置、２３：表示装置、２４：入力装置。
【図１】
2007327871.tif 000003
【図２】
2007327871.tif 000004
【図３】
2007327871.tif 000005
【図４】
2007327871.tif 000006
【図５】
2007327871.tif 000007
【図６】
2007327871.tif 000008
【図７】
2007327871.tif 000009
【図８】
2007327871.tif 000010
【図９】
2007327871.tif 000011
【図１０】
2007327871.tif 000012
【図１１】
2007327871.tif 000013
【図１２】
2007327871.tif 000014
【図１３】
2007327871.tif 000015