(58)【調査した分野】(Int.Cl.,DB名)
それぞれの送信時間が送信インターバルによって前の送信時間及び後の送信時間から分離され、前記送信インターバルの継続時間は、前記電子デバイスにおいて使用されている前記ホーム無線チャネルに応じて設定される、請求項1に記載の方法。
前記処理サブシステムは、それぞれの送信時間が送信インターバルによって前の送信時間及び後の送信時間から分離されるように構成され、前記送信インターバルの継続時間は、前記電子デバイスにおいて使用されている前記ホーム無線チャネルに応じて設定される、請求項10に記載の電子デバイス。
前記処理サブシステムが、前記無線チャネルの列を生成するように更に構成され、前記無線チャネルの列は複数の部分列を含み、それぞれの部分列は、所定の順序で配列されたソーシャル無線チャネルのグループを含む、請求項9に記載の電子デバイス。
それぞれの送信時間が送信インターバルによって前の送信時間及び後の送信時間から分離され、前記送信インターバルの継続時間は、前記ホーム無線チャネルに応じて設定される、請求項16に記載のネットワーキングサブシステム。
前記ネットワーキングサブシステムが、ホーム無線チャネル上でアドバタイジングフレームを送信するように構成されていない場合には、前記構成機構は、前記次の送信時間の後に、前記無線機を前記次の無線チャネルを監視するように構成する前に、所定の時間待つように構成され、
前記ネットワーキングサブシステムが、ホーム無線チャネル上でアドバタイジングフレームを送信するように構成されている場合には、前記構成機構は、前記無線機を前記次の無線チャネルを監視するように構成する前に、前記次の送信時間において前記アドバタイジングフレームが送信完了するまで待つように構成される、
請求項16に記載のネットワーキングサブシステム。
【発明を実施するための形態】
【0016】
図面において、類似の参照数字が同じ図要素を指す。
【0017】
以下の説明は、如何なる当業者も記載されている実施形態を作成し使用できるようにするために提示され、特定の用途及びその要件の文脈で提供される。記載されている実施形態に対する様々な修正は、当業者にとって容易に明らかであろう。本明細書において定義されている一般原理は、記載されている実施形態の趣旨及び範囲から逸脱することなく他の実施形態及び用途に適用され得る。したがって、記載されている実施形態は示されている実施形態だけに限定されるものではなく、本明細書に開示されている原理及び特徴に相反しない最も広い範囲が与えられるべきである。
【0018】
この「発明を実施するための形態」に記述されているデータ構造及びコードは通常は、コンピュータ読み取り可能記憶媒体上に記憶される。このコンピュータ読み取り可能記憶媒体は、計算能力を有する電子デバイスによって使用されるコード及び/又はデータを記憶できる任意のデバイス又は媒体であってよい。例えば、コンピュータ読み取り可能記憶媒体は、フラッシュメモリ、ランダムアクセスメモリ(RAM、SRAM、DRAM、RDRAM、DDR/DDR2/DDR3 SDRAM等)、磁気若しくは光記憶媒体(例えば、ディスクドライブ、磁気テープ、CD、DVD)、又はデータ構造若しくはコードを記憶する能力を有するその他の媒体を含む、揮発性メモリ又は不揮発性メモリを含み得る。記載されている実施形態では、コンピュータ読み取り可能記憶媒体は、送信信号等の非法定のコンピュータ読み取り可能記憶媒体を含まないことに留意されたい。
【0019】
この詳細な説明に記載されている方法及びプロセスはハードウェアモジュール内に含まれ得る。例えば、ハードウェアモジュールは、限定するものではないが、プロセッサ、特定用途向け集積回路(ASIC)チップ、フィールド・プログラマブル・ゲート・アレイ(FPGA)、及びその他のプログラム可能ロジックデバイスを含み得る。ハードウェアモジュールを作動させると、ハードウェアモジュールは、ハードウェアモジュール内部に含まれている方法及びプロセスを実行する。一部の実施形態では、ハードウェアモジュールは、命令(プログラムコード、ファームウェア等)を実行することによって方法及びプロセスを実行するように構成された1つ以上の汎用回路を含む。
【0020】
上述したように、「発明を実施するための形態」の項に記載されている方法及びプロセスは、コンピュータ読み取り可能記憶媒体に記憶され得るコード及び/又はデータとして具体化され得る。計算能力を有する電子デバイスが、コンピュータ読み取り可能記憶媒体上に記憶されたコード及び/又はデータを読み込んで実行すると、電子デバイスは、データ構造及びコードとして具体化され、コンピュータ読み取り可能記憶媒体内に記憶された、方法及びプロセスを実行する。例えば、一部の実施形態では、処理サブシステムが、コンピュータ読み取り可能記憶媒体を含むメモリサブシステムからコード及び/又はデータを読み込むことができ、コードを実行し、及び/又はデータを用い、方法及びプロセスを実行することができる。
【0021】
以下の説明において、本発明者らは「一部の実施形態」に言及する。「一部の実施形態」とは、可能な全ての実施形態のサブセットを記述するが、必ずしも実施形態の同じサブセットを指定するわけではないことに留意されたい。
概要
【0022】
記載されている実施形態では、電子デバイス(例えば、
図2における電子デバイス200)は、電子デバイスとの無線通信に利用可能である他の近くの電子デバイスの発見を助ける作業を実行することができる。これらの実施形態では、電子デバイスは、他の電子デバイスから送信されたアドバタイジングフレームを求めて無線チャネルのセットを受動的に走査すること、及び他の電子デバイスが電子デバイスを発見することを可能にするために、「ホーム」無線チャネル(これは、一部の実施形態では、ソーシャル無線チャネルの1つである)上でアドバタイジングフレームを能動的に送信することの両方を行うことができる。アドバタイジングフレームは一般的に、電子デバイスが、送信側の電子デバイスとのその後の通信を可能にするために用いることができる送信側の電子デバイスについての情報を割り出すことを可能にする情報を包含する。例えば、アドバタイジングフレームは、送信側のデバイスが、他の電子デバイスから送信されたフレームを受信することを可能にするために、送信側のデバイスが所与のチャネルを所与の期間、監視している予定である利用可能期間についての情報を含み得る。記載されている実施形態では、アドバタイジングフレームは、その基盤をなす無線規格に係る、管理フレーム又はデータフレームであり得る。
【0023】
記載されている実施形態では、アドバタイジングフレームを求めて無線チャネルを走査し、及び/又はアドバタイジングフレームを送信する際に、電子デバイスは、「ソーシャル」無線チャネル(互換的に「ソーシャルチャネル」)の所定のセットを用いて走査及び/又は送信することができる。ソーシャル無線チャネルは、電子デバイスが、他の電子デバイスによって監視されると一般に期待することができる、前もって合意された無線チャネルの任意のグループを含み、それによって、電子デバイス間の簡易な通信を可能にする。例えば、一部の実施形態では、ソーシャルチャネルは、IEEE802.11仕様の2.4GHz帯域内の1、6、11又は5GHz帯域内では40、104、153のチャネルを含む。代替実施形態では、2.4GHz及び5GHz帯域内の任意の数の利用可能チャネルをソーシャルチャネル内に含むことができる。加えて、記載されている実施形態は、現行のIEEE802.11無線チャネル、又はIEEE802.11に記述されているネットワーク方式に限定されるように意図されているわけではないことに留意されたい。例えば、一部の実施形態は、新しく提案されている802.11仕様の60GHz帯域内のソーシャルチャネルを用いることができる(すなわち、802.11ad規格を用いる)。一般的に、記載されている実施形態と同様のアドバタイジングフレーム走査及び/又は送信方式を用いる電子デバイスはいずれも、本明細書に説明されているように送信時間及び走査インターバルを含み得る。
【0024】
記載されている実施形態では、電子デバイスは、送信時間インターバルによってそれぞれ前の送信時間及び後の送信時間から分離されている、繰り返し/周期的「送信時間」を管理するための機構(例えば、カウントダウン/カウントアップタイマ、又は別の機構)を備える。送信時間において、電子デバイスは、必須とされているわけではないが、ソーシャルチャネルの1つであり得る、ホーム無線チャネル上でアドバタイジングフレームを送信することができる。記載されている実施形態では、送信時間インターバルの継続時間(及びそれゆえ、送信時間と送信時間との間の時間)は、電子デバイスによってホーム無線チャネルとして使用されているソーシャルチャネルに応じて設定される。より具体的には、それぞれのソーシャルチャネルは、それに関連付けられる異なる送信時間インターバルを有し得る。例えば、電子デバイスが例示的なソーシャルチャネル1をホーム無線チャネルとして使用することを前提とすると、送信時間インターバルは110msになり得るであろうが、それに対して、例示的なソーシャルチャネル2の場合には、送信時間インターバルは120msになり得るであろう、といったことなどである。それゆえ、例示的なチャネル1をホーム無線チャネルとして用いると、送信時間は電子デバイスのために110ms毎に発生し得るであろう。及び、したがって、電子デバイスは、必ずしも必要なことではないが、ホームチャネル1上で110ms毎にアドバタイジングフレームを送信することができるであろう。
【0025】
上述のように、記載されている実施形態では、電子デバイスは、他の近くの電子デバイスの発見を可能にするために、無線チャネル走査を用いることができる。これらの実施形態では、電子デバイスは、ソーシャルチャネル上の他の電子デバイスから送信されたアドバタイジングフレームを検出するべくソーシャルチャネルの走査をいつ、及びどのぐらいの期間、実行するのかを決定するために、上述の送信時間及び送信インターバルを用いる。より具体的には、送信時間と送信時間との間において(かつ電子デバイス内の無線機は別の目的のために使用されていないと仮定し)、電子デバイスは無線機を、ソーシャルチャネルのうちの1つを監視するように再構成することができる。次に、後の送信時間が近づくと、電子デバイスは、無線機を、電子デバイスのためのホームチャネル上におけるアドバタイジングフレームの任意選択的な送信を可能にするように再び再構成することができる。このようにして、電子デバイスは、無線機を用いてホームチャネル上でアドバタイジングフレームを送信すること、及び他の電子デバイスからのアドバタイジングフレームを求めてソーシャルチャネルを走査することを交互に行うことができる。
【0026】
図1は、記載されている実施形態に係る無線チャネルの走査を例示するタイムライン図を示す。
図1において見ることができるように、送信インターバル100(例えば、100ms、150ms、500ms、又は別の時間)が第1の送信時間104と第2の送信時間106とを分離する。送信時間104及び106の間において、例示的なソーシャルチャネル0の走査が電子デバイスによって走査インターバル102の間、実行される。送信時間106の後、例示的なソーシャルチャネル1の走査が電子デバイスによって(再び、走査インターバル102の間)実行される。このパターンは無期限に繰り返すことができ、対応する送信時間が次の送信インターバル100の開始を示し、その期間において、走査インターバル102の間、ソーシャルチャネルを走査することができる。
【0027】
図1において見ることができるように、走査インターバル102は送信インターバル100よりも短い。一般的に、走査インターバル102は送信インターバル100からオーバーヘッド値を引いたものに比例する。オーバーヘッド値は、無線機を、アドバタイジングフレームを求めてソーシャルチャネルを監視するように構成し、それと共に、次の送信時間に無線機を元へ戻すために使われる時間の量を含む。例えば、オーバーヘッド値は、(a)無線機を、ホームチャネル上でアドバタイジングフレームを送信するように構成し、(b)ホームチャネル上でアドバタイジングフレームを送信し、(c)無線機を、所与のソーシャルチャネルを監視する(走査する)ように構成するために使われる時間量の合計を含み得る。本発明者らはこのオーバーヘッド値について説明しているが、代替実施形態では、オーバーヘッド値は、無線機のための他の作業を実行するための時間等を含む、追加の時間又はより少ない時間を含む。
【0028】
ソーシャルチャネルはそれぞれ、対応する送信インターバルを有し、走査インターバルは、送信インターバルの継続時間を用いて構成されるので、記載されている実施形態は、ソーシャルチャネルの中からの異なるホーム無線チャネル上の2つの電子デバイスが、ソーシャルチャネルのわずかな回数の走査のうちに互いを見つけることができるように構成することができる(この例におけるホーム無線チャネルはソーシャルチャネルであることに留意されたい)。例えば、記載されている実施形態では、第1のソーシャルチャネルをそのホーム無線チャネルとして使用する第1の電子デバイスは、第2のソーシャルチャネルをそのホーム無線チャネルとして使用する第2の電子デバイスを、ソーシャルチャネルのセットの2回のパス/走査のうちにほぼ必ず見つけることができる(「パス」の期間中、ソーシャルチャネルはそれぞれ、
図1に示されるように、走査インターバルの間、別々に走査される)。より具体的には、第1の電子デバイスは第2のソーシャルチャネルを走査するが、記載されている実施形態において、(第1のソーシャルチャネルに基づく)第1の電子デバイスのための走査インターバルと(第2のソーシャルチャネルに基づく)第2の電子デバイスのための送信時間との相対的タイミングのゆえに、1回目のパスの期間中には第2の電子デバイスによって送信されたアドバタイジングフレームに出会わないと仮定すると、第1のデバイスは、2回目のパスの期間中には、第2の電子デバイスによって送信されたアドバタイジングフレームにほぼ必ず出会う。この例は、第2のデバイスは少なくとも2回目のパスの期間中にはアドバタイジングフレームを送信すると仮定していることに留意されたい。具体的には、第2のデバイスは、第1のデバイスによる2回目のパス/走査と一致した第2のデバイスのための送信時間においてアドバタイジングフレームを送信する。一般的に、第1のデバイスがソーシャルチャネルのセットの2回のパス/走査のうちに第2のデバイスを発見することを確実にするためには、第2のデバイスはアドバタイジングフレームを送信していなければならない(及び本明細書に記載されているように、任意選択的にアドバタイジングフレームを送信しないということをしてはならない)。
電子デバイス
【0029】
図1は、記載されている実施形態に係る電子デバイス200を例示するブロック図を示す。電子デバイス200は、処理サブシステム202、メモリサブシステム204、及びネットワーキングサブシステム206を含む。
【0030】
処理サブシステム202は、計算作業を実行するように構成される1つ以上のデバイスを含む。例えば、処理サブシステム202は、1つ以上のマイクロプロセッサ、特定用途向け集積回路(ASIC)、マイクロコントローラ、及び/又はプログラム可能ロジックデバイスを含み得る。
【0031】
メモリサブシステム204は、処理サブシステム202及びネットワーキングサブシステム206のためのデータ及び/又は命令を記憶するための1つ以上のデバイスを含む。例えば、メモリサブシステム204は、ダイナミック・ランダムアクセスメモリ(DRAM)、スタティック・ランダムアクセスメモリ(SRAM)、及び/又はその他の種類のメモリを含み得る。更に、メモリサブシステム204は、メモリへのアクセスを制御するための機構を含み得る。一部の実施形態では、メモリサブシステム204は、電子デバイス200内のメモリに結合される1つ以上のキャッシュを含むメモリ階層を含む。これらの実施形態の一部では、キャッシュのうちの1つ以上は処理サブシステム202内に配置される。
【0032】
一部の実施形態では、メモリサブシステム204は1つ以上の大容量の大記憶デバイス(不図示)に結合される。例えば、メモリサブシステム204は、磁気又は光学ドライブ、ソリッドステートドライブ、又は別の種類の大容量記憶デバイスに結合することができる。これらの実施形態では、メモリサブシステム204は、頻繁に使用されるデータのための高速アクセス記憶装置として電子デバイス200によって用いることができるのに対して、大記憶デバイスは、使用頻度の低いデータを記憶するために用いられる。
【0033】
ネットワーキングサブシステム206は、有線及び/又は無線ネットワークに結合し、その上で通信するように(すなわち、ネットワーク動作を実行するように)構成される1つ以上のデバイスを含む。例えば、ネットワーキングサブシステム206は、Bluetooth(登録商標)ネットワーキングシステム、セルラーネットワーキングシステム(例えば、UMTS、LTEなど等の3G/4Gネットワーク)、ユニバーサルシリアルバス(USB)ネットワーキングシステム、IEEE802.11に記述されている規格に基づくネットワーキングシステム(例えば、Wi−Fi(登録商標)ネットワーキングシステム)、イーサネット(登録商標)ネットワーキングシステム、及び/又は別のネットワーキングシステムを含み得る。
【0034】
ネットワーキングサブシステム206は、プロセッサ、コントローラ、無線機/アンテナ、ソケット/プラグ、及び/又はそれぞれのサポートされているネットワーキングシステムに結合し、その上で通信し、そのためのデータ及びイベントを処理するために用いられるその他のデバイスを含む。以下の説明において、本発明者らは、それぞれのネットワークシステムに結合し、その上で通信し、そのためのネットワーク上のデータ及びイベントを処理するために用いられる機構を、まとめて、ネットワークシステムのための「インタフェース」又は「ネットワークインタフェース」と呼ぶ。一部の実施形態では、デバイス間の「ネットワーク」はまだ存在しておらず、それゆえ、電子デバイス200は、デバイス間の単純な無線通信を実行するために、例えば、本明細書に説明されているように、アドバタイジングフレームを送信し、及び/又は他の電子デバイスによって送信されたアドバタイジングフレームを求めてソーシャルチャネルを走査するために、ネットワーキングサブシステム206内の機構を用いることに留意されたい。
【0035】
電子デバイス200内において、処理サブシステム202、メモリサブシステム204、及びネットワーキングサブシステム206は、バス210を用いて互いに結合される。バス210は、サブシステムが、互いの間でコマンド及びデータを通信するために用いることができる電気的、光学的、又は電気光学的接続である。分かりやすくするために1本のバス210のみが示されているが、異なる実施形態は、異なる数又は構成の電気的、光学的、又は電気光学的接続をサブシステム間に含み得る。
【0036】
電子デバイス200は、少なくとも1つのネットワークインタフェースを有する任意のデバイスであり得る(又はその中に含まれ得る)。例えば、電子デバイス200は、デスクトップコンピュータ、ラップトップコンピュータ、サーバ、メディアプレーヤ、家電製品、サブノートブック/ネットブック、タブレットコンピュータ、スマートフォン、試験装置の部品、ネットワーク家電製品、セットトップボックス、携帯情報端末(personal digital assistant、PDA)、玩具、コントローラ、又はその他のデバイスであり得る(又はその中に含まれ得る)。
【0037】
本発明者らは、電子デバイス200を説明するために特定の構成要素を用いているが、代替実施形態では、異なる構成要素及び/又はサブシステムが電子デバイス200内に存在してもよい。例えば、電子デバイス200は、1つ以上の追加の処理サブシステム202、メモリサブシステム204、及び/又はネットワーキングサブシステム206を含んでもよい。加えて、サブシステムのうちの1つ以上は電子デバイス200内に存在しなくてもよい。更に、一部の実施形態では、電子デバイス200は、
図1に示されていない1つ以上の追加のサブシステムを含んでもよい。例えば、電子デバイス200は、限定するものではないが、ディスプレイ上に情報を表示するためのディスプレイサブシステム、データ収集サブシステム、オーディオ及び/又はビデオサブシステム、警報サブシステム、メディア処理サブシステム、及び/又は入力/出力(I/O)サブシステムを含み得る。また、
図1には、独立したサブシステムが示されているが、一部の実施形態では、所与のサブシステムの一部又は全ては電子デバイス200内の他のサブシステムの1つ以上の中に統合することができる。
【0038】
図3は、記載されている実施形態に係るネットワーキングサブシステム206の拡大図を例示するブロック図を示す。
図3において見ることができるように、ネットワーキングサブシステム206は無線機300及び構成機構302を含む。無線機300は、電子デバイス200から無線信号を送信し、電子デバイス200において他の電子デバイスから信号を受信するために用いられるハードウェア及び/又はソフトウェア機構を含む。本明細書において説明されている機構を除いて、無線機300等の無線機は当技術分野において一般的に知られており、それゆえ、詳細には説明されない。
【0039】
ネットワーキングサブシステム206は任意の数の無線機300を含み得るが、本明細書においては、1つの無線機300を有する実施形態が説明されている。しかし、複数の無線機の実施形態における無線機300は、記載されている単一の無線機の実施形態と同様に機能することに留意されたい。
【0040】
無線機300内の構成機構302は、無線機を、所与のチャネル(すなわち、周波数)上で送信及び/又は受信を行うように構成するために用いられる1つ以上のハードウェア及び/又はソフトウェア機構を含む。例えば、一部の実施形態では、構成機構302は、無線機300を、IEEE802.11仕様に記述されているチャネルの2.4GHz及び5GHz帯域内の所与のチャネル上における監視及び/又は送信から、異なるチャネル上における監視及び/又は送信へ切り替えるために用いることができる。(本明細書において使用されている「監視」は、他の電子デバイスからの信号を受信すること、及び場合によっては、受信された信号に対して1つ以上の処理ステップを実行すること、例えば、受信された信号はアドバタイジングフレームを含んでいるかどうかを判定すること等、を含むことに留意されたい。)
【0041】
記載されている実施形態では、構成機構302が無線機300を所与のチャネル上における送信又は受信から異なるチャネル上における送信又は受信へ切り替えるために、時間を要する。例えば、一部の実施形態では、第1のチャネル上における送信又は監視から第2のチャネル上における送信又は監視への切り替えは約3msを要する。加えて、無線機300がアドバタイジングフレームを送信するために、時間を要する。例えば、一部の実施形態では、アドバタイジングフレームの送信は約3msを要する。したがって、一部の実施形態では、無線機300を第1のチャネル上における送信へ切り替え、第1のチャネル上においてアドバタイジングフレームを送信し、無線機を異なるチャネル上における監視へ切り替えるためのおおよその合計時間は約9msになる。記載されている実施形態では、この「オーバーヘッド」値は、(以下においてより詳細に説明されるように)走査インターバル102を決定するために用いられる。
電子デバイス間の無線通信
【0042】
図4は、記載されている実施形態に係る無線通信する電子デバイス402〜406のグループを例示するブロック図を示す。より具体的には、電子デバイス402〜406は、本明細書において説明されている技法を用いて、無線チャネルを走査することによって互いを発見し、及び/又は無線チャネル上でアドバタイジングフレームを送信しながら、無線通信している。
【0043】
一部の実施形態では、電子デバイス402〜406は、
図2に示されているサブシステム202〜206と同様のサブシステムを含むが、代替実施形態は、異なる種類又は構成のサブシステムを含んでもよい。加えて、電子デバイス402〜406内の無線機408〜412は、
図3における無線機300に示されているものと同様の機構を含み得る。一般的に、電子デバイス402〜406は、電子デバイスが他の電子デバイスと無線通信することを可能にするネットワーキングサブシステム206を有する任意のデバイスを含み得る(又はそれらの内部に含まれ得る)。これは、デバイスが最初の接触を行うことを可能にするために無線チャネル上でアドバタイジングフレームを送信し(例えば、マルチキャストし)、それに続き、(おそらく、最初にマルチキャストされたアドバタイジングフレーム内の情報に基づき)後続のデータ/管理フレームを交換して、既存の無線ネットワークを確立し、及び/若しくはそれに参加し、通信セッション(例えば、TCP/IPセッション等)を確立し、セキュリティオプション(例えば、IPSEC)を構成し、並びに/又は他の理由のためにデータ/管理フレームを交換することを含み得る。
【0044】
図4において見ることができるように、無線信号414(ぎざぎざの線によって表現されている)が電子デバイス406内の無線機412から送信される。記載されている実施形態では、無線機412(及び無線機408〜410)は、無線機412を、特定の指定されたチャネルを使用して信号を送信するように構成するために用いることができる構成機構302と同様の機構を含む。例えば、記載されている実施形態では、電子デバイス406は、無線機412を、無線信号414が電子デバイス406のための「ホーム」無線チャネル上で送信されるように動的に構成する(又は再構成する)ことができる。
【0045】
無線信号414は、当技術分野において周知の技法を用いて無線信号414内にエンコードされる/含まれるデータ/管理フレームを含む。このフレームは、他の電子デバイスが、電子デバイス406の1つ以上の特性(例えば、電子デバイス406が、他の電子デバイスから送信された信号内のデータ/管理フレームを求めてホームチャネルを監視しているであろう利用可能ウィンドウ)を割り出すことを可能にする情報を包含するアドバタイジングフレーム500(
図5参照)を少なくとも含む。(本発明者らはアドバタイジングフレーム500を用いて実施形態を説明しているが、無線信号414内のデータ/管理フレームは任意の種類のデータ/管理フレームを含み得ることに留意されたい。)一部の実施形態では、フレームは、受信側の電子デバイスは全てがフレームを処理するべきであると指示する情報を含む、マルチキャストされるフレームである。
【0046】
無線信号414はそれぞれ電子デバイス402及び404内の無線機408及び410によって受信される。例のために、電子デバイス402は、無線信号414が送信される無線チャネルを監視しているが、電子デバイス404は監視していないと仮定される。それゆえ、無線信号414は両方のデバイスによって「受信される」が(例えば、デバイスはどちらも無線信号414の範囲内にある)、電子デバイス402のみが無線信号414内のアドバタイジングフレーム500を処理する。記載されている実施形態では、電子デバイス402及び404はどちらも、本明細書において説明されているもの等のソーシャル無線チャネルの走査を実行していることができる。しかし、2つのデバイスのうち、電子デバイス402のみが、電子デバイス406が例の時間においてアドバタイジングフレーム500を送信する無線チャネルを監視しているデバイスである。本明細書において説明されている走査技法を用いると、電子デバイス404は、電子デバイス406からの現在のアドバタイジングフレーム500は見逃すが、以下に説明されているように、ソーシャルチャネルセットの2回の走査以内には(すなわち、ソーシャルチャネルのセットを通し、それぞれのチャネルを走査する2回のパス以内には)電子デバイス406からのアドバタイジングフレーム500をほぼ必ず受信することになることに留意されたい。
【0047】
記載されている実施形態では、電子デバイス402内でアドバタイジングフレーム500を処理することは、エンコードされている/含まれているアドバタイジングフレーム500を有する無線信号414を受信すること、アドバタイジングフレーム500を入手するために、受信された無線信号414からアドバタイジングフレーム500をデコード/抽出すること、及びアドバタイジングフレーム500内に包含されている情報を割り出すためにアドバタイジングフレーム500を処理すること、含む。上述のとおり、アドバタイジングフレーム500は、電子デバイス402が電子デバイス406の1つ以上の特性を割り出すことを可能にする情報を含む。電子デバイス402は、この情報を用い、電子デバイス406とどのように/いつ通信するのかを少なくとも決定することができる。
【0048】
本発明者らは、一例として
図4に示されるネットワーク環境について説明しているが、代替実施形態では、異なる数又は種類のデバイスが存在してもよい。例えば、一部の実施形態は、より多くの、又はより少ない電子デバイスを含む。別の例として、別の実施形態では、異なるデバイスがフレームを送信及び/又は受信している。
アドバタイジングフレーム
【0049】
図5は、アドバタイジングフレーム500を例示するブロック図を示す。
図5に示されるように、アドバタイジングフレーム500はヘッダ502及びペイロード504を含む。ヘッダ502は、アドバタイジングフレーム500を送信した電子デバイスについての情報を含み、ペイロード504は、他のデバイスが、アドバタイジングフレーム500を送信した電子デバイスの1つ以上の特性を割り出すことを可能にし得る情報を含む。例えば、一部の実施形態では、ペイロード504内の情報から、受信側の電子デバイスは、送信側の電子デバイスのためのアドレッシング情報(ただし、アドレッシング情報及びその他の情報はアドバタイジングフレーム500のヘッダから割り出すことができる場合もある)、送信側の電子デバイスが「利用可能期間」の間にデータ/管理フレームを監視し、及び/若しくはそれらを送信する(例えば、データ/管理フレームをマルチキャストする)ことになっている1つ以上のチャネル、並びに/又は送信側の電子デバイスがデータ/管理フレームを監視し、及び/若しくはそれらを送信している予定である時のスケジュールを割り出すことができる。
【0050】
アドバタイジングフレーム500はアドバタイジングフレームの単なる一例に過ぎず、一部の実施形態では、アドバタイジングフレーム500はより多くの、より少ない、又は異なる種類の情報を含むことに留意されたい。一般的に、アドバタイジングフレーム500内には、アドバタイジングフレームを受信者へ送信すること、送信者についての情報(送信者のための利用可能ウィンドウを含む)を割り出すこと、及び/又は受信側のデバイスが他の電子デバイス(例えば、第3の電子デバイス)と無線通信することを可能にするその他の情報を割り出すこと、に役立ち得る任意の情報が包含され得る。
チャネル列
【0051】
受動的走査技法を用いて他の電子デバイスを発見するために、電子デバイスはまず、走査されるチャネルの列を決定することができる(又は所定の列を、例えば、電子デバイス内のメモリサブシステム204から、入手することができる)。チャネルの列は、所定の順序(例えば、順次、ランダム、増加方向/減少方向、偶数/奇数交互、等)で配列されたソーシャルチャネルのセットの反復インスタンスを含み得る。例えば、
図6は、記載されている実施形態に係る無線チャネルの可能な列600を例示する図を示す。
図6において見ることができるように、チャネルの列600内のソーシャルチャネルは例示的なチャネル1、2、4、5、及び6を含む。部分列602内では、ソーシャルチャネルは第1のランダム順序で配列され、第2の部分列604内では、ソーシャルチャネルは第2のランダム順序で配列される。ソーシャルチャネルを走査する際、電子デバイスはチャネルの列の中を、1度に1つのチャネルずつ、順番に進み、他のデバイスによって走査インターバル102の期間中に送信されたアドバタイジングフレームを求めてチャネルのそれぞれを監視することができる。
【0052】
本発明者らは
図6における配列を提示しているが、より短い、(
図6における省略によって示されているように)より長い、又は異なる列600を含む、無線チャネルの任意の配列を用いることができる。一般的には、他のデバイスからのアドバタイジングフレーム又は無線信号を求めて走査される無線チャネルのセットの任意の配列又は列を用いることができる。
アドバタイジングフレーム走査及び送信プロセス
【0053】
上述したとおり、記載されている実施形態は、電子デバイス200が、ネットワーキングサブシステム206内の無線機300を、他の電子デバイス200から送信されたアドバタイジングフレーム500を求めて監視を行うように構成する走査プロセスを実行することができる。これらの実施形態では、電子デバイスは、送信時間104が発生したことを判定し、任意選択的にホーム無線チャネル上でアドバタイジングフレーム500を送信することができる。アドバタイジングフレーム500を送信した後、又は、送信時間においてアドバタイジングフレーム500が送信されない場合には、送信時間104以降、所定の時間(例えば、5ms)が経過した時に、電子デバイス200は、無線機300を、他の電子デバイス200によって送信されたアドバタイジングフレーム500を検出するために、ソーシャルチャネルの列600からの次のソーシャルチャネルを監視するように構成することができる。チャネルは走査インターバル102の間、監視することができ、その後、電子デバイス200は、無線機300を、ホームチャネル上でアドバタイジングフレーム500を送信するように(又は列600内の次のソーシャルチャネルの走査の準備をするように)再構成することができる。このプロセスは、所定の条件が満たされるまで継続することができる。例えば、プロセスは、電子デバイス200がソーシャルチャネルの列600内のそれぞれのソーシャルチャネルを所与の回数走査するまで、電子デバイス200が1つ以上の他の電子デバイスに出会うまで、所定の時間が経過するまで、及び/又は別の条件が満たされるまで、継続することができる。
【0054】
記載されている実施形態では、アドバタイジングフレーム500をいつ(任意選択的に)送信するべきか、及びソーシャルチャネルをいつ走査するべきかを決定するために用いられる送信インターバル100は、電子デバイス200においてホーム無線チャネルとして使用されているソーシャルチャネルに応じて設定される。これらの実施形態では、もし、ソーシャルチャネルのうちの2つ以上について送信インターバル100が等しければ(又は1つが他のものの倍数であれば)、ソーシャルチャネルを走査している第1の電子デバイスは、異なるホームチャネル上の第2の電子デバイスを見つけることが不可能となるであろうということが起こり得る。なぜなら、第2の電子デバイスは第1の電子デバイスと同じ時間にアドバタイジングフレーム500を送信している可能性があり得、それゆえ、第1の電子デバイスによって実行されるチャネル走査は、第2のデバイスによるアドバタイジングフレーム500の送信と送信との間に位置する可能性があり得るからである。この理由のために、記載されている実施形態は、ソーシャルチャネル毎に異なる送信インターバルを用いる。例えば、一部の実施形態は、IEEE802.11仕様に記述されているとおりの2.4GHz帯域内の例示的なソーシャルチャネル1、6、及び11、並びに5GHz帯域内の40、104、及び153のために、以下の送信インターバルを用いることができるであろう。
【表1】
表1:例示的なチャネル毎の送信インターバル
代替実施形態では、異なる送信インターバルをそれぞれ有する、他のチャネルが用いられてもよい。例えば、一部の実施形態では、IEEE仕様に記述されているとおりの802.11g及び802.11a帯域内のチャネルのそれぞれをソーシャルチャネルとして用いることができるであろう。別の例として、所与の無線通信方式内の任意の所定の無線チャネルのセットをソーシャルチャネルとして用いることができるであろう。
【0055】
一部の実施形態では、送信インターバルは、ソーシャルチャネルの列600内のそれぞれのn番目のソーシャルチャネルのための送信インターバルが次式のとおりになるように設定することができるであろう:
送信インターバル(n)=送信インターバル(0)+n
*デルタ、
ここで、ソーシャルチャネルの列内の第1のチャネルの送信インターバル(すなわち、送信インターバル(0))は、例えば、100msに等しく、デルタは、(
図1に関して説明されているとおり)(a)無線機を、ホームチャネル上でアドバタイジングフレーム500を送信するように構成し、(b)ホームチャネル上でアドバタイジングフレーム500を送信し、(c)無線機を、所与のソーシャルチャネルを監視する(走査する)ように構成するために使われる時間の量の合計を含むオーバーヘッド値よりも大きい。例えば、オーバーヘッドが5msである場合には、デルタは8ms、10ms等に設定することができる。記載されている実施形態では、送信インターバル(0)、すなわち、ソーシャルチャネルのための時間インターバルのうちの最短のものは、オーバーヘッド時間よりも何倍か、例えば、5倍、10倍、又は別の倍数、大きくなるように構成される。
【0056】
図7は、記載されている実施形態に係る第1及び第2の電子デバイスのための走査シーケンスのタイムライン図を示す。より具体的には、
図7は、ソーシャルチャネルを走査しながらの他方のデバイスによる一方のデバイスの「出会い(meetup)」又は発見を示す。
図7は、第1のデバイス及び第2のデバイスが両方とも送信インターバルをおいてアドバタイジングフレーム500を送信し、ソーシャルチャネルのセットの走査を実行している双方向の発見プロセスを示していることに留意されたい。この構成では、第1及び第2の電子デバイスが両方とも他方のデバイスを見つける。代替実施形態では、発見は、一方のデバイスがもう一方のデバイスを見つけるだけの場合もあり、又は複数のデバイスがいくつかの他のデバイスを見つける場合もある。
【0057】
図7に示される例示的な走査プロセスの期間中に、それぞれのデバイスは、ソーシャルチャネルのセットを通した2回の走査サイクル(又は「パス」)を行う。チャネル1をホームチャネルとして使用する第1の電子デバイスは無線チャネル0、2、及び3を2回走査し、チャネル0をホームチャネルとして使用する第2の電子デバイスは無線チャネル1、2、及び3を2回走査する。デバイスは、互いを見つけた後は走査を継続する必要はないが、一部の実施形態では、電子デバイスは、第1及び第2の電子デバイスによって1つ以上の走査パスが完了されるまでアドバタイジングフレーム500の送信を開始しなかった電子デバイスを含む、他の利用可能な電子デバイス(例えば、第3、第4等の電子デバイス)の発見を可能にするために、ソーシャルチャネルを所与の回数走査するように構成することができることに留意されたい。
【0058】
図7において見ることができるように、電子デバイスは2回目のパス内において互いを発見する。これを例示するため、
図7におけるどちらの電子デバイスのためにも、他方のデバイスによって検出されるアドバタイジングフレーム500が送信される送信時間はボールド体で示されており、アドバタイジングフレーム500が検出される走査インターバルも同様である。しかし、1回目のパスの期間中には、第1のデバイスは、第2のデバイスがチャネル1を走査していない時間に、そのホームチャネル1上でアドバタイジングフレーム500を送信する。加えて、1回目のパスの期間中には、第2のデバイスは、第1のデバイスがチャネル0を走査していない時間に、そのホームチャネル0上でアドバタイジングフレーム500を送信する。これは、1回目の走査パス内のタイムラインのそれぞれの内部の送信時間から引かれた点線によって示されている。
【0059】
デバイスは2回目のパス内で互いを発見する。これは、デバイスが少なくとも1つのオーバーヘッド値分だけ互いに関して「ドリフトした」ためである。換言すれば、最も近接した送信時間インターバル同士は、異なるソーシャルチャネルのためのオーバーヘッド値の少なくとも1つ分だけ分離されているため(表1における例示的なチャネル毎の送信インターバル参照)、2回目のパスが発生する時には、送信時間(及びそれゆえ、チャネル走査)は少なくともオーバーヘッド値のための時間の量だけ互いに対してドリフトしている。これは、隣接するチャネル(すなわち、オーバーヘッド値1つ分だけ分離したチャネル)について当てはまることであるが、送信時間がオーバーヘッド値2つ分以上異なるソーシャルチャネルについては、ドリフトはもっと大きくなり得ることに留意されたい。これは、所与のデバイスは、ソーシャルチャネルの列を通した2回のパス以内に、ソーシャルチャネルのセット内の異なるホームチャネル上の第2のデバイスをほぼ必ず見つけることができるはずであることを意味する。
【0060】
図8は、記載されている実施形態に係る例示的なソーシャルチャネルのセット(チャネル1〜6)のための例示的な走査期間を示す表を示す。
図8において見ることができるように、ソーシャルチャネルを通した走査パスは、デバイスのホームチャネルを除く5つのソーシャルチャネルを走査する。例えば、チャネル3をそのホームチャネルとして使用するデバイスはチャネル1、2、4、5、及び6を走査することになる。走査は、(
図1及び
図7に示されるように)送信インターバルを用いて定義される走査インターバル内において行われ、それゆえ、ソーシャルチャネルのそれぞれが走査される「走査期間」は、電子デバイスのホームチャネルのための送信インターバルの継続時間の5倍になることを想起されたい。電子デバイスはソーシャルチャネルのそれぞれを、対応する走査期間内に1回走査する。例えば、
図8に示されるように、チャネル1をそのホームチャネルとして使用する電子デバイスのための走査期間は500msであり、そのため、電子デバイスは500msの期間を用いてソーシャルチャネル2〜6のそれぞれを走査することになる。
【0061】
図8に示されるように、走査期間のうちの1つは走査期間の別の1つと相いれない(チャネル3の、チャネル6の走査内のハッシュマークによって示される)。これは、送信インターバルが互いの倍数であるために生じる。具体的には、チャネル3の600msの走査期間はチャネル6の150msの送信インターバルの倍数である。それゆえ、場合によっては、チャネル3及び6のための送信時間は、チャネル3をホームチャネルとして使用する電子デバイスが、チャネル6をホームチャネルとして使用する電子デバイスを発見しないように揃ってしまう可能性がある。一部の実施形態は、互いの倍数ではない送信インターバルを用いることによって、この状況を回避する。代替実施形態は、所与のチャネルのために異なる走査インターバルを用いること、及び/又はチャネル毎又は走査パス毎に異なる送信インターバルを用いることによって、この状況を回避する。
【0062】
一部の走査期間(及びその元となる走査インターバル)は、その走査インターバルを用いているデバイスが、異なるチャネル上のデバイスを単一のパスのうちに発見するはずであるほど、十分に長いことにも留意されたい。これは、
図8における対応する走査枠内で「X」を用いて示されている。例えば、チャネル6をそのホームチャネルとして使用するデバイスは、例えば、(150msの送信インターバル以内の)140msの走査インターバルを用いて走査を行う。そのため、チャネル1をそのホームチャネルとして使用するデバイスは1回目のパスのうちに発見されるはずである。なぜなら、チャネル1のための送信インターバルは110msであり、これは、チャネル6の140msの走査インターバルの期間中に2つのアドバタイジングフレーム500が送信されるほど、十分に短いからである。
【0063】
図9は、記載されている実施形態に係る、アドバタイジングフレーム500を求めて無線チャネルのセットを走査するためのプロセスを例示するフローチャートを示す。
図9に示されるように、電子デバイス200が、他の電子デバイス200から送信されたアドバタイジングフレーム500を検出するために、無線チャネルの列600が走査されることを決定する時に、プロセスは開始する(ステップ900)。これは、電子デバイス200内のネットワーキングサブシステム206が、デバイス上のオペレーティングシステムから(他のデバイスとの接続を形成しようと試みているデバイス上のアプリケーションに由来し得る)信号(例えば、走査要求等)を受信するか、又は別の方法で、無線チャネルの列600が走査されることを決定する時に、発生し得る。
【0064】
一部の実施形態では、ネットワーキングサブシステム206は、無線チャネルを周期的かつ自動的に走査するように構成することができ、これは、アプリケーション/オペレーティングシステムから、走査を実行せよとの要求を受信することとは独立して行うことができる。しかし、上述のように、電子デバイス200のための電力消費目標は制限的であり得、そのため、無線チャネルの自動走査は低頻度で行われ得る。例えば、デバイスは、(要求された走査のための列600を通した複数回の連続したパスを行うことと対比して、)10s毎に1回チャネルの列600を通したパスを行うことができる。加えて、このような自動走査のためのチャネルの列600は、要求された走査のための列600と異なり、かつ/又はそれよりも短いものであり得る。これらの実施形態では、ステップ902等において無線チャネルの列600が走査されることを決定することは、自動走査が実行されることを決定することを意味し得る。
【0065】
決定を行った後、電子デバイス200は、他の電子デバイスによって送信されたアドバタイジングフレーム500を検出するために、無線チャネルの列600内のそれぞれの無線チャネルの走査を実行する(ステップ902)。無線チャネルのそれぞれを走査する時に実行される作業が以下において
図10に関して説明される。
【0066】
図10は、記載されている実施形態に係る、他の電子デバイスによって送信されたアドバタイジングフレーム500を求めて無線チャネルのセットを走査するために電子デバイス200が用いるプロセスを例示するフローチャートを示す。
図10に示されるプロセスは
図9におけるステップ902の拡大図であり、一部の実施形態におけるステップ902の最中に実行される作業のセットを示す。
【0067】
図10におけるプロセスは、電子デバイス200が次の送信時間104を待つ時に開始する(ステップ1000)。上述のように、送信時間104は、電子デバイス200がアドバタイジングフレーム500を任意選択的に送信することができる時間である。しかし、送信時間104は、無線チャネルの列600からの次の無線チャネルがいつ走査されるべきであるかを指示するために用いられる時間でもある。
【0068】
次の送信時間104の後に、電子デバイス200は、それ自身を、無線チャネルの列600からの次の無線チャネルを監視するように構成する(ステップ1002)。電子デバイス200を、次の無線チャネルを監視するように構成することは、電子デバイス200が他の電子デバイス200からの無線信号414を受信し、アドバタイジングフレーム500が受信されているかどうかを判定するために無線信号414を処理することを可能にする作業を実行することを含む。これは、ネットワーキングサブシステム206内の無線機300を、無線信号414を対応する周波数で受信するように構成すること、ネットワーキングサブシステム206/電子デバイス200内の1つ以上の回路又はプロセッサを、受信された無線信号414からフレームを抽出するように構成すること、ネットワーキングサブシステム206/電子デバイス200内の1つ以上の回路及び/又はプロセッサを、フレームを解釈するように構成すること等を意味し得る。
【0069】
電子デバイス200を、送信時間104の「後に」次の無線チャネル上のアドバタイジングフレーム500を求めて監視を行うように再構成することは、2つのことのうちの1つを意味することに留意されたい。第1の場合では、電子デバイス200は送信時間104においてアドバタイジングフレーム500を送信しており、それゆえ、無線機300は、無線機300を、次の無線チャネルを監視するように再構成することができるようになる前に、アドバタイジングフレーム500の送信を完了する必要がある。第2の場合では、電子デバイス200は送信時間においてアドバタイジングフレーム500を送信していない。この場合には、無線機300は、送信時間の後に、ただし、走査インターバル102が始まる前に、いつでも再構成することができる。一部の実施形態では、ネットワーキングサブシステム206は、送信時間104の後、無線機300を再構成する前に、所定の時間(例えば、7ms、12ms等)待つことができる。
【0070】
次に、電子デバイス200は、走査インターバル102の間、アドバタイジングフレーム500を求めて無線チャネルを監視する(ステップ1004)。無線チャネルの監視中、電子デバイス200はチャネル上の他の電子デバイス200からの無線信号414を受信し、アドバタイジングフレーム500が受信されているかどうかを判定するために無線信号414を処理する。アドバタイジングフレーム500が受信されると、電子デバイス200は、アドバタイジングフレーム500が受信された他の電子デバイスへのその後の通信を行う際に、及び/又は電子デバイス200内において1つ以上の構成作業を実行するために(例えば、ホームチャネルを再構成するため、等)、アドバタイジングフレーム500からの情報を用いることができる。
【0071】
走査インターバル102の後に、電子デバイス200は、走査されるべき無線チャネルが残っているかどうかを判定する(ステップ1006)。そうである場合には、電子デバイス200は、次の送信時間を待つためにステップ1000へ戻ることができる。そうではなく、走査されるべきチャネルが残っていない場合には、プロセスは終了する。
【0072】
図11は、記載されている実施形態に係るアドバタイジングフレーム500を送信するためのプロセスを例示するフローチャートを示す。上述のように、一部の実施形態は、アドバタイジングフレーム500を送信することなく走査プロセスを実行する場合がある(例えば、電力を節約するため)。それゆえ、アドバタイジングフレームの送信は任意選択的なものである。一部の実施形態では、電子デバイス200は、アドバタイジングフレーム500の送信を実行するように(又は実行しないように)自動的かつ動的に構成又は再構成することができる。例えば、電子デバイス200は、N回の連続した送信時間においてアドバタイジングフレーム500を送信することができるが、その後は、アドバタイジングフレーム500の送信を停止することができる。分かりやすくするために、この例では、アドバタイジングフレームは、対応する送信時間において送信中されている(及び電子デバイス200は、アドバタイジングフレーム500を任意選択的に送信しないということはしていない)と仮定されている。
【0073】
図11に示されるプロセスは、電子デバイス200が、電子デバイス200からホーム無線チャネル上でアドバタイジングフレーム500が送信されることを決定する時に、開始する(ステップ1100)。これは、電子デバイス200内のネットワーキングサブシステム206が、デバイス上のオペレーティングシステムから(他のデバイスとの接続を形成しようと試みているデバイス上のアプリケーションに由来し得る)信号(例えば、送信要求等)を受信するか、又は別の方法で、アドバタイジングフレーム500が送信されることを決定する時に、発生し得る。
【0074】
一部の実施形態では、ネットワーキングサブシステム206は、アドバタイジングフレーム500を周期的かつ自動的に送信するように構成することができる。しかし、上述のように、電子デバイス200のための電力消費目標は制限的であり得、そのため、アドバタイジングフレーム500の自動送信は低頻度で行われ得る。例えば、デバイスは、(アドバタイジングフレーム500のとぎれのない送信に対し)10s毎のN回の連続した送信時間の間にアドバタイジングフレーム500を送信することができる。これらの実施形態では、ステップ1100におけるようにアドバタイジングフレーム500が送信されることを決定することは、自動走査が実行されることを決定することを意味し得る。
【0075】
次の送信時間の前に、電子デバイス200は、それ自身を、ホーム無線チャネル上で送信を行うように構成する(ステップ1102)。電子デバイス200を、ホーム無線チャネル上で送信を行うように構成することは、電子デバイス200が、アドバタイジングフレーム500を構築し、アドバタイジングフレーム500を、他の電子デバイスによって受信され得る無線信号414内に含めて送信することを可能にする作業を実行することを含む。これは、ネットワーキングサブシステム206内の無線機300を、無線信号414を対応する周波数で送信するように構成し、並びに/又はネットワーキングサブシステム206/電子デバイス200内の1つ以上の回路若しくはプロセッサを、アドバタイジングフレーム500を構築する(例えば、フレームのためのデータを収集する、誤り訂正値を計算する、フレームそのものを作成する、等)ように構成することを意味し得る。
【0076】
次に、対応する送信時間において、電子デバイス200はホーム無線チャネル上でアドバタイジングフレーム500を送信する(ステップ1104)。これは、他の電子デバイスが無線信号を受信し、無線信号からアドバタイジングフレーム500を抽出することができるように、アドバタイジングフレーム500が埋め込まれた/エンコードされた無線信号414を送信することを含む。
【0077】
以上の実施形態の説明は、例示と説明のためにのみ提示されてきた。それらは、網羅的であることも、又は開示されている形態に実施形態を限定することも意図されてはいない。したがって、多くの修正及び変形態様は、当業者に明らかであろう。加えて、上記の開示は、実施形態を限定するように意図されているものではない。実施形態の範囲は添付の請求項によって定義される。