(57)【特許請求の範囲】
【請求項１】
端末装置との第１の無線ネットワークにおける接続と、前記端末装置の外部の装置である外部装置との第２の無線ネットワークにおける接続を並行して確立可能な通信装置であって、
前記外部装置と前記通信装置とを接続させ、前記端末装置と前記通信装置とを接続させる接続手段と、
前記外部装置と前記通信装置との接続と、前記端末装置と前記通信装置との接続が並行して確立されている状態で、前記外部装置と前記通信装置との接続が切断されたことに基づいて、前記外部装置を検索する第１検索処理を第１の間隔で繰り返し、前記第１検索処理が前記第１の間隔で繰り返されることにより前記外部装置が発見されなかったことに基づいて、前記外部装置を検索する第２検索処理を、前記第１の間隔より長い第２の間隔で繰り返す検索手段と、
を有することを特徴とする通信装置。
【請求項２】
前記検索手段は、前記第１検索処理を前記第１の間隔で所定の回数繰り返し、
前記第１検索処理が前記所定の回数繰り返され、且つ前記第１検索処理により前記外部装置が発見されなかった場合、前記第２検索処理を前記第２の間隔で実行することを特徴とする請求項１に記載の通信装置。
【請求項３】
前記第１の間隔は、前記第１検索処理が繰り返される毎に長くなることを特徴とする請求項１又は２に記載の通信装置。
【請求項４】
前記第２の間隔は、前記第２検索処理が繰り返される毎に長くなることを特徴とする請求項１乃至３のいずれか１項に記載の通信装置。
【請求項５】
前記検索手段は、前記外部装置に対して応答を要求する所定のパケットを送信することで、前記外部装置を検索することを特徴とする請求項１乃至４のいずれか１項に記載の通信装置。
【請求項６】
前記検索手段は、前記通信装置が使用可能な全てのチャネルを順に使用して前記外部装置を検索する処理を前記第２検索処理として前記第２の間隔で繰り返すことを特徴とする請求項１乃至５のいずれか１項に記載の通信装置。
【請求項７】
前記外部装置と前記通信装置との接続と前記端末装置と前記通信装置との接続が並行して確立されている状態では、前記外部装置と前記通信装置との接続と前記端末装置と前記通信装置との接続の両方の接続において、前記通信装置が使用可能なチャネルのうち所定のチャネルが用いられることを特徴とする請求項１乃至６のいずれか１項に記載の通信装置。
【請求項８】
前記外部装置と前記通信装置との接続に用いられる前記所定のチャネルは、前記外部装置によって決定されることを特徴とする請求項７に記載の通信装置。
【請求項９】
前記第１検索処理は、前記所定のチャネルを用いて前記外部装置を検索する処理であることを特徴とする請求項７又は８に記載の通信装置。
【請求項１０】
前記第２検索処理は、前記通信装置が使用可能な全てのチャネルを用いて前記外部装置を検索する処理であることを特徴とする請求項７乃至９のいずれか１項に記載の通信装置。
【請求項１１】
前記検索手段は、前記通信装置が使用可能な全てのチャネルを順に使用して前記外部装置を検索する処理を前記第２検索処理として前記第２の間隔で繰り返し、前記検索手段は、前回の前記第２検索処理に使用したチャネル以外の複数のチャネルを使用して、前記第２検索処理を繰り返すことを特徴とする請求項７乃至１０のいずれか１項に記載の通信装置。
【請求項１２】
前記外部装置と前記通信装置との接続と、前記端末装置と前記通信装置との接続が並行して確立されていない状態で、前記外部装置と前記通信装置との接続が切断されたことに基づいて、前記外部装置を検索する第３検索処理を、前記第２の間隔より小さい第３の間隔で繰り返すことを特徴とする請求項１乃至１１のいずれか１項に記載の通信装置。
【請求項１３】
前記検索手段は、前記通信装置が使用可能な全てのチャネルを順に使用して前記外部装置を検索する処理を前記第３検索処理として前記第３の間隔で繰り返すことを特徴とする請求項１２に記載の通信装置。
【請求項１４】
前記外部装置と前記通信装置との接続と前記端末装置と前記通信装置との接続が並行して確立されている状態では、前記外部装置と前記通信装置との接続と前記端末装置と前記通信装置との接続の両方の接続において、前記通信装置が使用可能なチャネルのうち所定のチャネルが用いられ、
前記第２検索処理は、前記通信装置が使用可能な全てのチャネルを用いて前記外部装置を検索する処理であることを特徴とする請求項１２又は１３に記載の通信装置。
【請求項１５】
前記検索手段により前記第１検索処理が実行される毎に、前記通信装置が前記端末装置と接続しているか否かを判定する第１判定手段を更に有し、
前記検索手段は、前記第１判定手段により、前記通信装置が前記端末装置と接続していると判定された場合、前記第１検索処理を実行し、前記第１判定手段により、前記通信装置が前記端末装置と接続していないと判定された場合、前記第３検索処理を実行することを特徴とする請求項１２乃至１４のいずれか１項に記載の通信装置。
【請求項１６】
前記検索手段により前記第２検索処理が実行される毎に、前記通信装置が前記端末装置と接続しているか否かを判定する第２判定手段を更に有し、
前記検索手段は、前記第２判定手段により、前記通信装置が前記端末装置と接続していると判定された場合、前記第２検索処理を実行し、前記第２判定手段により、前記通信装置が前記端末装置と接続していないと判定された場合、前記第３検索処理を実行することを特徴とする請求項１２乃至１５のいずれか１項に記載の通信装置。
【請求項１７】
前記第１の間隔は、前記第３の間隔より長いことを特徴とする請求項１２乃至１６のいずれか１項に記載の通信装置。
【請求項１８】
端末装置との第１の無線ネットワークにおける接続と、前記端末装置の外部の装置である外部装置との第２の無線ネットワークにおける接続を並行して確立可能な通信装置であって、
前記外部装置と前記通信装置とを接続させ、前記端末装置と前記通信装置とを接続させる接続手段と、
前記外部装置と前記通信装置との接続と、前記端末装置と前記通信装置との接続が並行して確立されている状態で、前記外部装置と前記通信装置との接続が切断されたことに基づいて、前記外部装置を検索する第１検索処理を第１の間隔で繰り返し、前記外部装置と前記通信装置との接続と、前記端末装置と前記通信装置との接続が並行して確立されていない状態で、前記外部装置と前記通信装置との接続が切断されたことに基づいて、前記外部装置を検索する第２検索処理を、前記第１の間隔より小さい第２の間隔で繰り返す検索手段と、
を有することを特徴とする通信装置。
【請求項１９】
前記第１の間隔は、前記第１検索処理が繰り返される毎に長くなることを特徴とする請求項１８に記載の通信装置。
【請求項２０】
前記第２の間隔は、前記第２検索処理が繰り返される毎に長くなることを特徴とする請求項１８又は１９に記載の通信装置。
【請求項２１】
前記検索手段は、前記外部装置に対して応答を要求する所定のパケットを送信することで、前記外部装置を検索することを特徴とする請求項１８乃至２０のいずれか１項に記載の通信装置。
【請求項２２】
前記外部装置と前記通信装置との接続と前記端末装置と前記通信装置との接続が並行して確立されている状態では、前記外部装置と前記通信装置との接続と前記端末装置と前記通信装置との接続の両方の接続において、前記通信装置が使用可能なチャネルのうち所定のチャネルが用いられることを特徴とする請求項１８乃至２１のいずれか１項に記載の通信装置。
【請求項２３】
前記外部装置と前記通信装置との接続に用いられる前記所定のチャネルは、前記外部装置によって決定されることを特徴とする請求項２２に記載の通信装置。
【請求項２４】
前記第１検索処理は、前記通信装置が使用可能な全てのチャネルを用いて前記外部装置を検索する処理であることを特徴とする請求項２２又は２３に記載の通信装置。
【請求項２５】
前記第２検索処理は、前記通信装置が使用可能な全てのチャネルを用いて前記外部装置を検索する処理であることを特徴とする請求項２２乃至２４のいずれか１項に記載の通信装置。
【請求項２６】
前記検索手段は、前記通信装置が使用可能な全てのチャネルを順に使用して前記外部装置を検索する処理を前記第１検索処理として前記第１の間隔で繰り返し、前記検索手段は、前回の前記第１検索処理に使用したチャネル以外の複数のチャネルを使用して、前記第１検索処理を繰り返すことを特徴とする請求項２２乃至２５のいずれか１項に記載の通信装置。
【請求項２７】
前記検索手段により前記第１検索処理が実行される毎に、前記通信装置が前記端末装置と接続しているか否かを判定する第１判定手段を更に有し、
前記検索手段は、前記第１判定手段により、前記通信装置が前記端末装置と接続していると判定された場合、前記第１検索処理を実行し、前記第１判定手段により、前記通信装置が前記端末装置と接続していないと判定された場合、前記第２検索処理を実行することを特徴とする請求項１８乃至２６のいずれか１項に記載の通信装置。
【請求項２８】
前記検索手段は、前記外部装置と前記通信装置との接続と、前記端末装置と前記通信装置との接続が並行して確立されている状態で、前記外部装置と前記通信装置との接続が切断されたことに基づいて、前記外部装置を検索する第３検索処理を、前記第１の間隔より小さい第３の間隔で、前記第１検索処理の前に繰り返すことを特徴とする請求項１８乃至２７のいずれか１項に記載の通信装置。
【請求項２９】
前記検索手段は、前記第３検索処理を前記第３の間隔で所定の回数繰り返し、
前記第３検索処理が前記所定の回数繰り返され、且つ前記第３検索処理により前記外部装置が発見されなかった場合、前記第１検索処理を前記第１の間隔で実行することを特徴とする請求項２８に記載の通信装置。
【請求項３０】
前記検索手段により前記第３検索処理が実行される毎に、前記通信装置が前記端末装置と接続しているか否かを判定する第２判定手段を更に有し、
前記検索手段は、前記第２判定手段により、前記通信装置が前記端末装置と接続していると判定された場合、前記第３検索処理を実行し、前記第２判定手段により、前記通信装置が前記端末装置と接続していないと判定された場合、前記第２検索処理を実行することを特徴とする請求項２８又は２９に記載の通信装置。
【請求項３１】
前記第１の間隔は、前記第３の間隔より長いことを特徴とする請求項２８乃至３０のいずれか１項に記載の通信装置。
【請求項３２】
前記外部装置と前記通信装置との接続と前記端末装置と前記通信装置との接続が並行して確立されている状態では、前記外部装置と前記通信装置との接続と前記端末装置と前記通信装置との接続の両方の接続において、前記通信装置が使用可能なチャネルのうち所定のチャネルが用いられ、
前記第３検索処理は、前記所定のチャネルを用いて前記外部装置を検索する処理であることを特徴とする請求項２８乃至３１のいずれか１項に記載の通信装置。
【請求項３３】
前記検索手段は、前記通信装置が使用可能な全てのチャネルを順に使用して前記外部装置を検索する処理を前記第１検索処理及び前記第２検索処理として実行することを特徴とする請求項１８乃至３２のいずれか１項に記載の通信装置。
【請求項３４】
端末装置との第１の無線ネットワークにおける接続と、前記端末装置の外部の装置である外部装置との第２の無線ネットワークにおける接続を並行して確立可能な通信装置の制御方法であって、
前記外部装置と前記通信装置とを接続させ、前記端末装置と前記通信装置とを接続させる接続ステップと、
前記外部装置と前記通信装置との接続と記端末装置と前記通信装置との接続が並行して確立されている状態で、前記外部装置と前記通信装置との接続が切断されたことに基づいて、前記外部装置を検索する第１検索処理を第１の間隔で繰り返し、前記第１検索処理が前記第１の間隔で繰り返されることにより前記外部装置が発見されなかったことに基づいて、前記外部装置を検索する第２検索処理を、前記第１の間隔より長い第２の間隔で繰り返す検索ステップと、
を有することを特徴とする制御方法。
【請求項３５】
端末装置との第１の無線ネットワークにおける接続と、前記端末装置の外部の装置である外部装置との第２の無線ネットワークにおける接続を並行して確立可能な通信装置の制御方法であって、
前記外部装置と前記通信装置とを接続させ、前記端末装置と前記通信装置とを接続させる接続ステップと、
前記外部装置と前記通信装置との接続と、前記端末装置と前記通信装置との接続が並行して確立されている状態で、前記外部装置と前記通信装置との接続が切断されたことに基づいて、前記外部装置を検索する第１検索処理を第１の間隔で繰り返し、前記外部装置と前記通信装置との接続と、前記端末装置と前記通信装置との接続が並行して確立されていない状態で、前記外部装置と前記通信装置との接続が切断されたことに基づいて、前記外部装置を検索する第２検索処理を、前記第１の間隔より小さい第２の間隔で繰り返す検索ステップと、
を有することを特徴とする制御方法。
【請求項３６】
端末装置との第１の無線ネットワークにおける接続と、前記端末装置の外部の装置である外部装置との第２の無線ネットワークにおける接続を並行して確立可能な通信装置に、前記外部装置と前記通信装置とを接続させ、
前記端末装置と前記通信装置とを接続させる接続ステップと、
前記外部装置と前記通信装置との接続と、前記端末装置と前記通信装置との接続が並行して確立されている状態で、前記外部装置と前記通信装置との接続が切断されたことに基づいて、前記外部装置を検索する第１検索処理を第１の間隔で繰り返し、前記第１検索処理により前記外部装置が発見されなかったことに基づいて、前記外部装置を検索する第２検索処理を、前記第１の間隔より長い第２の間隔で繰り返す検索ステップと、
を実行させることを特徴とするプログラム。
【請求項３７】
端末装置との第１の無線ネットワークにおける接続と、前記端末装置の外部の装置である外部装置との第２の無線ネットワークにおける接続を並行して確立可能な通信装置に、前記外部装置と前記通信装置とを接続させ、
前記端末装置と前記通信装置とを接続させる接続ステップと、
前記外部装置と前記通信装置との接続と、前記端末装置と前記通信装置との接続が並行して確立されている状態で、前記外部装置と前記通信装置との接続が切断されたことに基づいて、前記外部装置を検索する第１検索処理を第１の間隔で繰り返し、前記外部装置と前記通信装置との接続と、前記端末装置と前記通信装置との接続が並行して確立されていない状態で、前記外部装置と前記通信装置との接続が切断されたことに基づいて、前記外部装置を検索する第２検索処理を、前記第１の間隔より小さい第２の間隔で繰り返す検索ステップと、
を実行させることを特徴とするプログラム。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、通信装置及びその制御方法、プログラムに関するものである。
【背景技術】
【０００２】
無線ルーター等の外部装置を介した通信相手装置との接続（以後、インフラ接続）と、外部装置を介さない通信相手装置との直接的な接続（以後、Ｐ２Ｐ接続）とを同時に（並行して）確立可能な通信装置が知られている。なお、前述のようにして、２種類の接続を同時に（並行して）確立し、２種類の接続を介して同時に（並行して）通信可能に動作することを、以後、同時動作という。
【０００３】
特許文献１は、同時動作している状態でアクセスポイント（ＡＰ）との接続が切断された場合に、端末装置との直接的な接続に使用されているチャネルによってＡＰを検索する装置を開示している。また、特許文献１は、端末装置との直接的な接続に使用されているチャネルによるＡＰの検索によってＡＰを検出できなかった場合、使用可能なチャネルを順に使用してＡＰを検索する装置を開示している。
【先行技術文献】
【特許文献】
【０００４】
【特許文献１】特開２０１４−２１６９５６号公報
【発明の概要】
【発明が解決しようとする課題】
【０００５】
ところで、同時動作状態で外部装置との接続が切断され、通信相手装置とのＰ２Ｐ接続に使用されているチャネル以外のチャネルを使って外部装置を検索する場合、例えば、Ｐ２Ｐ接続している通信相手装置との通信においてパケットロス等が生じるおそれがある。
【０００６】
今日、特許文献１のような、同時動作可能な通信装置の普及に伴い、同時動作している状態で外部装置との接続が切断された場合に外部装置を検索する技術におけるユーザの利便性向上が以前にも増して要望されている。そこで、本発明は、同時動作している状態で外部装置との接続が切断された場合に外部装置を検索する技術におけるユーザの利便性向上することができる通信装置、その制御方法及びプログラムを提供することを目的とする。
【課題を解決するための手段】
【０００７】
上記課題を解決するため、本発明の通信装置は、端末装置との第１の無線ネットワークにおける接続と、前記端末装置の外部の装置である外部装置との第２の無線ネットワークにおける接続を並行して確立可能な通信装置であって、前記外部装置と前記通信装置とを接続させ、前記端末装置と前記通信装置とを接続させる接続手段と、前記外部装置と前記通信装置との接続と、前記端末装置と前記通信装置との接続が並行して確立されている状態で、前記外部装置と前記通信装置との接続が切断されたことに基づいて、前記外部装置を検索する第１検索処理を第１の間隔で繰り返し、前記第１検索処理が前記第１の間隔で繰り返されることにより前記外部装置が発見されなかったことに基づいて、前記外部装置を検索する第２検索処理を、前記第１の間隔より長い第２の間隔で繰り返す検索手段と、を有することを特徴とする。
【０００８】
また、本発明の通信装置は、端末装置との第１の無線ネットワークにおける接続と、前記端末装置の外部の装置である外部装置との第２の無線ネットワークにおける接続を並行して確立可能な通信装置であって、前記外部装置と前記通信装置とを接続させ、前記端末装置と前記通信装置とを接続させる接続手段と、前記外部装置と前記通信装置との接続と、前記端末装置と前記通信装置との接続が並行して確立されている状態で、前記外部装置と前記通信装置との接続が切断されたことに基づいて、前記外部装置を検索する第１検索処理を第１の間隔で繰り返し、前記外部装置と前記通信装置との接続と、前記端末装置と前記通信装置との接続が並行して確立されていない状態で、前記外部装置と前記通信装置との接続が切断されたことに基づいて、前記外部装置を検索する第２検索処理を、前記第１の間隔より小さい第２の間隔で繰り返す検索手段と、を有することを特徴とする。
【発明の効果】
【０００９】
本発明によると、同時動作している状態で外部装置との接続が切断された場合に外部装置を検索する技術におけるユーザの利便性向上することができる。
【図面の簡単な説明】
【００１０】
【図１】通信システムの構成の一例を示す図である。
【図２】端末装置の外観の一例を示す図である。
【図３】ＭＦＰの外観の一例を示す図である。
【図４】ＭＦＰの操作表示部に表示される画面の一例を示す図である。
【図５】端末装置の構成を示すブロック図である
【図６】ＭＦＰの構成を示すブロック図である。
【図７】ソフトウェアＡＰモードにおける無線接続シーケンスを示す図である。
【図８】ＷＦＤモードにおける無線接続シーケンスを示す図である。
【図９】インフラストラクチャモードにおける無線接続シーケンスを示す図である。
【図１０】ＭＦＰが同時動作している状態で、ＭＦＰとアクセスポイントとの間の接続が切断された場合に行われる再接続処理のシーケンスを示す図である。
【図１１】切断されたインフラ接続に使用されていたチャネル以外のチャネルによってアクセスポイントを検索する処理を含む再接続処理のシーケンスを示す図である。
【図１２】第１実施形態のＭＦＰが実行する再接続処理を示すフローチャートである。
【図１３】第２実施形態のＭＦＰが実行する再接続処理を示すフローチャートである。
【図１４】第３実施形態のＭＦＰが実行する再接続処理を示すフローチャートである。
【発明を実施するための形態】
【００１１】
以下に、図面を参照しながら、本発明の実施形態を例示的に詳しく説明する。但し、本実施形態に記載されている構成要素の相対配置、表示画面等は、特に、特定的な記載がない限りは、この発明の範囲をそれらのみに限定する趣旨のものではない。
【００１２】
（第１実施形態）
本実施形態の端末装置及び通信装置について説明する。端末装置として、本実施形態ではスマートホンを例示している。スマートホンとは、携帯電話の機能の他に、カメラや、ウェブブラウザ、電子メール機能等を搭載した多機能型の携帯電話のことである。なお、本発明を適用可能な端末装置は、スマートホンに限定されず、後述の通信装置と通信可能な装置であれば良い。例えば、端末装置として、デジタルカメラ、携帯端末、ノートＰＣ、タブレット端末、ＰＤＡ（Ｐｅｒｓｏｎａｌ  Ｄｉｇｉｔａｌ  Ａｓｓｉｓｔａｎｔ）、音楽再生デバイス等を適用可能である。また、通信装置として、本実施形態では、複写機能、ＦＡＸ機能、印刷機能を備えるマルチファンクションプリンタ（以後、ＭＦＰ）を例示しているが、これに限定されず、端末装置と通信を行うことが可能な装置であれば、種々のものを適用可能である。例えば、プリンタであれば、インクジェットプリンタ、フルカラーレーザービームプリンタ、モノクロプリンタ等を適用可能である。また、プリンタのみならず複写機やファクシミリ装置、スマートホン、携帯端末、ノートＰＣ、タブレット端末、ＰＤＡ、デジタルカメラ、音楽再生デバイス、ストレージ等も適用可能である。その他、単一の機能を備えるシングルファンクションプリンタ（以後、ＳＦＰ）も適用可能である。
【００１３】
＜システム構成＞
まず、本実施形態を実現するためのシステム構成について、図１〜図６を用いて説明する。
【００１４】
図１は、本実施形態の通信システムの構成の一例を示す図である。このシステムは、アクセスポイント４００、端末装置２００及びＭＦＰ３００を含むものとする。
【００１５】
端末装置２００は、本実施形態の端末装置である。ＭＦＰ３００は、本実施形態の通信装置である。また、ＭＦＰ３００と端末装置２００は、それぞれの装置外部のアクセスポイント４００を介してＷＬＡＮ（Ｗｉｒｅｌｅｓｓ  Ｌｏｃａｌ  Ａｒｅａ  Ｎｅｔｗｏｒｋ）接続し、相互に通信することが可能である。また、ＭＦＰ３００や端末装置２００は、それぞれの装置自身がアクセスポイントとして動作することもできる。そのため、例えばどちらか一方の装置がアクセスポイントとなり、もう一方の装置が当該アクセスポイントに接続することで、端末装置２００とＭＦＰ３００はアクセスポイント４００を介さずに直接無線ＬＡＮ接続することも可能である。また、端末装置２００とＭＦＰ３００は共にＷＬＡＮの機能を有するため、認証処理を実行することによってピアツーピア（以後、Ｐ２Ｐ）の通信が可能となる。なお、各装置は、アクセスポイントとして動作する場合、通信相手の装置と無線ＬＡＮを形成し、ビーコン（Ｂｅａｃｏｎ）信号を定期的に送信する。さらに、各装置は、アクセスポイントとして動作する場合、無線通信のために使用されるチャネルを決定したり、通信相手の装置から送信される接続情報（パスワード等）の認証処理を行う。
【００１６】
アクセスポイントとクライアントから構成される無線通信システムについて説明する。アクセスポイントとなる装置は、まず、ビーコン信号を送信する。そして、クライアントは、ビーコン信号を受信すると、アクセスポイントに機器探索コマンド（Ｐｒｏｂｅ  Ｒｅｑｕｅｓｔフレーム）を送信して通信相手となる装置（通信相手装置）を探索して発見する。探索側の装置（クライアント）は、機器探索コマンドに、種々の属性（パラメータ）を付随することが可能である。特にＰ２Ｐ無線接続の場合には、機器探索コマンドに、Ｐ２Ｐ無線接続に関する情報（Ｐ２Ｐエレメント）が含まれている。そして、アクセスポイントが、受信した機器探索コマンドを参照して応答コマンド（Ｐｒｏｂｅ  Ｒｅｓｐｏｎｓｅフレーム）を送信すると、相互に相手側の装置を発見することができる（装置探索（Ｄｉｓｃｏｖｅｒｙ））。以降、装置の種類を示す機器情報やＩＰアドレスの確認等のシーケンスが実行され、その後に、印刷等の各種アプリケーションの実行が可能となる。
【００１７】
図２は端末装置２００の外観を示す図である。
【００１８】
ＷＬＡＮユニット２０１は、ＷＬＡＮによって無線通信を行うためのユニットである。ＷＬＡＮユニット２０１は、例えばＩＥＥＥ８０２．１１シリーズに準拠したＷＬＡＮシステムにおけるデータ（パケット）通信が可能であるものとする。すなわち、ＷＬＡＮユニット２０１は、例えば、Ｗｉ−Ｆｉ（登録商標）による通信を実行可能であるものとする。ＷＬＡＮユニット２０１は、ＷＬＡＮ接続を確立するための、ビーコン検知処理や認証処理、ＷＬＡＮ接続を確立した通信装置への印刷ジョブの送信等の機能を担う。また、ＷＬＡＮユニット２０１は、Ｗｉ−Ｆｉ  Ｄｉｒｅｃｔ（登録商標）（以下、ＷＦＤ）モード、ソフトウェアＡＰモード、アドホックモード、インフラストラクチャモードによる通信などが可能である。ＷＦＤモードによる通信、ソフトウェアＡＰモードによる通信、アドホックモードによる通信とは、通信相手装置（ＭＦＰ３００等）とダイレクトに（外部装置を介さず）通信することを指す。また、インフラストラクチャモードによる通信とは、ネットワーク上に設置された外部装置（アクセスポイント４００等）を介して、通信相手装置と通信することを指す。
【００１９】
表示部２０２は、例えば、ＬＣＤ方式の表示機構を備えたディスプレイである。具体的には、表示部２０２は、ボタンアイコンやソフトウェアキーボードの表示を行う。
【００２０】
操作部２０３は、タッチパネル方式の操作機構を備えており、ユーザによる操作を検知する。具体的には、操作部２０３は、表示部２０２が表示するボタンアイコンやソフトウェアキーボードにユーザが触れることによって発生する操作イベントを検知する。
【００２１】
電源キー２０４は電源をオン及びオフをする際に用いられるハードキーである。
【００２２】
図３はＭＦＰ３００の外観を示す図である。原稿台３０１は、スキャナ（読取部）によって読み取られる原稿が載せられるガラス状の透明な台である。原稿蓋３０２は、スキャナによって読取が行われる際に原稿を押さえたり、読取の際に原稿に照射される読取光が外部に漏れないようにしたりするための蓋である。
【００２３】
印刷用紙挿入口３０３は様々なサイズの用紙をセット可能な挿入口である。印刷用紙挿入口３０３にセットされた用紙は、図示しない印刷部に一枚ずつ搬送され、印刷部で印刷が行われて印刷用紙排出口３０４から排出される。
【００２４】
操作表示部３０５は、文字入力キー、カーソルキー、決定キー、取り消しキー等のキーと、ＬＥＤ（発光ダイオード）やＬＣＤ（液晶ディスプレイ）などから構成され、ユーザから、ＭＦＰとしての各種機能の起動や各種設定を受け付けることができる。なお、操作表示部３０５は、タッチパネルで構成されてもよい。
【００２５】
ＷＬＡＮアンテナ３０６は、ＷＬＡＮによって通信するためのアンテナである。
【００２６】
図４は、操作表示部３０５に表示される画面の一例を示した図である。図４（ａ）は、ＭＦＰ３００が印刷やスキャン等の動作をしていない状態（アイドル状態）で操作表示部３０５に表示される画面である。ＭＦＰ３００は、操作表示部３０５に画面が表示されている状態で、ユーザからキー操作やタッチパネル操作を受け付けることで、コピーやスキャン、インターネット通信を利用したクラウド機能のメニュー表示や各種設定、機能を実行可能である。操作表示部３０５は、上述の操作を受け付けることによって、シームレスに図４（ａ）に示す画面とは異なる画面を表示することができる。図４（ｂ）は、その一例である。ＭＦＰ３００は、操作表示部３０５に図４（ｂ）に示す画面が表示されている状態で、ユーザによってキー操作やタッチパネル操作を受け付けることで、プリントやフォト機能の実行やＬＡＮ設定の変更を実行可能である。図４（ｃ）は、操作表示部３０５に図４（ｂ）の画面が表示されている状態で、ＬＡＮ設定を実行するための操作がユーザによって行われた際に表示される画面である。ＭＦＰ３００は、図４（ｃ）に示す画面における「無線ＬＡＮ」がユーザ操作によって選択された場合、インフラストラクチャモードの有効／無効設定を行う。また、ＭＦＰ３００は、図４（ｃ）に示す画面における「無線ダイレクト」がユーザ操作によって選択された場合、ＷＦＤモードの有効／無効設定を行う。
【００２７】
図５は、端末装置２００の構成を示すブロック図である。
【００２８】
端末装置２００は、装置自身のメインの制御を行うメインボード５０１と、ＷＬＡＮ通信を行うＷＬＡＮユニット５１７とを有する。
【００２９】
メインボード５０１において、ＣＰＵ（中央演算処理部）５０２は、システム制御部であり、ＲＯＭ５０３に格納されたプログラムの実行やハードウェアの起動により、端末装置２００の全体を制御する。なお、端末装置２００が実行する後述の処理は、ＣＰＵ５０２による制御によって実行される。
【００３０】
ＲＯＭ５０３は、ＣＰＵ５０２が実行する制御プログラムや組込オペレーティングシステム（ＯＳ）プログラム等を記憶する。本実施形態では、ＲＯＭ５０３に記憶されている各制御プログラムは、ＲＯＭ５０３に記憶されている組込ＯＳの管理下で、スケジューリングやタスクスイッチ等のソフトウェア制御を行う。
【００３１】
ＲＡＭ５０４は、ＳＲＡＭ（Ｓｔａｔｉｃ  Ｒａｎｄｏｍ  Ａｃｃｅｓｓ  Ｍｅｍｏｒｙ）やＤＲＡＭ（Ｄｙｎａｍｉｃ  Ｒａｎｄｏｍ  Ａｃｃｅｓｓ  Ｍｅｍｏｒｙ）等で構成されるメモリである。ＲＡＭ５０４は、プログラム制御変数等のデータや、ユーザが登録した設定値や端末装置２００の管理データ等のデータを記憶する。なお、ＲＡＭ５０４には、各種ワーク用バッファ領域が設けられている。
【００３２】
画像メモリ５０５は、ＤＲＡＭ等のメモリで構成され、ＷＬＡＮユニット５１７を介して受信した画像データや、データ蓄積部５１３から読み出した画像データを、ＣＰＵ５０２によって処理するために一時的に記憶する。
【００３３】
不揮発性メモリ５１２は、フラッシュメモリ（ｆｌａｓｈ  ｍｅｍｏｒｙ）等のメモリで構成され、電源がオフされても保持されるべきデータを記憶する。
【００３４】
なお、端末装置２００が保持するメモリ構成はこの形態に限定されるものではなく、用途や目的に応じて、その数や特性、記憶容量等が適宜変更されても良い。例えば、画像メモリ５０５とＲＡＭ５０４を共有させてもよいし、データ蓄積部５１３にデータのバックアップ等が行われてもよい。また、本実施形態では、画像メモリ５０５にＤＲＡＭが用いられているものとするが、例えば、ハードディスク（ＨＤＤ）や不揮発性メモリ等の他の記憶媒体を使用しても良い。
【００３５】
データ変換部５０６は、種々の形式のデータの解析や、画像データに対する色変換、画像変換等のデータ変換を行う。
【００３６】
電話部５０７は、電話回線の制御を行い、スピーカ部５１４を介して入出力される音声データを処理することで電話による通信を実現する。
【００３７】
操作部５０８は、操作部２０３から出力される信号を制御し、ユーザによる操作を検知する。
【００３８】
ＧＰＳ（Ｇｌｏｂａｌ  Ｐｏｓｉｔｉｏｎｉｎｇ  Ｓｙｓｔｅｍ）５０９は、端末装置２００の現在の緯度や経度等の位置情報を取得する。
【００３９】
表示部５１０は、表示部２０２に表示させる画面の内容を電子的に制御しており、表示部２０２に、各種入力操作画面や、ＭＦＰ３００の動作状況画面、ステータス状況画面の表示等を行うことができる。
【００４０】
カメラ部５１１は、レンズを介して入力された画像を電子的に記録して符号化する機能を有している。カメラ部５１１で撮影された画像に対応する画像データはデータ蓄積部５１３に保存される。
【００４１】
スピーカ部５１４は電話機能のための音声を入力または出力する機能や、その他、アラーム通知等の機能を実現する。
【００４２】
電源部５１５は、携帯可能な電池であり、端末装置２００内への電力供給制御を行う。端末装置２００の電源状態には、電池に残量が無い電池切れ状態、電源キー２０４が押下されていない電源オフ状態、通常起動している起動状態、起動しているが起動状態よりも消費電力が小さい省電力状態がある。
【００４３】
ＷＬＡＮユニット５１７は、ＷＬＡＮによって無線通信を行うためのユニットであり、前述したＷＬＡＮユニット２０１に対応する。ＷＬＡＮユニット５１７は、例えばＩＥＥＥ８０２．１１シリーズに準拠したＷＬＡＮシステムにおけるデータ（パケット）通信が可能であるものとする。すなわち、ＷＬＡＮユニット５１７は、例えば、Ｗｉ−Ｆｉ（登録商標）による通信を実行可能であるものとする。ＷＬＡＮユニット５１７は、ＷＬＡＮ接続を確立するための、ビーコン検知処理や認証処理、ＷＬＡＮ接続を確立した通信装置への印刷ジョブの送信等の機能を担う。ＷＬＡＮユニット５１７により、端末装置２００は、ＭＦＰ３００等の他デバイスとのデータ通信を行う。ＷＬＡＮユニット５１７は、データをパケットに変換し、他デバイスにパケット送信を行ったり、逆に、外部の他デバイスからのパケットを、元のデータに復元してＣＰＵ５０２に対して送信したりする。なお、ＷＬＡＮユニット５１７はバスケーブル５１６介してメインボード５０１に接続されている。
【００４４】
メインボード５０１内の各種構成要素（５０３〜５１５及び５１７）は、ＣＰＵ５０２が管理するシステムバス５１９を介して、相互に接続されている。
【００４５】
図６はＭＦＰ３００の構成を示すブロック図である。
【００４６】
ＭＦＰ３００は、装置自身のメインの制御を行うメインボード６０１と、ＷＬＡＮ通信を行うＷＬＡＮユニット６１６とを有する。
【００４７】
メインボード６０１において、ＣＰＵ６０２は、システム制御部であり、ＲＯＭ６０３に格納されたプログラムの実行やハードウェアの起動により、ＭＦＰ３００の全体を制御する。なお、ＭＦＰ３００が実行する後述の処理は、ＣＰＵ６０２による制御によって実行される。
【００４８】
ＲＯＭ６０３は、ＣＰＵ６０２が実行する制御プログラムや組込ＯＳプログラム等を記憶する。本実施形態では、ＲＯＭ６０３に記憶されている各制御プログラムは、ＲＯＭ６０３に記憶されている組込ＯＳの管理下で、スケジューリングやタスクスイッチ等のソフトウェア制御を行う。
【００４９】
ＲＡＭ６０４は、ＳＲＡＭやＤＲＡＭ等で構成されるメモリである。ＲＡＭ６０４は、プログラム制御変数等のデータや、ユーザが登録した設定値、ＭＦＰ３００の管理データ等のデータを記憶する。なお、ＲＡＭ６０４には、各種ワーク用バッファ領域が設けられている。
【００５０】
不揮発性メモリ６０５は、フラッシュメモリ等のメモリで構成され、電源がオフされても保持されるべきデータを記憶する。
【００５１】
画像メモリ６０６は、ＤＲＡＭ等のメモリで構成され、ＷＬＡＮユニットを介して受信した画像データや、符号復号化処理部６１１で処理した画像データなどを蓄積する。
【００５２】
また、端末装置２００が保持するメモリ構成と同様に、ＭＦＰ３００が保持するメモリ構成はこの形態に限定されるものではなく、用途や目的に応じて、その数や特性、記憶容量等が適宜変更されても良い。
【００５３】
データ変換部６０８は、種々の形式のデータの解析や、画像データから印刷データへの変換等を行う。
【００５４】
読取制御部６０７は、読取部６０９（例えば、ＣＩＳイメージセンサ（密着型イメージセンサ））を制御して、原稿上の画像を光学的に読み取る。そして読取制御部６０７は、読み取った画像を電気的な画像データに変換した画像信号を出力する。このとき読取制御部６０７は、２値化処理や中間調処理等の各種画像処理を施してから画像信号を出力しても良い。
【００５５】
操作表示部６１０は、操作表示部３０５に対応し、ユーザから、ＭＦＰとしての各種機能の起動や各種設定を受け付ける。
【００５６】
符号復号化処理部６１１は、ＭＦＰ３００で扱う画像データ（ＪＰＥＧ、ＰＮＧ等）に対して符号復号化処理や、拡大縮小処理を行う。
【００５７】
給紙部６１３は印刷のための記録媒体を保持する。なお、給紙部６１３は、複数種類の記録媒体を一つの装置に保持するために、複数用意されていても良い。
【００５８】
印刷制御部６１４は、給紙部６１３を制御し、印刷部６１２に記録媒体を供給することができる。なお、給紙部６１３が複数用意されている場合、印刷制御部６１４は、複数の給紙部６１３のうちいずれの給紙部から給紙を行うかの制御を行うことができる。
【００５９】
印刷制御部６１４は、印刷される画像データに対し、スムージング処理や印刷濃度補正処理、色補正等の各種画像処理を施してから印刷部６１２に出力する。
【００６０】
印刷部６１２は、インクタンクから供給されるインクをプリントヘッドから吐出させて画像を印刷するインクジェットプリンタである。なお、印刷部６１２は、インクジェットプリンタでなくとも良く、例えば、レーザービームプリンタ等であっても良い。また、印刷制御部６１４は、印刷部６１２の情報を定期的に読み出してＲＡＭ６０４の情報を更新する。具体的には、印刷制御部６１４は、インクタンクの残量やプリントヘッドの状態等のステータス情報を更新する。ＷＬＡＮユニット６１６は、ＷＬＡＮユニット２０１に対応するため、説明を省略する。ＷＬＡＮユニット６１６はバスケーブル６１５を介してメインボード６０１に接続されている。なお、端末装置２００及びＭＦＰ３００は各装置が備えるＷＬＡＮユニットによってＷｉ−Ｆｉ  Ｄｉｒｅｃｔ（ＷＦＤ）をベースにした通信が可能であり、ソフトウェアアクセスポイント（ソフトウェアＡＰ）機能を有している。ソフトウェアＡＰ機能とは、当該機能を実行する装置を、ソフトウェアベースのアクセスポイントとして動作させるための機能である。
【００６１】
ＷＬＡＮユニット６１６は、端末装置２００が備えるＷＬＡＮユニットと同様の機能を有するため、説明を省略する。なお、ＷＬＡＮユニット６１６がＷＦＤモードによる通信、ソフトウェアＡＰモードによる通信、アドホックモードによる通信を行う場合、端末装置２００等の通信相手装置とダイレクトに（外部装置を介さず）通信する。また、ＷＬＡＮユニット６１６がインフラストラクチャモードによる通信を行う場合、ネットワーク上に設置された外部装置（アクセスポイント４００等）を介して、通信相手装置と通信する。
【００６２】
メインボード６０１内の各種構成要素（６０２〜６１４、６１６）は、ＣＰＵ６０２が管理するシステムバス６１８を介して、相互に接続されている。
【００６３】
＜Ｐ２Ｐ（Ｐｅｅｒ  ｔｏ  Ｐｅｅｒ）方式の通信モードについて＞
ＷＬＡＮにおける通信においてＰ２Ｐ方式の接続を確立するために、本実施形態のＭＦＰ３００は、Ｐ２Ｐモード（ソフトウェアＡＰモード又はＷｉ−Ｆｉ  Ｄｉｒｅｃｔ（ＷＦＤ）モード）で動作するものとする。なお、本実施形態では、Ｐ２Ｐ方式の接続とは、外部装置を介さずに装置同士が直接無線接続する形態を指す。
【００６４】
なお、ＷＦＤは、ＷｉＦｉ  Ａｌｌｉａｎｃｅによって策定された規格である。ＷＦＤ対応機器である端末装置２００及びＭＦＰ３００は、アクセスポイントとして動作するためのソフトウェアアクセスポイント（ソフトＡＰ）機能を有している。そのため、端末装置２００及びＭＦＰ３００は、ＷＦＤにより、他のアクセスポイントを介さずに相互に直接、無線接続することが可能となる。なお、複数のＷＦＤ対応機器のうちいずれがソフトＡＰとして動作するかは、ＧｒｏｕｐＯｗｎｅｒＮｅｇｏｔｉａｔｉｏｎというシーケンスに従って決定される。以下、ＷＦＤ対応機器であり且つアクセスポイントの役割を果たす装置を特に、ＧｒｏｕｐＯｗｎｅｒという。
【００６５】
なお、各モードによって通信する装置からなる通信システムでは、探索側の装置が機器探索コマンド（例えば、Ｐｒｏｂｅ  Ｒｅｑｕｅｓｔフレーム）を使用して通信相手となる装置（通信相手装置）を探索して発見する。探索側の装置は、機器探索コマンドに、種々の属性（パラメータ）を付随することが可能である。特にＰ２Ｐ方式による接続のための探索時には、機器探索コマンドに、Ｐ２Ｐ無線接続に関する情報（Ｐ２Ｐエレメント）が含まれている。機器探索コマンドに応答する装置は、探索コマンドに属性が指定されていた場合には、通常、探索側の装置のモードの仕様および前提となる仕様（ＷＦＤであればＷｉ−Ｆｉ）で規定されている範囲で、解釈可能な属性に最大限応答をする事が推奨されている。また、機器探索コマンドに応答する装置は、機器探索コマンドに付随する情報（上記属性を含む）が解釈できない場合であっても、解釈できる情報のみを元に応答することも可能である。
【００６６】
以下、各モードにおける無線接続シーケンスについて、図７、図８を用いて説明する。
【００６７】
図７はソフトウェアＡＰモードにおける無線接続シーケンスを示す図である。なお、本シーケンスにおいて各装置が実行する処理は、各装置が備えるＲＯＭ等のメモリに格納された各種プログラムを、各装置が備えるＣＰＵがＲＡＭに読み出して実行することにより実現される。また、本シーケンスは、端末装置２００がクライアント、ＭＦＰ３００がソフトウェアＡＰとして動作し、ＭＦＰ３００がビーコン（Ｂｅａｃｏｎ）信号を発信している状態で開始されるものとする。なお、ＭＦＰ３００は、ソフトウェアＡＰとして動作するための所定の操作をユーザから受け付けた場合、ソフトウェアＡＰとしての動作を開始する。なお、所定の操作とは例えば、ＬＡＮ設定画面における、ソフトウェアＡＰとしての動作を開始させるための所定のアイコンを選択する操作である。
【００６８】
まず、Ｓ７０１にて、端末装置２００は、端末装置２００が利用可能なチャネルを順に使用して機器探索コマンドを送信し、ソフトウェアＡＰとなる装置を検索する。
【００６９】
続いて、Ｓ７０２にて、ＭＦＰ３００は、端末装置２００から送信された機器探索コマンドを受信した場合、機器探索コマンドに対する応答である機器探索応答を端末装置２００に送信する。なお、ＭＦＰ３００は、自身が使用しているチャネル以外のチャネルで送信された機器探索コマンドに対しては機器探索応答を送信しない。例えば、ＭＦＰ３００が使用可能なチャネルが第４チャネルであるとすると、ＭＦＰ３００は、第１チャネルを使用して送信された装置探索リクエストコマンドに対しては応答コマンドを送信しない。そのため、端末装置２００は、第１チャネルを使用して機器探索コマンドを送信した後、一定時間以上ＭＦＰ３００からの応答がない場合には、第２チャネルを使用して装置探索リクエストコマンドを送信する。端末装置２００は、以上のような試行を、使用するチャネルの番号をインクリメントしながら繰り返す。そして例えば、ＭＦＰ３００は、端末装置２００が第４チャネルを使用して送信した機器探索コマンドを受信すると、端末装置２００に機器探索応答を送信する。これにより、端末装置２００は、ＭＦＰ３００を発見することになる。なお、機器探索応答の送信に利用されたチャネルが、以後、端末装置２００とＭＦＰ３００との間の通信に利用されるチャネルとして決定される。すなわち、端末装置２００とＭＦＰ３００との間の通信に利用されるチャネルは、ソフトＡＰとして動作するＭＦＰ３００によって決定される。
【００７０】
続いて、Ｓ７０３にて、端末装置２００とＭＦＰ３００との間で、公知の無線接続の確立処理を実行する。具体的には、接続要求の送信や、接続要求の認証、ＩＰアドレスの割当等の処理が行われる。なお、端末装置２００とＭＦＰ３００との間での無線接続の確立処理において送受信されるコマンドやパラメータについては、Ｗｉ−Ｆｉ規格で規定されているものが用いられればよく、ここでの説明は省略する。
【００７１】
図８はＷＦＤモードにおける無線接続シーケンスを示す図である。なお、本シーケンスにおいて各装置が実行する処理は、各装置が備えるＲＯＭ等のメモリに格納された各種プログラムを、各装置が備えるＣＰＵがＲＡＭに読み出して実行することにより実現される。また、本処理は、各装置がＷＦＤ機能を実行するための所定のアプリケーションを起動している状態で、ＷＦＤによる接続を確立するための所定の操作をユーザから受け付けた場合に開始されるものとする。
【００７２】
まず、Ｓ８０１にて、端末装置２００は、機器探索コマンドを送信し、通信相手の装置として、ＷＦＤ機能に対応している装置を検索する。
【００７３】
続いて、Ｓ８０２にて、ＭＦＰ３００は、受信した機器探索コマンドに対する応答である機器探索応答を端末装置２００に送信する。これにより、端末装置２００は、ＷＦＤ機能に対応している装置として、ＭＦＰ３００を発見することになる。なお、端末装置２００がＭＦＰ３００を発見した後、各装置の間で、各装置が供給可能なサービスや機能に関する情報を交換する処理が行われても良い。
【００７４】
続いて、Ｓ８０３にて、端末装置２００とＭＦＰ３００との間で、ネゴシエーション処理を行う。ネゴシエーション処理とは、各装置が保持する所定の設定値を用いて、Ｐ２Ｐ方式による通信における役割（ＧｒｏｕｐＯｗｎｅｒとクライアント）を決定する処理である。なお、ネゴシエーション処理により各装置の役割が決定された場合、各装置の間で、Ｗｉ−Ｆｉ  Ｄｉｒｅｃｔによる通信を行うためのパラメータが交換される（パラメータ交換フェーズ）。パラメータ交換フェーズは、例えば、Ｗｉ−Ｆｉ  Ｐｒｏｔｅｃｔｅｄ  Ｓｅｔｕｐによって自動的に無線ＬＡＮセキュリティのパラメータが交換されることに対応する。なお、ネゴシエーションが行われた後、ＧｒｏｕｐＯｗｎｅｒが、以後の通信に利用するチャネルを決定する。
【００７５】
その後、Ｓ８０４にて、各装置は、交換したパラメータに基づいて、無線接続の確立処理を実行する。
【００７６】
なお、ＭＦＰ３００は、ＷＦＤモードにおける無線接続シーケンスにおいてネゴシエーションを実行するか否かの設定をユーザから受け付け可能であっても良い。ＭＦＰ３００は、ネゴシエーションを実行しないものとして設定されている場合は、自身がＧｒｏｕｐＯｗｎｅｒとして動作する。
【００７７】
＜インフラストラクチャモードについて＞
上述したように、インフラストラクチャモードとは、通信を行う装置（例えば、端末装置２００とＭＦＰ３００）が、ネットワークを統括する外部装置（例えば、アクセスポイント４００）を介して通信する形態である。
【００７８】
図９は、インフラストラクチャモードにおける無線接続シーケンスを示す図である。なお、本シーケンスにおいて各装置が実行する処理は、各装置が備えるＲＯＭ等のメモリに格納された各種プログラムを、各装置が備えるＣＰＵがＲＡＭに読み出して実行することにより実現される。
【００７９】
まず、Ｓ９０１にて、端末装置２００は、端末装置２００が利用可能なチャネルを順に使用して機器探索コマンドを送信し、ソフトウェアＡＰとなる装置を検索する。
【００８０】
続いて、Ｓ９０２にて、アクセスポイント４００は、端末装置２００から送信された機器探索コマンドを受信した場合、機器探索コマンドに対する応答である機器探索応答コマンドを端末装置２００に送信する。なお、Ｓ７０２の説明において述べたように、アクセスポイント４００は、自身が使用しているチャネルで送信された機器探索コマンドに対してのみ機器探索応答コマンドを送信する。これにより、端末装置２００は、アクセスポイント４００を発見することになる。なお、機器探索応答コマンドの送信に利用されたチャネルが、以後、端末装置２００とアクセスポイント４００との間の通信に利用されるチャネルとして決定される。すなわち、インフラストラクチャモードによる通信に利用されるチャネルは、アクセスポイント４００によって決定される。
【００８１】
続いて、Ｓ９０３にて、端末装置２００とアクセスポイント４００との間で、公知の無線接続の確立処理を実行する。具体的には、接続要求の送信や、接続要求の認証、ＩＰアドレスの割当等の処理が行われる。なお、Ｐ２Ｐモードと同様、端末装置２００とＭＦＰ３００との間での無線接続の確立処理において送受信されるコマンドやパラメータについては、Ｗｉ−Ｆｉ規格で規定されているものが用いられればよく、ここでの説明は省略する。
【００８２】
Ｓ９０４〜Ｓ９０６では、Ｓ９０１〜Ｓ９０３と同様の処理が、ＭＦＰ３００とアクセスポイント４００との間で実行される。なお、このときアクセスポイント４００は、機器探索応答コマンドを、端末装置２００との通信に利用しているチャネルを用いてＭＦＰ３００に送信する。すなわち、アクセスポイント４００は、ＭＦＰ３００及び端末装置２００と、同一のチャネルを用いて通信する。
【００８３】
これにより、アクセスポイント４００を介してＭＦＰ３００と端末装置２００とが接続することとなり、ＭＦＰ３００と端末装置２００との間で、アクセスポイント４００を介した通信が可能となる。
【００８４】
＜同時動作について＞
本実施形態のＭＦＰ３００は、インフラストラクチャモードによる通信と、Ｐ２Ｐモードによる通信を、同時に（並行して）実行可能であるものとする。そのため、ＭＦＰ３００は、インフラストラクチャモードによって通信するための接続と、Ｐ２Ｐモードによって通信するための接続とを同時に（並行して）維持することができる。以後、インフラストラクチャモードによって通信するための接続（アクセスポイント４００を介した端末装置２００との接続）をインフラ接続という。また、Ｐ２Ｐモードによって通信するための接続（アクセスポイント４００を介さない端末装置２００との接続）をＰ２Ｐ接続という。Ｐ２Ｐ接続は、ＭＦＰ３００又は端末装置２００がＡＰとなって構築された無線ネットワークにおける接続である。インフラ接続は、アクセスポイント４００により構築された無線ネットワークにおける接続である。また、以後、インフラ接続とＰ２Ｐ接続を同時に（並行して）確立し、インフラ接続とＰ２Ｐ接続を介して同時に（並行して）通信可能に動作することを、同時動作という。
【００８５】
＜同時動作におけるチャネル決定シーケンス＞
インフラストラクチャモードによる通信及びＰ２Ｐモードによる通信は、特定の周波数帯域（特定のチャネル）を使用して行われる。そのため、インフラストラクチャモードによる通信とＰ２Ｐモードによる通信のいずれにおいても、通信が開始される前に、まず、各装置間の通信・接続に利用されるチャネルが決定される必要がある。なお、１つの無線ＩＣチップに同時に複数のチャネルを割り当てて通信させる形態では、通信を行う各装置の構成や各装置が実行する処理が複雑となってしまう。従って、例えば、ＭＦＰ３００が同時動作する場合は、各モードにおける通信において、共通のチャネルが使用されることが望ましい。すなわち、ＭＦＰ３００は、同時動作している場合においても、１つのチャネルのみを使用することが望ましい。そのため、本実施形態では、ＷＬＡＮユニット６１６は、所定のチャネルによる通信を実現する無線ＩＣチップを１つのみ有するものとし、ＭＦＰ３００は、同時に複数のチャネルを用いて通信しないものとする。
【００８６】
上述したように、ＭＦＰ３００がＧｒｏｕｐＯｗｎｅｒまたはソフトＡＰとして動作しているのであれば、Ｐ２Ｐ接続に利用されるチャネルは、ＭＦＰ３００が自由に決定可能である。しかしながら、インフラ接続に利用されるチャネルは、アクセスポイント４００によって決定される。そのため、ＭＦＰ３００は、同時動作する場合は、アクセスポイントによって決定された、インフラ接続に利用するチャネルを、Ｐ２Ｐ接続に利用するチャネルとして決定することが好ましい。
【００８７】
なお、本実施形態では、インフラ接続、及びＰ２Ｐ接続では、いずれもＷｉ−Ｆｉ標準規格で規定された、２．４ＧＨｚ周波数帯の１〜１３チャネルが利用されるものとする。しかしながら、異なる周波数帯ではチャネル数が増えたり、国や地域によっては周波数帯の規制により、同じ周波数帯でも１〜１１チャネルに限定されたりする。そのため、ＭＦＰ３００によって利用されるチャネルは、１〜１３チャネルに限定されるものではない。また、例えば、ＩＥＥＥ  ８０２．１１ａの規格では、５ＧＨｚの周波数帯の３６〜１４０チャネルが利用可能である。また、ＭＦＰ３００は、２．４ＧＨｚ（１〜１３チャネル）と５ＧＨｚ（３６〜１４０チャネル）の周波数帯を使う場合、利用可能なチャネル数は、どちらか一方の周波数帯を使う形態と比較して多くなる。そのため、両周波数帯が用いられる場合、アクセスポイントに機器探索コマンドを送信すべきチャネル数は増える。なお、ＭＦＰ３００は、２．４ＧＨｚ（１〜１３チャネル）と５ＧＨｚ（３６〜１４０チャネル）の周波数帯を使う場合、どちらかの周波数帯（例えば５ＧＨｚ）に対応するチャネルを優先して用いてＡＰサーチを開始してもよい。
【００８８】
＜再接続処理について＞
例えば、電波状況が悪くなったり、アクセスポイント４００に対するユーザ操作により、インフラ接続に用いられるチャネルの設定が変更されること等を切断要因として、ＭＦＰ３００とアクセスポイント４００との間の無線接続が切断される場合がある。この場合、ＭＦＰ３００は、アクセスポイント４００との再接続を試みる。ここでは、ＭＦＰ３００がアクセスポイント４００と再接続するために実行する処理（再接続処理）について説明する。
【００８９】
図１０は、ＭＦＰ３００が同時動作している状態で、ＭＦＰ３００とアクセスポイント４００との接続が切断された場合に行われる再接続処理のシーケンスを示す図である。なお、本シーケンスにおいて各装置が実行する処理は、各装置が備えるＲＯＭ等のメモリに格納された各種プログラムを、各装置が備えるＣＰＵがＲＡＭに読み出して実行することにより実現される。また、本シーケンスが示す処理は、ＭＦＰ３００が、ソフトウェアＡＰとして動作している状態で開始されるものとする。
【００９０】
まず、Ｓ１００１にて、図９の説明において述べた処理と同様にして、ＭＦＰ３００とアクセスポイント４００が無線接続を確立し、アクセスポイント４００を介してＭＦＰ３００と通信相手装置がインフラ接続を確立する。なおここでは、ＭＦＰ３００とアクセスポイント４００との接続（インフラ接続）に利用されるチャネルは、第ｐチャネルとして決定されたものとする。
【００９１】
また、Ｓ１００２にて、図８の説明において述べた処理と同様にして、ＭＦＰ３００と端末装置２００がＰ２Ｐ接続を確立する。なお、ＭＦＰ３００とアクセスポイント４００との間の接続に利用されるチャネルが第ｐチャネルであるため、ＭＦＰ３００と端末装置２００との接続（Ｐ２Ｐ接続）に利用されるチャネルも第ｐチャネルとして決定される。
【００９２】
続いて、Ｓ１００３にて、上述した切断要因等により、ＭＦＰ３００とアクセスポイント４００との接続（インフラ接続）が切断される。すなわち、ＭＦＰ３００が、アクセスポイント４００を介した通信相手装置とのインフラ接続と、端末装置２００とのＰ２Ｐ接続を並行して確立している状態で、ＭＦＰ３００とアクセスポイント４００との接続が切断される。このとき具体的には、アクセスポイント４００が、切断コマンドをＭＦＰ３００に送信する。なお、図１０では、Ｓ１００３にてＭＦＰ３００とアクセスポイント４００との接続が切断されたとしても、端末装置２００とＭＦＰ３００のＰ２Ｐ接続は維持されているものとする。
【００９３】
なお、電波状況が悪い場合に、アクセスポイント４００から切断パケットがＭＦＰ３００に送信される以外のケースで、ＭＦＰ３００が切断する場合がある。アクセスポイント４００から定期的なビーコンを送信しており、ＭＦＰ３００はそのビーコンを検知する。例えばアクセスポイント４００は１００ミリ秒間隔でビーコンを送信している場合に、電波状況が悪くなると、ＭＦＰ３００は秒単位でビーコン受信をロストした状態となり得る。ＭＦＰ３００はビーコン受信のタイムアウト時間を予め設定しておき、タイムアウトした場合は、ビーコン・ロスと判断して自ら切断状態とする。ビーコン・ロスのタイムアウト時間は、５〜１５秒程度が望ましい。その場合、Ｓ１００３にて、アクセスポイント４００から切断パケットは送信されないが、ＭＦＰ３００とアクセスポイント４００との接続は切断された状態になる。
【００９４】
続いて、Ｓ１００４にて、ＭＦＰ３００は、アクセスポイント４００を再度発見して接続するために、切断されたインフラ接続において使用されていて且つ現在Ｐ２Ｐ接続において使用している第ｐチャネルを使用してアクセスポイント４００の検索を行う。すなわち、ＭＦＰ３００は、第ｐチャネルを使用して装置探索リクエストコマンドをアクセスポイント４００に送信する。なおこのとき、ＭＦＰ３００は、装置探索リクエストコマンドの送信を複数回実行しても良い。また、以後、アクセスポイント４００の検索をＡＰサーチ（アクセスポイント検索処理）という。なお、Ｓ１００４にて、最初に第ｐチャネルで装置探索リクエストを行うのは前述したように、同時動作中は、例えＡＰサーチのための通信であったとしても、複数の通信モードで共通のチャネルのみを使い続けることが望ましいためである。
【００９５】
続いて、Ｓ１００５にて、装置探索リクエストコマンドを受信したアクセスポイント４００は、装置探索リクエストコマンドに対する応答である機器探索応答コマンドをＭＦＰ３００に送信する。その後、Ｓ１００６にて公知の接続処理が実行されることにより、ＭＦＰ３００とアクセスポイント４００との接続が再開される。
【００９６】
これにより、ＭＦＰ３００は、ＭＦＰ３００とアクセスポイント４００との接続が一旦切断されても、第ｐチャネルを使用して、インフラ接続を再度確立することができる。
【００９７】
しかしながら例えば、接続の切断後に、アクセスポイント４００が自律的に周囲の電波環境の混雑状況を参照して使用チャネルを比較的空いているチャネルに遷移させた場合等には、アクセスポイント４００が利用するチャネルが、接続の切断前から変化する。また、アクセスポイント４００が接続に利用するチャネルが変更されたことが、そもそも接続が切断された要因である場合もある。
【００９８】
アクセスポイント４００が利用するチャネルが変更された場合、アクセスポイント４００は、変更後のチャネルにより送信される装置探索リクエストコマンドにしか応答しない。そのため、ＭＦＰ３００は、切断されたインフラ接続に使用していたチャネル（つまり第ｐチャネル）によるＡＰサーチでは、アクセスポイント４００と再接続することができない。そこで本実施形態のＭＦＰ３００は、切断されたインフラ接続に使用していたチャネルによってＡＰサーチを実行した結果、再接続が実行できなかった場合に、切断されたインフラ接続に使用していたチャネル以外のチャネルによってＡＰサーチを実行する。図１１は、ＭＦＰ３００が、切断されたインフラ接続に使用していたチャネル以外のチャネルによってアクセスポイント４００を検索する処理を含む再接続処理のシーケンスを示す図である。なお、本シーケンスにおいて各装置が実行する処理は、各装置が備えるＲＯＭ等のメモリに格納された各種プログラムを、各装置が備えるＣＰＵがＲＡＭに読み出して実行することにより実現される。また、本シーケンスが示す処理は、ＭＦＰ３００が、ソフトウェアＡＰとして動作している状態で開始されるものとする。
【００９９】
Ｓ１１０１〜Ｓ１１０４までの処理は、Ｓ１００１〜Ｓ１００４までの処理と同様であるため、説明を省略する。なお、Ｓ１１０３において、ＭＦＰ３００とアクセスポイント４００との接続が切断された後、アクセスポイント４００が使用するチャネルが、第ｐチャネルから第ｑチャネルに変更されたものとする。
【０１００】
上述のようにアクセスポイント４００が使用するチャネルが変更されたため、ＭＦＰ３００は、Ｓ１１０４における第ｐチャネルを用いたＡＰサーチでは、アクセスポイント４００を検出することはできない。そのため、ＭＦＰ３００は、第ｐチャネルを用いたＡＰサーチを、アクセスポイント４００を検出することなく所定の回数繰り返した場合、Ｓ１１０５にて、第ｐチャネル以外のチャネルを使用したＡＰサーチを行う。具体的には、ＭＦＰ３００は、使用可能な全チャネルを第１チャネルから順に使用して、ＡＰサーチを行う。なお、ＭＦＰ３００は、各チャネルを使用したＡＰサーチにおいて、装置探索リクエストコマンドの送信を複数回実行しても良い。なお、このとき、ＭＦＰ３００が利用可能な全てのチャネルで装置探索リクエストが送信されなくとも良い。すなわち、ＭＦＰ３００とアクセスポイント４００との接続が切断される直前に、ＭＦＰ３００とアクセスポイント４００との間の通信において使用されていたチャネル以外のチャネルが少なくとも使用されて装置探索リクエストが送信されれば良い。
【０１０１】
アクセスポイント４００が使用するチャネルは第ｑチャネルであるため、ＭＦＰ３００が第ｑチャネルを使用してＡＰサーチを行った場合、Ｓ１１０６にて、アクセスポイント４００は、機器探索応答コマンドをＭＦＰ３００に送信する。
【０１０２】
その後、Ｓ１１０７にて、ＭＦＰ３００は、Ｐ２Ｐ接続に利用するチャネルを切り替えるため、一旦端末装置２００とのＰ２Ｐ接続を切断する。なお、端末装置２００とのＰ２Ｐ接続が切断されるタイミングは、Ｓ１１０６の後に限定されず、例えば、ＭＦＰ３００とアクセスポイント４００との接続が切断された後、Ｐ２Ｐモードによって通信されたデータの処理が完了したタイミング等であっても良い。
【０１０３】
その後、Ｓ１１０８及び１１０９にて、公知の接続処理が実行されることにより、ＭＦＰ３００とアクセスポイント４００との接続（インフラ接続）及びＭＦＰ３００と端末装置２００との接続（Ｐ２Ｐ接続）が再開される。
【０１０４】
なお、装置間で無線接続を再開する場合に送受信されるコマンドやパラメータについては、Ｗｉ−Ｆｉ規格で規定されているものが用いられればよく、ここでの説明は省略する。
【０１０５】
なお上述の形態において、ＭＦＰ３００とアクセスポイント４００との接続が切断された後にアクセスポイント４００が使用するチャネルが変更されていなければ、ＭＦＰ３００は、Ｓ１１０４のＡＰサーチによってアクセスポイント４００と再接続する。この場合は、ＭＦＰ３００は、Ｓ１１０５の処理を省略する。
【０１０６】
これにより、ＭＦＰ３００は、ＭＦＰ３００とアクセスポイント４００との接続が切断された後、何らかの要因でアクセスポイント４００が使用するチャネルが変更された場合も、アクセスポイント４００と再接続することができる。
【０１０７】
なお、上述したように、本実施形態のＭＦＰ３００は、同時に（並行して）複数のチャネルを使用しないよう制御している。そのため、ＭＦＰ３００は、インフラ接続に使用していたチャネル（現在Ｐ２Ｐ接続に使用しているチャネル）以外のチャネルＡＰを発見した場合、各通信モードで共通のチャネルを使用するため、Ｐ２Ｐモードによる通信を一旦停止する。ただし、ＷＬＡＮモジュールの性能によって、Ｐ２Ｐモードによる通信を一旦停止せずに複数の通信モードで共通チャネルを設定できる場合は、Ｐ２Ｐモードを停止しなくてもよい。
【０１０８】
なお、Ｐ２Ｐモードによる通信を停止していない状態でも、Ｐ２Ｐ接続に使用されているチャネル以外のチャネルでＡＰサーチを実行している間は、Ｐ２Ｐモードによる通信において、パケットロスや、送信パケットの遅延が発生したりするおそれがある。パケットロスとは、Ｐ２Ｐ接続に使用するチャネルを用いて端末装置２００が送信したパケットが、Ｐ２Ｐ接続に使用するチャネル以外のチャネルをＭＦＰ３００が使用していたことによりＭＦＰ３００に受信されず失われてしまうことをいう。また、送信パケットの遅延とは、ＭＦＰ３００がＰ２Ｐ接続に使用するチャネル以外のチャネルを使用していることで端末装置２００へパケット送信できなかった場合、Ｐ２Ｐ接続に使用するチャネルが使用可能となるまでパケットの送信が遅延することをいう。
【０１０９】
Ｐ２Ｐモードによる通信がＴＣＰ層を経由したネットワーク通信であれば、パケットロスが発生しても、ロスされたパケットが再送されるが、ＵＤＰ層を経由したネットワーク通信である場合は、ロスされたパケットが再送されることはない。そのため、端末装置２００のＯＳ、ドライバ、またはアプリケーションの挙動によっては、パケットロスが生じることによって、Ｐ２Ｐモードによる通信における通信相手装置が検出できなかったり、アプリケーションが利用できなかったりするおそれがある。
【０１１０】
また、上述のような課題は、同時動作後でないＡＰサーチにおいては生じにくい。これは、ＭＦＰ３００がＰ２Ｐモードによる通信を実行していなければ、インフラ接続において使用されていたチャネル以外のチャネルによってＡＰサーチが実行されても、パケットロスや送信パケットの遅延が発生しないためである。
【０１１１】
すなわち、同時動作後で且つ、Ｐ２Ｐ接続に使用されているチャネル以外のチャネルによって実行されるＡＰサーチは、インフラ接続を再度確立させるために必要である一方で、通信への影響を減らすために、実行回数ができるだけ抑制されることが好ましい。
【０１１２】
そこで、本実施形態では、同時動作後で且つ、Ｐ２Ｐ接続に使用されているチャネル以外のチャネルによって実行されるＡＰサーチを抑制する形態について説明する。具体的には、ＭＦＰ３００は、同時動作をしている状態で接続が切断された際にＡＰサーチが実行される（繰り返される）周期より、同時動作をしていない状態で接続が切断された際にＡＰサーチが実行される周期を短くする。また、現在Ｐ２Ｐ接続に使用されているチャネルを使用するＡＰサーチが実行される周期より、現在Ｐ２Ｐ接続に使用されているチャネル以外のチャネルを使用するＡＰサーチが実行される周期を長くする。
【０１１３】
図１２は、本実施形態においてＭＦＰ３００が実行する再接続処理を示すフローチャートである。なお、本フローチャートが示す処理は、例えば、ＲＯＭ６０３等のメモリに格納されたプログラムをＣＰＵ６０２がＲＡＭ６０４に読み出して実行することにより実現される。また、本フローチャートが示す処理は、ＭＦＰ３００とアクセスポイント４００との接続が切断された場合に開始されるものとする。
【０１１４】
まず、Ｓ１２０１では、ＣＰＵ６０２は、ＭＦＰ３００が同時動作をしている状態で、ＭＦＰ３００とアクセスポイント４００との接続が切断されたか否かを判定する。具体的には、ＣＰＵ６０２は、ＭＦＰ３００が端末装置２００とＰ２Ｐ起動中か否かを判定する。Ｐ２Ｐ起動中とは、Ｐ２Ｐモードの通信に利用するインターフェースが起動していることを指す。また、より具体的には、ＣＰＵ６０２は、ＭＦＰ３００がＧｒｏｕｐＯｗｎｅｒ（もしくはソフトウェアＡＰ）として動作しているか否かを判定する。なお、本実施形態においては、ＭＦＰ３００は、ＷＦＤモードにおける無線接続シーケンスにおいてネゴシエーションを実行するか否かの設定をユーザから受け付け可能であり、ネゴシエーションを実行する設定がなされている場合は、同時動作を実行しない。そのため、ＭＦＰ３００が同時動作している状態でＭＦＰ３００とアクセスポイント４００との接続が切断された状態であるこのタイミングにおいて、ＭＦＰ３００は、Ｐ２Ｐ接続におけるクライアントとして動作していることはない。すなわち、ＭＦＰ３００がＰ２Ｐ起動しているならば、ＭＦＰ３００がＧｒｏｕｐＯｗｎｅｒ（もしくはソフトウェアＡＰ）として動作している。よって、ＣＰＵ６０２は、ＭＦＰ３００がＧｒｏｕｐＯｗｎｅｒ（もしくはソフトウェアＡＰ）として動作しているか否かを判定することで、ＭＦＰ３００がＰ２Ｐ起動中か否かを判定できる。ＣＰＵ６０２は、ＭＦＰ３００がＧｒｏｕｐＯｗｎｅｒ（もしくはソフトウェアＡＰ）として動作していない場合は、ＭＦＰ３００がＰ２Ｐ起動中でないと判定する。一方、ＣＰＵ６０２は、ＭＦＰ３００がＧｒｏｕｐＯｗｎｅｒ（もしくはソフトウェアＡＰ）として動作している場合は、ＭＦＰ３００がＰ２Ｐ起動中であると判定する。
【０１１５】
ＭＦＰ３００がＰ２Ｐ起動中でなければ、インフラストラクチャモードによる通信を実行するためのインターフェースのみが単独で動作していることになる。すなわち、ＭＦＰ３００が同時動作を実行していない状態で、ＭＦＰ３００とアクセスポイント４００との接続が切断されたことになる。そのため、ＣＰＵ６０２は、ＭＦＰ３００がＰ２Ｐ起動中でないと判定した場合、Ｓ１２０２〜Ｓ１２０４、及びＳ１２１１における、単独インターフェース利用時の再接続処理を実行する。
【０１１６】
一方、ＭＦＰ３００がＰ２Ｐ起動中であれば、インフラストラクチャモードによる通信を実行するためのインターフェースとＰ２Ｐモードによる通信を実行するためのインターフェースとが並行して動作していることになる。すなわち、ＭＦＰ３００が同時動作を実行している状態で、ＭＦＰ３００とアクセスポイント４００との接続が切断されたことになる。そのため、ＣＰＵ６０２は、ＭＦＰ３００がＰ２Ｐ起動中であると判定した場合、Ｓ１２０５〜Ｓ１２１１における、複数インターフェース利用時の再接続処理を実行する。
【０１１７】
なお、ＣＰＵ６０２は、Ｓ１２０１では、Ｐ２Ｐ接続中であるか否かを判定していたが、この形態に限定されず、例えば、Ｐ２Ｐモードで動作している状態でジョブを実行中か否かを判定しても良い。この場合、ＣＰＵ６０２は、Ｐ２Ｐモードで動作している状態でジョブを実行中であると判定した場合、複数インターフェース利用時の再接続処理を実行する。そして、ＣＰＵ６０２は、Ｐ２Ｐモードで動作している状態で、ジョブを実行中でないと判定した場合、単独インターフェース利用時の再接続処理を実行する。
【０１１８】
単独インターフェース利用時の再接続処理について説明する。
【０１１９】
Ｓ１２０２では、ＣＰＵ６０２は、全チャネル（１〜１３）を用いたＡＰサーチを実行する。具体的には、ＣＰＵ６０２は、第１チャネルから第１３チャネルまでの全チャネルを順番に使用して、ＡＰサーチを連続して実行する。なお、１回のＡＰサーチ（ある１つのチャネルが使用されて実行されるＡＰサーチ）には、１００ミリ秒程度の時間がかかる。また、例えば、ＣＰＵ６０２は、ＩＥＥＥ  ８０２．１１ａの規格では、５ＧＨｚの周波数帯を使うため、３６〜１４０チャネルを使用するが、使用できるチャネルの番号が連番になっているとは限らない。その場合は、ＣＰＵ６０２は、小さい番号のチャネルから順番に利用してＡＰサーチを実行すればよい。例えば、ＣＰＵ６０２は、まず初めに現在Ｐ２Ｐ接続に使用しているチャネルを使用してＡＰサーチを実行した後、第１チャネルから順に使用してＡＰサーチを実行してもよい。また、ＣＰＵ６０２は、２．４ＧＨｚ（１〜１３チャネル）と５ＧＨｚ（３６〜１４０チャネル）の周波数帯を使う場合、どちらかの周波数帯（例えば５ＧＨｚ）に対応するチャネルを優先して用いてＡＰサーチを開始してもよい。
【０１２０】
Ｓ１２０３では、ＣＰＵ６０２は、全チャネルを用いたＡＰサーチによってアクセスポイント４００を検出したか否かを判定する。具体的には、ＣＰＵ６０２は、アクセスポイント４００から機器探索応答コマンドを受信したか否かを判定する。ＣＰＵ６０２は、アクセスポイント４００から機器探索応答コマンドを受信した場合、アクセスポイント４００を検出したと判定して、Ｓ１２１１にてアクセスポイント４００と無線接続を確立する。一方、ＣＰＵ６０２は、アクセスポイント４００から機器探索応答コマンドが所定の時間以上返信されなかった場合、アクセスポイント４００を検出しなかったと判定して、Ｓ１２０４の処理を実行する。
【０１２１】
Ｓ１２０４では、ＣＰＵ６０２は、全チャネルを用いたＡＰサーチを終了するか否かを判定する。具体的には、ＣＰＵ６０２は、全チャネルを用いたＡＰサーチのリトライ回数が上限値Ｌに達したか否かを判定する。ＣＰＵ６０２は、ＡＰサーチのリトライ回数が上限値Ｌに達していない場合は、ＡＰサーチを終了しないと判定し、Ｓ１２０２に戻ってＡＰサーチのリトライを実行する。なお、ＣＰＵ６０２は、ＡＰサーチのリトライを実行する前に、あらかじめ設定された周期Ａに従って、所定の時間ウェイトする。本実施形態では、周期Ａは「５００ミリ秒間隔」であるため、ＣＰＵ６０２は、ＡＰサーチのリトライを実行する前に５００ミリ秒待つ。なお、周期Ａの値は、５００ミリ秒に限定されず、後述する周期Ｃとの関係性が満たされていれば、任意の値に設定可能である。また、周期Ａの値は、Ｓ１２０２のＡＰサーチのリトライが実行される毎に大きくなっていく形態としても良い。一方、ＣＰＵ６０２は、ＡＰサーチのリトライ回数が上限値Ｌに達している場合は、ＡＰサーチを終了すると判定し、再接続処理を終了する。なお、ＣＰＵ６０２は、リトライ回数が上限値Ｌに達しているか否かでなく、リトライ回数が閾値Ｌを超えているか否かを判定することによって、ＡＰサーチを終了するか否かを判定しても良い。なお、リトライ回数の上限値や閾値Ｌは、ユーザが任意に設定可能としても良いし、着荷時にあらかじめ設定されている形態としても良い。また、例えば、リトライ回数の上限値や閾値Ｌを無限とすることで、アクセスポイント４００が検出されるまでＡＰサーチが繰り返される構成としても良い。特に、単独インターフェース利用時は、全チャネルを利用したＡＰサーチが繰り返されてもパケットロスやパケット送信遅延が発生しない。そのため、リトライ回数の上限値や閾値Ｌを無限とすることで、パケットロスやパケット送信遅延を発生させることなく、アクセスポイント４００を検出できる確立を向上させることができる。また、ＣＰＵ６０２は、Ｓ１２０４における判定を、全チャネルを使用したＡＰサーチを開始してから所定の時間（タイムアウト時間）経過したか否かを判定することで実行しても良い。なお、タイムアウト時間の値も、上限値Ｌと同様に任意に設定されて良い。
【０１２２】
複数インターフェース利用時の再接続処理について説明する。
【０１２３】
Ｓ１２０５では、ＣＰＵ６０２は、切断されたＭＦＰ３００とアクセスポイント４００との接続において使用されていたチャネルを使用して、ＡＰサーチを実行する。すなわち、ＣＰＵ６０２は、単一のチャネルを使用して、ＡＰサーチを実行する。なお、ＭＦＰ３００とアクセスポイント４００との接続において使用されていたチャネルは、端末装置２００とのＰ２Ｐ接続において現在使用されているチャネルに対応する。また、単独インターフェース利用時の再接続処理と同様に、１回のＡＰサーチには、１００ミリ秒程度の時間がかかる。
【０１２４】
Ｓ１２０６では、ＣＰＵ６０２は、単一のチャネルを使用したＡＰサーチによってアクセスポイント４００を検出したか否かを判定する。具体的には、ＣＰＵ６０２は、アクセスポイント４００から機器探索応答コマンドを受信したか否かを判定する。ＣＰＵ６０２は、アクセスポイント４００から機器探索応答コマンドを受信した場合、アクセスポイント４００を検出したと判定して、Ｓ１２１１の処理を実行し、アクセスポイント４００との無線接続を確立する。一方、ＣＰＵ６０２は、アクセスポイント４００から機器探索応答コマンドが所定の時間以上返信されなかった場合、Ｓ１２０７の処理を実行する。
【０１２５】
Ｓ１２０７では、ＣＰＵ６０２は、単一のチャネルを使用したＡＰサーチを終了するか否かを判定する。具体的には、ＣＰＵ６０２は、単一のチャネルを使用したＡＰサーチのリトライ回数が上限値Ｍに達したか否かを判定する。ＣＰＵ６０２は、単一のチャネルを使用したＡＰサーチのリトライ回数が上限値Ｍに達していない場合は、単一のチャネルを使用したＡＰサーチを終了しないと判定し、Ｓ１２０５に戻ってＡＰサーチのリトライを実行する。なお、本実施形態では、複数インターフェース用の再接続処理における、単一のチャネルを使用したＡＰサーチのリトライ回数の上限値Ｍは「４」であるものとするが、この値に限定されず任意の値が設定されて良い。なお、ＣＰＵ６０２は、リトライ回数が上限値Ｍに達しているか否かでなく、リトライ回数が閾値Ｍを超えているか否かを判定することによって、ＡＰサーチを終了するか否かを判定しても良い。なお、リトライ回数の上限値や閾値Ｍは、ユーザが任意に設定可能としても良いし、着荷時にあらかじめ設定されている形態としても良い。また、ＣＰＵ６０２は、Ｓ１２０７における判定を、単一のチャネルを使用したＡＰサーチを開始してから所定の時間（タイムアウト時間）経過したか否かを判定することで実行しても良い。なお、タイムアウト時間の値も、上限値Ｍと同様に任意に設定されて良い。
【０１２６】
なお、ＣＰＵ６０２は、ＡＰサーチのリトライを実行する前に、あらかじめ設定された周期Ｂに従って、所定の時間ウェイトする。本実施形態では、周期Ｂは「１０秒間隔」であるため、ＣＰＵ６０２は、ＡＰサーチのリトライを実行する前に１０秒待つ。なお、周期Ｂの値は、この形態に限定されず、後述する周期Ｃとの関係性が満たされていれば、任意の値に設定可能である。また、周期Ｂの値は、Ｓ１２０５のＡＰサーチのリトライが実行される毎に大きくなっていく形態としても良い。
【０１２７】
一方、ＣＰＵ６０２は、単一のチャネルを使用したＡＰサーチのリトライ回数が上限値Ｍに達している場合は、単一のチャネルを使用したＡＰサーチを終了すると判定し、Ｓ１２０８の処理を行う。
【０１２８】
Ｓ１２０８では、ＣＰＵ６０２は、全チャネル（１〜１３）を使用したＡＰサーチを実行する。具体的には、ＣＰＵ６０２は、第１チャネルから第１３チャネルまでの全チャネルを順番に使用して、ＡＰサーチを連続して実行する。なお、単独インターフェース利用時の再接続処理と同様に、１回のＡＰサーチには、１００ミリ秒程度の時間がかかる。なお、Ｓ１２０８では、ＣＰＵ６０２は、必ずしも全チャネルを使用したＡＰサーチを実行する必要はない。ＣＰＵ６０２は、単一のチャネルを使用したＡＰサーチにおいて使用したチャネル（切断されたインフラ接続に使用していたチャネル）以外のチャネルを少なくとも使用して、ＡＰサーチを実行すれば良い。また、単独インターフェース利用時の再接続処理におけるＡＰサーチと同様に、使用されるチャネルの順番は特に限定されない。
【０１２９】
Ｓ１２０９では、ＣＰＵ６０２は、ＡＰサーチによってアクセスポイント４００を検出したか否かを判定する。具体的には、ＣＰＵ６０２は、アクセスポイント４００から機器探索応答コマンドを受信したか否かを判定する。ＣＰＵ６０２は、アクセスポイント４００から機器探索応答コマンドを受信した場合、アクセスポイント４００を検出したと判定して、Ｓ１２１１の処理を実行し、アクセスポイント４００との無線接続を確立する。
【０１３０】
一方、ＣＰＵ６０２は、アクセスポイント４００から機器探索応答コマンドが所定の時間以上返信されなかった場合、Ｓ１２１０の処理を実行する。
【０１３１】
Ｓ１２１０では、ＣＰＵ６０２は、全チャネルを使用したＡＰサーチを終了するか否かを判定する。具体的には、ＣＰＵ６０２は、全チャネルを使用したＡＰサーチのリトライ回数が上限値Ｎに達したか否かを判定する。ＣＰＵ６０２は、ＡＰサーチのリトライ回数が上限値Ｎに達していない場合は、Ｓ１２０８に戻ってＡＰサーチのリトライを実行する。なお、ＣＰＵ６０２は、リトライ回数が上限値Ｎに達しているか否かでなく、リトライ回数が閾値Ｎを超えているか否かを判定することによって、ＡＰサーチを終了するか否かを判定しても良い。なお、リトライ回数の上限値や閾値Ｎは、ユーザが任意に設定可能としても良いし、着荷時にあらかじめ設定されている形態としても良い。また、例えば、リトライ回数の上限値や閾値Ｎを無限とすることで、アクセスポイント４００が検出されるまでＡＰサーチを繰り返す構成としても良い。また、ＣＰＵ６０２は、Ｓ１２１０における判定を、全チャネルを使用したＡＰサーチを開始してから所定の時間（タイムアウト時間）経過したか否かを判定することで実行しても良い。なお、タイムアウト時間の値も、上限値Ｎと同様に任意に設定されて良い。
【０１３２】
なお、ＣＰＵ６０２は、ＡＰサーチのリトライを実行する前に、周期Ｃに従って、所定の時間ウェイトする。本実施形態では、周期Ｃは「３０秒間隔」であるため、ＣＰＵ６０２は、ＡＰサーチのリトライを実行する前に３０秒待つ。
【０１３３】
なお、本実施形態では、周期Ｃの値は、周期Ａの値より大きいものとする。すなわち、単独インターフェース利用時の再接続処理におけるＡＰサーチが実行される周期より、複数インターフェース利用時の再接続処理におけるＡＰサーチが実行される周期の方が長いものとする。単独インターフェース利用時の再接続処理中は、Ｐ２Ｐモードによる通信におけるパケットロスやパケット送信遅延が生じない。そのため、周期Ａを短くすることで、単独インターフェース利用時の再接続処理中は、Ｐ２Ｐモードによる通信におけるアクセスポイント４００とＭＦＰ３００とが再接続する可能性を向上させることを優先させている。また、複数インターフェース利用時の再接続処理中は、パケットロスやパケット送信遅延が生じる可能性が高い。そのため、本実施形態では、周期Ｃを長くすることで、複数インターフェース利用時の再接続処理中は、Ｐ２Ｐモードによる通信におけるパケットロスやパケット送信遅延の発生を抑制することを優先させている。
【０１３４】
また、本実施形態では、周期Ｃの値は、周期Ｂの値より大きいものとする。すなわち、端末装置２００とのＰ２Ｐ接続に利用しているチャネルによるＡＰサーチが実行される周期より、端末装置２００とのＰ２Ｐ接続に利用しているチャネル以外のチャネルによるＡＰサーチが実行される周期の方が長いものとする。端末装置２００とのＰ２Ｐ接続に用いているチャネルによるＡＰサーチ中は、端末装置２００との通信においてパケットロスが生じる可能性が低い。そのため、本実施形態では、周期Ｂを短くすることで、端末装置２００とのＰ２Ｐ接続に用いているチャネルによるＡＰサーチ中は、アクセスポイント４００とＭＦＰ３００が再接続する可能性を向上させることを優先させている。また、端末装置２００とのＰ２Ｐ接続に用いているチャネル以外のチャネルによるＡＰサーチ中は、端末装置２００との通信においてパケットロスやパケット送信遅延が生じる可能性が高い。そのため、本実施形態では、周期Ｃを長くすることで、端末装置２００とのＰ２Ｐ接続に用いているチャネル以外のチャネルによるＡＰサーチ中は、それらの問題の発生を抑制することを優先させている。
【０１３５】
なお、上述では、周期Ｃは「３０秒間隔」であるものとしたが、この形態に限定されず、上述した周期Ａとの関係性や周期Ｂとの関係性が満たされていれば、任意の値に設定可能である。また、周期Ｃの値は、Ｓ１２１０のＡＰサーチのリトライが実行される毎に大きくなっていく形態としても良い。その場合、リトライ時間間隔を指数関数的に増やす形態としても良い。
【０１３６】
以上のように、本実施形態によれば、ＭＦＰ３００は、各ＡＰサーチの周期を制御することで、アクセスポイント４００と再接続する可能性を向上させつつ、Ｐ２Ｐモードによる通信におけるパケットロスやパケット送信遅延の発生を抑制することができる。
【０１３７】
（第２実施形態）
本実施形態では、ＡＰサーチをリトライすることを特定する毎に、ＭＦＰ３００の接続状態を確認する形態について説明する。
【０１３８】
なお、本実施形態の通信システムや各装置の構成等は、第１実施形態と同様であるものとする。
【０１３９】
図１３は、本実施形態においてＭＦＰ３００が実行する再接続処理を示すフローチャートである。なお、本フローチャートが示す処理は、例えば、ＲＯＭ６０３等のメモリに格納されたプログラムをＣＰＵ６０２がＲＡＭ６０４に読み出して実行することにより実現される。また、本フローチャートが示す処理は、ＭＦＰ３００が端末装置２００及びアクセスポイント４００と同時接続している状態で、ＭＦＰ３００とアクセスポイント４００と接続が切断された場合に開始されるものとする。
【０１４０】
まず、Ｓ１３０１では、ＣＰＵ６０２は、ＭＦＰ３００がＰ２Ｐ接続中か否かを判定する。Ｓ１３０１の処理は、Ｓ１２０１の処理と同様であるため詳細な説明は省略する。ＣＰＵ６０２は、ＭＦＰ３００がＰ２Ｐ接続中でないと判定した場合、単独インターフェース利用時の再接続処理を実行するために、Ｓ１３０２の処理を行う。一方、ＣＰＵ６０２は、ＭＦＰ３００がＰ２Ｐ接続中であると判定した場合、複数インターフェース利用時の再接続処理を実行するために、Ｓ１３０４の処理を行う。
【０１４１】
単独インターフェース利用時の再接続処理について説明する。
【０１４２】
Ｓ１３０２では、ＣＰＵ６０２は、全チャネル（１〜１３）を用いたＡＰサーチを実行する。Ｓ１３０２の処理は、Ｓ１２０２の処理と同様であるため詳細な説明は省略する。
【０１４３】
Ｓ１３０３では、ＣＰＵ６０２は、全チャネルを用いたＡＰサーチによってアクセスポイント４００を検出したか否かを判定する。Ｓ１３０３の処理は、Ｓ１２０３の処理と同様であるため詳細な説明は省略する。ＣＰＵ６０２は、アクセスポイント４００を検出したと判定した場合、Ｓ１３０８の処理を実行し、アクセスポイント４００との無線接続を確立する。一方、ＣＰＵ６０２は、アクセスポイント４００を検出しなかったと判定した場合、Ｓ１３０４の処理を実行する。
【０１４４】
Ｓ１３０４では、ＣＰＵ６０２は、全チャネルを用いたＡＰサーチを終了するか否かを判定する。Ｓ１３０４の処理は、Ｓ１２０４の処理と同様であるため詳細な説明は省略する。ＣＰＵ６０２は、ＡＰサーチを終了しないと判定した場合、Ｓ１３０１の処理を再度実行する。すなわち、ＣＰＵ６０２は、ＡＰサーチをリトライする前に、再度、ＭＦＰ３００の接続状態を確認する。なお、ＣＰＵ６０２は、Ｓ１３０１の処理を再度実行する前に、あらかじめ設定された周期Ａに従って、所定の時間ウェイトする。本実施形態では、第１実施形態と同様、周期Ａは「５００ミリ秒間隔」であるため、ＣＰＵ６０２は、Ｓ１３０１の処理を再度実行する前に５００ミリ秒待つ。なお、ＣＰＵ６０２がウェイトするタイミングは、Ｓ１３０１の処理を再度実行する前に限定されず、例えば、Ｓ１３０２の処理を再度実行する前であっても良い。一方、ＣＰＵ６０２は、ＡＰサーチを終了すると判定した場合、処理を終了する。
【０１４５】
複数インターフェース利用時の再接続処理について説明する。
【０１４６】
Ｓ１３０５では、ＣＰＵ６０２は、切断されたＭＦＰ３００とアクセスポイント４００との接続において使用されていたチャネルを使用して、ＡＰサーチを実行する。すなわち、ＣＰＵ６０２は、単一のチャネルを使用して、ＡＰサーチを実行する。Ｓ１３０５の処理は、Ｓ１２０５の処理と同様であるため詳細な説明は省略する。
【０１４７】
Ｓ１３０６では、ＣＰＵ６０２は、単一のチャネルを使用したＡＰサーチによってアクセスポイント４００を検出したか否かを判定する。Ｓ１３０６の処理は、Ｓ１２０６の処理と同様であるため詳細な説明は省略する。ＣＰＵ６０２は、アクセスポイント４００を検出したと判定した場合、Ｓ１３１１の処理を実行し、アクセスポイント４００との無線接続を確立する。一方、ＣＰＵ６０２は、アクセスポイント４００を検出しなかったと判定した場合、Ｓ１３０７の処理を実行する。
【０１４８】
Ｓ１３０７では、ＣＰＵ６０２は、単一のチャネルを使用したＡＰサーチを終了するか否かを判定する。Ｓ１３０７の処理は、Ｓ１２０７の処理と同様であるため詳細な説明は省略する。ＣＰＵ６０２は、単一のチャネルを使用したＡＰサーチを終了しないと判定した場合、Ｓ１３０１の処理を再度実行する。すなわち、ＣＰＵ６０２は、ＡＰサーチをリトライする前に、再度、ＭＦＰ３００の接続状態を確認する。なお、ＣＰＵ６０２は、Ｓ１３０１の処理を再度実行する前に、あらかじめ設定された周期Ｂに従って、所定の時間ウェイトする。本実施形態では、第１実施形態と同様、周期Ｂは「１０秒間隔」であるため、ＣＰＵ６０２は、Ｓ１３０１の処理を再度実行する前に１０秒待つ。なお、ＣＰＵ６０２がウェイトするタイミングは、Ｓ１３０１の処理を再度実行する前に限定されず、例えば、Ｓ１３０５の処理を再度実行する前であっても良い。一方、ＣＰＵ６０２は、単一のチャネルを使用したＡＰサーチを終了すると判定した場合、Ｓ１３１２にて、ＭＦＰ３００がＰ２Ｐ接続中か否かを判定する。Ｓ１３０５の処理は、Ｓ１３０１の処理と同様であるため詳細な説明は省略する。ＣＰＵ６０２は、ＭＦＰ３００がＰ２Ｐ接続中でないと判定した場合、単独インターフェース利用時の再接続処理を実行するために、Ｓ１３０２の処理を行う。一方、ＣＰＵ６０２は、ＭＦＰ３００がＰ２Ｐ接続中であると判定した場合、ＣＰＵ６０２は、Ｓ１３０８において、全チャネル（１〜１３）を使用したＡＰサーチを実行する。
【０１４９】
Ｓ１３０８、Ｓ１３０９の処理は、Ｓ１２０８、Ｓ１２０９の処理と同様であるため詳細な説明は省略する。
【０１５０】
Ｓ１３１０では、ＣＰＵ６０２は、全チャネルを使用したＡＰサーチを終了するか否かを判定する。Ｓ１３１０の処理は、Ｓ１２１０の処理と同様であるため詳細な説明は省略する。ＣＰＵ６０２は、全チャネルを使用したＡＰサーチを終了しないと判定した場合、Ｓ１３１２の処理を再度実行する。すなわち、ＣＰＵ６０２は、ＡＰサーチをリトライする前に、再度、ＭＦＰ３００の接続状態を確認する。なお、ＣＰＵ６０２は、Ｓ１３１２の処理を再度実行する前に、あらかじめ設定された周期Ｃに従って、所定の時間ウェイトする。本実施形態では、第１実施形態と同様、周期Ｃは「３０秒間隔」であるため、ＣＰＵ６０２は、Ｓ１３１２の処理を再度実行する前に３０秒待つ。なお、ＣＰＵ６０２がウェイトするタイミングは、Ｓ１３１２の処理を再度実行する前に限定されず、例えば、Ｓ１３０８の処理を再度実行する前であっても良い。一方、ＣＰＵ６０２は、全チャネルを使用したＡＰサーチを終了すると判定した場合、処理を終了する。
【０１５１】
また、ＣＰＵ６０２は、Ｓ１３１１にて、アクセスポイント４００との再接続を実行した場合、処理を終了する。
【０１５２】
以上のように、本実施形態においては、ＭＦＰ３００は、ＡＰサーチをリトライする前に、ＭＦＰ３００の接続状態（Ｐ２Ｐ接続しているか否か）を確認し、ＭＦＰ３００の接続状態に応じたＡＰサーチを実行する。これにより、例えば、再接続処理中にＭＦＰ３００の接続状態が変化した場合にも、ＭＦＰ３００は、変化後の接続状態に応じた適切なＡＰサーチを実行することができる。
【０１５３】
（第３実施形態）
本実施形態では、全チャネルを使用したＡＰサーチを分割して実行する形態について説明する。
【０１５４】
なお、本実施形態の通信システムや各装置の構成等は、上述の実施形態と同様であるものとする。
【０１５５】
図１４は、本実施形態においてＭＦＰ３００が実行する再接続処理を示すフローチャートである。なお、本フローチャートが示す処理は、例えば、ＲＯＭ６０３等のメモリに格納されたプログラムをＣＰＵ６０２がＲＡＭ６０４に読み出して実行することにより実現される。また、本フローチャートが示す処理は、ＭＦＰ３００が端末装置２００及びアクセスポイント４００と同時接続している状態で、ＭＦＰ３００とアクセスポイント４００と接続が切断された場合に開始されるものとする。
【０１５６】
Ｓ１４０１〜Ｓ１４０７の処理は、Ｓ１２０１〜Ｓ１２０７の処理と同様であるため、詳細な説明は省略する。なお、ＡＰサーチの周期Ａ及び周期Ｂは、第１実施形態と同様であるものとする。
【０１５７】
複数インターフェース利用時の再接続処理における、全チャネルを使用したＡＰサーチについて説明する。本実施形態では、ＣＰＵ６０２は、ＡＰサーチに利用する全チャネルを、複数のチャネル群に分割し、１つのチャネル群を使用したＡＰサーチが終了する毎にウェイトする。本実施形態では、１回のＡＰサーチに利用されるチャネル数Ｔの値が予め設定されているものとする。ここでは、チャネル数Ｔの値は３に設定されているものとし、全チャネル（１〜１３）が、チャネル群１（１〜３）、チャネル群２（４〜６）、チャネル群３（７〜９）、チャネル群４（１０〜１３）に分割されるものとする。なお、チャネル数Ｔの値は３に限定されず、任意の値が用いられて良いし、ユーザ操作等により適宜変更されても良い。なお、全チャネルがチャネル数Ｔの値で割り切れない場合は、余りのチャネルのみを含むチャネル群を設けてもいいし、最後のチャネル群に余りのチャネルを含ませる構成としても良い。
【０１５８】
Ｓ１４０８では、ＣＰＵ６０２は、第１チャネルから順に使用してＡＰサーチを実行することを特定する。
【０１５９】
Ｓ１４０９では、ＣＰＵ６０２は、１つのチャネル群を用いたＡＰサーチを実行する。例えば、Ｓ１４０８の処理を実行した後であれば、ＣＰＵ６０２は、チャネル群１（１〜３）を使用することを特定し、第１チャネルから第３チャネルまで順に使用してＡＰサーチを実行する。なお、本実施形態では、Ｓ１４０９の処理が繰り返された場合、チャネル群が昇順で利用されるものとし、例えば、ＣＰＵ６０２は、チャネル群１（１〜３）を前回使用した場合、チャネル群２（４〜６）を使用してＡＰサーチを実行する。
【０１６０】
Ｓ１４１０では、ＣＰＵ６０２は、前回のＡＰサーチ（Ｓ１４０９）で使用したチャネルのうち１番大きい番号のチャネルを特定し、特定したチャネルの番号を設定値Ｕに設定する。
【０１６１】
Ｓ１４１１では、ＣＰＵ６０２は、ＡＰサーチによってアクセスポイント４００を検出したか否かを判定する。ＣＰＵ６０２は、アクセスポイント４００を検出したと判定した場合、Ｓ１４１４の処理を実行し、アクセスポイント４００との無線接続を確立する。一方、ＣＰＵ６０２は、アクセスポイント４００を検出しなかったと判定した場合、Ｓ１４１２の処理を実行する。
【０１６２】
Ｓ１４１２では、ＣＰＵ６０２は、ＡＰサーチを終了するか否かを判定する。具体的には、ＣＰＵ６０２は、ＡＰサーチのリトライ回数が上限値Ｌに達したか否かを判定する。ＣＰＵ６０２は、ＡＰサーチのリトライ回数が上限値Ｌに達していない場合は、ＡＰサーチを終了しないと判定し、Ｓ１４１３の処理を実行する。なお、本実施形態では、Ｓ１４０９の処理が繰り返され、全てのチャネル群が用いられたＡＰサーチが実行される毎に、リトライ回数がインクリメントされるものとする。なお、ＣＰＵ６０２は、Ｓ１４１３の処理を実行する前に、あらかじめ設定された周期Ｃに従って、所定の時間ウェイトする。本実施形態では、第１実施形態と同様、周期Ｃは「３０秒間隔」であるため、ＣＰＵ６０２は、Ｓ１４１３の処理を実行する前に３０秒待つ。なお、ＣＰＵ６０２がウェイトするタイミングは、Ｓ１４１３の処理を再度実行する前に限定されず、例えば、Ｓ１４０８やＳ１４０９の処理を再度実行する前であっても良い。一方、ＣＰＵ６０２は、ＡＰサーチのリトライ回数が上限値Ｌに達している場合は、ＡＰサーチを終了すると判定し、再接続処理を終了する。
【０１６３】
Ｓ１４１３では、ＣＰＵ６０２は、設定値Ｕが、使用可能な全てのチャネルの番号のうち最大の番号（全チャネルが１〜１３チャネルの場合は、１３）の値に達したか否かを判定する。すなわち、ＣＰＵ６０２は、Ｓ１４０９の処理を繰り返して、全てのチャネル群を用いてＡＰサーチを実行したか否かを判定する。ＣＰＵ６０２は、設定値Ｕが最大の番号の値に達した場合、全てのチャネル群を用いてＡＰサーチを実行したと判定し、Ｓ１４０８の処理を行う。すなわち、ＣＰＵ６０２は、再び、第１チャネルから順に使用してＡＰサーチを実行することを特定する。一方、ＣＰＵ６０２は、設定値Ｕが最大の番号の値に達していない場合、全てのチャネル群を用いてＡＰサーチを実行していないと判定し、Ｓ１４０９の処理を行う。すなわち、ＣＰＵ６０２は、まだ使用していないチャネル群（前回使用したチャネル群と異なるチャネル群）を用いてＡＰサーチを実行することを特定する。
【０１６４】
このように、本実施形態では、ＣＰＵ６０２は、１回のＡＰサーチにおいて全てのチャネルを用いるのではなく、全チャネルのうち一部のチャネル（チャネル群）を用いる。言いかえれば、ＣＰＵ６０２は、１又は複数回のウェイトを挟んで、全てのチャネルを用いたＡＰサーチを実行する。これにより、１回のＡＰサーチにかかる時間を短縮することができ、パケットロスやパケット送信遅延が時間的に連続して発生することを抑制することができる。
【０１６５】
なお、上述では、チャネル群が昇順で使用されてＡＰサーチが実行される形態を説明したが、使用されるチャネル群の順番は特に限定されない。例えば、ＭＦＰ３００とアクセスポイント４００との接続において使用されていたチャネルを含むチャネル群が最初に用いられる形態としても良い。
【０１６６】
（その他の実施形態）
上述の実施形態では、ＭＦＰ３００は、Ｐ２Ｐモードによる通信やインフラストラクチャモードによる通信を実行するために、Ｗｉ−Ｆｉを用いるものとしたが、この形態に限定されない。例えば、Ｂｌｕｅｔｏｏｔｈ（登録商標）等、他の通信方式が用いられても良い。
【０１６７】
また、上述した実施形態では、周期Ａより周期Ｂが長い形態を説明したが、この形態に限定されず、周期Ａと周期Ｂが同一、あるいは、周期Ｂより周期Ａが長い形態であっても良い。しかしながら、例えば、単独インターフェース利用時の再接続処理と、複数インターフェース利用時の再接続処理とを、異なるシステムやＣＰＵによって実行する形態がある。このような形態においては、複数インターフェース利用時の再接続処理の方が、単独インターフェース利用時の再接続処理と比較して処理負荷が大きい場合があり、周期Ａより周期Ｂを長くすることで、処理負荷を軽減することができる。また、Ｐ２Ｐモードによる通信において使用されているチャネルによるＡＰサーチを実行中は、Ｐ２Ｐモードによる通信において、パケットロスは発生しないものの、パケット送信遅延が発生する可能性がある。このような課題が発生する形態においては、周期Ａより周期Ｂを長くすることで、パケット送信遅延の発生を抑制することができる。
【０１６８】
また、上述した実施形態では、各ＡＰサーチの周期を制御することで、Ｐ２Ｐモードによる通信におけるパケットロスやパケット送信遅延の発生を抑制する形態を説明したが、この形態に限定されない。例えば、各ＡＰサーチの周期でなく、各ＡＰサーチのリトライ回数やリトライ時間を制御することで、Ｐ２Ｐモードによる通信におけるパケットロスやパケット送信遅延の発生を抑制する形態としても良い。この場合、上述のように、各ＡＰサーチのリトライ回数の上限値の関係性は、Ｌ＞Ｎ、Ｍ＞Ｎとなる。また、各ＡＰサーチを繰り返し続ける時間（リトライ時間）が設定されている形態であれば、リトライ時間の関係性は、Ｓ１２０２のＡＰサーチのリトライ時間＞Ｓ１２０８のＡＰサーチのリトライ時間となる。また、Ｓ１２０５のＡＰサーチのリトライ時間＞Ｓ１２０８のＡＰサーチのリトライ時間となる。なお、各ＡＰサーチの周期・リトライ回数・リトライ時間の関係性を組み合わせた形態としても良い。
【０１６９】
上述した実施形態は、以下の処理を実行することによっても実現される。すなわち、上述した実施形態の機能を実現するソフトウエア（プログラム）を、ネットワーク又は各種記憶媒体を介してシステム或いは装置に供給し、そのシステム或いは装置のコンピュータ（ＣＰＵやＭＰＵ等）がプログラムを読み出して実行する処理である。また、プログラムは、１つのコンピュータで実行させても、複数のコンピュータを連動させて実行させるようにしてもよい。また、上記した処理の全てをソフトウエアで実現する必要はなく、処理の一部または全部をＡＳＩＣ等のハードウェアで実現するようにしてもよい。また、ＣＰＵも１つのＣＰＵで全ての処理を行うものに限らず、複数のＣＰＵが適宜連携をしながら処理を行うものとしてもよい。
【符号の説明】
【０１７０】
２００  端末装置
３００  ＭＦＰ
４００  アクセスポイント
【図１】
0006676469.tif 000002
【図２】
0006676469.tif 000003
【図３】
0006676469.tif 000004
【図４】
0006676469.tif 000005
【図５】
0006676469.tif 000006
【図６】
0006676469.tif 000007
【図７】
0006676469.tif 000008
【図８】
0006676469.tif 000009
【図９】
0006676469.tif 000010
【図１０】
0006676469.tif 000011
【図１１】
0006676469.tif 000012
【図１２】
0006676469.tif 000013
【図１３】
0006676469.tif 000014
【図１４】
0006676469.tif 000015