新聞中心

EEPW首頁(yè) > 嵌入式系統(tǒng) > 設(shè)計(jì)應(yīng)用 > 計(jì)算機(jī)的并行接口(2)

計(jì)算機(jī)的并行接口(2)

作者: 時(shí)間:2016-12-12 來(lái)源:網(wǎng)絡(luò) 收藏
2.IEEE1284定義的5種工作模式

為了提高Centronics接口的性能,也要兼容過(guò)去的標(biāo)準(zhǔn),IEEE1284定義了5種工作模式:

本文引用地址:http://m.butianyuan.cn/article/201612/328723.htm

SPP模式:Standard Parallel Port標(biāo)準(zhǔn)并行接口,也稱(chēng)為Compatibility mode兼容模式, Nibble模式:從PC機(jī)到外設(shè)8-bit數(shù)據(jù)線(xiàn),反向4-bit數(shù)據(jù)線(xiàn)

Byte模式:8-bit雙向傳輸,速率在50KB/s 到150KB/s之間

EPP模式:Enhanced Parallel Port增強(qiáng)并行接口,允許任一方向的高速字節(jié)傳輸

ECP模式:Extended Capabilities Port擴(kuò)展功能并行接口,允許PC機(jī)發(fā)送數(shù)據(jù)塊

符合IEEE 1284標(biāo)準(zhǔn)的并口,使用設(shè)備ID(Device identification sequence)來(lái)實(shí)現(xiàn)即插即用(Plug and Play)配置,使并口更易于使用。各種模式都可以使用相同的連接器和電纜連接方式,因硬件和編程方式的不同,傳輸速度可以從50K Bits/秒到2MB/秒不等。

2.1)SPP模式:即傳統(tǒng)的Centronics并行接口,所以也稱(chēng)Centronics mode

提供基本的信號(hào),包括8-bit數(shù)據(jù)線(xiàn),4條控制線(xiàn)(Strobe、Initialize Printer、Select Printer、Auto Feed line)和5條狀態(tài)線(xiàn)(Busy、Acknowledge、Select、Paper Empty、Fault),需要三個(gè)不同的寄存器來(lái)進(jìn)行數(shù)據(jù)的讀寫(xiě)操作。

SPP模式是最基本的工作模式,異步、字節(jié)單向傳輸,數(shù)據(jù)率在50KB/s 到150KB/s之間。使用AB-cable 電纜可傳6米,而使用新的CC-cable 電纜可達(dá)10米。

基本的SPP 模式的時(shí)序如圖:

當(dāng)打印機(jī)準(zhǔn)備好接收數(shù)據(jù),設(shè)BUSY為低,主機(jī)發(fā)出有效的數(shù)據(jù)到數(shù)據(jù)線(xiàn),等待至少500ns然后發(fā)出STROBE負(fù)脈沖持續(xù)至少500ns,有效的數(shù)據(jù)在STROBE上升沿后至少要維持500 ns 。打印機(jī)接收數(shù)據(jù)并設(shè)BUSY有效以指示處理數(shù)據(jù),當(dāng)打印機(jī)完成數(shù)據(jù)接收,發(fā)出ACK脈沖至少500ns,然后清除BUSY以指示準(zhǔn)備好接收下一個(gè)字節(jié)數(shù)據(jù)。

Centronics標(biāo)準(zhǔn)的握手信號(hào)略有不同,nStrobe為最小寬度大于1us的負(fù)脈沖,nAck為寬度大于5us的響應(yīng)負(fù)脈沖,由于nAck信號(hào)的負(fù)脈沖較短,一般不會(huì)查詢(xún)它,而是查詢(xún)Busy。

主機(jī)軟件通過(guò)4步來(lái)完成1字節(jié)數(shù)據(jù)通過(guò)并口的傳輸:

1. 把有效數(shù)據(jù)寫(xiě)入數(shù)據(jù)寄存器

2. 檢查BUSY狀態(tài)線(xiàn),等待其無(wú)效(0)

3. 寫(xiě)控制寄存器,使STROBE有效(0)

4. 寫(xiě)控制寄存器,使STROBE失效(1)

SPP模式要求的最小的建立時(shí)間、保持時(shí)間和脈沖寬度限制了其性能,考慮到軟件的等待時(shí)間,IEEE1284最大的數(shù)據(jù)傳輸率為150 kbytes/s,而Centronics典型為10 kbytes/s,這對(duì)于點(diǎn)陣行式打印機(jī)已經(jīng)足夠了,但對(duì)于高速的激光打印機(jī)就顯露出不足。

SPP模式下的信號(hào)定義:

為操作并行口,SPP定義了寄存器,并映射到PC機(jī)的I/O空間。寄存器包括了以并口地址為基址的3塊連續(xù)的寄存器,并口地址常見(jiàn)為3BCH、378H和278H,其中都包括數(shù)據(jù)、狀態(tài)和控制寄存器,分別對(duì)應(yīng)數(shù)據(jù)、狀態(tài)和控制信號(hào)線(xiàn)操作,通常稱(chēng)為數(shù)據(jù)端口、狀態(tài)端口和控制端口。打印機(jī)卡1的地址常為378H,其中數(shù)據(jù)口0378H、狀態(tài)口0379H、控制口037AH;打印機(jī)卡2的地址常為278H,其中數(shù)據(jù)口0278H、狀態(tài)口0279H、控制口027AH。支持新的IEEE 1284標(biāo)準(zhǔn)的并口,使用8到16個(gè)寄存器,地址為378H or 278H,即插即用(Plug and Play)兼容的的并口適配器也可以重新加載。

并口的寄存器定義:

數(shù)據(jù)寄存器:所占用的地址是并行接口的基地址,對(duì)應(yīng)于于接口的2-9針

狀態(tài)寄存器 :占用的地址是基地址加1,對(duì)應(yīng)于接口的10,11,12,13,15針,是只讀寄存器,其中包含一個(gè)IRQ中斷位(由Ack相反后形成),當(dāng)有中斷發(fā)生這個(gè)數(shù)據(jù)位為“0”。 Bit7(引腳11)在輸入+5V電平時(shí),數(shù)據(jù)值為”0”,有反轉(zhuǎn)的特性。

控制寄存器 :占用的地址是基地址加2,對(duì)應(yīng)于接口的1,14,16,17針,其中Bit0,Bit1,Bit3有反轉(zhuǎn)的特性。Bit4為IRQ應(yīng)用,當(dāng)向Bit4寫(xiě)入“1”時(shí),將使ACK(引腳10)信號(hào)反相后成為中斷請(qǐng)求IRQ信號(hào),通常為IRQ5或IRQ7。

并口使用的3BCH、378H和278H三個(gè)基地址幾乎都支持SPP、ECP和EPP模式(3BCH這個(gè)地址在早期的并口打印機(jī)適配器上不支持EPP和ECP模式)。三個(gè)不同基地址的地址段如下:

一些集成的1284 I/O控制器使用FIFO buffer傳輸數(shù)據(jù)稱(chēng)為Fast Centronics或Parallel Port FIFO Mode,也使用SPP協(xié)議,但用硬件產(chǎn)生strobe信號(hào)來(lái)實(shí)現(xiàn)控制信號(hào)握手,使數(shù)據(jù)率能超過(guò)500KB/s。然而,這不是IEEE 1284定義的標(biāo)準(zhǔn)模式。

2.2)Nibble模式:用于從打印機(jī)或外部設(shè)備得到反向數(shù)據(jù)的常用方式,

Nibble模式利用4條狀態(tài)線(xiàn)把數(shù)據(jù)從外設(shè)傳回電腦。標(biāo)準(zhǔn)的并行口提供5條外設(shè)到PC機(jī)的信號(hào)線(xiàn),用于指示外設(shè)的狀態(tài),利用這些信號(hào)線(xiàn),外設(shè)可以分2次發(fā)送1字節(jié)(8-bit)數(shù)據(jù),每次發(fā)半字節(jié)(nibble:4-bit)信息。因?yàn)閚ACK信號(hào)一般用來(lái)提供外設(shè)中斷,所以難以把傳輸?shù)膎ibble(半字節(jié))信息通過(guò)狀態(tài)寄存器(Status register)合成1字節(jié),需要軟件讀狀態(tài)信號(hào)并作相應(yīng)操作來(lái)得到正確的字節(jié)信息。Nibble模式的數(shù)據(jù)率為50kbps(6米電纜),使用新型10米CC-cable電纜的數(shù)據(jù)率為150 kbps。Nibble模式的優(yōu)勢(shì)在于具有并口的PC機(jī)都可以執(zhí)行這種方式,但只能用于反向通道為低速率的場(chǎng)合。

下表定義了Nibble模式的信號(hào):

下圖描述了Nibble模式的基本時(shí)序

Nibble模式數(shù)據(jù)傳輸步驟:

1. 主機(jī)通過(guò)設(shè)置HostBusy為低表明可以接收數(shù)據(jù)

2. 外設(shè)把第一個(gè)半字節(jié)(nibble)輸出到狀態(tài)線(xiàn)

3. 外設(shè)設(shè)置PtrClk為低指示nibble數(shù)據(jù)有效

4. 主機(jī)設(shè)置HostBusy為高指示接收到nibble數(shù)據(jù),而正在處理

5. 外設(shè)設(shè)置PtrClk為高應(yīng)答主機(jī)

6. 重復(fù)步驟1到5來(lái)接收第二個(gè)半字節(jié)(nibble)

Nibble模式與SPP模式相似,需要軟件通過(guò)設(shè)置和讀取并口的控制信號(hào)線(xiàn)來(lái)實(shí)現(xiàn)協(xié)議。Nibble模式與SPP模式結(jié)合建立完整的雙向通道,形成最簡(jiǎn)單的雙向傳輸方式。從PC機(jī)到外設(shè)8-bit數(shù)據(jù)線(xiàn),反向4-bit數(shù)據(jù)線(xiàn),支持單向打印機(jī)接口,提供了全速率的前向傳輸和半速率的反向傳輸,速率在50KB/s 到150KB/s之間。

2.3)Byte模式:在數(shù)據(jù)線(xiàn)上實(shí)現(xiàn)反向傳輸?shù)姆绞?/p>

Byte模式利用數(shù)據(jù)線(xiàn)把8-bit數(shù)據(jù)從外設(shè)傳輸?shù)街鳈C(jī)。標(biāo)準(zhǔn)并行口的8-bit數(shù)據(jù)線(xiàn)只能從主機(jī)向外設(shè)單向傳輸,需要抑制住控制數(shù)據(jù)線(xiàn)的驅(qū)動(dòng)器,使數(shù)據(jù)可以從打印機(jī)傳到電腦。Byte模式數(shù)據(jù)傳送,一次傳送一個(gè)字節(jié),與nibble模式下需要的兩數(shù)據(jù)周期不同,速度和由電腦到打印機(jī)的一樣,在50KB/s 到150KB/s之間,使用新型CC-cable可在10米電纜上達(dá)到500kbps。

下表定義了Byte模式的信號(hào):

Byte模式數(shù)據(jù)傳輸步驟:

1. 主機(jī)通過(guò)設(shè)置HostBusy為低表明可以接收數(shù)據(jù)

2. 外設(shè)把第一個(gè)字節(jié)(byte)數(shù)據(jù)輸出到數(shù)據(jù)線(xiàn)

3. 外設(shè)設(shè)置PtrClk為低指示byte數(shù)據(jù)有效

4. 主機(jī)設(shè)置HostBusy為高指示接收到byte數(shù)據(jù),而正在處理

5. 外設(shè)設(shè)置PtrClk為高應(yīng)答主機(jī)

6. 重復(fù)步驟1到5來(lái)接收其他字節(jié)(byte)數(shù)據(jù)

下圖描述了Byte模式的基本時(shí)序

制造商首先在IBM PS/2并口上增加了對(duì)8-bit數(shù)據(jù)線(xiàn)的讀取能力,實(shí)現(xiàn)Byte模式,使之成為雙向口,稱(chēng)為擴(kuò)展并口的Type 1。此外,還提供了Type 2和Type 3,使用DMA方式。在Type 2 和 3的DMA 寫(xiě)數(shù)據(jù)時(shí),DMA控制器向數(shù)據(jù)寄存器寫(xiě)數(shù)據(jù),而STROBE脈沖自動(dòng)產(chǎn)生,當(dāng)從外設(shè)收到ACK,發(fā)出DMA請(qǐng)求,下一個(gè)字節(jié)發(fā)出。外設(shè)可以設(shè)置BUSY 來(lái)延遲傳輸。在Type 2 和 3的DMA 讀數(shù)據(jù)時(shí),ACK脈沖產(chǎn)生DMA請(qǐng)求,發(fā)起對(duì)系統(tǒng)存儲(chǔ)器的傳輸, DMA 控制器讀取數(shù)據(jù)寄存器,STROBE脈沖自動(dòng)產(chǎn)生。Type 2 和3的 DMA傳輸依照SPP模式時(shí)序進(jìn)行。

雖然IBM定義了Type 2和3方式提高了并口的性能,但只有IBM計(jì)算機(jī)實(shí)現(xiàn)這種功能,缺乏軟件來(lái)支持這種DMA特性。相比較,EPP和ECP 是種工業(yè)標(biāo)準(zhǔn),為更廣泛的硬件和軟件制造商支持。

2.4)EPP模式:Enhanced Parallel Port增強(qiáng)型并行端口,可實(shí)現(xiàn)高速雙向數(shù)據(jù)傳輸

EPP模式由Intel、Xircom, and Zenith Data Systems設(shè)計(jì),提供了一個(gè)高性能的并行接口,是IEEE1284標(biāo)準(zhǔn)中的一部分,可以和標(biāo)準(zhǔn)并行接口通用,有相同的寄存器映射關(guān)系,協(xié)議首先由Intel 386SL芯片組(82360 I/O chip)實(shí)現(xiàn)。

EPP模式的信號(hào)定義

EPP模式有一個(gè)數(shù)據(jù)周期和一個(gè)地址周期,提供了4種傳輸周期時(shí)序:

1. 數(shù)據(jù)寫(xiě)周期時(shí)序

2. 數(shù)據(jù)讀周期時(shí)序

3. 地址寫(xiě)周期時(shí)序

4. 地址讀周期時(shí)序

數(shù)據(jù)周期時(shí)序用于在主機(jī)和外設(shè)間傳輸數(shù)據(jù),地址周期時(shí)序用于分配地址、通道、命令和控制信息。

EPP 地址寫(xiě)周期:主機(jī)首先設(shè)置WRITE*,并把地址信號(hào)發(fā)到數(shù)據(jù)線(xiàn)上,設(shè)置ASTROBE*;外設(shè)取消WAIT*,指示已準(zhǔn)備接收地址字節(jié);主機(jī)然后取消ASTROBE* ;外設(shè)在A(yíng)STROBE* 上升沿鎖存地址數(shù)據(jù),然后設(shè)置WAIT*,指示準(zhǔn)備開(kāi)始下一周期。

EPP 地址讀周期:主機(jī)取消WRITE*,使數(shù)據(jù)線(xiàn)處于高阻狀態(tài),設(shè)置ASTROBE*;外設(shè)發(fā)地址字節(jié)到數(shù)據(jù)線(xiàn),取消WAIT*指示地址有效;主機(jī)檢測(cè)到WAIT*取消,讀地址,然后取消ASTROBE;外設(shè)然后使數(shù)據(jù)線(xiàn)處于高阻狀態(tài),設(shè)置WAIT*,指示準(zhǔn)備開(kāi)始下一周期。

EPP 數(shù)據(jù)寫(xiě)周期:主機(jī)設(shè)置WRITE*,把數(shù)據(jù)字節(jié)發(fā)到數(shù)據(jù)線(xiàn),設(shè)置DSTROBE*;外設(shè)取消WAIT*,指示準(zhǔn)備接收數(shù)據(jù);主機(jī)然后取消DSTROBE* ;外設(shè)在DSTROBE*上升沿鎖存數(shù)據(jù),然后設(shè)置WAIT*,指示準(zhǔn)備開(kāi)始下一周期。

EPP 數(shù)據(jù)讀周期:主機(jī)取消WRITE*,使數(shù)據(jù)線(xiàn)處于高阻狀態(tài),設(shè)置DSTROBE* ;外設(shè)把數(shù)據(jù)字節(jié)發(fā)往數(shù)據(jù)線(xiàn),取消WAIT*,指示數(shù)據(jù)有效;主機(jī)檢測(cè)到WAIT*取消,讀數(shù)據(jù),然后取消DSTROBE*;外設(shè)外設(shè)然后使數(shù)據(jù)線(xiàn)處于高阻狀態(tài),設(shè)置WAIT*,指示準(zhǔn)備開(kāi)始下一周期。

EPP模式在3個(gè)SPP模式并口寄存器外又定義了5個(gè)寄存器, 用于把地址或數(shù)據(jù)自動(dòng)發(fā)到并口數(shù)據(jù)線(xiàn)上,然后自動(dòng)產(chǎn)生地址和數(shù)據(jù)的選通(strobe)信號(hào)。EPP模式的數(shù)據(jù)、狀態(tài)和控制寄存器與SPP模式的配置相同。

把數(shù)據(jù)寫(xiě)入Auto Address Strobe寄存器,將把數(shù)據(jù)發(fā)到并口數(shù)據(jù)線(xiàn),并伴隨自動(dòng)產(chǎn)生的ASTROBE*低脈沖信號(hào);把數(shù)據(jù)寫(xiě)入任一Auto Data Strobe寄存器,將把數(shù)據(jù)發(fā)到并口數(shù)據(jù)線(xiàn),并伴隨自動(dòng)產(chǎn)生的DSTROBE*低脈沖信號(hào);當(dāng)一個(gè)Auto Data Strobe寄存器在讀取, DSTROBE*信號(hào)受脈沖控制,返回電平值。

EPP寄存器接口:

從軟件角度看,EPP模式是擴(kuò)展了SPP的并口寄存器。SPP的并口包括數(shù)據(jù)Data、狀態(tài)Status和控制Control 3個(gè)寄存器,地址為并口基址(base address)的偏移(offset)。

EPP寄存器定義如下:

通過(guò)產(chǎn)生一個(gè)對(duì)“base_address+4”的 I/O 寫(xiě)指令,EPP控制器產(chǎn)生需要的數(shù)據(jù)寫(xiě)(Data_Write)周期的handshake信號(hào)和strobes用來(lái)傳輸數(shù)據(jù)。而對(duì)基址(ports 0到 2)的I/O 指令將實(shí)現(xiàn)標(biāo)準(zhǔn)并行口的操作,以保證與標(biāo)準(zhǔn)并口的兼容。而對(duì)"base_address + 3"的I/O 操作,會(huì)產(chǎn)生地址讀寫(xiě)周期。Ports 5到7 的作用在不同硬件中有差別,可用作實(shí)現(xiàn)16-bit或32-bit的軟件接口,或用作配置寄存器,也可能不使用。

標(biāo)準(zhǔn)并口的數(shù)據(jù)傳輸需要7個(gè)軟件步驟,EPP增加了其他的硬件和寄存器,通過(guò)單I/O 指令自動(dòng)產(chǎn)生控制strobes和數(shù)據(jù)傳輸?shù)膆andshaking信號(hào),保證以ISA 總線(xiàn)速度傳輸,最大數(shù)據(jù)率為2 Mbytes/s,在其他平臺(tái)上可能達(dá)到10 Mbytes/s 。EPP的微處理器的總線(xiàn)結(jié)構(gòu)使之易于直接與外設(shè)硬件通訊。EPP模式還有進(jìn)一步的塊傳輸能力,使用REP_IO指令,依靠主機(jī)適配器的支持。

EPP模式數(shù)據(jù)寫(xiě)時(shí)序的步驟:

1. 程序?qū)ORT4 (EPP Data Port)執(zhí)行I/O寫(xiě)周期

2. nWrite信號(hào)有效,數(shù)據(jù)發(fā)送到并口

3. 設(shè)datastrobe有效,然后nWAIT 設(shè)置為低

4. 等待外設(shè)的響應(yīng) (nWAIT變?yōu)闊o(wú)效)

5. 設(shè)置datastrobe無(wú)效,結(jié)束EPP周期

6. ISA 的I/O 周期結(jié)束

7. nWAIT 設(shè)置為低,指示下一個(gè)周期開(kāi)始

下圖是EPP數(shù)據(jù)寫(xiě)時(shí)序的實(shí)例,CPU信號(hào)nIOW是用來(lái)強(qiáng)調(diào)全部的handshake在一次I/O中完成

注意,全部數(shù)據(jù)傳輸發(fā)生在一次ISA 的I/O 周期中,這表明使用EPP協(xié)議,數(shù)據(jù)傳輸率可為500KB/s到2MB/s,這樣外設(shè)在性能上接近ISA卡。

因?yàn)槭褂没ユi握手信號(hào)協(xié)議,數(shù)據(jù)可在很低的速率下傳輸。Nibble、Byte、EPP和ECP 模式都使用互鎖握手信號(hào)協(xié)議。所謂互鎖握手信號(hào),指每次控制信號(hào)的變化都需要另一邊的響應(yīng)。

EPP模式允許任一方向的高速字節(jié)傳輸,但不是同時(shí),是半雙工方式,為光盤(pán)機(jī)、磁帶機(jī)、硬盤(pán)機(jī)和網(wǎng)絡(luò)適配器設(shè)計(jì),數(shù)據(jù)率從500KB/S到2MB/S,使用AB-cable 電纜可傳6米,而使用新的CC-cable 電纜可達(dá)10米。

2.5)ECP模式:Extended Capability Port 擴(kuò)展功能并行接口,也可實(shí)現(xiàn)高速雙向數(shù)據(jù)傳輸

ECP模式是由Microsoft and Hewlett Packard提出,是對(duì)標(biāo)準(zhǔn)并口的擴(kuò)展,作為打印機(jī)和掃描儀類(lèi)的外設(shè)的高級(jí)通訊模式,允許圖象數(shù)據(jù)壓縮、排隊(duì)中的FIFO(先入先出)和高速雙向通信。數(shù)據(jù)傳送速度大約2—4MB/S。

ECP協(xié)議重新定義了SPP模式的信號(hào),如下表:

ECP模式提供了2種數(shù)據(jù)傳輸周期時(shí)序,可用于2個(gè)方向:

1. 數(shù)據(jù)周期data cycle

2. 命令周期command cycle

命令周期又分為2種類(lèi)型,RLE(Run-Length Count)和通道編址(Channel address)。

RLE方式實(shí)現(xiàn)數(shù)據(jù)的實(shí)時(shí)壓縮,壓縮率可達(dá)64:1,特別用于打印機(jī)和掃描儀傳輸大量光圖像數(shù)據(jù)(含有大量的相同數(shù)據(jù)串)時(shí),但必須主機(jī)和外設(shè)都支持才可以實(shí)現(xiàn)。通道編址與EPP的地址有不同,是用于一種物理設(shè)備包括多種邏輯設(shè)備的場(chǎng)合,比如FAX/Printer/Modem一體機(jī)。

ECP模式定義前向傳輸為主機(jī)到外設(shè),有2種前向傳輸周期,當(dāng)HostAck 為高,指示進(jìn)行data周期;當(dāng)HostAck為低,command 周期進(jìn)行,數(shù)據(jù)描述用RLE count 或 Channel address,數(shù)據(jù)字節(jié)的Bit 8用來(lái)指示RLE或是Channel address,如果bit 8為0,則bit 1-7描述Run Length Count (0-127),如果bit 8為1,則bit 1-7描述Channel address (0-127),下圖描述了一個(gè)data周期和一個(gè)command周期的時(shí)序。

ECP模式的前向傳輸時(shí)序:

1. 主機(jī)發(fā)送數(shù)據(jù)到數(shù)據(jù)線(xiàn),并設(shè)置HostAck 為高來(lái)指示一個(gè)data cycle 的開(kāi)始

2. 主機(jī)設(shè)置HostClk為低,指示數(shù)據(jù)有效

3. 外設(shè)設(shè)置PeriphAck 為高響應(yīng)主機(jī)

4. 主機(jī)設(shè)置HostClk為高,這是邊緣觸發(fā)信號(hào),用于使數(shù)據(jù)存入外設(shè)

5. 外設(shè)設(shè)置PeriphAck為低,指示準(zhǔn)備好接收下一字節(jié)

6. 循環(huán)重復(fù),但這次為command cycle,因?yàn)镠ostAck為低

注意:接口2側(cè)都使用FIFO ,發(fā)出的數(shù)據(jù)都認(rèn)為已被接收。在第4步,HostClk變?yōu)楦撸琩ata 被觸發(fā)進(jìn)入外設(shè),數(shù)據(jù)指針計(jì)數(shù)器更新。在有些情況下這有可能造成傳輸數(shù)據(jù)丟失。

ECP模式定義反向傳輸為從外設(shè)傳輸?shù)街鳈C(jī),反向傳輸時(shí),當(dāng)并口線(xiàn)上數(shù)據(jù)有效,外設(shè)設(shè)置PeriphClk 為低,主機(jī)在接收數(shù)據(jù)后設(shè)置HostAck 為低。下圖描述了反向通道的command周期緊隨data周期的時(shí)序:

上圖也顯示出ECP和EPP協(xié)議的不同。在EPP模式,軟件可以執(zhí)行混合的讀寫(xiě)操作,而不需要額外的協(xié)議;而在ECP模式,改變數(shù)據(jù)傳輸方向必須協(xié)商。主機(jī)要求反向傳輸通道需設(shè)置nReverseRequest并等待外設(shè)的nAckReverse的響應(yīng), 然后才可以進(jìn)行反向數(shù)據(jù)傳輸。另外, 如果以前為DMA傳輸,軟件必須等待DMA完成或中斷DMA(要FIFO確定準(zhǔn)確的已傳輸?shù)臄?shù)據(jù)量),然后要求反向通道。

ECP模式的反向Data和Command周期

1. 主機(jī)設(shè)置nReverseRequest 為低,要求反向傳輸通道

2. 外設(shè)設(shè)置nAckReverse 為低,響應(yīng)主機(jī)

3. 外設(shè)發(fā)送數(shù)據(jù)到數(shù)據(jù)線(xiàn),并設(shè)置PeriphAck 為高指示data 循環(huán)

4. 外設(shè)設(shè)置PeriphClk為低指示數(shù)據(jù)有效

5. 主機(jī)設(shè)置HostAck 為高確認(rèn)

6. 外設(shè)設(shè)置PeriphClk為高,這是邊沿觸發(fā)信號(hào),用于使數(shù)據(jù)存入主機(jī)

7. 主機(jī)設(shè)置HostAck為低,指示準(zhǔn)備好接收下一個(gè)字節(jié)

8. 循環(huán)重復(fù),但這次是command周期,因?yàn)镻eriphAck為低

ECP FIFO的使用,無(wú)論DMA方式或可編程I/O方式,減弱了與ISA的關(guān)聯(lián),軟件不會(huì)精確知道數(shù)據(jù)傳輸?shù)臓顟B(tài),只關(guān)心傳輸是否完成。

在Microsoft 的規(guī)格書(shū)"The IEEE 1284 Extended Capabilities Port Protocol and ISA Interface Standard"中,定義了基于ISA的ECP模式的通用寄存器和適配器的工作模式。ECP寄存器利用了定義的6個(gè)寄存器,只需要3個(gè)I/O口操作,注意寄存器的定義與工作模式有關(guān)。

ECP寄存器描述:

ECP模式在3個(gè)SPP模式并口寄存器外又定義了6個(gè)寄存器, 用于把地址或數(shù)據(jù)自動(dòng)發(fā)到并口數(shù)據(jù)線(xiàn)上,然后自動(dòng)產(chǎn)生地址和數(shù)據(jù)的選通(strobe)信號(hào)。

ECP的Address和Data的FIFO包括至少16字節(jié),可用于前向和反向傳輸,可以平滑數(shù)據(jù)流和提高數(shù)據(jù)率。向Address FIFO寄存器寫(xiě)數(shù)據(jù),會(huì)自動(dòng)發(fā)往并口。ECP的Data FIFO寄存器用于主機(jī)和外設(shè)間的數(shù)據(jù)傳輸。

ECP模式并口寄存器配置圖:

ECP模式的目的是實(shí)現(xiàn)并口的即插即用(plug-and-play)性能和在Windows環(huán)境下進(jìn)行高性能雙向傳輸。ECP模式允許任一方向的高速字節(jié)傳輸,也是半雙工方式,為打印機(jī)和掃描儀設(shè)計(jì),數(shù)據(jù)率從500KB/S到1MB/S,使用AB-cable 電纜可傳6米,而使用新的CC-cable 電纜可達(dá)10米。ECP主要使用DMA而不是直接的I/O操作,目的是傳輸大的數(shù)據(jù)塊。

2.6)工作模式選擇過(guò)程(Negotiation):

一個(gè)設(shè)備可能設(shè)計(jì)為有多種工作模式,但不能同時(shí)使用,每次只能選用一種。IEEE 1284發(fā)明了協(xié)商(negotiation)方式,主機(jī)必須要判斷所連接的外設(shè)的能力以及使用的模式,決定出使用哪種IEEE1284模式,這種協(xié)商方式不會(huì)影響過(guò)去的設(shè)備,一個(gè)舊式設(shè)備不會(huì)響應(yīng)協(xié)商的時(shí)序,但符合IEEE 1284標(biāo)準(zhǔn)的設(shè)備會(huì)響應(yīng)這一時(shí)序,使主機(jī)獲得設(shè)備的ID碼(Device ID code) ,并通過(guò)對(duì)ECR寄存器的操作來(lái)選擇一種較高的工作模式。

主機(jī)用Device ID序列來(lái)識(shí)別并口設(shè)備。Device ID是定義了外設(shè)特性和性能的ASCII字符串。因?yàn)闆](méi)有一個(gè)授權(quán)中心來(lái)分派設(shè)備和制造商編碼,在即插即用(Plug and Play)系統(tǒng)中,主機(jī)必須能夠測(cè)定和識(shí)別加入的設(shè)備,并自動(dòng)安裝需要的設(shè)備驅(qū)動(dòng)程序。

使用IEEE 1284的所有設(shè)備,上電時(shí)都為SPP模式。主機(jī)執(zhí)行IEEE 1284工作模式選擇的過(guò)程如下:

1. 把IEEE 1284的8-bit擴(kuò)展碼(extensibility code )發(fā)到數(shù)據(jù)線(xiàn)

2. 設(shè)置SelectIn信號(hào)線(xiàn)為高,并設(shè)置AUTOFD為低

3. 外設(shè)然后設(shè)PError為高、ACK為低、FAULT為高、Select為高表示為為IEEE1284標(biāo)準(zhǔn)設(shè)備(如果外設(shè)不設(shè)置這些信號(hào),主機(jī)認(rèn)為外設(shè)不是IEEE1284設(shè)備),然后做以下操作。

4. 使STROBE為低

5.使STROBE為高、AUTOFD為低

6. 如果extensibility code與提供的模式匹配,外設(shè)使PError為低、FAULT為低、Select為高

7. 外設(shè)使ACK為高,指示狀態(tài)線(xiàn)可用

IEEE1284 擴(kuò)展碼:Extensibility Request Bytes

ECR寄存器用來(lái)設(shè)置當(dāng)前工作模式,另外也用于軟件確定安裝于PC機(jī)的并口的性能。

ECR寄存器的模式:

如果要退出Nibble、Byte或ECP模式,設(shè)置SelectIn為低,而退出EPP模式主機(jī)要設(shè)置INIT信號(hào)有效,然后外設(shè)將恢復(fù)到SPP模式。

如果一個(gè)并口既支持SPP模式,也可實(shí)現(xiàn)其他雙向模式,那么其前3個(gè)寄存器與標(biāo)準(zhǔn)并行口的寄存器完全一致,以便兼容過(guò)去的標(biāo)準(zhǔn)。

2.7)不同模式下25PIN D-sub連接器信號(hào)的不同定義:



關(guān)鍵詞: 計(jì)算機(jī)并行接

評(píng)論


技術(shù)專(zhuān)區(qū)

關(guān)閉