ED结构说明
节选自OHCI的规范。
Name
|
HC
Access
|
Description
| |||||
FA
|
R
|
FunctionAddress
This is the USB address of the function containing the endpoint that this ED controls
| |||||
EN
|
R
|
EndpointNumber
This is the USB address of the endpoint within the function
| |||||
D
|
R
|
Direction
This 2-bit field indicates the direction of data flow (IN or OUT.) If neither IN nor OUT is specified, then the direction is determined from the PID field of the TD. The encoding of the bits of this field are:
| |||||
| |||||||
|
Code
|
Direction
|
|
| |||
|
00b
|
Get direction From TD
|
|
| |||
|
01b
|
OUT
|
|
| |||
|
10b
|
IN
|
|
| |||
|
11b
|
Get direction From TD
|
|
| |||
|
|
|
| ||||
S
|
R
|
Speed
Indicates the speed of the endpoint: full-speed (S = 0) or low-speed (S = 1.)
| |||||
K
|
R
|
sKip
When this bit is set, the HC continues on to the next ED on the list without attempting access to the TD queue or issuing any USB token for the endpoint
| |||||
F
|
R
|
Format
This bit indicates the format of the TDs linked to this ED. If this is a Control, Bulk, or Interrupt Endpoint, then F = 0, indicating that the General TD format is used. If this is an Isochronous Endpoint, then F = 1, indicating that the Isochronous TD format is used.
| |||||
MPS
|
R
|
MaximumPacketSize
This field indicates the maximum number of bytes that can be sent to or received from the endpoint in a single data packet
| |||||
TailP
|
R
|
TDQueueTailPointer
If TailP and HeadP are the same, then the list contains no TD that the HC can process. If TailP and HeadP are different, then the list contains a TD to be processed.
| |||||
H
|
R/W
|
Halted
This bit is set by the HC to indicate that processing of the TD queue on the endpoint is halted, usually due to an error in processing a TD.
| |||||
C
|
R/W
|
toggleCarry
This bit is the data toggle carry bit. Whenever a TD is retired, this bit is written to contain the last data toggle value (LSb of data Toggle field) from the retired TD. This field is not used for Isochronous Endpoints
| |||||
HeadP
|
R/W
|
TDQueueHeadPointer
Points to the next TD to be processed for this endpoint.
| |||||
NextED
|
R
|
NextED
If nonzero, then this entry points to the next ED on the list
|