(57)【特許請求の範囲】
【請求項１】
少なくとも一つのクロックを有するマイクロコンピュータにおいて、
前記クロックより周波数精度の高い標準クロック信号源からのカウントデータを取得する標準データ取得手段と、
前記標準クロック信号源からのカウントデータを基準にして前記クロックのカウントデータを計測する計測手段と、
前記クロックのカウントデータを格納するメモリと、
該計測手段による計測結果に基づいて、前記クロックのクロック信号を補正する補正手段とを有し、
前記計測手段は、前記マイクロコンピュータの通常動作モード時に所定時間間隔で前記クロックを動作させて前記クロックのカウントデータを計測し、前記クロックのカウントデータを前記メモリに格納し、
前記補正手段は、通常動作モードからスリープモードへの移行時に、前記メモリに格納されている最新の前記クロックのカウントデータを用いて前記クロックのクロック信号を補正することを特徴とするマイクロコンピュータ。
【請求項２】
前記クロックは、発振源と該発振源からの発振パルスをカウントするループカウンタからなり、発振パルスがループカウンタの目標カウントに達するごとにクロック信号を出力するものであって、
前記計測手段は、前記標準クロック信号源からのカウントデータで計時する所定時間における前記クロックの前記発振パルスを計数したパルスカウントを求めるものであることを特徴とする請求項１に記載のマイクロコンピュータ。
【請求項３】
前記補正手段は、前記計測手段で求めたパルスカウントに応じて、前記ループカウンタの目標カウントを補正するものであることを特徴とする請求項２に記載のマイクロコンピュータ。
【請求項４】
前記クロックは、ＣＲ発振回路を前記発振源としてＣＰＵに内蔵されていることを特徴とする請求項２または３に記載のマイクロコンピュータ。
【請求項５】
前記標準クロック信号源が通常動作モード用に前記ＣＰＵに接続されたメインクロックであり、前記クロックは、前記メインクロックとは別個のスリープモード用のサブクロックであることを特徴とする請求項１から４のいずれか１に記載のマイクロコンピュータ。
【請求項６】
少なくとも一つのクロックを有するマイクロコンピュータにおける前記クロックの補正方法であって、
該クロックより周波数精度の高い標準クロック信号発生源からのカウントデータを取得する第１工程と、
前記標準クロック信号発生源からのカウントデータを基準にして前記クロックのカウントデータを計測する第２工程と、
第２工程の計測結果に基づいて、前記クロックのクロック信号を補正する第３工程とを有し、
前記第２工程は、前記マイクロコンピュータの通常動作モード時に所定時間間隔で前記クロックを動作させて前記クロックのカウントデータを計測し、前記クロックのカウントデータをメモリに格納し、
前記第３工程は、通常動作モードからスリープモードへの移行時に、前記メモリに格納されている最新の前記パルスカウントを用いて前記クロックのクロック信号を補正することを特徴とするマイクロコンピュータにおけるクロックの補正方法。
【請求項７】
前記クロックが、発振源と該発振源からの発振パルスをカウントするループカウンタからなり、発振パルスがループカウンタの目標カウントに達するごとにクロック信号を出力するものであって、
前記第２工程は、前記標準クロック信号源からのカウントデータで計時する所定時間における前記クロックの発振パルスを計数したパルスカウントを求めるものであることを特徴とする請求項６に記載のマイクロコンピュータにおけるクロックの補正方法。
【請求項８】
前記第３工程は、前記第２工程で求めたパルスカウントに応じて、前記ループカウンタの目標カウントを補正することにより行うことを特徴とする請求項７に記載のマイクロコンピュータにおけるクロックの補正方法。
【請求項９】
前記第１工程は、前記標準クロック信号源からのカウントデータとして、通常動作モード用にＣＰＵに接続されたメインクロックのクロック信号を読み込むと共に、前記第２工程は、前記クロックのカウントデータとして、前記メインクロックとは別個のスリープモード用のサブクロックのクロック信号を計測することを特徴とする請求項６から８のいずれか１に記載のマイクロコンピュータにおけるクロックの補正方法。
【請求項１０】
前記第１工程は、前記標準クロック信号源からのカウントデータとして、標準電波またはＧＰＳ信号のクロック信号を読み込むことを特徴とする請求項６から８のいずれか１に記載のマイクロコンピュータにおけるクロックの補正方法。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、ＣＰＵの通常動作モード用とは別個にスリープモード用のクロックを有するマイクロコンピュータ、およびそのクロックの補正方法に関する。
【背景技術】
【０００２】
現今の車両では、走行中における各種装置の制御に止まらず、停車後においてもルームランプの自動点消灯、キーレスによるドアのロック・アンロック、盗難に対するセキュリティ、エンジン始動等がマイクロコンピュータにより統合制御されるようになっている。マイクロコンピュータはクロック信号に基づいてＣＰＵが所定の演算処理を実行するので、そのクロック信号を生成するために例えばクリスタル振動子を用いたクロックを備えている。
車両の統合制御においては、ＣＰＵを車両の運転中に必要な諸制御のための通常動作モードから、エンジン停止に伴って所定の条件が成立すると省電力のためのスリープモードに移行させるが、スリープモードにおいても例えば間欠動作のための所定のクロック信号を必要とする。【０００３】
通常動作モードでは制御すべき処理対象も多く、発振周波数が高くかつ０．００５％程度の高い周波数精度が得られるクリスタル振動子を用いたクロックが適切であるが、精度が高いものほどコストが増大するとともに消費電力も大きくなる。したがって、とくにバッテリの充電が行われないエンジン停止中、ＣＰＵを省電力のスリープモードに移行させるのに対応して、クロックも通常動作時とは異なる消費電力の小さいクロックに切り替えることが望ましい。
そこで、スリープ時用のクロックを例えばＣＲ発振回路を用いて構成すると、低コストで消費電力も小さくなるが、雰囲気温度等によっては５％程度発振周波数が変化するなど誤差が大きい。したがって、消費電力の小さいクロックへの切り替えは精度の低下を伴うこととなるが、しかしスリープモードにおいてもクロックの精度に対する要求が高くなっているので、精度保持の方策が必要となる。【０００４】
従来、ＣＲ発振回路によるクロックについて、例えば特開平５−７５４４５号公報には、周囲温度および電源電圧が基準測定条件にあるときに測定したＣＲ発振回路の発振周波数を基準発振周波数として記憶しておき、基準発振周波数からの周波数変動をあらかじめ求められた温度と発振周波数の特性、および電圧と発振周波数の特性に基づいて現在の温度と電圧の検出値から演算して現在の発振周波数を求め、補正することにより発振周波数の精度を保持しようとする技術が提案されている。【０００５】
また、特開２００６−２７０９１７号公報には、ＣＲ発振回路の温度により変動する発振出力特性に基づいて、通信回路で管理される１フレームのデータ送信時間を一定とするための通信レートを決定するデータを記憶しておき、温度の検出値に応じて記憶データを読み出して決定した通信レートを通信回路に設定することにより、制御精度を保持する技術が提案されている。
【先行技術文献】
【特許文献】
【０００６】
【特許文献１】特開平５−７５４４５号公報
【特許文献２】特開２００６−２７０９１７号公報
【発明の概要】
【発明が解決しようとする課題】
【０００７】
しかしながら、上記従来の技術はいずれもマイクロコンピュータの出荷あるいは車両搭載前に測定された特性やプロファイルを参照して算出した間接的な現在データに基づいて、現在の発振周波数あるいは誤差状態を推定して補正を行うものであり、その推定値が現在の状態と正確に合致しているかどうか検証できないという問題を有している。そのため、高い要求精度に確実に対応できるとは言い難い。【０００８】
したがって本発明は、上記従来の問題点に鑑み、省電力のスリープモードで用いられるクロックをより高精度に保持可能としたマイクロコンピュータ、およびそのクロックの補正方法を提供することを目的とする。
【課題を解決するための手段】
【０００９】
このため、本発明は、少なくとも一つのクロックを有するマイクロコンピュータにおいて、前記クロックより周波数精度の高い標準クロック信号源からのカウントデータを取得し、前記マイクロコンピュータの通常動作モード時に所定時間間隔で前記クロックを動作させて、前記標準クロック信号源からのカウントデータを基準にして前記クロックのカウントデータを計測し、前記クロックのカウントデータをメモリに格納し、通常動作モードからスリープモードへの移行時に、前記メモリに格納されている最新の前記パルスカウントを用いて前記クロックのクロック信号を補正するものとした。
【発明の効果】
【００１０】
本発明によれば、クロックのカウントデータを直接計測対象としているので、推定ではなく現実のカウント状態が把握され、これに基づいて確実な補正が行われ、高い精度要求に応えることができる。
【図面の簡単な説明】
【００１１】
【図１】実施の形態にかかる車両統合制御装置の構成を示すブロック図である。
【図２】サブクロックの補正にかかる制御の流れを示すフローチャートである。
【発明を実施するための形態】
【００１２】
以下、本発明の実施の形態について説明する。
図１は実施の形態にかかる車両統合制御装置を示す図である。
車両統合制御装置１０は、マイクロコンピュータで構成され、ＣＰＵ１１、プログラムやデータを格納するメモリ１２、ＣＰＵ１１にクロック信号を供給するクリスタル振動子を用いたメインクロック１３、外部のイグニションスイッチ２やドアスイッチ３を含む各種スイッチやセンサなどの入力装置１とＣＰＵ１１をつなぐ入力インタフェース（入力ＩＦ）１４、ドアロックやランプ、ライトなどの出力装置４とＣＰＵ１１をつなぐ出力インタフェース（出力ＩＦ）１５、車載ネットワーク（ＣＡＮ）接続用の通信インタフェース１６、およびこれらの駆動源としての電源回路１７を有している。
【００１３】
ＣＰＵ１１は、動作モードとして通常動作モードと省電力のためのスリープモードとに切り替え可能となっており、サブクロック２０と計時カウンタ２５、およびパルスカウンタ２６を内蔵している。
サブクロック２０は、ＣＲ発振回路２１とＣＲ発振回路２１の発振パルスをカウントするループカウンタ２２とからなっている。
計時カウンタ２５は、ＣＰＵ１１に入力するメインクロック１３からのクロック信号をカウントして後述する所定時間Ｔを計時する。
パルスカウンタ２６は、計時カウンタ２５の動作時に所定時間ＴにおけるＣＲ発振回路２１の発振パルスをカウントする
【００１４】
車両のイグニションスイッチ２のＯＮ操作に基づいて、ＣＰＵ１１はメインクロック１３を起動するとともに通常動作モードで動作し、メインクロック１３からのクロック信号を基礎として演算処理を実行する。
ここでは、メインクロック１３の発振周波数が４ＭＨｚで、そのクロック信号がそのまま演算処理のタイミング信号とされるが、ＣＰＵ１１によってはメインクロック１３からのクロック信号を分周あるいは逓倍して内部クロックとし、これを演算処理のタイミング信号とする場合もある。
【００１５】
イグニションスイッチ２がＯＦＦされてエンジンが停止し、停車状態で例えばドアが開閉されたあと所定時間が経過するなど所定の条件が成立すると、ＣＰＵ１１はスリープモードに移行する。スリープモードへの移行に当たって、ＣＰＵ１１はメインクロック１３を休止させる一方、内蔵のサブクロック２０をＯＮさせてそのクロック信号をタイミング信号として割り込みの有無や所定の監視を間欠的に実行する。
【００１６】
スリープモード移行に際してはサブクロック２０の補正が行われる。以下、この補正について説明する。
まず、サブクロック２０はＣＲ発振回路２１の発振周波数を１２５ＫＨｚとし、例えばループカウンタの目標カウントＰｍを１２５０００として、ループカウンタ２２が当該目標カウントＰｍに達するごとにループから抜けてクロック信号を出力する設定となっており、これにより基準状態として周期１ｓｅｃのクロック信号を出力する。基準状態のクロック間隔（周期１ｓｅｃ）を基準時間Ｓと呼ぶ。
【００１７】
ＣＰＵ１１は、その通常動作モードの間に適時間隔の割り込みで、サブクロックより周波数精度の高いメインクロック１３のクロック信号を標準クロック信号として参照し、サブクロック２０の状態を測定する。
具体的には、メインクロック１３からのクロック信号を計時カウンタ２５でカウントして計時される所定時間Ｔにおける、サブクロック２０のＣＲ発振回路２１の発振パルスをパルスカウンタ２６で計測して、パルスカウントＰを求める。
このパルスカウントＰの取得を繰り返し、スリープモード移行前の最後に取得された最新のパルスカウントＰに基づいて、サブクロック２０のループカウンタ２２に補正をかける。
【００１８】
すなわち、所定時間Ｔを例えば基準時間Ｓと同一の１ｓｅｃとすると、その間にＣＲ発振回路２１が出力すべきパルス数として目標カウントＰｍに設定された基準カウントＰｏは１２５０００となる。しかし、計測されたパルスカウントＰが１２００００であった場合には目標カウントＰｍとの間に５０００パルスの誤差αがあるので、ループカウンタ２２の目標カウントＰｍを基準カウントＰｏである１２５０００のままにしておいた場合には、目標カウントＰｍまで達してから出力されるクロック信号は基準時間Ｓより遅延して、クロック間隔（周期）は１ｓｅｃより長いことになる。
【００１９】
そこで、ループカウンタ２２の目標カウントＰｍを上記の誤差α分だけ補正すれば、クロック信号が遅延することなく基準時間Ｓに極めて近い周期で出力されることになる。このため、目標カウントＰｍを、Ｐｍ＝Ｐｍ−αにより補正する。
計測されたパルスカウントＰが基準カウントＰｏより多かった場合も同じ補正により、早まることなく基準時間Ｓに極めて近い周期で出力される。
ここで、誤差の算出式はα＝Ｐｍ−Ｐであるから、補正後の目標カウントＰｍは
Ｐｍ＝Ｐｍ−α＝Ｐｍ−（Ｐｍ−Ｐ）＝Ｐ
となる。
すなわち、新たなＰｍの値はパルスカウントＰとなる。換言すれば、補正は目標カウントＰｍを測定結果であるパルスカウントＰに変更すればよいことになる。
【００２０】
なお、上述の例では、計測する所定時間Ｔをサブクロック２０のクロック信号の基準時間Ｓと同一に設定し、目標カウントＰｍと計測したパルスカウントＰの差を誤差αとしたが、例えば計測時間を短縮するため、所定時間Ｔを基準時間Ｓの１／２とする場合には、計測したパルスカウントＰの２倍値と目標カウントＰｍの差を誤差αとして目標カウントＰｍを補正すればよい。
したがって、一般化して所定時間Ｔを基準時間Ｓのｋ倍とした場合、α＝Ｐｍ−（Ｐ／ｋ）で、目標カウントＰｍは
Ｐｍ＝Ｐｍ−α＝Ｐｍ−（Ｐｍ−（Ｐ／ｋ））＝Ｐ／ｋ
に補正することになる。
なお、ｋが１より大きいときは、Ｐ／ｋはＩＮＴ関数による整数とする。
【００２１】
図２はＣＰＵ１１におけるサブクロック２０の補正にかかる制御の流れを示すフローチャートである。
イグニションスイッチ２がＯＮされると、ＣＰＵ１１はメインクロック１３を起動させるとともに通常動作モードに入り、メインクロック１３からのクロック信号を処理タイミングの基礎とする。これにより、車両統合制御装置１０による車両の走行にかかわる制御が開始される。
ＣＰＵ１１では、まず初期化としてステップ１００において、計時カウンタ２５およびパルスカウンタ２６をリセットするとともに、サブクロック２０のループカウンタ２２の目標カウントＰｍに、クロック信号のあらかじめ定められた基準時間Ｓに対応する基準カウントＰｏ（１２５ＫＨｚの場合Ｓ＝１ｍｓｅｃに対して１２５０００）を設定する。
【００２２】
ステップ１０１において、クロック計測の割り込みタイミングであるかどうかをチェックし、割り込みタイミングであるときはステップ１０２へ進み、割り込みタイミングでなければステップ１０６へ進む。
ステップ１０２では、ＣＰＵ１１内蔵のサブクロック２０をＯＮする。
そして、ステップ１０３において、メインクロック１３からのクロック信号を計時カウンタ２５で計数開始と同時にパルスカウンタ２６のカウントを開始して、所定時間Ｔにおけるサブクロック２０（ＣＲ発振回路２１）の発振パルスを計測しパルスカウントＰを得る。所定時間Ｔはあらかじめ基準時間Ｓのｋ倍に定めてある。
計測したパルスカウントＰは、続くステップ１０４において、メモリ１２に格納する。メモリ１２に前回のフローにおけるパルスカウントＰが格納されている場合には上書きにより更新される。
このあと、ステップ１０５でサブクロック２０をＯＦＦしてステップ１０６へ進む。この際、計時カウンタ２５およびパルスカウンタ２６もリセットされる。
【００２３】
ステップ１０６では、イグニションスイッチ２のＯＦＦを含み入力装置１にスリープへの所定の条件が成立しているかどうかをチェックし、条件が成立していないときはステップ１０１へ戻り、条件が成立しているときはステップ１０７へ進む。
ステップ１０７では、メモリ１２に格納されているパルスカウントＰを読み出して、サブクロック２０のループカウンタ２２の目標カウントＰｍの値をＰ／ｋに補正する。
【００２４】
そして、ステップ１０８において、メインクロック１３をＯＦＦさせるとともにサブクロック２０をＯＮして、クロックを切り替える。
ステップ１０９において、ＣＰＵ自体をスリープモードに移行する。
このあとは、通常動作モードの条件が成立するかどうかがチェックされ、成立すれば動作モードの切り替えに移るが説明は省略する。
【００２５】
以上により、スリープモード移行直前の最新のＣＲ発振回路２１の発振状態に基づいて、サブクロック２０の誤差が補正され、ＣＰＵ１１はスリープモードにおいても高精度のメインクロック１３と同等レベルの精度をもったクロック信号に基づいて所定の処理を実行することができる。
【００２６】
本実施の形態では、車両統合制御装置１０が発明におけるマイクロコンピュータに該当し、とくにサブクロック２０がスリープモード用のクロックに、メインクロック１３が標準クロック信号源に該当する。そして、サブクロック２０におけるＣＲ発振回路２１がクロックの発振源に該当する。
メインクロック１３のクロック信号が標準クロック信号源からのカウントデータに該当し、ＣＲ発振回路２１の発振パルスがクロックのカウントデータに該当する。
ＣＰＵ１１に入力するメインクロック１３のクロック信号が計時カウンタ２５に取り込まれる経路構成が発明における標準データ取得手段に該当する。
また、図２のフローチャートのステップ１０３が発明における第１工程に該当し、ステップ１０４が計測手段および第２工程に、そしてステップ１０８が補正手段および第３工程に該当する。
【００２７】
実施の形態は以上のように構成され、サブクロック２０をＣＲ発振回路２１とその発振パルスをカウントして目標カウントＰｍに達するごとにクロック信号を出力するループカウンタ２２とで形成し、サブクロック２０より周波数精度の高いメインクロック１３のクロック信号で計時する所定時間Ｔにおけるサブクロック２０（ＣＲ発振回路２１）の発振パルスをカウントして、そのパルスカウントＰに応じた目標カウントＰｍの補正によりサブクロック２０のクロック信号を補正するものとしたので、推定ではなく現実のカウント状態が把握されて、これに基づいて確実な補正が行われる。
【００２８】
また、上述のようにメインクロック１３のクロック信号による計時を基準として計測したパルスカウントＰに応じて、ループカウンタ２２の目標カウントＰｍを補正するので、低コストで消費電力も低く構成されるサブクロック２２であっても、高精度のメインクロック１３と同等レベルの精度をもったクロック信号が出力され、高い要求精度に対応できるものとなった。
【００２９】
とくにサブクロック２２の状態については、ＣＰＵ１１が通常動作モードにある間に所定時間間隔でサブクロック２０を動作させ、その発振パルスのパルスカウントＰをメモリ１２に格納しておき、
ＣＰＵ１１が通常動作モードからスリープモードへの移行するときに、メモリ１２に格納されている最新のパルスカウントＰを用いて目標カウントＰｍの補正を行うので、
スリープモードに入る際には常に最新のサブクロック２０の状態に適応した補正が実行され、安定して高精度のクロック信号が出力される。
【００３０】
サブクロック２０はＣＰＵ１１に内蔵されているので、低消費電力に構成するのが容易であるとともに、車両統合制御装置１０内の配線や設置スペースが不要となる。
【００３１】
なお、上記実施の形態では、クリスタル振動子を備えてＣＰＵ１１に対して外付けしたメインクロック１３からのクロック信号を所定時間Ｔを計時するためのカウントデータとしたが、例えば他の車載機器で受信・抽出した標準時刻を示す標準電波データやＧＰＳ信号に含まれる時間信号を標準クロック信号源からのカウントデータとして、車載ネットワークを介して取り込み。所定時間Ｔの計時に使用してもよい。
これによっても、スリープモード用のサブクロック２０から高精度のクロック信号を出力させることができる。
【００３２】
また、実施の形態では、先に述べたとおり低消費電力に構成するのが容易であること、また安価に構成出来ることから、スリープモード用のクロックをＣＰＵ１１に内蔵されたＣＲ発振回路２１を発振源とするサブクロック２０としたが、これに限定されず、ＣＰＵ１１に対して外付けのものとしてもよい。
さらに、例えばメインクロック１３より発振周波数が低くて消費電力の小さいものであれば、スリープモード用のクロックはＣＲ発振回路に限らず、クリスタル振動子やセラミック振動子によるものでもよい。
なお、実施の形態に示した諸数値はいずれも例示であって、本発明は記載の数値に限定されない。
【符号の説明】
【００３３】
１    入力装置
２    イグニションスイッチ
３    出力装置
１０    車両統合制御装置
１１    ＣＰＵ
１２    メモリ
１３    メインクロック
１４    入力インタフェース
１５    出力インタフェース
１６    通信インタフェース
１７    電源回路
２０    サブクロック
２１    ＣＲ発振回路
２２    ループカウンタ
２５    計時カウンタ
２６    パルスカウンタ
【図１】
0005968561.tif 000002
【図２】
0005968561.tif 000003