[第1の実施形態]
図1は、本実施形態における通信システムの概要を示す図である。本実施形態における通信システムは、携帯電話100、デジタルカメラ120を含む。これらは携帯型の無線通信装置の一例である。
携帯電話100及びデジタルカメラ120は外部装置と通信する無線LAN通信が可能である。携帯電話100とデジタルカメラ120は、図示しない無線LANアクセスポイント(以下、AP)と通信し、無線ネットワークに接続する機能を備えると共に、APを用いずにお互いが直接通信を行う機能も有する。
以下、携帯電話100の構成について説明する。携帯電話のシステムバス110には、CPU101、RAM102、不揮発性メモリ103、表示部104、操作部105、バッテリ106、3G通信部107、無線LAN部108、省電力無線通信部109が接続されている。
CPU101は、入力信号や各種のプログラムにしたがい、携帯電話100の各部を制御する。CPU101の制御として、例えば通信制御、記録制御、表示制御などがあげられる。
RAM102は書き換え可能なメモリであり、携帯電話100を制御するプログラムの作業領域として使用される。また、各種コンテンツデータやパラメータのバッファとしても使用される。
不揮発性メモリ103は、携帯電話100を制御するプログラムと、画像データや文字データ・その他のデータなどのデータを格納する。携帯電話100に電源が投入されると、CPU101は不揮発性メモリ103からプログラムを読み込み、各部の制御を開始する。不揮発性メモリ103は、例えばフラッシュメモリなどからなる。
表示部104は、CPU101の制御に基づいて、画像やGUI(Graphical User Interface)からなる画面などを表示する。表示部104は、例えば、液晶表示装置(LCD)とそれをコントロールするLCDドライバユニットで構成される。
操作部105は、ユーザの指示を受け付けるために使用される。本実施形態における操作部105は、複数のボタンと、表示部104の表示面に配置されたタッチパネルから構成される。操作部105はボタンの押下や、タッチパネルが検出する座標情報などをCPU101に通知する。
バッテリ106は、携帯電話100が動作するための電力を供給するためのユニットである。
3G通信部107は、携帯電話100と図示しない移動体通信網との間で音声およびデータを送受信するためのユニットである。3G通信部107は、無線通信を行うためのアンテナと無線信号を処理するための通信コントローラとから構成され、W−CDMA(UMTS)にしたがって無線通信を実現する。
無線LAN部108は、およそ数十メートルの通信範囲での無線通信を実現するための通信ユニットである。具体的な通信方式としては、例えば、IEEE801.11a/b/g/n/acなどがあげられる。無線LAN部108は、無線通信のためのアンテナと無線信号を処理するための通信コントローラから構成される。本実施形態では、後述するデジタルカメラ120の無線LAN部131との通信や、図示しないAPへの接続に用いられる。無線LAN部108での通信は、第1の通信方式による通信の一例である。
省電力無線通信部109は、無線LAN部108より少ない消費電力で無線通信を実現するための通信ユニットである。本実施形態でいう近距離通信とは、数m〜数+m程度の通信範囲を想定した無線通信であり、例えばBluetooth(登録商標)やZigBee(登録商標)があげられる。本実施形態ではBluetooth Low Energyと呼ばれる極めて消費電力の少ない通信を行うものとする。省電力無線通信部109での通信は、第2の通信方式による通信の一例である。
この省電力無線通信部109は、無線通信のためのアンテナと無線信号を処理するため変復調回路や通信コントローラから構成される。本実施例では、後述するデジタルカメラの120の省電力無線通信部133との通信に用いられる。
次に、デジタルカメラ120について説明する。
メインCPU121は、デジタルカメラ全体の制御をつかさどる。メインCPU121は、入力信号や各種のプログラムにしたがい、デジタルカメラ120の各部を制御する。メインCPU101の制御として、例えば通信制御、記録制御、表示制御、撮像制御などがあげられる。
RAM122、不揮発性メモリ123、操作部124、表示部125の役割は携帯電話100とほぼ同様であるため、ここでは説明を省略する。
記憶媒体I/F126は、いわゆるメモリカードなどの記憶媒体127を装着するためのインターフェースである。CPU121は、記憶媒体I/F126に装着された記憶媒体127からのデータの読み出しや、当該記憶媒体127に対するデータの書き込みを制御する。
記憶媒体127は、撮影した画像データを保持するための書き換え可能な不揮発性メモリであり、例えばSDメモリーカードが用いられる。
撮像部128は、被写体の光学像を電気的な映像信号に変換し、映像信号を内部バス133に出力する撮像素子などで構成される。撮像素子としては、例えばCMOSイメージセンサーやCCDイメージセンサーが利用される。
画像処理部129は、不揮発性メモリ123や記憶媒体127に格納された画像データや、撮像部128が出力する映像信号に対して各種画像処理を施す。なお、画像処理の種別によっては画像処理部129を用いずにCPU121がプログラムに従って画像処理を施すことも可能である。
バッテリ130は、デジタルカメラ120が動作するための電力を供給するためのユニットである。バッテリ130は、デジタルカメラ120全体に電力を供給するほかに、後述するサブCPU132・省電力無線通信部133および不揮発性メモリ134に限定して電力を供給することができる。サブCPU132・省電力無線通信部133および不揮発性メモリ134に限定して電力を供給している状態(以降、スタンバイ状態)では、デジタルカメラ120は消費電力が極めて低い状態を保つことができる。
無線LAN部131の役割は携帯電話100とほぼ同様であるため、ここでは説明を省略する。
サブCPU132は、後述する省電力無線通信部133による通信と、スタンバイ状態におけるデジタルカメラ120の制御をつかさどる。サブCPU132は、自身の動作に必要なメモリを内蔵することにより、メモリ122や不揮発性メモリ123に電力が供給されないスタンバイ状態においても動作することができる。
また、サブCPU132により、デジタルカメラS120はスタンバイ状態においても、省電力無線通信部133を用いて携帯電話100と通信することが可能である。さらに、サブCPU132は、省電力無線通信部133における通信内容に応じて、バッテリ130の電力をデジタルカメラ120全体が動作するように供給するように変更することができる。
省電力無線通信部133の役割は携帯電話100とほぼ同様であるため、ここでは説明を省略する。
不揮発性メモリ133は、サブCPU132を制御するプログラムと動作に必要なデータを保持する。サブCPU132は、電源が供給されると、不揮発性メモリ134からプログラムを読み込み、省電力部線通信部133の動作と、メインCPU121との通信の制御を開始する。不揮発性メモリ134は、例えばフラッシュメモリやEEPROMなどからなる。
なお、図1では、サブCPU132・省電力無線通信部133・不揮発性メモリ134は別々のハードウェアとして構成したが、ワンチップマイコンのように一つのハードウェアの中に統合して実現してもよい。
図2は、携帯電話100の外観を示す図であり、(a)と(b)は、それぞれ携帯電話100の正面図と側面図を示す。
201はタッチパネル付の液晶ディスプレイであり、図1の操作部105及び表示部104に含まれる。ユーザは液晶ディスプレイ201をタッチすることで、液晶ディスプレイ201に表示されるGUIの操作などを行うことができる。202は操作ボタンであり、操作部105に含まれる。ユーザはタッチパネル操作だけでなく、これらのボタンを用いることで携帯電話100の機能の切り替えや、表示部104に表示されるGUIの操作などを行うことができる。203はボリュームボタンであり、操作部105に含まれる。ユーザはこれらのボタンを用いることにより、音声通信時の音量を制御することができる。204は電源ボタンであり、操作部105に含まれる。ユーザはこのボタンを用いることにより、携帯電話100の電源ON/OFFなどの操作を行うことができる。
図3は、デジタルカメラ120の外観を表す図である。図3の(a)・(b)・(c)は、それぞれデジタルカメラ120の正面図・背面図・底面図である。
301はシャッターボタンであり、操作部124を構成する。シャッターボタン301は、半押し状態と全押し状態とを区別して検出可能な2段階押し込みスイッチとなっており、半押し状態のときにオートフォーカス制御などの撮影準備動作を開始し、全押し状態の場合に静止画データを撮影するための撮影動作を開始する。302はファインダー窓であり、撮影時の構図決定の際に被写体像を後述のファインダー接眼部305から確認することができる。303はストロボであり、撮影時に必要に応じて発光し、暗い条件下でもきれいな静止画の撮影を可能にする。304は撮影レンズであり、撮像部128を構成する。305はファインダー接眼部であり、ユーザはここから被写体像を光学的に確認することができる。306は電源ボタンであり、デジタルカメラ120の電源をON・OFFする。307は操作部124を構成するボタン群である。ユーザはこれらのボタンを利用し、デジタルカメラ120のメニューを表示したり、各種パラメータを設定したりする。
308は撮影開始前には撮影範囲(構図の決定)に使用したり、後述する操作メニューを表示したり、撮影した映像データを再生して表示するためのLCDであり、表示部125を構成する。309は三脚を固定するためのねじ穴である。310はバッテリ室であり、ユーザはこの中にバッテリ130と記憶媒体127を装着することができる。
<動作説明>
以下、本実施形態における各機器の動作を具体的に説明する。なお、以下のフローチャートに示す処理は、各機器のCPUが入力信号やプログラムにしたがい、機器の各部を制御することで実現される。
最初に、携帯電話100とデジタルカメラ120を省電力無線通信により相互に通信可能とするための初期設定時の動作について詳細に説明する。
まず、図4のフローチャートを用いて、デジタルカメラ120の動作について詳細に説明する。なお、本フローチャートの開始に先立ち、デジタルカメラ120は全体が動作する状態となっており、ユーザは操作部124を操作してデジタルカメラ120の設定を変更することが可能である。なお、この設定を行うにあたって、携帯電話100とデジタルカメラ120の間でBluetoothによる通信が行われる。本実施形態の携帯電話100はBluetoothのCentralとして、デジタルカメラ120はBluetoothのPeripheralとして振る舞うものとする。
ステップS401において、デジタルカメラ120はユーザ操作などに基づき設定メニュー画面を表示し、ユーザ操作によりペアリング設定メニューが選択された場合に、ステップS402に進む。設定メニュー画面の動作については図5の操作画面の図を用いて後述する。
ステップS402においては、サブCPU132を通じ、省電力無線通信部133を用いて、ペアリングを開始するための情報をAdvertiseする。本実施形態では、Bluetooth LE(Low Energy)のGATTプロファイルにより、デジタルカメラ120とのペアリングを行うためのCameraPairサービスを独自に規定している。このCameraPairサービスのAdvertise信号を送信することにより、Advertiseを行う。CameraPairサービスのAdvertise信号には、初期設定を求める接続対象のデバイス(以下Central)がCentralを一意に特定するためのID情報であるCentralID特性を示す領域が含まれる。さらに、初期設定の進行状況を表すStatus特性を示す領域も含まれている。CentralID特性は、Bluetoothでの、ペアリングと呼ばれるデバイス間の認証処理を行うことが値を書き込む要件となっている。ステップS402におけるAdvertise信号のCentralID特性にはNULL値が、Status特性には文字列”Initializing”が設定されている。このBluetoothのAdvertiseは、明示的に停止の指示があるまでは、省電力無線通信部133によって、自動的に、繰り返し行われる。
ステップS403においては、ステップS402で開始したAdvertiseに対して、Centralから、CentralID特性への書き込み要求があったか否かを判定する。この要求は、後述の、携帯電話100側の処理ステップS605で行われる要求に対応するものである。要求がなかった場合には、要求があるまでステップS403の処理を繰り返す。所定の書き込み要求があった場合には、ステップS404以降の処理に進む。
ステップS404からステップS408までの処理は、Bluetoothの標準的なプロトコルにより定義されているペアリング処理である。本実施形態におけるCameraPairサービスにおいては、CentralID特性に値を書き込むためにはペアリングが必要である。したがってステップS404においては、省電力無線通信部133が、書き込みを要求したCentralがすでにBluetoothペアリング済みであるか否かを判定する。ペアリング済みの場合には、CentralID特性への値の書き込みは成功するため、そのままステップS409の処理に進む。ペアリングがまだ行われていない場合には、ステップS405において、省電力無線通信部133がCentralに対してペアリング要求を送信した後、ステップS406においてメインCPU121が表示部125にPIN確認画面を表示する。ここでは、ペアリングの要求ごとに毎回異なる6桁の数値が生成され、PIN番号として利用される。続いて、ステップS407において、省電力無線通信部133が、CentralからのPIN番号を受信したか否かを判定する。このPIN番号の受信は、後述の、携帯電話101の処理ステップS608で行われる送信に対応する物である。受信していない間は、受信があるまでステップS407の処理を繰り返す。受信した場合には、受信したPIN番号がステップS406で生成したPIN番号と一致しているか否かを判定する。一致していない場合には、ステップS405に戻り再度ペアリング要求の送信を行う。一致していた場合には、ステップS409に進む。
ステップS409においては、CameraPairサービスのCentralIDの値を、サブCPU132を通じて不揮発性メモリ134に保存する。その後、ステップS410においては、初期設定が完了したことをCentralに対して通知する。具体的には、AdvertiseにおけるCameraPairサービスの、Status特性の値を”Success”として、Advertiseを受信したCentralが、初期設定が終了したことが判断できるようにする。
続いて、ステップS411においては、表示部125にペアリング完了画面を表示する。ペアリング完了画面の動作については図5の操作画面の図を用いて後述する。
最後に、ステップS412で、ステップS402で開始したBluetoothのCameraPairサービスのAdvertiseを停止し、処理を終了する。
次に、図5の操作画面の図を用いて、図4の処理を行うにあたり、ユーザがデジタルカメラ120を用いて行う操作について詳細に説明する。
ステップS401のペアリング設定メニューの選択を行うためには、ユーザは以下の操作を行う。
まず、ユーザは、操作部307を操作することで、図5(a)に示すデジタルカメラ120の設定トップ画面を表示する。この、設定トップ画面において、ユーザが、表示されている設定項目一覧501の中から、携帯電話との接続設定メニュー項目502を選択すると、図5(b)に示す、携帯電話との接続設定画面が表示される。この、携帯電話との接続設定画面において、ユーザが、表示されている設定項目一覧511の中から、携帯電話とのペアリング設定メニュー512を選択すると、図5(c)に示す、携帯電話とのペアリング画面が表示される。この携帯電話とのペアリング画面内で、新しい携帯電話の追加メニュー項目521を選択する。以上が、ステップS401のペアリング設定メニューの選択を行うために、ユーザが行う操作の説明である。
図5(d)は、ステップS406で表示されるPIN確認画面である。このPIN確認画面においては、ユーザはデジタルカメラ120に対して操作を行う必要はない。PIN確認画面に表示されるPINコード531を携帯電話100に対して入力することで、結果としてペアリングが行われ、ステップS407以降に進むことになる。
図5(e)は、ステップS412で表示されるペアリング完了画面である。ユーザがこのペアリング完了画面において、OKボタン542を選択することで、ステップS412の処理は終了し図4の処理全体が完了することとなる。
以上で、携帯電話100とデジタルカメラ120を省電力無線通信により相互に通信可能とするための初期設定における、デジタルカメラ120の動作と、その際にユーザがデジタルカメラ120に対して行う操作について説明を行った。
続いて、携帯電話100とデジタルカメラ120を省電力無線通信により相互に通信可能とするための初期設定における、携帯電話100の動作と、その際にユーザが携帯電話100に対して行う操作について説明する。
まず、図6のフローチャートを用いて、携帯電話100の動作について詳細に説明する。なお、本フローチャートの開始に先立ち、ユーザは携帯電話100において、デジタルカメラ120と通信を行うためのアプリケーションを起動しているものとする。なお、この設定を行うにあたって、携帯電話100とデジタルカメラ120の間でBluetoothによる通信が行われる。携帯電話100はBluetoothのCentralとして、デジタルカメラ120はBluetoothのPeripheralとして振る舞う。
ステップS601において、携帯電話100は、設定メニュー画面を表示し、ユーザがペアリング設定メニューを選択するのを待ち、ステップS602に進む。設定メニュー画面の動作については図7の操作画面の図を用いて後述する。
設定メニュー画面におけるユーザ操作によりステップS602に進むと、ステップS602において、ペアリング実行中画面を表示したのち、ステップS603に進む。ステップS603においては、省電力無線通信部109において、Bluetooth PeripheralからのAdvertiseを受信し、ステップS604において、受信したAdvertiseが、CameraPairサービスを含むか否かを判定する。ステップS603においてAdvertiseを受信していない場合、または受信したAdvertiseがCameraPairサービスでない場合には、CameraPairサービスのAdvertiseを受信するまで、ステップS603の処理を繰り返す。CameraPairサービスのAdvertiseを受信した場合は、ステップS605に進む。ここで受信するCameraPairサービスのAdvertiseは、前述の、ステップS402においてデジタルカメラ120より送信されたAdvertiseに対応する。
ステップS605においては、携帯電話100の個々のデバイスを特定可能な、固有のIDを生成し、CameraPairサービスのCentralID特性に対して書き込み要求を行う。
前述の図4の説明において記述したように、CameraPairサービスのCentralID特性は、値の書き込みにあたって、Bluetoothでの、ペアリングと呼ばれるデバイス間の認証処理が必要なように設定されている。そのため、ステップS606からステップS608で説明する、ペアリング処理が行われる。この処理は、Bluetoothの標準的なプロトコルにより定義されているペアリング処理である。まず、ステップS606においては、Centralからのペアリング要求を受信したか否かを判定する。このペアリング要求は、前述の図4ステップS405において送信されるペアリング要求に対応するものある。この要求は省電力無線通信部109が、CentralID特性をAdvertiseしたPeripheralとすでにBluetoothペアリング済みでない場合にのみ送信される。すでにペアリング済みでありCentralID特性に値を書き込むことができる場合には、この要求を受信しないため、ステップS609以降の処理に進む。ペアリング要求を受信した場合には、ステップS607で、表示部104にPIN入力画面を表示する。PIN入力画面での操作については、図7の操作画面の図を用いて後述する。PIN入力画面でユーザがPIN番号を入力すると、入力したPIN番号を、ステップS608でPeripheralに対して送信する。デジタルカメラ120では、この送信を受けて、すでに説明したようにステップS407およびステップS408におけるPIN番号の一致判定処理を行う。
ステップS608でPIN番号を送信した後には、ステップS609で、ペアリング完了通知を受信したか否かを判定する。具体的には、CameraPairサービスのStatus特性の値が”Success”になったか否かを判定する。これは、前述のデジタルカメラ120の処理ステップS410において行われる処理に対応しており、ステップS608で送信したPID番号が、デジタルカメラ120のステップS406で生成したPID番号と一致する場合の通知である。そのため、ペアリング完了通知を受け取れなかった場合には、入力されたPIDが誤っていると判断し、ステップS606の処理を繰り返す。ペアリング完了通知を受け取った場合には、ステップS610において、表示部104にペアリング完了画面の表示を行う。ペアリング完了画面の動作については図7の操作画面の図を用いて後述する。ペアリング完了画面を閉じると、図6の処理全体が完了である。
次に、図7の操作画面の図を用いて、図6の処理を行うにあたり、ユーザが携帯電話100を用いて行う操作について詳細に説明する。
ステップS601のペアリング設定メニューの選択を行うためには、ユーザは、図7(a)に示すアプリケーションのトップ画面において、表示されている操作ボタンの中から、新しいカメラとのペアリングボタン702を選択する。図7(b)は、ステップS602において液晶ディスプレイ201に表示されるペアリング実行中画面である。ペアリング実行中画面には、ユーザに対してデジタルカメラ120をペアリングモードで起動することを促すメッセージ711が表示されるが、このペアリング実行中画面においてはユーザは携帯電話100に対して操作を行う必要はない。代わりに、指示されたようにデジタルカメラ120をペアリングモードで起動する必要がある。この操作についてはステップS401としてすでに説明した。その結果、結果としてペアリング処理が開始され、ステップS603以降に進むことになる。
図7(c)は、ステップS607で表示されるPIN入力画面である。ユーザは、メッセージ721の指示に従い、図5(d)のように表示されるPINコード531をPIN入力領域722に入力した後、ペアリング実行ボタン723を選択する。この操作により、ステップS607の処理は終了しS608以降の処理に進む。
図7(d)は、ステップS610で表示されるペアリング完了画面である。ユーザがこのペアリング完了画面において、OKボタン732を選択することで、ステップS610の処理は終了し図6の処理全体が完成することとなる。
以上で、携帯電話100とデジタルカメラ120を省電力無線通信により相互に通信可能とするための、携帯電話100の動作と、その際にユーザが携帯電話100に対して行う操作について説明を行った。
デジタルカメラ120は、電源ボタン306をOFFにした際に、デジタルカメラ全体への電力の供給をストップするか、あるいはスタンバイ状態とするかを切り替えられる。具体的には、携帯電話100からの通信を省電力無線通信部133で受信できるようにするかどうかを設定によって切り替えることが可能である。以下、図8を用いて詳細に説明する。
図8(a)は、ユーザが操作部307を操作することで、表示部125に表示される設定トップ画面の図である。この、設定トップ画面において、ユーザが、表示されている設定項目一覧801の中から、携帯電話との接続設定メニュー項目802を選択すると、図8(b)に示す、携帯電話との接続設定画面が表示される。携帯電話との接続設定画面において、ユーザが、表示されている設定項目一覧811の中から、携帯電話からの起動設定メニュー812を選択すると、図8(c)に示す、携帯電話からの起動設定画面が表示される。携帯電話の起動設定画面には、有効メニュー821、無効メニュー822の2つの選択肢が表示されている。ユーザが、有効メニュー821を選択すると、デジタルカメラ120は、電源ボタン306をOFFにした時にスタンバイ状態になり、携帯電話100からの通信によりスタンバイ状態を解除可能な設定となる。ユーザが無効メニュー822を選択した場合には、デジタルカメラ120は、電源ボタン306をOFFにした時にデジタルカメラ全体への電力の供給をストップし、携帯電話100からの通信があっても電源がONになることはない。
次に、スタンバイ状態のデジタルカメラ120に装着された記憶媒体127内の画像データを、携帯電話100から取得する際の、デジタルカメラ120と携帯電話動作100のそれぞれの動作について説明する。
まず、図9のフローチャートを用いて、デジタルカメラ120の動作について詳細に説明する。なお、本フローチャートの開始に先立ち、デジタルカメラ120はスタンバイ状態となっているとする。図9のフローチャートにおいて、ステップS901〜S906は、サブCPU132による処理であり、ステップS907〜S921はメインCPU121による処理であり、ステップS922はメインCPU121とサブCPU132の両方による処理である。
ステップS901において、サブCPU132は、自身に内蔵された不揮発性メモリ134内に、ペアリング済みBluetoothデバイスのCentralID情報が1つ以上保存されているか否かを判定する。
保存されているCentralIDがある場合にはステップS902へ進み、ない場合には本フローチャートを終了する。
ステップS902において、サブCPU132は、省電力無線通信部133を用いてデジタルカメラ120に関する情報をAdvertiseする。具体的には、本実施形態のデジタルカメラ120は、Bluetooth LEのGATTプロファイルにより、画像の公開を行うためのCameraViewサービスを独自に規定している。ステップS902では、このCameraViewサービスのAdvertiseを行う。CameraViewサービスのAdvertise信号には、Advertiseを行っているデジタルカメラ120の名称を示すCameraName特性を示す領域が含まれる。また、デジタルカメラ120の無線LAN131のMACアドレスを示すCameraMAC特性を示す領域が含まれる。さらに、公開された画像を選択保存する接続対象のBluetoothデバイス(以下Central)が、無線LAN MACアドレスを書き込むためのMAC特性を示す領域が含まれる。さらに、無線LANのセッション接続要求に必要な情報を保持する接続キー特性を示す領域が含まれる。MAC特性については、値の書き込みにあたって、Bluetoothでの、ペアリングと呼ばれるデバイス間の認証処理が必要なように設定されている。ステップS902においては、MAC特性と接続キー特性にはNULL値が設定された状態でAdvertiseが行われている。このBluetoothのAdvertiseは、明示的に停止の指示があるまでは、省電力無線通信部133によって、自動的に、繰り返し行われる。なお、本ステップで送信するAdvertiseは、後述のステップS1002で受信される信号に対応している。
ステップS903において、サブCPU132は、省電力無線通信部133に対して、CameraViewサービスのMAC特性に対する書き込み要求があるか否かを判定する。サブCPU132は、所定の書き込み要求信号を受信するまで本ステップの処理を繰り返す。所定の書き込み要求信号を受信すると、ステップS904へ進む。
なお、本ステップで受信する書き込み要求信号は後述のステップS1007で送出される信号に対応している。
ステップS904において、サブCPU132は、ステップS903で受信した書き込み要求信号が、ペアリング済みのBluetoothデバイスから送信されたものか否かを判定する。この判定は、書き込み要求を行っているCentralのCentralIDが、不揮発性メモリ134内に保存されているかどうか、つまり、図4の初期設定によって設定されたCentralであるかどうかで行う。ペアリング済みのBluetoothデバイスによるものであれば、CameraViewサービスのMAC特性の値を不揮発性メモリ123に保存した後、ステップS905へ進む。ペアリングしていないBluetoothデバイスによるものであれば書き込み要求を受信するためにステップS903に戻る。
ステップS905において、サブCPU133は、ステップS902で開始したAdvertiseを中止する。
ステップS906では、サブCPU133は、バッテリ130を制御してメインCPU121を含むデジタルカメラ120全体に電源を供給する。
ステップS907では、メインCPU121は、無線LAN部131を制御して無線LAN通信が可能な状態とする。以降のデジタルカメラ120の通信は、メインCPU121が無線LAN部131を制御することで実施される。なお、この時点では、無線LAN部131はAPなど他の通信装置との通信確立(アソシエーション)はしていない。
ステップS908では、メインCPU121は、無線LANの電波が到達可能な周囲の通信装置に対する、デジタルカメラ120が提供するアプリケーションレイヤのサービスの情報通知を有効にする。本実施例では、デジタルカメラ120は、アプリケーションレイヤのサービスとして画像データ提供サービスを提供する。
また、メインCPU121は、サービスの情報通知を有効にした際に、デジタルカメラ120内でユニークな通知IDを乱数などを用いて生成する。この通知IDは後述するステップS910で受信するセッション開始要求に含まれることになる。メインCPU121は、セッション開始要求の許可判定時(後述するステップS911)に、セッション開始要求に含まれる通知IDを確認することで、どのサービス情報通知に対応してセッション開始要求が行われたかを判別することができる。例えばデジタルカメラ120が複数のサービスを同時に提供する場合などに、それぞれのサービスの情報通知に別々の通知IDを与えることで、セッション開始要求を適切なサービスに対して行うことができるようになる。なお、この通知IDは後述するステップS915でサービス情報の通知を停止するまでメモリ122に保持される。
この時点では無線LAN部131は他の通信装置とアソシエーションしていないので、IEEE802.11で定められたフレームタイプのうちマネージメントフレームを用いて、サービスの情報通知のための信号の送受信を行う。
本実施例では、マネージメントフレームの一種であるプローブリクエストフレームによりアプリケーションレイヤのサービスの検索が行われた場合に、プローブレスポンスフレームを返信することによってサービスの情報通知を行う。
プローブリクエストフレームには、検索したいアプリケーションレイヤのサービス、検索したい対象の通信装置のMACアドレス、検索を実行している通信装置のMACアドレスを示す情報などが含まれている。
検索したいアプリケーションレイヤのサービスとして指定したサービスを提供する通信装置のみが、このプローブリクエストに応答する。本実施例では、画像データ提供サービスが検索したいアプリケーションサービスとしてされていた場合に、デジタルカメラ120はプローブレスポンスフレームを返信する。検索したい対象の通信装置のMACアドレスとしては、特定の通信装置のMACアドレスを指定してもよいし、任意の通信装置を意味する値を指定してもよい。特定のMACアドレスを指定した場合には、当該MACアドレスを有する通信装置のみが、このプローブリクエストフレームに応答する。
プローブレスポンスフレームには、レスポンス送信元のMACアドレス、通知ID、サービスの追加情報などが含まれている。
また、ステップS908以降では、後述するステップS915で停止するまで、CPU121は無線LANによる提供サービスの情報通知を継続的に行うものとする。すなわち、この間においてプローブリクエストフレームによるサービスの検索に対しては、プローブレスポンスフレームによるサービスの情報通知を随時行う。
なお、本ステップで受信するプローブリクエストフレームは後述するステップS1010で送出された信号であり、ステップS908で返信するプローブレスポンスフレームは後述するステップS1011において受信される信号に対応している。
ステップS909では、メインCPU121は、サブCPU131を介してBluetoothの接続キー特性の値を更新する。本実施例では接続キー特性の値は、ステップS908で生成した通知IDとする。
なお、本実施例ではS902の説明で述べたとおり、BluetoothのCameraMAC特性が含まれているが、このCameraMAC特性が含まれないような構成の場合は、通知IDとMACアドレスの組み合わせを接続キー特性として本ステップで値を更新してもよい。
デジタルカメラ120とBluetoothで通信可能な通信機器は、この接続キー特性の値をBluetoothの特性読み出し要求により取得することができる。具体的には後述するステップS1009で読み出すことになる。
ステップS910では、メインCPU121は、デジタルカメラ120の提供するサービスへの論理的な接続を確立するためのセッション開始要求を待つ。本ステップにおいても、IEEE802.11で定められたマネージメントフレームを用いてセッション開始要求の受信を行う。
具体的には、マネージメントフレームの一種であるアクションフレームとして、セッション開始要求を受信するのを待つ。
このセッション開始要求のアクションフレームには、セッション開始要求の送信元のMACアドレスとセッションを開始したいサービスの情報通知に対応する通知IDがデータとして含まれている。
このセッション開始要求を受信した場合はステップS911へ進む。
なお、本ステップで受信するアクションフレームは、後述するステップS1012で送信する信号に対応している。
ステップS911では、メインCPU121は、ステップS903で受信したMACアドレスとステップ908で生成した通知IDを用いて、セッション開始を許可するか否かを判定する。具体的には、サブCPU132を介して不揮発性メモリ134から読み出したMACアドレスが、ステップS910で受信したセッション開始要求送信元のMACアドレスと一致し、かつ、ステップS908で生成した通知IDがステップS910で受信した通知IDと一致する場合に限り、セッションの開始を許可する。
MACアドレスが一致する場合は、セッション要求を行った通信装置は、ステップ903・S904においてBluetoothで通信した通信装置と同一のデバイスであることになる。
セッションの開始を許可した場合にはステップS912へ進み、許可しなかった場合には、ステップS913へ進む。
ステップS912はセッション開始要求を許可しなかった場合の処理である。
メインCPU121は、セッション開始拒否を意味するデータをアクションフレームとして、セッション開始要求元の通信装置に返信する。
メインCPU121は、当該信号を返信するとステップS910に戻り、次なるセッション開始要求を待つ。
なお、本ステップで返信するアクションフレームは、後述するステップS1013で判定する信号に対応している。
ステップS913はセッション開始要求を許可した場合の処理である。
メインCPU121は、セッション開始許可を意味するデータをアクションフレームとして、セッション開始要求元の通信装置に返信する。
また、この際に、アプリケーションレイヤのサービスに関連する情報を返信内容に含めてもよい。例えば、画像データ提供サービスであれば、PTP−IP(Picture Transfer Protocol Over TCP/IP Network)のようなアプリケーションレイヤで使用するプロトコルの情報を含んでもよい。
なお、本ステップで返信するアクションフレームは、後述するステップS1013で判定する信号に対応している。
ステップS914では、メインCPU121は、セッション開始要求を行った通信装置とのセッションの確立を行う。
具体的には、WiFi Directプロトコル仕様に基づいた処理を行い、通信装置間でどちらが無線LANアクセスポイントになり、どちらが無線LANステーションになるかといった無線レイヤにおける役割を決定する。
Wi−Fi Directにおいては、無線LANアクセスポイント機能を実施する通信装置をP2Pグループオーナー(以下、GO)、無線LANステーション機能を実施する通信装置をP2Pクライアント(以下、CL)と称する。
GOとCLが決定すると、GOとCL間でアソシエーションを行い、無線LANのレイヤとして接続する。さらに、GOとCL間でIPアドレスの決定も行われる。
本ステップが完了することで、セッション開始要求を行った通信装置とデジタルカメラ120との論理的な接続が確立する。すなわち、前記通信装置のアプリケーションは、デジタルカメラ120の提供するアプリケーションレイヤのサービスとのTCP/IPおよびUDP/IPによる通信を行うことができるようになる。
なお、本ステップの処理は、後述するステップS1015に対応している。
ステップS915では、メインCPU121は、ステップS908で有効にしたアプリケーションレイヤのサービスの通知情報を無効にする。したがって、本ステップ以降はサービスを検索するためのプローブリクエストフレームには応答しないことになる。また、ステップS908でRAM122に格納した通知IDも消去する。
ステップS916では、メインCPU121は、ステップS908で通知していたアプリケーションレイヤのサービスを実現するためのアプリケーションを開始する。
具体的には、PTP−IPのレスポンダー機能を開始し、以降TCP/IPデータとして受信したPTP―IPパケットと、それに含まれるPTPコマンドに応じた動作をするようになる。
ステップS917では、メインCPU121は、ステップS916で開始したアプリケーションレイヤのサービスに対するコマンドを受信したか否かを判定する。
具体的には、受信したTCP/IPデータがPTP−IPパケットであるか否かを判定し、PTP−IPパケットである場合にはステップS918へ進み、異なる場合にはステップS919へ進む。
なお、本ステップで受信するPTP−IPパケットは、後述するステップS1017やS1019等で送信するPTP−IPパケットに対応している。
ステップS918では、メインCPU121は、受信したPTP−IPパケットとそれに含まれたPTPコマンドに応じた動作を行う。
例えば、指定した画像データのサムネイルを取得するPTPコマンドを受信した場合は、記憶媒体127に格納された当該データからサムネイルデータを生成し、PTPレスポンスとして返信する。同様に画像データを取得するPTPコマンドを受信した場合は、記憶媒体127に格納された当該データの一部あるいはすべてをメモリ122に読み込み、PTPレスポンスとして返信する。
ステップS919では、メインCPU121は、ステップS914で確立したセッション切断要求があるか否かを判定する。このセッション切断要求は、あらかじめ決められたポート番号を用いてTCPあるいはUDPのデータを送受信することにより行う。
セッション切断要求がある場合はステップS920に進み、ない場合はステップS917に戻り次なるPTP−IPパケットを待つ。
ステップS920では、メインCPU121は、ステップS914で確立したセッションを終了させる。具体的には、WiFi Directプロトコル仕様に基づいた処理を行い、アソシエーションの解除し、GOあるいはCLの役割を終了する。ステップS921では、メインCPU121は、ステップS916で開始したアプリケーションレイヤのサービスを実現するためのソフトウェアを停止する。
ステップS922では、メインCPU121は、無線LAN部131を制御してすべての無線LAN通信が行えない状態とする。
ステップS923では、メインCPU121は、サブCPU132にスタンバイ状態に進むことを指示した後、すべての処理を停止する。サブCPU132は、バッテリ130を制御して、サブCPU132・省電力無線通信部133および不揮発性メモリ134にのみ電力を供給し、デジタルカメラ120をスタンバイ状態に遷移させる。
本ステップが完了すると、ステップS902に戻り、サブCPU132はBluetoothによるAdvertiseを再開し、次なる接続処理の開始を待つ。以上が、デジタルカメラ120の動作である。
続いて、図10のフローチャートを用いて、携帯電話100の動作について詳細に説明する。なお、本フローチャートの開始に先立ち、携帯電話100の無線LAN部108は通信可能な状態であるとする。無線LAN部の通信状態としては、他の通信装置と接続中(セッション開始中)であってもよいし、接続相手がいない状態であってもよい。
また、デジタルカメラと通信して画像データを取得するアプリケーションはあらかじめインストールされているものとする。
ステップS1001では、CPU101は、ユーザにより画像を取得するためのアプリケーションの起動が起動されるのを待つ。アプリケーションの起動は、ユーザが操作部106を操作して指示する。
画像を取得するためのアプリケーションが起動するとステップS1002へ進む。
ステップS1002では、CPU101は、省電力無線通信部109を制御して、他の通信装置がAdvertiseとして送信する信号を受信する。
なお、本ステップで受信するAdvertiseは、前述のステップS902で送信される信号に対応している。
Advertiseを受信するとステップS1003へ進む。
ステップS1003では、CPU101は、ステップS1002で受信したAdvertiseが、CameraViewサービスを含むか否かを判定する。
CameraViewサービスのAdvertiseを受信した場合は、ステップS1004へ進み、CameraViewサービスでない場合はステップS1002へ戻り次のAdvertiseの受信を待つ。
ステップS1004では、CPU101は、ステップS1002で受信し、かつ、ステップS1003でCameraViewサービスを含むと判定されたAdvertiseを送信した通信機器を、検出済みカメラとして表示部104に発見済みカメラ画面に表示する。発見済みカメラ画面の動作については、図11(b)を用いて後述する。
ステップS1005では、CPU101は、ユーザが検出済みのカメラのいずれかを選択したか否かを判定する。具体的には、図11(b)のGUIがタッチパネルつき液晶ディスプレイに表示されている状態において、ユーザがカメラ名が表示されているエリアのいずれか(たとえば1112)をタッチしたかどうかを判定する。
カメラ名がタッチされた場合は、ステップS1006へ進み、タッチされていない場合はステップS1002へ戻り次のAdvertiseの受信を待つ。
ステップS1006で、CPU101は、表示部104の表示をBluetooth接続中画面に変更する。Bluetooth接続中画面の動作については、図11(c)を用いて後述する。
ステップS1007では、ステップS1005においてユーザが選択したカメラがAdvertiseしたCameraViewサービスのMAC特性に対して、省電力無線通信部109を用いて自身のMACアドレスを書き込む。
ステップS1008では、CPU101は、ステップS1007で行ったBluetoothによるMACアドレスの書き込みが成功したか否かを判定する。
MACアドレスの書き込みに成功した場合はステップS1009へ進み、失敗した場合にはS1024へ進む。
なお、本ステップで送信する書き込み要求信号は前述のステップS903で受信する信号と対応している。
ステップS1009で、CPU101は、表示部104の表示を無線LAN接続中画面に変更する。無線LAN接続中画面の動作については、図11(d)を用いて後述する。
ステップS1010では、CPU101は、省電力無線通信部109を用いてステップS1005においてユーザが選択したカメラの接続キー特性を読み込む。
ステップS1011では、CPU101は、ステップS1010で読み込んだ接続キー特性の値が有効なものか否かを判定する。具体的には、接続キー特性の値がNULLであった場合は無効と判定し、NULL以外であった場合は有効と判定する。無効と判定された場合にはステップS1010に戻って再び接続キー特性の読み込みを試み、有効と判定された場合にはステップS1012へ進む。したがって、前述のステップS909で接続キー特性の値が更新されるまで、接続キー特性の読み込みを繰り返すことになる。
なお、本実施例では、このように接続キー特性の読み出しを繰り返すことにより、接続キー特性の値の更新を待ったが、BluetoothのNotificationの仕組みを用いて接続キー特性の値が変更された場合に携帯電話100に通知されるような構成としてもよい。このような構成の場合は、CPU101は接続キー特性の値の通知を待ち、通知を受けてから省電力通信部109を用いて接続キー特性を読み出す、というように動作することになる。
以降、携帯電話100の通信は、CPU101が無線LAN部108を制御することで実施される。
ステップS1012では、CPU101は、ステップS1011で検出した通信装置に対して、論理的な接続を確立するためのセッション開始要求を行う。本ステップにおいては、IEEE802.11で定められたマネージメントフレームを用いてセッション開始要求の受信を行う。
具体的には、マネージメントフレームの一種であるアクションフレームとして、セッション開始要求を送信する。このセッション開始要求のアクションフレームには、セッション開始要求の送信元のMACアドレスと、ステップS1010で受信したプローブレスポンスフレームから取得した通知IDとがデータとして含まれている。
また、CPU101は、マネージメントフレームの送信先のMACアドレスには、ステップS1002で受信するAdvertiseにおける、CameraViewサービスのCameraMAC特性の値を用いる。
本実施例ではS902の説明で述べたとおり、BluetoothのCameraMAC特性が含まれているが、このCameraMAC特性が含まれないような構成の場合は、接続キー特性の値に含まれるMACアドレスを送信先として利用する。なお、本ステップで送信するアクションフレームは、前述のステップS910で受信する信号に対応している。
ステップS1013では、CPU101は、ステップS1012で送信したセッション開始要求に対する応答が、セッション開始拒否を意味するデータを含むアクションフレームか否かを判定する。セッション開始拒否のアクションフレームであった場合はステップS1024へ進み、異なる場合はステップS1014へ進む。
なお、本ステップで判定するアクションフレームは、前述のステップS912で送信する信号に対応している。
ステップS1014では、CPU101は、ステップS1012で送信したセッション開始要求に対する応答が、セッション開始許可を意味するデータを含むアクションフレームか否かを判定する。
また、この受信したアクションフレームに、アプリケーションレイヤのサービスに関連する情報が含まれていてもよい。例えば、画像データ提供サービスであれば、PTP−IPのような使用するプロトコルの情報が含まれていてもよい。
セッション開始許可のアクションフレームであった場合はステップS1015へ進み、異なる場合にはステップS1012へ戻り、再度セッションの開始を要求する。
なお、本ステップで判定するアクションフレームは、前述のステップS913で送信する信号に対応している。
ステップS1015では、CPU101は、セッション開始許可を応答した通信装置(すなわちステップS1005で選択したカメラ)とのセッションの確立を行う。
本ステップの処理は、前述のステップS914の処理と同様のため、説明を省略する。
なお、本フローチャートの実行以前に、既に無線LAN部108が他の通信装置あるいはAPとのセッションを確立していた場合は、本ステップでは新たなセッションを構築するものとする。
本ステップが完了することで携帯電話100とユーザがステップS1005で選択したデジタルカメラとの論理的な接続が確立する。
すなわち、ステップS1001で起動したアプリケーションは、前記選択したデジタルカメラの提供するアプリケーションレイヤのサービスとのTCP/IPおよびUDP/IPによる通信を行うことができるようになる。
本実施例では、PTP−IPを用いて通信を行うものとする。
ステップS1016で、CPU101は、表示部104の表示を接続完了時に表示されるGUIに変更する。図11(f)はステップ1016で表示されるGUIの例である。1151にステップS1005でユーザが選択したカメラ名が表示され、ユーザは無線LANによる接続処理が完了したことを認識することができる。
なお、ユーザが1152のボタンを選択(タップ)すると、ステップS1017へ進む。
ステップS1017では、CPU101は、セッションを確立したカメラに対し、サムネイルデータを取得するためのPTPコマンドをPTP−IPを用いて送信し、取得したサムネイルデータを用いて、ユーザが取得する画像を選択するためのGUIを表示する。
なお、本ステップで送受信するサムネイルを取得するためのPTP−IPパケットは、前述のステップS916およびステップS917で送受信するPTP−IPパケットと対応している。
図11(g)はステップS1017で表示されるGUIの例である。
カメラから取得したサムネイルデータは1162で示す領域に一覧表示される。ユーザが各サムネイルをタップするとデータ取得対象を表すマークが重畳表示される。例えば、1164で示すサムネイルをタップすると、1165で示すマークが表示される。
ステップS1018では、CPU101は、操作部105の操作により、ステップS1017で表示したGUIにおいて画像の保存が選択されたか否かを判定する。
CPU101は、図11(g)において保存ボタン1163がタップされた場合に画像の保存が選択されたと判定する。
画像保存が選択された場合はステップS1019へ進み、選択されていない場合はステップS1021へ進む。
ステップS1019では、CPU101は、図11の(g)で保存対象として選択された各サムネイルに対して、画像データを取得するためのPTPコマンドをPTP−IPを用いて送信することで、それぞれの本体画像データを取得する。
なお、本ステップで送受信するPTP−IPパケットは、前述のステップS917およびステップS918で送受信するPTP−IPパケットと対応している。
ステップS1020では、CPU101は、GUI画面を更新し画像の取得が完了したことをユーザに通知する。具体的には図11(g)でしめしたデータ取得対象を示すマークを消去する。
ステップS1021では、CPU101は、画像取得アプリケーションを終了する指示がなされたか否かを判定する。CPU101は、図11(g)において終了ボタン1161がタップされた場合に終了が指示されたと判定する。
終了が指示された場合はステップS1022へ進み、終了が指示されていない場合はステップS1017へ戻り取得する画像の選択を継続する。
ステップS1022では、CPU101は、ステップS1015で確立したセッションを終了させる。
具体的には、WiFi Directプロトコル仕様に基づいた処理を行い、アソシエーションの解除し、GOあるいはCLの役割を終了する。
ステップS1023では、CPU101は、ステップS1001で開始した、カメラとの接続処理を終了し、本フローチャートを終了する。
一方、ステップS1024は、ステップS1008およびステップS1013のいずれかにおいて接続処理が失敗した場合の処理であり、CPU101は、接続失敗を表す接続失敗画面を表示する。接続失敗画面の動作については、図11(e)を用いて後述する。
次に、図11の操作画面の図を用いて、図10の処理を行うにあたり、ユーザが携帯電話100を用いて行う操作について詳細に説明する。
ステップS1001において、デジタルカメラとの接続操作を実行するために、ユーザは、図11(a)に示すアプリケーションのトップ画面において、表示されている操作ボタンの中から、カメラとの接続ボタン1101を選択することで、ステップS1002のAdvertise受信処理に進む。
続いて表示される画面は、図11(b)に示す、ステップS1004で表示される発見済みカメラ画面である。この画面には、これまでステップS1002からステップS1005までの処理の繰り返しで受信された、CameraViewサービスのAdvertiseを行っているPeripheralを、カメラ一覧領域1111に一覧して表示している。カメラ一覧領域1111に表示されるのは、CameraViewサービスのCameraName特性から取得した文字列である。ユーザが、発見済みカメラ画面において特定のカメラ1112を選択すると、ステップS1005からステップS1006に進み、図11(c)のBluetooth接続中画面が表示される。また、ステップS1009においては、図11(d)の無線LAN接続中画面が表示される。ユーザは、Bluetooth接続中画面および無線LAN接続中画面においては携帯電話100に対して操作を行う必要はなく、メッセージ1121あるいはメッセージ1131の表示に従い、接続処理が終わるのを待つのみでよい。Bluetooth接続中画面においては、1121にステップS1005でユーザが選択したカメラ名と、Bluetoothによる接続中であることが表示され、ユーザはBluetoothによる接続処理が行われていることを認識することができる。また、無線LAN接続中画面においては、1131にステップS1005でユーザが選択したカメラ名と、無線LANによる接続中であることが表示され、ユーザは無線LANによる接続処理が行われていることを認識することができる。
ステップS1008のBluetooth書き込み、あるいはステップS1013の無線LANセッション開始のいずれかに失敗した場合には、ステップS1024で、図11(e)に示す接続失敗画面が表示される。ユーザは、接続失敗画面が表示されたら、メッセージ1141の指示に従い、OKボタン1142を選択すると、処理はステップS1023に進み、カメラとの接続操作は終了する。
図11(f)は、ステップS1016で表示される接続完了確認画面である。ユーザは、この画面においては、OKボタン1152を選択することで、処理はステップS1017に進む。
図11(g)は、ステップS1017で表示される画像選択画面である。画像選択画面には、終了ボタン1161、サムネイル一覧1162、保存ボタン1163が表示されている。ユーザが終了ボタン1161を選択すると、ステップS1021における終了指示が行われ、ステップS1022に進む。サムネイル一覧1162には、デジタルカメラ120に保存されている画像のサムネイルが一覧で表示される。ユーザは、表示されているサムネイルから、携帯電話100に保存をしたい画像のサムネイル1164を選択すると、サムネイル上には選択アイコン1165が表示される。サムネイル一覧に表示されている画像の中から、複数の画像を選択することで、選択アイコン1165を複数表示することも可能である。また、すでに選択アイコン1165が表示されている画像を再度選択することで、選択アイコン1165を消去することも可能である。選択アイコン1165が1つ以上表示された状態で、保存ボタン1163を選択すると、処理はステップS1018からステップS1019に進み、選択された画像に対して、ステップS1016の画像データ取得処理が実行される。ステップS1020では、ステップS1016で保存した画像のサムネイル上から、選択アイコン1165が消去される。
以上述べたように、本実施形態では、Bluetoothによる低消費電力で通信を待機することにより、例えばデジタルカメラのようなバッテリ駆動の携帯機器においても通信を常時待ち受けることを可能にした。
さらに本実施形態では、Bluetoothによる通信の後、さらに無線LANによるネットワークを形成する前に自機とBluetoothにより通信した相手かを判断する構成とした。このことにより、無駄なネットワークの形成することを防止することが可能となる。
また、本実施形態ではデジタルカメラを一度省電力状態にすれば、ユーザは携帯電話のみを操作することでデジタルカメラから携帯電話への画像の送信が可能となる。したがって、ユーザは画像を送信したい場合、デジタルカメラと携帯電話の両方を取り出して操作する必要がない。
[他の実施形態]
また、本発明は、以下の処理を実行することによっても実現される。即ち、上述した実施形態の機能を実現するソフトウェア(プログラム)を、ネットワーク又は各種記憶媒体を介してシステム或いは装置に供給し、そのシステム或いは装置のコンピュータ(またはCPUやMPU等)がプログラムを読み出して実行する処理である。