. . Nibble模式与SPP模式相似,需要软件通过设置和读取并口的控制信号线来实现协议。Nibble模式与SPP模式结合建立完整的双向通道,形成最简单的双向传输方式。从PC机到外设8-bit数据线,反向4-bit数据线,支持单向打印机接口,提供了全速率的前向传输和半速率的反向传输,速率在50KB/s 到150KB/s之
间。
2.3)Byte模式:在数据线上实现反向传输的方式
Byte模式利用数据线把8-bit数据从外设传输到主机。标准并行口的8-bit数据线只能从主机向外设单向传输,需要抑制住控制数据线的驱动器,使数据可以从打印机传到电脑。Byte模式数据传送,一次传送一个字节,与nibble模式下需要的两数据周期不同,速度和由电脑到打印机的一样,在50KB/s 到150KB/s之
间,使用新型CC-cable可在10米电缆上达到500kbps。
下表定义了Byte模式的信号:
Byte模式数据传输步骤:
1. 主机通过设置HostBusy为低表明可以接收数据 2. 外设把第一个字节(byte)数据输出到数据线 3. 外设设置PtrClk为低指示byte数据有效
4. 主机设置HostBusy为高指示接收到byte数据,而正在处理
5. 外设设置PtrClk为高应答主机
6. 重复步骤1到5来接收其他字节(byte)数据
下图描述了Byte模式的基本时序
word . .
. .
制造商首先在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模式时序进行。
虽然IBM定义了Type 2和3方式提高了并口的性能,但只有IBM计算机实现这种功能,缺乏软件来支持
这种DMA特性。相比较,EPP和ECP 是种工业标准,为更广泛的硬件和软件制造商支持。
2.4)EPP模式:Enhanced Parallel Port增强型并行端口,可实现高速双向数据传输
EPP模式由Intel、Xircom, and Zenith Data Systems设计,提供了一个高性能的并行接口,是IEEE1284标准中的一部分,可以和标准并行接口通用,有相同的寄存器映射关系,协议首先由Intel 386SL芯片组(8
2360 I/O chip)实现。 EPP模式的信号定义
EPP模式有一个数据周期和一个地址周期,提供了4种传输周期时序:
word . .
. .
1. 数据写周期时序 2. 数据读周期时序 3. 地址写周期时序 4. 地址读周期时序
数据周期时序用于在主机和外设间传输数据,地址周期时序用于分配地址、通道、命令和控制信息。 EPP 地址写周期:主机首先设置WRITE*,并把地址信号发到数据线上,设置ASTROBE*;外设取消WAIT*,指示已准备接收地址字节;主机然后取消ASTROBE* ;外设在ASTROBE* 上升沿锁存地址数据,
然后设置WAIT*,指示准备开始下一周期。
EPP 地址读周期:主机取消WRITE*,使数据线处于高阻状态,设置ASTROBE*;外设发地址字节到数据线,取消WAIT*指示地址有效;主机检测到WAIT*取消,读地址,然后取消ASTROBE;外设然后使数据
线处于高阻状态,设置WAIT*,指示准备开始下一周期。
EPP 数据写周期:主机设置WRITE*,把数据字节发到数据线,设置DSTROBE*;外设取消WAIT*,指示准备接收数据;主机然后取消DSTROBE* ;外设在DSTROBE*上升沿锁存数据,然后设置WAIT*,指
示准备开始下一周期。
word . .
. .
EPP 数据读周期:主机取消WRITE*,使数据线处于高阻状态,设置DSTROBE* ;外设把数据字节发往数据线,取消WAIT*,指示数据有效;主机检测到WAIT*取消,读数据,然后取消DSTROBE*;外设外
设然后使数据线处于高阻状态,设置WAIT*,指示准备开始下一周期。
EPP模式在3个SPP模式并口寄存器外又定义了5个寄存器, 用于把地址或数据自动发到并口数据线上,然后自动产生地址和数据的选通(strobe)信号。EPP模式的数据、状态和控制寄存器与SPP模式的配置相
同。
把数据写入Auto Address Strobe寄存器,将把数据发到并口数据线,并伴随自动产生的ASTROBE*低脉冲信号;把数据写入任一Auto Data Strobe寄存器,将把数据发到并口数据线,并伴随自动产生的DSTROBE*低脉冲信号;当一个Auto Data Strobe寄存器在读取, DSTROBE*信号受脉冲控制,返回电平值。
EPP寄存器接口:
从软件角度看,EPP模式是扩展了SPP的并口寄存器。SPP的并口包括数据Data、状态Status和控制Cont
rol 3个寄存器,地址为并口基址(base address)的偏移(offset)。
EPP寄存器定义如下:
word . .
. . 通过产生一个对“base_address+4”的 I/O 写指令,EPP控制器产生需要的数据写(Data_Write)周期的handshake信号和strobes用来传输数据。而对基址(ports 0到 2)的I/O 指令将实现标准并行口的操作,以保证与标准并口的兼容。而对\+ 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模式数据写时序的步骤:
1. 程序对PORT4 (EPP Data Port)执行I/O写周期
2. nWrite信号有效,数据发送到并口 3. 设datastrobe有效,然后nWAIT 设置为低 4. 等待外设的响应 (nWAIT变为无效) 5. 设置datastrobe无效,结束EPP周期
6. ISA 的I/O 周期结束
7. nWAIT 设置为低,指示下一个周期开始
下图是EPP数据写时序的实例,CPU信号nIOW是用来强调全部的handshake在一次I/O中完成
注意,全部数据传输发生在一次ISA 的I/O 周期中,这表明使用EPP协议,数据传输率可为500KB/s到2
MB/s,这样外设在性能上接近ISA卡。
因为使用互锁握手信号协议,数据可在很低的速率下传输。Nibble、Byte、EPP和ECP 模式都使用互锁握
手信号协议。所谓互锁握手信号,指每次控制信号的变化都需要另一边的响应。
word . .