(57)【要約】無線ユニバーサルシリアルバス（ＵＳＢ）システムでのＵＳＢ装置の接続および切離しを検出することができるポーリング方法、装置、およびシステムである。ＵＳＢハブは、ホストに対する有線接続を提供すると共に、その装置に対して無線接続ポイントを提供する。ＵＳＢホストは、ハブのステータスレジスタの変化を探し求めてハブに周期的に照会する。各期間中、ハブは、その各無線ポートを通じてポーリングメッセージを送信し、応答を待機する。システムに接続することを望む周辺装置は、その一意の周辺装置アドレスを送信することによってメッセージに応答する。装置がそのポートを現在占有している場合、ハブはその装置の固有割当アドレスをポーリングメッセージの一部として送出する。その装置がまだ存在していない場合、その装置は、その一意の周辺装置アドレスを送信することによって応答する。ホストが複数の再試行の後に応答を受信しなかった場合、その装置は切り離されたとみなされる。したがってハブはポートのステータスを判定し、ホストによって紹介されるステータスレジスタ中の適切なビットを更新する。
2005519354.tif 000002
【特許請求の範囲】
【請求項１】
無線周辺装置から応答を受信するように構成された下流側ポートと、
前記下流側ポートにポーリングを行い、前記下流側ポートの状態を判定するように構成された制御層と、
前記制御層からの前記下流側ポートの状態により更新されたポート情報を格納するコンピュータ読取可能なメモリと
を備えたことを特徴とするホスト装置。
【請求項２】
前記下流側ポートの状態を格納するように構成されたステータスレジスタをさらに備えたことを特徴とする請求項１に記載の装置。
【請求項３】
前記制御層は、メッセージヘッダ識別子を含むポーリングメッセージを送信することによって前記下流側ポートにポーリングを行うように構成されることを特徴とする請求項２に記載の装置。
【請求項４】
前記制御層は、前記下流側ポート上の前記無線周辺装置から応答を受信しなかったとき、前記下流側ポートに再ポーリングを行うようにさらに構成されることを特徴とする請求項３に記載の装置。
【請求項５】
前記制御層は、再試行カウントを使い果たすか、または応答を受信するまで、前記下流側ポートにポーリングを行うように構成されることを特徴とする請求項４に記載の装置。
【請求項６】
前記制御層は、前記再試行カウントを使い果たしたとき、前記下流側ポート上の前記無線周辺装置の切離しを信号で送るようにさらに構成されることを特徴とする請求項５に記載の装置。
【請求項７】
前記制御層は、新たな無線周辺装置が接続された場合に当該接続を示すため、前記ステータスレジスタにマークを付すようにさらに構成されることを特徴とする請求項６に記載の装置。
【請求項８】
前記制御層は、
ユニバーサルシリアルバスプロトコルを使用してインタフェースをとるように構成されたプロトコル管理インタフェースを含むことを特徴とする請求項７に記載の装置。
【請求項９】
無線周辺装置を無線ホスト装置に接続する方法であって、
前記下流側ポートにポーリングメッセージを送信するステップ、
前記下流側ポート上の前記無線周辺装置から応答を受信するステップ、
前記応答に基づいて、前記下流側ポートの状態を判定するステップ、
前記下流側ポートの状態によりポート情報を更新するステップ、および
前記下流側ポートの状態に関するステータスレジスタを更新するステップ
を備えたことを特徴とする方法。
【請求項１０】
前記ポーリングメッセージは、メッセージヘッダ識別子を含むことを特徴とする請求項９に記載の方法。
【請求項１１】
前記下流側ポート上の前記無線周辺装置から応答を受信しなかったとき、前記下流側ポートに再ポーリングを行うステップを含むことを特徴とする請求項１０に記載の方法。
【請求項１２】
再試行カウントを使い果たすまで前記再ポーリングを行うステップ行うことを特徴とする請求項１１に記載の方法。
【請求項１３】
前記再試行カウントを使い果たしたとき、前記下流側ポート上の前記無線周辺装置の切離しを信号で送るステップをさらに含むことを特徴とする請求項１２に記載の方法。
【請求項１４】
新たな無線周辺装置が接続された場合に当該接続を示すために、前記ステータスレジスタにマークを付すステップをさらに含むことを特徴とする請求項１３に記載の方法。
【請求項１５】
データおよび命令で符号化されたコンピュータ読取可能な媒体であって、前記データおよび命令は、前記命令を実行する装置に、
下流側ポートにポーリングを行わせ、
前記下流側ポート上の前記無線周辺装置からの応答を受信させ、
前記応答に基づいて前記下流側ポートの状態を判定させ、
前記下流側ポートの状態によりポート情報を更新させ、および
前記下流側ポートの状態に関するステータスレジスタを更新させることを特徴とするコンピュータ読取可能な媒体。
【請求項１６】
前記下流側ポートへのポーリングは、メッセージヘッダ識別子を含むポーリングメッセージを送信することによって行われることを特徴とする請求項１５に記載のコンピュータ読取可能な媒体。
【請求項１７】
前記命令は、前記命令を実行する装置に、
前記下流側ポート上の前記無線周辺装置から応答を受信しなかったとき、前記下流側ポートに再ポーリングを行わせることを特徴とする請求項１６に記載のコンピュータ読取可能な媒体。
【請求項１８】
再試行カウントを使い果たすまで前記再ポーリングを行わせることを特徴とする請求項１７に記載のコンピュータ読取可能な媒体。
【請求項１９】
前記命令はさらに、前記命令を実行する装置に、
前記再試行カウントを使い果たしたとき、前記下流側ポート上の前記無線周辺装置の切離しを信号で送らせることを特徴とする請求項１８に記載のコンピュータ読取可能な媒体。
【請求項２０】
前記命令はさらに、前記命令を実行する装置に、
新たな無線周辺装置が接続された場合に当該接続を示すために、前記ステータスレジスタにマークを付させることを特徴とする請求項１９に記載のコンピュータ読取可能な媒体。
【請求項２１】
下流側ポートにポーリングを行う手段と、
前記下流側ポート上の前記無線周辺装置から応答を受信する手段と、
前記応答に基づいて、前記下流側ポートの状態を判定する手段と、
前記下流側ポートの状態によりポート情報を更新する手段と、
前記下流側ポートの状態に関するステータスレジスタを更新する手段と
を備えたことを特徴とする装置。
【請求項２２】
前記下流側ポートにポーリングを行う手段は、メッセージヘッダ識別子を含むポーリングメッセージを送信するように構成されることを特徴とする請求項２１に記載の装置。
【請求項２３】
前記下流側ポート上の無線周辺装置から応答を受信しなかったとき、前記下流側ポートに再ポーリングを行う手段をさらに備えたことを特徴とする請求項２２に記載の装置。
【請求項２４】
再試行カウントを使い果たすまで、前記下流側ポートに再ポーリングを行うことを特徴とする請求項２３に記載の装置。
【請求項２５】
前記再試行カウントを使い果たしたとき、前記下流側ポート上の前記無線周辺装置の切離しを信号で送る手段をさらに備えたことを特徴とする請求項２４に記載の装置。
【請求項２６】
新たな無線周辺装置が接続された場合に当該接続を示すために、ステータスレジスタにマークを付す手段をさらに備えたことを特徴とする請求項２５に記載の装置。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明の態様は、一般に無線通信の分野に関する。
【背景技術】
【０００２】
コンピュータに周辺装置を接続する一般的な方法の１つに、ユニバーサルシリアルバス（ＵＳＢ）インタフェースを介するものがある。ＵＳＢの最も有益な機能の１つは、通常の動作中にバスへの装置の追加および取外しが可能なことである（「ホットプラグ」）。この「ホットプラグ」機能を達成するために、ホストが、接続された各ＵＳＢハブ装置に周期的にポーリングして、アクティブなハブ装置の下流側ポートの各々の状態を判定する。装置がポートに接続されたことをハブが検出した場合、ハブはそのポートを使用可能にし、次いでその装置を列挙する。以前に接続された装置が切離されたことをハブが検出した場合、そのポートは使用不能とされる。有線環境では、ハブは、ＵＳＢケーブル内の信号ラインの差分（ｄｉｆｆｅｒｅｎｔｉａｌ  ｄａｔａ  ｌｉｎｅ）を監視して電圧レベルの変化を検出することにより、装置の接続および切離を判定する。次いでハブは、そのポートに対する何らかの変更を示すステータスレジスタ内のビットをセットする。その後、ホストは次のポーリング期間にステータスレジスタを読み取る。信号ラインの差分を監視することによって装置の接続および切離を検出するプロセスは、無線環境では明らかに実施不可能である。
【発明の開示】
【発明が解決しようとする課題】
【０００３】
消費者による設置および使用が容易であるため、ＵＳＢインタフェースは普及し、多くのコンピュータ周辺装置に使用されている。その利点にもかかわらず、ＵＳＢでは周辺装置を接続するのに多数のケーブルが必要である。
【課題を解決するための手段】
【０００４】
本発明の諸態様は、無線周辺装置を接続しおよび切り離すためのシステム、装置、および方法を含む。一部の態様では、無線ネットワークにより、ユニバーサルシリアルバスと完全に互換の実施形態が可能となる。一部の実施形態は、無線ホスト装置が、新たな無線周辺装置の接続を検出し、以前に接続された無線周辺装置の切離しを検出し、以前に接続された装置が引き続き存在することを監視することを可能にする。
【発明を実施するための最良の形態】
【０００５】
本発明の実施形態は、基礎となる無線通信技術には依存しない。ユニバーサルシリアルバスと互換性のある無線通信フレームワークを実施するための無線接続を使用して以下の実施形態を説明するが、他の無線通信プロトコルおよび技術を使用する他の実施形態も可能であることが理解される。本発明の実施形態と互換性のある代替無線通信プロトコルおよび技術の例には、限定はしないが、超広帯域無線（ＵＷＢ）、ＩＥＥＥ（Ｉｎｓｔｉｔｕｔｅ  ｏｆ  Ｅｌｅｃｔｒｉｃａｌ  ａｎｄ  Ｅｌｅｃｔｒｏｎｉｃｓ  Ｅｎｇｉｎｅｅｒｓ）１３９４の無線実装（「無線ファイヤワイヤ」）、ＩＥＥＥ  ８０２．１１ａ、ＩＥＥＥ８０２．１１ｂ（「ワイファイ」、ＩＥＥＥ８０２．１１ｇ、ＩＥＥＥ８０２．１５（ＷＰＡＮ）、Ｂｌｕｅｔｏｏｔｈ、およびＲＳ−２３２プロトコルを無線に実装したものが含まれる。便宜上、ＵＳＢプロトコルを使用して以下の実施形態を説明する。
【０００６】
図１Ａは、本発明の一実施形態に従って構築され動作可能なシステム１００を示す略図である。システム１００は、無線システム中の無線ホスト装置１０に対して無線周辺装置２０を接続しおよび切り離すように構成される。
【０００７】
実施形態によっては、ネットワーク関係のタスクのためのマンマシンインタフェースが欠けていて、無線周辺装置２０の資源が限られると考えられる場合がある。こうしたネットワーク関係のタスクには、周辺装置の暗号鍵を入力するタスクが含まれる。さらに、多くの実施形態では、無線周辺装置２０は、複雑な通信タスクを実行することができるプロセッサを持たないかもないかもしれない。
【０００８】
図１Ｂに示すように、本発明の一実施形態に従って構築され動作可能な、システム１００内に示される無線装置１０および２０は、ホスト１５および周辺装置２５を備え各々無線モジュール１１０に結合され。例えば、無線ホスト装置１０はさらに、ホスト１５および無線モジュール１１０ｘからなる。
【０００９】
無線モジュール１１０ａ〜ｘは、従来型コンピューティング装置が特許請求の範囲に記載の本発明の方法の実施形態を用いて、他の無線モジュール１１０または無線装置１０、２０と通信することが可能であれば任意の装置とすることができる。ホスト装置１５は、無線モジュール１１０ｘを介して無線システムと通信を行う（ｉｎｔｅｒａｃｔ）。無線モジュール１１０ｘは、ホスト１５から受け取ったデータを無線周辺装置２０に送信し、無線周辺装置２０から受信したデータをそのシステムを介してホスト１５に渡す。
【００１０】
図２は、本発明の一実施形態に従って構築され動作可能な無線モジュール１１０のブロック図である。図２の諸要素を、ハードウェア、ファームウェア中の構造として、またはコンピュータ読取可能な記憶媒体上に符号化されたソフトウェア命令およびデータとして実装することができることは、当業者に良く理解される。無線モジュール１１０は、装置インタフェース１０２、媒体アクセス制御層（ＭＡＣ）１０４、および物理層（ＰＨＹ）１０６を備える。一部の実施形態では、本技術分野で周知のように、無線モジュール１１０はアンテナ（図示せず）も含むことができる。
【００１１】
装置インタフェース１０２は、本技術分野で周知のように、無線モジュール１１０がホスト１５または周辺装置２５とインタフェースを取ることを可能とする任意のインタフェースである。実施形態によっては、装置インタフェース１０２が標準通信プロトコルをエミュレートする場合があり、この場合ホスト１５または周辺装置２５が別の無線装置と通信中であることに気付かないようにすることができる。例えば、無線ＵＳＢの実施形態では、装置インタフェース１０２はＵＳＢインタフェースをエミュレートすることができる。
【００１２】
媒体アクセス制御層１０４は、無線伝送媒体へのアクセスを制御する任意の構造である。図２に示すように、媒体アクセス制御層１０４が装置インタフェース１０２および物理層１０６に結合され、装置インタフェース１０２が物理層１０６とデータを交換することが可能となる。
【００１３】
物理層１０６は、無線モジュール１１０で使用される無線媒体を介して単一ビットを転送することに関する手順を実行することが出来る任意の構造である。
【００１４】
図３は、本発明の一実施形態に従って構築され動作可能である媒体アクセス制御層１０４のブロック図である。この実施形態では、媒体アクセス制御層１０４は、プロトコル管理インタフェース３００および鍵管理および暗号化ユニット（ＫＭＥＵ）３１０を備える。
【００１５】
プロトコル管理インタフェース３００は、媒体アクセス制御層１０４が前述の特定の無線通信プロトコルを使用して通信することを可能にする構造である。例えば、無線ユニバーサルシリアルバス（無線ＵＳＢ）の実施形態では、プロトコル管理インタフェース３００は、装置インタフェース１０２からのメッセージを処理し、ユニバーサルシリアルバスプロトコルを使用して物理層１０６へのメッセージアクセスを規制する（ｒｅｇｕｌａｔｅ）。
【００１６】
従来の（有線）ＵＳＢシステムでは、ＵＳＢポートが物理的構造であり、ＵＳＢホスト装置が、接続された各ハブ装置に周期的にポーリングして、ハブのアクティブな下流側ポートのそれぞれの状態を判定する。無線ＵＳＢの一実施形態では、各ポートはもはや物理的構造ではなく、物理層１０６を介して接続すべき仮想構造である。この無線実施形態では、プロトコル管理インタフェース３００は、下流側（仮想）ＵＳＢポートを監視する構造とすることができる。異なる無線プロトコルを使用する実施形態では、対応するプロトコルをプロトコル管理インタフェース３００に実装することができる。
【００１７】
鍵管理および暗号化ユニット３１０は、メッセージの暗号化および解読を実行する。図３に示すように、ＫＭＥＵ３１０をＭＡＣ層１０４内に配置することができる。しかし実施形態によっては、媒体アクセス制御層１０４が、プロトコル管理インタフェース３００のみを備えることがある。そのような実施形態では、鍵管理および暗号化ユニット３１０を、無線モジュール１１０内、すなわち装置１５または２５とアンテナとの間の経路の他の部分に配置し、もしくは機能的に分散させ、または完全に省略することができる。したがって、鍵管理および暗号化ユニット３１０の場所によって、本発明の実施形態の範囲を限定して解釈すべきではない。本発明の実施形態の範囲は、専ら特許請求の範囲によって限定される。
【００１８】
図４は、本発明の一実施形態に従って構築され動作可能な媒体アクセス制御層１０４の代替の実施形態のブロック図である。この実施形態では、媒体アクセス制御層１０４は、コンピュータ読取可能な媒体４００をさらに備える。
【００１９】
コンピュータ読取可能な媒体４００は、本技術分野で周知のどんなコンピュータ読取可能なメモリでもよい。この定義は、限定はしないが、読取り専用メモリ（ＲＯＭ）、ランダムアクセスメモリ（ＲＡＭ）、フラッシュメモリ、消去可能プログラマブル読取り専用メモリ（ＥＰＲＯＭ）、不揮発性ランダムアクセスメモリ、メモリスティック、磁気ディスクドライブ、トランジスタベースのメモリ、またはデータを格納し取り出すための従来技術で周知のその他のコンピュータ読取可能なメモリ装置を包含する。ポートデータ情報４１０は、そのようなデータの一例である。
【００２０】
図７Ａ〜７Ｂは、本発明の一実施形態に従って構築され動作可能な無線システム１００における無線ホスト装置１０に対して無線周辺装置２０を接続しおよび切り離すための一実施形態であるホストのプロセス７００のフローチャートである。
【００２１】
有線ＵＳＢの「ホットプラグ」機能を無線で実装するために、ホストのプロセス７００は、ポーリング方式を使用するが、この方式によりホスト装置１０でサポートされる各ポートの状態を判定する目的でホスト装置１０と周辺装置２０との間でメッセージが無線リンクを介して渡される。図５および６に、本発明の一実施形態に従って構築され動作可能なこの種のメッセージのフォーマットを例示する。ポーリングメッセージ５００は、ポーリングメッセージヘッダ５０２および周辺装置アドレス５０４を含む。周辺装置がポートに接続される場合、周辺装置アドレス５０４は、周辺装置の固有アドレスを含む。そうでない場合、周辺装置アドレス５０４は、「Ｎｏ  Ｄｅｖｉｃｅ」アドレスを含む。応答メッセージ６００は、応答メッセージヘッダ６０２および一意の周辺装置アドレス６０４を含む。各ポーリング期間中、特定のポーリングメッセージ５００は、ポーリングが必要なポートごとに無線モジュール１１０ｘによって生成される。ポートを介してポーリングメッセージ５００を送出した後、無線モジュール１１０ｘは、無線モジュール１００ａ〜ｎからの応答メッセージ６００を待機する。受信した応答メッセージ６００に基づいて、以下で説明するように、無線モジュール１１０ｘによって適切な動作が実施される。本発明の一実施形態に従って構築され動作可能な、様々なポート状態および実施される動作の一実施形態を、図１１Ａおよび１１Ｂに示す。これらの状態を以下でより詳細に説明する。
【００２２】
すべての下流側ポートの状態を保持するため、ホストは内部データ構造を保持する。このデータ構造には、限定はしないが、アレイ、リンクリスト、ツリー、またはデータベーススキーマなどが含まれ、ホストにとって使用可能なポートごとのエントリを含むことができる限り、本技術分野で周知のいずれの情報構造とすることができる。
【００２３】
本発明の一実施形態に従って構築され動作可能なポートデータ構造１２００を図１２に例示する。図１２に示すように、各ポート１２０８Ａ〜Ｄは、ポート識別子フィールド１２０２、アドレスフィールド１２０４、および再試行フィールド１２０６の３つの要素と関連付けられる。
【００２４】
図示されるポート１２０８の数は単なる一例であり、ポート数はプロセス７００によって制限されないが、実施形態によっては、その個々の実装により制限される場合があることを当業者は理解されたい。例えば、ユニバーサルシリアルバスｖ２．０仕様では、ポートの数が１２７に制限される。したがって、ユニバーサルシリアルバスｖ２．０実施形態を同様に制限することができる。
【００２５】
図１２を参照すると、アドレスフィールド１２０４は、接続された装置を示すようポート１２０８に割り当てられた一意の周辺装置アドレス、または所定の一意の「Ｎｏ  Ｄｅｖｉｃｅ」アドレス（すなわち切り離された状態）のいずれかに対応している。一意の周辺装置アドレスは、ＵＳＢホストのソフトウェアによって割り当てられるＵＳＢアドレスとは異なることに留意されたい。再試行フィールド１２０６は、装置がそれ自体のアドレスへの応答に失敗した場合に、ホストがポーリングメッセージを周辺装置アドレスに再送信する回数を示す。これには、ポーリングメッセージまたは装置応答が伝送中に失われる状況が包含される。起動時に、各ポート１２０８についてのアドレスフィールド１２０４が、「Ｎｏ  Ｄｅｖｉｃｅ」状態にセットされ、再試行フィールド１２０６が、所定の初期値にセットされる。図１２は、４つのポート１２０８Ａ〜Ｄを有するホストの一例を示す。ポート１２０８Ｂ〜Ｃが占有される。ポート１２０８Ｃは、応答がなく３回ポーリングを受けた。
【００２６】
図７Ａを参照すると、まずブロック７０２においては、無線ハブモジュール１１０ｘが、送信インビテーションカウントを予め定められた数に初期化する。判定ブロック７０４においては、ポートが現在「フリー」または「未使用」とマークされている場合、フローは判定ブロック７０６に進む。ポートが現在使用中である場合、フローはブロック７０８に進む。
【００２７】
判定ブロック７０６においては、送信インビテーションカウントがゼロより大きい場合、フローはブロック７０８に進む。送信インビテーションカウントがゼロより大きくない場合、新たな送信インビテーションを送信する必要はない。ハブは、すべてのポートがポーリングされたかどうかを確認するために判定ブロック７２２でチェックする。すべてのポートがポーリングされていない場合、ブロック７２４でハブが次のポートに移り、フローはブロック７０４に戻る。すべてのポートがポーリングされているとブロック７２２で判定した場合プロセス７００は終了する。
【００２８】
ブロック７０８において、ハブはポーリングメッセージを送出し、ブロック７１０において、一定の期間の間装置からの応答を待機する。タイムアウトが生じたとブロック７１２において判定された場合、周辺装置はもはや範囲内にないか、またはポーリングメッセージ若しくは応答メッセージが伝送中に失われたことを意味している可能性がある。次いでフローは図７Ｂのブロック７２６に進む。
【００２９】
装置がまだハブの範囲内にあって機能している場合、装置は、アドレスフィールド１２０４にその一意の周辺装置アドレスをセットした応答メッセージをハブに送信する。タイムアウト期間前にハブが応答を受信したとブロック７１２において判定した場合、判定ブロック７１４において、ハブは受信した応答が確実に有効であることを検査する。受信した応答が無効である場合、フローは図７Ｂのブロック７２６に進む。有効な応答を受信した場合、判定ブロック７１６において、ハブはポートが現在未使用のマークを付されているかどうかを検査して確認する。ポートが現在未使用のマークを付（ｍａｒｋ  ｆｒｅｅ）されている場合、新たに接続した装置から応答を受信したことを示している。ブロック７２０において、ハブは新たな装置のアドレス１２０４を記録し、関連するポートの再試行フィールド１２０６をＭａｘＲｅｔｒｉｅｓに初期化する。一意の周辺装置アドレスを使用しない実施形態においては、ブロック７２０でアドレスが記録されないのは明らかである。次いで判定ブロック７２２において、ハブは全てのポートをポーリングしたかどうかを検査して確認する。
【００３０】
ポートが現在使用中であるとブロック７１６においてハブが判定した場合、ハブは装置がまだアクティブであることを表明する。ブロック７１８において、ハブはポートの再試行フィールド１２０６をＭａｘＲｅｔｒｉｅｓにリセットする。次いで他の場合と同様に、判定ブロック７２２において、ハブは全てのポートをポーリングしたかどうかを検査して確認する。すべてのポートをポーリングしていない場合、ブロック７２４において、ハブは次のポートに移りフローはブロック７０４に戻る。すべてのポートをポーリングしたとブロック７２２において判定された場合、プロセス７００は終了する。
【００３１】
図７Ｂに進むと、ポートが現在フリーであるとマークを付されているとブロック７２６において判定した場合、ハブは送信インビテーションカウントをデクリメントし、すべてのポートをポーリングしていないと判定ブロック７２２において判定した場合、ブロック７２４において、ハブは次のポートに移ってフローはブロック７０４に戻る。すべてのポートをポーリングした場合、プロセス７００は終了する。あるいはまた、ポートが現在使用中であるとハブが判定ブロック７２６において判定した場合、ブロック７３０において、ハブは現ポートの再試行フィールド１２０６をデクリメントし、判定ブロック７３２において、再試行フィールドがゼロに等しいかどうかを検査して確認する。再試行フィールド１２０６がゼロである場合、現在装置は範囲外にあることを意味する。ブロック７３４において、ハブは装置を切り離して変更をホスト１５に通知する。次いで判定ブロック７２２において、ハブは、ポーリングすべきポートがさらに存在するかどうかを検査して確認する。再試行フィールド１２０６がゼロでないと判定ブロック７３２で判定した場合、ハブは後の動作を行わない。フローは、前の判定ブロック７２２に移り、ポーリングすべきポートがさらに存在するかどうかを判定する。ポーリングすべきポートがさらにあると判定ブロック７２２において判定された場合、ブロック７２４において、ハブは次のポートに移り、フローはブロック７０４に戻る。すべてのポートをポーリングした場合、プロセス７００は終了する。
【００３２】
多数の潜在するポートがあってもそのうちの多くが使用されない可能性があるので、ホスト１５は、新たに接続した装置に対して不要な多数の送信インビテーションを送信する可能性がある。以前の「Ｎｏ  Ｄｅｖｉｃｅ」ポーリング送信インビテーションに対して応答を受信しなかった場合、これは接続を待機する新たな装置が存在しないか、または送信インビテーション若しくは送信インビテーションに対する応答が伝送中に文字化けしたことを意味している可能性がある。プロセス７００は、送信した送信インビテーションメッセージのカウントを保持することによってこれに対処する。「Ｎｏ  Ｄｅｖｉｃｅ」ポーリング送信インビテーションに対して応答がない場合、ブロック７２８おいて、送信インビテーションカウントをデクリメントする。次いで判定ブロック７０６おいて、ハブは送信インビテーションカウントがゼロに達したかどうかを検査して確認する。カウントがゼロに達した場合、ホストは、このポーリングサイクル中にさらに送信インビテーションを送信するのを停止する。次のポーリングのラウンド中に、ブロック７０２おいてカウントを再初期化する。
【００３３】
２つ（またはそれ以上）の装置が、同時にシステムに接続しようと試みる状況が生じるかもしれない。このことは例えば、起動時、いくつかの装置が既にホストの範囲内にあり、装置のうち１つまたは複数がホスト送信インビテーションに同時に応答するときに生じる。このケースに対処するため、時間スロットに基づく手法を適用することができる。システムに対する送信インビテーションを受信する各装置は、ランダムな時間スロット数（０．．ｎ）だけ待機する。待機期間中、各装置はチャネルを感知し、他の何らかの装置が送信中か否かを判定する。送信中である場合、装置は元の状態に戻り（ｂａｃｋ  ｏｆｆ）、ホストからの別の送信インビテーションを待機する。このチャネルアクセス方法は、接続段階中に生じる可能性のある衝突数を確率論的に低減する。
【００３４】
無線ホストモジュール１１０ｘ内に実装される、ホストで実行される方法７００の一実施形態を以下に示す。ホストコンピュータによる通常のポーリング中、ハブは図１２に示すデータ構造中の各エントリを反復し、各ポートに対して格納アドレスを有するポーリングメッセージを送出する。
【００３５】
【表１】
2005519354.tif 000003
【００３６】
ホストで実行される方法擬似コード実施形態
【００３７】
図８に、本発明の一実施形態に従って構築され動作可能な、無線システム１００中の無線ホスト装置１０に対して無線周辺装置２０を接続しおよび切り離すための一実施形態である周辺装置で実行される方法８００のフローチャートを示す。周辺装置で実行される方法８００では、ブロック８０２おいて、無線周辺装置２０はポーリングメッセージの受信を待機する。ポーリングメッセージを受信した後、ブロック８０４おいて、無線周辺装置２０は、ポーリングメッセージに対して応答する。一意の周辺装置アドレスを使用する実施形態は、一意の周辺装置アドレスで応答する。一意の周辺装置アドレスを使用しない実施形態は、受信したポート番号で応答することができる。
【００３８】
図９に、本発明の一実施形態に従って構築され動作可能な、無線システム中のホストに対して無線周辺装置を接続しおよび切り離すためのハブステータスレジスタ９００を示す。ホスト装置１０は、ハブステータスレジスタ９００に周期的にポーリングを行ってＵＳＢ仕様に従った適切な動作を実施する。
【００３９】
図１０に、本発明の一実施形態に従って構築され動作可能な、無線システム中のホストに対して無線周辺装置を接続しおよび切り離すための衝突回避方法の一例を示す。例示のグラフでは、２つの周辺装置２０ａおよび２０ｂが、ホスト装置１０による送信インビテーションメッセージに応答しようと試みるものとする。周辺装置Ａ（２０ａ）がスロット１回分待機することをランダムに選び、周辺装置Ｂ（２０ｂ）が、応答を送信する前にスロット４回分待機することを選ぶと仮定する。時間スロット１では、周辺装置Ｂが、別の周辺装置である周辺装置Ａが応答の送信を開始したことを感知し、したがって元の状態に戻り、次の送信インビテーションメッセージが到着するのを待機する。衝突が生じる可能性があるのは、新たな装置が無線ハブに接続しようとするときだけであることに留意されたい。すでに接続された装置は直接ポーリングを受け、チャネルを求めて競合する必要がない。したがって、ホスト装置１０からのポーリングメッセージと、接続された周辺装置２０からの応答との間待機する必要はない。
【００４０】
図１３Ａ〜１３Ｂは、本発明の一実施形態に従って構築され動作可能な、無線ネットワーク１００中の無線ホスト装置１０に対して無線周辺装置２０を接続しおよび切り離すための代替の実施形態であるホストのプロセス１３００のフローチャートである。
【００４１】
無線ＵＳＢに関してこの「ホットプラグ」機能を実装するために、ホストのプロセス１３００は、ポーリング方式を用いるが、これはホスト装置１０でサポートされる各ポートの状態を判定するために無線リンクを介してホスト装置１０と周辺装置２０との間でメッセージを渡す方式である。他の実施形態と同様に、プロセス１３００は、すべての下流側ポートの状態を保持し、ホストは内部データ構造を保持する。データ構造には、限定はしないが、アレイ、リンクリスト、ツリー、またはデータベーススキーマなどが含まれ、ホストにとって使用可能なポートごとのエントリを含めることができる本技術分野で周知のいずれの情報構造とすることもできる。
【００４２】
まず、ブロック１３０２においては、無線ホスト装置１０がポートを通じてポーリングメッセージを送信する。ポートが「未使用」とマークを付されている場合、「ポーリング」メッセージのアドレスフィールド１２０４は、「Ｎｏ  Ｄｅｖｉｃｅ」アドレスにセットされる。これは、新たな装置に対してネットワークに加入するようにという送信インビテーションである。あるいは、ポートが「使用中」とマークされる場合、「ポーリング」メッセージのアドレスフィールド１２０４は、一意の周辺装置アドレスを設定される。ブロック１３０４においては、ホストが応答の受信またはタイムアウトを待機する。
【００４３】
判定ブロック１３０６においては、ポートが現在「未使用」または「使用中ではない」とマーク付されている場合、フローはブロック１３０８に進む。ポートが現在使用中である場合、フローはブロック１３１８に進む。
【００４４】
ポーリングからの応答がないと判定ブロック１３０８おいて判定した場合、ブロック１３１２おいてポートに未使用のマークを付したままにする。あるいは、判定ブロック１３０８おいて応答を受信した場合、フローはブロック１３１０に進む。この応答を受信した際、ホスト１５は、アドレスフィールド１２０４にその受信したアドレスを設定し、および再試行フィールド１２０６に初期値を設定することにより、そのポート１２０８に占有済みのマークを付す。ホストはまた、ホストステータスレジスタ９００中の適切なビットをセットし、ホストコンピュータに新たに接続された装置を通知する。フローはブロック１３１４に進む。
【００４５】
未だ全てのポートをポーリングしていないとブロック１３１４おいて判定された場合、ブロック１３１６おいてプロセス１３００は次のメッセージポートに進み、フローはブロック１３０２に戻る。
【００４６】
すべてのポートをポーリングしたとブロック１３１４おいて判定された場合、プロセス１３００は終了する。
【００４７】
図１３Ｂに進むと、その「ポーリング」メッセージが接続されたポートに対応しているとブロック１３０６おいて判定された場合、ホストは指定された期間の間、装置からの戻り応答を待機する。装置がまだ範囲内にあり、機能しているとブロック１３１８おいて判定された場合、装置は、アドレスフィールド１２０４に装置の一意の周辺装置アドレスを設定した「応答」メッセージで応答するが、この一意の周辺装置アドレスは、「ポーリング」メッセージで指定されるのと同一のアドレスである。ブロック１３２０おいて、ホストは装置との通知を続行する。ホストは、ポート１２０８および一意の周辺装置アドレスを記録し、再試行フィールド１２０６カウントをその初期値にリセットする。判定ブロック１３２２おいてタイムアウト期間内にホストが応答を受信しなかった場合、それは装置がもはや存在しない（すなわち、切り離された）か、または「ポーリング」メッセージ若しくは応答メッセージの伝送でエラーが生じた可能性のあることを意味する。このケースでは、再試行フィールド１２０６カウントが０より大きい場合、ブロック１３２６においては、ホストは連絡を取るために最終的に再試行を行う。ホストは再試行フィールド１２０６カウントを１だけデクリメントし、次のポートに進む。フローはブロック１３０２に戻る。
【００４８】
再試行フィールド１２０６カウントが０に等しい場合、これにより、装置が範囲外にある（すなわち、切り離された）ことがホストに伝えられる。ブロック１３２４おいて、ホストが装置を切り離し、ホストコンピュータに切離しを通知する。実施形態によっては、ブロック１３２４おいて、ホストが再試行フィールド１２０６カウントを初期値にリセットし、ホストステータスレジスタ中の適切なビットをセットするものがある。
【００４９】
多数の潜在するポートがあるにもかかわらず、そのうちの多くが使用されない可能性があるので、ホスト１５は不要な多数の送信インビテーションを送信するかもしれない。プロセス１３００は、以前の送信インビテーションに対する応答があった場合に追加の送信インビテーションだけを送信することによってこれに対応することができる。一部の実施形態では、最後の送信インビテーションが受諾されたか否かを示す送信インビテーションフラグを維持することによってこれを実施することができる。最後の送信インビテーションが受諾されなかった場合、アドレスフィールド１２０４が「Ｎｏ  Ｄｅｖｉｃｅ」に設定された、それ以上の送信インビテーションメッセージ（すなわち「ポーリング」メッセージ）は、このポーリング期間中には送信されない。
【００５０】
実施形態のオペレーションによっては、送信インビテーションまたは送信インビテーションに対する応答が伝送中に失われるものがある。プロセス１３００は、送信した送信インビテーションメッセージのカウントを保持することによってこれに対応することができる。メッセージに対して応答がない場合、カウントはデクリメントされる。カウントがゼロに達した場合、ホストは送信インビテーションの送信を停止する。応答を受信したときはいつでもカウントを再初期化する。
【００５１】
図１４に、本発明の一実施形態に従って構築され動作可能な、無線ネットワーク１００中の無線ホスト装置１０に対して無線周辺装置２０を接続し切り離すための別の代替の実施形態であるホストポーリング期間プロセス１４００のフローチャートを示す。本実施形態では、一意の周辺装置アドレスも、所定の一意の「Ｎｏ  Ｄｅｖｉｃｅ」アドレスも不要である。その代わりに、無線ホスト装置１０は、テーブルおよびテーブル内の索引を保持する。テーブルのサイズは、無線ホスト装置１０がサポートする使用可能なＵＳＢポートの数に等しく、したがってポート番号で索引付けされる。本発明の一実施形態に従って構築され動作可能なこのようなテーブルの例を図１６Ａおよび１６Ｂに示す。テーブル中の各エントリで、無線ホスト装置１０は、関連するポートについての再試行カウントを格納する。ゼロカウントは、新たな装置のためにポートが使用可能であることを示す。パワーオン時に、図１６Ａに示すように、各ポートについての再試行カウントがクリアされ、装置が接続されていないことが示される。
【００５２】
各ポーリング期間１４００の間、無線ホスト装置１０は、テーブル中のいくつかのエントリを反復する。判定ブロック１４０２においては、装置がポートに接続されたか否かを判定する。
【００５３】
ブロック１４０８おいて、テーブル中の各エントリについて、ポーリングメッセージを生成する。要求の内容は、ポート番号（すなわち現索引）、およびポートの現状態を示すステータスビットである。再試行カウントがゼロの場合、新たな装置のためにポートが使用可能であることを示すようにステータスビットをセットし、そうでない場合ポートが現在占有されていることを示すようにステータスビットをセットする。次いで無線ホスト装置１０がメッセージを送出し、ブロック１４１０おいて「応答」メッセージ受信またはタイムアウトまで待機する。タイムアウトが生じた場合、それは接続することを求める新たな装置が存在しない可能性があることを意味する。この場合、無線ホスト装置１０は単に索引をインクリメントするだけで続行する。
【００５４】
接続を求める任意の装置は、未占有ポートに対応する「ポーリング」メッセージを待ち受ける（ｌｉｓｔｅｎ）。そのようなメッセージを受信したとき、その装置は、ポート番号を格納し、「ポーリング」メッセージで指定されたのと同じポート番号を有する「応答」メッセージを発行することによって応答する。
【００５５】
図１５に示すように、本発明の一実施形態に従って構築され動作可能な応答処理サブタスク１５００が、「応答」メッセージを処理する。ブロック１５０２おいて、ポートが現在未使用（すなわち、「未占有」）とマークを付されているか否かについて判定を行う。ブロック１５０４おいて、無線ホスト装置１０は、応答を受信したとき、ポートが現在占有されていることを示すために、再試行カウントを予め定められたゼロでない数にセットする。ブロック１５０４おいて、サブタスク１５００は新たに接続された装置をホストコンピュータに通知して索引をインクリメントする。
【００５６】
判定ブロック１５０６おいて、ポートに接続された装置がまだアクティブであるか否かについて判定を行う。装置がアクティブである場合、ブロック１５０８おいて装置との通信を続行する。装置がアクティブでない場合、ブロック１５１４おいて、サブタスク１５００は装置を切り離し、ホストコンピュータに通知する。一部の実施形態では、装置を切り離す前に、ブロック１５１０〜１５１２おいて装置との通信を復旧しようと試みることができる。
【００５７】
すべてのポートをまだポーリングしていないとブロック１４１２おいて判定した場合、ブロック１４１４おいてプロセス１４００は次のメッセージポートに進み、フローはブロック１４０２に戻る。
【００５８】
すべてのポートをポーリングしたとブロック１４１２おいて判定した場合、プロセス１４００は終了する。
【００５９】
以下の擬似コードは、プロセス１４００およびサブタスク１５００の可能な実装の一例を示す。
【００６０】
【表２】
2005519354.tif 000004
【００６１】
代替の実施形態であるホストで実行される方法擬似コード
【００６２】
上述の通り、本発明の実施形態は、単一のホストと複数の周辺装置を含むことができる。実施形態によっては、他のホストと他の周辺装置を連結できるものがあることを理解されたい。連結（ｃｏｌｌｏｃａｔｉｏｎ）は、干渉の問題を引き起こす可能性がある。このような問題には、通信の文字化けまたは紛失が含まれ、それによって周辺装置がホストに接続する能力が損なわれ、またはホストによる周辺装置の望ましくない切離しの実行が引き起こされる。本技術分野で周知のチャネル化を提供するいくつかの技法には、時分割多元接続（ＴＤＭＡ）、波検知多重接続（ＣＳＭＡ）、およびＣＤＭＡ（符号分割多重接続）が含まれる。
【００６３】
このような実施形態では、複数のホストおよび装置の連結により、ホスト間の装置の共用が可能となることをさらに理解されたい。装置の共用を可能にする多数の手法が存在する。例えば、ノブやボタンなどの機械的装置により、ホストおよび周辺装置に関する手動チャネル選択が可能となる。あるいは、ホストのソフトウェアは、周辺装置が所望のホストを選択することを可能にするユーザインタフェースを提供することができる。加えて、本技術分野で周知の様々な技法を使用して、動的チャネル選択を実装することができる。
【００６４】
以上の諸実施形態の説明を、当業者が本発明を実施できるようにおこなった。こうした実施形態に対する様々な修正は当業者には容易に明らかとなろう。また、本明細書で定義される一般的原理は、本発明の機能を使用せずに他の実施形態に適用することができる。したがって、本発明は本明細書で示した実施形態に限定されず、本明細書で開示される原理および新規な機能に調和する最も広い範囲に従うものとする。
【図面の簡単な説明】
【００６５】
【図１Ａ】無線システム中のホストに対して無線周辺装置を接続しおよび切り離すためのシステムの実施形態を示す図である。
【図１Ｂ】無線システム中のホストに対して無線周辺装置を接続しおよび切り離すためのシステムの実施形態を示す図である。
【図２】無線システム中のホストに対して無線周辺装置を接続しおよび切り離すための無線モジュールのブロック図である。
【図３】無線システム中のホストに対して無線周辺装置を接続しおよび切り離すための媒体アクセス制御（ＭＡＣ）層のブロック図である。
【図４】無線周辺装置を接続しおよび切り離すためのプロトコル管理インタフェース（ＰＭＩ）の一実施形態のブロック図である。
【図５】無線システム中のホストに対して無線周辺装置を接続しおよび切り離すためのポーリングメッセージパケットデータ構造のブロック図である。
【図６】無線システム中のホストに対して無線周辺装置を接続しおよび切り離すための応答メッセージパケットデータ構造のブロック図である。
【図７Ａ】無線システム中のホストに対して無線周辺装置を接続しおよび切り離すためのホストで実行される方法７００のフローチャートである。
【図７Ｂ】無線システム中のホストに対して無線周辺装置を接続しおよび切り離すためのホストで実行される方法７００のフローチャートである。
【図８】無線周辺装置を接続しおよび切り離すための周辺装置で実行される方法８００のフローチャートである。
【図９】無線周辺装置を接続しおよび切り離すためのハブステータス変更レジスタを示す図である。
【図１０】無線周辺装置を接続しおよび切り離すための衝突回避方法の一例を示す図である。
【図１１Ａ】無線システム中のホストに対して無線周辺装置を接続しおよび切り離すための、ポートに対応する可能な状態を示す図である。
【図１１Ｂ】無線システム中のホストに対して無線周辺装置を接続しおよび切り離すための、ポートに対応する可能な状態を示す図である。
【図１２】無線システム中のホストに対して無線周辺装置を接続しおよび切り離すための、メモリ構造内に格納されたポート情報の例示的グラフである。
【図１３Ａ】無線システム中のホストに対して無線周辺装置を接続しおよび切り離すための代替ホストで実行される方法１３００のフローチャートである。
【図１３Ｂ】無線システム中のホストに対して無線周辺装置を接続しおよび切り離すための代替ホストで実行される方法１３００のフローチャートである。
【図１４】無線システム中のホストに対して無線周辺装置を接続しおよび切り離すための代替ホストで実行される方法１４００のフローチャートである。
【図１５】無線システム中のホストに対して無線周辺装置を接続しおよび切り離すためのプロセス応答方法１５００のフローチャートである。
【図１６Ａ】無線システム中のホストに対する無線周辺装置の接続および切離しを追跡するためのメモリテーブルを示す図である。
【図１６Ｂ】無線システム中のホストに対する無線周辺装置の接続および切離しを追跡するためのメモリテーブルを示す図である。
【図１Ａ】
2005519354.tif 000005
【図１Ｂ】
2005519354.tif 000006
【図２】
2005519354.tif 000007
【図３】
2005519354.tif 000008
【図４】
2005519354.tif 000009
【図５】
2005519354.tif 000010
【図６】
2005519354.tif 000011
【図７Ａ】
2005519354.tif 000012
【図７Ｂ】
2005519354.tif 000013
【図８】
2005519354.tif 000014
【図９】
2005519354.tif 000015
【図１０】
2005519354.tif 000016
【図１１Ａ】
2005519354.tif 000017
【図１１Ｂ】
2005519354.tif 000018
【図１２】
2005519354.tif 000019
【図１３Ａ】
2005519354.tif 000020
【図１３Ｂ】
2005519354.tif 000021
【図１４】
2005519354.tif 000022
【図１５】
2005519354.tif 000023
【図１６Ａ】
2005519354.tif 000024
【図１６Ｂ】
2005519354.tif 000025
【国際調査報告】
2005519354.tif 000026
2005519354.tif 000027