JPH05341923A - 2方向性通信能力を提供する方法及びプロトコル - Google Patents

2方向性通信能力を提供する方法及びプロトコル

Info

Publication number
JPH05341923A
JPH05341923A JP24858292A JP24858292A JPH05341923A JP H05341923 A JPH05341923 A JP H05341923A JP 24858292 A JP24858292 A JP 24858292A JP 24858292 A JP24858292 A JP 24858292A JP H05341923 A JPH05341923 A JP H05341923A
Authority
JP
Japan
Prior art keywords
data
printer
host computer
signal
protocol
Prior art date
Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
Granted
Application number
JP24858292A
Other languages
English (en)
Other versions
JP3103216B2 (ja
Inventor
Jeff D Pipkins
ジェフ・ディー・ピプキンス
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
Compaq Computer Corp
Original Assignee
Compaq Computer Corp
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by Compaq Computer Corp filed Critical Compaq Computer Corp
Publication of JPH05341923A publication Critical patent/JPH05341923A/ja
Application granted granted Critical
Publication of JP3103216B2 publication Critical patent/JP3103216B2/ja
Anticipated expiration legal-status Critical
Expired - Lifetime legal-status Critical Current

Links

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F13/00Interconnection of, or transfer of information or other signals between, memories, input/output devices or central processing units
    • G06F13/38Information transfer, e.g. on bus
    • G06F13/42Bus transfer protocol, e.g. handshake; Synchronisation
    • G06F13/4265Bus transfer protocol, e.g. handshake; Synchronisation on a point to point bus
    • G06F13/4269Bus transfer protocol, e.g. handshake; Synchronisation on a point to point bus using a handshaking protocol, e.g. Centronics connection
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F13/00Interconnection of, or transfer of information or other signals between, memories, input/output devices or central processing units
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F13/00Interconnection of, or transfer of information or other signals between, memories, input/output devices or central processing units
    • G06F13/38Information transfer, e.g. on bus
    • G06F13/42Bus transfer protocol, e.g. handshake; Synchronisation
    • G06F13/4204Bus transfer protocol, e.g. handshake; Synchronisation on a parallel bus
    • G06F13/4221Bus transfer protocol, e.g. handshake; Synchronisation on a parallel bus being an input/output bus, e.g. ISA bus, EISA bus, PCI bus, SCSI bus
    • G06F13/4226Bus transfer protocol, e.g. handshake; Synchronisation on a parallel bus being an input/output bus, e.g. ISA bus, EISA bus, PCI bus, SCSI bus with asynchronous protocol
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F3/00Input arrangements for transferring data to be processed into a form capable of being handled by the computer; Output arrangements for transferring data from processing unit to output unit, e.g. interface arrangements
    • G06F3/12Digital output to print unit, e.g. line printer, chain printer
    • G06F3/1201Dedicated interfaces to print systems
    • G06F3/1202Dedicated interfaces to print systems specifically adapted to achieve a particular effect
    • G06F3/1211Improving printing performance
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F3/00Input arrangements for transferring data to be processed into a form capable of being handled by the computer; Output arrangements for transferring data from processing unit to output unit, e.g. interface arrangements
    • G06F3/12Digital output to print unit, e.g. line printer, chain printer
    • G06F3/1201Dedicated interfaces to print systems
    • G06F3/1223Dedicated interfaces to print systems specifically adapted to use a particular technique
    • G06F3/1236Connection management
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F3/00Input arrangements for transferring data to be processed into a form capable of being handled by the computer; Output arrangements for transferring data from processing unit to output unit, e.g. interface arrangements
    • G06F3/12Digital output to print unit, e.g. line printer, chain printer
    • G06F3/1201Dedicated interfaces to print systems
    • G06F3/1278Dedicated interfaces to print systems specifically adapted to adopt a particular infrastructure
    • G06F3/1284Local printer device

Abstract

(57)【要約】 【構成】プリンタからホストコンピュータへのデータの
転送を可能とする逆方向チャンネルを確立するために順
方向チャンネル(ステータスライン及び入出力制御チャ
ンネルを備える)を反転する反転手段(*SLCTin
信号及びSLCT信号に関する)と、プリンタからホス
トコンピュータへの逆方向チャンネルによるデータの転
送を制御する制御手段(*STROBE信号及びSLC
T信号に関する)と、順方向チャンネルを再確立するた
めに逆方向チャンネルを再反転する再反転手段とを備え
ている、並列インターフェイスによる2方向性通信能力
を提供するプロトコル及び方法である。 【効果】2方向性を有し、かつ、PC並列ポートハード
ウェア及びケーブルを存続させて使用が可能な並列プロ
トコルを提供することができる。

Description

【発明の詳細な説明】
【0001】
【産業上の利用分野】本発明は、プロトコルに関し、よ
り詳細には並列インターフェイスを通して2方向(双方
向)通信を可能とするプロトコルに関する。
【0002】
【従来の技術】「ポート」は、電子技術の当業者にとっ
て、エネルギが供給され又はエネルギを提供することの
できる装置又はネットワークへのアクセス個所、装置又
はネットワーク変数が観測測定され得る個所として周知
である。ポートは、直列(serial)又は(parallel)のい
ずれかに分類され得る。予期されるように、直列ポート
は逐次処理を行い、並列ポートは同時処理を行う。
【0003】マイクロプロセッサ技術においては、「ポ
ート」という言葉は、外界からマイクロプロセッサシス
テムへの(又はその逆の)データの「ゲート」という意
味を包含している。マイクロプロセッサは、直列及び並
列の両方のポートを含んでいる。歴史的には、直列ポー
トがWANSのようなモデムと良好に通信するとして広
く認識されており、直列ポートをサポートするための多
くのソフトウェアが開発された。これに対し、並列ポー
トは、1方向性のものであると考えられていたために印
刷やプロットといった比較的簡単なタスクのためのみに
用いられてきた。
【0004】しかし近年、標準的な並列ポートが2方向
性のもの、すなわち12本のラインを同時に入出力でき
るものであることが当業者に認識され始めた。一方、直
列カードは、単一のラインで一時に1ビットを入出力で
きるに過ぎない。これら2つの示すオペレーションを比
較すると、並列ポートは直列ポートが単一の処理を行う
時間であるかを決定する時間に1.5バイトの出力が可
能である。
【0005】
【発明が解決しようとする課題】極最近になって、通常
直列ポートに関する通信の一種について並列ポートを用
いることが有益であることが、当業者にとって認識され
出した。これらの利点は。ロス・グリーンバーグ著によ
る1990年9月発行のマイクロソフトシステムジャー
ナルの107ページからの“Adapting the Parallel Po
rt for Bidirectional Communication" に記載されてい
る。この文献においてグリーンバーグ氏は、通信はAS
CIIで常に実行される必要はないことを指摘してい
る。このような場合の例としては、センサのオン/オフ
状態が読み出されているとき、リレーへのワイヤがオン
又はオフのときがある。また、現実世界(real world)
が非常に容易に並列ポートに接続できるようなときは、
直列ポートを用いることは全く不必要である。グリーン
バーグ氏は、並列ポートは同時に多くのビットを入出力
することができるので、直列ポートよりも早いI/Oを
提供することができることをも指摘している。もちろ
ん、特別のコード及びここで教示されたプロトコルのよ
うなプロトコルが、並列ポートの能力を最大に利用する
ためには必要である。
【0006】本発明はプリンタを含む通信を扱ってお
り、プリンタとの通信についても従来技術として考慮す
ることが適当であろう。ポストスクリプト(PostScrip
t)のようなプリンタの能力を最大に引き出すために、
ホストコンピュータは照会(query )を送りかつ対応す
る応答を受け取ることができるものである必要がある。
もちろん、上述のように、ここではホストコンピュータ
とプリンタである2方向性の通信は、直列インターフェ
イスにより提供され得る。しかし、極最近では、より高
スピードの2方向性通信が並列ポートにより提供される
ようになった。当業者は、ホストコンピュータ及びプリ
ンタシステムのユーザに、並列ポートインターフェイス
の高スピード及び設置容易性を犠牲にすることなく直列
インターフェイスの機能を提供するこの後者の能力につ
いてはまだ公知ではない。したがって、並列ポートによ
ってホストコンピュータとプリンタとの間の2方向性通
信を可能とする実行可能なプロトコルがいまだ存在しな
いことが、従来技術の欠点である。
【0007】本発明の目的は、2方向性を有する並列プ
ロトコルを提供することである。
【0008】本発明の他の目的は、PC並列ポートハー
ドウェア及びケーブルを存続させて使用が可能であるプ
ロトコルを提供することである。
【0009】本発明のさらなる他の目的は、プロトコル
装備ホストコンピュータ又はプリンタがプロトコル非装
備プリンタ又はホストコンピュータに接続されたときに
一方向の通信を混乱させないホストコンピュータ及びプ
リンタ部を有するプロトコルを提供することである。
【0010】本発明のさらなる他の目的は、並列ポート
を直接的にドライブする無作法なソフトウェアに透過性
あるプロトコルを提供することである。
【0011】本発明のさらなる他の目的は、ホストコン
ピュータがプリンタを迅速に把握できて(poll)、読み
出されるべきデータがあるかを効率的に検出するプロト
コルを提供することである。
【0012】本発明の別の目的は、ホストコンピュータ
に実時間制約を課さないプロトコルを提供することであ
る。
【0013】本発明のさらなる別の目的は、強く拡張可
能なプロトコルを提供することである。
【0014】
【課題を解決するための手段】本発明は、並列インター
フェイスによって、ホストコンピュータからプリンタへ
の信号の転送のための順方向チャンネル(forward chan
nel )を有するホストコンピュータとプリンタとの間に
2方向性通信能力を提供するプロトコルを提供すること
により、従来技術の欠点を克服するものである。本発明
のプロトコルは、プリンタからホストコンピュータへの
データの転送を可能とする逆方向チャンネル(reverse
channel )を確立するために順方向チャンネルを反転す
るための手段と、プリンタからホストコンピュータへの
逆方向チャンネルによるデータの転送を制御するための
手段と、順方向チャンネルを再確立するために逆方向チ
ャンネルを再反転するための手段とを備えている。
【0015】本発明の具体例においては、順方向チャン
ネルを反転するための手段は、ホストコンピュータによ
って活性化される。同様に、本発明の上記及び他の具体
例においては、逆方向チャンネルを再反転するための手
段は、ホストコンピュータによって活性化される。
【0016】本発明のある具体例においては、順方向チ
ャンネルは、逆方向チャンネルがオペレーションしてい
る間にプリンタとホストコンピュータとの間でデータを
転送するために用いられるステータスライン(status l
ines)を含んでいる。
【0017】さらに本発明の教示するところによると、
順方向チャンネルは、逆方向チャンネルがオペレーショ
ンしている間にプリンタとホストコンピュータとの間で
制御及びステータス情報を転送するために用いられ得る
入出力制御チャンネルであってよい。
【0018】本発明の具体例においては、順方向チャン
ネルを反転するための手段は、*SLCTin信号を高
レベルとするためのホストコンピュータについての手段
と、SLCT信号を低レベルとするためのプリンタにつ
いての手段とを備えている。
【0019】さらに本発明の教示するところによると、
データの転送を制御するための手段は、データ束(a pa
cket of data;データパケット)をリクエストするため
のホストコンピュータについての手段と、データ束がス
テータスラインにあることを表示するためのプリンタに
ついての手段と、ステータスラインからのデータ束を読
み出すためのホストコンピュータについて手段とを備え
ている。本発明のこの具体例においては、データ束が1
ニブルのデータであってよく、データ束をリクエストす
るためのホストコンピュータについての手段が*STR
OBE信号であってよく、データ束がステータスライン
にあることを表示するためのプリンタについての手段が
SLCT信号であってよい。この具体例においては、デ
ータの下位ニブルが低*STROBE信号によってリク
エストされかつ高SLCT信号が転送されるとして表示
されてもよく、さらに、データの上位ニブルが高*ST
ROBE信号によってリクエストされかつ低SLCT信
号が転送されるとして表示されてもよい。
【0020】さらに本発明の具体例は、プリンタからホ
ストコンピュータへ何バイトのデータが転送可能かをホ
ストコンピュータに表示するためのプリンタについての
手段を含んでいてもよい。この手段は、SLCT信号が
低レベル化される前に高レベル化された*SLCTin
信号に応答して動作するようにされていてもよい。
【0021】また、本発明は、並列インターフェイスに
よって、ホストコンピュータからプリンタへの信号の転
送のための順方向チャンネルを有するホストコンピュー
タとプリンタとの間に2方向性通信能力を提供するため
の方法を提供することにより、従来技術の欠点を克服す
るものである。本発明の方法は、プリンタからホストコ
ンピュータへのデータの転送を可能とする逆方向チャン
ネルを確立するために順方向チャンネルを反転する段階
と、プリンタからホストコンピュータへの逆方向チャン
ネルによるデータの転送を制御する段階と、順方向チャ
ンネルを再確立するために逆方向チャンネルを再反転す
る段階とを備えている。
【0022】本発明の方法の具体例においては、チャン
ネルを反転する段階のいずれか一方又は両方がホストコ
ンピュータにより活性化させられてよい。
【0023】本発明の教示するところによると、順方向
チャンネルは、逆方向チャンネルがオペレーションして
いる間にプリンタとホストコンピュータとの間でデータ
を転送するために用いられるステータスラインを含んで
いてもよい。さらに本発明の教示するところによると、
順方向チャンネルは、逆方向チャンネルがオペレーショ
ンしている間にプリンタとホストコンピュータとの間で
制御及びステータス情報を転送するために用いられ得る
入出力制御チャンネルであってよい。
【0024】本発明の具体例においては、順方向チャン
ネルを反転する段階は、*SLCTin信号を高レベル
とするホストコンピュータについての段階と、SLCT
信号を低レベルとするプリンタについての段階とを備え
ている。
【0025】さらに本発明の教示するところによると、
データの転送を制御するための段階は、データ束をリク
エストするホストコンピュータについての段階と、デー
タ束がステータスラインにあることを表示するプリンタ
についての段階と、ステータスラインからのデータ束を
読み出すホストコンピュータについて段階とを備えてい
る。本発明の方法のこの具体例においては、データ束が
1ニブルのデータであってよく、データ束をリクエスト
するホストコンピュータについての段階が*STROB
E信号であってよく、データ束がステータスラインにあ
ることを表示するプリンタについての段階がSLCT信
号であってよい。以上に述べた具体例においては、デー
タの下位ニブルが低*STROBE信号によってリクエ
ストされかつ高SLCT信号が転送されるとして表示さ
れてもよく、さらに、データの上位ニブルが高*STR
OBE信号によってリクエストされかつ低SLCT信号
が転送されるとして表示されてもよい。
【0026】さらに本発明の具体例は、プリンタからホ
ストコンピュータへ何バイトのデータが転送可能かをホ
ストコンピュータに表示するプリンタについての段階を
含んでいてもよい。この段階は、SLCT信号が低レベ
ル化される前に高レベル化された*SLCTin信号に
応答して動作するようにされていてもよい。
【0027】本発明のその他の目的、利点及び新規な特
徴は、以下の実施例及び図面により明らかとなるであろ
う。
【0028】
【実施例】図1は従来技術による並列プリンタアダプタ
を示すものである。なお、図1〜3においては同様の部
分については同符号を付している。この図1は、本発明
の構成及び実施について重要な多くの詳細を明白に示す
ものである。
【0029】まず、並列ポートは、コンピュータの最も
単純な部品のひとつであることが図から明らかである。
ポートは、アドレスデコード部、書き込み論理部、物理
入力/出力部及びバス転送部への入力/出力の4つの部
分からなっている。一般には、並列ポートのオペレーシ
ョンは以下のようなものである。
【0030】アドレスデコード部2は、特定のアドレス
がバス4にあるときに活性化される。書き込み論理部6
は、バス4のデータを取り入れ、それを物理入力/出力
部8に与える。バス転送部への入力/出力は、リクエス
トされたときにはバスに有効な入力/出力からデータを
つくる。
【0031】4つのアドレスが、IOR又はIOW(上
側線省略、以下同様)バスライン10、12とともに並
列ポートをイネーブルにする。IOR及びIOWバスラ
イン10、12は、ポート入力すなわちポートオペレー
ションがバスにおいて起こっていることを表示する。通
常のメモリはこれらのラインに相当するピンを有してい
ないので、カード全体としてはこれらのタイプのオペレ
ーションを無視する。また、種々の結線の組み合わせに
より、DB−25コネクタ14のステータス及びデータ
ラインを読み出しかつ書き込むことが可能である。
【0032】図2には、PC並列ポートインターフェイ
スのハードウェア及びケーブルがブロック図として示さ
れている。このインターフェイスは、そのすべてがソフ
トウェアにより操作される3つのレジスタを有するもの
である。これら3つのレジスタは、データレジスタ2
4、ステータスレジスタ26及び制御レジスタ28であ
る。これら3つのレジスタについての詳細はそれぞれ以
下に述べられる。
【0033】データレジスタ24は、出力のみのための
8ビットの読み出し/書き込みラッチである。このラッ
チは、最も最近にこれに書き込まれたデータを決定する
ために読み出され得る。このラッチを入力のためにも用
いるための試みが幾つか提案されてきたが、こういった
試みは信頼性が低くかつハードウェアが損傷を受けるも
のであった。
【0034】ステータスレジスタ26は実際にはレジス
タではなく、入力のための非ラッチポートというべきも
のである。「ステータスレジスタ」と言う用語は、ここ
では「ポート」という用語との混乱を避けるために用い
られている。また、「ステータスレジスタを読み出す」
とは、ここでは、ステータスラインの実時間サンプルを
取ることを意味していると解されるべきである。
【0035】制御レジスタ28は、出力のみのための読
み出し/書き込みラッチであるという点においてデータ
レジスタ24と類似している。制御レジスタ28の上側
3つの不使用ビットは、伝統的に1として読み出される
が、0として書き込まれるべきものである。これによ
り、ビット5を用いるある新しいインプリメンテーショ
ン(implementations )に伴う誤動作を防止することが
できる。ビット4は実際にはプリンタ制御ラインではな
いが、これは割り込みのイネーブル/ディスエーブルの
ために用いられる。
【0036】ステータス及び制御ラインの極性(polari
ty)は、混乱の主たる原因となり得る。より悪いことに
は幾つかのラインはインターフェイスにおいて反転され
ている。したがって、以下において時間を節約しかつ混
乱を避けるために、適当な命名について規定することと
する。
【0037】低活性(active-low)信号は、高電圧より
もむしろ低電圧により示される状態の信号である。*A
CK信号は低活性信号であるが、これはそのラインにあ
る低電圧がプリンタからの受領(acknowledgement )を
示しているからである。アスタリスク(*)は信号名の
一部であり、信号が低活性であることを注意的に示して
いる。
【0038】PC並列ポートインターフェイスはBUS
Y信号を反転し、ステータスレジスタ26のビット7に
〜BUSY信号を形成する。このチルド(〜)は信号が
ケーブルに対して反転されていることを示している。〜
*STROBE、〜*AUTOLF及び〜*SLCTi
n信号は、すべて低活性でありかつケーブルに対して反
転されている信号である。
【0039】また、同じ信号が2以上の言い方で表現す
ることができることは注意すべきである。たとえば、*
SLCTin信号が低レベル化(lowered)されたという
ことは、〜*SLCTin信号が高レベル化(raised)
されたということと同じである。プロトコルについて議
論する場合には、PCインターフェイスに現れる信号よ
りも、通常はケーブルに現れる信号を参照する。
【0040】混乱を起こす他の潜在的な源はケーブル自
身であるが、これは、図2の実施例において、PC端部
にDB−25Mコネクタ及びプリンタ端部にセントロニ
クス(CENTRONICS)36Mコネクタを有しているからで
ある。たとえば、コネクタが一対一でないために、ピン
kはあいまいなものとなっている。それゆえ、図2は、
プログラマのPC並列ポートへの迅速な参照のためのガ
イドとなる。この図には、両方のコネクタのピン番号に
ついてのケーブル結線、信号名とそれに関する結線、P
Cによりアクセス可能なレジスタ、さらにはインターフ
ェイスに関連したインバータが示されている。
【0041】以上の記述をもとに、本発明の教示すると
ころのプロトコルが以下に詳細に述べられる。このプロ
トコルは「ニブルモード逆方向(reverse )チャンネル
プロトコル」といわれてもよいものである。
【0042】従来、ホストコンピュータからプリンタへ
のデータ転送は順方向チャンネルを経由することにより
達成されていた。本発明の教示するところの2方向性の
プロトコルは、プリンタからホストコンピュータへデー
タ転送する逆方向チャンネルを確立するものである。
【0043】順方向チャンネルの転送は一時に1バイト
でおこり、それぞれのバイトは独立に転送される。逆方
向チャンネルはダイアローグにとって適当なものあっ
て、いかなるバイト(0から16384まで)でも単一
ダイアローグにおいて転送され得る。
【0044】ダイアローグは、チャンネル方向を変える
すなわちチャンネルを反転させるために、開始シーケン
ス及び終了シーケンスを有している。これは、2つのチ
ャンネルが、その意味するところがどのチャンネルが活
性であるかに依存するある種の信号を共有しているため
に必要なものである。両方のチャンネルを同時に活性化
することができるのに満足の行く信号はケーブルにはな
い。ここで図3は逆方向チャンネルプロトコルを図示す
るものである。
【0045】図3を参照すると、ホストが、データ線に
ヘックス(hex )01hバイトを書き込むこと、そして
その後に*SLCTin信号を高レベル化(非活性化)
することによりダイアローグを開始させる。01hバイ
トは通信モード番号を表すものである。通信モード番号
については、以下に詳細に説明する。
【0046】プリンタは、1ニブルのデータであるルー
プ制御ヒント(loop control hint)をステータスライ
ンに置きそしてSLCTを低レベル化することによって
上記信号に応答する。ホストは、SLCT信号の低下を
知ると、ループ制御ヒントを得るべくステータスライン
を読み出す。これについては以下に詳述する。ダイアロ
ーグはここから始まる。
【0047】以下のプロトコルにおけるオペレーション
は、「データ転送ループオペレーション」といわれるも
のである。このループにおいて、ホストは、あるバイト
の下位ニブルをリクエストするために*STROBEを
低レベル化する。SLCTが高レベル化したとき、ホス
トはステータスラインからそのニブルを読み出すことが
できる。図3の実施例において、〜BUSYは3ビッ
ト、*ACKは2ビット、PEは1ビット及び*ERR
は0ビットである。
【0048】次に、ホストは、バイトの上位ニブルをリ
クエストするために*STROBEを高レベル化する。
SLCTが低レベル化したとき、ホストはステータスラ
インからそのニブルを読み出すことができる。図3の実
施例において、〜BUSYは7ビット、*ACKは6ビ
ット、PEは5ビット及び*ERRは4ビットである。
【0049】以前に簡単に述べたループ制御ヒントにつ
いては、開始シーケンスの間、ホストはステータスライ
ンからループ制御ヒントを読み出す(この実施例におい
ては〜BUSYは3ビット、*ACKは2ビット、PE
は1ビット及び*ERRは0ビットである)。ループ制
御ヒントは、新しく開始されたダイアローグにおいて転
送され得るバイト数の上限を確立する4ビットの符号の
ない(unsigned)整数である。
【0050】もしループ制御ヒントが0hであれば、そ
のときプリンタは送るべきデータを有せず、ホストはい
かなるデータの転送をも試みることなくダイアローグを
終了させられる。
【0051】もしループ制御ヒントが0hでなければ、
そのときループ制御リミットは2の階乗で計算される
(ループ制御ヒント−1)。以下に示す表1はすべての
可能な組み合わせを数え上げたものである。 [表1] ループ制御ヒント ループ制御リミット(バイト) 0h 0 1h 1 2h 2 3h 4 4h 8 5h 16 6h 32 7h 64 8h 128 9h 256 Ah 512 Bh 1024(1KB) Ch 2048(2KB) Dh 4096(4KB) Eh 8192(8KB) Fh 16384(16KB)
【0052】ホストは、存在するすべてのバイトを読み
出す義務を負わない。一方、ホストは、0からループ制
御リミットまでのいかなる数のバイトをも読み出すよう
にしてもよい。もしホストが上記リミットまで読み出し
をすると、ダイアローグが終了する。もしホストがさら
にデータを欲するならば、別のダイアローグを迅速に開
始するであろう。そこにはより多くのデータがあるか又
はないかであろう。
【0053】一例として、ホストが80バイトのデータ
を読み出すことを欲した場合を考える。ダイアローグが
開始すると、ホストは、わずかに64バイトを読み出す
ことを示す7hのループ制御ヒントを受け取る。そし
て、ホストはこの64バイトを読み出し、ダイアローグ
を終了し、さらに別のダイアローグを開始する。このと
きのループ制御ヒントが32バイトの存在を示す6hで
あったとすると、ホストは16バイト(トータルで80
バイト)を読み出してダイアローグを終了する。
【0054】次に、図3の最下部に示されたオペレーシ
ョンは、ダイアローグの終了に関するものである。ルー
プ制御リミットまでバイトを読み出したとき、又は、所
望のバイトをすべて読み出したときのいずれか最初のと
きに、ダイアローグを終了させることはホストの責任で
ある。
【0055】ホストは、*SLCTinを低レベル化
し、そしてSLCTが高レベル化されるのを待ってダイ
アローグを終了する。つまり、ホストは、ステータスラ
インが現在ステータス情報を運びデータを運んでいない
ことを示すSLCTを待たねばならない。
【0056】本発明のプロトコルはさておき、たいてい
のプリンタはいかなる理由であってもオフライン(off-
line)となったときはいつでもSLCTを低レベル化す
るけれども、もしプリンタが上述のようなプロトコルを
支持するものであるならば、こういった振る舞いを示す
ものであってはならないことは注意すべきである。SL
CT信号は、完全にプロトコルに捧げられなければなら
ず、他の用途に用いられるべきものではない。プリンタ
がオフラインになると、ホストがデータを送ることを妨
げるためにBUSYが高レベル化されるべきである。
【0057】次に、プロトコルのタイムアウトエラーに
ついて説明する。プロトコルには、信号転送が起こるま
でホストが無期限に待た(ウェイト)なければならない
個所が多くある。これらループにおいて、ハンギングを
避けるためにタイマがセットされ得る。好ましいタイム
アウト期間は、プリンタからの信号転送を待っている各
ループにつき2秒間である。このことは、プリンタに反
応すべき十分な時間を与えるだろうし、ユーザにはプリ
ンタが全くプロトコルを支持していないかどうかを迅速
に通知されることを可能にする。
【0058】もしダイアローグが開始しているときにホ
スト側の待ちループがタイムアウトすると、ホストはダ
イアローグを終了することを試みるであろう。もしダイ
アローグが終了しているときにタイムアウトが起こる
と、ホストはダイアローグになるのをさけるために(*
INITパルスを用いて)プリンタをリセットするであ
ろう。この信号を受け取ると、プリンタは、現在のジョ
ブをキャンセルするというようなより激しい動作を取る
か或いは取らないかであろう。ホストは、*INITパ
ルスを送る前に*SLCTinパルスが低レベル(活
性)であることを常に確実なものとすべきであり、もし
*INITパルスが送られた後*SLCTinパルスが
高レベルであれば、プリンタは、ホストが新しいダイア
ローグを開始しようとしているとみなすであろう。ホス
トは、逆方向チャンネルダイアローグが開始されている
状態であれば、データを送ろうと試みることは決してな
いであろう。
【0059】次に、ホストのソフトウェアについては、
ホスト側のドライバソフトウェアのインプリメンター
(implementor )を補助するために、以下のような80
×86アセンブリコードフラグメントが存在している。
これらのコードフラグメントはプロトコルに関するもの
ではないが、効率的で非自明のものである。
【0060】第1のフラグメントは、下位ニブルの読み
出しに関するものである。PCがデータの下位ニブルを
得るためにステータスレジスタを読み出すとき、ビット
は正しくない順序(wrong order )にある。以下に示す
このコードフラグメントはビットを正しく並べるもので
ある。
【0061】 ; ;Input : ALはステータスレジスタの内容をもつ。データビットは正 ; しくない順序にある。データのビットb3はレジスタのビッ ; ト7にあり、b2はビット6、b1はビット5、そしてb0 ; はビット3にある。下位ニブルが読み出されたときはSLC ; Tラインが高レベルであったのでビット4は常に1を有す。 ; つまりALは[b3 b2 b1 1 b0 × × ×] ; を有す。 ; ;Output: AHは正しい順序のビットの下位ニブルを有し、上位ニブル ; はゼロに合わされている。 ; つまりAHは[0 0 0 0 b3 b2 b1 b0] ; を有す。 ; sub AL,08h;b0をビット4に移動する(ビット4は1) ;すると[b3 b2 b1 b0 × × ×] shr AL,1; shr AL,1 shr AL,1 shr AL,1 mov AH,AL ;後の使用のためにAHにセーブ
【0062】第2のフラグメントは上位ニブルの読み出
しに関するものである。PCがステータスレジスタから
上位ニブルを読み出すときビットは再び正しくない順序
にある。以下に示すこのコードフラグメントは、それら
を迅速に順序付けてかつ上位ニブルを下位ニブルと結合
するものである。
【0063】 ; ;Input: ALはステータスレジスタの内容をもつ。データビットは正 ; しくない順序にある。データのビットb7はレジスタのビッ ; ト7にあり、b6はビット6、b5はビット5、そしてb4 ; はビット3にある。上位ニブルが読み出されたときはSLC ; Tラインが低レベルであったのでビット4は常に0を有す。 ; つまりALは[b7 b6 b5 0 b4 × × ×] ; を有す。 ; ; AHは[0 0 0 0 b3 b2 b1 b0 ]とい ; う下位ニブルを有す。 ; ;Output: ALはすべてのビットが正しい順序のバイトを有する。 ; add AL,08h;b4をビット4に移動する(ビット4は0) ;すると[b7 b6 b5 b4 × × × ×] and AL,11110000b ;ジャンクビットを覆う or AL,AH ;完全なバイトを形成すべくニブルを結合
【0064】第3のコードフラグメントは、ループ制御
ヒントを用いることによって読み出されるバイトの数と
ホストの要求するバイト数とを計算するものである。
【0065】 ; ;Input : BXはホストが読み出しを欲するバイトの最大数をもつ(ホ ; ストにより限界が課せられる) ; ; ALはループ制御ヒント転送時のステータスレジスタ値をも ; つ。SLCTが低レベルであったのでビット4は0となる。 ; [b3 b2 b1 0 b0 × × ×] ; ;Output: CXはこのダイアローグを終了する前に転送されるべきバイ ; トの数を有す。 ; ; BXはダイアローグが終了した後にホストがまだ必要とする ; バイトの数を有す。もしBXがゼロでなければホストは別の ; ダイアローグを開始しかつさらにバイトを読み出さねばなら ; ぬ。 ; add AL,08h;[b3 b2 b1 b0 × × × ×] mov CL,4 shr AL,CL;[0 0 0 0 b3 b2 b1 b0 ] ; ALはループ制御ヒントを有す。 dec AL ;読み出されるデータはあるか? ; ここでCXは0でない。ループ論理はこの情報を必要とする。 js ダイアローグ終了;CLOSE DIALOGUE IF NO DATA AVAILABLE mov CL,AL;ループ制御ヒントをシフトカウントとして使用 mov AX,1 ;2^を計算するためビットを得る(CL) shl AX,CL;AX=2^(ループ制御ヒント−1) ; AXはループ制御リミットを有す ; BXの最小値及びループ制御リミット(AX)を計算 sub AX,BX ;CY if BX>AX;AXはデルタをもつ sbb CX,CX ;0 if no CY,all l's if CY and CX,BX ;CXは最小値をもつ sub BX,CX ;BX>=0 ; CXは転送ループのためカウントをもつ。ループインストラク ; ションを利用する。 ; BXはループ後にホストが欠如しているバイト数をもつ。 ; ホストは2つのネストループを、1つは実際のデータ転送に、も ; う1つはホストが十分なデータを得るのに必要な多くのダイアロ ; ーグを用いるのに使用を欲す。 ; ループ論理はこれと同様に進行 読み出し ループ [ここのバイトを転送させるコード] [CX及びBX保存] ループ読み出し ループ ;ここでCXは0 ;ホストはダイアローグをここで終了する義務を負う ダイアローグ 終了 [ここのダイアローグを終了させるコード] [CX及びBX保存] ;もしBX>0,べつのダイアローグを開始しさらにデータを読み出す or BX,BX jz xfer done ;もしBXが0なら、ホストは満足する ;BXはホストにまだ足りないバイト数をもつ ;CXはもしデータがもうなければゼロでない ;もしCXが0なら、まだデータがある jcxz ダイアローグ 開始 xfer done : ;もしBXが0なら所望のバイト数が読み出された ;もしBX>0でもしNが所望のバイト数であれば、(N−BX)バイ ;トが読み出された。
【0066】以上のように、いわゆるニブルモード逆方
向チャンネルプロトコルについて述べられた。ニブルモ
ード逆方向チャンネルプロトコルは、上述のように、2
方向性を有する並列通信のための一組のプロトコルであ
る。同様の他のプロトコルについて、以下に述べる。
【0067】ここで述べたプロトコルについて、以下の
4つの通信モード番号が割り当てられている。 [表2] モード番号 プロトコル 0 バージョンIDプロトコル 1 ニブルモード逆方向チャンネルプロトコル 2 IOCTL書き込みモード 3 ニブルモード逆方向チャンネルプロトコルを用い たIOCTL読み出し 残りのモード番号4〜255は、将来の使用のために保
存されると考えることができる。
【0068】通信モードの開始及び終了について、各通
信モードは同様に開始及び終了する。通信モードを開始
させるためには、ホストは通信モード番号をデータライ
ンに位置させ、そして*SLCTin信号を高レベル化
する。プリンタは、SLCT信号を低レベル化すること
によってモードを確認する。ここから発生するすべての
通信は、特定のプロトコルにしたがったものでなければ
ならない。もしステータスラインが、その標準的な意味
(meanings;意義)から変化するのであれば、この変化
はSLCT信号が低レベル化される前に起こるものであ
る。これによって、ステータスラインの意味は、通信モ
ードに基いて多重化され得る。
【0069】通信モードを終了するには、ホストは、*
SLCTin信号を低レベル化し、かつ、終了している
ことを示すようにSLCT信号をプリンタが高レベル化
するのを待つ。ステータスラインの意味は、ホストが*
SLCTin信号を低レベル化した後でかつプリンタが
SLCTを高レベル化する前に復元される。ホストは、
可能な競合状態を避ける処置の前にSLCTが高レベル
化されるのを待たねばならない。
【0070】本発明の教示する別のプロトコルである
「バージョンIDプロトコル」について、以下に説明す
る。2方向性の並列プロトコルは拡張可能であるから、
プロトコルのどのバージョンがプリンタに利用されてい
るかをホストが決定することができるかについて、或い
は、プリンタがプロトコルを全く支持しないかについて
の助けとなる。バージョンIDプロトコルはこのような
機能を提供するものである。
【0071】バージョンIDプロトコルは、いくつかの
重要な差異を除きニブルモード逆方向チャンネル並列プ
ロトコルと同様に機能する。まず、通信モード番号は、
1ではなく0である。したがって、ホストは開始時にヘ
ックス00hをデータラインにおかなければならない。
【0072】データの読み出しは一定である。ループ制
御ヒントは常に2hとなるので、ループ制御リミットは
常に2である。したがって、常に読み出される2バイト
がある。第1のバイトはヘックス5Ahであり、第2の
バイトはプロトコルのバージョン番号である。
【0073】プリンタは、全体から与えられたバージョ
ン番号により特定されたプロトコルを実行することをリ
クエストされる。部分的なインプリメンテーションは、
合致するものではない。
【0074】その他の不明瞭な点を説明する。プリンタ
は、バージョン番号に1をリターンし、通信モード0及
び1のみを実行する。ここで、モード0はプロトコルを
記述するドキュメントのバージョンで特定されるバージ
ョンIDプロトコルであり、モード1は上記ドキュメン
トの同じバージョンで特定される逆方向チャンネルプロ
トコルである。そのため、上位(アップワード)互換性
が維持される。バージョン1の特徴により、IOCTL
チャンネルをもたない将来のプリンタを可能とする。
【0075】次に、IOCTLチャンネルについてその
目的とともに説明する。ホストシステムソフトウェア
は、より詳細なステータス情報をプリンタに呼びかけ、
又は、コンフィギュレーションコマンドを送ることが好
ましいか或いは必要であることがある。しかしプリンタ
へのデータの流れ(ときには無関係のアプリケーション
から)は、非同期的に新しいコマンドが注入されること
によって妨害され得ない。同様に、ステータス情報を得
るためのアプリケーションとしてのプリンタからデータ
を読み出すことは、ホストシステムソフトウェアには好
ましいことではない。プリンタのデータバッファは、シ
ステムソフトウェアがステータスリクエストを送らなけ
ればならないときはフルになりやすいことが、これを複
雑にしている。
【0076】IOCTL(I/O制御)チャンネルは、
プリンタと通信する単独の論理チャンネルを提供する。
このチャンネルはデータチャンネルのような2方向性の
チャンネルであり、情報は両方向に通過する。単独のバ
ッファはこのチャンネルに維持されるので、制御及びス
テータス情報はデータバッファが飽和したときに転送さ
れ得る。
【0077】IOCTLチャンネルに転送される情報の
フォーマットは、プリンタにより定義される。基本的に
は、IOCTLチャンネルは、制御及びステータス情報
を転送するために用いられ、一般にはページ記述又は他
のデータを送るためには用いられない。データチャンネ
ルはこの目的のために用いるのにより適当である。
【0078】IOCTLチャンネルから読み出しをする
ために、ホストは、通信モード番号が3であることを除
きニブルモード逆方向チャンネルプロトコルに用いられ
たのと同じものを用いる。読み出しのためにIOCTL
チャンネルを開始すべく、ホストはまずデータラインに
ヘックス03hをおき、*SLCTinを高レベル化す
る。そして、ダイアローグは通信モード1をつづける。
このチャンネルに読み出された情報は、通信モード1を
用いて読み出されたデータとは論理的に隔離している。
もし逆方向(データ)チャンネルから読み出されたデー
タがなければ、IOCTLチャンネルから読み出される
情報があるかについてなんら意味するものではない。
【0079】IOCTLチャンネルを書き込むために、
ホストは通信モード2を用いなければならない。転送を
開始するため、ホストはデータラインにヘックス02h
を書き込み、そして*SLCTinを高レベル化する。
プリンタはIOCTLチャンネルのステータスをステー
タスラインにおき、SLCTを低レベル化する。ホスト
は、SLCTが低レベルとなったのを見ると、ステータ
スラインがデータチャンネルではなくIOCTLチャン
ネルのステータスを反映していることを知る。つまり、
たとえデータチャンネルがビジーであっても、IOCT
Lチャンネルはそうではない。
【0080】通信モード2が開始すると、情報はホスト
からプリンタへ、データがデータチャンネルへ転送され
るのと同様に、データライン、BUSY、*STROB
E、*ACK及び他のステータスラインを用いることに
よって転送される。
【0081】制御情報がプリンタに転送されると、ホス
トは通信モードを終了しなければならない。ホストは*
SLCTinを低レベル化し、SLCTが高レベル化す
るのをまつ。プリンタは、データチャンネルのステータ
スを反映するためにステータスラインを復元し、SLC
Tを高レベル化する。終了はホストがSLCTが高レベ
ル化したのを確認したときに完了する。
【0082】IOCTLチャンネルにデータが書き込ま
れているときには、通常はホストはBUSYを待たねば
ならないことがある。この待ちは、上述の2秒のタイム
アウトに束縛されない。タイムアウト値は、ホストの裁
量に任されている。もしホストがBUSYをまちわびて
タイムアウトを決定したならば、ホストはまず通常のや
り方で通信モードを終了させることを試みる。
【0083】新しいトピックとしては、並列プリンタ通
信のための標準のBIOS INT17hは、機能的に
非常に限定されている。以下の拡張(extensions)は、
新しいプロトコルを再実行することなくそれを用いるソ
フトウェアを可能とするために提案されたものである。
これらの拡張は、本発明の実行を楽にするものであるが
これに限られるものではなく、一つの例に過ぎないもの
である。
【0084】「同定バージョン(identify version)」
機能は、以下の拡張機能が利用するのに有効であること
を示す方法を提供する。 入力: AX=80A5h リターン: AXは5A5Ah BXはバージョン番号をもつ リターンされたバージョン番号は、プロトコルを記述す
る適当なドキュメントのバージョン数に相当する。バー
ジョン数はフォーマット“H.L.”にあり、ここでH
部分はBHにリターンされ、L部分はBLにリターンさ
れる。適当なドキュメントの開始時における改訂の沿革
は、バージョン数に付加的情報を提供するだろう。
【0085】理想的には、BIOS拡張の将来のすべて
の変化は上位互換が可能となるものである。「書き込み
データ」機能は、プリンタにデータのバッファを送る。 入力: AX=8100h DX=プリンタポート数(LPT1からLPT3につき
0から2) CX=書き込みバイトの数 DS:SI−−>データのバッファ リターン: CXは送られたバイト数を含む 結果のコードはAXにある もしAXが 0:完全に送られた −1:非有効プリンタポート数、設置されていないポー
ト −2:特定ポインタはNULL −3:タイムアウト: 理由不明 −4:タイムアウト: プリンタはおそらく接続されず −5:タイムアウト: プリンタは接続されるがオンさ
れず
【0086】「IOCTL書き込み」機能は、I/O制
御情報のバッファをプリンタに送る。データは、データ
チャンネルのかわりにIOCTLチャンネルに書き込ま
れる。 入力: AX=8101h DX=プリンタポート数(LPT1からLPT3につき
0から2) CX=書き込みバイトの数 DS:SI−−>送るためのバッファ リターン: CXは送られたバイト数を含む 結果のコードはAXにある もしAXが 0:完全に送られた −1:非有効プリンタポート数、設置されていないポー
ト −2:特定ポインタはNULL −3:タイムアウト: 理由不明 −4:タイムアウト: プリンタはおそらく接続されず −5:タイムアウト: プリンタは接続されるがオンさ
れず
【0087】「読み出しデータ」機能は、プリンタから
データのバッファを読み出す。 入力: AX=8200h DX=プリンタポート数(LPT1からLPT3につき
0から2) CX=読み出しバイトの最大数 ES:DI−−>入り込むデータを記憶するバッファエ
リア リターン: CXは送られた実際に読み出されたバイト数を含む 結果のコードはAXにある もしAXが 0:完全に送られた −1:非有効プリンタポート数、設置されていないポー
ト −2:特定ポインタはNULL −3:タイムアウト: 理由不明 −4:タイムアウト: プリンタはおそらく接続されず −5:タイムアウト: プリンタは接続されるがオンさ
れず −6:タイムアウト: プリンタは(おそらく)2方向
性プロトコルを支持せず
【0088】「IOCTL読み出し」機能は、プリンタ
からI/O制御情報のバッファを読み出す。データは、
データチャンネルのかわりにIOCTLチャンネルから
読み出される。 入力: AX=8201h DX=プリンタポート数(LPT1からLPT3につき
0から2) CX=読み出しバイトの最大数 ES:DI−−>入り込むデータを記憶するバッファエ
リア リターン: CXは送られた実際に読み出されたバイト数を含む 結果のコードはAXにある もしAXが 0:完全に送られた −1:非有効プリンタポート数、設置されていないポー
ト −2:特定ポインタはNULL −3:タイムアウト: 理由不明 −4:タイムアウト: プリンタはおそらく接続されず −5:タイムアウト: プリンタは接続されるがオンさ
れず −6:タイムアウト: プリンタは(おそらく)2方向
性プロトコルを支持せず
【0089】最後の拡張は、書き込みのための読み出し
/セットタイムアウト値に関するものである。 入力: AH=83h AL=読み出しに0、セットに1 DX=プリンタポート数(LPT1からLPT3につき
0から2) BX=書き込み時のタイムアウト値。0は無限(タイム
アウトなし)を意味する。不履行は0(タイムアウトな
し)。 CX=IOCTL書き込み時のタイムアウト値。不履行
は0。 ノート:もしタイムアウト値が0にセットされても、オ
ペレータからのコントロールブレイクシーケンスはタイ
ムアウトをおこす ノート2:このタイムアウト値はどちらのチャンネルか
らの読み出しにも影響しない。
【0090】当業者は、以上の記述から、強く、拡張可
能で、ホストとプリンタとの間でオペレートするのに好
適な2方向性の並列プロトコルが提供されたことを理解
するであろう。本発明の教示するプロトコルは、現存す
るPC並列ポートハードウェア及びケーブルを用い得る
が、同様のアプリケーションソフトウェア等にも適用可
能である。さらに、本発明の教示するプロトコルは、問
題の多い実時間制約を課することなく、迅速なポーリン
グを可能とする。
【0091】当業者は、多くの変形及び設計変更等が本
発明の概念から外れることなく実施可能であることを認
めるであろう。したがって、本発明は、特許請求の範囲
の観点の範囲において他の形式において実施可能であ
る。
【0092】
【発明の効果】2方向性を有する並列プロトコルを提供
することができる。また、PC並列ポートハードウェア
及びケーブルを存続させて使用が可能であるプロトコル
を提供することができる。また、プロトコル装備ホスト
コンピュータ又はプリンタがプロトコル非装備プリンタ
又はホストコンピュータに接続されたときに一方向の通
信を混乱させないホストコンピュータ及びプリンタ部を
有するプロトコルを提供することができる。また、並列
ポートを直接的にドライブする無作法なソフトウェアに
透過性あるプロトコルを提供することができる。また、
ホストコンピュータがプリンタを迅速に把握できて、読
み出されるべきデータがあるかを効率的に検出するプロ
トコルを提供することができる。また、ホストコンピュ
ータに実時間制約を課さないプロトコルを提供すること
ができる。さらに、強く拡張可能なプロトコルを提供す
ることができる。
【図面の簡単な説明】
【図1】従来技術による並列プリンタのアダプタのブロ
ック図である。
【図2】並列ポートインターフェイスの詳細を示す図で
ある。
【図3】本発明の教示によるプロトコルにおける経時的
な信号転送図である。
【符号の説明】
2 アドレスデコード部 4 バス 6 書き込み論理部 24 データレジスタ 26 ステータスレジスタ 28 制御レジスタ

Claims (20)

    【特許請求の範囲】
  1. 【請求項1】ホストコンピュータからプリンタへの信号
    の転送のための順方向チャンネルを有する上記ホストコ
    ンピュータと上記プリンタとの間に、並列インターフェ
    イスによる2方向性通信能力を提供するプロトコルにお
    いて、 上記プリンタから上記ホストコンピュータへのデータの
    転送を可能とする逆方向チャンネルを確立するために上
    記順方向チャンネルを反転するための反転手段と、 上記プリンタから上記ホストコンピュータへの上記逆方
    向チャンネルによるデータの転送を制御するための制御
    手段と、 上記順方向チャンネルを再確立するために上記逆方向チ
    ャンネルを再反転するための再反転手段とを備えている
    ことを特徴とするプロトコル。
  2. 【請求項2】上記反転手段は、上記ホストコンピュータ
    によって活性化されることを特徴とする請求項1のプロ
    トコル。
  3. 【請求項3】上記再反転手段は、上記ホストコンピュー
    タによって活性化されることを特徴とする請求項2のプ
    ロトコル。
  4. 【請求項4】上記順方向チャンネルは、上記逆方向チャ
    ンネルがオペレーションしている間に上記プリンタと上
    記ホストコンピュータとの間にデータを転送させるため
    に用いられるステータスラインを備えていることを特徴
    とする請求項1のプロトコル。
  5. 【請求項5】上記順方向チャンネルは、上記逆方向チャ
    ンネルがオペレーションしている間に上記プリンタと上
    記ホストコンピュータとの間に制御及びステータス情報
    を転送させるために用いられる入出力制御チャンネルを
    備えていることを特徴とする請求項1のプロトコル。
  6. 【請求項6】上記反転手段は、*SLCTin信号を高
    レベルとするための上記ホストコンピュータについての
    手段と、SLCT信号を低レベルとするための上記プリ
    ンタについての手段とを備えていることを特徴とする請
    求項1のプロトコル。
  7. 【請求項7】上記制御手段は、データ束をリクエストす
    るための上記ホストコンピュータについての手段と、上
    記データ束が上記ステータスラインにあることを表示す
    るための上記プリンタについての手段と、上記ステータ
    スラインから上記データ束を読み出すための上記ホスト
    コンピュータについての手段とを備えていることを特徴
    とする請求項4のプロトコル。
  8. 【請求項8】上記データ束が1ニブルのデータであり、 上記データ束をリクエストするための上記ホストコンピ
    ュータについての手段が*STROBE信号を備えてお
    り、かつ、上記データ束が上記ステータスラインにある
    ことを表示するための上記プリンタについての手段がS
    LCT信号を備えており、 データの下位ニブルは、低レベルとされた*STROB
    E信号によってリクエストされ、かつ、高レベルとされ
    たSLCT信号の転送準備ができたことを表示し、 データの上位ニブルは、高レベルとされた*STROB
    E信号によってリクエストされ、かつ、低レベルとされ
    たSLCT信号の転送準備ができたことを表示すること
    を特徴とする請求項7のプロトコル。
  9. 【請求項9】上記プリンタから上記ホストコンピュータ
    へ何バイトのデータが転送可能かを上記ホストコンピュ
    ータに表示するための上記プリンタについての表示手段
    を備えていることを特徴とする請求項8のプロトコル。
  10. 【請求項10】上記表示手段は、SLCT信号が低レベ
    ルとされる前に高レベルとされた*SLCTin信号に
    応答して動作することを特徴とする請求項9のプロトコ
    ル。
  11. 【請求項11】ホストコンピュータからプリンタへの信
    号の転送のための順方向チャンネルを有する上記ホスト
    コンピュータと上記プリンタとの間に、並列インターフ
    ェイスによる2方向性通信能力を提供するための方法に
    おいて、 上記プリンタから上記ホストコンピュータへのデータの
    転送を可能とする逆方向チャンネルを確立するために上
    記順方向チャンネルを反転する段階と、 上記プリンタから上記ホストコンピュータへの上記逆方
    向チャンネルによるデータの転送を制御する段階と、 上記順方向チャンネルを再確立するために上記逆方向チ
    ャンネルを再反転する段階とを備えていることを特徴と
    する方法。
  12. 【請求項12】上記反転する段階は、上記ホストコンピ
    ュータによって活性化されることを特徴とする請求項1
    1の方法。
  13. 【請求項13】上記再反転する段階は、上記ホストコン
    ピュータによって活性化されることを特徴とする請求項
    12の方法。
  14. 【請求項14】上記順方向チャンネルは、上記逆方向チ
    ャンネルがオペレーションしている間に上記プリンタと
    上記ホストコンピュータとの間にデータを転送させるた
    めに用いられるステータスラインを備えていることを特
    徴とする請求項11の方法。
  15. 【請求項15】上記順方向チャンネルは、上記逆方向チ
    ャンネルがオペレーションしている間に上記プリンタと
    上記ホストコンピュータとの間に制御及びステータス情
    報を転送させるために用いられる入出力制御チャンネル
    を備えていることを特徴とする請求項11の方法。
  16. 【請求項16】上記反転する段階は、*SLCTin信
    号を高レベルとする上記ホストコンピュータについての
    段階と、SLCT信号を低レベルとする上記プリンタに
    ついての段階とを備えていることを特徴とする請求項1
    1の方法。
  17. 【請求項17】上記制御する段階は、データ束をリクエ
    ストする上記ホストコンピュータについての段階と、上
    記データ束が上記ステータスラインにあることを表示す
    る上記プリンタについての段階と、上記ステータスライ
    ンから上記データ束を読み出す上記ホストコンピュータ
    についての段階とを備えていることを特徴とする請求項
    14の方法。
  18. 【請求項18】上記データ束が1ニブルのデータであ
    り、 上記データ束をリクエストする上記ホストコンピュータ
    についての段階が*STROBE信号を備えており、か
    つ、上記データ束が上記ステータスラインにあることを
    表示する上記プリンタについての段階がSLCT信号を
    備えており、 データの下位ニブルは、低レベルとされた*STROB
    E信号によってリクエストされ、かつ、高レベルとされ
    たSLCT信号の転送準備ができたことを表示し、 データの上位ニブルは、高レベルとされた*STROB
    E信号によってリクエストされ、かつ、低レベルとされ
    たSLCT信号の転送準備ができたことを表示すること
    を特徴とする請求項17の方法。
  19. 【請求項19】上記プリンタから上記ホストコンピュー
    タへ何バイトのデータが転送可能かを上記ホストコンピ
    ュータに表示する上記プリンタについての段階を備えて
    いることを特徴とする請求項18の方法。
  20. 【請求項20】上記プリンタから上記ホストコンピュー
    タへ何バイトのデータが転送可能かを上記ホストコンピ
    ュータに表示する上記プリンタについての段階は、SL
    CT信号が低レベルとされる前に高レベルとされた*S
    LCTin信号に応答して動作することを特徴とする請
    求項19の方法。
JP24858292A 1991-08-27 1992-08-25 データの双方向通信を提供する方法及びシステム Expired - Lifetime JP3103216B2 (ja)

Applications Claiming Priority (2)

Application Number Priority Date Filing Date Title
US750,625 1985-06-28
US75062591A 1991-08-27 1991-08-27

Publications (2)

Publication Number Publication Date
JPH05341923A true JPH05341923A (ja) 1993-12-24
JP3103216B2 JP3103216B2 (ja) 2000-10-30

Family

ID=25018609

Family Applications (1)

Application Number Title Priority Date Filing Date
JP24858292A Expired - Lifetime JP3103216B2 (ja) 1991-08-27 1992-08-25 データの双方向通信を提供する方法及びシステム

Country Status (16)

Country Link
US (2) US5507003A (ja)
EP (1) EP0529887B1 (ja)
JP (1) JP3103216B2 (ja)
KR (1) KR930004868A (ja)
CN (1) CN1044414C (ja)
AT (1) ATE214172T1 (ja)
AU (1) AU645920B2 (ja)
BR (1) BR9203330A (ja)
CA (1) CA2075774C (ja)
DE (1) DE69232456T2 (ja)
IE (1) IE922610A1 (ja)
IL (1) IL102823A (ja)
MX (1) MX9204892A (ja)
MY (1) MY153949A (ja)
NZ (1) NZ243927A (ja)
TW (1) TW203673B (ja)

Cited By (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2002542528A (ja) * 1999-02-17 2002-12-10 アクシス アクチボラグ 通信のためのインタフェース及び方法

Families Citing this family (29)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US5706411A (en) * 1992-11-09 1998-01-06 Microsoft Corporation Printer status user interface and methods relating thereto
US5542071A (en) * 1992-11-13 1996-07-30 Video Associates Labs, Inc. System for determining communication speed of parallel printer port of computer by using start timer and stop timer commands within data combined with embedded strobe
US6360135B1 (en) 1993-11-08 2002-03-19 Seiko Epson Corporation Printing apparatus with a cash drawer control function, and a control method therefor
JP3201141B2 (ja) * 1994-06-02 2001-08-20 セイコーエプソン株式会社 データ受信方式
JP3563793B2 (ja) * 1994-12-21 2004-09-08 キヤノン株式会社 データ処理方法及びその装置
JPH08185292A (ja) * 1994-12-27 1996-07-16 Nec Corp 双方向プリンタインタフェース
JPH096720A (ja) * 1995-06-15 1997-01-10 Canon Inc 情報伝送方法および情報伝送システム
JP3495865B2 (ja) * 1996-01-09 2004-02-09 キヤノン株式会社 印刷装置及び当該印刷装置を接続する情報処理装置並びにそれらの制御方法
SG101460A1 (en) * 1997-02-14 2004-01-30 Canon Kk Data communication apparatus and method
DE69837356T2 (de) 1997-02-14 2007-11-29 Canon K.K. Vorrichtung, System und Verfahren zur Datenübertragung und Vorrichtung zur Bildverarbeitung
DE69840972D1 (de) * 1997-02-14 2009-08-27 Canon Kk Vorrichtung, System und Verfahren zur Datenübertragung und Vorrichtung zur Bildverarbeitung
EP0859326A3 (en) 1997-02-14 1999-05-12 Canon Kabushiki Kaisha Data transmission apparatus, system and method, and image processing apparatus
US6006284A (en) * 1997-03-31 1999-12-21 Sun Microsystems, Inc. Method and apparatus for driving a parallel part to provide multiple modes of communications between a host and a peripheral
US6614545B1 (en) * 1997-05-09 2003-09-02 Lexmark International, Inc Communication scheme for imaging systems including printers with intelligent options
JP3786152B2 (ja) * 1997-11-14 2006-06-14 セイコーエプソン株式会社 印刷システム、印刷方法及びプリンタ
JPH11168524A (ja) * 1997-12-05 1999-06-22 Canon Inc 通信制御装置および通信制御装置のデータ処理方法およびコンピュータが読み出し可能なプログラムを格納した記憶媒体
US6064492A (en) * 1998-05-29 2000-05-16 Xerox Corporation Image data interface between digital front end and printer
US6717694B1 (en) * 1998-07-31 2004-04-06 Canon Kabushiki Kaisha Data transmission apparatus, system and method, and recording medium
US6124938A (en) * 1998-09-24 2000-09-26 Xerox Corporation Submitting software upgrades to a digital printer through a standard port
US6295538B1 (en) * 1998-12-03 2001-09-25 International Business Machines Corporation Method and apparatus for creating metadata streams with embedded device information
JP3652153B2 (ja) * 1999-01-18 2005-05-25 キヤノン株式会社 画像出力装置とその制御方法
CN1306384C (zh) * 1999-03-29 2007-03-21 精工爱普生株式会社 网络系统和网络接口卡
JP4306118B2 (ja) * 2000-02-21 2009-07-29 セイコーエプソン株式会社 プリンタ及びプリンタの制御方法
US6725304B2 (en) * 2000-12-19 2004-04-20 International Business Machines Corporation Apparatus for connecting circuit modules
JP2006079138A (ja) * 2004-09-07 2006-03-23 Ricoh Co Ltd ステータス取得方法、プリンタドライバ及び情報処理装置
CN103067641B (zh) * 2012-12-13 2016-04-27 珠海赛纳打印科技股份有限公司 图像形成设备及方法
CN103942015A (zh) * 2014-04-25 2014-07-23 长春工业大学 一种基于数据包的计算机与打印机双向并行通信方法
JP6439797B2 (ja) * 2014-07-03 2018-12-19 ソニー株式会社 インターフェース回路、伝送システム、伝送方向制御方法およびプログラム
JP7145752B2 (ja) * 2018-12-27 2022-10-03 セイコーインスツル株式会社 印刷システム、ホスト装置、印刷制御方法、およびプログラム

Citations (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JPS60157353A (ja) * 1984-01-26 1985-08-17 Citizen Watch Co Ltd プリンタ情報問い合せ通信方式とプリンタ

Family Cites Families (24)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US3827357A (en) * 1973-09-12 1974-08-06 Sperry Rand Corp On-the-fly printer with shortened print cycle
US4452136A (en) * 1979-10-19 1984-06-05 International Business Machines Corporation Printer subsystem with dual cooperating microprocessors
US4388686A (en) * 1980-10-20 1983-06-14 General Electric Company Communication system for distributed control arrangement
US4641263A (en) * 1982-05-17 1987-02-03 Digital Associates Corporation Controller system or emulating local parallel minicomputer/printer interface and transferring serial data to remote line printer
JPS5933527A (ja) * 1982-08-20 1984-02-23 Pioneer Electronic Corp インタ−フエ−ス装置
US4703450A (en) * 1982-08-20 1987-10-27 Pioneer Electronic Corporation Interface device
US4697232A (en) * 1984-11-30 1987-09-29 Storage Technology Corporation I/O device reconnection in a multiple-CPU, dynamic path allocation environment
US4661902A (en) * 1985-03-21 1987-04-28 Apple Computer, Inc. Local area network with carrier sense collision avoidance
US4745602A (en) * 1985-09-20 1988-05-17 Minolta Camera Company, Ltd. Printer error and control system
US4745597A (en) * 1986-05-14 1988-05-17 Doug Morgan Reconfigurable local area network
AU2220288A (en) * 1987-09-15 1989-03-16 Twelve Metre Research Pty. Ltd. A computer interface system
US4866609A (en) * 1988-06-22 1989-09-12 International Business Machines Corporation Byte count handling in serial channel extender with buffering for data pre-fetch
US4922491A (en) * 1988-08-31 1990-05-01 International Business Machines Corporation Input/output device service alert function
US5123089A (en) * 1989-06-19 1992-06-16 Applied Creative Technology, Inc. Apparatus and protocol for local area network
US5163138A (en) * 1989-08-01 1992-11-10 Digital Equipment Corporation Protocol for read write transfers via switching logic by transmitting and retransmitting an address
US5333286A (en) * 1989-12-13 1994-07-26 Joseph Weinberger Two way copier monitoring system
US5133055A (en) * 1990-01-16 1992-07-21 Physio Systems, Inc. Signal processor for personal computers
US5299314A (en) * 1990-03-22 1994-03-29 Xircom, Inc. Network adapter using status inlines and data lines for bi-directionally transferring data between lan and standard p.c. parallel port
US5075875A (en) * 1990-04-20 1991-12-24 Acuprint, Inc. Printer control system
US5179555A (en) * 1990-09-11 1993-01-12 Microcom Systems, Inc. High speed data compression and transmission for wide area network connections in LAN/bridging applications
US5200958A (en) * 1990-09-28 1993-04-06 Xerox Corporation Method and apparatus for recording and diagnosing faults in an electronic reprographic printing system
JPH05189104A (ja) * 1990-10-31 1993-07-30 Ricoh Co Ltd 並列インタフェース
US5239627A (en) * 1991-03-26 1993-08-24 International Business Machines Corporation Bi-directional parallel printer interface
GB9108599D0 (en) * 1991-04-22 1991-06-05 Pilkington Micro Electronics Peripheral controller

Patent Citations (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JPS60157353A (ja) * 1984-01-26 1985-08-17 Citizen Watch Co Ltd プリンタ情報問い合せ通信方式とプリンタ

Cited By (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2002542528A (ja) * 1999-02-17 2002-12-10 アクシス アクチボラグ 通信のためのインタフェース及び方法

Also Published As

Publication number Publication date
AU2102392A (en) 1993-03-04
CA2075774A1 (en) 1993-02-28
US5507003A (en) 1996-04-09
KR930004868A (ko) 1993-03-23
DE69232456T2 (de) 2002-09-26
CN1070497A (zh) 1993-03-31
EP0529887A2 (en) 1993-03-03
AU645920B2 (en) 1994-01-27
MY153949A (en) 2015-04-15
EP0529887B1 (en) 2002-03-06
IL102823A0 (en) 1993-01-31
DE69232456D1 (de) 2002-04-11
US5666558A (en) 1997-09-09
MX9204892A (es) 1993-04-01
IL102823A (en) 1996-03-31
TW203673B (ja) 1993-04-11
EP0529887A3 (en) 1993-09-22
JP3103216B2 (ja) 2000-10-30
ATE214172T1 (de) 2002-03-15
NZ243927A (en) 1995-09-26
CA2075774C (en) 2000-10-17
IE922610A1 (en) 1993-03-10
CN1044414C (zh) 1999-07-28
BR9203330A (pt) 1993-04-06

Similar Documents

Publication Publication Date Title
JPH05341923A (ja) 2方向性通信能力を提供する方法及びプロトコル
US6618788B1 (en) ATA device control via a packet-based interface
US5600793A (en) Method and system of bi-directional parallel port data transfer between data processing systems
US6967960B1 (en) Method and apparatus for emulating a local data port
US6353866B1 (en) Apparatus and method for initializing a universal serial bus device
WO2018196262A1 (zh) 将pos终端虚拟为计算机打印机的方法、计算机、pos终端和存储介质
US6014716A (en) System for recognizing bidirectional communication over parrallel data lines by further sending data transmission request and notification indicating reverse direction transmission is possible to second device
JP2004518263A (ja) 照明システム用の通信ポート制御モジュール
US7590767B2 (en) Electronic apparatus, information processing system and method of controlling said apparatus
WO1998043173A1 (fr) Systeme d'emulation et processeur de donnees
TW468112B (en) Arbitrating method of bus between control chipsets
US6058440A (en) Programmable and adaptive resource allocation device and resource use recorder
EP0501489A1 (en) Advanced functionality parallel port interface
TWI259368B (en) Method, apparatus and program storage device for automatically presenting status from a host bus adapter until an error is detected
TW200844730A (en) Testing system of universal serial bus device and method thereof
JPH06507748A (ja) データ処理装置の接続用並列インターフェース
JP3241034B2 (ja) 外部記憶装置
KR20030044373A (ko) 기억 장치 직접 접근 인터페이스를 지원하는 범용 직렬버스 장치
JP3395762B2 (ja) データ処理システム及びデータ伝送方法
JP3423376B2 (ja) 情報処理装置及びその制御方法
JP2948380B2 (ja) データ通信装置
KR100259585B1 (ko) 디엠에이 콘트롤러
JPH08166919A (ja) 異種プロトコルの複数システム間の入出力装置共用システム
Frock IEEE 1284–Updating the PC Parallel Port
JPH08111737A (ja) セキュア・ファクシミリ・システムおよびセキュア・ディジタル・データの同期送受信方法

Legal Events

Date Code Title Description
R250 Receipt of annual fees

Free format text: JAPANESE INTERMEDIATE CODE: R250

R250 Receipt of annual fees

Free format text: JAPANESE INTERMEDIATE CODE: R250

R250 Receipt of annual fees

Free format text: JAPANESE INTERMEDIATE CODE: R250

FPAY Renewal fee payment (event date is renewal date of database)

Free format text: PAYMENT UNTIL: 20080825

Year of fee payment: 8

FPAY Renewal fee payment (event date is renewal date of database)

Free format text: PAYMENT UNTIL: 20090825

Year of fee payment: 9

FPAY Renewal fee payment (event date is renewal date of database)

Free format text: PAYMENT UNTIL: 20100825

Year of fee payment: 10

FPAY Renewal fee payment (event date is renewal date of database)

Free format text: PAYMENT UNTIL: 20110825

Year of fee payment: 11

FPAY Renewal fee payment (event date is renewal date of database)

Free format text: PAYMENT UNTIL: 20110825

Year of fee payment: 11

FPAY Renewal fee payment (event date is renewal date of database)

Free format text: PAYMENT UNTIL: 20120825

Year of fee payment: 12

EXPY Cancellation because of completion of term