(57)【要約】【課題】省電力モード移行中に接続要求を受信した場合でも、適切に処理することができるようにする。【解決手段】無線通信装置は、外部無線通信装置に対して無線通信を行う無線通信手段と、省電力モード移行条件を満たすと、無線通信手段と外部無線通信装置との間の無線通信を切断し、無線通信手段を待ち受け状態に制御し、自己の機能を停止し、省電力モードに移行する第１の制御手段と、第１の制御手段が省電力モードに移行した状態で、無線通信手段が外部無線通信装置から接続要求を受信した場合には、第１の制御手段を起動し、第１の制御手段を通常モードに移行させる第２の制御手段とを有し、第１の制御手段は、省電力モード移行条件を満たした後、かつ自己の機能を停止する前に、無線通信手段が外部無線通信装置から接続要求を受信した場合には、無線通信を切断し、無線通信手段を待ち受け状態に制御し、自己の機能を停止し、省電力モードに移行する。【選択図】図３
2019106651.tif 000002
【特許請求の範囲】
【請求項１】
外部無線通信装置に対して無線通信を行う無線通信手段と、
省電力モード移行条件を満たすと、前記無線通信手段と前記外部無線通信装置との間の無線通信を切断し、前記無線通信手段を待ち受け状態に制御し、自己の機能を停止し、省電力モードに移行する第１の制御手段と、
前記第１の制御手段が前記省電力モードに移行した状態で、前記無線通信手段が前記外部無線通信装置から接続要求を受信した場合には、前記第１の制御手段を起動し、前記第１の制御手段を通常モードに移行させる第２の制御手段とを有し、
前記第１の制御手段は、前記省電力モード移行条件を満たした後、かつ前記自己の機能を停止する前に、前記無線通信手段が前記外部無線通信装置から接続要求を受信した場合には、前記無線通信手段と前記外部無線通信装置との間の無線通信を切断し、前記無線通信手段を待ち受け状態に制御し、自己の機能を停止し、省電力モードに移行することを特徴とする無線通信装置。
【請求項２】
前記無線通信手段は、前記外部無線通信装置から接続要求を受信した場合には、前記第１の制御手段に問合せすることなく、前記外部無線通信装置に対して無線接続を確立することを特徴とする請求項１に記載の無線通信装置。
【請求項３】
前記第１の制御手段は、前記省電力モード移行条件を満たすと、前記無線通信手段と前記外部無線通信装置との間の無線通信を切断し、前記無線通信手段を待ち受け状態に制御し、前記無線通信手段からの受信の無効を前記無線通信手段に通知し、自己の機能を停止し、省電力モードに移行することを特徴とする請求項１又は２に記載の無線通信装置。
【請求項４】
前記第１の制御手段は、前記省電力モード移行条件を満たした後、かつ前記無線通信手段からの受信の無効を前記無線通信手段に通知する前に、前記無線通信手段が前記外部無線通信装置から接続要求を受信した場合には、前記無線通信手段と前記外部無線通信装置との間の無線通信を切断し、前記無線通信手段を待ち受け状態に制御し、自己の機能を停止し、省電力モードに移行することを特徴とする請求項３に記載の無線通信装置。
【請求項５】
前記第１の制御手段は、前記省電力モードの状態で、前記無線通信手段が前記外部無線通信装置からの接続要求を閾値以上の回数受信した場合には、前記無線通信手段を停止させることを特徴とする請求項１〜４のいずれか１項に記載の無線通信装置。
【請求項６】
前記第１の制御手段は、通信許可ポートをネゲートすることにより、前記無線通信手段からの受信の無効を前記無線通信手段に通知することを特徴とする請求項３又は４に記載の無線通信装置。
【請求項７】
前記無線通信手段は、前記待ち受け状態では、アドバタイズ信号を定期的にブロードキャストすることを特徴とする請求項１〜６のいずれか１項に記載の無線通信装置。
【請求項８】
前記省電力モード移行条件は、スイッチオフの条件、又はユーザによる操作が一定時間ない条件であることを特徴とする請求項１〜７のいずれか１項に記載の無線通信装置。
【請求項９】
外部無線通信装置に対して無線通信を行う無線通信手段と、第１の制御手段と、第２の制御手段とを有する無線通信装置の制御方法であって、
前記第１の制御手段により、省電力モード移行条件を満たすと、前記無線通信手段と前記外部無線通信装置との間の無線通信を切断し、前記無線通信手段を待ち受け状態に制御し、自己の機能を停止し、省電力モードに移行する第１のステップと、
前記第２の制御手段により、前記第１の制御手段が前記省電力モードに移行した状態で、前記無線通信手段が前記外部無線通信装置から接続要求を受信した場合には、前記第１の制御手段を起動し、前記第１の制御手段を通常モードに移行させる第２のステップとを有し、
前記第１のステップでは、前記第１の制御手段により、前記省電力モード移行条件を満たした後、かつ前記自己の機能を停止する前に、前記無線通信手段が前記外部無線通信装置から接続要求を受信した場合には、前記無線通信手段と前記外部無線通信装置との間の無線通信を切断し、前記無線通信手段を待ち受け状態に制御し、自己の機能を停止し、省電力モードに移行することを特徴とする無線通信装置の制御方法。
【請求項１０】
コンピュータを、請求項１〜８のいずれか１項に記載された無線通信装置の各手段として機能させるためのプログラム。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、無線通信装置、無線通信装置の制御方法及びプログラムに関する。
【背景技術】
【０００２】
ユーザによる操作が一定時間ない場合やメインスイッチがオフされた時などには、省電力モードになる装置が知られている。また、ＮＦＣ（near field communication）や、ＢＬＥ（Bluetooth（登録商標） Low Energy）のような省電力の無線通信機能を備える装置が知られている。省電力の無線通信機能を備える装置は、省電力モードで動作中であっても、無線通信機能を稼働させ、外部装置からの通信要求を検知した場合には、装置本体を省電力モードから通常モードに復帰させることができる。特許文献１には、無線通信チップが搭載されており、ホストＣＰＵがオフの状態でも、無線通信チップのみが動作して通信を制御する装置が開示されている。
【先行技術文献】
【特許文献】
【０００３】
【特許文献１】特開２０１６−０５８７９１号公報
【発明の概要】
【発明が解決しようとする課題】
【０００４】
しかし、その装置は、省電力モードに移行する処理を開始すると、その処理を中断することができない。また、無線通信チップは、待ち受け状態としているため、対向装置からの接続要求が通知される。そのため、その装置は、省電力モードへの移行中に、対向装置から接続要求を受信してしまうことがある。
【０００５】
無線通信チップは、対向装置から接続要求を受信すると、ホストＣＰＵに問合せすることなく接続処理まで実施し、接続したことをホストＣＰＵに通知する。ホストＣＰＵは、無線通信チップからの接続通知を受信せずに停止した時、省電力モードへの移行が完了した後で、サブＣＰＵが通知手段による信号を検知してホットスタートすることができる。しかし、ホストＣＰＵは、無線通信チップからの接続通知を受信して、そのままホスト機能を停止させてしまうと、ホットスタート後に、無線通信チップが対向装置と接続状態であることを知ることができず、状態ずれを起こしてしまうという課題がある。
【０００６】
そこで、本発明は、省電力モードに移行するための処理の実行中に接続要求を受信した場合でも、適切に処理することができるようにすることを目的とする。
【課題を解決するための手段】
【０００７】
無線通信装置は、外部無線通信装置に対して無線通信を行う無線通信手段と、省電力モード移行条件を満たすと、前記無線通信手段と前記外部無線通信装置との間の無線通信を切断し、前記無線通信手段を待ち受け状態に制御し、自己の機能を停止し、省電力モードに移行する第１の制御手段と、前記第１の制御手段が前記省電力モードに移行した状態で、前記無線通信手段が前記外部無線通信装置から接続要求を受信した場合には、前記第１の制御手段を起動し、前記第１の制御手段を通常モードに移行させる第２の制御手段とを有し、前記第１の制御手段は、前記省電力モード移行条件を満たした後、かつ前記自己の機能を停止する前に、前記無線通信手段が前記外部無線通信装置から接続要求を受信した場合には、前記無線通信手段と前記外部無線通信装置との間の無線通信を切断し、前記無線通信手段を待ち受け状態に制御し、自己の機能を停止し、省電力モードに移行する。
【発明の効果】
【０００８】
本発明によれば、省電力モードに移行するための処理の実行中に接続要求を受信した場合でも、適切に処理することができる。
【図面の簡単な説明】
【０００９】
【図１】無線通信装置の構成例を示すブロック図である。
【図２】ソフトウェアの構成例を示すブロック図である。
【図３】無線通信装置の制御方法を示すフローチャートである。
【図４】無線通信装置の制御方法を示すフローチャートである。
【図５】省電力モードに移行する時の通信シーケンス図である。
【図６】省電力モードから通常モードに移行する時の通信シーケンス図である。
【発明を実施するための形態】
【００１０】
以下に、本発明を実施するための形態について、添付の図面を用いて詳細に説明する。なお、以下に説明する実施の形態は、本発明の実施手段としての一例であり、本発明が適用される装置の構成や各種条件によって適宜修正又は変更されてもよい。
【００１１】
図１は、本発明の実施形態による無線通信装置１００構成例を示すブロック図である。無線通信装置１００は、例えばカメラである。なお、ここでは、無線通信装置１００の一例としてカメラについて述べるが、無線通信装置１００は、カメラに限定されず、パーソナルコンピュータなどの情報処理装置であってもよい。無線通信装置１００は、外部無線通信装置１３０に対して無線通信を行うことができる。
【００１２】
次に、無線通信装置１００の構成を説明する。無線通信装置１００は、メインＣＰＵ１０１が各部の制御を行う。メインＣＰＵ１０１は、メイン制御手段であり、入力された信号、及びプログラムに従って、無線通信装置１００の各部を制御する。なお、メインＣＰＵ１０１の機能を複数のハードウェアが分担してもよい。
【００１３】
撮像部１１０は、撮像部１１０に含まれるレンズで結像された被写体光を電気信号に変換し、ノイズ低減処理などを行い、デジタルの画像データを出力する。メインＣＰＵ１０１は、その画像データを作業用メモリ１１２に蓄えた後、その画像データに対して所定の演算を行う。そして、メインＣＰＵ１０１は、演算後の画像データをＥｘｉｆ（Exchangeable image file format）情報などの付加情報と結合して記録媒体１１５に記録する。
【００１４】
不揮発性メモリ１１１は、電気的に消去・記録可能な不揮発性のメモリであり、メインＣＰＵ１０１により実行されるプログラムなどを格納する。シリアルフラッシュメモリ１１６は、無線通信装置１００の電源をオフにしても、無線通信装置１００の撮影パラメータや、電源オフ中の無線通信機能の利用設定の有効・無効の設定などの設定情報を記憶している。作業用メモリ１１２は、撮像部１１０で生成された画像データを一時的に保持するバッファメモリ、表示部１１３の画像表示用メモリ、及びメインＣＰＵ１０１の作業領域等として使用される。
【００１５】
表示部１１３は、撮像部１１０の撮像の際のビューファインダ画像の表示、撮像部１１０が撮像した画像データの表示、対話的な操作のための文字表示などを行う。なお、無線通信装置１００は、必ずしも表示部１１３を備える必要がない。無線通信装置１００は、表示部１１３と接続することができ、表示部１１３の表示を制御する表示制御機能を少なくとも有していればよい。
【００１６】
記録媒体１１５は、撮像部１１０から出力された画像データ等を記録することができる。記録媒体１１５は、無線通信装置１００に着脱可能でもよいし、無線通信装置１００に内蔵されていてもよい。すなわち、無線通信装置１００は、少なくとも記録媒体１１５にアクセスする手段を有していればよい。
【００１７】
操作部１１４は、ユーザによる無線通信装置１００に対する指示を受け付ける。操作部１１４は、例えば、ユーザが無線通信装置１００の電源のオン／オフを指示するための電源ボタン、撮像部１１０の撮像を指示するためのレリーズスイッチ、画像データの再生を指示するための再生ボタンなどの操作部材を含む。
【００１８】
無線通信部１０４は、無線通信コントローラの役割を担うハードウェアであり、無線信号を送受信するためのアンテナ、及び外部無線通信装置１３０との論理リンクを維持する無線通信の下位レイヤの制御プログラムを実行する制御部を有する。無線通信部１０４は、ＨＣＩ（Host Controller Interface）を有し、無線通信ホスト機能を備えるメインＣＰＵ１０１からシリアル通信１２０によるコマンドを受信する。また、無線通信部１０４は、外部無線通信装置１３０から無線接続要求や上位レイヤ向けのパケットを受信すると、シリアル通信１２０によってメインＣＰＵ１０１に通知する。また、無線通信部１０４は、メインＣＰＵ１０１がシリアル通信の準備が整っていることを検知するための入力ポート１２１と、メインＣＰＵ１０１に送信したい未送信データがあることを検知させるための出力ポート１２２を有する。無線通信部１０４は、外部無線通信装置１３０に対して無線通信を行う。
【００１９】
サブＣＰＵ１０３は、サブ制御手段であり、無線通信装置１００が省電力モードでも通電される。サブＣＰＵ１０３は、無線通信部１０４からのシリアル通信未送信データを検知した時や、ユーザによる操作部１１４の入力を検知した時に、メインＣＰＵ１０を起動し、その起動要因をメインＣＰＵ１０１に通知する。
【００２０】
以下、無線通信部１０４がＢＬＥ（Bluetooth Low Energy）の無線チップであり、無線通信装置１００がＢＬＥ（Bluetooth Low Energy）のペリフェラル装置である例を説明する。
【００２１】
図２は、ＢＬＥのソフトウェア（プログラム）の構成例を示すブロック図である。コントローラ２００は、図１の無線通信部１０４により実行されるソフトウェアである。ホスト２１０及びアプリケーションプログラム２２０は、図１の不揮発性メモリ１１１に記憶されるソフトウェアであり、メインＣＰＵ１０１によって実行される。無線通信装置１００が省電力モードに移行すると、サブＣＰＵ１０３及び無線通信部１０４は、給電が続き、動作を継続するが、メインＣＰＵ１０１は動作を停止する。そのため、メインＣＰＵ１０１上で動作するアプリケーションプログラム２２０及びホスト２１０も動作を停止する。
【００２２】
コントローラ２００は、ＢＬＥプロトコルスタックにおける物理層寄りの下位レイヤを担う。ＲＦ（Radio Frequency）制御部２０１は、物理層における電波送受信を行う。リンク層制御部２０２は、データフロー制御を行い、外部無線通信装置１３０との通信における送信タイミングと受信フレームの管理を行う。
【００２３】
ホスト２１０は、ＢＬＥプロトコルスタックにおける上位レイヤを担う。Ｌ２ＣＡＰ（Logical Link Control and Adaptation Layer Protocol）２１２は、上位レイヤデータと下位レイヤデータとの統合、分割、組立てを行う。ＧＡＴＴ（Generic Attribute Profile）／ＡＴＴ（Attribute Protocol）２１３は、ＢＬＥ通信でデータを送受信する方法や形式を定義し、ペアとなる無線通信装置間の通信役割を規定する。ＳＭ（Security Manager）２１４は、暗号鍵の配布や装置のペアリングを行う。ＧＡＰ（Generic Access Profile）２１５は、アドバタイズやスキャン、ＢＬＥのペリフェラル、セントラルの役割を規定し、接続の前に装置の発見のための機能を有する。
【００２４】
コントローラ２００は、ＢＬＥで定義されたＨＣＩを提供し、ホスト２１０は、ＨＣＩコマンドを用いることで、リンク層制御部２０２とＬ２ＣＡＰ２１２の間の会話が行われる。コントローラ２００とホスト２１０によって、ＢＬＥのプロトコルスタックが形成される。アプリケーションプログラム２２０は、ＧＡＰ２１５及びＧＡＴＴ／ＡＴＴ２１３が提供するＡＰＩを使って、ＢＬＥ通信を利用する。
【００２５】
ホスト２１０は、ＨＣＩコマンドを用いてコントローラ２００に振る舞いを指定しておくことで、定期的にアドバタイズ信号をブロードキャストする無線通信待ち受け状態にしたり、ペアリング済みの対向装置と通信接続を継続させることができる。また、コントローラ２００は、無線通信接続待機中に外部無線通信装置１３０から接続要求を受けた時、外部無線通信装置１３０との通信接続を確立することまではコントローラ２００単体で実行できる。しかし、コントローラ２００は、接続した外部無線通信装置１３０がペアリング済みの機器であるかどうかの判断はできない。また、コントローラ２００は、ＧＡＴＴ／ＡＴＴ２１３に定義されるデータパケットを受信した時も、上位レイヤ向けのパケットを受信したことは判断できるが、その内容は判断できない。よって、このような通信イベントが発生した場合、コントローラ２００は、ＨＣＩによってホスト２１０にイベントを通知する。
【００２６】
図３（Ａ）は、無線通信部１０４の処理例を示すフローチャートである。以下、無線通信部１０４は、無線受信待ち受け状態で、外部無線通信装置１３０から接続要求を受信した時の動作を説明する。ここで、無線通信装置１００は、省電力モードにおいても無線通信を許可する設定となっており、予めペアとなる外部無線通信装置１３０との暗号化鍵交換を行うペアリング操作は実施済みの状態とする。
【００２７】
ステップＳ３０１では、無線通信部１０４は、メインＣＰＵ１０１のホスト２１０からＨＣＩコマンドで指定された内容のアドバタイズ信号を、指定された間隔で定期的にブロードキャストする。次に、ステップＳ３０２では、無線通信部１０４は、外部無線通信装置１３０からの接続要求の受信待ち状態にする。次に、ステップＳ３０３では、無線通信部１０４は、外部無線通信装置１３０から接続要求を受信したか否かを判定する。無線通信部１０４は、接続要求を受信していないと判定した場合にはステップＳ３０１に処理を戻し、接続要求を受信したと判定した場合にはステップＳ３０４に処理を進める。
【００２８】
ステップＳ３０４では、無線通信部１０４は、外部無線通信装置１３０との接続を確立する。無線通信部１０４は、外部無線通信装置１３０から接続要求を受信した場合には、メインＣＰＵ１０１に問合せすることなく、外部無線通信装置１３０に対して無線接続を確立する。次に、ステップＳ３０５では、無線通信部１０４は、シリアル通信１２０で送信するデータがあることをメインＣＰＵ１０１側に示すため、出力ポート１２２をアサートする。次に、ステップＳ３０６では、無線通信部１０４は、メインＣＰＵ１０１がシリアル通信１２０の準備ができていることを示す通信許可ポートの入力電圧を検知する。
【００２９】
次に、ステップＳ３０７では、無線通信部１０４は、通信許可ポートの入力電圧がアサートされている場合には、メインＣＰＵ１０１のホスト２１０に対して、シリアル通信１２０を用いて通信イベント（接続要求）が発生したことを通知するメッセージを送信する。次に、ステップＳ３０８では、無線通信部１０４は、シリアル通信１２０による送信待ちのデータがなくなったか否かを判定する。無線通信部１０４は、送信待ちのデータがなくなっていないと判定した場合には、ステップＳ３０７に処理を戻し、送信待ちのデータがなくなったと判定した場合には、ステップＳ３０９に処理を進める。ステップＳ３０９では、無線通信部１０４は、シリアル通信１２０で送信するデータがないことをメインＣＰＵ１０１側に示すため、出力ポート１２２をネゲートし、メインＣＰＵ１０１からのコマンドを待つ。
【００３０】
図３（Ｂ）は、無線通信装置１００が、無線通信受信待ちの状態で、省電力モードに移行する時の動作を説明するためのフローチャートである。無線通信装置１００は、省電力モード移行条件を満たすと、図３（Ｂ）の処理を開始する。省電力モード移行条件は、ユーザによる操作が一定時間ない条件、又は、メインスイッチオフの条件である。無線通信装置１００は、省電力モードでは、ユーザからの入力又は外部無線通信装置１３０からの通信要求を受信するまで、メインＣＰＵ１０１を停止させる。省電力モードへの移行は、高い優先度で行われる動作であり、一度開始すると、中止することができない。
【００３１】
ステップＳ３１１では、メインＣＰＵ１０１は、省電力モードへの移行開始時に、外部無線通信装置１３０に対して無線通信接続中であるか否かを判定する。メインＣＰＵ１０１は、無線通信接続中であると判定した場合にはステップＳ３１２に処理を進め、無線通信接続中でないと判定した場合にはステップＳ３１４に処理を進める。
【００３２】
ステップＳ３１２では、メインＣＰＵ１０１は、アプリケーションプログラム２２０の処理により、無線通信部１０４に対して、シリアル通信１２０によりＨＣＩコマンドを発行し、無線通信切断を要求する。すると、無線通信部１０４は、外部無線通信装置１３０に対して無線通信を切断し、切断を実行したことをメインＣＰＵ１０１のホスト２１０に通知する。無線通信部１０４は、次のＨＣＩコマンドによる指示を待つ待機状態となる。
【００３３】
次に、ステップＳ３１３では、メインＣＰＵ１０１は、外部無線通信装置１３０からのホットスタートをするため、無線通信待ち受け設定のＨＣＩコマンドを無線通信部１０４に発行する。すると、無線通信部１０４は、図３（Ａ）のように、メインＣＰＵ１０１のホスト２１０から指定された内容のアドバタイズ信号を、指定された間隔で定期的にブロードキャストし、無線通信待ち受け状態になる。
【００３４】
次に、ステップＳ３１４では、メインＣＰＵ１０１は、省電力モードへの移行が終わるまで、無線通信部１０４からの通信イベントを受信しないようにするために、シリアル通信許可ポート１２１をネゲートする。これにより、メインＣＰＵ１０１は、無線通信部１０４からの受信の無効を無線通信部１０４に通知する。
【００３５】
次に、ステップＳ３１５では、メインＣＰＵ１０１は、無線通信部１０４からシリアル通信１２０により通信イベントを受信しているか否かをチェックする。次に、ステップＳ３１６では、メインＣＰＵ１０１は、省電力モード移行条件を満たした後、かつステップＳ３１４の前に、無線通信部１０４から通信イベント（接続要求）のメッセージを受信していたか否かを判定する。無線通信部１０４は、外部無線通信装置１３０との間の無線通信が切断された状態で、外部無線通信装置１３０から接続要求を受信すると、図３（Ａ）のステップＳ３０７において、メインＣＰＵ１０１に通信イベント（接続要求）のメッセージを送信する。メインＣＰＵ１０１は、通信イベントのメッセージを受信していたと判定した場合にはステップＳ３１７に処理を進め、通信イベントのメッセージを受信していないと判定した場合にはステップＳ３１８に処理を進める。
【００３６】
ステップＳ３１７では、メインＣＰＵ１０１は、正常に無線ホットスタートできるように、リカバリ処理を行う。このステップＳ３１７の処理の詳細は、後に図４（Ｂ）を参照しながら説明する。
【００３７】
次に、ステップＳ３１８では、メインＣＰＵ１０１は、ホスト２１０の無線通信制御機能を停止する。次に、ステップＳ３１９では、メインＣＰＵ１０１は、無線通信制御機能の他、全ての機能について省電力モードへ移行するため、メインＣＰＵ１０１を停止する準備が完了するまで待機し、準備が完了すると、ステップＳ３２０に処理を進める。
【００３８】
ステップＳ３２０では、メインＣＰＵ１０１は、サブＣＰＵ１０３に対してメインＣＰＵ１０１の停止準備完了を通知する。次に、ステップＳ３２１では、サブＣＰＵ１０３は、メインＣＰＵ１０１の停止準備完了の通知を受けて、メインＣＰＵ１０１の機能を停止する。メインＣＰＵ１０１は、自己の機能を停止する。
【００３９】
次に、ステップＳ３２２では、サブＣＰＵ１０３は、無線通信部１０４のシリアル通信送信待ちを示すポート１２２の割り込みを有効化し、ボート１２２の電圧検知（監視）を開始する。以上の処理により、無線通信装置１００は、省電力モードへの移行を完了する。
【００４０】
図４（Ａ）は、無線通信装置１００の処理例を示すフローチャートである。無線通信装置１００は、省電力モードであり、サブＣＰＵ１０３及び無線通信部１０４は、給電が続き、動作を継続するが、メインＣＰＵ１０１は動作を停止している。以下、無線通信装置１００が、外部無線通信装置１３０からの接続要求によって起動する無線ホットスタート時の動作を説明する。無線通信部１０４は、外部無線通信装置１３０から接続要求を受信すると、外部無線通信装置１３０に対してＢＬＥの通信接続を確立し、シリアル通信送信待ちを示すため、出力ポート１２２をアサートする。サブＣＰＵ１０３は、この出力ポート１２２のアサートを検知した時、図４（Ａ）の処理が開始する。
【００４１】
ステップＳ４０１では、サブＣＰＵ１０３は、無線通信部１０４のシリアル送信待ちを示す出力ポート１２２の割り込みを無効化するため、出力ポート１２２の電圧の検知（監視）を停止する。次に、ステップＳ４０２では、サブＣＰＵ１０３は、メインＣＰＵ１０１を起動する。次に、ステップＳ４０３では、サブＣＰＵ１０３は、メインＣＰＵ１０１を起動した要因が無線通信であることをメインＣＰＵ１０１に通知する。
【００４２】
メインＣＰＵ１０１は、起動要因が無線通信である場合、無線通信部１０４が既に稼働しており、無線ホットスタートによる起動であると判断する。なお、無線通信装置１００の設定がＢＬＥを使用する設定であり、かつ、起動要因が無線ホットスタートでない場合、メインＣＰＵ１０１は、無線通信部１０４の通電状況に応じて、二通りの動作をする。無線通信部１０４が通電されていない場合、メインＣＰＵ１０１は、無線通信部１０４に通電し、無線通信部１０４の制御部で実行されるプログラムを無線通信部１０４にアップロードし、無線通信部１０４を起動する。無線通信部１０４は、起動しただけでは待機状態なので、メインＣＰＵ１０１は、無線通信部１０４に対して、ＢＬＥのＧＡＴＴサービスの登録やアドバタイズ設定などを行い、アドバタイズを開始させて無線通信待ち受け状態にする。無線通信部１０４が通電されている場合、メインＣＰＵ１０１は、既に無線通信部１０４が稼働中で無線通信待ち受け状態であると判断し、無線通信制御アプリケーションプログラムとＢＬＥホスト機能を起動して通信イベントを待機する。
【００４３】
次に、ステップＳ４０４では、メインＣＰＵ１０１は、無線ホットスタートによる起動の時は、無線通信部１０４が既に稼働しており、通信イベントの送信待ち状態であることが分かるため、無線通信制御アプリケーションプログラムとＢＬＥホスト機能を起動する。これにより、メインＣＰＵ１０１は、無線通信制御を開始する。
【００４４】
次に、ステップＳ４０５では、メインＣＰＵ１０１は、アプリケーションプログラム２２０の処理により、無線通信制御の準備が完了すると、無線通信部１０４に対してシリアル通信許可を示すポート１２１をアサートする。次に、ステップＳ４０６では、メインＣＰＵ１０１は、ホスト２１０の処理により、シリアル通信１２０によって無線接続要求を受信することにより、無線通信部１０４が外部無線通信装置１３０と接続したことを検知する。すると、ホスト２１０とコントローラ２００がＢＬＥとして接続しているという状態が一致し、メインＣＰＵ１０１は、外部無線通信装置１３０との通信を開始する。上記のように、メインＣＰＵ１０１が起動し、コントローラ２００とホスト２１０がＢＬＥとして接続しているという状態は一致したが、この段階では、無線通信装置１００が接続した相手がペアリングした機器ではないかもしれない。
【００４５】
次に、ステップＳ４０７では、メインＣＰＵ１０１は、接続後に暗号化通信を開始し、外部無線通信装置１３０と会話する。そして、メインＣＰＵ１０１は、接続相手の外部無線通信装置１３０がペアリングした機器であり、かつ、外部無線通信装置１３０のアプリケーションが正規のものであること条件を満たすか否かを判定する。メインＣＰＵ１０１は、上記の条件を満たさないと判定した場合にはステップＳ４０８に処理を進め、上記の条件を満たすと判定した場合にはステップＳ４０９に処理を進める。
【００４６】
ステップＳ４０８では、メインＣＰＵ１０１は、図３（Ｂ）の処理により、再び省電力モードへ移行する。ステップＳ４０９では、メインＣＰＵ１０１は、無線通信部１０４以外のカメラ機能を起動し、通常モードへ移行する。
【００４７】
以上の処理により、無線通信装置１００は、省電力モードから通常モードへ移行する無線ホットスタートを実現できる。この機能を実現するためには、無線通信装置１００が省電力モードに移行する時に無線通信待ち受け状態になっている必要がある。省電力モードへの移行は、無線通信機能と無線通信機能以外の機能も並行して行われるため、開始したら中断することができない。メインＣＰＵ１０１は、省電力モードへの移行を開始してから無線通信部１０４とのシリアル通信を無効化するまでに、外部無線通信装置１３０との接続通知を受信してしまうと、コントローラ２００とホスト２１０の状態不一致が発生る。すると、正常に無線ホットスタートができなくなってしまう。そのため、図３（Ｂ）で説明したように、ステップＳ３１６において、メインＣＰＵ１０１は、通信イベントを受信していたと判定した場合には、ステップＳ３１７に進み、再び無線通信待ち受け状態にするためのリカバリ処理を行う。
【００４８】
図４（Ｂ）は、図３（Ｂ）のステップＳ３１７の処理の詳細を示すフローチャートである。ステップＳ４１１では、メインＣＰＵ１０１は、再びシリアル通信許可を示すポート１２１をアサートし、無線通信部１０４とのシリアル通信１２０を再開する。次に、ステップＳ４１２では、メインＣＰＵ１０１は、無線通信部１０４に対して、無線通信部１０４と外部無線通信装置１３０との間の無線通信を切断させる。無線通信部１０４は、外部無線通信装置１３０との間の無線通信を切断し、メインＣＰＵ１０１に対して、無線切断したことをシリアル通信１２０で通知する。
【００４９】
次に、ステップＳ４１３では、メインＣＰＵ１０１は、無線通信部１０４に対して、再び指定した設定でアドバタイズを開始して無線通信待ち受け状態になるよう指示する。これにより、無線通信部１０４は、図３（Ａ）のように、無線通信待ち受け状態になる。次に、ステップＳ４１４では、メインＣＰＵ１０１は、無線通信部１０４が無線待ち受け状態になったことを確認し、シリアル通信許可を示すポート１２１をネゲートする。
【００５０】
次に、ステップＳ４１５では、メインＣＰＵ１０１は、ポート１２１をネゲートする前に、無線通信部１０４から通信イベントを受信していたか否かをチェックする。次に、ステップＳ４１６では、メインＣＰＵ１０１は、通信イベントを受信していたか否かを判定する。メインＣＰＵ１０１は、通信イベントを受信していたと判定した場合にはステップＳ４１７に処理を進め、通信イベントを受信していないと判定した場合にはリカバリ処理を終了する。
【００５１】
ペアリング済みの外部無線通信装置１３０は、正規のアプリケーションの処理により、無線通信装置１００が省電力モードになったことを無線通信メッセージにより検知するので、自動で再接続を要求することはない。外部無線通信装置１３０は、ユーザ操作によってのみ接続要求を行う。したがって、ステップＳ４１６において、メインＣＰＵ１０１が、リカバリ処理中に再び通信イベントを受信していたと判定するようであれば、悪意のある外部無線通信装置１３０からの攻撃である可能性があるので、ステップＳ４１７に処理を進める。ステップＳ４１７では、メインＣＰＵ１０１は、無線通信部１０４の動作を停止させる。この場合、メインＣＰＵ１０１は、無線ホットスタートを諦めることになるが、攻撃によるバッテリの消耗を抑えることができる。メインＣＰＵ１０１は、無線ホットスタートを諦めた場合、再び操作部１１４により通常モードに復帰すれば、無線通信を再開する。なお、無線ホットスタートを確実に実施できるようにすることに重きを置く場合、メインＣＰＵ１０１は、リカバリ処理中に通信イベントを受信した時、ステップＳ４１１に処理を戻し、リカバリ処理を繰り返すことで実現することができる。メインＣＰＵ１０１は、省電力モードの状態で、無線通信部１０４が外部無線通信装置１３０からの接続要求を閾値以上の回数受信した場合には、無線通信部１０４を停止させることができる。
【００５２】
メインＣＰＵ１０１は、無線通信部１０４とのシリアル通信１２０を停止した後、無線通信部１０４が外部無線通信装置１３０から接続要求を受信した場合、無線通信装置１００の省電力モードへの移行が完全に終了した後、図４（Ａ）の処理を行う。
【００５３】
上記のように、メインＣＰＵ１０１は、省電力モード時にホスト２１０の機能が停止してしまう構成であっても、コントローラ２００からのシリアル通信要求を契機に通常モードに復帰することで無線ホットスタートを実現することができる。また、メインＣＰＵ１０１は、省電力モードへの移行を開始してからコントローラ２００との通信を停止するまでに通信イベントを受信した場合、再び無線通信待ち受け状態に戻すリカバリ処理を実施する。これにより、ホスト２１０とコントローラ２００の状態が不一致になることを防ぐことができる。
【００５４】
図５は、無線通信装置１００が省電力モードに移行する時の通信シーケンス図である。図５のステップの符号は、図３（Ａ）、（Ｂ）及び図４（Ｂ）のステップの符号と同じ符号で表す。同じ符号は、同じ処理を示す。
【００５５】
ステップＳ５０１では、メインＣＰＵ１０１は、図３（Ｂ）と同様に、省電力モードに移行する条件が満たされると、省電力モードへの移行処理を開始する。次に、ステップＳ３１２では、メインＣＰＵ１０１は、無線通信部１０４に対して、無線通信切断を要求する。次に、ステップＳ５０２では、無線通信部１０４は、外部無線通信装置１３０に対して無線通信を切断する。次に、ステップＳ５０３では、無線通信部１０４は、無線通信切断を実行したことを示す応答をメインＣＰＵ１０１に通知する。
【００５６】
次に、ステップＳ３１３では、メインＣＰＵ１０１は、無線通信待ち受け設定のＨＣＩコマンドを無線通信部１０４に発行する。次に、ステップＳ４１４では、メインＣＰＵ１０１は、無線通信部１０４が無線待ち受け状態になったことを確認し、シリアル通信許可を示すポート１２１をネゲートする。次に、ステップＳ４１５では、メインＣＰＵ１０１は、無線通信部１０４から通信イベントを受信していたか否かをチェックする。次に、ステップＳ４１７では、メインＣＰＵ１０１は、通信イベントを受信していたと判定した場合には、無線通信部１０４の動作を停止させる。
【００５７】
次に、ステップＳ３２０では、メインＣＰＵ１０１は、サブＣＰＵ１０３に対して、メインＣＰＵ１０１の停止準備完了を通知する。次に、ステップＳ３２１では、サブＣＰＵ１０３は、メインＣＰＵ１０１の停止準備完了の通知を受けて、メインＣＰＵ１０１を停止する。次に、ステップＳ３２２では、サブＣＰＵ１０３は、無線通信部１０４のシリアル通信送信待ちを示すポート１２２の割り込みを有効化し、ボート１２２の電圧検知（監視）を開始する。以上の処理により、無線通信装置１００は、省電力モードへの移行を完了する。
【００５８】
ステップＳ３０１では、無線通信部１０４は、メインＣＰＵ１０１からＨＣＩコマンドで指定された内容のアドバタイズ信号を、指定された間隔で定期的にブロードキャストする。次に、ステップＳ３０２では、無線通信部１０４は、外部無線通信装置１３０からの接続要求の受信待ち状態にする。次に、ステップＳ３０３では、無線通信部１０４は、外部無線通信装置１３０から接続要求を受信していないと判定した場合にはステップＳ３０１に処理を戻す。無線通信部１０４は、接続要求の受信待ち状態になる。
【００５９】
図６は、無線通信装置１００が省電力モードから通常モードに移行する時の通信シーケンス図である。図６のステップの符号は、図３（Ａ）及び図４（Ａ）のステップの符号と同じ符号で表す。同じ符号は、同じ処理を示す。
【００６０】
ステップＳ３０１では、無線通信部１０４は、図５と同様に、アドバタイズ信号を指定された間隔で定期的にブロードキャストする。次に、ステップＳ３０３では、無線通信部１０４は、外部無線通信装置１３０から接続要求を受信したと判定する。次に、ステップＳ３０４では、無線通信部１０４は、外部無線通信装置１３０との接続を確立する。次に、ステップＳ３０５では、無線通信部１０４は、シリアル通信１２０で送信するデータがあることをメインＣＰＵ１０１側に示すため、出力ポート１２２をアサートする。
【００６１】
次に、ステップＳ４０２では、サブＣＰＵ１０３は、メインＣＰＵ１０１を起動する。次に、ステップＳ４０３では、サブＣＰＵ１０３は、メインＣＰＵ１０１を起動した要因が無線通信であることをメインＣＰＵ１０１に通知する。
【００６２】
次に、ステップＳ４０４では、メインＣＰＵ１０１は無線通信制御アプリケーションプログラムとＢＬＥホスト機能を起動し、無線通信制御を開始する。次に、ステップＳ４０５では、メインＣＰＵ１０１は、無線通信部１０４に対して、シリアル通信許可を示すポート１２１をアサートする。次に、ステップＳ４０６では、メインＣＰＵ１０１は、無線通信部１０４から無線接続要求を受信することにより、無線通信部１０４が外部無線通信装置１３０と接続したことを検知する。次に、ステップＳ６０１では、メインＣＰＵ１０１は、外部無線通信装置１３０に対して、アトリビュート通信（ユーザー層のデータ通信）を行う。
【００６３】
次に、ステップＳ４０７では、メインＣＰＵ１０１は、接続相手の外部無線通信装置１３０がペアリングした機器であり、かつ、外部無線通信装置１３０のアプリケーションが正規のものであること条件を満たすか否かを判定する。次に、ステップＳ４０９では、メインＣＰＵ１０１は、上記の条件を満たすと判定した場合には、通常モードへ移行する。
【００６４】
以上の処理により、無線通信装置１００は、省電力モードから通常モードへ移行する無線ホットスタートを実現できる。
【００６５】
メインＣＰＵ１０１は、図３（Ｂ）の省電力モードに移行する処理を開始すると、その処理を中断することができない。無線通信部１０４は、ステップＳ３１３により、無線通信待ち受け状態となるため、外部無線通信装置１３０からの接続要求を受信してしまうことがある。図４（Ｂ）のリカバリ処理がない場合、無線通信部１０４は、外部無線通信装置１３０から接続要求を受信すると、メインＣＰＵ１０１に問合せすることなく接続処理まで実施し、接続したことをメインＣＰＵ１０１に通知する。メインＣＰＵ１０１は、無線通信部１０４からの接続通知を受信せずに停止した時、省電力モードへの移行が完了した後で、サブＣＰＵ１０３が信号を検知してホットスタートすることができる。しかし、メインＣＰＵ１０１は、無線通信部１０４からの接続通知を受信して、そのままホスト機能を停止させてしまうと、ホットスタート後に、無線通信部１０４が外部無線通信装置１３０と接続状態であることを知ることができず、状態ずれを起こしてしまう。
【００６６】
そこで、本実施形態では、メインＣＰＵ１０１は、省電力モードに移行するための処理の実行中に接続要求を受け付けた場合、図４（Ｂ）のリカバリ処理を行うことにより、状態ずれを起こすことなく、適切に接続要求に応答することができる。メインＣＰＵ１０１は、省電力モード時にホスト機能が停止してしまう構成であっても、外部無線通信装置１３０からの接続要求を契機に、通常モードに復帰することで無線ホットスタートを実現することができる。メインＣＰＵ１０１は、省電力モードへの移行を開始してから無線通信装置１３０との通信を停止するまでに通信イベントを受信した場合、再び無線通信待ち受け状態に戻すリカバリ処理を実施する。これにより、ホスト２１０とコントローラ２００の状態が不一致になることを防ぐことができる。
【００６７】
（その他の実施形態）
本発明は、上述の実施形態の１以上の機能を実現するプログラムを、ネットワーク又は記憶媒体を介してシステム又は装置に供給し、そのシステム又は装置のコンピュータにおける１つ以上のプロセッサがプログラムを読み出し実行する処理でも実現可能である。また、１以上の機能を実現する回路（例えば、ＡＳＩＣ）によっても実現可能である。
【００６８】
なお、上記実施形態は、何れも本発明を実施するにあたっての具体化の例を示したものに過ぎず、これらによって本発明の技術的範囲が限定的に解釈されてはならないものである。すなわち、本発明はその技術思想、又はその主要な特徴から逸脱することなく、様々な形で実施することができる。
【符号の説明】
【００６９】
１００  無線通信装置、１０１  メインＣＰＵ、１０３  サブＣＰＵ、１０４  無線通信部、１３０  外部無線通信装置
【図１】
2019106651.tif 000003
【図２】
2019106651.tif 000004
【図３】
2019106651.tif 000005
【図４】
2019106651.tif 000006
【図５】
2019106651.tif 000007
【図６】
2019106651.tif 000008