(57)【要約】【課題】ＩＰネットワークに直結され、ホストコンピュータからＩＰネットワークを介して制御されるＵＳＢデバイスを提供する。【解決手段】ホストコンピュータとＵＳＢ接続可能なＵＳＢデバイス１００において、１）ネットワークＩ／Ｆ１１、２）ホストコンピュータとの間でネットワーク（ＬＡＮ）４０を介してＩＰパケットを送受信する通信制御ドライバ１５、３）ＵＳＢデバイスアプリケーションデータをＩＰパケットにカプセル化する、或いは、ＩＰパケットをＵＳＢデバイスアプリケーションデータにデカプセル化するトンネリングドライバ１６、４）ＵＳＢデバイスアプリケーションデータに含まれるＵＳＢコマンドに従ってＵＳＢホストコントローラを制御するＵＳＢコアドライバ１２、５）ＵＳＢホストコントローラおよびＵＳＢデバイスＩ／Ｆをエミュレートするバイパスモジュール１０２を備える。【選択図】図５
2015125655.tif 000002
【特許請求の範囲】
【請求項１】
ホストコンピュータとＵＳＢ（Ｕｎｉｖｅｒｓａｌ Ｓｅｒｉａｌ Ｂｕｓ）接続可能なＵＳＢデバイスにおいて、
ネットワークＩ／Ｆと、
ホストコンピュータとの間でネットワークを介してＩＰパケットを送受信する通信制御ドライバと、
ＵＳＢデバイスアプリケーションデータをＩＰパケットにカプセル化する、或いは、ＩＰパケットをＵＳＢデバイスアプリケーションデータにデカプセル化するトンネリングドライバと、
ＵＳＢデバイスアプリケーションデータに含まれるＵＳＢコマンドに従ってＵＳＢホストコントローラを制御するＵＳＢコアドライバと、
ＵＳＢホストコントローラおよびＵＳＢデバイスＩ／Ｆをエミュレートするバイパスモジュールと、
を備えたことを特徴とするＵＳＢデバイス。
【請求項２】
ネットワークＩ／Ｆと、
ホストコンピュータとの間でネットワークを介してＩＰパケットを送受信する通信制御ドライバと、
ＵＳＢデバイスアプリケーションデータをＩＰパケットにカプセル化する、或いは、ＩＰパケットをＵＳＢデバイスアプリケーションデータにデカプセル化するトンネリングドライバと、
ＵＳＢデバイスアプリケーションデータに含まれるＵＳＢコマンドに従ってＵＳＢホストコントローラを制御するＵＳＢコアドライバと、
ＵＳＢホストコントローラおよびＵＳＢデバイスＩ／Ｆをエミュレートするバイパスモジュールと、
ＵＳＢデバイスＩ／Ｆを制御するＵＳＢガジェットドライバと、
ＵＳＢデバイスアプリケーションデータを入出力するＵＳＢデバイスアプリケーションと、
を備えたことを特徴とするＵＳＢデバイス。
【請求項３】
ホストコンピュータとＵＳＢ（Ｕｎｉｖｅｒｓａｌ Ｓｅｒｉａｌ Ｂｕｓ）接続可能なＵＳＢインタフェースと、ホストコンピュータとネットワークを介して接続可能なネットワークインタフェースを両方備えるＵＳＢデバイスにおいて、
ＵＳＢデバイスアプリケーションデータをＩＰパケットにカプセル化する、或いは、ＩＰパケットをＵＳＢデバイスアプリケーションデータにデカプセル化するトンネリングドライバと、
ＵＳＢデバイスアプリケーションデータに含まれるＵＳＢコマンドに従ってＵＳＢホストコントローラを制御するＵＳＢコアドライバと、
ＵＳＢホストコントローラおよびＵＳＢデバイスＩ／Ｆをエミュレートするバイパスモジュールと、
を備えたことを特徴とするＵＳＢデバイス。
【請求項４】
ホストコンピュータとＵＳＢ（Ｕｎｉｖｅｒｓａｌ Ｓｅｒｉａｌ Ｂｕｓ）接続可能なＵＳＢデバイスにおいて、
ネットワークＩ／Ｆと、
ＵＳＢホストコントローラと、
ホストコンピュータとの間でネットワークを介してＩＰパケットを送受信する通信制御ドライバと、
ＵＳＢデバイスアプリケーションデータをＩＰパケットにカプセル化する、或いは、ＩＰパケットをＵＳＢデバイスアプリケーションデータにデカプセル化するトンネリングドライバと、
ＵＳＢデバイスアプリケーションデータに含まれるＵＳＢコマンドに従ってＵＳＢホストコントローラを制御するＵＳＢコアドライバと、
を備えたことを特徴とするＵＳＢデバイス。
【請求項５】
ネットワークＩ／Ｆと、
ＵＳＢホストコントローラと、
ホストコンピュータとの間でネットワークを介してＩＰパケットを送受信する通信制御ドライバと、
ＵＳＢデバイスアプリケーションデータをＩＰパケットにカプセル化する、或いは、ＩＰパケットをＵＳＢデバイスアプリケーションデータにデカプセル化するトンネリングドライバと、
ＵＳＢデバイスアプリケーションデータに含まれるＵＳＢコマンドに従ってＵＳＢホストコントローラを制御するＵＳＢコアドライバと、
ＵＳＢデバイスＩ／Ｆと、
ＵＳＢデバイスＩ／Ｆを制御するＵＳＢガジェットドライバと、
ＵＳＢデバイスアプリケーションデータを入出力するＵＳＢデバイスアプリケーションと、
を備えることを特徴とするＵＳＢデバイス。
【請求項６】
前記ＵＳＢホストコントローラと前記ＵＳＢデバイスＩ／Ｆが、同一基板に実装されていることを特徴とする請求項５に記載のＵＳＢデバイス。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、ＩＰ（Internet Protocol）ネットワークを介して制御されるＵＳＢデバイスに関するものである。
【背景技術】
【０００２】
近年、有線ＬＡＮ（Ｌｏｃａｌ
Ａｒｅａ Ｎｅｔｗｏｒｋ）または無線ＬＡＮなどのＩＰネットワークはますます広がり、人々の生活のインフラとなっている。ネットワークＩ／Ｆ（インタフェース）の低価格化も進んでいる。
また、コンピュータにローカル接続されていた周辺機器は、ＩＰネットワークが周辺機器の制御データの送受信に十分耐えるほど高速化した現在において、コンピュータとＩＰネットワークを介して周辺機器の制御が可能になっている。
このような状況下、ＩＰネットワークを通じて、コンピュータの周辺機器であるＵＳＢ（Ｕｎｉｖｅｒｓａｌ Ｓｅｒｉａｌ Ｂｕｓ）デバイスを当該ネットワークに接続しているコンピュータから利用することのできるＵＳＢデバイスサーバシステムが知られている（特許文献１、非特許文献１を参照）。
【０００３】
ＵＳＢデバイスサーバシステムでは、ホストコンピュータのＵＳＢデバイスドライバが発行した制御コマンド等のＵＳＢデータがＩＰパケットに変換され（カプセル化）、これがホストコンピュータからＵＳＢデバイスサーバに向けて送信される。ＩＰパケットを受信したＵＳＢデバイスサーバは、受信したＩＰパケットに含まれる制御コマンド等のＵＳＢデータを取り出し（デカプセル化）、ＵＳＢ通信に変換してＵＳＢデバイスサーバ自身にローカル接続されているＵＳＢデバイスに転送する。
【０００４】
ＵＳＢデバイスサーバとＵＳＢデバイスとの間における通信は、ＵＳＢ規格の通信に準じている。例えば、ホストコンピュータからＵＳＢデバイスへの送信の場合、ホストコンピュータからＵＳＢデバイスサーバを経由してＵＳＢデバイスにデータを送信するとともに、随時、ＵＳＢデバイスのステータスに関する応答をホストコンピュータはＵＳＢデバイスサーバ経由で受信する。
【先行技術文献】
【特許文献】
【０００５】
【特許文献１】特開２００８−２８７４５３号公報
【非特許文献】
【０００６】
【非特許文献１】サイレックス・テクノロジー株式会社ホームページ＜http://www.silex.jp/products/usbdeviceserver/sx3000gb.html＞
【発明の概要】
【発明が解決しようとする課題】
【０００７】
従来、ホストコンピュータがＩＰネットワークを介してＵＳＢデバイスを制御する場合、上述のＵＳＢデバイスサーバが利用されている。
ＵＳＢデバイスサーバを用いることで、ＬＡＮなどネットワーク接続したＵＳＢデバイスは、あたかもホストコンピュータにＵＳＢケーブルでローカル接続されているかのように利用できるので、ＵＳＢデバイスのドライバやＵＳＢデバイス付属のアプリケーションソフトウェアもそのまま利用することが可能になるというメリットがある。
しかしながら、ＵＳＢデバイスとは別にＵＳＢデバイスサーバを設置し接続しなければならないといった点がデメリットとして挙げられていた。
【０００８】
また近年、スマートフォン（Smart Phone）に代表されるようにパーソナルコンピュータなみの機能をもたせた携帯電話が普及し、携帯電話とホストコンピュータを直接ＵＳＢ接続して、携帯電話に保存されているアドレス帳や予定表、写真画像やその他の情報ファイルを転送することが行われている。スマートフォンなどの携帯電話では、携帯電話がＵＳＢデバイスとして振る舞い、ホストコンピュータがケーブルを介して携帯電話の内蔵メモリに対してＵＳＢ経由でデータ入出力するというものである。
スマートフォンなどの携帯電話の場合、ホストコンピュータとケーブルを介してＵＳＢ接続可能なＵＳＢインタフェースと、ホストコンピュータと無線ＬＡＮを介して接続可能なネットワークインタフェースを両方備えるＵＳＢデバイスとして位置づけることが可能である。こうした機器は、携帯電話以外にもデジタルカメラなどが存在する。
しかし、携帯電話とホストコンピュータとをＵＳＢ接続させるための端子は微小であり、また防水・防滴カバーを備えているものもあり、ＵＳＢコネクタの取り外しを多数回繰り返した際の端子やカバーの耐久性に不安要素がある。もし無線ＬＡＮを経由して携帯電話内部のＵＳＢデバイスと通信できればこうした問題が解決できる。
しかしながら、現状のスマートフォンなどの携帯電話では、ホストコンピュータから無線ＬＡＮを介して携帯電話に保存されている情報ファイルを入出力すること、携帯電話を制御することは困難であった。
【０００９】
上記事情に鑑みて、本発明は、ＩＰネットワークに直結され、ホストコンピュータからＩＰネットワーク、特に無線ＩＰネットワークを介して制御可能なＵＳＢデバイスを提供することを目的とする。
【課題を解決するための手段】
【００１０】
上記目的を達成すべく、本発明の第１の観点のＵＳＢデバイスは、ホストコンピュータとＵＳＢ（Ｕｎｉｖｅｒｓａｌ Ｓｅｒｉａｌ Ｂｕｓ）接続可能なＵＳＢデバイスにおいて、下記１）〜５）から構成される。
１）ネットワークＩ／Ｆ
２）ホストコンピュータとの間でネットワークを介してＩＰパケットを送受信する通信制御ドライバ
３）ＵＳＢデバイスアプリケーションデータをＩＰパケットにカプセル化する、或いは、ＩＰパケットをＵＳＢデバイスアプリケーションデータにデカプセル化するトンネリングドライバ
４）ＵＳＢデバイスアプリケーションデータに含まれるＵＳＢコマンドに従ってＵＳＢホストコントローラを制御するＵＳＢコアドライバ
５）ＵＳＢホストコントローラおよびＵＳＢデバイスＩ／Ｆをエミュレートするバイパスモジュール
【００１１】
本発明の第１の観点のＵＳＢデバイスは、ＩＰネットワークに直結され、ホストコンピュータからＩＰネットワークを介して制御され、ＵＳＢデバイス本体以外はネットワークＩ／Ｆ部のハードウェアで構成され、他はソフトウェアで構成される。第１の観点のＵＳＢデバイスは、受け渡しデータのインタフェースを変更しないために、既存のドライバプログラムを有効活用できる。本発明の第１の観点のＵＳＢデバイスは、ホストコンピュータとＵＳＢでローカル接続が可能であることが前提であり、ＵＳＢデバイスＩ／Ｆ、ＵＳＢガジェットドライバ、ＵＳＢデバイスアプリケーションを備えている。ＵＳＢガジェットドライバは、ＵＳＢデバイスＩ／Ｆ部を制御するプログラムであり、プラグ・アンド・プレイ機能やＵＳＢ規格で使用する種々のドライバを用意している。
本発明の第１の観点のＵＳＢデバイスでは、ホストコンピュータとＵＳＢ接続可能なＵＳＢデバイスにおいて、上記１）〜５）を備えている点が特徴である。
【００１２】
上記１）のネットワークＩ／Ｆは、有線または無線ネットワーク、例えば無線ＬＡＮのＩ／Ｆなどである。ネットワークＩ／Ｆはハードウェアで構成されるが、その他の上記２）〜５）はソフトウェアで実現される。
また、上記２）の通信制御ドライバは、ホストコンピュータとの間でＩＰパケットを送受信するものであり、ＴＣＰ／ＩＰ（Transmission Control Protocol／Internet
Protocol）に従って処理するドライバプログラムである。
【００１３】
また、上記３）のトンネリングドライバは、ＵＳＢデバイスアプリケーションデータをＩＰパケットにカプセル化する、或いは、ＩＰパケットをＵＳＢデバイスアプリケーションデータにデカプセル化するプログラムである。ここで、ＵＳＢデバイスアプリケーションデータとは、ＢＵＬＫ−ＩＮ、ＢＵＬＫ−ＯＵＴなどのＵＳＢデバイスを制御するＵＳＢコマンドやＵＳＢデバイスとの間で入出力するデータを含むものである。
【００１４】
また、上記４）のＵＳＢコアドライバは、ＵＳＢデバイス本体に対してデータの入出力処理するプログラムであり、ＵＳＢホストコントローラを制御し、各種ＵＳＢコマンドを処理するドライバプログラムである。つまり、ＵＳＢコアドライバは、ＵＳＢホストコントローラを制御し、ＵＳＢデバイスと情報をやりとりし、接続されたデバイスを扱えるＵＳＢドライバを検索して、ＵＳＢデバイスを使用可能な状態にする。
ＵＳＢコアドライバは、ＵＳＢホストコントローラドライバとＵＳＢルート・ハブドライバなどを制御するドライバであり、さらにＵＳＢデータの圧縮・伸縮などを行う、または暗号化・複合化するその他機能などを有することも考えられる。
【００１５】
また、上記５）のバイパスモジュールは、仮想ＵＳＢホストコントローラ部と仮想ＵＳＢデバイスコントローラ部とで構成される。また、ＵＳＢコアドライバをも含む形態にしてもよい。バイパスモジュール部は、ＵＳＢコアドライバとＵＳＢガジェットドライバの間でデータを授受できるようにするものである。ここで、バイパスモジュールがＵＳＢホストコントローラおよびＵＳＢデバイスＩ／Ｆをエミュレートするとは、元来通信経路上ＵＳＢホストコントローラおよびＵＳＢデバイスＩ／Ｆの位置に存在するが、ハードウェアとしての実体はなく、その前後に存在するトンネリングドライバ、又はＵＳＢコアドライバとガジェットドライバとの間で効率よくデータを受け渡す機能を果たすことを意味する。
【００１６】
本発明の第１の観点のＵＳＢデバイスは、下記１）〜７）から構成されるものであると表現することも可能である。
１）ネットワークＩ／Ｆと、
２）ホストコンピュータとの間でネットワークを介してＩＰパケットを送受信する通信制御ドライバと、
３）ＵＳＢデバイスアプリケーションデータをＩＰパケットにカプセル化する、或いは、ＩＰパケットをＵＳＢデバイスアプリケーションデータにデカプセル化するトンネリングドライバと、
４）ＵＳＢデバイスアプリケーションデータに含まれるＵＳＢコマンドに従ってＵＳＢホストコントローラを制御するＵＳＢコアドライバと、
５）ＵＳＢホストコントローラおよびＵＳＢデバイスＩ／Ｆをエミュレートするバイパスモジュールと、
６）ＵＳＢデバイスＩ／Ｆを制御するＵＳＢガジェットドライバと、
７）ＵＳＢデバイスアプリケーションデータを入出力するＵＳＢデバイスアプリケーション
【００１７】
本発明の第１の観点のＵＳＢデバイスは、ホストコンピュータとＵＳＢ接続可能なＵＳＢインタフェースと、ホストコンピュータとネットワークを介して接続可能なネットワークインタフェースを両方備えるＵＳＢデバイスにおいて、下記ａ）〜ｃ）の構成を備えるとして表現することもできる。
ａ）ＵＳＢデバイスアプリケーションデータをＩＰパケットにカプセル化する、或いは、ＩＰパケットをＵＳＢデバイスアプリケーションデータにデカプセル化するトンネリングドライバ
ｂ）ＵＳＢデバイスアプリケーションデータに含まれるＵＳＢコマンドに従ってＵＳＢホストコントローラを制御するＵＳＢコアドライバ
ｃ）ＵＳＢホストコントローラおよびＵＳＢデバイスＩ／Ｆをエミュレートするバイパスモジュール
【００１８】
スマートフォンなどの携帯電話の場合、ホストコンピュータとＵＳＢ接続可能なＵＳＢインタフェースと、ホストコンピュータと無線ＬＡＮを介して接続可能なネットワークインタフェースを両方備えるＵＳＢデバイスとして位置づけることが可能であり、このようなデバイスの場合、上記ａ）〜ｃ）の構成を付加することにより、ホストコンピュータから無線ＬＡＮを介して携帯電話に保存されている情報ファイルを入出力すること、携帯電話を制御することが可能になる。
上記ａ）〜ｃ）の構成は、上述の３）〜５）と同じである。
【００１９】
次に、本発明の第２の観点のＵＳＢデバイスについて説明する。
上述の課題を達成するため、従来から知られている上述のＵＳＢデバイスサーバの機能を内蔵した基板（以下、ＵＳＢデバイスサーバ機能内蔵基板）をＵＳＢデバイスの内部基板（以下、ＵＳＢデバイス内部基板）に実装し、ＵＳＢデバイスサーバ機能内蔵基板とＵＳＢデバイス内部基板との間をコネクタで直結することにより、見かけ上、ＵＳＢデバイスが直接ネットワークに接続されることになり、ホストコンピュータがＩＰネットワークを介して直接にＵＳＢデバイスを制御するように見せることが可能になる。
【００２０】
すなわち、本発明の第２の観点のＵＳＢデバイスは、ホストコンピュータとＵＳＢ（Ｕｎｉｖｅｒｓａｌ Ｓｅｒｉａｌ Ｂｕｓ）接続可能なＵＳＢデバイスにおいて、下記１）〜５）から構成される。
１）ネットワークＩ／Ｆ
２）ＵＳＢホストコントローラ
３）ホストコンピュータとの間でネットワークを介してＩＰパケットを送受信する通信制御ドライバ
４）ＵＳＢデバイスアプリケーションデータをＩＰパケットにカプセル化する、或いは、ＩＰパケットをＵＳＢデバイスアプリケーションデータにデカプセル化するトンネリングドライバ
５）ＵＳＢデバイスアプリケーションデータに含まれるＵＳＢコマンドに従ってＵＳＢホストコントローラを制御するＵＳＢコアドライバ
【００２１】
本発明の第２の観点のＵＳＢデバイスは、下記１）〜８）から構成されるものであると表現することも可能である。
１）ネットワークＩ／Ｆ
２）ＵＳＢホストコントローラ
３）ホストコンピュータとの間でネットワークを介してＩＰパケットを送受信する通信制御ドライバ
４）ＵＳＢデバイスアプリケーションデータをＩＰパケットにカプセル化する、或いは、ＩＰパケットをＵＳＢデバイスアプリケーションデータにデカプセル化するトンネリングドライバ
５）ＵＳＢデバイスアプリケーションデータに含まれるＵＳＢコマンドに従ってＵＳＢホストコントローラを制御するＵＳＢコアドライバ
６）ＵＳＢデバイスＩ／Ｆ
７）ＵＳＢデバイスＩ／Ｆを制御するＵＳＢガジェットドライバ
８）ＵＳＢデバイスアプリケーションデータを入出力するＵＳＢデバイスアプリケーション
【００２２】
また、本発明の第２の観点のＵＳＢデバイスにおいて、ＵＳＢホストコントローラとＵＳＢデバイスＩ／Ｆが、同一基板に実装されていることが好ましい。
通常、上記のＵＳＢデバイスサーバ機能内蔵基板は、ＣＰＵ，ＲＡＭ，ＲＯＭなどの高価な構成要素を含んだ基板である。そのため、ＵＳＢデバイスサーバ機能内蔵基板を別に用意する場合はコスト面で問題がある。また、ＵＳＢデバイス内部基板にも、高価なＣＰＵ，ＲＡＭ，ＲＯＭなどが搭載されており、昨今の高性能なＣＰＵでは余力が存在する。
しかしながら、ＵＳＢデバイス内部基板のＣＰＵに余力があったとしても、ＵＳＢデバイスサーバ機能内蔵基板とＵＳＢデバイス内部基板との間をコネクタで直結するといったアーキテクチャーでは、ＵＳＢデバイス内部基板の余力のあるＣＰＵを活用することはできない。
そこで、ＵＳＢデバイス内部基板のＣＰＵの余力を活用することにより、ＣＰＵ，ＲＡＭ，ＲＯＭなどの高価な構成要素を含んだデバイスサーバ機能内蔵基板が不要となる。
つまり、ＵＳＢホストコントローラとＵＳＢデバイスＩ／Ｆが同一基板に実装される、または、ＵＳＢホストコントローラ部とＵＳＢデバイスＩ／Ｆ部の機能を持ち合わせたＳｏｃ（System-on-a-chip）が基板に実装されることにより、ＵＳＢホストコントローラ部とＵＳＢデバイスＩ／Ｆ部の間を自己結線することで、アーキテクチャーをより安価に実現することが可能になる。
【発明の効果】
【００２３】
本発明のＵＳＢデバイスによれば、ＵＳＢデバイスがＩＰネットワークに直結され、ホストコンピュータからＩＰネットワークを介してＵＳＢデバイスを制御できるといった効果がある。
【図面の簡単な説明】
【００２４】
【図１】従来のＵＳＢデバイスの接続システムの構成図
【図２】コンピュータとローカル接続されたＵＳＢデバイスの機能ブロック図
【図３】ＵＳＢデバイスサーバシステムの機能ブロック図（１）
【図４】ＵＳＢデバイスサーバシステムの機能ブロック図（２）
【図５】本発明の第１の観点のＵＳＢデバイスの機能ブロック図
【図６】本発明の第２の観点のＵＳＢデバイスの機能ブロック図
【図７】実施例１のプリンタの機能ブロック図
【図８】実施例２のスマートフォンの機能ブロック図
【図９】実施例３のスキャナ機器の機能ブロック図
【図１０】バイパスモジュールの説明図
【図１１】従来のプリンタのハードウェア構成図
【発明を実施するための最良の形態】
【００２５】
以下、本発明の実施形態について、図面を参照しながら詳細に説明していく。なお、本発明の範囲は、以下の実施例や図示例に限定されるものではなく、幾多の変更及び変形が可能である。
【００２６】
（従来のＵＳＢデバイスとＵＳＢデバイスサーバ）
本発明のＵＳＢデバイスを説明するに際し、ホストコンピュータにローカル接続されるＵＳＢデバイス、並びにＵＳＢデバイスサーバと対比して説明するのが理解しやすい。そこで、先ず、従来のＵＳＢデバイスおよびＵＳＢデバイスサーバについて説明する。
図１は、従来のＵＳＢデバイスの接続システムの構成図を示している。図１（１）では、ホストコンピュータ２０にＵＳＢケーブル５０でＵＳＢデバイス３０が接続されている。また、図１（２）は従来のＵＳＢデバイスサーバのシステム概略構成図を示している。ＵＳＢデバイスサーバシステムでは、ＵＳＢデバイスサーバ１０にＵＳＢケーブル５０でＵＳＢデバイス３０が接続され、クライアント２０（ホストコンピュータと同義）はネットワーク４０経由で、デバイスサーバ１０に接続されるＵＳＢデバイス３０を制御する。
【００２７】
図２は、図１（１）で示すホストコンピュータ２０とＵＳＢケーブル５０でローカルに接続されたＵＳＢデバイス３０の機能ブロック図を示している。なお、ハードウェア（Ｈ／Ｗ）で実現される機能ブロックと、ソフトウェア（Ｓ／Ｗ）で実現される機能ブロックとを区別して描いている。
ホストコンピュータ２０は、一般的なパーソナルコンピュータと同様なハードウェア構成を備えており、図示しないＣＰＵ、入力部、表示部、メモリ、外部記憶部、図示するＵＳＢホストコントローラ２７などが内部バスで接続されている。
【００２８】
ホストコンピュータ２０には、外部記憶部に格納され、実行時にメモリに搭載されるアプリケーション２４とＵＳＢデバイスドライバ２３とＵＳＢコアドライバ２２がソフトウェア部品として存在する。この他、ソフトウェア部品としては、図示しないＯＳ（Operating
System）、ＯＳと同時に起動しそのまま常に起動している図示しない常駐モジュール、通信制御ドライバ（ＴＣＰ／ＩＰ）があり、制御に必要な各種データと共に外部記憶部に格納されている。
一方、ＵＳＢデバイス３０は、ハードウェアとしてＵＳＢデバイスＩ／Ｆ３１が存在し、これをＵＳＢガジェットドライバ３２が制御する。このような構成によって、ホスト側のアプリケーション２４と、ＵＳＢデバイス側のＵＳＢデバイスアプリケーション３３の間でデータの受け渡しが可能になる。
【００２９】
次に従来のＵＳＢデバイスサーバについて説明する。
図３および図４は、従来のＵＳＢデバイスサーバシステムの機能ブロック図である。また、図４では、ハードウェア（Ｈ／Ｗ）で実現される機能ブロックと、ソフトウェア（Ｓ／Ｗ）で実現される機能ブロックとを区別して描いている。
クライアント２０は、一般的なパーソナルコンピュータと同様なハードウェア構成を備えており、図示しないＣＰＵ、入力部、表示部、メモリ、外部記憶部、図示するネットワークＩ／Ｆ２１などが内部バスで接続されている。
【００３０】
クライアント２０には、外部記憶部に格納され、実行時にメモリに搭載されるアプリケーション２４とＵＳＢデバイスドライバ２３とトンネリングドライバ２６がソフトウェア部品として存在している。この他、ソフトウェア部品としては、図示しないＯＳ（Operating
System）、ＯＳと同時に起動しそのまま常に起動している図示しない常駐モジュール、通信制御ドライバ（ＴＣＰ／ＩＰ）２５があり、制御に必要な各種データと共に外部記憶部に格納されている。これらソフトウェア部品及び各種データは、ＣＰＵの制御に従い、メモリ上に読み出されて各種制御が実行される。
【００３１】
なお、当該常駐モジュールは、図３に示される前記従来のＵＳＢデバイスサーバシステム上で動作するソフトウェア部品であり、以下に記載の従来のＵＳＢデバイスサーバシステムにおいて、データの監視、制御などを担うプログラムである。また、ＵＳＢデバイスサーバ１０には、ＵＳＢデバイス３０がＵＳＢケーブル５０によってローカルに接続されている。
【００３２】
ＵＳＢデバイスサーバ１０は、ＵＳＢデバイス３０が接続されると、ＵＳＢデバイス３０を認識して識別するためのＵＳＢデバイス情報を受信する。受信したＵＳＢデバイス情報に基づいて、ＵＳＢデバイス３０とのデータ送受信に必要となるＵＳＢコアドライバ１２を生成し、ＵＳＢデバイス３０を制御できる状態にする。
また、ＵＳＢデバイスサーバ１０は、受信したＵＳＢデバイス情報をクライアント２０に送信する。
【００３３】
一方、ＵＳＢデバイス３０は、ハードウェアとしてＵＳＢデバイスＩ／Ｆ３１が存在し、これをＵＳＢガジェットドライバ３２が制御する。このような構成によって、クライアント２０側のアプリケーション２４と、ＵＳＢデバイス３０側のＵＳＢデバイスアプリケーション３３の間でデータの受け渡しが可能になる。
【００３４】
クライアント２０のＵＳＢデバイスドライバ２３は、ＯＳやアプリケーション２４、前記常駐モジュールなど上位プログラムからのデータ入出力要求を、データ入出力対象のＵＳＢデバイス３０に応じたデータ形式に変換し、また、ＵＳＢデバイス３０からの応答を上位プログラムへ渡す。
【００３５】
ＵＳＢデバイスドライバ２３は、アプリケーション２４からのデータ入出力要求を、ＵＳＢデバイス３０に応じたデータ形式に変換し、ＵＳＢのデータ形式に準拠したパケットデータに変換してトンネリングドライバ２６に渡す。また、トンネリングドライバ２６から送られてくるＵＳＢのデータ形式に準拠したパケットデータを、データ形式を変換してアプリケーション２４へ渡す。
【００３６】
トンネリングドライバ２６は、ＵＳＢデバイスドライバ２３から渡されたパケットデータをＩＰパケットにカプセル化する。その一方で、ＵＳＢデバイスサーバ１０からＩＰパケットを受信すると、ＩＰパケットから応答パケットデータを取り出し（デカプセル化して）、ＵＳＢデバイスドライバ２３に受け渡す。
【００３７】
一方、ＵＳＢデバイスサーバ１０には、ネットワークＩ／Ｆ１１と通信制御ドライバ（ＴＣＰ／ＩＰ）１５とトンネリングドライバ１６とＵＳＢコアドライバ１２とＵＳＢホストコントローラ１７が搭載されている。
トンネリングドライバ１６では、クライアント２０からＩＰパケットを受信すると、このＩＰパケットからＵＳＢのデータ形式に準拠したパケットデータを取り出し（デカプセル化して）、ＵＳＢコアドライバ１２に送る。また、ＵＳＢコアドライバ１２からＵＳＢのデータ形式に準拠したパケットデータを受け取って、ＩＰパケットにカプセル化する。
【００３８】
また、ＵＳＢデバイス３０には、ＵＳＢデバイスＩ／Ｆ３１とＵＳＢガジェットドライバ３２とＵＳＢデバイスアプリケーション３３が搭載されている。ＵＳＢデバイスアプリケーション３３は、ＵＳＢガジェットドライバ３２で、ＵＳＢのデータ形式に準拠したパケットデータに変換し、ＵＳＢデバイスＩ／Ｆ３１を介して、ＵＳＢデバイスサーバ１０との間でデータの受け渡しを行う。
【００３９】
このようなＵＳＢデバイスサーバシステムの構成によって、ホストコンピュータ（クライアントＰＣ）側のアプリケーション２４と、ＵＳＢデバイス側のＵＳＢデバイスアプリケーション３３の間でデータの受け渡しが可能になる。
【００４０】
（本発明の第１の観点のＵＳＢデバイス）
図５は、本発明の第１の観点のＵＳＢデバイスの機能ブロック図を示している。
本発明の第１の観点のＵＳＢデバイス１００は、物理的なＵＳＢ接続ケーブルが不要で、またＵＳＢ規格のデータ通信を必要としない。本発明の第１の観点のＵＳＢデバイス１００では、ＵＳＢデバイス本体以外はネットワークＩ／Ｆ１１のハードウェアが実装され、他はプログラムが実装されている。
【００４１】
実装されているプログラムは、下記１）〜６）である。
１）ホストコンピュータとの間でネットワーク（ＬＡＮ）４０を介してＩＰパケットを送受信する通信制御ドライバ１５
２）ＵＳＢデバイスアプリケーションデータをＩＰパケットにカプセル化する、或いは、ＩＰパケットをＵＳＢデバイスアプリケーションデータにデカプセル化するトンネリングドライバ１６
３）ＵＳＢデバイスアプリケーションデータに含まれるＵＳＢコマンドに従ってＵＳＢホストコントローラを制御するＵＳＢコアドライバ１２
４）ＵＳＢホストコントローラおよびＵＳＢデバイスＩ／Ｆをエミュレートするバイパスモジュール１０２
５）ＵＳＢデバイスＩ／Ｆを制御するＵＳＢガジェットドライバ３２
６）ＵＳＢデバイスアプリケーションデータを入出力するＵＳＢデバイスアプリケーション３３
【００４２】
ここで、上記４）のバイパスモジュール１０２について、図１０を参照して説明する。
バイパスモジュール１０２は、仮想ＵＳＢホストコントローラ部１０２ａと仮想ＵＳＢデバイスコントローラ部１０２ｂとで構成される。また、バイパスモジュール１０２は、仮想ＵＳＢホストコントローラ部１０２ａと仮想ＵＳＢデバイスコントローラ部１０２ｂに加えて、上記３）のＵＳＢコアドライバ１２を含む構成にしてもよい。
【００４３】
仮想ＵＳＢホストコントローラ部１０２ａは、ＵＳＢホストコントローラドライバとＵＳＢルート・ハブドライバに相当する機能を備える。一方、仮想ＵＳＢデバイスコントローラ部１０２ｂは、ＵＳＢデバイスコントローラドライバに相当する機能を備える。ここで、ＵＳＢホストコントローラドライバは、ＵＳＢホストコントローラを制御するプログラムである。また、ＵＳＢデバイスコントローラドライバは、ＵＳＢデバイスＩ／Ｆを制御するプログラムである。また、ＵＳＢルート・ハブドライバはＵＳＢルート・ハブを制御するプログラムである。
【００４４】
ハードウェアにおいて、ＵＳＢルート・ハブは、ＵＳＢホストコントローラに内蔵されている。ＵＳＢデバイスは、ルート・ハブ、若しくはルート・ハブに接続されたハブのポートに接続されることになる。ルート・ハブのポート数は、ＵＳＢホストコントローラにもよるが通常１から２ポート程度であるため、多くのＵＳＢデバイスを接続する場合、ハブのポート先にさらにハブをつなぐことでポート数を増やし、ＵＳＢデバイスの接続数を増やすことができる。
【００４５】
ホストコンピュータ（クライアント）から受けたＵＳＢ要求（ＵＲＢ（ＵＳＢ  Ｒｅｑｕｅｓｔ  Ｂｌｏｃｋ）とも言う）は、ＵＳＢ規格の通信形式に則ったパケットデータ形式（以後、ＵＳＢパケットデータと呼ぶ）に分解されることなく、バイパスモジュール１０２を経由して、ＵＳＢ要求のまま、もしくは効率の良い形式で、ＵＳＢガジェットドライバ３２を経由してＵＳＢデバイスアプリケーション３３に渡される。ＵＳＢデバイスアプリケーション３３からの応答についても同様である。
【００４６】
バイパスモジュール１０２は、仮想ＵＳＢホストコントローラ部と仮想ＵＳＢデバイスコントローラ部に分かれているが、同じメモリ空間に存在するので、ＵＳＢ要求の受け渡しは、効率よく行なわれる。
しかしながら、ＵＳＢガジェットドライバ３２の仕様によっては、ＵＳＢ要求の形式のままでは対応できないＵＳＢガジェットドライバ３２も存在する場合がある。この場合には、バイパスモジュール１０２がＵＳＢ要求をＵＳＢパケットデータに変換することで、ホストコンピュータ（クライアント）から受けたＵＳＢ要求は、バイパスモジュール１０２を経由して、ＵＳＢガジェットドライバ３２、あるいは、ＵＳＢデバイスアプリケーション３３に受け渡しできる。
【００４７】
なお、ＵＳＢ要求は、ＵＳＢ規格に準拠したデバイスの制御を行うデータであり、どのデバイスの、どのエンドポイントに対して、どの転送方式で、どのバッファのデータを送信するのか、またどのバッファに受信するのかという情報を含んでいる。
【００４８】
本発明の第１の観点のＵＳＢデバイスの場合、ホストコンピュータ（クライアント）にはＵＳＢデバイスとして認識させながらも、物理的なＵＳＢインタフェースを利用しないため、ＵＳＢホストコントローラおよびＵＳＢデバイスＩ／Ｆが不要で、ハードウェアコストを抑えることができる。
【００４９】
（本発明の第２の観点のＵＳＢデバイス）
図６は、本発明の第２の観点のＵＳＢデバイスの機能ブロック図を示している。
本発明の第２の観点のＵＳＢデバイス１０１は、ＵＳＢデバイス本体以外にネットワークＩ／Ｆ１１、ＵＳＢホストコントローラ１７、ＵＳＢデバイスＩ／Ｆ３１のハードウェアが実装されている。その他はプログラムが実装されている。
ＵＳＢホストコントローラ１７とＵＳＢデバイスＩ／Ｆ３１は、同一基板に実装され、ＵＳＢホストコントローラ１７とＵＳＢデバイスＩ／Ｆ３１の間が自己結線されている。
【００５０】
実装されているプログラムとしては、下記１）〜５）である。
１）ホストコンピュータとの間でネットワーク（ＬＡＮ）４０を介してＩＰパケットを送受信する通信制御ドライバ１５
２）ＵＳＢデバイスアプリケーションデータをＩＰパケットにカプセル化する、或いは、ＩＰパケットをＵＳＢデバイスアプリケーションデータにデカプセル化するトンネリングドライバ１６
３）ＵＳＢデバイスアプリケーションデータに含まれるＵＳＢコマンドに従ってＵＳＢホストコントローラを制御するＵＳＢコアドライバ１２
４）ＵＳＢデバイスＩ／Ｆを制御するＵＳＢガジェットドライバ３２
５）ＵＳＢデバイスアプリケーションデータを入出力するＵＳＢデバイスアプリケーション３３
【００５１】
上記３）のトンネリングドライバ１６は、ＵＳＢデバイスサーバシステムにおけるデバイスサーバ１０に実装されていたトンネリングドライバに相当する。
本発明の第２の観点のＵＳＢデバイス１０１は、ＳｏＣ（Ｓｙｓｔｅｍ ｏｎ Ｃｈｉｐ）のＵＳＢホストコントローラあるいはＵＳＢデバイスＩ／Ｆにおいて余剰がある場合に、ソフトウェアによるＵＳＢデバイスサーバ機能を内蔵させて、トンネリングドライバ１６によって、ホストコンピュータ（クライアント）とネットワーク（ＬＡＮ）４０を介して接続する。こうして、デバイスサーバ機器を設けることなく、ソフトウェアのインストールによりデバイスをネットワーク経由で制御することが可能となる。
【実施例１】
【００５２】
図７は、本発明の第１の観点の具体例（実施例１）のプリンタ１００ａの機能ブロック図を示している。一方、図１１は、図１（１）で示したクライアントと直結するタイプの従来のプリンタのハードウェア構成図を示している。図１１において、プリンタ３０ａは、ＣＰＵ２０１、ＲＯＭ２０２、ＲＡＭ２０３、記憶装置２０４、ＷＮＩＣ（Wireless Network Interface Card）２０５が、内部バス２０６で接続されているハードウェア構成になっている。
実施例１では、ＵＳＢホスト側のアプリケーション２４が、ネットワーク（ＬＡＮ）４０を介して、ＵＳＢデバイスであるプリンタ１００ａにより印刷データを出力するシステムについて説明する。
【００５３】
図７に示すように、プリンタ１００ａのトンネリングドライバ１６ａが、通信制御ドライバ１５ａを介し、ホスト側から無線ＬＡＮ
Ｉ／Ｆ１１ａによりＩＰパケットを受信する。受信したＩＰパケットはカプセル化されており、トンネリングドライバ１６ａがカプセル化されたＩＰパケットからＵＳＢ規格に準拠したプリンタ１００ａの制御データ（以後、ＵＳＢ要求）を取り出す。ＵＳＢコアドライバ１２ａは、取り出されたＵＳＢ要求をそのままバイパスモジュール１０２ａに渡す。あるいは、ＵＳＢコアドライバ１２ａが、ＵＳＢ要求の圧縮・伸縮などを行う、または暗号化・複合化するなどデータ加工の機能を有している場合は、圧縮・伸縮または暗号化・複合化などの変換処理を行ってからバイパスモジュール１０２ａに渡してもよい。
【００５４】
次に、プリンタドライバ３２ａが、バイパスモジュール１０２ａから受け取ったＵＳＢ要求を、印刷アプリケーション用データに変換し、印刷アプリケーション３３ａに引き渡す。
実施例１のプリンタ１００ａによれば、ホスト側から受けたＵＳＢ要求は、ＵＳＢパケットデータに変換されることなく、バイパスモジュール１０２ａを経由して、ＵＳＢ要求そのままのデータ形式、若しくは、圧縮など加工された効率の良いデータ形式にして、プリンタドライバ３２ａと送受信されることで、より効率の良いデータの受け渡しが可能である。また、ホスト側への応答に対しても同様である。
【００５５】
また、プリンタドライバ３２ａが、ＵＳＢ要求を加工していないそのままのデータ形式では解析できない仕様である場合も考えられることから、その場合はバイパスモジュール１０２ａが、ＵＳＢ要求をＵＳＢパケットデータの形式に変換して、データの受け渡しを行うことにしてもよい。
実施例１のプリンタ１００ａによれば、ホスト側のアプリケーション２４からは、あたかも自身のホスト側コンピュータにＵＳＢケーブルで接続されたプリンタであるかの様に利用できる。
【実施例２】
【００５６】
図８は、本発明の第１の観点の具体例（実施例２）のスマートフォン１００ｂの機能ブロック図を示している。
実施例２では、ＵＳＢホスト側のアプリケーション２４が、ネットワーク（ＬＡＮ）４０を介して、スマートフォン１００ｂの内蔵メモリとデータの入出力を行うシステムについて説明する。
【００５７】
図８に示すように、スマートフォン１００ｂのトンネリングドライバ１６ｂが、通信制御ドライバ１５ｂを介し、ホスト側から無線ＬＡＮ
Ｉ／Ｆ１１ｂによりＩＰパケットを受信する。受信したＩＰパケットはカプセル化されており、トンネリングドライバ１６ｂがカプセル化されたＩＰパケットからＵＳＢ規格に準拠したＵＳＢ要求（スマートフォン１００ｂの内蔵メモリの入出力制御データ）を取り出す。ＵＳＢコアドライバ１２ｂは、取り出されたＵＳＢ要求をそのままバイパスモジュール１０２ｂに渡す。あるいは、ＵＳＢコアドライバ１２ｂが、ＵＳＢ要求の圧縮・伸縮などを行う、または暗号化・複合化するなどデータ加工の機能を有している場合は、圧縮・伸縮または暗号化・複合化などの変換処理を行ってからバイパスモジュール１０２ｂに渡してもよい。
【００５８】
次に、入出力ドライバ３２ｂが、バイパスモジュール１０２ｂから受け取ったＵＳＢ要求を、内蔵メモリ入出力用アプリケーション３３ｂの仕様に合致したデータ形式に変換し、内蔵メモリ入出力用アプリケーション３３ｂに引き渡す。
このように、ホスト側から受けたＵＳＢ要求は、バイパスモジュール１０２ｂを経由して、スマートフォン１００ｂに送信されることで、ホストとスマートフォン１００ｂの内蔵メモリとの間で、無線ＬＡＮを介してデータの送受信が行われる。
【００５９】
ここで、スマートフォン１００ｂの内蔵メモリは、ＲＡＭ及び記憶装置のハードウェアから成る。
また、ホスト側からデバイス側に対しＵＳＢ要求をした場合、そのＵＳＢ要求に対する応答は、スマートフォン１００ｂの内蔵メモリ入出力用アプリケーション３３ｂから入出力ドライバ３２ｂに引き渡され、その後入出力ドライバ３２ｂが、受け取った応答をそのままのデータ形式、若しくは、圧縮など加工された効率の良いデータ形式にして、バイパスモジュール１０２ｂに引き渡す。
次に、バイパスモジュール１０２ｂは、受け取った応答をトンネリングドライバ１６ｂに引き渡し、トンネリングドライバ１６ｂは、これをカプセル化したＩＰパケットに変換して、通信制御ドライバ１５ｂを介し、無線ＬＡＮ Ｉ／Ｆ１１ｂによりホスト側へ送信する。
【００６０】
このように、ホスト側から受けたＵＳＢ要求は、バイパスモジュール１０２ｂを経由して、スマートフォン１００ｂに送信されることで、スマートフォン１００ｂの内蔵メモリとデータの入力が行われる。
実施例２のスマートフォン１００ｂによれば、ホスト側から要求されるＵＳＢ要求は、ＵＳＢパケットデータに変換されることなく、バイパスモジュールを経由して、ＵＳＢ要求そのまま、若しくは、加工することでより効率の良いデータ形式にして、ホスト側と入出力ドライバ３２ｂと送受信されることで、より効率の良いデータの受け渡しが可能である。
【００６１】
また、スマートフォン１００ｂ側でのＵＳＢ要求が発生した場合（スマートフォン１００ｂ側のコマンド操作によるホスト側とのデータ送受信）も、実施例１と同様に効率の良いデータの受け渡しができる。
実施例２のスマートフォン１００ｂによれば、ホスト側のアプリケーション２４からは、無線ＬＡＮを介してあたかも自身のホストコンピュータにＵＳＢケーブルで接続されたスマートフォンであるかの様に利用できる。
【実施例３】
【００６２】
図９は、本発明の第２の観点の具体例（実施例３）のスキャナ機器１０１ｃの機能ブロック図を示している。
実施例３では、ＵＳＢホスト側のアプリケーション２４が、ネットワーク（ＬＡＮ）４０を介して、スキャナ機器１０１ｃからスキャンデータの入力を行うシステムについて説明する。
【００６３】
図９に示すように、スキャナ機器１０１ｃにおいて、取り込まれたスキャンデータは、スキャンデータ取り込みアプリケーション３３ｃから、規格（ＴＷＡＩＮなど）に準拠した制御を行うスキャナドライバ３２ｃへスキャンデータが渡され、さらにＵＳＢデバイスＩ／Ｆ３１ｃとＵＳＢケーブル１０４ｃを介して、接続しているＵＳＢホストコントローラ１７ｃに渡される。
【００６４】
ここで、ＵＳＢケーブルを介して接続しているとは、ＵＳＢホストコントローラ１７ｃとＵＳＢデバイスＩ／Ｆ３１ｃが同一基板に実装されることにより、ＵＳＢホストコントローラ１７ｃとＵＳＢデバイスＩ／Ｆ３１ｃの間を自己結線（例えば、プリント配線上で結線している、物理的なＵＳＢケーブルで接続されてもよい）していることをいう。
次に、スキャンデータは、ＵＳＢホストコントローラ１７ｃからＵＳＢコアドライバ１２ｃへ渡され、その後、トンネリングドライバ１６ｃが、ＵＳＢのデータ形式に準拠したＩＰパケットデータに変換し（カプセル化して）、無線ＬＡＮ Ｉ／Ｆ１１ｃにより、ネットワーク（ＬＡＮ）４０を介して、ホスト側のアプリケーション２４にスキャンデータを送信する。
【００６５】
実施例３のスキャナ機器１０１ｃによれば、ホスト側のアプリケーション２４は、ＵＳＢのデータ形式に準拠したパケットデータを、ネットワーク（ＬＡＮ）４０を介して、あたかも自身のホスト側コンピュータにＵＳＢケーブルで接続されたスキャナ機器であるかの様に利用できる。
【産業上の利用可能性】
【００６６】
本発明は、ＩＰネットワーク、特に無線ＩＰネットワークを介して制御可能なＵＳＢデバイスに有用である。
【符号の説明】
【００６７】
１０  ＵＳＢデバイスサーバ
２０  クライアント（ホストコンピュータ）
３０，１００，１０１  ＵＳＢデバイス
４０  ネットワーク（ＬＡＮ）
５０，１０４ｃ  ＵＳＢケーブル
１０２  バイパスモジュール
【図１】
2015125655.tif 000003
【図２】
2015125655.tif 000004
【図３】
2015125655.tif 000005
【図４】
2015125655.tif 000006
【図５】
2015125655.tif 000007
【図６】
2015125655.tif 000008
【図７】
2015125655.tif 000009
【図８】
2015125655.tif 000010
【図９】
2015125655.tif 000011
【図１０】
2015125655.tif 000012
【図１１】
2015125655.tif 000013