Lucent Technologies USS-720 Computer Drive User Manual


 
Preliminary Data Sheet, Rev. 5 USS-720
Instant USB
September 1999 USB-to-
IEEE
1284 Bridge
Lucent Technologies Inc. 5-11
13
USB Port (continued)
Pipes
Four pipes are defined: Control, Bulk Out, Bulk In, and
Interrupt.
Control Pipe
The Control pipe is the default pipe, used for USB
setup and control packets. Its maximum packet size is
8 bytes. The Control pipe is also used for class- and
vendor-specific commands that:
Configure class- and vendor-specific features.
Retrieve Device, Configuration, and String descrip-
tors.
Note: Descriptor data shares the physical buffer used
to transfer Bulk In data. Retrieving this data will
result in the loss of any reverse channel data
currently in the Bulk In buffer.
Read and write the parallel port registers.
— Access standard parallel port register set.
— Read/write an address byte from/to the peripheral
in EPP Mode.
— Read/write a data byte from/to the peripheral in
EPP Mode (but multiple bytes can be transferred
more efficiently via the Bulk Out pipe).
Read Printer Class Get Device ID data.
Note: This data shares the physical buffer used to
transfer Bulk In data. Retrieving this data will
result in the loss of any reverse channel data
currently in the Bulk In buffer.
Bulk In Pipe
The Bulk In pipe is used to read data bytes from the
peripheral in Automatic Mode and register-based ECP
Mode. Its maximum packet size is 64 bytes. The buffer
used for this pipe is shared with the Control pipe for
descriptor data and
IEEE
1284 Device ID string data.
The Control pipe has priority over Bulk In data, so any
data in this buffer when a request is made for descrip-
tor data or
IEEE
1284 Device ID string will be lost.
Bulk Out Pipe
The Bulk Out pipe is used to send data to the periph-
eral in Automatic Mode and in Compatibility, EPP, or
ECP Register Modes. Its maximum packet size is
64 bytes.
Interrupt Pipe
The Interrupt pipe is used to report changes in parallel
port and buffer status to the host. Interrupt packets are
4 bytes in length. When the Interrupt pipe is enabled by
host software, the host automatically polls the USS-720
once per frame. The USS-720 returns 4 bytes of status
whenever an interrupt condition exists, as described in
the Interrupts section on page 23, and returns nothing
otherwise. This enables the host to detect and react to
parallel port and buffer status changes without explicit
polling.
Interpipe Synchronization
With commands and data going to different pipes, and
data potentially being buffered inside the USS-720, it
could be difficult for host software to maintain serializa-
tion of operations on the peripheral. This can be done
by reading the registers to determine the status of the
USS-720. Or, the Interrupt pipe status mechanism
described above can be used to alleviate this problem.
Software can use the port status and buffer status
information thus returned to determine when buffered
data has been sent and when port control commands
have been processed and it is safe to continue. Since
interrupt information is returned to the software auto-
matically and only when it changes, overhead for the
host operating system and driver software is kept low
when using the interrupt pipe as opposed to polling the
registers.
Requests
The USS-720 can respond to three different types of
requests:
Standard USB device requests.
Class-specific requests.
Vendor-specific requests.
Standard Requests
The USS-720 supports all of the standard device
requests described in Chapter 9, Device Framework, of
the USB Specification except Set Descriptor:
Clear Feature.
Get Configuration.
Get Descriptor. Direct requests for interface and end-
point descriptors are not supported in the USS-720
and will cause the Control pipe to be stalled.
Get Interface.
Get Status.
Set Address.
Set Configuration.
Set Interface.
Set Feature.