(57)【要約】      （修正有）【課題】スリープ状態に移行する際、省電力状態に移行するときに外部機器から投入されたデータの消失を防ぐことのできる画像形成装置を提供する。【解決手段】外部機器からデータを受信して画像を形成する画像形成装置とその制御方法であって、一定時間、外部機器からデータを受信しない場合に消費電力を低下させる省電力状態に移行する際、外部機器とのインターフェースを制御するインターフェース手段に対して、外部機器からのデータの受信に対してＮＡＫ応答を行うように設定し、ＮＡＫ応答を行うように設定した後、所定時間内に外部機器からのデータの受信があったとき、インターフェース手段に対して設定したＮＡＫ応答を行う設定を解除する。【選択図】図３
2015212052.tif 000002
【特許請求の範囲】
【請求項１】
外部機器からデータを受信して画像を形成する画像形成装置であって、
前記外部機器とのインターフェースを制御するインターフェース手段と、
一定時間、前記外部機器からデータを受信しない場合に消費電力を低下させる省電力状態に移行する際、前記インターフェース手段に対して前記外部機器からのデータの受信に対してＮＡＫ応答を行うように設定する設定手段と、
前記設定手段がＮＡＫ応答を行うように設定した後、所定時間内に前記外部機器からのデータの受信があったとき、前記インターフェース手段に対して設定した前記ＮＡＫ応答を行う設定を解除するように制御する制御手段と、
を有することを特徴とする画像形成装置。
【請求項２】
外部機器からデータを受信して画像を形成する画像形成装置であって、
前記外部機器とのインターフェースを制御するインターフェース手段と、
一定時間、前記外部機器からデータを受信しない場合に消費電力を低下させる省電力状態に移行する際、前記インターフェース手段に対して前記外部機器からのデータの受信に対してＮＡＫ応答を行うように設定する設定手段と、
前記設定手段がＮＡＫ応答を行うように設定した後、前記外部機器からのデータに対してＮＡＫ応答を行うとともに、前記ＮＡＫ応答を行うように設定した後の前記外部機器からのデータに応じて、前記インターフェース手段に対して設定した前記ＮＡＫ応答を行う設定を解除するように制御する制御手段と、
を有することを特徴とする画像形成装置。
【請求項３】
前記インターフェース手段は、前記設定手段によりＮＡＫ応答を行うように設定される前に、前記外部機器からのデータの受信があったとき前記外部機器にＡＣＫ応答を行うことを特徴とする請求項１又は２に記載の画像形成装置。
【請求項４】
前記設定手段は更に、前記外部機器からデータを受信すると前記制御手段に対して割り込みを発生するように前記インターフェース手段に設定することを特徴とする請求項１乃至３のいずれか１項に記載の画像形成装置。
【請求項５】
前記制御手段は更に、前記設定手段が前記ＮＡＫ応答を行うように設定した後、前記所定時間内に前記外部機器からのデータの受信がないときは、前記省電力状態に移行する処理を続行することを特徴とする請求項１乃至４のいずれか１項に記載の画像形成装置。
【請求項６】
前記インターフェース手段は、前記ＮＡＫ応答を行った後に前記ＮＡＫ応答を行う設定が解除されていると、前記外部機器から前記画像形成装置の応答準備を確認をするためのＰＩＮＧパケットに対してＡＣＫ応答を行うことを特徴とする請求項１乃至５のいずれか１項に記載の画像形成装置。
【請求項７】
外部機器からデータを受信して画像を形成する画像形成装置であって、
前記外部機器とのインターフェースを制御するインターフェース手段と、
一定時間、前記外部機器からデータを受信しない場合に消費電力を低下させる省電力状態に移行する際、前記インターフェース手段に対して前記外部機器からのデータの受信に対してＮＡＫ応答を行うように設定する設定手段と、
前記設定手段がＮＡＫ応答を行うように設定する前に、前記外部機器からのデータの受信があったとき前記インターフェース手段に対して設定した前記ＮＡＫ応答を行う設定を解除するように制御する制御手段と、
を有することを特徴とする画像形成装置。
【請求項８】
前記制御手段は、前記設定手段がＮＡＫ応答を行うように設定して前記外部機器からのデータの受信に対して前記インターフェース手段がＮＡＫ応答を行った後、前記外部機器からのデータの受信による割り込みにより、前記設定手段が前記ＮＡＫ応答を行うように前記インターフェース手段に設定する前に前記外部機器からのデータの受信があったと判定することを特徴とする請求項７に記載の画像形成装置。
【請求項９】
前記設定手段は更に、前記ＮＡＫ応答を行うように設定するとき、前記外部機器からデータを受信すると前記制御手段に対して割り込みを発生するように前記インターフェース手段に設定しないことを特徴とする請求項８に記載の画像形成装置。
【請求項１０】
前記インターフェースは、ＵＳＢインターフェースであることを特徴とする請求項１乃至９のいずれか１項に記載の画像形成装置。
【請求項１１】
前記外部機器とのインターフェースを制御するインターフェースを有し、外部機器からデータを受信して画像を形成する画像形成装置を制御する制御方法であって、
一定時間、前記外部機器からデータを受信しない場合に消費電力を低下させる省電力状態に移行する際、前記インターフェースに対して前記外部機器からのデータの受信に対してＮＡＫ応答を行うように設定する設定工程と、
前記設定工程がＮＡＫ応答を行うように設定した後、所定時間内に前記外部機器からのデータの受信があったとき、前記インターフェースに対して設定した前記ＮＡＫ応答を行う設定を解除するように制御する制御工程と、
を有することを特徴とする画像形成装置の制御方法。
【請求項１２】
コンピュータを、請求項１乃至１０のいずれか１項に記載の画像形成装置として機能させるためのプログラム。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、画像形成装置とその制御方法、及びプログラムに関する。
【背景技術】
【０００２】
ＵＳＢ（Universal Serial Bus）Ｉ／Ｆ（インターフェース）を持つプリンタや複合機等のプリンタ装置は、ＵＳＢＩ／Ｆを介してホストＰＣ（ＰＣ）と通信し、そのＰＣから送信される印刷データを受信して印刷を行う。このようなプリンタ装置がＵＳＢＩ／Ｆを介してＰＣと通信する場合、そのＰＣに存在するプリンタドライバと、プリンタ装置において印刷処理を行うモジュールとがハンドシェークしながら通信を行う。このようなＰＣとプリンタ装置との間の通信には、双方向通信と片方向通信の２種類が存在している。
【０００３】
ＵＳＢＩ／Ｆを介した双方向通信及び片方向通信ともに、常にＰＣが通信制御の主導権を握り、プリンタ装置が制御を握ることができない。但し、双方向通信の場合は、プリンタ装置の意志を通知することが可能なため、プリンタ装置がスリープ状態に移行したい場合、スリープ状態に移行する前にＰＣとハンドシェークを行った後にスリープ状態に移行できる。一方、片方向通信の場合は、プリンタ装置の意志を通知することができないため、プリンタ装置がスリープ状態に移行したい場合であってもＰＣにスリープ状態に移行することを通知できない。
特許文献１では、プリンタがスリープ状態への移行処理を進めていく際に、受信ＤＭＡを停止させ、その後、プリンタがＮＡＫ応答するように設定することが記載されている。
【先行技術文献】
【特許文献】
【０００４】
【特許文献１】特開２００７−６８１５６号公報
【発明の概要】
【発明が解決しようとする課題】
【０００５】
プリンタ装置がスリープ状態に移行しようとしているときに、ＰＣからプリンタ装置に印刷データが送信されると、その印刷データの一部が受信され、残りのデータが消失することが、その送信タイミングによって発生するおそれがある。しかし上記特許文献１では、片方向通信時に、プリンタがスリープ状態に移行する処理と、ＰＣがプリンタに印刷データを送信するタイミングとが合致した場合の振る舞いの対応がなされていない。
【０００６】
本発明の目的は、上記従来技術の問題点を解決することにある。
【０００７】
本発明の特徴は、画像形成装置が省電力状態に移行するときに投入されたデータの消失を防ぐ技術を提供することにある。
【課題を解決するための手段】
【０００８】
上記目的を達成するために本発明の一態様に係る画像形成装置は以下のような構成を備える。即ち、
外部機器からデータを受信して画像を形成する画像形成装置であって、
前記外部機器とのインターフェースを制御するインターフェース手段と、
一定時間、前記外部機器からデータを受信しない場合に消費電力を低下させる省電力状態に移行する際、前記インターフェース手段に対して前記外部機器からのデータの受信に対してＮＡＫ応答を行うように設定する設定手段と、
前記設定手段がＮＡＫ応答を行うように設定した後、所定時間内に前記外部機器からのデータの受信があったとき、前記インターフェース手段に対して設定した前記ＮＡＫ応答を行う設定を解除するように制御する制御手段と、を有することを特徴とする。
【発明の効果】
【０００９】
本発明によれば、画像形成装置が省電力状態に移行するときに投入されたデータの消失を防ぐことができる。
【００１０】
本発明のその他の特徴及び利点は、添付図面を参照とした以下の説明により明らかになるであろう。なお、添付図面においては、同じ若しくは同様の構成には、同じ参照番号を付す。
【図面の簡単な説明】
【００１１】
添付図面は明細書に含まれ、その一部を構成し、本発明の実施の形態を示し、その記述と共に本発明の原理を説明するために用いられる。
【図１】ホストＰＣ（ＰＣ）とプリンタ装置とがＵＳＢＩ／Ｆを介して片方向通信を行う場合の信号のやり取りを説明する図。
【図２】実施形態１に係るプリンタ装置のハードウェア構成を説明するブロック図。
【図３】実施形態１に係るプリンタ装置におけるスリープ状態への移行処理を説明するフローチャート。
【図４】実施形態１に係るＰＣからプリンタ装置へのＳＯＦパケットの送信例を説明するシーケンス図。
【図５】実施形態１に係るプリンタ装置でＮＡＫ応答を設定した後にＰＣがプリンタ装置に印刷データを送信する例を説明するシーケンス図。
【図６】実施形態１に係るプリンタ装置でＮＡＫ応答を設定する直前にＰＣがプリンタ装置に印刷データを送信する例を説明するシーケンス図。
【図７】実施形態２に係るプリンタ装置によるスリープ状態への移行処理を説明するフローチャート。
【図８】実施形態２に係るＰＣからプリンタ装置へのＳＯＦパケットの送信例を説明するシーケンス図。
【図９】実施形態２に係るプリンタ装置でＮＡＫ応答を設定する直前にＰＣがプリンタ装置に印刷データを送信する例を説明するシーケンス図。
【図１０】実施形態２に係るプリンタ装置がＮＡＫ応答を設定した後にＰＣが印刷データを送信した場合の通信シーケンス図。
【発明を実施するための形態】
【００１２】
以下、添付図面を参照して本発明の実施形態を詳しく説明する。尚、以下の実施形態は特許請求の範囲に係る本発明を限定するものでなく、また本実施形態で説明されている特徴の組み合わせの全てが本発明の解決手段に必須のものとは限らない。尚、本実施形態では、本発明の画像形成装置を印刷やスキャンなどの複数機能を有する複合機を例に説明するが、本発明はこのような複合機に限定されない。
【００１３】
図１は、ホストＰＣ（以下、ＰＣ）１０１とプリンタ装置１０２とがＵＳＢＩ／Ｆを介して片方向通信を行う場合の信号のやり取りを説明する図である。
【００１４】
先ず外部機器であるＰＣ１０１０１は、プリンタ装置１０２にデータを出力する出力コマンド１０３を送信し、その後、ＰＣ１０１はプリンタ装置１０２へデータ１０４を送信する。プリンタ装置１０２がこのデータ１０４を受け取った場合は、そのデータの受領を意図するＡＣＫ１０５を返答する。これによりＰＣ１０１は、ＡＣＫ１０５によりデータ１０４の送信が成功したと判定する。これはＰＣ１０１からプリンタ装置１０２へのデータの送信が正常に終了した場合である。
【００１５】
一方、ＰＣ１０１から送信したデータをプリンタ装置１０２が正常に受信できなかった場合を説明する。ＰＣ１０１からプリンタ装置１０２へデータを出力する出力コマンド１０６を送信し、その後ＰＣ１０１からプリンタ装置１０２にデータ１０７を送信する。プリンタ装置１０２がこのデータ１０７を正常に受信できなかった場合は、正常に受信できなかったことを示すＮＡＫ１０８で返答する。これによりＰＣ１０１は、データ１０７がプリンタ装置１０２で正常に受信されなかったと判定する。
【００１６】
このような片方向通信の場合、ＰＣ１０１からプリンタ装置１０２に常にデータ（コマンド含む）を送信し、プリンタ装置１０２はＡＣＫ１０５又はＮＡＫ１０８でしか応答することができない。このため、プリンタ装置１０２は、スリープ状態（省電力状態）に移行することをＰＣ１０１に通知できない。このような場合は、プリンタ装置１０２がスリープ状態に移行するタイミングでＰＣ１０１がプリンタ装置１０２に印刷データを送信した場合は、そのタイミングによっては印刷データが消失してしまうという問題がある。
【００１７】
［実施形態１］
図２は、実施形態１に係るプリンタ装置１０２のハードウェア構成を説明するブロック図である。
【００１８】
ＣＰＵ２０１は、ＲＡＭ２０４に展開されたプログラムを実行して、このプリンタ装置１０２の動作を制御する。このプログラムはＯＳ等とともにＨＤＤ（ハードディスクドライブ）２０３にインストールされており、電源オン時、ＣＰＵ２０１は不揮発メモリ２１２に記憶されているブートプログラムを実行して、そのプログラムやＯＳをＲＡＭ２０４に展開する。またＨＤＤ２０３は、プリンタ装置１０２のソフトウェア及び、このプリンタ装置１０２が動作するのに必要なデータベース、また一次保存ファイル等を格納する。尚、このＨＤＤ２０３に代えて、ＳＳＤ（Solid State Drive）やＵＳＢメモリ等の他の大容量不揮発メモリを用いても良い。ＲＡＭ２０４は、ＣＰＵ２０１のプログラムの展開エリアやワークエリアを提供している。ネットワークコントローラ２０５とネットワークコントローラインファーフェース２０６は、プリンタ装置１０２とネットワーク上の他の機器と通信を行う。ＵＳＢファンクションコントローラ２１５とＵＳＢファンクションＩ／Ｆ２１６は、このプリンタ装置１０２とＰＣ１０１との間の通信を行う。このＵＳＢファンクションＩ／Ｆ２１６とＰＣ１０１とはＵＳＢケーブルを介して接続される。
【００１９】
表示制御部２０７は、表示部２０８への表示を制御して、例えば動作状況をユーザが確認できるような表示を行う。入力部２１０は、このプリンタ装置１０２へのユーザからの指示を受け付ける。入力部コントローラ２０９は、入力部２１０からの指示入力を制御する。入力部２１０は、具体的には、キーボードやポインティングデバイスや、１０キー、カーソルキー等を備える。入力部２１０がタッチパネルを含む場合は、表示部２０８の画面を介してユーザからの指示が入力される。ＲＴＣ２１１は、時計機能、アラーム機能、タイマ機能等を有するリアルタイムクロックである。不揮発メモリ２１２は、例えばＲＯＭ，ＳＲＡＭやＥＥＰＲＯＭ等であってもよい。プリンタＩ／Ｆ２１３は、プリンタエンジン２１４とのインターフェースを制御する。スキャナＩ／Ｆ２１７は、スキャナエンジン２１８とのインターフェースを制御する。システムバス２０２は、ＣＰＵ２０１と上述のメモリやインターフェースなどと接続している。
【００２０】
次に実施形態１に係るプリンタ装置１０２のスリープ状態の定義を説明する。
【００２１】
プリンタ装置１０２がスリープ状態では、ＨＤＤ２０３、表示制御部２０７、表示部２０８、不揮発メモリ２１２、プリンタＩ／Ｆ２１３、プリンタエンジン２１４、スキャナＩ／Ｆ２１７、スキャナエンジン２１８への電力供給が停止されている。ＣＰＵ２０１，ＲＡＭ２０４、ネットワークコントローラＩ／Ｆ２０６、ネットワークコントローラ２０５、ＵＳＢファンクションＩ／Ｆ２１６、ＵＳＢファンクションコントローラ２１５、入力部コントローラ２０９、入力部２１０への電力供給は維持される。これによりネットワークからの受信、ＵＳＢインターフェースからの受信、或いは入力部２１０へのユーザの操作により、プリンタ装置１０２はスリープ状態から復帰できる。尚、これら各部への電力供給が維持されている状態でも、例えばＣＰＵ２０１のクロックの周波数を低下させるなどして、通常の動作時に比べて消費電力が少なく抑えられている。そして、ＣＰＵ２０１が、スリープ状態から復帰する要因である外部割り込みを受信できる状態にある。
【００２２】
図３は、実施形態１に係るプリンタ装置１０２におけるスリープ状態への移行処理を説明するフローチャートである。尚、このフローチャートで示す処理は、ＣＰＵ２０１がＲＡＭ２０４に展開されたプログラムを実行することにより達成される。
【００２３】
まずＳ３０１でＣＰＵ２０１は、ＰＣ１０１から印刷データが送信されたかどうかを確認する。そしてＳ３０２でＣＰＵ２０１が、一定時間内にＰＣ１０１から印刷データ或いはコントロールデータを受信したかどうかを判定し、一定時間内にデータ送信がないと判定するとＳ３０３に処理を進める。尚、Ｓ３０２でデータ送信があると判定するとＳ３０１に戻る。但し、この際、ＰＣ１０１から受信するＳＯＦパケット３０１は、データとみなさない。
【００２４】
Ｓ３０３でＣＰＵ２０１は、ＵＳＢファンクションコントローラ２１５に、データ受信時にＮＡＫ応答を行うように設定し、またデータ受信時に割込みをＣＰＵ２０１に通知するように設定してＳ３０４に進む。Ｓ３０４でＣＰＵ２０１は、ＮＡＫ応答を設定した後、データを受信したかどうかを判定し、Ｓ３０５で所定時間内、例えば２秒以内にデータの受信を検知しなければＳ３０６に進んで、スリープ処理を継続させる処理をすすめる。その後、プリンタ装置１０２は消費電力を低下させたスリープ状態に移行する。
【００２５】
一方、Ｓ３０５でＣＰＵ２０１は、ＮＡＫ応答を設定しているときにデータの受信を検知したときはＳ３０７に進む。Ｓ３０７でＣＰＵ２０１は、ＵＳＢファンクションコントローラ２１５に対するＮＡＫ応答の設定と、ＮＡＫ応答を設定している間のデータ受信の割り込み設定を解除してＳ３０１に進む。このようにＳ３０７の処理を実行することで、再びプリンタ装置１０２は、ＰＣ１０１からの印刷データを受信できるようになり、印刷データを受信すると印刷処理を開始できるようになる。
【００２６】
以下、図３のフローチャートのＳ３０１→Ｓ３０２→Ｓ３０３→Ｓ３０４→Ｓ３０５→Ｓ３０６の処理を行う場合の、ＰＣ１０１とプリンタ装置１０２との間で行われるＵＳＢを介した通信処理の流れを図４を参照して説明する。
【００２７】
図４は、実施形態１に係るＰＣ１０１からプリンタ装置１０２へのＳＯＦパケットの送信例を説明するシーケンス図である。
【００２８】
ここでＰＣ１０１は、プリンタ装置１０２に送信する印刷データが無いため、ＳＯＦパケット４０１，４０２を定期的に送信している。このときプリンタ装置１０２は、受信するパケットがＳＯＦパケットのみでデータパケットを受信しない。このため図３のＳ３０２でＣＰＵ２０１は、一定期間内データを受信していないと判定する。これによりＣＰＵ２０１は、図３のＳ３０３に示すように、ＵＳＢファンクションコントローラ２１５へのＮＡＫ応答の設定とＮＡＫ応答を設定している間のデータ受信の割り込み設定を行う。これは図４では、４０３で示されている。
【００２９】
その後、ＰＣ１０１は、印刷データが存在しないのでＳＯＦパケット４０４，４０５を定期的に送信する。その後、このまま時間が経過して、図３のＳ３０６でプリンタ装置１０２のＣＰＵ２０１はスリープ状態に移行する。これは図４の４０６に対応している。従って、これ以降は、ＰＣ１０１からはプリンタ装置１０２が見えなくなるためＳＯＦパケットの送信も停止する。
【００３０】
次に図３のフローチャートのＳ３０１→Ｓ３０２→Ｓ３０３→Ｓ３０４→Ｓ３０５→Ｓ３０７の処理を行うときに、ＰＣ１０１とプリンタ装置１０２との間で行われるＵＳＢを介した通信処理の流れを図５を参照して説明する。この説明は、ＮＡＫ応答を設定した後にＰＣ１０１が印刷データを送信した場合である。
【００３１】
図５は、実施形態１に係るプリンタ装置１０２でＮＡＫ応答を設定した後にＰＣ１０１がプリンタ装置１０２に印刷データを送信する例を説明するシーケンス図である。
【００３２】
ＰＣ１０１は、プリンタ装置１０２に送信する印刷データが無いため、ＳＯＦパケット５０１，５０２を定期的に送信している。このときプリンタ装置１０２が受信するパケットがＳＯＦパケットのみで一定期間、データパケットを受信しないため、図３のＳ３０２でＣＰＵ２０１が一定期間、データ受信がないと判定する。これによりＣＰＵ２０１は、ＵＳＢファンクションコントローラ２１５にＮＡＫ応答の設定と、ＮＡＫ応答の設定中のデータ受信の割り込みを設定するＳ３０３の処理を実施する。これは図５の５０３に該当する。その後、ＰＣ１０１が印刷データを送信する場合、ます出力パケット５０４を送信し、続けてデータ５０５を送信する。このときプリンタ装置１０２は、既にＮＡＫ応答するように設定されているので、ＮＡＫ５０６を応答する。このときにＳ３０３で行った割り込みの設定によって、データ受信により発生した割り込みがＣＰＵ２０１に通知される。ＣＰＵ２０１は、この割り込み通知を受けるとＳ３０５の判定によりデータ受信の割り込みがあったと判定してＳ３０７に進む。そしてＣＰＵ２０１は、ＵＳＢファンクションコントローラ２１５へのＮＡＫ応答の解除と、ＮＡＫ応答の設定時のデータ受信の割り込み設定を解除する。これは図５の５０７に該当する。
【００３３】
これによりＰＣ１０１がデータ５０５の送信失敗のリトライを行うために、プリンタ装置１０２の応答準備を確認をするためにＰＩＮＧパケット５０８を送信する。このときプリンタ装置１０２は応答可能な状態にあるためＡＣＫ応答５０９を返す。尚このとき、Ｓ３０７の設定処理がＰＩＮＧパケット５０８の送信に間に合わなかった場合は、プリンタ装置１０２はＮＡＫ応答を返すことになる。この場合、ＰＣ１０１は、プリンタ装置１０２からＡＣＫ応答を受信するまで、再度、ＰＩＮＧパケットを送信することになる。
【００３４】
こうしてＰＣ１０１がＡＣＫ応答５０９を受信すると、以前に送信失敗したデータ５０５のリトライのために出力パケット５１０，データ５１１を送信する。これによりプリンタ装置１０２は、データ５１１が受信できるためＡＣＫ応答５１２を返す。その後、ＰＣ１０１は、印刷データが続く場合は、出力パケット５１３、データ５１４を送信し、プリンタ装置１０２はＡＣＫ応答５１５を返し、印刷処理を継続することが可能になる。
【００３５】
以上説明したように、この処理によれば、プリンタ装置がスリープ状態に移行しようとして、ＵＳＢインターフェースにＮＡＫ応答を設定した後にＰＣが印刷データを送信した場合でも、印刷データを消失することなく印刷を実行することができる。
【００３６】
以下に図３のフローチャートでＳ３０１→Ｓ３０２→Ｓ３０３→Ｓ３０４→Ｓ３０５→Ｓ３０７の順に処理を行うときの、ＰＣ１０１とプリンタ装置１０２間で行われるＵＳＢの通信シーケンスを図６を参照して説明する。この説明は、ＮＡＫ応答を設定する直前にＰＣ１０１が印刷データを送信した場合のシーケンスである。
【００３７】
図６は、実施形態１に係るプリンタ装置１０２でＮＡＫ応答を設定する直前にＰＣ１０１がプリンタ装置１０２に印刷データを送信する例を説明するシーケンス図である。
【００３８】
ＰＣ１０１は、プリンタ装置１０２に送信する印刷データが無いため、ＳＯＦパケット６０１，６０２を定期的に送信している。これによりプリンタ装置１０２は、受信するパケットがＳＯＦパケットのみでデータパケットがないため、図３のＳ３０２でＣＰＵ２０１は一定期間内データ受信がないと判定してＳ３０３の処理を実施しようと処理を進めている。このときにＰＣ１０１が印刷データを送信すると、プリンタ装置１０２は、印刷データの先頭を受け取ってしまう。即ち、ＰＣ１０１が出力パケット６０３、データ６０４をプリンタ装置１０２に送信すると、まだＳ３０３の処理が実行されていないプリンタ装置１０２は、そのデータ６０４を受け取ってＡＣＫ応答６０５を返答する。このＡＣＫ応答６０５は、ＵＳＢファンクションコントローラ２１５が反応して返答しているので、受信割り込みがまだＣＰＵ２０１に到達していない。このようにして、ＣＰＵ２０１に割り込みが到達する前に、図６の６０６で示すように、図３のＳ３０３のＮＡＫ応答の設定とデータ受信時の割り込み設定が行われる。
【００３９】
一方、ＰＣ１０１は、ＡＣＫ応答６０５を受け取っているため、継続して印刷データを送信しようとして、ＰＣ１０１は、出力パケット６０７、データ６０８を送信する。これに対してプリンタ装置１０２は、Ｓ３０３の処理でデータ受信に対してＮＡＫ応答が設定されているためＮＡＫ応答６０９で返答する。またこの時、Ｓ３０３で行った割り込み設定によって、ＣＰＵ２０１に割り込み通知がくる。ＣＰＵ２０１が割り込み通知を受けるとＳ３０５の判定によりデータ受信があったと判定してＳ３０７に進み、ＵＳＢファンクションコントローラ２１５へのＮＡＫ応答の解除と、ＮＡＫ応答によるデータ受信の割り込み設定を解除する。これは図６の６１０で示されている。
【００４０】
次にＰＣ１０１は、データ６０８に対してＮＡＫ応答６０９があったため送信失敗のリトライを行うために、プリンタ装置１０２の応答準備確認をするためにＰＩＮＧパケット６１１を送信する。このときプリンタ装置１０２は、Ｓ３０７の処理で応答可能な状態になっているためＡＣＫ応答６１２を返す。尚、このときＳ３０７の設定処理がＰＩＮＧパケット６１１の送信前に間に合わなかった場合は、ＮＡＫ応答を返すことになる。その場合、ＰＣ１０１はプリンタ装置１０２からＡＣＫ応答を受信するまで、再度、ＰＩＮＧパケットを送信することになる。
【００４１】
こうしてＡＣＫ応答６１２を受信したＰＣ１０１は、以前に送信に失敗したデータ６０８のリトライのために、出力パケット６１３、データ６１４を送信する。このときプリンタ装置１０２は、データ６１４を受信可能なためＡＣＫ応答６１５を返す。その後、ＰＣ１０１は、印刷データが続く場合は、出力パケット６１６、データ６１７を送り、プリンタ装置１０２は、ＡＣＫ応答６１８を返すことにより印刷処理を続行することが可能になる。
【００４２】
以上説明したようにこの処理によれば、プリンタ装置がスリープ状態に移行しようとして、ＵＳＢインターフェースにＮＡＫ応答を設定する前にＰＣが印刷データを送信した場合でも、印刷データを消失することなく印刷を実行することができる。
【００４３】
以上説明したように実施形態１によれば、プリンタ装置がスリープ状態に移行しようとしているときにＰＣが印刷データを送信した場合でも、印刷データを消失することなく印刷を実行することができる。
【００４４】
［実施形態２］
次に本発明の実施形態２を説明する。前述の実施形態１では、プリンタ装置１０２がＮＡＫ応答を行う設定になった後、一定時間以内にＰＣ１０１が印刷データを送信すると、ＮＡＫ応答中の受信割り込み設定により、ＣＰＵ２０１が印刷データを受信できる例を説明した。
【００４５】
これに対して実施形態２では、ＮＡＫ応答の設定を行うのみで、ＮＡＫ応答中の受信割り込み設定を行わずに、プリンタ装置１０２がスリープ状態へ移行中にＰＣ１０１から印刷データを送信されても印刷データを消失しない例を説明する。尚、実施形態２に係るプリンタ装置１０２の構成等は前述の実施形態１と同様であるため、その説明を省略する。
【００４６】
図７は、実施形態２に係るプリンタ装置１０２によるスリープ状態への移行処理を説明するフローチャートである。尚、このフローチャートで示す処理は、ＣＰＵ２０１がＲＡＭ２０４に展開されたプログラムを実行することにより達成される。このフローチャートで示す処理は、プリンタ装置１０２が消費電力を低下させるスリープ状態に移行する場合の処理である。
【００４７】
先ずＳ７０１でＣＰＵ２０１は、ＰＣ１０１から印刷データを受信したかどうかを確認する。そしてＳ７０２でＣＰＵ２０１は、一定時間、ＰＣ１０１から印刷データ、或いはコントロールデータを受信してないと判定するとＳ７０３に処理を進める。Ｓ７０２の判定で、データを受信した判定するとＳ７０１に戻る。但しこの際、ＳＯＦパケットは、データと判断しない。Ｓ７０３でＣＰＵ２０１は、ＵＳＢファンクションコントローラ２１５に、データ受信時にＮＡＫ応答を行うように設定する。次にＳ７０４に進みＣＰＵ２０１は、Ｓ７０３の設定を行った後、ＮＡＫ応答の設定処理の直前にデータ受信をしているかどうかを判定する。Ｓ７０４でＣＰＵ２０１が、データ受信がなかったと判定するとＳ７０５に進み、ＣＰＵ２０１は、スリープ状態への移行処理を継続し、その後、プリンタ装置１０２は、消費電力を低下させたスリープ状態に移行する。
【００４８】
一方、Ｓ７０４の判定でＣＰＵ２０１が、ＮＡＫ応答の設定処理の直前にデータ受信があったと判定した場合はＳ７０６に進みＣＰＵ２０１は、ＵＳＢファンクションコントローラ２１５に対するＮＡＫ応答の設定を解除する。このＳ７０６の処理を実行することで、再び、プリンタ装置１０２は、ＰＣ１０１からの印刷データを受信できるようになり、印刷処理を再開できるようになる。
【００４９】
次に、図７のフローチャートで説明したＳ７０１→Ｓ７０２→Ｓ７０３→Ｓ７０４→Ｓ７０５処理を行う場合のＰＣ１０１とプリンタ装置１０２との間で行われるＵＳＢの通信シーケンスを図８を参照して説明する。
【００５０】
図８は、実施形態２に係るＰＣ１０１からプリンタ装置１０２へのＳＯＦパケットの送信例を説明するシーケンス図である。
【００５１】
ここでＰＣ１０１は、プリンタ装置１０２に送信する印刷データが無いため、ＳＯＦパケット８０１，８０２を定期的に送信している。このときプリンタ装置１０２は、受信するパケットがＳＯＦパケットのみでデータパケットがないため、Ｓ７０２でＣＰＵ２０１は、一定期間内、データ受信がないと判定する。そしてＣＰＵ２０１は図８の８０３で、ＵＳＢファンクションコントローラ２１５にＮＡＫ応答を設定する、図７のＳ７０３の処理を実施する。その後もＰＣ１０１は、印刷データがないためＳＯＦパケット８０４，８０５を定期的に送信する。これによりプリンタ装置１０２のＣＰＵ２０１は、Ｓ７０４でＮＡＫ設定の処理の直前にデータの受信がなかったと判定してＳ７０５に進み、スリープ状態に移行する。これが図８の８０６で示されており、この状態ではＰＣ１０１からはプリンタ装置１０２が見えなくなるため、ＳＯＦパケットも送信されなくなる。
【００５２】
次に図７のフローチャートのＳ７０１→Ｓ７０２→Ｓ７０３→Ｓ７０４→Ｓ７０６の処理を行う場合に、ＰＣ１０１とプリンタ装置１０２との間で行われるＵＳＢを介した通信処理の流れを図９を参照して説明する。この説明は、ＮＡＫ応答を設定する直前にＰＣ１０１が印刷データを送信した場合である。
【００５３】
図９は、実施形態２に係るプリンタ装置１０２でＮＡＫ応答を設定する直前にＰＣ１０１がプリンタ装置１０２に印刷データを送信する例を説明するシーケンス図である。
【００５４】
最初、ＰＣ１０１は、プリンタ装置１０２に送信する印刷データが無いため、ＳＯＦパケット９０１，９０２を定期的に送信している。このときプリンタ装置１０２は、受信するパケットがＳＯＦパケットのみでデータパケットを受信していないため、Ｓ７０２でＣＰＵ２０１が、一定期間内、データ受信がないと判定する。そしてＣＰＵ２０１は、Ｓ７０３の処理を実施しようと処理を進めようとする瞬間に、ＰＣ１０１が印刷データを送信するとプリンタ装置１０２は、印刷データの先頭を受け取ってしまう。即ち、ＰＣ１０１が出力パケット９０３、データ９０４を送信すると、まだＳ７０３の処理が実行されていないプリンタ装置１０２は、このデータ９０４を受け取ってＡＣＫ応答９０５を返答する。このＡＣＫ応答９０５は、ＵＳＢファンクションコントローラ２１５が反応して返答しているため、ＣＰＵ２０１はこの瞬間、まだデータ９０４を受信したことが分かっていない。
【００５５】
次に９０６で、ＣＰＵ２０１にデータの受信割り込みが到達する前に、Ｓ７０３の処理を実行されるタイミングが存在する。このときＰＣ１０１はＡＣＫ応答９０５を受け取っているため、継続して印刷データを送信しようとして、出力パケット９０７、データ９０８を送信する。このときプリンタ装置１０２は、Ｓ７０３の処理でデータ受信に対してＮＡＫ応答が設定されているため、ＮＡＫ応答９０９で返答する。そして、これに近いタイミングで、データ９０４を受信したことによる割り込みがＣＰＵ２０１に到達する。こうしてＣＰＵ２０１が割り込み通知を受けると、Ｓ７０４の判定でデータの受信があったと判定してＳ７０６の処理に進み、ＵＳＢファンクションコントローラ２１５に対するＮＡＫ応答の設定を解除する。これが図９の９１０で示されている。
【００５６】
一方、ＰＣ１０１はＮＡＫ応答９０９を受信したため、データ９０８の送信失敗のリトライを行う。そして、まずプリンタ装置１０２の応答準備を確認するためにＰＩＮＧパケット９１１を送信する。このときプリンタ装置１０２は、Ｓ７０６の処理により応答可能な状態になっているためＡＣＫ９１２応答を返す。尚、このときＳ７０６の設定処理がＰＩＮＧパケット９１１の送信に間に合わなかった場合は、ＮＡＫ応答を返すことになる。その場合、ＰＣ１０１は、プリンタ装置１０２からＡＣＫを貰うまで、再度ＰＩＮＧパケットを送信することになる。こうしてＡＣＫ応答９１２を受信したＰＣ１０１は、以前に送信失敗したデータ９０８のリトライのために、出力パケット９１３、データ９１４を送信する。このときプリンタ装置１０２は、データ９１４が受信可能になっているためＡＣＫ応答９１５を返す。その後、ＰＣ１０１は、印刷データが続く場合は、出力パケット９１６、データ９１７を送信し、プリンタ装置１０２はＡＣＫ応答９１８を返し、印刷処理を継続することが可能になる。
【００５７】
次に図７のフローチャートのＳ７０１→Ｓ７０２→Ｓ７０３→Ｓ７０４→Ｓ７０５処理を行う場合の、ＰＣ１０１とプリンタ装置１０２との間で行われるＵＳＢを介して通信処理の流れを図１０を参照して説明する。この説明は、ＮＡＫ応答を設定した後にＰＣ１０１が印刷データを送信した場合の通信シーケンスである。
【００５８】
図１０は、実施形態２に係るプリンタ装置１０２がＮＡＫ応答を設定した後にＰＣ１０１が印刷データを送信した場合の通信シーケンス図である。
【００５９】
最初、ＰＣ１０１は、プリンタ装置１０２に送信する印刷データが無いため、ＳＯＦパケット１００１，１００２を定期的に送信している。ここではプリンタ装置１０２が受信するパケットがＳＯＦパケットのみでデータパケットがないため、Ｓ７０２でＣＰＵ２０１は、一定期間内、データ受信がないと判定する。そしてＳ７０３に進みＣＰＵ２０１は、ＵＳＢファンクションコントローラ２１５にＮＡＫ応答を設定する処理を実施する。これは図１０の１００３に相当している。その後、ＰＣ１０１が印刷データを送信するときは出力パケット１００４を送信し、続けてデータ１００５を送信する。このときプリンタ装置１０２は、ＮＡＫ応答が設定されているのでＮＡＫ１００６を応答する。この時、実施形態２では、ＮＡＫ応答の設定時のデータ受信の割り込み設定を行っていないため、ＣＰＵ２０１は、時間が経過してもデータ１００５の受信に気づくことはない。
【００６０】
次にＰＣ１０１は、ＮＡＫ応答１００６を受信したため、プリンタ装置１０２の応答準備を確認するためにＰＩＮＧパケット１００７を送信する。これに対してプリンタ装置１０２は、Ｓ７０３でＮＡＫ応答が設定されたままであるため、再びＮＡＫ応答１００８を返す。そしてＣＰＵ２０１がＳ７０５の処理を実行するまで、ＰＣ１０１はＰＩＮＧパケット１００９を繰り返し送信し、プリンタ装置１０２は、ＮＡＫ応答１０１０を返し続けることになる。
【００６１】
こうしてＣＰＵ２０１は、次にＳ７０５に進んでスリープ状態への移行処理を実行すると、プリンタ装置１０２はスリープ状態となって消費電力を低下させた状態になる。こうしてＳ７０５の処理が実行されてプリンタ装置１０２の電力がオフされるとＰＣ１０１からプリンタ装置１０２が見えなくなり、ＰＣ１０１は、これ以降、ＰＩＮＧパケットもＳＯＦパケットも送信しなくなる。こうしてＰＣ１０１は、データ１００５を送信できずにプリンタ装置１０２はスリープ状態に移行してしまう。これを図１０の１０１１で示す。
【００６２】
しかし、このときＰＣ１０１は、印刷データを１バイトもプリンタ装置１０２に送信していないため、印刷データを破棄することなく、ＰＣ１０１のプリントスプーラに蓄積する。その後、ＰＣ１０１は、プリンタ装置１０２がスリープ状態から復帰した際に、そのプリントスプーラに蓄積していた印刷データを送信することができる。こうして印刷データが消失するのを回避できる。
【００６３】
以上説明したように実施形態２によれば、プリンタ装置がスリープ状態に移行するときにＰＣがプリンタ装置に印刷データを送信した場合でも、印刷データを消失させることなく印刷を実行させることができる。そして印刷処理が終了すると、プリンタ装置はスリープ状態に移行することができる。尚、タイミングによっては、プリンタ装置１０２がスリープ状態に移行する前に印刷処理を完了できない場合もあるが、プリンタ装置１０２がスリープ状態より復帰した際に、印刷処理を完了させることができる。
【００６４】
（その他の実施形態）
また、本発明は、以下の処理を実行することによっても実現される。即ち、上述した実施形態の機能を実現するソフトウェア（プログラム）を、ネットワーク又は各種記憶媒体を介してシステム或いは装置に供給し、そのシステム或いは装置のコンピュータ（又はＣＰＵやＭＰＵ等）がプログラムを読み出して実行する処理である。
【００６５】
本発明は上記実施の形態に制限されるものではなく、本発明の精神及び範囲から離脱することなく、様々な変更及び変形が可能である。従って、本発明の範囲を公にするために、以下の請求項を添付する。
【符号の説明】
【００６６】
１…ホストＰＣ（ＰＣ），２…プリンタ装置、２０１…ＣＰＵ，２０３…ハードディスク（ＨＤＤ），２０４…ＲＡＭ，２１４…プリンタエンジン、２１５…ＵＳＢファンクションコントローラ
【図１】
2015212052.tif 000003
【図２】
2015212052.tif 000004
【図３】
2015212052.tif 000005
【図４】
2015212052.tif 000006
【図５】
2015212052.tif 000007
【図６】
2015212052.tif 000008
【図７】
2015212052.tif 000009
【図８】
2015212052.tif 000010
【図９】
2015212052.tif 000011
【図１０】
2015212052.tif 000012