(57)【要約】【課題】ローカル接続可能な多様な外部デバイスに対し、汎用的な電源供給の停止・再開を制御可能な情報処理装置を提供する。【解決手段】情報処理装置は、一定時間アクセスがないデバイスに対して、当該デバイスへの給電を停止後に、デバイスが接続されているように認識させる疑似接続状態に変更し、アプリケーションから疑似接続状態のデバイスへのアクセスが発生したことを検知した場合、検知されたアクセス要求を待機させ、デバイスへの給電を再開後、待機中のアクセス要求に基づいて、所定時間経過後、当該デバイスへアクセスさせる。【選択図】図１
2018036804.tif 000002
【特許請求の範囲】
【請求項１】
１以上のデバイスとローカル接続されている情報処理装置であって、
前記デバイスに対する処理を要求する処理要求手段と、
前記デバイスに対する給電の開始および停止を制御する給電制御手段と、
前記デバイスに対するアクセス状況を監視するアクセス監視手段と、
前記デバイスのデバイス情報を管理するデバイス情報管理手段と、
前記処理要求手段の前記デバイスに対するアクセスを制御するアクセス制御手段と、を備え、
前記アクセス監視手段によって前記デバイスに対して所定時間アクセスがないことを検出した場合、前記給電制御手段は前記デバイスへの給電を停止し、
前記デバイス情報管理手段は、前記処理要求手段に前記デバイスが接続されているように認識させる疑似接続状態に変更し、
前記アクセス監視手段によって前記処理要求手段から疑似接続状態の当該デバイスへのアクセスが発生したことを検知した場合、前記アクセス監視手段によって検知されたアクセス要求を待機させ、前記給電制御手段によって前記デバイスへの給電を再開した後、
前記アクセス制御手段は、待機中のアクセス要求に基づいて、所定時間経過後、当該デバイスへアクセスさせる
ことを特徴とする情報処理装置。
【請求項２】
前記処理要求手段に対して前記デバイスの切断通知または接続通知を行う接続状態通知手段を更に備え、
前記アクセス監視手段によって前記デバイスに対して所定時間アクセスがないと判断された場合、前記接続状態通知手段は、前記処理要求手段に対して切断通知を送信せず、
前記デバイス情報管理手段は、当該デバイスのデバイス情報を削除しないことを特徴とする請求項１に記載の情報処理装置。     
【請求項３】
前記デバイスがシーケンシャルなアクセスを必要とするデバイスかを判断するデバイス判断手段を更に備え、
前記デバイス判断手段によって、当該デバイスがシーケンシャルなアクセスを必要とするデバイスであると判断され、かつ、デバイス情報管理手段によって当該デバイスが疑似接続状態であると判断した場合、前記アクセス監視手段によって前記処理要求手段から再アクセスが発生したことを検出した後、前記接続状態通知手段は、前記処理要求手段に対して当該デバイスの切断通知を行い、その後、接続通知を行うこと
を特徴とする請求項２に記載の情報処理装置。
【請求項４】
前記デバイスに対する初期化処理を要求する初期化処理要求手段を更に備え、
前記アクセス監視手段によって前記処理要求手段から前記デバイスに対する再アクセスを検知後に、デバイス情報管理手段によって当該デバイスが疑似接続状態であると判断した場合、前記給電制御手段によって前記デバイスへの給電を再開後、
前記初期化処理要求手段は、当該デバイスに対して初期化処理を要求し、
前記アクセス制御手段は、前記デバイスの初期化処理が正常に行われなかった場合、
前記デバイスが挿抜されたと認識することを特徴とする請求項２に記載の情報処理装置。
【請求項５】
デバイス情報を取得するデバイス情報取得手段と、
前記デバイス情報に基づいて、デバイスの種別情報を判別するデバイス判別手段と、
を更に備え、
前記デバイス判別手段によって前記デバイスが所定の種類のデバイスと判別された場合、
デバイス情報管理手段は当該デバイスに対して切断前の状態へ遷移させることを特徴とする請求項２に記載の情報処理装置。
【請求項６】
デバイス情報を取得するデバイス情報取得手段と、
前記デバイス情報に基づいて、デバイスの種別情報を判別するデバイス判別手段と、
を更に備え、
前記デバイス情報取得手段によって取得した当該デバイスの前記デバイス情報と前記デバイス情報管理手段によって管理されている前記デバイス情報が一致しない場合、前記接続状態通知手段によって前記処理要求手段に接続通知を通知し、
前記アクセス制御手段は前記処理要求手段による当該デバイスへのアクセスを拒否し、
前記デバイス情報取得手段によって取得した前記デバイスの前記デバイス情報と前記デバイス情報管理手段から取得した前記デバイス情報が一致する場合、前記アクセス制御手段は前記処理要求手段による当該デバイスへのアクセスを許可させることを特徴とする請求項２に記載の情報処理装置。
【請求項７】
前記所定時間とは、前記給電制御手段による前記デバイスへの給電再開から前記デバイスへのアクセスが可能になるまでの時間であることを特徴とする請求項１乃至請求項６のいずれか１項に記載の情報処理装置。
【請求項８】
１以上のデバイスとローカル接続されている情報処理装置の制御方法であって、
アクセス監視手段が前記デバイスに対して所定時間アクセスがないことを検出する第１のアクセス監視ステップと、
前記アクセス監視ステップによって前記デバイスに対して所定時間アクセスがないことを検出した場合、給電制御手段が前記デバイスへの給電を停止する前記第１の給電制御ステップと、
デバイス情報管理手段が処理要求手段に前記デバイスが接続されているように認識させる疑似接続状態に変更する第１のデバイス情報管理ステップと、
アクセス監視手段が前記処理要求手段から疑似接続状態の当該デバイスへのアクセスが発生したことを検知する第２のアクセス監視ステップと、
アクセス監視手段が前記第２のアクセス監視ステップによって検知されたアクセス要求を待機させる第３のアクセス監視ステップと、
給電制御手段が前記デバイスへの給電を再開する前記第２の給電制御ステップと、
前記第２の給電制御ステップによってデバイスへの給電を再開した後、アクセス制御手段が待機中のアクセス要求に基づいて、所定時間経過後、当該デバイスへアクセスさせる前記第２のアクセス制御ステップと、
を有することを特徴とする情報処理装置の制御方法。
【請求項９】
前記第１のアクセス監視ステップによって前記デバイスに対して所定時間アクセスがないと判断された場合、接続状態通知手段が前記処理要求手段に対して切断通知を送信しない第１の接続状態通知ステップと、
前記デバイス情報管理手段が当該デバイスのデバイス情報を削除しない第２のデバイス情報管理ステップと、を更に有する
ことを特徴とする請求項８に記載の情報処理装置の制御方法。     
【請求項１０】
デバイス判断手段が当該デバイスに対してシーケンシャルなアクセスを必要とするデバイスであるか判断するデバイス判断ステップと、
前記デバイス情報管理手段が当該デバイスを疑似接続状態であると判断する第３のデバイス情報管理ステップと、
前記デバイス判断ステップによって当該デバイスがシーケンシャルなアクセスを必要とするデバイスであると判断され、かつ、デバイス情報管理ステップによって当該デバイスが疑似接続状態であると判断した場合、アクセス監視手段が前記前記処理要求ステップから再アクセスが発生したことを検出する第３のアクセス監視ステップと、
接続状態通知手段が前記処理要求手段に対して当該デバイスの切断通知を行い、その後、接続通知を行う第２の接続状態通知ステップと、を更に有する
ことを特徴とする請求項９に記載の情報処理装置の制御方法。
【請求項１１】
前記第３のアクセス監視ステップによって前記処理要求手段から前記デバイスに対する再アクセスを検知後に、前記第３のデバイス情報管理ステップによって当該デバイスが疑似接続状態であると判断した場合、前記第２の給電制御ステップによって前記デバイスへの給電を再開後、初期化処理要求手段が当該デバイスに対して初期化処理を要求する初期化処理要求ステップと、
前記初期化処理要求ステップによって前記デバイスの初期化処理が正常に行われなかった場合、前記アクセス制御手段が前記デバイスを挿抜されたと認識する第３のアクセス制御ステップと、を更に有する
ことを特徴とする請求項９に記載の情報処理装置の制御方法。
【請求項１２】
デバイス情報取得手段がデバイス情報を取得するデバイス情報取得ステップと、
デバイス判別手段がデバイス情報取得ステップによって取得した前記デバイス情報に基づいて、デバイスの種別情報を判別するデバイス判別ステップと、
前記デバイス判別ステップによって前記デバイスが所定の種類のデバイスと判別された場合、前記デバイス情報管理が当該デバイスに対して切断前の状態へ遷移させる第３のデバイス情報管理ステップと、を更に有する
ことを特徴とする請求項９に記載の情報処理装置の制御方法。
【請求項１３】
デバイス情報取得手段が前記デバイスからデバイス情報を取得するデバイス情報取得ステップと、
デバイス判別手段がデバイス情報取得ステップによって取得した前記デバイス情報に基づいて、デバイスの種別情報を判別するデバイス判別ステップと、
前記デバイス情報取得ステップによって取得した当該デバイスの前記デバイス情報と前記デバイス情報管理手段によって管理されている前記デバイス情報が一致しない場合、前記接続状態通知手段が前記処理要求手段に接続通知を通知する第２の接続状態通知ステップと、
前記アクセス制御手段が前記処理要求手段による当該デバイスへのアクセスを拒否するアクセス制御ステップと、
前記デバイス情報取得ステップによって取得した前記デバイスの前記デバイス情報と前記デバイス情報管理手段によって管理されている前記デバイス情報が一致する場合、前記アクセス制御手段が前記処理要求手段による当該デバイスへのアクセスを許可させる第３のアクセス制御ステップと、を更に有する
ことを特徴とする請求項９に記載の情報処理装置の制御方法。
【請求項１４】
前記所定時間とは、前記第２の給電制御ステップによる前記デバイスへの給電再開から前記デバイスへのアクセスが可能になるまでの時間であることを特徴とする請求項８乃至請求項１３のいずれか１項に記載の情報処理装置の制御方法。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、情報処理装置と接続された外部デバイスを制御する情報処理装置および情報処理方法に関する。
【背景技術】
【０００２】
近年、組込み機器の高性能化に伴い、外部デバイスの省電力の必要性が高まっている。従来技術では、外部デバイスの消費電力を削減する技術が提案されている。
【０００３】
例えば、複数の記憶領域から形成される記憶装置（外部デバイス）を備える情報処理機器（情報処理装置）が、記憶装置を使用していない間は電源供給を遮断し、電源供給を遮断した記憶装置を参照する場合、参照する記憶装置へ給電を再開する技術がある（特許文献１参照）。
【先行技術文献】
【特許文献】
【０００４】
【特許文献１】特開２０００−２１５１００号公報
【発明の概要】
【発明が解決しようとする課題】
【０００５】
しかしながら、特許文献１の情報処理機器は、記憶装置の電源供給を遮断・再開する制御は実現できるが、その他の外部デバイス、例えば、ＵＳＢ（Ｕｎｉｖｅｒｓａｌ  Ｓｅｒｉａｌ  Ｂｕｓ）インターフェース経由で接続可能な多様な外部デバイスに対して、汎用的な電源供給を遮断・再開するデバイス制御は困難であった。
【０００６】
上記の課題を鑑みて、本発明は、情報処理装置がＵＳＢインターフェース経由等で接続可能な多様な外部デバイスに対し、汎用的な電源供給の遮断（停止）・再開を制御可能となる情報処理装置および情報処理方法を提供することを目的とする。
【課題を解決するための手段】
【０００７】
上記の課題を解決するために、請求項１に記載の情報処理装置は、１以上のデバイスとローカル接続されている情報処理装置であって、前記デバイスに対する処理を要求する処理要求手段と、前記デバイスに対する給電の開始および停止を制御する給電制御手段と、前記デバイスに対するアクセス状況を監視するアクセス監視手段と、前記デバイスのデバイス情報を管理するデバイス情報管理手段と、前記処理要求手段の前記デバイスに対するアクセスを制御するアクセス制御手段と、を備え、前記アクセス監視手段によって、前記デバイスに対して一定時間アクセスがないことを検出した場合、前記給電制御手段は前記デバイスへの給電を停止し、前記デバイス情報管理手段は、前記処理要求手段に前記デバイスが接続されているように認識させる疑似接続状態に変更し前記アクセス監視手段によって前記処理要求手段から疑似接続状態の当該デバイスへのアクセスが発生したことを検知した場合、前記アクセス監視手段によって検知されたアクセス要求を待機させ、前記給電制御手段によって前記デバイスへの給電を再開した後、前記アクセス制御手段は、待機中のアクセス要求に基づいて、所定時間経過後、当該デバイスへアクセスさせることを特徴とする。
【発明の効果】
【０００８】
本発明により、情報処理装置はＵＳＢインターフェース経由等で接続可能な多様な外部デバイスに対し、汎用的な電源供給の遮断・再開を制御可能となる。
【図面の簡単な説明】
【０００９】
【図１】本発明の第１の実施形態によるデバイス制御システムの一例を示すブロック図である。
【図２】図１に示す情報処理装置１００が有するデバイス管理情報１１１の一例を示す図である。
【図３】図１に示す情報処理装置１００の外部デバイス２００への切断処理に関する制御一例を示すフローチャートである。
【図４】図１に示す情報処理装置１００の外部デバイス２００への接続処理の制御の一例を示すフローチャートである。
【図５】本発明の第２の実施形態における情報処理装置１００の外部デバイス２００への接続処理の制御の一例を示すフローチャートである。
【図６】本発明の第３の実施形態における情報処理装置１００の外部デバイス２００への接続処理の制御の一例を示すフローチャートである。
【図７】本発明の第３の実施形態における情報処理装置１００が有するデバイス管理情報１１１の一例を示す図である。
【図８】本発明の第４の実施形態における情報処理装置１００の外部デバイス２００への切断処理の制御の一例を示すフローチャートである。
【図９】本発明の第４の実施形態における情報処理装置１００の外部デバイス２００への接続処理の制御の一例を示すフローチャートである。
【図１０】本発明の第４の実施形態における情報処理装置１００の外部デバイス２００への切断処理の制御の一例を示すフローチャートである。
【図１１】本発明の第５の実施形態における情報処理装置１００の外部デバイス２００への接続処理の制御の一例を示すフローチャートである。
【発明を実施するための形態】
【００１０】
以下、本発明の実施の形態によるデバイス制御システムの一例について図面を参照して説明する。
【００１１】
[第１の実施形態]
図１は、本発明の第１の実施形態によるデバイス制御システムの一例の構成を概略的に示すブロック図である。
【００１２】
図示のデバイス制御システムにおいて、情報処理装置１００は、通信インターフェースを介して外部デバイス２００に接続されている。なお、通信インターフェースは、例えば、ＵＳＢやＨＤＭＩ（登録商標）である。以降の説明では、情報処理装置１００および外部デバイス２００の通信インターフェースをＵＳＢとして説明する。
【００１３】
＜情報処理装置１００の構成＞
情報処理装置１００は、ユーザによって利用されるパーソナルコンピュータ（ＰＣ）等の装置である。ハードウェア構成として、ＣＰＵ、入力部、表示部、メモリ、通信部（ともに不図示）、記憶部１２０を備え、これらハードウェアは内部バスで相互に接続されている。
【００１４】
通信部は通信インターフェースであって、外部デバイス２００とデータ送受信を行う。
【００１５】
記憶部１２０には、ソフトウェアであるオペレーティングシステム（以下「ＯＳ」と呼ぶ：不図示）、アプリケーション１０１、デバイスドライバ１０２、デバイスアクセス制御部１０３、給電制御部１０４、およびデバイス情報管理部１１０が記憶されるとともに、他の機能に係るソフトウェアが記憶されている。なお、これらソフトウェアはメモリに読み出されて、ＣＰＵの制御に従い動作する。
【００１６】
アプリケーション１０１は、デバイスドライバ１０２に対してデータ入出力要求を指示することにより、外部デバイス２００を制御するためのソフトウェアである。
【００１７】
デバイスドライバ１０２は、外部デバイス２００を制御するための機能部である。ＯＳまたはアプリケーション１０１からのデータ入出力要求を外部デバイス２００に応じたデータ形式のデータ（以下「制御コマンド」と呼ぶ）に変換して、当該制御コマンドをデバイスアクセス制御部１０３または給電制御部１０４に送る。さらに、デバイスドライバ１０２は制御コマンドに対する応答をアプリケーション１０１に通知する。このデバイスドライバ１０２は一般に、製造したメーカーによって提供されるソフトウェアであって、情報処理装置１００は各デバイスに対応したデバイスドライバ１０２によって外部デバイス２００を制御することができる。
【００１８】
デバイスアクセス制御部１０３は、情報処理装置１００に接続された外部デバイス２００へのアクセスを監視し、制御する。
【００１９】
給電制御部１０４は、情報処理装置１００に接続された外部デバイス２００のバス接続状態の監視およびバス電源の供給（電源オン）、停止（電源オフ）を制御する。
【００２０】
デバイス情報管理部１１０は、情報処理装置１００に接続された外部デバイス２００に関する情報（後述するデバイス管理情報１１１）を認識・管理する。
【００２１】
＜デバイス管理情報１１１＞
次に、情報処理装置１００が有するデバイス管理情報１１１について説明する。デバイス管理情報１１１は、情報処理装置１００自身に接続された外部デバイス２００のバス電源供給の状態を含む外部デバイス２００の情報である。
【００２２】
図２は、図１に示すデバイス管理情報１１１の一例を示す図である。デバイス管理情報１１１は、デバイス名、情報処理装置１００の接続ポート番号、電源状態から構成される。
【００２３】
デバイス名は、情報処理装置１００に接続された外部デバイス２００の名称を示し、主にＵＳＢディスクリプタの情報から取得されるデバイス名称である。
【００２４】
接続ポート番号は、情報処理装置１００に接続された外部デバイス２００の物理的な接続位置をバスの接続階層に従い識別する情報である。
【００２５】
電源状態は情報処理装置１００に接続された外部デバイス２００に対して、バスの電源を供給（給電）しているか停止しているかを示す情報である。図２の例示では、デバイスＡとデバイスＣは給電されており、デバイスＢは給電を停止されている。
【００２６】
＜外部デバイス２００の構成＞
再び図１に戻り、外部デバイス２００を説明する。外部デバイス２００は、個体識別情報２０１および通信Ｉ／Ｆ２０２を備えており、情報処理装置１００にＵＳＢインターフェースによって接続されている。図１では、外部デバイス２００を１台として例示しているが、これに限定したものではなく、複数台あってもよい。
【００２７】
個体識別情報２０１は、外部デバイス２００を識別するための情報であり、メーカーを識別するために機器を製造したメーカー毎に割り当てられたベンダーＩＤ（ＶＩＤ）、機種を識別するために機種毎に割り当てられた製品ＩＤ（ＰＩＤ）、機器の個体を識別するために機器毎に割り当てられたシリアル番号などである。
【００２８】
通信Ｉ／Ｆ２０２は、情報処理装置１００とＵＳＢ通信を行うための機能部である。
【００２９】
本実施形態では、外部デバイス２００が一定時間アイドル状態（使用されていない状態）を継続した場合、デバイスドライバ１０２は、情報処理装置１００のＯＳが管理するデバイス一覧（不図示）から該当の外部デバイス２００のデバイス情報を削除せずに外部デバイス２００の切断処理のみを行う。この処理によって、アプリケーション１０１には疑似接続状態に見せかける（認識させる）。
【００３０】
また、情報処理装置１００のデバイスアクセス制御部１０３において、外部デバイス２００に対するアクセスを監視し、外部デバイス２００の切断処理後にアプリケーション１０１からの再アクセスを検知した際に、アプリケーション１０１から外部デバイス２００へのアクセスを待機させ、外部デバイス２００を接続状態に遷移させる処理を行う。これにより、接続を切断した外部デバイス２００へ再度アクセスする際に、ハード的（物理的）に外部デバイス２００の抜き差しが不要となる。
【００３１】
＜情報処理装置１００の切断処理に関する制御＞
図３は、図１に示す情報処理装置１００における外部デバイス２００の切断処理に関する制御の一例を示すフローチャートである。なお、情報処理装置１００に外部デバイス２００が接続されているものとして説明する。
【００３２】
なお、切断処理とは、アプリケーション１０１に外部デバイス２００の接続状態を「疑似接続状態」に見せかける場合の処理である。
【００３３】
情報処理装置１００のデバイスアクセス制御部１０３は、外部デバイス２００のアクセス状況を監視する（ステップＳ１０１）。
【００３４】
情報処理装置１００のデバイスアクセス制御部１０３は、一定時間アクセスがない外部デバイス２００があるか判断する（ステップＳ１０２）。
【００３５】
情報処理装置１００は、一定時間アクセスがない外部デバイス２００がない場合（ステップＳ１０２でＮｏ）、再び、ステップＳ１０１へ戻る。
【００３６】
一方、一定時間アクセスがない外部デバイス２００がある場合（ステップＳ１０２でＹｅｓ）、デバイスアクセス制御部１０３は、アプリケーション１０１へ外部デバイス２００の切断通知を行わず、さらに、給電制御部１０４は、該当の外部デバイス２００の給電をオフ（停止）する。なお、給電をオフした外部デバイス２００のデバイス情報はデバイス一覧から削除しない（ステップＳ１０３）。
【００３７】
このとき、アプリケーション１０１から外部デバイス２００へのアクセスを待機させ、外部デバイス２００を接続状態に遷移させる処理を行うことで、アプリケーション１０１側には外部デバイス２００が接続されているかのように「疑似接続状態」に見せかける（認識させる）。
【００３８】
＜情報処理装置１００の接続処理の制御＞
図４は、図１に示す情報処理装置１００おける外部デバイス２００への接続処理の制御一例を示すフローチャートである。
【００３９】
なお、接続処理とは、アプリケーション１０１に外部デバイス２００の接続状態を「疑似接続状態」に見せかけた後に、情報処理装置１００から外部デバイス２００にアクセスを行う場合の処理である。
【００４０】
情報処理装置１００のデバイスアクセス制御部１０３は、アプリケーション１０１から外部デバイス２００へのアクセス通知を検知する（ステップＳ２０１）。アクセス通知を検知しない場合（ステップＳ２０１でＮｏ）、この処理を繰り返す。アクセス通知を検知した場合（ステップＳ２０１でＹｅｓ）、次のステップＳ２０２へ進む。
【００４１】
情報処理装置１００の給電制御部１０４は、該当の外部デバイス２００への給電状態がオフ（停止）であるかデバイス管理情報１１１に基づき判断する（ステップＳ２０２）。
【００４２】
ステップＳ２０２において、情報処理装置１００の給電制御部１０４は、該当の外部デバイス２００への給電がオフである場合（ステップＳ２０２でＹｅｓ）、該当の外部デバイス２００への給電をオンにする（ステップＳ２０３）。
【００４３】
一方、ステップＳ２０２において、情報処理装置１００の給電制御部１０４は、該当の外部デバイス２００への給電がオン状態である場合（ステップＳ２０２でＮｏ）、ステップＳ２０４に進む。
【００４４】
デバイスアクセス制御部１０３は、外部デバイス２００に対して初期化処理を要求する（ステップＳ２０４）。外部デバイス２００は、情報処理装置１００からの初期化処理要求に対して初期化処理を行う。なお、初期化処理とは、外部デバイス２００のリセットをかけて初期状態（起動直後の状態）に戻す処理である。
【００４５】
アプリケーション１０１は、外部デバイス２００へのアクセス（制御）を行う（ステップＳ２０５）。その後、本制御フローを終了する。
【００４６】
上述のように、本発明の第１の実施形態によれば、情報処理装置１００から外部デバイス２００に対して一定時間アクセスがない場合、デバイスアクセス制御部１０３は、アプリケーション１０１に切断通知を行わずに疑似接続状態に認識させ、その後、アプリケーション１０１から再度アクセスする場合、外部デバイス２００をハード的（物理的な）に抜き差しする必要がなく、外部デバイス２００へのアクセスが可能になる。
【００４７】
[第２の実施形態]
続いて、本発明の第２の実施形態によるデバイス制御システムの一例について説明する。第２の実施形態では、シーケンシャルなアクセスを必要とする外部デバイスの切断処理および接続処理を行う点について説明する。
【００４８】
＜第２の実施形態のシステム構成＞
第２の実施形態のおけるデバイス制御システムは、図１で示したデバイス制御システムと同様であるため、同じ参照番号を付して説明を省略する。
【００４９】
本実施形態における外部デバイス２００はシーケンシャルなアクセスを必要とするデバイスである。シーケンシャルなアクセスを必要とするデバイスとは、例えば、記憶装置（ストレージ）、印刷装置（プリンタ）、読取装置（スキャナ）などのデバイスである。
【００５０】
＜第２の実施形態における情報処理装置１００の接続処理に関する制御＞
図５は、第２の実施形態における情報処理装置１００における外部デバイス２００への接続処理の制御の一例を示すフローチャートである。なお、情報処理装置１００における外部デバイス２００への切断処理は図３で説明したものと同様のため、説明を省略する。
【００５１】
デバイスアクセス制御部１０３は、アプリケーション１０１から外部デバイス２００へのアクセス通知を検知する（ステップＳ３０１）。アクセス通知を検知しない場合（ステップＳ３０１でＮｏ）、この処理を繰り返す。アクセス通知を検知した場合（ステップＳ３０１でＹｅｓ）、次のステップＳ３０２へ進む。
【００５２】
デバイスアクセス制御部１０３によってアプリケーション１０１から外部デバイス２００へのアクセス通知を検知した場合（ステップＳ３０１でＹｅｓ）、情報処理装置１００の給電制御部１０４は、該当の外部デバイス２００への給電状態がオフであるかデバイス管理情報１１１に基づき判断する（ステップＳ３０２）。
【００５３】
ステップＳ３０２において、情報処理装置１００の給電制御部１０４は、該当の外部デバイス２００への給電がオフである場合（ステップＳ３０２でＹｅｓ）、該当の外部デバイス２００への給電をオンにする（ステップＳ３０３）。
【００５４】
情報処理装置１００のデバイスアクセス制御部１０３は、該当の外部デバイス２００がシーケンシャルなアクセスを必要とする外部デバイスか判断する（ステップＳ３０４）。
【００５５】
ステップＳ３０４において、デバイスアクセス制御部１０３は、該当の外部デバイス２００がシーケンシャルなアクセスを必要とする外部デバイスであると判断した場合（ステップＳ３０４でＹｅｓ）、該当の外部デバイスの疑似接続状態を解除するためにデバイスドライバ１０２を介してアプリケーション１０１に外部デバイス２００の切断通知を行う（ステップＳ３０５）。
【００５６】
デバイスアクセス制御部１０３は、アプリケーション１０１へ外部デバイス２００の接続通知を行う（ステップＳ３０６）。その後、本制御を終了する。
【００５７】
なお、ステップＳ３０５において、アプリケーション１０１へ切断通知を行い、さらに、ステップＳ３０６において、アプリケーション１０１へ接続通知を行うことで、アプリケーション１０１の疑似接続状態を解除する。
【００５８】
一方、ステップＳ３０２において、情報処理装置１００の給電制御部１０４は、該当の外部デバイス２００への給電がオンである場合（ステップＳ３０２でＮｏ）、ステップＳ３０７に進む。
【００５９】
また、ステップＳ３０４において、デバイスアクセス制御部１０３は、該当の外部デバイス２００がシーケンシャルなアクセスを必要としない外部デバイスであると判断した場合（ステップＳ３０４でＮｏ）、ステップＳ３０７に進む。
【００６０】
次に、アプリケーション１０１は、外部デバイス２００へのアクセス（制御）を行う（ステップＳ３０７）。その後、本制御フローを終了する。
【００６１】
上述のように、本発明の第２の実施形態によれば、外部デバイス２００がシーケンシャルなアクセスを必要とするデバイスの場合、外部デバイス２００への電源供給（電源オン）および電源供給停止（電源オフ）に関する制御を実施しても、アプリケーション１０１へ切断通知後に接続通知を行うことにより、情報処理装置１００と外部デバイス２００の間で発生するシーケンスの相違の発生を回避することができる。
【００６２】
[第３の実施形態]
続いて、本発明の第３の実施形態によるデバイス制御システムの一例について説明する。第３の実施形態では、外部デバイス２００が疑似接続状態に遷移しているときに物理的に外部デバイスが挿抜された場合の処理について説明する。
【００６３】
＜第３の実施形態のシステム構成＞
第３の実施形態のおけるデバイス制御システムは、図１で示したデバイス制御システムと同様であるため、同じ参照番号を付して説明を省略する。
【００６４】
＜第３の実施形態における情報処理装置１００の接続処理に関する制御＞
図６は、第３の実施形態における情報処理装置１００における外部デバイス２００への接続処理の制御の一例を示すフローチャートである。なお、情報処理装置１００における外部デバイス２００への切断処理は図３で説明したものと同様のため、説明を省略する。
【００６５】
情報処理装置１００のデバイスアクセス制御部１０３は、アプリケーション１０１から外部デバイス２００へのアクセス通知を検知する（ステップＳ４０１）。アクセス通知を検知しない場合（ステップＳ４０１でＮｏ）、この処理を繰り返す。アクセス通知を検知した場合（ステップＳ４０１でＹｅｓ）、次のステップＳ４０２へ進む。
【００６６】
情報処理装置１００の給電制御部１０４は、該当の外部デバイス２００への給電状態がオフ（停止）であるかデバイス管理情報１１１に基づき判断する（ステップＳ４０２）。
【００６７】
ステップＳ４０２において、情報処理装置１００の給電制御部１０４は、該当の外部デバイス２００への給電がオフである場合（ステップＳ４０２でＹｅｓ）、該当の外部デバイス２００への給電をオンにする（ステップＳ４０３）。
【００６８】
ステップＳ４０３において、給電制御部１０４によって該当の外部デバイス２００への給電を開始した場合、デバイスアクセス制御部１０３は、外部デバイス２００に対して初期化処理を要求する（ステップＳ４０４）。このとき、外部デバイス２００は、情報処理装置１００からの初期化処理要求に対して初期化処理を行う。
【００６９】
情報処理装置１００のデバイスアクセス制御部１０３は、外部デバイス２００の初期化処理が正常に終了したか判断する（ステップＳ４０５）。なお、ステップＳ４０４の処理およびステップＳ４０５の処理によって、情報処理装置１００に接続された外部デバイス２００が挿抜されたか判断する。
【００７０】
外部デバイス２００の初期化処理が正常に終了した場合（ステップＳ４０５でＹｅｓ）、アプリケーション１０１は、外部デバイス２００へのアクセス（制御）を行う（ステップＳ４０６）。その後、本制御フローを終了する。
【００７１】
一方、外部デバイス２００の初期化処理が正常に終了しなかった場合（ステップＳ４０５でＮｏ）、デバイスアクセス制御部１０３は、アプリケーション１０１へ外部デバイス２００の切断通知を行う（ステップＳ４０７）。その後、本制御フローを終了する。
【００７２】
上述のように、本発明の第３の実施形態によれば、外部デバイス２００の接続状態が疑似接続状態のときに外部デバイス２００の挿抜が行われ、情報処理装置１００から挿抜された外部デバイス２００に再度アクセスがあった場合でも、エラー（不正なデバイスへのアクセス処理）の発生を回避することができる。
【００７３】
[第４の実施形態]
続いて、本発明の第４の実施形態によるデバイス制御システムの一例について説明する。第４の実施形態では、シーケンシャルな状態遷移が必要となる外部デバイス２００に対して、情報処理装置１００は、デバイス管理情報１１１から外部デバイス２００の切断前の状態を取得し、該当の外部デバイス２００のクラスに応じた状態遷移処理を行い、該当の外部デバイスを切断前の状態へ遷移させる点について説明する。
【００７４】
＜第４の実施形態のシステム構成＞
第４の実施形態のおけるデバイス制御システムは、図１で示したデバイス制御システムと同様であるため、同じ参照番号を付して説明を省略する。
【００７５】
図７は、本実施形態におけるデバイス管理情報１１１の一例を示す図である。デバイス管理情報１１１は、デバイス名、情報処理装置１００の接続ポート番号、デバイスの電源状態、外部デバイス２００の切断前の状態から構成される。
【００７６】
なお、デバイス名、情報処理装置１００の接続ポート番号、デバイスの電源状態については第１の実施形態と同様のため、説明を省略する。
【００７７】
外部デバイス２００の切断前の状態とは、外部デバイス２００への給電を停止する前の状態である。例えば、情報処理装置１００に外部デバイス２００がマウントしている状態（以下、マウント状態）、起動直後（初期状態）、カスタム設定状態（初期状態とは異なる設定がされている状態）などである。
【００７８】
なお、外部デバイス２００によっては、起動直後の状態とマウント状態が同じ状態であっても良い。また、外部デバイス２００によっては、起動直後の状態とカスタム設定状態が同じ状態であっても良い。
【００７９】
＜第４の実施形態における情報処理装置１００の切断処理に関する制御＞
図８は、第４の実施形態における情報処理装置１００の外部デバイス２００への切断処理（給電オフ）に関する制御の一例を示すフローチャートである。
【００８０】
情報処理装置１００のデバイスアクセス制御部１０３は、外部デバイス２００に対するアクセス状況を監視する（ステップＳ５０１）。
【００８１】
情報処理装置１００のデバイスアクセス制御部１０３は、一定時間アクセスがない外部デバイス２００があるか判断する（ステップＳ５０２）。
【００８２】
デバイスアクセス制御部１０３は、一定時間アクセスがない外部デバイス２００はない（一定時間内に全デバイスにアクセスがある）と判断した場合（ステップＳ５０２でＮｏ）、再び、ステップＳ５０１に戻る。
【００８３】
デバイスアクセス制御部１０３は、外部デバイス２００に対するアクセスが一定時間ないと判断した場合（ステップＳ５０２でＹｅｓ）、一定時間アクセスがない外部デバイスを特定し、デバイス情報管理部１１０は、その外部デバイス２００のクラス情報を取得する（ステップＳ５０３）。
【００８４】
なお、クラス情報とはデバイスの種類を識別する情報であって、例えば、ＵＳＢデバイスのクラスＩＤのような情報である。
【００８５】
情報処理装置１００は、ステップＳ５０３で外部デバイス２００から取得したクラス情報に基づいて、該当の外部デバイス２００が切断前の状態を保持できる外部デバイスか判断する（ステップＳ５０４）。
【００８６】
情報処理装置１００は、外部デバイス２００から取得したクラス情報に基づいて、該当の外部デバイス２００が状態を保持できる外部デバイスであると判断した場合（ステップＳ５０４でＹｅｓ）、デバイス情報管理部１１０は、該当の外部デバイス２００の切断前の状態を取得し（ステップＳ５０５）、取得した切断前の状態をデバイス管理情報１１１に保持させる（ステップＳ５０６）。
【００８７】
一方、情報処理装置１００は、外部デバイス２００から取得したクラス情報に基づいて、該当の外部デバイス２００が切断前の状態を保持できない外部デバイスであると判断した場合（ステップＳ５０４でＮｏ）、ステップＳ５０７に進む。
【００８８】
デバイスアクセス制御部１０３は、アプリケーション１０１に外部デバイス２００の切断通知は行わず、給電制御部１０４は、該当の外部デバイス２００に対する給電をオフにする（ステップＳ５０７）。その後、ステップＳ５０１に戻る。
【００８９】
＜第４の実施形態における情報処理装置１００の接続処理に関する制御＞
図９は、第４の実施形態における情報処理装置１００における外部デバイス２００への接続処理の制御の一例を示すフローチャートである。
【００９０】
デバイスアクセス制御部１０３は、アプリケーション１０１から外部デバイス２００へのアクセス通知を検知したか判断する（ステップＳ６０１）。アクセス通知を検知しない場合（ステップＳ６０１でＮｏ）、この処理を繰り返す。アクセス通知を検知した場合（ステップＳ６０１でＹｅｓ）、次のステップＳ６０２へ進む。
【００９１】
給電制御部１０４は、該当の外部デバイス２００への給電状態がオフであるかデバイス管理情報１１１に基づき判断する（ステップＳ６０２）。
【００９２】
ステップＳ６０２において、情報処理装置１００の給電制御部１０４は、該当の外部デバイス２００への給電がオフである場合（ステップＳ６０２でＹｅｓ）、該当の外部デバイス２００への給電をオンにする（ステップＳ６０３）。
【００９３】
次に、情報処理装置１００のデバイス情報管理部１１０は、デバイス管理情報１１１に外部デバイス２００の切断前の状態を保持しているか判断する（ステップＳ６０４）。
【００９４】
デバイス情報管理部１１０は、デバイス管理情報１１１に外部デバイス２００の切断前の状態を保持していると判断した場合(ステップＳ６０４でＹｅｓ)、デバイスアクセス制御部１０３は、該当の外部デバイス２００に対して、デバイス管理情報１１１に管理されている切断前の状態に遷移させるように要求（以下、状態遷移要求）する(ステップＳ６０５)。このとき、外部デバイス２００は、情報処理装置１００から受信した状態遷移要求に応じて、状態を変更する。
【００９５】
一方、情報処理装置１００のデバイス情報管理部１１０は、デバイス管理情報１１１に外部デバイス２００の状態を保持していないと判断した場合(ステップＳ６０４でＮｏ)、ステップＳ６０６へ進む。
【００９６】
アプリケーション１０１は、外部デバイス２００へのアクセス（制御）を行う（ステップＳ６０６）。その後、本制御を終了する。
【００９７】
上述のように、本発明の第４の実施形態によれば、シーケンシャルな状態遷移が必要となる外部デバイス２００に対して、情報処理装置１００から外部デバイス２００に再度、アクセス要求があった場合でも、切断前の外部デバイス２００の状態に遷移させて（戻して）外部デバイス２００にアクセス（制御）を行うことができる。
【００９８】
[第５の実施形態]
続いて、本発明の第５の実施形態によるデバイス制御システムの一例について説明する。第５の実施形態では、外部デバイス２００（例：外部デバイスＡ２００Ａ）が物理的に抜かれて別の外部デバイス２００（例：外部デバイスＢ２００Ｂ）が物理的に挿し込まれても、アプリケーション１０１からの再アクセスによって外部デバイス２００（例：外部デバイスＡ２００Ａ）へのアクセス処理を再開した後、別の外部デバイス２００（例：外部デバイスＢ２００Ｂ）が接続されていることを検知することができる点に説明する。
【００９９】
＜第５の実施形態のシステム構成＞
第５の実施形態のおけるデバイス制御システムは、図１で示したデバイス制御システムと同様であるため、同じ参照番号を付して説明を省略する。
【０１００】
＜第５の実施形態における情報処理装置１００の切断処理に関する制御＞
図１０は、第５の実施形態における情報処理装置１００の外部デバイス２００への切断処理（給電オフ）に関する制御の一例を示すフローチャートである。
【０１０１】
情報処理装置１００のデバイスアクセス制御部１０３は、外部デバイス２００に対するアクセス状況を監視する（ステップＳ７０１）。
【０１０２】
情報処理装置１００のデバイスアクセス制御部１０３は、一定時間アクセスがない外部デバイス２００があるか判断する（ステップＳ７０２）。
【０１０３】
情報処理装置１００は、一定時間内に外部デバイス２００にアクセスがないと判断した場合（ステップＳ７０２でＮｏ）、再び、ステップＳ７０１へ戻る。
【０１０４】
デバイス情報管理部１１０は、外部デバイス２００に対するアクセスが一定時間ないと判断した場合（ステップＳ７０２でＹｅｓ）、該当の外部デバイス２００が接続されたポート番号（以下、接続ポート番号）および外部デバイス２００の識別情報を取得する（ステップＳ７０３）。
【０１０５】
デバイス情報管理部１１０は、ステップＳ７０３で取得した外部デバイス２００の接続ポート番号および外部デバイス２００の識別情報をデバイス管理情報１１１に保持・記憶させる（ステップＳ７０４）。
【０１０６】
デバイスアクセス制御部１０３は、アプリケーション１０１に外部デバイス２００の切断通知は行わず、給電制御部１０４は、該当の外部デバイス２００に対する給電をオフにする（ステップＳ７０５）。その後、ステップＳ７０１に戻る。
【０１０７】
＜第５の実施形態における情報処理装置１００の切断処理に関する制御＞
図１１は、第５の実施形態における情報処理装置１００における外部デバイス２００への接続処理の制御の一例を示すフローチャートである。
【０１０８】
情報処理装置１００のデバイスアクセス制御部１０３は、アプリケーション１０１から外部デバイス２００へのアクセス通知を検知したか判断する（ステップＳ８０１）。
【０１０９】
デバイスアクセス制御部１０３は、アプリケーション１０１から外部デバイス２００へのアクセス通知を検知しない場合、ステップＳ８０１に戻る（ステップＳ８０１でＮｏ）。
【０１１０】
デバイスアクセス制御部１０３は、アプリケーション１０１から外部デバイス２００へのアクセス通知を検知した場合（ステップＳ８０１でＹｅｓ）、情報処理装置１００の給電制御部１０４は、該当の外部デバイス２００への給電状態がオフであるかデバイス管理情報１１１に基づき判断する（ステップＳ８０２）。
【０１１１】
ステップＳ８０２において、給電制御部１０４は、該当の外部デバイス２００への給電がオフである場合（ステップＳ８０２でＹｅｓ）、該当の外部デバイス２００への給電をオンにする（ステップＳ８０３）。
【０１１２】
ステップＳ８０３において、給電制御部１０４によって該当の外部デバイス２００への給電を開始した場合、デバイスアクセス制御部１０３は、外部デバイス２００に対して初期化処理を要求する（ステップＳ８０４）。このとき、外部デバイス２００は、情報処理装置１００からの初期化処理要求に対して初期化処理を行う。
【０１１３】
デバイスアクセス制御部１０３は、外部デバイス２００の初期化処理が正常に終了したか判断する（ステップＳ８０５）。
【０１１４】
ステップＳ８０５において、デバイスアクセス制御部１０３は外部デバイス２００の初期化処理が正常に終了した場合（ステップＳ８０５でＹｅｓ）、ステップＳ８０６に進み、外部デバイス２００の初期化処理が正常に終了しなかった場合（ステップＳ８０５でＮｏ）、ステップＳ８０９に進む。
【０１１５】
デバイス情報管理部１１０は、該当の外部デバイス２００が接続されたポート番号（以下、接続ポート番号）および外部デバイスの識別情報を取得する（ステップＳ８０６）。
【０１１６】
なお、外部デバイスの識別情報は、外部デバイス２００を識別するための情報であり、メーカーを識別するために機器を製造したメーカー毎に割り当てられたベンダーＩＤ（ＶＩＤ）、機種を識別するために機種毎に割り当てられた製品ＩＤ（ＰＩＤ）、機器の個体を識別するために機器毎に割り当てられたシリアル番号などである。
【０１１７】
デバイス情報管理部１１０は、ステップＳ８０４で取得した外部デバイス２００の接続ポート番号および外部デバイス２００の識別情報の両方（組合せ）がデバイス管理情報１１１に存在するか（既に管理されているか）判断する（ステップＳ８０７）。なお、ステップＳ８０６の処理およびステップＳ８０７の処理によって、情報処理装置１００に接続された外部デバイス２００が挿抜されたか（異なる外部デバイス２００が接続されたか）を判断する
【０１１８】
デバイス情報管理部１１０は、取得した外部デバイス２００の接続ポート番号および外部デバイス２００の識別情報の両方（組合せ）がデバイス管理情報１１１に存在すると判断した場合（ステップＳ８０７でＹｅｓ）、アプリケーション１０１は、外部デバイス２００へのアクセス（制御）を行う（ステップＳ８０８）。その後、本制御フローを終了する。
【０１１９】
一方、デバイス情報管理部１１０は、取得した外部デバイス２００の接続ポート番号および外部デバイス２００の識別情報の組がデバイス管理情報１１１に存在しないと判断した場合（ステップＳ８０７でＮｏ）、デバイスアクセス制御部１０３は、アプリケーション１０１へ外部デバイス２００の切断通知を行う（ステップＳ８０９）。その後、本制御を終了する。
【０１２０】
また、ステップＳ８０２において、情報処理装置１００の給電制御部１０４は、該当の外部デバイス２００への給電がオフ状態でない（オン状態である）場合（ステップＳ８０２でＮｏ）、アプリケーション１０１は、外部デバイス２００へのアクセス（制御）を行う（ステップＳ８０８）。その後、本制御フローを終了する。
【０１２１】
上述のように、本発明の第５の実施形態によれば、給電制御部１０４によって該当の外部デバイス２００への給電をオフにした後に、該当の外部デバイス２００が物理的に抜かれ、さらに、別の外部デバイス２００が物理的に挿し込まれた場合でも、デバイスアクセス制御部１０３は、アプリケーション１０１からの再アクセスにより外部デバイス２００へのアクセス処理を再開後、別の外部デバイスが接続されていることを検知することができる。
【０１２２】
以上、本発明について上記の各実施形態に基づいて説明したが、本発明は、これらの実施形態に限定されるものではなく、この発明の要旨を逸脱しない範囲の様々な形態も本発明に含まれる。
【０１２３】
例えば、上記の実施形態の機能の制御方法として、この制御方法をデバイス制御装置に実行させるようにすればよい。また、上述の実施形態の機能を有するプログラムを制御プログラムとして、当該制御プログラムをデバイス制御装置が備えるコンピュータに実行させるようにしてもよい。なお、制御プログラムは、例えば、コンピュータに読み取り可能な記録媒体に記録される。
【０１２４】
また、本発明は、以下の処理を実行することによっても実現される。つまり、上述した実施形態の機能を実現するソフトウェア（プログラムコード）を、ネットワークまたは各種の記録媒体を介してシステム或いは装置に供給し、そのシステム或いは装置のコンピュータ（またはＣＰＵやＭＰＵ等）がプログラムコードを読み出して実行する処理である。
【０１２５】
この場合、記憶媒体から読み出されたプログラムコード自体が前述した実施形態の機能を実現することになり、そのプログラムコードを記憶したコンピュータで読み取り可能な記憶媒体は本発明を構成することになる。
【０１２６】
また、プログラムコードの指示に基づき、コンピュータ上で稼働しているＯＳ等が実際の処理の一部または全部を行い、その処理によって前述した実施形態の機能が実現されるように構成してもよい。
【０１２７】
さらに、記憶媒体から読み出されたプログラムコードが、コンピュータに挿入された機能拡張ボードやコンピュータに接続された機能拡張ユニットに備わるメモリに書き込まれたあと、このプログラムコードの指示に基づき、その機能拡張ボードや機能拡張ユニットに備わるＣＰＵ等が実際の処理の一部または全部を実行し、その処理に応じて上述した実施形態が実現される場合も含んでいる。
【０１２８】
なお、プログラムコードを供給するため、例えば、フロッピー（登録商標）ディスク、ハードディスク、光磁気ディスク、ＣＤやＤＶＤに代表される光ディスク、磁気テープ、不揮発性のメモリカード、ＲＯＭ等の記憶媒体を用いることができる。または、プログラムコードは、ネットワークを介してダウンロードしてもよい。
【符号の説明】
【０１２９】
１００：情報処理装置
１０１：アプリケーション
１０２：デバイスドライバ
１０３：デバイスアクセス制御部
１０４：給電制御部
１１０：デバイス情報管理部
１２０：記憶部
２００：外部デバイス
２０１：個体識別情報
２０２：通信Ｉ／Ｆ
【図１】
2018036804.tif 000003
【図２】
2018036804.tif 000004
【図３】
2018036804.tif 000005
【図４】
2018036804.tif 000006
【図５】
2018036804.tif 000007
【図６】
2018036804.tif 000008
【図７】
2018036804.tif 000009
【図８】
2018036804.tif 000010
【図９】
2018036804.tif 000011
【図１０】
2018036804.tif 000012
【図１１】
2018036804.tif 000013