JP2015125655A - Ip-converted usb device - Google Patents

Ip-converted usb device Download PDF

Info

Publication number
JP2015125655A
JP2015125655A JP2013270490A JP2013270490A JP2015125655A JP 2015125655 A JP2015125655 A JP 2015125655A JP 2013270490 A JP2013270490 A JP 2013270490A JP 2013270490 A JP2013270490 A JP 2013270490A JP 2015125655 A JP2015125655 A JP 2015125655A
Authority
JP
Japan
Prior art keywords
usb
usb device
driver
network
application data
Prior art date
Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
Granted
Application number
JP2013270490A
Other languages
Japanese (ja)
Other versions
JP6202571B2 (en
Inventor
和俊 高田
Kazutoshi Takada
和俊 高田
栄植 林
Eishoku Hayashi
栄植 林
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
Silex Technology Inc
Original Assignee
Silex Technology Inc
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by Silex Technology Inc filed Critical Silex Technology Inc
Priority to JP2013270490A priority Critical patent/JP6202571B2/en
Publication of JP2015125655A publication Critical patent/JP2015125655A/en
Application granted granted Critical
Publication of JP6202571B2 publication Critical patent/JP6202571B2/en
Active legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Abstract

PROBLEM TO BE SOLVED: To provide a USB device directly connected to an IP network so as to be controlled from a host computer via the IP network.SOLUTION: A USB device 100 USB-connectable to a host computer includes: (1) a network I/F 11; (2) a communication control driver 15 for transmitting and receiving an IP packet via a network (LAN) 40 to and from the host computer; (3) a tunneling driver 16 for encapsulating USB device application data into the IP packet, or for decapsulating the IP packet into the USB device application data; (4) a USB core driver 12 for controlling the USB host controller in accordance with a USB command included in the USB device application data; and (5) a bypass module 102 for emulating the USB host controller and the USB device I/F.

Description

本発明は、IP(Internet Protocol)ネットワークを介して制御されるUSBデバイスに関するものである。   The present invention relates to a USB device controlled via an IP (Internet Protocol) network.

近年、有線LAN(Local
Area Network)または無線LANなどのIPネットワークはますます広がり、人々の生活のインフラとなっている。ネットワークI/F(インタフェース)の低価格化も進んでいる。
また、コンピュータにローカル接続されていた周辺機器は、IPネットワークが周辺機器の制御データの送受信に十分耐えるほど高速化した現在において、コンピュータとIPネットワークを介して周辺機器の制御が可能になっている。
このような状況下、IPネットワークを通じて、コンピュータの周辺機器であるUSB(Universal Serial Bus)デバイスを当該ネットワークに接続しているコンピュータから利用することのできるUSBデバイスサーバシステムが知られている(特許文献1、非特許文献1を参照)。
In recent years, wired LAN (Local
IP networks such as (Area Network) or wireless LANs are becoming increasingly widespread and have become an infrastructure for people's lives. The price of network I / F (interface) is also decreasing.
In addition, peripheral devices that are locally connected to a computer can control peripheral devices through the computer and the IP network at the present time when the IP network is sufficiently fast enough to withstand transmission and reception of control data of the peripheral devices. .
Under such circumstances, a USB device server system is known in which a USB (Universal Serial Bus) device, which is a peripheral device of a computer, can be used from a computer connected to the network via an IP network (Patent Literature). 1, see Non-Patent Document 1).

USBデバイスサーバシステムでは、ホストコンピュータのUSBデバイスドライバが発行した制御コマンド等のUSBデータがIPパケットに変換され(カプセル化)、これがホストコンピュータからUSBデバイスサーバに向けて送信される。IPパケットを受信したUSBデバイスサーバは、受信したIPパケットに含まれる制御コマンド等のUSBデータを取り出し(デカプセル化)、USB通信に変換してUSBデバイスサーバ自身にローカル接続されているUSBデバイスに転送する。   In the USB device server system, USB data such as a control command issued by a USB device driver of a host computer is converted (encapsulated) into an IP packet, which is transmitted from the host computer to the USB device server. The USB device server that has received the IP packet extracts (decapsulates) USB data such as a control command contained in the received IP packet, converts it to USB communication, and transfers it to the USB device locally connected to the USB device server itself. To do.

USBデバイスサーバとUSBデバイスとの間における通信は、USB規格の通信に準じている。例えば、ホストコンピュータからUSBデバイスへの送信の場合、ホストコンピュータからUSBデバイスサーバを経由してUSBデバイスにデータを送信するとともに、随時、USBデバイスのステータスに関する応答をホストコンピュータはUSBデバイスサーバ経由で受信する。   Communication between the USB device server and the USB device conforms to the USB standard communication. For example, in the case of transmission from a host computer to a USB device, data is transmitted from the host computer to the USB device via the USB device server, and at any time, the host computer receives a response regarding the status of the USB device via the USB device server. To do.

特開2008−287453号公報JP 2008-287453 A

サイレックス・テクノロジー株式会社ホームページ<http://www.silex.jp/products/usbdeviceserver/sx3000gb.html>Silex Technology Co., Ltd. homepage <http://www.silex.jp/products/usbdeviceserver/sx3000gb.html>

従来、ホストコンピュータがIPネットワークを介してUSBデバイスを制御する場合、上述のUSBデバイスサーバが利用されている。
USBデバイスサーバを用いることで、LANなどネットワーク接続したUSBデバイスは、あたかもホストコンピュータにUSBケーブルでローカル接続されているかのように利用できるので、USBデバイスのドライバやUSBデバイス付属のアプリケーションソフトウェアもそのまま利用することが可能になるというメリットがある。
しかしながら、USBデバイスとは別にUSBデバイスサーバを設置し接続しなければならないといった点がデメリットとして挙げられていた。
Conventionally, when a host computer controls a USB device via an IP network, the above-described USB device server is used.
By using a USB device server, a USB device connected to a network such as a LAN can be used as if it is locally connected to the host computer with a USB cable, so the USB device driver and application software attached to the USB device can be used as they are. There is a merit that it becomes possible to do.
However, a disadvantage is that a USB device server must be installed and connected separately from the USB device.

また近年、スマートフォン(Smart Phone)に代表されるようにパーソナルコンピュータなみの機能をもたせた携帯電話が普及し、携帯電話とホストコンピュータを直接USB接続して、携帯電話に保存されているアドレス帳や予定表、写真画像やその他の情報ファイルを転送することが行われている。スマートフォンなどの携帯電話では、携帯電話がUSBデバイスとして振る舞い、ホストコンピュータがケーブルを介して携帯電話の内蔵メモリに対してUSB経由でデータ入出力するというものである。
スマートフォンなどの携帯電話の場合、ホストコンピュータとケーブルを介してUSB接続可能なUSBインタフェースと、ホストコンピュータと無線LANを介して接続可能なネットワークインタフェースを両方備えるUSBデバイスとして位置づけることが可能である。こうした機器は、携帯電話以外にもデジタルカメラなどが存在する。
しかし、携帯電話とホストコンピュータとをUSB接続させるための端子は微小であり、また防水・防滴カバーを備えているものもあり、USBコネクタの取り外しを多数回繰り返した際の端子やカバーの耐久性に不安要素がある。もし無線LANを経由して携帯電話内部のUSBデバイスと通信できればこうした問題が解決できる。
しかしながら、現状のスマートフォンなどの携帯電話では、ホストコンピュータから無線LANを介して携帯電話に保存されている情報ファイルを入出力すること、携帯電話を制御することは困難であった。
In recent years, mobile phones with functions similar to those of personal computers, such as smart phones, have become popular, and the mobile phone and host computer can be directly connected to the USB to store the address book stored in the mobile phone. Transfers of calendars, photographic images and other information files have been made. In a mobile phone such as a smartphone, the mobile phone behaves as a USB device, and the host computer inputs / outputs data to / from the built-in memory of the mobile phone via USB via a cable.
In the case of a mobile phone such as a smartphone, it can be positioned as a USB device having both a USB interface that can be USB-connected to a host computer via a cable and a network interface that can be connected to the host computer via a wireless LAN. Such devices include digital cameras in addition to mobile phones.
However, the terminals for USB connection between the mobile phone and the host computer are very small, and some have a waterproof / drip-proof cover. The terminal and cover endurance when the USB connector is removed many times There is an anxiety factor in sex. If communication with a USB device inside a mobile phone can be made via a wireless LAN, such a problem can be solved.
However, in a mobile phone such as a current smartphone, it has been difficult to input / output an information file stored in the mobile phone via a wireless LAN from a host computer and to control the mobile phone.

上記事情に鑑みて、本発明は、IPネットワークに直結され、ホストコンピュータからIPネットワーク、特に無線IPネットワークを介して制御可能なUSBデバイスを提供することを目的とする。   In view of the above circumstances, an object of the present invention is to provide a USB device that is directly connected to an IP network and can be controlled from a host computer via an IP network, particularly a wireless IP network.

上記目的を達成すべく、本発明の第1の観点のUSBデバイスは、ホストコンピュータとUSB(Universal Serial Bus)接続可能なUSBデバイスにおいて、下記1)〜5)から構成される。
1)ネットワークI/F
2)ホストコンピュータとの間でネットワークを介してIPパケットを送受信する通信制御ドライバ
3)USBデバイスアプリケーションデータをIPパケットにカプセル化する、或いは、IPパケットをUSBデバイスアプリケーションデータにデカプセル化するトンネリングドライバ
4)USBデバイスアプリケーションデータに含まれるUSBコマンドに従ってUSBホストコントローラを制御するUSBコアドライバ
5)USBホストコントローラおよびUSBデバイスI/Fをエミュレートするバイパスモジュール
In order to achieve the above object, a USB device according to a first aspect of the present invention is a USB device that can be connected to a host computer by USB (Universal Serial Bus), and includes the following 1) to 5).
1) Network I / F
2) Communication control driver that transmits and receives IP packets to and from the host computer via a network 3) Tunneling driver 4 that encapsulates USB device application data into IP packets or decapsulates IP packets into USB device application data ) USB core driver that controls the USB host controller according to the USB command included in the USB device application data 5) Bypass module that emulates the USB host controller and USB device I / F

本発明の第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)を備えている点が特徴である。
The USB device according to the first aspect of the present invention is directly connected to the IP network and controlled from the host computer via the IP network. The USB device other than the USB device itself is configured by hardware of the network I / F unit, and the other is software. Composed. The USB device according to the first aspect can effectively use the existing driver program in order not to change the interface of the delivery data. The USB device according to the first aspect of the present invention is based on the premise that local connection with a host computer is possible via USB, and includes a USB device I / F, a USB gadget driver, and a USB device application. The USB gadget driver is a program for controlling the USB device I / F unit, and various drivers used for the plug and play function and the USB standard are prepared.
The USB device according to the first aspect of the present invention is characterized in that the USB device that can be USB-connected to the host computer includes the above 1) to 5).

上記1)のネットワークI/Fは、有線または無線ネットワーク、例えば無線LANのI/Fなどである。ネットワークI/Fはハードウェアで構成されるが、その他の上記2)〜5)はソフトウェアで実現される。
また、上記2)の通信制御ドライバは、ホストコンピュータとの間でIPパケットを送受信するものであり、TCP/IP(Transmission Control Protocol/Internet
Protocol)に従って処理するドライバプログラムである。
The network I / F of 1) is a wired or wireless network, for example, a wireless LAN I / F. The network I / F is configured by hardware, but the other 2) to 5) are realized by software.
The communication control driver 2) transmits / receives IP packets to / from the host computer. The TCP / IP (Transmission Control Protocol / Internet)
Driver program for processing according to (Protocol).

また、上記3)のトンネリングドライバは、USBデバイスアプリケーションデータをIPパケットにカプセル化する、或いは、IPパケットをUSBデバイスアプリケーションデータにデカプセル化するプログラムである。ここで、USBデバイスアプリケーションデータとは、BULK−IN、BULK−OUTなどのUSBデバイスを制御するUSBコマンドやUSBデバイスとの間で入出力するデータを含むものである。   The tunneling driver 3) is a program that encapsulates USB device application data into IP packets or decapsulates IP packets into USB device application data. Here, the USB device application data includes USB commands for controlling USB devices such as BULK-IN and BULK-OUT, and data input / output to / from the USB devices.

また、上記4)のUSBコアドライバは、USBデバイス本体に対してデータの入出力処理するプログラムであり、USBホストコントローラを制御し、各種USBコマンドを処理するドライバプログラムである。つまり、USBコアドライバは、USBホストコントローラを制御し、USBデバイスと情報をやりとりし、接続されたデバイスを扱えるUSBドライバを検索して、USBデバイスを使用可能な状態にする。
USBコアドライバは、USBホストコントローラドライバとUSBルート・ハブドライバなどを制御するドライバであり、さらにUSBデータの圧縮・伸縮などを行う、または暗号化・複合化するその他機能などを有することも考えられる。
The USB core driver 4) is a program for inputting / outputting data to / from the USB device body, and is a driver program for controlling the USB host controller and processing various USB commands. That is, the USB core driver controls the USB host controller, exchanges information with the USB device, searches for a USB driver that can handle the connected device, and makes the USB device usable.
The USB core driver is a driver that controls the USB host controller driver and the USB root / hub driver, and may have other functions such as compression / expansion / encryption / encryption / encryption of USB data. .

また、上記5)のバイパスモジュールは、仮想USBホストコントローラ部と仮想USBデバイスコントローラ部とで構成される。また、USBコアドライバをも含む形態にしてもよい。バイパスモジュール部は、USBコアドライバとUSBガジェットドライバの間でデータを授受できるようにするものである。ここで、バイパスモジュールがUSBホストコントローラおよびUSBデバイスI/Fをエミュレートするとは、元来通信経路上USBホストコントローラおよびUSBデバイスI/Fの位置に存在するが、ハードウェアとしての実体はなく、その前後に存在するトンネリングドライバ、又はUSBコアドライバとガジェットドライバとの間で効率よくデータを受け渡す機能を果たすことを意味する。   The bypass module 5) includes a virtual USB host controller unit and a virtual USB device controller unit. Further, a form including a USB core driver may also be included. The bypass module unit allows data to be exchanged between the USB core driver and the USB gadget driver. Here, the bypass module emulates the USB host controller and the USB device I / F originally exists in the position of the USB host controller and the USB device I / F on the communication path, but there is no actual entity as hardware, This means that a tunneling driver existing before and after that, or a function of efficiently transferring data between the USB core driver and the gadget driver is achieved.

本発明の第1の観点のUSBデバイスは、下記1)〜7)から構成されるものであると表現することも可能である。
1)ネットワークI/Fと、
2)ホストコンピュータとの間でネットワークを介してIPパケットを送受信する通信制御ドライバと、
3)USBデバイスアプリケーションデータをIPパケットにカプセル化する、或いは、IPパケットをUSBデバイスアプリケーションデータにデカプセル化するトンネリングドライバと、
4)USBデバイスアプリケーションデータに含まれるUSBコマンドに従ってUSBホストコントローラを制御するUSBコアドライバと、
5)USBホストコントローラおよびUSBデバイスI/Fをエミュレートするバイパスモジュールと、
6)USBデバイスI/Fを制御するUSBガジェットドライバと、
7)USBデバイスアプリケーションデータを入出力するUSBデバイスアプリケーション
The USB device according to the first aspect of the present invention can also be expressed as comprising the following 1) to 7).
1) Network I / F,
2) a communication control driver that transmits and receives IP packets to and from the host computer via a network;
3) a tunneling driver that encapsulates USB device application data into IP packets, or decapsulates IP packets into USB device application data;
4) a USB core driver that controls the USB host controller in accordance with a USB command included in the USB device application data;
5) a bypass module that emulates a USB host controller and USB device I / F;
6) a USB gadget driver that controls the USB device I / F;
7) USB device application that inputs and outputs USB device application data

本発明の第1の観点のUSBデバイスは、ホストコンピュータとUSB接続可能なUSBインタフェースと、ホストコンピュータとネットワークを介して接続可能なネットワークインタフェースを両方備えるUSBデバイスにおいて、下記a)〜c)の構成を備えるとして表現することもできる。
a)USBデバイスアプリケーションデータをIPパケットにカプセル化する、或いは、IPパケットをUSBデバイスアプリケーションデータにデカプセル化するトンネリングドライバ
b)USBデバイスアプリケーションデータに含まれるUSBコマンドに従ってUSBホストコントローラを制御するUSBコアドライバ
c)USBホストコントローラおよびUSBデバイスI/Fをエミュレートするバイパスモジュール
The USB device according to the first aspect of the present invention is a USB device that includes both a USB interface that can be USB-connected to a host computer and a network interface that can be connected to the host computer via a network. It can also be expressed as comprising.
a) Tunneling driver that encapsulates USB device application data into IP packets or decapsulates IP packets into USB device application data b) USB core driver that controls the USB host controller in accordance with USB commands included in USB device application data c) Bypass module that emulates USB host controller and USB device I / F

スマートフォンなどの携帯電話の場合、ホストコンピュータとUSB接続可能なUSBインタフェースと、ホストコンピュータと無線LANを介して接続可能なネットワークインタフェースを両方備えるUSBデバイスとして位置づけることが可能であり、このようなデバイスの場合、上記a)〜c)の構成を付加することにより、ホストコンピュータから無線LANを介して携帯電話に保存されている情報ファイルを入出力すること、携帯電話を制御することが可能になる。
上記a)〜c)の構成は、上述の3)〜5)と同じである。
In the case of a mobile phone such as a smartphone, it can be positioned as a USB device having both a USB interface that can be connected to a host computer via USB and a network interface that can be connected to the host computer via a wireless LAN. In this case, by adding the configurations a) to c), it becomes possible to input / output information files stored in the mobile phone from the host computer via the wireless LAN and to control the mobile phone.
The configurations of a) to c) are the same as those of 3) to 5) described above.

次に、本発明の第2の観点のUSBデバイスについて説明する。
上述の課題を達成するため、従来から知られている上述のUSBデバイスサーバの機能を内蔵した基板(以下、USBデバイスサーバ機能内蔵基板)をUSBデバイスの内部基板(以下、USBデバイス内部基板)に実装し、USBデバイスサーバ機能内蔵基板とUSBデバイス内部基板との間をコネクタで直結することにより、見かけ上、USBデバイスが直接ネットワークに接続されることになり、ホストコンピュータがIPネットワークを介して直接にUSBデバイスを制御するように見せることが可能になる。
Next, a USB device according to the second aspect of the present invention will be described.
In order to achieve the above-mentioned problems, a board that incorporates a function of the above-mentioned USB device server that has been conventionally known (hereinafter referred to as a USB device server function-embedded board) is used as an internal board of the USB device (hereinafter referred to as a USB device internal board). By mounting and connecting the USB device server function built-in board and the USB device internal board directly with a connector, the USB device is apparently directly connected to the network, and the host computer is directly connected via the IP network. It is possible to appear to control the USB device.

すなわち、本発明の第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コアドライバ
That is, the USB device according to the second aspect of the present invention is a USB device that can be connected to a host computer via USB (Universal Serial Bus), and includes the following 1) to 5).
1) Network I / F
2) USB host controller 3) Communication control driver that transmits and receives IP packets to and from the host computer via the network 4) Encapsulates USB device application data into IP packets, or decapsulates IP packets into USB device application data 5) USB core driver that controls the USB host controller according to the USB command included in the USB device application data

本発明の第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デバイスアプリケーション
The USB device according to the second aspect of the present invention can also be expressed as comprising the following 1) to 8).
1) Network I / F
2) USB host controller 3) Communication control driver that transmits and receives IP packets to and from the host computer via the network 4) Encapsulates USB device application data into IP packets, or decapsulates IP packets into USB device application data 5) USB core driver that controls the USB host controller according to the USB command included in the USB device application data 6) USB device I / F
7) USB gadget driver that controls the USB device I / F 8) USB device application that inputs and outputs USB device application data

また、本発明の第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部の間を自己結線することで、アーキテクチャーをより安価に実現することが可能になる。
In the USB device according to the second aspect of the present invention, it is preferable that the USB host controller and the USB device I / F are mounted on the same substrate.
Usually, the above-mentioned board with a built-in USB device server function is a board including expensive components such as a CPU, RAM, and ROM. For this reason, there is a problem in terms of cost when separately preparing a board with a built-in USB device server function. Further, expensive CPUs, RAMs, ROMs, and the like are also mounted on the USB device internal board, and there is a surplus in recent high-performance CPUs.
However, even if the CPU of the USB device internal board has a surplus, in the architecture in which the USB device server function built-in board and the USB device internal board are directly connected by a connector, the CPU having the surplus power of the USB device internal board is not used. It cannot be used.
Therefore, by utilizing the remaining capacity of the CPU of the USB device internal board, a board with a built-in device server function that includes expensive components such as a CPU, RAM, and ROM becomes unnecessary.
That is, the USB host controller and the USB device I / F are mounted on the same board, or a Soc (System-on-a-chip) having the functions of the USB host controller unit and the USB device I / F unit is mounted on the board. By mounting, the architecture can be realized at a lower cost by self-connecting the USB host controller unit and the USB device I / F unit.

本発明のUSBデバイスによれば、USBデバイスがIPネットワークに直結され、ホストコンピュータからIPネットワークを介してUSBデバイスを制御できるといった効果がある。   According to the USB device of the present invention, there is an effect that the USB device is directly connected to the IP network, and the USB device can be controlled from the host computer via the IP network.

従来のUSBデバイスの接続システムの構成図Configuration diagram of a conventional USB device connection system コンピュータとローカル接続されたUSBデバイスの機能ブロック図Functional block diagram of a USB device locally connected to a computer USBデバイスサーバシステムの機能ブロック図(1)Functional block diagram of USB device server system (1) USBデバイスサーバシステムの機能ブロック図(2)Functional block diagram of USB device server system (2) 本発明の第1の観点のUSBデバイスの機能ブロック図Functional block diagram of a USB device according to the first aspect of the present invention 本発明の第2の観点のUSBデバイスの機能ブロック図Functional block diagram of a USB device according to the second aspect of the present invention 実施例1のプリンタの機能ブロック図Functional block diagram of the printer of Embodiment 1 実施例2のスマートフォンの機能ブロック図Functional block diagram of the smartphone of Example 2 実施例3のスキャナ機器の機能ブロック図Functional block diagram of scanner device of embodiment 3 バイパスモジュールの説明図Illustration of bypass module 従来のプリンタのハードウェア構成図Hardware diagram of a conventional printer

以下、本発明の実施形態について、図面を参照しながら詳細に説明していく。なお、本発明の範囲は、以下の実施例や図示例に限定されるものではなく、幾多の変更及び変形が可能である。   Hereinafter, embodiments of the present invention will be described in detail with reference to the drawings. The scope of the present invention is not limited to the following examples and illustrated examples, and many changes and modifications can be made.

(従来の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を制御する。
(Conventional USB device and USB device server)
In describing the USB device of the present invention, it is easy to understand in comparison with a USB device locally connected to a host computer and a USB device server. First, a conventional USB device and USB device server will be described.
FIG. 1 shows a configuration diagram of a conventional USB device connection system. In FIG. 1A, a USB device 30 is connected to the host computer 20 with a USB cable 50. FIG. 1 (2) shows a schematic system configuration diagram of a conventional USB device server. In the USB device server system, the USB device 30 is connected to the USB device server 10 with the USB cable 50, and the client 20 (synonymous with the host computer) controls the USB device 30 connected to the device server 10 via the network 40.

図2は、図1(1)で示すホストコンピュータ20とUSBケーブル50でローカルに接続されたUSBデバイス30の機能ブロック図を示している。なお、ハードウェア(H/W)で実現される機能ブロックと、ソフトウェア(S/W)で実現される機能ブロックとを区別して描いている。
ホストコンピュータ20は、一般的なパーソナルコンピュータと同様なハードウェア構成を備えており、図示しないCPU、入力部、表示部、メモリ、外部記憶部、図示するUSBホストコントローラ27などが内部バスで接続されている。
FIG. 2 is a functional block diagram of the USB device 30 locally connected to the host computer 20 shown in FIG. The functional blocks realized by hardware (H / W) and the functional blocks realized by software (S / W) are drawn separately.
The host computer 20 has a hardware configuration similar to that of a general personal computer, and a CPU, an input unit, a display unit, a memory, an external storage unit, a USB host controller 27 (not shown), and the like are connected via an internal bus. ing.

ホストコンピュータ20には、外部記憶部に格納され、実行時にメモリに搭載されるアプリケーション24とUSBデバイスドライバ23とUSBコアドライバ22がソフトウェア部品として存在する。この他、ソフトウェア部品としては、図示しないOS(Operating
System)、OSと同時に起動しそのまま常に起動している図示しない常駐モジュール、通信制御ドライバ(TCP/IP)があり、制御に必要な各種データと共に外部記憶部に格納されている。
一方、USBデバイス30は、ハードウェアとしてUSBデバイスI/F31が存在し、これをUSBガジェットドライバ32が制御する。このような構成によって、ホスト側のアプリケーション24と、USBデバイス側のUSBデバイスアプリケーション33の間でデータの受け渡しが可能になる。
In the host computer 20, an application 24, a USB device driver 23, and a USB core driver 22 that are stored in an external storage unit and are loaded in the memory at the time of execution exist as software components. In addition, as a software component, an OS (Operating System) (not shown) is used.
System), a resident module (not shown) and a communication control driver (TCP / IP) which are started simultaneously with the OS and are always started as they are, and are stored in an external storage unit together with various data necessary for control.
On the other hand, the USB device 30 has a USB device I / F 31 as hardware, and the USB gadget driver 32 controls this. With this configuration, data can be exchanged between the host-side application 24 and the USB device-side USB device application 33.

次に従来のUSBデバイスサーバについて説明する。
図3および図4は、従来のUSBデバイスサーバシステムの機能ブロック図である。また、図4では、ハードウェア(H/W)で実現される機能ブロックと、ソフトウェア(S/W)で実現される機能ブロックとを区別して描いている。
クライアント20は、一般的なパーソナルコンピュータと同様なハードウェア構成を備えており、図示しないCPU、入力部、表示部、メモリ、外部記憶部、図示するネットワークI/F21などが内部バスで接続されている。
Next, a conventional USB device server will be described.
3 and 4 are functional block diagrams of a conventional USB device server system. In FIG. 4, functional blocks realized by hardware (H / W) and functional blocks realized by software (S / W) are illustrated separately.
The client 20 has a hardware configuration similar to that of a general personal computer. A CPU, an input unit, a display unit, a memory, an external storage unit, a network I / F 21 shown in the figure, and the like are connected via an internal bus. Yes.

クライアント20には、外部記憶部に格納され、実行時にメモリに搭載されるアプリケーション24とUSBデバイスドライバ23とトンネリングドライバ26がソフトウェア部品として存在している。この他、ソフトウェア部品としては、図示しないOS(Operating
System)、OSと同時に起動しそのまま常に起動している図示しない常駐モジュール、通信制御ドライバ(TCP/IP)25があり、制御に必要な各種データと共に外部記憶部に格納されている。これらソフトウェア部品及び各種データは、CPUの制御に従い、メモリ上に読み出されて各種制御が実行される。
In the client 20, an application 24, a USB device driver 23, and a tunneling driver 26 that are stored in an external storage unit and are installed in the memory at the time of execution exist as software components. In addition, as a software component, an OS (Operating System) (not shown) is used.
System), a resident module (not shown) that is started simultaneously with the OS and is always started as it is, and a communication control driver (TCP / IP) 25, which are stored in an external storage unit together with various data necessary for control. These software components and various data are read out on the memory and various controls are executed under the control of the CPU.

なお、当該常駐モジュールは、図3に示される前記従来のUSBデバイスサーバシステム上で動作するソフトウェア部品であり、以下に記載の従来のUSBデバイスサーバシステムにおいて、データの監視、制御などを担うプログラムである。また、USBデバイスサーバ10には、USBデバイス30がUSBケーブル50によってローカルに接続されている。   The resident module is a software component that operates on the conventional USB device server system shown in FIG. 3, and is a program responsible for data monitoring and control in the conventional USB device server system described below. is there. A USB device 30 is locally connected to the USB device server 10 via a USB cable 50.

USBデバイスサーバ10は、USBデバイス30が接続されると、USBデバイス30を認識して識別するためのUSBデバイス情報を受信する。受信したUSBデバイス情報に基づいて、USBデバイス30とのデータ送受信に必要となるUSBコアドライバ12を生成し、USBデバイス30を制御できる状態にする。
また、USBデバイスサーバ10は、受信したUSBデバイス情報をクライアント20に送信する。
When the USB device 30 is connected, the USB device server 10 receives USB device information for recognizing and identifying the USB device 30. Based on the received USB device information, the USB core driver 12 necessary for data transmission / reception with the USB device 30 is generated, and the USB device 30 can be controlled.
In addition, the USB device server 10 transmits the received USB device information to the client 20.

一方、USBデバイス30は、ハードウェアとしてUSBデバイスI/F31が存在し、これをUSBガジェットドライバ32が制御する。このような構成によって、クライアント20側のアプリケーション24と、USBデバイス30側のUSBデバイスアプリケーション33の間でデータの受け渡しが可能になる。   On the other hand, the USB device 30 has a USB device I / F 31 as hardware, and the USB gadget driver 32 controls this. With such a configuration, data can be exchanged between the application 24 on the client 20 side and the USB device application 33 on the USB device 30 side.

クライアント20のUSBデバイスドライバ23は、OSやアプリケーション24、前記常駐モジュールなど上位プログラムからのデータ入出力要求を、データ入出力対象のUSBデバイス30に応じたデータ形式に変換し、また、USBデバイス30からの応答を上位プログラムへ渡す。   The USB device driver 23 of the client 20 converts a data input / output request from a higher-level program such as the OS, the application 24, and the resident module into a data format corresponding to the USB device 30 as a data input / output target. The response from is passed to the upper program.

USBデバイスドライバ23は、アプリケーション24からのデータ入出力要求を、USBデバイス30に応じたデータ形式に変換し、USBのデータ形式に準拠したパケットデータに変換してトンネリングドライバ26に渡す。また、トンネリングドライバ26から送られてくるUSBのデータ形式に準拠したパケットデータを、データ形式を変換してアプリケーション24へ渡す。   The USB device driver 23 converts the data input / output request from the application 24 into a data format corresponding to the USB device 30, converts it into packet data compliant with the USB data format, and passes it to the tunneling driver 26. Also, packet data conforming to the USB data format sent from the tunneling driver 26 is converted to a data format and passed to the application 24.

トンネリングドライバ26は、USBデバイスドライバ23から渡されたパケットデータをIPパケットにカプセル化する。その一方で、USBデバイスサーバ10からIPパケットを受信すると、IPパケットから応答パケットデータを取り出し(デカプセル化して)、USBデバイスドライバ23に受け渡す。   The tunneling driver 26 encapsulates the packet data passed from the USB device driver 23 into an IP packet. On the other hand, when an IP packet is received from the USB device server 10, response packet data is extracted (decapsulated) from the IP packet and transferred to the USB device driver 23.

一方、USBデバイスサーバ10には、ネットワークI/F11と通信制御ドライバ(TCP/IP)15とトンネリングドライバ16とUSBコアドライバ12とUSBホストコントローラ17が搭載されている。
トンネリングドライバ16では、クライアント20からIPパケットを受信すると、このIPパケットからUSBのデータ形式に準拠したパケットデータを取り出し(デカプセル化して)、USBコアドライバ12に送る。また、USBコアドライバ12からUSBのデータ形式に準拠したパケットデータを受け取って、IPパケットにカプセル化する。
On the other hand, the USB device server 10 includes a network I / F 11, a communication control driver (TCP / IP) 15, a tunneling driver 16, a USB core driver 12, and a USB host controller 17.
When receiving the IP packet from the client 20, the tunneling driver 16 extracts (decapsulates) packet data that conforms to the USB data format from the IP packet and sends it to the USB core driver 12. Also, packet data conforming to the USB data format is received from the USB core driver 12 and encapsulated into an IP packet.

また、USBデバイス30には、USBデバイスI/F31とUSBガジェットドライバ32とUSBデバイスアプリケーション33が搭載されている。USBデバイスアプリケーション33は、USBガジェットドライバ32で、USBのデータ形式に準拠したパケットデータに変換し、USBデバイスI/F31を介して、USBデバイスサーバ10との間でデータの受け渡しを行う。   The USB device 30 includes a USB device I / F 31, a USB gadget driver 32, and a USB device application 33. The USB device application 33 uses the USB gadget driver 32 to convert it into packet data that conforms to the USB data format, and exchanges data with the USB device server 10 via the USB device I / F 31.

このようなUSBデバイスサーバシステムの構成によって、ホストコンピュータ(クライアントPC)側のアプリケーション24と、USBデバイス側のUSBデバイスアプリケーション33の間でデータの受け渡しが可能になる。   With this configuration of the USB device server system, data can be transferred between the application 24 on the host computer (client PC) side and the USB device application 33 on the USB device side.

(本発明の第1の観点のUSBデバイス)
図5は、本発明の第1の観点のUSBデバイスの機能ブロック図を示している。
本発明の第1の観点のUSBデバイス100は、物理的なUSB接続ケーブルが不要で、またUSB規格のデータ通信を必要としない。本発明の第1の観点のUSBデバイス100では、USBデバイス本体以外はネットワークI/F11のハードウェアが実装され、他はプログラムが実装されている。
(USB device according to the first aspect of the present invention)
FIG. 5 shows a functional block diagram of the USB device according to the first aspect of the present invention.
The USB device 100 according to the first aspect of the present invention does not require a physical USB connection cable and does not require USB standard data communication. In the USB device 100 according to the first aspect of the present invention, hardware of the network I / F 11 is mounted except for the USB device main body, and a program is mounted in the other.

実装されているプログラムは、下記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
The installed programs are the following 1) to 6).
1) A communication control driver 15 for transmitting / receiving IP packets to / from a host computer via a network (LAN) 40
2) A tunneling driver 16 that encapsulates USB device application data into IP packets or decapsulates IP packets into USB device application data.
3) USB core driver 12 for controlling the USB host controller according to the USB command included in the USB device application data
4) Bypass module 102 that emulates USB host controller and USB device I / F
5) USB gadget driver 32 for controlling the USB device I / F
6) USB device application 33 for inputting / outputting USB device application data

ここで、上記4)のバイパスモジュール102について、図10を参照して説明する。
バイパスモジュール102は、仮想USBホストコントローラ部102aと仮想USBデバイスコントローラ部102bとで構成される。また、バイパスモジュール102は、仮想USBホストコントローラ部102aと仮想USBデバイスコントローラ部102bに加えて、上記3)のUSBコアドライバ12を含む構成にしてもよい。
Here, the bypass module 102 of the above 4) will be described with reference to FIG.
The bypass module 102 includes a virtual USB host controller unit 102a and a virtual USB device controller unit 102b. The bypass module 102 may include the USB core driver 12 of 3) above in addition to the virtual USB host controller unit 102a and the virtual USB device controller unit 102b.

仮想USBホストコントローラ部102aは、USBホストコントローラドライバとUSBルート・ハブドライバに相当する機能を備える。一方、仮想USBデバイスコントローラ部102bは、USBデバイスコントローラドライバに相当する機能を備える。ここで、USBホストコントローラドライバは、USBホストコントローラを制御するプログラムである。また、USBデバイスコントローラドライバは、USBデバイスI/Fを制御するプログラムである。また、USBルート・ハブドライバはUSBルート・ハブを制御するプログラムである。   The virtual USB host controller unit 102a has functions corresponding to a USB host controller driver and a USB root / hub driver. On the other hand, the virtual USB device controller unit 102b has a function corresponding to a USB device controller driver. Here, the USB host controller driver is a program for controlling the USB host controller. The USB device controller driver is a program for controlling the USB device I / F. The USB root hub driver is a program for controlling the USB root hub.

ハードウェアにおいて、USBルート・ハブは、USBホストコントローラに内蔵されている。USBデバイスは、ルート・ハブ、若しくはルート・ハブに接続されたハブのポートに接続されることになる。ルート・ハブのポート数は、USBホストコントローラにもよるが通常1から2ポート程度であるため、多くのUSBデバイスを接続する場合、ハブのポート先にさらにハブをつなぐことでポート数を増やし、USBデバイスの接続数を増やすことができる。   In hardware, the USB root hub is built in the USB host controller. The USB device is connected to a root hub or a port of a hub connected to the root hub. Depending on the USB host controller, the number of ports on the root hub is usually about 1 to 2 ports, so when connecting many USB devices, the number of ports can be increased by further connecting the hub to the hub port. The number of USB device connections can be increased.

ホストコンピュータ(クライアント)から受けたUSB要求(URB(USB Request Block)とも言う)は、USB規格の通信形式に則ったパケットデータ形式(以後、USBパケットデータと呼ぶ)に分解されることなく、バイパスモジュール102を経由して、USB要求のまま、もしくは効率の良い形式で、USBガジェットドライバ32を経由してUSBデバイスアプリケーション33に渡される。USBデバイスアプリケーション33からの応答についても同様である。   A USB request (also referred to as URB (USB Request Block)) received from a host computer (client) is bypassed without being decomposed into a packet data format conforming to a USB standard communication format (hereinafter referred to as USB packet data). It is passed to the USB device application 33 via the USB gadget driver 32 via the module 102 in the form of a USB request or in an efficient format. The same applies to the response from the USB device application 33.

バイパスモジュール102は、仮想USBホストコントローラ部と仮想USBデバイスコントローラ部に分かれているが、同じメモリ空間に存在するので、USB要求の受け渡しは、効率よく行なわれる。
しかしながら、USBガジェットドライバ32の仕様によっては、USB要求の形式のままでは対応できないUSBガジェットドライバ32も存在する場合がある。この場合には、バイパスモジュール102がUSB要求をUSBパケットデータに変換することで、ホストコンピュータ(クライアント)から受けたUSB要求は、バイパスモジュール102を経由して、USBガジェットドライバ32、あるいは、USBデバイスアプリケーション33に受け渡しできる。
The bypass module 102 is divided into a virtual USB host controller unit and a virtual USB device controller unit. However, since the bypass module 102 exists in the same memory space, the USB request is efficiently transferred.
However, depending on the specifications of the USB gadget driver 32, there may be a USB gadget driver 32 that cannot be supported by the USB request format. In this case, when the bypass module 102 converts the USB request into USB packet data, the USB request received from the host computer (client) can be sent via the bypass module 102 to the USB gadget driver 32 or the USB device. It can be passed to the application 33.

なお、USB要求は、USB規格に準拠したデバイスの制御を行うデータであり、どのデバイスの、どのエンドポイントに対して、どの転送方式で、どのバッファのデータを送信するのか、またどのバッファに受信するのかという情報を含んでいる。   Note that the USB request is data for controlling a device that conforms to the USB standard. Which device, which endpoint, to which endpoint, with which transfer method, which buffer data is transmitted, and which buffer is received. Contains information about what to do.

本発明の第1の観点のUSBデバイスの場合、ホストコンピュータ(クライアント)にはUSBデバイスとして認識させながらも、物理的なUSBインタフェースを利用しないため、USBホストコントローラおよびUSBデバイスI/Fが不要で、ハードウェアコストを抑えることができる。   In the case of the USB device according to the first aspect of the present invention, the host computer (client) is recognized as a USB device, but does not use a physical USB interface, so a USB host controller and a USB device I / F are unnecessary. Hardware costs can be reduced.

(本発明の第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の間が自己結線されている。
(USB device according to the second aspect of the present invention)
FIG. 6 shows a functional block diagram of a USB device according to the second aspect of the present invention.
In the USB device 101 according to the second aspect of the present invention, the hardware of the network I / F 11, the USB host controller 17, and the USB device I / F 31 is mounted in addition to the USB device main body. Other programs are implemented.
The USB host controller 17 and the USB device I / F 31 are mounted on the same board, and the USB host controller 17 and the USB device I / F 31 are self-connected.

実装されているプログラムとしては、下記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
The installed programs are the following 1) to 5).
1) A communication control driver 15 for transmitting / receiving IP packets to / from a host computer via a network (LAN) 40
2) A tunneling driver 16 that encapsulates USB device application data into IP packets or decapsulates IP packets into USB device application data.
3) USB core driver 12 for controlling the USB host controller according to the USB command included in the USB device application data
4) USB gadget driver 32 for controlling the USB device I / F
5) USB device application 33 for inputting / outputting USB device application data

上記3)のトンネリングドライバ16は、USBデバイスサーバシステムにおけるデバイスサーバ10に実装されていたトンネリングドライバに相当する。
本発明の第2の観点のUSBデバイス101は、SoC(System on Chip)のUSBホストコントローラあるいはUSBデバイスI/Fにおいて余剰がある場合に、ソフトウェアによるUSBデバイスサーバ機能を内蔵させて、トンネリングドライバ16によって、ホストコンピュータ(クライアント)とネットワーク(LAN)40を介して接続する。こうして、デバイスサーバ機器を設けることなく、ソフトウェアのインストールによりデバイスをネットワーク経由で制御することが可能となる。
The tunneling driver 16 in the above 3) corresponds to a tunneling driver mounted on the device server 10 in the USB device server system.
The USB device 101 according to the second aspect of the present invention has a built-in USB device server function by software when there is a surplus in a SoC (System on Chip) USB host controller or USB device I / F. To connect to the host computer (client) via the network (LAN) 40. In this way, it is possible to control the device via the network by installing the software without providing a device server device.

図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により印刷データを出力するシステムについて説明する。
FIG. 7 is a functional block diagram of the printer 100a according to a specific example (first embodiment) of the first aspect of the present invention. On the other hand, FIG. 11 shows a hardware configuration diagram of a conventional printer of the type directly connected to the client shown in FIG. In FIG. 11, the printer 30 a has a hardware configuration in which a CPU 201, a ROM 202, a RAM 203, a storage device 204, and a WNIC (Wireless Network Interface Card) 205 are connected by an internal bus 206.
In the first embodiment, a system in which an application 24 on the USB host side outputs print data from a printer 100a that is a USB device via a network (LAN) 40 will be described.

図7に示すように、プリンタ100aのトンネリングドライバ16aが、通信制御ドライバ15aを介し、ホスト側から無線LAN
I/F11aによりIPパケットを受信する。受信したIPパケットはカプセル化されており、トンネリングドライバ16aがカプセル化されたIPパケットからUSB規格に準拠したプリンタ100aの制御データ(以後、USB要求)を取り出す。USBコアドライバ12aは、取り出されたUSB要求をそのままバイパスモジュール102aに渡す。あるいは、USBコアドライバ12aが、USB要求の圧縮・伸縮などを行う、または暗号化・複合化するなどデータ加工の機能を有している場合は、圧縮・伸縮または暗号化・複合化などの変換処理を行ってからバイパスモジュール102aに渡してもよい。
As shown in FIG. 7, the tunneling driver 16a of the printer 100a receives a wireless LAN from the host side via the communication control driver 15a.
The IP packet is received by the I / F 11a. The received IP packet is encapsulated, and the tunneling driver 16a extracts control data (hereinafter, USB request) of the printer 100a compliant with the USB standard from the encapsulated IP packet. The USB core driver 12a passes the extracted USB request to the bypass module 102a as it is. Alternatively, if the USB core driver 12a has a data processing function such as compression / expansion of USB request or encryption / decryption, conversion such as compression / expansion or encryption / decryption is performed. You may pass to the bypass module 102a after processing.

次に、プリンタドライバ32aが、バイパスモジュール102aから受け取ったUSB要求を、印刷アプリケーション用データに変換し、印刷アプリケーション33aに引き渡す。
実施例1のプリンタ100aによれば、ホスト側から受けたUSB要求は、USBパケットデータに変換されることなく、バイパスモジュール102aを経由して、USB要求そのままのデータ形式、若しくは、圧縮など加工された効率の良いデータ形式にして、プリンタドライバ32aと送受信されることで、より効率の良いデータの受け渡しが可能である。また、ホスト側への応答に対しても同様である。
Next, the printer driver 32a converts the USB request received from the bypass module 102a into print application data and delivers it to the print application 33a.
According to the printer 100a of the first embodiment, a USB request received from the host side is not converted into USB packet data, but is processed through the bypass module 102a without changing the data format or compression of the USB request as it is. By transferring data to and from the printer driver 32a in an efficient data format, it is possible to exchange data more efficiently. The same applies to the response to the host side.

また、プリンタドライバ32aが、USB要求を加工していないそのままのデータ形式では解析できない仕様である場合も考えられることから、その場合はバイパスモジュール102aが、USB要求をUSBパケットデータの形式に変換して、データの受け渡しを行うことにしてもよい。
実施例1のプリンタ100aによれば、ホスト側のアプリケーション24からは、あたかも自身のホスト側コンピュータにUSBケーブルで接続されたプリンタであるかの様に利用できる。
In addition, there is a possibility that the printer driver 32a has a specification that cannot be analyzed in the data format as it is without processing the USB request. In this case, the bypass module 102a converts the USB request into the USB packet data format. Thus, data may be exchanged.
According to the printer 100a of the first embodiment, the host-side application 24 can be used as if it were a printer connected to its own host-side computer with a USB cable.

図8は、本発明の第1の観点の具体例(実施例2)のスマートフォン100bの機能ブロック図を示している。
実施例2では、USBホスト側のアプリケーション24が、ネットワーク(LAN)40を介して、スマートフォン100bの内蔵メモリとデータの入出力を行うシステムについて説明する。
FIG. 8 shows a functional block diagram of a smartphone 100b of a specific example (Example 2) of the first aspect of the present invention.
In the second embodiment, a system in which an application 24 on the USB host side inputs / outputs data to / from a built-in memory of the smartphone 100b via a network (LAN) 40 will be described.

図8に示すように、スマートフォン100bのトンネリングドライバ16bが、通信制御ドライバ15bを介し、ホスト側から無線LAN
I/F11bによりIPパケットを受信する。受信したIPパケットはカプセル化されており、トンネリングドライバ16bがカプセル化されたIPパケットからUSB規格に準拠したUSB要求(スマートフォン100bの内蔵メモリの入出力制御データ)を取り出す。USBコアドライバ12bは、取り出されたUSB要求をそのままバイパスモジュール102bに渡す。あるいは、USBコアドライバ12bが、USB要求の圧縮・伸縮などを行う、または暗号化・複合化するなどデータ加工の機能を有している場合は、圧縮・伸縮または暗号化・複合化などの変換処理を行ってからバイパスモジュール102bに渡してもよい。
As shown in FIG. 8, the tunneling driver 16b of the smartphone 100b is connected to the wireless LAN from the host side via the communication control driver 15b.
An IP packet is received by the I / F 11b. The received IP packet is encapsulated, and the tunneling driver 16b extracts a USB request (input / output control data in the built-in memory of the smartphone 100b) conforming to the USB standard from the encapsulated IP packet. The USB core driver 12b passes the extracted USB request to the bypass module 102b as it is. Alternatively, if the USB core driver 12b has a data processing function such as compression / expansion or encryption / decryption of a USB request, conversion such as compression / expansion or encryption / decryption is performed. You may pass to the bypass module 102b, after processing.

次に、入出力ドライバ32bが、バイパスモジュール102bから受け取ったUSB要求を、内蔵メモリ入出力用アプリケーション33bの仕様に合致したデータ形式に変換し、内蔵メモリ入出力用アプリケーション33bに引き渡す。
このように、ホスト側から受けたUSB要求は、バイパスモジュール102bを経由して、スマートフォン100bに送信されることで、ホストとスマートフォン100bの内蔵メモリとの間で、無線LANを介してデータの送受信が行われる。
Next, the input / output driver 32b converts the USB request received from the bypass module 102b into a data format that conforms to the specifications of the built-in memory input / output application 33b, and delivers it to the built-in memory input / output application 33b.
As described above, the USB request received from the host side is transmitted to the smartphone 100b via the bypass module 102b, whereby data is transmitted and received between the host and the built-in memory of the smartphone 100b via the wireless LAN. Is done.

ここで、スマートフォン100bの内蔵メモリは、RAM及び記憶装置のハードウェアから成る。
また、ホスト側からデバイス側に対しUSB要求をした場合、そのUSB要求に対する応答は、スマートフォン100bの内蔵メモリ入出力用アプリケーション33bから入出力ドライバ32bに引き渡され、その後入出力ドライバ32bが、受け取った応答をそのままのデータ形式、若しくは、圧縮など加工された効率の良いデータ形式にして、バイパスモジュール102bに引き渡す。
次に、バイパスモジュール102bは、受け取った応答をトンネリングドライバ16bに引き渡し、トンネリングドライバ16bは、これをカプセル化したIPパケットに変換して、通信制御ドライバ15bを介し、無線LAN I/F11bによりホスト側へ送信する。
Here, the built-in memory of the smartphone 100b includes RAM and hardware of a storage device.
When a USB request is made from the host side to the device side, a response to the USB request is transferred from the built-in memory input / output application 33b of the smartphone 100b to the input / output driver 32b, and the input / output driver 32b then receives the response. The response is transferred to the bypass module 102b in the data format as it is or in an efficient data format processed such as compression.
Next, the bypass module 102b passes the received response to the tunneling driver 16b, and the tunneling driver 16b converts the response into an encapsulated IP packet, and transmits it to the host side by the wireless LAN I / F 11b via the communication control driver 15b. Send to.

このように、ホスト側から受けたUSB要求は、バイパスモジュール102bを経由して、スマートフォン100bに送信されることで、スマートフォン100bの内蔵メモリとデータの入力が行われる。
実施例2のスマートフォン100bによれば、ホスト側から要求されるUSB要求は、USBパケットデータに変換されることなく、バイパスモジュールを経由して、USB要求そのまま、若しくは、加工することでより効率の良いデータ形式にして、ホスト側と入出力ドライバ32bと送受信されることで、より効率の良いデータの受け渡しが可能である。
As described above, the USB request received from the host side is transmitted to the smartphone 100b via the bypass module 102b, whereby the internal memory and data of the smartphone 100b are input.
According to the smartphone 100b of the second embodiment, the USB request requested from the host side is not converted into the USB packet data, and the USB request is processed as it is or processed via the bypass module. By making a good data format and transmitting and receiving data between the host and the input / output driver 32b, it is possible to exchange data more efficiently.

また、スマートフォン100b側でのUSB要求が発生した場合(スマートフォン100b側のコマンド操作によるホスト側とのデータ送受信)も、実施例1と同様に効率の良いデータの受け渡しができる。
実施例2のスマートフォン100bによれば、ホスト側のアプリケーション24からは、無線LANを介してあたかも自身のホストコンピュータにUSBケーブルで接続されたスマートフォンであるかの様に利用できる。
Also, when a USB request occurs on the smartphone 100b side (data transmission / reception with the host side by a command operation on the smartphone 100b side), efficient data exchange can be performed as in the first embodiment.
According to the smartphone 100b of the second embodiment, the host-side application 24 can be used as if it were a smartphone connected to its own host computer with a USB cable via a wireless LAN.

図9は、本発明の第2の観点の具体例(実施例3)のスキャナ機器101cの機能ブロック図を示している。
実施例3では、USBホスト側のアプリケーション24が、ネットワーク(LAN)40を介して、スキャナ機器101cからスキャンデータの入力を行うシステムについて説明する。
FIG. 9 is a functional block diagram of the scanner device 101c according to a specific example (third embodiment) of the second aspect of the present invention.
In the third embodiment, a system in which an application 24 on the USB host side inputs scan data from the scanner device 101c via a network (LAN) 40 will be described.

図9に示すように、スキャナ機器101cにおいて、取り込まれたスキャンデータは、スキャンデータ取り込みアプリケーション33cから、規格(TWAINなど)に準拠した制御を行うスキャナドライバ32cへスキャンデータが渡され、さらにUSBデバイスI/F31cとUSBケーブル104cを介して、接続しているUSBホストコントローラ17cに渡される。   As shown in FIG. 9, in the scanner device 101c, the scan data captured is transferred from the scan data capture application 33c to the scanner driver 32c that performs control in accordance with a standard (TWAIN or the like), and further the USB device. The data is transferred to the connected USB host controller 17c via the I / F 31c and the USB cable 104c.

ここで、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にスキャンデータを送信する。
Here, the term “connected via a USB cable” means that the USB host controller 17c and the USB device I / F 31c are mounted on the same board, so that the USB host controller 17c and the USB device I / F 31c are self-connected. (For example, it may be connected with a physical USB cable connected on a printed wiring).
Next, the scan data is passed from the USB host controller 17c to the USB core driver 12c, and then the tunneling driver 16c converts (encapsulates) it into IP packet data that conforms to the USB data format, and performs wireless LAN I / O. The scan data is transmitted to the host-side application 24 via the network (LAN) 40 by F11c.

実施例3のスキャナ機器101cによれば、ホスト側のアプリケーション24は、USBのデータ形式に準拠したパケットデータを、ネットワーク(LAN)40を介して、あたかも自身のホスト側コンピュータにUSBケーブルで接続されたスキャナ機器であるかの様に利用できる。   According to the scanner device 101c of the third embodiment, the host-side application 24 connects the packet data compliant with the USB data format to the host-side computer via the network (LAN) 40 with a USB cable. It can be used as if it were a scanner device.

本発明は、IPネットワーク、特に無線IPネットワークを介して制御可能なUSBデバイスに有用である。   The present invention is useful for USB devices that can be controlled via an IP network, particularly a wireless IP network.

10 USBデバイスサーバ
20 クライアント(ホストコンピュータ)
30,100,101 USBデバイス
40 ネットワーク(LAN)
50,104c USBケーブル
102 バイパスモジュール
10 USB device server 20 Client (host computer)
30, 100, 101 USB device 40 Network (LAN)
50, 104c USB cable 102 Bypass module

Claims (6)

ホストコンピュータとUSB(Universal Serial Bus)接続可能なUSBデバイスにおいて、
ネットワークI/Fと、
ホストコンピュータとの間でネットワークを介してIPパケットを送受信する通信制御ドライバと、
USBデバイスアプリケーションデータをIPパケットにカプセル化する、或いは、IPパケットをUSBデバイスアプリケーションデータにデカプセル化するトンネリングドライバと、
USBデバイスアプリケーションデータに含まれるUSBコマンドに従ってUSBホストコントローラを制御するUSBコアドライバと、
USBホストコントローラおよびUSBデバイスI/Fをエミュレートするバイパスモジュールと、
を備えたことを特徴とするUSBデバイス。
In USB devices that can be connected to a host computer via USB (Universal Serial Bus),
Network I / F,
A communication control driver that transmits and receives IP packets to and from a host computer via a network;
A tunneling driver that encapsulates USB device application data into IP packets, or decapsulates IP packets into USB device application data;
A USB core driver that controls the USB host controller in accordance with a USB command included in the USB device application data;
A bypass module that emulates a USB host controller and USB device I / F;
A USB device characterized by comprising:
ネットワークI/Fと、
ホストコンピュータとの間でネットワークを介してIPパケットを送受信する通信制御ドライバと、
USBデバイスアプリケーションデータをIPパケットにカプセル化する、或いは、IPパケットをUSBデバイスアプリケーションデータにデカプセル化するトンネリングドライバと、
USBデバイスアプリケーションデータに含まれるUSBコマンドに従ってUSBホストコントローラを制御するUSBコアドライバと、
USBホストコントローラおよびUSBデバイスI/Fをエミュレートするバイパスモジュールと、
USBデバイスI/Fを制御するUSBガジェットドライバと、
USBデバイスアプリケーションデータを入出力するUSBデバイスアプリケーションと、
を備えたことを特徴とするUSBデバイス。
Network I / F,
A communication control driver that transmits and receives IP packets to and from a host computer via a network;
A tunneling driver that encapsulates USB device application data into IP packets, or decapsulates IP packets into USB device application data;
A USB core driver that controls the USB host controller in accordance with a USB command included in the USB device application data;
A bypass module that emulates a USB host controller and USB device I / F;
A USB gadget driver that controls the USB device I / F;
A USB device application that inputs and outputs USB device application data;
A USB device characterized by comprising:
ホストコンピュータとUSB(Universal Serial Bus)接続可能なUSBインタフェースと、ホストコンピュータとネットワークを介して接続可能なネットワークインタフェースを両方備えるUSBデバイスにおいて、
USBデバイスアプリケーションデータをIPパケットにカプセル化する、或いは、IPパケットをUSBデバイスアプリケーションデータにデカプセル化するトンネリングドライバと、
USBデバイスアプリケーションデータに含まれるUSBコマンドに従ってUSBホストコントローラを制御するUSBコアドライバと、
USBホストコントローラおよびUSBデバイスI/Fをエミュレートするバイパスモジュールと、
を備えたことを特徴とするUSBデバイス。
In a USB device having both a USB interface that can be connected to a host computer via USB (Universal Serial Bus) and a network interface that can be connected to the host computer via a network,
A tunneling driver that encapsulates USB device application data into IP packets, or decapsulates IP packets into USB device application data;
A USB core driver that controls the USB host controller in accordance with a USB command included in the USB device application data;
A bypass module that emulates a USB host controller and USB device I / F;
A USB device characterized by comprising:
ホストコンピュータとUSB(Universal Serial Bus)接続可能なUSBデバイスにおいて、
ネットワークI/Fと、
USBホストコントローラと、
ホストコンピュータとの間でネットワークを介してIPパケットを送受信する通信制御ドライバと、
USBデバイスアプリケーションデータをIPパケットにカプセル化する、或いは、IPパケットをUSBデバイスアプリケーションデータにデカプセル化するトンネリングドライバと、
USBデバイスアプリケーションデータに含まれるUSBコマンドに従ってUSBホストコントローラを制御するUSBコアドライバと、
を備えたことを特徴とするUSBデバイス。
In USB devices that can be connected to a host computer via USB (Universal Serial Bus),
Network I / F,
A USB host controller;
A communication control driver that transmits and receives IP packets to and from a host computer via a network;
A tunneling driver that encapsulates USB device application data into IP packets, or decapsulates IP packets into USB device application data;
A USB core driver that controls the USB host controller in accordance with a USB command included in the USB device application data;
A USB device characterized by comprising:
ネットワークI/Fと、
USBホストコントローラと、
ホストコンピュータとの間でネットワークを介してIPパケットを送受信する通信制御ドライバと、
USBデバイスアプリケーションデータをIPパケットにカプセル化する、或いは、IPパケットをUSBデバイスアプリケーションデータにデカプセル化するトンネリングドライバと、
USBデバイスアプリケーションデータに含まれるUSBコマンドに従ってUSBホストコントローラを制御するUSBコアドライバと、
USBデバイスI/Fと、
USBデバイスI/Fを制御するUSBガジェットドライバと、
USBデバイスアプリケーションデータを入出力するUSBデバイスアプリケーションと、
を備えることを特徴とするUSBデバイス。
Network I / F,
A USB host controller;
A communication control driver that transmits and receives IP packets to and from a host computer via a network;
A tunneling driver that encapsulates USB device application data into IP packets, or decapsulates IP packets into USB device application data;
A USB core driver that controls the USB host controller in accordance with a USB command included in the USB device application data;
USB device I / F,
A USB gadget driver that controls the USB device I / F;
A USB device application that inputs and outputs USB device application data;
A USB device comprising:
前記USBホストコントローラと前記USBデバイスI/Fが、同一基板に実装されていることを特徴とする請求項5に記載のUSBデバイス。

The USB device according to claim 5, wherein the USB host controller and the USB device I / F are mounted on the same substrate.

JP2013270490A 2013-12-26 2013-12-26 USB device with IP Active JP6202571B2 (en)

Priority Applications (1)

Application Number Priority Date Filing Date Title
JP2013270490A JP6202571B2 (en) 2013-12-26 2013-12-26 USB device with IP

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
JP2013270490A JP6202571B2 (en) 2013-12-26 2013-12-26 USB device with IP

Publications (2)

Publication Number Publication Date
JP2015125655A true JP2015125655A (en) 2015-07-06
JP6202571B2 JP6202571B2 (en) 2017-09-27

Family

ID=53536308

Family Applications (1)

Application Number Title Priority Date Filing Date
JP2013270490A Active JP6202571B2 (en) 2013-12-26 2013-12-26 USB device with IP

Country Status (1)

Country Link
JP (1) JP6202571B2 (en)

Citations (6)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US20060206654A1 (en) * 2005-03-14 2006-09-14 Phison Electronics Corp. [virtual usb flash memory storage device with pci express]
US20070005867A1 (en) * 2005-06-30 2007-01-04 Nimrod Diamant Virtual peripheral device interface and protocol for use in peripheral device redirection communication
JP2011076437A (en) * 2009-09-30 2011-04-14 Canon Imaging Systems Inc System, server, client, and method for sharing device
US8006023B1 (en) * 2008-05-15 2011-08-23 Marvell International Ltd. Driver based wireless USB
JP2012190092A (en) * 2011-03-09 2012-10-04 Silex Technology Inc Device utilization system with interface switching function
JP2013254284A (en) * 2012-06-06 2013-12-19 Silex Technology Inc Method of maintaining connection between networks

Patent Citations (6)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US20060206654A1 (en) * 2005-03-14 2006-09-14 Phison Electronics Corp. [virtual usb flash memory storage device with pci express]
US20070005867A1 (en) * 2005-06-30 2007-01-04 Nimrod Diamant Virtual peripheral device interface and protocol for use in peripheral device redirection communication
US8006023B1 (en) * 2008-05-15 2011-08-23 Marvell International Ltd. Driver based wireless USB
JP2011076437A (en) * 2009-09-30 2011-04-14 Canon Imaging Systems Inc System, server, client, and method for sharing device
JP2012190092A (en) * 2011-03-09 2012-10-04 Silex Technology Inc Device utilization system with interface switching function
JP2013254284A (en) * 2012-06-06 2013-12-19 Silex Technology Inc Method of maintaining connection between networks

Also Published As

Publication number Publication date
JP6202571B2 (en) 2017-09-27

Similar Documents

Publication Publication Date Title
US7136904B2 (en) Wireless cable replacement for computer peripherals using a master adapter
US6950859B1 (en) Wireless cable replacement for computer peripherals
JP2010508712A (en) Wireless card and card holder for digital cameras
JP2007219711A (en) Remote device control program
WO2013029264A1 (en) Providing subscriber identity module function
US11392523B2 (en) Electronic device and operation method of electronic device
WO2016119623A1 (en) Method and device for realizing network sharing
JP2004187256A (en) Protocol conversion apparatus and wireless lan connection apparatus
JP5678766B2 (en) Information processing apparatus, remote operation communication apparatus, and information processing apparatus control method
JP6202571B2 (en) USB device with IP
JP2013084113A (en) Information processor, device control apparatus, device control system, and control method
US8195861B2 (en) Hub apparatus with OTG function
KR101357036B1 (en) The transmitting way of one-sided-safety between net seperation computers
US10437608B2 (en) Microminiature personal computer and method of using thereof
Juriasinghani et al. Embedded System for USB WiFi Bridge
JP6922336B2 (en) Information processing equipment, information processing methods, information processing programs and information processing systems
Grunberger et al. Analysis and test results of tunneling IP over NFCIP-1
JP5848741B2 (en) Communication method between host and wireless internet access module, and host communication module
TWI345711B (en)
JP7417455B2 (en) Electronic devices and their control methods and programs
JP3183283U (en) Network device having access path selection function
CN101553793A (en) Wireless card and card holder for digital camera
JP2016218871A (en) Communication relay system, device storage terminal, server side computer, program, and communication relay method
JP6156798B2 (en) Input / output device drive apparatus, input / output device drive method, and IP input / output device drive system
KR101790786B1 (en) Portable connection apparatus and control method thereof

Legal Events

Date Code Title Description
A621 Written request for application examination

Free format text: JAPANESE INTERMEDIATE CODE: A621

Effective date: 20160928

A871 Explanation of circumstances concerning accelerated examination

Free format text: JAPANESE INTERMEDIATE CODE: A871

Effective date: 20160928

A975 Report on accelerated examination

Free format text: JAPANESE INTERMEDIATE CODE: A971005

Effective date: 20161018

A131 Notification of reasons for refusal

Free format text: JAPANESE INTERMEDIATE CODE: A131

Effective date: 20161226

A521 Request for written amendment filed

Free format text: JAPANESE INTERMEDIATE CODE: A523

Effective date: 20170222

A131 Notification of reasons for refusal

Free format text: JAPANESE INTERMEDIATE CODE: A131

Effective date: 20170519

A521 Request for written amendment filed

Free format text: JAPANESE INTERMEDIATE CODE: A523

Effective date: 20170713

TRDD Decision of grant or rejection written
A01 Written decision to grant a patent or to grant a registration (utility model)

Free format text: JAPANESE INTERMEDIATE CODE: A01

Effective date: 20170802

A61 First payment of annual fees (during grant procedure)

Free format text: JAPANESE INTERMEDIATE CODE: A61

Effective date: 20170823

R150 Certificate of patent or registration of utility model

Ref document number: 6202571

Country of ref document: JP

Free format text: JAPANESE INTERMEDIATE CODE: R150

R250 Receipt of annual fees

Free format text: JAPANESE INTERMEDIATE CODE: R250

R250 Receipt of annual fees

Free format text: JAPANESE INTERMEDIATE CODE: R250

R250 Receipt of annual fees

Free format text: JAPANESE INTERMEDIATE CODE: R250

R250 Receipt of annual fees

Free format text: JAPANESE INTERMEDIATE CODE: R250