(57)【特許請求の範囲】
【請求項１】
ＣＰＵにより設定された条件に基づいてマイクロコンピュータの入力ポートに与えられるデータのサンプリングを自動的に行い、サンプリングしたデータを前記ＣＰＵが直接読み出し可能なデータレジスタにセットするようにハードウエアで構成され、前記ＣＰＵにクロック信号を供給するメイン発振回路とは独立に発振動作するＣＲ発振回路よりＣＲクロックが供給されて動作し、
前記ＣＰＵがサンプリングデータの期待値をセットするための期待値セットレジスタと、
前記データラッチ部がラッチしたデータが前記期待値セットレジスタにセットされたデータに一致した場合、外部に対して一致信号を出力する一致信号出力部とを備えたポートサンプリング回路装置と、
前記ＣＰＵと
前記メイン発振回路の発振動作を停止させて前記ＣＰＵの動作状態を低下させることで消費電力の低下を図る低消費電力モードを実行する機能とを備えて構成され、
前記一致信号を、前記低消費電力を解除するための信号とすることを特徴とするマイクロコンピュータ。
【請求項２】
前記ポートサンプリング回路装置は、
サンプリング周期を設定するためのサンプリング周期設定レジスタと、
このサンプリング周期設定レジスタに設定されたサンプリング周期に基づいてサンプリングタイミング信号を周期的に出力するサンプリングタイミング信号出力部と、
このタイミング信号出力部によって出力されるタイミング信号に基づいて前記入力ポートに与えられるデータをラッチして、前記データレジスタに格納するデータラッチ部とで構成されていることを特徴とする請求項１記載のマイクロコンピュータ。
【請求項３】
前記データラッチ部は、前回サンプリングされたデータと、今回サンプリングされたデータとを保持する２つのデータラッチを備え、
前記データラッチ部に保持された前回と今回とのサンプリングデータ値が一致すると、前記データラッチに今回のサンプリングデータをラッチさせる２度一致フィルタを備えたことを特徴とする請求項２記載のマイクロコンピュータ。
【請求項４】
前記データラッチ部は、前回のデータと今回のデータとを、前記サンプリングタイミング信号の連続する周期でそれぞれ保持することを特徴とする請求項３記載のマイクロコンピュータ。
【請求項５】
前記ポートサンプリング回路装置は、
前記マイクロコンピュータの出力ポートの状態を、前記サンプリングを行うタイミングに同期させて周期的に変化させるように構成される出力状態変化手段を備えたことを特徴とする請求項１記載のマイクロコンピュータ。
【請求項６】
前記ポートサンプリング回路装置は、
前記マイクロコンピュータの出力ポートの状態を、前記サンプリングを行うタイミングに同期させて周期的に変化させるように構成される出力状態変化手段を備えたことを特徴とする請求項２乃至４の何れかに記載のマイクロコンピュータ。
【請求項７】
前記出力状態変化手段は、
出力ポートの状態を変化させる周期を設定するための状態変化周期設定レジスタと、
この状態変化周期設定レジスタに設定された状態変化周期に基づいて状態変化タイミング信号を周期的に出力する状態変化タイミング信号出力部と、
この状態変化タイミング信号出力部によって出力されるタイミング信号に基づいて前記出力ポートの状態を変化させる状態変化部とで構成されていることを特徴とする請求項６記載のマイクロコンピュータ。
【請求項８】
前記状態変化周期設定レジスタは、前記サンプリング周期設定レジスタを兼用するように構成されていることを特徴とする請求項７記載のマイクロコンピュータ。
【請求項９】
前記ポートサンプリング回路装置は、
前記出力ポートの状態が変化した時点から、前記入力ポートに与えられるデータのサンプリングを開始するまでの時間を設定するためのサンプリング開始時間設定レジスタを備え、
前記サンプリングタイミング信号出力部は、前記サンプリング周期と、前記サンプリング開始時間設定レジスタに設定されるサンプリング開始時間とに基づいてサンプリングタイミング信号を周期的に出力するように構成されていることを特徴とする請求項８記載のマイクロコンピュータ。
【請求項１０】
前記一致信号を、前記ＣＰＵに対する割込み信号とすることを特徴とする請求項１乃至９の何れかに記載のマイクロコンピュータ。
【発明の詳細な説明】
【０００１】
【発明の属する技術分野】
本発明は、ＣＰＵにより設定された条件に基づいてマイクロコンピュータの入力ポートのサンプリングを行うポートサンプリング回路装置を備えて構成されるマイクロコンピュータに関する。
【０００２】
【発明が解決しようとする課題】
マイクロコンピュータを構成するＣＰＵは、例えば制御状態を変更することなどを目的として、入力端子に接続されている外部デバイスなどより出力される信号のレベルをサンプリングする場合には、それに対応して制御プログラムを記述しておく。そして、当該プログラムに従って動作することで、入力ポートを周期的に（例えば、数１０μ〜数１００μ秒の間隔で）サンプリングするようになっている。
【０００３】
具体的には、ＣＰＵは、入力ポートに与えられるデータをラッチするためのタイミング信号が出力されるように書き込みを行い（サンプリング）、それから、ラッチされたデータの読み出しを行う。この動作を周期的に実行するようになっている。
【０００４】
従って、サンプリングを行うためにソフトウエアを作成する工程が必要であり、ＣＰＵの実動作上でも制御プログラムがサンプリング処理を負担することになる。そのため、ＣＰＵが行うその他の処理が重い場合には、サンプリング周期を十分短くすることができなくなるという問題があった。
【０００５】
本発明は上記事情に鑑みてなされたものであり、その目的は、サンプリング処理に伴うＣＰＵの負担を軽減することができるポートサンプリング回路を備えて構成されるマイクロコンピュータを提供することにある。
【０００６】
【課題を解決するための手段】
請求項１記載のポートサンプリング回路装置によれば、ＣＰＵにより設定された条件に基づいてマイクロコンピュータ（マイコン）の入力ポートのサンプリングを自動的に行うようにハードウエアで構成され、ＣＰＵにクロック信号を供給するメイン発振回路とは独立に発振動作するＣＲ発振回路よりＣＲクロックが供給されて動作する。即ち、ＣＰＵは周期的に入力ポートをサンプリングするための処理を行なわずとも、適当なタイミングでデータの読み出しだけを行うようにすれば、マイコン外部のデバイスなどから入力ポートに与えられるデータを読み込むことができる。
【０００７】
従って、ＣＰＵに実行させる制御プログラムには、サンプリングを行う処理を記述する必要がなくなるので、プログラムの作成工程を簡単にすることができる。また、ＣＰＵの実動作中における処理負担も軽減されるので、その軽減された分を他の処理に振り分けることが可能となる。
【０００８】
請求項２記載のポートサンプリング回路装置によれば、サンプリングタイミング信号出力部は、サンプリング周期設定レジスタに設定されたサンプリング周期に基づいてサンプリングタイミング信号を周期的に出力し、データラッチ部は、前記タイミング信号に基づいて前記入力ポートに与えられるデータをラッチすると、そのラッチしたデータをデータレジスタに格納する。従って、サンプリングを行う周期は、ＣＰＵがサンプリング周期設定レジスタに設定を行うことで変化させることができるので、アプリケーション等の仕様に応じて適切な周期でサンプリングを行わせることができる。
請求項３記載のポートサンプリング回路装置によれば、データラッチ部に、前回サンプリングされたデータと、今回サンプリングされたデータとを保持する２つのデータラッチを備え、データラッチ部に保持された前回と今回とのサンプリングデータ値が一致すると、データラッチに今回のサンプリングデータをラッチさせる２度一致フィルタを備える。従って、２回連続したサンプリングタイミングにおいて同じデータがサンプリングされた場合にだけ、そのデータ値がデータレジスタに格納されるようになり、マイコンが例えば外来ノイズなどの影響を受けることで、入力ポートのデータレベルが一時的に変化したような場合に、そのデータをサンプリングしてしまうことを回避できる。
請求項４記載のポートサンプリング回路装置によれば、データラッチ部は、前回のデータと今回のデータとを、前記サンプリングタイミング信号の連続する周期でそれぞれ保持する。
【０００９】
請求項５または６記載のポートサンプリング回路装置によれば、出力状態変化手段は、マイクロコンピュータの出力ポートの状態を、入力ポートのサンプリングを行うタイミングに同期させて周期的に変化させる。即ち、入力ポートをサンプリングするに当たっては、マイクロコンピュータの周辺回路などの状態を変化させることが必要となる場合がある。
【００１０】
例えば、外部デバイスの種類、或いは外部デバイスを含むマイコン周辺の回路構成によっては、駆動された状態（アクティブ）になることでマイコンの入力ポートに対する信号の出力が可能となるケースもある。
【００１１】
従って、そのような場合に、出力ポートを外部デバイスに接続しておけば、ポートサンプリング回路装置が自動的に出力ポートの状態を変化させることで、その外部デバイスをサンプリングタイミングに同期させて周期的に駆動することが可能となる。よって、ＣＰＵは駆動制御を行う必要がなくなるので、処理負担を更に軽減することができる。
【００１２】
請求項７記載のポートサンプリング回路装置によれば、出力状態変化手段を構成する状態変化タイミング信号出力部は、状態変化周期設定レジスタに設定された状態変化周期に基づいて状態変化タイミング信号を周期的に出力する。すると、状態変化部は、前記タイミング信号に基づいて出力ポートの状態を変化させる。従って、ＣＰＵは、出力ポートの状態を変化させる周期を、状態変化周期設定レジスタに設定を行うことで変化させることができる。
【００１３】
請求項８記載のポートサンプリング回路装置によれば、状態変化周期設定レジスタを、サンプリング周期設定レジスタと兼用するように構成するので、両者の設定を１つのレジスタによって行うことができ、設定処理をより簡単にすることが可能となる。
【００１４】
請求項９記載のポートサンプリング回路装置によれば、サンプリングタイミング信号出力部は、サンプリング周期と、サンプリング開始時間設定レジスタに設定されるサンプリング開始時間とに基づいてサンプリングタイミング信号を周期的に出力する。従って、例えば、出力ポートの状態を変化させることで外部デバイスを駆動するように構成する場合、その駆動が開始されてから、外部デバイスからデータが出力され、そのデータレベルが安定した状態となり適切なサンプリングが可能となるタイミングを個別のケースに応じて設定することができる。
【００１５】
請求項１記載のポートサンプリング回路装置によれば、一致信号出力部は、入力ポートをサンプリングしたデータが期待値セットレジスタにセットされたデータに一致すると外部に一致信号を出力するので、ＣＰＵは、予め期待値セットレジスタにデータをセットしておけば、一致信号が出力されたことをもって期待値に等しいデータがサンプリングされたことを判定できる。従って、ＣＰＵは、サンプリングされたデータが期待値に一致したか否かを判定するために、入力ポートを所定時間ごとにポーリングして比較判定する必要がなくなるので、処理負担を一層削減することができる。
【００１６】
請求項１記載のマイクロコンピュータによれば、ＣＰＵと、ポートサンプリング回路装置とを備えて構成されるので、ポートサンプリング回路装置にサンプリング処理を代行させて、ＣＰＵの処理能力を向上させることができる。
【００１７】
請求項１０記載のマイクロコンピュータによれば、ポートサンプリング回路装置によって出力される一致信号を、ＣＰＵに対する割込み信号とするので、ＣＰＵは、割り込みの発生によって期待値に等しいデータがサンプリングされたことを知ることができる。
【００１８】
請求項１記載のマイクロコンピュータによれば、メイン発振回路の発振動作を停止させて、低消費電力モードを実行するための機能を有して構成されている場合に、一致信号を、低消費電力モードを解除するための信号とする。即ち、ＣＰＵが連続的に処理を行う必要がない状態になったと判断し、クロック信号の供給を停止することで消費電力を抑制するモードになった場合は、当然ながら、入力ポートをサンプリングすることはできない。逆に、ＣＰＵが周期的にサンプリングを行う必要がある場合は、低消費電力モードを設定することはできなかった。
【００１９】
そこで、請求項１のように構成すれば、ＣＰＵが予め期待値セットレジスタに期待値のデータをセットしておけば、その後に低消費電力モードに切り替わっても、その間はポートサンプリング回路装置が継続してサンプリング処理を行う。そして、期待値に一致するデータがサンプリングされるとＣＰＵの低消費電力モードは解除される。
【００２０】
即ち、ＣＰＵは、前記データがサンプリングされたことを契機として次の処理を実行すれば良い場合は低消費電力モードを設定して、当該モードがポートサンプリング回路装置によって解除されるまで待機すれば良い。従って、低消費電力モードを有効に活用することができ、消費電力を低減することができる。
【００２１】
【発明の実施の形態】
以下、本発明の一実施例について図面を参照して説明する。図１は、例えば車両用のボディＥＣＵ(Electronic Control Unit) などに使用されるシングルチップマイクロコンピュータ（マイコン）の一構成例を示すものである。マイコン１は、ＣＰＵ２を中心として、その周辺にメイン発振回路３，クロック制御回路４，ＣＲ発振回路５，ポートサンプリング回路（ポートサンプリング回路装置）６などを備えている。
【００２２】
メイン発振回路３は、マイコン１の外部に接続される水晶発振子７を発振させてＣＰＵ２に動作用のクロック信号（マシンクロック或いはシステムクロック）を供給するものである。クロック制御回路４は、ＣＰＵ２によりアドレスバス８及びデータバス９を介してスリープ／ストップモードを開始させる指令が与えられると、メイン発振回路３に対してクロック停止信号を出力し、メイン発振回路３によるクロック信号の出力を停止させ、ＣＰＵ２（若しくは、ＣＰＵ２を含むマイコン１全体）をスリープ／ストップモードに設定する。
【００２３】
ここで、スリープモードとは、一旦移行するとクロック制御回路４に内蔵されているタイマで所定時間が経過すると自動的に解除されるモードを言うものとし、ストップモードとは、一旦移行すると外部においてウェイクアップ要因（後述するウェイクアップ信号など）が発生するまで解除されないモードを言うものとする。即ち、これらは、ＣＰＵ２の動作状態を通常時よりも低下させることで消費電力の低下を図るモードである。
【００２４】
そして、クロック制御回路４は、ポートサンプリング回路６が後述する条件設定に応じてウェイクアップ信号を出力すると、クロック停止信号の出力を中止してメイン発振回路３によるクロック信号の出力を再開させるようになっている。尚、スリープモードにあっても、ウェイクアップ信号の出力によって当該モードは解除されるようになっている。
【００２５】
例えば、メイン発振回路３の発振周波数は４ＭＨｚ程度であり、ＣＲ発振回路５の発振周波数は２５ｋＨｚ程度である。また、ＣＰＵ２は、周波数４ＭＨｚのクロックを内蔵するＰＬＬ発振回路（図示せず）で４逓倍して１６ＭＨｚのクロック周波数で動作するようになっている。
【００２６】
ポートサンプリング回路６は、ＣＰＵ２が内部のレジスタに行う設定に応じて、図示しない外部のデバイスによってマイコン１の入力ポート(PSMIN)１０（例えば、３２本）に出力される信号またはデータのサンプリングを自動的に行う、純粋なハードウエア回路である。尚、ここで言う「デバイス」には、例えばトランジスタのような素子も含む概念であるとする。
【００２７】
また、ポートサンプリング回路６は、マイコン１の出力ポート(PSMOUT)１１にデータを出力することで、外部のデバイスを周期的に駆動することも可能に構成されている。尚、具体的には図示しないが、マイコン１は、その他、割込みコントローラ，ＤＭＡコントローラ，ウォッチドッグタイマ，Ａ／Ｄコンバータ，Ｄ／Ａコンバータやシリアル通信回路などの周辺回路を備えている。
【００２８】
図２は、ポートサンプリング回路６が内蔵しているレジスタ及びカウンタを示すものである。ＰＳＭ端子コントロールレジスタ(PSMOCR)１２、ポート出力サイクルレジスタ(PSMCYR)（サンプリング周期設定レジスタ、状態変化周期設定レジスタ）１３及びポート出力サイクルカウンタ(PSMCYCNT)１４は、主に出力ポート１１に関する設定等を行うものである。
【００２９】
レジスタ１２は、データ出力やサンプリング動作のイネーブル制御や出力データレベル（Ｈ，Ｌ）の設定を行うためのレジスタである。レジスタ１３は、出力ポート１１をＨまたはＬにドライブする周期（図３参照、スリープモードの場合）を設定するレジスタである。カウンタ１４は、ＣＲ発振回路５が出力するＣＲクロックを２分周したクロックでカウントを行うカウンタであり、カウント値がレジスタ１３の値に一致すると、出力ポート１１をドライブさせるタイミング信号が発生してクリアされるようになっている。
【００３０】
サンプリングタイミングカウンタ(PSMTMGCNT)１５、サンプリングタイミングレジスタ(PSMTMG)（サンプリング開始時間設定レジスタ）１６、サンプリングコントロールレジスタ（０）(PSMSCR0)１７及び同レジスタ（１）(PSMSCR1)１８、サンプリングフィルタ選択レジスタ(PSMFLT)１９は、主にサンプリング処理に関する設定等を行うものである。
【００３１】
カウンタ１５は、ＣＲ発振回路５が出力するＣＲクロックをカウントするカウンタであり、レジスタ１６は、出力ポート１１がドライブを開始してからサンプリングを行うタイミングを設定するレジスタである（図４参照）。そして、カウンタ１５のカウント値がレジスタ１６の値に一致すると、サンプリングを行うためのタイミング信号が発生してカウンタ１５はクリアされるようになっている。
【００３２】
レジスタ１７及びレジスタ１８は、サンプリング処理のイネーブル制御を行うためのレジスタであり、前者はＣＰＵ２がスリープ若しくはストップモード（低消費電力モード）となった場合、後者はＣＰＵ２が通常動作を行っているウェイクアップ時について設定を行うものである。
【００３３】
レジスタ１９は、後述する２度一致フィルタ３３を選択（有効）にするか否かを設定するためのレジスタである。２度一致フィルタを選択すると、前回と今回のサンプリングデータ値が一致した場合に、サンプリングデータレジスタ２０にデータが格納されるようになる。
【００３４】
サンプリング判定レジスタ(PSMJDG)２１、サンプリングウェイクアップステータスレジスタ(PSMWSTR)２２及びサンプリングウェイクアップコントロールレジスタ(PSMWCR)２３は、主にウェイクアップ信号WKUPの出力制御に関する設定を行うレジスタである。
【００３５】
期待値セットレジスタであるレジスタ２１は、ＣＰＵ２がサンプリングデータの期待値を設定するためのレジスタである。レジスタ２１の設定値と、データレジスタ２０のデータ値とが一致するとウェイクアップ要因が発生するようになっている。レジスタ２２は、レジスタ２１とデータレジスタ２０との比較結果が格納されるレジスタであり、レジスタ２３は、上記のようにして発生したウェイクアップ要因に基づくウェイクアップ信号WKUPの出力を許可するか否かを設定するレジスタである。
【００３６】
図５は、ポートサンプリング回路６の内部構成を概略的に示す機能ブロック図である。入力ポート１０(PSMIN)は、データラッチ部３１の入力端子に接続されている。データラッチ部３１におけるラッチタイミングは、タイミングカウンタ１５、タイミングレジスタ１６及びタイミングジェネレータ３２によって生成される。即ち、タイミングジェネレータ（サンプリングタイミング信号出力部）３２は、カウンタ１５のカウンタ値とレジスタ１６のデータ値とが一致した場合にサンプリング信号をデータラッチ部３１に出力するようになっている。
【００３７】
尚、データラッチ部３１の内部は、具体的には図示しないが、２個のデータラッチがシリアルに接続されており、今回のサンプリングデータ（ｎ）と前回のサンプリングデータ（ｎ−１）とを保持するように構成されている。そして、これらのデータは２度一致フィルタ３３に出力されている。
【００３８】
２度一致フィルタ３３は、前回と今回のサンプリングデータが一致した場合に、データ「１」をフィルタ選択部３４に出力するように構成されている。フィルタ選択部３４は、次段に配置されているデータレジスタ２０に対するラッチ信号の出力を制御するものであり、レジスタ１９の設定に応じて、データレジスタ２０にＣＲクロックを、２度一致フィルタ３３がデータ「１」を出力している場合に与えるか（フィルタ選択）、２度一致フィルタ３３の出力状態によらず与えるか（フィルタ非選択）を設定するようになっている。
【００３９】
データレジスタ２０のデータ入力端子には、データラッチ部３１が出力する今回のサンプリングデータ（ｎ）が与えられており、データレジスタ２０によってラッチされたデータは、次段に配置されている一致回路３５に出力されると共に、ＣＰＵ２により読み出しが行われるとデータバス１０に出力されるようになっている。
【００４０】
一致回路（一致信号出力部）３５は、データレジスタ２０によってラッチされたデータ判定レジスタ２１の設定値とが一致すると、ウェイクアップステータスレジスタ２２にラッチ信号を出力することで、ウェイクアップ要因「１」をレジスタ２２にセットさせるようになっている。そして、レジスタ２２の出力データは、ＡＮＤゲート３６の一方の入力端子に与えられている。
【００４１】
ＡＮＤゲート３５の他方の入力端子には、ウェイクアップコントロールレジスタ２３の設定データが与えられており、ＡＮＤゲート３６は、レジスタ２２の出力データとレジスタ２３の設定データが何れも「１」である場合に、ウェイクアップ信号WKUP（ハイレベル、一致信号）をクロック制御回路４に出力するようになっている。
尚、以上の構成は、３２本の入力ポート１０について（即ち３２ビット分）夫々設けられている。
【００４２】
一方、出力ポート１１(PSMOUT)に駆動信号を出力させるタイミングジェネレータ（状態変化タイミング信号出力部）３７は、カウンタ１４が、ＣＲ発振回路５が出力するＣＲクロックを分周回路３８で２分周したクロックでカウントしたカウント値がレジスタ１３の値に一致すると、タイミング信号を信号出力部（状態変化部）３９に出力する。
【００４３】
信号出力部３９は、そのタイミング信号に応じて出力ポート１１に駆動信号を出力するようになっている。また、そのタイミング信号の出力によって、カウンタ１４はリセットされると共に、カウンタ１５はカウントをスタートするようになっている。尚、レジスタ１３、カウンタ１４及びタイミングジェネレータ３７は、出力状態変化手段４０を構成している。
【００４４】
次に、本実施例の作用について図６乃至図８を参照して説明する。図６は、ＣＰＵ２が通常動作時（ウェイクアップ時）においてポートサンプリング回路６を使用する場合に、当該回路６に対して行うレジスタ設定の手順を示すものである。先ず、ＣＰＵ２は、ＰＳＭ端子コントロールレジスタ１２の対応するビットに「０」を書き込むことでPSMOE＝０として、ポート出力及びサンプリング処理を禁止状態にする（ステップＳ１）。
【００４５】
そして、出力ポートのデータレベル設定を行う（ステップＳ２）。データレベル設定は、レジスタ１２の対応するビットに例えば「１」を書き込むとデフォルトのデータレベルがＬとなり、駆動信号の出力期間になるとデータレベルがＨとなる。尚、ステップＳ１，Ｓ２は同じレジスタ１２について行う設定であるから、同時に実行可能であることは言うまでもない。
【００４６】
続いて、ＣＰＵ２はサンプリングの許可設定を行う（ステップＳ３）。当該設定は、コントロールレジスタ（１）１８の対応するビットに「１」を書き込むことで、３２ビット中の各ビット毎にサンプリングを許可する。それから、２度一致フィルタ３３を選択するか否かを設定する（ステップＳ４）。当該設定は、レジスタ１９の対応するビットに「１」を書き込むことで、３２ビット中の各ビット毎に２度一致フィルタ３３を選択する。
【００４７】
次に、ＣＰＵ２は、ウェイクアップコントロールの設定を行う（ステップＳ５）。即ち、ウェイクアップコントロールレジスタ２３の全てのビットに「０」を書き込んで、ウェイクアップ信号WKUPの出力を禁止する。
【００４８】
次に、ＣＰＵ２は、判定レジスタ２１にサンプリングデータの期待値を書き込んで設定する（ステップＳ６）。尚、この設定は、後でスリープモードに移行する時のために前もって行うものである。即ち、ＣＰＵ２は、通常動作している場合はデータレジスタ２０をポーリングするため、ポートサンプリング回路６はサンプリングデータの判定を行う必要がないからである。
【００４９】
次に、ＣＰＵ２は、ポート出力周期の設定を行う（ステップＳ７）。即ち、ポート出力サイクルレジスタ１３に、出力ポート１１より駆動信号を出力させる周期に相当するデータをセットする。続いて、サンプリングタイミングの設定を行う（ステップＳ８）。即ち、前述したように、サンプリングタイミングカウンタ１５に、駆動信号の出力が開始された時点から入力データのサンプリングが行われる時間に相当するデータをセットする。
【００５０】
最後に、ＰＳＭ端子コントロールレジスタ１２の対応するビットに「１」を書き込むことでPSMOE＝１として、ポート出力及びサンプリング処理を許可状態にすると（ステップＳ９）、設定処理を終了する。
【００５１】
以上のように内部レジスタの設定が行われることで、ポートサンプリング回路６は、ポート出力周期ごとに出力ポート１１に駆動信号を出力して外部デバイスを駆動し、その駆動開始からサンプリング期間が経過すると、入力ポート１０に与えられているデータのサンプリングを行う動作を繰り返す。そして、ＣＰＵ２は、必要なタイミングでポートサンプリング回路６のデータレジスタ２０を読み出すようにする。
【００５２】
次に、図７は、ＣＰＵ２がスリープモードに移行する場合に、主にポートサンプリング回路６に対して行うレジスタ設定の手順を示すものである。ＣＰＵ２は、ステップＳ１と同様にPSMOE＝０とすると（ステップＳ２０）、コントロールレジスタ（０）１７の対応するビットに「１」を書き込むことで、３２ビット中の各ビット毎にサンプリングを許可する（ステップＳ２１）。
【００５３】
それから、ウェイクアップステータスレジスタ２２の全てのビットに「０」を書き込んでクリアすると（ステップＳ２２）、ウェイクアップコントロールの設定を行う（ステップＳ２３）。即ち、ウェイクアップコントロールレジスタ２３の対応するビットに「１」を書き込んで、ウェイクアップ信号WKUPの出力を許可する。
【００５４】
そして、ＣＰＵ２は、ステップＳ９と同様にPSMOE＝１として、ポート出力及びサンプリング処理を許可状態にすると（ステップＳ２４）、クロック制御回路４に対してスリープモードの設定を行う（ステップＳ２５）。すると、クロック制御回路４は、メイン発振回路３の発振動作を停止させるので、ＣＰＵ２に対するクロック信号の供給が停止して、ＣＰＵ２はスリープモードに移行する。
【００５５】
図８は、ＣＰＵ２が図７に示す処理を行った後スリープモードに移行した場合における、ポートサンプリング回路６の動作を示すタイミングチャートである。尚、２度一致フィルタ３３は選択されていないものとする。
【００５６】
図８（Ａ）において、ＣＰＵ２がスリープモードに移行すると（ａ）、カウンタ１４は、ＣＲクロックの２分周クロックでカウントを開始する（ｂ，ｃ）。そして、そのカウント値がレジスタ１３の設定値ｎに一致すると、出力ポート１１のレベルを「Ｌ」から「Ｈ」にドライブする（ｄ）。
【００５７】
そして、出力ポート１１のレベルが「Ｈ」になったことで、外部デバイスが入力ポート１０にハイレベルのデータを出力したものとする（ｅ）。すると、そのデータは、出力ポート１１のレベルが「Ｈ」から「Ｌ」に戻る直前にサンプリングされ、データレジスタ２０の出力レベルは「Ｌ」から「Ｈ」に遷移する（ｆ）。この出力レベル「Ｈ」が判定レジスタ２１の対応するビットの設定値に一致すると、ウェイクアップステータスレジスタ２２の対応するビットの値が「Ｈ」になる。そして、ステータスレジスタ２２の何れかのビットが「Ｈ」になれば、ウェイクアップ信号WKUPが「Ｈ」になって出力される。
【００５８】
ポートサンプリング回路６よりウェイクアップ信号WKUPが出力されると、クロック制御回路４はスリープモードを解除してメイン発振回路３に再び発振動作を行わせるので、ＣＰＵ２に対するクロック信号の供給が再開され、ＣＰＵ２は通常動作状態に復帰する。尚、データレジスタ２０に格納されたデータ及びステータスレジスタ２２にセットされたビットは、その後、ＣＰＵ２によってソフトウエア的にリセットされる。
【００５９】
また、図８（Ｂ）は、図８（Ａ）の一部を拡大して示すものである。（ｄ）に示すように、出力ポート１１のレベルが「Ｈ」になると、タイミングカウンタ１５がＣＲクロックによるカウント動作を開始する。そして、そのカウント値がタイミングレジスタ１６の設定値ｍに一致すると、サンプリング信号(PSME)が１ＣＲクロックのパルス幅を有するハイレベル信号としてタイミングジェネレータ３２より出力される。すると、データラッチ部３１において、入力ポート１０に与えられているデータがサンプリングされる。
【００６０】
それから、１ＣＲクロックの間に判定レジスタ２１の設定値との一致判定などが行われて、その次のクロックタイミングでデータレジスタ２０の出力状態が変化する。
【００６１】
即ち、従来のマイコンでは、スリープモードのように処理を一時的に停止させて消費電力の低減を図るモードに移行すると入力ポートのサンプリングを行うことができず、前記サンプリングを継続的に行う必要がある場合は、スリープモード等に移行することはできなかった。
【００６２】
これに対して、本実施例の構成によれば、ＣＰＵ２がスリープモードに移行しても、ポートサンプリング回路６が自動的にサンプリング動作を行っているので、スリープモード中に次の処理を行う契機となるデータが出力されたとしても、ポートサンプリング回路６がそれを検出すればその時点でスリープモードが解除される。従って、ＣＰＵ２は、スリープ中に出力されたデータを取り逃がすことなく、適切に対処することが可能となる。
【００６３】
図９は、２度一致フィルタ３３を選択した場合のタイミングの一例を示すものである。即ち、入力ポート１０のレベルが（ｎ−１）の時点で「Ｌ」から「Ｈ」に変化すると（ｂ）、そのレベルの変化は、データラッチ部３１内の前段でラッチされる（ｄ）。
【００６４】
次のｎの時点では、前段でラッチされたデータは後段のラッチに渡される（ｅ）。そして、ｎの時点でも入力ポート１０のレベルが「Ｌ」から「Ｈ」に変化すると（ｂ）、そのレベル変化は前段でラッチされる（ｄ）。すると、時点ｎにおいて前回と今回のサンプリングデータ値が一致したことにより、２度一致フィルタ３３はデータレジスタ２０にラッチ信号の出力を許可するので、データレジスタ２０は、入力ポート１０に与えられたデータをラッチする（ｆ）。
【００６５】
このように、２度一致フィルタ３３を選択した場合は、２回連続したサンプリングタイミングにおいて同じデータがサンプリングされた場合にだけ、そのデータ値がデータレジスタ２０に格納されるようになる。従って、マイコン１が例えば外来ノイズなどの影響を受けることで、入力ポート１０のデータレベルが一時的に変化したような場合に、そのデータをサンプリングしてしまうことを回避できる。
【００６６】
以上のように本実施例によれば、ポートサンプリング回路６を、ＣＰＵ２により設定された条件に基づいてマイコン１の入力ポート１０のサンプリングを自動的に行うようにハードウエアで構成した。具体的には、タイミングジェネレータ３２は、レジスタ１３に設定されたサンプリング周期及びレジスタ１６に設定されたサンプリング時間に基づいてサンプリングタイミング信号を周期的に出力し、データラッチ部３１は、そのタイミング信号に基づいて入力ポート１０に与えられるデータをラッチし、そのラッチしたデータをデータレジスタ２０に格納するように構成した。
【００６７】
即ち、ＣＰＵ２は、周期的に入力ポート１０をサンプリングするための処理を行なわずとも、適当なタイミングでデータの読み出しだけを行うようにすれば、マイコン１外部のデバイスなどから入力ポート１０に与えられるデータを読み込むことができる。従って、ＣＰＵ２に実行させる制御プログラムにはサンプリングを行う処理を記述する必要がなくなるので、プログラムの作成工程を簡単にすることができる。また、ＣＰＵ２の実動作中における処理負担も軽減されるので、その軽減された分を他の処理に振り分けることが可能となる。
【００６８】
そして、出力状態変化手段４０は、出力ポート１１のデータレベルを、入力ポート１０をサンプリングするタイミングに同期させて周期的に変化させ、入力ポート１０に接続されている外部デバイスを周期的に駆動するようにした。具体的には、タイミングジェネレータ３７は、レジスタ１３に設定された駆動周期に基づいて駆動タイミング信号を周期的に出力し、信号出力部３８は、前記タイミング信号に基づいて出力ポート１１のデータレベルを変化させるので、ＣＰＵ２は、入力ポート１０をサンプリングするために外部デバイスの駆動制御を行う必要がなくなり、処理負担を更に軽減することができる。
【００６９】
また、上述したように、タイミングジェネレータ３２は、レジスタ１３に設定されたサンプリング周期及びレジスタ１６に設定されたサンプリング時間に基づいてサンプリングタイミング信号を周期的に出力するので、外部デバイスの駆動が開始されてからデータが入力ポート１０に出力され、そのデータレベルが安定した状態となり適切なサンプリングが可能となるタイミングを、個別のケースに応じて設定することができる。
【００７０】
また、ポートサンプリング回路６の一致回路３５は、ＣＰＵ２がスリープモードに移行している場合に、入力ポート１０をサンプリングしたデータが判定レジスタ２１にセットされたデータに一致すると、ＡＮＤゲート３６を介してクロック制御回路４にウェイクアップ信号WKUPを出力するようにした。
【００７１】
即ち、ＣＰＵ２は、予め判定レジスタ２１に期待値データをセットしておけば、その期待値に等しいデータがサンプリングされた時点でスリープモードが解除されるので、スリープ中に出力されたデータを取り逃がすことなく適切に対処することができる。従って、ＣＰＵ２は、従来構成よりもスリープモードを有効に設定維持することができ、消費電力を一層削減することができる。
【００７２】
そして、ＣＰＵ２とポートサンプリング回路６とを備えてマイコン１を構成したので、ポートサンプリング回路６にサンプリング処理を代行させて、ＣＰＵ２（＝マイコン１）の処理能力を向上させることができる。
【００７３】
本発明は上記し且つ図面に記載した実施例にのみ限定されるものではなく、以下のような変形または拡張が可能である。
サンプリング周期設定レジスタと、状態変化周期設定レジスタとを個別に設けても良い。
出力状態変化手段は、必要に応じて設ければ良く、単に入力ポートを周期的にサンプリングする構成であっても良い。この場合は、例えば、タイミングジェネレータ３７が出力するタイミング信号をデータラッチ部３１のラッチ信号としても良い。或いは、タイミングジェネレータ３７が出力するタイミング信号によってカウンタ１５をリセットスタートさせるようにしても良い。この時は、レジスタ１６がサンプリング周期設定レジスタとなる。
【００７４】
出力状態の変化周期、または、サンプリングを行う周期は予め固定されていても良い。更に、出力状態の変化周期は可変として、その変化開始のタイミングからサンプリングを行う期間は予め固定としても良い。
判定レジスタ２１の設定は、図７に示すスリープ移行処理において行っても良い。
ＣＰＵ２の通常動作状態においても、入力ポート１０をサンプリングしたデータが判定レジスタ２１にセットされたデータに一致すると、ＣＰＵ２に一致信号として割込み信号を出力するように構成しても良い。
斯様に構成すれば、ＣＰＵ２は、割り込みの発生によって期待値に等しいデータがサンプリングされたことを知ることができるので、サンプリングされたデータが期待値に一致したか否かを判定するために、入力ポート１０を所定時間ごとにポーリングして比較判定する必要がなくなる。従って、ＣＰＵ２の処理負担を一層削減することができる。
タイミングジェネレータ３７と信号出力部３９とが一体にとなるように構成しても良い。
【００７５】
低消費電力モードを実行する機能、即ち、クロック制御回路４が行う機能は、ＣＰＵに内蔵されていても良い。
また、低消費電力モードは、スリープ／ストップモードに限ることなく、例えば、クロック周波数を一時的に低下させたり、マイクロコンピュータの一部の機能を限定的に停止させるなど、要は通常の動作状態よりも消費電力が少なくなるように設定されるモードであれば良い。
更に、ＣＰＵまたはマイクロコンピュータは、必ずしも低消費電力モードを実行する機能を有していなくても良い。
２度一致フィルタ３３は、必要に応じて設ければ良い。その場合、データラッチ部３１を削除して、入力ポート１０に与えられるデータをデータレジスタ２０において直接ラッチするように構成しても良い。
車両用のＥＣＵとして構成されるものに限ることなく、入力ポートのサンプリングを行うマイクロコンピュータであれば広く適用が可能である。
【図面の簡単な説明】
【図１】本発明を車両用のボディＥＣＵなどに使用されるマイクロコンピュータに適用した場合の一実施例であり、マイクロコンピュータの概略的な構成を示す機能ブロック図
【図２】ポートサンプリング回路が内蔵しているレジスタ及びカウンタを示す図
【図３】出力ポートのレベル変化周期を示すタイミングチャート
【図４】サンプリングタイミングを示すタイミングチャート
【図５】ポートサンプリング回路の内部構成を概略的に示す機能ブロック図
【図６】ＣＰＵが通常動作時においてポートサンプリング回路を使用する場合に、当該回路に対して行うレジスタ設定の手順を示すフローチャート
【図７】ＣＰＵがスリープモードに移行する場合に、主にポートサンプリング回路に対して行うレジスタ設定の手順を示すフローチャート
【図８】ＣＰＵが図７に示す処理を行った後スリープモードに移行した場合における、ポートサンプリング回路の動作を示すタイミングチャートであり、（Ｂ）は（Ａ）の一部を拡大して示す図
【図９】２度一致フィルタを選択した場合のタイミングの一例を示す図
【符号の説明】
１はマイクロコンピュータ、２はＣＰＵ、６はポートサンプリング回路、１０は入力ポート、１１は出力ポート、１３はポート出力サイクルレジスタ（サンプリング周期設定レジスタ、状態変化周期設定レジスタ）、１６はサンプリングタイミングレジスタ（サンプリング開始時間設定レジスタ）、２０はデータレジスタ、２１はサンプリング判定レジスタ（期待値セットレジスタ）、３１はデータラッチ部、３２はタイミングジェネレータ（サンプリングタイミング信号出力部）、３５は一致回路（一致信号出力部）、３７はタイミングジェネレータ（状態変化タイミング信号出力部）、３８は信号出力部（状態変化部）、４０は出力状態変化手段を示す。
【図１】
0004192485.tif 000002
【図２】
0004192485.tif 000003
【図３】
0004192485.tif 000004
【図４】
0004192485.tif 000005
【図５】
0004192485.tif 000006
【図６】
0004192485.tif 000007
【図７】
0004192485.tif 000008
【図８】
0004192485.tif 000009
【図９】
0004192485.tif 000010