(57)【特許請求の範囲】
【請求項１】
第１の装置と通信を行う有線通信手段と、
第２の装置と通信を行う無線通信手段とを備え、
前記有線通信手段と前記第１の装置との通信が可能で、かつ前記無線通信手段と前記第２の装置との通信が可能でない状態において、前記第１の装置から前記第２の装置へのコマンドを受信した場合、前記第２の装置からの応答であることを示す第１の応答を生成し、前記第１の応答を前記第１の装置へ送信することを特徴とする無線通信装置。
【請求項２】
前記有線通信手段と前記第１の装置との通信が可能で、かつ前記無線通信手段と前記第２の装置との通信が可能な状態において、前記第１の装置から前記第２の装置へのコマンドを前記有線通信手段が受信した場合、前記受信したコマンドを前記第２の装置に送信し、前記第２の装置に送信したコマンドに対する前記第２の装置からの第２の応答を前記無線通信手段が受信した場合に、前記第２の応答を前記第１の装置に送信することを特徴とする請求項１に記載の無線通信装置。
【請求項３】
前記無線通信装置は、前記第１の装置から取り外し可能であることを特徴とする請求項１または２に記載の無線通信装置。
【請求項４】
前記有線通信手段と前記第１の装置との通信が切断された場合に、前記無線通信手段による通信を停止させることを特徴とする請求項１から３の何れか１項に記載の無線通信装置。
【請求項５】
有線通信手段により第１の装置と通信を行い、
無線通信手段により第２の装置と通信を行う通信方法であって、
前記有線通信手段と前記第１の装置との通信が可能で、かつ前記無線通信手段と前記第２の装置との通信が可能でない状態において、前記第１の装置から前記第２の装置へのコマンドを受信した場合に、前記第２の装置からの応答であることを示す第１の応答を生成し、前記第１の応答を前記第１の装置へ送信することを特徴とする通信方法。
【請求項６】
前記有線通信手段と前記第１の装置との通信が可能で、かつ前記無線通信手段と前記第２の装置との通信が可能な状態において、前記第１の装置から前記第２の装置へのコマンドを前記通信手段が受信した場合、前記受信したコマンドを前記第２の装置に送信し、前記第２の装置に送信したコマンドに対する前記第２の装置からの第２の応答を前記無線通信手段が受信した場合、前記第２の応答を前記第１の装置に送信することを特徴とする請求項５に記載の通信方法。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は無線通信装置および通信方法に関する。
【背景技術】
【０００２】
デジタルカメラなどの撮像装置では、記録装置が一体化されており、撮像データを装置に内蔵もしくは装着された記録媒体に記録している。そして、デジタルカメラ内部に記録された画像データをパーソナルコンピュータ（以下ＰＣ）等の外部装置で用いる場合、デジタルカメラと外部装置の両方が有するデジタルインタフェースをケーブルで接続し、データをデジタルカメラからＰＣへ転送する（特許文献１参照）。
【０００３】
また、近年においては、デジタルカメラとプリンタを直接ケーブルで接続し、ＰＣを介さずにプリントするダイレクトプリントに対応したデジタルカメラ、プリンタも製品化されている。
【０００４】
このように、デジタルカメラと外部装置との間でデータ転送を行う場合、従来はＵＳＢ（ユニバーサルシリアルバス）インタフェースをケーブルで接続するといった有線接続が一般的であった。そして、このような物理的な伝送路上で、予め決められた通信プロトコルに従ってデータ交換を行っていた。
【０００５】
たとえば、ＰＣとデジタルカメラのデータ交換プロトコルとしては、ＵＳＢのStill Imaging Device Classで規定されているＰＴＰ（Picture Transfer Protocol）や、マスストレージデバイスクラスで定義されているプロトコルを利用することが多い。
【０００６】
特に、ＯＳレベルでＰＴＰをサポートしているＷｉｎｄｏｗｓ（登録商標）ＸＰやＭａｃＯＳ（登録商標）Ｘが稼働するＰＣでは、デジタルカメラを接続すると、それがデジタルカメラであることを認識する。そして、例えばデータ転送アプリケーションを自動で起動し、データ転送を開始する等の動作が可能であり、ユーザの負荷軽減と、利便性の向上を実現している。
【０００７】
また、上述のダイレクトプリントに関して、デジタルカメラとプリンタを直接接続する際の手順等を定めた、ピクトブリッジという規格も提案されている。この規格のＶｅｒｓｉｏｎ１．０に従えば、相互の接続が完了すると、ユーザがデジタルカメラ側の操作部、表示部を用い、印刷する画像を選択したり、印刷指示したりすることが可能である。ピクトブリッジ規格においても装置間の通信にはＰＴＰを利用しているため、デジタルカメラがＰＴＰによる通信をサポートしていれば、ユーザはデジタルカメラを接続する外部装置がＰＣでもプリンタでも同様に操作すればよい。
【０００８】
さらに最近では、ワイヤレスネットワークの技術の進歩及び低価格化により、ＢｌｕｅＴｏｏｔｈ（登録商標）やＩＥＥＥ８０２．１１ｂといった無線通信規格に準拠した無線通信機能を様々な機器に組み込む動きも活性化している。
【０００９】
しかし、無線通信機能を実現するには、個々の機器に無線通信用モジュール、アンテナなどが必要である。現状では、部品コスト、実装スペースの確保、またはシステムソフトウェアへの機能追加負荷といった部分を解決できておらず、特に低価格な機器においては、標準搭載機能にまでは至っていない。
【００１０】
一方で、無線通信機能を内蔵していないＰＣに無線通信機能を追加するための無線アダプタという製品が発売されている。これらはＰＣが有する拡張スロット（ＰＣＩスロット、ＰＣカードスロット等）や外部インタフェース（ＵＳＢ，ＩＥＥＥ１３９４等）に接続され、接続されたインタフェースを通じた無線通信機能を実現する。
【００１１】
このような無線アダプタは、一般に、専用のドライバソフトウェアが必要となる。そして、このドライバソフトウェアが、各種インタフェースに接続された無線アダプタを、無線ネットワークデバイスとしてＰＣに認識させている。
【先行技術文献】
【特許文献】
【００１２】
【特許文献１】特開２００５−２２３７１０号公報
【発明の概要】
【発明が解決しようとする課題】
【００１３】
しかしながら現在、無線ネットワークで接続されるデバイスとしてはＰＣ、プリンタなどが一般的であるため、デジタルカメラなどの携帯機器の接続に関して整備された状況とは言えない。最近のＯＳはデジタルカメラをＵＳＢインタフェースで接続して用いるためのデバイスドライバを標準で有しているので、ユーザはデジタルカメラとＰＣのＵＳＢインタフェースを接続すれば、ＰＣでデジタルカメラを認識・利用することができる。
【００１４】
しかし、無線通信に対応したデジタルカメラは現時点ではまだ一般的ではないため、ＰＣで認識・利用するためには、専用のデバイスドライバソフトウェアをＰＣにインストールするか、ＦＴＰなどの汎用ネットワークプロトコルを利用するものが多い。
【００１５】
デバイスドライバを用意して接続する場合、ユーザによるインストール作業が新たに必要となる。また、開発側としては、デバイスドライバソフトウェア開発負荷が増大する。ＦＴＰなどの既にネットワークで汎用的に利用されているプロトコルを利用する場合、ユーザに対してＦＴＰサーバーを用意してもらう必要がある。また、ＰＣでは接続された機器がデジタルカメラであることを認識しないため、通信の設定等に際してネットワークの知識やスキルが要求される。このように、ＵＳＢ接続時よりもユーザに高い知識が要求される。また、デジタルカメラ内にＵＳＢ接続時とは全く異なるプロトコルによる通信を行うためのソフトウェアを実装をすることが必要になり、開発側の負荷も増大する。
【００１６】
また、前述したピクトブリッジのような、ダイレクトプリントに関する規格においても、ＵＳＢによる有線接続を前提としている。そのため、無線接続時にＦＴＰなどの汎用プロトコルをデジタルカメラが利用する場合には、プリンタ側でも同等のプロトコルを利用可能にする必要がある。
【００１７】
このように、従来、デジタルカメラと外部装置との接続は、ＵＳＢインタフェースを有線接続することを前提としてＯＳや規格が成立しているため、無線通信による接続を行いたい場合には、ユーザの利便性が低下することを避けられなかった。
【００１８】
本発明はこのような従来技術の課題に鑑みてなされたものであり、ユーザの利便性を損なわずに、無線通信により通信を行う外部装置を有線通信により通信を行う外部装置から利用可能とすることを目的とする。
【課題を解決するための手段】
【００１９】
上述の目的は、第１の装置と通信を行う有線通信手段と、第２の装置と通信を行う無線通信手段とを備え、有線通信手段と第１の装置との通信が可能で、かつ無線通信手段と第２の装置との通信が可能でない状態において、第１の装置から第２の装置へのコマンドを受信した場合、第２の装置からの応答であることを示す第１の応答を生成し、第１の応答を第１の装置へ送信することを特徴とする無線通信装置によって達成される。
【発明の効果】
【００２０】
本発明によれば、ユーザの利便性を損なわずに、無線通信により通信を行う外部装置を有線通信により通信を行う外部装置から利用可能とすることができる。
【図面の簡単な説明】
【００２１】
【図１】本発明の第１及び第２の実施形態における無線通信システムの構成の一例を示す図である。
【図２】第１及び第２の実施形態におけるデジタルカメラ１００の構成例を示すブロック図である。
【図３】第１及び第２の実施形態における無線アダプタ３００の構成例を示すブロック図である。
【図４】第１及び第２の実施形態のデジタルカメラ１００に実装されるソフトウェアモジュールとその関連、動作を説明する図である。
【図５】第１及び第２の実施形態の無線アダプタ３００に実装されるソフトウェアモジュールとその関連、動作を説明する図である。
【図６】第１の実施形態における無線アダプタ３００の動作を、デジタルカメラ及びＰＣとの動作と共に示したシーケンス図である。
【図７】第２の実施形態における無線アダプタ３００の動作を、デジタルカメラ及びＰＣとの動作と共に示したシーケンス図である。
【図８】第１及び第２の実施形態におけるＰＣ２００の構成例を示すブロック図である。
【発明を実施するための形態】
【００２２】
以下、図面を参照して、本発明の好適な実施形態について説明する。
＜第１の実施形態＞
図１は、本発明の第１の実施形態における無線通信システムの構成の一例を示す図である。本実施形態における無線通信システムは、無線通信装置である無線アダプタ３００と、撮像装置の一例であるデジタルカメラ１００と、外部装置の一例であるパーソナルコンピュータ（ＰＣ）２００とから構成される。
【００２３】
図１において、デジタルカメラ１００は無線通信機能が内蔵もしくは取り付け可能になっており、無線通信装置である無線アダプタ３００と無線通信が可能である。無線アダプタ３００は、ＰＣ２００とＵＳＢ（Universal Serial Bus）で接続可能である。そして、後述するように、ＰＣ２００から見ると、無線アダプタ３００は有線接続されたデジタルカメラとして仮想的に振る舞う。
【００２４】
（ＰＣ２００の構成）
図８は、本実施形態におけるＰＣ２００の構成例を示すブロック図である。
図８において、ディスプレイ８０１はアプリケーションプログラムによって処理中のデータの情報、各種メッセージメニューなどを表示し、ＣＲＴ（Cathode Ray Tube）、ＬＣＤ(Liquid Crystal Display)等から構成される。ディスプレイコントローラ８０２は、ディスプレイ８０１への画面表示制御を行う。入力デバイス８０３は、文字などを入力したり、ＧＵＩ（Graphical User Interface）におけるアイコンやボタンなどを指し示すためなどに用いられる。具体的には、キーボード、マウス、トラックボール、ジョイスティック、タッチパネルなどが含まれる。ＣＰＵ（Central Processing Unit）８０４はＰＣ２００全体の制御を司る。
【００２５】
ＲＯＭ（Read Only Memory）８０５はＣＰＵ８０４が実行するプログラムやパラメータ等を記憶している。ＲＡＭ（Random Access Memory）８０６は各種プログラムをＣＰＵ８０４が実行するときのワークエリア、エラー処理時の一時退避エリア等として用いられる。
【００２６】
ハードディスクドライブ（ＨＤＤ）８０７、リムーバブルメディアドライブ（ＲＭＤ）８０８は、ＰＣ２００の記憶装置として機能する。リムーバブルメディアドライブ８０８は、取り外し可能な記録媒体の読み書き又は読み出しを行う装置であり、フレキシブルディスクドライブ、光ディスクドライブ、光磁気ディスクドライブ、メモリカードリーダはもとより、取り外し式ＨＤＤなどであってもよい。
【００２７】
なお、本実施形態におけるＰＣ２００の各種機能を実現するプログラムは、ＲＯＭ８０５、ＨＤＤ８０７、ＲＭＤ８０８の１つ以上に記憶される。また、ＯＳ、ブラウザ等のアプリケーションプログラム、データ、ライプラリ等もその用途に応じてＲＯＭ８０５、ＨＤＤ８０７、ＲＭＤ８０８（の記録媒体）の１つ以上に記憶される。
【００２８】
拡張スロット８０９は、例えばＰＣＩ(Peripheral Component Interconnect)バス規格に準拠した拡張カード装着用スロットであり、ビデオキャプチャボードや、サウンドボード、ＧＰＩＢボードなど、様々な拡張ボードを装着することが可能である。
【００２９】
外部インタフェース８１０は、ＵＳＢ２.０等のＵＳＢ（Universal Serial Bus）規格に準拠した通信インタフェースであり、無線アダプタ３００とＵＳＢにより接続される。
【００３０】
ネットワークインタフェース８１１は、ＩＥＥＥ８０２．３ｘ規格（xはi, u, z, ab)等に準拠した有線通信機能を有する。バス８１２はアドレスバス、データバスおよび制御バスからなり、上述した各ユニット間を接続する。
【００３１】
（デジタルカメラ１００の構成）
図２は、本実施形態におけるデジタルカメラ１００の構成例を示すブロック図である。
図２において、撮像部１０５は、レンズ部、撮像素子、駆動回路等から構成される。撮像素子には、ＣＣＤイメージセンサ、ＣＭＯＳイメージセンサを用いることができる。画像処理部１０４は、撮影した画像（静止画、動画の何れか）の画像データ等を処理する。ＣＰＵ（Central Processing Unit）１０３は、プログラムメモリ１１０が記憶する制御プログラム等を用いて、デジタルカメラ１００の動作を制御する。
【００３２】
第１記憶部１０６は、ＤＲＡＭ等から構成され、撮影された画像の画像データを保持する。第２記憶部１０７は、フラッシュメモリ等から構成され、デジタルカメラ１００に関する様々な設定を記憶する。操作部１０８は、スイッチ、ボタン等の操作部材を有し、デジタルカメラ１００のユーザインターフェースを提供する。表示部１０９は、ＬＣＤ（液晶表示器）等から構成され、撮影された画像の縮小画像を表示する。また、表示部１０９は、デジタルカメラ１００に関する設定、状態、警告等をマーク、アイコン、メッセージで表示する。
【００３３】
プログラムメモリ１１０は、デジタルカメラ１００の動作を制御する制御プログラム等を記憶した不揮発性メモリである。メモリカード１１１は、取り外し可能な記憶媒体の一例である。メモリカードには、ＳＤメモリカード、コンパクトフラッシュ（登録商標）などを用いることができる。なお、デジタルカメラ１００に用いる記憶媒体は、メモリカードに限るものではなく、リムーバブルハードディスクなどを用いることも可能である。
【００３４】
通信制御部１０２は、USB Device部１０２１と、無線通信部１０２２とを有する。USB Device部１０２１は、ＵＳＢ２.０等のＵＳＢ規格に準拠したものであり、ＵＳＢを用いたデータ通信を制御する。また、USB Device部１０２１は、デジタルカメラ１００をＵＳＢデバイスとして動作させるＵＳＢデバイスコントローラモジュールを有する。無線通信部１０２２は、少なくともＩＥＥＥ８０２．１１ｂに準拠したものであり、無線ＬＡＮを用いたデータ通信を制御する。本実施形態では、USB Device部１０２１と無線通信部１０２２とを排他的に動作するように構成するが、同時に動作するように構成しても良い。なお、本実施形態において、ＵＳＢを用いたデータ通信は有線通信であり、無線ＬＡＮを用いたデータ通信は無線通信である。
【００３５】
なお、デジタルカメラ１００は、第２記憶部１０７の一部をメモリカード１１１のように使用してもよい。この場合、メモリカード１１１がデジタルカメラ１００に装着されていない場合であっても、デジタルカメラ１００は第２記憶部１０７を記憶媒体として静止画又は動画を撮影することができる。
【００３６】
図４は、本実施形態におけるデジタルカメラ１００に実装されるソフトウェアモジュールとその関連、動作を説明する図である。図４に示す各ソフトウェアモジュールは、プログラムメモリ１１０の中のプログラム記憶領域に格納されている。なお、図４に示すモジュールのうち、１つ以上がハードウェアによって実現されても良い。
【００３７】
USB Driver ４０１は、USB Device部１０２１を制御し、ＰＣ２００等の外部装置とのＵＳＢ接続を行う際に利用されるモジュールである。USB Driver ４０１はＵＳＢイメージングクラス（イメージクラス）ドライバとして機能するモジュールである。PTP Transport For USB ４０２は、イメージングクラスで利用されるＰＴＰ（Picture Transfer Protocol）のトランスポート層に相当する部分を提供するモジュールである。ここではＰＴＰの仕様とＵＳＢ固有の仕様を理解し、必要なトランスポートを行う。このUSB Driver ４０１とPTP Transport For USB ４０２により、ＵＳＢで外部装置と接続した場合に、ホスト側がイメージングデバイスを利用可能な環境であれば、ＵＳＢバスの構成までは完了する。
【００３８】
PTP FrameWork ４０６はＵＳＢホストから送られてくる各種ＰＴＰオペレーションを処理したり、デバイスからのＰＴＰイベントをホストに送信するためのフレームワークを提供するモジュールである。
ここではトランスポート層での差異はすでに隠蔽されており、PTP FrameWork ４０６は、ＵＳＢと無線ＬＡＮとの違いを意識することはない。
【００３９】
PictBridge App ４０７はデジタルカメラとプリンタをＵＳＢで直接接続して動作させる規格であるピクトブリッジに準拠した動作を実現するためのアプリケーションモジュールである。また、File Transfer App ４０８は外部装置からファイル転送を要求された場合に応答して動作するアプリケーションモジュールである。
これらのアプリケーションモジュールは前述したPTP FrameWork ４０６のインターフェースを利用して動作する。
【００４０】
Wireless LAN Driver ４０３は、無線ＬＡＮ用のドライバとして機能するモジュールである。これは図２の無線通信部１０２２を制御するために利用される。TCP/IP ４０４はネットワークでは汎用的なＴＣＰ／ＩＰプロトコルを実現するためのモジュールであり、パケットをWireless LAN Driver ４０３を介して外部装置との間で交換する。
【００４１】
PTP Transport For TCP/IP ４０５は、ＵＳＢと同様にイメージングクラスで利用されるＰＴＰのトランスポート層に当たる部分を提供するモジュールである。ここではＰＴＰの仕様とＴＣＰ／ＩＰ固有の仕様を理解し、必要なトランスポートを行う。具体的には上位プロトコルにあたるＰＴＰのデータをＴＣＰ上で伝送するためのパケッティングや、ＴＣＰからのパケットをＰＴＰデータに復元するアンパケッティングなどを含む。
【００４２】
PTP Transport For TCP/IP ４０５と、PTP Transport For USB ４０２を介することで、PTP FrameWork ４０６からみるとＵＳＢも無線ＬＡＮも等価に扱える構成となっている。PTP FrameWork ４０６上で動作するPictBridge App ４０７、File Transfer App ４０８も、外部装置がＵＳＢ、無線ＬＡＮいずれを介して接続されるかを意識することなく動作可能である。
【００４３】
このように、本実施形態におけるデジタルカメラ１００は、対向する接続相手が無線通信対応のＰＴＰトランスポートを理解できるように構成されていれば、ＵＳＢでの有線接続時と同等の機能を無線通信においても提供可能となる。
【００４４】
（無線アダプタ３００の構成）
図３は、本実施形態における無線アダプタ３００の構成例を示すブロック図である。
無線アダプタ３００は、ＣＰＵ（Central Processing Unit）３０１と、ＤＲＡＭ等から構成された第１記憶部３０３と、ＬＥＤ等から構成された表示部３０５とを有する。さらに、無線アダプタ３００の動作を制御する制御プログラム等を記憶したプログラムメモリ３０４と、外部とのデータ通信を管理する通信制御部３０２を有する。
【００４５】
通信制御部３０２は、USB Device部３０２１と、無線通信部３０２２とを有する。USB Device部３０２１は、ＵＳＢ２.０等のＵＳＢ規格に準拠したものであり、ＵＳＢを用いたデータ通信を制御する。無線通信部３０２２は、少なくともＩＥＥＥ８０２．１１ｂに準拠したものであり、無線ＬＡＮを用いたデータ通信を制御する。USB Device部３０２１はＰＣ２００との通信に使用されるものであり、無線通信部３０２２はデジタルカメラ１００との通信に使用されるものである。本実施形態では、USB Device部３０２１と無線通信部３０２２とを同時に動作できるように構成する。これにより、無線アダプタ３００は、デジタルカメラ１００と無線ＬＡＮで通信しながら、ＰＣ２００とＵＳＢで通信することができる。
【００４６】
USB Device部３０２１は、USB Device部１０２１と同様に、無線アダプタ３００をＵＳＢデバイスとして動作させるＵＳＢデバイスコントローラモジュールを有する。
【００４７】
図５は、本実施形態における無線アダプタ３００に実装されるソフトウェアモジュールとその関連、動作を説明する図である。図５に示す各ソフトウェアモジュールは、プログラムメモリ３０４の中のプログラム記憶領域に格納されている。なお、図５に示すモジュールのうち、１つ以上がハードウェアによって実現されても良い。
【００４８】
USB Driver ５０１は、USB Device部３０２１を制御し、ＰＣ２００等の外部装置とのＵＳＢ接続を行う際に利用されるモジュールである。USB Driver ５０１は、ＵＳＢイメージングクラス（イメージクラス）ドライバとして機能するモジュールである。PTP Transport For USB ５０２は、イメージングクラスで利用されるＰＴＰ（Picture Transfer Protocol）のトランスポート層に相当する部分を提供するモジュールである。ここではＰＴＰの仕様とＵＳＢ固有の仕様を理解し、必要なトランスポートを行う。このUSB Driver ５０１とPTP Transport For USB ５０２により、ＵＳＢで外部装置と接続した場合に、ホスト側がイメージングデバイスを利用可能な環境であれば、ＵＳＢバスの構成までは完了する。
【００４９】
Wireless LAN Driver ５０３は、無線ＬＡＮ用のドライバとして機能するモジュールである。これは図３の無線通信部３０２２を制御するために利用される。TCP/IP ５０４はネットワークでは汎用的なＴＣＰ／ＩＰプロトコルを実現するためのモジュールであり、パケットをWireless LAN Driver ５０３を介して外部装置との間で交換する。
【００５０】
PTP Transport for TCP/IP ５０５は、ＵＳＢと同様にイメージングクラスで利用されるＰＴＰのトランスポート層に当たる部分を提供するモジュールである。ここではＰＴＰの仕様とＴＣＰ／ＩＰ固有の仕様を理解し、必要なトランスポートを行う。具体的には上位プロトコルにあたるＰＴＰのデータをＴＣＰ上で伝送するためのパケッティングや、ＴＣＰからのパケットをＰＴＰデータに復元するアンパケッティングなどを含む。
モジュール５０３〜５０５により、無線アダプタ３００は前述したデジタルカメラ１００と無線通信を確立することが可能となる。
【００５１】
PTP Filter ５０６は、Device Simulator App ５０７の制御に従い、ＵＳＢホストから送られてくる各種ＰＴＰオペレーションをDevice Simulator App ５０７又はPTP Transport for TCP/IP ５０５に受け渡すモジュールである。
すなわち、USB Device部３０２１に外部装置であるＰＣ２００が接続され、かつデジタルカメラ１００との無線接続が確立している状態において、ＰＣ２００からデジタルカメラ１００への通信データを無線通信装置によりデジタルカメラ１００へ送信させる。また、同時にデジタルカメラ１００からＰＣ２００への通信データをUSB Device部３０２１によりＰＣ２００へ送信させる機能を有する。
【００５２】
Device Simulator App ５０７は、ＵＳＢホストに対して、無線アダプタ３００がデジタルカメラに見えるよう、デジタルカメラ１００の動作をシミュレートするためのアプリケーションモジュールである。具体的には、USB Device部３０２１に外部装置であるＰＣ２００が接続され、かつデジタルカメラ１００との無線接続が確立していない状態において、ＰＣ２００からデジタルカメラ１００に対する通信に対し、デジタルカメラ１００として代理応答する。
【００５３】
Device Simulator App ５０７は、無線通信部３０２２を介してデジタルカメラが接続されているかどうかの状態を表すカメラ接続状態情報を保持する機能も有する。Device Simulator App ５０７は、前述したPTP Filter ５０６を介して通知される接続情報に基づいて、このカメラ接続状態情報の状態を遷移させる。そして、カメラが無線接続されているときと、そうでないときで、PTP Filter ５０６によるオペレーションの受け渡し先を変更する。
【００５４】
図６は第１の実施形態における無線アダプタ３００の動作を、デジタルカメラ１００及びＰＣ２００との動作と共に示したシーケンス図である。これを基に接続、切断を含めた無線アダプタ３００のシミュレーション動作を説明する。
【００５５】
まず、無線アダプタ３００がＰＣ２００のＵＳＢインタフェースに接続される（Ｓ６０１）。そして、イメージングクラスドライバであるUSB Driver５０１と、PTP Transport For USB５０２の動作により、無線アダプタ３００はＰＣ２００に対してイメージングデバイスとしてＵＳＢバス上にコンフィグレーションされる（Ｓ６０２）。このコンフィグレーション動作が完了した後に、無線アダプタ３００は、自身の無線通信部３０２２に通電し、さらにWireless LAN Driver ５０３、TCP/IP ５０４などの無線通信用モジュールを初期化して動作可能とする。
【００５６】
ＰＣ２００には、ＰＴＰを標準でサポートしたＯＳが稼働しており、デジタルカメラ（イメージングクラスデバイス）が接続されると、ＰＣ２００でデジタルカメラを取り扱うために必要なＰＴＰオペレーションを実行するように構成されている。
【００５７】
そのため、デジタルカメラと同じイメージングクラスのデバイスとしてＵＳＢバス上に構成された無線アダプタ３００に対しても、デジタルカメラが接続された際と同様のＰＴＰオペレーション（コマンド）群を発行してくる。たとえばそれらは、ＰＴＰにおけるレスポンダである無線アダプタ３００の情報を要求するGetDeviceInfoオペレーション（Ｓ６０３）であり、その後に発行されるセッション開始のためのOpenSessionオペレーション（Ｓ６０４）である。さらに、レスポンダで有効なStorageIDを要求するGetStorageIDsオペレーション（Ｓ６０５）、StorageIDで特定したメディアの状態を要求するGetStorageInfoオペレーション（Ｓ６０６）などがそれに引き続き発行される。
【００５８】
そしてこれらのオペレーションは、PTP Filter ５０６がフィルタリングし、全てDevice Simulator App ５０７に渡される。この時点では、まだ無線アダプタ３００はデジタルカメラ１００と無線で接続されていないので、Device Simulator App ５０７の中の無線カメラ状態保持手段には未接続として保持されている。この状態の場合、Ｓ６０３、Ｓ６０４，Ｓ６０５，Ｓ６０６の各オペレーションに対しては、このDevice Simulator App ５０７が実際のデジタルカメラ１００に代わって応答を行う。
【００５９】
ここで、Device Simulator App ５０７の応答内容については、オペレーション発行元であるＰＣ２００が正常なデジタルカメラからの応答として処理可能な内容であり、かつデジタルカメラ１００の実体と矛盾しない内容であればよい。ただし、前述したように、この時点ではまだ実際のデジタルカメラ１００は無線接続されていないため、破綻を来さない範囲を超えた応答が要求されるオペレーションがＰＣ２００から発行されないようにすることが必要である。
【００６０】
そのため、前述したオペレーション群の中で、特にGetStorageIDsオペレーション（Ｓ６０５）、GetStorageInfoオペレーション（Ｓ６０６）については、ストレージが装着されていない状態として応答するようにDevice Simulator App ５０７が動作する。
【００６１】
具体的には、Device Simulator App ５０７は、GetStorageIDsオペレーション（Ｓ６０５）に対しては適当な数のStorageID（有効な論理ストア毎に割り振られる）を応答する（Ｓ６０５’）。これに対し、ＰＣ２００は、応答したStorageIDのいずれかを指定したGetStorageInfoオペレーション（Ｓ６０６）を発行してくるので、指定されたストアが利用できない（Store_Not_Available等）を応答すればよい（Ｓ６０６’）。
【００６２】
このような応答を行うことで、ＰＣ２００ではこの時点でデジタルカメラが正常にＵＳＢ接続されているが、カメラ内には画像情報等が存在しないと認識する。従って、実際のデジタルカメラ１００が必要な情報を要求するオペレーションは発行してこず、デジタルカメラ１００が無線接続されていなくても支障がない状態となる。
【００６３】
この状態でユーザ操作により、デジタルカメラ１００が無線通信可能な状態とされると（Ｓ６０７）、無線アダプタ３００とデジタルカメラ１００とが、ＰＴＰの階層で論理的に接続される（Ｓ６０８）。この接続は、デジタルカメラ１００内のPTP Transport for TCP/IP ４０５以下のモジュールと、無線アダプタ３００内のPTP Transport for TCP/IP ５０５以下のモジュールとがそれぞれリンクできるように設計されているために実現できる。
【００６４】
具体的には、Wireless LAN Driver ４０３とWireless LAN Driver ５０３との間ではＩＥＥＥ８０２．１１ｂ準拠のプロトコルによりコネクションされる。また、TCP/IP ４０４とTCP/IP５０４との間では、汎用的なＴＣＰ／ＩＰプロトコルによりリンクされる。また、PTP Transport For TCP/IP ４０５とPTP Transport For TCP/IP ５０５との間では、ＰＴＰ／ＩＰというＦｏｔｏｎａｔｉｏｎ社が提唱しているＰＴＰのＴＣＰ／ＩＰトランスポートプロトコルを利用している。
【００６５】
このようにして無線アダプタ３００とデジタルカメラ１００が無線接続されると、Device Simulator App ５０７は、自身の無線カメラ状態情報に保持された状態を、無線接続中に遷移させる。そしてＰＣ２００に対してカメラ内のストレージの情報が変わったことを通知するStorageInfoChangedイベントを発行する（Ｓ６０９）。これはＰＴＰの標準イベントであり、通常の有線ＵＳＢ接続時でも扱われるイベントである。従って、このイベントを受信したＰＣ２００は、その内容変更を取得するため、通常GetStorageInfoオペレーション（Ｓ６１０）や、ストレージ内のオブジェクト数を要求するGetNumObjectsオペレーション（Ｓ６１２）などを発行する。
【００６６】
Device Simulator App ５０７は自身が保持する無線カメラ状態情報が無線接続中を示している場合には、ＰＣ２００から発行されたＰＴＰオペレーションを、無線接続されているデジタルカメラ１００に渡すようPTP Filter ５０６に指示する。そのため、StorageInfoChangedイベントに応答してＰＣ２００から発行されるGetStorageInfoオペレーション（Ｓ６１０）はPTP Transport for TCP/IP ５０５へ渡される。そして、ＰＴＰＩＰに基づいた形式に変換され、TCP/IP ５０４、Wireless LAN Driver ５０３を介してデジタルカメラ１００に送られる（Ｓ６１１）。
【００６７】
このように、ＰＣ２００との有線接続とデジタルカメラの無線接続の両方が確立している間、モジュール５０１〜５０６は有線通信と無線通信のプロトコル変換機能を提供する。
【００６８】
デジタルカメラ１００はこのオペレーションを受けてカメラ内の実際のストレージ情報を無線アダプタ３００に返す（Ｓ６１１’）。無線アダプタ３００のPTP Filter ５０６は、この応答をモジュール５０３〜５０５を通じて受信すると、USB Transport For USB ５０１に応答データを渡す。そして、モジュール５０２、５０１を通じ、ＵＳＢ経由でＰＣ２００に送信する。
【００６９】
これにより、ＰＣ２００では、実際にデジタルカメラ１００内にあるストレージの情報を反映した状態を構築することができる。GetNumObjectsオペレーション（Ｓ６１２）についても同様で、無線アダプタ３００により、オペレーションはデジタルカメラ１００に送られ（Ｓ６１３）、カメラからの応答はＰＣ２００に送信される。
【００７０】
こうすることで、ＰＣ２００からみれば、ＵＳＢ接続によりデジタルカメラが接続された状態とまったく同じ状態が構築されているため、従来、ＵＳＢ接続を前提として動作していたアプリケーションをそのまま利用することが可能である。
【００７１】
その後、デジタルカメラ１００の無線通信がユーザ操作によりＯＦＦにされる（Ｓ６１４）と、デジタルカメラ１００から無線アダプタ３００に対して無線切断イベントが発行される。これに応答して無線切断処理（Ｓ６１５）を無線アダプタ３００で実行する。この処理において、Device Simulator App ５０７は無線カメラ状態情報に保持された状態を再度未接続状態に戻す。そして、Device Simulator App ５０７はPTP Filter ５０６に対し、ＰＣ２００から発行されるオペレーションをPTP Transport for TCP/IP ５０５ではなく、Device Simulator App ５０７へ送信するように指示する。
【００７２】
そして、ＰＣ２００に対して再度StorageInfoChangedイベントを発行する（Ｓ６１６）。これは前述したようにＰＴＰの標準イベントであり、従来のＵＳＢ接続でも扱われるイベントである。そのため、このイベントを受信したＰＣ２００は、その内容変更を反映するために再度GetStorageInfoオペレーション（Ｓ６１７）を無線アダプタ３００に対して発行する。しかしこのときはすでに無線未接続状態のため、前述した最初の段階と同様に、このオペレーションはDevice Simulator App ５０７に渡され、Device Simulator App ５０７はカメラのストレージが無いとの代理応答を行う（Ｓ６１７’）。
【００７３】
もしユーザがＰＣ２００から無線アダプタ３００を取り外した場合（Ｓ６１８）、無線アダプタ３００はそれを受けて無線通信部３０２２の給電を停止し、無線関連モジュールを停止する。
【００７４】
このように、本実施形態における無線アダプタ３００は、デジタルカメラ１００との無線接続が確立しない間は、有線通信機能を有する外部装置に対してデジタルカメラ１００として振る舞い、デジタルカメラ１００との無線接続が確立された後は外部装置とデジタルカメラ１００との通信を橋渡しする。そのため、外部装置上で稼働する、デジタルカメラ１００の有線接続を前提としたソフトウェアをそのまま用いて、無線接続されたデジタルカメラ１００を取り扱うことができる。
【００７５】
そのため、無線通信機能を有さないＰＣ２００においても、本実施形態における無線アダプタ３００を接続すれば、新たなソフトウェアのインストールなどを行うことなく、無線通信機能を有するデジタルカメラ１００を利用可能となる。
【００７６】
さらに、既に無線ネットワークを構築しているＰＣ２００においても、デジタルカメラ１００とＰＣ２００の無線通信は無線アダプタ３００を利用して行うことができる。そのため、難しい無線ネットワーク設定等を既存無線ネットワークとあわせる必要もなく、簡単で柔軟な無線通信環境を構築できる。
【００７７】
なお、本実施形態では、デジタルカメラ１００との無線接続の確立時及び切断時に、無線アダプタ３００がＰＣ２００に対してストレージの情報が変化したことを通知するＰＴＰイベントを発行した。しかし、その代わりにデバイス（カメラ）自身の情報が変化したことを通知するＰＴＰイベント（DeviceInfoChangedイベント）を発行してもよい。
【００７８】
＜第２の実施形態＞
次に、第１の実施形態の変形例である第２の実施形態を説明する。第２の実施形態は第１の実施形態の変形例であるので、第１の実施形態と同様の部分については同一の参照番号を付し、その説明を省略する。
図７は、第２の実施形態における無線アダプタ３００の動作を説明するシーケンスチャートである。図７において、図６と同じ手順については同じ参照番号を付した。
【００７９】
デジタルカメラ１００、ＰＣ２００及び無線アダプタ３００の構成は前述した第１の実施形態と同様でよく、ＰＣ２００が発行するオペレーションと、それに対するDevice Simulator App ５０７の応答方法が異なる。
無線アダプタ３００がＰＣ２００に接続されてから、セッションが確立するまでの手順（Ｓ６０１〜Ｓ６０４）は第１の実施形態と同様である。
【００８０】
しかし、本実施形態では、セッションが確立してからＰＣ２００が発行するオペレーションが、GetStroageIDsオペレーションではなく、IsCameraオペレーションである点で異なる（Ｓ７０５）。このオペレーションは無線アダプタ３００がデジタルカメラ１００と接続状態にあるかどうかを確認するオペレーションである。このこの時点ではまだ無線アダプタ３００とデジタルカメラ１００との無線接続は確立していないため、IsCameraオペレーションはDevice Simulator App ５０７へ渡される。
【００８１】
そして、Device Simulator App ５０７は、カメラ１００がまだ接続されていないことを応答する（Ｓ７０５’）。これにより、ＰＣ２００は、デジタルカメラ１００がまだ論理的に接続されていないと判断できるため、この時点ではカメラが存在しないものとして破綻無く処理することができる。
【００８２】
例えば、ＰＣ２００において、カメラが認識された時点で特定の動作を行うように設定されていた場合、第１の実施形態では無線アダプタ３００が接続されると、実際にカメラが存在しないのにこの特定の動作が実行されてしまう。そして、例えば「メディアが装着されていません」等のメッセージが表示されたりする。そのため、ユーザによっては誤った操作を行ったものと不安を覚える可能性がある。
これに対し、本実施形態では、カメラが実際にはまだ接続されていないことをＰＣ２００が認識できるため、そのような問題を防止できる。
【００８３】
この状態でユーザ操作により、デジタルカメラ１００が無線通信可能状態とされると（Ｓ６０７）、無線アダプタ３００とデジタルカメラ１００とが、ＰＴＰの階層で論理的に接続される（Ｓ６０８）。
このようにして無線アダプタ３００とデジタルカメラ１００が無線接続されると、Device Simulator App ５０７は、ＰＣ２００に対してカメラ内のストレージの情報が変わったことを通知するStorageInfoChangedイベントを発行する（Ｓ６０９）。なお、本実施形態においては、この時点ではまだDevice Simulator App ５０７が保持する、無線カメラ状態情報の状態を、無線接続中に遷移させない。
【００８４】
これを受けて、ＰＣ２００は、IsCameraオペレーションを発行し、デジタルカメラ１００と無線アダプタ３００との無線接続が確立しているかどうかを調べる（Ｓ７０９）。Device Simulator App ５０７は、これに対し、無線接続が確立し、デジタルカメラ１００が接続されていることを応答する（Ｓ７０９’）。
【００８５】
本実施形態では、IsCameraオペレーションを受信すると、Device Simulator App ５０７が自身の無線カメラ状態情報に保持された状態を、無線接続中に遷移させる。そして、以降、ＰＣ２００から発行されたＰＴＰオペレーションを、無線接続されているデジタルカメラ１００に渡すようPTP Filter ５０６に指示する。
【００８６】
なお、PTP Filter ５０６を、Device Simulator App ５０７からの指示とは無関係に、IsCameraオペレーションについてはDevice Simulator App ５０７へ渡すように構成してもよい。この場合、Device Simulator App ５０７が自身の無線カメラ状態情報に保持された状態を、無線接続中に遷移させるタイミングは第１の実施形態と同様であってよい。
【００８７】
ＰＣ２００は、デジタルカメラ１００の存在を確認すると、デジタルカメラ１００から画像データを読み出すために必要な方法を得るためのオペレーションを発行する。これは第１の実施形態で説明したように、通常、GetStorageInfoオペレーション（Ｓ６１０）、GetNumObjectsオペレーション（Ｓ６１２）などである。
【００８８】
PTP Filter ５０６はこれらのオペレーションをPTP Transport for TCP/IP ５０５へ渡す。そして、これらのオペレーションはＰＴＰＩＰに基づいた形式に変換され、TCP/IP ５０４、Wireless LAN Driver ５０３を介してデジタルカメラ１００に送られる（Ｓ６１１、Ｓ６１３）。
【００８９】
デジタルカメラ１００はこのオペレーションを受けてカメラ内の実際のストレージ情報を無線アダプタ３００に返す（Ｓ６１１’）。無線アダプタ３００のPTP Filter ５０６は、この応答をモジュール５０３〜５０５を通じて受信すると、USB Transport For USB ５０１に応答データを渡す。そして、モジュール５０２、５０１を通じ、ＵＳＢ経由でＰＣ２００に送信する。
【００９０】
これにより、ＰＣ２００では、実際にデジタルカメラ１００内にあるストレージの情報を反映した状態を構築することができる。GetNumObjectsオペレーション（Ｓ６１２）についても同様で、無線アダプタ３００により、オペレーションはデジタルカメラ１００に送られ（Ｓ６１３）、カメラからの応答はＰＣ２００に送信される。
【００９１】
こうすることで、ＰＣ２００からみれば、ＵＳＢ接続によりデジタルカメラが接続された状態とまったく同じ状態が構築されているため、従来、ＵＳＢ接続を前提として動作していたアプリケーションをそのまま利用することが可能である。
【００９２】
その後、デジタルカメラ１００の無線通信がユーザ操作によりＯＦＦにされる（Ｓ６１４）と、デジタルカメラ１００から無線アダプタ３００に対して無線切断イベントが発行される。これに応答して無線切断処理（Ｓ６１５）を無線アダプタ３００で実行する。この処理において、Device Simulator App ５０７は無線カメラ状態情報に保持された状態を再度未接続状態に戻す。そして、Device Simulator App ５０７はPTP Filter ５０６に対し、ＰＣ２００から発行されるオペレーションをPTP Transport for TCP/IP ５０５ではなく、Device Simulator App ５０７へ送信するように指示する。
【００９３】
そして、ＰＣ２００に対して再度StorageInfoChangedイベントを発行する（Ｓ６１６）。ＰＣ２００はこれに応答してIsCameraオペレーションを発行し、カメラがアダプターと無線接続が確立しているかどうかを調べる（Ｓ７１７）。このオペレーションはDevice Simulator App ５０７に渡され、Device Simulator App ５０７はカメラが存在しないとの応答を行う（Ｓ７１７’）。
【００９４】
もしユーザがＰＣ２００から無線アダプタ３００を取り外した場合（Ｓ６１８）、無線アダプタ３００はそれを受けて無線通信部３０２２の給電を停止し、無線関連モジュールを停止する。
以上説明したように、本実施形態によれば、第１の実施形態の効果に加え、第１の実施形態よりもさらに有線接続の状態に近い動作をＰＣ２００に提供することができる。
【００９５】
なお、本実施形態においても、第１の実施形態と同様、デジタルカメラ１００との無線接続の確立時及び切断時に、無線アダプタ３００がＰＣ２００に対してストレージの情報が変化したことを通知するＰＴＰイベントを発行した。しかし、その代わりにデバイス（カメラ）自身の情報が変化したことを通知するＰＴＰイベント（DeviceInfoChangedイベント）を発行してもよい。
【００９６】
また、本実施形態では、デジタルカメラ１００の接続時及び切断時に、Device Simulator App ５０７が、
１）DeviceInfoChangedイベントを発行、
２）デジタルカメラ１００の存在有無を確認するオペレーションの発行を待機、
３）発行されたオペレーションに対して接続状態を応答、
という手順により、ＰＣ２００へデジタルカメラ１００の存在有無（接続有無）を通知した。
【００９７】
しかしながら、Device Simulator App ５０７が、自身が保持する無線カメラ状態情報を参照して、DeviceInfoChangedイベントの代わりに、無線デジタルカメラ接続イベントや無線デジタルカメラ切断イベントを直接ＰＣ２００に送信するようにしても同様な効果が得られる。
【図１】
0005295341.tif 000002
【図２】
0005295341.tif 000003
【図３】
0005295341.tif 000004
【図４】
0005295341.tif 000005
【図５】
0005295341.tif 000006
【図６】
0005295341.tif 000007
【図７】
0005295341.tif 000008
【図８】
0005295341.tif 000009