(57)【特許請求の範囲】
【請求項１】
受信割込み処理で、ホスト装置から受信したデータを受信バッファに格納するデータ格納部と、
前記受信割込み処理で、前記受信バッファに格納した前記データが、画像印刷コマンドのヘッダー部であるか否かを判定する割込み判定部と、
前記割込み判定部で、画像印刷コマンドのヘッダー部であると判定された場合、前記ホスト装置によるデータ送信を一時停止させるデータ送信停止部と、
前記割込み判定部で、受信した前記データが、画像印刷コマンドのヘッダー部であると判定された場合、当該画像印刷コマンドのデータ転送が終了するまで、前記割込み判定部による判定を禁止する判定禁止部と、
コマンドタスクで、前記受信バッファに格納した前記データが、ＤＭＡ転送可能な画像印刷コマンドのヘッダー部であるか否かを判定するコマンド解析部と、
前記コマンド解析部で、ＤＭＡ転送可能な画像印刷コマンドのヘッダー部であると判定された場合、データ転送モードを、通常転送モードからＤＭＡ転送モードに切り替えるモード切替部と、
前記コマンド解析部で、ＤＭＡ転送可能な画像印刷コマンドのヘッダー部であると判定された場合、前記ホスト装置によるデータ転送の前記一時停止を解除させる停止解除部と、
前記モード切替部で、データ転送モードを、通常転送モードからＤＭＡ転送モードに切り替えた場合に、前記ホスト装置から受信したデータを、前記受信バッファに格納することなく、プリントバッファにＤＭＡ転送するＤＭＡ転送部と、
前記プリントバッファに転送した前記データを読み出して、画像印刷を行う印刷部と、を備えたことを特徴とする印刷装置。
【請求項２】
受信割込み処理で、ホスト装置から受信したデータを受信バッファに格納するデータ格納部と、
前記受信割込み処理で、前記受信バッファに格納した前記データが、画像印刷コマンドのヘッダー部であるか否かを判定する割込み判定部と、
前記割込み判定部で、画像印刷コマンドのヘッダー部であると判定された場合、前記ホスト装置によるデータ送信を一時停止させるデータ送信停止部と、
コマンドタスクで、前記受信バッファに格納した前記データが、ＤＭＡ転送可能な画像印刷コマンドのヘッダー部であるか否かを判定するコマンド解析部と、
前記コマンド解析部で、ＤＭＡ転送可能な画像印刷コマンドのヘッダー部であると判定された場合、データ転送モードを、通常転送モードからＤＭＡ転送モードに切り替えるモード切替部と、
前記コマンド解析部で、ＤＭＡ転送可能な画像印刷コマンドのヘッダー部であると判定された場合、前記ホスト装置によるデータ転送の前記一時停止を解除させる停止解除部と、
前記モード切替部で、データ転送モードを、通常転送モードからＤＭＡ転送モードに切り替えた場合に、前記ホスト装置から受信したデータを、前記受信バッファに格納することなく、プリントバッファにＤＭＡ転送するＤＭＡ転送部と、
前記プリントバッファに転送した前記データを読み出して、画像印刷を行う印刷部と、を備え、
前記割込み判定部は、受信した前記データが、画像印刷コマンドのヘッダー部の一部を成すデータであると判定された場合、当該データを記憶バッファに記憶し、画像印刷コマンドのヘッダー部の一部を成すデータではないと判定された場合、前記記憶バッファをクリアすることを特徴とする印刷装置。
【請求項３】
前記モード切替部は、前記コマンド解析部でＤＭＡ転送可能な画像印刷コマンドのヘッダー部でないと判定された場合、データ転送モードを、通常転送モードに維持し、
前記停止解除部は、前記コマンド解析部でＤＭＡ転送可能な画像印刷コマンドのヘッダー部でないと判定された場合、前記ホスト装置によるデータ転送の前記一時停止を解除させることを特徴とする請求項１または２に記載の印刷装置。
【請求項４】
受信割込み処理で、ホスト装置から受信したデータを受信バッファに格納するデータ格納ステップと、
前記受信割込み処理で、前記受信バッファに格納した前記データが、画像印刷コマンドのヘッダー部であるか否かを判定する割込み判定ステップと、
前記割込み判定ステップで、画像印刷コマンドのヘッダー部であると判定された場合、前記ホスト装置によるデータ送信を一時停止させる送信停止ステップと、
前記割込み判定ステップで、受信した前記データが、画像印刷コマンドのヘッダー部であると判定された場合、当該画像印刷コマンドのデータ転送が終了するまで、前記割込み判定ステップの判定を禁止する判定禁止ステップと、
コマンドタスクで、前記受信バッファに格納した前記データが、ＤＭＡ転送可能な画像印刷コマンドのヘッダー部であるか否かを判定する判定ステップと、
前記判定ステップで、ＤＭＡ転送可能な画像印刷コマンドのヘッダー部であると判定された場合、データ転送モードを、通常転送モードからＤＭＡ転送モードに切り替えるモード切替ステップと、
前記判定ステップで、ＤＭＡ転送可能な画像印刷コマンドのヘッダー部であると判定された場合、前記ホスト装置によるデータ送信の一時停止を解除させる送信停止解除ステップと、
前記モード切替ステップで、データ転送モードを、通常転送モードからＤＭＡ転送モードに切り替えた場合に、前記ホスト装置から受信したデータを、前記受信バッファに格納することなく、プリントバッファにＤＭＡ転送するＤＭＡ転送ステップと、
前記プリントバッファに転送した前記データを読み出して、画像印刷を行う印刷ステップと、を実行することを特徴とする印刷装置の制御方法。
【請求項５】
受信割込み処理で、ホスト装置から受信したデータを受信バッファに格納するデータ格納ステップと、
前記受信割込み処理で、前記受信バッファに格納した前記データが、画像印刷コマンドのヘッダー部であるか否かを判定する割込み判定ステップと、
前記割込み判定ステップで、画像印刷コマンドのヘッダー部であると判定された場合、前記ホスト装置によるデータ送信を一時停止させる送信停止ステップと、
コマンドタスクで、前記受信バッファに格納した前記データが、ＤＭＡ転送可能な画像印刷コマンドのヘッダー部であるか否かを判定する判定ステップと、
前記判定ステップで、ＤＭＡ転送可能な画像印刷コマンドのヘッダー部であると判定された場合、データ転送モードを、通常転送モードからＤＭＡ転送モードに切り替えるモード切替ステップと、
前記判定ステップで、ＤＭＡ転送可能な画像印刷コマンドのヘッダー部であると判定された場合、前記ホスト装置によるデータ送信の一時停止を解除させる送信停止解除ステップと、
前記モード切替ステップで、データ転送モードを、通常転送モードからＤＭＡ転送モードに切り替えた場合に、前記ホスト装置から受信したデータを、前記受信バッファに格納することなく、プリントバッファにＤＭＡ転送するＤＭＡ転送ステップと、
前記プリントバッファに転送した前記データを読み出して、画像印刷を行う印刷ステップと、を実行し、
前記割込み判定ステップでは、受信した前記データが、画像印刷コマンドのヘッダー部の一部を成すデータであると判定された場合、当該データを記憶バッファに記憶し、画像印刷コマンドのヘッダー部の一部を成すデータではないと判定された場合、前記記憶バッファをクリアすることを特徴とする印刷装置の制御方法。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、ホスト装置からデータを受信して画像印刷を行う印刷装置および印刷装置の制御方法に関するものである。
【背景技術】
【０００２】
従来、この種の印刷装置として、ホスト装置から送られる印刷コマンドなどのデータを受信するホストインターフェースと、ホストインターフェースが受信したデータを一時記憶する受信バッファと、受信バッファに蓄積された印刷コマンドを解析して、印刷データを生成するコマンド解析部と、印刷データを蓄積するためのプリントバッファと、プリントバッファに蓄積された印刷データに基づいて印刷を実行するプリントエンジンと、受信バッファのデータをプリントバッファにＤＭＡ（Direct  Memory  Access）転送するＤＭＡコントローラーと、を備えたものが知られている（特許文献１参照）。
この印刷装置では、受信したデータを一度、受信バッファに格納し、格納したデータが、ＤＭＡ転送可能な画像印刷コマンド（イメージ印刷コマンド）である場合、ＤＭＡ転送モードでデータ転送する構成となっている。すなわち、受信したデータが、ＤＭＡ転送可能な画像印刷コマンドの場合、ＤＭＡコントローラーにより、当該画像印刷コマンドを受信バッファからプリントバッファにＤＭＡ転送する。これによって、データ転送を高速化し、プリンター全体の処理を高速化している。
【先行技術文献】
【特許文献】
【０００３】
【特許文献１】特開２００６−３０９３４３号公報
【発明の概要】
【発明が解決しようとする課題】
【０００４】
ところで、上記従来の印刷装置では、受信したデータを、一度受信バッファに格納した後、当該データがＤＭＡ転送可能な画像印刷コマンドである場合、当該データを、ＤＭＡ転送モードで受信バッファからプリントバッファにデータ転送する構成としているが、ＤＭＡ転送モードの時に、受信したデータを、受信バッファに格納することなく、プリントバッファに直接ＤＭＡ転送することも考えられる。例えば、受信したデータを順次受信バッファに格納し、格納したデータがＤＭＡ転送可能な画像印刷コマンドのヘッダー部であるか否かを判定していく判定部を備える。そして、この判定部による判定によって、画像印刷コマンドのヘッダー部を検出した時点で、データ転送モードを通常転送モードからＤＭＡ転送モードに切り替える。その後、当該ヘッダー部に続く画像印刷コマンドのデータ本体を、ＤＭＡ転送モードで、受信バッファに格納することなく、プリントバッファに直接ＤＭＡ転送する。かかる構成によれば、データ転送をより高速化することができる。
しかしながら、かかる構成を採用したところ、画像印刷コマンドのデータ本体全体をＤＭＡ転送モードでデータ転送することができないという問題が生じた。すなわち、ＤＭＡ転送可能な画像印刷コマンドのヘッダー部を受信するタイミングと、判定によって当該ヘッダー部を検出するタイミングとの間にタイムラグがある。そのため、このタイムラグの間に、当該ヘッダー部に続く画像印刷コマンドのデータ本体の一部が、受信バッファに格納されてしまい、通常転送モードで処理せざるを得なくなってしまう。これによって、画像印刷コマンドのデータ本体の一部が、ＤＭＡ転送モードで処理できず、データ本体全体をＤＭＡ転送モードでデータ転送することができなかった。これにより、データ転送が遅くなってしまう。
【０００５】
本発明は、上記問題を鑑み、データ転送をより高速化することができる印刷装置および印刷装置の制御方法を提供することを課題としている。
【課題を解決するための手段】
【０００６】
本発明の印刷装置は、受信割込み処理で、ホスト装置から受信したデータを受信バッファに格納するデータ格納部と、受信割込み処理で、受信バッファに格納したデータが、画像印刷コマンドのヘッダー部であるか否かを判定する割込み判定部と、割込み判定部で、画像印刷コマンドのヘッダー部であると判定された場合、ホスト装置によるデータ送信を一時停止させるデータ送信停止部と、コマンドタスクで、受信バッファに格納したデータが、ＤＭＡ転送可能な画像印刷コマンドのヘッダー部であるか否かを判定するコマンド解析部と、コマンド解析部で、ＤＭＡ転送可能な画像印刷コマンドのヘッダー部であると判定された場合、データ転送モードを、通常転送モードからＤＭＡ転送モードに切り替えるモード切替部と、コマンド解析部で、ＤＭＡ転送可能な画像印刷コマンドのヘッダー部であると判定された場合、ホスト装置によるデータ転送の一時停止を解除させる停止解除部と、モード切替部で、データ転送モードを、通常転送モードからＤＭＡ転送モードに切り替えた場合に、ホスト装置から受信したデータを、受信バッファに格納することなく、プリントバッファにＤＭＡ転送するＤＭＡ転送部と、プリントバッファに転送したデータを読み出して、画像印刷を行う印刷部と、を備えたことを特徴とする。
【０００７】
この場合、モード切替部は、コマンド解析部でＤＭＡ転送可能な画像印刷コマンドのヘッダー部でないと判定された場合、データ転送モードを、通常転送モードに維持し、停止解除部は、コマンド解析部でＤＭＡ転送可能な画像印刷コマンドのヘッダー部でないと判定された場合、ホスト装置によるデータ転送の一時停止を解除させることが好ましい。
【０００８】
本発明の印刷装置の制御方法は、受信割込み処理で、ホスト装置から受信したデータを受信バッファに格納するデータ格納ステップと、受信割込み処理で、受信バッファに格納したデータが、画像印刷コマンドのヘッダー部であるか否かを判定する割込み判定ステップと、割込み判定ステップで、画像印刷コマンドのヘッダー部であると判定された場合、ホスト装置によるデータ送信を一時停止させる送信停止ステップと、コマンドタスクで、受信バッファに格納したデータが、ＤＭＡ転送可能な画像印刷コマンドのヘッダー部であるか否かを判定する判定ステップと、判定ステップで、ＤＭＡ転送可能な画像印刷コマンドのヘッダー部であると判定された場合、データ転送モードを、通常転送モードからＤＭＡ転送モードに切り替えるモード切替ステップと、判定ステップで、ＤＭＡ転送可能な画像印刷コマンドのヘッダー部であると判定された場合、ホスト装置によるデータ送信の一時停止を解除させる送信停止解除ステップと、モード切替ステップで、データ転送モードを、通常転送モードからＤＭＡ転送モードに切り替えた場合に、ホスト装置から受信したデータを、受信バッファに格納することなく、プリントバッファにＤＭＡ転送するＤＭＡ転送ステップと、プリントバッファに転送したデータを読み出して、画像印刷を行う印刷ステップと、を実行することを特徴とする。
【０００９】
これらの構成によれば、受信割込み処理において、受信したデータが画像印刷コマンドのヘッダー部であると判定された時点で、ホスト装置によるデータ送信を一時停止させ、コマンド解析部（判定ステップ）による判定の後に当該一時停止を解除させる。これにより、上記したタイムラグの間、ホスト装置によるデータ転送を停止させることができる。そのため、上記したタイムラグの間に、当該ヘッダー部に続くデータ本体の一部が受信バッファに格納されてしまうことがない。これによって、ＤＭＡ転送可能な画像印刷コマンドのデータ本体の一部を通常転送モードで処理せざるを得ない事態を避けることができる。つまり、データ本体全体をＤＭＡ転送モードでデータ転送することができる。よって、データ転送をより高速化することができる。
【００１０】
上記の印刷装置において、割込み判定部で、受信したデータが、画像印刷コマンドのヘッダー部であると判定された場合、当該画像印刷コマンドのデータ転送が終了するまで、割込み判定部による判定を禁止する判定禁止部を、更に備えることが好ましい。
【００１１】
受信したデータが画像印刷コマンドのヘッダー部であると判定された場合、それ以降は、当該ヘッダー部に続く画像印刷コマンドのデータ本体を受信することになる。
これに対し、上記の構成によれば、受信したデータが画像印刷コマンドのヘッダー部であると判定された場合、当該画像印刷コマンドのデータ転送が終了するまで、割込み判定部による判定を禁止する構成であるため、画像印刷コマンドのデータ本体を受信していく時には、受信割込み処理における割込み判定部の判定が省略される。これによって、画像印刷コマンドのデータ転送を、より高速化することができる。
【００１２】
また、割込み判定部は、受信したデータが、画像印刷コマンドのヘッダー部の一部を成すデータであると判定された場合、当該データを記憶バッファに記憶し、画像印刷コマンドのヘッダー部の一部を成すデータではないと判定された場合、記憶バッファをクリアすることが好ましい。
【００１３】
この構成によれば、受信したデータが、画像印刷コマンドのヘッダー部の一部を成すデータであると判定された場合、当該データを記録バッファに蓄積していき、蓄積したデータによって、受信したデータが、画像印刷コマンドのヘッダー部であると確定したら、受信したデータが、画像印刷コマンドのヘッダー部であると判定する。一方で、受信したデータが、画像印刷コマンドのヘッダー部の一部を成すデータではないと判定された場合、記録バッファをクリアすることで、記録バッファを用いた次の判定を即座に行うことができる。
【図面の簡単な説明】
【００１４】
【図１】本発明の一実施形態に係る印刷システムのシステム構成図である。
【図２】プリンターコントローラーの機能構成を示した機能ブロック図である。
【図３】受信割込み処理を示したフローチャートである。
【図４】コマンドタスクを示したフローチャートである。
【発明を実施するための形態】
【００１５】
以下、添付の図面を参照して、本発明の一実施形態に係る印刷装置および印刷装置の制御方法について説明する。本実施形態では、本発明の印刷装置および印刷装置の制御方法を適用した印刷システムを例示する。この印刷システムは、印刷媒体に対し印刷処理を行って、印刷物（例えばレシート）を作成するものである。
【００１６】
図１に示すように、印刷システムＳＹは、ホスト装置１と、ホスト装置１に接続された印刷装置２と、を有する。ホスト装置１と印刷装置２とは、ＵＳＢ（Universal  Serial  Bus）ケーブル３を介して接続され、各種データをＵＳＢ転送形式でやり取り可能に構成される。
【００１７】
ホスト装置１は、各種コマンドを生成し、生成した各種コマンドを印刷装置２に送信する。具体的には、ホスト装置１は、画像印刷コマンドや文字印刷コマンド等のコマンドを生成し、これを１バイト毎に分割して印刷装置２に送信する。各種コマンドは、ヘッダー部と、データ本体（画像印刷コマンドでは画像データ）と、により構成される。当該ヘッダー部には、少なくとも、コマンドの種類の情報と、データ本体のデータサイズの情報とが記載される。詳細は後述するが、印刷装置２は、当該ヘッダー部を参照することで、これらの情報を取得する。
【００１８】
印刷装置２は、ホスト装置１から各種コマンドを受信し、当該各種コマンドに基づいて、各種処理を行う。例えば、画像印刷コマンドに基づいて、印刷媒体に対し画像印刷を行い、文字印刷コマンドに基づいて、印刷媒体に対し文字印刷を行う。印刷装置２は、例えばレシート印刷装置である。
【００１９】
印刷装置２は、ホスト装置１とのデータ通信を行うＵＳＢインターフェース１１（受信部）と、印刷媒体に対し印刷処理を行うプリンターエンジン１２と、ＵＳＢインターフェース１１およびプリンターエンジン１２を制御するプリンターコントローラー１３と、を備える。印刷装置２では、プリンターコントローラー１３の制御の下、ＵＳＢインターフェース１１により、各種コマンドを受信し、プリンターエンジン１２により、受信した各種コマンドに基づく印刷処理を行う。これによって、印刷物を作成する。
【００２０】
ＵＳＢインターフェース１１は、ＵＳＢケーブル３を介して、ホスト装置１との通信を行うものである。ＵＳＢインターフェース１１は、データの送受信を行うＵＳＢコネクター２１と、ＵＳＢコネクター２１によるデータの送受信を制御するＵＳＢコントローラー２２と、ＵＳＢコネクター２１により受信したデータを一時記憶するＦＩＦＯ（First  In  First  Out）バッファ２３と、を備える。ホスト装置１から上記各種コマンドを含むデータを受信する場合には、ＵＳＢコントローラー２２の制御の下、１バイト単位で送られてくるデータを順次ＦＩＦＯバッファ２３に一時記憶する。なお、詳細は後述するが、ここで一時記憶したデータは、プリンターコントローラー１３により、ＦＩＦＯバッファ２３から、受信バッファ４１やプリントバッファ４２（いずれも後述）にデータ転送される。
【００２１】
プリンターコントローラー１３は、印刷装置２全体を統括制御する統括制御部３１と、ＤＭＡ転送を行うためのＤＭＡコントローラー３２と、を備える。ＤＭＡコントローラー３２は、後述のＤＭＡ転送モードにおいて、ＦＩＦＯバッファ２３に記憶されたデータを、直接プリントバッファ４２にＤＭＡ転送するのに用いられる。
【００２２】
統括制御部３１は、ＣＰＵ（Central  Processing  Unit）３６と、ＲＡＭ（Random  Access  Memory）３７と、ＲＯＭ（Read  Only  Memory）３８と、を有する。ＣＰＵ３６は、各種演算処理を行う中央処理装置である。
【００２３】
ＲＡＭ３７は、ＣＰＵ３６が各種演算処理を行う際の作業領域として用いられる。また、ＲＡＭ３７は、ＵＳＢインターフェース１１からのデータを一時記憶する受信バッファ４１と、プリンターエンジン１２により印刷する画像データを記憶するプリントバッファ４２と、を有する。
【００２４】
ＲＯＭ３８は、ＣＰＵ３６が各種演算処理を行うために用いられる制御プログラムおよび制御データを記憶する。具体的には、ＲＯＭ３８は、制御プログラムとして、印刷装置２を制御するためのファームウェア４３を記憶する。
【００２５】
本印刷装置２では、プリンターコントローラー１３が、ＵＳＢインターフェース１１により受信したデータ（ＦＩＦＯバッファ２３に記憶されたデータ）をプリントバッファ４２に転送する「転送部」として機能する。具体的には、プリンターコントローラー１３は、データ転送モードとして、通常転送モードとＤＭＡ転送モードとを有し、これらの両転送モードを適宜切り替えて、データ転送を行う。詳細は後述するが、通常転送モードでは、受信割込み処理によって、ＦＩＦＯバッファ２３に記憶されたデータを受信バッファ４１に格納する。そして、コマンドタスクによって、格納したデータに対しコマンド解析を行うと共に、受信バッファ４１に格納したデータをプリントバッファ４２に展開する。一方、ＤＭＡ転送モードでは、ＦＩＦＯバッファ２３に記憶されたデータを、受信バッファ４１に格納することなく、直接プリントバッファ４２にＤＭＡ転送する。ここで図２を参照して、これらを実現するプリンターコントローラー１３の機能構成について説明する。
【００２６】
図２に示すように、プリンターコントローラー１３は、データ格納部５１と、コマンド解析部５２と、コマンド処理部５３と、モード切替部５４と、ＤＭＡ転送部５５と、割込み判定部５６と、データ送信停止部５７と、停止解除部６０と、判定禁止部５８と、印刷制御部５９と、上記の受信バッファ４１およびプリントバッファ４２と、を備える。データ格納部５１、コマンド解析部５２、コマンド処理部５３、モード切替部５４、割込み判定部５６、データ送信停止部５７、停止解除部６０、判定禁止部５８および印刷制御部５９は、ファームウェア４３を実行するＣＰＵ３６により構成される。一方、ＤＭＡ転送部５５は、ＤＭＡコントローラー３２により構成される。
【００２７】
データ格納部５１は、受信割込み処理において、ＦＩＦＯバッファ２３に記憶されたデータを受信バッファ４１に格納する。具体的には、データ格納部５１は、ＦＩＦＯバッファ２３に記憶されたデータを、１バイトずつ受信バッファ４１に転送し、受信バッファ４１に格納していく。
【００２８】
コマンド解析部５２は、コマンドタスクにおいて、受信バッファ４１に格納されたデータに対し、コマンド解析を行う。具体的には、受信バッファ４１に格納されたデータを順に精査して、いずれかのコマンドのヘッダー部を抽出し、抽出したヘッダー部を参照して、当該コマンドの種類およびデータ本体のデータサイズを判定する。また、コマンド解析部５２は、抽出したヘッダー部が、ＤＭＡ転送可能な画像印刷コマンドのヘッダー部であるか否かを判定する。すなわち、当該ヘッダー部のコマンドが、ＤＭＡ転送条件を満たすか否かを判定する。ＤＭＡ転送条件は、例えば、高速受信可能な通信デバイスが接続された状態にあること、スタンダードモードである（ページモードがデータを重ねることができる）こと、Ｘ方向（紙幅方向）の展開位置が８の倍数であること、残りの展開領域に展開イメージが入ること、ＸＹ方向（紙幅方向および紙長さ方向）の両方について拡大縮小が指定された状態にないこと等である。
【００２９】
コマンド処理部５３は、コマンド解析部５２による解析結果に基づき、コマンドの種類に応じたコマンド処理を行う。例えば、コマンドの種類が、文字印刷コマンドであると判定された場合には、データ本体の文字データに基づいて、文字印刷を行うための画像データを生成し、生成した画像データをプリントバッファ４２に展開する。また、コマンドの種類が、画像印刷コマンドであると判定された場合、ＤＭＡ転送不能な画像印刷コマンドであると判定されたときには、データ本体の画像データをプリントバッファ４２に展開する。また、ＤＭＡ転送可能な画像コマンドであると判定されたときには、ＤＭＡ転送部５５にＤＭＡ転送命令を出力して、ＤＭＡ転送を行わせる。
【００３０】
モード切替部５４は、データ転送モードを、通常転送モードとＤＭＡ転送モードとの間で切り替える処理を行う。具体的には、コマンド解析部５２により、受信したデータが、ＤＭＡ転送可能な画像印刷コマンドのヘッダー部であると判定された場合、データ転送モードを、通常転送モードからＤＭＡ転送モードを切り替えて、その旨をＵＳＢコントローラー２２に通知する。また、その画像印刷コマンドのデータ転送（ＤＭＡ転送）が終了したら、データ転送モードを、ＤＭＡ転送モードから通常転送モードに戻して（切り替えて）、その旨をＵＳＢコントローラー２２に通知する。ＵＳＢコントローラー２２は、モード切替の通知を受けると、これに対応して、ＦＩＦＯバッファ２３のエンドポイントの出力先を受信バッファ４１とプリントバッファ４２との間で切り替える。
【００３１】
ＤＭＡ転送部５５は、データ転送がＤＭＡ転送モードに切り替わった状態にある場合に、コマンド処理部５３からのＤＭＡ転送命令を受けて、ＦＩＦＯバッファ２３に記憶されたデータのＤＭＡ転送を行う。すなわち、ＦＩＦＯバッファ２３に記憶されたデータを、受信バッファ４１に格納することなく、直接プリントバッファ４２にデータ転送する。なお、本実施形態では、受信したデータが、ＤＭＡ転送可能な画像印刷コマンドのヘッダー部であると判定されたら、ＤＭＡ転送命令を出力する構成である。そのため、ＤＭＡ転送部５５は、当該ヘッダー部に続くデータ本体をＤＭＡ転送する役割を担う。
【００３２】
割込み判定部５６は、受信割込み処理において、受信したデータが、画像印刷コマンドのヘッダー部であるか否かを判定する。具体的には、１バイト単位で受信されていくデータを順に精査していき、受信したデータの組が、画像印刷コマンドのヘッダー部である場合、受信したデータが、画像印刷コマンドのヘッダー部であると判定する。
【００３３】
データ送信停止部５７は、受信割込み処理において、割込み判定部５６により、受信したデータが、画像印刷コマンドのヘッダー部であると判定された場合、その時点でホスト装置１にＢＵＳＹ出力信号を送信して、ホスト装置１によるデータ送信を一時停止させる。一方、停止解除部６０は、コマンドタスクにおいて、コマンド解析部５２によるＤＭＡ転送可能か否かの判定処理が終了したら、ホスト装置１にＢＵＳＹ解除信号を送信して、データ転送の一時停止を解除させる。
このように、データ送信停止部５７および停止解除部６０により、受信割込み処理において、画像印刷コマンドのヘッダー部を受信してから、コマンドタスクにおいて、ＤＭＡ転送可能か否かを判定するまでの間、ホスト装置１のデータ転送を停止しておくことで、ヘッダー部に続くデータ本体の一部が、データ格納部５１により受信バッファ４１に格納されるのを避けるようにする。これにより、データ本体の一部が、通常転送モードで処理せざるを得ない事態を避ける構成となる。
【００３４】
判定禁止部５８は、受信割込み処理における、割込み判定部５６による判定処理を禁止する。具体的には、受信割込み処理において、割込み判定部５６によって、受信したデータが、画像印刷コマンドのヘッダー部であると判定された場合、その時点から当該画像印刷コマンドのデータ転送が終了するまで、受信割込み処理での割込み判定部５６による判定を禁止する。すなわち、受信割込み処理での割込み判定部５６による判定を省略させる。
【００３５】
印刷制御部５９は、プリンターエンジン１２を制御し、プリントバッファ４２に記憶された画像データに基づいて、印刷媒体に対し印刷処理を行う。すなわち、印刷制御部５９は、プリントバッファ４２に転送された画像データをプリントバッファ４２から読み出し、読み出した画像データに基づいて、印刷処理を行う。なお、「印刷部」は、印刷制御部５９およびプリンターエンジン１２により構成される。
【００３６】
ここで図３および図４を参照して、プリンターコントローラー１３による受信割込み処理およびコマンドタスクについて説明する。
【００３７】
まず、図３を参照して、受信割込み処理について説明する。受信割込み処理は、データ転送モードが通常転送モードに切り替わった状態において、ＵＳＢインターフェース１１によりホスト装置１からデータを受信し、受信したデータをＦＩＦＯバッファ２３に記憶した時に実行する処理である。なお、上記したように、ホスト装置１からのデータは、１バイトずつ送信されるため、データを、１バイト分受信しＦＩＦＯバッファ２３に記憶する都度、受信割込み処理を実行する。また、受信割込み処理は、割込み処理であるため、コマンドタスクの実行中に、ホスト装置１からデータを受信した場合には、コマンドタスクを中断して実行される。
【００３８】
図３に示すように、受信割込み処理では、まず、データ格納部５１により、受信したデータ（ＦＩＦＯバッファ２３に記憶されたデータ）を、受信バッファ４１に格納する（Ｓ１）（データ格納ステップ）。すなわち、受信したデータを、ＦＩＦＯバッファ２３から受信バッファ４１に転送する。受信したデータを受信バッファ４１に格納したら、割込み判定部５６による判定が禁止された状態か否かを判定する（Ｓ２）。割込み判定部５６による判定が禁止された状態にあると判定された場合（Ｓ２：Ｙｅｓ）には、受信割込み処理を終了する。
【００３９】
割込み判定部５６による判定が禁止された状態にないと判定された場合（Ｓ２：Ｎｏ）には、割込み判定部５６により、受信したデータが、画像印刷コマンドのヘッダー部であるか否かを判定する（割込み判定ステップ）。具体的には、受信した１バイト単位のデータが、画像印刷コマンドのヘッダー部の一部を成すデータであるか否かを判定し（Ｓ３）、受信したデータが、画像印刷コマンドのヘッダー部の一部を成すデータであると判定された場合（Ｓ３：Ｙｅｓ）には、これを記憶バッファに記憶して（Ｓ４）、受信割込み処理を終了する。そして、複数回の受信割込み処理によって、受信したデータの組（記憶バッファに記憶したデータと、今回受信したデータとを合わせたもの）が、画像印刷コマンドのヘッダー部であると確定し（Ｓ５：Ｙｅｓ）、受信したデータ（の組）が、画像印刷コマンドのヘッダー部であると判定されたら、次の工程に移行する。なお、受信したデータが、画像印刷コマンドのヘッダー部の一部を成すデータでないと判定された場合（Ｓ３：Ｎｏ）には、記憶バッファ内のデータを消去（クリア）して（Ｓ６）、受信割込み処理を終了する。
【００４０】
受信したデータが、画像印刷コマンドのヘッダー部であると判定されたら、データ送信停止部５７により、ホスト装置１に対しＢＵＳＹ出力信号を送信して（Ｓ７）、ホスト装置１のデータ送信を一時停止させる（送信停止ステップ）。その後、判定禁止部５８により、割込み判定部５６による判定を禁止する（Ｓ８）。すなわち、割込み判定部５６による判定が禁止された状態に移行させる。これにより、受信割込み処理を終了する。
【００４１】
次に図４を参照して、コマンドタスクについて説明する。コマンドタスクは、コマンド解析部５２により、受信バッファ４１に記憶されたデータを精査していき、いずれかのコマンドのヘッダー部が抽出されたときに、その都度、実行する処理である。
【００４２】
図４に示すように、コマンドタスクでは、まず、コマンド解析部５２により、抽出したコマンドのヘッダー部を参照して、当該コマンドの種類およびデータ本体のデータサイズを判定する（Ｓ１１）。コマンドの種類およびデータ本体のデータサイズを判定したら、判定した種類に対応した処理を行う。ここでは、コマンドの種類が、画像印刷コマンドであると判定された場合（Ｓ１２：Ｂ）の処理のみ説明し、コマンドの種類が、文字印刷コマンドであると判定された場合（Ｓ１２：Ａ）や、コマンドの種類が、その他のコマンドであると判定された場合（Ｓ１２：Ｃ）については、説明を省略するものとする。
【００４３】
コマンドの種類が、画像印刷コマンドであると判定された場合（Ｓ１２：Ｂ）には、抽出したヘッダー部が、ＤＭＡ転送可能な画像印刷コマンドのヘッダー部であるか否かを判定する（Ｓ１３）（判定ステップ）。すなわち、当該画像印刷コマンドが、上記したＤＭＡ転送条件を満たすか否かを判定する。
【００４４】
判定の結果、抽出したヘッダー部が、ＤＭＡ転送不能な画像印刷コマンドのヘッダー部であると判定された場合（Ｓ１３：Ｎｏ）には、モード切替部５４により、データ転送モードを通常転送モードに維持すると共に、停止解除部６０により、ホスト装置１に対しＢＵＳＹ解除信号を送信して（Ｓ１４）、ホスト装置１によるデータ転送の一時停止を解除させる（送信停止解除ステップ）。これによって、抽出したヘッダー部に続く画像印刷コマンドのデータ本体が、ホスト装置１から印刷装置２に送信される。そして、当該データ本体が、ＵＳＢインターフェース１１を介し、受信割込み処理によって、受信バッファ４１に格納される。その後、コマンド処理部５３により、受信バッファ４１に記憶されたデータ本体を、プリントバッファ４２に展開する（Ｓ１５）。なお、この展開処理は、コマンド解析部５２により得られたデータサイズに達するまで、データを、受信バッファ４１からプリントバッファ４２に転送することで行われる。
【００４５】
一方、判定の結果、抽出したヘッダー部が、ＤＭＡ転送可能な画像印刷コマンドのヘッダー部であると判定された場合（Ｓ１３：Ｙｅｓ）には、モード切替部５４により、データ転送モードを、通常転送モードからＤＭＡ転送モードに切り替えて（Ｓ１６）（モード切替ステップ）、その旨をＵＳＢインターフェース１１に通知する。そして、停止解除部６０により、ホスト装置１に対しＢＵＳＹ解除信号を送信して（Ｓ１７）、ホスト装置１によるデータ送信の一時停止を解除しつつ（送信停止解除ステップ）、コマンド処理部５３により、ＤＭＡ転送部５５に対しＤＭＡ転送命令を出力する（Ｓ１８）。これによって、抽出したヘッダー部に続く画像印刷コマンドのデータ本体が、ホスト装置１から印刷装置２に送信される。これに対し、ＵＳＢインターフェース１１により、当該データ本体を受信しＦＩＦＯバッファ２３に順次記憶する。そして、ＤＭＡ転送命令を受けたＤＭＡ転送部５５により、データ本体を、ＦＩＦＯバッファ２３からプリントバッファ４２にＤＭＡ転送する（Ｓ１９）（ＤＭＡ転送ステップ）。すなわち、受信したデータ本体を、受信バッファ４１に格納することなく、直接プリントバッファ４２にデータ転送する。なお、この転送処理は、コマンド解析部５２により得られたデータサイズに達するまで、データを、ＦＩＦＯバッファ２３からプリントバッファ４２に転送することで行われる。
ＤＭＡ転送部５５によるＤＭＡ転送が終了したら、モード切替部５４により、データ転送モードを、ＤＭＡ転送モードから通常転送モードに切り替えて（Ｓ２０）、その旨をＵＳＢインターフェース１１に通知する。
【００４６】
いずれの方法で、プリントバッファ４２にデータ本体が転送されたら、判定禁止部５８により、割込み判定部５６による判定の禁止を解除する（Ｓ２１）。そして、印刷制御部５９により、プリンターエンジン１２を制御し、プリントバッファ４２に記憶されたデータ本体（画像データ）に基づいて、印刷媒体に対し画像印刷を行う（Ｓ２２）（印刷ステップ）。すなわち、プリントバッファ４２に記憶されたデータを読み出して、画像印刷を行う。なお、厳密には、上記データ転送を行いながら、プリントバッファ４２に順次記憶されていくデータ本体を、順次印刷していくことで、画像印刷を行う構成となる。これにより、コマンドタスクを終了する。
【００４７】
以上のような構成によれば、受信割込み処理において、受信したデータが画像印刷コマンドのヘッダー部であると判定された時点で、ホスト装置１によるデータ送信を一時停止させ、コマンド解析部５２による判定の後に当該一時停止を解除させる。これにより、画像印刷コマンドのヘッダー部を受信するタイミングと、当該ヘッダー部が、ＤＭＡ転送可能な画像印刷コマンドのヘッダー部であるか否かを判定するタイミングとのタイムラグの間、ホスト装置１によるデータ送信を停止させることができる。よって、当該タイムラグの間に、当該ヘッダー部に続くデータ本体の一部が受信バッファ４１に格納されてしまうことがない。これによって、ＤＭＡ転送可能な画像印刷コマンドのデータ本体の一部を通常転送モードで処理せざるを得ない事態を避けることができる。つまり、データ本体全体をＤＭＡ転送モードでデータ転送することができる。よって、データ転送をより高速化することができる。
また、印刷装置側の制御によって、これを実現することができるので、ホスト装置側の構成を複雑化させる必要がなく、また、ホスト装置側の構成（ソフトウェア）を変更することなく、データ転送を高速化することができる。
【００４８】
また、受信割込み処理において、受信したデータが画像印刷コマンドのヘッダー部であると判定された場合、当該画像印刷コマンドのデータ転送が終了するまで、割込み判定部５６による判定を禁止する構成であるため、画像印刷コマンドのデータ本体を受信していく時には、受信割込み処理における割込み判定部５６の判定が省略される。これによって、画像印刷コマンドのデータ転送を、より高速化することができる。
なお、本実施形態では、受信したデータが、ＤＭＡ転送可能な画像印刷コマンドのヘッダー部である場合、ＤＭＡ転送モードに移行し、受信割込み処理自体が行われない構成となる。そのため、受信したデータが、ＤＭＡ転送不能な画像印刷コマンドのヘッダー部である場合のみ、データ本体に対する割込み判定部５６の判定が省略される。
【００４９】
なお、上記実施形態においては、受信割込み処理において、受信したデータが、画像印刷コマンドのヘッダー部であるか否かを判定し、受信したデータが、画像印刷コマンドのヘッダー部であると判定された時点で、ホスト装置１によるデータ送信を一時停止させる構成としたが、これに限るものではない。例えば、受信割込み処理において、受信したデータが、ＤＭＡ転送可能な画像印刷コマンドのヘッダー部であるか否かを判定し、受信したデータが、ＤＭＡ転送可能な画像印刷コマンドのヘッダー部であると判定された時点で、ホスト装置１によるデータ送信を一時停止させる構成でも良い。
【符号の説明】
【００５０】
１：ホスト装置、  ２：印刷装置、  １２：プリンターエンジン、  ４１：受信バッファ、  ４２：プリントバッファ、  ５１：データ格納部、  ５２：コマンド解析部、  ５４：モード切替部、  ５５：ＤＭＡ転送部、  ５６：割込み判定部、  ５７：データ送信停止部、  ５８：判定禁止部、  ５９：印刷制御部、  ６０：停止解除部。
【図１】
0006503903.tif 000002
【図２】
0006503903.tif 000003
【図３】
0006503903.tif 000004
【図４】
0006503903.tif 000005