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

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

Info

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
Application number
JP2013201855A
Other languages
English (en)
Other versions
JP6090751B2 (ja
Inventor
西原 健太
Kenta Nishihara
健太 西原
新介 山地
Shinsuke Yamaji
新介 山地
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 JP2013201855A priority Critical patent/JP6090751B2/ja
Publication of JP2015069324A publication Critical patent/JP2015069324A/ja
Application granted granted Critical
Publication of JP6090751B2 publication Critical patent/JP6090751B2/ja
Active legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Abstract

【課題】デバイスがローカル接続されたデバイスサーバにおけるアイソクロナス出力転送において、ネットワークの遅延によるデータ転送量の起伏に伴う転送エラーを回復でき、またアイソクロナス転送で保証すべきデータ転送量を維持でき、アイソクロナス出力転送のネットワーク耐性を向上するデバイスサーバおよびその制御方法を提供する。【解決手段】クライアントとネットワークを介して接続され、アイソクロナス転送を行うデバイスがローカル接続されたデバイスサーバにおいて、クライアントからアイソクロナス出力転送要求を受信すると、要求された転送データをバッファリングし、ローカル接続されたデバイスに対してアイソクロナス出力転送を行い、アイソクロナス出力転送結果が正常完了または回復不能なエラーの何れでもない場合に、バッファリングされた転送データを再びアイソクロナス出力転送する。【選択図】図1

Description

本発明は、クライアントとデバイスとの間で、ネットワークを介してアイソクロナス転送を行うデバイスサーバおよびその制御方法に関するものである。
有線LAN(Local
Area Network)または無線LANなどのネットワークを通じて、コンピュータ周辺機器であるUSB(Universal Serial Bus)デバイスを当該ネットワークに接続しているコンピュータ端末(クライアント)から利用することのできるデバイスサーバシステムが知られている(特許文献1、非特許文献1を参照)。
デバイスサーバシステムでは、クライアントのデバイスドライバが発行したコマンド等のデータがネットワークパケット(トンネリングパケットと呼ぶ)に変換され、これがクライアントからデバイスサーバに向けて送信される。当該トンネリングパケットを受信したデバイスサーバは、受信したトンネリングパケットに含まれるコマンド等のデータを取り出し、USB通信に変換して自身にローカル接続されているUSBデバイスに転送する。
デバイスサーバとUSBデバイスとの間における通信は、USB規格の通信に準じている。例えば、クライアントからUSBデバイスへの送信の場合、クライアントからデバイスサーバを経由してUSBデバイスにデータを送信するとともに、随時、USBデバイスのステータスに関する応答をクライアントはデバイスサーバ経由で受信する。
USBデバイスがスピーカやディスプレイの場合、クライアントからUSBデバイスに対して音声や映像などリアルタイム性を必要とするストリーミングデータを転送する。この場合、一定時間あたりの最低限のデータ転送量を保証するアイソクロナス方式によるデータ転送(アイソクロナス転送)を行うことにより、途切れることなくデータを転送することができる。
デバイスサーバを介してクライアントとUSBデバイス間でアイソクロナス転送を行う場合、クライアントとUSBデバイスはローカル接続されているのではなく、ネットワーク経由で接続されていることから、ネットワークトラフィックが高くなり、ネットワーク区間のデータ転送速度が低下するため、アイソクロナス転送で保証する最低限のデータ転送量を維持する必要がある。
クライアントからUSBデバイスに対してアイソクロナス転送する場合、ネットワークで生じるデータ転送速度低下の影響をできる限りなくして、アイソクロナス出力転送を維持できるようにすることを目的として、クライアントは、クライアント内でアイソクロナス転送要求に対する(デバイスサーバ経由で)USBデバイスからの応答情報を擬制して処理することで、応答情報を受信したものと判断して、USBデバイスからの応答情報を待たずに次のアイソクロナス転送要求を送出し、デバイスサーバは、USBデバイスからの応答情報を破棄してクライアントへ返送しないように制御する制御方法が知られている(特許文献2)。
特許文献2に開示された制御方法によれば、クライアントは、USBデバイスからの応答情報の遅延(受信待ち)によって、次のアイソクロナス転送要求の処理が停滞することがなくなるため、アイソクロナス出力転送で保証する最低限のデータ転送量を維持することができ、また、デバイスサーバからネットワーク上に応答情報が送出されなくなるので、ネットワークトラフィックの低減を図ることができる。
上記の特許文献2に開示された制御方法は、クライアントの内部処理において、応答情報を擬製し、応答情報を受信したものと判断して、USBデバイスからの応答情報を待たずに次のアイソクロナス転送要求を送出することで、アイソクロナス転送で保証する最低限のデータ転送量を維持するものである。
しかしながら、デバイスサーバは、USBデバイスからの応答情報を破棄してクライアントへ返送しないように制御することから、USBデバイスからの応答情報が回復不能なエラー(致命的なエラー)の場合であっても、クライアントは次のアイソクロナス転送要求を送出することになり、好ましくないという問題がある。
また、デバイスサーバの内部処理において、アイソクロナス転送要求に対するUSBデバイスからの応答情報を擬製してダミー応答データをクライアントに送信するデバイスサーバの制御方法が知られている(特許文献3)。
特許文献3に開示された制御方法によれば、クライアントは、USBデバイスからの応答情報の遅延(受信待ち)によって、次のアイソクロナス転送要求の処理が停滞することがなくなるため、アイソクロナス出力転送で保証する最低限のデータ転送量を維持することができる。
しかしながら、特許文献3に開示された制御方法を実行するデバイスサーバは、所定時間経過してもUSBデバイスからの応答情報を受け取らなかった場合には、USBデバイスからの応答情報を擬製してダミー応答データをクライアントに送信することから、USBデバイス自体が回復不能なステータス(致命的なステータス)の場合であっても、クライアントは次のアイソクロナス転送要求を送出することになり、好ましくないという問題がある。また、特許文献3に開示された制御方法を実行するデバイスサーバは、所定時間内に受け取ったUSBデバイスからの応答情報をそのままクライアントに送信するので、応答情報にエラーがあった場合に、クライアントがデバイスサーバとの通信セッションをすぐに切断してしまうという問題がある。
特開2008−287453号公報 特開2012−138694号公報 特許第4617440号公報
サイレックス・テクノロジー株式会社ホームページ<http://www.silex.jp/products/usbdeviceserver/sx3000gb.html>
従来、クライアントは数百ミリ秒先読みしてアイソクロナス転送要求し、ネットワークの遅延を担保している。デバイスサーバでは、クライアントよりスケジューリングされたアイソクロナス転送要求をそのままに、USBデバイスに対してアイソクロナス転送を行っている。
しかし、特に無線LANの場合は電波状況によりネットワークのリンク切れやアグリゲーションの弊害によってネットワーク転送が滞り、クライアントによる数百ミリ秒の先読みだけでは担保できないことがある。
一旦、無線LANレベルでリンクが切れて復帰した場合に、クライアントから一度に複数のアイソクロナス転送要求が出されて、大量のデータが転送される場合がある。デバイスサーバでは、クライアントのアイソクロナス転送要求をそのままに、USBデバイスに対してアイソクロナス転送を行っているため、アイソクロナス転送のスケジューリングができない現象が発生する。この場合、USB規格の通信エラー(スケジューラのバッファ空きが無いためにデータフローを生じたというスタックレベルのエラー)として応答される。
クライアントは、USBデバイスのステータスに関する応答をデバイスサーバ経由で受信するため、こうした回復不能でないエラーにも関わらず、クライアントはデバイスサーバとのセッションを切断してしまい、アイソクロナス転送は終了してしまう。
このように、従来のデバイスサーバにおけるアイソクロナス転送では、ネットワークの遅延によるデータ転送量の起伏に伴う転送エラーを回復することができない。また従来のデバイスサーバでは、クライアントのアイソクロナス転送要求をそのままに、USBデバイスに対してアイソクロナス転送を行っているためにアイソクロナス転送で保証すべきデータ転送量を維持できない。すなわち、従来のデバイスサーバにおけるアイソクロナス転送方式では、ネットワーク耐性が弱いという問題がある。
上記状況に鑑みて、本発明は、デバイスがローカル接続されたデバイスサーバにおけるアイソクロナス出力転送において、ネットワークの遅延によるデータ転送量の起伏に伴う転送エラーを回復でき、またアイソクロナス転送で保証すべきデータ転送量を維持でき、アイソクロナス出力転送のネットワーク耐性を向上するデバイスサーバおよびデバイスサーバ制御方法を提供することを目的とする。
上記目的を達成すべく、本発明のデバイスサーバは、クライアントとネットワークを介して接続され、アイソクロナス転送を行うデバイスがローカル接続されたデバイスサーバにおいて、クライアントからアイソクロナス出力転送要求を受信すると、要求された転送データをバッファリングするデータバッファ部を備え、ローカル接続されたデバイスに対してアイソクロナス出力転送を行い、アイソクロナス出力転送結果が正常完了または回復不能なエラーの何れでもない場合に、データバッファ部にバッファリングされた転送データをデバイスに対して再びアイソクロナス出力転送する。
ここで、クライアントとは、パーソナルコンピュータなどの一般的なコンピュータ端末を意味し、ネットワークに接続され、デバイスサーバにローカル接続されたデバイスに対してアイソクロナス出力転送を行う装置である。またデバイスとは、デバイスサーバにローカル接続され、USB通信規格などのデータ通信方式によって、デバイスサーバとデータ通信できる装置である。
また、アイソクロナス出力転送結果において回復不能なエラーとは、デバイスの故障や電源OFFによるデータ通信プロトコルのエラーであり、一方、回復不能ではないエラーとは、前述のようにデータ転送スケジューラのバッファに空きがないためのデータフローによるエラーである。
本発明のデバイスサーバは、アイソクロナス出力転送結果が正常完了または回復不能なエラーの場合、クライアントに転送結果を送付する一方、アイソクロナス出力転送結果が回復不能ではないエラーの場合、バッファリングされた転送データをデバイスに対して再びアイソクロナス出力転送することにより、クライアントとデバイスサーバのセッションを継続し、アイソクロナス転送で保証すべきデータ転送量を維持する。
本発明のデバイスサーバは、スケジューリングできなかったアイソクロナス出力データをデバイスサーバ内でバッファリングしておき、先のアイソクロナス出力転送完了時に再スケジュールすることで、出力データを途切れなく転送する。無線LANのようにネットワークのリンク切れやアグリゲーションの弊害でデータ転送が滞るような事象が発生する場合に、特に効果を期待することができる。
本発明のデバイスサーバにおいて、バッファリングされた転送データを再びアイソクロナス出力転送するタイミングは、「直前のアイソクロナス出力転送結果が正常完了したとき」、または、「クライアントから次のアイソクロナス出力転送要求を受信したとき」である。
バッファリングされた転送データを再びアイソクロナス出力転送するタイミングとして、「直前のアイソクロナス出力転送結果が正常完了したとき」とするのは、データ転送スケジューラのバッファに空きがないためのデータフローによる回復不能ではないエラーの場合、後にバッファに空きができエラーが解消することが推測できるためである。
また、バッファリングされた転送データを再びアイソクロナス出力転送するタイミングとして、「クライアントから次のアイソクロナス出力転送要求を受信したとき」とするのは、クライアントのアイソクロナス出力転送のスケジュールと同期させるためである。
本発明のデバイスサーバにおいて、直前のアイソクロナス出力転送要求の転送が正常完了してから所定時間内に次のアイソクロナス出力転送要求を受信しないとき、直前の転送要求時にバッファリングされた転送データをダミーデータとして、デバイスに対してアイソクロナス出力転送を行うことが好ましい。
アイソクロナス出力転送要求の転送が正常完了してから所定時間内に次のアイソクロナス出力転送要求を受信しないとき、デバイスに対してアイソクロナス転送で保証すべきデータ転送量を維持することができない。
デバイスに対してアイソクロナス転送で保証すべきデータ転送量を維持するために、バッファリングされた転送データをダミーデータとして、デバイスに対してアイソクロナス出力転送を行う。
また、本発明のデバイスサーバの制御方法は、クライアントとネットワークを介して接続され、アイソクロナス転送を行うデバイスがローカル接続されたデバイスサーバの制御方法であって、下記1)〜3)のステップを備える。
1)クライアントからアイソクロナス出力転送要求を受信する転送要求受信ステップと、要求された転送データをバッファリングする転送データ保存ステップ
2)ローカル接続されたデバイスに対してアイソクロナス出力転送を行う出力転送ステップ
3)アイソクロナス出力転送結果が正常完了または回復不能なエラーの何れでもない場合に、バッファリングされた転送データをデバイスに対して再びアイソクロナス出力転送する再転送ステップ
本発明のデバイスサーバの制御方法における再転送ステップにおいて、バッファリングされた転送データを再びアイソクロナス出力転送するタイミングは、直前のアイソクロナス出力転送結果が正常完了したとき、または、クライアントから次のアイソクロナス出力転送要求を受信したときである。
本発明のデバイスサーバの制御方法において、直前のアイソクロナス出力転送要求の転送が正常完了してから所定時間内に次のアイソクロナス出力転送要求を受信しないとき、直前の転送要求時にバッファリングされた転送データをダミーデータとして、デバイスに対してアイソクロナス出力転送を行うダミー転送ステップを更に備えることが好ましい。
本発明は、デバイスがローカル接続されたデバイスサーバにおけるアイソクロナス出力転送において、ネットワークの遅延によるデータ転送量の起伏に伴う転送エラーを回復でき、またアイソクロナス転送で保証すべきデータ転送量を維持でき、アイソクロナス出力転送のネットワーク耐性を向上するといった効果を奏する。
デバイスサーバシステムの機能ブロック図 アイソクロナス出力転送を行うデバイスサーバシステムの概念図 従来のデバイスサーバの制御フロー図 ネットワークを介したアイソクロナス出力転送のエラー発生の説明図 従来のデバイスサーバシステムのデータフロー図 本発明のデバイスサーバシステムのデータフロー図(1) 本発明のデバイスサーバの制御フローチャート(1) 本発明のデバイスサーバの制御フローチャート(2) 本発明のデバイスサーバシステムのデータフロー図(2) 本発明のデバイスサーバシステムのデータフロー図(3)
以下、本発明の実施形態について、図面を参照しながら詳細に説明していく。なお、本発明の範囲は、以下の実施例や図示例に限定されるものではなく、幾多の変更及び変形が可能である。
図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、入力部、表示部、メモリ、外部記憶部、図示する通信インタフェース25などが内部バスで接続されている。
このクライアント20には、外部記憶部に格納され、実行時にメモリに搭載されるアプリケーション21とデバイスドライバ22とUSBクラスドライバ23とトンネリングドライバ24がソフトウェア部品として存在する。
この他、ソフトウェア部品として、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から渡されたパケットデータをネットワークパケットにカプセル化する。その一方で、デバイスサーバ10からネットワークパケットを受信すると、このネットワークパケットから応答パケットデータを取り出し(デカプセルして)、USBクラスドライバ23,デバイスドライバ22に受け渡す。
一方、デバイスサーバ10には、通信インタフェース11とトンネリングドライバ12とUSBドライバ13、およびデータバッファ部14が搭載されている。
トンネリングドライバ12では、クライアント20からネットワークパケットを受信すると、このネットワークパケットからUSBのデータ形式に準拠したパケットデータを取り出し(デカプセルして)、USBドライバ13に送る。また、USBドライバ13からUSBのデータ形式に準拠したパケットデータを受け取って、ネットワークパケットにカプセル化する。
図2に示すように、クライアント20にマイク28が接続され、USBデバイスとしてスピーカ32がUSB接続ケーブル31を介してデバイスサーバ10に接続されているシステムでは、クライアント20のマイク28からネットワークを介してスピーカ32に対して音声データをストリーミングデータとして転送する。この場合、一定時間あたりの最低限のデータ転送量を保証するアイソクロナス出力転送によって、音声データが途切れることなくスピーカに転送される。
図3は従来のデバイスサーバの制御フローを示している。従来のデバイスサーバは、クライアントからアイソクロナス出力転送要求を受信した場合(S31)、受信データをURB(USB Request Block)単位でUSBドライバに転送する(S33)。そして、デバイスサーバは、USBドライバから転送結果を受け取り、転送結果を判別する。転送結果としてエラーを受け取ると(S35)、クライアントに転送結果(エラー)を送付する(S37)。
図4はネットワークを介したアイソクロナス出力転送におけるデータ転送量のグラフである。アイソクロナス出力転送では、常に一定量のデータ流量が要求される。正常時は、図4に示すように、データ転送量は一定値1000(bps)となっている。一方、異常時は、200〜400(ms)の間でネットワークに遅延が発生し、復旧した瞬間(500ms目)にて想定外にデータが流れている。想定外にデータが流れている状況下で、USBドライバにデータ転送要求するとエラーとなる。
図5は従来のデバイスサーバシステムのデータフローを示している。図5のデータフローは、クライアント20がデバイスサーバ10とネットワークで接続され、デバイスサーバ10とUSBデバイス30がUSB接続されている状況下で、クライアント20からアイソクロナス出力転送要求が出され、USBドライバ13がエラー応答する場合を示している。先ず、クライアント20からアイソクロナス出力転送要求(Isoc−out転送要求C1)があり、デバイスサーバ10のトンネリングドライバ12がそれを受けてUSBドライバ13にアイソクロナス出力転送要求(Isoc−out転送要求C2)を行う。USBドライバ13はUSBデバイス30に対してURB単位でアイソクロナス出力転送要求(Isoc−out転送要求C3〜C6,C8)を行う。アイソクロナス出力転送が無事完了すると、転送応答(OK)C9がUSBドライバ13から出され、トンネリングドライバ12によってクライアント20に転送完了応答C10が送られる。
しかしながら、ネットワークレベルでリンクが切れて復帰した際に、クライアントから一度に複数のアイソクロナス転送要求が出されて、大量のデータが転送される場合がある。
この場合、例えば、クライアント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は、本発明のデバイスサーバシステムのデータフローを示している。
図6に示すように、本発明のデバイスサーバシステムの場合、アイソクロナス転送のスケジューリングができない現象が発生し、USBドライバ13から転送応答C13としてエラーが返された際に、データバッファ部14にバッファリングされた転送データをUSBデバイス30に対して再びアイソクロナス出力転送要求(Isoc−out転送要求C15)することにより、クライアント20とデバイスサーバ10のセッションを継続し、アイソクロナス転送で保証すべきデータ転送量を維持する。
アイソクロナス出力転送において、USBドライバ13が転送応答としてエラーを返す場合は、回復不能なエラーと回復不能ではないエラーに分類できる。回復不能なエラーは、デバイスの故障や電源OFFによるデータ通信プロトコルのエラーである。また回復不能ではないエラーとは、データ転送スケジューラのバッファに空きがないためのデータフローによるエラーである。
データ転送スケジューラのバッファに空きがないためのデータフローによるエラーの場合、後にバッファに空きができエラーが解消することが推測できることから、デバイスサーバ10内のトンネリングドライバ12の処理により、直前の転送データがデータバッファ部14にバッファリングされ、そのバッファリングされた転送データを再びアイソクロナス出力転送要求する。USBドライバ13はUSBデバイス30に対してURB単位でアイソクロナス出力転送要求(Isoc−out転送要求C16〜C20)を行う。アイソクロナス出力転送が無事完了すると、転送応答(OK)C21がUSBドライバ13から出され、トンネリングドライバ12によってクライアント20に転送完了応答C22が送られる。
図7は、本発明のデバイスサーバの制御フローチャートである。
デバイスサーバ10、クライアント20からアイソクロナス出力転送要求を受信した場合(S101)、データバッファ部14に転送データを保存し(S103)、URB単位でUSBデバイスにデータ転送する(S105)。そして、USBドライバから転送結果を受信し、その結果が正常終了(OK)であった場合(S107)、クライアント20に転送結果(OK)を応答し(S109)、クライアント20から次のアイソクロナス出力転送要求を待つ。
一方、USBドライバから転送結果を受信し、その結果がエラーであった場合(S107)、そのエラーが致命的なエラーか否かを判別する(S111)。転送結果が致命的なエラーであった場合、クライアントに転送結果(エラー)を応答し(S113)、クライアント20から次のアイソクロナス出力転送要求を待つ。
一方、転送結果のエラーが致命的なエラーでない場合、一過性のエラーと判断し、バッファ上のいずれかのデータをURB単位で転送完了している場合(S115においてYesの場合)、データバッファ部14の転送データをUSBデバイスに再転送する(S117)。転送完了しない場合(S115においてNoの場合)、クライアントから次の転送要求を受信したか否かを判断し、受信したと判断する場合(S119においてYesの場合)、バッファ上の転送データをUSBデバイスに再転送する(S117)。一方、クライアントから次の転送要求を受信しない場合(S119においてNoの場合)、一過性のエラーが継続していると判断し、バッファ上のいずれかのデータをURB単位で転送完了しているか(S115)の判断フローへ戻る。
また、本発明のデバイスサーバは、図8に示す制御フローを行う。すなわち、直前のアイソクロナス出力転送要求の転送完了(結果OK)から所定時間内に次の転送要求を受信していない場合(S21)、バッファ上のデータをダミーデータとして転送(URB単位)する(S23)。
本発明のデバイスサーバは、図8に示す制御フローを行うことにより、直前のアイソクロナス出力転送要求に基づくデータ転送が正常完了してから所定時間内に次のアイソクロナス出力転送要求を受信しないとき、直前の転送要求時にバッファリングされた転送データをダミーデータとして、USBデバイスに対してアイソクロナス出力転送を行うことにより、アイソクロナス転送で保証すべきデータ転送量を維持することができる。
図8に示す制御フローを行った場合のデータフローについて、図9,10を参照して説明する。
図9に示すように、トンネリングドライバ12によってクライアント20に転送完了応答C9が送られた後、所定時間内に次のアイソクロナス出力転送要求を受信しないとき(C10)、デバイスサーバ10はダミーデータ(直前の転送要求時にバッファリングされた転送データ)をアイソクロナス出力転送要求し(C11)、USBドライバ13はUSBデバイス30に対してURB単位でアイソクロナス出力転送要求(Isoc−out転送要求C12、C15〜C18)を行う。アイソクロナス出力転送が無事完了すると、転送応答(OK)C19がUSBドライバ13から出され、トンネリングドライバ12によってクライアント20に転送完了応答C20が送られる。
このダミーデータをアイソクロナス出力転送している途中で、クライアント20からアイソクロナス出力転送要求があった場合(C13),デバイスサーバ10はその要求を破棄する(C14)。
デバイスサーバ10は、所定時間内に次のアイソクロナス出力転送要求を受信しないときに、直前の転送要求時にバッファリングされた転送データをダミーデータとしてアイソクロナス出力転送要求することで、図10に示すようにUSBデバイス30に一定間隔でデータ転送することが可能になる。
なお、これまでの実施例では、クライアントがネットワークを介してUSBデバイスを利用するデバイスサーバシステムを例に説明したが、本発明の適用範囲はこれに限定されず、USB通信規格と同等の通信方式、例えば、IEEE1394など別のインタフェースに準拠したものであってもよい。
本発明は、USBデバイスなどの周辺デバイスの利便性を高めるデバイスサーバシステムに有用である。
10 デバイスサーバ
20 クライアント
28 マイク
30 USBデバイス
31 USB接続ケーブル
32 スピーカ
40 ネットワーク

Claims (6)

  1. クライアントとネットワークを介して接続され、アイソクロナス転送を行うデバイスがローカル接続されたデバイスサーバであって、
    クライアントからアイソクロナス出力転送要求を受信すると要求された転送データをバッファリングするデータバッファ部を備え、
    ローカル接続されたデバイスに対してアイソクロナス出力転送を行う際、アイソクロナス出力転送結果が正常完了または回復不能なエラーの何れでもない場合に、前記データバッファ部にバッファリングされた転送データを前記デバイスに対して再びアイソクロナス出力転送することを特徴とするデバイスサーバ。
  2. 前記データバッファ部にバッファリングされた転送データを再びアイソクロナス出力転送するタイミングは、直前のアイソクロナス出力転送結果が正常完了したとき、または、クライアントから次のアイソクロナス出力転送要求を受信したとき、であることを特徴とする請求項1に記載のデバイスサーバ。
  3. 直前のアイソクロナス出力転送要求の転送が正常完了してから所定時間内に次のアイソクロナス出力転送要求を受信しないとき、直前の転送要求時に前記データバッファ部にバッファリングされた転送データをダミーデータとして、デバイスに対してアイソクロナス出力転送を行うことを特徴とする請求項1又は2に記載のデバイスサーバ。
  4. クライアントとネットワークを介して接続され、アイソクロナス転送を行うデバイスがローカル接続されたデバイスサーバの制御方法であって、
    クライアントからアイソクロナス出力転送要求を受信する転送要求受信ステップと、
    要求された転送データをバッファリングする転送データ保存ステップと、
    ローカル接続されたデバイスに対してアイソクロナス出力転送を行う出力転送ステップと、
    アイソクロナス出力転送結果が正常完了または回復不能なエラーの何れでもない場合に、前記転送データ保存ステップにおいてバッファリングされた転送データをデバイスに対して再びアイソクロナス出力転送する再転送ステップ、を備えることを特徴とするデバイスサーバ制御方法。
  5. 再転送ステップにおいて、
    バッファリングされた転送データを再びアイソクロナス出力転送するタイミングは、直前のアイソクロナス出力転送結果が正常完了したとき、または、クライアントから次のアイソクロナス出力転送要求を受信したとき、であることを特徴とする請求項4に記載のデバイスサーバ制御方法。
  6. 直前のアイソクロナス出力転送要求の転送が正常完了してから所定時間内に次のアイソクロナス出力転送要求を受信しないとき、直前の転送要求時にバッファリングされた転送データをダミーデータとして、デバイスに対してアイソクロナス出力転送を行うダミー転送ステップを更に備えたことを特徴とする請求項4又は5に記載のデバイスサーバ制御方法。
JP2013201855A 2013-09-27 2013-09-27 デバイスサーバとその制御方法 Active JP6090751B2 (ja)

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)

* Cited by examiner, † Cited by third party
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)

* Cited by examiner, † Cited by third party
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 マスタ−スレーブ通信システムおよび通信方法

Patent Citations (6)

* Cited by examiner, † Cited by third party
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)

* Cited by examiner, † Cited by third party
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