(57)【要約】【課題】任意の時間単位で補正クロックの周波数誤差を検出した場合であっても所望の精度を満たす補正クロックを生成すること【解決手段】動作クロック生成回路１１０は、基本クロック（ａ）の周波数誤差と、基本クロック（ａ）のクロックパルスに基づく演算を行い、周波数誤差を第１の間隔で補正した動作クロック（ｆ）を生成する。補正クロック生成回路は、動作クロック（ｆ）の状態変更の判定に用いる所定ビットよりも下位のビット値を前記動作クロック（ｆ）よりも高周波数の第２クロック（ｈ）のパルスカウント数に換算し、前記パルスカウント数のカウント時間と前記動作クロックのクロックパルスに基づき、動作クロック（ｆ）を補正した補正クロック（ｋ）を生成する。【選択図】図３
2014010704.tif 000002
【特許請求の範囲】
【請求項１】
第１クロックのクロックパルスに基づいて動作クロックの要求周波数から定まる固定値を累算して累算値を算出し、前記第１クロックの周波数誤差に対応する誤差値を前記第１クロックから定まるタイミングで前記累算値に反映し、前記累算値の所定ビットが変化した場合に前記動作クロックの状態を変化させると共に、前記累算値のうち前記所定ビットより下位にある下位ビット値を出力する動作クロック生成回路と、
前記下位ビット値を前記動作クロックよりも高周波数の第２クロックのパルスカウント数に換算し、前記パルスカウント数のカウントに要する時間と前記動作クロックのクロックパルスに基づき、前記動作クロックを補正した補正クロックを生成する補正クロック生成回路と、
を備えるクロック補正回路。
【請求項２】
前記固定値の絶対値は、前記誤差値の絶対値よりも大きい、請求項１に記載のクロック補正回路。
【請求項３】
前記動作クロック生成回路は、
前記第１クロックに基づいて、所定の第１時間間隔の経過を示す補正間隔信号を生成する補正間隔生成部と、
前記第１時間間隔の経過毎に前記固定値を前記誤差値により調整した補正値を出力し、それ以外の場合に前記固定値を出力する第１セレクタと、
前記第１クロックをクロック端子の入力とし、前記累算値を内部レジスタに保持し、前記累算値の前記所定ビットが変化した場合に前記動作クロックの状態を遷移させるフリップフロップと、
前記第１セレクタの出力値と、前記フリップフロップの保持する前記累算値と、を加算した加算値を前記フリップフロップのデータ端子に供給する加算器と、
を備える請求項２に記載のクロック補正回路。
【請求項４】
前記補正クロック生成回路は、
前記下位ビット値、当該下位ビット値のビット幅、及び前記第２クロックの周波数を基に前記パルスカウント数を算出するカウント値算出回路と、
前記動作クロックのエッジタイミングから前記第２クロックをカウントしたカウント値を出力するカウンタと、
前記カウント値が前記パルスカウント数に到達したことを検出した場合に、前記カウンタのカウントを停止させるカウント停止信号を出力する検出回路と、
前記カウント停止信号の出力毎に前記補正クロックの状態を変化させるトグル回路と、
を備える請求項１に記載のクロック補正回路。
【請求項５】
前記補正値と前記累算値は、ＭＳＢ（Most Significant Bit）が正負を示す補数形式の値である、請求項３に記載のクロック補正回路。
【請求項６】
前記動作クロック生成回路は、
前記動作クロックの状態の変化を検出し、当該変化から所定の第２時間間隔以内に前記補正間隔信号による前記第１時間間隔の経過を検出し、当該前記第１時間間隔の経過時に前記動作クロックの状態の再変化を検出した場合に前記動作クロックの状態の再変化を補正する動作クロック補正回路を更に備える、請求項３に記載のクロック補正回路。
【請求項７】
前記動作クロック生成回路は、
前記第１時間間隔の経過時ではない場合に前記固定値に対応する前記内部レジスタのビット値をカウントアップするとともに前記加算器の動作を停止し、前記第１時間間隔の経過時に前記加算器の動作を再開させる動作制御回路を更に有する、請求項３に記載のクロック補正回路。
【請求項８】
出力するクロックの種別情報を保持する出力選択レジスタと、
前記出力選択レジスタの保持する値に基づいて、前記補正クロック、前記動作クロックを含むクロック信号群から外部端子を介して出力するクロックを選択するクロック選択セレクタと、を備える請求項１に記載のクロック補正回路。
【請求項９】
前記補正クロック生成回路は、
前記出力選択レジスタから値を読み出し、読み出した値が前記補正クロックの出力を指示する値では無い場合に、前記補正クロックの生成動作を停止する、請求項１に記載のクロック補正回路。
【請求項１０】
前記第２クロックは、前記補正クロックの要求出力周波数を、前記補正クロックの所望の分解能により除算して算出した周波数よりも高い周波数を持つ、請求項１に記載のクロック補正回路。
【請求項１１】
請求項１乃至請求項１０のいずれか１項に記載のクロック補正回路を備えたマイクロコントロールユニット。
【請求項１２】
前記第１クロックを生成する第１発振器と、
前記第２クロックを生成する第２発振器と、
前記補正クロックの所定クロックパルス回数内の前記第２クロックのクロックパルスカウント数と、前記第２クロックの要求周波数に基づく期待値と、のずれに応じて前記第２発振器の内部容量を調整することにより前記第２クロックの周波数を調整するクロックリカバリ回路と、を有する請求項１１に記載のマイクロコントロールユニット。
【請求項１３】
前記マイクロコントロールユニット内の温度を検出するセンサと、
温度特性算出式に前記センサが検出した温度を代入することにより、前記第１クロックの周波数誤差を算出する演算器と、を有する請求項１１に記載のマイクロコントロールユニット。
【請求項１４】
請求項１乃至請求項１３のいずれか１項に記載のマイクロコントロールユニットを備えた電子機器。
【請求項１５】
第１クロックのクロックパルスに基づいて動作クロックの要求周波数から定まる固定値を累算して累算値を算出し、
前記第１クロックの周波数誤差に対応する誤差値を前記第１クロックから定まるタイミングで前記累算値に反映し、
前記累算値の所定ビットが変化した場合に前記動作クロックの状態を変化させると共に、前記累算値のうち前記所定ビットより下位にある下位ビット値を算出し、
前記下位ビット値を前記動作クロックよりも高周波数の第２クロックのパルスカウント数に換算し、前記パルスカウント数のカウントに要する時間と前記動作クロックのクロックパルスに基づき、前記動作クロックを補正した補正クロックを生成する、クロック補正方法。
【請求項１６】
前記固定値の絶対値は、前記誤差値の絶対値よりも大きい、請求項１５に記載のクロック補正方法。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、クロック補正回路及びクロック補正方法に関し、例えば電力メータ等に使用されるクロック補正回路及びクロック補正方法に関する。
【背景技術】
【０００２】
ＲＴＣ（Real Time Clock）は、近年多くの情報機器に搭載されている。ＲＴＣが搭載される一例として電力メータが挙げられる。電力メータは、ＲＴＣの計時した時刻に応じて電気料金を計算する等の処理を行っている。ＲＴＣの動作クロックとして一般的に音叉型水晶振動子が用いられており、この周波数は温度特性（約２５℃を中心として二次係数を負とする二次関数）を持ち、例えば−４０℃の場合には−１５０ｐｐｍ（parts per million）程度の偏差を持っている。ＲＴＣの実使用時において、動作クロックが偏差を持つ場合には計時時刻のずれが生じてしまう。そのため、動作クロックの周波数偏差の補正を行う必要がある。
【０００３】
例えば、電力メータ市場では、ＲＴＣの生成するクロックの精度として±３ｐｐｍ、±５ｐｐｍ以内であることが要求されている。ＲＴＣを搭載した電力メータの製造工程では、周波数誤差の補正した後のクロックが所望の精度の範囲で動作しているか否かを検査している。当該検査方法は、ＲＴＣ内の水晶振動子等が生成したクロック（３２．７６８ｋＨｚ）から生成したクロック（１Ｈｚ等）を端子から出力させて、その出力クロックが前述の精度（±３ｐｐｍ、±５ｐｐｍ）を満足しているか否かを確認する。しかし、周波数が３２．７６８ｋＨｚである水晶振動子の出力クロックから１Ｈｚのクロックを生成した場合、生成したクロックの周波数の最高精度は３０．５ｐｐｍ（１Ｈｚ／３２．７６８ｋＨｚ）となる。そのため、このクロックは電力メータ市場の要求を満たさない。
【０００４】
特許文献１には、簡便な構成で高精度に時刻補正を行うことが可能なＲＴＣ回路が開示されている。当該ＲＴＣ回路では、基本クロック（例えば３２．７６８ｋＨｚ）を発振する発振器が備えられており、当該基本クロックを分周した分周信号を生成する。これと同時に、発振器の出力する基本クロックの周波数誤差を、基本クロックよりも高速かつ高精度な基準クロックを用いて算出する。そして、当該ＲＴＣ内の補正機能付き発振器は、分周信号をクロックとし、固定値と周波数誤差を加算し、加算値のＭＳＢ（Most Significant Bit, 最上位ビット）を補正クロックとして出力する。補正クロックの生成時に、周波数誤差が累積加算され、当該累算値が上述のＭＳＢに反映された時点でクロックの状態を変化させることにより周波数誤差を補正する。
【先行技術文献】
【特許文献】
【０００５】
【特許文献１】特開２０００−３１５１２１号公報
【非特許文献】
【０００６】
【非特許文献１】[平成24年6月1日検索]、インターネット＜URL：http://www.sii.co.jp/components/quartz/ocdpJP.jsp＞
【非特許文献２】[平成24年6月1日検索]、インターネット＜URL：http://www.tamadevice.co.jp/32768-temp.htm＞
【発明の概要】
【発明が解決しようとする課題】
【０００７】
上述のように、特許文献１に記載のＲＴＣ回路は、周波数誤差の累算値が一定値に到達した時点で、周波数誤差をまとめて補正した補正クロックを生成している。ここで、この補正クロックは、上述の一定値に達するまでの時間単位では依然として周波数誤差が残存している状態となる。例えば、累算値が一定値に達するまでに時間Ｘを要する場合、時間Ｘよりも短い時間単位では、補正クロックは依然として周波数誤差を含む状態である。これにより、例えば補正クロックの周波数が所定精度（例えば±３ｐｐｍ（２１〜２５℃））を満たしているか否かをテストする場合、周波数誤差が補正される時間（時間Ｘ）よりも長い時間の待ち合わせを行う必要があるため、テストに時間がかかってしまう。また、上述の補正クロックは１パルス単位での補正がなされていないため、例えばこの補正クロックをクロックリカバリに使用することが出来ない。
【０００８】
すなわち、特許文献１に記載のＲＴＣ回路では、任意の時間単位で補正クロックの周波数誤差を検出した場合、当該補正クロックが所望の精度を満たさないという問題があった。
【課題を解決するための手段】
【０００９】
一実施の形態によれば、クロック補正回路は、動作クロックの要求周波数と第１クロックの周波数誤差を考慮した累算を行い、累算値の所定ビットが変化した場合に動作クロックの状態を変化させると共に、当該累算値から所定ビットより下位の下位ビット値を抽出する。そしてクロック補正回路は、この下位ビット値と、動作クロックよりも高周波数の第２クロックと、を用いて動作クロックを補正した補正クロックを生成する。
【発明の効果】
【００１０】
前記一実施の形態によれば、任意の時間単位で補正クロックの周波数誤差を検出した場合であっても所望の精度を満たす補正クロックを生成することができる。
【図面の簡単な説明】
【００１１】
【図１】実施の形態１にかかるクロック補正回路を搭載した電力メータの構成を示すブロック図である。
【図２】実施の形態１にかかるクロック補正回路１００を備える電力メータ１の構成を示すブロック図である。
【図３】実施の形態１にかかるクロック補正回路１００を備えるＭＣＵ１０の構成を示すブロック図である。
【図４】実施の形態１にかかる動作クロック生成回路１１０の構成を示すブロック図である。
【図５】実施の形態１にかかるフリップフロップ１１４の内部レジスタの構成を示す模式図である。
【図６】実施の形態１にかかる基本クロック（ａ）の周波数誤差と補正値との関係を示す表である。
【図７】実施の形態１にかかる動作クロック生成回路１１０の動作を示すタイミングチャートである。
【図８】実施の形態１にかかる動作クロック補正回路１１５の動作を示すタイミングチャートである。
【図９】実施の形態１にかかる補正クロック生成回路１２０の構成を示すブロック図である。
【図１０】実施の形態１にかかるクロック補正回路１００の動作を示すタイミングチャートである。
【図１１】実施の形態１にかかるクロック補正回路１００の動作を示すタイミングチャートである。
【図１２】実施の形態１にかかるクロック補正回路１００の動作を示すタイミングチャートである。
【図１３】実施の形態１にかかるクロック補正回路１００の動作を示すタイミングチャートである。
【図１４】実施の形態１にかかるクロック補正回路１００を備えるＭＣＵ１０の構成例を示すブロック図である。
【図１５】実施の形態１にかかるクロック補正回路１００を備えるＭＣＵ１０の構成例を示すブロック図である。
【図１６】実施の形態１にかかる周波数誤差検出部１７０の内部構成を示すブロック図である。
【図１７】実施の形態１にかかるクロック補正回路１００を備えるＭＣＵ１０の構成例を示すブロック図である。
【図１８】実施の形態１にかかるクロックリカバリ回路２４０の内部構成を示すブロック図である。
【図１９】実施の形態２にかかる動作クロック生成回路１１０の構成を示すブロック図である。
【図２０】その他の実施の形態にかかるクロック補正回路１００を備えるＭＣＵ１０の構成例を示すブロック図である。
【図２１】その他の実施の形態にかかる補正機能付き発振器１９０の構成を示すブロック図である。
【図２２】その他の実施の形態にかかるフリップフロップ１９２の内部レジスタの構成を示す模式図である。
【発明を実施するための形態】
【００１２】
本実施の形態にかかるクロック補正回路を説明する前に、図１を参照して特許文献１に記載のＲＴＣ回路に関する問題を改めて説明する。図１は、特許文献１にかかるＲＴＣ回路の動作を示すタイミングチャートである。図１（Ａ）は、特許文献１に記載のＲＴＣ回路内の分周信号を示す。図１（Ｂ）は、特許文献１に記載のＲＴＣ回路内の前述の加算値を示す。図１（Ｂ）における固定値は、"２００００Ｈ"である。図１（Ｃ）は、特許文献１に記載のＲＴＣ回路が出力する補正クロックを示す。当該ＲＴＣ回路は、タイミングＴ０から動作を開始する。
【００１３】
タイミングＴ１において、累積された周波数誤差（図１の例では１パルス毎に"１"だけ累積加算される）が加算値（図１（Ｂ））のＭＳＢに反映されている。そのため、補正クロック図１（Ｃ））は、タイミングＴ１において補正される、すなわち値が変化（ハイレベルからロウレベルに変化）する。ここで、時間区間Ｄ１の補正クロックの周波数誤差は、この補正処理により所定の精度内となっている。時間区間Ｄ１とは、動作開始から初めての補正が行われるまでの経過時間である。しかしながら、時間区間Ｄ２やＤ３のように、時間区間Ｄ１よりも短い時間区間における補正クロックの周波数誤差は、補正処理が行われていないために所望の精度を満たさない。
【００１４】
図１（Ｃ）に示すように一定時間（Ｄ１）に１回だけ補正が行われたクロックは、一般的なＲＴＣ回路内において時刻の計時に用いるクロックとなる。そのため、図１（Ｃ）に示すように一定時間（Ｄ１）に１回補正が行われたクロックを以下の記載では「動作クロック」と呼称する。これに対し、１パルスの間隔（Ｄ２）の間隔で補正が行われたクロックを「１パルス補正クロック」と呼称する。なお本明細書では、時間区間Ｄ１のようにクロック信号がハイレベルからロウレベル（またはロウレベルからハイレベル）に変わるまでのパルス幅を１パルスと呼称する。
【００１５】
＜実施の形態１＞
以下、適宜図面を参照して、本実施の形態にかかるクロック補正回路について説明する。
【００１６】
＜電力メータ（電子機器）の構成について＞
はじめに、本実施の形態にかかるクロック補正回路が搭載される電子機器の概要について説明する。図２は、本実施の形態にかかるクロック補正回路を搭載した電子機器の一例である電力メータ装置の概略を示す図である。
【００１７】
電力メータ装置１は、ＭＣＵ（Micro Control Unit）１０と、測定対象ユニット２０と、測定用ＬＳＩ（Large Scale Integration）３０と、ＬＣＤ（Liquid Crystal Display）パネル４０と、ＥＥＰＲＯＭ５０と、各種外部インターフェイス（Ｃａｒｄ  ＩＣ５１、ＩｒＤＡ  ＩＣ５４、ＲＳ４８５  ＩＣ５５、ＰＬＣ  ｍｏｄｅｍ５６）と、を有する。なお、外部インターフェイスであるＣａｒｄ  ＩＣ５１は、各種のカード型デバイス（ＩＣ  Ｃａｒｄ５２、ＥＳＡＭ５３）と接続可能である。
【００１８】
測定対象ユニット２０は、内部にシャント抵抗及びＣＴ（カレントトランス）等の電流検出センサを備える。測定用ＬＳＩ３０は、測定対象ユニット２０内における消費電力量を測定し、測定結果をＭＣＵ１０に通知する。ＬＣＤパネル４０は、ＭＣＵ１０が算出した電力料金等を表示する。
【００１９】
外部インターフェイス（Ｃａｒｄ  ＩＣ５１、ＩｒＤＡ  ＩＣ５４、ＲＳ４８５  ＩＣ５５、ＰＬＣ  ｍｏｄｅｍ５６）は、ＭＣＵ１０内のＵＡＲＴ（Universal Asynchronous Receiver Transmitter）３２１〜３２４と接続可能に構成され、各種の情報の入出力を行う。ＥＥＰＲＯＭ（Electrically Erasable Programmable Read-Only Memory）５０は、ＭＣＵ１０内のＩＩＣ３２５と接続する記憶装置である。ＥＥＰＲＯＭ５０は、内部に課金情報を記憶している。
【００２０】
ここで課金情報とは、電力量と各時間帯における課金額との関係を示す情報である。例えば、課金情報は、お昼の時間帯（６時〜２０時）の１ｋＷ当たりの課金額、夜の時間帯（２０時〜３０時）の１ｋＷ当たりの課金額、等をテーブル形式で示す情報である。
【００２１】
ＭＣＵ１０は、上述の課金情報と、測定用ＬＳＩ２０が算出した電力量から課金額を算出する処理等を行う。ＭＣＵ１０は、クロック補正回路１００と、ＣＰＵ（Central Processing Unit）３００と、メモリ３１０と、ＵＡＲＴ３２０〜３２４と、ＩＩＣ３２５と、を有する。
【００２２】
クロック補正回路１００は、本例ではいわゆるＲＴＣ（Real Time Clock）として動作する回路であり、ＭＣＵ１０の外部端子１６０と接続する。電力メータ装置１の管理者は、動作確認時（テスト時）に当該外部端子１６０から出力されるクロック信号の周波数を計測し、所望の分解能を満たしているか否かをテストする。また、クロック補正回路１００は、計時した時刻情報をＣＰＵ３００等に適宜供給する。クロック補正回路１００の内部構成及び動作の詳細は、図３等を参照して後述する。
【００２３】
ＣＰＵ３００は、ＭＣＵ１０内部の各種の制御を行う中央演算装置である。ＣＰＵ３００は、ＥＥＰＲＯＭ５０から読み出した課金情報と、クロック補正回路１００から供給される時刻情報と、測定用ＬＳＩ２０から供給される使用電力量の情報と、を基に課金額を算出する。ＣＰＵ３００は、算出した課金額を適宜外部装置（例えばプリンタ装置）やＬＣＤパネル４０に出力する。
【００２４】
メモリ３１０は、例えばＲＯＭ（Read Only Memory）やＲＡＭ（Random Access Memory）であり、各種の情報を記憶する。上述の説明では、ＥＥＰＲＯＭ５０が課金情報を記憶するものとして説明したが、メモリ３１０が課金情報を記憶しても良い。ＵＡＲＴ３２０〜３２４は、測定用ＬＳＩ３０や外部インターフェイス（Ｃａｒｄ  ＩＣ５１等）と接続し、各種情報の入出力を制御する。
【００２５】
なお、図２には図示しないもののＭＣＵ１０は、温度センサ、Ａ／Ｄ変換器、時計発振器、基準発振器等を備える。詳細は、図３等を参照して後述する。
【００２６】
図示するように、ＭＣＵ１０は、クロック補正回路１００と接続する外部端子１６０を有する。詳細は後述するが、出力選択レジスタ１５０の設定値には、出力するクロック信号の種別（１パルス補正クロック、動作クロック、補正なしの基本クロック）が設定されている。後述するセレクタ１４０は、出力選択レジスタ１５０の設定値に応じて出力クロック信号を選択し、選択したクロック信号を外部端子１６０から出力する。
【００２７】
１パルス補正クロックは、生成のための稼働回路が多いために消費電力量が最も高いが、どのような時間単位で周波数誤差を算出した場合であっても誤差が無いクロック信号である。動作クロックは、生成のための消費電力量が１パルス補正クロックの生成時よりも少ないが、任意の時間単位で周波数誤差を検出した場合に所望の精度を満たさない可能性があるクロック信号である。換言すると、１パルス補正クロックは動作クロックよりも短い時間単位毎に補正が行われている。補正なしの基本クロックは、生成のための消費電力が最も少ないが、基本的に周波数誤差を含むクロック信号である。
【００２８】
すなわち、クロック補正回路１００は、利点と欠点をそれぞれ持つ各種のクロック信号を外部端子１６０を介して出力する。ユーザは、出力するクロック信号を適宜選択する。これにより、クロック信号の用途や消費電力の観点で最適なクロック信号を使用することができる。
【００２９】
一般的に１パルス補正クロックは、電力メータ装置１の本格使用前の動作確認等の場合にのみ出力されることが多く、通常動作時に使用されるケースは少ないものと考えられる。換言すると、上述した複数種別のクロック信号を同時に使用するケースは少ないと言える。上述の構成では外部端子１６０から複数種別のクロック信号を切り替えて出力できるため、ＭＣＵ１００の外部端子数を削減することができる。
【００３０】
なおセレクタ１４０により選択出力可能なクロック信号は、１パルス補正クロックでなくても良く、たとえば２パルス補正クロック等であってもよい。詳細は後述する。すなわち、セレクタ１４０は、動作クロックと、動作クロックよりも短い時間区間で周波数誤差が補正された補正クロック（好適には１パルス補正クロック）を出力する構成であれば良い。
【００３１】
＜クロック補正回路１００及びその周辺回路の構成＞
図３を参照して、クロック補正回路１００の概略的な構成について説明する。クロック補正回路１００は、動作クロック生成回路１１０と、補正クロック生成回路１２０と、時計カウンタ１３０と、セレクタ１４０と、出力選択レジスタ１５０と、を備える。セレクタ１４０は、外部端子１６０と接続する。
【００３２】
クロック補正回路１００内の動作クロック生成回路１１０には、時計発振器２１０から基本クロック（第１クロック）が供給される。時計発振器２１０は、基本クロック（ａ）を生成する発振器である。以下の説明では基本クロック（ａ）の周波数は、３２．７６８ｋＨｚとする。なお、時計発振器２１０が生成する基本クロック（ａ）は、電力メータ装置１では許容できない程度の周波数誤差を持つ場合が多い。以下の説明では基本クロック（ａ）の誤差は、１秒間に１Ｈｚ以上の誤差（たとえば１秒間の周波数が３２．７６９ｋＨｚ）はないものとする。時計発振器２１０は、生成した基本クロック（ａ）を動作クロック生成回路１１０に供給する。
【００３３】
動作クロック生成回路１１０は図示しないレジスタ（記憶部）から固定値（図５を参照して後述する）を読み出す。動作クロック生成回路１１０は、入力される補正値及び固定値に応じて基本クロック（ａ）の周波数誤差を反映した動作クロック（ｆ）を出力する。以下の説明では、動作クロック（ｆ）は基本クロック（ａ）（３２．７６８ｋＨｚ）を基に、基本クロック（ａ）の周波数誤差を補正した１Ｈｚのクロック信号とする。ここで、動作クロック生成回路１１０に入力される（または動作クロック生成回路１１０が読み出す）補正値は、基本クロック（ａ）の周波数誤差（ｐｐｍ）から算出する。周波数誤差（ｐｐｍ）の算出方法は、例えば以下の３通りの方法がある。以下の算出方法の詳細については、図１４〜図１９を参照して説明する。
（１）温度センサの検出した温度及び温度テーブルを基に基本クロック（ａ）の周波数誤差を算出
（２）温度センサの検出した温度を、温度特性と周波数誤差の関係を示す関係式に代入して基本クロック（ａ）の周波数誤差を算出
（３）後述する周波数誤差検出器１７０による周波数誤差の算出
【００３４】
また、動作クロック生成回路１１０は、動作クロック（ｆ）を時計カウンタ１３０及び補正クロック生成回路１２０に供給する。さらに動作クロック生成回路１１０は、動作クロック（ｆ）の状態変化の判定に用いる所定ビットより下位側の下位ｍビット値（ｇ）（図５を参照して後述）を補正クロック生成回路１２０に供給する。動作クロック生成回路１１０の詳細構成は、図４を参照して後述する。
【００３５】
補正クロック生成回路１２０は、動作クロック（ｆ）、レジスタ内の下位ｍビット値（ｇ）（図４及び図５を参照して後述）、及び第２クロック（ｈ）を基に、基本クロック（ａ）の周波数誤差を１パルス毎に補正した１パルス補正クロック（ｋ）を算出する。ここで、第２クロック（ｈ）とは、基本クロック（ａ）よりも大きい周波数を持つクロック（例えば２４ＭＨｚ）である。厳密には、第２クロック（ｈ）は式（１パルス補正クロックの要求出力周波数／所望の分解能）から算出される周波数よりも大きな周波数を持つクロックである。例えば、補正クロック生成回路１２０から分解能が１ｐｐｍの１Ｈｚである１パルス補正クロック（ｋ）を出力したい場合、第２クロック（ｈ）は１ＭＨz（１Ｈｚ／１ｐｐｍ）以上の周波数を持つクロック信号とする。
【００３６】
なお補正クロック生成回路１２０は、後述する出力選択レジスタ１５０の値を読み出し、１パルス補正クロック（ｋ）の出力を指示する値が設定されている場合にのみ１パルス補正クロック（ｋ）の生成を行い、それ以外の場合には動作を停止しても良い。一般的に、ＲＴＣをスタンバイ状態で使用されるケースや、ＲＴＣがバックアップ電池による電源供給により動作する場合ある。すなわち、ＲＴＣに対する低消費電流化が要求されるケースが多い。補正クロック生成回路１２０の動作を停止することにより、低電流化を図ることができる。補正クロック生成回路１２０の詳細構成及び動作は、図９を参照して後述する。
【００３７】
時計カウンタ１３０は、動作クロック生成回路１１０から出力される動作クロック（ｆ）をカウントアップすることにより、実社会での時刻を測定するカウンタである。時計カウンタ１３０は、例えば内部に６０秒、６０分、２４時間をそれぞれカウントするカウンタ（図示せず）を有する。時計カウンタ１３０は、計時した時刻情報（秒、分、時）をＣＰＵ３００等に適宜供給する。
【００３８】
セレクタ１４０は、出力選択レジスタ１５０内に記憶された値に応じて、動作クロック（ｆ）または１パルス補正クロック（ｋ）を選択して外部端子１６０に供給する。なお、図示しないもののセレクタ１４０は、出力選択レジスタ１５０内に記憶された値に応じて、基本クロック（ａ）を直接外部端子１６０に供給することも可能である。出力選択レジスタ１５０の値は、電力メータ装置１のユーザ（例えば電力メータ装置１の管理者）が任意のタイミングで書き換えることができる。
【００３９】
＜動作クロック生成回路１１０の構成及び動作について＞
続いて、動作クロック生成回路１１０の構成を図４を参照して説明する。動作クロック生成回路１１０は、補正間隔生成回路１１１と、セレクタ１１２と、加算器１１３と、ＦＦ（フリップフロップ）１１４と、動作クロック補正回路１１５とを有する。
【００４０】
補正生成回路１１１は、基本クロック（ａ）を基に一定タイミングを通知する補正間隔信号（ｂ）、例えば１Ｈｚのワンショットパルス（３２７６８クロック中３２７６７クロックの期間はロウレベルであり、１クロックだけハイレベルとなる信号）を生成する。補正間隔生成回路１１１は、内部に分周器（２の１５乗）を搭載し、上述の補正間隔信号（ｂ）を生成してセレクタ１１２及び動作クロック補正回路１１５に供給する。なお、補正間隔生成回路１１１は、一定のタイミングを通知できる信号を生成できる構成であればよいため、補正間隔信号（ｂ）の周波数は１Ｈｚに限定されない。以下の説明では、補正間隔信号（ｂ）の周波数は１Ｈｚ（ワンショットパルス）とする。
【００４１】
セレクタ１１２は、補正間隔信号（ｂ）がハイレベルの場合に補正値を加算器１１３に供給し、ロウレベルの場合に固定値Ｂを加算器１１３に供給する。基本クロック（ａ）に周波数誤差が無い場合、補正値と固定値Ｂは同一値となる。補正値及び固定値Ｂの設定方法は、フリップフロップ１１４の動作と共に後述する。
【００４２】
加算器１１３は、セレクタ１１２の出力値（ｃ）とフリップフロップ１１４の出力値（レジスタ値（ｄ））を加算し、加算結果をフリップフロップ１１４のデータ端子に供給する。
【００４３】
フリップフロップ１１４は、基本クロック（ａ）をクロック端子の入力として動作する。フリップフロップ１１４は、ｎビットのレジスタを有する。なお以下の説明では、フリップフロップ１１４の保持するレジスタの値をレジスタ値（ｄ）と記載する。基本クロック（ａ）は３２．７６８ｋＨｚであるため、フリップフロップ１１４は、１秒間にフリップフロップ１１４のレジスタ値（ｄ）とセレクタ１１２の出力値（ｃ）との加算値を３２７６８回だけレジスタ値（ｄ）に取り込む。そしてフリップフロップ１１４は、レジスタ値（ｄ）を動作クロック補正回路１１５に供給する。詳細にはフリップフロップ１１４は、レジスタ値（ｄ）の上位２ビット目の切り替わりタイミングで値が変化する動作クロック（ｅ）と、レジスタ内の下位ｍビット値（ｇ）と、を動作クロック補正回路１１５に供給する。
【００４４】
図５は、フリップフロップ１１４内のレジスタの構成を示す図である。当該レジスタは、１秒間に３２７６８回値が書き換えられる。フリップフロップ１１４の最上位ビットは、ビット値の正負を示すビットである。上位第２ビット（所定ビット）の値は、動作クロック補正回路１１５に供給されるクロック信号の状態を示す値となる。当該クロック信号が動作クロック（後述する動作クロック補正回路１１５による補正前の動作クロック（ｅ））となる。基本クロック（ａ）に周波数誤差が無い場合には、補正値と固定値Ｂは同一値となり、レジスタ内の値は３２７６８回（２の１５乗）インクリメントされる。そのため、当該レジスタは１６ビット（正負を示す１ビット  ＋  １５ビット（２の１５乗））以上のビット幅を持つ必要がある。図５は、２１ビットのビット幅を持つレジスタを示している。
【００４５】
固定値Ｂは、自身を３２７６８回加算した場合にレジスタ値（ｄ）の上位２ビット目が変化する値に設定する。すなわち固定値Ｂは、動作クロック（ｅ）の要求周波数に応じて値が定まる。図５においては、下位６ビット目（上位１６（１＋１５）ビット目）に１が設定された値が固定値Ｂの値となる。
【００４６】
仮にレジスタのデータ幅を上述の１６ビットとした場合、補正値によって調整可能な周波数誤差の最小単位（補正分解能）は、３０．５ｐｐｍ（１／２１５）となる。補正分解能を小さくしたい場合、レジスタを固定値Ｂにより書き換わるビットよりも下位側に拡張すればよい。下位側に拡張するビット幅が大きいほど補正値により表現する周波数誤差を細かくすることができるため、補正分解能を小さくすることができる。拡張幅をｍビットとする場合、補正分解能は、（１／２１５＋ｍ）となる。ｍ＝５とした場合、補正分解能は０．９５ｐｐｍ（１／２１５＋５）となり、電力メーカ市場のニーズを満たす。以下の説明では、ｍ＝５とする。すなわち、レジスタ値（ｄ）のデータ幅は２１ビットとする。なお固定値Ｂは、１６進数表記で００００２０Ｈとなる。このレジスタ値（ｄ）内の下位ｍビットを下位ｍビット値（ｇ）と表記する。
【００４７】
続いて、基本クロック（ａ）の周波数誤差から補正値を算出する方法について説明する。レジスタ値（ｄ）のデータ幅は２１ビット（正負を示す１ビット＋２０ビット）であるため、レジスタ値（ｄ）のＬＳＢ（最下位ビット）は、０．９５ｐｐｍ（１／２２０）と対応する。例えば、周波数誤差０．９５ｐｐｍは０００００１Ｈ（１６進数）と対応し、周波数誤差−０．９５ｐｐｍは２の補数形式を用いて１ＦＦＦＦＦＨ（１６進数）と対応する。
【００４８】
補正値は、補正間隔信号（ｂ）がハイレベルとなった場合に加算される。換言すると、補正間隔信号（ｂ）がハイレベルとなった場合に、固定値Ｂは加算されない。そのため補正値は、基本クロック（ａ）の周波数誤差をレジスタ値（ｄ）に対応する値（誤差値）に変換した値と、固定値Ｂと、の加算により算出する。詳細には、レジスタ値（ｄ）のデータ幅が２１ビットである場合の補正値は、以下の［数１］に示す式を用いて算出する。なお、［数１］における"１０６"は、ｐｐｍが１００万分率であることに起因する。例えば、周波数誤差が０．９５ｐｐｍの場合の補正値は、００００２１Ｈ（１６進数）となる。周波数誤差が−０．９５ｐｐｍの場合の補正値は、００００１ＦＨ（１６進数）となる。レジスタ値（ｄ）のデータ幅が２１ビットである場合の基本クロック（ａ）の周波数誤差と、補正値との関係を図６に示す。補正値は固定値Ｂと誤差値の加算により算出するため、加算器１１３は１秒間に３２７６８回固定値Ｂを累積加算し、１回だけ誤差値を累積加算結果に反映（加算または減算）する処理と同一の処理をしている。
【数１】
2014010704.tif 000003
【００４９】
図７は、動作クロック生成回路１１０内の各回路の出力信号を示すタイミングチャートである。なお説明の明確化のため、図７における補正値は、常に００００２１Ｈであるものとする。
【００５０】
基本クロック（ａ）は、１秒間に３２７６８回の値の切り替わりが生じる。補正間隔信号（ｂ）は、３２７６８回に１回の割合で基本クロック（ａ）の１周期分だけハイレベルとなる（タイミングＴ１２）。セレクタの選択値（ｃ）は、補正間隔信号（ｂ）がハイレベルの間（タイミングＴ１２）だけ補正値００００２１Ｈとなり、その他のタイミングでは固定値Ｂとして００００２０Ｈとなる。
【００５１】
レジスタ値（ｄ）は、セレクタの選択値（ｃ）を累積加算し、レジスタ内の上位２ビット目の値が切り替わったタイミング（タイミングＴ１１）で動作クロック（ｅ）の値を変化させる。なお図７では１６進数表記でレジスタ値（ｄ）を記載しているため、レジスタ値（ｄ）が０７ｘｘｘｘＨ（ｘは任意）から０８ｘｘｘｘＨ（ｘは任意）になる際に動作クロック（ｅ）がハイレベルに切り替わり、０ＦｘｘｘｘＨ（ｘは任意）から０ｘ００００Ｈ（ｘは任意）になる際にロウレベルに切り替わる。
【００５２】
続いて、図４及び図８を参照して動作クロック補正回路１１５の動作について説明する。図８は、動作クロック補正回路１１５の動作を示すタイミングチャートである。
【００５３】
上述のように補正値は、正の数にすることも負の数にすることも可能である。これにより、基本クロック（ａ）が正の周波数誤差を持つ場合であっても負の周波数誤差を持つ場合であっても対応が可能となる（基本クロック（ａ）が所望の周波数よりも速い場合であっても遅い場合であっても対応が可能となる）。ここで加算器１１３が負の値を加算する場合、図８の補正間隔信号（ｂ）がハイレベルとなるタイミング（タイミングＴ２１、Ｔ２２）にレジスタ値（ｄ）の上位２ビット目（すなわち動作クロック（ｅ））が変化してしまう場合がある。当該動作は、動作クロック（ｅ）の周波数を不要に増加させる意図しないものである。
【００５４】
動作クロック補正回路１１５は、当該変化を抑止する回路である。図４に示すように、動作クロック補正回路１１５には、動作クロック（ｅ）と、補正間隔信号（ｂ）と、が入力される。
【００５５】
動作クロック補正回路１１５は、タイミングＴ２０〜Ｔ２８において動作クロック（ｅ）の値の変化を検出する。動作クロック補正回路１１５は、この検出から所定時間以内に補正間隔信号（ｂ）がハイレベルのタイミングで動作クロック（ｅ）の値の再度の変化を検出する。ここで所定時間とは、例えば補正可能最小値が−１００ｐｐｍであった場合、動作クロック（ｅ）の４クロック（１００ｐｐｍ／３０．５ｐｐｍの切り上げ値）の間であり、動作クロック（ｅ）の値の変化後に再度変化を行っては不適切となる期間である。動作クロック補正回路１１５は、例えばＴ２８から所定時間内のＴ２９における動作クロック（ｅ）の再度の値の変化を検出する。この再度の値の変化を検出した場合、動作クロック補正回路１１５は、動作クロック（ｅ）の値の再度の変化（Ｔ２９）を無視した動作クロック（ｆ）を生成する。これにより、動作クロック（ｅ）の周波数の意図しない増加を防いだ動作クロック（ｆ）を生成することができる。
【００５６】
動作クロック補正回路１１５は、補正間隔信号（ｂ）のエッジを検出し、所定時間をカウントして動作クロック（ｅ）のエッジタイミングを補正する回路であればよく、既存の任意のデジタル回路を組み合わせることにより構成すればよい。動作クロック１１５は、生成した動作クロック（ｆ）を補正クロック生成回路１２０に供給する。
【００５７】
再び図４を参照する。フリップフロップ１１４は、動作クロック（ｅ）の状態変化の判定に用いる所定ビット（図５では上位２ビット目）より下位のビット値（下位ビット値）を、動作クロック（ｅ）の状態変化（ハイレベルからロウレベル、またはロウレベルからハイレベル）の際に補正クロック生成回路１２０に供給する。なお、基本クロック（ａ）には１秒間に１Ｈｚ以上の誤差（たとえば１秒間の周波数が３２．７６９ｋＨｚ）はないことを前提としているため、基本クロック（ａ）の周波数誤差に対応する値（誤差値）の絶対値は、常に固定値Ｂの絶対値よりも小さくなる。そのため、動作クロック（ｅ）の状態変化時（エッジタイミング）には、動作クロック（ｅ）の状態変化の判定に用いる所定ビット（図５では２ビット目）よりも下位に位置するビットにおいて、レジスタ値（ｄ）の下位ｍ（＝５）ビット値（ｇ）以外はすべて０となる。すなわち、動作クロック（ｅ）のエッジタイミングにおいて、レジスタ値（ｄ）の下位ｍ（＝５）ビット値（ｇ）以外のビットは無視することができる。よって、本例ではフリップフロップ１１４は、レジスタ値（ｄ）の下位ｍ（＝５）ビット値（ｇ）を補正クロック生成回路１２０に供給する。
【００５８】
＜補正クロック生成回路１２０の構成及び動作について＞
続いて、補正クロック生成回路１２０の詳細について説明する。図９は、補正クロック生成回路１２０の構成を示すブロック図である。補正クロック生成回路１２０は、カウンタ初期値算出回路１２１と、カウンタ１２２と、アンダーフロー検出回路１２３と、トグル回路１２４とを備える。補正クロック生成回路１２０には、フリップフロップ１１４のレジスタ値（ｄ）の下位ｍビット値（ｇ）と、動作クロック（ｆ）と、第２クロック（ｈ）と、が入力される。
【００５９】
カウンタ初期値算出回路１２１は、下位ｍビット値（ｇ）及びそのビット幅と、第２クロック（ｈ）の周波数と、を基にカウンタ１２２がカウントする際に用いるカウント初期値（ｉ）（パルスカウント数）を算出する。カウンタ初期値算出回路１２１は、いわゆるデコーダであり、以下のデコード式［数２］を演算してカウント初期値（ｉ）を算出する。
【００６０】
【数２】
2014010704.tif 000004
【００６１】
カウンタ初期値算出回路１２１は、算出したカウント初期値（ｉ）をカウンタ１２２に供給する。
【００６２】
カウンタ１２２は、動作クロック（ｆ）のエッジタイミングから第２クロック（ｈ）のカウントを開始し、カウント初期値（ｉ）から第２クロック（ｈ）のカウント数を減算した値（カウント値（ｊ））をアンダーフロー検出回路１２３に供給する。カウンタ１２２は、アンダーフロー検出回路１２３からカウント停止信号が供給された場合にカウントを終了する。
【００６３】
アンダーフロー検出回路１２３は、カウンタ１２２から供給された値（カウント値（ｊ））がアンダーフローしたことを検出する回路である。アンダーフロー検出回路１２３は、カウント値（ｊ））がアンダーフローした場合に、カウント停止信号をカウンタ１２２及びトグル回路１２４に供給する。
【００６４】
トグル回路１２４は、カウント停止信号が供給された場合に状態（ハイレベル、ロウレベル）を変化させた１パルス補正クロック（ｋ）を生成する。
【００６５】
なお、上述の説明では、補正クロック生成回路１２０がアンダーフロー検出回路１２３を備えるものとして説明したが必ずしもこれに限られない。例えば、カウンタ１２２がアップカウントするカウンタとすることも可能である。この場合、補正クロック生成回路１２０は、アンダーフロー検出回路１２３に代わり、カウンタ１２２がカウント初期値（ｉ）を超えてカウントアップしていること（オーバーフロー）を検出するオーバーフロー検出回路を備えても良い。オーバーフロー検出回路は、オーバーフローが生じた際にカウント停止信号が供給する。
【００６６】
続いて、図１０のタイミングチャートを参照して、補正クロック生成回路１２０内の各回路の出力信号を説明する。図１０は、基本クロック（ａ）が正の周波数誤差を持つ場合の補正クロック生成回路１２０の動作を示すタイミングチャートである。なお、説明の便宜のため、図１０には動作クロック生成回路１１０内の各信号（補正間隔信号（ｂ）、フリップフロップ１１４内のレジスタ値（ｄ））についても記載している。また、タイミングチャート内の数値は、１６進数表記としている。また、図１０では説明の便宜のため補正値は常に"００００２１Ｈ"とする。
【００６７】
補正間隔信号（ｂ）がロウレベルの場合、レジスタ値（ｄ）に固定値Ｂ（図１０では"００００２０Ｈ"）が基本クロック（ａ）のカウントに応じて加算される。補正間隔信号（ｂ）がハイレベルの場合、レジスタ値（ｄ）に補正値（００００２１Ｈ）が基本クロック（ａ）のカウントに応じて加算される。補正間隔信号（ｂ）は１秒間に１回だけハイレベルとなる（ワンショットパルス）。そのため、レジスタ値（ｄ）の下位ｍ（＝５）ビット値（ｇ）は、１秒間に１回だけ値が変化する。
【００６８】
たとえばタイミングＴ３０において補正間隔信号（ｂ）がハイレベルとなっている。そのため、レジスタ値（ｄ）の下位ｍ（＝５）ビット値（ｇ）は、タイミングＴ３０に変化する（図１０は１６進数表記のため、最下位ビットが変化する）。同様にタイミングＴ３２において補正間隔信号（ｂ）がハイレベルとなり、レジスタ値（ｄ）の下位ｍ（＝５）ビット値（ｇ）がタイミングＴ３２に変化する（図１０は１６進数表記のため、最下位ビットが変化する）。
【００６９】
カウンタ初期値算出回路１２１は、レジスタ値（ｄ）の下位ｍ（＝５）ビット値（ｇ）と、第２クロック（ｈ）の周波数を基にカウント初期値（ｉ）を算出する。例えば、カウンタ初期値算出回路１２１は、タイミングＴ３０においてカウント初期値（ｉ）"６９０ｄ"を算出する。
【００７０】
カウンタ１２２は、動作クロック（ｆ）のエッジタイミング（タイミングＴ３１、Ｔ３２等）においてカウント処理を開始する。ここでカウンタ１２２は、カウント初期値（ｉ）から第２クロック（ｈ）のカウント数を減算してカウント値（ｊ）を算出する。アンダーフロー検出回路１２３は、カウント値（ｊ）のアンダーフローを検出し、アンダーフローが生じた時点でカウント停止信号を出力する。カウント値のＬＳＢ（ｊ'）は、図示するように、カウント開始からカウント終了まで第２クロック（ｈ）と同一波形となる。カウント停止信号の出力に応じて、１パルス補正クロック（ｋ）の値が変化する。
【００７１】
例えばアンダーフロー検出回路１２３は、タイミングＴ３５においてアンダーフローを検出してカウント停止信号を出力する。これにより、１パルス補正クロック（ｋ）はタイミングＴ３５に値が変化する。同様にタイミングＴ３６においてアンダーフローが生じるため、１パルス補正クロック（ｋ）はタイミングＴ３６に値が変化する。
【００７２】
カウンタ初期値算出回路１２１は、各タイミングにおいてカウント初期値（ｉ）を算出する。カウンタ１２２は、タイミングＴ３３やＴ３４（動作クロック（ｆ）のエッジタイミング）においてカウント処理を開始する。カウント初期値（ｉ）は、補正間隔信号（ｂ）の入力時の補正値の加算に伴って変化するため、カウントに要する時間も変化する。このように１パルス補正クロック（ｋ）は、レジスタ値（ｄ）の下位ｍ（＝５）ビット値（ｇ）（すなわち動作クロック（ｆ）に反映されていない周波数誤差に相当する値）に応じてパルス幅が調整される。
【００７３】
図１１は、図１０のタイミングチャートを模式的に示す図である。図１１では、理解の容易化のためレジスタ値（ｄ）を５ビット値とし、下位ｍビット値（ｇ）を２ビット値とする。またレジスタ値（ｄ）は、補数形式ではないものとする。固定値Ｂは、"００１００"とし、最上位ビットの値が変化した場合に動作クロック（ｆ）が変化するものとする。また、図１１において補正値は常に"００１０１"とする。
【００７４】
補正間隔信号（ｂ）がハイレベルの場合（タイミングＴ４１、Ｔ４２、Ｔ４３、Ｔ４４）において、レジスタ値（ｄ）に補正値"００１０１"が加算される。すなわち、補正間隔信号（ｂ）がハイレベルの場合（タイミングＴ４１、Ｔ４２、Ｔ４３、Ｔ４４）に、下位ｍ（＝２）ビット値（ｇ）に"０１"が累積加算される。
【００７５】
本例では、タイミングＴ４４となるまではレジスタ値（ｄ）の下位ｍ（＝２）ビット値（ｇ）の累積加算が下位３ビット目に桁上がりしない。そのため、動作クロック（ｆ）は、タイミングＴ４４となるまでの期間ではレジスタ値（ｄ）が４回更新される毎に値が変化する。
【００７６】
タイミングＴ４４において、下位ｍ（＝２）ビット値（ｇ）の累積加算が下位３ビット目に桁上がりする。これにより、直近の最上位ビットの更新タイミングから３回のレジスタ更新が行われたタイミング（Ｔ４４）で最上位ビットの値が変化する。これにより、動作クロック（ｆ）の補正がタイミングＴ４４において行われる。すなわち、タイミングＴ４０〜Ｔ４４の周波数誤差の補正をタイミングＴ４４において一括して行うことにより、動作クロック（ｆ）が生成される。
【００７７】
一方、１パルス補正クロック（ｋ）は、動作クロック（ｆ）のエッジタイミングから下位ｍ（＝２）ビット値（ｇ）に応じたカウントを行う。そして１パルス補正クロック（ｋ）は、当該カウント終了時に値が更新される。例えば、動作クロック（ｆ）のエッジタイミングであるタイミングＴ４５において下位２ビット"００"に応じたカウントを開始し、当該カウントが終了した際に１パルス補正クロック（ｋ）の値が変化する。動作クロック（ｆ）のエッジタイミングであるタイミングＴ４６において下位２ビット"０１"に応じたカウントを開始し、当該カウントが終了したに１パルス補正クロック（ｋ）の値が変化する。
【００７８】
このように１パルス補正クロック（ｋ）は、レジスタ値（ｄ）の下位ｍ（＝２）ビット値（ｇ）に応じて調整されたパルス幅を持つ。すなわち、１パルス補正クロック（ｋ）は、タイミングＴ４０〜Ｔ４４の期間において補正が行われた動作クロック（ｆ）に対して、動作クロック（ｆ）の生成に反映されていない周波数誤差を示す下位ｍ（＝２）ビット値（ｇ）を用いたパルス幅調整を行って生成される。これにより、１パルス補正クロック（ｋ）は、基本クロック（ａ）の周波数誤差が毎パルス反映されたクロック信号となる。
【００７９】
続いて、基本クロック（ａ）が負の周波数誤差を持つ場合について説明する。図１２は、基本クロック（ａ）が負の周波数誤差を持つ場合の補正クロック生成回路１２０の動作を示すタイミングチャートである。各回路の動作自体は、正の周波数誤差を持つ場合（図１０）と同様である。固定値Ｂは"００００２０Ｈ"とし、補正値は"００００１ＦＨ"とする。
【００８０】
補正間隔信号（ｂ）がロウレベルの場合、レジスタ値（ｄ）に固定値Ｂ（図１０では"００００２０Ｈ"）が基本クロック（ａ）のカウントに応じて加算される。補正間隔信号（ｂ）がハイレベルの場合、レジスタ値（ｄ）に補正値が基本クロック（ａ）のカウントに応じて加算される。例えば、レジスタ値（ｄ）の下位ｍ（＝５）ビット値（ｇ）がタイミングＴ５２及びＴ５５において変化する（図１２は１６進数表記のため、最下位ビットが変化する）。
【００８１】
カウンタ初期値算出回路１２１は、レジスタ値（ｄ）の下位ｍ（＝５）ビット値（ｇ）と、第２クロック（ｈ）の周波数を基にカウント初期値（ｉ）を算出する。例えば、カウンタ初期値算出回路１２１は、タイミングＴ５０においてカウント初期値（ｉ）"６９０ｄ"を算出し、タイミングＴ５３において"０ｄ"を算出する。
【００８２】
カウンタ１２２は、動作クロック（ｆ）のエッジタイミング（タイミングＴ３１、Ｔ３２等）においてカウント処理を開始する。アンダーフロー検出回路１２３は、カウンタ１２２のカウント値（ｊ）のアンダーフローを検出してカウント停止信号を出力する。例えば、アンダーフロー検出回路１２３は、タイミングＴ５７においてアンダーフローを検出する。同様に、アンダーフロー検出回路１２３は、タイミングＴ５３、Ｔ５４、Ｔ５８においてアンダーフローを検出してカウント停止信号を出力する。なお、タイミングＴ５３ではカウント初期値（ｉ）が"０ｄ"であるため、動作クロック（ｆ）のエッジタイミングとアンダーフローの検出が同時となる。
【００８３】
カウント停止信号の出力に応じて、１パルス補正クロック（ｋ）はタイミングＴ５７、Ｔ５３、Ｔ５４、Ｔ５８に値が変化する。
【００８４】
図１３は、図１１（負の周波数誤差を持つ場合）のタイミングチャートを模式的に示す図である。図１３では、図１１と同様に理解の容易化のためレジスタ値（ｄ）の値を５ビット値とし、下位ｍビット値（ｇ）を２ビット値とする。またレジスタ値（ｄ）は、補数形式ではないものとする。固定値Ｂは、"００１００"とし、最上位ビットが変化した場合に動作クロック（ｆ）が変化するものとする。また、図１３において補正値は常に"０００１１"とする。
【００８５】
補正間隔信号（ｂ）がハイレベルの場合（タイミングＴ６２、Ｔ６５、Ｔ６８、Ｔ７０）において、レジスタ値（ｄ）に補正値"００１１"が加算される。すなわち、補正間隔信号（ｂ）がハイレベルの場合（タイミングＴ６２、Ｔ６５、Ｔ６８、Ｔ７０）に、下位ｍ（＝２）ビット値（ｇ）に"１１"が累積加算される。
【００８６】
図１３では、補正値"０００１１"よりも固定値Ｂ"００１００"の方が大きい。そのため、タイミングＴ６２においてレジスタ値（ｄ）に補正値"０００１１"が加算されたとしても、レジスタ値（ｄ）の最上位ビットが変化しない。そのため、タイミングＴ７２には動作クロック（ｆ）は変化せず、タイミングＴ６３において状態が変化する。すなわち、タイミングＴ６１からレジスタ値（ｄ）が５回更新されたタイミングＴ６３において動作クロック（ｆ）の状態が変化する。動作クロック（ｆ）は、タイミングＴ６１〜Ｔ６３の間隔を除き、レジスタ値（ｄ）が４回更新される毎に状態が変化する（Ｔ６０〜Ｔ６１、Ｔ６３〜Ｔ６４、Ｔ６４〜Ｔ６６、Ｔ６６〜Ｔ６７、Ｔ６７〜Ｔ６９）。
【００８７】
タイミングＴ７２には動作クロック（ｆ）は変化せず、タイミングＴ６３において値が変化することにより、動作クロック（ｆ）は、タイミングＴ６０〜タイミングＴ７１の間隔の周波数誤差が補正されたクロック信号となる。すなわち、タイミングＴ６３において周波数誤差の補正が一括して行われることにより、動作クロック（ｆ）を調整している。
【００８８】
一方、１パルス補正クロック（ｋ）は、動作クロック（ｆ）のエッジタイミングから下位ｍ（＝２）ビット値（ｇ）に応じたカウントの終了時に値が更新される。例えば、動作クロック（ｆ）のエッジタイミングであるタイミングＴ６１において下位２ビット"００"に応じたカウントを開始し、当該カウントが終了したときに１パルス補正クロック（ｋ）の状態が変化する。同様に動作クロック（ｆ）のエッジタイミングであるタイミングＴ６３において下位２ビット"１１"に応じたカウントを開始し、当該カウントが終了したときに１パルス補正クロック（ｋ）の状態が変化する。
【００８９】
図１１を参照して説明した場合と同様に、１パルス補正クロック（ｋ）は、基本クロック（ａ）の周波数誤差が毎パルス反映されたクロック信号となる。
【００９０】
なお図１０〜図１３の説明では補正値が一定値であるものとして説明したが、必ずしもこれに限られない。補正値は、後述する温度特性を用いた算出により時間経過とともに適宜変更され得る。当該補正値の変化に応じて、カウント初期値（ｉ）の値が定まる。例えば、補正値が"００００２０Ｈ"（固定値Ｂと同値）となった場合には、カウント初期値（ｉ）の変化が生じず、前回のカウントと同数のカウントを行ったタイミングでカウント停止信号が出力される。一方、あるタイミングで補正値が大幅に変更された場合、前回のカウント時からカウント初期値（ｉ）の値が大幅に変わり、カウントに要する時間も大幅に変化する。
【００９１】
＜クロック補正回路１００の効果＞
続いてクロック補正回路１００の効果について説明する。動作クロック生成回路１１０は、一定期間で周波数誤差が補正された動作クロックを出力する。詳細には、動作クロック生成回路１１０は、一定タイミングで基本クロック（ａ）（第１クロック）の周波数誤差に相当する値（誤差値）を固定値の累算値に反映（加算）する。そして動作クロック生成回路１１０は、累積値の所定ビット（図５では上位２ビット目）が変化したタイミングで補正を一括して行うことにより一定期間で周波数誤差が補正された動作クロックを出力する。上述の説明では、分解能が３０．５ｐｐｍ未満の周波数誤差の値を下位ｍビット値（ｇ）として累積している。すなわち、動作クロックの各エッジタイミングでは、動作クロックの状態変化に反映されていない周波数誤差が下位ｍビット値（ｇ）として記憶されている。換言すると、動作クロックの状態が変化するタイミング（つまりエッジタイミング）の累算値内には、所定ビットより下位のビット値が残存している。この残存しているビット値（下位ビット値）は、動作クロックの対象となるエッジタイミングの判定に直接的には扱うことができなかったビット値である。
【００９２】
補正クロック生成回路１２０は、この累算値内に残存しているビット値である下位ｍビット値（ｇ）を基本クロック（ａ）よりも高速な（詳細には式（要求出力周波数／所望の分解能）を満たす）第２クロックのカウント数に換算する。そして補正クロック生成回路１２０は、動作クロックのエッジタイミングを当該カウント数に応じてずらした補正クロック（１パルス補正クロック（ｋ））を生成する。動作クロック（ｆ）の状態変化の際に累算値内に残存していたビット値を用いて動作クロック（ｆ）のパルス幅を補正することにより、精度の高いクロック信号を生成することができる。
【００９３】
別の観点から更に説明する。フリップフロップ１１４のレジスタ値（ｄ）（累算値）は、出力信号の要求周波数を基に定めた固定値を累算し、基本クロック（ａ）の周波数誤差を累算値に反映した値である。すなわちレジスタ値（ｄ）（累算値）は、要求周波数と生成元となる基本クロック（ａ）の周波数誤差の双方を考慮した値となる。そのためこのレジスタ（ｄ）（累算値）の全ビット（全桁）を余すことなく使用することにより精度の高い補正信号を算出することができる。補正クロック生成回路１２０は、動作クロック生成回路１１０が着目した所定ビット（図５では上位２ビット目）以下の桁の値（上述の例ではレジスタ（ｄ）（累算値）の下位ｍビット値（ｇ））を用いて動作クロックを補正している。これにより、精度の高いクロック信号を生成することができる。
【００９４】
なお、上述の説明では動作クロックの各エッジタイミングでカウント処理を行ったが必ずしもこれに限られない。例えば、補正クロック生成回路１２０は、動作クロック（ｆ）の立下りのエッジタイミングでのみ上述のカウント処理を行ってもよい。この場合であっても、動作クロック（ｆ）の補正間隔よりも短い間隔で周波数誤差が補正された精度の高いクロック信号を生成することができる。同様に動作クロック（ｆ）のエッジタイミングの数回に１回（たとえば３回に１回）だけ上述のカウント処理を行っても良い。すなわち、補正クロック生成回路１２０は、動作クロック（ｆ）の補正間隔（第１間隔）よりも短い間隔（第２間隔）で補正（カウント処理）を行えばよい。
【００９５】
また補正値及びレジスタ値（ｄ）は、補数形式により表現することができる数値である。補正値を補数形式で表現できることにより、レジスタ値（ｄ）を増加だけでなく減少させることが可能となる。これにより、基本クロック（ａ）が正の周波数誤差（ｐｐｍ）を持つ場合と負の周波数誤差を持つ場合の双方に対応することができる。
【００９６】
さらに、上述の動作クロック補正回路１１５は、補正値及びレジスタ値（ｄ）が補数形式を用いることに起因する動作クロックの意図しない動作を補正間隔信号（ｂ）の出力タイミングに応じて補正する。これにより、精度の高い動作クロック（ｆ）を生成することができる。
【００９７】
前述のように第２クロック（ｈ）は、式（要求出力周波数／所望の分解能）以上の周波数を持つクロック信号である。これにより、１パルス補正クロック（ｋ）と要求精度に応じた補正が担保される。
【００９８】
また、本実施の形態では、固定値Ｂよりも誤差値（補正値から固定値Ｂを引いた値であり、基本クロック（ａ）の周波数誤差に対応する値）が小さい。そのため、動作クロックのエッジタイミングおける累算値内の残存値（下位ビット値）は、常に下位ｍビット値（ｇ）にのみ現れる。よって、動作クロック生成回路１１０は、動作クロックの状態変化時における累算値内の残存値として下位ｍビット値（ｇ）のみを補正クロック生成回路１２０に供給すればよい。第２クロックのパルスカウントに用いるビット幅が小さくなることにより、カウンタ１２２のカウント上限数を少なくすることができる。
【００９９】
なお、上述の例では固定値Ｂは、あるビット（図５における下位６ビット目）のみが１となっている値であったが必ずしもこれに限られない。例えば固定値Ｂは、２つのビットに１が設定されているような値であっても良い。この場合であっても動作クロックのエッジタイミング（動作クロックの状態の変更時）において、補正クロック生成部１２０は、累算値のうち所定ビットよりも下位側のビット値を用いて補正クロックを生成すればよい。
【０１００】
＜ＭＣＵ１０の構成例について＞
続いて、図３に示すクロック補正回路１００の具体的な構成例について説明する。動作クロック生成回路１１０に補正値の算出方法は、例えば前述の３通り（（１）温度特性テーブル、（２）温度特性算出式、（３）周波数誤差検出器）の方式がある。各方式を採用したクロック補正回路１００の構成例（図３に示すクロック補正回路の具体的な構成例）について図面を参照して説明する。
【０１０１】
＜ＭＣＵ１０の詳細構成例１＞
図１４は、温度特性（（１）温度特性テーブル、（２）温度特性算出式）を用いて動作クロック生成回路１１０に与える補正値を算出するクロック補正回路１００及びＭＣＵ１０の構成例を示すブロック図である。
【０１０２】
ＭＣＵ１０は、図３の構成に加えて高速内蔵発振器２２０と、温度センサ３３０と、Ａ／Ｄ変換器３４０と、を有する。また、クロック補正回路１００は、補正値を設定するレジスタを備える構成であってもよい。
【０１０３】
温度センサ３３０は、ＭＣＵ１０上で使用される外部温度検出のための一般的な温度センサである。温度センサ３３０は、定期的に温度検出を行い、検出値（アナログ値）をＡ／Ｄ変換器３４０に供給する。Ａ／Ｄ（Ａｎａｌｏｇ／Ｄｉｇｉｔａｌ）変換器３４０は、供給されたアナログ値をデジタル値に変換し、当該デジタル値をＣＰＵ３００に供給する。温度センサ３３０及びＡ／Ｄ変換器３４０は、一般的なマイクロコントローラ上で用いられる任意の構成であればよい。
【０１０４】
ＣＰＵ３００は、温度特性（（１）温度特性テーブル、（２）温度特性算出式）を用いて補正値を算出する。初めに温度特性テーブル（１）を用いた算出方法を説明する。音叉型水晶振動子の周波数温度特性は、２５度を中心とする負の２次曲線で示されることが知られている。すなわち、温度が定まると周波数誤差が一意に定まる関係になる。メモリ３１０は、温度と基本クロック（ａ）の周波数誤差とが対応付けられたテーブル情報を保持する。ＣＰＵ３００は、Ａ／Ｄ変換器３４０からバスを介して供給された温度特性と対応する周波数誤差を当該テーブルから読み出す。そして、ＣＰＵ３００は、テーブルから読み出した基本クロック（ａ）の周波数誤差を上記の[数１]に代入することにより補正値を算出し、算出した補正値を動作クロック生成回路１１０に供給する。
【０１０５】
ＣＰＵ３００は、温度特性算出式（２）を用いて補正値を算出する場合、メモリ３１０から温度特性式を読み出す。当該温度特性式は、前述のように２次曲線である。ＣＰＵ３００は、温度を当該温度特性式に代入することにより基本クロック（ａ）の周波数誤差を算出する。ＣＰＵ３００は、算出した補正値を動作クロック生成回路１１０に供給する。
【０１０６】
なお音叉型水晶振動子の周波数温度特性を利用した周波数誤差算出の詳細は、［非特許文献１］、及び［非特許文献２］を参照されたい。また、ＣＰＵ３００が算出した補正値をそのまま動作クロック生成回路１１０に供給することに限られず、算出した周波数誤差をもとにユーザが動作クロック生成回路１１０が読み出し可能なレジスタに補正値を設定しても良い。
【０１０７】
高速内蔵発振器２２０は、一般的なＭＣＵ１０内に設けられる発振器である。高速内蔵発振器２２０は、基本クロック（ａ）よりも周波数の高い高速クロックを生成する。当該高速クロックは、上述の式（１パルス補正クロックの出力周波数／所望の分解能）を満たす周波数を有する。高速内蔵発振器２２０は、生成した高速クロックを上述の第２クロック（ｈ）として補正クロック生成回路１２０に供給する。
【０１０８】
＜ＭＣＵ１０の詳細構成例２＞
図１５は、周波数誤差検出器（３）を用いて動作クロック生成回路１１０に与える補正値を算出するクロック補正回路１００及びＭＣＵ１０の構成例を示すブロック図である。
【０１０９】
ＭＣＵ１０は、基準発振器２３０を備える構成である。基準発振器２３０は、ＴＣＸＯ等を用いることによって基本クロック（ａ）よりも周波数の高い基準クロックを生成する。基準クロックの周波数は、例えば１４．４ＭＨｚや２４ＭＨｚである。基準発振器２３０は、生成した基準クロックを第２クロック（ｈ）として周波数誤差検出器１７０及び補正クロック生成回路１２０に供給する。なお、基準クロックは、前述の高速クロック（高速内蔵発振器２２０の出力クロック信号）よりも精度の良いクロック信号を生成することができるが、消費電力が大きい。
【０１１０】
クロック補正回路１００は、周波数誤差検出器１７０を備える。周波数誤差検出器１７０は、基準クロックを基に基本クロック（ａ）の周波数誤差を算出する。図１６は、周波数誤差検出部１７０の内部構成を示すブロック図である。周波数誤差検出部１７０は、ゲート生成カウンタ１７１と、誤差測定用カウンタ１７２と、を有する。ゲート生成カウンタ１７１は、時計発振器２１０にて生成された基本クロック（ａ）をカウントし、基本クロック（ａ）の周波数に応じて設定されたゲート幅Ｔのゲート信号を生成するものである。以下の説明では、ゲート幅Ｔは、３２７６８とする。すなわち、基本クロック（ａ）に誤差がない場合、基本クロック（ａ）の周波数が３２．７６８ｋＨｚであるため、ゲート生成カウンタ１７１は、１秒のゲート信号を生成する。
【０１１１】
誤差測定用カウンタ１７２は、基準発振器２３０が生成した基準クロックをカウントし、ゲートにおいて生成されたゲート信号をイネーブルとする。そして、誤差測定用カウンタ１７２は、ゲート信号で設定される時間内にカウントしたカウント値と、予め設定される期待値Ｅとの差を求め、この差を周波数誤差として算出する。なお期待値Ｅは、基準クロックが１４．４ＭＨｚである場合には「１４４０００００」となる。誤差測定用カウンタ１７２は、算出した周波数誤差をＣＰＵ３００に供給する。ＣＰＵ３００は、上述の［数１］に算出した周波数誤差を代入することにより補正値を算出し、当該補正値を動作クロック生成回路１１０に供給する。
【０１１２】
＜ＭＣＵ１０の詳細構成例３＞
ＭＣＵ１０は、クロックリカバリ回路を備えても良い。図１７は、クロックリカバリ回路を有するＭＣＵ１０の構成を示すブロック図である。ＭＣＵ１０は、クロックリカバリ回路２４０及びセレクタ２５０を備える。
【０１１３】
セレクタ２５０は、消費電力や外部端子１６０から出力されるクロック信号の用途に応じて、基準クロック及び高速クロックの一方を第２クロック（ｈ）として補正クロック生成回路１２０に供給する。
【０１１４】
クロックリカバリ回路２４０には、高速内蔵発振器２２０が生成した高速クロック、及び補正クロック生成回路１２０が生成した１パルス補正クロック（ｋ）が供給される。クロックリカバリ回路２４０は、１パルス補正クロック（ｋ）を用いて高速クロックの周波数を測定し、当該測定結果を用いて高速内蔵発振器２２０のトリミング（容量調整）を行う。図１８にクロックリカバリ回路２４０の詳細構成を示す。
【０１１５】
図１８にクロックリカバリ回路２４０の詳細構成を示す。クロックリカバリ回路２４０は、カウンタ２４１と、比較回路２４２と、を有する。なお、図示しないものの後述の期待値を保持するレジスタも備える。
【０１１６】
カウンタ２４１は、１パルス補正クロック（ｋ）が所定回数入力される間に、高速クロックの入力回数をカウントする。カウンタ２４１は、当該カウント数を比較回路２４２に供給する。
【０１１７】
比較回路２４２は、図示しないレジスタ（または任意の記憶装置）から高速クロックの期待値、すなわち要求周波数を読み出す。比較回路２４２は、読み出した期待値と、カウント数と、を比較する。ここで両者が一致する場合、比較回路２４２は高速クロックが所望の周波数で動作していると判定する。両者にずれがある場合、比較回路２４２は高速クロックと所望の周波数との間にずれがあるものと判定する。比較回路２４２は、高速内蔵発振器２２０の周波数がプラス方向かマイナス方向のどちらにずれているかを比較する。そして比較回路２４２は、ずれの方向により補正容量値を±１する。この補正容量値の調整動作を読み出した期待値とカウント数が一致するまで繰り返し、適切な補正容量値を算出する。そして、比較回路２４２は、当該容量値を高速内蔵発振器２２０に供給する。
【０１１８】
高速内蔵発振器２２０は、比較回路２４２から通知された容量値を用いて高速内蔵発振器２２０内の可変容量等に反映することにより、周波数誤差の調整を行う。
【０１１９】
ここで、カウンタ２４１が１パルス補正クロック（ｋ）を用いる理由を以下に説明する。仮にカウンタ２４１が動作クロック（ｆ）を使用する場合、最低でも動作クロック（ｆ）の補正が行われるまでの時間だけ高速クロックのカウント処理を行う必要が生じるため、カウンタ２４１のカウント時間が長くなってしまう。一方、カウンタ２４１が１パルス補正クロック（ｋ）を使用する場合、１パルス補正クロック（ｋ）は各パルスの周波数調整が行われているため、カウント時間を短くすることができる。カウント時間を短くすることにより消費電流を少なくすることができる。
【０１２０】
さらに、１パルス補正クロック（ｋ）を使用した場合、カウンタ２４１の最大カウント数を削減することができる。これにより、カウンタ２４１の回路規模を小さくすることができる。よって、消費電流及び回路規模の観点からクロックリカバリ回路２４０に供給されるクロックは、各パルスの周波数誤差が逐次補正された１パルス補正クロック（ｋ）であることが望ましい。
【０１２１】
＜実施の形態２＞
実施の形態２にかかるクロック補正回路１００は、動作クロック生成回路１１０内の消費電流を実施の形態１の構成と比べて削減出来ることを特徴とする。以下、実施の形態２にかかるクロック補正回路１００について実施の形態１と異なる点を説明する。
【０１２２】
実施の形態２にかかるクロック補正回路１００は、実施の形態1と動作クロック生成回路１１０の構成のみが異なるため、動作クロック生成回路１１０についてのみ説明を行う。図１９は、本実施の形態にかかる動作クロック生成回路１１０の構成を示すブロック図である。
【０１２３】
本実施の形態にかかる動作クロック生成回路１１０は、図４に示す構成に加えてＦＦ動作制御回路１１６を備える。ＦＦ動作制御回路１１６には、補正間隔信号（ｂ）が供給される。なお以下の説明においてフリップフロップ１１４の構成は、図５に示す構成、すなわち２１ビットのレジスタを持つ構成とする。また補正間隔信号（ｂ）は、３２７６８クロックのうち１クロックのみがハイレベルとなるワンショットパルスである。
【０１２４】
ＦＦ動作制御回路１１６は、補正間隔信号（ｂ）に応じてフリップフロップ１１４の動作を制御する。詳細にはＦＦ動作制御回路１１６は、補正間隔信号（ｂ）がロウレベルの場合にレジスタの上位１６ビット目がカウントアップするように制御する。レジスタの上位１６ビット目の値は、上述の固定値Ｂに相当する値である。この際に、ＦＦ動作制御回路１１６は、フリップフロップ１１４が加算器１１３からの値の取り込みを行わないように制御する。また、ＦＦ動作制御回路１１６は、フリップフロップ１１４から加算器１１３への値の入力も行わないように制御する。一方、ＦＦ動作制御回路１１６は、補正間隔信号（ｂ）がハイレベルの場合にのみ加算器１１３からの出力値を取り込み、レジスタ値（ｄ）に当該出力値を反映する。
【０１２５】
すなわち、ＦＦ動作制御回路１１６は、３２７６８クロックのうち１クロックの期間だけ加算器１１３が加算処理を行い、その他の期間ではフリップフロップ１１４内のレジスタが単なるアップカウンタとして動作するように制御する。
【０１２６】
上述の構成をとることにより加算演算の回数が大幅に減少し、フリップフロップ１１４はほとんどの期間を単なるカウンタとして動作する。カウント処理は単純処理であるため、実施の形態１と比べて消費電流を大幅に削減することができる。近年のクロック補正回路１００（ＲＴＣ）は、スタンバイモード設定下において使用されることが非常に多い。スタンバイモード時では超消費電流化が求められている。本実施の形態にかかる動作クロック生成回路１１０の構成は加算演算を極力行わないため、スタンバイモード時における消費電流削減の要求に応えることができる。
【０１２７】
＜その他の実施形態＞
なお、特許文献１に記載のＲＴＣ回路も動作クロックに相当するクロック信号を生成できる構成である。実施の形態１にかかるクロック補正回路１００の構成回路の一部を特許文献１に記載の各回路に置き換えることも可能である。当該構成について以下に説明する。
【０１２８】
図２０は、クロック補正回路１００に特許文献１に記載のＲＴＣ回路を構成する各回路を適応した構成を示すブロック図である。クロック補正回路１００は、動作クロック生成回路１１０に代わり、分周器１８０と、補正機能付き発振器１９０とを備える。なお、図３に示す構成要素と同一の構成要素は、同一符号を付して詳細な説明を省略する。また実施の形態１と同様に１パルス補正クロック（ｋ）が１ｐｐｍ以下の補正精度を実現する構成について説明する。
【０１２９】
分周器１８０は、基本クロック（ａ）を分周した分周信号（ｌ）を生成する。分周器１８０は、一般的に知られた分周器の構成であればよく、たとえば複数のフリップフロップを用いた非同期カウンタにより構成すれば良い。以下の説明では、分周器１８０は、２１４分周回路であるものとする。すなわち、分周器１８０は、基本クロック（ａ）から２Ｈｚの分周信号（ｌ）を生成する。
【０１３０】
補正機能付き発振器１９０は、動作クロック（ｆ'）を生成する。補正機能付き発振器１９０の構成例を図２１に示す。補正機能付き発振器１９０は、加算器１９１と、フリップフロップ（ＦＦ）１９２と、を備える。
【０１３１】
加算器１９１は、周波数誤差検出器１７０が算出した周波数誤差と、固定値Ａと、フリップフロップ１９２の出力値と、を加算する。固定値Ａは、"２０００Ｈ"とする。周波数誤差の算出方法は、図６に示す算出方法と略同一であり、たとえば０．９５ｐｐｍの場合には１Ｈとなる。
【０１３２】
フリップフロップ１９２は、内部にｎビット（以下の説明ではｎ＝１８）のレジスタ（レジスタ値（ｄ'））を有する。フリップフロップ１９２は、分周信号（ｌ）をクロック端子の入力として加算器１９１の出力値をｎビットのレジスタに取り込む。さらにフリップフロップ１９２は、レジスタ値（ｄ'）のＭＳＢ（Most Significant Bit）が変化するタイミングで値が切り替わる動作クロック（ｆ'）を生成する。さらにフリップフロップ１９２は、レジスタ値（ｄ'）の下位ｍ（ｍ＝１７）ビット値（ｇ'）を補正クロック生成回路１２０内のカウンタ初期値算出回路１２１に供給する。
【０１３３】
図２２は、フリップフロップ１９２内のレジスタ値（ｄ'）を示す図である。当該レジスタ値（ｄ'）は、図５に示すレジスタ値（ｄ）と略対応するが、正負を示すビットを持たない点と下位ｍビット値（ｇ'）のビット幅が大きい点が異なる。
【０１３４】
以上のように特許文献１と同様の構成であっても、補正機能付き発振器１９０は、周波数誤差を累積加算して動作クロック（ｆ'）を生成する。補正クロック生成回路１２０は、この動作クロック（ｆ'）と下位ｍビット値（ｇ'）を用いることにより１パルス補正クロック（ｋ）を生成することができる。
【０１３５】
次に実施の形態１にかかるクロック補正回路１００の構成（図３等）と図２０に示すクロック補正回路１００の構成の比較を行う。実施の形態１にかかる構成では、３２．７６８ｋＨｚの基本クロック（ａ）から動作クロック（ｆ）を生成するため、動作クロック（ｆ）の最大誤差を３０．５ｐｐｍ（１Ｈｚ／３２．７６８ｋＨｚ）とすることができる。これにより、１ｐｐｍの補正精度を実現するためには、下位ｍビット値（ｇ）を５ビット値とすることができる。一方、図２０の構成では分周信号２Ｈｚから動作クロック（ｆ'）を生成するため、動作クロック（ｆ'）の最大誤差は動作クロック（ｆ）の最大誤差（３０．５ｐｐｍ）よりも大きくなる。これにより、下位ｍビット値（ｇ'）が実施の形態１よりも大きなビット幅の値（１７ビット値）となる。
【０１３６】
実施の形態１では下位ｍビット値（ｇ）のビット幅を小さくできるため、第２クロック（ｈ）のカウント時間を短くすることができる。これにより、第２クロック（ｈ）に多少の誤差がある場合であっても、１パルス補正クロック（ｋ）の要求精度を満たすことができる。例えば、上述の高速内蔵発振器２２０の出力する高速クロック（第２クロック（ｈ））に５％程度の精度誤差があった場合であっても、１パルス補正クロック（ｋ）は±３ｐｐｍ程度の精度を満たすことができる。
【０１３７】
さらに、実施の形態１では下位ｍビット値（ｇ）のビット幅を小さくできるため、カウンタ初期値算出回路１２１（いわゆるデコーダ）の回路規模を小さくすることができる。
【０１３８】
さらにまた、実施の形態１では補正値及びレジスタ値（ｄ）が正負を示すことができる補数形式である。そのため実施の形態１に記載のクロック補正回路１００は、図２０に示す構成と異なり、基本クロック（ａ）が正の周波数誤差（ｐｐｍ）を持つ場合にも負の周波数誤差（ｐｐｍ）を持つ場合にも対応することができる。
【０１３９】
以上、本発明を上記実施形態に即して説明したが、上記実施形態の構成にのみ限定されるものではなく、本願特許請求の範囲の請求項の発明の範囲内で当業者であればなし得る各種変形、修正、組み合わせを含むことは勿論である。
【０１４０】
例えば、クロック補正回路１００が電力メータ１内部で用いられる例について説明したが、必ずしもこれに限られない。上述のクロック補正回路１００は、例えば任意の車載システム、携帯電話やスマートフォンをはじめとする携帯端末、パーソナルコンピュータ等に内蔵されても良い。
【０１４１】
上記実施形態の一部又は全部は、以下の付記のようにも記載されうるが、以下には限られない。
【０１４２】
（付記１）
クロック信号を出力可能な外部端子を有するマイクロコントローラであって、
出力するクロック種別を記憶する出力選択レジスタと、
第１クロックに基づいて第１間隔で周波数誤差が補正された動作クロック、前記第１クロックに基づいて第１間隔よりも短い第２間隔で周波数誤差が補正された補正クロック、を含むクロック信号群から前記出力選択レジスタの記憶値に応じてクロック信号を選択して前記外部端子から出力するセレクタと、を備えるマイクロコントローラ。
【０１４３】
（付記２）
前記補正クロックは、各パルスのパルス幅が補正された１パルス補正クロック信号である、付記１に記載のマイクロコントローラ。
【０１４４】
（付記３）
測定用ＬＳＩが測定した電力情報と、消費電力量と各時刻の課金額の関係を示すテーブル情報と、前記動作クロックに基づいて計時された時刻情報と、に基づいて電力課金額を算出する演算部、を更に備える付記１に記載のマイクロコントローラ。
【０１４５】
（付記４）
付記３に記載のマイクロコントローラと、
前記電力課金額を表示するパネル装置と、を備える電力メータ装置。
【符号の説明】
【０１４６】
１  電力メータ（電子機器）
１０  ＭＣＵ
２０  測定対象ユニット
３０  測定用ＬＳＩ
４０  ＬＣＤパネル
５０  ＥＥＰＲＯＭ
５１  Ｃａｒｄ  ＩＣ
５２  ＩＣ  Ｃａｒｄ
５３  ＥＳＡＭ
５４  ＩｒＤＡ  ＩＣ
５５  ＲＳ４８５  ＩＣ
５６  ＰＬＣ  ｍｏｄｅｍ
１００  クロック補正回路
１１０  動作クロック生成回路
１１１  補正間隔生成回路
１１２  セレクタ
１１３  加算器
１１４  ＦＦ（フリップフロップ）
１１５  動作クロック補正回路
１１６  ＦＦ動作制御回路
１２０  補正クロック生成回路
１２１  カウンタ初期値算出回路
１２２  カウンタ
１２３  アンダーフロー検出回路
１２４  トグル回路
１３０  時計カウンタ
１４０  セレクタ
１５０  出力選択レジスタ
１６０  外部端子
１７０  周波数誤差検出器
１７１  ゲート生成カウンタ
１７２  誤差測定カウンタ
１８０  分周器
１９０  補正機能付き発振器
１９１  加算器
１９２  フリップフロップ
２１０  時計発振器
２２０  高速内蔵発振器
２３０  基準発振器
２４０  クロックリカバリ回路
２４１  カウンタ
２４２  比較回路
２５０  セレクタ
３００  ＣＰＵ
３１０  メモリ
３２０〜３２４  ＵＡＲＴ
３２５  ＩＩＣ
３３０  温度センサ
３４０  Ａ／Ｄ変換器
【図１】
2014010704.tif 000005
【図２】
2014010704.tif 000006
【図３】
2014010704.tif 000007
【図４】
2014010704.tif 000008
【図５】
2014010704.tif 000009
【図６】
2014010704.tif 000010
【図７】
2014010704.tif 000011
【図８】
2014010704.tif 000012
【図９】
2014010704.tif 000013
【図１０】
2014010704.tif 000014
【図１１】
2014010704.tif 000015
【図１２】
2014010704.tif 000016
【図１３】
2014010704.tif 000017
【図１４】
2014010704.tif 000018
【図１５】
2014010704.tif 000019
【図１６】
2014010704.tif 000020
【図１７】
2014010704.tif 000021
【図１８】
2014010704.tif 000022
【図１９】
2014010704.tif 000023
【図２０】
2014010704.tif 000024
【図２１】
2014010704.tif 000025
【図２２】
2014010704.tif 000026