(57)【要約】【目的】日々追加・修正される新規コマンドに対応するため制御プログラムの更新作業を行う際に、その更新処理に失敗しても動作不能状態に陥らない印刷システムを提供すること。【構成】パーソナルコンピュータやワークステーション等のホストコンピュータと、それらから送られてきた印刷開始から印刷終了までの一連のデータ群を受信し、そのデータを解析して印刷用紙に印刷する印字情報を作成する印刷制御装置とで構成された印刷システムにおいて、印刷コマンドを解析し、印刷用紙に描画する描画データを作成するコマンド解析プログラムと、各印刷コマンドに対応するコマンド解析プログラムのバージョン情報、プログラムアドレス等を記憶したテーブルと、を設ける。【選択図】　　　図１
2004050723.tif 000002
【特許請求の範囲】
【請求項１】
パーソナルコンピュータやワークステーション等のホストコンピュータと、それらから送られてきた印刷開始から印刷終了までの一連のデータ群を受信し、そのデータを解析して印刷用紙に印刷する印字情報を作成する印刷制御装置とで構成された印刷システムにおいて、
印刷コマンドを解析し、印刷用紙に描画する描画データを作成するコマンド解析プログラムと、各印刷コマンドに対応するコマンド解析プログラムのバージョン情報、プログラムアドレス等を記憶したテーブルと、を有することを特徴とする印刷システム。
【請求項２】
システムに入力された印刷データに含まれる印刷コマンドに対し、上記テーブルを参照し、上記コマンド解析プログラムを実行することにより印刷用紙に描画する描画データを作成することを特徴とする請求項１記載の印刷システム。
【請求項３】
上記コマンド解析プログラムを更新する処理を行う更新手段を有し、上記更新手段により上記コマンド解析プログラムをコマンド単位で更新・追加処理ができることを特徴とする請求項１記載の印刷システム。
【請求項４】
上記更新手段は、上記テーブルを参照しコマンド解析プログラムのバージョンが上がっている場合にのみ更新処理を行うことを特徴とする請求項３記載の印刷システム。
【請求項５】
上記更新手段によりコマンド解析プログラムが更新された場合に、上記テーブルの対応するバージョン情報も更新することを特徴とする請求項４記載の印刷システム。
【請求項６】
上記はコマンド解析プログラムを記憶しておく領域は、或る単位毎に区切られたブロック構造であり、各ブロックは、続くブロックの記憶された位置を示すアドレス情報部を持ち合わせていることを特徴とする請求項３記載の印刷システム。
【請求項７】
上記アドレス情報部に特別な情報を記録することによって、上記ブロックに続くブロックがないことを表すことを特徴とする請求項６記載の印刷システム。
【発明の詳細な説明】
【０００１】
【発明の属する技術分野】
本発明は、双方向性インターフェースを介してホストコンピュ−タに接続されるプリンタ等の出力装置及び該装置に関し、特にその装置に用いられる用紙の仕分け方法に関する。
【０００２】
【従来の技術】
近年、大規模化するネットワークコンピュータシステム等において、プリンタ等の印刷装置による印刷頻度は非常に高くなっている。
【０００３】
これらの印刷装置は、主にホストコンピュータからドライバを通して印刷ジョブを受信し、印刷する形式を採る。この印刷ジョブは、例えばＰＤＬ（ページ記述言語）と呼ばれるような或る特定の言語体系に則った形でできており、多数の印刷コマンドと呼ばれる制御命令から構成されている。
【０００４】
この印刷コマンドは印刷装置の機能の向上に伴い日々新しいものが追加又は修正されている。そのため製品が発売された後に追加された新規コマンドは、その製品では対応できないことになる。
【０００５】
このような状況において、或る製品に対し、その製品が発売された後に追加された新規コマンドにも対応できるようにするためには、その製品の制御プログラムを最新（これは或るタイミングでメーカーから供給される）に更新する必要がある。コントロールプログラムの入ったＲＯＭは通常不揮発性のメモリデバイス形式で供給されており、電気的に書き換え可能となっている。その更新処理は、現状では、印刷装置メーカーのサービスマンや印刷システムの管理者等が機器メンテナンス時に、制御プログラムの入ったＲＯＭを書き換えるといった形で行われている。
【０００６】
従来行われている制御プログラム書き換え処理の手順を以下に示す。
【０００７】
先ず、更新すべき制御プログラムを内蔵した印刷装置に接続されたホストコンピュータに、最新の制御プログラムを記憶しておく。そして、印刷装置の操作パネル等により制御プログラム内に記憶されている制御プログラム書き換え用のプログラムをＲＡＭ上で起動しておき、ホストコンピュータから最新制御プログラムを受信する。
【０００８】
次に、受信したデータがこの印刷装置に適合した制御プログラムであるかどうかを判断し、印刷装置に適合したものであれば受信した制御プログラムを印刷装置内のＲＡＭに一時記憶する。その後、先程ＲＡＭに記憶しておいた制御プログラムを不揮発性メモリに書き写すことで制御プログラムが新たなものに書き換えられる。
【０００９】
【発明が解決しようとする課題】
しかし、上記方法によるコントロールプログラム更新法は、幾つかの欠点を有している。
【００１０】
先ず、第１に、この方法は更新する制御プログラムの変更量の大小に拘らず、常に制御プログラム全体の書き換え作業を行う。そのため、更新に失敗した場合には制御プログラム（制御プログラム書き換え用のプログラムを含む）が動作しない状態に陥ってしまう可能性がある。
【００１１】
又、第２に、前記第１の問題点から、これらのプログラム更新は通常、メーカーのサービスマン等がユーザー先へ訪問し作業する必要があり、サービスマンにかかる負荷に大きい。
【００１２】
本発明は上記問題点を鑑みてなされたもので、その目的とする処は、日々追加・修正される新規コマンドに対応するため制御プログラムの更新作業を行う際に、その更新処理に失敗しても動作不能状態に陥らない印刷システムを提供することにある。
【００１３】
又、本発明の目的とする処は、制御プログラム更新に係わる作業により、動作不能状態に陥るといったリスクを軽減しユーザーが手軽に制御プログラムの更新作業を行えるようにすることでサービスマンに掛かる負荷を軽減することができる印刷システムを提供することにある。
【００１４】
【課題を解決するための手段】
上記目的を達成するため、本発明は、パーソナルコンピュータやワークステーション等のホストコンピュータと、それらから送られてきた印刷開始から印刷終了までの一連のデータ群を受信し、そのデータを解析して印刷用紙に印刷する印字情報を作成する印刷制御装置とで構成された印刷システムにおいて、印刷コマンドを解析し、印刷用紙に描画する描画データを作成するコマンド解析プログラムと、各印刷コマンドに対応するコマンド解析プログラムのバージョン情報、プログラムアドレス等を記憶したテーブルと、を設けたことを特徴とする。
【００１５】
【発明の実施の形態】
以下に本発明の実施の形態を添付図面に基づいて説明する。
【００１６】
先ず、本発明を適用するに好適なレーザビームプリンタ及びインクジェットプリンタの構成について図１を参照しながら説明する。尚、本発明を適用するプリンタは、レーザビームプリンタ及びインクジェットプリンタに限られるものではなく、他のプリント方式のプリンタでも良いことは言うまでもない。
【００１７】
図１は本発明を適用可能な第１の出力装置の構成を示す断面図であり、例えばレーザビームプリンタ（ＬＢＰ）の場合を示す。
【００１８】
図１において、１０１はプリンタ本体である。１２８は操作パネルで、操作のためのスイッチ及びＬＥＤ表示器、ＬＣＤ表示器が配されている。１０３は制御ボード収納部で、プリンタの印字プロセス制御を行うエンジンコントローラ及びプリンタ全体の制御とホストコンピュータからのデータを解析しイメージデータに変換するビデオコントローラ、各種オプションユニットを統括して制御するオプションコントローラが収納されている。
【００１９】
１３０は用紙カセットで、用紙を保持し不図示の仕切り板によって電気的に用紙サイズを検知する機構を有する。１３１はカセット給紙クラッチで、用紙カセット１３０上に収納された用紙の最上位の用紙１枚のみを分離し、不図示の駆動手段によって分離した用紙を給紙ローラ１０４まで搬送させるカムであり、給紙の度に間欠的に回転し、１回転に対応して１枚の用紙を給紙する。
【００２０】
１２９はレジストシャッタで用紙を押圧して給紙を停止させる。給紙ローラ１０４はカセット給紙クラッチ１３１より給紙される用紙の先端部をレジストシャッタ１２９まで搬送する。１０２は手差し給紙トレイであり、１０５は手差し給紙ローラで、この手差し給紙ローラ１０５は用紙の先端をレジストシャッタ１２９まで搬送する。
【００２１】
以上のような構成によって用紙カセット１３０及び手差し給紙用トレイ１０２から選択的に用紙を給紙することが可能となる。又、手差し給紙ローラ１０５、カセット給紙クラッチ１３１の下流には、記録紙を同期搬送する給紙ローラ１０４、レジストローラ対１０６がそれぞれ設けられ、レジストローラ対１０６の下流には、レーザスキャナ部１０７から発したレーザ光によって、記録紙上にトナー像を形成する画像記録部１０８が設けられている。
【００２２】
更に、画像記録部１０８の下流には、記録紙上に形成されたトナー像を熱定着する定着器１０９が設けられ、定着器１０９の下流には、排紙部の紙搬送状態を検知する排紙センサ１１０、記録紙を搬送する搬送ローラ１１１等が設けられている。積載トレイ１１５は用紙残量検知センサ１１５ｓを備えており、一定時間毎に積載トレイ１１５に積載された用紙残量を検知する。
【００２３】
次に、レーザスキャナ部１０７は、プリンタコントローラから送出される画像信号（画像信号ＶＤＯ）に基づいて変調されたレーザ光を発光するレーザユニット１１６、このレーザユニット１１６からのレーザ光を感光ドラム１２２上に走査するポリゴンミラー１１７、走査方向のレーザ光位置を検出するビーム検出器１１８、結像レンズ群１１９、折返ミラー１２０及びレーザ光の光量を検知する光量検知センサ１２１等により構成されている。
【００２４】
前述の画像記録部１０８は公知の電子写真プロセスに必要な、レーザスキャナ部１０７の走査により形成された静電潜像を保持する感光ドラム１２２、感光ドラム１２２を光除電する前露光ランプ１２３、感光ドラムを一様帯電させる一時帯電器１２４、感光ドラム１２２に形成された静電潜像をトナー現像する現像器１２５、現像器１２５により現像されたトナー像を給送される記録紙に転写する転写帯電器１２６、感光ドラム１２２上の残存トナーを清掃するクリーナ１２７等から構成されている。
【００２５】
制御ボード収納部１０３内には図示しないビデオコントローラ、エンジンコントローラ及びオプションコントローラ部があり、エンジンコントローラはレーザスキャナ部１０７、画像記録部１０８、定着器１０９による電子写真プロセスの制御およびプリンタ本体１０１内の記録紙の搬送制御を行う。又、ビデオコントローラは、パーソナルコンピュータ等の外部装置（不図示）と汎用インタフェース（セントロニクスインタフェースやＲＳ２３２Ｃ等）で接続され、汎用インタフェースを介して送られてくる画像情報をビットデータに展開し、そのビットデータを信号ＶＤＯとしてエンジンコントローラへ送る。
【００２６】
［第１実施例］
本発明の印刷システムの実施例１を図２から図４を使って説明する。
【００２７】
図２は実施例１におけるプリンタ制御システムの構成を説明するブロック図、図３は図２中のホストコンピュータ２０１からプリンタ１０１へ送られる印刷データを示す図、図４は図２中のプリンタ１０１内のＣＰＵ２１０の動作を説明するためのフローチャート、図５はこの実施例で実際に印刷した場合の簡単な出力例を示す図である。
【００２８】
ここでは、レーザビームプリンタ（図１）を例にして説明する。尚、本発明の機能が実行されるのであれば、単体の機器であっても、複数の機器から成るシステムであっても、ＬＡＮ等のネットワークを介して処理が行われるシステムであっても本発明を適応できることは言うまでもない。
【００２９】
＜装置構成の説明（図２）＞
図２において、２０１は印刷データを出力するホストコンピュータで、所定のインタフェース２０５を介してプリンタ１０１に接続されている。図２において、１０１が本実施例における印刷装置であり、印刷結果２１４を形成するものである。プリンタ１０１において２１０はプリンタＣＰＵで、ＲＯＭ２２０のプログラム用ＲＯＭ２２０に記憶された制御プログラム等或は外部メモリ２０３に記憶された制御プログラム等に基づいてシステムバス２０９に接続される各種のデバイスとのアクセスを総括的に制御し、プリンタエンジン部２０８に出力情報としての画像信号を出力する。
【００３０】
このＲＯＭ２２０のプログラムＲＯＭには、図４のフローチャートで示されるようなメインプログラム２２１等を記憶する他、各印刷コマンドに対応する解析プログラムを記憶するコマンド解析プログラム記憶部２２５及び各印刷コマンドとそれに対応するコマンド解析プログラムのプログラムアドレスの場所を記憶しておくコマンドテーブル２２４、コマンド解析プログラムの更新処理を行うコマンド解析プログラム更新用プログラムを備える。このプログラムＲＯＭ２２０は、不揮発メモリ、例えばＥＥＰＲＯＭやフラッシュメモリ等で構成することで、電気的に書き換えが可能となっている。
【００３１】
ＲＯＭ２０７のフォント用ＲＯＭ２０７には上記出力情報を生成する際に使用するフォントデータ等を記憶し、データ用ＲＯＭ２０６にはハードディスク等の外部メモリ２０３が無いプリンタの場合には、ホストコンピュータ上で利用される情報等を記憶している。ＣＰＵ２１０は入力部２０２を介してホストコンピュータとの通信処理が可能となっており、プリンタ１０１内の情報等をホストコンピュータに通知可能に構成されている。
【００３２】
２３０はＣＰＵ２１０の主メモリ、ワークエリア等として機能するＲＡＭで、図示しない増設ポートに接続されるオプションＲＡＭによりメモリ容量を拡張することができるように構成されている。尚、ＲＡＭ２３０にはホストコンピュータから受信した印刷ジョブを記憶する受信バッファ２３１、印刷ジョブを出力情報に展開し蓄積しておくページバッファ２３２が含まれる。
【００３３】
更に、ＲＡＭ２３０は環境データ格納領域、ＮＶＲＡＭ等にも用いられる。前述したハードディスク（ＨＤ）、ＩＣカ−ド等の外部メモリ２０３は、メモリコントローラ（ＭＣ）２０４によりアクセスを制御される。外部メモリ２０３は、オプションとして接続され、フォントデ−タ、エミュレ−ションプログラム、フォ−ムデ−タ等を記憶することが可能である。
【００３４】
又、１２８は前述した操作パネルで操作のためのスイッチ及びＬＥＤ表示器、ＬＣＤ表示器等が配されており。ＬＣＤ表示器にメッセージを表示することでユーザーとインタラクティブにやり取りが可能である。又、前述した外部メモリは１個に限らず、少なくとも１個以上備え、内蔵フォントに加えてオプションフォントカード、言語系の異なるプリンタ制御言語を解釈するプログラムを格納した外部メモリを複数接続できるように構成されていても良い。更に、図示しないＮＶＲＡＭを有し、操作パネル１２８からのプリンタモード設定情報を記憶するようにしても良い。
【００３５】
＜プログラムロム２２０の説明（図３）＞
図３は本実施例において図２に示したプログラムＲＯＭ２２０を詳しく説明した図である。
【００３６】
図に示すように、コマンドテーブル２２４はコマンド名称部３０１と、そのコマンドに対応し、コマンド解析プログラム群２２５内に記憶されるコマンド解析プログラム３１０のバージョンを表すバージョン情報部３０２及びその所在を示すプログラムアドレス部３０３から成る。尚、これら３０１，３０２，３０３は各コマンド毎に存在する。
【００３７】
一方、コマンド解析プログラム群２２５は、多数のコマンド解析プログラム３１０から構成される。又、コマンドテーブル２２４は必ずしもプログラムＲＯＭ２２０に納められる必要はなく、外部メモリ２０３やＲＡＭ２３０内に格納されていても良い。
【００３８】
メインプログラム２２１は、ジョブ解析プログラム２２１を用いてジョブをコマンド単位で解析し、コマンドテーブル２２３の情報を参照することでコマンド解析プログラム３１０に処理を移すことができる。又、メインプログラム、コマンド解析プログラムは、双方向にデータの授受が可能であり、それぞれのプログラムは描画データをページバッファ２３２に蓄積することが可能である。
【００３９】
＜印刷データ処理の説明（図４）＞
図４は実施例１における印刷システム中のプリンタ１０１に内蔵されるＣＰＵ２１０の動作を表すフローチャートである。
【００４０】
この印刷システムにおいてホストコンピュータ２０１からプリンタ１０１に印刷データが送られてきたときの動作について説明する。印刷データには、描画コマンド等から成る印刷ジョブと、各種設定等の情報が含まれる。
【００４１】
ホストから印刷データが送られてきたときプリンタ１０１のデータ入力部２０２はそのデータを受け取り（Ｓ４０１）、印刷ジョブをＲＡＭ２３０内の受信バッファ２３１に蓄積する（Ｓ４０２）。受信バッファ２３１に印刷ジョブが蓄積されると、メインプログラム２２１によってその印刷ジョブをコマンド単位に解析する（Ｓ４０３）。メインプログラムはコマンドテーブルを検索し、注目する印刷コマンドを解析するコマンド解析プログラムの所在を示すプログラム番地を調べ、そのプログラム番地に処理を移し（Ｓ４２０）、印刷用紙に描画する描画データを作成し、描画データをページバッファ２３３に蓄積していく（Ｓ４２１）。
【００４２】
次に、処理をコマンド解析プログラムからメインプログラムに戻し（Ｓ４２２）、解析の終わった印刷ジョブは受信バッファ２３１から削除する（Ｓ４３０）。メインプログラム２２１がこのようにして受信バッファ２３１の印刷ジョブを解析していき、排紙命令を見つけると（Ｓ４１０）ページバッファ２３３に蓄積された描画データをプリンタエンジン部２０８に送信し（Ｓ４１１）、印刷結果２１４を得る。そして、ジョブ終了命令を見つけたときには（Ｓ４０４）、この印刷ジョブの全てのページの印刷が終了するまで待機し（Ｓ４０５）、その後、処理を終了する。
【００４３】
以上のような処理によりこのシステムにホストコンピュータから送られてきた印刷データを解析し印刷結果２１４を得ることができる。
【００４４】
一方、本実施例では、上記構成の印刷装置において、その印刷装置の制御プログラムの更新処理を特に説明するものであり、以下にその処理動作について説明する。
【００４５】
＜更新データの構成の説明（図５）＞
図５はコマンド解析プログラム更新処理において、ホストコンピュータ等から印刷装置に送信する更新データの構成例を表す図である。
【００４６】
更新データ５００は、対応機種条件部５０１と解析プログラム部５０２から成る。対応機種条件部５０１は、更新データ５００が対象としている印刷装置の機種名、バージョン、ハード構成等の情報を格納している。解析プログラム部５０２は、個々のコマンド単位における更新プログラムから構成されている。それら各更新プログラムは、それぞれコマンド名称５１０、バージョン情報５１１、プログラムサイズ５１２といった情報と共にそのコマンドに対応するコマンド解析プログラム５２０から構成される形となっている。
【００４７】
＜コマンド解析プログラム更新処理の説明（図６）＞
図６は実施例１における印刷システム中のプリンタ１０１に内蔵されるＣＰＵ２１０のコマンド解析プログラム更新時の動作を表すフローチャートである。
【００４８】
先ず、ユーザーの操作によりコマンド解析プログラム更新用プログラムを起動する（Ｓ６０１）。これはプリンタ１０１は通常の装置電源ＯＮではメインプログラムが起動するようになっているが、ユーザーのパネル操作等により明示的に選択することでコマンド解析プログラム更新用プログラムを起動することができる。
【００４９】
次に、ホストコンピュータから新たなコマンド解析プログラムを含む更新データ５００が送られてくるのを待つ（Ｓ６０２）。更新データ５００が送られてくるとデータ入力部２０２は、そのデータを受け取り、ＲＡＭ２３０に全て記憶させる（Ｓ６０３）。次に、ＲＡＭ２３０に記憶した更新データ５００の内、対応機種条件部５０１を読み取り、更新データ５００がプリンタ１０１に適合するものか判定を行う（Ｓ６０４）。更新データ５００がプリンタ１０１に適合しないと判定された場合には（Ｓ６０４−ＮＯ）、操作パネル１２８にエラー表示を行い（Ｓ６０５）、処理を終了する。
【００５０】
次に、ＲＡＭ２３０に記憶した更新データ中の更新プログラム５０２から各コマンドに対応した更新プログラムを順次読み出していく（Ｓ６１０）。そして、先程読み出した更新プログラムに対応するコマンドがコマンドテーブル２２４に登録されているか否かを判定する（Ｓ６１０）。コマンドテーブルに登録されていなければ（Ｓ６１１−ＮＯ）、次にプログラムサイズ５１２を読み取り、コマンド解析プログラム記憶部２２５に空き容量があるか確認する（Ｓ６２１）。
【００５１】
コマンド解析プログラム記憶部２２５に空き容量がないと判断された場合には（Ｓ６２１−ＮＯ）、操作パネル１２８にエラー表示を行い（Ｓ６０５）、処理を終了する。空き容量があれば（Ｓ６２１−ＹＥＳ）そのコマンドに対応する解析プログラム５２０を新たにコマンド解析プログラム記憶部に追加記憶する（Ｓ６２２）。その後、コマンドテーブル２２４に先程追加したコマンド解析プログラムの対応コマンド名称、バージョン情報、コマンド解析プログラムのプログラムアドレスを追加する（Ｓ６３０）。
【００５２】
一方、Ｓ６１１においてコマンドテーブルに登録されていれば（Ｓ６１１−ＹＥＳ）、次に、既に登録されているバージョン３０２と更新プログラムのバージョン５１１を比較し、更新プログラム５２０の方がバージョンが新しいと判定された場合には（Ｓ６１２−ＹＥＳ）、プログラムアドレス３０２から記憶されているコマンド解析プログラム３１０を更新プログラム５２０に更新する（Ｓ６１３）。更に、コマンドテーブル２２４のうち対応するバージョン情報３０１の情報も更新する（Ｓ６３０）。
【００５３】
以上のような処理をデータ５００に含まれる全てのコマンドについて処理が終了するまで繰り返し行うことで、コマンド解析プログラムを追加又は更新していく。
【００５４】
以上のような処理により、コマンド単位での解析プログラムの更新が可能となり、又、更新処理中に不慮の原因により更新処理に失敗した場合にもコマンド解析プログラム更新用プログラムを再度起動することにより容易に復旧することが可能となる。
【００５５】
［第２実施例］
本発明の印刷システムの実施例２を図５を使って説明する。
【００５６】
第１実施例では、コマンド解析プログラムを更新する際、既に記憶されていたコマンド解析プログラムを新しいコマンド解析プログラムに書き換える形を採っていた。
【００５７】
しかし、既に記憶されていた旧コマンド解析プログラムよりも新たなコマンド解析プログラムのサイズが大きく、旧コマンド解析プログラムが使用していたプログラム領域に新たなコマンド解析プログラムが納まらないといった事態が考えられる。第２実施例では上記のような事態にも対応できるようなコマンド解析プログラム記憶部２２５の構成及びコマンド解析プログラムの更新処理について説明する。
【００５８】
図６は図２のプリンタ１０１に装着されている各用紙カセットの用紙残量データのデータ構成を表す図、図７はプリンタ１０１内のＣＰＵ２１０の動作を説明するためのフローチャートである。
【００５９】
尚、　本発明の機能が実現されるのであれば、単体の機器であっても、　複数の機器から成るシステムであっても、　ＬＡＮ等のネットワークを介して処理が行われるシステムであっても本発明を適応できることは言うまでもない。
【００６０】
＜コマンド解析プログラム記憶部２２５の構成の説明（図７）＞
図７Ａは第２実施例におけるコマンド解析プログラム記憶部２２５の構成の説明を表す図である。図に示すようにコマンド解析プログラム記憶部２２５はブロック単位で構成される。１つのブロックは７００に示すようにブロックデータ記憶部７１０と次のブロックの先頭アドレスを記憶するアドレス記憶部７１１から成る。
【００６１】
１つのブロックは、例えば５１２バイトといったように、メモリデバイスのハード構成により或る特定値を取る。このような構成のメモリに対しコマンド解析プログラムを記憶する際には、ブロック単位で記憶していき、１つのブロックに納まらなかった場合には別のブロックに記憶し、その先頭アドレスをアドレス記憶部７１１に記憶しておく。そして、最後のブロックまで記録したなら最後のブロックのアドレス記憶部７１１にはそのブロックに続きがないことを示す値（例えばメモリデバイスの最終アドレス等）を記憶しておく。
【００６２】
又、コマンド解析プログラムを読み出す際には、コマンド解析プログラムが記憶された先頭のブロックから読み出していき、続くブロックがある場合にはアドレス記憶部７１１に記憶されているアドレスを参照し続くブロックから読み出す。このようにして最後のブロックのデータまで読み出す。上記のような記憶、読み出し方法を採ることで、アドレスが連続していない領域にコマンド解析プログラムを記憶しておいても、連続したプログラムとして読み出すことが可能となる。
【００６３】
例えば、図７Ａにおいて、７０１〜７０５はそれぞれコマンド解析プログラムが記憶されていることを示す。７０１は例えばコマンドＡ解析プログラムが連続する５つのブロックに記憶されていることを示す。又、同様に７０４はコマンドＡ解析プログラムが連続する４つのブロックに記憶されていることを示す。このようにコマンドＡ解析プログラムは９つのブロックに亘って記憶され、更にそれらは連続しない２つのメモリ領域に記憶されている。
【００６４】
更に、図７Ｂは７０１及び７０４の実際の構成を詳しく説明したものである。この図から７０１及び７０４にコマンドＡ解析プログラムが連続した領域に記憶されている様子が分かる。又、７０１の最後のブロックのアドレス記憶部には７０４の先頭ブロックのアドレスを指しており、７０４のブロックの最後のブロックのアドレス記憶部にはメモリデバイスの最終アドレスが記憶されており、そのブロックが一連のコマンドＡ解析プログラムを記憶した最後のブロックであることを示す。
【００６５】
＜コマンド解析プログラム更新処理の説明（図８）＞
図８は実施例２における印刷システム中のプリンタ１０１に内蔵されるＣＰＵ２１０のコマンド解析プログラム更新時の動作を表すフローチャートである。
【００６６】
先ず、ユーザーの操作によりコマンド解析プログラム更新用プログラムを起動する（Ｓ８０１）。これはプリンタ１０１は通常の装置電源ＯＮではメインプログラムが起動するようになっているが、ユーザーのパネル操作等により明示的に選択することでコマンド解析プログラム更新用プログラムを起動することができる。
【００６７】
次に、ホストコンピュータから新たなコマンド解析プログラムを含む更新データ５００が送られてくるのを待つ（Ｓ８０２）。更新データ５００が送られてくるとデータ入力部２０２はそのデータを受け取り、ＲＡＭ２３０に全て記憶させる（Ｓ８０３）。次に、ＲＡＭ２３０に記憶した更新データ５００の内、対応機種条件部５０１を読み取り、更新データ５００がプリンタ１０１に適合するものか判定を行う（Ｓ８０４）。更新データ５００がプリンタ１０１に適合しないと判定された場合には（Ｓ８０４−ＮＯ）、操作パネル１２８にエラー表示を行い（Ｓ８０５）、処理を終了する。
【００６８】
次に、ＲＡＭ２３０に記憶した更新データ中の更新プログラム５０２から各コマンドに対応した更新プログラムを順次読み出していく（Ｓ８１０）。そして、先程読み出した更新プログラムに対応するコマンドがコマンドテーブル２２４に登録されているか否かを判定する（Ｓ８１０）。コマンドテーブルに登録されていなければ（Ｓ８１１−ＮＯ）、次にプログラムサイズ５１２を読み取る。
【００６９】
本実施例においては、このプログラムサイズ５１２にはそのコマンド解析プログラムを記憶するのに必要なブロック７００の数が示されている。次に、コマンド解析プログラム記憶部２２５に必要な数の空きブロックがあるか確認する（Ｓ８２１）。コマンド解析プログラム記憶部２２５に必要な数の空きブロックがないと判断された場合には（Ｓ８２１−ＮＯ）、操作パネル１２８にエラー表示を行い（Ｓ８０５）、処理を終了する。空き容量があれば（Ｓ８２１−ＹＥＳ）そのコマンドに対応する解析プログラム５２０を新たにコマンド解析プログラム記憶部に追加記憶する（Ｓ８２２）。その後、コマンドテーブル２２４に先程追加したコマンド解析プログラムの対応コマンド名称、バージョン情報、コマンド解析プログラムのプログラムアドレスを追加する（Ｓ８３０）。
【００７０】
一方、Ｓ８１１においてコマンドテーブルに登録されていれば（Ｓ８１１−ＹＥＳ）、次に、既に登録されているバージョン３０２と更新プログラムのバージョン５１１を比較し、更新プログラム５２０の方がバージョンが新しいと判定された場合には（Ｓ８１２−ＹＥＳ）、プログラムアドレス３０２から記憶されているコマンド解析プログラム３１０を更新プログラム５２０に更新する（Ｓ８１３）。この際、既に登録されているコマンド解析プログラム３１０の記憶に使われていたブロック７００数よりも更新プログラム５２０の記憶に使用するブロック７００の数が多い場合には、適宜空きブロック７００を見つけて記憶していく。ここで、空きブロック７００が足りなくなった場合には、エラー表示を行い（Ｓ８０５）、処理を終了する。更に、コマンドテーブル２２４のうち対応するバージョン情報３０１の情報も更新する（Ｓ８３０）。
【００７１】
以上のような処理を、データ５００に含まれる全てのコマンドについて処理が終了するまで繰り返し行うことで、コマンド解析プログラムを追加又は更新していく。
【００７２】
以上のような処理により、コマンド単位での解析プログラムの更新が可能となり、又、更新処理中に不慮の原因により更新処理に失敗した場合にもコマンド解析プログラム更新用プログラムを再度起動することにより容易に復旧することが可能となる。
【００７３】
更に、アドレスが連続していない領域にコマンド解析プログラムを記憶しておいても、連続したプログラムとして読み出すことが可能となり、既に記憶されていた旧コマンド解析プログラムよりも新たなコマンド解析プログラムのサイズが大きく、旧コマンド解析プログラムが使用していたプログラム領域に新たなコマンド解析プログラムが納まらない場合にも、新たな空き領域に不足分を記憶することが可能となる。
【００７４】
［第３実施例］
本発明の印刷システムの第３実施例を図６から図７を使って説明する。
【００７５】
第３実施例では、第１実施例における用紙Ａと用紙Ｂを収納する用紙カセットが複数存在した場合の動作について説明する。尚、装置構成及び印刷データ構成は第１実施例と同じであるものとする。
【００７６】
図６は図２のプリンタ１０１に装着されている各用紙カセットの用紙残量データのデータ構成を表す図、図７はプリンタ１０１内のＣＰＵ２１０の動作を説明するためのフローチャートである。
【００７７】
尚、　本発明の機能が実現されるのであれば、単体の機器であっても、　複数の機器から成るシステムであっても、　ＬＡＮ等のネットワークを介して処理が行われるシステムであっても本発明を適応できることは言うまでもない。
【００７８】
＜用紙カセット情報の説明（図６）＞
図６はプリンタ１０１に装着されている各用紙カセットの用紙残量情報のデータ構造の一例である。
【００７９】
用紙カセット情報６００は各用紙カセットに対して、収納されている用紙サイズ、用紙残量センサ１３２によって検知した用紙残量の情報を記憶する領域を有する。用紙カセット情報６００において６０１は例えば用紙カセット１にＡ４サイズの用紙が５０枚収納されていることを示し、６０２は例えば用紙カセット２にＡ４Ｒサイズの用紙が１００枚収納されていることを示し、６０３は例えば用紙カセット３にＡ３サイズの用紙が１００枚収納されていることを示し、６０４は例えば用紙カセット４にＡ４サイズの用紙が８０枚収納されていることを示す。尚、用紙カセット情報６００は図２に示したＲＡＭ２３０或は外部メモリに記憶される。
【００８０】
＜印刷データ処理の説明（図７）＞
図７は実施例３における印刷システム中のプリンタ１０１に内蔵されるＣＰＵ２１０の動作を表すフローチャートである。
【００８１】
この印刷システムにおいてホストコンピュータ２０１からプリンタ１０１に印刷データが送られてきたときの動作について説明する。尚、本実施例でも回転ソート実行時の動作について説明する。
【００８２】
ホストから印刷データが送られてきたときプリンタ１０１のデータ入力部２０２はそのデータを受け取り、印刷ジョブをＲＡＭ２３０内の受信バッファ２３１に蓄積する（Ｓ７０１）。
【００８３】
次に、印刷情報設定部３００からコピー部数、ソート設定等の情報を読み出し、メモリ２３０内のワークメモリに記憶する（Ｓ７０２）。ここで、回転ソートの指定あるかどうかを判断し（Ｓ７０３）、回転ソートの指定がなければ（Ｓ７０３−ＮＯ）通常の印刷処理を行い終了する（Ｓ７１０）。回転ソートの指定があれば（Ｓ７０３−ＹＥＳ）、先ず、ジョブ解析手段２２１によって印刷ジョブ部３１０をコマンド単位で解析していき、設定・初期化部３１１から用紙サイズ設定を読み取りにメモリ２３０内のワークメモリに記憶する（Ｓ７２０）。ここで、第１実施例と同じく、先程読み取った用紙サイズ設定の用紙を用紙Ａとし、用紙Ａを９０°回転させたものを用紙Ｂと表記する。又、用紙Ａ、用紙Ｂ共に用紙カセット１３０に収納され、プリンタ１０１によって印刷結果を得ることができるものとする。
【００８４】
次に、プリンタ１０１に複数個装着されている用紙カセット１３０に、用紙Ａ及び用紙Ｂがセットされているかを調べる（Ｓ７２１）。用紙がなければ（Ｓ７２１−ＮＯ）、その旨を操作パネル１２８に表示し、用紙を補給するよう促し用紙が補給されるまで待機する（Ｓ７２２）。用紙がセットされていれば（Ｓ７２１−ＹＥＳ）、プリンタ１０１に装着されている全ての用紙カセットそれぞれの用紙残量を用紙残量センサで検知し、用紙残量情報６００の情報を更新する（Ｓ７３０）。
【００８５】
次に、用紙残量６００を参照し、プリンタ１０１に収納されている全ての用紙Ａ及び用紙Ｂの残量を算出する（Ｓ７３１）。次に、ジョブ解析手段２２１によりデータ本体部３１２を解析し、印刷用紙に描画する描画データを作成し、順次描画データを外部メモリ２０３に蓄積していく（Ｓ７４０、Ｓ７５０）。
【００８６】
ここで、Ｓ７３１において算出した用紙Ａの残量と用紙Ｂの残量を比較する（Ｓ７３２、Ｓ７３３）。
【００８７】
先ず、用紙Ａの残量と用紙Ｂの残量が同じであれば（Ｓ７３２−ＹＥＳ）、次に用紙Ａと用紙Ｂそれぞれの用紙搬送に要する時間を比較する（Ｓ７３４）。通常用紙搬送に要する時間は印刷時間に大きく影響する。用紙搬送時間は用紙の搬送方向と用紙の向きによって決定するため、用紙Ａと用紙Ｂとで短辺が用紙搬送方向と平行に向き合っている方が用紙搬送時間が短くなる。用紙Ａの用紙搬送時間が用紙Ｂの用紙搬送時間よりも短ければ（Ｓ７３４−ＹＥＳ）、先頭ページを用紙Ｂで残りのページを用紙Ａで印刷するように描画データを作成する（Ｓ７５０）。逆に、用紙Ｂの用紙搬送時間が用紙Ａの用紙搬送時間よりも短ければ（Ｓ７３４−ＮＯ）、先頭ページを用紙Ａで残りのページを用紙Ｂで印刷するように描画データを作成する（Ｓ７４０）。
【００８８】
一方、用紙Ｂの残量の方が用紙Ａの残量よりも多ければ（Ｓ７３３−ＹＥＳ）、先頭ページを用紙Ａで残りのページを用紙Ｂで印刷するように描画データを作成する（Ｓ７４０）。それ以外の場合、つまりは用紙Ａの残量が用紙Ｂの残量と同じか、若しくは多い場合は（Ｓ７３３−ＮＯ）先頭ページを用紙Ｂで残りのページを用紙Ａで印刷するように描画データを作成する（Ｓ７５０）。このとき、必要に応じて、ジョブ回転手段２２２によって印刷ジョブを用紙に合わせて回転させる。
【００８９】
次に、外部メモリ２０３に蓄積された描画データを指定されたコピー部数だけ繰り返しプリンタエンジン部２０８に送り、プリンタエンジン部２０８は描画データに対応した印刷用紙に印刷紙印刷結果２１４を得る（Ｓ７３５）。次に、終了処理部４１３のデータに従い終了処理を行い処理を終了する（Ｓ７３５）。
【００９０】
以上のような処理により、ホストコンピュータから回転ソート指定の印刷ジョブが送られてきた場合に、用紙カセットにセットされた用紙残量に応じて先頭ページを回転させるかさせないかを自動的に切り替えることが可能となり、又、同じ用紙が複数の用紙カセットに分かれてセットされていた場合にもそれらを合計した用紙残量を算出し、用紙残量に応じて先頭ページを回転させるかさせないかを自動的に切り替えることが可能となる。
【００９１】
尚、上記の実施例１〜３では、ジョブ解析手段、ジョブ回転手段はプリンタ内に構成されており、その処理はプリンタ内のＣＰＵによって行っていたが、これらの処理はホストコンピュータやネットワークで接続された他のコンピュータ等のＣＰＵを用いるものであっても良い。
【００９２】
又、上記実施例では指定された用紙とそれを９０°回転した用紙とそれぞれの残量を比較し、その大小で処理を切り替えていたが、用紙残量が十分にあり用紙切れになる可能性が少ないと判断した場合には用紙搬送時間を比較し、その大小のみで処理を切り替えるようにしても良い。
【００９３】
【発明の効果】
以上の説明で明らかなように、本発明によれば、各ジョブの先頭ページ若しくは最終ページのみ９０°回転させて出力する仕分け印刷を行う際、印刷途中で用紙切れが起こり印刷処理が一時停止してしまう頻度を抑えることが可能となる。
【００９４】
又、上記仕分け印刷時に必要となる用紙の残量が同じであった場合には、出力時間が最短になるような印刷処理を行うことが可能となる。
【図面の簡単な説明】
【図１】本発明を適用可能な第１の出力装置の構成を示す断面図である。
【図２】本発明の実施例１，２を示すプリンタ制御システムの構成を説明するブロック図である。
【図３】プログラムＲＯＭの詳細な構成を示した図である。
【図４】本発明の実施例１のプリンタの印刷データ処理動作を表すフローチャートである。
【図５】コマンド解析プログラム更新データの構成を示した図である。
【図６】本発明の実施例１のプリンタの制御プログラム更新動作を表すフローチャートである。
【図７】コマンド解析プログラム記憶部の構造を示す図である。
【図８】本発明の実施例２のプリンタの制御プログラム更新動作を表すフローチャートである。
【符号の説明】
１０１　　ＬＢＰ本体
１０３　　制御ボード収納部
１１５　　排紙トレイ
１２８　　操作パネル
１３０　　用紙カセット
２１０　　ＣＰＵ
２１４　　印刷結果
２２０　　プログラムＲＯＭ
２３０　　ＲＡＭ
２０９　　システムバス
２０２　　データ入力部
【図１】
2004050723.tif 000003
【図２】
2004050723.tif 000004
【図３】
2004050723.tif 000005
【図４】
2004050723.tif 000006
【図５】
2004050723.tif 000007
【図６】
2004050723.tif 000008
【図７】
2004050723.tif 000009
【図８】
2004050723.tif 000010