説明

印刷装置、印刷装置の制御方法および制御プログラム

【課題】限られたメモリリソースの有効利用を図りつつ、確実かつ迅速にコマンド解析処理を行う。
【解決手段】ホストコンピュータ11より受信した印刷制御コマンドをワークメモリ36上に展開して、解析し、印刷を行うに際し、受信した印刷制御コマンドの種類を判別し、予め記憶した印刷制御コマンドの種類と、メモリ上に確保すべきコマンド解析処理用メモリ領域の容量との対応関係に基づいて、印刷制御コマンドの種類に対応した所定の容量のコマンド解析処理用領域36Aをワークメモリ36上に確保する。

【発明の詳細な説明】
【技術分野】
【0001】
本発明は、印刷装置、印刷装置の制御方法および制御プログラムに係り、特に印刷制御コマンド(プリンタコントロール言語)を解析して動作する印刷装置、印刷装置の制御方法および制御プログラムに関する。
【背景技術】
【0002】
従来、ホストコンピュータにプリンタを直接あるいは通信ネットワークを介して接続する印刷システムが知られている。
ところで、この様な印刷システムを構成する場合に、プリンタに接続されるホストコンピュータには様々な仕様のものが存在し、その印刷情報を処理する印刷制御コマンド、ひいては、制御コマンド体系が異なる場合がある。
【0003】
このような状況に対応するため、従来のプリンタにおいては、複数の制御コマンド体系に容易に対応するため、制御コマンド体系毎に印刷制御コマンドを解析するエミュレーション機能を切り替える構成を採っていた(例えば、特許文献1参照)。
このようなプリンタにおいて、印刷制御コマンドを解析するためには、パラメータあるいは実データを一括してコマンド解析用のワーキングメモリ内に確保しておいて、逐次解析を進めるのが効率的である。
【特許文献1】特開2000−29649号公報
【発明の開示】
【発明が解決しようとする課題】
【0004】
ところで、印刷制御コマンドの種類には様々なものが存在し、印刷制御コマンドの種類によって含まれるパラメータや実データの容量が大きく異なっていた。
したがって、コマンド解析用のワーキングメモリを固定容量(例えば、64バイト)とした場合には、容量を超える実データが制御コマンドに含まれる場合には、ワーキングメモリの確保回数が増加し、メモリ確保処理の比率が高くなってシステム全体の動作が遅くなってしまうという問題点があった。
また、コマンド解析用のワーキングメモリを、想定される最大容量とした場合には、コマンド解析以外の処理に割り当てられるメモリ領域により確保可能なメモリ容量が、コマンド解析用のワーキングメモリの容量未満となってしまった場合には、コマンド解析処理自体を行うことができない状況となり、システム全体の動作遅延を招くという問題点があった。
そこで本発明の目的は、限られたメモリリソースの有効利用を図りつつ、確実かつ迅速にコマンド解析処理を行うことが可能な印刷装置、印刷装置の制御方法および制御プログラムを提供することにある。
【課題を解決するための手段】
【0005】
上記課題を解決するため、本発明の第1態様は、ホスト装置より受信した印刷制御コマンドをメモリ上に展開して、解析し、印刷を行う印刷装置であって、前記受信した印刷制御コマンドの種類を判別するコマンド種類判別部と、前記印刷制御コマンドの種類と、前記メモリ上に確保すべきコマンド解析処理用メモリ領域の容量とを対応づけて記憶する確保容量記憶部と、前記確保容量記憶部を参照し、前記コマンド種類判別部により判別された印刷制御コマンドの種類に対応した所定の容量のコマンド解析処理用メモリ領域を前記メモリ上に確保する領域確保部と、を備えたことを特徴としている。
上記構成によれば、コマンド種類判別部は、受信した印刷制御コマンドの種類を判別する。
確保容量記憶部は、前記印刷制御コマンドの種類と、前記メモリ上に確保すべきコマンド解析処理用メモリ領域の容量とを対応づけて記憶する。
これらにより領域確保部は、確保容量記憶部を参照し、コマンド種類判別部により判別された印刷制御コマンドの種類に対応した所定の容量のコマンド解析処理用メモリ領域をメモリ上に確保する。
したがって、印刷制御コマンドの種類に応じてより好適な容量でコマンド解析用メモリ領域をメモリ上に確保できる。
【0006】
本発明の第2態様は、第1の態様において、前記印刷制御コマンドの種類におけるコマンド解析処理用メモリ領域の確保履歴に基づいて前記確保容量記憶部に記憶した当該印刷制御コマンドに対応する前記容量を更新することを特徴としている。
上記構成によれば、確保履歴に基づいて確保容量記憶部に記憶した当該印刷制御コマンドに対応する容量を更新するので、印刷制御コマンドの種類に応じてメモリ上に確保されるコマンド解析用メモリ領域の容量は、印刷処理を行うだけで徐々に最適化される。
【0007】
本発明の第3態様は、第1態様または第2態様において、前記ホスト装置から受信したデータを一時的格納するバッファ部を備え、前記コマンド種類判別部は、前記バッファ部から前記印刷制御コマンドのヘッダ部を読み出し、前記ヘッダ部に含まれる印刷制御コマンドの種類に関連する情報に基づいて前記印刷制御コマンドの種類を判別することを特徴としている。
上記構成によれば、印刷制御コマンドをメモリ上に展開するに先立って、ヘッダ部を読み出すだけであるので、迅速、確実に必要なコマンド解析用メモリ領域の容量を把握することができる。
【0008】
本発明の第4態様は、ホスト装置より受信した印刷制御コマンドをメモリ上に展開して、解析し、印刷を行う印刷装置を制御するための印刷装置の制御方法であって、前記印刷装置は、前記印刷制御コマンドの種類と、前記メモリ上に確保すべきコマンド解析処理用メモリ領域の容量とを対応づけて記憶する確保容量記憶部を備え、前記受信した印刷制御コマンドの種類を判別するコマンド種類判別過程と、前記確保容量記憶部を参照し、前記コマンド種類判別過程において判別された印刷制御コマンドの種類に対応した所定の容量のコマンド解析処理用メモリ領域を前記メモリ上に確保する領域確保過程と、を備えたことを特徴としている。
上記構成によれば、領域確保過程において、確保容量記憶部を参照し、コマンド種類判別過程において判別された印刷制御コマンドの種類に対応した所定の容量のコマンド解析処理用メモリ領域をメモリ上に確保するので、印刷制御コマンドの種類に応じてより好適な容量でコマンド解析用メモリ領域をメモリ上に確保できる。
【0009】
本発明の第5態様は、ホスト装置より受信した印刷制御コマンドをメモリ上に展開して、解析し、印刷を行うとともに、前記印刷制御コマンドの種類と、前記メモリ上に確保すべきコマンド解析処理用メモリ領域の容量とを対応づけて記憶する確保容量記憶部を備えた印刷装置をコンピュータにより制御するための制御プログラムであって、前記受信した印刷制御コマンドの種類を判別させる処理と、前記確保容量記憶部を参照させ、前記判別された印刷制御コマンドの種類に対応した所定の容量のコマンド解析処理用メモリ領域を前記メモリ上に確保させる処理と、を前記コンピュータに実現させることを特徴としている。
上記構成によれば、確保容量記憶部を参照するとともに、判別された印刷制御コマンドの種類に対応した所定の容量のコマンド解析処理用メモリ領域をメモリ上に確保するので、印刷制御コマンドの種類に応じてより好適な容量でコマンド解析用メモリ領域を確保できる。
【発明の効果】
【0010】
本発明によれば、印刷制御コマンド解析に際し、印刷制御コマンドの種類に応じてより好適な容量でコマンド解析用メモリ領域を確保するので、メモリ確保処理回数を低減するとともに、迅速にコマンド解析を行うことができる。
【発明を実施するための最良の形態】
【0011】
次に本発明の好適な実施の形態について図面を参照して説明する。
図1は、実施形態の印刷システムの概要構成ブロック図である。
印刷システム10は、印刷制御コマンドを含む各種印刷データを出力するホストコンピュータ11(ホスト装置)と、ホストコンピュータ11に接続ケーブル12を介して接続され、印刷制御コマンドを解釈して印刷を行うプリンタ13(印刷装置)と、を備えている。
【0012】
この場合において、接続ケーブルとしては、USB、RS−232Cなどのシリアル通信ケーブルや、セントロニクスインタフェースなどのパラレル通信ケーブルが挙げられる。
【0013】
図2は、プリンタの概要構成ブロック図である。
プリンタ13は、プリンタ13全体を制御するMPU21と、ファームウェアを含む制御プログラム等の各種データを記憶するROM22と、各種データを一時的に記憶するワークエリアとして機能するRAM23と、実際に印刷を行うプリントエンジン24と、LED表示部25を有し、各種情報の表示およびユーザが各種操作を行うための表示操作部26と、警告音等を生成し出力するブザー部27と、外部とのデータの送受信を行うインタフェース部28と、MPU21、ROM22、RAM23、プリントエンジン24、表示操作部26、ブザー部27の相互間を接続するバス29と、を備えている。
【0014】
図3は、プリンタの主要部の機能構成ブロック図である。
プリンタ13は、ホストコンピュータ11とのデータの送受信を行うインタフェース機能部31と、インタフェース機能部31を介して受信したホストコンピュータ11からの印刷制御コマンドを言語データベース(DB)32およびメモリ確保情報データベース(DB)33を参照して、後述するワークメモリ36上にコマンド解析処理用領域36Aを確保して印刷制御コマンドを解析するコマンド解析機能部34と、コマンド解析機能部34の制御下でプリントエンジン24、LED表示部25あるいはブザー部27の駆動制御を行う駆動制御機能部35と、一時的に処理対象の各種データを記憶するワークメモリ36と、を備えている。
【0015】
インタフェース機能部31は、例えば、USBインタフェース機能、RS−232Cインタフェース機能、セントロニクスインタフェース機能を実現するものであるとともに、ホストコンピュータ11からデータを受信して一時的に格納するバッファ部31Aを備えている。
言語データベース(DB)32は、予め設定された制御コマンド体系を構成する印刷制御コマンドと、当該印刷制御コマンドを実際に処理させる制御コマンドとを対応付けたデータ(コマンドライブラリ群)を格納するものである。印刷制御コマンドとしては、紙送り動作などのプリンタ13自体を制御するコントロールコマンドや、ビットマップデータに基づいて画像を展開する描画コマンドや、アウトラインフォントを表示するアウトラインフォントコマンドなどがある。
【0016】
メモリ確保情報データベース(DB)33は、印刷制御コマンドの解析処理において、受信した解析対象の印刷制御コマンドを処理する際に、ワークメモリ36として機能するRAM23に確保するメモリ領域に関する情報を印刷制御コマンドの種類(あるいは印刷制御コマンド)に対応づけたデータを格納するものである。確保するメモリ領域に関する情報としては、ある印刷制御コマンドを受信した場合に、当該印刷制御コマンドを構成するパラメータあるいは実データ(ビットマップデータなど)をワークメモリ36上に展開する際に必要となるメモリ領域の容量を印刷制御コマンドが属する印刷制御コマンドの種類あるいは印刷制御コマンドに対応づけて記憶している。
【0017】
また、印刷制御コマンドの種類あるいは印刷制御コマンドに対応づけて過去の複数回(例えば、過去10回)において、実際に使用されたメモリ領域の容量の履歴を履歴データとして記憶している。この場合に、予め確保したメモリ領域の容量が不足していた場合には、本来確保すべきであった容量を履歴データとして更新しつつ記憶する。この履歴データは、次回に同一の種類に属する印刷制御コマンドあるいは同一の印刷制御コマンドを受信した場合に確保すべきメモリ領域の容量を算出し、更新するために用いられる。具体的な算出方法としては、単純平均値や、新しいものほど重み付けを大きくした平均値、最大値などが用いられる。
【0018】
コマンド解析機能部34は、インタフェース機能部31のバッファ部31Aから印刷制御コマンドのヘッダ部を抽出し、当該印刷制御コマンドの種類を判別するコマンド種類判別部34Aと、コマンド種類判別部34Aの判別結果による印刷制御コマンドの種類に基づいて、メモリ確保情報DBを参照してワークメモリ36の記憶領域上にコマンド解析処理用領域36Aを確保するメモリ領域確保部34Bと、を備えている。上述したように、印刷制御コマンドとしては、コントロールコマンド、描画コマンド、アウトラインフォントコマンドなどがあるが、印刷制御コマンドの種類によってコマンド解析のためにデータを格納するために必要なメモリ容量は大きく異なる(数kバイト〜数Mバイト)。特に描画コマンドデータの場合、実データは他の印刷制御コマンドと比較して桁違いに大きなメモリ容量を確保することが必要となる。
このため、コマンド解析機能部34のメモリ領域確保部34Bは、メモリ確保情報DB33を参照し、印刷制御コマンドの種類に応じた容量のコマンド解析用メモリ領域をワークメモリ36上に確保することとなる。
【0019】
ワークメモリ36は、実質的にはRAM23として構築されており、その記憶領域には、印刷制御コマンドをコマンド解析機能部34が解析を行うために展開するコマンド解析処理用領域36Aと、コマンド解析処理の結果、オブジェクトを作成することが必要となった場合に、オブジェクトのデータを展開するためのオブジェクト作成領域36Bと、コマンド解析結果及び作成したオブジェクトに基づいて1頁分の印刷データを作成するためのページ作成領域36Cと、が動的に確保される。なお、本実施形態では、印刷データを1頁単位で扱っているが、これは、制御コマンド体系の違いを吸収してプリントエンジン24が扱えるようにするためと、実際のプリンタの装置構成の影響を受けないためである。したがって、プリンタ13を容易に複数の制御コマンドに対応させることができる。また、上述したプリントエンジン24は、ページプリンタとして構成されている必要はなく、生成された1ページ単位の印刷データの一部(例えば、行単位、バンド単位、ブロック単位)を読み出して転送することにより、ドットインパクトプリンタ、インクジェットプリンタなどのように走査型の記録ヘッドを有するプリンタとして構成されていても構わない。
【0020】
次に実施形態の動作について説明する。
図4は、プリンタの処理フローチャートである。
以下の動作は、プリンタ13のファームウェアをMPU21が実行することにより実現されている。
まず、プリンタ13のインタフェース部28は、インタフェース機能部31として機能し、ホストコンピュータ11より接続ケーブル12を介して受信した印刷制御コマンド(印刷制御コマンド群)をバッファ部31Aに格納する(ステップS11)。
これによりMPU21は、バッファ部31Aから未処理の印刷制御コマンドのうち、先頭の印刷制御コマンドのヘッダ部を図示しないメモリに取り込むとともに、コマンド解析機能部34のコマンド種類判別部34Aとして機能し、ROM22に予め格納されている言語データベース32を参照して印刷制御コマンドの種類を判別する(ステップS12)。
【0021】
続いてMPU21は、コマンド解析機能部34のメモリ領域確保部34Bとして機能し、メモリ確保情報データベース33を参照して、ステップS12で判別した印刷制御コマンドの種類に対応するワークメモリ36上に確保すべきコマンド解析処理用領域36Aの容量を読み出して設定し、メモリ領域確保処理を行う(ステップS13)。
【0022】
この場合において、メモリ確保情報データベース33に格納されているワークメモリ36上に確保すべきコマンド解析処理用領域36Aの容量は、印刷処理を繰り返すことにより、当該プリンタ13のユーザの使用態様に応じて、解析対象の印刷制御コマンドを全て展開可能な容量が設定されるようになるが、今まで使用していなかった新たな図形を描画させるなどのように、例外的にデータ量が多くなってしまった場合には、不足することとなる。この場合には、一旦、メモリ確保情報データベース33を参照して得られた容量で、ワークメモリ36上にコマンド解析処理用領域36Aを確保し、その後、追加的にメモリ領域を確保する。なお、逆にデータ量が少なかった場合には、今回はそのまま処理を行い、次回以降、ワークメモリ36上に確保すべきコマンド解析処理用領域36Aの容量を小さくする。
【0023】
次にMPU21は、コマンド解析処理用領域36Aに格納され、展開された印刷制御コマンドの解析を言語データベース32を参照して行う(ステップS14)。
この場合において、言語データベース32が複数の制御コマンド体系の印刷制御コマンドの情報を含んでいる場合には、MPU21は、全ての制御コマンド体系について解析を行う。
【0024】
続いてMPU21は、言語データベース32の内容に基づいて当該印刷制御コマンドに対応する印刷データを生成し、予め確保したページ作成領域36Cに印刷データを順次格納する印刷データ生成処理を行う(ステップS15)。
この場合において、MPU21は、印刷データを生成するにあたって、オブジェクトの作成が必要な場合には、ワークメモリ36上にオブジェクトを作成するためのオブジェクト作成領域36Bを確保し、当該オブジェクト作成領域36Bに作成したオブジェクトを格納することとなる。
続いて、MPU21は、1ページ分の印刷データが生成済みか否かを判別する(ステップS16)。
ステップS16の判別において、未だ1ページ分の印刷データが生成されていない場合には(ステップS16;No)、再び処理をステップS11に移行し、以下、当該ページの印刷データの生成が完了するまで、同様の処理を繰り返す。
ステップS16の判別において、1ページ分の印刷データが生成済みの場合には(ステップS16;Yes)、MPU21は、生成した印刷データをプリントエンジン24に転送し、印刷を指示する。
【0025】
これにより、プリントエンジン24は、転送された印刷データに基づいて1ページ分の印刷処理を行う(ステップS18)。
続いてMPU21は、全ページの印刷データが処理済みであるか否かを判別する(ステップS19)。
ステップS19の判別において、未だ全ページの印刷データが処理されていない場合には(ステップS19;No)、再び処理をステップS11に移行し、以下、全ページの印刷データが処理済みとなるまで、同様の処理を繰り返す。
【0026】
以上の説明のように、本実施形態によれば、印刷制御コマンドの解析に際し、ワークメモリ36として機能するRAM23上に、印刷制御コマンドの種類に応じたより最適な容量を有するコマンド解析処理用領域36Aを確保することができるので、コマンド解析処理におけるメモリ領域の確保処理の回数を減少させて、処理効率(例えば、処理速度)の向上を図ることができる。さらに、不必要にコマンド解析処理用領域36Aの容量を大きく設定しておく必要がないため、共用のメモリ領域として用いているRAM23の記憶容量が、使われないにもかかわらず確保されてしまうことに起因して他の処理が滞ることもないので、限られたシステムリソースを有効に利用して、システム全体の処理能力の向上が図れる。
また、本実施形態によれば、コマンド体系が異なることにより、実データが圧縮されていたり、実データが圧縮されていなかったりする等に起因する動作速度の差を、コマンド解析機能部で展開することにより吸収することができるため、コマンド体系の異なる印刷制御コマンドをエミュレーションすることに起因する動作速度の違いを少なくすることが可能となる。
【0027】
以上の説明においては、実際に使用されたメモリ領域の容量の履歴を履歴データとして記憶し、次回に同一の種類に属する印刷制御コマンドあるいは同一の印刷制御コマンドを受信した場合に確保すべきメモリ領域の容量を算出し、更新するために用いていたが、履歴データを用いることなく、本来印刷制御コマンドが実データの多い容量の大きなコマンドである場合には、確保すべきメモリ領域の容量を一時的に大きくするように構成することも可能である。
【0028】
以上の説明においては、制御プログラムが予めファームウェアとしてROM22に記憶されていたが、このROM22に代えて、あるいは、加えて、書き換え可能なメモリ(例えば、EEPROM、フラッシュROMなど)にホストコンピュータ11側から制御プログラムをダウンロードするように構成することも可能である。
また、以上の説明においては、プリンタの種類については言及していなかったが、インクジェットプリンタ、ドットインパクトプリンタ、サーマルプリンタ、レーザプリンタなどの様々なプリンタに対して適用が可能である。
【図面の簡単な説明】
【0029】
【図1】実施形態の印刷システムの概要構成ブロック図である。
【図2】プリンタの概要構成ブロック図である。
【図3】プリンタの主要部の機能構成ブロック図である。
【図4】プリンタの処理フローチャートである。
【符号の説明】
【0030】
10…印刷システム、11…ホストコンピュータ、13…プリンタ、21…MPU(コマンド種類判別部、領域確保部)、22…ROM、23…RAM(メモリ)、24…プリントエンジン、31…インタフェース機能部、31A…バッファ部、32…言語データベース、33…メモリ確保情報データベース(確保容量記憶部)、34…コマンド解析機能部、34A…コマンド種類判別部、34B…メモリ領域確保部、35…駆動制御機能部、36…ワークメモリ、36A…コマンド解析処理用領域。

【特許請求の範囲】
【請求項1】
ホスト装置より受信した印刷制御コマンドをメモリ上に展開して、解析し、印刷を行う印刷装置であって、
前記受信した印刷制御コマンドの種類を判別するコマンド種類判別部と、
前記印刷制御コマンドの種類と、前記メモリ上に確保すべきコマンド解析処理用メモリ領域の容量とを対応づけて記憶する確保容量記憶部と、
前記確保容量記憶部を参照し、前記コマンド種類判別部により判別された印刷制御コマンドの種類に対応した所定の容量のコマンド解析処理用メモリ領域を前記メモリ上に確保する領域確保部と、
を備えたことを特徴とする印刷装置。
【請求項2】
請求項1記載の印刷装置において、
前記印刷制御コマンドの種類におけるコマンド解析処理用メモリ領域の確保履歴に基づいて前記確保容量記憶部に記憶した当該印刷制御コマンドに対応する前記容量を更新することを特徴とする印刷装置。
【請求項3】
請求項1または請求項2記載の印刷装置において、
前記ホスト装置から受信したデータを一時的格納するバッファ部を備え、
前記コマンド種類判別部は、前記バッファ部から前記印刷制御コマンドのヘッダ部を読み出し、前記ヘッダ部に含まれる印刷制御コマンドの種類に関連する情報に基づいて前記印刷制御コマンドの種類を判別することを特徴とする印刷装置。
【請求項4】
ホスト装置より受信した印刷制御コマンドをメモリ上に展開して、解析し、印刷を行う印刷装置を制御するための印刷装置の制御方法であって、
前記印刷装置は、前記印刷制御コマンドの種類と、前記メモリ上に確保すべきコマンド解析処理用メモリ領域の容量とを対応づけて記憶する確保容量記憶部を備え、
前記受信した印刷制御コマンドの種類を判別するコマンド種類判別過程と、
前記確保容量記憶部を参照し、前記コマンド種類判別過程において判別された印刷制御コマンドの種類に対応した所定の容量のコマンド解析処理用メモリ領域を前記メモリ上に確保する領域確保過程と、
を備えたことを特徴とする印刷装置の制御方法。
【請求項5】
ホスト装置より受信した印刷制御コマンドをメモリ上に展開して、解析し、印刷を行うとともに、前記印刷制御コマンドの種類と、前記メモリ上に確保すべきコマンド解析処理用メモリ領域の容量とを対応づけて記憶する確保容量記憶部を備えた印刷装置をコンピュータにより制御するための制御プログラムであって、
前記受信した印刷制御コマンドの種類を判別させる処理と、
前記確保容量記憶部を参照させ、前記判別された印刷制御コマンドの種類に対応した所定の容量のコマンド解析処理用メモリ領域を前記メモリ上に確保させる処理と、
を前記コンピュータに実現させることを特徴とする制御プログラム。

【図1】
image rotate

【図2】
image rotate

【図3】
image rotate

【図4】
image rotate


【公開番号】特開2010−89332(P2010−89332A)
【公開日】平成22年4月22日(2010.4.22)
【国際特許分類】
【出願番号】特願2008−260369(P2008−260369)
【出願日】平成20年10月7日(2008.10.7)
【出願人】(000002369)セイコーエプソン株式会社 (51,324)
【Fターム(参考)】