Podręcznik

2. Typy magistral

2.7. USB

Magistrala USB (ang. Universal Serial Bus) doczekała się już wielu odsłon. W tabeli 2 przedstawione są poszczególne standardy wraz z maksymalną przepustowością.

Tabela 2. Standardy  USB

Interfejs Rok wprowadzenia Przepustowość
USB 1.0  1994 1.5 Mbit/s
12 Mbit/s
USB 2.0 2001 480 Mbit/s
USB 3.0 2007 4.8 Gbit/s
USB 3.1 2013 10 Gbit/s

 

Poszczególne standardy różnią się nie tylko przepustowością, ale także właściwościami elektrycznymi i sposobem transmisji danych. Najstarszym jest standard USB 1.0. Definiuje on dwie prędkości transmisji 1.5 Mbit/s i 12 Mbit/s. Okablowaniem może być zwykła skrętka. USB 2.0 wprowadza jedną wyższą prędkość 480 Mbit/s. Tu kabel musi być już wyższej jakości, ekranowany. Natomiast elektrycznie i pod względem protokołu transmisji standardy te są w pełni kompatybilne. Magistrala USB ma strukturę drzewiastą (Rys. 4). Do magistrali mogą być dołączone urządzenia końcowe lub koncentratory. 

Rys. 4. Drzewiasta struktura magistrali USB

Poprzez dołączenie dodatkowego koncentratora uzyskujemy nowe węzły ze złączami do przyłączania dalszych urządzeń końcowych lub innych koncentratorów. Na najwyższym poziomie zawsze musi występować jeden główny sterownik magistrali. Maksymalnie możemy dołączyć 127 urządzeń na 7 poziomach. Każdy z odcinków magistrali , łączący bezpośrednio dwa urządzenia, ma dwie linie wykorzystywane do przesyłania zasilania (Vcc, GND) i dwie linie sygnałowe do transmisji danych (D+, D-) (Rys. 5). Magistralą dostarczane jest zasilanie dla urządzeń bezpośrednio do niej dołączonych. Ponadto każde urządzenie może mieć własne źródło zasilania.

 
Rys. 5. Kabel magistrali USB 1.0, 2.0

Dane wysyłane na magistralę dzielone są na pakiety i kodowane metodą NRZI (ang. non-return-to-zero inverted - odwrotny kod bez powrotu do zera). W tej metodzie kodowania jedynka jest reprezentowana przez brak zmiany poziomu, a zero przez zmianę poziomu (Rys. 6). Jest to kod samosynchronizujący się, nie trzeba oddzielnie przesyłać impulsów zegarowych. Ciąg bitów, przed zakodowaniem NRZI, jest modyfikowany przez wstawienie zera po każdej wykrytej sekwencji 6 jedynek. W odbiorniku, po rozkodowaniu, zera są usuwane. Na początku każdego wysyłanego na magistralę pakietu jest doklejany bajt synchronizacji (sekwencja 7 zer zakończona jedynką). Przesyłane magistralą bity danych są reprezentowane przez sygnały różnicowe.

 
Rys. 6. Kodowanie metodą NRZI

Dane po magistrali USB mogą być przesyłane w jednym z czterech trybów. Przekazy sterujące mają zapewnić wymianę, pomiędzy komputerem a urządzeniem USB, poleceń i informacji o konfiguracji lub o stanie urządzenia. W tym przypadku:
•    pierwszym z pakietów jest zapowiedź operacji jaka ma być wykonana na magistrali USB,
•    po niej występuje zwykle przesłanie kilku pakietów danych (w zapowiedzianym kierunku),
•    operację kończy pakiet potwierdzający przyjęcie danych.
Przekaz izochoryczny jest przekazem przenoszącym tylko strumień danych i jest jednokierunkowy. W tym przypadku gwarantowane są:
•    dostęp bez opóźnień ponad wyznaczony limit,
•    stała częstotliwość przepływu danych w potoku,
•    jeśli wykryty zostanie błąd, nie jest podejmowana próba ratowania danych przez ponowienie transmisji zniekształconego pakietu.
Przekazy przerwaniowe pozwalają urządzeniom USB od czasu do czasu, w wyznaczonych okresach obsługi, przesyłać niewielkie porcje danych. Dane przesyłane w tym trybie tworzą jednokierunkowy strumień danych płynący zawsze do komputera macierzystego. Gwarantowane są:
•    nie przekraczanie maksymalnego czasu obsługi,
•    ponowienie próby przesłania danych jeśli, na skutek przypadkowego błędu, bieżący przekaz nie powiódł się.
Przekazy masowe zostały wprowadzone z myślą o urządzeniach, które przesyłają relatywnie duże porcje danych, ale dopuszczają dużą zmienność czasu transmisji. Gwarantowane są:
•    dostęp do magistrali tylko w ramach aktualnie dostępnego pasma,
•    ponowienie próby przesłanie danych jeśli, na skutek przypadkowego błędu, bieżący przekaz nie powiódł się,
•    gwarancja dostarczenia danych, ale bez limitu dopuszczalnego opóźnienia.
Standard USB 3.0 używa dodatkowych 5 kabli – dwie różnicowe linie transmisyjne i dodatkowe uziemienie (Rys. 7). Te dodatkowe linie stanowią odrębną magistralę, która pracuje równolegle do starego okablowania USB 2.0 i 1.0. W ten sposób zachowana jest pełna kompatybilność ze starszym standardem. Dodatkowe 5 kabli jest wyprowadzone we wtyczkach USB 3.0. W standardzie USB 3.0 jeden kanał może jednocześnie wysyłać i odbierać dane (w USB 2.0 jest to niemożliwe). Taki tryb transmisji jest nazywany dual simplex. Inną ważną zmianą jest to, że USB 3.0 jest asynchroniczne. Pakiety nie są już wysyłane do każdego urządzenia. Kontroler wysyła je w trybie punkt-z-punktem (asynchronicznie) tylko do właściwego urządzenia, wykorzystując informacje zawarte w nagłówkach pakietów. Urządzenia nie muszą więc ciągle sprawdzać, czy dane są dla nich przeznaczone. USB 3.0 zapewnia przepustowość do 4.8 Gbps. Zwiększono również moc, którą mogą być zasilane urządzenia odbiorcze.

 
Rys. 7. Kabel magistrali USB 3.0

Obecnie najszybszym standardem USB jest specyfikacja 3.1 gen 2 (tabela 3). Zwiększono tu prędkość transmisji danych do 10 Gbps.

Tabela 3. USB 3.1

   interfejs   Maks.
szybkość
Maks. moc wyjściowa Kierunek przepływu mocy Konfiguracja kabli
USB 1.1   12Mbps  N/A N/A Typ A do Typu B
USB 2.0 480Mbps 5V, 1.8A Host do urządzenia peryferyjnego Typ A do Typu B
USB 3.0 / USB 3.1 gen 1 5Gbps 5V, 1.8A Host do urządzenia peryferyjnego Typ A do Typu B
USB 3.1 / USB 3.1 gen 2 10Gbps 20V, 5A Dwukierunkowy / kompatybilny z host do urządzenia peryferyjnego Typ C z obu końców, odwracalna orientacja wtyczki / Typ A do Typu C (kompatybilny)

 

Podstawowe właściwości specyfikacji USB 3.1 Gen 2  to:
•    Wydana została 26 lipca 2013 roku.
•    USB 3.1 podwaja szybkość USB 3.0 do 10 Gb/s (teraz nazywa się SuperSpeed+ lub SuperSpeed USB 10 Gbps), czyniąc go tak szybkim jak oryginalny Thunderbolt.
•    USB 3.1 gen 2 jest wstecznie kompatybilny z USB 3.0 i USB 2.0. USB 3.1.
•    Ma trzy profile mocy (zgodnie ze specyfikacją dostarczania zasilania USB) i pozwala większym urządzeniom pobierać energię z hosta: do 2A przy 5 V (przy zużyciu do 10 W) i opcjonalnie do 5A przy 12V (60 W) lub 20 V (100 W).
Ciekawie robi się, kiedy połączymy w jednym przewodzie specyfikacje USB 3.1 oraz USB Type-C. Port USB typu C pozwala na zasilanie dwukierunkowe, więc oprócz ładowania urządzenia peryferyjnego, urządzenie peryferyjne może również ładować urządzenie hosta. Możliwość przesyłania 100W dzięki Power Delivery 2.0 (PD 2.0) pozwala na zasilanie i naładowanie baterii w większości pełnowymiarowych notebooków.