(57)【要約】      （修正有）【課題】ＵＳＢデバイス等のデバイスとの通信が不通になった場合でも、ホストコンピュータの他の機能は動作させた状態で、デバイスの通信不通状態を復旧させる。【解決手段】ホストコンピュータ１のＣＰＵ２０１は、ユーザからＵＳＢホストインタフェース２０８に接続されるデバイス２に対するリセット指示の入力を受け付け、リセット指示の入力に応じて、ＧＰＩＯ２１４に設けられたＶＢＵＳのＯＦＦ／ＯＮをコントロールするレジスタビットをＯＦＦ／ＯＮすることでＡＮＤ回路４０１に入力されているＧＰＩＯからの信号レベルをＬｏｗ／Ｈｉｇｈ制御し、ＵＳＢホストインタフェースを介したデバイスに対する電力供給を一定時間遮断した後に再供給するリセット処理を実行する。【選択図】図４
2016062529.tif 000002
【特許請求の範囲】
【請求項１】
接続されるデバイスに対して電力供給可能な通信インタフェースを有する情報処理装置であって、
前記通信インタフェースを介したデバイスに対する電力供給を遮断可能な遮断手段と、
ユーザから前記通信インタフェースに接続されるデバイスに対するリセット指示の入力を受け付ける指示手段と、
前記リセット指示の入力に応じて、前記遮断手段を制御し、前記通信インタフェースを介した前記デバイスに対する電力供給を一定時間遮断した後に再供給するリセット処理を実行する制御手段と、
を有することを特徴とする情報処理装置。
【請求項２】
前記通信インタフェースは、ＵＳＢインタフェースであることを特徴とする請求項１に記載の情報処理装置。
【請求項３】
前記遮断手段は、前記通信インタフェースの電力線上に設けられることを特徴とする請求項１又は２に記載の情報処理装置。
【請求項４】
前記制御手段は、前記通信インタフェースに接続されているデバイスが特定の種類のデバイスである場合には、前記リセット処理を行わないことを特徴とする請求項１乃至３のいずれか１項に記載の情報処理装置。
【請求項５】
前記特定の種類は、記憶装置に分類される種類であることを特徴とする請求項４に記載の情報処理装置。
【請求項６】
前記制御手段は、前記通信インタフェースに接続されているデバイスが記憶装置である場合には、前記デバイスへの書き込み処理中の場合、該書き込み処理の終了を待って前記リセット処理を行うことを特徴とする請求項１乃至３のいずれか１項に記載の情報処理装置。
【請求項７】
前記制御手段は、前記デバイスから通知される情報に基づいて該デバイスの種類を判定することを特徴とする請求項４乃至６のいずれか１項に記載の情報処理装置。
【請求項８】
前記通信インタフェースを複数備え、
前記通信インタフェースごとに前記遮断手段を設け、
前記指示手段は、前記リセット指示で対象とするデバイスの指定も受け付けるものであり、
前記制御手段は、前記リセット指示とともに指定されたデバイスが接続されている通信インタフェースに対して前記リセット処理を行うことを特徴とする請求項１乃至７のいずれか１項に記載の情報処理装置。
【請求項９】
前記指示手段は、前記各通信インタフェースに接続されているデバイスから通知される情報に基づいて、各通信インタフェースに接続されているデバイスのプロダクト情報を表示し、前記リセット指示で対象とするデバイスの指定を受け付けることを特徴とする請求項８に記載の情報処理装置。
【請求項１０】
接続されるデバイスに対して電力供給可能な通信インタフェースと、前記通信インタフェースを介したデバイスに対する電力供給を遮断可能な遮断手段とを有する情報処理装置の制御方法であって、
ユーザから前記通信インタフェースに接続されるデバイスに対するリセット指示の入力を受け付ける指示ステップと、
前記リセット指示の入力に応じて、前記遮断手段を制御し、前記通信インタフェースを介した前記デバイスに対する電力供給を一定時間遮断した後に再供給するリセット処理を実行するステップと、
を有することを特徴とする情報処理装置の制御方法。
【請求項１１】
コンピュータを、請求項１乃至９のいずれか１項に記載された制御手段として機能させるためのプログラム。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、ＵＳＢ等のインタフェースを有する情報処理装置、情報処理装置の制御方法、及びプログラムに関するものである。
【背景技術】
【０００２】
ＵＳＢデバイスが、接続可能なパーソナルコンピュータや、プリンタ、スキャナ、複合機（以下ホストコンピュータとする）は、自身の持つＵＳＢホストコントローラを介して、ＵＳＢ Ｉ／Ｆより接続されたＵＳＢデバイスと通信を行う。ＵＳＢは、Ｕｎｉｖｅｒｓａｌ Ｓｅｒｉａｌ Ｂｕｓの略称である。
【０００３】
ホストコンピュータは、自身のＣＰＵで動作するプログラムとして、前述のＵＳＢホストコントローラを制御するドライバ部分、アプリケーション部分を持ち、これらのプログラムに基づいて動作する。さらに、ホストコンピュータは、自身のシステムを制御するオペレーションシステムを持ち各種処理を行う。
【０００４】
一方、ＵＳＢデバイスは、ＵＳＢデバイスコントローラを有する。ＵＳＢデバイスは、ＵＳＢデバイス上に存在するＣＰＵで動作するプログラムとして、ＵＳＢデバイスコントローラを制御するドライバ部分、アプリケーション部分を持ち、これらのプログラムに基づいて動作する。なお、ＵＳＢデバイスは、システムの規模に応じでオペレーションシステムを持つもの、持たないものがある。
【０００５】
前述のように、ホストコンピュータとＵＳＢデバイスはそれぞれのＣＰＵを有し、個々のプログラムで動作する。しかし、ＵＳＢ Ｉ／Ｆの通信上は、ホストコンピュータがマスタとなり、ＵＳＢデバイスがスレーブの関係で動作し、通信の主導権はホストコンピュータが握っている。
【０００６】
ＵＳＢ２．０Ｉ／Ｆでは、４本の信号線でホストコンピュータとＵＳＢデバイスが接続される。１本はグランド（ＧＮＤ）、１本はＵＳＢデバイスにホストコンピュータから提供される電力５ｖのＶＢＵＳと呼ばれる信号線、残り２本はデータが流れるＤ＋、Ｄ−の計４本の信号線で接続されている。
【０００７】
ＵＳＢデバイスは、ホストコンピュータから供給されるＶＢＵＳの５Ｖがなくなると、自身のシステムを停止させる。また、ＵＳＢ Ｉ／Ｆのバスリセット方法としてＤ＋，Ｄ−を一定時間固定に保持することによりＵＳＢバスリセットを可能にし、ＵＳＢバスリセットを検知したＵＳＢホストコントローラは、ＵＳＢバスの初期化をやり直すことが可能である。
ホストコンピュータは、ＶＢＵＳの５ＶをＯＦＦ／ＯＮをコントロールすることにより、ＵＳＢデバイスのシステム停止、システム再起動をコントロールすることが可能である。
【０００８】
なお、ＵＳＢデバイスは、機能や動作の振る舞いにより様々なクラスにカテゴライズされ、クラスによって、ＵＳＢ Ｉ／Ｆ上の通信形態も異なる。例えば、ＵＳＢメモリに代表されるＵＳＢストレージクラスは、ホストコンピュータからのＲｅａｄ要求に対して必ず返答を行う。一方、ＵＳＢキーボードに代表されるヒューマン・インタフェース・デバイス（以下ＨＩＤとする）は、キーボードを押下された場合のみ、ホストコンピュータからのＲｅａｄに対してデータを送出する。
【０００９】
ＵＳＢデバイスは、ＵＳＢデバイスのシステム動作の不具合が原因で機能停止する場合がある。その解決策として、特許文献１、特許文献２が提案されている。
特許文献１は、ホストコンピュータ側に存在する通信監視プログラムが、ＵＳＢデバイスの機能停止を検知し、ＶＢＵＳを一定時間ＯＦＦし、その後ＶＢＵＳをＯＮすることで、ＵＳＢデバイスを再起動させ、機能停止を回復させる技術である。
【００１０】
また、特許文献２では、ＵＳＢデバイス側にハード的なスイッチを設け、ユーザが該スイッチを押下等することで、Ｄ＋，Ｄ−信号を一定時間保持し、ＵＳＢのバスリセットを実現し、ホストコントローラとＵＳＢデバイスの通信停止を回復させる。
また、特許文献１、２以外にも、ホストコンピュータのシステム再起動や、ＵＳＢデバイスとの接続Ｉ／Ｆ部分の挿抜アクションにより、ＶＢＵＳのＯＦＦ／ＯＮを実現して、ＵＳＢデバイスを回復させる方法がある。
【先行技術文献】
【特許文献】
【００１１】
【特許文献１】特開２００６−３０９４０４号公報
【特許文献２】特開２００１−２２８９４４号公報
【発明の概要】
【発明が解決しようとする課題】
【００１２】
しかし、特許文献１の技術では、ＨＩＤクラス等のＵＳＢデバイスの場合では、監視プログラムからのテスト通信に応答できず、監視プログラムが、ＵＳＢデバイスの機能停止状況を的確に判断することができない。このため、ＵＳＢデバイスに対するリセットを正確にかけることが困難であるという課題があった。
また、特許文献２の技術では、ＵＳＢデバイスが、ホストコンピュータの機器のモール内部に装着されている場合、ユーザがハード的なスイッチを押すことができないという課題があった。
【００１３】
また、ＵＳＢデバイスとの接続Ｉ／Ｆ部分が、前述同様ホストコンピュータの機器のモール内部にある場合、ユーザが接続Ｉ／Ｆの挿抜アクションを行うことができないという課題があった。さらに、ＵＳＢデバイスとの通信不具合を回復させるためにホストコンピュータを再起動させることは、ホストコンピュータのその他の機能を一時的にも停止させてしまうという課題があった。
【００１４】
本発明は、上記の問題点を解決するためになされたものである。本発明の目的は、ＵＳＢデバイス等のデバイスとの通信が不通になった場合でも、ホストコンピュータの他の機能は動作させた状態で、デバイスの通信不通状態を復旧させることができる仕組みを提供することである。
【課題を解決するための手段】
【００１５】
本発明は、接続されるデバイスに対して電力供給可能な通信インタフェースを有する情報処理装置であって、前記通信インタフェースを介したデバイスに対する電力供給を遮断可能な遮断手段と、ユーザから前記通信インタフェースに接続されるデバイスに対するリセット指示の入力を受け付ける指示手段と、前記リセット指示の入力に応じて、前記遮断手段を制御し、前記通信インタフェースを介した前記デバイスに対する電力供給を一定時間遮断した後に再供給するリセット処理を実行する制御手段と、を有することを特徴とする。
【発明の効果】
【００１６】
本発明によれば、デバイスとの通信が不通になった場合でも、情報処理装置の他の機能は動作させた状態で、デバイスの通信不通状態を復旧させることができる。
【図面の簡単な説明】
【００１７】
【図１】実施例１の情報処理装置とデバイスとの接続形態を例示する図
【図２】ホストコンピュータのハード構成図
【図３】ＵＳＢ２．０ Ｉ／Ｆの各信号線接続図
【図４】実施例１においてＶＢＵＳ信号のＯＦＦ／ＯＮを実現する回路構成図
【図５】実施例１のリセット処理を例示するフローチャート
【図６】実施例２の情報処理装置とデバイスとの接続形態を例示する図
【図７】実施例２においてＶＢＵＳ信号のＯＦＦ／ＯＮを実現する回路構成図
【図８】実施例２で使用されるＵＳＢデバイスのクラス管理テーブル
【図９】実施例２のリセット処理を例示するフローチャート
【図１０】実施例３で使用されるＵＳＢデバイスのクラス管理テーブル
【図１１】ＵＳＢデバイスのプロダクト情報の選択ボタンを例示する図
【図１２】実施例３のリセット処理を例示するフローチャート
【図１３】ホストコンピュータの入力部を例示する図
【発明を実施するための形態】
【００１８】
以下、本発明を実施するための形態について図面を用いて説明する。なお、以下の実施の形態は特許請求の範囲に係る発明を限定するものでなく、また実施の形態で説明されている特徴の組み合わせの全てが発明の解決手段に必須のものとは限らない。
【実施例１】
【００１９】
図１は、本発明の実施例１における情報処理装置とデバイスとの接続形態を例示する図である。
図１において、１はホストコンピュータで、本発明の情報処理装置に対応する。ホストコンピュータ１としては、パーソナルコンピュータ、プリンタ、スキャナ、ＭＦＰ等の複合機などが適用可能である。ＭＦＰは、Multifunction Peripheralの略称である。ホストコンピュータ１は、ＵＳＢホストコントローラ２０７（図２）を有する。２はＵＳＢデバイスで、ＵＳＢデバイスコントローラ３０６（図３）を有する。ＵＳＢデバイス２は、ＵＳＢケーブル３を介して、ホストコンピュータ１と接続されている。ＵＳＢは、Ｕｎｉｖｅｒｓａｌ Ｓｅｒｉａｌ Ｂｕｓの略称である。ＵＳＢデバイス２は、どのような種類のデバイスであってもよい。
【００２０】
図１では、ホストコンピュータ１とＵＳＢデバイス２が１対１で接続されている例を示している。しかし、本発明は、ホストコンピュータ１とＵＳＢデバイス２との１対１の接続に限定したものではなく、ＵＳＢの規格上接続可能な１対１２７までの接続が可能である。
【００２１】
図２は、ホストコンピュータ１のハードウェア構成を例示する図である。以下、本図を用いて、ホストコンピュータ１の構成を説明する。
図２において、２０１は中央処理演算装置（以下ＣＰＵ）である。ＣＰＵ２０１は、ホストコンピュータ１を稼働させるためのソフトウェアを実行する。２０２はシステムバスで、ＣＰＵ２０１が他のユニットにアクセスするため、及び、他のユニットどうしがアクセスするための通路となる。
【００２２】
２０３はハードディスクユニット（以下ＨＤＤ）である。ＨＤＤ２０３には、ホストコンピュータ１のソフトウェア及び、ホストコンピュータ１が動作するために必要なデータベース、また一次保存ファイル等が格納される。図２では、ＨＤＤとの記載をしているが、Ｓｏｌｉｄ Ｓｔａｔｅ Ｄｒｉｖｅ（以下ＳＳＤ）や、ＵＳＢメモリ等の他の大容量不揮発メモリでも構わない。
【００２３】
２０４はＲａｎｄｏｍ Ａｃｃｅｓｓ Ｍｅｍｏｒｙ（以下ＲＡＭ）である。ＲＡＭ２０４は、ホストコンピュータ１のプログラムが展開される領域や、プログラム動作時の変数や、各ユニットからＤｙｎａｍｉｃ Ｍｅｍｏｒｙ Ａｃｃｅｓｓ（以下ＤＭＡ）で転送されるデータの格納領域として使用される。
【００２４】
２０６はネットワーク・コントローラＩ／Ｆで、ホストコンピュータ１とネットワーク上の他の機器と通信を行うネットワーク・コントローラ・インタフェースである。２０５はネットワーク・コントローラで、ネットワーク・コントローラＩ／Ｆ２０６を制御する。
【００２５】
２０８はＵＳＢホストＩ／Ｆで、ホストコンピュータ１とＵＳＢデバイス２との通信を行うためのインタフェースである。このＵＳＢホストＩ／Ｆ２０８は、ＵＳＢケーブル３を介して、ＵＳＢデバイス２と接続される。
【００２６】
２１０はディスプレイで、ホストコンピュータ１の動作状況をユーザ等が確認できるように表示する。２０９はディスプレイコントローラで、ディスプレイ２１０の表示制御を行う。２１１は入力部で、ホストコンピュータ１へのユーザからの指示を受け付ける。２１５は入力部コントローラで、入力部２１１を制御する。入力部２１１は具体的にはキーボードやマウスや、１０キー、カーソルキー、タッチパネルや、操作部キーボードといった入力システムである。入力部２１１がタッチパネルである場合は、物理的にはディスプレイ２１０の表面に装着された形態になる。
【００２７】
２１２はリアルタイムクロック（以下ＲＴＣ）で、ホストコンピュータ１の時計機能、アラーム機能、タイマー機能等を提供する。２１３は不揮発メモリで、書き換え可能な不揮発な記録メディアである。なお、不揮発メモリは、例えば、Ｓｔａｔｉｃ Ｒａｎｄｏｍ Ａｃｃｅｓｓ Ｍｅｍｏｒｙ（以下ＳＲＡＭ）であってもよい。また、不揮発メモリは、Ｅｌｅｃｔｒｉｃａｌｌｙ Ｅｒａｓａｂｌｅ Ｐｒｏｇｒａｍｍａｂｌｅ Ｒｅａｄ Ｏｎｌｙ Ｍｅｍｏｒｙ（以下ＥＥＰＲＯＭ）等であってもよい。
【００２８】
２１４はＧｅｎｅｒａｌ Ｐｕｒｐｏｓｅ Ｉｎｐｕｔ Ｏｕｔｐｕｔ（以下ＧＰＩＯ）である。ＧＰＩＯ２１４は、ＣＰＵ２０１が基盤回路上の信号線のＬｏｗ／Ｈｉｇｈ状況を読み取る、または、信号線のＬｏｗ／Ｈｉｇｈ状況の設定を変更可能にするユニットである。
【００２９】
図３は、ＵＳＢ２．０Ｉ／Ｆ信号線を説明する図である。なお、他の図面と同一のものには同一の符号を付してある。
図３に示すように、ＵＳＢデバイス２上には、ＵＳＢデバイスコントローラ３０６が存在し、ＵＳＢホストコントローラ２０７と通信するためのＵＳＢデバイスＩ／Ｆ３０１が存在する。
【００３０】
ホストコンピュータ１とＵＳＢデバイス２とが通信するために、ホストコンピュータ１のＵＳＢホストＩ／Ｆ２０８と、ＵＳＢデバイス２のＵＳＢデバイスＩ／Ｆ３０１との間が４本の信号線３０２〜３０５で接続がされている。なお、信号線３０２〜３０５は、ＵＳＢケーブル３に内包されている。
【００３１】
ＶＢＵＳ３０２は、ホストコンピュータ１側からＵＳＢデバイス２側に５Ｖの電力を供給するための電力線である。Ｄ＋（３０３）とＤ−（３０４）は、ホストコンピュータ１とＵＳＢデバイス２との間を通信する実データを差動信号によって通信させる信号線である。ＧＮＤ３０５は、他の信号線のＬｏｗ／Ｈｉｇｈの基準を決める電気回路には必須であるグランド信号線である。
【００３２】
図４は、ＣＰＵ２０１の指示によりＶＢＵＳ３０２のＯＦＦ／ＯＮを制御可能する構成を示す図である。なお、他の図面と同一のものには同一の符号を付してある。
図４において、４０１はＡＮＤ回路である。ＡＮＤ回路４０１が、ＣＰＵ２０１の指示で制御されるＧＰＩＯ２１４からの出力値と、ＵＳＢホストＩ／Ｆ２０８から出力されるＶＢＵＳの出力値の論理積（ＡＮＤ）を取り、ＶＢＵＳ３０２に出力する。この構成により、ＣＰＵ２０１は、ＵＳＢデバイス２に与えるＶＢＵＳ３０２のＯＦＦ／ＯＮを制御する。即ち、ＡＮＤ回路４０１は、ＣＰＵ２０１の制御によりＧＰＩＯ２１４から出力される信号に基づいて、ＵＳＢインタフェースを介したＵＳＢデバイスへの電力供給を遮断可能である。
【００３３】
４０２はＵＳＢレセクタプルで、ＵＳＢケーブル３の先端に設けられたＵＳＢプラグ（不図示）を接続する部分（差し込み口）である。ＡＮＤ回路４０１は、ＵＳＢホストＩ／Ｆ２０８とＵＳＢレセクタプル４０２の間のＶＢＵＳ上（即ち、ＵＳＢインタフェースの電力線上）に設けられる。
【００３４】
図４では、ＡＮＤ回路を用いて簡易的にＶＢＵＳのＯＦＦ／ＯＮを制御するように表記しているが、ハイサイドスイッチとＯＲ回路を用いてＶＢＵＳのＯＦＦ／ＯＮを制御することも可能である。また、ＶＢＵＳのＯＦＦ／ＯＮを切り替え可能な構成であれば、他の構成であっても、本発明に適用可能である。
【００３５】
以下、図５のフローチャートを用いて実施例１のリセット処理について説明する。
図５は、実施例１のホストコンピュータ１がＶＢＵＳ３０２を一定時間ＯＦＦにして、その後ＶＢＵＳ３０２をＯＮすることによりＵＳＢデバイス２のシステム再起動を促す処理（リセット処理）を例示するフローチャートである。このフローチャートの各ステップの処理は、ホストコンピュータ１のＣＰＵ２０１がＨＤＤ２０３等に格納されるプログラムを読み出して実行することにより実現されるものである。
【００３６】
なお、従来技術で説明したように、ＵＳＢデバイス２の種類に依存して、ホストコンピュータ１は、ＵＳＢデバイス２が通信不通状態になっていることを判断できない。そのため、ＵＳＢデバイス２を利用しようとしたユーザは、ＵＳＢデバイス２の反応結果がホストコンピュータ１へ通知されてないと判断する。そして、ユーザが入力部２１１よりホストコンピュータ１へＵＳＢデバイス２が通信不通状態になっていると判断し、リセット指示を行う。
【００３７】
ステップＳ５０１において、ＣＰＵ２０１は、入力部２１１の入力状況を、入力部コントローラ２１５経由で取得し、ユーザからのリセット指示の入力を監視し、該リセット指示が入力されたか否かを判定する。なお、上記リセット指示としては、例えば、ＣＰＵ２０１の制御によりディスプレイ２１０上に"ＵＳＢリセット"ボタンを表示し、ユーザがこの"ＵＳＢリセット"ボタンを入力部２１１経由で押下することで行われるようなものがある。また、リセット指示は、入力部２１１の所定のハードキーを所定の方法で操作することにより行われるものでもよい。例えば、入力部２１１が後述する図１３に示すような構成の場合、例えば"＃"キー１３０１を長押しする（又は複数のキーを所定の組み合わせで同時に押下する等）のような特殊操作することで、上記リセット指示が行われるものでもよい。
【００３８】
そして、ユーザからのリセット指示の入力を検出していないと判定した場合（Ｓ５０１でＮｏの場合）、ＣＰＵ２０１は、Ｓ５０１でリセット指示入力の監視を継続する。
一方、ユーザからのリセット指示の入力を検出したと判定した場合（Ｓ５０１でＹｅｓの場合）、ＣＰＵ２０１は、Ｓ５０２に処理を進める。
【００３９】
ステップＳ５０２では、ＣＰＵ２０１は、ＧＰＩＯ２１４に設けられたＶＢＵＳ３０２のＯＦＦ／ＯＮをコントロールするレジスタビットを「ＯＦＦ」にするように設定する。Ｓ５０２の処理により、図４に示すＡＮＤ回路４０１に入力されているＧＰＩＯ２１４からの信号レベルが「Ｌｏｗ」になる。これにより、ＵＳＢホストＩ／Ｆ２０８からのＶＢＵＳ出力が「Ｈｉｇｈ」であった場合でも、ＵＳＢデバイス２に入力されるＶＢＵＳ３０２が「Ｌｏｗ」になる。
【００４０】
次に、ステップＳ５０３において、ＣＰＵ２０１は、上記Ｓ５０２の処理の後、一定時間（例えば５秒間）Ｗａｉｔし、該一定時間経過後（Ｓ５０３でＹｅｓ）、Ｓ５０４に処理を進める。このＳ５０３の処理により、一定時間、ＶＢＵＳ３０２が「Ｌｏｗ」に保持される。
【００４１】
ステップＳ５０４では、ＣＰＵ２０１は、ＧＰＩＯ２１４のＶＢＵＳ３０２のＯＦＦ／ＯＮをコントロールするレジスタビットを「ＯＮ」する設定にする。このＳ５０４の処理により、図４に示したＡＮＤ回路４０１に入力されているＧＰＩＯ２１４からの信号レベルが「Ｈｉｇｈ」になる。これにより、ＵＢＳホストＩ／Ｆ２０８からのＶＢＵＳ出力が「Ｈｉｇｈ」であった場合、ＵＳＢデバイス２に入力されるＶＢＵＳ３０２が、「Ｈｉｇｈ」になる。
【００４２】
以上示したような上記Ｓ５０１〜Ｓ５０４の処理を行うことにより、ＵＳＢデバイス２は、ＶＢＵＳ３０２が一定時間供給されないことで、再起動を促され、通信不通状態が回復する。従って、本実施例に示したような、ホストコンピュータ１に接続されるＵＳＢデバイス２に対するリセット処理を実行することができる。これにより、ＵＳＢデバイス２との通信が不通になった場合でも、ホストコンピュータ１の他の機能は動作させた状態で、ＵＳＢデバイス２の通信不通状態を復旧させることができる。
【００４３】
なお、実施例１では、ＵＳＢインタフェースを介して、ホストコンピュータとデバイスが接続される構成について説明した。しかし、ホストコンピュータとデバイスとを接続する通信インタフェースは、ＵＳＢインタフェースに限定されるものではない。接続されるデバイスに対して電力供給可能な通信インタフェースであれば、他の通信インタフェースであっても、実施例１を適用可能である。
【実施例２】
【００４４】
実施例１では、ホストコンピュータとＵＳＢデバイスとが１対１で接続された場合にホストコンピュータ側からＵＳＢデバイスをリセットする構成について説明した。実施例１でも記述したように、ＵＳＢデバイスは、ホストコンピュータに対して最大１２７個まで仕様上は接続可能となっている。実施例２では、ホストコンピュータがＵＳＢインタフェースを複数備え、ホストコンピュータとＵＳＢデバイスとが１対多で接続された場合にＵＳＢデバイスをリセットする構成について説明する。
【００４５】
図６は、本発明の実施例２における情報処理装置とＵＳＢデバイスとの接続形態を例示する図である。図６に示す例では、ホストコンピュータ１に対して、複数の（図６の例では２つの）ＵＳＢデバイスが接続されている例を示すが、１２７個までであれば幾つ接続されていてもよい。また、図６に示す例では、ホストコンピュータ１に、ＵＳＢストレージクラスであるＵＳＢデバイス６が接続された例を示している。ＵＳＢデバイス６は、ＵＳＢケーブル７を介して、ホストコンピュータ１と接続されている。
【００４６】
ここで、ＵＳＢストレージ機能を持つＵＳＢデバイス６をホストコンピュータ１に接続した場合の課題について説明する。
ホストコンピュータ１からＵＳＢデバイス６への書き込み処理が完了する前に、ＵＳＢデバイス６が接続されたＵＳＢホストＩ／ＦのＶＢＵＳを一定時間停止すると、書き込み中のファイルが破損してしまう事態が発生する可能性がある。
【００４７】
なお、ユーザは、リセット処理がどのＵＳＢホストＩ／Ｆに接続されたＵＳＢデバイスに対して有効になるかの判断が難しく、間違った操作を行って、ＵＳＢストレージクラスのＵＳＢデバイス６に対してリセット指示を行ってしまう可能性もある。
【００４８】
また、ユーザが行うリセット指示が、特定のＵＳＢホストＩ／Ｆに対して有効になると確定していたとしても、ＵＳＢデバイスを装着する際にＵＳＢホストＩ／Ｆへの接続に人為的な誤りがある場合がある。このような場合には、結局、正しく所望のＵＳＢデバイスに対してリセット処理を行うことができない。
本実施例２では、これらの課題を解決する構成について説明する。
【００４９】
図７は、図６で示したホストコンピュータ１にＵＳＢデバイス２とＵＳＢデバイス６のように複数のＵＳＢデバイスが接続された場合でも、ＵＳＢホストＩ／ＦごとにＶＢＵＳのＯＦＦ／ＯＮ制御を可能にする構成を説明する図である。なお、図４と同一のものには同一の符号を付してある。
【００５０】
ＵＳＢホストＩ／Ｆ（Ｎ）７０１は、ホストコンピュータ１内部にあるＵＳＢホストコントローラ２０７に接続されるインタフェースである。ＵＳＢホストＩ／Ｆ（Ｎ）７０１に繋がるＵＳＢデバイス６には、内部にＵＳＢデバイス２と同様に、それぞれＵＳＢデバイスＩ／Ｆ７０２とＵＳＢデバイスコントローラ７０３が存在する。ＵＳＢホストＩ／Ｆ（Ｎ）７０１とＵＳＢデバイス６の間には、それぞれＶＢＵＳ７０５、Ｄ＋（７０６）、Ｄ−（７０７）、ＧＮＤ７０８の各信号線が繋がっている。なお、信号線７０５〜７０８は、ＵＳＢケーブル７に内包されている。
【００５１】
ＧＰＩＯ２１４は、少なくとも、ＶＢＵＳ３０２のＯＦＦ／ＯＮをコントロールする不図示のレジスタビット（１）と、ＶＢＵＳ７０５のＯＦＦ／ＯＮをコントロールする不図示のレジスタビット（Ｎ）を有する。レジスタビット（１）の値はＡＮＤ回路４０１に出力され、レジスタビット（Ｎ）の値はＡＮＤ回路７０４に出力される。
【００５２】
ＡＮＤ回路Ｎ７０４は、ＣＰＵ２０１の指示で制御されるＧＰＩＯ２１４からの出力値と、ＵＳＢホストＩ／Ｆ７０１から出力されるＶＢＵＳの出力値の論理積（ＡＮＤ）を取ることで、ＵＳＢデバイス６に与えるＶＢＵＳ７０５のＯＦＦ／ＯＮを制御する。
【００５３】
７１０はＵＳＢレセクタプルで、ＵＳＢケーブル７の先端に設けられたＵＳＢプラグ（不図示）を接続する部分（差し込み口）である。ＡＮＤ回路７０４は、ＵＳＢホストＩ／Ｆ７０１とＵＳＢレセクタプル７１０の間のＶＢＵＳ上（即ち、ＵＳＢインタフェースの電力線上）に設けられる。
【００５４】
なお、図７では、ＡＮＤ回路を用いて簡易的にＶＢＵＳのＯＦＦ／ＯＮを制御するように表記しているが、ハイサイドスイッチとＯＲ回路を用いてＶＢＵＳのＯＦＦ／ＯＮを制御することも可能である。また、ＶＢＵＳのＯＦＦ／ＯＮを切り替え可能な構成であれば、他の構成であっても、本発明に適用可能である。
【００５５】
図８は、ホストコンピュータ１上で動作するプログラムが管理する各ＵＳＢホストＩ／Ｆごとに、どのクラスのＵＳＢデバイスが接続されたか管理するテーブルを示す図である。この管理テーブルは、ＣＰＵ２０１によって作成され、ＲＡＭ２０４上に格納される。例えば、図７で示したように、ホストコンピュータ１がＮ個のＵＳＢホストＩ／Ｆを備える場合、図８に示すようにＮ行の配列（管理テーブル）を用意する必要がある。
【００５６】
図８において、８０１の列は、ＵＳＢホストＩ／Ｆの番号を保持する。８０２の列は、それぞれのＵＳＢホストＩ／Ｆに接続されたＵＳＢデバイスのクラス情報（デバイスの種類の分類情報）を格納する。例えば、ＵＳＢデバイス２が、ＨＩＤクラスを持つデバイスであれば、８０３に示すように、"ＵＳＢホストＩ／Ｆ（１）"に接続されたＵＳＢデバイス２は、"ＨＩＤクラス"とデータを保持する。なお、ＨＩＤは、ヒューマン・インタフェース・デバイスを意味し、例えば、キーボード、マウス、カードリーダ等が対応する。同様に、ＵＳＢデバイス６が、ストレージクラスを持つデバイスであれば、８０４に示すように、"ＵＳＢホストＩ／Ｆ（Ｎ）"に接続されたＵＳＢデバイス６は、"ストレージクラス"とデータを保持する。
【００５７】
なお、ＵＳＢデバイスは、ホストコンピュータに接続された際、ＵＳＢホストコントローラから送られるコマンドに応答して、デバイスのクラス情報を含むデバイスの情報を通知する。このやり取りをエニュミレーションと呼ぶ。ＣＰＵ２０１は、予めこのクラス情報とＵＳＢホストＩ／Ｆの対応結果を、図８のようなテーブルに格納し保持している。
【００５８】
以下、図９のフローチャートを用いて本実施例の制御フローを説明する。
図９は、実施例２のホストコンピュータ１がＶＢＵＳ３０２を一定時間ＯＦＦにして、その後ＶＢＵＳ３０２をＯＮすることによりＵＳＢデバイス２のシステム再起動を促す処理（リセット処理）を例示するフローチャートである。このフローチャートの各ステップの処理は、ホストコンピュータ１のＣＰＵ２０１がＨＤＤ２０３等に格納されるプログラムを読み出して実行することにより実現されるものである。
【００５９】
ステップＳ９０１において、ＣＰＵ２０１は、入力部２１１の入力状況を、入力部コントローラ２１５経由で取得し、ユーザからのリセット指示の入力を監視し、リセットが入力されたか否かを判定する。なお、リセット指示は、実施例１で示したものと同様である。
【００６０】
そして、ユーザからのリセット指示の入力を検出していないと判定した場合（Ｓ９０１でＮｏの場合）、ＣＰＵ２０１は、Ｓ９０１でリセット指示入力の監視を継続する。
一方、ユーザからのリセット指示の入力を検出したと判定した場合（Ｓ９０１でＹｅｓの場合）、ＣＰＵ２０１は、Ｓ９０２に処理を進める。
【００６１】
ステップＳ９０２では、ＣＰＵ２０１は、ＵＳＢホストＩ／Ｆ２０８先に接続されたＵＳＢデバイスのクラス種別が何であるかを確認し、ＵＳＢストレージクラスか否かを判定する。
【００６２】
そして、ＵＳＢホストＩ／Ｆ２０８先に接続されたＵＳＢデバイスのクラス種別が図８の８０４のようなＵＳＢストレージクラスであると判定した場合（Ｓ９０２でＹｅｓの場合）、ＣＰＵ２０１は、そのまま本フローチャートの処理を終了する。ＵＳＢストレージクラスである場合、上述のようにファイル破損の可能性があるため、ＶＢＵＳ３０２をＯＦＦしその後ＯＮする処理（リセット処理）を行うことなく処理を終了する。
【００６３】
一方、ＵＳＢホストＩ／Ｆ２０８先に接続されたＵＳＢデバイスのクラス種別がＵＳＢストレージクラスでないと判定した場合（Ｓ９０２でＮｏの場合）、ＣＰＵ２０１は、Ｓ９０３に処理を進める。例えば、図８の８０３のようなＨＩＤクラスであれば、Ｓ９０３に処理を進め、リセット処理を行う。
【００６４】
ステップＳ９０３では、ＣＰＵ２０１は、ＧＰＩＯ２１４に設けられたＶＢＵＳ３０２のＯＦＦ／ＯＮをコントロールするレジスタビットを「ＯＦＦ」にするように設定する。Ｓ９０３の処理により、図７に示したＡＮＤ回路４０１に入力されているＧＰＩＯ２１４からの信号レベルが「Ｌｏｗ」になる。これにより、ＵＳＢホストＩ／Ｆ２０８からのＶＢＵＳ出力が「Ｈｉｇｈ」であった場合でも、ＵＳＢデバイス２に入力されるＶＢＵＳ３０２が「Ｌｏｗ」になる。
【００６５】
次に、ステップＳ９０４において、ＣＰＵ２０１は、上記Ｓ９０３の処理の後、一定時間（例えば５秒間）Ｗａｉｔし、該一定時間経過後（Ｓ９０４でＹｅｓと判断した後）、Ｓ９０５に処理を進める。このＳ９０４の処理により、一定時間、ＶＢＵＳ３０２が「Ｌｏｗ」に保持される。
【００６６】
ステップＳ９０５では、ＣＰＵ２０１は、ＧＰＩＯ２１４のＶＢＵＳ３０２のＯＦＦ／ＯＮをコントロールするレジスタビットを「ＯＮ」する設定にする。このＳ９０５の処理により、図７に示したＡＮＤ回路４０１に入力されているＧＰＩＯ２１４からの信号レベルが「Ｈｉｇｈ」になる。これにより、ＵＢＳホストＩ／Ｆ２０８からのＶＢＵＳ出力が「Ｈｉｇｈ」であった場合、ＵＳＢデバイス２に入力されるＶＢＵＳ３０２が、「Ｈｉｇｈ」になる。
【００６７】
以上示したような上記Ｓ９０１〜Ｓ９０５の処理を行うことにより、ＵＳＢストレージクラスのデバイスが接続されているＵＳＢホストＩ／Ｆに対してはリセット処理が行われないため、実施例１の効果に加え、以下のような効果を有する。
例えば、ユーザが、指示するリセット処理がどのＵＳＢホストＩ／Ｆに接続されたＵＳＢデバイスに対して有効になるかの判断を誤ってしまっても、リセット処理により、デバイスに書き込み中のファイルが破損してしまう事態は発生しなくなる。また、単純に接続先のＵＳＢホストＩ／Ｆを間違ってしまったとしても、リセット処理により、接続中のデバイスに書き込み中のファイルが破損してしまう事態は発生しなくなる。
【００６８】
なお、図９に示した処理では、リセット指示の対象となるＵＳＢホストＩ／Ｆに接続されたデバイスがＵＳＢストレージクラスのデバイス（即ち、記憶装置に分類されるデバイス）である場合には、リセット処理を行わない構成を示した。しかし、リセット指示の対象となるＵＳＢホストＩ／Ｆに接続されたデバイスがＵＳＢストレージクラスのデバイスである場合には、該デバイスへの書き込み処理中か否かを判断する。そして、ホストコンピュータ１からデバイスに書き込み処理中の場合、該書き込み処理の終了を待ってリセット処理を行うようにするようにし、一方、書き込み処理中でない場合、そのままリセット処理を行うようにしてもよい。この構成により、ＵＳＢストレージクラスのデバイスであっても、安全に（書き込み中のファイルを破損させることなく）、リセット処理を行うことができる。
【実施例３】
【００６９】
実施例２では、ホストコンピュータ１とＵＳＢデバイス２，ＵＳＢデバイス６といった複数のＵＳＢデバイスが接続された場合に、特定のＵＳＢホストＩ／Ｆに接続されたＵＳＢデバイスのみのリセットを有効にするという形態であった。この形態では、上記特定のＵＳＢホストＩ／Ｆ以外の任意のＵＳＢホストＩ／Ｆに接続されたＵＳＢデバイスに対してリセット処理を行えない。実施例３では、この課題を解決する処理を説明する。なお、本実施例３のホストコンピュータ１のハードウェア構成は、図７に示す構成と同様とする。
【００７０】
図１０は、ホストコンピュータ１上で動作するプログラムが管理する各ＵＳＢホストＩ／Ｆごとに、どのクラスのＵＳＢデバイスが接続されたか管理するテーブルを示す図である。この管理テーブルは、ＣＰＵ２０１によって作成され、ＲＡＭ２０４上に格納される。例えば、図７で示した様にホストコンピュータ１がＮ個のＵＳＢホストＩ／Ｆを持っていた場合、図１０に示すようにＮ行の配列（管理テーブル）を用意する必要がある。
【００７１】
図１０において、１００１、１００２、１００４、１００５は、図８の８０１、８０２、８０３、８０４と同様であるので説明は省略する。
１００３の列は、それぞれのＵＳＢホストＩ／Ｆに接続されたＵＳＢデバイスのプロダクト情報を格納する。例えば、ＵＳＢデバイス２が、"カードリーダＡ"というプロダクト情報をもつＵＳＢデバイスであれば、１００６に示すように、"ＵＳＢホストＩ／Ｆ（１）"に接続されたＵＳＢデバイス２は、"カードリーダＡ"とデータを保持する。同様に、ＵＳＢデバイス６が、"ＵＳＢメモリＢ"というプロダクト情報を持つデバイスであれば、１００７に示すように、"ＵＳＢホストＩ／Ｆ（Ｎ）"に接続されたＵＳＢデバイス６は、"ＵＳＢメモリＢ"とデータを保持する。
【００７２】
なお、ＵＳＢデバイスは、ホストコンピュータに接続された際、ＵＳＢホストコントローラから送られるコマンドに応答して、デバイスのクラス情報やプロダクト情報を含むデバイスの情報を通知する。このやり取りをエニュミレーションと呼ぶ。ＣＰＵ２０１は、予めこのクラス情報及びプロダクト情報とＵＳＢホストＩ／Ｆの対応結果を、図１０のようなテーブルに格納している。
【００７３】
図１１は、ホストコンピュータ１のＣＰＵ２０１の制御によりディスプレイ２１０上に各ＵＳＢホストＩ／Ｆに接続されたＵＳＢデバイスのプロダクト情報の選択ボタンを表示するイメージを例示する図である。
図１３は、入力部２１１及びディスプレイ２１０を例示する図である。図１３では、ホストコンピュータ１がプリンタ、複合機等の画像形成装置である場合の入力部２１１を例示する。
図１３に示すように、ディスプレイ２１０上には、入力部２１１の一部のタッチパネルが装着されており、表示上のボタンを押すことにより、選択操作が可能になっているものである。
【００７４】
なお、リセット指示としては、例えば、ＣＰＵ２０１の制御によりディスプレイ２１０上に"ＵＳＢリセット"ボタンを表示し、ユーザがこの"ＵＳＢリセット"ボタンを入力部２１１経由で押下することで行われるようなものがある。また、リセット指示は、入力部２１１の所定のハードキーを所定の方法で操作することにより行われるものでもよい。例えば、図１３に示す"＃"キー１３０１を長押しするような特殊操作を行うことにより、ユーザによりリセット指示を入力するものでもよい。
【００７５】
以下に図１２のフローチャートを用いて本実施例の制御フローを説明する。
図１２は、実施例３のホストコンピュータ１が指定されたＵＳＢホストＩ／Ｆに対するリセット処理を例示するフローチャートである。このフローチャートの各ステップの処理は、ホストコンピュータ１のＣＰＵ２０１がＨＤＤ２０３等に格納されるプログラムを読み出して実行することにより実現されるものである。
【００７６】
ステップＳ１２０１において、ＣＰＵ２０１は、入力部２１１の入力状況を、入力部コントローラ２１５経由で取得し、ユーザからのリセット指示の入力を監視し、リセット指示が入力されたか否かを判定する。なお、リセット指示については上述したので説明は省略する。
【００７７】
そして、ユーザからのリセット指示の入力を検出していないと判定した場合（Ｓ１２０１でＮｏの場合）、ＣＰＵ２０１は、Ｓ１２０１でリセット指示入力の監視を継続する。
一方、ユーザからのリセット指示の入力を検出したと判定した場合（Ｓ１２０１でＹｅｓの場合）、ＣＰＵ２０１は、Ｓ１２０２に処理を進める。
【００７８】
ステップＳ１２０２では、ＣＰＵ２０１は、予めＲＡＭ２０４上に格納していた図１０に示したような各ＵＳＢホストＩ／Ｆごとの接続情報を基に、図１１で示したような情報を、ディスプレイ２１０上に表示制御する。上述したように、エニュミレーションの際、ＵＳＢデバイスは、クラス情報の他に、プロダクト情報（ＵＳＢデバイスの製品名称を特定する情報）をＵＳＢホストコントローラ２０７に通知している。図１０に示した"カードリーダＡ"１００６や、"ＵＳＢメモリＢ"１００７は、各ＵＳＢデバイスがエニュミレーション時にホストコンピュータ１に返答したプロダクト情報を格納したものである。ユーザは、上記Ｓ１２０２において、ホストコンピュータに接続されたＵＳＢデバイスのプロダクト情報一覧が、例えば図１１のようにディスプレイ２１０上に表示されることにより、どのＵＳＢデバイスに対してリセットをかけたいか判断が可能になる。
【００７９】
次に、ステップＳ１２０３において、ＣＰＵ２０１は、上記Ｓ１２０２で表示したＵＳＢデバイス（プロダクト情報により判別可能）のうちのいずれかのユーザによる選択を監視する。
そして、ユーザからのＵＳＢデバイスの選択を検出していないと判定した場合（Ｓ１２０３でＮｏの場合）、ＣＰＵ２０１は、Ｓ１２０３でＵＳＢデバイスの選択の監視を継続する。
【００８０】
一方、ユーザからのＵＳＢデバイスの選択を検出したと判定した場合（Ｓ１２０３でＹｅｓの場合）、ＣＰＵ２０１は、Ｓ１２０４に処理を進める。
なお、上記ＵＳＢデバイスの選択を検出した場合、ＣＰＵ２０１は、図１０に示したようなテーブルから、選択されたＵＳＢデバイスが、どのＵＳＢホストＩ／Ｆに接続されたデバイスであるか判断である。
【００８１】
ステップＳ１２０４では、ＣＰＵ２０１は、上記Ｓ１２０３でユーザにより選択されたＵＳＢデバイスが接続されたＵＳＢホストＩ／Ｆに対してＶＢＵＳ電源制御するＧＰＩＯ２１４のレジスタビットを「ＯＦＦ」にするように設定する。
例えば、上記Ｓ１２０３の処理の結果、ユーザにより図１１のカードリーダＡ（１１０１）が選択されたと判断した場合、ＣＰＵ２０１は、ＵＳＢホストＩ／Ｆ（１）、つまりＶＢＵＳ３０２のＯＦＦ／ＯＮ処理を行う。また例えば、上記Ｓ１２０３の処理の結果、ユーザにより図１１のＵＳＢメモリＢ（１１０２）が選択されたと判断した場合、ＣＰＵ２０１は、ＵＳＢホストＩ／Ｆ（Ｎ）、つまりＶＢＵＳ７０５のＯＦＦ／ＯＮ処理を行う。
【００８２】
即ち、カードリーダＡ（１１０１）が選択された場合、上記Ｓ１２０４の処理により、図７に示したＡＮＤ回路４０１に入力されているＧＰＩＯ２１４からの信号レベルが「Ｌｏｗ」になる。これにより、ＵＳＢホストＩ／Ｆ２０８からのＶＢＵＳ出力が「Ｈｉｇｈ」であった場合でも、ＵＳＢデバイス２に入力されるＶＢＵＳ３０２が「Ｌｏｗ」になる。また、ＵＳＢメモリ（１１０２）が選択された場合、上記Ｓ１２０４の処理により、ＡＮＤ回路７０４に入力されているＧＰＩＯ２１４からの信号レベルが「Ｌｏｗ」になる。これにより、ＵＳＢホストＩ／Ｆ７０１からのＶＢＵＳ出力が「Ｈｉｇｈ」であった場合でも、ＵＳＢデバイス６に入力されるＶＢＵＳ７０５が「Ｌｏｗ」になる。
【００８３】
次に、ステップＳ１２０５において、ＣＰＵ２０１は、上記Ｓ１２０４の処理の後、一定時間（例えば５秒間）Ｗａｉｔし、該一定時間経過後（Ｓ１２０５でＹｅｓと判断した後）、Ｓ１２０６に処理を進める。このＳ１２０５の処理により、上記Ｓ１２０３でユーザにより選択されたデバイスに入力されるＶＢＵＳが、一定時間「Ｌｏｗ」に保持される。
【００８４】
ステップＳ１２０６では、ＣＰＵ２０１は、上記Ｓ１２０３でユーザにより選択されたＵＳＢデバイスが接続されたＵＳＢホストＩ／Ｆに対してＶＢＵＳ電源制御するＧＰＩＯ２１４のレジスタビットを「ＯＮ」にするように設定する。このＳ１２０６の処理により、図７に示したＡＮＤ回路に入力されているＧＰＩＯ２１４からの信号レベルが「Ｈｉｇｈ」になる。これにより、ＵＢＳホストＩ／ＦからのＶＢＵＳ出力が「Ｈｉｇｈ」であった場合、ＵＳＢデバイスに入力されるＶＢＵＳが、「Ｈｉｇｈ」になる。
【００８５】
以上示したような上記Ｓ１２０１〜Ｓ１２０６の処理を行うことにより、ユーザが指定したデバイスが接続されているＵＳＢホストＩ／Ｆに対するリセット処理が行われる。よって、ユーザは所望のＵＳＢデバイスを容易に選択してリセットすることができる。
【００８６】
なお、図９に示した処理のように、リセット指示の対象となるＵＳＢホストＩ／Ｆに接続されたデバイスがＵＳＢストレージクラスのデバイス（即ち、記憶装置に分類されるデバイス）である場合には、リセット処理を行わないように構成してもよい。
また、図１１において、ＵＳＢストレージクラスのＵＳＢメモリＢ（１１０２）をグレー表示し、選択できないようにしてもよい。
このような構成により、ユーザが誤ってＵＳＢストレージクラスのデバイスにリセット処理を指示していまい、書き込み中のファイルを破損させることがなくなる。
【００８７】
また、リセット指示の対象となるＵＳＢホストＩ／Ｆに接続されたデバイスがＵＳＢストレージクラスのデバイスである場合には、ＣＰＵ２０１は、該デバイスへの書き込み処理中か否かを判断する。そして、ＣＰＵ２０１は、ホストコンピュータ１からデバイスに書き込み処理中の場合、該書き込み処理の終了を待ってリセット処理を行うようにし、一方、書き込み処理でない場合、そのままリセット処理を行うようにしてもよい。この構成により、ＵＳＢストレージクラスのデバイスであっても、安全に（書き込み中のファイルを破損させることなく）、リセット処理を行うことができる。
【００８８】
なお、実施例２では、図９に示した処理を特定のＵＳＢホストＩ／Ｆに対して実行するようにしたが、図９に示した処理を、ホストコンピュータ１が備える全てのＵＳＢホストＩ／Ｆに対して実行するようにしてもよい。これにより、全てのＵＳＢホストＩ／Ｆに対して同様の効果が得られる。
【００８９】
以上のように、各実施例では、ＵＳＢインタフェースのＶＢＵＳをＯＦＦ／ＯＮさせることを実現させる回路構造、ＶＢＵＳをＯＦＦ／ＯＮをユーザ指示で可能とする構成（ＵＳＢデバイスのリセットを指示できるボタン、画面等）を設ける。そして、ユーザからのリセット指示に応じて、ＵＳＢ ＶＢＵＳをＯＦＦ／ＯＮして、デバイスに対する電力供給を一定時間遮断した後に再供給するリセット処理を実行するように制御する。これにより、ホストコンピュータ側の要因でなく、ＵＳＢデバイス側要因で通信不通になる場合が発生しても、ホストコンピュータを再起動させずに、ＵＳＢデバイス側だけ再起動して通信状態を復旧させることができる。
【００９０】
なお、実施例２、３では、ＵＳＢインタフェースを介して、ホストコンピュータとデバイスが接続される構成について説明した。しかし、ホストコンピュータとデバイスとを接続する通信インタフェースは、ＵＳＢインタフェースに限定されるものではない。接続されるデバイスに対して電力供給可能な通信インタフェースで、該インタフェースを介してデバイスからクラス情報やプロダクト情報を通知可能なインタフェースであれば、他の通信インタフェースであっても、実施例２、３を適用可能である。
従って、実施例２、３によれば、所定の通信インタフェースを介して情報処理装置と接続されるデバイスとの通信が不通になった場合でも、情報処理装置の他の機能は動作させた状態で、デバイスの通信不通状態を復旧させることができる。
【００９１】
以上より、ＨＩＤクラス等のＵＳＢデバイスの場合のように、ホストコンピュータの監視プログラムからのテスト通信に応答できないデバイスであっても、ホストコンピュータの入力部からのユーザ指示により、ホストコンピュータを再起動させることなく、リセット処理することができる。
また、デバイスが、ホストコンピュータの機器のモール内部に装着されている場合であっても、ホストコンピュータの入力部からのユーザ指示により、ホストコンピュータを再起動させることなく、リセット処理することができる。
よって、ＵＳＢデバイス等のデバイスとの通信が不通になった場合でも、ホストコンピュータの他の機能は動作させた状態で、デバイスの通信不通状態を復旧させることができる。
【００９２】
なお、上述した各種データの構成及びその内容はこれに限定されるものではなく、用途や目的に応じて、様々な構成や内容で構成されることは言うまでもない。
以上、一実施形態について示したが、本発明は、例えば、システム、装置、方法、プログラムもしくは記憶媒体等としての実施態様をとることが可能である。具体的には、複数の機器から構成されるシステムに適用しても良いし、また、一つの機器からなる装置に適用しても良い。
また、上記各実施例を組み合わせた構成も全て本発明に含まれるものである。
【００９３】
（他の実施例）
また、本発明は、以下の処理を実行することによっても実現される。即ち、上述した実施形態の機能を実現するソフトウェア（プログラム）を、ネットワーク又は各種記憶媒体を介してシステム或いは装置に供給し、そのシステム或いは装置のコンピュータ（またはＣＰＵやＭＰＵ等）がプログラムを読み出して実行する処理である。
また、本発明は、複数の機器から構成されるシステムに適用しても、１つの機器からなる装置に適用してもよい。
本発明は上記実施例に限定されるものではなく、本発明の趣旨に基づき種々の変形（各実施例の有機的な組合せを含む）が可能であり、それらを本発明の範囲から除外するものではない。即ち、上述した各実施例及びその変形例を組み合わせた構成も全て本発明に含まれるものである。
【符号の説明】
【００９４】
１    ホストコンピュータ
２    ＵＳＢデバイス
２０１    ＣＰＵ
２１４    ＧＰＩＯ
３０２    ＶＢＵＳ
４０１    ＡＮＤ回路
【図１】
2016062529.tif 000003
【図２】
2016062529.tif 000004
【図３】
2016062529.tif 000005
【図４】
2016062529.tif 000006
【図５】
2016062529.tif 000007
【図６】
2016062529.tif 000008
【図７】
2016062529.tif 000009
【図８】
2016062529.tif 000010
【図９】
2016062529.tif 000011
【図１０】
2016062529.tif 000012
【図１１】
2016062529.tif 000013
【図１２】
2016062529.tif 000014
【図１３】
2016062529.tif 000015