特許第6202571号(P6202571)IP Force 特許公報掲載プロジェクト 2022.1.31 β版

知財求人 - 知財ポータルサイト「IP Force」

▶ サイレックス・テクノロジー株式会社の特許一覧

<>
  • 特許6202571-IP化されたUSBデバイス 図000002
  • 特許6202571-IP化されたUSBデバイス 図000003
  • 特許6202571-IP化されたUSBデバイス 図000004
  • 特許6202571-IP化されたUSBデバイス 図000005
  • 特許6202571-IP化されたUSBデバイス 図000006
  • 特許6202571-IP化されたUSBデバイス 図000007
  • 特許6202571-IP化されたUSBデバイス 図000008
  • 特許6202571-IP化されたUSBデバイス 図000009
  • 特許6202571-IP化されたUSBデバイス 図000010
  • 特許6202571-IP化されたUSBデバイス 図000011
  • 特許6202571-IP化されたUSBデバイス 図000012
< >
(19)【発行国】日本国特許庁(JP)
(12)【公報種別】特許公報(B2)
(11)【特許番号】6202571
(24)【登録日】2017年9月8日
(45)【発行日】2017年9月27日
(54)【発明の名称】IP化されたUSBデバイス
(51)【国際特許分類】
   G06F 13/36 20060101AFI20170914BHJP
   H04L 29/06 20060101ALI20170914BHJP
   G06F 13/42 20060101ALI20170914BHJP
   G06F 13/12 20060101ALI20170914BHJP
   G06F 13/38 20060101ALI20170914BHJP
【FI】
   G06F13/36 320A
   H04L13/00 305Z
   G06F13/42 310
   G06F13/12 350
   G06F13/12 340G
   G06F13/38 350
【請求項の数】3
【全頁数】17
(21)【出願番号】特願2013-270490(P2013-270490)
(22)【出願日】2013年12月26日
(65)【公開番号】特開2015-125655(P2015-125655A)
(43)【公開日】2015年7月6日
【審査請求日】2016年9月28日
【早期審査対象出願】
(73)【特許権者】
【識別番号】500112146
【氏名又は名称】サイレックス・テクノロジー株式会社
(74)【代理人】
【識別番号】110000822
【氏名又は名称】特許業務法人グローバル知財
(72)【発明者】
【氏名】高田 和俊
(72)【発明者】
【氏名】林 栄植
【審査官】 田名網 忠雄
(56)【参考文献】
【文献】 米国特許第08006023(US,B1)
【文献】 特開2013−254284(JP,A)
【文献】 特開2012−190092(JP,A)
【文献】 特開2011−076437(JP,A)
【文献】 米国特許出願公開第2006/0206654(US,A1)
【文献】 米国特許出願公開第2007/0005867(US,A1)
(58)【調査した分野】(Int.Cl.,DB名)
G06F 3/00
G06F 3/18
G06F 13/10−13/14
G06F 13/20−13/42
G06F 19/00
G06Q 10/00−10/10
G06Q 30/00−30/08
G06Q 50/00−50/20
G06Q 50/26−99/00
H04L 12/28
H04L 12/44−12/46
H04L 13/02−13/18
H04L 29/00−29/12
(57)【特許請求の範囲】
【請求項1】
ホストコンピュータとUSB(Universal Serial Bus)接続可能なUSBデバイスにおいて、
ネットワークI/Fと、
ホストコンピュータとの間でネットワークを介してIPパケットを送受信する通信制御ドライバと、
USBデバイスを制御するUSBコマンドやUSBデバイスとの間で入出力するデータを含むUSBデバイスアプリケーションデータをIPパケットにカプセル化する、或いは、IPパケットをUSBデバイスを制御するUSBコマンドやUSBデバイスとの間で入出力するデータを含むUSBデバイスアプリケーションデータにデカプセル化するトンネリングドライバと、
USBデバイスを制御するUSBコマンドやUSBデバイスとの間で入出力するデータを含むUSBデバイスアプリケーションデータに含まれるUSBコマンドに従ってUSBホストコントローラを制御するUSBコアドライバと、
USBデバイスI/Fを制御するUSBガジェットドライバと、
USBホストコントローラを制御するプログラムに相当する機能を備える仮想USBホストコントローラ部とUSBデバイスI/Fを制御するプログラムに相当する機能を備える仮想USBデバイスコントローラ部とで構成され、前記USBコアドライバと前記USBガジェットドライバの間でUSBパケットデータ形式に変換されることのない形式のデータを授受することにより、USBホストコントローラおよびUSBデバイスI/Fをエミュレートするバイパスモジュールと、
を備えたことを特徴とするUSBデバイス。
【請求項2】
ネットワークI/Fと、
ホストコンピュータとの間でネットワークを介してIPパケットを送受信する通信制御ドライバと、
USBデバイスを制御するUSBコマンドやUSBデバイスとの間で入出力するデータを含むUSBデバイスアプリケーションデータをIPパケットにカプセル化する、或いは、IPパケットをUSBデバイスを制御するUSBコマンドやUSBデバイスとの間で入出力するデータを含むUSBデバイスアプリケーションデータにデカプセル化するトンネリングドライバと、
USBデバイスを制御するUSBコマンドやUSBデバイスとの間で入出力するデータを含むUSBデバイスアプリケーションデータに含まれるUSBコマンドに従ってUSBホストコントローラを制御するUSBコアドライバと、
USBデバイスI/Fを制御するUSBガジェットドライバと、
USBホストコントローラを制御するプログラムに相当する機能を備える仮想USBホストコントローラ部とUSBデバイスI/Fを制御するプログラムに相当する機能を備える仮想USBデバイスコントローラ部とで構成され、前記USBコアドライバと前記USBガジェットドライバの間でUSBパケットデータ形式に変換されることのない形式のデータを授受することにより、USBホストコントローラおよびUSBデバイスI/Fをエミュレートするバイパスモジュールと、
USBデバイスアプリケーションデータを入出力するUSBデバイスアプリケーションと、
を備えたことを特徴とするUSBデバイス。
【請求項3】
ホストコンピュータとUSB(Universal Serial Bus)接続可能なUSBインタフェースと、ホストコンピュータとネットワークを介して接続可能なネットワークインタフェースを両方備えるUSBデバイスにおいて、
USBデバイスを制御するUSBコマンドやUSBデバイスとの間で入出力するデータを含むUSBデバイスアプリケーションデータをIPパケットにカプセル化する、或いは、IPパケットをUSBデバイスを制御するUSBコマンドやUSBデバイスとの間で入出力するデータを含むUSBデバイスアプリケーションデータにデカプセル化するトンネリングドライバと、
USBデバイスを制御するUSBコマンドやUSBデバイスとの間で入出力するデータを含むUSBデバイスアプリケーションデータに含まれるUSBコマンドに従ってUSBホストコントローラを制御するUSBコアドライバと、
USBデバイスI/Fを制御するUSBガジェットドライバと、
USBホストコントローラを制御するプログラムに相当する機能を備える仮想USBホストコントローラ部とUSBデバイスI/Fを制御するプログラムに相当する機能を備える仮想USBデバイスコントローラ部とで構成され、前記USBコアドライバと前記USBガジェットドライバの間でUSBパケットデータ形式に変換されることのない形式のデータを授受することにより、USBホストコントローラおよびUSBデバイスI/Fをエミュレートするバイパスモジュールと、
を備えたことを特徴とするUSBデバイス。
【発明の詳細な説明】
【技術分野】
【0001】
本発明は、IP(Internet Protocol)ネットワークを介して制御されるUSBデバイスに関するものである。
【背景技術】
【0002】
近年、有線LAN(Local
Area Network)または無線LANなどのIPネットワークはますます広がり、人々の生活のインフラとなっている。ネットワークI/F(インタフェース)の低価格化も進んでいる。
また、コンピュータにローカル接続されていた周辺機器は、IPネットワークが周辺機器の制御データの送受信に十分耐えるほど高速化した現在において、コンピュータとIPネットワークを介して周辺機器の制御が可能になっている。
このような状況下、IPネットワークを通じて、コンピュータの周辺機器であるUSB(Universal Serial Bus)デバイスを当該ネットワークに接続しているコンピュータから利用することのできるUSBデバイスサーバシステムが知られている(特許文献1、非特許文献1を参照)。
【0003】
USBデバイスサーバシステムでは、ホストコンピュータのUSBデバイスドライバが発行した制御コマンド等のUSBデータがIPパケットに変換され(カプセル化)、これがホストコンピュータからUSBデバイスサーバに向けて送信される。IPパケットを受信したUSBデバイスサーバは、受信したIPパケットに含まれる制御コマンド等のUSBデータを取り出し(デカプセル化)、USB通信に変換してUSBデバイスサーバ自身にローカル接続されているUSBデバイスに転送する。
【0004】
USBデバイスサーバとUSBデバイスとの間における通信は、USB規格の通信に準じている。例えば、ホストコンピュータからUSBデバイスへの送信の場合、ホストコンピュータからUSBデバイスサーバを経由してUSBデバイスにデータを送信するとともに、随時、USBデバイスのステータスに関する応答をホストコンピュータはUSBデバイスサーバ経由で受信する。
【先行技術文献】
【特許文献】
【0005】
【特許文献1】特開2008−287453号公報
【非特許文献】
【0006】
【非特許文献1】サイレックス・テクノロジー株式会社ホームページ<http://www.silex.jp/products/usbdeviceserver/sx3000gb.html>
【発明の概要】
【発明が解決しようとする課題】
【0007】
従来、ホストコンピュータがIPネットワークを介してUSBデバイスを制御する場合、上述のUSBデバイスサーバが利用されている。
USBデバイスサーバを用いることで、LANなどネットワーク接続したUSBデバイスは、あたかもホストコンピュータにUSBケーブルでローカル接続されているかのように利用できるので、USBデバイスのドライバやUSBデバイス付属のアプリケーションソフトウェアもそのまま利用することが可能になるというメリットがある。
しかしながら、USBデバイスとは別にUSBデバイスサーバを設置し接続しなければならないといった点がデメリットとして挙げられていた。
【0008】
また近年、スマートフォン(Smart Phone)に代表されるようにパーソナルコンピュータなみの機能をもたせた携帯電話が普及し、携帯電話とホストコンピュータを直接USB接続して、携帯電話に保存されているアドレス帳や予定表、写真画像やその他の情報ファイルを転送することが行われている。スマートフォンなどの携帯電話では、携帯電話がUSBデバイスとして振る舞い、ホストコンピュータがケーブルを介して携帯電話の内蔵メモリに対してUSB経由でデータ入出力するというものである。
スマートフォンなどの携帯電話の場合、ホストコンピュータとケーブルを介してUSB接続可能なUSBインタフェースと、ホストコンピュータと無線LANを介して接続可能なネットワークインタフェースを両方備えるUSBデバイスとして位置づけることが可能である。こうした機器は、携帯電話以外にもデジタルカメラなどが存在する。
しかし、携帯電話とホストコンピュータとをUSB接続させるための端子は微小であり、また防水・防滴カバーを備えているものもあり、USBコネクタの取り外しを多数回繰り返した際の端子やカバーの耐久性に不安要素がある。もし無線LANを経由して携帯電話内部のUSBデバイスと通信できればこうした問題が解決できる。
しかしながら、現状のスマートフォンなどの携帯電話では、ホストコンピュータから無線LANを介して携帯電話に保存されている情報ファイルを入出力すること、携帯電話を制御することは困難であった。
【0009】
上記事情に鑑みて、本発明は、IPネットワークに直結され、ホストコンピュータからIPネットワーク、特に無線IPネットワークを介して制御可能なUSBデバイスを提供することを目的とする。
【課題を解決するための手段】
【0010】
上記目的を達成すべく、本発明の第1の観点のUSBデバイスは、ホストコンピュータとUSB(Universal Serial Bus)接続可能なUSBデバイスにおいて、下記1)〜)から構成される。
1)ネットワークI/F
2)ホストコンピュータとの間でネットワークを介してIPパケットを送受信する通信制御ドライバ
3)USBデバイスを制御するUSBコマンドやUSBデバイスとの間で入出力するデータを含むUSBデバイスアプリケーションデータをIPパケットにカプセル化する、或いは、IPパケットをUSBデバイスを制御するUSBコマンドやUSBデバイスとの間で入出力するデータを含むUSBデバイスアプリケーションデータにデカプセル化するトンネリングドライバ
4)USBデバイスを制御するUSBコマンドやUSBデバイスとの間で入出力するデータを含むUSBデバイスアプリケーションデータに含まれるUSBコマンドに従ってUSBホストコントローラを制御するUSBコアドライバ
5)USBデバイスI/Fを制御するUSBガジェットドライバと、
6)USBホストコントローラを制御するプログラムに相当する機能を備える仮想USBホストコントローラ部とUSBデバイスI/Fを制御するプログラムに相当する機能を備える仮想USBデバイスコントローラ部とで構成され、USBコアドライバとUSBガジェットドライバの間でUSBパケットデータ形式に変換されることのない形式のデータを授受することにより、USBホストコントローラおよびUSBデバイスI/Fをエミュレートするバイパスモジュール
【0011】
本発明の第1の観点のUSBデバイスは、IPネットワークに直結され、ホストコンピュータからIPネットワークを介して制御され、USBデバイス本体以外はネットワークI/F部のハードウェアで構成され、他はソフトウェアで構成される。第1の観点のUSBデバイスは、受け渡しデータのインタフェースを変更しないために、既存のドライバプログラムを有効活用できる。本発明の第1の観点のUSBデバイスは、ホストコンピュータとUSBでローカル接続が可能であることが前提であり、USBデバイスI/F、USBガジェットドライバ、USBデバイスアプリケーションを備えている。USBガジェットドライバは、USBデバイスI/F部を制御するプログラムであり、プラグ・アンド・プレイ機能やUSB規格で使用する種々のドライバを用意している。
本発明の第1の観点のUSBデバイスでは、ホストコンピュータとUSB接続可能なUSBデバイスにおいて、上記1)〜5)を備えている点が特徴である。
【0012】
上記1)のネットワークI/Fは、有線または無線ネットワーク、例えば無線LANのI/Fなどである。ネットワークI/Fはハードウェアで構成されるが、その他の上記2)〜5)はソフトウェアで実現される。
また、上記2)の通信制御ドライバは、ホストコンピュータとの間でIPパケットを送受信するものであり、TCP/IP(Transmission Control Protocol/Internet
Protocol)に従って処理するドライバプログラムである。
【0013】
また、上記3)のトンネリングドライバは、USBデバイスアプリケーションデータをIPパケットにカプセル化する、或いは、IPパケットをUSBデバイスアプリケーションデータにデカプセル化するプログラムである。ここで、USBデバイスアプリケーションデータとは、BULK−IN、BULK−OUTなどのUSBデバイスを制御するUSBコマンドやUSBデバイスとの間で入出力するデータを含むものである。
【0014】
また、上記4)のUSBコアドライバは、USBデバイス本体に対してデータの入出力処理するプログラムであり、USBホストコントローラを制御し、各種USBコマンドを処理するドライバプログラムである。つまり、USBコアドライバは、USBホストコントローラを制御し、USBデバイスと情報をやりとりし、接続されたデバイスを扱えるUSBドライバを検索して、USBデバイスを使用可能な状態にする。
USBコアドライバは、USBホストコントローラドライバとUSBルート・ハブドライバなどを制御するドライバであり、さらにUSBデータの圧縮・伸縮などを行う、または暗号化・複合化するその他機能などを有することも考えられる。
【0015】
また、上記5)のバイパスモジュールは、仮想USBホストコントローラ部と仮想USBデバイスコントローラ部とで構成される。また、USBコアドライバをも含む形態にしてもよい。バイパスモジュール部は、USBコアドライバとUSBガジェットドライバの間でデータを授受できるようにするものである。ここで、バイパスモジュールがUSBホストコントローラおよびUSBデバイスI/Fをエミュレートするとは、元来通信経路上USBホストコントローラおよびUSBデバイスI/Fの位置に存在するが、ハードウェアとしての実体はなく、その前後に存在するトンネリングドライバ、又はUSBコアドライバとガジェットドライバとの間で効率よくデータを受け渡す機能を果たすことを意味する。
【0016】
本発明の第1の観点のUSBデバイスは、下記1)〜7)から構成されるものであると表現することも可能である。
1)ネットワークI/Fと、
2)ホストコンピュータとの間でネットワークを介してIPパケットを送受信する通信制御ドライバと、
3)USBデバイスを制御するUSBコマンドやUSBデバイスとの間で入出力するデータを含むUSBデバイスアプリケーションデータをIPパケットにカプセル化する、或いは、IPパケットをUSBデバイスを制御するUSBコマンドやUSBデバイスとの間で入出力するデータを含むUSBデバイスアプリケーションデータにデカプセル化するトンネリングドライバと、
4)USBデバイスを制御するUSBコマンドやUSBデバイスとの間で入出力するデータを含むUSBデバイスアプリケーションデータに含まれるUSBコマンドに従ってUSBホストコントローラを制御するUSBコアドライバと、
5)USBホストコントローラを制御するプログラムに相当する機能を備える仮想USBホストコントローラ部とUSBデバイスI/Fを制御するプログラムに相当する機能を備える仮想USBデバイスコントローラ部とで構成され、USBコアドライバとUSBガジェットドライバの間でUSBパケットデータ形式に変換されることのない形式のデータを授受することにより、USBホストコントローラおよびUSBデバイスI/Fをエミュレートするバイパスモジュールと、
6)USBデバイスI/Fを制御するUSBガジェットドライバと、
7)USBデバイスアプリケーションデータを入出力するUSBデバイスアプリケーション
【0017】
本発明の第1の観点のUSBデバイスは、ホストコンピュータとUSB接続可能なUSBインタフェースと、ホストコンピュータとネットワークを介して接続可能なネットワークインタフェースを両方備えるUSBデバイスにおいて、下記a)〜c)の構成を備えるとして表現することもできる。
a)USBデバイスを制御するUSBコマンドやUSBデバイスとの間で入出力するデータを含むUSBデバイスアプリケーションデータをIPパケットにカプセル化する、或いは、IPパケットをUSBデバイスを制御するUSBコマンドやUSBデバイスとの間で入出力するデータを含むUSBデバイスアプリケーションデータにデカプセル化するトンネリングドライバ
b)USBデバイスを制御するUSBコマンドやUSBデバイスとの間で入出力するデータを含むUSBデバイスアプリケーションデータに含まれるUSBコマンドに従ってUSBホストコントローラを制御するUSBコアドライバ
c)USBデバイスI/Fを制御するUSBガジェットドライバと、
d)USBホストコントローラを制御するプログラムに相当する機能を備える仮想USBホストコントローラ部とUSBデバイスI/Fを制御するプログラムに相当する機能を備える仮想USBデバイスコントローラ部とで構成され、USBコアドライバとUSBガジェットドライバの間でUSBパケットデータ形式に変換されることのない形式のデータを授受することにより、USBホストコントローラおよびUSBデバイスI/Fをエミュレートするバイパスモジュール
【0018】
スマートフォンなどの携帯電話の場合、ホストコンピュータとUSB接続可能なUSBインタフェースと、ホストコンピュータと無線LANを介して接続可能なネットワークインタフェースを両方備えるUSBデバイスとして位置づけることが可能であり、このようなデバイスの場合、上記a)〜c)の構成を付加することにより、ホストコンピュータから無線LANを介して携帯電話に保存されている情報ファイルを入出力すること、携帯電話を制御することが可能になる。
上記a)〜c)の構成は、上述の3)〜5)と同じである。
【0019】
次に、本発明の第2の観点のUSBデバイスについて説明する。
上述の課題を達成するため、従来から知られている上述のUSBデバイスサーバの機能を内蔵した基板(以下、USBデバイスサーバ機能内蔵基板)をUSBデバイスの内部基板(以下、USBデバイス内部基板)に実装し、USBデバイスサーバ機能内蔵基板とUSBデバイス内部基板との間をコネクタで直結することにより、見かけ上、USBデバイスが直接ネットワークに接続されることになり、ホストコンピュータがIPネットワークを介して直接にUSBデバイスを制御するように見せることが可能になる。
【0020】
すなわち、本発明の第2の観点のUSBデバイスは、ホストコンピュータとUSB(Universal Serial Bus)接続可能なUSBデバイスにおいて、下記1)〜5)から構成される。
1)ネットワークI/F
2)USBホストコントローラ
3)ホストコンピュータとの間でネットワークを介してIPパケットを送受信する通信制御ドライバ
4)USBデバイスアプリケーションデータをIPパケットにカプセル化する、或いは、IPパケットをUSBデバイスアプリケーションデータにデカプセル化するトンネリングドライバ
5)USBデバイスアプリケーションデータに含まれるUSBコマンドに従ってUSBホストコントローラを制御するUSBコアドライバ
【0021】
本発明の第2の観点のUSBデバイスは、下記1)〜8)から構成されるものであると表現することも可能である。
1)ネットワークI/F
2)USBホストコントローラ
3)ホストコンピュータとの間でネットワークを介してIPパケットを送受信する通信制御ドライバ
4)USBデバイスアプリケーションデータをIPパケットにカプセル化する、或いは、IPパケットをUSBデバイスアプリケーションデータにデカプセル化するトンネリングドライバ
5)USBデバイスアプリケーションデータに含まれるUSBコマンドに従ってUSBホストコントローラを制御するUSBコアドライバ
6)USBデバイスI/F
7)USBデバイスI/Fを制御するUSBガジェットドライバ
8)USBデバイスアプリケーションデータを入出力するUSBデバイスアプリケーション
【0022】
また、本発明の第2の観点のUSBデバイスにおいて、USBホストコントローラとUSBデバイスI/Fが、同一基板に実装されていることが好ましい。
通常、上記のUSBデバイスサーバ機能内蔵基板は、CPU,RAM,ROMなどの高価な構成要素を含んだ基板である。そのため、USBデバイスサーバ機能内蔵基板を別に用意する場合はコスト面で問題がある。また、USBデバイス内部基板にも、高価なCPU,RAM,ROMなどが搭載されており、昨今の高性能なCPUでは余力が存在する。
しかしながら、USBデバイス内部基板のCPUに余力があったとしても、USBデバイスサーバ機能内蔵基板とUSBデバイス内部基板との間をコネクタで直結するといったアーキテクチャーでは、USBデバイス内部基板の余力のあるCPUを活用することはできない。
そこで、USBデバイス内部基板のCPUの余力を活用することにより、CPU,RAM,ROMなどの高価な構成要素を含んだデバイスサーバ機能内蔵基板が不要となる。
つまり、USBホストコントローラとUSBデバイスI/Fが同一基板に実装される、または、USBホストコントローラ部とUSBデバイスI/F部の機能を持ち合わせたSoc(System-on-a-chip)が基板に実装されることにより、USBホストコントローラ部とUSBデバイスI/F部の間を自己結線することで、アーキテクチャーをより安価に実現することが可能になる。
【発明の効果】
【0023】
本発明のUSBデバイスによれば、USBデバイスがIPネットワークに直結され、ホストコンピュータからIPネットワークを介してUSBデバイスを制御できるといった効果がある。
【図面の簡単な説明】
【0024】
図1】従来のUSBデバイスの接続システムの構成図
図2】コンピュータとローカル接続されたUSBデバイスの機能ブロック図
図3】USBデバイスサーバシステムの機能ブロック図(1)
図4】USBデバイスサーバシステムの機能ブロック図(2)
図5】本発明の第1の観点のUSBデバイスの機能ブロック図
図6】本発明の第2の観点のUSBデバイスの機能ブロック図
図7】実施例1のプリンタの機能ブロック図
図8】実施例2のスマートフォンの機能ブロック図
図9】実施例3のスキャナ機器の機能ブロック図
図10】バイパスモジュールの説明図
図11】従来のプリンタのハードウェア構成図
【発明を実施するための最良の形態】
【0025】
以下、本発明の実施形態について、図面を参照しながら詳細に説明していく。なお、本発明の範囲は、以下の実施例や図示例に限定されるものではなく、幾多の変更及び変形が可能である。
【0026】
(従来のUSBデバイスとUSBデバイスサーバ)
本発明のUSBデバイスを説明するに際し、ホストコンピュータにローカル接続されるUSBデバイス、並びにUSBデバイスサーバと対比して説明するのが理解しやすい。そこで、先ず、従来のUSBデバイスおよびUSBデバイスサーバについて説明する。
図1は、従来のUSBデバイスの接続システムの構成図を示している。図1(1)では、ホストコンピュータ20にUSBケーブル50でUSBデバイス30が接続されている。また、図1(2)は従来のUSBデバイスサーバのシステム概略構成図を示している。USBデバイスサーバシステムでは、USBデバイスサーバ10にUSBケーブル50でUSBデバイス30が接続され、クライアント20(ホストコンピュータと同義)はネットワーク40経由で、デバイスサーバ10に接続されるUSBデバイス30を制御する。
【0027】
図2は、図1(1)で示すホストコンピュータ20とUSBケーブル50でローカルに接続されたUSBデバイス30の機能ブロック図を示している。なお、ハードウェア(H/W)で実現される機能ブロックと、ソフトウェア(S/W)で実現される機能ブロックとを区別して描いている。
ホストコンピュータ20は、一般的なパーソナルコンピュータと同様なハードウェア構成を備えており、図示しないCPU、入力部、表示部、メモリ、外部記憶部、図示するUSBホストコントローラ27などが内部バスで接続されている。
【0028】
ホストコンピュータ20には、外部記憶部に格納され、実行時にメモリに搭載されるアプリケーション24とUSBデバイスドライバ23とUSBコアドライバ22がソフトウェア部品として存在する。この他、ソフトウェア部品としては、図示しないOS(Operating
System)、OSと同時に起動しそのまま常に起動している図示しない常駐モジュール、通信制御ドライバ(TCP/IP)があり、制御に必要な各種データと共に外部記憶部に格納されている。
一方、USBデバイス30は、ハードウェアとしてUSBデバイスI/F31が存在し、これをUSBガジェットドライバ32が制御する。このような構成によって、ホスト側のアプリケーション24と、USBデバイス側のUSBデバイスアプリケーション33の間でデータの受け渡しが可能になる。
【0029】
次に従来のUSBデバイスサーバについて説明する。
図3および図4は、従来のUSBデバイスサーバシステムの機能ブロック図である。また、図4では、ハードウェア(H/W)で実現される機能ブロックと、ソフトウェア(S/W)で実現される機能ブロックとを区別して描いている。
クライアント20は、一般的なパーソナルコンピュータと同様なハードウェア構成を備えており、図示しないCPU、入力部、表示部、メモリ、外部記憶部、図示するネットワークI/F21などが内部バスで接続されている。
【0030】
クライアント20には、外部記憶部に格納され、実行時にメモリに搭載されるアプリケーション24とUSBデバイスドライバ23とトンネリングドライバ26がソフトウェア部品として存在している。この他、ソフトウェア部品としては、図示しないOS(Operating
System)、OSと同時に起動しそのまま常に起動している図示しない常駐モジュール、通信制御ドライバ(TCP/IP)25があり、制御に必要な各種データと共に外部記憶部に格納されている。これらソフトウェア部品及び各種データは、CPUの制御に従い、メモリ上に読み出されて各種制御が実行される。
【0031】
なお、当該常駐モジュールは、図3に示される前記従来のUSBデバイスサーバシステム上で動作するソフトウェア部品であり、以下に記載の従来のUSBデバイスサーバシステムにおいて、データの監視、制御などを担うプログラムである。また、USBデバイスサーバ10には、USBデバイス30がUSBケーブル50によってローカルに接続されている。
【0032】
USBデバイスサーバ10は、USBデバイス30が接続されると、USBデバイス30を認識して識別するためのUSBデバイス情報を受信する。受信したUSBデバイス情報に基づいて、USBデバイス30とのデータ送受信に必要となるUSBコアドライバ12を生成し、USBデバイス30を制御できる状態にする。
また、USBデバイスサーバ10は、受信したUSBデバイス情報をクライアント20に送信する。
【0033】
一方、USBデバイス30は、ハードウェアとしてUSBデバイスI/F31が存在し、これをUSBガジェットドライバ32が制御する。このような構成によって、クライアント20側のアプリケーション24と、USBデバイス30側のUSBデバイスアプリケーション33の間でデータの受け渡しが可能になる。
【0034】
クライアント20のUSBデバイスドライバ23は、OSやアプリケーション24、前記常駐モジュールなど上位プログラムからのデータ入出力要求を、データ入出力対象のUSBデバイス30に応じたデータ形式に変換し、また、USBデバイス30からの応答を上位プログラムへ渡す。
【0035】
USBデバイスドライバ23は、アプリケーション24からのデータ入出力要求を、USBデバイス30に応じたデータ形式に変換し、USBのデータ形式に準拠したパケットデータに変換してトンネリングドライバ26に渡す。また、トンネリングドライバ26から送られてくるUSBのデータ形式に準拠したパケットデータを、データ形式を変換してアプリケーション24へ渡す。
【0036】
トンネリングドライバ26は、USBデバイスドライバ23から渡されたパケットデータをIPパケットにカプセル化する。その一方で、USBデバイスサーバ10からIPパケットを受信すると、IPパケットから応答パケットデータを取り出し(デカプセル化して)、USBデバイスドライバ23に受け渡す。
【0037】
一方、USBデバイスサーバ10には、ネットワークI/F11と通信制御ドライバ(TCP/IP)15とトンネリングドライバ16とUSBコアドライバ12とUSBホストコントローラ17が搭載されている。
トンネリングドライバ16では、クライアント20からIPパケットを受信すると、このIPパケットからUSBのデータ形式に準拠したパケットデータを取り出し(デカプセル化して)、USBコアドライバ12に送る。また、USBコアドライバ12からUSBのデータ形式に準拠したパケットデータを受け取って、IPパケットにカプセル化する。
【0038】
また、USBデバイス30には、USBデバイスI/F31とUSBガジェットドライバ32とUSBデバイスアプリケーション33が搭載されている。USBデバイスアプリケーション33は、USBガジェットドライバ32で、USBのデータ形式に準拠したパケットデータに変換し、USBデバイスI/F31を介して、USBデバイスサーバ10との間でデータの受け渡しを行う。
【0039】
このようなUSBデバイスサーバシステムの構成によって、ホストコンピュータ(クライアントPC)側のアプリケーション24と、USBデバイス側のUSBデバイスアプリケーション33の間でデータの受け渡しが可能になる。
【0040】
(本発明の第1の観点のUSBデバイス)
図5は、本発明の第1の観点のUSBデバイスの機能ブロック図を示している。
本発明の第1の観点のUSBデバイス100は、物理的なUSB接続ケーブルが不要で、またUSB規格のデータ通信を必要としない。本発明の第1の観点のUSBデバイス100では、USBデバイス本体以外はネットワークI/F11のハードウェアが実装され、他はプログラムが実装されている。
【0041】
実装されているプログラムは、下記1)〜6)である。
1)ホストコンピュータとの間でネットワーク(LAN)40を介してIPパケットを送受信する通信制御ドライバ15
2)USBデバイスアプリケーションデータをIPパケットにカプセル化する、或いは、IPパケットをUSBデバイスアプリケーションデータにデカプセル化するトンネリングドライバ16
3)USBデバイスアプリケーションデータに含まれるUSBコマンドに従ってUSBホストコントローラを制御するUSBコアドライバ12
4)USBホストコントローラおよびUSBデバイスI/Fをエミュレートするバイパスモジュール102
5)USBデバイスI/Fを制御するUSBガジェットドライバ32
6)USBデバイスアプリケーションデータを入出力するUSBデバイスアプリケーション33
【0042】
ここで、上記4)のバイパスモジュール102について、図10を参照して説明する。
バイパスモジュール102は、仮想USBホストコントローラ部102aと仮想USBデバイスコントローラ部102bとで構成される。また、バイパスモジュール102は、仮想USBホストコントローラ部102aと仮想USBデバイスコントローラ部102bに加えて、上記3)のUSBコアドライバ12を含む構成にしてもよい。
【0043】
仮想USBホストコントローラ部102aは、USBホストコントローラドライバとUSBルート・ハブドライバに相当する機能を備える。一方、仮想USBデバイスコントローラ部102bは、USBデバイスコントローラドライバに相当する機能を備える。ここで、USBホストコントローラドライバは、USBホストコントローラを制御するプログラムである。また、USBデバイスコントローラドライバは、USBデバイスI/Fを制御するプログラムである。また、USBルート・ハブドライバはUSBルート・ハブを制御するプログラムである。
【0044】
ハードウェアにおいて、USBルート・ハブは、USBホストコントローラに内蔵されている。USBデバイスは、ルート・ハブ、若しくはルート・ハブに接続されたハブのポートに接続されることになる。ルート・ハブのポート数は、USBホストコントローラにもよるが通常1から2ポート程度であるため、多くのUSBデバイスを接続する場合、ハブのポート先にさらにハブをつなぐことでポート数を増やし、USBデバイスの接続数を増やすことができる。
【0045】
ホストコンピュータ(クライアント)から受けたUSB要求(URB(USB Request Block)とも言う)は、USB規格の通信形式に則ったパケットデータ形式(以後、USBパケットデータと呼ぶ)に分解されることなく、バイパスモジュール102を経由して、USB要求のまま、もしくは効率の良い形式で、USBガジェットドライバ32を経由してUSBデバイスアプリケーション33に渡される。USBデバイスアプリケーション33からの応答についても同様である。
【0046】
バイパスモジュール102は、仮想USBホストコントローラ部と仮想USBデバイスコントローラ部に分かれているが、同じメモリ空間に存在するので、USB要求の受け渡しは、効率よく行なわれる。
しかしながら、USBガジェットドライバ32の仕様によっては、USB要求の形式のままでは対応できないUSBガジェットドライバ32も存在する場合がある。この場合には、バイパスモジュール102がUSB要求をUSBパケットデータに変換することで、ホストコンピュータ(クライアント)から受けたUSB要求は、バイパスモジュール102を経由して、USBガジェットドライバ32、あるいは、USBデバイスアプリケーション33に受け渡しできる。
【0047】
なお、USB要求は、USB規格に準拠したデバイスの制御を行うデータであり、どのデバイスの、どのエンドポイントに対して、どの転送方式で、どのバッファのデータを送信するのか、またどのバッファに受信するのかという情報を含んでいる。
【0048】
本発明の第1の観点のUSBデバイスの場合、ホストコンピュータ(クライアント)にはUSBデバイスとして認識させながらも、物理的なUSBインタフェースを利用しないため、USBホストコントローラおよびUSBデバイスI/Fが不要で、ハードウェアコストを抑えることができる。
【0049】
(本発明の第2の観点のUSBデバイス)
図6は、本発明の第2の観点のUSBデバイスの機能ブロック図を示している。
本発明の第2の観点のUSBデバイス101は、USBデバイス本体以外にネットワークI/F11、USBホストコントローラ17、USBデバイスI/F31のハードウェアが実装されている。その他はプログラムが実装されている。
USBホストコントローラ17とUSBデバイスI/F31は、同一基板に実装され、USBホストコントローラ17とUSBデバイスI/F31の間が自己結線されている。
【0050】
実装されているプログラムとしては、下記1)〜5)である。
1)ホストコンピュータとの間でネットワーク(LAN)40を介してIPパケットを送受信する通信制御ドライバ15
2)USBデバイスアプリケーションデータをIPパケットにカプセル化する、或いは、IPパケットをUSBデバイスアプリケーションデータにデカプセル化するトンネリングドライバ16
3)USBデバイスアプリケーションデータに含まれるUSBコマンドに従ってUSBホストコントローラを制御するUSBコアドライバ12
4)USBデバイスI/Fを制御するUSBガジェットドライバ32
5)USBデバイスアプリケーションデータを入出力するUSBデバイスアプリケーション33
【0051】
上記3)のトンネリングドライバ16は、USBデバイスサーバシステムにおけるデバイスサーバ10に実装されていたトンネリングドライバに相当する。
本発明の第2の観点のUSBデバイス101は、SoC(System on Chip)のUSBホストコントローラあるいはUSBデバイスI/Fにおいて余剰がある場合に、ソフトウェアによるUSBデバイスサーバ機能を内蔵させて、トンネリングドライバ16によって、ホストコンピュータ(クライアント)とネットワーク(LAN)40を介して接続する。こうして、デバイスサーバ機器を設けることなく、ソフトウェアのインストールによりデバイスをネットワーク経由で制御することが可能となる。
【実施例1】
【0052】
図7は、本発明の第1の観点の具体例(実施例1)のプリンタ100aの機能ブロック図を示している。一方、図11は、図1(1)で示したクライアントと直結するタイプの従来のプリンタのハードウェア構成図を示している。図11において、プリンタ30aは、CPU201、ROM202、RAM203、記憶装置204、WNIC(Wireless Network Interface Card)205が、内部バス206で接続されているハードウェア構成になっている。
実施例1では、USBホスト側のアプリケーション24が、ネットワーク(LAN)40を介して、USBデバイスであるプリンタ100aにより印刷データを出力するシステムについて説明する。
【0053】
図7に示すように、プリンタ100aのトンネリングドライバ16aが、通信制御ドライバ15aを介し、ホスト側から無線LAN
I/F11aによりIPパケットを受信する。受信したIPパケットはカプセル化されており、トンネリングドライバ16aがカプセル化されたIPパケットからUSB規格に準拠したプリンタ100aの制御データ(以後、USB要求)を取り出す。USBコアドライバ12aは、取り出されたUSB要求をそのままバイパスモジュール102aに渡す。あるいは、USBコアドライバ12aが、USB要求の圧縮・伸縮などを行う、または暗号化・複合化するなどデータ加工の機能を有している場合は、圧縮・伸縮または暗号化・複合化などの変換処理を行ってからバイパスモジュール102aに渡してもよい。
【0054】
次に、プリンタドライバ32aが、バイパスモジュール102aから受け取ったUSB要求を、印刷アプリケーション用データに変換し、印刷アプリケーション33aに引き渡す。
実施例1のプリンタ100aによれば、ホスト側から受けたUSB要求は、USBパケットデータに変換されることなく、バイパスモジュール102aを経由して、USB要求そのままのデータ形式、若しくは、圧縮など加工された効率の良いデータ形式にして、プリンタドライバ32aと送受信されることで、より効率の良いデータの受け渡しが可能である。また、ホスト側への応答に対しても同様である。
【0055】
また、プリンタドライバ32aが、USB要求を加工していないそのままのデータ形式では解析できない仕様である場合も考えられることから、その場合はバイパスモジュール102aが、USB要求をUSBパケットデータの形式に変換して、データの受け渡しを行うことにしてもよい。
実施例1のプリンタ100aによれば、ホスト側のアプリケーション24からは、あたかも自身のホスト側コンピュータにUSBケーブルで接続されたプリンタであるかの様に利用できる。
【実施例2】
【0056】
図8は、本発明の第1の観点の具体例(実施例2)のスマートフォン100bの機能ブロック図を示している。
実施例2では、USBホスト側のアプリケーション24が、ネットワーク(LAN)40を介して、スマートフォン100bの内蔵メモリとデータの入出力を行うシステムについて説明する。
【0057】
図8に示すように、スマートフォン100bのトンネリングドライバ16bが、通信制御ドライバ15bを介し、ホスト側から無線LAN
I/F11bによりIPパケットを受信する。受信したIPパケットはカプセル化されており、トンネリングドライバ16bがカプセル化されたIPパケットからUSB規格に準拠したUSB要求(スマートフォン100bの内蔵メモリの入出力制御データ)を取り出す。USBコアドライバ12bは、取り出されたUSB要求をそのままバイパスモジュール102bに渡す。あるいは、USBコアドライバ12bが、USB要求の圧縮・伸縮などを行う、または暗号化・複合化するなどデータ加工の機能を有している場合は、圧縮・伸縮または暗号化・複合化などの変換処理を行ってからバイパスモジュール102bに渡してもよい。
【0058】
次に、入出力ドライバ32bが、バイパスモジュール102bから受け取ったUSB要求を、内蔵メモリ入出力用アプリケーション33bの仕様に合致したデータ形式に変換し、内蔵メモリ入出力用アプリケーション33bに引き渡す。
このように、ホスト側から受けたUSB要求は、バイパスモジュール102bを経由して、スマートフォン100bに送信されることで、ホストとスマートフォン100bの内蔵メモリとの間で、無線LANを介してデータの送受信が行われる。
【0059】
ここで、スマートフォン100bの内蔵メモリは、RAM及び記憶装置のハードウェアから成る。
また、ホスト側からデバイス側に対しUSB要求をした場合、そのUSB要求に対する応答は、スマートフォン100bの内蔵メモリ入出力用アプリケーション33bから入出力ドライバ32bに引き渡され、その後入出力ドライバ32bが、受け取った応答をそのままのデータ形式、若しくは、圧縮など加工された効率の良いデータ形式にして、バイパスモジュール102bに引き渡す。
次に、バイパスモジュール102bは、受け取った応答をトンネリングドライバ16bに引き渡し、トンネリングドライバ16bは、これをカプセル化したIPパケットに変換して、通信制御ドライバ15bを介し、無線LAN I/F11bによりホスト側へ送信する。
【0060】
このように、ホスト側から受けたUSB要求は、バイパスモジュール102bを経由して、スマートフォン100bに送信されることで、スマートフォン100bの内蔵メモリとデータの入力が行われる。
実施例2のスマートフォン100bによれば、ホスト側から要求されるUSB要求は、USBパケットデータに変換されることなく、バイパスモジュールを経由して、USB要求そのまま、若しくは、加工することでより効率の良いデータ形式にして、ホスト側と入出力ドライバ32bと送受信されることで、より効率の良いデータの受け渡しが可能である。
【0061】
また、スマートフォン100b側でのUSB要求が発生した場合(スマートフォン100b側のコマンド操作によるホスト側とのデータ送受信)も、実施例1と同様に効率の良いデータの受け渡しができる。
実施例2のスマートフォン100bによれば、ホスト側のアプリケーション24からは、無線LANを介してあたかも自身のホストコンピュータにUSBケーブルで接続されたスマートフォンであるかの様に利用できる。
【実施例3】
【0062】
図9は、本発明の第2の観点の具体例(実施例3)のスキャナ機器101cの機能ブロック図を示している。
実施例3では、USBホスト側のアプリケーション24が、ネットワーク(LAN)40を介して、スキャナ機器101cからスキャンデータの入力を行うシステムについて説明する。
【0063】
図9に示すように、スキャナ機器101cにおいて、取り込まれたスキャンデータは、スキャンデータ取り込みアプリケーション33cから、規格(TWAINなど)に準拠した制御を行うスキャナドライバ32cへスキャンデータが渡され、さらにUSBデバイスI/F31cとUSBケーブル104cを介して、接続しているUSBホストコントローラ17cに渡される。
【0064】
ここで、USBケーブルを介して接続しているとは、USBホストコントローラ17cとUSBデバイスI/F31cが同一基板に実装されることにより、USBホストコントローラ17cとUSBデバイスI/F31cの間を自己結線(例えば、プリント配線上で結線している、物理的なUSBケーブルで接続されてもよい)していることをいう。
次に、スキャンデータは、USBホストコントローラ17cからUSBコアドライバ12cへ渡され、その後、トンネリングドライバ16cが、USBのデータ形式に準拠したIPパケットデータに変換し(カプセル化して)、無線LAN I/F11cにより、ネットワーク(LAN)40を介して、ホスト側のアプリケーション24にスキャンデータを送信する。
【0065】
実施例3のスキャナ機器101cによれば、ホスト側のアプリケーション24は、USBのデータ形式に準拠したパケットデータを、ネットワーク(LAN)40を介して、あたかも自身のホスト側コンピュータにUSBケーブルで接続されたスキャナ機器であるかの様に利用できる。
【産業上の利用可能性】
【0066】
本発明は、IPネットワーク、特に無線IPネットワークを介して制御可能なUSBデバイスに有用である。
【符号の説明】
【0067】
10 USBデバイスサーバ
20 クライアント(ホストコンピュータ)
30,100,101 USBデバイス
40 ネットワーク(LAN)
50,104c USBケーブル
102 バイパスモジュール
図1
図2
図3
図4
図5
図6
図7
図8
図9
図10
図11