(57)【特許請求の範囲】
【請求項１】
ＣＲ発振回路と、
このＣＲ発振回路により出力されるクロック信号の周波数を、外部より設定されるデータに基づき逓倍した逓倍クロック信号を出力する逓倍回路と、
前記ＣＲ発振回路の周辺に複数配置され、温度を検出する温度検出手段と、
温度により変動する前記ＣＲ発振回路の発振出力特性に基づき、前記逓倍回路によって出力される逓倍クロック信号の周波数を一定とするための補正データが記憶されている記憶手段と、
前記複数の温度検出手段によって検出される温度の平均に応じて前記記憶手段に記憶されている補正データを読み出し、その補正データに基づく逓倍値を前記逓倍回路に設定する制御回路とを備えてワンチップで構成され、
前記記憶手段に記憶される補正データは、温度により変動する前記ＣＲ発振回路の発振出力を２次曲線で近似した補正データであることを特徴とするマイクロコンピュータ。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、ＣＲ発振回路により出力されるクロック信号に基づいて、所定の処理を行なうマイクロコンピュータに関する。
【背景技術】
【０００２】
例えばマイクロコンピュータにおいて使用するクロック信号を得る場合には、水晶発振子を用いた発振回路を構成すれば、発振周波数が安定した高精度のクロック信号を得ることができる。しかし、水晶発振子は比較的高価な素子であるため、低コスト化を図る場合には、ＣＲ発振回路を用いる場合がある。ところが、ＣＲ発振回路は周囲温度が変化すると発振周波数が変動してしまう。従って、ＣＲ発振回路の発振出力に基づいて行う所定の処理を行なう場合、その処理に要する時間について等時性を確保する必要があるとすれば、発振周波数が一定に維持されるように何らかの補正を行なわなければならない。
【０００３】
例えば、特許文献１には以下のような技術が開示されている。電源電圧および周囲温度が基準測定条件にあるとき測定したＣＲ発振器の発振周波数を基準の発振周波数としてＥ２ＰＲＯＭに記憶しておき、現在の電圧を電圧検出器で検出するとともに現在の温度を温度検出器で検出し、Ｅ２ＰＲＯＭに記憶させた発振周波数の値と現在の電圧および温度の検出値から、基準測定条件下での発振周波数からの周波数変動をＣＰＵにより予め決められた演算で補正し、現在の周波数の正確な値を間接的に求める。
そして、ＣＲ発振器の発振周波数に基づき、例えば１ｍｓのウエイト時間を生成する場合に、時間生成用のループプログラムにおいてデクリメント処理を行なうレジスタ値を、周波数の変動に応じて異なる値にセットすることでプログラムをループする回数を変化させ、常に１ｍｓのウエイト時間が得られるように補正を行なっている。
【特許文献１】特開平５−７５４４５号公報
【発明の開示】
【発明が解決しようとする課題】
【０００４】
しかしながら、特許文献１に開示されている技術では、時間生成用プログラムのループ時間やアプリケーションプログラムのベースループ時間が変動するので、そのループ時間が固定であることを前提として他の処理も行なう必要がある場合には、適用することができない。そして、ソフトウエアによる処理のスループット（インストラクションの実行間隔，又は実行時間)にも変動を来たすことになるため、上記プログラムは実質的に時間生成専用のプログラムとせざるを得ない。或いは、上記の処理をハードウエアとして構成したシーケンサによって実行する場合であっても、シーケンスの処理時間が変動することは同様である。
【０００５】
本発明は上記事情に鑑みてなされたものであり、その目的は、温度が変化する環境下において、ＣＲ発振回路を利用して生成されるクロック信号の発振周波数自体が一定となるように補正できるマイクロコンピュータを提供することにある。
【課題を解決するための手段】
【０００６】
請求項１記載のマイクロコンピュータによれば、ワンチップで構成され、ＣＲ発振回路により出力されるクロック信号の周波数を外部より設定されるデータに基づき逓倍した逓倍クロック信号を出力する逓倍回路を備え、記憶手段には、温度により変動するＣＲ発振回路の発振出力特性に基づいて逓倍クロック信号の周波数を一定とするための補正データを記憶させる。そして、制御回路は、複数の温度検出手段により検出されるＣＲ発振回路周辺の温度の平均に応じて記憶手段より補正データを読み出すと、その補正データに基づき決定した逓倍値を逓倍回路に設定する。
【０００７】
即ち、マイクロコンピュータの動作環境における温度が変動することに伴いＣＲ発振回路により出力されるクロック信号の周波数が変動したとしても、制御回路がその温度に応じた逓倍値を逓倍回路に設定すれば、逓倍クロック信号の周波数は一定となる。従って、従来技術とは異なり、ＣＲ発振回路により出力されるクロック信号に基づくソフトウエアによる処理時間、或いはハードウエアシーケンサによる処理時間を変動させることはなく、その処理時間又は当該処理時間の一部をタイムベースとする定時処理などを、より高い自由度で行なうことができる。
【０００８】
そして、記憶手段に記憶される補正データを、温度により変動するＣＲ発振回路の発振出力を２次曲線で近似した補正データとする。即ち、ＣＲ発振回路の発振温度特性を２次曲線で近似すると、極めて良好な近似結果が得られることを発明者は確認した。従って、逓倍クロック信号の周波数をより高い精度で一定に維持することができる。
【発明を実施するための最良の形態】
【０００９】
以下、本発明の一実施例について図面を参照して説明する。図６は、マイクロコンピュータ（マイコン）１の電気的構成を示す機能ブロック図である。マイコン１は、ＣＰＵ（制御回路）２を中心として、ＥＥＰＲＯＭ（記憶手段）３，ＲＡＭ４，ＲＯＭ５，Ａ／Ｄ変換回路６,例えばＵＡＲＴ（Universal Asynchronous Receiver Transmitter）などの通信回路（処理回路）７などを備えており、これらは、アドレスバス８及びデータバス９を介して接続されている。そして、システムクロック信号ＣＬＫは、ＣＲ発振回路１０によって発振出力されたものが、ＤＰＬＬ（Phase Locked Loop）回路（逓倍回路）１１により逓倍されてＣＰＵ２，Ａ／Ｄ変換回路６及び通信回路７に供給されている。
【００１０】
また、マイコン１は、温度検出回路（温度検出手段）１２を備えている。温度検出回路１２は、電源とグランドとの間に接続される抵抗１３及びダイオード１４〜１６（順方向接続）の直列回路によって構成されている。そして、抵抗１３及びダイオード１４の共通接続点は、Ａ／Ｄ変換回路６のアナログ入力ポートに接続されている。即ち、ダイオード１４〜１６が有する温度特性により、前記共通接続点における分圧電位Ｖｆが温度に応じて変化するようになっている。そして、以上の各回路は同一の半導体基板上に搭載されており、マイコン１はワンチップで構成されている。
【００１１】
図７は、ＤＰＬＬ回路１１の概略構成を機能的に説明するものである。ＤＰＬＬ回路１１は、リングオシレータ２１を内蔵している。リングオシレータ２１は、複数個の遅延ゲート、例えばＩＮＶ（インバータ）ゲート２２をリング状に接続して構成され、デジタル的な発振動作により高速なクロック信号を発生させるものである。例えば、２段の伝搬遅延時間が１５３ｐｓであるＩＮＶゲート２２を３２個接続すれば、１５３ｐｓ×１６＝２．４５ｎｓ周期でハイ，ロウのレベルが反転する。従って、生成される高速クロック信号ｆｒの周期は、２．４５ｎｓ×２＝４．９ｎｓとなる。
【００１２】
そして、ＤＰＬＬ回路１１には、ＣＲ発振回路１０より標準周波数４ＭＨｚのクロック信号が与えられ、内部の分周回路２３により例えば１２８分周した周波数３１．２５ｋＨｚ（周期３２μｓ）のクロック信号を基準クロック信号としている。その基準クロック信号の周期を、周期カウンタ２４により、リングオシレータ２１の高速クロック信号ｆｒでカウントする。周期カウンタ２４のカウントデータは、ＣＰＵ２により逓倍値データレジスタ２５に設定される逓倍値に応じて除算器２６を介して除算される。
【００１３】
除算器２６における除算の結果として、商と余り（剰余）が発生する。ここで、リングオシレータ２１においては、ＩＮＶゲート２２の１個おきの出力端子より、高速クロック信号ｆｒの周期に対して１／１６の位相差を有する１６個のパルスエッジを取り出すことができる。それらのパルスエッジを出力選択部２７において選択し逓倍クロック信号の出力タイミングを設定することで、高速クロック信号ｆｒに対して４ビット分の分解能が実現される。
従って、剰余を格納するためのレジスタのビット数が例えば１１ビットある場合、その剰余の上位４ビットを余り（１）＝Ｘとし、下位７ビットを余り（２）＝Ｙとする。そして、商をダウンカウンタにセットして高速クロック信号ｆｒによるダウンカウントを行ない、そのカウント値が「０」になると剰余Ｘによって１６個のパルスエッジの１つを選択し、そのエッジの出力タイミングを逓倍クロック信号とする。
【００１４】
そして、上記タイミングの逓倍クロック信号を（１２８−Ｙ）回出力すると、剰余Ｘに「１」を加えた（Ｘ＋１）により選択したパルスエッジに基づく逓倍クロック信号をＹ回出力する。結果として、１６個のパルスエッジ間の位相差（１５３ｐｓ）では表現し切れない逓倍クロック信号の出力タイミングを、上記位相差を余り（２）の７ビットで表現する詳細な分解能で等価的に実現することができる。
尚、図７の例では、基準クロック信号を５１２逓倍して周波数１６ＭＨｚのクロック信号を生成し、出力段において波形整形のため分周回路２８において２分周することで、８ＭＨｚの逓倍クロック信号（ＰOUT，図６ではＣＬＫ）を出力している。また、ＣＲ発振回路１０及びＤＰＬＬ回路１１に対しては、バンドギャップリファレンス電圧（ＶBGR）に基づきレギュレータ２９が生成した定電圧電源が供給されている。
【００１５】
次に、本実施例の作用について、図１乃至図５も参照して説明する。ＣＲ発振回路１０は、上述したように温度に応じて発振信号ＣＬＫの周波数が変化する。そして、通信回路７の通信速度（ボーレート）は、発振信号ＣＬＫの周波数に基づいて定まるため、その周波数が変動すると通信速度（以下、通信レートと称す）が変動する。すると、通信回路７が１フレームのデータを送信するために要する時間がばらつくことになる。
そこで、本発明では、温度に応じてＣＲ発振回路１０の発振周波数が変動しても、ＤＰＬＬ回路１１より出力される逓倍クロック信号の周波数が一定となるように、ＤＰＬＬ回路１１の逓倍値を調整する。その調整を行なうための補正データを、予めＥＥＰＲＯＭ３に記憶しておく。そして、マイコン１が動作している期間は、ＣＰＵ２がＥＥＰＲＯＭ３に記憶されている補正データに基づいて、ＤＰＬＬ回路１１の逓倍値をダイナミックに設定する。
【００１６】
図４は、マイコン１を製品として出荷する前に、ＥＥＰＲＯＭ３に補正データを書き込んで記憶させるための工程を示すフローチャートである。先ず、マイコン１の動作環境温度を数段階で変化させ、夫々の温度において、温度検出回路１２が出力する検出温度ＶｆのＡ／Ｄ変換値とＣＲ発振回路１０の発振周期（又は周波数）とを測定する（ステップＰ１）。そして、図５に示すように、例えば、温度−４０℃，２５℃，１２５℃の測定に対応するＡ／Ｄ変換値と発振周期（ＬＴ，ＲＴ，ＨＴ）との関係を、例えば２次曲線にフィッティング、即ち近似させると（ステップＰ２）、その２次曲線を表す関数データ（補正データ）をＥＥＰＲＯＭ３に記憶させる（ステップＰ３）。
【００１７】
図１は、マイコン１のＣＰＵ２が、実動作上においてＤＰＬＬ回路１１より出力される逓倍クロック信号の周波数を補正する処理の内容を示すフローチャートである。ＣＰＵ２は、上記補正を一定周期毎に行なうようになっており（ステップＳ１，「ＹＥＳ」）、それ以外は「ＮＯ」他の処理を実行する（図示せず）。図２は、補正を行なうタイミングの一例を示すものであり、補正周期は必ずしもデータの送信タイミングに同期するものでなくても構わない。
【００１８】
補正処理としては、先ず、温度検出回路１２の検出電圧ＶｆのＡ／Ｄ変換値をＡ／Ｄ変換回路６より読み込む（ステップＳ２）。それから、ＥＥＰＲＯＭ３より、Ａ／Ｄ変換値に応じたＣＲ発振回路１０の発振周期データを取得すると（ステップＳ３）、取得した発振周期に基づき、逓倍クロック信号の周波数を一定（例えば８ＭＨｚ）に維持するために必要な逓倍値を計算する（ステップＳ４）。そして、計算した逓倍値データを、ＤＰＬＬ回路１１内部の逓倍値データレジスタ２５に書き込んで設定すると（ステップＳ５）ステップＳ１に戻る。
即ち、ＣＲ発振回路１０のクロック周波数が４ＭＨｚであれば、その１２８分周を５１２逓倍し且つ最終段で２分周した結果、８ＭＨｚの逓倍クロック信号が得られるので、ＣＲ発振回路１０の発振周波数の変動に応じて逓倍値を「５１２」から増減させれば、逓倍クロック信号の周波数を一定に維持することができる。従って、通信回路７における通信速度も一定となる。
【００１９】
ここで、図３には、ＣＲ発振回路１０の温度特性を２次曲線で近似した場合における実際の発振周波数との誤差を示す。比較のため、温度特性を直線近似した場合も併せて示している。直線近似の場合の誤差は±０．４％程度であるのに対して、２次曲線近似の場合は±０．１％程度となり、極めて良好な近似結果が得られている。
【００２０】
以上のように本実施例によれば、マイコン１のＥＥＰＲＯＭ３に、温度により変動するＣＲ発振回路１０の発振周期データを記憶しておき、ＣＰＵ２は、温度検出回路１２によって検出される温度に応じてＥＥＰＲＯＭ３に記憶されているデータを読み出し、決定した逓倍値をＤＰＬＬ回路１１に設定するようにした。
従って、温度の変化に応じてＣＲ発振回路１０の発振周波数が変動しても、逓倍クロック信号の周波数が一定となることで通信回路７がデータ送信を行う時間が一定となるように制御される。また、通信処理においては、送信側と受信側とで処理タイミングの同期を取る場合もあり、１フレームのデータを送信する時間について等時性を確保する必要があるため、本発明を適用すればデータ送信時間が一定となるように補正することができる。
【００２１】
そして、従来技術とは異なり、ＣＲ発振回路１０により出力されるクロック信号に基づくソフトウエアによる処理時間を変動させることはなく、その処理時間又は当該処理時間の一部をタイムベースとする定時処理などを、より高い自由度で行なうことができる。また、ＥＥＰＲＯＭ３に記憶する補正データを、温度により変動するＣＲ発振回路１０の発振出力を２次曲線で近似したデータとするので、極めて良好な近似結果を得ることができ、逓倍クロック信号の周波数をより高い精度で一定に維持することができる。更に、ＣＰＵ２は、逓倍クロック信号通の補正を周期的に行うので、通信処理におけるデータ送信時間を安定的に維持することができる。
【００２２】
本発明は上記し又は図面に記載した実施例にのみ限定されるものではなく、以下のような変形が可能である。
発振周期を測定する温度は一例であり、個別のアプリケーションなどに応じて適宜設定すれば良い。
【００２３】
補正処理は、通信処理に同期して行っても良い。また、必ずしも周期的に行なう必要はなく、例えば、所定のイベントが発生したタイミングで行うようにしても良い。例えば、データ送信を開始する場合、最初に一回だけ行うようにしても良い。
通信回路７に限ることなく、その他、例えば、ＣＲ発振回路１０の発振出力に基づいて発生されるタイマ割込み数をカウントして、何らかの定時処理を行なうものなどに適用することができる。
逓倍回路は、アナログＰＬＬ回路で構成しても良い。
ＣＲ発振回路１０の周辺に複数の温度検出回路を配置し、それらの平均によって温度を決定しても良い。
温度検出手段は、温度検出回路１２に限ることなく、温度を検出可能に構成される回路であればどのようなものであっても良い。
【図面の簡単な説明】
【００２４】
【図１】本発明の一実施例であり、マイコンのＣＰＵが行なうＤＰＬＬ回路の逓倍クロック信号周波数を補正する処理の内容を示すフローチャート
【図２】補正を行なうタイミングの一例を示す図
【図３】ＣＲ発振回路の温度特性を２次曲線，直線で近似した場合の、実際の発振周波数との誤差を示す図
【図４】マイコンを製品として出荷する前に、ＥＥＰＲＯＭにＣＲ発振回路の発振温度特性データを書き込んで記憶させるための工程を示すフローチャート
【図５】検出電圧Ｖｆと、ＣＲ発振回路の発振周期との関係を示す図
【図６】マイクロコンピュータの電気的構成を示す機能ブロック図
【図７】ＤＰＬＬ回路の概略構成を機能的に説明する図
【符号の説明】
【００２５】
図面中、１はマイクロコンピュータ、２はＣＰＵ（制御回路）、３はＥＥＰＲＯＭ（記憶手段）、７は通信回路、１０はＣＲ発振回路、１１はＤＰＬＬ回路（逓倍回路）、１２は温度検出回路（温度検出手段）を示す。
【図１】
0004487937.tif 000002
【図２】
0004487937.tif 000003
【図３】
0004487937.tif 000004
【図４】
0004487937.tif 000005
【図５】
0004487937.tif 000006
【図６】
0004487937.tif 000007
【図７】
0004487937.tif 000008