JP6241351B2 - Peripheral device server - Google Patents

Peripheral device server Download PDF

Info

Publication number
JP6241351B2
JP6241351B2 JP2014071404A JP2014071404A JP6241351B2 JP 6241351 B2 JP6241351 B2 JP 6241351B2 JP 2014071404 A JP2014071404 A JP 2014071404A JP 2014071404 A JP2014071404 A JP 2014071404A JP 6241351 B2 JP6241351 B2 JP 6241351B2
Authority
JP
Japan
Prior art keywords
client
usb
information
descriptor information
network
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.)
Active
Application number
JP2014071404A
Other languages
Japanese (ja)
Other versions
JP2015194826A (en
JP2015194826A5 (en
Inventor
栄植 林
栄植 林
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 JP2014071404A priority Critical patent/JP6241351B2/en
Publication of JP2015194826A publication Critical patent/JP2015194826A/en
Publication of JP2015194826A5 publication Critical patent/JP2015194826A5/ja
Application granted granted Critical
Publication of JP6241351B2 publication Critical patent/JP6241351B2/en
Active legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Landscapes

  • Information Transfer Systems (AREA)
  • Computer And Data Communications (AREA)

Description

本発明は、ネットワークを通じてクライアントPCから周辺機器サーバを経由して周辺機器を利用する周辺機器サーバシステムに関するものである。   The present invention relates to a peripheral device server system that uses a peripheral device from a client PC via a peripheral device through a network.

近年、ネットワークの普及により、PC(パーソナルコンピュータ)のネットワーク化だけでなく、PC周辺機器もネットワークに接続して利用したいというニーズが拡大していることは周知のとおりである。ところで、PCを周辺機器と接続するものとして最も普及しているUSB(Universal Serial Bus)規格は、ホストであるPCに直接接続することを前提としている。このUSB規格に則った周辺機器をネットワークを介して利用するために、周辺機器サーバシステムという技術が開示されている(非特許文献1)。   It is well known that in recent years, with the spread of networks, not only the networking of PCs (personal computers) but also the need to use PC peripheral devices connected to the network has been expanded. By the way, the USB (Universal Serial Bus) standard most widely used for connecting a PC to a peripheral device is premised on a direct connection to a PC as a host. In order to use a peripheral device conforming to the USB standard via a network, a technology called a peripheral device server system is disclosed (Non-Patent Document 1).

非特許文献1に開示の周辺機器サーバシステムによれば,ネットワーク経由でクライアントPCから周辺機器を利用することができるため,周辺機器インタフェースの規格によるケーブル長の制限(例えば、USB規格の場合は5メートル)を受けることがない。また,クライアントPC側にインストールした専用ツールを用いて、接続対象の周辺機器を選択し接続する(クライアントPCとの間の仮想的な通信経路を予め確立する)という作業は、周辺機器サーバがクライアントPCと周辺機器とをネットワーク経由で接続する運用形態となる当該システムにとって、必須のものと言える。上記の専用ツール(以後、周辺機器接続ツールと呼ぶ)は、クライアントPCとネットワークを介して、周辺機器サーバに接続されている周辺機器とを接続し、あるいは切断することで利用するか開放するかを管理するものである。また、非特許文献1に開示の周辺機器接続ツールは、ユーザが接続したい周辺機器に対し、接続可能な周辺機器1台毎に接続要求を行い、ディスクリプタ内の情報をもとに、ネットワークを介して、クライアントPCと周辺機器との接続を行う。   According to the peripheral device server system disclosed in Non-Patent Document 1, since the peripheral device can be used from the client PC via the network, the cable length is limited by the peripheral device interface standard (for example, 5 for the USB standard). M). In addition, the peripheral device server uses the dedicated tool installed on the client PC side to select and connect a peripheral device to be connected (to establish a virtual communication path with the client PC in advance). It can be said that it is indispensable for the system as an operation mode in which a PC and peripheral devices are connected via a network. Whether the dedicated tool (hereinafter referred to as a peripheral device connection tool) is used or released by connecting or disconnecting the peripheral device connected to the peripheral device server via the client PC and the network. Is to manage. In addition, the peripheral device connection tool disclosed in Non-Patent Document 1 makes a connection request to each peripheral device that can be connected to the peripheral device that the user wants to connect to, and uses the information in the descriptor via the network. Then, the client PC and the peripheral device are connected.

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

しかしながら、非特許文献1では、複数の周辺機器と接続したい場合に、その台数に応じて、周辺機器接続ツールが接続要求を行うことになり、利用者にとっては、周辺機器を利用開始できるまでの時間が長く感じられるため、ユーザビリティの低下につながり、利便性を妨げる1つの要因になっている。   However, in Non-Patent Document 1, when it is desired to connect to a plurality of peripheral devices, the peripheral device connection tool makes a connection request according to the number of devices, and the user can start using the peripheral devices. Since time is felt long, it leads to a decrease in usability and is one factor that hinders convenience.

本発明は、上述の問題を解決するためになされたものであり、クライアントPCからネットワークを経由して、周辺機器サーバに接続された複数の周辺機器をユーザが利用できるようになるまでの時間をできるだけ短くすることで、ユーザの利便性向上を図ることを目的とする。   The present invention has been made in order to solve the above-described problem, and it takes time until a user can use a plurality of peripheral devices connected to a peripheral device server from a client PC via a network. The purpose is to improve the convenience of the user by making it as short as possible.

上記課題を解決するために、本発明の一態様に係る周辺機器サーバは、少なくとも1以上のクライアントにネットワークを介して接続されるとともに、少なくとも2以上のUSBデバイスと接続された周辺機器サーバであって、USBデバイスの各デバイスを検出するデバイス検出部と、検出された各デバイスのデバイス情報を取得し、当該デバイス情報を保持するデバイス情報取得部と、ユーザによる入力またはクライアントに予め設定された情報に基づいて、クライアントが接続を希望する全てのデバイスについてクライアントから通知を受けると、デバイス情報取得部で取得したデバイス情報を1つの複合デバイスとして再構成し、当該再構成したデバイス情報を保持し、クライアントへ当該再構築したデバイス情報を送信する接続情報制御部と、クライアントとUSBデバイスとの間でネットワークを介して、所定の形式でIPパケットを送受信するUSB仮想ポートドライバとクライアントとの間でデータ入出力を制御するデバイス情報をクライアントへ通知する通信制御部とを備える周辺機器サーバである。   In order to solve the above problems, a peripheral device server according to an aspect of the present invention is a peripheral device server that is connected to at least one or more clients via a network and connected to at least two or more USB devices. A device detection unit for detecting each device of the USB device, a device information acquisition unit for acquiring device information of each detected device, and storing the device information, and information input by the user or preset in the client When the client receives notification from the client for all devices that the client desires to connect to, the device information acquired by the device information acquisition unit is reconfigured as one composite device, and the reconfigured device information is retained. Connection information that sends the rebuilt device information to the client Communication for notifying the client of device information for controlling data input / output between the client and the USB virtual port driver that transmits and receives IP packets in a predetermined format via the network between the control unit and the client and the USB device A peripheral device server including a control unit.

これによれば、周辺機器サーバが自身に接続しているデバイスのデバイス情報を取得し、それを再構成することにより、あたかもクライアントPCが接続を要求するデバイス全てを1つの複合デバイスと擬制(同様の形態)することが可能となり、クライアントPCのOSは、周辺機器サーバに接続を要求したデバイス全体を1つの複合デバイスと認識することができ、その結果、従来よりも短時間で、クライアントPCとネットワークを介して、周辺機器サーバに接続したデバイスとの間でデータ入出力転送を開始できるようになる。   According to this, by acquiring the device information of the device connected to the peripheral device server and reconfiguring it, it is as if all the devices that the client PC requests to connect are regarded as one composite device (similarly The OS of the client PC can recognize the entire device that has requested connection to the peripheral device server as a single composite device. Data input / output transfer can be started with a device connected to the peripheral device server via the network.

また、好ましくは、前記デバイス情報がUSBディスクリプタに記載の情報である周辺機器サーバである。   Preferably, it is a peripheral device server in which the device information is information described in a USB descriptor.

これによれば、周辺機器サーバは、USB規格に準拠したデバイスから取得するデバイス情報を再構成して、クライアントPCが接続を要求するデバイス全てを1つの複合デバイスに擬制することが可能となる。   According to this, the peripheral device server can reconstruct the device information acquired from the device compliant with the USB standard, and can imitate all the devices for which the client PC requests connection to one composite device.

また、本発明の一態様に係る制御方法は、少なくとも1以上のクライアントにネットワークを介して接続されるとともに、少なくとも2以上のUSBデバイスと接続された周辺機器サーバを備える周辺機器サーバシステムのデバイス制御方法であって、USBデバイスの各デバイスを検出するデバイス検出ステップと、検出された各デバイスのデバイス情報を取得し、当該デバイス情報を保持するデバイス情報取得ステップと、ユーザによる入力またはクライアントに予め設定された情報に基づいて、クライアントが接続を希望する全てのデバイスについてクライアントから通知を受けると、デバイス情報取得部で取得したデバイス情報を1つの複合デバイスとして再構成し、当該再構成したデバイス情報を保持し、クライアントへ当該再構築したデバイス情報を送信する制御ステップと、クライアントとUSBデバイスとの間でネットワークを介して、所定の形式でIPパケットを送受信するステップとクライアントとの間でデータ入出力を制御するデバイス情報をクライアントへ通知するステップとを含むデバイス制御方法である。   In addition, a control method according to an aspect of the present invention is a device control of a peripheral device server system including a peripheral device server connected to at least one or more clients via a network and connected to at least two or more USB devices. A device detection step for detecting each device of a USB device, a device information acquisition step for acquiring device information of each detected device and retaining the device information, and input by a user or preset in a client When the client receives a notification from the client for all devices that the client desires to connect to based on the information that has been configured, the device information acquired by the device information acquisition unit is reconfigured as one composite device, and the reconfigured device information is Hold the client A control step for transmitting the device information, a step for transmitting / receiving IP packets in a predetermined format via the network between the client and the USB device, and a device information for controlling data input / output between the client and the client. And a step of notifying.

これによれば、上記の周辺機器サーバと同様の効果を奏する。   According to this, there exists an effect similar to said peripheral device server.

また、本発明の一態様に係るプログラムは、少なくとも1以上のクライアントにネットワークを介して接続されるとともに、少なくとも2以上のUSBデバイスと接続された周辺機器サーバのプログラムあって、USBデバイスの各デバイスを検出するデバイス検出ステップと、検出された各デバイスのデバイス情報を取得し、当該デバイス情報を保持するデバイス情報取得ステップと、ユーザによる入力またはクライアントに予め設定された情報に基づいて、クライアントが接続を希望する全てのデバイスについてクライアントから通知を受けると、デバイス情報取得部で取得したデバイス情報を1つの複合デバイスとして再構成し、当該再構成したデバイス情報を保持し、クライアントへ当該再構築したデバイス情報を送信する制御ステップと、クライアントとUSBデバイスとの間でネットワークを介して、所定の形式でIPパケットを送受信するステップと、クライアントとの間でデータ入出力を制御するデバイス情報をクライアントへ通知するステップとを含む処理を周辺機器サーバに実行させるためのプログラムである。   A program according to an aspect of the present invention is a program of a peripheral server connected to at least one or more clients via a network and connected to at least two or more USB devices, and each device of the USB device The device detection step for detecting the device, the device information of each detected device is acquired, the device information acquisition step for retaining the device information, and the client connected based on the input by the user or information set in advance in the client Device, the device information acquired by the device information acquisition unit is reconfigured as one composite device, the reconfigured device information is retained, and the reconfigured device is sent to the client. Control step for transmitting information And transmitting and receiving IP packets in a predetermined format via the network between the client and the USB device, and notifying the client of device information for controlling data input / output with the client It is a program for causing a peripheral device server to execute processing.

これによれば、上記の周辺機器サーバと同様の効果を奏する。   According to this, there exists an effect similar to said peripheral device server.

本発明は、クライアントPCからネットワークを経由して、周辺機器サーバに接続されている複数の周辺機器が利用開始できるまでの時間をできるだけ短くすることにより、利便性の向上をはかることができる。   According to the present invention, it is possible to improve convenience by minimizing the time until a plurality of peripheral devices connected to the peripheral device server can be used via the network from the client PC.

実施の形態にかかる周辺機器サーバの接続システム図Connection system diagram of peripheral device server according to the embodiment 実施の形態にかかるクライアントPCのハードウェア構成図Hardware configuration diagram of client PC according to the embodiment 実施の形態にかかるクライアントPCの機能ブロック図Functional block diagram of client PC according to the embodiment 実施の形態にかかる周辺機器サーバのハードウェア構成図Hardware configuration diagram of peripheral device server according to the embodiment 実施の形態にかかる周辺機器サーバの機能ブロック図Functional Block Diagram of Peripheral Device Server According to Embodiment 実施の形態にかかる周辺機器サーバシステムにおけるコネクション確立とプラグアンドプレイ完了までのシーケンス図Sequence diagram until connection establishment and plug and play completion in the peripheral server system according to the embodiment 実施の形態にかかる周辺機器サーバにデバイス情報を取得した当初のディスクリプタ情報構成図Initial descriptor information configuration diagram obtained by acquiring device information in the peripheral device server according to the embodiment 実施の形態にかかる周辺機器サーバで再構成したディスクリプタ情報構成図Descriptor information block diagram reconfigured by peripheral device server according to the embodiment 従来の周辺機器サーバの接続システム図Conventional peripheral server connection system diagram 従来の周辺機器サーバの機能ブロック図Functional block diagram of a conventional peripheral server

以下、実施の形態について、図面を参照しながら具体的に説明する。   Hereinafter, embodiments will be specifically described with reference to the drawings.

なお、以下で説明する実施の形態は、いずれも本発明の好ましい一具体例を示すものである。以下の実施の形態で示される数値、構成要素、構成要素の接続形態、ステップ、ステップの順序などは、一例であり、本発明を限定する主旨ではない。   Each of the embodiments described below shows a preferred specific example of the present invention. Numerical values, components, connection modes of components, steps, order of steps, and the like shown in the following embodiments are merely examples, and are not intended to limit the present invention.

<従来の周辺機器サーバシステムの構成>
はじめに、従来の周辺機器サーバの接続システムについて、図7を用いて説明する。
<Configuration of conventional peripheral device server system>
First, a conventional peripheral device server connection system will be described with reference to FIG.

図7は、従来の周辺機器サーバの接続システムの構成図を示している。   FIG. 7 shows a configuration diagram of a conventional peripheral device server connection system.

図7で示す周辺機器サーバシステムでは、周辺機器サーバ710にUSBケーブル730でUSBデバイス720が接続され、クライアントPC700はネットワーク740経由で、周辺機器サーバ710に接続されたUSBデバイス(プリンタ)720を制御する。   In the peripheral device server system shown in FIG. 7, the USB device 720 is connected to the peripheral device server 710 with the USB cable 730, and the client PC 700 controls the USB device (printer) 720 connected to the peripheral device server 710 via the network 740. To do.

つぎに従来の周辺機器サーバシステムについて説明する。
図8は、従来の周辺機器サーバシステムにおけるクライアントPC700および周辺機器サーバ710の機能ブロック図を示したものである。
Next, a conventional peripheral device server system will be described.
FIG. 8 is a functional block diagram of the client PC 700 and the peripheral device server 710 in the conventional peripheral device server system.

クライアントPC700は、一般的なパーソナルコンピュータと同様なハードウェア構成を備えており、CPU、入力部、表示部、メモリ、記憶装置、ネットワークI/Fなど(図示しない)が内部バスで接続されている。また、クライアントPC700は、周辺機器サーバ710を介してUSBデバイス720との間でTCP接続確立(以後、コネクション確立と呼ぶ)を行い、入出力データを送受信することが可能となる。   The client PC 700 has a hardware configuration similar to that of a general personal computer, and a CPU, an input unit, a display unit, a memory, a storage device, a network I / F, and the like (not shown) are connected via an internal bus. . Further, the client PC 700 can establish a TCP connection with the USB device 720 via the peripheral device server 710 (hereinafter referred to as connection establishment), and can send and receive input / output data.

クライアントPC700には、アプリケーション800と接続ユーティリティ810とデバイスドライバ820とUSBクラスドライバ830と仮想USBポートドライバ840と通信制御部1050がソフトウェア部品として存在している。この他のソフトウェア部品としては、図示しないOS(Operating System)などがあり、制御に必要な各種データと共に記憶装置に格納されている。これらソフトウェア部品及び各種データは、CPUの制御に従い、メモリ上に読み出されて各種制御が実行される。   In the client PC 700, an application 800, a connection utility 810, a device driver 820, a USB class driver 830, a virtual USB port driver 840, and a communication control unit 1050 exist as software components. Other software components include an OS (Operating System) (not shown), which is stored in a storage device 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.

接続ユーティリティ810は、データの監視、制御などを担う。つまり、仮想USBポートドライバ840を介して、ネットワーク740経由で周辺機器サーバ710と送受信を行うことにより、周辺機器サーバ710に接続されたUSBデバイス720を認識する。   The connection utility 810 is responsible for data monitoring and control. That is, the USB device 720 connected to the peripheral device server 710 is recognized by performing transmission / reception with the peripheral device server 710 via the network 740 via the virtual USB port driver 840.

接続ユーティリティ810は、さらにUSBデバイス720のデバイス情報を受信し、受信したデバイス情報をもとに、USBデバイス720とのデータ入出力に必要なドライバソフトウェア部品を特定する。   The connection utility 810 further receives device information of the USB device 720 and specifies driver software components necessary for data input / output with the USB device 720 based on the received device information.

デバイスドライバ820は、OSやアプリケーション800など上位層のソフトウェアの指示により、USBデバイス720に対する制御コマンドを生成する一方、この制御コマンドに対するUSBデバイスからの応答を待ち、周辺機器サーバ710から当該応答を上位層のソフトウェアへ通知する。   The device driver 820 generates a control command for the USB device 720 in response to an instruction from the upper layer software such as the OS or the application 800, and waits for a response from the USB device to the control command, and sends the response from the peripheral device server 710 to the upper level. Notify layer software.

USBクラスドライバ830は、それぞれのUSBデバイスが備えている機能(HID、プリンタ、ストレージなど)に応じたドライバであり、周辺機器サーバ710に接続されたUSBデバイスに対応するクラスドライバがロードされる。   The USB class driver 830 is a driver corresponding to a function (HID, printer, storage, etc.) included in each USB device, and a class driver corresponding to the USB device connected to the peripheral device server 710 is loaded.

仮想USBポートドライバ840は、アプリケーションプログラム800、デバイスドライバ820、USBクラスドライバ830を経由するデータあるいはコマンドのやりとりについて、ネットワーク740を介して周辺機器サーバ710の仮想USBポートドライバ870との間で入出力制御を行う。また、ネットワーク740を介してUSBデバイス720との間で送受信されるIPパケットをカプセル化・デカプセル化することで、USBデバイス720がクライアントPC700に直結しているかのように動作することを提供する。   The virtual USB port driver 840 inputs / outputs data or commands exchanged via the application program 800, device driver 820, and USB class driver 830 with the virtual USB port driver 870 of the peripheral device server 710 via the network 740. Take control. In addition, by encapsulating / decapsulating IP packets transmitted / received to / from the USB device 720 via the network 740, the USB device 720 operates as if it is directly connected to the client PC 700.

通信制御部850は、仮想USBポートドライバ840から要求されるデータ入出力について、ネットワーク740を介して周辺機器サーバ710と送受信するソフトウェアである。仮想USBポートドライバ840からデータ入出力を要求された場合、USBデバイス720に対してTCP接続し、通信を開始する。また、通信を完了するとTCP接続を切断する。   The communication control unit 850 is software that transmits and receives data input / output requested from the virtual USB port driver 840 to and from the peripheral device server 710 via the network 740. When a data input / output is requested from the virtual USB port driver 840, TCP connection is made to the USB device 720 and communication is started. When the communication is completed, the TCP connection is disconnected.

つぎに、従来の周辺機器サーバ710について説明する。   Next, a conventional peripheral device server 710 will be described.

周辺機器サーバ710のハードウェア構成は、CPU、メモリ、記憶装置、ネットワークI/F、USB規格に準拠したI/Fなど(図示しない)が内部バスで接続されている。   As for the hardware configuration of the peripheral device server 710, a CPU, a memory, a storage device, a network I / F, an I / F conforming to the USB standard, and the like (not shown) are connected via an internal bus.

周辺機器サーバ710は、通信制御部860、仮想USBポートドライバ870、デバイス情報取得部880、デバイス検出部890を備えている。これら各機能は、CPUの制御に従い、メモリ上に読み出されて各種制御を実行する。   The peripheral device server 710 includes a communication control unit 860, a virtual USB port driver 870, a device information acquisition unit 880, and a device detection unit 890. Each of these functions is read onto the memory and executes various controls according to the control of the CPU.

デバイス検出部890は、周辺機器サーバ710に接続されたデバイスを検出する機能部である。   The device detection unit 890 is a functional unit that detects a device connected to the peripheral device server 710.

デバイス情報取得部880は、USBデバイス720からUSB規格に準拠したI/F(図示しない)を介して、後述するデバイス識別情報、デバイス構成情報及び機能識別情報を取得し、メモリに保持する機能部である。   The device information acquisition unit 880 acquires device identification information, device configuration information, and function identification information, which will be described later, from the USB device 720 via an I / F (not shown) compliant with the USB standard, and stores the device identification information in the memory. It is.

仮想USBポートドライバ870は、ネットワーク740を介して、クライアントPC700の仮想USBポートドライバ840との間で入出力制御を行う。また、ネットワーク740を介して送受信されるIPパケットをカプセル化・デカプセル化することで、USBデバイス720がクライアントPC700と直結しているかのように動作することを可能にするネットワーク仮想制御ソフトウェアである。   The virtual USB port driver 870 performs input / output control with the virtual USB port driver 840 of the client PC 700 via the network 740. The virtual network control software enables the USB device 720 to operate as if it is directly connected to the client PC 700 by encapsulating / decapsulating IP packets transmitted / received via the network 740.

通信制御部860は、仮想USBポートドライバ870が受け付けたデータ入出力要求(通信路の確保と解放)に応じてUSBデバイス720との通信路を制御する機能部である。   The communication control unit 860 is a functional unit that controls a communication path with the USB device 720 in response to a data input / output request (reservation and release of a communication path) received by the virtual USB port driver 870.

ここで、デバイス情報取得部がUSBデバイスから取得するデバイス情報とは、デバイス識別情報、デバイス構成情報、機能識別情報などのデバイスに関する情報のことであり、データ・テーブルの形で階層的に記述されている。つまり、USBデバイスにおいてはUSBディスクリプタ情報に相当する。   Here, the device information acquired from the USB device by the device information acquisition unit is information about the device such as device identification information, device configuration information, and function identification information, and is described hierarchically in the form of a data table. ing. That is, it corresponds to USB descriptor information in the USB device.

具体的には、デバイス識別情報とは、デバイスメーカーを識別するために製造したメーカー毎に割り当てられたベンダーID、機種ID・モデルを識別するために機種毎に割り当てられた製品ID、機器毎に割り当てられたシリアル番号、コンフィギュレーションの数などに相当し、これらはデバイスディスクリプタに記載されている。また、デバイス構成識別情報とは、デバイスが備えるインタフェースの数などに相当し、これらはコンフィギュレーションディスクリプタに記載され、多くのデバイスはコンフィギュレーションが1 つとなっている。さらに、機能識別情報とは、各デバイスが備える機能(たとえば、キーボード、マウスなどのインターフェイスクラス)情報、インタフェース自身の番号、そのインタフェースのバリエーションの番号、エンドポイントの数などに相当し、これらはインタフェースディスクリプタに記載されている。
また、デバイス情報には、その他にもエンドポイントのデータ転送種別・転送方向・パケットサイズ、ポーリング時間を記載したエンドポイントディスクリプタが含まれ、さらに必須ではないが文字列を格納するストリングディスクリプタ、ハイスピード対応USBデバイスで使用される各種ディスクリプタなども適宜含まれる。
Specifically, the device identification information includes a vendor ID assigned for each manufacturer manufactured to identify a device manufacturer, a product ID assigned for each model to identify a model ID / model, and for each device. This corresponds to the assigned serial number, the number of configurations, etc., which are described in the device descriptor. The device configuration identification information corresponds to the number of interfaces included in the device, and is described in the configuration descriptor, and many devices have one configuration. Furthermore, the function identification information corresponds to the function (for example, interface class such as keyboard and mouse) information included in each device, the number of the interface itself, the number of variations of the interface, the number of endpoints, etc. Described in the descriptor.
In addition, the device information includes an endpoint descriptor that describes the data transfer type, transfer direction, packet size, and polling time of the endpoint, and although not required, a string descriptor that stores a character string, high speed Various descriptors used in compatible USB devices are also included as appropriate.

つぎに、本発明における周辺機器サーバシステムについて、詳細に説明する。   Next, the peripheral device server system in the present invention will be described in detail.

<本発明における周辺機器サーバシステムの構成>
図1は、本発明を実現するための周辺機器サーバシステムの接続構成図を示している。
<Configuration of Peripheral Device Server System in the Present Invention>
FIG. 1 shows a connection configuration diagram of a peripheral device server system for realizing the present invention.

クライアンPC100とクライアントPC101と周辺機器サーバ102とUSBデバイス104、106、108および110から構成される。   The client PC 100, client PC 101, peripheral device server 102, and USB devices 104, 106, 108 and 110 are configured.

図1で示すように、周辺機器サーバ102に複数のUSBデバイス104、106、108および110をUSB規格のインタフェースに準拠した接続ケーブル105、107、109、111で接続しており、クライアントPC100、101は、有線又は無線によってネットワーク103を介して接続している。クライアントPCは、システムの実態により、1つでも複数でも構わない。   As shown in FIG. 1, a plurality of USB devices 104, 106, 108 and 110 are connected to the peripheral device server 102 with connection cables 105, 107, 109, 111 compliant with the USB standard interface, and the client PCs 100, 101 are connected. Are connected via a network 103 by wire or wireless. There may be one or more client PCs depending on the actual state of the system.

つぎに、周辺機器サーバシステムを構成する各装置について説明する。
<クライアントPC100の構成>
クライアントPC100のハードウェア構成について、図2aを用いて説明する。
Next, each device constituting the peripheral device server system will be described.
<Configuration of client PC 100>
A hardware configuration of the client PC 100 will be described with reference to FIG.

クライアントPC100は、CPU200、入力部201、メモリ202、記憶装置203、通信I/F部204から構成され、各々が内部バス205で接続されている。   The client PC 100 includes a CPU 200, an input unit 201, a memory 202, a storage device 203, and a communication I / F unit 204, which are connected by an internal bus 205.

CPU200は、所定の制御プログラムを実行するプロセッサであり、クライアントPC100を全体的に制御する。   The CPU 200 is a processor that executes a predetermined control program, and controls the client PC 100 as a whole.

入力部201は、各種入力、ユーザの指示操作などを行なうための操作部であり、例えばキーボードやマウスなどで構成される。   The input unit 201 is an operation unit for performing various inputs, user instruction operations, and the like, and includes, for example, a keyboard and a mouse.

メモリ202は、ROM(Read Only Memory)およびRAM(Random Access Memory)で構成される記憶領域であり、所定のプログラムやデータを格納する。   The memory 202 is a storage area composed of a ROM (Read Only Memory) and a RAM (Random Access Memory), and stores predetermined programs and data.

記憶装置203は、OS(Operating System)206、アプリケーションプログラム207、接続ユーティリティ208、デバイスドライバ209、USBクラスドライバ210、仮想USBポートドライバ211、通信制御部212を備えたソフトウェアプログラムを格納する。   The storage device 203 stores a software program including an OS (Operating System) 206, an application program 207, a connection utility 208, a device driver 209, a USB class driver 210, a virtual USB port driver 211, and a communication control unit 212.

通信I/F部204は、IEEE802.3規格に準拠した有線ネットワーク、またはIEEE802.11規格に準拠した無線ネットワークなど、ネットワーク103に対応したネットワークパケットによる送受信や通信制御を行うためのインタフェースであり、周辺機器サーバ102とデータ通信を行うことで、クライアントPC100から入出力データを送受信することが可能となる。   The communication I / F unit 204 is an interface for performing transmission / reception and communication control by network packets corresponding to the network 103, such as a wired network compliant with the IEEE 802.3 standard or a wireless network compliant with the IEEE 802.11 standard. By performing data communication with the peripheral device server 102, input / output data can be transmitted and received from the client PC 100.

つぎに、クライアントPC100の機能ブロックについて、図2bを用いて説明する。   Next, functional blocks of the client PC 100 will be described with reference to FIG.

デバイスドライバ209、USBクラスドライバ210、仮想USBポートドライバ211は、接続ユーティリティ208からUSBデバイス104、106、108および110のデバイス情報を取得、登録することにより、動的に生成されるドライバである。   The device driver 209, the USB class driver 210, and the virtual USB port driver 211 are drivers that are dynamically generated by acquiring and registering device information of the USB devices 104, 106, 108, and 110 from the connection utility 208.

アプリケーションプログラム207は、デバイスドライバ209、USBクラスドライバ210、仮想USBポートドライバ211の各ドライバソフトウェア部品が生成された後、USBデバイス104、106、108および110に対して、デバイスドライバ209、USBクラスドライバ210、仮想USBポートドライバ211を介して、通信制御部212にデータの入出力を要求するアプリケーションソフトウェアである。   The application program 207 generates device driver 209, USB class driver 210, and virtual USB port driver 211, and then generates device driver 209, USB class driver for USB devices 104, 106, 108, and 110. 210, application software that requests the communication control unit 212 to input / output data via the virtual USB port driver 211.

接続ユーティリティ208は、OS206が起動している間、常に待機および動作しているソフトウェアである。ネットワーク103上にある周辺機器サーバ102と送受信を行うことにより、周辺機器サーバ102に接続されたUSBデバイス104、106、108および110を認識し、さらにそのデバイス情報を受信してこれをもとに、デバイス104、106、108および110とのデータ入出力に必要なドライバを特定する。   The connection utility 208 is software that always stands by and operates while the OS 206 is activated. By transmitting and receiving to / from the peripheral device server 102 on the network 103, the USB devices 104, 106, 108 and 110 connected to the peripheral device server 102 are recognized, and the device information is received and based on this. The driver necessary for data input / output with the devices 104, 106, 108 and 110 is specified.

デバイスドライバ209は、OS206やアプリケーションプログラム207など上位層のソフトウェアの指示により、USBデバイス104、106、108および110に対する制御コマンドを生成し、この制御コマンドに対するUSBデバイスからの応答を待ち、周辺機器サーバ102を経由したこのUSBデバイス応答を上位層のソフトウェアへ通知するソフトウェアである。   The device driver 209 generates a control command for the USB devices 104, 106, 108, and 110 in response to an instruction from higher-layer software such as the OS 206 and the application program 207, waits for a response from the USB device to the control command, and waits for a peripheral device server This software notifies the upper layer software of this USB device response via 102.

USBクラスドライバ210は、プラグアンドプレイイベントを生成し、また、制御コマンドを送受信するためのUSBポートを作成する。また、その上位にデバイスドライバ209をロードし、さらに、デバイスドライバ209で生成される制御コマンドをUSBパケットに変換し、またはUSBパケットを制御コマンドに変換するソフトウェアである。   The USB class driver 210 generates a plug-and-play event and creates a USB port for transmitting and receiving control commands. In addition, it is software that loads the device driver 209 on the upper layer and converts a control command generated by the device driver 209 into a USB packet or converts a USB packet into a control command.

仮想USBポートドライバ211は、アプリケーションプログラム207、デバイスドライバ209、USBクラスドライバ210を経由するデータあるいはコマンドのやりとりについて、ネットワーク103を介して周辺機器サーバ102の仮想USBポートドライバ308との間で入出力制御を行う。また、ネットワーク103を介してUSBデバイスとの間で送受信されるIPパケットをカプセル化・デカプセル化することで、クライアントPC100がUSBデバイス104、106、108および110に直結しているかのように動作することを提供するネットワーク仮想制御ソフトウェアである。   The virtual USB port driver 211 inputs and outputs data and commands exchanged via the application program 207, device driver 209, and USB class driver 210 with the virtual USB port driver 308 of the peripheral device server 102 via the network 103. Take control. Further, by encapsulating / decapsulating IP packets transmitted / received to / from a USB device via the network 103, the client PC 100 operates as if it is directly connected to the USB devices 104, 106, 108, and 110. Network virtual control software that provides that.

通信制御部212は、仮想USBポートドライバ211から要求されるデータ入出力について、通信I/F部経由で、ネットワークを介して周辺機器サーバ102と送受信するソフトウェアである。仮想USBポートドライバ211からデータ入出力を要求された場合、USBデバイス104、106、108および110に対してTCP接続し、通信を開始する。また、通信を完了するとTCP接続を切断する。   The communication control unit 212 is software that transmits / receives data input / output requested from the virtual USB port driver 211 to / from the peripheral device server 102 via the network via the communication I / F unit. When data input / output is requested from the virtual USB port driver 211, TCP connection is made to the USB devices 104, 106, 108 and 110, and communication is started. When the communication is completed, the TCP connection is disconnected.

<周辺機器サーバ102の構成>
つぎに、周辺機器サーバ102のハードウェア構成について、図3aを用いて説明する。
<Configuration of Peripheral Device Server 102>
Next, the hardware configuration of the peripheral device server 102 will be described with reference to FIG.

周辺機器サーバ102は、CPU300、メモリ301、記憶装置302、通信I/F部303などから構成されており、これらが内部バス304で接続されている。   The peripheral device server 102 includes a CPU 300, a memory 301, a storage device 302, a communication I / F unit 303, and the like, which are connected by an internal bus 304.

CPU300は、所定の制御プログラムを実行するプロセッサであり、周辺機器サーバ102を全体的に制御する。   The CPU 300 is a processor that executes a predetermined control program, and controls the peripheral device server 102 as a whole.

メモリ301は、ROMおよびRAMで構成される記憶領域であり、所定のプログラムやデータを格納する。   The memory 301 is a storage area composed of a ROM and a RAM, and stores predetermined programs and data.

記憶装置302は、デバイス検出部305、デバイス情報取得部306、接続情報制御部307、通信制御部308を備えた機能ブロックなどが格納されている。   The storage device 302 stores a function block including a device detection unit 305, a device information acquisition unit 306, a connection information control unit 307, and a communication control unit 308.

通信I/F部303は、IEEE802.3規格に準拠した有線ネットワーク、またはIEEE802.11規格に準拠した無線ネットワークなど、ネットワーク103に対応したネットワークパケットによる送受信や通信制御を行うためのインタフェースであり、ネットワーク103を介することで、クライアントPC100とUSBデバイス104、106、108および110との間で入出力データを送受信することが可能となる。   The communication I / F unit 303 is an interface for performing transmission / reception and communication control by network packets corresponding to the network 103, such as a wired network compliant with the IEEE 802.3 standard or a wireless network compliant with the IEEE 802.11 standard. Via the network 103, input / output data can be transmitted and received between the client PC 100 and the USB devices 104, 106, 108, and 110.

つぎに、周辺機器サーバ102の機能ブロックについて、図3bを用いて説明する。   Next, functional blocks of the peripheral device server 102 will be described with reference to FIG.

デバイス検出部305は、周辺機器サーバ102に接続されたデバイスを検出する機能部である。   The device detection unit 305 is a functional unit that detects a device connected to the peripheral device server 102.

デバイス情報取得部306は、USBデバイス104、106、108および110から通信I/F部303を介してデバイス識別情報、デバイス構成情報および機能識別情報を取得し、メモリ301に保持する機能部である。   The device information acquisition unit 306 is a functional unit that acquires device identification information, device configuration information, and function identification information from the USB devices 104, 106, 108, and 110 via the communication I / F unit 303 and holds them in the memory 301. .

接続情報制御部307は、クライアントPC100からの要求に応じて、デバイス情報取得部306が取得したUSBデバイス104、106、108および110のデバイス識別情報、デバイス構成情報及び機能識別情報をもとに、後述する情報の再構成を行い、メモリ301に保持し、クライアントPC100に対して通知し、クライアントPC100からのデータ入出力要求を受け付ける機能部であり、本発明の最も重要な構成要素である。   In response to a request from the client PC 100, the connection information control unit 307 is based on the device identification information, device configuration information, and function identification information of the USB devices 104, 106, 108, and 110 acquired by the device information acquisition unit 306. It is a functional unit that reconstructs information to be described later, holds it in the memory 301, notifies the client PC 100, and receives a data input / output request from the client PC 100, and is the most important component of the present invention.

仮想USBポートドライバ308は、上位層の接続情報制御部307へデータ入出力を行い、ネットワーク103を介して、クライアントPC100の仮想USBポートドライバ211との間で入出力制御を行う。また、ネットワーク103を介して送受信されるIPパケットをカプセル化・デカプセル化することで、クライアントPC100と直結しているかのように動作することを提供するネットワーク仮想制御ソフトウェアである。   The virtual USB port driver 308 inputs / outputs data to / from the upper layer connection information control unit 307 and performs input / output control with the virtual USB port driver 211 of the client PC 100 via the network 103. Further, the present invention is network virtual control software that provides an operation as if directly connected to the client PC 100 by encapsulating / decapsulating IP packets transmitted / received via the network 103.

通信制御部309は、仮想USBポートドライバ308が受け付けたデータ入出力要求(通信路の確保と解放)に応じてUSBデバイス104、106、108および110との通信路を制御する機能部である。   The communication control unit 309 is a functional unit that controls a communication path with the USB devices 104, 106, 108, and 110 in response to a data input / output request (reservation and release of a communication path) received by the virtual USB port driver 308.

上述したデバイス情報取得部306と接続情報制御部307によって、クライアントPC100から受信するデータ入出力要求に対して、プロトコル上に指定されているUSBデバイス104、106、108および110を識別するための情報(デバイス識別情報)とUSBデバイス104、106、108および110が備える各機能の情報(機能識別情報)を基に判断し、通信制御部309を介して、クライアントPC100がデータ入出力を求めるUSBデバイス104、106、108および110の機能を特定する。これによって、1台または複数のデバイスとの間でデータ入出力の制御が可能となる。   Information for identifying the USB devices 104, 106, 108 and 110 specified in the protocol in response to the data input / output request received from the client PC 100 by the device information acquisition unit 306 and the connection information control unit 307 described above. (Device identification information) and a USB device for which the client PC 100 determines data input / output via the communication control unit 309, based on information (function identification information) of each function included in the USB devices 104, 106, 108, and 110 The functions of 104, 106, 108 and 110 are specified. This makes it possible to control data input / output with one or more devices.

図4を用いて、クライアントPC100と周辺機器サーバ102とUSBデバイス(デバイス104、106、108および110)との間のコネクション確立とプラグアンドプレイ完了までのシーケンス図を説明する。   With reference to FIG. 4, a sequence diagram from connection establishment to plug-and-play completion between the client PC 100, the peripheral device server 102, and the USB devices (devices 104, 106, 108, and 110) will be described.

ステップS400では、デバイス検出部305が周辺機器サーバに接続されたデバイスの検出を行う。デバイス情報取得部306は、デバイス検出部305で検出したデバイス情報を取得し、メモリ301に保持する。   In step S400, the device detection unit 305 detects a device connected to the peripheral device server. The device information acquisition unit 306 acquires the device information detected by the device detection unit 305 and stores it in the memory 301.

ステップS401では、クライアントPC100の接続ユーティリティ208を介して周辺機器サーバ102と周辺機器サーバ102に接続しているUSBデバイスに対し、ブロードキャスト通信、マルチキャスト通信または特定の周辺機器サーバに接続されているUSBデバイスに対するユニキャスト通信を行い、各デバイスのデバイス情報を取得し、メモリ202に保持する。   In step S401, for the USB device connected to the peripheral device server 102 and the peripheral device server 102 via the connection utility 208 of the client PC 100, broadcast communication, multicast communication, or a USB device connected to a specific peripheral device server. The device information of each device is acquired and held in the memory 202.

また、デバイス情報の取得は、上述の各種通信からではなく、サーバにあらかじめ使用可能であるデバイス情報を製品出荷の段階でメモリ301に書き込んでおいてもよいし、メモリ301に書き込まれた初期出荷時からの内容にアップデート処理によって行われてもよい。   In addition, the device information can be acquired by writing device information that can be used in advance to the server in the memory 301 at the time of product shipment, or from the initial shipment written in the memory 301. The content from the time may be performed by an update process.

ステップS402では、クライアントPC100の接続ユーティリティ208からユーザが利用したいデバイスの指示を行う、あるいは接続ユーティリティ208に予め設定されたデバイス情報をもとに、周辺機器サーバ102に対し、クライアントPCが接続を希望する複数のUSBデバイスを特定した「複数USBデバイス接続」要求コマンドを送信することで指定されたデバイス全体を一つとするコネクション確立要求を行う。   In step S402, the user instructs a device to be used from the connection utility 208 of the client PC 100, or the client PC wishes to connect to the peripheral device server 102 based on device information preset in the connection utility 208. A connection establishment request is made for one device as a whole by transmitting a “multiple USB device connection” request command specifying a plurality of USB devices to be specified.

ステップS403では、周辺機器サーバ102の接続情報制御部307が、クライアントPC100の仮想USBポートドライバ211へ「複数USBデバイス接続」要求コマンドに対する応答を通知する。   In step S403, the connection information control unit 307 of the peripheral device server 102 notifies the virtual USB port driver 211 of the client PC 100 of a response to the “multiple USB device connection” request command.

ステップS404では、クライアントPC100の仮想USBポートドライバ211が、周辺機器サーバ102からの「複数USBデバイス接続」要求コマンドの応答を受け、接続しようとするすべてのデバイスに対し、まとめて(一度に)コネクション確立の完了を通知する。   In step S404, the virtual USB port driver 211 of the client PC 100 receives a response to the “multiple USB device connection” request command from the peripheral device server 102, and connects all at once to all devices to be connected. Notify completion of establishment.

ステップS405では、周辺機器サーバ102の接続情報制御部307が、仮想USBポートドライバ308を介して、ステップS404のクライアントPC100からの通知を受けて、取得しているデバイス情報を後で詳細に説明するように、1つの複合デバイスとしてデバイス情報を再構成し、メモリ301に保持する。   In step S405, the connection information control unit 307 of the peripheral device server 102 receives the notification from the client PC 100 in step S404 via the virtual USB port driver 308, and the acquired device information will be described in detail later. As described above, the device information is reconfigured as one composite device and held in the memory 301.

ステップS406では、周辺機器サーバ102の接続情報制御部307が、ステップS405で再構成されたデバイス情報をクライアントPC100に応答する。   In step S406, the connection information control unit 307 of the peripheral device server 102 responds to the client PC 100 with the device information reconfigured in step S405.

ステップS407では、クライアントPC100の仮想USBポートドライバ211がステップS406での応答を受けたのち、OS206がデバイス情報に対応するデバイスドライバ209、USBクラスドライバ210をメモリ202へロード(搭載)し、仮想USBポートドライバ211との間でプラグアンドプレイ(Plug and Play)を完了する。   In step S407, after the virtual USB port driver 211 of the client PC 100 receives the response in step S406, the OS 206 loads (installs) the device driver 209 and the USB class driver 210 corresponding to the device information into the memory 202, and the virtual USB Plug and play with the port driver 211 is completed.

このように、1つの複合デバイスとして、接続したいデバイスとの間でプラグアンドプレイを完了し、USBデバイスの利用が可能となる。   In this way, plug-and-play is completed with a device to be connected as one composite device, and a USB device can be used.

ディスクリプタ情報を再構成することについて説明する。
<ディスクリプタ情報の再構成について>
Reconfiguration of descriptor information will be described.
<Reconfiguration of descriptor information>

まず、従来の周辺機器サーバシステムにおいて、図1に示す接続システムであった場合のディスクリプタ情報の構成について、図5を用いて説明する。   First, in the conventional peripheral device server system, the configuration of descriptor information in the case of the connection system shown in FIG. 1 will be described with reference to FIG.

クライアントPCから接続ユーティリティを経由して、従来の周辺機器サーバに接続したデバイスにおけるディスクリプタ情報は、図5に示すような構成になっている。   The descriptor information in the device connected to the conventional peripheral device server from the client PC via the connection utility has a configuration as shown in FIG.

ここで、デバイス104は、スピーカに相当し、デバイスディスクリプタ500と識別される。   Here, the device 104 corresponds to a speaker and is identified as a device descriptor 500.

デバイス106は、スキャナに相当し、デバイスディスクリプタ501と識別される。   The device 106 corresponds to a scanner and is identified as a device descriptor 501.

デバイス108は、マウス付キーボードに相当し、デバイスディスクリプタ502と識別される。
ここで、デバイス108は後述する複合デバイスの体をなしており、図5に示すとおり、デバイスディスクリプタ502の下位層にコンフィギュレーションディスクリプタ502aを有し、さらに下位層にキーボード機能を備えるインタフェースディスクリプタ502a(インタフェース0番)とマウス機能を備えるインタフェースディスクリプタ502b(インタフェース1番)とを備えるディスクリプタ構成になっている。
The device 108 corresponds to a keyboard with a mouse and is identified as a device descriptor 502.
Here, the device 108 forms a body of a composite device to be described later. As shown in FIG. 5, the device descriptor 502 has a configuration descriptor 502a in a lower layer and further has a keyboard function in a lower layer. The descriptor structure includes an interface descriptor 502b (interface No. 1) having a mouse function.

デバイス110は、外部記憶装置に相当し、デバイスディスクリプタ503と識別される。   The device 110 corresponds to an external storage device and is identified as a device descriptor 503.

ここで、USBデバイスを認識する際にOSが対応している複合デバイスについて説明をする。
通常、ディスクリプタ情報は、コンフィギュレーション1個に、1個のインタフェースで定義される1つの機能だけとなり、この機能の中には、いくつかのエンドポイントが含まれ、これがUSB通信の対象なる。しかし、複合デバイスでは、コンフィギュレーション1個に、インタフェースが複数定義され、それぞれ独立の動作をする機能ブロックごとにディスクリプタ情報が構成されており、複数の機能を持った複合のデバイスとして定義することができる。1つのデバイスディスクリプタの下に、コンフィギュレーションディスクリプタ内に含まれるインタフェース数に1以上の数値が記載され、インタフェースディスクリプタは、インタフェース自身の番号(例えば0、1、2など)が記載される。このように、1つのハードウェアに対し、複数のインタフェースを持つことで、動的にインタフェースを切り替えて異なった機能を持たせることもできる。
Here, a composite device supported by the OS when recognizing a USB device will be described.
Normally, descriptor information has only one function defined by one interface in one configuration, and some endpoints are included in this function, which are targets of USB communication. However, in a composite device, a plurality of interfaces are defined in one configuration, and descriptor information is configured for each functional block that operates independently, and can be defined as a composite device having a plurality of functions. it can. Under one device descriptor, a numerical value of 1 or more is described as the number of interfaces included in the configuration descriptor, and the interface descriptor describes the number of the interface itself (for example, 0, 1, 2, etc.). In this way, by having a plurality of interfaces for one piece of hardware, it is possible to dynamically switch interfaces to have different functions.

つまり、デバイス108は、複合デバイスとしてOSが認識可能であり、従来の周辺機器サーバシステムのディスクリプタ情報の構成は、周辺機器サーバに接続したデバイスは各々1つのディスクリプタを備え、さらに複合デバイス(デバイス108)においては、その具備する機能各々に対してもインタフェースディスクリプタをそれぞれ備えている(図5の階層参照)。   In other words, the OS can recognize the device 108 as a composite device, and the configuration of the descriptor information in the conventional peripheral device server system is such that each device connected to the peripheral device server includes one descriptor, and the composite device (device 108). ) Includes interface descriptors for each of the functions (see the hierarchy in FIG. 5).

このような階層構成をクライアントPC700のOSが認識し、周辺機器サーバ710に接続している各デバイスに対し、デバイスディスクリプタごと(1つのデバイスごと)にコネクション確立手順とプラグアンドプレイ手順を接続したい台数回、繰り返す。このことで、クライアントPCがネットワーク740を介して、周辺機器サーバに接続した各デバイスとの間で入出力転送を開始できるようになる。   The number of units that the OS of the client PC 700 recognizes such a hierarchical configuration and wants to connect the connection establishment procedure and the plug and play procedure for each device descriptor (one device) for each device connected to the peripheral device server 710 Repeat once. As a result, the client PC can start input / output transfer with each device connected to the peripheral device server via the network 740.

つぎに、本発明における周辺機器サーバシステムにおいて、図1に示す接続システムであった場合のディスクリプタ情報の構成について、図6を用いて説明する。   Next, in the peripheral device server system of the present invention, the configuration of descriptor information in the case of the connection system shown in FIG. 1 will be described with reference to FIG.

周辺機器サーバ102の接続情報制御部307で、クライアントPC100の接続ユーティリティ208から図4のステップS404のコネクション確立応答(「複数USBデバイス接続」コマンド送信)を受けて、接続指定されたデバイス全体を1つの複合デバイスとして、ディスクリプタ情報を再構成する。   The connection information control unit 307 of the peripheral device server 102 receives the connection establishment response (“multiple USB device connection” command transmission) in step S404 of FIG. Descriptor information is reconfigured as one composite device.

すなわち、従来の例と異なり、個々に独立したデバイスとその独立したデバイスに具備している機能も含め、クライアントから接続指定された任意の複数のデバイスを組み合わせて1つの複合デバイスとみなし、クライアントPC100とネットワーク103を介して、周辺機器サーバ102に接続したUSBデバイス104、106、108および110と入出力転送が行えるようにする。   That is, unlike the conventional example, the client PC 100 is regarded as one composite device by combining any plurality of devices designated for connection by the client, including individually independent devices and functions provided in the independent devices. And the USB device 104, 106, 108, and 110 connected to the peripheral device server 102 via the network 103 to enable input / output transfer.

つまり、図6に示すとおり周辺機器サーバに接続しているデバイスの階層構成を再構成し、複合デバイスディスクリプタ600とみなし、複合デバイスのコンフィギュレーションディスクリプタ600aの下位層に、スピーカのオーディオ機能のインタフェースディスクリプタ600aとスキャナのスキャン/イメージング機能のインタフェースディスクリプタ600bとマウス付キーボードのキーボード機能のインタフェースディスクリプタ600cとマウス付キーボードのマウス機能のインタフェースディスクリプタ600dと外部記憶装置のストレージ機能のインタフェースディスクリプタ600eとで構成され、各々のインタフェースディスクリプタに、インタフェースディスクリプタ600aがインタフェース0番、インタフェースディスクリプタ600bがインタフェース1番、インタフェースディスクリプタ600cがインタフェース2番、インタフェースディスクリプタ600dがインタフェース3番、インタフェースディスクリプタ600eがインタフェース4番に各々相当する構成になり、複合デバイスにおけるインタフェースディスクリプタと同じ構成になる。(図6の階層参照)。   That is, as shown in FIG. 6, the hierarchical structure of the devices connected to the peripheral device server is reconfigured and regarded as the composite device descriptor 600, and the interface descriptor of the audio function of the speaker is placed below the composite device configuration descriptor 600a. 600a, an interface descriptor 600b for the scanning / imaging function of the scanner, an interface descriptor 600c for the keyboard function of the keyboard with mouse, an interface descriptor 600d for the mouse function of the keyboard with mouse, and an interface descriptor 600e for the storage function of the external storage device. In each interface descriptor, interface descriptor 600a is interface 0, interface Descriptor 600b is interface No. 1, the interface descriptor 600c interfaces # 2, the interface descriptor 600d interfaces third, will configure the interface descriptor 600e correspond respectively to interface fourth, the same structure as the interface descriptor in the composite device. (See the hierarchy in FIG. 6).

また、これら各々のディスクリプタ下位層に位置するエンドポイントディスクリプタなどは、各インタフェースディスクリプタの下位層に順次構成される(図5、図6には図示しない)。   Further, the endpoint descriptors and the like located in each of these descriptor lower layers are sequentially configured in the lower layer of each interface descriptor (not shown in FIGS. 5 and 6).

以上のことから、本発明の特徴である、周辺機器サーバが自身に接続しているデバイスのデバイス情報(ディスクリプタ情報)を取得するとともに、クライアントPCが通知する「複数USBデバイス接続」要求コマンドに基づいて、ディスクリプタ情報を再構成することにより、通常のデバイス情報取得により構成されたディスクリプタ構成情報と周辺機器サーバ内で生成される再構成後のディスクリプタ構成情報の2つのディスクリプタ構成情報を周辺機器サーバ内に保持する。このうち一方の再構成後のディスクリプタ構成情報を利用することで、あたかもクライアントPCが接続を要求するデバイス全てを1つの複合デバイスと擬制(同様の形態)することが可能となり、クライアントPCのOSは、周辺機器サーバに接続を要求したデバイス全体を1つの複合デバイスと認識することができ、その結果、従来よりも短時間で、クライアントPCとネットワークを介して、周辺機器サーバに接続したデバイスとの間でデータ入出力転送を開始できるようになる(プラグアンドプレイ完了)ため、ユーザの利便性向上に有用である。   Based on the above, the device information (descriptor information) of the device connected to the peripheral device server, which is a feature of the present invention, is acquired, and based on the “multiple USB device connection” request command notified by the client PC. Thus, by reconfiguring the descriptor information, the descriptor configuration information constituted by normal device information acquisition and the descriptor configuration information after reconfiguration generated in the peripheral device server are stored in the peripheral device server. Hold on. By using the descriptor configuration information after reconfiguration of one of these, it is possible to imitate all the devices that the client PC requests to connect as one composite device (similar form), and the OS of the client PC The entire device that requested connection to the peripheral device server can be recognized as one composite device. As a result, the device connected to the peripheral device server via the client PC and the network in a shorter time than before can be recognized. Since data input / output transfer can be started (plug and play completion), it is useful for improving user convenience.

本発明は、クライアントがIPネットワークを介して複数の入出力デバイスを制御する用途に適用できる。   The present invention can be applied to an application in which a client controls a plurality of input / output devices via an IP network.

100、101、700 クライアントPC
102、710 周辺機器サーバ
103、740 ネットワーク
104、106、108、110、720 USBデバイス
105、107、109、111、730 接続ケーブル
200、300 CPU
201 入力部
202、301 メモリ
203、302 記憶装置
204、303 通信I/F部
205、304 内部バス
206 OS
207、800 アプリケーション
208、810 接続ユーティリティ
209、820 デバイスドライバ
210、830 USBクラスドライバ
211、308、840、870 仮想USBポートドライバ
212、309、850、860 通信制御部
305、890 デバイス検出部
306、880 デバイス情報取得部
307 接続情報制御部

100, 101, 700 Client PC
102, 710 Peripheral device server 103, 740 Network 104, 106, 108, 110, 720 USB device 105, 107, 109, 111, 730 Connection cable 200, 300 CPU
201 Input unit 202, 301 Memory 203, 302 Storage device 204, 303 Communication I / F unit 205, 304 Internal bus 206 OS
207, 800 Application 208, 810 Connection utility 209, 820 Device driver 210, 830 USB class driver 211, 308, 840, 870 Virtual USB port driver 212, 309, 850, 860 Communication control unit 305, 890 Device detection unit 306, 880 Device information acquisition unit 307 Connection information control unit

Claims (3)

少なくとも1以上のクライアントにネットワークを介して接続されるとともに、少なくとも2以上のUSBデバイスと接続された周辺機器サーバであって、
前記USBデバイスの各デバイスを検出するデバイス検出部と、
前記検出された各デバイスのUSBディスクリプタ情報を取得し、当該USBディスクリプタ情報を保持するデバイス情報取得部と、
前記クライアントから通知を受けると、ユーザによる入力または前記クライアントに予め設定された情報に基づいて、前記クライアントが接続を希望する全てのデバイスの前記USBディスクリプタ情報を1つの複合デバイスとして再構成し、当該再構成したUSBディスクリプタ情報を保持し、前記クライアントへ当該再構成したUSBディスクリプタ情報を送信する接続情報制御部と、
前記クライアントと前記USBデバイスとの間でネットワークを介して、所定の形式でIPパケットを送受信する仮想USBポートドライバと
前記クライアントとの間でデータ入出力を制御するUSBディスクリプタ情報を前記クライアントへ通知する通信制御部と
を備える周辺機器サーバ。
A peripheral server connected to at least one or more clients via a network and connected to at least two or more USB devices;
A device detector for detecting each device of the USB device;
A device information acquisition unit for acquiring USB descriptor information of each detected device and holding the USB descriptor information;
Upon receiving a notification from the client, the USB descriptor information of all devices that the client desires to connect to is reconfigured as one composite device based on input by a user or information preset in the client, holds USB descriptor information reconstructed connection information control unit that transmits USB descriptor information the reconstituted to the client,
Notifying the client of USB descriptor information that controls data input / output between the client and a virtual USB port driver that transmits and receives IP packets in a predetermined format via the network between the client and the USB device A peripheral device server comprising a communication control unit.
少なくとも1以上のクライアントにネットワークを介して接続されるとともに、少なくとも2以上のUSBデバイスと接続された周辺機器サーバを備える周辺機器サーバシステムのデバイス制御方法であって、
前記USBデバイスの各デバイスを検出するデバイス検出ステップと、
前記検出された各デバイスのUSBディスクリプタ情報を取得し、当該USBディスクリプタ情報を保持するデバイス情報取得ステップと、
前記クライアントから通知を受けると、ユーザによる入力または前記クライアントに予め設定された情報に基づいて、前記クライアントが接続を希望する全てのデバイスの前記USBディスクリプタ情報を1つの複合デバイスとして再構成し、当該再構成したUSBディスクリプタ情報を保持し、前記クライアントへ当該再構成したUSBディスクリプタ情報を送信する制御ステップと、
前記クライアントと前記USBデバイスとの間でネットワークを介して、所定の形式でIPパケットを送受信するステップと
前記クライアントとの間でデータ入出力を制御するUSBディスクリプタ情報を前記クライアントへ通知するステップと
を含むデバイス制御方法。
A device control method for a peripheral device server system including a peripheral device server connected to at least one or more clients via a network and connected to at least two or more USB devices,
A device detection step of detecting each device of the USB device;
A device information acquisition step of acquiring USB descriptor information of each detected device and holding the USB descriptor information;
Upon receiving a notification from the client, the USB descriptor information of all devices that the client desires to connect to is reconfigured as one composite device based on input by a user or information preset in the client, holds USB descriptor information reconstructed, and a control step of transmitting USB descriptor information the reconstituted to the client,
A step of transmitting and receiving IP packets in a predetermined format via a network between the client and the USB device; and a step of notifying the client of USB descriptor information for controlling data input / output between the client and the client. Including device control method.
少なくとも1以上のクライアントにネットワークを介して接続されるとともに、少なくとも2以上のUSBデバイスと接続された周辺機器サーバのプログラムあって、
前記USBデバイスの各デバイスを検出するデバイス検出ステップと、
前記検出された各デバイスのUSBディスクリプタ情報を取得し、当該USBディスクリプタ情報を保持するデバイス情報取得ステップと、
前記クライアントから通知を受けると、ユーザによる入力または前記クライアントに予め設定された情報に基づいて、前記クライアントが接続を希望する全てのデバイスの前記USBディスクリプタ情報を1つの複合デバイスとして再構成し、当該再構成したUSBディスクリプタ情報を保持し、前記クライアントへ当該再構成したUSBディスクリプタ情報を送信する制御ステップと、
前記クライアントと前記USBデバイスとの間でネットワークを介して、所定の形式でIPパケットを送受信するステップと
前記クライアントとの間でデータ入出力を制御するUSBディスクリプタ情報を前記クライアントへ通知するステップと
を含む処理を周辺機器サーバに実行させるプログラム。

A peripheral server program connected to at least one client via a network and connected to at least two USB devices;
A device detection step of detecting each device of the USB device;
A device information acquisition step of acquiring USB descriptor information of each detected device and holding the USB descriptor information;
Upon receiving a notification from the client, the USB descriptor information of all devices that the client desires to connect to is reconfigured as one composite device based on input by a user or information preset in the client, holds USB descriptor information reconstructed, and a control step of transmitting USB descriptor information the reconstituted to the client,
A step of transmitting and receiving IP packets in a predetermined format via a network between the client and the USB device; and a step of notifying the client of USB descriptor information for controlling data input / output between the client and the client. A program that causes a peripheral device server to execute processing including

JP2014071404A 2014-03-31 2014-03-31 Peripheral device server Active JP6241351B2 (en)

Priority Applications (1)

Application Number Priority Date Filing Date Title
JP2014071404A JP6241351B2 (en) 2014-03-31 2014-03-31 Peripheral device server

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
JP2014071404A JP6241351B2 (en) 2014-03-31 2014-03-31 Peripheral device server

Publications (3)

Publication Number Publication Date
JP2015194826A JP2015194826A (en) 2015-11-05
JP2015194826A5 JP2015194826A5 (en) 2017-04-20
JP6241351B2 true JP6241351B2 (en) 2017-12-06

Family

ID=54433798

Family Applications (1)

Application Number Title Priority Date Filing Date
JP2014071404A Active JP6241351B2 (en) 2014-03-31 2014-03-31 Peripheral device server

Country Status (1)

Country Link
JP (1) JP6241351B2 (en)

Family Cites Families (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2001222503A (en) * 2000-02-08 2001-08-17 Ricoh Co Ltd Peripheral equipment control system
JP2006127085A (en) * 2004-10-28 2006-05-18 Oki Data Corp Compound function system
JP4725397B2 (en) * 2006-04-05 2011-07-13 セイコーエプソン株式会社 USB composite device, USB communication system, and USB communication method

Also Published As

Publication number Publication date
JP2015194826A (en) 2015-11-05

Similar Documents

Publication Publication Date Title
JP5940733B2 (en) Host device, client device and method for wireless docking in a dynamic environment for multiple clients
JP4555926B2 (en) Scanner automatic connection program
JPWO2006082782A1 (en) Peripheral device usage method and peripheral device server
JP2007219711A (en) Remote device control program
KR101660612B1 (en) Bridging non-network interfaces and network interfaces
JP5129770B2 (en) Network equipment
CA2482238A1 (en) Simple and dynamic configuration of network devices
US20170139619A1 (en) Storage array automatic configuration method, apparatus and storage system
JP5745424B2 (en) Device control apparatus, client apparatus, device control method, and device control system
JP2011096090A (en) Radio communication device, method of responding to host apparatus and program
CN110069288B (en) USB equipment sharing method, device and system
JP5915107B2 (en) COMMUNICATION METHOD, COMMUNICATION DEVICE, STORAGE DEVICE, AND CONTROL PROGRAM
JP5581470B2 (en) Device sharing system, device sharing server, device sharing client, and device sharing method
WO2016119623A1 (en) Method and device for realizing network sharing
US20100169508A1 (en) Method for Controlling Heterogeneous iNIC Devices and Device Using the Same
KR102401481B1 (en) Appliances and control method thereof
US11079983B2 (en) Information processing apparatus that saves, in a shared memory, information for accessing a device using a URL via a USB, and method of controlling same
JP6241351B2 (en) Peripheral device server
JP6086183B2 (en) Information processing system, information processing method, server, control method thereof, and control program
JP4649584B2 (en) Peripheral device driver installation system
JP2009098977A (en) Peripheral device connection system
JP2011129111A (en) Client device, device control method, and device control system
US20170322892A1 (en) Information processing system, information processing method and information processing device
JP6281369B2 (en) Communication system and communication program
JP2015056843A (en) Communication connection system, communication connection program, communication connection method and lan connection device

Legal Events

Date Code Title Description
A521 Request for written amendment filed

Free format text: JAPANESE INTERMEDIATE CODE: A523

Effective date: 20170315

A621 Written request for application examination

Free format text: JAPANESE INTERMEDIATE CODE: A621

Effective date: 20170315

A871 Explanation of circumstances concerning accelerated examination

Free format text: JAPANESE INTERMEDIATE CODE: A871

Effective date: 20170315

A975 Report on accelerated examination

Free format text: JAPANESE INTERMEDIATE CODE: A971005

Effective date: 20170412

A131 Notification of reasons for refusal

Free format text: JAPANESE INTERMEDIATE CODE: A131

Effective date: 20170607

A521 Request for written amendment filed

Free format text: JAPANESE INTERMEDIATE CODE: A523

Effective date: 20170807

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: 20171012

A61 First payment of annual fees (during grant procedure)

Free format text: JAPANESE INTERMEDIATE CODE: A61

Effective date: 20171023

R150 Certificate of patent or registration of utility model

Ref document number: 6241351

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