(57)【特許請求の範囲】
【請求項１】
制御機器と被制御機器との間を中継する中継機器であって、
前記被制御機器を特定するための情報が記述された第１のファイルと、前記被制御機器の入出力機能に関する制御内容及び制御結果が記述される第２のファイルとを管理するファイル管理部と、
前記制御機器からの要求に応じて前記ファイル管理部に管理された前記第１、第２のファイルのファイル送受信を行う第１の通信インターフェイスと、
前記被制御機器との間でコマンド送受信を行う第２の通信インターフェイスと、
前記ファイル管理部に管理された前記第２のファイルに記述された制御内容を定期的に解析するファイル解析部と、
前記ファイル解析部によって解析された前記第２のファイルの制御内容を前記被制御機器に対するコマンドに変換するコマンド変換部と、
を備え、
前記コマンド変換部で変換されたコマンドに対する前記被制御機器の応答に基づいて前記第２のファイルに記述された制御結果を更新し、
前記制御機器から定期的に送信される要求に基づいて前記第２のファイルを前記制御機器に返信し、
前記制御機器が切り離された状態でも、
前記第２のファイルの前記制御内容として記述された前記コマンドの発行時刻に、前記コマンドを前記被制御機器に送信し、受信した制御結果に基づいて前記第２のファイルの制御結果を更新し、
前記制御機器が再接続されると、
前記制御機器から定期的に送信される要求に基づいて前記第２のファイルを前記制御機器に返信する中継機器。
【請求項２】
制御機器と被制御機器との間を中継する中継機器であって、
前記被制御機器の入出力機能に関する制御内容及び制御結果が記述される第２のファイルを管理するファイル管理部と、
前記制御機器からの要求に応じて前記ファイル管理部に管理された前記第２のファイルのファイル送受信を行う第１の通信インターフェイスと、
前記被制御機器との間でコマンド送受信を行う第２の通信インターフェイスと、
前記ファイル管理部に管理された前記第２のファイルに記述された制御内容を定期的に解析するファイル解析部と、
前記ファイル解析部によって解析された前記第２のファイルの制御内容を前記被制御機器に対するコマンドに変換するコマンド変換部と、
を備え、
前記コマンド変換部で変換されたコマンドに対する前記被制御機器の応答に基づいて前記第２のファイルに記述された制御結果を更新し、
前記制御機器から定期的に送信される要求に基づいて前記第２のファイルを前記制御機器に返信し、
前記制御機器が切り離された状態でも、
前記第２のファイルの前記制御内容として記述された前記コマンドの発行時刻に、前記コマンドを前記被制御機器に送信し、受信した制御結果に基づいて前記第２のファイルの制御結果を更新し、
前記制御機器が再接続されると、
前記制御機器から定期的に送信される要求に基づいて前記第２のファイルを前記制御機器に返信する中継機器。
【請求項３】
前記第１のファイルには、
前記被制御機器の識別情報と、前記被制御機器の製造業者の識別情報と、通信ネットワークにおけるアドレス情報と、前記被制御機器の種類を示すデバイスクラス情報とが含まれる、
ことを特徴とする請求項１に記載の中継機器。
【請求項４】
前記第２のファイルのファイル名は、
前記被制御機器の識別情報と、前記被制御機器の製造業者の識別情報と、通信ネットワークにおけるアドレス情報と、前記被制御機器の種類を示すデバイスクラス情報とに基づいて定められている、
ことを特徴とする請求項１乃至３のいずれか１項に記載の中継機器。
【請求項５】
前記第２のファイルには、
前記制御内容として、
前記コマンドの番号と、前記コマンドの名称と、前記コマンドのパラメータと、前記コマンドの発行時刻とが含まれ、
前記制御結果として、
前記被制御機器の状態と、前記被制御機器の応答とが含まれる、
ことを特徴とする請求項１乃至４のいずれか１項に記載の中継機器。
【請求項６】
前記第１、第２の通信インターフェイスは、
ＵＳＢ（Universal Serial Bus）通信インターフェイスである、
ことを特徴とする請求項１乃至５のいずれか一項に記載の中継機器。
【請求項７】
請求項１乃至６のいずれか一項に記載の中継機器と、
前記中継機器に接続する制御機器と、
前記中継機器に接続し、入出力機能を有する被制御機器と、
を備える入出力システム。
【発明の詳細な説明】
【技術分野】
【０００１】
この発明は、ホストとデバイスとの間を中継する中継機器及び入出力システムに関する。
【背景技術】
【０００２】
従来より、フラッシュメモリを用いたファイルシステムを搭載するＵＳＢ（Universal Serial Bus）ストレージデバイス（ＵＳＢデバイス）及びその制御方法に関する提案がなされている（例えば、特許文献１参照）。
【０００３】
特許文献１に開示されたＵＳＢデバイスによれば、ＵＳＢデバイスがマスストレージ機能を提供する際に、ＵＳＢホストたるコンピュータが、ファイルを経由して、管理者モード以外のモード（非管理者使用モード）でもＵＳＢデバイスのドライブに関する情報にアクセスすることを可能とする。
【先行技術文献】
【特許文献】
【０００４】
【特許文献１】特開２００７−２２００６３号公報
【発明の概要】
【発明が解決しようとする課題】
【０００５】
従来、ＵＳＢホスト（制御機器）にＵＳＢ通信を介して接続されるＵＳＢデバイス（被制御機器）は、そのＵＳＢマスストレージの機能を提供する場合には、ファイルシステムを構成するために必要なデータを制御機器に送信する。
【０００６】
ところで、被制御機器がマスストレージ機能に加えて入出力装置を有する場合には、そのままでは、制御機器は、マスストレージの機能しか利用できず、同時に入出力装置を制御することはできない。制御機器がＵＳＢ通信で接続される被制御機器の入出力機能を利用しようとすれば、被制御機器の専用ドライバを制御機器にインストールする必要がある。
【０００７】
しかしながら、制御機器のセキュリティ管理が厳しい場合は、標準のドライバ以外のドライバを自由にインストールすることが禁止されており、それ故、制御機器から被制御機器の入出力機能を利用するのが困難な場合がある。
【０００８】
この発明は、制御機器から被制御機器の入出力機能を、より簡便に利用することを可能とする中継機器及び入出力システムを提供することを目的とする。
【課題を解決するための手段】
【０００９】
上記目的を達成するために、この発明に係る中継機器は、制御機器と被制御機器との間を中継する中継機器である。この中継機器において、ファイル管理部は、被制御機器を特定するための情報が記述された第１のファイルと、被制御機器の入出力機能に関する制御内容及び制御結果が記述される第２のファイルとを管理する。第１の通信インターフェイスは、制御機器からの要求に応じてファイル管理部に管理された第１、第２のファイルのファイル送受信を行う。第２の通信インターフェイスは、被制御機器との間でコマンド送受信を行う。ファイル解析部は、ファイル管理部に管理された第２のファイルに記述された制御内容を定期的に解析する。コマンド変換部は、ファイル解析部によって解析された第２のファイルの制御内容を被制御機器に対するコマンドに変換する。この中継装置は、コマンド変換部で変換されたコマンドに対する被制御機器の応答に基づいて第２のファイルに記述された制御結果を更新し、制御機器から定期的に送信される要求に基づいて第２のファイルを制御機器に返信する。制御機器が切り離された状態でも、第２のファイルの制御内容として記述されたコマンドの発行時刻に、コマンドを被制御機器に送信し、受信した制御結果に基づいて第２のファイルの制御結果を更新し、制御機器が再接続されると、制御機器から定期的に送信される要求に基づいて第２のファイルを制御機器に返信する。
【発明の効果】
【００１０】
この発明に係る中継機器は、制御機器に対しては、自らが被制御機器として入出力機能に関する制御内容及び制御結果が記述される第２のファイルの送受信を行い、被制御機器に対しては、自らが制御機器としてコマンド送受信を行う。さらに、この中継機器は、第２のファイルの制御内容に基づくコマンドを被制御機器に送信し、その応答に基づいて、第２のファイルの制御結果を更新する。更新された第２のファイルは制御機器に返信される。このようにすれば、制御機器から標準ドライバを介して利用できるファイルを用いて、被制御機器の入出力機器へコマンドを発行することにより、入出力制御を行うことができるようになる。この結果、被制御機器のドライバを制御機器にインストールすることなく、標準ドライバを用いて、制御機器から被制御機器の入出力機能を、より簡便に利用することができる。
【図面の簡単な説明】
【００１１】
【図１】この発明の実施の形態に係る入出力システムの概略的な構成を示すブロック図である。
【図２】ＵＳＢデバイス情報ファイルのデータ構造の一例を示す図である。
【図３】制御ファイルのデータ構造の一例を示す図である。
【図４】この発明の実施の形態に係る入出力システムの全体動作を示すフローチャートである。
【図５】初期化処理のサブルーチンのフローチャートである。
【発明を実施するための形態】
【００１２】
この発明の実施の形態について、図面を参照して詳細に説明する。
【００１３】
図１には、この実施の形態に係る中継機器が用いられる入出力システム１の概略的な構成が示されている。図１に示すように、この入出力システム１は、制御機器１００と、中継機器２００と、被制御機器３００とを備える。
【００１４】
制御機器１００は、例えば、コンピュータであり、ＵＳＢホストである。また、被制御機器３００は、例えば、ＵＳＢメモリ等であり、ＵＳＢデバイスである。この実施の形態では、中継機器２００が、制御機器１００と被制御機器３００との間を中継する。中継機器２００も、中央演算装置（ＣＰＵ）を含むコンピュータである。
【００１５】
制御機器１００と、中継機器２００との間は、ＵＳＢ通信４００を介して通信可能である。また、中継機器２００と、被制御機器３００との間は、ＵＳＢ通信４００を介して通信可能である。
【００１６】
制御機器１００は、アプリケーション１１０と、ファイルシステム１２０と、マスストレージクラス１３０と、ＵＳＢホストドライバ１４０、ＵＳＢホストコントローラ１５０とを備える階層的な構成を有する。
【００１７】
アプリケーション１１０は、制御機器１００上で動作するアプリケーションソフトウエアであり、制御機器１００の機能を実行する。アプリケーション１１０は、ファイルシステム１２０を呼び出して被制御機器３００の入出力機能を利用するアプリケーションである。
【００１８】
ファイルシステム１２０は、制御機器１００のファイルシステムである。マスストレージクラス１３０は、ファイルシステム１２０の下位ドライバとしてのマスストレージクラスドライバである。ＵＳＢホストドライバ１４０は、ＵＳＢホストのコマンドを管理するＵＳＢドライバである。ＵＳＢホストコントローラ１５０は、中継機器２００のＵＳＢデバイスコントローラ２１０との間でＵＳＢパケットを送受信する。
【００１９】
中継機器２００は、ＵＳＢデバイスコントローラ２１０と、ＵＳＢデバイスドライバ２２０と、マスストレージクラス２３０と、記憶装置２３５と、ファイルシステム２４０と、ファイル解析部２５０と、ＵＳＢコマンド解析部２６０と、ＵＳＢホストドライバ２７０と、ＵＳＢホストコントローラ２８０を備える。
【００２０】
ＵＳＢデバイスコントローラ２１０は、制御機器１００のＵＳＢホストコントローラ１５０との間で、ＵＳＢパケットの送受信を行う。ＵＳＢデバイスコントローラ２１０は、後述する被制御機器３００のＵＳＢデバイスコントローラ３１０の代わりにＵＳＢホストコントローラ１５０との間で動作する。
【００２１】
ＵＳＢデバイスドライバ２２０は、制御機器１００のＵＳＢホストドライバ１４０との間で送受信されるＵＳＢコマンドを管理するデバイス側のドライバである。ＵＳＢデバイスドライバ２２０は、後述する被制御機器３００のＵＳＢデバイスドライバ３２０の代わりに制御機器１００のＵＳＢホストドライバ１４０との間で動作する。
【００２２】
マスストレージクラス２３０は、ファイルシステム２４０の下位ドライバとしてのマスストレージクラスドライバである。マスストレージクラス２３０は、ＵＳＢコマンドとファイル形式のデータとの間の変換を行う。
【００２３】
記憶装置２３５は、ハードディスク、フラッシュメモリ等の記憶媒体である。記憶装置２３５には、ＵＳＢデバイス情報ファイルと制御ファイルとが記憶される。
【００２４】
図２には、ＵＳＢデバイス情報ファイルのデータ構造の一例が示されている。ＵＳＢデバイス情報ファイルは、被制御機器（ＵＳＢデバイス）３００を特定する情報を格納するファイルである。
【００２５】
図２に示すように、ＵＳＢデバイス情報ファイルには、プロダクトＩＤ（ＰＩＤ）、ベンダＩＤ（ＶＩＤ）、ＵＳＢアドレス（ＡＤＤＲＥＳＳ）、デバイスクラス（ＣＬＡＳＳ）が含まれている。
【００２６】
プロダクトＩＤ（ＰＩＤ）は、製品の識別情報である。ベンダＩＤ（ＶＩＤ）は、製造者の識別情報である。ＵＳＢアドレス（ＡＤＤＲＥＳＳ）は、ＵＳＢネットワークでのアドレス情報である。デバイスクラス（ＣＬＡＳＳ）は、ＵＳＢデバイスの種類を表すデバイスクラスの情報である。
【００２７】
なお、記憶装置２３５におけるＵＳＢデバイス情報ファイルを格納するディレクトリは、固定のディレクトリとし、ファイル名を含むパス名を固定の名前とする。図２に示す/device/usbdev.infoは、ＵＳＢデバイス情報ファイルのパス名であるが、ファイル名は、これには限定されない。
【００２８】
図３には、制御ファイルのデータ構造の一例が示されている。制御ファイルは、中継機器２００によって管理されるファイルである。
【００２９】
制御ファイルには、制御機器１００が被制御機器３００に対して発行するコマンド、より具体的には、被制御機器３００の入出力機能に関する情報が含まれている。この情報には、制御内容に関するものと、制御結果に関するものとが含まれている。制御内容に関するものには、コマンドの番号（ＳＥＱＮｏ）、コマンド名称（ＣＭＤ）、コマンドパラメータ（ＩＮＰＵＴ）、コマンド発行時刻（ＳＴＡＲＴＴＩＭＥ）がある。また、制御結果に関するものには、コマンド発行後の被制御機器３００からの状態（ＳＴＡＴＵＳ）、コマンド発行後の被制御機器３００からの応答（ＯＵＴＰＵＴ）がある。
【００３０】
なお、コマンドの番号は、１から開始され、１ずつインクリメントされ、予め設定された十分大きな最大値を超えた場合は、また、１に戻り、再びインクリメントされるものとする。
【００３１】
また、ファイル名は、ＵＳＢデバイス情報ファイルのプロダクトＩＤ、ベンダＩＤ、ＵＳＢアドレス、デバイスクラスに基づいて定められている。
【００３２】
図３に示す/device/P0010_V0234_A2_COMM.datは、制御ファイルのパス名である。記憶装置２３５におけるディレクトリは固定のディレクトリである。ファイル名のうち、P0010は、プロダクトＩＤ（0x0010）を示し、V0234は、ベンダＩＤ（0x0234）を示し、A2は、ＵＳＢアドレス（２）を示し、COMMは、デバイスクラス（Communication Device Class（通信用デバイスクラス））を示す。
【００３３】
ファイルシステム２４０は、中継機器２００のファイルシステムである。ファイル解析部２５０は、記憶装置２３５に記憶された制御ファイルに記述された制御内容を定期的に解析する。ＵＳＢコマンド変換部２６０は、ファイル解析部２５０によって解析された制御ファイルの制御内容を被制御機器３００に対するＵＳＢコマンドに変換する。
【００３４】
ＵＳＢホストドライバ２７０は、ＵＳＢホストのコマンドを管理するＵＳＢドライバである。ＵＳＢホストドライバ２７０は、ＵＳＢコマンド変換部２６０で変換されたＵＳＢコマンドをＵＳＢホストコントローラ２８０に出力する。ＵＳＢホストドライバ２７０は、制御機器１００のＵＳＢホストドライバ１４０の代わりに動作する。
【００３５】
ＵＳＢホストコントローラ２８０は、被制御機器３００のＵＳＢデバイスコントローラ３１０との間でＵＳＢパケットを送受信する。ＵＳＢホストコントローラ２８０は、制御機器１００のＵＳＢホストコントローラ１５０の代わりに動作する。
【００３６】
被制御機器３００は、ＵＳＢデバイスドライバ３１０と、ＵＳＢデバイスドライバ３２０と、入出力制御クラス３３０と、入出力装置３４０とを備える。
【００３７】
ＵＳＢデバイスコントローラ３１０は、中継機器２００のＵＳＢホストコントローラ２８０との間で、ＵＳＢパケットの送受信を行う。ＵＳＢデバイスドライバ３２０は、ＵＳＢデバイスのコマンドを管理するＵＳＢドライバである。
【００３８】
入出力制御クラス３３０は、受信したＵＳＢコマンドを解析し、ＵＳＢコマンドに従って入出力装置３４０を制御する。入出力装置３４０は、入出力制御クラスに接続して実際にデータの入出力を行う。
【００３９】
この実施の形態では、マスストレージクラス２３０、記憶装置２３５及びファイルシステム２４０が、ファイル管理部に対応する。すなわち、マスストレージクラス２３０、記憶装置２３５及びファイルシステム２４０は、被制御機器３００を特定するための情報が記述されたＵＳＢデバイス情報ファイルと、被制御機器３００の入出力機能に関する制御内容及び制御結果が記述される制御ファイルとを管理する。
【００４０】
また、この実施の形態では、ＵＳＢデバイスコントローラ２１０及びＵＳＢデバイスドライバ２２０が第１の通信インターフェイスに対応する。すなわち、ＵＳＢデバイスコントローラ２１０及びＵＳＢデバイスドライバ２２０が、制御機器１００からの要求に応じてＵＳＢデバイス情報ファイル、制御ファイルのファイル送受信を行う。
【００４１】
また、この実施の形態では、ＵＳＢホストドライバ２７０及びＵＳＢホストコントローラ２８０が、第２の通信インターフェイスに対応する。すなわち、ＵＳＢホストドライバ２７０及びＵＳＢホストコントローラ２８０は、被制御機器３００との間でコマンド送受信を行う。
【００４２】
中継装置２００は、ＵＳＢコマンド変換部２６０で変換されたＵＳＢコマンドに対する被制御機器３００の応答に基づいて、制御ファイルに記述された制御結果を更新する。また、中継装置２００は、制御機器１００から定期的に送信される要求に基づいて制御結果が更新された制御ファイルを制御機器１００に返信する。
【００４３】
次に、この実施の形態に係る入出力システム１の動作について説明する。図４には、図１の入出力システム１の全体動作が示されている。
【００４４】
まず、制御装置１００、中継機器２００及び被制御機器３００は、初期化処理のサブルーチンを実行する（ステップＳ１０１、Ｓ２０１、Ｓ３０１）。
【００４５】
図５には、制御機器１００、中継機器２００及び被制御機器３００の初期化処理が示されている。
【００４６】
図５に示すように、まず、制御機器１００は、ＵＳＢ以外に関するデバイスの初期化を行う（ステップＳ４０１）。
【００４７】
続いて、制御機器１００は、ＵＳＢ通信初期化を開始する。まず、制御機器１００は、中継機器２００へＵＳＢ接続要求を送信する（ステップＳ４０２）。
【００４８】
一方、中継機器２００は、ＵＳＢ以外のデバイス初期化を実施しており（ステップＳ５０１）、ＵＳＢコマンドの受信待ち（ＵＳＢ接続待ち）となっている（ステップＳ５０２）。制御機器１００からのＵＳＢ接続要求に対して、中継機器２００は、ＵＳＢ接続応答を制御機器に返信する（ステップＳ５０３）。この応答を受信することにより、制御機器１００は、中継機器２００との間のＵＳＢ接続を確立させる（ステップＳ４０３）。
【００４９】
これにより、制御機器１００では、中継機器２００が標準ドライバを用いてファイルを格納できるマスストレージの記憶ドライブとして認識される。この結果、制御機器１００が中継機器２００の記憶装置２３５に格納されたファイルを読み書きすることが可能となる。
【００５０】
続いて、中継機器２００及び被制御機器３００は、ＵＳＢ通信初期化を開始する。まず、中継機器２００は、被制御機器３００にＵＳＢ接続要求を送信する（ステップＳ５０４）。
【００５１】
一方、被制御機器３００は、ＵＳＢ以外のデバイス初期化を実施しており（ステップＳ６０１）、ＵＳＢコマンド受信待ち（ＵＳＢ接続待ち）となっている（ステップＳ６０２）。中継機器２００からＵＳＢ接続要求を受信すると、被制御機器３００は、ＵＳＢ接続応答を返信する（ステップＳ６０３）。このＵＳＢ接続応答を中継機器２００が受信することにより、中継機器２００は、被制御機器３００との間のＵＳＢ接続を確立させる（ステップＳ５０５）。
【００５２】
すなわち、このようにして、制御機器１００と中継機器２００との間と、中継機器２００と被制御機器３００との間のＵＳＢ接続が確立する。
【００５３】
続いて、中継機器２００は、被制御機器３００に対して、ＵＳＢデバイス情報の取得要求を送信する（ステップＳ５０６）。ＵＳＢデバイス情報には、前述のように、被制御機器３００の識別情報であるプロダクトＩＤ、製造者の識別情報であるベンダＩＤ、ＵＳＢネットワークでのアドレス情報であるＵＳＢアドレス、ＵＳＢデバイスの種類を表すデバイスクラスの情報が含まれている。
【００５４】
続いて、取得要求による応答があると、中継機器２００は、被制御機器３００から受信した応答に含まれるＵＳＢデバイス情報に基づいて、ＵＳＢデバイス情報ファイルを作成して記憶装置２３５に記憶する（ステップＳ５０７）。
【００５５】
この後、制御機器１００は、ＵＳＢマスストレージコマンドを送信することにより、ＵＳＢデバイス情報ファイルの有無をチェックする（ステップＳ４０４）。チェック後、制御機器１００、中継機器２００及び被制御機器３００は、ＵＳＢ通信初期化処理を終了する。
【００５６】
図４に戻り、続いて、中継機器２００及び被制御装置３００は、ＵＳＢ接続待ちとなる（ステップＳ２０２、Ｓ３０２）。
【００５７】
続いて、制御機器１００は、中継機器２００からＵＳＢデバイス情報ファイルの内容を読み込む。より具体的には、制御機器１００は、中継機器２００にＵＳＢデバイス情報ファイルの取得要求のＵＳＢコマンドを送信し（ステップＳ１０２）、中継機器２００は、このＵＳＢコマンドを受信すると（ステップＳ２０３）、ＵＳＢデバイス情報ファイルを応答として返信する（ステップＳ２０４）。制御機器１００は、ＵＳＢデバイス情報ファイルを受信し、これを取得する（ステップＳ１０３）。
【００５８】
これにより、制御機器１００は、中継機器２００に接続している被制御機器３００（ＵＳＢデバイス）を特定するＵＳＢデバイス情報を取得することができる。このＵＳＢデバイス情報により、制御機器１００のアプリケーション１１０の制御対象と一致する被制御機器３００があったときに設定される制御ファイルのファイル名が、例えば図３に示すように決定される。
【００５９】
続いて、制御機器１００は、制御ファイルの記憶装置２３５への書き込みを実行する。
【００６０】
より具体的には、制御機器１００（アプリケーション１１０）は、制御ファイルの作成要求のＵＳＢコマンドを中継機器２００（ＵＳＢマスストレージクラス２３０）に送信する（ステップＳ１０４）。このＵＳＢコマンドを受信すると、中継機器２００（ＵＳＢマスストレージクラス２３０）は、受信したファイル作成要求のＵＳＢコマンドに基づいて、制御ファイルを作成して記憶装置２３５に格納する（ステップＳ２０５）。
【００６１】
続いて、定期的に動作するファイル解析部２５０が、制御ファイルをファイルシステム２２０を介して記憶装置２３５から読み出して、その制御内容を解析する（ステップＳ２０６）。
【００６２】
次に、ＵＳＢコマンド変換部２６０が、制御ファイルの制御内容をＵＳＢコマンドに変換して（ステップＳ２０７）、ＵＳＢホストドライバ２７０及びＵＳＢホストコントローラ２８０を介して、コマンドのパラメータ（ＩＮＰＵＴ）とともに被制御機器３００に対してＵＳＢコマンドを送信する（ステップＳ２０８）。
【００６３】
被制御機器３００は、このＵＳＢコマンドを受信する（ステップＳ３０３）。被制御機器３００（入出力制御クラス３３０）は、受信したＵＳＢコマンドに従って、入出力装置３４０の制御を行う（ステップＳ３０４）。被制御機器３００は、入出力機器３４０の制御結果を、中継機器２００に返信する（ステップＳ３０５）。この制御結果には、コマンド発行後の被制御機器３００からの状態（ＳＴＡＴＵＳ）、コマンド発行後の被制御機器からの応答（ＯＵＴＰＵＴ）が含まれる。
【００６４】
中継機器２００は、制御結果を受信し（ステップＳ２０９）、制御結果に基づいて記憶装置２３５に記憶された制御ファイルを更新する（ステップＳ２１０）。ここで、コマンド発行後の被制御機器３００からの状態（ＳＴＡＴＵＳ）としては、例えば成功、失敗＋エラーコード、実行中等などが書き込まれる。
【００６５】
制御機器１００のアプリケーション１１０は、定期的に被制御機器３００の制御結果を記述する制御ファイルを監視している。アプリケーション１１０は、制御ファイルの内容に変更があった場合は、記憶装置２３５から制御ファイルを読み込んで（ステップＳ１０５）、読み込んだ制御ファイルを解析して、被制御機器３００に対する制御結果を確認する（ステップＳ１０６）。
【００６６】
このように、この実施の形態に係る中継機器２００は、制御機器１００に対しては、自らが被制御機器３００として入出力機能に関する制御内容及び制御結果が記述される制御ファイルの送受信を行い、被制御機器３００に対しては、自らが制御機器１００としてＵＳＢコマンドの送受信を行う。この中継機器２００は、制御ファイルの制御内容に基づくＵＳＢコマンドを被制御機器３００に送信し、その応答に基づいて、制御ファイルの制御結果を更新する。更新された制御ファイルは、制御機器１００に返信される。このようにすれば、制御機器１００から標準ドライバを介して利用できるファイルを用いて、被制御機器３００の入出力機器を制御するＵＳＢコマンドを発行することにより、入出力制御を行うことができるようになる。この結果、被制御機器３００のドライバを制御機器１００にインストールすることなく、標準ドライバを用いて、制御機器１００から被制御機器３００の入出力機能を、より簡便に利用することができるようになる。これにより、セキュリティの厳しい制御機器１００の動作環境における被制御機器３００の入出力機能の利用制限を緩和することができる。
【００６７】
なお、図３に示す制御ファイルのコマンド発行時刻（ＳＴＡＲＴＴＩＭＥ）には、将来の時刻が記述されるようにしてもよい。中継機器２００は、このコマンド発行時刻に、被制御機器３００の入出力制御を行う。
【００６８】
この場合、制御機器１００が被制御機器３００の接続した中継機器２００から切り離されても、中継機器２００は、制御ファイルの制御内容に記述されたコマンド実行時刻（ＳＴＡＲＴＴＩＭＥ）に、そのコマンドを被制御機器３００に送信して、その制御結果を受信する。受信された制御結果は、制御ファイルに書き込まれる。
【００６９】
その後、制御機器１００が中継機器２００に再接続されると、制御機器１００のアプリケーション１１０は、定期的に、制御ファイルの取得要求を中継機器２００に送信する。これを受けて、中継装置２００は、制御ファイルを制御機器１００に返信する。これにより、制御機器２００が、被制御機器３００の入出力制御の制御結果を確認することができる。
【００７０】
このように、中継機器２００は、制御機器１００との接続が切り離された状態でも、被制御機器３００が接続されていれば、制御ファイルに登録されたコマンド発行時刻で、被制御機器３００に対するＵＳＢコマンドを送信することにより、被制御機器３００の入出力制御が可能となる。これにより、制御機器１００と被制御機器３００とを常時接続しておく必要がなくなるので、双方の設置の自由度を高めることができる。
【００７１】
なお、上記各実施の形態では、ＵＳＢ通信におけるＵＳＢホストとＵＳＢデバイスとの間に適用するものについて説明したが、本発明は、他の通信におけるホストとデバイスとの間の通信にも適用することができる。
【００７２】
なお、上記実施の形態において、実行されるソフトウエアプログラムは、フレキシブルディスク、ＣＤ−ＲＯＭ（Compact Disc Read-Only Memory）、ＤＶＤ（Digital Versatile Disc）、ＭＯ（Magneto-Optical Disc）等のコンピュータ読み取り可能な記録媒体に格納して配布し、そのプログラムをインストールすることにより、上述のソフトウエアプログラムを実行するシステムを構成することとしてもよい。
【００７３】
また、ソフトウエアプログラムをインターネット等の通信ネットワーク上の所定のサーバ装置が有するディスク装置等に格納しておき、例えば、搬送波に重畳させて、ダウンロード等するようにしてもよい。
【００７４】
また、上述の機能を、ＯＳ（Operating System）が分担して実現する場合又はＯＳとアプリケーションとの協働により実現する場合等には、ＯＳ以外の部分のみを媒体に格納して配布してもよく、また、ダウンロード等してもよい。
【００７５】
この発明は、この発明の広義の精神と範囲を逸脱することなく、様々な実施の形態及び変形が可能とされるものである。また、上述した実施の形態は、この発明を説明するためのものであり、この発明の範囲を限定するものではない。すなわち、この発明の範囲は、実施の形態ではなく、特許請求の範囲によって示される。そして、特許請求の範囲内及びそれと同等の発明の意義の範囲内で施される様々な変形が、この発明の範囲内とみなされる。
【産業上の利用可能性】
【００７６】
この発明は、制御機器（例えばＵＳＢホスト）に対して、被制御機器（例えばＵＳＢデバイス）がマスストレージクラスの機能に加えて、被制御機器の入出力装置の制御機能を提供する場合に好適である。
【符号の説明】
【００７７】
１    入出力システム
１００    制御機器
１１０    アプリケーション
１２０    ファイルシステム
１３０    マスストレージクラス
１４０    ＵＳＢホストドライバ
１５０    ＵＳＢホストコントローラ
２００    中継機器
２１０    ＵＳＢデバイスコントローラ
２２０    ＵＳＢデバイスドライバ
２３０    マスストレージクラス
２３５    記憶装置
２４０    ファイルシステム
２５０    ファイル解析部
２６０    ＵＳＢコマンド変換部
２７０    ＵＳＢホストドライバ
２８０    ＵＳＢホストコントローラ
３００    被制御機器
３１０    ＵＳＢデバイスコントローラ
３２０    ＵＳＢデバイスドライバ
３３０    入出力制御クラス
３４０    入出力装置
４００    ＵＳＢ通信
【図１】
0005734113.tif 000002
【図２】
0005734113.tif 000003
【図３】
0005734113.tif 000004
【図４】
0005734113.tif 000005
【図５】
0005734113.tif 000006