(57)【特許請求の範囲】
【請求項１】
ＣＲ発振器の発振信号を周期設定値に基づいて逓倍または分周してクロック信号を出力する発振回路と、
前記ＣＲ発振器周辺の温度を検出する温度検出手段と、
前記周期設定値を前記温度検出手段により検出された温度に関連付けて記憶する記憶手段と、
前記温度検出手段により検出された温度に対応した周期設定値を前記記憶手段から読み出して前記発振回路に与えるクロック周期設定手段と、
前記クロック信号を用いてデータ信号を受信する受信手段と、
前記受信手段で受信するデータ信号の単位ビット長を前記クロック信号を計数することにより計測する計測手段と、
前記計測手段による前記クロック信号の計数値と前記単位ビット長に対する基準周期に基づく基準計数値とに基づいて、前記温度検出手段により検出された温度に対応した周期設定値を補正するとともに、当該補正後の周期設定値を当該検出温度に対応させて前記記憶手段に書き込む補正手段とを備えていることを特徴とするデータ受信装置。
【請求項２】
前記補正手段は、前記補正後の周期設定値と当該検出温度に対応した補正前の周期設定値との差分を演算し、前記記憶手段に記憶されている各温度に対応した周期設定値に前記差分を加算することを特徴とする請求項１記載のデータ受信装置。
【請求項３】
前記補正手段は、前記補正後の周期設定値と当該検出温度に対応した補正前の周期設定値との差分を演算し、前記記憶手段に記憶されている各温度に対応した周期設定値に、前記差分を各温度に応じて重み付けして得た値を加算することを特徴とする請求項１記載のデータ受信装置。
【請求項４】
前記補正手段は、補正により得られる周期設定値が所定回数だけ連続して一致した場合に、当該補正後の周期設定値を前記温度検出手段により検出された温度に対応させて前記記憶手段に書き込むことを特徴とする請求項１記載のデータ受信装置。
【請求項５】
前記補正手段は、補正により得られる周期設定値が所定回数だけ連続して一致しない場合であっても、補正により得られる周期設定値が所定回数だけ連続して単調に増加または減少した場合に、当該補正後の周期設定値を前記温度検出手段により検出された温度に対応させて前記記憶手段に書き込むことを特徴とする請求項４記載のデータ受信装置。
【請求項６】
ＣＲ発振器の発振信号を周期設定値に基づいて逓倍または分周してクロック信号を出力する発振回路と、
前記ＣＲ発振器周辺の温度を検出する温度検出手段と、
前記ＣＲ発振器に供給される電源の電圧を検出する電圧検出手段と、
前記周期設定値を前記温度検出手段により検出された温度と前記電圧検出手段により検出された電圧とに関連付けて記憶する記憶手段と、
前記温度検出手段により検出された温度および前記電圧検出手段により検出された電圧に対応した周期設定値を前記記憶手段から読み出して前記発振回路に与えるクロック周期設定手段と、
前記クロック信号を用いてデータ信号を受信する受信手段と、
前記受信手段で受信するデータ信号の単位ビット長を前記クロック信号を計数することにより計測する計測手段と、
前記計測手段による前記クロック信号の計数値と前記単位ビット長に対する基準周期に基づく基準計数値とに基づいて、前記温度検出手段により検出された温度および前記電圧検出手段により検出された電圧に対応した周期設定値を補正するとともに、当該補正後の周期設定値を当該検出温度および検出電圧に対応させて前記記憶手段に書き込む補正手段とを備えていることを特徴とするデータ受信装置。
【請求項７】
前記補正手段は、前記補正後の周期設定値と当該検出温度および検出電圧に対応した補正前の周期設定値との差分を演算し、前記記憶手段に記憶されている各温度および各電圧に対応した周期設定値に前記差分を加算することを特徴とする請求項６記載のデータ受信装置。
【請求項８】
前記補正手段は、前記補正後の周期設定値と当該検出温度および検出電圧に対応した補正前の周期設定値との差分を演算し、前記記憶手段に記憶されている各温度および電圧に対応した周期設定値に、前記差分を各温度および電圧に応じて重み付けして得た値を加算することを特徴とする請求項６記載のデータ受信装置。
【請求項９】
前記補正手段は、補正により得られる周期設定値が所定回数だけ連続して一致した場合に、当該補正後の周期設定値を前記温度検出手段により検出された温度および前記電圧検出手段により検出された電圧に対応させて前記記憶手段に書き込むことを特徴とする請求項６記載のデータ受信装置。
【請求項１０】
前記補正手段は、補正により得られる周期設定値が所定回数だけ連続して一致しない場合であっても、補正により得られる周期設定値が所定回数だけ連続して単調に増加または減少した場合に、当該補正後の周期設定値を前記温度検出手段により検出された温度および前記電圧検出手段により検出された電圧に対応させて前記記憶手段に書き込むことを特徴とする請求項９記載のデータ受信装置。
【請求項１１】
前記計測手段は、前記受信手段で受信するデータ信号に含まれる所定の同期信号を検出したときに前記単位ビット長を計測することを特徴とする請求項１ないし１０の何れかに記載のデータ受信装置。
【請求項１２】
前記補正手段は、前記補正後の周期設定値と補正前の周期設定値との差分を演算し、その差分が所定の制限値以下であることを条件として前記周期設定値の補正および前記記憶手段への書き込みを実行することを特徴とする請求項１ないし１１の何れかに記載のデータ受信装置。
【請求項１３】
請求項１ないし１２の何れかに記載のデータ受信装置を備え、前記発振回路から出力されるクロック信号をシステムクロック信号とすることを特徴とするマイクロコンピュータ。
【請求項１４】
データ信号を送信するデータ送信装置を備え、
前記データ受信装置の補正手段が周期設定値の補正演算を実行することに替えて、前記データ受信装置の計測手段によるクロック信号の計数値と記憶手段から読み出された周期設定値とを前記データ送信装置により上位コンピュータに送信し、その上位コンピュータにおいて前記クロック信号の計数値とデータ信号の単位ビット長に対する基準周期に基づく基準計数値とに基づいて補正された周期設定値を受信し、この受信した補正後の周期設定値を前記発振回路に設定するとともに前記データ受信装置の記憶手段に書き込むことを特徴とする請求項１３記載のマイクロコンピュータ。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、ＣＲ発振回路から出力されるクロック信号を用いたデータ受信装置および当該データ受信装置を備えたマイクロコンピュータに関する。
【背景技術】
【０００２】
通信装置やマイクロコンピュータ（マイコン）では、正確で安定した基準クロックを生成するために発振子が用いられている。特許文献１、２には、水晶発振器における経年変化補正を行う技術が開示されている。しかし、発振子は比較的高価であるため、発振子を用いない発振子レスの構成が望まれている。発振子の代用回路としてＣＲ発振回路があるが、ＣＲ発振回路は温度変化および電源電圧変化により発振周期が変化し易く、特に温度が変化する環境、特に車載機器のように温度変化の大きい環境下では基準クロックとして使用することができない。
【０００３】
例えば、車載ＬＡＮの通信プロトコルであるＬＩＮ（Local Interconnect Network）では、マスタノードから送信されるフレームのヘッダに０ｘ５５なるシンクバイトフィールド（Synch Byte Field）が付加されている。スレーブノードでは、この時間を基準クロックを用いて計数することにより１ビット時間（bit time）の正確な値を算出して通信レートを得るようになっている（例えば特許文献３参照）。しかし、この同期信号を検出する間に温度変化が生じて基準クロックが変動すると、正しくデータの送受信を行えない。
【０００４】
これに対し、特許文献４には、温度変化に応じて発振周波数が変化した場合に、ＣＲ発振回路の時定数を変化させることなく、通信回路のデータ送信時間が一定となるように制御するマイコンが開示されている。通信回路により管理される１フレームのデータ送信時間を一定とするための通信レートＣＭＲを決定するデータを予めメモリに記憶しておき、検出温度に応じてメモリに記憶されているデータを読み出し、決定した通信レートＣＭＲを通信回路に設定する。また、データが不足する温度領域では、高低２点間を一次関数で補間することにより近似の通信レートＣＭＲを得ている。
【特許文献１】特開２００４−２８２１１８号公報
【特許文献２】特開２００２−３０５４４２号公報
【特許文献３】特開２００６−３１１２３７号公報
【特許文献４】特開２００６−２７０９１７号公報
【発明の開示】
【発明が解決しようとする課題】
【０００５】
特許文献４記載の補正手段では、製品ごとに事前に初期特性を測定し、その特性に対応したデータをメモリに書き込む必要がある。誤差を低減するには極力多くの温度についてデータを準備することが好ましいが、データ数が増加すると初期特性の測定工数および書込工数が増大してコストが上昇する。また、上述したように数点のデータのみを準備してその間を直線補間すると、補間される温度領域の初期特性に誤差が生じ易い。初期特性の誤差は、出荷後の実動作においては補正することができない。さらに、ＣＲ発振回路は、同じ温度条件、電圧条件であっても時間経過とともに徐々に発振周波数が変化する。特許文献４記載の補正手段では、再度データを書き換えない限り経年変化による誤差を補正できない。
【０００６】
本発明は上記事情に鑑みてなされたもので、その目的は、ＣＲ発振回路に温度変化、電圧変化または経年変化が生じても正確な周波数を持つクロック信号を生成できるデータ受信装置およびマイクロコンピュータを提供することにある。
【課題を解決するための手段】
【０００７】
請求項１に記載した手段によれば、温度検出手段によりＣＲ発振器周辺の温度を検出し、その検出温度に対応した周期設定値（例えば逓倍数、分周比）を記憶手段から読み出して発振回路に与える。発振回路は、ＣＲ発振器の発振信号をその周期設定値に基づいて逓倍または分周してクロック信号を出力する。この周期設定値は、受信手段で受信する正確な通信レートを持つデータ信号の単位ビット長を基準として補正されたものなので、クロック信号の周期は上記通信レートと同程度の精度を有することになる。従って、温度変化が生じても正確な周期を持つクロック信号を生成可能となる。
【０００８】
クロック信号を用いて受信手段でデータ信号を受信するとき、そのデータ信号の単位ビット長を、上記発振回路から出力されるクロック信号の計数により計測する。そして、このクロック信号の計数値（実際値）と、単位ビット長に対する基準周期に基づく基準計数値（基準値）とに基づいて、そのときの検出温度に対応した周期設定値を補正し、補正後の周期設定値を検出温度に対応させて記憶手段に書き込む。
【０００９】
本手段によれば、データ信号を受信してその単位ビット長の計測を実行するごとに、その計測時の検出温度における記憶された周期設定値を最新の値に更新でき、或いは当該検出温度における記憶された周期設定値が存在しない場合（補間等により周期設定値を求めている場合）には、周期設定値を新たに生成して記憶することができる。すなわち、データ受信装置は、受信するデータ信号の同期信号などにおける単位ビット長に基づいて当該温度における周期設定値を次々に学習する機能を有している。
【００１０】
従って、周期設定値の初期値の数が少ない場合や初期値に誤差が存在する場合であっても、正確な規定通信レートを持つデータ信号を受信するに従って、温度補正に用いる周期設定値を拡充することができる。また、ＣＲ発振周期に経年変化が生じても、上記更新によりその誤差をキャンセルすることができる。
【００１１】
請求項２に記載した手段によれば、当該検出温度に対応する周期設定値を補正する場合、他の温度に対応する周期設定値も合わせて補正する。すなわち、補正後の周期設定値と当該検出温度に対応した補正前の周期設定値との差分を演算し、記憶手段に記憶されている各温度に対応した周期設定値に前記差分を加算する。これにより、経年変化によるずれが生じた場合に、全温度範囲の周期設定値を一度に補正することができる。また、極端に高い温度や低い温度などのように発生頻度が少ない温度に対応した周期設定値が補正されずに初期の誤差や経年変化が残存し続けることを防止できる。
【００１２】
請求項３に記載した手段によれば、当該検出温度に対応する周期設定値を補正する場合、他の温度に対応する周期設定値も合わせて補正する。すなわち、補正後の周期設定値と当該検出温度に対応した補正前の周期設定値との差分を演算し、記憶手段に記憶されている各温度に対応した周期設定値に、上記差分を各温度に応じて重み付けして得た値を加算する。これにより、温度ごとに異なる初期の誤差特性や経年変化の特性まで考慮したより適切な補正ができる。
【００１３】
請求項４に記載した手段によれば、補正により得られる周期設定値が所定回数だけ連続して一致した場合に、当該補正後の周期設定値を温度検出手段により検出された温度に対応させて記憶手段に書き込む。これによりフィルタ作用が得られ、誤計測などによる誤周期設定値を排除でき、周期設定値を安定させることができる。
【００１４】
請求項５に記載した手段によれば、所定回数だけ連続して一致しない場合であっても、補正により得られる周期設定値が所定回数だけ連続して単調に増加または減少した場合に、当該補正後の周期設定値を温度検出手段により検出された温度に対応させて記憶手段に書き込む。これにより、温度変化により周期設定値が一定せず絶えず単調に変化する場合に、周期設定値の補正がいつまでも反映されない事態を防止することができる。
【００１５】
請求項６ないし１０に記載した手段は、それぞれ請求項１ないし５に記載した手段に対し、ＣＲ発振器周辺の検出温度のみならずＣＲ発振器に供給される電源電圧にも対応させて周期設定値の記憶、読み出し、補正およびクロック周期の設定を実行する。すなわち、ＣＲ発振器に供給される電源の電圧を検出する電圧検出手段を備え、温度検出手段により検出された温度および電圧検出手段により検出された電圧に対応した周期設定値を記憶手段から読み出して発振回路に与える。補正手段は、受信手段で受信する正確な通信レートを持つデータ信号の単位ビット長を基準として周期設定値を補正し、補正後の周期設定値を検出温度および検出電圧に対応させて記憶手段に書き込む。これらの手段によれば、ＣＲ発振器周辺の温度およびＣＲ発振器の電源電圧における周期設定値を次々に学習し、温度変動のみならず電源電圧変動が生じても、正確な周期を持つクロック信号を生成可能となる。
【００１６】
請求項１１に記載した手段によれば、受信手段で受信するデータ信号に含まれる所定の同期信号を検出したときに単位ビット長を計測するので、例えばマスタからの正確な規定通信レートを持つデータ信号を受信するごとに周期設定値を補正することができる。
【００１７】
請求項１２に記載した手段によれば、補正前後の周期設定値の差分を演算し、その差分が所定の制限値以下である場合に限り周期設定値の補正および補正後の周期設定値の記憶手段への書き込みを実行する。想定される温度変動（および電圧変動）の最大幅に対応した周期設定値の変化幅を制限値として設定すれば、それを超える誤った補正を回避することができる。
【００１８】
請求項１３に記載した手段によれば、マイクロコンピュータが上述した何れかのデータ受信装置を備え、そのデータ受信装置でデータ信号を受信することにより、ＣＲ発振回路で正確な周波数を持つクロック信号を生成してシステムクロック信号とすることができる。本手段によれば、発振子を搭載する必要がないためコストを下げることができる。また、データ信号を受信するごとに、クロック信号の周期を決定する周期設定値を学習（補正）し続けるので、温度変化、電圧変化または経年変化が生じても正確な周波数を持つクロック信号を生成できる。
【００１９】
請求項１４に記載した手段によれば、データ受信装置の補正手段が周期設定値の補正演算を実行することに替えて、上位コンピュータが補正演算を実行する。そのため、マイクロコンピュータは、データ信号を送信するデータ送信装置を備え、データ受信装置の計測手段によるクロック信号の計数値と記憶手段から読み出された周期設定値とをデータ送信装置により上位コンピュータに送信する。上位コンピュータは、クロック信号の計数値とデータ信号の単位ビット長に対する基準周期に基づく基準計数値とに基づいて周期設定値を補正し、マイクロコンピュータに送信する。本手段によれば、発振子レスであって小規模で安価なマイクロコンピュータの処理負担を軽減でき、演算処理能力の不足を補うことができる。
【発明を実施するための最良の形態】
【００２０】
（第１の実施形態）
以下、本発明の第１の実施形態について図１ないし図４を参照しながら説明する。
図１は、車両のＥＣＵ（Electronic Control Unit）に搭載されているワンチップマイクロコンピュータの電気的構成を示す機能ブロック図である。このマイコン１は、ＣＰＵ２、ＥＥＰＲＯＭ３（記憶手段に相当）、ＲＡＭ４、ＲＯＭ５、Ａ／Ｄ変換器６、例えばＵＡＲＴ（Universal Asynchronous Receiver/Transmitter）などの通信回路７（受信手段に相当）、ＣＲ発振回路８および温度検出回路９（温度検出手段に相当）を備えている。温度検出回路９以外の回路は、アドレスバス１０およびデータバス１１を介してＣＰＵ２に接続されている。ＣＰＵ２は、本発明でいうクロック周期設定手段、計測手段および補正手段に相当する。これらの各回路には、電源線１４とグランド１５を通して電源（電圧Ｖcc）が供給されている。
【００２１】
ＣＲ発振回路８は、ＣＲ発振器１２およびＰＬＬ（Phase Locked Loop）回路１３から構成されている。ＰＬＬ回路１３は、ＣＲ発振器１２の発振信号を逓倍数設定値ＦＭＵＬＲに基づいて逓倍し、さらに分周比設定値ＦＤＩＶＲに基づいて分周してクロック信号ＣＬＫを生成し出力する。逓倍数設定値ＦＭＵＬＲおよび分周比設定値ＦＤＩＶＲは、本発明でいう周期設定値に相当し、それぞれＣＲ発振回路８内のレジスタに格納される。
【００２２】
クロック信号ＣＬＫは、マイコン１のシステムクロックとしてＣＰＵ２、Ａ／Ｄ変換器６、通信回路７などに供給される。以下では周期設定値として分周比設定値ＦＤＩＶＲを一定とし逓倍数設定値ＦＭＵＬＲを補正する場合について説明するが、逓倍数設定値ＦＭＵＬＲを一定とし分周比設定値ＦＤＩＶＲを補正し、或いは逓倍数設定値ＦＭＵＬＲと分周比設定値ＦＤＩＶＲの両者を補正してもよい。
【００２３】
温度検出回路９は、電源線１４とグランド１５との間に接続された抵抗１６とダイオード１７〜１９との直列回路により構成されている。抵抗１６とダイオード１７との接続ノードは、Ａ／Ｄ変換器６の入力端子に接続されている。周知のようにダイオードの順方向電圧Ｖｆは、−２．０〜−２．５ｍＶ／℃の温度特性を有している。Ａ／Ｄ変換器６を介してダイオード１７〜１９の順方向電圧３・Ｖｆを入力することにより、Ａ／Ｄ変換値に対応して温度を検出することができる。この温度検出回路９は、ＣＲ発振器１２（またはその周辺）の温度を検出することができるように、半導体基板上でＣＲ発振器１２に近接して形成されている。
【００２４】
通信回路７は、車載ＬＡＮのシリアル通信プロトコルであるＬＩＮのスレーブノードとして機能する。通信回路７がフレーム（データ信号に相当）を受信するときの各ビットの取込タイミングおよび通信回路７が送信するときの通信レート（ボーレート）は、ＣＲ発振回路８から出力されるクロック信号ＣＬＫの周波数に基づいて定まるため、クロック信号ＣＬＫの周波数（周期）が変動すると送受信に支障が生じる。
【００２５】
ＬＩＮ仕様２．０によれば、マスタノードの発振周波数の許容誤差（Oscillator Tolerance）は±０．５％未満であり、スレーブノードの発振周波数の許容誤差は±１．５％未満である。また、スレーブノードにおける同期前の規定周波数からのずれは±１４％未満である。何らの補正手段も持たない一般のＣＲ発振回路を用いて、例えば−４０℃から＋１２５℃の広範な温度範囲で発振周波数を±１．５％未満の変動に保つことは極めて難しい。
【００２６】
そこで、本実施形態では、ＣＰＵ２は、ＥＥＰＲＯＭ３に逓倍数設定値ＦＭＵＬＲと検出温度Ｔ（実際にはＡ／Ｄ変換値）とを対応付けて記憶し、ＥＥＰＲＯＭ３からその時々の検出温度Ｔ（Ａ／Ｄ変換値）に対応した逓倍数設定値ＦＭＵＬＲを読み出してそれをＣＲ発振回路８内のレジスタに与え、ＰＬＬ回路１３の逓倍数を制御する。上述したように、本実施形態では分周比設定値ＦＤＩＶＲを一定としている。
【００２７】
さらに、ＣＰＵ２は、マスタノードから送信されるフレームのうちシンクバイトフィールド（Synch Byte Field）を受信するごとに、クロック信号ＣＬＫを計数することにより１ビット時間（単位ビット長に相当）を計測し、その計数値ＸＡと１ビット時間に対する基準周期に基づく基準計数値ＸＢ（＝１ビット時間／基準周期）とに基づいて、検出温度Ｔに対応する逓倍数設定値ＦＭＵＬＲを補正し、当該補正後の逓倍数設定値ＦＭＵＬＲを当該検出温度Ｔ（Ａ／Ｄ変換値）に対応させてＥＥＰＲＯＭ３に書き込む。
【００２８】
以下、本実施形態の作用を図２ないし図４を参照しながら具体的に説明する。
まず、マイコン１を製品として出荷する前の検査工程で、逓倍数設定値ＦＭＵＬＲの初期値を設定しＥＥＰＲＯＭ３に書き込む。すなわち、マイコン１を所定の温度Ｔの環境下で動作させ、クロック信号ＣＬＫが規定周波数（例えば４ＭＨｚ）に一致するように逓倍数設定値ＦＭＵＬＲを決定する。そして、Ａ／Ｄ変換器６が出力するＡ／Ｄ変換値（検出温度Ｔと等価）と上記決定した逓倍数設定値ＦＭＵＬＲとを対応させてＥＥＰＲＯＭ３に書き込む。これを複数の温度例えば−４０℃、２５℃、１２５℃の３点で実行する。
【００２９】
また、製品ごとに逓倍数設定値ＦＭＵＬＲを決定して書き込むことに替えて、設計値または当該製品ロットの代表値等に基づいて逓倍数設定値ＦＭＵＬＲを算出し、それをＡ／Ｄ変換値（検出温度Ｔ）に対応させてＥＥＰＲＯＭ３に書き込んでもよい。後述するように、マイコン１は、逓倍数設定値ＦＭＵＬＲに多少の誤差が存在しても、その後の学習処理により誤差をキャンセルすることができる。
【００３０】
図２は、製品出荷後のマイコン１が実行するＣＲ発振周期の補正処理を示すフローチャートである。ＣＰＵ２は、ステップＰ１においてＡ／Ｄ変換器６からＡ／Ｄ変換値を入力する。このＡ／Ｄ変換値は、ＣＲ発振器１２の温度Ｔに対応している。続いてステップＰ２に移行し、ＥＥＰＲＯＭ３からＡ／Ｄ変換値（つまり検出温度Ｔ）に対応した逓倍数設定値ＦＭＵＬＲを読み出し、ステップＰ３でそれをＣＲ発振回路８内のレジスタに設定する。
【００３１】
Ａ／Ｄ変換値に対応した逓倍数設定値ＦＭＵＬＲが存在しない場合には、例えば当該Ａ／Ｄ変換値を挟み込むように存在する２つのＡ／Ｄ変換値に対応した逓倍数設定値ＦＭＵＬＲに基づいて一次関数で補間して逓倍数設定値ＦＭＵＬＲを求めればよい。ＰＬＬ回路１３は、レジスタＦＭＵＬＲの値に従って原発振信号を逓倍し、その後一定の分周比設定値ＦＤＩＶＲに従って分周してクロック信号ＣＬＫを出力する。
【００３２】
ＣＰＵ２は、ステップＰ４においてＬＩＮのマスタノードから送信された同期信号を検出したか否かを判断する。図３は、ＬＩＮのフレーム構成を示している。マスタノードから送信されたフレームのヘッダは、新たなフレームの開始を示す１３ビット長のブレークフィールド、０ｘ５５のデータ値を持つシンクバイトフィールドおよび識別フィールドから構成されている。通信回路７がブレークフィールドとシンクバイトフィールドを受信した時点でそれがヘッダであることを認識できる。
【００３３】
通信回路７が同期信号であるシンクバイトフィールドを含むヘッダを受信していない期間は、ステップＰ１ないしＰ４の処理を繰り返し実行する。この期間は、逓倍数設定値ＦＭＵＬＲの補正がなされず、ＥＥＰＲＯＭ３に既に記憶されている逓倍数設定値ＦＭＵＬＲを用いてクロック信号ＣＬＫが生成される。
【００３４】
一方、通信回路７がシンクバイトフィールドを受信するとステップＰ５に移行し、１ビット長を計測する。具体的には、シンクバイトフィールドのスタートビットと第７ビットの両ダウンエッジの間の時間８Ｔbitをクロック信号ＣＬＫを計数することにより計測し、その計数値を８で除すことにより１ビット時間の計数値ＸＡを得る。例えば、マスタノードが９６００ｂｐｓの正確な通信レートで送信した場合、クロック信号ＣＬＫが正確に４ＭＨｚであれば計数値は４１６となる。この１ビット時間（１／９６００＝１０４．２μｓ）に対する基準周期（１／４ＭＨｚ＝０．２５μｓ）に基づく計数値を基準計数値ＸＢとする。
【００３５】
ＣＰＵ２は、ステップＰ６に移行し、以下の（１）式により補正後の逓倍数設定値ＦＭＵＬＲを演算し、それをＰＬＬ回路１３のレジスタに設定する。設定後、ＰＬＬ回路１３は補正後の新たな逓倍数設定値ＦＭＵＬＲに従って原発振信号を逓倍する。
補正後のＦＭＵＬＲ＝現在のＦＭＵＬＲ×ＸＢ／ＸＡ    …（１）
【００３６】
その後、ステップＰ７に移行し、補正後の逓倍数設定値ＦＭＵＬＲをＡ／Ｄ変換値（検出温度Ｔ）に対応させてＥＥＰＲＯＭ３に書き込む。当該検出温度Ｔに対応する逓倍数設定値ＦＭＵＬＲが既にＥＥＰＲＯＭ３に書き込まれている場合には周期設定値の更新（上書き）となり、書き込まれていない場合（補正前の逓倍数設定値ＦＭＵＬＲを補間等により求めた場合）には、逓倍数設定値ＦＭＵＬＲを新たにＥＥＰＲＯＭ３に書き込むことになる。以上のステップＰ１〜Ｐ７の処理は、繰り返し実行される。
【００３７】
図４は、温度変化に対するＣＲ発振器１２の発振周波数（黒丸）と逓倍数設定値ＦＭＵＬＲ（白丸）の特性を示している。（ａ）は補正前の特性で、（ｂ）は検出温度ＴでＣＲ発振器１２の発振周波数がずれたと仮定した場合の逓倍数設定値ＦＭＵＬＲの補正方法を示している。ただし、実際には発振周波数が検出温度Ｔだけで大きくずれることはなく、（ｂ）に示す場合には少なくとも検出温度Ｔに近い温度範囲においても発振周波数がずれている。
【００３８】
ＣＲ発振器１２は、一般に温度上昇とともに発振周波数が低下する特性を持っているため、逓倍数設定値ＦＭＵＬＲは温度上昇とともに増加する特性となる。ＣＰＵ２は、同期信号の検出を条件にステップＰ５〜Ｐ７を実行するごとに、そのときの検出温度Ｔに対応した逓倍数設定値ＦＭＵＬＲを補正する。図４（ｂ）に示す場合、ＣＲ発振器１２の発振周波数ひいてはクロック信号ＣＬＫの周波数が低下したため計数値ＸＡが減少し、当該検出温度Ｔにおける逓倍数設定値ＦＭＵＬＲを増加させるような補正がなされている。
【００３９】
以上説明したように、本実施形態によればＣＲ発振器１２の温度を示すＡ／Ｄ変換値とＣＲ発振回路８の逓倍数を決める逓倍数設定値ＦＭＵＬＲとを対応付けてＥＥＰＲＯＭ３に記憶する。そして、マイコン１の動作中は、Ａ／Ｄ変換値（検出温度Ｔ）に応じた逓倍数設定値ＦＭＵＬＲを読み出してＣＲ発振回路８のレジスタに設定するので、温度変化によりＣＲ発振器１２の発振周波数がずれてもクロック信号ＣＬＫの周波数を一定化することができる。
【００４０】
ＣＰＵ２は、マスタノードから送られてくるフレームの同期信号を受信するごとに、クロック信号ＣＬＫを計数して１ビット長を計測する。ＬＩＮでは、マスタノードから正確な通信レートでフレームが送信されてくるので、ＣＰＵ２は、上記１ビット長のクロック信号ＣＬＫによる計数値ＸＡと正規の１ビット時間を基準周期で除して得られる基準計数値ＸＢとに基づいて逓倍数設定値ＦＭＵＬＲを補正し、補正後の逓倍数設定値ＦＭＵＬＲを検出温度Ｔに対応させてＥＥＰＲＯＭ３に書き込む。
【００４１】
これにより、マスタノードからの同期信号を受信するごとに、その時のＣＲ発振器１２の温度に対応した逓倍数設定値ＦＭＵＬＲを最新の値に更新できる。また、当該温度に対応した逓倍数設定値ＦＭＵＬＲが記憶されていない場合には、新たに生成して記憶することができる。つまり、マイコン１は、ＣＲ発振回路８の温度に対応した逓倍数設定値ＦＭＵＬＲを次々に学習することができる。マイコン１は、ＬＩＮの通信波形の波形を用いて補正を行うので、別に基準信号を準備する必要がない。
【００４２】
逓倍数設定値ＦＭＵＬＲの初期値の数が少ない場合や初期値に誤差が存在する場合であっても、正確な規定通信レートを持つ同期信号を受信するに従って、温度補正に用いる逓倍数設定値ＦＭＵＬＲを拡充することができる。また、ＣＲ発振器１２に経年変化が生じた場合でも、逓倍数設定値ＦＭＵＬＲを補正してクロック信号ＣＬＫの周波数を正確な値に一定に保つことができる。さらに、長時間に亘りマスタノードからの同期信号を受信することがなくても、その後受信すれば正しく補正することができる。これにより、ビットずれによる通信エラーを生ずることなくデータの送受信を行うことができる。
【００４３】
さらに、温度変化または経年変化にかかわらずクロック信号ＣＬＫの周波数が一定となるため、クロック信号ＣＬＫをシステムクロックとして用いることができる。その結果、発振子が不要となり、発振子を用いてシステムクロックを生成していた従来のマイコンに比べ低コストとなる。
【００４４】
（第２の実施形態）
次に、本発明の第２の実施形態について図５および図６を参照しながら説明する。
本実施形態は、第１の実施形態に対しＥＥＰＲＯＭ３に記憶されている逓倍数設定値ＦＭＵＬＲの補正方法が異なる。図５は、ＣＲ発振周期の補正処理を示すフローチャートであり、図２と同一の処理ステップには同一のステップ番号を付している。ステップＰ１１では、次の（２）式により、補正後の逓倍数設定値ＦＭＵＬＲと現在の（補正前の）逓倍数設定値ＦＭＵＬＲとの差分ΔＦＭＵＬＲを求める。そして、ＥＥＰＲＯＭ３に記憶されている全ての逓倍数設定値ＦＭＵＬＲに対しそれぞれ差分ΔＦＭＵＬＲを加算する。
ΔＦＭＵＬＲ＝補正後のＦＭＵＬＲ−現在のＦＭＵＬＲ    …（２）
【００４５】
図６は、図４と同様に温度変動に対するＣＲ発振器１２の発振周波数（黒丸）と逓倍数設定値ＦＭＵＬＲ（白丸）の変化特性を示している。図６（ｂ）に示すように、１つの検出温度Ｔにおける補正量ΔＦＭＵＬＲを、ＥＥＰＲＯＭ３に記憶されている各温度に対応する全ての逓倍数設定値ＦＭＵＬＲに一様に反映させている。この補正方法によれば、ＣＲ発振器１２に経年変化が生じた場合に、全ての逓倍数設定値ＦＭＵＬＲを一度に補正することができる。また、極端に高い温度や低い温度などのように発生頻度が少ない温度に対応した逓倍数設定値ＦＭＵＬＲが補正されずに放置される事態を防ぐことができる。
【００４６】
なお、上述した補正方法に替えて、ＥＥＰＲＯＭ３に記憶されている全ての逓倍数設定値ＦＭＵＬＲに対し、それぞれ差分ΔＦＭＵＬＲを各温度に応じて重み付けして得た値を加算してもよい。経年変化による発振周波数のずれが温度に依存する場合には、そのずれの傾向に合わせた重み付けをすることにより一層正確な補正を行うことができる。
【００４７】
（第３の実施形態）
次に、本発明の第３の実施形態について図７を参照しながら説明する。
本実施形態も、第１の実施形態に対しＥＥＰＲＯＭ３に記憶されている逓倍数設定値ＦＭＵＬＲの補正方法が異なる。図７は、ＣＲ発振周期の補正処理を示すフローチャートであり、図２と同一の処理ステップには同一のステップ番号を付している。
【００４８】
ＣＰＵ２は、ステップＰ２１において、（２）式により算出した差分ΔＦＭＵＬＲが３回連続して一致したか否かを判断する。ここで、一致している場合（ＹＥＳ）にはステップＰ７に移行し、補正後の逓倍数設定値ＦＭＵＬＲをＡ／Ｄ変換値（検出温度Ｔ）に対応させてＥＥＰＲＯＭ３に書き込む。ただし、差分ΔＦＭＵＬＲが０の場合であって、既にＥＥＰＲＯＭ３に当該検出温度Ｔに対応した逓倍数設定値ＦＭＵＬＲが書き込まれている場合には、書き込みは不要である。
【００４９】
一方、一致していない（ＮＯ）場合にはステップＰ２２に移行し、補正後の逓倍数設定値ＦＭＵＬＲが所定回数（例えば３回）連続して単調に増加または単調に減少しているか否かを判断する。単調に増減変化している場合（ＹＥＳ）にはステップＰ７に移行し、単調に変化していない場合（ＮＯ）にはステップＰ１に戻る。
【００５０】
ステップＰ２１を設けることによりフィルタ作用が得られ、計測誤差などによる逓倍数設定値ＦＭＵＬＲの誤書き換えを防止できる。また、ステップＰ２２を設けることにより、急激な温度変化が生じた場合に上記フィルタ作用により逓倍数設定値ＦＭＵＬＲの書き換えが妨げられることまたは遅れることを防止できる。
【００５１】
（第４の実施形態）
次に、本発明の第４の実施形態について図８を参照しながら説明する。
図８は、ＣＲ発振周期の補正処理を示すフローチャートである。図２と同一の処理ステップには同一のステップ番号を付し、説明を省略する。ステップＰ６で補正後の逓倍数設定値ＦＭＵＬＲを演算した後ステップＰ３１に移行し、（２）式を用いて補正後の逓倍数設定値ＦＭＵＬＲと現在の（補正前の）逓倍数設定値ＦＭＵＬＲとの差分ΔＦＭＵＬＲを求め、その絶対値｜ΔＦＭＵＬＲ｜を得る。
【００５２】
続いて、ステップＰ３２において、差分｜ΔＦＭＵＬＲ｜と制限値Ｄｍとを比較する。差分｜ΔＦＭＵＬＲ｜が制限値Ｄｍ以下である場合にはステップＰ７に移行し、補正後の逓倍数設定値ＦＭＵＬＲをＥＥＰＲＯＭ３に書き込む。一方、差分｜ΔＦＭＵＬＲ｜が制限値Ｄｍより大きい場合には、その補正後の逓倍数設定値ＦＭＵＬＲを破棄し（ＰＬＬ回路１３のレジスタを補正前の値に戻す）、ステップＰ７を飛ばしてステップＰ１に戻る。想定される温度変動の最大幅に対応した逓倍数設定値ＦＭＵＬＲの変化幅を制限値Ｄｍとして設定すれば、それを超える誤った補正を回避することができる。
【００５３】
（第５の実施形態）
次に、本発明の第５の実施形態について図９および図１０を参照しながら説明する。
本実施形態は、第１の実施形態の構成を基にして、さらにＣＲ発振回路８（ＣＲ発振器１２）に印加される電源電圧Ｖccの変化によりＣＲ発振器１２の発振周波数がずれても、クロック信号ＣＬＫの周波数を一定化するものである。第１の実施形態と同様に、分周比設定値ＦＤＩＶＲを一定とし逓倍数設定値ＦＭＵＬＲを補正する場合について説明する。      
【００５４】
図９は、マイコンの電気的構成を示す機能ブロック図であり、図１と同一構成部分には同一符号を付している。マイコン２１は、分圧などにより電源電圧Ｖccを検出する電圧検出回路２２（電圧検出手段に相当）を備えており、その検出した電圧はＡ／Ｄ変換器６に入力されている。
【００５５】
ＣＰＵ２は、ＥＥＰＲＯＭ３に逓倍数設定値ＦＭＵＬＲと検出温度Ｔ（実際にはＡ／Ｄ変換値）および検出電圧Ｖcc（実際にはＡ／Ｄ変換値）とを対応付けて記憶し、ＥＥＰＲＯＭ３からその時々の検出温度Ｔ（Ａ／Ｄ変換値）および検出電圧Ｖcc（Ａ／Ｄ変換値）に対応した逓倍数設定値ＦＭＵＬＲを読み出してそれをＣＲ発振回路８内のレジスタに与え、ＰＬＬ回路１３の逓倍数を制御する。
【００５６】
さらに、ＣＰＵ２は、マスタノードから送信されるフレームのうちシンクバイトフィールドを受信するごとに、検出温度Ｔおよび検出電圧Ｖccに対応する逓倍数設定値ＦＭＵＬＲを補正し、当該補正後の逓倍数設定値ＦＭＵＬＲを当該検出温度Ｔ（Ａ／Ｄ変換値）および検出電圧Ｖcc（Ａ／Ｄ変換値）に対応させてＥＥＰＲＯＭ３に書き込む。
【００５７】
マイコン２１を製品として出荷する前の検査工程では、逓倍数設定値ＦＭＵＬＲの初期値を設定しＥＥＰＲＯＭ３に書き込む。すなわち、マイコン１を所定の温度Ｔおよび電源電圧Ｖccの環境下で動作させ、クロック信号ＣＬＫが規定周波数（例えば４ＭＨｚ）に一致するように逓倍数設定値ＦＭＵＬＲを決定する。そして、Ａ／Ｄ変換器６が出力するＡ／Ｄ変換値（検出温度Ｔ、検出電圧Ｖccと等価）と上記決定した逓倍数設定値ＦＭＵＬＲとを対応させてＥＥＰＲＯＭ３に書き込む。これを複数の温度（例えば−４０℃、２５℃、１２５℃）および複数の電圧（例えば４．９５Ｖ、５．００Ｖ、５．０５Ｖ）で実行し、組み合わせとして９個の逓倍数設定値ＦＭＵＬＲを得る。なお、設計値または代表値等に基づいて逓倍数設定値ＦＭＵＬＲを決定してもよい。
【００５８】
図１０は、マイコン２１が実行するＣＲ発振周期の補正処理を示すフローチャートであり、図２に示す処理と同一の処理には同一のステップ番号を付している。ＣＰＵ２は、ステップＰ４１において、ＣＲ発振器１２の温度Ｔに対応するＡ／Ｄ変換値と、ＣＲ発振器１２に供給される電源電圧Ｖccに対応するＡ／Ｄ変換値とを入力する。続いてステップＰ４２に移行し、ＥＥＰＲＯＭ３からＡ／Ｄ変換値（つまり検出温度Ｔと検出電圧Ｖcc）に対応した逓倍数設定値ＦＭＵＬＲを読み出し、ステップＰ３でそれをＣＲ発振回路８内のレジスタに設定する。その後、既述したステップＰ３〜Ｐ６を経て補正後の逓倍数設定値ＦＭＵＬＲを演算し、ステップＰ４７で補正後の逓倍数設定値ＦＭＵＬＲをＡ／Ｄ変換値（検出温度Ｔ、検出電圧Ｖcc）に対応させてＥＥＰＲＯＭ３に書き込む。
【００５９】
本実施形態によれば、第１の実施形態と同様の効果が得られる他、温度変化のみならず電源電圧変化によりＣＲ発振器１２の発振周波数がずれても、クロック信号ＣＬＫの周波数を一定化することができる。
【００６０】
（第６の実施形態）
次に、本発明の第６の実施形態について図１１および図１２を参照しながら説明する。
図１１は、車両用アクチュエータの制御システムの構成を示している。アクチュエータ３１は、モータ３２と該モータ３２を制御するマイコン３３とを搭載している。上位に位置するＥＣＵ３４（上位コンピュータに相当）および複数（図１１では３個）のアクチュエータ３１は、バス３５により相互接続されてＬＩＮによる通信が可能となっている。ここで、ＥＣＵ３４がマスタノードであり、アクチュエータ３１がスレーブノードである。
【００６１】
アクチュエータ３１のマイコン３３は、上述したマイコン１またはマイコン２１と同様の電気的構成を備えているが、ＣＰＵ２が実行する処理内容が一部異なっている。以下では、マイコン１と同様の電気的構成を備えているものについて説明する。なお、通信回路７は、データの送信も可能であって、本発明でいう受信手段およびデータ送信装置に相当する。
【００６２】
図１２は、ＣＲ発振周期の補正処理を示すフローチャートである。ＣＰＵ２は、ステップＰ５で１ビット時間の計数値ＸＡを得た後、自ら逓倍数設定値ＦＭＵＬＲの補正演算をするのではなく、ステップＰ５１で現在の（補正前の）逓倍数設定値ＦＭＵＬＲ、計数値ＸＡおよびＡ／Ｄ変換値（検出温度Ｔ）をＥＣＵ３４に送信する。
【００６３】
ＥＣＵ３４は、アクチュエータ３１からこれらのデータを受信すると、アクチュエータ３１のマイコン３３に代わって（１）式を用いて逓倍数設定値ＦＭＵＬＲの補正演算をし、その演算した値と書き換えるべきデータ（記憶すべきＥＥＰＲＯＭ３のアドレス）とを含む書き換え指令をアクチュエータ３１に送信する。１ビット時間の計数値ＸＡは、ＥＣＵ３４が自ら有している。マイコン３３は、ステップＰ５２で書き換え指令を受信し、受信した補正後の逓倍数設定値ＦＭＵＬＲをＰＬＬ回路１３のレジスタに設定する。続くステップＰ７で、受信した補正後の逓倍数設定値ＦＭＵＬＲをＡ／Ｄ変換値（検出温度Ｔ）に対応させてＥＥＰＲＯＭ３に書き込む。
【００６４】
アクチュエータ３１のマイコン３３は、発振子レスとすることで小規模で安価な構成とした点に特に有用性があるが、その分だけ処理能力を切り詰めた設計となっている。本実施形態によれば、マイコン３３の処理負担を軽減することができるので、マイコン３３の持つ演算処理能力の不足を補うことができる。
【００６５】
（その他の実施形態）
なお、本発明は上記し且つ図面に示す各実施形態に限定されるものではなく、例えば以下のように変形または拡張が可能である。
第５の実施形態に対しても第２の実施形態と同様の変形が可能である。すなわち、ＣＰＵ２は、（２）式により差分ΔＦＭＵＬＲを求め、ＥＥＰＲＯＭ３に記憶されている各温度および各電源電圧に対応した全ての逓倍数設定値ＦＭＵＬＲに対しそれぞれ差分ΔＦＭＵＬＲを加算してもよい。また、ＥＥＰＲＯＭ３に記憶されている各温度および各電源電圧に対応した全ての逓倍数設定値ＦＭＵＬＲに対し、それぞれ差分ΔＦＭＵＬＲを各温度および電源電圧に応じて重み付けして得た値を加算してもよい。
【００６６】
第５の実施形態に対しても第３の実施形態と同様の変形が可能である。すなわち、ＣＰＵ２は、差分ΔＦＭＵＬＲが所定回数だけ連続して一致した場合に、補正後の逓倍数設定値ＦＭＵＬＲをＡ／Ｄ変換値（検出温度Ｔと検出電圧Ｖcc）に対応させてＥＥＰＲＯＭ３に書き込むようにしてもよい。一致していない場合でも、補正後の逓倍数設定値ＦＭＵＬＲが所定回数だけ連続して単調に増加または単調に減少している場合には、補正後の逓倍数設定値ＦＭＵＬＲをＡ／Ｄ変換値（検出温度Ｔと検出電圧Ｖcc）に対応させてＥＥＰＲＯＭ３に書き込むようにしてもよい。
【００６７】
第５の実施形態に対して、第２の実施形態と同様の変形および第３の実施形態と同様の変形を同時に施してもよい。
発振回路と、ＣＲ発振器に供給される電源の電圧を検出する電圧検出手段と、周期設定値を検出電圧に関連付けて記憶する記憶手段と、検出電圧に対応した周期設定値を記憶手段から読み出して発振回路に与えるクロック周期設定手段と、受信手段と、受信するデータ信号の単位ビット長をクロック信号を計数することにより計測する計測手段と、計数値と基準計数値とに基づいて検出電圧に対応した周期設定値を補正するとともに、当該補正後の周期設定値を当該検出電圧に対応させて記憶手段に書き込む補正手段とを備えた構成としてもよい。
【００６８】
ＰＬＬ回路１３のレジスタに逓倍数設定値ＦＭＵＬＲおよび分周比設定値ＦＤＩＶＲの初期値を設定しておけば、ＥＥＰＲＯＭ３への初期値の書き込みを不要とすることができる。この場合も、マイコン１がマスタノードからの同期信号を受信するごとに、その時のＣＲ発振器１２の温度に対応した逓倍数設定値ＦＭＵＬＲが新たなデータとしてＥＥＰＲＯＭ３に記憶される。
【００６９】
逓倍数設定値ＦＭＵＬＲと分周比設定値ＦＤＩＶＲとを用いてクロック信号ＣＬＫの周波数を一定化する場合には、分周比設定値ＦＤＩＶＲも併せて検出温度或いは検出温度と電源電圧に対応させてＥＥＰＲＯＭ３に書き込めばよい。
受信手段はＬＩＮを用いて送受信する通信回路７に限られず、他の通信ネットワーク、通信形式でデータ信号を受信するものであってもよい。
【００７０】
シンクバイトフィールドのスタートビットと第７ビットの両ダウンエッジの間の時間８Ｔbitを計数して計数値ＸＡとし、この８Ｔbitに対する基準周期に基づく計数値を基準計数値ＸＢとしてもよい。８Ｔbitを計測することは、１ビット時間Ｔbitを計測することと実質的に等価である。本発明でいう単位ビット長には、１ビット長に限らず所定単位を構成するビット長（２ビット長、…、８ビット長、…）も含まれる。
【００７１】
第２の実施形態と第３の実施形態とを組み合わせることも可能である。例えば、差分ΔＦＭＵＬＲが３回連続して一致した場合に、ＥＥＰＲＯＭ３に記憶されている全ての逓倍数設定値ＦＭＵＬＲに対しそれぞれ差分ΔＦＭＵＬＲを加算する。補正後の逓倍数設定値ＦＭＵＬＲが所定回数連続して単調に増加または減少している場合も同様である。
【００７２】
抵抗１６に替えて定電流回路を採用すると電源電圧Ｖccが変動する場合でも正確な温度検出が可能となる。温度検出手段は、温度検出回路９に限られず、温度を検出可能に構成される回路であればどのようなものであってもよい。
【図面の簡単な説明】
【００７３】
【図１】本発明の第１の実施形態を示すマイクロコンピュータの電気的な機能ブロック図
【図２】ＣＲ発振周期の補正処理を示すフローチャート
【図３】ＬＩＮのフレーム構成を示す図
【図４】ＣＲ発振器の発振周波数と逓倍数設定値ＦＭＵＬＲの温度特性図
【図５】本発明の第２の実施形態を示す図２相当図
【図６】図４相当図
【図７】本発明の第３の実施形態を示す図２相当図
【図８】本発明の第４の実施形態を示す図２相当図
【図９】本発明の第５の実施形態を示す図１相当図
【図１０】図２相当図
【図１１】本発明の第６の実施形態を示す車両用アクチュエータの制御システムの構成図
【図１２】図２相当図
【符号の説明】
【００７４】
１、２１、３３はマイクロコンピュータ、２はＣＰＵ（クロック周期設定手段、計測手段、補正手段）、３はＥＥＰＲＯＭ（記憶手段）、７は通信回路（受信手段、データ送信装置）、８はＣＲ発振回路、９は温度検出回路（温度検出手段）、１２はＣＲ発振器、２２は電圧検出回路（電圧検出手段）、３４はＥＣＵ（上位コンピュータ）である。
【図１】
0004462371.tif 000002
【図２】
0004462371.tif 000003
【図３】
0004462371.tif 000004
【図４】
0004462371.tif 000005
【図５】
0004462371.tif 000006
【図６】
0004462371.tif 000007
【図７】
0004462371.tif 000008
【図８】
0004462371.tif 000009
【図９】
0004462371.tif 000010
【図１０】
0004462371.tif 000011
【図１１】
0004462371.tif 000012
【図１２】
0004462371.tif 000013