説明

発振周波数補正装置

【課題】同期信号の検出が困難なときにも正確な発振周波数のクロック信号を生成できるようにした発振周波数補正装置を提供する。
【解決手段】電源投入時の劣化検出タイミングにおいて、定電流源23から抵抗器22に通電して得られたA/D変換器6のAD変換値(抵抗器22の端子電圧V)に基づいて、CPU2が逓倍数設定値FMULRを補正する。この場合、定電流源20を用いることなく定電流源23が作動して抵抗器22に通電する。CPU2は、抵抗器22の端子電圧を測定することでCR発振器14内の抵抗器R1の抵抗値の経年変化を反映し、この変化に基づいてCR発振回路8のクロック信号CLKの逓倍数設定値FMULRを補正する。

【発明の詳細な説明】
【技術分野】
【0001】
本発明は、CR発振回路の発振周波数を補正する発振周波数補正装置に関する。
【背景技術】
【0002】
一般に、基準クロックを生成するためには発振子が用いられる。例えば水晶発振子は高価であるため水晶発振子を用いないCR発振回路が各種用途に用いられる。CR発振器は、その発振周波数が環境温度変化および電源電圧変化に応じて変化し易く、特に温度が多様に変化する環境下(特に車載機器内)では基準クロックとして適用しにくい。
【0003】
例えば、車載LANの通信プロコルであるLIN(Local Interconnect Network)では、マスタノードから送信されるフレームのヘッダに0x55なるシンクバイトフィールド(Synch Field)が付加されている。スレーブノードでは、基準クロックを用いてシンクバイトフィールドの時間を計数することによって1ビット時間の正確な値を算出して通信レートを得る。このとき、基準クロックを用いて1ビット時間を算出するが、発振周波数が変化しやすいCR発振器を用いると誤差が生じやすい。
【0004】
これに対し、特許文献1記載の技術では、温度変化に応じて発振周波数が変化した場合、CR発振回路の時定数を変化させることなく、通信回路のデータ送信時間が一定となるよう制御するマイコンが開示されている。このマイコンは、通信回路が管理する1フレームのデータ送信時間を一定とするため、通信レートCMRを決定するデータを読出し、決定した通信レートCMRを通信回路に設定する。また、データが不足する温度領域では、高低2点間を一次関数で補間することで近似の通信レートCMRを得ている。
【0005】
しかしながら、この特許文献1記載のCR発振器では、同じ温度条件、電源電圧条件であっても時間経過とともに徐々に発振周波数が変化してしまい、発振周波数の経年変化に対応できない。そこで、CR発振周波数の経年変化に対応するための技術が提案されている(特許文献2参照)。この特許文献2の技術では、通信処理に使用される同期信号を利用して正しい周波数を算出することで発振周波数の経年変化への対応を図っている。
【先行技術文献】
【特許文献】
【0006】
【特許文献1】特開2006−270917号公報
【特許文献2】特開2009−111967号公報
【発明の概要】
【発明が解決しようとする課題】
【0007】
しかしながら、特許文献2の技術では、何らかの影響により通信が遮断された場合等において、同期信号の検出ができなくなったときには正しい周波数を算出することができず、発振周波数の経年変化に対応できなくなる。
【0008】
本発明は、上記事情に鑑みてなされたもので、その目的は、同期信号の検出が困難なときにも正確な発振周波数のクロック信号を生成できるようにした発振周波数補正装置を提供することにある。
【課題を解決するための手段】
【0009】
請求項1記載の発明によれば、CR発振器は第1抵抗器の抵抗値に応じた原発振信号を出力するが、CR発振回路はこの原発振信号を周期設定値に基づいて逓倍/分周してクロック信号を出力する。このためクロック信号を所望の周波数で出力できる。この場合、第2抵抗器はCR発振器内に第1抵抗器と同種の抵抗により構成され、通常動作時には第1定電流源から第2抵抗器に定電流を通電するため、第1抵抗器の経年劣化に伴う抵抗値変化が第2抵抗器の抵抗値に反映されることになる。
【0010】
測定手段は、劣化検出タイミングには第2定電流源から第2抵抗器に定電流を通電するように切替えて第2抵抗器の電圧を測定するため、第1抵抗器の抵抗値の経年変化に対応した第2抵抗器の電圧を測定できる。この場合、第1定電流源を用いず第2定電流源を用いて第2抵抗器の電圧を測定しているため、第1定電流源の電流供給能力が経年変化していたとしても、その影響を受けることなく第2抵抗器の電圧を測定できる。
【0011】
補正手段は、測定手段の測定電圧に基づいてCR発振回路の周期設定値を補正するため、CR発振器の第1抵抗器の経年変化に伴う抵抗値変化を反映してCR発振回路のクロック信号の発振周波数を補正できる。これにより、同期信号の検出が困難なときにも正確な発振周波数のクロック信号を生成して出力できる。
【0012】
請求項2記載の発明によれば、第1定電流源および第2定電流源は、CR発振器内の第1抵抗器に通電する平均電流値とほぼ同一電流を第2抵抗器に通電可能に構成されているため、CR発振器内の第1抵抗器の劣化状態を忠実に再現できる。
【0013】
請求項3記載の発明によれば、CR発振器は第1抵抗器に応じた原発振信号を出力するが、CR発振回路はこの原発振信号を周期設定値に基づいて逓倍/分周してクロック信号を出力するためクロック信号を所望の周波数で出力できる。定電流源は、CR発振器内の第1抵抗器にスイッチを介して直列接続されており、通常動作時にはCR発振器が通常動作するようにスイッチが切替えられ、劣化検出タイミングには定電流源から第1抵抗器に定電流を通電するようにスイッチが切替えられる。測定手段は、その劣化検出タイミングにて第1抵抗器の電圧を測定するため、第1抵抗器の抵抗値の経年変化に伴う第1抵抗器の電圧を測定できる。
【0014】
したがって、補正手段が、測定手段の測定電圧に基づいてCR発振回路の周期設定値を補正すると、CR発振器の第1抵抗器の経年変化に伴う抵抗値の変化を反映してCR発振回路のクロック信号の発振周波数を補正できる。これにより、同期信号の検出が困難なときにも正確な発振周波数でクロック信号を出力できる。
【0015】
請求項4、5記載の発明のように、測定手段を、劣化検出タイミングを電源投入時点として第2抵抗器、第1抵抗器の電圧を測定するように構成すると良い。また、請求項6、7記載の発明のように、第1抵抗器、第2抵抗器がCrSi抵抗により構成されていると温度変化に対する抵抗値の変化度を低くできる。
【0016】
請求項8〜11記載の発明によれば、補正手段は、第2抵抗器の測定電圧に対応した抵抗値が初期抵抗値に対し所定率以上の変化があったことを条件としてCR発振回路の周期設定値を補正しているため、補正処理回数を削減できる。特に、請求項9、11記載の発明によれば、補正手段は、複数回所定率以上の変化があったことを条件としてCR発振回路の周期設定値を補正しているため、誤検出を極力抑制できる。また、請求項12記載の発明のように、CR発振回路の周期設定値を所定周期毎に補正するように補正手段を設けても良い。
【図面の簡単な説明】
【0017】
【図1】本発明の第1の実施形態について示すマイクロコンピュータの電気的な機能ブロック図
【図2】CR発振器の電気的構成図
【図3】発振周波数の経年変化に伴う補正処理を示すフローチャート
【図4】発振周波数と逓倍数設定値FMULRの相関関係特性図
【図5】発振周波数の温度補正処理を示すフローチャート
【図6】LINのメッセージフレームの構成を示す図
【図7】本発明の第1の実施形態の変形例を示す図3相当図
【図8】本発明の第2の実施形態を示す図3相当図
【図9】本発明の第3の実施形態を示す図3相当図
【図10】本発明の第4の実施形態を示す図3相当図
【図11】本発明の第5の実施形態を示す図1相当図
【図12】A/D変換器とCR発振器の電気的接続形態を示す説明図
【発明を実施するための形態】
【0018】
(第1の実施形態)
以下、本発明の発振周波数補正装置をマイクロコンピュータに適用した第1の実施形態について図1ないし図6を参照しながら説明する。
【0019】
図1は、車両のECU(Electronic Control Unit)に搭載されているワンチップマイクロコンピュータの電気的構成を示す機能ブロック図である。このマイコン1は、CPU(測定手段、補正手段に相当)2、EEPROM3、RAM4、ROM5、A/D変換器6、例えばUART(Universal Asynchronous Receiver/Transmitter)などの通信回路7、CR発振回路8、温度検出回路9および劣化検出回路10を備えている。EEPROM3、RAM4、ROM5、A/D変換器6、通信回路7およびCR発振回路8は、それぞれ、データバス11aおよびアドレスバス11bを介してCPU2に接続されている。これらの各回路には電源線12およびグランド13を通じて電源電圧Vccが供給されている。
【0020】
CR発振回路8は、CR発振器14およびDPLL(Digital Phase Lock Loop)15から構成されている。図2は、CR発振器14の電気的構成を示す。CR発振器14は、電源線12およびグランド13間に接続された分圧抵抗Ra,Rb,Rcと、この分圧抵抗Ra,Rb,Rc間の2つの共通ノードの電圧出力をそれぞれオンオフ切替えして出力するスイッチSW1,SW2と、このスイッチSW1,SW2の出力が非反転入力端子に与えられるコンパレータCP1と、コンパレータCP1の出力を反転入力端子に帰還する抵抗器R1と、コンパレータCP1の反転入力端子とグランド13との間に接続されたコンデンサC1とを備えている。
【0021】
発振定常状態においては、スイッチSW1がオンすると共にスイッチSW2がオフし、コンパレータCP1の出力が「H」状態でコンデンサC1に充電される。コンデンサC1の充電電圧Vcが抵抗RaおよびRbの共通接続ノードの電圧VT+を上回ると、コンパレータCP1の出力が「L」になる。コンパレータCP1の出力が「L」状態においてはスイッチSW1がオフすると共にスイッチSW2がオンし、コンデンサC1の充電電荷が抵抗器R1およびコンパレータCP1の出力端子を通じて放電される。
【0022】
そして、コンデンサC1の充電電圧Vcが抵抗RbおよびRcの共通接続ノードの電圧VT−を下回ると、コンパレータCP1の出力が「H」になり、スイッチSW1がオンすると共にスイッチSW2がオフする。このような状態が繰り返されることにより発振状態が継続し、出力(原発振信号VO)は矩形波信号となる。
【0023】
図1に戻って、DPLL回路15は、CR発振器14の発振信号を逓倍数設定値FMULRに基づいて逓倍し、さらに、分周比設定値FDIVRに基づいて分周してクロック信号CLKを生成して出力する。逓倍数設定値FMULRおよび分周比設定値FDIVRは周期設定値に相当し、それぞれCR発振回路8内に設けられるレジスタに格納される。クロック信号CLKは、マイコン1のシステムクロックとしてCPU2、A/D変換器6、通信回路7などに供給される。本実施形態では、周期設定値として分周比設定値FDIVRを一定とし逓倍数設定値FMULRを補正する場合について説明するが、逓倍数設定値FMULRを一定とし分周比設定値FDIVRを補正し、または、逓倍数設定値FMULRおよび分周比設定値FDIVRの両者を補正するようにしても良い。
【0024】
温度検出回路9は、電源線12とグランド13との間に接続された抵抗16とダイオード17〜19との直列回路により構成されている。抵抗16とダイオード17の接続ノードはA/D変換器6に接続されている。ダイオード17〜19の順方向電圧Vfは、−2.0〜−2.5mV/℃の温度特性を有している。温度検出回路9は、基板上でCR発振器14に近接した位置に配置されており、CR発振器14(またはその周辺)の温度を検出できる。CPU2はA/D変換器6を介して抵抗16とダイオード17の接続ノードの電圧3・Vfを検出することで、A/D変換器6の検出AD変換値に応じたCR発振器14(またはその周辺)の温度を検出できる。
【0025】
劣化検出回路10は、電源線12およびグランド13間に定電流源20、スイッチ21、抵抗器22を直列接続した通常時劣化状態形成回路を備える。また、スイッチ21と抵抗器22との間の共通接続点をノードN1とすると、劣化検出回路10は、電源線12とノードN1との間に定電流源23とスイッチ24とを直列接続した経年劣化検出タイミング動作回路を備える。スイッチ21およびスイッチ24と抵抗器22との共通接続ノードN1はA/D変換器6に接続されている。抵抗器22は、温度変化に応じた抵抗値変化率の少ないCrSi抵抗により構成されている。製品出荷当初は、定電流源20と定電流源23は同一電流値を供給可能な特性となっている。これらの定電流源20および23がそれぞれ供給する定電流値は、所定電流値(例えば、CR発振器14内の抵抗器R1に通電する平均電流値とほぼ同一電流)に設定されている。
【0026】
通信回路7は、車載LANのシリアル通信プロトコルであるLINのスレーブノードとして機能するものである。通信回路7がフレーム(データ信号に相当)を受信するときの各ビットの取込タイミングおよび通信回路7が送信する際の通信レート(ボーレート)は、CR発振回路8から出力されるクロック信号CLKの周波数に基づいて規定されるため、クロック信号CLKの周波数(周期)が変動すると送受信処理に支障が生じる。
【0027】
LIN仕様2.0によれば、マスタノードの発振周波数の許容誤差(Oscillator Tolerance)は±0.5%未満であり、スレーブノードの発振周波数の許容誤差は±1.5%未満である。また、スレーブノードにおける同期前の規定周波数からのずれは±14%未満である。したがって、一般的なCR発振回路を用いて経年劣化をも考慮して例えば−40℃から+125℃の広範な温度範囲で発振周波数を±1.5%未満の変動に保つことは極めて困難である。
【0028】
またスレーブノードでは、頻繁に通信処理を行わないノードも存在し、このような場合、温度検出回路9を用いたクロック信号CLKの補正処理が行われないと、発振周波数を所望の変動範囲に保持することは困難である。
【0029】
そこで、本実施形態では、温度検出回路9を用いて温度特性の補正、電源電圧変動特性の補正処理をほぼ常時行うと共に、電源投入時の劣化検出タイミングにおいて抵抗器22の抵抗値(実際にはAD変換値)に応じた補正処理を行う。これにより、経年劣化に伴う抵抗値変化を検出し当該検出結果に応じた補正を行うことができる。
【0030】
前記した構成の動作を説明する。まず、マイコン1を製品として出荷する前の工程において、逓倍数設定値FMULRの初期値を設定しEEPROM3に書込む。すなわち、マイコン1を所定の温度Tの環境下で動作させ、クロック信号CLKが規定周波数(例えば4MHz)に一致するように逓倍数設定値FMULRを決定する。そして、A/D変換器6が出力するAD変換値(検出温度Tと等価)と前記で設定した逓倍数設定値FMULRとを対応させてEEPROM3に書込む。これを複数の温度(例えば、−40℃、25℃、125℃)の3点以上で実行する。また、所定℃(例えば1℃)ステップで全て実行して書き込んでも良い。
【0031】
また、製品ごとに逓倍数設定値FMULRを決定して書き込むことに代えて設計値または当該製品ロットの代表値等に基づいて逓倍数設定値FMULRを算出し、それをAD変換値(検出温度T)に対応させてEEPROM3に書き込むようにしても良い。これは、逓倍数設定値FMULRに多少の誤差が存在したとしても学習処理によって誤差をキャンセルできるためである。
【0032】
また、製品出荷時には、例えばスイッチ21がオン状態、スイッチ24がオフ状態の通常状態(デフォルト)に設定されている。通常状態では、スイッチ21がオン状態に設定されているため、定電流源20が抵抗器22に常に定電流を供給する。定電流源20が供給する定電流値は、CR発振器14内の抵抗器R1に通電する平均電流値とほぼ同一電流に設定されているため、抵抗器R1の抵抗値の経年変化率を抵抗器22の抵抗値の経年変化率に反映できる。
【0033】
図3は、製品出荷後にマイコン1が実行するCR発振周期の補正処理をフローチャートにより示している。
電源投入(エンジン始動)されると、マイコン1は初めに図3に示す劣化検出処理を行う。劣化検出タイミングにおいて、CPU2は、劣化検出回路10側にA/D変換器6の入力を切替え、スイッチ21をオフ状態に切替えると共にスイッチ24をオン状態に切替える(S1)。
【0034】
劣化検出タイミングにおいて、定電流源23は抵抗器22に定電流を供給する。CPU2は、劣化検出回路10のノードN1の電圧をA/D変換器6によりAD変換値として取得する(S2)。このAD変換値は、抵抗器22の抵抗値に依存した値となる。
【0035】
次に、CPU2は、劣化検出回路10の出力電圧Vから算出される抵抗器22の抵抗値と初期抵抗値との変化率に応じて逓倍数設定値FMULRの補正値を算出する(S3)。ここでは、CPU2は、抵抗器22が時間経過に応じて変化する抵抗変化率を算出し、この値に応じた逓倍数設定値FMULRの補正値を算出している。CPU2は、EEPROM3に記憶されている全温度の逓倍数設定値FMULRを順次読出し、この読み出した全ての逓倍数設定値FMULRに同一の補正値を加減算して更新する(S4)。
【0036】
製品出荷当初は、定電流源20と定電流源23は同一電流値を抵抗器22に供給するよう設定されているため、A/D変換器6を介して得られるAD変換値はほぼ標準値となり、どちらに切り替えたとしてもAD変換値(抵抗値)はほぼ同一値となる。したがって、CPU2は初期抵抗値との変化率に応じて逓倍数設定値FMULRを補正したとしても補正前のFMULRと補正後のFMULRとがほぼ一致した値となる。
【0037】
しかし、CR発振器14の動作中(マイコン1の動作中)には、定電流源20は抵抗器22に常時電流を供給し続けるため、マイコン1の動作時間が積算されると、定電流源20による抵抗器22電圧のAD変換値(抵抗値)は、劣化検出タイミングにしか動作しない定電流源23による抵抗器22電圧のAD変換値(抵抗値)と異なる。
【0038】
マイコン1の動作中にCR発振器14内の抵抗器R1の平均通電電流とほぼ同一電流が抵抗器22に供給されているときには、抵抗器22の劣化状態は抵抗器R1の劣化状態とほぼ同様となり当該抵抗器R1の劣化状態を忠実に再現できる。したがって、ステップS3においてCPU2は抵抗器22の初期抵抗値との変化率に応じて逓倍数設定値FMULRを補正することで、CR発振器14内の抵抗器R1の劣化状況を反映して発振周波数を補正できる。
【0039】
図4(a)および図4(b)は、温度変化に対するCR発振器14の発振周波数(黒丸)と逓倍数設定値FMULR(白丸)の特性を示している。図4(a)は補正前の特性を示しており、図4(b)は、逓倍数設定値FMULRの補正方法を示している。また、図4(c)は、時間経過に伴うノードN1の検出電圧値Vの変化を示している。
【0040】
図4(a)に示すように、CR発振器14は、一般に温度上昇とともに発振周波数が低下する特性を持っているため、逓倍数設定値FMULRは温度上昇とともに増加する特性となる。図4(c)に示すように、時間経過に伴い抵抗器22の抵抗値は徐々に増加する傾向にある。
【0041】
ΔRを抵抗値の経年変化値、ΔfをCR発振器14の発振周波数の経年変化値とすると、
ΔR∝Δf …(1)
の関係がある。図4(b)に示す例の場合、抵抗器22の劣化(抵抗器R1の劣化)に伴い当該抵抗値がn%増加しCR発振器14の発振周波数(クロック信号CLKの周波数)がn%低下したため、全温度の逓倍数設定値FMULRをn%増加させる補正を行っていることを示している。
【0042】
なお、本実施形態の抵抗器22はCrSi抵抗により構成されているため、温度変化に応じた抵抗値変化率が少なく、ステップS3において予め定められた初期抵抗値との変化率のみで逓倍数設定値FMULRの補正値を求めたとしても適切な補正値を求めることができる。
【0043】
このような経年劣化に基づく補正処理を行った後、マイコン1は、図5に示す処理を定期的に行う。この図5において、CPU2は、A/D変換器6の入力切替を行い温度検出回路9の電圧3・Vfを入力し、当該A/D変換器6を通じて電圧3・VfのAD変換値を入力する(T1)。このA/D変換器6のAD変換値はCR発振器14の温度に対応する。そして、CPU2は、EEPROM3からAD変換値(検出温度)に対応した逓倍数設定値FMULRを読み出し(T2)、レジスタに設定する(T3)。
【0044】
その後、DPLL回路15は、レジスタFMULRの値に従って原発振信号を逓倍し、一定の分周比設定値FDIVRに従って分周してクロック信号CLKを出力する。そして、CPU2はLINのマスタノードから送信された同期信号を検出したか否か判定する(T4)。
【0045】
図6は、LINのフレーム構成を示している。マスタノードはメッセージフレームを送信するが、このマスタノードが送信したフレームのヘッダは、LINメッセージフレームの開始を示す13ビット長のシンクブレークフィールド(Synch Break)、クロック(通信速度)補正を行うための0x55のデータとなるシンクバイトフィールド(Synch Field)、および、マスタタスクがレスポンス送信を行うスレーブタスクを指定するためのアイデントフィールド(Ident Field)を備える。
【0046】
通信回路7がブレークフィールドとシンクバイトフィールドを受信した時点でそれがヘッダであることを認識できる。通信回路7が同期信号であるシンクバイトフィールドを含む受信処理をしていない期間には、ステップT1〜T4の処理が繰り返し行われる。この期間は、逓倍数設定値FMULRの補正がなされず、EEPROM3にすでに記憶されている逓倍数設定値FMULRを用いてクロック信号CLKが生成される。
【0047】
他方、通信回路7がシンクバイトフィールドを受信すると1ビット時間を計測する(T5)。具体的には、シンクバイトフィールドのスタートビットと第7ビットの両ダウンエッジの間の時間8Tビットをクロック信号CLKで計数することにより計測し、この計数値を8で除することで1ビット時間の計数値XAを得る。例えば、マスタノードが9600bpsの正確な通信レートで送信した場合、クロック信号CLKが正確に4MHzであれば計数値は416となる。
【0048】
この1ビット時間(1/9600=104.2μs)に対する基準周期(1/4MHz=0.25μs)に基づく計数値を基準計数値XBとする。CPU2は、以下の(2)式により補正後の逓倍数設定値FMULRを演算し(T6)、それをDPLL回路15のレジスタに設定する。設定後、DPLL回路15は補正後の新たな逓倍数設定値FMULRに応じて原発振信号を逓倍する。
【0049】
補正後のFMULR=現在のFMULR × XB / XA …(2)
その後、補正後の逓倍数設定値FMULRをAD変換値(検出温度T)に対応させてEEPROM3に書込む(T7)。当該検出温度Tに対応する逓倍数設定値FMULRが既にEEPROM3に書き込まれている場合には設定値の更新となり、書き込まれていない場合には新たに逓倍数設定値FMULRをEEPROM3に書き込むことになる。
【0050】
CPU2は、マスタノードから送られてくるフレームの同期信号を受信するごとに、クロック信号CLKを計数して1ビット長を計測する。LINでは、マスタノードから正確な通信レートでフレームが送信されてくるので、CPU2は、上記1ビット長のクロック信号CLKによる計数値XAと正規の1ビット時間を基準周期で除して得られる基準計数値XBとに基づいて逓倍数設定値FMULRを補正し、補正後の逓倍数設定値FMULRを検出温度Tに対応させてEEPROM3に書き込む。このような図5の処理が繰り返されることによって、CR発振器14の温度検出結果に応じて逓倍数設定値FMULRを補正し発振周波数を補正できる。
【0051】
したがって、CR発振器14の温度を示すAD変換値とCR発振回路8の逓倍数を決める逓倍数設定値FMULRとが対応付けられてEEPROM3に記憶されているときに、マイコン1の動作中は、AD変換値(検出温度T)に応じた逓倍数設定値FMULRを読み出してCR発振回路8のレジスタに設定するので、温度変化によりCR発振器14の発振周波数がずれてもクロック信号CLKの周波数を一定化できる。
【0052】
<第1の実施形態のまとめ>
以上説明したように、本実施形態によれば、電源投入時の劣化検出タイミングにおいて、定電流源23から抵抗器22に通電して得られたA/D変換器6のAD変換値(抵抗器22の端子電圧V)に基づいて、CPU2が逓倍数設定値FMULRを補正する。この場合、定電流源20を用いず定電流源23が作動して抵抗器22に通電するため、定電流源20の電流供給能力が経年変化していたとしても当該経年変化の影響を排除することができ、抵抗器22の抵抗値変化のみを正確に測定できる。
【0053】
そして、CPU2は、抵抗器22の端子電圧(抵抗器22の抵抗値)を測定することで抵抗器R1の抵抗値の経年変化を反映し、この変化に基づいてCR発振回路8のクロック信号CLKの発振周波数を補正しているため、正確な発振周波数のクロック信号CLKを出力できる。したがって、通信回路7が何らかの原因で通信処理できない、もしくは、スレーブノードの通信回路7がメッセージフレームを受信せず補正処理がなされない状態が長期間継続し、通信回路7の同期信号を検出しない(できない)ときであっても、正確な発振周波数のクロック信号CLKを出力できる。
【0054】
また、電源投入時の劣化検出タイミングにおいて、CPU2は、劣化検出回路10の出力電圧Vから算出される抵抗器22の抵抗値と予め定められた初期抵抗値との変化率に応じて逓倍数設定値FMULRの補正値を算出しているため適切な補正値を算出できる。また、CR発振器14の発振を停止することなく抵抗器R1の抵抗値変化を検出できる。
【0055】
温度変化または経年変化に関わらずクロック信号CLKの周波数が一定となるため、クロック信号CLKをシステムクロックとして用いることができる。その結果、発振子が不要となり、発振子を用いてシステムクロックを生成した従来のマイコンに比較して低コストとなる。
【0056】
また、CR発振器14に経年変化が生じた場合に、全ての逓倍数設定値FMULRを一度に補正できる。また、極端に高い温度や低い温度などのように発生頻度が少ない温度に対応した逓倍数設定値FMULRも補正できるため、当該温度に対応した逓倍数設定値FMULRが放置される事態を防ぐことができる。
【0057】
<第1の実施形態の変形例>
図7は、抵抗器22の抵抗値が温度依存性を有する抵抗(Nwell抵抗等)によって構成される場合の図3に相当するフローチャートを示している。抵抗器22の初期抵抗値は複数の温度(例えば、−40℃、25℃、125℃)に応じて予め測定されEEPROM3に記憶されている。
【0058】
本変形例が図3に示す処理と異なるところは、CPU2が劣化検出の抵抗切替処理(U2)よりも前に、温度検出回路9によりA/D変換器6を通じてCR発振器14の温度を検出し(U1)、この検出温度に対応した初期抵抗値との変化率に応じて逓倍数設定値FMULRの補正値を算出し(U4)、検出温度に対応した逓倍数設定値FMULRに加減算して更新している(U5)ところである。なお、ステップU3の処理はステップS2と同一処理である。
【0059】
ステップU4では、ステップU1で検出した検出温度に対応した初期抵抗値との変化率を求め、この変化率に応じて逓倍数設定値FMULRを補正している。この場合、検出温度のAD変換値に対応した初期抵抗値が存在しないときには、例えば、初期抵抗値のAD変換値を挟む2点のAD変換値に対応した初期抵抗値に基づいて一次関数で補間(比例計算)して検出温度に対応した初期抵抗値を求めると良い。
【0060】
また、ステップU5において、検出温度のAD変換値に対応した逓倍数設定値FMULRが存在しない場合には、例えば、AD変換値を挟む2点のAD変換値に対応した逓倍数設定値FMULRに基づいて一次関数で補間(比例計算)して逓倍数設定値FMULRを求め、この逓倍数設定値FMULRを新たに検出温度に対応して記憶させるようにすると良い。
【0061】
本変形例によれば、抵抗器22がNwell抵抗等により構成されていたとしても、CPU2は、CR発振器14の温度を検出した検出温度に対応した初期抵抗値と、当該検出温度に対応し劣化検出回路10の出力電圧VのAD変換値に対応した抵抗器22の抵抗値との変化率に応じて逓倍数設定値FMULRの補正値を算出し、検出温度に対応した逓倍数設定値FMULRに加減算して更新しているため、適切な補正値を算出でき、正確な発振周波数のクロック信号CLKを生成できる。
【0062】
(第2の実施形態)
図8は、本発明の第2の実施形態を示すもので、前述実施形態と異なるところは、抵抗器の測定電圧に対応した抵抗値が初期抵抗値に対し所定率以上の変化があったことを条件としてCR発振回路の周期設定値を補正しているところにある。前述実施形態と同一部分、同一または類似機能の部分には同一符号を付して説明を省略し、以下、異なる部分について説明を行う。
【0063】
図8は、図3に代えてマイコン1が電源投入後に行う処理のフローチャートを示している。この図8に示すように、CPU2はA/D変換器6のAD変換値を入力し(V1)、このAD変換値を初期抵抗値と比較する(V2)。なお、ステップV1のAD変換値は抵抗器22の抵抗値に相当する。そして、CPU2は、初期抵抗値との変化率に対し所定率k%以上の変化を検出した(V3:YES)ことを条件として、初期抵抗値との変化率に応じて逓倍数設定値FMULRの補正値を算出し(V4)、記憶されている全温度の逓倍数設定値FMULRに加減算して更新する(V5)。
【0064】
すなわち、CPU2は、抵抗器22の抵抗値が初期抵抗値に対しk%未満の変化しかしていないのであれば経年変化による影響は少ないと判断し、逓倍数設定値FMULRを更新することなく図8に示すルーチンを抜ける。これにより、前述実施形態とほぼ同様の作用効果が得られると共に、電源投入後に逓倍数設定値FMULRの補正を必ずするわけではなくなり補正処理回数を削減できる。
【0065】
(第3の実施形態)
図9は、本発明の第3の実施形態を示すもので、前述実施形態と異なるところは、抵抗器の測定電圧に対応した抵抗値が初期抵抗値に対し複数回の所定率以上の変化があったことを条件としてCR発振回路の周期設定値を補正しているところにある。前述実施形態と同一部分、同一または類似機能の部分には同一符号を付して説明を省略し、以下、異なる部分について説明を行う。
【0066】
図9は、図3に代えてマイコン1が電源投入後に行う処理のフローチャートを示している。この図9に示すように、CPU2はA/D変換器6のAD変換値を入力し(W1)、このAD変換値を初期抵抗値と比較する(W2)。なお、ステップW1のAD変換値は抵抗器22の抵抗値に相当する。そして、CPU2は、初期抵抗値との変化率に対し所定率k%以上の変化がある(W3:YES)と、ステップW4に移行する。そして、この所定率k%以上の変化がX(複数)回目であるか否かを判定する(W4)。CPU2は、X(複数)回以上k%以上の変化があったことを条件として、初期抵抗値との変化率に応じて逓倍数設定値FMULRの補正値を算出し(W5)、記憶されている全温度の逓倍数設定値FMULRに加減算して更新する(W6)。
【0067】
すなわち、CPU2は、このk%以上の変化が複数回以上継続しないとノイズなどの誤検出であると判断する(W4:NO)。そして、抵抗器22の抵抗値が初期抵抗値に対しk%未満の変化しかしていないのであれば経年変化による影響は少ないと判断し(W3:NO)、逓倍数設定値FMULRを更新することなく図9に示すルーチンを抜ける。これにより、前述実施形態とほぼ同様の作用効果が得られると共に、誤検出を極力抑制できる。
【0068】
(第4の実施形態)
図10は、本発明の第4の実施形態を示すもので、前述実施形態と異なるところは、所定周期毎にCR発振回路の周期設定値を補正しているところにある。前述実施形態と同一部分、同一または類似機能の部分には同一符号を付して説明を省略し、以下、異なる部分について説明を行う。
【0069】
図10は、図3に代えてマイコン1が電源投入後に行う処理のフローチャートを示している。CPU2は、タイマ割り込みより例えば1時間毎の抵抗値の検出周期であると判断した(X1:YES)ときに、AD変換値を入力し(X2)、抵抗値の変化率に応じて逓倍数設定値FMULRの補正値を算出し(X3)、記憶されている全温度の逓倍数設定値FMULRに加減算して更新する(X4)。すると、所定周期毎に逓倍数設定値FMULRを補正できる。
【0070】
(第5の実施形態)
図11および図12は、本発明の第5の実施形態を示すもので、CR発振器内の抵抗器にスイッチを切替えて検出することで当該抵抗器の抵抗値の経年変化を検出しているところにある。前述実施形態と同一部分、同一または類似機能の部分には同一符号を付して説明を省略し、以下、異なる部分について説明を行う。
【0071】
図11は、図1に代わる回路構成を示している。図11に示すように、CR発振器14内の抵抗器R1にはA/D変換器6が直接接続されている。
図12は、A/D変換器とCR発振器の電気的接続形態を表している。図12に示すように、A/D変換器6は、抵抗器R1の端子間のアナログ信号をデジタル変換するように結線されている。また、コンパレータCP1の出力と反転入力端子との間に3接点スイッチSW3が介在して構成されている。抵抗器R1とコンパレータCP1の出力との間には3接点スイッチSW3の可動接点、一の固定接点が接続されている。3接点スイッチSW3の他の固定接点は、定電流源ISを介して電源線12に接続されている。また、コンデンサC1とグランド13との間にも接点スイッチSW4が接続されている。このような電気的接続形態において、劣化検出回路10に代わる劣化検出回路25は定電流源IS、3接点スイッチSW3、抵抗器R1、接点スイッチSW4により構成される。
【0072】
通常動作状態において、CR発振器14がDPLL回路15に原発振信号VOを出力するときには、CPU2は3接点スイッチSW3の可動接点をコンパレータCP1の出力側に切替え接点スイッチSW4をオフすることで、図2と同一回路形態を保持する。これにより、DPLL回路15はCR発振器14の原発振信号に基づいてクロック信号CLKを生成し各ブロック2〜7に出力する。
【0073】
CPU2は、劣化検出タイミングにて抵抗器R1の抵抗値(すなわち抵抗値の経年変化)を検出するときには、3接点スイッチSW3の可動接点を定電流源IS側の固定接点に切替えると共に、接点スイッチSW4をオンすることで、定電流源IS、3接点スイッチSW3、抵抗器R1、接点スイッチSW4を通じて通電する。
【0074】
すると、CR発振器14の原発振信号VOの出力は停止するものの、A/D変換器6は抵抗器R1の抵抗値に依存した電圧のAD変換値を入力できる。DPLL回路15は、電源線12およびグランド13から電源供給された状態が継続されており、クロック信号CLKの発振周波数をロックし当該クロック信号CLKを安定出力していれば、CR発振器14の原発振信号VOが入力されていなくても所定時間の間はクロック信号CLKを各ブロック2〜7に供給し続けることができる。
【0075】
このため、A/D変換器6はこのクロック信号CLKに応じて抵抗器R1の端子電圧をサンプリングすることができ、抵抗器R1の抵抗値に応じたAD変換値を入力できる。すると、前述実施形態と同様の作用効果が得られる。しかも、抵抗器R1の抵抗値を直接測定できるため、経年劣化の判定を正確に行うことができる。
【0076】
(他の実施形態)
本発明は、前述した実施形態に限定されるものではなく、例えば、以下に示す変形または拡張が可能である。
【0077】
スレーブノードのマイコン1は自立したクロック信号CLKを用いて処理を行うときもあり、スレーブノードの通信回路7がマスタノードとの間で通信処理を行わない場合であっても、前述実施形態と同様の作用により逓倍数設定値FMULRや分周比設定値FDIVRなどの周期設定値を補正でき、正確な発振周波数のクロック信号CLKで動作できる。
【0078】
逓倍数設定値FMULRと分周比設定値FDIVRを用いてクロック信号CLKの周波数を一定化する場合には、分周比設定値FDIVRも併せてEEPROM3に書き込めばよい。
【符号の説明】
【0079】
図面中、1はマイコン(発振周波数補正装置)、2はCPU(測定手段、補正手段)、8はCR発振回路、14はCR発振器、20は定電流源(第1定電流源)、22は抵抗器(第2抵抗器)、23は定電流源(第2定電流源)、R1は抵抗器(第1抵抗器)、ISは定電流源を示す。

【特許請求の範囲】
【請求項1】
第1抵抗器に応じた原発振信号を出力するCR発振器を具備し当該CR発振器の原発振信号を周期設定値に基づいて逓倍/分周してクロック信号を出力するCR発振回路と、
前記CR発振器内の第1抵抗器と同種の第2抵抗器と、
前記第2抵抗器に直列接続された第1定電流源と、
前記第1定電流源と同一電流供給特性を備え前記第2抵抗器に直列接続された第2定電流源と、
通常動作時には前記第1定電流源から前記第2抵抗器に定電流が通電された状態において、劣化検出タイミングには前記第2定電流源から前記第2抵抗器に定電流を通電するように切替えて前記第2抵抗器の電圧を測定する測定手段と、
前記測定手段の測定電圧に基づいて前記CR発振回路の周期設定値を補正する補正手段とを備えたことを特徴とする発振周波数補正装置。
【請求項2】
前記第1定電流源および前記第2定電流源は、前記CR発振器内の第1抵抗器に通電する平均電流値とほぼ同一電流を前記第2抵抗器に通電可能に構成されていることを特徴とする請求項1記載の発振周波数補正装置。
【請求項3】
第1抵抗器に応じた原発振信号を出力するCR発振器を具備し当該CR発振器の原発振信号を周期設定値に基づいて逓倍/分周してクロック信号を出力するCR発振回路と、
前記CR発振器内の第1抵抗器にスイッチを介して直列接続された定電流源と、
通常動作時には前記スイッチを切替えて前記CR発振器を動作させた状態において、劣化検出タイミングには前記スイッチが切替えられた状態にて前記定電流源から前記第1抵抗器に定電流を通電して第1抵抗器の電圧を測定する測定手段と、
前記測定手段の測定電圧に基づいて前記CR発振回路の周期設定値を補正する補正手段とを備えたことを特徴とする発振周波数補正装置。
【請求項4】
前記測定手段は、電源投入時点を前記劣化検出タイミングとして第2抵抗器の電圧を測定することを特徴とする請求項1または2記載の発振周波数補正装置。
【請求項5】
前記測定手段は、電源投入時点を前記劣化検出タイミングとして第1抵抗器の電圧を測定することを特徴とする請求項3記載の発振周波数補正装置。
【請求項6】
前記第1抵抗器および前記第2抵抗器は、共にCrSi抵抗により構成されていることを特徴とする請求項1、2または4記載の発振周波数補正装置。
【請求項7】
前記第1抵抗器は、CrSi抵抗により構成されていることを特徴とする請求項3または5記載の発振周波数補正装置。
【請求項8】
前記補正手段は、前記第2抵抗器の測定電圧に対応した抵抗値が初期抵抗値に対し所定率以上の変化があったことを条件として前記CR発振回路の周期設定値を補正することを特徴とする請求項2、4、6の何れかに記載の発振周波数補正装置。
【請求項9】
前記補正手段は、複数回の所定率以上の変化があったことを条件として前記CR発振回路の周期設定値を補正することを特徴とする請求項8記載の発振周波数補正装置。
【請求項10】
前記補正手段は、前記第1抵抗器の測定電圧に対応した抵抗値が初期抵抗値に対し所定率以上の変化があったことを条件として前記CR発振回路の周期設定値を補正することを特徴とする請求項3、5、7の何れかに記載の発振周波数補正装置。
【請求項11】
前記補正手段は、複数回の所定率以上の変化があったことを条件として前記CR発振回路の周期設定値を補正することを特徴とする請求項10記載の発振周波数補正装置。
【請求項12】
前記補正手段は、所定周期毎にCR発振回路の周期設定値を補正することを特徴とする請求項1ないし11の何れかに記載の発振周波数補正装置。

【図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


【公開番号】特開2012−199622(P2012−199622A)
【公開日】平成24年10月18日(2012.10.18)
【国際特許分類】
【出願番号】特願2011−60712(P2011−60712)
【出願日】平成23年3月18日(2011.3.18)
【出願人】(000004260)株式会社デンソー (27,639)
【Fターム(参考)】