USB Universal Serial Bus OPRACOWAŁ: TOMASZ KARLA 1
Plan wykładu Czym jest USB? Potrzeba standaryzacji Podstawowe właściwości interfejsu USB USB 1.1/2.0 Schemat elektryczny Stany logiczne magistrali Kodowanie bitów Ramki Model komunikacyjny Transfery USB Zarządzanie magistralą USB Stany urządzenia USB Protokół komunikacyjny Wykrywanie błędów i kontrola transmisji Inne zagadnienia Wersje standardu Wtyczki Różnice między USB 1.1/2.0 i 3.0/3.1 Zastosowania Konsumenckie Przemysłowe 2
Czym jest USB? USB Universal Serial Bus (uniwersalna szeregowa magistrala) Standard definiujący kable, złącza i protokoły komunikacyjne w magistrali służącej do komunikacji i jako źródło zasilania dla urządzeń elektronicznych. Standard opracowany Opracowany w 1994 przez firmy Compaq, DEC, IBM, Intel, Microsoft, NEC, and Nortel. Obecnie rozwijany przez organizację non-profit USB Implementers Forum. 3
Potrzeba standaryzacji Przed USB: Peryferia podłączane przez porty szeregowe lub równoległe, często wykorzystywano także autorskie rozwiązania (dedykowane kontrolery I/O) Każdy kontroler wymagał przypisania odpowiednich przerywań, obszaru pamięci I/O oraz kanału DMA (Direct Memory Access) co znacznie ograniczało ilość możliwych do podłączenia peryferii Większość portów pozwalała na podłączenie jednego urządzenia Wysokie koszty związane z dużą ilością niestandardowych rozwiązań 4
Podstawowe właściwości interfejsu USB Gorące podłączenie możliwość podłączania urządzeń bez potrzeby wyłączania hosta oraz automatyczne wykrywanie i konfigurowanie podłączonych urządzeń bez potrzeby ingerencji użytkownika Jeden typ złącza wszystkie urządzenia podłączane są przez 4 kontaktowe złącze ( dwa kontakty dla linii danych, dwa kontakty zasilania) Duża liczba podłączanych urządzeń wykorzystując huby USB do jednego kontrolera USB można podłączyć wiele urządzeń. Różne szybkości transmisji od 1,5 Mb/s do 10 Gb/s Zasilanie USB można wykorzystywać do zasilania urządzeń. Najczęściej wykorzystywane jest do tego celu USB 1.1/2.0, które pozwala na zasilanie napięciem 5V o maksymalnym natężeniu 500mA. Najnowsza odmiana zgodna ze standardem USB Power Delivery 2 pozwala na zasilanie napięciem 20V o natężeniu 5A 5
Podstawowe właściwości interfejsu USB Protokół komunikacyjny, detekcja błędów wykorzystywany jest pakietowy protokół komunikacyjny. Żądania przesłania danych dzielone są na transakcje, które zbudowane są z pakietów: kontrolnego, danych i potwierdzenia. Pakiety są zabezpieczone sumą kontrolną i transakcje są potwierdzane przez odbiorcę. W wypadku wykrycia błędu możliwe jest powtórzenie transakcji. Transfery USB w standardzie zdefiniowane są 4 różne transfery: transfer kontrolny (control transfer), przerywaniowy (interrupt transfer), masowy (bulk transfer) i izochroniczy (isochronic transfer) Zasoby systemowe w odróżnieniu od architektur ISA, EISA oraz PCI nie wymagane są przerywania (IRQ) ani deklaracja pamięci I/0. Niewielki koszt konstrukcji i implementacji 6
Schemat elektryczny USB 2.0 Łącze transmisyjne oparte na obwodzie różnicowym Zasilanie przekazywane liniami Vcc (5V) i GND (masa) Trójstanowy nadajnik można zablokować sygnałem OE co oznacza blokadę portu Zmiana napięcia na liniach danych względem masy służy do sygnalizowania podłączenia lub odłączenia urządzeń, resetu urządzeń, początku (SOP) i końca (EOP) pakietu Do transmisji low-speed (1,5 Mb/s) można użyć kabli nieskręcanych i nieekranowanych, wyższe prędkości wymagają pary kabli skręcanych i ekranowanych 7
Stany logiczne magistrali USB 1.1/2.0: 3 rodzaje prędkości transferu: niska prędkość (low speed ) 1,5 Mb/s pełna prędkość (full speed) 12 Mb/s wysoka prędkość (high speed) 480 Mb/s wszystkie urządzenia podłączane przez 4 kontaktowe złącza wszystkie urządzenia wysokiej prędkości najpierw są podłączane jako urządzenia pełnej prędkości 8
Kodowanie bitów Kodowanie NRZI (Non Return to Zero Inverted): - Na początku każdego bitu o wartości logicznej 0 następuje zmiana sygnału - Po każdych 6 kolejnych bitach o wartości 1 wstawiany jest bit o wartości 0 - Po odebraniu sygnału i rozpoznaniu stanu bitów nadmiarowe bity są usuwane Zastosowanie takiego kodowania eliminuje potrzebę przesyłania sygnału zegarowego 9
Ramki Dane przekazywane są w ramkach o czasie trwania 1 ms dla małej i pełnej szybkości oraz mikroramkach dla wysokiej prędkości transmisji Czas pomiędzy dwoma kolejnymi pakietami SOF (Start Of Frame) nazywany jest ramką. Pakiet SOF oznacza początek ramki i zawiera 11 bitów danych i 5 bitów CRC. Dane reprezentują kolejne numery ramek zaś licznik ulega przepełnieniu co 2048 ms. 10
Model komunikacyjny część programowa Sterownik urządzenia (klienta) - pośredniczy między aplikacją a sterownikiem USB. Przekazuje do niego żądania transferu zwane IRP (I/O Request Packet). Parametrami IRP są m. in. adres urządzenia, numer punktu końcowego, typ operacji(zapis/odczyt), typ transferu czy ilość danych. Sterownik USB przygotowuje wykonanie transferu zleconego przez sterownik klienta. Dzieli dane na transakcje dopasowane do rozmiaru bufora punktu końcowego. Dane dotyczące jego specyfikacji np. wielkości są przesyłane do sterownika USB w czasie procesu enumeracji w ramach deskryptorów. Sterownik host-kontroler generuje ramki zgodnie otrzymanymi danymi. W ramkach znajdują się poszczególne transakcje z dołączonymi do nich deskryptorami transferu. Zgodnie z nimi kontroler wykonuje odpowiednie transakcje. Po stronie urządzenia jest zazwyczaj specjalizowanym oprogramowaniem systemu mikroprocesorowego, na którym oparto kontroler protokołu. 11
Model komunikacyjny część sprzętowa Host kontroler specjalizowany kontroler komunikacyjny wykonujący kolejne transakcje zgodnie z opisem zawartym w deskryptorze transferu oraz regułami pakietowego protokołu komunikacyjnego USB. Hub główny koncentrator wewnątrz stacji HOST, udostępnia zwykle kilka portów (co najmniej 2). Po stronie urządzenia część sprzętowa składa się z układu nadawczo-odbiorczego oraz specjalizowanego układu SIE (Serial Interface Engine). Kontroler protokołu jest zazwyczaj mikrokontrolerem, systemem mikroprocesorowym lub DSP (Digital Signal Processor) 12
Transfery USB Przekazywanie danych pomiędzy aplikacją a urządzeniem polega na odczycie lub zapisie danych do odpowiednich buforów urządzenia. Bufory te nazywane są punktami końcowymi. Każdy punkt końcowy określany jest przez kierunek przepływu danych (IN- z punktu końcowego do hosta, OUT z hosta do punktu końcowego), rodzaj transferu realizowany z danym punktem oraz maksymalny rozmiar pakietu danych (MaxPacketSize). System USB otwiera między poszczególnymi punktami końcowymi a aplikacją tzw. wirtualne kanały komunikacyjne (pipe). Cztery tryby transferu: Kontrolny (control transfer) Przerywaniowy (interrupt transfer) Izochroniczny (isochronous transfer) Masowy (bulk transfer) Każdy z wymienionych trybów transferu wymaga innego kanału komunikacyjnego. 13
Transfery USB Transfer masowy przewidziany do komunikacji z urządzeniami, do których zapisuje się lub odczytuje się duże ilości danych. Czas i regularność przekazywania danych nie są krytyczne. Ważna jest natomiast kontrola przekazywanych danych. Przerywaniowy - przewidziany do komunikacji z urządzeniami, do których zapisuje się lub odczytuje się niewielkie bloki danych jednak trzeba je wykonywać regularnie w ustalonych odstępach czasowych. Przykładem może być myszka i klawiatura. Izochroniczny przewidziany do komunikacji z urządzeniami, do których zapisuje się lub odczytuje się bardzo duże ilości danych przy czym krytyczna jest regularność dostarczanych danych. Kontrola przekazywanych danych nie jest ważna. Przykładem jest streamowanie audio. Kontrolny musi być obsługiwany przez każde urządzenie USB ponieważ jest przeznaczony do jego konfiguracji oraz nadzoru. Transfery przerywaniowy i izochroniczny mają zarezerwowane pasmo 90% trwania ramki, 10% ramki zarezerwowane jest na transfery kontrolne. Transfery masowe wykonywane są tylko w wypadku wolnego pasma. 14
Zarządzanie magistralą USB Wszystkie transfery USB inicjowane są i odbywają się pod kontrolą hosta. Host usiłuje jednocześnie realizować transfery z wieloma urządzeniami, tak aby jedno urządzenie nie zablokowało całej magistrali. Priorytet mają transfery przerywaniowe i izochroniczne. Kontroler hosta działając w myśl zasady usilnych starań (best effort) stara się w możliwie najkrótszym czasie realizować transfery. 15
Stany urządzenia USB 1. Podłączenie urządzenia do magistrali Włączenie zasilania 2. Urządzenie zasilone Reset urządzenia Przypisanie urządzeniu adres 0 3. Urządzenie w stanie domyślnym Komunikacja host kontrolera z punktem końcowym 0 w celu skonfigurowania urządzenia Przypisanie wolnego adresu z puli 1-127 4. Urządzenie zaadresowane Odczyt deskryptorów Konfiguracja urządzenia 5. Urządzenie skonfigurowane 16
Protokół komunikacyjny Transakcje zbudowane są z pakietów, przy czym typowa transakcja składa się z : Pakietu tokena Pakietu danych Pakietu potwierdzenia Pakiet tokena informuje o rodzaju transakcji. Pakiet danych służy do przesyłania danych. Pakiet potwierdzenia jest częścią mechanizmu kontrolującego poprawność przesyłanych danych. 17
18
Wykrywanie błędów i kontrola transmisji Kontrola poprawności pakietów pola PID oraz CRC Ograniczenie czasowe oczekiwania na odpowiedź Przełączanie kolejnych pakietów danych Wykrywanie transakcji występujących po zakończeniu ramki Wykrywanie braku aktywności magistrali 19
Inne zagadnienia Deskryptory służą do identyfikacji i konfiguracji urządzeń. Przedstawiają podstawową konfigurację urządzenia (m. in. wielkość buforów punktów końcowych) oraz dostarczają informacji o samym urządzeniu np. obsługiwaną wersję USB czy też rodzaj urządzenia. Wykrywanie urządzeń i enumeracja - proces ten jest jednym z etapów podłączenia i konfiguracji urządzeń. Sprawdzane jest, czy są wystarczające zasoby aby możliwe było podłączenie kolejnego urządzenia, przypisuje mu się unikalny adres oraz odczytuje jego konfigurację oraz informacje. Rozkazy standardowe 11 zdefiniowanych rozkazów, służących do nadzorowania pracy urządzeń podłączonych do magistrali USB. Zestaw ten może być uzupełniony o dodatkowe rozkazy określone przez producenta sprzętu 20
Wersje standardu Standardy wg prędkości: USB 1.1 sierpień 1998 - oferuje prędkości Low Speed (1,5 Mb/s) oraz Full Speed (12 Mb/s) USB 2.0 kwiecień 2000 - szybsza wersja standardu USB 1.1 o prędkości High Speed (480 Mb/s). Kompatybilna z USB 1.1 USB 3.0 listopad 2008 nowa odmiana standardu, znacznie szybsza oferująca prędkość SuperSpeed (5 Gb/s), pozwala na zasilanie urządzeń o większej mocy, ostateczna oficjalna nazwa standardu to USB 3.1 Gen 1 USB 3.1 lipiec 2013 ulepszona odmiana standardu USB 3.0 oferująca prędkość SuperSpeed+ (10 Gb/s), ostateczna oficjalna nazwa standardu to USB 3.1 Gen 2 Standardy wg mocy zasilania: USB Battery Charging 1.2 5V, 1,5A USB Type-C 1.0-5V, 3A USB Power Delivery 2 (v1.1) - 20V, 5A 21
Wtyczki 22
USB 3.0/3.1 i USB 1.1/2.0 - różnice Dodatkowe linie sygnałowe, łącznie 8 w porównaniu do 4. Większe dopuszczalne obciążenie prądowe (900mA w porównaniu do 500mA). Dodatkowe mechanizmy związane z obsługą urządzeń SuperSpeed/SuperSpeed+. Nowa, symetryczna wtyczka typu C. Selektywna komunikacja z wybranymi urządzeniami poprzez dodatkowe mechanizmy routingu danych. Dwa nowe typy pakietów: Isochronous Timestamp Packet (ITP) oraz Link Management Packet (LMP) Dual-Simplex zamiast Half-Duplex 23
Zastosowania konsumenckie 24
Zastosowania konsumenckie Używany niemal w wielu urządzeniach, zarówno do zasilania jak i przesyłania danych: Urządzenia multimedialne telefony komórkowe, odtwarzacze MP3, DVD, Blu-ray Peryferia komputerowe myszki, klawiatury, drukarki, kamery i inne akcesoria Pamięci masowe przenośne dyski twarde, NAS, pendrive Urządzenia specjalizowane kasy fiskalne, czytniki kart kodowanych, urządzenia muzyczne, urządzenia graficzne Adaptery z dodatkowymi układami adaptery interfejsów: USB->Wifi, USB->Ethernet, USB->RS232, USB->Bluetooth zewnętrzne układy: karty graficzne USB, karty muzyczne USB, karty do przechwytywania obrazu, tunery DVBT 25
Zastosowania przemysłowe 26
Zastosowania przemysłowe Główne zastosowania USB w przemyśle dotyczą: podłączania pamięci masowych do urządzeń przemysłowych (zapis danych z urządzeń takich jak oscyloskopy czy multimetry), używania USB jako interfejsu do konfiguracji urządzeń (programatory mikrokontrolerów), przesyłania strumieni danych audio i/lub wideo (kamery przemysłowe) podłączania urządzeń komunikacyjnych (radiomodemy, modemy GSM) zasilanie małych urządzeń W przemyśle najpopularniejszą wersją USB są interfejsy USB 1.1/2.0, który wystarcza w większości zastosowań przemysłowych ale powoli wprowadzane są też USB w wersji 3.0/3.1, głównie tam gdzie wymagane są duże przesyły danych (pamięci masowe oraz strumieniowanie danych). 27
Bibliografia Wojciech Mielczarek, USB. Uniwersalny interfejs szeregowy, Wydawnictwo Helion, 2005 http://www.usb.org/developers/docs/usb20_docs/ http://www.moddiy.com/pages/usb-2.0-%7b47%7d-3.0-connectors-%26-pinouts.html http://www.gaw.ru/pdf/interface/usb/usb%203%200_english.pdf 28
Dziękuję za uwagę 29