(57)【要約】【課題】デジタル回路により電源投入を検出することができる電源投入検出回路及びマイクロコントローラを提供することを課題とする。【解決手段】電源投入時に不定値を記憶し、複数ビットのデータを出力するフリップフロップ回路（１０１）と、前記フリップフロップ回路により出力される複数ビットのデータと複数ビットの固定値とを比較し、その比較の結果に応じた電源投入検出フラグを出力する比較器（１０２）とを有することを特徴とする電源投入検出回路が提供される。【選択図】図１
2010004374.tif 000002
【特許請求の範囲】
【請求項１】
電源投入時に不定値を記憶し、複数ビットのデータを出力するフリップフロップ回路と、
前記フリップフロップ回路により出力される複数ビットのデータと複数ビットの固定値とを比較し、その比較の結果に応じた電源投入検出フラグを出力する比較器と
を有することを特徴とする電源投入検出回路。
【請求項２】
前記複数ビットの固定値は、１のビット数と０のビット数が同じであることを特徴とする請求項１記載の電源投入検出回路。
【請求項３】
電源投入時、前記フリップフロップ回路は不定値のデータを出力し、前記比較器は前記データ及び前記固定値が不一致であることを示す電源投入検出フラグを出力することを特徴とする請求項１又は２記載の電源投入検出回路。
【請求項４】
前記フリップフロップ回路は、前記比較器により前記データ及び前記固定値が不一致であることを示す電源投入フラグが出力されると、ＣＰＵから前記固定値と同じ値のデータを入力して記憶することを特徴とする請求項１〜３のいずれか１項に記載の電源投入検出回路。
【請求項５】
電源投入検出回路と、
ＣＰＵとを有するマイクロコントローラであって、
前記電源投入検出回路は、
電源投入時に不定値を記憶し、複数ビットのデータを出力するフリップフロップ回路と、
前記フリップフロップ回路により出力される複数ビットのデータと複数ビットの固定値とを比較し、その比較の結果に応じた電源投入検出フラグを出力する比較器とを有し、
前記ＣＰＵは、前記比較器により前記データ及び前記固定値が不一致であることを示す電源投入フラグを入力すると、前記固定値と同じ値のデータを前記フリップフロップ回路に出力して記憶させることを特徴とするマイクロコントローラ。
【請求項６】
前記複数ビットの固定値は、１のビット数と０のビット数が同じであることを特徴とする請求項５記載のマイクロコントローラ。
【請求項７】
電源投入時、前記フリップフロップ回路は不定値のデータを出力し、前記比較器は前記データ及び前記固定値が不一致であることを示す電源投入検出フラグを出力することを特徴とする請求項５又は６記載のマイクロコントローラ。
【請求項８】
前記ＣＰＵは、リセット信号が入力されると、前記電源投入検出フラグに応じたリセット処理を行うことを特徴とする請求項５〜７のいずれか１項に記載のマイクロコントローラ。
【請求項９】
前記ＣＰＵは、リセット時、前記データ及び前記固定値が不一致であることを示す電源投入検出フラグを入力するとセキュリティをオンにする処理を行い、前記データ及び前記固定値が一致することを示す電源投入検出フラグを入力するとリセット前のセキュリティ状態を継続する処理を行うことを特徴とする請求項８記載のマイクロコントローラ。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、電源投入検出回路及びマイクロコントローラに関する。
【背景技術】
【０００２】
図２は電圧検出回路２０３を有するマイクロコントローラ２０１の構成例を示す図であり、図３は図２のマイクロコントローラ２０１の動作例を示すタイミングチャートである。時刻ｔ１において、電源スイッチＳＷがオンされると、電源電圧Ｖ１はグランド電位から電圧Ｖに上昇する。マイクロコントローラ２０１は、ＣＰＵ（中央処理装置）２０２、電圧検出回路２０３、抵抗Ｒ及び容量Ｃを有し、電源電圧Ｖ１を入力する。電源電圧Ｖ２は、抵抗Ｒ及び容量Ｃの時定数回路（遅延回路）により、電源電圧Ｖ１を遅延した電圧になる。電圧検出回路２０３は、電源電圧Ｖ２に応じて電源投入検出フラグＰＲを出力する。電源投入フラグＰＲは、電源電圧Ｖ２が閾値未満であるときにはローレベルとなり、電源電圧Ｖ２が閾値以上であるときにはハイレベルとなる。時刻ｔ２において、電源投入検出フラグＰＲがハイレベルになり、電源スイッチＳＷによる電源投入が検出される。ＣＰＵ２０２は、電源投入検出フラグＰＲに応じた処理を行う。
【０００３】
しかし、電源投入を検出するために、時定数回路（抵抗Ｒ及び容量Ｃを含む）及び電圧検出回路２０３等のアナログ回路を必要とする。アナログ回路の回路パラメータは、半導体プロセスに大きく依存する。そのため、半導体微細加工技術の進展に伴い、プロセスルール毎に新規に回路を開発する必要があり、開発期間や開発コストへの影響が大きい。また、一般にアナログ回路はデジタル回路（論理回路）と比較して大きく、回路規模への影響も無視できない。
【０００４】
また、セキュリティ機構を備えた機器において電源切断状態が発生したことを検出する装置であって、当該機器への電源供給が遮断されると記憶内容が破壊される電源切断記憶部と、リセットスタート時に、前記電源切断記憶部の記憶内容が破壊されている場合に、電源切断があったと判定して、所定のセキュリティ処理を実行するマイクロコンピュータと、を具備することを特徴とする、セキュリティ機構付き機器における電源切断検出装置が知られている（下記の特許文献１参照）。
【０００５】
【特許文献１】特開平８−８０８１０号公報
【発明の開示】
【発明が解決しようとする課題】
【０００６】
本発明の目的は、デジタル回路により電源投入を検出することができる電源投入検出回路及びマイクロコントローラを提供することである。
【課題を解決するための手段】
【０００７】
本発明の電源投入検出回路は、電源投入時に不定値を記憶し、複数ビットのデータを出力するフリップフロップ回路と、前記フリップフロップ回路により出力される複数ビットのデータと複数ビットの固定値とを比較し、その比較の結果に応じた電源投入検出フラグを出力する比較器とを有することを特徴とする。
【発明の効果】
【０００８】
フリップフロップ回路及び比較器はデジタル回路で構成することができるので、アナログ回路に比べて、開発期間、開発コスト及び／又は回路規模を低減することができる。
【発明を実施するための最良の形態】
【０００９】
図４は、本発明の実施形態による電源投入検出回路４０３を有するマイクロコントローラ４０１の構成例を示す図である。電源スイッチＳＷがオンされると、電源電圧Ｖ１はグランド電位から電圧Ｖに上昇する。マイクロコントローラ４０１は、ＣＰＵ（中央処理装置）４０２及び電源投入検出回路４０３を有し、電源電圧Ｖ１を入力する。電源電圧Ｖ１は、ＣＰＵ４０２及び電源投入検出回路４０３に入力される。電源投入検出回路４０３は、デジタル回路（論理回路）で構成され、電源投入を検出し、電源投入検出フラグＰＲを出力する。電源投入検出フラグＰＲは、電源スイッチＳＷによる電源投入が検出されると、ハイレベルになる。電源投入検出回路４０３の構成は、後に図１等を参照しながら説明する。ＣＰＵ４０２は、電源投入検出フラグＰＲに応じた処理を行う。また、ＣＰＵ４０２は、データＤ、イネーブル信号ＥＮ及びクロック信号ＣＬＫを電源投入検出回路４０３に出力する。
【００１０】
電源投入検出回路４０３は、デジタル回路で構成することにより、アナログ回路に比べ、半導体のプロセスルールへの互換性に優れる。また、回路構成が簡単なため、開発期間、開発コスト及び回路規模を低減することができ、簡易的に電源投入検出の機能を実現できる。例えば、開発期間ではおよそ１／２０程度、回路規模では面積比でおよそ１／８程度となる。また、デジタル回路は、ＨＤＬ（ハードウェア記述言語）を用いて回路設計を行うことができるので、論理合成することで様々なプロセスルールへの変換が容易であり、半導体プロセスへの依存性が小さい。
【００１１】
図１は、図４の電源投入検出回路４０３の構成例を示す図である。電源投入検出回路４０３は、複数ビットフリップフロップ回路１０１、比較器１０２及びインバータ１０３を有し、デジタル回路で構成される。複数ビットフリップフロップ回路１０１は、例えば８ビットフリップフロップ回路であり、ＣＰＵ４０２から複数ビット（例えば８ビット）のデータＤ、イネーブル信号ＥＮ及びクロック信号ＣＬＫを入力し、複数ビット（例えば８ビット）のデータＱを出力する。具体的には、イネーブル信号ＥＮがハイレベルになると、クロック信号ＣＬＫに同期してデータＤをラッチし、ラッチしたデータを出力データＱとして出力する。複数ビットフリップフロップ回路１０１は、電源投入時には不定値を記憶する。比較器１０２は、複数ビットのデータＱと複数ビットの固定値ＡＡを比較し、その比較の結果に応じた電源投入検出フラグＡ１を出力する。固定値ＡＡは、データＱとビット数が同じである。電源投入検出フラグＡ１は、データＱ及び固定値ＡＡが不一致であるときにはローレベルになり、データＱ及び固定値ＡＡが一致しているときにはハイレベルになる。インバータ１０３は、電源投入検出フラグＡ１を論理反転し、その論理反転した電源投入検出フラグＰＲを出力する。
【００１２】
図５は、図１の電源投入検出回路の構成例を示す回路図である。複数ビットフリップフロップ回路１０１は、８個のフリップフロップ回路５００〜５０７を有する。比較器１０２は、８個の否定排他的論理和（ＸＮＯＲ）回路５１０〜５１７及び３個の論理積（ＡＮＤ）回路５１８〜５２０を有する。８ビットのデータＤ０〜Ｄ７は、図１の８ビットのデータＤに対応する。８ビットのデータＱ０〜Ｑ７は、図１の８ビットのデータＱに対応する。
【００１３】
８ビットの固定値ＡＡ０〜ＡＡ７は、図１の８ビットの固定値ＡＡに対応する。下位４ビットの固定値ＡＡ０〜ＡＡ３は、例えばハイレベルである。上位４ビットの固定値ＡＡ４〜ＡＡ７は、例えばローレベルである。８ビットの固定値ＡＡ０〜ＡＡ７は、ハイレベルに対応する値「１」のビットＡＡ０〜ＡＡ３のビット数とローレベルに対応する値「０」のビットＡＡ４〜ＡＡ７のビット数とが同じであることが好ましい。
【００１４】
フリップフロップ回路５００〜５０７は、それぞれデータＤ０〜Ｄ７を入力し、イネーブル信号ＥＮがハイレベルになると、クロック信号ＣＬＫに同期して、それぞれデータＤ０〜Ｄ７をラッチし、そのラッチしたデータをそれぞれ出力データＱ０〜Ｑ７として出力する。
【００１５】
否定排他的論理和回路５１０〜５１７は、データＱ０〜Ｑ７と固定値ＡＡ０〜ＡＡ７との排他的論理和信号を出力する。例えば、否定排他的論理和回路５１０は、データＱ０と固定値Ａ００の否定排他的論理和信号を出力する。すなわち、否定排他的論理和回路５１０は、データＱ０と固定値ＡＡ０とが同じ値のときにはハイレベル（「１」を示す）の信号を、データＱ０と固定値ＡＡ０とが異なる値のときにはローレベル（「０」を示す）の信号を、否定排他的論理和信号として出力する。
【００１６】
論理積回路５１８は、否定排他的論理和回路５１０〜５１３の出力信号の論理積信号を出力する。具体的には、論理積回路５１８は、４ビットのデータＱ０〜Ｑ３と４ビットの固定値ＡＡ０〜ＡＡ３とがすべて同じ値であるときにはハイレベルを出力し、それ以外のときにはローレベルを出力する。
【００１７】
論理積回路５１９は、否定排他的論理和回路５１４〜５１７の出力信号の論理積信号を出力する。具体的には、論理積回路５１９は、４ビットのデータＱ４〜Ｑ７と４ビットの固定値ＡＡ４〜ＡＡ７とがすべて同じ値であるときにはハイレベルを出力し、それ以外のときにはローレベルを出力する。
【００１８】
論理積回路５２０は、論理積回路５１８及び５１９の出力信号の論理積信号を電源投入検出フラグＡ１として出力する。具体的には、論理積回路５２０は、８ビットのデータＱ０〜Ｑ７と８ビットの固定値ＡＡ０〜ＡＡ７とがすべて同じ値であるときにはハイレベルを出力し、それ以外のときにはローレベルを出力する。
【００１９】
インバータ１０３は、電源投入検出フラグＡ１を論理反転し、その論理反転した電源投入検出フラグＰＲを出力する。電源投入検出フラグＰＲは、８ビットのデータＱ０〜Ｑ７と８ビットの固定値ＡＡ０〜ＡＡ７とがすべて同じ値であるときにはローレベルになり、それ以外のときにはハイレベルになる。
【００２０】
図６は、図５のフリップフロップ回路５００の構成例を示す回路図である。フリップフロップ回路５０１〜５０７も、フリップフロップ回路５００と同様の構成を有する。フリップフロップ回路５００は、スイッチ６０１，６０２、インバータ６１１〜６１５を有する。インバータ６１１〜６１５は、それぞれ入力信号を論理反転し、その論理反転した信号を出力する。インバータ６１１及び６１２は、第１の保持回路を構成する。インバータ６１３及び６１４は、第２の保持回路を構成する。
【００２１】
クロック信号ＣＬＫは、イネーブル信号ＥＮによりクロックゲーティングされる。すなわち、イネーブル信号ＥＮがハイレベルであるときにはクロック信号ＣＬＫがそのままフリップフロップ回路５００に入力され、イネーブル信号ＥＮがローレベルであるときには、フリップフロップ回路５００に入力されるクロック信号ＣＬＫがローレベルに固定される。
【００２２】
クロック信号ＣＬＫがハイレベルになると、スイッチ６０１がオンし、スイッチ６０２がオフする。すると、インバータ６１１及び６１２の第１の保持回路は、データＤ０を入力し、データＤ０を保持する。
【００２３】
次に、クロック信号ＣＬＫがローレベルになると、スイッチ６０１がオフし、スイッチ６０２がオンする。すると、インバータ６１３及び６１４の第２の保持回路は、第１の保持回路の出力データを入力して保持する。インバータ６１５は、第１の保持回路が保持しているデータを論理反転し、出力データＱ０を出力する。
【００２４】
電源投入時、インバータ６１１及び６１２の第１の保持回路とインバータ６１３及び６１４の第２の保持回路に記憶される値は不定値である。ここで、作成されたプロセスや電源投入条件（電源の立ち上がり方）が同じフリップフロップ回路５００〜５０７は、保持する値が同じになりやすい。本実施形態では、この特性を利用する。
【００２５】
図５において、複数ビットフリップフロップ回路１０１は、リセット端子を有せず、リセットにより初期化されないフリップフロップ回路であり、電源投入時に不定値を記憶する。実際には、電源投入時の複数ビットフリップフロップ回路１０１の値は、作成されたプロセスや電源投入条件（電源の立ち上がり方等）に大きく依存する。同じ半導体チップ内で同じ電源電圧Ｖ１が供給される複数のフリップフロップ回路５００〜５０７の、電源投入後の出力データＱ０〜Ｑ７は、統計的に全てハイレベル、又は全てローレベルに多く分布し、ハイレベルとローレベルが５０％ずつ混在する確率は極めて低い。本実施形態ではこの特性を利用する。
【００２６】
ここで、複数ビットフリップフロップ回路１０１は、ＣＰＵ４０２のソフトウェア処理によりデータＤ及びイネーブル信号ＥＮを制御することでのみ書き込み可能である。また、固定値ＡＡ０〜ＡＡ７はハイレベルとローレベルを５０％ずつ含む値からなる。したがって、電源投入時には、多ビットフリップフロップ回路１０１の出力データＱ０〜Ｑ７と固定値ＡＡ０〜ＡＡ７とは異なる値になる確率が極めて高い。比較器１０２は、出力データＱ０〜Ｑ７と固定値ＡＡ０〜ＡＡ７とが異なるときには、ローレベルの電源投入検出フラグＡ１を出力する。その結果、電源投入検出フラグＰＲは、ハイレベルになる。
【００２７】
電源投入検出の精度を上げるために、比較するデータＱ及び固定値ＡＡのビット数は多ビット（例えば１６ビット）であるほどよい。例えば、複数ビットフリップフロップ回路１０１を１６ビットで構成し、さらに、１６ビットの固定値ＡＡはハイレベル（「１」を示す）とローレベル（「０」を示す）が５０％ずつ含む「ａ５ａ５（１６進数）」等とする。
【００２８】
図７は、電源投入検出回路４０３の処理を示すフローチャートである。ステップＳ７０１では、比較器１０２は、複数ビットフリップフロップ回路１０１の８ビット出力データＱと８ビット固定値ＡＡとを比較する。次に、ステップＳ７０２において、両者が不一致であればステップＳ７０３へ進み、両者が一致であればステップＳ７０４へ進む。ステップＳ７０３では、インバータ１０３は、電源投入検出フラグＰＲをハイレベルにして出力する。ステップＳ７０４では、インバータ１０３は、電源投入検出フラグＰＲをローレベルにして出力する。電源投入検出回路４０３は、上記の処理を繰り返す。上記のように、電源投入時には、電源投入検出フラグＰＲがハイレベルになるので、電源スイッチＳＷによる電源投入が行われたことを検出することができる。
【００２９】
図８は、ＣＰＵ４０２の処理を示すフローチャートである。ステップＳ８０１では、ＣＰＵ４０２は、電源投入検出フラグＰＲがハイレベルか否かをチェックし、電源投入検出フラグＰＲがハイレベルであればステップＳ８０２へ進み、電源投入検出フラグＰＲがローレベルであればステップＳ８０４へ進む。
【００３０】
ステップＳ８０２では、ＣＰＵ４０２は、電源投入検出フラグＰＲがハイレベルであるので電源投入を検出し、電源投入検出状態処理を行う。すなわち、ＣＰＵ４０２は、リセット信号が入力されると、電源投入を伴うリセット処理を行う。例えば、セキュリティをオンにする処理を行う。
【００３１】
次に、ステップＳ８０３では、ＣＰＵ４０２は、８ビット固定値ＡＡと同じ値の８ビットデータＤを複数ビットフリップフロップ回路１０１に出力して記憶させる。その際、ＣＰＵ４０２は、イネーブル信号ＥＮをローレベルからハイレベルに変化させる。すると、複数ビットフリップフロップ回路１０１は、ハイレベルのイネーブル信号ＥＮを入力すると、ＣＰＵ４０２が入力したデータＤをラッチし、データＱとして出力する。データＱは固定値ＡＡと同じであるので、比較器１０２はハイレベルの電源投入検出フラグＡ１を出力する。その結果、電源投入検出フラグＰＲはローレベルになる。電源投入検出フラグＰＲをローレベルにリセットすることにより、上記の電源投入を伴うリセット処理が終了したことを記録することができる。電源投入検出フラグＰＲは、例えば、電源投入を伴うリセット処理を行うためのフラグである。
【００３２】
ステップＳ８０４では、ＣＰＵ４０２は、電源投入検出フラグＰＲがローレベルであるので電源スイッチＳＷによる電源投入操作を検出せず、電源投入未検出状態処理を行う。すなわち、ＣＰＵ４０２は、リセット信号が入力されると、電源投入を伴わないリセット処理を行う。例えば、リセット前のセキュリティ状態を継続する処理を行う。
【００３３】
以上のように、ＣＰＵ４０２は、リセット信号が入力されると、図８の処理を行う。マイクロコントローラ４０１のリセットには、電源スイッチＳＷにより電源投入に伴うリセット処理と、電源投入を伴わないリセット処理の２種類がある。
【００３４】
ＣＰＵ４０２は、電源投入検出フラグＰＲに応じた処理を行う。例えば、ＣＰＵ４０２は、リセット信号を入力すると、電源投入検出フラグＰＲがハイレベルであるときにはステップＳ８０２で電源投入を伴うリセット処理を行い、電源投入検出フラグＰＲがローレベルであるときにはステップＳ８０４で電源投入を伴わないリセット処理を行う。
【００３５】
ＣＰＵ４０２は、リセット信号が入力されると、電源投入検出フラグＰＲに応じたリセット処理を行う。例えば、ＣＰＵ４０２は、ハイレベルの電源投入検出フラグＰＲを入力するとステップＳ８０２でセキュリティをオンにする処理を行い、ローレベルの電源投入検出フラグＰＲを入力するとステップＳ８０４でリセット前のセキュリティ状態を継続する処理を行う。
【００３６】
ステップＳ８０２では、ＣＰＵ４０２は、セキュリティオンの処理を行う。例えば、ＣＰＵ４０２は、非権限者がマイクロコントローラ４０１の内部メモリを読み出すことを防止するセキュリティ機能を有効にし、パスワード入力をユーザに促す処理を行う。適正なパスワードが入力された場合のみ、ＣＰＵ４０２は内部メモリの読み出しを許可する。
【００３７】
また、ステップＳ８０４では、ＣＰＵ４０２は、リセット前のセキュリティ状態を継続する処理を行う。例えば、リセット前にセキュリティが解除されていた場合、ＣＰＵ４０２は、リセット後にパスワード入力をユーザに促さずに、内部メモリの読み出しを許可する。
【００３８】
以上のように、ＣＰＵ４０２は、リセット信号が入力されると、電源投入検出フラグＰＲに応じたリセット処理を行う。具体的には、ＣＰＵ４０２は、データＱ及び固定値ＡＡが不一致であることを示す電源投入検出フラグＰＲを入力するとセキュリティをオンにする処理を行い、データＡ及び固定値ＡＡが一致することを示す電源投入検出フラグＰＲを入力するとリセット前のセキュリティ状態を継続する処理を行う。
【００３９】
本実施形態の複数ビットフリップフロップ回路１０１及び比較器１０２を含む電源投入検出回路４０３はデジタル回路（論理回路）で構成することができる。デジタル回路は、ＨＤＬ（ハードウェア記述言語）を用いて回路設計を行い、論理合成することで様々なプロセスルールへの変換が容易である。デジタル回路の電源投入検出回路４０３は、アナログ回路に比べて、開発期間、開発コスト及び／又は回路規模を低減することができる。
【００４０】
電源投入検出回路４０３は、デジタル回路で構成できるので、アナログ回路に比べ、半導体のプロセスルールへの互換性に優れる。また、電源投入検出回路４０３は、回路構成が簡単なため、開発期間、開発コスト、回路規模への影響が小さく、簡易的に電源投入検出の機能を実現できる。例えば、デジタル回路の電源投入検出回路４０３は、アナログ回路に比べ、開発期間ではおよそ１／２０程度、回路規模では面積比でおよそ１／８程度となる。
【００４１】
なお、上記実施形態は、何れも本発明を実施するにあたっての具体化の例を示したものに過ぎず、これらによって本発明の技術的範囲が限定的に解釈されてはならないものである。すなわち、本発明はその技術思想、又はその主要な特徴から逸脱することなく、様々な形で実施することができる。
【図面の簡単な説明】
【００４２】
【図１】本発明の実施形態による電源投入検出回路の構成例を示す図である。
【図２】電圧検出回路を有するマイクロコントローラの構成例を示す図である。
【図３】図２のマイクロコントローラの動作例を示すタイミングチャートである。
【図４】本発明の実施形態による電源投入検出回路を有するマイクロコントローラの構成例を示す図である。
【図５】図１の電源投入検出回路の構成例を示す回路図である。
【図６】図５のフリップフロップ回路の構成例を示す回路図である。
【図７】電源投入検出回路の処理を示すフローチャートである。
【図８】ＣＰＵの処理を示すフローチャートである。
【符号の説明】
【００４３】
１０１  複数ビットフリップフロップ回路
１０２  比較器
１０３  インバータ
４０１  マイクロコントローラ
４０２  ＣＰＵ
４０３  電源投入検出回路
【図１】
2010004374.tif 000003
【図２】
2010004374.tif 000004
【図３】
2010004374.tif 000005
【図４】
2010004374.tif 000006
【図５】
2010004374.tif 000007
【図６】
2010004374.tif 000008
【図７】
2010004374.tif 000009
【図８】
2010004374.tif 000010