beautypg.com

Usb controller, Introduction – Rainbow Electronics AT89C5131 User Manual

Page 113

background image

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