(57)【要約】【課題】  ＷＤＴカウンタを有するマイクロコンピュータにおいて、ハードウェア処理だけで外部周辺デバイスのリセットに適したアサート期間を有するリセット信号を生成することができ、しかも外部周辺デバイス用のリセット信号のパルス幅を内部で用いられるリセット信号のパルス幅とは独立に定めうるようにする。【解決手段】  ＷＤＴカウンタ（９）が発生したオーバーフローリセット信号（ＶＦ）を受け、これと異なる、例えばこれより長いアサート時間を有する期間変更リセット信号を生成し（１１，３１）し、オーバーフローリセット信号（ＶＦ）ＣＰＵをリセットするとともに、期間変更リセット信号（ＲＴ）を外部に出力する。【選択図】        図１
2006079345.tif 000002
【特許請求の範囲】
【請求項１】
正常に動作しているときは繰り返しクリア命令を発生するＣＰＵと、
前記ＣＰＵが所定時間以上継続してクリア命令を発生しないときに、オーバーフローリセット信号を出力するウォッチドッグタイマーカウンタと、
リセット出力端子と、
前記オーバーフローリセット信号またはこれに基づいて生成された信号を受け、前記オーバーフローリセット信号と異なるアサート時間を有する期間変更リセット信号を生成する期間変更リセット信号生成回路と
を有し、
前記オーバーフローリセット信号またはこれに基づいて生成された内部用リセット信号で前記ＣＰＵをリセットするとともに、
前記期間変更リセット信号生成回路で生成された期間変更リセット信号、またはこれに基づいて生成された外部用リセット信号を外部に出力する
マイクロコンピュータ。
【請求項２】
外部で生成されたリセット信号を受けるリセット入力端子と、
前記オーバーフローリセット信号と、前記リセット入力端子を介して入力されたリセット信号とを入力とする第１の論理和回路をさらに有し、
前記第１の論理和回路の出力を前記内部用リセット信号とする
ことを特徴とする請求項１に記載のマイクロコンピュータ。
【請求項３】
前記期間変更リセット信号生成回路で生成された期間変更リセット信号と、前記リセット入力端子を介して入力されたリセット信号とを入力とする第２の論理和回路をさらに有し、前記第２の論理和回路の出力を前記外部用リセット信号とする
ことを特徴とする請求項２に記載のマイクロコンピュータ。
【請求項４】
外部で生成されたリセット信号を受けるリセット入力端子と、
前記オーバーフローリセット信号と、前記リセット入力端子を介して入力されたリセット信号とを入力とする第１の論理和回路をさらに有し、
前記期間変更リセット信号生成回路は、前記第１の論理和回路の出力を入力とし、これと異なるアサート期間を有する期間変更リセット信号を出力する
ことを特徴とする請求項１に記載のマイクロコンピュータ。
【請求項５】
前記期間変更リセット信号生成回路は、
期間変更リセット信号のアサート期間に対応するデータを設定するためのアサート期間設定手段と、
前記オーバーフローリセット信号が出力されてから、前記アサート期間設定手段に設定されたデータに対応する期間だけアサートされる信号を前記期間変更リセット信号として出力する手段と
を有する
ことを特徴とする請求項１に記載のマイクロコンピュータ。
【請求項６】
前記アサート期間設定手段が、アサート期間設定レジスタを含み、
前記ＣＰＵがその起動時に、前記アサート期間設定レジスタに期間変更アサート期間に対応するデータを書込むことを特徴とする
ことを特徴とする請求項５に記載のマイクロコンピュータ。
【請求項７】
前記アサート期間設定手段が、手動操作により所定の数値のうちのいずれかを設定することができ、設定された数値を保持するスイッチと、
前記スイッチで設定された数値をデコードするデコーダとを
有することを特徴とする請求項５に記載のマイクロコンピュータ。
【請求項８】
前記期間変更リセット信号が、前記オーバーフローリセット信号に比べアサート時間が長いものであることを特徴とする請求項１に記載のマイクロコンピュータ。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、マイクロコンピュータに関し、特にウォッチドッグタイマ（ＷＤＴ）を備えたマイクロコンピュータに関する。
【背景技術】
【０００２】
ＬＳＩで構成され、ＣＰＵを有する制御用マイクロコンピュータ（「マイクロコントローラ」とも呼ばれる。以下単に「マイコン」と言うこともある。）は、ＣＰＵがソフトウェア動作を正常に行わず、暴走したとき、これを検知してマイコンにリセットをかけるため、ＷＤＴを備えている。
【０００３】
ＣＰＵは、ソフトウェアが正常に動作している場合は繰り返し、例えば一定期間ごとにＷＤＴカウンタをクリアする命令を実行し、ＷＤＴカウンタがオーバーフローすることないようにする。暴走によりクリア命令が正しく実行されないと、ＷＤＴカウンタをクリアする命令が実行されないために、ＷＤＴカウンタがやがてオーバーフローを起こし、このオーバーフローによって発生する信号により、マイコン全体に対してリセットを掛け、異常動作からの復帰を行わせている。
【０００４】
従来、ＷＤＴがリセットをかけるのはマイコン内部に対してのみであるのが一般的であり、マイコンと外部周辺デバイスとで構成される回路システムにおいては、マイコンが異常動作の後にＷＤＴオーバーフローにより内部リセットを掛け、正常状態に復帰した後に、マイコンが命令によってマイコンが持つ出力ポート等を通じて外部周辺デバイスをリセットする、といった処理を行うのが一般的である。
【０００５】
このような場合、マイコンがリセット状態から抜け出した後に外部周辺デバイスをリセットするためのソフトウェアが必要である。外部周辺デバイスへのリセット信号の生成には、リセット信号印加期間を生成するタイマと、リセット信号を出力する外部ポートが必要である。さらに、上記のタイマが所望のカウント値になったことを検知し、出力ポートをリセット解除状態に再設定するなど数種の命令を必要とする。従って、外部周辺デバイスのリセット中はマイコン自体の処理に少なからず負担が掛かると言う問題があった。
【０００６】
また、従来のこの種のマイコンとして、下記の特許文献１に記載されたものがある。このマイコンにおいては、暴走検出回路（ウォッチドッグタイマ）から出力されたリセット信号が、マイコン内部の回路に出力されるとともに、リセット出力端子から外部へ出力され、暴走が起きたことを、外部において例えば他のマイコンにおいて知ることができる。
【０００７】
【特許文献１】特公平０７−１９１８７号公報（第３頁右下欄、第１図）
【発明の開示】
【発明が解決しようとする課題】
【０００８】
しかるに、上記特許文献１に記載されたマイコンにおいては、マイコン内部で用いられるリセット信号がそのまま外部に出力されるため、そのリセット信号を外部周辺デバイスのリセットに用いようとすると、リセット信号のパルス幅が外部周辺デバイス用として適切でない場合があると言う問題があった。
【０００９】
本発明の目的は、ハードウェア処理だけで外部周辺デバイスのリセットに適したアサート期間を有するリセット信号を生成することができ、しかも外部周辺デバイス用のリセット信号のパルス幅を内部で用いられるリセット信号のパルス幅とは独立に定めうる回路を備えたマイクロコンピュータを提供することにある。
【課題を解決するための手段】
【００１０】
本発明は、
正常に動作しているときは繰り返しクリア命令を発生するＣＰＵと、
前記ＣＰＵが所定時間以上継続してクリア命令を発生しないときに、オーバーフローリセット信号を出力するウォッチドッグタイマーカウンタと、
リセット出力端子と、
前記オーバーフローリセット信号またはこれに基づいて生成された信号を受け、前記オーバーフローリセット信号と異なるアサート時間を有する期間変更リセット信号を生成する期間変更リセット信号生成回路と
を有し、
前記オーバーフローリセット信号またはこれに基づいて生成された内部用リセット信号で前記ＣＰＵをリセットするとともに、
前記期間変更リセット信号生成回路で生成された期間変更リセット信号、またはこれに基づいて生成された外部用リセット信号ＲＯを外部に出力する
マイクロコンピュータを提供するものである。
【発明の効果】
【００１１】
本発明によれば、マイコン及び外部周辺デバイスから構成されるシステムにおいて、外部周辺デバイスに適したリセット有効期間を設定することができる。
【発明を実施するための最良の形態】
【００１２】
実施の形態１．
図１に本発明の実施の形態１のマイクロコンピュータ（マイコン）およびその外部周辺デバイスの回路構成の例を示す。図１に示されるマイコン１は、外部周辺デバイス２ａ、２ｂ、２ｃとともに用いられるものであり、ＣＰＵ６と、クロック発生器７と、ＣＰＵ６及びクロック発生器７以外のマイコン内の諸回路（レジスタ、メモリなど、以下「マイコン内回路」と言うこともある）８と、ウォッチドッグタイマーカウンタ（ＷＤＴカウンタ）９と、期間変更リセット信号生成回路１１と、第１の論理和回路１４と、第２の論理和回路１５と、リセット入力端子２１と、リセット出力端子２２とを有する。
ＣＰＵ６とマイコン内回路８とは内部バス１０で接続されている。
【００１３】
リセット出力端子２２は、外部周辺デバイス２ａ、２ｂ、２ｃに外部用リセット用信号ＲＯを供給するためのものである。なお、外部周辺デバイス２ａ、２ａ、２ａと、マイコン１とは図示しない信号線でも接続され、データ授受などを行っている。
【００１４】
クロック発生器７は、マイコン１内における動作の同期を取るためのクロック（システムクロック）ＣＫを発生する。
ＣＰＵ６は、正常に動作しているときは、繰り返し、例えば一定時間毎にクリア命令を発生し、これによりＷＤＴカウンタ９にクリア信号ＣＬが供給されるが、暴走等の異常でクリア命令が発生されなくなることがある。
【００１５】
ＷＤＴカウンタ９は、ＣＰＵ６が所定時間以上継続してクリア命令を発生せず、所定時間内に一度もクリア信号ＣＬが発生されないときに、オーバーフローリセット信号ＶＦを出力する。オーバーフローリセット信号ＶＦは、システムクロックＣＫの数サイクル（２乃至８サイクル程度）に相当する幅を有するパルスである。
【００１６】
期間変更リセット信号生成回路１１は、オーバーフローリセット信号ＶＦを受け、オーバーフローリセット信号ＶＦと異なるアサート時間を有する期間変更リセット信号、例えばオーバーフローリセット信号ＶＦに比べアサート時間が長い延長リセット信号ＲＴを生成するものであり、例えば図示のように、アサート期間カウンタ１６と、アサート期間設定レジスタ１７と、比較器１８と、フリップフロップ１９とを有する。
【００１７】
アサート期間設定レジスタ１７は、期間変更リセット信号のアサート期間に対応するデータを記憶するものであり、内部バス１０を介してＣＰＵ６と接続されており、ＣＰＵ６が起動時にシステムの初期化を行う際、内部バス１０を介して、アサート期間設定レジスタ１７にアサート期間に対応するデータが書込まれる。
【００１８】
アサート期間カウンタ１６は、オーバーフローリセット信号ＶＦが出力されたときにシステムクロックＣＫのカウントを開始する。
比較器１８は、アサート期間カウンタ１６におけるカウント値ＣＶがアサート期間設定レジスタ１７に設定されたアサート期間に対応するデータと一致したとき、そのことを示す信号（一致信号）ＥＱを出力する。言い換えると、一致信号ＥＱの値を「０」乃至「イナクティブ」から「１」乃至「アクティブ」にする。
【００１９】
フリップフロップ１９は、オーバーフローリセット信号ＶＦによりセットされ、比較器１８の出力によりリセットされる。フリップフロップ１９の出力は、期間変更リセット信号ＲＴとして、第２の論理和回路１５に供給される。フリップフロップ１９の出力はまた、アサート期間カウンタ１６にカウントイネーブル信号として供給される。
アサート期間カウンタ１６は、上記のように、オーバーフローリセット信号ＶＦが発生されたときにシステムクロックＣＫのカウントを開始するものであるが、より正確には、フリップフロップ１９の出力をカウントイネーブル信号として受け、このカウントイネーブル信号が「１」乃至「アクティブ」のときにのみカウントを行い、カウントイネーブル信号が「０」乃至「イナクティブ」になると、リセットされ、カウント値ＣＶが初期値（ゼロ）に戻る。
【００２０】
このような動作の結果、期間変更リセット信号ＲＴは、アサート期間設定レジスタ１７に設定された期間に対応するものとなる。
【００２１】
比較器１８及びフリップフロップ１９は、マイコン１内の他の回路と同様システムクロックＣＫに同期して動作するものであり、クロック発生器７から発生されるシステムクロックＣＫは、図示のようにアサート期間カウンタ１６に供給されるほか、マイコン内の他の回路にも供給されるが、その図示は省略されている。
【００２２】
フリップフロップ１９の出力ＲＴが立ち上がり、アサート期間カウンタ１６がカウントを開始するのは、オーバーフローリセット信号ＶＦが立ち上がってから１クロック周期経過した後である一方、アサート期間カウンタ１６のカウント値ＣＶがアサート期間設定レジスタ１７に設定されている数値ＳＶと一致すると直ちにフリップフロップ１９の出力ＲＴが立ち下がるので、このことを考慮して、アサート期間設定レジスタ１７には、期間変更リセット信号の、クロック周期を単位として表されるアサート期間よりも１だけ小さい数値が設定される。その理由は、後述の説明から一層明らかとなろう。
【００２３】
第２の論理和回路１５は、期間変更リセット信号ＲＴと、リセット入力端子２１から供給されるリセット信号ＲＩとを入力とし、その論理和を出力する。第２の論理和回路１５の出力は外部用リセット信号ＲＯとしてリセット出力端子２２から外部周辺デバイス２ａ、２ｂ、２ｃへ出力される。
【００２４】
リセット信号ＲＩは、例えばマイコンに電源が投入されたときに発生されるものであり、通常は、このリセット信号ＲＩによって、マイコン１及び外部周辺デバイス２ａ、２ｂ、２ｃを初期化するが、オーバーフローリセット信号ＶＦに基いてリセット信号ＲＴが発生されたときも、外部周辺デバイス２ａ、２ｂ、２ｃが初期化される。
【００２５】
第１の論理和回路１４は、リセット信号ＲＩと、オーバーフローリセット信号ＶＦとを入力とし、その論理和を内部用リセット信号ＲＱとして出力する。ＣＰＵ６とマイコン内回路８は、内部用リセット信号ＲＱによりリセットされる。
【００２６】
ＷＤＴオーバーフローリセット信号ＶＦによってリセットされては都合の悪い回路、例えばＷＤＴカウンタ９及び期間変更リセット信号生成回路１１は、内部用リセット信号ＲＱによっては初期化されず、リセット信号ＲＩが入力されたときにのみ、初期化される。
【００２７】
このようにマイコン１は、マイコン内部のリセットのための信号（ＲＱ）を発生するのみならず、外部周辺デバイス２ａ、２ｂ、２ｃのリセットのための信号（ＲＯ）を別途発生する。
【００２８】
以下、上記のマイコンの動作を、図２を参照して説明する。
マイコン１及び外部周辺デバイス２ａ、２ｂ、２ｃを含むシステムへ電源が投入されると、リセット信号発生回路３から、マイコン１のリセット入力端子２１へリセット信号ＲＩが入力される。
【００２９】
このリセット信号ＲＩは、第１の論理和回路１４を介して内部リセット信号ＲＱとなってＣＰＵ６及びマイコン内回路８に供給されて、ＣＰＵ１とマイコン内回路８がリセットされるとともに、ＷＤＴカウンタ９、アサート期間設定レジスタ１７、アサート期間カウンタ１６、比較器１８、フリップフロップ１９にも直接供給されてこれらの回路をリセットする。リセット信号ＲＩはさらに、第２の論理和回路１５を介して外部リセット信号ＲＯとなって、外部周辺デバイス２ａ、２ｂ、２ｃをリセットする。
【００３０】
リセット信号ＲＩは、外部周辺デバイス２ａ、２ｂ、２ｃのリセットに必要なアサート期間を有するように定められている。
【００３１】
リセット信号ＲＩが解除（ネゲート）されると（ｔ１０）、マイコン１と外部周辺デバイス２ａ、２ｂ、２ｃを含むシステムが通常動作を開始する。
マイコン１の通常動作に開始時に、ソフトウェアにより、アサート期間設定レジスタ１７にアサート期間に対応するデータを設定する（ｔ１１）。図示の例ではアサート期間に対応するデータとして「１９」が設定された場合を示している。ここで言う「１９」は、システムクロックＣＫの１９サイクルを意味する。このようにアサート期間設定レジスタ１１に１９を設定すると、変更期間リセット信号としては、後述のように、アサート期間が２０サイクルの長さを有するものが得られる。変更期間リセット信号ＲＴのアサート期間は、外部周辺デバイス２ａ、２ｂ、２ｃのリセットに必要な長さを有するように定められる。
【００３２】
マイコン１が動作中、なんらかの理由でプログラムが暴走した場合、オーバーフローリセット信号ＶＦが発生する（ｔ２０）。このオーバーフローリセット信号ＶＦはシステムクロックＣＫの数サイクル（図示の例では６サイクル）の持続期間を有する。
このオーバーフローリセット信号ＶＦは、第１の論理和回路１４を介して内部リセット信号ＲＱとなり、ＣＰＵ６及びマイコン内回路８をリセットする。
オーバーフローリセット信号ＶＦはまた、期間変更リセット信号生成回路１１を介して、期間変更リセット信号ＲＴとなり、さらに、第２の論理和回路１５を介して外部用リセット信号ＲＯとなって、外部周辺デバイス２ａ、２ｂ、２ｃに供給され、外部周辺デバイス２ａ、２ｂ、２ｃをリセットする。
【００３３】
期間変更リセット信号生成回路１１では、オーバーフローリセット信号ＶＦによりマイコン１内部がリセットされると同時に、期間変更リセット信号ＲＴの生成が開始する。即ち、オーバーフローリセット信号ＶＦによりフリップフロップ１９がセットされ、その出力が「１」乃至「アクティブ」となる。フリップフロップ１９の出力は、期間変更リセット信号ＲＴとして、第２の論理和回路１５に供給されるとともに、アサート期間カウンタ１６にカウントイネーブル信号として供給される。この結果アサート期間カウンタ１６はシステムクロックＣＫのカウントを開始する。
【００３４】
アサート期間カウンタ１６におけるカウント値ＣＶがアサート期間設定レジスタ１７に設定されたアサート期間に対応するデータ（１９）と一致したとき、比較器１８の出力である一致信号ＥＱの値が「０」乃至「イナクティブ」から「１」乃至「アクティブ」に変わる。一致信号ＥＱにより、フリップフロップ１９がリセットされ、その出力ＲＴが「１」乃至「アクティブ」から「０」乃至「イナクティブ」に変わる（ｔ３０）。
【００３５】
フリップフロップ１９の出力が「０」乃至「イナクティブ」となると、アサート期間カウンタ１６はカウントを終え、カウント値ＣＶがリセットされる。
【００３６】
このような動作の結果、期間変更リセット信号ＲＴは、アサート期間設定レジスタ１７に設定された期間（１９）に対応するもの（２０）となる。
【００３７】
フリップフロップ１９の出力ＲＴは、第２の論理和回路１５を介して外部周辺デバイス２ａ、２ｂ、２ｃに供給されて、外部周辺デバイス２ａ、２ｂ、２ｃをリセットする。アサート期間設定レジスタ１７の設定値が上記のように定められているので、リセット信号ＲＯも外部周辺デバイス２ａ、２ｂ、２ｃのリセットに十分な長さを有する。
【００３８】
一般的にＬＳＩ内部ロジックのリセットに必要な期間は、マイコン内部のシステムクロックＣＫの数サイクルだけであり、外部周辺デバイスのリセットに必要な期間よりも短い。本実施の形態のマイコンにおいては、マイコン内部用のリセット信号ＲＱと外部用のリセット信号ＲＯとは異なる長さを有し、外部用のリセット信号ＲＯの方が内部用のリセット信号ＲＱよりも長い。
【００３９】
従って、オーバーフローリセット信号ＶＦに基づく内部用リセット信号ＲＱは、外部用リセット信号ＲＯよりも短く、システムクロックＣＫの数サイクルで解除されるため、外部用リセット信号ＲＯが解除されるまで待つ必要なしに、リセットに対応して再起動の処理を開始することができる。
【００４０】
外部周辺デバイス２ａ、２ｂ、２ｃにリセット信号ＲＯが印加されている期間中は、マイコン１は外部周辺デバイス２ａ、２ｂ、２ｃに対してアクセスを行うことができないが、上記期間においては、マイコン１内における処理、例えばマイコン１内の諸機能の初期設定などを行うのが通常と考えられる。従って、このように内部用リセット信号ＲＱが外部用リセット信号ＲＯよりも短くても問題はない。
【００４１】
なお、外部用リセット信号ＲＱの生成に必要な回路（アサート期間カウンタ１６、アサート期間設定レジスタ１７、比較器１８、フリップフロップ１９）は、オーバーフローリセット信号ＶＦや、これに基づいて発生される内部用リセット信号ＲＱによってクリアしてしまうことがないようにしてある。
【００４２】
上記のマイコンによれば、電源投入時に外部からリセット信号ＲＩが供給された場合のみならず、暴走時にＷＤＴカウンタ９がオーバーフローリセット信号ＶＦを発生した場合にも、外部周辺デバイスをリセットすることができる。しかも、オーバーフローリセット信号ＶＦが発生された場合には、マイコン内部のためのリセット信号ＲＱと外部周辺デバイスに供給するリセット信号ＲＯの長さを異なるものとし、マイコン内部のリセットに対応した処理を遅らせることなく、外部周辺デバイスに対して十分な長さのリセット信号を与えることができる。
【００４３】
また、外部用リセット信号のアサート期間に対応する数値ＳＶをＣＰＵ６がアサート期間設定レジスタ１７に書き込むようにしているので、マイコンのプログラム中で定義されるパラメータの変更によって簡単に変更することができる。
【００４４】
さらにまた、外部からのリセット信号ＲＩが供給された場合も、マイコン内部でオーバーフローリセット信号ＶＦが発生された場合も、第１の論理和回路１４の出力によってマイコン内部の回路のリセットを行っているので、マイコンのシステム構成を簡単にすることができる。
【００４５】
同様に、外部からのリセット信号ＲＩが供給された場合も、マイコン内部でオーバーフローリセット信号ＶＦが発生された場合も、第２の論理和回路１５の出力によって外部周辺デバイス２ａ、２ｂ、２ｃのリセットを行っているので、外部周辺デバイスのシステム構成を簡単にすることができる。
【００４６】
オーバーフローリセット信号ＶＦに基づくリセット信号ＲＴと、マイコン１の外部から供給されるリセット信号ＲＩがそれぞれ別個に直接外部周辺デバイス２ａ、２ｂ、２ｃに供給される場合には、外部周辺デバイス２ａ〜２ｃの各々は、これらのためは、リセット信号ＲＩを受ける端子と、リセット信号ＲＴを受ける端子を別々に持つ必要があるが、上記のように論理和回路１９を介して供給されるリセット信号を受けるようにしているので、リセット信号を受ける端子を減らすことができる。
【００４７】
なお、図１の例では、外部から供給されるリセット信号ＲＩと期間変更リセット信号ＲＴの論理和を外部用リセット信号ＲＯとしているが、論理和回路１５を用いずに、期間変更リセット信号ＲＴをそのまま（論理和回路を通さずに）外部用リセット信号として出力することとしても良い。この場合、外部から供給されるリセット信号ＲＩは例えば期間変更リセット信号ＲＴとは別は、外部周辺デバイスに供給されることになる。
また、図１の例では、外部から供給されたリセット信号ＲＩとオーバーフローリセット信号ＶＦの論理和を内部用リセット信号ＲＱとしているが、論理和回路１４を用いずに、オーバーフローリセット信号ＶＦをそのまま（論理和回路を通さずに）内部用リセット信号ＲＱとしても良い。この場合、外部から供給されるリセット信号ＲＩは例えばオーバーフローリセット信号ＶＦとは別に、ＣＰＵ６やマイコン内回路８に供給されることになる。
そのような構成であっても、オーバーフローリセット信号ＶＦが発生されたときに、互いに長さの異なる内部用リセット信号と外部用リセット信号を生成することによる効果が得られる。
【００４８】
実施の形態２．
実施の形態１では、リセット入力端子２１を介して入力されるリセット信号ＲＩは、論理和回路１５を通して、そのまま（即ちアサート期間を変更することなく）外部用リセット信号ＲＯとしているため、外部周辺デバイスのリセットに必要なアサート期間を有する必要がある。そのため、リセット入力端子２１への入力の前に、リセット信号のアサート期間を十分な長さのものとするための回路を付加する必要が生じる場合があり、マイコンを含むシステムの縮小化、簡素化を図る上で制約となっていた。
本実施の形態のマイコンはそのような問題を解決するためのものである。図３に本実施の形態（実施の形態２）のマイコンの回路構成を示す。
【００４９】
図３に示されるマイコンは、概して図１のマイコンと同じであるが、以下の点の異なる。まず、図１の期間変更リセット信号生成回路１１の代わりに、期間変更リセット信号生成回路３１が設けられている。期間変更リセット信号生成回路３１には、オーバーフローリセット信号ＶＦではなく、論理和回路１４の出力ＲＱが入力されており、期間変更リセット信号生成回路３１から出力される期間変更リセット信号ＲＴがそのまま（図１の論理和回路１５を通すことなく）外部用リセット信号ＲＯとして出力されている。
【００５０】
また、期間変更リセット信号生成回路３１はアサート期間設定レジスタ１７の代わりにデコーダ３２とアサート期間設定入力端子３３とを有する。
アサート期間設定入力端子３３としては、例えばロジックスイッチ（手動操作により所定の数値のうちのいずれかを設定することができ、設定された数値を保持するスイッチ）を用いることができ、この入力端子３３を用いてアサート期間に対応する数値ＳＶを設定する。デコーダ３２は、入力端子３３で設定されたアサート期間に対応する数値ＳＶをデコードして出力する。
【００５１】
上記のように、オーバーフローリセット信号ＶＦではなく論理和回路１４の出力ＲＱが期間変更リセット信号生成回路３１に入力されているので、外部から供給されたリセット信号ＲＩもそのままではなく、期間が変更された後、例えば期間が延長された後に、リセット出力端子２２から出力され、外部周辺デバイス２ａ、２ｂ、２ｃに供給される。
【００５２】
実施の形態２で、アサート期間設定レジスタ１７の代わりにデコーダ３２とアサート期間設定入力端子３３とを用いているのは以下の理由による。即ち、実施の形態２では、電源入力後のリセットにおいて外部からリセット信号ＲＩが供給された場合にも、そのリセット信号ＲＩが論理和回路１４を通って、フリップフロップ１９に供給され、フリップフロップ１９の出力が「１」乃至「アクティブ」になると、アサート期間カウンタ１６によるシステムクロックＣＫのカウントが開始され、比較器１８で、アサート期間カウンタ１６のカウント値ＣＶとデコーダ３２のデコード値ＳＶとの比較が行われる。図３の構成で、デコーダ３２の代わりに図１と同様のレジスタ１７が用いられているとすると、カウント開始時はまだレジスタ１７へのＣＰＵ１１による書き込みが終わっておらず（ＣＰＵ１１がリセットされ、再起動を開始したばかりであるため）、したがって、レジスタ１７が適切な値を出力しているとは限らず、比較器１８による比較の結果も有用なものとはならない。
実施の形態２では、レジスタ１７の代わりにデコーダ３２及び入力端子３３を用いることで、ＣＰＵ１１が再起動したばかりでも、適切な値を提供するようにしている。
【００５３】
アサート期間設定入力端子３３は、例えば３個のオンオフスイッチＮｏ．１、２、３から成るものとして、それぞれがオンの位置にあるかオフの位置にあるかに応じて２の３乗、即ち８個のアサート期間のいずれかを選択し得るように構成することができる。
スイッチの状態に対応する８個のアサート期間（クロックＣＫの周期で表される）の一例を図５に示す。同図で、スイッチの状態について、１はオンを表し、０はオフを表す。なお、デコーダ３２は、アサート期間を表す数値よりも１だけ小さい数値ＳＶを出力するように構成されている。これは実施の形態１のレジスタ１７の設定値について説明したのと同じ理由による。
【００５４】
以下に図３のマイコンの動作を図４を参照して説明する。
システムへの電源投入直後、マイコン１のリセット入力端子２１へリセット信号ＲＩが立ち上がる（ｔ３１）。このリセット信号ＲＩは論理和回路１４を通って内部用リセット信号ＲＱとなり、マイコン１内部のＣＰＵ６及びマイコン内回路８がリセットされる。論理和回路１４の出力ＲＱはまた、期間変更リセット信号生成回路３１に供給され、期間変更リセット信号生成回路３１内のフリップフロップ１９がセットされ、その出力ＲＴが「１」乃至「アクティブ」となる。フリップフロップ１９の出力ＲＴはカウントイネーブル信号としてアサート期間カウンタ１６に供給され、アサート期間カウンタ１６によるシステムクロックＣＫのカウントが開始される。比較器１８では、アサート期間カウンタ１６によるカウント値ＣＶとデコーダ３２のデコード値ＳＶとの比較を開始する。デコーダ３２は、ＣＰＵ６が再起動中であっても適切なデコード値（入力端子により設定された値）ＳＶを維持している。
【００５５】
アサート期間カウンタ１６のカウント値ＣＶがデコード値ＳＶに一致すると、フリップフロップ１９がリセットされ、その出力が「０」乃至「イナクティブ」となる（ｔ３２）。その結果、アサート期間カウンタ１６のカウントが終了し、カウント値ＣＶがゼロに戻される。フリップフロップ１９の出力ＲＴは、そのまま外部用リセット信号ＲＯとして外部周辺デバイス２ａ、２ｂ、２ｃに供給される。
【００５６】
オーバーフローリセット信号ＶＦが発生されたとき（ｔ４１）も同様に、オーバーフローリセット信号ＶＦが論理和回路１４を通って内部用リセット信号ＲＱとなり、マイコン１内部のＣＰＵ６及びマイコン内部の諸回路８がリセットされるとともに、論理和回路１４の出力ＲＱが期間変更リセット信号生成回路３１に供給される。期間変更リセット信号生成回路３１では、上記と同様（外部からリセット信号ＲＩが供給されたときと同様）に動作し、アサート期間カウンタ１６のカウント値ＣＶがデコード値ＳＶに一致するまで（ｔ４２）、外部用リセット信号ＲＯが出力される。
【００５７】
上記のマイコンによれば、電源投入時に外部からリセット信号ＲＩが供給された場合のみならず、暴走時にＷＤＴカウンタ９がオーバーフローリセット信号ＶＦを発生した場合にも、外部周辺デバイスをリセットすることができる。しかも、マイコン内部用のリセット信号ＲＱと外部周辺デバイスに供給するリセット信号ＲＯの長さを異なるものとし、マイコン内部のリセットに対応した処理を遅らせることなく、外部周辺デバイスに対して十分な長さのリセット信号を与えることができる。
また、外部用リセット信号のアサート期間の長さを、入力端子３３の状態を変えることにより、簡単に変更することができる。
【００５８】
さらにまた、外部からのリセット信号ＲＩが供給された場合も、マイコン内部でオーバーフローリセット信号ＶＦが発生された場合も、論理和回路１４の出力によってマイコン内部の回路のリセットを行っているので、マイコンのシステム構成を簡単にすることができる。
【００５９】
同様に、外部からのリセット信号ＲＩが供給された場合も、マイコン内部でオーバーフローリセット信号ＶＦが発生された場合も、論理和回路１４の出力に基いて生成された期間変更リセット信号ＲＴによって外部周辺デバイス２ａ、２ｂ、２ｃのリセットを行っているので、外部周辺デバイスのシステム構成を簡単にすることができる。
【００６０】
なお、図３の例では、外部から供給されるリセット信号ＲＩとオーバーフローリセット信号ＶＦの論理和を期間変更リセット信号生成回路３１の入力としているが、オーバーフローリセット信号ＶＦをそのまま（論理和回路１４を通さずに）期間変更リセット信号生成回路３１の入力としても良い。
また、図３の例では、外部から供給されたリセット信号ＲＩとオーバーフローリセット信号ＶＦの論理和を内部用リセット信号ＲＱとしているが、オーバーフローリセット信号ＶＦをそのまま（論理和回路１４を通さずに）内部用リセット信号ＲＱとしても良い。この場合、外部から供給されるリセット信号ＲＩは例えばオーバーフローリセット信号ＶＦとは別に、ＣＰＵ６やマイコン内回路８に供給されることになる。
そのような構成であっても、オーバーフローリセット信号ＶＦが発生されたときに、互いに長さの異なる内部用リセット信号と外部用リセット信号を生成することによる効果が得られる。
【００６１】
さらにまた、図３で用いた、デコーダ３２と入力端子３３の組み合わせを、図１の実施の形態のアサート期間レジスタ１７の代わりに用いても良い。
【００６２】
実施の形態３．
実施の形態１及び実施の形態２では、外部周辺デバイス２ａ、２ｂ、２ｃが３個設けられ、そのすべてに対して共通の外部用リセット信号ＲＯを生成し、供給している。しかし、外部周辺デバイス２ａ、２ｂ、２ｃの各々に対して別個のリセット信号ＲＯａ、ＲＯｂ、ＲＯｃを生成するようにしても良い。これを実現するための回路構成の一例を図６に示す。
【００６３】
同図で、３個の期間変更リセット信号生成回路１１ａ、１１ｂ、１１ｃの各々は、図１の期間変更リセット信号生成回路号１１と同様の構成を有するものであり、その詳細の図示が省略されている。ただし、期間変更リセット信号生成回路１１ａ、１１ｂ、１１ｃ内のアサート期間設定レジスタ（図１のアサート期間設定レジスタ１７に相当するもの）に設定される数値が互いに異なる。また、論理和回路１５ａ、１５ｂ、１５ｃは、それぞれ、期間変更リセット信号生成回路１１ａ、１１ｂ、１１ｃに対応して設けられたものであり、それぞれ、期間変更リセット信号生成回路１１ａ、１１ｂ、１１ｃの出力信号ＲＴａ、ＲＴｂ、ＲＴｃ（図１の信号ＲＴに対応する）と、外部から供給されたリセット信号ＲＩとの論理和を外部用リセット信号ＲＯａ、ＲＯｂ、ＲＯｃ（図１のＲＯに対応する）をリセット出力端子２２ａ、２２ｂ、２２ｃ（図１のリセット出力端子２２に対応する）を介して、それぞれ対応する外部周辺回路２ａ、２ｂ、２ｃに供給する。
【００６４】
このような構成とすることにより、外部周辺デバイスごとに最適のアサート期間を有するリセット信号ＲＯａ、ＲＯｂ、ＲＯｃを供給することができる。
【００６５】
以上実施の形態３を図１の実施の形態に対する変形として説明したが、図３の実施の形態についても同様の変形を加えることができる。
【００６６】
上記の実施の形態１、２、３では、期間変更リセット信号生成回路３１で、入力されたリセット信号よりも長いアサート期間を有するリセット信号を生成しているが、逆に入力されたリセット信号よりも短いアサート期間を有するリセット信号を生成するようにしても良い。例えば、外部周辺デバイスのリセットが確実に完了した後にマイコン１のＣＰＵ６の再起動が始まるようにする場合に、そのような構成が好ましい。
【図面の簡単な説明】
【００６７】
【図１】本発明の実施の形態１のマイクロコンピュータを外部周辺デバイスとともに示すブロック図である。
【図２】本発明の実施の形態１のマイクロコンピュータの動作を示すタイムチャートである。
【図３】本発明の実施の形態２のマイクロコンピュータを外部周辺デバイスとともに示すブロック図である。
【図４】本発明の実施の形態２のマイクロコンピュータの動作を示すタイムチャートである。
【図５】本発明の実施の形態２のマイクロコンピュータにおける、アサート期間設定入力端子を構成する３個のオンオフスイッチＮｏ．１、２、３の状態と、アサート期間との対応関係を示す図である。
【図６】本発明の実施の形態３のマイクロコンピュータを外部周辺デバイスとともに示すブロック図である。
【符号の説明】
【００６８】
１  マイクロコンピュータ、  ２ａ、２ｂ、２ｃ  外部周辺デバイス、  ６  ＣＰＵ、  ７  クロック発生器、  ８  マイコン内回路、  ９  ＷＤＴカウンタ、  １１、１１ａ、１１ｂ、１１ｃ、３１  期間変更リセット信号生成回路、  １４  論理和回路、  １５  論理和回路、  １６  アサート期間カウンタ、  １７  アサート期間設定レジスタ、  １８  比較器、  １９  フリップフロップ、  ３２  デコーダ、  ３３  アサート期間設定入力端子。
【図１】
2006079345.tif 000003
【図２】
2006079345.tif 000004
【図３】
2006079345.tif 000005
【図４】
2006079345.tif 000006
【図５】
2006079345.tif 000007
【図６】
2006079345.tif 000008