Preliminary Data Sheet, Rev. 5

USS-720

Instant USB

September 1999

USB-to-IEEE

1284 Bridge

 

 

 

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

Lucent Technologies Inc.

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.

5-11

Page 37
Image 37
Lucent Technologies USS-720 manual Pipes, Standard Requests