Добавил:
Upload Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
USB System Architecture (USB 2.0).pdf
Скачиваний:
172
Добавлен:
03.05.2015
Размер:
7.03 Mб
Скачать

Appendix D: Open Host Controller

The Done Queue

When the OHC completes a transfer, the TD is linked to the Done queue and written back to the HCCA. In this way, the OHCD can search the Done queue to determine which transactions have been de-queued by the controller and what their completion status is.

Figure D-3: Transfer Queues

 

 

 

 

ED

 

ED

ED

ED

 

ED

 

ED

 

 

Header Pointer

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

ED = Endpoint Descriptor

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

TD

 

TD

 

TD

 

TD

 

TD

 

TD

 

 

 

TD = Transfer Descriptor

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

TD

 

TD

 

 

 

TD

 

TD

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

TD

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

Interrupt Transfer Scheduling

Figure D-4 illustrates conceptually how the interrupt EDs are linked to ensure that interrupt transactions occur during the specified polling interval. The HCCA pointer register specifies the base address of the HCCA area in memory where a list of 32 interrupt head pointers reside. The five least significant bits of the frame number are used as an index into the interrupt head pointer list. Each frame a different sequence of interrupt transaction are performed based on the ED links from the selected interrupt head pointer.

The interrupt EDs are linked such that they appear in the list for every nth frame that represents its polling interval. For example, interrupts with a polling interval of 32ms would be linked into only one interrupt head pointer. Since a given head pointer is accessed once every 32 frames the interrupt transaction occurs once every 32ms. At the other extreme, a interrupt endpoint with a polling interval of 1ms would be linked into every interrupt head pointer list. In this way, interrupt transactions can be scheduled at intervals of 1ms, 2ms, 4ms, 8ms, 16ms, or 32ms.

481

USB System Architecture

Figure D-4: Interrupt Scheduling

Interrupt 0

Interrupt 16

Interrupt 8

Interrupt 24

Interrupt 4

Interrupt 20

Interrupt 12

Interrupt 28

Interrupt 2

Interrupt 18

Interrupt 10

Interrupt 26

Interrupt 6

Interrupt 22

Interrupt 14

Interrupt 30

Interrupt 1

Interrupt 17

Interrupt 9

Interrupt 25

Interrupt 5

Interrupt 21

Interrupt 13

Interrupt 29

Interrupt 3

Interrupt 19

Interrupt 11

Interrupt 27

Interrupt 7

Interrupt 23

Interrupt 15

Interrupt 31

Interrupt

Endpoint

Descriptor

Placeholders

Interrupt

32

16

8

4

2

1

Header

Endpoint Polling Interval

Pointers

 

Isochronou

Endpoints

482

Соседние файлы в предмете [НЕСОРТИРОВАННОЕ]