(57)【特許請求の範囲】
【請求項１】
外部機器に送信する送信データが書き込まれる送信バッファと、
前記送信バッファに書き込みができたか判別する判別手段と、
前記判別手段により書き込みができないと判別された場合、タイムアウトになったか判別し、タイムアウトになったと判別された場合、送信データを捨てて処理を終了し、タイムアウトになったと判別されない場合、一定時間待ち、送信バッファに書き込み要求を行い、前記判別手段に判別させ、前記判別手段により書き込みができたと判別された場合、タイムアウト時間をリセットし、全て書き込みができたか判定し、全て書き込みができたと判定された場合、処理を終了し、全て書き込みができないと判定された場合、一定時間待ち、送信バッファに書き込み要求を行い、前記判別手段に判別させる手段とを有することを特徴とする印刷装置。
【請求項２】
外部機器に送信する送信データが書き込まれる送信バッファと、
前記送信バッファに書き込みができたか判別する判別手段と、
前記判別手段により書き込みができないと判別された場合、タイムアウトになったか判別し、タイムアウトになったと判別された場合、送信データを捨てて処理を終了し、タイムアウトになったと判別されない場合、一定時間待ち、送信バッファに書き込み要求を行い、前記判別手段に判別させ、前記判別手段により書き込みができたと判別された場合、タイムアウト時間をリセットし、全て書き込みができたか判定し、全て書き込みができたと判定された場合、処理を終了し、全て書き込みができないと判定された場合、残りの書き込み要求データ数を算出し、送信バッファへの書き込みデータの読み出し位置をずらして次回の書き込み準備を行い、一定時間待ち、送信バッファに書き込み要求を行い、前記判別手段に判別させる手段とを有することを特徴とする印刷装置。
【請求項３】
外部機器から受信したデータに基づき印刷を行う印刷手段を有することを特徴とする請求項１または２記載の印刷装置。
【請求項４】
外部機器に送信する送信データが書き込まれる送信バッファを有する印刷装置におけるバッファへの書き込み方法であって、
前記送信バッファに書き込みができたか判別する判別ステップと、
前記判別ステップにより書き込みができないと判別された場合、タイムアウトになったか判別し、タイムアウトになったと判別された場合、送信データを捨てて処理を終了し、タイムアウトになったと判別されない場合、一定時間待ち、送信バッファに書き込み要求を行い、前記判別ステップに判別させ、前記判別ステップにより書き込みができたと判別された場合、タイムアウト時間をリセットし、全て書き込みができたか判定し、全て書き込みができたと判定された場合、処理を終了し、全て書き込みができないと判定された場合、一定時間待ち、送信バッファに書き込み要求を行い、前記判別ステップに判別させるステップとを有することを特徴とする印刷装置におけるバッファへの書き込み方法。
【請求項５】
外部機器に送信する送信データが書き込まれる送信バッファを有する印刷装置におけるバッファへの書き込み方法であって、
前記送信バッファに書き込みができたか判別する判別ステップと、
前記判別ステップにより書き込みができないと判別された場合、タイムアウトになったか判別し、タイムアウトになったと判別された場合、送信データを捨てて処理を終了し、タイムアウトになったと判別されない場合、一定時間待ち、送信バッファに書き込み要求を行い、前記判別ステップに判別させ、前記判別ステップにより書き込みができたと判別された場合、タイムアウト時間をリセットし、全て書き込みができたか判定し、全て書き込みができたと判定された場合、処理を終了し、全て書き込みができないと判定された場合、残りの書き込み要求データ数を算出し、送信バッファへの書き込みデータの読み出し位置をずらして次回の書き込み準備を行い、一定時間待ち、送信バッファに書き込み要求を行い、前記判別ステップに判別させるステップとを有することを特徴とする印刷装置におけるバッファへの書き込み方法。
【発明の詳細な説明】
【０００１】
【発明の属する技術分野】
本発明は、ホストコンピュータあるいは他のデバイスに対して、データ送信可能な印刷装置に関するもので、ホストコンピュータ等と双方向通信を行なう場合において好適に実施される印刷装置に関するものである。
【０００２】
【従来の技術】
従来の印刷装置においては、印刷装置とホストコンピュータを始めとする他のデバイスとの通信は、片方向のデータ送信が圧倒的に多く、反対方向のデータ送信は非常に少なかった。特に印刷装置からホストコンピュータへのデータ送信はほとんど行なわれず、ホストコンピュータから印刷装置への印刷データ、制御データの送信がほとんどであった。
【０００３】
しかし、印刷装置のステータス情報を頻繁にホストコンピュータへ送信して、ホストコンピュータを操作しているユーザに印刷装置の状態を知らせたり、ホストコンピュータから印刷装置のリモート操作などを行なえるようになり、印刷装置を取り巻くさまざまなデバイス機器とのデータ通信のデータ量の割合が変化してきている。
【０００４】
これまでの印刷装置では、このような双方向通信を想定していないために、ホストコンピュータ側と同じように印刷装置からの送信データはとりこぼしがないように全て送信を実行し、たとえホストコンピュータがデータ受信を行なえない場合でも、印刷装置からのデータ送信はあきらめずに行なっていた。
【０００５】
【発明が解決しようとする課題】
しかしながら、上記のような双方向通信を想定していない印刷装置においては、例えば、ネットワーク環境などで１つの印刷装置に複数のホストコンピュータを接続して使用する環境において、あるホストコンピュータは双方向通信をサポートするアプリケーションを搭載しているが、あるホストコンピュータでは双方向通信をサポートするアプリケーションを搭載していない場合に、双方向通信をサポートするホストコンピュータで使用していたステータス要求するデータをコピーして、双方向通信をサポートしていないホストコンピュータから送信する場合など大いに考えられる。このような使用をユーザが頻繁に行なうと、ホストコンピュータは印刷装置から送信されるデータを受けとらないので、印刷装置の送信バッファがフル状態となり送信バッファに書き込み不可能な状態となる。しかし、印刷装置は送信可能になるまでデータ送信をあきらめないために、さらなるデータ受信やコマンド解析処理など、その他の処理が中断してしまうといった問題があった。
【０００６】
また、双方向通信をサポートしているアプリケーションが搭載されているホストコンピュータにおいても、ホストコンピュータが、ファイルアクセスなどで重い処理を長時間行なっていて、入出力ポートに制御がいかず印刷装置からのデータ受信を実行できない場合に、印刷装置はデータ送信が可能になるまでデータ送信を実行しようと試みて、他の処理が止まってしまうなどの問題があった。
【０００７】
上記例であげた様に、印刷装置とホストコンピュータを始めとするデバイス機器との双方向通信がうまくいかない場合は、物理的に不可能な場合と、一時的に送受信不可能な場合の２つに大きく分けることができる。これらの環境は図４の（Ａ），（Ｂ）に示してある状態が考えられる。
【０００８】
本発明の目的は、上述の点に顧みて、双方向通信が不可能なホストコンピュータを始めとするデバイス機器と接続されている場合、あるいはホストコンピュータが一時的にデータ受信できない様な場合においても、それぞれの状況に対する適切な動作はどうであるかを判断し、実行可能な印刷装置の処理は中断せず、双方向不可能な場合には印刷装置からのデータ送信のみを中断して、印刷装置本来の印刷処理をスムーズに実行できる印刷装置を提供することを目的とする。
【０００９】
【課題を解決するための手段】
上述した課題を解決するために本発明の印刷装置は、
外部機器に送信する送信データが書き込まれる送信バッファと、
前記送信バッファに書き込みができたか判別する判別手段と、
前記判別手段により書き込みができないと判別された場合、タイムアウトになったか判別し、タイムアウトになったと判別された場合、送信データを捨てて処理を終了し、タイムアウトになったと判別されない場合、一定時間待ち、送信バッファに書き込み要求を行い、前記判別手段に判別させ、前記判別手段により書き込みができたと判別された場合、タイムアウト時間をリセットし、全て書き込みができたか判定し、全て書き込みができたと判定された場合、処理を終了し、全て書き込みができないと判定された場合、一定時間待ち、送信バッファに書き込み要求を行い、前記判別手段に判別させる手段とを有することを特徴とする。
また、本発明の印刷装置は、
外部機器に送信する送信データが書き込まれる送信バッファと、
前記送信バッファに書き込みができたか判別する判別手段と、
前記判別手段により書き込みができないと判別された場合、タイムアウトになったか判別し、タイムアウトになったと判別された場合、送信データを捨てて処理を終了し、タイムアウトになったと判別されない場合、一定時間待ち、送信バッファに書き込み要求を行い、前記判別手段に判別させ、前記判別手段により書き込みができたと判別された場合、タイムアウト時間をリセットし、全て書き込みができたか判定し、全て書き込みができたと判定された場合、処理を終了し、全て書き込みができないと判定された場合、残りの書き込み要求データ数を算出し、送信バッファへの書き込みデータの読み出し位置をずらして次回の書き込み準備を行い、一定時間待ち、送信バッファに書き込み要求を行い、前記判別手段に判別させる手段とを有することを特徴とする。
また、本発明の印刷装置におけるバッファへの書き込み方法は、
外部機器に送信する送信データが書き込まれる送信バッファを有する印刷装置におけるバッファへの書き込み方法であって、
前記送信バッファに書き込みができたか判別する判別ステップと、
前記判別ステップにより書き込みができないと判別された場合、タイムアウトになったか判別し、タイムアウトになったと判別された場合、送信データを捨てて処理を終了し、タイムアウトになったと判別されない場合、一定時間待ち、送信バッファに書き込み要求を行い、前記判別ステップに判別させ、前記判別ステップにより書き込みができたと判別された場合、タイムアウト時間をリセットし、全て書き込みができたか判定し、全て書き込みができたと判定された場合、処理を終了し、全て書き込みができないと判定された場合、一定時間待ち、送信バッファに書き込み要求を行い、前記判別ステップに判別させるステップとを有することを特徴とする。
また、本発明の印刷装置におけるバッファへの書き込み方法は、
外部機器に送信する送信データが書き込まれる送信バッファを有する印刷装置におけるバッファへの書き込み方法であって、
前記送信バッファに書き込みができたか判別する判別ステップと、
前記判別ステップにより書き込みができないと判別された場合、タイムアウトになったか判別し、タイムアウトになったと判別された場合、送信データを捨てて処理を終了し、タイムアウトになったと判別されない場合、一定時間待ち、送信バッファに書き込み要求を行い、前記判別ステップに判別させ、前記判別ステップにより書き込みができたと判別された場合、タイムアウト時間をリセットし、全て書き込みができたか判定し、全て書き込みができたと判定された場合、処理を終了し、全て書き込みができないと判定された場合、残りの書き込み要求データ数を算出し、送信バッファへの書き込みデータの読み出し位置をずらして次回の書き込み準備を行い、一定時間待ち、送信バッファに書き込み要求を行い、前記判別ステップに判別させるステップとを有することを特徴とする。
【００１０】
【発明の実施の形態】
（実施例１）
本発明における実施例１を説明する。
【００１１】
図１に本実施例のプリンタを含んだシステム構成を示す。図１において、１０１は、ホストコンピュータ等の外部機器、１０２は本実施例を適用したレーザビームプリンタである。１０５は、イメージデータ（２値または多値データ）に基づいて、周知の電子写真プロセスによって感光ドラム上に潜像を形成し、用紙に転写して定着し印字を行なうプリンタエンジン部、１０３は、プリンタエンジン部１０５に接続され、ホストコンピュータ等の外部機器１０１から送られるコードデータ（ＥＳＣコード、各種ＰＤＬ等）を受け、このコードデータに基づいてドットデータからなるページ情報を生成しプリンタエンジン部１０５に対しての所定のインターフェイス手段によってイメージデータを送信するプリンタコントローラ部、１０４は、ユーザ（操作者）とのインターフェイスを行なうパネル部１０４であり、ユーザは、パネル部１０４を操作することによって、プリンタ１０２に所定の動作を指示することができる。
【００１２】
図２は、本実施例のプリンタの機構模式図である。同図において、２０１はプリンタ匡体、２０２は操作パネルである。操作パネル２０２は、操作のためのスイッチ及びＬＥＤ表示器、ＬＣＤ表示器が配されている。これは図１において示したパネル部１０４の物理的側面である。２０３は、プリンタの印字プロセス制御を行なうプリンタエンジン部１０５の制御部及び、プリンタ全体の制御とホストコンピュータからのデータを解析しイメージデータに変換するプリンタコントローラ部１０３が収納される制御ボード収納部である。２１０は用紙を保持する用紙カセットであり、不図示の仕切り板によって電気的に用紙サイズを検知する機構を有する。２１１は、カセット給紙クラッチであり、用紙カセット２１０上に載置された用紙の最上位の用紙一枚のみを分離し、不図示の駆動手段によって分離した用紙を給紙ローラ２１２まで搬送されるカムで、給紙の度に間欠的に回転し、１回転に対応して１枚の用紙を給紙する。２１４は、レジストシャッタであり、用紙を押圧して給紙を停止させる。給紙ローラ２１２は、用紙の先端部をレジストシャッタ２１４まで搬送する。２１９は手差し用トレイであり、２１５は手差し給紙クラッチである。給紙クラッチ２１５は用紙の先端をレジストシャッタ２１４まで搬送する。以上のような構成によって用紙カセット２１０及び手差し給紙用トレイ２１９から選択的に用紙を給紙することが可能となる。
【００１３】
プリンタエンジン部１０５は、プリンタコントローラ部１０３と所定の通信プロトコルによって通信を行ない、プリンタコントローラ部１０３からの指示によって、カセット２１０、または手差し用トレイ２１９のなかから給紙手段を決定し、印字開始指示によって上記のとおり給紙を開始し用紙をレジストシャッタ２１４まで搬送する。２０４はカートリッジであり、感光ドラム２０５及び、不図示のトナー保持部を有する。２０６はレーザドライバ、２０７は回転多面鏡、２０８は反射ミラー、２０９はビームディテクタである。レジストシャッタ２１４まで用紙が搬送されると、プリンタコントローラ部１０３から送られたイメージデータに応じてレーザドライバによってオンオフ駆動される不図示の半導体レーザから発射されるレーザビームは、回転多面鏡２０７により主走査方向に走査され反射ミラーを介して感光ドラム２０５上に導かれ結像し、主走査方向に走査して主走査ライン上に潜像を形成する。このレーザビームの発射に同期してレジストシャッタ２１４を上方に駆動し、用紙の搬送をレーザビームの副走査に同期させる。レーザビームの走査開始時に配置されたビームディテクタ２０９は、レーザビームを検出することによって主走査の画像書きだしタイミングを決定するための同期信号を形成し、プリンタコントローラ部１０３に送る。その後用紙は、搬送ローラ２１３によって搬送され、感光ドラムは不図示のモータによって回転駆動され、現像器２２０によってトナー像として顕像化された後、用紙上に転写される。トナー像が転写された用紙はその後、定着ローラ２１６によりトナー像が加熱定着され、搬送ローラ２１７を経て、排紙ローラ２１８によりプリンタ匡体の排紙トレイに排紙される。
【００１４】
図３は、プリンタコントローラ部１０３の構成を示すブロック図である。
【００１５】
同図において、３０２は外部機器１０１から送られるコードデータを受信するとともに外部機器１０１にステータス等のデータを送信するホストＩ／Ｆ部であり、後述する送信バッファに書き込まれたデータを外部機器１０１に送信する。
【００１６】
３０７はＲＡＭであり、受信したコードデータの入力バッファ、ページメモリＣＰＵ３０９のワークメモリとして用いられる。受信したコードデータは入力バッファに一時格納され、ＣＰＵ３０９により中間コードに変換され、ページメモリに格納される。
【００１７】
３１０は、ＥＥＰＲＯＭであり、ユーザが作成する外字データ及びフォームデータがダウンロードされる。３０４はＲＯＭであり、ＣＰＵ３０９の動作プログラムや標準フォント等が格納されている。
【００１８】
３０３は画像データ発生部であり、ＲＡＭ３０７内のページメモリに格納された中間コードをビットマップデータに展開し、画像メモリ３０５に書き込む。ＤＭＡ制御部３０８は画像メモリ３０５内のビットマップデータをエンジンＩ／Ｆ部３０６を介してプリンタエンジン部１０５に送出する。
【００１９】
またＣＰＵ３０９は、エンジンＩ／Ｆ部３０６を介してステータス要求コマンドや給紙手段を指定するコマンド等をプリンタエンジン部に送り、プリンタエンジン部１０５は、これらのコマンドに応答して、コマンドに対応したステータスを返送する。かかるステータスには、エラーの種類、指定給紙手段等が含まれる。
【００２０】
プリンタコントローラ部１０３は、上述したようにして得られたプリンタエンジン部１０５のステータスやＲＯＭ３０４内の内蔵フォントやＥＥＰＲＯＭ３１０にダウンロードされているフォントに関する情報を送信ステータスとして外部機器１０１に送る機能を備えている。
【００２１】
以下、かかる送信ステータスを送信するときのＣＰＵ３０９の動作を説明する。
【００２２】
図６は簡略化のためホストコンピュータとのインターフェイスが１つと想定した本実施例の内容を示すフローチャートである。ホストコンピュータ１０１からのステータス要求があったり、ホストコンピュータ１０１に対してデータ送信を行なうイベントが印刷装置に発生した場合に、ホストＩ／Ｆ部３０２にある送信バッファに送信ステータスを必要バイト数分書き込み要求する（ステップＳ１０１）。ステップＳ１０１の送信バッファ書き込みにおいて、ホストコンピュータ１０１との通信状態、あるいはステータス送信の頻度などによって、送信バッファの状態は図５に示す（Ａ）、（Ｂ）、（Ｃ）、（Ｄ）の４つのパターンがある。ステップＳ１０１において書き込み要求を行なった結果から、ステップＳ１０２において図５の（Ａ）、（Ｂ）の様に送信データを全て書き込みできた場合（状態１）、図７のステップＳ２０１（これは別タスクにより処理を行なっている）でカウントを行なっているタイムアウト時間のリセットを行なう（ステップＳ１０３）。ここで、図５の（Ａ）、（Ｂ）の状態を詳しく説明すると、この状態は発生したステータスが全て送信バッファに書き込み可能な場合で、（Ａ）と（Ｂ）の違いは送信が正常に行なわれていて送信バッファに書き込み可能な場合か、データ送信不可能状態になってしまったが、送信バッファに書き込み可能な領域は十分空いていて書き込み可能な場合かの違いである。
【００２３】
ステップＳ１０３においてリセット処理を行なった後、さらにステップＳ１０４において、書き込み要求したバイト数分のデータを全て書き込みできたかどうかを判断する。書き込み要求したバイト数分のデータを全て書き込みできた場合は、送信データを全て送信バッファに書き込みできているので、そのまま処理を終了する。逆にステップＳ１０４において一部分のみ書き込みできた場合は、送信は完了していないので、ステップＳ１０５において残りの書き込み要求バイト数を算出し、送信バッファへの書き込みデータの読み出し位置をずらして次回の書き込み準備を行なう。それから一旦別のタスクを起動して一定時間待って（ステップＳ１０６）から再び送信バッファに残りの送信データの書き込み要求を行なう（ステップＳ１０１）。通常では、１回で書き込みは可能となることが多いが、大量データを送信しようとした場合などはこのルーチンにより、複数回送信バッファへの書き込みを行ない、全ての送信データの書き込みが終了するまで処理を繰り返す。
【００２４】
ステップＳ１０２において、送信バッファに書き込みできなかった場合、ステップＳ２０１においてカウントしているタイムアウト時間をＲＡＭ３０７により参照して（ステップＳ１０７）、そのタイムアウト時間がまだ送信タイムアウトとなるある閾値まで時間経過していない場合（ステップＳ１０８）、送信バッファへの書き込みはあきらめず（状態２）、一旦別のタスクを起動して一定時間待って（ステップＳ１０６）から再び送信バッファに残りの送信データの書き込み要求を行なう（ステップＳ１０１）。状態２に対応する状態は図５の（Ｃ）に示す状態で、送信バッファがフル状態になったが、あらかじめ設定しているタイムアウト時間まで経過していないので、一時的に送信不可能状態だと判断して送信バッファへの書き込みをある一定時間リトライする。送信状態が変化せず、送信バッファに書き込みできない状態が続いた場合、タイムアウト時間が来るまで上記動作を繰り返す。
【００２５】
ステップＳ１０８において、タイムアウト時間になってしまった場合（状態３）、送信データを捨てて処理を終了するタイムアウト処理を実行する（ステップＳ１０９）。ここで示す状態３は図５（Ｄ）に示すように、送信バッファへの書き込みできない状態があらかじめ設定した時間に達して、現在の環境では印刷装置からの送信は不可能な状態であると判断した場合である。
【００２６】
このように、タイムアウトが発生した状態においてデータの送信に係るイベントが発生した場合、一度だけ送信バッファへの書き込み要求を行ない、それでも書き込みができない場合に、すぐあきらめてデータを捨てるよう動作する（ステップＳ１０８からステップＳ１０６に行くことなくステップＳ１０９に進む）。このため、他の処理を中断させることなく、あたかも送信が行なわれているかのように動作をすることができる。そして送信可能になったら、状態２、状態３のどちらかの状態からでも、直ちに送信を再開することができるので、ホストコンピュータを始めとするさまざまなデバイス機器と印刷装置との通信状態に合わせた最適な動作は何かを判断して、データ送信を行なうことが可能となる。
【００２７】
（実施例２）
実施例１においてはインターフェイスを１つに限定したが、複数のインターフェイスについてそれぞれ上記タイムアウト判断を行なっても良い。同じ送信データを複数のポートに送信するような状況の場合、それぞれのポートごとに、タイムアウト発生状態などを判断するようにする。たとえば、シリアルポートが双方向通信不可能な状態で、パラレルポートは双方向通信可能な状態であるような場合、双方向通信不可能なシリアルポートのみタイムアウト状態に移行して、双方向の通信を行なわず、双方向可能なパラレルポートのみ双方向通信を行ない、その他の処理は円滑に行なえるようにしてもよい。
【００２８】
（実施例３）
実施例１においてはタイムアウト処理を送信データを捨てて終了するとしたが、送信バッファにクリアにすることにより、送信バッファへの書き込みを可能にするとしても良い。また、送信バッファの内容を全て消してしまうのではなく、古い情報から消していき、必要な容量のみ空きを作るようにしても良い。
【００２９】
（実施例４）
実施例１においてはタイムアウト発生後に書き込み要求があった場合、送信バッファに書き込みを１回のみトライしてそれでも書き込みできない場合は、タイムアウト処理を実行しているが、タイムアウト発生時に、より短かいタイムアウト時間を設定することにより、通常のタイムアウト時間よりも短いある一定時間リトライするようにしても良い。
【００３０】
（実施例５）
実施例１においては時間を計測してある一定時間内処理を実行するようにしたいが、時間ではなくリトライ回数を設定して閾値を全て回数で行なうようにしても良い。
【００３１】
【発明の効果】
上述したように、本発明に関わる印刷装置は、印刷装置が双方向通信が不可能なホストコンピュータを始めとするデバイス機器と接続されている場合、あるいはホストコンピュータが一時的にデータ受信できない様な場合においても、それぞれの状況に対する適切な動作はどうであるかを判断し、実行可能な印刷装置の処理は中断せず、双方向不可能な場合には印刷装置からのデータ送信のみを中断して、印刷装置本来の印刷処理をスムーズに実行できる印刷装置を提供することが可能となる。
【図面の簡単な説明】
【図１】本発明が適用されるプリンタを含むシステムの全体構成を示すブロック図である。
【図２】本発明が適用されるプリンタの機構模式図である。
【図３】本発明が適用されるプリンタコントローラの電気的構成を示すブロック図である。
【図４】実施例１において印刷装置の送信バッファが書き込み不可能状態になる原因を示した図である。
【図５】実施例１において、印刷装置とホストコンピュータとの通信状態の変化に対応した送信バッファへの書き込み方法の変化を示す図である。
【図６】実施例１において、印刷装置とホストコンピュータとの通信状態の変化に対応した送信バッファへの書き込み方法の一例を示したフローチャートである。
【図７】実施例１において、タイムアウト時間のカウントを実行する一例を示したフローチャートである。
【符号の説明】
１０１  外部機器（ホストコンピュータ）
１０２  レーザビームプリンタ
１０３  プリンタコントローラ部
１０４  パネル部
１０５  プリンタエンジン部
３０２  ホストＩ／Ｆ部
３０９  ＣＰＵ
【図１】
0003706657.tif 000002
【図２】
0003706657.tif 000003
【図３】
0003706657.tif 000004
【図４】
0003706657.tif 000005
【図５】
0003706657.tif 000006
【図６】
0003706657.tif 000007
【図７】
0003706657.tif 000008