(57)【要約】【課題】仮想バス機能を用いた無線通信を自動的に実行することが可能な通信装置および通信制御方法を実現する。【解決手段】本コンピュータ１０は、既存バスの有線通信機能をエミュレートする仮想バス機能を実現する複数種のエミュレーションプロトコルを有している。本コンピュータ１０の仮想バス選択ブロック１５０は、本コンピュータ１０の接続対象である外部装置がサポートしているエミュレーションプロトコルを検出する。仮想バス選択ブロック１５０は、検出されたエミュレーションプロトコル種類と同一種類のエミュレーションプロトコルを複数種のエミュレーションプロトコルの中から選択し、選択されたエミュレーションプロトコルに従ってコンピュータ１０と外部装置との間の無線接続を確立する。【選択図】      図４
2007104081.tif 000002
【特許請求の範囲】
【請求項１】
複数種の有線通信の機能それぞれをエミュレートする複数種のエミュレーションプロトコルを選択的に用いて無線通信を実行する通信装置において、
通信対象の外部装置がサポートしているエミュレーションプロトコルの種類を検出する検出手段と、
前記検出手段によって検出されたエミュレーションプロトコルの種類と同一種類のエミュレーションプロトコルを前記複数種のエミュレーションプロトコルの中から選択する選択手段と、
前記選択手段によって選択されたエミュレーションプロトコルに従って、前記外部装置との無線接続を確立する接続手段とを具備することを特徴とする通信装置。
【請求項２】
前記選択手段は、
前記検出手段によって二つ以上のエミュレーションプロトコルが検出された場合、前記検出されたエミュレーションプロトコルの種類毎に前記外部装置にデータを送信してから前記送信されたデータに対する確認応答が返信されるまでの時間を測定する測定手段と、
前記測定手段によって測定された時間の中で、最も短い時間が測定されたエミュレーションプロトコルを選択する手段を含むことを特徴とする請求項１記載の通信装置。
【請求項３】
前記複数種のエミュレーションプロトコルの各々は、対応する有線通信を実行するための手順を無線通信を実行するための手順に変換することを特徴とする請求項１記載の通信装置。
【請求項４】
前記測定手段は、前記データを暗号化する暗号化処理手段を含むことを特徴とする請求項２記載の通信装置。
【請求項５】
前記選択手段は、
前記検出手段によって二つ以上のエミュレーションプロトコルが検出された場合、前記検出されたエミュレーションプロトコルの種類毎に前記外部装置にデータを送信してから前記送信されたデータに対する確認応答が返信されるまでの時間を複数回測定し、複数測定された時間の平均値を算出する算出手段と、
前記算出手段によって算出された平均値の中で、最も小さい平均値が算出されたエミュレーションプロトコルを選択する手段を含むことを特徴とする請求項１記載の通信装置。
【請求項６】
複数種の有線通信の機能それぞれをエミュレートする複数種のエミュレーションプロトコルを選択的に用いて無線通信を実行する通信装置に適用される通信制御方法であって、
通信対象の外部装置がサポートしているエミュレーションプロトコルの種類を検出する検出ステップと、
前記検出ステップによって検出されたエミュレーションプロトコルの種類と同一種類のエミュレーションプロトコルを前記複数種のエミュレーションプロトコルの中から選択する選択ステップと、
前記選択ステップによって選択されたエミュレーションプロトコルに従って、前記外部装置との無線接続を確立する接続ステップとを具備することを特徴とする通信制御方法。
【請求項７】
前記選択ステップは、
前記検出ステップによって二つ以上のエミュレーションプロトコルが検出された場合、前記検出されたエミュレーションプロトコルの種類毎に前記外部装置にデータを送信してから前記送信されたデータに対する確認応答が返信されるまでの確認応答が返信されるまでの時間を測定する測定処理ステップと、
前記測定処理ステップによって測定された時間の中で、最も短い時間が測定されたエミュレーションプロトコルを選択するステップを含むことを特徴とする請求項６記載の通信制御方法。
【請求項８】
前記複数種のエミュレーションプロトコルの各々は、対応する有線通信を実行するための手順を無線通信を実行するための手順に変換することを含むことを特徴とする請求項６記載の通信制御方法。
【請求項９】
前記測定ステップは、前記データを暗号化する暗号化処理ステップを含むことを特徴とする請求項６記載の通信制御方法。
【請求項１０】
前記選択ステップは、
前記検出ステップによって二つ以上のエミュレーションプロトコルが検出された場合、前記検出されたエミュレーションプロトコルの種類毎に前記外部装置にデータを送信してから前記送信されたデータに対する確認応答が返信されるまでの時間を複数回測定し、複数測定された時間の平均値を算出する算出ステップと、
前記算出ステップによって算出された平均値の中で、最も小さい平均値が算出されたエミュレーションプロトコルを選択するステップを含むことを特徴とする請求項６記載の通信制御方法。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、例えば無線通信を実行するパーソナルコンピュータのような通信装置に関し、特に複数種類の通信方式をサポートする通信装置および同装置で用いられる通信制御方法に関する。
【背景技術】
【０００２】
近年、多数の種類の通信方式それぞれに対応するパーソナルコンピュータが開発されている。このようなコンピュータは、これら多数の種類の通信方式それぞれに対応する通信を実行するための通信インターフェースを有している。
【０００３】
特許文献１には、使用する無線通信方式を切り替える技術が開示されている。ユーザは、ユーザ端末を操作することによって使用すべき無線通信方式を選択するだけで、選択した無線通信に容易に且つ迅速に切り替えることができる。
【特許文献１】特開２００４−１８７１８４号公報
【発明の開示】
【発明が解決しようとする課題】
【０００４】
ところで、既存の有線の通信方式を無線通信の通信方式にエミュレートするエミュレーションプロトコルを用いて、コンピュータと外部機器との間の無線通信を実行する仮想バス選択機能が知られている。ところが、この仮想バス機能においては、ユーザは、コンピュータの表示画面上に表示されたＧＵＩ（Graphical user interface）およびボタンスイッチなどを操作して仮想バス機能の種類を選択する操作が必要であった。また、仮想バス機能の種類が選択されたとしても、その選択された仮想バス機能が外部機器においてサポートされているか否かを検出しなければならない。さらに、もし、コンピュータと外部機器とのそれぞれが複数種の有線通信方式それぞれに対応する仮想バス機能をサポートしている場合、コンピュータと外部機器とのそれぞれに対して、互いに同一種類の有線通信方式に対応する仮想バス機能をマニュアル操作で設定する必要がある。
【０００５】
本発明は上述の事情を考慮してなされたものであり、仮想バス機能を用いた無線通信を自動的に実行することが可能な通信装置および通信制御方法を提供することを目的とする。
【課題を解決するための手段】
【０００６】
上述の課題を解決するために、本発明は、複数種の有線通信の機能それぞれをエミュレートする複数種のエミュレーションプロトコルを選択的に用いて無線通信を実行する通信装置において、通信対象の外部装置がサポートしているエミュレーションプロトコルの種類を検出する検出手段と、前記検出手段によって検出されたエミュレーションプロトコルの種類と同一種類のエミュレーションプロトコルを前記複数種のエミュレーションプロトコルの中から選択する選択手段と、前記選択手段によって選択されたエミュレーションプロトコルに従って、前記外部装置との無線接続を確立する接続手段とを具備することを特徴とする。
【発明の効果】
【０００７】
本発明によれば、仮想バス機能を用いた無線通信を自動的に実行することが可能となる。
【発明を実施するための最良の形態】
【０００８】
以下、図面を参照して本発明の実施形態を説明する。
【０００９】
図１には、本発明の一実施形態に係る通信装置を用いたネットワークシステムの構成例が示されている。本通信装置は、例えばノートブック型のパーソナルコンピュータ１０として実現されている。本コンピュータ１０は、既存バスの有線通信機能をエミュレートする仮想バス機能を有している。この仮想バス機能は、エミュレーションプロトコルによって実現されている。このエミュレーションプロトコルは、有線通信を実行するための手順を無線通信を実行するための手順に変換するプロトコルである。このエミュレーションプロトコルの種類としては、例えばＵＳＢ（Universal Serial Bus）規格に準拠した有線通信をエミュレートする仮想ＵＳＢエミュレーションプロトコルと、IEEE（Institute of Electrical and Electronics Engineers）規格に準拠した有線通信をエミュレートする仮想IEEE1394エミュレーションプロトコルと、例えばEthernet（登録商標）規格に対応する有線通信をエミュレートする仮想有線ＬＡＮ（Local area network）エミュレーションプロトコルなどがある。
【００１０】
本コンピュータ１０は、仮想ＵＳＢ機能、仮想IEEE1394機能および仮想有線ＬＡＮ機能の３種類の仮想バス機能をサポートしている。本コンピュータ１０は、ＵＳＢエミュレーションプロトコルと、IEEE1394エミュレーションプロトコルおよび仮想有線ＬＡＮエミュレーションプロトコルとの３種類のエミュレーションプロトコルを選択的に用いて、本コンピュータ１０と接続対象の外部機器との間の無線接続を確立する。
【００１１】
ハードディスクＡおよびハードディスクＢは、本コンピュータ１０の無線接続対象の外部装置である。ハードディスクＡは、仮想ＵＳＢ機能と、仮想IEEE1394機能および仮想有線ＬＡＮ機能とをサポートしている。ハードディスクＢは、仮想有線ＬＡＮ機能のみをサポートしている。
【００１２】
本コンピュータ１０は、例えば本コンピュータ１０とハードディスクＡとの間で無線通信を実行する場合、ハードディスクＡがサポートするエミュレーションプロトコルを検出し、本コンピュータ１０がサポートする複数種類のエミュレーションプロトコルの中から、ハードディスクＡがサポートしているエミュレーションプロトコルを選択するエミュレーションプロトコル選択処理を実行する。本コンピュータ１０は、エミュレーションプロトコル選択処理によって選択されたエミュレーションプロトコルを用いて、コンピュータ１０とハードディスクＡとの間の無線接続を確立する。
【００１３】
本実施形態の無線接続に用いられる無線通信方式には、Bluetoothと、無線ＬＡＮ（local Area network）と、ワイドバンド通信技術よりもさらに広い通信帯域を用いたＵＷＢ（Ultra Wide Band）無線通信などがある。本実施形態におけるネットワークシステム構成においては、高速な通信速度が望まれるため、ＵＷＢ無線通信の適用が望ましい。
【００１４】
次に、図２を参照して本コンピュータ１０のシステム構成の例を説明する。本コンピュータ１０は、ＣＰＵ１１、ＲＯＭ１２、ＲＡＭ１３、仮想バス選択部１４、仮想バス部１００、無線通信部１５等から構成されている。
【００１５】
ＣＰＵ１１は、本コンピュータ１０の各コンポーネントを制御する。また、ＣＰＵ１１は、ＲＯＭ（Read only memory）１２に格納された各種プログラム等を実行する。ＣＰＵ１１には、バス２を介してＲＯＭ１２、ＲＡＭ１３、仮想バス選択部１４および仮想バス部１００が接続されている。ＲＡＭ（Random access memory）１３は、データなどを格納するためのメモリデバイスである。
【００１６】
仮想バス選択部１４は、仮想バス部１００がサポートするエミュレーションプロトコルの中から外部装置（ハードディスクＡまたはハードディスクＢ）がサポートするエミュレーションプロトコルを選択する。仮想バス部１００は、選択されたエミュレーションプロトコルに従ってエミュレーション処理を実行し、本コンピュータ１０と外部装置との間の無線接続を確立する。
【００１７】
無線通信部１５は、仮想バス選択部１４によって選択された仮想バス部１００内のエミュレーションプロトコルに従って、本コンピュータ１０の接続対象の外部装置（ハードディスクＡまたはハードディスクＢ）との無線通信を実行する無線通信デバイスである。
【００１８】
仮想バス部１００には、本コンピュータ１０がサポートしている仮想バス機能を実行するためのエミュレーションプロトコルが格納されている。この仮想バス部１００には、仮想ＵＳＢ機能１０１、仮想IEEE1394機能１０２および仮想有線ＬＡＮ機能１０３それぞれに対応するエミュレーションプロトコルが格納されている。
【００１９】
次に、図３を参照して、仮想バス選択部１４の機能構成の例を説明する。仮想バス選択部１４は、エミュレーションプロトコル検出部２０、エミュレーションプロトコル格納部２１、エミュレーションプロトコル選択部２２、無線接続部２３を備えている。
【００２０】
エミュレーションプロトコル検出部２０は、本コンピュータ１０と、外部装置（ハードディスクＡまたはハードディスクＢ）とのそれぞれがサポートしているエミュレーションプロトコルを検出する。具体的には、エミュレーションプロトコル検出部２０は、外部装置（ハードディスクＡまたはハードディスクＢ）がサポートしているエミュレーションプロトコルの種類とその種類の数を検出する。そして、エミュレーションプロトコル検出部２０は、コンピュータ１０がサポートしている同一種類のエミュレーションプロトコルの中から、検出されたエミュレーションプロトコルを検出して、その検出したエミュレーションプロトコルの種類とその種類の数を示す情報をエミュレーションプロトコル格納部２１に格納する。
【００２１】
エミュレーションプロトコル選択部２２は、エミュレーションプロトコル格納部２１に格納された情報に基づいて、複数種のエミュレーションプロトコルの中から１つのエミュレーションプロトコルを選択する。無線接続部２３は、エミュレーションプロトコル選択部２２によって選択されたエミュレーションプロトコルの通信方式に従って、本コンピュータ１０と外部装置（ハードディスクＡまたはハードディスクＢ）との間の無線接続を確立する。
【００２２】
また、エミュレーションプロトコル選択部２２は、ダミーデータ暗号化／復号化処理部２４および往復時間測定部２５を備えている。エミュレーションプロトコル選択部２２は、エミュレーションプロトコル格納部２１に複数種のエミュレーションプロトコルが格納されている場合、エミュレーションプロトコルを１つずつ選択する。複数種のエミュレーションプロトコルの中からある種類のエミュレーションプロトコルが選択されたとき、無線接続部２３は、選択されたエミュレーションプロトコルに従って、本コンピュータ１０と外部装置との間の無線接続を一時的に確立する。無線接続が一時的に確立されている時、無線接続部２３は、本コンピュータ１０と外部装置との間で、ダミーデータを転送する転送処理を実行する。ダミーデータ暗号化／復号化処理部２４は、本コンピュータ１０から外部装置に送信すべきダミーデータのパケットを暗号化および復号化する処理を実行する。具体的には、例えば、ダミーデータ暗号化／復号化処理部２４は、例えばＤＴＣＰ（Digital Transmission Content Protection）のＲＴＴ計測機能を用いる等しても良い。
【００２３】
往復時間測定部２５は、上述の転送処理において、ダミーデータの送信を開始してからその送信したダミーデータに対応する確認応答パケットが返信されるまでの往復遅延時間（RTT：Round trip time）を、エミュレーションプロトコルの種類毎に測定する。測定された往復遅延時間は、例えばＲＡＭ１３などに書き込まれる。エミュレーションプロトコル選択部２２は、往復時間測定部２５によって測定された複数の往復遅延時間の中から、最も短い時間が測定されたエミュレーションプロトコルを選択する。
【００２４】
コンピュータ１０と外部装置との各々が複数種のエミュレーションプロトコルをサポートしている場合、本コンピュータ１０がサポートしている複数種のエミュレーションプロトコルの中から、無線通信を好適に実行可能なエミュレーションプロトコルが自動的に選択される。これによって、本コンピュータ１０と外部装置との間で好適な無線接続が確立される。
【００２５】
次に、図４を参照して、本コンピュータ１０と外部装置とのそれぞれのプロトコルスタックの階層構造の例を説明する。本コンピュータ１０の通信プロトコルの階層構造は、物理層１１０、ＭＡＣ（Media Access Control）層１２０、Convergence層１３０、仮想バスブロック１４０および仮想バス選択ブロック１５０等から構成されている。仮想バスブロック１４０は、ＵＳＢエミュレーション層１４１と、IEEE1394エミュレーション層１４２と、有線ＬＡＮエミュレーション層１４３とを有している。
【００２６】
外部装置（ハードディスクＡまたはハードディスクＢ）におけるプロトコルスタックの階層構造は、物理層２１０、ＭＡＣ層２２０、Convergence層２３０、仮想バスブロック２４０、および仮想バス選択ブロック２５０から構成されている。仮想バスブロック２４０は、ＵＳＢエミュレーション層２４１と、IEEE1394エミュレーション層２４２および有線ＬＡＮエミュレーション層２４３とを有している。この階層構造の例においては、物理層１１０，２１０およびＭＡＣ層１２０，２２０は、ハードウェアで構成されており、Convergence層１３０，２３０と、仮想バスブロック１４０，２４０と、仮想バス選択ブロック１５０，２５０とはソフトウェアで構成されている。
【００２７】
物理層１１０，２１０は、物理的な伝送方式や接続方法を定義する層である。ＭＡＣ層１２０，２２０は、送受信されるデータフレームの構造、メディアへのアクセス方法および外部装置への接続方法を定義する層である。Convergence層１３０，２３０は、Convergence層のさらに上位の仮想バスブロック１４０，２４０に含まれる各エミュレーション層それぞれから送信されたデータを下位のＭＡＣ層へ送信し、且つＭＡＣ層から送信されたデータを各エミュレーション層それぞれへ送信する層である。仮想バスブロック１４０，２４０は、物理層は無線でありながら、上位のアプリケーションやユーザからはあたかも既存の有線バスで繋がっているかのようにエミュレートする機能を有する。ＵＳＢエミュレーション層１４１，２４１は、無線通信方式上でＵＳＢ規格に準拠した有線通信方式をエミュレートして通信を実行する機能を有し、図２に示す仮想ＵＳＢ機能１０１に対応している。IEEE1394エミュレーション層１４２，２４２は、無線通信方式上でIEEE1394に準拠した有線通信方式をエミュレートして無線通信を実行する機能を有し、図２に示す仮想IEEE1394機能１０２に対応している。有線ＬＡＮエミュレーション層１４３、２４３は、例えばEthernetに準拠した有線通信方式を無線通信方式にエミュレートして無線通信を実行する機能を有し、図２に示す仮想有線ＬＡＮ機能１０３に対応している。仮想バスブロック１４０，２４０は、無線通信方式上でＲＳ−２３２Ｃ規格の接続をエミュレートする機能も有する。仮想バスブロック１４０，２４０に相当する機能は、既存の無線システムにおいても見ることが出来、例えば、Bluetooth規格のプロトコルスタックにおける、ＲＳ−２３２Ｃ規格の接続をエミュレートするＲＦＣＯＭＭ（Radio Frequency Communication）プロトコルまたは、ＢＮＥＰ（Bluetooth network encapsulation protocol）である。また、仮想バスブロック１４０，２４０に相当する機能は、例えば、ＵＷＢ無線通信のプロトコルスタックにおける、ＵＳＢ規格の無線通信を実行するWireless USBおよびIEEE1394規格の無線通信を実行するWireless 1394である。
【００２８】
仮想バス選択ブロック１５０は、本コンピュータ１０がサポートしているエミュレーションプロトコルの情報を保持すると共に、外部装置がサポートしているエミュレーションプロトコルを検索する。仮想バス選択ブロック１５０は、本コンピュータ１０がサポートしているエミュレーションプロトコルの中から、外部装置がサポートしているエミュレーションプロトコルを抽出する。仮想バス選択ブロック１５０は、抽出されたエミュレーションプロトコルの中から、１つのエミュレーションプロトコルを選択し、選択したエミュレーションプロトコルを用いて本コンピュータ１０とハードディスクＡとの間の無線接続を確立する。仮想バス選択ブロック１５０、２５０それぞれは、図２に示す仮想バス選択部１４の機能に対応している。
【００２９】
次に、図５のタイミングチャートを参照して、本コンピュータ１０と外部装置との間で実行されるエミュレーションプロトコル選択処理の例を説明する。図５においては、例えば本コンピュータ１０とハードディスクＡとの間の無線接続が確立されるまでの様子の例を説明する。
【００３０】
本コンピュータ１０は、コンピュータ１０がサポートしているエミュレーションプロトコルを検出する（ステップＳ１０１）。ステップＳ１０１においては、ＣＰＵ１１の制御の下、本コンピュータ１０がサポートするエミュレーションプロトコル（エミュレーションプロトコル層）の種類およびその種類の数を検出する。本コンピュータ１０は、ハードディスクＡがサポートしているエミュレーションプロトコルの種類とそのエミュレーションプロトコルの種類の数を検出する要求を外部装置に送信する（ステップＳ１０２）。ハードディスクＡは、コンピュータ１０から送信された検出要求に応じて、ハードディスクＡがサポートしているエミュレーションプロトコルの種類とそのエミュレートプロトコルの数を検出する。ハードディスクＡは、仮想ＵＳＢエミュレーションプロトコル、仮想IEEE1394エミュレーションプロトコルおよび仮想有線ＬＡＮエミュレーションプロトコルをサポートしていることを示す確認応答パケットをコンピュータ１０に送信する（ステップＳ１０３）。本コンピュータ１０は、検出結果によって、本コンピュータがサポートしている通信プロトコル（仮想ＵＳＢプロトコル、仮想IEEE1394プロトコルおよび仮想有線ＬＡＮプロトコル）と、ハードディスクＡがサポートしている通信プロトコルの全ての種類の通信プロトコルとが、通信プロトコルの種類毎に通信を実行することが可能であることを検出する（ステップＳ１０４）。ここでは、本コンピュータおよびハードディスクＡが、本コンピュータ１０がサポートしている３種類のエミュレーションプロトコルとハードディスクＡがサポートしている３種類のエミュレーションプロトコルとのそれぞれのエミュレーションプロトコルの種類毎に、全ての種類のエミュレーションプロトコルを用いて無線通信を実行可能な機器として検出されたこととなる。次に、検出された３種類のエミュレーションプロトコルそれぞれを用いたデータ転送処理を実行する。
【００３１】
次に、本コンピュータ１０は、仮想ＵＳＢプロトコルを選択して本コンピュータ１０とハードディスクＡとの間の接続を一時的に確立する（ステップＳ１０５）。接続が確立された後、本コンピュータ１０は、例えばpingのようなダミーデータをハードディスクＡに送信する（ステップＳ１０６）。ハードディスクＡは、コンピュータ１０から送信されたダミーデータを受信し、ダミーデータを受信したことを示す確認応答パケットをコンピュータ１０に送信する（ステップＳ１０７）。コンピュータ１０は、仮想ＵＳＢプロトコルを用いて実行される本コンピュータ１０とハードディスクＡとの間の往復時間ＴUSBを測定して、測定結果を保持する（ステップＳ１０８）。コンピュータ１０は、本コンピュータ１０とハードディスクＡとの間で確立された接続を切断する（ステップＳ１０９）。
【００３２】
次に、本コンピュータ１０は、仮想IEEE1394プロトコルを選択して本コンピュータ１０とハードディスクＡとの間の接続を一時的に確立する（ステップＳ１１０）。接続が確立された後、本コンピュータ１０は、例えばpingのようなダミーデータをハードディスクＡに送信する（ステップＳ１１１）。ハードディスクＡは、コンピュータ１０から送信されたダミーデータを受信し、ダミーデータを受信したことを示す確認応答パケットをコンピュータ１０に送信する（ステップＳ１１２）。コンピュータ１０は、仮想IEEE1394プロトコルに対応する無線通信における本コンピュータ１０とハードディスクＡとの間の往復時間Ｔ１３９４を測定して、測定結果を保持する（ステップ１１３）。コンピュータ１０は、本コンピュータ１０とハードディスクＡとの間で確立された接続を切断する（ステップＳ１１４）。
【００３３】
次に、本コンピュータ１０は、仮想有線ＬＡＮプロトコルを選択して本コンピュータ１０とハードディスクＡとの間の接続を一時的に確立する（ステップＳ１１５）。接続が確立された後、本コンピュータ１０は、例えばpingのようなダミーデータをハードディスクＡに送信する（ステップＳ１１６）。ハードディスクＡは、コンピュータ１０から送信されたダミーデータを受信し、ダミーデータを受信したことを示す確認応答パケットをコンピュータ１０に送信する（ステップＳ１１７）。コンピュータ１０は、仮想有線ＬＡＮプロトコルに対応する無線通信における本コンピュータ１０とハードディスクＡとの間の往復時間ＴＬＡＮを測定して、測定結果を保持する（ステップＳ１１８）。コンピュータ１０は、本コンピュータ１０とハードディスクＡとの間で確立された接続を切断する（ステップＳ１１９）。それぞれのエミュレーションプロトコルを用いた各々のデータの往復時間の測定結果が、例えば、往復時間の早い順にＴＵＳＢ、Ｔ１３９４、ＴＬＡＮであった場合、本コンピュータ１０は、仮想ＵＳＢプロトコルを選択して、選択された仮想ＵＳＢプロトコルを用いて本コンピュータ１０とハードディスクＡとの間の無線通信の接続を確立する（ステップＳ１２０，ステップ１２１）。これによって、本コンピュータ１０は、ダミーデータの往復時間の測定結果の中から最も短い時間の通信プロトコルを選択し、選択した通信プロトコルを用いて本コンピュータ１０と外部装置との間の無線通信の接続を確立する。本コンピュータ１０と外部装置との間で実行される転送処理においては、最も短い時間が測定されたエミュレータプロトコルを用いて無線通信を実行することが最も効率が良いと推測される。ユーザは、コンピュータ１０が実行可能な複数の無線通信機能の中で、より好適な無線通信を自動的に利用することができる。
【００３４】
次に、図６のフローチャートを参照して、本コンピュータ１０と外部装置との間で実行される無線通信の接続を確立する手順の例を説明する。
【００３５】
仮想バス選択ブロック１５０は、本コンピュータ１０の接続対象の外部装置に対して、その外部装置がサポートしているエミュレーションプロトコルを問い合わせる（ステップＳ２０１）。ステップＳ２０１においては、仮想バス選択ブロック１５０は、仮想バスブロック１４０に対してコンピュータ１０がサポートしているエミュレーションプロトコルも問い合わせる。仮想バス選択ブロック１５０は、この問い合わせに対応するハードディスクＡからの応答に含まれるエミュレーションプロトコルの中から、コンピュータ１０がサポートしているエミュレーションプロトコルを選択する。仮想バス選択ブロック１５０は、その選択されたエミュレーションプロトコルをハードディスクＡと無線接続可能なエミュレーションプロトコルとして認識する。即ち、仮想バス選択ブロック１５０は、本コンピュータ１０がサポートしているエミュレーションプロトコルと、外部装置がサポートしているエミュレーションプロトコルとから互いに同一種類のエミュレーションプロトコルを検出する（ステップＳ２０２）。検出された同一種類のエミュレーションプロトコルが２つ以上ある場合（ステップＳ２０３のＮＯ）、仮想バス選択ブロック１５０は、検出されたエミュレーションプロトコルの種類毎に転送処理を実行する。この転送処理は、以下に示すように、検出されたエミュレーションプロトコルの種類が重ならないように、その検出されたエミュレーションプロトコルの数と同じ回数だけ、ステップＳ２０４からステップＳ２０８の処理を繰り返し実行する。本実施形態においては、エミュレーションプロトコルがＮ個（Ｎ＞１）以上検出された場合を想定する（例えばエミュレーションプロトコルｉ，エミュレーションプロトコルｉ＋１，…）。
【００３６】
検出されたＮ個の互いに異なる種類のエミュレーションプロトコル（エミュレーションプロトコルｉ，エミュレーションプロトコルｉ＋１，…）の中から、一つのエミュレーションプロトコル（エミュレーションプロトコルｉ）を用いて本コンピュータ１０と外部装置との間で実行される無線接続を確立する（ステップＳ２０５）。仮想バス選択ブロック１５０は、外部装置に送信すべきダミーデータを暗号化する（ステップＳ２０６）。本コンピュータ１０と外部装置の間で確立された通信方式に基づいて、仮想バス選択ブロック１５０は、外部装置の仮想バス選択ブロック２５０に暗号化したダミーデータを送信するとともに、そのダミーデータを送信してから確認応答パケットを受信するまでの時間を測定する（ステップＳ２０７）。ステップＳ２０７においては、仮想バス選択ブロック２５０は、仮想バス選択ブロック１５０から送信されたダミーデータのパケットを復号化するとともに、そのダミーデータを受信したことを示す確認応答パケットを暗号化して仮想バス選択ブロック１５０に送信する。仮想バス選択ブロック１５０は、受信した確認応答パケットを復号する。ダミーデータが暗号化および復号化されることによって、例えばコンピュータ１０から外部装置に送信されたダミーデータの改ざん、または、コンピュータ１０から送信されたダミーデータであるかのように見せかけるダミーデータのなりすましを防止することができる。また、ダミーデータを暗号化／復号化することによって、コンピュータ１０と外部装置との間で、それぞれの装置の通信の接続が確立された無線通信に対応している機器であることを認証することができる。このため、本コンピュータ１０と外部装置との間で転送されたダミーデータの往復時間を正常に測定することが可能であり、正確な測定結果を得ることができる。
【００３７】
本コンピュータ１０と外部装置との間で確立された無線接続の通信方式に基づいて、仮想バス選択ブロック１５０は、外部装置の仮想バス選択ブロック２５０にダミーデータを送信する。仮想バス選択ブロック２５０は、暗号化されたダミーデータを復号することによって、本コンピュータ１０が確立された通信方式に対応する機器であることを認証し、認証したことを示す確認応答パケットを仮想バス選択ブロック１５０に送信する。仮想バス選択ブロック１５０は、ダミーデータを送信してから確認応答パケットを受信するまでの時間Ｔを測定する（ステップＳ２０７）。ステップＳ２０７においては、選択されたエミュレーションプロトコルｉを用いた時間Ｔｉを例えばＲＡＭ１３などに保持する。仮想バス選択ブロック１５０は、エミュレーションプロトコルｉを用いて確立した通信の接続を切断する（ステップＳ２０８）。時間Ｔｉが測定された後、再びステップＳ２０７からステップＳ２０８の処理が実行され、エミュレーションプロトコルｉの他の種類のエミュレーションプロトコルｉ＋１を用いた時間Ｔｉ＋１が測定され、測定した時間Ｔｉ＋１が保持される。このように、検出されたエミュレーションプロトコルの種類毎に、本コンピュータ１０と外部装置との間の時間を測定する。
【００３８】
次に、仮想バス選択ブロック１５０は、測定された全てのエミュレーションプロトコルの種類の中で、最も短い時間のエミュレーションプロトコルを選択して、選択されたエミュレーションプロトコルを用いて本コンピュータ１０と外部装置との間の無線接続を確立する（ステップＳ２１０）。ステップＳ２１０においては、例えば測定結果がＴｉ＞Ｔｉ＋１である場合、エミュレーションプロトコルｉを選択し、選択したエミュレーションプロトコルｉを用いて無線通信を実行する。
【００３９】
一方、検出されたエミュレーションプロトコルの種類が１つである場合（ステップＳ２０３のＹＥＳ）、仮想バス選択ブロック１５０は、検出されたエミュレーションプロトコルを選択して、選択されたエミュレーションプロトコルを用いて本コンピュータ１０と外部装置との間の無線接続を確立する（ステップＳ２１１）。
【００４０】
例えば、本コンピュータ１０とハードディスクＢとの間で無線接続を確立する場合、本コンピュータ１０がサポートしている３種類のエミュレーションプロトコルの中で、ハードディスクＢがサポートしている仮想有線ＬＡＮのみであると検出される。そして、仮想バス選択ブロック１５０は、検出された仮想有線ＬＡＮプロトコルに従って本コンピュータ１０とハードディスクＢとの間の無線接続を確立する。このように、外部装置がサポートしているエミュレーションプロトコルが１種類のみである場合、転送処理は実行されない。そして、本コンピュータ１０がサポートしている複数種類のエミュレーションプロトコルの中から、ハードディスクＢがサポートしている唯一のエミュレーションプロトコルの種類が自動的に選択され、選択されたエミュレーションプロトコルに従って、コンピュータ１０と外部装置との間の無線接続が確立される。
【００４１】
以上説明したように、本実施形態においては、本コンピュータ１０がサポートしている複数種類のエミュレーションプロトコルの中から外部装置がサポートしている複数種類のエミュレーションプロトコルが自動的に選択される。これによって、ユーザは、ＧＵＩ（Graphical user interface）や操作スイッチ等を操作することなく、本コンピュータ１０と外部装置との間の無線通信を実行することができる。
【００４２】
なお、本実施形態においては、１回のダミーデータの送信とそのダミーデータに対する応答確認により往復遅延時間を算出しているが、仮想バス選択部１４（仮想バス選択ブロック１４０）は、ダミーデータの送信とダミーデータに対する確認応答の時間を複数回計測し、複数計測された時間の平均値を算出してもよい。即ち、エミュレーションプロトコルの種類毎に、転送処理を複数回実行して複数計測された時間の平均値を算出し、算出した平均値の中から最も小さい平均値のエミュレーションプロトコルが選択される。
【００４３】
また、本実施形態においては、本コンピュータ１０がハードディスクＡに対して無線接続する例を説明したが、ハードディスクＡがコンピュータ１０に対して無線接続する例においても同様にエミュレーションプロトコル選択処理を適用することができ、接続する機器の種類には依存しない。
【００４４】
なお、転送処理においては、暗号化および復号化する処理を実行しなくてもよい。
【００４５】
また、本実施形態で説明したエミュレーションプロトコル選択処理の手順は全てコンピュータプログラムによって実現されているので、当該コンピュータプログラムをコンピュータ読み取り可能な記録媒体を通じて通常のコンピュータに導入するだけで、本実施形態と同様の効果を容易に実現することが出来る。
【００４６】
なお、本発明は、上記実施形態そのままに限定されるものではなく、実施段階では、その要旨を逸脱しない範囲で構成要素を変形して具体化できる。また、上記実施形態に開示されている複数の構成要素の適宜な組み合わせにより種々の発明を形成できる。例えば、実施形態に示される全構成要素から幾つかの構成要素を削除してもよい。更に異なる実施形態に構成要素を適宜組み合わせてもよい。
【図面の簡単な説明】
【００４７】
【図１】本発明の一実施形態に係る通信装置と外部装置との間で実行される無線通信のネットワークシステム構成の例を説明するための図。
【図２】図１の通信装置のシステム構成の例を示すブロック図。
【図３】図１の通信装置内に設けられる仮想バス選択部の機能構成の例を示すブロック図。
【図４】図１の通信装置と外部装置とのそれぞれのプロトコルスタックの階層構造の例を説明するためのブロック図。
【図５】図１の通信装置と外部装置との間で実行される無線接続が確立されるまでの例を示すタイミングチャート。
【図６】図１の通信装置で実行されるエミュレーションプロトコル選択処理の手順の例を説明するためのフローチャート。
【符号の説明】
【００４８】
１０…コンピュータ、Ａ…外部装置、Ｂ…外部装置、１１…ＣＰＵ、１２…ＲＯＭ、１３…ＲＡＭ、１４…仮想バス選択部、１５…無線通信部、２０…エミュレーションプロトコル検出部、２１…エミュレーションプロトコル格納部、２２…エミュレーションプロトコル選択部、２３…無線接続部、２４…ダミーデータ暗号化／復号化処理部、２５…往復時間測定部、１００…仮想バス部、１０１…仮想ＵＳＢ機能、１０２…仮想IEEE1394機能、１０３…仮想有線ＬＡＮ機能、１１０，２１０…物理層、１２０，２２０…ＭＡＣ層、１３０，２３０…Convergence層、１４０，２４０…仮想バスブロック、１５０，２５０…仮想バス選択ブロック。
【図１】
2007104081.tif 000003
【図２】
2007104081.tif 000004
【図３】
2007104081.tif 000005
【図４】
2007104081.tif 000006
【図５】
2007104081.tif 000007
【図６】
2007104081.tif 000008