epp mode.htm
来自「并口的接口规范」· HTM 代码 · 共 471 行 · 第 1/2 页
HTM
471 行
peripheral device. This "speed adaptive" property is transparent to both
the host and peripheral. All 1284 transfer modes are implemented with
interlocking handshakes. </FONT><FONT face="Arial, Helvetica, sans-serif"
color=#000000></FONT></P>
<P align=left><FONT face="Arial, Helvetica, sans-serif" color=#000000
size=1>Interlocking refers to the criteria that each control signal
transition is acknowledged by the opposite side of the interface. In the
above diagram, nDataStrobe can be asserted because nWAIT is low, nWAIT
deasserts in response to nDataStrobe be asserted, nDataStrobe deasserts in
response to nWAIT being deasserted, and finally nWAIT asserts in response
to nDataStrobe being deasserted. In this way the peripheral can control
the setup time required for its operation. This is done in the following
manner: the setup time is the time from the assertion of nDataStrobe to
the deassertion of nWAIT, the peripherals controls this time. Interlocking
also has the advantage of making the transfer cycle independent of the
cable length. The Nibble, Byte, EPP and ECP modes all have interlocked
protocols. </FONT></P>
<P align=left><FONT face="Arial, Helvetica, sans-serif" color=#000000
size=1>As previously mentioned, the pre-1284 EPP devices deviated from the
1284 protocol. At the start of the cycle, the nDataStrobe or nAddrStrobe
would assert regardless of the state of the nWAIT signal. This means that
the peripheral could not hold off the start of a cycle by having nWAIT
deasserted. This is sometimes referred to as EPP 1.7, in reference to a
Xircom proposal version 1.7. This is the version that Intel implemented in
the original 82360 I/O controller. A 1284 EPP compatible peripheral will
work properly with an EPP 1.7 version host adapter, but an EPP 1.7
peripheral may not operate properly with a 1284 compliant host. Figure 2
is an example of an Address_Read cycle. </FONT></P>
<P align=left><FONT face="Arial, Helvetica, sans-serif" color=#000000><IMG
height=176 src="EPP Mode.files/eppfig2.gif" width=436><BR></FONT></P>
<CENTER><FONT face="Arial, Helvetica, sans-serif" color=#000000
size=1>Figure 2 -- EPP Address_Read Cycle</FONT> </CENTER>
<H3 align=left><FONT face="Arial, Helvetica, sans-serif" color=#000000
size=2>EPP Register Interface</FONT></H3>
<P align=left><FONT face="Arial, Helvetica, sans-serif" color=#000000
size=1>The simplest software view of EPP is that of an extension to the
register definitions for the standard parallel port. As shown earlier, the
SPP consists of three registers, offset from the port's base address: Data
port, Status port, and Control port. The most common EPP implementations
expand this to use ports not defined by the SPP. See table 2. </FONT></P>
<H4 align=left><FONT face="Arial, Helvetica, sans-serif" color=#000000
size=2>Table 2 EPP Register Definitions</FONT></H4>
<DIV align=left>
<TABLE width=520 border=1>
<TBODY>
<TR>
<TH><FONT face="Arial, Helvetica, sans-serif" size=2>Port
Name</FONT></TH>
<TH><FONT face="Arial, Helvetica, sans-serif"
size=2>Offset</FONT></TH>
<TH><FONT face="Arial, Helvetica, sans-serif" size=2>Mode</FONT></TH>
<TH><FONT face="Arial, Helvetica, sans-serif"
size=2>Read/Write</FONT></TH>
<TH><FONT face="Arial, Helvetica, sans-serif"
size=2>Description</FONT></TH></TR>
<TR>
<TD><FONT face="Arial, Helvetica, sans-serif" size=1>SPP Data
Port</FONT></TD>
<TD align=middle><FONT face="Arial, Helvetica, sans-serif"
size=1>+0</FONT></TD>
<TD align=middle><FONT face="Arial, Helvetica, sans-serif"
size=1>SPP/EPP</FONT></TD>
<TD align=middle><FONT face="Arial, Helvetica, sans-serif"
size=1>W</FONT></TD>
<TD><FONT face="Arial, Helvetica, sans-serif" size=1>Standard SPP
data port. No autostrobing.</FONT></TD></TR>
<TR>
<TD><FONT face="Arial, Helvetica, sans-serif" size=1>SPP Status
Port</FONT></TD>
<TD align=middle><FONT face="Arial, Helvetica, sans-serif"
size=1>+1</FONT></TD>
<TD align=middle><FONT face="Arial, Helvetica, sans-serif"
size=1>SPP/EPP</FONT></TD>
<TD align=middle><FONT face="Arial, Helvetica, sans-serif"
size=1>R</FONT></TD>
<TD><FONT face="Arial, Helvetica, sans-serif" size=1>Reads the input
status lines on the interface.</FONT></TD></TR>
<TR>
<TD><FONT face="Arial, Helvetica, sans-serif" size=1>SPP Control
Port</FONT></TD>
<TD align=middle><FONT face="Arial, Helvetica, sans-serif"
size=1>+2</FONT></TD>
<TD align=middle><FONT face="Arial, Helvetica, sans-serif"
size=1>SPP/EPP</FONT></TD>
<TD align=middle><FONT face="Arial, Helvetica, sans-serif"
size=1>W</FONT></TD>
<TD><FONT face="Arial, Helvetica, sans-serif" size=1>Sets the state
of the output control lines.</FONT></TD></TR>
<TR>
<TD><FONT face="Arial, Helvetica, sans-serif" size=1>EPP Address
Port</FONT></TD>
<TD align=middle><FONT face="Arial, Helvetica, sans-serif"
size=1>+3</FONT></TD>
<TD align=middle><FONT face="Arial, Helvetica, sans-serif"
size=1>EPP</FONT></TD>
<TD align=middle><FONT face="Arial, Helvetica, sans-serif"
size=1>R/W</FONT></TD>
<TD><FONT face="Arial, Helvetica, sans-serif" size=1>Generates an
interlocked address read or write cycle.</FONT></TD></TR>
<TR>
<TD><FONT face="Arial, Helvetica, sans-serif" size=1>EPP Data
Port</FONT></TD>
<TD align=middle><FONT face="Arial, Helvetica, sans-serif"
size=1>+4</FONT></TD>
<TD align=middle><FONT face="Arial, Helvetica, sans-serif"
size=1>EPP</FONT></TD>
<TD align=middle><FONT face="Arial, Helvetica, sans-serif"
size=1>R/W</FONT></TD>
<TD><FONT face="Arial, Helvetica, sans-serif" size=1>Generates an
interlocked data read or write cycle.</FONT></TD></TR>
<TR>
<TD><FONT face="Arial, Helvetica, sans-serif" size=1>Not
Defined</FONT></TD>
<TD align=middle><FONT face="Arial, Helvetica, sans-serif" size=1>+5
to +7</FONT></TD>
<TD align=middle><FONT face="Arial, Helvetica, sans-serif"
size=1>EPP</FONT></TD>
<TD align=middle><FONT face="Arial, Helvetica, sans-serif"
size=1>N/A</FONT></TD>
<TD><FONT face="Arial, Helvetica, sans-serif" size=1>Used
differently by various implementations. May be used for 16 and 32
bit I/O.</FONT></TD></TR></TBODY></TABLE><BR></DIV>
<P align=left><FONT face="Arial, Helvetica, sans-serif" color=#000000
size=1>By generating a single I/O write instruction to "base_address + 4",
the EPP controller will generate the necessary handshake signals and
strobes to transfer the data using an EPP Data_Write cycle. I/O
instructions to the base addresses, ports 0 through 2, will cause behavior
exactly as that as to a standard parallel port. This guarantees
compatibility with standard parallel port peripherals and printers.
Address cycles are generated when read or write I/O operations are
generated to "base_address + 3". </FONT></P>
<P align=left><FONT face="Arial, Helvetica, sans-serif" color=#000000
size=1>Ports 5 through 7 are used differently by various hardware
implementations. These may be used to implement 16 or 32-bit software
interfaces, or used for configuration registers, or not used at all. For
example, the Warp Nine Engineering's' F/PortPlus card has only an 8-bit
data interface, but can be accessed using 32-bit I/O, for EPP data
operations. The ISA controller will intercept the 32- bit I/O and actually
generate 4 fast 8- bit I/O cycles. The first cycle will be to the
addressed I/O port using byte 0 (bits 0-7), the second cycle will be to
port+1 using byte 1, then port+2 using byte 2 and finally port+3 using
byte 3. These additional cycles are generated by hardware and are
transparent to the software. The total time for these four cycles will be
less than 4 independent 8 bit cycles. For example, the F/PortPlus card
(from Warp Nine Engineering) maps 4 I/O ports (offset 4 to 7) to the
internal EPP Data register. This enables the software to use 32-bit I/O
operations for EPP data transfer. Address cycles are still limited to
8-bit I/O. </FONT></P>
<P align=left><FONT face="Arial, Helvetica, sans-serif" color=#000000
size=1>The ability to transfer data to or from the PC by the use of a
single instruction is what enables EPP mode parallel ports to transfer
data at ISA bus speeds. Rather than having the software implement an I/O
intensive software loop, a block of data can be transferred with a single
REP_IO instruction. Depending upon the host adapter port implementation
and the capability of the peripheral, an EPP port can transfer data from
500K bytes to nearly 2M bytes per second. This data transfer rate is more
than enough to enable network adapters, CD ROM, tape backup and other
peripherals to operate at nearly ISA bus performance levels. </FONT></P>
<P align=left><FONT face="Arial, Helvetica, sans-serif" color=#000000
size=1>The EPP protocol and current implementations provide a high degree
of coupling between the peripheral driver and the peripheral. What this
means is the software driver is always able to determine and control the
state of communication to the peripheral at any given time. Intermixing of
read and write operations as well as block transfers are readily done.
This type of coupling is ideal for many register-oriented or real-time
controlled peripherals such as network adapters, data acquisition,
portable hard drives, and other devices.</FONT></P>
<P align=left> </P><!-- #BeginLibraryItem "/Library/Bottom Navigation Bar.lbi" -->
<CENTER><FONT face=Arial color=#ffffff></FONT><FONT
face=Arial><SMALL><SMALL><FONT color=#e2b323></FONT><FONT
face=Arial><SMALL><SMALL><FONT face="Arial, Helvetica, sans-serif"
color=#e2b323 size=1><FONT color=#ff0000>|</FONT></FONT><FONT
face="Arial, Helvetica, sans-serif" color=#ffffff
size=1></FONT></SMALL></SMALL></FONT><FONT
face="Arial, Helvetica, sans-serif" color=#ffffff> </FONT><FONT
face="Arial, Helvetica, sans-serif"><A
href="http://www.fapo.com/index.html"><FONT
size=1>Home</FONT></A></FONT><FONT face="Arial, Helvetica, sans-serif"
size=1></FONT><FONT face="Arial, Helvetica, sans-serif" color=#e2b323
size=1> <FONT color=#ff0000>|</FONT></FONT><FONT
face="Arial, Helvetica, sans-serif" color=#ffffff size=1> </FONT><FONT
face="Arial, Helvetica, sans-serif" size=1><A
href="http://www.fapo.com/product.htm">Products</A></FONT><FONT
face="Arial, Helvetica, sans-serif" size=1></FONT><FONT
face="Arial, Helvetica, sans-serif" color=#e2b323 size=1> <FONT
color=#ff0000>|</FONT></FONT><FONT face="Arial, Helvetica, sans-serif"
color=#ffffff size=1> </FONT><FONT face="Arial, Helvetica, sans-serif"
size=1><A href="http://www.fapo.com/fpcorder.htm">Ordering</A></FONT><FONT
face="Arial, Helvetica, sans-serif" size=1></FONT><FONT
face="Arial, Helvetica, sans-serif" color=#e2b323 size=1> <FONT
color=#ff0000>|</FONT></FONT><FONT face="Arial, Helvetica, sans-serif"
color=#ffffff size=1> </FONT><FONT face="Arial, Helvetica, sans-serif"
size=1><A href="http://www.fapo.com/ieee1284.htm">1284
Info</A></FONT><FONT face="Arial, Helvetica, sans-serif" color=#e2b323
size=1> </FONT><FONT face="Arial, Helvetica, sans-serif"
size=1></FONT><FONT face="Arial, Helvetica, sans-serif" color=#e2b323
size=1><FONT color=#ff0000>|</FONT></FONT><FONT
face="Arial, Helvetica, sans-serif" color=#ffffff size=1> </FONT><FONT
face="Arial, Helvetica, sans-serif" size=1><A
href="http://www.fapo.com/fpcmail.htm">Contact</A></FONT><FONT
face="Arial, Helvetica, sans-serif" color=#ffffff size=1><A
href="http://www.fapo.com/fpcmail.htm"> Us</A></FONT><FONT
face="Arial, Helvetica, sans-serif" color=#e2b323 size=1> <FONT
color=#ff0000>|</FONT></FONT><FONT face="Arial, Helvetica, sans-serif"
color=#ffffff size=1> </FONT><FONT face="Arial, Helvetica, sans-serif"
size=1><A href="http://www.fapo.com/support.htm">Support</A></FONT><FONT
face="Arial, Helvetica, sans-serif" size=1></FONT><FONT
face="Arial, Helvetica, sans-serif" color=#ff0000 size=1> |</FONT><FONT
face="Arial, Helvetica, sans-serif" size=1> <A
href="http://www.fapo.com/search.htm">Search</A></FONT><FONT
face="Arial, Helvetica, sans-serif" size=1></FONT><FONT
face="Arial, Helvetica, sans-serif" color=#e2b323 size=1> <FONT
color=#ff0000>|</FONT></FONT></SMALL></SMALL></FONT> </CENTER><!-- #EndLibraryItem -->
<P align=left> </P></TD></TR></TBODY></TABLE><!-- #BeginLibraryItem "/Library/Copyright and Last Modified.lbi" -->
<DIV align=left>
<TABLE height=80 cellSpacing=0 cellPadding=0 width=597 border=0>
<TBODY>
<TR>
<TD vAlign=top align=left width=56 rowSpan=3> </TD>
<TD width=1 rowSpan=3> </TD>
<TD vAlign=top align=left width=9 rowSpan=3> </TD>
<TD vAlign=top align=left colSpan=2>
<DIV align=left><FONT face="Arial, Helvetica, sans-serif" size=1></FONT><A
href="http://www.fapo.com/index.html"><IMG height=30
src="EPP Mode.files/w9logosm4.gif" width=130 border=0></A></DIV></TD>
<TD width=224>
<DIV align=left></DIV></TD></TR>
<TR>
<TD colSpan=3>
<HR>
</TD></TR>
<TR>
<TD vAlign=top align=left colSpan=2>
<DIV align=left>
<P><FONT face="Arial, Helvetica, sans-serif" size=1><SMALL>Copyright
⌨️ 快捷键说明
复制代码Ctrl + C
搜索代码Ctrl + F
全屏模式F11
增大字号Ctrl + =
减小字号Ctrl + -
显示快捷键?