JP2015069324A - デバイスサーバとその制御方法 - Google Patents
デバイスサーバとその制御方法 Download PDFInfo
- Publication number
- JP2015069324A JP2015069324A JP2013201855A JP2013201855A JP2015069324A JP 2015069324 A JP2015069324 A JP 2015069324A JP 2013201855 A JP2013201855 A JP 2013201855A JP 2013201855 A JP2013201855 A JP 2013201855A JP 2015069324 A JP2015069324 A JP 2015069324A
- Authority
- JP
- Japan
- Prior art keywords
- transfer
- data
- isochronous
- client
- device server
- 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
Links
- 238000000034 method Methods 0.000 title claims abstract description 24
- 238000012546 transfer Methods 0.000 claims abstract description 269
- 239000000872 buffer Substances 0.000 claims description 22
- 230000003139 buffering effect Effects 0.000 claims description 5
- 238000013500 data storage Methods 0.000 claims 1
- 230000004044 response Effects 0.000 description 37
- 238000004891 communication Methods 0.000 description 16
- 230000005641 tunneling Effects 0.000 description 16
- 238000010586 diagram Methods 0.000 description 7
- 238000012545 processing Methods 0.000 description 6
- 230000000694 effects Effects 0.000 description 4
- 230000005540 biological transmission Effects 0.000 description 3
- 230000003111 delayed effect Effects 0.000 description 3
- 230000002411 adverse Effects 0.000 description 2
- 230000002776 aggregation Effects 0.000 description 2
- 238000004220 aggregation Methods 0.000 description 2
- 239000000284 extract Substances 0.000 description 2
- 230000002093 peripheral effect Effects 0.000 description 2
- 230000001052 transient effect Effects 0.000 description 2
- 230000005856 abnormality Effects 0.000 description 1
- 230000007423 decrease Effects 0.000 description 1
- 238000012986 modification Methods 0.000 description 1
- 230000004048 modification Effects 0.000 description 1
- 230000008569 process Effects 0.000 description 1
- 238000011084 recovery Methods 0.000 description 1
- 230000009467 reduction Effects 0.000 description 1
Abstract
Description
Area Network)または無線LANなどのネットワークを通じて、コンピュータ周辺機器であるUSB(Universal Serial Bus)デバイスを当該ネットワークに接続しているコンピュータ端末(クライアント)から利用することのできるデバイスサーバシステムが知られている(特許文献1、非特許文献1を参照)。
特許文献2に開示された制御方法によれば、クライアントは、USBデバイスからの応答情報の遅延(受信待ち)によって、次のアイソクロナス転送要求の処理が停滞することがなくなるため、アイソクロナス出力転送で保証する最低限のデータ転送量を維持することができ、また、デバイスサーバからネットワーク上に応答情報が送出されなくなるので、ネットワークトラフィックの低減を図ることができる。
しかしながら、デバイスサーバは、USBデバイスからの応答情報を破棄してクライアントへ返送しないように制御することから、USBデバイスからの応答情報が回復不能なエラー(致命的なエラー)の場合であっても、クライアントは次のアイソクロナス転送要求を送出することになり、好ましくないという問題がある。
特許文献3に開示された制御方法によれば、クライアントは、USBデバイスからの応答情報の遅延(受信待ち)によって、次のアイソクロナス転送要求の処理が停滞することがなくなるため、アイソクロナス出力転送で保証する最低限のデータ転送量を維持することができる。
しかし、特に無線LANの場合は電波状況によりネットワークのリンク切れやアグリゲーションの弊害によってネットワーク転送が滞り、クライアントによる数百ミリ秒の先読みだけでは担保できないことがある。
クライアントは、USBデバイスのステータスに関する応答をデバイスサーバ経由で受信するため、こうした回復不能でないエラーにも関わらず、クライアントはデバイスサーバとのセッションを切断してしまい、アイソクロナス転送は終了してしまう。
また、アイソクロナス出力転送結果において回復不能なエラーとは、デバイスの故障や電源OFFによるデータ通信プロトコルのエラーであり、一方、回復不能ではないエラーとは、前述のようにデータ転送スケジューラのバッファに空きがないためのデータフローによるエラーである。
本発明のデバイスサーバは、スケジューリングできなかったアイソクロナス出力データをデバイスサーバ内でバッファリングしておき、先のアイソクロナス出力転送完了時に再スケジュールすることで、出力データを途切れなく転送する。無線LANのようにネットワークのリンク切れやアグリゲーションの弊害でデータ転送が滞るような事象が発生する場合に、特に効果を期待することができる。
また、バッファリングされた転送データを再びアイソクロナス出力転送するタイミングとして、「クライアントから次のアイソクロナス出力転送要求を受信したとき」とするのは、クライアントのアイソクロナス出力転送のスケジュールと同期させるためである。
デバイスに対してアイソクロナス転送で保証すべきデータ転送量を維持するために、バッファリングされた転送データをダミーデータとして、デバイスに対してアイソクロナス出力転送を行う。
1)クライアントからアイソクロナス出力転送要求を受信する転送要求受信ステップと、要求された転送データをバッファリングする転送データ保存ステップ
2)ローカル接続されたデバイスに対してアイソクロナス出力転送を行う出力転送ステップ
3)アイソクロナス出力転送結果が正常完了または回復不能なエラーの何れでもない場合に、バッファリングされた転送データをデバイスに対して再びアイソクロナス出力転送する再転送ステップ
図1に示すデバイスサーバシステムでは、クライアント20からネットワーク40経由でデバイスサーバ10にローカル接続されているUSBデバイス30を制御する。
なお、ネットワーク40は、有線もしくは無線のネットワークである。また図1では、クライアント20とデバイスサーバ10は1:1で接続されているが、それぞれ複数存在し、N:1、1:N、N:M(N,Mは2以上の自然数)で接続されるものでもよい。また、デバイスサーバ10にローカル接続されるUSBデバイスは2台以上でもよい。
このクライアント20には、外部記憶部に格納され、実行時にメモリに搭載されるアプリケーション21とデバイスドライバ22とUSBクラスドライバ23とトンネリングドライバ24がソフトウェア部品として存在する。
この他、ソフトウェア部品として、OS(Operating
System)、常駐モジュール、データ通信制御プログラムなどがあり、制御に必要な各種データと共に外部記憶部に格納されている。これらソフトウェア部品及び各種データは、CPUの制御に従い、メモリ上に読み出されて各種制御が実行される。
上位プログラムからのアイソクロナス転送によるデータ出力要求(以下、アイソクロナス出力要求)についても、同様に、アイソクロナス出力対象のUSBデバイス30に応じたデータ形式に変換される。
トンネリングドライバ12では、クライアント20からネットワークパケットを受信すると、このネットワークパケットからUSBのデータ形式に準拠したパケットデータを取り出し(デカプセルして)、USBドライバ13に送る。また、USBドライバ13からUSBのデータ形式に準拠したパケットデータを受け取って、ネットワークパケットにカプセル化する。
この場合、例えば、クライアント20からアイソクロナス出力転送要求(Isoc−out転送要求C1)に続いて、次のアイソクロナス出力転送要求(Isoc−out転送要求C7)が出され、デバイスサーバ10のトンネリングドライバ12がそれを受けてUSBドライバ13にアイソクロナス出力転送要求(Isoc−out転送要求C11)を行うものの、アイソクロナス転送のスケジューリングができない現象が発生し、USBドライバ13から転送応答C13としてエラーが返される場合がある。トンネリングドライバ12は、クライアント20に転送エラー応答C14を送る。これにより、アイソクロナス出力転送のセッションが切断となる。
すなわち、従来のデバイスサーバでは、USBドライバ13のスケジューラがスケジューリングできないほどのアイソクロナス出力転送要求が出されると、USBドライバ13はエラー応答を返し、そのエラーはそのままクライアント20まで返ってしまうため、クライアントとデバイスサーバの間の通信セッションが切断されてしまうことになる。
図6に示すように、本発明のデバイスサーバシステムの場合、アイソクロナス転送のスケジューリングができない現象が発生し、USBドライバ13から転送応答C13としてエラーが返された際に、データバッファ部14にバッファリングされた転送データをUSBデバイス30に対して再びアイソクロナス出力転送要求(Isoc−out転送要求C15)することにより、クライアント20とデバイスサーバ10のセッションを継続し、アイソクロナス転送で保証すべきデータ転送量を維持する。
デバイスサーバ10、クライアント20からアイソクロナス出力転送要求を受信した場合(S101)、データバッファ部14に転送データを保存し(S103)、URB単位でUSBデバイスにデータ転送する(S105)。そして、USBドライバから転送結果を受信し、その結果が正常終了(OK)であった場合(S107)、クライアント20に転送結果(OK)を応答し(S109)、クライアント20から次のアイソクロナス出力転送要求を待つ。
一方、転送結果のエラーが致命的なエラーでない場合、一過性のエラーと判断し、バッファ上のいずれかのデータをURB単位で転送完了している場合(S115においてYesの場合)、データバッファ部14の転送データをUSBデバイスに再転送する(S117)。転送完了しない場合(S115においてNoの場合)、クライアントから次の転送要求を受信したか否かを判断し、受信したと判断する場合(S119においてYesの場合)、バッファ上の転送データをUSBデバイスに再転送する(S117)。一方、クライアントから次の転送要求を受信しない場合(S119においてNoの場合)、一過性のエラーが継続していると判断し、バッファ上のいずれかのデータをURB単位で転送完了しているか(S115)の判断フローへ戻る。
本発明のデバイスサーバは、図8に示す制御フローを行うことにより、直前のアイソクロナス出力転送要求に基づくデータ転送が正常完了してから所定時間内に次のアイソクロナス出力転送要求を受信しないとき、直前の転送要求時にバッファリングされた転送データをダミーデータとして、USBデバイスに対してアイソクロナス出力転送を行うことにより、アイソクロナス転送で保証すべきデータ転送量を維持することができる。
図8に示す制御フローを行った場合のデータフローについて、図9,10を参照して説明する。
このダミーデータをアイソクロナス出力転送している途中で、クライアント20からアイソクロナス出力転送要求があった場合(C13),デバイスサーバ10はその要求を破棄する(C14)。
20 クライアント
28 マイク
30 USBデバイス
31 USB接続ケーブル
32 スピーカ
40 ネットワーク
Claims (6)
- クライアントとネットワークを介して接続され、アイソクロナス転送を行うデバイスがローカル接続されたデバイスサーバであって、
クライアントからアイソクロナス出力転送要求を受信すると要求された転送データをバッファリングするデータバッファ部を備え、
ローカル接続されたデバイスに対してアイソクロナス出力転送を行う際、アイソクロナス出力転送結果が正常完了または回復不能なエラーの何れでもない場合に、前記データバッファ部にバッファリングされた転送データを前記デバイスに対して再びアイソクロナス出力転送することを特徴とするデバイスサーバ。 - 前記データバッファ部にバッファリングされた転送データを再びアイソクロナス出力転送するタイミングは、直前のアイソクロナス出力転送結果が正常完了したとき、または、クライアントから次のアイソクロナス出力転送要求を受信したとき、であることを特徴とする請求項1に記載のデバイスサーバ。
- 直前のアイソクロナス出力転送要求の転送が正常完了してから所定時間内に次のアイソクロナス出力転送要求を受信しないとき、直前の転送要求時に前記データバッファ部にバッファリングされた転送データをダミーデータとして、デバイスに対してアイソクロナス出力転送を行うことを特徴とする請求項1又は2に記載のデバイスサーバ。
- クライアントとネットワークを介して接続され、アイソクロナス転送を行うデバイスがローカル接続されたデバイスサーバの制御方法であって、
クライアントからアイソクロナス出力転送要求を受信する転送要求受信ステップと、
要求された転送データをバッファリングする転送データ保存ステップと、
ローカル接続されたデバイスに対してアイソクロナス出力転送を行う出力転送ステップと、
アイソクロナス出力転送結果が正常完了または回復不能なエラーの何れでもない場合に、前記転送データ保存ステップにおいてバッファリングされた転送データをデバイスに対して再びアイソクロナス出力転送する再転送ステップ、を備えることを特徴とするデバイスサーバ制御方法。 - 再転送ステップにおいて、
バッファリングされた転送データを再びアイソクロナス出力転送するタイミングは、直前のアイソクロナス出力転送結果が正常完了したとき、または、クライアントから次のアイソクロナス出力転送要求を受信したとき、であることを特徴とする請求項4に記載のデバイスサーバ制御方法。 - 直前のアイソクロナス出力転送要求の転送が正常完了してから所定時間内に次のアイソクロナス出力転送要求を受信しないとき、直前の転送要求時にバッファリングされた転送データをダミーデータとして、デバイスに対してアイソクロナス出力転送を行うダミー転送ステップを更に備えたことを特徴とする請求項4又は5に記載のデバイスサーバ制御方法。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
JP2013201855A JP6090751B2 (ja) | 2013-09-27 | 2013-09-27 | デバイスサーバとその制御方法 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
JP2013201855A JP6090751B2 (ja) | 2013-09-27 | 2013-09-27 | デバイスサーバとその制御方法 |
Publications (2)
Publication Number | Publication Date |
---|---|
JP2015069324A true JP2015069324A (ja) | 2015-04-13 |
JP6090751B2 JP6090751B2 (ja) | 2017-03-08 |
Family
ID=52835948
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
JP2013201855A Active JP6090751B2 (ja) | 2013-09-27 | 2013-09-27 | デバイスサーバとその制御方法 |
Country Status (1)
Country | Link |
---|---|
JP (1) | JP6090751B2 (ja) |
Cited By (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
JP2017130152A (ja) * | 2016-01-22 | 2017-07-27 | セイコーエプソン株式会社 | ネットワークシステム、印刷装置、及び、印刷装置の制御方法 |
JP2018142281A (ja) * | 2017-02-28 | 2018-09-13 | サイレックス・テクノロジー株式会社 | デバイスサーバシステム、クライアント装置、情報転送制御方法およびプログラム |
Citations (6)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
JP2000510659A (ja) * | 1996-02-02 | 2000-08-15 | ソニー エレクトロニクス インク | バスを介したデータ転送及びバス管理に用いるアプリケーションプログラミングインターフェイス |
JP2000261466A (ja) * | 1999-03-09 | 2000-09-22 | Sony Corp | 伝送方法および伝送装置 |
WO2002009110A1 (fr) * | 2000-07-21 | 2002-01-31 | Sony Corporation | Dispositif d'enregistrement, dispositif de lecture, et systeme d'enregistrement/lecture |
US20040177197A1 (en) * | 2001-04-27 | 2004-09-09 | Mcleod John Alexander | Method and apparatus for extending the range of the universal serial bus protocol |
JP2006217476A (ja) * | 2005-02-07 | 2006-08-17 | Nec Electronics Corp | 通信方法、通信システム及び有線/無線ブリッジ装置 |
JP2006254290A (ja) * | 2005-03-14 | 2006-09-21 | Yaskawa Electric Corp | マスタ−スレーブ通信システムおよび通信方法 |
-
2013
- 2013-09-27 JP JP2013201855A patent/JP6090751B2/ja active Active
Patent Citations (6)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
JP2000510659A (ja) * | 1996-02-02 | 2000-08-15 | ソニー エレクトロニクス インク | バスを介したデータ転送及びバス管理に用いるアプリケーションプログラミングインターフェイス |
JP2000261466A (ja) * | 1999-03-09 | 2000-09-22 | Sony Corp | 伝送方法および伝送装置 |
WO2002009110A1 (fr) * | 2000-07-21 | 2002-01-31 | Sony Corporation | Dispositif d'enregistrement, dispositif de lecture, et systeme d'enregistrement/lecture |
US20040177197A1 (en) * | 2001-04-27 | 2004-09-09 | Mcleod John Alexander | Method and apparatus for extending the range of the universal serial bus protocol |
JP2006217476A (ja) * | 2005-02-07 | 2006-08-17 | Nec Electronics Corp | 通信方法、通信システム及び有線/無線ブリッジ装置 |
JP2006254290A (ja) * | 2005-03-14 | 2006-09-21 | Yaskawa Electric Corp | マスタ−スレーブ通信システムおよび通信方法 |
Cited By (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
JP2017130152A (ja) * | 2016-01-22 | 2017-07-27 | セイコーエプソン株式会社 | ネットワークシステム、印刷装置、及び、印刷装置の制御方法 |
JP2018142281A (ja) * | 2017-02-28 | 2018-09-13 | サイレックス・テクノロジー株式会社 | デバイスサーバシステム、クライアント装置、情報転送制御方法およびプログラム |
Also Published As
Publication number | Publication date |
---|---|
JP6090751B2 (ja) | 2017-03-08 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
JP6833644B2 (ja) | 転送装置、転送方法及びプログラム | |
JP6263836B2 (ja) | 制御装置および制御方法 | |
US9311265B2 (en) | Techniques for improving throughput and performance of a distributed interconnect peripheral bus connected to a host controller | |
JP5646986B2 (ja) | クライアント装置、デバイス制御方法、およびデバイス制御システム | |
US9832086B2 (en) | Initiator apparatus, target apparatus, communication system, timeout detection method, and timeout detection program | |
JP2011505755A5 (ja) | ||
JP2019165380A (ja) | 転送制御装置、転送制御方法及びプログラム | |
JP6090751B2 (ja) | デバイスサーバとその制御方法 | |
US9736076B2 (en) | Device server and control method thereof | |
US8842547B2 (en) | Communication control apparatus and control method | |
WO2021136099A1 (zh) | 数据传输方法、装置、设备及存储介质 | |
JP6233652B2 (ja) | デバイスサーバとその制御方法 | |
JP2008003645A (ja) | タイマ連携によるリクエスト制御方法 | |
US10474617B2 (en) | Control method for transmission and reception system, transmitting apparatus, and receiving apparatus | |
CN108737208B (zh) | 基于安全网关深度包检测的连接同步方法、装置及计算机 | |
JP2003345638A5 (ja) | ||
JP6579692B2 (ja) | ビデオサーバシステム | |
JP2009251771A (ja) | Dma転送装置 | |
JP3598924B2 (ja) | データ転送制御装置、情報記憶媒体及び電子機器 | |
CN113556759A (zh) | 伺服系统、数据传输系统及其数据传输的方法 | |
JP2602975B2 (ja) | 調歩同期式通信における受信制御装置 | |
JP2008250496A (ja) | エンジン・プロセッサ連携システム及び連携方法 | |
JP6542513B2 (ja) | Usb転送装置、usb転送システムおよびusb転送方法 | |
JP5494854B1 (ja) | 半導体集積回路及びレジスタリード方法 | |
TW201406101A (zh) | 網路設備連接方法及系統 |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
A621 | Written request for application examination |
Free format text: JAPANESE INTERMEDIATE CODE: A621 Effective date: 20160706 |
|
A871 | Explanation of circumstances concerning accelerated examination |
Free format text: JAPANESE INTERMEDIATE CODE: A871 Effective date: 20160706 |
|
A977 | Report on retrieval |
Free format text: JAPANESE INTERMEDIATE CODE: A971007 Effective date: 20161013 |
|
A975 | Report on accelerated examination |
Free format text: JAPANESE INTERMEDIATE CODE: A971005 Effective date: 20161013 |
|
A131 | Notification of reasons for refusal |
Free format text: JAPANESE INTERMEDIATE CODE: A131 Effective date: 20161017 |
|
A521 | Request for written amendment filed |
Free format text: JAPANESE INTERMEDIATE CODE: A523 Effective date: 20161215 |
|
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: 20170117 |
|
A61 | First payment of annual fees (during grant procedure) |
Free format text: JAPANESE INTERMEDIATE CODE: A61 Effective date: 20170131 |
|
R150 | Certificate of patent or registration of utility model |
Ref document number: 6090751 Country of ref document: JP Free format text: JAPANESE INTERMEDIATE CODE: R150 |
|
R250 | Receipt of annual fees |
Free format text: JAPANESE INTERMEDIATE CODE: R250 |
|
R250 | Receipt of annual fees |
Free format text: JAPANESE INTERMEDIATE CODE: R250 |
|
R250 | Receipt of annual fees |
Free format text: JAPANESE INTERMEDIATE CODE: R250 |
|
R250 | Receipt of annual fees |
Free format text: JAPANESE INTERMEDIATE CODE: R250 |
|
R250 | Receipt of annual fees |
Free format text: JAPANESE INTERMEDIATE CODE: R250 |