JP6233652B2 - デバイスサーバとその制御方法 - Google Patents

デバイスサーバとその制御方法 Download PDF

Info

Publication number
JP6233652B2
JP6233652B2 JP2014176516A JP2014176516A JP6233652B2 JP 6233652 B2 JP6233652 B2 JP 6233652B2 JP 2014176516 A JP2014176516 A JP 2014176516A JP 2014176516 A JP2014176516 A JP 2014176516A JP 6233652 B2 JP6233652 B2 JP 6233652B2
Authority
JP
Japan
Prior art keywords
data
transfer
client
isochronous
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.)
Active
Application number
JP2014176516A
Other languages
English (en)
Other versions
JP2016051347A (ja
Inventor
栄植 林
栄植 林
新介 山地
新介 山地
西原 健太
健太 西原
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
Silex Technology Inc
Original Assignee
Silex Technology Inc
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by Silex Technology Inc filed Critical Silex Technology Inc
Priority to JP2014176516A priority Critical patent/JP6233652B2/ja
Publication of JP2016051347A publication Critical patent/JP2016051347A/ja
Application granted granted Critical
Publication of JP6233652B2 publication Critical patent/JP6233652B2/ja
Active legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Landscapes

  • Information Transfer Systems (AREA)

Description

本発明は、クライアントとデバイス(特に、オーディオデバイス)との間で、ネットワークを介してアシンクロナス(非同期)モードのアイソクロナス転送を行うデバイスサーバおよびその制御方法に関するものである。
近年、有線LAN(Local Area Network)または無線LANなどのIPネットワークはますます広がり、人々の生活のインフラとなっている。ネットワークI/F(インタフェース)の低価格化も進んでいる。
また、コンピュータにローカル接続されていた周辺機器は、IPネットワークが周辺機器の制御データの送受信に十分耐えるほど高速化した現在において、コンピュータとIPネットワークを介して周辺機器の制御が可能になっている。
このような状況下、IPネットワークを通じて、コンピュータの周辺機器であるUSB(Universal Serial Bus)デバイスを当該ネットワークに接続しているコンピュータから利用することのできるデバイスサーバシステムが知られている(特許文献1、非特許文献1を参照)。
デバイスサーバシステムでは、クライアントのUSBデバイスドライバが発行した制御コマンド等のUSBデータがIPパケットに変換され(カプセル化)、これがクライアントからデバイスサーバに向けて送信される。IPパケットを受信したデバイスサーバは、受信したIPパケットに含まれる制御コマンド等のUSBデータを取り出し(デカプセル化)、USB通信に変換してデバイスサーバ自身にローカル接続されているUSBデバイスに転送する。
デバイスサーバとUSBデバイスとの間における通信は、USB規格の通信に準じている。例えば、クライアントからUSBデバイスへの送信の場合、クライアントからデバイスサーバを経由してUSBデバイスにデータを送信するとともに、随時、USBデバイスのステータスに関する応答をクライアントはデバイスサーバ経由で受信する。
USBデバイスがスピーカの場合、クライアントからUSBデバイスに対して音声などリアルタイム性を必要とするストリーミングデータを転送する。この場合、一定時間あたりの最低限のデータ転送量を保証するアイソクロナス方式によるデータ転送(アイソクロナス転送)を行うことにより、途切れることなくデータを転送することができる。
デバイスサーバを介してクライアントとUSBデバイス間でアイソクロナス転送を行う場合、クライアントとUSBデバイスはローカル接続されているのではなく、ネットワーク経由で接続されていることから、ネットワークトラフィックが高くなり、ネットワーク区間のデータ転送速度が低下しても、アイソクロナス転送で保証する最低限のデータ転送量を維持する必要がある。
デバイスサーバの内部処理において、アイソクロナス転送要求に対するUSBデバイスからの応答情報をダミー応答してクライアントのデバイスドライバに送信するデバイスサーバの制御方法が知られている(特許文献2)。
特許文献2に開示された制御方法によれば、クライアントは、USBデバイスからの応答情報の遅延(受信待ち)によって、次のアイソクロナス転送要求の処理が停滞することがなくなるため、アイソクロナス出力転送で保証する最低限のデータ転送量を維持することができる。
しかしながら、特許文献2に開示されたデバイスサーバの制御方法では、所定時間経過してもUSBデバイスからの応答情報を受け取らなかった場合には、USBデバイスからの応答情報を擬製してダミー応答データをクライアントのデバイスドライバに送信することから、ネットワーク自体が回復不能なステータス(致命的なステータス)の場合であっても、クライアントは次のアイソクロナス転送要求を送出する一方、デバイスサーバはこれを受け取れず、デバイスに渡せないことになり、好ましくないという問題がある。
特開2008−287453号公報 特許第4617440号公報
サイレックス・テクノロジー株式会社ホームページ<http://www.silex.jp/products/usbdeviceserver/sx3000gb.html>
従来、クライアントは数百ミリ秒先読みしてアイソクロナス転送要求し、ネットワークの遅延を担保している。デバイスサーバでは、クライアントよりスケジューリングされたアイソクロナス転送要求をそのままに、USBデバイスに対してアイソクロナス転送を行っている。
しかし、特に無線LANの場合は電波状況によりネットワークのリンク切れやアグリゲーションの弊害によってネットワーク転送が滞り、クライアントによる数百ミリ秒の先読みだけでは担保できないことがある。
一旦、無線LANレベルでリンクが切れて復帰した場合に、クライアントから一度に複数のアイソクロナス転送要求が出されて、大量のデータが転送される場合がある。デバイスサーバでは、クライアントのアイソクロナス転送要求をそのままに、USBデバイスに対してアイソクロナス転送を行っているため、アイソクロナス転送のスケジューリングができない現象が発生する。この場合、通信エラー(例えば、スケジューラのバッファ空きが無いためにオーバーフローを生じたというスタックレベルのエラーなど)として応答される。
クライアントは、USBデバイスのステータスに関する応答をデバイスサーバ経由で受信するため、こうした回復不能でないエラーにも関わらず、クライアントはデバイスサーバとのセッションを切断してしまい、アイソクロナス転送は終了してしまう。
このように、従来のデバイスサーバにおけるアイソクロナス転送では、ネットワークの遅延によるデータ転送量の起伏に伴う影響を回避できず、クライアントのアイソクロナス転送要求をそのままに、USBデバイスに対してアイソクロナス転送を行っているためにアイソクロナス転送で保証すべきデータ転送量を維持できない。すなわち、従来のデバイスサーバにおけるアイソクロナス転送方式では、ネットワーク耐性が弱いという問題がある。
特に、USBで接続されるスピーカなどのUSBオーディオ機器の場合、音声データを扱うためデータが途切れ途切れになると問題となる。そのため、アイソクロナス転送方式を利用する。アイソクロナス転送方式には、音声データと一緒にそれに関連付いたクライアントPC側のクロック信号とUSB−DAC側のUSBホストコントローラを同期させるシンクロナス(同期)モードと、クライアントPC側のクロック信号に同期して動作するアダプティブモードと、USB−DAC或はUSB−DACを内蔵するUSBオーディオ機器の内部にある高精度なクロックによって独自に動作するアシンクロナス(非同期)モードに分かれる。
アシンクロナス(非同期)モードの場合、フィードバックデータ(以下、FBDと略する)と呼ばれるデバイスからクライアントPC側へ向けて送られるデバイスのバッファメモリの状態ステータスによって、デバイス側のバッファメモリが常に適量に保たれるように、クライアントPCへフィードバック制御が行われる。ここで、バッファメモリとは、情報を一時保存する記憶領域のことであり、デバイス内に備わるRAM(Random Accsess Memory)などに確保されるメモリ領域である。デバイス側のバッファメモリにデータ量が適量よりも増加した場合、クライアントPCへ転送データ量を減らすという情報を返し、一方、データ量が適量よりも減少した場合、転送データ量を増やすという情報を返して、デバイス側のバッファメモリを適量に維持する。すなわち、アシンクロナス(非同期)モードでは、デバイスは、バッファメモリのデータ量の増減などをコントロールする応答をクライアントPCに返すことにより、デバイス側のバッファメモリが常に一定のデータ量に保たれるように制御するモードである。アシンクロナス(非同期)モードでは、クライアントPC側のクロックを使わず、デバイス側の固定クロックを使うことが可能となるため、クライアントPCに実装されている水晶発振器が発するジッターの影響を受け難く、高音質(ハイレゾ音源など)をデバイス(スピーカー)から出力することができる。
デバイスがローカル接続されたデバイスサーバにおけるアイソクロナス出力転送のアシンクロナス(非同期)モードにおいても、ネットワークの遅延によるデータ転送量の起伏に伴う影響を無くし、アイソクロナス転送で保証すべきデータ転送量を維持でき、アイソクロナス出力転送のネットワーク耐性を向上することが求められている。
上記状況に鑑みて、本発明は、デバイスがローカル接続されたデバイスサーバにおけるアイソクロナス出力転送のアシンクロナス(非同期)モードにおいて、ネットワークの遅延によるデータ転送量の起伏に伴う影響を無くし、アイソクロナス転送で保証すべきデータ転送量を維持でき、アイソクロナス出力転送のネットワーク耐性を向上するデバイスサーバおよびデバイスサーバ制御方法を提供することを目的とする。
上記目的を達成すべく、本発明のデバイスサーバは、クライアントとネットワークを介して接続され、アイソクロナス転送を行うデバイスがローカル接続されたデバイスサーバにおいて、データバッファ部と、デバイスからFBDを受信して解析するFBD解析部を備える。
クライアントからアシンクロナス(非同期)モードのアイソクロナス入力転送要求を受信すると前記クライアントから送信されたアイソクロナス出力転送データをデータバッファ部に蓄積する。そして、データバッファ部の保持データ量が上限閾値に到達した場合に、データバッファ部に蓄積されたアイソクロナス出力転送データを、デバイスに対してアイソクロナス出力転送する。
また、デバイスからFBDを受信する。FBD解析部によるFBDの解析の結果、デバイス内のバッファメモリが適量よりも少ないと判別した場合で、かつ、データバッファ部の保持データ量が下限閾値に到達していない場合に、データバッファ部に蓄積されたアイソクロナス出力転送データを、デバイスに対してアイソクロナス出力転送する。
FBD解析部が行うFBDの解析処理は、デバイスサーバの中の何らかのプログラムモジュールの処理の一部として解析処理が埋め込まれていても構わない。
ここで、クライアントとは、パーソナルコンピュータ(PC)などの一般的なコンピュータ端末を意味し、ネットワークに接続され、デバイスサーバにローカル接続されたデバイスに対してアイソクロナス出力転送を行う装置である。またデバイスとは、デバイスサーバにローカル接続され、USB通信規格などのデータ通信方式によって、デバイスサーバとデータ通信できる装置である。デバイスサーバがアイソクロナス出力転送を行うデバイスとしては、USBスピーカなどのオーディオデバイスなどが挙げられる。
デバイスサーバ内のデータバッファ部の保持データ量が上限閾値に到達した状態から、データバッファ部に蓄積されたアイソクロナス出力転送データのアイソクロナス出力転送が開始される。また、データバッファ部の保持データ量が下限閾値に到達した状態になるまで、データバッファ部に蓄積されたアイソクロナス出力転送データのアイソクロナス出力転送を行う。
保持データ量が上限閾値に到達するとは、保持データ量が上限閾値と一致するか、上限閾値を超えることを意味する。データバッファ部のバッファサイズは、バッファオーバフローを回避するために、上限閾値よりも大きく確保すべきである。上限閾値は、データバッファ部の物理的なバッファサイズに1未満の係数を乗じた値とするのが良い。一方、下限閾値は、0(ゼロ)、或は、上限閾値より小さい所定の値である。下限閾値は、実質的にデータバッファ部が空の状態の値であり、0(ゼロ)とするのでも良い。
本発明のデバイスサーバは、クライアントからアシンクロナス(非同期)モードのアイソクロナス入力転送要求を受信すると、FBDを受信していれば、最新のFBDをクライアントに対する転送完了応答として返し、FBDを受信していなければ、クライアントに対して転送完了応答を返す。
上記構成によれば、クライアントからアシンクロナス(非同期)モードのアイソクロナス入力転送要求を受信すると、即座にクライアントに対して転送完了応答を返すことができ、アイソクロナス出力転送データの先読みを行える。先読みを行い、受信した転送データをデータバッファ部に蓄積し、データバッファ部の保持データ量を十分に確保して、デバイスに対してアイソクロナス出力転送を開始することにより、アイソクロナス転送で保証すべきデータ転送量を維持できる。これによりネットワーク環境が不安定になった場合でも、デバイスに対して安定したデータ出力を行える。無線LANのようにネットワークのリンク切れやアグリゲーションの弊害でデータ転送が滞るような事象が発生する場合に、特に効果を期待することができる。
例えば、デバイスがUSBスピーカである場合、デバイスサーバにデータバッファ部を設けることにより、無線LAN使用時などでネットワーク環境が不安定になっても、ネットワーク環境が回復するまで、データバッファ部にバッファリング(蓄積)された音声転送データをUSBスピーカに出力することにより、安定した音声出力を行うことができる。
上記の本発明のデバイスサーバのFBD解析部によるFBDの解析の結果、デバイス内のバッファメモリが適量よりも少ないと判別した場合に、少ない度合いに応じて、デバイスに対してアイソクロナス出力転送を行うデータ転送量を加減調整することでも良い。
これにより、デバイスのバッファメモリが、バッファアンダーフロー又はオーバーフローしないように調整できる。
上記の本発明のデバイスサーバは、更に、クライアントからアシンクロナス(非同期)モードのアイソクロナス入力転送要求を受信すると、(a)フィードバックデータに依拠することなくデバイスにアイソクロナス入力転送要求を行うモード(通常モード)を備えると共に、(b)クライアントから送信されたアイソクロナス出力転送データをデータバッファ部に蓄積して、FBDを解析しながらアイソクロナス入力転送要求を行うフィードバックデータ制御モード(FBD制御モード)を備える。そして、通常モードとFBD制御モードとの間で切替えできることでも良い。
これにより、接続されるデバイスの品質レベルに応じて、通常モードとFBD制御モードとの間で切替できるようにし、ユーザの使用における自由度を高めることができる。
次に、デバイスサーバの制御方法を説明する。
本発明のデバイスサーバの制御方法は、クライアントとネットワークを介して接続され、アイソクロナス転送を行うデバイスがローカル接続されたデバイスサーバの制御方法であって、下記1)〜5)のステップを備える。
1)クライアントからアシンクロナス(非同期)モードのアイソクロナス入力転送要求を受信する転送要求受信ステップ
2)クライアントからアシンクロナス(非同期)モードのアイソクロナス入力転送要求を受信するとクライアントから送信されたアイソクロナス出力転送データをデータバッファ部に蓄積する転送データ保存ステップ
3)データバッファ部の保持データ量が上限閾値に到達した場合に、データバッファ部に蓄積されたアイソクロナス出力転送データを、デバイスに対してアイソクロナス出力転送する転送ステップ
4)デバイスからFBDを受信し解析するFBD解析ステップ
5)FBD解析ステップによるFBDの解析の結果、デバイス内のバッファメモリが適量よりも少ないと判別した場合で、かつ、データバッファ部の保持データ量が下限閾値に到達していない場合に、データバッファ部に蓄積されたアイソクロナス出力転送データを、デバイスに対してアイソクロナス出力転送する出力転送ステップ
本発明のデバイスサーバ制御方法は、転送要求受信ステップにおいてクライアントからアイソクロナス入力転送要求を受信した際、デバイスからFBDを受信していれば、最新のFBDをクライアントに対する転送完了応答として返し、FBDを受信していなければ、クライアントに対して転送完了応答を返すクライアント応答ステップを更に備えることでも良い。
上記構成によれば、クライアントからアシンクロナス(非同期)モードのアイソクロナス入力転送要求を受信すると、即座にクライアントに対して転送完了応答を返すことができ、アイソクロナス出力転送データの先読みを行え、データバッファ部の保持データ量を十分に確保して、アイソクロナス転送で保証すべきデータ転送量を維持できる。これによりネットワーク耐性を向上する。
また、本発明のデバイスサーバ制御方法の出力転送ステップにおいて、デバイス内のバッファメモリが適量よりも少ないと判別した場合に、少ない度合いに応じて、デバイスに対してアイソクロナス出力転送を行うデータ転送量を加減調整することでも良い。
デバイスのバッファメモリのバッファアンダーフロー又はオーバーフローを避けるためである。
次に、本発明のクライアントについて説明する。
本発明のクライアントは、上述した本発明のデバイスサーバとネットワークを介して接続され、デバイスサーバにローカル接続されたデバイスにアイソクロナス転送を行う。本発明のクライアントは、USBデバイスドライバが発行したアイソクロナス入出力転送データを受け取り、アイソクロナス入出力転送データをIPパケットに変換して通信制御ドライバに引き渡す手段を備える。また、通信制御ドライバを介して、デバイスサーバから転送完了応答を受け取った場合に、その転送完了応答をUSBデバイスドライバに返し、デバイスサーバから転送完了応答を受け取っていない場合にはダミーデータをUSBデバイスドライバに返す手段を備える。
USBデバイスドライバでは、USBデバイスからの応答情報の遅延(受信待ち)によって、次のアイソクロナス転送要求の処理が停滞することがなくなる。これによって、アイソクロナス出力転送で保証する最低限のデータ転送量を維持することができる。
本発明によれば、アイソクロナス転送方式のアシンクロナスモードにおけるUSB Audioデータが、ネットワークを介しデバイスサーバを経由する場合に、デバイスサーバは、アイソクロナス転送で保証すべきデータ転送量を維持でき、ネットワーク(特に、無線通信ネットワーク)の遅延によるデータ転送量の起伏に対応でき、ネットワーク耐性の向上が図れるといった効果を奏する。
デバイスサーバシステムの機能ブロック図 アイソクロナス転送を行うデバイスサーバシステムの概念図 デバイスサーバシステムのシステム構成図 デバイスサーバシステムのデータフロー図 デバイスサーバの処理フロー図(1) デバイスサーバの処理フロー図(2) クライアントの処理フロー図
以下、本発明の実施形態について、図面を参照しながら詳細に説明していく。なお、本発明の範囲は、以下の実施例や図示例に限定されるものではなく、幾多の変更及び変形が可能である。
図1は、デバイスサーバシステムの機能ブロックの一例を示している。
図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は、一般的なパーソナルコンピュータと同様なハードウェア構成を備えており、図示しないCPU、入力部、表示部、メモリ、外部記憶部、図示する通信インタフェース26などが内部バスで接続されている。
このクライアント20には、外部記憶部に格納され、CPUによる実行時にメモリに搭載されるアプリケーション21とデバイスドライバ22とUSBクラスドライバ23とトンネリングドライバ24と通信制御ドライバ25がソフトウェア部品として存在する。
この他、ソフトウェア部品として、OS(Operating System)、常駐モジュール、データ通信制御プログラムなどがあり、制御に必要な各種データと共に外部記憶部に格納されている。これらソフトウェア部品及び各種データは、CPUの制御に従い、メモリ上に読み出されて各種制御が実行される。
常駐モジュールは、OSが起動している間、常に待機及び動作しているソフトウェア部品であり、ネットワーク40を介してデバイスサーバ10とデータ送受信を行う。またデバイスサーバ10にローカル接続されているUSBデバイス30を認識して識別するためのUSBデバイス情報を受信する。受信したUSBデバイス情報に基づいて、USBデバイス30とのデータ送受信に必要となるデバイスドライバ22、USBクラスドライバ23を生成し、USBデバイス30をネットワーク越しに制御できる状態にする。
デバイスドライバ22は、OSやアプリケーション21、常駐モジュールなど上位プログラムからのデータ入出力要求を、データ入出力対象のUSBデバイス30に応じたデータ形式に変換し、また、USBデバイス30からの応答を上位プログラムへ渡す。
上位プログラムからのアイソクロナス転送によるデータ出力要求についても、同様に、アイソクロナス出力対象のUSBデバイス30に応じたデータ形式に変換される。
USBクラスドライバ23は、デバイスドライバ22によって、USBデバイス30に応じたデータ形式に変換されたデータ入出力要求を、USBのデータ形式に準拠したパケットデータに変換してトンネリングドライバ24に渡し、またトンネリングドライバ24から送られてくるUSBのデータ形式に準拠したパケットデータを、データ形式変換してデバイスドライバ22へ渡す。
またトンネリングドライバ24は、USBクラスドライバ23から渡されたパケットデータをIPパケットにカプセル化する。その一方で、デバイスサーバ10からIPパケットを受信すると、このIPパケットから応答パケットデータを取り出し(デカプセルして)、USBクラスドライバ23,デバイスドライバ22に受け渡す。
通信制御ドライバ25は、トンネリングドライバ24からIPパケットを受け取り、通信インタフェース26へ引き渡す。また、通信インタフェース26から受け取ったIPパケットをトンネリングドライバ24へ引き渡す。このように、ネットワークを介して、クライアント20とデバイスサーバ10との間でIPパケットの送受信や通信制御を行っている。
一方、デバイスサーバ10には、通信インタフェース16と通信制御ドライバ11とトンネリングドライバ12とUSBドライバ13、データバッファ部14、およびFBD解析部15が搭載されている。
トンネリングドライバ12では、クラインアント20からネットワークを介し、IPパケットを受信すると、このIPパケットからUSBのデータ形式に準拠したパケットデータを取り出し(デカプセルして)、USBドライバ13に送る。また、トンネリングドライバ12は、USBドライバ13からUSBのデータ形式に準拠したパケットデータを受け取って、IPパケットにカプセル化する。
FBD解析部15では、クライアント20からアシンクロナス(非同期)モードのアイソクロナス入力転送要求を受け取る。また、FBD解析部15はUSBデバイス30からFBDを受け取り、受け取ったFBDの解析処理を行う。ここで、FBD解析部15が行うFBDの解析処理は、デバイスサーバ10のトンネリングドライバ12の処理の一部として含まれてもよく、またはデータバッファ部14の処理の一部として含まれていてもよい。その他、デバイスサーバの中の何らかのプログラムモジュールの処理の一部としてFBD解析部15が行う解析処理が埋め込まれていても構わない。
図2に示すように、USBオーディオ機器のスピーカ32がUSB接続ケーブル31を介してデバイスサーバ10に接続され、クライアント20とデバイスサーバ10とが無線ネットワーク40を介して接続されているシステムでは、クライアント20から無線ネットワーク40を介してスピーカ32に対して音声や音楽などの音データをストリーミングデータとして転送できる。この場合、一定時間あたりの最低限のデータ転送量を保証するアイソクロナス転送によって、音声データが途切れることなくスピーカに転送される。アシンクロナス(非同期)モードの場合、USBオーディオ機器のスピーカ32からクライアント20へ向けて、FBDが返される。
また、図3に、デバイスサーバを利用した音声および音源を出力するシステムのシステム構成例を示す。図3は、デバイスサーバがアイソクロナス転送方式のアシンクロナスモードに対応し、ネットワークを介して、クライアントPCからデバイスサーバを経由して、USBスピーカを制御する構成を示している。図3(1)は、USBスピーカが自身にUSB−DACを内蔵している場合を示し、図3(2)は、USB−DACを内蔵したアンプを経由して、アンプがスピーカとケーブル接続されている場合を示している。つまり、図3(1)、(2)は、本発明の実施形態の図2に示したデバイスサーバ10とUSBオーディオ機器のスピーカ32との間を接続する形態を示した一例である。
図4は、デバイスサーバシステムのデータフローの一例を示している。クライアント20内のUSBクラスドライバ23から、USBデバイス30に対し、アシンクロナス(非同期)モードのアイソクロナス入力転送要求(以下、“ISOC−IN要求”と呼ぶ)およびアイソクロナス出力転送するデータ(例えば、音声、音源のパケットデータ)が出されると、クライアント20内のトンネリングドライバが、ISOC−IN要求およびアイソクロナス出力転送(以下、“ISOC−OUT転送”と呼ぶ)するデータをカプセル化して、デバイスサーバ10に送る。デバイスサーバ10では、クライアント20からカプセル化されネットワーク経由で送られたISOC−IN要求およびISOC−OUT転送されたデータを受信すると、デカプセル処理の後、ISOC−IN要求をFBD解析部で受信し、ISOC−OUT転送されたデータをデバイスサーバ10自身のデータバッファ部14にバッファリング(蓄積)していく。データバッファ部14の保持データ量が上限閾値に到達するまで蓄積を繰り返し、保持データ量が上限閾値に到達した場合に、データバッファ部14に蓄積されたアイソクロナス出力転送データを、USBデバイス30に対してISOC−OUT転送を開始する。
クライアント20のトンネリングドライバ24は、USBクラスドライバ23からISOC−IN要求を受信すると、その後の動作はUSBデバイス30から新たなFBDを受信しているか否かで異なる。新たなFBDを受信していない場合は、USBデバイス30への転送完了の有無に関わらず、クライアント20のトンネリングドライバ24は、USBクラスドライバ23に対してダミーデータを転送完了応答として返す。即座にクライアント20のUSBクラスドライバ23に対してダミーデータを転送完了応答として返すことで、アイソクロナス出力転送データの先読みを行う。先読みを行うことにより、受信したISOC−OUT転送データをデバイスサーバ10内のデータバッファ部14に十分に蓄積することができ、このことにより、データバッファ部14の保持データ量を十分に確保できるため、アイソクロナス転送で保証すべきデータ転送量を維持することができる。
ここで、ダミーデータとは、転送が正常完了した旨の転送完了応答データであり、その時点における最新のFBDに相当するデータをコピーしたものである。具体的には、ダミーデータは、デバイスサーバ10がUSBデバイス30から受け取って保持している現時点の最新のFBDをコピーして、ネットワークを介してクライアント20のトンネリングドライバ24へ送信した転送完了応答である。あるいは、ダミーデータは、クライアント20のトンネリングドライバ24が保持しているFBD(あるいは前述のダミーデータ)で、過去にデバイスサーバ10からネットワークを介して受け取ったもののうち最新のものである。
一方、USBデバイス30からデバイスサーバ経由で新たなFBDを受信している場合は、これをクライアント20のUSBクラスドライバ23に対し、転送完了応答として返す。
次に、デバイスサーバの処理フローについて、図5および図6を参照して説明する。
デバイスサーバ10は、クライアント20のトンネリングドライバ24からUSB転送要求を受信すると(ステップS01)、USB転送方式がアイソクロナス方式か否かを判定する(ステップS03)。判定の結果、USB転送方式がアイソクロナス方式の要求であれば(ISOC−IN要求であれば)、さらに制御モードがFBD制御モード(アシンクロナスモード)であるか否かを判定し(ステップS05)、制御モードがFBD制御モードの場合は、後述するFBD制御を実行する(ステップS07)。
一方、USB転送方式の判定(ステップS03)においてUSB転送方式がアイソクロナス方式以外であるか、または制御モードの判定(ステップS05)においてアシンクロナスモード以外である場合には、通常処理(本実施形態に記載するようなFBDの解析を行わず、FBDに依拠しないでデバイスにアイソクロナス入力転送要求を行う処理)を実行する(ステップS09)。
図5のFBD制御モードにおけるFBD制御(ステップS07)の詳細フローについて、図6を参照して説明する。FBD制御では、FBDを受信していない場合、ISOC−IN要求をトリガーとして、デバイスサーバ10が保持している、現時点における最新のFBDをコピーし、クライアント20に対して転送完了応答を返し、データバッファ部14にISOC−OUT転送データをバッファリング(蓄積)する。そして、データバッファ部14の保持データ量が上限閾値に達した場合、USBデバイス30へデータバッファ部14に蓄積したデータをデータ転送して処理を終える。データバッファ部14の保持データ量が上限閾値に達していない場合は、データ転送しないで処理を終える。
ここで、デバイスサーバ10のFBD解析部15は、当該FBD制御を担っており、予めデータバッファ部14の保持データ量にそれぞれデータ量に応じた閾値を設け、USB転送方式の判定とデバイスのFBDの有無をもとに動作する。これにより、デバイスサーバ10が自律的に動作し、クライアント20からの転送されるアイソクロナス出力転送データをアイソクロナス転送で保証すべきデータ転送量を維持することができる。
一方、FBDを受信した場合(受信済)、FBDの解析処理(FBD解析処理)を行う。FBD解析処理は、USBデバイス30内のバッファメモリが適量より少ない場合であって、さらにデータバッファ部14の保持データ量が下限閾値に達していない場合には、USBデバイス30へデータバッファ部14に蓄積したデータをデータ転送して処理を終える。また、USBデバイス30内のバッファメモリが適量より多い(少なくない)場合、或は、データバッファ部14の保持データ量が下限閾値に達している場合は、データ転送しないで処理を終える。クライアントがFBDからUSBデバイス内のバッファメモリ量を判断してUSBデバイスへのテータ転送量を制御することは、アシンクロナスモードで従来から行われていることであるが、本実施例では、デバイスサーバがFBDからUSBデバイス内のバッファメモリ量を判断してUSBデバイスへのデータ転送量を制御することとなり、さらに制御に際してデバイスサーバにおけるデータバッファ部の保持データ量も勘案している。
図7は、クライアントの処理フローを示している。
トンネリングドライバ24は、USBクラスドライバ23からISOC−IN要求発生すると(ステップS21)、ISOC−IN要求を自律制御する場合には(ステップS23)、さらにデバイスサーバ10からFBDを受信済である場合(ステップS25)、受信した最新のFBDをUSBクラスドライバ23に返す(ステップS27)。
一方、ISOC−IN要求を自律制御しない場合には(ステップS23)、そのまま処理を終了し、自律制御しない通常のISOC−IN要求処理を行う。また、デバイスサーバ10からFBDを受信していない場合(ステップS25)、デバイスサーバ10から受け取るダミーデータをUSBクラスドライバ23に返す(ステップS27)。
なお、上述の実施例では、クライアントがネットワークを介してUSBデバイスを利用するデバイスサーバシステムを例に説明したが、本発明の適用範囲はこれに限定されず、USB通信規格と同等の通信方式、例えば、IEEE1394など別のインタフェースに準拠したものであってもよい。
本発明は、USBデバイスなどの周辺デバイスの利便性を高めるデバイスサーバシステムに有用である。
10 デバイスサーバ
20 クライアント
30 USBデバイス
31 USB接続ケーブル
32 スピーカ
40 ネットワーク

Claims (6)

  1. クライアントとネットワークを介して接続され、アイソクロナス転送を行うデバイスがローカル接続されたデバイスサーバであって、
    データバッファ部と、
    前記デバイスからフィードバックデータ(FBD)を受信して解析するFBD解析部と、
    を備え、
    前記クライアントからアシンクロナス(非同期)モードのアイソクロナス入力転送要求を受信すると前記クライアントから送信されたアイソクロナス出力転送データを前記データバッファ部に蓄積し、
    前記データバッファ部の保持データ量が上限閾値に到達した場合に、前記データバッファ部に蓄積された前記アイソクロナス出力転送データを、前記デバイスに対してアイソクロナス出力転送し、
    前記デバイスから前記フィードバックデータを受信し、
    前記FBD解析部による前記フィードバックデータの解析の結果、前記デバイス内のバッファメモリの使用領域のデータ量が適量よりも少ないと判別した場合で、かつ、前記データバッファ部の前記保持データ量が下限閾値に到達していない場合に、前記データバッファ部に蓄積された前記アイソクロナス出力転送データを、前記デバイスに対して前記アイソクロナス出力転送する、ことを特徴とするデバイスサーバ。
  2. 前記クライアントから前記アイソクロナス入力転送要求を受信すると、前記フィードバックデータを受信していれば、最新の前記フィードバックデータを前記クライアントに対する転送完了応答として返し、前記フィードバックデータを受信していなければ、前記クライアントに対してダミーデータを前記転送完了応答として返す、ことを特徴とする請求項1に記載のデバイスサーバ。
  3. 前記クライアントから前記アイソクロナス入力転送要求を受信すると、
    (a)前記フィードバックデータに依拠することなく前記デバイスに前記アイソクロナス入力転送要求を行うモード(通常モード)と、
    (b)前記クライアントから送信されたアイソクロナス出力転送データを前記データバッファ部に蓄積して、前記フィードバックデータを解析しながら前記アイソクロナス入力転送要求を行う、フィードバックデータ制御モード(FBD制御モード)と
    の間で切替し得る、ことを特徴とする請求項1又は2に記載のデバイスサーバ。
  4. クライアントとネットワークを介して接続され、アイソクロナス転送を行うデバイスがローカル接続されたデバイスサーバの制御方法であって、
    前記クライアントからアシンクロナス(非同期)モードのアイソクロナス入力転送要求を受信する転送要求受信ステップと、
    前記クライアントから前記アイソクロナス入力転送要求を受信すると前記クライアントから送信されたアイソクロナス出力転送データをデータバッファ部に蓄積する転送データ保存ステップと、
    前記データバッファ部の保持データ量が上限閾値に到達した場合に、前記データバッファ部に蓄積された前記アイソクロナス出力転送データを、前記デバイスに対してアイソクロナス出力転送する転送ステップと、
    前記デバイスからフィードバックデータを受信し解析するFBD解析ステップと、
    前記FBD解析ステップによる前記フィードバックデータの解析の結果、前記デバイス内のバッファメモリの使用領域のデータ量が適量よりも少ないと判別した場合で、かつ、前記データバッファ部の前記保持データ量が下限閾値に到達していない場合に、前記データバッファ部に蓄積されたアイソクロナス出力転送データを、前記デバイスに対して前記アイソクロナス出力転送する出力転送ステップと、
    を備えたことを特徴とするデバイスサーバ制御方法。
  5. 前記転送要求受信ステップにおいて、前記クライアントから前記アイソクロナス入力転送要求を受信した際、前記デバイスから前記フィードバックデータを受信していれば、最新の前記フィードバックデータを前記クライアントに対する転送完了応答として返し、前記フィードバックデータを受信していなければ、前記クライアントに対してダミーデータを前記転送完了応答として返すクライアント応答ステップを、
    更に備えたことを特徴とする請求項4に記載のデバイスサーバ制御方法。
  6. 請求項に記載のデバイスサーバと、
    前記デバイスサーバにローカル接続された前記デバイスと、
    前記デバイスサーバとネットワークを介して接続され前記デバイスに前記アイソクロナス転送を行うクライアントから構成され、
    前記クライアントは、
    USBデバイスドライバが発行したアイソクロナス入出力転送データを受け取り、該アイソクロナス入出力転送データをIPパケットに変換して通信制御ドライバに引き渡す手段と、
    前記通信制御ドライバを介して、前記デバイスサーバから転送完了応答を受け取った場合に、前記転送完了応答を前記USBデバイスドライバに返し、前記デバイスサーバから前記転送完了応答を受け取っていない場合にはダミーデータを前記USBデバイスドライバに返す手段と、を備えることを特徴とするシステム
JP2014176516A 2014-08-29 2014-08-29 デバイスサーバとその制御方法 Active JP6233652B2 (ja)

Priority Applications (1)

Application Number Priority Date Filing Date Title
JP2014176516A JP6233652B2 (ja) 2014-08-29 2014-08-29 デバイスサーバとその制御方法

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
JP2014176516A JP6233652B2 (ja) 2014-08-29 2014-08-29 デバイスサーバとその制御方法

Publications (2)

Publication Number Publication Date
JP2016051347A JP2016051347A (ja) 2016-04-11
JP6233652B2 true JP6233652B2 (ja) 2017-11-22

Family

ID=55658795

Family Applications (1)

Application Number Title Priority Date Filing Date
JP2014176516A Active JP6233652B2 (ja) 2014-08-29 2014-08-29 デバイスサーバとその制御方法

Country Status (1)

Country Link
JP (1) JP6233652B2 (ja)

Families Citing this family (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP7314500B2 (ja) * 2018-11-21 2023-07-26 ヤマハ株式会社 プログラム、情報処理方法、情報処理装置、オーディオインタフェース、および情報処理システム

Family Cites Families (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US7647446B2 (en) * 2006-10-03 2010-01-12 Silex Technology, Inc. Networked isochronous USB communication
JP4613328B2 (ja) * 2007-05-17 2011-01-19 サイレックス・テクノロジー株式会社 Usbデバイスサーバおよびusbデバイスサーバシステム
JP5646986B2 (ja) * 2010-12-24 2014-12-24 キヤノンイメージングシステムズ株式会社 クライアント装置、デバイス制御方法、およびデバイス制御システム
KR102073236B1 (ko) * 2012-07-05 2020-03-02 오므론 매니지먼트 센터 오브 아메리카, 인코포레이티드 중계 전송을 통한 usb 시그널링 방법 및 장치

Also Published As

Publication number Publication date
JP2016051347A (ja) 2016-04-11

Similar Documents

Publication Publication Date Title
JP6889126B2 (ja) 転送制御装置、転送制御方法及びプログラム
US10069894B2 (en) Electronic device, storage medium and file transferring method
CN104937891B (zh) 用于在电子设备中控制业务的方法和装置
EP3697057B1 (en) Method for controlling bitrate in realtime and electronic device thereof
WO2014187220A1 (en) Electronic device, storage medium and file transferrting method
CN105594182A (zh) 用于媒体流式传输的改善的请求取消方法
KR20180086114A (ko) 재생 지연 방지 시스템을 포함하는 미디어 재생 장치 및 방법
CN110830460B (zh) 一种连接建立方法、装置、电子设备及存储介质
WO2016000528A1 (zh) 一种音频输出方法及设备
JP6232604B2 (ja) デバイスサーバとその制御方法
KR102532645B1 (ko) 적응적 스트리밍 서비스에서 스트리밍 어플리케이케이션으로 데이터를 제공하는 방법 및 장치
US20120166585A1 (en) Apparatus and method for accelerating virtual desktop
US20150172733A1 (en) Content transmission device, content playback device, content delivery system, control method for content transmission device, control method for content playback device, data structure, control program, and recording medium
US20090157896A1 (en) Tcp offload engine apparatus and method for system call processing for static file transmission
JP6233652B2 (ja) デバイスサーバとその制御方法
JP7162019B2 (ja) データストリーミング方法、データストリーミング装置、及びコンピュータプログラム
CN112888062B (zh) 数据同步方法、装置、电子设备及计算机可读存储介质
KR101341668B1 (ko) 데이터 통신 링크를 통한 데이터 흐름 제어
JP6090751B2 (ja) デバイスサーバとその制御方法
CN103716650B (zh) 服务器装置和信息处理方法
JP2003209594A (ja) プログラム、記録媒体、並びに情報送信装置および方法
US9413664B1 (en) Resuming media objects delivered via streaming services upon data loss events
US20070127485A1 (en) Apparatus and method for transmitting packet IP offload
CN103414938A (zh) 数字电视一体机内部通讯的控制方法及数字电视一体机
US20150341678A1 (en) Video supply apparatus, video obtaining apparatus, control methods thereof, and video supply system

Legal Events

Date Code Title Description
A621 Written request for application examination

Free format text: JAPANESE INTERMEDIATE CODE: A621

Effective date: 20170427

A871 Explanation of circumstances concerning accelerated examination

Free format text: JAPANESE INTERMEDIATE CODE: A871

Effective date: 20170427

A975 Report on accelerated examination

Free format text: JAPANESE INTERMEDIATE CODE: A971005

Effective date: 20170530

A131 Notification of reasons for refusal

Free format text: JAPANESE INTERMEDIATE CODE: A131

Effective date: 20170720

A521 Request for written amendment filed

Free format text: JAPANESE INTERMEDIATE CODE: A523

Effective date: 20170911

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

A61 First payment of annual fees (during grant procedure)

Free format text: JAPANESE INTERMEDIATE CODE: A61

Effective date: 20171011

R150 Certificate of patent or registration of utility model

Ref document number: 6233652

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

R250 Receipt of annual fees

Free format text: JAPANESE INTERMEDIATE CODE: R250