JP2015076731A - Usb repeater, usb repeating method, and usb repeating program - Google Patents

Usb repeater, usb repeating method, and usb repeating program Download PDF

Info

Publication number
JP2015076731A
JP2015076731A JP2013211933A JP2013211933A JP2015076731A JP 2015076731 A JP2015076731 A JP 2015076731A JP 2013211933 A JP2013211933 A JP 2013211933A JP 2013211933 A JP2013211933 A JP 2013211933A JP 2015076731 A JP2015076731 A JP 2015076731A
Authority
JP
Japan
Prior art keywords
transfer
usb
data
usb device
packet
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
JP2013211933A
Other languages
Japanese (ja)
Other versions
JP6304739B2 (en
Inventor
市川 純一
Junichi Ichikawa
純一 市川
怜史 西本
Reishi Nishimoto
怜史 西本
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.)
NEC Engineering Ltd
Original Assignee
NEC Engineering Ltd
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 NEC Engineering Ltd filed Critical NEC Engineering Ltd
Priority to JP2013211933A priority Critical patent/JP6304739B2/en
Publication of JP2015076731A publication Critical patent/JP2015076731A/en
Application granted granted Critical
Publication of JP6304739B2 publication Critical patent/JP6304739B2/en
Active legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Images

Abstract

PROBLEM TO BE SOLVED: To provide a USB repeater, a USB repeating method, and a USB repeating program capable of transferring data more reliably.SOLUTION: A USB repeater 100 comprises: a transfer mode determination unit 101 for determining a transfer mode between a source USB device 110 and a destination USB device 120; a packet proxy collection unit 102 which collects transfer packets from the source USB device 110, as a proxy of the destination USB device 120, in accordance with the determined transfer mode; and a packet transfer unit 103 which sequentially transfers the collected transfer packets to the destination USB device 120.

Description

本発明は、USB中継装置、USB中継方法及びUSB中継プログラムに関し、特に、転送元USB装置と転送先USB装置間で転送処理を行うUSB中継装置、USB中継方法及びUSB中継プログラムに関する。   The present invention relates to a USB relay device, a USB relay method, and a USB relay program, and more particularly to a USB relay device, a USB relay method, and a USB relay program that perform transfer processing between a transfer source USB device and a transfer destination USB device.

近年、パソコン(パーソナルコンピュータ)などの電子機器における入出力インタフェースとしてUSB(Universal Serial Bus)が広く利用されている。USB規格に準拠することで、様々な周辺装置(USBデバイス)をホスト装置(USBホスト)に接続し利用することが可能となる。   In recent years, USB (Universal Serial Bus) has been widely used as an input / output interface in electronic devices such as personal computers. By complying with the USB standard, various peripheral devices (USB devices) can be connected to the host device (USB host) and used.

USBホストとなるパソコンにUSBデバイスを接続すると、パソコンはUSBデバイスのUSB記述子(Descriptor)を取得する。このUSB記述子は、そのUSB装置の「装置種別」「製造メーカ」「USBバージョン」などを含む。パソコンはこの様なUSB記述子の情報からUSB装置や制御するデバイスドライバを特定/設定し、自動的にUSBデバイスを認識/使用することができる状態になる。   When a USB device is connected to a personal computer serving as a USB host, the personal computer acquires a USB descriptor (Descriptor) of the USB device. This USB descriptor includes “device type”, “manufacturer”, “USB version”, and the like of the USB device. The personal computer specifies / sets the USB device and the device driver to be controlled from the information of the USB descriptor, and can automatically recognize / use the USB device.

また、USBでは、USB装置間のデータ通信方式として、扱うデータの性質に応じて以下の4つのデータ転送種別(転送モード)が規定されている。   In USB, as the data communication method between USB devices, the following four data transfer types (transfer modes) are defined according to the nature of data to be handled.

1.コントロール転送
・主にUSBデバイスの制御を主体とした転送方式である。
・通常は、USBデバイスに対する命令や状態取得などを行う。これらの命令などでは、主にUSBデバイスの初期設定などを行う。
1. Control transfer This is a transfer method mainly for controlling USB devices.
・ Normally, commands and status acquisition for USB devices are performed. With these commands, etc., initialization of the USB device is mainly performed.

2.インターラプト転送
・主に低速度のイベントを通知するために使用される転送方式である。
・基本的に動作はマイクロコンピュータなどの割り込み処理と同様で、USBデバイス側から割り込みが発生する。ただし、ホスト側で割り込みを検出する為には定期的にポーリングを実施する。
・キーボードやマウスなどで使用される。
2. Interrupt transfer This is a transfer method used mainly to notify low-speed events.
-Basically, the operation is the same as interrupt processing of a microcomputer or the like, and an interrupt is generated from the USB device side. However, in order to detect an interrupt on the host side, polling is periodically performed.
-Used with keyboards and mice.

3.バルク転送
・遅延が問題にならない大量データを扱うために使用される転送方式である。
・大量データを扱う場合に使用される。データを保証する為にエラー検出や再送信機能が提供される。
・他の転送方式に比べ優先順位が低く、他の転送の空き時間に使用される。
3. This is a transfer method used to handle large amounts of data where bulk transfer and delay are not an issue.
-Used when handling large amounts of data. In order to guarantee data, error detection and retransmission functions are provided.
・ The priority is lower than other transfer methods, and it is used for free time of other transfers.

4.アイソクロナス転送
・連続的で周期的なデータを扱う場合に使用される。
・一定の転送レートが保証され、リアルタイム性の必要なデータを扱うのに使用される。データの保証や再送信機能などは提供されない。
・動画や音声などのストリーミングデータなどで使用される。
4). Used when isochronous transfer and continuous periodic data are handled.
-A constant transfer rate is guaranteed, and it is used to handle data that requires real-time characteristics. No data guarantee or re-sending function is provided.
-Used for streaming data such as video and audio.

なお、関連する技術として、特許文献1〜5が知られている。例えば、特許文献1及び2は、バルクアウト転送に関する技術である。特許文献1には、USBデバイス側にタイマ機能を持たせ、タイマで設定した一定期間内にデータが受信されない(USBデバイス側の受信データが更新されない)ことを検出してバルクアウト転送の終了を判断する技術が記載されている。   Note that Patent Documents 1 to 5 are known as related techniques. For example, Patent Documents 1 and 2 are techniques relating to bulk-out transfer. In Patent Document 1, a timer function is provided on the USB device side, and it is detected that data is not received within a certain period set by the timer (the received data on the USB device side is not updated), and the bulk-out transfer ends. The technique to judge is described.

また、特許文献2には、各USBデバイスにカウント手段を設け、自己のUSBデバイス宛てのバルクアウト転送をされたときは自己のカウントをクリアし、他のUSBデバイス宛てのバルクアウト転送をされたときは自己のカウントを1上げ、最終的に予め設定した所定値にカウントが達することでバルクアウト転送の終了を判断する技術が記載されている。   In Patent Document 2, each USB device is provided with a counting means, and when the bulk-out transfer addressed to the own USB device is performed, the self-count is cleared and the bulk-out transfer addressed to another USB device is performed. In some cases, a technique is described in which the self count is incremented by 1, and the end of the bulk-out transfer is determined when the count finally reaches a predetermined value set in advance.

特開2003−249965号公報JP 2003-249965 A 特開2006−195607号公報JP 2006-195607 A 特開2011−198046号公報JP 2011-198046 A 特開2009−205271号公報JP 2009-205271 A 特開2002−335260号公報JP 2002-335260 A

上記のように、USBでは、4つの転送モード(転送方式)のいずれかを選択することで、データに適した通信を行うことができる。また、パソコン(ホスト)上では、各種USB装置(デバイス)は同時、且つ各種転送方式で複数同時動作することができる。その為、限られた通信帯域を共有する形となるので、タイムアウトやデータ管理を正しく行なわないとデータ欠損などが発生する。   As described above, in USB, communication suitable for data can be performed by selecting one of four transfer modes (transfer methods). On the personal computer (host), various USB devices (devices) can operate simultaneously and in a plurality of ways using various transfer methods. For this reason, a limited communication band is shared, and data loss or the like occurs if timeout or data management is not performed correctly.

例えば、パソコン(ホスト)またはUSBデバイスが高負荷状態の場合、装置の処理能力が低下するため、転送モードによっては、データを転送できない恐れがある。したがって、関連する技術では、装置の負荷状況などによっては、確実にデータを転送することが困難な場合があるという問題がある。   For example, when a personal computer (host) or a USB device is in a high load state, the processing capacity of the apparatus is reduced, so there is a possibility that data cannot be transferred depending on the transfer mode. Therefore, the related technology has a problem that it may be difficult to reliably transfer data depending on the load state of the apparatus.

本発明は、このような問題に鑑み、より確実にデータを転送することが可能なUSB中継装置、USB中継方法及びUSB中継プログラムを提供することを目的とする。   In view of such problems, an object of the present invention is to provide a USB relay device, a USB relay method, and a USB relay program that can transfer data more reliably.

本発明に係るUSB中継装置は、転送元USB装置と転送先USB装置間の転送モードを判定する転送モード判定部と、前記判定した転送モードに応じて、前記転送先USB装置の代理で、前記転送元USB装置から転送パケットを収集するパケット代理収集部と、前記収集した転送パケットを前記転送先USB装置へ順次転送するパケット転送部と、を備えるものである。   The USB relay device according to the present invention includes a transfer mode determination unit that determines a transfer mode between a transfer source USB device and a transfer destination USB device, and a proxy for the transfer destination USB device according to the determined transfer mode. A packet proxy collection unit that collects transfer packets from the transfer source USB device, and a packet transfer unit that sequentially transfers the collected transfer packets to the transfer destination USB device.

本発明に係るUSB中継方法は、転送元USB装置と転送先USB装置間の転送モードを判定し、前記判定した転送モードに応じて、前記転送先USB装置の代理で、前記転送元USB装置から転送パケットを収集し、前記収集した転送パケットを前記転送先USB装置へ順次転送するものである。   The USB relay method according to the present invention determines a transfer mode between a transfer source USB device and a transfer destination USB device, and performs a transfer from the transfer source USB device on behalf of the transfer destination USB device according to the determined transfer mode. Transfer packets are collected, and the collected transfer packets are sequentially transferred to the transfer destination USB device.

本発明に係るUSB中継プログラムは、転送元USB装置と転送先USB装置間の転送モードを判定し、前記判定した転送モードに応じて、前記転送先USB装置の代理で、前記転送元USB装置から転送パケットを収集し、前記収集した転送パケットを前記転送先USB装置へ順次転送する、USB中継処理をコンピュータに実行させるためのものである。   The USB relay program according to the present invention determines a transfer mode between a transfer source USB device and a transfer destination USB device, and performs a transfer from the transfer source USB device on behalf of the transfer destination USB device according to the determined transfer mode. This is for causing a computer to execute USB relay processing for collecting transfer packets and sequentially transferring the collected transfer packets to the transfer destination USB device.

本発明によれば、より確実にデータを転送することが可能なUSB中継装置、USB中継方法及びUSB中継プログラムを提供することを目的とする。   An object of the present invention is to provide a USB relay device, a USB relay method, and a USB relay program that can transfer data more reliably.

実施の形態に係るUSB中継装置の主要な構成を示すブロック図である。It is a block diagram which shows the main structures of the USB relay apparatus which concerns on embodiment. 実施の形態1に係るUSB中継システムの構成を示す構成図である。1 is a configuration diagram illustrating a configuration of a USB relay system according to a first embodiment. 実施の形態1に係るUSBデータ中継装置の構成を示すブロック図である。1 is a block diagram illustrating a configuration of a USB data relay device according to a first embodiment. 実施の形態1に係るUSBデータ中継装置のデータの流れを説明するための説明図である。6 is an explanatory diagram for explaining a data flow of the USB data relay device according to the first embodiment; FIG. 実施の形態1に係るUSBデータ中継装置のデータの流れを説明するための説明図である。6 is an explanatory diagram for explaining a data flow of the USB data relay device according to the first embodiment; FIG. 実施の形態1に係るUSBデータ中継装置のデータの流れを説明するための説明図である。6 is an explanatory diagram for explaining a data flow of the USB data relay device according to the first embodiment; FIG. 実施の形態1に係るUSB中継システムの動作を示すシーケンスである。4 is a sequence showing an operation of the USB relay system according to the first embodiment. 実施の形態1に係るUSB中継システムの動作を示すシーケンスである。4 is a sequence showing an operation of the USB relay system according to the first embodiment. 実施の形態1に係るUSBデータ中継装置のデータの流れを説明するための説明図である。6 is an explanatory diagram for explaining a data flow of the USB data relay device according to the first embodiment; FIG. 実施の形態1に係るUSB中継システムの動作を示すシーケンスである。4 is a sequence showing an operation of the USB relay system according to the first embodiment. 実施の形態1に係るUSB中継システムの動作を示すシーケンスである。4 is a sequence showing an operation of the USB relay system according to the first embodiment. 実施の形態1に係るUSB中継システムの動作を示すシーケンスである。4 is a sequence showing an operation of the USB relay system according to the first embodiment. 実施の形態1に係るUSBデータ中継装置の動作を示すフローチャートである。3 is a flowchart showing the operation of the USB data relay device according to the first embodiment. 実施の形態2に係るUSB中継システムの構成を示す構成図である。FIG. 6 is a configuration diagram illustrating a configuration of a USB relay system according to a second embodiment. 参考例のUSB中継システムの動作を示すシーケンスである。It is a sequence which shows operation | movement of the USB relay system of a reference example. 実施の形態2に係るUSB中継システムの動作を示すシーケンスである。10 is a sequence showing an operation of the USB relay system according to the second embodiment. 参考例のUSB中継システムの動作を示すシーケンスである。It is a sequence which shows operation | movement of the USB relay system of a reference example. 実施の形態2に係るUSB中継システムの動作を示すシーケンスである。10 is a sequence showing an operation of the USB relay system according to the second embodiment. 実施の形態3に係るUSBデータ中継装置の構成を示すブロック図である。FIG. 10 is a block diagram illustrating a configuration of a USB data relay device according to a third embodiment. 参考例のUSB中継システムの動作を示すシーケンスである。It is a sequence which shows operation | movement of the USB relay system of a reference example. 参考例のUSB中継システムの動作を示すシーケンスである。It is a sequence which shows operation | movement of the USB relay system of a reference example.

(実施の形態の概要)
実施の形態の説明に先立って、実施の形態の主要な課題と構成について説明する。
(Outline of the embodiment)
Prior to the description of the embodiment, main problems and configurations of the embodiment will be described.

例えば、スキャナ装置(イメージスキャナ)などのように、あるイベントを起点に対象データを蓄積するUSBデバイスでは、リアルタイム性が必要(その後、定期的にデータ更新される)で且つその対象データを保証する必要がある。   For example, in a USB device that accumulates target data starting from a certain event, such as a scanner device (image scanner), real-time performance is necessary (the data is periodically updated thereafter) and the target data is guaranteed. There is a need.

この対象データをパソコンで収集する場合、一般に、対象データは「バルクイン転送」により転送される。上記のように、「バルク転送」は、主に大量データの転送を保証するために規定されている。   When this target data is collected by a personal computer, the target data is generally transferred by “bulk-in transfer”. As described above, “bulk transfer” is mainly defined to guarantee transfer of a large amount of data.

しかしながら、パソコンが高負荷状態や同時に複数のUSBデバイスから対象データを収集する場合、一定時間以上掛かってしまうと対象データが保証されない(次のデータに更新される)可能性がある。これは、USB規格において「バルク転送」のデータ処理の優先順位が低いため、他のデータ処理が優先的に実行されることにも起因する。   However, when the target data is collected from a plurality of USB devices at the same time when the personal computer is in a high load state, the target data may not be guaranteed (updated to the next data) if it takes more than a certain time. This is also due to the fact that the priority of data processing of “bulk transfer” is low in the USB standard, so that other data processing is preferentially executed.

図20は、実施の形態適用前の参考例の動作を示し、パソコン1が低処理負荷、もしく低通信負荷時の場合における、パソコン1とUSBデバイス3間のバルク転送フローの時系列シーケンスである。   FIG. 20 shows the operation of the reference example before application of the embodiment, and shows the time series sequence of the bulk transfer flow between the personal computer 1 and the USB device 3 when the personal computer 1 has a low processing load or a low communication load. is there.

USBデバイス3は、生成したデータファイルを保存するための内部メモリ(デバイスメモリ)を備えている。まず、USBデバイス3は、データファイルを生成すると、生成したデータファイルを内部メモリに保存し、データファイル保存期間経過後、新たに次のデータファイルを生成し、この新たなデータファイルで内部メモリを更新する。すなわち、USBデバイス3では、データファイル保存期間経過後は、新たなデータファイルにより内部メモリが更新されるため、以前のデータファイルは消去される。   The USB device 3 includes an internal memory (device memory) for storing the generated data file. First, when the USB device 3 generates a data file, the generated data file is stored in the internal memory, and after the data file storage period has elapsed, a new data file is newly generated, and the internal data is stored in the new data file. Update. That is, in the USB device 3, after the data file storage period has elapsed, the internal memory is updated with a new data file, so the previous data file is deleted.

したがって、通常、パソコン(ホスト)1は、USBデバイス3のデータファイル保存期間経過前にバルクイン転送を行うように動作する。すなわち、図20の例のように、パソコン1が低負荷の場合には、USBデバイス3がデータファイル保存期間の間隔で定期的にデータファイルを更新した後、パソコン1は、速やかにバルクイン転送を行い、各データファイルを確実に収集する。   Accordingly, the personal computer (host) 1 normally operates to perform bulk-in transfer before the data file storage period of the USB device 3 elapses. That is, as in the example of FIG. 20, when the personal computer 1 has a low load, after the USB device 3 periodically updates the data file at the interval of the data file storage period, the personal computer 1 promptly performs bulk-in transfer. Make sure to collect each data file.

すなわち、パソコン1は、データファイルD1保存期間経過前に、バルクイン転送IN1を実行して、データファイルD1を取得し、データファイルD2保存期間経過前に、バルクイン転送IN2を実行して、データファイルD2を取得し、データファイルD3保存期間経過前に、バルクイン転送IN3を実行して、データファイルD3を取得する。   That is, the personal computer 1 executes the bulk-in transfer IN1 to acquire the data file D1 before the storage period of the data file D1 elapses, and executes the bulk-in transfer IN2 before the storage period of the data file D2 elapses. Before the storage period of the data file D3, the bulk-in transfer IN3 is executed to acquire the data file D3.

なお、バルクイン転送を行う場合、パソコン1からUSBデバイス3へバルクイン転送コマンド(指示)を送信した後、USBデバイス3からパソコン1へデータが送信されるが、図20では、バルクイン転送コマンドは省略されている(図21も同様)。   When bulk-in transfer is performed, data is transmitted from the USB device 3 to the personal computer 1 after transmitting a bulk-in transfer command (instruction) from the personal computer 1 to the USB device 3, but in FIG. 20, the bulk-in transfer command is omitted. (The same applies to FIG. 21).

図21は、図20と同じ参考例の動作を示し、パソコン1が高処理負荷、もしくは高通信負荷時の場合における、パソコン1とUSBデバイス3間のバルク転送フローの時系列シーケンスである。   FIG. 21 shows the operation of the same reference example as FIG. 20, and is a time series sequence of the bulk transfer flow between the personal computer 1 and the USB device 3 when the personal computer 1 is under a high processing load or a high communication load.

図21では、パソコン1における処理が高負荷の状態のため、帯域使用の優先度が低いバルク転送については、パソコン1からUSBデバイス3へのバルクイン転送の実行間隔が長くなる。このバルクイン転送の実行間隔がUSBデバイス3におけるデータファイル保存時間を超えてしまうと、USBデバイス3で保持していたデータが消失するため、パソコン1へこの消失したデータを転送することができない。   In FIG. 21, since the processing in the personal computer 1 is in a high load state, the bulk-in transfer execution interval from the personal computer 1 to the USB device 3 becomes long for bulk transfer with low bandwidth use priority. If the execution interval of this bulk-in transfer exceeds the data file storage time in the USB device 3, the data held in the USB device 3 is lost, and the lost data cannot be transferred to the personal computer 1.

すなわち、パソコン1は、データファイルD1保存期間経過前に、バルクイン転送IN1を実行して、データファイルD1を取得しているが、データファイルD2保存期間経過後に、バルクイン転送IN2を実行しているため、データファイルD2は既に消去されており、データファイルD2の代わりにデータファイルD3が取得されている。   That is, the personal computer 1 acquires the data file D1 by executing the bulk-in transfer IN1 before the data file D1 storage period elapses, but executes the bulk-in transfer IN2 after the data file D2 storage period elapses. The data file D2 has already been deleted, and the data file D3 is obtained instead of the data file D2.

このように、実施の形態適用前の参考例では、装置の負荷状況などによっては、バルクイン転送を確実に行うことが困難な場合がある。そこで、実施の形態では、上記のようなデータを保証する為、パソコンの負荷状況に左右されない様に、USBデバイスに蓄積されたデータを確実に収集することを可能とする。   As described above, in the reference example before application of the embodiment, it may be difficult to reliably perform bulk-in transfer depending on the load state of the apparatus. Therefore, in the embodiment, in order to guarantee the data as described above, it is possible to reliably collect the data accumulated in the USB device so as not to be influenced by the load state of the personal computer.

図1は、実施の形態に係るUSB中継装置の主要な構成を示している。図1に示すように、実施の形態に係るUSB中継装置100は、転送モード判定部101、パケット代理収集部102、パケット転送部103を備えている。   FIG. 1 shows a main configuration of the USB relay device according to the embodiment. As illustrated in FIG. 1, the USB relay device 100 according to the embodiment includes a transfer mode determination unit 101, a packet proxy collection unit 102, and a packet transfer unit 103.

転送モード判定部101は、転送元USB装置110と転送先USB装置120間の転送モードを判定する。パケット代理収集部102は、判定した転送モードに応じて、転送先USB装置120の代理で、転送元USB装置110から転送パケットを収集する。パケット転送部103は、収集した転送パケットを転送先USB装置120へ順次転送する。   The transfer mode determination unit 101 determines a transfer mode between the transfer source USB device 110 and the transfer destination USB device 120. The packet proxy collection unit 102 collects transfer packets from the transfer source USB device 110 on behalf of the transfer destination USB device 120 according to the determined transfer mode. The packet transfer unit 103 sequentially transfers the collected transfer packets to the transfer destination USB device 120.

このように、実施の形態では、転送先USB装置(例えばパソコン)と転送元USB装置(例えばUSBデバイス)間のUSB中継装置において、転送モードに応じて転送パケットを転送先USB装置の代理で収集し、収集した転送パケットを転送する。これにより、バルクイン転送などの転送モードであっても、転送先USB装置の負荷状況に関わらず、確実にデータを転送することができる。   As described above, in the embodiment, in a USB relay device between a transfer destination USB device (for example, a personal computer) and a transfer source USB device (for example, a USB device), transfer packets are collected on behalf of the transfer destination USB device according to the transfer mode. And transfer the collected transfer packets. Thus, even in a transfer mode such as bulk-in transfer, data can be transferred reliably regardless of the load status of the transfer destination USB device.

(実施の形態1)
以下、図面を参照して実施の形態1について説明する。図2は、本実施の形態に係るUSB中継システム(USBシステム)の全体の構成を示している。
(Embodiment 1)
The first embodiment will be described below with reference to the drawings. FIG. 2 shows the overall configuration of the USB relay system (USB system) according to the present embodiment.

図2に示すように、本実施の形態に係るUSB中継システムは、パソコン1、USBデータ中継装置2、USBデバイス3を備えている。USBデータ中継装置(USB中継装置)2は、パソコン1とUSBデバイス3との通信路間に接続されている。パソコン1とUSBデータ中継装置2とは、USBケーブル4aを介して接続されており、USBデータ中継装置2とUSBデバイス3とは、USBケーブル4bを介して接続されている。すなわち、パソコン1とUSBデータ中継装置2は、USBケーブル4aを接続するUSBポート(USB端子)を備えており、USBデータ中継装置2とUSBデバイス3は、USBケーブル4bを接続するUSBポート(USB端子)を備えている。   As shown in FIG. 2, the USB relay system according to the present embodiment includes a personal computer 1, a USB data relay device 2, and a USB device 3. A USB data relay device (USB relay device) 2 is connected between communication paths between the personal computer 1 and the USB device 3. The personal computer 1 and the USB data relay device 2 are connected via a USB cable 4a, and the USB data relay device 2 and the USB device 3 are connected via a USB cable 4b. That is, the personal computer 1 and the USB data relay device 2 include a USB port (USB terminal) for connecting the USB cable 4a, and the USB data relay device 2 and the USB device 3 are connected to the USB port (USB for connecting the USB cable 4b). Terminal).

パソコン1は、USBホストの一例であり、USBデータ中継装置2を介して、USBデバイス3と各転送モードによる通信を行う。USBデバイス3は、イメージスキャナやデジタルカメラ等の周辺装置であり、USBデータ中継装置2を介して、パソコン1と各転送モードによる通信を行う。例えば、パソコン1がUSBデータ中継装置2を介してUSBデバイス3を制御することにより、USBデバイス3がイメージを取り込み、取り込んだ画像データを、USBデータ中継装置2を介してパソコン1へ出力する。   The personal computer 1 is an example of a USB host, and communicates with the USB device 3 in each transfer mode via the USB data relay device 2. The USB device 3 is a peripheral device such as an image scanner or a digital camera, and communicates with the personal computer 1 in each transfer mode via the USB data relay device 2. For example, when the personal computer 1 controls the USB device 3 via the USB data relay device 2, the USB device 3 captures an image and outputs the captured image data to the personal computer 1 via the USB data relay device 2.

図3は、本実施の形態に係るUSBデータ中継装置2のブロック構成を示している。図3に示すように、本実施の形態に係るUSBデータ中継装置2は、コマンド分析部21及びセレクタ26を含む調停部24、設定格納バッファ22、データバッファ(FIFO)23、セレクタ25を備えている。   FIG. 3 shows a block configuration of the USB data relay device 2 according to the present embodiment. As shown in FIG. 3, the USB data relay apparatus 2 according to the present embodiment includes an arbitration unit 24 including a command analysis unit 21 and a selector 26, a setting storage buffer 22, a data buffer (FIFO) 23, and a selector 25. Yes.

USBデータ中継装置2は、パソコン1とUSBデバイス3の間に挿入(接続)され、パソコン1とUSBデバイス3の間のデータの流れを監視(コマンド分析部21/設定格納バッファ22)し、転送データの種別によりデータの管理(データバッファ(FIFO)23)と制御(調停部24/セレクタ25)を行なう。   The USB data relay device 2 is inserted (connected) between the personal computer 1 and the USB device 3, monitors the data flow between the personal computer 1 and the USB device 3 (command analysis unit 21 / setting storage buffer 22), and transfers the data. Data management (data buffer (FIFO) 23) and control (arbitration unit 24 / selector 25) are performed according to the type of data.

すなわち、コマンド分析部21は、パソコン1とUSBデバイス3の間で送受信されるコマンド(データ)を分析(解析)し、分析に応じた処理を実行する。例えば、コマンド分析部21は、パソコン1とUSBデバイス3の間の転送モードを判定する転送モード判定部を含んでいる。設定格納バッファ22は、コマンド分析部21にて読み取ったUSB記述子やデータのPID(パケットID)・ADDR(アドレス)・ENDP(エンドポイント)等の転送の情報を格納する。   That is, the command analysis unit 21 analyzes (analyzes) a command (data) transmitted / received between the personal computer 1 and the USB device 3 and executes a process according to the analysis. For example, the command analysis unit 21 includes a transfer mode determination unit that determines a transfer mode between the personal computer 1 and the USB device 3. The setting storage buffer 22 stores transfer information such as USB descriptors read by the command analysis unit 21 and data PID (packet ID), ADDR (address), and ENDP (endpoint).

データバッファ(FIFO)23は、FIFO(First In / First Out;先入れ/先出し)方式のバッファであり、USBデバイス3(またはパソコン1)から受信したデータ(パケット)を一時的に保持する。   The data buffer (FIFO) 23 is a FIFO (First In / First Out) type buffer, and temporarily holds data (packets) received from the USB device 3 (or the personal computer 1).

セレクタ25及びセレクタ26は、パソコン1とUSBデバイス3の間の通信経路を切り替える。セレクタ25及びセレクタ26は、パソコン1−調停部24−USBデバイス3の経路を、パソコン1−データバッファ23−調停部24−USBデバイス3のように、データバッファ(FIFO)23を経由する経路に切り替える。セレクタ25は、パソコン1(パソコン1側のUSB端子)と、調停部24(セレクタ26)またはデータバッファ23の出力端子との接続を切り替える。セレクタ26は、USBデバイス3(USBデバイス3側のUSB端子)と、セレクタ25(パソコン1)またはデータバッファ23の入力端子との接続を切り替える。   The selector 25 and the selector 26 switch the communication path between the personal computer 1 and the USB device 3. The selector 25 and the selector 26 change the path from the personal computer 1 to the arbitration unit 24 to the USB device 3 to the path through the data buffer (FIFO) 23 like the personal computer 1 to the data buffer 23 to the arbitration unit 24 to the USB device 3. Switch. The selector 25 switches connection between the personal computer 1 (USB terminal on the personal computer 1 side) and the arbitration unit 24 (selector 26) or the output terminal of the data buffer 23. The selector 26 switches the connection between the USB device 3 (USB terminal on the USB device 3 side) and the input terminal of the selector 25 (personal computer 1) or the data buffer 23.

調停部24は、転送モードに応じて(例えばバルクイン転送の場合)、パソコン1の代理で、USBデバイス3から転送パケットをデータバッファ(FIFO)23に収集(バッファリング)するパケット代理収集部を含んでおり、例えば、セレクタ26がパケット代理収集部を含んでいてもよい。調停部24は、パケットを代理で収集することにより、パソコン1(またはUSBデバイス3)から見て透過的となるように動作する。調停部24は、転送モードに応じて(例えばバルクイン転送以外の場合)、パソコン1とUSBデバイス3の間のパケットを転送するパケット転送部も含んでいる。また、セレクタ25は、データバッファ(FIFO)23に収集された転送パケットをパソコン1へ順次転送するパケット転送部を含んでいる。   The arbitration unit 24 includes a packet proxy collection unit that collects (buffers) transfer packets from the USB device 3 to the data buffer (FIFO) 23 on behalf of the personal computer 1 in accordance with the transfer mode (for example, in the case of bulk-in transfer). For example, the selector 26 may include a packet proxy collection unit. The arbitration unit 24 operates so as to be transparent when viewed from the personal computer 1 (or the USB device 3) by collecting packets on behalf of the computer. The arbitration unit 24 also includes a packet transfer unit that transfers packets between the personal computer 1 and the USB device 3 in accordance with the transfer mode (for example, other than bulk-in transfer). The selector 25 includes a packet transfer unit that sequentially transfers the transfer packets collected in the data buffer (FIFO) 23 to the personal computer 1.

次に、本実施の形態に係るUSBデータ中継装置2の動作について、データ転送の方向別に説明する。   Next, the operation of the USB data relay device 2 according to the present embodiment will be described for each data transfer direction.

ここでは、データ転送方向をそれぞれ下記の様に定義する。なお、ダウンストリームでは、パソコン1が転送元USB装置であり、USBデバイス3が転送先USB装置である。アップストリームでは、パソコン1が転送先USB装置であり、USBデバイス3が転送元USB装置である。
・パソコン1からUSBデバイス3へのデータ転送方向(下り方向)・・・「ダウンストリーム」
・USBデバイス3からパソコン1へのデータ転送方向(上り方向)・・・「アップストリーム」
Here, the data transfer direction is defined as follows. In the downstream, the personal computer 1 is a transfer source USB device, and the USB device 3 is a transfer destination USB device. In the upstream, the personal computer 1 is a transfer destination USB device, and the USB device 3 is a transfer source USB device.
Data transfer direction from PC 1 to USB device 3 (downward direction) “Downstream”
-Data transfer direction from USB device 3 to personal computer 1 (upstream direction) "Upstream"

図4は、本実施の形態に係るUSBデータ中継装置2における、ダウンストリームのデータの流れであり、転送モードがコントロール転送、インターラプト転送、バルク転送、アイソクロナス転送の場合のデータの流れを示している。   FIG. 4 shows the downstream data flow in the USB data relay apparatus 2 according to the present embodiment, and shows the data flow when the transfer mode is control transfer, interrupt transfer, bulk transfer, or isochronous transfer. Yes.

この場合、図4に示すように、セレクタ25は、パソコン1(パソコン1側のUSB端子)と調停部24(セレクタ26)を接続し、セレクタ26は、USBデバイス3(USBデバイス3側のUSB端子)とセレクタ25(パソコン1)を接続しているため、パソコン1−調停部24−USBデバイス3の経路となる。   In this case, as shown in FIG. 4, the selector 25 connects the personal computer 1 (USB terminal on the personal computer 1 side) and the arbitrating unit 24 (selector 26), and the selector 26 connects the USB device 3 (USB on the USB device 3 side). Terminal) and the selector 25 (the personal computer 1) are connected to each other, and therefore, the route is from the personal computer 1 to the arbitrating unit 24 to the USB device 3.

すなわち、ダウンストリームでは、全てのデータ転送形式のデータがパソコン1からセレクタ25へ入力される。セレクタ25は、入力されたデータを調停部24へ転送し、調停部24は転送されたデータをそのままUSBデバイス3へ出力する。そして、出力された全てのデータ転送形式のデータがUSBデバイス3に到達する。   That is, all data in the data transfer format is input from the personal computer 1 to the selector 25 in the downstream. The selector 25 transfers the input data to the arbitration unit 24, and the arbitration unit 24 outputs the transferred data to the USB device 3 as it is. Then, all of the output data transfer format data reaches the USB device 3.

図5は、本実施の形態に係るUSBデータ中継装置2における、アップストリームのデータの流れであり、転送モードがコントロール転送、インターラプト転送、アイソクロナス転送の場合のデータの流れを示している。この場合、図4と同様に、セレクタ25、セレクタ26の接続により、パソコン1−調停部24−USBデバイス3の経路となる。   FIG. 5 shows the upstream data flow in the USB data relay apparatus 2 according to the present embodiment, and shows the data flow when the transfer mode is control transfer, interrupt transfer, or isochronous transfer. In this case, as in FIG. 4, the connection between the selector 25 and the selector 26 provides a path from the personal computer 1 to the arbitrating unit 24 to the USB device 3.

すなわち、アップストリームでは、コントロール転送、インターラプト転送、アイソクロナス転送のデータがUSBデバイス3から調停部24へ入力される。調停部24は、入力されたデータをセレクタ25へ転送し、セレクタ25は転送されたデータをパソコン1へ出力する。そして、出力されたコントロール転送、インターラプト転送、アイソクロナス転送のデータがパソコン1に到達する。   That is, in the upstream, control transfer, interrupt transfer, and isochronous transfer data are input from the USB device 3 to the arbitration unit 24. The arbitrating unit 24 transfers the input data to the selector 25, and the selector 25 outputs the transferred data to the personal computer 1. Then, the outputted control transfer, interrupt transfer, and isochronous transfer data reaches the personal computer 1.

ここで、図6を用いて、コントロール転送における設定(SETUP)パケット(コマンド)の転送時の動作を説明する。例えば、設定パケットにより、USBデータ中継装置2は、USBデバイス3のコンフィグレーション設定のデータ内容を保持する処理を実行する。この場合、図4及び図5と同様に、セレクタ25、セレクタ26の接続により、パソコン1−調停部24−USBデバイス3の経路となる。   Here, the operation at the time of transfer of the setting (SETUP) packet (command) in the control transfer will be described with reference to FIG. For example, the USB data relay device 2 executes a process for holding the data contents of the configuration setting of the USB device 3 by the setting packet. In this case, as in FIG. 4 and FIG. 5, the connection between the selector 25 and the selector 26 provides a path from the personal computer 1 to the arbitrating unit 24 to the USB device 3.

すなわち、ダウンストリームのデータ(設定パケット)は、パソコン1からセレクタ25を介して調停部24へ入力される。この時、調停部24は、入力されたデータ(設定パケット)をそのままUSBデバイス3へ出力し、出力されたデータがUSBデバイス3に到達する。   That is, downstream data (setting packet) is input from the personal computer 1 to the arbitrating unit 24 via the selector 25. At this time, the arbitrating unit 24 outputs the input data (setting packet) to the USB device 3 as it is, and the output data reaches the USB device 3.

これと同時に、調停部24では、コマンド分析部21が入力された設定パケットを解析する。設定パケットがコンフィグレーション設定のパケットであった場合、コマンド分析部21は、設定格納バッファ22に設定パケットの設定値を保存する。   At the same time, in the arbitration unit 24, the command analysis unit 21 analyzes the input setting packet. When the setting packet is a configuration setting packet, the command analysis unit 21 stores the setting value of the setting packet in the setting storage buffer 22.

同様に、アップストリームのデータ(設定パケット)も、USBデバイス3から調停部24に入力され、調停部24は、入力されたデータを、セレクタ25を経由してパソコン1へ出力し、出力されたデータがパソコン1に到達する。これと同時に、コマンド分析部21は、入力された設定パケットを解析し、設定パケットがコンフィグレーション設定のパケットであった場合、設定格納バッファ22に設定パケットの設定値を保存する。   Similarly, upstream data (setting packet) is also input from the USB device 3 to the arbitration unit 24, and the arbitration unit 24 outputs the input data to the personal computer 1 via the selector 25 and is output. Data reaches the personal computer 1. At the same time, the command analysis unit 21 analyzes the input setting packet and, if the setting packet is a configuration setting packet, stores the setting value of the setting packet in the setting storage buffer 22.

図7は、ダウンストリームのコントロール転送による設定パケットの転送シーケンスであり、図6のパケット毎(設定パケット毎)のデータの流れを時系列に示している。例えば、USBデータ中継装置2は、図7のセットアップコンフィギュレーション(設定、コントロールIN、コントロールOUT、DATA含む)を監視し、送受信されるパラメータを管理/保持する。通常、USBによりデータ通信を行う場合には、まず、コントロール転送によるセットアップコンフィギュレーションにより設定が行われた後、バルク転送などによりデータ通信が行われる。   FIG. 7 shows a transfer sequence of setting packets by downstream control transfer, and shows the data flow for each packet (for each setting packet) in FIG. 6 in time series. For example, the USB data relay device 2 monitors the setup configuration (including setting, control IN, control OUT, and DATA) in FIG. 7, and manages / holds parameters to be transmitted and received. Normally, when performing data communication by USB, first, setting is performed by setup configuration by control transfer, and then data communication is performed by bulk transfer or the like.

まず、トランザクションT101では、パソコン1が設定パケットを送信すると、USBデータ中継装置2(調停部24)はパソコン1から受信した設定パケットを転送し(S101a)、USBデバイス3はUSBデータ中継装置2から設定パケットを受信する。同時に(S101a)、USBデータ中継装置2の内部(コマンド分析部21)では、この設定パケットの内容を分析し、必要な情報(例えば、データのPID・ADDR・ENDP、最大データ長)を設定格納バッファ22に保持する。   First, in the transaction T101, when the personal computer 1 transmits a setting packet, the USB data relay device 2 (arbiter 24) transfers the setting packet received from the personal computer 1 (S101a), and the USB device 3 is transferred from the USB data relay device 2. Receive configuration packets. At the same time (S101a), inside the USB data relay device 2 (command analysis unit 21) analyzes the contents of the setting packet and sets and stores necessary information (for example, data PID / ADDR / ENDP, maximum data length). It is held in the buffer 22.

続いて、USBデータ中継装置2(調停部24)は、パソコン1から送信されたデータパケット(DATA0)をUSBデバイス3へ転送し(S101b)、さらに、USBデバイス3から送信されたACKパケットをパソコン1へ転送する(S101c)。例えば、S101b及びS101cにおいても、S101aと同様に、USBデータ中継装置2の内部(コマンド分析部21)で、データパケット(DATA0)、ACKパケットの内容を分析し、必要な情報を設定格納バッファ22に保持してよい。   Subsequently, the USB data relay device 2 (arbitration unit 24) transfers the data packet (DATA0) transmitted from the personal computer 1 to the USB device 3 (S101b), and further transmits the ACK packet transmitted from the USB device 3 to the personal computer. 1 (S101c). For example, in S101b and S101c, as in S101a, the contents of the data packet (DATA0) and ACK packet are analyzed inside the USB data relay device 2 (command analysis unit 21), and necessary information is set and stored in the buffer 22 You may hold on.

トランザクションT101に続いてトランザクションT102では、パソコン1がコントロールINパケットを送信すると、USBデータ中継装置2(調停部24)はパソコン1から受信したコントロールINパケットを転送し(S102a)、USBデバイス3はUSBデータ中継装置2からコントロールINパケットを受信する。続いて、USBデータ中継装置2(調停部24)はUSBデバイス3から送信されたデータパケット(DATA0)をパソコン1へ転送し(S102b)、さらに、パソコン1から送信されたACKパケットをUSBデバイス3へ転送する(S102c)。例えば、S102a〜S102cにおいても、S101aと同様に、USBデータ中継装置2の内部(コマンド分析部21)で、コントロールINパケット、データパケット(DATA0)、ACKパケットの内容を分析し、必要な情報を設定格納バッファ22に保持してよい。   In transaction T102 following transaction T101, when the personal computer 1 transmits a control IN packet, the USB data relay device 2 (arbitration unit 24) transfers the control IN packet received from the personal computer 1 (S102a), and the USB device 3 is connected to the USB device 3. A control IN packet is received from the data relay device 2. Subsequently, the USB data relay device 2 (arbitration unit 24) transfers the data packet (DATA0) transmitted from the USB device 3 to the personal computer 1 (S102b), and further transmits the ACK packet transmitted from the personal computer 1 to the USB device 3. (S102c). For example, in S102a to S102c, as in S101a, the contents of the control IN packet, data packet (DATA0), and ACK packet are analyzed inside the USB data relay device 2 (command analysis unit 21), and necessary information is obtained. It may be held in the setting storage buffer 22.

トランザクションT102に続いてトランザクションT103では、パソコン1がコントロールOUTパケットを送信すると、USBデータ中継装置2(調停部24)はパソコン1から受信したコントロールOUTパケットを転送し(S103a)、USBデバイス3はUSBデータ中継装置2からコントロールOUTパケットを受信する。続いて、USBデータ中継装置2(調停部24)はパソコン1から送信されたデータパケット(DATA0)をUSBデバイス3へ転送し(S103b)、さらに、USBデバイス3から送信されたACKパケットをパソコン1へ転送する(S103c)。例えば、S103a〜S103cにおいても、S101aと同様に、USBデータ中継装置2の内部(コマンド分析部21)で、コントロールOUTパケット、データパケット(DATA0)、ACKパケットの内容を分析し、必要な情報を設定格納バッファ22に保持してよい。   In transaction T103 following transaction T102, when the personal computer 1 transmits a control OUT packet, the USB data relay device 2 (arbitration unit 24) transfers the control OUT packet received from the personal computer 1 (S103a), and the USB device 3 is connected to the USB device 3. A control OUT packet is received from the data relay device 2. Subsequently, the USB data relay device 2 (arbitration unit 24) transfers the data packet (DATA0) transmitted from the personal computer 1 to the USB device 3 (S103b), and further transmits the ACK packet transmitted from the USB device 3 to the personal computer 1. (S103c). For example, in S103a to S103c, as in S101a, the contents of the control OUT packet, data packet (DATA0), and ACK packet are analyzed inside the USB data relay device 2 (command analysis unit 21), and necessary information is obtained. It may be held in the setting storage buffer 22.

図8は、アップストリームのコントロール転送による設定パケットの転送シーケンスであり、図6のパケット毎(設定パケット毎)のデータの流れを時系列に示している。例えば、図7と同様に、USBデータ中継装置2は、図8のセットアップコンフィギュレーション(設定、コントロールIN、コントロールOUT、DATA含む)を監視し、送受信されるパラメータを管理/保持する。   FIG. 8 shows a transfer sequence of setting packets by upstream control transfer, and shows the data flow for each packet (for each setting packet) in FIG. 6 in time series. For example, as in FIG. 7, the USB data relay apparatus 2 monitors the setup configuration (including setting, control IN, control OUT, and DATA) in FIG. 8, and manages / holds parameters to be transmitted and received.

まず、トランザクションT111では、USBデバイス3が設定パケットを送信すると、USBデータ中継装置2(調停部24)はUSBデバイス3から受信した設定パケットを転送し(S111a)、パソコン1はUSBデータ中継装置2から設定パケットを受信する。同時に(S111a)、USBデータ中継装置2の内部(コマンド分析部21)では、この設定パケットの内容を分析し、必要な情報(例えば、データのPID・ADDR・ENDP、最大データ長)を設定格納バッファ22に保持する。   First, in transaction T111, when the USB device 3 transmits a setting packet, the USB data relay device 2 (arbiter 24) transfers the setting packet received from the USB device 3 (S111a), and the personal computer 1 transfers the USB data relay device 2. Receive configuration packets from. At the same time (S111a), inside the USB data relay device 2 (command analysis unit 21) analyzes the contents of the setting packet and sets and stores necessary information (for example, data PID / ADDR / ENDP, maximum data length). It is held in the buffer 22.

続いて、USBデータ中継装置2(調停部24)は、USBデバイス3から送信されたデータパケット(DATA0)をパソコン1へ転送し(S111b)、さらに、パソコン1から送信されたACKパケットをUSBデバイス3へ転送する(S111c)。例えば、S111b及びS111cにおいても、S111aと同様に、USBデータ中継装置2の内部(コマンド分析部21)で、データパケット(DATA0)、ACKパケットの内容を分析し、必要な情報を保持してよい。   Subsequently, the USB data relay device 2 (arbitration unit 24) transfers the data packet (DATA0) transmitted from the USB device 3 to the personal computer 1 (S111b), and further transmits the ACK packet transmitted from the personal computer 1 to the USB device. 3 (S111c). For example, in S111b and S111c, as in S111a, the contents of the data packet (DATA0) and the ACK packet may be analyzed inside the USB data relay device 2 (command analysis unit 21) to hold necessary information. .

トランザクションT111に続いてトランザクションT112では、USBデバイス3がコントロールINパケットを送信すると、USBデータ中継装置2(調停部24)はUSBデバイス3から受信したコントロールINパケットを転送し(S112a)、パソコン1はUSBデータ中継装置2からコントロールINパケットを受信する。続いて、USBデータ中継装置2(調停部24)はパソコン1から送信されたデータパケット(DATA0)をUSBデバイス3へ転送し(S112b)、さらに、USBデバイス3から送信されたACKパケットをパソコン1へ転送する(S112c)。例えば、S112a〜S112cにおいても、S111aと同様に、USBデータ中継装置2の内部(コマンド分析部21)で、コントロールINパケット、データパケット(DATA0)、ACKパケットの内容を分析し、必要な情報を保持してよい。   In transaction T112 following transaction T111, when the USB device 3 transmits a control IN packet, the USB data relay device 2 (arbitration unit 24) transfers the control IN packet received from the USB device 3 (S112a), and the personal computer 1 A control IN packet is received from the USB data relay device 2. Subsequently, the USB data relay device 2 (arbitration unit 24) transfers the data packet (DATA0) transmitted from the personal computer 1 to the USB device 3 (S112b), and further transmits the ACK packet transmitted from the USB device 3 to the personal computer 1. (S112c). For example, in S112a to S112c, as in S111a, the contents of the control IN packet, data packet (DATA0), and ACK packet are analyzed inside the USB data relay device 2 (command analysis unit 21), and necessary information is obtained. May be held.

トランザクションT112に続いてトランザクションT113では、USBデバイス3がコントロールOUTパケットを送信すると、USBデータ中継装置2(調停部24)はUSBデバイス3から受信したコントロールOUTパケットを転送し(S113a)、パソコン1はUSBデータ中継装置2からコントロールOUTパケットを受信する。続いて、USBデータ中継装置2(調停部24)はUSBデバイス3から送信されたデータパケット(DATA0)をパソコン1へ転送し(S113b)、さらに、パソコン1から送信されたACKパケットをUSBデバイス3へ転送する(S113c)。例えば、S113a〜S113cにおいても、S111aと同様に、USBデータ中継装置2の内部(コマンド分析部21)で、コントロールOUTパケット、データパケット(DATA0)、ACKパケットの内容を分析し、必要な情報を設定格納バッファ22に保持してよい。   In transaction T113 following transaction T112, when the USB device 3 transmits a control OUT packet, the USB data relay device 2 (arbitration unit 24) transfers the control OUT packet received from the USB device 3 (S113a), and the personal computer 1 A control OUT packet is received from the USB data relay device 2. Subsequently, the USB data relay device 2 (arbitration unit 24) transfers the data packet (DATA0) transmitted from the USB device 3 to the personal computer 1 (S113b), and further transmits the ACK packet transmitted from the personal computer 1 to the USB device 3. (S113c). For example, in S113a to S113c, as in S111a, the contents of the control OUT packet, data packet (DATA0), and ACK packet are analyzed in the USB data relay device 2 (command analysis unit 21), and necessary information is obtained. It may be held in the setting storage buffer 22.

図9は、本実施の形態に係るUSBデータ中継装置2における、アップストリームのデータの流れであり、転送モードがバルク転送(バルクイン転送)の場合のデータの流れを示している。   FIG. 9 shows an upstream data flow in the USB data relay apparatus 2 according to the present embodiment, and shows a data flow when the transfer mode is bulk transfer (bulk-in transfer).

バルクイン転送の場合、セレクタ25及び26は接続を切り替える。セレクタ25は、データバッファの出力端子とパソコン1(パソコン1側のUSB端子)とを接続し、セレクタ26は、データバッファの入力端子とUSBデバイス3(USBデバイス3側のUSB端子)とを接続するため、パソコン1−データバッファ(FIFO)23−調停部24−USBデバイス3の経路となる。   In the case of bulk-in transfer, the selectors 25 and 26 switch the connection. The selector 25 connects the output terminal of the data buffer and the personal computer 1 (USB terminal on the personal computer 1 side), and the selector 26 connects the input terminal of the data buffer and the USB device 3 (USB terminal on the USB device 3 side). Therefore, the path of the personal computer 1 -data buffer (FIFO) 23 -arbiter 24 -USB device 3 is provided.

すなわち、バルクイン転送のデータは、USBデバイス3から調停部24に入力される。調停部24は、入力されたデータを、セレクタ26を介してデータバッファ23に転送し、データバッファ23は、転送されたデータを一旦蓄積する。その後、データバッファ23は、先入れ/先出し(FIFO)方式により、蓄積したデータをセレクタ25を介してパソコン1へ出力する。そして、出力されたバルクイン転送のデータがパソコン1に到達する。   That is, the bulk-in transfer data is input from the USB device 3 to the arbitration unit 24. The arbitrating unit 24 transfers the input data to the data buffer 23 via the selector 26, and the data buffer 23 temporarily stores the transferred data. Thereafter, the data buffer 23 outputs the accumulated data to the personal computer 1 via the selector 25 by a first-in / first-out (FIFO) method. Then, the output bulk-in transfer data reaches the personal computer 1.

図10は、バルクイン転送フローにおける転送シーケンスであり、図9のデータ毎の流れを時系列に示している。   FIG. 10 shows a transfer sequence in the bulk-in transfer flow, and shows the flow of each data in FIG. 9 in time series.

まず、トランザクションT101では、パソコン1がバルク転送INパケット(IN0)のコマンドを送信すると、USBデータ中継装置2(調停部24)はパソコン1から受信したバルク転送INパケット(IN0)をスルーしてUSBデバイス3へ転送し(S121a)、USBデバイス3はUSBデータ中継装置2からバルク転送INパケット(IN0)を受信する。   First, in the transaction T101, when the personal computer 1 transmits a bulk transfer IN packet (IN0) command, the USB data relay device 2 (arbitration unit 24) passes through the bulk transfer IN packet (IN0) received from the personal computer 1 and passes through the USB. The data is transferred to the device 3 (S121a), and the USB device 3 receives the bulk transfer IN packet (IN0) from the USB data relay device 2.

続いて、USBデータ中継装置2(調停部24)は、バルク転送INパケット(IN0)に対してUSBデバイス3から送信されたデータパケット(DATA0)を受信し、受信したデータバケット(DATA0)をデータバッファ(FIFO)23に保持するとともに(S121b)、USBデータ中継装置2(調停部24)が自動的にUSBデバイス3へACKパケット(肯定応答)を送信する(S121c)。   Subsequently, the USB data relay device 2 (arbitration unit 24) receives the data packet (DATA0) transmitted from the USB device 3 in response to the bulk transfer IN packet (IN0), and stores the received data bucket (DATA0) as data. The data is held in the buffer (FIFO) 23 (S121b), and the USB data relay device 2 (arbitration unit 24) automatically transmits an ACK packet (acknowledgment) to the USB device 3 (S121c).

さらに、USBデータ中継装置2(例えばセレクタ25)は、データバッファ(FIFO)23に保持されていたデータパケット(DATA0)をパソコン1に送信し(S121d)、データパケット(DATA0)を受信したパソコン1がUSBデータ中継装置2にACKパケット(肯定応答)を送信し、USBデータ中継装置2(例えばセレクタ25)はパソコン1からACKパケットを受信する(S121e)。   Further, the USB data relay device 2 (for example, the selector 25) transmits the data packet (DATA0) held in the data buffer (FIFO) 23 to the personal computer 1 (S121d) and receives the data packet (DATA0). Transmits an ACK packet (acknowledgment) to the USB data relay device 2, and the USB data relay device 2 (for example, the selector 25) receives the ACK packet from the personal computer 1 (S121e).

トランザクションT101に続いてトランザクションT122、T123では、同様に、USBデータ中継装置2は、パソコン1から受信したバルク転送INパケット(IN1、IN2)をUSBデバイス3へ転送し(S122a、S123a)、USBデバイス3から受信したデータパケット(DATA1、DATA2)をデータバッファ(FIFO)23に保持するとともに(S122b、S123b)、USBデバイス3へACKパケットを送信する(S122c、S123c)。さらに、USBデータ中継装置2は、保持されていたデータパケット(DATA1、DATA2)をパソコン1に送信し(S122d、S123d)、パソコン1からACKパケットを受信する(S122e、S123e)。   Similarly, in transactions T122 and T123 following transaction T101, the USB data relay apparatus 2 transfers the bulk transfer IN packet (IN1, IN2) received from the personal computer 1 to the USB device 3 (S122a, S123a), and the USB device. The data packets (DATA1, DATA2) received from 3 are held in the data buffer (FIFO) 23 (S122b, S123b), and an ACK packet is transmitted to the USB device 3 (S122c, S123c). Further, the USB data relay device 2 transmits the held data packets (DATA1, DATA2) to the personal computer 1 (S122d, S123d), and receives an ACK packet from the personal computer 1 (S122e, S123e).

図11は、バルクイン転送フローにおける転送シーケンスの高負荷時の例であり、バルク転送フローとデータバッファ23の変移(状態)を示している。   FIG. 11 shows an example of the transfer sequence in the bulk-in transfer flow when the load is high, and shows the transition (state) of the bulk transfer flow and the data buffer 23.

パソコン1における処理が高負荷になり、パソコン1からUSBデバイス3へのバルク転送INのコマンドの送信間隔が長くなっても、本実施の形態では、USBデータ中継装置2が、パソコン1に代わって、自動的にUSBデバイス3に対しバルク転送を要求してデータを収集しデータバッファ23へ蓄積する。   In the present embodiment, the USB data relay device 2 replaces the personal computer 1 even if the processing in the personal computer 1 becomes heavy and the transmission interval of the bulk transfer IN command from the personal computer 1 to the USB device 3 becomes long. The USB device 3 is automatically requested to perform bulk transfer, and data is collected and stored in the data buffer 23.

まず、トランザクションT131では、図10と同様に、USBデータ中継装置2は、パソコン1から受信したバルク転送INパケット(IN0)をUSBデバイス3へ転送し(S131a)、USBデバイス3から受信したデータパケット(DATA0)をデータバッファ(FIFO)23に保持するとともに(S131b)、USBデバイス3へACKパケットを送信する(S131c)。さらに、USBデータ中継装置2は、データバッファ(FIFO)23に保持されていたデータパケット(DATA0)をパソコン1に送信し(S131d)、パソコン1からACKパケットを受信する(S131e)。このとき、データパケット(DATA0)が転送されたため、データバッファ(FIFO)23に、データパケットは保持されていない。   First, in transaction T131, as in FIG. 10, the USB data relay apparatus 2 transfers the bulk transfer IN packet (IN0) received from the personal computer 1 to the USB device 3 (S131a), and the data packet received from the USB device 3. (DATA0) is held in the data buffer (FIFO) 23 (S131b), and an ACK packet is transmitted to the USB device 3 (S131c). Further, the USB data relay device 2 transmits the data packet (DATA0) held in the data buffer (FIFO) 23 to the personal computer 1 (S131d), and receives an ACK packet from the personal computer 1 (S131e). At this time, since the data packet (DATA0) has been transferred, the data buffer (FIFO) 23 does not hold the data packet.

トランザクションT131に続いてトランザクションT132では、USBデータ中継装置2(調停部24)は、自動的にバルク転送INパケット(IN1)をUSBデバイス3へ送信し(S132a)、USBデバイス3はUSBデータ中継装置2からバルク転送INパケット(IN1)を受信する。続いて、USBデータ中継装置2(調停部24)は、バルク転送INパケット(IN1)に対してUSBデバイス3から送信されたデータパケット(DATA1)を受信し、受信したデータバケット(DATA1)をデータバッファ(FIFO)23に保持するとともに(S132b)、USBデータ中継装置2(調停部24)がUSBデバイス3へACKパケット(肯定応答)を送信する(S132c)。このとき、データパケット(DATA1)が転送されていないため、データバッファ(FIFO)23に、データパケット(DATA1)が保持された状態となる。   In transaction T132 following transaction T131, the USB data relay device 2 (arbiter 24) automatically transmits a bulk transfer IN packet (IN1) to the USB device 3 (S132a), and the USB device 3 is connected to the USB data relay device. 2 receives a bulk transfer IN packet (IN1). Subsequently, the USB data relay device 2 (arbitration unit 24) receives the data packet (DATA1) transmitted from the USB device 3 with respect to the bulk transfer IN packet (IN1), and stores the received data bucket (DATA1) as data. The data is held in the buffer (FIFO) 23 (S132b), and the USB data relay device 2 (arbitration unit 24) transmits an ACK packet (acknowledgment) to the USB device 3 (S132c). At this time, since the data packet (DATA1) has not been transferred, the data packet (DATA1) is held in the data buffer (FIFO) 23.

本実施の形態では、トランザクションT131のシーケンスを定期的に繰り返し実行する。例えば、USBデバイス3における、データ(パケット)の保存期間の間(保存期間内)にバルク転送INパケットを送信するようにする。   In the present embodiment, the sequence of transaction T131 is periodically and repeatedly executed. For example, the bulk transfer IN packet is transmitted during the data (packet) storage period (within the storage period) in the USB device 3.

すなわち、トランザクションT132に続いてトランザクションT133では、トランザクションT132と同様に、USBデータ中継装置2は、バルク転送INパケット(IN2)をUSBデバイス3へ送信し(S133a)、USBデバイス3から送信されたデータパケット(DATA2)を受信し、受信したデータバケット(DATA2)をデータバッファ(FIFO)23に保持するとともに(S133b)、USBデバイス3へACKパケット(肯定応答)を送信する(S133c)。このとき、データパケット(DATA1、DATA2)が転送されていないため、データバッファ(FIFO)23に、データパケット(DATA1、DATA2)が保持された状態となる。   That is, in transaction T133 following transaction T132, as in transaction T132, the USB data relay apparatus 2 transmits a bulk transfer IN packet (IN2) to the USB device 3 (S133a), and the data transmitted from the USB device 3 is transmitted. The packet (DATA2) is received, the received data bucket (DATA2) is held in the data buffer (FIFO) 23 (S133b), and an ACK packet (acknowledgment) is transmitted to the USB device 3 (S133c). At this time, since the data packet (DATA1, DATA2) is not transferred, the data packet (DATA1, DATA2) is held in the data buffer (FIFO) 23.

トランザクションT133に続いてトランザクションT134では、パソコン1がバルク転送INパケット(IN1)を送信し、USBデータ中継装置2(例えばセレクタ25)がバルク転送INパケット(IN1)を受信すると(S134a)、USBデータ中継装置2(例えばセレクタ25)は、データバッファ(FIFO)23に保持されていたデータパケット(DATA1)をパソコン1に送信する(S134b)。データパケット(DATA1)を受信したパソコン1がUSBデータ中継装置2にACKパケット(肯定応答)を送信し、USBデータ中継装置2(例えばセレクタ25)はパソコン1からACKパケットを受信する(S134c)。このとき、データパケット(DATA1)が転送されたため、データバッファ(FIFO)23に、データパケット(DATA2)が保持された状態となる。   In transaction T134 following transaction T133, when the personal computer 1 transmits a bulk transfer IN packet (IN1) and the USB data relay device 2 (for example, the selector 25) receives the bulk transfer IN packet (IN1) (S134a), the USB data The relay device 2 (for example, the selector 25) transmits the data packet (DATA1) held in the data buffer (FIFO) 23 to the personal computer 1 (S134b). The personal computer 1 that has received the data packet (DATA1) transmits an ACK packet (acknowledgment) to the USB data relay device 2, and the USB data relay device 2 (for example, the selector 25) receives the ACK packet from the personal computer 1 (S134c). At this time, since the data packet (DATA1) has been transferred, the data packet (DATA2) is held in the data buffer (FIFO) 23.

トランザクションT134に続いてトランザクションT135では、トランザクションT132と同様に、USBデータ中継装置2は、バルク転送INパケット(IN3)をUSBデバイス3へ送信し(S135a)、USBデバイス3から送信されたデータパケット(DATA3)を受信し、受信したデータバケット(DATA3)をデータバッファ(FIFO)23に保持するとともに(S135b)、USBデバイス3へACKパケット(肯定応答)を送信する(S135c)。このとき、データパケット(DATA2、DATA3)が転送されていないため、データバッファ(FIFO)23に、データパケット(DATA2、DATA3)が保持された状態となる。   In transaction T135 following transaction T134, as in transaction T132, the USB data relay device 2 transmits the bulk transfer IN packet (IN3) to the USB device 3 (S135a), and the data packet transmitted from the USB device 3 ( DATA3) is received, the received data bucket (DATA3) is held in the data buffer (FIFO) 23 (S135b), and an ACK packet (acknowledgment) is transmitted to the USB device 3 (S135c). At this time, since the data packets (DATA2, DATA3) are not transferred, the data packets (DATA2, DATA3) are held in the data buffer (FIFO) 23.

図12は、バルクイン転送フローにおける転送シーケンスの高負荷時の他の例であり、バルク転送フローとデータバッファ23の変移(状態)を示している。   FIG. 12 shows another example of the transfer sequence in the bulk-in transfer flow when the load is high, and shows the transition (state) of the bulk transfer flow and the data buffer 23.

USBデータ中継装置2は自動的にUSBデバイス3からデータを収集するが、データ収集停止条件は、図6のフローで収集された設定パケット(設定パケットデータ)の「転送データサイズ(最大データ長)」と比較し、この値未満のデータサイズとなった場合を終了と判断する。継続して要求されるパソコン1からのバルク転送要求に対してはデータバッファ23に蓄積されたデータを順次転送する。   The USB data relay apparatus 2 automatically collects data from the USB device 3, but the data collection stop condition is “transfer data size (maximum data length) of the setting packet (setting packet data) collected in the flow of FIG. 6. And the data size less than this value is determined as the end. In response to a bulk transfer request from the personal computer 1 that is continuously requested, the data stored in the data buffer 23 is sequentially transferred.

すなわち、図11と同様に、まず、トランザクションT141では、USBデータ中継装置2は、パソコン1から受信したバルク転送INパケット(IN0)をUSBデバイス3へ転送し(S141a)、USBデバイス3から受信したデータパケット(DATA0)をデータバッファ(FIFO)23に保持するとともに(S141b)、USBデバイス3へACKパケットを送信する(S141c)。さらに、USBデータ中継装置2は、データバッファ(FIFO)23に保持されていたデータパケット(DATA0)をパソコン1に送信し(S141d)、パソコン1からACKパケットを受信する(S141e)。   That is, as in FIG. 11, first, in transaction T141, the USB data relay device 2 transfers the bulk transfer IN packet (IN0) received from the personal computer 1 to the USB device 3 (S141a) and receives it from the USB device 3. The data packet (DATA0) is held in the data buffer (FIFO) 23 (S141b), and an ACK packet is transmitted to the USB device 3 (S141c). Further, the USB data relay device 2 transmits the data packet (DATA0) held in the data buffer (FIFO) 23 to the personal computer 1 (S141d) and receives an ACK packet from the personal computer 1 (S141e).

トランザクションT141に続いてトランザクションT142では、USBデータ中継装置2は、自動的にバルク転送INパケット(IN1)をUSBデバイス3へ送信し(S142a)、バルク転送INパケット(IN1)に対してUSBデバイス3から受信したデータバケット(DATA1)をデータバッファ(FIFO)23に保持するとともに(S142b)、USBデバイス3へACKパケットを送信する(S142c)。   In transaction T142 following transaction T141, the USB data relay apparatus 2 automatically transmits the bulk transfer IN packet (IN1) to the USB device 3 (S142a), and the USB device 3 in response to the bulk transfer IN packet (IN1). The data bucket (DATA1) received from is held in the data buffer (FIFO) 23 (S142b), and an ACK packet is transmitted to the USB device 3 (S142c).

さらに、トランザクションT143では、USBデータ中継装置2は、自動的にバルク転送INパケット(IN2)をUSBデバイス3へ送信し(S143a)、バルク転送INパケット(IN2)に対してUSBデバイス3から受信したデータバケット(DATA2)をデータバッファ(FIFO)23に保持するとともに(S143b)、USBデバイス3へACKパケットを送信する(S143c)。   Further, in transaction T143, the USB data relay apparatus 2 automatically transmits the bulk transfer IN packet (IN2) to the USB device 3 (S143a) and receives the bulk transfer IN packet (IN2) from the USB device 3. The data bucket (DATA2) is held in the data buffer (FIFO) 23 (S143b), and an ACK packet is transmitted to the USB device 3 (S143c).

例えば、S142b、S143bにおいて、USBデータ中継装置2(例えば調停部24)は、受信したデータパケット(DATA1、DATA2)のデータサイズが、最大データ長未満、もしくは0バイトの場合、データパケットの自動収集を終了する。また、データサイズが最大データ長の場合は、後続のデータがあると推定されるため、自動収集を続ける。   For example, in S142b and S143b, the USB data relay device 2 (for example, the arbitration unit 24) automatically collects data packets when the data size of the received data packets (DATA1, DATA2) is less than the maximum data length or 0 bytes. Exit. When the data size is the maximum data length, it is estimated that there is subsequent data, and automatic collection is continued.

トランザクションT143に続いて(もしくは並行して)トランザクションT144では、USBデータ中継装置2は、パソコン1からバルク転送INパケット(IN1)を受信すると(S144a)、データバッファ(FIFO)23に保持されていたデータパケット(DATA1)をパソコン1に送信し(S144b)、パソコン1からACKパケットを受信する(S144c)。このとき、データパケット(DATA1)が転送されたため、データバッファ(FIFO)23に、データパケット(DATA2)が保持された状態となる。   Following transaction T143 (or in parallel), in transaction T144, when USB data relay apparatus 2 receives the bulk transfer IN packet (IN1) from personal computer 1 (S144a), it was held in data buffer (FIFO) 23. A data packet (DATA1) is transmitted to the personal computer 1 (S144b), and an ACK packet is received from the personal computer 1 (S144c). At this time, since the data packet (DATA1) has been transferred, the data packet (DATA2) is held in the data buffer (FIFO) 23.

トランザクションT144に続いてトランザクションT145では、USBデータ中継装置2は、パソコン1からバルク転送INパケット(IN2)を受信すると(S145a)、データバッファ(FIFO)23に保持されていたデータパケット(DATA2)をパソコン1に送信し(S145b)、パソコン1からACKパケットを受信する(S145c)。このとき、データパケット(DATA2)が転送されたため、データバッファ(FIFO)23に、データパケット(DATA2)は保持されていない。   In transaction T145 following transaction T144, when the USB data relay apparatus 2 receives the bulk transfer IN packet (IN2) from the personal computer 1 (S145a), the data packet (DATA2) held in the data buffer (FIFO) 23 is received. The data is transmitted to the personal computer 1 (S145b), and an ACK packet is received from the personal computer 1 (S145c). At this time, since the data packet (DATA2) is transferred, the data packet (DATA2) is not held in the data buffer (FIFO) 23.

図13は、本実施の形態に係るUSBデータ中継装置の動作を示すフローチャートであり、バルク転送データの自動的収集処理(図13(a))とバルク転送の終了判定処理(図13(b))を示している。   FIG. 13 is a flowchart showing the operation of the USB data relay apparatus according to the present embodiment. The bulk transfer data automatic collection process (FIG. 13A) and the bulk transfer end determination process (FIG. 13B). ).

図13(a)に示すように、まず、USBデータ中継装置2はUSBデバイス3(またはパソコン1)からパケットを受信すると、調停部24のコマンド分析部21は、受信したパケットの転送モード(パケット転送モード)を判別し(S1)、転送モードがバルク転送か否か判定する(S2)。例えば、図10〜図12のようにバルク転送INパケットを受信した場合、バルク転送モードであると判定する。S2において転送モードがバルク転送以外の場合、調停部24は、受信したパケットをそのままスルーし、パソコン1(またはUSBデバイス3)へ転送する(S10)。   As shown in FIG. 13A, first, when the USB data relay device 2 receives a packet from the USB device 3 (or the personal computer 1), the command analysis unit 21 of the arbitration unit 24 determines the transfer mode (packet) of the received packet. Transfer mode) is determined (S1), and it is determined whether the transfer mode is bulk transfer (S2). For example, when a bulk transfer IN packet is received as shown in FIGS. 10 to 12, it is determined that the bulk transfer mode is set. When the transfer mode is other than bulk transfer in S2, the arbitrating unit 24 passes the received packet as it is and transfers it to the personal computer 1 (or USB device 3) (S10).

また、S2において転送モードがバルク転送であった場合、コマンド分析部21は、受信したパケットのデータ方向を確認し(S3)、データ方向が入力(IN)か否か判定する(S4)。例えば、図10〜図12のようにバルク転送INパケットを受信した場合、入力(IN)であると判定する。S4においてデータ方向が入力(IN)ではない、すなわち、出力(OUT)であった場合、調停部24は、受信したパケットをそのままスルーし、パソコン1(またはUSBデバイス3)へ転送する(S10)。   If the transfer mode is bulk transfer in S2, the command analysis unit 21 checks the data direction of the received packet (S3) and determines whether the data direction is input (IN) (S4). For example, when a bulk transfer IN packet is received as shown in FIGS. 10 to 12, it is determined that the input is IN (IN). If the data direction is not input (IN) in S4, that is, if it is output (OUT), the arbitrating unit 24 passes the received packet as it is and transfers it to the personal computer 1 (or USB device 3) (S10). .

また、S4においてデータ方向が入力(IN)であった場合、調停部24は、データバッファ23を確認(S5)し、データバッファ23のデータの有無を判定する(S6)。S6においてデータバッファ23にデータが有る場合、データバッファ23は、保持しているデータをパソコン1に送信する(S9)。   If the data direction is input (IN) in S4, the arbitrating unit 24 checks the data buffer 23 (S5) and determines whether there is data in the data buffer 23 (S6). If there is data in the data buffer 23 in S6, the data buffer 23 transmits the stored data to the personal computer 1 (S9).

また、S6においてデータバッファ23にデータが無い場合、調停部24(またはコマンド分析部21)は、ターゲット(USBデバイス3)よりデータを取得し(S7)、データバッファ(FIFO)23に取得したデータのバッファリングを開始する(S8)。   If there is no data in the data buffer 23 in S6, the arbitration unit 24 (or command analysis unit 21) acquires data from the target (USB device 3) (S7), and the data acquired in the data buffer (FIFO) 23. Starts buffering (S8).

図13(b)に示すように、S8においてデータのバッファリングが開始されると、まず、調停部24(またはコマンド分析部21)は、ターゲット(USBデバイス3)よりデータを取得し(S11)、取得したデータをデータバッファ(FIFO)23にバッファリングする(S12)。   As shown in FIG. 13B, when data buffering is started in S8, the arbitration unit 24 (or command analysis unit 21) first acquires data from the target (USB device 3) (S11). The acquired data is buffered in the data buffer (FIFO) 23 (S12).

その後、調停部24は、データバッファ23のデータ量(取得したデータのデータサイズ)を確認し(S13)、そのデータ量が最大データ長未満か否か判定する(S14)。S14においてデータ量が最大データ長未満の場合、データバッファ(FIFO)23へのバッファリングを終了し、データバッファ(FIFO)23上のデータを(例えばセレクタ25が)パソコン1に転送する(S9)。   Thereafter, the arbitrating unit 24 checks the data amount (data size of the acquired data) in the data buffer 23 (S13), and determines whether the data amount is less than the maximum data length (S14). If the data amount is less than the maximum data length in S14, the buffering to the data buffer (FIFO) 23 is terminated, and the data on the data buffer (FIFO) 23 is transferred to the personal computer 1 (for example, by the selector 25) (S9). .

また、S14においてデータバッファ23上のデータ量が最大データ長未満ではない場合、すなわち、データ量が最大データ長以上の場合、再びターゲットより残りのデータを取得(S11)する時点にまで戻り、データ量が最大データ長未満(S14)になるまでS11〜S14の処理を定期的に繰り返す。データ量が最大データ量未満(S14)になったとき、データバッファ(FIFO)23上のデータをパソコン1に転送する(S9)。   If the amount of data on the data buffer 23 is not less than the maximum data length in S14, that is, if the amount of data is greater than or equal to the maximum data length, the process returns to the point where the remaining data is acquired again from the target (S11). The processes of S11 to S14 are periodically repeated until the amount becomes less than the maximum data length (S14). When the data amount becomes less than the maximum data amount (S14), the data on the data buffer (FIFO) 23 is transferred to the personal computer 1 (S9).

以上のように、本実施の形態では、パソコンとUSBデバイスの中間にUSBデータ中継装置を挿入するが、データやACKの送信をUSBデータ中継装置が自動的に行うことにより、パソコンとUSBデバイスが直接通信している様に扱うことができる(中間で本装置が介在しているが透過的に扱われる)。   As described above, in this embodiment, the USB data relay device is inserted between the personal computer and the USB device. However, when the USB data relay device automatically transmits data and ACK, It can be handled as if it were communicating directly (the device is in the middle, but it is handled transparently).

USBデバイス側で保持している大量のデータを確実に収集する為、「バルクイン転送」のデータをバッファリングする。このバッファリング機能は「バルクイン転送」を検出した場合、本装置が代理で自主的にUSBデバイスに保持されているデータを収集する機能が実装される(パソコンの負荷状態に依存しない)。パソコンからの「バルクイン転送」要求に応じて本装置が保持したデータを順次転送することにより実現する。   In order to reliably collect a large amount of data held on the USB device side, “bulk-in transfer” data is buffered. When this buffering function detects “bulk-in transfer”, a function is implemented in which the apparatus voluntarily collects data held in the USB device on behalf of the apparatus (independent of the load state of the personal computer). This is realized by sequentially transferring data held by this device in response to a “bulk-in transfer” request from a personal computer.

本実施の形態によれば、パソコンにおける計算負荷の増加や通信帯域不足の発生によりUSBデバイスからパソコンへの一定期間内に確実な「バルクイン転送」が実施できない状況の場合でも、USBデバイスからパソコンへの「バルクイン転送」をUSBデータ中継装置により代理でUSBデバイスからデータ集積を行うことにより、USBデータ中継装置に蓄積されたデータをパソコンに順次送信することで、USBデバイスからのデータ収集を保証することが可能となる。   According to the present embodiment, even in a situation where a reliable “bulk-in transfer” cannot be performed within a certain period from the USB device to the personal computer due to an increase in the calculation load on the personal computer or the occurrence of insufficient communication bandwidth, the USB device to the personal computer. Data collection from the USB device is guaranteed by sequentially transmitting the data stored in the USB data relay device to the personal computer by collecting data from the USB device on behalf of the “bulk-in transfer” of the USB data relay device It becomes possible.

すなわち、パソコンに接続されたUSBデバイスにおいて、USBデバイスから「バルクイン転送」で出力される大量のデータを確実に収集し、かつ効率良く行うことができる。USBデバイスが、あるイベントを起点に蓄積したデータ(例としてイメージスキャナやデジタルカメラ等)を、接続されたパソコンの負荷状態に係わらず確実に、かつ効率良くデータを取得することができる。   That is, in a USB device connected to a personal computer, a large amount of data output from the USB device by “bulk-in transfer” can be reliably collected and efficiently performed. The USB device can reliably and efficiently acquire data accumulated from an event (for example, an image scanner, a digital camera, etc.) regardless of the load state of the connected personal computer.

(実施の形態2)
以下、図面を参照して実施の形態2について説明する。実施の形態1では、USBデータ中継装置2に1つのUSBデバイス3を接続する例について説明したが、図14に示すように、複数のUSBデバイス3(31〜33)を接続してもよい。
(Embodiment 2)
The second embodiment will be described below with reference to the drawings. In the first embodiment, the example in which one USB device 3 is connected to the USB data relay device 2 has been described. However, as shown in FIG. 14, a plurality of USB devices 3 (31 to 33) may be connected.

すなわち、USBデータ中継装置2にハブ機能(同一転送方式を持つ複数のUSBデバイス3を接続できる機能)を持たせてもよいし、更にデータ転送方式が各々異なる複数のUSBデバイス3を接続しても保障されたデータ転送を行えるようにしてもよい。   That is, the USB data relay device 2 may have a hub function (a function capable of connecting a plurality of USB devices 3 having the same transfer method), and a plurality of USB devices 3 having different data transfer methods may be connected. Also, guaranteed data transfer may be performed.

図15は、パソコン1にUSBデバイス31、USBデバイス32、USBデバイス33の3つのUSBデバイス3を接続した参考例における、バルクイン転送フローの転送シーケンスである。   FIG. 15 shows a transfer sequence of a bulk-in transfer flow in a reference example in which three USB devices 3 of a USB device 31, a USB device 32, and a USB device 33 are connected to the personal computer 1.

複数のUSBデバイス3に対してバルクイン転送を実行すると、一つのUSBデバイス3とのバルクイン転送の実行間隔が長くなる。バルクイン転送の実行間隔がUSBデバイス3におけるデータファイル保存時間を超えてしまうと、USBデバイス3で保持していたデータが消失するため、パソコン1へこの消失したデータを転送することができない。   When bulk-in transfer is executed for a plurality of USB devices 3, the execution interval of bulk-in transfer with one USB device 3 becomes longer. If the execution interval of the bulk-in transfer exceeds the data file storage time in the USB device 3, the data held in the USB device 3 is lost, and the lost data cannot be transferred to the personal computer 1.

すなわち、パソコン1は、データファイルD11保存期間経過前に、バルクイン転送IN11を実行して、USBデバイス31からデータファイルD11を取得し、データファイルD21保存期間経過前に、バルクイン転送IN21を実行して、USBデバイス32からデータファイルD21を取得している。   That is, the personal computer 1 executes the bulk-in transfer IN11 before the data file D11 storage period elapses, acquires the data file D11 from the USB device 31, and executes the bulk-in transfer IN21 before the data file D21 storage period elapses. The data file D21 is acquired from the USB device 32.

しかし、データファイルD31保存期間経過後に、バルクイン転送IN31を実行しているため、データファイルD31は既に消去されており、USBデバイス33からデータファイルD31の代わりにデータファイルD32が取得されている。また、データファイルD12保存期間経過後に、バルクイン転送IN12を実行しているため、データファイルD12は既に消去されており、USBデバイス31からデータファイルD12の代わりにデータファイルD13が取得されている。さらに、データファイルD22保存期間経過後に、バルクイン転送IN22を実行しているため、データファイルD22は既に消去されており、USBデバイス32からデータファイルD22の代わりにデータファイルD23が取得されている。   However, since the bulk-in transfer IN31 is executed after the storage period of the data file D31 has elapsed, the data file D31 has already been deleted, and the data file D32 is obtained from the USB device 33 instead of the data file D31. Since the bulk-in transfer IN12 has been executed after the storage period of the data file D12 has elapsed, the data file D12 has already been deleted, and the data file D13 is acquired from the USB device 31 instead of the data file D12. Furthermore, since the bulk-in transfer IN22 has been executed after the storage period of the data file D22 has elapsed, the data file D22 has already been deleted, and the data file D23 is obtained from the USB device 32 instead of the data file D22.

図16は、図14の本実施の形態に係るUSB中継システムの構成における、バルクイン転送フローの転送シーケンスである。   FIG. 16 shows a transfer sequence of the bulk-in transfer flow in the configuration of the USB relay system according to the present embodiment shown in FIG.

実施の形態1では、図11〜図13で説明したように、USBデータ中継装置2が自動的にUSBデバイス3からデータを収集した。図16でも、実施の形態1と同様に、USBデータ中継装置2は、自動的にバルク転送INをUSBデバイス31〜33へ送信し、USBデバイス31〜33から送信されたデータパケット(データファイル)を受信し、受信したデータバケット(データファイル)をデータバッファ(FIFO)23に保持する。   In the first embodiment, as described with reference to FIGS. 11 to 13, the USB data relay device 2 automatically collects data from the USB device 3. Also in FIG. 16, as in the first embodiment, the USB data relay apparatus 2 automatically transmits the bulk transfer IN to the USB devices 31 to 33, and the data packet (data file) transmitted from the USB devices 31 to 33 And the received data bucket (data file) is held in the data buffer (FIFO) 23.

したがって、パソコン1とUSBデバイス31、USBデバイス32、USBデバイス33の通信路間にUSBデータ中継装置2を挿入することで、実施の形態1と同様に転送データの保障が可能となる。   Therefore, by inserting the USB data relay device 2 between the communication paths of the personal computer 1 and the USB device 31, the USB device 32, and the USB device 33, it is possible to guarantee transfer data as in the first embodiment.

すなわち、USBデータ中継装置2は、データファイルD11、D21、D31保存期間経過前に、バルクイン転送INを実行して、USBデバイス31からデータファイルD11を取得し、USBデバイス32からデータファイルD21を取得し、USBデバイス33からデータファイルD31を取得し、データバッファ(FIFO)23に保持する。   In other words, the USB data relay device 2 executes bulk-in transfer IN before the storage period of the data files D11, D21, and D31, acquires the data file D11 from the USB device 31, and acquires the data file D21 from the USB device 32. Then, the data file D 31 is acquired from the USB device 33 and held in the data buffer (FIFO) 23.

同様に、USBデータ中継装置2は、データファイルD12、D22、D32保存期間経過前に、USBデバイス31からデータファイルD12を取得し、USBデバイス32からデータファイルD22を取得し、USBデバイス33からデータファイルD32を取得し、また、データファイルD13、D23、D33保存期間経過前に、USBデバイス31からデータファイルD13を取得し、USBデバイス32からデータファイルD23を取得し、USBデバイス33からデータファイルD33を取得する。   Similarly, the USB data relay device 2 acquires the data file D12 from the USB device 31, acquires the data file D22 from the USB device 32, and transmits data from the USB device 33 before the storage period of the data files D12, D22, and D32 elapses. The file D32 is acquired, and before the storage period of the data files D13, D23, and D33, the data file D13 is acquired from the USB device 31, the data file D23 is acquired from the USB device 32, and the data file D33 is acquired from the USB device 33. To get.

一方、パソコン1は、定期的に、バルクイン転送を実行し、USBデータ中継装置2から、データバッファ(FIFO)23に保持されているデータファイルを順次(D11、D21、D31、D12、D22)、正常に取得する。この場合、USBデータ中継装置2は、パソコン1から要求されるバルクイン転送のUSBデバイス3に対応したデータをデータバッファ(FIFO)23から検索し、データ転送元が一致するデータをパソコン1へ送信することが好ましい。   On the other hand, the personal computer 1 periodically performs bulk-in transfer, and sequentially transfers data files held in the data buffer (FIFO) 23 from the USB data relay device 2 (D11, D21, D31, D12, D22), Obtain normally. In this case, the USB data relay device 2 searches the data buffer (FIFO) 23 for data corresponding to the bulk-in transfer USB device 3 requested from the personal computer 1, and transmits data matching the data transfer source to the personal computer 1. It is preferable.

図17は、パソコン1にUSBデバイス31、USBデバイス32、USBデバイス33の3つのUSBデバイス3を接続した参考例における、複数種類の転送処理フローが発生した場合の転送シーケンスである。   FIG. 17 shows a transfer sequence when a plurality of types of transfer processing flows occur in a reference example in which three USB devices 3, that is, a USB device 31, a USB device 32, and a USB device 33 are connected to the personal computer 1.

複数の転送形式のデータ処理をパソコン1が実行すると、バルク転送のデータ処理の優先順位はその他の種別の転送形式に比べて低いため、バルクイン転送の実行間隔は長くなる。
バルクイン転送の実行間隔がUSBデバイス3におけるデータファイル保存時間を超えてしまうと、USBデバイス3で保持していたデータが消失するため、パソコン1へこの消失したデータを転送することができない。
When the personal computer 1 executes data processing of a plurality of transfer formats, the priority of bulk data processing is lower than that of other types of transfer formats, so the execution interval of bulk-in transfer becomes longer.
If the execution interval of the bulk-in transfer exceeds the data file storage time in the USB device 3, the data held in the USB device 3 is lost, and the lost data cannot be transferred to the personal computer 1.

すなわち、パソコン1は、データファイルD11保存期間経過前に、バルクイン転送IN11を実行して、USBデバイス31からデータファイルD11を取得している。しかし、その後、USBデバイス32に対するインターラプト転送IT2、USBデバイス33に対するアイソクロナス転送IS3が優先的に実行されている。このため、データファイルD12保存期間経過後に、バルクイン転送IN12を実行し、データファイルD12は既に消去されており、USBデバイス31からデータファイルD12の代わりにデータファイルD13が取得されている。   That is, the personal computer 1 acquires the data file D11 from the USB device 31 by executing the bulk-in transfer IN11 before the storage period of the data file D11 elapses. However, thereafter, interrupt transfer IT2 for the USB device 32 and isochronous transfer IS3 for the USB device 33 are preferentially executed. Therefore, after the storage period of the data file D12 has elapsed, the bulk-in transfer IN12 is executed, the data file D12 has already been deleted, and the data file D13 is acquired from the USB device 31 instead of the data file D12.

図18は、図14の本実施の形態に係るUSB中継システムの構成における、複数種類の転送フローの転送シーケンスである。   FIG. 18 shows a transfer sequence of a plurality of types of transfer flows in the configuration of the USB relay system according to the present embodiment shown in FIG.

図18でも、実施の形態1と同様に、バルクイン転送フローのUSBデバイス3から自動的にデータを収集する。すなわち、実施の形態1と同様に、USBデータ中継装置2は、自動的にバルク転送INをUSBデバイス31へ送信し、USBデバイス31から送信されたデータパケット(データファイル)を受信し、受信したデータバケット(データファイル)をデータバッファ(FIFO)23に保持する。   Also in FIG. 18, as in the first embodiment, data is automatically collected from the USB device 3 in the bulk-in transfer flow. That is, as in the first embodiment, the USB data relay apparatus 2 automatically transmits the bulk transfer IN to the USB device 31 and receives and receives the data packet (data file) transmitted from the USB device 31. The data bucket (data file) is held in the data buffer (FIFO) 23.

したがって、パソコン1とUSBデバイス31、USBデバイス32、USBデバイス33の通信路間にUSBデータ中継装置2を挿入することで、実施の形態1と同様に転送データの保障が可能となる。   Therefore, by inserting the USB data relay device 2 between the communication paths of the personal computer 1 and the USB device 31, the USB device 32, and the USB device 33, it is possible to guarantee transfer data as in the first embodiment.

すなわち、USBデータ中継装置2は、データファイルD11保存期間経過前に、バルクイン転送INを実行して、USBデバイス31からデータファイルD11を取得し、データバッファ(FIFO)23に保持する。同様に、USBデータ中継装置2は、データファイルD12保存期間経過前に、USBデバイス31からデータファイルD12を取得し、また、データファイルD13保存期間経過前に、USBデバイス31からデータファイルD13を取得する。   That is, the USB data relay apparatus 2 executes bulk-in transfer IN before the storage period of the data file D11 elapses, acquires the data file D11 from the USB device 31, and holds it in the data buffer (FIFO) 23. Similarly, the USB data relay apparatus 2 acquires the data file D12 from the USB device 31 before the data file D12 storage period elapses, and acquires the data file D13 from the USB device 31 before the data file D13 storage period elapses. To do.

一方、パソコン1は、インターラプト転送、アイソクロナス転送の空いているタイミングで、バルクイン転送を実行し、USBデータ中継装置2から、データバッファ(FIFO)23に保持されているデータファイルを順次(D11、D12、D13)、正常に取得する。   On the other hand, the personal computer 1 executes bulk-in transfer at the timing when interrupt transfer and isochronous transfer are available, and sequentially transfers data files held in the data buffer (FIFO) 23 from the USB data relay device 2 (D11, D12, D13), normally acquired.

(実施の形態3)
以下、図面を参照して実施の形態3について説明する。実施の形態1では、アップストリームのバルク転送(バルクイン転送)のみバッファリング(自動収集)する例について説明を行ったが、その他の転送方式でも同様にバッファリングを行い、データの保障を行うようにしてもよい。例えば、バルク転送以外のコントロール転送、インターラプト転送、アイソクロナス転送についても同様にバッファリングしてもよい。
(Embodiment 3)
The third embodiment will be described below with reference to the drawings. In the first embodiment, an example in which only upstream bulk transfer (bulk-in transfer) is buffered (automatic collection) has been described. However, buffering is similarly performed in other transfer methods to ensure data. May be. For example, control transfer other than bulk transfer, interrupt transfer, and isochronous transfer may be similarly buffered.

また、アップストリームに限らず、ダウンストリームのデータ転送についてもバッファリングを行ってもよい。例えば、図19に示すように、USBデータ中継装置2が、ダウンストリーム用のコマンド分析部21a、セレクタ26a、調停部24a、設定格納バッファ22a、アップストリーム用のコマンド分析部21b、セレクタ26b、調停部24b、設定格納バッファ22bを備えてもよい。これにより、アップストリームとダウンストリーム両方の全種類の転送をバッファリングすることができる。   Further, not only upstream but also downstream data transfer may be buffered. For example, as shown in FIG. 19, the USB data relay device 2 has a downstream command analysis unit 21a, a selector 26a, an arbitration unit 24a, a setting storage buffer 22a, an upstream command analysis unit 21b, a selector 26b, an arbitration. A unit 24b and a setting storage buffer 22b may be provided. This makes it possible to buffer all types of transfers, both upstream and downstream.

なお、本発明は上記実施の形態に限られたものではなく、趣旨を逸脱しない範囲で適宜変更することが可能である。   Note that the present invention is not limited to the above-described embodiment, and can be changed as appropriate without departing from the spirit of the present invention.

上述の実施形態における各構成は、ハードウェア又はソフトウェア、もしくはその両方によって構成され、1つのハードウェア又はソフトウェアから構成してもよいし、複数のハードウェア又はソフトウェアから構成してもよい。USB中継装置の各機能(各処理)を、CPUやメモリ等を有するコンピュータにより実現してもよい。例えば、記憶装置に実施形態におけるUSB中継方法(USB中継処理)を行うためのUSB中継プログラムを格納し、各機能を、記憶装置に格納されたUSB中継プログラムをCPUで実行することにより実現してもよい。   Each configuration in the above-described embodiment is configured by hardware and / or software, and may be configured by one piece of hardware or software, or may be configured by a plurality of pieces of hardware or software. Each function (each process) of the USB relay device may be realized by a computer having a CPU, a memory, and the like. For example, the USB relay program for performing the USB relay method (USB relay processing) in the embodiment is stored in the storage device, and each function is realized by executing the USB relay program stored in the storage device by the CPU. Also good.

これらのプログラムは、様々なタイプの非一時的なコンピュータ可読媒体(non-transitory computer readable medium)を用いて格納され、コンピュータに供給することができる。非一時的なコンピュータ可読媒体は、様々なタイプの実体のある記録媒体(tangible storage medium)を含む。非一時的なコンピュータ可読媒体の例は、磁気記録媒体(例えばフレキシブルディスク、磁気テープ、ハードディスクドライブ)、光磁気記録媒体(例えば光磁気ディスク)、CD−ROM(Read Only Memory)、CD−R、CD−R/W、半導体メモリ(例えば、マスクROM、PROM(Programmable ROM)、EPROM(Erasable PROM)、フラッシュROM、RAM(random access memory))を含む。また、プログラムは、様々なタイプの一時的なコンピュータ可読媒体(transitory computer readable medium)によってコンピュータに供給されてもよい。一時的なコンピュータ可読媒体の例は、電気信号、光信号、及び電磁波を含む。一時的なコンピュータ可読媒体は、電線及び光ファイバ等の有線通信路、又は無線通信路を介して、プログラムをコンピュータに供給できる。   These programs can be stored using various types of non-transitory computer readable media and supplied to a computer. Non-transitory computer readable media include various types of tangible storage media. Examples of non-transitory computer-readable media include magnetic recording media (for example, flexible disks, magnetic tapes, hard disk drives), magneto-optical recording media (for example, magneto-optical disks), CD-ROMs (Read Only Memory), CD-Rs, CD-R / W and semiconductor memory (for example, mask ROM, PROM (Programmable ROM), EPROM (Erasable PROM), flash ROM, RAM (random access memory)) are included. The program may also be supplied to the computer by various types of transitory computer readable media. Examples of transitory computer readable media include electrical signals, optical signals, and electromagnetic waves. The temporary computer-readable medium can supply the program to the computer via a wired communication path such as an electric wire and an optical fiber, or a wireless communication path.

1 パソコン
2 USBデータ中継装置
3、31、32、33 USBデバイス
4a、4b ケーブル
21、21a、21b コマンド分析部
22、22a、22b 設定格納バッファ
23 データバッファ
24、24a、24b 調停部
25 セレクタ
26、26a、26b セレクタ
100 中継装置
101 転送モード判定部
102 パケット代理収集部
103 パケット転送部
110 転送元USB装置
120 転送先USB装置
DESCRIPTION OF SYMBOLS 1 Personal computer 2 USB data relay apparatus 3, 31, 32, 33 USB device 4a, 4b Cable 21, 21a, 21b Command analysis part 22, 22a, 22b Setting storage buffer 23 Data buffer 24, 24a, 24b Arbitration part 25 Selector 26, 26a, 26b selector 100 relay device 101 transfer mode determination unit 102 packet proxy collection unit 103 packet transfer unit 110 transfer source USB device 120 transfer destination USB device

Claims (9)

転送元USB装置と転送先USB装置間の転送モードを判定する転送モード判定部と、
前記判定した転送モードに応じて、前記転送先USB装置の代理で、前記転送元USB装置から転送パケットを収集するパケット代理収集部と、
前記収集した転送パケットを前記転送先USB装置へ順次転送するパケット転送部と、
を備えるUSB中継装置。
A transfer mode determination unit for determining a transfer mode between the transfer source USB device and the transfer destination USB device;
A packet proxy collection unit that collects transfer packets from the transfer source USB device on behalf of the transfer destination USB device according to the determined transfer mode;
A packet transfer unit that sequentially transfers the collected transfer packets to the transfer destination USB device;
USB relay device comprising:
前記パケット代理収集部は、前記転送モードがバルク転送の場合、前記転送元USB装置から前記転送パケットを収集する、
請求項1に記載のUSB中継装置。
The packet proxy collection unit collects the transfer packet from the transfer source USB device when the transfer mode is bulk transfer.
The USB relay device according to claim 1.
前記パケット代理収集部は、前記転送モードがバルクイン転送の場合、前記転送元USB装置から前記転送パケットを収集する、
請求項2に記載のUSB中継装置。
The packet proxy collection unit collects the transfer packet from the transfer source USB device when the transfer mode is bulk-in transfer.
The USB relay device according to claim 2.
前記パケット代理収集部は、前記転送元USB装置から定期的に前記転送パケットを収集する、
請求項1乃至3のいずれか一項に記載のUSB中継装置。
The packet proxy collection unit periodically collects the transfer packets from the transfer source USB device;
The USB relay apparatus as described in any one of Claims 1 thru | or 3.
前記パケット代理収集部は、前記転送元USB装置における前記転送パケットの保存期間の間に前記転送パケットを収集する、
請求項4に記載のUSB中継装置。
The packet proxy collection unit collects the transfer packet during a storage period of the transfer packet in the transfer source USB device;
The USB relay device according to claim 4.
前記パケット代理収集部は、前記収集した転送パケットのデータ長が所定値よりも小さい場合、前記転送パケットの収集を終了する、
請求項4または5に記載のUSB中継装置。
The packet proxy collection unit terminates the collection of the transfer packet when the data length of the collected transfer packet is smaller than a predetermined value;
The USB relay device according to claim 4 or 5.
前記パケット代理収集部は、前記収集した転送パケットを順次保持するバッファを備える、
請求項1乃至6のいずれか一項に記載のUSB中継装置。
The packet proxy collection unit includes a buffer that sequentially holds the collected transfer packets.
The USB relay apparatus as described in any one of Claims 1 thru | or 6.
転送元USB装置と転送先USB装置間の転送モードを判定し、
前記判定した転送モードに応じて、前記転送先USB装置の代理で、前記転送元USB装置から転送パケットを収集し、
前記収集した転送パケットを前記転送先USB装置へ順次転送する、
USB中継方法。
Determine the transfer mode between the source USB device and the destination USB device,
In accordance with the determined transfer mode, collect transfer packets from the transfer source USB device on behalf of the transfer destination USB device,
Sequentially transferring the collected transfer packets to the transfer destination USB device;
USB relay method.
転送元USB装置と転送先USB装置間の転送モードを判定し、
前記判定した転送モードに応じて、前記転送先USB装置の代理で、前記転送元USB装置から転送パケットを収集し、
前記収集した転送パケットを前記転送先USB装置へ順次転送する、
USB中継処理をコンピュータに実行させるためのUSB中継プログラム。
Determine the transfer mode between the source USB device and the destination USB device,
In accordance with the determined transfer mode, collect transfer packets from the transfer source USB device on behalf of the transfer destination USB device,
Sequentially transferring the collected transfer packets to the transfer destination USB device;
A USB relay program for causing a computer to execute USB relay processing.
JP2013211933A 2013-10-09 2013-10-09 USB relay device, USB relay method, and USB relay program Active JP6304739B2 (en)

Priority Applications (1)

Application Number Priority Date Filing Date Title
JP2013211933A JP6304739B2 (en) 2013-10-09 2013-10-09 USB relay device, USB relay method, and USB relay program

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
JP2013211933A JP6304739B2 (en) 2013-10-09 2013-10-09 USB relay device, USB relay method, and USB relay program

Publications (2)

Publication Number Publication Date
JP2015076731A true JP2015076731A (en) 2015-04-20
JP6304739B2 JP6304739B2 (en) 2018-04-04

Family

ID=53001279

Family Applications (1)

Application Number Title Priority Date Filing Date
JP2013211933A Active JP6304739B2 (en) 2013-10-09 2013-10-09 USB relay device, USB relay method, and USB relay program

Country Status (1)

Country Link
JP (1) JP6304739B2 (en)

Cited By (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2018121200A (en) * 2017-01-25 2018-08-02 セイコーエプソン株式会社 Circuit device, electronic apparatus and cable harness
US11368332B2 (en) 2017-01-25 2022-06-21 Seiko Epson Corporation Circuit device, electronic device, and cable harness

Citations (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2007088775A (en) * 2005-09-21 2007-04-05 Oki Electric Ind Co Ltd Radio communication system, device, and method
JP2014168144A (en) * 2013-02-28 2014-09-11 Renesas Electronics Corp Communication method and switching hub

Patent Citations (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2007088775A (en) * 2005-09-21 2007-04-05 Oki Electric Ind Co Ltd Radio communication system, device, and method
JP2014168144A (en) * 2013-02-28 2014-09-11 Renesas Electronics Corp Communication method and switching hub

Cited By (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2018121200A (en) * 2017-01-25 2018-08-02 セイコーエプソン株式会社 Circuit device, electronic apparatus and cable harness
US11368332B2 (en) 2017-01-25 2022-06-21 Seiko Epson Corporation Circuit device, electronic device, and cable harness

Also Published As

Publication number Publication date
JP6304739B2 (en) 2018-04-04

Similar Documents

Publication Publication Date Title
US8898311B2 (en) Data communication method and information processing device
US10412017B2 (en) Transfer device, transfer method, and computer program product
JP6889126B2 (en) Transfer control device, transfer control method and program
KR101596143B1 (en) Flow control with reduced buffer usage for network devices
US8423688B2 (en) Multi-thread file input and output system and multi-thread file input and output program
JP5768683B2 (en) Reception data processing method, communication apparatus, and program
JP5204195B2 (en) Data transmission system and data transmission program
US9961169B1 (en) Implementing autoswitching network protocols for optimal efficiency
US9626273B2 (en) Analysis system including analysis engines executing predetermined analysis and analysis executing part controlling operation of analysis engines and causing analysis engines to execute analysis
JP6304739B2 (en) USB relay device, USB relay method, and USB relay program
JP6004391B2 (en) Sink node device, storage server device, data collection system, data collection method, and program
WO2021073054A1 (en) Data processing method, apparatus and device, and storage medium
JP2007200055A (en) Iscsi communication control method and storage system using it
JP2008269467A (en) Transfer system, initiator device and data transfer method
US9225650B2 (en) Network system, gateway, and packet delivery method
US20150358388A1 (en) Network-specific data downloading to a mobile device
RU2013103144A (en) METHOD, SYSTEM, SERVER, DEVICE, COMPUTER PROGRAM AND COMPUTER SOFTWARE FOR DATA TRANSFER TO A COMPUTER NETWORK
US10628201B2 (en) Analysis method and analysis apparatus
US9948564B2 (en) Data streaming scheduler for dual chipset architectures that includes a high performance chipset and a low performance chipset
KR101341668B1 (en) Controlling data flow through a data communications link
US8842547B2 (en) Communication control apparatus and control method
JP2010009472A (en) Network system, control method for network system, and control program
JP6399105B2 (en) Information processing system, information processing method, information processing apparatus, and control program
WO2011048740A1 (en) Data transmission system, transmission rate controlling method, receiving terminal and transmitting terminal
WO2013065151A1 (en) Computer system, data transmission method, and data transmission program

Legal Events

Date Code Title Description
A621 Written request for application examination

Free format text: JAPANESE INTERMEDIATE CODE: A621

Effective date: 20160905

A977 Report on retrieval

Free format text: JAPANESE INTERMEDIATE CODE: A971007

Effective date: 20170530

A131 Notification of reasons for refusal

Free format text: JAPANESE INTERMEDIATE CODE: A131

Effective date: 20170627

A711 Notification of change in applicant

Free format text: JAPANESE INTERMEDIATE CODE: A712

Effective date: 20170713

A521 Request for written amendment filed

Free format text: JAPANESE INTERMEDIATE CODE: A523

Effective date: 20170825

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

A61 First payment of annual fees (during grant procedure)

Free format text: JAPANESE INTERMEDIATE CODE: A61

Effective date: 20180301

R150 Certificate of patent or registration of utility model

Ref document number: 6304739

Country of ref document: JP

Free format text: JAPANESE INTERMEDIATE CODE: R150