[Jak to działa] Standard USB – część I

Adrian Celej Artykuły 2017-11-26

Z portów USB korzystamy wszyscy. Interfejs, który powstał do komunikacji z urządzeniami peryferyjnymi komputera stał się czymś, bez czego nie wyobrażamy sobie życia. Jego obecne zastosowania nijak mają się do początkowych założeń.

Wróćmy do początków

Standard USB został zaprojektowany przez firmy Microsoft, Intel, Compaq, IBM i znany z wkładu w budowę standardu Ethernet Digital Equipment. Miał to być wygodny dla użytkownika interfejs, pozwalający na podłączenie dowolnego urządzenia do dowolnego portu oraz pracujący w trybie Plug and Play. Do pojedynczego portu przewidziano możliwość podłączenia aż 127 urządzeń. Oczywiście jest to możliwe do osiągnięcia jedynie za pomocą hubów USB z własnym zasilaniem, ponieważ port zapewniał jedynie napięcie 5V i natężenie 500 mA. Dlaczego tylko tyle? Ponieważ chciano uniknąć ewentualnych zakłóceń w przesyle danych oraz uznano, że taka wartość jest w pełni wystarczająca. Przypomnijmy, że USB miało za zadanie wyprzeć z użytku porty RS-232, PS/2, LPT i MIDI. W rzeczywistości jedynie PS/2 i MIDI odeszło do lamusa, pozostałe interfejsy są nadal wykorzystywane w pewnych branżach. Z tego powodu na portalach aukcyjnych bez problemu znajdziecie przejściówki z USB na nieśmiertelne RS-232.

Komunikacja w standardzie USB

Próbowaliście kiedyś połączyć 2 komputery kablem USB? Teoretycznie było to możliwe za pomocą specjalnego kabla z przygotowanym do tego celu kontrolerem, jednak oficjalnie takiej możliwości nie było. Dlaczego? Otóż specyfikacja USB przewiduje jeden kontroler hosta wykorzystywany do komunikacji z innymi urządzeniami. Jeśli połączymy kablem 2 komputery, to jednocześnie spotkają się ze sobą 2 kontrolery hosta, a więc komunikacja nie będzie możliwa – oba urządzenia będą chciały zarządzać drugim. To samo w przypadku teoretycznego połączenia dwóch urządzeń USB – w takim wypadku nie ma żadnego kontrolera, urządzenia te nie zobaczą się. Zasada jest prosta – tylko host ma prawo wysłać zapytania do podłączonych urządzeń, klienci nie mają takiej możliwości. Owszem, istnieje USB OTG, jednak to już inna historia.

Tryby przesyłania danych

Do portów USB podłączamy przeróżne urządzenia. Nie oznacza to, że np. pendrive jest traktowany na równi z kartą dźwiękową i klawiaturą. Podstawą są przekazy sterujące, wykorzystywane do pobrania informacji o konfiguracji i stanie urządzenia. Istnieją też przekazy przerwaniowe służące do komunikacji w stałych, określonych odstępach czasu. Jeśli do portu podłączymy pendrive z pewnością wykorzysta on przekaz masowy, który umożliwia przesyłanie dużych ilości danych z maksymalną szybkością. Istnieje także przekaz izochroniczny. Zapewnia on priorytetową transmisję danych ze stałą prędkością. Wykorzystywany jest w np. kartach dźwiękowych. Tryb ten ma jednak poważną wadę. Jak wiadomo podczas komunikacji w każdym standardzie powstają pewne błędy. Oczywiście USB system korekcji CRC, jednak w przypadku  przekazu izochronicznego nie można go zastosować, nie ma na to czasu. Z tego powodu słabej jakości kabel USB może teoretycznie wpłynąć na jakość dźwięku z podłączonej karty dźwiękowej. Oczywiście to tylko teoria, przy dużej ilości zakłóceń połączenie zostanie zerwane.

USB 1.0, 1.1 i 2.0

Na temat pierwszej generacji USB wiadomo niewiele. Faktycznie powstała, jednak nigdy nie została wykorzystana w praktyce. Dopiero USB 1.1 osiągnęło „jakiś” sukces. Owszem, porty były masowo montowane w płytach głównych, jednak praktycznie nie powstawały żadne urządzenia. Z tego powodu porty USB przez wiele lat nie były wykorzystywane. Nawet gdyby, to i tak poważnym problemem były sterowniki. Jako przykład można podać system Windows 98 – w większości przypadków nie był w stanie zam zainstalować nawet pendrive. USB 1.1 przewidywało dwie możliwe prędkości transmisji danych – low speed 1,5 Mbps i full speed 12 Mbps. Po co 2 różne tryby? Prawdopodobnie miało to być ułatwienie dla twórców akcesoriów, być może kontrolery low speed były tańsze.

USB 2.0 nie różniło się niczym poza prędkością – standard przewidywał transmisję danych na poziomie 480 Mbps. Jak zapewne wiecie w obu przypadkach parametry te były niemożliwe do osiągnięcia, USB 2.0 osiągało maksymalnie 42 Mbps. Dlaczego? Kabel USB składa się z 4 przewodów – zasilanie, masa, data + i data -. Szyna data to jedna para przewodów, 2 oddzielne kable wcale nie służą do transmisji danych w obu kierunkach. Zamiast tego skorzystano z transmisji w trybie half duplex. Oznacza to, że dane w obu kierunkach są przesyłane naprzemiennie. Warto wspomnieć także o kanałach komunikacji – było ich 32, z czego 2 były zarezerwowane. W ostateczności pozostawało ich po 15 dla transmisji w każdym kierunku.

Rodzaje wtyczek

Już w czasach USB 2.0 istniała masa różnych wtyczek USB. Podstawowa, prostokątna i najbardziej niezawodna wtyczka miała oznaczenie USB A. Często w przypadku drukarek stosowało się wtyczkę USB B. Dlaczego? Otóż gdyby powstał kabel z dwiema wtyczkami USB A, to zapewne ktoś postanowiłby wykorzystać go niezgodnie z przeznaczeniem, co mogłoby mieć przykre konsekwencje. Niestety, technologia musi być „idiotoodporna”. Micro USB to prawdopodobnie najpopularniejsze stosowane dziś rozwiązanie. Jednocześnie od samego początku jest jedną z największych porażek tego standardu, gównie z powodu częstych luzów powodujących zrywanie połączenia i nagminnego łamania się wtyczek. Mini USB powoli wychodzi z użytku. Wtyczce trudno coś zarzucić, jednak łamiące się plastikowe podpory w gniazdach w swoim czasie były plagą.

W kolejnej części opiszę nowsze wersje standardu USB i kwestię wykorzystania ich do zasilania.

Zobacz też:






Przewiń stronę, by przeczytać kolejny wpis
Przewiń stronę, by przeczytać kolejny wpis
x