説明

プリンタ、プリントシステム及びプリンタの制御方法

【課題】 プリントジョブデータを受信するタイミングを適切に制御することによって、プリンタの停止や暴走といった異常動作が発生することを回避することができるプリンタを提供することにある。
【解決手段】 本発明に係るプリンタは、多重割り込みを許可するCPUと、プリントジョブデータの受信を制御するための信号をホスト装置に対して出力するGAと、前記CPUに対して割り込みをかけることにより所定の処理を実行する割り込み処理手段とを有し、前記割り込み処理手段は、プリントジョブデータの受信を制御するための信号であって、前記GAが出力する前記信号とは別の信号を出力する第1の処理手段と、前記プリントジョブデータに基づく印刷処理を実行するための第2の処理手段と、前記第1の処理が終了した後であって、前記第2の処理が開始される前に、前記割り込み処理手段が実行する割り込み処理の優先度を、他の割り込み処理手段が実行する割り込み処理の優先度よりも低い優先度に変更する優先度変更手段とを有することを特徴とする。

【発明の詳細な説明】
【0001】
【発明の属する技術分野】本発明は、CPUに対する多重割り込みにおいて、割り込み処理の優先度を変更することができるプリンタ及びプリントシステム並びにプリンタの制御方法に関する。
【0002】
【従来の技術】プリンタは、ホスト装置からの印字要求に基づいて、当該ホスト装置から送信されるプリントジョブデータ(以下、「ジョブデータ」という。)を印字する。図6は、このようなプリンタのハード構成を表したブロック図である。以下に、このような従来のプリンタの構成と、ホスト装置からジョブデータを受信して印字を行なうまでのプリンタの動作の流れについて説明する。
【0003】プリンタ100は、ホスト装置200とLAN等のネットワークやパラレルケーブル等の専用線を介して接続されている。ホスト装置200は、典型的には、汎用のパーソナルコンピュータに置き換えることができ、所定のプログラムを実行することにより、プリンタ100に対して印刷要求とジョブデータとを送信するものである。ジョブデータは、イメージデータを生成するためのコマンドおよびデータなどを含んで構成されている。
【0004】通信インターフェース(以下、「I/F」という。)90は、ホスト装置200とプリンタ90との間でデータ通信を行なうためのものである。GA(Gate Array)91は、I/F90を介してホスト装置200に対しビジー信号を出力することにより、ホスト装置200がジョブデータを送信するタイミングを制御するためのものである。ビジー信号にはONとOFFとがあり、「ON」は、データの送信を中止させる場合(データ受信不可能な場合)に、「OFF」は、データの送信を開始させる場合(データ受信可能な場合)に出力される。
【0005】制御部93は、プリンタ全体の動作を司るものである。制御部93は、ホスト装置200から送られる印刷要求(ジョブデータ)に対して、ラスタ形式のイメージデータを作成して、これをプリントエンジン94に供給する。制御部93は、典型的には、CPU、DMA、ROM及びRAMによって構成され、これらは、図示しないバスによって相互に接続されている。制御部93は、ホスト装置200からI/F90を介して送信されるプリントジョブデータに基づいて、印刷処理を遂行する機能を有する。
【0006】プリントエンジン94は、キャリッジ(CR)機構、紙送り(PF)機構、印刷ヘッドなどから構成される。プリントエンジン26は、制御部93から供給されるイメージデータに従って、印刷用紙などの印刷記録媒体に印刷を行う。
【0007】
【発明が解決しようとする課題】しかし、従来のプリンタ100とホスト装置200との間におけるジョブデータのやりとりにおいては、ジョブデータを受信するタイミングが適切に制御されない結果、以下に述べるような問題があった。
【0008】例えば、パラレルI/Fが採用された場合の従来のプリンタ100におけるジョブデータの受信の流れについて、図6を用いて説明する。プリンタ100は、所定バイト数毎(例えば1バイト毎)に、ホスト装置200から送信されるジョブデータを受信するように構成されている。そして、ホスト装置200がジョブデータを送信するタイミングは、下記に述べるように、GA91が出力するビジー信号のONとOFFとによって制御されている。ビジー信号「ON」は、ジョブデータの送信を中止させる場合(次のジョブデータ受信が不可能な場合)に、「OFF」は、ジョブデータの送信を開始させる場合(次のジョブデータ受信が可能な場合)に出力されるものである。
【0009】具体的には、まず、GA91は、ホスト装置200からI/F90を介してSTB信号を受信すると、自動的にビジー信号「ON」をホスト装置200に対して送信し、ジョブデータを受信する。STB信号は、ホスト装置200が、プリンタ100に対して、ジョブデータの受信を指示するために出力する信号である。受信されたジョブデータは、GA91内に格納される。
【0010】また、GA91は、STB信号を受信すると、制御部93のDMAを起動するように構成されている。起動されたDMAは、GA91内のジョブデータを読み出して、受信用バッファに書き込む。受信用バッファとは、ジョブデータを一時的に格納するためのバッファであり、制御部93のRAMに設けられている。GA91は、DMAによってジョブデータが読み出されると、次のジョブデータを受信するために、ビジー信号「OFF」を自動的にホスト装置200に対して送信する。
【0011】ビジー信号がOFFになるので、ホスト装置200は、次のジョブデータの受信を指示するためのSTB信号をプリンタ100に送信し、プリンタ100とホスト装置200との間で、上記の処理が繰り返される。これにより、ジョブデータが受信用バッファに次々と書込まれ、当該書き込まれたジョブデータは、別途、CPUによってイメージデータに展開され、イメージバッファに格納された後、印字されることになる。
【0012】ここで、ジョブデータの受信用バッファへの書き込みとリングバッファ処理について説明する。リングバッファ処理とは、プリンタ100がホスト装置200から受信したジョブデータを受信用バッファに格納する際に、一定条件下で必要となる処理である。
【0013】図7は、DMAによる受信用バッファへのジョブデータの書き込み状況を説明するための図である。(A)は、受信用バッファにジョブデータが書き込まれる様子を表す図であり、(B)は、受信用バッファの領域を超えてジョブデータが書き込まれる場合(以下、「バッファオーバーライト」という。)を表す図である。
【0014】受信用バッファは、イメージデータを格納するためのイメージバッファとは別に、受信専用のバッファとして制御部93のRAMに設けられている。そして、受信用バッファには、一定の領域(例えば64kb)が予め設定されており、図に示すように他のデータ領域と隣接している。この受信用バッファには、TOPからBottomの方向に向かってジョブデータが順次書き込まれていくので、ジョブデータを書き込んでいる現在の位置を、ポインタによって表すように構成されている。
【0015】DMAは、GA91からジョブデータを読み出すと、Topから順次ジョブデータを書き込んでいく。そして、ジョブデータが受信用バッファの最後(Bottom)まで書き込まれ、ポインタがBottomの位置にくると、ポインタを再びTopに戻す処理が必要になる。この、ジョブデータの書き込み位置を示すポインタをTopの位置に戻す処理を「リングバッファ処理」といい、この処理はCPUによって実行される。DMAは、ジョブデータをBottomの位置に書込むと、CPUに割込みをかけて、リングバッファ処理を行う旨を指示するのである。なお、以下に、Bottomの位置に書込まれるジョブデータを、「最後のジョブデータ」と呼ぶ。
【0016】ここで、このリングバッファ処理は、CPUが、リングバッファ処理に必要な所定のプログラムを呼び出して処理する必要等がある。よって、ジョブデータをホスト装置から受信して受信用バッファに転送する処理に比べ、リングバッファ処理の処理時間は、長い場合が多い。従って、当該処理の間に(ポインタをTopの位置に戻す前に)、GA91がホスト装置から次のジョブデータを受信してしまうと、DMAが本来の受信用バッファの領域を超えて、他のデータ領域に当該次のジョブデータを書込んでしまうという事態、すなわちバッファオーバーライトが発生する場合がある。図7の(B)によれば、受信用バッファの領域を超えてジョブデータが書き込まれていることがわかる。
【0017】なぜなら、GA91は、最後のジョブデータがDMAによって読み出された場合にも、他のジョブデータと同様に、自動的にビジー信号「OFF」をホスト装置200に対して送信している。よって、ホスト装置200は、次のジョブデータを受信するためのSTB信号を送信し、GA91は、当該STB信号を受信するとDMAを起動する。この起動されたDMAは、新たなジョブデータを受信用バッファに書込むが、リングバッファ処理によってポインタが未だTopの位置に戻っていない場合には、Bottomの位置を超えて他のデータ領域にジョブデータを書込むことになるからである。
【0018】このようなバッファオーバーライトが発生すると、当該他のデータ領域が破壊されることになるため、プリンタ100の動作が不安定となり、ひいてはプリンタの動作の停止や暴走を招くおそれがある。プリンタ100において、このような異常動作が発生することは、商品の品質面からも深刻な問題である。
【0019】そこで、本発明の目的は、プリンタがジョブデータを受信するタイミングを適切に制御することによって、プリンタの停止や暴走といった異常動作が発生することを回避することができるプリンタを提供することにある。
【0020】
【課題を解決するための手段】本発明は、上記の課題を解決するため、GAが自動的に出力するビジー信号とは別に、CPUの制御によってビジー信号を出力させる点に特徴がある。すなわち、CPUがリングバッファ処理を実行する際に、ビジー信号「ON」を出力することとすれば、リングバッファ処理の最中に、ホスト装置からジョブデータが送信されることを防止することができるからである。なお、リングバッファ処理は、CPUへの割り込み処理において実行されるものである。
【0021】ここで、CPUへの割り込み処理について説明する。CPUには、複数のハードウェアによる割り込み処理が設定されており、その信号は割り込み番号(優先度)によって区別される。ある割り込み処理に対して別の割り込み処理が認められることを、多重割り込みの許可という。多重割り込みが許可されている場合、実行中の割り込み処理より優先度の高い割り込み処理が発生すると、当該優先度の高い割り込み処理にCPUの制御が移される。この場合、CPUは、実行中の割り込み処理を一時待避させておき、割り込んできた処理が終了すると、待避させた処理を中断した時点から開始させる。
【0022】プリンタにおけるCPUへの割り込みには、例えば、リングバッファ処理のための割り込み、印字ヘッドコントロールによる割り込み、また、キャリッジ(CR)モータや紙送り(PF)モータの駆動割り込み等がある。
【0023】割り込み処理の優先度は、その処理の内容に応じて設定されるものである。よって、リングバッファ処理による割り込みについて考えると、リングバッファ処理を実行する際に出力するビジー信号は、上述したバッファオーバーライトを回避するため、CPUがこれを遅滞なく出力することが好ましい。従って、リングバッファ処理による割り込み優先度は、最も高く設定することが考えられる。
【0024】しかし、リングバッファ処理は、他の割り込み処理と比べて、CPUの処理に長時間を要する。よって、最も優先度の高いリングバッファ処理を行なっている最中に、他の割り込み処理が入ってきた場合には、他の割り込み処理は優先度が低いため、リングバッファ処理が終了するまで処理を行なうことができないことになる。
【0025】例えば、リングバッファ処理の最中に、キャリッジ(CR)モータや紙送り(PF)モータの駆動割り込みが発生したが、リングバッファ処理が終了するまでモータの駆動が行なえないとすると、モータの脱調が起こり、印字がずれてしまうという場合がある。プリンタにおいて、印字ずれが生じるということは、商品の品質面からも深刻な問題であり、かかる状況は回避する必要がある。
【0026】そこで、本発明は、多重割り込みにおいて、かかる時間的制約を有する割り込み処理を円滑に実行させるため、予め設定した割り込み優先度を、所定条件下で変更することとしている。すなわち、本発明は、ビジー信号の出力については割り込み優先度を高く設定して遅滞なくビジー信号を出力し、ビジー信号の出力後は、割り込み優先度を低く変更して、ビジー信号を出力させる原因となる処理であるリングバッファ処理を行なうように構成している。
【0027】これにより、リングバッファ処理の最中に、モータの駆動割り込みが発生した場合であっても、CPUは、優先度を変更した後に、モータの駆動割り込み処理を実行することができるため、モータの脱調や印字ずれといった事態を回避することができる。
【0028】以上によれば、割り込み処理の優先度を高く設定することによって、ビジー信号を遅滞なく出力することができるので、リングバッファ処理を行なうような場合にも、バッファオーバーライトを防止することができ、ひいてはプリンタの停止や暴走といった異常動作が発生することを未然に回避することが可能となる。
【0029】また、ビジー信号の出力後は、割り込み優先度を低く変更することとしたので、本来割り込むことのできない他の割り込み処理を実行することができるようになり、多重割り込みにおいて、各割り込み処理を円滑に実行することが可能となる。
【0030】具体的には、本発明に係るプリンタは、多重割り込みを受け付け可能なCPUと、前記CPUに対して第1の割り込みと第2の割り込みとをかける割り込み手段と、プリントジョブデータの受信を制御するための第1の信号をホスト装置に対して出力するGAと、を有するプリンタであって、前記CPUは、前記割り込み手段による前記第1の割り込みを受け付けると、プリントジョブデータの受信を制御するための第2の信号を前記ホスト装置に対して出力し、前記第1の割り込みの優先度を、前記第2の割り込みの優先度よりも低い優先度に変更し、前記プリントジョブデータに基づく印刷処理を実行することを特徴とする。
【0031】また、前記第2の信号は、前記ホスト装置に対して前記プリントジョブデータの送信を中止させるための信号であることを特徴とする。
【0032】また、前記プリンタは、前記GAが受信したプリントジョブデータを一時的に格納するための受信用バッファを更に有し、前記割り込み手段は、前記プリントジョブデータが前記受信用バッファの最後の位置に書き込まれた場合に、前記CPUに第1の割り込みをかけ、前記CPUは、前記割り込み手段による前記第1の割り込みを受け付けると、プリントジョブデータの受信を制御するための第2の信号を出力し、前記第1の割り込みの優先度を、前記第2の割り込みの優先度よりも低い優先度に変更し、前記受信用バッファの書き込み位置を示すポインタを前記受信用バッファの最初の位置に戻すことを特徴とする。
【0033】また、前記割り込み手段による前記第2の割り込みは、キャリッジモータ又は/及び紙送りモータを駆動させるための割り込みであることを特徴とする。
【0034】また、本発明に係るプリンタは、CPUに対して複数の割り込みをかける割り込み手段と、前記割り込み手段による多重割り込みを受け付け可能なCPUと、前記CPUが前記割り込み手段による第1の割り込みを受け付けて実行する処理を記憶するレジスタと、プリントジョブデータの受信を制御するための第1の信号をホスト装置に対して出力するGAと、を有するプリンタであって、前記レジスタには、プリントジョブデータの受信を制御するための第2の信号を前記ホスト装置に対して出力する処理と、前記第1の割り込みの優先度を、前記割り込み手段による前記第2の割り込みの優先度よりも低い優先度に変更する処理と、前記プリントジョブデータに基づく印刷処理を実行する処理とが記憶されていることを特徴とする。
【0035】また、前記第2の信号は、前記ホスト装置に対して前記プリントジョブデータの送信を中止させるための信号であることを特徴とする。
【0036】また、前記プリンタは、前記GAが受信したプリントジョブデータを一時的に格納するための受信用バッファを更に有し、前記プリントジョブデータに基づく印刷処理を実行する処理は、前記受信用バッファの書き込み位置を示すポインタを前記受信用バッファの最初の位置に戻す処理であることを特徴とする。
【0037】また、前記割り込み手段による前記第2の割り込みは、キャリッジモータ又は/及び紙送りモータを駆動させるための処理であることを特徴とする。
【0038】なお、上記プリンタの発明は、ホスト装置とプリンタとから構成されるプリントシステムとしても成立し、方法の発明としても成立する。また、上記発明は、プリンタに所定の機能を実現させるプログラムまたはそのプログラムを記録した記録媒体としても成立する。
【0039】
【発明の実施の形態】以下、本発明の実施の形態を、図面を参照しつつ詳細に説明する。
【0040】図1は、本実施形態に係るプリンタの主な構成を表すブロック図である。プリンタ1は、CPU10と、割り込みコントローラ(以下、「ITC」という。)11と、外部入力ポート12と、ベクタテーブル13と、割り込みハンドラ14と、GA(Gate Array)15と、I/F16と、DMA17と、RAM18とを含んで構成される。また、プリンタ1は、ジョブデータを送信するホスト装置2と接続されている。
【0041】なお、図示していないが、本実施形態に係るプリンタ1は、図6に示すプリンタの構成を基本的に有しており、キャリッジ(CR)機構、紙送り(PF)機構及び印刷ヘッド等から構成されるプリントエンジンを有している。
【0042】CPU10は、プリンタ1の全体の動作を制御するものである。ITC11は、CPU10に対する複数の割込み信号を受け付け、これらの割込み信号の優先順位を判定した後、CPUに連絡する機能を有する。外部入力ポート12は、CPU10に対する外部からの信号を入力するためのものである。
【0043】ここで、本実施形態では、CPU10に対する割り込み信号として8つの信号が用いられ、0から7までの番号がそれぞれに割り当てられている。そして、割り込み番号が高いほど、割り込みの優先度が高いものと判断されるように設定されている。図1では、割り込み番号4から割り込み番号7までを図示し、割り込み番号0から割込み番号3までを省略している。
【0044】なお、本実施形態では、以下のように割り込み番号が設定されているものとする。
【0045】割り込み番号7=ビジー信号の出力とリングバッファ処理割り込み番号6=印字ヘッドコントロール割り込み番号5=紙送り(PF)モータ、キャリッジ(CR)モータの駆動割り込み割り込み番号4〜0=その他の割り込み次に、ベクタテーブル13は、割り込み番号に対する割り込みハンドラの番地を表にしたものである。CPU10に対する割り込みがあると、CPU10は、当該テーブルを参照して割り込みハンドラの番地を特定する。そして、割り込みハンドラ14は、CPU10に対する割り込みが発生した場合に、当該割り込み番号によって決まる特定のルーチンをいい、当該割り込み処理を行なうためのプログラムを呼び出すためのものである。
【0046】図2は、本実施形態に係るベクタテーブルと割り込みハンドラとの関係を説明するための図である。ベクタテーブル13には、各割り込み番号に対するプログラムの宛先が規定され、割り込みハンドラ14には、ルーチンの内容が規定されている。例えば、ベクタテーブル13によると、割り込み番号7(リングバッファ処理)の宛先は「プログラムh」である。
【0047】割り込みハンドラ14によると、プログラムhには、「ビジー信号(ON)」、「PSR(プロセッサ・ステータス・レジスタ)書き換え」、「PSR多重許可」、「割り込みプログラムの呼出」、及び「ビジー信号(OFF)」等の処理内容が規定されている。また、図示してはいないが、「割り込みプログラムの呼出」の前後には、現在行なっている処理についてのレジスタへの保存や、レジスタ復帰について規定されている。
【0048】「ビジー信号(ON)」と「PSR書き換え」は、リングバッファ処理により生じる不都合を回避するために設定されるものであり、「PSR書き換え」とは、割り込み優先度を変更するためのものである。
【0049】CPU10に対して、割り込み番号7の割り込みがあった場合には、プログラムhに規定された内容が、CPU10によって実行される。なお、PSRは、CPUに対する割り込み処理の割り込み状況を書き込むためのレジスタであり、詳細については後述する。
【0050】図1に戻り、説明を続ける。I/F16は、ホスト装置2との間で、データの送受信を可能にするためのものであり、GA15は、I/F16との間でSTB信号やビジー信号をやりとりして、ジョブデータの受信をコントロールするものである。DMA17は、GA15からRAM18内の受信用バッファにジョブデータを転送するものであり、RAM18には、ジョブデータを一時的に格納する受信用バッファや、イメージバッファ等が設けられている。
【0051】図3は、本実施形態に係るCPU10とGA15との関係を説明するための図である。本発明では、GA15から自動的に出力されるビジー信号とは別に、CPU10からビジー信号を出力することとしている。よって、例えば、GA15がビジー信号を「OFF」にしている場合であっても、CPU10からのビジー信号が「ON」であれば、ホスト装置2に対してビジー信号「ON」が出力されるように構成されている。
【0052】(本実施形態に係るプリンタの動作の流れ)次に、図1から図5を用いて、本実施形態に係るプリンタの主な動作について説明する。
【0053】ホスト装置2は、I/F16を介してGA15に対し、ジョブデータの受信を通知するSTB信号を送信する。GA15は、I/F16からSTB信号を受信すると、ビジー信号を自動的に「ON」にして、受信したジョブデータを一時的にGA15内に格納する。また、GA15は、DMA17を起動する。
【0054】起動されたDMA17は、GA15からジョブデータを読み出して、RAM18に設けられた受信用バッファに書き込む。GA91は、DMA17によってジョブデータが読み出されると、次のジョブデータを受信するために、ビジー信号「OFF」を自動的にホスト装置2に対して送信する。ビジー信号が「OFF」になるので、ホスト装置2は、次のジョブデータの受信を指示するためのSTB信号をプリンタ1に送信する。
【0055】プリンタ1とホスト装置2との間で、上記の処理が繰り返されることにより、ジョブデータが順次受信用バッファに書込まれる。これらの書き込まれたジョブデータは、別途、CPU10によってラスタ形式のイメージデータに展開され、イメージバッファに格納され後、プリントエンジン(図示せず)に送信される。
【0056】プリントエンジンは、キャリッジ(CR)機構、紙送り(PF)機構、印刷ヘッド等を制御することによって、印刷用紙などの印刷記録媒体に、イメージデータを印刷する。ここで、キャリッジ(CR)モータ、及び紙送り(PF)モータを動作させる場合には、CPUに対して割込み番号5の割り込みが発生する。また、印字ヘッドをコントロールする場合には、CPUに対して割込み番号6の割り込みが発生することになる。CPU10は、これらの割り込み処理を実行することにより、印刷処理を遂行する。
【0057】また、DMA17が、ジョブデータを所定回数、受信用バッファに書込んだ場合には、DMA17によってCPU10に対するリングバッファ処理のための割り込みがかかる。CPU10は、上述したキャリッジ(CR)モータ等による割り込みや、印字ヘッドコントロールによる割り込み、そしてリングバッファ処理による割り込みが重なる場合には、これらの優先度に応じて処理を実行する。
【0058】(CPUに対する多重割り込みの関係)次に、CPU10に対して複数の割り込みが入った場合、具体的には、リングバッファ処理を行なっている最中に他の割り込み処理が発生した場合の、プリンタ1の動作について説明する。プリンタ1における印字処理の最中には、CPU10に対して、印字ヘッドコントロールによる割り込み、キャリッジ(CR)モータや紙送り(PF)モータの駆動割り込み、また、リングバッファ処理による割り込み処理等が、随時発生している。よって、これらの割り込みが重なる場合には、CPU10に対して多重割り込みが発生することになる。
【0059】DMA17は、最後のジョブデータを受信用バッファに書込むと、外部入力ポート12を介して、CPU10に対してリングバッファ処理の割り込み信号を送信する。リングバッファ処理の割込み番号は「7」であり、割り込み優先度が最も高いものである。ITC11は、外部入力ポート12を介して割込み番号7の割り込みを受信すると、当該割り込み番号をCPU10に通知する。CPU10は、受信した割り込み番号7に基づいてベクタテーブル13を参照し、割り込み番号7に該当する割り込みハンドラの内容を実行する。
【0060】図2を参照すると、割り込み番号7(リングバッファ処理)の処理は、割り込みハンドラ14のプログラムhに規定されている。CPU10は、まず、ビジー信号「ON」を出力する。これにより、GA15から自動的に出力されるビジー信号の状態に関係なく、ホスト装置2からのデータ送信が中止される。
【0061】次に、CPU10は、PSRの書換えを行なう。PSR(プロセッサ・ステータス・レジスタ)は、CPUに対する割り込み処理の割り込み状況を書き込むものである。図4は、本実施形態に係るPSRへの書き換えを説明するための図であり、多重割り込みによってPSRがCPU10によって書き換えられていく様子を表したものである。
【0062】PSRは、例えば、32bitの容量を持つCPU10のレジスタである。また、割り込み番号の記憶に4bitの領域が、多重許可の有無の記憶に1bitの領域が、それぞれ使用されるように構成されている。割り込み番号を記憶する領域には、本実施の形態では「0」から「7」までの番号が記憶される。また、多重許可の領域には、本実施の形態では、「0」あるいは「1」が記憶され、「0」は多重割り込みの不許可を意味し、「1」が多重割り込みの許可を意味するものとする。
【0063】まず、CPU10に対してリングバッファ処理の割り込みが入ると、リングバッファ処理の割り込み番号は「7」であるから、CPU10は、PSRの割り込み番号の領域に「7」を書き込む(1)。本発明では、リングバッファ処理による不都合を回避するため、ビジー信号「ON」を出力した後、割り込み優先度の書き換えを行なうこととしている。具体的には、例えば、割り込み番号「7」を、割り込み番号を「4」に書き換えることとしている(2)。そして、CPU10は、多重割り込みを認めるため、多重許可の領域に「1」を書き込む(3)。
【0064】次に、CPU10が当該リングバッファ処理を行っている最中に、キャリッジ(CR)モータ、及び紙送り(PF)モータの駆動割り込みが入ってきた場合について説明する。CPU10は、多重許可の領域に記憶された値は「1」であるから、多重割り込みを認める上で、モータの駆動処理の割り込み番号と、PSRの割り込み番号の領域に記憶された値とを参照する。すると、モータの駆動処理の割り込み番号は「5」であり、PSRの番号は「4」であるから、CPU10は、モータの駆動割り込みを認める。
【0065】よって、CPU10は、PSRの割り込み番号の領域に「5」を書き込む(4)。そして、この割り込みに対しても多重割り込みを認めるため、多重許可の領域に「1」を書き込む(5)。
【0066】ここで、CPU10が、リングバッファ処理の割り込み番号の書き換えを行っていない場合には、割り込み番号5の割り込みが入った場合に、PSRの割り込み番号は「7」のままであるので、割り込み番号5の割り込みは許可されない。よって、CPU10は、リングバッファ処理を終了するまで、モータの駆動を行うことができないので、モータの脱調を発生し、印字ずれを生じるおそれがある。
【0067】しかし、本実施形態に係るプリンタでは、CPU10が、リングバッファ処理の優先度を「7」から「4」に書き換えているため、モータの駆動を遅滞なく実行することができるため、モータの脱調や印字ずれといった状況を未然に回避することが可能となるのである。
【0068】更に、図4によれば、モータの駆動処理を行っている最中に、割り込み番号6の割り込みがCPU10に入っている。CPU10は、多重許可の領域に記憶された値と、PSRの割り込み番号の領域に記憶された値とを参照し、前者の値は「1」であり、後者の値は「5」であるから、割り込み番号6の割り込みを認める。CPU10は、PSRの割り込み番号の領域に「6」を書き込む(6)。そして、この割り込みに対しても多重割り込みを認めるため、多重許可の領域に「1」を書き込む(7)。割り込み番号6に該当する処理は、例えば、印字ヘッドの駆動がある。
【0069】なお、リングバッファ処理は、モータの駆動や印字ヘッドの駆動による割り込み処理が終了した後、CPU10によって再開される。しかし、ホスト装置2からのジョブデータの送信は、ビジー信号「ON」を出力することにより中止しているので、リングバッファ処理に時間を要しても、バッファオーバーライトによるプリンタの誤動作といった不都合は生じないのである。
【0070】図5は、本実施形態に係るCPUへの多重割り込みの様子を説明するための図である。図5の「INT」は、割り込み(Interrupt)を意味し、「INT7」は、割り込み番号7の割り込み処理を意味している。
【0071】図5によれば、まず、CPU10は所定の処理を行っており、その処理の最中に、INT7(リングバッファ処理)の割り込みが発生すると、CPU10は処理を中断して、INT7(リングバッファ処理)の処理に移行する。更に、CPU10がINT7(リングバッファ処理)の処理を行っている最中に、INT5(モータの駆動)の割り込みが発生すると、PSRの割り込み番号の値は7から4に書き換えられているので(図4参照)、CPU10はINT5(モータの駆動)の処理に移行する。そして、CPU10がINT5(モータの駆動)の処理を行っている最中に、INT6(印字ヘッドコントロール)の割り込みが発生すると、CPU10はINT6(印字ヘッドコントロール)の処理に移行する。
【0072】CPU10が、INT6(印字ヘッドコントロール)の処理を終了すると、その前に行っていたINT5(モータの駆動)の処理に戻る。更に、INT5(モータの駆動)の処理が終了すると、CPU10はINT7(リングバッファ処理)の処理に戻り、INT7(リングバッファ処理)の処理が終了すると、CPU10は割込みが入る前に行っていた処理に戻る。
【0073】なお、本実施形態では、割り込み番号を「0」から「7」と設定し、割り込み番号「7」の場合には割り込み番号を「4」に書き換えるようにPSRの書き換えを設定しているが、本発明はこれに限られない。すなわち、割り込み番号やPSRの書き換えは、任意にこれを設定することができるものとし、具体的には、遅滞なくビジー信号をONにすることができるとともに、割り込み処理全体が円滑に実行されるように、設定することが望ましい。
【0074】さらにまた、本実施形態では、GA15から受信用バッファへのジョブデータの書き込みは、DMA19が行うものとして説明したが、DMA19の代わりにCPU10がこれを行うこととしてもよい。
【0075】
【発明の効果】本発明によれば、CPUに対する割り込み処理の優先度を高く設定することによって、ビジー信号を遅滞なく出力することができるので、例えば、リングバッファ処理を行なうような場合にも、バッファオーバーライトを防止することができ、ひいてはプリンタの停止や暴走といった異常動作が発生することを未然に回避することが可能となる。また、ビジー信号の出力後は、割り込み優先度を低く変更することとしたので、本来割り込むことのできない他の割り込み処理を実行することができるようになり、多重割り込みにおいて、各割り込み処理を円滑に実行することが可能となる。
【図面の簡単な説明】
【図1】 本実施形態に係るプリンタの構成を表すブロック図である。
【図2】 本実施形態に係るベクタテーブルと割込みハンドラルーチンとの関係を説明するための図である。
【図3】 本実施形態に係るるCPUとGAとの関係を説明するための図である。
【図4】 本実施形態に係るPSRへの書き換えを説明するための図である。
【図5】 本実施形態に係るCPUへの多重割り込みの様子を説明するための図である。
【図6】 従来のプリンタのハード構成を表すブロック図である。
【図7】 本実施形態に係る受信用バッファを説明するための図である。
【符号の説明】
1…プリンタ
2…ホストPC
10…CPU
11…ITC
12…外部入力ポート
13…ベクタテーブル
14…割込ハンドラ
15…GA
16…I/F
17…DMA
18…RAM

【特許請求の範囲】
【請求項1】 多重割り込みを受け付け可能なCPUと、前記CPUに対して第1の割り込みと第2の割り込みとをかける割り込み手段と、プリントジョブデータの受信を制御するための第1の信号をホスト装置に対して出力するGAと、を有するプリンタであって、前記CPUは、前記割り込み手段による前記第1の割り込みを受け付けると、プリントジョブデータの受信を制御するための第2の信号を前記ホスト装置に対して出力し、前記第1の割り込みの優先度を、前記第2の割り込みの優先度よりも低い優先度に変更し、前記プリントジョブデータに基づく印刷処理を実行することを特徴とするプリンタ。
【請求項2】 前記第2の信号は、前記ホスト装置に対して前記プリントジョブデータの送信を中止させるための信号であることを特徴とする請求項1記載のプリンタ。
【請求項3】 前記プリンタは、前記GAが受信したプリントジョブデータを一時的に格納するための受信用バッファを更に有し、前記割り込み手段は、前記プリントジョブデータが前記受信用バッファの最後の位置に書き込まれた場合に、前記CPUに第1の割り込みをかけ、前記CPUは、前記割り込み手段による前記第1の割り込みを受け付けると、プリントジョブデータの受信を制御するための第2の信号を出力し、前記第1の割り込みの優先度を、前記第2の割り込みの優先度よりも低い優先度に変更し、前記受信用バッファの書き込み位置を示すポインタを前記受信用バッファの最初の位置に戻すことを特徴とする請求項1または2記載のプリンタ。
【請求項4】 前記割り込み手段による前記第2の割り込みは、キャリッジモータ又は/及び紙送りモータを駆動させるための割り込みであることを特徴とする請求項1から3いずれか記載のプリンタ。
【請求項5】 CPUに対して複数の割り込みをかける割り込み手段と、前記割り込み手段による多重割り込みを受け付け可能なCPUと、前記CPUが前記割り込み手段による第1の割り込みを受け付けて実行する処理を記憶するレジスタと、プリントジョブデータの受信を制御するための第1の信号をホスト装置に対して出力するGAと、を有するプリンタであって、前記レジスタには、プリントジョブデータの受信を制御するための第2の信号を前記ホスト装置に対して出力する処理と、前記第1の割り込みの優先度を、前記割り込み手段による前記第2の割り込みの優先度よりも低い優先度に変更する処理と、前記プリントジョブデータに基づく印刷処理を実行する処理とが記憶されていることを特徴とするプリンタ。
【請求項6】 前記第2の信号は、前記ホスト装置に対して前記プリントジョブデータの送信を中止させるための信号であることを特徴とする請求項5記載のプリンタ。
【請求項7】 前記プリンタは、前記GAが受信したプリントジョブデータを一時的に格納するための受信用バッファを更に有し、前記プリントジョブデータに基づく印刷処理を実行する処理は、前記受信用バッファの書き込み位置を示すポインタを前記受信用バッファの最初の位置に戻す処理であることを特徴とするプリンタ。
【請求項8】 前記割り込み手段による前記第2の割り込みは、キャリッジモータ又は/及び紙送りモータを駆動させるための処理であることを特徴とする請求項5から7いずれか記載のプリンタ。
【請求項9】 プリントジョブデータをプリンタに対して送信するホスト装置と、前記プリントジョブデータを受信するプリンタと、を有するプリントシステムであって、前記ホスト装置は、前記プリンタが送信するプリントジョブデータの受信を制御するための信号に従って、前記プリントジョブデータを前記プリンタに送信する送信手段を有し、前記プリンタは、多重割り込みを受け付け可能なCPUと、前記CPUに対して第1の割り込みと第2の割り込みとをかける割り込み手段と、プリントジョブデータの受信を制御するための第1の信号をホスト装置に対して出力するGAと、前記GAが受信したプリントジョブデータを一時的に格納するための受信用バッファと、を有するプリンタであって、前記割り込み手段は、前記プリントジョブデータが前記受信用バッファの最後の位置に書き込まれた場合に、前記CPUに第1の割り込みをかけ、前記CPUは、前記割り込み手段による前記第1の割り込みを受け付けると、プリントジョブデータの受信を制御するための第2の信号を前記ホスト装置に対して出力し、前記第1の割り込みの優先度を、前記第2の割り込みの優先度よりも低い優先度に変更し、前記受信用バッファの書き込み位置を示すポインタを前記受信用バッファの最初の位置に戻すことを特徴とするプリントシステム。
【請求項10】 多重割り込みを受け付け可能なCPUと、前記CPUに対して第1の割り込みと第2の割り込みとをかける割り込みステップと、プリントジョブデータの受信を制御するための第1の信号をホスト装置に対して出力するGAと、を有するプリンタの制御方法であって、前記CPUは、前記第1の割り込みを受け付けると、プリントジョブデータの受信を制御するための第2の信号を前記ホスト装置に対して出力し、前記第1の割り込みの優先度を、前記割り込み手段による前記第2の割り込みの優先度よりも低い優先度に変更し、前記プリントジョブデータに基づく印刷処理を実行するプリンタの制御方法。

【図1】
image rotate


【図2】
image rotate


【図3】
image rotate


【図4】
image rotate


【図5】
image rotate


【図6】
image rotate


【図7】
image rotate


【公開番号】特開2002−96537(P2002−96537A)
【公開日】平成14年4月2日(2002.4.2)
【国際特許分類】
【出願番号】特願2000−291106(P2000−291106)
【出願日】平成12年9月25日(2000.9.25)
【出願人】(000002369)セイコーエプソン株式会社 (51,324)
【Fターム(参考)】