(57)【特許請求の範囲】
【請求項１】
複数のホスト装置にそれぞれ対応させた複数のホストインターフェースを備え、各ホストインターフェースを通して入力されたデータを処理装置で処理し、データに応じた画像を出力する画像形成装置において、前記処理装置は、前記データを一時的に保持する受信バッファに取り出すデータがない場合、動作中の１つのホストインターフェースからのデータを処理する処理プログラムが、アイドル状態の間に、他のホストインターフェースを一時的に動作中としてデータの受け取り処理を可能としたことを特徴とする画像形成装置。
【請求項２】
前記処理装置は、一時的に動作中としたホストインターフェースからのデータの処理が終了しても、本来動作中のホストインターフェースからのデータの処理が完了するまでは画像出力を実行させないことを特徴とする請求項１に記載の画像形成装置。
【発明の詳細な説明】
【０００１】
【発明の属する技術分野】
本発明は、複数のホスト装置との間でデータ通信を行う為の複数のインターフェースを備えたプリンタ装置及びプリンタ機能、ファクシミリ機能、コピー機能などを兼ね備えた複合機などの画像形成装置に関し、特に、複数のホスト装置から受信したデータを並列処理して画像出力できるようにした画像形成装置に関するものである。
【０００２】
【従来の技術】
複数のホスト装置との間でデータ通信を行う為の複数のインターフェース（Ｉ／Ｆ）を備えた従来のプリンタは、各ホスト装置に対応させた複数の受信バッファを備え、複数のホスト装置から印刷データを受信した場合、受信バッファに格納されたデータが最先に１ページ分に達したホスト装置からの印刷データから順次処理して印刷するようになっている。
【０００３】
【発明が解決しようとする課題】
しかし、近年ではプリンタなどの画像形成装置に搭載されるＣＰＵ（中央演算処理装置）の処理速度が著しく向上したため、印刷データによっては、ホスト装置から受け取った１ページ分のデータの処理を行なった後、同じホスト装置から次のデータを受け取るまで、ＣＰＵがアイドル状態で待機している場合が少なくない。そのため、ＣＰＵの処理速度が向上した割には印刷処理を高速化できないという不具合があった。
そこで、本発明の目的は、複数のホスト装置からのデータをＣＰＵなど処理装置の処理能力を十分に活用して効率良く処理し、画像出力を高速で行うことができる画像形成装置を提供することにある。
【０００４】
【課題を解決するための手段】
上記課題を解決するために、請求項１に記載の発明は、複数のホスト装置にそれぞれ対応させた複数のホストインターフェースを備え、各ホストインターフェースを通して入力されたデータを処理装置で処理し、データに応じた画像を出力する画像形成装置において、前記処理装置は、前記データを一時的に保持する受信バッファに取り出すデータがない場合、動作中の１つのホストインターフェースからのデータを処理する処理プログラムが、アイドル状態の間に、他のホストインターフェースを一時的に動作中としてデータの受け取り処理を可能としたことを特徴とする。
また、請求項２に記載の発明は、前記処理装置は、一時的に動作中としたホストインターフェースからのデータの処理が終了しても、本来動作中のホストインターフェースからのデータの処理が完了するまでは画像出力を実行させないことを特徴とする。
【０００５】
上記のように構成したことにより、請求項１の画像形成装置によれば、動作中のホストインターフェースに接続されたホスト装置からのデータの処理を行なっている処理プログラムがアイドル状態になった場合、その間に本来動作中でないホストインターフェースに接続された他のホスト装置からのデータを受信し処理することが可能となるため、従来であれば無駄に待機しているだけであったアイドル状態の間に本来動作中でないホストインターフェースに接続された他のホスト装置からのデータの処理を進めることができる。そのため、結果として上記他のホスト装置から画像出力要求が出されてから画像出力が実行されるまでの所要時間を短縮することができ、また、本来動作中のホストインターフェースに接続されたホスト装置からのデータの処理速度には影響を与えることはなく、全体として画像出力速度を向上することができる。
また、請求項２の画像形成装置によれば、上記他のホスト装置からのデータの処理が終了してもその画像出力は直ぐには実行されず、本来動作中のホストインターフェースに接続されたホスト装置からのデータの処理が完了しその画像出力が行われた後に上記他のホスト装置側の画像出力が行われる。そのため、画像を１ページずつ紙などの記録媒体に出力した際、データ送信元の異なる出力画像が記録された記録媒体が混ざるのを防止しデータ送信元毎に順番通りに出力できる。
【０００６】
【発明の実施の形態】
以下、図面を参照しつつ本発明の実施の形態について説明する。
図１は、本発明に係る画像形成装置の一つであるプリンタ装置の実施の形態の一例を示すブロック図である。
このプリンタ装置１００は、プリンタコントローラ１と、操作パネル２と、プリンタエンジン３とで主要部が構成される。
プリンタコントローラ１は、処理装置であるＣＰＵ４、プログラムＲＯＭ５、フォントＣＧ（キャラクタジェレータ）ＲＯＭ６、フレームバッファ７、ＲＡＭ８、操作パネルインターフェース（Ｉ／Ｆ）９、エンジンインターフェース（Ｉ／Ｆ）１０、複数のホストインターフェース（Ｉ／Ｆ）１１-1〜１１-n、各ホストＩ／Ｆ毎に設けられた受信バッファ１２-1〜１２-n、及びこれらを相互に接続するシステムバス１６とからなる。操作パネルＩ／Ｆ９には操作パネル２が接続されている。エンジンＩ／Ｆ１０にはプリンタエンジン３が接続されている。ホストＩ／Ｆ１１-1〜１１-nには個々にパーソナルコンピュータなどのホスト装置１３-1〜１３-nが接続されている。
ＣＰＵ４は、プログラムＲＯＭ５内に格納されたプログラムに従って動作し、プリンタ装置１００全体を制御する。プログラムＲＯＭ５内には、プリンタ装置１００全体を制御するためのシステムプログラム、及び各ホストＩ／Ｆ１１-1〜１１-nを通して入力された印刷データを処理すべく各ホストＩ／Ｆ１１-1〜１１-n毎に用意されたエミュレーションプログラム（処理プログラム）が格納されている。
【０００７】
各ホスト装置１３-1〜１３-nからの印刷データは、各ホストＩ／Ｆ１１-1〜１１-nを通して各受信バッファ１２-1〜１２-nに蓄積される。そして、複数のホスト装置から印刷データが送られてきた場合、ＣＰＵ４は、１ページ分の印刷データが最先に蓄積された受信バッファに対応するホストＩ／Ｆを動作中（主動作中）とするとともに、その受信バッファから印刷データを読み出して対応するエミュレーションプログラムにより処理する。すなわち、ＣＰＵ４は、受信バッファ１２-1〜１２-nに蓄積されたデータに応じてフォントＣＧＲＯＭ６からフォントデータを逐次読み出し、印刷データとしてページ単位でＲＡＭ８上のビットマップに展開する。その印刷データは、各ホスト装置１３-1〜１３-nからの改ページコマンドにより実行される改ページ処理により、ＮＶ−ＲＡＭからなるフレームバッファ７に転送され、エンジンＩ／Ｆ１０を通してプリンタエンジン３に渡され印刷される。プリンタエンジン３は、記録紙に画像を出力する印刷手段、印字手段への給紙及び排紙を行う用紙搬送手段などからなり、その各部はエンジンＩ／Ｆ１０を通してＣＰＵ４により制御される。エンジンＩ／Ｆ１０は、プリンタエンジン３からの信号を受け取ってＣＰＵ４へ与えたり、ＣＰＵ４によりフレームバッファ７から読み出されたビデオ信号をプリンタエンジン３へ送ったりする。
【０００８】
また、ＣＰＵ４は、動作中のホストＩ／Ｆからのデータ処理を行うエミュレーションプログラムが次ページデータの入力待ちなどによりアイドル状態になった場合、本来動作中でない他の１のホストＩ／Ｆを一時的に動作中（副動作中）とし、そのホストＩ／Ｆの受信バッファから印刷データを読み出して対応するエミュレーションプログラムにより処理（割込処理）する。このとき処理された処理済み印刷データは直ぐにはフレームバッファ７に転送されず、一旦ＲＡＭ８上の所定の領域に保存される。
また、ＣＰＵ４は、本来動作中のホストＩ／Ｆから入力が再開されたら、一時的に動作中としたホストＩ／Ｆを非動作中とし、本来動作中のホストＩ／Ｆに対応するエミュレーションプログラムにより処理を再開し、上記と同様にして印刷を実行させる。そして、本来動作中のホストＩ／Ｆに接続されたホスト装置から最終ページの印刷データが送られてくると、そのデータを処理し、上記と同様にして印刷出力した後、ＲＡＭ８上の所定の領域に一旦保存しておいた印刷データを読み出して印刷出力する。
上記のように本実施の形態のプリンタ装置１００は、各ホスト装置１３-1〜１３-n毎に用意された複数のエミュレーションプログラムをＣＰＵ４が選択的に切り替えてマルチプルに実行することにより、複数のホスト装置１３-1〜１３-nから送られてくる印刷データを並列処理して印刷出力する。
【０００９】
図２はプリンタ装置１００のマルチプルエミュレーション機能に係わる主要部の構成を概念的に示した機能ブロック図である。図中には各エミュレーションプログラムの実行部１４-1〜１４-n及びシステムプログラムの実行部１５が別々のブロックに分けて示されているが、これらのプログラムによる処理はＣＰＵ４により時分割で実行されるものであり、実際にこのようなブロックに分かれている訳ではない。
従来のプリンタ装置では、複数のホストＩ／Ｆからのデータ受信、及び処理を並行して行なうことはなく、１のホストＩ／Ｆからのデータを処理している間は、他のホストＩ／Ｆは通信不可能状態となっている。そして、最初に選択されていたホストＩ／Ｆのデータ出力が終了した時点で、他のホストＩ／Ｆを受け付け可能状態にして、その中で最初にデータが入力されたホストＩ／Ｆを選択する方式が一般的である。印刷データの終了は一定の時間入力データがなかった場合に終了と判断するのが一般的であり、また、終了と判断する時間は使用者によって設定可能としていることが多い。
【００１０】
本実施の形態のプリンタ装置１００は、外見的には従来と同様のホストＩ／Ｆ切り換え動作を行うものである。しかし、内部的にはマルチプルエミュレーションで動作しており、選択されているホストＩ／Ｆのデータ処理がアイドル状態となっている時間だけ、他のホストＩ／Ｆを受信可能とし、マルチプルエミュレーションとして動作する方式である。したがって、ＣＰＵ４により先に選択された動作中のホストＩ／Ｆに接続されたホスト装置側からみれば、アイドル状態の時のみ、ＣＰＵ４が他の処理を行なっているだけであって、処理が遅くなるなどの影響はない。一方、他のホストＩ／Ｆに接続されたホスト装置側からみれば、従来であれば、無駄に待っている時間に処理を進めることが可能になる。
【００１１】
以下、本実施の形態のプリンタ装置１００の動作を図３〜図５のフローチャートに従って説明する。
まず、請求項１に対応する動作について説明する。なお、以下の説明では、エミュレーションプログラム或いはその実行部を単にエミュレーションと呼ぶ。
図３は請求項１に対応する動作内容を示すフローチャートであり、同図（Ａ）は通常のデータ処理ルーチンを、同図（Ｂ）は受信割り込み時の処理ルーチンをそれぞれ示している。ここでは、本来動作しているホストＩ／Ｆを主動作Ｉ／Ｆ、その主動作Ｉ／Ｆからのデータを処理しているエミュレーションを主動作エミュレーション、そして主動作エミュレーション側がアイドル状態の時に通信可能になるホストＩ／Ｆを副動作Ｉ／Ｆ、その副動作Ｉ／Ｆからのデータを処理しているエミュレーションを副動作エミュレーションと呼ぶことにする。
まず、図３（Ａ）に示す通常のデータ処理ルーチンについて説明する。通常は、一つのデータの処理が終了すると、受信バッファから次のデータを取り出そうとする（Ｓ１）。ここで取り出すデータがあれば（Ｓ２でＹｅｓ）、受信バッファからデータを取り出し、処理を実行する（Ｓ３）。そして、ホストＩ／Ｆが通信可能であれば（Ｓ４でＹｅｓ）、ステップＳ１に戻り次のデータ処理に移行する。
【００１２】
一方、ステップＳ２において受信バッファに取り出すデータがなかった場合、従来ならばこの時点で次のデータ入力があるまでアイドル状態に入るところであるが、本実施の形態では、受信バッファに取り出すデータがなかった場合（Ｓ２でＮｏ）、現在動作中のエミュレーションが主動作エミュレーションであるか否かをチェックする（Ｓ５）。エミュレーション自体は、主動作エミュレーションとして動作したり、副動作エミュレーションとして動作したりするし、またそれぞれの場合によって次の処理が異なるので、このチェックが必要となる。その結果、現在動作中のエミュレーションが主動作エミュレーションであった場合（Ｓ５でＹｅｓ）、最初にアイドル状態になった時点では、他のホストＩ／Ｆは全て通信不可能状態であるので、この時点で他の全てのホストＩ／Ｆを通信可能にする（Ｓ６）。したがって、以後は他の全てのホストＩ／Ｆからも受信、及びデータ処理可能となる。そうした上で、次に所定の時間、動作中のエミュレーションが自分のプロセスを休止する（Ｓ７）。
【００１３】
こうしている間に他のホストＩ／Ｆにデータが送られてくれば、そちらの処理を行なっているが、その間は従来のホストＩ／Ｆ切り換え方式であってもプロセスは休止しているので、主動作エミュレーションとしてはなんら変わりはない。所定の時間休止後、エミュレーションのプロセスが再起動される。そして、動作中のエミュレーションのホストＩ／Ｆが通信可能であるか否かをチェックする（Ｓ４）。動作中のエミュレーションが主動作エミュレーションであれば通信不可能であることはないので（Ｓ４でＹｅｓ）、ステップＳ１に戻って次のデータ処理を行う。しかし、副動作エミュレーションの場合は、この間に通信不可能になっている可能性がある。通信が不可能になっていたら（Ｓ４でＮｏ）、たとえ次に取り出すべきデータが受信バッファに残っていてもその処理は実行せず、次に通信可能になるまで副動作エミュレーションのプロセスを休止する（Ｓ４→Ｓ８→Ｓ４）。こうすることで、主動作エミュレーションの処理速度が低下するのを防ぐことができる。
【００１４】
次に、図３（Ｂ）に示す受信割り込み時の処理ルーチンについて説明する。
このルーチンは印刷データの割り込み発生により起動し（Ｓ１１）、まず割り込みの入ったホストＩ／Ｆが主動作Ｉ／Ｆであるか否かのチェックを行なう（Ｓ１２）。その結果、主動作Ｉ／Ｆからの割り込みであれば（Ｓ１２でＹｅｓ）、この時点で他のホストＩ／Ｆを通信不可能にする（Ｓ１３）。つまり、主動作エミュレーションの処理データがなくなった時点で他のホストＩ／Ｆを通信可能にし（Ｓ５でＹｅｓ→Ｓ６）、次に主動作Ｉ／Ｆからのデータ割り込みが入った時点で他のホストＩ／Ｆを通信不可能にするのである。したがって、ステップＳ６が実行されてからステップＳ１３が実行されるまでの間、すなわち主動作エミュレーションの通常のアイドル状態の間だけ、他のホストＩ／Ｆからの受信、及び処理は可能となる。この間に処理されたデータは主動作エミュレーションの場合と同様に受信バッファに書き込まれる（Ｓ１４）。
【００１５】
次に、請求項２に対応する動作について説明する。
図４は請求項２に対応する動作内容を示すフローチャートであり、同図（Ａ）は通常のデータ処理ルーチンを、同図（Ｂ）は受信割り込み時の処理ルーチンをそれぞれ示している。この図４に示す動作フローは、図３（Ａ）の動作フロー中に、ステップＳ２１〜Ｓ２３及びＳ３１〜Ｓ３７を付加したものであり、その他のステップＳ１〜Ｓ８及びＳ１１〜Ｓ１４は上記と同様である。
ステップＳ３でデータ処理を実行し、１ページ分の印刷データが揃った場合、従来であればその印刷データに基づいて即プリンタエンジン３を駆動し、画像出力を実施するところであるが、本実施の形態においては、副動作エミュレーション側は、そのホストＩ／Ｆが主動作Ｉ／Ｆに切り替わるまで出力しない。
すなわち、１ページ分の印刷データが揃ったら（Ｓ２１）、次に、動作中のエミュレーションが主動作エミュレーションであるか否かのチェックを行なう（Ｓ２２）。その結果、主動作エミュレーションであった場合は（Ｓ２２でＹｅｓ）、即プリンタエンジン３への出力を開始し（Ｓ２３）、画像出力を実施する。そうでない場合は、プリンタエンジン３への出力を行なわず、次の処理へ移る。また、ＲＡＭ８の容量の許す限り、副動作エミュレーションも次のページの処理を行ない、複数ページ分の処理済みデータを揃えておく。
【００１６】
また、ステップＳ７で所定の時間プロセスを休止した後、ホストＩ／Ｆ切り換えタイミングを検知するためにＣＰＵ４に内蔵されたカウンタのカウントアップ動作を開始させ（Ｓ３１）、データの入らない時間を計測する。このカウンタは例えばデータの入力がある毎に０リセットし、データ待ちのループ毎にカウントアップすることで、データの入らない時間を計測することができる。このカウンタの値から所定の切り換え時間分データの入力がないことが判れば（Ｓ３２でＹｅｓ）、他のホストＩ／Ｆの中に副動作Ｉ／Ｆが存在しているか、すなわち、既に受信しているホストＩ／Ｆがあるか否かのチェックを行なう（Ｓ３３）。ここで、そのようなホストＩ／Ｆはないと判断された場合（Ｓ３３でＮｏ）、全てのホストＩ／Ｆを入力可能な状態として、主動作Ｉ／Ｆが存在しない状態にする（Ｓ３４）。この状態からは、次に入力のあったホストＩ／Ｆが主動作Ｉ／Ｆとなる。一方、既に受信しているホストＩ／Ｆが存在した場合（Ｓ３３でＹｅｓ）、その副動作Ｉ／Ｆを主動作Ｉ／Ｆに変更する（Ｓ３５）。そして、その変更により主動作Ｉ／ＦとなったホストＩ／Ｆからの入力により既に１ページ分以上の印刷データが揃っているか否かをチェックし（Ｓ３６）、揃っていれば（Ｓ３６でＹｅｓ）、プリンタエンジン３への出力を開始し（Ｓ２３）、画像出力を実行する。つまり、既に１ページ分の印刷データが揃いながらも（Ｓ２１でＹｅｓ）、主動作Ｉ／Ｆでないため（Ｓ２２でＮｏ）、画像出力できなかったページがこの時点で全て出力されることになる。また、ステップＳ２１の時点で１ページ分の印刷データが完全には揃っていなくてもページの一部のデータはできているはずでので、その場合はその続きのデータ受信、及び処理を行なう。
上記実施の形態によれば、副動作Ｉ／Ｆのデータ処理が１ページ分終了しても、それが主動作Ｉ／Ｆからのデータに基づく画像出力の間に割り込む形で出力されるという不具合は生じなくなり、しかも副動作Ｉ／Ｆが主動作Ｉ／Ｆに切り替わった後はデータ処理が既に終了しているので即画像出力することが可能であり、結果的に印刷時間を短縮することができる。
なお、上記実施の形態では、本発明の画像形成装置をプリンタ装置に適用した場合を例にとり説明したが、これに限るものではなく、複数のホスト装置とネットワーク等を介して相互接続された複写機、ファクシミリ装置、或いはこれらの機能を兼ね備えた複合機などにも適用できる。
【００１７】
【発明の効果】
以上説明したように、本発明によれば以下のような優れた効果を発揮できる。請求項１の画像形成装置では、動作中のインターフェースに接続されたホスト装置からのデータの処理を行なっている処理プログラムがアイドル状態になった場合、その間に本来動作中でないインターフェースに接続された他のホスト装置からのデータを受信し処理することが可能となるため、従来であれば無駄に待機しているだけであったアイドル状態の間に本来動作中でないインターフェースに接続された他のホスト装置からのデータの処理を進めることができる。そのため、結果として上記他のホスト装置から画像出力要求が出されてから画像出力が実行されるまでの所要時間を短縮することができ、また、本来動作中のインターフェースに接続されたホスト装置からのデータの処理速度には影響を与えることはなく、全体として画像出力速度を向上することができる。
【００１８】
また、請求項２の画像形成装置では、上記他のホスト装置からのデータの処理が終了してもその画像出力は直ぐには実行されず、本来動作中のインターフェースに接続されたホスト装置からのデータの処理が完了しその画像出力が行われた後に上記他のホスト装置側の画像出力が行われる。そのため、画像を１ページずつ紙などの記録媒体に出力した際、データ送信元の異なる出力画像が記録された記録媒体が混ざるのを防止しデータ送信元毎に順番通りに出力できる。
【図面の簡単な説明】
【図１】本発明に係る画像形成装置の一つであるプリンタ装置の実施の形態の一例を示すブロック図である。
【図２】図１に示すプリンタ装置のマルチプルエミュレーション機能に係わる主要部の構成を概念的に示した機能ブロック図である。
【図３】請求項１に対応する実施の形態の動作内容を示すフローチャートであり、（Ａ）は通常のデータ処理ルーチンを、（Ｂ）は受信割り込み時の処理ルーチンをそれぞれ示している。
【図４】請求項２に対応する実施の形態の動作内容を示すフローチャートであり、（Ａ）は通常のデータ処理ルーチンを、（Ｂ）は受信割り込み時の処理ルーチンをそれぞれ示している。
【符号の説明】
１  プリンタコントローラ、２  操作パネル、３  プリンタエンジン、４  ＣＰＵ（処理装置）、５  プログラムＲＯＭ、６  フォントＣＧＲＯＭ、７  フレームバッファ、８  ＲＡＭ、９  操作パネルインターフェース、１０  エンジンインターフェース、１１-1〜１１-n  ホストインターフェース、１２-1〜１２-n受信バッファ、１３-1〜１３-n  ホスト装置、１６  システムバス。
【図１】
0003739527.tif 000002
【図２】
0003739527.tif 000003
【図３】
0003739527.tif 000004
【図４】
0003739527.tif 000005