(57)【要約】【課題】ＵＢＳインタフェースのアイソクロナス転送を用いて高速に印刷データの転送を行う。【解決手段】印刷データを、ヘッダを付加してＵＳＢインタフェースで設定されたパケットサイズになるように分割し、そのパケットデータをコピーし、複数個同じデータのパケットを作る。パケットには番号を振る。データエラーのパケットは基本的には使わず正しく受信されたデータのみを繋げて印刷データとする。【選択図】　　　　図１
2004054504.tif 000002
【特許請求の範囲】
【請求項１】
ホストコンピュータとＵＳＢインタフェースで接続され、アイソクロナスプロトコルで印刷データを転送する印字制御装置において、
ａ．パケットに分割されたデータにパケット番号を付加し、同じデータが入っているパケットには同じパケット番号を振ること
ｂ．同じデータが入っているパケットを複数繰り返して出力すること
ｃ．印字制御装置からの繰り返し回数の指定に従って、繰り返す回数を決め、送信するデータを作成すること
ｄ．以上の印刷データをホストコンピュータから出力すること
ｅ．受信したデータをチェックし、データが正しく受信されたかどうかを確認すること
ｆ．正しく受信されたデータを接続して印刷データを作成すること
ｇ．繰り返されたデータがすべてエラーだった場合には、そのうちの１つのパケットのデータを使用して印刷データを作成すること
ｈ．データ転送でのデータエラーの確率を保持すること
ｉ．データエラーの確率に基づいて同じデータを繰り返す回数を変更すること
の上記ａないしｉを特徴とする印字制御装置。
【発明の詳細な説明】
【０００１】
【発明の属する技術分野】
本発明は、ＵＳＢインタフェースをデータ転送に使用する印字制御装置に関するものである。
【０００２】
【従来の技術】
従来、ＵＳＢのシリアルインタフェースのアイソクロナスプロトコルを用いて印刷データを転送することはなかった。
【０００３】
【発明が解決しようとする課題】
しかしながら上記従来例では、以下のような問題点があった。
【０００４】
バルク転送を使用すると、実際にいつデータが転送されるのか分からない。
【０００５】
アイソクロナス転送を使用すると、データエラーが発生しても再送要求ができない。
【０００６】
上記問題点を解決する為、プリンタがデータ転送に必用な転送レート以上のデータ転送レートを確保し、同じデータパケットを複数送出し、プリンタ側で受信データをチェックし、正しいデータをつなげて一つの印刷データとし、そのデータを使って印刷する印字制御装置の提供を目的とする。
【０００７】
【課題を解決するための手段】
本発明は下記構成を備えることにより上記課題を解決できた。
【０００８】
（１）ホストコンピュータとＵＳＢインタフェースで接続され、アイソクロナスプロトコルで印刷データを転送する印字制御装置において、
ａ．パケットに分割されたデータにパケット番号を付加し、同じデータが入っているパケットには同じパケット番号を振ること
ｂ．同じデータが入っているパケットを複数繰り返して出力すること
ｃ．印字制御装置からの繰り返し回数の指定に従って、繰り返す回数を決め、送信するデータを作成すること
ｄ．以上の印刷データをホストコンピュータから出力すること
ｅ．受信したデータをチェックし、データが正しく受信されたかどうかを確認すること
ｆ．正しく受信されたデータを接続して印刷データを作成すること
ｇ．繰り返されたデータがすべてエラーだった場合には、そのうちの１つのパケットのデータを使用して印刷データを作成すること
ｈ．データ転送でのデータエラーの確率を保持すること
ｉ．データエラーの確率に基づいて同じデータを繰り返す回数を変更すること
の上記ａないしｉを特徴とする印字制御装置。
【０００９】
【発明の実施の形態】
（第１の実施例）
図１は本発明における印字装置の構成を示した図である。同図において、１０１は印刷データを出力するホストコンピュータ、１０２は印字制御部、１０３は１０２の印字制御部全体の制御を行うＣＰＵ、１０４は１０２の印字制御部の各ブロックからのデータアクセスに対する制御を行うコントローラ部、１０５はＵＳＢインタフェース部、１０６はＣＰＵ１０３の動作プログラム及びフォントデータの入ったＲＯＭ、１０７はＣＰＵ１０３のワークメモリ、受信データを格納する為のバッファ、及び作成したビットマップデータを格納する為の領域からなるＲＡＭ、１０８は１０９の記録部と同期を取りビデオデータを出力するエンジンインタフェース部、１０９は実際に紙に印字出力する記録部である。
【００１０】
図２および図３を用いて、以下に一般的に行われるホストコンピュータとプリンタの動作の流れを説明する。
【００１１】
図２は本実施例におけるホストコンピュータ内のプリンタドライバソフトウエアの動作のフローチャートである。
【００１２】
図３は本実施例におけるＣＰＵ１０３の動作のフローチャートである。
【００１３】
１０１のホストコンピュータのアプリケーションソフトウエアにおいて印刷を指示すると、アプリケーションソフトウエアはホストコンピュータ１０１のＯＳに対して印刷データを作成し印刷を要求する。プリンタドライバソフトウエアはＯＳからの指示により印刷データを受け取り、プリンタが理解できるように印刷データを作成する。ＵＳＢインタフェースにおいてはコード情報を転送する為、データ転送プロトコルにはバルクモードが指定され、印刷データはパケットに分割されホストコンピュータ１０１より印字装置に出力される。
【００１４】
次に本実施例での動作を説明する。
【００１５】
先ず、印字装置が１０１のホストコンピュータに接続されると、１０２の印字制御装置は１０５のＵＳＢインタフェース部を介して１０１のホストコンピュータと通信を行い、使用するデータ転送のプロトコルをアイソクロナスで接続する。この時印字装置はホストコンピュータ１０１に必要とするデータ転送幅の２倍をデータ転送幅として報告する。
【００１６】
１０１のホストコンピュータのアプリケーションソフトウエアにおいて印刷が指示されると、アプリケーションソフトウエアはホストコンピュータ１０１のＯＳに対して印刷データを作成し印刷を要求する。プリンタドライバソフトウエアはＯＳからの指示により印刷データを受け取り、そのデータからビットマップデータを作成する。作成したビットマップデータをインタフェースで規定されたパケットサイズからヘッダ分減らしたサイズに分割し、そのパケットの先頭にパケット番号データ等のヘッダを追加する。そして、そのパケットと同じデータをコピーし、同じデータパケットを連続させた印刷データを作成する。作成された印字データは１０１のホストコンピュータより１０２の印字制御部の１０５ＵＳＢインタフェース部に送られる。１０５のＵＳＢインタフェース部で受信されたデータはＣＲＣによるチェックが行われる。１０３のＣＰＵはＣＲＣの結果を見、そして１０５のＵＳＢインタフェース部のバッファの先頭データを読み出す。先頭データはヘッダなのでこのパケットの番号を保持しておく。もし前のパケットのパケット番号と異なっていてかつデータエラーが発生していた場合には、１０３のＣＰＵは１０５のＵＳＢインタフェース部のバッファに蓄えられていたデータをすべて読み出し読み捨てる。そして次のパケットの受信データを１０５のＵＳＢインタフェース部のバッファから読み出しヘッダを取り除いて１０７のＲＡＭに転送する。一つ目のパケットが正しく受信されれば、１０３のＣＰＵは１０５のＵＳＢインタフェース部のバッファから読み出しヘッダを取り除いて１０７のＲＡＭに転送し、次のパケットの受信データを空読みする。できるだけ正しく受信されたパケットをヘッダのパケット番号に従って繋げることでもとのビットマップの印字データにする。受信されたデータ量とデータの転送量と印刷スピードからオーバーランしないだけのビットマップデータが１０７のＲＭＡに蓄えられたら、１０８のエンジンインタフェース部にビットマップデータのスタートアドレス等をセットして起動をかける。起動した１０８のエンジンインタフェース部は、１０７のＲＡＭからビットマップデータの読み出しを開始する。一方１０９の記録部に対し印刷開始を指示し、１０９からの同期信号に合わせてビットマップデータをビデオデータに変換して出力する。１０９の記録部では、１０８のエンジンインタフェース部から受信したビデオデータによりレーザダイオードを発行させ、印刷を行う。
【００１７】
（第２の実施例）
以下、第２の実施例についてその動作を説明する。
【００１８】
印字装置が過去にホストコンピュータ１０１からの印刷データの受信時にデータエラーが発生した回数を記憶しておき、同じデータのパケットを何回送ればエラーの発生割合をどのくらいにできるという確率から、パケットを繰り返す回数を決定する場合を以下に示す。
【００１９】
図４は本実施例におけるホストコンピュータ内のプリンタドライバソフトウエアの動作のフローチャート。
【００２０】
図５は本実施例におけるＣＰＵ１０３の動作のフローチャートである。
【００２１】
１０２の印字制御装置は過去に行ったデータ転送のエラー確率を保持しておく。例えば受信したパケット数に対するエラーの発生回数である。エラーの発生確率が高いシステム（環境）であった場合、同じパケットを２回繰り返しても未だ発生するようであれば、同じデータを３回送信できるデータ転送幅を１０１のホストコンピュータに要求する。
【００２２】
あとは第１の実施例と同様に実行する。
【００２３】
【発明の効果】
以上説明したように、プリンタがデータ転送に必用な転送レート以上のデータ転送レートを確保し、同じデータパケットを複数送出し、プリンタ側で受信データをチェックし、正しいデータをつなげて一つの印刷データとし、そのデータを使って印刷することにより、データ転送のスピードが確定できる為、必要とする印刷データの出力を高速に行うことができる。また、受信バッファの容量についても、十分なデータ転送レートが確保できれば少ないバッファで印刷が可能となる。
【図面の簡単な説明】
【図１】本発明における印字装置の構成を示した図
【図２】第１の実施例におけるホストコンピュータ内のプリンタドライバソフトウエアの動作のフローチャート
【図３】第１の実施例におけるＣＰＵの動作のフローチャート
【図４】第２の実施例におけるホストコンピュータ内のプリンタドライバソフトウエアの動作のフローチャート
【図５】第２の実施例におけるＣＰＵの動作のフローチャート
【符号の説明】
１０１　ホストコンピュータ
１０２　印字制御部
１０３　ＣＰＵ
１０４　コントローラ部
１０５　ＵＳＢインタフェース部
１０６　ＲＯＭ
１０７　ＲＡＭ
１０８　エンジンインタフェース部
１０９　記録部
【図１】
2004054504.tif 000003
【図２】
2004054504.tif 000004
【図３】
2004054504.tif 000005
【図４】
2004054504.tif 000006
【図５】
2004054504.tif 000007