欧美在线观看视频网站,亚洲熟妇色自偷自拍另类,啪啪伊人网,中文字幕第13亚洲另类,中文成人久久久久影院免费观看 ,精品人妻人人做人人爽,亚洲a视频

雙向并行協(xié)議的制作方法

文檔序號(hào):6406696閱讀:332來(lái)源:國(guó)知局
專利名稱:雙向并行協(xié)議的制作方法
技術(shù)領(lǐng)域
本發(fā)明涉及協(xié)議,再具體地說(shuō),涉及使通過(guò)并行接口雙向通信成為可能的協(xié)議。
端口作為可供給或提取能量的設(shè)備或網(wǎng)絡(luò)的入口部位或作為可觀察或測(cè)量該設(shè)備或網(wǎng)絡(luò)的位置是為電子領(lǐng)域技術(shù)人員所熟知的。端口可歸為兩類串行,或并行。如預(yù)料,串行口包含時(shí)間順序的處理或控制,并行口包含同時(shí)進(jìn)行的處理或控制。
在微處理器技術(shù)領(lǐng)域,術(shù)語(yǔ)“端口”包括數(shù)據(jù)從外部世界傳到微處理器系統(tǒng)或相反的“門(mén)”或通道口。微處理器包括串行以及并行口。過(guò)去,已經(jīng)廣泛認(rèn)識(shí)到串行口有用于與調(diào)制解調(diào)器、WANS等的通信,并已開(kāi)發(fā)出多種支持串行通信的軟件。另一方面,傳統(tǒng)上并行口僅用于諸如打印和繪圖一類的相當(dāng)普遍的任務(wù),主要是因?yàn)樗鼈儽焕斫鉃閮H是單向的。
近來(lái)本領(lǐng)域技術(shù)人員已開(kāi)始認(rèn)識(shí)到標(biāo)準(zhǔn)并行口是雙向的,亦即,可同時(shí)在12條之多的線路上輸入或輸出。另一方面,串行卡僅能夠在單條線路上一次輸入或輸出一位。比較這二者的操作揭示出并行口的相對(duì)功效在采用串行口來(lái)判定是否是引起單一事務(wù)處理的時(shí)候時(shí)它能輸出一個(gè)半字節(jié)。
最近本領(lǐng)域技術(shù)人員還開(kāi)始認(rèn)識(shí)到利用并行口進(jìn)行通常與串行口相關(guān)聯(lián)的的那類通信有某些優(yōu)越性。RossGreenburg在題為“雙向通信的自適應(yīng)并行口”的文章中已表明了這些優(yōu)點(diǎn)中的大部分,在1990年9月發(fā)行的“微軟件系統(tǒng)雜志”的第107頁(yè)開(kāi)始可找到該文章。在該文章中Greenburg先生指出不必總是以ASCⅡ進(jìn)行通信。這種場(chǎng)合的實(shí)例可為傳感器的通/斷狀態(tài)正被讀或至繼電器的線路被接通或斷開(kāi)時(shí)。在這種現(xiàn)實(shí)世界能夠非常容易地連接到并行口的情況下,完全沒(méi)必要利用串行口。Greenberg先生還指出,因?yàn)椴⑿锌谀軌蛲瑫r(shí)輸入或輸出多個(gè)位,它應(yīng)能提供快于串行口的I/O。自然,需要諸如本文所講授協(xié)議一類的特定代碼和協(xié)議以充分利用并行口的能力。
由于本發(fā)明專門(mén)處理包含打印機(jī)的通信,認(rèn)為與這種打印機(jī)的通信是相關(guān)技術(shù)的部分是適合的。為了充分利用打印機(jī)的能力,例如,PostScript打印機(jī),主計(jì)算機(jī)必須能夠發(fā)送詢問(wèn)并接收相應(yīng)的回答。當(dāng)然,如前所述,雙向通信、在此為主計(jì)算機(jī)與打印機(jī)之間的雙向通信可由串行接口提供。然而,如在最近才認(rèn)識(shí)到的,更高速度的雙向通信仍由并行接口提供。本領(lǐng)域技術(shù)人員還未開(kāi)發(fā)這后一能力來(lái)為主計(jì)算機(jī)與打印機(jī)系統(tǒng)的用戶提供串行接口的功能而無(wú)需犧牲并行接口的易安裝性和較高傳輸速度。因此,現(xiàn)有技術(shù)的缺點(diǎn)和不足是至此還沒(méi)人開(kāi)發(fā)出可行協(xié)議以允許主計(jì)算機(jī)與打印機(jī)之間經(jīng)并行接口的雙向通信。
本發(fā)明通過(guò)形成在串行接口上提供主計(jì)算機(jī)與打印機(jī)之間的雙向通信能力的協(xié)議克服了現(xiàn)有技術(shù)的缺點(diǎn)和不足,該主計(jì)算機(jī)和打印機(jī)之間具有從主計(jì)算機(jī)到打印機(jī)傳輸信號(hào)的反向通道。該協(xié)議包括用于令正向通道轉(zhuǎn)向以便建立反向通道從而允許數(shù)據(jù)從打印機(jī)傳送到主計(jì)算機(jī)的裝置,用于控制反向通道上數(shù)據(jù)從打印機(jī)到主計(jì)算機(jī)的傳輸?shù)难b置,以及用于使反向通道反轉(zhuǎn)以重建立反向通道的裝置。
在本發(fā)明實(shí)施例中,由主計(jì)算機(jī)啟動(dòng)使反向通道轉(zhuǎn)向的裝置。在這些實(shí)施例以及本發(fā)明的其它實(shí)施例中,使反向通道反轉(zhuǎn)回來(lái)以重建反向通道的裝置也由主計(jì)算機(jī)啟動(dòng)。
在本發(fā)明的某些實(shí)施例中,正向通道包括在反向通道操作期間用于在打印機(jī)與主計(jì)算機(jī)之間傳輸數(shù)據(jù)的狀態(tài)線。
進(jìn)一步按照本發(fā)明的講授,正向通道可以是在反向通道操作期間用于在打印機(jī)與主計(jì)算機(jī)之間傳遞控制和狀態(tài)信息的輸入/輸出控制通道。
在本發(fā)明的實(shí)施例中,用于使正向通道轉(zhuǎn)向的裝置是主計(jì)算機(jī)升高*SLCTin信號(hào)的裝置和打印機(jī)降低SLCT信號(hào)的裝置。
仍進(jìn)一步按照本發(fā)明的講授,用于控制數(shù)據(jù)傳輸?shù)难b置可以是主計(jì)算機(jī)請(qǐng)求數(shù)據(jù)包的裝置,打印機(jī)指出數(shù)據(jù)包在狀態(tài)線上的裝置,以及主計(jì)算機(jī)從狀態(tài)線讀出數(shù)據(jù)包的裝置。在本發(fā)明的這些實(shí)施例中,數(shù)據(jù)包可以是半字節(jié)數(shù)據(jù),主計(jì)算機(jī)請(qǐng)求半字節(jié)數(shù)據(jù)的裝置可以是一*STROBE(選通)信號(hào),打印機(jī)指出半字節(jié)數(shù)據(jù)在狀態(tài)線上的裝置可以是一SLCT信號(hào)。在這些實(shí)施例中,可通過(guò)降低的*STROBE(選通)信號(hào)請(qǐng)求低半字節(jié)數(shù)據(jù),而通過(guò)升高的SLCT信號(hào)指出其待傳輸;而且,可通過(guò)升高的*STROBE信號(hào)請(qǐng)求高半字節(jié)數(shù)據(jù)并可通過(guò)降低的SLCT信號(hào)指出其待傳輸。
本發(fā)明的實(shí)施例還包括打印機(jī)向主計(jì)算機(jī)指出有多少數(shù)據(jù)字節(jié)有待于從打印機(jī)傳輸?shù)皆撝饔?jì)算機(jī)的裝置??稍O(shè)計(jì)該裝置響應(yīng)被升高的*SLCTin信號(hào)并在SLCT被降低之前起作用。
本發(fā)明還通過(guò)提供用于提供一主計(jì)算機(jī)與打印機(jī)之間經(jīng)并行接口的雙向通信能力的方法來(lái)克服現(xiàn)有技術(shù)的缺點(diǎn)和不足,該主計(jì)算機(jī)和打印機(jī)之間具有從主計(jì)算機(jī)到打印機(jī)傳遞信號(hào)的正向通道。本發(fā)明提供的方法包括使正向通道轉(zhuǎn)向的步驟以便建立反向通道,從而允許在反向通道上從打印機(jī)到主計(jì)算機(jī)傳送數(shù)據(jù),以及使反向通道反轉(zhuǎn)的步驟以便重建正向通道。
在本發(fā)明方法實(shí)施例中,可由主計(jì)算機(jī)啟動(dòng)通道反轉(zhuǎn)步驟之一或二者。
按照本發(fā)明,正向通道可包括在反向通道操作期間可用于在打印機(jī)與主計(jì)算機(jī)之間傳輸數(shù)據(jù)的狀態(tài)線。進(jìn)一步按照本發(fā)明,正向通道可以是在反向通道操作期間可用于在打印機(jī)與主計(jì)算機(jī)之間傳遞控制和狀態(tài)信息的輸入/輸出控制通道。
在本發(fā)明方法實(shí)施例中,使正向通道轉(zhuǎn)向的步驟可包括主計(jì)算機(jī)升高*SLCTin信號(hào)的步驟和打印機(jī)降低SLCT信號(hào)的步驟。
仍進(jìn)一步按照本發(fā)明的講授,控制數(shù)據(jù)傳輸?shù)牟襟E可包括主計(jì)算機(jī)請(qǐng)求數(shù)據(jù)包的步驟,打印機(jī)指出數(shù)據(jù)包在狀態(tài)線上的步驟,以及主計(jì)算機(jī)從狀態(tài)線讀出數(shù)據(jù)包步驟。在本發(fā)明方法的這些實(shí)施例中,數(shù)據(jù)包可以是半字節(jié)數(shù)據(jù)。而且,在本發(fā)明的方法的這些實(shí)施例中主計(jì)算機(jī)請(qǐng)求半字節(jié)數(shù)據(jù)的步驟可包含一*STROBE(選通)信號(hào)。另外,在本發(fā)明方法的這些實(shí)施例中打印機(jī)指出半字節(jié)數(shù)據(jù)在狀態(tài)線上的步驟可包含一SLCT信號(hào)。在上述實(shí)施例中,可通過(guò)降低的*STROBE(選通)信號(hào)請(qǐng)求“低”半字節(jié)數(shù)據(jù),而通過(guò)升高的SLCT信號(hào)指出其待傳輸;而且,可通過(guò)升高的*STROBE信號(hào)請(qǐng)求“高”半字節(jié)數(shù)據(jù)并可通過(guò)降低的SLCT信號(hào)指出其待傳輸。
本發(fā)明的實(shí)施例還可包括打印機(jī)向主計(jì)算機(jī)指出有多少數(shù)據(jù)字節(jié)可從打印機(jī)傳輸?shù)皆撝饔?jì)算機(jī)的步驟。在本發(fā)明方法的這些實(shí)施例中,該步驟可在*SLCTin信號(hào)升高而SLCT信號(hào)降低之前進(jìn)行。
因此,本發(fā)明的目的是提供雙向并行協(xié)議。
本發(fā)明的另一目的是提供可利用現(xiàn)有PC并行口硬件和電纜的協(xié)議。
本發(fā)明的又一目的是提供具有主計(jì)算機(jī)和打印機(jī)部分的協(xié)議,當(dāng)配備協(xié)議的主計(jì)算機(jī)或打印機(jī)連接到未配備協(xié)議的打印機(jī)或主計(jì)算機(jī)時(shí)這些部分不中斷單向傳輸。
本發(fā)明還有一目的是提供對(duì)直接驅(qū)動(dòng)并行口的非運(yùn)轉(zhuǎn)軟件透明的協(xié)議。
本發(fā)明的再一目的是提供其中主計(jì)算機(jī)能快速而有效地輪詢打印機(jī)以看是否存在任何待讀數(shù)據(jù)的協(xié)議。
本發(fā)明的另一目的是提供不對(duì)主計(jì)算機(jī)施加實(shí)時(shí)限制的協(xié)議。
本發(fā)明還有一目的是提供堅(jiān)固可擴(kuò)展的協(xié)議。
本發(fā)明的其它目的,優(yōu)點(diǎn)和新特征由以下結(jié)合附圖的詳述將變得更為明顯,附圖中

圖1是現(xiàn)有技術(shù)并行打印機(jī)適配器的方塊圖;
圖2是表示并行端口接口細(xì)節(jié)的示意圖;以及圖3是表示以按照本發(fā)明的協(xié)議在時(shí)間上的信號(hào)傳輸?shù)氖疽鈭D。
現(xiàn)在參見(jiàn)附圖,其中相同或類似元件在這些視圖中均以相同標(biāo)號(hào)表示,更具體地是參見(jiàn)圖1,其中所示是至此開(kāi)發(fā)的并行打印機(jī)適配器。該圖1清楚地示出了對(duì)本發(fā)明的結(jié)構(gòu)和實(shí)施重要的一些細(xì)節(jié)。
首先,特別參見(jiàn)圖1,可注意到并行口是計(jì)算機(jī)的最普通部件之一。這一并行口有四個(gè)不同部分地址譯碼部分,寫(xiě)邏輯部分,物理輸入/輸出部分,以及輸入/輸出至總線的傳輸部分。通常,并行口的操作如下。
首先,當(dāng)一特定地址在總線4上時(shí)啟動(dòng)地址譯碼部分2。寫(xiě)邏輯部分6讀取總線4上的數(shù)據(jù)并將它供給物理輸入/輸出部分8。輸入/輸出到總線傳輸部分使在被請(qǐng)求時(shí)輸入/輸出的數(shù)據(jù)對(duì)總線有效。
四地址與IOR或IOW總線線路10、12一起啟動(dòng)并行口。IOR和IOW總線線路12、14表示總線上正進(jìn)行端口輸入或輸出操作。因?yàn)檎4鎯?chǔ)器讀和寫(xiě)不置位與這些線路相關(guān)聯(lián)的引腳,整個(gè)卡忽略這些類型的操作。
導(dǎo)線的各種組合允許寫(xiě)和讀DB-25接插件14上的狀態(tài)和數(shù)據(jù)線。
現(xiàn)參見(jiàn)圖2,此處以方塊圖形式示出了PC并行口接口的硬件和電纜??煽吹皆摻涌诰哂腥齻€(gè)寄存器,它們均直接由軟件管理。這三個(gè)寄存器是數(shù)據(jù)寄存器24,狀態(tài)寄存器26,以及控制寄存器28。以下緊接著以各段討論這三個(gè)寄存器24、26、28中的每一個(gè)。
數(shù)據(jù)寄存器24是僅供輸出用的8位讀/寫(xiě)鎖存器??勺x該鎖存器以確定最近寫(xiě)入它的數(shù)據(jù)。盡管已提出一些方案讓該鎖存器用作輸入,但這些方案最好也不過(guò)是不可靠,最壞情況是硬件毀壞。
狀態(tài)寄存器26實(shí)際上不是一寄存器,而是一未鎖完的輸入口。術(shù)語(yǔ)“狀態(tài)寄存器”在此是用于防止與術(shù)語(yǔ)“端口”的混淆?!白x狀態(tài)寄存器”在此應(yīng)理解為表示獲取狀態(tài)線的實(shí)時(shí)樣值。
控制寄存器28類似于數(shù)據(jù)寄存器24,它也是僅用作輸出的讀/寫(xiě)鎖存器。在寄存器28上部的三個(gè)未使用位習(xí)慣上讀作1,但應(yīng)作為0寫(xiě)回。這防止對(duì)利用位5的某些較新的執(zhí)行過(guò)程的誤動(dòng)作。位4實(shí)際上不是打印機(jī)控制線,它用來(lái)允許/禁止中斷。
狀態(tài)和控制線的極性可能是主要混淆。更糟的是,某些線路在該接口反向。良好的命名約定可為操作者節(jié)省大量時(shí)間并省去麻煩。
有效低信號(hào)是由低電壓而不是高電壓表示的狀態(tài)。我們假定*ACK信號(hào)是有效低的,因?yàn)樵摼€上的低電壓表示來(lái)自打印機(jī)的認(rèn)可。
星號(hào)(*)是該命名的部分,并用于提醒該信號(hào)為有效低。
PC并行口接口使BUSY(忙)信號(hào)反向并使所得結(jié)果作為狀態(tài)寄存器26的位7。我們將該位稱為~BUSY。不定號(hào)(~)表示該信號(hào)相對(duì)于電纜反相?!猄TROBE,~*AUTOLF,以及~*SLCTin信號(hào)均是有效低并相對(duì)于電纜反相。
應(yīng)理解某些信號(hào)能以一種以上的方式加以引用。例如,說(shuō)*SLCTin下降相當(dāng)于說(shuō)~*SLCTin上升。該協(xié)議的討論通常在信號(hào)出現(xiàn)在電纜上時(shí)而不是當(dāng)它出現(xiàn)在PC接口上時(shí)加以引用。
混淆的另一可能原因是電纜本身,簡(jiǎn)單地是因?yàn)樵趫D2所示實(shí)例中它在PC端具有DB-25插頭,而在打印機(jī)端具有一Centronics36-腳插頭。例如,標(biāo)記“引腳K”是含糊的,因?yàn)樵摻硬寮皇且灰粚?duì)應(yīng)的。因此,圖2是對(duì)PC并行口的程序員快速參考指南。它示出了與兩接插件引腳號(hào)連接的電纜,與導(dǎo)線相關(guān)聯(lián)的信號(hào)名稱,可由PC訪問(wèn)的寄存器,以及與該接口相連的反相器。
有了以上基礎(chǔ),現(xiàn)詳細(xì)討論按照本發(fā)明的協(xié)議。由于將會(huì)變得顯而易見(jiàn)的原因,可將該協(xié)議稱之為“半字節(jié)模式反轉(zhuǎn)通道協(xié)議”。
通常,數(shù)據(jù)從主機(jī)到打印機(jī)的傳輸通過(guò)正向通道來(lái)完成。按照本發(fā)明的雙向協(xié)議建立將數(shù)據(jù)從打印機(jī)傳輸?shù)皆撝鳈C(jī)的反向通道。
正向通道上一次傳送一個(gè)字節(jié),每字節(jié)獨(dú)立傳輸。該反向通道是面向?qū)υ挼?可以單次對(duì)話傳輸任何數(shù)量的字節(jié)(0與16384之間)。
該對(duì)話具有打開(kāi)序列和關(guān)閉序列以達(dá)到改變通道方向,即“使通道轉(zhuǎn)向”的目的。這是必要的,因?yàn)檫@兩個(gè)通道共享其含意取決于有效通道的某些信號(hào)。在電纜中不存在足夠的信號(hào)允許兩通道同時(shí)有效。圖3示出了反向通道協(xié)議。
參見(jiàn)圖3,可看出主機(jī)通過(guò)將十六進(jìn)制01h字節(jié)寫(xiě)入數(shù)據(jù)線啟動(dòng)該對(duì)話,然后提高(去激勵(lì))*SLCTin信號(hào)。01h字節(jié)表示通信模式號(hào)數(shù)。通令模式號(hào)數(shù)在下文作更為詳細(xì)的討論。
打印機(jī)通過(guò)將半字節(jié)數(shù)據(jù)、循環(huán)控制提示置于狀態(tài)線上然后降低SLCT來(lái)響應(yīng)前述操作。當(dāng)主機(jī)看到SLCT下降,它便讀狀態(tài)線以獲得循環(huán)控制提示。這也在下面作進(jìn)一步討論。該對(duì)話現(xiàn)在被打開(kāi)。
按照本發(fā)明的協(xié)議中的下一組操作可稱為“數(shù)據(jù)傳輸循環(huán)操作”。在該循環(huán)中主機(jī)降低*STROBE(選通)以請(qǐng)求一字節(jié)的低半字節(jié)。當(dāng)SLCT變高時(shí),主機(jī)可從狀態(tài)線讀出該半字節(jié)。在圖3所示實(shí)例中,~BUSY是位3,*ACK是位2,PE是位1,及*ERR是位0。
其次,主機(jī)升高*STROBE以請(qǐng)求該字節(jié)的高半字節(jié)。當(dāng)SLCT變?yōu)榈蜁r(shí),主機(jī)可從狀態(tài)線讀出這半字節(jié)。在圖3所示實(shí)例中,~BUSY是位7,*ACK是位6,PE是位5,以及*ERR是位4。
相對(duì)于循環(huán)控制提示,其在前面已簡(jiǎn)短提到,在開(kāi)始序列期間,主機(jī)從狀態(tài)線讀循環(huán)控制提示(在該實(shí)例中,~BUSY是位3,*ACK是位2,PE是位1,以及*ERR是位0)。循環(huán)控制提示是一四位無(wú)符號(hào)整數(shù),其設(shè)立了能在在新近打開(kāi)對(duì)話中傳輸?shù)淖止?jié)數(shù)的上限。
如果循環(huán)控制提示是0h,則打印機(jī)無(wú)數(shù)據(jù)要傳送,且主機(jī)有責(zé)任關(guān)閉該對(duì)話而不打算傳輸任何數(shù)據(jù)。
如果循控制提示不是0h,則以2自乘的冪(循環(huán)控制提示-1)計(jì)算循環(huán)控制極限。下表列出了所有可能組合循環(huán)控制提示循環(huán)控制極限(字節(jié))0h01h12h23h44h85h166h327h648h1289h256Ah512Bh1024(1KB)Ch2048(2KB)DH4096(4KB)Eh8192(8KB)
Fh16384(16KB)主機(jī)無(wú)責(zé)任讀出所有可用字節(jié)。主機(jī)可讀從0到循環(huán)控制極限的任何數(shù)量字節(jié)。如果主機(jī)讀到高達(dá)該極限,它必須關(guān)閉該對(duì)話。如果主機(jī)仍想要更多數(shù)據(jù),它可立即打開(kāi)另一對(duì)話??赡艽嬖诨虿淮嬖诟嗟目捎脭?shù)據(jù)。
作為一個(gè)實(shí)例,假定主機(jī)想要讀80字節(jié)的數(shù)據(jù)。一旦打開(kāi)對(duì)話,主機(jī)接收循環(huán)控制提示7h,表示它可讀不超過(guò)64字節(jié)。主機(jī)讀這64個(gè)字節(jié),關(guān)閉對(duì)話,然后打開(kāi)另一對(duì)話。假定這時(shí)循環(huán)控制提示是6h,表示32個(gè)字節(jié)是可用的。主機(jī)則讀16個(gè)字節(jié)(總共是80)再關(guān)閉該對(duì)話。
圖3所示下一組即最底部的操作涉及關(guān)閉對(duì)話。當(dāng)它已讀字節(jié)數(shù)高達(dá)循環(huán)控制極限時(shí)或當(dāng)它已具有它想要的所有字節(jié)時(shí),無(wú)論哪一情況先出現(xiàn),主機(jī)的責(zé)任是關(guān)閉該對(duì)話。
主機(jī)通過(guò)降低*SLCTin,然后等待SLCT變?yōu)楦哧P(guān)閉對(duì)話。主機(jī)必須等待SLCT指出狀態(tài)線此時(shí)攜帶狀態(tài)信息而非數(shù)據(jù)。
順帶說(shuō)來(lái)相對(duì)于該實(shí)例在此提出的半字節(jié)模式反向通道協(xié)議,應(yīng)注意到盡管多數(shù)打印機(jī)每當(dāng)它們因任何原因變?yōu)槊摍C(jī)時(shí)降低SLCT,如果打印機(jī)將支持在些給出的該實(shí)例協(xié)議,它不必展現(xiàn)該行為。SLCT信號(hào)必須完全用于該協(xié)議,而不必用于其它任何事情。當(dāng)打印機(jī)脫機(jī)時(shí),它應(yīng)升高BUSY以防止主機(jī)發(fā)送數(shù)據(jù)。
在此適當(dāng)討論的涉及本發(fā)明的另一主題是協(xié)議超時(shí)誤差。在該協(xié)議中有許多地方主機(jī)必須無(wú)限等待直到信號(hào)轉(zhuǎn)變。在這些循環(huán)中,可設(shè)置定時(shí)器來(lái)防止暫停。建議的超時(shí)周期對(duì)等待來(lái)自打印機(jī)的信號(hào)轉(zhuǎn)變的每個(gè)循環(huán)為2秒。這應(yīng)給打印機(jī)充裕時(shí)間以響應(yīng),但如果打印機(jī)根本不支持該協(xié)議則允許迅速通知用戶。
如果當(dāng)該對(duì)話打開(kāi)時(shí)主機(jī)方面的等待循環(huán)超時(shí),主機(jī)應(yīng)努力關(guān)閉該對(duì)話。如果在關(guān)閉對(duì)話的同時(shí)出現(xiàn)超時(shí),則主機(jī)可(用*INIT脈沖)復(fù)位打印機(jī)以廢棄該對(duì)話。一旦收到該信號(hào),打印機(jī)可能或不可能采取更為激烈的行為,例如取消當(dāng)前工作。主機(jī)在發(fā)送*INIT脈沖之前應(yīng)總是確認(rèn)*SLCTin為低(有效);如果在*INIT脈沖之后*SLCTin為高,打印機(jī)將認(rèn)為主機(jī)試圖打開(kāi)新對(duì)話。當(dāng)反向通道對(duì)話仍打開(kāi)時(shí)主機(jī)不應(yīng)試圖發(fā)送數(shù)據(jù)。
現(xiàn)在,相對(duì)于主機(jī)軟件,下面給出一些80X86匯編代碼段以輔助主機(jī)方面驅(qū)動(dòng)器軟件的設(shè)備。這些代碼段不是作為協(xié)議說(shuō)明的部分,而僅打算用來(lái)在明顯的解決途徑可能非常低效的位置提供有效而不太明顯的解決途徑。
這里給出的第一段涉及讀低半字節(jié)。當(dāng)PC讀狀態(tài)寄存器以獲得數(shù)據(jù)的低半字節(jié)時(shí),位處于錯(cuò)誤次序下。該代碼段將這些位正確排序。
;
;輸入AL具有狀態(tài)寄存器的內(nèi)容。數(shù)據(jù)位為錯(cuò)誤次序。數(shù)據(jù)位b3在;寄存器的位7,b2在位6,b1在位5,及b0在位3。位4中將總;是1,因?yàn)楫?dāng)讀低半字節(jié)時(shí),SLCT線為高。
;因此AL具有[b3b2b11b0XXX];輸出AH具有帶正確次序的位的下半字節(jié),上半字節(jié)為0。
;因此AH將具有
subAL,08h;將b0移入位4(回想位4為1);現(xiàn)在有[b3b2b1b0XXXX]shrAL,l;
shrAL,lshrAL,lshrAL,l
movAH,AL;存在AH中供以后用…此處給出的第二段涉及讀高半字節(jié)。當(dāng)PC從狀態(tài)寄存器讀高半字節(jié)時(shí),位再次為錯(cuò)誤次序。該代碼段將它們正確排序并將高半字節(jié)與低半字節(jié)組合。
;
;輸入AL為狀態(tài)寄存器的內(nèi)容。數(shù)據(jù)位為錯(cuò)誤的次序。數(shù)據(jù)的位b7在寄存器的位7,b6在位6,b5在位5,及b4在位3。位4總是0,因?yàn)楫?dāng)讀高半字節(jié)時(shí),SLCT線為低。
;因此AL為[b7b6b50b4XXX];
;AH應(yīng)具有低半字節(jié)
;
;輸出AL將具有所有位正確排序的字節(jié)。
;addAL,08h;將b4移入位4(回想b4為0);現(xiàn)在具有[b7b6b5b4XXXX]andAL,11110000b;屏蔽掉無(wú)意義的位orAL,AH;組合半字節(jié)以形成完整字節(jié)。
第三代碼段利用循環(huán)控制提示和主機(jī)想要的字節(jié)數(shù)計(jì)算待讀的字節(jié)數(shù)。
;
;輸入BX具有主機(jī)想要讀的最大字節(jié)數(shù)。(由主機(jī)施加的限制)。
;
;在傳輸循環(huán)控制提示時(shí)AL具有狀態(tài)寄存器的值。因?yàn)镾LCT為;低,位4將為0。[b3b2b10b0XXX];
;輸出CX將具有關(guān)閉該對(duì)話之前應(yīng)傳輸?shù)淖止?jié)數(shù)。
;
;BX將具有該對(duì)話關(guān)閉以后主機(jī)仍需要的字節(jié)數(shù)。如BX非0,;主機(jī)應(yīng)打開(kāi)另一對(duì)話并試圖讀更多字節(jié)。
;
addAL,08h;我們現(xiàn)有[b3b2b1b0XXXX]movCL,4shrAL,CL;現(xiàn)在具有
;AL具有循環(huán)控制提示decAL;讀任何可用數(shù)據(jù)?;注意這時(shí)CX不是0。循環(huán)邏輯需要該信息。
jsclose-dialogue;如果無(wú)可用數(shù)據(jù)關(guān)閉對(duì)話movCL,AL;用循環(huán)控制提示作為偏移計(jì)數(shù)movAX,l;用一位計(jì)算2^(CL)shlAX,CL;AX=2^(循環(huán)控制提示-1);AX具有循環(huán)控制極限;計(jì)算BX和循環(huán)控制極限(AX)的最小值subAX,BX;CY若BX>AX;AY具有增量sbbCX,CX;0若無(wú)CY,全1若CYandCX,AX;0或增量addCX,BX;CX為最小subBX,CX;BX>=0;CX具有傳輸循環(huán)的計(jì)數(shù)。用循環(huán)指令。
;BX具有該循環(huán)后主機(jī)缺少的字節(jié)數(shù)。
;主機(jī)需要利用兩個(gè)嵌套循環(huán),一個(gè)用作實(shí)際數(shù)據(jù)傳輸,另一;個(gè)用作獲得足夠數(shù)據(jù)所需的對(duì)話以滿足主機(jī),或直到對(duì)話表;明不存在更多數(shù)據(jù)。
;該循環(huán)邏輯大約象這樣進(jìn)行read-loop[這里為傳輸一字節(jié)的代碼][保存CX和BX。]loopread-loop;注意這里CX為0…;主機(jī)現(xiàn)在有責(zé)任關(guān)閉該對(duì)話。
close-dialogue[這里為關(guān)閉對(duì)話的代碼。][保存CX和BX。];如果BX>0,打開(kāi)另一對(duì)話并讀更多數(shù)據(jù)。
orBX,BXjzxfer-done;如果BX為0,主機(jī)滿足。
;BX具有主機(jī)仍缺少的字節(jié)數(shù);如果不存在更多可用數(shù)據(jù)CX為非零。
;若CX為0,可能存在更多數(shù)據(jù)。
jcxzopen-dialoguexfer-done;若BX為0,讀出所需字節(jié)數(shù)。
;若BX>0,讀出(N-BX)字節(jié),如果N是所需要的字節(jié)數(shù)。
至此,僅已討論了所謂半字節(jié)模式反向通道協(xié)議。如至此還指出的,半字節(jié)模式反向通道協(xié)議僅是為雙向并行通信設(shè)計(jì)的一組協(xié)議之一。本文件中還公開(kāi)了其它這種協(xié)議。
相對(duì)于前面討論的協(xié)議,已指定下列四個(gè)通信模式號(hào)數(shù)模式號(hào)協(xié)議0ID版本協(xié)議1半字節(jié)模式反向通道協(xié)議2IOCTL寫(xiě)模式3用半字節(jié)模式反向通道協(xié)議的IOCTL讀剩余模式號(hào)4-255被認(rèn)為保留供將來(lái)用。
相對(duì)于打開(kāi)和關(guān)閉通信模式,每個(gè)通信模式以相同方式開(kāi)始和結(jié)束。為了打開(kāi)通信模式,主機(jī)將通信模式號(hào)置于數(shù)據(jù)線上然后升高*SLCTin信號(hào)。打印機(jī)通過(guò)降低SLCT信號(hào)認(rèn)可該模式。自該點(diǎn)進(jìn)行的所有通信必須按照規(guī)定協(xié)議。如果狀態(tài)線從它們的標(biāo)準(zhǔn)含意改變,該變化將在SLCT信號(hào)下降之前發(fā)生。這允許根據(jù)通信模式多路傳輸狀態(tài)線的含意。
為了關(guān)閉通信模式,主機(jī)降低并*SLLTin并等待打印機(jī)升高SLCT以指出它被關(guān)閉。狀態(tài)線的含義在主機(jī)降低*SLCTin之后和打印機(jī)升高SLCT之前被恢復(fù)。主機(jī)在繼續(xù)之前必須等待SLCT升高以防止可能的競(jìng)爭(zhēng)狀態(tài)。
下面描述在此稱之為“ID版本協(xié)議”的按照本發(fā)明的另一協(xié)議。
由于雙向并行協(xié)議是可擴(kuò)展的,如果主機(jī)能判定打印機(jī)正使用哪一版本協(xié)議,或者如果打印機(jī)根本不支持該協(xié)議,它是有幫助的。ID版本協(xié)議提供該功能。
除了少數(shù)非常重要的差異,ID版本協(xié)議以與半字節(jié)模式反向通道并行協(xié)議完全相同的方式工作。首先,通信模式號(hào)是零(0)而非一(1)。因此主機(jī)必須將十六進(jìn)制00h置于數(shù)據(jù)線上以開(kāi)始。
讀回的數(shù)據(jù)是不變的。循環(huán)控制提示始終是2h,因此循環(huán)控制極限總是2。總是正好存在兩個(gè)字節(jié)供讀出。第一字節(jié)為十六進(jìn)制數(shù)5Ah。第二字節(jié)是協(xié)議的版本號(hào)。
要求打印機(jī)實(shí)現(xiàn)作為整體以版本號(hào)指定的協(xié)議。部分實(shí)現(xiàn)將是不確定的。
為了澄清否則可能模糊的觀點(diǎn)打印機(jī)可恢復(fù)1作為版本號(hào)并僅實(shí)現(xiàn)通信模式0和1,其中模式0是由描述該協(xié)議的文檔版本指定的ID版本協(xié)議,而模式1是以相同文檔版本規(guī)定的反向通道協(xié)議,因此保持了向上兼容性。為不具有IOCTL通道的未來(lái)打印機(jī)提供版本1鑒別。
現(xiàn)在適于較為詳細(xì)討論IOCTL通道,從討議其目的開(kāi)始。
通常主機(jī)系統(tǒng)軟件最好或甚至必須向打印機(jī)詢問(wèn)詳細(xì)狀態(tài)信息,或發(fā)送結(jié)構(gòu)命令。但是至打印機(jī)的數(shù)據(jù)流(通常來(lái)自不相關(guān)的應(yīng)用程序)不能被非同步地注入它的新命令所中斷。同樣,主機(jī)軟件不必為獲得狀態(tài)信息從為應(yīng)用程序準(zhǔn)備的打印機(jī)讀出數(shù)據(jù)。為實(shí)現(xiàn)這一點(diǎn),當(dāng)系統(tǒng)軟件需發(fā)送狀態(tài)請(qǐng)求時(shí)打印機(jī)的數(shù)據(jù)緩沖器可能被充滿。
IOCTL(I/O控制)通道提供用于與打印機(jī)通信的單獨(dú)邏輯通道。該通道正如數(shù)據(jù)通道是雙向的,因此信息可以雙向傳遞。為該通道保留獨(dú)立緩沖器因此即使當(dāng)數(shù)據(jù)緩沖器飽和時(shí)仍能傳輸控制和狀態(tài)信息。
由打印機(jī)定義IOCTL通道上傳輸?shù)男畔⒏袷?。?shí)質(zhì)上,IOCTL通道是用來(lái)傳輸控制和狀態(tài)信息。一般它不用來(lái)發(fā)送頁(yè)面描述或其它數(shù)據(jù)。數(shù)據(jù)通道更適于用作該目的。
為從IOCTL通道讀出,主機(jī)利用與半字節(jié)模式反向通道協(xié)議正好相同的協(xié)議,除了通信模式號(hào)為3之外。因此為打開(kāi)IOCTL通道供讀出,主機(jī)首先將十六進(jìn)制數(shù)03h置于數(shù)據(jù)線上并升高*SLCTin,正如在通信模式1下該對(duì)話繼續(xù)。
該通道上讀出的信息與用通信模式1讀出的數(shù)據(jù)邏輯分離。如果不存在有待從反向(數(shù)據(jù))通道讀出的數(shù)據(jù),其并非暗示關(guān)于是否存在有待從IOCTL通道讀出的信息的任何事情。
為寫(xiě)入IOCTL通道,主機(jī)必須利用通信模式2。為開(kāi)始該傳輸,主機(jī)在數(shù)據(jù)線上寫(xiě)入十六進(jìn)制數(shù)02h,然后升高*SLCTin。然后打印機(jī)將IOCTL通道的狀態(tài)放在該狀態(tài)線上,并降低SLCT。當(dāng)主機(jī)觀察到SLCT變?yōu)榈蜁r(shí),它得知狀態(tài)線現(xiàn)在反映的是IOCTL通道而不是數(shù)據(jù)通道的狀態(tài)。因此,即使數(shù)據(jù)通道忙,IOCTL通道或許不忙。
一旦通信模式2被打開(kāi),利用數(shù)據(jù)線BUSY、*STROBE、*ACK及其它狀態(tài)線、以在數(shù)據(jù)通道上傳輸數(shù)據(jù)的正好相同方式從主機(jī)到打印機(jī)傳輸信息。
當(dāng)將控制信息傳輸?shù)酱蛴C(jī)之后,主機(jī)必須關(guān)閉通信模式。主機(jī)降低*SLCTin而等待SLCT變?yōu)楦?。打印機(jī)恢復(fù)狀態(tài)線以反映數(shù)據(jù)通道的狀態(tài),然后升高SLCT。當(dāng)主機(jī)觀察到SLCT變?yōu)楦邥r(shí)完成關(guān)閉。
當(dāng)寫(xiě)數(shù)據(jù)到IOCTL通道時(shí),通常主機(jī)必須等待BUSY,正如標(biāo)準(zhǔn)約定。該等待不受以上相對(duì)半字節(jié)模式反向通道協(xié)議討論的同樣2秒超時(shí)限制。這里超時(shí)值任主機(jī)自行決定。如果主機(jī)無(wú)耐性繼續(xù)等待BUSY信號(hào)并決定超時(shí),主機(jī)首先應(yīng)試圖以正常方式關(guān)閉通信模式。
轉(zhuǎn)移到新主題,支持并行打印機(jī)通信的標(biāo)準(zhǔn)BIOSINT17h在功能上是非常有限的。提出下列擴(kuò)充以允許軟件利用新協(xié)議而無(wú)需重新實(shí)現(xiàn)它們。這些擴(kuò)充僅作為實(shí)例提出,以方便有發(fā)現(xiàn)的實(shí)施而不對(duì)其加以限制。
“識(shí)別版本”功能提供一種方式告知下列擴(kuò)展的功能適合于應(yīng)用。
輸入AX=80A5h返回時(shí)AX為5A5AhBX將具有版本號(hào)返回的版本號(hào)將對(duì)應(yīng)于描述該協(xié)議的適當(dāng)文檔的版本號(hào)。該版本號(hào)以“H.L.”格式,其中在BH中返回“H”部分,而“L”部分在BL中返回。在適當(dāng)文檔開(kāi)始處的變動(dòng)經(jīng)歷應(yīng)提供關(guān)于版本號(hào)的附加信息。
理想地,至BIOS擴(kuò)充的所有未來(lái)改變將是可向上兼容的。
“寫(xiě)數(shù)據(jù)”功能發(fā)送緩沖區(qū)數(shù)據(jù)到打印機(jī)。
輸入AX=8100hDX=打印機(jī)端口號(hào)(對(duì)于LPT1到LPT30到2)CX=要寫(xiě)的字節(jié)數(shù)DSSI→數(shù)據(jù)緩沖區(qū)返回時(shí)CX包含發(fā)送的字節(jié)數(shù)。
所得代碼在AX中。
如果AX為0成功發(fā)送-1無(wú)效打印機(jī)端口號(hào)或未安裝端口。
-2指定指針是NULL。
-3超時(shí)原因未知。
-4超時(shí)大概未連接打印機(jī)
-5超進(jìn)接了打印機(jī)但可能未打開(kāi)電源。
“IOCTL寫(xiě)”功能發(fā)送-緩沖區(qū)的I/O控制信息到打印機(jī)。將數(shù)據(jù)寫(xiě)入IOCTL通道而非數(shù)據(jù)通道。
輸入AX=8101hDX=打印機(jī)端口號(hào)(對(duì)于LPT1至LPT3為0到2)CX=要寫(xiě)的字節(jié)數(shù)DSSI→發(fā)送緩沖器返回時(shí)CX包含發(fā)送的字節(jié)數(shù)。
所得代碼在AX中。
如果AX為0成功地發(fā)送-1無(wú)效打印機(jī)端口號(hào)或未裝上端口。
-2指定的指針為NULL。
-3超時(shí)原因未知。
-4超時(shí)大概未連接打印機(jī)。
-5超時(shí)接了打印機(jī)但大概未打開(kāi)電源。
“讀數(shù)據(jù)”功能從打印機(jī)讀出緩沖器數(shù)據(jù)。
輸入AX=8200hDX=打印機(jī)端口號(hào)(LPT1到LPT3為0到2)CX=要讀的最大字節(jié)數(shù)
ESDI→存儲(chǔ)輸入數(shù)據(jù)的緩沖區(qū)返回時(shí)CX包含實(shí)際讀出的字節(jié)數(shù)。
所得代碼在AX中。
如果AX為0成功發(fā)送。
-1無(wú)效打印機(jī)端口號(hào)或端口未安裝-2指定的指針為NULL。
-3超時(shí)原因未知。
-4超時(shí)打印機(jī)可能未連接。
-5超時(shí)接了打印機(jī)但可能未通電。
-6超時(shí)打印機(jī)(大概)不支持雙向協(xié)議。
“IOCTL讀”功能從打印機(jī)讀出一緩沖器I/O控制信息。該數(shù)據(jù)是從I/O控制通道而非數(shù)據(jù)通道讀出。
輸入AX=8201hDX=打印機(jī)端口號(hào)(對(duì)應(yīng)LPT1到LTP3為0到2)CX=需讀的最大字節(jié)數(shù)ESDI-存儲(chǔ)輸入數(shù)據(jù)的緩沖區(qū)。
返回時(shí)CX包含實(shí)際讀出的字節(jié)數(shù)。
所得代碼在AX中。
如果AX為0成功地發(fā)送。
-1無(wú)效打印機(jī)端口號(hào)或未裝上端口。
-2指定的指針為NULL。
-3超時(shí)原因未知。
-4超時(shí)打印機(jī)可能未連接。
-5超時(shí)連接打印機(jī)但可能未通電。
-6超時(shí)打印機(jī)(可能)不支持雙向協(xié)議。
作為最后的擴(kuò)充,讀/設(shè)置寫(xiě)入超時(shí)值輸入AH=83hAL=0讀,1設(shè)置DX=打印機(jī)端口號(hào)(LPT1到LPT3為0到2)BX=寫(xiě)入的以秒計(jì)超時(shí)值。0表示無(wú)限(無(wú)超時(shí))。故障為0(無(wú)超時(shí))。
CX=IOCTL寫(xiě)的以秒計(jì)超時(shí)值。故障是0。
注意即使超時(shí)值設(shè)置為0,來(lái)自操作者的Ctrl-Break序列引起超時(shí)。
注2該超時(shí)值不影響從每一通道讀出。
本領(lǐng)域的技術(shù)人員現(xiàn)在應(yīng)理解本發(fā)明提供堅(jiān)固、可擴(kuò)展并極適合于在主計(jì)算機(jī)與所附打印機(jī)之間操作的雙向并行協(xié)議。按照本發(fā)明的協(xié)議可利用現(xiàn)有PC并行口硬件和電纜而對(duì)非運(yùn)轉(zhuǎn)應(yīng)用軟件等透明。而且,按照本發(fā)明的協(xié)議允許快速輪詢而不施加不能預(yù)知的實(shí)時(shí)限制。
本領(lǐng)域技術(shù)人員會(huì)認(rèn)識(shí)到除了那些特別提到的,對(duì)這里所描述的技術(shù)可作出多種更改和變型,而實(shí)質(zhì)上不偏離本發(fā)明的概念。因此,在所附權(quán)利要求書(shū)的范圍內(nèi),可不同于這里的具體描述來(lái)實(shí)施本發(fā)明。
權(quán)利要求
1.用于在并行接口上提供主計(jì)算機(jī)與打印機(jī)之間的雙向通信能力的協(xié)議,所述主計(jì)算機(jī)和所述打印機(jī)間具有從所述主計(jì)算機(jī)到所述打印機(jī)傳輸信號(hào)的正向通道,所述協(xié)議包含用于使所述正向通道轉(zhuǎn)向以便建立反向通道以允許從所述打印機(jī)到所述主計(jì)算機(jī)傳輸數(shù)據(jù)的裝置;用于控制所述反向通道上從所述打印機(jī)到所述主計(jì)算機(jī)的所述數(shù)據(jù)傳輸?shù)难b置;以及用于傳所述反向通道反轉(zhuǎn)回以重建所述正向通道的裝置。
2.如權(quán)利要求1所述的協(xié)議,其特征在于用于使所述正向通道轉(zhuǎn)向的所述裝置由所述主計(jì)算機(jī)啟動(dòng)。
3.如權(quán)利要求2所述的協(xié)議,其特征在于由所述主計(jì)算機(jī)啟動(dòng)使所述反向通道轉(zhuǎn)向以重建所述正向通道的所述裝置。
4.如權(quán)利要求1所述的協(xié)議,其特征在于所述正向通道包含狀態(tài)線,所述狀態(tài)線用于在反向通道操作期間在所述打印機(jī)和所述主計(jì)算機(jī)之間傳輸數(shù)據(jù)。
5.如權(quán)利要求1所述的協(xié)議,其特征在于所述正向通道包含輸入/輸出控制通道,所述輸入/輸出控制通道用于在反向通道操作期間在所述打印機(jī)與所述主計(jì)算之間傳輸控制和狀態(tài)信息。
6.如權(quán)利要求1所述的協(xié)議,其特征在于用于使所述正向通道轉(zhuǎn)向的所述裝置包含所述主計(jì)算機(jī)升高*SLCTin信號(hào)的裝置,以及所述打印機(jī)降低SLCT信號(hào)的裝置。
7.如權(quán)利要求4的所述的協(xié)議,其特征在于用于控制數(shù)據(jù)傳輸?shù)乃鲅b置包含所述主計(jì)算機(jī)請(qǐng)求數(shù)據(jù)包的裝置,所述打印機(jī)指出數(shù)據(jù)包在狀態(tài)線上的裝置,以及所述主計(jì)算機(jī)從狀態(tài)線讀出數(shù)據(jù)包的裝置
8.如權(quán)利要求7所述的協(xié)議,其特征在于所述數(shù)據(jù)包包含半字節(jié)數(shù)據(jù),所述主計(jì)算機(jī)請(qǐng)求半字節(jié)數(shù)據(jù)的所述裝置包含一*STROBE(選通)信號(hào),所述打印機(jī)指出半字節(jié)數(shù)據(jù)在狀態(tài)線上的所述裝置包含一SLCT信號(hào),由此可通過(guò)降低的*STROBE(選通)信號(hào)請(qǐng)求低半字節(jié)數(shù)據(jù),并通過(guò)升高的SLCT信號(hào)指出其待傳輸,而高半字節(jié)數(shù)據(jù)可通過(guò)升高的*STROBE信號(hào)請(qǐng)求并可通過(guò)降低的SLCT信號(hào)指出其待傳輸。
9.如權(quán)利要求8所述的協(xié)議,其特征在于還包括所述打印機(jī)向所述主計(jì)算機(jī)指出有多少數(shù)據(jù)字節(jié)有待于從所述打印機(jī)傳輸?shù)剿鲋饔?jì)算機(jī)的裝置。
10.如權(quán)利要求9所述的協(xié)議,其特征在于所述打印機(jī)向所述主計(jì)算機(jī)指出有多少數(shù)據(jù)字節(jié)有待于從所述打印機(jī)傳輸?shù)剿鲋鳈C(jī)的所述裝置響應(yīng)升高的所述*SLCTin信號(hào)并在所述SLCT信號(hào)被降低之前起作用。
11.一種用于提供一主計(jì)算機(jī)與打印機(jī)之間經(jīng)并行接口的雙向通信能力的方法,所述主計(jì)算機(jī)和所述打印機(jī)之間具有從所述主計(jì)算到所述打印機(jī)傳遞信號(hào)的正向通道,所述方法包含步驟使所述正向通道轉(zhuǎn)向以便建立反向通道,從而允許從所述打印機(jī)到所述主計(jì)算機(jī)傳送數(shù)據(jù);控制所述反向通道上從所述打印機(jī)到所述主計(jì)算機(jī)的所述數(shù)據(jù)傳輸,以及使所述反向通道反轉(zhuǎn)以便重建所述正向通道。
12.如權(quán)利要求11所述的方法,其特征在于由所述主計(jì)算機(jī)啟動(dòng)使所述正向通道轉(zhuǎn)向的步驟。
13.如權(quán)利要求12所述的方法,其特征在于由所述主計(jì)算機(jī)啟動(dòng)使所述反向通道反轉(zhuǎn)回來(lái)以便重建所述正向通道的步驟。
14.如權(quán)利要求11所述的方法,其特征在于正向通道包含狀態(tài)線,所述狀態(tài)線用于在反向通道操作期間在所述打印機(jī)和所述主計(jì)算機(jī)之間傳輸數(shù)據(jù)。
15.如權(quán)利要求11所述的方法,其特征在于正向通道包含輸入/輸出控制通道,所述輸入/輸出控制通道用于在反向通道操作期間在所述打印機(jī)與所述主計(jì)算之間傳輸控制和狀態(tài)信息。
16.如權(quán)利要求1所述的方法,其特征在于用于使所述正向通道轉(zhuǎn)向的步驟包含所述主計(jì)算機(jī)升高*SLCTin信號(hào)的步驟,以及所述打印機(jī)降低SLCT信號(hào)的步驟。
17.如權(quán)利要求14所述的方法,其特征在于用于控制數(shù)據(jù)傳輸?shù)牟襟E包含所述主計(jì)算機(jī)請(qǐng)求數(shù)據(jù)包的步驟,所述打印機(jī)指出數(shù)據(jù)包在狀態(tài)線上的步驟,以及所述主計(jì)算機(jī)從狀態(tài)線讀出數(shù)據(jù)包的步驟。
18.如權(quán)利要求17所述的方法,其特征在于所述數(shù)據(jù)包包含半字節(jié)數(shù)據(jù),所述主計(jì)算機(jī)請(qǐng)求半字節(jié)數(shù)據(jù)的所述步驟包含一*STROBE(選通)信號(hào),所述打印機(jī)指出半字節(jié)數(shù)據(jù)在狀態(tài)線上的所述步驟包含一SLCT信號(hào),由此可通過(guò)降低的*STROBE(選通)信號(hào)請(qǐng)求低半字節(jié)數(shù)據(jù),并通過(guò)升高的SLCT信號(hào)指出其待傳輸,而高半字節(jié)數(shù)據(jù)可通過(guò)升高的*STROBE信號(hào)請(qǐng)求并可通過(guò)降低的SLCT信號(hào)指出其待傳輸。
19.如權(quán)利要求18所述的方法,其特征在于還包括打印機(jī)向所述主計(jì)算機(jī)指出有多少數(shù)據(jù)字節(jié)有待于從所述打印機(jī)傳輸?shù)剿鲋饔?jì)算機(jī)的步驟。
20.如權(quán)利要求19所述的方法,其特征在于所述打印機(jī)向所述主計(jì)算機(jī)指出有多少數(shù)據(jù)字節(jié)有待于從所述打印機(jī)傳輸?shù)剿鲋鳈C(jī)的所述步驟響應(yīng)升高的所述*SLCTin信號(hào)并在所述SLCT信號(hào)被降低之前發(fā)生。
全文摘要
一種在主計(jì)算機(jī)與打印機(jī)之間通過(guò)并行接口提供雙向通信能力的協(xié)議,該主計(jì)算機(jī)和打印機(jī)之間具有從主計(jì)算機(jī)到打印機(jī)傳輸信號(hào)的正向通道。該協(xié)議包括用于使正向通道轉(zhuǎn)向以便建立反向能道以允許從打印機(jī)到主計(jì)算傳輸數(shù)據(jù)約定;以及用于控制所述反向通道上從打印機(jī)到主計(jì)算機(jī)的數(shù)據(jù)傳輸?shù)募s定;以及用于使所述反向通道反轉(zhuǎn)回來(lái)以重建正向通道的約定。
文檔編號(hào)G06F3/12GK1070497SQ9211017
公開(kāi)日1993年3月31日 申請(qǐng)日期1992年8月27日 優(yōu)先權(quán)日1991年8月27日
發(fā)明者J·D·皮普金斯 申請(qǐng)人:康帕克電腦公司
網(wǎng)友詢問(wèn)留言 已有0條留言
  • 還沒(méi)有人留言評(píng)論。精彩留言會(huì)獲得點(diǎn)贊!
1
双江| 萨嘎县| 惠东县| 贵南县| 全州县| 百色市| 东安县| 东安县| 罗源县| 运城市| 安多县| 拜泉县| 三亚市| 屯留县| 玛沁县| 冷水江市| 黔东| 搜索| 万全县| 萝北县| 河间市| 惠州市| 米林县| 小金县| 沂水县| 怀仁县| 来凤县| 九台市| 镇巴县| 依兰县| 鄂温| 仙居县| 云龙县| 哈密市| 台湾省| 武定县| 郧西县| 信丰县| 屯昌县| 四川省| 新晃|