(第1実施形態)
本発明の第1実施形態について説明する。図1は、本実施形態にかかるマイクロコンピュータのブロック図であり、この図に基づいて説明する。なお、本実施形態のマイクロコンピュータは、第1クロック信号と、当該第1クロック信号より周期の長い第2クロック信号をカウントすることにより時間計測を行うものであり、例えば、スマートエントリ(登録商標)システムを備えた車両に搭載され、ECU等に供給されるクロック信号と同じクロック信号をカウントすることにより時間計測を行うものとして利用されると好適である。すなわち、このような車両では、例えば、駐車中であってもユーザが車両に接近したことを無線検知し、ドアロック解除等の制御を行う必要があるが、常時ユーザからの信号を監視する期間とすると消費電力が増加する。このため、マイクロコンピュータにより時間計測を行って、定期的に監視期間を間欠作動させることにより、言い換えると、マイクロコンピュータと同様に通常状態とスリープ状態とを交互に行うことにより、消費電力の低減を図ることができるためである。
図1に示されるように、本実施形態のマイクロコンピュータは、クロックセレクタ10、第1〜第3切り換え信号生成部30〜50、第1〜第3セレクタ60〜80および加算器90を備えた構成とされている。
クロックセレクタ10は、外部に設けられた発振回路で生成された高速クロック信号および当該高速クロック信号より周期が長い低速クロック信号が入力されると共に、ローレベルまたはハイレベルのクロック切り換え信号が入力され、クロック切り換え信号に基づいて、高速クロック信号および低速クロック信号のうちいずれか一方を出力するものである。なお、本実施形態では、高速クロック信号が本発明の第1クロック信号に相当し、低速クロック信号が本発明の第2クロック信号に相当している。また、本実施形態では、高速クロック信号は周期が1msとされており、低速クロック信号は周期が5msとされている。
クロックセレクタ10は、通常、クロック切り換え信号がハイレベルのときには高速クロック信号を選択して出力すると共に、クロック切り換え信号がローレベルのときには低速クロック信号を選択して出力する。そして、クロック切り換え信号が切り換わると、クロック切り換え信号が切り換わった後から高速クロック信号または低速クロック信号と同じ信号である補正クロック信号を1パルス分出力した後、切り換わった後のクロック信号を出力する。以下に、本実施形態のクロックセレクタ10について説明する。また、以下では、補正クロック信号が出力される直前のクロック信号の1周期が経過した時点から、補正クロック信号が出力された直後のクロック信号が出力される時点までの期間に相当する期間を補正期間として説明する。
図2(a)は本実施形態にかかるクロックセレクタ10の回路図であり、図2(b)はクロックセレクタ10のタイミングチャートである。
図2(a)に示されるように、クロックセレクタ10は、高速クロック信号の立ち上がりで作動するフリップフロップ11、高速クロック信号の立ち下がりで作動するフリップフロップ12、低速クロック信号の立ち上がりで作動するフリップフロップ13、低速クロック信号の立ち下がりで作動するフリップフロップ14と、四個のANDゲート15〜18、NOTゲート19およびORゲート20を備えた構成とされている。以下では、フリップフロップのことを単にFFと記載して説明する。
FF12のQN出力端子はANDゲート17の一方の入力端子に備えられており、FF14のQN出力端子はANDゲート15の一方の入力端子に備えられている。また、ANDゲート16は、FF12のQ出力端子が一方の入力端子に備えられ、高速クロック信号が他方の入力端子から入力されるようになっており、ANDゲート18は、FF14からのQ出力端子が一方の入力端子に備えられ、低速クロック信号が他方の入力端子に入力にされるようなっている。そして、ORゲート20は、ANDゲート16の出力端子が一方の入力端子に備えられていると共に、ANDゲート18の出力端子が他方の入力端子に備えられている。
このようなクロックセレクタ10は、図2(b)に示されるように、クロック切り換え信号がハイレベルであるときには、高速クロック信号を選択して出力する。そして、時点T1にてクロック切り換え信号がハイレベルからローレベルに切り換わると、FF11およびFF12が作動してFF12のQN出力がハイレベルになった後であって、かつFF13およびFF14が作動してFF14からANDゲート18にハイレベルの信号が入力されるようになった後、低速クロック信号を出力する。
すなわち、クロックセレクタ10は、時点T1にてクロック切り換え信号がハイレベルからローレベルに切り換わると、クロック切り換え信号が切り換わった後から高速クロック信号である補正クロック信号を1パルス分出力すると共に、補正クロック信号の立ち上がり時点T2から低速クロック信号の1周期より長い時間が経過した時点T6から低速クロック信号を出力する。また、クロック切り換え信号がローレベルからハイレベルに切り換わるときには、クロック切り換え信号がハイレベルからローレベルに切り換わるときと反対に、低速クロック信号である補正クロック信号を1パルス分出力すると共に、補正クロック信号の立ち上がり時点から高速クロック信号の1周期より長い時間が経過した後、高速クロック信号を出力する。
次に、このようなクロックセレクタ10を用いた場合の補正期間について説明する。クロック切り換え信号がハイレベルからローレベルに切り換わったときの補正期間は、補正クロック信号が出力される直前のクロック信号の1周期が経過した時点T2から、補正クロック信号が出力された直後のクロック信号が出力される時点T6までの期間に相当する期間である。すなわち、時点T2から時点T3までの補正クロック信号である高速クロック信号の半周期分の期間と、時点T3からT4までの期間と、時点T4から時点T6までの低速クロック信号の1周期分の期間との和となる。また、時点T3から時点T4までの期間は、クロック切り換え信号が何度も切り換わるものとすると、平均して低速クロック信号の半周期分の期間とすることができる。したがって、クロック切り換え信号がハイレベルからローレベルに切り換わったときの補正期間は、0.5×(高速クロック信号の周期)+1.5×(低速クロック信号の周期)で示すことができる。
同様に、クロック切り換え信号がローレベルからハイレベルに切り換わったときには、補正クロック信号である低速クロック信号の半周期分の期間と、平均すると高速クロック信号の半周期分となる期間と、高速クロック信号の1周期分の期間との和となる。したがって、クロック切り換え信号がローレベルからハイレベルに切り換わったときの補正期間は、0.5×(低速クロック信号の周期)+1.5×(高速クロック信号の周期)で示される。
また、図1に示されるように、第1切り換え信号生成部30は第1セレクタ60に第1切り換え信号を入力するものであり、第2切り換え信号生成部40は第2セレクタ70に第2切り換え信号を入力するものであり、第3切り換え信号生成部50は第3セレクタ80に第3切り換え信号を入力するものである。図3(a)〜図5(a)は図1に示す第1〜第3切り換え信号生成部30〜50の回路図であり、図3(b)〜図5(b)は図3(a)〜図5(a)に示す第1〜第3切り換え信号生成部30〜50のタイミングチャートである。
第1切り換え信号生成部30は、図3(a)に示されるように、高速クロック信号の立ち上がりで作動するFF31、高速クロック信号の立ち下がりで作動するFF32、NOTゲート33およびANDゲート34を備えた構成とされている。具体的には、ANDゲート34の一方の入力端子にNOTゲート33の出力端子が備えられ、ANDゲート34の他方の入力端子にFF32のQ出力端子が備えられている。そして、クロック切り換え信号がNOTゲート33を介してANDゲート34の一方の入力端子に入力されると共に、クロック切り換え信号がFF31、32を介してANDゲート33の他方の入力端子に入力されるようになっている。このような第1切り換え信号生成部30は、高速クロック信号およびクロック切り換え信号に基づいて、ハイレベル、またはローレベルの第1切り換え信号を出力する。以下に、第1切り換え信号生成部30の作動について簡単に説明する。
図3(b)に示されるように、FF32のQ出力端子は、クロック切り換え信号がハイレベルからローレベルに切り換わる時点T1以前では、クロック切り換え信号がハイレベルであるためハイレベルの信号を出力する。そして、時点T1にて、クロック切り換え信号がハイレベルからローレベルに切り換わると、時点T1後に高速クロック信号が立ち上がった後に立ち下がる時点T3までハイレベルの信号を出力し、時点T3以後にローレベルの信号を出力する。
したがって、第1切り換え信号生成部30は、時点T1以前のクロック切り換え信号がハイレベルのときは、ローレベルの第1切り換え信号を出力する。そして、時点T1にてクロック切り換え信号がハイレベルからローレベルに切り換わった後から時点T3のFF32のQ出力端子からローベルの信号が出力されるまで、ハイレベルの第1切り換え信号を出力し、時点T3以後では再びローレベルの第1切り換え信号を出力する。言い換えると、第1切り換え信号生成部30は、時点T1から時点T3の期間以外では、ローレベルの信号を出力する。
第2切り換え信号生成部40は、図4(a)に示されるように、低速クロック信号の立ち上がりで作動するFF41、低速クロック信号の立ち下がりで作動するFF42、NOTゲート43およびANDゲート44を備えた構成とされている。具体的には、ANDゲート44の一方の入力端子にクロック切り換え信号が入力され、ANDゲート44の他方の入力端子にFF42のQ出力端子がNOTゲート43を介して備えられている。そして、クロック切り換え信号がANDゲート44の一方の入力端子に入力されると共に、クロック切り換え信号がFF41、42およびNOTゲート43を介してANDゲート44の他方の入力端子に入力されるようになっている。このような第2切り換え信号生成部40は、低速クロック信号およびクロック切り換え信号に基づいて、ハイレベル、またはローレベルの第2切り換え信号を出力する。以下に、2切り換え信号生成部40の作動について簡単に説明する。
図4(b)に示されるように、FF42のQ出力端子は、クロック切り換え信号がローレベルからハイレベルに切り換わる時点T11以前では、クロック切り換え信号がローレベルであるためローレベルの信号を出力する。そして、時点T11にて、クロック切り換え信号がローレベルからハイレベルに切り換わると、時点T11後に低速クロック信号が立ち上がった後に立ち下がる時点T13までローレベルの信号を出力し、時点T13以後にハイレベルの信号を出力する。
したがって、第2切り換え信号生成部40は、時点T11以前のクロック切り換え信号がローレベルのときは、ローレベルの第1切り換え信号を出力する。そして、時点T11にてクロック切り換え信号がローレベルからハイレベルに切り換わった後から時点T13のFF42のQ出力端子からハイベルの信号が出力されるまで、ハイレベルの第2切り換え信号を出力し、時点T13以後では再びローレベルの第2切り換え信号を出力する。言い換えると、第2切り換え信号生成部40は、時点T11から時点T13の期間以外では、ローレベルの信号を出力する。
第3切り換え信号生成部50は、図5(a)に示されるように、低速クロック信号の立ち上がりで作動するFF51と、低速クロック信号の立ち下がりで作動するFF52とを備えた構成されており、低速クロック信号とクロック切り換え信号に基づいて、ハイレベル、またはローレベルの第3切り換え信号を出力する。以下に、第3切り換え信号生成部50の作動について簡単に説明する。
図5(b)に示されるように、第3切り換え信号生成部50は、クロック切り換え信号がハイレベルからローレベルに切り換わる時点T1以前では、クロック切り換え信号がハイレベルであるためハイレベルの第3切り換え信号を出力する。そして、時点T1にて、クロック切り換え信号がハイレベルからローレベルに切り換わると、時点T1後に低速クロック信号が立ち上がった後に立ち下がる時点T5までハイレベルの第3切り換え信号を出力し、時点T5以後にローレベルの第3切り換え信号を出力する。また、時点T5からクロック切り換え信号がローレベルからハイレベルに切り換わる時点T11の期間では、クロック切り換え信号がローレベルであるためローレベルの第3切り換え信号を出力する。そして、時点T11にて、クロック切り換え信号がローレベルからハイレベルに切り換わると、時点T11後に低速クロック信号が立ち上がった後に立ち下がる時点T14までローレベルの第3切り換え信号を出力し、時点T14以後にハイレベルの第3切り換え信号を出力する。
また、図1に示されるように、第1〜第3セレクタ60〜80は、インクリメント値を示す信号が複数入力され、第1〜第3切り換え信号30〜50から入力される切り換え信号に基づいていずれか1つのインクリメント値を示す信号を選択して出力するものである。
第1セレクタ60は、高速クロック信号の周期に対応する高速クロック用インクリメント値を示す信号およびクロック切り換え信号がハイレベルからローレベルに切り換わった後の補正期間に対応する第1補正クロック用インクリメント値を示す信号と、第1切り換え信号生成部30から第1切り換え信号が入力される。そして、第1切り換え信号がローレベルのときに高速クロック用インクリメント値を示す信号を出力し、第1切り換え信号がハイレベルのときに第1補正クロック用インクリメント値を示す信号を出力する。なお、クロック切り換え信号がハイレベルからローレベルに切り換わった後の補正期間とは、上記のように、補正クロック信号が出力される直前のクロック信号が高速クロック信号であり、補正クロック信号が出力された直後のクロック信号が低速クロック信号であるときの補正期間である。
第2セレクタ70は、低速クロック信号の周期に対応する低速クロック用インクリメント値を示す信号およびクロック切り換え信号がローレベルからハイレベルに切り換わったときの補正期間に対応する第2補正クロック用インクリメント値を示す信号と、第1切り換え信号生成部40から第2切り換え信号が入力される。そして、第2切り換え信号がローレベルのときに低速クロック用インクリメント値を示す信号を出力し、第2切り換え信号がハイレベルのとき第2補正クロック用インクリメント値を示す信号を出力する。なお、クロック切り換え信号がローレベルからハイレベルに切り換わった後の補正期間とは、上記のように、補正クロック信号が出力される直前のクロック信号が低速クロック信号であり、補正クロック信号が出力された直後のクロック信号が高速クロック信号であるときの補正期間である。
また、本実施形態では、上記インクリメント値は期間(周期)に対応するものとされており、1msに対しして1とされている。すなわち、高速クロック用インクリメント値は1、低速クロック用インクリメント値は5とされている。また、上記のように、クロック切り換え信号がハイレベルからローレベルに切り換わったときの補正期間は、0.5×(高速クロック信号の周期)+1.5×(低速クロック信号の周期)で示されるため、この期間は8msとなる。したがって、第1補正クロック用インクリメント値は8とされている。同様に、クロック切り換え信号がローレベルからハイレベルに切り換わったときの補正期間は、0.5×(低速クロック信号の周期)+1.5×(高速クロック信号の周期)で示されるため、この期間は4msとなる。したがって、第2補正クロック用インクリメント値は4とされている。
また、第3セレクタ80は、第1セレクタ60からの出力および第2セレクタ70からの出力と、第3切り換え信号生成部50から第3切り換え信号が入力され、第3切り換え信号がハイレベルのときに第1セレクタ60からの入力を出力し、第3切り換え信号がローレベルのとき第2セレクタ70からの入力を出力する。すなわち、高速クロック用インクリメント値、低速クロック用インクリメント値、第1補正クロック用インクリメント値、第2補正クロック用インクリメント値を示す信号のいずれか一つの信号を出力する。
加算器90は、レジスタ91と接続されると共に、クロックセレクタ10から出力されるクロック信号と、第3セレクタ80から出力されるインクリメント値を示す信号が入力される。そして、クロック信号の立ち上がりに同期して、レジスタ91に記憶されているカウント値に、高速クロック用インクリメント値、低速クロック用インクリメント値、第1補正クロック用インクリメント値、第2補正クロック用インクリメント値のいずれかの値を加算し、加算した値をレジスタに記憶させる。
レジスタ91は、加算器90にて加算されたカウント値を記憶しておくものであり、本実施形態では、LSB(least significant bit)が1msとされている。また、レジスタ91は、図示しないALUやプロセッサ等の外部機器とバスを介して接続されており、外部機器とデータの送受信が可能となっている。
次に、本実施形態の作動について説明する。まず、クロック切り換え信号がハイレベルからローレベルに切り換わるとき、言い換えるとマイクロコンピュータが通常状態からスリープ状態に切り換わるときの作動について説明する。図6は、クロック切り換え信号がハイレベルからローレベルに切り換わるときのマイクロコンピュータのタイミングチャートである。なお、本実施形態では、定期的にクロック切り換え信号が切り換わるものとして説明する。
図6に示されるように、クロック切り換え信号がハイレベルである時点T1以前では、クロックセレクタ10は、高速クロック信号を加算器90に入力する。第1セレクタ60は、第1切り換え信号生成部30からローレベルの第1切り換え信号が入力されるため、高速クロック用インクリメント値を示す信号を第3セレクタ80に入力する。また、第3セレクタ80は、第3切り換え信号生成部50からハイレベルの第3切り換え信号が入力されるため、第1セレクタ60からの入力である高速クロック用インクリメント値を示す信号を加算器90に入力する。
以上より、時点T1以前では、加算器90は、クロックセレクタ10から高速クロック信号が入力されると共に、第3セレクタ80から高速クロック用インクリメント値を示す信号が入力されるため、高速クロック信号の立ち上がりに同期してレジスタ91に記憶されているカウント値に対して高速クロック用インクリメント値を加算する。
次に、時点T1にてクロック切り換え信号がハイレベルからローレベルに切り換わると、クロックセレクタ10は、クロック切り換え信号が切り換わった後から高速クロック信号である補正クロック信号を1パルス分加算器90に入力した後、時点T6から低速クロック信号を加算器90に入力する。第1セレクタ60は、時点T1から補正クロック信号が立ち下がる時点T3の期間では第1切り換え信号生成部30からハイレベルの第1切り換え信号が入力されるため、時点T1から時点T3の期間では、第1補正クロック用インクリメント値を示す信号を第3セレクタ80に入力する。また、第3セレクタ80は、時点T1以前から時点T5までは第3切り換え信号生成部50からハイレベルの第3切り換え信号が入力されるため、時点T1から時点T3の期間では、第1セレクタ60からの入力である第1補正クロック用インクリメント値を示す信号を加算器90に入力する。
以上より、時点T1から時点T3の期間は、加算器90は、クロックセレクタ10から高速クロック信号である補正クロック信号が入力されると共に、第3セレクタ80から第1補正クロック用インクリメント値を示す信号が入力されるため、補正クロック信号の立ち上がりに同期してレジスタ91に記憶されているカウント値に対して第1補正クロック用インクリメント値を加算する。
そして、時点T5以降では、第3セレクタ80は、第3切り換え信号生成部50からローレベルの第3切り換え信号が入力されるため、第2セレクタ70から入力される信号を加算器90に入力する。第2セレクタ70は、上記のように、時点T11から時点T13の期間以外では第2切り換え信号生成部40からローレベルの第2切り換え信号が入力されるため、低速クロック用インクリメント値を示す信号を第3セレクタ80に入力する。
したがって、加算器90は、時点T5以降では第3セレクタ80から低速クロック用インクリメント値を示す信号が入力され、時点T6以降からクロックセレクタ10から低速クロック信号が入力されるため、低速クロック信号の立ち上がりに同期してレジスタ91に記憶されているカウント値に対して低速クロック用インクリメント値を加算する。
続いて、クロック切り換え信号がローレベルからハイレベルに切り換わるとき、言い換えるとマイクロコンピュータがスリープ状態から通常状態に切り換わるときの作動について説明する。図7はクロック切り換え信号がローレベルからハイレベルに切り換わるときのマイクロコンピュータのタイミングチャートである。
図7に示されるように、クロック切り換え信号がローレベルである時点T11以前では、クロックセレクタ10は、低速クロック信号を加算器90に入力する。第2セレクタ70は、第2切り換え信号生成部40からローレベルの第2切り換え信号が入力されるため、低速クロック用インクリメント値を示す信号を第3セレクタ80に入力する。また、第3セレクタ80は、第3切り換え信号生成部50からローレベルの第3切り換え信号が入力されるため、第2セレクタ70からの入力である低速クロック用インクリメント値を示す信号を加算器90に入力する。
以上より、時点T11以前では、加算器90は、クロックセレクタ10から低速クロック信号が入力されると共に、第3セレクタ80から低速クロック用インクリメント値を示す信号が入力されるため、低速クロック信号の立ち上がりに同期してレジスタ91に記憶されているカウント値に対して低速クロック用インクリメント値を加算する。
次に、時点T11にて、クロック切り換え信号がローレベルからハイレベルに切り換わると、クロックセレクタ10は、クロック切り換え信号が切り換わった後から低速クロック信号である補正クロック信号を1パルス分加算器90に入力した後、時点T14から高速クロック信号を加算器90に入力する。第2セレクタ70は、時点T11から補正クロック信号が立ち下がる時点T13まで第2切り換え信号生成部40からハイレベルの第2切り換え信号が入力されるため、時点T11から時点T13の期間では、第2補正クロック用インクリメント値を示す信号を第3セレクタ80に入力する。また、第3セレクタ80は、時点T11以前から時点T13までは第3切り換え信号生成部50からローレベルの第3切り換え信号が入力されるため、時点T11から時点T13の期間では、第2セレクタ70からの入力である第2補正クロック用インクリメント値を示す信号を加算器90に入力する。
以上より、時点T11から時点T13の期間は、加算器90は、クロックセレクタ10から低速クロック信号である補正クロック信号が入力されると共に、第3セレクタ80から第2補正クロック用インクリメント値を示す信号が入力されるため、補正クロック信号の立ち上がりに同期してレジスタ91に記憶されているカウント値に対して第2補正クロック用インクリメント値を加算する。
そして、時点T13以降では、第3セレクタ80は、第3切り換え信号生成部50からハイレベルの第3切り換え信号が入力されるため、第1セレクタ60から入力される信号を加算器90に入力する。第1セレクタ60は、上記のように、時点T1から時点T3の期間以外では、第1切り換え信号生成部30からローレベルの第1切り換え信号が入力されるため、高速クロック用インクリメント値を示す信号を第3セレクタ80に入力する。
したがって、加算器90は、時点T13以降では第3セレクタ80から高速クロック用インクリメント値を示す信号が入力され、時点T14以降からクロックセレクタ10から高速クロック信号が入力されるため、高速クロック信号の立ち上がりに同期してレジスタ91に記憶されているカウント値に対して高速クロック用インクリメント値を加算する。
以上説明したように、本実施形態のマイクロコンピュータでは、クロック切り換え信号が切り換わると、すなわち通常状態とスリープ状態とが切り換わると、加算器90には、切り換わる前の信号と同じ信号である補正クロック信号が1パルス分加算器90に入力された後、切り替わった後のクロック信号が加算器90に入力される。そして、加算器90では、高速クロック信号に対して高速クロック用インクリメント値を加算すると共に、低速クロック信号に対して低速クロック用インクリメント値を加算し、補正クロック信号に対して、補正クロック信号が出力される直前のクロック信号の1周期が経過した時点から、補正クロック信号が出力された直後のクロック信号が出力される時点までの期間に相当する期間に対応するインクリメント値を加算している。このため、期間を重複してカウントすることを抑制することができ、実際の経過時間との誤差が発生することを抑制することができる。
また、本実施形態のマイクロコンピュータでは、1つの加算器で高速クロック信号および低速クロック信号のカウントを連続して行っていると共に、各信号に対してそれぞれ期間(周期)に対応したインクリメント値を加算している。このため、高速クロック信号をカウントする第1カウンタ、低速クロック信号をカウントする第2カウンタ、第1カウンタおよび第2カウンタのカウント値から経過時間を演算するプロセッサを備えた従来のマイクロコンピュータ(以下、単に従来のマイクロコンピュータという)と比較して、以下の効果を得ることができる。
すなわち、従来のマイクロコンピュータでは、第1カウンタのLSBと第2カウンタのLSBとが異なっていたため、プロセッサは各カウンタに対して異なるLSB処理を行わなければならず、カウンタから経過時間を演算するのに所定の時間が必要であった。しかながら、本実施形態のマイクロコンピュータでは、各信号に対してそれぞれ期間(周期)に対応したインクリメント値を加算しているため、LSB処理を行う必要がなく、従来のマイクロコンピュータより経過時間の演算を早く行うことができる。言い換えると、LSB変換時のタイムラグを抑制することができる。
(第2実施形態)
本発明の第2実施形態について説明する。本実施形態のマイクロコンピュータは、第1実施形態に対して、クロックセレクタ10、第1〜第3切り換え信号生成部30〜50の構成を変更し、第1セレクタ60に高速クロック用インクリメント値を示す信号を入力すると共に第2補正クロック用インクリメント値を示す信号を入力し、第2セレクタ70に低速クロック用インクリメント値を示す信号を入力すると共に第1補正クロック用インクリメント値を示す信号を入力するようにしたものであり、その他に関しては上記第1実施形態と同様であるため、ここでは説明を省略する。図8は本実施形態にかかるマイクロコンピュータのブロック図である。
図8に示されるように、本実施形態のマイクロコンピュータは、第1セレクタ60に高速クロック用インクリメント値を示す信号が入力されると共に第2補正クロック用インクリメント値を示す信号が入力され、第2セレクタ70に低速クロック用インクリメント値を示す信号が入力されると共に第1補正クロック用インクリメント値を示す信号が入力されるようにしたものである。
まず、本実施形態にかかるクロックセレクタ10について説明する。図9(a)は本実施形態にかかるクロックセレクタ10の回路図であり、図9(b)はクロックセレクタ10のタイミングチャートである。
図9(a)に示されるように、本実施形態のクロックセレクタ10は、高速クロック信号の立ち下がりで作動するFF12、低速クロック信号の立ち下がりで作動するFF14と、四個のANDゲート15〜18、NOTゲート19およびORゲート20を備えた構成とされている。すなわち、上記第1実施形態のクロックセレクタ10と比較して、高速クロック信号の立ち上がりで作動するFF11と、低速クロック信号の立ち上がりで作動するFF13とを接続しない構成とされている。
このようなクロックセレクタ10では、図9(b)に示されるように、クロック切り換え信号がハイレベルであるときには、高速クロック信号を選択して出力する。そして、時点T21にてクロック切り換え信号がハイレベルからローレベルに切り換わると、FF12が作動してFF12のQN出力がハイレベルになった後であって、かつFF14が作動してFF14からANDゲート18にハイレベルの信号が入力されるようになった後、低速クロック信号を出力する。
すなわち、クロックセレクタ10は、時点T21にてクロック切り換え信号がハイレベルからローレベルに切り換わると、クロック切り換え信号が切り換わった後から低速クロック信号である補正クロック信号を1パルス分出力した後、時点T27から低速クロック信号を出力する。また、クロック切り換え信号がローレベルからハイレベルに切り換わるときには、クロック切り換え信号がハイレベルからローレベルに切り換わるときと反対に、高速信号である補正クロック信号を1パルス分出力した後、高速クロック信号を出力する。
次に、このようなクロックセレクタ10を用いた場合の補正期間について説明する。クロック切り換え信号がハイレベルからローレベルに切り換わったときの補正期間は、補正クロック信号が出力される直前のクロック信号の1周期が経過した時点T24から、補正クロック信号が出力された直後のクロック信号が出力される時点T27までの期間に相当する期間である。すなわち、時点T22から時点T23までの期間と、時点T23から時点T27までの低速クロック信号の1.5周期分の期間との和から、時点T22から時点T24までの高速クロック信号の半周期分の期間の差を演算した期間となる。また、時点T22から時点T23までの期間は、クロック切り換え信号が何度も切り換わるものとすると、平均して低速クロック信号の半周期分の期間とすることができる。したがって、クロック切り換え信号がハイレベルからローレベルに切り換わったときの補正期間は、1.5×(低速クロック信号の周期)−0.5×(高速クロック信号の周期)で示すことができる。
同様に、クロック切り換え信号がローレベルからハイレベルに切り換わったときには、時点T22から時点T23の期間に相当する平均すると高速クロック信号の半周期分となる期間と、時点T23から時点T27の期間に相当する高速クロック信号の1.5周期分の期間との和から、時点T22から時点T24の期間に相当する低速クロック信号の半周期分の期間の差を演算した期間とすることができる。したがって、クロック切り換え信号がローレベルからハイレベルに切り換わったときの補正期間は、1.5×(高速クロック信号の周期)−0.5×(低速クロック信号の周期)で示される。
次に、本実施形態の第1〜第3切り換え信号生成部30〜50について説明する。図10(a)〜図12(a)は、本実施形態における第1〜第3切り換え信号生成部30〜50の回路図であり、図10(b)〜図12(b)は図10(a)〜図12(a)に示す第1〜第3切り換え信号生成部30〜50のタイミングチャートである。
第1切り換え信号生成部30は、図10(a)に示されるように、上記第1実施形態に対して、FF31の代わりに高速クロック信号の立ち下がりで作動するFF35を追加したものである。そして、クロック切り換え信号がANDゲート34の一方の入力端子に入力されると共に、クロック切り換え信号がFF35、32およびNOTゲート33を介してANDゲート33の他方の入力端子に入力されるようになっている。以下に、この第1切り換え信号生成部30の作動について簡単に説明する。
図10(b)に示されるように、FF32のQ出力端子は、時点T31以前では、クロック切り換え信号がローレベルであるためローレベルの信号を出力する。そして、時点T31にて、クロック切り換え信号がローレベルからハイレベルに切り換わると、時点T31後に高速クロック信号が二回立ち下がる時点T33までローレベルの信号を出力し、時点T33以後にハイレベルの信号を出力する。
したがって、第1切り換え信号生成部30は、時点T31以前のクロック切り換え信号がローレベルのときは、ローレベルの第1切り換え信号を出力する。そして、時点T31にてクロック切り換え信号がローレベルからハイレベルに切り換わると、時点T31から時点T33のFF32のQ出力端子からハイベルの信号が出力されるまで、ハイレベルの第1切り換え信号を出力し、時点T33以後では再びローレベルの第1切り換え信号を出力する。言い換えると、本実施形態の第1切り換え信号生成部30は、時点T31から時点T33の期間以外では、ローレベルの信号を出力する。
第2切り換え信号生成部40は、図11(a)に示されるように、上記第1実施形態に対して、FF41の代わりに低速クロック信号の立ち下がりで作動するFF45を追加したものである。そして、クロック切り換え信号がNOTゲート43を介してANDゲート44の一方の入力端子に入力されると共に、クロック切り換え信号がFF45、42を介してANDゲート44の他方の入力端子に入力されるようになっている。以下に、この第2切り換え信号生成部40の作動について簡単に説明する。
図11(b)に示されるように、FF42のQ出力端子は、時点T21前では、クロック切り換え信号がハイレベルであるためハイレベルの信号を出力する。そして、時点T21にて、クロック切り換え信号がハイレベルからローレベルに切り換わると、時点T21後に低速クロック信号が二回立ち下がる時点T26までハイレベルの信号を出力し、時点T26以後にローレベルの信号を出力する。
したがって、第2切り換え信号生成部40は、時点T21以前のクロック切り換え信号がハイレベルのときは、ローレベルの第2切り換え信号を出力する。そして、時点T21にてクロック切り換え信号がハイレベルからローレベルに切り換わると、時点T21から時点T26のFF46のQ出力端子からローベルの信号が出力されるまで、ハイレベルの第2切り換え信号を出力し、時点T26以後では再びローレベルの第2切り換え信号を出力する。言い換えると、本実施形態の第2切り換え信号生成部40は、時点T21から時点T26の期間以外では、ローレベルの信号を出力する。
第3切り換え信号生成部50は、図12(a)に示されるように、上記第1実施形態に対して、FF51、52の代わりに、クロックセレクタ10から入力されるクロック信号の立ち下がりで作動するFF53を備えたものである。以下に、この第3切り換え信号生成部50の作動について簡単に説明する。
図12(b)に示されるように、第3切り換え生成部50は、時点T21以前では、クロック切り換え信号がハイレベルであるためハイレベルの第3切り換え信号を出力する。そして、時点T21にてクロック切り換え信号がハイレベルからローレベルに切り換わると、時点T21後にクロック信号が立ち下がる時点T22までハイレベルの第3切り換え信号を出力し、時点T22後にローレベルの第3切り換え信号を出力する。そして、時点T22からクロック切り換え信号がローレベルからハイレベルに切り換わる時点T31の期間では、クロック切り換え信号がローレベルであるためローレベルの第3切り換え信号を出力する。その後、時点T31にてクロック切り換え信号がローレベルからハイレベルに切り換わると、時点T31後のクロック信号が立ち下がる時点T32までローレベルの第3切り換え信号を出力し、時点T32以後にハイレベルの第3切り換え信号を出力する。
続いて、本実施形態にかかる第1〜第3セレクタ60〜80について説明する。
第1セレクタ60は、高速クロック用インクリメント値を示す信号および第2補正クロック用インクリメント値を示す信号と、第1切り換え信号生成部30から第1切り換え信号が入力される。そして、第1切り換え信号がローレベルのときに高速クロック用インクリメント値を示す信号を出力し、第1切り換え信号がハイレベルのときに第2補正クロック用インクリメント値を示す信号を出力する。
第2セレクタ70は、低速クロック用インクリメント値を示す信号および第1補正クロック用インクリメント値を示す信号と、第2切り換え信号生成部40から第2り換え信号が入力される。そして、第2切り換え信号がローレベルのときに低速クロック用インクリメント値を示す信号を出力し、第2切り換え信号がハイレベルのときに第2補正クロック用インクリメント値を示す信号を出力する。
第3セレクタ80は、第1セレクタ60からの出力および第2セレクタ70からの出力と、第3切り換え信号が入力され、第3切り換え信号がハイレベルのときに第1セレクタ60からの入力を出力し、第3切り換え信号がローレベルのときに第2セレクタ70からの入力を出力する。
次に、本実施形態の作動について説明する。まず、クロック切り換え信号がハイレベルからローレベルに切り換わるとき、言い換えるとマイクロコンピュータが通常状態からスリープ状態に切り換わるときの作動について説明する。図13はクロック切り換え信号がハイレベルからローレベルに切り換わるときのマイクロコンピュータのタイミングチャートである。
図13に示されるように、クロック切り換え信号がハイレベルである時点T21以前では、加算器90は、クロックセレクタ10から高速クロック信号が入力されると共に、第3セレクタ80から高速クロック用インクリメント値を示す信号が入力されるため、高速クロック信号の立ち上がりに同期してレジスタ91に記憶されているカウント値に対して高速クロック用インクリメント値を加算する。
次に、時点T21にてクロック切り換え信号がハイレベルからローレベルに切り換わると、クロックセレクタ10は、クロック切り換え信号が切り換わった後から低速クロック信号である補正クロック信号を1パルス分加算器90に入力した後、時点T27から低速クロック信号を加算器90に入力する。
第2セレクタ70は、時点T21から補正クロック信号が立ち下がる時点T26まで第2切り換え信号生成部40からハイレベルの第2切り換え信号が入力されるため、時点T21から時点T26の期間では、第1補正クロック用インクリメント値を示す信号を第3セレクタ80に入力する。また、第3セレクタ80は、時点T22以降では第3切り換え信号生成部50からローレベルの第3切り換え信号が入力されるため、時点T22以降では、第2セレクタ70からの入力である第2補正クロック用インクリメント値を示す信号を加算器90に入力する。
以上より、時点T22から時点T26の期間は、加算器90は、クロックセレクタ10から低速クロック信号である補正クロック信号が入力されると共に、第3セレクタ80から第2補正クロック用インクリメント値を示す信号が入力されるため、補正クロック信号の立ち上がりに同期してレジスタ91に記憶されているカウント値に対して第2補正クロック用インクリメント値を加算する。
そして、時点T26以降では、第2セレクタ70は、第2切り換え信号生成部40からローレベルの信号が入力されるため、低速クロック用インクリメント値を示す信号を第3セレクタ80に入力する。
このため、加算器90は、時点T26以降では第3セレクタ80から低速クロック用インクリメント値を示す信号が入力され、時点T27以降からクロックセレクタ10から低速クロック信号が入力されるため、低速クロック信号の立ち上がりに同期してレジスタ91に記憶されているカウント値に対して低速クロック用インクリメント値を加算する。
次に、クロック切り換え信号がハイレベルからローレベルに切り換わるとき、言い換えるとマイクロコンピュータがスリープ状態から通常状態に切り換わるときの作動について説明する。図14はクロック切り換え信号がローレベルからハイレベルに切り換わるときのマイクロコンピュータのタイミングチャートである。
図14に示されるように、クロック切り換え信号がローレベルである時点T31以前では、加算器90は、クロックセレクタ10から低速クロック信号が入力されると共に、第3セレクタ80から低速クロック用インクリメント値を示す信号が入力されるため、低速クロック信号の立ち上がりに同期してレジスタ91に記憶されているカウント値に対して低速クロック用インクリメント値を加算する。
次に、時点T31にて、クロック切り換え信号がローレベルからハイレベルに切り換わると、クロックセレクタ10は、クロック切り換え信号が切り換わった後から高速クロック信号である補正クロック信号を1パルス分加算器90に入力した後、時点T34から高速クロック信号を加算器90に入力する。
第1セレクタ60は、第1切り換え信号生成部30から時点T31から補正クロック信号が立ち下がる時点T33までハイレベルの第1切り換え信号が入力されるため、時点T31から時点T33の期間では、第2補正クロック用インクリメント値を示す信号を第3セレクタ80に入力する。また、第3セレクタ80は、時点T32以降では第3切り換え信号生成部50からハイレベルの第3切り換え信号が入力されるため、時点T32以降では、第1セレクタ60からの入力である第2補正クロック用インクリメント値を示す信号を加算器90に入力する。
以上より、時点T32から時点T33の期間は、加算器90は、クロックセレクタ10から高速クロック信号である補正クロック信号が入力されると共に、第3セレクタ80から第2補正クロック用インクリメント値を示す信号が入力されるため、補正クロック信号の立ち上がりに同期してレジスタ91に記憶されているカウント値に対して第2補正クロック用インクリメント値を加算する。
そして、時点T33以降では、第1セレクタ60は、第1切り換え信号生成部30からローレベルの信号が入力されるため、高速クロック用インクリメント値を示す信号を第3セレクタ80に入力する。
このため、加算器90は、時点T33以降では第3セレクタ80から高速クロック用インクリメント値を示す信号が入力され、時点T34以降からクロックセレクタ10から高速クロック信号が入力されるため、高速クロック信号の立ち上がりに同期してレジスタ91に記憶されているカウント値に対して高速クロック用インクリメント値を加算する。
以上説明したように、このようなマイクロコンピュータとしても、補正クロック信号に対して、補正クロック信号が出力される直前のクロック信号の1周期が経過した時点から、補正クロック信号が出力された直後のクロック信号が出力される時点までの期間に相当する期間に対応するインクリメント値を加算しており、上記第1実施形態と同様の効果を得ることができる。
(他の実施形態)
上記第1実施形態では、高速クロック信号の周期が1msであり、低速クロック信号の周期が5msであるため、高速クロック用インクリメント値を1とし、低速クロック用インクリメント値を5とし、第1補正クロック用インクリメント値が8、第2補正クロック用インクリメント値が4となるため、レジスタ91のLSBを1msとして説明した。しかしながら、第1補正クロック用インクリメント値や第2補正クロック用インクリメント値が整数として表示できない場合には、レジスタ91のLSBの値を外部機器等からの制御により適宜変更することが好ましい。例えば、高速クロック信号の周期が2msであり、低速クロック信号の周期が7msであり、高速クロック用インクリメント値を2、低速クロック用インクリメント値を7とした場合には、第1補正クロック用インクリメント値が11.5となり、第2補正クロック用インクリメント値が6.5となる。このような場合は、外部機器等を制御して、レジスタ91のLSBを、例えば、0.5msにするのが好ましい。
また、上記第1実施形態では、加算器90は、クロックセレクタ10から入力されるクロック信号の立ち上がりに同期して所定のインクリメント値を加算するものについて説明したが、例えば、クロックセレクタ10から入力されるクロック信号の立ち下がりに同期して所定のインクリメント値を加算するものとすることもできる。この場合は、第1、第2切り換え信号生成部30、40を、例えば、次のように構成すればよい。
すなわち、上記第1切り換え信号生成部30において、FF31とFF32の接続順序を反対にしてANDゲート34の他方の入力端子にFF31のQ出力端子を備えればよい。また、第2切り換え信号生成部40において、FF41とFF42の接続順序を反対にしてANDゲート44の他方の入力端子にFF41のQ出力端子を備えればよい。
同様に、上記第2実施形態においても、加算器90をクロック信号の立ち下がりに同期して所定のインクリメント値を加算するものとすることができ、この場合も第1〜第3切り換え信号生成部30〜50を適宜変更すればよい。
さらに、上記第1、第2実施形態で説明したクロックセレクタ10や第1〜第3切り換え信号生成部30〜50についても、もちろんこれらに限定されるものではなく、FFやANDゲート、NOTゲート等を適宜組み合わせることにより、変更可能である。
また、上記第1、第2実施形態においては、通常状態とスリープ状態とを定期的に切り換える場合について説明したが、もちろん、外部からの信号により不定期に通常状態に切り換わるような場合についても本発明は適用可能である。
そして、上記第1、第2実施形態において、例えば、通常状態からスリープ状態に切り替わった場合、すなわち、クロック切り換え信号がハイレベルからローレベルに切り替わった場合には、所定期間経過後に、クロックセレクタ10に低速クロック信号のみが入力されるようにしてもよい。