USB. Uniwersalny interfejs szeregowy

Podobne dokumenty
Katedra Metrologii i Systemów Elektronicznych. Interfejs USB

USB. Universal Serial Bus OPRACOWAŁ: TOMASZ KARLA

Architektura Systemów Komputerowych. Transmisja szeregowa danych Standardy magistral szeregowych

USB interface in 8-bit microcontrollers PIC18F family manufactured by Microchip.

P³atnik. Przewodnik IDZ DO KATALOG KSI EK TWÓJ KOSZYK CENNIK I INFORMACJE CZYTELNIA PRZYK ADOWY ROZDZIA SPIS TREŒCI KATALOG ONLINE

USB - Universal Serial Bus

Wykład 4. Interfejsy USB, FireWire

Architektura komputerów

RS485 MODBUS Module 6RO

Architektura komputerów. Układy wejścia-wyjścia komputera

RS485 MODBUS Module 6RO

Zastosowania mikrokontrolerów w przemyśle

Materiały dodatkowe Krótka charakterystyka protokołu MODBUS

Matematyka z komputerem dla gimnazjum

Smarty PHP. Leksykon kieszonkowy

Wykład 4. Interfejsy USB, FireWire

MiniModbus 4DO. Moduł rozszerzający 4 wyjścia cyfrowe. Wyprodukowano dla. Instrukcja użytkownika

asix4 Podręcznik użytkownika DMS500 - drajwer protokołu analizatorów DURAG DMS 500 Podręcznik użytkownika

RS485 MODBUS Module 6RO

Moduł komunikacyjny Modbus RTU do ciepłomierza SonoMeter 30

1 Moduł Konwertera. 1.1 Konfigurowanie Modułu Konwertera

Programowanie sterowników przemysłowych / Jerzy Kasprzyk. wyd. 2 1 dodr. (PWN). Warszawa, Spis treści

Urządzenia zewnętrzne Instrukcja obsługi

MAGISTRALE ZEWNĘTRZNE, gniazda kart rozszerzeń, w istotnym stopniu wpływają na

Protokół CAN-bus PKP.

ARP Address Resolution Protocol (RFC 826)

Autor: Jakub Duba. Interjesy

Urządzenia zewnętrzne

Opis systemu Lipiec

Urządzenia zewnętrzne Instrukcja obsługi

Urz dzenia zewn trzne

Tytuł: Instrukcja obsługi Modułu Komunikacji internetowej MKi-sm TK / 3001 / 016 / 002. Wersja wykonania : wersja oprogramowania v.1.

Magistrala LIN

Urządzenia zewnętrzne Instrukcja obsługi

Standard transmisji równoległej LPT Centronics

SDM-6RO. Moduł rozszerzający 6 wyjść przekaźnikowych. wyprodukowano dla

Sieci komputerowe - Wstęp do intersieci, protokół IPv4

Konfigurowanie sterownika CX9000 firmy Beckhoff wprowadzenie

Konfiguracja i podłączenie sterownika Horner APG do oprogramowania Cscape po RS232

Stos protokołów TCP/IP (ang. Transmission Control Protocol/Internet Protocol)

Konfigurowanie modułu BK9050 firmy Beckhoff wprowadzenie

Konfigurowanie sterownika CP6601 firmy Beckhoff wprowadzenie

Rozproszony system zbierania danych.

Karta dźwiękowa USB z nagrywaniem i analogowymi oraz cyfrowymi we/wy

1. Cel ćwiczenia. Celem ćwiczenia jest zestawienie połączenia pomiędzy dwoma sterownikami PLC za pomocą protokołu Modbus RTU.

Architektura komputerów

Konfigurowanie sterownika CX1000 firmy Beckhoff wprowadzenie. 1. Konfiguracja pakietu TwinCAT do współpracy z sterownikiem CX1000

MODEL WARSTWOWY PROTOKOŁY TCP/IP

Dysk CD (ze sterownikami i podręcznikiem użytkownika) Kabel USB 2.0

UW-DAL-MAN v2 Dotyczy urządzeń z wersją firmware UW-DAL v5 lub nowszą.

Moduł komunikacyjny Modbus RTU w standardzie RS-485 do ciepłomierza SonoMeter 31 i przelicznika energii Infocal 9

Protokół CAN-bus PKP.

Protokół IEC

Urządzenia wejścia-wyjścia

asix4 Podręcznik użytkownika CtMus04 - drajwer do wymiany danych z urządzeniami sterującymi MUS-04 firmy ELEKTORMETAL S.A.

Zaliczenie Termin zaliczenia: Sala IE 415 Termin poprawkowy: > (informacja na stronie:

asix4 Podręcznik użytkownika CtSNPX - drajwer protokołu SNPX sterowników GE Fanuc Podręcznik użytkownika

Kurs Podstawowy S7. Spis treści. Dzień 1

Podstawy Techniki Komputerowej. Temat: BIOS

RS485 MODBUS Module 16RO

IDZ DO KATALOG KSI EK TWÓJ KOSZYK CENNIK I INFORMACJE CZYTELNIA PRZYK ADOWY ROZDZIA SPIS TREŒCI KATALOG ONLINE ZAMÓW DRUKOWANY KATALOG

SERIALIZACJA LEKÓW I PIERWSZE DOŚWIADCZENIA RYNKU FARMACEUTYCZNEGO PO WPROWADZENIU DYREKTYWY FAŁSZYWKOWEJ

INSTRUKCJA UŻYTKOWNIKA MPCC

Wyświetlacz alfanumeryczny LCD zbudowany na sterowniku HD44780

SiMod-X-(A1) Przetwornik parametrów powietrza z interfejsem RS485 (MODBUS RTU) oraz wyjściem analogowym (dotyczy wersji -A1)

Urządzenia zewnętrzne

Rozkład menu narzędzi

Zmiana długości cyklu izochronicznego w szeregowych interfejsach komunikacyjnych USB 2.0 I IEEE 1394A

RS485 MODBUS Module 16RO

PRZYKŁADOWE PYTANIA NA PRÓBNY EGZAMIN POTWIERDZAJĄCY KWALIFIKACJE ZAWODOWE

DS-2410 z zasilaczem 230/12V 2A - bez zasilania rezerwowego do zamontowania w obudowie tripodu, szlabanu. Na płytce kontrolera są zamontowane:

asix4 Podręcznik użytkownika OMRON drajwer protokołu HOSTLINK dla sterowników OMRON Podręcznik użytkownika

SDM-16RO. Moduł rozszerzający 16 wyjść przekaźnikowych. wyprodukowano dla

Interfejsy systemów pomiarowych

asix4 Podręcznik użytkownika FESTO - drajwer protokołu interfejsu diagnostycznego sterowników FESTO Podręcznik użytkownika

m e d i a s e r v i c e Moduł kamery JPEG z komunikacją szeregową CJ0706A

Kod produktu: MP01105T

Problematyka sieci miejscowej LIN

Urz dzenia zewn trzne

Przesyłania danych przez protokół TCP/IP

Instrukcja obsługi rejestratorów XVR. Zapoznaj się przed użyciem

CRUSB Spartan KONWERTER CAN / USB

Konfigurowanie sterownika BC8150 firmy Beckhoff wprowadzenie

Moduł Ethernetowy. instrukcja obsługi. Spis treści

PROTOKÓŁ MQTT (uzupełnienie do instrukcji obsługi miernika ND30)

Współpraca procesora z urządzeniami peryferyjnymi

Systemy wbudowane - wykład 8. Dla zabicia czasu Notes. I 2 C aka IIC aka TWI. Notes. Notes. Notes. Przemek Błaśkiewicz.

HP-1 parametry. Pobór prądu (przy zasilaniu 12V) Pobierana moc (przy zasilaniu 12V) 0,036W. Pomiar ciśnienia

Pracownia Transmisji Danych, Instytut Fizyki UMK, Toruń. Instrukcja do ćwiczenia nr 10. Transmisja szeregowa sieciami energetycznymi

Plan wykładu. 1. Urządzenia peryferyjne 2. Rodzaje transmisji danych 3. Interfejs COM 4. Interfejs LPT 5. Plug and Play

Kod produktu: MP01611

Wykład 2 Składnia języka C# (cz. 1)

AutoCAD Pierwsze kroki

Urządzenia zewnętrzne

Spis treœci. Co to jest mikrokontroler? Kody i liczby stosowane w systemach komputerowych. Podstawowe elementy logiczne

INTERFEJS SUBARU USB INSTRUKCJA OBSŁUGI strona 1/14

Instrukcja obsługi czytnika MM-R32

Zygmunt Kubiak Instytut Informatyki Politechnika Poznańska

MySQL. Darmowa baza danych. Æwiczenia praktyczne

Sterownik komunikacyjny CommDTM dla ProfiCore Ultra

Transkrypt:

PRZYK ADOWY ROZDZIA Wydawnictwo Helion ul. Chopina 6 44-100 Gliwice tel. (32)230-98-63 e-mail: helion@helion.pl IDZ DO KATALOG KSI EK ZAMÓW DRUKOWANY KATALOG TWÓJ KOSZYK CENNIK I INFORMACJE ZAMÓW INFORMACJE ONOWOŒCIACH ZAMÓW CENNIK CZYTELNIA SPIS TREŒCI KATALOG ONLINE DODAJ DO KOSZYKA FRAGMENTY KSI EK ONLINE USB. Uniwersalny interfejs szeregowy Autor: Wojciech Mielczarek ISBN: 83-246-0142-2 Format: B5, stron: 128 Kompletny opis architektury systemu komputerowego opartego na z³¹czu Universal Serial Bus Charakterystyka systemu i protoko³u transmisji danych Metody kontrolowania urz¹dzeñ USB Klasy urz¹dzeñ USB Z³¹cze USB (Universal Serial Bus) szybko sta³o siê jednym z podstawowych standardów komunikacyjnych w systemach komputerowych, zastêpuj¹c wiele dotychczas stosowanych portów. Dziêki kilku typom transferu danych i szybkoœci transmisji umo liwia przy³¹czenie ró nych urz¹dzeñ peryferyjnych. Poprzez USB pod³¹cza siê miêdzy innymi drukarki, skanery, aparaty cyfrowe, klawiatury oraz myszy. Wykrywanie i konfiguracja urz¹dzenia USB oraz instalacja sterownika odbywa siê automatycznie, co bardzo u³atwia korzystanie z osprzêtu zgodnego z tym standardem. Niestety, ³atwoœæ obs³ugi urz¹dzeñ USB nie idzie w parze z prostot¹ samego interfejsu. Mechanizmy komunikacyjne USB s¹ skomplikowane, a wykonywanie uk³adów interfejsów dla urz¹dzeñ USB oraz pisanie sterowników urz¹dzeñ dla kontrolera systemu to trudne zadania. Ksi¹ ka USB. Uniwersalny interfejs szeregowy to omówienie architektury Universal Serial Bus. Przeznaczona jest dla osób, które chc¹ zmierzyæ siê z takim wyzwaniem lub po prostu s¹ zainteresowane tym, co w komputerze piszczy. Opisany jest tu standard USB 1.1 oraz jego rozszerzenia wprowadzone w wersji 2.0, omówione s¹ mechanizmy komunikacyjne zastosowane w USB oraz specyfika klas urz¹dzeñ USB. Poznasz te protokó³ transmisji danych przez z³¹cze USB, nauczysz siê kontrolowaæ urz¹dzenia za pomoc¹ rozkazów standardowych oraz dowiesz siê, jak tworzyæ oprogramowanie obs³uguj¹ce port USB. Model komunikacyjny interfejsu USB Transmisja danych i wykrywanie b³êdów Deskryptory urz¹dzeñ USB Wykrywanie pod³¹czonych urz¹dzeñ Standardowe rozkazy protoko³u USB Zasilanie urz¹dzeñ Klasy urz¹dzeñ USB Jeœli chcesz wiedzieæ, jak dzia³a interfejs USB i jak mo na go wykorzystaæ koniecznie przeczytaj tê ksi¹ kê.

Spis treści Wstęp... 7 Rozdział 1. Charakterystyka systemu USB... 9 1.1. Podstawowe właściwości interfejsu USB... 10 Gorące podłączenie... 10 Jeden typ złącza... 10 Duża liczba podłączanych urządzeń... 10 Różne szybkości transmisji... 10 Zasilanie... 11 Protokół komunikacyjny, detekcja błędów... 11 Transfery USB... 11 Zasoby systemowe wymagane przez USB... 11 Koszt... 11 1.2. Środowisko sygnałowe i fizyczne interfejsu USB... 12 Wykrywanie podłączenia lub odłączenia urządzenia... 14 Kodowanie bitów w systemie USB... 15 Środowisko fizyczne... 16 1.3. Ramki i mikroramki... 17 1.4. Model komunikacyjny... 18 Elementy programowe USB po stronie hosta... 19 Elementy sprzętowe USB po stronie hosta... 20 Elementy programowe USB po stronie urządzenia... 21 Elementy sprzętowe po stronie urządzenia... 21 1.5. Transfery USB... 22 1.6. Zarządzanie magistralą USB... 24 1.7. Stany urządzenia USB... 26 1.8. Hub w systemie USB... 28 Rozdział 2. Protokół komunikacyjny... 31 2.1. Pakiety w systemie USB... 31 Pakiet preambuły... 34 2.2. Transakcje USB... 35 Transakcje przerwaniowe (interrupt transactions)... 36 Transakcje masowe (bulk transactions)... 36

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 deskryptorach, 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

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ądzeniu. 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. Podobnie, każdy punkt końcowy charakteryzowany jest przez oddzielny deskryptor punktu końcowego (endpoint descriptor). Tabela 3.1. Deskryptor urządzenia 1 1 2 1 3 2 4 1 5 1 6 1 Nazwa Znaczenie i wartość Długość deskryptora (Descriptor Length) Typ deskryptora (Descriptor Type) Wersja USB (USB version #) Klasa (Device Class) Podklasa (Device Subclass) Protokół (Device Protocol) Liczba bajtów w deskryptorze urządzenia Stała określająca typ deskryptora. Wartość 1 oznacza deskryptor urządzenia Liczba w kodzie BCD określająca numer wersji USB (np. 1.00) Kod klasy, do której należy urządzenie USB. Wartość 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. Kod podklasy związany z kodem klasy urządzenia. Jeżeli kod klasy = 0, to i kod podklasy = 0 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ść : 256). Wartość 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żą

Rozdział 3. Deskryptory w urządzeniach USB 49 Tabela 3.1. Deskryptor urządzenia ciąg dalszy 7 1 8 2 9 2 10 2 11 1 12 1 13 1 14 1 Nazwa Znaczenie i wartość Maksymalny rozmiar pakietu (MaxPacketSize) Identyfikator producenta (Vendor ID) Identyfikator produktu (Product ID) wersji urządzenia (Version number) Wytwórca (Manufacturer) Nazwa produktu (Product Name) seryjny (Serial Number) Tabela 3.2. Deskryptor konfiguracji 1 1 2 1 3 2 4 1 5 1 6 1 Liczba konfiguracji (Number of Configurations) Maksymalny rozmiar pakietu danych przy komunikacji z punktem końcowym 0 (EP0). Dopuszczalne wartości: 8, 16, 32, 64 bajty Identyfikator producenta przypisany mu przez standard USB Identyfikator produktu określony przez wytwórcę wersji urządzenia w kodzie BCD Indeks łańcucha znakowego określającego wytwórcę Indeks do łańcucha znakowego określającego urządzenie Indeks do łańcucha znakowego określającego numer seryjny urządzenia Liczba możliwych konfiguracji urządzenia Nazwa Znaczenie i wartość Długość deskryptora (DescriptorLength) Typ deskryptora (Descriptor Type) Długość całkowita (TotalLength) Liczba interfejsów (NumInterfaces) konfiguracji (Configuration Value) Indeks opisu konfiguracji (Index) Liczba bajtów w deskryptorze konfiguracji Stała określająca typ deskryptora. Wartość 2 oznacza deskryptor konfiguracji Liczba bajtów określająca daną konfigurację. Jest to łączna długość deskryptorów: konfiguracji, interfejsów, punktów końcowych oraz specyficznych dla klasy lub producenta, zwracana przez urządzenie dla danej konfiguracji Liczba interfejsów dla danej konfiguracji urządzenia Liczba przypisana danej konfiguracji, stosowana jako argument rozkazu Set Configuration w celu wyboru tej konfiguracji Indeks deskryptora łańcuchowego opisującego daną konfigurację

50 USB. Uniwersalny interfejs szeregowy Tabela 3.2. Deskryptor konfiguracji ciąg dalszy 7 1 8 1 Nazwa Znaczenie i wartość Atrybuty (Attributes) Tabela 3.3. Deskryptor interfejsu 1 1 2 1 3 1 4 1 5 1 6 1 7 1 8 1 Maksymalna moc (MaxPower) Mapa bitowa charakteryzująca konfigurację: D7 urządzenie zasilane z magistrali USB, D6 urządzenie z własnym zasilaniem, D5 dostępna funkcja Remote Wakeup, D4-0 zarezerwowane, ustawione na 0 Maksymalny pobór prądu zasilania (w ma) z magistrali USB przez urządzenie pracujące w tej konfiguracji. Krokiem są tu 2 ma, stąd np. wartość 75 oznacza prąd 150 ma Nazwa Znaczenie i wartość Długość deskryptora (DescriptorLength) Typ deskryptora (Descriptor Type) interfejsu (InterfaceNumber) Ustawienie alternatywne (AlternateSetting) Liczba punktów końcowych (NumEndpoints) Klasa interfejsu (InterfaceClass) Podklasa interfejsu (InterfaceSubClass) Protokół interfejsu (InterfaceProtocol) Liczba bajtów w deskryptorze interfejsu Stała określająca typ deskryptora. Wartość 4 oznacza deskryptor interfejsu Liczba identyfikująca indeks w tablicy interfejsów w danej konfiguracji Wartość wykorzystywana do wyboru alternatywnych ustawień interfejsu identyfikowanego przez liczbę w polu Interfejsu Liczba punktów końcowych w tym interfejsie (z wyłączeniem punktu końcowego 0). Wartość równa 0 oznacza, że ten interfejs korzysta tylko z punktu końcowego 0 Kod klasy zgodnie z USB. Wartość 0 oznacza, że ten interfejs nie należy do żadnej z klas USB. Wartość 255 oznacza, że klasa interfejsu jest określona przez producenta Kod podklasy zgodnie z USB, związany z klasą określoną w polu Klasa interfejsu. Jeżeli Klasa interfejsu równa się 0, to wartość w tym polu też musi być 0 Kod protokołu zgodnie ze standardem USB, związany z wartościami na ch Klasa interfejsu i Podklasa interfejsu. Wartość 0 oznacza, że urządzenie w tym interfejsie nie stosuje protokołu specyficznego dla klasy. Wartość 255 oznacza, że urządzenie w tym interfejsie stosuje protokół producenta. 9 1 Interfejs (Interface) Indeks łańcucha znakowego opisującego dany interfejs

Rozdział 3. Deskryptory w urządzeniach USB 51 W tabeli 3.4 przedstawiono znaczenie poszczególnych pól deskryptora punktu końcowego. Uzupełnieniem dla wymienionego zestawu deskryptorów są deskryptory łańcuchowe zawierające dodatkowe informacje o urządzeniu w czytelnej dla użytkownika postaci tekstowej. Tabela 3.4. Deskryptor punktu końcowego 1 1 2 1 3 1 4 1 5 2 6 1 Nazwa Znaczenie i wartość Długość deskryptora (DescriptorLength) Typ deskryptora (Descriptor Type) Adres punktu końcowego (EndpointAddress) Atrybuty (Attributes) Maksymalny rozmiar pakietu (MaxPacketSize) Odstęp czasowy odpytywania (Polling interval) Liczba bajtów w deskryptorze punktu końcowego Stała określająca typ deskryptora. Wartość 5 oznacza deskryptor punktu końcowego Mapa bitowa określająca adres i własności punktu końcowego: bity 0 3 numer punktu końcowego, bity 4 6 zarezerwowane, ustawione na 0, bit 7 kierunek (ignorowany w przypadku punktu końcowego kontrolnego): punkt końcowy do zapisu (OUT), punkt końcowy do odczytu (IN). Mapa bitowa określająca atrybuty punktu końcowego po konfiguracji urządzenia wartością Configuration Value: bity 0 1 typ transferu, 00 transfer kontrolny, 01 transfer izochroniczny, 10 transfer masowy, 11 transfer przerwaniowy. Pozostałe bity są zarezerwowane Maksymalny rozmiar pakietu, rozumiany jako liczba bajtów danych w pakiecie, który punkt końcowy może wysłać lub przyjąć Odstęp czasowy pomiędzy kolejnymi odpytaniami punktu końcowego wyrażony w ms. W przypadku transferu izochronicznego: 1. W przypadku transferu przerwaniowego: 1 do 255. Pole ignorowane w przypadku transferów masowych i kontrolnych W tabeli 3.5 przedstawiono znaczenie poszczególnych pól w deskryptorze łańcuchowym.

52 USB. Uniwersalny interfejs szeregowy Tabela 3.5. Deskryptor łańcuchowy 1 1 2 1 3 zmienny Nazwa Znaczenie i wartość Długość deskryptora (DescriptorLength) Typ deskryptora (Descriptor Type) Identyfikator języka (Language Identifier LANGID) lub Łańcuch (String) Liczba bajtów w deskryptorze łańcuchowym Stała określająca typ deskryptora. Wartość 3 oznacza deskryptor łańcuchowy W przypadku deskryptora łańcuchowego o numerze 0 pole zawiera kody określające języki, w których dostępny jest łańcuch znakowy (tekst). W przypadku deskryptorów o numerach większych od 0, pole zawiera łańcuch znaków w Unicode stanowiących właściwy tekst Definicję deskryptorów sformułowałem na podstawie specyfikacji USB 1.x, natomiast interpretację znaczenia ich pól zweryfikowałem, korzystając z książki Dona Andersona USB System Architecture. Specyfikacja uzależnia maksymalny rozmiar pakietu od szybkości transmisji oraz rodzaju transferu. Dla urządzeń małej szybkości transmisji MaxPacketSize równy jest 8 bajtom, a transfery realizowane z takim urządzeniem są ograniczone tylko do kontrolnych i przerwaniowych. W urządzeniach pełnej i wysokiej szybkości transmisji dopuszczalne są wszystkie 4 rodzaje transferów, a MaxPacketSize zależy od wykonania danego punktu końcowego, przy czym nie może być większy od: 64 bajtów dla transferu kontrolnego przy pełnej lub wysokiej szybkości, 512 bajtów dla transferu masowego przy wysokiej szybkości (high speed), 64 bajtów dla transferów masowego i przerwaniowego przy pełnej szybkości (full speed), 1024 bajtów dla transferów przerwaniowego i izochronicznego przy wysokiej szybkości, 1023 bajtów dla transferu izochronicznego przy pełnej szybkości. Podane wyżej wartości można odczytać z tabeli 1.3 Porównanie transferów USB. 3.2. Deskryptory w urządzeniach zgodnych z USB 2.0 Deskryptory w urządzeniach zgodnych z wersją 2.0 standardu USB tylko nieznacznie różnią się od deskryptorów zgodnych z wersją 1.x. Oczywistą zmianą jest zawartość Wersja USB w deskryptorze urządzenia (tym razem znajdzie się tam 200 h) i, prawdę mówiąc, w większości przypadków będzie to zmiana jedyna.

Rozdział 3. Deskryptory w urządzeniach USB 53 Ponadto w wersji 2.0 wyraźnie zaznaczono, że domyślne ustawienie interfejsu urządzenia nie może wymagać pasma dla transferu izochronicznego. Jeżeli urządzenie udostępnia ten rodzaj transferu, musi on być wybrany stosownym ustawieniem interfejsu, z którym związany będzie co najmniej jeden deskryptor punktu końcowego. Niektóre urządzenia USB 1.x spełniają wymienione wymaganie. Oprócz tego w wersji 2.0 wprowadzono nowe, opcjonalne właściwości izochronicznych punktów końcowych dla pełnej szybkości transmisji. W deskryptorze punktu końcowego, tylko dla izochronicznych punktów końcowych (bity 0 = 0, bit 1 = 1 w polu Atrybuty), określono: rodzaj synchronizacji (kodowany na bitach 3 i 2 w polu Atrybuty), rodzaj wykorzystania (kodowany na bitach 5 i 4 w polu Atrybuty). Kolejna zmiana dotyczy odstępu czasowego odpytywania punktu izochronicznego kodowanego na polu Odstęp czasowy odpytywania w deskryptorze punktu końcowego. Zamiast 1 ms, odstęp ustawia się w jednostkach: 2 Interval 1 ms, gdzie Interval jest wartością w polu Odstęp czasowy odpytywania.