(57)【特許請求の範囲】
【請求項１】
内部回路に所定のメインクロックを出力するメイン発振回路と、
前記メインクロックの周波数と異なる周波数のサブクロックを出力するサブ発振回路と、
前記サブ発振回路から出力されたサブクロックに応じて予め定められた期間内に、前記メイン発振回路から出力されたメインクロックの数に応じて、異常を検出する第１異常検出手段と、
前記メイン発振回路から出力されたメインクロックが分周され、かつ前記サブクロックの周波数と異なる周波数の分周クロックと、前記サブ発振回路から出力されたサブクロックとに応じて、異常を検出する第２異常検出手段と、
を備えた発振回路。
【請求項２】
前記第１異常検出手段は異常として、前記メイン発振回路及び前記サブ発振回路の発振周波数の異常、及び前記サブ発振回路の発振停止を検出する、請求項１に記載の発振回路。
【請求項３】
前記第２異常検出手段は異常として、前記メイン発振回路の発振停止を検出する、請求項１または請求項２に記載の発振回路。
【請求項４】
前記第１異常検出手段は、前記メインクロックの数の上限値及び下限値を記憶する記憶手段を備え、前記予め定められた期間内に前記メイン発振回路から出力された前記メインクロックの数と、前記上限値及び前記下限値と、を比較した比較結果に基づいて、異常を検出する、請求項１から請求項３のいずれか１項に記載の発振回路。
【請求項５】
前記第２異常検出手段は、前記サブ発振回路から出力された前記サブクロックに応じたタイミングにおける、前記分周クロックのレベルに基づいて、異常を検出する、請求項１から請求項４のいずれか１項に記載の発振回路。
【請求項６】
自己の異常を検出する機能を有する前記請求項１から前記請求項５のいずれか１項に記載の発振回路と、
前記発振回路に備えられたメイン発振回路から出力されたメインクロックに応じて動作する内部回路と、
を備えた集積回路。
【請求項７】
内部回路に所定のメインクロックを出力するメイン発振回路と、前記メインクロックの周波数と異なる周波数のサブクロックを出力するサブ発振回路と、を備えた発振回路に対して、
前記サブ発振回路から出力されたサブクロックに応じて予め定められた期間内に、前記メイン発振回路から出力されたメインクロックの数を取得する工程と、
取得したメインクロックの数と、予め記憶手段に記憶されている上限値とを比較して、前記メインクロックの数が上限値を超える場合に、異常を検出する工程と、
取得したメインクロックの数と、予め記憶手段に記憶されている下限値とを比較して、前記メインクロックの数が下限値よりも小さい場合に、異常を検出する工程と、
を備えた異常検出方法。
【請求項８】
前記サブ発振回路から出力された前記サブクロックに応じたタイミングにおける、前記メイン発振回路から出力されたメインクロックが分周され、かつ前記サブクロックの周波数と異なる周波数の分周クロックのレベルを記憶する工程と、
記憶した前記分周クロックのレベルが、予め定められた回数、同レベルである場合に、異常として前記メイン発振回路が発振停止したことを検出する工程と、
をさらに備えた請求項７に記載の異常検出方法。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、発振回路、集積回路、及び異常検出方法に関するものである。
【背景技術】
【０００２】
一般に、発振回路を内蔵するＩＣ（集積回路）は、１系統の発振回路を内蔵し、当該発振回路で生成されたクロックで動作する構成になっている。
【０００３】
このように発振回路を内蔵するＩＣは、発振回路で生成するクロックにより動作するが、ＩＣの異常等により発振回路の発振が停止したり、発振周波数が異常となったりした場合に正常に動作せず、システムとして致命的な問題を引き起こす可能性があった。
【０００４】
そのため、発振回路の動作の異常を検出する技術が求められている。例えば、ＷＤＴ（ウオッチドッグタイマ)等のセルフリセット機能を有する監視タイマを内蔵することが考えられる。しかしながらこのような場合、ＷＤＴのクロックが停止すると、ＷＤＴによるセルフリセットもできなくなってしまう。
【０００５】
そこで、発振回路の異常を検出するその他の技術として、例えば、特許文献１及び特許文献２等に記載の技術がある。特許文献１及び特許文献２に記載の技術は、内部回路の動作のためのクロックを出力するメイン発振回路の異常検出を、異常検出用のサブ発振回路から出力された異常検出用のクロックを利用して行う技術が記載されている。
【先行技術文献】
【特許文献】
【０００６】
【特許文献１】特開平６−８３４７４号公報
【特許文献２】特開平８−７６８７７号公報
【発明の概要】
【発明が解決しようとする課題】
【０００７】
しかしながら、特許文献１及び特許文献２に記載の技術では、サブ発振回路が停止した場合には、メイン発振回路が異常となった場合に、当該異常の検出が行えなくなるという問題があった。
【０００８】
そこで本発明者らは、メイン発振回路とサブ発振回路とを備えた発振回路において、サブ発振回路をチェックするために、サブ発振回路チェック用の発振回路を新たに設けることを検討した。しかしながら、新たにサブ発振回路チェック用の発振回路を設けると、発振回路全体として小型化が図れず、また、新たに設けたサブ発振回路チェック用の発振回路の動作状態もさらに把握する必要があることを新たな問題点として見いだした。
【０００９】
本発明は、上述した問題を解決するために提案されたものであり、サブ発振回路が停止した場合であっても、異常検出を可能にすると共に、発振回路自身の小型化を実現することができる、発振回路、集積回路、及び異常検出方法を提供することを目的とする。
【課題を解決するための手段】
【００１０】
上記目的を達成するために、請求項１に記載の発振回路は、内部回路に所定のメインクロックを出力するメイン発振回路と、前記メインクロックの周波数と異なる周波数のサブクロックを出力するサブ発振回路と、前記サブ発振回路から出力されたサブクロックに応じて予め定められた期間内に、前記メイン発振回路から出力されたメインクロックの数に応じて、異常を検出する第１異常検出手段と、前記メイン発振回路から出力されたメインクロックが分周され、かつ前記サブクロックの周波数と異なる周波数の分周クロックと、前記サブ発振回路から出力されたサブクロックとに応じて、異常を検出する第２異常検出手段と、を備える。
【００１１】
請求項６に記載の集積回路は、自己の異常を検出する機能を有する前記請求項１から前記請求項５のいずれか１項に記載の発振回路と、前記発振回路に備えられたメイン発振回路から出力されたメインクロックに応じて動作する内部回路と、を備える。
【００１３】
請求項７に記載の異常検出方法は、内部回路に所定のメインクロックを出力するメイン発振回路と、前記メインクロックの周波数と異なる周波数のサブクロックを出力するサブ発振回路と、を備えた発振回路に対して、前記サブ発振回路から出力されたサブクロックに応じて予め定められた期間内に、前記メイン発振回路から出力されたメインクロックの数を取得する工程と、取得したメインクロックの数と、予め記憶手段に記憶されている上限値とを比較して、前記メインクロックの数が上限値を超える場合に、異常を検出する工程と、取得したメインクロックの数と、予め記憶手段に記憶されている下限値とを比較して、前記メインクロックの数が下限値よりも小さい場合に、異常を検出する工程と、を備える。
【発明の効果】
【００１４】
本発明によれば、サブ発振回路が停止した場合であっても、異常検出を可能にすると共に、発振回路自身の小型化を実現することができる、という効果を奏する。
【図面の簡単な説明】
【００１５】
【図１】本実施の形態の集積回路の概略構成の一例を示す概略構成図である。
【図２】本実施の形態の発振回路の概略構成の一例を示す概略構成図である。
【図３】本実施の形態のメイン発振回路及びサブ発振回路の正常動作時のタイムチャートの一例である。
【図４】本実施の形態のメイン発振回路の発振異常の動作時のタイミングチャートの一例である。
【図５】本実施の形態のサブ発振回路の発振異常の動作時のタイミングチャートの一例である。
【図６】本実施の形態のメイン発振回路の発振停止の動作時のタイミングチャートの一例である。
【図７】本実施の形態のサブ発振回路の発振停止の動作時のタイミングチャートの一例である。
【図８】本実施の形態のメイン発振回路及びサブ発振回路の異常と、比較器（３８）、比較器（４２）、及び発振確認回路における異常（ＮＧ）の検出との関係をまとめた図である。
【発明を実施するための形態】
【００１６】
以下、図面を参照して、本実施の形態の集積回路及び自己診断機能を有する発振回路について説明する。以下では、メイン発振回路３０及びサブ発振回路５０の異常について、発振異常と、発進停止と、二つの状態にわけて説明する。なお、本実施の形態において発振異常とは、発振が停止してはいないが、所定の周波数よりも発振周波数が高い、または低い状態の異常をいう。
【００１７】
まず、本実施の形態の発振回路を備えた集積回路（ＩＣ）の概略構成について説明する。図１に、本実施の形態の集積回路の概略構成の一例を示す。
【００１８】
本実施の形態の集積回路１０は、内部回路１２、内部回路動作制御部１４、及び発振回路２０を備えている。当該集積回路１０は、外部のＭＣＵ（マイクロプロセッサ）８から入力される制御信号に基づいて、動作が制御される。
【００１９】
発振回路２０は、異常に対する自己診断機能を有する発振回路である。詳細は後述するが、発振回路２０は、メイン（高速）発振回路３０を備えた第１異常検出部２２と、サブ（低速）発振回路５０を備えた第２異常検出部２４と、ＯＲ回路２６と、を備えている。発振回路２０から内部回路動作制御部１４へは、異常検出信号が出力される。本実施の形態の発振回路２０では、メイン発振回路３０及びサブ発振回路５０の少なくとも一方の異常を検出すると、異常を検出したことを内部回路動作制御部１４に報知する。
【００２０】
また、内部回路１２へは、メイン発振回路３０から出力された高速クロックが供給される。内部回路１２は、当該高速クロックに応じて所定の動作を行う。なお、このようにメイン発振回路３０から供給される高速クロックに応じて所定の動作を行うものであれば、内部回路１２の構成、機能等は特に限定されない。
【００２１】
内部回路動作制御部１４は、内部回路１２の動作を制御する機能を有しており、例えば、制御回路やＣＰＵ等により構成されている。本実施の形態の内部回路動作制御部１４は、発振回路２０から、異常を検出した旨を知らせる異常検出信号を受信すると、内部回路１２をリセットしたり、内部回路１２の機能を停止させたり等、所定の制御処理を行う。また、異常を検出した旨（または、所定の制御処理を行った旨）を外部に報知する。
【００２２】
次に、本実施の形態の自己診断機能を有する発振回路２０について詳細に説明する。図２に、本実施の形態の発振回路２０の概略構成の一例を示す。本実施の形態の発振回路２０は、上述したように第１異常検出部２２、第２異常検出部２４、及びＯＲ回路２６を備えている。
【００２３】
第１異常検出部２２は、メイン発振回路３０、カウンタ３２、立上り検出回路３４、レジスタ３６、比較器３８、下限値レジスタ４０、比較器４２、及び上限値レジスタ４４を備えている。一方、第２異常検出部２４は、サブ発振回路５０、分周器５２、シフトレジスタ５４、及び発振確認回路５６を備えている。
【００２４】
第１異常検出部２２は、メイン発振回路３０及びサブ発振回路５０の発振異常と、サブ発振回路５０の発振停止とを異常として検出する。一方、第２異常検出部２４は、メイン発振回路３０の発振停止を異常として検出する。
【００２５】
メイン発振回路３０は、内部回路１２に供給する高速クロックを発生させる高速（サブ発振回路５０に対して高速）発振回路である。本実施の形態では、具体的一例として、発振周波数を１ＭＨｚとしている。一方、サブ発振回路５０は、メイン発振回路３０の異常を検出するための低速クロックを発生させる低速（メイン発振回路３０に対して低速）発振回路である。本実施の形態では、具体的一例として、発振周波数をメイン発振回路３０の１／１６、すなわち１／１６ＭＨｚとしている。
【００２６】
カウンタ３２は、メイン発振回路３０から入力された高速クロックを、立上り検出回路３４からリセット（ＲＥＳＥＴ）に入力される信号（以下、リセット信号という）に応じてカウントし、カウント値をレジスタ３６及び比較器４２に出力する。本実施の形態では、具体的一例として、カウンタ３２の出力値を１６進数（ＨＥＸ）としている。
【００２７】
立上り検出回路３４は、サブ発振回路５０の低速クロックの立ち上がりをメイン発振回路３０の高速クロックによりサンプリングして検出する機能を有している。レジスタ３６は、立上り検出回路３４から入力される信号の立ち下がりをクロックとして、カウンタ３２の出力を取り込み、比較器３８に出力する機能を有している。本実施の形態では、具体的一例として、レジスタ３６を８ビット（１６進数：ＨＥＸ）としている。
【００２８】
下限値レジスタ４０には、レジスタ３６の出力値が正常であるとみなす下限値が予め記憶されている。比較器３８は、下限値レジスタ４０に記憶されている下限値と、レジスタ３６の出力値とを比較し、レジスタ３６の出力値が、下限値よりも小さい場合は、ＮＧ（異常）として、「１」を示す信号をＯＲ回路２６に出力する。
【００２９】
一方、上限値レジスタ４４には、カウンタ３２
の出力値が正常であるとみなす上限値が予め記憶されている。比較器４２は、上限値レジスタ４４に記憶されている上限値と、カウンタ３２の出力値とを比較し、カウンタ３２の出力値が、上限値よりも大きい場合は、ＮＧ（異常）として、「１」を示す信号をＯＲ回路２６に出力する。
【００３０】
分周器５２は、メイン発振回路３０から出力された高速クロックを分周した分周クロックを生成し、シフトレジスタ５４に出力する機能を有している。本実施の形態では、具体的一例として、分周器５２は、メイン発振回路３０から出力された高速クロックを１／３２に分周している。
【００３１】
シフトレジスタ５４は、サブ発振回路５０から出力された低速クロックに応じて、分周器５２から出力された分周クロックを取り込んで、発振確認回路５６に出力する機能を有している。本実施の形態では、具体的一例として、シフトレジスタ５４を４ビット（ＢＩＮ）としている。
【００３２】
発振確認回路５６は、シフトレジスタ５４の出力値が所定の値となった場合に、ＮＧ（異常）として、「１」を示す信号をＯＲ回路２６に出力する。本実施の形態では、具体的一例として、発振確認回路５６は、シフトレジスタ５４の出力値である４ビットが全て同じ値、すなわち「１１１１」または、「００００」となった場合にＮＧ（異常）としている。
【００３３】
ＯＲ回路２６には、比較器３８、比較器４２、及び発振確認回路５６から出力された信号が入力される。本実施の形態では、比較器３８、比較器４２、及び発振確認回路５６のうちのいずれか１つでもＮＧ（異常）を検出した場合は、ＯＲ回路２６からは「Ｈ」レベルの異常検出信号が出力される。また、比較器３８、比較器４２、及び発振確認回路５６のすべてがＯＫ（正常）を検出した場合は、「Ｌ」レベルの異常検出信号が出力される。
【００３４】
次に、本実施の形態の発振回路２０の動作について図面を参照して説明する。
【００３５】
まず、メイン発振回路３０及びサブ発振回路５０が正常に動作している場合について説明する。図３には、メイン発振回路３０及びサブ発振回路５０の正常動作時のタイミングチャートの一例を示す。
【００３６】
サブ発振回路５０の低速クロックの立ち上がりをメイン発振回路３０の高速クロックによりサンプリングして検出する。
【００３７】
立上り検出回路３４は、サブ発振回路５０の立ち上がりを検出後、高速クロックの１クロック間だけ「Ｈ」レベルの信号を出力し、次のサブ発振回路５０の立ち上がりを検出するまで「Ｌ」レベルの信号を出力する。本実施の形態では、サブ発振回路５０がメイン発振回路３０の１／１６の周波数であるため、高速クロックの１６クロック毎に、立上り検出回路３４の出力信号が立ち上がる（または立ち下がる）。
【００３８】
カウンタ３２は、高速クロックを、立上り検出回路３４の出力信号の立ち下がりから次の立ち下がりまでの期間、カウントし、カウント値を比較器３８に出力する。本実施の形態では、図３に示すように、０〜Ｆ（１５）までカウントし、カウント値「Ｆ（１５）」を出力する。
【００３９】
比較器４２では、カウンタ３２のカウント値（「Ｆ（１５）」）と、上限値レジスタ４４に記憶されている上限値（例えば、１６）とを比較し、上限値以下であるため、正常（ＯＫ）である旨の「０」を示す信号をＯＲ回路２６に出力する。
【００４０】
一方、レジスタ３６は、カウンタ３２と同様に、立上り検出回路３４の出力信号の立ち下がりから次の立ち下がりまでの期間、カウンタ３２の出力を格納し、比較器３８に出力する。本実施の形態では、図３に示すように、「０ｘ０Ｆ（１５）」を出力する。このように、メイン発振回路３０及びサブ発振回路５０が正常動作している場合は、比較器３８と比較器４２とに入力される信号が示す値は共通（本実施の形態では「１５」）になる。
【００４１】
比較器３８では、レジスタ３６の出力値（「０ｘ０Ｆ（１５）」）と、比較器３８に記憶されている下限値（例えば、１４）とを比較し、下限値以上であるため、正常（ＯＫ）である旨の「０」を示す信号をＯＲ回路２６に出力する。
【００４２】
また、第２異常検出部２４のシフトレジスタ５４は、サブ発振回路５０から出力された低速クロックが立ち上がるタイミングで、分周器５２から出力された分周クロックを取り込み、分周クロックのレベルに応じて「１」または「０」を格納する。本実施の形態では、図３に示すように、シフトレジスタ５４には、「１」と「０」とが交互に格納される。
【００４３】
発振確認回路５６は、シフトレジスタ５４から出力された４ビットの出力信号の各ビットの値に応じて、異常であるか正常であるかを示す信号をＯＲ回路２６に出力する。図３に示したように、メイン発振回路３０及びサブ発振回路５０の正常動作時は、上述したように、シフトレジスタ５４には、「１」、「０」が交互に格納されるため、出力信号の各ビットが同じ値になることはない。従って、発振確認回路５６は、正常（ＯＫ）である旨の「０」を示す信号をＯＲ回路２６に出力する。
【００４４】
ＯＲ回路２６からは、入力される全信号が「０」を示すため、正常である旨を示す「Ｌ」レベルの異常検出信号が出力される。
【００４５】
次に、メイン発振回路３０が発振異常を起こした場合について説明する。図４には、メイン発振回路３０の発振異常の動作時のタイミングチャートの一例を示す。
【００４６】
図４に示すようにメイン発振回路３０の周波数が低くなる発振異常が発生した場合、カウンタ３２のカウント値が正常動作時よりも小さいうちに、立上り検出回路３４からリセット信号が入力される。図４では、正常動作時ならば高速クロックが１６クロックあるべき期間に、１３クロックしか発生していないため、カウンタ３２は、カウント値として「Ｃ（１２）」を出力する。当該カウント値＝１２は、比較器４２に入力されるが、上限値レジスタ４４に記憶されている上限値以下であるため、比較器４２は、異常（ＮＧ）とみなさず、正常（ＯＫ）である旨の「０」を示す信号をＯＲ回路２６に出力する。
【００４７】
一方、カウンタ３２のカウント値は、レジスタ３６にも入力される。１３クロック分までしかカウントされていないため、レジスタ３６は、図４に示すように、「０ｘ０Ｃ（１２）」を出力する。比較器３８では、レジスタ３６の出力値（「０ｘ０Ｃ（１２）」）と、比較器３８に記憶されている下限値とを比較し、下限値以下であるため、異常（ＮＧ）である旨の「１」を示す信号をＯＲ回路２６に出力する。
【００４８】
なお、この際、第２異常検出部２４では、図４に示すように、シフトレジスタ５４に、「１」、「０」が交互に格納されはしないが、４ビット全てが同じ値とはならない。そのため、発振確認回路５６は、正常（ＯＫ）である旨の「０」を示す信号をＯＲ回路２６に出力する。
【００４９】
ＯＲ回路２６からは、比較器３８、比較器４２、及び発振確認回路５６から入力される信号のうち、比較器３８から入力される信号が「１」を示しているため、異常である旨を示す「Ｈ」レベルの異常検出信号が出力される。
【００５０】
また、図４に示すように、メイン発振回路３０の周波数が高くなる発振異常が発生した場合、カウンタ３２のカウント値が正常動作時の値を超えてもカウントを続け、カウント値が大きくなる。図４では、正常動作時ならば高速クロックが１６クロックあるべき期間に、１８クロック発生しているため、カウンタ３２は、カウント値として「１１（１７）」を出力する。当該カウント値＝１７は、比較器４２に入力される。比較器４２は、上限値レジスタ４４に記憶されている上限値以上であるため、異常（ＮＧ）である旨の「１」を示す信号をＯＲ回路２６に出力する。
【００５１】
一方、カウンタ３２のカウント値は、レジスタ３６にも入力される。１８クロック分までカウントされ、レジスタ３６は、図４に示すように、「０ｘ１１（１７）」を出力する。比較器３８では、レジスタ３６の出力値（「０ｘ１１（１７）」）と、比較器３８に記憶されている下限値とを比較するが、下限値以上であるため、正常（ＯＫ）である旨の「０」を示す信号をＯＲ回路２６に出力する。
【００５２】
このように、メイン発振回路３０の動作が発振異常を起こした場合は、第１異常検出部２２の比較器３８及び比較器４２により異常（ＮＧ）であることを検出することができる。
【００５３】
次に、サブ発振回路５０が発振異常を起こした場合について説明する。図５には、サブ発振回路５０の発振異常の動作時のタイミングチャートの一例を示す。
【００５４】
図５に示すように、サブ発振回路５０の周波数が低くなる発振異常が発生した場合、立上り検出回路３４で立ち上がりを検出するタイミングが正常動作時よりも遅くなる。そのため、カウンタ３２にリセット信号が入力されるタイミングが遅くなり、カウンタ３２のカウント値が正常動作時の値を超えてもカウントを続け、カウント値が大きくなる。図５では、カウンタ３２は、カウント値として「１１（１７）」を出力する。当該カウント値＝１７は、比較器４２に入力される。比較器４２は、上限値レジスタ４４に記憶されている上限値以上であるため、異常（ＮＧ）である旨の「１」を示す信号をＯＲ回路２６に出力する。
【００５５】
一方、カウンタ３２のカウント値は、レジスタ３６にも入力される。レジスタ３６は、図５に示すように、「０ｘ１１（１７）」を出力する。比較器３８では、レジスタ３６の出力値（「０ｘ１１（１７）」）と、比較器３８に記憶されている下限値とを比較するが、下限値以上であるため、正常（ＯＫ）である旨を示す「０」レベルの信号をＯＲ回路２６に出力する。
【００５６】
なお、この際、第２異常検出部２４では、図５に示すように、シフトレジスタ５４に、「１」、「０」が交互に格納されはしないが、４ビット全てが同じ値とはならないため、発振確認回路５６は、正常（ＯＫ）である旨の「０」を示す信号をＯＲ回路２６に出力する。
【００５７】
また、図５に示すように、サブ発振回路５０の周波数が高くなる発振異常が発生した場合、カウンタ３２のカウント値が正常動作時よりも小さいうちに、立上り検出回路３４からリセット信号が入力される。図５では、高速クロックが１２クロックしか発生していないうちにリセット信号が入力されるため、カウンタ３２は、カウント値として「Ｂ（１１）」を出力する。当該カウント値＝１１は、比較器４２に入力されるが、上限値レジスタ４４に記憶されている上限値以下であるため、比較器４２は、異常（ＮＧ）とみなさず、正常（ＯＫ）である旨の「０」を示す信号をＯＲ回路２６に出力する。
【００５８】
一方、カウンタ３２のカウント値は、レジスタ３６にも入力される。１２クロック分しかカウントされていないため、レジスタ３６は、図５に示すように、「０ｘ０Ｂ（１１）」を出力する。比較器３８では、レジスタ３６の出力値（「０ｘ０Ｂ（１１）」）と、比較器３８に記憶されている下限値とを比較し、下限値以下であるため、異常（ＮＧ）である旨を示す「１」レベルの信号をＯＲ回路２６に出力する。
【００５９】
このように、サブ発振回路５０の動作が発振異常を起こした場合は、第１異常検出部２２の比較器３８及び比較器４２により異常（ＮＧ）であることを検出することができる。
【００６０】
次に、サブ発振回路５０が発振停止を起こした場合について説明する。図６には、サブ発振回路５０の発振停止の動作時のタイミングチャートの一例を示す。
【００６１】
図６に示すようにサブ発振回路５０が発振停止した場合、立上り検出回路３４では、発振停止以降、立ち上がりが検出されない。そのため、カウンタ３２にはリセット信号が入力されず、カウンタ３２は、カウントアップを続ける。カウントアップを続けられたカウント値が比較器４２に入力されるため、比較器４２では、上限値レジスタ４４に記憶されている上限値以上となった際に、異常（ＮＧ）である旨の「１」を示す信号をＯＲ回路２６に出力する。
【００６２】
一方、レジスタ３６にも、サブ発振回路５０の発振停止以降、立上り検出回路３４から信号が入力されない。そのため、レジスタ３６からは、直前（サブ発振回路５０の発振停止前：正常動作時）に入力された信号に基づいて、「０ｘ０Ｆ（１５）」が出力された状態になる。従って、比較器３８は、下限値レジスタ４０に記憶された下限値以上であるため、正常（ＯＫ）である旨の「０」を示す信号をＯＲ回路２６に出力する。
【００６３】
また、シフトレジスタ５４には、サブ発振回路５０の発振停止以降、サブ発振回路５０から信号が入力されない。そのため、シフトレジスタ５４からは、直前（サブ発振回路５０の発振停止前：正常動作時）に入力された低速クロックに基づいて、「０１０１」が出力された状態になる。従って、発振確認回路５６は、正常（ＯＫ）である旨の「０」を示す信号をＯＲ回路２６に出力する。
【００６４】
このように、サブ発振回路５０が発振停止を起こした場合は、第１異常検出部２２の比較器４２により異常（ＮＧ）であることを検出することができる。
【００６５】
次に、メイン発振回路３０が発振停止を起こした場合について説明する。図７には、メイン発振回路３０の発振停止の動作時のタイミングチャートの一例を示す。
【００６６】
図７に示すようにメイン発振回路３０が発振停止した場合、立上り検出回路３４では、発振停止以降、立ち上がりが検出されない。そのため、カウンタ３２にはリセット信号が入力されないが、高速クロックが入力されないため、カウントアップも停止する。図７に示した例では、カウント値「Ｂ（１１）」が出力されたままになる。比較器４２では、上限値レジスタ４４に記憶されている上限値以下であるため、正常（ＯＫ）である旨の「０」を示す信号をＯＲ回路２６に出力する。
【００６７】
一方、レジスタ３６にも、メイン発振回路３０の発振停止以降、立上り検出回路３４から信号が入力されない。そのため、レジスタ３６からは、直前（メイン発振回路３０の発振停止前：正常動作時）に入力された信号に基づいて、「０ｘ０Ｆ（１５）」が出力された状態になる。従って、比較器３８は、下限値レジスタ４０に記憶された下限値以上であるため、正常（ＯＫ）である旨の「０」を示す信号をＯＲ回路２６に出力する。
【００６８】
また、分周器５２は、メイン発振回路３０の発振停止以降、新たに高速クロックが入力されないため、図７に示した例では、「Ｈ」レベルの分周クロックを出力し続ける。シフトレジスタ５４は、「Ｈ」レベルの分周クロックをサブ発振回路５０の低速クロックの立ち上がりタイミングで取り込むため、同じ値（「１」）を格納し続ける。発振確認回路５６では、シフトレジスタ５４の出力値が「１１１１」になると、異常（ＮＧ）である旨の「１」を示す信号をＯＲ回路２６に出力する。
【００６９】
このように、メイン発振回路３０が発振停止を起こした場合は、第２異常検出部２４の発振確認回路５６により異常（ＮＧ）であることを検出することができる。
【００７０】
メイン発振回路３０及びサブ発振回路５０の異常と、比較器３８、比較器４２、及び発振確認回路５６における検出との関係をまとめたものを図８に示す。
【００７１】
以上説明したように、本実施の形態の発振回路２０では、内部回路１２に高速クロックを供給するメイン発振回路３０、及びサブ発振回路５０を備えており、これらの異常を検出するための第１異常検出部２２及び第２異常検出部２４を備えている。サブ発振回路５０の発振周波数に応じて予め定められた期間に、メイン発振回路３０から出力される高速クロックのクロック数の正常とみなせる下限値が予め下限値レジスタ４０に記憶されており、上限値が予め上限値レジスタ４４に記憶されている。第１異常検出部２２では、高速クロックと低速クロックとに応じた期間、カウンタ３２で高速クロックのクロック数をカウントし、カウント値と、上限値レジスタ４４に記憶されている上限値とを比較器４２して、上限値を超えている場合は、比較器４２から異常（ＮＧ）を表す旨の信号が出力される。また、カウンタ３２のカウント値に応じたレジスタ３６の出力値と、下限値レジスタ４０に記憶されている下限値とを比較器３８で比較して、下限値よりも小さい場合は、比較器３８から異常（ＮＧ）を表す旨の信号が出力される。
【００７２】
また、第２異常検出部２４では、高速クロックを分周器５２で分周した分周クロックを低速クロックに応じたタイミングでシフトレジスタ５４が取り込み、シフトレジスタ５４の出力値の各ビットが全て同じ値の場合に、発振確認回路５６から異常（ＮＧ）を表す旨の信号が出力される。
【００７３】
これにより、第１異常検出部２２により、メイン発振回路３０及びサブ発振回路５０の発振異常、サブ発振回路５０の発振停止に関する異常を検出することができる。また、第２異常検出部２４により、メイン発振回路３０の発振停止に関する異常を検出することができる。
【００７４】
従って、サブ発振回路５０が停止した場合であっても、異常検出を可能にすると共に、サブ発振回路５０の異常を検出するための発振回路を新たに設けずともよいため、小型化を実現しつつ信頼性の高い発振回路２０を提供することができる。
【００７５】
なお、このような自己の異常を検出する機能を有する発振回路２０を備えた集積回路１０としては、特に限定されないが、例えば、車載の電池を監視するための監視システムに用いられる集積回路１０に適用することが好ましい例として挙げられる。このような電池監視システムに用いられる集積回路１０では、電池の放電中に発振回路が異常発振をすると、電池の放電が止まらず、電池の残量が無くなってしまう場合がある。そのため、発振回路の異常を精度良く検出するために本発明の発振回路を適用することが好ましい。
【００７６】
なお、本実施の形態では、メイン発振回路３０を高速発振回路とし、サブ発振回路５０を、周波数がメイン発振回路３０の１／１６の低速発振回路としたが、倍率は、これに限らない。なお、倍率が高い方が、異常の検出精度は高くなる。  また、上記実施の形態で下限値レジスタ４０に記憶させてある下限値及び上限値レジスタ４４に記憶させてある上限値は一例であり、本実施の形態に限定されず、異常の検出精度等に応じて定めればよい。また、レジスタ３６やシフトレジスタ５４のビット数、分周器５２の分周割合等も、本実施の形態に限定されず、異常の検出精度等に応じて定めればよい。
【００７７】
また、メイン発振回路３０を高速発振回路とし、サブ発振回路５０を低速発振回路としたが、両者の周波数を同一としてもよいし、メイン発振回路３０を低速発振回路、サブ発振回路５０を高速発振回路としてもよい。この場合、分周器５２をメイン発振回路３０から出力されるクロックではなく、サブ発振回路５０から出力されるクロックが入力されるように設けるように構成する。なお、サブ発振回路５０を高速発振回路とした場合、電流の消費が多くなるため、消費電力抑制の観点からは好ましくない。
【００７８】
また、本実施の形態では、比較器３８、比較器４２、及び発振確認回路５６の出力に応じて、いずれかが異常（ＮＧ）を示す場合に、ＯＲ回路２６から異常である旨を示す異常検出信号が出力されるように構成しているがこれに限らない。例えば、ＯＲ回路２６を介さずに、比較器３８、比較器４２、及び発振確認回路５６の各出力信号が発振回路２０の外部（例えば内部回路動作制御部１４）に出力されるようにしてもよい。
【００７９】
また、本実施の形態では、立上り検出回路３４を使用して、サブ発振回路５０の低速クロックの立ち上がりを検出しているが、立ち下がりを検出する回路を使用しても同様の機能を実現できる。
【００８０】
また、上述の実施の形態で説明した集積回路１０、発振回路２０等の構成及び動作等は一例であり、本発明の主旨を逸脱しない範囲内において状況に応じて変更可能であることは言うまでもない。例えば、下限値レジスタ４０及び上限値レジスタ４４をレジスタではなく、メモリとして構成してもよい。
【符号の説明】
【００８１】
１０  集積回路
１２  内部回路
２０  発振回路
２２  第１異常検出部
２４  第２異常検出部
３０  メイン発振回路
３２  カウンタ
３４  立上り検出回路
３６  レジスタ
３８  比較器
４２  比較器
４０  下限値レジスタ
４４  上限値レジスタ
５０  サブ発振回路
５２  分周器
５４  シフトレジスタ
５６  発振確認回路
【図１】
0005921913.tif 000002
【図２】
0005921913.tif 000003
【図３】
0005921913.tif 000004
【図４】
0005921913.tif 000005
【図５】
0005921913.tif 000006
【図６】
0005921913.tif 000007
【図７】
0005921913.tif 000008
【図８】
0005921913.tif 000009