(57)【要約】【課題】ＵＳＢ規格に違反する転送シーケンスを送信するホスト装置に対してデッドロックを回避して自動応答することのできる情報処理装置を提供する。【解決手段】接続したホスト装置から受信したコントロール転送のトランザクションに対して承認応答を前記ホスト装置へと送信する自動応答を行う自動応答部と、受信した前記トランザクションが、データ通信のための設定を行う設定要求を含むトランザクション、または、前記ホスト装置から自装置へデータを送信することを示す第１トークン、及びデータのパケットとを含むトランザクションのいずれか一方であるかを判別する判別部と、を備え、前記自動応答部は、前記自装置から前記ホスト装置へとデータを送信することを示す第２トークンを送信後に受信したトランザクションが、前記判別部によって前記第１トークン、及びデータのパケットを含むトランザクションであると判定された場合、前記承認応答を再送する。【選択図】図２
2014174924.tif 000002
【特許請求の範囲】
【請求項１】
接続したホスト装置から受信したコントロール転送のトランザクションに対して承認応答を前記ホスト装置へと送信する自動応答を行う自動応答部と、
受信した前記トランザクションが、データ通信のための設定を行う設定要求を含むトランザクション、または、前記ホスト装置から自装置へデータを送信することを示す第１トークン、及びデータのパケットを含むトランザクションのいずれか一方であるかを判別する判別部と、
を備え、
前記自動応答部は、前記自装置から前記ホスト装置へデータを送信することを示す第２トークンを送信後に受信したトランザクションが、前記判別部によって前記第１トークン、及びデータのパケットを含むトランザクションであると判定された場合、前記承認応答を再送する
ことを特徴とする情報処理装置。
【請求項２】
前記ホスト装置から受信した前記設定要求を検出する設定要求検出部と、
前記設定要求が検出された場合に、前記自動応答部に対して割込みを通知する設定要求割込み通知部と、
を備えることを特徴とする請求項１に記載の情報処理装置。
【請求項３】
前記ホスト装置から受信した前記データのパケットを検出するデータパケット検出部と、
前記データパケットが検出された場合に、前記自動応答部に対して割込みを通知するデータパケット割込み通知部と、
を備えることを特徴とする請求項１に記載の情報処理装置。
【請求項４】
前記設定要求割込み通知部は、前記自動応答部による自動応答機能が有効か否かを判定し、有効でない場合は、割込み通知先をレジスタ部に切り替える
ことを特徴とする請求項２に記載の情報処理装置。
【請求項５】
前記データパケット割込み通知部は、前記自動応答部による自動応答機能が有効か否かを判定し、有効でない場合は、割込み通知先をレジスタ部に切り替える
ことを特徴とする請求項３に記載の情報処理装置。
【請求項６】
接続したホスト装置から受信したコントロール転送のトランザクションに対して承認応答を前記ホスト装置へと送信する自動応答を行う自動応答部と、
受信したトランザクションの種別を判別する判別部と、
を備える情報処理装置における情報処理方法であって、
前記判別部が、前記ホスト装置から受信した前記トランザクションがデータ通信のための設定を行う設定要求を含むトランザクションであるか否かを判定する設定要求判定ステップと、
前記設定要求であると判定された場合に、前記自動応答部が承認応答を前記ホスト装置へと送信する第１承認応答送信ステップと、
前記設定要求でないと判定された場合に、前記判別部が、前記ホスト装置から受信した前記トランザクションが前記ホスト装置から自装置へデータを送信することを示す第１トークン、及びデータのパケットとを含むトランザクションであるか否かを判定するデータパケット判定ステップと、
前記自装置から前記ホスト装置へデータを送信することを示す第２トークンを送信後に受信した後に、データパケット判定ステップにおいて前記第１トークン、及び前記データのパケットとを含むトランザクションであると判定された場合に、前記自動応答部が、前記承認応答を再送する
ことを特徴とする情報処理方法。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、情報処理装置、情報処理方法に関する。
【背景技術】
【０００２】
近年、ネットワークに接続されるＭＦＰ（Multi  Function  Peripheral）などにおいて、所定時間機器が動作していないときに、機器の各部への電力の供給を遮断することで、消費電力を低減して電力コストを抑えること、いわゆる省エネ状態に移行させることが行われている。省エネ状態中にＵＳＢホスト装置からの標準リクエストを受信した場合には、ソフトウェアによる応答を行うため省エネ状態を解除する必要があるが、これは必ずしも省エネ効率が高くない。そこで特許文献１では、応答データをあらかじめ記憶装置に保存し、標準リクエストに対してソフトウェアの介在なく自動応答を行う回路を搭載することで、省エネモードを解除することなしに標準リクエスト処理を行うＵＳＢコントローラが開示されている。
【発明の概要】
【発明が解決しようとする課題】
【０００３】
しかし、今までのＭＦＰのＵＳＢコントローラでは、ＵＳＢ２．０規格で定められたＨｉｇｈＳｐｅｅｄモードでＵＳＢホスト装置と接続した場合に、ＵＳＢ規格に違反する転送シーケンスを送信するホスト装置であった場合、自動応答回路がデッドロック状態に陥り転送が停止してしまう場合があった。すなわち、ホスト装置とデバイスとの間のデフォルトパイプから、コントロール転送でデバイスからホスト装置側へとデータが転送される場合に、規格ではＵＳＢホスト装置からは、ＰＩＮＧ送信→ＡＣＫ受信によって完了となるのが通常である。
【０００４】
しかしながら、これに違反してホスト装置がＰＩＮＧ送信をして、ＭＦＰがＡＣＫ受信した後にＯＵＴトークン、ＤＡＴＡパケットを再送するＵＳＢホスト装置が存在する。接続先のＵＳＢホスト装置が規格に違反していないかどうかは、ＭＦＰの自動応答回路側からは分からないので、デッドロックを回避するためにＨｉｇｈＳｐｅｅｄモードでの接続時には自動応答機能を無効化する必要がある。そうすると、標準リクエストのコマンドの受信時には機器全体の省エネ状態を解除しソフトウェア処理によって転送シーケンスを制御するため、省エネ効果が低くなってしまうという問題があった。
【課題を解決するための手段】
【０００５】
上述した課題を解決し、目的を達成するために、本発明は、接続したホスト装置から受信したコントロール転送のトランザクションに対して承認応答を前記ホスト装置へと送信する自動応答を行う自動応答部と、受信した前記トランザクションが、データ通信のための設定を行う設定要求を含むトランザクション、または、前記ホスト装置から自装置へデータを送信することを示す第１トークン、及びデータのパケットとを含むトランザクションのいずれか一方であるかを判別する判別部と、を備え、前記自動応答部は、前記自装置から前記ホスト装置へデータを送信することを示す第２トークンを送信後に受信したトランザクションが、前記判別部によって前記第１トークン、及びデータのパケットを含むトランザクションであると判定された場合、前記承認応答を再送することを特徴とする。
【発明の効果】
【０００６】
本発明によれば、ＵＳＢ規格に違反する転送シーケンスを送信するホスト装置に対してデッドロックを回避して自動応答することのできる情報処理装置を提供することができるという効果を奏する。
【図面の簡単な説明】
【０００７】
【図１】図１は、実施形態の情報処理装置のハードウェア構成を示す図である。
【図２】図２は、実施形態の情報処理装置の機能構成を示すブロック図である。
【図３】図３は、実施形態の情報処理装置の自動応答部の機能構成を示すブロック図である。
【図４】図４は、実施形態の自動応答部の処理手順を示すフロー図である。
【図５】図５は、実施形態の自動応答部のＩｄｌｅステートにおける処理手順を示すフロー図である。
【図６】図６は、実施形態の自動応答部のＳｅｔｕｐステートにおける処理手順を示すフロー図である。
【図７】図７は、実施形態の自動応答部のＤａｔａステートにおける処理手順を示すフロー図である。
【図８】図８は、実施形態の自動応答部のＳｔａｔｕｓステートにおける処理手順を示すフロー図である。
【発明を実施するための形態】
【０００８】
以下に添付図面を参照して、情報処理装置をＭＦＰとして具体化した実施の形態を詳細に説明する。なお、情報処理装置はＭＦＰに限定されず、ＵＳＢホスト装置である別の情報処理装置と接続して利用するデバイス、例えば、スキャナやプリンタ、ＦＡＸ、ハードディスクなどであってもよい。図１は、情報処理装置１０のハードウェア構成を示す図である。情報処理装置１０は、メインＣＰＵ１１、サブＣＰＵ１２、ＵＳＢコントローラ１３、ユーザインタフェース部１４、ＤＤＲ（Double-Data-Rate）コントローラ１５、省エネ拡張部１６、及びＭＦＰ機能部１７を備えている。メインＣＰＵ１１は、通常状態でのＭＦＰ機能やユーザインタフェース機能の処理、ＵＳＢコントローラを制御する処理を行い、メインシステムの制御を行う。省エネ状態においては、メインＣＰＵ１１、ユーザインタフェース部１４、ＤＤＲコントローラ１５、省エネ拡張部１６、ＭＦＰ機能部１７は通電されておらず、サブシステムに含まれるサブＣＰＵ１２、及びＵＳＢコントローラ１３のみが稼動した状態となっている。省エネ状態において、サブＣＰＵ１２はＵＳＢコントローラ１３や省エネ拡張部１６の制御処理を行う。
【０００９】
ＤＤＲコントローラ１５は、記憶領域として接続されたＤＲＡＭへのライト・リードの制御を行う。ユーザインタフェース部１４は、例えば操作パネルやディスプレイなど、利用者の操作を受け付ける。ＭＦＰ機能部１７は、ＭＦＰとしての機能、例えばコピーや、ＦＡＸ、プリントなどの処理を制御する。
【００１０】
図２は、実施形態のＵＳＢコントローラ１３の機能構成を示すブロック図である。図２に示されるように、ＵＳＢコントローラ１３はＵＳＢＭＡＣ２１、第１送信ＦＩＦＯバッファ２３、第２送信ＦＩＦＯバッファ２４、第１受信ＦＩＦＯバッファ２５、第２受信ＦＩＦＯバッファ２６、自動応答部２７、レジスタ部２８、及びＤＭＡコントローラ２９を備えている。ＵＳＢコントローラ１３は、接続されたＵＳＢホスト装置と情報処理装置１０との間におけるデータの送受信を制御する機能を有する。ＵＳＢコントローラ１３は、トランザクションという単位で、データの送受信を行う。トランザクションは、トークンパケットとＤＡＴＡパケット（データのパケット）とハンドシェイクパケットとを含む。
トークンパケットはこれからデータを送出するか、またはデータを読み込むか、ということを、情報処理装置１０に伝えるために、ＵＳＢホスト装置から出力される。
【００１１】
ＵＳＢＭＡＣ２１は第１送信ＦＩＦＯバッファ２３、第２送信ＦＩＦＯバッファ２４、第１受信ＦＩＦＯバッファ２５、第２受信ＦＩＦＯバッファ２６と通信を行いＦＩＦＯバッファに格納されたデータからＵＳＢパケットを生成する。また、ＵＳＢＭＡＣ２１は、ホスト装置から送信されたデータパケットを検出する。なお、バッファは本実施形態にあっては、ＦＩＦＯ（ＦｉｒｓｔＩｎＦｉｒｓｔＯｕｔ）方式としたが、別の方式、例えばＬＩＦＯ（ＬａｓｔＩｎＦｉｒｓｔＯｕｔ）のバッファなど他の記憶部であってもよい。
【００１２】
第１送信ＦＩＦＯバッファ２３、及び第１受信ＦＩＦＯバッファ２５はＵＳＢホスト装置に対する標準リクエスト応答を含むコントロール転送を行う際に使用され、ＤＭＡコントローラ２９、又はレジスタパス３２からデータアクセスをすることができる。コントローラ２９には、データパス３１を通じて、メインＣＰＵ１１やサブＣＰＵ１２からアクセス可能である。コントロール転送とは、ＵＳＢのホスト装置とデバイス間で予め定められたデフォルトパイプを通じて行われる通信であり、「標準リクエスト」、「クラスリクエスト」、「ベンダリクエスト」と呼ばれる様々なコマンドのやり取りに用いられる。標準リクエストとは、ＵＳＢホスト装置との間で、エンドポイント０からの通信の際に用いられるコマンドであり、リセットで初期化されたときに、システム設定を初期化したり、ＵＳＢケーブルでＵＳＢホスト装置と接続された時に、各種の設定制御をしたりするために通信ができるよう設定を行う。
【００１３】
第２送信ＦＩＦＯバッファ２４、及び第２受信ＦＩＦＯバッファ２６はＤＭＡコントローラ２９からアクセスすることができコントロール転送以外のデータ転送、例えばバルク転送や、インタラプト転送の際に使用する。第１送信ＦＩＦＯバッファ２３と第１受信ＦＩＦＯバッファ２５には、メインＣＰＵ１１及びサブＣＰＵ１２からレジスタパス３２と同様にデータアクセスすることを可能とするためのデータパス３３、３４が接続されている。
【００１４】
ＵＳＢコントローラ１３が標準リクエストを受信した場合、ＵＳＢＭＡＣ２１は、標準リクエストの種類を表すＳＥＴＵＰパケットを第１受信ＦＩＦＯバッファ２５を通して自動応答部２７、及びレジスタ部２８に格納する。ＵＳＢＭＡＣ２１は、設定要求検出部、及びデータパケット検出部、設定要求割込み通知部、データパケット割込み通知部に相当する。ＳＥＴＵＰパケットは、ＳＥＴＵＰビットが１であるＤＡＴＡパケットであり、ホスト装置の検出や設定に使用されるデータ通信のための設定を行う設定要求をホスト装置側から送るものである。例えば、ＵＳＢホスト装置のアドレス設定、装置記述の要求、エンドポイントの状態検査に用いられる。自動応答部２７は格納されたＳＥＴＵＰパケットから自動応答対象内かどうか判別し、自動応答対象である場合は割込み通知からの入力を元にレジスタ部２８に書き込みを行うことで自動応答処理を行う。自動応答部２７は、自動応答の処理を行うために設計された電子回路であり、メインＣＰＵ１１からの制御がなくても、ホスト装置との間での接続の制御を行う。
【００１５】
また、レジスタ部２８には、自動応答部２７による自動応答を有効化するか否かを設定するための設定値が記憶されている。ＵＳＢＭＡＣ２１は、この設定値が自動応答を無効とする値である場合は、自動応答部２７を介さずに、直接レジスタ部２８に送信の設定を行う。この場合は、メインＣＰＵ１１が省電力状態から復帰して起動し、メインＣＰＵ１１がソフトウェアによって処理を行う。
【００１６】
メインＣＰＵ１１及びサブＣＰＵ１２はＵＳＢコントローラ１３内のレジスタ部２８にアクセスしてＵＳＢコントローラ１３を制御する。
【００１７】
図３は自動応答部２７の詳細な機能構成を示すブロック図である。図３に示されるように、自動応答部２７は自動応答制御部４１、及び記憶装置４２を備えている。自動応答制御部４１は、ＵＳＢのホスト装置側から受信した標準リクエストの内容を自動応答対象内か自動応答対象外か判別する判別部４３を有する。記憶装置４２には自動応答に必要である情報があらかじめ保存されている。標準リクエストが自動応答対象内であった場合には、自動応答制御部４１は自動応答を行うのに必要な情報を記憶装置４２から読み出し自動応答処理を行う。自動応答対象外であった場合には、自動応答制御部４１はサブＣＰＵ１２に割込み信号を出力する。
【００１８】
ＵＳＢのコントロール転送は、半二重通信が可能な双方向通信パイプを使うため、プロトコルが特殊になっており、ＳＥＴＵＰステージ、ＤＡＴＡステージ、ＳＴＡＴＵＳステージの３ステージに分かれている。自動応答部２７は、図４に示されるように、それぞれＳｅｔｕｐステートＳ２でＳＥＴＵＰステージを、ＤａｔａステートＳ３でＤＡＴＡステージを、ＳｔａｔｕｓステートＳ４、及びＩｄｌｅステートＳ１でＳＴＡＴＵＳステージを処理することができる。
【００１９】
次いで、ＩｄｌｅステートＳ１における処理の流れを図５を用いて説明する。図５に示されるように、自動応答部２７は、まずＩｄｌｅステートＳ１においてコントロール転送（標準リクエスト）の開始を意味するＳＥＴＵＰパケットの受信割り込みがあったか否かを判定する（ステップＳ１２)。ＳＥＴＵＰパケットの受信割り込みがあったと判定された場合（ステップＳ１２：Ｙｅｓ）、すなわちＵＳＢＭＡＣ２１がＳＥＴＵＰパケットを受信してＳＥＴＵＰパケット受信割り込みが自動応答部２７に通知された場合、ＩｄｌｅステートＳ１は完了する。
【００２０】
一方、ＳＥＴＵＰパケットの受信割り込みがないと判定された場合（ステップＳ１２：Ｎｏ）、ステップＳ１３に移行する。ステップＳ１３では、自動応答部２７は、ＤＡＴＡパケット(長さ０)の受信割り込みが通知されたか否かを判定する。受信割り込みが通知される場合としては、例えば、前回のコントロール転送のＳＴＡＴＵＳステージ処理（図８で後述する）が未完であり、ＯＵＴトークンとＤＡＴＡパケットを受信する場合である。ＯＵＴトークンは、上述したトークンパケットの１種であり、ＵＳＢホスト装置から情報処理装置１０へとデータを送信することを示すものである。この場合、通常であればコントロール転送はＡＣＫパケットを送信するために待機中であることから、ＩＮトークンが送信されている状態である。そして、ＵＳＢホスト装置からは、ＤＡＴＡパケットが再送されきた場合、ＤＡＴＡパケットの受信割り込みが自動応答部２７に通知されるので（ステップＳ１３：Ｙｅｓ）、自動応答部２７は、受信したＤＡＴＡパケットに対するＡＣＫパケットを送信レジスタに書き込んで送信する(ステップＳ１４)。そして、自動応答部２７は、ＡＣＫパケットの送信割込みの通知があるまで待機する(ステップＳ１５)。送信割り込みの通知があった場合（ステップＳ１５：Ｙｅｓ）、ステップＳ１２へと戻りホスト装置から次のコントロール転送の開始を意味するＳＥＴＵＰパケットの割り込みがあるまで待機する。なお、ＵＳＢホスト装置からＤＡＴＡパケットが再送されてきていない場合、ＮＡＫパケットがＵＳＢホスト装置に返信されて、ＵＳＢホスト装置がストールしてしまうことがないため、ＤＡＴＡパケット(長さ０)の受信割り込みが通知されず（ステップＳ１３：Ｎｏ）、ステップＳ１２へと戻る。
【００２１】
次いで、図６を用いて、ＳｅｔｕｐステートＳ２における処理の流れを説明する。ＳｅｔｕｐステートＳ２では、自動応答部２７は、ＩｄｌｅステートＳ１で受信したＳＥＴＵＰパケットのデータを読み出す(ステップＳ２２)。ＳｅｔｕｐステートＳ２はここで終了し、次いでＤａｔａステートＳ３へと移行する。
【００２２】
ＤａｔａステートＳ３における処理の流れについて図７を参照して説明する。自動応答部２７は、読み出したＳＥＴＵＰパケットより、ＵＳＢホスト装置から送信された標準リクエストの種類を判断する。標準リクエストがデバイス（ＭＦＰ側）からホスト装置へとデータを転送する「ＩＮ」のコントロール転送であった場合について図７は示している。まず、自動応答部２７はＤａｔａステートＳ３において、記憶装置４２から応答すべきデータを読み出す（ステップＳ３２）。次いで、自動応答部２７は、読み出したデータを第１送信ＦＩＦＯバッファ２３に書き込む（ステップＳ３３）。するとＵＳＢＭＡＣ２１が第１送信ＦＩＦＯバッファ２３に書き込まれたデータからＤＡＴＡパケットを生成し、ホスト装置へ送信すると共に、自動応答部２７にＤＡＴＡパケット送信割込みを通知する。自動応答部２７は、ＤＡＴＡパケット送信割り込みがあるまで待機する(ステップＳ３４)。そして、ＤＡＴＡパケット送信割り込みがあった場合（ステップＳ３４：Ｙｅｓ）、割込み受信をもってＤａｔａステートＳ３は完了する。
【００２３】
続いて、ＳｔａｔｕｓステートＳ４における処理の流れについて図８を参照して説明する。図７のＤａｔａステートＳ３において、ＤＡＴＡパケット送信割り込みがあると、自動応答部２７がレジスタ部２８のＡＣＫパケット送信レジスタに１を書き込む（ステップＳ４２）。自動応答部２７は、ＵＳＢＭＡＣ２１からのＡＣＫパケット送信割り込みがあるまで待機する(ステップＳ４３)。そして、ＵＳＢＭＡＣ２１はホスト装置からのパケットに対してＡＣＫパケットを送信するために、自動応答部２７に対して送信割り込みを指示し、ＡＣＫパケット送信割込みがあったと判定されるため（ステップＳ４３：Ｙｅｓ）、処理は終了する。そして、ＵＳＢ規格として、ＵＳＢＭＡＣ２１がホスト装置へＡＣＫパケットを送信することでＳｔａｔｕｓステートＳ４は完了する。
【００２４】
しかし、規格に従わず自動応答部２７からホスト装置がＡＣＫパケットを受信した後にＯＵＴトークン、ＤＡＴＡパケットを再送する場合があることが知られている。通常、情報処理装置１０が、ＵＳＢホスト装置とＨｉｇｈＳｐｅｅｄモードで接続されており標準リクエストが「ＩＮ」のコントロール転送であった場合、ＵＳＢＭＡＣ２１はホスト装置からのＯＵＴトークン、及び長さ０のＤＡＴＡパケットに対してはＮＡＫパケットを自動的に送信する。したがって、ＵＳＢホスト装置側では、パケットに対してＡＣＫパケットが応答されないため、処理がストールしてしまうこととなる。この状況を回避するために、そのようなホスト装置と接続された場合、再送されたＯＵＴトークン、ＤＡＴＡパケットに対するＡＣＫ送信がＩｄｌｅステージＳ１で行われ、ステップＳ１３〜Ｓ１５の処理が実施されることとなる。そして、これらのステップを通じて、自動応答部２７は、ホスト装置に対してＡＣＫパケットを再送する。
【００２５】
以上で示した本実施形態の情報処理装置１０にあっては、情報処理装置１０がＩＮトークンを送信している状態にあって、ＵＳＢホスト装置側からＳＥＴＵＰパケットではない、ＤＡＴＡパケットを受信した場合であっても、ＡＣＫパケットをＵＳＢホスト装置に対して自動的に送信することとした。したがって、ＵＳＢ規格に違反している転送シーケンスとして、ＤＡＴＡパケットを送信するホスト装置と接続した場合であっても、通信をストールさせることなく接続処理を完了することができ、自動応答のデッドロックを回避することができるようになる。
【００２６】
以上で示した情報処理装置１０は、例えば以下のように変更することも可能である。例えば、メインＣＰＵと、サブＣＰＵの２つのＣＰＵを備えるマルチプロセッサ型の情報処理装置に本発明を適用することも可能である。
【符号の説明】
【００２７】
１０  情報処理装置
１１  メインＣＰＵ
１２  サブＣＰＵ
１３  ＵＳＢコントローラ
１４  ユーザインタフェース部
１５  ＤＤＲコントローラ
１６  省エネ拡張部
１７  ＭＦＰ機能部
２３  第１送信ＦＩＦＯバッファ
２４  第２送信ＦＩＦＯバッファ
２５  第１受信ＦＩＦＯバッファ
２６  第２受信ＦＩＦＯバッファ
２７  自動応答部
２８  レジスタ部
２９  ＤＭＡコントローラ
３１  データパス
３２  レジスタパス
３３  データパス
４１  自動応答制御部
４２  記憶装置
４３  判別部
【先行技術文献】
【特許文献】
【００２８】
【特許文献１】特開２００４−２１８５９号公報
【図１】
2014174924.tif 000003
【図２】
2014174924.tif 000004
【図３】
2014174924.tif 000005
【図４】
2014174924.tif 000006
【図５】
2014174924.tif 000007
【図６】
2014174924.tif 000008
【図７】
2014174924.tif 000009
【図８】
2014174924.tif 000010