(57)【要約】【課題】ＣＰＵがスリープするスリープ動作モードを有するマイクロコンピュータが知られるが、従来は、ＣＰＵが定期的に起床し、入出力回路を監視する動作を行っていたため、比較的大きな電力を消費してしまうという問題点があった。【解決手段】マイクロコンピュータは、ＣＰＵクロックの供給を受けて、命令を実行するＣＰＵと、外部回路からＣＰＵ処理要求を受ける入出力回路と、ＣＰＵのスリープ期間に、入出力回路にアクセスして、ＣＰＵ処理要求を検出する監視動作を行う監視制御回路とを具備する。ＣＰＵは、スリープ期間に、命令の実行を停止する。監視制御回路は、スリープ期間に動作して、ＣＰＵ処理要求を検出したときに、スリープ期間を解除する。【選択図】図２
2009116719.tif 000002
【特許請求の範囲】
【請求項１】
ＣＰＵクロックの供給を受けて、命令を実行するＣＰＵと、
外部回路からＣＰＵ処理要求を受ける入出力回路と、
前記ＣＰＵのスリープ期間に、前記入出力回路にアクセスして、前記ＣＰＵ処理要求を検出する監視動作を行う監視制御回路とを具備し、
前記ＣＰＵは、
前記スリープ期間に、命令の実行を停止し、
前記監視制御回路は、
前記スリープ期間に動作して、前記ＣＰＵ処理要求を検出したときに、前記スリープ期間を解除する
マイクロコンピュータ。
【請求項２】
前記監視制御回路は、
シーケンサを有し、
前記シーケンサによって、前記ＣＰＵ処理要求を検出する監視動作を行う
請求項１記載のマイクロコンピュータ。
【請求項３】
前記シーケンサは、
シーケンサクロックを生成するシーケンサクロック生成回路を具備し、
前記シーケンサクロックに基づいて動作する
請求項２記載のマイクロコンピュータ。
【請求項４】
前記監視制御回路は、
前記シーケンサが間欠的に動作するように、間欠制御を行う
請求項２又は３に記載のマイクロコンピュータ。
【請求項５】
前記監視制御回路は、
時間計測を行う時間計測回路を更に有し、
前記時間計測回路が計測する時間を用いて、前記間欠制御を行う
請求項４記載のマイクロコンピュータ。
【請求項６】
前記時間計測回路は、
クロックを計数することなく、Ｃ（容量）×Ｒ（抵抗）の時定数を利用した時間に基づいて又はリーク電流を利用した電荷のリーク時間に基づいて、時間計測を行う
請求項５記載のマイクロコンピュータ。
【請求項７】
前記監視制御回路は、
前記時間計測回路が時間を計測する動作と、前記シーケンサが前記ＣＰＵ処理要求を検出する監視動作を行う動作とが交互に行われるように、前記間欠制御を行う
請求項５又は６記載のマイクロコンピュータ。
【請求項８】
前記時間計測回路は、
スリープ期間へ移行することを通知するスリープ移行信号又はスリープ期間を継続することを通知するスリープ継続信号を受信すると動作を開始し、所定時間を計測した後、監視起動信号を送出し、
前記シーケンサは、
前記監視起動信号を受信すると動作を開始し、前記入出力回路を監視し、前記ＣＰＵ処理要求が検出されなかった場合には、前記スリープ継続信号を送出し、前記ＣＰＵ処理要求が検出された場合には、前記スリープ期間を解除するスリープ解除信号を送出する
請求項７記載のマイクロコンピュータ。
【請求項９】
前記ＣＰＵは、
前記スリープ期間に、前記ＣＰＵクロックの供給を受けない
請求項１〜８いずれか１項に記載のマイクロコンピュータ。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、マイクロコンピュータに関する。
【背景技術】
【０００２】
スリープモード等の低消費電力モードを有し、不揮発性メモリを内蔵するマイクロコンピュータが知られる。近年、自動車内の各種制御が電子化され、この多くの処理を分散して行うため、多くのマイクロコンピュータが車両内で使用されている。特に車両内で使用され、車両内通信システムに接続されるマイクロコンピュータは、ボディ制御用マイコンとして知られる。ボディ制御用マイコンによって起動される各種制御プロセスは、常時機能しているわけでなく、イベント発生時に処理が行われ、イベントとイベントの間の時間帯は、ウェイト状態（マイクロコンピュータはスリープ状態）になっている。マイクロコンピュータは、イベント発生を外部機能ブロックの状態（ステータス）を参照することにより認識し、処理動作を行っている。
【０００３】
近年、フラッシュメモリ内蔵マイクロコンピュータが、自動車の各種電子機器の制御に使用されることが多くなった。この用途には、近年多くの半導体ＬＳＩ（Ｌａｒｇｅ  Ｓｃａｌｅ  Ｉｎｔｅｇｒａｔｉｏｎ）が適用されてきているため低消費電力化の要求が強くなってきている。自動車用のボディ制御用マイコンは常時動作をしていることはまずなく、分散処理を行う目的で制御システムを構成している。ボディ制御用マイコンは、定期的な処理を行う制御が中心となっているので、処理を行っていない間に、低消費電力モードを使用している場合が多い。また、処理を行っていない期間が、通常動作（プログラム処理動作）を行っている期間に比べて長くなる環境で使用されるため、処理を行っていない期間の消費電力を低減できれば非常に有益である。
【０００４】
特開平１１−２８８４０９号公報（特許文献１参照）には、低消費電力を実現するための低消費電力モードを持つマイクロコンピュータが記載されている。低消費電力モードから通常動作への移行時に内蔵フラッシュメモリではなく、内蔵ＲＡＭ（Ｒａｎｄｏｍ  Ａｃｃｅｓｓ  Ｍｅｍｏｒｙ）から初期動作のプログラムを実行させるという特徴を有している。低消費電力モード時に、フラッシュＥＥＰＲＯＭ（Ｅｌｅｃｔｒｏｎｉｃａｌｌｙ  Ｅｒａｓａｂｌｅ  ａｎｄ  Ｐｒｏｇｒａｍｍａｂｌｅ  Ｒｅａｄ  Ｏｎｌｙ  Ｍｅｍｏｒｙ）によるプログラム実行処理を、内蔵ＲＡＭによるプログラム実行処理により行う代替手段を有する。
【０００５】
特開２００２−６３１５０号公報（特許文献２参照）には、入力パルスを低周波クロックとするタイマで時間を計測し、定期的に外部端子のレベルを判定することにより、スリープモードを解除するマイクロコンピュータが記載されている。スリープモード時（ＣＰＵは停止している状態。内部は低周波発振器と一部の周辺回路のみが動作している状態。）には低周波発振器５から供給されるクロックで内部カウンタ又はタイマを動作させて、定期的にスリープモードを内部割り込み信号等を用いて解除する。このとき、予め設定しておいた割り込みベクタ・アドレス（内部ＲＡＭ領域）からプログラム（命令）を読み出し、ＣＰＵに転送する。ＣＰＵは、転送されたプログラム（命令）を実行し、周辺ＩＯの状態（フラグ：ステータスレジスタ）を読み出し、ＣＰＵ処理が必要な状態（周辺ＩＯの動作要求：動作モード変更、又はＣＰＵ処理要求：演算処理、分岐、データＲ／Ｗ処理等）にあるかを確認する。ＣＰＵは、ＣＰＵ処理が必要な状況にあることを周辺ＩＯレジスタの値を読み出すことにより認知すると、当該処理に必要なプログラムを格納したアドレス（番地）へ分岐する分岐制御を行う。ＣＰＵ処理が不要と判断した場合には、再びスリープモード状態の期間を設定するタイマ又はカウンタを初期化し、再スタートさせる。同時に、ＣＰＵの動作を停止して、再びスリープモード状態へ移行する。
【０００６】
ＣＰＵは、外部回路（外部回路は、キーレスエントリやランプ制御などの外部モジュール）からのウェイクアップ信号がない場合は、数ｍｓ〜数１００ｍｓのスリープ期間の後、発振手段からの内部ウェイクアップ信号によって起動される。そして、フラッシュメモリのセットアップ時間を待ち、接続された外部回路の状態監視（アナログ・デジタル入力値の判定など）を行う。ＣＰＵへの処理要求がなければ、再び数ｍｓ〜数１００ｍｓのスリープ期間へ移行し、ＣＰＵへの処理要求があれば処理用のプログラムを実行する。外部回路からのウェイクアップ信号があった場合は、ＣＰＵはスリープ期間の途中で起動し、外部回路との間で通信等の処理を行う。メモリには、少量多品種展開および出荷後のリプログラムを考慮して、フラッシュメモリを使用している。マスクＲＯＭのみをメモリとして使用した場合には、セットアップ時間の短縮は可能だが、少量多品種展開および出荷後のリプログラムができないというデメリットがある。
【０００７】
【特許文献１】特開平１１−２８８４０９号公報
【特許文献２】特開２００２−６３１５０号公報
【発明の開示】
【発明が解決しようとする課題】
【０００８】
上記特許文献２に記載された従来のマイクロコンピュータは、スリープ期間中もクロックを供給し、タイマ回路またはカウンタ回路を使用して、スリープ期間を解除するための時間を計測している。スリープ期間中に、クロックの動作電流と、タイマまたはカウンタ回路の動作電流とが消費されている。また、上記特許文献１及び２に記載された従来のマイクロコンピュータは、スリープ状態から通常状態に起床（ウェイクアップ）するときには、内蔵プログラムメモリを起動し、命令を実行するＣＰＵによって、外部ＩＯ状態を確認する。
【０００９】
一般的にはＣＰＵには多くの機能が含まれており、外部ＩＯ状態を確認する処理を行う際には、多くの機能ブロック（論理回路が動作：プログラムカウンタ回路、メモリ制御回路、ＩＲ（Ｉｎｓｔｒｕｃｔｉｏｎ  Ｒｅｇｉｓｔｅｒ）回路、命令デコード回路、タイミング生成回路、命令実行回路、レジスタアクセス回路、データバス回路、レジスタ内容チェックのための演算処理制御回路、演算回路、演算結果判定処理制御回路、演算結果判定処理制御、分岐処理制御回路等）が動作する。このときの消費電力は一般的に〔Ｆ（動作周波数）×Ｃ（動作負荷容量（ゲート数に比例））×Ｖ（動作電圧）〕の大きさに比例して表現できる。従って、外部ＩＯ状態を確認する際の動作も、通常動作と同等の消費電力が必要となる。
【００１０】
そのため、従来のマイクロコンピュータは、ＣＰＵのスリープ動作モードから起床して、外部ＩＯ状態を確認する際の動作で、ＣＰＵが通常動作モードにあるときと同じ電力を必要とする欠点を有している。一般にボディマイコン制御において、スリープ状態から間欠的に起き上がり外部ＩＯ状態を観測し、外部ＩＯに変化がない場合には再びスリープ状態に戻る制御が行われている。従来のマイクロコンピュータでは、スリープ状態から起床する時のプログラムメモリの起動電力や、ＣＰＵでプログラム実行に必要となる消費電力は通常動作時と同じ電力が必要になる欠点を有している。また、特許文献２のマイクロコンピュータでは、スリープ状態において、スリープ期間の時間計測に、クロック計数によるカウントアップを行っていたため、クロック生成及び供給に必要な電力を消費してしまう問題もあった。
【課題を解決するための手段】
【００１１】
以下に、［発明を実施するための最良の形態］で使用される番号・符号を用いて、［課題を解決するための手段］を説明する。これらの番号・符号は、［特許請求の範囲］の記載と［発明を実施するための最良の形態］との対応関係を明らかにするために括弧付きで付加されたものである。ただし、それらの番号・符号を、［特許請求の範囲］に記載されている発明の技術的範囲の解釈に用いてはならない。
【００１２】
本発明によるマイクロコンピュータ（１１）においては、ＣＰＵ（４０）は、ＣＰＵクロックの供給を受けて、命令を実行する。入出力回路（３２〜３８）は、外部回路（２０〜２４）からＣＰＵ処理要求を受ける。監視制御回路（３０）は、ＣＰＵ（４０）のスリープ期間に、入出力回路（３２〜３８）にアクセスして、ＣＰＵ処理要求を検出する監視動作を行う。ＣＰＵ（４０）は、スリープ期間に、命令の実行を停止する。監視制御回路（３０）は、スリープ期間に動作して、ＣＰＵ処理要求を検出したときに、スリープ期間を解除する。
【００１３】
本発明では、入出力回路（３２〜３８）にアクセスして、ＣＰＵ処理要求を検出する監視動作を行う監視制御回路（３０）を有している。よって、ＣＰＵ（４０）は、スリープ期間中に定期的に起床し、入出力回路（３２〜３８）にアクセスし、ＣＰＵ処理要求を検出するためのプログラムを実行する必要が無くなる。従って、プログラムを実行するＣＰＵ（４０）及びプログラムを格納するフラッシュメモリを起動し、かつ、動作させるために必要となる消費電力が不要となり、低消費電力化を図ることが可能になる。
【発明の効果】
【００１４】
本発明によれば、マイクロコンピュータの消費電力を低減することができる。
【発明を実施するための最良の形態】
【００１５】
本発明の実施形態を、図面を用いて詳述する。図１に、車両を示す。図１において、車両１０は、マイクロコンピュータ１１を搭載している。マイクロコンピュータ１１と、その外部に配置された外部回路とは、車両内通信システムを構築している。マイクロコンピュータ１１は、複数の入出力端子１２〜１８と、振動子端子１９とを有している。入出力端子１２〜１８は、図示されている外部回路２０〜２４又は不図示の外部回路に接続されている。入出力端子１２には、ステアリングセンサなどのセンサ信号を、デジタル信号として、マイクロコンピュータ１１へ伝えるセンサ系インタフェース回路２０が接続されている。入出力端子１３には、マイクロコンピュータ１１へパルスを入力するパルス入力インタフェース回路２１が接続されている。入出力端子１４には、スイッチが入力されたこと、故障診断を行うことなどを、マイクロコンピュータ１１へ知らせるスイッチ入力インタフェース回路２２が接続されている。入出力端子１５には、圧力センサ、位置センサ、加速度センサなどのセンサ信号を、アナログ値として、マイクロコンピュータ１１へ伝えるアナログ入力インタフェース回路２３が接続されている。入出力端子１６には、車両内通信システムから通知される外部割込み信号が入力される。入出力端子１７には、車両内通信システムから通知される電圧モニタ信号が入力される。入出力端子１８には、車両内通信システムの車両内通信バス（ＣＡＮ（Ｃｏｎｔｒｏｌｌｅｒ  Ａｒｅａ  Ｎｅｔｗｏｒｋ）又はＬＩＮ（Ｌｏｃａｌ  Ｉｎｔｅｒｃｏｎｎｅｃｔ  Ｎｅｔｗｏｒｋ））を介して、データを送受信するトランシーバ２４が接続されている。振動子端子１９は、模式的に一つの記号で図示されているが、詳細には２個の端子を有していて、不図示の水晶振動子に接続されている。その他、マイクロコンピュータ１１は、不図示の電源端子を有し、電源の供給を受けている。
【００１６】
図２に、マイクロコンピュータの主要ブロックの構成図を示す。図２において、マイクロコンピュータ１１は、プログラムの命令を実行するＣＰＵ４０を有している。入出力端子１２〜１８には、入出力回路３２〜３８が接続されている。入出力回路３２〜３８は、マイクロコンピュータ１１の入力信号を受け、出力信号を保持する。入出力回路３２は、入出力端子１２から入力されるデジタルのセンサ信号を受ける。入出力回路３３は、入出力端子１３から入力されるパルスを受け、タイマ／カウンタ回路４２へ転送する。入出力回路３４は、入出力端子１４から入力されるスイッチ入力信号を受ける。入出力回路３５は、入出力端子１５から入力されるアナログ信号を受け、アナログ・デジタル変換回路４３へ転送する。入出力回路３６は、入出力端子１６から入力される外部割込み信号を受ける。入出力回路３７は、入出力端子１７から入力される電圧モニタ信号を受ける。入出力回路の一つである車両内通信コントロール回路３８は、入出力端子１８から入力されるトランシーバ２４の出力信号を受ける。
【００１７】
図２において、オシレータ４６は、振動子端子１９に接続された振動子により発振し、メインクロックを生成する。クロック制御回路４８は、メインクロックに基づいて、ＣＰＵクロックと周辺クロックとを生成し、各回路ブロックに供給する。ＣＰＵクロックは、ＣＰＵ４０に供給される。周辺クロックは、ＣＰＵ４０の周辺に配置される回路ブロックに供給される。
【００１８】
図２に示すように、マイクロコンピュータ１１には、監視制御回路３０が設けられている。監視制御回路３０は、入出力回路３２〜３８に接続されている。監視制御回路３０は、ＣＰＵ４０がスリープしているときに動作する。このとき、監視制御回路３０は、入出力回路３２〜３８を監視する。監視制御回路３０は、入出力回路３２〜３８へ読出制御信号を送出すると共に、バスＤＢ１を介してステータス・データを読み出し、マイクロコンピュータ１１に対するＣＰＵ処理要求が有るか否かを確認する。なお、スリープとは、ＣＰＵが有する動作モードの一つで、命令又は内／外部信号によりＣＰＵの動作が停止している状態を言う。一般に、この状態（動作停止）はＣＰＵクロックが停止する。
【００１９】
その他、マイクロコンピュータ１１は、プログラムを記憶するフラッシュメモリ、このフラッシュメモリを制御する不揮発性メモリ制御回路、ワークエリアに用いられるＲＡＭなどの回路ブロックを有している。
【００２０】
図２において、マイクロコンピュータ１１に電源が供給されると、ＣＰＵ４０が起動する。ＣＰＵ４０は、所定の命令を実行し終えると、スリープ移行信号を送出する。スリープ移行信号の送出により、オシレータ４６及びクロック制御回路４８の動作が停止し、マイクロコンピュータ１１の各回路ブロックへのクロック供給が停止する。ＣＰＵ４０は、ＣＰＵクロックの供給停止により、スリープに入る。スリープ移行信号は、監視制御回路３０へも送出される。監視制御回路３０は、スリープ移行信号を受信すると、監視動作を開始する。監視制御回路３０は、読出制御信号を送出すると共に、バスＤＢ１からステータス・データを読み出して、入出力回路３２〜３８の監視を行う。
【００２１】
ステータス・データを解析することにより、マイクロコンピュータ１１に対するＣＰＵ処理要求を検出した場合、監視制御回路３０は、スリープ解除信号を送出して、動作を停止する。スリープ解除信号の送出により、オシレータ４６及びクロック制御回路４８の動作が再開し、マイクロコンピュータ１１の各回路ブロックへのクロック供給が始まる。ＣＰＵ４０は、ＣＰＵクロックの供給再開により、起床する。ＣＰＵ４０は、ＣＰＵ処理要求を受信した入出力回路３２〜３８にアクセスし、ＣＰＵ処理要求の内容を確認し、その内容に応じた所定のプログラムを実行する。
【００２２】
例えば、アナログ入力インタフェース回路２３は、一連のアナログ信号を送出する前に、アナログ／デジタル変換開始信号を送出し、マイクロコンピュータ１１に対してＣＰＵ処理要求を通知する。図２において、入出力回路３５は、アナログ／デジタル変換開始信号を受ける。ＣＰＵ４０がスリープしているとき、監視制御回路３０は、入出力回路３５へ読出制御信号を送出する。アナログ／デジタル変換開始信号は、入出力回路３５、アナログ・デジタル変換回路４３、及びバスＤＢ１を経由して、監視制御回路３０へ転送される。アナログ／デジタル変換開始信号を検出すると、監視制御回路３０は、スリープ解除信号を送出して、スリープしているＣＰＵ４０を起こしにいく。
【００２３】
図３に、マイクロコンピュータの状態遷移図を示す。図示するように、マイクロコンピュータ１１は、通常動作モード５０と、スリープ動作モード５１とを有している。マイクロコンピュータ１１が通常動作モード５０にあるとき、ＣＰＵ４０は、ＣＰＵクロックの供給を受けて、命令を実行する。監視制御回路３０は、消費電力を低減するため、望ましくは、動作を停止する。一方、マイクロコンピュータ１１がスリープ動作モード５１にあるとき、ＣＰＵ４０は動作を停止し、監視制御回路３０が動作する。監視制御回路３０は、入出力回路３２〜３８を監視し、ＣＰＵ処理要求が有るか否かを確認する。図３において、通常動作モード５０からスリープ動作モード５１への切り替えは、スリープ移行信号の送出を契機として行われる。また、スリープ動作モード５１から通常動作モード５０への切り替えは、スリープ解除信号の送出を契機として行われる。スリープ移行信号は、ＣＰＵ４０が所定の命令を実行し終えたことを契機として送出することができる。スリープ解除信号は、監視制御回路３０が、ＣＰＵ処理要求を検出したことを契機として送出することができる。
【００２４】
図４に、監視制御回路のブロック構成図を示す。図４において、監視制御回路３０は、時間計測回路６１と、シーケンサ６２とを有している。監視制御回路３０は、スリープ動作モード５１へ移行することを通知するスリープ移行信号を受信し、また、スリープ動作モード５１から通常動作モード５０への移行を通知するスリープ解除信号を送信する。監視制御回路３０において、スリープ移行信号は、時間計測回路６１に入力される。時間計測回路６１は、一定時間を計測した後、監視起動信号を出力する。シーケンサ６２は、この監視起動信号を入力することにより、予め決められたシーケンス制御に従って動作を開始し、入出力回路３２〜３８からステータス・データを読み出す。シーケンサ６２は、ＣＰＵ処理要求が検出されなかった場合には、スリープ継続信号を出力する。このスリープ継続信号は、時間計測回路６１へ入力される。一方、ＣＰＵ処理要求が検出された場合には、スリープ解除信号を出力する。スリープ解除信号は、オシレータ４６及びクロック制御回路４８へ入力される。
【００２５】
図５に、シーケンサのブロック構成図を示す。ここでは、説明を簡素化するために、四つのみの入出力回路３２〜３５を監視するシーケンサ６２の構成例を示している。簡単な設計変更により、多数の入出力回路を監視できるシーケンサを作ることが可能である。なお、タイマ／カウンタ回路４２及びアナログ・デジタル変換回路４３の図示を省略している。図５において、シーケンサ６２は、シーケンサ（ＳＱＣ）クロック生成回路６３と、タイミング発生回路６４と、読出制御回路６５と、レジスタ６６と、判定回路６７とを有している。図中、ＳＱＣクロック生成回路６３は、監視起動信号を受信することにより動作を開始し、シーケンサ６２内部で使用されるＳＱＣクロックＳＱＣ＿ＣＬＫを生成する。タイミング発生回路６４は、ＳＱＣクロックＳＱＣ＿ＣＬＫに基づいて、タイミング信号Ｔ１〜Ｔ４を発生する。読出制御回路６５は、タイミング信号Ｔ１〜Ｔ４に基づいて、読出制御信号と、監視終了信号ＴＥと、ポート・データ・チェック信号ＲＷＲとを出力する。読出制御信号は、ポートデータ読出信号ＰＲＤと、ポート選択信号ＣＳ１〜ＣＳ４とを有する。レジスタ６６は、ポート・データ・チェック信号ＲＷＲのオンに同期して、バスＤＢ１からステータス・データを取り込み、記憶する。判定回路６７は、レジスタ６６に書き込まれたステータス・データを読み出し、前回のステータス・データと、今回のステータス・データとの間に、ＣＰＵ処理要求を示す変化が生じていないかを判定する。変化無の場合、スリープ継続信号を送出する。変化有の場合、ＣＰＵ処理要求に対処するため、スリープ解除信号を送出してＣＰＵを起こしにいく。
【００２６】
図６に、図５のシーケンサの動作を説明するタイミングチャートを示す。図６において、監視起動信号がオンになることにより、ＳＱＣクロックＳＱＣ＿ＣＬＫが生成されている。このＳＱＣクロックＳＱＣ＿ＣＬＫの一つ目の立ち上がりでタイミング信号Ｔ１が生成されている。タイミング信号Ｔ２は、三つ目のＳＱＣクロックＳＱＣ＿ＣＬＫの立ち上がりで生成されている。タイミング信号Ｔ３は、五つ目のＳＱＣクロックＳＱＣ＿ＣＬＫの立ち上がりで生成され、タイミング信号Ｔ４は、七つ目のＳＱＣクロックＳＱＣ＿ＣＬＫの立ち上がりで生成されている。タイミング信号Ｔ１に一周期だけ遅れて、ポートデータ読出信号ＰＲＤがオンになっている。その後、ポート選択信号ＣＳ１がオンになると、入出力回路３２のステータス・データがバスＤＢ１に現れ、ポート選択信号ＣＳ２がオンになると、入出力回路３３のステータス・データがバスＤＢ１に現れ、ポート選択信号ＣＳ３がオンになると、入出力回路３４のステータス・データがバスＤＢ１に現れ、ポート選択信号ＣＳ４がオンになると、入出力回路３５のステータス・データがバスＤＢ１に現れている。各ポート選択信号ＣＳ１〜ＣＳ４のオンに続いて、ポート・データ・チェック信号ＲＷＲがオンになり、このタイミングで、レジスタ６６への書き込みが行われている。ポート・データ・チェック信号ＲＷＲを利用せずに、レジスタ６６への書き込みタイミングを制御することは可能であるが、当例のように、ポート・データ・チェック信号ＲＷＲを利用した方が制御は容易と考えられる。四つの入出力回路３２〜３５の各ステータス・データを順次レジスタ６６へ書き込んだ後、監視終了信号ＴＥがオンになり、ＳＱＣクロックＳＱＣ＿ＣＬＫの生成が停止している。図６は、各ステータス・データＤＢを解析した結果、ＣＰＵ処理要求が検出されなかった場合の例であり、監視終了信号ＴＥがオンになった後、シーケンサ６２からは、スリープ継続信号が送出されている。スリープ解除信号は、送出されていない。なお、各ステータス・データＤＢを解析した結果、ＣＰＵ処理要求が検出された場合には、監視終了信号ＴＥがオンになった後、シーケンサ６２からは、スリープ解除信号が送出され、スリープ継続信号は送出されない。
【００２７】
図７に、時間計測回路の構成図を示す。図７の時間計測回路６１は、タイマやカウンタなどを用いてクロックを計数することなく、Ｃ（容量）×Ｒ（抵抗）の時定数を利用して時間を計測する。より具体的に言えば、キャパシタＣ１へのチャージ・アップ時間を利用して時間を計測する。図７において、時間計測回路６１は、エッジ検出で反転するＲＳ型フリップフロップ回路７５と、ワンショットパルス発生回路７６と、トランジスタ７７とを有している。フリップフロップ回路７５は、スリープ動作モードを設定する。スリープ移行信号又はスリープ継続信号がオンになるエッジでセット状態に反転し、出力信号Ａがオンになる。ワンショットパルス発生回路７６は、オンになったＦ／Ｆ出力信号Ａを入力すると、間欠動作設定パルスＰＳをひとつ出力する。トランジスタ７７は、間欠動作設定パルスＰＳを受けるとオンになる。このとき、トランジスタ７７のソースとドレインが導通し、キャパシタＣ１に蓄積された電荷が放電する。間欠動作設定パルスＰＳがローになると、トランジスタ７７はオフになり、トランジスタＴＲ１を介してキャパシタＣ１に電荷が充電される。その後、キャパシタＣ１の電位が一定値を超えると、インバータＩＮＶ１の出力がローに、インバータＩＮＶ１と同等の特性を有するインバータＩＮＶ２の出力がハイになり、監視起動信号がオンになる。この監視起動信号は、シーケンサ６２へ出力されるとともに、エッジ検出のフリップフロップ回路７５をリセットする。なお、キャパシタＣ１は、時間計測回路６１の外部に、場合によっては、マイクロコンピュータ１１の外部に設けることも可能である。
【００２８】
図８に、図７の時間計測回路の動作説明図である。図８において、スリープ継続信号の立ち上がりが検出されると、スリープ動作モード設定ＦＦ７５が反転してセット状態になり、ＦＦ出力Ａがオンになっている。このタイミングで、間欠動作設定パルスＰＳが出力されている。キャパシタＣ１が放電を開始し、Ｃ１電位がＩＮＶ１閾値を下回ったところで監視起動信号がローになり、時間計測期間に入る。時間計測期間では、いったん電荷を放電したキャパシタＣ１に、電荷が再充電される。この再充電の過程で、Ｃ１電位がＩＮＶ１閾値を超えると、監視起動信号がオンになり、エッヂ検出のスリープ動作モード設定ＦＦ７５が反転してリセット状態になり、ＦＦ出力Ａがオフになる。ここで、スリープ期間における時間計測期間が終了し、シーケンサ動作期間が始まる。シーケンサ動作期間では、シーケンサ６２が監視動作を行う。監視動作の結果、ＣＰＵ処理要求が検出されなかった場合には、シーケンサ６２は、スリープ継続信号を送出して動作を停止する。このスリープ継続信号により、再び、キャパシタＣ１が放電を開始し、監視起動信号がローになり、時間計測期間が始まり、監視制御回路３０の間欠動作が繰り返される。
【００２９】
図９に、時間計測回路の変形例を示す。図９の時間計測回路７８は、図７の時間計測回路６１と同様のタイミングで動作することが可能であり、置換可能である。図９の時間計測回路７８は、タイマやカウンタなどを用いてクロック計数をすることなく、リーク電流による電荷のリーク時間を利用して時間を計測する。図９において、時間計測回路７８は、エッジ検出で反転するＲＳ型フリップフロップ回路７５と、ワンショットパルス発生回路７６と、トランジスタ７９とを有している。トランジスタ７９は、間欠動作設定パルスＰＳを受けるとオンになる。このとき、トランジスタ７９のソースとドレインが導通し、キャパシタＣ１に電荷が充電される。間欠動作設定パルスＰＳがローになると、トランジスタ７９はオフになり、キャパシタＣ１から電荷がリークする。その後、キャパシタＣ１の電位が一定値を下回ると、インバータＩＮＶ１の出力が反転してハイになり、監視起動信号がオンになる。この監視起動信号は、シーケンサ６２へ出力されるとともに、エッジ検出のフリップフロップ回路７５をリセットする。なお、キャパシタＣ１は、時間計測回路７８の外部に、場合によっては、マイクロコンピュータ１１の外部に設けることも可能である。
【００３０】
図１０は、図９の時間計測回路の動作説明図である。図１０において、スリープ移行信号の立ち上がりが検出されると、スリープ動作モード設定ＦＦ７５がセットされ、ＦＦ出力Ａがオンになり、間欠動作設定パルスＰＳが出力されている。キャパシタＣ１が充電を開始し、Ｃ１電位がＩＮＶ１閾値を超えたところで監視起動信号がローになり、時間計測期間に入る。時間計測期間では、キャパシタＣ１から、充電した電荷がリークする。このリークの過程で、Ｃ１電位がＩＮＶ１閾値を下回ると、インバータＩＮＶ１の出力が反転してハイになり、監視起動信号がオンになり、エッヂ検出のスリープ動作モード設定ＦＦ出力Ａがリセットされてオフになる。ここで、スリープ期間における時間計測期間が終了し、シーケンサ動作期間が始まる。その後も、電荷のリークが継続されるが、監視動作を終了したシーケンサ６２からスリープ継続信号が通知されると、再び、ＦＦ出力Ａがオンになり、間欠動作設定パルスＰＳが出力され、キャパシタＣ１に電荷が再充電される。
【００３１】
図７〜図１０に説明した時間計測回路６１，７８では、時間を計数する手段にクロック及びタイマ／カウンタ回路を使用していない。そのため、監視制御回路３０が時間計測期間にあるときの電力消費を、リーク電流又はチャージ電流によるもののみに削減することが出来る。一般的にクロック回路及びタイマ／カウンタ回路を動作させたときの動作電流は、数百マイクロアンペア程度必要になる。本実施の形態による時間計測回路６１，７８では、１マイクロアンペア以下の電流（リーク電流又はチャージ電流）の消費に抑えることが可能である。
【００３２】
図１１に、マイクロコンピュータの動作を説明するタイミングチャートを示す。図１１は、シーケンサ６２による監視動作において、ＣＰＵ処理要求が検出されなかった場合の例である。図１１において、ＣＰＵ４０は、所定の命令を実行し終えると、スリープ移行信号を送出する。ＣＰＵ４０の動作は停止し、監視制御回路３０の動作が始まる。監視制御回路３０では、まず、時間計測回路６１が動作する。時間計測回路６１が、一定時間を計測すると、監視起動信号が送出されて、シーケンサ６２の動作が始まる。シーケンサ６２が、タイミング信号に合わせて、入出力回路３２〜３５へ読出制御信号を送出すると、バスＤＢ１に、順次、各入出力回路３２〜３５のステータス・データが現れる。その後、監視終了信号が送出されると共に、ＣＰＵ処理要求が検出されなかった場合のスリープ継続信号が時間計測回路６１へ送出される。スリープ解除信号は送出されない。ＣＰＵ４０は停止したままであり、スリープ動作モード５１が継続される。
【００３３】
図１２に、マイクロコンピュータの動作を説明する別のタイミングチャートを示す。図１２は、シーケンサ６２による監視動作において、ＣＰＵ処理要求が検出された場合の例である。図１２において、ＣＰＵ４０は、所定の命令を実行し終えると、スリープ移行信号を送出する。ＣＰＵ４０の動作は停止し、監視制御回路３０の動作が始まる。監視制御回路３０では、まず、時間計測回路６１が動作する。時間計測回路６１が、一定時間を計測すると、監視起動信号が送出されて、シーケンサ６２の動作が始まる。シーケンサ６２が、タイミング信号に合わせて、入出力回路３２〜３５へ読出制御信号を送出すると、バスＤＢ１に、順次、各入出力回路３２〜３５のステータス・データが現れる。その後、監視終了信号が送出されると共に、ＣＰＵ処理要求が検出された場合のスリープ解除信号が発出される。スリープ継続信号は送出されない。マイクロコンピュータ１１は、スリープ動作モード５１から通常動作モード５０へ遷移する。発振安定期間を経て、クロック制御回路４８によって供給されるＣＰＵクロックが安定すると、ＣＰＵ４０は動作を再開し、ＣＰＵ処理要求に対処する。
【００３４】
図１３に、シーケンサの変形例を示す。図１３のシーケンサ７０は、図５のシーケンサ６２におけるレジスタ６６及び判定回路６７部分に変更を加えたものであり、図５のシーケンサ６２が有するＳＱＣクロック生成回路６３と、タイミング発生回路６４と、読出制御回路６５と同じ回路ブロックを有している。図１３において、基準値記憶回路７２は、ＣＰＵ処理要求を示す論理が成立する条件となる所定の基準値を記憶する。基準値は、デフォルト値を予め設定しておくことが可能であり、また、通常動作モードのときに、ＣＰＵ４０から書き込むことが可能である。比較回路７３は、レジスタ７１の値と基準値記憶回路７２の基準値とを比較する。判定回路７４は、比較回路７３が不一致を示していた場合には、ＣＰＵ処理要求を示す論理が成立していないと判定して、スリープ継続信号を送出する。一致を示していた場合には、ＣＰＵ処理要求を示す論理が成立したと判定して、スリープ解除信号を送出する。図５のシーケンサ６２は、入出力回路３２〜３５のステータス・データについて、前回のものと今回のものとを比較して、相対的な判定を行う例であり、図１３のシーケンサ７０は、所定の基準値と比較して、絶対的な判定を行う例である。
【００３５】
本実施の形態における監視制御回路３０においては、ＣＰＵ処理要求の有無を確認する手段に、メモリから命令を読み出し、解釈し、実行するＣＰＵを使用していないため、消費電力が低減されている。例えば、ＣＰＵの主要機能ブロックを構成するゲート数は数万ゲート必要であるが、本実施の形態によるシーケンサ６２では、その百分の一以下である数百ゲート程度で実現可能である。ＣＰＵ４０やシーケンサ６２の消費電力は、〔Ｆ（動作周波数）×Ｃ（動作負荷容量）×Ｖ（動作電圧）〕で計算することができるが、この式のＣ（動作負荷容量）はゲート数に比例するので、本実施の形態では、１桁以上の大きな低消費電力化を期待できる。また、消費電流で見ても、一般にＣＰＵの消費電流は、数十ミリアンペア程度である。一方、本実施の形態によるシーケンサ６２の消費電流は、数百マイクロアンペア程度で実現することが可能であるから、本実施の形態による車載マイクロコンピュータでは、消費電流が顕著に低減されることがわかる。
【図面の簡単な説明】
【００３６】
【図１】図１は、車両を示す図である。
【図２】図２は、マイクロコンピュータの主要ブロックの構成図である。
【図３】図３は、マイクロコンピュータの状態遷移図である。
【図４】図４は、監視制御回路のブロック構成図である。
【図５】図５は、シーケンサのブロック構成図である。
【図６】図６は、図５のシーケンサの動作を説明するタイミングチャートである。
【図７】図７は、時間計測回路の構成図である。
【図８】図８は、図７の時間計測回路の動作説明図である。
【図９】図９は、時間計測回路の変形例を示す図である。
【図１０】図１０は、図９の時間計測回路の動作説明図である。
【図１１】図１１は、マイクロコンピュータの動作を説明するタイミングチャートを示す図である。
【図１２】図１２は、マイクロコンピュータの動作を説明する別のタイミングチャートを示す図である。
【図１３】図１３は、シーケンサの変形例を示す図である。
【符号の説明】
【００３７】
１０  車両
１１  マイクロコンピュータ
１２〜１８  入出力端子
１９  振動子端子
２０〜２４  外部回路
２５  車両内通信バス
３０  監視制御回路
３２〜３８  入出力回路
４０  ＣＰＵ
４２  タイマ／カウンタ回路
４３  アナログ・デジタル変換回路
４６  オシレータ
４８  クロック制御回路
５０  通常動作モード
５１  スリープ動作モード
６１，７８  時間計測回路
６２，７０  シーケンサ
６３  シーケンサ（ＳＱＣ）クロック生成回路
６４  タイミング発生回路
６５  読出制御回路
６６，７１  レジスタ
６７，７４  判定回路
７２  基準値記憶回路
７３  比較回路
７５  フリップフロップ回路
７６  ワンショットパルス発生回路
７７，７９  トランジスタ
【図１】
2009116719.tif 000003
【図２】
2009116719.tif 000004
【図３】
2009116719.tif 000005
【図４】
2009116719.tif 000006
【図５】
2009116719.tif 000007
【図６】
2009116719.tif 000008
【図７】
2009116719.tif 000009
【図８】
2009116719.tif 000010
【図９】
2009116719.tif 000011
【図１０】
2009116719.tif 000012
【図１１】
2009116719.tif 000013
【図１２】
2009116719.tif 000014
【図１３】
2009116719.tif 000015