(57)【要約】【課題】ＵＳＢデバイスの接続時に認識不良が発生した場合であっても、当該ＵＳＢデバイスを物理的に接続した状態で自動的に再接続を行う仕組みを提供する。【解決手段】情報処理装置は、ＵＳＢホストＩ／Ｆ１０８を備え、ＵＳＢホストＩ／Ｆ１０８に新たなＵＳＢデバイスが接続されると、当該ＵＳＢデバイスを使用可能にする初期化処理（エニュメレーション処理）を実行する。また、本情報処理装置は、初期化処理の中でエラーが発生すると、ＵＳＢホストＩ／Ｆ１０８を介したＵＳＢデバイスのＶｂｕｓ信号線２０２への電力供給を停止し、一定時間が経過した後にＶｂｕｓ信号線２０２への電力供給を再開する。【選択図】  図３
2018116648.tif 000002
【特許請求の範囲】
【請求項１】
情報処理装置であって、
ＵＳＢホストインタフェースと、
前記ＵＳＢホストインタフェースに新たなＵＳＢデバイスが接続されると、該ＵＳＢデバイスを使用可能にする初期化処理を実行する初期化手段と、
前記初期化処理の中でエラーが発生すると、前記ＵＳＢホストインタフェースを介した前記ＵＳＢデバイスのＶｂｕｓ信号線への電力供給を停止し、一定時間が経過した後に該Ｖｂｕｓ信号線への電力供給を再開する制御手段と
を備えること特徴とする情報処理装置。
【請求項２】
前記制御手段は、前記ＵＳＢデバイスのＤ＋信号線及びＤ−信号線がともにプルアップされると、前記初期化処理の中でエラーが発生したと判定することを特徴とする請求項１に記載の情報処理装置。
【請求項３】
前記初期化手段は、
前記ＵＳＢデバイスの通信速度を検出する手段と、
前記ＵＳＢデバイスをリセットさせて当該ＵＳＢデバイスに関する情報を取得する手段と、
前記ＵＳＢデバイスにアドレスを割り当てる手段と、
前記ＵＳＢデバイスにドライバを割り当てる手段と、
前記ＵＳＢデバイスを使用するためのコンフィギュレーション処理を実行する手段と
を備えることを特徴とする請求項１又は２に記載の情報処理装置。
【請求項４】
前記制御手段は、前記ＵＳＢデバイスにアドレスを割り当てる際に、該ＵＳＢデバイスから肯定応答を受信しなければ、前記初期化処理の中でエラーが発生したと判定することを特徴とする請求項３に記載の情報処理装置。
【請求項５】
ＣＰＬＤ（Ｃｏｍｐｌｅｘ Ｐｒｏｇｒａｍｍａｂｌｅ Ｌｏｇｉｃ Ｄｅｖｉｃｅ）と、
前記ＣＰＬＤの出力と、前記ＵＳＢホストインタフェースの出力との論理積を演算して、前記Ｖｂｕｓ信号線に演算結果を出力するＡＮＤ回路と
をさらに備えることを特徴とする請求項１乃至４の何れか１項に記載の情報処理装置。
【請求項６】
前記制御手段は、
前記ＣＰＬＤを制御して前記ＡＮＤ回路へゼロの信号を出力させて前記Ｖｂｕｓ信号線への電力供給を停止し、前記一定時間が経過した後に、前記ＣＰＬＤを制御して前記ＡＮＤ回路へ１の信号を出力させることによって、前記Ｖｂｕｓ信号線への電力供給を再開することを特徴とする請求項５に記載の情報処理装置。
【請求項７】
ＵＳＢホストインタフェースを有する情報処理装置の制御方法であって、
初期化手段が、前記ＵＳＢホストインタフェースに新たなＵＳＢデバイスが接続されると、該ＵＳＢデバイスを使用可能にする初期化処理を実行する初期化工程と、
制御手段が、前記初期化処理の中でエラーが発生すると、前記ＵＳＢホストインタフェースを介した前記ＵＳＢデバイスのＶｂｕｓ信号線への電力供給を停止し、一定時間が経過した後に該Ｖｂｕｓ信号線への電力供給を再開する制御工程と
を実行すること特徴とする情報処理装置の制御方法。
【請求項８】
ＵＳＢホストインタフェースを有する情報処理装置の制御方法における各工程をコンピュータに実行させるためのプログラムであって、前記制御方法は、
初期化手段が、前記ＵＳＢホストインタフェースに新たなＵＳＢデバイスが接続されると、該ＵＳＢデバイスを使用可能にする初期化処理を実行する初期化工程と、
制御手段が、前記初期化処理の中でエラーが発生すると、前記ＵＳＢホストインタフェースを介した前記ＵＳＢデバイスのＶｂｕｓ信号線への電力供給を停止し、一定時間が経過した後に該Ｖｂｕｓ信号線への電力供給を再開する制御工程と
を実行することを特徴とするプログラム。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、情報処理装置、その制御方法、及びプログラムに関するものである。
【背景技術】
【０００２】
ＵＳＢ（Ｕｎｉｖｅｒｓａｌ  Ｓｅｒｉａｌ  Ｂｕｓ）のＩ／Ｆを搭載するホストコンピュータ等の情報処理装置では、ＵＳＢストレージ、ＵＳＢカードリーダ及びＵＳＢキーボード等を接続し、情報処理装置の１つのデバイスとして使用することができる。これは、ＵＳＢホストコントローラが装備されているためである。
【０００３】
ＵＳＢ２．０までのデバイスでは、図５に図示されるようにコネクタ部分に物理的に４本の信号線を備え、それぞれＶｂｕｓ、ＧＮＤ、Ｄ＋、Ｄ−となっている。ＶｂｕｓとＧＮＤの信号線はホストからデバイスに電源を供給するための信号線であり、物理的に長めになっている。Ｄ＋とＤ−の信号線はホストとデバイスの間でコマンド等の通信を行うために利用される信号線であり、物理的に短めになっている。Ｖｂｕｓ、ＧＮＤの信号線とＤ＋，Ｄ−の信号線は物理的な長さの違いにより、デバイスとホストを接続した際は先にＶｂｕｓとＧＮＤの信号線が接続され、その後Ｄ＋とＤ−の信号線が接続される。Ｄ＋とＤ−の信号線が接続されると、ホストが接続を検知して初期化処理（以下、エニュメレーション処理と称する。）が開始される。
【０００４】
エニュメレーション処理では、ホストがデバイスにいくつかのコマンドを送信することでデバイスの特性を調べ、デバイスとの通信を確立する。エニュメレーション処理の最中にデバイスは４つの状態を経過し、各状態はＰｏｗｅｒｅｄ、Ｄｅｆａｕｌｔ、Ａｄｄｒｅｓｓ、Ｃｏｎｆｉｇｕｒｅｄとなっている。
【０００５】
特許文献１には、エニュメレーション処理を確実に成功させるために、ホストとデバイスが接続されてから一定の待機時間を経過後にホストからデバイスへリセット信号を送信する技術が提案されている。
【先行技術文献】
【特許文献】
【０００６】
【特許文献１】特開２００９−１５１４１５号公報
【発明の概要】
【発明が解決しようとする課題】
【０００７】
しかしながら、上記従来技術には以下に記載する課題がある。例えば、ＵＳＢデバイスは、様々な種類のものが出回っており、個々のデバイスの作りはベンダーに依存している。そのため、同じ用途のデバイスでもベンダーによっては電気的動作が異なる振る舞いとなることがある。中には、ホストと接続する際に、Ｖｂｕｓ信号線の接続からＤ＋、Ｄ−信号線の接続までに一定時間が経過すると、Ｄ＋、Ｄ−が共にＨｉｇｈにプルアップされ、認識不良を起こし、ＵＳＢデバイスとして正しく動作しなくなるものも存在する。このような状態に陥るデバイスは、ホストから送られてくるコマンドを正しく処理できないため、上記従来技術ではエニュメレーション処理を成功させることはできない。したがって、正常に接続するためにはＵＳＢデバイスを接続し直す必要があり、ユーザはそのような知識を有する必要がある。
【０００８】
本発明は、上述の問題に鑑みて成されたものであり、ＵＳＢデバイスの接続時に認識不良が発生した場合であっても、当該ＵＳＢデバイスを物理的に接続した状態で自動的に再接続を行う仕組みを提供することを目的とする。
【課題を解決するための手段】
【０００９】
本発明は、情報処理装置であって、ＵＳＢホストインタフェースと、前記ＵＳＢホストインタフェースに新たなＵＳＢデバイスが接続されると、該ＵＳＢデバイスを使用可能にする初期化処理を実行する初期化手段と、前記初期化処理の中でエラーが発生すると、前記ＵＳＢホストインタフェースを介した前記ＵＳＢデバイスのＶｂｕｓ信号線への電力供給を停止し、一定時間が経過した後に該Ｖｂｕｓ信号線への電力供給を再開する制御手段とを備えること特徴とする。
【発明の効果】
【００１０】
本発明によれば、ＵＳＢデバイスの接続時に認識不良が発生した場合であっても、当該ＵＳＢデバイスを物理的に接続した状態で自動的に再接続を行うことができる。
【図面の簡単な説明】
【００１１】
【図１】一実施形態に係る画像形成装置１００のハード構成図。
【図２】一実施形態に係るＵＳＢホスト２．０Ｉ／ＦのＶｂｕｓ信号ＯＦＦ／ＯＮを実現する回路構成図。
【図３】一実施形態に係るデバイスの再接続処理を示すフローチャート。
【図４】一実施形態に係るエニュメレーション処理を示すフローチャート。
【図５】ＵＳＢホストとＵＳＢデバイスのコネクタ部を示す図。
【発明を実施するための形態】
【００１２】
以下に本発明の一実施形態を示す。以下で説明される個別の実施形態は、本発明の上位概念、中位概念及び下位概念など種々の概念を理解するために役立つであろう。また、本発明の技術的範囲は、特許請求の範囲によって確立されるのであって、以下の個別の実施形態によって限定されるわけではない。
【００１３】
＜第１の実施形態＞
＜情報処理装置の構成＞
以下では、本発明の第１の実施形態について説明する。まず、図１を参照して、本実施形態に係る情報処理装置である画像形成装置１００のハードウェア構成について説明する。
【００１４】
画像形成装置１００は、ＣＰＵ１０１、ＨＤＤ１０３、ＲＡＭ１０４、ネットワークコントローラ１０５、ネットワークコントローラインタフェース（Ｉ／Ｆ）１０６、ＵＳＢホストコントローラ１０７及びＵＳＢホストインタフェース（Ｉ／Ｆ）１０８を備える。また、画像形成装置１００は、ＣＰＬＤ１０９、ディスプレイコントローラ１１０、ディスプレイ１１１、入力部コントローラ１１２、入力部１１３、ＲＴＣ１１４、及び不揮発メモリ１１５を備える。さらに、画像形成装置１０１は、スキャナインタフェース（Ｉ／Ｆ）１１６、スキャナ１１７、プリンタインタフェース（Ｉ／Ｆ）１１８、及びプリンタ１１９を備える。各負荷はシステムバス１０２を介して接続され、相互にデータを送受することができる。
【００１５】
ＣＰＵ（中央演算処理装置）１０１は、画像形成装置１００を稼働させるためのソフトウェアを動作させ、各負荷を統括的に制御する。ＣＰＵ１０１は、システムバス１０２を介して、他のユニットにアクセスする。なお、システムバス１０２は、ＣＰＵと各負荷との間の通路だけではなく、他のユニット同士をアクセスする通路にもなる。ＨＤＤ（ハードディスクドライブ）１０３には、本画像形成装置１００のソフトウェア、本画像形成装置１００が動作するために必要なデータベース、及び一時保存ファイルが格納される。図１では、ＨＤＤとの記載をしているが、Ｓｏｌｉｄ  Ｓｔａｔｅ  Ｄｒｉｖｅ（以下、ＳＳＤ）等の大容量不揮発メモリでも構わない。ＲＡＭ（Ｒａｎｄｏｍ  Ａｃｃｅｓｓ  Ｍｅｍｏｒｙ）１０４には、画像形成装置１００のプログラムが展開され、プログラム動作時の変数や、各ユニットからＤｙｎａｍｉｃ  Ｍｅｍｏｒｙ  Ａｃｃｅｓｓ（以下、ＤＭＡ）で転送されるデータの格納領域となる。
【００１６】
ネットワークコントローラ１０５及びネットワークコントローラＩ／Ｆ１０６は、本画像形成装置１００とネットワーク上の他の機器との通信を制御する。ＵＳＢホストコントローラ１０７及びＵＳＢホストＩ／Ｆ１０８は、本画像形成装置１００とＵＳＢデバイスとの通信を制御するＵＳＢハブである。図１では、ＵＳＢホストＩ／Ｆ１０８は１つのみの記載であるが、実際には複数存在する。このＵＳＢホストＩ／Ｆ１０８は、ＵＳＢケーブルを使用してＵＳＢデバイスと接続される。ＵＳＢデバイスの形態によっては、ＵＳＢケーブルは使用せず直接接続される形態であってもよい。
【００１７】
ディスプレイ１１０は、画像形成装置１００の動作状況をユーザ等が確認できる画面を表示する。ディスプレイコントローラ１１１は、ディスプレイ１１０の表示を制御する。入力部１１３は、本画像形成装置１００へのユーザからの指示を受け付けるユーザインタフェースである。入力部コントローラ１１２は、入力部１１３を制御する。入力部１１３は具体的にはキーボードやマウス、数字キー、カーソルキー、タッチパネルや、操作部キーボードといった入力システムである。入力部１１３がタッチパネルである場合は、物理的にはディスプレイ１１１の表面に装着された実装形態になる。
【００１８】
ＲＴＣ（リアルタイムクロック）１１４、本画像形成装置１００の時計機能、アラーム機能、及びタイマー機能等を有する。不揮発メモリ１１５は、ＨＤＤ１０３ほど大容量ではないが、書き換え可能なメモリである。不揮発メモリ１１５は、Ｓｔａｔｉｃ  Ｒａｎｄｏｍ  Ａｃｃｅｓｓ  Ｍｅｍｏｒｙ（以下ＳＲＡＭ）や、Ｅｌｅｃｔｒｉｃａｌｌｙ  Ｅｒａｓａｂｌｅ  Ｐｒｏｇｒａｍｍａｂｌｅ  Ｒｅａｄ  Ｏｎｌｙ  Ｍｅｍｏｒｙ（以下ＥＥＰＲＯＭ）等であってもよい。
【００１９】
ＣＰＬＤ１０９は、ＣＰＵ１０１を介して、基盤回路上の信号線のＬｏｗ／Ｈｉｇｈの状況を読み取る。或いは、ＣＰＬＤ１０９は、ＣＰＵ１０１がＬｏｗ／Ｈｉｇｈの状況の設定を変更可能にするユニットである。ＣＰＬＤ（Ｃｏｍｐｌｅｘ Ｐｒｏｇｒａｍｍａｂｌｅ Ｌｏｇｉｃ Ｄｅｖｉｃｅ）１０９は、プログラマブルなロジックデバイスであり、画像形成装置１００上で電力関係のＯＦＦ／ＯＮを制御可能にするユニットである。ＣＰＬＤ１０９の内部には、Ｇｅｎｅｒａｌ  Ｐｕｒｐｏｓｅ  Ｉｎｐｕｔ  Ｏｕｔｐｕｔ（以下、ＧＰＩＯ）が存在する。ＣＰＵ１０１は、そのＧＰＩＯレジスタの設定値を変更することで、電力関係のＯＦＦ／ＯＮを可能としている。
【００２０】
また、画像形成装置１００には、システムバス１０２とスキャナＩ／Ｆ１１６を介してスキャナ１１７が接続される。さらに、画像形成装置１００には、システムバス１０２とプリンタＩ／Ｆ１１８を介してプリンタ１１９が接続される。
【００２１】
＜制御構成＞
次に、図２を参照して、ＣＰＵ１０１の指示によりＶｂｕｓ２０２のＯＦＦ／ＯＮを制御可能にする制御構成について説明する。ＵＳＢデバイス２０６には、図５を用いて前述したように、４本の信号線が接続されるのがＵＳＢ規格の仕様である。Ｖｂｕｓ２０２は、ＵＳＢデバイス２０６への電力を供給する電力線である。Ｄ−信号線２０３とＤ＋信号線２０４は、ＵＳＢデバイス２０６とＵＳＢホストコントローラ１０７との間を通信するデータを流す差動信号線である。ＧＮＤ２０５はグランド信号線である。コネクタ部２０７は図５に示されるようなＵＳＢホストＩＦ１０８とＵＳＢデバイス２０６のコネクタ部である。
【００２２】
ＡＮＤ回路２０１は、ＣＰＵ１０１の指示で制御されるＣＰＬＤ１０９内部のＧＰＩＯからの出力値と、ＵＳＢホストＩ／Ｆ１０８から出力されるＶｂｕｓの出力値の論理積を演算し、演算結果をＶｂｕｓ２０２へ出力する。これにより、ＵＳＢデバイス２０６に電力を与えるＶｂｕｓ２０２のＯＦＦ／ＯＮを制御する。図２では、ＡＮＤ回路２０１を用いて簡易的にＶｂｕｓのＯＦＦ／ＯＮを制御するように表記しているが、ハイサイドスイッチとＯＲ回路を用いてＶｂｕｓのＯＦＦ／ＯＮを制御することも可能である。
【００２３】
＜処理手順＞
次に、図３を参照して、本実施形態に係る画像形成装置１００の処理手順について説明する。以下で説明する処理は、例えばＣＰＵ１０１がＨＤＤ１０３に格納された制御プログラムをＲＡＭ１０４に読み出して実行することにより実現される。
【００２４】
まず、Ｓ３０１で、ＣＰＵ１０１は、ＵＳＢデバイスが画像形成装置１００へ挿入（接続）されたか否かを判定する。ＵＳＢデバイス２０６がＵＳＢホストＩ／Ｆ１０８に接続されると、Ｄ−信号線２０３とＤ＋信号線２０４のどちらかの電圧がＨｉｇｈになり、ＵＳＢホストＩ／Ｆ１０８はデバイスが接続されたことを検出することができる。接続を検出すると、ＵＳＢホストＩ／Ｆ１０８はＵＳＢホストコントローラ１０７を通じてＣＰＵ１０１に接続検知の割り込み信号を送信する。したがって、ＣＰＵ１０１は当該割り込み信号を受信するとＵＳＢデバイスが画像形成装置１００へ接続されたと判定する。ＵＳＢデバイスが画像形成装置１００へ接続されるとＳ３０２に進み、接続を検知できなければＳ３０１の判定を繰り返し行う。
【００２５】
Ｓ３０２で、ＣＰＵ１０１は、エニュメレーション処理を開始する。エニュメレーション処理は、デバイスのスピード検知、リセット（ＳＥＴ＿ＰＯＲＴ＿ＦＥＡＴＵＲＥ）、デバイス情報取得（ＧＥＴ＿ＤＥＳＣＲＩＰＴＯＲ）、及びアドレスの割り当て（ＳＥＴ＿ＡＤＤＲＥＳＳ）の処理を含む。さらに、エニュメレーション処理は、デバイスドライバのロード、及びコンフィギュレーション（ＳＥＴ＿ＣＯＮＦＩＧＵＲＡＴＩＯＮ）等の処理を含む。これらの処理の詳細は、第２の実施形態の図４を用いて後述する。本実施形態では、エニュメレーション処理の内容までは特に説明する必要がないため省略する。
【００２６】
次に、Ｓ３０３で、ＣＰＵ１０１は、エニュメレーション処理が成功したか否かを判定する。例えば、ここでは、Ｄ−信号線２０３と、Ｄ＋信号線２０４とが共にＨｉｇｈにプルアップされると通常のＵＳＢデバイスの動作ではないため、エラーが発生したと判定する。成功すれば処理を終了し、成功しなかった場合はＳ３０４に進む。上記エニュメレーション処理のいずれかで失敗を検知した場合、Ｓ３０４で、ＣＰＵ１０１は、ＣＰＬＤ１０９に含まれるＧＰＩＯのレジスタを操作して、ＡＮＤ回路２０１にゼロの信号を出力する。このとき、ＵＳＢホストコントローラ１０７が動作中であってもＶｂｕｓ２０２の出力がゼロになる。Ｖｂｕｓ２０２の信号レベルがゼロになると物理的に接続された状態であっても、電気的に切断された状態となり、ＵＳＢデバイス２０６のＶｂｕｓはＯＦＦされることになる。即ち、Ｓ３０４の制御により、ＵＳＢデバイスを画像形成装置１００から物理的に外す動作と同様の効果を得ることができる。
【００２７】
ＶｂｕｓがＯＦＦされてから、ＵＳＢデバイスの電気回路の動作上、充分な時間（例えば、２秒）が経過した後、Ｓ３０５で、ＣＰＵ１０１は、再度ＣＰＬＤ１０９に含まれるＧＰＩＯのレジスタを操作することでＡＮＤ回路２０１に１の信号を出力する。これにより、Ｖｂｕｓ２０２をＯＮの状態にすることができる。この処理によりＶｂｕｓ２０２は電気的に接続された状態となり、ＵＳＢデバイス２０６に電力の供給が再開される。即ち、Ｓ３０５の制御により、ＵＳＢデバイスを画像形成装置１００に物理的に接続する動作と同様の効果を得ることができる。
【００２８】
Ｖｂｕｓ２０２が再接続されると、Ｓ３０６で、ＣＰＵ１０１は、再度Ｓ３０２と同様のエニュメレーション処理を実行する。続いて、Ｓ３０７で、ＣＰＵ１０１は、エニュメレーション処理が成功したか否かを判定する。Ｓ３０６のエニュメレーション処理が失敗した場合はＳ３０８に進み、ＣＰＵ１０１は、ディスプレイコントローラ１１０を通してディスプレイ１１１にＵＳＢデバイス２０６の認識に失敗したことを通知する画面を表示する。一方、エニュメレーション処理に成功した場合は、Ｓ３０９で、ＣＰＵ１０１は、ディスプレイコントローラ１１０を通してディスプレイ１１１にＵＳＢデバイス２０６の認識に成功したことを通知する画面を表示し、処理を終了する。
【００２９】
以上説明したように、本実施形態に係る情報処理装置は、ＵＳＢホストＩ／Ｆ１０８を備え、ＵＳＢホストＩ／Ｆ１０８に新たなＵＳＢデバイスが接続されると、当該ＵＳＢデバイスを使用可能にする初期化処理（エニュメレーション処理）を実行する。また、本情報処理装置は、初期化処理の中でエラーが発生すると、ＵＳＢホストＩ／Ｆ１０８を介したＵＳＢデバイスのＶｂｕｓ信号線２０２への電力供給を停止し、一定時間が経過した後にＶｂｕｓ信号線２０２への電力供給を再開する。これにより、ソフトウェア制御により、Ｖｂｕｓ信号線、即ちＵＳＢデバイスへの電力供給を一旦遮断し、一定時間が経過すると再開することができ、物理的にＵＳＢデバイスを外して、再接続させた場合と同様の効果を得ることができる。つまり、Ｖｂｕｓ信号線の接続からＤ＋信号線、Ｄ−信号線の接続までに一定時間が経過すると正しく動作せずホストが認識できなくなるＵＳＢデバイスであっても、手動でデバイスを挿し直す必要無く確実にエニュメレーション処理を再度実行することができる。
【００３０】
＜第２の実施形態＞
以下では、本発明の第２の実施形態について説明する。上記第１の実施形態ではエニュメレーション処理中のいずれかで失敗を検知した場合にＵＳＢデバイス２０６のＶｂｕｓ電力をＯＦＦ／ＯＮすることで再度エニュメレーション処理を行う構成について説明した。しかし、エニュメレーション処理中の何れのタイミングにおいても失敗を検知できるようにするためには、専用の回路やソフトウェアの作り込みが必要になってくる。そこで、本実施形態では、簡易な処理でエニュメレーション処理の何れのタイミングであっても処理の失敗を検知するための仕組みを説明する。本実施形態でのハード構成は上記第１の実施形態と同様であるため説明を省略する。また、ＵＳＢデバイスが接続されたときの処理についても上記第１の実施形態と同様に、図３のフローチャートで行われるため説明を省略する。本実施形態では、図３のＳ３０２やＳ３０６の処理に特徴があるため、その制御を主に説明する。
【００３１】
図４を参照して、本実施形態に係るＳ３０２及びＳ３０７のエニュメレーション処理の詳細について説明する。以下で説明する処理は、例えばＣＰＵ１０１がＨＤＤ１０３に格納された制御プログラムをＲＡＭ１０４に読み出して実行することにより実現される。
【００３２】
まずＳ４０１で、ＣＰＵ１０１は、ＵＳＢホストＩ／Ｆ１０８を介してＤ−信号線２０３、及びＤ＋信号線２０４の電圧を調べる。これにより、ＣＰＵ１０１は、ＵＳＢデバイス２０６がＬｏｗ  ＳｐｅｅｄのデバイスなのかＦｕｌｌ  Ｓｐｅｅｄのデバイスなのかを検出することができる。つまり、ここでは、ＵＳＢデバイス２０６の通信速度を検出している。
【００３３】
次に、Ｓ４０２で、ＣＰＵ１０１は、ＵＳＢホストコントローラ１０７を通してＵＳＢホストＩ／Ｆ１０８にＳＥＴ＿ＰＯＲＴ＿ＦＥＡＴＵＲＥと呼ばれるリクエストを送信し、デバイスのリセットを要求する。このリセットの要求は、Ｄ−信号線２０３とＤ＋信号線２０４の電圧を共に１０ミリ秒間Ｌｏｗ状態にすることで行われる。このリセット中に、ＵＳＢホストＩ／Ｆ１０８はＣｈｉｒｐ  ＪとＣｈｉｒｐ  Ｋと呼ばれる特殊な信号を送信することで、ＵＳＢデバイス２０６がＨｉｇｈ  Ｓｐｅｅｄをサポートしているかを調べる。
【００３４】
ＵＳＢデバイス２０６がリセット状態から抜け出すと、Ｓ４０３で、ＣＰＵ１０１は、ＧＥＴ＿ＤＥＳＣＲＩＰＴＯＲリクエストを送信し、ＵＳＢデバイス２０６に関する情報を取得する。ここで取得する情報は、ＵＳＢデバイス２０６がサポートする最大パケット長の情報のみである。
【００３５】
次に、Ｓ４０４で、ＣＰＵ１０１は、ＵＳＢデバイス２０６にＳＥＴ＿ＡＤＤＲＥＳＳリクエストを送信する。ＳＥＴ＿ＡＤＤＲＥＳＳリクエストを受け取ったＵＳＢデバイス２０６は、ＵＳＢホストＩ／Ｆ１０８に対して肯定応答を行う。Ｓ４０５で、ＣＰＵ１０１は、この肯定応答が返信されたか否かでＳＥＴ＿ＡＤＤＲＥＳＳの成功を判定する。成功した場合はＳ４０６に進む。一方、ＵＳＢデバイス２０６から肯定応答が送られて来なかった場合は、エニュメレーション処理が失敗したと判定し、エニュメレーション処理を終了する。Ｓ４０５でエニュメレーション処理が失敗したと判定されると、図３のＳ３０３とＳ３０７でエニュメレーション処理が失敗したと判定される。
【００３６】
肯定応答を受信すると、Ｓ４０６で、ＣＰＵ１０１は、ＵＳＢデバイス２０６にドライバを割り当てる。最後に、Ｓ４０７で、ＣＰＵ１０１は、ＳＥＴ＿ＣＯＮＦＩＧＵＲＡＴＩＯＮリクエストを送信し、デバイスを使用するためのコンフィギュレーション処理を実行し、処理を終了する。
【００３７】
以上説明したように、本実施形態に係る情報処理装置は、ＳＥＴ＿ＡＤＤＲＥＳＳに対してデバイスが肯定応答を返したか否かでエニュメレーション処理の失敗を簡易に検知することができる。エニュメレーション処理の失敗を検知した後は、上記第１の実施形態と同様に、ＣＰＵ１０１がＣＰＬＤ１０９に含まれるＧＰＩＯのレジスタを操作することで、自動的にＶｂｕｓの電力をＯＦＦ／ＯＮして再度エニュメレーション処理を行う。これにより、確実にデバイスを認識させることができる。
【００３８】
＜その他の実施形態＞
本発明は、上述の実施形態の１以上の機能を実現するプログラムを、ネットワーク又は記憶媒体を介してシステム又は装置に供給し、そのシステム又は装置のコンピュータにおける１つ以上のプロセッサーがプログラムを読出し実行する処理でも実現可能である。また、１以上の機能を実現する回路（例えば、ＡＳＩＣ）によっても実現可能である。
【符号の説明】
【００３９】
１００：画像形成装置、１０１：ＣＰＵ、１０２：システムバス、１０３：ＨＤＤ、１０４：ＲＡＭ、１０５：ネットワークコントローラ、１０６：ネットワークコントローラＩ／Ｆ、１０７：ＵＳＢホストコントローラ、１０８：ＵＳＢホストＩ／Ｆ、１０９：ＣＰＬＤ、１１０：ディスプレイコントローラ、１１１：ディスプレイ、１１２：入力部コントローラ、１１３：入力部、１１４：ＲＴＣ、１１５：不揮発メモリ、１１６：スキャナＩ／Ｆ、１１７：スキャナ、１１８：プリンタＩ／Ｆ、１１９：プリンタ、２０１：ＡＮＤ回路、２０２：Ｖｂｕｓ、２０３：Ｄ−、２０４：Ｄ＋、２０６：ＵＳＢデバイス、２０７：ＵＳＢコネクタ部
【図１】
2018116648.tif 000003
【図２】
2018116648.tif 000004
【図３】
2018116648.tif 000005
【図４】
2018116648.tif 000006
【図５】
2018116648.tif 000007