为了提高Centronics接口的性能,也要兼容过去的标准,IEEE1284定义了5种工作模式:
ence)来实现即插即用(Plug and Play)配置,使并口更易于使用。各种模式都能够正常的使用相同的连接器和电缆连接方式,因硬件和编程方式的不同,传输速度能从50K Bits/秒到2MB/秒不等。2.1)SPP模式:即传统的Centronics并行接口,所以也称Centronics mode
ge、Select、Paper Empty、Fault),需要三个不同的寄存器来进行数据的读写操作。SPP模式是最基本的工作模式,异步、字节单向传输,数据率在50KB/s 到150KB/s之间。使用AB-cable 电缆可传6米,而使用新的CC-cable 电缆可达10米。
当打印机准备好接收数据,设BUSY为低,主机发出有效的数据到数据线ns然后发出STROBE负脉冲持续至少500ns,有效的数据在STROBE上升沿后至少要维持500 ns 。打印机接收数据并设BUSY有效以指示处理数据,当打印机完成数据接收,发出ACK脉冲至少500ns,然后清除BUSY以指示准备好接收下一个字节数据。
Centronics标准的握手信号略有不同,nStrobe为最小宽度大于1us的负脉冲,nAck为宽度大于5us的响应负脉冲,由于nAck信号的负脉冲较短,正常情况下不会查询它,而是查询Busy。
SPP模式要求的最小的建立时间、保持时间和脉冲宽度限制了其性能,考虑到软件的等待时间,IEEE1284最大的数据传输率为150 kbytes/s,而Centronics典型为10 kbytes/s,这对于点阵行式打印机已经足够了,但对于高速的激光打印机就显露出不足。
为操作并行口,SPP定义了寄存器,并映射到PC机的I/O空间。寄存器包括了以并口地址为基址的3块连续的寄存器,并口地址常见为3BCH、378H和278H,其中都包括数据、状态和控制寄存器,分别对应数据、状态和控制信号线操作,通常称为数据端口、状态端口和控制端口。打印机卡1的地址常为378H,其中数据口0378H、状态口0379H、控制口037AH;打印机卡2的地址常为278H,其中数据口0278H、状态口0279H、控制口027AH。支持新的IEEE 1284标准的并口,使用8到16个寄存器,地址为378H or 278H,即插即用(Plug and Play)兼容的的并口适配器也能重新加载。
2.2)Nibble模式:用于从打印机或外部设备得到反向数据的常用方式,
Nibble模式利用4条状态线把数据从外设传回电脑。标准的并行口提供5条外设到PC机的信号线,用于指示外设的状态,利用这些信号线-bit)数据,每次发半字节(nibble:4-bit)信息。因为nACK信号一般用来提供外设中断,所以难以把传输的nibble(半字节)信息通过状态寄存器(Status register)合成1字节,需要软件读状态信号并作相应操作来得到正确的字节信息。Nibble模式的数据率为50kbps(6米电缆),使用新型10米CC-cable电缆的数据率为150 kbps。Nibble模式的优点是具有并口的PC机都可以执行这种方式,但只能用于反向通道为低速率的场合。
2. 外设把第一个半字节(nibble)输出到状态线. 外设设置PtrClk为低指示nibble数据有效
4. 主机设置HostBusy为高指示接收到nibble数据,而正在处理
Nibble模式与SPP模式相似,需要软件通过设置和读取并口的控制信号线来实现协议。Nibble模式与SPP模式结合建立完整的双向通道,形成最简单的双向传输方式。从PC机到外设8-bit数据线-bit数据线,支持单向打印机接口,提供了全速率的前向传输和半速率的反向传输,速率在50KB/s 到150KB/s之间。
Byte模式利用数据线-bit数据从外设传输到主机。标准并行口的8-bit数据线只能从主机向外设单向传输,需要抑制住控制数据线的驱动器,使数据可以从打印机传到电脑。Byte模式数据传送,一次传送一个字节,与nibble模式下需要的两数据周期不同,速度和由电脑到打印机的一样,在50KB/s 到150KB/s之间,使用新型CC-cable可在10米电缆上达到500kbps。
2. 外设把第一个字节(byte)数据输出到数据线. 外设设置PtrClk为低指示byte数据有效
制造商首先在IBM PS/2并口上增加了对8-bit数据线的读取能力,实现Byte模式,使之成为双向口,称为扩展并口的Type 1。此外,还提供了Type 2和Type 3,使用DMA方式。在Type 2 和 3的DMA 写数据时,DMA控制器向数据寄存器写数据,而STROBE脉冲自动产生,当从外设收到ACK,发出DMA请求,下一个字节发出。外设可设为BUSY 来延迟传输。在Type 2 和 3的DMA 读数据时,ACK脉冲产生DMA请求,发起对系统存储器的传输, DMA 控制器读取数据寄存器,STROBE脉冲自动产生。Type 2 和3的 DMA传输依照SPP模式时序进行。
2.4)EPP模式:Enhanced Parallel Port增强型并行端口,可实现高速双向数据传输
数据周期时序用于在主机和外设间传输数据,地址周期时序用于分配地址、通道、命令和控制信息。
EPP 地址写周期:主机首先设置WRITE*,并把地址信号发到数据线上,设置ASTROBE*;外设取消WAIT*,指示已准备接收地址字节;主机然后取消ASTROBE* ;外设在ASTROBE* 上升沿锁存地址数据,然后设置WAIT*,指示准备开始下一周期。
EPP 数据写周期:主机设置WRITE*,把数据字节发到数据线,设置DSTROBE*;外设取消WAIT*,指示准备接收数据;主机然后取消DSTROBE* ;外设在DSTROBE*上升沿锁存数据,然后设置WAIT*,指示准备开始下一周期。
EPP 数据读周期:主机取消WRITE*,使数据线处于高阻状态,设置DSTROBE* ;外设把数据字节发往数据线,取消WAIT*,指示数据有效;主机检测到WAIT*取消,读数据,然后取消DSTROBE*;外设外设然后使数据线处于高阻状态,设置WAIT*,指示准备开始下一周期。
EPP模式在3个SPP模式并口寄存器外又定义了5个寄存器, 用于把地址或数据自动发到并口数据线上,然后自动产生地址和数据的选通(strobe)信号。EPP模式的数据、状态和控制寄存器与SPP模式的配置相同。
ta Strobe寄存器,将把数据发到并口数据线,并伴随自动产生的DSTROBE*低脉冲信号;当一个Auto Da
ta Strobe寄存器在读取, DSTROBE*信号受脉冲控制,返回电平值。
从软件角度看,EPP模式是扩展了SPP的并口寄存器。SPP的并口包括数据Data、状态Status和控制Control 3个寄存器,地址为并口基址(base address)的偏移(offset)。EPP寄存器定义如下:
通过产生一个对“base_address+4”的 I/O 写指令,EPP控制器产生需要的数据写(Data_Write)周期的handshake信号和strobes用来传输数据。而对基址(ports 0到 2)的I/O 指令将实现标准并行口的操作,以保证与标准并口的兼容。而对base_address + 3的I/O 操作,会产生地址读写周期。Ports 5到7 的作用在不同硬件中有差别,可用作实现16-bit或32-bit的软件接口,或用作配置寄存器,也可能不使用。
标准并口的数据传输需要7个软件步骤,EPP增加了其他的硬件和寄存器,通过单I/O 指令自动产生控制strobes和数据传输的handshaking信号,保证以ISA
速度传输,最大数据率为2 Mbytes/s,在其他平台上可能达到10 Mbytes/s 。EPP的微处理器的总线结构使之易于直接与外设硬件通讯。EPP模式还有进一步的块传输能力,使用REP_IO指令,依靠主机适配器的支持。
下图是EPP数据写时序的实例,CPU信号nIOW是用来强调全部的handshake在一次I/O中完成
2.5)ECP模式:Extended Capability Port 扩展功能并行接口,也可实现高速双向数据传输
ECP模式是由Microsoft and Hewlett Packard提出,是对标准并口的扩展,作为打印机和扫描仪类的外设的高级通讯模式,允许图象数据压缩、排队中的FIFO(先入先出)和高速双向通信。数据传送速度大约24MB/S。
栅图像数据(含有大量的相同数据串)时,但必须主机和外设都支持才能轻松实现。通道编址与EPP的地址有不同,是用于一种物理设备包括多种逻辑设备的场合,比如FAX/Printer/Modem一体机。
ECP模式定义前向传输为主机到外设,有2种前向传输周期,当HostAck 为高,指示进行da
1. 主机发送数据到数据线,并设置HostAck 为高来指示一个data cycle 的开始
注意:接口2侧都使用FIFO ,发出的数据都认为已被接收。在第4步,HostClk变为高,da
上图也显示出ECP和EPP协议的不同。在EPP模式,软件可以执行混合的读写操作,而不需要额外的协议;而在ECP模式,改变数据传输方向一定要协商。主机要求反向传输通道需设置nReverseRequest并等待外设的nAckReverse的响应, 然后才能够直接进行反向数据传输。另外, 如果以前为DMA传输,软件必须等待DMA完成或中断DMA(要FIFO确定准确的已传输的数据量),然后要求反向通道。
I/O方式,减弱了与ISA的关联,软件不会精确知道数据传输的状态,只关心传输是否完成。
ta的FIFO包括至少16字节,可用于前向和反向传输,可以平滑数据流和提高数据率。向Address FIFO寄存器写数据,会自动发往并口。ECP的Da
ECP模式的目的是实现并口的即插即用(plug-and-play)性能和在Windows环境下进行高性能双向传输。ECP模式允许任一方向的高速字节传输,也是半双工方式,为打印机和扫描仪设计,数据率从500KB/S到1MB/S,使用AB-cable 电缆可传6米,而使用新的CC-cable 电缆可达10米。ECP主要使用DMA而不是直接的I/O操作,目的是传输大的数据块。
一个设备可能设计为有多种工作模式,但不能同时使用,每次只能选用一种。IEEE 1284发明了协商(negotiation)方式,主机必须要判断所连接的外设的能力及使用的模式,决定出使用哪种IEEE1284模式,这种协商方式不会影响过去的设备,一个旧式设备不会响应协商的时序,但符合IEEE 1284标准的设备会响应这一时序,使主机获得设备的ID码(Device ID co
ECR寄存器用来设置当前工作模式,另外也用于软件确定安装于PC机的并口的性能。
如果要退出Nibble、Byte或ECP模式,设置SelectIn为低,而退出EPP模式主机要设置INIT信号有效,然后外设将恢复到SPP模式。