図面 (/)

技術 USB中継装置、USB中継方法及びUSB中継プログラム

出願人 NECプラットフォームズ株式会社
発明者 市川純一西本怜史
出願日 2013年10月9日 (5年11ヶ月経過) 出願番号 2013-211933
公開日 2015年4月20日 (4年5ヶ月経過) 公開番号 2015-076731
状態 特許登録済
技術分野 小規模ネットワーク(3)ループ,バス以外
主要キーワード インターラプト転送 USBバージョン データ転送形式 バルク転送モード 保存期間内 コンフィグレーション設定 パケット転送モード マスクROM
関連する未来課題
重要な関連分野

この項目の情報は公開日時点(2015年4月20日)のものです。
また、この項目は機械的に抽出しているため、正しく解析できていない場合があります

図面 (20)

課題

より確実にデータを転送することが可能なUSB中継装置、USB中継方法及びUSB中継プログラムを提供する。

解決手段

USB中継装置100は、転送元USB装置110と転送先USB装置120間の転送モードを判定する転送モード判定部101と、判定した転送モードに応じて、転送先USB装置120の代理で、転送元USB装置110から転送パケット収集するパケット代理収集部102と、収集した転送パケットを転送先USB装置120へ順次転送するパケット転送部103と、を備える。

概要

背景

近年、パソコンパーソナルコンピュータ)などの電子機器における入出力インタフェースとしてUSB(Universal Serial Bus)が広く利用されている。USB規格準拠することで、様々な周辺装置USBデバイス)をホスト装置USBホスト)に接続し利用することが可能となる。

USBホストとなるパソコンにUSBデバイスを接続すると、パソコンはUSBデバイスのUSB記述子(Descriptor)を取得する。このUSB記述子は、そのUSB装置の「装置種別」「製造メーカ」「USBバージョン」などを含む。パソコンはこの様なUSB記述子の情報からUSB装置や制御するデバイスドライバを特定/設定し、自動的にUSBデバイスを認識/使用することができる状態になる。

また、USBでは、USB装置間のデータ通信方式として、扱うデータの性質に応じて以下の4つのデータ転送種別転送モード)が規定されている。

1.コントロール転送
・主にUSBデバイスの制御を主体とした転送方式である。
・通常は、USBデバイスに対する命令状態取得などを行う。これらの命令などでは、主にUSBデバイスの初期設定などを行う。

2.インターラプト転送
・主に低速度のイベント通知するために使用される転送方式である。
・基本的に動作はマイクロコンピュータなどの割り込み処理と同様で、USBデバイス側から割り込みが発生する。ただし、ホスト側で割り込みを検出する為には定期的にポーリングを実施する。
キーボードマウスなどで使用される。

3.バルク転送
遅延が問題にならない大量データを扱うために使用される転送方式である。
・大量データを扱う場合に使用される。データを保証する為にエラー検出再送信機能が提供される。
・他の転送方式に比べ優先順位が低く、他の転送の空き時間に使用される。

4.アイソクロナス転送
・連続的で周期的なデータを扱う場合に使用される。
・一定の転送レートが保証され、リアルタイム性の必要なデータを扱うのに使用される。データの保証や再送信機能などは提供されない。
動画音声などのストリーミングデータなどで使用される。

なお、関連する技術として、特許文献1〜5が知られている。例えば、特許文献1及び2は、バルクアウト転送に関する技術である。特許文献1には、USBデバイス側にタイマ機能を持たせ、タイマで設定した一定期間内にデータが受信されない(USBデバイス側の受信データが更新されない)ことを検出してバルクアウト転送の終了を判断する技術が記載されている。

また、特許文献2には、各USBデバイスにカウント手段を設け、自己USBデバイス宛てのバルクアウト転送をされたときは自己のカウントをクリアし、他のUSBデバイス宛てのバルクアウト転送をされたときは自己のカウントを1上げ、最終的に予め設定した所定値にカウントが達することでバルクアウト転送の終了を判断する技術が記載されている。

概要

より確実にデータを転送することが可能なUSB中継装置、USB中継方法及びUSB中継プログラムを提供する。USB中継装置100は、転送元USB装置110と転送先USB装置120間の転送モードを判定する転送モード判定部101と、判定した転送モードに応じて、転送先USB装置120の代理で、転送元USB装置110から転送パケット収集するパケット代理収集部102と、収集した転送パケットを転送先USB装置120へ順次転送するパケット転送部103と、を備える。

目的

本発明は、このような問題に鑑み、より確実にデータを転送することが可能なUSB中継装置、USB中継方法及びUSB中継プログラムを提供する

効果

実績

技術文献被引用数
1件
牽制数
0件

この技術が所属する分野

ライセンス契約や譲渡などの可能性がある特許掲載中! 開放特許随時追加・更新中 詳しくはこちら

請求項1

転送元USB装置転送先USB装置間の転送モードを判定する転送モード判定部と、前記判定した転送モードに応じて、前記転送先USB装置の代理で、前記転送元USB装置から転送パケット収集するパケット代理収集部と、前記収集した転送パケットを前記転送先USB装置へ順次転送するパケット転送部と、を備えるUSB中継装置

請求項2

前記パケット代理収集部は、前記転送モードがバルク転送の場合、前記転送元USB装置から前記転送パケットを収集する、請求項1に記載のUSB中継装置。

請求項3

前記パケット代理収集部は、前記転送モードがバルクイン転送の場合、前記転送元USB装置から前記転送パケットを収集する、請求項2に記載のUSB中継装置。

請求項4

前記パケット代理収集部は、前記転送元USB装置から定期的に前記転送パケットを収集する、請求項1乃至3のいずれか一項に記載のUSB中継装置。

請求項5

前記パケット代理収集部は、前記転送元USB装置における前記転送パケットの保存期間の間に前記転送パケットを収集する、請求項4に記載のUSB中継装置。

請求項6

前記パケット代理収集部は、前記収集した転送パケットのデータ長所定値よりも小さい場合、前記転送パケットの収集を終了する、請求項4または5に記載のUSB中継装置。

請求項7

前記パケット代理収集部は、前記収集した転送パケットを順次保持するバッファを備える、請求項1乃至6のいずれか一項に記載のUSB中継装置。

請求項8

転送元USB装置と転送先USB装置間の転送モードを判定し、前記判定した転送モードに応じて、前記転送先USB装置の代理で、前記転送元USB装置から転送パケットを収集し、前記収集した転送パケットを前記転送先USB装置へ順次転送する、USB中継方法

請求項9

転送元USB装置と転送先USB装置間の転送モードを判定し、前記判定した転送モードに応じて、前記転送先USB装置の代理で、前記転送元USB装置から転送パケットを収集し、前記収集した転送パケットを前記転送先USB装置へ順次転送する、USB中継処理コンピュータに実行させるためのUSB中継プログラム

技術分野

0001

本発明は、USB中継装置、USB中継方法及びUSB中継プログラムに関し、特に、転送元USB装置転送先USB装置間で転送処理を行うUSB中継装置、USB中継方法及びUSB中継プログラムに関する。

背景技術

0002

近年、パソコンパーソナルコンピュータ)などの電子機器における入出力インタフェースとしてUSB(Universal Serial Bus)が広く利用されている。USB規格準拠することで、様々な周辺装置USBデバイス)をホスト装置USBホスト)に接続し利用することが可能となる。

0003

USBホストとなるパソコンにUSBデバイスを接続すると、パソコンはUSBデバイスのUSB記述子(Descriptor)を取得する。このUSB記述子は、そのUSB装置の「装置種別」「製造メーカ」「USBバージョン」などを含む。パソコンはこの様なUSB記述子の情報からUSB装置や制御するデバイスドライバを特定/設定し、自動的にUSBデバイスを認識/使用することができる状態になる。

0004

また、USBでは、USB装置間のデータ通信方式として、扱うデータの性質に応じて以下の4つのデータ転送種別転送モード)が規定されている。

0005

1.コントロール転送
・主にUSBデバイスの制御を主体とした転送方式である。
・通常は、USBデバイスに対する命令状態取得などを行う。これらの命令などでは、主にUSBデバイスの初期設定などを行う。

0006

2.インターラプト転送
・主に低速度のイベント通知するために使用される転送方式である。
・基本的に動作はマイクロコンピュータなどの割り込み処理と同様で、USBデバイス側から割り込みが発生する。ただし、ホスト側で割り込みを検出する為には定期的にポーリングを実施する。
キーボードマウスなどで使用される。

0007

3.バルク転送
遅延が問題にならない大量データを扱うために使用される転送方式である。
・大量データを扱う場合に使用される。データを保証する為にエラー検出再送信機能が提供される。
・他の転送方式に比べ優先順位が低く、他の転送の空き時間に使用される。

0008

4.アイソクロナス転送
・連続的で周期的なデータを扱う場合に使用される。
・一定の転送レートが保証され、リアルタイム性の必要なデータを扱うのに使用される。データの保証や再送信機能などは提供されない。
動画音声などのストリーミングデータなどで使用される。

0009

なお、関連する技術として、特許文献1〜5が知られている。例えば、特許文献1及び2は、バルクアウト転送に関する技術である。特許文献1には、USBデバイス側にタイマ機能を持たせ、タイマで設定した一定期間内にデータが受信されない(USBデバイス側の受信データが更新されない)ことを検出してバルクアウト転送の終了を判断する技術が記載されている。

0010

また、特許文献2には、各USBデバイスにカウント手段を設け、自己USBデバイス宛てのバルクアウト転送をされたときは自己のカウントをクリアし、他のUSBデバイス宛てのバルクアウト転送をされたときは自己のカウントを1上げ、最終的に予め設定した所定値にカウントが達することでバルクアウト転送の終了を判断する技術が記載されている。

先行技術

0011

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

発明が解決しようとする課題

0012

上記のように、USBでは、4つの転送モード(転送方式)のいずれかを選択することで、データに適した通信を行うことができる。また、パソコン(ホスト)上では、各種USB装置(デバイス)は同時、且つ各種転送方式で複数同時動作することができる。その為、限られた通信帯域共有する形となるので、タイムアウトデータ管理を正しく行なわないとデータ欠損などが発生する。

0013

例えば、パソコン(ホスト)またはUSBデバイスが高負荷状態の場合、装置の処理能力が低下するため、転送モードによっては、データを転送できない恐れがある。したがって、関連する技術では、装置の負荷状況などによっては、確実にデータを転送することが困難な場合があるという問題がある。

0014

本発明は、このような問題に鑑み、より確実にデータを転送することが可能なUSB中継装置、USB中継方法及びUSB中継プログラムを提供することを目的とする。

課題を解決するための手段

0015

本発明に係るUSB中継装置は、転送元USB装置と転送先USB装置間の転送モードを判定する転送モード判定部と、前記判定した転送モードに応じて、前記転送先USB装置の代理で、前記転送元USB装置から転送パケット収集するパケット代理収集部と、前記収集した転送パケットを前記転送先USB装置へ順次転送するパケット転送部と、を備えるものである。

0016

本発明に係るUSB中継方法は、転送元USB装置と転送先USB装置間の転送モードを判定し、前記判定した転送モードに応じて、前記転送先USB装置の代理で、前記転送元USB装置から転送パケットを収集し、前記収集した転送パケットを前記転送先USB装置へ順次転送するものである。

0017

本発明に係るUSB中継プログラムは、転送元USB装置と転送先USB装置間の転送モードを判定し、前記判定した転送モードに応じて、前記転送先USB装置の代理で、前記転送元USB装置から転送パケットを収集し、前記収集した転送パケットを前記転送先USB装置へ順次転送する、USB中継処理コンピュータに実行させるためのものである。

発明の効果

0018

本発明によれば、より確実にデータを転送することが可能なUSB中継装置、USB中継方法及びUSB中継プログラムを提供することを目的とする。

図面の簡単な説明

0019

実施の形態に係るUSB中継装置の主要な構成を示すブロック図である。
実施の形態1に係るUSB中継システムの構成を示す構成図である。
実施の形態1に係るUSBデータ中継装置の構成を示すブロック図である。
実施の形態1に係るUSBデータ中継装置のデータの流れを説明するための説明図である。
実施の形態1に係るUSBデータ中継装置のデータの流れを説明するための説明図である。
実施の形態1に係るUSBデータ中継装置のデータの流れを説明するための説明図である。
実施の形態1に係るUSB中継システムの動作を示すシーケンスである。
実施の形態1に係るUSB中継システムの動作を示すシーケンスである。
実施の形態1に係るUSBデータ中継装置のデータの流れを説明するための説明図である。
実施の形態1に係るUSB中継システムの動作を示すシーケンスである。
実施の形態1に係るUSB中継システムの動作を示すシーケンスである。
実施の形態1に係るUSB中継システムの動作を示すシーケンスである。
実施の形態1に係るUSBデータ中継装置の動作を示すフローチャートである。
実施の形態2に係るUSB中継システムの構成を示す構成図である。
参考例のUSB中継システムの動作を示すシーケンスである。
実施の形態2に係るUSB中継システムの動作を示すシーケンスである。
参考例のUSB中継システムの動作を示すシーケンスである。
実施の形態2に係るUSB中継システムの動作を示すシーケンスである。
実施の形態3に係るUSBデータ中継装置の構成を示すブロック図である。
参考例のUSB中継システムの動作を示すシーケンスである。
参考例のUSB中継システムの動作を示すシーケンスである。

実施例

0020

(実施の形態の概要
実施の形態の説明に先立って、実施の形態の主要な課題と構成について説明する。

0021

例えば、スキャナ装置イメージスキャナ)などのように、あるイベントを起点に対象データを蓄積するUSBデバイスでは、リアルタイム性が必要(その後、定期的にデータ更新される)で且つその対象データを保証する必要がある。

0022

この対象データをパソコンで収集する場合、一般に、対象データは「バルクイン転送」により転送される。上記のように、「バルク転送」は、主に大量データの転送を保証するために規定されている。

0023

しかしながら、パソコンが高負荷状態や同時に複数のUSBデバイスから対象データを収集する場合、一定時間以上掛かってしまうと対象データが保証されない(次のデータに更新される)可能性がある。これは、USB規格において「バルク転送」のデータ処理の優先順位が低いため、他のデータ処理が優先的に実行されることにも起因する。

0024

図20は、実施の形態適用前の参考例の動作を示し、パソコン1が低処理負荷、もしく低通信負荷時の場合における、パソコン1とUSBデバイス3間のバルク転送フローの時系列シーケンスである。

0025

USBデバイス3は、生成したデータファイルを保存するための内部メモリデバイスメモリ)を備えている。まず、USBデバイス3は、データファイルを生成すると、生成したデータファイルを内部メモリに保存し、データファイル保存期間経過後、新たに次のデータファイルを生成し、この新たなデータファイルで内部メモリを更新する。すなわち、USBデバイス3では、データファイル保存期間経過後は、新たなデータファイルにより内部メモリが更新されるため、以前のデータファイルは消去される。

0026

したがって、通常、パソコン(ホスト)1は、USBデバイス3のデータファイル保存期間経過前にバルクイン転送を行うように動作する。すなわち、図20の例のように、パソコン1が低負荷の場合には、USBデバイス3がデータファイル保存期間の間隔で定期的にデータファイルを更新した後、パソコン1は、速やかにバルクイン転送を行い、各データファイルを確実に収集する。

0027

すなわち、パソコン1は、データファイルD1保存期間経過前に、バルクイン転送IN1を実行して、データファイルD1を取得し、データファイルD2保存期間経過前に、バルクイン転送IN2を実行して、データファイルD2を取得し、データファイルD3保存期間経過前に、バルクイン転送IN3を実行して、データファイルD3を取得する。

0028

なお、バルクイン転送を行う場合、パソコン1からUSBデバイス3へバルクイン転送コマンド(指示)を送信した後、USBデバイス3からパソコン1へデータが送信されるが、図20では、バルクイン転送コマンドは省略されている(図21も同様)。

0029

図21は、図20と同じ参考例の動作を示し、パソコン1が高処理負荷、もしくは高通信負荷時の場合における、パソコン1とUSBデバイス3間のバルク転送フローの時系列シーケンスである。

0030

図21では、パソコン1における処理が高負荷の状態のため、帯域使用優先度が低いバルク転送については、パソコン1からUSBデバイス3へのバルクイン転送の実行間隔が長くなる。このバルクイン転送の実行間隔がUSBデバイス3におけるデータファイル保存時間を超えてしまうと、USBデバイス3で保持していたデータが消失するため、パソコン1へこの消失したデータを転送することができない。

0031

すなわち、パソコン1は、データファイルD1保存期間経過前に、バルクイン転送IN1を実行して、データファイルD1を取得しているが、データファイルD2保存期間経過後に、バルクイン転送IN2を実行しているため、データファイルD2は既に消去されており、データファイルD2の代わりにデータファイルD3が取得されている。

0032

このように、実施の形態適用前の参考例では、装置の負荷状況などによっては、バルクイン転送を確実に行うことが困難な場合がある。そこで、実施の形態では、上記のようなデータを保証する為、パソコンの負荷状況に左右されない様に、USBデバイスに蓄積されたデータを確実に収集することを可能とする。

0033

図1は、実施の形態に係るUSB中継装置の主要な構成を示している。図1に示すように、実施の形態に係るUSB中継装置100は、転送モード判定部101、パケット代理収集部102、パケット転送部103を備えている。

0034

転送モード判定部101は、転送元USB装置110と転送先USB装置120間の転送モードを判定する。パケット代理収集部102は、判定した転送モードに応じて、転送先USB装置120の代理で、転送元USB装置110から転送パケットを収集する。パケット転送部103は、収集した転送パケットを転送先USB装置120へ順次転送する。

0035

このように、実施の形態では、転送先USB装置(例えばパソコン)と転送元USB装置(例えばUSBデバイス)間のUSB中継装置において、転送モードに応じて転送パケットを転送先USB装置の代理で収集し、収集した転送パケットを転送する。これにより、バルクイン転送などの転送モードであっても、転送先USB装置の負荷状況に関わらず、確実にデータを転送することができる。

0036

(実施の形態1)
以下、図面を参照して実施の形態1について説明する。図2は、本実施の形態に係るUSB中継システム(USBシステム)の全体の構成を示している。

0037

図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端子)を備えている。

0038

パソコン1は、USBホストの一例であり、USBデータ中継装置2を介して、USBデバイス3と各転送モードによる通信を行う。USBデバイス3は、イメージスキャナやデジタルカメラ等の周辺装置であり、USBデータ中継装置2を介して、パソコン1と各転送モードによる通信を行う。例えば、パソコン1がUSBデータ中継装置2を介してUSBデバイス3を制御することにより、USBデバイス3がイメージを取り込み、取り込んだ画像データを、USBデータ中継装置2を介してパソコン1へ出力する。

0039

図3は、本実施の形態に係るUSBデータ中継装置2のブロック構成を示している。図3に示すように、本実施の形態に係るUSBデータ中継装置2は、コマンド分析部21及びセレクタ26を含む調停部24、設定格納バッファ22、データバッファ(FIFO)23、セレクタ25を備えている。

0040

USBデータ中継装置2は、パソコン1とUSBデバイス3の間に挿入(接続)され、パソコン1とUSBデバイス3の間のデータの流れを監視(コマンド分析部21/設定格納バッファ22)し、転送データ種別によりデータの管理(データバッファ(FIFO)23)と制御(調停部24/セレクタ25)を行なう。

0041

すなわち、コマンド分析部21は、パソコン1とUSBデバイス3の間で送受信されるコマンド(データ)を分析解析)し、分析に応じた処理を実行する。例えば、コマンド分析部21は、パソコン1とUSBデバイス3の間の転送モードを判定する転送モード判定部を含んでいる。設定格納バッファ22は、コマンド分析部21にて読み取ったUSB記述子やデータのPID(パケットID)・ADDR(アドレス)・ENDPエンドポイント)等の転送の情報を格納する。

0042

データバッファ(FIFO)23は、FIFO(First In / First Out;先入れ/先出し)方式のバッファであり、USBデバイス3(またはパソコン1)から受信したデータ(パケット)を一時的に保持する。

0043

セレクタ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の入力端子との接続を切り替える。

0044

調停部24は、転送モードに応じて(例えばバルクイン転送の場合)、パソコン1の代理で、USBデバイス3から転送パケットをデータバッファ(FIFO)23に収集(バッファリング)するパケット代理収集部を含んでおり、例えば、セレクタ26がパケット代理収集部を含んでいてもよい。調停部24は、パケットを代理で収集することにより、パソコン1(またはUSBデバイス3)から見て透過的となるように動作する。調停部24は、転送モードに応じて(例えばバルクイン転送以外の場合)、パソコン1とUSBデバイス3の間のパケットを転送するパケット転送部も含んでいる。また、セレクタ25は、データバッファ(FIFO)23に収集された転送パケットをパソコン1へ順次転送するパケット転送部を含んでいる。

0045

次に、本実施の形態に係るUSBデータ中継装置2の動作について、データ転送方向別に説明する。

0046

ここでは、データ転送方向をそれぞれ下記の様に定義する。なお、ダウンストリームでは、パソコン1が転送元USB装置であり、USBデバイス3が転送先USB装置である。アップストリームでは、パソコン1が転送先USB装置であり、USBデバイス3が転送元USB装置である。
・パソコン1からUSBデバイス3へのデータ転送方向(下り方向)・・・「ダウンストリーム」
・USBデバイス3からパソコン1へのデータ転送方向(上り方向)・・・「アップストリーム」

0047

図4は、本実施の形態に係るUSBデータ中継装置2における、ダウンストリームのデータの流れであり、転送モードがコントロール転送、インターラプト転送、バルク転送、アイソクロナス転送の場合のデータの流れを示している。

0048

この場合、図4に示すように、セレクタ25は、パソコン1(パソコン1側のUSB端子)と調停部24(セレクタ26)を接続し、セレクタ26は、USBデバイス3(USBデバイス3側のUSB端子)とセレクタ25(パソコン1)を接続しているため、パソコン1−調停部24−USBデバイス3の経路となる。

0049

すなわち、ダウンストリームでは、全てのデータ転送形式のデータがパソコン1からセレクタ25へ入力される。セレクタ25は、入力されたデータを調停部24へ転送し、調停部24は転送されたデータをそのままUSBデバイス3へ出力する。そして、出力された全てのデータ転送形式のデータがUSBデバイス3に到達する。

0050

図5は、本実施の形態に係るUSBデータ中継装置2における、アップストリームのデータの流れであり、転送モードがコントロール転送、インターラプト転送、アイソクロナス転送の場合のデータの流れを示している。この場合、図4と同様に、セレクタ25、セレクタ26の接続により、パソコン1−調停部24−USBデバイス3の経路となる。

0051

すなわち、アップストリームでは、コントロール転送、インターラプト転送、アイソクロナス転送のデータがUSBデバイス3から調停部24へ入力される。調停部24は、入力されたデータをセレクタ25へ転送し、セレクタ25は転送されたデータをパソコン1へ出力する。そして、出力されたコントロール転送、インターラプト転送、アイソクロナス転送のデータがパソコン1に到達する。

0052

ここで、図6を用いて、コントロール転送における設定(SETUP)パケット(コマンド)の転送時の動作を説明する。例えば、設定パケットにより、USBデータ中継装置2は、USBデバイス3のコンフィグレーション設定データ内容を保持する処理を実行する。この場合、図4及び図5と同様に、セレクタ25、セレクタ26の接続により、パソコン1−調停部24−USBデバイス3の経路となる。

0053

すなわち、ダウンストリームのデータ(設定パケット)は、パソコン1からセレクタ25を介して調停部24へ入力される。この時、調停部24は、入力されたデータ(設定パケット)をそのままUSBデバイス3へ出力し、出力されたデータがUSBデバイス3に到達する。

0054

これと同時に、調停部24では、コマンド分析部21が入力された設定パケットを解析する。設定パケットがコンフィグレーション設定のパケットであった場合、コマンド分析部21は、設定格納バッファ22に設定パケットの設定値を保存する。

0055

同様に、アップストリームのデータ(設定パケット)も、USBデバイス3から調停部24に入力され、調停部24は、入力されたデータを、セレクタ25を経由してパソコン1へ出力し、出力されたデータがパソコン1に到達する。これと同時に、コマンド分析部21は、入力された設定パケットを解析し、設定パケットがコンフィグレーション設定のパケットであった場合、設定格納バッファ22に設定パケットの設定値を保存する。

0056

図7は、ダウンストリームのコントロール転送による設定パケットの転送シーケンスであり、図6パケット毎(設定パケット毎)のデータの流れを時系列に示している。例えば、USBデータ中継装置2は、図7セットアップコンフィギュレーション(設定、コントロールIN、コントロールOUTDATA含む)を監視し、送受信されるパラメータを管理/保持する。通常、USBによりデータ通信を行う場合には、まず、コントロール転送によるセットアップコンフィギュレーションにより設定が行われた後、バルク転送などによりデータ通信が行われる。

0057

まず、トランザクションT101では、パソコン1が設定パケットを送信すると、USBデータ中継装置2(調停部24)はパソコン1から受信した設定パケットを転送し(S101a)、USBデバイス3はUSBデータ中継装置2から設定パケットを受信する。同時に(S101a)、USBデータ中継装置2の内部(コマンド分析部21)では、この設定パケットの内容を分析し、必要な情報(例えば、データのPID・ADDR・ENDP、最大データ長)を設定格納バッファ22に保持する。

0058

続いて、USBデータ中継装置2(調停部24)は、パソコン1から送信されたデータパケット(DATA0)をUSBデバイス3へ転送し(S101b)、さらに、USBデバイス3から送信されたACKパケットをパソコン1へ転送する(S101c)。例えば、S101b及びS101cにおいても、S101aと同様に、USBデータ中継装置2の内部(コマンド分析部21)で、データパケット(DATA0)、ACKパケットの内容を分析し、必要な情報を設定格納バッファ22に保持してよい。

0059

トランザクション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に保持してよい。

0060

トランザクション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に保持してよい。

0061

図8は、アップストリームのコントロール転送による設定パケットの転送シーケンスであり、図6のパケット毎(設定パケット毎)のデータの流れを時系列に示している。例えば、図7と同様に、USBデータ中継装置2は、図8のセットアップコンフィギュレーション(設定、コントロールIN、コントロールOUT、DATA含む)を監視し、送受信されるパラメータを管理/保持する。

0062

まず、トランザクションT111では、USBデバイス3が設定パケットを送信すると、USBデータ中継装置2(調停部24)はUSBデバイス3から受信した設定パケットを転送し(S111a)、パソコン1はUSBデータ中継装置2から設定パケットを受信する。同時に(S111a)、USBデータ中継装置2の内部(コマンド分析部21)では、この設定パケットの内容を分析し、必要な情報(例えば、データのPID・ADDR・ENDP、最大データ長)を設定格納バッファ22に保持する。

0063

続いて、USBデータ中継装置2(調停部24)は、USBデバイス3から送信されたデータパケット(DATA0)をパソコン1へ転送し(S111b)、さらに、パソコン1から送信されたACKパケットをUSBデバイス3へ転送する(S111c)。例えば、S111b及びS111cにおいても、S111aと同様に、USBデータ中継装置2の内部(コマンド分析部21)で、データパケット(DATA0)、ACKパケットの内容を分析し、必要な情報を保持してよい。

0064

トランザクション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パケットの内容を分析し、必要な情報を保持してよい。

0065

トランザクション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に保持してよい。

0066

図9は、本実施の形態に係るUSBデータ中継装置2における、アップストリームのデータの流れであり、転送モードがバルク転送(バルクイン転送)の場合のデータの流れを示している。

0067

バルクイン転送の場合、セレクタ25及び26は接続を切り替える。セレクタ25は、データバッファの出力端子とパソコン1(パソコン1側のUSB端子)とを接続し、セレクタ26は、データバッファの入力端子とUSBデバイス3(USBデバイス3側のUSB端子)とを接続するため、パソコン1−データバッファ(FIFO)23−調停部24−USBデバイス3の経路となる。

0068

すなわち、バルクイン転送のデータは、USBデバイス3から調停部24に入力される。調停部24は、入力されたデータを、セレクタ26を介してデータバッファ23に転送し、データバッファ23は、転送されたデータを一旦蓄積する。その後、データバッファ23は、先入れ/先出し(FIFO)方式により、蓄積したデータをセレクタ25を介してパソコン1へ出力する。そして、出力されたバルクイン転送のデータがパソコン1に到達する。

0069

図10は、バルクイン転送フローにおける転送シーケンスであり、図9のデータ毎の流れを時系列に示している。

0070

まず、トランザクションT101では、パソコン1がバルク転送INパケット(IN0)のコマンドを送信すると、USBデータ中継装置2(調停部24)はパソコン1から受信したバルク転送INパケット(IN0)をスルーしてUSBデバイス3へ転送し(S121a)、USBデバイス3はUSBデータ中継装置2からバルク転送INパケット(IN0)を受信する。

0071

続いて、USBデータ中継装置2(調停部24)は、バルク転送INパケット(IN0)に対してUSBデバイス3から送信されたデータパケット(DATA0)を受信し、受信したデータバケット(DATA0)をデータバッファ(FIFO)23に保持するとともに(S121b)、USBデータ中継装置2(調停部24)が自動的にUSBデバイス3へACKパケット(肯定応答)を送信する(S121c)。

0072

さらに、USBデータ中継装置2(例えばセレクタ25)は、データバッファ(FIFO)23に保持されていたデータパケット(DATA0)をパソコン1に送信し(S121d)、データパケット(DATA0)を受信したパソコン1がUSBデータ中継装置2にACKパケット(肯定応答)を送信し、USBデータ中継装置2(例えばセレクタ25)はパソコン1からACKパケットを受信する(S121e)。

0073

トランザクション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)。

0074

図11は、バルクイン転送フローにおける転送シーケンスの高負荷時の例であり、バルク転送フローとデータバッファ23の変移(状態)を示している。

0075

パソコン1における処理が高負荷になり、パソコン1からUSBデバイス3へのバルク転送INのコマンドの送信間隔が長くなっても、本実施の形態では、USBデータ中継装置2が、パソコン1に代わって、自動的にUSBデバイス3に対しバルク転送を要求してデータを収集しデータバッファ23へ蓄積する。

0076

まず、トランザクション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に、データパケットは保持されていない。

0077

トランザクション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)が保持された状態となる。

0078

本実施の形態では、トランザクションT131のシーケンスを定期的に繰り返し実行する。例えば、USBデバイス3における、データ(パケット)の保存期間の間(保存期間内)にバルク転送INパケットを送信するようにする。

0079

すなわち、トランザクション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)が保持された状態となる。

0080

トランザクション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)が保持された状態となる。

0081

トランザクション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)が保持された状態となる。

0082

図12は、バルクイン転送フローにおける転送シーケンスの高負荷時の他の例であり、バルク転送フローとデータバッファ23の変移(状態)を示している。

0083

USBデータ中継装置2は自動的にUSBデバイス3からデータを収集するが、データ収集停止条件は、図6のフローで収集された設定パケット(設定パケットデータ)の「転送データサイズ(最大データ長)」と比較し、この値未満のデータサイズとなった場合を終了と判断する。継続して要求されるパソコン1からのバルク転送要求に対してはデータバッファ23に蓄積されたデータを順次転送する。

0084

すなわち、図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)。

0085

トランザクションT141に続いてトランザクションT142では、USBデータ中継装置2は、自動的にバルク転送INパケット(IN1)をUSBデバイス3へ送信し(S142a)、バルク転送INパケット(IN1)に対してUSBデバイス3から受信したデータバケット(DATA1)をデータバッファ(FIFO)23に保持するとともに(S142b)、USBデバイス3へACKパケットを送信する(S142c)。

0086

さらに、トランザクションT143では、USBデータ中継装置2は、自動的にバルク転送INパケット(IN2)をUSBデバイス3へ送信し(S143a)、バルク転送INパケット(IN2)に対してUSBデバイス3から受信したデータバケット(DATA2)をデータバッファ(FIFO)23に保持するとともに(S143b)、USBデバイス3へACKパケットを送信する(S143c)。

0087

例えば、S142b、S143bにおいて、USBデータ中継装置2(例えば調停部24)は、受信したデータパケット(DATA1、DATA2)のデータサイズが、最大データ長未満、もしくは0バイトの場合、データパケットの自動収集を終了する。また、データサイズが最大データ長の場合は、後続のデータがあると推定されるため、自動収集を続ける。

0088

トランザクションT143に続いて(もしくは並行して)トランザクションT144では、USBデータ中継装置2は、パソコン1からバルク転送INパケット(IN1)を受信すると(S144a)、データバッファ(FIFO)23に保持されていたデータパケット(DATA1)をパソコン1に送信し(S144b)、パソコン1からACKパケットを受信する(S144c)。このとき、データパケット(DATA1)が転送されたため、データバッファ(FIFO)23に、データパケット(DATA2)が保持された状態となる。

0089

トランザクションT144に続いてトランザクションT145では、USBデータ中継装置2は、パソコン1からバルク転送INパケット(IN2)を受信すると(S145a)、データバッファ(FIFO)23に保持されていたデータパケット(DATA2)をパソコン1に送信し(S145b)、パソコン1からACKパケットを受信する(S145c)。このとき、データパケット(DATA2)が転送されたため、データバッファ(FIFO)23に、データパケット(DATA2)は保持されていない。

0090

図13は、本実施の形態に係るUSBデータ中継装置の動作を示すフローチャートであり、バルク転送データの自動的収集処理図13(a))とバルク転送の終了判定処理(図13(b))を示している。

0091

図13(a)に示すように、まず、USBデータ中継装置2はUSBデバイス3(またはパソコン1)からパケットを受信すると、調停部24のコマンド分析部21は、受信したパケットの転送モード(パケット転送モード)を判別し(S1)、転送モードがバルク転送か否か判定する(S2)。例えば、図10図12のようにバルク転送INパケットを受信した場合、バルク転送モードであると判定する。S2において転送モードがバルク転送以外の場合、調停部24は、受信したパケットをそのままスルーし、パソコン1(またはUSBデバイス3)へ転送する(S10)。

0092

また、S2において転送モードがバルク転送であった場合、コマンド分析部21は、受信したパケットのデータ方向を確認し(S3)、データ方向が入力(IN)か否か判定する(S4)。例えば、図10図12のようにバルク転送INパケットを受信した場合、入力(IN)であると判定する。S4においてデータ方向が入力(IN)ではない、すなわち、出力(OUT)であった場合、調停部24は、受信したパケットをそのままスルーし、パソコン1(またはUSBデバイス3)へ転送する(S10)。

0093

また、S4においてデータ方向が入力(IN)であった場合、調停部24は、データバッファ23を確認(S5)し、データバッファ23のデータの有無を判定する(S6)。S6においてデータバッファ23にデータが有る場合、データバッファ23は、保持しているデータをパソコン1に送信する(S9)。

0094

また、S6においてデータバッファ23にデータが無い場合、調停部24(またはコマンド分析部21)は、ターゲット(USBデバイス3)よりデータを取得し(S7)、データバッファ(FIFO)23に取得したデータのバッファリングを開始する(S8)。

0095

図13(b)に示すように、S8においてデータのバッファリングが開始されると、まず、調停部24(またはコマンド分析部21)は、ターゲット(USBデバイス3)よりデータを取得し(S11)、取得したデータをデータバッファ(FIFO)23にバッファリングする(S12)。

0096

その後、調停部24は、データバッファ23のデータ量(取得したデータのデータサイズ)を確認し(S13)、そのデータ量が最大データ長未満か否か判定する(S14)。S14においてデータ量が最大データ長未満の場合、データバッファ(FIFO)23へのバッファリングを終了し、データバッファ(FIFO)23上のデータを(例えばセレクタ25が)パソコン1に転送する(S9)。

0097

また、S14においてデータバッファ23上のデータ量が最大データ長未満ではない場合、すなわち、データ量が最大データ長以上の場合、再びターゲットより残りのデータを取得(S11)する時点にまで戻り、データ量が最大データ長未満(S14)になるまでS11〜S14の処理を定期的に繰り返す。データ量が最大データ量未満(S14)になったとき、データバッファ(FIFO)23上のデータをパソコン1に転送する(S9)。

0098

以上のように、本実施の形態では、パソコンとUSBデバイスの中間にUSBデータ中継装置を挿入するが、データやACKの送信をUSBデータ中継装置が自動的に行うことにより、パソコンとUSBデバイスが直接通信している様に扱うことができる(中間で本装置が介在しているが透過的に扱われる)。

0099

USBデバイス側で保持している大量のデータを確実に収集する為、「バルクイン転送」のデータをバッファリングする。このバッファリング機能は「バルクイン転送」を検出した場合、本装置が代理で自主的にUSBデバイスに保持されているデータを収集する機能が実装される(パソコンの負荷状態に依存しない)。パソコンからの「バルクイン転送」要求に応じて本装置が保持したデータを順次転送することにより実現する。

0100

本実施の形態によれば、パソコンにおける計算負荷の増加や通信帯域不足の発生によりUSBデバイスからパソコンへの一定期間内に確実な「バルクイン転送」が実施できない状況の場合でも、USBデバイスからパソコンへの「バルクイン転送」をUSBデータ中継装置により代理でUSBデバイスからデータ集積を行うことにより、USBデータ中継装置に蓄積されたデータをパソコンに順次送信することで、USBデバイスからのデータ収集を保証することが可能となる。

0101

すなわち、パソコンに接続されたUSBデバイスにおいて、USBデバイスから「バルクイン転送」で出力される大量のデータを確実に収集し、かつ効率良く行うことができる。USBデバイスが、あるイベントを起点に蓄積したデータ(例としてイメージスキャナやデジタルカメラ等)を、接続されたパソコンの負荷状態に係わらず確実に、かつ効率良くデータを取得することができる。

0102

(実施の形態2)
以下、図面を参照して実施の形態2について説明する。実施の形態1では、USBデータ中継装置2に1つのUSBデバイス3を接続する例について説明したが、図14に示すように、複数のUSBデバイス3(31〜33)を接続してもよい。

0103

すなわち、USBデータ中継装置2にハブ機能(同一転送方式を持つ複数のUSBデバイス3を接続できる機能)を持たせてもよいし、更にデータ転送方式が各々異なる複数のUSBデバイス3を接続しても保障されたデータ転送を行えるようにしてもよい。

0104

図15は、パソコン1にUSBデバイス31、USBデバイス32、USBデバイス33の3つのUSBデバイス3を接続した参考例における、バルクイン転送フローの転送シーケンスである。

0105

複数のUSBデバイス3に対してバルクイン転送を実行すると、一つのUSBデバイス3とのバルクイン転送の実行間隔が長くなる。バルクイン転送の実行間隔がUSBデバイス3におけるデータファイル保存時間を超えてしまうと、USBデバイス3で保持していたデータが消失するため、パソコン1へこの消失したデータを転送することができない。

0106

すなわち、パソコン1は、データファイルD11保存期間経過前に、バルクイン転送IN11を実行して、USBデバイス31からデータファイルD11を取得し、データファイルD21保存期間経過前に、バルクイン転送IN21を実行して、USBデバイス32からデータファイルD21を取得している。

0107

しかし、データファイルD31保存期間経過後に、バルクイン転送IN31を実行しているため、データファイルD31は既に消去されており、USBデバイス33からデータファイルD31の代わりにデータファイルD32が取得されている。また、データファイルD12保存期間経過後に、バルクイン転送IN12を実行しているため、データファイルD12は既に消去されており、USBデバイス31からデータファイルD12の代わりにデータファイルD13が取得されている。さらに、データファイルD22保存期間経過後に、バルクイン転送IN22を実行しているため、データファイルD22は既に消去されており、USBデバイス32からデータファイルD22の代わりにデータファイルD23が取得されている。

0108

図16は、図14の本実施の形態に係るUSB中継システムの構成における、バルクイン転送フローの転送シーケンスである。

0109

実施の形態1では、図11図13で説明したように、USBデータ中継装置2が自動的にUSBデバイス3からデータを収集した。図16でも、実施の形態1と同様に、USBデータ中継装置2は、自動的にバルク転送INをUSBデバイス31〜33へ送信し、USBデバイス31〜33から送信されたデータパケット(データファイル)を受信し、受信したデータバケット(データファイル)をデータバッファ(FIFO)23に保持する。

0110

したがって、パソコン1とUSBデバイス31、USBデバイス32、USBデバイス33の通信路間にUSBデータ中継装置2を挿入することで、実施の形態1と同様に転送データの保障が可能となる。

0111

すなわち、USBデータ中継装置2は、データファイルD11、D21、D31保存期間経過前に、バルクイン転送INを実行して、USBデバイス31からデータファイルD11を取得し、USBデバイス32からデータファイルD21を取得し、USBデバイス33からデータファイルD31を取得し、データバッファ(FIFO)23に保持する。

0112

同様に、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を取得する。

0113

一方、パソコン1は、定期的に、バルクイン転送を実行し、USBデータ中継装置2から、データバッファ(FIFO)23に保持されているデータファイルを順次(D11、D21、D31、D12、D22)、正常に取得する。この場合、USBデータ中継装置2は、パソコン1から要求されるバルクイン転送のUSBデバイス3に対応したデータをデータバッファ(FIFO)23から検索し、データ転送元が一致するデータをパソコン1へ送信することが好ましい。

0114

図17は、パソコン1にUSBデバイス31、USBデバイス32、USBデバイス33の3つのUSBデバイス3を接続した参考例における、複数種類の転送処理フローが発生した場合の転送シーケンスである。

0115

複数の転送形式のデータ処理をパソコン1が実行すると、バルク転送のデータ処理の優先順位はその他の種別の転送形式に比べて低いため、バルクイン転送の実行間隔は長くなる。
バルクイン転送の実行間隔がUSBデバイス3におけるデータファイル保存時間を超えてしまうと、USBデバイス3で保持していたデータが消失するため、パソコン1へこの消失したデータを転送することができない。

0116

すなわち、パソコン1は、データファイルD11保存期間経過前に、バルクイン転送IN11を実行して、USBデバイス31からデータファイルD11を取得している。しかし、その後、USBデバイス32に対するインターラプト転送IT2、USBデバイス33に対するアイソクロナス転送IS3が優先的に実行されている。このため、データファイルD12保存期間経過後に、バルクイン転送IN12を実行し、データファイルD12は既に消去されており、USBデバイス31からデータファイルD12の代わりにデータファイルD13が取得されている。

0117

図18は、図14の本実施の形態に係るUSB中継システムの構成における、複数種類の転送フローの転送シーケンスである。

0118

図18でも、実施の形態1と同様に、バルクイン転送フローのUSBデバイス3から自動的にデータを収集する。すなわち、実施の形態1と同様に、USBデータ中継装置2は、自動的にバルク転送INをUSBデバイス31へ送信し、USBデバイス31から送信されたデータパケット(データファイル)を受信し、受信したデータバケット(データファイル)をデータバッファ(FIFO)23に保持する。

0119

したがって、パソコン1とUSBデバイス31、USBデバイス32、USBデバイス33の通信路間にUSBデータ中継装置2を挿入することで、実施の形態1と同様に転送データの保障が可能となる。

0120

すなわち、USBデータ中継装置2は、データファイルD11保存期間経過前に、バルクイン転送INを実行して、USBデバイス31からデータファイルD11を取得し、データバッファ(FIFO)23に保持する。同様に、USBデータ中継装置2は、データファイルD12保存期間経過前に、USBデバイス31からデータファイルD12を取得し、また、データファイルD13保存期間経過前に、USBデバイス31からデータファイルD13を取得する。

0121

一方、パソコン1は、インターラプト転送、アイソクロナス転送の空いているタイミングで、バルクイン転送を実行し、USBデータ中継装置2から、データバッファ(FIFO)23に保持されているデータファイルを順次(D11、D12、D13)、正常に取得する。

0122

(実施の形態3)
以下、図面を参照して実施の形態3について説明する。実施の形態1では、アップストリームのバルク転送(バルクイン転送)のみバッファリング(自動収集)する例について説明を行ったが、その他の転送方式でも同様にバッファリングを行い、データの保障を行うようにしてもよい。例えば、バルク転送以外のコントロール転送、インターラプト転送、アイソクロナス転送についても同様にバッファリングしてもよい。

0123

また、アップストリームに限らず、ダウンストリームのデータ転送についてもバッファリングを行ってもよい。例えば、図19に示すように、USBデータ中継装置2が、ダウンストリーム用のコマンド分析部21a、セレクタ26a、調停部24a、設定格納バッファ22a、アップストリーム用のコマンド分析部21b、セレクタ26b、調停部24b、設定格納バッファ22bを備えてもよい。これにより、アップストリームとダウンストリーム両方の全種類の転送をバッファリングすることができる。

0124

なお、本発明は上記実施の形態に限られたものではなく、趣旨を逸脱しない範囲で適宜変更することが可能である。

0125

上述の実施形態における各構成は、ハードウェア又はソフトウェア、もしくはその両方によって構成され、1つのハードウェア又はソフトウェアから構成してもよいし、複数のハードウェア又はソフトウェアから構成してもよい。USB中継装置の各機能(各処理)を、CPUやメモリ等を有するコンピュータにより実現してもよい。例えば、記憶装置に実施形態におけるUSB中継方法(USB中継処理)を行うためのUSB中継プログラムを格納し、各機能を、記憶装置に格納されたUSB中継プログラムをCPUで実行することにより実現してもよい。

0126

これらのプログラムは、様々なタイプの非一時的なコンピュータ可読媒体(non-transitory computer readable medium)を用いて格納され、コンピュータに供給することができる。非一時的なコンピュータ可読媒体は、様々なタイプの実体のある記録媒体(tangible storage medium)を含む。非一時的なコンピュータ可読媒体の例は、磁気記録媒体(例えばフレキシブルディスク磁気テープハードディスクドライブ)、光磁気記録媒体(例えば光磁気ディスク)、CD−ROM(Read Only Memory)、CD−R、CD−R/W、半導体メモリ(例えば、マスクROMPROM(Programmable ROM)、EPROM(Erasable PROM)、フラッシュROM、RAM(random access memory))を含む。また、プログラムは、様々なタイプの一時的なコンピュータ可読媒体(transitory computer readable medium)によってコンピュータに供給されてもよい。一時的なコンピュータ可読媒体の例は、電気信号光信号、及び電磁波を含む。一時的なコンピュータ可読媒体は、電線及び光ファイバ等の有線通信路、又は無線通信路を介して、プログラムをコンピュータに供給できる。

0127

1パソコン
2 USBデータ中継装置
3、31、32、33USBデバイス
4a、4bケーブル
21、21a、21bコマンド分析部
22、22a、22b 設定格納バッファ
23データバッファ
24、24a、24b調停部
25セレクタ
26、26a、26b セレクタ
100中継装置
101転送モード判定部
102パケット代理収集部
103パケット転送部
110転送元USB装置
120転送先USB装置

ページトップへ

この技術を出願した法人

この技術を発明した人物

ページトップへ

関連する挑戦したい社会課題

関連する公募課題

ページトップへ

技術視点だけで見ていませんか?

この技術の活用可能性がある分野

分野別動向を把握したい方- 事業化視点で見る -

ページトップへ

おススメ サービス

おススメ astavisionコンテンツ

新着 最近 公開された関連が強い技術

この 技術と関連性が強い技術

関連性が強い 技術一覧

この 技術と関連性が強い人物

関連性が強い人物一覧

この 技術と関連する社会課題

関連する挑戦したい社会課題一覧

この 技術と関連する公募課題

関連する公募課題一覧

astavision 新着記事

サイト情報について

本サービスは、国が公開している情報(公開特許公報、特許整理標準化データ等)を元に構成されています。出典元のデータには一部間違いやノイズがあり、情報の正確さについては保証致しかねます。また一時的に、各データの収録範囲や更新周期によって、一部の情報が正しく表示されないことがございます。当サイトの情報を元にした諸問題、不利益等について当方は何ら責任を負いかねることを予めご承知おきのほど宜しくお願い申し上げます。

主たる情報の出典

特許情報…特許整理標準化データ(XML編)、公開特許公報、特許公報、審決公報、Patent Map Guidance System データ