(57)【要約】【課題】バス・システムの第1の端末のプロセッサから、バス・システムの第2の端末まで、またはその逆で、データを輸送するために必要なオーバーヘッドの量を減らすこと。【解決手段】本発明は、データおよび制御信号を転送するためのバスによって結合されている第1の端末（202）と第2の端末（203、204）とを備えているバス・システムに関する。前記バスは、当該第1の端末（202）が当該第2の端末（203、204）に繰り返しリクエストを送信し、かつ前記第2の端末（203、204）が当該リクエストに応答するプロトコルによって作動すると着想されている。前記第1の端末（202）は、インタラプト可能なプロセッサ（206）とバス・インターフェース（207）とを備えている。前記バス・インターフェース（207）は、当該第2の端末（203、204）の選択された応答に受信によって、前記インタラプト可能なプロセッサ（206）をインタラプトするために動作可能である。前記インタラプト可能なプロセッサ（206）は、前記バス・インターフェース（207）のインタラプトを処理するように操作可能である。【選択図】図２
2005504393.tif 000002
【特許請求の範囲】
【請求項１】
データおよび制御信号を転送するためのバスによって結合されている第1の端末と第2の端末とを備え、当該バスが、当該第1の端末が当該第2の端末に繰り返しリクエストを送信し、かつ当該第2の端末が当該リクエストに応答するプロトコルによって作動するバス・システムにおいて、当該第1の端末は、インタラプト可能なプロセッサとバス・インターフェースとを備え、
当該バス・インターフェースは、当該第2の端末の選択された応答の受信によって、当該インタラプト可能なプロセッサをインタラプトするために動作可能であり、
当該インタラプト可能なプロセッサは、当該バス・インターフェースのインタラプトを処理するために操作可能であることを特徴とするバス・システム。
【請求項２】
当該選択された応答は、前記第2の端末からの応答信号を含まないことを特徴とする請求項1に記載のバス・システム。
【請求項３】
当該バス・システムは、USBバス・システムであることを特徴とする請求項1に記載のバス・システム。
【請求項４】
バスとインタラプト可能なプロセッサにインタラプトをかけるためのインタラプト出力との接続を備えているバス・インターフェースにおいて、当該バス・インターフェースも、当該接続からの応答を受信し、かつ前記インタラプト出力にインタラプト信号を送信することによって選択された応答の受信によって当該プロセッサをインタラプトするために動作可能なコントローラを備えていることを特徴とするバス・インターフェース。
【請求項５】
当該選択された応答は、当該接続の応答信号を含まないことを特徴とする請求項4に記載のバス・インターフェース。
【請求項６】
当該端末は、USBインターフェースとして作動するために準備されていることを特徴とする請求項4に記載のバス・インターフェース。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、データおよび制御信号を転送するためのバスによって結合されている第1の端末と第2の端末とを含んでおり、当該バスが、当該第1の端末が当該第2の端末に繰り返しリクエストを送信し、かつ当該第2の端末が当該リクエストに応答するというプロトコルによって作動するバス・システムに関する。
【０００２】
また、本発明は、バスとインタラプト可能なプロセッサにインタラプトをかけるためのインタラプト出力との接続を備えているバス・インターフェースに関する。
【背景技術】
【０００３】
このようなバス・システムは、USB規格に開示されている。USB規格は、コンパックコンピュータ社、ヒューレット・パッカード社、インテル社、ルーセント・テクノロジー社、マイクロソフト社、日本電気株式会社、およびコーニンクレッカ  フィリップス  エレクトロニクス  エヌ  ヴィ社を含む一群の会社によって提案された標準規格である。本発明の完全な理解に適切なUSBの各種の態様については後述する。USBに関する更なる背景は、参照文献として本明細書に含まれる、USB規格（リビジョン2.0）から得ることができる。
【０００４】
USBは、パーソナルコンピュータと多種多様な周辺機器（例えば、ウェブカメラ、プリンタ、スキャナ、マイクおよびキーボード）との間のデータ交換をサポートするように設計されている標準バスである。従って、USBは、RS-232Cシリアルポート、パラレル・ポートおよびPS/2インターフェースなどの従来のインターフェースに取って代わるものである。例えば、USB On-The-Goに記載されているように、USBの更なる開発は、他の装置をパーソナルコンピュータに置き換えるバス・システムを照準として定めている。例えば、このような他の装置には、デジタル・スチルカメラ、ビデオカメラ、パーソナル携帯情報機器または携帯電話機を用いることが出来るであろう。
【０００５】
USBシステムのようなバス・システムの場合、電子性バス・ステーションは、バスを介して互いに接続されている。通常、バス・ステーションは、データを処理または生成するため、およびデータのフロー制御を行うために、プロセッサまたは演算システムを備えている。USB端末は、ホスト（例えば、パーソナルコンピュータ）およびデバイス（周辺機器）として規定されている。一般に、いかなるUSBシステムにおいても、ホストは一つしか存在しない。ホストのUSBインターフェースは、ホスト・コントローラとも呼ばれる。ホスト・コントローラは、ハードウェア、ファームウェアまたはソフトウェアの組合せで、実施することができる。USBデバイスは、追加的な取付点を提供するハブ、またはシステムに可能出力を提供するファンクションとして規定されている。これらのデバイスは、階層的なスター・トポロジーでホストに接続されている。ハブは、USBデバイスが取付けられるまたは取り外されることを示す。ホストは、新しく取り付けられたUSBデバイスが、ハブであるかファンクションであるかを決定し、かつそのUSBデバイスに固有のUSBアドレスを割り当てる。全てのUSBデバイスは、固有のUSBアドレスによってアクセスされる。加えて、各々のデバイスは、ホストが通信できる単数または複数のエンドポイントをサポートする。以下の説明は、ファンクションとして規定されるUSBデバイスに限るものである。
【０００６】
USBは、ポーリングされるバスである。ホスト・コントローラにより、あらゆるデータ転送が開始される。大部分のバス・トランザクションには、3つのパケットが関係する。ホスト・コントローラが、スケジューリングに基づいて、トランザクションのタイプおよび指示と、USBデバイスアドレスと、エンドポイント番号とが記述されているUSBパケットを送信することによって、各々のトランザクションが開始される。このパケットは、「トークン・パケット」と呼ばれる。アドレス指定されたUSBデバイスは、適正なアドレス・フィールドを復号することによってそれ自体を選択する。所定のトランザクションでは、ホストからデバイスまで、またはデバイスからホストまでのいずれかで、データ転送が行われる。データ転送の方向は、トークン・パケットにおいて指定されている。このとき、トランザクションの転送元は、データ・パケットを送信する、または転送するデータがないことを示す。一般に、転送先は、データ転送が成功したか否かを示すハンドシェイク・パケットによって応答する。
【０００７】
USBアーキテクチャには、次の3つの基本タイプのデータ転送が包含される。(1)アイソクロナス転送：ホストとデバイスとの間の周期的で、連続的な通信で、通常、予めネゴシエートされた待ち時間でUSBバンド幅の予めネゴシエートされた量を占有する時間関連情報に用いられる。(2)インタラプト転送：低周波数で、通信待ち時間が固定されている通信で、通常、人間の認知可能なエコーまたはフィードバック応答特性を有する文字または座標などのアシンソクロナス・データに用いられる。(3)バルク転送：非周期性で、大きいパケットのバースト通信で、通常、いかなる有効なバンド域幅も用いることができ、かつバンド域幅が有効になるまで遅延させることが出来るデータに用いられる。
【０００８】
バス・ステーションの双方のタイプ、つまり、ホストとデバイスは、通常、データの処理または生成のいずれかを行うため、および／またはデータのフロー制御を行うためのプロセッサまたはコンピューティングシステムを備えている。上述したUSBシステムの簡単な実施は、ホストとして機能するバス・ステーションのプロセッサと、デバイスとして機能するバス・ステーションのプロセッサとの双方にかなりのオーバーヘッドをかけることになる。このことは、特に、インタラプト転送の場合に言える。バス・システムがポーリングを行なうために、ホストは定期的に関係するデバイス（例えば、キーボード）に問い合わせを行い、このデバイスから返される応答を評価することが必要となる。
【発明の開示】
【課題を解決するための手段】
【０００９】
本発明の目的は、とりわけ、バス・システムの第1の端末のプロセッサから、バス・システムの第2の端末まで、またはその逆で、データを輸送するために必要なオーバーヘッドの量を減らすことである。
【００１０】
このために、本発明は、冒頭のパラグラフにおいて規定されたバス・システムにおいて、当該第1の端末は、インタラプト可能なプロセッサとバス・インターフェースとを備え、
当該バス・インターフェースは、当該第2の端末の選択された応答の受信によって、当該インタラプト可能なプロセッサをインタラプトするために動作可能であり、
当該インタラプト可能なプロセッサは、当該バス・インターフェースのインタラプトを処理するために操作可能であることを特徴とするバス・システムを提供する。
【００１１】
作動中、第1の端末内のプロセッサは、第2の端末に情報を提供すること、または第2の端末から情報を得ることが必要となる。このために、第1の端末は、第2の端末と通信することが必要となる。USBシステムのようなポーリングされたバス・システムでは、USBシステムのホストとなる第1の端末によって、通信が開始される。USBシステムの一デバイスである第2の端末が、不規則にデータを受信または提供することしか出来ない場合には、情報の転送が成功する前に、第1の端末は第2の端末に何度もポーリングを行うことが必要となる事態がしばしば生じる。換言すれば、このような状況下では、第1の端末は、情報の転送が成功する前に、相対的に多く、第2の端末の応答を評価することが必要となる。
【００１２】
一方、さらなる動作が要求されない場合には、当該プロセッサをインタラプトする必要はない。したがって、通信が予定通りに完了した場合、または第2の端末によって何ら新たな情報・新たなデータ項目が提供されない場合のいずれかでは、第2の端末との通信結果の報告を戻す必要がない。例えば、USBシステムでは、第2の端末は、データ項目肯定応答信号・否定応答信号を有するメッセージを送信すること、信号が停止されていることを示す信号を送信することによって応答することができる。さらに、第2の端末が、信号の送信に対して応答しない場合、または第1の端末と第2の端末との間の通信エラーに起因して、第1の端末で信号を受信しない場合には、これを応答と解釈することも出来る。したがって、この選択された応答には、第2の端末からの応答信号が含まれない場合がある。したがって、プロセッサによる更なる動作を要求する応答が受信された場合のみ、プロセッサをインタラプトさせれば、プロセッサの通信オーバーヘッドは減少する。このために、バス・インターフェースは、受信された応答の中から、そのような応答を選択する。このような状況を処理できるように、プロセッサをプログラムすることによって、プロセッサは、必要に応じて更なる動作を決定することができる。
【００１３】
本発明のバス・インターフェースは、バスとインタラプト可能なプロセッサにインタラプトをかけるためのインタラプト出力との接続を備え、当該バス・インターフェースも、当該接続からの応答を受信し、かつ前記インタラプト出力にインタラプト信号を送信することによって選択された応答の受信によって当該プロセッサをインタラプトするための動作可能なコントローラを備えていることを特徴とする。
【発明を実施するための最良の形態】
【００１４】
これらおよびその他の本発明の態様は、以下に記述されている実施例から明らかになり、かつ、以下に記述されている実施例を参照して説明される。各図において、同一の部分は、同一の参照符号によって示される。
【００１５】
図1は、USB規格のリビジョン2.0において特定されている、インタラプト・トランザクションフォーマットを示すダイアグラムである。USBの中で、全ての通信は、ホストから開始される。全てのUSBデバイスは、固有のUSBアドレスによってアクセスされる。加えて、各々のデバイスは、ホストと通信することができる単数または複数のエンドポイントをサポートしている。
【００１６】
USBは、ファンクショナルデータ、およびUSBホストとUSBデバイスとの間の交換制御をサポートする。USBデータ転送は、ホスト・ソフトウェアとUSBデバイス上の特定のエンドポイントとの間で生じる。USBアーキテクチャには、以下の3つ基本タイプの転送が包含される。
【００１７】
- アイソクロナス転送、つまり、アイソクロナス・データまたは予めネゴシエートされた待ち時間のUSBバンド幅の予めネゴシエートされた量を占有するストリーミングリアルタイム・データの転送。
【００１８】
- インタラプト転送、つまり、アシンソクロナス双方向データ（例えば人間の認知可能なエコーまたはフィードバック応答特性を有する指標または座標）の転送。
【００１９】
- バルク転送、つまり、相対的に大きくバースト的な数量で生成または消費され、かつ広く動的な許容範囲および伝送制約を有するアシンソクロナス・ブロック転送データの転送。
【００２０】
進行中のトランザクションがない場合、USBシステムは、アイドルモード101になる。データ転送を備えているバス・トランザクションでは、通常、セットアップステージ102と、データステージ103と、ステータスステージ104という、3つのステージを備えている。
【００２１】
データ転送を含むバス・トランザクションは、通常、3つの異なるパケット、例えば、トークン・パケット105、106、データ・パケット107、108およびハンドシェイク・パケット109、110、111、112、115、116の伝送に関係する。
【００２２】
インタラプト・トランザクションは、イン転送またはアウト転送から構成することができる。イン転送の場合、USBホストは、入力トークン105を送信することによってトランザクションを開始する。USBデバイスは、入力トークン105を受信すると、データ107、否定応答信号（NAK）111、またはUSBデバイスが命令（STALL）112を完了することができないことを示す信号を戻すことができる。USBデバイスは、USBホストへ戻すための新たなインタラプト情報が、エンドポイントにない場合（すなわち、インタラプトの待機中でない場合）、データステージ103で、NAKハンドシェーク111を戻す。USBデバイスは、命令を完了することができない場合には、STALLハンドシェーク112を戻す。USBデバイスは、インタラプトの待機中、データ・パケット107としてインタラプト情報を戻す。USBホストは、データ・パケット107が不正に受信された場合、データ107がエラーなく受信された場合、またはデータ・パケット107がライン113によって示される、ハンドシェークなしに戻る場合には、データ・パケット107の受け取りに応答して、いずれの場合にも、ACKハンドシェーク109（肯定応答信号）を発行する。さらに、USBホストは、入力トークン105に対するUSBデバイスからの応答が、全く受信できない場合には、ACK109を発行しない。この状況は、ライン114によって示される。イン転送の完了の後、USBシステムは、アイドルモード101に戻る。
【００２３】
アウト転送の場合、USBホストは、出力トークン106を送信することによってトランザクションを開始する。次いで、USBホストは、データ・パケット108を送信する。USBデバイスは、データ・パケット108がエラーなく受信された場合、ステータスステージ104で、ACKハンドシェーク110、デバイスがデータを処理することができないことを示すNAKハンドシェーク115、または、USBデバイスがストール中であることを示しているSTALLハンドシェーク116を発行することができる。USBデバイスは、データ・パケット108が不正に受信された場合には、ライン117によって示される、ハンドシェークなしに戻る。さらに、USBデバイスは、ライン118によって状況が示される、USBホストからデータを受信しない場合に、ACKハンドシェーク110を発行しない。アウト転送の完了の後、USBシステムは、アイドルモードに101を戻る。
【００２４】
全てのパケットは、シンクロナス（SYNC）フィールドから開始される。これは入力回路で着信データとローカル・クロックとを同調させるために用いられる。すべてのUSBパケットは、SYNCフィールドの直後に、パケット識別子（PID）がある。PIDは、４ビットのチェックフィールドと、その後の４ビットのIDフィールドとから構成されている。PIDは、パケット（例えば、トークン・パケット105、106、データ・パケット107、108およびハンドシェイク・パケット 109、110、111、112、115、116）のタイプ、およびパケットのフォーマットに加えて、そのパケットに適用される変異検出のタイプを示す。PIDの４ビットのチェックフィールドにより、確実に信頼性の高い復号が行える。
【００２５】
トークン・パケット105、106は、トークンPIDの値に従って、データ・パケット107、108の転送元または転送先であるUSBアドレスによって、目標USBデバイスを指定するADDRフィールドを備えている。USBデバイスは、ADDRフィールドの完全な復号を実行しなければならない。
【００２６】
データ・パケット107、108は、ゼロからNバイトまで変動する場合があり、整数バイトとなるべきデータ・フィールドを備えている。各々のバイト内のデータ・ビットは、最初に最上位ビットからシフトされる。データ・パケットのデータ・フィールドは、リクエストがなされつつあることについてUSBデバイスに付加的な情報を与えるフィールドに分けられる。あるフィールド（命令コード）は、USBデバイス空間からの読み出しのセットアップ、または、USBデバイス空間への書き込みのセットアップを行うなど、ターゲットとなるUSBデバイスが何をすべきかを伝える。読み出し空間命令は、USBデバイスの所定空間の所定位置からの情報をリクエストするために用いられる。この命令は、読み出しのセットアップを行うために用いられる。この後に、データを送信すると言うUSBデバイスのホストからのリクエストが続く。その後、USBデバイスは、既に指定されている空間から読み出したデータを送信する。書き込み空間は、読み出し空間と全く同じ規定を使用する。しかしながら、データ・パケットには、ホストによってUSBデバイスに転送されるデータが含まれる。
【００２７】
ハンドシェイク・パケット109、110、111、112、115、116は、PIDのみから構成されている。上述したように、ハンドシェイク・パケットは、データ転送のステータスを報告するために用いられ、データの受信が成功したことを示す値、CRCの不成功を示す値、フロー制御を示す値および特定の障害状態を示す値を返すことができる。
【００２８】
図2は、本発明のバス・システムを示すブロック図である。バス・システム201は、USBホストとしての役割を果たす第1の端末202と、USBデバイスとしての役割を果たす第2の端末203および204とを備えている。端末202、203、204は、バス接続205によって結合されている。第1の端末202は、更に詳細に示されている。第1の端末202は、インタラプト可能なプロセッサ206と、バス・インターフェース207とを備える。バス・インターフェース207は、バッファ208とコントローラ209とを備える。バッファ208が、バス・インターフェース207の一部であることは、必須ではない。バッファ208を、バス・インターフェース207の外側であって、第1の端末202内に配置して、代わりの装置としてもよい。バッファ208は、プロセッサ206とコントローラ209との双方によってアクセスされる。コントローラ209は、バス接続205に結合されている。さらに、コントローラ209は、プロセッサ206に対するインタラプト接続210を有している。
【００２９】
図3Aは、データ伝送のためのトランザクションを示すメッセージ・ダイアグラムである。メッセージ・ダイアグラムには、イン転送からなるインタラプト・トランザクションのための図1のシステムの動作を図示している。上から下へ時間が経過している。プロセッサ206とバス・インターフェース207との間の情報交換は、第1のライン301と第2のライン302との間の矢印によって表されている。バス・インターフェースと第2の端末203、204との間の情報交換は、第2のライン302と第3ライン303との間の矢印によって表されている。
【００３０】
プロセッサ206は、第2の端末（USBデバイス）203、204のうちの1つから、データを要求する。このため、バス・インターフェース207は、データに対するリクエストを、バス接続205に繰り返し発行しなければならない。プロセッサ206に対する通信オーバーヘッドを減らすために、プロセッサ206は、リクエスト特性を一度提供するのみで充分とすべきである。アドレス指定がされたUSBデバイスが、第1の端末へデータを戻す場合、バス・インターフェース207は、インタラプト接続210によってプロセッサ206にインタラプトを行い、プロセッサ206にデータを提供しなければならない。エラーが発生する場合には、プロセッサ206に、通知を行う必要もある。これらの状況では、バス・インターフェース207は、プロセッサ206にも、インタラプトをかけなければならない。他の状況では、バス・インターフェース207は、プロセッサ206にインタラプトすべきでないので、プロセッサ206からの動作は要求されない。
【００３１】
イン転送304では、プロセッサ206は、メッセージ309によって、リクエスト特性をバス・インターフェース207に送信する。ここで、リクエスト特性は、バッファ208に格納される。バス・インターフェース207は、バッファ208から読み出される、メッセージ309内のリクエスト特性に基づき、バス接続205上に入力トークン310を発行することによってイン転送を開始する。アドレス指定がされたUSBデバイスである第2の端末は、データ項目を有するメッセージ311を送信することによって応答する。バス・インターフェース207は、このメッセージ311の受信で、新たなデータが有効なことをプロセッサ206へ知らせるために、プロセッサ206に対してインタラプト接続210を介して、インタラプト信号312を送信する。さらに、バス・インターフェース207は、アドレス指定がされたUSBデバイスに、ACK信号313を発行する。これにより、イン転送304が完了する。
【００３２】
イン転送305では、バス・インターフェース207は、同一のリクエスト特性を有するイン転送304に続き、新たな情報がプロセッサ206から要求されないときに、バッファ208から再びリクエスト特性を読み出す。バス・インターフェース207は、バス接続205上に入力トークン314を発行することによってイン転送を開始する。アドレス指定がされたUSBデバイスは、データ項目を有するメッセージ315を送信することによって応答する。バス接続205上のエラーに起因して、第2のメッセージ315は、バス・インターフェース207によって不正に受信される。したがって、バス・インターフェース207は、ACKハンドシェークを発行しない。その代わり、バス・インターフェース207は、エラーが発生したことをプロセッサ206に知らせるために、プロセッサ206に対してインタラプト接続210を介してインタラプト信号316を送信する。これにより、イン転送305が完了する。
【００３３】
イン転送306では、バス・インターフェース207は、同一のリクエスト特性を有するイン転送304に続いて、バッファ208から再びリクエスト特性を読み出すが、プロセッサ206からは新たな情報は何ら要求されない。バス・インターフェース207は、バス接続205上に入力トークン317を発行することによってイン転送を開始する。バス接続205のエラーに起因して、入力トークン317が、アドレス指定がされたUSBデバイスで、正しく受信されない。このため、アドレス指定がされたUSBデバイスは、入力トークン317に応答しない。USBデバイスによる応答がない場合、バス・インターフェース207は、エラーが発生したことをプロセッサ206に知らせるために、プロセッサ206に対してインタラプト接続210を介してインタラプト信号318を送信する。これにより、イン転送306が完了する。
【００３４】
イン転送307では、バス・インターフェース207は、同一のリクエスト特性を有するイン転送304に続き、バッファ208から再びリクエスト特性を読み出すが、プロセッサ206から新たな情報は何ら要求されない。バス・インターフェース207は、バス接続205上に入力トークン319を発行することによってイン転送を開始する。アドレス指定がされたUSBデバイスは、有効なデータがないことを示す、NAKハンドシェーク320によって応答する。これにより、イン転送307が完了する。
【００３５】
イン転送308では、バス・インターフェース207は、同一のリクエスト特性を有するイン転送304に続き、バッファ208から再びリクエスト特性を読み出すが、プロセッサ206から新たな情報は何ら要求されない。バス・インターフェース207は、バス接続205上に入力トークン321を発行することによってイン転送を開始する。アドレス指定がされたUSBデバイスは、命令を完了することができないことを示す、STALLハンドシェーク322によって応答する。バス・インターフェース207は、STALLハンドシェーク322の受信で、プロセッサ206にインタラプト接続210を介してインタラプト信号323を送信する。これにより、イン転送308が完了する。
【００３６】
イン転送304、305、306、307および308が、バス・システムの機能を明らかにするためのみに例示されていて、かつバス・システムの機能が、ここに示されているイン転送にも、イン転送が示される順序にも限定されないことは、明らかであろう。
【００３７】
図3Bは、データ伝送のためのトランザクションを示すメッセージ・ダイアグラムである。メッセージ・ダイアグラムには、アウト転送からなるインタラプト・トランザクションのための図1のシステムの動作を図示する。上から下へ時間が経過している。プロセッサ206とバス・インターフェース207との間の情報交換は、第1のライン301と第2のライン302との間の矢印によって表されている。バス・インターフェースと第2の端末203、204との間の情報交換は、第2のライン302と第3ライン303との間の矢印によって表されている。
【００３８】
プロセッサ206は、第2の端末（USBデバイス）203、204のうちの1つへデータを転送することが必要となる。このため、バス・インターフェース207は、バス接続205に受信データのリクエストを繰り返し発行しなければならない。プロセッサ206に対するオーバーヘッド通信を減らすために、プロセッサ206は、リクエスト特性を一度提供すれば充分とすべきである。アドレス指定されたUSBデバイスがデータを受け入れる場合、バス・インターフェース207は、インタラプト接続210によってプロセッサ206にインタラプトを行い、プロセッサ206に知らせなければならない。エラーが発生する場合にも、プロセッサ206に通知を行う必要がある。このような状況では、バス・インターフェース207は、プロセッサ206にもインタラプトをかけなければならない。他の状況では、バス・インターフェース207は、プロセッサ206にインタラプトを行ってはならないので、プロセッサ206からの動作は要求されない。
【００３９】
アウト転送324では、プロセッサ206は、メッセージ329によって、リクエスト特性をバス・インターフェース207に送信する。ここで、リクエスト特性はバッファ208に格納される。バス・インターフェース207は、バッファ208から読み出される、メッセージ329内のリクエスト特性に基づき、バス接続205上に出力トークン330を発行することによってアウト転送を開始する。続いて、バス・インターフェース207は、データ・パケット331を発行する。アドレス指定がされたUSBデバイスである第2の端末は、ACKハンドシェーク332を送信することによって応答する。バス・インターフェース207は、ACKハンドシェーク332の受信で、データ転送が成功したことをプロセッサ206へ知らせるために、プロセッサ206に対してインタラプト接続210を介して、インタラプト信号333を送信する。別の装置では、プロセッサ206は、インタラプトされない場合、データ伝送が成功したと仮定するため、バス・インターフェース207は、プロセッサ206にインタラプト信号333を送信しない。
【００４０】
アウト転送325では、バス・インターフェース207は、同一のリクエスト特性を有するアウト転送324に続き、バッファ208から再びリクエスト特性を読み出すが、プロセッサ206から新たな情報は何ら要求されない。バス・インターフェース207は、バス接続205上に出力トークン334を発行することによってアウト転送を開始する。バス・インターフェースは、続いて、データ・パケット335を発行する。アドレス指定がされたUSBデバイスは、転送されたデータを処理するための用意ができていないことを示すために、NAKハンドシェーク336を発行することによって応答する。これにより、アウト転送325が完了する。
【００４１】
アウト転送326では、バス・インターフェース207は、同一のリクエスト特性を有するアウト転送324に続き、バッファ208から再びリクエスト特性を読み出すが、プロセッサ206から新たな情報は何ら要求されない。バス・インターフェース207は、バス接続205上に出力トークン337を発行することによってアウト転送を開始する。バス・インターフェース207は、続いて、データ・パケット338を発行する。それに応じて、USBデバイスは、アウト転送を処理することができないことを示すために、STALLハンドシェーク339を送信する。バス・インターフェース207は、STALLハンドシェーク339の受け取りによって、アドレス指定がされたUSBデバイスのステータスをプロセッサ206に知らせるために、インタラプト接続210を介してインタラプト信号340をプロセッサ206に送信する。これにより、アウト転送326が完了する。
【００４２】
アウト転送327では、バス・インターフェース207は、同一のリクエスト特性を有するアウト転送324に続き、バッファ208から再びリクエスト特性を読み出すが、プロセッサ206から新たな情報は何ら要求されない。バス・インターフェース207は、バス接続205上に出力トークン341を発行することによってアウト転送を開始する。バス・インターフェースは、続いて、データ・パケット342を発行する。バス接続205のエラーに起因して、データ・パケット342が、アドレス指定がされたUSBデバイスで、正確に受信されない。このため、アドレス指定がされたUSBデバイスは、応答しない。USBデバイスによる応答がない場合、バス・インターフェース207は、プロセッサ206にその処理を通知するために、インタラプト接続210を介してインタラプト信号343を送信する。これにより、アウト転送327が完了する。
【００４３】
アウト転送328では、バス・インターフェース207は、同一のリクエスト特性を有するアウト転送324に続き、バッファ208から再びリクエスト特性を読み出すが、プロセッサ206から新たな情報は何ら要求されない。バス・インターフェース207は、バス接続205上に出力トークン344を発行することによってアウト転送を開始する。エラー条件の発生に起因して、バス・インターフェース207は、順次データ・パケットの発行を開始せず、または既に開始されている順次データ・パケットの発行を完了させない。このため、バス・インターフェース207は、プロセッサ206にその処理を通知するために、インタラプト接続210を介してインタラプト信号345を送信する。これにより、アウト転送328が完了する。
【００４４】
アウト転送324、325、326、327および328が、バス・システムの機能を明らかにするためのみに例示されていて、かつバス・システムの機能が、ここに示されているアウト転送にも、アウト転送が示される順序にも限定されないことは、明らかであろう。
【００４５】
図4は、本発明のバス・インターフェースを示すブロック図である。図4に示されるブロック図は、バス・インターフェース集積回路のブロック図である。バス・インターフェース集積回路401は、二つの役割を有している。それは、USBデバイスの機能を果たしているバス・ステーションの部分と、USBホストの機能を果たしているバス・ステーションの部分である。このことは、特にUSB On-The-Go（OTG）装置に有効である。例えば、このようなUSB OTG装置は、デジタル・スチルカメラ、ディジタルビデオ・カメラ、パーソナル携帯情報機器またはオシロスコープとすることができる。そして、それらは、特定の動作モードで、USBを介して、例えば、大容量記憶装置（例えば、ハードディスク装置、光レコーダまたは半導体のレコーダ）、プリンタまたは携帯電話機に接続される。この動作モードでは、USB OTG装置は、USBホストとして機能を果たさなければならない。他の動作モードでは、USB OTGは、USBを介して、例えば、パーソナルコンピュータに接続される。この動作モードでは、USB OTG装置は、USBデバイスとして機能を果たさなければならない。USB OTG装置のバス・インターフェース集積回路が作動するモードは、USB OTG装置内のプロセッサによって決定され、かつ制御されるソフトウェアで実現すればよい。
【００４６】
USB OTG装置が携帯用の場合、例えば、バス・トラフィックが低い、あるいはバス・トラフィックが全くない期間には、バス・インターフェース集積回路が特定の機能ブロックをシャットダウンする、または、低いクロック・スピードで作動する、低消費電力モードが用意されていることが好ましい。このような低い消費電力モードは、特定あるいは全ての機能ブロックの動作に戻すために、またはバス・インターフェース集積回路のクロック・スピードを増加させるために、USB OTG装置のプロセッサによって制御される、いわゆるリモート・ウェイク・アップ特性を備えていることによって強化することができる。例えば、プロセッサが、バス・トラフィックの増加を予期する場合、リモート・ウェイク・アップ特性を活性化すればよい。
【００４７】
バス・インターフェース集積回路401は、バス・インターフェース集積回路401がUSBホストとして作動する場合には、プロセッサとの接続402、USBに対して接続するための接続403を備えている。そして、バス・インターフェース集積回路401がUSBデバイスとして作動する場合には、USBに対して接続するための接続404を備えている。実際に実施する場合には、内部マルチプレクサが、バス信号の内部ルーティングの処理を行うときに、接続403および404が、同じ入出力端子を共有することがある点に注意する。このような実施は、接続403および404が、同時に用いられないことが保証される場合には好ましい。
【００４８】
バス・インターフェース集積回路401は、さらにホスト−デバイス・マルチプレクサ（HMD）405、タイミング・ブロック（TB）406、ホストインターフェース（HI）407、デバイス・インターフェース（DI）408、ホスト・コントローラ（HC）409、デバイス・コントローラ（DC）410、ホスト・バッファ（HB）411、デバイス・バッファ（DB）412、ホスト・トランシーバ（HT）413およびデバイス・トランシーバ（DT）414を備えている。
【００４９】
ホスト−デバイス・マルチプレクサ405は、プロセッサとの接続402に接続されている。プロセッサの制御の下で、ホスト−デバイス・マルチプレクサ405が、プロセッサによって、バス・インターフェース集積回路401の通信の内部ルーティングを決定することが好ましい。バス・インターフェース集積回路401がUSBホストとして作動する場合には、ホスト−デバイス・マルチプレクサ405は、ホストインターフェース407を介して、ホスト・コントローラ409を、プロセッサに連結する。バス・インターフェース集積回路401がUSBデバイスとして作動する場合には、ホスト−デバイス・マルチプレクサ405は、デバイス・インターフェース408を介して、デバイス・コントローラ410を、プロセッサに連結する。ホスト・コントローラ409は、ホスト・トランシーバ413を介してバス接続403にアクセスする。デバイス・コントローラ410は、デバイス・トランシーバ414を介してバス接続404にアクセスする。
【００５０】
ホスト・バッファ411は、ホスト−デバイス・マルチプレクサ405を介したプロセッサと、ホスト・コントローラ409との双方によってアクセス可能である。ホスト・バッファ411は、例えば、プロセッサによって発行されたリクエスト特性を格納するため、かつホスト・コントローラ409とUSBデバイスとの間の通信結果を格納するために用いることができる。
【００５１】
デバイス・バッファ412は、ホスト−デバイス・マルチプレクサ405を介したプロセッサと、デバイス・コントローラ410との双方によってアクセス可能である。デバイス・バッファ412は、例えば、USBホストに送信するために、プロセッサによって生成されるデータをバッファリングするために用いることができる。
【００５２】
バス・インターフェース集積回路と広範囲にわたるプロセッサとの間の提携をサポートするために、ホスト・バッファ411およびデバイス・バッファ412は、直接メモリーアクセス（DMA）モードのプロセッサと並列入出力モードのプロセッサとの双方によって、アクセス可能であることが好ましい。
【００５３】
バス・インターフェース集積回路401内のバッファとプロセッサとの間の通信のいくつかの手段をサポートすることが好ましい。これにより、プロセッサの選択がより拡がる結果になる。DMA動作のサポートは、例えば、より精巧なコンピュータ・システムによって行うことができる。バス・インターフェースによって、さらにDMA動作をサポートする場合には、プロセッサの通信オーバーヘッドを更に減らすことができる。一方、あまり精巧でないバス・ステーションでは、DMAコントローラのサポートがない全ての通信を、プロセッサが処理することになる。このような状況では、バス・インターフェースが、並列入出力モードで、バス・インターフェースとプロセッサとのデータ交換をサポートすることが必要となる。
【００５４】
上述の実施例は、バス・インターフェース集積回路に関するものであるが、当業者にとって、別のブロック、またはダイアグラムのブロックのグループを、別の集積回路および個別素子で具体化できることは明らかである。このように、ブロック図によって記載されているバス・インターフェースに関する別の実施例では、各種のブロックの機能を実行している複数の集積回路および個別素子を備えていることができる。
【００５５】
バス・システムの要求に従い、集積回路としてバス・インターフェースを実現することが好ましい。集積回路の素子数の減少と、これによる領域の最小化とを可能にする機能の統合化により、バス・インターフェースを備えているバス・ステーションの物理的な大きさは減少するという結果になる。さらに、バス・インターフェースを集積回路として実現することによって、消費電力を減少させることができる。
【００５６】
バス・システムの要求に従い、極力、標準的に構築されているブロックを用いて、複数の集積回路および個別電子部品を有するバス・インターフェースを実現することが好ましい。これにより、バス・インターフェースの原価を低減させることができる。
【００５７】
図5は、先入れ先出し（first-in, first-out ：FIFO）方法で構成されるバッファ501の模式的な概要である。この方法は、ホスト・バッファ411を効率よく体系づけるものである。FIFOバッファの上部は、矢印502によって示されている。FIFOバッファの下部は、矢印503によって示されている。バッファは、例えば、USBトランザクションまたはそれ以上に特にUSBインタラプト・トランザクションを開始するためのいくつかのリクエスト504、505、506のリクエスト特性を格納する。概要としては、最初に発行されるリクエスト特性は、504によって示され、2番目に発行されるリクエスト特性は、505によって示され、最後に発行されるリクエスト特性は、506によって示される。領域507は、残りのリクエスト特性を示す。それと共に、領域508は、FIFOバッファの残りの未使用空間を示す。リクエスト特性は、2つの部分に分けられる。それは、すなわち、転送記述子またはヘッダ509の部分と、規定の場合のペイロード・データ510の部分とである。転送記述子509は、ホスト・コントローラ409によって処理されるトランザクションの特性が記述されている。ペイロード・データ510は、ホスト・コントローラ409によって処理されるトランザクションのデータ・パケットに含まれるべきデータである。転送記述子509は、トランザクションの結果を格納するために、ホスト・コントローラ409によっても用いられる。したがって、プロセッサおよびホスト・コントローラ409は、FIFOバッファ501にアクセスすることになる。
【００５８】
先入れ先出しモードのバッファを準備することが好ましい。このように、プロセッサとコントローラとの双方が、バッファに格納されているデータに、相対的にシンプルに、アクセスすることができる。
【００５９】
リクエスト特性および第2の端末との通信結果を格納するためにバッファを用いることが好ましい。リクエスト特性とそれらのリクエスト結果とを格納するために同じバッファが用いられるので、バッファまたは少なくともバッファの指定された区間にリード・アクセスするプロセッサを与えることによって、効率のよい通信手段が確立される。従って、リクエスト特性を書き込む場合に、アクセスのタイプを書き込みモードから読み出しモードへ変更するのみで、プロセッサは、同一の手段によりバッファにアクセスすることができる。
【００６０】
プロセッサによって提供される情報に基づいて、バス・インターフェースに正確なポーリング・インターバルを決定させることが好ましい。可能な限りポーリング・レートの数を制限することにより、別のポーリング・レートの別のリクエストを処理する際のバス・インターフェースの作業をシンプルにする。例えば、プロセッサが、1、2、3、および128ミリ秒の間のいかなるポーリング・レートを選択できる場合でも、バス・インターフェースは、選択されたポーリング・レートを、以下の実ポーリング・レート、すなわち、1、2、4、8、16、32、64、または128ミリ秒の1つにマッピングする。こうして、別のポーリング・レートの処理の見込みの数は、128から8に低減する。バス・インターフェースが、プロセッサによって選択されたポーリング・レートに最も近い実ポーリング・レートが選択されるポーリング・レートをマッピングすることが好ましい。
【００６１】
下記の表1は、転送記述子のフォーマットを示す。バイト（Byte）0、バイト 1、…、バイト7として示されている8バイトから構成されているフォーマットが示されている。すべてのバイトは、0、1、…、7として列挙されている8ビットから構成されている。
【００６２】
【表１】
2005504393.tif 000003
下記の表2によって、上の表1のパラメータの意味を明らかにする。
【００６３】
【表２】
2005504393.tif 000004
【図面の簡単な説明】
【００６４】
【図１】USB規格のリビジョン2.0において指定されている、インタラプト・トランザクションフォーマットを示しているダイアグラムである。
【図２】本発明のバス・システムを示すブロック図である。
【図３Ａ】データ伝送のためのトランザクションを示すメッセージ・ダイアグラムである。
【図３Ｂ】データ伝送のためのトランザクションを示すメッセージ・ダイアグラムである。
【図４】本発明のバス・インターフェースを示すブロック図である。
【図５】先入れ先出し方法で構成されるバッファの模式的な概要を示す図である。
【符号の説明】
【００６５】
101  アイドルモード
102  セットアップステージ
103  データステージ
104  ステータスステージ
105、106  トークン・パケット
107、108  データ・パケット
109、110、111、112、115、116  ハンドシェイク・パケット
113、114、117、118  ライン
201  バス・システム
202  第1の端末
203、204  第2の端末
205  バス接続
206  プロセッサ
207  バス・インターフェース
208  バッファ
209  コントローラ
210  インタラプト接続
301  第1のライン
302  第2のライン
303  第3のライン
304、305、306、307、308  イン転送
309、311、315、329  メッセージ
310、314、317、319、321  入力トークン
312、316、318、323、333、340、343、345  インタラプト信号
313  ACK信号
320、336  NAKハンドシェーク
322、339  STALLハンドシェーク
324、325、326、327、328  アウト転送
330、334、337、341、344  出力トークン
331、335、338、342  データ・パケット
332  ACKハンドシェーク
401  バス・インターフェース集積回路
402、403、404  接続
405  ホスト−デバイス・マルチプレクサ
406  タイミング・ブロック
407  ホストインターフェース
408  デバイス・インターフェース
409  ホスト・コントローラ
410  デバイス・コントローラ
411  ホスト・バッファ
412  デバイス・バッファ
413  ホスト・トランシーバ
414  デバイス・トランシーバ
501  バッファ
502、503  矢印
504、505、506  リクエスト
507、508  領域
509  転送記述子
510  ペイロード・データ
【図１】
2005504393.tif 000005
【図２】
2005504393.tif 000006
【図３Ａ】
2005504393.tif 000007
【図３Ｂ】
2005504393.tif 000008
【図４】
2005504393.tif 000009
【図５】
2005504393.tif 000010
【国際公開パンフレット】
2005504393.tif 000011
2005504393.tif 000012
2005504393.tif 000013
2005504393.tif 000014
2005504393.tif 000015
2005504393.tif 000016
2005504393.tif 000017
2005504393.tif 000018
2005504393.tif 000019
2005504393.tif 000020
2005504393.tif 000021
2005504393.tif 000022
2005504393.tif 000023
2005504393.tif 000024
2005504393.tif 000025
2005504393.tif 000026
2005504393.tif 000027
2005504393.tif 000028
2005504393.tif 000029
2005504393.tif 000030
2005504393.tif 000031
2005504393.tif 000032
2005504393.tif 000033
【国際調査報告】
2005504393.tif 000034
2005504393.tif 000035