(57)【要約】【課題】  情報処理装置は、デバイスがホストから出力されるリセット信号に伴う割り込み信号を検知できない状態にある場合に、ユーザによるデバイスの取り外しをせずともＵＳＢデバイスの取り付けに伴う処理を再度行うことを目的とする。【解決手段】  本実施形態に記載の情報処理装置は、デバイスコントローラと制御手段と、を有し、前記制御手段が、前記デバイスコントローラが前記ホストに出力する信号を第１の状態から第２の状態に変化させ、前記ホストが前記第２の状態の検知した後に出力した信号に基づいて入力される前記第２の割り込み信号に基づき、前記デバイスコントローラと前記ホストの間の通信速度設定を行う情報処理装置であり、前記第２の割り込み信号が入力されずに経過した時間に応じて、前記信号線を前記第２の状態から前記第１の状態に変化させることを特徴とする。【選択図】  図５
2020166752.tif 000002
【特許請求の範囲】
【請求項１】
ホストとの通信に用いられるデバイスコントローラと、
前記デバイスコントローラを制御する制御手段と、を有し、
前記デバイスコントローラは、前記ホストからの所定の電圧の信号が供給されたことに基づき、前記制御手段に第１の割り込み信号を入力し、
前記制御手段は、前記第１の割り込み信号の入力に基づき、前記デバイスコントローラの信号線の出力を第１の状態から第２の状態に変化させ、
前記デバイスコントローラは、前記ホストが前記信号線の出力が前記第２の状態であることを検知して出力した信号に基づいて、前記制御手段に第２の割り込み信号を入力し、
前記制御手段は、前記第２の割り込み信号が入力された後に、前記デバイスコントローラと前記ホストの間の通信速度設定を行う情報処理装置において、
前記制御手段は、前記第２の割り込み信号が入力されずに経過した時間に応じて、前記デバイスコントローラの前記信号線の出力を前記第２の状態から前記第１の状態に変化させることを特徴とする情報処理装置。
【請求項２】
前記デバイスコントローラは複数の信号線を有し、前記複数の信号線を差動動作させることにより前記ホストと通信し、
前記第１の状態において、前記複数の信号線のうち一つの信号線はＬｏｗを出力し、
前記第２の状態において、前記複数の信号線のうち前記一つの信号線はＨｉｇｈを出力することを特徴とする請求項１に記載の情報処理装置。
【請求項３】
前記第１の状態において、前記複数の信号線のうち他の信号線はＬｏｗを出力し、
前記第２の状態において、前記複数の信号線のうち前記他の信号線はＬｏｗを出力することを特徴とする請求項２に記載の情報処理装置。
【請求項４】
前記デバイスコントローラは、前記制御手段から出力されたリセット指示に従って、前記デバイスコントローラの前記信号線の状態を前記第２の状態から前記第１の状態に変化させるリセット手段を有し、
前記制御手段は、前記第２の割り込み信号が入力されずに経過した時間に応じて、前記リセット手段への前記リセット指示を出力することを特徴とする請求項１乃至３のいずれか一項に記載の情報処理装置。
【請求項５】
前記制御手段は、前記信号線の出力を第２の状態から前記第１の状態に変化させた後、前記第１の割り込み信号が入力されることなく、前記信号線の出力を前記第１の状態から前記第２の状態に変化させることを特徴とする請求項１乃至４のいずれか一項に記載の情報処理装置。
【請求項６】
前記デバイスコントローラは、前記ホストと通信するための設定値を記憶し、
前記制御手段は、前記信号線の出力を前記第２の状態から前記第１の状態に変化させ、かつ、前記デバイスコントローラに記憶された前記設定値をクリアさせることを特徴とする請求項１乃至５のいずれか一項に記載の情報処理装置。
【請求項７】
原稿上の画像を読み取り、画像データを生成する読取手段をさらに有し、
前記デバイスコントローラは、前記読取手段により生成された画像データを前記ホストに送信することを特徴とする請求項１乃至６のいずれか一項に記載の情報処理装置。
【請求項８】
用紙に画像を形成する画像形成手段をさらに有し、
前記画像形成手段は、前記ホストから送信された画像データに基づき前記用紙に画像を形成することを特徴とする請求項１乃至７のいずれか一項に記載の情報処理装置。
【請求項９】
前記ホストと前記デバイスコントローラはＵＳＢ規格に基づき通信することを特徴とする請求項１乃至８のいずれか一項に記載の情報処理装置。
【請求項１０】
前記通信速度設定は、チャ―プハンドシェイクによる通信速度の設定であることを特徴とする請求項１乃至９のいずれか一項に記載の情報処理装置。
【請求項１１】
前記制御手段は、前記信号線の出力を前記第１の状態から前記第２の状態に変えてから前記第２の割り込み信号が入力されずに経過した時間に応じて、前記デバイスコントローラの前記信号線の出力を前記第２の状態から前記第１の状態に変化させることを特徴とする請求項１乃至１０のいずれか一項に記載の情報処理装置。
【請求項１２】
前記制御手段は、前記第１の割り込み信号を検知してから前記第２の割り込み信号が入力されずに経過した時間に応じて、前記デバイスコントローラの前記信号線の出力を前記第２の状態から前記第１の状態に変化させることを特徴とする請求項１乃至１０のいずれか一項に記載の情報処理装置。
【請求項１３】
前記デバイスコントローラは、
前記ホストからの電気信号を受信し、当該電気信号をデジタルデータに変換するＰｈｙと、
前記コントローラからの信号を受信し、前記Ｐｈｙを制御する制御部と、
前記ホストと通信するための設定値を記憶する記憶部と、
を有し、
前記リセット手段は、前記Ｐｈｙと前記制御部と前記記憶部の少なくとも一つをリセットすることを特徴とする請求項４に記載の情報処理装置。
【請求項１４】
前記制御手段は、前記第２の信号を受信していない経過時間に応じて、前記リセット手段に前記Ｐｈｙ、前記制御部、前記記憶部の少なくとも一つをリセットさせることを特徴とする請求項１３に記載の情報処理装置。
【請求項１５】
前記記憶部には、前記デバイスコントローラが前記ホストと通信するために必要な設定が記憶されることを特徴とする請求項１３または１４に記載の情報処理装置。
【請求項１６】
ホストとの通信に用いられるデバイスコントローラと、
前記デバイスコントローラを制御する制御手段と、を有し、
前記ホストからの電力供給に基づき、前記デバイスコントローラが前記制御手段に第１の割り込み信号を入力する第１の入力工程と、
前記第１の割り込み信号の入力に基づき、前記制御手段が前記デバイスコントローラの信号線の出力を第１の状態から第２の状態に変化させる第１の制御工程と、
前記第１の制御工程における制御に基づき、前記信号線を前記第１の状態から前記第２の状態にする第２の制御工程と、
前記ホストが前記第２の状態を検知した後に、前記デバイスコントローラが出力した信号に基づいて、前記制御手段に第２の割り込み信号を入力する第２の入力工程と、
前記制御手段は、前記第２の割り込み信号が入力されると、前記デバイスコントローラと前記ホストの間の通信速度設定を行う設定工程と、を有する情報処理装置の制御方法において、
前記第２の割り込み信号が入力されずに経過した時間に応じて、前記制御手段が前記デバイスコントローラの前記信号線の出力を前記第２の状態から前記第１の状態に変化させる第３の制御工程を有することを特徴とする情報処理装置の制御方法。
【請求項１７】
請求項１６に記載の情報処理装置の制御方法をコンピュータに実行させるためのコンピュータプログラム。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、情報処理装置と情報処理装置の制御方法、ならびにプログラムに関するものである。
【背景技術】
【０００２】
Ｕｎｉｖｅｒｓａｌ  Ｓｅｒｉａｌ  Ｂｕｓ（以下  ＵＳＢ）のＩ／Ｆ（インターフェース）が搭載されているＵＳＢホストでは、当該Ｉ／Ｆを介してＵＳＢストレージや、ＵＳＢカードリーダ、ＵＳＢキーボード等をＵＳＢホストに接続することができる。ＵＳＢホストに接続されたＵＳＢデバイスはＵＳＢホストにより制御される。
【０００３】
ＵＳＢデバイスには、ＵＳＢホストと通信するためのデバイスコントローラが備えられている。ＵＳＢデバイスがＵＳＢホストと接続されると、ＵＳＢホストはＵＳＢデバイスコントローラと通信経路の確立を行う。ＵＳＢデバイスとＵＳＢホスト間での通信経路の確立が完了すると、ＵＳＢホストはＵＳＢデバイスを制御することが出来るようになる。
【０００４】
ＵＳＢホストとＵＳＢデバイスの間で行われる通信経路の確立処理においては、ＵＳＢホストからの信号を受信したＵＢＳデバイスコントローラがＵＳＢデバイスのＣＰＵに適宜割り込み信号を入力する。割り込み信号が入力されたＣＰＵはＵＳＢデバイスコントローラを制御し、ＵＳＢホストとＵＳＢデバイスコントローラの通信確立に必要な処理を実行する。
【０００５】
特許文献１では、ＵＳＢデバイスがＵＳＢホストのＵＳＢ  Ｉ／Ｆに取り付けられ、ＵＳＢホストからバスリセット信号を受け取った後、一定時間経過してもＵＳＢデバイスのステートに変化が無ければ再接続を実行する技術が示されている。
【先行技術文献】
【特許文献】
【０００６】
【特許文献１】特開２００８−２０４００５号公報
【発明の概要】
【発明が解決しようとする課題】
【０００７】
ＵＳＢデバイスをＵＳＢホストと接続した際に電気的なノイズが発生すると、ＵＳＢデバイスコントローラがそのノイズのせいで正常に動作しなくなってしまう場合がある。
【０００８】
上記のケースでは、ＵＳＢホストがバスリセット信号を送信してくる前にＵＳＢデバイスコントローラが正常に動作しなくなる。そのため、ＵＳＢホストがＵＳＢデバイスに対してリセット信号を送信しても、ＵＳＢデバイスはリセット信号を認識せず、ＣＰＵに対して必要な割り込み信号を出力しない。バスリセット信号の受信に伴う割り込み信号がＣＰＵに入力されないため、ＣＰＵはＵＳＢデバイスコントローラとＵＳＢデバイス間の通信確立処理を始めるための処理をしない。このような場合に再度、通信確立処理を実行するためにはユーザが、一度ＵＳＢデバイスをＵＳＢホストから取り外し、再度取り付けなくてはならない。
【０００９】
本願に記載の情報処理装置は、デバイスがホストから出力されるリセット信号を検知できない状態にある場合に、ユーザによるデバイスの取り外しをせずとも当該デバイスの取り付けに伴う処理を再度行うことを目的とする。
【課題を解決するための手段】
【００１０】
本実施形態に記載の情報処理装置は、ホストとの通信に用いられるデバイスコントローラと、前記デバイスコントローラを制御する制御手段と、を有し、前記デバイスコントローラは、前記ホストからの電力供給に基づき、前記制御手段に第１の割り込み信号を入力し、前記制御手段は、前記第１の割り込み信号の入力に基づき、前記デバイスコントローラの信号線の出力を第１の状態から第２の状態に変化させ、前記デバイスコントローラは、前記ホストが前記第２の状態の検知した後に出力した信号に基づいて、前記制御手段に第２の割り込み信号を入力し、前記制御手段は、前記第２の割り込み信号が入力された後に、前記デバイスコントローラと前記ホストの間の通信速度設定を行う情報処理装置において、前記制御手段は、前記第２の割り込み信号が入力されずに経過した時間に応じて、前記デバイスコントローラの前記信号線の出力を前記第２の状態から前記第１の状態に変化させることを特徴とする。
【発明の効果】
【００１１】
本願に記載の情報処理装置は、ＵＳＢデバイスがＵＳＢホストから出力されるリセット信号に伴う割り込み信号を検知できない状態にある場合に、ユーザによるデバイスの取り外しをせずともＵＳＢデバイスの取り付けに伴う処理を再度行うことができる。
【図面の簡単な説明】
【００１２】
【図１】本実施形態における、情報処理装置１のハードウェア構成の一例を示す図である。
【図２】本実施形態における、ＵＳＢデバイスコントローラの詳細の一例を示す図である。
【図３】本実施形態における、ＵＳＢホストに情報処理装置１を接続した際の接続処理に関するシーケンス図である。
【図４】本実施形態において、ＵＳＢホストに情報処理装置１を接続した際にＵＳＢデバイスドライバの初期化処理が必要となる場合のシーケンス図である。
【図５】本実施形態における、情報処理装置１が実施する処理を示すフローチャートの一例である。
【発明を実施するための形態】
【００１３】
以下、本発明を実施するための最良の形態について図面を用いて説明する。なお、以下の実施形態は特許請求の範囲に係る発明を限定するものでなく、また実施形態で説明されている特徴の組み合わせのすべてが発明の解決手段に必須のものとは限らない。
【００１４】
図１は、情報処理装置１のハードウェア構成図である。本図を用いて情報処理装置１の構成を説明する。
【００１５】
中央演算処理装置（以下、ＣＰＵ）１０１は、情報処理装置１を動作されるためのソフトウェアを動作させる制御部である。システムバス１０２は、ＣＰＵ１０１が他のユニットにアクセスするため及び、他のユニット同士がアクセスするためのデータパスである。ｅＭＭＣ（ｅｍｂｅｄｄｅｄ  Ｍｕｌｔｉ  Ｍｅｄｉａ  Ｃａｒｄ）１０３は、本情報処理装置１のソフトウェアおよび、本情報処理装置１が動作するために必要なデータベース、一時保存ファイルが格納される記憶領域である。図１では、ｅＭＭＣと記載しているが、ＨＤＤやＳＳＤといった他の大容量不揮発メモリでも構わない。ＲＡＭ（Ｒａｎｄｏｍ  Ａｃｃｅｓｓ  Ｍｅｍｏｒｙ）１０４は、情報処理装置１のプログラムが展開され、プログラム動作時の変数や各ユニットからＤｉｒｅｃｔ  Ｍｅｍｏｒｙ  Ａｃｃｅｓｓ（ＤＭＡ）で転送されるデータの記憶領域である。ネットワークＩ／Ｆ１０６は、本情報処理装置１とネットワーク上の他の機器と通信を行うためのインタフェースである。ネットワークコントローラ１０５は、ＣＰＵ１０１の制御に基づき、ネットワークＩ／Ｆ１０６を制御するコントローラである。
【００１６】
ＵＳＢホストＩ／Ｆ１０８は情報処理装置１にＵＳＢデバイスを接続するためのインタフェースである。ＵＳＢホストコントローラ１０７は、ＣＰＵ１０１により制御され、ＵＳＢホストＩ／Ｆ１０８を介した情報処理装置１とＵＳＢデバイスの通信を制御するコントローラである。図１では、ＵＳＢホストＩ／Ｆ１０８は１つのみの記載であるが、実際には複数存在あってもよい。
【００１７】
ＵＳＢデバイスＩ／Ｆ１１０は、情報処理装置１がＵＳＢデバイスとしてＵＳＢホストとなるデバイスに接続するためのインタフェースである。ＵＳＢデバイスコントローラ１０９とＵＳＢホストはＶＢＵＳ線、ＧＮＤ線、Ｄ＋線、Ｄ−線で接続される。ＶＢＵＳ線はＵＳＢホストが情報処理装置に電力を供給するための線である。ＧＮＤ線は接地される線である。Ｄ＋線、Ｄ−線はデータ転送に用いられる信号線であり、ＵＳＢ規格においては、この２本の線を差動動作させることでデータ転送をする。ＵＳＢデバイスコントローラ１０９は、ＣＰＵ１０１の制御に基づき、ＵＳＢデバイスＩ／Ｆ１１０とＵＳＢホスト間の通信を制御する。ＵＳＢホストとＵＳＢデバイスコントローラ１０９は複数の信号線を差動動作させることでデータ転送を行う。本実施形態においては、外部のＰＣ等の装置をＵＳＢホストとし、情報処理装置１がＵＳＢデバイスとして動作する場合を例に説明する。
【００１８】
ディスプレイ１１２は、情報処理装置１の動作状況をユーザ等が確認できるように表示する表示部であり、ディスプレイコントローラ１１１は、ディスプレイ１１２への表示制御を行う。入力部１１４はキーボードやマウス、１０キー、カーソルキー、タッチパネルや、操作部キーボード等、情報処理装置１へのユーザからの指示を受け付けるハードウェアである。入力部コントローラ１１３はＣＰＵ１０１からの制御に基づき、入力部１１４を制御する。入力部１１４がタッチパネルである場合、タッチパネルがディスプレイ１１２の表面に重ねて設置される。
【００１９】
リアルタイムクロック（以下、ＲＴＣ）１１５は、情報処理装置１の時計機能、アラーム機能、タイマ機能等に用いられる時刻計時を行うハードウェアである。
【００２０】
スキャナ１１７は、原稿台に載置された原稿上の画像を読み取り画像データを生成する読取部である。スキャナ１１７は、スキャナＩ／Ｆ１１６を介してシステムバス１０２と接続される。プリンタ１１９は用紙に画像を形成する画像形成部である。プリンタ１１９はプリンタＩ／Ｆ１１８を介してシステムバス１０２に接続される。情報処理装置１がＵＳＢデバイスとして動作する場合、ＵＳＢホストから入力された画像データに基づきプリンタ１１９が画像を印刷したり、スキャナ１１７により生成された画像データをＵＳＢホストに出力したりする。
【００２１】
また、ＳＡＴＡ  Ｉ／Ｆ１２０を介して接続されるＨＤＤ１２１は画像データ等の容量が大きいデータを保存するために使用される。
【００２２】
図２は、情報処理装置１に搭載されているＵＳＢデバイスＩ／Ｆ１１０とＵＳＢデバイスコントローラ１０９の詳細を示す図である。
【００２３】
制御部２０１は、ＣＰＵ１０１がシステムバス１０２を介して制御する領域である。ＰＨＹ部２０２はＵＳＢホスト２０５からＵＳＢデバイスＩ／Ｆ１１０を介して入力される電気信号を受信し、デジタルデータに変換して制御部２０１にわたす。リセットモジュール２０３は、ＵＳＢデバイスコントローラ１０９の制御部２０１、ＰＨＹ部２０２、設定レジスタ２０７をリセットするためのリセット部である。設定レジスタ２０７は、情報処理装置１がＵＳＢデバイスとして動作し、ＵＳＢホストと通信するために必要な設定情報が記憶する記憶部である。設定レジスタ２０７には、Ｅｎｄ  Ｐｏｉｎｔに関する設定値と、Ｐｈｙ振幅調整、バースト長設定、ＤＭＡ設定、通信可能速度設定等が記憶される。Ｅｎｄ  Ｐｏｉｎｔとしての設定値とは、例えば当該Ｅｎｄ  Ｐｏｉｎｔがデータの入力に用いられるのか、出力に用いられるのかといったＥｎｄ  Ｐｏｉｎｔの種類を表す値や、１度の転送で当該Ｅｎｄ  Ｐｏｉｎｔに入力することのできるデータサイズ等である。
【００２４】
ＣＰＵ１０１上で動作するＵＳＢデバイスドライバがＵＳＢホスト２０５との通信や、ＵＳＢデバイスコントローラ１０９に対する設定、制御部２０１に対して書き込みや読み込み命令をすることで処理が実行される。
【００２５】
ＵＳＢデバイスコントローラ１０９をリセットする場合、ＣＰＵ１０１がシステムバス１０２を介してコントロールレジスタ２０４が持つリセット命令を示すビットへ書き込みを行う。コントロールレジスタ２０４は、ＵＳＢデバイスコントローラ１０９の外部に存在し、ＵＳＢデバイスコントローラ１０９にリセット信号を送信して、ＵＳＢデバイスコントローラ１０９のリセット処理の開始を指示する。コントロールレジスタ２０４は、リセット命令を示すビットへの書き込みがなされたことに従って、リセットモジュール２０３に対してリセット信号を出力する。リセットモジュール２０３は、コントロールレジスタ２０４からのリセット信号に基づいて、ＵＳＢデバイスコントローラ１０９全体のリセットを実行する。ＵＳＢデバイスコントローラ１０９全体のリセットとは、設定レジスタ２０７の設定値をクリアしたり、制御部２０１のバッファのデータをクリアしたりする処理である。本実施例においては、リセットモジュール２０３を有することにより、ＵＳＢデバイスコントローラ１０９が正常に動作しなくなった場合でも、ＵＳＢデバイスコントローラ１０９の制御部２０１、ＰＨＹ２０２、設定レジスタ２０７をリセットすることができる。
【００２６】
ＵＳＢデバイスコントローラ１０９は割り込みライン２０６を通してＣＰＵ１０１に対して割り込み信号を送信することができる。
【００２７】
図３は情報処理装置１がＵＳＢデバイスＩ／Ｆ１１０を介してＵＳＢホスト２０５に接続された時の通信経路の設定処理を示すシーケンス図である。ＵＳＢデバイスドライバはＣＰＵ１０１上で実行されている。ＵＳＢホスト２０５と情報処理装置１はＵＳＢ規格に則って接続処理を実行する。
【００２８】
ＵＳＢケーブルが接続されると、ＵＳＢデバイスコントローラ１０９のＶＢＵＳ線とＵＳＢホスト２０５のＶＢＵＳ線が結線される（Ｓ３０１）。ＵＳＢデバイスコントローラ１０９は、ＶＢＵＳ線への電力供給を検知するとＣＰＵ１０１に対してＶＢＵＳ線への電力供給の検知に伴う割り込み信号を出力する（Ｓ３０２）。ＵＳＢデバイスコントローラ１０９は、ＣＰＵ１０１に通知する割り込み信号の種類を示すためのレジスタを有している。割り込み信号の種類とは、たとえば、ＶＢＵＳ線への電力供給の検知に伴う割り込みや、ＵＳＢホスト２０５からのリセット信号の検知に伴う割り込み、通信速度が決定されたことに伴う割り込み等である。ＵＳＢデバイスコントローラ１０９は、割り込み信号を通知する前に通知する割り込み信号に対応する上記のレジスタを設定する。割り込み信号が通知されたＣＰＵ１０１は、上記のレジスタを参照することで割り込み信号が通知された契機を検知する。
【００２９】
ＣＰＵ１０１は、ＶＢＵＳ検知に伴う割り込み信号が入力されたことに基づいて、ＵＳＢデバイスコントローラ１０９を制御して差動信号線の一方であるＤ＋線をＰｕｌｌ  Ｕｐさせる（Ｓ３０３）。Ｓ３０３の処理により、Ｄ＋線はＨｉｇｈを出力し、Ｄ−線がＬｏｗを出力する状態となる。
【００３０】
ＵＳＢデバイスのＤ＋線，Ｄ−線とＵＳＢホストのＤ＋線，Ｄ−線が結線されると、ＵＳＢホスト２０５のＤ＋線がＰｕｌｌ  Ｕｐされる（Ｓ３０４）。
【００３１】
ＵＳＢホスト２０５はＤ＋線の電圧がＨｉｇｈになっていることを検知する（Ｓ３０５）。ＵＳＢホスト２０５はＤ＋線の電圧がＨｉｇｈになったことを検知することで、ＵＳＢデバイスが接続されたことを認識する。ＵＳＢホスト２０５はＤ＋線がＨｉｇｈになったことを検知した後、ＵＳＢデバイスに対してバスリセット信号を送信する（Ｓ３０６）。Ｓ３０６において、ＵＳＢホスト２０５はＤ＋線、Ｄ−線の出力をともにＬｏｗにする。これにより、Ｄ＋線、Ｄ−線の出力がともにＬｏｗの状態となる。
【００３２】
ＵＳＢデバイスコントローラ１０９はバスリセット信号を受信し、ＣＰＵ１０１に対してバスリセット受信に伴う割り込み信号を出力する（Ｓ３０７）。Ｓ３０７において、ＵＳＢデバイスコントローラ１０９は、Ｄ＋線、Ｄ−線がともにＬｏｗになったことを検知し、ＣＰＵ１０１に割り込み信号を出力する。
【００３３】
ＣＰＵ１０１は、バスリセット受信に伴う割り込み信号を受信し、Ｅｎｄ  Ｐｏｉｎｔ初期化処理を実行する（Ｓ３０８）。Ｅｎｄ  Ｐｏｉｎｔ初期化処理とは、ＵＳＢデバイスコントローラ１０９の制御部２０１が持つバッファをクリアする処理や設定レジスタ２０７時内のＥｎｄ  Ｐｏｉｎｔに関する設定値をクリアする処理である。
【００３４】
Ｅｎｄ  Ｐｏｉｎｔの初期化処理後、ＵＳＢホスト２０５とＵＳＢデバイスコントローラ１０９は通信速度を決めるためのスピードエニュメレーションを実行する（Ｓ３０９）。Ｓ３０９における、スピードエニュミレーションはチャ―プ信号を用いたチャ―プハンドシェイクにより行われる処理であり、ＵＳＢホスト２０５と情報処理装置１間での通信速度の設定を行うものである。
【００３５】
スピードエニュメレーションが完了するとＵＳＢデバイスコントローラ１０９はＣＰＵ１０１に対して速度確立に伴う割り込み信号を出力する（Ｓ３１０）。割り込みを受けたＣＰＵ１０１は次のホストからの通信に備えてＥｎｄ  Ｐｏｉｎｔ設定を行う（Ｓ３１１）。Ｅｎｄ  Ｐｏｉｎｔ設定とは、ＣＰＵ１０１はそれぞれのＥｎｄ  ＰｏｉｎｔのタイプやＭＡＸパケットサイズ、バッファサイズの設定等を設定レジスタ２０７に設定する処理である。
【００３６】
ＵＳＢデバイスコントローラ１０９は、Ｅｎｄ  Ｐｏｉｎｔの設定後、ＵＳＢホスト２０５にバスリセットが完了を通知する（Ｓ３１２）。Ｓ３１２の後、ＵＳＢデバイスコントローラ１０９を介してＵＳＢホストとＣＰＵ１０１の間でＣｏｎｆｉｇｕｒａｔｉｏｎ通信が実行される（Ｓ３１３）。Ｓ３１３に記載のＣｏｎｆｉｇｕｒａｔｉｏｎ通信が完了した後、ＵＳＢホスト２０５は信号線Ｄ＋線、Ｄ−線を差動動作させ、データ転送を開始する。
【００３７】
図３に記載のシーケンスにおいて、ＵＳＢホストとＵＳＢデバイスの接続時に電気的なノイズが発生すると、ＵＳＢデバイスコントローラ１０９がＳ３０６において出力されたバスリセット信号を検知できなくなってしまう。その結果、ＵＳＢデバイスコントローラ１０９がバスリセット信号の受信に伴う割り込みをＣＰＵ１０１に対して行わず、ＵＳＢホストとＵＳＢデバイス間で通信速度を設定するための処理が開始されない。従来、ＵＳＢデバイスコントローラがＵＳＢデバイスドライバに対して、バスリセット受信に伴う割り込み信号を出力しない場合、ユーザがＵＳＢデバイスを一度取り外し、再度取り付けＵＳＢホストとＵＳＢデバイスの接続処理を始めからやり直す必要があった。
【００３８】
そこで、本実施形態では、ＵＳＢデバイスがＤ＋線をＰｕｌｌ  Ｕｐしてから所定時間が経過してもバスリセット受信に伴う割り込み信号が検知されない場合に、ＵＳＢデバイスドライバをリセットしてＵＳＢホストとＵＳＢデバイス間の接続処理を再度行う。これにより、ユーザがＵＳＢデバイスの再度取り付けを行わなくてもＵＳＢホストとＵＳＢデバイス間での接続処理を再実行することができるようになる。
【００３９】
ここで、図４のシーケンス図をもちいて、ＵＳＢデバイスコントローラ１０９がバスリセット信号に伴う割り込み信号をＣＰＵ１０１に出力しなかった場合のシーケンスを説明する。図３と同様の処理については同様の符号を付与し、図３と異なる点のみを説明する。
【００４０】
ＣＰＵ１０１は、ＶＢＵＳ接続に伴う割り込みを検知してから所定時間が経過したことによるタイムアウトを受信する（Ｓ５００）。ＶＢＵＳ接続に伴う割り込みを検知してからの経過時間についてはＲＴＣ１１５を用いて計測する。また、ここではＣＰＵ１０１がＶＢＵＳ接続に伴う割り込みを検知してからの経過時間を例に説明するが、ＣＰＵ１０１がＤ＋線をＰｕｌｌ  Ｕｐしてからの経過時間を計測するとしてもよい。
【００４１】
ＣＰＵ１０１は、タイムアウト通知に基づき、ＵＳＢデバイスコントローラ１０９のソフトウェアリセットを実行する（Ｓ５０１）。ＣＰＵ１０１はコントロールレジスタ２０４を書き換えＵＳＢデバイスコントローラ１０９のソフトウェアリセット処理を開始させる。ソフトウェアリセット処理において、Ｐｕｌｌ  ＵｐされていたＤ＋線がＰｕｌｌ  Ｄｏｗｎされる。これにより、Ｄ＋線、Ｄ−線の出力がともにＬｏｗの状態となる。さらに、Ｓ５０１のソフトウェアリセット処理において、設定レジスタ２０７に記憶された設定値がクリアされる。ここでは、設定レジスタ２０７に記憶されたＥｎｄ  Ｐｏｉｎｔに関する設定値だけでなく、Ｐｈｙ振幅調整、バースト長設定、ＤＭＡ設定、通信可能速度設定等をクリアする。
【００４２】
ＵＳＢホスト２０５はＤ＋線がＰｕｌｌ  Ｄｏｗｎされたことを検知し、ＵＳＢデバイスの取り外されたとして、ＵＳＢデバイスの切断を認識する（Ｓ５０２）。
【００４３】
ＣＰＵ１０１はＳ５０１でＵＳＢデバイスコントローラ１０９にソフトウェアリセットを指示してから所定時間が経過したことに基づき、ＵＳＢデバイスコントローラ１０９の初期化処理を実行する（Ｓ５０３）。初期化処理において、ＣＰＵ１０１は設定レジスタに対して、Ｐｈｙ振幅調整、バースト長設定、ＤＭＡ設定、通信可能速度設定等の設定を書き込む。
【００４４】
ＣＰＵ１０１はＵＳＢデバイスコントローラの初期設定が完了したことに基づき、Ｄ＋線のＰｕｌｌ  Ｕｐを指示する（Ｓ５１１）。ＵＳＢデバイスコントローラ１０９がＤ＋線のＰｕｌｌ  Ｕｐを検知して以降の処理は、図３と同様である。
【００４５】
上記のように、本実施形態では、ＵＳＢデバイスコントローラがＵＳＢホストからのバスリセット信号の受信に基づく、ＣＰＵ１０１へのリセット信号の出力を行わなかった場合に、ＵＳＢデバイスコントローラを初期化し、接続処理を再度実行する。このようにすることで、ＵＳＢホストとＵＳＢデバイスが通信を開始するための処理を開始しない場合であっても、自動で上記処理の再実行に必要な処理を行うことができる。
【００４６】
図５は、本実施形態における情報処理装置１の実行する処理を示すフローチャートである。図５に記載の処理を実行するためのプログラムはｅＭＭＣ１０３等に記憶されており、ＣＰＵ１０１が当該プログラムをＲＡＭ１０４に展開し実行することで処理が実現される。なお、図５に示すフローチャートに記載の処理は、情報処理装置１の電源がオンされたときに実行される。
【００４７】
ＣＰＵ１０１は、コントロールレジスタ２０４を設定し、ＵＳＢデバイスコントローラ１０９のソフトウェアリセットを実行する（Ｓ４００）。ＣＰＵ１０１はコントロールレジスタ２０４の値を書き変える。これにより、コントロールレジスタ２０４からリセットモジュール２０３に信号が入力され、ＵＳＢデバイスコントローラ１０９のリセット処理が開始される。
【００４８】
ＣＰＵ１０１は、コントロールレジスタ２０４を設定し、ＵＳＢデバイスコントローラ１０９のリセットを指示した後、所定時間待機する（Ｓ４０１）。Ｓ４０１において所定時間とは、リセットモジュール２０３がＵＳＢデバイスコントローラ１０９のリセット処理を完了するまでに必要な時間よりも長い時間であることが望ましい。
【００４９】
ＣＰＵ１０１はＵＳＢデバイスコントローラ１０９のリセット指示後、所定時間が経過した後に、設定レジスタ２０７を設定する（Ｓ４０２）。Ｓ４０２において、ＣＰＵ１０１は設定レジスタ２０７にＰｈｙ振幅調整、バースト長設定、ＤＭＡ設定、通信可能速度等、ＵＳＢデバイスコントローラ１０９がＵＳＢホスト２０５と通信するために必要な値を設定する。
【００５０】
ＣＰＵ１０１は、ＶＢＵＳ接続による割り込みを検知したか否かを判定する（Ｓ４０３）。ＶＢＵＳ接続による割り込みとは、図３のＳ３０２に相当する割り込み信号である。ＣＰＵ１０１がＵＳＢデバイスコントローラ１０９からＶＢＵＳ接続に伴う割り込み信号を受信した場合、ＣＰＵ１０１はＳ４０４に処理を進める。
【００５１】
ＣＰＵ１０１は、ＵＳＢデバイスコントローラ１０９へＤ＋線をＰｕｌｌ  Ｕｐさせる指示を出力する（Ｓ４０４）。ＵＳＢデバイスコントローラ１０９はＣＰＵ１０１からの当該指示に基づき、Ｄ＋線の出力をＨｉｇｈにする。これにより、Ｄ＋線にはＨｉｇｈ、Ｄ−線にはＬｏｗが出力される。
【００５２】
ＣＰＵ１０１はバスリセット信号に伴う割り込み信号を受信したか否かを判定する（Ｓ４０５）。バスリセット信号に伴う割り込み信号とは、図３におけるＳ３０７に示す割り込み信号である。ＵＳＢデバイスコントローラ１０９は、Ｄ＋線、Ｄ−線がともにＬｏｗになったことを検知し、ＣＰＵ１０１にバスリセット割り込み信号を出力する。Ｓ４０５においては、ＣＰＵ１０１が当該バスリセット割り込み信号を受信したか否かを判定する。
【００５３】
Ｓ４０５において、ＣＰＵ１０１がバスリセット信号に伴う割り込み信号を検知した場合、ＣＰＵ１０１はＵＳＢデバイスコントローラ１０９のＥｎｄ  Ｐｏｉｎｔの初期化処理を実行する（Ｓ４０６）。ＵＳＢデバイスコントローラ１０９はＥｎｄ  Ｐｏｉｎｔが初期化された後、ＵＳＢホスト２０５と通信して通信速度設定を行う。
【００５４】
その後、ＣＰＵ１０１はスピードエニュメレーションの完了より通信速度が設定されたことに伴う割り込み信号を受信したか否かを判定する（Ｓ４０７）。通信速度の設定に伴う割り込みを受信した場合、ＣＰＵ１０１はＳ４０８に処理を進める。通信速度の設定に伴う割り込みを受信していない場合、ＣＰＵ１０１は再度Ｓ４０７に記載の処理を実行する。
【００５５】
通信速度設定による割り込み信号を受信した後、ＣＰＵ１０１はＵＳＢデバイスコントローラ１０９のＥｎｄ  Ｐｏｉｎｔを設定する（Ｓ４０８）。そして、ＣＰＵ１０１はＵＳＢホスト２０５とのＣｏｎｆｉｇｒａｔｉｏｎ通信を実行する（Ｓ４０９）。図５に記載の処理が完了したのち、ＵＳＢデバイスコントローラ１０９とＵＳＢホスト２０５は信号線であるＤ＋線、Ｄ−線を差動動作させ、データ転送を行う。
【００５６】
Ｓ４０５においてＵＳＢデバイスコントローラがバスリセット信号を受信したことに伴う割り込み信号を受信していない場合、ＣＰＵ１０１はＶＢＵＳ検知に伴う割り込み信号の受信から所定の時間が経過したか否かを判定する（Ｓ４１０）。ＶＢＵＳ検知に伴う割り込み信号の受信から所定の時間が経過していない場合、ＣＰＵ１０１はＳ４０５に処理を戻す。ＶＢＵＳ検知に伴う割り込み信号の受信から所定の時間が経過した場合、ＣＰＵ１０１はコントロールレジスタ２０４を設定し、ＵＳＢデバイスコントローラ１０９のリセット処理を実行する（Ｓ４１１）。ＶＢＵＳ検知に伴う割り込み信号の受信から所定時間が経過してもバスリセット信号の検知に伴う割り込み信号を受信しない場合とは、ＵＳＢデバイスコントローラ１０９がバスリセット信号の検知に伴う割り込みをＣＰＵ１０１に出力しない場合である。
【００５７】
ＣＰＵ１０１は、コントロールレジスタ２０４を設定後、所定時間待機する（Ｓ４１２）。Ｓ４１２における所定時間は、リセットモジュール２０３がＵＳＢデバイスコントローラ１０９をリセットするのにかかる時間よりも長い時間であることが望ましい。
【００５８】
ＣＰＵ１０１は、設定レジスタ２０７にＵＳＢデバイスコントローラ１０９がＵＳＢホスト２０５と通信するために必要な設定値を設定する（Ｓ４１３）。そして、ＣＰＵ１０１は処理をＳ４０４に戻し、ＵＳＢデバイスコントローラ１０９に対してＤ＋線のＰｕｌｌ  Ｕｐを指示する。以降の処理は上述した通りである。
【００５９】
上記の図４のフローチャートの特に、Ｓ４１０〜Ｓ４１３を行うことによって、ＵＳＢデバイスコントローラが接続シーケンスの初期段階で異常を発生しても、ユーザの手を煩わせることなく自動的に復旧と再接続処理を実行することができる。
【００６０】
なお、図４ではＳ４１０でバスリセット信号に伴う割り込み信号の受信が所定時間されなかった場合にＵＳＢデバイスコントローラ１０９のリセット処理を実行するとした。Ｓ４１１〜Ｓ４１３に記載の処理を所定回数実行してもＵＳＢデバイスコントローラ１０９とＵＳＢホスト２０５の通信が確立されない場合、エラーコードやエラーメッセージを表示し図４に記載の処理を終了するとしてもよい。
【００６１】
本実施形態においては、ＣＰＵ１０１がＶＢＵＳ検知による割り込み信号を受信してから所定時間が経過してもバスリセット信号の検知に伴う割り込み信号を受信しない場合、ユーザによるＵＳＢデバイスの抜き差しなしに接続処理を再実行することができる。
【００６２】
＜その他の実施形態＞
本発明は、以下の処理を実行することによっても実現される。即ち、上述した実施例の機能を実現するソフトウェア（プログラム）をネットワーク又は各種記憶媒体を介してシステム或いは装置に供給し、そのシステム又は装置のコンピュータ（又はＣＰＵやＭＰＵ等）がプログラムコードを読み出して実行する処理である。この場合、そのコンピュータプログラム、及び該コンピュータプログラムを記憶した記憶媒体は本発明を構成することになる。
【図１】
2020166752.tif 000003
【図２】
2020166752.tif 000004
【図３】
2020166752.tif 000005
【図４】
2020166752.tif 000006
【図５】
2020166752.tif 000007