以下、実施例の通信システムについて説明する。実施例の通信システムは、通信装置と、少なくとも1台の電子機器を有する。通信装置および電子機器は、周波数ホッピング方式を採用するBluetooth(ブルートゥース、登録商標)プロトコルを用いて無線通信する。通信装置がゲーム装置に組み込まれる場合、通信装置と無線接続する電子機器は、ユーザがボイスチャットするためのヘッドセットやゲームコントローラなどのゲーム装置周辺機器であってよい。ゲームコントローラにマイクとスピーカの機能を搭載することで、ユーザは、ヘッドセットがなくても、ボイスチャットを実施できる。
実施例の通信装置は、同種の通信部(トランシーバ)を複数備える。ここで「同種」とは、たとえば通信部の物理的な電気回路が同一であるか又は少なくとも同一又は同様の機能を実現できることを意味する。「同種」は、たとえば、通信部のオペレーティングソフトウェアおよび/またはオペレーティングプロトコルが同一であることを意味してもよい。「同種」は、複数の通信部が、同じ無線通信プロトコル(限定するものではないが、たとえばブルートゥースプロトコル)にしたがって動作できることを意味する。複数の通信部が同種であることにより、任意の外部機器との無線通信を、複数の通信部のいずれかによって交互に処理することが可能となる。
そのため、どの通信部が通信グループを形成するかに関係なく、外部機器による通信プロセスは同一または同様であり、外部機器は、たとえば同種の通信部との通信において共通の通信プロトコルに従うことによって、複数の同種の通信部のいずれとも同じように通信できる。(とは言ったものの、当然のことではあるが、特定の通信部との特定の通信動作に特有な、特定の通信部との通信態様が存在してよい。たとえば、外部機器と特定の通信部との間の通信は、特定の通信部の(ペアリング又はアドホック通信により取得された)識別子を特定する可能性があってよい。また外部機器および通信部は、特定の通信動作に対して、それぞれ選択的にマスタまたはスレーブとして動作してもよい。また、特定の通信期間内で送信または受信される実際のデータは、当該特定の通信に特別なものであってよい。)
このように同種の通信部を複数備えることで、通信装置は通信容量を大きくでき、多くの電子機器と無線通信できる。複数の通信部は、1つのデバイスドライバにより制御され、複数の通信部からのデータは、デバイスドライバにより単一の通信部からのデータとして取り扱われてよい。デバイスドライバは複数の通信部の通信状況にもとづいて、各通信部と電子機器とを好適に接続させる。なお実施例の通信装置は、ゲーム装置以外の他の種類の情報処理装置に組み込まれてもよい。
図1は、実施例の通信システム1を示す。通信装置2は、装置本体3および通信ブロック40を備える。通信ブロック40は複数のブルートゥース(以下、単に「BT」と呼ぶこともある)通信機器を有する。装置本体3は、通信ブロック40を制御するデバイスドライバを有し、通信ブロック40経由で取得されたデータは、ゲームやチャットなどのアプリケーションソフトウェアに供給される。電子機器200a~200d(以下、特に区別しない場合には「電子機器200」と呼ぶ)は、BT通信機器を有するヘッドセットやゲームコントローラなどの周辺機器であってよい。
なお本技術は、BT装置に限定されないことに留意されたい。たとえば別の周波数ホッピングプロトコルのような別の通信プロトコル(たとえば適応型周波数ホッピングスペクトラム拡散技術または周波数ホッピング符号分割多元接続技術)が、代わりにまたは追加的に使用されてもよい。以下、通信の「動作」は、このような技術のいずれかを使用することを示す。
通信ブロック40は、1台以上の電子機器200と無線接続する。装置本体3に搭載されるデバイスドライバは、通信ブロック40における複数の通信部のいずれかに、電子機器200を効率的に割り当て、通信ブロック40と電子機器200との間の良好な無線通信をサポートする。
通信装置2は、プログラマブル処理装置を備えてよく、複数の同種の通信部を有する通信装置に設けられるコンピュータの例を示す。コンピュータ(たとえば図25に示される)は、コンピュータ実行可能な指示を含むプログラムの制御下で、通信装置の動作に関して本明細書で説明する方法または技術を実施する。
電子機器200は、プログラマブル処理装置を備えてよく、複数の同種の通信部を有する通信装置に無線接続可能なコンピュータの例を示す。コンピュータ(たとえば図25に示される)は、コンピュータ実行可能な指示を含むプログラムの制御下で、電子機器の動作に関して本明細書で説明する方法または技術を実施する。
図2は、外部の電子機器と無線接続する通信装置2の一部のブロック図を示す。通信装置2は、電源ブロック10、システムコントローラ20、ホストブロック30および通信ブロック40を備える。電源ブロック10において、VDD_MAIN12は、主電源を供給し、VDD_LP14は、低電源を供給する。図2に示す例では、システムコントローラ20および通信ブロック40は低電源で駆動され、ホストブロック30は主電源で駆動される。
通信ブロック40は複数の同種の通信部を有し、実施例では2つの第1通信部42および第2通信部44を有する。通信部が同種であるとは、使用する通信規格が同じであることを意味してよい。通信ブロック40は、システムオンチップとして構成されて、第1通信部42および第2通信部44は、同じチップ上に設けられた共通のシステムクロック発振器のクロック信号にもとづいて動作してよい。第1通信部42および第2通信部44は、それぞれアンテナに接続し、ブルートゥースプロトコルにしたがって外部の電子機器200と無線接続する機能を備えた集積回路部品である。ホストブロック30のUSB(ユニバーサルシリアルバス)モジュール32と、通信ブロック40のUSBモジュール46は、共通のUSB規格で互いに接続する。なおホストブロック30と通信ブロック40との間は、USB規格以外の通信規格で接続されてもよい。
第1通信部42および第2通信部44は、単一のUSBモジュール46に接続する。通信ブロック40において、単一のUSBモジュール46を共用することで、通信ブロック40のチップ製造コストを下げられる。第1通信部42および/または第2通信部44で受信したデータ信号は、USBモジュール46を介してUSBモジュール32に送信され、制御部34により必要な処理を施されて、アプリケーションを実行するメインCPU(図示せず)に提供される。またメインCPUで生成されたデータ信号は、USBモジュール32を介してUSBモジュール46に送信され、第1通信部42または第2通信部44から、無線接続している電子機器200に送信される。
以下、通信装置2における電源系の状態遷移について説明する。
<パワーオフ>
通信装置2の電源コードがコンセントから外れている場合、通信装置2はパワーオフの状態にある。
<BT初期化>
通信装置2の電源コードがコンセントに接続されると、システムコントローラ20が起動される。システムコントローラ20は起動されると、ホストブロック30および通信ブロック40に電源を供給する。ホストブロック30が起動されると、システムコントローラ20は、USBモジュール46を有効にするためのUSB_EN信号を通信ブロック40に供給する。これによりUSBモジュール32とUSBモジュール46とが、USB接続される。
ホストブロック30において、制御部34は、BT通信機器を制御するデバイスドライバとして動作する。制御部34は、USB接続を介して、ファームウェアを第1通信部42にダウンロードして、第1通信部42を初期化する。この状態で制御部34は、複数の同種の通信部のうち、1つの予め定められた第1通信部42のみの初期化を実施し、第2通信部44の初期化は行わない。制御部34は、第1通信部42に、ウェイクオン用のパラメータを設定する。
<ウェイクオンBT>
制御部34が、第1通信部42にウェイクオン用パラメータを設定すると、システムコントローラ20は、ホストブロック30への電源供給を停止するとともに、USB_EN信号の供給を停止する。これにより通信装置2では、システムコントローラ20および第1通信部42のみが、起動された状態を維持する。
第1通信部42は、外部の電子機器200からの接続要求を待機するページスキャンモードに入る。第1通信部42は、事前にペアリング処理により通信装置2に接続する電子機器200を識別するアドレス情報(機器ID)を取得して保持しておく。第1通信部42はアドレス情報を、電子機器および通信装置の一方または両方においてエンコードされている所定のペアリング情報によって取得して保持しておいてもよく、または電子機器および通信装置の間のアドホック接続を利用することで取得して保持しておいてもよい。第1通信部42は、ページスキャンモードでは、1つ以上の接続可能な機器IDを含む機器IDリストを読み出して、電子機器200からの接続要求(ページング)を待ち受ける。ウェイクオンBTの状態で、外部の電子機器200からの接続要求は、装置本体3を含む通信装置全体の起動要求となる。
第1通信部42が、機器IDリストに含まれるBTデバイスアドレスを有する電子機器200から接続要求を受信すると、ウェイクオン用パラメータにしたがって、WAKE信号をシステムコントローラ20に出力する。システムコントローラ20はWAKE信号を受けると、ホストブロック30に電源供給し、またUSBモジュール46を有効にするためのUSB_EN信号を通信ブロック40に供給する。制御部34はUSB接続を介して、ファームウェアを第2通信部44にダウンロードし、第2通信部44を初期化する。これにより通信ブロック40において、第1通信部42および第2通信部44が、外部の電子機器200と無線接続可能な状態となる。
<サスペンド>
サスペンド状態では、第1通信部42は、外部の電子機器200からの接続要求を待機するページスキャンモードで動作する。USBモジュール32およびUSBモジュール46はサスペンドし、第2通信部44はスリープする。
図3は、通信装置2と電子機器200の通信に関する構成を示す。制御部34は、第1通信部42および第2通信部44を制御するデバイスドライバとして機能する。制御部34は、接続管理部102、割当処理部104およびロール管理部106を備える。これらの構成の1つ又は複数は、以下の説明において「制御部」の機能として理解されてよい。
第1通信部42は、ブルートゥースプロトコルによって外部機器と無線通信する機能を有し、接続処理部50、通信制御部52、保持部54およびクロックカウンタ56を備える。接続処理部50は、電子機器200との間で無線接続を確立する処理を実行する。通信制御部52は、接続確立後の電子機器200との間で、データ信号を送受信する。クロックカウンタ56は、クロックレートを3.4KHzとする28ビットのBTクロックを生成する。保持部54は、過去にペアリング処理した電子機器200の機器ID情報を保持し、接続処理部50は、外部の電子機器200による接続要求を待ち受ける機能を有する。
第2通信部44は、ブルートゥースプロトコルによって外部機器と無線通信する機能を有し、接続処理部60、通信制御部62およびクロックカウンタ64を有する。接続処理部60は、第1通信部42が接続要求を受けた電子機器200との間で無線接続を確立する処理を実行する。通信制御部62は、接続確立後の電子機器200との間で、データ信号を送受信する。クロックカウンタ64は、クロックレートを3.4KHzとする28ビットのBTクロックを生成する。実施例の通信装置2において、クロックカウンタ56のBTクロックの所定ビットの値と、クロックカウンタ64のBTクロックの所定ビットの値は、同期するように制御される。実施例の接続処理部60は接続処理部50と異なり、外部の電子機器200による接続要求を待ち受ける機能を有さず、接続要求を待ち受けない。なお別の例で接続処理部60は、接続要求を待ち受ける機能を有してもよいが、待ち受け機能を制限されて、接続要求を待ち受けないことが好ましい。
電子機器200は、第1通信部42および/または第2通信部44と、ブルートゥースプロトコルで無線接続する。電子機器200は、接続処理部210、通信制御部220、保持部222およびクロックカウンタ224を備え、接続処理部210は、接続要求部212、指示処理部214および要求処理部216を有する。保持部222は、通信装置2とのペアリング処理により取得した第1通信部42の機器ID情報を保持する。
図3において、さまざまな処理を行う機能ブロックとして記載される各要素は、ハードウェア的には、回路ブロック、メモリ、その他のLSIで構成することができ、ソフトウェア的には、システムソフトウェアや、メモリにロードされたゲームプログラムなどによって実現される。したがって、これらの機能ブロックがハードウェアのみ、ソフトウェアのみ、またはそれらの組合せによっていろいろな形で実現できることは当業者には理解されるところであり、いずれかに限定されるものではない。
以下、電子機器200と通信装置2とが無線接続する手順を説明する。
通信装置2と無線接続するために、電子機器200は、事前に通信装置2との間でペアリング処理を実施する。ペアリング処理において、電子機器200と第1通信部42は、互いの機器ID情報を交換する。そこで電子機器200の保持部222には、第1通信部42の機器ID情報が保持され、また第1通信部42の保持部54には、電子機器200の機器ID情報が保持される。第1通信部42は複数の電子機器200a~200dとペアリング処理をすることで、保持部54には、無線接続可能な複数の電子機器200a~200dの機器ID情報が保持されて、機器IDリストが生成される。
通信装置2は、1台の電子機器200とも無線接続していないとき、ウェイクオンBTの状態にある。
図4は、電子機器200と通信装置2とが無線接続するシーケンスを示す。ウェイクオンBTの状態において、第1通信部42は、外部の電子機器200からの接続要求を待機するページスキャンモードで動作する(S10)。ページスキャンモードにおいて、第1通信部42の接続処理部50は、接続可能な機器IDリストに含まれる電子機器200からの接続要求(ページング)を待ち受ける。
電子機器200において、接続要求部212が、保持部222から第1通信部42の機器ID情報を読み出し、第1通信部42の機器ID情報を含めた接続要求を、第1通信部42に送信する(S12)。第1通信部42において接続処理部50は、機器IDリストに含まれる機器IDを有する電子機器200から接続要求を受信すると、ウェイクオン用パラメータにしたがって、WAKE信号をシステムコントローラ20に出力する(S14)。システムコントローラ20はWAKE信号を受けると、ホストブロック30およびUSBモジュール46を起動して、USBモジュール32とUSBモジュール46の間のUSB接続をアクティブにする。
制御部34において、接続管理部102はUSB接続を介して、ファームウェアを第2通信部44にダウンロードし、第2通信部44を初期化する。これにより第2通信部44が、外部の電子機器200と無線接続可能な状態となる(S16)。接続管理部102は、電子機器200との間で認証処理、暗号化処理を実行し、第1通信部42は、電子機器200と、データを伝送可能なデータ伝送モードであるアクティブモードで接続する(S18)。
BT通信機器はマスタまたはスレーブのいずれかとして動作する。(ある例において、特定のBT通信機器は、設計もしくはコンフィギュレーションの設定により、いずれかの時点でマスタまたはスレーブのいずれかとして動作するように制約されてよい。つまり、そのような例でBT通信機器は、異なる通信先が存在する場合であっても、同時にマスタおよびスレーブの双方として動作することはできない。)ベースバンドレベルで2台のBT通信機器がBTリンクを確立すると、ページングデバイスがマスタ、ページドデバイスがスレーブとなる。マスタは、自身のBTデバイスアドレスをベースに周波数ホッピングパターンを決定し、自身のクロックでホッピングシーケンスのフェーズを決定する。
S18の時点で、ページングデバイスである電子機器200がマスタであり、ページドデバイスである第1通信部42がスレーブとなっている。通信装置2が、周辺機器である電子機器200を制御するためには、第1通信部42がマスタ、電子機器200がスレーブとして動作する必要があるため、ロール管理部106は、マスタとスレーブの役割(ロール)を切り替えるためのロール切替指示を、第1通信部42を介して電子機器200に送信する(S20)。電子機器200において、指示処理部214は、ロール切替指示を受け付ける。第1通信部42における接続処理部50、および指示処理部214は、ロール切替指示が送信された所定時間後に、同期してロールの切替を実行する。これにより電子機器200は、スレーブとしての動作を開始し、第1通信部42は、マスタとしての動作を開始する。
実施例の通信システム1において、第1通信部42は、電子機器200による接続要求を受け付けて、当該電子機器200と無線接続した後、当該電子機器200に、接続要求を待ち受ける状態になることを指示する(S22)。これは、(接続要求を送信した)当該電子機器200の接続先を、第1通信部42から第2通信部44に切り替えるために必要な処理であり、このような切り替えは、接続要求の受信に応じて発生し、また割当処理に基づいて発生する。以下、第1通信部42が、待ち受け指示を電子機器200に送信する理由について説明する。
接続管理部102は、第1通信部42における外部機器との通信状況(つまりは通信状態)と、第2通信部44における外部機器との通信状況(つまりは通信状態)を取得する。S18の接続確立時点では、第1通信部42は1台の電子機器200と接続し、第2通信部44は電子機器200と接続していない。接続管理部102は、通信状況として、第1通信部42および第2通信部44のそれぞれが接続する外部機器の台数を取得してよい。
割当処理部104は、接続管理部102が取得した第1通信部42および第2通信部44のそれぞれの通信状況にもとづいて、外部機器の接続先を、第1通信部42または第2通信部44に決定する割当処理を実行する。ここで第1通信部42は、外部機器による接続要求を待ち受ける機能を有する一方で、第2通信部44は、外部機器による接続要求を待ち受ける機能を有しない、もしくは待ち受ける機能を実行しない。実施例で第1通信部42は、周期的にページスキャンモードで動作する役割をもつため、割当処理部104は、第1通信部42における外部機器との通信負荷が第2通信部44における外部機器との通信負荷以下となるように、外部機器の接続先を、第1通信部42または第2通信部44に決定することが好ましい。そのため通信装置2と接続する電子機器200が1台しかないときには、割当処理部104は、当該電子機器200の接続先を第2通信部44に決定して、第1通信部42の通信負荷を、第2通信部44の通信負荷よりも軽くすることが好ましい。
割当処理部104が割当先を判断する基準となる通信負荷は、各通信部による通信に影響する負荷要素であり、各通信部が接続する外部機器の台数であってよい。そのため割当処理部104は、第1通信部42が接続する外部機器の台数が第2通信部44が接続する外部機器の台数よりも少なくなるように、外部機器を第1通信部42または第2通信部44に割り当ててよい。
なお基準となる通信負荷は、各通信部における外部機器との間の通信データ量であってもよい。電子機器200との間において、ボイスチャットにおける音声データのデータ量は大きいが、ゲームコントローラの操作データのデータ量は小さい。そのため接続管理部102は、各通信部と電子機器200との間の通信データ量を監視して、割当処理部104は、第1通信部42の通信負荷が第2通信部44の通信負荷よりも小さくなるように、電子機器200の接続先を決定してよい。基準となる通信負荷は、各通信部における通信エラー率であってもよく、上記いずれかを組み合わせて求めてもよい。
S18の接続確立時点で、1台の電子機器200のみが、通信装置2に既に接続している。そのため割当処理部104は、電子機器200の接続先を、第1通信部42から第2通信部44に変更することを決定する。実施例の通信システム1では、接続先を変更するために、割当処理部104が、接続済みの電子機器を第2通信部に接続する処理を開始する。このために、電子機器200をスキャンモード(たとえばページスキャンモード)で動作させ、第2通信部44から電子機器200に接続要求を送信させる。そのためにS22では、第1通信部42が、電子機器200に、第2通信部44による接続要求を待ち受ける状態になることを指示する信号(待ち受け指示信号)を送信している。
この接続先切替処理においては、割当処理部104が、第1通信部42および第2通信部44に対して、現在第1通信部42に接続中の電子機器200の接続先を、第1通信部42から第2通信部44に切り替えることを通知する。このとき割当処理部104は、接続先を切り替える電子機器200の機器ID情報(BTデバイスアドレス)も、第1通信部42および第2通信部44のそれぞれに通知する。これにより第1通信部42および第2通信部44は、第1通信部42に接続中の電子機器200を、第2通信部44に接続するように動作するべきことを、それぞれ認識する。
第1通信部42において、接続処理部50は、電子機器200に待ち受け指示信号を送信する(S22)。待ち受け指示信号は、接続要求を送信する機器(たとえば、通信部)の識別情報、この例では第2通信部44の機器ID情報を含んでよい。電子機器200において、指示処理部214は待ち受け指示信号を受信し、第2通信部44による接続要求を待ち受ける状態になることの指示を受け付ける。これにより指示処理部214は第1通信部42との接続を維持しつつ、要求処理部216が、第2通信部44による接続要求を待ち受けるページスキャンモードで動作する(S24)。
このとき指示処理部214は、接続切替元である第1通信部42との通信期間(第1期間)と、接続切替先である第2通信部44による接続要求を待ち受けるスキャン期間(第2期間)とを交互に切り替えるように動作する。接続処理部50は、第1期間と第2期間とを交互に切り替えることを定めたタイミング情報を待ち受け指示信号に含ませておき、指示処理部214は、待ち受け指示信号に含まれるタイミング情報にしたがって、第1通信部42との通信期間と、第2通信部44による接続要求を待ち受けるスキャン期間とを交互に周期的に切り替えてよい。
なお接続処理部50は、電子機器200と通信装置2との接続状況に応じて、タイミング情報を設定することが好ましい。図4におけるS22の時点で、電子機器200は、通信装置2との間で新規の接続処理を行っている段階にあり、第1通信部42との間で音声データ等のデータ通信はまだ開始されていない。そこで接続処理部50は、電子機器200が速やかに第2通信部44と無線接続できるようにタイミング情報TI1を設定する。たとえば接続処理部50は、第2期間を第1期間よりも長くしたタイミング情報TI1を設定してよい。
スキャン期間(第2期間)に実施されるページスキャンモードでは、要求処理部216が、待ち受け指示信号に含まれる機器ID情報をもつ第2通信部44による接続要求を待ち受ける。第2通信部44において、接続処理部60は、電子機器200の機器ID情報を含めた接続要求を、電子機器200に送信する(S26)。要求処理部216が、接続要求を受け付けると、要求処理部216と接続処理部60との間で、接続処理が実施される。これにより第2通信部44は、電子機器200とアクティブモードで接続する(S28)。
接続管理部102は、第2通信部44と電子機器200とが接続したことを検出すると、第1通信部42に対して、電子機器200との接続を切断するように指示する。この指示を受けて接続処理部50は、電子機器200に対して、接続の切断要求を送信する(S30)。なお切断要求は、電子機器200から第1通信部42に送信されてもよい。その後、第1通信部42と電子機器200の間の接続は(たとえば通信装置2によって)切断され(S32)、電子機器200は、第2通信部44とのみ接続する。このように通信システム1では、第2通信部44が電子機器200と接続した後、第1通信部42と電子機器200との間の無線接続が(たとえば通信装置2によって)切断されて、電子機器200が、第2通信部44とのみ無線接続する。それから第1通信部42は、外部の電子機器200からの接続要求を待機するページスキャンモードで動作し(S34)、接続可能な機器IDリストに含まれる電子機器200からの接続要求(ページング)を待ち受ける。
以上、1台目の電子機器200が通信装置2と接続するときの手順を説明した。以下においては、2台目以降の電子機器200が通信装置2と接続するときの手順を、接続状態を示す接続遷移図を用いて説明する。
図5は、図4に示す無線接続シーケンスにしたがって、1台目の電子機器200aが第2通信部44に無線接続している状態を示す。上記したように、電子機器200aは、第1通信部42に接続要求を送信して、第1通信部42と接続した後、第2通信部44による接続要求を待ち受けるページスキャンモードで動作する。電子機器200aは、第2通信部44による接続要求を受信して、第2通信部44と接続した後、第1通信部42との接続を切断する。図5は、この状態を示している。
図6は、2台目の電子機器200bが第1通信部42に無線接続している状態を示す。電子機器200bは、第1通信部42に接続要求を送信して、第1通信部42とアクティブモードで接続する。
接続管理部102は、第1通信部42における外部機器との通信状況と、第2通信部44における外部機器との通信状況を取得する。図6に示す接続状態では、第1通信部42は1台の電子機器200bと接続し、第2通信部44は1台の電子機器200aと接続している。接続管理部102は、通信状況として、第1通信部42および第2通信部44のそれぞれが接続する電子機器200の台数を取得する。割当処理部104は、第1通信部42および第2通信部44のそれぞれが接続する電子機器200の台数にもとづいて、電子機器200bを、第1通信部42または第2通信部44のいずれかに割り当てる処理を実行する。
割当処理部104は、第1通信部42における外部機器との通信負荷が第2通信部44における外部機器との通信負荷以下となるように、新たに接続を確立した電子機器200bを、第1通信部42または第2通信部44に割り当てる。2台目の電子機器200bが第1通信部42と接続を確立した状態(図6に示す状態)では、第1通信部42は1台の電子機器200bと接続し、第2通信部44は1台の電子機器200aと接続しており、第1通信部42および第2通信部44の通信負荷は等しい。そこで割当処理部104は、電子機器200bの接続先が第1通信部42でよいことを決定し、したがって電子機器200bの接続先を変更しないことを決定する。
図7は、3台目の電子機器200cが第1通信部42に無線接続している状態を示す。電子機器200cは、第1通信部42に接続要求を送信して、第1通信部42とアクティブモードで接続する。
接続管理部102は、第1通信部42における外部機器の接続台数と、第2通信部44における外部機器の接続台数を取得する。図7に示す接続状態では、第1通信部42は2台の電子機器200b、200cと接続し、第2通信部44は1台の電子機器200aと接続している。割当処理部104は、第1通信部42における外部機器の接続台数が第2通信部44における外部機器の接続台数以下となるように、新たに接続を確立した電子機器200cを、第1通信部42または第2通信部44に割り当てる。3台目の電子機器200cが第1通信部42と接続を確立した状態(図7に示す状態)では、第1通信部42における外部機器の接続台数は、第2通信部44における外部機器の接続台数よりも多い。そこで割当処理部104は、電子機器200cの接続先が第2通信部44であることを決定し、したがって電子機器200cの接続先を、第1通信部42から第2通信部44に変更することを決定する。
図8は、電子機器200cが第1通信部42と第2通信部44に同時接続している状態を示す。第1通信部42は、電子機器200cに、接続要求を待ち受ける状態になることを指示する信号(待ち受け指示信号)を送信し、電子機器200cは、第1通信部42との接続を維持しつつ、第2通信部44による接続要求を待ち受けるページスキャンモードで動作する。電子機器200cは、第2通信部44による接続要求を受信して、第2通信部44と接続する。図8は、この状態を示している。
図9は、電子機器200cが第1通信部42との接続を切断した状態を示す。第1通信部42は、電子機器200cに接続の切断要求を送信することで、電子機器200cとの間の接続を切断する。図9は、この状態を示している。
図10は、4台目の電子機器200dが第1通信部42に無線接続している状態を示す。電子機器200dは、第1通信部42に接続要求を送信して、第1通信部42とアクティブモードで接続する。
接続管理部102は、第1通信部42における外部機器の接続台数と、第2通信部44における外部機器の接続台数を取得する。図10に示す接続状態では、第1通信部42は2台の電子機器200b、200dと接続し、第2通信部44は2台の電子機器200a、200cと接続している。割当処理部104は、第1通信部42における外部機器の接続台数が第2通信部44における外部機器の接続台数以下となるように、新たに接続を確立した電子機器200dを、第1通信部42または第2通信部44に割り当てる。4台目の電子機器200dが第1通信部42と接続を確立した状態(図10に示す状態)では、第1通信部42における外部機器の接続台数は、第2通信部44における外部機器の接続台数と等しい。そこで割当処理部104は、電子機器200dの接続先が第1通信部42でよいことを決定し、したがって電子機器200dの接続先を変更しないことを決定する。
図11は、3台目の電子機器200cが第2通信部44から切断された状態を示す。たとえば電子機器200cのユーザが、電子機器200cのゲームプレイを終了して、装置本体3からログアウトすると、電子機器200cと第2通信部44との接続が切断される。
電子機器200cと通信装置2との接続が切断されると、接続管理部102は、第1通信部42における外部機器の接続台数と、第2通信部44における外部機器の接続台数を取得する。図11に示す接続状態では、第1通信部42は2台の電子機器200b、200dと接続し、第2通信部44は1台の電子機器200aと接続している。割当処理部104は、接続していた電子機器200cとの無線接続が終了したことを契機に(言い換えると、無線接続の終了を判定したことに応じて)、割当処理を実行する。具体的に割当処理部104は、第1通信部42における外部機器の接続台数が第2通信部44における外部機器の接続台数以下となるように、既に接続していた電子機器200dの接続先を変更する。図11に示す状態では、第1通信部42における外部機器の接続台数が第2通信部44における外部機器の接続台数よりも多いため、割当処理部104は、電子機器200dの接続先を、第1通信部42から第2通信部44に変更することを決定する。
図12は、電子機器200dが第2通信部44に接続した状態を示す。接続先を切り替える際、電子機器200dは、第1通信部42から待ち受け指示信号を受信し、第2通信部44による接続要求を待ち受ける状態になる。電子機器200dにおける指示処理部214は、待ち受け指示信号に含まれるタイミング情報にしたがって、第1通信部42との通信期間と、第2通信部44による接続要求を待ち受けるスキャン期間とを交互に周期的に切り替える。電子機器200dにおける要求処理部216が、第2通信部44から接続要求を受け付けると、電子機器200dと第2通信部44との間で接続処理が実施される。このように電子機器200dは、第1通信部42および第2通信部44と同時接続する状態を経てから、第1通信部42との接続を切断して、第2通信部44とのみ接続する。
待ち受け指示信号を受信する時点で、電子機器200dは、第1通信部42と既に音声データ等のデータ通信を実施している状態にあり、図4のS22に示したように新規の接続処理を行う場合とは事情が異なる。そのため接続処理部50は、電子機器200dと第1通信部42との間のデータ通信を維持することを優先しつつ、その間に第2通信部44と無線接続できるように、タイミング情報TI2を設定する。接続処理部50は、接続切替元である第1通信部42との通信期間(第1期間)を、接続切替先である第2通信部44による接続要求を待ち受けるスキャン期間(第2期間)よりも長くしたタイミング情報TI2を設定してよい。つまり新規の接続処理時に送信されるタイミング情報TI1と、データ通信の開始後に送信されるタイミング情報TI2とは異なってよい。
なお図12の例では、電子機器200dの接続先が第1通信部42から第2通信部44に切り替えられているが、接続先が第2通信部44から第1通信部42に切り替えられるときにも、接続処理部50は、タイミング情報TI2を待ち受け指示信号に含め、第2通信部44が当該待ち受け指示信号を電子機器200dに送信してよい。
実施例の通信システム1では、割当処理部104が、第1通信部42における外部機器との通信負荷が第2通信部44における外部機器との通信負荷以下となるように、外部機器の接続先を、第1通信部42または第2通信部44に決定する。
そのため通信装置2と電子機器200との間でデータ通信が開始された後であっても、通信装置2と電子機器200との接続環境の変化に応じて、電子機器200の接続先の切替処理が実施される。つまり第1通信部42または第2通信部44の一方が電子機器200と無線接続した状態で、電子機器200にタイミング情報TI2を含む待ち受け指示信号を送信した後、電子機器200が第1通信部42または第2通信部44の他方と接続すると、第1通信部42または第2通信部44の一方と電子機器200との間の無線接続は切断される。通信負荷を利用した基準で割当処理部104が外部機器の接続先を決定することで、新規外部機器に対して第1通信部42による安定したページスキャンモード動作を保証する。
実施例の通信システム1では、電子機器200が第1通信部42に対してページング処理を行うため、第1通信部42と電子機器200との接続が最初に確立したときには、電子機器200がマスタとなり(つまりマスタとして動作し)、第1通信部42がスレーブとなる(つまりスレーブとして動作する)。その後、ボイスチャットやゲームプレイなどのデータを送受信するためには、通信装置2がマスタとなり、電子機器200がスレーブとなって、電子機器200の通信が通信装置2により制御される必要がある。そのため図4のS20に示すように、ロール管理部106は、マスタとスレーブの役割(ロール)を切り替えるためのロール切替指示を、第1通信部42を介して電子機器200に送信し、電子機器200をスレーブ、第1通信部42をマスタに切り替える。
図4では、ウェイクオンBTの状態からのシーケンスを示しているため、S18の時点で、1台の電子機器200のみが第1通信部42と無線接続を確立しているが、通信装置2の起動後は、たとえば図7に示したように、電子機器200bが第1通信部42と既にアクティブモードで接続している状態で、電子機器200cが新たに接続してくることがある。
図13は、第1通信部42に電子機器200bがページングするときのタイミングチャートを示す。このとき第1通信部42は、外部機器と接続していない。第1通信部42は、外部機器と接続していない場合には、待ち受け時間P1が比較的(すなわち相対的に)長い第1モードで接続要求を待ち受ける。
電子機器200bが接続要求(ページング)を第1通信部42に送信する。第1通信部42は、時間t1で、電子機器200bとの間の接続を確立する。時間t1で、第1通信部42と電子機器200bは、図4のシーケンスにおけるS18の状態にあり、接続確立時点で、第1通信部42はスレーブ、電子機器200bはマスタとなり、ロール管理部106は、それぞれの役割(ロール)を認識する。
ロール管理部106は、電子機器200bが接続すると、第1通信部42における電子機器200b以外の他の外部機器との通信状況に応じて、第1通信部42がスレーブとして動作する期間を制御する。図13に示す時間t1の時点では、第1通信部42は他の外部機器と接続していない。この場合、ロール管理部106は、以下に示すように、時間t1から、時間t3でロール切替処理が実施されるまでの間、第1通信部42をスレーブとして動作させる。
時間t1後、第1通信部42と電子機器200bは、クロック情報および通信パラメータなど、データ通信に必要な情報を送受信し、それらの手続が終了して、そのような情報が送信され、または伝達されると、時間t2で、ロール管理部106が、マスタとスレーブの役割(ロール)を切り替えるためのロール切替指示を、第1通信部42を介して電子機器200bに送信する。第1通信部42における接続処理部50、および電子機器200bにおける指示処理部214は、ロール切替指示が送信された所定時間後の時間t3に、同期してロールの切替を実行する。これにより電子機器200は、スレーブとして動作し、第1通信部42は、マスタとして動作する。このように、電子機器200b以外の他の外部機器が接続されていなければ、ロール管理部106は、ロール切替指示によりロール切替処理が実施されるまでの間、第1通信部42をスレーブとして動作させてよい。
したがって概略的には、通信部が任意の外部機器と接続すると、接続した任意の外部機器とは異なる外部機器と通信部との通信状況に応じて、制御部が、通信部がスレーブとして動作する期間を制御する。
図14は、第1通信部42に電子機器200cがページングするときのタイミングチャートを示す。このとき第1通信部42は、既に電子機器200bとアクティブモードで通信している状態にある。第1通信部42は、外部機器と接続中である場合には、待ち受け時間P2が相対的に短い第2モードで接続要求を待ち受ける。これにより第1通信部42は、電子機器200bとの間でボイスデータ等の通信を維持しつつ、新しい電子機器200cからの接続要求を待ち受けられるようにする。
そのため待ち受け時間P2は、第1通信部42と電子機器200bとの間の通信を阻害しない時間に設定されることが好ましい。たとえば第1通信部42と電子機器200bとの間の音声データの通信周期が10msである場合、待ち受け時間P2は、10msよりも短い時間に設定されることが好ましい。これにより音声データを送受信する時間帯の合間に、第1通信部42は、新しい電子機器200cからの接続要求を待ち受けられる。
電子機器200cが接続要求(ページング)を第1通信部42に送信する。第1通信部42は、時間t11で、電子機器200cとの間の接続を確立する。このとき第1通信部42はスレーブ、電子機器200cはマスタとなり、ロール管理部106は、それぞれの役割(ロール)を認識する。ロール管理部106は、電子機器200cが接続すると、第1通信部42における電子機器200c以外の他の外部機器との通信状況に応じて、第1通信部42がスレーブとして動作する期間を制御する。図14に示す状態では、第1通信部42は電子機器200bと接続済みであり、ロール管理部106は、以下のように、第1通信部42のスレーブとして動作する期間を制御する。
図13に示す状況と異なり、時間t11では、第1通信部42が電子機器200bとの間で周期的にデータ通信しており、ロール切替指示にもとづいてロール切替を行う時間t13までの間、第1通信部42がスレーブであり続けると、電子機器200bとの間で通信できない。このことは、電子機器200bのユーザがボイスチャットしている場合、時間t11から時間t13までの間、ボイスチャットが一時中断することを意味する。
そこでロール管理部106は、第1通信部42が電子機器200cと接続確立したときに、既に他の電子機器200bと接続済みであれば、第1通信部42がスレーブとして動作する期間と、マスタとして動作する期間とを交互に切り替える。第1通信部42がマスタとして動作する期間は、第1通信部42と電子機器200bとの間のデータ通信が可能な期間であり、第1通信部42がスレーブとして動作する期間は、第1通信部42と電子機器200cとの間でデータ通信に必要な情報の送受信が可能な期間である。
図15は、時間t11から時間t13までの間の第1通信部42の状態を示す。ここで「S」は第1通信部42がスレーブである期間、「M」は第1通信部42がマスタである期間を表現する。ロール管理部106は、スレーブ期間とマスタ期間を周期的に交互に設定し、第1通信部42が、スレーブ期間において電子機器200cと通信に必要な情報を送受信し、マスタ期間において電子機器200bとデータ通信できるようにする。
スレーブとして動作する期間は、接続済みの電子機器200bとの間の通信周期にもとづいて設定される。たとえば第1通信部42と電子機器200bとの間の音声データの通信周期が10msである場合、スレーブとして動作する期間は、10msよりも短い時間に設定されることが好ましい。これにより音声データを送受信する時間帯の合間に、第1通信部42は、新しい電子機器200cとの間で情報を送受信できる。
BTプロトコルにおいて、マスタとなるBT通信機器は、偶数スロットで送信を行い、スレーブとなるBT通信機器は、奇数スロットで送信を行う。スロット周期は625μsであり、マスタのBTクロックによりマスタによる送信動作、スレーブによる送信動作が規定される。
図16は、BTクロックを示す。BT通信機器に組み込まれるクロックカウンタは、クロックレートを3.4KHzとする28ビットのBTクロックを生成する。ここでスロットは、ビットC1により規定され、マスタは偶数スロット(C1=0)で送信動作を行い、奇数スロット(C1=1)で受信動作を行う。
実施例の通信システム1では、通信装置2が2つの第1通信部42および第2通信部44を備える。たとえば第1通信部42による送信動作中に、第2通信部44が受信動作を行うと、第1通信部42の送信動作は、第2通信部44の受信動作に対する干渉となる。そのため第1通信部42および第2通信部44の間の送受信の衝突を回避することが好ましい。
図17は、第1通信部42および第2通信部44における送受信のタイミングチャートを示す。第1通信部42において、通信制御部52は、クロックカウンタ56の所定ビット(C1)の値に応じて送信動作と受信動作を切り替える。クロックカウンタ56は、複数の連続するビット(CN,・・・C1,C0)を有する第1通信部42のクロック信号を生成する。第2通信部44においても同じく、通信制御部62は、クロックカウンタ64の所定ビット(C1)の値に応じて送信動作と受信動作を切り替える。クロックカウンタ64は、複数の連続するビット(CN,・・・C1,C0)を有する第2通信部44のクロック信号を生成する。したがってクロックカウンタ56の所定ビット(C1)の値と、クロックカウンタ64の所定ビット(C1)の値を同期させることで、図17に示すように、第1通信部42および第2通信部44の送信動作、受信動作を同期させることが可能となる。クロックカウンタ56の所定ビット(C1)とクロックカウンタ64の所定ビット(C1)は、ともにLSBから2番目の同じ位置のビットである。
実施例の第1通信部42および第2通信部44は、同じチップ上に形成されており、クロックカウンタ56およびクロックカウンタ64は、共通のシステムクロック発振器のクロック信号にもとづいて、BTクロックを生成してよい。
クロックカウンタ56は、サイドバンド信号であるカウンタリセット信号をクロックカウンタ64に供給する。クロックカウンタ56は、カウンタリセット信号を、下位2ビット(C1,C0)が0の場合に出力する。クロックカウンタ64は、カウンタリセット信号を受けると、下位2ビット(C1,C0)を0に設定する。これによりクロックカウンタ56とクロックカウンタ64は、スロットを規定するビットC1の値を同期させることが可能となり、第1通信部42の通信制御部52および第2通信部44の通信制御部62は、送受信動作を同期できる。
なお通信制御部52および通信制御部62は、送受信動作を同期しつつ、異なる周波数で通信することが好ましい。周波数ホッピングパターンは、マスタのBTデバイスアドレスを用いて決定されるため、通信制御部52は、第1通信部42のBTデバイスアドレスをそのまま用いて周波数ホッピングパターンを決定し、通信制御部62は、第1通信部42のBTデバイスアドレスを所定値オフセットして周波数ホッピングパターンを決定してもよい。これにより、通信制御部52と通信制御部62が使用する周波数を、確実に異ならせることができる。
なお実施例の第1通信部42および第2通信部44は、それぞれクロックカウンタ56およびクロックカウンタ64を有しているが、別の例では、同一チップ上に配設された第1通信部42および第2通信部44に共通のクロックカウンタが設けられて、共通のクロックカウンタによるBTクロックが、第1通信部42および第2通信部44に供給されてもよい。またクロックカウンタ56が、システムクロック発振器のクロック信号からBTクロックを生成し、生成したBTクロックとカウンタリセット信号をクロックカウンタ64に供給して、スロットを規定するビットC1の値を同期させてもよい。なお実施例では、第1通信部42および第2通信部44が同一チップ上に配設されていることを前提としているが、別チップ上に配設されている場合であっても、クロックカウンタ56からクロックカウンタ64にカウンタリセット信号を供給することで、スロットを規定するビットC1の値を同期させられる。
以上のように、実施例においては、クロックカウンタ56およびクロックカウンタ64のビット同期が、下位の2ビット(C1,C0)に対してのみ実施される。各ビットは、連続するビットによって規定されるクロックサイクル内のいわゆるスロット(時間周期)を定義できる。上記したように、マスタは偶数スロット(C1=0)で送信動作を行い、奇数スロット(C1=1)で受信動作を行う。これを実現するために、ビットC1のみが同期されてよいが、実施例では、C1およびC0がカウンタリセットにより0に設定される。ビットC2およびそれよりも上位のビットは、カウンタリセットの影響を受けない。そのため、「所定ビット」は、C1であってよく、またはC0およびC1を指してもよい。
以上、本発明を実施例をもとに説明した。実施例は例示であり、それらの各構成要素や各処理プロセスの組合せにいろいろな変形例が可能なこと、またそうした変形例も本発明の範囲にあることは当業者に理解されるところである。
図4に示すシーケンスにおいて、電子機器200は、第1通信部42から、第2通信部44の機器ID情報を通知された状態でページスキャンモードで動作することで、通知された機器ID情報をもつ第2通信部44からの接続要求に安全に応答できる。電子機器200は、第2通信部44の機器ID情報を通知されなくても、第2通信部44からの接続要求に応答してもよい。なお電子機器200は、第2通信部44の機器ID情報を通知されると、第2通信部44の機器ID情報を含めた接続要求を第2通信部44に送信して、接続を確立することも可能である。
上記した技術の少なくともいくつかの方法例を、図18~図24として提供する図を参照して説明する。
図18は、複数の同種の通信部を有する通信装置との無線接続を実現するための無線接続方法のフローチャートを示す。この方法は、
通信部とのペアリング処理を実施したことで取得した通信部の1つの識別情報を保持するステップ(S1800)と、
1つの通信部の識別情報を含めた接続要求を送信するステップ(S1810)と、を含む。
図19は、第1通信部と、第1通信部と同種の第2通信部とを備える通信装置の動作方法のフローチャートを示す。通信装置は、外部機器と無線接続可能であって、この方法は、
第1通信部が、外部機器から接続要求を待ち受けるステップ(S1900)と、
接続要求の受信に応じて、第2通信部が、第1通信部が受信した接続要求を送信した外部機器と無線接続するステップ(S1910)と、を含む。
図20は、第1通信部と、第1通信部と同種の第2通信部とを備える通信装置において、外部機器の接続先を決定する接続先決定方法のフローチャートを示す。この方法は、
第1通信部における外部機器との通信状況、および第2通信部における外部機器との別の通信状況を取得するステップ(S2000)と、
取得したそれそれの通信状況にもとづいて、外部機器の接続先を、第1通信部または第2通信部に決定するステップ(S2010)と、を含む。
図21は、第1通信部と、第1通信部と同種の第2通信部とを備える通信装置を外部機器に接続する無線接続方法のフローチャートを示す。第1通信部または第2通信部は、
外部機器と無線接続するステップ(S2100)と、
外部機器に、接続要求を待ち受ける状態になることを外部機器に指示する待ち受け指示信号を送信するステップ(S2110)と、を含む。
図22は、通信装置と無線接続する無線接続方法のフローチャートを示す。この方法は、
通信装置に接続要求を送信するステップ(S2200)と、
通信装置と接続した後、接続要求を待ち受ける状態になることの指示を受け付けるステップ(S2210)と、を含む。
図23は、マスタまたはスレーブのいずれかとして動作する通信部を備える通信装置において、通信部の状態を制御する方法のフローチャートである。この方法は、
通信部と外部機器との接続を確立するステップ(S2300)と、
通信部における前記外部機器以外の他の外部機器との通信状況に応じて、通信部がスレーブとして動作する期間を制御するステップ(S2310)と、を含む。
図24は、第1通信部と、第1通信部と同種の第2通信部とを備える通信装置の動作方法のフローチャートを示す。この方法は、
第1通信部および第2通信部のそれぞれが、複数の連続ビットを含む各クロック信号の所定ビットの値に応じて送信動作と受信動作を切り替えるステップ(S2400)と、
第1通信部のクロック信号の所定ビットの値、および第2通信部のクロック信号の所定ビットの値を同期させるステップ(S2410)と、を含む。
図25は、上記した通信装置または電子機器の1つ又は複数の構成要素を実現するために用いることのできるコンピュータ又はコンピュータプロセッサを示す。たとえば、これまで説明した制御部34、接続処理部50、通信制御部52、保持部54、クロックカウンタ56、接続処理部60、通信制御部62、クロックカウンタ64、接続管理部102、割当処理部104、ロール管理部106の1つ又は複数により提供される制御もしくは他の機能が、コンピュータによりプログラム指令を実行することによって実現されてよい。同様に、接続処理部210、接続要求部212、指示処理部214、要求処理部216、通信制御部220、保持部222、クロックカウンタ224の1つ又は複数により提供される制御もしくは他の機能が、コンピュータによりプログラム指令を実行することによって実現されてよい。コンピュータは、中央処理装置(CPU)2500、ランダムアクセスメモリ(RAM)2510、リードオンリメモリ、ハードディスク、光ディスク、フラッシュメモリ等のように、それによりプログラム指令が供給される非一過性のコンピュータ読み取り可能な記録媒体(NTMRSM:non-transitory machine-readable storage medium)2520と、入出力(I/O)回路2530を備え、これらのコンポーネントは、バス構成2540により相互に接続されている。
以下、変形例を示す。
図26は、変形例における電子機器200と通信装置2とが無線接続するシーケンスを示す。図4および図26において同じ番号を付した手順は、同じまたは同様の手順であることを意味する。第1通信部42はウェイクオンBTの状態において、外部の電子機器200からの接続要求を待機するページスキャンモードで動作する(S10)。第1通信部42の接続処理部50は、接続可能な機器IDリストに含まれる電子機器200からの接続要求(ページング)を待ち受ける。
電子機器200において、接続要求部212が、保持部222から第1通信部42の機器ID情報を読み出し、第1通信部42の機器ID情報を含めた接続要求を、第1通信部42に送信する(S12)。第1通信部42において接続処理部50は、機器IDリストに含まれる機器IDを有する電子機器200から接続要求を受信すると、ウェイクオン用パラメータにしたがって、WAKE信号をシステムコントローラ20に出力する(S14)。システムコントローラ20はWAKE信号を受けると、ホストブロック30およびUSBモジュール46を起動して、USBモジュール32とUSBモジュール46の間のUSB接続をアクティブにする。
制御部34において、接続管理部102はUSB接続を介して、ファームウェアを第2通信部44にダウンロードし、第2通信部44を初期化する。これにより第2通信部44が、外部の電子機器200と無線接続可能な状態となる(S16)。接続管理部102は、電子機器200との間で認証処理、暗号化処理を実行し、第1通信部42は、電子機器200と、データを伝送可能なデータ伝送モードであるアクティブモードで接続する(S18)。アクティブモードは、通信ブロック40と電子機器200とが連続した複数のスロットで互いにデータを送受信する接続モードである。通信ブロック40と電子機器200との間で音声データ等のデータ通信を行う場合、通信ブロック40と電子機器200とが、アクティブモードで接続する必要がある。
アクティブモードで接続した時点で、ページングデバイスである電子機器200がマスタとなり、ページドデバイスである第1通信部42がスレーブとなる。ロール管理部106は、マスタとスレーブの役割(ロール)を切り替えるためのロール切替指示を、第1通信部42を介して電子機器200に送信する(S20)。電子機器200において、指示処理部214は、ロール切替指示を受け付ける。第1通信部42における接続処理部50、および指示処理部214は、ロール切替指示が送信された所定時間後に、同期して第1通信部42および電子機器200のロールの切替を実行する。これにより電子機器200は、スレーブとしての動作を開始し、通信装置2の第1通信部42は、マスタとしての動作を開始する。それから第1通信部42は、電子機器200に、接続要求を待ち受ける状態になることを指示する(S22)。
接続管理部102は、第1通信部42における外部機器との通信状況と、第2通信部44における外部機器との通信状況を取得する。S18の接続確立時点では、第1通信部42は1台の電子機器200と接続し、第2通信部44は電子機器200と接続していない。
図27は、1台目の電子機器200aが第1通信部42にアクティブモードで接続している状態を示す。接続管理部102は、通信状況として、第1通信部42および第2通信部44のそれぞれがアクティブモードで接続する外部機器の台数を取得してよい。
後で詳細に説明するが、変形例において電子機器200は、第1通信部42または第2通信部44の一方と、データを伝送可能なデータ伝送モードで接続しつつ、第1通信部42または第2通信部44の他方と、データを伝送しないデータ非伝送モードで接続する。
変形例においてデータ伝送モードはデータ伝送期間を確保したアクティブモードである。データ伝送モードにおいて、通信装置2が組み込まれる情報処理装置で実行される処理に使用されるデータが送信および/または受信される。たとえば情報処理装置がゲーム装置である場合、データ伝送モードにおいて、ゲームの実行に使用されるデータやボイスチャット用の音声データが送受信されてよい。
電子機器200がヘッドセットやゲームコントローラなどの周辺機器である場合、データ伝送モードで、電子機器200は通信部に、ユーザが入力したデータを伝送し、通信部は電子機器200に、ユーザに対する出力データを伝送する。ユーザが入力したデータは、たとえばユーザが発した音声データや、ゲーム(アプリケーション)の実行に必要なデータを含む。ゲームの実行に必要なデータは、コントローラの操作データ、コントローラのモーションデータを含んでよい。ユーザに対する出力データは、ゲームの音声データ、別のユーザが発した音声データを含んでよい。
データ非伝送モードは、データを伝送不能な接続モードであってよいが、データを伝送可能であるがデータを伝送しない接続モードであってもよい。データ非伝送モードにおいて、電子機器200と通信部との間では、ユーザが入力したデータおよびユーザに対する出力データは伝送されない。本変形例では電子機器200に対する制御データや、電子機器200の状態を示す状態データもデータ伝送モードにおいて伝送されるが、これらのデータは例外的にデータ非伝送モードで伝送されてもよい。
このように変形例では、電子機器200が、第1通信部42または第2通信部44の一方とデータ通信可能に接続し、第1通信部42または第2通信部44の他方とデータ通信しないように接続する。なお、たとえば通信ブロック40に3つ以上の通信部が設けられている場合、電子機器200は、いずれか一つの通信部とデータ伝送モードで接続しつつ、それ以外の通信部とデータ非伝送モードで接続する。
データ非伝送モードでは、通信周期内で非常に短い期間が同期維持用の通信可能期間として設定され、それ以外が非通信期間として設定される。たとえばデータ非伝送モードの通信周期における通信可能期間は、非通信期間に対して1/10以下であってよい。本変形例でデータ非伝送モードは、所定の時間間隔(N個のスロット)内で所定数のスロット(たとえば2個のスロット)のみを使用して同期維持用のパケットを送受信するスニフモードであってよい。スニフモードにおいて、所定の時間間隔を定めるN個のスロットはスニフ周期と呼ばれ、N=300であってよい。スニフモードは、本来、省電力で動作しつつ同期を維持することを目的として利用される省電力接続モードである。データ非伝送モードはスニフモード以外の他の形式の接続モードであってよく、データ伝送を行わず、しかしながら通信の同期を維持できるモードであればよい。
通信部とスニフモードで接続する電子機器200は、連続する300スロットのスニフ周期内で設定された2個のスニフスロットにおいてのみ、当該通信部との間でパケットを送受信する。電子機器200は、2個のスニフスロット以外の298個のスロットではスニフモードで接続している当該通信部に対する処理を行わない。スニフモードでは、マスタが所定のpollパケットを送信し、当該パケットを受信したスレーブがnullパケットを返信して、スニフ周期における同期維持用のパケット通信が終了される。スニフモードにおいて接続のための通信パラメータは維持されているため、接続モードをスニフモードからアクティブモードに変更する際に、新たなページング処理や認証処理は必要とされない。
割当処理部104は、接続管理部102が取得した第1通信部42および第2通信部44のそれぞれの通信状況にもとづいて、外部機器のデータ伝送モード(アクティブモード)による接続先を、第1通信部42または第2通信部44に決定する割当処理を実行する。割当処理部104は、第1通信部42における外部機器との通信負荷が第2通信部44における外部機器との通信負荷以下となるように、外部機器のアクティブモードによる接続先を、第1通信部42または第2通信部44に決定することが好ましい。つまり割当処理部104は、外部の電子機器200からの接続要求を待機する機能を有する第1通信部42の通信負荷を、当該機能を有しない第2通信部44の通信負荷以下にすることが好ましい。
なお割当処理部104は、第1通信部42の通信負荷を第2通信部44の通信負荷以下としつつ、第2通信部44の通信負荷が第1通信部42の通信負荷よりも過度に大きくならないように割当処理を実行することが好ましい。たとえば割当処理部104は、第1通信部42の通信負荷が第2通信部44の通信負荷以下となる前提のもとで、第2通信部44の通信負荷と第1通信部42の通信負荷との差分が所定の閾値を超えないように割当処理を実行することが好ましい。
変形例で第1通信部42および第2通信部44は電子機器200と、アクティブモードまたはスニフモードのいずれか一方のモードで接続するが、スニフモードで接続しているときの通信負荷は、アクティブモードで接続しているときの通信負荷に比べて著しく低い。そこで割当処理部104は、スニフモードによる通信負荷を無視し、第1通信部42がアクティブモードで接続する外部機器の台数と、第2通信部44がアクティブモードで接続する外部機器の台数とにもとづいて、通信負荷の高低を判断して、外部機器のアクティブモードによる接続先を決定してよい。
図27に示すように、通信装置2と接続する電子機器200が1台しかないときには、割当処理部104は、当該電子機器200のアクティブモードによる接続先を第2通信部44に決定して、第1通信部42の通信負荷を、第2通信部44の通信負荷よりも軽くすることが好ましい。
このように割当処理部104が割当先を判断する基準となる通信負荷は、各通信部がアクティブモードで接続する外部機器の台数であってよい。そのため割当処理部104は、第1通信部42がアクティブモードで接続する外部機器の台数が第2通信部44がアクティブモードで接続する外部機器の台数以下となるように、外部機器のアクティブモードによる接続先を、第1通信部42または第2通信部44のいずれかに決定してよい。
なお基準となる通信負荷は、各通信部における外部機器との間の通信データ量であってもよい。電子機器200との間において、ボイスチャットにおける音声データのデータ量は大きいが、ゲームコントローラの操作データのデータ量は小さい。そのため接続管理部102は、各通信部と電子機器200との間の通信データ量を監視して、割当処理部104は、第1通信部42の通信負荷が第2通信部44の通信負荷よりも小さくなるように、電子機器200の接続先を決定してよい。基準となる通信負荷は、各通信部における通信エラー率であってもよく、上記いずれかを組み合わせて求めてもよい。
また基準となる通信負荷は、電子機器200の機能や、当該機能のオン/オフの状態などをもとに予測されてもよい。たとえば電子機器200にマイクが付加されていなければ、当該電子機器200の通信負荷は低いことが予測され、一方でマイクが付加されていれば、当該電子機器200の通信負荷は高い又は高くなることが予測される。接続管理部102は、電子機器200における機能の有無や、当該機能のオン/オフの状態を割当処理部104に通知し、割当処理部104が、通信負荷を予測することで、電子機器200の接続先を決定してよい。
図27に示す状態では、1台の電子機器200aのみが、通信装置2に既に接続している。そのため割当処理部104は、電子機器200aのアクティブモードによる接続先を、第1通信部42から第2通信部44に変更することを決定する。割当処理部104は、接続済みの電子機器を第2通信部44に接続する処理を開始する。具体的に割当処理部104は、電子機器200aをスキャンモード(たとえばページスキャンモード)で動作させ、第2通信部44から電子機器200aに接続要求を送信させる。そのためにS22では、第1通信部42が、電子機器200aに、第2通信部44による接続要求を待ち受ける状態になることを指示する信号(待ち受け指示信号)を送信している。
割当処理部104は、第1通信部42および第2通信部44に対して、電子機器200aのアクティブモードによる接続先を、第1通信部42から第2通信部44に切り替えることを通知する。このとき割当処理部104は、電子機器200aの機器ID情報(BTデバイスアドレス)も、第1通信部42および第2通信部44のそれぞれに通知する。これにより第1通信部42および第2通信部44は、第1通信部42にアクティブモードで接続中の電子機器200aを、第2通信部44にアクティブモードで接続させ、第1通信部42にスニフモードで接続させるように動作するべきことを、それぞれ認識する。
第1通信部42において、接続処理部50は、電子機器200aに待ち受け指示信号を送信する(S22)。待ち受け指示信号は、接続要求を送信する機器(たとえば、通信部)の識別情報、この例では第2通信部44の機器ID情報を含んでよい。電子機器200aにおいて、指示処理部214は待ち受け指示信号を受信し、第2通信部44による接続要求を待ち受ける状態になることの指示を受け付ける。これにより指示処理部214は第1通信部42とのアクティブモードによる接続を維持しつつ、要求処理部216が、第2通信部44による接続要求を待ち受けるページスキャンモードで動作する(S24)。
このとき指示処理部214は、第1通信部42との通信期間(第1期間)と、第2通信部44による接続要求を待ち受けるスキャン期間(第2期間)とを交互に切り替えるように動作する。接続処理部50は、第1期間と第2期間とを交互に切り替えることを定めたタイミング情報を待ち受け指示信号に含ませておき、指示処理部214は、待ち受け指示信号に含まれるタイミング情報にしたがって、第1通信部42との通信期間と、第2通信部44による接続要求を待ち受けるスキャン期間とを交互に周期的に切り替えてよい。
なお接続処理部50は、電子機器200と通信装置2とのアクティブモードによる接続状況に応じて、タイミング情報を設定することが好ましい。図26におけるS22の時点で、電子機器200aは、通信装置2との間で新規の接続処理を行っている段階にあり、第1通信部42との間で音声データ等のデータ通信はまだ開始されていない。そこで接続処理部50は、電子機器200aが速やかに第2通信部44と無線接続できるようにタイミング情報TI1を設定する。たとえば接続処理部50は、第2期間を第1期間よりも長くしたタイミング情報TI1を設定してよい。
スキャン期間(第2期間)に実施されるページスキャンモードでは、要求処理部216が、待ち受け指示信号に含まれる機器ID情報をもつ第2通信部44による接続要求を待ち受ける。第2通信部44において、接続処理部60は、電子機器200aの機器ID情報を含めた接続要求を、電子機器200aに送信する(S26)。要求処理部216が、接続要求を受け付けると、要求処理部216と接続処理部60との間で、認証処理、暗号化処理を含む接続処理が実施される。これにより第2通信部44は、電子機器200とアクティブモードで接続する(S28)。
図28は、1台目の電子機器200aが第1通信部42および第2通信部44にアクティブモードで接続している状態を示す。接続管理部102は、第2通信部44と電子機器200aとが接続したことを検出すると、第1通信部42に対して、電子機器200aとの接続モードを、スニフモードに変更するように指示する。この指示を受けて接続処理部50は、電子機器200aに対して、接続モードの変更指示を送信する(S40)。なおモード変更指示は、電子機器200から第1通信部42に送信されてもよい。その後、第1通信部42と電子機器200aの間の接続モードは、スニフモードに変更される(S42)。それから第1通信部42は、外部の電子機器200からの接続要求を待機するページスキャンモードで動作し(S34)、接続可能な機器IDリストに含まれる電子機器200からの接続要求(ページング)を待ち受ける。
以上、1台目の電子機器200aが通信装置2と接続するときの手順を説明した。以下においては、2台目以降の電子機器200が通信装置2と接続するときの手順を説明する。
図29は、図26に示す無線接続シーケンスにしたがって、1台目の電子機器200aが第2通信部44にアクティブモードで無線接続し、第1通信部42にスニフモードで無線接続している状態を示す。
図30は、2台目の電子機器200bが第1通信部42にアクティブモードで無線接続している状態を示す。電子機器200bは、第1通信部42に接続要求を送信して、第1通信部42とアクティブモードで接続する。
接続管理部102は、第1通信部42における外部機器との通信状況と、第2通信部44における外部機器との通信状況を取得する。図30に示す接続状態では、第1通信部42は1台の電子機器200bとアクティブモードで接続し、第2通信部44は1台の電子機器200aとアクティブモードで接続している。接続管理部102は、通信状況として、第1通信部42および第2通信部44のそれぞれがアクティブモードで接続する電子機器200の台数を取得する。割当処理部104は、第1通信部42および第2通信部44のそれぞれがアクティブモードで接続する電子機器200の台数にもとづいて、電子機器200bがアクティブモードで接続する接続先を、第1通信部42または第2通信部44のいずれかに決定する処理を実行する。
割当処理部104は、第1通信部42における外部機器との通信負荷が第2通信部44における外部機器との通信負荷以下となるように、新たに接続を確立した電子機器200bのアクティブモードによる接続先を、第1通信部42または第2通信部44に決定する。2台目の電子機器200bが第1通信部42とアクティブモードで接続した状態(図30に示す状態)では、第1通信部42は1台の電子機器200bとアクティブモードで接続し、第2通信部44は1台の電子機器200aとアクティブモードで接続しており、第1通信部42および第2通信部44の通信負荷は等しい。そこで割当処理部104は、電子機器200bのアクティブモードによる接続先が第1通信部42でよいことを決定する。
このように2台目の電子機器200bは、第1通信部42にアクティブモードで無線接続し、第2通信部44にスニフモードで無線接続することを決定される。電子機器200bは、第2通信部44にスニフモードで接続する前に、図26に示すS24、S26、S28の手順により、第2通信部44とアクティブモードで接続する。
図31は、2台目の電子機器200bが第1通信部42および第2通信部44にアクティブモードで接続した状態を示す。接続管理部102は、第2通信部44と電子機器200aとがアクティブモードで接続したことを検出すると、第2通信部44に対して、電子機器200bとの接続モードを、スニフモードに変更するように指示する。この指示を受けて接続処理部60は、電子機器200bに対して、接続モードの変更指示を送信する。なおモード変更指示は、電子機器200から第2通信部44に送信されてもよい。その後、第2通信部44と電子機器200bの間の接続モードは、スニフモードに変更される。
図32は、第2通信部44と電子機器200bとの間の接続モードがスニフモードに変更された状態を示す。このように変形例では、制御部34が、第1通信部42または第2通信部44の一方と電子機器200を、データを伝送可能なアクティブモードで接続し、第1通信部42または第2通信部44の他方と電子機器200を、データを伝送しないスニフモードで接続する。つまり電子機器200は、データ伝送可能なアクティブモードで第1通信部42と接続するとともに、通信可能期間がアクティブモードよりも短く且つデータを伝送しないスニフモードで第2通信部44と接続する。たとえば接続環境の変化により、割当処理部104が、電子機器200のアクティブモードによる接続先を変更する場合に、電子機器200が変更先となる通信部との間で既にスニフモードで接続した状態にあることで、新たなページング処理や認証処理を行うことなく、アクティブモードによる接続先の変更処理が瞬時に実行されるようになる。
図33は、3台目の電子機器200cが第1通信部42に無線接続している状態を示す。電子機器200cは、第1通信部42に接続要求を送信して、第1通信部42とアクティブモードで接続する。
接続管理部102は、第1通信部42がアクティブモードで接続する外部機器の台数と、第2通信部44がアクティブモードで接続する外部機器の台数を取得する。図33に示す接続状態では、第1通信部42は2台の電子機器200b、200cとアクティブモードで接続し、第2通信部44は1台の電子機器200aとアクティブモードで接続している。割当処理部104は、第1通信部42がアクティブモードで接続する外部機器の台数が第2通信部44がアクティブモードで接続する外部機器の台数以下となるように、新たに接続を確立した電子機器200cのアクティブモードによる接続先を、第1通信部42または第2通信部44のいずれかに決定する。3台目の電子機器200cが第1通信部42と接続を確立した状態(図33に示す状態)では、第1通信部42がアクティブモードで接続する外部機器の台数は、第2通信部44がアクティブモードで接続する外部機器の台数よりも多い。そこで割当処理部104は、電子機器200cのアクティブモードによる接続先が第2通信部44であることを決定し、したがって電子機器200cのアクティブモードによる接続先を、第1通信部42から第2通信部44に変更することを決定する。
図34は、電子機器200cが第1通信部42と第2通信部44にアクティブモードで同時接続している状態を示す。図33に示す接続状態から、第1通信部42は、電子機器200cに、待ち受け指示信号を送信し、電子機器200cは、第1通信部42とのアクティブモードによる接続を維持しつつ、第2通信部44による接続要求を待ち受けるページスキャンモードで動作する。電子機器200cは、第2通信部44による接続要求を受信して、第2通信部44とアクティブモードで接続する。図34は、この状態を示している。
図35は、電子機器200cと第1通信部42との接続をスニフモードに変更した状態を示す。接続管理部102は、第1通信部42に対して、電子機器200cとの接続モードを、スニフモードに変更するように指示する。この指示を受けて接続処理部50は、電子機器200cに対して、接続モードの変更指示を送信する。その後、第1通信部42と電子機器200cの間の接続モードは、スニフモードに変更される。
図36は、4台目の電子機器200dが通信ブロック40と接続している状態を示す。電子機器200dは、第1通信部42にアクティブモードで無線接続し、第2通信部44にスニフモードで無線接続している。
図37は、3台目の電子機器200cが通信ブロック40から切断された状態を示す。たとえば電子機器200cのユーザがゲームプレイを終了して、装置本体3からログアウトすると、電子機器200cと通信ブロック40との接続が切断される。
電子機器200cと通信装置2との接続が切断されると、接続管理部102は、第1通信部42がアクティブモードで接続する外部機器の台数と、第2通信部44がアクティブモードで接続する外部機器の台数を取得する。図37に示す接続状態では、第1通信部42は2台の電子機器200b、200dとアクティブモードで接続し、第2通信部44は1台の電子機器200aとアクティブモードで接続している。割当処理部104は、接続していた電子機器200cとの無線接続が終了したことを契機に、割当処理を実行する。具体的に割当処理部104は、第1通信部42がアクティブモードで接続する外部機器の台数が第2通信部44がアクティブモードで接続する外部機器の台数以下となるように、電子機器200dのアクティブモードによる接続先を変更する。図37に示す状態では、第1通信部42がアクティブモードで接続する外部機器の台数が第2通信部44がアクティブモードで接続する外部機器の台数よりも多いため、割当処理部104は、電子機器200dのアクティブモードによる接続先を、第1通信部42から第2通信部44に変更することを決定する。
図38は、電子機器200dが第2通信部44にアクティブモードで接続し、第1通信部42にスニフモードで接続した状態を示す。変形例では、アクティブモードによる接続先の切替処理に際して、実施例で必要としていたページング処理や認証処理を不要とする。これにより電子機器200と通信装置2との間のデータ通信を好適に維持できる。
このとき制御部34は、電子機器200dと第2通信部44との間のスニフモードによる接続をアクティブモードによる接続に変更した後に、電子機器200dと第1通信部42との間のアクティブモードによる接続を、スニフモードによる接続に変更する。このような手順をとることで、電子機器200dと通信装置2との間のデータ通信が途切れることなく、好適に維持できるようになる。
なお変形例において制御部34は、第1通信部42または第2通信部44のいずれかと電子機器200との間の接続が切断されると、第1通信部42または第2通信部44の他方と当該電子機器200との間の接続を切断してよい。接続管理部102は、電子機器200との間の接続の切断を、たとえば切断時間が所定時間を超えたときに判定する。このように、一方の接続切断が判定されたときに、他方の接続も切断することで、電子機器200との接続が容易に管理できるようになる。
明細書では、明確にする目的で様々な技術を個別に説明したが、実施例は、1つ又は複数の技術を利用してよく、説明した1つ又は複数の技術は様々な形態で組み合わせることが可能である。