(57)【要約】【課題】ホストコンピュータから送信されるデータを特定の通信モードで受信する周辺装置において適正な通信速度を自動的に設定する。【解決手段】ホスト１１は、通信速度自動設定モードにおいて、予め定めたテストデータ列をプリンタ（周辺装置）１２に送信する（▲２▼）。プリンタ１２は、現在選択されている応答パルス幅でテストデータ列を受信し、受信したテストデータ列を予め定めたテストデータ列と比較する。比較結果が一致した場合、応答パルス幅を予め定めた幅だけ縮め、ホスト１１に一致を通知する（▲３▼）。ホスト１１は、テストデータ列をプリンタ１２に再度送信する（▲２▼）。プリンタ１２は比較結果が不一致となるまで、応答パルス幅を逐次縮小していき、ホスト１１から新たなテストデータ列の受信を繰り返す。プリンタ１２は、不一致になったとき、不一致となる前の応答パルス幅を、以後の通信で利用する応答パルス幅として設定する。【選択図】　図１
2004005244.tif 000002
【特許請求の範囲】
【請求項１】
ホストコンピュータから送信されるデータを特定の通信モードで受信する周辺装置において通信速度を自動的に設定する方法であって、
（ａ）前記ホストコンピュータは、予め定めたテストデータ列を前記周辺装置に送信し、
（ｂ）前記周辺装置は、現在選択されている応答パルス幅で前記テストデータ列を受信し、その受信したテストデータ列を前記予め定めたテストデータ列と比較し、
（ｃ）前記周辺装置は、比較結果が一致した場合、さらに応答パルス幅を予め定めた幅だけ縮め、前記ホストコンピュータに一致を通知し、
（ｄ）前記ホストコンピュータは、前記予め定めたテストデータ列を前記周辺装置に再度送信し、
（ｅ）前記周辺装置における比較結果が不一致となるまで、ステップ（ｂ），（ｃ），（ｄ）を繰返し、
（ｆ）前記周辺装置は、不一致になる前の応答パルス幅を、以後の通信で利用する応答パルス幅として設定する
ことを特徴とする通信速度自動設定方法。
【請求項２】
前記ホストコンピュータヘの応答パルス幅を縮めることにより、前記ホストコンピュータから次の予め定めたテストデータが前記周辺装置に送信されなくなった場合、予め定めた時間によるタイムアウト処理を行い、タイムアウト時にステップ（ｆ）へ移行することを特徴とする請求項１記載の通信速度自動設定方法。
【請求項３】
前記特定の通信モードは、セントロニクスインタフェースのコンパチビリティモードにおけるＡＣＫ−ａｆｔｅｒ−ＢＵＳＹ、ＡＣＫ−ｗｈｉｌｅ−ＢＵＳＹサブモードである請求項１または２記載の通信速度自動設定方法。
【請求項４】
前記ステップ（ａ）〜（ｆ）に先だって、
（ｇ）前記ホストコンピュータは、前記周辺装置に対して通信モードの自動認識処理を行うことを通知し、
（ｈ）前記ホストコンピュータは、予め定めたテストデータ列を前記周辺装置に送信し、
（ｉ）前記周辺装置は、前記複数の通信モードのうち現在選択されている通信モードで前記テストデータ列を受信し、その受信したテストデータ列を前記予め定めたテストデータ列と比較し、
（ｊ）前記周辺装置は、比較結果が不一致の場合、前記複数の通信モードのうちの他の通信モードに変更し、前記ホストコンピュータに不一致を通知し、
（ｋ）前記周辺装置は、比較結果が一致した場合、以後の通信に利用する通信モードとして、現在の通信モードを設定する
ことを特徴とする請求項１、２または３記載の通信速度自動設定方法。
【請求項５】
ホストコンピュータから送信されるデータを特定の通信モードで受信する周辺装置であって、
前記ホストコンピュータから、予め定めたテストデータ列を受信する手段と、
現在選択されている応答パルス幅で前記テストデータ列を受信し、その受信したテストデータ列を前記予め定めたテストデータ列と比較する手段と、
比較結果が一致した場合、さらに応答パルス幅を予め定めた幅だけ縮め、前記ホストコンピュータに一致を通知する手段と、
前記比較結果が不一致となったとき、不一致になる前の応答パルス幅を、以後の通信で利用する応答パルス幅として設定する手段と
を備えたことを特徴とする周辺装置。
【請求項６】
ホストコンピュータから送信されるデータを特定の通信モードで受信する周辺装置において通信速度を自動的に設定するためにホストコンピュータ上で動作するデータ出力ドライバプログラムであって、
（ａ）予め定めたテストデータ列を前記周辺装置に送信するステップと、
（ｂ）前記周辺装置が、現在選択されている応答パルス幅で受信したテストデータ列を前記予め定めたテストデータ列と比較した比較結果の通知を受けるステップと、
（ｃ）前記比較結果が一致した旨の通知を受けたとき、ステップ（ａ）に戻ることを特徴とするデータ出力ドライバプログラム。
【請求項７】
前記ステップ（ａ）〜（ｃ）に先だって、
（ｄ）前記周辺装置に対して通信モードの自動認識処理を行うことを通知するステップと、
（ｅ）予め定めたテストデータ列を前記周辺装置に送信するステップと、
（ｆ）前記周辺装置が前記複数の通信モードのうち現在選択されている通信モードで前記テストデータ列を受信し、その受信したテストデータ列が前記予め定めたテストデータ列と比較し一致するか否かをチェックした結果を前記周辺装置から受信するステップと、
（ｇ）前記周辺装置から比較結果が不一致の旨が通知されたとき、ステップ（ｅ）に戻るステップと、
（ｈ）前記周辺装置から比較結果が一致した旨が通知されたとき、ステップ（ａ）に移行する
ことを特徴とする請求項６記載のデータ出力ドライバプログラム。
【発明の詳細な説明】
【０００１】
【発明の属する技術分野】
本発明は、ホストコンピュータと接続される通信インタフェース（Ｉ／Ｆ）を備えた周辺装置に係り、特に、その通信速度自動設定方法、周辺装置及びデータ出力ドライバプログラムに関する。
【０００２】
【従来の技術】
従来、ホストコンピュータとその周辺装置であるプリンタ，スキャナ装置等の画像入出力機器との間のデータ通信は、所定のインタフェースを介して実行されている。この種のインタフェースの一つとしてセントロニクスインタフェースがある。
このインタフェースは、ホストコンピュータ（以下、単にホストともいう）からプリンタへデータの転送を行う主なインタフェースの一つであり、米国セントロニクス社が自社のプリンタ用に開発した、コンピュータからプリンタヘデータを送るための規格である。このインタフェースは、安価で高速のデータを送ることができるという特性を備え、パーソナルコンピュータ（ＰＣまたはパソコン）からプリンタヘのデータ送信手段として広く普及している。しかし、標準規格化はされていない。
【０００３】
上記セントロニクスインタフェースには、ホストとプリンタ毎に異なる多くのバリエーションがあるが、基本的には類似している。基本となる制御は、３つの信号線（ＤＡＴＡ　ＳＴＲＯＢＥ，ＡＣＫ，ＢＵＳＹ）で行う。後述のニブルモード，バイトモード，ＥＣＰモードなどの転送方式に対して、３つの信号線（ＤＡＴＡ　ＳＴＲＯＢＥ，ＡＣＫ，ＢＵＳＹ）で行う転送方式をコンパチビリティモードと呼ぶ。
【０００４】
以下、図７および図８によりコンパチビリティモードについて、簡単に説明する。前記のように多くのバリエーションがあり、ここで全てを説明することはできないので、特定の一機種で採用されている例を説明する。
【０００５】
図７は、コンパチビリティモードのハンドシェークを示す。ＳＴＲＯＢＥ信号は、ホストからパソコンに対して送信される制御信号である。この信号は、定常状態では「Ｈｉｇｈ」状態であり、「Ｌｏｗ」状態に遷移したときにプリンタがＤＡＴＡ０〜ＤＡＴＡ７の状態を読み込む。ＤＡＴＡ０〜ＤＡＴＡ７（［ＤＡＴＡ７．．０］と表記）は、ホストから送られてくるデータの第０ビットから第７ビットのデータである。各ビットデータは、「Ｈｉｇｈ」状態で「１」であり、「Ｌｏｗ」状態で「０」である。このデータは、定常状態においては不定であり、ＳＴＲＯＢＥ信号が「Ｌｏｗ」状態のときのみ有効である。ＢＵＳＹ信号は、プリンタがホストからのデータを受信できるかどうかを示すためにプリンタが出力する状態信号である。この信号は、「Ｌｏｗ」状態時に受信可能状態を示し、「Ｈｉｇｈ」状態で受信不可状態を示す。
【０００６】
ＡＣＫ信号は、プリンタがホストに対してデータ受信を通知するために出力する信号である。この信号は、定常状態では「Ｈｉｇｈ」状態であり、データ受信終了後、「Ｌｏｗ」状態となるパルスを発行する。図中に示したＡＣＫ−ｉｎ−ＢＵＳＹ，ＡＣＫ−ａｆｔｅｒ−ＢＵＳＹ、ＡＣＫ−ｗｈｉｌｅ−ＢＵＳＹは、３つのバリエーションを示している。これらについては後に詳しく説明する。
【０００７】
このコンパチビリティモードでは、ホストからプリンタヘの片方向のみのデータ転送しかできず、プリンタからホストヘのデータ転送はできないという欠点があった。そこで、このプリンタからホストヘのデータ転送できないという点を改良するため、コンパチビリティモードの上位互換として、セントロニクス双方向の通信ハンドシェークがＩＥＥＥにより標準規格化された（ＩＥＥＥ１２８４−１９９４）。このＩＥＥＥ１２８４−１９９４は、前述したコンパチビリティモード（ホストからプリンタヘデータ転送するための従来からあるハンドシェーク）に加え、さらに新たにニプルモード，バイトモード，ＥＣＰモードなど、複数の通信モードを追加して規定している。
【０００８】
これらの新たに追加されたモードにも、コンパチビリティモードと同じ形状のコネクタおよびケーブルを使用することができる。
【０００９】
ニブルモードは、プリンタからホストヘデータ転送を行うためのモードであり、前記コンパチビリティモードと交互に使用することによって、ホスト−プリンタ間の双方向通信が実現できる。すなわち、ホストからプリンタヘの送信はコンパチビリティモードで行い、プリンタからホストヘの通信はニブルモードで行うことで、双方向通信を行うことができる。ニブルモードでは、ＡＣＫ信号とＡＵＴＯ　ＦＤ信号を用いて制御を行い、データは信号線ＢＵＳＹ，ＰＥ，ＳＥＬＥＣＴ，ＦＡＵＬＴの４つの信号線にセットする。そのために、データの１バイトを４ビットずつに分け、まず下位４ビットを送って次に上位４ビットを送る。これにより、４つの信号線での８ビット（１バイト）転送を実現している。なお、ＦＡＵＬＴ信号は、特定のタイミングではホストヘ送るデータを準備できているかどうかをプリンタが示すためにも使われる。ニブルモードでは、コンパチビリティモードにおいてホストのみが制御していた信号線ＤＡＴＡ０，ＤＡＴＡ１，…，ＤＡＴＡ７を使用しないでハンドシェークする。これらのＤＡＴＡ０，ＤＡＴＡ１，…，ＤＡＴＡ７のことをデータバスと呼ぶ。ニブルモードでは、データバスを用いないので、ホスト側でのハードウェアの対応の必要がない。そのため、比較的容易に実装が可能である。
【００１０】
バイトモードも、ニブルモード同様にプリンタからホストヘの通信を行うためのモードで、前記コンパチビリティモードと交互に使用することによって、ホスト−プリンタ間の双方向通信が実現できる。具体的には、ホストからプリンタヘの送信はコンパチビリティモードで行い、プリンタからホストヘの送信はバイトモードで行うことで、双方向通信を行うことができる。バイトモードでは、信号線ＳＴＲＯＢＥ，ＡＣＫ，ＢＵＳＹ，ＰＥ，ＡＵＴＯ　ＦＤ，ＦＡＵＬＴを用いて制御を行い、データはデータバス（８本の信号線ＤＡＴＡ０，ＤＡＴＡ１，…，ＤＡＴＡ７）にセットする。ニブルモードと比較した場合、１バイト（８ビット）のデータを同時に送るため効率がよいが、データバスをプリンタ側が制御するので、ホスト側でのハードウェアの対応が必要となる。
【００１１】
さらに、ＥＣＰモードは、ホストからプリンタヘの通信とプリンタからホストヘの通信の両方を行うためのモードである。内部的には、Ｆｏｒｗａｒｄ　Ｐｈａｓｅ（ホストからプリンタ）と、Ｒｅｖｅｒｓｅ　Ｐｈａｓｅ（プリンタからホスト）とを切替えることにより、同じＥＣＰモード内で、双方向のデータ転送を可能としている。ＥＣＰモードでは，信号線ＳＴＲＯＢＥ，ＡＣＫ，ＢＵＳＹ，ＡＵＴＯ　ＦＤ，ＩＮＩＴ，ＦＡＵＬＴ，ＰＥを用いて制御を行い、データはデータバスにセットする。この場合、データバスをプリンタ側も制御するので、ホスト側のハードウェアの対応が必要となる。１つのモード内で、双方向のデータ転送が可能であるので、モード間を移行するオーバヘッドが少なくてすむことと、ＥＣＰのＦｏｒｗａｒｄ転送のハンドシェークは、コンパチビリテイモードのハンドシェークに比べて、転送速度が高速化できるように考慮されていることがメリットである。
【００１２】
以上がＩＥＥＥ１２８４の概略であるが、上述したＩＥＥＥ１２８４のコンパチビリティモードにおいては、さらに下位の通信モードが存在する。本明細書ではこれをサブモードと呼ぶ。これらのサブモードの種類は、ＡＣＫ信号の発行のタイミングによって異なる。すなわち、ＡＣＫ信号がＢＵＳＹ信号の送出解除前か後か、またＢＵＳＹ信号の送出解除がＡＣＫ信号のアクティブ中にされるか否かで異なっている。図７に示したように、これらのタイミングの普通名称は、波形の外観から生じたものであり、
・ＡＣＫ−ｉｎ−ＢＵＳＹ
・ＡＣＫ−ａｆｔｅｒ−ＢＵＳＹ
・ＡＣＫ−ｗｈｉｌｅ−ＢＵＳＹ
と一般的に、呼ばれている。
【００１３】
ところで、ホストとしてのパソコンでは、これらのどのサブモードを使用するかは、デークを送る側の個々のパソコンに依存している。昨今のパソコンのマニュアルにおいて、そのパラレルポートＩ／Ｏインタフェースがコンパチビリティモードのどのサブモードに適合しているかは、ほとんど記載されていないのが現状であり、このサブモードが一致していないと、データの欠損が起こりかねない。種々のメーカーから販売されている既存のパソコンの中には、ＡＣＫを無視して、ＢＵＳＹだけを監視するものがある。そのようなパソコンでは、プリンタ側がＡＣＫ−ａｆｔｅｒ−ＢＵＳＹや、ＡＣＫ−ｗｈｉｌｅｒ−ＢＵＳＹのような設定になっていると、図８に示すように、第１のデータ▲１▼の受信終了を示すＡＣＫがＬｏｗの内に、パソコンからのデータ読み込みタイミングである第２のデータ▲２▼のＳＴＲＯＢＥ信号がＬｏｗとなりうる。このような場合、データ▲２▼は、プリンタ側の受信準備ができていないときに送られたデータになるので、そのデータは、取りこぼされてしまう。
【００１４】
そこで、このような事態を回避するために、特定のプリンタにおいては、ＡＣＫ−ｉｎ−ＢＵＳＹ，ＡＣＫ−ｗｈｉｌｅ−ＢＵＳＹ，ＡＣＫ−ａｆｔｅｒ−ＢＵＳＹのサブモードをパネルによりユーザが選択設定できるようにしてある。
【００１５】
【発明が解決しようとする課題】
しかし、上述のような従来例では、ホストから画像データを送信し、プリンタがある程度印字を行なうまでサブモードの不一致に気付かなかったり、ＳＴＲＯＢＥ信号がＡＣＫ信号の立上りに対して、ぎりぎりのタイミングでＬｏｗに成るような場合には、常にデータの取りこぼしがある訳ではないので、全体画像を見るまでユーザには、データの取りこぼしがあったかどうかが判らなかったりする可能性があった。
【００１６】
この問題を解決するために、本出願人は、特願２００１−３６１６８９において、次のような手段によってこれを解決している。すなわち、パソコンのプリンタドライバ設定画面で印字テストボタンが押されると、パソコン（ドライバ）側から、予め定めた１バイト単位のテストデータ列をＩＥＥＥ１２８４のコンパチビリティモードで所定量送り、プリンタ側では、３タイプあるサブモードの受信タイミングを順次変えていき、受信されたデータ列が所定の入力されるべき１バイト単位のテストデータ列と、どのサブモードで一致しているかを判断し、正しくデータを受け取れているサブモードをプリンタに設定記憶するというものである。
【００１７】
しかし、この先行技術においても、ホストが持っている転送スピードを十分に活かしきれていない場合があった。図５にあるＡＣＫ−ｗｈｉｌｅ−ＢＵＳＹや、ＡＣＫ−ａｆｔｅｒ−ＢＵＳＹモードを使用するホストにおいては、プリンタ側から出力するＡＣＫ信号の応答時間によって、ホスト側が待たされる時間が決まってくる。
【００１８】
そこで、本発明は、ホストコンピュータから送信されるデータを特定の通信モードで受信する周辺装置において適正な通信速度を自動的に設定する通信速度自動設定方法を提供することにある。
【００１９】
本発明の他の目的は、そのほうな通信速度自動設定方法を実施する周辺装置およびホストコンピュータ上で動作するデータ出力ドライバプログラムを提供することにある。
【００２０】
【課題を解決するための手段】
本発明による通信速度自動設定方法は、ホストコンピュータから送信されるデータを特定の通信モードで受信する周辺装置において通信速度を自動的に設定する方法であって、
（ａ）前記ホストコンピュータは、予め定めたテストデータ列を前記周辺装置に送信し、
（ｂ）前記周辺装置は、現在選択されている応答パルス幅で前記テストデータ列を受信し、その受信したテストデータ列を前記予め定めたテストデータ列と比較し、
（ｃ）前記周辺装置は、比較結果が一致した場合、さらに応答パルス幅を予め定めた幅だけ縮め、前記ホストコンピュータに一致を通知し、
（ｄ）前記ホストコンピュータは、前記予め定めたテストデータ列を前記周辺装置に再度送信し、
（ｅ）前記周辺装置における比較結果が不一致となるまで、ステップ（ｂ），（ｃ），（ｄ）を繰返し、
（ｆ）前記周辺装置は、不一致になる前の応答パルス幅を、以後の通信で利用する応答パルス幅として設定する
【００２１】
ことを特徴とする。
【００２２】
通常、ホストコンピュータが周辺装置から受ける応答パルス幅の間隔が何処まで対応しているかが分からないが、本発明の処理により、ホストコンピュータが持つ最大のパフォーマンスを自動で検出し周辺装置に設定することができる。
【００２３】
好ましくは、前記ホストコンピュータヘの応答パルス幅を縮めることにより、前記ホストコンピュータから次の予め定めたテストデータが前記周辺装置に送信されなくなった場合、予め定めた時間によるタイムアウト処理を行い、タイムアウト時にステップ（ｆ）へ移行する。
ことを特徴とする請求項１記載の通信速度自動設定方法。
【００２４】
前記特定の通信モードは、例えば、セントロニクスインタフェースのコンパチビリティモードにおけるＡＣＫ−ａｆｔｅｒ−ＢＵＳＹ、ＡＣＫ−ｗｈｉｌｅ−ＢＵＳＹサブモードである。
【００２５】
前記ステップ（ａ）〜（ｆ）に先だって、
（ｇ）前記ホストコンピュータは、前記周辺装置に対して通信モードの自動認識処理を行うことを通知し、
（ｈ）前記ホストコンピュータは、予め定めたテストデータ列を前記周辺装置に送信し、
（ｉ）前記周辺装置は、前記複数の通信モードのうち現在選択されている通信モードで前記テストデータ列を受信し、その受信したテストデータ列を前記予め定めたテストデータ列と比較し、
（ｊ）前記周辺装置は、比較結果が不一致の場合、前記複数の通信モードのうちの他の通信モードに変更し、前記ホストコンピュータに不一致を通知し、
（ｋ）前記周辺装置は、比較結果が一致した場合、以後の通信に利用する通信モードとして、現在の通信モードを設定するようにしてもよい。これによって、適正な通信モードの設定が行える。
【００２６】
本発明による周辺装置は、ホストコンピュータから送信されるデータを特定の通信モードで受信する周辺装置であって、前記ホストコンピュータから、予め定めたテストデータ列を受信する手段と、現在選択されている応答パルス幅で前記テストデータ列を受信し、その受信したテストデータ列を前記予め定めたテストデータ列と比較する手段と、比較結果が一致した場合、さらに応答パルス幅を予め定めた幅だけ縮め、前記ホストコンピュータに一致を通知する手段と、前記比較結果が不一致となったとき、不一致になる前の応答パルス幅を、以後の通信で利用する応答パルス幅として設定する手段とを備えたことを特徴とする。
【００２７】
本発明によるデータ出力ドライバプログラムは、ホストコンピュータから送信されるデータを特定の通信モードで受信する周辺装置において通信速度を自動的に設定するためにホストコンピュータ上で動作するデータ出力ドライバプログラムであって、
（ａ）予め定めたテストデータ列を前記周辺装置に送信するステップと、
（ｂ）前記周辺装置が、現在選択されている応答パルス幅で受信したテストデータ列を前記予め定めたテストデータ列と比較した比較結果の通知を受けるステップと、
（ｃ）前記比較結果が一致した旨の通知を受けたとき、ステップ（ａ）に戻ることを特徴とする。
【００２８】
【発明の実施の形態】
以下、本発明の実施の形態を図面に基づいて、詳細に説明する。
【００２９】
まず、図１に、本発明によるシステムの通信概念図を示す。このシステムは、ホストとしてのパーソナルコンピュータ（パソコン）１１とこのパソコン１１にセントロニクスケーブルにより接続されたプリンタ１２とからなる。このシステムの動作については後述する。
【００３０】
図２にプリンタ１２の内部の概略構成を示す。プリンタ１２の全体の動作はＣＰＵ３６により制御される。ＣＰＵ３６には、プリンタ１２の制御プログラムを格納したＲＯＭ３８、所定のデータを不揮発的に書き込むことができる不揮発性メモリの一種としてのＥＥＰＲＯＭ３７、および各種データを一時的に記憶するためのメモリ（ＤＲＡＭ）３６が接続されている。プリンタ１２は、ＩＥＥＥ１２８４Ｉ／Ｆコネクタ３１を介してパソコン１１に接続される。ＩＥＥＥ１２８４Ｉ／Ｆコネクタ３１は、ＩＥＥＥ１２８４コントローラ３２を介してＦＩＦＯ（Ｆｉｒｓｔ　Ｉｎ　Ｆｉｒｓｔ　Ｏｕｔ）バッファ３３に接続されている。パソコン１１からプリンタ１２へのデータは、ＤＭＡコントローラ３４により一旦ＦＩＦＯ３３に書き込まれ、その後、ＣＰＵ３６によりＤＲＡＭ３５に取り込まれる。
【００３１】
図５にパソコン１１に接続されているプリンタ１２のドライバ（データ出力ドライバプログラム）の属性を示すプロパティ画面の例を示す、この画面には、本実施の形態に係る印字テストボタン２１が設けられている。同じ画面上に設けられている信頼性テストボタン２２は本発明に直接関係しない。印字テストボタン２１を押すことにより、上記特願２００１−３６１６８９に開示したような通信モード自動認識処理と本発明の通信速度自動設定処理が開始される。
【００３２】
再度図１を参照し、本実施の形態における通信モード自動認識処理と通信速度自動設定処理の流れを説明する。まずステップ▲１▼では、ユーザの指示に応じて、例えば、ユーザがプリンタドライバのプロパティ画面（図３）上の印字テストボタン２１を指示することにより、通信モード自動認識処理が開始されることをプリンタ１２に通知するためのネゴシエーションが開始され、プリンタ１２をテストモードに変更させる。このネゴシエーションのためには、例えば、ＩＥＥＥ１２８４拡張要求値のビット１とビット３がリザーブで空いているので、そのいずれかのビットを使用してプリンタ１２にＩＥＥＥ１２８４コンパチビリティテストモードであることを通知すれば良い。
【００３３】
次にステップ▲２▼では、所定のテストデータ列の送信がプリンタ１２に対して実行される。ここでいう所定のテストデータ列とは、１バイトのデータを００ｈ〜ＦＦｈまで１ずつ連続的に増加させたデータのことである。但し、所定のテストデータ列はこれに限るものではない。
【００３４】
このときのプリンタ１２内部でのデータの流れを図２のブロック図で説明する。テストデータ列は、ＩＥＥＥ１２８４Ｉ／Ｆコネクタ３１から入力され、まず、コンパチビリティモードの一つのサブモードであるＡｃｋ−Ｉｎ−Ｂｕｓｙモードに設定されたＩＥＥＥ１２８４コントローラ３２により、ＳＴＲＯＢＥ信号の立ち下がりで、ＩＥＥＥ１２８４コントローラ３２の内部に一旦１バイト分書込まれる。これを受けたＤＭＡコントローラ３４は、ＩＥＥＥ１２８４コントローラ３２から、ＦＩＦＯ３３に１バイト分ＤＭＡ転送を行なう。
【００３５】
ＣＰＵ３６は、所定時間（例えば１０ｍｓｅｃ）毎に、ＦＩＦＯ３３にデータが溜まっていないか、ＦＩＦＯ３３のフラグチェックを行ない、もし溜まっていた場合には、ＦＩＦＯ３３が空になるまでそのデータを読み出してＤＲＡＭ３５に書き込む。
【００３６】
その後、ＣＰＵ３６は、このＤＲＡＭ３５に書き込まれたデータが予期したテストデータ列であるか、すなわち、順次のバイトデータが正規の順序である００ｈ〜ＦＦｈまで、１ずつ増加しているかをチェックする。
【００３７】
パソコン１１は、テストデータ列全体を送り終えた後、ニブルモードに切り換えて、プリンタ１２が正しくテストデータ列を受け取れたかの確認を行なう（図１の▲３▼）。そのとき、プリンタ１２では、ＩＥＥＥ１２８４コントローラ３２の設定をサブモードであるＡＣＫ−ｉｎ−ＢＵＳＹモードとして、ＥＥＰＲＯＭ３７（図２）に記憶しておく。以後のＩＥＥＥ１２８４コントローラ３２のサブモードは、プリンタ１２の電源がＯＦＦされた後も、電源ＯＮ時に再度同じサブモードに設定される。
【００３８】
もし、正しくテストデータを受け取れていないという返答がプリンタ１２から帰って来た場合は、プリンタ１２において、ＩＥＥＥ１２８４コントローラ３２をさらに他のサブモードであるＡＣＫ−ｗｈｉｌｅ−ＢＵＳＹモードに設定し、再びテストデータ列をプリンタ１２に対して送る。これでも、正しくテストデータを受け取れなかった場合は、最後にＡＣＫ−ａｆｔｅｒ−ＢＵＳＹモードに設定して同じテストを行う。
【００３９】
ここで、サブモードの内のＡＣＫ−ｗｈｉｌｅ−ＢＵＳＹもしくは、ＡＣＫ−ａｆｔｅｒ−ＢＵＳＹモードで正しくテストデータを受け取った場合には、さらに通信速度自動設定処理に移る。
【００４０】
通信速度自動設定処理に移ったパソコン１１は、引き続き所定のテストデータをプリンタ１２に送信し（▲２▼）、プリンタ１２は、パソコン１１からのテストデータに対する応答信号であるＡＣＫ信号のパルス幅を所定の幅だけ縮めて受信したデータが予期したテストデータ列であるか、すなわち、順次のバイトデータが正規の順序である００ｈ〜ＦＦｈまで、１ずつ増加しているか、を再びチェックする（▲３▼）。但し、このとき用いるテストデータ列は通信モード自動認識処理時に用いるものと必ずしも同じである必要はない。
【００４１】
正しくテストデータを受信できた場合には、さらにＡＣＫ信号のパルス幅を所定の幅だけ縮めて同様のことを繰り返す。正しくテストデータを受信できなかった場合には、現状のＡＣＫ信号のパルス幅を縮める一つ（または所定数）前のパルス幅の設定を使用するサブモードとしてＥＥＰＲＯＭ３７（図２）に記憶しておく。以後のＩＥＥＥ１２８４コントローラ３２のサブモード（およびＡＣＫ信号のパルス幅）は、プリンタ１２の電源がＯＦＦされた後も、電源ＯＮ時に再度同じサブモードに設定される。
【００４２】
最後に、所定のサンプル画像をプリンタ１２に対して送信する（図１の▲４▼）。このサンプル画像には、テスト結果の情報を含んでも良い。
【００４３】
このようにして、使用しているパソコン１１に対して最適で高速なコンパチビリティモードをプリンタ１２に設定することができる。
【００４４】
図４に、本実施形態における通信速度自動認識処理でのホストとプリンタのそれぞれの具体的な処理をフローチャートとして示す。この処理は、前述したように、ユーザによる印字テストボタン２１の指示により開始される。
【００４５】
まず、ホストとプリンタとの間で前記ネゴシエーションを行い、ホストからプリンタヘテストモードの通知を行う（Ｓ２１，Ｓ３１）。その後、ホストがテストデータ列を送信し（Ｓ２２）、プリンタがこのテストデータ列を受信する（Ｓ３２）。プリンタでは受信列が予期したテストデータ列かを比較し、両者が完全に一致するか否かをチェックする（Ｓ３３）。プリンタは、この比較の結果をホストヘ送信する（Ｓ３４）。ホストはこの比較結果を受信し（Ｓ２３）、それがＯＫでなければ（Ｓ２４，Ｎｏ）、サブモードを変更して（Ｓ３６）、ステップＳ３２に戻り、再度次のテストデータ列を受信し、ステップＳ３３でデータの比較を行う。比較結果がＯＫになり（Ｓ３５，Ｙｅｓ）、さらに、サブモードがＡＣＫ−ｉｎ−ＢＵＳＹであれば（Ｓ２５，Ｓ３７）、ＥＥＰＲＯＭ３７（図２）に記憶しておく（Ｓ４４）。次いで、ホストから受信したサンプル画像を受信し（Ｓ４５）、印刷する。
ステップ２５，３７において、サブモードがＡＣＫ−ｗｈｉｌｅ−ＢＵＳＹもしくは、ＡＣＫ−ａｆｔｅｒ−ＢＵＳＹであれば、さらにホストがテストデータを送信し（Ｓ２６）、プリンタがこのテストデータ列を受信する（Ｓ３８）。プリンタでは、受信データ列が予期したテストデータ列かを比較し、両者が完全に一致するか否かをチェックする（Ｓ３９）。プリンタは、この比較の結果をホストヘ送信する（Ｓ４０）。ホストはこの比較結果を受信し（Ｓ２７）、それがＯＫであれば（Ｓ２８、Ｓ４１，Ｙｅｓ）、ＡＣＫ信号パルス幅を変更する（Ｓ４２）。この変更量は例えば０．１μＳである。その後、ステップＳ３８に戻り、再度次のテストデータ列を受信し、ステップＳ３９でデータの比較を行う。
【００４６】
比較結果がＯＫでなければ（Ｓ２８、Ｓ４１，Ｎｏ）、１つまたは所定数（例えば２）前のＯＫだったときのモードをＥＥＰＲＯＭ３７（図２）に記憶しておく（Ｓ４３）。次いで、ホストから受信したサンプル画像を受信し（Ｓ４５）、印刷する。
【００４７】
なお、ホストヘの応答パルス幅を縮めることにより、ステップＳ２６においてホストがプリンタからの受信確認を正常に認識できなくなった場合には、ホストから新たなテストデータ列がプリンタへ送信されなくなる。プリンタは、ステップＳ３８においてホストから次の予め定めたテストデータが前記周辺装置に送信されなくなった場合、予め定めた時間によるタイムアウト処理を行い、タイムアウト時にステップＳ４３へ移行する。
【００４８】
また、本発明は通信速度自動設定処理を主眼とするものであり、その前の通信モード自動認識処理は必須のものではない。すなわち、通信モードの選択自体は手動で行ってもよい。
【００４９】
図５は、通信速度自動設定処理におけるＡＣＫ−ｗｈｉｌｅ−ＢＵＳＹモード時のＡＣＫ信号のパルス幅の変化について示した波形である。Δｔは、ＡＣＫ信号がＨｉｇｈになってからＳＴＲＯＢＥ信号がＬｏｗになるまでのパソコン１１に起因する時間である。Δｘは、ＢＵＳＹ信号がＬｏｗになってからＡＣＫ信号がＨｉｇｈになるまでのプリンタ１２に起因する時間である。Δｘが下の図のΔｘ‘となるようにＡＣＫ信号のパルス幅を縮めることにより、隣接するＤＡＴＡとＤＡＴＡの間隔を狭めることができることが分かる。
【００５０】
図６は、通信速度自動設定処理におけるＡＣＫ−ａｆｔｅｒ−ＢＵＳＹモード時のＡＣＫ信号のパルス幅の変化について示した波形である。図５同様に、ＡＣＫ信号のパルス幅を縮めることでＤＡＴＡとＤＡＴＡの間隔を狭めることができることが分かる。
【００５１】
以上、本発明の好適な実施の形態について説明したが、種々の変形、変更が可能である。例えば、上記ではプリンタについてのみ説明したが、ＩＥＥＥ１２８４のコンパチビリティモードを利用する他の周辺装置に本発明を提供することもできる。
【００５２】
【発明の効果】
本発明によれば、ホストと周辺装置との間で、応答パルス幅を逐次変化させながらの反復的なテストデータ列の授受を行うことにより、確実な通信が行える高速の通信が行える応答パルス幅を見極めてその設定を行うことができ、その結果としてホストと周辺装置との間の通信のスループットを向上させることが可能となる。
【図面の簡単な説明】
【図１】本発明によるシステムの通信概念図である。
【図２】図１のシステムのプリンタ内部の概略構成を示すブロック図である。
【図３】パソコンに接続されているプリンタドライバの属性を示すプロパティ画面の例を示す図である。
【図４】本発明の実施形態における通信速度自動設定処理でのホストとプリンタのそれぞれの処理を示すフローチャートである。
【図５】本発明のＡＣＫ−ｗｈｉｌｅ−ＢＵＳＹモード時の概略タイミングを示す図である。
【図６】本発明のＡＣＫ−ａｆｔｅｒ−ＢＵＳＹモード時の概略タイミングを示す図である。
【図７】セントロニクスインタフェースのコンパチビリティモードのハンドシェークを示す図である。
【図８】セントロニクスインタフェースのコンパチビリティモードのハンドシェークでの問題点を示す図である。
【符号の説明】
１１…パーソナルコンピュータ（ホストコンピュータ）
１２…プリンタ
２１…印字テストボタン
３１…ＩＥＥＥ１２８４Ｉ／Ｆコネクタ
３２…ＩＥＥＥ１２８４コントローラ
３３…ＦＩＦＯ
３４…ＤＭＡコントローラ
３５…ＤＲＡＭ
３６…ＣＰＵ
３７…ＥＥＰＲＯＭ
３８…ＲＯＭ
【図１】
2004005244.tif 000003
【図２】
2004005244.tif 000004
【図３】
2004005244.tif 000005
【図４】
2004005244.tif 000006
【図５】
2004005244.tif 000007
【図６】
2004005244.tif 000008
【図７】
2004005244.tif 000009
【図８】
2004005244.tif 000010