(57)【特許請求の範囲】
【請求項１】
所定の通信規格で規定されたニブルモードのプロトコルシーケンスで通信を行うことが可能なパラレルインタフェース回路において、
回路の切替えを指示するパラレルインタフェース出力切替え指示手段と、
前記パラレルインタフェース出力切替え指示手段の切替えの指示に基づいてパラレルインタフェース出力を低抵抗値のプルアップ抵抗を持つトーテムポール回路と高抵抗値のプルアップ抵抗を持つオープンコレクタないしはオープンドレイン回路とのいずれか一方に切替える出力切替え手段とを有することを特徴とするパラレルインタフェース回路。
【請求項２】
前記パラレルインタフェース出力切替え指示手段は、前記パラレルインタフェース出力を前記トーテムポール回路と前記オープンコレクタないしはオープンドレイン回路とのいずれか一方に切替えるために、前記出力切替え手段に対して、設定時間によって切替えの指示を出すことを特徴とする請求項１に記載のパラレルインタフェース回路。
【請求項３】
周辺装置からホスト装置への信号遅延を検出する検出手段と、
該検出手段の検出結果に応じて前記設定時間を可変に設定する時間設定手段とを有することを特徴とする請求項２に記載のパラレルインタフェース回路。
【請求項４】
所定の通信規格に準拠したパラレルインタフェースで接続されたホスト装置とプリンタ装置とからなるプリンタシステムにおいて、
前記ホスト装置は、前記所定の通信規格で未定義である所定値の拡張要求値でネゴシエーション動作を実行するネゴシエーション実行処理手段と、
前記ネゴシエーション動作に対して前記プリンタ装置が肯定応答した場合に、該プリンタ装置のニブルモード時のステータス信号線のレベルの変化を監視するレベル監視手段と、
前記ステータス信号線が全てハイになったところで前記プリンタ装置に信号を返す信号出力手段と、
該信号出力手段の動作を終了した後、ターミネーション動作を実行するターミネーション実行処理手段とを有し、
前記プリンタ装置は、前記ホスト装置から前記所定値の拡張要求値でネゴシエーション動作があったときに、前記肯定応答を以てネゴシエーションに応答するネゴシエーション応答処理手段と、
前記ステータス信号線を全てローにした後、ハイにする信号出力手段と、
前記ホスト装置のターミネーション動作に呼応してターミネーションの応答処理を実行するターミネーション応答処理手段と
を有することを特徴とするプリンタシステム。
【請求項５】
前記プリンタ装置は、
パラレルインタフェース出力切替え指示手段と、
該パラレルインタフェース出力切替え指示手段の指示に基づいてパラレルインタフェース出力を低抵抗値のプルアップ抵抗を持つトーテムポール回路と高抵抗値のプルアップ抵抗を持つオープンコレクタないしはオープンドレイン回路とのいずれか一方に切替える出力切替え手段と
を有することを特徴とする請求項４に記載のプリンタシステム。
【請求項６】
前記プリンタ装置の前記パラレルインタフェース出力切替え指示手段は、前記パラレルインタフェース出力を前記トーテムポール回路と前記オープンコレクタないしはオープンドレイン回路とのいずれか一方に切替える前記出力切替え手段に対して、設定時間によって切替え指示を出すことを特徴とする請求項５に記載のプリンタシステム。
【請求項７】
前記プリンタ装置は、前記設定時間を可変に設定する時間設定手段を有することを特徴とする請求項６に記載のプリンタシステム。
【請求項８】
前記時間設定手段は、前記ホスト装置が前記所定の規格で未定義である所定値の拡張要求値でネゴシエーション動作を実行し、該ネゴシエーション動作に対して前記プリンタ装置が肯定応答した場合に、前記ホスト装置と前記プリンタ装置間の双方向通信で前記設定時間の最適値を設定するための所定のテストモードを実行することを特徴とする請求項７に記載のプリンタシステム。
【請求項９】
所定の通信規格に規定されたニブルモードのプロトコルシーケンスで通信を行うことが可能なパラレルインタフェースとホスト装置にステータス信号を送信するステータス信号送信部と、
該ステータス信号送信部が発した各ステータス信号を受けて前記ホスト装置に出力するドライバ部と、
前記ステータス信号送信部が発した各ステータス信号および、その信号に対する前記ドライバ部の出力信号のロジックレベルを検知するステータス信号出力確認部と、
前記ロジックレベルの検知に基づいて、前記ステータス信号の信号遅延を求めるカウンタ回路と、
パラレルインタフェース出力切替え指示手段を、
該パラレルインタフェース出力切替え指示手段の指示に基づいてパラレルインタフェース出力を低抵抗値のプルアップ抵抗を持つトーテムポール回路と、高抵抗値のプルアップ抵抗を持つオープンコレクタないしはオープンドレイン回路とのいずれか一方に切替える出力切替え手段と
を有することを特徴とするプリンタ装置。
【請求項１０】
前記ステータス信号送信部と、前記ドライバ部と、前記ステータス信号出力確認部と、前記カウンタ回路とによって前記ステータス信号の遅延を求めることを特徴とする請求項９に記載のプリンタ装置。
【請求項１１】
前記パラレルインタフェース出力切替え指示手段は、前記パラレルインタフェース出力を前記トーテムポール回路と前記オープンコレクタないしはオープンドレイン回路のいずれか一方に切替える前記出力切替え手段に対して、設定時間によって切替え指示を出すことを特徴とする請求項９または１０に記載のプリンタ装置。
【請求項１２】
前記設定時間を可変に設定する時間設定手段を有することを特徴とする請求項１１に記載のプリンタ装置。
【発明の詳細な説明】
【０００１】
【産業上の利用分野】
本発明は、パーソナルコンピュータ等のホスト装置とプリンタ等の周辺装置間などでニブルモード（ｎｉｂｂｌｅ  ｍｏｄｅ）等でデータ伝送を行うパラレルインタフェース回路およびプリンタシステムおよびプリンタ装置に関する。
【０００２】
【従来の技術】
パーソナルコンピュータ等のホスト装置とプリンタ等の周辺装置間でデータ伝送を行うのに、セントロニクス社仕様のパラレルＩ／Ｆ（インタフェース）が広く用いられている。
【０００３】
しかしながら、上記パラレルＩ／Ｆはホスト装置から周辺装置への単方向のデータ通信しか規定していなかったため、ＩＥＥＥ（米国の電気電子技術者協会）において上記パラレルＩ／Ｆと上位互換の双方向パラレルＩ／Ｆ標準が規定されつつある（ＩＥＥＥ  Ｐ１２８４  Ｓｔａｎｄａｒｄ  Ｓｉｇｎａｌｉｎｇ  Ｍｅｔｈｏｄ  ｆｏｒ  ａ  Ｂｉ−ｄｉｒｅｃｔｉｏｎ  Ｐａｒａｌｌｅｌ  Ｐｅｒｉｐｈｅｒａｌ  Ｉｎｔｅｒｆａｃｅ  ｆｏｒ  Ｐｅｒｓｏｎａｌ  Ｃｏｍｐｕｔｅｒｓ参照）。
【０００４】
ＩＥＥＥ  Ｐ１２８４で定める通信モードのうち、ニブルモードは、周辺装置からホスト装置へのデータ伝送を４本のステータス信号を利用して実現するものであり、データ信号を双方向転送に対応させる必要がないため、上記従来のパラレルＩ／Ｆとほぼ同様のハード構成でよく、既存のいわゆるＰＣ（パーソナルコンピュータ）互換機や周辺装置の多くではソフトを対応させるだけで双方向通信が可能となる。双方向通信では、例えばプリンタ装置等の周辺装置の動作状況をホスト装置側で監視できるため、ユーザーに対して、より一層使い勝手の良い装置を提供することができる。
【０００５】
【発明が解決しようとする課題】
しかしながら、既存のＰＣ互換機やプリンタ装置では電気的インタフェースのレイヤでＩＥＥＥ  Ｐ１２８４に規定された要求事項を満たしていないものが少なからず存在する。その一例として、図７に周辺装置からホスト装置へ向かうステータス信号の典型的なインタフェース回路例を示す。図中の７０１は周辺装置側のドライバであり、オープンコレクタ回路が広く用いられている。Ｒ１は当該オープンコレクタ回路７０１のプルアップ抵抗である。一方、７０２はＰＣ側のレシーバであって、一般的には７４ＬＳシリーズのＴＴＬ（トランジスタ・トランジスタ論理回路）、もしくはそれと同等のものが多く用いられている。
【０００６】
ＰＣ側ではレシーバ７０２の前段に図に示すような抵抗Ｒ２，Ｒ３、コンデンサＣ１が付加されているものがある。これら各ＣＲ素子の定数は、＜ＩＥＥＥ  Ｐ１２８４  Ｄ２．００  Ｓｅｐｔｅｍｂｅｒ  １０，１９９３のＴａｂｌｅ  Ｃ４＞にも記載されているが、製造メーカーや機種によって違いがあり、Ｒ１以外の素子は無い場合もある。さらに、各信号に同定数のＣＲ素子が付加されているわけではなく、ステータス信号の内でＰｔｒＣｌｋ（＝ｎＡｃｋ）信号にはＣ１を付加しないか、あるいは小容量のコンデンサＣ１を付加し、残りのステータス信号すなわちｎＤａｔａＡｖａｉｌ（＝ｎＦａｕｌｔ）、ＸＦｌａｇ（＝Ｓｅｌｅｃｔ）、ＡｃｋＤａｔａＲｅｑ（＝ＰＥｒｒｏｒ）、ＰｔｒＢｕｓｙ（＝Ｂｕｓｙ）には容量の大きいＣ１を付加している例がある。
【０００７】
さて、例えばニブルモード時におけるＰｔｒＣｌｋ信号とリバースデータの伝送に用いられるステータス信号（ｎＤａｔａＡｖａｉｌ、ＸＦｌａｇ、ＡｃｋＤａｔａＲｅｑ、ＰｔｒＢｕｓｙ）のタイミングは図８の（ａ）に示す通りである。ＰｔｒＣｌｋ信号に対する各ステータス信号のセットアップ時間Ｔｐは、ＩＥＥＥ  Ｐ１２８４では０．５μ秒以上と規定されている。
【０００８】
しかしながら、先述の通り、ＰｔｒＣｌｋ信号以外のステータス信号に図７のＣ１を付加した（あるいはステータス信号側に容量の大きいＣ１を付加した）例では、図８中の（ｂ）の実線に示すようにステータス信号だけが大きく遅延してしまい、（図７の回路例からも明らかなように当該遅延はオープンコレクタ回路の特性上、ステータス信号がローレベルからハイレベルに遷移する時にその遅延は大きい。）実質的なセットアップ時間がとれずにステータス信号のレベルを読み違えてしまう場合があった。
【０００９】
したがって、周辺装置側がニブルモードをサポートしていても、既存のＰＣ互換機と接続した場合に、正常な通信が行えない可能性があった。そこで、このようなことを防ぐためには通信速度を犠牲にして周辺装置側でセットアップ時間Ｔｐを十分大きくとればよいが、それではセットアップ時間Ｔｐが小さくても正常に通信が行えるホスト装置との接続時にも、通信速度が遅くなってしまうという新たな課題が発生する。
【００１０】
また、図７のプルアップ抵抗Ｒ１を小さくすることによってレシーバ側のＣ１に流し込む電流を大きくし、信号の立上り時間を短縮することで、ステータス信号のセットアップ時間を満足するという方法がある。しかしながら、レシーバ側のＣ１の値はメーカーによってもまちまちであり、抵抗Ｒ１の値を決定することも難しく、抵抗Ｒ１の抵抗値が小さすぎるとローレベルの伝達が不確実になってしまうという場合もあった。
【００１１】
本発明は上述の点に鑑みてなされたもので、その目的の１つは、ホスト機器と周辺機器とを接続するパラレルインタフェース回路において、ステータス信号の立上り時間を短縮すると共にローレベルの伝達も確実に行うことが可能なパラレルインタフェース回路を提供することにある。
【００１２】
また、本発明における他の目的は、ＩＥＥＥ  Ｐ１２８４に規定されたプロトコルシーケンスでの通信を利用して、ホスト機器と周辺機器とを接続するパラレルＩ／Ｆ回路において、ステータス信号の立上り時間を短縮すると共にローレベルの伝達も確実に行うことが可能なプリンタシステムおよびプリンタ装置を提供することにある。
【００１３】
【課題を解決するための手段】
上記目的を達成するため、本発明のインタフェース回路は、所定の通信規格で規定されたニブルモードのプロトコルシーケンスで通信を行うことが可能なパラレルインタフェース回路において、回路の切替えを指示するパラレルインタフェース出力切替え指示手段と、前記パラレルインタフェース出力切替え指示手段の切替えの指示に基づいてパラレルインタフェース出力を低抵抗値のプルアップ抵抗を持つトーテムポール回路と高抵抗値のプルアップ抵抗を持つオープンコレクタないしはオープンドレイン回路とのいずれか一方に切替える出力切替え手段とを有することを特徴とする。
【００１４】
また、本発明のインタフェース回路は、他の形態として、前記パラレルインタフェース出力切替え指示手段は、前記パラレルインタフェース出力を前記トーテムポール回路と前記オープンコレクタないしはオープンドレイン回路とのいずれか一方に切替えるために、前記出力切替え手段に対して、設定時間によって切替えの指示を出すことを特徴とするこができる。
【００１５】
また、本発明のインタフェース回路は、他の形態として、周辺装置からホスト装置への信号遅延を検出する検出手段と、該検出手段の検出結果に応じて前記設定時間を可変に設定する時間設定手段とを有することを特徴とすることができる。
【００１６】
上記目的を達成するため、本発明のプリンタシステムは、所定の通信規格に準拠したパラレルインタフェースで接続されたホスト装置とプリンタ装置とからなるプリンタシステムにおいて、前記ホスト装置は、前記所定の通信規格で未定義である所定値の拡張要求値でネゴシエーション動作を実行するネゴシエーション実行処理手段と、前記ネゴシエーション動作に対して前記プリンタ装置が肯定応答した場合に、該プリンタ装置のニブルモード時のステータス信号線のレベルの変化を監視するレベル監視手段と、前記ステータス信号線が全てハイになったところで前記プリンタ装置に信号を返す信号出力手段と、該信号出力手段の動作を終了した後、ターミネーション動作を実行するターミネーション実行処理手段とを有し、前記プリンタ装置は、前記ホスト装置から前記所定値の拡張要求値でネゴシエーション動作があったときに、前記肯定応答を以てネゴシエーションに応答するネゴシエーション応答処理手段と、前記ステータス信号線を全てローにした後、ハイにする信号出力手段と、前記ホスト装置のターミネーション動作に呼応してターミネーションの応答処理を実行するターミネーション応答処理手段とを有することを特徴とする。
【００１７】
また、本発明のプリンタシステムは、他の形態として、前記プリンタ装置は、パラレルインタフェース出力切替え指示手段と、該パラレルインタフェース出力切替え指示手段の指示に基づいてパラレルインタフェース出力を低抵抗値のプルアップ抵抗を持つトーテムポール回路と高抵抗値のプルアップ抵抗を持つオープンコレクタないしはオープンドレイン回路とのいずれか一方に切替える出力切替え手段とを有することを特徴とすることができる。
【００１８】
また、本発明のプリンタシステムは、他の形態として、前記プリンタ装置の前記パラレルインタフェース出力切替え指示手段は、前記パラレルインタフェース出力を前記トーテムポール回路と前記オープンコレクタないしはオープンドレイン回路とのいずれか一方に切替える前記出力切替え手段に対して、設定時間によって切替え指示を出すことを特徴とすることができる。
【００１９】
また、本発明のプリンタシステムは、他の形態として、前記プリンタ装置は、前記設定時間を可変に設定する時間設定手段を有することを特徴とすることができる。
【００２０】
また、本発明のプリンタシステムは、他の形態として、前記時間設定手段は、前記ホスト装置が前記所定の規格で未定義である所定値の拡張要求値でネゴシエーション動作を実行し、該ネゴシエーション動作に対して前記プリンタ装置が肯定応答した場合に、前記ホスト装置と前記プリンタ装置間の双方向通信で前記設定時間の最適値を設定するための所定のテストモードを実行することを特徴とする。
【００２１】
上記目的を達成するため、本発明のプリンタ装置は、所定の通信規格に規定されたニブルモードのプロトコルシーケンスで通信を行うことが可能なパラレルインタフェースとホスト装置にステータス信号を送信するステータス信号送信部と、該ステータス信号送信部が発した各ステータス信号を受けて前記ホスト装置に出力するドライバ部と、前記ステータス信号送信部が発した各ステータス信号および、その信号に対する前記ドライバ部の出力信号のロジックレベルを検知するステータス信号出力確認部と、前記ロジックレベルの検知に基づいて、前記ステータス信号の信号遅延を求めるカウンタ回路と、パラレルインタフェース出力切替え指示手段を、該パラレルインタフェース出力切替え指示手段の指示に基づいてパラレルインタフェース出力を低抵抗値のプルアップ抵抗を持つトーテムポール回路と、高抵抗値のプルアップ抵抗を持つオープンコレクタないしはオープンドレイン回路とのいずれか一方に切替える出力切替え手段とを有することを特徴とする。
【００２２】
また、本発明のプリンタ装置は、他の形態として、前記ステータス信号送信部と、前記ドライバ部と、前記ステータス信号出力確認部と、前記カウンタ回路とによって前記ステータス信号の遅延を求めることを特徴とすることができる。
【００２３】
また、本発明のプリンタ装置は、他の形態として、前記パラレルインタフェース出力切替え指示手段は、前記パラレルインタフェース出力を前記トーテムポール回路と前記オープンコレクタないしはオープンドレイン回路のいずれか一方に切替える前記出力切替え手段に対して、設定時間によって切替え指示を出すことを特徴とすることができる。
【００２４】
また、本発明のプリンタ装置は、他の形態として、前記設定時間を可変に設定する時間設定手段を有することを特徴とすることができる。
【００２５】
【作用】
本発明では、周辺機器側のパラレルＩ／Ｆ回路の出力にトーテムポールドライバを付加し、コントロール信号を用いて出力段の素子を別々に制御することで、パラレルＩ／Ｆ回路出力をトーテムポーム回路とオープンコレクタないしはオープンドレイン回路とに切り替える。これにより、ステータス信号の立上り時間が短縮でき、ローレベルの伝達も確実に行うことが可能となる。
【００２６】
【実施例】
以下、図面を参照して本発明の実施例を詳細に説明する。
【００２７】
（第１実施例）
図１は本発明の第１実施例のパラレルインタフェース回路の構成を示す。ここで、１０２はゲート信号制御回路であり、その一方の出力信号ＣＯＮＴ１はインバータＩＮ１を介してアンドゲートＡＮＤの一方の入力端子に接続し、他方の出力信号ＣＯＮＴ２はアンド回路ＡＮＤの他方の入力端子と別のインバータＩＮ２とに接続している。抵抗Ｒ１、ＭＯＳＦＥＴ（電界効果トランジスタ）のＴＲ１，ＴＲ２，ＴＲ３は正電源５Ｖとグランド間に直列に接続されている。そして、アンド回路ＡＮＤの出力がＴＲ１のゲートに接続し、インバータＩＮ２の出力がＴＲ２およびＴＲ３のゲートに接続している。ＴＲ２のソースとＴＲ３のドレインの接点がレシーバ側出力単１０１とプルアップ抵抗Ｒ２とに接続している。
【００２８】
以上の構成により、ゲート信号制御回路１０２は２本のコントロール信号ＣＯＮＴ１，ＣＯＮＴ２によりｎチャンネルＭＯＳＦＥＴのＴＲ１とＴＲ２、ｐチャンネルＭＯＳＦＥＴのＴＲ３を別々に制御することを可能としている。抵抗Ｒ１は出力端１０１がローレベルからハイレベルへ遷移する時、すなわちＴＲ１，ＴＲ２がＯＮした時、出力ラインをプルアップするプルアップ抵抗であり、低抵抗値である。抵抗Ｒ２は出力端１０１がハイレベルに安定している時、または、出力端１０１がローレベルの時、すなわちＴＲ３がＯＮした時に、出力ラインをプルアップするプルアップ抵抗であり、高抵抗値である。
【００２９】
上記のように、従来のオープンコレクタ回路において問題であったステータス信号の信号遅延を減少させ、セットアップ時間を規定時間内に満足するために、レシーバ側のＣ１（図７参照）に流し込む電流値を決めるプルアップ抵抗Ｒ１の値を小さくしており、さらに、確実にローレベルを維持するように出力ラインのプルアップ抵抗Ｒ２の抵抗値を高く設定している。
【００３０】
図２に図１のゲート信号制御回路１０２の構成例を示す。ここで、２０１はエッジ検出回路、２０２はＪＫフリップフロップ、２０３および２０４はＤフリップフロップ、２０５はカウンタ回路、および２０６は比較回路である。
【００３１】
エッジ検出回路２０１は出力端１０１に出力される信号ＤＩＮの立上りエッジを検出する。ＪＫフリップフロップ２０２はエッジ検出回路２０１の出力と後述の比較回路２０６の出力とによりＴＲ１のゲートを制御するコントロール信号ＣＯＮＴ１を生成する。Ｄフリップフロップ２０３，２０４はＴＲ２，ＴＲ３のゲートを制御するコントロール信号ＣＯＮＴ２を生成し、ＣＬＯＣＫ信号によりＴＲ１のゲートを制御するコントロール信号ＣＯＮＴ１とタイミングを合わせている。カウンタ回路２０５はコントロール信号ＣＯＮＴ１のパルス幅、すなわちＴＲ１をＯＮしている時間をカウントしている。
【００３２】
比較回路２０６は信号ＴＩＭＥ［３：０］により設定されたコントロール信号ＣＯＮＴ１のイネーブル時間を検出し、コントロール信号ＣＯＮＴ１をディセーブルにするパルスを生成する。このパルスはＪＫフリップフロップ２０２のＪ端子に供給される。
【００３３】
上記構成により、このゲート信号制御回路１０２はＴＲ１とＴＲ２，ＴＲ３のゲートを制御するコントロール信号ＣＯＮＴ１，ＣＯＮＴ２を生成する。
【００３４】
次に、図１，図２に示すパラレルインタフェース回路を参照して、本実施例の詳細な動作について述べる。
【００３５】
まず、出力端１０１がローレベル（Ｌｏｗ）からハイレベル（Ｈｉｇｈ）へ遷移する時には、エッジ検出回路２０１において検出されたＤＩＮ信号の立上りパルスにより、ＪＫフリップフロップ２０２はＴＲ１のゲートを制御するコントロール信号ＣＯＮＴ１をイネーブルにし、これによりカウンタ回路２０５はイネーブル（カウント可能）になりカウントを開始する。この後、カウンタ回路２０５のカウント値が信号ＴＩＭＥ［３：０］により設定されたコントロール信号ＣＯＮＴ１のイネーブル時間に達すると、比較回路２０６によりコントロール信号ＣＯＮＴ１をディセーブルにするパルスを生成する。
【００３６】
ここで、ＴＩＭＥ［３：０］の値は例えば比較回路２０６内のレジスタにセットできる値であり、書き換えることは可能である。したがって、ホスト装置からＩ／Ｆ回路を介して設定したり、また、周辺装置の操作部から設定することも容易に実現可能である。比較回路２０６で生成されたパルスにより、ＪＫフリップフロップ２０２を介してコントロール信号ＣＯＮＴ１はディセーブルになり、カウンタ回路２０５をクリアし、カウンタ回路２０５のイネーブル信号もディセーブルされる。
【００３７】
ここで、コントロール信号ＣＯＮＴ１のイネーブル時間は、ＰｒｔＣｌｋ信号に対する各ステータス信号のセットアップ時間ＴｐがＩＥＥＥ  Ｐ１２８４では０．５μ秒以上と規定されているので、０．５μ秒以下が適当であると思われる。
【００３８】
また、ＤＩＮ信号はＤフリップフロップ２０３，２０４によって、ＴＲ１のゲートを制御するコントロール信号ＣＯＮＴ１とＣＬＯＣＫ信号を基にタイミングを合わせられ、ＴＲ２，ＴＲ３のゲートを制御するコントロール信号ＣＯＮＴ２となる。
【００３９】
以上の動作のタイミング図を図３の（ａ）に示す。同図のコントロール信号ＣＯＮＴ１，ＣＯＮＴ２によりＩ／Ｆ回路出力のトーテムポールとオープンコレクタを動的に切り換える。
【００４０】
出力端１０１のＤＩＮ信号がローレベルからハイレベルへ遷移する時は、コントロール信号ＣＯＮＴ１，ＣＯＮＴ２がそれぞれＣＯＮＴ１がロー（Ｌｏｗ）、ＣＯＮＴ２がハイ（Ｈｉｇｈ）になった時にＴＲ１，ＴＲ２がＯＮし、ＴＲ３がＯＦＦすることで、トーテムポール回路となり、出力ラインは低抵抗Ｒ１でプルアップされて、出力端１０１にはハイの信号が出力される。このため、レシーバ側のコンデンサＣ１（図７参照）に流し込む電流値を大きくとることができ、信号の立上り時間を短縮できる。コントロール信号ＣＯＮＴ１は電圧が安定したところ、ここでは所定時間（０．５μ秒以下）経過したところでハイになるので、ＴＲ１はＯＦＦされるので、オープンコレクタ回路に切り換わり、出力ラインは高抵抗Ｒ２でプルアップされる。
【００４１】
また、出力端１０１がハイレベルからローレベルへ遷移する時には、エッジ検出回路２０１においてＤＩＮ信号の立上りパルスが検出されないので、ＴＲ１に対するコントロール信号ＣＯＮＴ１はディセーブルのままである。また、ＤＩＮ信号はＤフリップフロップ２０３，２０４を通り、ＴＲ２，ＴＲ３に対するコントロール信号ＣＯＮＴ２となる。以上の動作のタイミング図を図３の（ｂ）に示す。同図のコントロール信号ＣＯＮＴ１，ＣＯＮＴ２がそれぞれＣＯＮＴ１はハイのまま、ＣＯＮＴ２はローになるので、ＴＲ１，ＴＲ２はＯＦＦ、ＴＲ３はＯＮすることで、オープンコレクタ回路のままであるので、出力ラインは高抵抗Ｒ２でプルアップされ、確実にローレベルを維持することができる。
【００４２】
前述のように、従来ではホスト装置によってセントロＩ／Ｆのレシーバ側に付加されている抵抗やコンデンサの容量が規定されておらず、統一されていなかったため、例えばニブルモード時におけるリバースデータの伝送に用いられるステータス信号が大きな遅延によりセットアップ時間を満足できず、信号レベルを読み違えてしまうようなことがあったが、上述のように本実施例ではパラレルＩ／Ｆ出力のトーテムポール回路とオープンコレクタ回路を動的に切り換えるようにしてある。これによって、トーテムポール回路の時は低抵抗Ｒ１で出力ラインをプルアップすることによりステータス信号の信号遅延を減少させ、セットアップ時間を満足するようにし、また、オープンコレクタ回路とした時は、高抵抗Ｒ２で出力ラインをプルアップするので、出力ラインを確実にローレベルに維持できる。従って、信号の読み違いを解消し、データの正確な伝送が可能となる。
【００４３】
さらに、従来のトーテムポール回路においては、出力がハイの時、出力ラインがグラウンド側にショート（短絡）するとＴＲ１はＯＮしたままなので、電流が流れ続けて素子破壊を起こしてしまうが、本実施例においては電圧が安定した後はコントロール信号ＣＯＮＴ１によりＴＲ１がＯＦＦしてオープンコレクタ回路になるため、出力ラインがグラウンド側にショートしてもＴＲ１には電流は流れず、素子破壊は起こさないという利点もあり、パラレルＩ／Ｆ回路の性能面のみならず、安全性の面についても向上することができる。
【００４４】
（第２実施例）
上述の本発明の第１実施例においては、ホスト装置によってセントロＩ／Ｆのレシーバ側に付加されている抵抗やコンデンサの容量が規定されておらず、統一されていなかったために、ＴＲ１のゲートを制御するコントロール信号ＣＯＮＴ１のイネーブル時間、すなわちＴＲ１がＯＮしている時間を可能な限り長くしていた。これに対し、以下に述べる本発明の第２実施例ではコントロール信号ＣＯＮＴ１のイネーブル時間を可変に設定できるようにし、ホスト装置との双方向通信によって、最適時間を決定するようにしている。すなわち、本実施例では、ＩＥＥＥ  Ｐ１２８４準拠のパラレルＩ／Ｆの双方向通信を利用して、周辺装置側からホスト装置への信号遅延を調べることで、使用するホスト装置に対してＴＲ１のゲートを制御するコントロール信号ＣＯＮＴ１のイネーブル時間の最適値を設定することを特徴とする。
【００４５】
図４は本実施例における各信号のタイミング図である。ここで、双方向パラレルＩ／Ｆの各信号の意味についてはＩＥＥＥ  Ｐ１２８４を参照されたい。なお、図４において網掛部は状態が不問のところ、斜線部はコンパチビリティモード時の状態とすべきところである。
【００４６】
また、図５は本実施例における動作手順を示すフローチャートである。これらの図４，図５を用いて以下に本実施例の動作を詳細に説明する。なお、回路構成自体は図１，図２と同様である。
【００４７】
まず、図４に示すタイミング図から明らかなようにＩＥＥＥ  Ｐ１２８４に規定されたネゴシエーションを行う。ここで、周辺装置は受信した拡張要求値（Ｅｘｔｅｎｓｉｂｉｌｉｔｙ  Ｒｅｑｕｅｓｔ  ｖａｌｕｅ）がＦ０Ｈ（ＩＥＥＥＰ１２８４において未定義の値であり、ここでは例えばＦ０ｈとした。なおｈは１６進を表す。）であった場合（Ｓ１，Ｓ２）、ＴＲ１のゲートを制御するコントロール信号ＣＯＮＴ１のイネーブル時間の最適値を設定するテストモード（以下便宜上、テストモードと呼ぶ。）に入る（Ｓ３〜Ｓ６）。拡張要求値がＦ０ｈ以外の場合は、通常の拡張要求値に応じた処理を行い（Ｓ８）、周辺装置がテストモードをサポートしていない場合は、周辺装置がＸＦ１ａｇ（Ｓｅｌｅｃｔ）信号をロー（Ｌｏｗ）に落とし、このモードに対応していないことを示すのでターミーネーション動作を行う（Ｓ７）。したがって、本実施例で述べる周辺装置がテストモードをサポートしていない場合でも何等問題を生じることはない。
【００４８】
さて、周辺装置がテストモードをサポートしていた場合、テストモードに入ったところでホスト装置はＨｏｓｔＣｌｋ（ｎＳｔｒｏｂｅ）信号をローに落とし、レベル監視手段（例えば、不図示のＣＰＵ）が全てのステータス信号線のレベルをポーリングする（Ｓ３）。
【００４９】
ＨｏｓｔＣｌｋ（ｎＳｔｒｏｂｅ）信号がローになったことを受けた周辺装置はニブルモード時のすべてのステータス信号線、ＡｃｋＤａｔａＲｅｑ（ＰＥｒｒｏｒ）、ＰｔｒＣｌｋ（ｎＡｃｋ）、ＰｔｒＢｕｓｙ（Ｂｕｓｙ）、ｎＤａｔａＡｖａｉｌ（ｎＦａｕｌｔ）、ＸＦｌａｇ（Ｓｅｌｅｃｔ）の信号線をローに落とす（Ｓ４）。
【００５０】
この後、周辺装置は全てのステータス信号線を同時にハイにする。この時、周辺装置はコントロール信号ＣＯＮＴ１のイネーブル時間を決定するためのカウンタ回路（不図示）をスタートさせる（Ｓ５）。
【００５１】
全てのステータス信号線がハイになったことを確認したホスト装置はＨｏｓｔＣｌｋ（ｎＳｔｒｏｂｅ）信号を立ち上げる。周辺装置はＨｏｓｔＣｌｋ（ｎＳｔｒｏｂｅ）信号の立上りを受けて上記カウンタ回路（不図示）を止め、この値をコントロール信号ＣＯＮＴ１のイネーブル時間を最適値として設定する。さらに、この値に所定のマージンを付加して設定してももちろん良い（Ｓ６）。
【００５２】
上述のテストモードの一連の動作が終了したところでターミネーションを行い（Ｓ７）、双方向通信を終了する。
【００５３】
テストモードで決定されたコントロール信号ＣＯＮＴ１のイネーブル時間の最適値は図２の比較回路２０６にＴＩＭＥ［３：０］の値として設定される。
【００５４】
以上のように、本実施例では、ホスト装置と周辺装置の双方向通信を用いて、ホスト装置に対してコントロール信号ＣＯＮＴ１のイネーブル時間の最適値を設定するようにしているので、トーテムポール回路とオープンコレクタ回路の動的な切り替えに対して、トーテムポール回路になっている時間を最適にすることができる。これにより、信号遅延を減少させ、すぐにオープンコレクタ回路に切り替えることが可能となる。そのため、出力ショート時の誤動作の可能性も極めて低くすることができる。
【００５５】
さらに、ホスト装置に最適なセットアップ時間を設定するので、速い通信が可能なホスト装置に対して通信速度を犠牲にしてプリンタ装置側でセットアップ時間Ｔｐを十分大きくとる必要がなくなり、ホスト装置に最適な動作環境を提供することを実現できる。
【００５６】
（第３実施例）
上記の本発明の第２実施例は、ホスト装置とプリンタ装置の双方向通信を利用してコントロール信号ＣＯＮＴ１のイネーブル時間の最適時間を決定するようにしていた。これに対し、以下に述べる本発明の第３実施例は、周辺装置側がニブルモード時のステータス信号線のレベルを監視し、コントロール信号ＣＯＮＴ１のイネーブル時間を制御するようにしたことを特徴とする。
【００５７】
図６は本発明の制御回路の構成を示す図である。ここで、６０１はホスト装置とプリンタ装置間のニブルモード通信時にステータス信号線、ＡｃｋＤａｔａＲｅｑ（ＰＥｒｒｏｒ）、ＰｒｔＣｌｋ（ｎＡｃｋ）、ＰｔｒＢｕｓｙ（Ｂｕｓｙ）、ｎＤａｔａＡｖａｉｌ（ｎＦａｕｌｔ）、ＸＦｌａｇ（Ｓｅｌｅｃｔ）の信号をホスト装置側へ送信するステータス信号送信部である。６０２および６０３ａ〜６０３ｄはステータス信号をホスト装置へ出力するドライバである。６０４ａ〜６０４ｄはこれらのドライバ６０３ａ〜６０３ｄへの入力信号のロジックレベルとそれに対する出力信号のロジックレベルが一致しているか否かを検出する論理ゲート（ＸＮＯＲ回路）である。６０５はこれらの論理ゲート６０４ａ〜６０４ｄの出力を受けて、全てのステータス信号に対して、入出力レベルが一致したことを検出する論理ゲート（ＡＮＤ回路）である。６０６はステータス信号送信部６０１からのカウントスタート信号、論理ゲート６０５からのカウントストップ信号、ＣＬＯＣＫ信号とに基づいて、ホスト装置とプリント装置間のスタータス信号の信号遅延時間を検出するカウンタ回路である。
【００５８】
以上の構成を有するプリンタ装置において、本実施例の動作を次に説明する。
【００５９】
本実施例においては、ホスト装置とプリンタ装置間の初めての通信のときに、コントロール信号ＣＯＮＴ１のイネーブル時間の最適時間を決定する。まず、スタータス信号送信部６０１はＰｔｒＣｌｋ信号以外のステータス信号をドライバ６０３ａ〜６０３ｄに発信すると同時に、カウンタ回路６０６にカウントスタート信号を出力し、カウンタ回路６０６のカウントがスタートする。
【００６０】
論理ゲート６０４ａ〜６０４ｄはそれぞれ上記ドライバ６０３ａ〜６０３ｄへの入力信号のロジックレベルとそれに対する出力信号のロジックレベルが一致しているか否かを監視しており、これらがすべてアクティブになったところで、上記論理ゲート６０５の出力信号（カウントストップ信号）がアクティブになり、カウンタ回路６０６をストップする。ここで求められたカウント値は図２の比較回路２０６にＴＩＭＥ［３：０］としてセットされる。もちろん、若干のマージンを見込んでセットしてもよい。
【００６１】
よって、本実施例ではホスト装置に合ったコントロール信号ＣＯＮＴ１のイネーブル時間を設定できるので、その最適時間でパラレルＩ／Ｆ回路出力をトーテムポール回路とオープンコレクタないしはオープンドレイン回路とに切り替えることが可能となる。したがって、本実施例では、ステータス信号の信号遅延を減少させ、セットアップ時間を満足させることができるので、信号の読み違いは解消する。また、本実施例はプリンタ装置自身でステータス信号を監視し、使用するホスト装置に応じて最適時間を設定できるので、より汎用性のある方法を実現できる。
【００６２】
【発明の効果】
以上、説明したように、ホスト装置によってセントロＩ／Ｆのレシーバ側に付加されている抵抗やコンデンサの容量が規定されておらず、統一されていなかったため、例えばニブルモード時におけるリバースデータの伝送に用いられるステータス信号が大きな遅延によりセットアップ時間を満足できず、信号レベルを読み違えてしまうようなことが従来技術ではあったが、本発明によれば、パラレルＩ／Ｆ出力のトーテムポール回路とオープンコレクタ回路を動的に切り換えるような構成としたので、これによってトーテムポール回路の時は低抵抗Ｒ１で出力ラインをプルアップすることによりステータス信号の信号遅延を減少させ、セットアップ時間を満足するようにし、また、オープンコレクタ回路とした時は、高抵抗Ｒ２で出力ラインをプルアップするので、出力ラインを確実にローレベルに維持できるようになり、信号の読み違いを解消することができる。
【００６３】
したがって、本発明によれば、セントロＩ／Ｆを用いたホスト装置と周辺装置の通信において、ホスト装置のメーカーや機種に依存することなく正確なデータの伝送が可能となる。また、ホスト装置に最適なセットアップ時間を設定することで、速い通信が可能なホスト装置に対して通信速度を犠牲にしてプリンタ装置側でセットアップ時間Ｔｐを十分大きくとる必要がなくなり、ホスト装置に最適な動作環境を提供できる。
【００６４】
さらに、従来のトーテムポール回路においては出力がハイの時、出力ラインがグラウンド側にショートするとＴＲ１はＯＮしたままなので、電流が流れ続けて素子破壊を起こしてしまうが、本発明においては、電圧が安定した後はコントロール信号ＣＯＮＴ１によりＴＲ１がＯＦＦしてオープンコレクタ回路になるため、出力ラインがグラウンド側にショートしてもＴＲ１には電流は流れず、素子破壊は起こさないという効果も得られ、パラレルＩ／Ｆ回路の性能面のみならず安全性の面についても向上することができる。
【図面の簡単な説明】
【図１】本発明の第１実施例の回路構成を示す回路図である。
【図２】本発明の第１実施例の回路のゲート信号制御回路の構成を示すブロック図である。
【図３】本発明の第１実施例のタイミングを示すタイミング図である。
【図４】本発明の第２実施例のタイミングを示すタイミング図である。
【図５】本発明の第２実施例の動作を示すフローチャートである。
【図６】本発明の第３実施例の制御回路の構成を示す回路図である。
【図７】従来のオープンコレクタ回路の構成例を示す回路図である。
【図８】従来技術のオープンコレクタ回路における信号遅延を説明する波形図である。
【符号の説明】
１０１  出力端
１０２  ゲート信号制御回路
２０１  エッジ検出回路
２０２  ＪＫフリップフロップ
２０３，２０４  Ｄフリップフロップ
２０５  カウンタ回路
２０６  比較回路
６０１  スタータス信号送信部
６０２，６０３ａ〜６０３ｄ  ドライバ
６０４ａ〜６０４ｄ，６０５  論理ゲート
６０６  カウンタ回路
【図１】
0003679455.tif 000002
【図２】
0003679455.tif 000003
【図３】
0003679455.tif 000004
【図４】
0003679455.tif 000005
【図５】
0003679455.tif 000006
【図６】
0003679455.tif 000007
【図７】
0003679455.tif 000008
【図８】
0003679455.tif 000009