
CHAPTER 14 USBU (UNIVERSAL SERIAL BUS UNIT)
User’s Manual U14579EJ2V0UM
318
14.4.2 Host controller communication methods
The host controller (HC) and host controller driver (HCD) communicate by using the following two routes.
1. Operational registers
2. HCCA (Host Controller Communication Area)
For communication that is performed by using the operational registers contained in the HC, the HC is the PCI
target device. The operational registers, which are a set of control, status, list pointer, and other registers, also
maintain a pointer that indicates the HCCA position within the system memory. For communication that is performed
via the HCCA, the HC is the PCI device master. The HCCA is a 256-byte system memory area that maintains a
header pointer for the InterruptED list, header pointer for the Done queue (transfer completed queue), and status
information related to frames. By using this system memory, software can directly control HC functions without reading
from the HC during normal conditions (for example, when there is no error). These two routes are used to control the
HC and to exchange data transfer results on the USB.
Communication between the HC and a USB device is performed based on Endpoint Descriptors (ED) and Transfer
Descriptors (TD), which are enqueued by the HCD. An ED maintains information (maximum packet size, endpoint
address, endpoint speed, and data flow direction) that is required by the HC to communicate with an endpoint. An ED
is also used as an anchor of the TD queue. The HCD generates EDs, assigns them to endpoints, and links them to the
list.
A TD maintains information (data toggle information, buffer position in system memory, and completion status
code) that is required for data packets that are transferred. Each TD stores information that is related to one or more
data packets. The TD data buffer size is from 0 to 8192 bytes. However, only 1024 bytes can be transferred by a single
data packet. TDs are processed sequentially beginning with the first one that was entered in the queue. A TD queue is
linked with the ED of a given endpoint, and TDs are linked with the TD queue. The HCD creates the data of these
structures and passes it to the HC for processing.
Figure 14-5 shows the relationship between EDs and TDs.
Figure 14-5. Relationship Between EDs and TDs
Head Ptr
ED
TD
ED
TD
ED
TD
ED
TD