(57)【要約】【課題】ＲＣ発振器の汎用性を向上させること。【解決手段】ＲＣ発振器１０は、抵抗とコンデンサが外付けされるＲＣ回路１１から計測されたコンデンサの時定数及び所定の温度でコンデンサが充電される場合にとる時定数の差と、コンデンサに関する温度及び容量の対応関係とからＲＣ発振器１０の発振周波数の補正値を算出する。さらに、ＲＣ発振器は、補正値にしたがってＲＣ発振器１０の発振周波数を補正する。【選択図】図１
2015037291.tif 000002
【特許請求の範囲】
【請求項１】
コンピュータが、
抵抗とコンデンサが外付けされるＲＣ回路から計測されたコンデンサの時定数及び所定の温度で前記コンデンサが充電される場合にとる時定数の差と、前記コンデンサに関する温度及び容量の対応関係とから前記ＲＣ回路を含むＲＣ発振器の発振周波数の補正値を算出し、
前記補正値にしたがって前記ＲＣ発振器の発振周波数を補正する
処理を実行することを特徴とする補正方法。
【請求項２】
前記発振周波数を補正する処理として、
前記補正値にしたがってシリアル通信を実行する場合のボーレートを決定するカウンタの値を補正することを特徴とする請求項１に記載の補正方法。
【請求項３】
前記発振周波数を補正する処理として、
前記補正値にしたがってパケット通信に使用されるメモリの書込み周期または読出し周期を補正することを特徴とする請求項１に記載の補正方法。
【請求項４】
前記発振周波数を補正する処理として、
前記補正値にしたがって前記ＲＣ発振器が搭載されるコンピュータのシステムクロックの分周比を補正することを特徴とする請求項１に記載の補正方法。
【請求項５】
前記補正値を算出する処理は、
前記コンデンサに関する温度及び容量の対応関係として、前記ＲＣ回路が使用される温度と前記コンデンサの容量の変化率とが互いに線形の関係にある範囲で定めた勾配を用いることを特徴とする請求項１〜４のいずれか一つに記載の補正方法。
【請求項６】
コンピュータに、
抵抗とコンデンサが外付けされるＲＣ回路から計測されたコンデンサの時定数及び所定の温度で前記コンデンサが充電される場合にとる時定数の差と、前記コンデンサに関する温度及び容量の対応関係とから前記ＲＣ回路を含むＲＣ発振器の発振周波数の補正値を算出し、
前記補正値にしたがって前記ＲＣ発振器の発振周波数を補正する
処理を実行させることを特徴とする補正プログラム。
【請求項７】
抵抗とコンデンサが外部に設置されたＲＣ回路と、
前記ＲＣ回路から計測されたコンデンサの時定数及び所定の温度で前記コンデンサが充電される場合にとる時定数の差と、前記コンデンサに関する温度及び容量の対応関係とから発振周波数の補正値を算出する算出部と、
前記補正値にしたがって前記発振周波数を補正する補正部と
を有することを特徴とするＲＣ発振器。
【請求項８】
抵抗とコンデンサが外部に設置されたＲＣ回路と、
前記ＲＣ回路から計測されたコンデンサの時定数及び所定の温度で前記コンデンサが充電される場合にとる時定数の差と、前記コンデンサに関する温度及び容量の対応関係とから発振周波数の補正値を算出する算出部と、
前記補正値にしたがって前記発振周波数を補正する補正部と
を有することを特徴とするコンピュータ。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、補正方法、補正プログラム、ＲＣ発振器及びコンピュータに関する。
【背景技術】
【０００２】
マイクロコンピュータ、いわゆる「マイコン」が知られている。例えば、組み込みシステムに組み込まれるマイコンには、抵抗とコンデンサを含むＲＣ発振器を内蔵するものが多い。
【先行技術文献】
【特許文献】
【０００３】
【特許文献１】特開２００６−２２９６０７号公報
【特許文献２】特開平０６−３４２０８８号公報
【発明の概要】
【発明が解決しようとする課題】
【０００４】
しかしながら、上記のＲＣ発振器は、温度の変化に脆弱であるので、汎用性が低い。
【０００５】
例えば、上記のＲＣ発振器は、広範囲な環境温度でシリアル通信、例えばＵＡＲＴ通信（Universal  Asynchronous  Receiver  Transmitter）に使用できない。かかるＵＡＲＴ通信では、一例として、１ビットのスタートビット、８ビットのデータビット、１ビットのパリティビット、１ビットのストップビットの計１１ビットの順に、電気信号が非同期で通信される。このため、ＵＡＲＴによる通信速度の偏差として、スタートビットからストップビットまでの１１ビットの間で０．５ビット分、すなわち±４％程度のクロック精度が求められる。ところが、マイコンが使用される環境温度が高温部「＋８５℃」〜低温部「−４０℃」の範囲であるとしたとき、ＲＣ発振器の発振周波数は、７．５ＭＨｚ〜８．５ＭＨｚの１２％程度、変動することになる。このため、ＲＣ発振器では、高温部と低温部でストップビットが抵触し、ＵＡＲＴ通信を行うことができない。
【０００６】
１つの側面では、本発明は、ＲＣ発振器の汎用性を向上させることができる補正方法、補正プログラム、ＲＣ発振器及びコンピュータを提供することを目的とする。
【課題を解決するための手段】
【０００７】
一態様の補正方法は、コンピュータが、抵抗とコンデンサが外付けされるＲＣ回路から計測されたコンデンサの時定数及び所定の温度で前記コンデンサが充電される場合にとる時定数の差と、前記コンデンサに関する温度及び容量の対応関係とから前記ＲＣ回路を含むＲＣ発振器の発振周波数の補正値を算出する処理を実行する。さらに、前記コンピュータが、前記補正値にしたがって前記ＲＣ発振器の発振周波数を補正する処理を実行する。
【発明の効果】
【０００８】
ＲＣ発振器の汎用性を向上させることができる。
【図面の簡単な説明】
【０００９】
【図１】図１は、実施例１に係るマイクロコンピュータの機能的構成を示すブロック図である。
【図２】図２は、発振周波数、温度及び動作電圧の関係の一例を示す図である。
【図３】図３は、ＲＣ時定数回路の一例を示す図である。
【図４】図４は、コンデンサの種類別の熱変動特性の一例を示す図である。
【図５】図５は、コンデンサの種類別の熱変動率の一例を示す図である。
【図６】図６は、実施例１に係る補正処理の手順を示すフローチャートである。
【発明を実施するための形態】
【００１０】
以下に添付図面を参照して本願に係る補正方法、補正プログラム、ＲＣ発振器及びコンピュータについて説明する。なお、この実施例は開示の技術を限定するものではない。そして、各実施例は、処理内容を矛盾させない範囲で適宜組み合わせることが可能である。
【実施例１】
【００１１】
［マイクロコンピュータの構成］
図１は、実施例１に係るマイクロコンピュータの機能的構成を示すブロック図である。図１に示すマイクロコンピュータ１は、内蔵のＲＣ発振器１０が発振する周波数にしたがって動作する小型のコンピュータである。なお、以下では、マイクロコンピュータ１のことを「マイコン１」と略記する場合がある。
【００１２】
図１に示すように、マイコン１は、所定の周波数で発振するＲＣ発振器１０と、ボーレートタイマテーブル２１と、周辺機器２０とを有する。このように、マイコン１に内蔵される周辺機器２０の一例としては、ＵＡＲＴ（Universal  Asynchronous  Receiver  Transmitter）２０を始め、ＳＰＩ（Serial  Peripheral  Interface）やＩ２Ｃ（Inter  Integrated  Circuit）などが挙げられる。
【００１３】
ＲＣ発振器１０は、抵抗ＲおよびコンデンサＣを含むＲＣ回路１１を含んで構成される発振回路である。図１に示すように、ＲＣ回路１１は、一側面として、コンデンサＣの容量に関する熱変動特性を利用してマイコン１の環境温度を特定するために、マイコン１に外付けされる。
【００１４】
ここで、ＲＣ発振器１０に用いられるコンデンサＣは、絶縁体を導電体によって挟持する構造を持つので、マイコン１が使用される環境温度による影響を受けやすい素子である。すなわち、環境温度の高低によってコンデンサＣの絶縁体が収縮または伸張する度合いが異なるので、コンデンサＣの電極間の距離が変わり、コンデンサＣの静電容量も変化する。このため、ＲＣ発振器１０では、発振周波数が環境温度によって変動する。
【００１５】
図２は、発振周波数、温度及び動作電圧の関係の一例を示す図である。図２には、ＲＣ発振器１０が３種類の環境温度の各々で使用された場合の発振周波数と動作電圧の関係が図示されている。このうち、環境温度が８５℃である場合の発振周波数と動作電圧の関係が点線でプロットされている。さらに、環境温度が２５℃である場合の発振周波数と動作電圧の関係が実線でプロットされるとともに、環境温度が−４０℃である場合の発振周波数と動作電圧の関係が一点鎖線でプロットされている。なお、図２に示すグラフの縦軸は、発振周波数（ＭＨｚ）を指し、グラフの横軸は、動作電圧Ｖｃｃ（Ｖ）を指す。
【００１６】
図２に示すように、環境温度が２５℃である場合には、発振周波数は、８ＭＨｚ程度となる。一方、環境温度が８５℃である場合には、発振周波数は、８．５ＭＨｚ程度となり、また、環境温度が−４０℃である場合には、発振周波数は、７．５ＭＨｚ程度となる。
【００１７】
このように、ＲＣ発振器１０の発振周波数には、環境温度が２５℃である場合と環境温度が８５℃である場合の６０℃の温度差で５００Ｈｚ程度の開きがある。また、環境温度が−４０℃である場合と環境温度が２５℃である場合の６５℃の温度差でも５００Ｈｚ程度の開きがある。つまり、環境温度が−４０℃である場合と環境温度が８５℃である場合の１２５℃の温度差では、ＲＣ発振器１０の発振周波数に１ＭＨｚ程度の開きがある。
【００１８】
このため、マイコン１を広範囲な環境温度で用いる場合には、ＲＣ発振器１０の代わりに、水晶発振器が用いられる場合がある。ところが、水晶発振器は、温度補償発振に対応する一方で、水晶振動子の価格が高価であり、かつ入手のリードタイムが長く、ＲＣ発振器よりも量産化しにくいというデメリットもある。
【００１９】
また、ＲＣ発振器１０の発振周波数を自動的に補正することも考えられる。例えば、ＲＣ発振器１０の出力をフィードバック制御することによって目的の発振周波数に合わせることも想定される。ところが、フィードバック制御を実現する場合には、ＰＩＤ（Proportional  Integral  Derivative  Controller）制御を実現するハードウェアやＰＬＬ（Phase  Locked  Loop）回路を余計に設けることになる。
【００２０】
このことから、本実施例に係るＲＣ発振器１０は、外付けのＲＣ回路１１から実測される場合及び基準温度でコンデンサが充電される場合の時定数の差と、コンデンサの温度及び容量の対応関係とから発振周波数の補正値を算出して補正する。
【００２１】
このため、本実施例に係るＲＣ発振器１０では、マイコン１が使用される環境温度に合わせてＲＣ発振器１０の発振周波数を補正できる。それゆえ、広範囲の温度でＲＣ発振器１０を使用できる。したがって、本実施例に係るＲＣ発振器１０によれば、ＲＣ発振器１０の汎用性を向上させることができる。
【００２２】
また、本実施例に係るＲＣ発振器１０では、広範囲の温度でＲＣ発振器１０を使用できるので、高価かつ入手のリードタイムが長い水晶発振器をマイコン１に内蔵せずともよい。さらに、ＲＣ発振器１０の発振周波数を補正する場合に、ＲＣ回路１０を外付けする他に、例えばＰＩＤ制御を実現するハードウェアやＰＬＬ回路、さらには温度センサ等の余計なハードウェアを設けずともよい。それゆえ、本実施例に係るＲＣ発振器１０では、精度面に加え、費用面及び生産性の面からも、ＲＣ発振器１０の汎用性を向上させることができる。
【００２３】
図１の説明に戻り、ＲＣ発振器１０は、ＲＣ回路１１と、計測部１２と、第１充電時間記憶部１３ａと、第２充電時間記憶部１３ｂと、第３充電時間記憶部１３ｃと、選択部１４と、算出部１５と、補正部１６とを有する。
【００２４】
ＲＣ回路１１は、抵抗ＲおよびコンデンサＣを含む電子回路である。かかるＲＣ回路１１の回路構成の一態様としては、１つの抵抗Ｒと１つのコンデンサＣが直列に接続された一次ＲＣ回路を採用することができる。また、ＲＣ回路１１のコンデンサＣには、アルミ電解コンデンサ、タンタル電解コンデンサやセラミックコンデンサなどの任意のコンデンサを採用することができる。
【００２５】
計測部１２は、ＲＣ回路１１の時定数τを計測するＲＣ時定数回路である。ここで言う「時定数」とは、コンデンサＣが放電後に所定の閾値へ充電されるまでに経過する充電時間を指す。例えば、ＲＣ回路１１が抵抗Ｒ及びコンデンサＣが直列に接続される一次ＲＣ回路である場合には、満充電の６３％を上記の閾値に設定することができる。以下では、一例として、閾値が満充電の６３％である場合を想定して説明を行うが、必ずしも閾値が満充電の６３％でなくともよく、任意の値を採用することとしてかまわない。
【００２６】
図３は、ＲＣ時定数回路の一例を示す図である。図３に示すように、ゲート１２ａのオープンコレクタＯＵＴを０［Ｖ］にすると、コンデンサＣの電荷が０になる。また、ゲート１２ａのオープンコレクタＯＵＴを高抵抗（オープンコレクタ、オープンドレイン）にすると、ＶｃｃによってコンデンサＣの充電が開始される。また、オペアンプ１２ｂは、コンデンサＣからオペアンプ１２ｂの−端子へ入力される電圧がオペアンプ１２ｂの＋端子に入力されるＶｃｃの６３％の電源電圧を超えるまでは「０」を出力し、Ｖｃｃの６３％の電源電圧を超えると「１」を出力することによって出力を反転させる。このため、ゲート１２ａのオープンコレクタＯＵＴを０［Ｖ］から高抵抗へ変化させた時点から、オペアンプ１２ｂの出力が反転されるまでの時間、すなわちＲＣ回路１１の時定数であるコンデンサＣの充電時間が図示しないタイマによって計測される。このようにタイマによって計測されたコンデンサＣの充電時間が第１充電時間記憶部１３ａに格納される。以下では、マイコン１の環境温度を算出するのに使用される側面から、計測部１２によって計測されたコンデンサＣの充電時間のことを「ＴｅｍｐＴｉｍｅｒ［ｔ］」と記載する場合がある。
【００２７】
ここで、コンデンサＣの充電時間には、マイコン１が使用される環境温度が反映される。かかるコンデンサＣの熱変動特性は、マイコン１に内蔵されるコンデンサＣの種類によって異なる。
【００２８】
図４は、コンデンサの種類別の熱変動特性の一例を示す図である。図４には、アルミ電解コンデンサ、タンタル電解コンデンサ及び積層セラミックコンデンサの３種類のコンデンサの熱変動特性が図示されている。このうち、積層セラミックコンデンサについては、Ｂ特性の積層セラミックコンデンサの熱変動特性と、Ｆ特性の積層セラミックコンデンサの熱変動特性とが図示されている。図４に示すグラフの縦軸は、静電容量の変化率（％）を指し、グラフの横軸は、マイコン１が使用される環境で測定された温度（℃）を指す。なお、ここで言う「変化率」とは、各コンデンサの環境温度が常温、例えば２５℃である場合における静電容量を基準とし、そこから静電容量が変化する割合を指す。以下では、目的とする環境温度を算出するのに比較の基準として用いる環境温度、すなわち常温「２５℃」のことを「基準温度」と記載する場合がある。
【００２９】
図４に示すように、例えば、アルミ電解コンデンサの場合には、−６０℃から−２０℃までの温度帯にかけては静電容量が非線形に変化するが、−２０℃から１２０℃までの温度帯では静電容量が線形に近い状態で変化する。また、タンタル電解コンデンサの場合には、−６０℃から１２０℃までの一連の温度帯で静電容量が線形に近い状態で変化する。さらに、Ｂ特性の積層セラミックコンデンサの場合には、−４０℃から５０℃までの温度帯にかけて静電容量が線形に近い状態で変化する一方で、それ以外の温度帯では静電容量が非線形に変化する。
【００３０】
このように、コンデンサＣの静電容量との間で線形または線形に近似する関係を持つ温度帯は、充電時間との間でも線形または線形に近似する関係にある推定できる。このため、コンデンサＣの充電時間との間で線形または線形に近似する関係にある温度帯では、温度に対する静電容量の勾配からコンデンサＣの種類別の熱変動率［℃／％］を導出できる。なお、以下では、コンデンサＣの熱変動率のことを「ＣａｐＣｏｅｆｆｉｃｉｅｎｔＴａｂｌｅ［℃／％］」と記載する場合がある。
【００３１】
例えば、アルミ電解コンデンサの場合には、−２０℃から１２０℃までの温度帯でアルミ電解コンデンサの静電容量が線形に近い状態で変化する。このため、全温度帯のうち−２０℃から１２０℃までの温度帯を切り出すＳｌｉｃｅｒ処理を行った上でアルミ電解コンデンサの熱変動率を求める。すなわち、環境温度が１２０℃であるとき、基準温度の静電容量からの偏差が１５％であるとともに、環境温度が−２０℃であるとき、基準温度の静電容量からの偏差は−１０％である。このため、−２０℃から１２０℃までの温度帯では、アルミ電解コンデンサの静電容量の変化率の差が２５％（＝｜１５％−（−１０％）｜）となる。これらの勾配、すなわち「温度差／静電容量の変化率の差」を求めることによって、アルミ電解コンデンサの熱変動率を５．６［℃／％］と導出できる。
【００３２】
また、タンタル電解コンデンサの場合には、Ｓｌｉｃｅｒ処理によって切り出される−６０℃から１２０℃までの温度帯でタンタル電解コンデンサの静電容量の変化率の差が１０％（＝｜５％−（−５％）｜となるので、タンタル電解コンデンサの熱変動率を１８［℃／％］と導出できる。さらに、Ｂ特性の積層セラミックコンデンサの場合には、Ｓｌｉｃｅｒ処理によって切り出される−４０℃から５０℃までの温度帯でＢ特性の積層セラミックコンデンサにおける静電容量の変化率の差が２０％（＝｜５％−（−１５％）｜）となるので、Ｂ特性の積層セラミックコンデンサの熱変動率を４．５［℃／％］と導出できる。なお、Ｆ特性の積層セラミックコンデンサの場合には、Ｆ特性の積層セラミックコンデンサの静電容量が線形に近い状態で変化する温度帯が存在せず、存在したとしてもその区間が短いので、熱変動率は算出しない。
【００３３】
これらコンデンサの種類別の熱変動率をまとめると、図５に示す通りとなる。図５は、コンデンサの種類別の熱変動率の一例を示す図である。図５には、図４に示した熱変動特性のグラフから熱変動率が算出された場合の例を図示している。図５に示すように、コンデンサの種類別の熱変動率は、アルミ電解コンデンサ、タンタル電解コンデンサ、Ｂ特性の積層セラミックコンデンサ、Ｆ特性の積層セラミックコンデンサの順に、５．６［℃／％］、１８［℃／％］、４．５［℃／％］、未算出［℃／％］となる。
【００３４】
図５に示したコンデンサの種類別の熱変動率のうちコンデンサＣとしてＲＣ回路１１に採用された種別のコンデンサの熱変動率を基準温度に対する温度差を求める場合に用いるパラメータとして算出部１５に予め設定しておくことができる。例えば、ＲＣ発振器１０が製造または出荷される段階、ＲＣ発振器１０がマイコン１に組み込まれる段階、ＲＣ発振器１０がマイコン１上で動作する前までの段階などでコンデンサＣの種類別の熱変動率が設定される。
【００３５】
図１の説明に戻り、第１充電時間記憶部１３ａ、第２充電時間記憶部１３ｂ及び第３充電時間記憶部１３ｃは、いずれもコンデンサＣの充電時間を記憶するレジスタであるが、コンデンサＣの充電時間が計測された環境温度が異なる点で相違する。
【００３６】
例えば、第１充電時間記憶部１３ａには、計測部１２によって計測されたコンデンサＣの充電時間が記憶される。また、第２充電時間記憶部１３ｂには、Ｓｌｉｃｅｒ処理によって切り出された温度帯のうち上限の環境温度でコンデンサＣが上記の閾値へ充電されるまでに経過した充電時間が記憶される。また、第３充電時間記憶部１３ｃには、Ｓｌｉｃｅｒ処理によって切り出された温度帯のうち下限の環境温度でコンデンサＣが上記の閾値へ充電されるまでに経過した充電時間が記憶される。図５に示した例のうちアルミ電解コンデンサの例で言えば、Ｓｌｉｃｅｒ処理によって切り出された温度帯の上限の１２０℃における充電時間が第２充電時間記憶部１３ｂに登録されるとともに、下限の−２０℃における充電時間が第３充電時間記憶部１３ｃに登録される。以下では、第２充電時間記憶部１３ｂに記憶されるコンデンサＣの充電時間を「ＭａｘＳｌｉｃｅｒ」と記載し、第３充電時間記憶部１３ｃに記憶されるコンデンサＣの充電時間を「ＭｉｎＳｌｉｃｅｒ」と記載する場合がある。
【００３７】
上記のＭａｘＳｌｉｃｅｒ及びＭｉｎＳｌｉｃｅｒは、基準温度でコンデンサＣが上記の閾値へ充電されるまでに経過した充電時間、すなわち基準温度の時定数τ０が既知であれば、図４に示したコンデンサＣの熱変動特性から予め算出しておくことができる。例えば、基準温度の充電時間が１００ｍＳであるアルミ電解コンデンサを例に挙げれば、環境温度が上限の１２０℃であるとき、基準温度の充電時間からの偏差は＋１５％である。このため、τ０（２５℃＝ｔ）＊１．１５を計算することによってＭａｘＳｌｉｃｅｒ［１２０℃］を１１５ｍＳと算出できる。また、環境温度が下限の−２０℃であるとき、基準温度の充電時間からの偏差は−１０％である。このため、τ０（２５℃＝ｔ）＊０．９を計算することによってＭａｘＳｌｉｃｅｒ［−２０℃］を９０ｍＳと算出できる。
【００３８】
選択部１４は、算出部１５による発振周波数の補正値の算出に使用させる充電時間を選択する処理部である。以下では、補正値の計算用の充電時間のことを「Ｓｌｉｃｅｒ［ｔ］」と記載する場合がある。
【００３９】
一態様としては、選択部１４は、計測部１２によって計測されたコンデンサＣの充電時間、すなわちＴｅｍｐＴｉｍｅｒ［ｔ］が第１充電時間保持部１３ａに格納された場合に、下記の式（１）にしたがって次に説明する処理を実行する。すなわち、選択部１４は、計測部１２によって計測されたコンデンサＣの充電時間が第２充電時間記憶部１３ｂに記憶されたＭａｘＳｌｉｃｅｒ［１２０℃］よりも大きいか否かを判定する。つまり、ＴｅｍｐＴｉｍｅｒ［ｔ］＞ＭａｘＳｌｉｃｅｒ［１２０℃］であるか否かが判定される。このとき、ＴｅｍｐＴｉｍｅｒ［ｔ］＞ＭａｘＳｌｉｃｅｒ［１２０℃］である場合には、温度との間で線形、いわゆる比例関係にある充電時間の範囲を超えたコンデンサＣの充電時間が計測部１２によって計測されたと推定できる。この場合には、選択部１４は、温度との間で比例関係にある充電時間の上限値であるＭａｘＳｌｉｃｅｒ［１２０℃］をＳｌｉｃｅｒ［ｔ］に選択する。
【００４０】
【数１】
2015037291.tif 000003
【００４１】
一方、選択部１４は、ＴｅｍｐＴｉｍｅｒ［ｔ］＞ＭａｘＳｌｉｃｅｒ［１２０℃］でない場合には、計測部１２によって計測されたコンデンサＣの充電時間が第２充電時間記憶部１３ｂに記憶されたＭｉｎＳｌｉｃｅｒ［−２０℃］よりも小さいか否かを判定する。つまり、ＴｅｍｐＴｉｍｅｒ［ｔ］＜ＭｉｎＳｌｉｃｅｒ［−２０℃］であるか否かが判定される。このとき、ＴｅｍｐＴｉｍｅｒ［ｔ］＜ＭｉｎＳｌｉｃｅｒ［−２０℃］である場合には、温度との間で比例関係にある充電時間の範囲を下回るコンデンサＣの充電時間が計測部１２によって計測されたと推定できる。この場合には、選択部１４は、温度との間で比例関係にある充電時間の下限値であるＭｉｎＳｌｉｃｅｒ［−２０℃］をＳｌｉｃｅｒ［ｔ］に選択する。
【００４２】
また、選択部１４は、ＴｅｍｐＴｉｍｅｒ［ｔ］＞ＭａｘＳｌｉｃｅｒ［１２０℃］でなく、かつＴｅｍｐＴｉｍｅｒ［ｔ］＜ＭｉｎＳｌｉｃｅｒ［−２０℃］でもない場合には、次のような処理を実行する。つまり、ＭｉｎＳｌｉｃｅｒ［−２０℃］≦ＴｅｍｐＴｉｍｅｒ［ｔ］≦ＭａｘＳｌｉｃｅｒ［１２０℃］である場合には、温度との間で比例関係にある充電時間の範囲内のコンデンサＣの充電時間が計測部１２によって計測されたと推定できる。よって、選択部１４は、計測部１２によって計測されたコンデンサＣの充電時間、すなわちＴｅｍｐＴｉｍｅｒ［ｔ］をそのままＳｌｉｃｅｒ［ｔ］に選択する。
【００４３】
このように、選択部１４は、計測部１２によって計測されたコンデンサＣの充電時間が温度との間で比例関係にある充電時間の範囲内であるか否かによって第１充電時間記憶部１３ａ〜第３充電時間記憶部１３ｃに記憶された充電時間のうちいずれの充電時間を補正値の計算用の充電時間とするかを決定する。
【００４４】
算出部１５は、外付けのＲＣ回路１１から計測される時定数及び基準温度時の時定数の差からＲＣ発振器１０の発振周波数の補正値を算出する処理部である。
【００４５】
一態様としては、算出部１５は、選択部１４によって選択された充電時間から下記の式（２）にしたがって基準温度に対する温度差を求めた後に、当該基準温度に対する温度差から下記の式（３）にしたがって発振周波数の補正値を算出する。
【００４６】
【数２】
2015037291.tif 000004
【数３】
2015037291.tif 000005
【００４７】
ここで、上記の式（２）及び式（３）に用いられるパラメータのうち下記のパラメータについてはＲＣ発振器１０の製造段階や出荷段階、マイコン１の製造段階や出荷段階またはマイコン１の動作前の段階で初期値として算出部１５に設定しておくことができる。
【００４８】
［初期設定される定数］
（イ）ＲｅｒｅｎｃｅＦｒｅｑｕｅｎｃｙ［Ｈｚ］
：＝基準温度（＝２５℃）のＲＣ発振器１０の発振周波数
（ロ）ＲＣｏｓｃＣｏｅｆｆｉｃｉｅｎｔＴａｂｌｅ［Ｈｚ／℃］
：＝温度に対する発振周波数の勾配
（ハ）ＴｅｍｐＴｉｍｅｒ［２５℃］［ｔ］
：＝基準温度におけるコンデンサＣの充電時間
（ニ）ＭａｘＳｌｉｃｅｒ［１２０℃］［ｔ］
：＝外部に設けたコンデンサＣが直線で変化できる上限の温度での充電時間
（ホ）ＭｉｎＳｌｉｃｅｒ［−２０℃］［ｔ］
：＝外部に設けたコンデンサＣが直線で変化できる下限の温度での充電時間
（へ）ＣａｐＣｏｅｆｆｉｃｉｅｎｔＴａｂｌｅ［℃／％］
：＝コンデンサＣの熱変動率
【００４９】
これら（イ）〜（ヘ）のパラメータが既知である状況の下、算出部１５は、選択部１４によって選択されたＳｌｉｃｅｒ［ｔ］を上記の式（２）へ代入する計算を実行する。かかる式（２）は、Ｓｌｉｃｅｒ［ｔ］と基準温度における時定数τ０との比率が環境温度と基準温度との比率に等しい、あるいは近似するという知見から導出された算出式である。かかる式（２）によって、外部のコンデンサＣの充電時間から基準温度に対する環境温度の温度差、すなわちＤｉｆｆｅｒｅｎｃｅＩｎＴｅｍｐｅｒａｔｕｒｅ［℃］を算出できる。
【００５０】
その上で、算出部１５は、上記の式（２）によって算出された基準温度に対する環境温度の温度差、ＤｉｆｆｅｒｅｎｃｅＩｎＴｅｍｐｅｒａｔｕｒｅ［℃］を上記の式（３）に代入する計算を実行する。かかる式（３）には、上記のパラメータ（ロ）、すなわち温度に対する発振周波数の勾配、すなわちＲＣｏｓｃＣｏｅｆｆｉｃｉｅｎｔＴａｂｌｅ［Ｈｚ／℃］が用いられる。
【００５１】
かかる温度に対する発振周波数の勾配は、図２に示したＲＣ発振器１０の温度特性から初期設定しておくことができる。図２に示すように、ＲＣ発振器１０の発振周波数は、環境温度と動作電圧に依存する。このため、動作電圧が一定であると仮定したとき、図２に示す環境温度と発振周波数の勾配から温度に対する発振周波数の勾配を導出できる。すなわち、環境温度が−４０℃である場合と環境温度が８５℃である場合の１２５℃の温度差では、ＲＣ発振器１０の発振周波数に１ＭＨｚ程度の開きがある。かかる関係から、発振周波数の開き「１ＭＨｚ」を温度差「１２５℃」で除算することによって温度に対する発振周波数の勾配を「８０００Ｈｚ」と算出できる。
【００５２】
上記の式（３）によって、算出部１５は、発振周波数の補正値、すなわちＤｉｆｆｅｒｅｎｃｅＩｎＦｒｅｑｕｅｎｃｙ［Ｈｚ］を算出できる。
【００５３】
補正部１６は、算出部１５によって算出された補正値にしたがってＲＣ発振器１０の発振周波数を補正する処理部である。一態様としては、補正部１６は、算出部１５によって算出された補正値を用いて、周辺機器２０がシリアル通信を実行する場合のボーレートを決定するカウンタの値を補正する。例えば、算出部１５によって算出された補正値が正の値である場合には、補正部１６は、ボーレートタイマテーブル２１に記憶されたカウンタのレジスタ値に補正値を加算する補正を実行する。これによって、基準温度よりも低い環境温度でボーレートのカウントが基準温度よりも遅れる分、カウンタのレジスタ値を速めることができる。また、補正値が負の値である場合には、補正部１６は、ボーレートタイマテーブル２１に記憶されたカウンタのレジスタ値から補正値を減算する補正を実行する。これによって、基準温度よりも高い環境温度でボーレートのカウントが基準温度よりも速まる分、カウンタのレジスタ値を遅延させることができる。このように、シリアル通信を行う周辺機器２０が参照するボーレートタイマテーブル２１のレジスタ値を補正することで、温度による通信レートの誤差を抑制できる。
【００５４】
他の一態様としては、補正部１６は、算出部１５によって算出された補正値にしたがって、パケット通信に使用されるメモリのＲ／Ｗ（Reader／Writer）の周期を補正することもできる。これによって、パケット通信を行う場合に、ＦＩＬＯ（First  In  Last  Out）方式でデータが格納されるメモリでオーバーフローやアンダーフローが発生するのを抑制できる。更なる一態様としては、補正部１６は、算出部１５によって算出された補正値にしたがって、マイコン１のシステムクロックの分周比を補正することもできる。これによって、演算処理が環境温度の高低に影響されるのを抑制できる結果、多重システム等で実行される並列処理のバラつきを抑制できる。
【００５５】
なお、上記の算出部１５及び補正部１６は、ＣＰＵ（Central  Processing  Unit）やＭＰＵ（Micro  Processing  Unit）などに補正プログラムを実行させることによって実現できる。また、上記の算出部１５及び補正部１６は、ＡＳＩＣ（Application  Specific  Integrated  Circuit）やＦＰＧＡ（Field  Programmable  Gate  Array）などのハードワイヤードロジックによっても実現できる。
【００５６】
また、上記の第１充電時間記憶部１３ａ〜第３充電時間記憶部１３ｃ及びボーレートタイマテーブル２１には、一例として、半導体メモリ素子や記憶装置を採用できる。例えば、半導体メモリ素子の一例としては、ＶＲＡＭ（Video  Random  Access  Memory）、ＲＡＭ（Random  Access  Memory)、ＲＯＭ（Read  Only  Memory）やフラッシュメモリ（flash  memory）などが挙げられる。
【００５７】
［処理の流れ］
図６は、実施例１に係る補正処理の手順を示すフローチャートである。この補正処理は、計測部１２によってコンデンサＣの充電時間が計測される度に実行される。図６に示すように、計測部１２によってコンデンサＣの充電時間、すなわちＴｅｍｐＴｉｍｅｒ［ｔ］が計測されると（ステップＳ１０１）、次のような処理を実行する。
【００５８】
すなわち、選択部１４は、ステップＳ１０１で計測されたコンデンサＣの充電時間が第２充電時間記憶部１３ｂに記憶されたＭａｘＳｌｉｃｅｒ［１２０℃］よりも大きいか否かを判定する（ステップＳ１０２）。つまり、ＴｅｍｐＴｉｍｅｒ［ｔ］＞ＭａｘＳｌｉｃｅｒ［１２０℃］であるか否かが判定される。
【００５９】
このとき、ＴｅｍｐＴｉｍｅｒ［ｔ］＞ＭａｘＳｌｉｃｅｒ［１２０℃］である場合（ステップＳ１０２Ｙｅｓ）には、温度との間で線形、いわゆる比例関係にある充電時間の範囲を超えたコンデンサＣの充電時間が計測部１２によって計測されたと推定できる。この場合には、選択部１４は、温度との間で比例関係にある充電時間の上限値であるＭａｘＳｌｉｃｅｒ［１２０℃］をＳｌｉｃｅｒ［ｔ］に選択する（ステップＳ１０３）。
【００６０】
一方、ＴｅｍｐＴｉｍｅｒ［ｔ］＞ＭａｘＳｌｉｃｅｒ［１２０℃］でない場合（ステップＳ１０２Ｎｏ）には、選択部１４は、ステップＳ１０１で計測されたコンデンサＣの充電時間が第２充電時間記憶部１３ｂに記憶されたＭｉｎＳｌｉｃｅｒ［−２０℃］よりも小さいか否かを判定する（ステップＳ１０４）。つまり、ＴｅｍｐＴｉｍｅｒ［ｔ］＜ＭｉｎＳｌｉｃｅｒ［−２０℃］であるか否かが判定される。
【００６１】
このとき、ＴｅｍｐＴｉｍｅｒ［ｔ］＜ＭｉｎＳｌｉｃｅｒ［−２０℃］である場合（ステップＳ１０４Ｙｅｓ）には、温度との間で比例関係にある充電時間の範囲を下回るコンデンサＣの充電時間が計測部１２によって計測されたと推定できる。この場合には、選択部１４は、温度との間で比例関係にある充電時間の下限値であるＭｉｎＳｌｉｃｅｒ［−２０℃］をＳｌｉｃｅｒ［ｔ］に選択する（ステップＳ１０５）。
【００６２】
また、ＴｅｍｐＴｉｍｅｒ［ｔ］＞ＭａｘＳｌｉｃｅｒ［１２０℃］でなく、かつＴｅｍｐＴｉｍｅｒ［ｔ］＜ＭｉｎＳｌｉｃｅｒ［−２０℃］でもない場合（ステップＳ１０２ＮｏかつステップＳ１０４Ｎｏ）には、次のような処理を実行する。つまり、ＭｉｎＳｌｉｃｅｒ［−２０℃］≦ＴｅｍｐＴｉｍｅｒ［ｔ］≦ＭａｘＳｌｉｃｅｒ［１２０℃］である場合には、温度との間で比例関係にある充電時間の範囲内のコンデンサＣの充電時間が計測部１２によって計測されたと推定できる。よって、選択部１４は、計測部１２によって計測されたコンデンサＣの充電時間、すなわちＴｅｍｐＴｉｍｅｒ［ｔ］をそのままＳｌｉｃｅｒ［ｔ］に選択する（ステップＳ１０６）。
【００６３】
その後、算出部１５は、ステップＳ１０３、ステップＳ１０５またはステップＳ１０６で選択された充電時間から上記の式（２）にしたがって基準温度に対する環境温度の温度差を算出する（ステップＳ１０７）。その上で、算出部１５は、ステップＳ１０７で算出された基準温度に対する温度差から上記の式（３）にしたがって発振周波数の補正値を算出する（ステップＳ１０８）。そして、補正部１６は、ステップＳ１０８で算出された補正値にしたがってＲＣ発振器１０の発振周波数を補正し（ステップＳ１０９）、処理を終了する。
【００６４】
なお、図６に示すフローチャートでは、ステップＳ１０２の判定を行ってからステップＳ１０４の判定を行う場合を例示したが、これらの処理は、順番の前後を入れ替えることとしてもよいし、並列して実行させることもできる。また、図６に示すフローチャートでは、ステップＳ１０７で基準温度に対する環境温度の温度差を算出してからステップＳ１０８で発振周波数の補正値を算出する場合を例示したが、中間物として基準温度に対する環境温度の温度差を算出する処理を飛ばしてもよい。すなわち、式（２）が代入された式（３）へステップＳ１０５またはステップＳ１０６で選択された充電時間を代入することによってコンデンサＣの充電時間から発振周波数の補正値を直に算出することとしてもかまわない。
【００６５】
［実施例１の効果］
上述してきたように、本実施例に係るＲＣ発振器１０は、外付けのＲＣ回路１１から実測される場合及び基準温度でコンデンサが充電される場合の時定数の差と、コンデンサの温度及び容量の対応関係とから発振周波数の補正値を算出して補正する。
【００６６】
このため、本実施例に係るＲＣ発振器１０では、マイコン１が使用される環境温度に合わせてＲＣ発振器１０の発振周波数を補正できる。それゆえ、広範囲の温度でＲＣ発振器１０を使用できる。したがって、本実施例に係るＲＣ発振器１０によれば、ＲＣ発振器１０の汎用性を向上させることができる。例えば、極寒または高温の環境となり得る屋外に設置するスマートメータ等の装置にＲＣ発振器１０を搭載できる。
【００６７】
また、本実施例に係るＲＣ発振器１０では、広範囲の温度でＲＣ発振器１０を使用できるので、高価かつ入手のリードタイムが長い水晶発振器をマイコン１に内蔵せずともよい。さらに、ＲＣ発振器１０の発振周波数を補正する場合に、ＲＣ回路１０を外付けする他に、例えばＰＩＤ制御を実現するハードウェアやＰＬＬ回路、さらには温度センサ等の余計なハードウェアを設けずともよい。それゆえ、本実施例に係るＲＣ発振器１０では、精度面に加え、費用面及び生産性の面からも、ＲＣ発振器１０の汎用性を向上させることができる。
【実施例２】
【００６８】
さて、これまで開示の装置に関する実施例について説明したが、本発明は上述した実施例以外にも、種々の異なる形態にて実施されてよいものである。そこで、以下では、本発明に含まれる他の実施例を説明する。
【００６９】
［多項式の適用］
上記の実施例１では、ＲＣ回路１１が使用される温度とコンデンサＣの静電容量の変化率とが互いに線形の関係にある範囲で定めたコンデンサの熱変動率を補正値の算出に使用する場合を例示したが、必ずしも互いの関係が線形でなくともよい。例えば、コンデンサＣの静電容量の変化率が温度に対し、単純増加または単純減少する場合には、コンデンサの熱変動率を比例、反比例や対数などの多項式で定義することもできる。例えば、計測部１２によって計測されたコンデンサＣの充電時間と基準温度におけるコンデンサＣの充電時間の時定数との比率から求まる環境温度を変数とするコンデンサＣの熱変動率の多項式を初期設定することとすればよい。
【００７０】
［コンデンサの並列接続］
また、上記のＲＣ回路１１は、種類が異なる複数のコンデンサを並列に接続することもできる。例えば、アルミ電解コンデンサとタンタル電解コンデンサを並列に接続したＲＣ回路を用いることができる。この場合には、計測部１４によって計測されたアルミ電解コンデンサの充電時間がＭｉｎＳｌｉｃｅｒ［−２０℃］以上である場合には、アルミ電解コンデンサの充電時間を用いて補正値の算出を行う一方で、アルミ電解コンデンサの充電時間がＭｉｎＳｌｉｃｅｒ［−２０℃］未満である場合には、−２０℃以下でも温度と容量の変化率の互いが線形の関係にあるタンタル電解コンデンサの充電時間を用いて補正値の算出を行うこともできる。これによって、一方のコンデンサが弱点とする温度帯での補正値の算出を他方のコンデンサを用いて実行することができるので、種類が異なるコンデンサ間で温度帯の弱点を補間できる。なお、ここでは、アルミ電解コンデンサとタンタル電解コンデンサを並列に接続する場合を例示したが、他の種類のコンデンサを並列接続することもできる。
【００７１】
［他の実装例］
上記の実施例１では、ＲＣ発振器１０がマイクロコンピュータ１に搭載される場合を例示したが、ＲＣ発振器１０が搭載される対象は小型のコンピュータに限定されない。すなわち、上記のＲＣ発振器１０は、マイクロコンピュータ１の代わりに、一般のパーソナルコンピュータや大型のコンピュータにも搭載することができる。
【００７２】
［分散および統合］
また、図示した各装置の各構成要素は、必ずしも物理的に図示の如く構成されていることを要しない。すなわち、各装置の分散・統合の具体的形態は図示のものに限られず、その全部または一部を、各種の負荷や使用状況などに応じて、任意の単位で機能的または物理的に分散・統合して構成することができる。例えば、上記の実施例１では、算出部１５及び補正部１６をＲＣ発振器１０が有する場合を例示したが、算出部１５、補正部１６または算出部１５と補正部１６の両方をマイコン１が有することとしてもかまわない。
【００７３】
以上の実施例を含む実施形態に関し、さらに以下の付記を開示する。
【００７４】
（付記１）コンピュータが、
抵抗とコンデンサが外付けされるＲＣ回路から計測されたコンデンサの時定数及び所定の温度で前記コンデンサが充電される場合にとる時定数の差と、前記コンデンサに関する温度及び容量の対応関係とから前記ＲＣ回路を含むＲＣ発振器の発振周波数の補正値を算出し、
前記補正値にしたがって前記ＲＣ発振器の発振周波数を補正する
処理を実行することを特徴とする補正方法。
【００７５】
（付記２）前記発振周波数を補正する処理として、
前記補正値にしたがってシリアル通信を実行する場合のボーレートを決定するカウンタの値を補正することを特徴とする付記１に記載の補正方法。
【００７６】
（付記３）前記発振周波数を補正する処理として、
前記補正値にしたがってパケット通信に使用されるメモリの書込み周期または読出し周期を補正することを特徴とする付記１に記載の補正方法。
【００７７】
（付記４）前記発振周波数を補正する処理として、
前記補正値にしたがって前記ＲＣ発振器が搭載されるコンピュータのシステムクロックの分周比を補正することを特徴とする付記１に記載の補正方法。
【００７８】
（付記５）前記補正値を算出する処理は、
前記コンデンサに関する温度及び容量の対応関係として、前記ＲＣ回路が使用される温度と前記コンデンサの容量の変化率とが互いに線形の関係にある範囲で定めた勾配を用いることを特徴とする付記１〜４のいずれか一つに記載の補正方法。
【００７９】
（付記６）前記補正値を算出する処理は、
前記コンデンサに関する温度及び容量の対応関係として、前記ＲＣ回路が使用される温度と前記コンデンサの容量の変化率との間で定まる多項式を用いることを特徴とする付記１〜４のいずれか一つに記載の補正方法。
【００８０】
（付記７）コンピュータに、
抵抗とコンデンサが外付けされるＲＣ回路から計測されたコンデンサの時定数及び所定の温度で前記コンデンサが充電される場合にとる時定数の差と、前記コンデンサに関する温度及び容量の対応関係とから前記ＲＣ回路を含むＲＣ発振器の発振周波数の補正値を算出し、
前記補正値にしたがって前記ＲＣ発振器の発振周波数を補正する
処理を実行させることを特徴とする補正プログラム。
【００８１】
（付記８）抵抗とコンデンサが外部に設置されたＲＣ回路と、
前記ＲＣ回路から計測されたコンデンサの時定数及び所定の温度で前記コンデンサが充電される場合にとる時定数の差と、前記コンデンサに関する温度及び容量の対応関係とから発振周波数の補正値を算出する算出部と、
前記補正値にしたがって前記発振周波数を補正する補正部と
を有することを特徴とするＲＣ発振器。
【００８２】
（付記９）抵抗とコンデンサが外部に設置されたＲＣ回路と、
前記ＲＣ回路から計測されたコンデンサの時定数及び所定の温度で前記コンデンサが充電される場合にとる時定数の差と、前記コンデンサに関する温度及び容量の対応関係とから発振周波数の補正値を算出する算出部と、
前記補正値にしたがって前記発振周波数を補正する補正部と
を有することを特徴とするコンピュータ。
【符号の説明】
【００８３】
１    マイクロコンピュータ
１０    ＲＣ発振器
１１    ＲＣ回路
１２    計測部
１３ａ  第１充電時間記憶部
１３ｂ  第２充電時間記憶部
１３ｃ  第３充電時間記憶部
１４    選択部
１５    算出部
１６    補正部
２０    周辺機器
２１    ボーレートタイマテーブル
【図１】
2015037291.tif 000006
【図２】
2015037291.tif 000007
【図３】
2015037291.tif 000008
【図４】
2015037291.tif 000009
【図５】
2015037291.tif 000010
【図６】
2015037291.tif 000011