(57)【要約】【課題】  情報処理装置がＵＳＢデバイスとの信号の送受信を行うことが出来ない状態であっても、ＵＳＢデバイスが取り付けられているか否かを検知することができるようにすることを目的とする。【解決手段】  本発明に記載の情報処理装置は、ＵＳＢデバイスを制御する制御手段と、前記制御手段と前記ＵＳＢデバイスを接続し、前記制御手段と前記ＵＳＢデバイスのデータのやり取りに用いられるＵＳＢケーブルと、を有する情報処理装置において、前記ＵＳＢケーブルと異なるケーブルの出力に基づいて、前記ＵＳＢデバイスが前記制御手段に取り付けられていることを検知する検知手段と、を有することを特徴とする。【選択図】  図３
2020016927.tif 000002
【特許請求の範囲】
【請求項１】
ＵＳＢデバイスを制御する制御手段と、
前記制御手段と前記ＵＳＢデバイスを接続し、前記制御手段と前記ＵＳＢデバイスのデータのやり取りに用いられるＵＳＢケーブルと、を有する情報処理装置において、
前記ＵＳＢケーブルと異なるケーブルの出力に基づいて、前記ＵＳＢデバイスが前記制御手段に取り付けられていることを検知する検知手段と、を有することを特徴とする情報処理装置。
【請求項２】
前記検知手段は、前記ケーブルの出力する電圧に基づいて、前記ＵＳＢデバイスが前記制御手段に取り付けられていることを検知することを特徴とする請求項１に記載の情報処理装置。
【請求項３】
前記検知手段は、前記ケーブルの出力する電圧が所定の閾値よりも小さいことに基づいて、前記ＵＳＢデバイスが前記制御手段に取り付けられていることを検知する請求項２に記載の情報処理装置。
【請求項４】
前記検知手段は、前記ＵＳＢケーブルと異なるケーブルが取り付けられていない状態で、前記所定の閾値よりも大きな電圧が印加されていることを特徴とする請求項３に記載の情報処理装置。
【請求項５】
前記ＵＳＢケーブルと異なるケーブルは、前記ＵＳＢデバイスのグラウンドと接続されることを特徴とする請求項１乃至４のいずれか一項に記載の情報処理装置。
【請求項６】
前記制御手段は、前記ＵＳＢケーブルの出力に基づいて、前記ＵＳＢデバイスと前記制御手段との通信を確立するための処理を開始することを特徴とする請求項１乃至５のいずれか一項に記載の情報処理装置。
【請求項７】
前記ＵＳＢケーブルを介した通信に基づいて、前記ＵＳＢデバイスとの接続が確立されたＵＳＢデバイスの情報を格納する記憶手段をさらに有し、
前記制御手段は、前記記憶手段に前記ＵＳＢデバイスの情報が格納されていることに基づいて、通信することのできる前記ＵＳＢデバイスが接続されていると判定することを特徴とする請求項６に記載の情報処理装置。
【請求項８】
前記検知手段により前記ＵＳＢデバイスの接続が検知されなかった場合、前記制御手段は通信することのできる前記ＵＳＢデバイスが接続されているか否かの判定を行わないことを特徴とする請求項６または７に記載の情報処理装置。
【請求項９】
前記検知手段により前記ＵＳＢデバイスの取り付けを検知し、前記制御手段が通信することのできる前記ＵＳＢデバイスが接続されていないと判定した場合、前記ＵＳＢデバイスが正常に動作しないことをユーザに通知する通知手段をさらに有することを特徴とする請求項６乃至８のいずれか一項に記載の情報処理装置。
【請求項１０】
前記通知手段は、前記ＵＳＢデバイスが正常に動作していないことを通知する画面を表示手段に表示させることを特徴とする請求項９に記載の情報処理装置。
【請求項１１】
前記検知手段はＧＰＩＯのレジスタの値を取得することで前記ＵＳＢデバイスが前記制御手段に取り付けられていることを検知することを特徴とする請求項１乃至１０のいずれか一項に記載の情報処理装置。
【請求項１２】
前記ＵＳＢケーブルと異なるケーブルが接続される前記ＧＰＩＯのピンは、信号が入力されるピンとして設定されたピンであることを特徴とする請求項１１に記載の情報処理装置。
【請求項１３】
前記ＵＳＢデバイスは前記情報処理装置に内蔵されるデバイスであることを特徴とする請求項１乃至１２のいずれか一項に記載の情報処理装置。
【請求項１４】
前記ＵＳＢデバイスは、前記情報処理装置が画像データを外部の装置にファクス送信するためのファクス機能を実現するためのデバイスであることを特徴とする請求項１３に記載の情報処理装置。
【請求項１５】
画像を読み取る読み取り手段と、画像を用紙に印刷する印刷手段のすくなくとも一方を有することを特徴とする請求項１乃至１４のいずれか一項に記載の情報処理装置。
【請求項１６】
前記制御手段は、前記ＵＳＢケーブルを介して、前記ＵＳＢデバイスの情報を取得するためのコマンドを出力し、前記ＵＳＢケーブルを介して、前記ＵＳＢデバイスから前記コマンドの応答を受信することを特徴とする請求項１乃至１５のいずれか一項に記載の情報処理装置。
【請求項１７】
ＵＳＢデバイスを制御する制御手段と、
前記制御手段と前記ＵＳＢデバイスを接続し、前記制御手段と前記ＵＳＢデバイスのデータのやり取りに用いられるＵＳＢケーブルと、を有する情報処理装置の制御方法であって、
前記ＵＳＢケーブルと異なるケーブルの出力に基づいて、前記ＵＳＢデバイスが前記制御手段に取り付けられていることを検知する検知工程を有することを特徴とする情報処理装置の制御方法。
【請求項１８】
請求項１７に記載の情報処理装置の制御方法をコンピュータが実現するためのコンピュータプログラム。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は情報処理装置、および、情報処理装置の制御方法とプログラムに係るものである。
【背景技術】
【０００２】
複合機等の情報処理装置に、カードリーダやファクスボード等の様々なＵＳＢデバイスを接続することで、情報処理装置の機能を拡張することができる。情報処理装置にＵＳＢデバイスを接続する際には、ＵＳＢケーブルを用いて情報処理装置とＵＳＢデバイスを接続する。
【０００３】
ＵＳＢケーブルを用いて情報処理装置にＵＳＢデバイスが接続されると、ＵＳＢケーブルを介してＵＳＢデバイスに電力が供給される。電力が供給されたＵＳＢデバイスは、データの送受信に用いられる信号線をプルアップする。情報処理装置は、ＵＳＢデバイスの信号線のプルアップを検知してＵＳＢデバイスが接続されたことを検知する。ＵＳＢデバイスの接続を検知した情報処理装置は、ＵＳＢデバイスと通信するために必要な処理を実行し、ＵＳＢデバイスとの通信を開始する。
【０００４】
特許文献１に記載の装置は、Ｄ＋またはＤ−の信号線のプルアップを検知して、ＵＳＢデバイスが接続されたことを検知する。そして、特許文献１に記載の装置は、Ｄ＋、またはＤ−のプルアップを検知し、ＵＳＢデバイスの接続を検知してから所定の時間が経過した後に、リセット信号を出力して、ＵＳＢデバイスのリセット処理を開始させる。
【先行技術文献】
【特許文献】
【０００５】
【特許文献１】特開２００９−１５１４１５号公報
【発明の概要】
【発明が解決しようとする課題】
【０００６】
情報処理装置とＵＳＢデバイスを接続するためのＵＳＢケーブルが断線したり、抜けていたりすると、情報処理装置がＵＳＢデバイスに電力を供給できなかったり、ＵＳＢデバイスによりプルアップされた信号を受信できない。そのため、上記のような状態では、ユーザがＵＳＢケーブルを用いてＵＳＢデバイスを接続しても、情報処理装置がＵＳＢデバイスの接続を検知することができない。
【０００７】
本発明は、情報処理装置がＵＳＢデバイスとの信号の送受信を行うことが出来ない状態であっても、ＵＳＢデバイスが取り付けられているか否かを検知することができるようにすることを目的とする。
【課題を解決するための手段】
【０００８】
本発明に記載の情報処理装置は、ＵＳＢデバイスを制御する制御手段と、前記制御手段と前記ＵＳＢデバイスを接続し、前記制御手段と前記ＵＳＢデバイスのデータのやり取りに用いられるＵＳＢケーブルと、を有する情報処理装置において、前記ＵＳＢケーブルと異なるケーブルの出力に基づいて、前記ＵＳＢデバイスが前記制御手段と接続されていることを検知する検知手段と、を有することを特徴とする。
【発明の効果】
【０００９】
本発明に記載の情報処理装置は、情報処理装置がＵＳＢデバイスとの信号の送受信を行うことが出来ない状態であっても、ＵＳＢデバイスが取り付けられているか否かを検知することができるようにすることができる。
【図面の簡単な説明】
【００１０】
【図１】本実施形態に記載の情報処理装置のハードウェアブロックの一例を示す模式図である。
【図２】本実施形態に記載の情報処理装置に内蔵されるＵＳＢデバイスのハードウェアブロックの一例を示す模式図である。
【図３】本実施形態における、制御部とＵＳＢデバイスとの間の配線の一例を示す模式図である。
【図４】ＵＳＢケーブルを介してＵＳＢホストコントローラとＵＳＢデバイスの間で実行される処理を示すフローチャートである。
【図５】第１の実施形態において、ＵＳＢデバイスが正常に動作していないことを検知する処理を示すフローチャートである。
【図６】本実施形態において、ＵＳＢデバイスが正常に動作していない場合にディスプレイに表示される画面の一例を示す図である。
【図７】第２の実施形態において、ＵＳＢデバイスが正常に動作していないことを検知する処理を示すフローチャートである。
【発明を実施するための形態】
【００１１】
＜第１の実施形態＞
以下、本発明を実施するための形態について図面を用いて説明する。
【００１２】
図１は、本実施例に記載の情報処理装置１００の構成を示すハードウェアブロック図である。本実施形態では、情報処理装置としてプリンタやスキャナを有する複合機を例に説明する。本実施形態における情報処理装置は複合機と異なる情報処理装置、たとえば、複写機やＰＣ等の情報処理装置であってもよい。
【００１３】
制御部１１０は、情報処理装置１００全体を制御するためのメインコントローラである。本実施形態では、制御部１１０は１つの回路基板であるとする。ＲＯＭ１０２、ＨＤＤ１１３は情報処理装置１００を制御するためのプログラムを格納するメモリである。ＣＰＵ１０１は、ＲＯＭ１０２または、ＨＤＤ１１３に格納されたプログラムを実行することでシステムバス１１６に接続される各デバイスを総括的に制御する。なお、ＨＤＤ１１３は、スキャンやプリントに用いられる画像データの一時格納領域としても使われる。
【００１４】
ＲＡＭ１０３は、ＣＰＵ１０１の主メモリ、ワークエリア等として機能する。操作部コントローラ１０８は、情報処理装置１００に備えられた操作パネル１０９、ディスプレイ１１１を制御する。操作パネル１０９は、たとえばタッチパネルで構成され、ディスプレイ１１１にタッチパネルが重ねて配置されることで、ユーザはディスプレイ１１１をタッチして操作するかのように情報処理装置１００を操作できる。ディスクコントローラ１１２は、ＨＤＤ１１３へのデータの書き込み、読み出しを制御する。
【００１５】
プリンタ１１４は、電子写真方式で実現される、紙への印字部である。プリンタ１１４はプリンタＩ／Ｆ１３０を介してシステムバス１１６に接続される。本実施形態では電子写真方式で用紙に画像を印刷するとするが、印字方式は、インクジェット方式など異なる方式であってもよい。
【００１６】
１１５はスキャナであり、紙に印刷された画像を読み込むための画像読み取り部である。スキャナ１１５はスキャナＩ／Ｆ１３１を介して、システムバス１１６に接続される。スキャナ１１５は、オプションとしてＡＤＦ（オートドキュメントフィーダ）（不図示）を有している。スキャナ１１５はＡＤＦに載置された複数枚の原稿を自動的に連続して読み込むことができる。
【００１７】
ＵＳＢホストコントローラ１１７は、システムバス１１６に接続され、ＵＳＢデバイス１１９へコマンドを出力したり、ＵＳＢデバイスから送信された信号を受信したりする。
【００１８】
ＵＳＢデバイス１１９はＵＳＢケーブル１２２を介してシステムバス１１６に接続されたデバイスである。制御部１１０に接続されるＵＳＢデバイスとは、例えばキーボードやメモリスティック、カードリーダ、またファクス機能を持ったファクスボードなどである。本実施形態では、ＵＳＢデバイス１１９としてファクスボードが接続された場合を例に説明する。ファクスボードは、情報処理装置が画像データのファクス送信、ファクス受信に使用することのできる回線を増設するためのＵＳＢデバイスである。制御部１１０にＵＳＢデバイス１１９を接続することで、情報処理装置１００の機能を拡張することができる。
【００１９】
ＵＳＢケーブル１２２は、ＵＳＢホストコントローラ１１７とＵＳＢデバイス１１９を接続するケーブルである。ＵＳＢケーブル１２２は、ＵＳＢデバイス１１９に電力を供給するための信号線（Ｖｂｕｓ）と、データを送受信するための２本の信号線（Ｄ＋、Ｄ−）、ＵＳＢデバイスをグラウンドに接地させるためのグラウンド線の４本の信号線で構成される。ＵＳＢホストコントローラ１１７とＵＳＢデバイス１１９は、ＵＳＢケーブル１２２のデータ線を介して情報の送受信を実行する。
【００２０】
ＧＰＩＯ（Ｇｅｎｅｒａｌ  Ｐｕｒｐｏｓｅ  Ｉｎｐｕｔ／Ｏｕｔｐｕｔ）１２０は汎用入出力ポートである。本実施形態では、ＧＰＩＯ１２０がＵＳＢデバイス１１９と接続されている。ＧＰＩＯ１２０は端子への入力が第１の閾値よりも低い状態から高い状態に変化したことに従って１（Ｈｉｇｈ）をレジスタに設定する。一方で、端子への入力が第２の閾値よりも高い状態から低い状態に変化したことに従ってＧＰＩＯ１２０は０（Ｌｏｗ）をレジスタに設定する。本実施系形態では、第１の閾値を３Ｖ、第２の閾値を２Ｖとして説明する。第１の閾値と第２の閾値の値は第１の閾値の値の方が大きい値であれば、上記の値に限定されない。
【００２１】
ここで、第１の閾値と第２の閾値は異なる値とするが、第１の閾値と第２の閾値を同じ値としてもよい。ＧＰＩＯ１２０に電源が供給されると、初期化処理が実行される。初期化処理においては、ＧＰＩＯの各ピンが入力動作と出力動作のいずれの動作を行うピンかが設定される。本実施形態において使用されるＧＰＩＯ１２０のピンは、入力ピンとして動作するように設定される。
【００２２】
ケーブル１２１はＵＳＢデバイス１１９とＧＰＩＯ１２０を接続するための信号線である。本実施形態において、情報処理装置１００は、ケーブル１２１と接続されるＧＰＩＯ１２０のレジスタに設定された値に応じて、ＵＳＢホストコントローラ１１７にＵＳＢデバイス１１９が接続されているか否かを判定する。ＣＰＵ１０１は、ケーブル１２１を介してＧＰＩＯ１２０に入力される電圧が閾値よりも低い場合、ＵＳＢデバイスが接続されており、ＧＰＩＯ１２０に入力される電圧が閾値よりも高い場合、ＵＳＢデバイスは接続されていないと判定する。
【００２３】
ＵＳＢデバイス１１９の種類によっては、図１に示すように、ＵＳＢデバイス１１９が情報処理装置１００に内蔵される場合がある。このような場合には、ユーザが外からＵＳＢデバイスが接続されているか否かを容易に確認することができない。そのため、ＵＳＢケーブル１２２の断線や抜け等により、ＵＳＢホストコントローラ１１７がＵＳＢデバイス１１９を検知しなかった場合に、ユーザはＵＳＢデバイスが制御部１１０に接続されているか否かを知ることが難しい。即ち、ＵＳＢデバイスが接続されていないから検知されないのか、ＵＳＢデバイスは接続されているが、ＵＳＢケーブルの断線や抜けによりＵＳＢデバイスを検知することが出来ないのかをユーザが区別しにくい。
【００２４】
そこで、本実施形態では、ＵＳＢケーブル１２２のほかにケーブル１２１を用意する。ケーブル１２１で、ＵＳＢデバイス１１９とＧＰＩＯ１２０の所定のポートとを接続する。そして、ＧＰＩＯ１２０の所定のポートに印加されている電圧に基づいて、ＵＳＢデバイス１１９の有無を判定する。このようにすることでＵＳＢケーブル１２２の断線や抜けにより、ＵＳＢホストコントローラ１１７がＵＳＢデバイス１１９の接続を検知出来ない状態であっても、ＵＳＢデバイス１１９が取り付けられているか否かを判定することができるようになる。
【００２５】
図２は本実施形態におけるＵＳＢデバイスの一例を示すブロック図である。本実施形態では、ファクスボードを例に説明するが、他のＵＳＢデバイスであっても構わない。
【００２６】
ＣＰＵ６０１はＵＳＢデバイス１１９全体を制御するための制御部である。ＣＰＵ６０１はシステムバス６０８を介してＵＳＢデバイス１１９の各ブロックを制御する。ＲＯＭ６０２はＵＳＢデバイス１１９を動作させるためのプログラム等を格納する記憶部である。ＣＰＵ６０１はＲＯＭ６０２に格納されたプログラムをＲＡＭ６０３に展開し、実行する。ＲＡＭ６０３は、画像データ等データを一時的に格納する領域である。さらにＲＡＭ６０３はＣＰＵ６０１のワークメモリとしても使用される。ＭＯＤＥＭ６０５は、ＮＣＵ６０６、電話回線６０７を介して、画像データのファクス送信やファクス受信を行う。ＮＣＵ６０６は電話回線６０７から受信された信号をＭＯＤＥＭ６０５に渡したり、ＭＯＤＥＭ６０５から出力された信号を電話回線６０７に送信したりする。
【００２７】
ＵＳＢデバイスコントローラ６０４は、ＵＳＢケーブル１２２を介してＵＳＢホストコントローラ１１７に接続される。ＵＳＢデバイスコントローラ６０４は、ＵＳＢホストコントローラ１１７から信号を受信したり、ＵＳＢホストコントローラ１１７に信号を送信したりする。
【００２８】
なお、本実施形態では、ＵＳＢケーブル１２２を介して情報処理装置の制御部１１０から電力を供給されるＵＳＢデバイスを例に説明するが、電力から直接電源が供給されるＵＳＢデバイスであっても構わない。
【００２９】
次に、図３を用いて、制御部１１０とＵＳＢデバイス１１９の間の配線の一例を説明する模式図である。
【００３０】
図３（ａ）はＵＳＢデバイス１１９と制御部１１０を接続する前の状態を示す模式図である。ＵＳＢホストコントローラ１１７とＵＳＢデバイスコントローラ６０４は接続されていない。コネクタ２０４はケーブル１２１が差し込まれるコネクタである。コネクタ２０４から延びる配線は、ＵＳＢデバイス１１９のグラウンドに繋がっている。本実施形態では、コネクタ２０４から延びる信号線は、ファクスボード基板のグラウンド層に接続されている。ファクスボード基板のグラウンド層は、ファクスボード基板が設置されている情報処理装置の電源のＧＮＤに接続されている。コネクタ２０４からグラウンドに延びる信号線は、図２のシステムバス６０８や、他のブロックには接続されていない。
【００３１】
ＧＰＩＯ１２０の所定のピンには、電源オン時にプルアップ抵抗２０１を介して定電圧５Ｖが印加される。即ち、ＵＳＢデバイス１１９を接続しないまま、情報処理装置１００が電源オンされた場合、ＧＰＩＯ１２０の所定のピンに５Ｖの電圧が印加される。ＵＳＢデバイス１１９が接続されていない状態で情報処理装置１００の電源がオンになった場合、ＧＰＩＯ１２０のレジスタには１（Ｈｉｇｈ）が設定される。ＣＰＵ１０１が当該レジスタを読み出すことで、ＵＳＢデバイス１１９が情報処理装置に取り付けられていないことを判定することができる。
【００３２】
図３（ｂ）は、ＵＳＢケーブル１２２と、ケーブル１２１を用いてＵＳＢデバイス１１９と制御部１１０が接続された場合の模式図である。ＵＳＢデバイス１１９と制御部１１０が接続された状態で情報処理装置１００の電源がオンされた場合、Ｖｂｕｓ１２３を介してＵＳＢデバイス１１９に電力が供給され、ＵＳＢデバイス１１９と制御部１１０との間の通信が開始される。一方で、ＧＰＩＯ１２０の入力ポートは、ケーブル１２１を介してＵＳＢデバイス１１９のグラウンドに接続される。したがって、ＧＰＩＯ１２０の入力ポートに印加される電圧は０Ｖとなる。入力ポートの電圧が第２の閾値より低いため、ＧＰＩＯのレジスタに０（Ｌｏｗ）が設定される。ＣＰＵ１０１が当該レジスタを参照することで、ＵＳＢデバイス１１９が取り付けられていることを判定することができる。
【００３３】
図３（ｂ）において、ＵＳＢケーブル１２２が断線していた場合、Ｖｂｕｓ１２３による電力供給が行えなかったり、Ｄ＋１２４、Ｄ−１２５によるデータの送受信が行えない。たとえば、ＵＳＢケーブル１２２の断線や抜けによって、Ｖｂｕｓを介して電力供給を行うことができない場合、ＵＳＢデバイス１１９はいずれの信号線もプルアップしない。そのため、ＵＳＢホストコントローラ１１７はＵＳＢデバイス１１９の接続を検知できない。
【００３４】
ＵＳＢデバイスが情報処理装置の筐体内に取り付けられるデバイスである場合、ユーザは装置にＵＳＢデバイスが取り付けられているかどうかを容易に確認することができない。上記のようなＵＳＢデバイスを備える情報処理装置において、ＵＳＢデバイス１１９が取り付けられていない場合と、ＵＳＢデバイス１１９は取り付けられているが、ＵＳＢケーブルの断線や抜けでＵＳＢデバイス１１９を検知できない場合とを区別が難しい。そこで、本実施形態では、ＵＳＢケーブル１２２と異なるケーブル１２１を用いて制御部１１０のＧＰＩＯ１２０とＵＳＢデバイス１１９とを接続する。そして、ＣＰＵ１０１がＧＰＩＯ１２０のレジスタ値を参照して、ＵＳＢデバイス１１９の取り付け有無を判定する。さらに、ＵＳＢデバイス１１９の取り付け有無と、ＵＳＢホストコントローラ１１７がＵＳＢデバイス１１９の接続検知の結果に応じて、ＵＳＢデバイス１１９が正常に動作していないことをユーザに通知する。
【００３５】
図４は、情報処理装置の電源がオンになったときに実行される処理である。図４に記載の処理を実行するためのプログラムはＲＯＭ１０２に格納されており、ＣＰＵ１０１がプログラムを読み出して実行することで処理が実現される。本実施形態においては、電源オン時に１度実行するものとして説明するが、電源がオンになった後、所定時間おきに図４に記載の処理を繰り返し実行するとしてもよい。なお、図４の説明においては、接続されているＵＳＢデバイスのデバイス状態の遷移を合わせて説明する。図４の説明に示されるＵＳＢデバイスのデバイス状態は、ＵＳＢの規格で決められたデバイス状態を示している。
【００３６】
ＣＰＵ１０１はＵＳＢデバイス１１９が接続されているか否かを判定する（Ｓ４００）。ＣＰＵ１０１はＵＳＢホストコントローラ１１７のＤ＋、Ｄ−の信号線の出力を参照し、ＵＳＢデバイス１１９が接続されているか否かを判定する。Ｄ＋、Ｄ−のいずれか一方の信号線がプルアップされている場合、ＣＰＵ１０１はＵＳＢデバイス１１９が接続されていると判定する。ＵＳＢデバイスが接続されていない場合、図４に記載の処理を終了する。ＵＳＢデバイスが接続されている場合、ＣＰＵ１０１はＳ４０１に処理を進める。この時、ＵＳＢデバイス１１９は電源が供給されているが、リセット処理が完了していないｐｏｗｅｒｅｄ状態である。
【００３７】
Ｓ４００でＵＳＢデバイス１１９が接続されていると判定した場合、ＣＰＵ１０１はＵＳＢデバイス１１９に対してリセットコマンドを発行する（Ｓ４０１）。ＣＰＵ１０１は、ＵＳＢデバイス１１９の接続を検知してから所定の時間が経過した後、一定時間リセットコマンドを発行する。ＵＳＢデバイス１１９は、ＵＳＢホストコントローラ１１７を介して受信されたリセットコマンドを受け付けて、ＵＳＢデバイスの初期化処理を実行する。例えば、ＵＳＢデバイス１１９自身に対して設定されているアドレスを初期化したりする。リセット処理が完了したＵＳＢデバイス１１９は、ｐｏｗｅｒｅｄ状態からリセット処理の完了を示すｄｅｆａｕｌｔ状態へ遷移する。
【００３８】
そして、ＣＰＵ１０１はＵＳＢホストコントローラ１１７を介して一定時間リセットコマンドを出力した後、Ｇｅｔ  ｄｅｓｃｒｉｐｔｏｒコマンドを出力する（Ｓ４０２）。そして、ＣＰＵ１０１は、ＵＳＢデバイス１１９からディスクリプタデータを受信する。ここで、ＣＰＵ１０１は、接続されているＵＳＢデバイス１１９がどのようなデバイスかを示す情報を取得する。ＣＰＵ１０１は、たとえば、ベンダＩＤやクラスＩＤ、通信速度、メモリ容量等の情報をＵＳＢデバイス１１９から取得する。
【００３９】
ＣＰＵ１０１は、必要なディスクリプタのデータ取得が完了したか否かを判定する（Ｓ４０３）。ＣＰＵ１０１が必要な情報を全て取得した場合には、Ｓ４０４へ処理を進める。一方で、ディスクリプタデータの取得を開始してから所定時間が経過してもディスクリプタのデータの取得が完了しない場合、ＣＰＵ１０１は図４に記載の処理を終了する。所定の時間が経過してもディスクリプタデータの取得が完了しない場合とは、例えば、ＣＰＵ１０１がＵＳＢホストコントローラを介して出力したコマンドに対する応答を受信しない状態が所定時間継続した場合である。
【００４０】
ディスクリプタのデータの取得が完了した場合、ＣＰＵ１０１はＳｅｔ  ａｄｄｒｅｓｓコマンドを出力する（Ｓ４０４）。ＣＰＵ１０１は、接続されているＵＳＢデバイスに固有のアドレスを付与する。ＵＳＢデバイス１１９はアドレスが設定されることにより、ｄｅｆａｕｌｔ状態からアドレス設定が完了した状態を示すａｄｄｒｅｓｓ状態に移行する。
【００４１】
ＣＰＵ１０１はアドレスの設定が完了したか否かを判定する（Ｓ４０６）。アドレスの設定が正常に完了した場合、ＣＰＵ１０１は処理をＳ４０７に進める。アドレスの設定が正常に完了しない場合、ＣＰＵ１０１は図４に記載の処理を終了する。アドレスの設定が正常に終了しない場合とは、例えば、Ｓｅｔ  Ａｄｄｒｅｓｓコマンドを発行してから所定の時間が経過してもＵＳＢデバイス１１９から応答がない場合や、ＵＳＢデバイスの状態を取得してもａｄｄｒｅｓｓ状態でない場合などである。
【００４２】
ＣＰＵ１０１は、Ｓｅｔ  ＣｏｎｆｉｇｕｒａｔｉｏｎコマンドをＵＳＢデバイス１１９に出力する（Ｓ４０７）。ＵＳＢデバイス１１９は、コンフィグレーションが完了した後に、ａｄｄｒｅｓｓ状態からコンフィグレーションの完了を示すｃｏｎｆｉｇｕｒｅｄ状態に移行する。
【００４３】
ＣＰＵ１０１はコンフィグレーションが正常に完了したか否かを判定する（Ｓ４０８）。コンフィグレーションが正常に終了しなかった場合、ＣＰＵ１０１は図４に記載の処理を終了する。コンフィグレーションが正常に完了しなかった場合とは、たとえば、ＣＰＵ１０１がコンフィグレーション処理中に発行したコマンドに対して所定の時間が経過しても応答がなかった場合などである。また、コンフィグレーションが開始してから所定の時間が経過した後に、ＣＰＵ１０１が取得したＵＳＢデバイスの状態がｃｏｎｆｉｇｕｒｅｄ状態でない場合等である。
【００４４】
ＣＰＵ１０１は、コンフィグレーションが完了したＵＳＢデバイス１１９の情報をＲＡＭ１０３に格納する（Ｓ４０９）。ＵＳＢデバイス１１９の情報とは、たとえば、Ｓ４０２で取得したディスクリプタのデータや、Ｓ４０４で設定したアドレスの情報等である。Ｓ４０９に記載の処理を完了した後、ＣＰＵ１０１は図４に記載の処理を終了する。
【００４５】
情報処理装置の起動時にＵＳＢデバイスが接続されており、正常に動作することが出来る場合には図４のＳ４００〜Ｓ４０９の処理が順次実行される。しかしながら、ＵＳＢホストコントローラ１１７とＵＳＢデバイス１１９を接続するＵＳＢケーブルが断線していたり、抜けていたりすると、Ｓ４０９に記載のＵＳＢデバイス１１９のデータの格納まで進まずに図４に記載の処理を完了してしまう。例えば、ＵＳＢケーブル１２２のＶｂｕｓが断線したり、ＵＳＢケーブル１２２が抜けている場合、ＵＳＢデバイスへ電力が供給されない。したがって、ＣＰＵ１０１はＳ４００でＵＳＢデバイスが接続されていないと判定されてしまい、図４に記載の処理が終了してしまう。この場合、ユーザは制御部１１０とＵＳＢデバイス１１９をＵＳＢケーブル１２２で接続したつもりであっても、ＣＰＵ１０１はＵＳＢデバイス１１９が取り付けられていることを検知することが出来ない。
【００４６】
また、ファームウェア故障や、Ｄ＋，Ｄ−の信号線の断線等が発生している場合、ＵＳＢデバイス１１９は、ＣＰＵ１０１の発行するコマンドを受信できなかったり、ＣＰＵ１０１の発行したコマンドに応答できない。このような場合にも、Ｓ４０９における当該ＵＳＢデバイス１１９の情報の格納まで処理を進めることが出来ず、ＣＰＵ１０１はＵＳＢデバイス１１９が接続されていることを検知できない。そこで、本実施形態では、ＵＳＢケーブル１２２と異なるケーブル１２１を用いてＵＳＢデバイスの接続有無を判定する。
【００４７】
図５は情報処理装置の起動時に実行されるＵＳＢデバイスが正常に動作することができない状態を検知するための処理である。図５に記載の処理を実行するためのプログラムはＲＯＭ１０２等に格納されており、ＣＰＵ１０１が当該プログラムを読み出して実行することにより処理が実現される。なお、本実施形態において図５に記載の処理は、情報処理装置の起動時に図４に記載の処理の後に実行される。
【００４８】
ＣＰＵ１０１はＧＰＩＯのレジスタの値を取得する（Ｓ５００）。情報処理装置１００の電源がオンになった後、ＧＰＩＯ１２０の所定のピンには定電圧が印加される。しかし、ＧＰＩＯ１２０とＵＳＢデバイス１１９がケーブル１２１を介して接続されている場合、ＧＰＩＯ１２０のピンの電圧はグラウンドと同電位になる。このとき、ＧＰＩＯ１２０のレジスタは０（Ｌｏｗ）に設定される。一方で、ＧＰＩＯ１２０とＵＳＢデバイス１１９がケーブル１２１を介して接続されていない場合、ＧＰＩＯ１２０の所定のピンは印加された定電圧と同電位になる。この時、ＧＰＩＯ１２０のレジスタは１（Ｈｉｇｈ）に設定される。ＣＰＵ１０１は、ＧＰＩＯ１２０の所定のポートのレジスタの値を取得する。
【００４９】
ＣＰＵ１０１は、取得したＧＰＩＯ１２０のレジスタ値に基づいて、ＵＳＢデバイスが情報処理装置に取り付けられているか否かを判定する（Ｓ５０１）。Ｓ５００で取得されたレジスタの値が１の場合、ＣＰＵ１０１はＵＳＢデバイス１１９が取り付けられていないと判定し、図５に記載の処理を終了する。一方で、Ｓ５００で取得されたレジスタの値が０の場合、ＣＰＵ１０１はＵＳＢデバイス１１９が取り付けられていると判定し、Ｓ５０２に記載の処理を実行する。
【００５０】
ＣＰＵ１０１は、コンフィグレーションが完了しているＵＳＢデバイスがあるか否かを判定する（Ｓ５０２）。ＣＰＵ１０１はＲＡＭ１０３にコンフィグレーションが完了したＵＳＢデバイスの情報が記憶されているか否かを判定する。ここで、ＣＰＵ１０１は、図４のＳ４０９において、ＲＡＭ１０３に格納された情報を参照する。ＲＡＭ１０３にＵＳＢデバイスの情報が格納されている場合、ＣＰＵ１０１はコンフィグレーションの完了したＵＳＢデバイスがあると判定する。ＲＡＭ１０３にＵＳＢデバイスの情報が格納されていない場合、ＣＰＵ１０１はコンフィグレーションの完了したＵＳＢデバイスがないと判定する。
【００５１】
コンフィグレーションの完了したＵＳＢデバイスの情報がＲＡＭ１０３に格納されている場合、ＣＰＵ１０１はＵＳＢホストコントローラ１１７を介して、ＵＳＢデバイス１１９からＵＳＢデバイスの故障が通知されたか否かを判定する（Ｓ５０３）。ＵＳＢデバイス１１９から故障が通知された場合、ＣＰＵ１０１は処理をＳ５０４へ進める。一方で、ＵＳＢデバイス１１９から故障が通知されない場合、ＣＰＵ１０１は図５に記載の処理を終了する。Ｓ５０３において、ＵＳＢホストコントローラ１１７とＵＳＢデバイス１１９はすでに通信を開始している。ＵＳＢデバイス１１９は自身のＲＯＭ６０２に格納された故障判定用のプログラムを用いて故障判定を実行する。故障判定プログラムを実行した結果、ＵＳＢデバイス１１９が正常に動作することが出来ないと判定された場合に、ＵＳＢデバイス１１９は制御部１１０のＣＰＵ１０１に故障を通知する。
【００５２】
Ｓ５０２でコンフィグレーションの完了したＵＳＢデバイスの情報がなかった場合、ＣＰＵ１０１がＲＡＭ１０３に格納されるＵＳＢデバイスが正常に動作していないことを示すフラグをオンに設定する（Ｓ５０４）。当該フラグは、ＵＳＢデバイスが正常に動作していないことを示すフラグであり、オンの場合にはＵＳＢデバイスが正常に動作することが出来ないことを示す。
【００５３】
Ｓ５０３でＵＳＢデバイス１１９から故障が通知された場合も、Ｓ５０４の処理を実行する。
【００５４】
そして、ＣＰＵ１０１は、ＵＳＢデバイスが正常に動作していないことを示す画面をディスプレイ１１１に表示する（Ｓ５０５）。ＣＰＵ１０１は操作部コントローラ１０８を制御し、図６に示す画面をディスプレイ１１１に表示する。図６は情報処理装置に取り付けられているＵＳＢデバイスが正常に動作していないことをユーザに通知する画面である。本実施形態において、ＵＳＢデバイス１１９は情報処理装置に内蔵されるデバイスである。そのためユーザが容易にＵＳＢデバイス１１９の取り付け、取り外しを行うことが出来ない。そこで、情報処理装置１００は、図６に示す画面を介して、サービスマンへの連絡を促す。ユーザから連絡を受けたサービスマンは、ＵＳＢデバイス１１９を交換したり、ＵＳＢデバイス１１９の設置しなおしをする。本実施形態では、ＵＳＢデバイス１１９が正常に動作していないことを画面でユーザに通知した。ＵＳＢデバイス１１９が正常に動作していないことを検知したことを、ネットワークを介して外部の装置にメール等で警告するとしてもよい。
【００５５】
なお、本実施形態では図４に記載の処理を実行した後に、図５に記載の処理を実行するとして説明した。図５のＳ５０２に記載の処理が実行されるまでに、図４の処理が完了していれば図４と図５に記載の処理が並行して実行されていてもよい。
【００５６】
上記のように、ＵＳＢケーブル１２２とは異なるケーブル１２１を用いてＵＳＢデバイスと情報処理装置を接続する。そして、ケーブル１２１の出力に基づいて、ＵＳＢデバイスが情報処理装置に取り付けられているか否かを判定する。このようにすることで、ＵＳＢケーブルが切断や抜けにより、ＵＳＢケーブルを介した通信ができない場合でも、ＵＳＢデバイスが情報処理装置に取り付けられていることを検知することができる。
【００５７】
＜第２の実施形態＞
第１の実施形態では、情報処理装置の電源がオンになったときＧＰＩＯのレジスタの値を取得した。そして、取得したレジスタ値に基づいて、ＵＳＢデバイスが接続されていると判定された場合、コンフィグレーションが完了したＵＳＢデバイスがあるか否かを判定した。第２の実施形態では、電源がオンになってから所定の時間が経過した後コンフィグレーションが完了したＵＳＢデバイスがあるか否かを判定する。コンフィグレーションされたＵＳＢデバイスがない場合に、ＵＳＢデバイスの取り付けがあるか否かを判定し、ＵＳＢデバイスが正常に動作していないことを検知する。
【００５８】
第２の実施形態における情報処理装置やＵＳＢデバイスのハードウェア構成、および、ＵＳＢデバイスとの通信確立に係る処理は、第１の実施形態と同様であるため、図１から図４に記載の内容と同様である。
【００５９】
第２の実施形態では、第１の実施形態の図５の処理に替えて、図７に記載の処理を実行する。
【００６０】
図７は、情報処理装置の電源がオンになったときに実行されるＵＳＢデバイスが正常に動作していないことを検知するための処理を示すフローチャートである。図７に示す処理を実行するためのプログラムはＲＯＭ１０２に格納されており、ＣＰＵ１０１が当該プログラムを実行することで処理が実現される。
【００６１】
なお、本実施形態では、情報処理装置が電源オンになり図４に示す処理が完了した後に、図７に記載の処理を実行するとする。情報処理装置が電源オンとなった後、所定の時間毎に図７に記載の処理を実行するとしてもよい。
【００６２】
ＣＰＵ１０１は、ＲＡＭ１０３にＵＳＢデバイスの情報が格納されているか否かを判定する（Ｓ７００）。ここで、ＣＰＵ１０１が参照する情報は、Ｓ４０９においてＲＡＭ１０３に格納された情報である。ＣＰＵ１０１はＲＡＭ１０３にＵＳＢデバイスの情報が格納されている場合、図７に記載の処理を終了する。ＲＡＭ１０３にＵＳＢデバイスの情報が格納されていない場合、ＣＰＵ１０１はコンフィグレーションが完了しているＵＳＢデバイスがないと判定する。
【００６３】
ＣＰＵ１０１はＧＰＩＯ１２０のレジスタの値を取得する（Ｓ７０１）。ケーブル１２１を介してＵＳＢデバイス１１９が取り付けられている場合、ＧＰＩＯ１２０のレジスタには０（Ｌｏｗ）が設定されている。一方で、ケーブル１２１を介してＵＳＢデバイス１１９が取り付けられていない場合、ＧＰＩＯ１２０のレジスタには１（Ｈｉｇｈ）が設定されている。
【００６４】
ＣＰＵ１０１は、Ｓ７０１で取得したレジスタの値に基づいて、ＵＳＢデバイス１１９が取り付けられているか否かを判定する（Ｓ７０２）。Ｓ７０１で取得されたレジスタの値が０の場合、ＵＳＢデバイス１１９が取り付けられていると判定する。Ｓ７０１で取得されたレジスタの値が１の場合、ＵＳＢデバイス１１９が取り付けられていないと判定する。ＵＳＢデバイス１１９が取り付けられていないと判定された場合、ＣＰＵ１０１は図７に記載の処理を終了する。ＵＳＢデバイス１１９が取り付けられていると判定された場合、ＣＰＵ１０１はＳ７０３に処理を進める。
【００６５】
ＣＰＵ１０１は、ＵＳＢデバイス１１９が正常に動作していないことを示すフラグをオンに設定する（Ｓ７０３）。なお、本実施形態において当該フラグはＲＡＭ１０３に格納されているものとする。
【００６６】
ＣＰＵ１０１は、ディスプレイ１１１にＵＳＢが正常に動作していないことを通知する画面を表示する（Ｓ７０４）。ＣＰＵ１０１は、操作部コントローラ１０８を制御し、ディスプレイ１１１に図６に示す画面を表示する。第１の実施形態と同様に、情報処理装置のディスプレイ１１１ではなく、ネットワークを介して接続される外部の装置に、ＵＳＢデバイス１１９が正常に動作していないことを示す通知を送信するとしてもよい。
【００６７】
第２の実施形態では、コンフィグレーションを完了したＵＳＢデバイスがない場合に、ＧＰＩＯの出力を取得する。このようにすることで、コンフィグレーションが完了している場合にはＧＰＩＯの出力を取得する処理を行うことなく、図７に記載の処理を完了することができる。
【００６８】
＜その他の実施形態＞
第１の実施形態、および、第２の実施形態では、ＣＰＵ１０１がＲＡＭ１０３に格納されたコンフィグレーション済みのＵＳＢデバイスの情報を参照し、コンフィグレーションの完了したＵＳＢデバイスが登録されているか否かを判定する。図４のＳ４０９においてコンフィグレーションが完了したＵＳＢデバイスがあることを示すフラグをオンに設定するとしてもよい。そして、図５のＳ５０２や図７のＳ７００において、ＣＰＵ１０１が当該フラグを参照するとしてもよい。このとき、図５のＳ５０２において、ＣＰＵ１０１は上記不タグがオンである場合にＳ５０３に処理を進め、上記フラグがオフである場合にＳ５０４に処理を進める。また、図７のＳ７００において、ＣＰＵ１０１は上記フラグがオンである場合に、図７に記載の処理を終了し、上記フラグがオフである場合に処理をＳ７０１に進める。
【００６９】
本発明は、以下の処理を実行することによっても実現される。即ち、上述した実施例の機能を実現するソフトウェア（プログラム）をネットワーク又は各種記憶媒体を介してシステム或いは装置に供給し、そのシステム又は装置のコンピュータ（又はＣＰＵやＭＰＵ等）がプログラムコードを読み出して実行する処理である。この場合、そのコンピュータプログラム、及び該コンピュータプログラムを記憶した記憶媒体は本発明を構成することになる。
【図１】
2020016927.tif 000003
【図２】
2020016927.tif 000004
【図３】
2020016927.tif 000005
【図４】
2020016927.tif 000006
【図５】
2020016927.tif 000007
【図６】
2020016927.tif 000008
【図７】
2020016927.tif 000009