(57)【要約】【課題】駆動機器の寿命を考慮するとともに、デッドロックの発生を回避できる画像形成装置を提供する。【解決手段】プリンタエンジンは、コマンドが給紙開始コマンドであれば（Ｓ２２でＹＥＳ）、給紙開始コマンド数ｍに１加算する（Ｓ２３）。この給紙開始コマンド数ｍの初期値は０である。次いで格納されたスタック数ｎから給紙開始コマンド数ｍを減算する。次いで、ｎ−ｍが０以下か否かの判断をする（Ｓ２６）。ｎ−ｍの値は、通常の場合は、上記したスタック数になるまでｍの値が加算され、スタック数になると０以下となって、印刷開始処理が行われる（Ｓ２７）。所定時間内に給紙開始コマンドを発行できないときは、スタックコマンドとして０が送信されるが、このときは、プリンタエンジンは、このスタックコマンドを受信時に給紙開始判定を行う（Ｓ２１でＹＥＳ，Ｓ２４でＸ＝０で、Ｓ２６の判定）。この場合は、Ｓ２６でＹＥＳとなるため、印刷が開始される（Ｓ２７）。【選択図】図５
2008260222.tif 000002
【特許請求の範囲】
【請求項１】
画像データをページ単位で用紙に印刷するプリンタエンジンと、前記プリンタエンジンを制御するコントローラとを含む画像形成装置であって、
前記コントローラは、
外部から画像データを受信する受信手段と、
前記受信手段で受信した画像データを基に、前記プリンタエンジンで印刷を開始するタイミングを規定するスタック数を含むスタックコマンドを発行するスタックコマンド発行手段と、
前記受信手段で受信した画像データをページごとに展開する展開手段と、
前記展開手段による画像データの展開が成功したか否かを判別する展開判別手段と、
前記展開手段によるページごとの画像データが展開されたとき、給紙開始コマンドを発行する給紙開始コマンド発行手段と、
前記スタックコマンド、前記給紙開始コマンドおよび展開された画像データを前記プリンタエンジンに送信する第１通信手段を含み、
前記プリンタエンジンは、
前記第１通信手段と通信する第２通信手段と、
前記給紙コマンド発行手段が発行した給紙コマンドを加算する加算手段と、
前記加算手段で加算された値が前記スタック数になったときに展開された画像データの印刷を開始する印刷手段と、
前記展開判別手段が、前記展開手段による画像データの展開が失敗したと判断したときは、前記格納手段に格納された画像データを印刷するよう前記印刷手段を制御する制御手段を含む、画像形成装置。
【請求項２】
前記第２通信手段と前記第１通信手段との通信の可否を判別する通信判別手段を含み、
前記通信判別手段が、前記第２通信手段と前記第１通信手段との通信が失敗したと判断したときは、前記制御手段は、前記スタックコマンド発行手段に、新たなスタックコマンドを発行するように依頼する、請求項１に記載の画像形成装置。
【請求項３】
前記展開判別手段は、前記展開手段による画像データの展開が所定の時間内にできなかったときは、前記展開手段による画像データの展開を失敗したと判別し、前記スタックコマンド発行手段に、新たなスタックコマンドを発行するように依頼する、請求項１または２に記載の画像形成装置。
【請求項４】
前記スタックコマンド発行手段は、新たなスタックコマンドとして、それまでに発行した前記給紙開始コマンドの数より少ない数を含むスタックコマンドを発行する、請求項１から３のいずれかに記載の画像形成装置。
【請求項５】
スタックコマンド発行手段は、新たなスタックコマンドとして、０を含むスタックコマンドを発行する、請求項４に記載の画像形成装置。
【発明の詳細な説明】
【技術分野】
【０００１】
この発明は、プリンタ等の画像形成装置に関し、特に、コントローラとプリンタエンジンとで通信しながら印刷を行う画像形成装置に関する。
【背景技術】
【０００２】
近年、画像形成装置の電子写真プロセス（画像展開以外の部分）は高速化され、毎分数十枚以上の作業が可能となっている。これに対して、ページ記述言語（Page-Description Language）の発達から画像データのビットマップへの展開に要する時間は増大している。
【０００３】
このような状況で複数ページの印刷を実行した場合、従来であれば、１ページ目の画像データの展開が完了した時点で、コントローラからプリンタエンジンに印刷開始要求を送信し、印刷を行っている。しかしながら、１ページ目を印刷し終わった時点で次のページの展開が間に合わないことが多くあり、結果として紙間が広がり、ドラム等の消耗品を無駄に駆動させることになる。このような問題に対処するための方法が、たとえば、特開平５−１６４２１号公報（特許文献１）に開示されている。同公報によれば、予めスタック数で指定された複数ページ分の画像を展開した時点でプリンタエンジンに印刷開始要求を送信している。
【特許文献１】特開平５−１６４２１号公報（要約）
【発明の開示】
【発明が解決しようとする課題】
【０００４】
従来の、ドラム等の消耗品を無駄に駆動させない画像形成装置は上記のように構成されていた。従来の構成では、スタック数まで画像を展開してから印刷を開始しているが、画像の展開待ち中に画像展開を失敗したときの対処等については考慮されておらず、画像形成装置がデッドロックする可能性があった。
【０００５】
この発明は、上記のような問題点に着目してなされたもので、駆動機器の寿命を考慮するとともに、デッドロックの発生を回避できる画像形成装置を提供することを目的とする。
【課題を解決するための手段】
【０００６】
この発明に係る、画像形成装置は、画像データをページ単位で用紙に印刷するプリンタエンジンと、プリンタエンジンを制御するコントローラとを含む。コントローラは、外部から画像データを受信する受信手段と、受信手段で受信した画像データを基に、プリンタエンジンで印刷を開始するタイミングを規定するスタック数を含むスタックコマンドを発行するスタックコマンド発行手段と、受信手段で受信した画像データをページごとに展開する展開手段と、展開手段による画像データの展開が成功したか否かを判別する展開判別手段と、展開手段によるページごとの画像データが展開されたとき、給紙開始コマンドを発行する給紙開始コマンド発行手段と、スタックコマンド、給紙開始コマンドおよび展開された画像データをプリンタエンジンに送信する第１通信手段を含む。プリンタエンジンは、第１通信手段と通信する第２通信手段と、給紙コマンド発行手段が発行した給紙コマンドを加算する加算手段と、加算手段で加算された値がスタック数になったときに展開された画像データの印刷を開始する印刷手段と、展開判別手段が、展開手段による画像データの展開が失敗したと判断したときは、格納手段に格納された画像データを印刷するよう前記印刷手段を制御する制御手段を含む。
【０００７】
好ましくは、第２通信手段と第１通信手段との通信の可否を判別する通信判別手段を含み、通信判別手段が、第２通信手段と第１通信手段との通信が失敗したと判断したときは、制御手段は、スタックコマンド発行手段に、新たなスタックコマンドを発行するように依頼する。
【０００８】
さらに好ましくは、展開判別手段は、展開手段による画像データの展開が所定の時間内にできなかったときは、展開手段による画像データの展開を失敗したと判別し、スタックコマンド発行手段に、新たなスタックコマンドを発行するように依頼する。
【０００９】
スタックコマンド発行手段は、新たなスタックコマンドとして、それまでに発行した給紙開始コマンドの数より少ない数を含むスタックコマンドを発行する。
【００１０】
なお、スタックコマンド発行手段は、新たなスタックコマンドとして、０を含むスタックコマンドを発行してもよい。
【発明の効果】
【００１１】
コントローラにおける画像データの展開が失敗したときは、予め定められた印刷開始枚数であるスタック数に拘わらず、それまでに展開された画像データを印刷する。
【００１２】
その結果、画像形成装置を構成するコントローラおよびプリンタエンジンにおいて、画像展開時の失敗等のエラーによるデッドロックを回避できる。
【発明を実施するための最良の形態】
【００１３】
以下、この発明の実施の形態を、図面を参照して説明する。図１は、この発明の一実施の形態に係る画像形成装置として機能するプリンタ２０の要部を示すブロック図である。図１を参照して、プリンタ２０は、パーソナルコンピュータ（以下、「パソコン」という）１０からの印刷データを受けて印刷を行う。パソコン１０からプリンタ２０へ送信されるデータはページ記述言語で記述されている。
【００１４】
プリンタ２０は、パソコン１０から送信されたデータを展開するコントローラ２１と、コントローラ２１で展開されたデータを印刷するプリンタエンジン３１とを含む。コントローラ２１は、パソコン１０から画像データを受信する受信手段となるインターフェイス部２２と、インターフェイス部２２で受信した画像データをスプールするスプール部２３と、スプール部２３にスプールされた画像データをページ記述言語からページ単位で展開する展開手段として作動する展開部２４と、第１通信手段として作動するとともに、後に説明する所定のコマンドを発行するコマンド発行部２５と、コントローラ２１全体を制御する制御部２６とを含む。
【００１５】
プリンタエンジン３１は、展開部２４で展開した画像データを用紙に印刷する、印刷手段として作動する印刷部３２と、印刷部３２に用紙を供給する給紙部３３と、コマンド発行部２５から発行されたコマンドを受信するとともに、第２通信手段として作動するコマンド受信部３４と、プリンタエンジン３１全体を制御する制御部３５とを含む。
【００１６】
次に、プリンタ２０のコントローラ２１とプリンタエンジン３１とが行う動作について説明する。図２および図３は、この発明の一実施の形態におけるプリンタの動作の具体的な内容を説明するための図である。ここでは、図２に示すように、パソコン１０から受けた印刷データがＡ４サイズで１０枚の用紙に印刷を行うものとする。図３は、印刷データをタイミングＡで受信してから、用紙１０枚分のデータを１ページづつ展開して、タイミングＢで印刷を開始する状態を示している。ここで、１ａ，２ａ，…は１ページ目、２ページ目等のデータを展開するのに必要な時間である。この実施の形態においては、７ページ目の画像データを展開後、プリンタエンジン３１に印刷指示が行われる場合について説明する。この印刷の開始のタイミングを規定するスタック数は、制御部２６で演算され、コマンド発行部２５からスタックコマンドとして発行される。１ａ，２ａ，３ａ等で表されるページの展開時とは限らず、ページの展開中に印刷の開始をプリンタエンジンに指示できる。このように制御することによって、画像形成装置の駆動機器の寿命を延ばすことができる。
【００１７】
次に、制御部２１の具体的な制御内容について説明する。図４は、コントローラ２１の制御部２６が行う動作を示すフローチャートであり、図５は、プリンタエンジン３１の制御部３５が行う動作を示すフローチャートである。制御部２６が行う動作と制御部３５が行う動作とは、互いに図示のないメインルーチンを介して関連付けられているが、ここでは、個別に説明する。
【００１８】
図４を参照して、パソコン１０からページ記述言語で表された印刷データをインターフェイス部２２で受ける（ステップＳ１１、以下ステップを省略する）、その印刷データを展開部２４で展開するのに必要な時間および印刷開始タイミングを演算する（Ｓ１２）。すなわち、この時点で、プリンタエンジン３１の印刷部３２において、どのタイミングで印刷させればよいかがわかっている。
【００１９】
次いで、この演算に基づいて、プリンタエンジン３１によって印刷を開始するタイミングに関するスタック数を含むスタックコマンドを発行する（Ｓ１３）。次いで展開部２４で画像データの展開処理を行う（Ｓ１４）。ページごとの展開が終了すれば（Ｓ１５でＹＥＳ）、用紙の給紙開始を要求する給紙開始コマンドの発行を行い、処理はメインルーチンに戻り、以下、この処理を繰り返す。
【００２０】
処理を繰り返しているうちに、何らかの理由で、所定時間内に給紙開始コマンドを発行できなければ（Ｓ１５でＮＯ）、スタックコマンドとして「０」を送信して（Ｓ１７）、メインルーチンへ戻る。プリンタエンジン３１がこの０を受信したときの処理は後述する。
【００２１】
したがって、制御部２６は、コマンド発行部とともに給紙開始コマンド発行手段として作動するとともに、展開判別手段として作動する。
【００２２】
次にプリンタエンジン３１における制御部３５の動作について図５を参照して説明する。プリンタエンジン３１は、コマンド受信部３４において受信したコマンドがスタック指定コマンドか、ページごとのデータの展開が終了したことを示す給紙開始コマンドかを判断する（Ｓ２１，Ｓ２２）。スタック指定コマンドであれば（Ｓ２１でＹＥＳ）、そのコントローラに含まれるスタック数ｎを図示のないメモリに格納する（Ｓ２４）。図３に示した印刷開始タイミングが７ページの場合は、スタック数として、整数である７が設定される（Ｓ２４でｎ＝７）。
【００２３】
コマンドが給紙開始コマンドであれば（Ｓ２２でＹＥＳ）、給紙開始コマンド数ｍに１加算する（Ｓ２３）。この給紙開始コマンド数ｍの初期値は０である。次いで格納されたスタック数ｎから給紙開始コマンド数ｍを減算する。次いで、タイムアウトをクリアして（Ｓ２５）、ｎ−ｍが０以下か否かの判断をする（Ｓ２６）。
【００２４】
ｎ−ｍの値は、通常の場合は、上記したスタック数（ここでは７）になるまでｍの値が加算され、スタック数になると０以下となって、印刷開始処理が行われる（Ｓ２７）。
【００２５】
一方、所定時間内に給紙開始コマンドを発行できないときは、スタックコマンドとして０が送信されるが、このときは、プリンタエンジン３１は、このスタックコマンドを受信した時に給紙開始判定を行う（Ｓ２１でＹＥＳ，Ｓ２４でＸ＝０で、Ｓ２６の判定）。この場合は、Ｓ２６でＹＥＳとなるため、印刷が開始される（Ｓ２７）。
【００２６】
したがって、コントローラ２１が所定時間内に何らかの理由で給紙コマンドを発行できないときは、プリンタは直ちに印刷処理を開始する。したがって、制御部３５は制御手段として作動する。  
【００２７】
一方、当初のスタックコマンドで設定されたスタック数になる前においては、図示のないタイマに所定の時間をセットし、このセットされた時間を越えてタイムアウトすると（Ｓ２８、Ｓ２９でＹＥＳ）、タイムアウト処理を行う。具体的には、図５（Ｂ）に示すように、新しいスタック指定コマンドをコントローラ２１に要求する（Ｓ３０）。したがって、制御部３５は通信判別手段として作動する。
【００２８】
これに応じて、コントローラ２１は、新たなスタックコマンドを発行する。すなわち、プリンタエンジン３１において給紙開始コマンドを受信できないときは、スタック指定コマンドの再送信を要求する。コントローラ２１は、この要求を受けて、あらたなスタックコマンドを発行する（図４、Ｓ１３）。このときのスタックコマンドの値は、前のスタックコマンドの数値よりも小さい値であればなんでもよいが、特に指定する必要も無いので「０」でよい。
【００２９】
プリンタエンジン３１は、上記したように、スタック指定コマンド受信時に給紙判定を行い、ｎ-ｍが０以下となるため印刷を開始する（Ｓ２６でＹＥＳ，Ｓ２７）。
【００３０】
以上のように、この実施の形態においては、プリンタエンジン３１が給紙開始コマンドの受信を失敗した時は、自動的に印刷が開始されるため、エラーによるデッドロックは生じない。
【００３１】
なお、上記実施の形態においては、スタック数として、ページ単位で指定する場合について説明したが、これに限らず、ページ単位でなくてもよい。
【００３２】
以上、図面を参照してこの発明の実施形態を説明したが、この発明は、図示した実施形態のものに限定されない。図示された実施形態に対して、この発明と同一の範囲内において、あるいは均等の範囲内において、種々の修正や変形を加えることが可能である。
【図面の簡単な説明】
【００３３】
【図１】この発明の一実施の形態に係る画像形成装置が適用されたプリンタを示すブロック図である。
【図２】この発明の一実施の形態における具体例を説明するための図である。
【図３】この発明の一実施の形態における具体例を説明するための図である。
【図４】コントローラの制御部が行う動作を示すフローチャートである。
【図５】プリンタエンジンの制御部が行う動作を示すフローチャートである。
【符号の説明】
【００３４】
１０  パソコン、２０  プリンタ、２１  コントローラ、２２  インターフェイス部、２３  スプール部、２４  展開部、２５  コマンド発行部、２６，３５  制御部、３１プリンタエンジン、３２  印刷部、３３  給紙部、３４  コマンド受信部。
【図１】
2008260222.tif 000003
【図２】
2008260222.tif 000004
【図３】
2008260222.tif 000005
【図４】
2008260222.tif 000006
【図５】
2008260222.tif 000007