(57)【要約】    【課題】  ＤＭＡ転送モードを確実に解除するとともに、プリンタの初期化処理を高速化する。    【解決手段】  受信したイメージ印刷コマンドに係るイメージデータをプリントバッファ１５へＤＭＡ（Direct Memory Access）転送して印刷を実行するＤＭＡ転送モードを有するプリンタ１を制御するホスト装置３は、イメージ印刷コマンドを生成する印刷コマンド生成部３３と、印刷コマンド生成部３３が生成したイメージ印刷コマンドに係るイメージデータのデータサイズを記憶するメモリ３５と、メモリ３５に記憶されているデータサイズ分のヌルデータが先頭に付加された初期化コマンドを、プリンタ１へ送信するプリンタ制御部３４と、を備える。    【選択図】  図１
2006309343.tif 000002
【特許請求の範囲】
【請求項１】
受信したイメージ印刷コマンドに係るイメージデータをプリントバッファへＤＭＡ（Direct Memory Access）転送して印刷を実行するＤＭＡ転送モードを有するプリンタを制御する印刷制御装置であって、
イメージ印刷コマンドを生成し、前記プリンタへ送信するコマンド生成手段と、
前記コマンド生成手段が生成したイメージ印刷コマンドに係るイメージデータのデータサイズを記憶する記憶手段と、
前記記憶手段に記憶されているデータサイズ分のヌルデータが先頭に付加された初期化コマンドを、前記プリンタへ送信するプリンタ初期化手段と、を備える印刷制御装置。
【請求項２】
前記プリンタがＤＭＡ転送モードで動作した後、ＤＭＡ転送モードを終了したことを検知すると、前記記憶手段を初期化する記憶手段初期化手段をさらに備え、
前記プリンタ初期化手段は、前記記憶手段が初期化された状態であるときは、ヌルデータを付加せずに前記初期化コマンドを送信することを特徴とする請求項１記載の印刷制御装置。
【請求項３】
前記送信手段は、前記イメージ印刷コマンドの後ろに、前記プリンタからのレスポンスを要求するコマンドを付加して送信し、
前記記憶手段初期化手段は、前記送信手段が前記イメージ印刷コマンド及び前記レスポンスを要求するコマンドを送信した後に、前記プリンタからのレスポンスを受信すると、前記記憶手段を初期化することを特徴とする請求項２記載の印刷制御装置。
【請求項４】
前記プリンタ初期化手段は、前記初期化コマンドの後ろに、前記プリンタからのレスポンスを要求するコマンドを付加して送信し、
前記記憶手段初期化手段は、前記送信手段が前記初期化コマンド及び前記レスポンスを要求するコマンドを送信した後に、前記プリンタからのレスポンスを受信すると、前記記憶手段を初期化することを特徴とする請求項２記載の印刷制御装置。
【請求項５】
プリンタと印刷制御装置とを備えた印刷システムであって、
前記プリンタは、
プリントエンジンと、
前記印刷制御装置から送信されたデータを記憶する受信バッファと、
前記プリントエンジンに供給するための印刷データを記憶するプリントバッファと、
前記受信バッファに記憶されたイメージ印刷コマンドに係るイメージデータを前記プリントバッファへＤＭＡ（Direct Memory Access）転送するＤＭＡコントローラと、
前記受信バッファに記憶された印刷コマンドを解析してイメージデータを生成し、前記プリントバッファへ格納するコマンド解析部と、を備え、
当該プリンタは、前記イメージ印刷コマンドに含まれている当該イメージデータのデータサイズを示す情報に基づいて、前記ＤＭＡコントローラが当該データサイズ分のデータを前記受信バッファから前記プリントバッファへＤＭＡ転送が完了するまでデータ転送を繰り返すＤＭＡ転送モードで動作するものであり、
前記印刷制御装置は、
イメージ印刷コマンドを生成し、前記プリンタへ送信するコマンド生成手段と、
前記コマンド生成手段が生成したイメージ印刷コマンドに係るイメージデータのデータサイズを記憶する記憶手段と、
前記記憶手段に記憶されているデータサイズ分のヌルデータが先頭に付加された初期化コマンドを、前記プリンタへ送信するプリンタ初期化手段と、を備える印刷システム。
【請求項６】
受信したイメージ印刷コマンドに係るイメージデータをプリントバッファへＤＭＡ（Direct Memory Access）転送して印刷を実行するＤＭＡ転送モードを有するプリンタを初期化する方法であって、
前記プリンタへイメージ印刷コマンドを送信する際に、前記イメージデータのデータサイズを記憶手段に記憶するステップと、
前記プリンタを初期化するときに、前記記憶手段に記憶されているデータサイズ分のヌルデータが先頭に付加された初期化コマンドを、前記プリンタへ送信するステップと、を有する方法。
【請求項７】
受信したイメージ印刷コマンドに係るイメージデータをプリントバッファへＤＭＡ（Direct Memory Access）転送して印刷を実行するＤＭＡ転送モードを有するプリンタを初期化するためのコンピュータプログラムであって、
コンピュータに対して、
前記プリンタへイメージ印刷コマンドを送信する際に、前記イメージデータのデータサイズを記憶手段に記憶するステップと、
前記プリンタを初期化するときに、前記記憶手段に記憶されているデータサイズ分のヌルデータが先頭に付加された初期化コマンドを、前記プリンタへ送信するステップと、を実行させるコンピュータプログラム。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、ＤＭＡ転送モードを有するプリンタを初期化するための技術に関する。
【背景技術】
【０００２】
イメージ印刷コマンドを受信したとき、そのイメージ印刷コマンドに含まれるイメージデータを受信バッファからプリントバッファへＤＭＡ転送（Direct Memory Access）するＤＭＡ転送モードを有するプリンタがある。ＤＭＡ転送モードでは、イメージ印刷コマンドに含まれるイメージデータのサイズ分のデータをＤＭＡ転送するまで、受信したデータをＤＭＡ転送し続ける。
【０００３】
このため、例えば、プリンタとＵＳＢで接続されたホスト装置がイメージ印刷コマンドを送信している途中でケーブルが引き抜かれたようなときは、プリンタはＤＭＡ転送モードのまま、次のデータを待ち続ける状態になることがある。この場合、ホスト装置とプリンタが再び接続された場合には、プリンタを一旦初期化しなければならないが、そのためには、送信中だったイメージ印刷コマンドの未送信のイメージデータと同じサイズかそれ以上のサイズのデータを送信し、ＤＭＡ転送モードを終了させなければならない。
【０００４】
そこで、従来は、プリンタの初期化コマンドを送信する前に、予め決められた固定サイズのヌルデータを必ず送信していた。
【発明の開示】
【発明が解決しようとする課題】
【０００５】
しかしながら、この初期化コマンドの前に送信するヌルデータは、イメージ印刷コマンドのサイズとは無関係に決められているので、過不足が生じることがあった。例えば、必要となるデータのサイズがそれほど大きくないときに、膨大なヌルデータを送信すれば、データの送信に必要以上の時間がかかるし、一方、必要となるデータのサイズが膨大であれば、固定サイズのヌルデータでは十分でなく、ＤＭＡ転送モードを解除できないこともあった。
【０００６】
そこで、本発明の目的は、ＤＭＡ転送モードを確実に解除するとともに、プリンタの初期化処理を高速化することである。
【０００７】
本発明の他の目的は、プリンタ初期化のために送信するヌルデータのサイズを最適化することである。
【課題を解決するための手段】
【０００８】
本発明の一実施態様に従う印刷制御装置は、受信したイメージ印刷コマンドに係るイメージデータをプリントバッファへＤＭＡ（Direct Memory Access）転送して印刷を実行するＤＭＡ転送モードを有するプリンタを制御する印刷制御装置である。そして、イメージ印刷コマンドを生成し、前記プリンタへ送信するコマンド生成手段と、前記コマンド生成手段が生成したイメージ印刷コマンドに係るイメージデータのデータサイズを記憶する記憶手段と、前記記憶手段に記憶されているデータサイズ分のヌルデータが先頭に付加された初期化コマンドを、前記プリンタへ送信するプリンタ初期化手段と、を備える。
好適な実施形態では、前記プリンタがＤＭＡ転送モードで動作した後、ＤＭＡ転送モードを終了したことを検知すると、前記記憶手段を初期化する記憶手段初期化手段をさらに備える。そして、前記プリンタ初期化手段は、前記記憶手段が初期化された状態であるときは、ヌルデータを付加せずに前記初期化コマンドを送信するようにしてもよい。
【０００９】
好適な実施形態では、前記送信手段は、前記イメージ印刷コマンドの後ろに、前記プリンタからのレスポンスを要求するコマンドを付加して送信し、前記記憶手段初期化手段は、前記送信手段が前記イメージ印刷コマンド及び前記レスポンスを要求するコマンドを送信した後に、前記プリンタからのレスポンスを受信すると、前記記憶手段を初期化するようにしてもよい。
【００１０】
好適な実施形態では、前記プリンタ初期化手段は、前記初期化コマンドの後ろに、前記プリンタからのレスポンスを要求するコマンドを付加して送信し、前記記憶手段初期化手段は、前記送信手段が前記初期化コマンド及び前記レスポンスを要求するコマンドを送信した後に、前記プリンタからのレスポンスを受信すると、前記記憶手段を初期化するようにしてもよい。
【００１１】
本発明の一実施態様に従う印刷システムは、プリンタと印刷制御装置とを備える。そして、前記プリンタは、プリントエンジンと、前記印刷制御装置から送信されたデータを記憶する受信バッファと、前記プリントエンジンに供給するための印刷データを記憶するプリントバッファと、前記受信バッファに記憶されたイメージ印刷コマンドに係るイメージデータを前記プリントバッファへＤＭＡ（Direct Memory Access）転送するＤＭＡコントローラと、前記受信バッファに記憶された印刷コマンドを解析してイメージデータを生成し、前記プリントバッファへ格納するコマンド解析部と、を備え、当該プリンタは、前記イメージ印刷コマンドに含まれている当該イメージデータのデータサイズを示す情報に基づいて、前記ＤＭＡコントローラが当該データサイズ分のデータを前記受信バッファから前記プリントバッファへＤＭＡ転送が完了するまでデータ転送を繰り返すＤＭＡ転送モードで動作するものである。また、前記印刷制御装置は、前記プリンタへイメージ印刷コマンドを送信する送信手段と、前記送信手段が送信するイメージ印刷コマンドに係るイメージデータのデータサイズを記憶する記憶手段と、前記記憶手段に記憶されているデータサイズ分のヌルデータが先頭に付加された初期化コマンドを、前記プリンタへ送信するプリンタ初期化手段と、を備える。
【発明を実施するための最良の形態】
【００１２】
以下、本発明の一実施形態に係る印刷システムについて、図面を参照して説明する。
【００１３】
図１は、本実施形態に係る印刷システムの全体構成を示す図である。本システムは、プリンタ１と、プリンタ１を制御する印刷制御装置であるホスト装置３とを備える。
【００１４】
プリンタ１は、ホスト装置３から送られる印刷コマンドなどのデータを受信するホストインタフェース１１と、ホストインタフェース１１が受信したデータを一時的に記憶する受信バッファ１２と、受信バッファ１２に蓄積された印刷コマンドを解析して、印刷データを生成するコマンド解析部１３と、受信バッファ１２に蓄積されているデータを、コマンド解析部１３を介さずにプリントバッファ１５へＤＭＡ転送するＤＭＡコントローラ１４と、印刷データを蓄積するためのプリントバッファ１５と、プリントバッファ１５に蓄積された印刷データに基づいて印刷を実行するプリントエンジン１６とを備える。
【００１５】
このプリンタ１は、受信バッファ１２からプリントバッファ１５へのデータ転送方式に以下の２つのモードを有している。すなわち、第１のモードは、ＤＭＡコントローラ１４が受信バッファ１２のデータをプリントバッファ１５へＤＭＡ転送するＤＭＡ転送モードである。第２のモードは、受信バッファ１２に蓄積された印刷コマンドをコマンド解析部１３が解析してビットマップ形式の印刷データに変換してプリントバッファ１５へ格納する通常転送モードである。
【００１６】
ＤＭＡ転送モードは、イメージデータを印刷するためのイメージ印刷コマンド５０（図２参照）をプリントバッファ１５へ転送する際に利用される。例えば、受信バッファ１２にイメージ印刷コマンド５０が格納されると、ＤＭＡコントローラ１４が受信バッファ１２に格納されているイメージデータ５３をプリントバッファ１５へＤＭＡ転送する。そして、ＤＭＡコントローラ１４がデータサイズ５２に示すデータ量だけＤＭＡ転送を行うと、ＤＭＡ転送モードを終了し、通常転送モードへ戻る。すなわち、プリンタ１は、イメージ印刷コマンド５０を受信したときに自動的にＤＭＡ転送モードに移行する。そして、データサイズ５２に示すデータ量だけ、イメージデータ５３をＤＭＡ転送するとＤＭＡ転送モードから自動的に抜ける。
【００１７】
これにより、イメージデータの転送を高速化することができ、プリンタ１全体の処理の高速化につながる。
【００１８】
ところで、ＤＭＡ転送モードが解除される条件が、データサイズ５２に示すデータ量だけＤＭＡ転送をしたことであるということは、すなわち、データサイズ５２に示すデータ量だけデータを転送しない限り、ＤＭＡ転送モードは解除されないということである。従って、例えば、ＤＭＡ転送モードの途中でイメージデータの受信が途絶えたような場合には、プリンタ１はＤＭＡ転送モードのままで次に来るデータを待ち続けることになる。
【００１９】
ホスト装置３は、例えば汎用的なコンピュータシステムにより構成され、以下に説明する個々の構成要素または機能は、例えば、コンピュータプログラムを実行することにより実現される。
【００２０】
すなわち、ホスト装置３は、プリンタ１とのデータ入出力を行うプリンタインタフェース３１と、複数のアプリケーション（ＡＰ）３２と、ＡＰ３２からの指示に基づいて印刷コマンドを生成する印刷コマンド生成部３３と、印刷コマンド以外のコマンドの生成、及びプリンタ１の制御を行うプリンタ制御部３４と、イメージ印刷コマンドを送信するときに、そのイメージ印刷コマンドに含まれるイメージデータのデータサイズを記憶するメモリ３５とを備える。
【００２１】
印刷コマンド生成部３３は、種々の印刷コマンドを生成する。例えば、イメージデータを印刷するためのイメージ印刷コマンド５０を生成する。
【００２２】
図２には、イメージ印刷コマンド５０のデータ構造の一例を示す。イメージ印刷コマンド５０は、先頭からコマンドタイプ５１、データサイズ５２及びイメージデータ５３を含む。コマンドタイプ５１は、イメージ印刷コマンド５０であることを示す。データサイズ５２は、イメージデータ５３のサイズを示す。イメージデータ５３は、ビットマップ化された印刷データである。
【００２３】
プリンタ制御部３４は、印刷コマンド生成部３３が生成したイメージ印刷コマンド５０をプリンタ１へ送信する前に、データサイズ５２をメモリ３５へ格納する。
【００２４】
また、イメージ印刷コマンド５０をプリンタ１へ送信するとき、プリンタ制御部３４は、図２に示すようにイメージ印刷コマンド５０の後ろにレスポンス要求コマンド６０を付加して送信してもよい。レスポンス要求コマンド６０は、プリンタ１からホスト装置３へ何らかの通知をすることを要求するコマンドであれば何でもよい。
【００２５】
ここで、プリンタ１が、レスポンス要求コマンド６０が付加されたイメージ印刷コマンド５０を受信した場合、イメージ印刷コマンド５０の処理を終了すると、レスポンス要求コマンド６０の処理を実行して、ホスト装置３へ所定のレスポンスを通知する。すなわち、レスポンス要求コマンド６０が付加されたイメージ印刷コマンド５０を受信すると、プリンタ１はＤＭＡ転送モードでイメージデータ５３の転送を行い、これを完了してＤＭＡ転送モードを抜けると、通常転送モードでレスポンス要求コマンド６０を処理する。従って、プリンタ１がレスポンス要求コマンド６０に対応するレスポンスをホスト装置３へ通知するということは、プリンタ１がＤＭＡ転送モードを終了したことを意味する。
【００２６】
ホスト装置３は、レスポンス要求コマンド６０を付加してイメージ印刷コマンド５０をプリンタ１へ送信した後、プリンタ１からレスポンス要求コマンド６０に対応する通知を受けると、メモリ３５を初期化する。すなわち、ホスト装置３がメモリ３５にセットされたデータサイズ分のイメージデータのＤＭＡ転送が終了したことを検出すると、メモリ３５はクリアされる。
【００２７】
また、プリンタ制御部３４は、プリンタ１の初期化処理として、初期化コマンドを生成してプリンタ１へ送信する。この初期化処理は、例えば、ホスト装置３の起動時、あるいはホスト装置３がプリンタ１を検出したときなどに行われる。
【００２８】
ここで、図３に初期化コマンドをプリンタ１へ送信するときのデータ構造を示す。
【００２９】
すなわち、初期化コマンド８０を送信するときには、プリンタ制御部３４は、初期化コマンド８０の先頭にヌルデータ７０を付加する。ヌルデータ７０のサイズは、メモリ３５に格納されているデータサイズである。初期化処理が完了したことを検知するために、レスポンス要求コマンド６０を初期化コマンド８０の後ろに付加してもよい。
【００３０】
これにより、イメージ印刷データの転送中に過ってケーブルを抜いてしまったときのように、プリンタ１がＤＭＡ転送モードのままになっているときでも、イメージデータのデータサイズ分のヌルデータ７０によってＤＭＡ転送モードから抜け、必要以上のデータ転送時間をかけずに、確実に初期化コマンドが実行される。
【００３１】
また、プリンタ制御部３４は、メモリ３５が初期化された状態であるとき、つまり、メモリ３５にイメージデータのデータサイズが格納されていないときは、ヌルデータ７０を添付せずに初期化コマンド８０を送信する。
【００３２】
これは、メモリ３５が初期化された状態のときは、プリンタ１がＤＭＡ転送モードではないので初期化コマンドを直ちに実行することができ、ヌルデータを添付する必要がないからである。これにより、ヌルデータの添付が不要な場合はそれを省略することができ、初期化処理を高速化できる。
【００３３】
次に、上記のような構成を備える印刷システムにおける処理フローについて説明する。
【００３４】
図４は、イメージ印刷を行う場合の処理手順を示すフローチャートである。これを参照して、イメージ印刷の処理手順を説明する。
【００３５】
まず、印刷コマンド生成部３３がＡＰ３２の指示に基づいてイメージ印刷コマンドを生成する（Ｓ１１）。
【００３６】
プリンタ制御部３４は、イメージ印刷コマンドに含まれるイメージデータのデータサイズをメモリ３５に格納する（Ｓ１２）。そして、イメージ印刷コマンド５０の後ろにレスポンス要求コマンド６０を付してプリンタ１へ送信する（Ｓ１３）。
【００３７】
プリンタ１は、イメージ印刷コマンド５０を受信すると、ＤＭＡ転送モードでイメージ印刷コマンドを処理し、イメージデータを印刷する（Ｓ１４）。そして、イメージ印刷コマンド５０の処理が終了すると、コマンド解析部１３がレスポンス要求コマンド６０を処理し、所定のレスポンスをホスト装置３へ通知する（Ｓ１５）。
【００３８】
ホスト装置３では、プリンタ１からのレスポンスを受信すると、プリンタ制御部３４がメモリ３５を初期化して、メモリ３５に記憶されていたデータサイズ情報を消去する（Ｓ１６）。
【００３９】
図５は、プリンタの初期化を行う場合の処理手順を示すフローチャートである。これを参照して、プリンタ初期化処理の手順を説明する。
【００４０】
まず、プリンタ制御部３４が初期化コマンド８０を生成する（Ｓ２１）。そして、プリンタ制御部３４は、メモリ３５を参照して、メモリ３５が初期化された状態であるか、データサイズを示す情報が記憶されているかを判定する（Ｓ２２，Ｓ２３）。
【００４１】
ここで、メモリ３５にデータサイズを示す情報が記憶されている場合、そのデータサイズ分のヌルデータ７０を初期化コマンド８０の先頭に付加して、プリンタ１へ送信する（Ｓ２４）。一方、メモリ３５が初期化された状態であるときはステップＳ２４をスキップし、初期化コマンド８０の先頭にヌルデータを付加しない。
【００４２】
さらに、プリンタ制御部３４は、初期化コマンド８０の後ろにレスポンス要求コマンド６０を付してプリンタ１へ送信する（Ｓ２５）。
【００４３】
プリンタ１がＤＭＡ転送モードであれば、プリンタ１は、まずヌルデータを受信するので、所定のデータサイズ分のデータの転送が終わるまで、ＤＭＡコントローラ１４がヌルデータをＤＭＡ転送し、ＤＭＡ転送モードを終了する（Ｓ２６）。プリンタ１がＤＭＡ転送モードでない場合、あるいはＤＭＡ転送モードから抜けた場合は、コマンド解析部１３が初期化コマンド８０を実行してプリンタ１を初期化するとともに、レスポンス要求コマンド６０に基づくレスポンスをホスト装置３へ通知する（Ｓ２７）。
【００４４】
ホスト装置３は、プリンタ１からレスポンス要求コマンド６０に基づくレスポンスを受信すると、プリンタ制御部３４がメモリ３５を初期化して、メモリ３５に記憶されていたデータサイズ情報を消去する（Ｓ２８）。
【００４５】
これにより、プリンタの初期化処理が必要な場合に、万一、プリンタがＤＭＡ転送モードである場合でも、確実にＤＭＡ転送モードを終了させ、プリンタに初期化コマンドを実行させることができる。さらに、プリンタがＤＭＡ転送モードでない場合には、ヌルデータを添付しないので、余計なトラフィックを生じさせず、かつ、プリンタの初期化処理を遅延させないようにすることができる。
【００４６】
なお、ステップＳ２８で行っているメモリ３５の初期化は、必ずしもこのタイミングでなくてもよい。例えば、ステップＳ２４を実行した後、またはステップＳ２５を実行した後にメモリ３５を初期化してもよい。
【００４７】
上述した本発明の実施形態は、本発明の説明のための例示であり、本発明の範囲をそれらの実施形態にのみ限定する趣旨ではない。当業者は、本発明の要旨を逸脱することなしに、他の様々な態様で本発明を実施することができる。
【図面の簡単な説明】
【００４８】
【図１】本発明の一実施形態に係る印刷システムの全体構成を示す図である。
【図２】イメージ印刷コマンド５０のデータ構造の一例を示す図である。
【図３】初期化コマンドをプリンタへ送信するときのデータ構造を示す図である。
【図４】イメージ印刷を行う場合の処理手順を示すフローチャートである。
【図５】プリンタの初期化を行う場合の処理手順を示すフローチャートである。
【符号の説明】
【００４９】
１…プリンタ、３…ホスト装置、１１…ホストインタフェース、１２…受信バッファ、１３…コマンド解析部、１４…コントローラ、１５…プリントバッファ、１６…プリントエンジン、３１…プリンタインタフェース、３３…印刷コマンド生成部、３４…プリンタ制御部、３５…メモリ。
【図１】
2006309343.tif 000003
【図２】
2006309343.tif 000004
【図３】
2006309343.tif 000005
【図４】
2006309343.tif 000006
【図５】
2006309343.tif 000007