以下、図面を参照しながら、本発明の実施の形態について詳細に説明する。ただし、以下で説明する態様は一例であり、説明される機能を実現するように構成された様々な形態の装置、システム、方法、プログラム、媒体等が、本発明の権利範囲に含まれる。
(システム構成)
図1に、本実施形態に係る無線通信システムの構成例を示す。本無線通信システムは、例えば、携帯型通信装置、印刷装置(MFP:Multi−Function Peripheral)、及びアクセスポイント(AP)を含んで構成される。これらの装置は、いずれも通信機能を有する通信装置である。ただし、これに限られず、これ以外の装置が、図示される各装置に加えて又は各装置に代えて、含まれてもよい。
携帯型通信装置200は、例えば持ち運び可能で、無線LAN(WLAN)による通信機能を有する通信装置である。なお、ここでは、無線LANによる通信機能によって、例えばIEEE802.11規格シリーズに準拠した無線LANシステムにおける、データ(パケット)通信が行われるものとする。携帯型通信装置200は、無線LANの通信機能を用いて、Wi−Fi Direct(WFD)をベースにした通信、ソフトウェアアクセスポイントモード、インフラストラクチャモードによる通信などを行うことができる。なお、ソフトウェアアクセスポイントモードのことはソフトウェアAPモードとも呼び、インフラストラクチャモードのことはインフラモードとも呼ぶ。
なお、携帯型通信装置200は、IEEE802.11規格シリーズに準拠した無線LAN以外による無線通信機能を有していてもよい。例えば、携帯型通信装置200は、IEEE802.11規格シリーズ以外の規格に従う無線LANや、無線LAN以外の通信機能を有しうる。ただし、携帯型通信装置200は、他の装置を介して相手装置と無線通信を行う第1のモードと、他の装置を介さずに相手装置と無線通信を行う第2のモードとのいずれか一方で動作することができるものとする。また、携帯型通信装置200は、第1のモード及び第2のモードによる無線通信を同時に(並行して)行うことができるものとする。携帯型通信装置200は、PDA(Personal Digital Assistant)等の個人情報端末、携帯電話、デジタルカメラ等でありうる。
印刷装置(MFP300)は、携帯型通信装置200と無線通信する通信機能を有し、その他、読取機能(スキャナ)やFAX機能、電話機能等をも有しうる。ここで、無線通信機能は、上述の携帯型通信装置200が有する通信機能に対応する機能であるものとする。すなわち、MFP300は、例えば携帯型通信装置200が無線LANによる通信機能を有する場合は同一規格の無線LANによる通信機能を有するものとする。本実施形態では、MFP300は、印刷機能に加え、読取機能を有するものとするが、これに限られず、印刷機能のみを有してもよいし、印刷等の画像処理と関係のない機能を有していてもよい。
なお、MFP300も、携帯型通信装置200と同様に、他の装置を介して相手装置と無線通信を行う第1のモードと、他の装置を介さずに相手装置と無線通信を行う第2のモードのいずれか一方で動作することができるものとする。また、MFP300は、第1のモード及び第2のモードによる無線通信を同時に行うことができるものとする。
アクセスポイント400は、無線LANによる通信機能を有し、自身への接続を許可した無線LANのステーション(以下では、クライアントと呼ぶ場合もある)として機能する通信装置同士の通信を中継する。また、アクセスポイント400は、上述のような通信装置と、アクセスポイント400が接続しているネットワークによって接続可能な装置(例えばそのネットワークにLANケーブル等によって直接接続された装置)との通信を中継することもできる。アクセスポイント400の周囲に存在する通信装置(ステーション)は、アクセスポイント400を介して、インフラストラクチャモードによる通信を行うことができる。なお、携帯型通信装置200が、無線LANでない通信機能によって、他の装置を介して相手装置と通信する場合、アクセスポイント400は、当該他の装置と置き換えられうる。
携帯型通信装置200とMFP300は、各々が有する無線LANによる通信機能を用いて、アクセスポイント400を介したインフラストラクチャモードの無線通信を行うことができる。また、携帯型通信装置200とMFP300は、Wi−Fi Direct等に従ったピアツーピアモード(P2Pモード)の無線通信を行うこともできる。なお、携帯型通信装置200とMFP300は、後述するように、無線LANを経由して複数の印刷サービスに対応した処理を実行することができる。
(装置構成)
図2に、携帯型通信装置200の外観の例を示す。本実施形態では、携帯型通信装置200がスマートフォンである場合について説明する。スマートフォンとは、カメラ、ウェブブラウザ、電子メール機能等の様々な機能を搭載した多機能型の携帯電話のことである。ただし、携帯型通信装置200はスマートフォンでなくてもよい。すなわち、本実施形態に係る携帯型通信装置200は、以下に説明する機能の少なくとも一部が実装された任意の通信装置によって置き換えられうる。
携帯型通信装置200は、例えば、表示部202と操作部203とが一体化されたタッチパネルを有し、そのタッチパネルを固定又は保護するベゼル201の部分を含みうる。なお、ベゼル201の裏面には無線LAN等による通信を行うためのアンテナが備えられてもよく、携帯型通信装置200は、このアンテナと無線通信回路等を用いて通信を行うことができる。表示部202及び操作部203は、例えば、LCD方式の表示機構を備えたタッチパネル式のディスプレイでありうる。例えば、表示部202がボタンアイコンやソフトウェアキーボードの表示を行い、ユーザがそれらの箇所に触れることによって、操作部203が操作イベントを検知しうる。電源キー204は、電源のオン及びオフ等の操作を受け付けるためのハードキーである。
図3に、MFP300の外観の例を示す。図3において、原稿台301は、スキャナ(読取部)で読み取らせる原稿を載せるガラス状の透明な台である。原稿蓋302は、スキャナで読取を行う際に原稿を押さえるため、及び、読取の際に原稿を照射する光源からの光が外部に漏れないようにするための蓋である。印刷用紙挿入口303は、様々なサイズの印刷に用いるための用紙を、MFP300の内部に取り込ませるための挿入口である。印刷用紙挿入口303にセットされた用紙は、一枚ずつ印刷部に搬送され、印刷部で印刷が行われた後に印刷用紙排出口304から排出される。操作表示部305は、文字入力キー、カーソルキー、決定キー、取り消しキー等のキーと、LED(発光ダイオード)やLCD(液晶ディスプレイ)等を含んで構成される。ユーザは、操作表示部305を介して、MFPとしての各種機能の起動や各種設定を行うことができる。操作表示部305は、タッチパネルで構成されてもよい。筐体306は、MFP300を構成する回路や印刷機構等を収納しており、無線LANで通信するためのアンテナ及び無線通信回路も筐体の中に収納されている。
図4(a)〜図4(c)に、MFPの操作表示部305において表示される画面の一例を模式的に示す。図4(a)は、MFPが電源オンとなり、印刷やスキャン等の動作をしていない状態(アイドル状態)を示すホーム画面である。この状態においてユーザからのキー操作やタッチパネル操作を受け付けることにより、コピー、スキャン、又は、インターネット通信を利用したクラウド機能の、メニュー表示、各種設定、又は機能に関する処理の実行に移ることができる。ユーザによるキー操作やタッチパネルの操作を受け付けることにより、操作表示部305は、図4(a)のホーム画面から、シームレスに図4(a)とは異なる機能を表示することができる。図4(b)は、その一例であり、プリント若しくはフォト機能の実行、又はLAN設定の変更が実行可能な画面の例を示している。図4(c)は、操作表示部305が図4(b)の画面においてLAN設定の選択を受け付けた場合に表示する画面の例である。この画面からインフラストラクチャモード(無線LAN)の有効/無効設定、又は、WFDモード(無線ダイレクト)の有効/無効設定など、各種のLAN設定変更が実行されうる。
図5に、携帯型通信装置200の構成例を示す。携帯型通信装置200は、一例において、装置自身のメインの制御を行うためのメインボード501と、無線LANによる通信のためのWLANユニット517とを有する。
メインボード501において、CPU(中央演算処理部)502は、システム制御部であり、携帯型通信装置200の全体の動作を制御する。以下に示す携帯型通信装置200の処理は、例えば、CPU502の制御によって実行される。なお、携帯型通信装置200は、その少なくとも一部の機能を実現するために、特定用途向け集積回路(ASIC)、フィールドプログラマブルゲートアレイ(FPGA)等を用いてもよい。
ROM503は、CPU502が実行する制御プログラムや組込オペレーティングシステム(OS)のプログラム等を記憶する。本実施形態では、ROM503に記憶されている各制御プログラムが、ROM503に記憶されている組込OSの管理下で、スケジューリングやタスクスイッチ等のソフトウェア制御を行う。RAM504は、SRAM(Static RAM)等によって構成され、プログラム制御変数等のデータを記憶し、また、ユーザが登録した設定値や携帯型通信装置200の管理データ等のデータを記憶する。RAM504には、各種ワーク用バッファ領域が設けられる。画像メモリ505は、DRAM(Dynamic RAM)等のメモリによって構成され、WLANユニット517を介して受信した画像データや、データ蓄積部513から読み出された画像データをCPU502で処理するために一時的に記憶する。不揮発性メモリ512は、フラッシュメモリ(flash memory)等のメモリによって構成され、携帯型通信装置200の電源がオフとなってもデータを記憶し続ける。なお、これらのようなメモリ構成は、上述の構成に限定されるものではなく、例えば、画像メモリ505とRAM504とが共有されてもよいし、データ蓄積部513においてデータのバックアップ等が行われてもよい。また、画像メモリ505は、DRAMによって構成されると説明したが、ハードディスクや不揮発性メモリ等の他の記憶媒体によって構成されてもよい。
データ変換部506は、種々の形式のデータの解析、及び、色変換又は画像変換等のデータ変換を行う。電話部507は、スピーカ部514を介して入出力される音声データを処理することにより、音声通話用の信号を生成して通信回線へ送出し、または通信回線から受信した信号からの音声データへの復元を行う。操作部508は、図2の操作部203を介して受け付けた操作を表す信号を生成して出力する。GPS(Global Positioning System)509は、携帯型通信装置200の現在の緯度や経度等の位置情報を取得する。表示部510は、図2の表示部202の表示内容を電子的に制御しており、各種入力操作用の画面の表示、MFP300の動作状況の表示、ステータス状況の表示等を行うことができる。
カメラ部511は、レンズを介して入力された画像を電子的に記録して符号化する機能を有している。カメラ部511で撮影された画像に関する画像データは、データ蓄積部513に保存される。データ蓄積部513は、上述のように各種データが蓄積されるストレージ機器でありうる。スピーカ部514は、電話機能のための音声を入力または出力する機能、及び、アラーム通知等のその他の機能を実現する。電源部515は携帯型通信装置200の内部に収納可能な大きさの電池であり、装置内への電力供給制御を行う。携帯型通信装置200は、電池に残量が無い電池切れ状態、電源キー205が押下されていない電源オフ状態、通常起動している起動状態、及び、起動しているが省電力になっている省電力状態のいずれかの電源状態をとりうる。
WLANユニット517は、無線LANの規格に準拠した無線通信を行うための、アンテナ及び通信回路(例えばベースバンド処理機能及びRF処理機能を有する回路)を含んで構成される。携帯型通信装置200は、WLANユニット517を介して、MFP等の他デバイスを相手装置として無線LANによるデータ通信を行う。WLANユニット517は、データをパケットに変換して他デバイスに無線でパケット送信を行うことができ、外部の他デバイスから無線で送信されたパケットを受信して、元のデータに復元してCPU502に対して送信することができる。
メインボード501内の各種構成要素は、CPU502が管理するシステムバス518を介して、相互に接続される。また、WLANユニット517も、バスケーブル516を介してメインボード501内のシステムバス518に接続される。したがって、CPU502の制御下で、メインボード501内の各種構成要素で生成又は記憶されたデータがWLANユニット517を介して送信され、WLANユニット517で受信されたデータがメインボード501内の各種構成要素に受け渡されうる。
なお、携帯型通信装置200は、セルラ通信のための通信機能等、一般的なスマートフォンが有する機能を有しうる。
図6に、MFP300の構成例を示す。MFP300は、一例において、装置自身のメインの制御を行うためのメインボード601と、無線LANによる通信のためのWLANユニット616、及び有線通信等のためのモデム619を有する。なお、MFP300は、USB(Universal Serial Bus)のインタフェースを有していてもよく、PC等の外部の装置とUSBインタフェースを介して接続可能なように構成されてもよい。
メインボード601において、CPU(中央演算処理部)602は、システム制御部であり、MFP300の全体の動作を制御する。以下に示すMFP300の処理は、例えば、CPU602の制御によって実行される。なお、MFP300は、その少なくとも一部の機能を実現するために、特定用途向け集積回路(ASIC)、フィールドプログラマブルゲートアレイ(FPGA)等を用いてもよい。
ROM603は、CPU602が実行する制御プログラムや組込オペレーティングシステム(OS)のプログラム等を記憶する。本実施形態では、ROM603に記憶されている各制御プログラムが、ROM603に記憶されている組込OSの管理下で、スケジューリングやタスクスイッチ等のソフトウェア制御を行う。RAM604は、SRAM(Static RAM)等によって構成され、プログラム制御変数等のデータを記憶し、また、ユーザが登録した設定値やMFP300の管理データ等のデータを記憶する。RAM604には、各種ワーク用バッファ領域が設けられる。不揮発性メモリ605は、フラッシュメモリ(flash memory)等のメモリによって構成され、MFP300の電源がオフとなってもデータを記憶し続ける。画像メモリ606は、DRAM(Dynamic RAM)等のメモリによって構成され、WLANユニット616を介して受信した画像データや、符復号処理部611において処理された画像データなどを蓄積する。また、携帯型通信装置200のメモリ構成と同様に、MFP300のメモリ構成は上述の構成に限定されるものではない。
読取制御部607は、読取部609(例えば、CISイメージセンサ(密着型イメージセンサ))を制御して、図3の原稿台301に置かれた原稿を光学的に読み取り、これを電気的な画像データに変換した画像信号を生成して出力する。このとき、読取制御部607は、2値化処理や中間調処理等の各種画像処理を施した後の画像データを出力してもよい。データ変換部608は、種々の形式のデータの解析や、画像データから印刷データへの変換等を行う。FAX制御部617は、例えば読取部609で読み取られた画像データを外部装置へ送信し、外部装置から受信したFAXデータを受信して、受信データから画像を復元するための制御を行う。FAX制御部617は、例えばモデム619を介して、外部装置との間でFAXデータの送受信を行いうる。
操作表示部610は、図3の操作表示部305を介して受け付けたユーザ操作を表す信号を生成し、また、操作表示部305に表示させる情報の制御を行う。操作表示部610は、例えば、初期状態において図4(a)の画面を表示し、ユーザによる所定の処理を受け付けたことに応じて、図4(b)のような画面を表示し、又は、所定の処理を行うように指示する信号をメインボード内の各処理部へ送信しうる。符復号処理部611は、MFP300において取り扱われる画像データ(JPEG、PNG等)の符号化処理並びに復号処理、及び拡大縮小処理を行う。
給紙部613は、用紙を保持し、印刷制御部614からの制御によって印刷のための用紙の給紙を行う。給紙部613は、複数種類の用紙を1つの装置に保持するために、複数の給紙部を用意することができる。この場合、印刷制御部614が、どの給紙部から給紙を行うかの制御を行いうる。印刷制御部614は、印刷対象の画像データに対して、スムージング処理、印刷濃度補正処理、色補正等の各種画像処理を施し、処理後の画像データを印刷部612へ出力する。印刷部612は、例えば、インクタンクから供給されるインクをプリントヘッドから吐出させて画像を印刷するインクジェットプリンタとして機能する回路及び機構でありうる。また、印刷制御部614は、印刷部612の情報を定期的に読み出して、RAM604に記憶されている情報を更新する制御をも行いうる。例えば、印刷制御部614は、インクタンクの残量やプリントヘッドの状態等の、RAM604に記憶されているステータス情報を更新することができる。
NW(ネットワーク)サブシステム620は、CPU(中央演算処理部)602の制御負荷を低減させるための、ネットワーク通信関連の入出力制御を司るサブシステムである。RAM604の一部には、NWサブCPU621によって実行される制御コードが保存され、CPU602のブートシーケンスにおいて、RAM604からNWサブシステム620内のRAM622へと、その制御コードがDMA転送される。制御コードは、NWサブCPU621のリセット解除後に、NWサブCPU621によって実行され、それにより、ネットワーク通信関連の入出力制御が実行される。NWサブシステム内の各モジュール(NWサブCPU621、RAM622、UHOSTモジュール623)は、メインボード601のシステムバス625とは分離されたローカルバス624を介して相互接続される。NWサブシステム620は、ネットワーク通信関連の機能のうち、特にハードウェアレイヤに近い層の機能を担うことにより、メインボード601内の他のモジュールへの影響を最小化したネットワーク制御を行うことを可能とする。
WLANユニット616は、携帯型通信装置200のWLANユニット517と同様であるため、詳細な説明については省略する。なお、WLANユニット616は、1つの無線ICチップにより構成されてもよい。WLANユニット616は、1つの無線ICチップにより構成されている際にも、インフラストラクチャモードの通信とP2Pモードの通信とを同時に(並行して)行うことができる。この場合、MFP300は、インフラストラクチャモードの通信とP2Pモードの通信とを同一周波数チャネル上で行い、時分割でインフラストラクチャモードの通信とP2Pモードの通信とを切り変換えることができる。WLANユニット616は、例えばUHOSTモジュール623及びバスケーブル615を介して、NWサブシステム620に接続される。モデム619は、例えば有線通信を行うための機能部であり、例えばIEEE802.3規格シリーズに準拠したデータ(パケット)通信を行うための回路及び機構を含んで構成される。モデム619は、例えばEthernet(登録商標)インタフェースを含み、そのインタフェースに接続されたケーブルによってLANに接続され、同じくLANに接続されたPC等の外部機器との通信を可能とする。また、モデム619は、有線LANを通じて、その有線LANに接続しているアクセスポイントに接続している通信装置等と通信することもできる。モデム619は、バスケーブル618を介して、メインボード601内のバス625と接続されうるが、例えばNWサブシステム620内のバス624に接続されてもよい。なお、メインボード601内の各種構成要素は、CPU602が管理するシステムバス625を介して、相互に接続される。
(無線接続方式について)
本実施形態では、通信装置が他の装置(外部AP)を介さずに相手装置と直接通信を行うP2Pモードと、通信装置がAP等の他の装置を介して相手装置と間接的に通信を行うインフラストラクチャモードが、無線LANにおける接続方式として用いられうる。
P2Pモードには、複数のモードが存在しうる。これらのモードでは、例えば、通信装置が、モード間で共通の探索要求コマンド(例えば、Probe Requestフレーム)を使用して通信の相手装置を探索して発見する。なお、探索要求コマンドには、種々の属性の情報を付随させて送信することができる。通常、探索コマンドに属性が指定されていた場合、その探索要求コマンドを受信した装置は、そのモードの仕様および前提となる仕様(WFDであればWi−Fi)で規定されている範囲で最大限解釈可能な属性の応答をする事が推奨されている。また、探索要求コマンドに付随する(上述の属性を含む)情報の中に解釈できない情報が含まれている場合であっても、その探索要求コマンドを受信した装置は、解釈できる情報のみに基づいて応答してもよい。
上述のP2Pモードに内包される複数のモードは、モードA(ソフトウェアAPモード)及びモードB(Wi−Fi Directモード)というさらなるモードを含みうる。それぞれのモードは、対応している機器が異なることがあり、また、利用できるアプリケーションも異なることがある。
図7に、モードA(ソフトウェアAPモード)の無線接続処理の流れの例を示す。ソフトウェアAPモードでは、通信装置と相手装置とのうちのいずれか一方が、アクセスポイントの機能をソフトウェアにより実現してソフトウェアAPとして機能し、他方の装置はそのソフトウェアAPに接続するクライアントとして動作する。以下では、携帯型通信装置200が、各種サービスを依頼する役割を果たすクライアントとなり、MFP300がソフトウェアAPとなるものとする。
ソフトウェアAPモードでは、クライアントは、探索要求コマンド701によりソフトウェアAPとなる機器を探索し、ソフトウェアAPは、探索要求コマンド701に対して探索応答702を送信して応答する。クライアントによってソフトウェアAPが発見されると、クライアントとソフトウェアAPとの間で残りの無線接続の処理(無線接続の確立等)が行われ、その後、IP接続の処理(IPアドレスの割当等)が行われる。なお、クライアントとソフトウェアAPとの間で無線接続を確立する際に送受信されるコマンドやパラメータは、例えば、Wi−Fi規格やIEEE802.11規格で規定されているものが用いられ、これについてのここでの説明は省略する。
図8に、モードB(Wi−Fi Direct(WFD)モード)の無線接続処理の流れの例を示す。なお、WFDモードで通信することができる機器は、例えば、その操作部を介してユーザ操作を受け付けたことに応じて、その通信機能を実現する専用のアプリケーションを呼び出す。そして、そのアプリケーションによって提供される操作画面であるUI(ユーザインタフェース)に対するユーザ操作に基づいて、WFDの通信を行うためのネゴシエーションを実行することができる。WFDモードでは、通信装置が探索要求コマンドにより相手装置を探索した後に、通信装置と相手装置との間でP2PのGroupOwner(GO)とP2PのClient(CL)との役割を決定し、残りの無線接続の処理が行われる。この役割決定は、例えばWFD規格におけるGO Negotiationによって行われうる。
例えば、通信装置は、探索要求コマンド801を送信し、WFDモードで接続する相手装置を探索する。相手装置は、受信した探索要求コマンド801に対して探索応答802を送信して応答する。通信装置によって相手装置が発見されると、通信装置と相手装置との間で、互いの装置において供給可能なサービスや機能に関する情報を確認する(機器情報の確認)。サービスや機能とは、例えば印刷サービス、画像表示サービス、ファイル送信サービス、動画ストリーミングサービス、動画表示サービス等である。なお、この機器情報の確認はオプションであり、必須ではない。この機器情報確認フェーズは、例えばWFD規格におけるService Discoveryによって行われうる。通信装置と相手装置は、この機器情報を互いに確認することにより、WFDモードで接続可能な他の装置がどのようなサービスを提供可能であるのかについて、WFDの接続前に知ることができる。通信装置によって相手装置が発見されると、いずれがP2P GroupOwner(GO)として動作するか、及び、いずれがP2P Client(CL)として動作するかが決定される。この役割決定は、例えばWFD規格におけるGO Negotiationによって行われる。GO Negotiationでは、通信装置及び相手装置のそれぞれは、各自に設定された値であるIntent値を送信し合い、そのIntent値の大小を比較する。そして、通信装置及び相手装置は、比較の結果、値が大きい方の装置がGOとして動作し、値が小さい方の装置がCLとして動作すると決定する。通信装置及び相手装置は、それぞれのIntent値が同じ値であった場合には、その後に生成したランダムな値(0又は1)を比較し、GOとCLとの役割を決定する。通信装置と相手装置は、GO及びCLの役割を決定した後にパラメータ交換フェーズへ移行して、WFDによる通信を行うためのパラメータの交換を行う。そして、通信装置と相手装置は、交換したパラメータに基づいて、残りの無線接続の処理及びIP接続の処理を行う。なお、パラメータ交換フェーズでは、例えばWi−Fi Protected Setupを用いて、自動的に無線LANのセキュリティに係るパラメータ(例えば、暗号化通信のために使われる情報)が交換される。パラメータには、例えば、無線ネットワークの識別情報としてのSSID、暗号鍵、暗号方式、認証鍵、認証方式等が含まれる。
次に、インフラストラクチャモードについて説明する。図9は、インフラストラクチャモードの無線接続処理の流れの例を示す図である。インフラストラクチャモードは、通信装置が、ネットワークを構築し、そのネットワークを統括しているアクセスポイント(AP)と接続して、そのAPを介して相手装置と通信を行う。例えば、携帯型通信装置200とMFP300とのそれぞれが、アクセスポイント400と接続して、アクセスポイント400を介して通信する。
インフラストラクチャモードでは、各通信装置は、探索要求コマンド901(探索要求コマンド903)によりAPを探索する。APは、受信した探索要求コマンドに対して、探索応答902(探索応答904)を送信して応答する。通信装置によってAPが発見されると、続いて、その通信装置とAPとの間で、残りの無線接続の処理(無線接続の確立等)及びIP接続の処理(IPアドレスの割当等)等が行われる。なお、通信装置とAPとの間で無線接続を確立する場合に送受信されるコマンドやパラメータは、Wi−Fi規格やIEEE802.11規格で規定されているものを用いれば足りるため、ここでの説明は省略する。
(インフラストラクチャモード及びP2Pモードのチャネル決定処理)
通信装置は、インフラストラクチャモード及びP2Pモードで並行して無線通信を行う際に、インフラストラクチャモードにおいてAPから提供されたチャネルを両モードにおける共通チャネルとして用いる。これにより、通信装置において、両モードでの無線通信を安定して維持することができる。このように複数の通信モードを並行して(同時に)実行可能なモードを同時動作モードと呼ぶ。インフラストラクチャモードの無線接続は、特定の周波数帯域(無線チャネル)を使用して行われる。
インフラストラクチャモードでは、ステーション(STA)が、自身が使用可能なチャネルにおいて、APに対して無線接続の可否を確認していく。そして、STAは、APから応答があったチャネルを特定し、以降の使用チャネルとして決定する。すなわち、APは、自身が使用可能なチャネルにおいてSTAからの要求コマンドが到来した場合にのみ、STAに対して応答コマンドを送信する。
APとSTAとから構成される無線通信システムでは、APとして動作する装置は、ビーコン(Beacon)信号を発信し、STAとして動作する装置は、そのビーコン信号を受信すると、APに対して探索要求コマンドを送信する。探索要求コマンドは、例えば、Probe Requestフレームである。APは、自身が使用可能なチャネル以外のチャネルで送信された探索要求コマンドに対しては応答コマンドを送信しない。ここで、応答コマンドは、例えばProbe Responseフレームである。
例えば、アクセスポイント400が使用可能なチャネルが第nチャネルとすると、アクセスポイント400は、第1チャネルを使用して送信された探索要求コマンドに対しては探索応答コマンドを送信しない。MFP300は、第1チャネルを使用して探索要求コマンドを送信した後、タイムアウト等によりアクセスポイント400からの応答がないと判定した場合には、続いて、第2チャネルを使用して探索要求コマンドを送信する。MFP300は、チャネル番号を繰り上げながら以上のような試行を繰り返す。MFP300が第nチャネルを使用して探索要求コマンドを送信すると、アクセスポイント400は、そのチャネルが未使用状態である場合に探索応答コマンドを送信する。
インフラストラクチャモードでは、上述のようにしてアクセスポイントから探索応答コマンドが返却された第nチャネルが、それ以降の無線通信に使用されることとなる。
P2Pモードの無線接続も、特定の周波数帯域(無線チャネル)を使用して行われる。このとき、インフラストラクチャモードとP2Pモードとにおいて無線通信を安定して維持するためには、インフラストラクチャモードでAPから応答があったチャネルを取得して、P2PモードのGOの共通チャネルとして設定するようにする。
インフラストラクチャモード及びP2Pモードでは、いずれにおいてもWi−Fi標準規格で規定されたチャネルが利用される。Wi−Fi標準規格では、2.4GHz周波数帯のチャネルとして、国や地域に応じて1〜13チャネルが利用されうる。本実施形態では、利用できるチャネルの範囲を1〜13チャネルとして説明するが、これに限られない。すなわち、異なる周波数帯においてチャネル数が増えたり、国や地域に応じた周波数帯の規制によって同じ周波数帯でも1〜11チャネルに限定されたりするが、実際に利用可能なチャネルの範囲で、本実施形態に係る手法を利用可能である。例えば、無線LAN規格のIEEE802.11aでは、5GHzの周波数帯が用いられるため、36〜140チャネル程度の範囲が利用されうることが知られている。なお、2.4GHz(1〜13)と5GHz(36〜140)との両方の周波数帯を用いる通信装置にとっては、APに対して探索要求コマンドを送信すべきチャネル数が増えることとなる。
(処理の流れ)
続いて、本実施形態において実行される処理の流れの例について説明する。図10に、MFP300におけるネットワーク接続時の処理の流れの例を示す。本処理は、MFP300が起動された場合や、本体設定の変更に伴うネットワーク接続の再起動が必要となった場合に、起動されうる。本処理は、排他的に本処理のみが実行されてもよいし、他の処理と並行して、例えばバックグラウンドで実行されてもよい。なお、本実施形態では、MFP300の処理の流れとして説明するが、携帯型通信装置200が同様の処理を実行してもよい。
本処理が開始されると、MFP300は、まず、無線ネットワーク接続モードの設定を確認する(S1001)。無線ネットワーク接続モードの設定は、(1)インフラストラクチャモード、(2)P2Pモード、(3)インフラストラクチャモードとP2Pモードとを同時に(並行して)動作させる同時動作モード、の3形態を取りうる。この設定は、例えば不揮発性メモリ605上に記憶され、操作表示部610を介したユーザ操作の受け付けによって、いずれかのモードが選択され、又は変更されうる。MFP300は、例えば、同時動作モードでない場合(S1001でNO)に、動作モードがインフラストラクチャモードであるかP2Pモードであるかを判定する(S1002)。この結果、MFP300は、無線ネットワーク接続モードが同時動作モードである場合(S1001でYES)は、処理をS1006へ移す。一方、MFP300は、動作モードがインフラストラクチャモードである場合(S1002でYES)は処理をS1003へ移し、P2Pモードである場合(S1002でNO)は、処理をS1004へ移す。
MFP300は、動作モードが(1)インフラストラクチャモードである場合、インフラストラクチャモードの接続処理を単独で実行し(S1003)、接続失敗した場合はバックグラウンドで本接続処理を繰り返す(S1003、S1005)。インフラストラクチャモードでの接続処理について図11を用いて説明する。MFP300は、インフラストラクチャモードでの接続処理を開始すると、まず、接続先のアクセスポイントを全チャネルにわたって探索する(S1101)。そして、MFP300は、あるチャネルにおいて接続先のアクセスポイントが検出された場合に(S1102でYES)、そのチャネルでそのアクセスポイントとの接続の確立を試みる(S1103)。一方、MFP300は、全チャネルでのサーチの結果、接続先のアクセスポイントを検出しなかった場合(S1102でNO)、所定回数(例えばN回)の範囲内でサーチを再試行する(S1104)。MFP300は、所定回数のサーチによっても接続先のアクセスポイントを検出できなかった場合(S1104でNO)は、タイムアウトとして取り扱い、インフラストラクチャモードでの接続処理を終了する。
MFP300は、動作モードが(2)P2Pモードである場合、P2Pモードの起動処理を実行する(S1004)。P2Pモードの起動処理では、MFP300は、自身が親局として動作するようにする。なお、S1004では、P2Pモード単独で動作するモードであるため、MFP300は、任意の無線チャネルを利用しうる。なお、MFP300は、後述する同時動作モードでのチャネル判定と同様の制御により、使用する無線チャネルを決定してもよい。MFP300は、親局としての無線制御が開始されるまでの処理を終了した時点で、ここでのP2Pモードの起動処理を完了しうる。MFP300は、この後に、相手装置との接続処理等をバックグラウンドで実行しうる。
MFP300は、動作モードが(3)同時動作モードである場合、まず、インフラストラクチャモードでの接続処理を実行して、アクセスポイント400との接続の確立を試みる(S1006)。この処理は、上述の図11の処理と同様であるため、詳細な説明については省略する。MFP300は、インフラストラクチャモードでアクセスポイント400との接続を確立すると、その接続で用いられる無線チャネルを同時動作チャネルとして、P2Pモードでの接続で用いるためにRAM604等に記憶しておく。なお、MFP300は、インフラストラクチャモードでの接続に失敗していた場合は、その失敗要因をRAM604等に記憶しておく。
MFP300は、その後、P2Pモードを起動する。このとき、2つのモードでの同時動作を安定させるため、MFP300は、RAM604等を参照して上述の同時動作チャネルを読み出し、その同時動作チャネルを用いてP2Pモードを起動する(S1007、S1008)。MFP300は、いくつかの手順のいずれかで、チャネルの設定および確認を行うことができる。本実施形態では、MFP300は、インフラストラクチャモードでの接続においてアクセスポイントと接続した際にその接続チャネルをRAM604に記憶する。MFP300は、例えば一度もアクセスポイントと接続していない場合は、任意のチャネルを同時動作チャネルに設定してから、P2Pモードを起動してもよい。MFP300は、例えば、自身の初回起動時に、同時動作チャネルの初期値として所定のチャネルを記憶しておくことで、所定のチャネルをデフォルトの接続チャネルとすることができる。MFP300は、インフラストラクチャモードの接続とP2Pモードの起動がどちらも成功した場合(S1009でYES)は、その時点でネットワーク接続処理を終了する。なお、MFP300は、同時動作モードで動作する場合、P2Pモードにおいて、Wi−Fi DirectのGroupOwner(GO)として動作してもよい。GOは、無線通信に用いる周波数チャネルを決定し、決定された周波数チャネルで無線ネットワークを形成する。したがって、MFP300は、同時動作モードで動作する際にP2PモードではGOとして動作することによって、P2Pモードで用いる無線チャネルを、インフラストラクチャモードで使用される無線チャネルと同一にすることができる。
一方、MFP300は、インフラストラクチャモードでの接続に失敗していた場合(S1009でNO)は、インフラストラクチャモードでの接続の失敗理由を確認する(S1010)。そして、MFP300は、その失敗理由がアクセスポイントを検出したが接続の確立に失敗したエラーなどの所定の失敗理由であった場合(S1010でYES)は、インフラストラクチャモードでの再接続処理を実行せずに、処理を終了する。所定の失敗理由は、例えば、アクセスポイントとの認証キーエラー(アクセスポイントとの間で認証キーが一致しなかったことによるエラー)でありうる。認証キーが一致しない認証エラーの場合は再接続処理においても接続が確立されることはないため、このような場合にも再接続処理が行われないようにして、不必要な処理が繰り返されることを防ぐことができる。
一方、MFP300は、所定の失敗理由以外の失敗理由でインフラストラクチャモードでの接続に失敗していた場合(S1010でNO)は、インフラストラクチャモードでの再接続処理を開始する(S1011)。インフラストラクチャモードでの再接続処理について、図12を用いて説明する。
インフラストラクチャモードでの再接続処理では、MFP300は、まず、P2Pモードでの使用チャネルを確認し(S1201)、そのチャネルのみにおいて、アクセスポイントをサーチする(S1202)。すなわち、MFP300は、P2Pモードで使用中のチャネルにおいて探索要求フレーム(例えばProbe Request)を送出し、それに対する探索応答フレーム(例えばProbe Response)を待ち受ける。MFP300は、ここで接続先のアクセスポイントを発見した場合(S1203でYES)、そのアクセスポイントとの接続を試みる(S1204)。そして、MFP300は、そのアクセスポイントとの接続の確立に成功した場合は、その接続に用いる無線チャネル(この場合、P2Pモードで用いているチャネル)を、同時動作チャネルとしてRAM604に記憶して(S1205)、処理を終了する。なお、MFP300は、接続対象のアクセスポイントが発見できなくても(S1203でNO)、所定回数(例えばM回)の範囲内でサーチを繰り返し実行する(S1206)。
一方、MFP300は、サーチを所定回数にわたって実行したにも関わらず、接続対象のアクセスポイントを発見できなかった場合(S1203でNO、S1206でYES)は、次に、全チャネルにおいてサーチを実行する(S1207)。MFP300は、ここで接続対象のアクセスポイントを検出した場合(S1208でYES)は、そのアクセスポイントとの接続の確立を試みる(S1204)。そして、MFP300は、そのアクセスポイントとの接続の確立に成功した場合は、その接続に用いる無線チャネルを、同時動作チャネルとしてRAM604に記憶して(S1205)、処理を終了する。なお、MFP300は、接続対象のアクセスポイントが発見できなくても(S1208でNO)、所定回数(例えばN回)の範囲内でサーチを繰り返し実行する(S1209)。なお、S1206の繰り返し回数(M回)とS1209の繰り返し回数(N回)は同じ回数であってもよいし、異なる回数であってもよい。MFP300は、サーチを所定回数にわたって実行したにも関わらず、接続対象のアクセスポイントを発見できなかった場合(S1208でNO、S1209でYES)は、そのまま処理を終了する。
図10に戻り、MFP300は、図12のような処理によってアクセスポイントとの接続の確立に成功しなかった場合(S1012でNO)は、例えばバックグラウンドで、インフラストラクチャモードでの再接続処理(S1011)を繰り返す。一方、MFP300は、アクセスポイントとの接続の確立に成功した場合(S1012でYES)は、処理を終了する。なお、このとき、MFP300は、P2Pモードで設定されていたチャネルが、インフラストラクチャモードでの再接続処理によって用いられることとなったチャネルと異なる場合は、P2Pモードの使用チャネルを切り替えるための処理を実行しうる。
このように、本実施形態では、MFP300は、P2Pモードの起動後、S1010においてインフラストラクチャモードでの接続の確立に失敗していた場合にその失敗理由を確認する。そして、MFP300は、失敗理由がアクセスポイントとの認証キーエラー等の所定の理由である場合には、インフラストラクチャモードでの再接続処理の実行を制限する。アクセスポイントとの認証キーエラーで失敗した後にインフラストラクチャモードの再接続処理を実行すると、接続環境が変化していない限りは、S1204におけるアクセスポイントとの接続処理で認証キーのエラーで接続に失敗し続けることとなる。そして、この時に、アクセスポイントが使用するチャネルが変更された場合、P2Pと異なるチャネルでアクセスポイントとの通信が行われるため、チャネルの切り替えが頻発し、P2Pモードでの通信の遅延や送受信データの欠落が発生しうる。これに対して、上述のように失敗理由に応じて再接続処理を実行しないようにすることで、P2Pモードでの動作中の、不要なインフラストラクチャ接続処理と、場合によっては異なるチャネルを用いての通信を回避することができる。これにより、インフラストラクチャモードとP2Pモードとを同時に用いる場合の通信の信頼性を向上させることができる。
なお、上述の通り、本実施形態で説明された処理は、携帯型通信装置200によって実行されてもよい。すなわち、インフラストラクチャモードとP2Pモードとで同時通信を行うことができる通信装置であれば、上述の処理を実行することができる。
また、上述の実施形態では、インフラストラクチャモードとP2Pモードとを例として説明したが、これらに限られない。すなわち、複数の通信モードで同時通信可能な通信装置において、その複数の通信モードのうち1つのモードを基準として無線チャネルが選択されるべき条件においては、上述のような処理が適用可能である。この場合、無線チャネルの選択の基準とされる1つのモードが、上述のインフラストラクチャモードと同様に取り扱われることとなる。また、上述の実施形態では、同時動作モードでの動作時に、インフラストラクチャモードでの接続処理が認証エラーの場合、接続処理が再度行われないようにしていた。しかしながら、インフラストラクチャモードでの接続処理における再接続処理の回数を、認証エラーの場合には、他のエラーの場合より減らすようにしてもよい。すなわち、認証エラー等の所定の失敗理由で接続処理に失敗した場合には、接続処理の再実行が何らかの形で制限されるようにすれば足り、このような制限によって、不必要な処理の繰り返しによる負荷を減らすことができる。
<<その他の実施形態>>
また、本発明は、以下の処理を実行することによっても実現される。即ち、上述した実施形態の機能を実現するソフトウェア(プログラム)を、ネットワーク又は各種記憶媒体を介してシステム或いは装置に供給し、そのシステム或いは装置のコンピュータ(またはCPUやMPU等)がプログラムを読み出して実行する処理である。