(57)【要約】【課題】  オシレータから出力されるクロックに発振異常が発生した場合、その異常に対応してマイクロコンピュータの動作を適切に停止させる。【解決手段】  発振器と、発振異常検出部とを具備する半導体装置を構成する。発振異常検出部は、その発振器から出力されるクロックを計測して得られたカウント値に基づいてその発振器の周波数を特定する。そして、その周波数が所定の周波数範囲外のときに、発振異常信号を生成する。【選択図】        図３
2006172202.tif 000002
【特許請求の範囲】
【請求項１】
発振器と、
前記発振器から出力されるクロックを計測して得られたカウント値に基づいて前記発振器の周波数を特定し、前記周波数が所定の周波数範囲外のときに、発振異常信号を生成する発振異常検出部と
を具備する
半導体装置。
【請求項２】
請求項１に記載の半導体装置において、さらに、
ＣＰＵ（中央演算処理装置）を備え、
前記発振異常検出部は、
前記発振異常信号を前記ＣＰＵに供給し、
前記ＣＰＵは、前記発振異常信号に応答して動作を停止する
半導体装置。
【請求項３】
請求項２に記載の半導体装置において、
前記カウント値は、
第１期間において前記発振器から出力されるクロックを計測して得られた第１カウント値と、
前記第１期間に続く第２期間において前記クロックを計測して得られた第２カウント値とを含み、
前記発振異常検出部は、
前記第１カウント値と前記所定の周波数範囲を示す比較値とを比較して得られた第１比較結果が、前記発振器の発振異常を示し、かつ、
前記第２カウント値と前記比較値とを比較して得られた第２比較結果が、前記発振器の発振異常を示すとき、前記発振異常信号を生成する
半導体装置。
【請求項４】
請求項３に記載の半導体装置において、
前記発振異常検出部は、クロックモニタを備え、
前記クロックモニタは、
カウンタ群と、
前記第１比較結果と前記第２比較結果とに基づいて前記異常発振信号を生成する異常検出回路と
を具備し、
前記カウンタ群は、
前記第１カウント値を計測する第１カウンタと、
前記第２カウント値を計測する第２カウンタと
を含み、
前記第１カウンタは、
前記第２期間において前記第１カウント値と前記比較値とを比較した結果に基づいて前記第１比較結果を生成し、
前記第２カウンタは、
前記第２期間に続く新たな第１期間において前記第２カウント値と前記比較値とを比較した結果に基づいて前記第２比較結果を生成する
半導体装置。
【請求項５】
請求項４に記載の半導体装置において、
前記異常検出回路は、前記発振異常信号を保持する発振異常信号保持回路を備え、
前記発振異常信号保持回路に保持する前記発振異常信号を継続して出力する
半導体装置。
【請求項６】
請求項５に記載の半導体装置において、
前記第１カウンタと前記第２カウンタとの少なくとも一方は、前記比較値を保持する記憶回路を備え、
前記記憶回路を参照して前記第１比較結果と前記第２比較結果とを生成する
半導体装置。
【請求項７】
請求項６に記載の半導体装置において、
前記クロックモニタは、さらに
前記第１期間と前記第２期間とを特定する特定クロックを生成するタイミング生成回路
を備え、
前記タイミング生成回路は、前記特定クロックを前記カウンタ群に供給し、
前記第１カウンタは、前記特定クロックに同期して前記第１期間を特定し、
前記第２カウンタは、前記特定クロックに同期して前記第２期間を特定する
半導体装置。
【請求項８】
請求項７に記載の半導体装置において、
前記タイミング生成回路は、異常検出用クロックを生成して前記異常検出回路に供給し、
前記異常検出回路は、
前記第１比較結果と前記第２比較結果とに基づいて所定の論理演算を実行して合計比較結果を出力する第１論理演算回路と、
前記異常検出用クロックに同期して、前記合計比較結果に基づいて、複数の内部信号を生成するシフトレジスタと、
前記複数の内部信号が供給され、複数の前記複数の内部信号に基づいて所定の論理演算を実行して前記発振異常信号を生成し、前記発振異常信号を前記発振異常信号保持回路に出力する第２論理演算回路と
を含み、
前記シフトレジスタは、複数のフリップフロップを有し、前記複数のフリップフロップのそれぞれの出力端は、前記第２論理演算回路に接続される
半導体装置。
【請求項９】
請求項７または８に記載の半導体装置において、さらに、
チャージポンプ回路のスイッチング用クロックを供給するリングオシレータを有する不揮発性メモリを具備し、
前記タイミング生成回路は、前記不揮発性メモリから出力されるスイッチング用クロックに基づいて前記特定クロックまたは前記異常検出用クロックを生成する
半導体装置。
【請求項１０】
請求項９に記載の半導体装置において、
前記発振異常信号保持回路は、解除信号受信端子を備え、
前記解除信号受信端子を介して供給される保持解除信号に応答して、前記発振異常信号の保持を終了する
半導体装置。
【請求項１１】
請求項１０に記載の半導体装置において、
前記記憶回路は、外部から供給される比較値更新命令に応答して、前記記憶回路内部に保持される前記比較値を、新たな比較値に更新する
半導体装置。
【請求項１２】
発振器と、
ＣＰＵ（中央演算処理装置）と、
第1計測期間において前記発振器から出力されるクロックを計測して第1カウント値を得る第１カウンタと、
前記第１計測期間に続く第２計測期間において前記クロックを計測して第２カウント値を得る第２カウンタと、
前記第２計測期間に続く第３計測期間において前記クロックを計測して第３カウント値を得る第３カウンタと、
発振異常信号を生成する異常検出回路と
を具備し、
前記第１カウンタは、
前記第２計測期間において前記第１カウント値と比較値とを比較した結果に基づいて第１監視結果を生成し、前記第３期間において、前記第１カウント値をリセットし、
前記第２カウンタは、
前記第３計測期間において前記第２カウント値と前記比較値とを比較した結果に基づいて第２監視結果を生成し、前記第３計測期間に続く新たな第１計測期間において、前記第２カウント値をリセットし、
前記第３カウンタは、
前記第３計測期間に続く新たな第１計測期間において、前記第３カウント値と前記比較値とを比較した結果に基づいて第３監視結果を生成し、前記新たな第１計測期間に続く新たな第２計測期間において前記第３カウント値をリセットし、
前記異常検出回路は、
前記第１監視結果、前記第２監視結果および前記第３監視結果のそれぞれが連続的に前記発振器の発振異常を示すとき、前記発振異常信号を生成し、
前記ＣＰＵは前記発振異常信号に応答して動作を停止する
半導体装置。
【請求項１３】
請求項１２に記載の半導体装置において、
前記異常検出回路は、前記発振異常信号を保持する発振異常信号保持回路を備え、
前記発振異常信号保持回路に保持する前記発振異常信号を継続して出力する
半導体装置。
【請求項１４】
請求項１３に記載の半導体装置において、
前記第１カウンタ、前記第２カウンタおよび前記第３カウンタのそれぞれは、前記比較値を保持する記憶回路を備え、
前記記憶回路を参照して前記発振器の異常を監視する
半導体装置。
【請求項１５】
請求項１４に記載の半導体装置において、さらに、
チャージポンプ回路のスイッチング用クロックを供給するリングオシレータを有する不揮発性メモリと、
前記不揮発性メモリから出力されるスイッチング用クロックに基づいて前記異常検出用クロックを生成して前記異常検出回路に供給するタイミング生成回路と
を具備し、
前記異常検出回路は、
前記第１監視結果、前記第２監視結果および前記第３監視結果に基づいて所定の論理演算を実行して合計監視結果を出力する第１論理演算回路と、
複数のフリップフロップを有するシフトレジスタと、
前記シフトレジスタから出力される複数の内部信号に基づいて、所定の論理演算を実行して前記発振異常信号を生成し、前記発振異常信号を前記発振異常信号保持回路に出力する第２論理演算回路と
を備え、
前記複数のフリップフロップのそれぞれは、前記第２論理演算回路に接続される出力端を含み、前記異常検出用クロックに同期して、前記合計監視結果に基づいて、前記内部信号を生成し、前記出力端を介して出力する
半導体装置。
【請求項１６】
単一のチップで構成される
請求項１乃至１４の何れか１項に記載の半導体装置。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、半導体装置に関し、特に内蔵する発信器の発振異常を検出する機能を備える半導体装置に関する。
【背景技術】
【０００２】
半導体技術の進歩に伴って、単一のチップ内部に複数の回路機能ブロック、特に、ＣＰＵ（Central  Processing  Unit：中央演算処理装置）とメモリ（RAMまたはROM）とを有するマイクロコンピュータ（以下、シングルチップマイクロコンピュータと称する）が普及している。シングルチップマイクロコンピュータは、内部にオシレータ（発振器）を備えている。そのオシレータは、通常時には、一定周波数のクロックを出力している。シングルチップマイクロコンピュータ内部の回路ブロックは、そのクロックに同期して動作している。したがって、オシレータから出力されるクロックの周波数が、特定の範囲（動作補償がされている範囲）に含まれているときは、そのシングルチップマイクロコンピュータは、正常に動作する。しかしながら、その特定の範囲に含まれない周波数のクロックがオシレータから出力されると、シングルチップマイクロコンピュータが誤動作してしまう危険がある。
【０００３】
オシレータの異常発振を検出することで、シングルチップマイクロコンピュータの誤動作を抑制する技術が知られている（例えば、特許文献１参照）。図１は特許文献１の技術におけるクロック発生回路の構成を示すブロック図である。従来のクロック発生回路１０１は、マイクロコンピュータ１００に備えら、そのマイクロコンピュータのＣＰＵ（図示されず）や周辺装置（図示されず）にシステムクロックを供給している。図１に示されるように、そのクロック発生回路１０１は、内部バス１２１に対応して、サブ・クロック発振回路１０２と、メイン・クロック発振回路１０３と、タイマ１０４と、ＯＲ回路１０５と、クロック切替フラグ１０６と、発振制御フラグ１０７と、タイマ・リセット・フラグ１０８と、システム・クロック切替回路１０９とを備えて構成されている。
【０００４】
従来のクロック発生回路１０１は、図１に示されるように、タイマ１０４に対するクロック信号入力としては、サブ・クロック発振回路１０２より出力されるサブ・クロック信号１１１が入力されており、ＯＲ回路１０５に対する入力としては、タイマ１０４より出力されるタイマ・キャリー信号１１６と、リセット制御回路より出力されるシステム・リセット信号１１３とが入力されている。フラグ・リセット信号１１７は、このＯＲ回路１０５における、タイマ・キャリー信号１１６とシステム・リセット信号１１３との論理和出力である。
【０００５】
システム・クロック切替え回路１０９は、メイン・クロック発振回路１０３の出力に応答してシステム・クロック信号を生成している。ここで、メイン・クロック発振回路１０３に故障等が発生した場合、メイン・クロック信号が生成されなくなる、その場合、マイクロコンピュータ１００のＣＰＵには、システム・クロック信号が供給されなくなる。そのため、ＣＰＵは動作を停止してしまう。従来のマイクロコンピュータ１００は、ＣＰＵの動作が停止したときに、その動作停止を検出することで、メイン・クロック発振回路１０３の障害（発振異常）を検知している。従来のクロック発生回路１０１は、メイン・クロック発振回路１０３の発振異常が検出されたとき、サブ・クロック発振回路１０２の出力に応答してシステム・クロック信号を生成するように、自動的にクロック発振回路を切替えている。それによって、マイクロコンピュータ１００の動作を継続させている。
【０００６】
【特許文献１】特開平７−６１５５号公報
【発明の開示】
【発明が解決しようとする課題】
【０００７】
図１に示されるように、クロック発生回路１０１は、外部に接続される端子（１３１〜１３４）を備えている。一般的に、チップ内部に備えられたオシレータは、チップ外部の入力端子に接続されている。その入力端子１３１〜１３４に所定の発振子を接続することにより、その発振子の固有周波数に対応するシステム・クロックが生成される。そのシステム・クロックは、マイクロコンピュータ１００のＣＰＵ、メモリおよび周辺回路に対して供給される。換言すると、オシレータは、その入力端子から供給される信号に応答して上述の一定周波数のクロックを生成している。このとき、シングルチップマイクロコンピュータに外力が加わることで、この入力端子が変形して短絡（ショート）または半短絡（ハーフショート）が発生することがある。また、そのチップが基板に接続される場合に、基板との接触不良による短絡または半短絡が発生することもある。入力端子の短絡は、物理的な要因で発生することが多く、入力端子の短絡を回避することは極めて困難である。
【０００８】
入力端子が短絡すると、そのオシレータからは一定周期のクロックが供給されなくなってしまう。オシレータから一定の周期のクロックが出力されなくなると、そのクロックを基準クロックとすることで正常動作が補償されている回路に、補償範囲外のクロックが供給されることになる。そのため、例えば、シングルチップマイクロコンピュータに備えられているＣＰＵの暴走や、メモリのデータの読出し／書き込みエラーなどが発生してしまう。
【０００９】
図２は、オシレータに発生する不具合の状態と、そのときのオシレータ出力の対応を示すテーブルである。図２に参照すると、領域２０１には、上述の不具合の状態が表されている。そして、領域２０２には、その不具合の状態に対応するようにオシレータ出力が表されている。さらに、そのテーブルは第１〜第１３の小領域２０１−１〜２０１−１３を含み、各小領域（２０１−１〜２０１−１３）には、個々の発生する不具合の状態に対応させて、実際にオシレータから出力される電位が具体的に表されている。
【００１０】
図２に示されているように、オシレータに接続される入力端子が短絡（または、半短絡）すると、一定周期のクロックが出力されず、電源電位ＶＤＤまたは設置電位ＧＮＤが出力されてしまう。
【００１１】
ここで、第１３の小領域２０１−１３に示されている不具合の状態について説明を行う。第１３の小領域２０１−１３には、入力端子が短絡し、かつ、その短絡された入力端子からＬ成分（インダクタンス成分）が付加された信号が供給される場合と、そのときのオシレータ出力とが対応付けて表されている。
【００１２】
図２の第１３の小領域２０１−１３に示されているように、このときにオシレータから出力される信号は、電源電位ＶＤＤまたは設置電位ＧＮＤにはならず、不定的なクロックが出力されてしまう。しかも、この不定的なクロックは、通常時にオシレータから出力されるクロックの周波数を超える高周波成分を含んでいることがある。従来の技術において、このような高周波成分を含む信号がオシレータから出力されるということは考慮されてはいなかった。したがって、上述した従来技術では、このような現象（高周波成分を含んだ不定周期のクロックが出力されてしまうという現象）に対応することが困難である。この課題は、本願の発明者が研究開発の過程で発見したものであり、早急に解決しなければならないものである。
【課題を解決するための手段】
【００１３】
以下に、［発明を実施するための最良の形態］で使用される番号を用いて、課題を解決するための手段を説明する。これらの番号は、［特許請求の範囲］の記載と［発明を実施するための最良の形態］との対応関係を明らかにするために付加されたものである。ただし、それらの番号を、［特許請求の範囲］に記載されている発明の技術的範囲の解釈に用いてはならない。
【００１４】
上記課題を解決するために、発振器（２）と、前記発振器（２）から出力されるクロック（２１）を計測して得られたカウント値に基づいて前記発振器（２）の周波数を特定し、前記周波数が所定の周波数範囲外のときに、発振異常信号（２４）を生成する発振異常検出部（４）とを具備する半導体装置（１）を構成する。
その半導体装置（１）において、さらに、ＣＰＵ（中央演算処理装置）（６）を備える構成であっても良い、その場合、前記発振異常検出部（４）は、前記発振異常信号（２４）を前記ＣＰＵ（６）に供給する構成であることが好ましい。そして、前記ＣＰＵ（６）は、前記発振異常信号（２４）に応答して動作を停止する。
【００１５】
また、上記課題がシングルチップマイクロコンピュータに生じるものである場合、発振器（２）と、ＣＰＵ（中央演算処理装置）（６）と、複数のカウンタを備えるカウンタ群（３０）と、発振異常信号を生成する異常検出回路（３５）とを備えるシングルチップマイクロコンピュータを構成することが好ましい。
そのカウンタ群（３０）は、第1計測期間（Ｔ１２）において前記発振器（２）から出力されるクロック（２１）を計測することで第1カウント値を得る第１カウンタ（３２）と、前記第１計測期間（Ｔ１２）に続く第２計測期間（Ｔ２３）において前記クロック（２１）を計測することで第２カウント値を得る第２カウンタ（３３）と、前記第２計測期間（Ｔ２３）に続く第３計測期間（Ｔ３４）において前記クロック（２１）を計測することで第３カウント値を得る第３カウンタ（３４）とを備える構成であることが好ましい。
ここで、前記第１カウンタ（３２）は、前記第２計測期間（Ｔ２３）において前記第１カウント値と比較値（３６）とを比較した結果に基づいて第１監視結果（４５）を生成し、前記第３期間において、前記第１カウント値をリセットする。また、前記第２カウンタは、前記第３計測期間（Ｔ３４）において前記第２カウント値と前記比較値（３７）とを比較した結果に基づいて第２監視結果（４６）を生成し、前記第３計測期間（Ｔ３４）に続く新たな第１計測期間（Ｔ１２）において、前記第２カウント値をリセットする。そして、前記第３カウンタは、前記第３計測期間（Ｔ３４）に続く新たな第１計測期間（Ｔ４５）において、前記第３カウント値と前記比較値（３８）とを比較した結果に基づいて第３監視結果（４７）を生成し、前記新たな第１計測期間（Ｔ４５）に続く新たな第２計測期間（Ｔ５６）において前記第３カウント値をリセットする。
このときに、前記異常検出回路（３５）は、前記第１監視結果（４５）、前記第２監視結果（４６）および前記第３監視結果（４７）のそれぞれが連続的に前記発振器（２）の発振異常を示すとき、前記発振異常信号（２４）を生成する。そして、前記ＣＰＵ（６）は前記発振異常信号（２４）に応答して動作を停止する。
【発明の効果】
【００１６】
本発明によると、オシレータから出力されるクロックに基づいてそのオシレータの発振異常が検出された場合、その異常に対応してマイクロコンピュータの動作を適切に停止させることが出来る。特に、本発明によると、通常のクロックの周波数を超える高周波成分を含んでいる信号がオシレータから出力される場合に、その高周波成分を異常発振であると判定してマイクロコンピュータの動作を停止することができる。
【発明を実施するための最良の形態】
【００１７】
［実施の形態の構成］
以下に、図面を参照して本発明を実施するための形態について説明を行う。図３は、本実施の形態の半導体装置の構成を示す回路図である。以下の実施の形態において、その半導体装置がシングルチップマイクロコンピュータである場合を例示して説明を行う。なお、これは、本発明がシングルチップマイクロコンピュータのみに適用可能であることを示すものではない。図３を参照すると、本実施の形態のシングルチップマイクロコンピュータ１は、オシレータ（発振器）２と、ＰＬＬ３（ＰＬＬ：Phase Locked Loop）と、発振異常検出部４と、ＦｌａｓｈＲＯＭ５と、ＣＰＵ６（ＣＰＵ：Central  Processing  Unit）と、複数の周辺装置（７−１〜７−ｎ：ｎは任意の自然数）とを含んで構成されている。図３に示されているように、発振異常検出部４は、内部リセット信号生成回路８（リセットジェネレータ）と、クロックモニタ９とを含んで構成されている。また、内部リセット信号生成回路８は、信号生成部１１を含んで構成されている。
【００１８】
図３に示されているように、シングルチップマイクロコンピュータ１は、第１オシレータ入力端子１２と第２オシレータ入力端子１３とを備えている。第１オシレータ入力端子１２と第２オシレータ入力端子１３との各々は、オシレータ２に接続されている。第１オシレータ入力端子１２と第２オシレータ入力端子１３とに所定の発振子（図示されず）を接続することにより、その発振子の固有周波数に対応するクロック（オシレータ出力２１）が生成される。そのクロックは、ＰＬＬ３に供給され、ＰＬＬ３の出力（ＰＬＬ出力２３）がマイクロコンピュータ１のＣＰＵ６、メモリおよび周辺回路（７−１〜７−ｎ）に対して供給される。また、シングルチップマイクロコンピュータ１は、端子リセット信号入力端子１４を備えている。その端子リセット信号入力端子１４は、内部リセット信号生成回路８に接続されている。第１オシレータ入力端子１２、第２オシレータ入力端子１３および端子リセット信号入力端子１４は、シングルチップマイクロコンピュータ１の外部から供給される信号を受け取ることが可能なように設けられていることが好ましい。
【００１９】
図３を参照すると、オシレータ２は、一定周波数のクロックを生成する回路である。そのオシレータ２は、例えばコルピッツ形発振回路で構成されている。ＰＬＬ３は、入力信号や基準周波数と、出力信号との周波数を一致させる電子回路である。ＰＬＬ３は、通常時にはオシレータ出力２１とＰＬＬ出力２３との位相差を検出し、VCO(電圧によって周波数を変化させる発振器)や回路のループを制御することで、正確に同期した周波数の信号をＣＰＵ６に供給している。
【００２０】
発振異常検出部４は、オシレータ２が正常は周波数のクロックを供給しているかどうかを監視する回路ブロックである。ＦｌａｓｈＲＯＭ５は、データの消去・書き込みを自由に行なうことができ、電源を切っても内容が消えない半導体メモリである。ＦｌａｓｈＲＯＭ５は、データの読み出し／書き込み、消去に用いられるチャージポンプ（昇圧回路）を内部備えている。そのため、ＦｌａｓｈＲＯＭ５には、チャージポンプのスイッチング用にクロックを供給するリングオシレータが備えられている。ＦｌａｓｈＲＯＭ５は、そのリングオシレータから出力されるクロックを発振異常検出部４に供給している。
【００２１】
ＣＰＵ６は、シングルチップマイクロコンピュータ１の動作制御を行う演算処理装置である。また、複数の周辺装置（７−１〜７−ｎ）は、シングルチップマイクロコンピュータ１の内部に備えられた複数の回路機能ブロックである。ＣＰＵ６は、シングルチップマイクロコンピュータ１の外部から受け取ったデータを解釈して演算し、その演算結果を所定の装置（例えば、周辺装置７−１）に供給する。本実施の形態のＣＰＵ６は、内部リセット信号２５に基づいて、周辺装置リセット信号２６を生成し、複数の周辺装置（７−１〜７−ｎ）に供給している。
【００２２】
図３に示されているように、発振異常検出部４は、クロックモニタ９と内部リセット信号生成回路８とを含んで構成されている。クロックモニタ９は、オシレータ２から出力されるクロックを監視するクロック監視機能ブロックである。そのクロックモニタ９は、端子リセットを解除し、周辺装置へのリセットを解除したときに動作を開始する。内部リセット信号生成回路８は、発振異常検出信号２４と、端子リセット信号入力端子１４を介して供給される端子リセット信号２７とに基づいて内部リセット信号２５を生成する回路ブロックである。図３に示されているように、内部リセット信号生成回路８は内部に信号生成部１１を備え、発振異常検出信号２４と端子リセット信号２７とに基づいて論理演算を実行して内部リセット信号２５を生成している。その信号生成部１１には、パワーオンクリア（図示されず）やウォッチドッグタイマ（図示されず）が供給される構成であっても良い。内部リセットを解除する場合において、信号生成部１１は、供給される全ての信号の論理積に基づいて内部リセットを解除する構成であることが好ましい。
【００２３】
図３に示されているようにシングルチップマイクロコンピュータ１内部において、オシレータ２は、ＰＬＬ３とクロックモニタ９とに接続されている。そＰＬＬ３はＣＰＵ６に接続され、そのクロックモニタ９は、ＦｌａｓｈＲＯＭ５と内部リセット信号生成回路８とに接続されている。また、端子リセット信号入力端子１４は、内部リセット信号生成回路８に接続され、その内部リセット信号生成回路８はＣＰＵ６に接続されている。またＣＰＵ６は複数の周辺装置（７−１〜７−ｎ）に接続されている。
【００２４】
図３を参照すると、オシレータ２は、第１オシレータ入力端子１２から供給される第１オシレータ入力信号と、第２オシレータ入力端子１３から供給される第２オシレータ入力信号とに応答して、オシレータ出力２１を出力している。オシレータ２から出力されたオシレータ出力２１は、ＰＬＬ３とクロックモニタ９との各々に供給される。ＰＬＬ３は、オシレータ出力２１に応答して、ＰＬＬ出力２３を生成してＣＰＵ６に供給している。クロックモニタ９は、前述のオシレータ出力２１と、ＦｌａｓｈＲＯＭ５から出力されるリングオシレータ出力２２とに基づいて発振異常検出信号２４を生成して内部リセット信号生成回路８に出力している。ここで、発振異常検出信号２４を生成する動作に関する詳細な説明は後述する。
【００２５】
内部リセット信号生成回路８から出力される内部リセット信号２５は、ＣＰＵ６に供給される。ＣＰＵ６は、その内部リセット信号２５に応答して動作を停止する。また、ＣＰＵ６は、内部リセット信号２５に応答して周辺装置リセット信号２６を生成して複数の周辺装置（７−１〜７−ｎ）に供給している。複数の周辺装置（７−１〜７−ｎ）は、周辺装置リセット信号２６に応答して動作を停止する。また、複数の周辺装置（７−１〜７−ｎ）は、内部リセット信号生成回路８に接続され、その内部リセット信号生成回路８から出力される内部リセット信号２５に応答してその動作を停止する構成であっても良い。
【００２６】
図４は、クロックモニタ９の構成を示す回路図である。図４を参照すると、クロックモニタ９は、カウンタ群３０と、タイミング生成ブロック３１と、異常検出ブロック３５とを含んで構成されている。そのカウンタ群３０は、第１カウンタ３２と、第２カウンタ３３と、第３カウンタ３４とを備えている。図４に示されているように、第１カウンタ３２は、第１レジスタ３６を含んで構成されている。同様に第２カウンタ３３は第２レジスタ３７を含んで構成され、第３カウンタ３４は第３レジスタ３８を含んで構成されている。
【００２７】
タイミング生成ブロック３１は、リングオシレータ出力２２に基づいて、それの分周のクロックである分周クロック４１を生成するクロック生成回路である。また、タイミング生成ブロック３１は、オシレータ出力２１とリングオシレータ出力２２とに基づいて、第１カウンタサンプリングクロック４２、第２カウンタサンプリングクロック４３および第３カウンタサンプリングクロック４４を生成している。
【００２８】
第１カウンタ３２は、第１カウンタサンプリングクロック４２に同期してオシレータ出力２１の周波数を計測するカウンタである。第１カウンタ３２は、その計測結果に基づいて第１ｄｅｔｅｃｔ信号４５を生成して異常検出ブロック３５に供給している。
【００２９】
第２カウンタ３３および第３カウンタ３４は、第１カウンタ３２と同様の構成のカウンタである。第２カウンタ３３は、第２カウンタサンプリングクロック４３に同期してオシレータ出力２１の周波数を計測し、その計測結果に基づいて第２ｄｅｔｅｃｔ信号４６を生成している。第３カウンタ３４は、第３カウンタサンプリングクロック４４に同期してオシレータ出力２１の周波数を計測し、その計測結果に基づいて第３ｄｅｔｅｃｔ信号４７を生成している。
【００３０】
異常検出ブロック３５は、分周クロック４１に同期して、第１ｄｅｔｅｃｔ信号４５、第２ｄｅｔｅｃｔ信号４６および第３ｄｅｔｅｃｔ信号４７に基づいてオシレータ出力２１を監視して発信異常を検出する回路ブロックである。
【００３１】
図４に示されているように、タイミング生成ブロック３１は、第１カウンタ３２、第２カウンタ３３および第３カウンタ３４のそれぞれに接続されている。また、タイミング生成ブロック３１は、異常検出ブロック３５に接続されている。そして、第１カウンタ３２、第２カウンタ３３および第３カウンタ３４は、異常検出ブロック３５に接続されている。
【００３２】
タイミング生成ブロック３１は、前述のオシレータ出力２１とリングオシレータ出力２２とに基づいて、分周クロック４１を生成している。タイミング生成ブロック３１は、その分周クロック４１を異常検出ブロック３５に供給している。またタイミング生成ブロック３１は、オシレータ出力２１とリングオシレータ出力２２とに基づいて第１カウンタサンプリングクロック４２、第２カウンタサンプリングクロック４３および第３カウンタサンプリングクロック４４を生成している。図４に示されているように、タイミング生成ブロック３１は第１カウンタサンプリングクロック４２を第１カウンタ３２に供給している。同様に、タイミング生成ブロック３１は、第２カウンタサンプリングクロック４３を第２カウンタ３３に供給し、第３カウンタサンプリングクロック４４を第３カウンタ３４に供給している。
【００３３】
第１カウンタ３２は、第１カウンタサンプリングクロック４２とオシレータ出力２１とに基づいて第１ｄｅｔｅｃｔ信号４５を生成している。第１カウンタ３２は、その第１ｄｅｔｅｃｔ信号４５を異常検出ブロック３５に供給している。第２カウンタ３３は、第２カウンタサンプリングクロック４３とオシレータ出力２１とに基づいて第２ｄｅｔｅｃｔ信号４６を生成している。第２カウンタ３３は、その第２ｄｅｔｅｃｔ信号４６を異常検出ブロック３５に供給している。そして、第３カウンタ３４は、第３カウンタサンプリングクロック４４とオシレータ出力２１とに基づいて第３ｄｅｔｅｃｔ信号４７を生成している。第３カウンタ３４は、その第３ｄｅｔｅｃｔ信号４７を異常検出ブロック３５に供給している。
【００３４】
異常検出ブロック３５は、分周クロック４１、第１ｄｅｔｅｃｔ信号４５、第２ｄｅｔｅｃｔ信号４６および第３ｄｅｔｅｃｔ信号４７に基づいて発振異常検出信号２４を生成して出力している。また、図４に示されているように、異常検出ブロック３５は端子リセット信号２７に応答して発振異常検出信号２４の出力を停止する。
【００３５】
図５は、異常検出ブロック３５の構成を示す回路図である。図５を参照すると、異常検出ブロック３５は、第１論理回路５１と、シフトレジスタ５２と、第２論理回路５３と、記憶回路５４とを含んで構成されている。また、シフトレジスタ５２は、複数のフリップフロップ（５２−１〜５２−６）を含んで構成されている。なお、このシフトレジスタ５２の構成は、本実施の形態におけるシフトレジスタ５２を限定するものではない。シフトレジスタ５２を構成するフリップフロップは任意であり、要求される信頼性に対応して構成することが可能である。
【００３６】
第１論理回路５１は、第１ｄｅｔｅｃｔ信号４５、第２ｄｅｔｅｃｔ信号４６および第３ｄｅｔｅｃｔ信号４７に応答して、論理和６７を生成する回路ブロックである。図５に示されているように、第１論理回路５１はＯＲ回路で構成されていることが好ましい。
【００３７】
シフトレジスタ５２は、所定の期間における、オシレータ出力２１の状態を記憶する回路である。図５に示されているように、シフトレジスタ５２は、複数のフリッピフロップを用いてオシレータ出力２１の状態を記憶している。
【００３８】
第２論理回路５３は、そのシフトレジスタ５２から供給される複数の内部信号（６１〜６６）に応答して論理積６８を生成する回路ブロックである。図５に示されているように、第２論理回路５３は、ＡＮＤ回路で構成されていることが好ましい。記憶回路５４は、論理積６８を保持する記憶回路である。
【００３９】
図５を参照すると、第１論理回路５１は、第１フロップフロップ５２−１に接続されている。第１フロップフロップ５２−１は、第２フロップフロップ５２−２に接続され、その第２フロップフロップ５２−２は、第３フロップフロップ５２−３と第２論理回路５３とに接続されている。以降、図５に示されているように、第３フロップフロップ５２−３は、第４フロップフロップ５２−４に接続され、第４フロップフロップ５２−４は第５フロップフロップ５２−５に接続され、第５フロップフロップ５２−５は、第６フロップフロップ５２−６に接続されている。また、図５に示されているように、シフトレジスタ５２を構成する複数のフリップフロップ（５２−１〜５２−６）は、直列的に接続され、それぞれの出力端が第２論理回路５３に接続されている。第２論理回路５３は、記憶回路５４に接続されている。また、複数のフリップフロップの各々には、分周クロック４１が供給されている。
【００４０】
第１論理回路５１は、第１ｄｅｔｅｃｔ信号４５、第２ｄｅｔｅｃｔ信号４６および第３ｄｅｔｅｃｔ信号４７に基づいて、論理演算を実行している。第１論理回路５１は、その論理演算の結果である論理和６７を第１フロップフロップ５２−１に供給している。第１フロップフロップ５２−１には、その論理和６７と分周クロック４１とが供給されている。第１フロップフロップ５２−１は、その分周クロック４１と論理和６７とに基づいて第１内部信号６１を生成する。第１フロップフロップ５２−１は、その第１内部信号６１を第２フロップフロップ５２−２と第２論理回路５３との各々に供給している。図５に示されているように、第２フロップフロップ５２−２は、その第１内部信号６１と分周クロック４１とに基づいて第２内部信号６２を生成している。第２フロップフロップ５２−２は、その第２内部信号６２を第３フロップフロップ５２−３と第２論理回路５３とに供給している。このように、各フリップフロップ（５２−ｎ）は、前段のフリップフロップ（５２−ｘ：ｘ＝ｎ−１）から供給される内部信号（６ｘ）と、分周クロック４１とに基づいて内部信号（６ｎ）を生成する。生成された内部信号は、後段のフリップフロップ（５２−ｙ：ｙ＝ｎ＋１）と第２論理回路５３とに供給される。
【００４１】
第２論理回路５３には、各フリップフロップ（５２−１〜５２−６）から出力される第１〜第６内部信号（６１〜６６）の基づいて論理演算を実行している。第２論理回路５３は、その論理演算の結果である論理積６８を記憶回路５４に供給している。記憶回路５４は、電源線５５から供給される信号と第２論理回路５３から出力される信号（論理積６８）とに基づいて、発振異常検出信号２４を記憶し、その発振異常検出信号２４を継続的に出力している。この場合において、電源線５５からはＨｉｇｈレベルを示す信号が供給される構成であることが好ましい。記憶回路５４に保持される値は、外部から入力される端子リセット信号２７に応答してリセットされる。そのため、端子リセット信号２７が入力されたときに、クロックモニタ９はその発振異常検出信号２４の出力を停止する。
【００４２】
［実施の形態の動作］
図６は、本実施の形態の動作を示すタイミングチャートである。図６に示されているように、本実施の形態における、複数のカウンタ（３２〜３４）は、『サンプリング』、『比較』、『リセット』の動作を順番に繰り返して実行している。なお、これは本発明の動作に関する理解を容易にするために例示したものである。本願発明は、このような動作以外、例えば、『サンプリング』、『比較・リセット』の動作を交互に繰り返して実行する場合に適用することも可能である。
【００４３】
図６の（ａ）は、オシレータ２から出力されるクロックの波形を例示している。図６の（ｂ）は、ＦｌａｓｈＲＯＭ５から出力されるリングオシレータ出力２２に基づいて、タイミング生成ブロック３１で生成される分周クロック４１の波形を例示している。図６の（ｃ）は、タイミング生成ブロック３１から出力される第１カウンタサンプリングクロック４２の波形を例示している。同様に、図６の（ｄ）は第２カウンタサンプリングクロック４３の波形を例示し、図６の（ｅ）は、第３カウンタサンプリングクロック４４の波形を例示している。
【００４４】
さらに、図６の（ｆ）〜図６の（ｈ）は、第１カウンタ３２から第３カウンタ３４の動作を示している。図６の（ｆ）〜図６の（ｈ）に示されているように、各カウンタ（３２〜３４）は、サンプリング期間におけるオシレータ出力２１の計測と、比較期間における比較動作と、リセット期間におけるリセット動作とを循環的に繰り返して動作している。
【００４５】
図６の（ｉ）は、第１カウンタ３２から出力される第１ｄｅｔｅｃｔ信号４５の波形を例示している。同様に、図６の（ｊ）は、第２カウンタ３３から出力される第２ｄｅｔｅｃｔ信号４６の波形を示し、図６の（ｋ）は、第３カウンタ３４から出力される第３ｄｅｔｅｃｔ信号４７の波形を例示している。さらに、図６の（ｌ）から図６の（ｑ）は、異常検出ブロック３５の内部で生成される複数の内部信号（６１〜６６）の波形を例示している。また、図６の（ｒ）は、異常検出ブロック３５の内部に備えられている第２論理回路５３の出力波形を例示している。そして、図６の（ｓ）は、異常検出ブロック３５から出力される発振異常検出信号２４の波形を例示している。
【００４６】
図６を参照すると、第１カウンタ３２から第３カウンタ３４の各カウンタは、分周クロック４１に同期してサンプリング（オシレータ出力２１の計測）動作、計測されたクロック数とレジスタ（３６〜３８）に格納されている比較値との比較動作およびサンプリングしたクロック数のリセット動作を順番に繰り返して実行している。図６に示されているように、分周クロック４１の１周期において、第１カウンタ３２から第３カウンタ３４の各カウンタは、同じ動作を実行することがない。例えば、図６に示されている時刻ｔ１から時刻ｔ２までの期間を第１期間Ｔ１２とすると、第１期間Ｔ１２において、第１カウンタ３２はサンプリングを実行している。このとき第２カウンタ３３は、カウンタリセットを実行し、第３カウンタ３４はカウンタ値の比較を実行している。
【００４７】
第１カウンタ３２から第３カウンタ３４の各カウンタをこのように動作させることで、常時オシレータ出力２１の監視を実行することができるようになる。
【００４８】
ここで、図６の（ｉ）から図６の（ｋ）を参照すると、第２期間Ｔ２３にエラーが検出された後、第７期間Ｔ７８まで連続してエラーが検出された場合が例示されている。図６を参照すると、第２期間Ｔ２３において、第１カウンタ３２からエラーを示す第１ｄｅｔｅｃｔ信号４５が出力される。異常検出ブロック３５の第１論理回路５１は、その第１ｄｅｔｅｃｔ信号４５に対応する論理和６７を第１フロップフロップ５２−１に出力する。時刻ｔ３において、第１フロップフロップ５２−１は、分周クロック４１に同期して、その論理和６７に基づいてエラー発生を示す第１内部信号６１を出力する。
【００４９】
その後、第３期間Ｔ３４において、第２カウンタ３３からエラーを示す第２ｄｅｔｅｃｔ信号４６が出力される。第１論理回路５１は、その第２ｄｅｔｅｃｔ信号４６に対応する論理和６７を第１フロップフロップ５２−１に出力する。時刻ｔ４において、第１フロップフロップ５２−１は、分周クロック４１に同期して、その論理和６７に基づいてエラー発生を示す第１内部信号６１を出力する。また、時刻ｔ４において、第２フロップフロップ５２−２には、前段の第１フロップフロップ５２−１からシフトされた値が供給される。そのため、第２フロップフロップ５２−２は、第２期間Ｔ２３にエラーが発生していたことを示す第２内部信号６２を出力する。
【００５０】
その後、第４期間Ｔ４５〜第７期間Ｔ７８まで連続でエラーが発生した場合、第１内部信号６１から第６内部信号６６の全てが、エラー発生を示す値になる（図６の時刻ｔ３から時刻ｔ８参照）。時刻ｔ８において、第２論理回路５３は、供給される複数の内部信号（６１〜６６）に応答して、オシレータの発振異常の発生を示す論理積６８を記憶回路５４に供給する。記憶回路５４は、時刻ｔ９において、保持している発振異常検出信号２４を出力する。記憶回路５４は、端子リセット信号２７を受信するまで論理積６８の値（発振異常検出信号２４）を保持しつづける。そして、記憶回路５４は、外部から端子リセット信号２７が入力された場合のみ、出力している発振異常検出信号２４の出力を停止する。
上述したように、クロックモニタ９は、端子リセット信号２７が入力されると、現在出力している発振異常検出信号２４の出力を停止する。例えば、本実施の形態において、通常時の端子リセット信号入力端子１４がＨｉｇｈレベルに固定されているものとする。また、図６の（ｓ）に示されているように、クロックモニタ９は、通常時にはＨｉｇｈレベルの信号を出力している。ここで、オシレータ２が異常発振をしていると判定されたとき、クロックモニタ９は、発振異常検出信号２４としてＬｏｗレベルの信号を継続的に出力する。
このとき、端子リセット信号２７としてリセットパルスが供給されると、その端子リセット信号２７に応答して、クロックモニタ９の記憶回路５４がリセットされ、クロックモニタ９からは再びＨｉｇｈレベルの信号が継続的に出力される。その後、信号生成部１１には、端子リセット信号入力端子１４からＨｉｇｈレベルが供給され、内部リセットは解除される。
【００５１】
本発明のシングルチップマイクロコンピュータ１を上述したように構成し、そのシングルチップマイクロコンピュータ１を上述したように動作させることによって、オシレータ２から出力されるオシレータ出力２１に発振異常が発生した場合、その異常に対応してマイクロコンピュータの動作を適切に停止させることが出来る。このとき、シングルチップマイクロコンピュータ１は、計測されたクロック周波数を、予め保持された比較値と比較することで、オシレータ２の動作を監視している。この比較値は、所定の範囲（動作補償範囲）の周波数を示している。例えば、本実施形態のシングルチップマイクロコンピュータ１が、５Ｍｈｚ 〜７Ｍｈｚの範囲のオシレータ出力２１に対応して動作するように設計されている場合、発振異常検出部４は、その比較値から外れる周波数（例えば、８ＭＨｚの周波数）を検出したときに、第１段間の発信異常信号（４５〜４７）を生成する。したがって、本発明のシングルチップマイクロコンピュータ１は、通常時のクロックの周波数を超える高周波成分（例えば、上述のしたような８ＭＨｚの周波数成分）を含んでいる信号がオシレータから出力される場合に、その高周波成分を異常発振であると判定してＣＰＵ６や周辺装置（７−１〜７−ｎ）の動作を停止することができる。
【００５２】
また、本願発明によると、オシレータ出力の異常を検出したときに、ＣＰＵを完全停止させ、停止解除の命令を受信するまで、停止動作を継続させることが可能になる。したがって、接触不良などにより、オシレータの入力端子が、短絡と非短絡（＝正常接続）という状態（例えば、図２の第４小領域２０１−４や第５小領域２０１−５のような状態）を不安定的にとる場合に、一旦停止したＣＰＵや周辺装置が再起動することを抑制することができる。
【００５３】
オシレータ出力の発振異常が検出された後、そのオシレータから正常なクロックが供給された場合であっても、実際にはその発振異常の原因が解消されていないことがある。シングルチップマイクロコンピュータを搭載する機器にとって、機器の信頼性はそのシングルチップマイクロコンピュータの信頼性と対応する。オシレータの発振異常の原因が解消されていない状態で、マイクロコンピュータのＣＰＵや周辺装置が再び動作を開始してしまうと、機器の信頼性は大幅に低下してしまう。本発明のシングルチップマイクロコンピュータは、一旦オシレータ出力の発振異常が検出された後は、外部から端子リセット信号２７が入力された場合のみ、再起動を行っている。従って、本発明のシングルチップマイクロコンピュータの構成を採用することで、高い信頼性を有する機器を構成することができるようになる。
【００５４】
また、例えば、瞬間的な電源電圧の変動が発生した場合を考える。このような場合、その電源電圧の変動に対応して、一時的に正常なクロックの周波数と異なる周波数のクロックが、オシレータから出力されることがある。このような瞬間的なクロック周波数の変動によって、マイクロコンピュータが誤動作する可能性は低い。本発明では、オシレータからの出力を所定の期間において監視を行っている。そして、その期間内に正常な周波数のクロックが検出されなかったとき、発信異常が発生していると判断している。そのため、本発明によると、瞬間的なクロック周波数の変動を、発信異常と判断することなく、実質的に問題となる周波数の変動のみを発信異常と判断することができる。
【図面の簡単な説明】
【００５５】
【図１】図１は、従来技術のクロック発生回路の構成を示すブロック図である。
【図２】図２は、オシレータに発生する不具合の状態と、そのときのオシレータ出力の対応を示すテーブルである。
【図３】図３は、本実施の形態のシングルチップマイクロコンピュータの構成を示す回路図である。
【図４】図４は、発信異常検出部の構成を示す回路図である。
【図５】図５は、異常検出ブロックの構成を示す回路図である。
【図６】図６は、本実施の形態の動作を示すタイミングチャートである。
【符号の説明】
【００５６】
１…シングルチップマイクロコンピュータ
２…オシレータ
３…ＰＬＬ
４…発振異常検出部
５…ＦｌａｓｈＲＯＭ
６…ＣＰＵ
７−１〜７−ｎ…周辺装置
８…内部リセット信号生成回路
９…クロックモニタ
１１…信号生成部
１２…第１オシレータ入力端子
１３…第２オシレータ入力端子
１４…端子リセット信号入力端子
２１…オシレータ出力
２２…リングオシレータ出力
２３…ＰＬＬ出力
２４…発振異常検出信号
２５…内部リセット信号
２６…周辺装置リセット信号
２７…端子リセット信号
３０…カウンタ群
３１…タイミング生成ブロック
３２…第１カウンタ
３３…第２カウンタ
３４…第３カウンタ
３５…異常検出ブロック
３６…第１レジスタ
３７…第２レジスタ
３８…第３レジスタ
４１…分周クロック
４２…第１カウンタサンプリングクロック
４３…第２カウンタサンプリングクロック
４４…第３カウンタサンプリングクロック
４５…第１ｄｅｔｅｃｔ信号
４６…第２ｄｅｔｅｃｔ信号
４７…第３ｄｅｔｅｃｔ信号
５１…第１論理回路
５２…シフトレジスタ
５２−１〜５２−６…フリップフロップ
５３…第２論理回路
５４…記憶回路
５５…電源線
６１〜６６…内部信号
６７…論理和
６８…論理積
１０１…クロック発生回路
１０２…サブ・クロック発振回路
１０３…メイン・クロック発振回路
１０４…タイマ
１０５…ＯＲ回路
１０６…クロック切替フラグ
１０７…発振制御フラグ
１０８…タイマ・リセット・フラグ
１０９…システム・クロック切替回路
１２１…内部バス
１１１…サブ・クロック信号
１１３…システム・リセット信号
１１６…タイマ・キャリー信号
１１７…フラグ・リセット信号
２０１、２０２…領域
２０１−１〜２０１−１３…小領域
【図１】
2006172202.tif 000003
【図２】
2006172202.tif 000004
【図３】
2006172202.tif 000005
【図４】
2006172202.tif 000006
【図５】
2006172202.tif 000007
【図６】
2006172202.tif 000008