説明

マイクロコンピュータ

【課題】外部発振機能で発生したクロックの発振周波数の異常を確認することができるマイクロコンピュータを提供すること。
【解決手段】本発明の一態様に係るマイクロコンピュータは、発振回路101、サンプリング回路103、サンプリングクロック回路106、異常確認回路107を備える。発振回路101は、CPUのクロック周波数の第1クロックを固定振動子により発生させる。サンプリングクロック回路106は、第1クロックより低い周波数の第2クロックを出力する。サンプリング回路103は、第2クロックを用いて第1クロックの周期をカウントし、第1クロックの発振が安定したか否かを判定し、CPUクロック供給許可信号を出力する。異常確認回路107は、第2クロックの周期をカウントすることにより決定される所定の期間内において、第1クロックの発振異常が発生したか否かを判定する。

【発明の詳細な説明】
【技術分野】
【0001】
本発明は、マイクロコンピュータに関し、特に外部発振機能を搭載したマイクロコンピュータに関する。
【背景技術】
【0002】
マイクロコンピュータは、CPU及び周辺ハードウェアに供給されるクロックにより動作しており、クロックを供給するためにクロックを発生する回路を備えている。その中で外部発振機能は、マイクロコンピュータに接続された発振器を有し、外部からクロックを供給する。外部発振機能は、内部発振機能に比べノイズの影響を受けにくくなる。外部発振機能を用いる場合、発振器から確実に安定したクロックを供給することが重要である。
【0003】
特許文献1には、確実に発振が安定したことを検出してから、CPUへクロックを供給することにより、発振不安定時のCPUの暴走を防ぐ技術が記載されている。図6に、特許文献1に記載のクロック出力回路の構成を示す。
【0004】
図6に示すように、特許文献1に記載のクロック出力回路は、発振回路2、サンプリングクロック回路3、サンプリング回路4、CPUクロック選択回路5、CPU6、オートリセット回路7を備えている。
【0005】
発振回路2は、CPUの動作用の任意の周波数の発振クロックaを生成する。サンプリングクロック回路3は、発振回路2のパルス幅をカウントするための発振クロックaの周期に比べて短い周期のサンプリングクロックbを発生する。オートリセット回路7は、電源電圧の立ち上がりを検出してオートリセット信号eを出力する。
【0006】
サンプリング回路4には、発振クロックa、サンプリングクロックb及びオートリセット信号eが入力される。サンプリング回路4は、オートリセット信号eによって内部状態が初期化される。初期化完了後、サンプリング回路4は、サンプリングクロックbにより発振クロックaの周期をカウント計測し、予め設定したカウント値に等価な計測結果を得ると、すなわち発振回路2の発振が安定すると、CPUクロック供給許可信号cを出力する。
【0007】
CPUクロック選択回路5には、発振回路2から出力される発振クロックaとCPUクロック供給許可信号cとが入力される。CPUクロック選択回路5は、CPUクロック供給許可信号cが有効な時に発振クロックaをCPUクロックdとして出力する。CPU6は、CPUクロックdを入力として、これを動作クロックとして利用する。
【0008】
ここで、発振クロックaを発生する発振回路2は、発振精度は高いが発振成長に時間を要する水晶発振器などで構成する。また、サンプリングクロックbを発生するサンプリングクロック回路3は、発振精度は劣るが発振成長が発振開始直後直ちに完了する特徴を持つCR発振器などで構成する。
【0009】
図7は、サンプリング回路4の構成を示すブロック図である。図7に示すように、サンプリング回路4は、カウンタ13、一致回路14、モジュロレジスタ15、保持回路16から構成される。
【0010】
次に、図6のブロック図及び図8のタイミング波形図を参照して説明する。電源投入すると発振回路2及びサンプリングクロック回路3は、発振動作を開始する。この時、サンプリングクロック回路3において発生するサンプリングクロックbは直ちに発振周期が安定する。
【0011】
オートリセット回路7から出力するオートリセット信号eは、電源投入後、直ちにロウにセットされ、電源電圧の立ち上がりを検出してハイにリセットされる。オートリセット信号eがインアクティブハイにセットされると、図7のサンプリング回路4において、カウンタ13により発振クロックaのハイレベル期間、サンプリングクロックbのカウントが実行される。オートリセット信号eがロウレベルで、サンプリング回路4のカウント値がリセットされる。
【0012】
カウンタ13がサンプリングクロックbをカウントしたカウント値と、モジュロレジスタ15にあらかじめ設定したモジュロ値との一致を一致回路14で判定し、一致信号gを出力する。特許文献1に記載の例では、発振安定状態の検出精度を上げるため、一致信号gが出力されると同時にCPUクロック供給許可信号cを出力せずに、この一致信号gが2回発生した時点で発振が安定したと判断する構成となっている。
【0013】
一致信号gの出力回数は、保持回路16においてカウントされる。保持回路16におけるカウント値が当該保持回路16内にあらかじめ設定した値「2」に達したとき、保持回路16はCPUクロック供給許可信号cを出力する。
【0014】
この特許文献1に記載の例では、水晶発振器などの外部発振機能で発生したクロックが、特性の変化や劣化などによりあらかじめ設定した所定値以外の発振周波数で発振してしまった場合、それを確認する機能がない。あらかじめ設定した所定値で発振しなかった場合、CPUへクロックが供給されず、デッドロック状態になってしまう恐れがあるという問題を有している。
【先行技術文献】
【特許文献】
【0015】
【特許文献1】特開平8−179849号公報
【発明の概要】
【発明が解決しようとする課題】
【0016】
このように、特許文献1に記載の回路では、外部発振機能で発生したクロックの発振周波数の異常を確認することができないという問題がある。
【課題を解決するための手段】
【0017】
本発明の一態様に係るマイクロコンピュータは、CPUのクロック周波数の第1クロックを固定振動子により発生させる発振回路と、前記第1クロックより低い周波数の第2クロックを出力するサンプリングクロック回路と、前記第2クロックを用いて前記第1クロックの周期をカウントし、前記第1クロックの発振が安定したか否かを判定し、CPUクロック供給許可信号を出力するサンプリング回路と、前記第2クロックの周期をカウントすることにより決定される所定の期間内において、前記第1クロックの発振異常が発生したか否かを判定する異常確認回路とを備えるものである。これにより、発振回路から発生する第1クロックが所定の周波数で発振していないことを確認することができる。
【発明の効果】
【0018】
本発明によれば、外部発振機能で発生したクロックの発振周波数の異常を確認することができるマイクロコンピュータを提供することができる。
【図面の簡単な説明】
【0019】
【図1】実施の形態1に係るマイクロコンピュータの構成を示す図である。
【図2】実施の形態1に係るマイクロコンピュータの一部の構成を説明するブロック図である。
【図3】実施の形態1に係るマイクロコンピュータの動作を説明するためのタイミングチャートである。
【図4】実施の形態1に係るマイクロコンピュータの動作を説明するためのタイミングチャートである。
【図5】実施の形態2に係るマイクロコンピュータの構成を示す図である。
【図6】特許文献1に記載のクロック出力回路の構成を示す図である。
【図7】特許文献1に記載のクロック出力回路の一部の構成を説明するブロック図である。
【図8】特許文献1に記載のクロック出力回路の動作を説明するためのタイミングチャートである。
【発明を実施するための形態】
【0020】
実施の形態1.
本発明の実施の形態1に係るマイクロコンピュータについて、図1を参照して説明する。図1は、本実施の形態に係るマイクロコンピュータ100の構成を示す図である。図1に示すように、本実施の形態に係るマイクロコンピュータ100は、発振回路101、オートリセット回路102、サンプリング回路103、CPUクロック選択回路104、CPU105、サンプリングクロック回路106、異常確認回路107、アンド回路115を備える。
【0021】
発振回路101は、CPUの動作用の任意の周波数の発振クロックaを生成する。発振回路101は、発振精度は高いが、発振成長に時間を要する固定振動子である水晶発振器、セラミック発振器などで構成することができる。
【0022】
サンプリングクロック回路106は、発振回路101のパルス幅をカウントするための発振クロックaの周期に比べて長い周期のサンプリングクロックbを発生する。すなわち、サンプリングクロックbの周波数は、発振クロックaの周波数よりも低い。サンプリングクロック回路106としては、発振精度は劣るが発振成長が発振開始後ただちに完了するCR発振器、複数のインバータを用いたリングオシレータなどで構成することができる。
【0023】
オートリセット回路102は、電源電圧の立ち上がりを検出してオートリセット信号eを出力する。サンプリング回路103には、発振クロックa、サンプリングクロックb及びオートリセット信号eが入力される。サンプリング回路103は、オートリセット信号eによって内部状態が初期化される。
【0024】
初期化完了後、サンプリング回路103は、サンプリングクロックbを用いて発振クロックaの周期をカウントし、予め設定したモジュロ値に等価な計測結果(カウント値)を得ると、すなわち発振回路の発振が安定すると、CPUクロック供給許可信号cを出力する。
【0025】
なお、サンプリング回路103は、発振クロックaの周期をカウントしたカウント値が予め設定したモジュロ値の複数倍となったときにCPUクロック供給許可信号を出力してもよい。これにより、発振回路の発振がより安定した状態でCPUクロック供給許可信号を出力することができる。
【0026】
CPUクロック選択回路104には、発振回路101から出力される発振クロックaとCPUクロック供給許可信号cとが入力される。CPUクロック選択回路104は、CPUクロック供給許可信号cが有効な時に発振クロックaをCPUクロックdとして出力する。CPU105は、CPUクロックdを入力として、これを動作クロックとして利用する。
【0027】
異常確認回路107は、サンプリングクロックbの周期をカウントすることにより決定される所定の期間(発振異常を確認する確認期間)内において、発振クロックaの発振異常が発生したか否かを判定する。異常確認回路107には、サンプリングクロックb、CPUクロック供給許可信号c、オートリセット信号eが入力される。
【0028】
異常確認回路107は、この所定の期間内にCPUクロック供給許可信号cが出力されない場合に、第1クロックの発振異常が発生したと判定する。具体的には、異常確認回路107は、CPUクロック供給許可信号cが出力される前に、サンプリングクロックbの周期をカウントし予め設定したレジスタ値に等価な計測結果を得ると、オーバーフロー信号fを出力する。
【0029】
アンド回路115には、CPUクロック供給許可信号cの反転信号とオーバーフロー信号fとが入力される。アンド回路115は、CPUクロック供給許可信号cの反転信号と、オーバーフロー信号fとがいずれもハイレベルのときに、アラームフラグhを出力する。
【0030】
次に、図2を参照して、サンプリング回路103、異常確認回路107について詳細に説明する。図2は、本実施の形態に係るマイクロコンピュータ100の一部である、サンプリング回路103、異常確認回路107の構成を示す図である。
【0031】
図2に示すように、サンプリング回路103は、第1カウンタ108、第1一致回路109、モジュロレジスタ110、保持回路111を備える。また、異常確認回路107は、第2第2カウンタ112、第2一致回路113、レジスタ114を備える。
【0032】
第1カウンタ108には、発振クロックa及びサンプリングクロックbが入力される。第1カウンタ108は、オートリセット信号eがハイレベル期間の間において、発振クロックaのハイレベル期間のサンプリングクロックbのカウントを実行する。オートリセット信号eがロウレベルになると、第1カウンタ108でのカウントは実行されない。
【0033】
モジュロレジスタ110は、第1カウンタ108がカウントすべき値(モジュロ値)を記憶している。第1一致回路109は、第1カウンタ108のカウント値とモジュロレジスタ110のモジュロ値との一致を検出する。保持回路111は、第1一致回路109での一致の回数を保持し、この一致回数が所定の回数に達したときにCPUクロック供給許可信号cを出力する。
【0034】
第2カウンタ112には、サンプリングクロックb及びCPUクロック供給許可信号cが入力される。第2カウンタ112は、オートリセット信号eがハイレベル期間の間において、サンプリングクロックbをカウントする。また、CPUクロック供給許可信号cの入力に応じて、第2カウンタ112のカウント値はクリアされ、異常確認回路107の動作が停止される。レジスタ114は、第2カウンタ112がカウントすべき値(レジスタ値)を記憶している。第2一致回路113は、第2カウンタ112のカウント値とレジスタ114のレジスタ値との一致を検出し、所定の期間を決定する。
【0035】
また、第2一致回路113は、第2カウンタ112によるカウント値とレジスタ114に記憶されたレジスタ値との一致を検出した場合に、オーバーフロー信号fを出力する。
【0036】
ここで、図3、4を参照して、本実施の形態に係るマイクロコンピュータ100の動作について説明する。図3、4は、本実施の形態に係るマイクロコンピュータ100の動作を説明するための図である。
【0037】
図3は、予め設定した期間(発振異常を確認する確認期間)内に発振クロックaの発振周期の安定を確認できた場合のタイミングチャートを示す。図4は、予め設定した期間(発振異常を確認する確認期間)内に発振クロックaの発振周期の安定を確認できなかった場合のタイミングチャートを示す。
【0038】
電源を投入すると、発振回路101及びサンプリングクロック回路106から発振クロックa及びサンプリングクロックbがそれぞれ発振する。発振クロックaは、発振精度は高いが、発振成長に時間を要する水晶発振器などにより発生される。サンプリングクロックbは、発振精度は劣るが発振成長が発振開始後ただちに完了するCR発振器などにより発生される。
【0039】
オートリセット信号eがインアクティブハイにセットされると同時に第1カウンタ108が、発振クロックaのハイレベル期間のサンプリングクロックbの周期のカウントを始める。第1一致回路109は、第1カウンタ108がカウントしたサンプリングクロックbのカウント値と、モジュロレジスタ15に予め設定したモジュロ値との一致を判定し、一致した場合には一致信号gを出力する。カウント値とモジュロ値とが一致し、一致信号gが出力された場合に、発振クロックaの発振周期が安定していると判断される。
【0040】
また、オートリセット信号eがインアクティブハイにセットされると同時に、第2カウンタ112はサンプリングクロックbのカウントを開始する。そして、第2カウンタ112によりカウントされたサンプリングクロックbのカウント値と、予め設定したレジスタ114のレジスタ値との一致が第2一致回路113で判定される。
【0041】
このように、電源立ち上がり後、第2カウンタ112によりサンプリングクロックbの周期をカウントしたカウント値と、レジスタ114に記憶されるレジスタ値との一致を第2一致回路113で検出することにより、所定の時間を計測する。すなわち、電源が立ち上がってから、第2カウンタ112によりサンプリングクロックbの周期をカウントしたカウント値と、レジスタ114に記憶されるレジスタ値との一致が検出されるまでの期間が、発振異常を確認する確認期間となる。
【0042】
図3に示すように、第2一致回路113で第2カウンタ112のカウント値とレジスタ114のレジスタ値とが一致すると判定される前に、保持回路111により一致信号gの出力回数が予め設定した回数に達した場合、保持回路111はCPUクロック供給許可信号cを出力する。図3に示す例では一致信号gが4回出力された場合に、保持回路111からCPUクロック供給許可信号cが出力される。
【0043】
保持回路111から第2カウンタ112にCPUクロック供給許可信号cが入力されると、第2カウンタ112のカウント値はクリアされ、異常確認回路107の動作が停止される。
【0044】
アンド回路115は、CPUクロック供給許可信号cの反転信号がロウレベル、オーバーフロー信号fがロウレベルであるため、アラームフラグhを出力しない。このように、所定の確認期間内に、CPUクロック供給許可信号cが出力された場合には、水晶発振器の発振異常は発生していないと判断することができる。
【0045】
一方、図4に示す例では、確認期間内において、一度も一致信号gが出力されていない。図4に示すように、保持回路111により一致信号gの出力回数が予め設定した回数に達する前に、第2一致回路113で、第2カウンタ112のカウント値とレジスタ114のレジスタ値とが一致すると判定された場合、第2一致回路113は発振クロックaの発振異常であると判定し、オーバーフロー信号fを出力する。
【0046】
アンド回路115は、CPUクロック供給許可信号cの反転信号とオーバーフロー信号fとがハイレベルのときに、アラームフラグhを出力する。このように、所定の確認期間内に、CPUクロック供給許可信号cが出力されない場合には、水晶発振器の発振異常が発生していると判断することができる。
【0047】
このように、本実施の形態では、電源立ち上がり後、第2カウンタ112によりサンプリングクロックbの周期をカウントし、カウントした値とレジスタ114に予め設定したレジスタ値の一致を第2一致回路113で判定することで所定の時間を計測する。
【0048】
この所定時間内に、サンプリング回路103からCPUクロック供給許可信号cが出力されない場合、異常確認回路107によりオーバーフロー信号fが出力され、水晶発振器などの発振異常を確認することができる。これにより、水晶発振器の特性の変化や劣化による発振異常を確認することが可能となる。
CPUクロック供給許可信号cとオーバーフロー信号fとの出力をアンド回路115で判定し、アラームフラグhを出力することにより、水晶発振器の特性の変化や劣化による発振異常を確認することが可能となる。
【0049】
実施の形態2.
本発明の実施の形態2に係るマイクロコンピュータについて、図5を参照して説明する。図5は、本実施の形態に係るマイクロコンピュータ200の構成を示す図である。本実施の形態において、実施の形態1と同様の構成要素には、同一の符号を付し、説明を適宜省略する。
【0050】
図5に示すように、本実施の形態に係るマイクロコンピュータ200は、実施の形態1に係るマイクロコンピュータ100と同様の構成を備えている。本実施の形態に係るマイクロコンピュータ200が実施の形態1と異なる点は、CPU105から出力されたカウントストップ信号iがオートリセット回路102及び異常確認回路107に入力される点である。
【0051】
CPU105は、発振異常を確認する確認期間が経過した任意の時間に、カウントストップ命令を実行する。CPU105が実行するカウントストップ命令に応じて、発振回路101の発振が停止される。また、CPU105はカウントストップ信号iを出力する。カウントストップ信号iは、異常確認回路107のサンプリングクロックbのカウントを停止させるとともに、オートリセット回路102にカウントストップ情報を伝える。
【0052】
その後、カウントストップ命令の解除に応じて発振回路101が再起動すると、オートリセット回路102も再起動して、オートリセット信号eを出力する。サンプリング回路103は、オートリセット信号eにより初期化される。初期化完了後、サンプリング回路103は、実施の形態1で説明したように、発振回路101の出力が安定したか否かを判定する。また、異常確認回路107は、発振回路101の再起動に伴って再起動する。その後、異常確認回路107により発振回路101の発振異常が発生していないかが確認される。
【0053】
実施の形態1では電源投入後の発振異常を確認していたが、本実施の形態では電源投入後と共に、カウントストップ命令により発振回路101を停止した後、発振回路101を再起動させた場合の発振異常も検出することができる。
【0054】
以上説明したように、本発明によれば、発振成長がただちに完了する発振器の発振を用いたサンプリングクロックで予め設定した所定期間を計測し、発振異常を警告することができる。これにより、CPUのクロックの発振器として高精度の発振周波数を得られる水晶発振器等を利用する際に、水晶発振器などの外部発振のクロックが特性の変化や劣化などによりあらかじめ設定した所定値で発振しなかった場合でも、発振異常を確認することができる。
【0055】
なお、本発明は上記実施の形態に限られたものではなく、趣旨を逸脱しない範囲で適宜変更することが可能である。
【符号の説明】
【0056】
100 マイクロコンピュータ
101 発振回路
102 オートリセット回路
103 サンプリング回路
104 CPUクロック選択回路
105 CPU
106 サンプリングクロック回路
107 異常確認回路
108 第1カウンタ
109 第1一致回路
110 モジュロレジスタ
111 保持回路
112 第2カウンタ
113 第2一致回路
114 レジスタ
115 アンド回路
a 発振クロック
b サンプリングクロック
c CPUクロック供給許可信号
e オートリセット信号
f オーバーフロー信号
g 一致信号
h アラームフラグ
i カウントストップ信号

【特許請求の範囲】
【請求項1】
CPUのクロック周波数の第1クロックを固定振動子により発生させる発振回路と、
前記第1クロックより低い周波数の第2クロックを出力するサンプリングクロック回路と、
前記第2クロックを用いて前記第1クロックの周期をカウントし、前記第1クロックの発振が安定したか否かを判定し、CPUクロック供給許可信号を出力するサンプリング回路と、
前記第2クロックの周期をカウントすることにより決定される所定の期間内において、前記第1クロックの発振異常が発生したか否かを判定する異常確認回路と、
を備えるマイクロコンピュータ。
【請求項2】
前記異常確認回路は、前記所定の期間内において、前記CPUクロック供給許可信号が出力されない場合に、前記第1クロックの発振異常が発生したと判定する請求項1に記載のマイクロコンピュータ。
【請求項3】
前記異常確認回路は、
前記第2クロックの周期をカウントするカウンタと、
前記カウンタがカウントすべき値を記憶するレジスタと、
前記カウンタによるカウント値と前記レジスタに記憶された値との一致を検出することにより、前記所定の期間を決定する一致回路とを備える請求項1又は2に記載のマイクロコンピュータ。
【請求項4】
前記異常確認回路は、前記CPUクロック供給許可信号が前記カウンタに入力されるよりも前に、前記一致回路が前記カウンタによるカウント値と前記レジスタに記憶された値との一致を検出した場合に、前記第1クロックの発振異常が発生したと判定することを特徴とする請求項3に記載のマイクロコンピュータ。
【請求項5】
前記CPUクロック供給許可信号の入力に応じて前記カウンタのカウント値がクリアされることを特徴とする請求項3又は4に記載のマイクロコンピュータ。
【請求項6】
前記サンプリング回路は、前記第1クロックの周期をカウントしたカウント値が予め設定した値の複数倍となったときに前記CPUクロック供給許可信号を出力することを特徴とする請求項1〜5のいずれか1項に記載のマイクロコンピュータ。
【請求項7】
前記異常確認回路は、前記CPUからの前記カウントストップ信号に応じて前記第2クロックのカウントを停止し、前記発振回路の再起動に伴って再起動して前記第1クロックの発振異常が発生したか否かを判定することを特徴とする請求項1〜6のいずれか1項に記載のマイクロコンピュータ。
【請求項8】
電源電圧の立ち上がりを検出してオートリセット信号を出力するオートリセット回路をさらに備え、
前記サンプリング回路は、前記オートリセット信号により初期化された後、前記第1クロックの周期をカウントすることを特徴とする請求項1〜7のいずれか1項に記載のマイクロコンピュータ。
【請求項9】
前記オートリセット回路は、前記CPUからのカウントストップ信号により停止され、前記発振回路の再起動に伴って再起動し、前記オートリセット信号を再度出力することを特徴とする請求項8に記載のマイクロコンピュータ。
【請求項10】
前記固定振動子は、水晶振動器又はセラミック振動器であることを特徴とする請求項1〜8のいずれか1項に記載のマイクロコンピュータ。
【請求項11】
前記サンプリングクロック回路は、CR発振器又は複数のインバータを用いたリングオシレータを備えることを特徴とする請求項1〜9のいずれか1項に記載のマイクロコンピュータ。

【図1】
image rotate

【図2】
image rotate

【図3】
image rotate

【図4】
image rotate

【図5】
image rotate

【図6】
image rotate

【図7】
image rotate

【図8】
image rotate