Usb controller, Introduction – Rainbow Electronics AT89C5131 User Manual
Page 113

113
AT89C5131
4136A–USB–03/03
USB Controller
Introduction
The AT89C5131 implements a USB device controller supporting full speed data trans-
fer. In addition to the default control endpoint 0, it provides 6 other endpoints, which can
be configured in control, bulk, interrupt or isochronous modes:
•
Endpoint 0:32-byte FIFO, default control endpoint
•
Endpoint 1, 2, 3: 32-byte FIFO
•
Endpoint 4, 5: 2 x 64-byte Ping-pong FIFO
•
Endpoint 6: 2 x 512-byte Ping-pong FIFO
This allows the firmware to be developed conforming to most USB device classes, for
example:
•
USB Mass Storage Class Control/Bulk/Interrupt (CBI) Transport, Revision 1.0 -
December 14, 1998
•
USB Mass Storage Class Bulk-only Transport, Revision 1.0 - September 31, 1999
•
USB Human Interface Device Class, Version 1.1 - April 7, 1999
•
USB Device Firmware Upgrade Class, Revision 1.0 - May 13, 1999
USB Mass Storage Classes
USB Mass Storage Class CBI
Transport
Within the CBI framework, the control endpoint is used to transport command blocks as
well as to transport standard USB requests. One Bulk-out endpoint is used to transport
data from the host to the device. One Bulk-in endpoint is used to transport data from the
device to the host. And one interrupt endpoint may also be used to signal command
completion (protocol 0) but it is optional and may not be used (protocol 1).
The following configuration adheres to these requirements:
•
Endpoint 0: 8 bytes, Control In-Out
•
Endpoint 4: 64 bytes, Bulk-out
•
Endpoint 5: 64 bytes, Bulk-in
•
Endpoint 3: 8 bytes, Interrupt In
USB Mass Storage Class Bulk-
only Transport
Within the Bulk-only framework, the Control endpoint is only used to transport class-
specific and standard USB requests for device set-up and configuration. One Bulk-out
endpoint is used to transport commands and data from the host to the device. One Bulk-
in endpoint is used to transport status and data from the device to the host. No interrupt
endpoint is needed.
The following configuration adheres to these requirements:
•
Endpoint 0: 8 bytes, Control In-Out
•
Endpoint 4: 64 bytes, Bulk-out
•
Endpoint 5: 64 bytes, Bulk-in
•
Endpoint 3: not used