Universal Serial Bus
![]()
|
Universal Serial Bus to przemysłowy standard definiujący typ kabli, portów oraz protokołów łączności, komunikacji i zasilania.
USB powstało, aby ustandaryzować łącznośc w akcesoriach komputerowych (klawiaturach, drukarkach, kamerach, przenośnych odtwarzaczah mediów, itp.) z komputerami PC. Od wersji 1.1 pozwalają one też na zasilanie podłączonych urządzeń energią elektryczną.
Nowy standard szybko zastąpiła całą gamę portów szeregowych i równoległych.
Standard obecnie znajduje się pod kontrolą organizacji USB Inplementers Forum.
Ogólnie
Na chwile obecną na rynku istnieją 3 typu złącz USB:
- typ A,
- typ B,
- typ C.
Zazwyczaj uznaje się typ A jako standardowy, a B jako jego wariacje. Typ C jest najmłodszym i ma za zadanie ustandaryzować wszystkie rynki powiązane z portami USB. Oprócz tego mamy 3 typy wielkości:
- standardowy - podstawowy typ złącz wykorzystywany m.in w pamięciach USB flash, myszkach, czy klawiaturach, pasuje do typowych portów w komputerach,
- mini - typ wykorzystywany w starszych urządzeniach przenośnych ze względu na mniejszą powierzchnię niż typ standardowy,
- micro - standard, który zastąpił mini jako ten wykorzystywany w urządzeniach mobilnych.
Port USB standardowy zawsze pozwala nie tylko na przesył danych, a także zasilanie. Porty mini i micro typowo pozwalają na przesył danych oraz bycie zasilanym, ale na zasilanie podłączonych urządzeń już nie. Porty na to pozwalające oznaczane są jako On-The-Go (OTG).
Porty typu standardowego i mini mają zazwyczaj żywotność do 1500 podłączeń, a micro nawet 5000.
Oprócz tego wyróżniamy 5 standardów prędkości przesyłu danych:
- Low Speed (LS) - dostępny od wersji 1.0,
- Full Speed (FS) - dostępny od wersji 1.0,
- High Speed - dostępny od wersji 2.0,
- SuperSpeed - dostępny od wersji 3.0 (3.1 gen 1),
- SuperSpeed+ - dostępny od wersji 3.1 (3.1 gen 2).
Każde złącze może wspierać różne standardy, stąd wersja wcale nie informuje, że dany standard przesyłania będzie dostępny. Typy można poznać po kolorystyce, którą narzucają standardy (przykładowo SuperSpeed ii SuperSpeed+ są barwione na niebiesko).
Inaczej jak inne porty (np. Ethernet, czy HDMI), złącza USB są kierunkowe i zarówno pobieranie (upstream), jak i wysyłanie (downstream), pochodzą z jednego urządzenia typu host (choć nie zawsze). W ten sposób dostarczane jest zarówno zasilanie (jednak tylko poprzez piny pobierania), jak i przesył danych.
Historia
Rozwój standardu USB rozpoczął się w 1994, kiedy grupa firm (Compaq, DEC, IBM, Intel, Microsoft, NEC i Nortel) rozpoczęły poszukiwania rozwiązania pozwalającego na prostszy (i bardziej uniwersalny) sposób podłączania urządzeń do komputerów. Miało to pozwolić na zmniejszenie liczny dostępnych typów wejść oraz ułatwić konfigurację sprzętu.
Pierwszy przełom nastąpił w 1995 roku i ten rok uznaje się za początek powstania standardu USB. Rok później na rynku pojawił się standard USB 1.0. Microsoft dodał wsparcie dla niego do swojego systemu Windows 95 wraz z wydaniem OSR 2.1. Jednak dopiero standard 1.1, który pojawił się 2 lata później, stał się pierwszą ogólnie wykorzystywaną wersją USB. Rozwój wielkości pamięci przenośnych wymusił wzrost prędkości przesyłanych danych, co spowodowało pojawienie się w 2000 roku standardu oznaczonego jako 2.0, który w teorii pozwalał na do 40 razy szybszy przesył danych niż 1.1. Po 8 latach rozwój rynku wymusił kolejny wzrost prędkości i pojawił się standard '3.0, po którym podążyły 3.1.(2013) oraz 3.2(2017).
Wersje
Wersja | Data wyjścia | Maksymalna prędkość | Komentarz |
0.8 | Grudzień 1994 | Prerelease. | |
0.9 | Kwiecień 1995 | Prerelease. | |
0.99 | Sierpień 1995 | Prerelease. | |
1.0-RC | Wrzesień 1995 | Wersja testowa (Release Candidate). | |
1.0 | Styczeń 1996 | 12 Mbit/s (Full Speed) | |
1.1 | Sierpień 1998 | 12 Mbit/s (Full Speed) | |
2.0 | Kwiecień 2000 | 480 Mbit/s (High Speed) | |
3.0 | Listopad 2008 | 5 Gbit/s (SuperSpeed) | Nazywane też USB 3.1 Gen 1 i USB 3.2 Gen 1x1. |
3.1 | Lipiec 2013 | 10 Gbit/s (SuperSpeed+) | Nazywane też USB 3.1 Gen 2 i USB 3.2 Gen 2x1. |
3.2 | Wrzesień 2017 | 20 Gbit/s (SuperSpeed+) | Nazywane też USB 3.2 Gen 1x2 i USB 3.2 Gen 2x2. |
Specyfikacje zasilania
Nazwa | Data wyjścia | Maksymalna moc | Komentarz |
Battery Charging 1.0 | 8 marca 2007 | 7,5 W = 5 V, 1,5 A | |
Battery Charging 1.1 | 14 kwietnia 2009 | ||
Battery Charging 1.2 | 7 grudnia 2010 | 25 W = 5 V, 5 A | |
Power Delivery revision 1.0 (version 1.0) | 5 lipca 2012 | 100 W = 20 V, 5 A | Wykorzystuje protokół FSK po magistrali zasilającej (VBUS) |
Power Delivery revision 1.0 (version 1.3) | 11 marca 2014 | ||
Type-C 1.0 | 11 sierpna 2014 | 15 W = 5 V, 3 A | Nowy typ złącza oraz specyfikacja kabla. |
Power Delivery revision 2.0 (version 1.0) | 11 sierpna 2014 | 100 W = 20 V, 5 A | Wykorzystuje protokół BMC w trybie komunikacji (CC) w kablach ze złączem typu C. |
Type-C 1.1 | 7 maja 2015 | 15 W = 5 V, 3 A | |
Power Delivery revision 2.0 (version 1.1) | 7 maja 2015 | 100 W = 20 V, 5 A | |
Power Delivery revision 2.0 (version 1.2) | 25 marca 2016 | 100 W = 20 V, 5 A | |
Power Delivery revision 3.0 (version 1.1) | 12 stycznia 2017 | 100 W = 20 V, 5 A |
Standardy
USB 1.x
W styczniu 2995 pojawił się standard 1.0, który pozwalał na przesył danych w dwóch trybach - Low Speed (lub Low Bandwidth) o prędkości do 1,5 Mbit/s oraz Full Speed - 12 Mbit/s. Ze względu na czas oczekiwania oraz niską moc przesyłanego prądu, standard ten nie pozwala na wykorzystanie przedłużaczy, czy hubów. W miarę szybko na rynku pojawił się standard 1.1, przez co niewiele urządzeń wspiera standard 1.0.
Standardy USB 1.0 i 1.1 korzystały jedynie z 2 typów złącz - typu A oraz B o pełnej wielkości. Choć pojawił się też standard zminiaturyzowany złącza typu B, to standard powodował, że urządzenia z niego korzystające nie były widoczne przez urządzenie hostujące (np. komputer PC).
USB 2.0
Standard 2.0 przyniósł 3 tryb prędkości - oprócz LS i HS pojawił się takżeHigh Speed pozwalający na przesyłanie do 480 Mbit/s. Jednakże ze względu na ograniczenia, prędkość sygnału wynosiła maksymalnie do około 280 Mbit/s.
Część z innych modyfikacji wprowadzonych wraz ze standardem 2.0:
- złącza typu mini A, mini B i micro B,
- zaokrąglona faza w złączach typu mini B,
- OTG (On-The-Go),
- Battery Charging Specification.
USB 3.0
Standard USB w wersji 3.0 przyniósł kolejny tryb przesyłu danych - SuperSpeed pozwalający na osiągnięcie do 5 Gbit/s. Jednakże ze względu na problemy z szyfrowaniem 8b/10b w praktyce nie można osiągnąć przesyłu wyższego niż 4 Gbit/s, a specyfikacja ustala, że 3,2 Gbit/s jest wartością maksymalną.
Aby odróżnić ten standard od starszych, złącze oraz port są w kolorze niebieskim (wcześniej był to zazwyczaj kolor czarny, szary lub biały).
Nowy standard zwiększa także maksymalne natężenie wydawanego przez port prądu - z 150 do 900 mAh. A natężenie prądu podczas ładowania z urządzenia do tegoza
USB 3.1
W styczniu 2013 standard 3.0 został rozszerzony i uzyskał wsparcie dla przesyłu danych o prędkości SuperSpeed+ (lub SuperSpeed USB), czyli w teorii nawet do 10 Gbit/s przy wykorzystaniu jednego kanału przesyłowego.
Standard SuperSpeed+ otrzymał nazwę USB 3.1 Gen 2. A poprawiony SuperSpeed - 3.1 Gen 1.
USB 3.2
Standard USB 3.2 jeszcze bardziej rozwija prędkości uzyskiwane przy wykorzystaniu połączeń USB. Wraz z tym standardem rozwinięto poprzednie tryby SuperSpeed oraz superSpeed+, co, wraz z nowymi, dało aż 4 tryby SS:
- USB 3.2 Gen 1x1 - standard SuperSpeed o specyfikacji takiej samej jak w USB 3.0 i USB 3.1 Gen 1 (3.1),
- USB 3.2 Gen 1x2 - SuperSpeed+ o specyfikacji takiej samej jak w standardzie USB 3.1 Gen 2 (USB 3.1),
- USB 3.2 Gen 1x2 - standard SuperSpeed+ o prędkości do 10 Gbit/s, ale przy wykorzystaniu 2 kanałów przesyłu danych,
- USB 3.2 Gen 2x2 - szybszy SuperSpeed+ pozwalający na przesył maksymalnie o prędkości 20 Gbit/s, także wykorzystuje 2 kanały.
Klasy urządzeń
Funkcjonalność podłączonych urządzeń jest definiowana przesz ich klasy (oraz sterowniki lub moduły kernela/oprogramowania). Klasy definiowane są poprzez kod klasy wysyłany do urządzenia z funkcją hosta. Host następnie ładuje odpowiednie moduły oprogramowania.
Kod/Klasa | Typ urządzenia | Opis | Komentarz |
00h | Urządzenie | Nieokreślone | Nieokreślone urządzenie. Deskryptory interfejsu determinują klasę i potrzebę dodatkowego oprogramowania. |
01h | Interfejs | Dźwięk | Głośnik, mikrofon, karta dźwiękowa, MIDI |
02h | Urządzenie Interfejs |
Komunikacja i kontrola CDC | Modem, karta sieciowa (Ethernet), karta WiFi, RS232. Używane razem z 0Ah. |
03h | Interfejs | Urządzenie wprowadzające typu HID | Klawiatura, myszka, dżojstik |
05h | Interfejs | Urządzenie wprowadzające typu PID | Dżojstik |
06h | Interfejs | Obraz (PTP oraz MTP) |
Kamera, skaner |
05h | Interfejs | Drukarka | Drukarka laserowa, drukarka atramentowa, maszyna CNC |
08h | Interfejs | Pamięć masowa (MSC oraz UMS) |
Pamięć USB, czytnik kart pamięci, odtwarzacz audio, kamera cyfrowa, dysk zewnętrzny USB |
09h | Urządzenie | Hub USB | Hub USB |
0Ah | Interfejs | CDC-Data | Wykorzystywane z klasą 02h |
0Bh | Interfejs | Inteligentne karty (Smart Card) |
Czytnik inteligentnych kart |
0Dh | Interfejs | Zabezpieczenie danych | Skaner linii papilarnych |
0Eh | Interfejs | Wideo | Kamera internetowa |
0Fh | Interfejs | Urządzenie monitorujące zdrowie (PHDC) |
Pulsometr |
10h | Interfejs | Dźwięk i wideo (AV) |
Kamera internetowa, telewizor, monitor |
11h | Urządzenie | Bilbord | Alternatywne połączenie urządzenia z portem USB typu C. |
DCh | Urządzenie Interfejs |
Urządzenie diagnostyczne | Urządzenie testujące ze złączem USB |
E0h | Interfejs | Kontroler bezprzewodowy | Karta Bluetooth, Microsoft RNDIS |
EEh | Interfejs | Zależne od aplikacji | Mostek IrDA, Urządzenie testujące i mierzące (USBTMC), aktualizacja oprogramowania (USB DFU) |
EFh | Urządzenie Interfejs |
Różne | Urządzenia ActiveSync |
FFh | Urządzenie Interfejs |
Zależne od producenta | Różne urządzenia wymagające sterowników/modułów oprogramowania od producenta. |
Pamięć masowa
- Główna strona: Pamięć masowa USB
Tryb, w którym do podłączenia urządzenia USB do urządzenia hostującego wykorzystywany jest standard urządzeń typu MSC oraz UMS (08h). Działanie tego typu klasy jest podobne do działania standardów typu PATA, IDE, czy SATA, jednak USB posiada jedną zaletę brakującą tym standardom - urządzenie MSC lub UMS może zostać podłączone lub odłączone bez potrzeby restartu całego systemu na urządzeniu hostującym.
Urządzenie podłączone w tym trybie "oddaje" dostęp do pamięci urządzeniu hostującemu - pamięć jest z niego odmontowana (a więc staje się niedostępna), a następnie zamontowana na urządzeniu hostującym (co daje mu dostęp do całej udostępnionej pamięci).
Klasę tę wykorzystywano w systemie Android do wersji 4.0 Ice Cream Sandwich. Nieoficjalnie, na urządzeniach które na rynku pojawiły się z wersją 4.0 lub starszą, opcja ta dostępna jest przynajmniej do Androida 4.4 KitKat, a może i w nowszych wersjach.
Podobne zastosowanie jak ta klasa mają porty typu eSATA, ExpressCard, FireWire oraz Thunderbolt.
Picture Transfer Protocol
- Główna strona: Picture Transfer Protocol
Protokół PTP jest protokołem pozwalającym jedynie na przesyłanie obrazów między urządzeniem hostującym a podłączonym do niego urządzeniem USB. Większość systemów nie wymaga dodatkowych sterowników, aby połączyć urządzenie w tym trybie.
Pamięć urządzenia połączonego jako USB PTP, nie jest na nim odmontowywana, tak więc dostęp do niej jest możliwy w tym samym momencie na nim, jak i nie hoście.
Tryb PTP jest dostępny także na urządzeniach z systemem Android.
Media Transfer Protocol
- Główna strona: Media Transfer Protocol
Protokół MTP to rozwinięta wersja PTP. Jego działanie jest praktycznie identyczne, jednak nie ma ograniczenia co do rodzaju przesyłanych i udostępnianych plików.
Protokół ten jest częścią frameworka Windows Media oraz kluczową częścią usługi DRM oznaczonej jako WMDRM10-PD.
Tryb MTP zastąpił w systemie Android MSC/UMS. Pojawił się wraz z systemem w wersji 4.1 Jelly Bean, jako że wraz z tą wersją pojawiły się na rynku pierwsze urządzenia ze zunifikowaną pamięcią użytkownika (/data i /data/media).
Jego następcą miał być protokół Zune, jednak korzystał z niego jedynie system Windows Phone 7.
Urządzenie wprowadzające typu HID
HID (ang. Human interface devices) to urządzenia wskazujące. Są to przykładowo tablety (graficzne), klawiatury, myszki lub dżojstiki, które wcześniej wykorzystywały inne typy złączy (np. PS2, MIDI).
Standard USB HID jest kompatybilny ze standardem PS2, dzięki czemu, przy użyciu adaptera, możliwe jest podłączenie urządzenia jednego standardu do drugiego.
Device Firmware Upgrade
DFU to mechanizm pozwalający na łatwe zaktualizowanie urządzenia podłączonego kablem USB. Jego działanie zależy od samego producenta oraz urządzenia. W tym trybie urządzenie podłączone pozwala na programowanie w trybie PROM.
Tryb ten może także łatwo pozwolić na oszukanie hosta. Tzw. BadUSB pozwala na wykorzystanie kontrolera pamięci typu USB, aby imitować inny typ klasy.
Typy portów i wtyczek
Kompatybilność między wtyczkami a portami różnych standardów USB:
WTYCZKA | ||||||||||||
![]() |
![]() |
![]() |
![]() |
![]() |
![]() |
![]() |
![]() |
![]() |
![]() | |||
Typ A | Typ A SuperSpeed |
Typ B | Typ B SuperSpeed |
Typ A mini |
Typ B mini |
Typ A micro |
Typ B micro |
Typ B micro SuperSpeed |
Typ C | |||
P O R T |
![]() |
Typ A | Tak | Bez wsparcia dla SuperSpeed |
Nie | Nie | Nie | Nie | Nie | Nie | Nie | Nie |
![]() |
Typ A SuperSpeed |
Bez wsparcia dla SuperSpeed |
Tak | Nie | Nie | Nie | Nie | Nie | Nie | Nie | Nie | |
![]() |
Typ B | Nie | Nie | Tak | Nie | Nie | Nie | Nie | Nie | Nie | Nie | |
![]() |
Typ B SuperSpeed |
Nie | Nie | Bez wsparcia dla SuperSpeed |
Tak | Nie | Nie | Nie | Nie | Nie | Nie | |
![]() |
Typ A mini |
Nie | Nie | Nie | Nie | Tak* | Nie | Nie | Nie | Nie | Nie | |
![]() |
Typ AB mini |
Nie | Nie | Nie | Nie | Tak* | Tak* | Nie | Nie | Nie | Nie | |
![]() |
Typ B mini |
Nie | Nie | Nie | Nie | Nie | Tak | Nie | Nie | Nie | Nie | |
![]() |
Typ AB micro |
Nie | Nie | Nie | Nie | Nie | Nie | Tak | Tak | Nie | Nie | |
![]() |
Typ B micro |
Nie | Nie | Nie | Nie | Nie | Nie | Nie | Tak | Nie | Nie | |
micro B SuperSpeed | Typ B micro SuperSpeed |
Nie | Nie | Nie | Nie | Nie | Nie | Nie | Bez wsparcia dla SuperSpeed |
Tak | Nie | |
![]() |
Typ C | Nie | Nie | Nie | Nie | Nie | Nie | Nie | Nie | Nie | Tak |
*Istnieją, ale nowe urządzenia i kable z nich korzystające nie są już wspierane lub certyfikowane.
WTYCZKA A | ||||||||||||
![]() |
![]() |
![]() |
![]() |
![]() |
![]() |
![]() |
![]() | |||||
Typ A | Typ B | Typ A mini |
Typ B mini |
Typ A micro |
Typ B micro |
Typ B micro SuperSpeed |
Typ C | |||||
W T Y C Z K A B |
![]() |
Typ A | Tak* | Tak | Tak* | Tak | Tak* | Tak | Tak | Tak | ||
![]() |
Typ B | Tak | Nie | Tak** | Nie | Tak* | Nie | Nie | Tak | |||
![]() |
Typ A mini |
Tak* | Tak** | Nie | Tak** | Nie | Tak* | Nie | Nie | |||
![]() |
Typ B mini |
Tak | Nie | Tak** | Tak* | Tak* | Nie | Nie | Tak | |||
![]() |
Typ A micro |
Tak* | Tak* | Nie | Tak* | Nie | Tak | Nie | Nie | |||
![]() |
Typ B micro |
Tak | Nie | Tak* | Nie | Tak | Nie | Nie | Tak | |||
![]() |
Typ B micro SuperSpeed |
Tak | Nie | Nie | Nie | Nie | Nie | Nie | Tak | |||
![]() |
Typ C | Tak | Tak | Nie | Tak | Nie | Tak | Tak | Tak |
*Kable tego typu są niestandardowe, produkowane jedynie na potrzeby danego urządzenia.
**Istnieją, ale nowe urządzenia i kable z nich korzystające nie są już wspierane lub certyfikowane.