説明

データ受信装置およびマイクロコンピュータ

【課題】CR発振回路に温度変化や経年変化が生じても正確な周波数を持つクロック信号を生成する。
【解決手段】CR発振器12の温度を示すA/D変換値とCR発振回路8の逓倍数を決める逓倍数設定値FMULRとを対応付けてEEPROM3に記憶し、A/D変換値(検出温度T)に応じた逓倍数設定値FMULRを読み出してCR発振回路8のレジスタに設定する。通信回路7が同期信号を受信するごとにクロック信号CLKを計数して1ビット長を計測し、その計数値XAと正規の1ビット時間に対する基準周期に基づく基準計数値XBとに基づいて逓倍数設定値FMULRを補正し、補正後の逓倍数設定値FMULRを検出温度Tに対応させてEEPROM3に書き込む。

【発明の詳細な説明】
【技術分野】
【0001】
本発明は、CR発振回路から出力されるクロック信号を用いたデータ受信装置および当該データ受信装置を備えたマイクロコンピュータに関する。
【背景技術】
【0002】
通信装置やマイクロコンピュータ(マイコン)では、正確で安定した基準クロックを生成するために発振子が用いられている。特許文献1、2には、水晶発振器における経年変化補正を行う技術が開示されている。しかし、発振子は比較的高価であるため、発振子を用いない発振子レスの構成が望まれている。発振子の代用回路としてCR発振回路があるが、CR発振回路は温度変化および電源電圧変化により発振周期が変化し易く、特に温度が変化する環境、特に車載機器のように温度変化の大きい環境下では基準クロックとして使用することができない。
【0003】
例えば、車載LANの通信プロトコルであるLIN(Local Interconnect Network)では、マスタノードから送信されるフレームのヘッダに0x55なるシンクバイトフィールド(Synch Byte Field)が付加されている。スレーブノードでは、この時間を基準クロックを用いて計数することにより1ビット時間(bit time)の正確な値を算出して通信レートを得るようになっている(例えば特許文献3参照)。しかし、この同期信号を検出する間に温度変化が生じて基準クロックが変動すると、正しくデータの送受信を行えない。
【0004】
これに対し、特許文献4には、温度変化に応じて発振周波数が変化した場合に、CR発振回路の時定数を変化させることなく、通信回路のデータ送信時間が一定となるように制御するマイコンが開示されている。通信回路により管理される1フレームのデータ送信時間を一定とするための通信レートCMRを決定するデータを予めメモリに記憶しておき、検出温度に応じてメモリに記憶されているデータを読み出し、決定した通信レートCMRを通信回路に設定する。また、データが不足する温度領域では、高低2点間を一次関数で補間することにより近似の通信レートCMRを得ている。
【特許文献1】特開2004−282118号公報
【特許文献2】特開2002−305442号公報
【特許文献3】特開2006−311237号公報
【特許文献4】特開2006−270917号公報
【発明の開示】
【発明が解決しようとする課題】
【0005】
特許文献4記載の補正手段では、製品ごとに事前に初期特性を測定し、その特性に対応したデータをメモリに書き込む必要がある。誤差を低減するには極力多くの温度についてデータを準備することが好ましいが、データ数が増加すると初期特性の測定工数および書込工数が増大してコストが上昇する。また、上述したように数点のデータのみを準備してその間を直線補間すると、補間される温度領域の初期特性に誤差が生じ易い。初期特性の誤差は、出荷後の実動作においては補正することができない。さらに、CR発振回路は、同じ温度条件、電圧条件であっても時間経過とともに徐々に発振周波数が変化する。特許文献4記載の補正手段では、再度データを書き換えない限り経年変化による誤差を補正できない。
【0006】
本発明は上記事情に鑑みてなされたもので、その目的は、CR発振回路に温度変化、電圧変化または経年変化が生じても正確な周波数を持つクロック信号を生成できるデータ受信装置およびマイクロコンピュータを提供することにある。
【課題を解決するための手段】
【0007】
請求項1に記載した手段によれば、温度検出手段によりCR発振器周辺の温度を検出し、その検出温度に対応した周期設定値(例えば逓倍数、分周比)を記憶手段から読み出して発振回路に与える。発振回路は、CR発振器の発振信号をその周期設定値に基づいて逓倍または分周してクロック信号を出力する。この周期設定値は、受信手段で受信する正確な通信レートを持つデータ信号の単位ビット長を基準として補正されたものなので、クロック信号の周期は上記通信レートと同程度の精度を有することになる。従って、温度変化が生じても正確な周期を持つクロック信号を生成可能となる。
【0008】
クロック信号を用いて受信手段でデータ信号を受信するとき、そのデータ信号の単位ビット長を、上記発振回路から出力されるクロック信号の計数により計測する。そして、このクロック信号の計数値(実際値)と、単位ビット長に対する基準周期に基づく基準計数値(基準値)とに基づいて、そのときの検出温度に対応した周期設定値を補正し、補正後の周期設定値を検出温度に対応させて記憶手段に書き込む。
【0009】
本手段によれば、データ信号を受信してその単位ビット長の計測を実行するごとに、その計測時の検出温度における記憶された周期設定値を最新の値に更新でき、或いは当該検出温度における記憶された周期設定値が存在しない場合(補間等により周期設定値を求めている場合)には、周期設定値を新たに生成して記憶することができる。すなわち、データ受信装置は、受信するデータ信号の同期信号などにおける単位ビット長に基づいて当該温度における周期設定値を次々に学習する機能を有している。
【0010】
従って、周期設定値の初期値の数が少ない場合や初期値に誤差が存在する場合であっても、正確な規定通信レートを持つデータ信号を受信するに従って、温度補正に用いる周期設定値を拡充することができる。また、CR発振周期に経年変化が生じても、上記更新によりその誤差をキャンセルすることができる。
【0011】
請求項2に記載した手段によれば、当該検出温度に対応する周期設定値を補正する場合、他の温度に対応する周期設定値も合わせて補正する。すなわち、補正後の周期設定値と当該検出温度に対応した補正前の周期設定値との差分を演算し、記憶手段に記憶されている各温度に対応した周期設定値に前記差分を加算する。これにより、経年変化によるずれが生じた場合に、全温度範囲の周期設定値を一度に補正することができる。また、極端に高い温度や低い温度などのように発生頻度が少ない温度に対応した周期設定値が補正されずに初期の誤差や経年変化が残存し続けることを防止できる。
【0012】
請求項3に記載した手段によれば、当該検出温度に対応する周期設定値を補正する場合、他の温度に対応する周期設定値も合わせて補正する。すなわち、補正後の周期設定値と当該検出温度に対応した補正前の周期設定値との差分を演算し、記憶手段に記憶されている各温度に対応した周期設定値に、上記差分を各温度に応じて重み付けして得た値を加算する。これにより、温度ごとに異なる初期の誤差特性や経年変化の特性まで考慮したより適切な補正ができる。
【0013】
請求項4に記載した手段によれば、補正により得られる周期設定値が所定回数だけ連続して一致した場合に、当該補正後の周期設定値を温度検出手段により検出された温度に対応させて記憶手段に書き込む。これによりフィルタ作用が得られ、誤計測などによる誤周期設定値を排除でき、周期設定値を安定させることができる。
【0014】
請求項5に記載した手段によれば、所定回数だけ連続して一致しない場合であっても、補正により得られる周期設定値が所定回数だけ連続して単調に増加または減少した場合に、当該補正後の周期設定値を温度検出手段により検出された温度に対応させて記憶手段に書き込む。これにより、温度変化により周期設定値が一定せず絶えず単調に変化する場合に、周期設定値の補正がいつまでも反映されない事態を防止することができる。
【0015】
請求項6ないし10に記載した手段は、それぞれ請求項1ないし5に記載した手段に対し、CR発振器周辺の検出温度のみならずCR発振器に供給される電源電圧にも対応させて周期設定値の記憶、読み出し、補正およびクロック周期の設定を実行する。すなわち、CR発振器に供給される電源の電圧を検出する電圧検出手段を備え、温度検出手段により検出された温度および電圧検出手段により検出された電圧に対応した周期設定値を記憶手段から読み出して発振回路に与える。補正手段は、受信手段で受信する正確な通信レートを持つデータ信号の単位ビット長を基準として周期設定値を補正し、補正後の周期設定値を検出温度および検出電圧に対応させて記憶手段に書き込む。これらの手段によれば、CR発振器周辺の温度およびCR発振器の電源電圧における周期設定値を次々に学習し、温度変動のみならず電源電圧変動が生じても、正確な周期を持つクロック信号を生成可能となる。
【0016】
請求項11に記載した手段によれば、受信手段で受信するデータ信号に含まれる所定の同期信号を検出したときに単位ビット長を計測するので、例えばマスタからの正確な規定通信レートを持つデータ信号を受信するごとに周期設定値を補正することができる。
【0017】
請求項12に記載した手段によれば、補正前後の周期設定値の差分を演算し、その差分が所定の制限値以下である場合に限り周期設定値の補正および補正後の周期設定値の記憶手段への書き込みを実行する。想定される温度変動(および電圧変動)の最大幅に対応した周期設定値の変化幅を制限値として設定すれば、それを超える誤った補正を回避することができる。
【0018】
請求項13に記載した手段によれば、マイクロコンピュータが上述した何れかのデータ受信装置を備え、そのデータ受信装置でデータ信号を受信することにより、CR発振回路で正確な周波数を持つクロック信号を生成してシステムクロック信号とすることができる。本手段によれば、発振子を搭載する必要がないためコストを下げることができる。また、データ信号を受信するごとに、クロック信号の周期を決定する周期設定値を学習(補正)し続けるので、温度変化、電圧変化または経年変化が生じても正確な周波数を持つクロック信号を生成できる。
【0019】
請求項14に記載した手段によれば、データ受信装置の補正手段が周期設定値の補正演算を実行することに替えて、上位コンピュータが補正演算を実行する。そのため、マイクロコンピュータは、データ信号を送信するデータ送信装置を備え、データ受信装置の計測手段によるクロック信号の計数値と記憶手段から読み出された周期設定値とをデータ送信装置により上位コンピュータに送信する。上位コンピュータは、クロック信号の計数値とデータ信号の単位ビット長に対する基準周期に基づく基準計数値とに基づいて周期設定値を補正し、マイクロコンピュータに送信する。本手段によれば、発振子レスであって小規模で安価なマイクロコンピュータの処理負担を軽減でき、演算処理能力の不足を補うことができる。
【発明を実施するための最良の形態】
【0020】
(第1の実施形態)
以下、本発明の第1の実施形態について図1ないし図4を参照しながら説明する。
図1は、車両のECU(Electronic Control Unit)に搭載されているワンチップマイクロコンピュータの電気的構成を示す機能ブロック図である。このマイコン1は、CPU2、EEPROM3(記憶手段に相当)、RAM4、ROM5、A/D変換器6、例えばUART(Universal Asynchronous Receiver/Transmitter)などの通信回路7(受信手段に相当)、CR発振回路8および温度検出回路9(温度検出手段に相当)を備えている。温度検出回路9以外の回路は、アドレスバス10およびデータバス11を介してCPU2に接続されている。CPU2は、本発明でいうクロック周期設定手段、計測手段および補正手段に相当する。これらの各回路には、電源線14とグランド15を通して電源(電圧Vcc)が供給されている。
【0021】
CR発振回路8は、CR発振器12およびPLL(Phase Locked Loop)回路13から構成されている。PLL回路13は、CR発振器12の発振信号を逓倍数設定値FMULRに基づいて逓倍し、さらに分周比設定値FDIVRに基づいて分周してクロック信号CLKを生成し出力する。逓倍数設定値FMULRおよび分周比設定値FDIVRは、本発明でいう周期設定値に相当し、それぞれCR発振回路8内のレジスタに格納される。
【0022】
クロック信号CLKは、マイコン1のシステムクロックとしてCPU2、A/D変換器6、通信回路7などに供給される。以下では周期設定値として分周比設定値FDIVRを一定とし逓倍数設定値FMULRを補正する場合について説明するが、逓倍数設定値FMULRを一定とし分周比設定値FDIVRを補正し、或いは逓倍数設定値FMULRと分周比設定値FDIVRの両者を補正してもよい。
【0023】
温度検出回路9は、電源線14とグランド15との間に接続された抵抗16とダイオード17〜19との直列回路により構成されている。抵抗16とダイオード17との接続ノードは、A/D変換器6の入力端子に接続されている。周知のようにダイオードの順方向電圧Vfは、−2.0〜−2.5mV/℃の温度特性を有している。A/D変換器6を介してダイオード17〜19の順方向電圧3・Vfを入力することにより、A/D変換値に対応して温度を検出することができる。この温度検出回路9は、CR発振器12(またはその周辺)の温度を検出することができるように、半導体基板上でCR発振器12に近接して形成されている。
【0024】
通信回路7は、車載LANのシリアル通信プロトコルであるLINのスレーブノードとして機能する。通信回路7がフレーム(データ信号に相当)を受信するときの各ビットの取込タイミングおよび通信回路7が送信するときの通信レート(ボーレート)は、CR発振回路8から出力されるクロック信号CLKの周波数に基づいて定まるため、クロック信号CLKの周波数(周期)が変動すると送受信に支障が生じる。
【0025】
LIN仕様2.0によれば、マスタノードの発振周波数の許容誤差(Oscillator Tolerance)は±0.5%未満であり、スレーブノードの発振周波数の許容誤差は±1.5%未満である。また、スレーブノードにおける同期前の規定周波数からのずれは±14%未満である。何らの補正手段も持たない一般のCR発振回路を用いて、例えば−40℃から+125℃の広範な温度範囲で発振周波数を±1.5%未満の変動に保つことは極めて難しい。
【0026】
そこで、本実施形態では、CPU2は、EEPROM3に逓倍数設定値FMULRと検出温度T(実際にはA/D変換値)とを対応付けて記憶し、EEPROM3からその時々の検出温度T(A/D変換値)に対応した逓倍数設定値FMULRを読み出してそれをCR発振回路8内のレジスタに与え、PLL回路13の逓倍数を制御する。上述したように、本実施形態では分周比設定値FDIVRを一定としている。
【0027】
さらに、CPU2は、マスタノードから送信されるフレームのうちシンクバイトフィールド(Synch Byte Field)を受信するごとに、クロック信号CLKを計数することにより1ビット時間(単位ビット長に相当)を計測し、その計数値XAと1ビット時間に対する基準周期に基づく基準計数値XB(=1ビット時間/基準周期)とに基づいて、検出温度Tに対応する逓倍数設定値FMULRを補正し、当該補正後の逓倍数設定値FMULRを当該検出温度T(A/D変換値)に対応させてEEPROM3に書き込む。
【0028】
以下、本実施形態の作用を図2ないし図4を参照しながら具体的に説明する。
まず、マイコン1を製品として出荷する前の検査工程で、逓倍数設定値FMULRの初期値を設定しEEPROM3に書き込む。すなわち、マイコン1を所定の温度Tの環境下で動作させ、クロック信号CLKが規定周波数(例えば4MHz)に一致するように逓倍数設定値FMULRを決定する。そして、A/D変換器6が出力するA/D変換値(検出温度Tと等価)と上記決定した逓倍数設定値FMULRとを対応させてEEPROM3に書き込む。これを複数の温度例えば−40℃、25℃、125℃の3点で実行する。
【0029】
また、製品ごとに逓倍数設定値FMULRを決定して書き込むことに替えて、設計値または当該製品ロットの代表値等に基づいて逓倍数設定値FMULRを算出し、それをA/D変換値(検出温度T)に対応させてEEPROM3に書き込んでもよい。後述するように、マイコン1は、逓倍数設定値FMULRに多少の誤差が存在しても、その後の学習処理により誤差をキャンセルすることができる。
【0030】
図2は、製品出荷後のマイコン1が実行するCR発振周期の補正処理を示すフローチャートである。CPU2は、ステップP1においてA/D変換器6からA/D変換値を入力する。このA/D変換値は、CR発振器12の温度Tに対応している。続いてステップP2に移行し、EEPROM3からA/D変換値(つまり検出温度T)に対応した逓倍数設定値FMULRを読み出し、ステップP3でそれをCR発振回路8内のレジスタに設定する。
【0031】
A/D変換値に対応した逓倍数設定値FMULRが存在しない場合には、例えば当該A/D変換値を挟み込むように存在する2つのA/D変換値に対応した逓倍数設定値FMULRに基づいて一次関数で補間して逓倍数設定値FMULRを求めればよい。PLL回路13は、レジスタFMULRの値に従って原発振信号を逓倍し、その後一定の分周比設定値FDIVRに従って分周してクロック信号CLKを出力する。
【0032】
CPU2は、ステップP4においてLINのマスタノードから送信された同期信号を検出したか否かを判断する。図3は、LINのフレーム構成を示している。マスタノードから送信されたフレームのヘッダは、新たなフレームの開始を示す13ビット長のブレークフィールド、0x55のデータ値を持つシンクバイトフィールドおよび識別フィールドから構成されている。通信回路7がブレークフィールドとシンクバイトフィールドを受信した時点でそれがヘッダであることを認識できる。
【0033】
通信回路7が同期信号であるシンクバイトフィールドを含むヘッダを受信していない期間は、ステップP1ないしP4の処理を繰り返し実行する。この期間は、逓倍数設定値FMULRの補正がなされず、EEPROM3に既に記憶されている逓倍数設定値FMULRを用いてクロック信号CLKが生成される。
【0034】
一方、通信回路7がシンクバイトフィールドを受信するとステップP5に移行し、1ビット長を計測する。具体的には、シンクバイトフィールドのスタートビットと第7ビットの両ダウンエッジの間の時間8Tbitをクロック信号CLKを計数することにより計測し、その計数値を8で除すことにより1ビット時間の計数値XAを得る。例えば、マスタノードが9600bpsの正確な通信レートで送信した場合、クロック信号CLKが正確に4MHzであれば計数値は416となる。この1ビット時間(1/9600=104.2μs)に対する基準周期(1/4MHz=0.25μs)に基づく計数値を基準計数値XBとする。
【0035】
CPU2は、ステップP6に移行し、以下の(1)式により補正後の逓倍数設定値FMULRを演算し、それをPLL回路13のレジスタに設定する。設定後、PLL回路13は補正後の新たな逓倍数設定値FMULRに従って原発振信号を逓倍する。
補正後のFMULR=現在のFMULR×XB/XA …(1)
【0036】
その後、ステップP7に移行し、補正後の逓倍数設定値FMULRをA/D変換値(検出温度T)に対応させてEEPROM3に書き込む。当該検出温度Tに対応する逓倍数設定値FMULRが既にEEPROM3に書き込まれている場合には周期設定値の更新(上書き)となり、書き込まれていない場合(補正前の逓倍数設定値FMULRを補間等により求めた場合)には、逓倍数設定値FMULRを新たにEEPROM3に書き込むことになる。以上のステップP1〜P7の処理は、繰り返し実行される。
【0037】
図4は、温度変化に対するCR発振器12の発振周波数(黒丸)と逓倍数設定値FMULR(白丸)の特性を示している。(a)は補正前の特性で、(b)は検出温度TでCR発振器12の発振周波数がずれたと仮定した場合の逓倍数設定値FMULRの補正方法を示している。ただし、実際には発振周波数が検出温度Tだけで大きくずれることはなく、(b)に示す場合には少なくとも検出温度Tに近い温度範囲においても発振周波数がずれている。
【0038】
CR発振器12は、一般に温度上昇とともに発振周波数が低下する特性を持っているため、逓倍数設定値FMULRは温度上昇とともに増加する特性となる。CPU2は、同期信号の検出を条件にステップP5〜P7を実行するごとに、そのときの検出温度Tに対応した逓倍数設定値FMULRを補正する。図4(b)に示す場合、CR発振器12の発振周波数ひいてはクロック信号CLKの周波数が低下したため計数値XAが減少し、当該検出温度Tにおける逓倍数設定値FMULRを増加させるような補正がなされている。
【0039】
以上説明したように、本実施形態によればCR発振器12の温度を示すA/D変換値とCR発振回路8の逓倍数を決める逓倍数設定値FMULRとを対応付けてEEPROM3に記憶する。そして、マイコン1の動作中は、A/D変換値(検出温度T)に応じた逓倍数設定値FMULRを読み出してCR発振回路8のレジスタに設定するので、温度変化によりCR発振器12の発振周波数がずれてもクロック信号CLKの周波数を一定化することができる。
【0040】
CPU2は、マスタノードから送られてくるフレームの同期信号を受信するごとに、クロック信号CLKを計数して1ビット長を計測する。LINでは、マスタノードから正確な通信レートでフレームが送信されてくるので、CPU2は、上記1ビット長のクロック信号CLKによる計数値XAと正規の1ビット時間を基準周期で除して得られる基準計数値XBとに基づいて逓倍数設定値FMULRを補正し、補正後の逓倍数設定値FMULRを検出温度Tに対応させてEEPROM3に書き込む。
【0041】
これにより、マスタノードからの同期信号を受信するごとに、その時のCR発振器12の温度に対応した逓倍数設定値FMULRを最新の値に更新できる。また、当該温度に対応した逓倍数設定値FMULRが記憶されていない場合には、新たに生成して記憶することができる。つまり、マイコン1は、CR発振回路8の温度に対応した逓倍数設定値FMULRを次々に学習することができる。マイコン1は、LINの通信波形の波形を用いて補正を行うので、別に基準信号を準備する必要がない。
【0042】
逓倍数設定値FMULRの初期値の数が少ない場合や初期値に誤差が存在する場合であっても、正確な規定通信レートを持つ同期信号を受信するに従って、温度補正に用いる逓倍数設定値FMULRを拡充することができる。また、CR発振器12に経年変化が生じた場合でも、逓倍数設定値FMULRを補正してクロック信号CLKの周波数を正確な値に一定に保つことができる。さらに、長時間に亘りマスタノードからの同期信号を受信することがなくても、その後受信すれば正しく補正することができる。これにより、ビットずれによる通信エラーを生ずることなくデータの送受信を行うことができる。
【0043】
さらに、温度変化または経年変化にかかわらずクロック信号CLKの周波数が一定となるため、クロック信号CLKをシステムクロックとして用いることができる。その結果、発振子が不要となり、発振子を用いてシステムクロックを生成していた従来のマイコンに比べ低コストとなる。
【0044】
(第2の実施形態)
次に、本発明の第2の実施形態について図5および図6を参照しながら説明する。
本実施形態は、第1の実施形態に対しEEPROM3に記憶されている逓倍数設定値FMULRの補正方法が異なる。図5は、CR発振周期の補正処理を示すフローチャートであり、図2と同一の処理ステップには同一のステップ番号を付している。ステップP11では、次の(2)式により、補正後の逓倍数設定値FMULRと現在の(補正前の)逓倍数設定値FMULRとの差分ΔFMULRを求める。そして、EEPROM3に記憶されている全ての逓倍数設定値FMULRに対しそれぞれ差分ΔFMULRを加算する。
ΔFMULR=補正後のFMULR−現在のFMULR …(2)
【0045】
図6は、図4と同様に温度変動に対するCR発振器12の発振周波数(黒丸)と逓倍数設定値FMULR(白丸)の変化特性を示している。図6(b)に示すように、1つの検出温度Tにおける補正量ΔFMULRを、EEPROM3に記憶されている各温度に対応する全ての逓倍数設定値FMULRに一様に反映させている。この補正方法によれば、CR発振器12に経年変化が生じた場合に、全ての逓倍数設定値FMULRを一度に補正することができる。また、極端に高い温度や低い温度などのように発生頻度が少ない温度に対応した逓倍数設定値FMULRが補正されずに放置される事態を防ぐことができる。
【0046】
なお、上述した補正方法に替えて、EEPROM3に記憶されている全ての逓倍数設定値FMULRに対し、それぞれ差分ΔFMULRを各温度に応じて重み付けして得た値を加算してもよい。経年変化による発振周波数のずれが温度に依存する場合には、そのずれの傾向に合わせた重み付けをすることにより一層正確な補正を行うことができる。
【0047】
(第3の実施形態)
次に、本発明の第3の実施形態について図7を参照しながら説明する。
本実施形態も、第1の実施形態に対しEEPROM3に記憶されている逓倍数設定値FMULRの補正方法が異なる。図7は、CR発振周期の補正処理を示すフローチャートであり、図2と同一の処理ステップには同一のステップ番号を付している。
【0048】
CPU2は、ステップP21において、(2)式により算出した差分ΔFMULRが3回連続して一致したか否かを判断する。ここで、一致している場合(YES)にはステップP7に移行し、補正後の逓倍数設定値FMULRをA/D変換値(検出温度T)に対応させてEEPROM3に書き込む。ただし、差分ΔFMULRが0の場合であって、既にEEPROM3に当該検出温度Tに対応した逓倍数設定値FMULRが書き込まれている場合には、書き込みは不要である。
【0049】
一方、一致していない(NO)場合にはステップP22に移行し、補正後の逓倍数設定値FMULRが所定回数(例えば3回)連続して単調に増加または単調に減少しているか否かを判断する。単調に増減変化している場合(YES)にはステップP7に移行し、単調に変化していない場合(NO)にはステップP1に戻る。
【0050】
ステップP21を設けることによりフィルタ作用が得られ、計測誤差などによる逓倍数設定値FMULRの誤書き換えを防止できる。また、ステップP22を設けることにより、急激な温度変化が生じた場合に上記フィルタ作用により逓倍数設定値FMULRの書き換えが妨げられることまたは遅れることを防止できる。
【0051】
(第4の実施形態)
次に、本発明の第4の実施形態について図8を参照しながら説明する。
図8は、CR発振周期の補正処理を示すフローチャートである。図2と同一の処理ステップには同一のステップ番号を付し、説明を省略する。ステップP6で補正後の逓倍数設定値FMULRを演算した後ステップP31に移行し、(2)式を用いて補正後の逓倍数設定値FMULRと現在の(補正前の)逓倍数設定値FMULRとの差分ΔFMULRを求め、その絶対値|ΔFMULR|を得る。
【0052】
続いて、ステップP32において、差分|ΔFMULR|と制限値Dmとを比較する。差分|ΔFMULR|が制限値Dm以下である場合にはステップP7に移行し、補正後の逓倍数設定値FMULRをEEPROM3に書き込む。一方、差分|ΔFMULR|が制限値Dmより大きい場合には、その補正後の逓倍数設定値FMULRを破棄し(PLL回路13のレジスタを補正前の値に戻す)、ステップP7を飛ばしてステップP1に戻る。想定される温度変動の最大幅に対応した逓倍数設定値FMULRの変化幅を制限値Dmとして設定すれば、それを超える誤った補正を回避することができる。
【0053】
(第5の実施形態)
次に、本発明の第5の実施形態について図9および図10を参照しながら説明する。
本実施形態は、第1の実施形態の構成を基にして、さらにCR発振回路8(CR発振器12)に印加される電源電圧Vccの変化によりCR発振器12の発振周波数がずれても、クロック信号CLKの周波数を一定化するものである。第1の実施形態と同様に、分周比設定値FDIVRを一定とし逓倍数設定値FMULRを補正する場合について説明する。
【0054】
図9は、マイコンの電気的構成を示す機能ブロック図であり、図1と同一構成部分には同一符号を付している。マイコン21は、分圧などにより電源電圧Vccを検出する電圧検出回路22(電圧検出手段に相当)を備えており、その検出した電圧はA/D変換器6に入力されている。
【0055】
CPU2は、EEPROM3に逓倍数設定値FMULRと検出温度T(実際にはA/D変換値)および検出電圧Vcc(実際にはA/D変換値)とを対応付けて記憶し、EEPROM3からその時々の検出温度T(A/D変換値)および検出電圧Vcc(A/D変換値)に対応した逓倍数設定値FMULRを読み出してそれをCR発振回路8内のレジスタに与え、PLL回路13の逓倍数を制御する。
【0056】
さらに、CPU2は、マスタノードから送信されるフレームのうちシンクバイトフィールドを受信するごとに、検出温度Tおよび検出電圧Vccに対応する逓倍数設定値FMULRを補正し、当該補正後の逓倍数設定値FMULRを当該検出温度T(A/D変換値)および検出電圧Vcc(A/D変換値)に対応させてEEPROM3に書き込む。
【0057】
マイコン21を製品として出荷する前の検査工程では、逓倍数設定値FMULRの初期値を設定しEEPROM3に書き込む。すなわち、マイコン1を所定の温度Tおよび電源電圧Vccの環境下で動作させ、クロック信号CLKが規定周波数(例えば4MHz)に一致するように逓倍数設定値FMULRを決定する。そして、A/D変換器6が出力するA/D変換値(検出温度T、検出電圧Vccと等価)と上記決定した逓倍数設定値FMULRとを対応させてEEPROM3に書き込む。これを複数の温度(例えば−40℃、25℃、125℃)および複数の電圧(例えば4.95V、5.00V、5.05V)で実行し、組み合わせとして9個の逓倍数設定値FMULRを得る。なお、設計値または代表値等に基づいて逓倍数設定値FMULRを決定してもよい。
【0058】
図10は、マイコン21が実行するCR発振周期の補正処理を示すフローチャートであり、図2に示す処理と同一の処理には同一のステップ番号を付している。CPU2は、ステップP41において、CR発振器12の温度Tに対応するA/D変換値と、CR発振器12に供給される電源電圧Vccに対応するA/D変換値とを入力する。続いてステップP42に移行し、EEPROM3からA/D変換値(つまり検出温度Tと検出電圧Vcc)に対応した逓倍数設定値FMULRを読み出し、ステップP3でそれをCR発振回路8内のレジスタに設定する。その後、既述したステップP3〜P6を経て補正後の逓倍数設定値FMULRを演算し、ステップP47で補正後の逓倍数設定値FMULRをA/D変換値(検出温度T、検出電圧Vcc)に対応させてEEPROM3に書き込む。
【0059】
本実施形態によれば、第1の実施形態と同様の効果が得られる他、温度変化のみならず電源電圧変化によりCR発振器12の発振周波数がずれても、クロック信号CLKの周波数を一定化することができる。
【0060】
(第6の実施形態)
次に、本発明の第6の実施形態について図11および図12を参照しながら説明する。
図11は、車両用アクチュエータの制御システムの構成を示している。アクチュエータ31は、モータ32と該モータ32を制御するマイコン33とを搭載している。上位に位置するECU34(上位コンピュータに相当)および複数(図11では3個)のアクチュエータ31は、バス35により相互接続されてLINによる通信が可能となっている。ここで、ECU34がマスタノードであり、アクチュエータ31がスレーブノードである。
【0061】
アクチュエータ31のマイコン33は、上述したマイコン1またはマイコン21と同様の電気的構成を備えているが、CPU2が実行する処理内容が一部異なっている。以下では、マイコン1と同様の電気的構成を備えているものについて説明する。なお、通信回路7は、データの送信も可能であって、本発明でいう受信手段およびデータ送信装置に相当する。
【0062】
図12は、CR発振周期の補正処理を示すフローチャートである。CPU2は、ステップP5で1ビット時間の計数値XAを得た後、自ら逓倍数設定値FMULRの補正演算をするのではなく、ステップP51で現在の(補正前の)逓倍数設定値FMULR、計数値XAおよびA/D変換値(検出温度T)をECU34に送信する。
【0063】
ECU34は、アクチュエータ31からこれらのデータを受信すると、アクチュエータ31のマイコン33に代わって(1)式を用いて逓倍数設定値FMULRの補正演算をし、その演算した値と書き換えるべきデータ(記憶すべきEEPROM3のアドレス)とを含む書き換え指令をアクチュエータ31に送信する。1ビット時間の計数値XAは、ECU34が自ら有している。マイコン33は、ステップP52で書き換え指令を受信し、受信した補正後の逓倍数設定値FMULRをPLL回路13のレジスタに設定する。続くステップP7で、受信した補正後の逓倍数設定値FMULRをA/D変換値(検出温度T)に対応させてEEPROM3に書き込む。
【0064】
アクチュエータ31のマイコン33は、発振子レスとすることで小規模で安価な構成とした点に特に有用性があるが、その分だけ処理能力を切り詰めた設計となっている。本実施形態によれば、マイコン33の処理負担を軽減することができるので、マイコン33の持つ演算処理能力の不足を補うことができる。
【0065】
(その他の実施形態)
なお、本発明は上記し且つ図面に示す各実施形態に限定されるものではなく、例えば以下のように変形または拡張が可能である。
第5の実施形態に対しても第2の実施形態と同様の変形が可能である。すなわち、CPU2は、(2)式により差分ΔFMULRを求め、EEPROM3に記憶されている各温度および各電源電圧に対応した全ての逓倍数設定値FMULRに対しそれぞれ差分ΔFMULRを加算してもよい。また、EEPROM3に記憶されている各温度および各電源電圧に対応した全ての逓倍数設定値FMULRに対し、それぞれ差分ΔFMULRを各温度および電源電圧に応じて重み付けして得た値を加算してもよい。
【0066】
第5の実施形態に対しても第3の実施形態と同様の変形が可能である。すなわち、CPU2は、差分ΔFMULRが所定回数だけ連続して一致した場合に、補正後の逓倍数設定値FMULRをA/D変換値(検出温度Tと検出電圧Vcc)に対応させてEEPROM3に書き込むようにしてもよい。一致していない場合でも、補正後の逓倍数設定値FMULRが所定回数だけ連続して単調に増加または単調に減少している場合には、補正後の逓倍数設定値FMULRをA/D変換値(検出温度Tと検出電圧Vcc)に対応させてEEPROM3に書き込むようにしてもよい。
【0067】
第5の実施形態に対して、第2の実施形態と同様の変形および第3の実施形態と同様の変形を同時に施してもよい。
発振回路と、CR発振器に供給される電源の電圧を検出する電圧検出手段と、周期設定値を検出電圧に関連付けて記憶する記憶手段と、検出電圧に対応した周期設定値を記憶手段から読み出して発振回路に与えるクロック周期設定手段と、受信手段と、受信するデータ信号の単位ビット長をクロック信号を計数することにより計測する計測手段と、計数値と基準計数値とに基づいて検出電圧に対応した周期設定値を補正するとともに、当該補正後の周期設定値を当該検出電圧に対応させて記憶手段に書き込む補正手段とを備えた構成としてもよい。
【0068】
PLL回路13のレジスタに逓倍数設定値FMULRおよび分周比設定値FDIVRの初期値を設定しておけば、EEPROM3への初期値の書き込みを不要とすることができる。この場合も、マイコン1がマスタノードからの同期信号を受信するごとに、その時のCR発振器12の温度に対応した逓倍数設定値FMULRが新たなデータとしてEEPROM3に記憶される。
【0069】
逓倍数設定値FMULRと分周比設定値FDIVRとを用いてクロック信号CLKの周波数を一定化する場合には、分周比設定値FDIVRも併せて検出温度或いは検出温度と電源電圧に対応させてEEPROM3に書き込めばよい。
受信手段はLINを用いて送受信する通信回路7に限られず、他の通信ネットワーク、通信形式でデータ信号を受信するものであってもよい。
【0070】
シンクバイトフィールドのスタートビットと第7ビットの両ダウンエッジの間の時間8Tbitを計数して計数値XAとし、この8Tbitに対する基準周期に基づく計数値を基準計数値XBとしてもよい。8Tbitを計測することは、1ビット時間Tbitを計測することと実質的に等価である。本発明でいう単位ビット長には、1ビット長に限らず所定単位を構成するビット長(2ビット長、…、8ビット長、…)も含まれる。
【0071】
第2の実施形態と第3の実施形態とを組み合わせることも可能である。例えば、差分ΔFMULRが3回連続して一致した場合に、EEPROM3に記憶されている全ての逓倍数設定値FMULRに対しそれぞれ差分ΔFMULRを加算する。補正後の逓倍数設定値FMULRが所定回数連続して単調に増加または減少している場合も同様である。
【0072】
抵抗16に替えて定電流回路を採用すると電源電圧Vccが変動する場合でも正確な温度検出が可能となる。温度検出手段は、温度検出回路9に限られず、温度を検出可能に構成される回路であればどのようなものであってもよい。
【図面の簡単な説明】
【0073】
【図1】本発明の第1の実施形態を示すマイクロコンピュータの電気的な機能ブロック図
【図2】CR発振周期の補正処理を示すフローチャート
【図3】LINのフレーム構成を示す図
【図4】CR発振器の発振周波数と逓倍数設定値FMULRの温度特性図
【図5】本発明の第2の実施形態を示す図2相当図
【図6】図4相当図
【図7】本発明の第3の実施形態を示す図2相当図
【図8】本発明の第4の実施形態を示す図2相当図
【図9】本発明の第5の実施形態を示す図1相当図
【図10】図2相当図
【図11】本発明の第6の実施形態を示す車両用アクチュエータの制御システムの構成図
【図12】図2相当図
【符号の説明】
【0074】
1、21、33はマイクロコンピュータ、2はCPU(クロック周期設定手段、計測手段、補正手段)、3はEEPROM(記憶手段)、7は通信回路(受信手段、データ送信装置)、8はCR発振回路、9は温度検出回路(温度検出手段)、12はCR発振器、22は電圧検出回路(電圧検出手段)、34はECU(上位コンピュータ)である。

【特許請求の範囲】
【請求項1】
CR発振器の発振信号を周期設定値に基づいて逓倍または分周してクロック信号を出力する発振回路と、
前記CR発振器周辺の温度を検出する温度検出手段と、
前記周期設定値を前記温度検出手段により検出された温度に関連付けて記憶する記憶手段と、
前記温度検出手段により検出された温度に対応した周期設定値を前記記憶手段から読み出して前記発振回路に与えるクロック周期設定手段と、
前記クロック信号を用いてデータ信号を受信する受信手段と、
前記受信手段で受信するデータ信号の単位ビット長を前記クロック信号を計数することにより計測する計測手段と、
前記計測手段による前記クロック信号の計数値と前記単位ビット長に対する基準周期に基づく基準計数値とに基づいて、前記温度検出手段により検出された温度に対応した周期設定値を補正するとともに、当該補正後の周期設定値を当該検出温度に対応させて前記記憶手段に書き込む補正手段とを備えていることを特徴とするデータ受信装置。
【請求項2】
前記補正手段は、前記補正後の周期設定値と当該検出温度に対応した補正前の周期設定値との差分を演算し、前記記憶手段に記憶されている各温度に対応した周期設定値に前記差分を加算することを特徴とする請求項1記載のデータ受信装置。
【請求項3】
前記補正手段は、前記補正後の周期設定値と当該検出温度に対応した補正前の周期設定値との差分を演算し、前記記憶手段に記憶されている各温度に対応した周期設定値に、前記差分を各温度に応じて重み付けして得た値を加算することを特徴とする請求項1記載のデータ受信装置。
【請求項4】
前記補正手段は、補正により得られる周期設定値が所定回数だけ連続して一致した場合に、当該補正後の周期設定値を前記温度検出手段により検出された温度に対応させて前記記憶手段に書き込むことを特徴とする請求項1記載のデータ受信装置。
【請求項5】
前記補正手段は、補正により得られる周期設定値が所定回数だけ連続して一致しない場合であっても、補正により得られる周期設定値が所定回数だけ連続して単調に増加または減少した場合に、当該補正後の周期設定値を前記温度検出手段により検出された温度に対応させて前記記憶手段に書き込むことを特徴とする請求項4記載のデータ受信装置。
【請求項6】
CR発振器の発振信号を周期設定値に基づいて逓倍または分周してクロック信号を出力する発振回路と、
前記CR発振器周辺の温度を検出する温度検出手段と、
前記CR発振器に供給される電源の電圧を検出する電圧検出手段と、
前記周期設定値を前記温度検出手段により検出された温度と前記電圧検出手段により検出された電圧とに関連付けて記憶する記憶手段と、
前記温度検出手段により検出された温度および前記電圧検出手段により検出された電圧に対応した周期設定値を前記記憶手段から読み出して前記発振回路に与えるクロック周期設定手段と、
前記クロック信号を用いてデータ信号を受信する受信手段と、
前記受信手段で受信するデータ信号の単位ビット長を前記クロック信号を計数することにより計測する計測手段と、
前記計測手段による前記クロック信号の計数値と前記単位ビット長に対する基準周期に基づく基準計数値とに基づいて、前記温度検出手段により検出された温度および前記電圧検出手段により検出された電圧に対応した周期設定値を補正するとともに、当該補正後の周期設定値を当該検出温度および検出電圧に対応させて前記記憶手段に書き込む補正手段とを備えていることを特徴とするデータ受信装置。
【請求項7】
前記補正手段は、前記補正後の周期設定値と当該検出温度および検出電圧に対応した補正前の周期設定値との差分を演算し、前記記憶手段に記憶されている各温度および各電圧に対応した周期設定値に前記差分を加算することを特徴とする請求項6記載のデータ受信装置。
【請求項8】
前記補正手段は、前記補正後の周期設定値と当該検出温度および検出電圧に対応した補正前の周期設定値との差分を演算し、前記記憶手段に記憶されている各温度および電圧に対応した周期設定値に、前記差分を各温度および電圧に応じて重み付けして得た値を加算することを特徴とする請求項6記載のデータ受信装置。
【請求項9】
前記補正手段は、補正により得られる周期設定値が所定回数だけ連続して一致した場合に、当該補正後の周期設定値を前記温度検出手段により検出された温度および前記電圧検出手段により検出された電圧に対応させて前記記憶手段に書き込むことを特徴とする請求項6記載のデータ受信装置。
【請求項10】
前記補正手段は、補正により得られる周期設定値が所定回数だけ連続して一致しない場合であっても、補正により得られる周期設定値が所定回数だけ連続して単調に増加または減少した場合に、当該補正後の周期設定値を前記温度検出手段により検出された温度および前記電圧検出手段により検出された電圧に対応させて前記記憶手段に書き込むことを特徴とする請求項9記載のデータ受信装置。
【請求項11】
前記計測手段は、前記受信手段で受信するデータ信号に含まれる所定の同期信号を検出したときに前記単位ビット長を計測することを特徴とする請求項1ないし10の何れかに記載のデータ受信装置。
【請求項12】
前記補正手段は、前記補正後の周期設定値と補正前の周期設定値との差分を演算し、その差分が所定の制限値以下であることを条件として前記周期設定値の補正および前記記憶手段への書き込みを実行することを特徴とする請求項1ないし11の何れかに記載のデータ受信装置。
【請求項13】
請求項1ないし12の何れかに記載のデータ受信装置を備え、前記発振回路から出力されるクロック信号をシステムクロック信号とすることを特徴とするマイクロコンピュータ。
【請求項14】
データ信号を送信するデータ送信装置を備え、
前記データ受信装置の補正手段が周期設定値の補正演算を実行することに替えて、前記データ受信装置の計測手段によるクロック信号の計数値と記憶手段から読み出された周期設定値とを前記データ送信装置により上位コンピュータに送信し、その上位コンピュータにおいて前記クロック信号の計数値とデータ信号の単位ビット長に対する基準周期に基づく基準計数値とに基づいて補正された周期設定値を受信し、この受信した補正後の周期設定値を前記発振回路に設定するとともに前記データ受信装置の記憶手段に書き込むことを特徴とする請求項13記載のマイクロコンピュータ。

【図1】
image rotate

【図2】
image rotate

【図3】
image rotate

【図4】
image rotate

【図5】
image rotate

【図6】
image rotate

【図7】
image rotate

【図8】
image rotate

【図9】
image rotate

【図10】
image rotate

【図11】
image rotate

【図12】
image rotate


【公開番号】特開2009−111967(P2009−111967A)
【公開日】平成21年5月21日(2009.5.21)
【国際特許分類】
【出願番号】特願2008−151618(P2008−151618)
【出願日】平成20年6月10日(2008.6.10)
【出願人】(000004260)株式会社デンソー (27,639)
【Fターム(参考)】