(57)【特許請求の範囲】
【請求項１】
ホストから伝送されるデータ流に基づいて動作する周辺機器において、
異常を検出する第１のデータ処理ユニットと、
検出された異常に基づき、前記データ流の無効なデータを読み捨てする処理を行なう第２のデータ処理ユニットとを有し、
前記第１のデータ処理ユニットは、データを解析し有効無効を判定し、
前記第２のデータ処理ユニットは、前記データ流に含まれるデータブロックを構成するデータ列の一部である第１のデータの有効無効を判断するための判定情報を前記第１のデータ処理ユニットから取得する判定手段と、
前記第１のデータが無効のときに、前記データ流から当該第１のデータの後続の前記データブロックの先頭を検出する手段と、
前記データブロックの先頭を検出すると、それに続くデータを前記第１のデータ処理ユニットにより判断させる開始信号を出力する開始手段とを備えており、
前記検出する手段は、前記データブロックの先頭を示すヘッドデータを検出する第１の手段と、前記第１のデータ処理ユニットから前記第１のデータに続くデータのサイズ情報が得られたときは、そのサイズ情報に基づき前記データブロックの先頭を検出する第２の手段とを含み、
前記第２のデータ処理ユニットでは、前記サイズ情報が前記第１のデータ処理ユニットから得られれば、前記第２の手段が前記サイズ情報に基づき前記データブロックの先頭を検出し、得られない場合は、前記第１の手段が前記ヘッドデータを検出する、周辺機器。
【請求項２】
請求項１において、前記第１のデータ処理ユニットはＣＰＵおよび／またはＤＭＡＣである周辺機器。
【請求項３】
請求項１または２において、前記第２のデータ処理ユニットは、前記第１のデータが有効のときに、前記第１のデータ処理ユニットから得た前記サイズ情報に指定された後続のデータを出力する手段を備えている周辺機器。
【請求項４】
請求項１ないし３のいずれかにおいて、前記第２のデータ処理ユニットは、連続する複数の前記開始信号の間にインターバルを設けることが可能なインターバル発生手段を備えている周辺機器。
【発明の詳細な説明】
【０００１】
【発明の属する技術分野】
本発明は、ホストから伝送されるデータ流に基づいて動作する周辺機器およびその制御方法に関するものである。
【０００２】
【従来の技術】
パーソナルコンピュータをホストとして稼動する周辺機器の一つとしてプリンタが知られている。プリンタは、ホストから伝送される制御コマンドを解釈し、デコードされた結果に基づき動作する。たとえば、制御コマンドに続くパラメータにしたがって所定の動作を行ったり、制御コマンドに続いて送られてきた印刷データを印刷する。一方、ホストからプリンタへ伝送されたデータが間違っていたり、データが伝送されてくる間にノイズなどの影響でデータが化けてしまったり、プリンタの操作上、意味のないデータになってしまうと、そのようなデータに基づいて正常な動きが行えない。
【０００３】
したがって、送信されたデータの一部、たとえば、制御コマンドやパラメータに異常あるいは無効なデータがあると、後続の正常なデータと判断されるデータまで、無効と判断されたデータ以降のデータ列を無効なデータとして読み捨てあるいは破棄して、処理可能なデータから速やかに復帰させる制御が必要となる。
【０００４】
【発明が解決しようとする課題】
このため、ホストからプリンタへのデータ流の中に無効なデータが発見されると、次のデータの固まり（データブロック）の先頭を示すプリンタ制御コード（「ＥＳＣ」）が検出されるまで、ＣＰＵでソフトウェアにより、無効なデータを読み捨てる処理を行うことが要求される。しかしながら、近年の高解像度化およびフルカラー化が進んだ印刷環境においては、サイズの大きくなった印刷データを含む制御コードに続くデータ列の単位、すなわちデータブロックも大きく、無効なデータが発生したときに読み捨てるべき無効なデータも多い。このため、いったん無効なデータが見つかると、プリンタにおける印刷処理に実質的には役に立たない無効なデータを読み捨てる処理にＣＰＵのパワーと処理時間が費やされることになる。このため、プリンタの処理速度が向上しない要因となり、また、プリンタとホスト間の通信レートを向上してもＣＰＵのパワーが通信処理に割けないためにデータの転送速度が上がらず、印刷処理速度の向上に繋がらない要因ともなっている。
【０００５】
一方、無効なデータを読み捨てないと、それに続く正常なデータを読み取ることができないので、無効なデータの読み捨ては最優先で高速に処理する必要がある。したがって、ＣＰＵのパワーをデータの読み捨てに割かざるを得ない。
【０００６】
さらに、無効なデータを含むデータブロックが連続してホストから伝送されるような事態になると、ＣＰＵの処理能力を向上させたとしても、ＣＰＵの処理時間がデータの有効無効の判定と、それに続くデータの読み捨てに占有されてしまうので、通信環境をチェックして次のデータ流を受信したり、エラー処理を行う処理時間も確保できず、単にＣＰＵを高速化しても問題は解決されない。もちろん、処理速度の速い高価なＣＰＵを搭載することにより改善はされるであろうが、ＣＰＵの能力を無効なデータを読み捨てるために主に利用するのでは、経済的で有効な解決策であるとは言えない。
【０００７】
そこで、本発明においては、ＣＰＵの処理能力が無効なデータの読み捨てに消費されることがなく、その一方で、無効なデータの読み捨ても高速で行うことができる周辺機器を提供し、プリンタなどの周辺機器において、無効なデータがあっても、その実質的な処理能力を低下させることなく処理を進めることが可能な周辺機器を提供することを目的としている。さらに、ＣＰＵの実質的な処理能力を低下させずに、無効なデータの読み捨てをさらに高速で行うことができる周辺機器およびその制御方法を提供することも本発明の目的としている。また、無効なデータが連続するデータ流を受信した場合でも、それに対処することができる周辺機器およびその制御方法を提供することも本発明の目的としている。
【０００８】
【課題を解決するための手段】
このため、本発明の、ホストから伝送されるデータ流に基づいて動作する周辺機器においては、異常を検出する第１のデータ処理ユニットと、検出された異常に基づき、データ流の無効なデータを読み捨てする処理を行なう第２のデータ処理ユニットとを設ける。
【０００９】
本発明の周辺機器では、データ流のデータ異常、通信異常、オーバーランエラー、さらには紙詰まりなどの印刷機構のエラーを検出する汎用のＣＰＵなどの第１のデータ処理ユニットと異なる第２のデータ処理ユニットで無効なデータを読み捨てる。したがって、第１のデータ処理ユニットは読み捨てする処理に処理時間を取られることはなく、他の処理、たとえば、通信管理や印刷機構の設定などを行なうことが可能となり、異常が発生したときでも、第１のデータ処理ユニット、たとえば、ＣＰＵやＤＭＡＣの処理能力を十分に発揮させることができる。
【００１０】
一方、第２のデータ処理ユニットは、データの読み捨てに特化することができるので、ハードウェアで高速で読み捨てる処理を行うことができる。したがって、第２のデータ処理ユニットは、ＣＰＵとは別チップのＡＳＩＣなどとして製造し提供することが可能であり、データの読み捨て速度を向上することが可能である。
【００１１】
したがって、本発明の周辺機器においては、無効なデータを含むデータ流がホストから伝送された場合でも、その判断はＣＰＵなどの高速で汎用的な第１のデータ処理ユニットで高速で行い、その判断が終了した後は、第１のデータ処理ユニットを、その異常に係るデータ処理から開放し、他の処理、たとえば、ホストと周辺機器との間の通信処理や、印刷機構の処理を即座に開始するために開放できる。このため、無効なデータが送信されたときに、処理速度が大幅に低下して周辺装置の機能が阻害されたり、エラーが解消されたときの対応が遅くなってホスト側、すなわち、ユーザの操作環境が損なわれたりすることを防止できる。
【００１２】
また、第１のデータ処理ユニットで異常を判断し、第２のデータ処理ユニットで読み捨て処理を行うので、異常の内容に関わらず、第２のデータ処理ユニットでは専用のハードウェアで読み捨て処理を行うことができる。したがって、異常と判断するのは、データ流の中の無効なデータに限定されず、印刷途中でプリンタとホストとの間で通信異常が発生して、その後のデータが無効になった場合、プリンタで紙詰まりなどのエラーが発生して、その後のデータが無効となった場合などの異常が発生したときも、第２のデータ処理ユニットにより無効なデータを読み捨てることができる。
【００１３】
この読み捨て処理を行う第２のデータ処理ユニットは、ホストから送られたデータ流に含まれるデータブロックを構成するデータ列の一部である第１のデータの有効無効を判断するための判定情報を第１のデータ処理ユニットから取得する判定手段と、第１のデータが無効のときに、データ流から第１のデータの後続のデータブロックの先頭を検出する手段と、そのデータブロックの先頭を検出すると、それに続くデータを第１のデータ処理ユニットにより判断させる開始信号を出力する開始手段とを含む。
【００１４】
さらに、第２のデータ処理ユニットとして、無効と判断されたデータに続くデータのサイズに応じてデータブロックの先頭を検出する機能と、データブロックの先頭を示すヘッドデータを検出する機能とを設け、それぞれの機能でデータブロックの先頭を検出したときに開始信号を出力する。すなわち、第２のデータ処理ユニットの検出する手段としては、データブロックの先頭を示すヘッドデータを検出する第１の手段と、第１のデータ処理ユニットから得た第１のデータに続くデータのサイズ情報が得られたときは、そのサイズ情報に基づきデータブロックの先頭を検出する第２の手段とを備える。
【００１５】
この第１および第２のデータ処理ユニットを備えた周辺機器においては、第２のデータ処理ユニットにおいて読み捨て処理を行うときに、ホストから送られたデータ流に含まれるデータブロックを構成する一部のデータである第１のデータの有効無効を判断するための判定情報を取得する工程と、第１のデータが無効のときに、データ流から第１のデータの後続のデータブロックの先頭を検出する工程と、データブロックの先頭を検出すると、それに続くデータを第１のデータ処理ユニットにより判断させる開始信号を出力する判定開始工程とを行い、検出する工程では、第１のデータに続くデータのサイズ情報が第１のデータ処理ユニットから得られれば、そのサイズ情報に基づきデータブロックの先頭を検出し、得られない場合は、データブロックの先頭を示すヘッドデータを検出する。
【００１６】
この周辺機器を採用すると、無効と判断されたデータ（第１のデータ）に続くデータのサイズ情報が、第１のデータ処理ユニット、すなわち、ＣＰＵやＤＭＡＣなどの判定機能を備えたデータ処理ユニットから得られれば、第２の手段によりデータブロックを構成するデータ列のデータを全て検査しなくても１クロックで、あるいは少ないクロック数で次のデータブロックの先頭を検出できる。したがって、短時間で無効なデータに続くデータを読み捨てることができる。それと共に、サイズ情報が第１のデータ処理ユニットから得られなければ、第１の手段により、データブロックを構成するデータ列を検査しながらデータブロックの先頭を検出できる。
【００１７】
また、第２のデータ処理ユニットでは、第１のデータが無効なときの処理に準じて、第１のデータが有効のときに、第１のデータ処理ユニットから得たサイズ情報に指定された後続のデータを出力する手段を設けることも可能であり、サイズ情報によりデータブロックのサイズを判断してデータ流を処理する部分は同じデータパスを共用することも可能となる。したがって、ハードウェアをそれほど増加させずに、ホストから送信されたデータ流をメモリに対して転送する機能を持たせることも容易である。
【００１８】
さらに、第２のデータ処理ユニットは、汎用的な機能が要求される第１のデータ処理ユニットと異なりデータの読み捨てに特化した構成が採用できるので、高速処理が可能であり、さらに、サイズ情報に基づきデータの読み捨てを行う第２の機能を設けることにより、さらに読み捨て処理を高速で行える。したがって、データブロックに含まれるデータ列が短く、さらに、無効なデータが連続すると、判定情報を得るタイミングと、開始信号を出力するタイミングの間隔が短くなり、さらに、開始信号が頻繁に発生する可能性がある。したがって、第２のデータ処理ユニットの処理能力を向上したことにより、ＣＰＵなどの第１のデータ処理ユニットの負担を軽減することができるが、データによっては、結果として、第１のデータ処理ユニットがデータの有効無効の判定の処理に占有されてしまう可能性がある。
【００１９】
そこで、本発明の周辺機器においては、さらに、第２のデータ処理ユニットに、連続する複数の開始信号の間にインターバルを設けることが可能なインターバル発生手段を設けることが望ましい。また、周辺機器の制御方法においても、連続する複数の開始信号の間にインターバルを設ける工程を設けておくことが望ましい。連続して判定を開始する信号が出力されるときに、それらの間に適当なインターバルを設けることにより、第１のデータ処理ユニットがデータを判定する処理に時間が占有されるのを防止することが可能である。したがって、無効なデータの発生頻度が判断できる第２のデータ処理ユニットから第１のデータ処理ユニットにおける処理の管理、すなわちタスク管理が可能であり、通信管理やエラー管理などに第１のデータ処理ユニットの処理能力を適切に配分することが可能となる。
【００２０】
【発明の実施の形態】
以下に図面を参照して本発明をさらに詳しく説明する。図１に本発明に係る周辺機器であるプリンタの概略構成をブロック図により示してある。本例のプリンタ１は、ホスト２から伝送されたデータ流１０に基づいて動作する印刷ヘッドおよび紙送り機構を備えた印刷機構（プリンタエンジン）３と、データ流１０を受信し、データ流１０に含まれるコマンドをデコードすると共に、デコードした結果に基づきコマンドに続いて伝送されてくる印刷データを処理して印刷機構３を制御する情報処理装置（以降においては制御装置）４を有している。
【００２１】
制御装置４は、印刷機構３を含めたプリンタ全体の制御を行うと共に、データ流１０の処理を行うＣＰＵ１１と、ＣＰＵ１１における各種処理の作業領域となり、ＣＰＵ１１でデータ処理された画像データが格納されるＲＡＭ１２と、ＣＰＵ１１のプログラムおよび設定値などが記録されているＲＯＭ１３と、データ流１０をブロック単位で一時的に保持することが可能なインターフェイス１４と、インターフェイス１４を介して受信したデータ流１０の中から所定のデータ列をブロック単位で読み出すことができるデータ制御ユニット１５と、ＣＰＵ１１で処理された画像データなどに基づいて印刷機構３を制御するメカ制御回路１６と、ＲＡＭ１２に格納された画像データをメカ制御回路１６にＣＰＵ１１を介さずに転送することが可能なＤＭＡＣ（ダイレクトメモリアクセスコントローラ）１７とを有しており、これらのＣＰＵ１１、ＲＡＭ１２、ＲＯＭ１３、データ制御ユニット１５、メカ制御回路１６およびＤＭＡＣ１７がバス１８によって接続されている。
【００２２】
ＣＰＵ１１は、ＲＯＭ１３に記録されたプログラムを実行することにより各種の機能が実現されるようになっており、データ流１０に含まれる、あるデータの有効無効を判断することが可能な第１のデータ処理ユニットとしての機能を備えている。このため、本例のＣＰＵ１１には、プログラムを実行することにより、コマンドを解析すると共に、データの有効無効の判定を行うコマンド・データ解析部としての機能２１と、１つのコマンドのデータが全て正常（有効）であり、そのコマンドの受信が完了したときに、そのコマンドにしたがったデータ処理を行うコマンド・データ処理部としての機能２２と、メカ制御回路１６を介して印刷機構３を制御することになるプリント制御部としての機能２３とが実現される。コマンド・データ解析部２１は、受信したデータ流１０を構成するデータの解析を行い、解析の結果、データが正常でコマンド受信が完了した場合は、コマンド・データ処理部２２において、コマンド・データの処理を実行し、プリント制御部２３にてプリントエンジン３に対して印刷の制御を行う。コマンド・データ解析部２１においてデータ流１０のデータを解析した結果、データが異常、すなわち、コマンドあるいはデータとして無効なデータが検出され、以降のデータ列を読み捨てる必要があると判断された場合は、データ制御部１５に対し、読み捨ての設定を行う。
【００２３】
ＣＰＵ１１に対し第２のデータ処理ユニットとなる、本例のデータ制御部（データ制御ユニット）１５は、ハードウェア、すなわち、ＡＳＩＣとして、１つの集積回路（チップ）として提供されている。データ制御ユニット１５は、ＣＰＵ１１に対しデータの有効無効の判定を開始させる信号である割り込み信号φ２を出力して判定を開始させる開始手段として機能する割り込み発生部３３と、そのデータの有効無効の判定結果である判定情報φ１をバス１８を介して受信し、判定手段として機能するレジスタ３１と、ＣＰＵ１１のコマンド・データ解析部２１でデータが無効と判定されたことが判定情報φ１により判明すると、無効と判定された第１のデータの後続のデータブロックの先頭をデータ流１０の中から検出する検出部３２とを備えている。
【００２４】
したがって、本例のデータ処理ユニット１５は、バッファ１４ａとカウンタ１４ｂとを備えたインターフェイス１４からデータ流１０を適当なデータ単位で取得し、検出部３２により、データブロックの先頭となるヘッダーが検索されるまで読み捨てたり、設定されたサイズのデータをデータ流１０から読み捨てることができる。
【００２５】
さらに、データ制御ユニット１５は、検出部３２でデータブロックの先頭が検出されてから、割り込み発生部３３から割り込み信号φ２が出力されるタイミングを遅らせて連続する複数の割込み信号φ２の間にインターバルを設けることが可能なインターバル発生部３４を備えている。
【００２６】
図２に基づき、本例のデータ制御ユニット１５は検出部３２の機能を用いて無効なデータを読み捨てる原理について説明しておく。まず、図２（ａ）に示すように、データ流１０の途中のデータｂｂにデータ異常が発生すると、そのデータｂｂが含まれるデータブロックＢ１のデータは無効となる。したがって、プリンタ１としての処理を継続するためには有効なデータが必要となり、最も近い有効である可能性があるデータは、データｂｂの後続のデータブロックＢ２に含まれるデータである。このため、異常なデータｂｂに続くデータブロックＢ１のデータを読み捨てて、次のブロックＢ２のデータをリードする必要がある。そのため、図２（ａ）に示すケースでは、異常なデータｂｂに続くデータ列の中から、データブロックの先頭であることを示すヘッドデータ（ヘッダー）ＡＡをパターンマッチングにより検索する。そして、ヘッダーＡＡが検索されると、ヘッダーＡＡを含むヘッダーＡＡ以降のデータ列をバス１８に出力すると共にＣＰＵ１１に割込み信号φ２を出力して、ヘッダーＡＡとこれに続くデータ、たとえば、コマンドを解析し、正常であれば上述したようにコマンドを解釈した処理を行う。ＣＰＵ１１が読み込んだデータが異常であれば、再び、次のデータブロックのヘッダーＡＡを検索する処理が開始される。
【００２７】
一方、図２（ｂ）は、異常なデータｂｂに続く所定の長さのデータ列を読み捨てることにより、次のデータブロックＢ２のヘッダーＡＡにポインタを移し、それ以降のデータ列をバス１８に出力すると共に、ＣＰＵ１１に割込み信号φ２を出力してデータの解析を行う。したがって、異常なデータｂｂに続くデータを検索する必要がないので、さらに高速にデータを読み捨てることができ、次に有効である可能性の高い次のデータブロックＢ２のデータをバス１８に出力できる。異常なデータｂｂに続くデータ列、すなわち、データブロックＢ１の残りのデータ列の長さ（サイズ情報）は、データｂｂに先行するコマンドａａにブロック長の情報が含まれていればＣＰＵ１１で残りのデータ長を算出することができる。また、ＤＭＡＣ１７でデータ転送中に異常が発生した場合は、ＤＭＡ転送で予約されていたデータ長から転送済みのデータ長を引くことにより読み捨てるデータ長を算出することができる。
【００２８】
このような読み捨て処理をデータ制御ユニット１５で行うために、検出部３２は、データブロックの先頭を示すヘッドデータ（ヘッダーあるいはスタートコード）を検出するベクタ機能（第１の手段）３６と、ＣＰＵ１１あるいはＤＭＡＣ１７から得たサイズ情報φ３に基づきデータブロックの先頭を検出するサイズ機能（第２の手段）３７とを備えている。したがって、バス１８を経由してＣＰＵ１１あるいはＤＭＡＣ１７から判定情報φ１と共にサイズ情報φ３を取得することができれば、サイズ機能３７により高速で無効なデータを読み捨て、サイズ情報φ３が得られなければ、ベクタ機能３６により後続のデータから次のヘッダーＡＡを検索しながら無効なデータを読み捨てる。そして、次のデータブロックＢ２のヘッダーＡＡが検出されると、割込み発生部３３から割込み信号φ２がＣＰＵ１１に供給される。ヘッダーＡＡをベクタ機能３６で検出するものとして説明しているが、ベクタ機能３６で検出するデータをＣＰＵ１１から指示するようにすることも可能であり、ヘッダーＡＡに限らずフレキシブルなデータをベクタ機能３６で検出させることも可能である。
【００２９】
さらに、データ制御ユニット１５は、インターバル発生部３４を備えており、検出部３２でヘッダーＡＡが検出されると、その情報φ４が供給される。たとえば、図３に示すように、データ流１０の中にヘッダーＡＡに続いて異常なデータｂｂを１つ含むデータブロックＢ１からＢｎが続いた場合、データ制御ユニット１５における読み捨てと、ヘッダーＡＡを検出したことに伴う割込み信号φ２が頻発することになり、ＣＰＵ１１に対しほとんど連続して割込み信号φ２が供給され、ＣＰＵ１１は連続してデータの有効無効を判定する処理を行うことになる。したがって、ＣＰＵ１１は他の処理を行うことができず、データ制御ユニット１５を設置したメリットが得られない。
【００３０】
そこで、本例においては、このような極端な無効データがホストから伝送された場合にもＣＰＵ１１の処理能力を確保するために、インターバル発生部３４においてヘッダーＡＡが検出される頻度をモニターし、一定の頻度以上になると、割込み発生部３３に対して割込み信号と割込み信号の間にインターバルを設定し、ヘッダーＡＡが検出されてから割込み信号φ２が出力されるまでの時間、あるいは割込み信号と割込み信号の間に所定の時間を確保するようにしている。このインターバル発生部３４を設けることにより、無効なデータを含む短いデータ列のデータブロックが連続して送られているような非常に異常なケースであっても、本例のプリンタ１はＣＰＵ１１の通信制御やエラー制御を行う処理時間を確保することが可能となり、ホスト側に異常事態であることを連絡するなどの適切な処理を適当なタイミングで行うことができる。インターバルを設ける処理は、ＣＰＵ１１の処理速度がそれほど高くない場合に特に有効であり、データ異常が頻繁に発生しても、適当な長さをインターバルを設定することによりＣＰＵ１１でデータの有効無効を判定する以外の処理を行うことができる。
【００３１】
図４に、ＣＰＵ１１およびデータ制御ユニット１５を含む制御装置４における処理の概要をフローチャートで示してある。以下に示すデータ列が１つのブロックデータＢを構成し、これらのブロックデータＢがデータ流１０に含まれているケースを説明する。
<CH><CC><CN><size>xx xx xx xx xx<CS><Print Data>・・・（Ｂ）
このデータ列の<CH>は、コマンドヘッダ（ヘッドデータ）であり、たとえば、１６進表示の「１Ｂｈ」などのコードである。<CC>はコマンドコードであり、たとえば、１６進表示で「０１ｈ」〜「ＦＦｈ」までのコードである。また、<CN>はコマンド番号であり、最初のコマンドから１づつ加算されてコマンド抜けなどのチェックに使用することができる。<size>は、この後に続くパラメータ「xx xx・・・」のデータ長を示すデータである。<CS>はチェックサムであって、コマンドヘッドからパラメータまでのデータの合計の下位１バイトを加算する方法などによりデータ化けやデータ抜けのエラーを調べることが可能である。<Print Data>は、コマンド部分、たとえばパラメータで指定されたサイズ分の圧縮あるいは非圧縮された印刷データである。
【００３２】
まず、ステップ５１でデータ制御ユニット１５からＣＰＵ１１に割り込み信号φ２が出力されると、ステップ５２でデータ制御ユニット１５からバス１８に出力されているデータをＣＰＵ１１が読み、ステップ５３でＣＰＵ１１のコマンド・データ解析部２１が解析する。ステップ５４で、読み出したデータが正常であれば、ステップ５５でコマンド全体を読み出すまでステップ５２でデータが読み出される。ステップ５４において、コマンドヘッド＜ＣＨ＞、制御コード＜ＣＣ＞、コマンド番号＜ＣＮ＞およびパラメータが正常であり、さらに、チェックサム＜ＣＳ＞によるチェックも正常であると判断されると、ステップ５５でコマンド部分の受信が完了し、コマンド・データ処理部２２がステップ５６でコマンドをデコードし、ステップ５７でプリンタエンジンなどのメカニカルな制御を行う。たとえば、コマンドに続いて送られてきた印刷データがデータ処理され、プリンタエンジン３から出力される。これらの処理は、ステップ５８において印刷が終了するまで続けられる。
【００３３】
一方、ステップ５４でデータが無効と判断されると、ステップ５９で判定情報φ１として無効なデータであることがデータ制御ユニット１５に送られる。同時に、その無効なデータ以降のデータ列の長さを示すサイズ情報φ３が取得できれば、その情報φ３もデータ制御ユニット１５に出力される。これらの情報により、データ制御ユニット１５の読み捨て条件が設定される。
【００３４】
たとえば、コマンドコード＜ＣＣ＞で未サポートのコードが発生した場合（イリーガルコマンド）、コマンド番号＜ＣＮ＞で順番に値が加算されなかった場合（コマンド抜け）、チェックサム＜ＣＳ＞が一致しなかった場合（データ化け）、無効なパラメータなどのパラメータエラーがＣＰＵ１１により確認されると、そのコマンド違反に対し判定情報φ１が無効にセットされ、データ制御ユニット１５に出力される。読み捨て条件がセットされたデータ制御ユニット１５においては、ステップ６０で読み捨て処理が実行される。この間、ＣＰＵ１１は、ホストから伝送されたデータ流１０の処理から開放されるので、通信管理、エラー処理などの処理が、データ制御ユニット１５における読み捨て処理と並行に実行される。
【００３５】
図５に、プリンタ１のデータ制御ユニット１５に関連する制御をフローチャートで示してある。ステップ７１で、インターフェイス１４からデータを読み出すが、ステップ７２で読み捨てモードでないとき、すなわち、データが正常なときは、ステップ７８でバス１８を介してＲＡＭ１２やレジスタなどのメモリにデータを転送する。一方、無効と判断されたデータがあり、読み捨てモードにセットされているときには、ステップ７３でサイズ情報φ３があれば、ステップ７４でサイズ機能３７を用いて無効なデータを読み捨てる。一方、サイズ情報φ３がなければ、ステップ７５でベクタ機能３６を用いて無効なデータを読み捨てる。
【００３６】
そして、データ流１０に含まれる次のブロックデータの先頭が検出されると、ステップ７６でインターバル発生部３４により、データ異常が頻発しているなどの所定の条件に合致するときは、予め設定されたインターバルを確保してから、ステップ７７で割り込み信号φ２をＣＰＵ１１に出力する。
【００３７】
このように、本例のプリンタ１においては、データを読み捨てる機能を備えたＡＳＩＣであるデータ制御ユニット１５を採用し、ＣＰＵ１１ではデータの有効無効だけを判断し、データが無効と判断された場合に、そのデータに続くデータの読み捨てはデータ制御ユニット１５で行うようにしている。したがって、データを読み捨てる処理からＣＰＵ１１を開放することが可能となり、他の処理、たとえば、通信管理、エラー管理などの処理にＣＰＵ１１の能力を割くことができる。一方、ＡＳＩＣによりデータの読み捨てを行うことにより、ＡＳＩＣをデータの読み捨てに適した回路構成にすることが可能となり、データの読み捨て処理をＣＰＵ１１より簡易な機構で高速に行うことが可能となる。そして、データのプロトコルなどに依存する有効無効の判定はＣＰＵ１１で行うことにより、データの有効無効の判定は柔軟に対応することが可能である。したがって、本例の制御装置４の構成を採用することにより、データの有効無効の判定にはＣＰＵ１１の能力を活かし、その後のＣＰＵ１１の負荷を軽減すると共に、読み捨てを高速で行うことが可能となる。
【００３８】
さらに、データ制御ユニット１５に、データブロックの先頭を示すヘッダーをパターンマッチングにより検出するベクタ機能３６に加え、無効と判断されたデータに続くデータのサイズに応じてデータブロックの先頭を検出するサイズ機能３７を設けることにより、さらに高速に無効なデータを読み捨てることができる。このため、無効なデータがあっても、正常なデータへのアクセスを高速に行い、プリンタ１の処理速度を高速に維持できる。一方、異常なデータが連続したり、データの読み捨て処理時間が短すぎると、データの有効無効の判断のためにＣＰＵ１１の処理時間が占有され、ＣＰＵ１１の負荷を低減することができないが、本例では、インターバルを適宜設けることにより、そのような異常なケースであってもＣＰＵ１１が対応できるようにしている。ＣＰＵ１１は、通信レートを最大限に確保するために通信系の割込み処理を最優先で行うように設定されるが、本例においては、割込み信号が頻発するようなケースでは、適当なインターバルを強制的に設定することにより、ＣＰＵ１１のエラー処理などに対する対処能力を確保している。
【００３９】
したがって、読み捨て処理にかかるＣＰＵ１１の負担を省いてメカ制御やエラー制御などの処理にＣＰＵ１１のパワーを利用できるので、低コストなＣＰＵであっても異常事態に対する処理能力の高いプリンタを提供することが可能となる。
【００４０】
なお、上記では、ＣＰＵ１１で有効無効の判定を行う例を示しているが、ＤＭＡ転送している最中にプリンタエラーが起きた場合にも本発明を提供することが可能である。さらに、上記では、ホスト２からプリンタ１に送信されてきたデータ流のなかに無効と判断されたデータがある場合を例に説明したが、本発明は、第１のデータ処理ユニットであるＣＰＵ１１でオーバーランエラー、印刷機構３における機械的なエラー、ホスト２とプリンタ１との通信回線上のエラーなど印刷動作の妨げとなる異常を検出し、その検出された異常に基づき、データ流の中から無効となるデータ、たとえば、異常が発生してから正常なデータが送信されるまでホストから送られる無効なデータや、異常が検出されたときにすでにプリンタ１で取得しており出力することができない無効なデータなどを読み捨てる処理にデータ制御ユニット１５を適用することも可能である。このため、ホスト２とプリンタ１との間の通信異常や印刷機構のエラーなど、読み捨てデータが発生するすべての処理に本発明を適用することが可能であり、異常後の処理を迅速に行うことができる。
【００４１】
さらに、上記では、データ処理ユニット１５が一つのＡＩＳＣとして提供されている例を示しているが、インターフェイス１４とデータ処理ユニット１５を一つのＡＳＩＣとして提供するなど、一つのＡＳＩＣとして提供される範囲は上記に限定されるものではない。
【００４２】
また、上記では、プリンタを例に説明したが、インクジェットプリンタやレーザプリンタなどの様々なタイプのプリンタに適用可能である。さらに、ディスプレイなどの画像データを表示するデバイス、ハードディスクドライブなどの情報を記録するデバイスなどのホストから伝送されるデータ流により動作する周辺機器にも本発明を適用できる。
【００４３】
【発明の効果】
以上に説明したように、本発明においては、ＣＰＵとは別に無効なデータを読み捨てる機能を備えたデータ処理ユニットを提供することにより、ＣＰＵの処理能力を低下させずに、無効なデータを高速に読み捨てて、周辺機器におけるデータ処理速度を向上するようにしている。したがって、異常なデータが送信されている環境などでも正常なデータを早く読み込んで処理速度を確保することが可能であり、また、ＣＰＵの処理能力を確保できるので、異常な事態に対し、より的確に対処することが可能となり、エラー処理能力の高い周辺機器を提供することができる。
【００４４】
さらに、本発明においては、データ処理ユニットに、サイズ情報に基づきデータブロックの先頭を検出できる機能を採用することにより、無効なデータ列の読み捨てをさらに高速に行うことを可能としている。また、異常なデータが頻発するような状況であっても、インターバルを設定してＣＰＵの処理能力を確保するようにしている。したがって、異常なデータに対する対処能力のさらに高い周辺機器を提供することができる。
【図面の簡単な説明】
【図１】本発明の制御装置が組み込まれたプリンタの概略構成を示す図である。
【図２】本例の制御装置に組み込まれた機能を説明するための図であり、図２（ａ）はベクタ機能を説明するための図、図２（ｂ）はサイズ機能を説明するための図である。
【図３】本例の制御装置に組み込まれたインターバル発生部の機能を説明するための図である。
【図４】本例の制御装置における処理を示すフローチャートである。
【図５】本例のデータ制御ユニットにおける処理を示すフローチャートである。
【符号の説明】
１    プリンタ
２    ホスト
３    印刷機構
４    制御装置（情報処理装置）
１０  データ流
１１  ＣＰＵ
１２  ＲＡＭ
１４  インターフェイス
１５  データ制御ユニット
１７  ＤＭＡＣ
３１  レジスタ
３２  検出部
３３  割り込み発生部
３４  インターバル発生部
３６  ベクタ機能
３７  サイズ機能
φ１  判定情報
φ２  割り込み信号（開始信号）
φ３  サイズ情報
【図１】
0004625598.tif 000002
【図２】
0004625598.tif 000003
【図３】
0004625598.tif 000004
【図４】
0004625598.tif 000005
【図５】
0004625598.tif 000006