JP6399105B2 - 情報処理システム、情報処理方法、情報処理装置および制御プログラム - Google Patents

情報処理システム、情報処理方法、情報処理装置および制御プログラム Download PDF

Info

Publication number
JP6399105B2
JP6399105B2 JP2016560257A JP2016560257A JP6399105B2 JP 6399105 B2 JP6399105 B2 JP 6399105B2 JP 2016560257 A JP2016560257 A JP 2016560257A JP 2016560257 A JP2016560257 A JP 2016560257A JP 6399105 B2 JP6399105 B2 JP 6399105B2
Authority
JP
Japan
Prior art keywords
communication
data
information processing
channel
application
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.)
Expired - Fee Related
Application number
JP2016560257A
Other languages
English (en)
Other versions
JPWO2016080427A1 (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.)
NEC Corp
Original Assignee
NEC Corp
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 Corp filed Critical NEC Corp
Publication of JPWO2016080427A1 publication Critical patent/JPWO2016080427A1/ja
Application granted granted Critical
Publication of JP6399105B2 publication Critical patent/JP6399105B2/ja
Expired - Fee Related legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Images

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F13/00Interconnection of, or transfer of information or other signals between, memories, input/output devices or central processing units
    • G06F13/38Information transfer, e.g. on bus
    • G06F13/382Information transfer, e.g. on bus using universal interface adapter
    • G06F13/385Information transfer, e.g. on bus using universal interface adapter for adaptation of a particular data processing system to different peripheral devices
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L1/00Arrangements for detecting or preventing errors in the information received
    • H04L1/24Testing correct operation
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F13/00Interconnection of, or transfer of information or other signals between, memories, input/output devices or central processing units
    • G06F13/38Information transfer, e.g. on bus
    • G06F13/42Bus transfer protocol, e.g. handshake; Synchronisation
    • G06F13/4282Bus transfer protocol, e.g. handshake; Synchronisation on a serial bus, e.g. I2C bus, SPI bus
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F5/00Methods or arrangements for data conversion without changing the order or content of the data handled
    • G06F5/06Methods or arrangements for data conversion without changing the order or content of the data handled for changing the speed of data flow, i.e. speed regularising or timing, e.g. delay lines, FIFO buffers; over- or underrun control therefor
    • G06F5/10Methods or arrangements for data conversion without changing the order or content of the data handled for changing the speed of data flow, i.e. speed regularising or timing, e.g. delay lines, FIFO buffers; over- or underrun control therefor having a sequence of storage locations each being individually accessible for both enqueue and dequeue operations, e.g. using random access memory
    • G06F5/12Means for monitoring the fill level; Means for resolving contention, i.e. conflicts between simultaneous enqueue and dequeue operations
    • G06F5/14Means for monitoring the fill level; Means for resolving contention, i.e. conflicts between simultaneous enqueue and dequeue operations for overflow or underflow handling, e.g. full or empty flags
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L1/00Arrangements for detecting or preventing errors in the information received
    • H04L1/20Arrangements for detecting or preventing errors in the information received using signal quality detector
    • H04L1/205Arrangements for detecting or preventing errors in the information received using signal quality detector jitter monitoring
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F2205/00Indexing scheme relating to group G06F5/00; Methods or arrangements for data conversion without changing the order or content of the data handled
    • G06F2205/12Indexing scheme relating to groups G06F5/12 - G06F5/14
    • G06F2205/126Monitoring of intermediate fill level, i.e. with additional means for monitoring the fill level, e.g. half full flag, almost empty flag

Landscapes

  • Engineering & Computer Science (AREA)
  • Theoretical Computer Science (AREA)
  • Physics & Mathematics (AREA)
  • General Engineering & Computer Science (AREA)
  • General Physics & Mathematics (AREA)
  • Computer Networks & Wireless Communication (AREA)
  • Signal Processing (AREA)
  • Quality & Reliability (AREA)
  • Information Transfer Systems (AREA)

Description

本発明は、情報処理システム、情報処理方法、サーバ、情報処理装置、通信端末およびそれらの制御方法と制御プログラムに関する。
上記技術分野において、特許文献1には、デバイスドライバを構成する機能ドライバとハブドライバとの間を、ネットワークを介した通信で接続し、USBデバイスを制御する技術が開示されている。
特開2013−016165号公報
しかしながら、上記文献に記載の技術では、ネットワーク通信におけるデータ転送がUSB通信におけるデータ転送に追いつかない状況が発生すると、オーバーフロー(オーバーラン)やアンダーフロー(アンダーラン)のためにデータ転送エラーとなり、データを正常に入出力することができない。
本発明の目的は、上述の課題を解決する技術を提供することにある。
上記目的を達成するため、本発明に係る情報処理システムは、
デバイスと、
前記デバイスを制御するデバイス制御手段と、
前記デバイス制御手段とのインタフェースを行なうデバイスインタフェース手段と、
アプリケーションと、前記アプリケーションとのインタフェースを行なうアプリケーションインタフェース手段とを有する情報処理装置と、
前記アプリケーションインタフェース手段と前記デバイスインタフェース手段とを、通信手段を介して接続し、前記アプリケーションと前記デバイスとの間に制御チャネルとデータチャネルとを確立するチャネル確立手段と、
前記チャネル確立手段により確立されたチャネルを介したデータ転送におけるエラー発生を抑制するエラー抑制手段と、
を備える。
上記目的を達成するため、本発明に係る情報処理方法は、
通信端末において、デバイスを制御するデバイス制御手段とのインタフェースを行なうデバイスインタフェース手段を起動する第1起動ステップと、
情報処理装置において、アプリケーションとのインタフェースを行なうアプリケーションインタフェース手段を起動する第2起動ステップと、
前記情報処理装置の前記アプリケーションインタフェース手段と前記通信端末の前記デバイスインタフェース手段とを、通信手段を介して接続し、前記アプリケーションと前記デバイスとの間に制御チャネルとデータチャネルとを確立するチャネル確立ステップと、
前記チャネル確立ステップにおいて確立されたチャネルを介したデータ転送におけるエラー発生を抑制するエラー抑制ステップと、
を含む。
上記目的を達成するため、本発明に係る情報処理装置は、
アプリケーションと、
前記アプリケーションとのインタフェースを行なうアプリケーションインタフェース手段と、
前記アプリケーションインタフェース手段を、デバイスを制御するデバイス制御手段とのインタフェースを行なうデバイスインタフェース手段と通信手段を介して接続し、前記アプリケーションと前記デバイスとの間に制御チャネルとデータチャネルとを確立するチャネル確立手段と、
前記チャネル確立手段により確立されたチャネルを介したデータ転送におけるエラー発生を抑制するエラー抑制手段と、
を備える。
上記目的を達成するため、本発明に係る情報処理装置の制御方法は、
アプリケーションとのインタフェースを行なうアプリケーションインタフェース手段を起動する起動ステップと、
前記アプリケーションインタフェース手段を、デバイスを制御するデバイス制御手段とのインタフェースを行なうデバイスインタフェース手段と通信手段を介して接続し、前記アプリケーションと前記デバイスとの間に制御チャネルとデータチャネルとを確立するチャネル確立ステップと、
前記チャネル確立ステップにおいて確立されたチャネルを介したデータ転送におけるエラー発生を抑制するエラー抑制ステップと、
を含む。
上記目的を達成するため、本発明に係る情報処理装置の制御プログラムは、
アプリケーションとのインタフェースを行なうアプリケーションインタフェース手段を起動する起動ステップと、
前記アプリケーションインタフェース手段を、デバイスを制御するデバイス制御手段とのインタフェースを行なうデバイスインタフェース手段と通信手段を介して接続し、前記アプリケーションと前記デバイスとの間に制御チャネルとデータチャネルとを確立するチャネル確立ステップと、
前記チャネル確立ステップにおいて確立されたチャネルを介したデータ転送におけるエラー発生を抑制するエラー抑制ステップと、
をコンピュータに実行させる。
上記目的を達成するため、本発明に係る通信端末は、
デバイスを制御するデバイス制御手段と、
前記デバイス制御手段とのインタフェースを行なうデバイスインタフェース手段と、
前記デバイスインタフェース手段を、情報処理装置が有しアプリケーションとのインタフェースを行なうアプリケーションインタフェース手段と通信手段を介して接続し、前記アプリケーションと前記デバイスとの間に制御チャネルとデータチャネルとを確立するチャネル確立手段と、
前記チャネル確立手段により確立されたチャネルを介したデータ転送におけるエラー発生を抑制するエラー抑制手段と、
を備える。
上記目的を達成するため、本発明に係る通信端末の制御方法は、
デバイスを制御するデバイス制御手段とのインタフェースを行なうデバイスインタフェース手段を起動する起動ステップと、
前記デバイスインタフェース手段を、情報処理装置が有しアプリケーションとのインタフェースを行なうアプリケーションインタフェース手段と通信手段を介して接続し、前記アプリケーションと前記デバイスとの間に制御チャネルとデータチャネルとを確立するチャネル確立ステップと、
前記チャネル確立ステップにおいて確立されたチャネルを介したデータ転送におけるエラー発生を抑制するエラー抑制ステップと、
を含む。
上記目的を達成するため、本発明に係る通信端末の制御プログラムは、
デバイスを制御するデバイス制御手段とのインタフェースを行なうデバイスインタフェース手段を起動する起動ステップと、
前記デバイスインタフェース手段を、情報処理装置が有しアプリケーションとのインタフェースを行なうアプリケーションインタフェース手段と通信手段を介して接続し、前記アプリケーションと前記デバイスとの間に制御チャネルとデータチャネルとを確立するチャネル確立ステップと、
前記チャネル確立ステップにおいて確立されたチャネルを介したデータ転送におけるエラー発生を抑制するエラー抑制ステップと、
をコンピュータに実行させる。
上記目的を達成するため、本発明に係るサーバは、
情報処理装置のアプリケーションとインタフェースするアプリケーションインタフェース手段と、通信端末のデバイス制御手段とインタフェースするデバイスインタフェース手段とを、通信手段を介して接続し、前記アプリケーションと前記デバイスとの間に制御チャネルとデータチャネルとを確立した場合に、確立されたチャネルを介したデータ転送におけるエラー発生を抑制するエラー抑制手段のパラメータを取得する取得手段と、
前記取得したパラメータを蓄積するデータベースと、
新たに、情報処理装置のアプリケーションインタフェース手段と、通信端末のデバイスインタフェース手段とを、通信手段を介して接続し、アプリケーションとデバイスとの間に制御チャネルとデータチャネルとを確立する場合に、前記データベースから接続条件に応じて適正なパラメータを選定してエラー抑制手段に提供する提供手段と、
を備える。
本発明によれば、ネットワーク通信によりシリアル通信バスを延長した場合であっても、データを正常に入出力することができる。
本発明の第1実施形態に係る情報処理システムの構成を示すブロック図である。 本発明の第2実施形態に係る情報処理システムの構成を示すブロック図である。 本発明の第2実施形態に係る情報処理システムの概要を示す図である。 本発明の第2実施形態に係る情報処理システムの機能構成を示すブロック図である。 本発明の第2実施形態に係る情報処理システムの通信路エラー処理を示す図である。 本発明の第2実施形態に係る通信メッセージの構成を示す図である。 本発明の第2実施形態に係る通信データ構成を示す図である。 本発明の第2実施形態に係る情報処理システムにおけるデータ伝送を示す図である。 前提技術に係る情報処理システムの概要を示す図である。 前提技術に係る情報処理システムの概要を示す図である。 前提技術に係るUSBの転送方式を示す図である。 本発明の第2実施形態に係る情報処理装置の機能構成を示すブロック図である。 本発明の第2実施形態に係る通信端末の機能構成を示すブロック図である。 本発明の第2実施形態に係る情報処理システムにおける情報の流れを示す図である。 本発明の第2実施形態に係るFIFO容量テーブルの構成を示す図である。 本発明の第2実施形態に係るUSBのフォーマットおよびプロトコルを示す図である。 本発明の第2実施形態に係る情報処理装置のハードウェア構成を示すブロック図である。 本発明の第2実施形態に係る情報処理装置の処理手順を示すフローチャートである。 本発明の第2実施形態に係る情報処理装置の処理手順を示すフローチャートである。 本発明の第2実施形態に係る通信端末のハードウェア構成を示すブロック図である。 本発明の第2実施形態に係る通信端末の処理手順を示すフローチャートである。 本発明の第2実施形態に係る通信端末の処理手順を示すフローチャートである。 本発明の第3実施形態に係る情報処理システムの概要を示す図である。 本発明の第3実施形態に係る情報処理装置の機能構成を示すブロック図である。 本発明の第3実施形態に係る通信テスト部の機能構成を示すブロック図である。 本発明の第3実施形態に係るFIFO容量および通信帯域の制御テーブルの構成を示す図である。 本発明の第3実施形態に係る情報処理装置の処理手順を示すフローチャートである。 本実施形態をUSBハブに適用した情報処理システムの機能構成を示すブロック図である。 本実施形態をHDMI(登録商標)に適用した情報処理システムの機能構成を示すブロック図である。 本実施形態をSCSIに適用した情報処理システムの機能構成を示すブロック図である。 本実施形態をSDカードに適用した情報処理システムの機能構成を示すブロック図である。 本実施形態を機器共有システムに適用した情報処理システムの機能構成を示すブロック図である。 本発明の第4実施形態に係る情報処理システムの構成を示すブロック図である。 本発明の第4実施形態に係るクラウドサーバの機能構成を示すブロック図である。 本発明の第4実施形態に係るシステムパラメータデータベースの構成を示す図である。 本発明の第4実施形態に係るクラウドサーバのハードウェア構成を示すブロック図である。 本発明の第4実施形態に係るクラウドサーバの動作手順を示すフローチャートである。 本発明の第5実施形態に係る情報処理システムにおけるデータ伝送を示す図である。 本発明の第5実施形態に係る情報処理システムにおける他のデータ伝送を示す図である。
以下に、図面を参照して、本発明の実施の形態について例示的に詳しく説明する。ただし、以下の実施の形態に記載されている構成要素は単なる例示であり、本発明の技術範囲をそれらのみに限定する趣旨のものではない。
[第1実施形態]
本発明の第1実施形態としての情報処理システム100について、図1を用いて説明する。情報処理システム100は、接続されたデバイスを制御するシステムである。
図1に示すように、情報処理システム100は、デバイス110と、デバイス制御部120と、デバイスインタフェース部130と、情報処理装置140と、チャネル確立部150と、エラー抑制部160と、を含む。デバイス制御部120は、デバイス110を制御する。デバイスインタフェース部130は、デバイス制御部120とのインタフェースを行なう。情報処理装置140は、アプリケーション141と、アプリケーション141とのインタフェースを行なうアプリケーションインタフェース部142とを有する。チャネル確立部150は、アプリケーションインタフェース部142とデバイスインタフェース部130とを、通信部151を介して接続し、アプリケーション141とデバイス110との間に制御チャネルとデータチャネルとを確立する。エラー抑制部160は、チャネル確立部150により確立されたチャネルを介したデータ転送におけるエラー発生を抑制する。
本実施形態よれば、チャネルを介したデータ転送におけるエラー発生を抑制するので、ネットワーク通信によりシリアル通信バスを延長した場合であっても、データを正常に入出力することができる。
[第2実施形態]
次に、本発明の第2実施形態に係る情報処理システムについて説明する。本実施形態に係る情報処理システムは、遠隔の通信端末にUSB(Universal Serial Bus)ケーブルで接続された遠隔のUSBデバイスを、情報処理装置としてのホストからネットワークを介して制御し、自装置に接続されたデバイスと同じように操作する。その場合に、FIFO(First-In First-Out)バッファを配置して、ネットワーク通信におけるデータ転送の遅れによるエラーが発生しないように抑制する。
また、データ転送におけるエラー発生を報知すると共に、エラー発生の抑制指示を受付け、受付けた抑制指示に対応して、エラー発生の抑制を調整する。なお、デバイスは、通信端末に、USB、HDMI(登録商標)、SCSI、SDカードコネクタ、近距離通信、を介して接続される。なお、データ通信手段においては、複数の階層から選択されたデバイス制御に適切な層によりデータを転送する。
《情報処理システム》
本実施形態の情報処理システムを説明する前に、本実施形態の特徴を明瞭にするために前提技術に係る情報処理システムについて説明する。
(前提技術)
図3Aは、前提技術に係る情報処理システム310の概要を示す図である。
情報処理システム310は、ホストコンピュータ上で実行されるOS(Operating System)やアプリケーション231と、ホストコンピュータ上で実行されるシステムソフトウェアであるデバイスドライバ301と、USBバスインタフェース226と、を有する。デバイスドライバ301は、例えば、デバイスの種類によって異なるプロトコルを実装するためのクラスドライバCD(Class Driver)、USB固有のプロトコルを実装するバスドライバBD(Bus Driver)、ハードウェアチップの抽象化を行なうHCD(Host Controller Driver)、を含む。また、USBバスインタフェース226はホストコントローラを含むICチップなどで提供される。
かかる構成によれば、デバイスに接続するホストコンピュータなどのデバイス制御部がデバイスに適応するデバイスドライバを有しない場合には、接続されたデバイスが動作しない。
図3Bは、前提技術に係る情報処理システム320の概要を示す図である。情報処理システム320は、本発明者が提案するネットワーク240を介して遠隔に接続された制御部(例えば、他のコンピュータや通信端末)が、デバイスを制御する構成である。遠隔に接続された制御部がデバイスに適応するデバイスドライバを有しない場合にあっても、ホストコントローラを含むUSBバスインタフェース226とのインタフェースが可能であれば、ホストコンピュータのOSまたはアプリケーションへのインタフェースと協働することで、遠隔地のデバイス制御を可能とする。
情報処理システム320は、ホストコンピュータ上で実行されるOS(アプリケーション)231と、デバイスドライバ302と、USBバスインタフェース226と、を有する。デバイスドライバ302は、ホストコンピュータ上で実行されるOSまたはアプリケーションとのインタフェースソフトウェア332と、遠隔に接続された制御部上で実行されるホストコントローラを含むUSBバスインタフェース226とのインタフェースソフトウェア325と、を有する。また、デバイスドライバ302は、インタフェースソフトウェア332と325とをネットワーク240を介して接続する通信制御部(図示せず)を含む。
かかる構成により、ホストコンピュータが遠隔地のデバイスを自機のバスI/FやシリアルI/Fに直接接続されたデバイスと同様に制御できる。しかしながら、ホストコンピュータと制御部とを接続する通信路の通信形式や通信速度と、遠隔に接続されるデバイスのバスI/FやシリアルI/Fの形式や速度と、にずれや遅延が発生すると、データ転送エラーとなる。USB接続の場合は、特に、インタラプト転送やアイソクロナス転送の場合にはデータ転送エラーが重大な結果をもたらす。
図3Cは、前提技術に係るUSBの転送方式を示す図である。
USBの転送方式には、基本的に、コントロール転送311と、バルク転送312と、インタラプト転送313と、アイソクロナス転送314と、を有する。コントロール転送311は、セットアップや設定パラメータ転送用の半二重通信であり、少ないデータ量である。バルク転送312は、記憶装置やスキャナなどの大容量高速データのINとOUTとのそれぞれ一方向の通信であるが、転送済みのデータを制御する。インタラプト転送313は、計測やマシン機器の小容量データの定期的転送(基本的にホストからの要求)であるが、データ転送エラーは機器の操作エラーなどにつながる。アイソクロナス転送314は、音声やビデオなどのリアルタイムの一定期間内のデータ量を保証すべき転送であり、また、再送処理がないので、データ転送の信頼性が重要である。
これらの転送方式の特徴および用途に関連して、転送速度、転送周期およびデータ量/USBパケット315の動作がデータのオーバーフロー(オーバーラン)やアンダーフロー(アンダーラン)なしに実現することが求められる。
本実施形態の情報処理システムは、チャネルを介したデータ転送におけるエラー発生を抑制して、ネットワーク通信によりシリアル通信バスを延長した場合であっても、データを正常に入出力することができるようにする。
《本実施形態の情報処理システム》
図2A乃至図2Gを参照して、本実施形態の情報処理システム200の構成を説明する。
(システム構成)
図2Aは、本実施形態に係る情報処理システム200の構成を示すブロック図である。
情報処理システム200は、情報処理装置としてのホスト230にネットワーク240を介して接続された通信端末221、222および223を備える。通信端末221、222および223には、それぞれシリアルバス261〜265によりデバイス212〜215が接続されている。なお、デバイス213と214とは、ハブを介して接続される。また、ホスト230には、デバイス211が接続されている。ここで、デバイス211、212はDVDユニット、デバイス213は体温計、デバイス214は血圧計、デバイス215は工作機器である。
このように接続されたデバイスは、ホスト230から操作可能なデバイスを示すデバイスマネージャの表示画面上において、次のように表示されている。ホスト230のUSBコネクタに接続されたデバイス211は、内部のユニバーサル_シリアル_バス_コントローラの欄に“USB_DVD”231と表示される。ネットワーク240を介して外部に接続されたデバイス212〜215は、それぞれ、リモート_ユニバーサル_シリアル_バスの欄に“USB_DVD”232、“USB_体温計”233、“USB_血圧計”234、“USB_工作機器”235と表示される。ホスト230からは、自装置に接続したデバイスもネットワーク240を介して遠隔に接続したデバイスも、同じ接続デバイスとして操作される。
なお、本実施形態においては、ネットワーク240を公衆回線や無線通信を含む遠隔通信として説明しているが、ネットワーク240をLANや近距離無線通信(例えば、Bluetooth(登録商標)やWi−Fiなど)に置き換えても、あるいは、それらを組み合わせても同様に実現でき、同じ効果を奏することができる。
(システム概要)
図2Bは、本実施形態に係る情報処理システム200の概要を示す図である。情報処理システム200の概要は、図3Bと対比させて主にソフトウェア構成を示している。
情報処理システム200は、ホストコンピュータ上で実行されるOS(アプリケーション)231と、デバイスドライバ201と、USBバスインタフェース226と、を有する。デバイスドライバ201は、ホストコンピュータ上で実行されるOSまたはアプリケーションとのインタフェースを実行するアプリケーションインタフェース(図中、アプリケーションIF)232を有する。また、デバイスドライバ201は、遠隔に接続された制御部上のUSBバスインタフェース226とのインタフェースを実行するホストコントローラインタフェース(図中、ホストコントローラIF)225を有する。また、デバイスドライバ201は、アプリケーションインタフェース232とホストコントローラインタフェース225とをネットワーク240を介して通信接続する通信制御部(図示せず)を含む。
そして、通信制御部およびアプリケーションインタフェース232に、通信形式や通信速度により発生するジッタなどを吸収するためのFIFO232a、および/または、通信制御部およびホストコントローラインタフェース225に、通信形式や通信速度により発生するジッタの吸収やデータ流量の調整などをするためのFIFO225a、を有する。FIFO232a、FIFO225aの容量は、主に、ホストコントローラとデバイスとのデータ流量と、ネットワーク上のデータ流量とに依存する。例えば、容量決定手順202として、一定時間当たりの通信量を計測して、ホストコントローラとデバイスとのデータ流量を維持するために必要な一定時間当たりの通信速度制御として決定する。
FIFOの容量を、設定したタイムスロット例(1s/125μs/1ms)に対して、あらかじめ設定した数に対応した時間蓄積をし、設定タイムスロットに所定のPKT数を出力できるように設定する。そして、その条件として、例えば、(1) 1秒間に1000パケット、(2) 音声などの、125μsecの整数倍の時間間隔で所定の回数のPKTを通信、(3) ビデオなどの、1ms当たりのフレーム数を守っての通信、を可能とするよう設定する。
なお、ジッタの吸収やデータ流量の調整は、FIFO232a、FIFO225aに限定されない。ローテーションメモリやTDM(Time Division Multiplexing)などの他の構成要素であってもよい。
かかる構成により、ホストコンピュータが遠隔地のデバイスを自機のバスI/FやシリアルI/Fに直接接続されたデバイスと同様に制御でき、かつ、チャネルを介したデータ転送におけるエラー発生を抑制して、ネットワーク通信によりシリアル通信バスを延長した場合であっても、データを正常に入出力することができる。
(システム概念)
図2Cは、本実施形態に係る情報処理システム200の概念を示す図である。なお、図2Cにおいては、常備のソフトウェアであるOSやBIOS(Basic Input/Output System)などの図示を省略している。
図2Cの情報処理システム200は、情報処理装置としてのホスト230と、遠隔にあって、ホスト230とネットワーク240を介して接続する通信端末220と、通信端末220のUSBコネクタに接続されたUSBデバイス210と、を備える。
ホスト230は、ソフトウェアとして、アプリケーションソフトウェア231と、デバイスドライバの一部としてのアプリケーションインタフェース232とを有する。アプリケーションソフトウェア231は、あらかじめホスト230が提供するサービス、あるいは、ユーザが開発したサービスを提供するためのソフトウェアである。アプリケーションインタフェース232は、アプリケーションソフトウェア231が要求した入出力ファイル操作の構造体を解釈して、入出力ファイル操作の対象デバイスやそのプロトコル、データフォーマットなどに従って、ネットワーク240を介して送受信する制御情報やデータを定義する構造体を生成する。本例ではUSBデバイス210に対する入出力ファイルのアクセスなので、USBのプロトコルに応じたコマンドやデータフォーマットに従うデータの送受信を準備する。また、アプリケーションインタフェース232は、通信部と共有する構成として、データ流量を調整するFIFO232aを備えている。
通信端末220は、ソフトウェアとして、デバイスドライバの一部としてのホストコントローラインタフェース225と、ホストコントローラおよびSIE(Serial Interface Engine)を有するUSBバスインタフェース226とを有する。ホストコントローラインタフェース225は、ネットワーク240を介して、アプリケーションインタフェース232から受信したUSBのプロトコルに応じたコマンドやデータなどを、USBバスインタフェース226のホストコントローラに理解できる形式で渡す。また、ホストコントローラインタフェース225は、ネットワーク240を介して、USBバスインタフェース226のホストコントローラから渡されたデータやデバイスステータスなどを、ネットワーク240を介して、アプリケーションインタフェース232に送信する。また、ホストコントローラインタフェース225は、通信部と共有する構成として、データ流量を調整するFIFO225aを備えている。
USBバスインタフェース226のホストコントローラは、ホストコントローラインタフェース225とコマンドやデータなどを交換しながら、USBケーブル260を介したシリアル通信をUSBプロトコルに従い実行する。USBバスインタフェース226のSIEは、USBケーブル260上の信号をUSB通信の仕様に従い制御する。
USBデバイス210は、ソフトウェアとして、通信端末220のUSBバスインタフェース226とUSBケーブル260を介して接続して、信号をやり取りするUSBデバイス210のUSBバスインタフェース216を有する。また、USBデバイス210は、デバイス情報や制御情報を含むディスクリプタを記憶するFIFO0からなるエンドポイント0217と、入出力データを記憶するFIFO1〜nからなるエンドポイント1〜n218とを有する。
かかる接続により、通信端末220とUSBデバイス210とは、お互いのUSBバスインタフェース226および216により物理レベルの通信を実行する。また、アプリケーションインタフェース232、ネットワーク240およびホストコントローラインタフェース225を介したシステムレベルのコントロール転送により、デフォルトパイプ251を介してアプリケーションソフトウェア231とエンドポイント0217との間で、基本処理としての制御通信を実現する。また、アプリケーションレベルのデータ転送では、データパイプ群252を介してアプリケーションソフトウェア231とエンドポイント1〜n218との間で、デバイスクラスの各メソッドとしてのデータ通信を実現する。
以上のように、ネットワーク240を介した、ホスト230のアプリケーションインタフェース232と通信端末220のホストコントローラインタフェース225とのネットワーク通信と、USBケーブルを介した、USBバスインタフェース226と216間のシリアル通信とから、統一された通信チャネル(パイプ)を形成することができる。
さらに、アプリケーションインタフェース232、ホストコントローラインタフェース225、通信部が共有するFIFO232a、および/または、FIFO225aにより、ジッタの吸収やデータ流量の調整を実現し、チャネルを介したデータ転送におけるエラー発生を抑制して、ネットワーク通信によりシリアル通信バスを延長した場合であっても、データを正常に入出力する。
(通信路エラー処理)
図2Dは、本実施形態に係る情報処理システム200の通信路エラー処理を示す図である。
図2Dの上段には、ホスト230において、通信路におけるデータ転送エラーが発生した場合の、対処例が図示されている。通信路エラー236が表示され、そのエラー発生したリモートUSBバス235が報知されている。なお、通信路エラーを音声で報知してもよい。通信路エラーへの対処操作例として、ネットワーク上の帯域拡大237と、FIFO232aの容量増大238と、をユーザに問い合わせている。例えば、ユーザが帯域拡大237を指示して通信路エラーがなくなると、上段右図のように、通信路確保239が通知される。
一方、図2Dの下段には、スマートフォンなどの通信端末220において、通信路におけるデータ転送エラーが発生した場合の、対処例が図示されている。通信路エラー227が表示され、そのエラー発生したリモートUSBバスが報知されている。なお、通信路エラーを音声で報知してもよい。通信路エラーへの対処操作例として、ネットワーク上の帯域拡大と、FIFO232aの容量増大と、の問い合わせ228が表示されている。例えば、ユーザが帯域拡大を指示して通信路エラーがなくなると、下段右図のように、通信路確保229が通知される。
なお、帯域拡大は、ユーザの操作単位で行なわれても、自動的に適切な帯域に拡大されてもよい。例えば、通信経路が複数ある場合に、複数の通信経路を確保することにより帯域拡大を行なってもよい。また、FIFO容量増大も、ユーザの操作単位で行なわれても、自動的に適切な容量に調整されてもよい。さらに、通信状況などを考慮して、帯域拡大とFIFO容量増大との適切な組み合わせを選定してもよい。
(通信メッセージ)
図2Eは、本実施形態に係る通信メッセージの構成を示す図である。なお、通信メッセージのフォーマットは、図2Eに限定されるものではない。
図2Eには、デフォルトパイプ251である制御チャネルで送受信される制御メッセージ270と、データパイプ群252となるデータチャネルで送受信されるデータメッセージ280とが図示されている。
制御メッセージ270の内、ホスト230から通信端末220に送信される制御メッセージは、IPアドレス271と、伝送先エリア/伝送元エリア272と、通信データ273と、誤り訂正の例えばCRC274と、を有する。IPアドレス271としては、送信先の通信端末アドレスと送信元のホストアドレスとがセットされる。伝送先エリア/伝送元エリア272としては、伝送先エリアにUSBデバイス211(212)のFIFO0が、伝送元エリアにホスト230のUSBバッファ0が、指示される。また、通信データ273としては、ホスト230が割り当てたデバイスアドレスやUSBデバイス211(212)の制御コマンドが伝送される。
制御メッセージ270の内、通信端末220からホスト230に送信される制御メッセージは、IPアドレス275と、伝送先エリア/伝送元エリア276と、通信データ277と、誤り訂正の例えばCRC278と、を有する。IPアドレス275としては、送信先のホストアドレスと送信元の通信端末アドレスとがセットされる。伝送先エリア/伝送元エリア276としては、伝送先エリアにホスト230のUSBバッファ0が、伝送元エリアにUSBデバイス211(212)のFIFO0が、指示される。また、通信データ277としては、USBデバイス211(212)のデバイスディスクリプタやデバイスステータスが伝送される。
データメッセージ280の内、ホスト230から通信端末220に送信されるデータメッセージは、IPアドレス281と、伝送先エリア/伝送元エリア282と、通信データ283と、誤り訂正の例えばCRC284と、を有する。IPアドレス281としては、送信先の通信端末アドレスと送信元のホストアドレスとがセットされる。伝送先エリア/伝送元エリア282としては、伝送先エリアにUSBデバイス211(212)のFIFO1〜nが、伝送元エリアにホスト230のUSBバッファ1〜nが、対応付けられて指示される。また、通信データ283としては、1つまたは複数のバルクOUTデータが伝送される。
データメッセージ280の内、通信端末220からホスト230に送信されるデータメッセージは、IPアドレス285と、伝送先エリア/伝送元エリア286と、通信データ287と、誤り訂正の例えばCRC288と、を有する。IPアドレス285としては、送信先のホストアドレスと送信元の通信端末アドレスとがセットされる。伝送先エリア/伝送元エリア286としては、伝送先エリアにホスト230のUSBバッファ1〜nが、伝送元エリアにUSBデバイス211(212)のFIFO1〜nが、対応付けられて指示される。また、通信データ287としては、1つまたは複数のバルクINデータが伝送される。
なお、コントロール転送、バルク転送の外に、インタラプト転送やアイソクロナス転送があるが、データメッセージの構成としては、“SETUP”ステージが省略されるが同様であるので、それらのメッセージの説明を省略する。
このように、カプセリングしたIPアドレスとしては、ホスト230と通信端末220との間のネットワーク通信であるが、データは、ホスト230にアプリケーションソフトウェア231が確保させたUSBバッファと、USBデバイス211(212)のエンドポイントであるFIFOとの間で伝送される。
(通信データ構成例)
図2Fは、本実施形態に係る通信データ構成を示す図である。図2Fにおいては、図2Eにおける、カプセル化のためのIPアドレスなどは省かれている。なお、図2Fには、本実施形態を実現する通信データ構成の一例を示すが、これに限定されるわけではない。例えば、デバイスドライバの上位層における通信データとして、関数のパラメータ(引数)を送受信することや、さらに、関数自体を送受信することなどもできる。
図2Fには、基本的な通信データ構成273/277と、USBの場合の通信データ構成273と、他のHDMI(登録商標)やSCSIの場合の通信データ構成277が示されている。
通信データ構成273/277は、デバイス特定情報を有する。デバイス特定情報は、デバイス種類と、接続バス種類と、デバイス識別子と、を含む。通信データ構成273/277は、接続バスにおける転送モードと、接続バスを介して転送すべき情報と、を有する。転送すべき情報には、コマンドやステータスやデータを含む。
USBの場合の通信データ構成273は、デバイス特定情報として、デバイス種類である産業機器と、接続バスであるUSBと、デバイス識別子であるIE001と、を有する。USBの場合の通信データ構成273は、転送モードとしてUSBコントロール転送と、転送情報としてUSBリクエストやデバイスディスクリプタを含む。かかる構成によれば、従来のUSB接続による最大127台という制限を考慮する必要はなくなる。
他のHDMI(登録商標)やSCSIの場合の通信データ構成277は、デバイス特定情報として、モニタ、HDMI(登録商標)、MT0002や、CD、SCSI、CD0005を有する。また、転送モードとしてHDMI(登録商標)制御やSCSI制御、転送情報としてDDC/CEDやコマンド/レスポンスを含む。
(データ伝送例)
図2Gは、本実施形態に係る情報処理システム200におけるデータ伝送を示す図である。なお、図2Gは、USBデバイスにおけるL2レベルの通信を示すが、通信はさらに下位レベルであっても上位レベルであってもよい。
図2Gは、USB接続されたUSBデバイスのディスクリプタ取得手順を示すシーケンス図である。
デバイス210に設定されているディスクリプタは、GET_DESCRIPTORなどのUSBリクエストにより取得される。USBリクエストは、それぞれコントロール転送によりデバイス210とやり取りされる。各コントロール転送は、セット・ステージと、データ・ステージと、ステータス・ステージとからなる。各ステージは、トークン・パケットと、データ・パケットと、ハンドシェイク・パケットとからなる。ディスクリプタは、各データ・ステージのデータ・パケットで取得される。デバイス210から取得したディスクリプタはIPヘッダやTCPヘッダでIPカプセリングして、携帯端末からなるUSBハブ220から情報処理装置230に送信される。
ここで、情報処理装置230のアプリケーションインタフェース232を構成するクラスドライバおよびバスドライバは、アプリケーション231のデバイス入出力要求に応じて、まず接続デバイスを確認するためコントロール転送とGET DESCRIPTORのUSBリクエストとを生成して、通信制御部に渡す。
IPヘッダやTCPヘッダでIPカプセリングされたコントロール転送とGET DESCRIPTORのUSBリクエストとは、通信端末からなるUSBハブ220の通信制御部で受信されてIPアンカプセリングされる。コントロール転送とGET DESCRIPTORのUSBリクエストとは、ホストコントローラインタフェース225に渡される。ホストコントローラインタフェース225は、コントロール転送とGET DESCRIPTORのUSBリクエストとに基づいて、デバイス210へのUSBバスにおける各パケットを生成するようUSBバスインタフェース(不図示)に指示する。
ホストコントローラインタフェース225は、デバイス210から受信した、データ・ステージで受信したデータ・パケットをデバイスディスクリプタとして抽出し、コントロール転送とデバイスディスクリプタとして、通信制御部に渡す。IPヘッダやTCPヘッダでIPカプセリングされたコントロール転送とデバイスディスクリプタとは、通信端末220の通信制御部から情報処理装置230の通信制御部に送信される。
情報処理装置の通信制御部は、アンカプセリングしたコントロール転送とデバイスディスクリプタを、アプリケーションインタフェース232を構成するバスドライバおよびクラスドライバに渡すと、クラスドライバはアプリケーション231のデバイス入出力要求に応答して、接続デバイス情報を通知する。
以下、他のコントロール転送や、バルク転送、インタラプト転送、アイソロナス転送においても、同様のデータ伝送が行なわれる。なお、ホストコントローラインタフェース225とUSBバスインタフェース226とが一体にされたソフトウェアであってもよい。
《情報処理装置の機能構成》
図4は、本実施形態に係る情報処理装置230の機能構成を示すブロック図である。なお、図4には、本実施形態の動作に関連の深い機能構成部を図示し、情報処理装置230が有する通常の機能構成部は図示していない。例えば、情報処理装置230がパーソナルコンピュータ(以下、PC)の場合の種々の処理機能については示していない。
情報処理装置230は、通信制御部401と、チャネル確立部402と、エラー抑制部405と、アプリケーションデータベース(図中、アプリケーションDB)410と、を備える。通信制御部401は、ネットワーク240を介する通信端末220との通信を制御する。チャネル確立部402は、アプリケーション開始部403とアプリケーションインタフェース起動部404とを含み、情報処理装置230と通信端末220、さらに、USBデバイス210へのチャネルを確立する。エラー抑制部405は、FIFO232aを有し、ネットワーク240のデータ流量をエラー発生しないように調整する。アプリケーションデータベース410は、複数のアプリケーション411、および、デバイスドライバの一部である複数のアプリケーションインタフェース412を格納する。
アプリケーション開始部403は、ユーザにサービスを提供するためにアプリケーションデータベース410からアプリケーションを選択して開始する。アプリケーションインタフェース起動部404は、アプリケーション開始部403が開始したアプリケーションにより指示された入出力ファイル操作を実現するためのアプリケーションインタフェースを、アプリケーションデータベース410から検索して起動させる。
《通信端末の機能構成》
図5は、本実施形態に係る通信端末220の機能構成を示すブロック図である。なお、図5には、本実施形態の動作に関連の深い機能構成部を図示し、通信端末220が有する通常の機能構成部は図示していない。例えば、通信端末220がスマートフォンやタブレットの場合の種々の処理機能については示していない。
通信端末220は、通信制御部501と、チャネル確立部502と、エラー抑制部506と、を備える。通信制御部501は、ネットワーク240を介する情報処理装置230との通信を制御する。チャネル確立部502は、ホストコントローラインタフェース起動部503と、デバイス制御部としてのUSBホストコントローラ504と、SIEを含むUSBコネクタ505と、を含む。ホストコントローラインタフェース起動部503は、入出力ファイル操作に対応して、デバイスドライバの一部である、USBホストコントローラ504とインタフェースするホストコントローラインタフェースを起動する。USBホストコントローラ504は、アプリケーション開始部403が開始したアプリケーションにより指示された入出力ファイル操作を実現するために、USBバスインタフェース226のパケット交換を制御する。USBコネクタ505は、USBデバイス210とのパケット交換のためにUSBケーブルが接続される。
エラー抑制部506は、FIFO225aを有し、ネットワーク240のデータ流量をエラー発生しないように調整する。
(情報の流れ)
図6は、本実施形態に係る情報処理システム200における情報の流れを示す図である。なお、図6には、主要な記憶領域を示し、細部の構成は省略している。
情報処理装置230には、入出力ファイル構造体631と、USBバッファ632と、通信構造体633と、FIFO232aと、が確保される。入出力ファイル構造体631は、アプリケーションソフトウェア231が入出力ファイル操作を指示した時に確保され、例えば、ファイル格納先やデバイス種別、入出力プロトコルなどに対応して所定の処理を行なう関数群と、デバイス情報と、入出力バッファと、を含む。USBバッファ632は、アプリケーションインタフェース232が入出力ファイル構造体631の関数群の処理に応じて、デバイス種別がUSBデバイスの場合に確保される、エンドポイントにそれぞれ対応するバッファを有する。通信構造体633は、アプリケーションインタフェース232が入出力ファイル構造体631の関数群の処理に応じて、デバイスがネットワークを介した遠隔にある場合に確保される構造体である。通信構造体633は、通信に関連するプロトコルやメッセージフォーマット、通信速度などを設定するための関数群と、送信データを一時記憶する送信バッファと、受信データを一時記憶する受信バッファと、を含む。
例えば、通信構造体633の関数群として、USBに係る情報と通信に係る情報とに対応してFIFO容量を記憶するFIFO容量テーブル610が記憶されて、FIFO232aの適切な容量が確保される。かかるFIFO232aの確保手順は本例に限定されない。あらかじめ最大限のFIFO容量が準備され、デバイス制御中のデータ流量を測定しながら使用する容量を調整する構成であってもよい。
なお、USBバッファ632は必須ではない。入出力ファイル構造体631入出力バッファと、通信構造体633の送信バッファおよび受信バッファとの間で、直接、データ転送が行なわれてもよい。
通信端末220には、通信構造体621と、USBバッファ622と、FIFO225aと、が確保される。通信構造体621は、アプリケーションインタフェース232が確保した通信構造体633に対応付けられた構造体である。通信構造体621は、通信に関連するプロトコルやメッセージフォーマット、通信速度などを設定するための関数群と、受信データを一時記憶する受信バッファと、送信データを一時記憶する送信バッファと、を含む。USBバッファ622は、デバイス種別がUSBデバイスの場合に確保される、USBデバイス210のエンドポイントにそれぞれ対応するバッファを有する。
例えば、通信構造体621の関数群として、USBに係る情報と通信に係る情報とに対応してFIFO容量を記憶する同様のFIFO容量テーブル610が記憶されて、FIFO225aの適切な容量が確保される。かかるFIFO225aの確保手順は本例に限定されない。あらかじめ最大限のFIFO容量が準備され、デバイス制御中のデータ流量を測定しながら使用する容量を調整する構成であってもよい。
USBデバイス210には、エンドポイント611として、デバイス種別に応じてFIFO0〜FIFOnが準備されている。
(FIFO容量テーブル)
図7Aは、本実施形態に係るFIFO容量テーブル610の構成を示す図である。なお、FIFO容量テーブルによるFIFO容量の決定は、図7Aに限定されない。また、図7Aには、通信帯域の決定も付加されている。
FIFO容量テーブル610は、USBの転送方式と転送速度を含むUSB情報711と、通信データのフォーマットや通信方式、通信速度を含む通信情報712と、USB情報711および通信情報712を考慮した、ホスト側と端末側のFIFO容量713と、通信帯域714と、を記憶する。
なお、ホスト230におけるデバイス入出力処理と、通信端末220におけるデバイス入出力処理とを、ネットワーク通信で分割するレベルに従って、FIFO容量713や通信帯域714も変化する。例えば、ホスト230がアプリケーション231のデバイス入出力バッファを生成し、他のデバイス入出力処理を通信端末220で行なう場合、データ通信は、通信端末220におけるデバイス入出力を維持可能なマクロのデータ量でよい。一方、ホスト230がデバイス入出力データの基本フォーマットを生成し、通信端末220では受信データを分解してデバイス入出力を行なう場合、データ通信は、通信端末220におけるデバイス入出力をミクロに維持可能にしなければならない。
図7Bは、本実施形態に係るUSBのフォーマットおよびプロトコルを示す図である。本実施形態における通信部のデータ転送は、以下のどのレベルであってもよいし、それらに限定されるものではない。
全体の構成721は、SOF(Start of Frame)から始まり、通常は1ms周期で通信される1つのまとまったトランザクション群を1フレームとする複数のフレームから構成される。なお、通信データとして通信される内容は、上記1フレームあるいは複数フレームであってもよい。この場合には、ホスト230では各USBデバイス210に対応するマクロプログラム(関数)によりまとまったトランザクション群が生成されて通信端末220と通信される。一方、通信端末220においてはフレームからトランザクション、さらにパケットへの変換とUSBデバイス210とのデータ交換が実行される。
各フレーム構成722は、SOFから始まる複数の1まとまりのトランザクション群からなる。トランザクション構成723は、“SETUP”、“OUT”、“IN”の3つの送受信の単位である。そして、各トランザクションを構成する最小の通信単位であるパケットがUSBケーブル260を介してシリアル通信される。なお、図7Bにおいて、網かけしてないデータはデバイスからホストコンピュータへ伝送されるデータ、網かけしたデータはホストコンピュータからデバイスへ伝送されるデータである。なお、通信データとして通信される内容は、複数のトランザクションであっても、各トランザクション単位であってもよい。この場合には、ホスト230では各USBデバイス210に対応するトランザクション単位のプログラム(関数)によりトランザクションが生成されて通信端末220と通信される。通信端末220においてはトランザクションからパケットへの変換とUSBデバイス210とのデータ交換が実行される。
コントロール転送のプロトコル724は、図2Cの双方向のデフォルトパイプ251を生成するように、制御データとして制御コマンドやデバイスディスクリプタを転送するプロトコルである。コントロール転送のプロトコル724は、転送データを含まない“No-data Control”と、デバイスに制御コマンドを送信する “Control Write”と、デバイスからデバイスディスクリプタなどを受信する“Control Read”とを有する。
バルク転送のプロトコル725は、図2Cの片方向のデータパイプ群252を生成するように、非同期に大量のデータを転送するプロトコルである。バルク転送のプロトコル725は、デバイスにデータを送信する “Bulk Write”と、デバイスからデータを受信する“Bulk Read”とを有する。
インタラプト転送のプロトコル726は、図2Cの片方向のデータパイプ群252を生成するように、ホストコンピュータの周期的なポーリングに対して、デバイスが任意のタイミングで応答することによって見かけ上、デバイスからの通知が行われたかのように転送するプロトコルである。インタラプト転送では少量で、いつデータが発生するかタイミングが不定なデータの転送に用いられる。インタラプト転送のプロトコル726は、デバイスにデータを送信する“Interrupt Write”と、デバイスからデータを受信する“Interrupt Read”とを有する。
アイソクロナス転送のプロトコル727は、図2Cの片方向のデータパイプ群252を生成するように、周期的にデータ転送が行われるプロトコルである。アイソクロナス転送のプロトコル727は、データの信頼性よりも時間が重視されており、エラーによる再送が行われない。音声やCCDカメラの映像などのデータ転送に用いられる。アイソクロナス転送のプロトコル727は、デバイスにデータを送信する“Isochronous Write”と、デバイスからデータを受信する“Isochronous Read”とを有する。
なお、フレームとして各転送プロトコルを対応付けてもよいし、複数の転送プロトコルをまとめてフレームを形成してもよい。いずれにしても、ホスト230側と通信端末220側とのフォーマットのネゴシエーションによって、デバイスドライバを構成するアプリケーションインタフェース232とホストコントローラインタフェース225との間の種々の層における通信が実現できる。
《情報処理装置のハードウェア構成》
図8は、本実施形態に係る情報処理装置230のハードウェア構成を示すブロック図である。
図8で、CPU(Central Processing Unit)810は演算制御用のプロセッサであり、プログラムを実行することで図4の情報処理装置230の機能構成部を実現する。ROM(Read Only Memory)820は、初期データおよびプログラムなどの固定データおよびプログラムを記憶する。また、通信制御部401は、ネットワーク240を介して通信端末220と通信する。なお、CPU810は1つに限定されず、複数のCPUであっても、あるいは画像処理用のGPUを含んでもよい。また、通信制御部401は、CPU810とは独立したCPUを有して、RAM(Random Access Memory)840の領域に送受信データを書き込みあるいは読み出しするのが望ましい。また、RAM840とストレージ850との間でデータを転送するDMACを設けるのが望ましい(図示なし)。さらに、入出力インタフェース860は、CPU810とは独立したCPUを有して、RAM840の領域に入出力データを書き込みあるいは読み出しするのが望ましい。したがって、CPU810は、RAM840にデータが受信あるいは転送されたことを認識してデータを処理する。また、CPU810は、処理結果をRAM840に準備し、後の送信あるいは転送は通信制御部401やDMAC、あるいは入出力インタフェース860に任せる。
RAM840は、CPU810が一時記憶のワークエリアとして使用するランダムアクセスメモリである。RAM840には、本実施形態の実現に必要なデータを記憶する領域が確保されている。入出力ファイル構造体631は、アプリケーションソフトウェア231の入出力ファイル操作を受けてOSが生成する構造体である。入出力ファイル構造体631は、ファイル処理関数群と、入出力フラグと、入出力バッファとのエリアを含む。通信構造体633は、アプリケーションインタフェース232が通信制御プログラム858による通信制御を渡すための構造体である。通信構造体633は、ネットワーク処理関数群と、送信バッファと、受信バッファとのエリアを含む。なお、通信構造体633には、例えば、FIFO容量テーブル610やFIFO232aが含まれる。USBバッファ632は、USBデバイス210のFIFO(エンドポイント)に対応付けられたバッファであり、制御データ用のバッファ0とデータ用のバッファ1〜nを、USBデバイス210の種別や入出力処理に対応して含む。なお、USBバッファ632は必須な構成ではなく、入出力ファイル構造体631と通信構造体633との間で、直接、データ交換が行なわれてもよい。
ストレージ850には、データベースや各種のパラメータ、あるいは本実施形態の実現に必要な以下のデータまたはプログラムが記憶されている。アプリケーション格納部851は、情報処理装置230が提供するアプリケーションソフトウェアを検索可能に格納している。関数群格納部852は、情報処理装置230が使用する関数を検索可能に格納している。ドライバ格納部853は、デバイスドライバや、デバイスドライバの一部であるアプリケーションインタフェースなどを検索可能に格納している。
ストレージ850には、以下のプログラムが格納される。OS854は、本情報処理装置230の全体を制御する基礎プログラムである。BIOS855は、本情報処理装置230の入出力操作を制御する基礎プログラムである。アプリケーションソフトウェア231は、現在、本情報処理装置230が実行中のアプリケーションプログラムである。アプリケーションインタフェース232は、デバイスドライバの一部としてアプリケーションソフトウェア231とのインタフェースを実現するプログラムである。通信制御プログラム858は、通信制御部401により通信端末220との通信を実行するプログラムである。
入出力インタフェース860は、入出力機器との入出力データをインタフェースする。入出力インタフェース860には、表示部861、操作部862、が接続される。また、本情報処理装置230に、直接、デバイスをシリアルバスケーブルで接続して使用可能な場合は、USBコントローラ(コネクタ)863、SCSIコントローラ(コネクタ)864、HDMI(登録商標)コントローラ(コネクタ)865、などが接続されてもよい。さらに、音声出力部であるスピーカや、音声入力部であるマイク、あるいは、GPS位置判定部が接続されてもよい。
なお、図8のRAM840やストレージ850には、情報処理装置230が有する汎用の機能や他の実現可能な機能に関連するプログラムやデータは図示されていない。
《情報処理装置の処理手順》
図9Aおよび図9Bは、本実施形態に係る情報処理装置230の処理手順を示すフローチャートである。このフローチャートは、図8のCPU810がRAM840を使用しながら実行して、図4の機能構成部を実現する。なお、図9Aおよび図9Bにおいては、アプリケーションインタフェース232による処理手順を説明する。
情報処理装置230は、ステップS901において、アプリケーションソフトウェア231から渡された入出力ファイル構造体を取得する。情報処理装置230は、ステップS903において、入出力ファイル構造体を参照して、USBバッファを確保する。情報処理装置230は、ステップS905において、入出力ファイル構造体を参照して、通信構造体を生成する。情報処理装置230は、ステップS907において、USBデバイス210のデバイスディスクリプタを要求する。そして、情報処理装置230は、ステップS909において、USBデバイス210のデバイスディスクリプタの受信を待つ。
USBデバイス210のデバイスディスクリプタを受信すると、情報処理装置230は、ステップS911において、受信したデバイスディスクリプタを確保されたUSBバッファ0に設定する。そして、情報処理装置230は、ステップS913において、受信したデバイスディスクリプタを入出力ファイル構造体に転送する。受信したデバイスディスクリプタの解析は、OSあるいはBIOS、アプリケーションインタフェース232、アプリケーションソフトウェア231、あるいはその協働で行なわれる。
次に、情報処理装置230は、ステップS915において、USBの場合、データ転送方式がバルク転送か、インタラプト転送あるいはアイソクロナス転送かを判定する。
データ転送方式がバルク転送の場合、情報処理装置230は、ステップS921において、バルク転送を指示する。情報処理装置230は、ステップS923において、USBバッファ632と入出力ファイル構造体631との間でデータ転送を行なう。そして、情報処理装置230は、ステップS925において、データ転送が完了したか否かを判定して、完了していなければステップS923に戻って、データ転送を繰り返す。
一方、データ転送がインタラプト転送あるいはアイソクロナス転送の場合、情報処理装置230は、ステップS931において、インタラプト転送あるいはアイソクロナス転送を指示する。次に、情報処理装置230は、ステップS933において、USB転送方式や転送速度、通信方式や通信方法などからFIFO容量テーブル610に基づいてFIFO232aを確保する。そして、情報処理装置230は、ステップS935において、USBバッファ632と入出力ファイル構造体631との間でデータ転送を行なう。情報処理装置230は、ステップS937において、通信路データのエラー発生か否かを判定する。通信路データのエラー発生であれば、情報処理装置230は、ステップS939において、FIFO容量の変更や通信帯域の変更を行ない、ステップS935に戻って、データ転送を繰り返す。通信路データのエラー発生がなければ、情報処理装置230は、ステップS941において、データ転送が完了したか否かを判定して、完了していなければステップS935に戻って、データ転送を繰り返す。
バルク転送の完了あるいはインタラプト転送やアイソクロナス転送の完了と判定すれば、情報処理装置230は、ステップS951において、入出力処理のステータスを取得する。そして、情報処理装置230は、ステップS953において、入出力処理のステータスを入出力ファイル構造体に渡して、アプリケーションソフトウェア231に通知する。
《通信端末のハードウェア構成》
図10は、本実施形態に係る通信端末220のハードウェア構成を示すブロック図である。
図10で、CPU1010は演算制御用のプロセッサであり、プログラムを実行することで図5の通信端末220の機能構成部を実現する。ROM1020は、初期データおよびプログラムなどの固定データおよびプログラムを記憶する。また、通信制御部501は、ネットワーク240を介して情報処理装置230と通信する。なお、CPU1010は1つに限定されず、複数のCPUであっても、あるいは画像処理用のGPUを含んでもよい。また、通信制御部501は、CPU1010とは独立したCPUを有して、RAM1040の領域に送受信データを書き込みあるいは読み出しするのが望ましい。また、RAM1040とストレージ1050との間でデータを転送するDMACを設けるのが望ましい(図示なし)。さらに、入出力インタフェース1060は、CPU1010とは独立したCPUを有して、RAM1040の領域に入出力データを書き込みあるいは読み出しするのが望ましい。したがって、CPU1010は、RAM1040にデータが受信あるいは転送されたことを認識してデータを処理する。また、CPU1010は、処理結果をRAM1040に準備し、後の送信あるいは転送は通信制御部501やDMAC、あるいは入出力インタフェース1060に任せる。
RAM1040は、CPU1010が一時記憶のワークエリアとして使用するランダムアクセスメモリである。RAM1040には、本実施形態の実現に必要なデータを記憶する領域が確保されている。通信構造体621は、ホストコントローラインタフェース225が通信制御プログラム1057による通信制御を渡すための構造体である。通信構造体621は、ネットワーク処理関数群と、送信バッファと、受信バッファとのエリアを含む。なお、通信構造体621には、例えば、FIFO容量テーブル610やFIFO225aが含まれる。USBバッファ622は、USBデバイス210のFIFO(エンドポイント)に対応付けられたバッファであり、制御データ用のバッファ0とデータ用のバッファ1〜nを、USBデバイス210の種別や入出力処理に対応して含む。
ストレージ1050には、データベースや各種のパラメータ、あるいは本実施形態の実現に必要な以下のデータまたはプログラムが記憶されている。関数群格納部1051は、通信端末220が使用する関数を検索可能に格納している。コアドライバ格納部1052は、デバイスドライバのコアドライバや、デバイスドライバの一部であるホストコントローラインタフェースなどを検索可能に格納している。
ストレージ1050には、以下のプログラムが格納される。OS1053は、本通信端末220の全体を制御する基礎プログラムである。BIOS1054は、本通信端末220の入出力操作を制御する基礎プログラムである。ホストコントローラインタフェース225は、デバイスドライバの一部としてホストコントローラとのインタフェースを実現するプログラムである。ホストコントローラを含むコアドライバ1056は、USBシリアル通信を制御するためのプログラムである。通信制御プログラム1057は、通信制御部501により情報処理装置230との通信を実行するプログラムである。
入出力インタフェース1060は、入出力機器との入出力データをインタフェースする。入出力インタフェース1060には、表示部1061、操作部1062、USBコントローラ(コネクタ)504と505、が接続される。また、音声出力部であるスピーカや、音声入力部であるマイク、あるいは、GPS位置判定部が接続されてもよい。
なお、図10のRAM1040やストレージ1050には、通信端末220が有する汎用の機能や他の実現可能な機能に関連するプログラムやデータは図示されていない。
《通信端末の処理手順》
図11Aおよび図11Bは、本実施形態に係る通信端末220の処理手順を示すフローチャートである。このフローチャートは、図10のCPU1010がRAM1040を使用しながら実行して、図5の機能構成部を実現する。なお、図11Aおよび図11Bにおいては、ホストコントローラインタフェース225による処理手順を説明する。
通信端末220は、ステップS1101において、USBデバイス210のFIFO(エンドポイント)に対応付けて、USBバッファを確保する。通信端末220は、ステップS1103において、通信構造体を生成する。通信端末220は、ステップS1105において、USBデバイス210に対してデバイスディスクリプタを要求する。そして、通信端末220は、ステップS1107において、USBデバイス210からのデバイスディスクリプタの取得を待つ。
USBデバイス210のデバイスディスクリプタを取得すると、通信端末220は、ステップS1109において、取得したデバイスディスクリプタを確保されたUSBバッファ0に設定する。そして、通信端末220は、ステップS1111において、取得したデバイスディスクリプタを情報処理装置230に送信する。
次に、通信端末220は、ステップS1113において、USBの場合、データ転送方式がバルク転送か、インタラプト転送あるいはアイソクロナス転送かを判定する。
データ転送方式がバルク転送の場合、通信端末220は、ステップS1121において、バルク転送を指示する。通信端末220は、ステップS1123において、USBバッファ622とUSBデバイス210との間でデータ転送を行なう。そして、通信端末220は、ステップS1125において、データ転送が完了したか否かを判定して、完了していなければステップS1123に戻って、データ転送を繰り返す。
一方、データ転送がインタラプト転送あるいはアイソクロナス転送の場合、通信端末220は、ステップS1131において、インタラプト転送あるいはアイソクロナス転送を指示する。次に、通信端末220は、ステップS1133において、USB転送方式や転送速度、通信方式や通信方法などからFIFO容量テーブル610に基づいてFIFO225aを確保する。そして、通信端末220は、ステップS1135において、USBバッファ622とUSBデバイス210との間でデータ転送を行なう。通信端末220は、ステップS1137において、通信路データのエラー発生か否かを判定する。通信路データのエラー発生であれば、通信端末220は、ステップS1139において、FIFO容量の変更や通信帯域の変更を行ない、ステップS1135に戻って、データ転送を繰り返す。通信路データのエラー発生がなければ、通信端末220は、ステップS1141において、データ転送が完了したか否かを判定して、完了していなければステップS1135に戻って、データ転送を繰り返す。
バルク転送の完了あるいはインタラプト転送やアイソクロナス転送の完了と判定すれば、通信端末220は、ステップS1151において、デバイスステータスを取得する。そして、通信端末220は、ステップS1153において、デバイスステータスを情報処理装置230に送信する。
本実施形態によれば、USBデバイスを遠隔の通信端末に接続した時にも、情報処理装置に直接接続した場合と同じ操作ができると共に、チャネルを介したデータ転送におけるエラー発生を抑制して、データを正常に入出力することができる。
[第3実施形態]
次に、本発明の第3実施形態に係る情報処理システムについて説明する。本実施形態に係る情報処理システムは、上記第2実施形態と比べると、遠隔のデバイス入出力処理の前に通信テストを行なって、デバイス入出力において通信路データエラーが発生するか否かを判定し、通信路データエラーが発生しないためのFIFO容量や通信帯域を設定する点で異なる。すなわち、データチャネルを介したデータ転送を通信テストし、通信テストのテスト結果に応じて、エラー発生の抑制を調整する。その他の構成および動作は、第2実施形態と同様であるため、同じ構成および動作については同じ符号を付してその詳しい説明を省略する。
《システム概要》
図12は、本実施形態に係る情報処理システム1200の概要を示す図である。図12において、図2Bと同様の構成要素には同じ番号を付して、説明を省略する。
情報処理システム1200は、ホストコンピュータ上で実行されるOS(アプリケーション)231と、デバイスドライバ1201と、USBバスインタフェース226と、を有する。デバイスドライバ1201は、アプリケーションインタフェース232からネットワーク240を介してホストコントローラインタフェース225に、テストパケット(TEST_PKT)を送信して、通信状況をテストする通信テスト機能1202を有する。テストパケットとしては、タイムスタンプを有するもの、シリアル番号を有するもの、により通信時間を測定できる。
通信テスト機能1202は、1パケット容量のテストパケットを、通信路を介して往復させ、往路の遅延やジッタ、あるいは、復路の遅延やジッタ、をテストして、テスト結果からFIFO232aやFIFO225aの各容量や通信帯域を設定することで、通信路データエラーが発生しないようにする。
なお、1パケット容量のテストパケットによるループバックで通信時間を測定するのではなく、データ量を次第に増やして安定的な通信およびデバイス入出力できる通信量を把握してもよい。また、ジッタの吸収やデータ流量の調整は、FIFO232a、FIFO225aに限定されない。ローテーションメモリやTDM(Time Division Multiplexing)などの他の構成要素であってもよい。
かかる構成により、ホストコンピュータが遠隔地のデバイスを自機のバスI/FやシリアルI/Fに直接接続されたデバイスと同様に制御できる。かつ、あらかじめ通信テストを行なうので、チャネルを介したデータ転送におけるエラー発生なしに、ネットワーク通信によりシリアル通信バスを延長した場合であっても、データを正常に入出力することができる。
《情報処理装置の機能構成》
図13Aは、本実施形態に係る情報処理装置1330の機能構成を示すブロック図である。なお、図13Aにおいて、図4と同様の機能構成部には同じ参照番号を付して、説明を省略する。
通信テスト部1307は、通信制御部401を介して、1パケット容量のテストパケットを、通信路を介して往復させ、往路の遅延やジッタ、あるいは、復路の遅延やジッタ、をテストして、エラー抑制部405が有するFIFO232a容量や通信帯域の適切な設定を行なう。
(通信テスト部)
図13Bは、本実施形態に係る通信テスト部1307の機能構成を示すブロック図である。なお、通信テスト部1307の機能構成は、図13Bに限定されない。
通信テスト部1307は、1パケット送信部1311と、送信先受信タイム取得部1312と、送信パケット受信タイム取得部1313と、を有する。また、通信テスト部1307は、送信遅延算出部1314と、ループ遅延算出部1315と、USB情報取得部1316と、通信情報取得部1317と、を有する。また、通信テスト部1307は、FIFO容量および通信帯域制御部1318、FIFO容量変更部1320と、通信帯域変更部1321と、を有する。
1パケット送信部1311は、テスト用のタイムスタンプやシリアル番号を有するパケットを送信する。送信先受信タイム取得部1312は、送信先の通信端末220からのテストパケット受信タイムを含む返信を受信する。送信パケット受信タイム取得部1313は、ループバックしたパケットを受信して、タイムスタンプやシリアル番号に基づきループ時間を取得する。
送信遅延算出部1314は、1パケット送信部1311と送信先受信タイム取得部1312との送受信タイムから、送信遅延時間を算出する。ループ遅延算出部1315は、1パケット送信部1311と送信パケット受信タイム取得部1313との送受信タイムから、ループ遅延時間を算出する。USB情報取得部1316は、入出力制御するデバイスの接続に関してUSB転送方式や転送速度を含むUSB情報を取得する。通信情報取得部1317は、ネットワークなどの通信方式や通信速度を含む通信情報を取得する。
FIFO容量および通信帯域制御部1318は、制御テーブル1319を有し、送信遅延算出部1314やループ遅延算出部1315の算出結果と、USB情報取得部1316や通信情報取得部1317の取得情報と、に基づいて、FIFO容量および通信帯域を制御する。FIFO容量変更部1320は、テスト結果に基づいて適切なFIFO容量に変更する。一方、通信帯域変更部1321は、テスト結果に基づいて適切な通信帯域に変更する。
(制御テーブル)
図14は、本実施形態に係るFIFO容量および通信帯域の制御テーブル1319の構成を示す図である。制御テーブル1319は、FIFO容量および通信帯域制御部1318において、テストパケットのテスト通信結果に基づいて、適切なFIFO容量および通信帯域を決定するために使用されるテーブルである。
制御テーブル1319は、1パケットの送信タイム1401と、送信先受信タイム1402と、送信パケット受信タイム1403と、FIFO現容量1404と、現通信帯域1405と、を記憶する。また、制御テーブル1319は、取得したUSB情報1406と、通信情報1407と、を記憶する。制御テーブル1319は、上記各テスト結果と取得情報とに対応付けて、新たなFIFO容量と通信帯域とを含む変更情報1408を記憶する。
なお、かかる制御テーブル1319は、RAM840に生成されて、適切なFIFO容量と通信帯域とを設定するために使用されると共に、蓄積されて、以降の適切なFIFO容量と通信帯域との設定に使用されてもよい。
《情報処理装置の処理手順》
図15は、本実施形態に係る情報処理装置1330の処理手順を示すフローチャートである。なお、図15は、本実施形態のテストパケットのテスト送信による適切なFIFO容量と通信帯域との設定の処理手順を示し、他の処理手順は、図9Aおよび図9Bと同様である。
情報処理装置1330は、ステップS1501において、テスト用の1パケットをデバイス接続用の通信端末に宛てて送信する。そして、情報処理装置1330は、ステップS1503において、送信タイムあるいはループタイムを含む通信タイムの取得を待つ。
送信タイムあるいはループタイムを含む通信タイムを取得すれば、情報処理装置1330は、ステップS1505において、USB情報や通信情報を含む通信環境条件を取得する。次に、情報処理装置1330は、ステップS1507において、テストによる通信タイムと通信環境条件とに基づいて、適正なFIFO容量と通信帯域とを算出する。そして、情報処理装置1330は、ステップS1509において、算出したFIFO容量と通信帯域との適正値を設定する。
本実施形態によれば、あらかじめ通信テストを行なのでの、チャネルを介したデータ転送におけるエラー発生なしに、ネットワーク通信によりシリアル通信バスを延長した場合であっても、データを正常に入出力することができる。
《他の情報処理システムへの適用》
以下、第2実施形態あるいは第3実施形態の遠隔デバイス制御を適用した他の情報処理システムについて説明する。これらの情報処理システムにおいても、同様の効果を奏することができる。
(USBハブへの適用)
図16は、本実施形態をUSBハブに適用した情報処理システム1600の機能構成を示すブロック図である。なお、図16において、図2Cと同様の構成要素には同じ参照番号を付して、説明を省略する。
情報処理システム1600は、USBハブ1660と、複数のUSBデバイス1611〜161nとを備える。USBハブ1660は、ホストコントローラインタフェース1625と、複数のSIEに分岐するUSBバスインタフェース1626とを有する。ホストコントローラインタフェース1625は、複数のUSBケーブルに分岐するための機能を有する。また、複数のSIEは、それぞれ、複数のUSBケーブル1661〜166nを介して、複数のUSBデバイス1611〜161nの各SIEと接続される。
そして、情報処理装置としてのホスト230のアプリケーションインタフェース232が通信路データ量を調整するFIFO232aを有し、USBハブ1660のホストコントローラインタフェース1625が通信路データ量を調整するFIFO1625aを有する。
(HDMI(登録商標)への適用)
図17は、本実施形態をHDMI(登録商標)に適用した情報処理システム1700の機能構成を示すブロック図である。なお、図17において、図2Cと同様の構成要素には同じ参照番号を付して、説明を省略する。
図17の情報処理システム1700は、情報処理装置としてのホスト230と、遠隔にあって、ホスト230とネットワーク240を介して接続する通信端末1720と、通信端末1720のHDMI(登録商標)コネクタに接続されたHDMI(登録商標)デバイス1710と、を備える。
通信端末1720は、ソフトウェアとして、デバイスドライバの一部としてのホストコントローラインタフェース1725と、ホストコントローラおよび通信用ICを有するHDMI(登録商標)バスインタフェース1726とを有する。ホストコントローラインタフェース1725は、ネットワーク240を介して、アプリケーションインタフェース232から受信したHDMI(登録商標)のプロトコルに応じたコマンドやデータなどを、HDMI(登録商標)バスインタフェース1726のホストコントローラに理解できる形式で渡す。また、ホストコントローラインタフェース1725は、ネットワーク240を介して、HDMI(登録商標)バスインタフェース1726のホストコントローラから渡されたデータやデバイスステータスなどを、ネットワーク240を介して、アプリケーションインタフェース232に送信する。HDMI(登録商標)バスインタフェース1726のホストコントローラは、ホストコントローラインタフェース1725とコマンドやデータなどを交換しながら、HDMI(登録商標)ケーブル1760を介したシリアル通信をHDMI(登録商標)プロトコルに従い実行する。HDMI(登録商標)バスインタフェース1726の通信用ICは、HDMI(登録商標)ケーブル1760上の信号をHDMI(登録商標)通信の仕様に従い制御する。
そして、ホスト230のアプリケーションインタフェース232が通信路データ量を調整するFIFO232aを有し、通信端末1720のホストコントローラインタフェース1725が通信路データ量を調整するFIFO1725aを有する。
HDMI(登録商標)デバイス1710は、ソフトウェアとして、通信端末1720のHDMI(登録商標)バスインタフェース1726とHDMI(登録商標)ケーブル1760を介して接続して、信号をやり取りするHDMI(登録商標)デバイス1710のHDMI(登録商標)バスインタフェース1716を有する。また、HDMI(登録商標)デバイス1710は、デバイス情報や制御情報を含むディスクリプタを記憶する制御情報エンドポイント1717と、入出力データを記憶するエンドポイント1718とを有する。
かかる接続により、通信端末1720とHDMI(登録商標)デバイス1710とは、お互いのHDMI(登録商標)バスインタフェース1726および1716により物理レベルの通信を実行する。また、アプリケーションインタフェース232、ネットワーク240およびホストコントローラインタフェース1725を介したシステムレベルのコントロール転送により、制御パイプ(DDC/CEC)1751を介してアプリケーションソフトウェア231と制御情報エンドポイント1717との間で、基本処理としての制御通信を実現する。また、アプリケーションレベルのデータ転送では、データパイプ群1752を介してアプリケーションソフトウェア231とエンドポイント1718との間で、デバイスクラスの各メソッドとしてのデータ通信を通信路データエラーなしに実現する。
以上のように、ネットワーク240を介した、ホスト230のアプリケーションインタフェース232と通信端末1720のホストコントローラインタフェース1725とのネットワーク通信と、HDMI(登録商標)ケーブルを介した、HDMI(登録商標)バスインタフェース1726と1716間のシリアル通信とから、統一された通信チャネル(パイプ)を形成することができる。さらに、通信路データのエラー発生を抑制することができる。
(SCSIへの適用)
図18は、本実施形態をSCSIに適用した情報処理システム1800の機能構成を示すブロック図である。なお、図18において、図2Cと同様の構成要素には同じ参照番号を付して、説明を省略する。
図18の情報処理システム1800は、情報処理装置としてのホスト230と、遠隔にあって、ホスト230とネットワーク240を介して接続する通信端末1820と、通信端末1820のSCSIコネクタに接続されたSCSIデバイス1810と、を備える。
通信端末1820は、ソフトウェアとして、デバイスドライバの一部としてのホストコントローラインタフェース1825と、ホストコントローラおよび通信用ICを有するSCSIバスインタフェース1826とを有する。ホストコントローラインタフェース1825は、ネットワーク240を介して、アプリケーションインタフェース232から受信したSCSIのプロトコルに応じたコマンドやデータなどを、SCSIバスインタフェース1826のホストコントローラに理解できる形式で渡す。また、ホストコントローラインタフェース1825は、ネットワーク240を介して、SCSIバスインタフェース1826のホストコントローラから渡されたデータやデバイスステータスなどを、ネットワーク240を介して、アプリケーションインタフェース232に送信する。SCSIバスインタフェース1826のホストコントローラは、ホストコントローラインタフェース1825とコマンドやデータなどを交換しながら、SCSIケーブル1860を介したシリアル通信をSCSIプロトコルに従い実行する。SCSIバスインタフェース1826の通信用ICは、SCSIケーブル1860上の信号をSCSI通信の仕様に従い制御する。
そして、ホスト230のアプリケーションインタフェース232が通信路データ量を調整するFIFO232aを有し、通信端末1820のホストコントローラインタフェース1825が通信路データ量を調整するFIFO1825aを有する。
SCSIデバイス1810は、ソフトウェアとして、通信端末1820のSCSIバスインタフェース1826とSCSIケーブル1860を介して接続して、信号をやり取りするSCSIデバイス1810のSCSIバスインタフェース1816を有する。また、SCSIデバイス1810は、デバイス情報や制御情報を含むディスクリプタを記憶する制御情報エンドポイント1817と、入出力データを記憶するエンドポイント1818とを有する。
かかる接続により、通信端末1820とSCSIデバイス1810とは、お互いのSCSIバスインタフェース1826および1816により物理レベルの通信を実行する。また、アプリケーションインタフェース232、ネットワーク240およびホストコントローラインタフェース1825を介したシステムレベルのコントロール転送により、制御パイプ(SCSIコマンド/SCSIレスポンス)1851を介してアプリケーションソフトウェア231と制御情報エンドポイント1817との間で、基本処理としての制御通信を実現する。また、アプリケーションレベルのデータ転送では、データパイプ群1852を介してアプリケーションソフトウェア231とエンドポイント1818との間で、デバイスクラスの各メソッドとしてのデータ通信を通信路データエラーなしに実現する。
以上のように、ネットワーク240を介した、ホスト230のアプリケーションインタフェース232と通信端末1820のホストコントローラインタフェース1825とのネットワーク通信と、SCSIケーブルを介した、SCSIバスインタフェース1826と1816間のシリアル通信とから、統一された通信チャネル(パイプ)を形成することができる。さらに、通信路データのエラー発生を抑制することができる。
(SDカードへの適用)
図19は、本実施形態をSDカードに適用した情報処理システム1900の機能構成を示すブロック図である。なお、図19において、図2Cと同様の構成要素には同じ参照番号を付して、説明を省略する。
図19の情報処理システム1900は、情報処理装置としてのホスト230と、遠隔にあって、ホスト230とネットワーク240を介して接続する通信端末1920と、通信端末1920のコネクタに接続されたSDカード1910と、を備える。
通信端末1920は、ソフトウェアとして、デバイスドライバの一部としてのホストコントローラインタフェース1925と、ホストコントローラおよびバス用アンプを有するSDカードバスインタフェース1926とを有する。ホストコントローラインタフェース1925は、ネットワーク240を介して、アプリケーションインタフェース232から受信したSDカードのプロトコルに応じたコマンドやデータなどを、SDカードバスインタフェース1926のホストコントローラに理解できる形式で渡す。また、ホストコントローラインタフェース1925は、ネットワーク240を介して、SDカードバスインタフェース1926のホストコントローラから渡されたデータやデバイスステータスなどを、ネットワーク240を介して、アプリケーションインタフェース232に送信する。SDカードバスインタフェース1926のホストコントローラは、ホストコントローラインタフェース1925とコマンドやデータなどを交換しながら、SDカードコネクタ1960を介したシリアル通信をSDカードのプロトコルに従い実行する。SDカードバスインタフェース1926のバス用アンプは、SDカードコネクタ1960上の信号をSDカード用通信の仕様に従い制御する。
そして、ホスト230のアプリケーションインタフェース232が通信路データ量を調整するFIFO232aを有し、通信端末1920のホストコントローラインタフェース1925が通信路データ量を調整するFIFO1925aを有する。
SDカード1910は、ソフトウェアとして、通信端末1920のSDカードバスインタフェース1926とSDカードコネクタ1960を介して接続して、信号をやり取りするSDカード1910のSDカードバスインタフェース1916を有する。また、SDカード1910は、デバイス情報や制御情報を含むディスクリプタを記憶する制御情報エンドポイント1917と、入出力データを記憶するエンドポイント1918とを有する。
かかる接続により、通信端末1920とSDカード1910とは、お互いのSDカードバスインタフェース1926および1916により物理レベルの通信を実行する。また、アプリケーションインタフェース232、ネットワーク240およびホストコントローラインタフェース1925を介したシステムレベルのコントロール転送により、制御パイプ(SDカードコマンド)1951を介してアプリケーションソフトウェア231と制御情報エンドポイント1917との間で、基本処理としての制御通信を実現する。また、アプリケーションレベルのデータ転送では、データパイプ群1952を介してアプリケーションソフトウェア231とエンドポイント1918との間で、デバイスクラスの各メソッドとしてのデータ通信を通信路データエラーなしに実現する。
以上のように、ネットワーク240を介した、ホスト230のアプリケーションインタフェース232と通信端末1920のホストコントローラインタフェース1925とのネットワーク通信と、SDカードコネクタを介した、SDカードバスインタフェース1926と1916間のシリアル通信とから、統一された通信チャネル(パイプ)を形成することができる。さらに、通信路データのエラー発生を抑制することができる。
(機器共有システムへの適用)
図20は、本実施形態を機器共有システムに適用した情報処理システム2000の機能構成を示すブロック図である。なお、図20において、図2と同様の構成要素には同じ参照番号を付して、説明を省略する。
図20は、複数のユーザAおよびBが、キーボードおよびマウス(ポインティングデバイス)と、モニタとにより、仮想PC2030を共有すると共に、USBハブを介してプリンタや書画カメラも共有することで、会議システムを形成している。
図20においても、仮想PC2030側の仮想HUBや仮想モニタ分配機などのアプリケーションインタフェース2032と、仮想USB_HUBを含むホストコントローラインタフェース2025とを、ネットワーク240を介して通信接続することにより、仮想PC2030と各デバイスとの統一された通信チャネル(パイプ)を形成することができる。
さらに、アプリケーションインタフェース2032が通信路データ量を調整するFIFO2032aを有し、ホストコントローラインタフェース2025が通信路データ量を調整するFIFO2025aを有することにより、通信路データのエラー発生を抑制することができる。
[第4実施形態]
次に、本発明の第4実施形態に係る情報処理システムについて説明する。本実施形態に係る情報処理システムは、上記第2実施形態、第3実施形態と比べると、クラウドサーバなどがデバイスを接続した場合の設定パラメータを知識として蓄積し、適切な設定パラメータを提供する点で異なる。すなわち、エラー抑制のために設定されたパラメータを蓄積し、チャネルを確立する場合に、蓄積したパラメータから選定取得したパラメータをエラー抑制のために設定する。その他の構成および動作は、第2実施形態、第3実施形態と同様であるため、同じ構成および動作については同じ符号を付してその詳しい説明を省略する。
《情報処理システムの構成》
図21は、本実施形態に係る情報処理システム2100の構成を示すブロック図である。なお、図21において、図2Aと同様の構成要素には同じ参照番号を付して、説明を省略する。
クラウドサーバ2130は、ホスト230、あるいは、通信端末221〜223、あるいは、自機内に形成された仮想PC2131から、デバイス入出力において設定するシステムパラメータを蓄積する。システムパラメータには、デバイス種別、接続するバスのデータ転送方式や転送速度、ネットワーク240に通信方式や通信速度、などに対応付けて、適切な転送レベル、通信方式や通信帯域、FIFO容量、などが含まれる。
クラウドサーバ2130は、自機の仮想PC2131で通信端末221〜223に接続されたデバイスを制御する場合に、接続条件に基づいて、適切なシステムパラメータを検索して設定する。また、ホスト230からのシステムパラメータ要求に応答して、接続条件に基づいて、適切なシステムパラメータを検索して通知する。
《クラウドサーバの機能構成》
図22は、本実施形態に係るクラウドサーバ2130の機能構成を示すブロック図である。
クラウドサーバ2130は、通信制御部2201と、パラメータ受信部2202と、1つまたは複数の仮想PC2131〜213nと、接続環境、条件、設定パラメータ蓄積部2203と、システムパラメータデータベース2204と、を備える。また、クラウドサーバ2130は、パラメータ要求受信部2205と、パラメータ選定部2206と、パラメータ送信部2207と、を備える。
通信制御部2201は、ネットワーク240を介して、ホスト230や通信端末221〜223との通信を制御する。パラメータ受信部2202は、ホスト230や通信端末221〜223からデバイス入出力時の接続環境および条件に対応付けた設定パラメータを受信する。
接続環境、条件、設定パラメータ蓄積部2203は、外部のホスト230や通信端末221〜223から受信した接続環境および条件に対応付けた設定パラメータ、および、仮想PC2131〜213nから取得した接続環境および条件に対応付けた設定パラメータを整理して蓄積する。システムパラメータデータベース2204は、接続環境、条件、設定パラメータ蓄積部2203により蓄積されたデータを評価値も含め検索可能に格納する。
パラメータ要求受信部2205は、外部のホスト230や通信端末221〜223からの設定パラメータの要求を受信する。パラメータ選定部2206は、パラメータ要求受信部2205が受信した要求の条件に応じて、適切な設定パラメータをシステムパラメータデータベース2204から選定して取得する。パラメータ送信部2207は、取得した適切な設定パラメータを、外部のホスト230や通信端末221〜223に送信する。なお、仮想PC2131〜213nからの要求であれば、適切な設定パラメータを仮想PC2131〜313nに設定する。
(システムパラメータデータベース)
図23は、本実施形態に係るシステムパラメータデータベース2204の構成を示す図である。システムパラメータデータベース2204は、デバイスを、遠隔にネットワークを介して接続した場合の設定パラメータをその信頼度も含めて蓄積し、以降の設定時に適切な設定パラメータを提供するために使用される。
システムパラメータデータベース2204は、情報処理システムのシステム構成2301と、仮想PCを含むホストコンピュータについてのホスト情報2302とに対応付けて、次のデータを蓄積する。システムパラメータデータベース2204は、各デバイス情報2303と、バス情報2304と、通信情報2305と、使用されたバス通信パラメータ2306と、通信帯域を含むネットワーク通信パラメータ2307と、FIFO容量を含むバッファパラメータ2308と、デバイス入出力の信頼度2309と、を記憶する。1つまたは複数の条件に応じて、信頼性順に検索ソートして、結果が出力される。
《クラウドサーバのハードウェア構成》
図24は、本実施形態に係るクラウドサーバ2130のハードウェア構成を示すブロック図である。
図24で、CPU2410は演算制御用のプロセッサであり、プログラムを実行することで図22のクラウドサーバ2130の機能構成部を実現する。ROM2420は、初期データおよびプログラムなどの固定データおよびプログラムを記憶する。また、通信制御部2201は、ネットワーク240を介してホスト230や通信端末220と通信する。なお、CPU2410は1つに限定されず、複数のCPUであっても、あるいは画像処理用のGPUを含んでもよい。また、通信制御部2201は、CPU2410とは独立したCPUを有して、RAM2440の領域に送受信データを書き込みあるいは読み出しするのが望ましい。また、RAM2440とストレージ2450との間でデータを転送するDMACを設けるのが望ましい(図示なし)。したがって、CPU2410は、RAM2440にデータが受信あるいは転送されたことを認識してデータを処理する。また、CPU2410は、処理結果をRAM2440に準備し、後の送信あるいは転送は通信制御部2201やDMACに任せる。
RAM2440は、CPU2410が一時記憶のワークエリアとして使用するランダムアクセスメモリである。RAM2440には、本実施形態の実現に必要なデータを記憶する領域が確保されている。受信パラメータ2441は、外部のホスト230や通信端末221〜223から受信した、あるいは、仮想PC2131〜213nから取得したパラメータである。パラメータ要求データ2442は、設定パラメータを共有するデバイス入出力の条件を表わすデータである。送信パラメータ2443は、外部のホスト230や通信端末221〜223に送信する、あるいは、仮想PC2131〜213nに設定するパラメータである。仮想PC用送受信データ2444は、クラウドサーバ2130に形成された仮想PCからの送受信データである。
ストレージ2450には、データベースや各種のパラメータ、あるいは本実施形態の実現に必要な以下のデータまたはプログラムが記憶されている。システムパラメータデータベース2204は、図23のような設定パラメータを検索ソート可能に蓄積する。
ストレージ2450には、以下のプログラムが格納される。クラウドサーバ制御プログラム2451は、本クラウドサーバ2130の全体を制御するプログラムである。パラメータ蓄積モジュール2452は、外部のホスト230や通信端末221〜223からパラメータを受信し、仮想PC2131〜213nからパラメータを取得して、システムパラメータデータベース2204に蓄積するモジュールである。パラメータ提供モジュール2453は、システムパラメータデータベース2204に蓄積された適切なパラメータを検索ソートして、外部のホスト230や通信端末221〜113へパラメータを送信し、仮想PC2131〜213nへパラメータを設定するモジュールである。仮想PCプログラム2454は、本クラウドサーバ2130に仮想PC2131〜213nを形成するためのプログラムである。
なお、図24のRAM2440やストレージ2450には、クラウドサーバ2130が有する汎用の機能や他の実現可能な機能に関連するプログラムやデータは図示されていない。
《クラウドサーバの動作手順》
図25は、本実施形態に係るクラウドサーバ2130の動作手順を示すフローチャートである。このフローチャートは、図24のCPU2410がRAM2440を使用して実行し、図22の機能構成部を実現する。
クラウドサーバ2130は、ステップS2511において、設定パラメータの受信か否かを判定する。設定パラメータの受信であれば、クラウドサーバ2130は、ステップS2513において、受信した設定パラメータを検索ソート可能にシステムパラメータデータベース2204に蓄積する。
設定パラメータの受信でなければ、クラウドサーバ2130は、ステップS2521において、設定パラメータの要求であるか否かを判定する。設定パラメータの要求であれば、クラウドサーバ2130は、ステップS2523において、システムパラメータデータベース2204からデバイス接続条件を参照して設定パラメータを検索ソートする。そして、クラウドサーバ2130は、ステップS2525において、取得した設定パラメータを送信する。
設定パラメータの受信でも設定パラメータの要求でもなければ、クラウドサーバ2130は、ステップS2531において、仮想PCの生成であるか否かを判定する。仮想PCの生成であれば、クラウドサーバ2130は、ステップS2533において、仮想PCの生成処理を実行する。そして、クラウドサーバ2130は、ステップS2535において、システムパラメータデータベース2204からデバイス接続条件を参照して取得した設定パラメータを設定する。
本実施形態によれば、蓄積された知識から、デバイス、デバイス接続バス方式、通信方式、などの組み合わせにおいて、適切なFIFO容量や通信帯域の設定ができる。
[第5実施形態]
次に、本発明の第5実施形態に係る情報処理システムについて説明する。本実施形態に係る情報処理システムは、上記第2実施形態乃至第4実施形態と比べると、情報処理装置230(仮想PC)とデバイスが接続された通信端末220との間で異なるデータが通信される点で異なる。すなわち、本実施形態においては、情報処理装置230のアプリケーションIFと通信端末220のホストコントローラIFとが、第2実施形態と異なる部分で分離されている。例えば、ホストコントローラチップ(HC)を含めて全体のデバイスドライバをソフトウェアで実現した場合に、特に、ホストコントローラドライバとホストコントローラチップとの組を種々の階層で通信効率や通信速度を考慮して分割する。そして、分割された階層間の情報を情報処理装置230と通信端末220間でネットワーク通信するよう設計する。その他の構成および動作は、第2実施形態から第4実施形態と同様であるため、同じ構成および動作については同じ符号を付してその詳しい説明を省略する。
(データ伝送例)
図26は、本実施形態に係る情報処理システムにおけるデータ伝送を示す図である。なお、図26は、図2Gと同様に、USB接続されたUSBデバイスのディスクリプタ取得手順を示す図である。したがって、図26において、図2Gと同様の構成要素には同じ参照番号を付して、説明は省略する。
デバイス210に設定されているディスクリプタは、GET_DESCRIPTORなどのUSBリクエストにより取得される。コントロール転送であるUSBリクエストのUSBプロトコルを含むフレームは、情報処理装置230とデバイス210間でやり取りされる。各コントロール転送は、セット・ステージと、データ・ステージと、ステータス・ステージとからなる。各ステージは、トークン・パケットと、データ・パケットと、ハンドシェイク・パケットとからなる。ディスクリプタは、各データ・ステージのデータ・パケットで取得される。デバイス210から取得したディスクリプタはIPヘッダやTCPヘッダでIPカプセリングされたフレームに挿入されて、通信端末220から情報処理装置230に送信される。
ここで、情報処理装置230のアプリケーションインタフェース2632は、アプリケーション231のデバイス入出力要求に応じて、まず接続デバイスを確認するためGET DESCRIPTORのUSBリクエストのUSBプロトコルを含むフレームを生成して、通信制御部401に渡す。
IPヘッダやTCPヘッダでIPカプセリングされたGET DESCRIPTORのUSBリクエストを含むフレームは、通信端末220の通信制御部501で受信されてIPアンカプセリングされる。GET DESCRIPTORのUSBリクエストは、ホストコントローラインタフェース2625に渡される。ホストコントローラインタフェース2625は、GET DESCRIPTORのUSBリクエストのUSBプロトコルを含むフレームに基づいて、デバイス210へのUSBバスにおける各パケットを転送するようUSBバスインタフェース226(不図示)に指示する。
ホストコントローラインタフェース2625は、デバイス210からデータ・ステージにおいて受信したデータ・パケットをデバイスディスクリプタ2663として含むフレームを、通信制御部501に渡す。IPヘッダやTCPヘッダでIPカプセリングされたデバイスディスクリプタ2663を含むフレームは、通信端末220の通信制御部501から情報処理装置230の通信制御部401に送信される。
情報処理装置の通信制御部401は、アンカプセリングしたデバイスディスクリプタ2663を含むフレームをアプリケーションインタフェース2632に渡すと、アプリケーションインタフェース2632はアプリケーション231のデバイス入出力要求に応答して、接続デバイス情報を通知する。
以下、他のコントロール転送や、バルク転送、インタラプト転送、アイソロナス転送においても、同様のデータ伝送が行なわれる。なお、ホストコントローラインタフェース2625とUSBバスインタフェース226とが一体にされたソフトウェアであってもよい。
図27は、本実施形態に係る情報処理システムにおける他のデータ伝送を示す図である。なお、図27は、図2Gおよび図26と同様に、USB接続されたUSBデバイスのディスクリプタ取得手順を示す図である。したがって、図27において、図2Gおよび図26と同様の構成要素には同じ参照番号を付して、説明は省略する。
デバイス210に設定されているディスクリプタは、GET_DESCRIPTORなどのUSBリクエストにより取得される。USBリクエストのUSBプロトコルを含むコントロール転送は、セット・ステージと、データ・ステージと、ステータス・ステージとからなる。各ステージは、トークン・パケットと、データ・パケットと、ハンドシェイク・パケットとからなる。コントロール転送であるUSBリクエストのUSBプロトコルを含むセット・ステージと、データ・ステージと、ステータス・ステージとは、それぞれ、情報処理装置230とデバイス210間でやり取りされる。ディスクリプタは、各データ・ステージのデータ・パケットで取得される。デバイス210から取得したディスクリプタはIPヘッダやTCPヘッダでIPカプセリングされたデータ・ステージに挿入されて、携帯端末220から情報処理装置230に送信される。
ここで、情報処理装置230のアプリケーションインタフェース2732は、アプリケーション231のデバイス入出力要求に応じて、まず接続デバイスを確認するためGET DESCRIPTORのUSBリクエストのUSBプロトコルを含むセット・ステージを生成して、通信制御部401に渡す。
IPヘッダやTCPヘッダでIPカプセリングされたGET DESCRIPTORのUSBリクエストを含むセット・ステージは、通信端末220の通信制御部501で受信されてIPアンカプセリングされる。GET DESCRIPTORのUSBリクエストは、ホストコントローラインタフェース2725に渡される。ホストコントローラインタフェース2725は、GET DESCRIPTORのUSBリクエストのUSBプロトコルを含むセット・ステージに基づいて、デバイス210へのUSBバスにおける各パケットを転送するようUSBバスインタフェース226(不図示)に指示する。
ホストコントローラインタフェース2725は、デバイス210からデータ・ステージにおいて受信したデータ・パケットをデバイスディスクリプタ2763として含むデータ・ステージを、通信制御部501に渡す。IPヘッダやTCPヘッダでIPカプセリングされたデバイスディスクリプタ2763を含むデータ・ステージは、通信端末220の通信制御部501から情報処理装置230の通信制御部401に送信される。
情報処理装置の通信制御部401は、アンカプセリングしたデバイスディスクリプタ2763を含むデータ・ステージをアプリケーションインタフェース2732に渡すと、アプリケーションインタフェース2732はアプリケーション231のデバイス入出力要求に応答して、接続デバイス情報を通知する。
また、ホストコントローラインタフェース2725は、デバイス210からステータス・ステージで受信したデータ・パケットをステータスデータ2764として含むステータス・ステージを、通信制御部501に渡す。IPヘッダやTCPヘッダでIPカプセリングされたステータスデータ2764を含むステータス・ステージは、通信端末220の通信制御部501から情報処理装置230の通信制御部401に送信される。
情報処理装置の通信制御部401は、アンカプセリングしたステータスデータ2764を含むステータス・ステージをアプリケーションインタフェース2732に渡すと、アプリケーションインタフェース2732はアプリケーション231のデバイス入出力要求に応答して、接続デバイス情報を通知する。
なお、上記説明では、アプリケーションインタフェース2732においては、ハンドシェイク・パケットについて判定していないが、アプリケーションインタフェース2732が各ステージにおけるハンドシェイク・パケットを確認する構成であってもよい。
以下、他のコントロール転送や、バルク転送、インタラプト転送、アイソロナス転送においても、同様のデータ伝送が行なわれる。なお、ホストコントローラインタフェース2725とUSBバスインタフェース226とが一体にされたソフトウェアであってもよい。
本実施形態によれば、情報処理装置(仮想PC)と通信端末間の通信が互いのドライバを分割したフレーム単位の通信であってもステージ単位の通信であっても、USBデバイスを遠隔の通信端末に接続した時にも、情報処理装置に直接接続した場合と同じ操作ができる。
[他の実施形態]
なお、上記実施形態においては、USB、HDMI(登録商標)によるデバイスの接続例を示したが、SCSIなどの他の接続であっても同様の効果を奏する。さらに、デバイスを近距離無線、例えば、赤外線通信、WiFi、Bluetooth(登録商標)などで接続する場合にも適用でき、同様の効果を奏する。
また、実施形態を参照して本発明を説明したが、本発明は上記実施形態に限定されるものではない。本発明の構成や詳細には、本発明のスコープ内で当業者が理解し得る様々な変更をすることができる。また、それぞれの実施形態に含まれる別々の特徴を如何様に組み合わせたシステムまたは装置も、本発明の範疇に含まれる。
また、本発明は、複数の機器から構成されるシステムに適用されてもよいし、単体の装置に適用されてもよい。さらに、本発明は、実施形態の機能を実現する情報処理プログラムが、システムあるいは装置に直接あるいは遠隔から供給される場合にも適用可能である。したがって、本発明の機能をコンピュータで実現するために、コンピュータにインストールされるプログラム、あるいはそのプログラムを格納した媒体、そのプログラムをダウンロードさせるWWW(World Wide Web)サーバも、本発明の範疇に含まれる。特に、少なくとも、上述した実施形態に含まれる処理ステップをコンピュータに実行させるプログラムを格納した非一時的コンピュータ可読媒体(non-transitory computer readable medium)は本発明の範疇に含まれる。
なお、この出願は、同日出願された日本国特許出願(特願2014−235108,特願2014−235110、特願2014−235111)と関連し、その開示の全てをここに取り込む。
この出願は、2014年11月19日に出願された日本国特許出願 特願2014−235109号を基礎とする優先権を主張し、その開示の全てをここに取り込む。

Claims (9)

  1. デバイスと、
    前記デバイスを制御するデバイス制御手段と、
    前記デバイス制御手段とのインタフェースを行なうデバイスインタフェース手段と、
    アプリケーションと、前記アプリケーションとのインタフェースを行なうアプリケーションインタフェース手段とを有する情報処理装置と、
    前記アプリケーションインタフェース手段と前記デバイスインタフェース手段とを通信手段で接続した場合に、前記アプリケーションと前記デバイスとの間に制御チャネルとデータチャネルとを確立するチャネル確立手段と、
    前記チャネル確立手段により確立されたチャネルを介したデータ転送におけるエラー発生を抑制するエラー抑制手段と、
    前記データチャネルを介したデータ転送をテストする通信テスト手段と
    を備え
    前記エラー抑制手段は、前記データ転送のデータ流量を調整するバッファの容量を調整する機能と、前記データ転送の通信帯域を変更する機能とを備え、
    前記通信テスト手段は、テストにより前記データ転送の遅延に関する情報を取得し、取得した情報を利用して、前記エラー抑制手段が調整する前記バッファの容量を設定し、また、前記エラー抑制手段が調整する前記通信帯域の帯域幅を設定する情報処理システム。
  2. 前記エラー抑制手段は、前記デバイスインタフェース手段と前記デバイス制御手段との間のデータ転送においてオーバーフローまたはアンダーフローが発生しないように配置されるバッファを含む請求項1に記載の情報処理システム。
  3. データ転送におけるエラー発生をエラー発生の抑制指示の受付手段と共に報知する報知手段を備え、
    前記エラー抑制手段は、前記受付手段からの抑制指示に対応して、エラー発生の抑制を調整する請求項1または2に記載の情報処理システム。
  4. 前記エラー抑制手段においてエラー抑制のために設定されたパラメータを蓄積する蓄積手段と、
    前記チャネル確立手段によりチャネルを確立する場合に、前記蓄積手段から取得したパラメータをエラー抑制のために設定する設定手段と、
    をさらに備える請求項1乃至のいずれか1項に記載の情報処理システム。
  5. 前記デバイス制御手段は、USB、HDMI(登録商標)、SCSI、SDカードコネクタ、および近距離通信の少なくともいずれか1つを介して接続されたデバイスを制御する請求項1乃至のいずれか1項に記載の情報処理システム。
  6. 前記通信手段は、複数の階層から選択されたデバイス制御に適切な層によりデータを転送する請求項1乃至のいずれか1項に記載の情報処理システム。
  7. 通信端末において、デバイスを制御するデバイス制御手段とのインタフェースを行なうデバイスインタフェース手段を起動する第1起動ステップと、
    情報処理装置において、アプリケーションとのインタフェースを行なうアプリケーションインタフェース手段を起動する第2起動ステップと、
    前記情報処理装置の前記アプリケーションインタフェース手段と前記通信端末の前記デバイスインタフェース手段とを、通信手段を介して接続し、前記アプリケーションと前記デバイスとの間に制御チャネルとデータチャネルとを確立するチャネル確立ステップと、
    前記チャネル確立ステップにおいて確立されたチャネルを介したデータ転送におけるエラー発生を抑制するエラー抑制ステップと、
    を含み、
    前記データチャネルを介したデータ転送をテストし、当該テストにより前記データ転送の遅延に関する情報を取得し、取得した情報を利用して、データ転送におけるエラー発生を抑制すべく、前記データ転送のデータ流量を調整するバッファの容量を変更し、また、前記データ転送の通信帯域の帯域幅を変更する情報処理方法。
  8. アプリケーションと、
    前記アプリケーションとのインタフェースを行なうアプリケーションインタフェース手段と、
    前記アプリケーションインタフェース手段を、デバイスを制御するデバイス制御手段とのインタフェースを行なうデバイスインタフェース手段と通信手段を介して接続し、前記アプリケーションと前記デバイスとの間に制御チャネルとデータチャネルとを確立するチャネル確立手段と、
    前記チャネル確立手段により確立されたチャネルを介したデータ転送におけるエラー発生を抑制するエラー抑制手段と、
    前記データチャネルを介したデータ転送をテストする通信テスト手段と
    を備え
    前記エラー抑制手段は、前記データ転送のデータ流量を調整するバッファの容量を調整する機能と、前記データ転送の通信帯域を変更する機能とを備え、
    前記通信テスト手段は、テストにより前記データ転送の遅延に関する情報を取得し、取得した情報を利用して、前記エラー抑制手段が調整する前記バッファの容量を設定し、また、前記エラー抑制手段が調整する前記通信帯域の帯域幅を設定する情報処理装置。
  9. アプリケーションとのインタフェースを行なうアプリケーションインタフェース手段を起動する起動ステップと、
    前記アプリケーションインタフェース手段を、デバイスを制御するデバイス制御手段とのインタフェースを行なうデバイスインタフェース手段と通信手段を介して接続し、前記アプリケーションと前記デバイスとの間に制御チャネルとデータチャネルとを確立するチャネル確立ステップと、
    前記チャネル確立ステップにおいて確立されたチャネルを介したデータ転送におけるエラー発生を抑制するエラー抑制ステップと、
    をコンピュータに実行させ
    さらに、前記データチャネルを介したデータ転送をテストし、当該テストにより前記データ転送の遅延に関する情報を取得し、取得した情報を利用して、データ転送におけるエラー発生を抑制すべく、前記データ転送のデータ流量を調整するバッファの容量を変更し、また、前記データ転送の通信帯域の帯域幅を変更するステップをコンピュータに実行させる情報処理装置の制御プログラム。
JP2016560257A 2014-11-19 2015-11-18 情報処理システム、情報処理方法、情報処理装置および制御プログラム Expired - Fee Related JP6399105B2 (ja)

Applications Claiming Priority (3)

Application Number Priority Date Filing Date Title
JP2014235109 2014-11-19
JP2014235109 2014-11-19
PCT/JP2015/082360 WO2016080427A1 (ja) 2014-11-19 2015-11-18 情報処理システム、情報処理方法、サーバ、情報処理装置、通信端末およびそれらの制御方法と制御プログラム

Publications (2)

Publication Number Publication Date
JPWO2016080427A1 JPWO2016080427A1 (ja) 2017-09-07
JP6399105B2 true JP6399105B2 (ja) 2018-10-03

Family

ID=56013962

Family Applications (1)

Application Number Title Priority Date Filing Date
JP2016560257A Expired - Fee Related JP6399105B2 (ja) 2014-11-19 2015-11-18 情報処理システム、情報処理方法、情報処理装置および制御プログラム

Country Status (4)

Country Link
US (1) US10554348B2 (ja)
EP (1) EP3226146A4 (ja)
JP (1) JP6399105B2 (ja)
WO (1) WO2016080427A1 (ja)

Families Citing this family (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2019083441A (ja) * 2017-10-31 2019-05-30 村田機械株式会社 制御システム、制御装置、変換装置、制御システムの制御方法、制御装置の制御方法、及び、変換装置の制御方法
CN114765588A (zh) * 2020-12-30 2022-07-19 深圳Tcl新技术有限公司 测试方法、计算机设备、计算机可读存储介质

Family Cites Families (7)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JPH04241547A (ja) * 1991-01-14 1992-08-28 Nec Corp 回線品質チェック方法
JP2001308917A (ja) * 2000-04-20 2001-11-02 Yokogawa Electric Corp トラフィック制御装置
US8396165B2 (en) * 2006-07-20 2013-03-12 Sharp Kabushiki Kaisha Multicarrier-signal receiving apparatus and multicarrier-signal transmitting apparatus
JP2009031882A (ja) * 2007-07-25 2009-02-12 Hitachi Ltd デバイス管理システム及びこれに用いるサーバ及び仮想デバイス管理プログラム
KR101251250B1 (ko) 2011-07-01 2013-04-08 알서포트 주식회사 원격 디바이스 드라이버를 이용한 원격 제어 시스템 및 원격 디바이스 드라이버를 이용한 원격 제어 방법
KR20130054896A (ko) * 2011-11-17 2013-05-27 삼성전자주식회사 시분할 이중화 통신 시스템에서 물리채널 송수신의 제어 방법 및 장치
JPWO2014045417A1 (ja) * 2012-09-21 2016-08-18 富士通株式会社 情報処理装置、および負荷試験方法

Also Published As

Publication number Publication date
EP3226146A4 (en) 2018-07-25
JPWO2016080427A1 (ja) 2017-09-07
WO2016080427A1 (ja) 2016-05-26
US20170366309A1 (en) 2017-12-21
EP3226146A1 (en) 2017-10-04
US10554348B2 (en) 2020-02-04

Similar Documents

Publication Publication Date Title
US9594536B2 (en) Method and apparatus for electronic device communication
EP2530599B1 (en) Method and mobile terminal for realizing audio transmission
KR20140143793A (ko) 유니버셜 직렬 버스 디바이스들에 대한 데이터 재지향
CN106487721B (zh) 网络设备和用于网络设备中的报文转发方法
US8051222B2 (en) Concatenating secure digital input output (SDIO) interface
JP6399105B2 (ja) 情報処理システム、情報処理方法、情報処理装置および制御プログラム
JP2007088775A (ja) 無線通信システム、無線通信装置及び方法
CN104461978B (zh) 单向数据传输的方法及装置
JP6354854B2 (ja) 情報処理システム、情報処理方法、情報処理装置およびその制御方法と制御プログラム
JP2015121971A5 (ja) 情報処理システム、情報処理装置、画像形成装置、情報処理方法および情報処理プログラム
TWM504272U (zh) 通用串列匯流排(usb)電腦切換器(kvm)訊號延長器
US8341310B2 (en) Method for adjusting the transmission speed of the electronic aid
JP6388035B2 (ja) 情報処理システム、情報処理方法、情報処理装置、通信端末および制御プログラム
EP2726992B1 (en) Network control model driver
KR101346461B1 (ko) 이종 네트워크 간 통신을 위한 네트워크 연결장치 및 네트워크 연결방법
JP6169629B2 (ja) Usb信号制御方法及びusb仮想化通信システム
US20150180777A1 (en) Data processing apparatus and method
JP5799295B2 (ja) 複数のクライアントと同時通信可能なデバイスサーバ
JP6241351B2 (ja) 周辺機器サーバ
CN117640755A (zh) 数据传输方法和装置
JP2013235431A (ja) デバイスサーバシステムにおけるクライアント装置
JP2014049904A (ja) 通信装置、携帯端末装置、通信システム、通信方法

Legal Events

Date Code Title Description
A521 Request for written amendment filed

Free format text: JAPANESE INTERMEDIATE CODE: A523

Effective date: 20170511

A621 Written request for application examination

Free format text: JAPANESE INTERMEDIATE CODE: A621

Effective date: 20170511

A131 Notification of reasons for refusal

Free format text: JAPANESE INTERMEDIATE CODE: A131

Effective date: 20171024

A521 Request for written amendment filed

Free format text: JAPANESE INTERMEDIATE CODE: A523

Effective date: 20171219

A131 Notification of reasons for refusal

Free format text: JAPANESE INTERMEDIATE CODE: A131

Effective date: 20180306

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

A61 First payment of annual fees (during grant procedure)

Free format text: JAPANESE INTERMEDIATE CODE: A61

Effective date: 20180820

R150 Certificate of patent or registration of utility model

Ref document number: 6399105

Country of ref document: JP

Free format text: JAPANESE INTERMEDIATE CODE: R150

LAPS Cancellation because of no payment of annual fees