(57)【要約】【課題】  待機モードから通常モードに速やかに復帰することができる半導体集積回路における上記待機モードでの消費電力の低減を図る。【解決手段】  自走モードと逓倍モードとを備えたクロック生成回路（１０）と、上記クロック生成回路によって生成されたクロック信号に同期動作可能な内部回路（４０）と、基準クロック信号を生成する発振回路（３０）と、通常モードと待機モードとの切り換えを制御可能な動作モード制御回路（２０）とを設ける。上記発振回路の発振動作が安定する前に上記自走モードによるクロック信号が生成されることにより、これに同期して内部回路が通常モードで動作することができ、待機モードから通常モードへの復帰時間が短縮される。そして上記待機モードにおいては、上記発振回路の上記発振動作が停止されることで消費電力が低減される。【選択図】        図１
2006285823.tif 000002
【特許請求の範囲】
【請求項１】
振動子を用いて基準クロック信号を生成する発振回路と、
内部論理回路により所定パルス幅のクロック信号を連続的に生成する自走モードと、上記基準クロック信号の周波数を逓倍することでクロック信号を生成する逓倍モードとを備えたクロック生成回路と、
上記クロック生成回路によって生成されたクロック信号に同期動作可能な内部回路と、
上記内部回路が上記クロック信号に同期して動作される通常モードと、上記発振回路の発振動作が停止される待機モードとの切り換えを制御可能な動作モード制御回路と、を含み、
上記動作モード制御回路は、上記待機モードでは、上記発振回路の上記発振動作を停止させ、上記待機モードから上記通常モードへ遷移させる事象を検知したとき、上記発振回路の上記発振動作を再開させるとともに、上記クロック生成回路を上記自走モードで動作させ、その後、上記自走モードから上記逓倍モードに切り換えるものである半導体集積回路。
【請求項２】
振動子を用いて基準クロック信号を生成する発振回路と、
内部論理回路により所定パルス幅のクロック信号を連続的に生成する自走モードと、上記基準クロック信号の周波数を逓倍することでクロック信号を生成する逓倍モードとを備えたクロック生成回路と、
上記クロック生成回路によって生成されたクロック信号に同期動作可能な内部回路と、
上記内部回路が上記クロック信号に同期して動作される通常モードと、上記発振回路の発振動作が停止される待機モードとの切り換えを制御可能な動作モード制御回路と、
上記内部回路と外部との間のシリアル通信を可能とするシリアル通信インタフェース回路と、を含み、
上記動作モード制御回路は、上記待機モードでは、上記発振回路の上記発振動作を停止させ、上記シリアル通信インタフェース回路において上記待機モードから上記通常モードへ遷移させる事象が検知されたとき、上記発振回路の上記発振動作を再開させるとともに、上記クロック生成回路を上記自走モードで動作させ、その後、上記自走モードから上記逓倍モードに切り換えるものである半導体集積回路。
【請求項３】
上記クロック生成回路は、上記自走モードのためのパルス発生と、上記逓倍モードのためのパルス発生とを実現可能なパルス発生回路と、
上記動作モード制御回路の制御に応じて、上記自走モードによるパルス発生と上記逓倍モードによるパルス発生とを選択可能な選択回路と、を含んで成る請求項１又は２記載の半導体集積回路。
【請求項４】
上記半導体集積回路は、上記クロック生成回路で発生するクロック信号のパルス幅を定めるパルス幅設定部を有するパルス幅制御回路をさらに具備し、
上記パルス幅制御回路は、パルス幅設定部で定められるパルス幅に基づくクロック周期に上記逓倍モードにおける逓倍数を乗じた値を上記基準クロック信号の周期と一致させるべく、上記パルス幅設定部に定められる上記パルス幅の調整を可能とする請求項３記載の半導体集積回路。
【請求項５】
上記内部回路として、上記クロック生成回路によって生成されたクロック信号に同期動作可能な中央処理装置を含むとき、上記待機モードから上記通常モードへ遷移させる事象に呼応して上記中央処理装置に対する割り込み制御を実行可能な割り込み制御回路を設けた請求項４記載の半導体集積回路。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、半導体集積回路、さらにはそれにおけるクロック生成技術に係り、特にマイクロコントローラに適用して有効な技術に関する。
【背景技術】
【０００２】
携帯機器は、動作時だけではなく待機時の消費電力の低減が強く求められている。一般に、携帯機器には、その機器を制御するマイクロコントローラと、そのマイクロコントローラをはじめとしてシステム全体に動作クロック信号を供給するための発振回路が搭載されている。携帯機器のなかには、待機時の消費電力を極限まで低減するために、クロック信号を供給する発振回路の動作を停止する機器も存在する。マイクロコントローラは、当然ながらクロックを供給されないと動作することができないので、待機状態から復帰するためには、まず発振回路動作を再開し、マイクロコントローラにクロックを供給する必要がある。発振回路の起動には時間がかかるので、何らかの刺激に即座に応答して、マイクロコントローラが処理を行わなければならないシステムには、クロック発振を停止するような待機時消費電力の低減手法を採用することはできない。すなわち、マイクロコントローラの起動時間と、クロック発振を維持する電力消費とは、トレードオフの関係にある。以下さらに定量的に詳述する。
【０００３】
携帯機器に搭載されるマイクロコントローラに要求される待機時の消費電流は、数十μA未満であり、当然ながら低ければ低いほど良い。一方、そのようなマイクロコントローラには、高い処理性能が要求されてきており、水晶発振子を使った発振回路で発生される基準クロックを、内部で逓倍するクロック生成回路が搭載される場合もある。また、マイクロコントローラには動作モードと待機モードが備えられており、通常、待機時には、待機モードになっていて、何らかの刺激によって動作モードに遷移するために、待ち受け状態になっている。その刺激とは、例えばユーザーのキー操作や、電話の着信などであって、マイクロコントローラにとっては、汎用入出力ポートへの信号入力や、シリアル通信インタフェースなどを介した接続された機器からの起動要求コマンドの受信などとして検知される。
【０００４】
待機時の消費電流を数十μA未満の低い水準に抑えるためには、マイクロコントローラを待機モードにして動作を停止するだけでは不十分で、基準クロックを発生させる発振回路の動作も停止する必要がある。水晶振動子を使った回路によれば、クロック発振を維持するときの消費電流は8mA  MAXであり、発振出力を停止したスタンバイ状態でも20μA  MAXである。マイクロコントローラの基準クロックとなる数MHzから数十MHzの水晶振動子は、同一チップに搭載して外部を励振する電力を抑えたとしても、単に発振動作を維持するだけで、スタンバイ時の消費電流と同程度の数十μAの電流を消費してしまうためである。
【０００５】
待機時に刺激を検知すると、まず発振回路を起動し、その後マイクロコントローラを待機モードから動作モードに遷移させる何らかの手段が、マイクロコントローラとは別に必要である。なぜなら、マイクロコントローラ自体はその刺激が感知された時点でクロックを入力されておらず、他の装置を制御するなどの動作をすることができないためである。刺激を検知して、発振回路を起動すると、その発振が安定するまでの時間は、通常数ｍｓである。例えば、非特許文献１には、クロック用水晶発振器の起動時間として3ｍｓ  MAXと記載されている。携帯機器では、刺激を検知したとき、クロック発振を再開させ、マイクロコントローラに搭載されたクロック生成回路が、動作クロックを発生した後、刺激に応答するプログラム処理を開始することができる。クロック生成回路は、例えば、特許文献１および特許文献２に記載されているように、入力される基準クロックの周波数を所定の逓倍したクロックを発生してマイクロコントローラに供給するものである。基準クロックを逓倍するためには、位相同期ループ（PLLと略記する）若しくは遅延同期ループ（DLLと略記する）が使われる。PLLは、発振周波数を制御することができる発振回路と、発振回路の出力クロックと入力される基準クロックの位相を比較する位相比較器と、その出力にしたがって、上記発振回路の発振周波数を加減する制御回路からなる。DLLは、入力パルスに対する出力パルスの遅延量を制御することができ、出力パルスを入力パルスにフィードバックして発振をさせる発振回路と、その発振の周期と基準クロックの周期とを比較して、上記遅延量を加減する制御回路からなる。何れも、発振回路のクロックと基準クロックを比較して同期させるものであって、基準クロックが入力され始めたときには、発振回路のクロックは基準クロックと一致していることはなく、差分をフィードバックするなどして徐々に一致させる引き込み時間を必要としている。なお、周波数の逓倍のためには、発振クロックを分周した波形と基準クロックを比較して一致させるように制御することにより、分周数倍の周波数逓倍が可能である。いずれも、基準クロックが供給されていることを前提としており、待機時に基準クロックを停止した場合には、待機状態からの復帰にあたって、基準クロックの再開を待つための時間が必要となり、本願の課題を解決することはできない。
【０００６】
特許文献１に記載されている公知例は、周波数の低い参照クロック信号から周波数の高いクロック信号を生成するものであって、参照クロック信号を順次遅延するディレイライン回路と、ディレイライン回路の出力から整数倍の周波数のクロックを生成する論理回路とを備えて成る。ディレイライン回路の出力と参照クロックを位相比較して、ディレイライン回路の遅延値を制御して、生成される周波数の高いクロックの周波数を、参照クロックの周波数の正確な整数倍にし、かつ、異常ロックやフェイズジッタなどを抑える。特許文献１によれば、参照クロック信号が安定して供給されていることを前提としており、待機状態で参照クロックの供給をも停止する場合には、復帰にあたって、参照クロックの発振が安定して供給が再開された後に、上記の位相比較による遅延値の調整機構を働かせて、必要な周波数の高いクロックを得る。したがって、待機状態からの復帰には、相当程度の発振安定時間が必要である。
【０００７】
特許文献２に記載されている公知例は、マイクロプロセッサなどにクロックを供給する波形ジェネレータで、遅延鎖とその遅延鎖の伝播遅延を入力タイミング信号の周期に一致させる制御回路とを含む。電力低減のために、内部クロックを迅速に開始および停止することを課題としている。当該公知例は、その明細書で、PLLは迅速にクロックを停止させたり再開させたりするのが困難であることを指摘して、上記遅延鎖を使った波形ジェネレータを提案している。しかし、上記特許文献１に係る公知例と同様に、入力タイミング信号が安定して供給されていることを前提としており、待機状態で入力タイミング信号の供給をも停止する場合には、復帰にあたって、入力タイミング信号の発振が安定して供給が再開された後に、上記の制御回路による遅延値の調整機構を働かせて、必要なクロックを得る。したがって、特許文献２に係る技術によっても、待機状態からの復帰には、相当程度の発振安定時間が必要である。
【０００８】
以上述べてきたように、従来の携帯機器においては、待機時の消費電力を抑えるために基準クロックを停止した場合、待機状態から通常動作状態への復帰には、発振回路の起動時間を始めとして、数ｍｓの時間が必要である。
【０００９】
一方、携帯機器において、待機状態から通常状態への遷移を求める刺激には、様々なものがあり、その刺激に対する応答まで数ｍｓの時間を許容することができないものがある。例えば、人によるキー操作によって待機から復帰する場合には、一般に数ｍｓは許容されると考えられるが、所定のボーレートで送信されてくるシリアル通信によって、起動コマンドが送信されてくるような場合には、その許容され得る時間は極めて短い。ボーレートをここで9600bpsと仮定すると、1ビットの周期は約０．１ｍｓであって、先頭ビットが入力されたことを刺激として、次の1ビットが入力される約０．１ｍｓには、何らかの方法でその第2ビットを取り込む手段が必要である。したがって、基準クロックの発振回路を起動してマイクロコントローラに供給し、内部のクロック生成回路で内部クロックを生成するのに必要な数ｍｓは、到底許容される時間ではない。したがって、このようなシステムでは、マイクロコントローラのクロックを完全に停止することはできず、少なくとも基準クロックの発振動作は維持するので、待機時の消費電力を数十μA以下に抑えることは困難である。
【００１０】
一般に、半導体集積回路の待機時の消費電力は、クロックの発振電力と、クロックによって動作している回路の電力と、アナログ的な直流の定常電流による電力と、リーク電流による電力である。アナログ的な直流の定常電流は、待機時に停止する回路的工夫をすることができる。リーク電流は、近年の集積回路の微細化で顕著になってきているが、微細な回路部分を選択的に電源遮断するなどの方法で、リーク電流を抑える技術が種々開発されている。半導体集積回路の待機時の消費電力は、クロックの発振を停止すれば、クロックの発振電力と、クロックによって動作している回路の電力を抑えることができ、ほぼゼロにすることができる。
【００１１】
特許文献３には、データ通信システムにおいて、受信データからサンプリングクロックを抽出して、受信データを取り込む技術が開示されている。通信相手の送信データレートに合わせたサンプリングレートを受信側で再現することができるものである。当該特許文献の明細書には示唆されていないが、この技術によれば、外部からのクロック供給なしに受信データをサンプリングすることが可能であると考えられる。しかし、当該技術は、通信データのサンプリングを目的としたもので、サンプリング後の受信データの処理にまで、生成したサンプリングクロックを使うことはできない。なぜなら、当該技術においては、その通信データには、シリアルデータ入力中のビットデータの値が遷移しない最大ビット長が規定されており、その最大ビット長を吸収できるだけのハードウェアを搭載するものであり、従って、通信データが途切れるとクロックの発生も停止するため、通信データの途絶とともに受信データの処理も中断してしまうためである。そこで、一般的には、サンプリングクロックとその後のデータ処理のクロックは分離されている。
【００１２】
【非特許文献１】京セラ（株）製表面実装型クロック用水晶発振器ＦＸＯ２５２０Ｆデータシート
【特許文献１】特開平６−６１８４９号公報
【特許文献２】特開平６−２５２７１７号公報
【特許文献３】特開２００３−２５８７８１号公報
【発明の開示】
【発明が解決しようとする課題】
【００１３】
マイクロコントローラとそれにクロックを供給する発振回路を備える携帯機器において、待機中にクロックの発振を停止すると発振回路の起動には時間がかかるので、待機中に発生する何らかの刺激に即座に応答することができない。したがって、待機中に発生する何らかの刺激に即座に応答してマイクロコントローラが処理を行わなければならないシステムにおいては、クロック発振を停止するような待機時消費電力の低減手法を採用することはできないので、待機中の消費電力を十分に低減することができない。すなわち、マイクロコントローラの起動時間と、クロック発振を維持する電力消費とは、トレードオフの関係にあって、待機時消費電力をほぼゼロにしながら、クロックの発振再開を待つなどの待ち時間なしに、待機状態から復帰することは、両立が困難とされている。
【００１４】
本発明の目的は、待機モードから通常モードに速やかに復帰することができる半導体集積回路における上記待機モードでの消費電力の低減を図るための技術を提供することにある。
【００１５】
本発明の上記並びにその他の目的と新規な特徴は本明細書の記述及び添付図面から明らかになるであろう。
【課題を解決するための手段】
【００１６】
本願において開示される発明のうち代表的なものの概要を簡単に説明すれば下記の通りである。
【００１７】
〔１〕振動子を用いて基準クロック信号を生成する発振回路と、内部論理回路により所定パルス幅のクロック信号を連続的に生成する自走モードと上記基準クロック信号の周波数を逓倍することでクロック信号を生成する逓倍モードとを備えたクロック生成回路と、上記クロック生成回路によって生成されたクロック信号に同期動作可能な内部回路と、上記内部回路が上記クロック信号に同期して動作される通常モードと上記発振回路の発振動作が停止される待機モードとの切り換えを制御可能な動作モード制御回路と、を含んで半導体集積回路が構成されるとき、上記動作モード制御回路は、上記待機モードでは、上記発振回路の上記発振動作を停止させ、上記待機モードから上記通常モードへ遷移させる事象を検知したとき、上記発振回路の上記発振動作を再開させるとともに、上記クロック生成回路を上記自走モードで動作させ、その後、上記自走モードから上記逓倍モードに切り換える。
【００１８】
上記の手段によれば、待機モードから通常モードに復帰する際に、先ず上記自走モードを選択させ、発振回路による振動子を用いた基準クロック生成のため発振動作が安定した後に上記逓倍モードを選択させる。待機モードで基準クロック信号を停止していた場合でも、上記発振回路の発振動作が安定する前に上記自走モードによるクロック信号が生成されることにより、これに同期して内部回路が通常モードで動作することができ、待機状態から通常動作への復帰時間が短縮されている。しかも、上記待機モードでは、上記発振回路の上記発振動作が停止されるため、消費電力が大幅に低減される。このことが、待機モードから通常モードに速やかに復帰することができる半導体集積回路における上記待機モードでの消費電力の低減を達成する。
【００１９】
〔２〕振動子を用いて基準クロック信号を生成する発振回路と、内部論理回路により所定パルス幅のクロック信号を連続的に生成する自走モードと上記基準クロック信号の周波数を逓倍することでクロック信号を生成する逓倍モードとを備えたクロック生成回路と、上記クロック生成回路によって生成されたクロック信号に同期動作可能な内部回路と、上記内部回路が上記クロック信号に同期して動作される通常モードと上記発振回路の発振動作が停止される待機モードとの切り換えを制御可能な動作モード制御回路と、上記内部回路と外部との間のシリアル通信を可能とするシリアル通信インタフェース回路と、を含んで半導体集積回路が構成されるとき、上記動作モード制御回路は、上記待機モードでは、上記発振回路の上記発振動作を停止させ、上記シリアル通信インタフェース回路において上記待機モードから上記通常モードへ遷移させる事象が検知されたとき、上記発振回路の上記発振動作を再開させるとともに、上記クロック生成回路を上記自走モードで動作させ、その後、上記自走モードから上記逓倍モードに切り換える。
【００２０】
上記の手段によれば、待機モードから通常モードに復帰する際に、先ず上記自走モードを選択させ、上記逓倍モードにおける発振動作が安定した後に上記逓倍モードを選択させる。待機モードで基準クロック信号を停止していた場合でも、上記発振回路の発振動作が安定する前に上記自走モードによるクロック信号が生成されることにより、これに同期して内部回路が通常モードで動作することができ、待機状態から通常動作への復帰時間が短縮されている。しかも、上記待機モードでは、上記発振回路の上記発振動作が停止されるため、消費電力が大幅に低減される。このことが、待機モードから通常モードに速やかに復帰することができる半導体集積回路における上記待機モードでの消費電力の低減を達成する。
【００２１】
〔３〕上記〔１〕，〔２〕において、上記クロック生成回路は、上記自走モードのためのパルス発生と、上記逓倍モードのためのパルス発生とを実現可能なパルス発生回路と、上記動作モード制御回路の制御に応じて、上記自走モードによるパルス発生と上記逓倍モードによるパルス発生とを選択可能な選択回路とを含んで構成することができる。
【００２２】
〔４〕上記〔３〕において、上記半導体集積回路は、上記クロック生成回路で発生するクロック信号のパルス幅を定めるパルス幅設定部を有するパルス幅制御回路をさらに具備し、上記パルス幅制御回路は、上記パルス幅設定部で定められるパルス幅に基づくクロック周期に上記逓倍モードにおける逓倍数を乗じた値を上記基準クロック信号の周期と一致させるべく、上記パルス幅設定部に定められる上記パルス幅の調整を可能とする。
【００２３】
〔５〕上記〔４〕において、上記内部回路として、上記クロック生成回路によって生成されたクロック信号に同期動作可能な中央処理装置を含むとき、上記待機モードから上記通常モードへ遷移させる事象に呼応して上記中央処理装置に対する割り込み制御を実行可能な割り込み制御回路を設けることができる。
【００２４】
〔６〕クロック信号を生成するためのクロック生成回路と、上記クロック生成回路によって生成されたクロック信号に同期動作可能な内部回路と、基準クロック信号を生成する発振回路と、上記内部回路が上記基準クロック信号に同期して動作される通常モードと、上記発振回路の発振動作が停止される待機モードとの切り換えを制御可能な動作モード制御回路と、ＵＳＢインタフェース回路とを含んで半導体集積回路が構成されるとき、上記動作モード制御回路は、上記待機モードでは、上記発振回路の上記発振動作を停止させ、上記ＵＳＢインタフェース回路において上記待機モードから上記通常モードへ遷移させる事象が検知されたとき、上記発振回路の上記発振動作を再開させるとともに、上記クロック生成回路を上記自走モードで動作させ、その後、上記自走モードから上記逓倍モードに切り換える。
【発明の効果】
【００２５】
本願において開示される発明のうち代表的なものによって得られる効果を簡単に説明すれば下記の通りである。
【００２６】
すなわち、待機モードから通常モードに速やかに復帰することができる半導体集積回路における上記待機モードでの消費電力の低減を達成することができる。
【発明を実施するための最良の形態】
【００２７】
図１には、本発明に係る半導体集積回路（ＬＳＩ）の一例であるマイクロコントローラが示される。図１に示されるマイクロコントローラ１は、クロック生成回路１０、動作モード制御回路２０、発振回路３０、ＣＰＵ（中央処理装置）４０、割り込み制御回路５０、パルス幅制御回路８０、及び逓倍数設定回路９０を含み、特に制限されないが、単結晶シリコン基板などの一つの半導体基板に形成される。
【００２８】
クロック生成回路１０は、クロック信号ＣＬＫ１を生成する。生成されたクロック信号ＣＬＫ１は、ＣＰＵ４０や割り込み制御回路５０に代表される内部回路に供給される。マイクロコントローラ１への割り込み信号とリセット信号などの例外発生を通知する信号は、マイクロコントローラ１の外部から与えられるか、内部の別の回路で発生するか、いずれの場合であっても、割り込み制御回路５０に入力されて、その割り込みに対するマスクと優先順位などに基づいて制御をされる。このような、割り込み信号やリセット信号は、本例においては、図１に示されるように、復帰要求信号として、動作モード制御回路２０へ供給されている。動作モード制御回路２０は、ＣＰＵ４０の動作モードを監視して、発振回路３０の制御を行う。ＣＰＵ４０が待機モードに入ろうとしていても、ＣＰＵ４０の動作を実現しているパイプライン動作がすべて完了しないうちにクロックを停止すると、正常な動作を保証することができないので、実際にＣＰＵ４０が待機状態になったことを、ＣＰＵ動作モード信号で確認して、クロック発振を停止することが望ましい。
【００２９】
尚、ＣＰＵ４０や割り込み制御回路５０は、必ずしも必須の構成要素ではなく、簡単な動作モード制御回路２０を備えていれば、如何なる回路にも置き換えが可能である。また、必ずしも割り込みとリセットを復帰要求信号とする必要はなく、復帰要求を発生する回路からの要求信号に限定しても良い。
【００３０】
以下、上記構成の作用について説明する。
【００３１】
クロック生成回路１０は、起動信号が入力されると、パルス幅設定部１２によって設定される幅のクロックパルスＣＬＫ１を、動作モードに従って出力する。動作モードには、自走モードと逓倍モードがあり、その動作について図２を用いて説明する。
【００３２】
自走モードでは、図２（Ａ）に示されるように、起動信号ＳＴＡのレベル変化に対応して、クロック出力が開始される。このときのクロック周期は、パルス幅設定部１２によって与えられた値に基づいて決まる。これに対して逓倍モードでは、図２（Ｂ）に示されるように、起動信号ＳＴＡとして基準クロック信号ＣＬＫ０が入力されており、基準クロック信号ＣＬＫ０の立ち上がりに同期して、逓倍数設定回路９０によって設定された数で、且つ、パルス幅設定部１２で設定されたパルス幅のクロックパルスがクロック信号ＣＬＫ１として出力される。
【００３３】
図３には、マイクロコントローラ１全体が、通常モードから待機モードに移行し、その待機時の消費電力を極限まで低く抑えるために、基準クロックＣＬＫ０の発振をも停止した状態で、復帰要求信号ＲＥＴが変化したことに応答して、待機モードから通常モードに遷移するところが示される。図３において、マイクロコントローラ１は、始めは通常モードで、発振回路３０が基準クロックＣＬＫ０をクロック生成回路１０に供給しており、クロック生成回路１０は、起動信号入力ＳＴＡに印加された基準クロックＣＬＫ０の４倍の周波数のクロックを出力して動作している。このとき逓倍数は４に設定されており、パルス幅設定部１２は、出力クロックのパルス幅を起動信号入力ＳＴＡに印加されている基準クロックの周期のちょうど逓倍数４の逆数である４分の１に調整されている。
【００３４】
マイクロコントローラ１の待機モードにおいて、待機消費電力をμＷオーダーの極限まで抑えるには、基準クロック信号ＣＬＫ０の供給を止めるだけでなく、発振回路３０の動作を停止することが不可欠である。発振回路３０の発振動作による消費電力がｍＷオーダーと大きいためである。消費電力には、信号変化に対応する消費電力と電源電圧を印加するだけで消費される電力がある。ＣＭＯＳ回路では、前者は充放電電力であり、後者はリーク電流による電力である。前者は、マイクロコントローラ１内の信号変化を皆無とすることでゼロにすることができ、後者は、電源遮断によってゼロにするか、若しくは基板バイアス効果を使うなど、トランジスタの閾値電圧を高くしてリーク電流を下げることによって、顕著な低減効果が得られ、１μＡ以下に抑えることは十分可能である。本例では、待機時に信号変化を皆無として、ＣＭＯＳ回路における充放電電力に代表される過渡電力をゼロにする。本例において待機時には、クロック生成回路１０は、基準信号入力ＣＬＫ０が停止するので、クロック出力ＣＬＫ１を停止する。動作モード制御回路２０は、発振回路３０の発振停止を出力するとともに、次に復帰要求信号ＲＥＴによって復帰要求があったときに、その信号が、クロック生成回路１０の起動信号入力端子に伝播するよう、選択回路２１を切り換える。また、動作モード制御回路２０は、クロック生成回路１０の動作モードを、逓倍モードから自走モードに切り換える。復帰要求信号ＲＥＴによって復帰要求があった時点では、発振回路３０は動作していないので、基準クロック信号ＣＬＫ０は供給されておらず、クロック生成回路１０は、自走モードから動作を再開することが望ましいためである。
【００３５】
復帰要求があると、動作モード制御回路２０は、それをエッジ検出回路２２で検出して、発振回路３０に対して、発振制御信号ＯＣＮＴにより発振停止を解除して基準クロックの供給を開始させるよう制御する。復帰要求信号ＲＥＴは、マイクロコントローラ１内部で発生するものであっても良いし、外部から供給されたものでも良い。割り込み信号やリセット信号として供給される。ここで、発振回路３０が外付けの水晶振動子３１を使ったものであるとすると、基準クロック信号が安定に供給されるまでの時間は、水晶発振器の起動時間３ｍｓと同程度である。近年のマイクロコントローラの動作クロック周波数は、１００ＭＨｚを超えるもの少なくなく、クロックの周期に換算すれば、３ｍｓは３００，０００クロックに相当する期間である。この期間、クロック生成回路１０は、自走モードで動作し、パルス幅設定部１２によって与えられたパルス幅のクロック信号を連続して送出する。したがって、基準クロックが安定する以前から、マイクロコントローラ１は、復帰要求に応答する処理を開始することができる。その後、基準クロック信号ＣＬＫ０が安定して供給され始めた時点で、動作モード制御回路２０は、クロック生成回路１０の動作モードを逓倍モードに戻す制御を行う。発振回路３０が、安定した発振動作をしていることを検出するには、厳密には別の時間又は周波数の基準が必要であるが、実用上は、適度の余裕を持って十分な待ち時間を取ることによって、発振安定と判断する。発振回路３０は、発振開始時点では水晶振動子３１の共振周波数とは異なり、従って、予測できない周波数のクロック信号を出力して、徐々に目的の周波数に近づき、やがて水晶振動子３１の共振周波数で安定発振する。目的の発振周波数とは異なるといっても、十分余裕を持った数のクロックパルス数の経過を待って、基準クロックの発振が安定しているとして扱えば、実際にクロック信号が安定している時点を示すことができる。例えば、１０ＭＨｚの水晶振動子で起動時間３ｍｓ  ｍａｘの場合、３ｍｓ÷１／１０ＭＨｚ＝３００００であるので、２から３倍のマージンをとって６００００〜１０００００のカウンタで水晶発振のクロックをカウントすれば、十分に３ｍｓ以上の時間の経過を保証して、発振が安定した時点を判定することができる。
【００３６】
リセット信号ＲＳＴを復帰要求信号として用いると、別の作用効果を期待することができる。すなわち、リセットがパワーオンリセットであって、電源投入直後のリセットである場合、リセット時点では、クロックは供給されていない場合が多い。一方、過去の設計資源を再利用したり、外部から導入する場合、リセット中にクロックが供給されていることを期待した、所謂同期リセット方式を採用したものが少なくない。同期リセット方式の回路には、リセット情報が確定するまで、ある程度以上のクロックパルス数を期待し、また、リセットされるまでの不確定な状態では、信号の衝突やフローティングノードの存在によって、マイクロコントローラ１内の他の回路に貫通電流を生じさせるおそれがある。従来のクロック発生回路を採用したマイクロコントローラ１では、クロック発振が安定するまでの数ｍｓはこの状態を甘受せざるを得ないものがあって、携帯機器への採用の隘路になっていた。本例によれば、リセット信号を検知した直後から、クロック信号を供給することができるので、かかる問題を解決して、同期リセット方式の回路を採用しても、電源投入直後からクロック信号を供給して、最短の時間で回路全体をリセットすることができる。
【００３７】
図３に示される場合、待機前が逓倍数４の逓倍モードで、待機後は、自走モードから逓倍数２の逓倍モードに切り替えた例で、逓倍数を変更している。また、待機状態に入る前の通常モードにおけるパルス幅と、待機状態から復帰したときのパルス幅は異なっている。待機状態に入る前の通常モードにおけるパルス幅が、マイクロコントローラ１の回路動作として最高動作周波数であって、復帰した時点でそのパルス幅を、基準クロック信号無しで忠実に再現できるとは限らない場合には、安全策として、パルス幅の設定を長めに変更しておくことが有効である。例えば、待機状態に入る前には、最高周波数での動作中で温度が高いのに対して、待機中にはマイクロコントローラ１の温度が低下して、パルス幅設定部１２では、復帰したときに、より短いパルス幅のクロックを供給してしまい、クロック信号が供給されるマイクロコントローラ１で誤動作を生じるおそれがある。このとき、温度低下によるクロックパルス幅の短縮を考慮して、パルス幅設定を長めにするが、逓倍数が４のままでは、当該パルス幅に逓倍数４を乗じた値が、基準クロックの周期より長くなってしまって、逓倍動作にならないので、逓倍数についても適宜減じておく必要がある。一方、パルス発生回路１１において、温度補償回路や電源電圧変動の影響を補償する手段などを具備して、待機モードの前後に、同じパルス幅、同じ逓倍数設定で、同じ周波数のクロック出力が得られれば、より好適である。
【００３８】
基準クロック信号ＣＬＫ０が安定して、逓倍数２の逓倍モードに移行した後、逓倍数４のときに基準クロックの周期に一致するように、パルス幅制御回路８０を動作させ、パルス幅を徐々に短くする制御を行っても良い。例えば逓倍数２で動作しているとき、基準クロックＣＬＫ０の立ち上がりエッジに対応して、クロックパルスを２個出力する。このとき、クロック生成回路１０内では、４個目と５個目のクロックパルスを生成しておく。基準クロック信号ＣＬＫ０の立ち上がりに同期した１個目のクロックパルスの立ち上がりから、上記５個目のクロックパルスの立ち上がりまでの期間が、基準クロックパルスの周期に一致するように、パルス幅の値を徐々に減じて行けばよい。最終的に、１個目から５個目の出力クロックパルスの立ち上がりまでの期間が、基準クロック信号ＣＬＫ０の周期以下になれば、逓倍数４の逓倍動作に復帰させることができる。
【００３９】
このように復帰要求ＲＥＴによって復帰が要求された場合、まず自走モードでクロック出力を開始することによって、復帰要求信号ＲＥＴからゲート遅延だけの遅れで、動作クロックを供給することができ、クロック発振回路３０の発振安定を待つことなく、待機モードから通常モードに復帰したときの処理を即座に開始することができる。クロック安定時間がｍｓオーダーであるのに対し、ゲート遅延はｎｓオーダーであり、約６桁の待ち時間短縮を実現することができる。ちなみに、従来技術では、待機時にクロック発振を継続したままであり、ＰＬＬなどによる逓倍回路の同期時間を短縮する手法によって、通常動作に復帰する方法であり、その場合の復帰時間はμｓオーダーである。本発明においては、待機時にクロック発振を停止していながら、ｎｓオーダーのより短期間で通常動作に復帰することができる。従って、待機状態から復帰したときに、極めて短期間で何らかの処理をしなければならないようなシステムにおいても、待機中にクロック発振を停止することができる。すなわち、待機状態からの即座の復帰と、待機期間中の信号変化を皆無として消費電力を極限まで抑えることができる。
【００４０】
図４には上記パルス発生回路１１の構成例が示され、図５には、図４に示される構成における動作タイミングが示される。
【００４１】
図４に示されるように上記パルス発生回路１１は、セットリセットフリップフロップ回路１０１、エッジ検出回路１０２、カウンタ１０３、比較回路１０４、可変遅延線１０５、ナンドゲート１０６，１０８、遅延素子１０７を含む。セットリセットフリップフロップ回路１０１は、起動信号ＳＴＡによってセットされることで、起動信号ＳＴＡを検出する。セットリセットフリップフロップ回路１０１の出力信号は後段のエッジ検出回路１０２に伝達される。エッジ検出回路１０２は入力信号のエッジ検出を行う。このエッジ検出結果は後段のカウンタ１０３に伝達される。このカウンタ１０３は、可変遅延線１０５の出力信号を計数し、その計数結果が上記エッジ検出回路１０２の出力信号によってリセットされるようになっている。カウンタ１０３の出力信号ｃｏｕｎｔは、後段の比較回路１０４に伝達される。比較回路１０４は、上記カウンタ１０３の出力信号ｃｏｕｎｔと逓倍数とを比較する。この比較結果ｅｑは選択回路１３を介してセットリセットフリップフロップ回路１０１に伝達され、この比較結果ｅｑによってセットリセットフリップフロップ回路１０１がリセットされる。可変遅延線１０５での遅延量は、パルス幅設定部１２によって制御される。上記ナンドゲート１０６は、可変遅延線１０５の出力信号ｄｃｋと上記セットリセットフリップフロップ回路１０１の出力信号とのナンド論理を得る。このナンドゲート１０６の出力信号ｎｃｋは、上記可変遅延線１０５にフィードバックされるとともに、ナンドゲート１０８及び遅延素子１０７に伝達される。ナンドゲート１０８は、上記ナンドゲート１０６の出力信号ｎｃｋと上記遅延素子１０７の出力信号とのナンド論理を得る。このナンドゲート１０８の出力信号がクロック信号ＣＬＫ１とされる。
【００４２】
セットリセットフリップフロップ回路１０１の出力Ｑが論理値“１”のとき、可変遅延線１０５の出力信号ｄｃｋが反転され、ｎｃｋがフィードバックされる。しかし、セットリセットフリップフロップ回路１０１の出力Ｑが論理値“０”のとき、ｎｃｋは論理値“１”に固定されてフィードバックされない。上記セットリセットフリップフロップ回路１０１の出力Ｑが論理値“０”から論理値“１”にセットされたことを、エッジ検出１０２によって検知して、カウンタ１０３をリセットし、遅延クロックｄｃｋの発生回数を上記カウンタ１０３で計数して、所望の逓倍数に一致したときに、比較回路１０４が一致信号ｅｑを出力する。一致信号ｅｑは、逓倍モードでは上記セットリセットフリップフロップ回路１０１をリセットする。これにより上記ナンドゲート１０６から可変遅延線１０５へのフィードバックが停止され、クロックパルスの出力が停止され、次の起動信号ＳＴＡの入力待ちの状態となる。
【００４３】
図５には、図４に示されるクロック生成回路１０における自走モードと逓倍モードでの動作例が示される。逓倍数を３としてあり、ゲート遅延は実際の大きさよりも誇張して表記されている。図４（Ａ）に示した自走モードは、モード指定信号を論理値“０”にすることによって指定することができ、セットリセットフリップフロップ回路１０１は、起動信号入力が変化してセットされた後、リセットされないので、クロック生成回路１０は、連続的にクロックを生成し続ける。自走モードで、クロック生成を停止する場合には、上記と同様に、上記セットリセットフリップフロップをリセットすればよい。図４（Ｂ）に示した逓倍モードは、モード指定信号を論理値“１”にすることによって指定することができる。カウンタ１０３が可変遅延線１０５の出力ｄｃｋの発生回数を計数して、その値が所定の逓倍数３と一致したときに、一致信号ｅｑが論理値“１”になる。モード指定信号が論理値“１”なので、一致信号ｅｑが伝播されてセットリセットフリップフロップ回路１０１をリセットし、ナンドゲート１０６の出力ｎｃｋを強制的に論理値“１”にして可変遅延線１０５へのフィードバックを止める。ただし、図５（Ｂ）に示されるように、ナンドゲート１０６の出力ｎｃｋは、論理値“０”から強制的に論理値“１”に変化させられるので、幅の狭いパルスを生じる。このパルスは、可変遅延線１０５の出力にも現れ、カウンタ１０３の出力を１増やし４に変化させる。このとき、カウンタ出力ｃｏｕｎｔは所定の逓倍数３と一致しなくなり、一致信号ｅｑは論理値“０”になる。セットリセットフリップフロップ回路１０１がセットされてからリセットされるまで、すなわちセットリセットフリップフロップ回路１０１の出力Ｑが論理値“１”である期間は、クロックパルスの３周期分である。この信号を発振周期信号として出力する。ナンドゲート１０６の出力ｎｃｋには、前述のように、幅の狭いパルスが生じていて、そのまま外部回路のクロックとして使うことは好ましくない。遅延素子１０７とナンドゲート１０８を組み合わせて、幅の狭いパルスを消し、クロックとして出力する。遅延素子１０７の遅延量は、消したいパルスの幅よりも大きめに設定する。
【００４４】
発振周期信号ＣＹＣは、クロックパルスの周期を逓倍数倍したハイレベル期間と、残りの休止期間のローレベル期間を有する信号である。入力された基準クロック信号の周期と上記ハイレベル期間が同じになるように制御すれば、換言すれば上記ローレベル期間ができるだけ短くなるように制御すれば、クロック出力の周期は、基準クロック信号の周期の逓倍数分の１になり、正確な逓倍回路となる。一方、残っているローレベル期間は、基準クロック信号の周期で発生するクロックジッタである。マイクロコントローラ１では動作クロックにジッタがあっても、最短の周期がマイクロコントローラ１の最大遅延（クリティカルパス）以上であれば正常に動作する。ただし、周辺回路など、他のデバイスとの同期が必要な回路では、ジッタを許容しないものもある。その場合には、上記のように、制御してクロックパルス幅を適切に制御することによって、ジッタのないクロック信号を生成することができる。
【００４５】
図６には、上記クロック生成回路１０における可変遅延線１０５の構成例が示される。この可変遅延線１０５は、ディジタル信号によって制御可能になっており、さらに貫通電流が流れないように設計されたもので、クロック出力を停止しているときに消費電流をデバイスのリーク電流だけに抑えることができ、また、遅延量はディジタル値としてレジスタなどに格納しておけばよいので、経時変化することがない。図６に示した可変遅延線は、遅延量が３ビットディジタル値ｄｌｙで指定される。信号を遅延させる電流制限のため、電源Ｖｃｃ側にはｐチャネル型ＭＯＳトランジスタＴｄｐ１〜 Ｔｄｐ８が、接地Ｖｓｓ側には、ｎチャネル型ＭＯＳトランジスタＴｄｎ１〜 Ｔｄｎ８が接続され、Ｔｉｐ１とＴｉｎ１で構成される前段のインバータにＴｄｐ１〜 Ｔｄｐ４とＴｄｎ１〜 Ｔｄｎ４が、Ｔｉｐ２とＴｉｎ２で構成される後段のインバータにＴｄｐ５〜 Ｔｄｐ８とＴｄｎ５〜 Ｔｄｎ８が、それぞれ接続されている。電流制限のためのｐチャネル型ＭＯＳトランジスタＴｄｐ１とＴｄｐ５、Ｔｄｐ２とＴｄｐ６、Ｔｄｐ３とＴｄｐ７は、それぞれ同じサイズであって、基準のゲート幅／ゲート長比Ｗｐ０／Ｌｐ０の２の冪乗倍、４Ｗｐ０／Ｌｐ０、２Ｗｐ０／Ｌｐ０、Ｗｐ０／Ｌｐ０のサイズになっている。Ｔｄｐ４とＴｄｐ８は、ゲート幅／ゲート長比Ｗｐ１／Ｌｐ１となっている。電流制限のためのｐチャネル型ＭＯＳトランジスタも同様に、Ｔｄｎ１とＴｄｎ５、Ｔｄｎ２とＴｄｎ６、Ｔｄｎ３とＴｄｎ７、Ｔｄｎ４とＴｄｎ８は、それぞれ同じサイズであって、それぞれ、４Ｗｎ０／Ｌｎ０、２Ｗｎ０／Ｌｎ０、Ｗｎ０／Ｌｐ０、Ｗｎ１／Ｌｎ１となっている。
【００４６】
遅延量ｄｌｙは、最上位ビットから順にｄｌｙ［２］，ｄｌｙ［１］，ｄｌｙ［０］が、それぞれ電流制限用のｎチャネル型ＭＯＳトランジスタＴｄｎ１とＴｄｎ５、Ｔｄｎ２とＴｄｎ６、Ｔｄｎ３とＴｄｎ７に、その反転信号が、それぞれ電流制限用のｐチャネル型ＭＯＳトランジスタＴｄｐ１とＴｄｐ５、Ｔｄｐ２とＴｄｐ６、Ｔｄｐ３とＴｄｐ７に接続されている。これらの電流制限用ＭＯＳトランジスタは、基準のサイズＷｎ０／Ｌｎ０， Ｗｐ０／Ｌｐ０の２の冪乗のサイズになっているので、３ビットの２進数で表現された遅延量ｄｌｙに比例する電流制限を行うことができる。Ｔｄｐ４とＴｄｐ８、Ｔｄｎ４とＴｄｎ８は、遅延量ｄｌｙの制御を受けない遅延量を決める電流制限トランジスタである。遅延量ｄｌｙに対して、加算・減算を行って、クロック周波数の引き込みなどの制御を行う場合に、ｄｌｙの値がゼロとなってクロック出力が停止すると復帰できなくなるので遅延量ｄｌｙの値がゼロとなってもクロック出力が停止することがないように、最低発振周波数を保証することができる。
【００４７】
本例における可変遅延線は、電流制限用ＭＯＳトランジスタのディジタル的なオン・オフによって電流供給能力を変化させるものであって、ＰＬＬの電圧制御発振回路で多用されるカレントミラー回路で定常的な電流を流す方式を採用していないので、入力端子からパルスが入力されない限り、トランジスタの接合リーク電流以外の遷移電流、貫通電流を消費することがない。したがって、待機時の消費電流を１μＡより遥かに小さい水準に抑えることが可能である。内部回路を構成する微細なトランジスタは、接合リークが顕著であるが、入出力回路に使われる比較的耐圧と閾値電圧の高いトランジスタは、接合リークがｐＡ／ｃｍ２オーダーとされる。これらの高耐圧トランジスタを使うことによって、リーク電流をほぼゼロに抑えることができる。また、遅延量はディジタル的にレジスタに格納されているので、時間の経過に伴って保持している値が変化することはない。一方、ＰＬＬの電圧制御発振回路で多用される、制御電圧をコンデンサに蓄えて、チャージポンプで制御するようなアナログ方式は、発振周波数等を記憶するために蓄積した電荷が時間の経過に伴って失われるので、待機中にこのような情報を保持することは困難である。待機モードに入ってクロックを停止する直前とまったく同じ状態に復帰することが可能である。待機モード開始時点と、復帰時点で、温度や電源電圧などの動作環境が変化して、同じ設定値であっても発振周波数が異なる場合が生ずる。本例では、温度補償、電源電圧の安定化については省略しているが、これらの技術を併用すれば、待機モードの前後で動作環境の変化によってクロック周波数が変動するのを回避することができる。
【００４８】
本例では、遅延量制御を３ビット、８階調で制御する回路を例示したが、クロックパルス幅を、基準クロック信号ＣＬＫ０の周期の逓倍数分の１に正確に合わせこむような制御を行う場合には、ビット数を増加して階調を細かくすることが有効である。また、本例では、前段と後段で同じ回路を使った例を示したに過ぎないが、適宜変更しても良い。前段と後段の遅延量を独立に制御することができるように構成すれば、クロック信号のデューティを調整することができる。
【００４９】
また、Ｔｄｐ４とＴｄｐ８、Ｔｄｎ４とＴｄｎ８は、遅延量ｄｌｙの制御を受けない遅延量を決めるものとし、固定の値である例を示したが、これを別のレジスタで遅延量を増減制御することができるようにしても良い。このとき、ｄｌｙで傾きを、上記別のレジスタで切片をそれぞれ制御して、より自由度の高い、精密な制御が可能となる。
【００５０】
本例では、可変遅延線とカウンタを用いて発生するパルスの数を制御する方式について説明したが、同様の機能を実現する回路は、多数考えられる。例えば、可変遅延線を、発生させる最大のパルス数に対応する数だけ備え、適宜マスクする回路構成も考えられる。回路規模は増加するが、制御が単純であって、複雑な制御系の中に組み込む場合は、有効である。
【００５１】
尚、クロック周波数に正確さを要求されないようなマイクロコントローラの場合、自走モードのみを実現すれば十分である。そのとき、起動信号はパワーオンリセットを入力する。クロック発振源を備える必要がないので、非常に消費電力が低く、しかも安価な制御システムを実現することができる。
【００５２】
自走モードのみを備えるクロック生成回路１０を搭載したマイクロコントローラにおいて、待機モードでクロック信号を停止する機能を実現することもできる。その場合には、セットリセットフリップフロップ回路１０１のリセット端子Ｒに、マイクロコントローラが待機モードになったことを示す信号を入力し、起動信号には、リセット信号の他、割り込み信号や、復帰時刻を設定されたタイマからの復帰要求信号などを入力する。本例のクロック生成回路１０は、クロック発生までの待ち時間が極めて短く、図５のタイミングチャートに示されるように動作クロックの１サイクルよりはるかに短く設計することができるので、割り込み信号を起動信号入力としたマイクロコントローラにおいては、待機状態でクロックを停止していても、復帰要求発生からクロック発振安定を待つなどの必要なく、即座に割り込み処理を開始することができるので、待機状態での極限までの消費電力削減と即座の復帰処理を両立することができるという効果を奏する。
【００５３】
図７には、上記マイクロコントローラ１の別の構成例が示される。
【００５４】
図７に示されるマイクロコンピュータ１が、図１に示されるのと大きく相違するのは、シリアル通信インタフェース回路６０を含む点である。シリアル通信インタフェース回路６０は、バスＢＵＳを介してＣＰＵ４０に結合され、このＣＰＵ４０の制御下でシリアル通信を可能とする。上記シリアル通信インタフェース回路６０は、取り込まれたシリアル信号からスタートビットを検出するためのスタートビット検出回路６１、クロック信号を生成するためのクロック生成回路６１０、データをラッチ可能なラッチ回路６２、シリアルデータをパラレルデータに変換可能なシリアル・パラレル変換回路（Ｓ／Ｐ変換回路）６３、先入れ先出し形式のバッファとされるＦＩＦＯ（Ｆｉｓｔ  Ｉｎ  Ｆｉｒｓｔ  Ｏｕｔ）６４、起動コマンドを検出可能な起動コマンド検出回路６５を含んで成る。
【００５５】
スタートビット検出回路６１によってスタートビットが検出され、その検出結果によりクロック生成回路６１０の起動信号ＳＴＡ２が形成される。シリアル信号はラッチ回路６２に取り込まれた後、シリアル・パラレル変換回路６３によってパラレルデータに変換されて、ＦＩＦＯ６４に格納される。これら一連の動作は、クロック生成回路６１０によって生成されたクロック信号ＣＬＫ２に同期して行われる。
【００５６】
クロック生成回路１０は、シリアル通信インタフェース回路６０内に設けられたクロック生成回路６１０とは別の回路である。クロック生成回路１０，６１０には、図４に示される構成が採用される。上記のように、待機時にＣＰＵ４０へのクロック発振を完全に停止するように構成する場合、シリアル通信によって、コマンドを受信したときに待機モードにあったＣＰＵ４０を復帰させる回路を構成することができる。シリアル・パラレル変換回路６３によって得られたパラレルデータを解析して、起動コマンドを検出し、割り込み回路へ割り込み信号として接続し、また、クロック発振回路３０のクロック起動信号として接続する。本例では、起動コマンド検出回路６５において所定の起動コマンドを検出し、それに基づいてクロック発振を再開し、割り込みを発生させることができる。
【００５７】
一方、起動コマンドを取り決めずに、待機モード中にシリアル信号が入力されたときは、無条件で通常モードに復帰する仕様も有効である。その場合は、スタートビット検出回路６１によって検出され信号をクロック発振回路３０の発振制御信号ＯＣＮＴや、割り込み信号ＩＮＴとしても良い。通常動作中、シリアル信号を受信するたびにスタートビットを検出して、割り込みを発生するのを望まない場合には、待機モードからの復帰処理で当該割り込みをマスクし、再び待機モードに遷移する前処理で割り込みマスクを解除すると良い。
【００５８】
図８に、シリアル信号の一例として、調歩同期シリアル通信のデータフォーマットを示す。通信のない初期状態はハイレベルであり、スタートビットとしてローレベルが１ｂｉｔ送信される。それに続いてデータビット、パリティビット、ストップビットが続く。詳細なフォーマットは、通信を開始する前に予め設定される。データビットの長さは、７ｂｉｔ若しくは８ｂｉｔを設定する。パリティビットは、偶数パリティを若しくは奇数パリティを付加するか、パリティビットを付加しないかを設定する。ストップビットは、次のフレームのスタートビットが来るまでの最小限のハイレベル期間を規定するもので、１ｂｉｔから２ｂｉｔに設定する。スタートビットからストップビットまでを１フレームと呼ぶ。
【００５９】
図９には、図８に示されるシリアル信号を受信したときの動作タイミングが示される。
【００６０】
スタートビット検出回路６１は、シリアル信号のスタートビットを受信したことを検出したとき、起動信号ＳＴＡ２をハイレベルにする。クロック生成回路６１０は、起動信号ＳＴＡ２がハイになったのを受けて、クロックの生成を開始する。クロック生成回路６１０の動作は、図２（Ｂ）に示される逓倍モードである。逓倍数は、スタートビット１ｂｉｔと、データ８ｂｉｔと、パリティビット１ｂｉｔを受信するように１０ｂｉｔに設定される。図８を用いて説明したように、データビットは７ビットでもよく、パリティビットは付加しなくても良いので、逓倍数は、フォーマットに合わせて適宜設定する。パルス幅設定部１２で与える遅延量は、シリアル通信のボーレートから求められる１ビットあたりの周期に基づいて設定する。例えば、ボーレートが９６００ｂｐｓであれば、１ｂｉｔの周期は１／９６００ ［ｓ］ ＝ ０．１０４ ［ｍｓ］であり、遅延量はその半分の０．０５２ ［ｍｓ］に設定する。クロック生成回路６１０は、図４に示される内部のカウンタ１０３で発生したクロックパルスの数を計数しており、逓倍数に達すると、クロックの発生が停止される。このとき、併せてスタートビット検出回路６１もリセットされる。スタートビット検出回路６１は、シリアル信号のハイレベルからローレベルへの変化を検出する回路によって実現されるが、データの中にも同じ変化は十分にあり得るので、その変化を誤ってクロック生成回路６１０の起動信号としないように、起動信号は１フレーム中ハイを維持するように構成されている。１フレームの終了時点でリセットすることにより、次に受信されるローレベル信号は必ずスタートビットであることが保証される。発生するクロックは、受信されたシリアル信号に立ち上がりが同期しているが、パルス幅設定部１２に設定される遅延量が、シリアル信号のボーレートに正確に対応するとは限らないので、シリアル信号の取り込みには、生成されたクロックの反転信号を用いる。図７では、後段のＳ／Ｐ変換回路６３からＦＩＦＯ６４まで反転クロック使って動作する例を示している。本例によれば、シリアル通信の受信用クロックは、スタートビットを受信して初めて生成され始め、フレームの受信完了で停止するので、必要最低限のクロックパルスを供給すればよく、消費電力を削減することができる。特に待機時には、スタートビットの受信を待つために常時クロック信号を供給しつづける必要があったが、これを全く停止しても、スタートビットを受信した瞬間からクロック供給を再開することができるので、待機時の消費電力をゼロにすることができ、待機電力の削減での効果が著しく大きい。
【００６１】
上述のように、パルス幅設定部１２で与える遅延量は、シリアル通信のボーレートから求められる１ビットあたりの周期に基づいて設定するが、動作温度や電源電圧が想定と異なり、或いは、通信相手のボーレートが誤差を含む場合があり、必ずしも理想的なタイミングでデータを取り込むことができるとは限らない。シリアル信号の変化点から次の変化点の中央が理想的なデータ取り込みタイミングであるが、図１０には、パルス幅設定部１２によって設定された遅延量が、理想よりも少なく、クロック周期が短い場合を図示している。本例のクロック生成回路６１０は、ＰＬＬなどとは異なり、誤差を少なくしていくようなフィードバック手段を持たないので、誤差は徐々に蓄積する。しかし、誤差の蓄積は１フレームの期間に限られ、次のスタートビットを検出したときにリセットされる。通常、本例のような調歩同期シリアル通信では、フレーム長は高々１０ｂｉｔであるので、理想的なデータ取り込みタイミング２０１〜２１３と、実際のデータ取り込みタイミング３０１〜３１３との誤差の蓄積は大きくはなく、目的のビットを取り込むことができなくなるほど大きなずれとなることは、適宜パルス幅を定めることにより、回避することができる。
【００６２】
理想的なデータ取り込みタイミング２０１〜２１３を実現するためには、図１に示されるような、パルス幅制御回路８０をさらに設け、基準クロックに合わせる引き込み動作を行うことによって、受信されたシリアル信号に完全に同期したクロック信号を得ることが可能となる。基準クロック信号ＣＬＫ０は、外部から入力するか、内部に発振回路を具備して生成すると良い。さらに、ＣＰＵ４０にクロック信号を供給するためのクロック発振回路３０の出力クロックを元にして生成しても良い。初期化動作において、通信相手との間でボーレートの整合を行うときに、引き込み動作をして、パルス幅設定部１２に設定すべき値を求めておくことが有効である。動作環境の変動に対しては、適宜引き込み動作を行って、追随することも可能となる。
【００６３】
本例では、１ビットのシリアルデータを受信するクロックをパルスとして説明したが、１ビットあたり複数回のデータ取り込みを行う、所謂オーバーサンプリングを適用することもできる。その場合は、逓倍数をオーバーサンプリング倍にすると同時にパルス幅設定部１２で設定するパルス幅をオーバーサンプリング数分の１に減じて設定すればよい。オーバーサンプリングを行うことによって、前述のデータ取り込みタイミングの誤差の蓄積によって、万一サンプリング点が目的のビット以外にずれてしまった場合にも、救済することができるような回路構成が可能となる。
【００６４】
図１１には、上記マイクロコントローラ１の別の構成例が示される。図１１に示される回路が、図７に示されるのと大きく相違するのは、シリアル通信インタフェース６０に代えてＵＳＢ（Ｕｎｉｖｅｒｓａｌ  Ｓｅｒｉａｌ  Ｂｕｓ）インタフェース７０を備えた点である。本例におけるマイクロコントローラ１は、基本的には図７に示される基づいて実現されているが、ＵＳＢ特有の構成ブロックとして、差動増幅回路７２、サスペンド復帰検出回路７１、クロック発信安定判定回路７７、クロック発信回路７８が設けられる。ＵＳＢは、Ｄ＋とＤ−と呼ばれる相補の信号で通信を行うので、差動増幅回路７２を使って受信する。通信はホストとファンクションと呼ばれる、マスタとスレーブの関係にあるデバイス間で行われ、例えばパーソナルコンピュータはホストの機能を有し、ファンクションの機能を持つＵＳＢデバイスを接続可能とされている。ＵＳＢファンクションデバイスは、通信の必要がないときには、サスペンドと呼ばれる待機状態にして、システムとしての消費電力を抑制することができる。本例は、待機状態での消費電力を抑えることができるので、ファンクションデバイスに好適である。ＵＳＢのサスペンド状態は、本来相補で必ず逆の論理レベルを取るべきＤ＋とＤ−が、ともに同じ論理レベルをとるなど特殊な状態で規定されており、Ｄ＋とＤ−の状態を監視することによってサスペンド状態からの復帰を検知することができる。通信品質を保つために、クロック周波数の精度は、規格によって定められている。最も広く普及している１２Ｍｂｐｓのフルスピードと呼ばれるデータレートのモードを例にとると、ＵＳＢファンクションのクロックには、２５００ｐｐｍの精度が要求されている。本例では、このクロック精度を実現するために、クロック生成回路７１０とは別に、水晶振動子により発振するクロック発振回路７８が設けられる。また、このクロック発振回路７８での発振が安定しているか否かを判定するためのクロック発振安定判定回路７７が設けられている。
【００６５】
サスペンド復帰検出回路７１によって、サスペンドからの復帰要求が与えられたことを検知すると、即座にクロック生成回路７１０からのクロック出力を開始して、送出されてくるデータを受信し、ＦＩＦＯ６４などのバッファに順次蓄積する。これと平行して、クロック発振回路７８に対してクロック発振動作開始の制御が行われる。クロック発振は、数ｍｓで安定するので、安定したことを検出した後に、供給するクロックを切り換える。
【００６６】
ＵＳＢファンクションデバイスには、自身が電源を持つものと。ホストから電源供給を受けるものがあり、前者をセルフパワード、後者をバスパワードと呼んでいる。バスパワードデバイスの場合、サスペンド状態で消費を許されている電力は、５００μＡ以下に制限されている。したがって、サスペンド状態でクロック発振を停止することは、非常に重要である。一方、サスペンドからの復帰要求を受け取ってから、ホストへ応答するまでの時間的制約に関しても、厳しい規定が設けられている。本例によれば、待機時すなわちサスペンド中はクロック発振を停止して、消費電力をほぼゼロに抑えることができ、サスペンドからの復帰にあたって、即座にクロック供給を再開するので、常時クロックを供給していた場合と同じ迅速さで、応答することができる。
【００６７】
本例では、ＵＳＢの規格が規定するクロック精度を満足するために、クロック発振回路７８を別途設けた例を示した。クロック生成回路７１０に電源電圧変動の影響を受けない基準電源を設け、また、温度補償回路を設けて、パルス幅設定部１２によるパルス幅の設定精度を向上して、規格を満足することもできる。この場合は、クロック生成回路７１０は自走モードで動作させる。したがって、図１に示されたクロック生成回路１０から逓倍モードに必要な回路を削除して構成すればよい。さらに、ＣＰＵ４０のクロック供給のために、クロック発振回路３０を具備している場合には、サスペンドからの復帰には自走モードで動作し、ＣＰＵ４０のクロック発振回路３０の動作が安定した後に、そのクロックを元にした逓倍モードに切り換えることも可能である。また、ホストから受信されるＵＳＢ信号から、タイミング情報、すなわちビットレート情報を抽出して、それに対して引き込み動作を行っても良い。
【００６８】
また、ＣＰＵ４０にクロックを供給するクロック発振回路３０と、ＵＳＢ用のクロック発振回路７８は、共用することができる。この場合は、どちらか一方に復帰要求信号があったときに、発振動作を再開するように制御し、ともに発振不要になるのを待って発振を停止すればよい。共用することによって、回路規模が小さくすることができるだけでなく、外付けの水晶振動子を節約することができ、また、消費電力を低減することができるという効果もある。
【００６９】
以上本発明者によってなされた発明を具体的に説明したが、本発明はそれに限定されるものではなく、その要旨を逸脱しない範囲で種々変更可能であることはいうまでもない。
【００７０】
例えば、信号の極性や、ビット数、逓倍数の設定などは、上記の実施形態に制限されるものではない。また、クロック生成回路は、同一チップ上のＣＰＵなどの回路のみにクロックを供給することに制限されるものではなく、システムを構成する他のＬＳＩなどに供給するものであっても、システム全体として同様の作用効果を奏するものである。
【００７１】
以上の説明では主として本発明者によってなされた発明をその背景となった利用分野であるマイクロコントローラに適用した場合について説明したが、本発明はそれに限定されるものではなく、各種半導体集積回路に広く適用することができる。
【００７２】
本発明は、少なくともクロック信号を生成するためのクロック生成回路を含むことを条件に適用することができる。
【図面の簡単な説明】
【００７３】
【図１】本発明にかかる半導体集積回路の一例であるマイクロコントローラの構成例ブロック図である。
【図２】上記マイクロコントローラにおける主要部の動作タイミング図である。
【図３】上記マイクロコントローラにおける主要部の動作タイミング図である。
【図４】上記マイクロコントローラにおける主要部の構成例回路図である。
【図５】図４に示される回路の動作タイミング図である。
【図６】上記マイクロコントローラにおける主要部の構成例回路図である。
【図７】上記マイクロコントローラの別の構成例ブロック図である。
【図８】図７に示されるマイクロコントローラにおける主要部の動作タイミング図である。
【図９】図７に示されるマイクロコントローラにおける主要部の動作タイミング図である。
【図１０】図７に示されるマイクロコントローラにおける主要部の動作タイミング図である。
【図１１】上記マイクロコントローラの別の構成例ブロック図である。
【符号の説明】
【００７４】
１  マイクロコントローラ
１０  クロック生成回路
１１  パルス発生回路
１２  パルス幅設定部
１３  モード選択回路
２０  動作モード制御回路
２１  選択回路
２２  エッジ検出回路
３０  発振回路
４０  ＣＰＵ
５０  割り込み制御回路
６０  シリアル通信インタフェース回路
６１  スタートビット検出回路
６２  ラッチ回路
６３  シリアル・パラレル変換回路
６４  ＦＩＦＯ
６５  起動コマンド検出回路
６１０  クロック生成回路
７０  ＵＳＢインタフェース回路
７１  サスペンド復帰検出回路
７２  差動増幅回路
７６  起動コマンド検出回路
７７  クロック発振安定判定回路
７８  クロック発振回路
７１０  クロック生成回路
【図１】
2006285823.tif 000003
【図２】
2006285823.tif 000004
【図３】
2006285823.tif 000005
【図４】
2006285823.tif 000006
【図５】
2006285823.tif 000007
【図６】
2006285823.tif 000008
【図７】
2006285823.tif 000009
【図８】
2006285823.tif 000010
【図９】
2006285823.tif 000011
【図１０】
2006285823.tif 000012
【図１１】
2006285823.tif 000013