(57)【特許請求の範囲】
【請求項１】
印刷装置と上位装置とを有し、前記印刷装置と前記上位装置との間で複数種類の転送方式のうちの１つにより印刷データまたは制御データの転送を行う印刷システムにおいて、
複数種類の転送方式のうちの所定の転送方式が実行可能であることを示すデータを前記上位装置と前記印刷装置とのいずれか一方から他方へ転送する転送手段と、
複数種類の転送方式のうちの所定の転送方式が実行可能であることを示すデータが前記転送手段により転送されるのを条件に、転送方式が前記所定の転送方式へ変更されることを予測し、当該予測に基づいて、前記上位装置と前記印刷装置とのいずれか一方が転送方式を前記所定の転送方式へ変更したことを認識するための解析を実行できるように準備する準備手段とを有することを特徴とする印刷システム。
【請求項２】
印刷装置と上位装置とを有し、前記印刷装置と前記上位装置との間で複数種類の転送方式のうちの１つにより印刷データまたは制御データの転送を行う印刷システムにおいて、
複数種類の転送方式のうちの所定の転送方式が実行可能であることを示すデータが前記印刷装置から前記上位装置へ転送された後、前記上位装置から転送されてくる印刷データまたは制御データが前記所定の転送方式によるものであるかを解析し始める解析手段と、
前記上位装置から転送されてくる印刷データまたは制御データが前記所定の転送方式による転送である場合、前記印刷装置の転送方式を前記所定の転送方式に変更する変更手段とを有することを特徴とする印刷システム。
【請求項３】
上位装置との間で複数種類の転送方式のうちの１つにより印刷データまたは制御データの転送を行い、前記上位装置からの印刷データを出力する印刷装置において、
複数種類の転送方式のうちの所定の転送方式が実行可能であることを示すデータを前記上位装置へ転送する転送手段と、
複数種類の転送方式のうちの所定の転送方式が実行可能であることを示すデータが前記転送手段により転送されるのを条件に、印刷データまたは制御データが前記所定の転送方式によって転送されることを認識するための解析を実行できるように準備する準備手段とを有することを特徴とする印刷装置。
【請求項４】
前記転送手段は、ＩＥＥＥ１２８４−１９９４で定義されている、上位装置から指示されるデバイスＩＤ要求に対して、デバイスＩＤデータを前記上位装置へ転送することを特徴とする請求項３記載の印刷装置。
【請求項５】
前記上位装置から指示されたデバイスＩＤ要求に対して返信するデバイスＩＤデータの中に特定のデータを含む場合は、前記準備手段は前記解析を実行できるように準備することを特徴とする請求項３或いは４記載の印刷装置。
【請求項６】
前記準備手段は、受信するデータ数の設定バイト数を設定し直す、或いは判断の決定を行うフラグの状態を変化させることを特徴とする請求項３乃至５のいずれかに記載の印刷装置。
【請求項７】
前記所定の転送方式は、パケットを使用した転送方式であることを特徴とする請求項３乃至６のいずれかに記載の印刷装置。
【請求項８】
前記準備手段による準備後、前記上位装置から転送されてくるデータが一定数になるまで待って、転送されてきたデータの解析をすることを特徴とする請求項３乃至７のいずれかに記載の印刷装置。
【請求項９】
前記一定数は、印刷に関する操作を行う操作手段により予め決定される、または前記上位装置から予め送られてくるコマンドに従って決定されることを特徴とする請求項８記載の印刷装置。
【請求項１０】
前記準備手段による準備後、前記上位装置からの印刷データまたは制御データの転送量が少なく、転送方式の変更が行われたか否かの判断が不可能な状態が一定時間続いた場合は、転送方式の変更をせず以前と同じ転送方式を使用することを特徴とする請求項８或いは９記載の印刷装置。
【請求項１１】
上位装置との間で複数種類の転送方式のうちの１つにより印刷データまたは制御データの転送を行う印刷装置において、
複数種類の転送方式のうちの所定の転送方式が実行可能であることを示すデータを前記上位装置へ転送した後、前記上位装置から転送されてくる印刷データまたは制御データが前記所定の転送方式によるものであるかを解析し始める解析手段と、
前記上位装置から転送されてくる印刷データまたは制御データが前記所定の転送方式による転送である場合、転送方式を前記所定の転送方式に変更する変更手段とを有することを特徴とする印刷装置。
【請求項１２】
前記上位装置からのデバイスＩＤ要求に応じて、前記所定の転送方式が実行可能であることを示すデータを前記上位装置へ転送する転送手段を有し、
前記解析手段は、前記データが前記転送手段により転送されるに応じて、前記上位装置から転送されてくる印刷データまたは制御データが前記所定の転送方式によるものであるかを解析し始めることを特徴とする請求項１１記載の印刷装置。
【請求項１３】
前記解析手段は、前記上位装置から転送されてくる印刷データまたは制御データが一定数になるまで待って、転送されてきた印刷データまたは制御データを解析することを特徴とする請求項１１或いは１２記載の印刷装置。
【請求項１４】
前記所定の転送方式はパケット転送方式であることを特徴とする請求項１１乃至１３のいずれかに記載の印刷装置。
【請求項１５】
装置間で複数種類の転送方式のうちの１つによりデータの転送を行うデータ転送方法であって、
複数種類の転送方式のうちの所定の転送方式が実行可能であることを示すデータを装置間で転送した後、転送されるデータが前記所定の転送方式によるものであるかを解析し始める解析ステップと、
転送されるデータが前記所定の転送方式による転送である場合、転送方式を前記所定の転送方式に変更する変更ステップとを有することを特徴とするデータ転送方法。
【請求項１６】
デバイスＩＤ要求に応じて、前記所定の転送方式が実行可能であることを示すデータを転送する転送ステップを有し、
前記解析ステップでは、前記データが前記転送ステップで転送されるに応じて、転送されるデータが前記所定の転送方式によるものであるかを解析し始めることを特徴とする請求項１５記載のデータ転送方法。
【請求項１７】
前記解析ステップでは、転送されるデータが一定数になるまで待って、転送されたデータを解析することを特徴とする請求項１５或いは１６記載のデータ転送方法。
【請求項１８】
装置間で複数種類の転送方式のうちの１つによりデータの転送を行うデータ転送方法であって、
複数種類の転送方式のうちの所定の転送方式が実行可能であることを示すデータを装置間で転送する転送ステップと、
複数種類の転送方式のうちの所定の転送方式が実行可能であることを示すデータが前記転送ステップで転送されるのを条件に、データが前記所定の転送方式によって転送されることを認識するための解析を実行できるように準備する準備ステップとを有することを特徴とするデータ転送方法。
【発明の詳細な説明】
【０００１】
本発明は、印刷装置とその上位装置とからなる印刷システムと、上位装置からの印刷データを出力する印刷装置と、装置間でデータの転送を行うデータ転送方法に関する。
【０００２】
【従来の技術】
従来、印刷装置とその上位装置とからなる印刷システムでは、少なくとも２種類以上の印刷データ転送方式を持つ場合、つまり、これらの転送方式を上位装置と印刷装置の間で使い分けて使用する場合に、上位装置又は印刷装置から転送されてくるデータを正常に受信するために、ほとんど全ての転送データに対して解析を行ない、転送方式が変更されていないかを監視するように制御していた。
【０００３】
【発明が解決しようとする課題】
しかしながら、上記従来例の様に、転送方式の変更を監視するための解析処理をほとんど全ての印刷データに対して実行するのは、実際の印刷処理とは関係ない所に印刷装置（又は印刷システム）の能力を投資することになり、印刷処理全体の効率が悪化していた。
【０００４】
本発明は上記従来の問題点に鑑み、転送方式の変更を監視するための処理を単純化して印刷処理全体の効率を上げることができる印刷システム、印刷装置及びデータ転送方法を提供することを目的とする。
【０００５】
【課題を解決するための手段】
上記目的を達成するために、本発明は、印刷装置と上位装置とを有し、前記印刷装置と前記上位装置との間で複数種類の転送方式のうちの１つにより印刷データまたは制御データの転送を行う印刷システムにおいて、複数種類の転送方式のうちの所定の転送方式が実行可能であることを示すデータを前記上位装置と前記印刷装置とのいずれか一方から他方へ転送する転送手段と、複数種類の転送方式のうちの所定の転送方式が実行可能であることを示すデータが前記転送手段により転送されるのを条件に、転送方式が前記所定の転送方式へ変更されることを予測し、当該予測に基づいて、前記上位装置と前記印刷装置とのいずれか一方が転送方式を前記所定の転送方式へ変更したことを認識するための解析を実行できるように準備する準備手段とを有することを特徴とする。
また、本発明は、印刷装置と上位装置とを有し、前記印刷装置と前記上位装置との間で複数種類の転送方式のうちの１つにより印刷データまたは制御データの転送を行う印刷システムにおいて、複数種類の転送方式のうちの所定の転送方式が実行可能であることを示すデータが前記印刷装置から前記上位装置へ転送された後、前記上位装置から転送されてくる印刷データまたは制御データが前記所定の転送方式によるものであるかを解析し始める解析手段と、前記上位装置から転送されてくる印刷データまたは制御データが前記所定の転送方式による転送である場合、前記印刷装置の転送方式を前記所定の転送方式に変更する変更手段とを有することを特徴とする。
また、本発明は、上位装置との間で複数種類の転送方式のうちの１つにより印刷データまたは制御データの転送を行い、前記上位装置からの印刷データを出力する印刷装置において、複数種類の転送方式のうちの所定の転送方式が実行可能であることを示すデータを前記上位装置へ転送する転送手段と、複数種類の転送方式のうちの所定の転送方式が実行可能であることを示すデータが前記転送手段により転送されるのを条件に、印刷データまたは制御データが前記所定の転送方式によって転送されることを認識するための解析を実行できるように準備する準備手段とを有することを特徴とする。
また、本発明は、上位装置との間で複数種類の転送方式のうちの１つにより印刷データまたは制御データの転送を行う印刷装置において、複数種類の転送方式のうちの所定の転送方式が実行可能であることを示すデータを前記上位装置へ転送した後、前記上位装置から転送されてくる印刷データまたは制御データが前記所定の転送方式によるものであるかを解析し始める解析手段と、前記上位装置から転送されてくる印刷データまたは制御データが前記所定の転送方式による転送である場合、転送方式を前記所定の転送方式に変更する変更手段とを有することを特徴とする。
また、本発明は、装置間で複数種類の転送方式のうちの１つによりデータの転送を行うデータ転送方法であって、複数種類の転送方式のうちの所定の転送方式が実行可能であることを示すデータを装置間で転送した後、転送されるデータが前記所定の転送方式によるものであるかを解析し始める解析ステップと、転送されるデータが前記所定の転送方式による転送である場合、転送方式を前記所定の転送方式に変更する変更ステップとを有することを特徴とする。
また、本発明は、装置間で複数種類の転送方式のうちの１つによりデータの転送を行うデータ転送方法であって、複数種類の転送方式のうちの所定の転送方式が実行可能であることを示すデータを装置間で転送する転送ステップと、複数種類の転送方式のうちの所定の転送方式が実行可能であることを示すデータが前記転送ステップで転送されるのを条件に、データが前記所定の転送方式によって転送されることを認識するための解析を実行できるように準備する準備ステップとを有することを特徴とする。
【００３７】
【発明の実施の形態】
以下、図面を参照して本発明の実施の形態を説明する。
【００３８】
＜第１実施形態＞
図１は、本発明の第１実施形態に係る印刷システムの概略構成を示すブロック図、及び図２は、印刷データの流れから見た印刷装置内部のブロック図である。また図３は、本実施形態に適用されるレーザービームプリンタ（以下「ＬＢＰ」と記述）の内部構造を示す断面図である。
【００３９】
［ＬＢＰの構成］
まず、本実施形態を適用するに好適なＬＢＰの構成について図３を参照しながら説明する。尚、本実施形態を適用するプリンタは、ＬＢＰに限られるものではなく、他のプリント方式のプリンタ（印刷装置）でもよいことは言うまでもない。
【００４０】
このＬＢＰは、不図示のデータ源から文字パターンの登録や定型書式（フォームデータ）などの登録が行える。同図において、１０００はＬＢＰ本体であり、外部に接続されている上位装置（ホストコンピュータ等）から供給される文字情報（文字コード）やフォーム情報あるいはマクロ命令などを入力して記憶するとともに、それらの情報に従って対応する文字パターンやフォームパターンなどを作成し、記録媒体である記録紙上に像を形成する。
【００４１】
１０１２は、操作のためのスイッチおよびＬＥＤ表示器などが配されている操作部、１００１はＬＢＰ１０００全体の制御およびホストコンピュータから供給される文字情報などを解析するプリンタ制御ユニットである。この制御ユニット１００１は、主に文字情報を対応する文字パターンのビデオ信号に変換してレーザドライバ１００２に出力する。レーザドライバ１００２は半導体レーザ１００３を駆動するための回路であり、入力されたビデオ信号に応じて半導体レーザ１００３から発射されるレーザ光１００４をオン／オフ切り替えする。
【００４２】
レーザ１００４は、回転多面鏡１００５で左右方向に振られ静電ドラム１００６上を走査する。これにより、静電ドラム１００６上には文字パターンの静電潜像が形成される。この潜像は、静電ドラム１００６周囲の現像ユニット１００７により現像された後、記録紙に転送される。この記録紙にはカットシートを用い、カットシート記録紙は、ＬＢＰ１０００に装着した用紙カセット１００８に収納され、給紙ローラ１００９および搬送ローラ１０１０と１０１１とにより装置内に取り込まれて、静電ドラム１００６に供給される。
【００４３】
［印刷装置と上位装置の構成］
次に、図１を参照しつつ、本発明の実施形態に係る印刷装置と上位装置の構成を説明する。
【００４４】
ここでは、ＬＢＰ（図３）を例にして説明する。なお、本発明の機能が実行されるのであれば、単体の機器であっても、複数の機器からなるシステムであっても、ＬＡＮ等のネットワークを介して処理が行われるシステムであっても本発明を適用できることは言うまでもない。
【００４５】
図１において、３０００はホストコンピュータである。このホストコンピュータ３０００は、ＲＯＭ１０３のプログラム用ＲＯＭに記憶された文書処理プログラム等に基づいて図形、イメージ、文字、表（表計算等を含む）等が混在した文書処理を実行するＣＰＵ１０１を備え、システムバス１０４に接続される各デバイスをＣＰＵ１０１が総括的に制御する。また、このＲＯＭ１０３のプログラム用ＲＯＭには、ＣＰＵ１０１の制御プログラム等を記憶し、ＲＯＭ１０３のフォント用ＲＯＭには上記文書処理の際に使用するフォントデータ等を記憶し、ＲＯＭ３のデータ用ＲＯＭは上記文書処理等を行う際に使用する各種データを記憶する。
【００４６】
１０２はＲＡＭで、ＣＰＵ１０１の主メモリ、ワークエリア等として機能する。１０５はキーボードコントローラ（ＫＢＣ）で、キーボード１０９や不図示のポインティングデバイスからのキー入力を制御する。１０６はＣＲＴコントローラ（ＣＲＴＣ）で、ＣＲＴディスプレイ（ＣＲＴ）１１０の表示を制御する。１０７はメモリコントローラ（ＭＣ）で、ブートプログラム、種々のアプリケーション、フォントデータ、ユーザファイル、編集ファイル等を記憶するハードディスク（ＨＤ）、フロッピーディスク（ＦＤ）等の外部メモリ１１１とのアクセスを制御する。
【００４７】
１０８はプリンタコントローラ（ＰＲＴＣ）で、所定の双方向性インタフェース１０２１を介してプリンタ１０００に接続されて、プリンタ１０００との通信制御処理を実行する。なお、ＣＰＵ１０１は、例えばＲＡＭ１０２上に設定された表示情報ＲＡＭへのアウトラインフォントの展開（ラスタライズ）処理を実行し、ＣＲＴ１１０上でのＷＹＳＩＷＹＧを可能としている。また、ＣＰＵ１０１は、ＣＲＴ１１０上の不図示のマウスカーソル等で指示されたコマンドに基づいて登録された種々のウインドウを開き、種々のデータ処理を実行する。
【００４８】
プリンタ１０００において、１１２はプリンタＣＰＵで、ＲＯＭ１１３のプログラム用ＲＯＭに記憶された制御プログラム等、或いは外部メモリ１１４に記憶された制御プログラム等に基づいてシステムバス１１５に接続される各種のデバイスとのアクセスを総括的に制御し、印刷部インタフェース１１６を介して接続される印刷部（エンジン）１１７に出力情報としての画像信号を出力する。
【００４９】
ＣＰＵ１１２の内部（または図示しない外部）にタイマーなどの時間管理手段も持っている。また、このＲＯＭ１１３のプログラムＲＯＭには、実施形態のフローチャート（後述する）で示されるようなＣＰＵ１１２の制御プログラム等を記憶しても良い。
【００５０】
ＲＯＭ１１３のフォント用ＲＯＭには、上記出力情報を生成する際に使用するフォントデータ等を記憶し、ＲＯＭ１１３のデータ用ＲＯＭにはハードディスク等の外部メモリ１１４が無いプリンタの場合には、ホストコンピュータ上で利用される情報等を記憶している。ＣＰＵ１１２は、入力部１１８を介してホストコンピュータとの通信処理が可能となっており、プリンタ内の情報等をホストコンピュータ３０００に通知可能に構成されている。
【００５１】
１１９はＣＰＵ１１２の主メモリ、ワークエリア等として機能するＲＡＭで、図示しない増設ポートに接続されるオプションＲＡＭによりメモリ容量を拡張することができるように構成されている。なお、ＲＡＭ１１９は、出力情報展開領域、環境データ格納領域、ＮＶＲＡＭ等に用いられる。前述したハードディスク（ＨＤ）、ＩＣカード等の外部メモリ１１４は、メモリコントローラ（ＭＣ）１２０によりアクセスを制御される。外部メモリ１１４は、オプションとして接続され、フォントデータ、エミュレーションプログラム、フォームデータ等を記憶する。
【００５２】
また、１１８は前述した操作パネルで操作のためのスイッチおよびＬＥＤ表示器等等が配されている。また、前述した外部メモリは１個に限らず、少なくとも１個以上備え、内蔵フォントに加えてオプションフォントカード、言語系の異なるプリンタ制御言語を解釈するプログラムを格納した外部メモリを複数接続できるように構成されていても良い。さらに、図示しないＮＶＲＡＭを有し、操作パネル１０１２からのプリンタモード設定情報を記憶するようにしても良い。
【００５３】
［印刷装置の内部構成］
次に、図２を参照しつつ本発明における印刷データの流れから見た印刷装置内部構成を説明する。
【００５４】
上位装置３０００から転送されてきた印刷データは、入力部１１８を経由して受信バッファ１３００へ蓄積される。その後、受信バッファ１３００より、解析部１３０１へ受け渡され、解析後、展開部１３０２へ転送される。展開部１３０２が、展開用メモリ１３０３へ印刷データを展開し終ると、転写部１３０４が印刷部１／Ｆ１１６を経由して印刷部１１７へデータを転送して記録媒体に記録する。尚、展開用メモリ１３０３はＲＡＭ１１９の一部であっても良い。
【００５５】
［２種類の転送方式］
次に、本実施形態で適用する印刷（制御）データの２種類の転送方式について、図４（ａ），（ｂ），（ｃ）を参照して説明する。
【００５６】
図４（ａ）に示す第１の転送方式は、印刷（制御）データの継り（連続性）について何ら制限を設けないものである。例えば全部で１００バイトの印刷（制御）データがあった場合に、上位装置から印刷装置に対してそれが全部で１００バイトであることは一切知らされない。どのようなタイミングで何バイトのデータが転送されてくるか印刷装置には分からない。
【００５７】
図４（ｂ）に示す第２の転送方式は、印刷（制御）データを何バイトかの塊として転送するものである。実際に必要な印刷（制御）データの他にへッダと呼ばれる、印刷（制御）データの塊を管理するデータを設け、そのへッダ部分にいくつかの情報を持たせることで印刷（制御）データを何バイトかの塊とすることができる。故に上位装置から印刷装置へ転送されるデータは、必ずヘッダ→印刷（制御）データの順番に転送される。また、上記へッダ部分とそれに続く印刷（制御）データの何バイトかの塊を、まとめてパケットと呼ぶ。
【００５８】
例えば、全部で１００バイトの印刷（制御）データがあった場合には、ヘッダ部分にはこれから１００バイトのデータが転送されることが記述されており、ヘッダ部分を受信した印刷装置はその後１００バイトの印刷（制御）データが転送されてくることが分かる。この例の場合パケットの大きさはへッダのバイト数＋１００バイトである。
【００５９】
まず、本実施形態においては、便宜上、へッダの大きさを６バイトの固定長とした場合を説明する。へッダの内容は図４（ｃ）に示す。本実施形態で使用されるへッダにおいて、１，２，５，６番目のバイトデータにはパケット転送方式における制御データが入っている、また３，４番目のバイトデータはへッダに続いて転送されるデータ数が入っている（前記データ数はパケットの６バイト分も含む場合もあるが、それは個々のパケット方式によって異なる）。
【００６０】
また、上記２つの転送方式のデータがやりとりされる部分、すなわち本実施形態におけるインターフェイス１２１、プリンタコントローラ（ＰＲＴＣ）１０８及び入力部１１８（図１）が、以下の２つの技術、セントロニクスインターフェイス（ＩＥＥＥ１２８４）とＩＥＥＥ１２８４．４等から構成されている場合も説明されるので、それぞれの技術の概要についてもここで説明しておく。
【００６１】
［セントロニクスインターフェイスの概略］
セントロニクスインターフェイス（以下、セントロ）は、ホストコンピュータ（以下、ホスト）からプリンタへデータの転送を行なう主なインターフェイスの１つである。米国セントロニクス社が自社のプリンタ用に開発したコンピュータからプリンタヘデータを送るための規格で、安価で高速のデータを送ることができをパソコン（ＰＣ）からプリンタへのデータ送信手段として広く普及しているが、標準規格化はされていない。ホストとプリンタ毎に異なる多くのバリエーションがあるが、基本的には似ている。基本となる制御は、３つの信号線（DATA STROBE、ＡCK、ＢUSY ）で行なう。後述のニブルモード、バイトモード、ＥＣＰモードなどに対して、本転送方式をコンパチビリティモードと呼ぶ。
【００６２】
コンパチビリティモードについて、より詳しく説明する。前記のように多くのバリエーションがあるため、ここで全てを説明することはできないので、キヤノンのＬＢＰ−７３０を例として用いることにする。
【００６３】
まず、図５にセントロのコネクタのピン配置を示す。３６個のピンが配置されている。図中の数字は、各ピンの番号である。各ピンがそれぞれ１つの信号線に対応している。例えば、ピン番号１のピン（単に１ピンと記す）は、DATA STROBEという信号線、という具合であり、以下に具体的に説明する。
【００６４】
１ピン（DATA STROBE）は、定常状態はＨＩＧＨであり、ＬＯＷになった時にプリンタがＤＡＴＡ１〜ＤＡＴＡ８の状態を読み込む。
【００６５】
２〜９ピン（DATA１〜8 ）は、ホストから送られてくるデータの第０ビットから第７ビット目の情報を示す。ＨＩＧＨはデータが１であり、ＬＯＷはデータが０であることを示す。定常状態は不定であり、DATA STROBEがＬＯＷの時のみ有効である。
【００６６】
１０ピン（ACK ）は、定常状態はＨＩＧＨであり、１バイト受信完了し、次の１バイトを受信できる状態になった時と、受信バッファに空きがある状態でオフライン状態からオンライン状態に移行した時に、ＬＯＷパルスを発行する。
【００６７】
１１ピン（BUSY）は、プリンタがホストコンピュータからのデータを受信できるかどうかを示す。ＬＯＷは受信可能状態を示し、ＨＩＧＨは受信不可能状態を示す。オフライン状態になった時と、エラーが発生している時と、１バイト受信したが、まだ次の１バイトを受信できない状態の時と、受信バッファに空きが無い状態の時とに、ＨＩＧＨになる。
【００６８】
１２ピン（PE）は、プリンタにエラーが発生している時にＨＩＧＨになる。それ以外の状態ではＬＯＷである。
【００６９】
１３ピン（SELECT）は、プリンタがオンライン状態にある時にＨＩＧＨになる。それ以外の状態ではＬＯＷである。
【００７０】
１４ピン（AUTO FD）は未使用、１５ピン（AUX OUT1 ）は常時ＨＩＧＨ、１６ピン（0V）はプリンタのグランドレベル、１７ピン（Frame GND）はプリンタのフレームグランド、１８ピン（+5V ）は常時ＨＩＧＨ、１９〜３０ピン（GND ）はグランドである。
【００７１】
３１ピン（1NIT）は、通常ＨＩＧＨを保たせるが、ＬＯＷにすることでインプットプライム処理を行なう。３２ピン（FAULT ）は、プリンタがオンライン状態にある時にＨＩＧＨになる。それ以外の状態ではＬＯＷである。
【００７２】
３３ピン（AUX OUT2 ）は常時ＬＯＷ、３４ピン（AUX OUT3 ）は常時ＬＯＷ、３５ピン（AUX OUT4 ）は常時ＨＩＧＨ、３６ピン（SELECT IN）は未使用である。
【００７３】
コンパチビリティモードにおいて、主に使用されるのは１ピンから１１ピン、すなわち、DATA STROBE 、DATA1 、DATA2 、DATA3 、DATA4 、DATA5 、DATA6 、DATA7 、DATA8 、ACK 、BUSYの各信号線である。コンパチビリティモードのハンドシェークを図６に示す。これは、１バイトのデータを転送する例である。
【００７４】
［ＩＥＥＥ１２８４の概略］
このコンパチビリティモードは、ホストからプリンタへの片方向のみのデータ転送しかできず、プリンタからホストへのデータ転送はできないという欠点があった。そこで、このプリンタからホストへのデータ転送できないという点を改良するため、コンパチビリティモードの上位互換として、セントロ双方向の通信ハンドシェークがＩＥＥＥにより標準規格化された（ＩＥＥＥ１２８４−１９９４）。
【００７５】
このＩＥＥＥ１２８４−１９９４は、前で説明したコンパチビリティモード
（ホストからプリンタヘデータを転送するための従来からあるハンドシェーク）に加え、さらに新たにニブルモード、バイトモード、ＥＣＰモードなど、複数の通信モードを追加して規定している。これらの新たに追加されたモードにも、コンパチビリティモードと同じ形状のコネクタ、ケーブルを使用することができる。
【００７６】
ニブルモードは、プリンタからホストへのデータ転送を行なうためのモードで、前記コンパチビリティモードと交互に使用することによって、ホスト−プリンタ間の双方向通信が実現できる。すなわち、ホストからプリンタへの送信はコンパチビリティモードで行ない、プリンタからホストへの送信はニブルモードで行なうことで、双方向通信を行なうことができる。
【００７７】
ニブルモードでは、ACK とAUTO FDを使って制御を行ない、データはBUSY、PE、SELECT、FAULT の４つの信号線にセットする。データの１バイトを、４ビットずつに分け、まず下位４ビットを送って次に上位４ビットを送り、８ビット（１バイト）転送を実現している。なお、FAULT は、特定のタイミングでは、ホストへ送るデータを準備できているかどうかをプリンタが示すためにも使われる。
【００７８】
コンパチビリティモードにおいて、ホストのみが制御していた信号線DATA１,DATA2,…,DATA8を使用しないでハンドシェークする。これらのDATA１,DATA2,…,DATA8のことをデータバスと呼ぶ。ニブルモードでは、データバスを使わないので、ホスト側のハードの対応の必要がない。そのため、比較的容易に実装が可能である。バイトモードも、ニブルモード同様にプリンタからホストへの通信を行なうためのモードで、前記コンパチビリティモードと交互に使用することによって、ホストプリンタ間の双方向通信が実現できる。すなわち、ホストからプリンタへの送信はコンパチビリティモードで行ない、プリンタからホストへの送信はバイトモードで行なうことで、双方向通信を行なうことができる。
【００７９】
バイトモードでは、STROBE、ACK 、BUSY、PE、AUTO FD、FAULT で制御を行ない、データは、データバス（DATA１、DATA２、・・・、DATA8)にセットする。ニブルモードと比較した場合、１バイト（８ビット）のデータを同時に送るため効率が良いが、データバスをプリンタ側が制御するので、ホスト側のハードの対応が必要となる。
【００８０】
ＥＣＰモードは、ホストからプリンタへの通信とプリンタからホストへの通信の両方を行なうためのモードである。内部的には、フォーワードフェーズ（Ｆｏｔｗａｒｄ  Ｐｈａｓｅ：ホストからプリンタ）と、リバースフェーズ（Ｒｅｖｅｒｓｅ  Ｐｈａｓｅ：プリンタからホスト）とを切替えることにより、同じＥＣＰモード内で、双方向のデータ転送を可能としている。
【００８１】
ＥＣＰモードでは、STROBE、ACK 、BUSY、AUTO FD 、INIT、FAULT 、PEを使って制御を行ない、データはデータバスにセットする。データバスをプリンタ側が制御するので、ホスト側のハードの対応が必要となる。１つのモード内で、双方向のデータ転送が可能であるので、モード間を移行するオーバヘッドが少なくて済むことと、ＥＣＰのフォーワード転送のハンドシェークは、コンパチビリティモードのハンドシェークに比べて、転送速度が高速化できるように考慮されていることが、メリットである。
【００８２】
［ＩＥＥＥ１２８４．４の概要］
上で説明されたＩＥＥＥ１２８４を使ったデータ転送（またはその他のインターフェイス）を使い、２つの機器（例えば上位装置と印刷装置）の間で、クレジットという概念を利用したフロー制御と、同時に複数個の情報（例えばデータと制御情報）をやりとりするための多重化（マルチチャネル化）の２つを主に提供するための制御がＩＥＥＥ１２８４．４であるといえる。
【００８３】
また、上位装置及び印刷装置の内部処理においてＩＥＥＥ１２８４．４の制御が位置するのは、転送データを使って印刷を行なう部分の処理（通称アプリケーション）と実際のデータ転送部分であるＩＥＥＥ１２８４の中間部分である。その関係を表す概念図を図７に示す。
【００８４】
次に、ＩＥＥＥ１２８４．４で扱うデータの構成について説明する。ＩＥＥＥ１２８４．４で扱うデータは、必ず何バイトかの塊を一つの単位としており、それをパケットと呼んでいる。パケットの構造は図８に示す様に定義されている。それは、６バイトのヘッダとそれに続くデータから構成されている。
【００８５】
更にヘッダの部分を詳しく見ると、第１バイト目は、プライマリィ・ソケット（Ｐｒｉｍａｒｙ  Ｓｏｃｋｅｔ）ＩＤ（以下、ＰＳＩＤと記す）であり、後述するＩＥＥＥ１２８４．４の制御の初期化を開始した側の装置のソケット（Ｓｏｃｋｅｔ）ＩＤを表している（ソケットＩＤについても後述）。
【００８６】
第２バイト目は、セコンダリィ・ソケット（Ｓｅｃｏｎｄａｒｙ  Ｓｏｃｋｅｔ）ＩＤ（以下、ＳＳＩＤと記す）であり、前記初期化を開始した側の装置に対してもう一方の装置のソケットＩＤを表している。
【００８７】
第３及び第４バイト目は、ヘッダ６バイトを含めたパケット全体のサイズを表している。例えば１０バイトのデータを含むパケットの場合はここには１６（ヘッダ６バイト＋データ１０バイト）という値が入ることになる。比較例としてパケット化されたデータとパケット化されていないデータを同時に表した図を図９（ａ），（ｂ）に示す。この図９（ａ），（ｂ）は、文字データａ，ｂ，ｃ，ｄ，ｅ，ｆ，ｇ，ｈ，ｉ，ｊの１０文字（仮に１０バイト）のデータを転送する場合を示し、同図（ａ）は、パケット化されたデータを示し、先頭のヘッダ（６バイト）が表す情報を元に１６バイトの塊となっている。同図（ｂ）は、パケット化されないデータを示し、各々のデータの継りは全くない。また、データが０バイトのパケットの時はへッダの部分のみの６バイトを表す値（６）が入る。但し実際の内容は１６進数で表記されるので上記１６と６はそれぞれ０ｘ００１０、０ｘ０００６と表される（１６進数の場合、通常「０ｘ」の表記で始まり、１バイトが２桁で表記される）。
【００８８】
第５バイト目は、クレジット（Ｃｒｅｄｉｔ）を表す（クレジットについても後述）。第６バイト目は、コントロール（Ｃｏｎｔｒｏｌ）と呼ばれる制御データを表す。本１バイトの中の１ビット（１バイトは８ビット）が、普通のパケットであるか否か（普通のパケットの場合０で表記）を表しており、ほとんどの場合が普通のパケットなので０となっている。残りの７ビットは予約領域であり、現時点では使われていない（０で表記される）。故に、本バイトは通常０ｘ００である。
【００８９】
データ部分は、上位装置及び印刷装置それぞれのアプリケーションで作られた転送データ（印刷データや制御データ）、又は後述するＩＥＥＥ１２８４．４における制御コマンドが入ることになる。
【００９０】
［ソケットＩＤの説明］
次にソケットＩＤについて説明する。
【００９１】
マルチチャネル化は、１つのインターフェイス（例えばＩＥＥＥ１２８４）で接続される２つの装置の中にある複数の処理（主にアプリケーション部分の処理）が、お互いに自分の相手（もう一方の装置内の処理）を識別して、それぞれ独立にデータのやりとりを実行することである。それを実行するために、装置内の各々の処理につける個別の番号がソケットＩＤである。
【００９２】
続いて、ソケットＩＤの概念を説明する。例えば、上位装置のアプリケーションに２つの処理（処理Ａ、処理Ｂ）があり、その各々に対し印刷装置のアプリケーションに２つの処理（処理Ａに対して処理ａ、処理Ｂに対して処理ｂ）があった場合において、ＰＳＩＤを処理Ａ＝０ｘ１０、処理Ｂ＝０ｘ２０、ＳＳＩＤを処理ａ＝０ｘ１０、処理ｂ＝０ｘ２０としておく。そして、処理Ａがデータ（「あ」、「い」）を送る時、ＩＥＥＥ１２８４．４の制御でパケットのＰＳＩＤ、ＳＳＩＤを０ｘ１０、０ｘ１０、処理Ｂがデータ（「か」、「き」）を送る時、同様にＰＳＩＰ、ＳＳＩＤを０ｘ２０、０ｘ２０とすることにより、送信されたパケットがどの処理から、どの処理へ転送されたかを認識することができ、確実に目的の処理へデータが転送され、論理的に複数のチャネルを使った事になる（マルチチャネル化）。
【００９３】
図１０〜図１４は、データがそれぞれの処理を経由して上位装置側の複数の
（図では２つの）アプリケーションから、印刷装置側の目的とする複数のアプリケーション（こちらも図では２つ）へ独立して転送される様子を順番に表している。
【００９４】
図１０は、上位装置側のアプリケーションに２つの処理（処理Ａ、Ｂ）があり転送したいデータ（処理Ａ＝「あ」、「い」）」、処理Ｂ＝「か」、「き」）をそれぞれ持っている所を表している。
【００９５】
図１１は、上位装置側のＩＥＥＥ１２８４．４の処理でパケットが作られ、それぞれのパケットには前記ソケットＩＤが付けられた様子を表している。なお、パケットがどの様な手順で転送されるかは後述する。
【００９６】
図１２は、パケットにされたデータがインターフェイスの処理（ＩＥＥＥ１２８４の処理）を経由して上位装置から印刷装置へ転送されている様子を表している。図に示している様にパケットが転送される順番は特に規定されていない、図においては４つのパケットが、処理Ａ（「あ」のデータを持ったパケット）、処理Ｂ（「か」のデータを持ったパケット）、処理Ａの２つ目（い）」のデータを持ったパケット、処理Ｂの２つ目（「き」のデータを持ったパケット）の順番で転送されている。
【００９７】
図１３は、印刷装置へ転送されたパケットを印刷装置側のＩＥＥＥ１２８４．４が受け取り、パケットから抜き出したデータをソケットＩＤに従って各々のアプリケーションへ渡している所を表している。図１４は、その結果を示すもので、印刷装置内の目的のアプリケーションの処理（処理ａ、ｂ）へデータが渡される様子を表している。
【００９８】
なお、上記説明とは逆方向（印刷装置の処理から上位装置の処理へ）の転送についても同様であることはいうまでもない。
【００９９】
また、ソケットＩＤの０ｘ００（ＰＳＩＤ、ＳＳＩＤ共に０ｘ００）の場合はＩＥＥＥ１２８４．４の処理を実行するために必要なコマンド（Ｃｏｍｍａｎｄ）とリプライ・パケット（Ｒｅｐｌｙ  Ｐａｃｋｅｔ：後述する）を転送するためだけに使われる。
【０１００】
［ＩＥＥＥ１２８４．４における基本的な制御の手順］
次に、ＩＥＥＥ１２８４．４における基本的な制御の手順（処理の流れ）を図１５、図１６及び図１７に示すフローチャートを使って説明する。
【０１０１】
まず、ＩＥＥＥ１２８４．４の制御を開始したい装置が、もう一方の装置に対してイニット・コマンド・パケット（Ｉｎｉｔ  Ｃｏｍｍａｎｄ  Ｐａｃｋｅｔ）を発行する（ステップＳ１０１）。なお、通常、上位装置が印刷装置に対して発行するので、これ以後、イニット・コマンド・パケットを発行した方を上位装置、またもう一方を印刷装置と呼ぶことにする。イニット・コマンド・パケットは図１８に示すデータ構造であり、クレジットの部分以外は事実上固定データとなる。イニット・コマンド・パケットを受けとった印刷装置は、ＩＥＥＥ１２８４．４の制御を開始できるかの各種判断を行ない（ステップＳ１０２）、その結果に応じたイニット・リプライ・パケット（Ｉｎｉｔ  Ｒｅｐｌｙ  Ｐａｃｋｅｔ）を作成し（ステップＳ１０３，Ｓ１０４）、かつＩＥＥＥ１２８４．４の制御を開始できるのであれば、それに備えた初期化も実行する。
【０１０２】
そして、上位装置に対してイニット・リプライ・パケットを返す（ステップＳ１０５）。イニット・リプライ・パケットの構造は図１９に示す。この図１９に示すように、イニット・リプライ・パケットには、正常にＩＥＥＥ１２８４．４の処理を開始できるか、何らかの理由により開始できないかが含まれており（Ｒｅｓｕｌｔデータ）、それを見て上位装置側は、ＩＥＥＥ１２８４．４の処理を継続するか判断する（ステップＳ１０６）。
【０１０３】
正常に処理が継続できるなら、上位装置は続いてオープン・チャネル・コマンド・パケット（Ｏｐｅｎ  Ｃｈａｎｎｅｌ  Ｃｏｍｍａｎｄ  Ｐａｃｋｅｔ）を発行する（ステップＳ１０７）。そうでない場合は再度イニット・コマンド・パケットを印刷装置へ対して転送するか、ＩＥＥＥ１２８４．４による制御をあきらめる（処理Ｐ１）。オープン・チャネル・コマンド・パケットの構造は図２０に示す。
【０１０４】
本パケットが印刷装置へ受信されると、印刷装置は、パケットの中のパラメータの一つであるセコンダリィ・ソケットＩＤの値が自分が持っているＳＳＩＤであるか確認する（ステップＳ１０８）。自分が持っている（＝オープン可能な）ＳＳＩＤであるならば、チャネルを確立（オープン）することになる。
【０１０５】
また、その時のソケットＩＤ（ＰＳＩＤ、ＳＳＩＤ）の組み合わせにより、オープンしたチャネルを識別することが可能となる。前述したソケットＩＤの説明において、上位装置のアプリケーションの処理Ａと印刷装置のアプリケーションの処理ａを繋ぐチャネルは、そのソケットＩＤの組合せＰＳＩＤ＝０ｘ１０、ＳＳＩＤ＝０ｘ１０で識別できる、ということである。同様に、上位装置のアプリケーションの処理Ｂと印刷装置のアプリケーションの処理ｂを繋ぐチャネルは、ＰＳＩＤ＝０ｘ２０、ＳＳＩＤ＝０ｘ２０で識別できる）。
【０１０６】
続いて、上位装置が要求する、上位装置から印刷装置へ転送する時のパケットサイズの最大値を示すパラメータであるプライマリィ・トゥ・セコンダリィ・パケット・サイズ（Ｐｒｉｍａｒｙ  Ｔｏ  Ｓｅｃｏｎｄａｒｙ  Ｐａｃｋｅｔ  Ｓｉｚｅ：以下、第１のパケットサイズと記す）と、上位装置が要求する、印刷装置から上位装置へ転送する時のパケットサイズの最大値を示すパラメータであるセコンダリィ・トゥ・プライマリィ・パケット・サイズ（ＳｅｃｏｎｄａｒｙＴｏ  Ｐｒｌｍａｒｙ  Ｐａｃｋｅｔ  Ｓｉｚｅ：以下、第２のパケットサイズと記す）とを調べ、各々自分が用意できるパケットサイズであるか判断する（ステップＳ７０９）。
【０１０７】
その判断の結果、要求サイズか可能ならば、後述するオープン・チャネル・リプライ・パケット（Ｏｐｅｎ  Ｃｈａｎｎｅｌ  Ｒｅｐｌｙ  Ｐａｃｋｅｔ）にその旨を示すパラメータをセットする。要求に沿えないならば、自分が用意できる第１及び第２のパケットサイズをパラメータとしてセットすることになる。
【０１０８】
続いて、上位装置が要求するクレジットに関する情報を表すパラメータであるクレジット・リクエステッド（Ｃｒｅｄｉｔ  Ｒｅｑｕｅｓｔｅｄ）とマキシマム・アウトスタンディング・クレジット（Ｍａｘｉｍｕｍ  Ｏｕｔｓｔａｎｄｉｎｇ  Ｃｒｅｄｉｔ）を解析し（ステップＳ１１０）、２つのパラメータの組み合わせによって表される要求に対する回答を、前述のパケットサイズと同様にオープン・チャネル・リプライ・パケットのパラメータを使って行なう。
【０１０９】
オープン・チャネル・コマンド（Ｏｐｅｎ  Ｃｈａｎｎｅｌ  Ｃｏｍｍａｎｄ）の各パラメータの解析が終了すると、印刷装置は回答をまとめ、オープン・チャネル・リプライ・パケットを作成し（ステップＳ１１１）、上位装置へ転送する（ステップＳ１１２）。オープン・チャネル・リプライ・パケットの構造は図２１に示す。
【０１１０】
上位装置は、オープン・チャネル・リプライ・パケットのパラメータを解析し（ステップＳ１１３）、チャネルがオープンされたかを知る。そして、チャネルがオープンできない場合には、別のチャネルをオープンするか（ステップＳ１０７へ戻る）、ＩＥＥＥ１２８４．４の制御を終了する。終了する場合は後述のステップＳ１２２へ進む（処理Ｐ２）。
【０１１１】
チャネルがオープンされたのであれば、データパケットをオープンしたチャネルへ転送することができる（ステップＳ１１４）。データパケットの構造は前述した図８の通りである。その時のパケットサイズは自分（上位装置＝オープン・チャネル・コマンド・パケットを発行した側）が要求したパケットサイズと、オープン・チャネル・リプライにより戻ってくる印刷装置側が要求するパケットサイズとを比較して、どちらか小さい方を採用する。もちろん、データパケットの転送は、逆方向（印刷装置から上位装置へ）の転送も可能であるし、後述されるクレジットに関するコマンドパケットの転送もこの時点で有効なものとなる（もちろんチャネルがオープンされる前でも転送は可能であるが意味がない）。
【０１１２】
また、チャネルのオープンは、装置内の処理が許す限り、またソケットＩＤの組合わせが重ならない限り何個でも可能である（ステップＳ７０７へ戻ることを繰り返す：処理Ｐ３）。上記のソケットＩＤの説明例では、上位装置の処理Ａと印刷装置の処理ａを繋ぐチャネル、同じく処理Ｂと処理ｂを繋ぐチャネルの２つがオープンされていることになる。
【０１１３】
上記説明では、上位装置及び印刷装置内部のアプリケーションの処理同士を繋ぐチャネルがオープンされる迄の流れを説明したが、ＩＥＥＥ１２８４．４の制御を司る各種コマンド及びリプライ（イニット、オープンチャネルなど）が転送されるチャネル（以下、コマンドチャネルと記す）は、暗黙の内にオープンされているので、上記手順を踏む必要はない。
【０１１４】
また、既に説明してある様にそのチャネルを識別するためのソケットＩＤは０ｘ００である。データのやり取りが終了した（終了させたい）チャネルは、クローズ・チャネル・コマンド・パケット（Ｃｌｏｓｅ  Ｃｈａｎｎｅｌ  Ｃｏｍｍａｎｄ  Ｐａｃｋｅｔ）で終了（クローズ）させることができる。上位装置がチャネルをクローズしようとした場合、クローズ・チャネル・コマンド・パケットを印刷装置へ転送する（ステップＳ１１５）。クローズ・チャネル・コマンド・パケットの構造は図２２に示す。
【０１１５】
クローズ・チャネル・コマンド・パケットのパラメータであるプライマリィ・ソケットＩＤ、セコンダリィソケットＩＤは、クローズしたいチャネルを示すソケットＩＤの組合せが記述されている。印刷装置は、そのパラメータを解析し（ステップＳ１１６）、クローズを指定されたチャネルがクローズ可能か（オープンされているか）チェックし（ステップＳ１１７）、そのチャネルをクローズし、その旨を上位装置へクローズ・チャネル・リプライ・パケット（Ｃｌｏｓｅ  ｃｈａｎｎｅｌ  Ｒｅｐｌｙ  Ｐａｃｋｅｔ）を使って回答するための準備をする（ステップＳ１１８）。
【０１１６】
同様にクローズできないと判断されれば、リプライパケットもその様に作られる（ステップＳ１１９）。リプライパケットが作り終わるとそれは上位装置へ転送される（ステップＳ１２０）。クローズ・チャネル・リプライ・パケットの構造は図２３に示す。
【０１１７】
上位装置は、クローズ・チャネル・リプライ・パケットを受け取り、そのパラメータであるＲｅｓｕｌｔを解析することによりチャネルがクローズされたかを知る（ステップＳ１２１）。チャネルがクローズされた後、必要があれば再びクローズ・チャネル・コマンド・パケットによりチャネルをオープンすることも何ら問題ないし（ステップＳ７０７へ戻る：処理Ｐ４）、そのままＩＥＥＥ１２８４．４の制御を終了することもできる。その場合、上位装置は、エグジット・コマンド・パケット（Ｅｘｉｔ  Ｃｏｍｍａｎｄ  Ｐａｃｋｅｔ）を印刷装置へ転送する（ステップＳ１２２）。エグジット・コマンド・パケットの構造は図２４に示す。
【０１１８】
エグジット・コマンド・パケットを印刷装置が受け取ると、ＩＥＥＥ１２８４．４を使った処理（オープンされたチャネル上でのデータやり取りなど）を終了させた後（ステップＳ１２３）、エグジット・リプライ・パケット（Ｅｘｉｔ  Ｒｅｐｌｙ  Ｐａｃｋｅｔ）を作成し上位装置へ転送する（ステッブＳ１２４）。エグジット・リプライ・パケットの構造は図２５に示す。これによりＩＥＥＥ１２８４．４の制御は終了し、パケット（ＩＥＥＥ１２８４．４のパケット）によるデータ転送も終了する。
【０１１９】
再びＩＥＥＥＩ２８４．４の制御を開始した場合は、イニット・コマンド・パケットの転送処理から実行する必要がある。もちろんその他のコマンド・パケットと同様、エグジット・コマンド・パケットはＩＥＥＥ１２８４．４の制御を実行している時なら何時発行しても構わない。
【０１２０】
ところで、ステップＳ１１４まで実行し、チャネルをオープンすれば、データパケットの転送が開始できる様になるのではあるが、データパケットを送る場合には、転送先の処理からクレジットをもらっていないと転送することができない様に制御している。そうすることで、ＩＥＥＥ１２８４．４はデータ（パケット）のフロー制御を実現しているのである。すなわち上記ソケットＩＤの説明でいえば、上位装置側の処理Ａが印刷装置側の処理ａに対しパケットを転送する場合、処理ａからクレジットをもらわないと処理Ａはパケットを転送できない。
【０１２１】
フロー制御とは、自分の持っている資源（一般的には読み書き可能な記憶手段であるバッファ等と呼ばれるものであり、本説明では印刷装置を想定して以下受信バッファと呼ぶ）に相手から転送されるデータを一時的にでも蓄えることになる場合は、受信バッファの容量を越えてデータを受信しないように制御しなければ、転送データを取りこぼして処理が正常に動作しなくなってしまう。その様な状況を防ぐため、データ転送の停止及び再開を調整するのがフロー制御である。
【０１２２】
［クレジットの概念］
次に、ＩＥＥＥ１２８４．４におけるパケット転送のフロー制御に使われるクレジットの概念について説明する。
【０１２３】
クレジットは、パケットの受け取り側から送り側へ対して発行され、受け取り側がどれだけパケットを受け取る準備ができているかを示している。パケットの受け取り側は、クレジットとして発行した分のパケットは必ず受け取れることを保証している。クレジットのやり取りには、クレジット・コマンド・パケット（Ｃｒｅｄｉｔ  Ｃｏｍｍａｎｄ  Ｐａｃｋｅｔ）と、クレジット・リクエスト・コマンド・パケット（Ｃｒｅｄｉｔ  Ｒｅｑｕｅｓｔ  Ｃｏｍｍａｎｄ  Ｐａｃｋｅｔ）と、それに対するリプライ・パケットが主に使われるが、データパケット（Ｄａｔａ  Ｐａｃｋｅｔ）やオープン・チャネル・リプライ・パケットによってもクレジットを発行することができる。但しコマンドチャネルだけは特別で、初期化時に既に２つのクレジットを持っている。それはどんな場合でもＩＥＥＥ１２８４．４のイニットやエラー処理を実行することができる様にする為である。
【０１２４】
［クレジットの状態遷移］
次に、図２６を使って簡単にクレジットの状態遷移を説明する。
【０１２５】
まず、装置（上位装置、印刷装置）に電源が投入された様な初期化状態では、内部的にコマンドチャネルのクレジットは「２」に、データ（パケット）を転送する為のチャネル（この時点ではまだオープンされていない）のクレジットはもちろん「０」である。本説明では、データを転送するチャネルについて１つしか表記していないが、複数個チャネルがオープンされたのであれば、クレジットの管理もチャネルごとに行なわれる。
【０１２６】
次に上位装置がイニット・コマンド・パケットを使ってＩＥＥＥ１２８４．４の制御を開始しようとする場合、イニット・コマンド・パケットの発行により、上位装置側のコマンドチャネルのクレジットは−１されて「１」となる。同時に印刷装置側ではイニット・コマンド・パケットを受け取るとコマンドチャネルのクレジットは＋１されて「３」となる。それは、コマンドチャネルで転送されるパケットのクレジットパラメータ（へッダの第５バイト目）には必ず１が入っていることが約束されているからである。コマンドチャネルにおいてクレジットが０になり、パケットを転送できなくなることは、以降の処理が続行不可能になることを意味し、それを避けるために上記約束が決められている。
【０１２７】
イニット・コマンド・パケットに対して印刷装置が、イニット・コマンド・パケットを返すことで、上記と逆に印刷装置のコマンドチャネルのクレジットが−１されて「２」となり、上位装置のコマンドチャネルのクレジットは＋１されて「２」に戻る。次に上位装置がオープン・チャネル・コマンド・パケットにより、データ用のチャネルをオープンしようとし、それに対して印刷装置がオープン・チャネル・リプライを正常に返した時、オープン・チャネル・リプライ・パケットのクレジットパラメータ（第１５及び第１６バイト目）を使って上位装置に対し２とクレジットを発行すると、上位装置側のデータを転送する為のチャネルのクレジットは＋２されて「２」となる。
【０１２８】
次に上位装置はデータを転送する為のチャネルもオープンできたし、同チャネルに対するクレジットも印刷装置から受け取ったので、データパケットを転送することが可能となり、データパケットを連続して２つ転送し２つ目のデータパケットには印刷装置に対しデータを転送する為のチャネルのクレジットを１つ、データパケットのクレジットパラメータ（第４バイト目）を使って発行する。
【０１２９】
その時点で印刷装置のデータを転送する為のチャネルのクレジットは＋１されて「１」となる。また、コマンドチャネルのクレジットはコマンドパケットを転送されていないので（また自分からも転送していないので）「２」のままである。ここで始めて印刷装置も上位装置に対しデータパケットを転送できる様になる。
【０１３０】
次に上位装置はデータパケットを２個連続して転送してしまったので、自分の持っているデータを転送する為のチャネルのクレジットを使い果たしてしまったので、次のデータパケットを送る為に、クレジット・リクエスト・コマンド・パケットを使って、印刷装置に対しクレジットの要求をする。クレジット・リクエスト・パケットの構造を図２７に示す。
【０１３１】
クレジット・リクエスト・コマンド・パケットによりクレジットを要求された印刷装置は、その要求の内容を解析し（パラメータを見て）、それに沿ったリプライを返そうとする。この例の場合、１つだけクレジットを上位装置に発行できるとする。発行されるクレジットは、クレジット・リクエスト・リプライのクレジットパラメータ（第１１及び第２バイト目）に入れて、上位装置へ転送する。クレジット・リクエスト・リプライ・パケットの構造は図２８に示す。
【０１３２】
そのリプライを受信することにより、上位装置のデータを転送する為のチャネルのクレジットは＋１され「１」となり、データパケットを転送することが再び可能となる。また、印刷装置もデータを転送する為のチャネルのクレジットを上位装置から発行されているので、データパケットを１つだけ転送することができる。
【０１３３】
そこで、図に示すように印刷装置がデータパケットを１つ転送すれば、持っていたクレジットは−１され「０」となる。このデータパケットの中のクレジットパラメータを使って上位装置へクレジットを発行することも、もちろん可能であり、上位装置は発行されたクレジットによって、自分の持っているクレジットが増加する。図ではデータ転送の為のチャネルのクレジットが＋１され合計「２」になっている。
【０１３４】
［本発明の印刷装置の制御手順］
図２９は、本発明に係る印刷装置の制御手順を示すフローチャートである。
【０１３５】
印刷装置の電源が投入され、装置の初期化（ステップＳ２００）が終了すると、通常、印刷（制御）データが上位装置から転送されてくるのを待つ状態になる（ステップＳ２０１）。本実施形態では、電源投入時の初期化処理で前記第１のデータ転送方式（データの継りについて何ら制限を設けないもの）を受信できるように設定されているとする。これは、前述したＩＥＥＥ１２８４−１９９４のみを使ってデータを転送する方式である。本実施形態における印刷装置の印刷（制御）データの受信は、図示しないハードウエアによって、図３０に示すフローチャートの様な処理が実行され、複数バイト印刷（制御）データを受信したことが、割り込み（又はフラグの監視）により知ることができる様に構成されている。
【０１３６】
印刷（制御）データが１バイト転送されてくると、自動的にメモリ（ＲＡＭ１１９）の設定された場所へ順番に書き込まれる（ステップＳ３００）。メモリ（ＲＡＭ１１９）のどの場所へ書き込むかという設定は、初期化（ステップＳ２００）等で設定しておく。同様に初期化（ステップＳ２００）等で設定しておいたバイト数まで印刷（制御）データを受信したか調べ（ステップＳ３０１）、設定バイト数に達した場合は、何らかの割り込み処理を発生させるか、設定バイト数受信したことを示すフラグを立てる（ステップＳ３０２）、設定バイト数まで達していなければ次のデータが転送されて来るのを待つ。すなわち印刷（制御）データの受信待ち（ステップＳ２０１）はステップＳ３０２で発生させる割り込み処理（又はフラグが立つこと）を待っていることになる。
【０１３７】
印刷（制御）データが前記設定バイト数受信されると、受信データの解析を行なう（ステップＳ２０２）、解析の結果それが制御データであることが分かると（ステップＳ２０３）、データにしたがった処理、例えば、印刷した用紙を排出する場所が複数ある場合には、その排出先を決定したり、前述した、図示しないＮＶＲＡＭに記憶されている、操作パネル１０１２から設定されたプリンタモード設定情報の内容を初期化したり、印刷装置内部の設定の変更を実行したりする（ステップＳ２０８）。
【０１３８】
解析の結果、受信したデータが印刷データであること分かると、さらにそれが印刷実行（起動）の命令であるか調べる（ステップＳ２０４）、印刷実行のデータでなければ、データは印刷データそのものであるから、更に解析／展開して印刷実行を待つことになる（ステップＳ２０５）。
【０１３９】
ステップＳ２０４で印刷実行（起動）の命令であることが分かると、印刷部１１７が使用可能か調べ（ステップＳ２０６）、使用可能でないなら可能になるまで待つ。印刷部１１７が使用可能なら、それまでに解析／展開してあった印刷データを印刷する（ステップＳ２０７）。通常、上記の様な流れで印刷（制御）データを受信しそれに従い印刷処理を実行している。
【０１４０】
ここで、上位装置とのインターフェイス１２１が前述したＩＥＥＥ１２８４−１９９４に定義されている様なパラレルインターフェイス（通称：セントロニクスインターフェイス）であった場合、既存の信号線を利用して、前述のニブルモード、バイトモード、ＥＣＰモードなどにより、印刷装置から上位装置に対するデータの転送（以下、リバース転送）を行うことができる。また、リバース転送への切り替わりを実行する際の処理を利用して自動的に印刷装置の各種設定を上位装置が知ろうとするのが、いわゆるデバイスＩＤ要求処理である。なお、図示しないが、もちろんデバイスＩＤ要求処理についてもＩＥＥＥ１２８４−１９９４に定義されている。
【０１４１】
［転送方式の変更］
本実施形態では、上記デバイスＩＤ要求を利用し印刷（制御）データの転送方式の変更を実施するが、それを図３１に示すフローチャートに従って以下に説明する。
【０１４２】
通常の印刷（制御）データの転送（前述のコンパチビリティモードによる転送）を行なっている際に、使用されているセントロニクスインターフェイス上の信号線とは別の信号線の状態を変化させることを発端とした、ＩＥＥＥ１２８４−１９９４に定義されている方法を使って、任意のタイミングで上位装置はデバイスＩＤを要求してくることが可能である。
【０１４３】
デバイスＩＤ要求があった場合、印刷装置はそれに続いて実行されるリバース転送の時、自分で用意したデータ（文字列データ：図３２にその一例を示す）を上位装置へ転送しなければならないので、まずそのデータを準備する（ステップＳ４００）。また、上位装置へ転送するデータは予めＲＯＭ１３に記憶しておいても良い。
【０１４４】
次に、本印刷装置が前記第２のデータ転送方式（パケットを使用した転送方式、例えば前述したＩＥＥＥ１２８４．４を利用する方式：以下、単にパケット方式という）を実行することが可能か判断する（ステップＳ４０１）。
【０１４５】
判断するといっても、可能か否かは、印刷装置内のＲＯＭ１１３や外部メモリ１１４等に記憶されている制御プログラムや、入力部１１８や図示しないその他の入力部からダウンロードされ、ＲＡＭ１１９等に記憶されている制御プログラムが、パケット方式に対応しているかを調べるだけであり、印刷装置にとってはあらかじめ決まっていることではある。
【０１４６】
パケット方式が可能な場合は、上位装置へ転送するデバイスＩＤデータに、特別な文字列を追加し、そのことを記憶しておく（ステップＳ４０２）。図３３に特別な文字列を追加した一例を示す。パケット方式が不可能な場合や、印刷装置内部の状況によっては（例えば故障箇所がありパケット方式が不可能な場合）、デバイスＩＤデータには特別な文字列が追加されない。
【０１４７】
作成したデバイスＩＤデータは、続いて実行されるリバース転送（ステップＳ４０３）により上位装置へ転送される。リバース転送によってデバイスＩＤデータが転送終了したかを確認し（ステップＳ４０４）、転送が終了したならばステップＳ４０５へ進む。デバイスＩＤデータの転送終了後もう一度、本印刷装置がパケット方式を実行することが可能か否かを判断する（ステップＳ４０５）。この判断はステップＳ４０２で記憶したデータを使用してもよい。
【０１４８】
パケット方式を実行することが可能であるならば、デバイスＩＤデータにも自分（印刷装置）がパケット方式を制御可能であることを示す文字列を追加（前記ステップＳ４０２）したはずなので、そのデバイスＩＤデータを見た（解析した）上位装置から、次に（直後に）転送されてくる印刷（制御）データがパケット方式であろうと予測し、その解析を実行できるように準備する（ステップＳ４０６）。この準備とは、以下に説明される、受信データの解析時の処理を変更するため、図３０のステップＳ３０１で使う（比較に使われる）受信するデータ数の設定バイト数を設定し直したり、判断の決定を行うフラグ等の状態を変化させることにより行なわれる（前記フラグの使用法については後述）。
【０１４９】
準備が終了した状態では、図２９のステップＳ２０２において、受信したデータを解析する際、まず先頭の６〜１０数バイトを調べ、その形態がパケット方式の（中の）へッダ等であるかを調べる、それがへッダまたはパケット方式データであると確認された場合は、今後、上位装置から転送されてくる印刷（制御）データがパケット方式による転送であることを完全に認識し、それに従い処理を続行する。この場合、ヘッダ部分の６バイトや、後述するＩＥＥＥ１２８４．４の制御の為のコマンドパケットは、解析が終了すると次の処理（ステップＳ２０３）へは渡されない。
【０１５０】
上記準備が終了した状態であっても、ステップＳ２０２において受信したデータの先頭６〜１０数バイトがパケット方式のへッダ等でないと判断された場合は、受信したデータを全て次の処理（ステップＳ２０３）へ渡し、その後は前記第１のデータ転送方式のままであると認識し、ステップＳ４０６で行なったフラグ等の設定を準備以前の状態に戻し、その後は、それに従い処理を続行する（パケット方式におけるへッダの解析などは一切行なわない）。なお、この様な状態になっても再び上位装置からデバィスＩＤ要求があれば再度転送方式を変更することは可能である。
【０１５１】
［転送データの解析］
ここで、上記図２９のステップＳ２０２の動作において、前記第２のデータ転送方式であるパケット方式がＩＥＥＥ１２８４．４であった場合の転送データの解析について、図３４、図３５、図３６を用いて詳細に説明する。
【０１５２】
上記説明の様に、上位装置からデバイスＩＤ要求を受けて、デバイスＩＤデータを転送した直後に受信されるデータは、６〜１０数バイト溜ってからステップＳ２０２の処理へ渡される（ステップＳ５０１）。第２のデータ転送方式がＩＥＥＥ１２８４．４の場合、最初に受信するバイト数は「８（バイト）」に設定される（８バイト溜ってからステップＳ２０２へ渡される）。
【０１５３】
次に前記ステップＳ４０６で設定されたフラグを解析する（ステップＳ５０２）。フラグの状態がパケット方式になっていればステップＳ５０３へ進む、そうでなければ受信したデータ（ステップＳ５０１へ渡されたデータ）は全てステップＳ２０３へ渡される。ステップＳ５０３では、この処理へ初めて来たか、つまりデバイスＩＤデータを上位装置へ転送した後に初めて受信したデータであるか否かの判断を行なう。ここでの判断もステップＳ４０６で設定されたフラグ（前記ステップＳ５０２で使ったフラグとは別のフラグ）を利用している。
【０１５４】
初めて来たのであればステップＳ５０４へ進み、８バイトのデータがＩＥＥＥ１２８４．４のパケットのヘッダ部とそれに続くデータであり、かつそのパケットがイニット・コマンド・パケット（図１８）であるかを調べる。なぜなら、本ステップ（ステップＳ５０４）へ来る前は、言うまでもなく前記第１のデータ転送方式だったので、そこから上位装置が１ＥＥＥ１２８４．４の制御を開始しようとするなら、前述した様にイニット・コマンド・パケットを初めに転送しなければならないからである。
【０１５５】
イニット・コマンド・パケットは、図１８を見れば分かるように、８バイトの構成がクレジットパラメータ（第５バイト目）を除き、第１バイト目から順に、０ｘ００、０ｘ００、０ｘ００、０ｘ０８、０ｘＸＸ（不定）、０ｘ００、０ｘ００、０ｘ１０とほぼ固定なので、このタイミングで送られてくるデータの組合わせは、前記第１のデータ転送方式で転送されてくる印刷（制御）データとは明らかに違うことが分かる（パケット化されたデータと、そうでないデータの違いは図９（ａ），（ｂ）に記述）。
【０１５６】
イニット・コマンド・パケットであると判断されれば、ステップＳ５０５へ進むが、そうでなければステップＳ５０６へ進み、次に受信するデータからは前記第１のデータ転送方式であり、パケット方式であるかの判断は必要ないとフラグを設定し（ステップＳ５０２で使うフラグ）、かつ今受信したデータも全てステップＳ２０３へ渡す。もちろんステップＳ５０１へ渡されるバイト数の設定も適当な値に直す。ステップＳ５０５では、イニット・コマンド・パケットに対して必要な処理を実行する（これらのＩＥＥＥ１２８４．４の処理については前述の通り）。
【０１５７】
次にステップＳ５０７へ進み、次のパケットを受信する準備をする。今回はイニット・コマンド・パケットの後なので、次はパケットのヘッダ分である４バイトを受信したらステップＳ５０１へ進む様に設定し、ステップＳ５０３で使用したフラグ（デバイスＩＤデータを上位装置へ転送した後に初めて受信したデータであるかの判断を行なうフラグ）を変更し、ステップＳ５０３からステップＳ５０８へ進むようにする。その後、次のデータを受信するべくステップＳ２０１の処理へ戻る。
【０１５８】
上記処理（ステップＳ５０７迄）を実行しＩＥＥＥ１２８４．４の制御を使ったパケット方式のデータ転送に切り替わった後の処理を続いて説明する。
【０１５９】
ステップＳ５０８では、受信したデータがへッダ部分（初めの４バイト）であるか、それに続くヘッダの残り２バイト＋データ部分であるかがフラグによってチェックされる。フラグはステップＳ５０７でセットされており、今は（イニット・コマンド・パケットを受信した後は）、ヘッダが受信されているはずであるという状態になっている。よって、フラグの値に従い、ステップＳ５０９へ進み、このパケットのデータ数（図８、Ｌｅｎｇｔｈ）を示すパラメータである受信データの３バイト目と４バイト目を見て、次に受信するデータ数（ステップＳ３０１で使用する設定値）を決定する。
【０１６０】
例えば、パケットが図２０に示すオープン・チャネル・コマンド・パケットであったなら、３バイト目と４バイト目は、０ｘ００、０ｘ１１となっているはずなので、次に受信するデータ数は、１３（０ｘ１１−０ｘ０４＝０ｘ０ｄ（＝１３））と設定する。また、次に受信するデータはへッダの残り２バイト＋データ部分であることを示すフラグ（ステップＳ５０８でチェックするフラグ）の値も設定する。さらに、受信データの１バイト目と２バイト目、すなわちＰＳＩＤ、ＳＳＩＤが各々０ｘ００、０ｘ００であるかを見て、そのパケットがＩＥＥＥ１２８４．４の制御を行なうコマンド（前記オープン・チャネル・コマンド・パケット等）なのか、そうでないのか（データパケットであるのか）を判断し、後で使うフラグ（ステップＳ５１１で使用）を設定しておく。言うまでもないがＰＳＩＤ、ＳＳＩＤ共に０ｘ００、０ｘ００場合がコマンドである。
【０１６１】
その後、再度データを受信するべくステップＳ２０１の処理へ戻る。もしステップＳ５０９の処理で受信したへッダ部分（初めの４バイト）が異常な値であると判断したらステップＳ５１０へ進み、エラー時の処理（エラーの種類に見合った処理）を実行する。パケットの先頭４バイトを受信した後、再びステップＳ２０１の処理からデータを受信して再び来るのは、ステップＳ５０８でチェックするフラグの値に従い、ステップＳ５１１である。
【０１６２】
ステップＳ５１１では、受信したデータがＩＥＥＥＩ２８４．４の制御を実行するコマンドなのかを示すフラグ（ステップＳ５０９で設定したフラグ）により処理を分ける。受信したデータがＩＥＥＥ１２８４．４の制御を行なうコマンドである場合は、ステップＳ５１２へ進み、各種コマンドにしたがった処理を実行する。今受信したデータの先頭から３バイト目はコマンドパラメータのはず（パケットの先頭から７バイト目）であり（図２０等を参照）、そこを調べることにより何のコマンドなのか解析できる。ちなみに先頭の１バイト目（パケットの先頭から数えて５バイト目）はクレジット、２バイト目（パケットの先頭から数えて６バイト目）はコントロールパラメータである（図８を参照）。各種コマンドに従った処理を実行した後は、ステップＳ５０７へ進み、次のパケットを受信する準備を行なう。
【０１６３】
ステップＳ５１１で受信データがデータパケットであると判断した場合はステップＳ５１３へ進み、今受信したデータのデータ部分のみを抜き出して次の処理（ステップＳ２０３）へ渡す。今受信したデータの先頭の２バイトは前記した様にパケットのへッダデータの残りであるクレジット、コントロールパラメータであるので、後の処理（ステップＳ２０３以降）では必要ない。また、前記コマンドの場合と同様に、次の受信の時にはパケットの先頭から受信できる様にステップＳ５０７で行なったのと同様の各種設定を実行する。
【０１６４】
この様に、本印刷装置はデバイスＩＤ要求があった場合は、直後に転送されてくるデータがパケット方式かどうか判断可能な状態になっているので、上位装置は印刷装置からリバース転送により送られてくるデバイスＩＤデータの中を調べ、前記した特別な文字列（図３３）が含まれていた場合は、デバイスＩＤデータを受信終了後に印刷装置へ転送する印刷（制御）データは、パケット方式を採用することが可能となる。
【０１６５】
上記第１実施形態によれば、ある特定の状態を経過したことを検出し、その特定の状態を経過した場合（経過した直後）には転送方式が変更されるであろうと予測して、その後から転送されてくるデータに対して転送方式の変更があったかを解析する。そして、転送方式の変更が解析された場合は転送方式を変更する。また、転送方式が変更されると予測した後、転送されてきたデータが以前と同じ転送方式であった場合そのままの方式で続行する。これにより、転送方式の変更を監視するための処理が単純化され、印刷処理全体の効率を上げることが可能となる。
【０１６６】
なお、上記第１実施形態の変形例としては例えば次のようなものがある。
【０１６７】
（１）上記第１実施形態では、上位装置からのデバイスＩＤ要求に対して、印刷装置が特別な文字列を加えたデバイスＩＤデータを転送（リバース転送）し終った後上位装置が転送方式をパケット方式に変更したが（もちろん印刷装置はその時点で転送方式が変更されても対応できる準備は済んでいる）、デバイスＩＤ要求を実行した直後に転送方式を変更したり、印刷装置が特別な文字列をデバイスＩＤデータに加えたかを判断することなく、単にデバイスＩＤデータの転送（リバース転送）が終了した時点で転送方式を変更しても同様な効果が得られる。
【０１６８】
（２）上記第１実施形態及び変形例（１）において、ＩＥＥＥ１２８４−１９９４に定義されているデバイスＩＤ要求の代わりに、パラレルインターフェイス（例えばセントロインターフェイス）における初期化信号（通称インプットプライム、又はＩｎｉｔ信号）を使った、印刷装置に対する初期化、又は操作部１０１２のスイッチ等を使った初期化を実行した直後に印刷装置は転送方式が変更されても対応できる様に準備し、上位装置が印刷（制御）データの転送方式を変更しても同様な効果が得られる。
【０１６９】
（３）上記第１実施形態において、上位装置からのデバイスＩＤ要求の代わりに、操作部１０１２からスイッチ等を使って指示を出し、印刷装置はその指示があった直後から受信するデータがパケット方式に変更されても対応できる様に準備しても、同様な効果が得られる。
【０１７０】
（４）上記第１実施形態において、印刷装置が電源投入時の初期化（図２９のステップＳ２００）で、パケット方式の転送方式に変更されても対応できる様にしておいても、同様な効果が得られる。
【０１７１】
（５）上記第１実施形態において、上位装置からのデバイスＩＤ要求の代わりに、特別なコマンド（制御データ）を転送し、そのコマンドにより印刷装置は転送方式が変更されても対応できる様に準備し、上位装置が印刷（制御）データの転送方式を変更しても同様な効果が得られる。
【０１７２】
（６）上記第１実施形態及び上記変形例（１）〜（５）において、印刷装置（又は上位装置）の準備が終了し、転送方式が変更可能な状態になった後、上位装置（又は印刷装置）から転送されてくるデータ量が少なく、例えば図３０のステップＳ３０１において指定数データが受信されない状態のままであり、転送方式が変更されたか判断できない状態が一定時間継続した場合は、転送方式の変更を断念し、以前と同じ転送方式として処理を続行する様にしても同様な効果が得られる。
【０１７３】
（７）上記変形例（６）において、転送方式が変更されたか判断できない状態から、転送方式の変更を断念し以前と同じ転送方式として処理の続行を開始するまでの時間を、操作部１０１２や上位装置からのコマンド等で決定しても同様な効果が得られる。
【０１７４】
＜第２実施形態＞
上記第１実施形態において、印刷装置がデバイスＩＤを上位装置へ転送した後、上位装置から転送されてくるデータの転送方式が第２のデータ転送方式であるパケット方式（以下、パケット方式と記す）のデータであるか解析し、もしパケット方式のデータでなければ（例えばＩＥＥＥ１２８４．４のイニット・コマンド・パケットでなければ）、その後はパケット方式のデータ転送を断念し、第１のデータ転送方式として処理を継続するようになっているが、パケット方式であるかを解析するデータ数（例えばバイト数）がある一定の数になるまで、解析を継続しても同様な効果が得られる。
【０１７５】
以下に第２実施形態の制御の流れを図３７に示すフローチャートを用いて説明する。
【０１７６】
印刷装置がデバイスＩＤデータを転送し終ると、パケット方式であるかの解析を実行すべきデータ数（Ｘ）を設定する（ステップＳ６０１）。次に上位装置から転送されてくるデータを何バイトか受信する（ステップＳ６０２）、受信の方法については上記第１実施形態で述べた方法でよいし、その他の方法であってもかまわない。
【０１７７】
次に受信したデータがパケット方式であるかを解析する（ステップＳ６０３）。パケット方式であると分かった場合は、この後パケット方式（例えばＩＥＥＥ１２８４．４の制御方式）で処理を続ける（本フローチャートの処理から抜ける：処理Ｐ１１）。パケット方式でないと判断した場合は、ステップＳ６０４へ進み、既に設定されている「パケット方式であるかの解析を実行すべきデータ数」Ｘから今回受信したデータ数を引く。
【０１７８】
続くステップＳ６０５において、計算した結果Ｘが０以下になっていれば、一定数データを受け取ったが、それまでにパケット方式のデータは受信されなかったということになり、その後は前記第１のデータ転送方式で処理を継続する（処理Ｐ１２）。もちろん今回受信したデータは全て後の処理（例えば前記上記第１実施形態の図２９のステップＳ２０３）へ渡される。
【０１７９】
計算の結果Ｘが０より大きかったた場合は、まだパケット方式であるかの解析を継続するので、今回受信したデータを次の処理（例えば上記第１実施形態の図２９のステップＳ２０３）へ渡したあと、次に上位装置から転送されてくるデータを受信すべく、ステップＳ６０２へ戻る。
【０１８０】
【発明の効果】
以上説明したように、本発明によれば、少なくとも２種類以上の印刷（制御）データ転送方式を、上位装置と印刷装置の間で使い分けて使用する場合において、転送方式の変更を監視するための処理が単純化され、印刷処理全体の効率を上げることが可能となる。
【図面の簡単な説明】
【図１】本発明の第１実施形態に係る印刷システムの概略構成を示すブロック図である。
【図２】印刷データの流れから見た印刷装置内部のブロック図である。
【図３】本実施形態に適用されるＬＢＰの内部構造を示す断面図である。
【図４】印刷（制御）データの２種類の転送方式を示す図である。
【図５】セントロのコネクタのピン配置を示す図である。
【図６】コンパチビリティモードのハンドシェークを示す図である。
【図７】アプリケーンョンとＩＥＥＥ１２８４．４とＩＥＥＥ１２８４の関係を簡単に表した図である。
【図８】ＩＥＥＥ１２８４．４のパケットの基本的な構成を表した図である。
【図９】ＩＥＥＥ１２８４．４のパケットを使用するデータと該パケットを使用しないデータとを比較して表した図である。
【図１０】ＩＥＥＥ１２８４．４のマルチチャネルの動作を表した図である。
【図１１】ＩＥＥＥ１２８４．４のマルチチャネルの動作を表した図である。
【図１２】ＩＥＥＥ１２８４．４のマルチチャネルの動作を表した図である。
【図１３】ＩＥＥＥ１２８４．４のマルチチャネルの動作を表した図である。
【図１４】ＩＥＥＥ１２８４．４のマルチチャネルの動作を表した図である。
【図１５】ＩＢＥＥ１２８４．４の基本的な動作を説明したフローチャートである。
【図１６】図１５の続きのフローチャートである。
【図１７】図１６の続きのフローチャートである。
【図１８】ＩＥＥＥ１２８４．４の制御で使われる基本的なパケットの構造を表した図である。
【図１９】ＩＥＥＥ１２８４．４の制御で使われる基本的なパケットの構造を表した図である。
【図２０】ＩＥＥＥ１２８４．４の制御で使われる基本的なパケットの構造を表した図である。
【図２１】ＩＥＥＥ１２８４．４の制御で使われる基本的なパケットの構造を表した図である。
【図２２】ＩＥＥＥ１２８４．４の制御で使われる基本的なパケットの構造を表した図である。
【図２３】ＩＥＥＥ１２８４．４の制御で使われる基本的なパケットの構造を表した図である。
【図２４】ＩＥＥＥ１２８４．４の制御で使われる基本的なパケットの構造を表した図である。
【図２５】ＩＥＥＥ１２８４．４の制御で使われる基本的なパケットの構造を表した図である。
【図２６】ＩＥＥＥ１２８４．４のフロー制御で使われるクレジットの動きを表した図である。
【図２７】ＩＥＥＥ１２８４．４の制御で使われる基本的なパケットの構造を表した図である。
【図２８】ＩＥＥＥ１２８４．４の制御で使われる基本的なパケットの構造を表した図である。
【図２９】本発明に係る印刷装置の制御手順を示すフローチャートである。
【図３０】本発明に係る印刷装置の制御手順を示すフローチャートである。
【図３１】本発明に係る印刷装置の制御手順を示すフローチャートである。
【図３２】デバイスＩＤデータ（文字列）を一例を示す図である。
【図３３】デバイスＩＤデータ（特別な文字列）を一例を示す図である。
【図３４】本発明の制御でＩＥＥＥ１２８４．４が使用された場合の転送データの解析を示すフローチャートである。
【図３５】図３４の続きのフローチャートである。
【図３６】図３５の続きのフローチャートである。
【図３７】本発明の第２実施形態の制御の流れを示すフローチャートである。
【符号の説明】
１１６  印刷部１／Ｆ
１１７  印刷部
１１８  入力部
１１９  ＲＡＭ
１３００  受信バッファ
１３０１  解析部
１３０２  展開部
１３０３  展開用メモリ
１３０４  転写部
３０００  上位装置
【図１】
0003782573.tif 000002
【図２】
0003782573.tif 000003
【図３】
0003782573.tif 000004
【図４】
0003782573.tif 000005
【図５】
0003782573.tif 000006
【図６】
0003782573.tif 000007
【図７】
0003782573.tif 000008
【図８】
0003782573.tif 000009
【図９】
0003782573.tif 000010
【図１０】
0003782573.tif 000011
【図１１】
0003782573.tif 000012
【図１２】
0003782573.tif 000013
【図１３】
0003782573.tif 000014
【図１４】
0003782573.tif 000015
【図１５】
0003782573.tif 000016
【図１６】
0003782573.tif 000017
【図１７】
0003782573.tif 000018
【図１８】
0003782573.tif 000019
【図１９】
0003782573.tif 000020
【図２０】
0003782573.tif 000021
【図２１】
0003782573.tif 000022
【図２２】
0003782573.tif 000023
【図２３】
0003782573.tif 000024
【図２４】
0003782573.tif 000025
【図２５】
0003782573.tif 000026
【図２６】
0003782573.tif 000027
【図２７】
0003782573.tif 000028
【図２８】
0003782573.tif 000029
【図２９】
0003782573.tif 000030
【図３０】
0003782573.tif 000031
【図３１】
0003782573.tif 000032
【図３２】
0003782573.tif 000033
【図３３】
0003782573.tif 000034
【図３４】
0003782573.tif 000035
【図３５】
0003782573.tif 000036
【図３６】
0003782573.tif 000037
【図３７】
0003782573.tif 000038