Wojciech Mielczarek usb. uniwersalny interfejs szeregowy ebook.pdf

(9975 KB) Pobierz
887676488.051.png
4
USB. Uniwersalny interfejs szeregowy
Transakcje izochroniczne (isochronous transactions) ............................................ 37
Transakcje kontrolne (control transactions) .......................................................... 39
2.3. Wykrywanie błędów i kontrola transmisji ............................................................. 41
Kontrola poprawności pakietów ............................................................................ 41
Ograniczenie czasowe oczekiwania na odpowiedź ............................................... 42
Przełączanie pakietów danych ............................................................................... 43
Praca normalna — synchronizacja nadawcy i odbiorcy ........................................ 44
Praca zakłócona — utrata synchronizacji nadawcy i odbiorcy
i odtworzenie synchronizacji .............................................................................. 44
Rozdział 3. Deskryptory w urządzeniach USB ..................................................... 47
3.1. Deskryptory w urządzeniach zgodnych z USB 1.x ................................................ 48
3.2. Deskryptory w urządzeniach zgodnych z USB 2.0 ................................................ 52
Rozdział 4. Wykrywanie i enumeracja urządzenia w systemie USB ..................... 55
4.1. Procedura enumeracji ............................................................................................ 55
4.2. Przełączanie segmentu USB na wysoką szybkość ................................................. 57
Rozdział 5. Kontrola urządzenia USB za pośrednictwem rozkazów standardowych ... 59
5.1. Etapy transferu kontrolnego .................................................................................. 60
Przekazanie rozkazu (Setup Stage) ........................................................................ 60
Przekazanie danych (Data Stage) .......................................................................... 61
Przekazanie statusu (Status Stage) ........................................................................ 62
5.2. Standardowe rozkazy USB .................................................................................... 62
Rozdział 6. Zasilanie urządzeń w systemie USB ................................................. 71
6.1. Dystrybucja zasilania w USB ................................................................................ 71
Hub zasilany z magistrali USB podłączony do portu o obciążalności 500 mA ..... 71
Hub z zasilaniem hybrydowym ............................................................................. 72
Hub całkowicie zasilany z zasilacza własnego ...................................................... 72
6.2. Zarządzanie zasilaniem w systemie USB .............................................................. 73
Urządzenie w stanie zawieszenia ........................................................................... 74
Wznowienie normalnej pracy urządzenia .............................................................. 74
Rozdział 7. Konfiguracja huba ........................................................................... 77
7.1. Deskryptor klasy hub ............................................................................................. 77
7.2. Charakterystyczne punkty końcowe i obsługa huba .............................................. 80
Zanik zasilania lub przeciążenie prądowe huba ..................................................... 81
Zmiana na porcie dolnym ...................................................................................... 83
Rozdział 8. Klasy urządzeń USB ........................................................................ 87
8.1. Klasa audio ............................................................................................................ 89
8.2. Klasa HID .............................................................................................................. 90
Rozkazy specyficzne dla klasy HID ...................................................................... 93
Interfejs inicjalizacyjny w urządzeniach klasy HID .............................................. 96
Rozdział 9. Oprogramowanie USB w hoście ....................................................... 97
9.1. Komponenty programowe USB ............................................................................. 99
Sterownik urządzenia ............................................................................................ 99
Sterownik USB .................................................................................................... 100
Sterownik host kontrolera .................................................................................... 100
Spis treści
5
9.2. Zarządzanie konfiguracją ..................................................................................... 101
Nadzór zasilania .................................................................................................. 101
Monitorowanie i przydział pasma ....................................................................... 102
9.3. Zarządzanie magistralą ........................................................................................ 103
9.4. Zarządzanie transferem danych ........................................................................... 103
Rozdział 10. Szczególne przypadki komunikacji w systemie USB 2.0 ................. 105
10.1. Protokół PING-NYET ....................................................................................... 105
10.2. Transakcja SPLIT .............................................................................................. 106
10.3. Komunikacja z szerokopasmowym punktem izochronicznym .......................... 107
10.4. Kodowanie pakietów wprowadzonych w USB 2.0 ............................................ 108
Rozdział 11. Interfejs USB w urządzeniach ........................................................ 111
Rozdział 12. Suplement On-The-Go do specyfikacji USB 2.0 .............................. 115
12.1. Właściwości mechaniczne i elektryczne łącza OTG .......................................... 116
12.2. Protokół SRP ..................................................................................................... 118
Warunki początkowe ......................................................................................... 119
Pulsowanie na linii danych ................................................................................ 119
Czas trwania SRP .............................................................................................. 120
Odpowiedź urządzenia A na SRP ...................................................................... 120
12.3. Protokół HNP .................................................................................................... 120
Deskryptor OTG ................................................................................................ 121
Literatura ..................................................................................... 123
Skorowidz ..................................................................................... 125
Rozdział 3.
Deskryptory
w urządzeniach USB
W systemie USB możliwa jest komunikacja z urządzeniami o różnych właściwościach
komunikacyjnych, przy czym właściwości komunikacyjne poszczególnych urządzeń
muszą być znane hostowi zarządzającemu pracą systemu. Dlatego też w każdym
urządzeniu USB znajduje się pełna informacja o sposobie komunikacji z urządzeniem
udostępniana podczas procesu enumeracji. Informacja ta przechowywana jest w de-
skryptorach, które są tablicami o ściśle określonej strukturze. Deskryptory urządzenia
USB tworzą hierarchiczną strukturę, na której wierzchołku znajduje się deskryptor
urządzenia, jak to przedstawiono na rysunku 3.1.
Rysunek 3.1.
Hierarchiczna
struktura deskryptorów
w urządzeniu USB
887676488.061.png 887676488.062.png 887676488.063.png 887676488.001.png 887676488.002.png 887676488.003.png 887676488.004.png 887676488.005.png 887676488.006.png 887676488.007.png 887676488.008.png 887676488.009.png 887676488.010.png 887676488.011.png 887676488.012.png 887676488.013.png 887676488.014.png 887676488.015.png 887676488.016.png 887676488.017.png 887676488.018.png 887676488.019.png 887676488.020.png 887676488.021.png 887676488.022.png 887676488.023.png 887676488.024.png 887676488.025.png 887676488.026.png 887676488.027.png 887676488.028.png 887676488.029.png 887676488.030.png 887676488.031.png 887676488.032.png 887676488.033.png 887676488.034.png 887676488.035.png 887676488.036.png 887676488.037.png 887676488.038.png 887676488.039.png 887676488.040.png 887676488.041.png 887676488.042.png 887676488.043.png 887676488.044.png 887676488.045.png 887676488.046.png 887676488.047.png 887676488.048.png 887676488.049.png 887676488.050.png 887676488.052.png
 
48
USB. Uniwersalny interfejs szeregowy
3.1. Deskryptory w urządzeniach
zgodnych z USB 1.x
W każdym urządzeniu USB występuje tzw. deskryptor urządzenia ( device descriptor ),
który między innymi zawiera informację o liczbie konfiguracji dostępnych w urządze-
niu. W tabeli 3.1 przedstawiono znaczenie poszczególnych pól deskryptora urządzenia.
Każdą konfigurację z kolei opisuje oddzielny deskryptor konfiguracji ( configuration
descriptor ), który między innymi informuje o liczbie interfejsów przypisanych danej
konfiguracji. W tabeli 3.2 przedstawiono znaczenie poszczególnych pól deskryptora
konfiguracji. Każdy interfejs posiada własny deskryptor interfejsu ( interface desciptor ),
który między innymi określa liczbę punktów końcowych związanych z tym interfejsem.
W tabeli 3.3 przedstawiono znaczenie poszczególnych pól deskryptora interfejsu. Po-
dobnie, każdy punkt końcowy charakteryzowany jest przez oddzielny deskryptor punktu
końcowego ( endpoint descriptor ).
Tabela 3.1. Deskryptor urządzenia
Numer
pola
Rozmiar pola
(liczba bajtów)
Nazwa pola
Znaczenie i wartość
Długość deskryptora
( Descriptor Length )
1
1
Liczba bajtów w deskryptorze urządzenia
Typ deskryptora
( Descriptor Type )
Stała określająca typ deskryptora.
Wartość 1 oznacza deskryptor urządzenia
2
1
Wersja USB
( USB version # )
Liczba w kodzie BCD określająca numer wersji
USB (np. 1.00)
3
2
Kod klasy, do której należy urządzenie USB.
Wartość pola równa 0 oznacza, że interfejsy
w ramach danej konfiguracji mają własne kody
klasy i działają niezależnie.
Wartość 256 oznacza, że mamy do czynienia
z urządzeniem specyficznym, którego klasa jest
określona przez producenta.
Klasa
( Device Class )
4
1
Podklasa
( Device Subclass )
Kod podklasy związany z kodem klasy urządzenia.
Jeżeli kod klasy = 0, to i kod podklasy = 0
5
1
Kod protokołu urządzenia.
Protokół może być zawiązany:
z daną klasą (podklasą) urządzenia i wtedy
jest zdefiniowany przez standard danej klasy
lub
określony przez producenta (wartość pola: 256).
Wartość pola równa 0 oznacza, że nie stosuje się
protokołu określonego przez klasę urządzenia,
jednak poszczególne interfejsy urządzenia mogą
wykorzystywać protokoły klas, do których należą
Protokół
( Device Protocol )
6
1
887676488.053.png 887676488.054.png 887676488.055.png 887676488.056.png 887676488.057.png 887676488.058.png 887676488.059.png 887676488.060.png
 
Zgłoś jeśli naruszono regulamin