プロトコル変換装置及びプロトコル変換方法
【課題】 ホスト装置(例えばコンピュータ)と通信装置(例えば無線機能を備えたデジタルカメラ)との間の無線接続を容易にするプロトコル変換装置及びプロトコル変換方法を提供すること。
【解決手段】 ROM124に変換プログラム群125を備えるプロトコル変換装置120を用意し、CPU123が変換プログラムを実行することにより、コンピュータ100が利用可能なプロトコルとデジタルカメラ140が利用可能なプロトコルにおけるデータを相互に変換する。
【解決手段】 ROM124に変換プログラム群125を備えるプロトコル変換装置120を用意し、CPU123が変換プログラムを実行することにより、コンピュータ100が利用可能なプロトコルとデジタルカメラ140が利用可能なプロトコルにおけるデータを相互に変換する。
【発明の詳細な説明】
【技術分野】
【0001】
本発明は、それぞれ異なる通信プロトコルによる通信機能を備えるホスト装置(例えばパーソナルコンピュータ)と通信装置(例えばデジタルカメラ)の間に介在して、両者の通信プロトコルを相互に変換するプロトコル変換装置及びプロトコル変換方法に関する。
【背景技術】
【0002】
現在、コンピュータとデジタルカメラとをUSB(Universal Serial Bus)規格に準拠した有線による通信方式(USB通信プロトコル)で接続して、データのやりとりを行なうことが広くなされている。
【0003】
しかし、コンピュータとデジタルカメラとがそれぞれ異なる通信プロトコルによる通信機能しか備えていない場合もある。これに対し、特許文献1はそれぞれ異なる通信プロトコルによる通信機能を備える装置間に介在して両者の通信プロトコルを相互に変換する方法を提案する。
【0004】
また、有線による通信方式を、IEEE802.11規格(IEEE802.11a/b/gを含む)に準拠した無線による通信方式(無線通信プロトコル)に置き換えてコンピュータとデジタルカメラとの間でデータのやりとりを行なうことにより、より手軽にコンピュータとデジタルカメラを接続する方法も普及しつつある。
【0005】
しかし、USBを無線方式の通信に置き換えた場合、デジタルカメラだけでなく、コンピュータも無線通信機能を備えていないと無線通信することができないという問題がある。またIEEE802.11規格に準拠した通信方式の場合、コンピュータが無線通信機能を備えていても、すでにコンピュータがこの規格の無線ネットワークに加入している場合、デジタルカメラが無線通信機能を使ってコンピュータと接続するためには、デジタルカメラに対して加入する無線ネットワークの設定(例えば、使用する無線チャネル、ESS−ID、WEP Keyの設定など)を行なう必要がある。この設定をデジタルカメラの操作部材を使って行なうことは非常に煩雑である。特に、デジタルカメラを異なった無線ネットワークに加入している複数のコンピュータと無線接続させるためには、デジタルカメラに対して同じ数だけの無線ネットワーク設定を行なう必要がある。
【0006】
これに対し、特許文献2は、コンピュータ側のUSBバスに接続する無線ハブと、デバイス(例えばデジタルカメラ)のUSBインタフェースに接続する無線ポートとを設け、これらの間で無線通信を実現する方法を提案する。無線ハブはコンピュータと通信を行ない、デバイスへのUSBパケットを無線信号へ、デバイスからの無線信号をUSBパケットに変換することにより、無線通信機能を持たないコンピュータとデジタルカメラとの通信を可能とする。
【特許文献1】特開2001−168942号公報
【特許文献2】特開平11−112524号公報
【発明の開示】
【発明が解決しようとする課題】
【0007】
しかしながら、特許文献1で提案されている方法は、デバイスとプロトコル変換装置とを1対1で接続するものであり、複数のデバイスがプロトコル変換装置を使用してホスト装置との通信を欲する場合に、どのデバイスに対してプロトコル変換の機能を提供するかという問題が考慮されていない。したがって、複数のデバイスを使用する場合の利便性に欠ける。
【0008】
一方、特許文献2で提案されている方法は、USBを備えていないデジタルカメラには適用することができない。また、無線ハブを接続するコンピュータ側はUSBハブクラスのドライバを搭載する必要がある。例えばデジタルカメラと直接USB接続してダイレクトプリントを実行可能なプリンタは、簡易的なUSBホスト機能を搭載していることがあるが、この場合、USBハブクラスのドライバを搭載していないことがあるため、そのような場合には適用不可能である。
【0009】
本発明はこのような状況に鑑みてなされたものであり、それぞれ異なる通信プロトコルによる通信機能を備えるホスト装置(例えばコンピュータ)と通信装置(例えば無線通信機能を備えたデジタルカメラ)との間の接続を容易にするプロトコル変換装置及びプロトコル変換方法を提供することを目的とする。
【課題を解決するための手段】
【0010】
上記課題を解決するために、本発明のプロトコル変換装置は、ホスト装置と通信装置の間に介在して通信プロトコルを変換するプロトコル変換装置であって、第1の通信プロトコルによって前記通信装置と通信を行なう第1の通信手段と、第2の通信プロトコルによって前記ホスト装置と通信を行なう第2の通信手段と、前記第1の通信プロトコルに準拠したデータと前記第2の通信プロトコルに準拠したデータとを相互に変換するプロトコル変換手段と、複数の前記通信装置から前記プロトコル変換手段の利用要求を受信した場合にいずれの通信装置に利用を許可するかを調停する調停手段と、を備えることを特徴とする。
【0011】
また、本発明の通信装置は、プロトコル変換装置と通信する通信手段と、前記プロトコル変換装置に対し利用要求を発する利用要求手段と、前記利用要求に対する利用の許否を前記プロトコル変換装置から受信する受信手段と、を備えることを特徴とする。
【0012】
また、本発明のプロトコル変換装置を制御する制御方法は、第1の通信プロトコルによって通信装置と通信を行なう第1の通信工程と、第2の通信プロトコルによってホスト装置と通信を行なう第2の通信工程と、前記第1の通信プロトコルに準拠したデータと前記第2の通信プロトコルに準拠したデータとを相互に変換するプロトコル変換工程と、複数の前記通信装置から前記プロトコル変換工程における変換機能の利用要求を受信した場合にいずれの通信装置に利用を許可するかを調停する調停工程と、を備えることを特徴とする。
【0013】
なお、その他の本発明の特徴は、添付図面及び以下の発明を実施するための最良の形態の記載によっていっそう明らかになるものである。
【発明の効果】
【0014】
以上の構成により、本発明のプロトコル変換装置及びプロトコル変換方法によれば、それぞれ異なる通信プロトコルによる通信機能を備えるホスト装置と通信装置を容易に接続することが可能となる。
【発明を実施するための最良の形態】
【0015】
以下、添付図面を参照して、本発明の好適な実施形態を説明する。
【0016】
なお、説明を簡単にするために、以下の各実施形態ではプロトコル変換装置と通信装置(例えばデジタルカメラ)はIEEE802.11規格に準拠した無線通信プロトコルで通信することとして説明するが、これに限定されるものではないことに注意されたい。データ形式(パケット形式)及びプロトコル変換方式を適宜変更すれば、例えばIEEE1394規格に準拠した有線による通信プロトコルなど、任意の通信プロトコルに対して本発明は適用可能である。
【0017】
同様に、プロトコル変換装置とホスト装置(例えばコンピュータ)はUSB通信プロトコルで通信することとして説明するが、これに限定されるものではないことに注意されたい。
【0018】
[第1の実施形態]
<基本的構成>
図1は、本発明における通信システムの実施形態の一例を示す図である。
【0019】
図1には、コンピュータ100、プロトコル変換装置120、デジタルカメラ140が示されている。プロトコル変換装置120はコンピュータ100とUSB規格の通信方式(USB通信プロトコル)で接続され、プロトコル変換装置120がUSBのデバイス側、コンピュータ100がUSBのホスト側の役割で通信が実現されている。
【0020】
また、プロトコル変換装置120及びデジタルカメラ140はIEEE802.11規格(IEEE802.11a/b/gを含む)に準拠した無線の通信方式(通信プロトコル)により接続されている。
【0021】
<プロトコル変換装置120の構成>
図1において、プロトコル変換装置120はコンピュータ100からUSB規格に準拠したデータパケットが送信されてくると、データパケットをIEEE802.11規格に準拠した無線データパケットに変換して、デジタルカメラ140に送信する機能を備えている。反対に、デジタルカメラ140からIEEE802.11規格に準拠した無線データパケットが送信されてくると、そのデータパケットをUSB規格に準拠したデータパケットに変換してコンピュータ100に送信する機能を備えている。
【0022】
このため、コンピュータ100がIEEE802.11規格に準拠した無線の通信手段を備えていない場合でも、プロトコル変換装置120をコンピュータ100にUSB接続することによって、デジタルカメラ140との間において、無線による通信を実現することが可能となる。
【0023】
また、プロトコル変換装置120は図2に示すように、ダイレクトプリント機能を備えるプリンタ300とUSB規格の通信方式で接続して使用することも可能である。この場合、プロトコル変換装置120がUSBのデバイス側、プリンタ300がUSBのホスト側の役割で通信が実現される。なお、ダイレクトプリント機能とは、プリンタとデジタルカメラとをUSBケーブルなどで直接接続して、デジタルカメラの保持する画像を印刷する機能である。
【0024】
プロトコル変換装置120はプリンタ300からUSB規格に準拠したデータパケットが送信されてくると、そのデータパケットをIEEE802.11規格に準拠した無線データパケットに変換して、デジタルカメラ140に送信する。一方、デジタルカメラ140からIEEE802.11規格に準拠した無線データパケットが送信されてくると、そのデータパケットをUSB規格に準拠したデータパケットに変換してプリンタ300に送信する。
【0025】
このため、プリンタ300がIEEE802.11規格に準拠した無線の通信手段を備えていない場合でも、プロトコル変換装置120をプリンタ300にUSB接続することにより、デジタルカメラ140との間において、無線によるダイレクトプリント機能を実現することが可能となる。
【0026】
図3は、本実施形態におけるプロトコル変換装置の一例であるプロトコル変換装置120及び通信装置の一例であるデジタルカメラ140の構成を示すブロック図である。
【0027】
プロトコル変換装置120はUSB I/F121を備えており、コンピュータ100のUSB HOST I/F101を介してコンピュータ100とUSB規格の通信方式で接続される。
【0028】
また、プロトコル変換装置120は無線通信I/F122を備えていて、デジタルカメラ140の無線通信I/F141を介してIEEE802.11規格の無線通信を行なう。
【0029】
さらに、プロトコル変換装置120はCPU123、ROM124、RAM129を備えている。CPU123はROM124に含まれるプログラムを読み出し、作業領域としてRAM129を使用してプログラムを実行し、プロトコル変換装置120全体を制御する。
【0030】
ROM124は変換プログラム群125、USB通信制御プログラム126、無線通信制御プログラム127、利用者調停プログラム128を含む。また、図示しないが、ROM124は無線設定情報(使用する無線チャネル、ESS−ID、WEP Keyなど)も含む。また、RAM129は送受信バッファ130、USB属性情報131を含む。
【0031】
USB通信制御プログラム126はUSB I/F121を制御するプログラムである。USB通信制御プログラム126はUSB属性情報131の値に応じて、USB規格で定義されているDevice DescriptorやDevice_Qualifier Descriptor、Configuration Descriptor、Other_Speed_Configuration Descriptor、Interface Descriptor、Endpoint Descriptorの各データを生成して、USB HOST I/F101からの要求に応じて返答する機能を備える。
【0032】
無線通信制御プログラム127は無線通信I/F122を制御するプログラムである。
【0033】
利用者調停プログラム128はプロトコル変換装置120を複数の通信装置(無線装置)が使用しようとする場合に、いずれか1つの無線装置に対してのみプロトコル変換機能の利用権を与えるように制御するプログラムである。すなわち図4に示すように、コンピュータ100にUSB接続されたプロトコル変換装置120とIEEE802.11規格に準拠した無線通信手段を備えた2つのデジタルカメラ140及びプリンタ400が無線による通信を行なうことができる場合に、同時に1つの無線装置にのみ利用権を与えて、その他の無線装置に対してはプロトコル変換装置120が利用不可能であることを通知するよう制御する。
【0034】
ここで、プリンタ400は図2におけるプリンタ300と異なり、USB接続のホスト装置として機能するのではなく、プロトコル変換装置120と無線接続するデバイスであることに注意されたい。
【0035】
また、プロトコル変換装置120は表示部132を備え、利用者調停プログラム128の制御に従ってプロトコル変換機能を無線装置に対して提供しているか否かを表示する。これによって、ユーザはプロトコル変換装置120を利用可能かどうか認識することができる。
【0036】
なお、表示部132は液晶モニタや発光ダイオード等、ユーザに情報を通知できるものであれば何を用いても構わない。
【0037】
変換プログラム群125は、プロトコルを変換する方法を定めたプログラムを1つ以上備えるものである。複数のプログラムを備える理由は、無線装置によってデータパケットの形式が異なり、その結果プロトコルの変換方法も異なるからである。例えば、プロトコル変換装置120を利用する無線装置がデジタルカメラ140及び図4におけるプリンタ400の2種類である場合、変換プログラム群125はそれぞれの無線装置に対応するプログラムを備えることになる。
【0038】
このようにして、プロトコル変換装置120は、変換プログラム群125が備える変換プログラムの数(種類)に応じた複数の無線装置に対してプロトコル変換機能を提供することができる。
【0039】
プロトコル変換装置120のCPU123は、利用者調停プログラム128の働きによって、プロトコル変換機能の利用を許可された無線装置の種類に応じて、対応する変換プログラムを選択して実行する構成となっている。
【0040】
ここで、図5を参照して、プロトコル変換装置120とデジタルカメラ140の間でやりとりされる無線データパケットのパケット構造を示す。
【0041】
本実施形態におけるプロトコル変換装置120は、デジタルカメラ140との間の通信方式として、ユーザデータをTCP/IP形式のパケットに変換した後、IEEE802.11規格のパケットに変換して、無線通信上で送受信する方式を採用している。そのため、ユーザデータの頭に、TCPヘッダ、IPヘッダ、LLCヘッダ(論理リンク制御フィールド)、802.11ヘッダを付加し、ユーザデータの後ろに802.11FCS(フレームの誤り検査フィールド)を付加する構成となっている。
【0042】
ユーザデータとしては、PTP(Picture Transfer Protocol)規格で定められた形式のデータパケットが収納されている。PTPに関する説明を図6及び図7を用いて行なう。
【0043】
図6はPTPにおいてInitiator(本実施形態ではコンピュータ100)とResponder(本実施形態ではデジタルカメラ140)の間でやりとりされるトランザクションの形式を示す図であり、図7はオペレーションフェーズパケット(図7(a))、データフェーズパケット(図7(b))、レスポンスフェーズパケット(図7(c))のパケット構造を示す図である。
【0044】
図6に示すように、PTPではオペレーションフェーズ→レスポンスフェーズという構成のトランザクション(図6(a))と、オペレーションフェーズ→データフェーズ→レスポンスフェーズという構成のトランザクション(図6(b)、図6(c))が定義されている。また、データフェーズはInitiatorからResponderの向きにデータを送信する場合(図6(b))と、ResponderからInitiatorの向きにデータを送信する場合(図6(c))とがある。
【0045】
先の図5に示す無線データのパケット構造にPTPのデータパケットを詰める場合は、1つ以上のUSBデータパケットから構成されるPTPのデータパケットをTCPの1パケットに収まるサイズに分割した後、適当なヘッダを付加してユーザデータ領域に書き込む手順をとる。例えば、USB1.1ではUSBのデータパケットは最大64Byteであるが、TCPの1パケットのサイズは一般的に最大1500Byteであり、USBデータパケットを最大62個まとめて、1つのIEEE802.11規格のデータパケットを構成することができる。
【0046】
このように、本実施形態では複数のUSBデータパケットを束ねることにより、無線データパケットの転送サイズを大きくできるため、無線通信に伴うオーバーヘッドを小さくすることが可能である。
【0047】
図3に戻って、プロトコル変換装置120はデジタルカメラ140から送信されるIEEE802.11規格のデータパケットを無線通信I/F122で受信すると、IEEE802.11規格で定義されているヘッダ等を取り除き、さらにIPヘッダ、TCPヘッダに従って、ユーザデータを取り出し、RAM129内部の送受信バッファ130に順次蓄積する。
【0048】
送受信バッファ130に蓄積されるユーザデータとしては、CPU123が利用者調停プログラム128や変換プログラム群125中の変換プログラムを実行する際に使用するものがある。
【0049】
CPU123は、送受信バッファ130に蓄積されたユーザデータを取り出して、PTPのデータフェーズパケット、レスポンスフェーズパケットを構築し、さらにUSB規格に準拠したデータパケットに変換する。次いで変換したデータパケットをUSB I/F121を介して、コンピュータ100に向けて送信する。USB規格の通信方式で、PTPのデータパケットを送信する場合、USBのBulk In転送を使用する。
【0050】
一方、プロトコル変換装置120において、USB規格の通信方式でPTPのデータパケットを受信する場合、USBのBulk Out転送を使用する。コンピュータ100からUSB規格に準拠したデータパケットが送信されてくると、USB I/F121を介して受信する。
【0051】
USBデータパケットのうち標準リクエストのパケットについては、CPU123がUSB通信制御プログラム126を実行することにより取り扱う。すなわち、コンピュータ100から要求されるコントロール転送は、プロトコル変換装置120内でパケットの解析を行ない、応答を返す。
【0052】
これにより、プロトコル変換装置120は無線上に流すUSBパケットを自由に取捨選択でき、特にコントロール転送については、無線上でやりとりしないため、シーケンスを簡素化できる。
【0053】
PTPのデータパケットについては、CPU123がプロトコル変換プログラムを実行することによりデジタルカメラ140に送信可能な形式に変換される。すなわち、変換プログラムの動作によって、PTPのオペレーションフェーズパケット、データフェーズパケットを分割して、TCP/IPのユーザデータ形式に変換する。さらに、TCPヘッダ、IPヘッダ、LLCヘッダ、802.11ヘッダ、802.11FCSを付加してIEEE802.11規格のデータパケットを生成し、無線通信I/F122を介してデジタルカメラ140に送信する。
【0054】
プロトコル変換装置120の働きにより、コンピュータ100から見ると、USB HOST I/F101に直接USBデバイスを接続して、PTPのデータパケットをやりとりする場合と同様のハードウェア及びソフトウェアの動作で、無線通信I/F141を備えたデジタルカメラ140と通信を行なうことができる。すなわち、コンピュータ100のユーザは、USBデバイスがコンピュータに接続されている場合と同様のデジタルカメラ操作用アプリケーションを実行することができ、無線通信利用に伴う煩雑な操作を要しない。
【0055】
以上説明したように、プロトコル変換装置120において、プロトコル変換、USB通信制御、無線通信制御、利用者調停のそれぞれの機能は、ROM124に格納されるプログラムをCPU123が実行することにより実現される。しかし、それぞれの機能は、例えばUSB通信制御を行なう専用の回路を使用するなど、ハードウェアを用いても実現可能なことに注意されたい。
【0056】
<デジタルカメラ140の構成>
次に図3を参照して、デジタルカメラ140の構成を説明する。
【0057】
デジタルカメラ140は、撮像部142を備え、これは撮影レンズと、撮影レンズを介して入射する被写体光を受光し、光電変換して画像信号を生成するCCDと、後段のアナログ/デジタル(A/D)変換回路等から構成される。撮像部142がCPU143の制御のもと、デジタル画像信号を出力して信号処理部144で信号処理(ホワイトバランス処理や圧縮処理等)を施した後、RAM145に一時的にデジタル画像信号として保持する。次いで、作成されたデジタル画像信号に撮影設定情報などを付属情報としてヘッダ領域に付加し、最終的にCF146(コンパクトフラッシュ(登録商標))に画像ファイルとして保存する。一連の撮像処理は、CPU143がROM147に格納されている撮像プログラム(不図示)を実行することにより行なう。
【0058】
画像ファイルを記録するための記憶媒体としては、コンパクトフラッシュ(登録商標)の代わりに光磁気ディスクその他のリムーバブルメディアなど、情報を記録できるものであれば何を用いても構わない。
【0059】
デジタルカメラ140はまた、デジタルカメラ140を操作する十字キーなどの操作部148、画像データやメニュー画面を表示する液晶モニタなどの表示部149(VRAMを含む)、無線通信I/F141を備える。
【0060】
また、ROM147には、無線通信I/F141を制御する無線通信制御プログラム150が含まれ、その他図示しないが撮像した画像を表示部149に表示するためのプログラム、プロトコル変換装置120に対してプロトコル変換機能の利用要求を行ない、利用許可を受けるといった動作を行なうためのプログラム、無線設定情報などが含まれる。さらに、RAM145にはプロトコル変換装置120とのデータ送受信に際して一時的にデータを格納する送受信バッファ151が含まれる。
【0061】
デジタルカメラ140は、プロトコル変換装置120から送信されるIEEE802.11規格のデータパケットを無線通信I/F141で受信すると、IEEE802.11規格で定義されているヘッダ等を取り除き、さらにIPヘッダ、TCPヘッダに従ってユーザデータを取り出し、送受信バッファ151に順次蓄積する。
【0062】
送受信バッファ151に蓄積されるユーザデータとしては、プロトコル変換機能の利用調停に関するパケットや、プロトコル変換装置120を介してコンピュータ100から送信されるPTPのオペレーションフェーズデータ、データフェーズデータなどがある。本実施形態のデジタルカメラ140は、ROM147に格納されているプログラムの動作によって、送受信バッファ151から蓄積されたユーザデータを取り出して、PTPのオペレーションフェーズパケット、データフェーズパケットを構築して、解釈するよう構成されている。
【0063】
また、同じくROM147に格納されているプログラムの動作によって、受け取ったPTPのオペレーションフェーズパケットに応じて、コンピュータ100に送信しようとするデータフェーズパケット、レスポンスフェーズパケットを生成して、送受信バッファ151に書き込む。無線通信制御プログラム150は、書き込まれたPTPのオペレーションフェーズパケット、データフェーズパケットを分割して、TCPヘッダ、IPヘッダを付加し、さらにLLCヘッダ、802.11ヘッダ、802.11FCSを付加してIEEE802.11規格のデータパケットを生成する。次いで、無線通信I/F141を介して無線通信上でプロトコル変換装置120に向けて送信する。
【0064】
なお、本実施形態のデジタルカメラ140は、データ送受信の相手であるコンピュータやプリンタの種類によっては、プロトコル変換装置120を介さずにデータを送受信することもできる。すなわち、そのコンピュータやプリンタがIEEE802.11規格に準拠した無線通信手段を備え、さらに、PTPで定められた形式のパケットをTCP/IP形式のパケットに変換した後にIEEE802.11規格のパケットに変換して無線通信上で送受信する手段を備えていればよい。
【0065】
以上説明したデジタルカメラ140において、無線通信制御やその他のデジタルカメラ140の制御は、ROM147に格納されるプログラムをCPU143が実行することにより実現される。しかし、それぞれの機能は、例えば無線通信制御を行なう専用の回路を使用するなど、ハードウェアを用いても実現可能なことに注意されたい。反対に、信号処理部144の機能は専用のハードウェアを用いずに、ROM147中のプログラムに含ませることによっても実現可能である。
【0066】
<無線通信設定についての説明>
プロトコル変換装置120及びデジタルカメラ140は、IEEE802.11規格に準拠した無線通信を行なうため、無線通信設定を同一にする必要がある。無線通信設定を同一にするには、例えば製品出荷時にあらかじめプロトコル変換装置120のROM124及びデジタルカメラ140のROM147の双方に同一の無線通信設定情報を記録する。これにより、ユーザは煩雑な無線通信設定作業を行なわなくてすむという利点がある。
【0067】
なお、プロトコル変換装置120及びデジタルカメラ140を別々に購入する場合や、2台目以降のデジタルカメラ140を追加する場合は、デジタルカメラ140の操作部148を使用して無線通信設定を変更することにより、プロトコル変換装置120の使用が可能となる。
【0068】
<処理の流れ>
次に、図8及び図9を参照して、図3におけるプロトコル変換装置120とデジタルカメラ140の接続・切断処理の流れを説明する。
【0069】
<プロトコル変換装置120の処理>
図8のステップS800で、プロトコル変換装置120は、USB HOST I/F101及びUSB HOST I/F101を介してコンピュータ100に接続されると、USB端子のV−Busに電圧がかかっていることをCPU123が検知することによって動作を開始する。以下、特に断らなければ図8におけるプロトコル変換装置120の動作はCPU123が行なうものとして説明する。
【0070】
なお、プロトコル変換装置120は、USB HOSTから電源供給を受けて動作(バスパワー動作)する構成にしてもよいし、電池やACアダプタなどの電源供給手段を備えて、USB HOSTから電源供給を受けずに動作(セルフパワー動作)する構成にしてもよい。
【0071】
ステップS801で、プロトコル変換装置120は、無線装置に対してプロトコル変換機能の利用権を与えていない状態では、USBのHID(Human Interface Device)クラスのデバイスのディスクリプタを設定する。その後、USBの信号線の一方(Low SpeedデバイスのときはD−信号線、Full SpeedデバイスのときはD+信号線(図8ではD+信号線として説明))を抵抗によって3.3VにPull upする。抵抗のPull upにより、コンピュータ100はHIDクラスのUSBデバイスが接続されたものと認識する。
【0072】
プロトコル変換装置が接続されているコンピュータ100が搭載しているOSがWindows(登録商標) OSやMac OSなどの場合、一般的にHIDクラスのドライバが出荷時にインストールされているため、HIDクラスのデバイスが接続された場合でも、専用のドライバをインストールする必要がないという利点がある。実際には、プロトコル変換装置120は、無線装置に対してプロトコル変換機能の利用権を与えていない状態ではHIDクラスの機能をコンピュータに提供することはない。したがって、コンピュータ100にドライバのインストールを要求するものでなければ、例えばHUBクラスなど、任意のクラスとしてコンピュータに見せるような構成とすることができる。
【0073】
或いは、D+またはD−信号線のPull upを行なわないことによって、コンピュータ100に対してUSBデバイスが接続されているように見せないような構成も考えられる。この場合、コンピュータ100上に無意味なHIDクラスのデバイスが現れるようなことがないために、コンピュータ100のユーザに対して混乱を与えることがない。さらに、USB HOST側の装置がHIDクラスのドライバを搭載していないプリンタなどである場合でも、プロトコル変換装置120を接続した際に対応するドライバが存在しないことに起因するトラブルを回避できるという利点がある。
【0074】
ステップS802で、プロトコル変換装置120は無線通信を開始する。前述の通り、プロトコル変換装置120及びデジタルカメラ140は同一の無線通信設定がなされている。したがって、通信圏内(電波が届く範囲内)にデジタルカメラ140が存在すれば無線通信が可能である。
【0075】
ステップS803で、プロトコル変換装置120は、デジタルカメラ140等の無線装置からプロトコル変換機能の利用要求がくるのを待つ。
【0076】
プロトコル変換機能の利用要求は、例えばプロトコル変換装置がTCP/IPのサーバ、無線装置がTCP/IPのクライアントになって、TCP/IP上に実現された特定のパケットのやりとりによって実現することができる。ここで、図10(a)は利用要求パケットの構成を示している。
【0077】
利用要求パケットには、パケットの種類を示すPacketCodeフィールド、デバイスの種類を示すDeviceTypeフィールド、USB接続時の速度を示すUSBSpeedフィールド、プロトコル変換プログラムの有無を示すfProgramフィールド(後述)、ユニークなデバイスIDを書き込むDeviceIDフィールドが含まれる。
【0078】
なお、本実施形態のプロトコル変換装置120は、USBSpeedフィールドに従ってUSBの通信速度をFull Speed、High Speed、またはLow Speedに設定する。しかし、無線通信の速度に応じて、例えばIEEE802.11b規格でプロトコル変換装置120とデジタルカメラ140する場合はUSBのFull Speedに設定し、IEEE802.11g規格で接続する場合はUSBのHigh Speedに設定するような構成にすることも可能である。
【0079】
プロトコル変換装置120が利用要求パケットを受信すると、ステップS804へ移行する。
【0080】
ステップS804では、プロトコル変換装置120は、既に他の無線装置に対してプロトコル変換機能を提供している状態であるかを判定する。提供中であればステップS820に移行し、利用拒否を発行する。利用拒否の詳細は後述する。提供中でなければステップS805へ移行する。
【0081】
ステップS805では、プロトコル変換装置120は利用要求を送信した無線装置がPTPで定められた形式のデータパケットを無線データパケットに変換して通信可能なデジタルカメラ140であるかどうかを判断する。利用要求を送信した無線装置がデジタルカメラ140であれば、ステップS806へ移行する。
【0082】
ステップS806では、プロトコル変換装置120はデジタルカメラ140に対して、図10(b)に示すTCP/IPパケットで構成される利用許可を送信する。利用許可パケットはAcceptedDeviceIDフィールドを含み、利用要求パケットで通知されたDeviceIDを値として書き込む。
【0083】
ステップS807では、プロトコル変換装置120はUSB信号線の一方(Low SpeedデバイスのときはD−信号線、Full SpeedデバイスのときはD+信号線)のPull up状態を解除する。これにより、コンピュータ100では、接続されていたHIDクラスのデバイスとの接続が解除された場合と同等の処理がなされる。
【0084】
ステップS808では、プロトコル変換装置120はUSB属性情報131としてStill Imageクラスのデバイスのディスクリプタを設定する。ここで、図11はStill Imageクラスのデバイスディスクリプタ情報(図11(a))及びインタフェースディスクリプタ情報(図11(b))の構成の一例を示したものである。Still Imageクラスのデバイスの場合、bInterfaceClass=0x06、bInterfaceSubClass=0x01、bInterfaceProtocol=0x01の値をとる。すなわち、デジタルカメラ140に対してプロトコル変換機能の利用権を与える場合、プロトコル変換装置120はコンピュータ100に対して、USBのStill Imageクラスとして振舞うように構成されている。
【0085】
したがって、ステップS809では、プロトコル変換装置120は、ROM124の変換プログラム群125から、Still Imageクラス用の変換プログラムをロードする(読み出す)。この変換プログラムは先に説明したように、送受信バッファ130から蓄積されたユーザデータを取り出し、PTPのデータフェーズパケット、レスポンスフェーズパケットを構築し、さらにUSB規格に準拠したデータパケットに変換するという動作を行なう。また、USB I/F121を介して受信したUSBデータパケットから、PTPのオペレーションフェーズパケット、データフェーズパケットを分割して、TCP/IPのユーザデータ形式に変換するという動作も行なう。
【0086】
ところで、本実施形態のプロトコル変換装置120は、Still Imageクラス以外の無線装置に対してもプロトコル変換機能を提供するように構成することが可能である。例えば変換プログラム群125がUSBのMass Storageクラス(MSC)に対応する変換プログラムを含んでいれば、無線通信機能を備えたHDD(ハードディスクドライブ)からもプロトコル変換機能の利用が可能である。この場合、プロトコル変換装置120はコンピュータ100に対してUSBのMass Storageクラス(MSC)として振舞うように構成される。
【0087】
この変換プログラムは、送受信バッファ130から蓄積されたユーザデータを取り出し、USB規格に準拠したMass Storageクラスのデータパケットを構築するという動作を行なう。さらに、USB I/F121を介して受信したUSBデータパケットから、Mass Storageクラスのデータパケットを抜き出した後、分割して、TCP/IPのユーザデータ形式に変換するという動作を行なう。
【0088】
このときの処理の流れを示したものが、ステップS810乃至ステップS814である。プロトコルの変換方法等はStill Imageクラスの場合と異なるが、本発明において重要な処理の流れは同様であるため、詳細な説明は省略する。
【0089】
なお、図12はMass Storageクラスのデバイスディスクリプタ情報(図12(a))及びインタフェースディスクリプタ情報(図12(b))の構成の一例を示したものである。Bulk−Onlyプロトコルを採用したMass Storageクラスのデバイスの場合、bInterfaceClass=0x08、bInterfaceSubClass=0x05、bInterfaceProtocol=0x50の値をとる。
【0090】
また、図8中には描かれていないが、変換プログラム群125に対応する変換プログラムが含まれていればさらに他の種類の無線装置にもプロトコル変換機能を提供することが可能である。対応する変換プログラムが含まれていない場合、ステップS820へ移行し、利用拒否パケットを発行する。次いでステップS804へ戻る。ここで、図10を参照して、利用拒否について説明する。
【0091】
図10(c)は利用拒否パケットの構成を示す図であり、AcceptedDeviceIDフィールドには、利用要求パケットで通知されたDeviceIDを書き込む。Reasonには、利用要求の拒否の理由を書き込む。拒否の理由には、プロトコル変換装置120が対応するプロトコル変換プログラムを備えていないということや、前述のステップS804で説明したように、既に他の無線装置に対してプロトコル変換機能を提供しているということが存在する。
【0092】
ステップS809又はステップS814での変換プログラムのロードの後、ステップS815で、プロトコル変換装置120はD+信号線のPull upを行なう。これにより、コンピュータ100はUSBデバイスとしてプロトコル変換装置120が接続されたことを検知し、プロトコル変換装置120はコンピュータ100に対して、Still ImageクラスのUSBデバイス又はMass StorageクラスのUSBデバイスとして振舞うようになる。
【0093】
前述のように、Still ImageクラスのドライバやMass Storageクラスのドライバは一般的にWindows(登録商標) OSやMac OSに出荷時にインストールされているため、ユーザがドライバをインストールすることなく通信を開始することができる。
【0094】
ステップS816では、プロトコル変換装置120は変換プログラムの実行を開始する。デジタルカメラ140がプロトコル変換機能を利用する場合、この段階で、デジタルカメラ140がプロトコル変換装置120を介してコンピュータ100と接続された状態となる。すなわち、コンピュータ100から送られてくるPTPのオペレーションフェーズデータに従って、デジタルカメラ140がデータフェーズデータを送受信したり、レスポンスデータを送信したりすることにより、デジタルカメラ140が備えるCF146に格納されている画像データをコンピュータ100に送信したり、反対にコンピュータ100から送られてくる画像データをCF146に保存したりすることができる。
【0095】
ここで重要なのは、デジタルカメラ140から見るとIEEE802.11規格に準拠した無線通信によってコンピュータとやりとりをする一方、コンピュータ100から見るとUSB HOST I/F101の先にStill ImageクラスのUSBデバイスが接続され、PTPで定められた形式のデータパケットでやりとりをすることである。すなわち、プロトコル変換装置120の働きにより、異なるプロトコルで通信する機器間でプロトコルの違いを意識する必要が無くなる。
【0096】
ステップS817では、プロトコル変換装置120はプロトコル変換機能の利用権を与えている無線装置から、利用権の解放があったかどうかを調べる。利用権の解放の通知は図10(d)に示す構成のTCP/IPパケットで送信される。図10(d)のDeviceIDフィールドには、利用要求パケットで指定されたDeviceIDと同じ値が書き込まれている。S817で利用権の解放が発生するか、あるいはステップS818で電波障害等何らかの理由で無線接続自体が切断された場合、ステップS819でD+のPull up状態を解除してコンピュータ100とのUSB接続を切断し、ステップS801に戻ってHIDクラスでの接続状態に復帰する。
【0097】
この後、プロトコル変換装置120は、新たな無線装置からのプロトコル変換機能の利用要求を受信した場合に、これまで説明してきたことと同様にその無線装置の種類に応じたプロトコル変換機能を提供すると同時に、コンピュータに対して無線装置の種類に応じたUSBのクラスとして振舞うよう動作する。
【0098】
<デジタルカメラ140の処理>
次に、図9を参照して、図3におけるデジタルカメラ140がプロトコル変換装置120に対して接続・切断するシーケンスを説明する。デジタルカメラ140の接続動作は操作部148を使用してユーザが無線通信の開始を指示するなどすることによって開始される。以下、特に断らなければ図9におけるデジタルカメラ140の動作はCPU143が行なうものとして説明する。
【0099】
ステップS901では、デジタルカメラ140は無線通信I/F141を介した無線通信を可能な状態にする。前述の通り、プロトコル変換装置120及びデジタルカメラ140は同一の無線通信設定がなされている。したがって、通信圏内(電波が届く範囲内)にプロトコル変換装置120が存在すれば無線通信が可能である。
【0100】
ステップS902では、デジタルカメラ140はプロトコル変換装置120に対してプロトコル変換機能の利用要求を送信する。利用要求はTCP/IP上に実現された特定のパケット(図10(a))の送信によって実現される。本実施形態のデジタルカメラ140は、利用要求パケットの中でデバイスの種類を表す情報(DeviceType)も同時に送信する。
【0101】
ステップS903では、デジタルカメラ140はプロトコル変換装置120から利用許可パケット(図10(b))の受信を待つ。
【0102】
利用許可パケットを受信し、AcceptedDeviceIDフィールドの値が、自身が送信した利用要求パケットのDeviceIDフィールドの値と同一であればステップS904に進み、デジタルカメラ140をPC接続モードに移行させる。
【0103】
PC接続モードとは、例えば撮影モードや再生モードなどと同様に、デジタルカメラ140が有するモードの1つである。このモードではユーザは電源ボタンなど、操作部148のうち限られた操作部材しか操作できないようになり、意図に反して操作部148を触ってしまったなどの理由によって無線通信が中断されるといったことを回避することができる。
【0104】
なお、ステップS903で利用許可パケットを受信せず、ステップS910で利用拒否パケットを受信した場合、ステップS911で利用拒否の理由を表示部149に表示するなどしてユーザに通知し、処理を終了する。
【0105】
ステップS905では、デジタルカメラ140はプロトコル変換装置120が提供するプロトコル変換機能の利用を開始する。プロトコル変換機能の動作はステップS816で説明した内容と同様であるため、詳細は省略する。また、送受信されるデータをデジタルカメラ140が処理する方法はデジタルカメラ140の構成と併せて説明したため、ここでは省略する。
【0106】
ステップS906では、デジタルカメラ140はユーザが操作部148に含まれる電源ボタンや無線通信の終了ボタンを押すのを監視する。ユーザが電源ボタンや無線通信の終了ボタンを押すと、ステップS907で利用権解放パケット(図10(d))をTCP/IP上でプロトコル変換装置120に対して送信する。
【0107】
次いでステップS908でデジタルカメラ140は無線接続を切断し、ステップS909でPCモードを解除して、通常のモード(撮影モードや再生モードなど)に戻る。
【0108】
また、図10(a)で示した利用要求のパケットにおいて、USBの通信速度属性を無線装置から指定するようにして、その指定に従って、プロトコル変換装置のUSBのデバイスディスクリプタの通信速度属性フィールドを、Full Speed、High Speed、又はLow Speed設定にし、さらには設定した通信速度属性で振舞うように制御するように構成することも容易である。
【0109】
<第1の実施形態のまとめ>
以上説明したように、本実施形態によれば、図3においてプロトコル変換装置120は変換プログラム群125を備え、CPU123が変換プログラム群125を実行することによりプロトコル変換機能を提供する。また、複数の無線装置がプロトコル変換装置120を利用しようとする場合に、どの無線装置に対してプロトコル変換機能を提供するかを決める調停を行なう。また、デジタルカメラ140はプロトコル変換装置120に対し、プロトコル変換機能の利用要求を行なう。
【0110】
これにより、無線通信機能を持たないコンピュータ100と無線通信機能を持つデジタルカメラ140の間の通信が可能となる。また、コンピュータ100からはプロトコル変換装置120が一般的なクラス(デジタルカメラ140の場合はStill Imageクラス)のUSBデバイスに見えるため、ユーザが新たに無線デバイス用のドライバなどをコンピュータ100にインストールすることなく通信が可能であるという利点がある。これは一般的に限られたドライバしか搭載していないプリンタなどがUSB HOST装置となる場合に特に重要な利点となる。
【0111】
[第2の実施形態]
第1の実施形態のプロトコル変換装置120は、あらかじめROM124に複数の変換プログラムを保持していて、プロトコル変換機能を提供する無線装置に応じて、起動する変換プログラムを切り替える構成であった。図13に示される本実施形態のプロトコル変換装置160は、プロトコル変換機能を利用する無線装置がプロトコル変換装置160に変換プログラムを送信し、プロトコル変換装置160では受信した変換プログラムに従ってプロトコル変換機能を提供する。
【0112】
<プロトコル変換装置160及びデジタルカメラ180の構成>
図13は、本実施形態におけるプロトコル変換装置の一例であるプロトコル変換装置160及び通信装置の一例であるデジタルカメラ180の構成を示すブロック図である。図13において、第1の実施形態と同じ機能を有する構成要素には同一の符号を付し、詳細な説明は省略する。
【0113】
第1の実施形態と同様に、プロトコル変換装置160はコンピュータ100とUSB規格の通信プロトコルで接続され、プロトコル変換装置160がUSBのデバイス側、コンピュータ100がUSBのホスト側の役割で通信が実現されている。
【0114】
また、プロトコル変換装置160およびデジタルカメラ180はIEEE802.11規格に準拠した無線通信プロトコルにより通信可能である。その他、無線データパケットの構造(図5)やプロトコル変換の方法など、特に断らなければ第1の実施形態と同様である。
【0115】
以下、プロトコル変換装置160及びデジタルカメラ180の構成について第1の実施形態と異なる部分を説明する。
【0116】
ROM161には、プロトコル変換プログラムが含まれない。本実施形態では代わりに、デジタルカメラ180のROM181が保持する変換プログラム182を受信し、RAM162中の変換プログラム格納領域164に格納する。
【0117】
また、USB属性情報163はデジタルカメラ180のROM181が保持するUSB属性情報183を受信することにより、設定される。
【0118】
USB属性情報183はデジタルカメラ180に対応する属性情報である。変換プログラム182は、CPU123が実行可能なプログラムであり、デジタルカメラ180とコンピュータ100がプロトコル変換装置160を介して無線通信でやりとりできるように、プロトコルを変換するものである。変換方法自体は第1の実施形態と同様である。
【0119】
<処理の流れ>
次に、図14及び図15を参照して、プロトコル変換装置160とデジタルカメラ180の接続・切断処理の流れを説明する。
【0120】
<プロトコル変換装置160の処理>
図14は、プロトコル変換装置160の接続・切断処理の流れの一例を示すフローチャートである。ステップS1400乃至ステップS1402における処理は図8のステップS800乃至ステップS802と同様でありプロトコル変換装置160が動作を開始し、ディスクリプタをHIDクラスに設定し、D+信号線をPull upし、無線通信を可能化する。以下、特に断らなければ図14におけるプロトコル変換装置160の動作はCPU123が行なうものとして説明する。
【0121】
ステップS1403では、プロトコル変換装置160は無線装置からプロトコル変換機能の利用要求がくるのを待つ。プロトコル変換機能の利用要求パケットの構成は、図10(a)に示したものと同様である。また、本実施形態の場合、利用要求パケットにおいて、fProgramフィールド(送信する変換プログラムがあるか否か)の値がTRUEをとるものとする。
【0122】
なお、第1の実施形態では利用要求の受信後、利用要求を発した無線装置の種類に応じてプロトコル変換機能を提供可能か判断するステップが存在した(図8のステップS805、ステップS810)。しかし、本実施形態ではプロトコル変換プログラムを無線装置から受信できるため、対応するステップが存在しない。
【0123】
ステップS1404では図8のステップS805と同様、既に他の無線装置に対してプロトコル変換機能を提供している状態であるかを判定する。提供中であればステップS1416に移行し、ステップS802と同様、利用拒否を発行する。
【0124】
ステップS1405ではステップS806と同様、利用許可を発行する。
【0125】
ステップS1406では、プロトコル変換装置160は変換プログラム182をデジタルカメラ180から受信する。変換プログラム182はIEEE802.11規格のパケットの形式であり、プロトコル変換装置160はこれを無線通信I/F122を介して受信し、変換プログラム格納領域164に格納する。
【0126】
なお、利用要求のたびに変換プログラム182を受信するのではなく、変換プログラム格納領域164に必要な変換プログラムが格納されていないときのみ変換プログラム182を受信する構成とすることも可能である。例えば、RAM162が複数の変換プログラムを格納するのに十分なメモリ容量を有し、又はデジタルカメラ180が連続してプロトコル変換装置を利用する場合などにおいては、最初の利用要求の時にのみ変換プログラム182を受信する構成とすることが可能である。これによって、2度目以降にデジタルカメラ180がプロトコル変換機能を利用できるまでの時間を短くすることができる。
【0127】
ステップS1407では、プロトコル変換装置160はUSB属性情報183を受信する。USB属性情報183も変換プログラム182と同様にIEEE802.11規格のパケットの形式であり、プロトコル変換装置160はこれを無線通信I/F122を介して受信し、この情報に基づいてUSB属性情報163を設定する。
【0128】
ステップS1408ではステップS807と同様、D+信号線のPull upを解除する。
【0129】
ステップS1409では、USBのデバイスクラスのディスクリプタを設定する。ディスクリプタはUSB属性情報163から生成する。例えばプロトコル変換機能を利用する無線装置がデジタルカメラ180の場合、結局ステップS808と同様、USB属性情報163にStill Imageクラスのディスクリプタを設定する。
【0130】
ステップS1410はステップS809と同様、変換プログラム格納領域164から対応する変換プログラムをロードする。また、ステップS1411乃至ステップS1415はステップS815乃至ステップS819と同様、D+信号線をPull upし、利用権の解放や無線接続の切断があるまでプロトコル変換プログラムを実行し、最後にD+のPull upを解除する
この後、プロトコル変換装置160は新たな無線装置からのプロトコル変換機能の利用要求を受信した場合に、これまで説明してきた動作と同様に、その無線装置のデバイスの種類に応じたプロトコル変換機能を提供すると同時に、コンピュータに対してデバイスの種類に応じたUSBのクラスとして振舞うよう動作する。
【0131】
<デジタルカメラ180の処理>
次に、図15を参照してデジタルカメラ180がプロトコル変換装置160に対して接続・切断する処理の流れを説明する。デジタルカメラ180の接続動作は操作部148を使用してユーザが無線通信の開始を指示するなどすることによって開始される。以下、特に断らなければ図15におけるデジタルカメラ180の動作はCPU143が行なうものとして説明する。
【0132】
ステップS1500乃至ステップS1503は図9のステップS900乃至ステップS903と同様、無線通信を可能化して利用要求を送信し、利用許可を受信したかを判定する。また、プロトコル変換装置160から利用拒否を受信した場合はステップS1512及びステップS1513で、ステップS910及びステップS911と同様、利用拒否の理由を表示部149に表示するなどしてユーザに通知し、処理を終了する。
【0133】
ステップS1504では、デジタルカメラ180は変換プログラム182をROM181から読み出し、TCP/IP形式のパケットに変換した後、IEEE802.11規格のパケットに変換して無線通信上でプロトコル変換装置160に送信する。
【0134】
ステップS1505では、デジタルカメラ180はUSB属性情報183をROM181から読み出し、TCP/IP形式のパケットに変換した後、IEEE802.11規格のパケットに変換して無線通信上でプロトコル変換装置160に送信する。
【0135】
ステップS1506乃至ステップS1511はステップS904乃至ステップS909における処理と同様、無線通信の終了が指示されるまでプロトコル変換装置160を利用してデータの送受信を行なう。
【0136】
<第2の実施形態のまとめ>
以上説明したとおり、本実施形態によれば、プロトコル変換装置160はプロトコル変換機能を利用する無線装置からプロトコル変換プログラムを受信して、受信したプログラムに従ってプロトコル変換機能を提供する。したがって、あらかじめプロトコル変換装置160に変換プログラムを保持する必要がなく、プロトコル変換装置160の動作を知っている任意の無線装置、すなわちプロトコル変換装置160が使用可能なプロトコル変換プログラムを有する任意の無線装置がプロトコル変換装置160を利用することが可能である。
【0137】
これにより、第1の実施形態における利点に加えて、複数の種類の無線装置に対して容易にプロトコル変換機能を提供でき、ホスト装置と通信装置をより一層容易に無線接続することが可能となる。
【0138】
また、特定の無線装置と、プロトコル変換装置160との間のプロトコルの変換方法に変更が生じた場合、無線装置の動作プログラムの更新と同時に、変換プログラムの更新を行なえばよい。すなわち、無線装置とプロトコル変換装置160双方のソフトウェアを更新する必要が無く、1つのデバイスに対するソフトウェアの更新作業を行なうだけで済むため、利便性に優れる。
【0139】
[その他の実施形態]
上述の各実施形態において、プロトコル変換装置120及びプロトコル変換装置160は、図10で示した利用要求や利用許可のパケットのやりとりによってプロトコル変換機能を提供する無線装置の調停を行なう構成であった。しかし、プロトコル変換装置120及びプロトコル変換装置160がダイヤルやレバーなどの操作部材を備えて、ユーザがその操作部材を使ってプロトコル変換機能を提供する無線装置を指定することができるようにして、指定された無線装置に対してのみプロトコル変換機能の提供を許可する構成にすることも可能である。
【0140】
このような構成にすることにより、ユーザの意図した無線装置以外の無線装置がプロトコル変換装置120又はプロトコル変換装置160を使用することを防止することができる。
【0141】
ところで、IEEE802.11規格のMACレイヤ(媒体アクセス制御レイヤ)では、CSMA/CA(衝突回避機能つきキャリア感知多重アクセス)による無線チャネル・アクセス制御機能や、基地局と端末局間のマネージメント機能を備えており、無線局間でやり取りされる無線パケットのフレーム・フォーマットを定義している。MACフレームのタイプとしては、マネージメント・フレーム、制御フレーム、データ・フレームの3種類がある。
【0142】
このうちマネージメント・フレームの機能を拡張して、図10で示したプロトコル変換装置と他の無線装置の間の利用要求や利用許可のやりとりを行なうように実現することも可能である。デジタルカメラ140(又はデジタルカメラ180)は、プロトコル変換装置120(又はプロトコル変換装置160)を介さずに直接無線通信上でコンピュータやプリンタとやりとりする場合は、利用要求や利用許可のやりとりは不要である。したがって、MAC層で利用要求や利用許可のやりとりをすることによって、プロトコル変換装置120(又はプロトコル変換装置160)を介さずに直接無線通信上でコンピュータやプリンタを接続する場合と、プロトコル変換装置120(又はプロトコル変換装置160)を介してコンピュータやプリンタと無線接続する場合とで、TCP/IP層から上のシーケンスを同じように実現でき、無線接続相手の違いを意識する必要がないという利点がある。
【0143】
また、プロトコル変換機能を提供する無線装置の調停を行なう方法としては、プロトコル変換装置120及びプロトコル変換装置160が無線電波をスキャンして、IEEE802.11で定義されているBeaconフレームやProbe RequestフレームのESS−IDフィールドが、特定のESS−IDであるデバイスに対して、プロトコル変換機能を提供するというように実現することも可能である。
【0144】
また、上述した各実施の形態の処理は、各機能を具現化したソフトウェアのプログラムコードを記録した記憶媒体をシステム或は装置に提供し、そのシステム或は装置のコンピュータ(又はCPUやMPU)が記憶媒体に格納されたプログラムコードを読み出し実行することによっても実現することができる。この場合、記憶媒体から読み出されたプログラムコード自体が前述した実施形態の機能を実現することになり、そのプログラムコードを記憶した記憶媒体は本発明を構成することになる。このようなプログラムコードを供給するための記憶媒体としては、例えば、フロッピィ(登録商標)ディスク、ハードディスク、光ディスク、光磁気ディスク、CD−ROM、CD−R、磁気テープ、不揮発性のメモリカード、ROMなどを用いることができる。
【0145】
また、コンピュータが読み出したプログラムコードを実行することにより、前述した各実施の形態の機能が実現されるだけでなく、そのプログラムコードの指示に基づき、コンピュータ上で稼動しているOS(オペレーティングシステム)などが実際の処理の一部又は全部を行ない、その処理によって前述した各実施の形態の機能が実現される場合も含まれている。
【0146】
さらに、記憶媒体から読み出されたプログラムコードが、コンピュータに挿入された機能拡張ボードやコンピュータに接続された機能拡張ユニットに備わるメモリに書きこまれた後、そのプログラムコードの指示に基づき、その機能拡張ボードや機能拡張ユニットに備わるCPUなどが実際の処理の一部又は全部を行ない、その処理によって前述した各実施の形態の機能が実現される場合も含むものである。
【図面の簡単な説明】
【0147】
【図1】本発明における通信システムの実施形態の一例を示す図である。
【図2】本発明における通信システムの実施形態の一例を示す図である。
【図3】第1の実施形態におけるプロトコル変換装置及びデジタルカメラの構成の一例を示すブロック図である。
【図4】本発明における通信システムの実施形態の一例を示す図である。
【図5】プロトコル変換装置とデジタルカメラの間でやりとりされる無線データパケットのパケット(IEEE802.11形式のパケット)構造を示す図である。
【図6】PTPにおいてInitiatorとResponderの間でやりとりされるトランザクションの形式を示す図である。
【図7】PTPにおけるオペレーションフェーズパケット、データフェーズパケット、レスポンスフェーズパケットのパケット構成図である。
【図8】第1の実施形態におけるプロトコル変換装置の接続・切断処理の流れの一例を示すフローチャートである。
【図9】第1の実施形態におけるデジタルカメラの接続・切断処理の流れの一例を示すフローチャートである。
【図10】利用要求パケット、利用許可パケット、利用拒否パケット、利用権解放パケットの構成を示す図である。
【図11】USB Still Imageクラスのディスクリプタ情報の構成を示す図である。
【図12】USB Mass Storageクラスのディスクリプタ情報の構成を示す図である。
【図13】第2の実施形態におけるプロトコル変換装置及びデジタルカメラの構成の一例を示すブロック図である。
【図14】第2の実施形態におけるプロトコル変換装置の接続・切断処理の流れの一例を示すフローチャートである。
【図15】第2の実施形態におけるデジタルカメラの接続・切断処理の流れの一例を示すフローチャートである。
【符号の説明】
【0148】
100 コンピュータ
101 USB HOST I/F
120 プロトコル変換装置
121 USB I/F
122 無線通信I/F
125 変換プログラム群
128 利用者調停プログラム
140 デジタルカメラ
141 無線通信I/F
【技術分野】
【0001】
本発明は、それぞれ異なる通信プロトコルによる通信機能を備えるホスト装置(例えばパーソナルコンピュータ)と通信装置(例えばデジタルカメラ)の間に介在して、両者の通信プロトコルを相互に変換するプロトコル変換装置及びプロトコル変換方法に関する。
【背景技術】
【0002】
現在、コンピュータとデジタルカメラとをUSB(Universal Serial Bus)規格に準拠した有線による通信方式(USB通信プロトコル)で接続して、データのやりとりを行なうことが広くなされている。
【0003】
しかし、コンピュータとデジタルカメラとがそれぞれ異なる通信プロトコルによる通信機能しか備えていない場合もある。これに対し、特許文献1はそれぞれ異なる通信プロトコルによる通信機能を備える装置間に介在して両者の通信プロトコルを相互に変換する方法を提案する。
【0004】
また、有線による通信方式を、IEEE802.11規格(IEEE802.11a/b/gを含む)に準拠した無線による通信方式(無線通信プロトコル)に置き換えてコンピュータとデジタルカメラとの間でデータのやりとりを行なうことにより、より手軽にコンピュータとデジタルカメラを接続する方法も普及しつつある。
【0005】
しかし、USBを無線方式の通信に置き換えた場合、デジタルカメラだけでなく、コンピュータも無線通信機能を備えていないと無線通信することができないという問題がある。またIEEE802.11規格に準拠した通信方式の場合、コンピュータが無線通信機能を備えていても、すでにコンピュータがこの規格の無線ネットワークに加入している場合、デジタルカメラが無線通信機能を使ってコンピュータと接続するためには、デジタルカメラに対して加入する無線ネットワークの設定(例えば、使用する無線チャネル、ESS−ID、WEP Keyの設定など)を行なう必要がある。この設定をデジタルカメラの操作部材を使って行なうことは非常に煩雑である。特に、デジタルカメラを異なった無線ネットワークに加入している複数のコンピュータと無線接続させるためには、デジタルカメラに対して同じ数だけの無線ネットワーク設定を行なう必要がある。
【0006】
これに対し、特許文献2は、コンピュータ側のUSBバスに接続する無線ハブと、デバイス(例えばデジタルカメラ)のUSBインタフェースに接続する無線ポートとを設け、これらの間で無線通信を実現する方法を提案する。無線ハブはコンピュータと通信を行ない、デバイスへのUSBパケットを無線信号へ、デバイスからの無線信号をUSBパケットに変換することにより、無線通信機能を持たないコンピュータとデジタルカメラとの通信を可能とする。
【特許文献1】特開2001−168942号公報
【特許文献2】特開平11−112524号公報
【発明の開示】
【発明が解決しようとする課題】
【0007】
しかしながら、特許文献1で提案されている方法は、デバイスとプロトコル変換装置とを1対1で接続するものであり、複数のデバイスがプロトコル変換装置を使用してホスト装置との通信を欲する場合に、どのデバイスに対してプロトコル変換の機能を提供するかという問題が考慮されていない。したがって、複数のデバイスを使用する場合の利便性に欠ける。
【0008】
一方、特許文献2で提案されている方法は、USBを備えていないデジタルカメラには適用することができない。また、無線ハブを接続するコンピュータ側はUSBハブクラスのドライバを搭載する必要がある。例えばデジタルカメラと直接USB接続してダイレクトプリントを実行可能なプリンタは、簡易的なUSBホスト機能を搭載していることがあるが、この場合、USBハブクラスのドライバを搭載していないことがあるため、そのような場合には適用不可能である。
【0009】
本発明はこのような状況に鑑みてなされたものであり、それぞれ異なる通信プロトコルによる通信機能を備えるホスト装置(例えばコンピュータ)と通信装置(例えば無線通信機能を備えたデジタルカメラ)との間の接続を容易にするプロトコル変換装置及びプロトコル変換方法を提供することを目的とする。
【課題を解決するための手段】
【0010】
上記課題を解決するために、本発明のプロトコル変換装置は、ホスト装置と通信装置の間に介在して通信プロトコルを変換するプロトコル変換装置であって、第1の通信プロトコルによって前記通信装置と通信を行なう第1の通信手段と、第2の通信プロトコルによって前記ホスト装置と通信を行なう第2の通信手段と、前記第1の通信プロトコルに準拠したデータと前記第2の通信プロトコルに準拠したデータとを相互に変換するプロトコル変換手段と、複数の前記通信装置から前記プロトコル変換手段の利用要求を受信した場合にいずれの通信装置に利用を許可するかを調停する調停手段と、を備えることを特徴とする。
【0011】
また、本発明の通信装置は、プロトコル変換装置と通信する通信手段と、前記プロトコル変換装置に対し利用要求を発する利用要求手段と、前記利用要求に対する利用の許否を前記プロトコル変換装置から受信する受信手段と、を備えることを特徴とする。
【0012】
また、本発明のプロトコル変換装置を制御する制御方法は、第1の通信プロトコルによって通信装置と通信を行なう第1の通信工程と、第2の通信プロトコルによってホスト装置と通信を行なう第2の通信工程と、前記第1の通信プロトコルに準拠したデータと前記第2の通信プロトコルに準拠したデータとを相互に変換するプロトコル変換工程と、複数の前記通信装置から前記プロトコル変換工程における変換機能の利用要求を受信した場合にいずれの通信装置に利用を許可するかを調停する調停工程と、を備えることを特徴とする。
【0013】
なお、その他の本発明の特徴は、添付図面及び以下の発明を実施するための最良の形態の記載によっていっそう明らかになるものである。
【発明の効果】
【0014】
以上の構成により、本発明のプロトコル変換装置及びプロトコル変換方法によれば、それぞれ異なる通信プロトコルによる通信機能を備えるホスト装置と通信装置を容易に接続することが可能となる。
【発明を実施するための最良の形態】
【0015】
以下、添付図面を参照して、本発明の好適な実施形態を説明する。
【0016】
なお、説明を簡単にするために、以下の各実施形態ではプロトコル変換装置と通信装置(例えばデジタルカメラ)はIEEE802.11規格に準拠した無線通信プロトコルで通信することとして説明するが、これに限定されるものではないことに注意されたい。データ形式(パケット形式)及びプロトコル変換方式を適宜変更すれば、例えばIEEE1394規格に準拠した有線による通信プロトコルなど、任意の通信プロトコルに対して本発明は適用可能である。
【0017】
同様に、プロトコル変換装置とホスト装置(例えばコンピュータ)はUSB通信プロトコルで通信することとして説明するが、これに限定されるものではないことに注意されたい。
【0018】
[第1の実施形態]
<基本的構成>
図1は、本発明における通信システムの実施形態の一例を示す図である。
【0019】
図1には、コンピュータ100、プロトコル変換装置120、デジタルカメラ140が示されている。プロトコル変換装置120はコンピュータ100とUSB規格の通信方式(USB通信プロトコル)で接続され、プロトコル変換装置120がUSBのデバイス側、コンピュータ100がUSBのホスト側の役割で通信が実現されている。
【0020】
また、プロトコル変換装置120及びデジタルカメラ140はIEEE802.11規格(IEEE802.11a/b/gを含む)に準拠した無線の通信方式(通信プロトコル)により接続されている。
【0021】
<プロトコル変換装置120の構成>
図1において、プロトコル変換装置120はコンピュータ100からUSB規格に準拠したデータパケットが送信されてくると、データパケットをIEEE802.11規格に準拠した無線データパケットに変換して、デジタルカメラ140に送信する機能を備えている。反対に、デジタルカメラ140からIEEE802.11規格に準拠した無線データパケットが送信されてくると、そのデータパケットをUSB規格に準拠したデータパケットに変換してコンピュータ100に送信する機能を備えている。
【0022】
このため、コンピュータ100がIEEE802.11規格に準拠した無線の通信手段を備えていない場合でも、プロトコル変換装置120をコンピュータ100にUSB接続することによって、デジタルカメラ140との間において、無線による通信を実現することが可能となる。
【0023】
また、プロトコル変換装置120は図2に示すように、ダイレクトプリント機能を備えるプリンタ300とUSB規格の通信方式で接続して使用することも可能である。この場合、プロトコル変換装置120がUSBのデバイス側、プリンタ300がUSBのホスト側の役割で通信が実現される。なお、ダイレクトプリント機能とは、プリンタとデジタルカメラとをUSBケーブルなどで直接接続して、デジタルカメラの保持する画像を印刷する機能である。
【0024】
プロトコル変換装置120はプリンタ300からUSB規格に準拠したデータパケットが送信されてくると、そのデータパケットをIEEE802.11規格に準拠した無線データパケットに変換して、デジタルカメラ140に送信する。一方、デジタルカメラ140からIEEE802.11規格に準拠した無線データパケットが送信されてくると、そのデータパケットをUSB規格に準拠したデータパケットに変換してプリンタ300に送信する。
【0025】
このため、プリンタ300がIEEE802.11規格に準拠した無線の通信手段を備えていない場合でも、プロトコル変換装置120をプリンタ300にUSB接続することにより、デジタルカメラ140との間において、無線によるダイレクトプリント機能を実現することが可能となる。
【0026】
図3は、本実施形態におけるプロトコル変換装置の一例であるプロトコル変換装置120及び通信装置の一例であるデジタルカメラ140の構成を示すブロック図である。
【0027】
プロトコル変換装置120はUSB I/F121を備えており、コンピュータ100のUSB HOST I/F101を介してコンピュータ100とUSB規格の通信方式で接続される。
【0028】
また、プロトコル変換装置120は無線通信I/F122を備えていて、デジタルカメラ140の無線通信I/F141を介してIEEE802.11規格の無線通信を行なう。
【0029】
さらに、プロトコル変換装置120はCPU123、ROM124、RAM129を備えている。CPU123はROM124に含まれるプログラムを読み出し、作業領域としてRAM129を使用してプログラムを実行し、プロトコル変換装置120全体を制御する。
【0030】
ROM124は変換プログラム群125、USB通信制御プログラム126、無線通信制御プログラム127、利用者調停プログラム128を含む。また、図示しないが、ROM124は無線設定情報(使用する無線チャネル、ESS−ID、WEP Keyなど)も含む。また、RAM129は送受信バッファ130、USB属性情報131を含む。
【0031】
USB通信制御プログラム126はUSB I/F121を制御するプログラムである。USB通信制御プログラム126はUSB属性情報131の値に応じて、USB規格で定義されているDevice DescriptorやDevice_Qualifier Descriptor、Configuration Descriptor、Other_Speed_Configuration Descriptor、Interface Descriptor、Endpoint Descriptorの各データを生成して、USB HOST I/F101からの要求に応じて返答する機能を備える。
【0032】
無線通信制御プログラム127は無線通信I/F122を制御するプログラムである。
【0033】
利用者調停プログラム128はプロトコル変換装置120を複数の通信装置(無線装置)が使用しようとする場合に、いずれか1つの無線装置に対してのみプロトコル変換機能の利用権を与えるように制御するプログラムである。すなわち図4に示すように、コンピュータ100にUSB接続されたプロトコル変換装置120とIEEE802.11規格に準拠した無線通信手段を備えた2つのデジタルカメラ140及びプリンタ400が無線による通信を行なうことができる場合に、同時に1つの無線装置にのみ利用権を与えて、その他の無線装置に対してはプロトコル変換装置120が利用不可能であることを通知するよう制御する。
【0034】
ここで、プリンタ400は図2におけるプリンタ300と異なり、USB接続のホスト装置として機能するのではなく、プロトコル変換装置120と無線接続するデバイスであることに注意されたい。
【0035】
また、プロトコル変換装置120は表示部132を備え、利用者調停プログラム128の制御に従ってプロトコル変換機能を無線装置に対して提供しているか否かを表示する。これによって、ユーザはプロトコル変換装置120を利用可能かどうか認識することができる。
【0036】
なお、表示部132は液晶モニタや発光ダイオード等、ユーザに情報を通知できるものであれば何を用いても構わない。
【0037】
変換プログラム群125は、プロトコルを変換する方法を定めたプログラムを1つ以上備えるものである。複数のプログラムを備える理由は、無線装置によってデータパケットの形式が異なり、その結果プロトコルの変換方法も異なるからである。例えば、プロトコル変換装置120を利用する無線装置がデジタルカメラ140及び図4におけるプリンタ400の2種類である場合、変換プログラム群125はそれぞれの無線装置に対応するプログラムを備えることになる。
【0038】
このようにして、プロトコル変換装置120は、変換プログラム群125が備える変換プログラムの数(種類)に応じた複数の無線装置に対してプロトコル変換機能を提供することができる。
【0039】
プロトコル変換装置120のCPU123は、利用者調停プログラム128の働きによって、プロトコル変換機能の利用を許可された無線装置の種類に応じて、対応する変換プログラムを選択して実行する構成となっている。
【0040】
ここで、図5を参照して、プロトコル変換装置120とデジタルカメラ140の間でやりとりされる無線データパケットのパケット構造を示す。
【0041】
本実施形態におけるプロトコル変換装置120は、デジタルカメラ140との間の通信方式として、ユーザデータをTCP/IP形式のパケットに変換した後、IEEE802.11規格のパケットに変換して、無線通信上で送受信する方式を採用している。そのため、ユーザデータの頭に、TCPヘッダ、IPヘッダ、LLCヘッダ(論理リンク制御フィールド)、802.11ヘッダを付加し、ユーザデータの後ろに802.11FCS(フレームの誤り検査フィールド)を付加する構成となっている。
【0042】
ユーザデータとしては、PTP(Picture Transfer Protocol)規格で定められた形式のデータパケットが収納されている。PTPに関する説明を図6及び図7を用いて行なう。
【0043】
図6はPTPにおいてInitiator(本実施形態ではコンピュータ100)とResponder(本実施形態ではデジタルカメラ140)の間でやりとりされるトランザクションの形式を示す図であり、図7はオペレーションフェーズパケット(図7(a))、データフェーズパケット(図7(b))、レスポンスフェーズパケット(図7(c))のパケット構造を示す図である。
【0044】
図6に示すように、PTPではオペレーションフェーズ→レスポンスフェーズという構成のトランザクション(図6(a))と、オペレーションフェーズ→データフェーズ→レスポンスフェーズという構成のトランザクション(図6(b)、図6(c))が定義されている。また、データフェーズはInitiatorからResponderの向きにデータを送信する場合(図6(b))と、ResponderからInitiatorの向きにデータを送信する場合(図6(c))とがある。
【0045】
先の図5に示す無線データのパケット構造にPTPのデータパケットを詰める場合は、1つ以上のUSBデータパケットから構成されるPTPのデータパケットをTCPの1パケットに収まるサイズに分割した後、適当なヘッダを付加してユーザデータ領域に書き込む手順をとる。例えば、USB1.1ではUSBのデータパケットは最大64Byteであるが、TCPの1パケットのサイズは一般的に最大1500Byteであり、USBデータパケットを最大62個まとめて、1つのIEEE802.11規格のデータパケットを構成することができる。
【0046】
このように、本実施形態では複数のUSBデータパケットを束ねることにより、無線データパケットの転送サイズを大きくできるため、無線通信に伴うオーバーヘッドを小さくすることが可能である。
【0047】
図3に戻って、プロトコル変換装置120はデジタルカメラ140から送信されるIEEE802.11規格のデータパケットを無線通信I/F122で受信すると、IEEE802.11規格で定義されているヘッダ等を取り除き、さらにIPヘッダ、TCPヘッダに従って、ユーザデータを取り出し、RAM129内部の送受信バッファ130に順次蓄積する。
【0048】
送受信バッファ130に蓄積されるユーザデータとしては、CPU123が利用者調停プログラム128や変換プログラム群125中の変換プログラムを実行する際に使用するものがある。
【0049】
CPU123は、送受信バッファ130に蓄積されたユーザデータを取り出して、PTPのデータフェーズパケット、レスポンスフェーズパケットを構築し、さらにUSB規格に準拠したデータパケットに変換する。次いで変換したデータパケットをUSB I/F121を介して、コンピュータ100に向けて送信する。USB規格の通信方式で、PTPのデータパケットを送信する場合、USBのBulk In転送を使用する。
【0050】
一方、プロトコル変換装置120において、USB規格の通信方式でPTPのデータパケットを受信する場合、USBのBulk Out転送を使用する。コンピュータ100からUSB規格に準拠したデータパケットが送信されてくると、USB I/F121を介して受信する。
【0051】
USBデータパケットのうち標準リクエストのパケットについては、CPU123がUSB通信制御プログラム126を実行することにより取り扱う。すなわち、コンピュータ100から要求されるコントロール転送は、プロトコル変換装置120内でパケットの解析を行ない、応答を返す。
【0052】
これにより、プロトコル変換装置120は無線上に流すUSBパケットを自由に取捨選択でき、特にコントロール転送については、無線上でやりとりしないため、シーケンスを簡素化できる。
【0053】
PTPのデータパケットについては、CPU123がプロトコル変換プログラムを実行することによりデジタルカメラ140に送信可能な形式に変換される。すなわち、変換プログラムの動作によって、PTPのオペレーションフェーズパケット、データフェーズパケットを分割して、TCP/IPのユーザデータ形式に変換する。さらに、TCPヘッダ、IPヘッダ、LLCヘッダ、802.11ヘッダ、802.11FCSを付加してIEEE802.11規格のデータパケットを生成し、無線通信I/F122を介してデジタルカメラ140に送信する。
【0054】
プロトコル変換装置120の働きにより、コンピュータ100から見ると、USB HOST I/F101に直接USBデバイスを接続して、PTPのデータパケットをやりとりする場合と同様のハードウェア及びソフトウェアの動作で、無線通信I/F141を備えたデジタルカメラ140と通信を行なうことができる。すなわち、コンピュータ100のユーザは、USBデバイスがコンピュータに接続されている場合と同様のデジタルカメラ操作用アプリケーションを実行することができ、無線通信利用に伴う煩雑な操作を要しない。
【0055】
以上説明したように、プロトコル変換装置120において、プロトコル変換、USB通信制御、無線通信制御、利用者調停のそれぞれの機能は、ROM124に格納されるプログラムをCPU123が実行することにより実現される。しかし、それぞれの機能は、例えばUSB通信制御を行なう専用の回路を使用するなど、ハードウェアを用いても実現可能なことに注意されたい。
【0056】
<デジタルカメラ140の構成>
次に図3を参照して、デジタルカメラ140の構成を説明する。
【0057】
デジタルカメラ140は、撮像部142を備え、これは撮影レンズと、撮影レンズを介して入射する被写体光を受光し、光電変換して画像信号を生成するCCDと、後段のアナログ/デジタル(A/D)変換回路等から構成される。撮像部142がCPU143の制御のもと、デジタル画像信号を出力して信号処理部144で信号処理(ホワイトバランス処理や圧縮処理等)を施した後、RAM145に一時的にデジタル画像信号として保持する。次いで、作成されたデジタル画像信号に撮影設定情報などを付属情報としてヘッダ領域に付加し、最終的にCF146(コンパクトフラッシュ(登録商標))に画像ファイルとして保存する。一連の撮像処理は、CPU143がROM147に格納されている撮像プログラム(不図示)を実行することにより行なう。
【0058】
画像ファイルを記録するための記憶媒体としては、コンパクトフラッシュ(登録商標)の代わりに光磁気ディスクその他のリムーバブルメディアなど、情報を記録できるものであれば何を用いても構わない。
【0059】
デジタルカメラ140はまた、デジタルカメラ140を操作する十字キーなどの操作部148、画像データやメニュー画面を表示する液晶モニタなどの表示部149(VRAMを含む)、無線通信I/F141を備える。
【0060】
また、ROM147には、無線通信I/F141を制御する無線通信制御プログラム150が含まれ、その他図示しないが撮像した画像を表示部149に表示するためのプログラム、プロトコル変換装置120に対してプロトコル変換機能の利用要求を行ない、利用許可を受けるといった動作を行なうためのプログラム、無線設定情報などが含まれる。さらに、RAM145にはプロトコル変換装置120とのデータ送受信に際して一時的にデータを格納する送受信バッファ151が含まれる。
【0061】
デジタルカメラ140は、プロトコル変換装置120から送信されるIEEE802.11規格のデータパケットを無線通信I/F141で受信すると、IEEE802.11規格で定義されているヘッダ等を取り除き、さらにIPヘッダ、TCPヘッダに従ってユーザデータを取り出し、送受信バッファ151に順次蓄積する。
【0062】
送受信バッファ151に蓄積されるユーザデータとしては、プロトコル変換機能の利用調停に関するパケットや、プロトコル変換装置120を介してコンピュータ100から送信されるPTPのオペレーションフェーズデータ、データフェーズデータなどがある。本実施形態のデジタルカメラ140は、ROM147に格納されているプログラムの動作によって、送受信バッファ151から蓄積されたユーザデータを取り出して、PTPのオペレーションフェーズパケット、データフェーズパケットを構築して、解釈するよう構成されている。
【0063】
また、同じくROM147に格納されているプログラムの動作によって、受け取ったPTPのオペレーションフェーズパケットに応じて、コンピュータ100に送信しようとするデータフェーズパケット、レスポンスフェーズパケットを生成して、送受信バッファ151に書き込む。無線通信制御プログラム150は、書き込まれたPTPのオペレーションフェーズパケット、データフェーズパケットを分割して、TCPヘッダ、IPヘッダを付加し、さらにLLCヘッダ、802.11ヘッダ、802.11FCSを付加してIEEE802.11規格のデータパケットを生成する。次いで、無線通信I/F141を介して無線通信上でプロトコル変換装置120に向けて送信する。
【0064】
なお、本実施形態のデジタルカメラ140は、データ送受信の相手であるコンピュータやプリンタの種類によっては、プロトコル変換装置120を介さずにデータを送受信することもできる。すなわち、そのコンピュータやプリンタがIEEE802.11規格に準拠した無線通信手段を備え、さらに、PTPで定められた形式のパケットをTCP/IP形式のパケットに変換した後にIEEE802.11規格のパケットに変換して無線通信上で送受信する手段を備えていればよい。
【0065】
以上説明したデジタルカメラ140において、無線通信制御やその他のデジタルカメラ140の制御は、ROM147に格納されるプログラムをCPU143が実行することにより実現される。しかし、それぞれの機能は、例えば無線通信制御を行なう専用の回路を使用するなど、ハードウェアを用いても実現可能なことに注意されたい。反対に、信号処理部144の機能は専用のハードウェアを用いずに、ROM147中のプログラムに含ませることによっても実現可能である。
【0066】
<無線通信設定についての説明>
プロトコル変換装置120及びデジタルカメラ140は、IEEE802.11規格に準拠した無線通信を行なうため、無線通信設定を同一にする必要がある。無線通信設定を同一にするには、例えば製品出荷時にあらかじめプロトコル変換装置120のROM124及びデジタルカメラ140のROM147の双方に同一の無線通信設定情報を記録する。これにより、ユーザは煩雑な無線通信設定作業を行なわなくてすむという利点がある。
【0067】
なお、プロトコル変換装置120及びデジタルカメラ140を別々に購入する場合や、2台目以降のデジタルカメラ140を追加する場合は、デジタルカメラ140の操作部148を使用して無線通信設定を変更することにより、プロトコル変換装置120の使用が可能となる。
【0068】
<処理の流れ>
次に、図8及び図9を参照して、図3におけるプロトコル変換装置120とデジタルカメラ140の接続・切断処理の流れを説明する。
【0069】
<プロトコル変換装置120の処理>
図8のステップS800で、プロトコル変換装置120は、USB HOST I/F101及びUSB HOST I/F101を介してコンピュータ100に接続されると、USB端子のV−Busに電圧がかかっていることをCPU123が検知することによって動作を開始する。以下、特に断らなければ図8におけるプロトコル変換装置120の動作はCPU123が行なうものとして説明する。
【0070】
なお、プロトコル変換装置120は、USB HOSTから電源供給を受けて動作(バスパワー動作)する構成にしてもよいし、電池やACアダプタなどの電源供給手段を備えて、USB HOSTから電源供給を受けずに動作(セルフパワー動作)する構成にしてもよい。
【0071】
ステップS801で、プロトコル変換装置120は、無線装置に対してプロトコル変換機能の利用権を与えていない状態では、USBのHID(Human Interface Device)クラスのデバイスのディスクリプタを設定する。その後、USBの信号線の一方(Low SpeedデバイスのときはD−信号線、Full SpeedデバイスのときはD+信号線(図8ではD+信号線として説明))を抵抗によって3.3VにPull upする。抵抗のPull upにより、コンピュータ100はHIDクラスのUSBデバイスが接続されたものと認識する。
【0072】
プロトコル変換装置が接続されているコンピュータ100が搭載しているOSがWindows(登録商標) OSやMac OSなどの場合、一般的にHIDクラスのドライバが出荷時にインストールされているため、HIDクラスのデバイスが接続された場合でも、専用のドライバをインストールする必要がないという利点がある。実際には、プロトコル変換装置120は、無線装置に対してプロトコル変換機能の利用権を与えていない状態ではHIDクラスの機能をコンピュータに提供することはない。したがって、コンピュータ100にドライバのインストールを要求するものでなければ、例えばHUBクラスなど、任意のクラスとしてコンピュータに見せるような構成とすることができる。
【0073】
或いは、D+またはD−信号線のPull upを行なわないことによって、コンピュータ100に対してUSBデバイスが接続されているように見せないような構成も考えられる。この場合、コンピュータ100上に無意味なHIDクラスのデバイスが現れるようなことがないために、コンピュータ100のユーザに対して混乱を与えることがない。さらに、USB HOST側の装置がHIDクラスのドライバを搭載していないプリンタなどである場合でも、プロトコル変換装置120を接続した際に対応するドライバが存在しないことに起因するトラブルを回避できるという利点がある。
【0074】
ステップS802で、プロトコル変換装置120は無線通信を開始する。前述の通り、プロトコル変換装置120及びデジタルカメラ140は同一の無線通信設定がなされている。したがって、通信圏内(電波が届く範囲内)にデジタルカメラ140が存在すれば無線通信が可能である。
【0075】
ステップS803で、プロトコル変換装置120は、デジタルカメラ140等の無線装置からプロトコル変換機能の利用要求がくるのを待つ。
【0076】
プロトコル変換機能の利用要求は、例えばプロトコル変換装置がTCP/IPのサーバ、無線装置がTCP/IPのクライアントになって、TCP/IP上に実現された特定のパケットのやりとりによって実現することができる。ここで、図10(a)は利用要求パケットの構成を示している。
【0077】
利用要求パケットには、パケットの種類を示すPacketCodeフィールド、デバイスの種類を示すDeviceTypeフィールド、USB接続時の速度を示すUSBSpeedフィールド、プロトコル変換プログラムの有無を示すfProgramフィールド(後述)、ユニークなデバイスIDを書き込むDeviceIDフィールドが含まれる。
【0078】
なお、本実施形態のプロトコル変換装置120は、USBSpeedフィールドに従ってUSBの通信速度をFull Speed、High Speed、またはLow Speedに設定する。しかし、無線通信の速度に応じて、例えばIEEE802.11b規格でプロトコル変換装置120とデジタルカメラ140する場合はUSBのFull Speedに設定し、IEEE802.11g規格で接続する場合はUSBのHigh Speedに設定するような構成にすることも可能である。
【0079】
プロトコル変換装置120が利用要求パケットを受信すると、ステップS804へ移行する。
【0080】
ステップS804では、プロトコル変換装置120は、既に他の無線装置に対してプロトコル変換機能を提供している状態であるかを判定する。提供中であればステップS820に移行し、利用拒否を発行する。利用拒否の詳細は後述する。提供中でなければステップS805へ移行する。
【0081】
ステップS805では、プロトコル変換装置120は利用要求を送信した無線装置がPTPで定められた形式のデータパケットを無線データパケットに変換して通信可能なデジタルカメラ140であるかどうかを判断する。利用要求を送信した無線装置がデジタルカメラ140であれば、ステップS806へ移行する。
【0082】
ステップS806では、プロトコル変換装置120はデジタルカメラ140に対して、図10(b)に示すTCP/IPパケットで構成される利用許可を送信する。利用許可パケットはAcceptedDeviceIDフィールドを含み、利用要求パケットで通知されたDeviceIDを値として書き込む。
【0083】
ステップS807では、プロトコル変換装置120はUSB信号線の一方(Low SpeedデバイスのときはD−信号線、Full SpeedデバイスのときはD+信号線)のPull up状態を解除する。これにより、コンピュータ100では、接続されていたHIDクラスのデバイスとの接続が解除された場合と同等の処理がなされる。
【0084】
ステップS808では、プロトコル変換装置120はUSB属性情報131としてStill Imageクラスのデバイスのディスクリプタを設定する。ここで、図11はStill Imageクラスのデバイスディスクリプタ情報(図11(a))及びインタフェースディスクリプタ情報(図11(b))の構成の一例を示したものである。Still Imageクラスのデバイスの場合、bInterfaceClass=0x06、bInterfaceSubClass=0x01、bInterfaceProtocol=0x01の値をとる。すなわち、デジタルカメラ140に対してプロトコル変換機能の利用権を与える場合、プロトコル変換装置120はコンピュータ100に対して、USBのStill Imageクラスとして振舞うように構成されている。
【0085】
したがって、ステップS809では、プロトコル変換装置120は、ROM124の変換プログラム群125から、Still Imageクラス用の変換プログラムをロードする(読み出す)。この変換プログラムは先に説明したように、送受信バッファ130から蓄積されたユーザデータを取り出し、PTPのデータフェーズパケット、レスポンスフェーズパケットを構築し、さらにUSB規格に準拠したデータパケットに変換するという動作を行なう。また、USB I/F121を介して受信したUSBデータパケットから、PTPのオペレーションフェーズパケット、データフェーズパケットを分割して、TCP/IPのユーザデータ形式に変換するという動作も行なう。
【0086】
ところで、本実施形態のプロトコル変換装置120は、Still Imageクラス以外の無線装置に対してもプロトコル変換機能を提供するように構成することが可能である。例えば変換プログラム群125がUSBのMass Storageクラス(MSC)に対応する変換プログラムを含んでいれば、無線通信機能を備えたHDD(ハードディスクドライブ)からもプロトコル変換機能の利用が可能である。この場合、プロトコル変換装置120はコンピュータ100に対してUSBのMass Storageクラス(MSC)として振舞うように構成される。
【0087】
この変換プログラムは、送受信バッファ130から蓄積されたユーザデータを取り出し、USB規格に準拠したMass Storageクラスのデータパケットを構築するという動作を行なう。さらに、USB I/F121を介して受信したUSBデータパケットから、Mass Storageクラスのデータパケットを抜き出した後、分割して、TCP/IPのユーザデータ形式に変換するという動作を行なう。
【0088】
このときの処理の流れを示したものが、ステップS810乃至ステップS814である。プロトコルの変換方法等はStill Imageクラスの場合と異なるが、本発明において重要な処理の流れは同様であるため、詳細な説明は省略する。
【0089】
なお、図12はMass Storageクラスのデバイスディスクリプタ情報(図12(a))及びインタフェースディスクリプタ情報(図12(b))の構成の一例を示したものである。Bulk−Onlyプロトコルを採用したMass Storageクラスのデバイスの場合、bInterfaceClass=0x08、bInterfaceSubClass=0x05、bInterfaceProtocol=0x50の値をとる。
【0090】
また、図8中には描かれていないが、変換プログラム群125に対応する変換プログラムが含まれていればさらに他の種類の無線装置にもプロトコル変換機能を提供することが可能である。対応する変換プログラムが含まれていない場合、ステップS820へ移行し、利用拒否パケットを発行する。次いでステップS804へ戻る。ここで、図10を参照して、利用拒否について説明する。
【0091】
図10(c)は利用拒否パケットの構成を示す図であり、AcceptedDeviceIDフィールドには、利用要求パケットで通知されたDeviceIDを書き込む。Reasonには、利用要求の拒否の理由を書き込む。拒否の理由には、プロトコル変換装置120が対応するプロトコル変換プログラムを備えていないということや、前述のステップS804で説明したように、既に他の無線装置に対してプロトコル変換機能を提供しているということが存在する。
【0092】
ステップS809又はステップS814での変換プログラムのロードの後、ステップS815で、プロトコル変換装置120はD+信号線のPull upを行なう。これにより、コンピュータ100はUSBデバイスとしてプロトコル変換装置120が接続されたことを検知し、プロトコル変換装置120はコンピュータ100に対して、Still ImageクラスのUSBデバイス又はMass StorageクラスのUSBデバイスとして振舞うようになる。
【0093】
前述のように、Still ImageクラスのドライバやMass Storageクラスのドライバは一般的にWindows(登録商標) OSやMac OSに出荷時にインストールされているため、ユーザがドライバをインストールすることなく通信を開始することができる。
【0094】
ステップS816では、プロトコル変換装置120は変換プログラムの実行を開始する。デジタルカメラ140がプロトコル変換機能を利用する場合、この段階で、デジタルカメラ140がプロトコル変換装置120を介してコンピュータ100と接続された状態となる。すなわち、コンピュータ100から送られてくるPTPのオペレーションフェーズデータに従って、デジタルカメラ140がデータフェーズデータを送受信したり、レスポンスデータを送信したりすることにより、デジタルカメラ140が備えるCF146に格納されている画像データをコンピュータ100に送信したり、反対にコンピュータ100から送られてくる画像データをCF146に保存したりすることができる。
【0095】
ここで重要なのは、デジタルカメラ140から見るとIEEE802.11規格に準拠した無線通信によってコンピュータとやりとりをする一方、コンピュータ100から見るとUSB HOST I/F101の先にStill ImageクラスのUSBデバイスが接続され、PTPで定められた形式のデータパケットでやりとりをすることである。すなわち、プロトコル変換装置120の働きにより、異なるプロトコルで通信する機器間でプロトコルの違いを意識する必要が無くなる。
【0096】
ステップS817では、プロトコル変換装置120はプロトコル変換機能の利用権を与えている無線装置から、利用権の解放があったかどうかを調べる。利用権の解放の通知は図10(d)に示す構成のTCP/IPパケットで送信される。図10(d)のDeviceIDフィールドには、利用要求パケットで指定されたDeviceIDと同じ値が書き込まれている。S817で利用権の解放が発生するか、あるいはステップS818で電波障害等何らかの理由で無線接続自体が切断された場合、ステップS819でD+のPull up状態を解除してコンピュータ100とのUSB接続を切断し、ステップS801に戻ってHIDクラスでの接続状態に復帰する。
【0097】
この後、プロトコル変換装置120は、新たな無線装置からのプロトコル変換機能の利用要求を受信した場合に、これまで説明してきたことと同様にその無線装置の種類に応じたプロトコル変換機能を提供すると同時に、コンピュータに対して無線装置の種類に応じたUSBのクラスとして振舞うよう動作する。
【0098】
<デジタルカメラ140の処理>
次に、図9を参照して、図3におけるデジタルカメラ140がプロトコル変換装置120に対して接続・切断するシーケンスを説明する。デジタルカメラ140の接続動作は操作部148を使用してユーザが無線通信の開始を指示するなどすることによって開始される。以下、特に断らなければ図9におけるデジタルカメラ140の動作はCPU143が行なうものとして説明する。
【0099】
ステップS901では、デジタルカメラ140は無線通信I/F141を介した無線通信を可能な状態にする。前述の通り、プロトコル変換装置120及びデジタルカメラ140は同一の無線通信設定がなされている。したがって、通信圏内(電波が届く範囲内)にプロトコル変換装置120が存在すれば無線通信が可能である。
【0100】
ステップS902では、デジタルカメラ140はプロトコル変換装置120に対してプロトコル変換機能の利用要求を送信する。利用要求はTCP/IP上に実現された特定のパケット(図10(a))の送信によって実現される。本実施形態のデジタルカメラ140は、利用要求パケットの中でデバイスの種類を表す情報(DeviceType)も同時に送信する。
【0101】
ステップS903では、デジタルカメラ140はプロトコル変換装置120から利用許可パケット(図10(b))の受信を待つ。
【0102】
利用許可パケットを受信し、AcceptedDeviceIDフィールドの値が、自身が送信した利用要求パケットのDeviceIDフィールドの値と同一であればステップS904に進み、デジタルカメラ140をPC接続モードに移行させる。
【0103】
PC接続モードとは、例えば撮影モードや再生モードなどと同様に、デジタルカメラ140が有するモードの1つである。このモードではユーザは電源ボタンなど、操作部148のうち限られた操作部材しか操作できないようになり、意図に反して操作部148を触ってしまったなどの理由によって無線通信が中断されるといったことを回避することができる。
【0104】
なお、ステップS903で利用許可パケットを受信せず、ステップS910で利用拒否パケットを受信した場合、ステップS911で利用拒否の理由を表示部149に表示するなどしてユーザに通知し、処理を終了する。
【0105】
ステップS905では、デジタルカメラ140はプロトコル変換装置120が提供するプロトコル変換機能の利用を開始する。プロトコル変換機能の動作はステップS816で説明した内容と同様であるため、詳細は省略する。また、送受信されるデータをデジタルカメラ140が処理する方法はデジタルカメラ140の構成と併せて説明したため、ここでは省略する。
【0106】
ステップS906では、デジタルカメラ140はユーザが操作部148に含まれる電源ボタンや無線通信の終了ボタンを押すのを監視する。ユーザが電源ボタンや無線通信の終了ボタンを押すと、ステップS907で利用権解放パケット(図10(d))をTCP/IP上でプロトコル変換装置120に対して送信する。
【0107】
次いでステップS908でデジタルカメラ140は無線接続を切断し、ステップS909でPCモードを解除して、通常のモード(撮影モードや再生モードなど)に戻る。
【0108】
また、図10(a)で示した利用要求のパケットにおいて、USBの通信速度属性を無線装置から指定するようにして、その指定に従って、プロトコル変換装置のUSBのデバイスディスクリプタの通信速度属性フィールドを、Full Speed、High Speed、又はLow Speed設定にし、さらには設定した通信速度属性で振舞うように制御するように構成することも容易である。
【0109】
<第1の実施形態のまとめ>
以上説明したように、本実施形態によれば、図3においてプロトコル変換装置120は変換プログラム群125を備え、CPU123が変換プログラム群125を実行することによりプロトコル変換機能を提供する。また、複数の無線装置がプロトコル変換装置120を利用しようとする場合に、どの無線装置に対してプロトコル変換機能を提供するかを決める調停を行なう。また、デジタルカメラ140はプロトコル変換装置120に対し、プロトコル変換機能の利用要求を行なう。
【0110】
これにより、無線通信機能を持たないコンピュータ100と無線通信機能を持つデジタルカメラ140の間の通信が可能となる。また、コンピュータ100からはプロトコル変換装置120が一般的なクラス(デジタルカメラ140の場合はStill Imageクラス)のUSBデバイスに見えるため、ユーザが新たに無線デバイス用のドライバなどをコンピュータ100にインストールすることなく通信が可能であるという利点がある。これは一般的に限られたドライバしか搭載していないプリンタなどがUSB HOST装置となる場合に特に重要な利点となる。
【0111】
[第2の実施形態]
第1の実施形態のプロトコル変換装置120は、あらかじめROM124に複数の変換プログラムを保持していて、プロトコル変換機能を提供する無線装置に応じて、起動する変換プログラムを切り替える構成であった。図13に示される本実施形態のプロトコル変換装置160は、プロトコル変換機能を利用する無線装置がプロトコル変換装置160に変換プログラムを送信し、プロトコル変換装置160では受信した変換プログラムに従ってプロトコル変換機能を提供する。
【0112】
<プロトコル変換装置160及びデジタルカメラ180の構成>
図13は、本実施形態におけるプロトコル変換装置の一例であるプロトコル変換装置160及び通信装置の一例であるデジタルカメラ180の構成を示すブロック図である。図13において、第1の実施形態と同じ機能を有する構成要素には同一の符号を付し、詳細な説明は省略する。
【0113】
第1の実施形態と同様に、プロトコル変換装置160はコンピュータ100とUSB規格の通信プロトコルで接続され、プロトコル変換装置160がUSBのデバイス側、コンピュータ100がUSBのホスト側の役割で通信が実現されている。
【0114】
また、プロトコル変換装置160およびデジタルカメラ180はIEEE802.11規格に準拠した無線通信プロトコルにより通信可能である。その他、無線データパケットの構造(図5)やプロトコル変換の方法など、特に断らなければ第1の実施形態と同様である。
【0115】
以下、プロトコル変換装置160及びデジタルカメラ180の構成について第1の実施形態と異なる部分を説明する。
【0116】
ROM161には、プロトコル変換プログラムが含まれない。本実施形態では代わりに、デジタルカメラ180のROM181が保持する変換プログラム182を受信し、RAM162中の変換プログラム格納領域164に格納する。
【0117】
また、USB属性情報163はデジタルカメラ180のROM181が保持するUSB属性情報183を受信することにより、設定される。
【0118】
USB属性情報183はデジタルカメラ180に対応する属性情報である。変換プログラム182は、CPU123が実行可能なプログラムであり、デジタルカメラ180とコンピュータ100がプロトコル変換装置160を介して無線通信でやりとりできるように、プロトコルを変換するものである。変換方法自体は第1の実施形態と同様である。
【0119】
<処理の流れ>
次に、図14及び図15を参照して、プロトコル変換装置160とデジタルカメラ180の接続・切断処理の流れを説明する。
【0120】
<プロトコル変換装置160の処理>
図14は、プロトコル変換装置160の接続・切断処理の流れの一例を示すフローチャートである。ステップS1400乃至ステップS1402における処理は図8のステップS800乃至ステップS802と同様でありプロトコル変換装置160が動作を開始し、ディスクリプタをHIDクラスに設定し、D+信号線をPull upし、無線通信を可能化する。以下、特に断らなければ図14におけるプロトコル変換装置160の動作はCPU123が行なうものとして説明する。
【0121】
ステップS1403では、プロトコル変換装置160は無線装置からプロトコル変換機能の利用要求がくるのを待つ。プロトコル変換機能の利用要求パケットの構成は、図10(a)に示したものと同様である。また、本実施形態の場合、利用要求パケットにおいて、fProgramフィールド(送信する変換プログラムがあるか否か)の値がTRUEをとるものとする。
【0122】
なお、第1の実施形態では利用要求の受信後、利用要求を発した無線装置の種類に応じてプロトコル変換機能を提供可能か判断するステップが存在した(図8のステップS805、ステップS810)。しかし、本実施形態ではプロトコル変換プログラムを無線装置から受信できるため、対応するステップが存在しない。
【0123】
ステップS1404では図8のステップS805と同様、既に他の無線装置に対してプロトコル変換機能を提供している状態であるかを判定する。提供中であればステップS1416に移行し、ステップS802と同様、利用拒否を発行する。
【0124】
ステップS1405ではステップS806と同様、利用許可を発行する。
【0125】
ステップS1406では、プロトコル変換装置160は変換プログラム182をデジタルカメラ180から受信する。変換プログラム182はIEEE802.11規格のパケットの形式であり、プロトコル変換装置160はこれを無線通信I/F122を介して受信し、変換プログラム格納領域164に格納する。
【0126】
なお、利用要求のたびに変換プログラム182を受信するのではなく、変換プログラム格納領域164に必要な変換プログラムが格納されていないときのみ変換プログラム182を受信する構成とすることも可能である。例えば、RAM162が複数の変換プログラムを格納するのに十分なメモリ容量を有し、又はデジタルカメラ180が連続してプロトコル変換装置を利用する場合などにおいては、最初の利用要求の時にのみ変換プログラム182を受信する構成とすることが可能である。これによって、2度目以降にデジタルカメラ180がプロトコル変換機能を利用できるまでの時間を短くすることができる。
【0127】
ステップS1407では、プロトコル変換装置160はUSB属性情報183を受信する。USB属性情報183も変換プログラム182と同様にIEEE802.11規格のパケットの形式であり、プロトコル変換装置160はこれを無線通信I/F122を介して受信し、この情報に基づいてUSB属性情報163を設定する。
【0128】
ステップS1408ではステップS807と同様、D+信号線のPull upを解除する。
【0129】
ステップS1409では、USBのデバイスクラスのディスクリプタを設定する。ディスクリプタはUSB属性情報163から生成する。例えばプロトコル変換機能を利用する無線装置がデジタルカメラ180の場合、結局ステップS808と同様、USB属性情報163にStill Imageクラスのディスクリプタを設定する。
【0130】
ステップS1410はステップS809と同様、変換プログラム格納領域164から対応する変換プログラムをロードする。また、ステップS1411乃至ステップS1415はステップS815乃至ステップS819と同様、D+信号線をPull upし、利用権の解放や無線接続の切断があるまでプロトコル変換プログラムを実行し、最後にD+のPull upを解除する
この後、プロトコル変換装置160は新たな無線装置からのプロトコル変換機能の利用要求を受信した場合に、これまで説明してきた動作と同様に、その無線装置のデバイスの種類に応じたプロトコル変換機能を提供すると同時に、コンピュータに対してデバイスの種類に応じたUSBのクラスとして振舞うよう動作する。
【0131】
<デジタルカメラ180の処理>
次に、図15を参照してデジタルカメラ180がプロトコル変換装置160に対して接続・切断する処理の流れを説明する。デジタルカメラ180の接続動作は操作部148を使用してユーザが無線通信の開始を指示するなどすることによって開始される。以下、特に断らなければ図15におけるデジタルカメラ180の動作はCPU143が行なうものとして説明する。
【0132】
ステップS1500乃至ステップS1503は図9のステップS900乃至ステップS903と同様、無線通信を可能化して利用要求を送信し、利用許可を受信したかを判定する。また、プロトコル変換装置160から利用拒否を受信した場合はステップS1512及びステップS1513で、ステップS910及びステップS911と同様、利用拒否の理由を表示部149に表示するなどしてユーザに通知し、処理を終了する。
【0133】
ステップS1504では、デジタルカメラ180は変換プログラム182をROM181から読み出し、TCP/IP形式のパケットに変換した後、IEEE802.11規格のパケットに変換して無線通信上でプロトコル変換装置160に送信する。
【0134】
ステップS1505では、デジタルカメラ180はUSB属性情報183をROM181から読み出し、TCP/IP形式のパケットに変換した後、IEEE802.11規格のパケットに変換して無線通信上でプロトコル変換装置160に送信する。
【0135】
ステップS1506乃至ステップS1511はステップS904乃至ステップS909における処理と同様、無線通信の終了が指示されるまでプロトコル変換装置160を利用してデータの送受信を行なう。
【0136】
<第2の実施形態のまとめ>
以上説明したとおり、本実施形態によれば、プロトコル変換装置160はプロトコル変換機能を利用する無線装置からプロトコル変換プログラムを受信して、受信したプログラムに従ってプロトコル変換機能を提供する。したがって、あらかじめプロトコル変換装置160に変換プログラムを保持する必要がなく、プロトコル変換装置160の動作を知っている任意の無線装置、すなわちプロトコル変換装置160が使用可能なプロトコル変換プログラムを有する任意の無線装置がプロトコル変換装置160を利用することが可能である。
【0137】
これにより、第1の実施形態における利点に加えて、複数の種類の無線装置に対して容易にプロトコル変換機能を提供でき、ホスト装置と通信装置をより一層容易に無線接続することが可能となる。
【0138】
また、特定の無線装置と、プロトコル変換装置160との間のプロトコルの変換方法に変更が生じた場合、無線装置の動作プログラムの更新と同時に、変換プログラムの更新を行なえばよい。すなわち、無線装置とプロトコル変換装置160双方のソフトウェアを更新する必要が無く、1つのデバイスに対するソフトウェアの更新作業を行なうだけで済むため、利便性に優れる。
【0139】
[その他の実施形態]
上述の各実施形態において、プロトコル変換装置120及びプロトコル変換装置160は、図10で示した利用要求や利用許可のパケットのやりとりによってプロトコル変換機能を提供する無線装置の調停を行なう構成であった。しかし、プロトコル変換装置120及びプロトコル変換装置160がダイヤルやレバーなどの操作部材を備えて、ユーザがその操作部材を使ってプロトコル変換機能を提供する無線装置を指定することができるようにして、指定された無線装置に対してのみプロトコル変換機能の提供を許可する構成にすることも可能である。
【0140】
このような構成にすることにより、ユーザの意図した無線装置以外の無線装置がプロトコル変換装置120又はプロトコル変換装置160を使用することを防止することができる。
【0141】
ところで、IEEE802.11規格のMACレイヤ(媒体アクセス制御レイヤ)では、CSMA/CA(衝突回避機能つきキャリア感知多重アクセス)による無線チャネル・アクセス制御機能や、基地局と端末局間のマネージメント機能を備えており、無線局間でやり取りされる無線パケットのフレーム・フォーマットを定義している。MACフレームのタイプとしては、マネージメント・フレーム、制御フレーム、データ・フレームの3種類がある。
【0142】
このうちマネージメント・フレームの機能を拡張して、図10で示したプロトコル変換装置と他の無線装置の間の利用要求や利用許可のやりとりを行なうように実現することも可能である。デジタルカメラ140(又はデジタルカメラ180)は、プロトコル変換装置120(又はプロトコル変換装置160)を介さずに直接無線通信上でコンピュータやプリンタとやりとりする場合は、利用要求や利用許可のやりとりは不要である。したがって、MAC層で利用要求や利用許可のやりとりをすることによって、プロトコル変換装置120(又はプロトコル変換装置160)を介さずに直接無線通信上でコンピュータやプリンタを接続する場合と、プロトコル変換装置120(又はプロトコル変換装置160)を介してコンピュータやプリンタと無線接続する場合とで、TCP/IP層から上のシーケンスを同じように実現でき、無線接続相手の違いを意識する必要がないという利点がある。
【0143】
また、プロトコル変換機能を提供する無線装置の調停を行なう方法としては、プロトコル変換装置120及びプロトコル変換装置160が無線電波をスキャンして、IEEE802.11で定義されているBeaconフレームやProbe RequestフレームのESS−IDフィールドが、特定のESS−IDであるデバイスに対して、プロトコル変換機能を提供するというように実現することも可能である。
【0144】
また、上述した各実施の形態の処理は、各機能を具現化したソフトウェアのプログラムコードを記録した記憶媒体をシステム或は装置に提供し、そのシステム或は装置のコンピュータ(又はCPUやMPU)が記憶媒体に格納されたプログラムコードを読み出し実行することによっても実現することができる。この場合、記憶媒体から読み出されたプログラムコード自体が前述した実施形態の機能を実現することになり、そのプログラムコードを記憶した記憶媒体は本発明を構成することになる。このようなプログラムコードを供給するための記憶媒体としては、例えば、フロッピィ(登録商標)ディスク、ハードディスク、光ディスク、光磁気ディスク、CD−ROM、CD−R、磁気テープ、不揮発性のメモリカード、ROMなどを用いることができる。
【0145】
また、コンピュータが読み出したプログラムコードを実行することにより、前述した各実施の形態の機能が実現されるだけでなく、そのプログラムコードの指示に基づき、コンピュータ上で稼動しているOS(オペレーティングシステム)などが実際の処理の一部又は全部を行ない、その処理によって前述した各実施の形態の機能が実現される場合も含まれている。
【0146】
さらに、記憶媒体から読み出されたプログラムコードが、コンピュータに挿入された機能拡張ボードやコンピュータに接続された機能拡張ユニットに備わるメモリに書きこまれた後、そのプログラムコードの指示に基づき、その機能拡張ボードや機能拡張ユニットに備わるCPUなどが実際の処理の一部又は全部を行ない、その処理によって前述した各実施の形態の機能が実現される場合も含むものである。
【図面の簡単な説明】
【0147】
【図1】本発明における通信システムの実施形態の一例を示す図である。
【図2】本発明における通信システムの実施形態の一例を示す図である。
【図3】第1の実施形態におけるプロトコル変換装置及びデジタルカメラの構成の一例を示すブロック図である。
【図4】本発明における通信システムの実施形態の一例を示す図である。
【図5】プロトコル変換装置とデジタルカメラの間でやりとりされる無線データパケットのパケット(IEEE802.11形式のパケット)構造を示す図である。
【図6】PTPにおいてInitiatorとResponderの間でやりとりされるトランザクションの形式を示す図である。
【図7】PTPにおけるオペレーションフェーズパケット、データフェーズパケット、レスポンスフェーズパケットのパケット構成図である。
【図8】第1の実施形態におけるプロトコル変換装置の接続・切断処理の流れの一例を示すフローチャートである。
【図9】第1の実施形態におけるデジタルカメラの接続・切断処理の流れの一例を示すフローチャートである。
【図10】利用要求パケット、利用許可パケット、利用拒否パケット、利用権解放パケットの構成を示す図である。
【図11】USB Still Imageクラスのディスクリプタ情報の構成を示す図である。
【図12】USB Mass Storageクラスのディスクリプタ情報の構成を示す図である。
【図13】第2の実施形態におけるプロトコル変換装置及びデジタルカメラの構成の一例を示すブロック図である。
【図14】第2の実施形態におけるプロトコル変換装置の接続・切断処理の流れの一例を示すフローチャートである。
【図15】第2の実施形態におけるデジタルカメラの接続・切断処理の流れの一例を示すフローチャートである。
【符号の説明】
【0148】
100 コンピュータ
101 USB HOST I/F
120 プロトコル変換装置
121 USB I/F
122 無線通信I/F
125 変換プログラム群
128 利用者調停プログラム
140 デジタルカメラ
141 無線通信I/F
【特許請求の範囲】
【請求項1】
ホスト装置と通信装置の間に介在して通信プロトコルを変換するプロトコル変換装置であって、
第1の通信プロトコルによって前記通信装置と通信を行なう第1の通信手段と、
第2の通信プロトコルによって前記ホスト装置と通信を行なう第2の通信手段と、
前記第1の通信プロトコルに準拠したデータと前記第2の通信プロトコルに準拠したデータとを相互に変換するプロトコル変換手段と、
複数の前記通信装置から前記プロトコル変換手段の利用要求を受信した場合にいずれの通信装置に利用を許可するかを調停する調停手段と、
を備えることを特徴とする、プロトコル変換装置。
【請求項2】
前記調停手段は、さらに、前記プロトコル変換手段の利用要求を拒否する場合に、利用拒否通知を行なう通知手段を備えることを特徴とする、請求項1に記載のプロトコル変換装置。
【請求項3】
前記プロトコル変換手段は、さらに、前記通信装置の種類に応じてデータの変換方法を変更することを特徴とする、請求項1又は2に記載のプロトコル変換装置。
【請求項4】
さらに、前記通信装置に前記プロトコル変換手段を提供している状態であることを表示する表示手段を備えることを特徴とする、請求項1乃至3のいずれか1項に記載のプロトコル変換装置。
【請求項5】
前記第2の通信プロトコルはUSB通信プロトコルであることを特徴とする、請求項1乃至4のいずれか1項に記載のプロトコル変換装置。
【請求項6】
さらに、前記通信装置の種類に応じてUSB属性情報を設定することを特徴とする、属性情報設定手段を備えることを特徴とする、請求項5に記載のプロトコル変換装置。
【請求項7】
さらに、前記調停手段が前記通信装置のいずれかに前記プロトコル変換手段を提供すると、前記通信装置の種類に応じてUSBのディスクリプタ情報の少なくとも1つのフィールドを異なる値に設定し、前記ホスト装置とUSB接続を確立する接続確立手段を備えることを特徴とする、請求項5又は6に記載のプロトコル変換装置。
【請求項8】
前記接続確立手段は、前記通信装置の種類に応じてUSBのディスクリプタ情報のデバイスクラスフィールド、デバイスサブクラスフィールド、インタフェースクラスフィールド、インタフェースサブクラスフィールド、インタフェースプロトコルフィールドのうち少なくとも1つのフィールドを異なる値に設定することを特徴とする、請求項7に記載のプロトコル変換装置。
【請求項9】
さらに、前記調停手段が前記通信装置のいずれかに該プロトコル変換装置の使用を許可すると、前記通信装置の種類に応じてUSBのHi Speed Deviceとして動作するか、Full Speed Deviceとして動作するか、又はLow Speed Deviceとして動作するかを決定する接続速度決定手段を備えることを特徴とする、請求項5乃至8のいずれか1項に記載のプロトコル変換装置。
【請求項10】
さらに、前記通信装置から該通信装置の種類に応じたデータの変換方法を定めたプロトコル変換プログラムを受信する受信手段を備えることを特徴とする、請求項1乃至9のいずれか1項に記載のプロトコル変換装置。
【請求項11】
前記第1の通信プロトコルは無線通信プロトコルであることを特徴とする、請求項1乃至10のいずれか1項に記載のプロトコル変換装置。
【請求項12】
さらに、前記無線通信プロトコルのための無線設定情報を保持する無線設定保持手段を備えることを特徴とする、請求項11に記載のプロトコル変換装置。
【請求項13】
プロトコル変換装置と通信する通信手段と、
前記プロトコル変換装置に対し利用要求を発する利用要求手段と、
前記利用要求に対する利用の許否を前記プロトコル変換装置から受信する受信手段と、
を備えることを特徴とする、通信装置。
【請求項14】
さらに、前記通信手段で使用する通信プロトコルに準拠したデータを他の通信プロトコルに変換するプロトコル変換プログラムを前記プロトコル変換装置に送信する送信手段を備えることを特徴とする、請求項13に記載の通信装置。
【請求項15】
前記通信手段で使用する通信プロトコルは、無線通信プロトコルであることを特徴とする、請求項13又は14に記載の通信装置。
【請求項16】
さらに、前記無線通信プロトコルのための無線設定情報を保持する無線設定保持手段を備えることを特徴とする、請求項15に記載の通信装置。
【請求項17】
プロトコル変換装置を制御する制御方法であって、
第1の通信プロトコルによって通信装置と通信を行なう第1の通信工程と、
第2の通信プロトコルによってホスト装置と通信を行なう第2の通信工程と、
前記第1の通信プロトコルに準拠したデータと前記第2の通信プロトコルに準拠したデータとを相互に変換するプロトコル変換工程と、
複数の前記通信装置から前記プロトコル変換工程における変換機能の利用要求を受信した場合にいずれの通信装置に利用を許可するかを調停する調停工程と、
を備えることを特徴とする、制御方法。
【請求項18】
プロトコル変換装置を制御する制御方法を実行するコンピュータプログラムであって、
第1の通信プロトコルによって通信装置と通信を行なう第1の通信工程を実行するプログラムコードと、
第2の通信プロトコルによってホスト装置と通信を行なう第2の通信工程を実行するプログラムコードと、
前記第1の通信プロトコルに準拠したデータと前記第2の通信プロトコルに準拠したデータとを相互に変換するプロトコル変換工程を実行するプログラムコードと、
複数の前記通信装置から前記プロトコル変換工程の利用要求を受信した場合にいずれの通信装置に利用を許可するかを調停する調停工程を実行するプログラムコードと、
を備えることを特徴とする、コンピュータプログラム。
【請求項19】
請求項18に記載のコンピュータプログラムを記憶したコンピュータ可読記憶媒体。
【請求項1】
ホスト装置と通信装置の間に介在して通信プロトコルを変換するプロトコル変換装置であって、
第1の通信プロトコルによって前記通信装置と通信を行なう第1の通信手段と、
第2の通信プロトコルによって前記ホスト装置と通信を行なう第2の通信手段と、
前記第1の通信プロトコルに準拠したデータと前記第2の通信プロトコルに準拠したデータとを相互に変換するプロトコル変換手段と、
複数の前記通信装置から前記プロトコル変換手段の利用要求を受信した場合にいずれの通信装置に利用を許可するかを調停する調停手段と、
を備えることを特徴とする、プロトコル変換装置。
【請求項2】
前記調停手段は、さらに、前記プロトコル変換手段の利用要求を拒否する場合に、利用拒否通知を行なう通知手段を備えることを特徴とする、請求項1に記載のプロトコル変換装置。
【請求項3】
前記プロトコル変換手段は、さらに、前記通信装置の種類に応じてデータの変換方法を変更することを特徴とする、請求項1又は2に記載のプロトコル変換装置。
【請求項4】
さらに、前記通信装置に前記プロトコル変換手段を提供している状態であることを表示する表示手段を備えることを特徴とする、請求項1乃至3のいずれか1項に記載のプロトコル変換装置。
【請求項5】
前記第2の通信プロトコルはUSB通信プロトコルであることを特徴とする、請求項1乃至4のいずれか1項に記載のプロトコル変換装置。
【請求項6】
さらに、前記通信装置の種類に応じてUSB属性情報を設定することを特徴とする、属性情報設定手段を備えることを特徴とする、請求項5に記載のプロトコル変換装置。
【請求項7】
さらに、前記調停手段が前記通信装置のいずれかに前記プロトコル変換手段を提供すると、前記通信装置の種類に応じてUSBのディスクリプタ情報の少なくとも1つのフィールドを異なる値に設定し、前記ホスト装置とUSB接続を確立する接続確立手段を備えることを特徴とする、請求項5又は6に記載のプロトコル変換装置。
【請求項8】
前記接続確立手段は、前記通信装置の種類に応じてUSBのディスクリプタ情報のデバイスクラスフィールド、デバイスサブクラスフィールド、インタフェースクラスフィールド、インタフェースサブクラスフィールド、インタフェースプロトコルフィールドのうち少なくとも1つのフィールドを異なる値に設定することを特徴とする、請求項7に記載のプロトコル変換装置。
【請求項9】
さらに、前記調停手段が前記通信装置のいずれかに該プロトコル変換装置の使用を許可すると、前記通信装置の種類に応じてUSBのHi Speed Deviceとして動作するか、Full Speed Deviceとして動作するか、又はLow Speed Deviceとして動作するかを決定する接続速度決定手段を備えることを特徴とする、請求項5乃至8のいずれか1項に記載のプロトコル変換装置。
【請求項10】
さらに、前記通信装置から該通信装置の種類に応じたデータの変換方法を定めたプロトコル変換プログラムを受信する受信手段を備えることを特徴とする、請求項1乃至9のいずれか1項に記載のプロトコル変換装置。
【請求項11】
前記第1の通信プロトコルは無線通信プロトコルであることを特徴とする、請求項1乃至10のいずれか1項に記載のプロトコル変換装置。
【請求項12】
さらに、前記無線通信プロトコルのための無線設定情報を保持する無線設定保持手段を備えることを特徴とする、請求項11に記載のプロトコル変換装置。
【請求項13】
プロトコル変換装置と通信する通信手段と、
前記プロトコル変換装置に対し利用要求を発する利用要求手段と、
前記利用要求に対する利用の許否を前記プロトコル変換装置から受信する受信手段と、
を備えることを特徴とする、通信装置。
【請求項14】
さらに、前記通信手段で使用する通信プロトコルに準拠したデータを他の通信プロトコルに変換するプロトコル変換プログラムを前記プロトコル変換装置に送信する送信手段を備えることを特徴とする、請求項13に記載の通信装置。
【請求項15】
前記通信手段で使用する通信プロトコルは、無線通信プロトコルであることを特徴とする、請求項13又は14に記載の通信装置。
【請求項16】
さらに、前記無線通信プロトコルのための無線設定情報を保持する無線設定保持手段を備えることを特徴とする、請求項15に記載の通信装置。
【請求項17】
プロトコル変換装置を制御する制御方法であって、
第1の通信プロトコルによって通信装置と通信を行なう第1の通信工程と、
第2の通信プロトコルによってホスト装置と通信を行なう第2の通信工程と、
前記第1の通信プロトコルに準拠したデータと前記第2の通信プロトコルに準拠したデータとを相互に変換するプロトコル変換工程と、
複数の前記通信装置から前記プロトコル変換工程における変換機能の利用要求を受信した場合にいずれの通信装置に利用を許可するかを調停する調停工程と、
を備えることを特徴とする、制御方法。
【請求項18】
プロトコル変換装置を制御する制御方法を実行するコンピュータプログラムであって、
第1の通信プロトコルによって通信装置と通信を行なう第1の通信工程を実行するプログラムコードと、
第2の通信プロトコルによってホスト装置と通信を行なう第2の通信工程を実行するプログラムコードと、
前記第1の通信プロトコルに準拠したデータと前記第2の通信プロトコルに準拠したデータとを相互に変換するプロトコル変換工程を実行するプログラムコードと、
複数の前記通信装置から前記プロトコル変換工程の利用要求を受信した場合にいずれの通信装置に利用を許可するかを調停する調停工程を実行するプログラムコードと、
を備えることを特徴とする、コンピュータプログラム。
【請求項19】
請求項18に記載のコンピュータプログラムを記憶したコンピュータ可読記憶媒体。
【図1】
【図2】
【図3】
【図4】
【図5】
【図6】
【図7】
【図8】
【図9】
【図10】
【図11】
【図12】
【図13】
【図14】
【図15】
【図2】
【図3】
【図4】
【図5】
【図6】
【図7】
【図8】
【図9】
【図10】
【図11】
【図12】
【図13】
【図14】
【図15】
【公開番号】特開2007−13880(P2007−13880A)
【公開日】平成19年1月18日(2007.1.18)
【国際特許分類】
【出願番号】特願2005−195277(P2005−195277)
【出願日】平成17年7月4日(2005.7.4)
【出願人】(000001007)キヤノン株式会社 (59,756)
【Fターム(参考)】
【公開日】平成19年1月18日(2007.1.18)
【国際特許分類】
【出願日】平成17年7月4日(2005.7.4)
【出願人】(000001007)キヤノン株式会社 (59,756)
【Fターム(参考)】
[ Back to top ]