(57)【要約】【課題】ＣＰＵのクロックが停止しているスリープモードにおいて出力端子のレベルを変える機能を有するマイクロコンピュータにおいて、出力端子のレベルを変えるまでの時間と出力端子のレベルを変えてからスリープモードを解除するまでの時間を自在に設定できるようにする。【解決手段】ＣＰＵと、ＣＰＵのスリープモードの設定と解除を制御するスタンバイ制御部と、出力端子と、第１のタイマと、前記ＣＰＵがスリープモードのときに第１のタイマがあらかじめ定められた計時を行うと、スリープモードを保ったまま、出力端子のレベルを変える出力端子制御部と、スリープモードにおいて出力端子制御部が出力端子のレベルを変えるときに計時を開始する第２のタイマと、を備え、スタンバイ制御部は、第２のタイマが所定の計時を行うとＣＰＵのスリープモードを解除する。【選択図】図１
2011008698.tif 000002
【特許請求の範囲】
【請求項１】
ＣＰＵと、
前記ＣＰＵのスリープモードの設定と解除を制御するスタンバイ制御部と、
出力端子と、
第１のタイマと、
前記ＣＰＵが前記スリープモードのときに前記第１のタイマがあらかじめ定められた計時を行うと、前記スリープモードを保ったまま、出力端子のレベルを変える出力端子制御部と、
前記スリープモードにおいて前記出力端子制御部が前記出力端子のレベルを変えるときに計時を開始する第２のタイマと、
を備え、
前記スタンバイ制御部は、前記第２のタイマが所定の計時を行うと前記ＣＰＵのスリープモードを解除することを特徴とするマイクロコンピュータ。
【請求項２】
前記ＣＰＵが動作状態にあるときにメインクロックを前記ＣＰＵに供給し、前記スリープモードに設定されると前記メインクロックを停止するメインクロック制御部と、
前記第１のタイマ及び前記第２のタイマにサブクロックを供給するサブクロック制御部と、
をさらに備えることを特徴とする請求項１記載のマイクロコンピュータ。
【請求項３】
前記スリープモードにおいて、前記ＣＰＵは、内部データを保持したまま、動作を一時停止し、前記スタンバイ制御部により、スリープモードが解除されると、前記一時停止した状態から動作を再開することを特徴とする請求項１又は２記載のマイクロコンピュータ。
【請求項４】
前記第１及び第２のタイマは、それぞれ前記サブクロックをカウントするカウンタと、
前記ＣＰＵの命令によって任意の値に設定可能なコンペアレジスタと、
前記カウンタと前記コンペアレジスタの値が一致したときに、一致検出信号を出力する比較部とを備えることを特徴とする請求項２又は３記載のマイクロコンピュータ。
【請求項５】
前記第２のタイマのコンペアレジスタには、前記第１のタイマのコンペアレジスタとは独立した値が設定できることを特徴とする請求項４記載のマイクロコンピュータ。
【請求項６】
前記スリープモードのときに前記第１のタイマの一致検出信号を受けると、
前記出力端子制御部は前記出力端子の出力電圧レベルを変え、
前記第２のタイマは前記カウンタのカウントを開始することを特徴とする請求項４又は５記載のマイクロコンピュータ。
【請求項７】
前記スリープモードにおいて、前記スタンバイ制御部は、前記第２のタイマの一致検出信号を受けて前記スリープモードを解除することを特徴とする請求項４乃至６いずれか１項記載のマイクロコンピュータ。
【請求項８】
マイクロコンピュータと、前記マイクロコンピュータにより制御される外部装置を含み、前記マイクロコンピュータ及び前記外部装置が、それぞれ通常動作モードと、前記通常動作モードより低消費電力なスリープモードと、を備えたマイクロコンピュータシステムであって、
前記マイクロコンピュータは、
前記外部装置の前記モードを制御する出力端子と、
前記マイクロコンピュータ及び前記外部装置のいずれもがスリープモードのときに、前記外部装置をウェイクアップする時間を計測する第１のタイマと、
前記第１のタイマが前記外部装置のウェイクアップ時間を計測したときに、前記マイクロコンピュータのスリープモードを維持しながら、前記出力端子のレベルを変えて前記外部装置をウェイクアップさせる出力端子制御部と、
前記第１のタイマが前記外部装置のウェイクアップ時間まで計測したときに、カウントを開始し、前記マイクロコンピュータのウェイクアップ時間を計測し、前記マイクロコンピュータのウェイクアップ時間が到来したときに、前記マイクロコンピュータを前記スリープモードから解除し、通常動作モードに復帰させる第２のタイマと、
を備えることを特徴とするマイクロコンピュータシステム。
【請求項９】
前記第２のタイマは、前記マイクロコンピュータ及び前記外部装置が同時に通常動作モードになるように、前記マイクロコンピュータのスリープモードから解除するタイミングを計測することを特徴とする請求項８記載のマイクロコンピュータシステム。
【請求項１０】
前記第１、第２のタイマの計測時間はそれぞれ独立して設定できるように構成されていることを特徴とする請求項８又は９記載のマイクロコンピュータシステム。
【請求項１１】
前記マイクロコンピュータと外部装置が、同一半導体基板に形成されていることを特徴とする請求項８乃至１０いずれか１項記載のマイクロコンピュータシステム。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、マイクロコンピュータ及びマイクロコンピュータシステムに関する。特に、ＣＰＵの動作が休止しているスリープモードにおいて、出力端子のレベルを変えることのできるマイクロコンピュータ及びそのマイクロコンピュータを利用したマイクロコンピュータシステムに関する。
【背景技術】
【０００２】
例えばキーレス・エントリ・システムなどのマイクロコンピュータが制御する車載アプリケーションにおいて、マイクロコンピュータとマイクロコンピュータが制御する外部装置とを間欠動作させるマイクロコンピュータシステムが知られている。動作が不要なときにシステムクロックを停止するなどしてシステムの消費電力を図るためである。
【０００３】
近年、間欠動作の動作開始時にシステム全体の機能診断を行うシステムが増加してきている。特に間欠動作では、ウェイクアップ時間を極力短縮することによりシステムの低消費電力化が求められている。間欠動作の時間管理をマイクロコンピュータで制御する方法として、マイクロコンピュータに内蔵するタイマ回路によって、特定入出力ポート値を変化させて外部装置のウェイクアップ信号に使用することが知られている。
【０００４】
図４は、特許文献１の図２５に記載されている従来のマイクロコンピュータ全体のブロック図である。マイクロコンピュータ１０１は、ＣＰＵ１０２を中心として、その周辺にメイン発振回路１０３，クロック制御回路１０４，ＣＲ発振回路１０５，ポート制御回路（信号レベル変化手段）１０６などを備えている。メイン発振回路１０３は、マイクロコンピュータ１０１の外部に接続される水晶発振子１０７を発振させてＣＰＵ１０２に動作用のクロック信号（マシンクロック或いはシステムクロック）を供給するものである。
【０００５】
クロック制御回路１０４は、ウェイクアップ要因の発生に応じて出力されるウェイクアップ信号ＷＫＵＰを受けて、クロック停止信号の出力を中止してメイン発振回路１０３によるクロック信号の出力を再開させる。ポート制御回路１０６は、ＣＰＵ１０２が内部のレジスタに行う設定に応じて、マイクロコンピュータ１０１の出力端子（外部信号出力端子）１１０のレベル制御を行う回路である。
【０００６】
図５は、特許文献１の図２６に記載されている従来のポート制御回路１０６の内部構成を示す機能ブロック図である。タイマ（レベル変化用タイマ）１１１は、図４のＣＲ発振回路１０５によって出力されるＣＲクロック信号に基づいてカウント動作を行なう。そのカウントデータは比較器（比較回路）１１２に与えられる。タイマ１１１は、ＳＬＥＥＰ信号がアクティブの場合カウント動作がイネーブルとなる。比較器１１２には、出力タイミングレジスタ１１３の設定データも与えられており、比較器１１２は、両者のデータ値が一致すると、一致信号を一致保持部１１４を介してレベル設定部１１５に出力する。レベル設定部１１５は、レベル選択部１１６において設定されたレベルの信号を、一致保持部１１４を介して与えられる一致信号をトリガとしてマイクロコンピュータ１０１の出力端子１１０に出力する。一致保持部１１４の出力状態は、図４のＣＰＵ１０２が別途設けられているリセットレジスタに書込みを行なうことで、リセットする（Ｓ／Ｗリセット）ことが可能に構成されている。
【０００７】
図６は、特許文献１の図２８に記載されているスリープ・モード移行中のタイミングチャートである。ＳＬＥＥＰ信号がアクティブ（ハイ）になると（ｅ）、メイン発振回路１０３によって出力されるマシンクロックは停止する（ｄ）。そして、ポート制御回路１０６のタイマ１１１が、ＳＬＥＥＰ信号の立ち上がりからカウント動作を開始する（ｂ）。出力タイミングレジスタ１１３には、あらかじめ設定データがセットされており（ａ）、タイマ１１１のカウント値が設定データに達すると、比較器１１２は一致信号を出力する。すると、その時点で、レベル設定部１１５は出力端子１１０の信号レベルをＬ（ロウ）からＨ（ハイ）に変化させる。ここで、出力端子１１０の信号レベルがハイに変化したことで、その出力端子１１０に接続されている外部デバイスはアクティブ状態となる。その後、設定されたスリープ継続期間が経過してＣＰＵ１０２がウェイクアップする。
上記のように、従来例のマイクロコンピュータ１０１のポート制御回路１０６は、ＣＰＵ１０２がスリープ・モードに設定されている期間内に、出力端子１１０のレベルを変化させる構成が知られている。
【０００８】
また、図７は、特許文献１の図９に記載されている従来の別なマイクロコンピュータの機能ブロック図で、再起動タイマ３６によってスリープ継続期間が経過するとＣＰＵをウェイクアップすることが記載されている。
【先行技術文献】
【特許文献】
【０００９】
【特許文献１】特開２００８−１２３５３８号公報
【発明の概要】
【発明が解決しようとする課題】
【００１０】
以下の分析は本発明により与えられる。上記図５、図７に示すとおり特許文献１では、マイクロコンピュータをスリープ・モードからウェイクアップする方法として、あらかじめ設定したタイミングでスリープ・モードを周期的に解除する再起動タイマ３６を使用している。しかし、もしスリープ・モード移行前の通常動作モード中の処理が何らかの理由により、遅延が発生した場合、再起動タイマ３６に期待されるＣＰＵウェイクアップ・タイミングからずれが生じるため、期待するタイミングでＣＰＵがウェイクアップすることができない。
【課題を解決するための手段】
【００１１】
本発明の１つの側面によるマイクロコンピュータは、ＣＰＵと、前記ＣＰＵのスリープモードの設定と解除を制御するスタンバイ制御部と、出力端子と、第１のタイマと、前記ＣＰＵが前記スリープモードのときに前記第１のタイマがあらかじめ定められた計時を行うと、前記スリープモードを保ったまま、出力端子のレベルを変える出力端子制御部と、前記スリープモードにおいて前記出力端子制御部が前記出力端子のレベルを変えるときに計時を開始する第２のタイマと、を備え、前記スタンバイ制御部は、前記第２のタイマが所定の計時を行うと前記ＣＰＵのスリープモードを解除する。
【００１２】
また、本発明の他の側面によるマイクロコンピュータシステムは、マイクロコンピュータと、前記マイクロコンピュータにより制御される外部装置を含み、前記マイクロコンピュータ及び前記外部装置が、それぞれ通常動作モードと、前記通常動作モードより低消費電力なスリープモードと、を備えたマイクロコンピュータシステムであって、前記マイクロコンピュータは、前記外部装置の前記モードを制御する出力端子と、前記マイクロコンピュータ及び前記外部装置のいずれもがスリープモードのときに、前記外部装置をウェイクアップする時間を計測する第１のタイマと、前記第１のタイマが前記外部装置のウェイクアップ時間を計測したときに、前記マイクロコンピュータのスリープモードを維持しながら、前記出力端子のレベルを変えて前記外部装置をウェイクアップさせる出力端子制御回路と、前記第１のタイマが前記外部装置のウェイクアップ時間まで計測したときに、カウントを開始し、前記マイクロコンピュータのウェイクアップ時間を計測し、前記マイクロコンピュータのウェイクアップ時間が到来したときに、前記マイクロコンピュータを前記スリープモードから解除し、通常動作モードに復帰させる第２のタイマと、を備える。
【発明の効果】
【００１３】
本発明によれば、第１のタイマによりスリープモード中に出力端子のレベルを変えるまでの時間を計時し、第２のタイマにより出力端子のレベルを変えてからＣＰＵのスリープモードを解除するまでの時間を計時するので、スリープモードを解除するタイミングを好適化できるので、無駄な電力の消費がない。
【図面の簡単な説明】
【００１４】
【図１】本発明の一実施例によるマイクロコンピュータシステム全体のブロック図である。
【図２】一実施例のマイクロコンピュータにおけるタイマ周辺のブロック図である。
【図３】一実施例と比較例によるマイクロコンピュータシステムにおけるスリープモード制御のタイミング図である。
【図４】従来のマイクロコンピュータ全体のブロック図である。
【図５】従来のマイクロコンピュータにおけるポート制御回路の内部構成を示す機能ブロック図である。
【図６】従来のマイクロコンピュータにおけるスタンバイ制御のタイミング図である。
【図７】従来のマイクロコンピュータにおける低消費電力制御部周辺のブロック図である。
【発明を実施するための形態】
【００１５】
具体的な実施例について説明する前に、本発明の実施形態の概要について、説明する。なお、概要の説明において引用する図面及び図面の符号は実施形態の一例として示すものであり、それにより本発明による実施形態のバリエーションを制限するものではない。
【００１６】
本発明の一実施形態のマイクロコンピュータ１０は、例えば、図１に示すように、ＣＰＵ１３と、ＣＰＵ１３のスリープモードの設定と解除を制御するスタンバイ制御部１４と、出力端子２６と、第１のタイマ１７と、ＣＰＵ１３がスリープモードのときに第１のタイマ１７があらかじめ定められた計時を行うと、スリープモードを保ったまま、出力端子２６のレベルを変える出力端子制御部１６と、スリープモードにおいて出力端子制御部１６が出力端子２６のレベルを変えるときに計時を開始する第２のタイマ１８と、を備え、スタンバイ制御部１４は、第２のタイマ１８が所定の計時を行うとＣＰＵ１３のスリープモードを解除する。上記構成により、第１のタイマ１７によって、出力端子２６のレベルを変えるタイミングを設定し、第２のタイマ１８によって、出力端子２６のレベルを変えてからＣＰＵ１３のスリープモードを解除するまでのタイミングを設定することができる。従って、スリープモードに入るタイミングや出力端子２６のレベルを変えるタイミングがずれた場合であっても、出力端子２６のレベルを変えてからＣＰＵ１３のスリープモードを解除するまでのタイミングを一定にすることができるので、スリープモード解除が早すぎ、無駄な電力を消費することがない。
【００１７】
また、ＣＰＵ１３が動作状態にあるときにメインクロックＭＣをＣＰＵ１３に供給し、スリープモードに設定されるとメインクロックＭＣを停止するメインクロック制御部１１と、第１のタイマ１７及び第２のタイマ１８にサブクロックＳＣを供給するサブクロック制御部１５と、をさらに備える。すなわち、メインクロックＭＣを停止してＣＰＵ１３の命令実行を停止した状態であっても、サブクロックＳＣによって、第１のタイマ１７、第２タイマ１８は計時を行うことができる。
【００１８】
スリープモードにおいて、ＣＰＵ１３は、内部データを保持したまま、動作を一時停止し、スタンバイ制御部１４により、スリープモードが解除されると、一時停止した状態から動作を再開する。また、一例として図２に示すように、第１及び第２のタイマ（１７、１８）は、それぞれサブクロックＳＣをカウントするカウンタ（２０、２２）と、ＣＰＵ１３の命令によって任意の値に設定可能なコンペアレジスタ（１９、２１）と、カウンタ（２０、２２）とコンペアレジスタ（１９、２１）の値が一致したときに、一致検出信号（ＬＣ、ＳＲＲ）を出力する比較部（２４、２５）とを備える。また、第２のタイマ１８のコンペアレジスタ２１には、第１のタイマ１７のコンペアレジスタ１９とは独立した値が設定できる。
【００１９】
スリープモードのときに第１のタイマ１７の一致検出信号ＬＣを受けると、出力端子制御部１６は出力端子２６の出力電圧レベルを変え、第２のタイマ１８はカウンタ２２のカウントを開始する。また、スリープモードにおいて、スタンバイ制御部１４は、前記第２のタイマ１８の一致検出信号ＳＲＲを受けてスリープモードを解除する。
【００２０】
また、本発明の一実施形態のマイクロコンピュータシステムは、例えば図１に示すように、マイクロコンピュータ１０と、マイクロコンピュータ１０により制御される外部装置３０を含み、前記マイクロコンピュータ１０及び外部装置３０が、それぞれ通常動作モードと、前記通常動作モードより低消費電力なスリープモードと、を備えたマイクロコンピュータシステムであって、マイクロコンピュータ１０は、外部装置３０のモード（通常動作モードとスリープモード）を制御する出力端子２６と、マイクロコンピュータ１０及び外部装置３０のいずれもがスリープモードのときに、外部装置３０をウェイクアップする時間を計測する第１のタイマ１７と、第１のタイマ１７が外部装置３０のウェイクアップ時間を計測したときに、マイクロコンピュータ１０のスリープモードを維持しながら、出力端子２６のレベルを変えて外部装置３０をウェイクアップさせる出力端子制御部１６と、第１のタイマ１７が外部装置３０のウェイクアップ時間まで計測したときに、カウントを開始し、マイクロコンピュータ１０のウェイクアップ時間を計測し、マイクロコンピュータ１０のウェイクアップ時間が到来したときに、マイクロコンピュータ１０をスリープモードから解除し、通常動作モードに復帰させる第２のタイマ１８と、を備える。
【００２１】
上記マイクロコンピュータシステムによれば、第１のタイマ１７と出力端子制御部１６によって、マイクロコンピュータ１０がスリープモードにあるときでも、外部装置３０をスリープモードからウェイクアップさせることができる。また、外部装置３０をウェイクアップさせてから、マイクロコンピュータ１０自身がスリープモードからウェイクアップするまでの時間を第２のタイマ１８により計時することができる。この様な構成により、外部装置３０及びマイクロコンピュータ１０の通常動作モードになる時間を必要最小限度にすることができるので、システムの消費電力を低減することができる。
【００２２】
また、第２のタイマ１８は、マイクロコンピュータ１０及び外部装置３０が同時に通常動作モードになるように、マイクロコンピュータ１０のスリープモードから解除するタイミングを計測する。すなわち、外部装置３０、マイクロコンピュータ１０共にスリープモードから通常動作モードに復帰するまでに時間を要し、かつ、スリープモードから通常動作モードに復帰に要するウェイクアップ時間が外部装置３０の方が大きい場合に、先に、外部装置３０をウェイクアップさせておいて、第２のタイマ１８により、外部装置３０とマイクロコンピュータ１０のウェイクアップに要する時間の差を考慮して、最適な時刻にマイクロコンピュータ１０をスリープモードから通常動作モードにウェイクアップさせることができる。
【００２３】
また、第１、第２のタイマ（１７、１８）の計測時間はそれぞれ独立して設定できるように構成されている。さらに、マイクロコンピュータ１０と外部装置３０が、同一半導体基板に形成されていてもよい。以下、実施例について、図面を参照して詳しく説明する。
【実施例１】
【００２４】
［全体の構成］
図１は、実施例１によるマイクロコンピュータシステム全体のブロック図である。図１のマイクロコンピュータシステムは、マイクロコンピュータ１０とマイクロコンピュータ１０によりその動作が制御される外部装置３０を含んで構成される。
【００２５】
まず、マイクロコンピュータ１０の構成について説明する。ＣＰＵ１３は、マイクロコンピュータ１０全体の動作を制御する。メインクロック制御部１１は、ＣＰＵ１３及び周辺回路１２にＣＰＵ１３の動作クロックであるメインクロックＭＣを供給する。周辺回路１２には、ＤＭＡコントローラ、ウォッチドックタイマ、Ａ／Ｄコンバータ、Ｄ／Ａコンバータ、シリアル通信回路、メモリ等の周辺回路が含まれていてもよい。メインクロック制御部１１は、そのうち、メインクロックＭＣが必要な回路にメインクロックＭＣを供給する。
【００２６】
スタンバイ制御部１４は、ＣＰＵ１３によって与えられる制御コマンドに応じてスリープモードなどの低消費電力モードに関する制御を行う。ここで、スリープモードとは、メインクロック制御部１１の動作を停止させることでＣＰＵ１３に対する動作用クロック信号であるメインクロックＭＣの供給を停止させ、ＣＰＵ１３は、内部レジスタのデータ値などを保持した状態で処理を一時的に停止するモードである。ＣＰＵ１３のモードには、スリープモードの他、通常動作モードがある。通常動作モードでは、ＣＰＵ１３は、メインクロック制御部１１から供給されるメインクロックＭＣによって、動作し、命令を実行する。また、スタンバイ制御部１４は、メインクロック制御信号ＭＣＣにより、メインクロック制御部１１が、ＣＰＵ１３に通常動作モードのときはメインクロックＭＣを供給し、スリープモードのときはメインクロックＭＣの供給を停止するように制御する。
【００２７】
サブクロック制御部１５は、スリープモードになってメインクロック制御部１１がＣＰＵ１３へのメインクロックＭＣの供給を停止するときでも、サブクロックＳＣを生成する。サブクロックＳＣは、メインクロックＭＣより周波数が低いクロックでもよい。また、ＲＣ発振器を内蔵し、ＲＣ発振器により発振したクロックをサブクロックＳＣとしてもよい。
【００２８】
第１のタイマ１７、第２のタイマ１８は、サブクロック制御部１５が出力するサブクロックＳＣが接続され、サブクロックＳＣをカウントする動作を行う。なお、スタンバイ制御部１４はスリープモード信号ＳＬＥＥＰにより、ＣＰＵ１３をスリープモードに設定するときに第１のタイマ１７をスタートさせることができる。また、第２のタイマ１８からスタンバイ制御部１４にスリープモード解除要求信号ＳＲＲが接続されており、スリープモードのときに第２のタイマ１８のカウント値が所定のカウント数に達するとスリープモードの解除を要求することができる。また、第１のタイマ１７は所定のカウント数に達すると出力レベル変化信号ＬＣを出力端子制御部１６に出力する。出力端子制御部１６は、スリープモードにおいて、出力レベル変化信号ＬＣが入力すると、出力端子２６のレベルを変える。スリープモードにおいて、出力レベル変化信号ＬＣが入力したときに、出力端子２６のレベルがどのように変わるかは、あらかじめプログラムされており、レジスタ等に設定できるような構成であってもよい。また、出力レベル変化信号ＬＣは、第２のタイマ１８にも接続されており、スリープモードにおいて、第１のタイマ１７が出力レベル変化信号ＬＣを出力すると、第２のタイマ１８はこの出力レベル変化信号ＬＣを受けてカウント動作を開始する。
【００２９】
外部装置３０は、マイクロコンピュータ１０と同様に、少なくとも通常動作モードと、スリープモードを備えている。通常動作モードは、外部装置３０としての動作を実行するモードであり、スリープモードは、通常動作モードより消費電力の少ないモードである。外部装置３０のスリープモードは、外部装置３０の電源を遮断するモードであってもよい。なお、スリープモードから通常動作モードへの移行に要する時間、すなわちウェイクアップ時間は、マイクロコンピュータ１０のウェイクアップ時間より外部装置３０のウェイクアップ時間の方が長い時間を要するものであってもよい。
【００３０】
マイクロコンピュータ１０の出力端子２６は、外部装置３０に接続されており、マイクロコンピュータ１０は出力端子２６を介して外部装置３０の通常動作モードとスリープモードの切り換えを制御することができる。なお、マイクロコンピュータ１０は、第１のタイマ１７と出力端子制御部１６によりマイクロコンピュータ１０自身がスリープモードに設定され、ＣＰＵ１３が一時停止しているときにおいても、外部装置３０の通常動作モードとスリープモードの切り換えを実行することができる。
【００３１】
［タイマ周辺の構成］
図２は、マイクロコンピュータ１０におけるタイマ周辺のブロック図である。図２において、第１のタイマ１７と第２のタイマ１８はカスケードに接続されている。第１のタイマ１７は、サブクロック制御部１５から供給されるサブクロックＳＣを計数するカウンタ１（２０）と、カウンタ１（２０）の計数値と比較する数値をあらかじめ格納するコンペアレジスタ１（１９）と、カウンタ１（２０）の計数値とコンペアレジスタ１（１９）の数値とを比較する比較部１（２４）を備えている。
【００３２】
カウンタ１（２０）は、スタンバイ制御部１４から供給されるスリープモード信号ＳＬＥＥＰが接続されており、スリープモード信号ＳＬＥＥＰがアクティブになるとサブクロックＳＣの計数を開始する。また、コンペアレジスタ１（１９）は、図２に示すようにＣＰＵ１３によって、所定の数値をレジスタに設定できるようにしてもよい。比較部１（２４）は、カウンタ１（２０）の計数値がコンペアレジスタ１（１９）にあらかじめ格納してある数値と一致すると出力レベル変化信号ＬＣをアクティブにする。出力レベル変化信号ＬＣは、出力端子制御部１６と第２のタイマ１８のカウンタ２（２２）に接続されている。出力レベル変化信号ＬＣがアクティブになると出力端子制御部１６は出力端子２６の電圧レベルを変化させる。
【００３３】
第２のタイマ１８は、サブクロック制御部１５から供給されるサブクロックＳＣを計数するカウンタ２（２２）と、カウンタ２（２２）の計数値と比較する数値をあらかじめ格納するコンペアレジスタ２（２１）と、カウンタ２（２２）の計数値とコンペアレジスタ２（２１）の数値とを比較する比較部２（２５）を備えている。カウンタ２（２２）は、第１のタイマ１７の比較部１（２４）から供給される出力レベル変化信号ＬＣが接続されており、出力レベル変化信号ＬＣがアクティブになるとサブクロックＳＣの計数を開始する。また、コンペアレジスタ２（２１）は、コンペアレジスタ１（１９）と同様にＣＰＵ１３によって、所定の数値を設定できるようにしてもよい。比較部２（２５）は、カウンタ２（２２）の計数値がコンペアレジスタ２（２１）の数値と一致するとスリープモード解除要求信号ＳＲＲをアクティブにする。スリープモード解除要求信号ＳＲＲは、スタンバイ制御部１４に接続され、スタンバイ制御部１４は、スリープモードにおいて、スリープモード解除要求信号ＳＲＲを受けると、スリープモードを解除し、通常動作モードに移行する。
【００３４】
上記構成により、マイクロコンピュータ１０とマイクロコンピュータ１０の外部に接続された外部装置３０がともにスリープモードであるときに、先ず第１のタイマ１７により外部装置３０をウェイクアップさせた後、第２のタイマ１８によりＣＰＵ１３をウェイクアップさせることができる。
【００３５】
［実施例１の動作］
図３は、実施例１のマイクロコンピュータシステムの動作を示すタイミング図である。比較のため、特許文献１に基づく比較例のタイミング図も示している。まず、実施例１の動作タイミング（図３の（ｆ）〜（ｊ）について説明した後、従来技術との動作の違いについて説明する。
【００３６】
実施例の動作を説明する図３（ｆ）〜（ｊ）において、タイミングｔ１までは、マイクロコンピュータ１０、外部装置３０はいずれも通常動作モードである。このとき、マイクロコンピュータ１０、外部装置３０はそれぞれ所定の処理を実行する。第１のタイマ１７、第２のタイマ１８は共に停止している（図３（ｇ）（ｈ）参照）。通常動作モードにおいて、第１のタイマ１７、第２のタイマ１８はいずれもスリープモードの制御のためには動作する必要はないが、他の用途のために動作していてもよい。ただし、少なくともタイミングｔ１の前には、カウンタ１（２０）、カウンタ２（２２）をリセットし、コンペアレジスタ１（１９）、コンペアレジスタ２（２１）には所定の値をセットする必要がある。
【００３７】
ここで、コンペアレジスタ１（１９）、コンペアレジスタ２（２１）に設定する所定の値について説明しておく。コンペアレジスタ１（１９）には、サブクロックＳＣの周波数と、外部装置３０のスリープモードから通常動作モードへのセットアップ時間と、スリープモードになった後、次に通常動作が必要になるタイミングを考慮して値をセットする。すなわち、スリープモードにした後、次に通常動作が必要になるタイミングまでに外部装置３０のセットアップが完了するように、値をセットする。また、コンペアレジスタ２（２１）には、外部装置３０のセットアップに要する時間と、マイクロコンピュータ１０をスリープモードからウェイクアップした後、通常動作に移行できるまでの時間との差に相当する値をセットする。すなわち、スリープモードから通常動作モードへの移行に要するウェイクアップ時間は、マイクロコンピュータ１０より外部装置３０の方が長いので、そのウェイクアップ時間の差をサブクロックの周波数を考慮してコンペアレジスタ２（２１）に値をセットする。
【００３８】
図３に戻って説明を続ける。ここでは、第１のタイマ１７、第２のタイマ１８はいずれも通常動作モードでは停止しているものとし、カウンタ１（２０）、カウンタ２（２２）はいずれもリセットさせており、コンペアレジスタ１（１９）、コンペアレジスタ２（２１）には所定の数値があらかじめ格納されているとする。また、マイクロコンピュータ１０の出力端子制御部１６は出力端子２６にハイレベルを出力している。
【００３９】
タイミングｔ１になると、マイクロコンピュータ１０、外部装置３０はいずれも所定の処理の実行が終了したので、消費電力を軽減するため、スリープモードへ移行する（図３（ｆ）、（ｊ）参照）。スリープモードへの移行は、マイクロコンピュータ１０のＣＰＵ１３が命令によりスタンバイ制御部１４をスリープモードに移行させることにより行う。このとき、マイクロコンピュータ１０の出力端子制御部１６は出力端子２６の電圧レベルをハイレベルからローレベルに立ち下げる（図３（ｉ）参照）。すると、外部制御装置３０は通常動作モードからスリープモードに切り換わる。マイクロコンピュータ１０のスタンバイ制御部１４は、スリープモードになると同時にスリープモード信号ＳＬＥＥＰをアクティブにする。すると、第１のタイマ１７は、サブクロックＳＣのカウントを開始する（図３（ｇ）参照）。このとき、第２のタイマ１８は停止したままである（図３（ｈ）参照）。
【００４０】
タイミングｔ２になると、第１のタイマ１７の比較部１（２４）が一致を検出し、出力レベル変化信号ＬＣがアクティブとなる。すると、出力端子制御部１６は、出力端子２６をローレベルからハイレベルに立ち上げる（図３（ｉ）参照）。すると、外部装置３０はセットアップを開始する（図３（ｊ）参照）。また、第２のタイマ１８のカウンタ２（２２）は、出力レベル変化信号ＬＣがアクティブになったことを受けてカウントを開始する（図３（ｈ）参照）。また、第１のタイマ１７はカウントを終了し、初期状態に戻る（図３（ｇ）参照）。
【００４１】
タイミングｔ４になると、第２のタイマ１８の比較部２（２５）が一致を検出し、スリープモード解除要求信号ＳＲＲがアクティブとなる。すると、スタンバイ制御部１４は、メインクロック制御信号ＭＣＣをアクティプにしてメインクロック制御部１１からメインクロックＭＣをＣＰＵ１３に供給させ、ＣＰＵ１３をウェイクアップする。ＣＰＵ１３は、スリープモード解除の後、通常動作を開始するまでに必要な処理（初期化処理等）を実行する（図３（ｆ）参照）。第２のタイマ１８はカウントを終了し、初期状態に戻る（図３（ｈ）参照）。
【００４２】
タイミングｔ６になると、マイクロコンピュータ１０のウェイクアップ動作と、外部装置３０のウェイクアップ動作がほぼ同時に完了する。したがって、マイクロコンピュータ１０、外部装置３０は共に通常動作モードに移行する。なお、タイミングｔ７以降は、タイミングｔ１以降の処理の繰り返しである。
【００４３】
［比較例の動作との違い］
上記実施例の動作（図３（ｆ）〜（ｊ））を特許文献１に基づく比較例の動作（図３（ａ）〜（ｅ））と比較すると、比較例では、外部装置のウェイクアップ制御は、実施例１の第１のタイマ１７に相当するレベル変化用タイマに基づいて行っているのに対して、比較例のマイクロコンピュータのウェイクアップ制御は、レベル変化用タイマとは非同期の再起動タイマに基づいて行っている。したがって、スリープモードに入るタイミングによっては、マイクロコンピュータのウェイクアップする時間が早すぎる場合が生じる。たとえば、図３（ａ）で、マイクロコンピュータが通常動作モードになる時刻は、外部装置と同時に通常動作モードになればよいことを考慮すると、タイミングｔ６でよい。そのためには、タイミングｔ４でウェイクアップすればよいのにもかかわらず、再起動タイマによりタイミングｔ３でウェイクアップしている。従って、タイミングｔ５から通常動作モードになってしまっている。すなわち、比較例のマイクロコンピュータは、タイミングｔ５からタイミングｔ６まで無駄な電力を消費している。
【００４４】
また、上記実施例によれば、第１のタイマ１７のコンペアレジスタ１（１９）に設定する値と第２のタイマ１８のコンペアレジスタ２（２１）に設定する値をそれぞれ独立して設定することができ、お互いに一方のコンペアレジスタに設定する値を変えても他方のコンペアレジスタに設定する値を変える必要はない。第２のタイマ１８は、第１のタイマ１７が一致を検出して出力端子のレベルが変わるときにカウントを開始するので、第１のタイマ１７が一致を検出するタイミングによって第２のタイマ１８のカウントに影響を及ぼさないからである。
【００４５】
従って、コンペアレジスタ１（１９）にはスリープモードに設定した後、外部装置３０をウェイクアップするまでの時間を設定し、コンペアレジスタ２（２１）には、外部装置３０のウェイクアップに要する時間と、マイクロコンピュータ１０のウェイクアップに要する時間との差を設定すればよい。たとえば、外部装置３０のウェイクアップ処理が単純な電源の立ち上げだけだとするとこれは常に一定の時間である。システム全体の状態によって、外部装置３０のスリープモードに設定してからウェイクアップまでに要する時間を変える必要がある場合には、コンペアレジスタ１（１９）の値だけを変更すればよく、コンペアレジスタ２（２１）の値を変更する必要はない。一方、マイクロコンピュータ１０の状態によって、マイクロコンピュータ１０のスリープモードから通常動作モードに移行するまでの初期化等の処理に要する時間が変わる場合には、コンペアレジスタ２（２１）の値だけ変更すればよくコンペアレジスタ１（１９）の値を変更する必要はない。
【００４６】
なお、マイクロコンピュータ１０のスリープモードでは、少なくともサブクロック制御部１５、第１のタイマ１７、第２のタイマ１８、出力端子制御部１６が動作可能である必要があるが、外部装置３０には、その様な制限はない。外部装置３０のスリープモードとは単純に電源を切断するモードであってもよい。外部装置３０のスリープモードの仕様は、システムの必要性に応じて、任意に決めることができる。
【００４７】
また、上記実施例では、主に外部装置３０がマイクロコンピュータ１０とは別の装置である例について説明したが、外部装置３０は、マイクロコンピュータ１０と同一半導体基板上に形成されている周辺回路であってもよい。その場合は、出力端子２６は、同一チップ内のマイクロコンピュータ１０側から周辺回路（外部装置３０）を制御するチップ内の出力端子となる。
【００４８】
また、上記実施例では、第１のタイマ１７、第２のタイマ１８は同時に動作していることはないので、カウンタ１（２０）とカウンタ２（２２）、比較部１（２４）と比較部２（２５）を共通の回路としてもよい。ただし、コンペアレジスタ１（１９）とコンペアレジスタ２（２１）は別々に設け、第１のタイマ１７と第２のタイマ１８の機能を実現する必要がある。
【００４９】
以上、実施例について説明したが、本発明は上記実施例の構成にのみ制限されるものでなく、本発明の範囲内で当業者であればなし得るであろう各種変形、修正を含むことは勿論である。
【符号の説明】
【００５０】
１０：マイクロコンピュータ
１１：メインクロック制御部
１２：周辺回路
１３：ＣＰＵ
１４：スタンバイ制御部
１５：サブクロック制御部
１６：出力端子制御部
１７：第１のタイマ
１８：第２のタイマ
１９：コンペアレジスタ１
２０：カウンタ１
２１：コンペアレジスタ２
２２：カウンタ２
２４：比較部１
２５：比較部２
２６：出力端子
３０：外部装置
ＬＣ：出力レベル変化信号
ＭＣ：メインクロック
ＭＣＣ：メインクロック制御信号
ＳＣ：サブクロック
ＳＬＥＥＰ：スリープモード信号
ＳＲＲ：スリープモード解除要求信号
【図１】
2011008698.tif 000003
【図２】
2011008698.tif 000004
【図３】
2011008698.tif 000005
【図４】
2011008698.tif 000006
【図５】
2011008698.tif 000007
【図６】
2011008698.tif 000008
【図７】
2011008698.tif 000009