(57)【要約】【課題】信頼性が高い非同期の信号処理機能を容易に実現可能な半導体集積回路、およびそれを搭載したＵＳＢコントローラを提供する。【解決手段】パルス信号であるＳＵＳＰＥＮＤ信号２５に対して遅延回路９の遅延時間よりも短い時間幅のパルス信号を除去するローパスフィルタ６と、ローパスフィルタ出力信号２６の立上りイベントと立下りイベントを検出するイベント検出回路７と、前記イベント検出回路７による検出パルス信号２７，２８をラッチする記憶手段８を設ける。そして、これらの回路をＵＳＢコントローラに搭載する。【選択図】        図２
2004348460.tif 000002
【特許請求の範囲】
【請求項１】
第１のパルス信号が入力され、そのパルス信号から一定の値よりも短い時間幅のパルスを除去した第２のパルス信号を出力するフィルタ手段と、
前記第２のパルス信号が入力され、その立上りイベントと立下りイベントをそれぞれ検出し、それぞれの検出パルス信号を出力するイベント検出手段と、
前記イベント検出手段で出力されたそれぞれの検出パルス信号をラッチする記憶手段とを有し、
前記フィルタ手段と前記イベント検出手段と前記記憶手段は非同期回路であることを特徴とする半導体集積回路。
【請求項２】
請求項１記載の半導体集積回路であって、
前記フィルタ手段は、第１の論理演算回路と、第２の論理演算回路と、遅延回路と、フリップフロップ回路を有し、
前記第１の論理演算回路と前記第２の論理演算回路は、前記第１のパルス信号と、前記第１のパルス信号を前記遅延回路により遅延させたパルス信号が入力され、
前記フリップフロップ回路は、前記第１の論理演算回路の出力と、前記第２の論理演算回路の出力が入力されることを特徴とする半導体集積回路。
【請求項３】
請求項１または２記載の半導体集積回路を用いたＵＳＢコントローラであって、
前記記憶手段にラッチされたそれぞれの検出パルス信号の内、一方を第１の割り込み信号とし、他方を第２の割り込み信号とすることを特徴とするＵＳＢコントローラ。
【請求項４】
請求項３記載のＵＳＢコントローラであって、
前記ＵＳＢコントローラは、さらに、割り込み選択手段を有し、
前記割り込み選択手段は、
前記第１の割り込み信号と第１の通常の割り込み信号のいずれか一方を選択する機能と、
前記第２の割り込み信号と第２の通常の割り込み信号のいずれか一方を選択する機能を有することを特徴とするＵＳＢコントローラ。
【発明の詳細な説明】
【０００１】
【発明の属する技術分野】
本発明は、半導体集積回路およびＵＳＢ（ｕｎｉｖｅｒｓａｌ  ｓｅｒｉａｌｂｕｓ）コントローラに関し、特に、非同期で信号を検出する半導体集積回路、およびその半導体集積回路を搭載し、バスパワード方式に対応したＵＳＢコントローラに適用して有効な技術に関する。
【０００２】
【従来の技術】
本発明者が検討したところによれば、ＵＳＢコントローラの技術に関しては、以下のような技術が考えられる。
【０００３】
現在、ＵＳＢコントローラ機能を搭載したバスコントローラデバイスやマイクロコンピュータなどが数多く存在している。このＵＳＢコントローラには、バスパワード方式に対応したものもあり、ＵＳＢ規格に基づきサスペンド機能やレジューム機能を実現する回路を搭載している。
【０００４】
【発明が解決しようとする課題】
ところで、前記のようなＵＳＢコントローラの技術について、本発明者が検討した結果、以下のようなことが明らかとなった。
【０００５】
ＵＳＢ規格による通信を行うために必要なデバイスとして、ＵＳＢホストコントローラとＵＳＢデバイスコントローラが挙げられる。ＵＳＢホストコントローラは、例えばパーソナルコンピュータなどに搭載され、ＵＳＢデバイスコントローラは、例えば、前記パーソナルコンピュータなどに接続するキーボードや外部記憶装置などの各種周辺機器に搭載される。
【０００６】
このＵＳＢデバイスコントローラに電源を供給する方式として、セルフパワード方式とバスパワード方式がある。前者は、ＡＣアダプタ等の外部から電源を供給する方式であり、後者は、ＵＳＢケーブルを通じてＵＳＢホストコントローラから電源を供給する方式である。
【０００７】
ＵＳＢデバイスコントローラにおいて、バスパワード方式を適用すると、ＵＳＢの入出力端子が一定時間動作しなかった場合に、サスペンド状態に移行しなければならない。また、その後に、ＵＳＢの入出力端子が動作した場合は、通常状態に復帰することも必要となる。さらに、そのサスペンド状態での消費電流は、例えば５００μＡ以内などを条件としている。なお、これらの仕様は、ＵＳＢ規格で定められているものである。
【０００８】
このようなことから、ＵＳＢデバイスコントローラを搭載したマイクロコンピュータなどでは、前記消費電流の条件を満たすため、サスペンド状態においてクロックの停止が必要不可欠となる。
【０００９】
しかしながら、この場合において、ＵＳＢデバイスコントローラをバスパワード方式に対応させる上での問題が幾つか考えられる。まずは、クロックの停止のために、レジューム信号を非同期で検出しなければならないことである。つぎに、非同期によるノイズの影響や、サスペンド信号直後にレジューム信号が発生した場合などでの誤動作の防止などである。
【００１０】
その一方で、これらの問題を容易に解決可能な回路を構築することで、例えば、セルフパワード方式にしか対応していないような既存のＵＳＢデバイスコントローラを、容易にバスパワード方式に対応させるようなことが可能となる。
【００１１】
そこで、本発明の一つの目的は、信頼性が高い非同期の信号処理機能を容易に実現可能な半導体集積回路、およびそれを搭載したＵＳＢコントローラを提供することにある。
【００１２】
本発明の前記並びにその他の目的と新規な特徴は、本明細書の記述及び添付図面から明らかになるであろう。
【００１３】
【課題を解決するための手段】
本願において開示される発明のうち、代表的なものの概要を簡単に説明すれば、次のとおりである。
【００１４】
本発明による半導体集積回路は、それぞれ非同期回路である、フィルタ手段と、イベント検出手段と、記憶手段とを有するものである。
【００１５】
まず、前記フィルタ手段は、第１のパルス信号が入力され、そのパルス信号から一定の値よりも短い時間幅のパルスを除去した第２のパルス信号を出力する。つぎに、前記イベント検出手段は、前記第２のパルス信号が入力され、その立上りイベントと立下りイベントをそれぞれ検出し、それぞれの検出パルス信号を出力する。そして、前記記憶手段は、前記イベント検出手段で出力されたそれぞれの検出パルス信号をラッチするものである。
【００１６】
これらの構成により、ハザードなどのノイズを除去した上で、立上りおよび立下りといった信号の検出が可能となる。
【００１７】
また、前記フィルタ手段は、第１の論理演算回路と、第２の論理演算回路と、遅延回路と、フリップフロップ回路を有するものである。
【００１８】
そして、前記第１の論理演算回路と第２の論理演算回路には、前記第１のパルス信号と、前記第１のパルス信号を前記遅延回路により遅延させたパルス信号が入力され、前記フリップフロップ回路は、前記第１の論理演算回路の出力と、前記第２の論理演算回路の出力が入力される。
【００１９】
また、本発明によるＵＳＢコントローラは、前記のような半導体集積回路を有するものである。
【００２０】
そして、前記記憶手段にラッチされたそれぞれの検出パルス信号の内、一方を第１の割り込み信号とし、他方を第２の割り込み信号とする。
【００２１】
これらの構成によって、バスパワード方式に対応したＵＳＢコントローラを実現できる。
【００２２】
また、本発明によるＵＳＢコントローラは、さらに、割り込み選択手段を有するものである。
【００２３】
そして、前記割り込み選択手段は、前記第１の割り込み信号と第１の通常の割り込み信号のいずれか一方を選択する機能と、前記第２の割り込み信号と第２の通常の割り込み信号のいずれか一方を選択する機能を有している。
【００２４】
この構成によって、バスパワード方式とセルフパワード方式の両方に対応でき、とりわけ、マイクロコンピュータに搭載して最適なＵＳＢコントローラを実現できる。
【００２５】
【発明の実施の形態】
以下、本発明の実施の形態を図面に基づいて詳細に説明する。なお、実施の形態を説明するための全図において、同一部材には同一の符号を付し、その繰り返しの説明は省略する。
【００２６】
図１は、本発明の一実施の形態のＵＳＢコントローラにおいて、バスパワード方式に対応したＵＳＢコントローラの構成の一例を示す概略図である。図１のＵＳＢコントローラは、例えば、ＵＳＢインターフェース１と、ＵＳＢデバイスコントローラ２と、エンドポイント３と、ＣＰＵインターフェース４などから構成される。
【００２７】
ＵＳＢインターフェース１は、外部入出力端子Ｄ＋，Ｄ−を有し、これらの外部入出力端子は、ＵＳＢホストコントローラに接続される。このＵＳＢホストコントローラとの通信において、ＵＳＢインターフェース１は、例えば、パケットデータの送受信やパラレル−シリアル変換などを行う。
【００２８】
ＵＳＢデバイスコントローラ２は、例えば、送受信データを蓄えるエンドポイント（ＦＩＦＯメモリ）３の制御や、各種転送モードの制御や、デバイスステートの制御などを行う。そして、ＵＳＢデバイスコントローラ２は、更にサスペンド検出回路５を有するものとする。
【００２９】
このサスペンド検出回路５は、例えば、ＵＳＢインターフェース１を監視し、サスペンド・アウェイク信号を発生する回路と、この回路により発生した出力を処理してサスペンド（＝スタンバイ）割り込み信号やアウェイク（＝レジューム）割り込み信号を生成する信号処理回路などから構成される。なお、サスペンド検出回路５の配置は、一例であって、特にＵＳＢデバイスコントローラ２内に限定されるものではない。
【００３０】
ＣＰＵインターフェース４は、例えば、前記ＵＳＢデバイスコントローラ２との通信により、ＣＰＵと前記エンドポイント３間でのデータの送受信や、ＣＰＵに対して前記サスペンド／アウェイク割り込み信号の送信などを行う。
【００３１】
前記サスペンド検出回路５は、バスパワード方式に対応するために必要な回路であり、その内部の前記信号処理回路は、図２に示すような構成を含んでいる。
【００３２】
図２は、本発明の一実施の形態の半導体集積回路において、信号処理回路の構成の一例を示す回路図である。図２に示す半導体集積回路は、例えば、信号の立上りイベントがサスペンドのアサート（有効）、信号の立下りイベントがサスペンドのネゲート（無効）に対応したパルス信号に対し、誤動作の要因となるハザードなどのノイズを除去し、スタンバイ割り込み信号とアウェイク割り込み信号をそれぞれ発生する回路である。
【００３３】
まずは、図２に示す半導体集積回路の構成の一例を説明する。
【００３４】
図２に示す半導体集積回路は、例えば、ローパスフィルタ（フィルタ手段）６と、イベント検出回路（イベント検出手段）７と、記憶手段８などから構成される。
【００３５】
ローパスフィルタ６は、ＳＵＳＰＥＮＤ信号（第１のパルス信号）２５を入力とし、Ｄｅｌａｙ１の遅延時間を発生する遅延回路９と、ＡＮＤ回路とインバータ回路を含む第１の論理演算回路１０と、ＯＲ回路を含む第２の論理演算回路１１と、フリップフロップ回路１２などを有している。ここでは、前記フリップフロップ回路１２は、両入力を反転入力としたＳＲフリップフロップとする。
【００３６】
イベント検出回路７は、ローパスフィルタ出力信号（第２のパルス信号）２６を入力とし、Ｄｅｌａｙ２の遅延時間を発生する遅延回路１３と、一方を反転入力とした２つのＮＯＲ回路１４，１５などを有している。
【００３７】
記憶手段８は、スタンバイ割り込みフラグレジスタ１６とアウェイク割り込みフラグレジスタ１７などを有している。これらは、例えば、２つのＳＲフリップフロップなどから構成され、前記２つのＮＯＲ回路１４，１５のそれぞれの出力パルス信号（検出パルス信号）２７，２８を入力としている。
【００３８】
つぎに、図２に示す半導体集積回路の動作の一例を図３を用いながら説明する。
【００３９】
図３は、本発明の一実施の形態の半導体集積回路において、図２に示す回路の動作の一例を示す波形図である。
【００４０】
まず、ローパスフィルタ６に対して、信号の立上りイベントをサスペンドのアサート、信号の立下りイベントをサスペンドのネゲートとするＳＵＳＰＥＮＤ信号２５が入力される。ところが、実使用において、サスペンドがアサート直後にネゲートするような場合が十分考えられる。つまり、ＳＵＳＰＥＮＤ信号２５に、パルス幅が極めて短いハザードなどが載るという場合である。そこで、ローパスフィルタ６により、このハザードやその他のノイズを除去する。
【００４１】
ローパスフィルタ６は、このＳＵＳＰＥＮＤ信号２５と、それにＤｅｌａｙ１の遅延時間を加えた信号とのＮＡＮＤ出力でフリップフロップ回路（ＳＲフリップフロップ）１２をセットし、前記遅延前と遅延後のＳＵＳＰＥＮＤ信号２５のＯＲ出力でＳＲフリップフロップ１２をリセットする。
【００４２】
これによって、遅延回路９の遅延時間（Ｄｅｌａｙ１）より短い時間幅のパルスを除去することができる。そして、ハザードを除去したローパスフィルタ出力信号２６をイベント検出回路７に出力する。
【００４３】
イベント検出回路７は、前記ローパスフィルタ出力信号２６と、それに遅延時間（Ｄｅｌａｙ２）を加えた信号のどちらか一方の極性を反転させて、ＮＯＲ出力を行う。これによって、ハザード除去後のＳＵＳＰＥＮＤ信号２５の立上りイベントと、立下りイベントをそれぞれ検出し、遅延回路１３の遅延時間（Ｄｅｌａｙ２）のパルス幅を持つ検出パルス信号２７，２８をそれぞれ出力することができる。
【００４４】
なお、前記ローパスフィルタ６の遅延回路９の遅延時間（Ｄｅｌａｙ１）を、遅延回路１３の遅延時間（Ｄｅｌａｙ２）より大きくすることで、必ずＤｅｌａｙ２のパルス幅を確保することができる。
【００４５】
スタンバイ割り込みフラグレジスタ１６は、前記立上りイベントの検出パルス信号２７をスタンバイ割り込みとしてラッチし、アウェイク割り込みフラグレジスタ１７は、前記立下りイベントの検出パルス信号２８をアウェイク割り込みとしてラッチする。そして、このラッチによって、スタンバイ割り込み信号２９およびアウェイク割り込み信号３０を発生する。
【００４６】
なお、図３は、このスタンバイ割り込みによって、サスペンド状態（クロックＣＫが停止した状態）に移行し、このサスペンド状態において、非同期でＳＵＳＰＥＮＤ信号２５のネゲートを検出し、アウェイク割り込み信号３０を発生した場合を例とした波形図である。
【００４７】
以上のように、図２の半導体集積回路によれば、パルス信号の入力に対し、ハザードなどのノイズの除去と、パルスのイベントの検出が非同期で可能となる。すなわち、パルス信号の入力に対し、信頼性が高い非同期の信号処理機能を容易に実現可能となる。なお、図２の半導体集積回路は、ＵＳＢコントローラのみに限られるものではなく、非同期でパルスのイベントを検出する必要があるバスコントローラや、その他のデバイスに対しても使用することができる。
【００４８】
さらに、図２の半導体集積回路における各回路素子は、勿論それに限定されるものではなく、入力信号の極性などによっては変更が必要となりうる。例えば、ＳＵＳＰＥＮＤ信号２５が立下りでアサート、立上りでネゲートという仕様であれば、図２におけるローパスフィルタ６のＡＮＤ回路をＮＯＲ回路に、ＯＲ回路をＮＡＮＤ回路に変更する必要がある。
【００４９】
図４は、本発明の一実施の形態のＵＳＢコントローラにおいて、図１のＵＳＢコントローラをマイクロコンピュータに適用した際のシステムの構成例を示す概略図である。図４に示すシステムは、例えば、マイクロコンピュータ１８とパーソナルコンピュータ１９をＵＳＢケーブルで接続した構成となっている。
【００５０】
このマイクロコンピュータ１８は、例えば、ＵＳＢコントローラ２０と、ウェイクアップコントローラ２１と割り込みコントローラ２２などを有し、パーソナルコンピュータ１９は、ＵＳＢホストコントローラを有しているものとする。
【００５１】
ＵＳＢコントローラ２０は、例えば、ＵＳＢインターフェース（ＵＳＢ  ＩＦ）１と、サスペンド検出回路５などを有し、サスペンド検出回路５は、サスペンド・アウェイク信号デコード回路２３と、信号処理回路２４などを有している。なお、このＵＳＢコントローラ２０は、実際には、図１のようにＣＰＵインターフェース４やエンドポイント３なども有しているが、ここでは記載を省略する。
【００５２】
サスペンド・アウェイク信号デコード回路２３は、ＵＳＢインターフェース１の入出力端子が一定時間（例えば３ｍｓなど）動作しなかった場合に、ＳＵＳＰＥＮＤ信号２５をアサートし、動作を検出した場合はＳＵＳＰＥＮＤ信号２５をネゲートする。この回路は、例えば、カウンタ回路と、ＳＲフリップフロップと、イベント信号を検出する回路などから構成することができる。
【００５３】
信号処理回路２４は、前記図２と同様な構成および動作を備え、前記ウェイクアップコントローラ２１や割り込みコントローラ２２に対して、アウェイク割り込み信号（第１の割り込み信号）３０やスタンバイ割り込み信号（第２の割り込み信号）２９を送信する。
【００５４】
図４に示す構成において、スタンバイ割り込みの動作は、例えば次のように行われる。
【００５５】
ＵＳＢインターフェース１の入出力端子が３ｍｓ以上アイドル状態になった時、サスペンド・アウェイク信号デコード回路２３は、ＳＵＳＰＥＮＤ信号２５をアサートする。
【００５６】
このＳＵＳＰＥＮＤ信号２５を、ローパスフィルタ６に通すことにより、ノイズやアサート直後のネゲートによるハザードを取り除く。このアサート直後のネゲートは、ＵＳＢホストコントローラからアサート直後に信号が送られてくる場合などで十分起こり得る。
【００５７】
イベント検出回路７で、ローパスフィルタ６通過後のＳＵＳＰＥＮＤ信号２５の変化を検出し、一定幅のパルスを生成する。スタンバイ割り込みフラグレジスタ１６は、イベント検出回路７で作られたパルスを受けてセットされる。フラグがセットされると、スタンバイ割り込み信号２９が発生する。そして、割り込みコントローラ２２の処理を経て、スタンバイ状態に移行する。
【００５８】
また、アウェイク割り込みの動作は次のように行われる。
【００５９】
クロック停止状態において、ＵＳＢホストコントローラからのレジューム信号もしくはリセット信号を受信した時、サスペンド・アウェイク信号デコード回路２３は、ＳＵＳＰＥＮＤ信号２５をネゲートする。ＳＵＳＰＥＮＤ信号２５を、ローパスフィルタ６に通すことにより、ノイズなどによる短いパルスを取り除く。
【００６０】
イベント検出回路７で、ローパスフィルタ６通過後のＳＵＳＰＥＮＤ信号２５の変化を検出し、一定幅のパルスを生成する。アウェイク割り込みフラグレジスタ１７は、イベント検出回路７で作られたパルスを受けてセットされる。フラグがセットされると、アウェイク割り込み信号３０を発生する。そして、割り込みコントローラ２２およびウェイクアップコントローラ２１の処理を経て、スタンバイ状態から復帰する。
【００６１】
以上のように、図４のシステム構成によれば、ＵＳＢコントローラが搭載されたマイクロコンピュータなどを、バスパワード方式に対応させることができる。
【００６２】
また、前記図４のアウェイク割り込み信号３０およびスタンバイ割り込み信号２９は、マイクロコンピュータなどが備える外部割り込み信号（ＩＲＱ割り込み信号）などと併用させることもできる。その一例を図５に示す。
【００６３】
図５は、本発明の一実施の形態のＵＳＢコントローラにおいて、図４のシステム構成例に対し、さらに機能を加えたシステムの構成の一例を示す概略図である。
【００６４】
図５のシステムは、前記図４のシステム構成例に対し、更に、ＵＳＢコントローラにおいてＩＲＱ０・アウェイク割り込み選択回路３１ならびにＩＲＱ１・スタンバイ割り込み選択回路３２からなる割り込み選択手段３３を有した構成例となっている。
【００６５】
この２つの割り込み選択回路は、例えば、マルチプレクサなどから構成される。そしてＩＲＱ０，１割り込みを、バスパワード方式の際は、アウェイク割り込み信号３０およびスタンバイ割り込み信号２９として使用し、セルフパワード方式の際は、通常の外部割り込み信号ＩＲＱ０（第１の通常の割り込み信号）およびＩＲＱ１（第２の通常の割り込み信号）として使用する。
【００６６】
ここで、図５のシステム構成例の前提として、マイクロコンピュータの仕様が、ＩＲＱ信号やＮＭＩ信号の割り込みによって、スタンバイ状態への移行や、その状態からの復帰が可能であるものとする。通常、マイクロコンピュータは、このような仕様を備えている。
【００６７】
すると、スタンバイ割り込み信号２９、アウェイク割り込み信号３０をＩＲＱ、ＮＭＩ割り込みに割り当てることで、通常のＩＲＱなどの割り込み信号を使ってＵＳＢのサスペンド機能を実現させることができる。その一例として、図５では、ＩＲＱ０とＩＲＱ１の割り込みを使用している。
【００６８】
この構成により、例えば、セルフパワード方式にしか対応していないマイクロコンピュータを、バスパワード方式に対応させる際などでも、新たな割り込み信号やその処理回路を設ける必要がない。さらに、このマイクロコンピュータは、バスパワード方式およびセルフパワード方式に関わらず用いることができる。
【００６９】
つぎに、図５のシステムの動作の一例について説明する。
【００７０】
動作に関しても、図４と同様であるため一部省略し、相違点となる割り込みコントローラ２２などによる割り込み処理に関して説明する。
【００７１】
まず、バスパワード方式に対応するため、割り込み選択手段３３にてＩＲＱ０にアウェイク割り込み信号３０を、ＩＲＱ１にスタンバイ割り込み信号２９を割り当てる。そして、ＩＲＱ０は、ＩＲＱ１より割り込み優先順位を高く設定する。
【００７２】
このＩＲＱ０およびＩＲＱ１の割り込み処理方法の一例を、図６および図７で説明する。
【００７３】
図６は、本発明の一実施の形態のＵＳＢコントローラにおいて、図５のシステム構成例に伴う割り込み処理プログラムの一例を示すフロー図である。図６に示す処理フロー図は、通常状態でスタンバイ割り込みが入った際の割り込み処理プログラムの一例を示し、その動作は、例えば次のように行われる。
【００７４】
初期状態を通常状態とする。
【００７５】
Ｓ１において、割り込みコントローラ２２にて、スタンバイ割り込み信号２９に伴うＩＲＱ１割り込み（スタンバイ割り込み）の発生有無を判定し、発生有りの場合（“ＹＥＳ”時）はＳ２へ移行し、発生無しの場合は通常状態を保つ。また、ＩＲＱ１割り込みの発生有りによって、ＩＲＱ１（スタンバイ割り込み）ルーチンが開始される。
【００７６】
なお、以降のＳ２〜Ｓ７の処理は、スタンバイ割り込みルーチン中に行う。
【００７７】
Ｓ２において、割り込みコントローラ２２に記憶されているＩＲＱ１割り込みをクリアし、Ｓ３へ移行する。
【００７８】
Ｓ３において、割り込みコントローラ２２にて、アウェイク割り込み信号３０に伴うＩＲＱ０割り込み（アウェイク割り込み）の発生有無を判定し、発生有りの場合（“ＹＥＳ”時）はＳ４〜Ｓ６へ移行し、発生無しの場合はＳ７へ移行する。
【００７９】
Ｓ４〜Ｓ６において、前記Ｓ３でのＩＲＱ０割り込みの発生が有った場合、割り込みコントローラ２２に記憶されているＩＲＱ０割り込みをクリアし、スタンバイ割り込みフラグレジスタ１６およびアウェイク割り込みフラグレジスタ１７をクリアする。
【００８０】
ここまでの処理によって、ＩＲＱ０割り込みが取り下げられ、復帰命令を発生することで、アウェイク割り込みルーチンやスタンバイ状態に入ることなく通常状態へ復帰することができる。
【００８１】
Ｓ７において、前記Ｓ３でのＩＲＱ０割り込みの発生が無かった場合、ｓｌｅｅｐ命令を発生し、スタンバイ状態へと移行する。
【００８２】
つまり、前記Ｓ１〜Ｓ３を経てのＳ７の処理は、通常の場合でのスタンバイ状態へ移行する動作である。この場合のタイミング波形の一例を図８に示す。
【００８３】
図８では、通常状態でスタンバイ割り込みが発生し、スタンバイ割り込みルーチンを経て、ｓｌｅｅｐ命令によりスタンバイ状態に移行している。なお、その後は、スタンバイ状態中にアウェイク割り込みが発生し、アウェイク割り込みルーチンを経て通常状態に復帰するという動作が続く。
【００８４】
一方、前記Ｓ１〜Ｓ３を経てのＳ４〜Ｓ６の処理は、Ｓ３におけるＩＲＱ０割り込みの判定タイミングでＩＲＱ０割り込みが検出できれば、前記のようにＳ４〜Ｓ６の処理を経て通常状態へ復帰することができる。ただし、Ｓ３における判定タイミングでＩＲＱ０割り込みが検出できず、その直後にＩＲＱ０割り込みが発生した場合（つまり、Ｓ７へ移行後にＩＲＱ０割り込みが発生した場合）などでは、スタンバイ状態に入ってしまう可能性が考えられる。
【００８５】
しかし、この場合でも、図９に示すように問題なく通常状態に復帰することができる。図９では、通常状態でスタンバイ割り込みが発生し、スタンバイ割り込みルーチンが行われる。なお、この際に、ブロックビットが１にセットされる。このスタンバイ割り込みルーチン中に、前記Ｓ３におけるＩＲＱ０割り込みの判定タイミング以降に、ＩＲＱ０割り込み（アウェイク割り込み）が発生したとする。
【００８６】
この場合、ブロックビットが１のため、このアウェイク割り込みは保留となる。そして、スタンバイ割り込みルーチン終了後のｓｌｅｅｐ命令によって、ブロックビットが０となり、保留されていたアウェイク割り込みが受け付けられる。これにより、アウェイク割り込みルーチンを経て通常状態に復帰することができる。
【００８７】
図７は、本発明の一実施の形態のＵＳＢコントローラにおいて、図５のシステム構成例に伴う他の割り込み処理プログラムの一例を示す動作フロー図である。図７に示す動作フロー図は、通常状態からアウェイク割り込みが入った場合とスタンバイ状態からアウェイク割り込みが入った場合の割り込み処理プログラムの一例を示し、その動作は、例えば次のように行われる。
【００８８】
初期状態を通常状態またはスタンバイ状態とする。
【００８９】
Ｓ１１において、割り込みコントローラ２２にて、アウェイク割り込み信号３０に伴うＩＲＱ０割り込み（アウェイク割り込み）の発生有無を判定し、発生有りの場合（“ＹＥＳ”時）はＳ１２へ移行し、発生無しの場合は通常状態またはスタンバイ状態を保つ。また、ＩＲＱ０割り込みの発生有りと伴に、ＩＲＱ０（アウェイク割り込み）ルーチンが開始される。
【００９０】
なお、以降のＳ１２〜Ｓ１８の処理は、アウェイク割り込みルーチン中に行う。
【００９１】
Ｓ１２において、割り込みコントローラ２２に記憶されているＩＲＱ０割り込みをクリアする。
【００９２】
Ｓ１３において、割り込みコントローラ２２にて、スタンバイ割り込み信号２９に伴うＩＲＱ１割り込み（スタンバイ割り込み）の発生有無を判定し、発生有りの場合（“ＹＥＳ”時）はＳ１４〜Ｓ１６へ移行し、発生無しの場合はＳ１７〜Ｓ１９へ移行する。
【００９３】
Ｓ１４〜Ｓ１６において、前記Ｓ１３でのＩＲＱ１割り込みの発生が有った場合、割り込みコントローラ２２に記憶されているＩＲＱ１割り込みをクリアし、スタンバイ割り込みフラグレジスタ１６およびアウェイク割り込みフラグレジスタ１７をクリアする。これによって、ＩＲＱ１割り込みが取り下げられ、復帰命令を発生することで、アウェイク割り込みルーチン終了後に通常状態へ復帰する。
【００９４】
Ｓ１７〜Ｓ１９において、前記Ｓ１３でのＩＲＱ１割り込みの発生が無かった場合、スタンバイ割り込みフラグレジスタ１６およびアウェイク割り込みフラグレジスタ１７をクリアする。そして、復帰命令を発生することで、アウェイク割り込みルーチン終了後に通常状態へ復帰する。
【００９５】
つまり、前記Ｓ１１〜Ｓ１３を経てのＳ１４〜Ｓ１６の処理は、通常状態から、本来スタンバイ割り込み、アウェイク割り込みと受け付けられるところ、スタンバイ割り込みより先にアウェイク割り込みが受け付けられた場合の処理である。この場合のタイミング波形の一例を図１０および図１１に示す。
【００９６】
図１０では、通常状態で、本来スタンバイ割り込み、アウェイク割り込みと受け付けられるところ、内部処理回路の遅延差などによって、スタンバイ割り込みより先にアウェイク割り込みが受け付けられている。このアウェイク割り込みによって、アウェイク割り込みルーチンが行われ、ブロックビットが１となるのでスタンバイ割り込みは保留される。
【００９７】
すると、アウェイク割り込みルーチン後にスタンバイ割り込みルーチンが行われてしまう。そこで、アウェイク割り込みルーチン中に、Ｓ１４〜Ｓ１６の処理によって、この保留されたスタンバイ割り込みを取り下げることで、通常状態に復帰することができる。
【００９８】
なお、図１０のように、ＳＵＳＰＥＮＤ信号がアサート直後にネゲートするような場合は、前述のように図５のローパスフィルタ６において信号を取り除くことで通常状態を保てるので、実際にはこの場合が起こる可能性は少ない。
【００９９】
図１１では、他の割り込みルーチン中に、スタンバイ割り込みとアウェイク割り込みとが入力されている。このスタンバイ割り込みとアウェイク割り込みは、ブロックビットが１であるため共に保留される。そして、他の割り込みルーチン終了後に、優先順位が高いアウェイク割り込みが先に受け付けられる。
【０１００】
すると、アウェイク割り込みルーチン後にスタンバイ割り込みルーチンが行われてしまうため、アウェイク割り込みルーチン中に、Ｓ１４〜Ｓ１６の処理によって、この保留されたスタンバイ割り込みを取り下げることで、通常状態に復帰することができる。
【０１０１】
一方、前記Ｓ１１〜Ｓ１３を経てのＳ１７〜Ｓ１９の処理は、ＩＲＱ１割り込み信号によるスタンバイ状態から、アウェイク割り込みが発生した場合の処理である。したがって、多重割り込みとなっているので、２回の復帰命令で通常状態へ復帰することになる。これは、通常の場合における動作であり、前記図８のタイミング波形のようになる。
【０１０２】
以上のように、図５のシステム構成によれば、特にマイクロコンピュータへの搭載に最適なバスパワード方式のＵＳＢコントローラを実現できる。そして、このＵＳＢコントローラは、バスパワード方式とセルフパワード方式の両方に対応させることができる。
【０１０３】
さらに、マイクロコンピュータに搭載され、セルフパワード方式にしか対応していないＵＳＢコントローラを、容易に、かつマイクロコンピュータに新たな割り込み信号やその処理回路を設ける必要がなく、バスパワード方式に変更することができる。
【０１０４】
以上、本発明者によってなされた発明をその実施の形態に基づき具体的に説明したが、本発明は前記実施の形態に限定されるものではなく、その要旨を逸脱しない範囲で種々変更可能であることはいうまでもない。
【０１０５】
例えば、本発明による半導体集積回路は、バス上でのイベント発生に応じて、低消費電力モードなどを備えるような回路またはデバイスに対しても、そのイベントの検出部分に適用可能である。
【０１０６】
本願において開示される発明のうち、代表的なものによって得られる効果を簡単に説明すれば、以下のとおりである。
【０１０７】
（１）パルス信号の入力に対し、信頼性が高い非同期の信号処理機能を容易に実現可能とする半導体集積回路を実現できる。
【０１０８】
（２）前記（１）の半導体集積回路を用いることで、容易にバスパワード方式に対応したＵＳＢコントローラを実現できる。
【０１０９】
（３）セルフパワード方式とバスパワード方式の両方に対応したＵＳＢコントローラを実現できる。
【０１１０】
（４）ＵＳＢコントローラによる割り込み信号を通常の割り込み信号と併用することで、特に、マイクロコンピュータへの搭載に最適なＵＳＢコントローラを実現できる。
【０１１１】
【発明の効果】
本発明を適用することにより、容易に信頼性の高い半導体集積回路を実現できる。
【図面の簡単な説明】
【図１】本発明の一実施の形態のＵＳＢコントローラにおいて、バスパワード方式に対応したＵＳＢコントローラの構成の一例を示す概略図である。
【図２】本発明の一実施の形態の半導体集積回路において、信号処理回路の構成の一例を示す回路図である。
【図３】本発明の一実施の形態の半導体集積回路において、図２に示す回路の動作の一例を示す波形図である。
【図４】本発明の一実施の形態のＵＳＢコントローラにおいて、図１のＵＳＢコントローラをマイクロコンピュータに適用した際のシステムの構成例を示す概略図である。
【図５】本発明の一実施の形態のＵＳＢコントローラにおいて、図４のシステム構成例に対し、さらに機能を加えたシステムの構成の一例を示す概略図である。
【図６】本発明の一実施の形態のＵＳＢコントローラにおいて、図５のシステム構成例に伴う割り込み処理プログラムの一例を示すフロー図である。
【図７】本発明の一実施の形態のＵＳＢコントローラにおいて、図５のシステム構成例に伴う他の割り込み処理プログラムの一例を示す動作フロー図である。
【図８】本発明の一実施の形態のＵＳＢコントローラにおいて、図５のシステム構成例に伴う割り込み処理のタイミング波形の一例を示す図である。
【図９】本発明の一実施の形態のＵＳＢコントローラにおいて、図５のシステム構成例に伴う割り込み処理の他のタイミング波形の一例を示す図である。
【図１０】本発明の一実施の形態のＵＳＢコントローラにおいて、図５のシステム構成例に伴う割り込み処理のさらに他のタイミング波形の一例を示す図である。
【図１１】本発明の一実施の形態のＵＳＢコントローラにおいて、図５のシステム構成例に伴う割り込み処理のさらに他のタイミング波形の一例を示す図である。
【符号の説明】
１  ＵＳＢインターフェース
２  ＵＳＢデバイスコントローラ
３  エンドポイント
４  ＣＰＵインターフェース
５  サスペンド検出回路
６  ローパスフィルタ
７  イベント検出回路
８  記憶手段
９，１３  遅延回路
１０，１１  論理演算回路
１２  フリップフロップ回路
１４，１５  ＮＯＲ回路
１６，１７  フラグレジスタ
１８  マイクロコンピュータ
１９  パーソナルコンピュータ
２０  ＵＳＢコントローラ
２１  ウェイクアップコントローラ
２２  割り込みコントローラ
２３  サスペンド・アウェイク信号デコード回路
２４  信号処理回路
２５  ＳＵＳＰＥＮＤ信号
２６  ローパスフィルタ出力信号
２７，２８  検出パルス信号
２９  スタンバイ割り込み信号
３０  アウェイク割り込み信号
３１  ＩＲＱ０・アウェイク割り込み選択回路
３２  ＩＲＱ１・スタンバイ割り込み選択回路
３３  割り込み選択手段
【図１】
2004348460.tif 000003
【図２】
2004348460.tif 000004
【図３】
2004348460.tif 000005
【図４】
2004348460.tif 000006
【図５】
2004348460.tif 000007
【図６】
2004348460.tif 000008
【図７】
2004348460.tif 000009
【図８】
2004348460.tif 000010
【図９】
2004348460.tif 000011
【図１０】
2004348460.tif 000012
【図１１】
2004348460.tif 000013