[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ż:



  • Rincewind

    „Kabel USB składa się z 4 przewodów – zasilanie, masa, data + i data -” poprawniej by było napisać, że dwa są zasilania. W końcu to prąd stały a taki zapis sugeruje prąd przemienny.

    • Adrian Celej

      Dlaczego? Każdy wie, że do przesłania prądu potrzebujemy dwóch przewodów, raczej nikt nie pomyli tego z przemiennym.

      • Rincewind

        Ale tutaj obydwa są zasilania. Przy zapisie: „plus i masa” byłoby jeszcze ok, ale tutaj zapis wskazuje, że tylko na jednym jest napięcie. No chyba że na jednym potencjał jest 0V a na drugim +5V wtedy faktycznie to ja się czepiam.

        • Adrian Celej

          Zasilanie zawsze oznacza jakieś dodatnie napięcie, masa to zawsze 0V.

          • Rincewind

            Czyli jednak jest 0V i 5V? No to się je dla czepiałem. Patrz, a byłem pewny, że USB ma +2.5V i -2.5V

          • Adrian Celej

            Nie, ogólnie napięcia ujemne są raczej niespotykane.

          • Rincewind

            Nie napięcia, potencjał. Napięcie to różnica między jednym a drugim. Tylko jednostki są te same co przy napięciu (różnicy potencjałów) więc łatwo się pomylić.

  • Tomek

    Wy w ogóle czytacie artykuły przed publikacją?

    • Adrian Celej

      Tak, kilkukrotnie. Co dokładnie masz na myśli?

      • Acuap

        „Jego obecne zastosowania nijak mają się do początkowych założeń”
        A następnie:
        „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”

        Generalnie chyba to założenie dalej jest aktualne, prawda?

        • Adrian Celej

          Nie do końca, obecnie priorytetem jest komunikacja bezprzewodowa, USB jako standard transmisji danych zaczyna odchodzić do lamusa.
          Nikt początkowo nie przewidywał, że kablami USB będziemy chcieli transferować po 100 W energii, oraz że będziemy nimi ładować wszystkie sprzęty w domu. Nawet architektura hosta i klienta jest już nie aktualna. Ale o tym w następnej części.

          • Acuap

            No nie wiem. Przenośne dyski HDD/SSD i pendrive’y mają się IMO bardzo dobrze. Czytniki kart pamięci USB także. Klawiatury i myszki także mają się świetnie. Fakt, dużo modeli teraz jest bezprzewodowych ale topowe przewodowe dalej są na fali. Zgodzę sie z argumentem ładowania urządzeń. Jest to nowe zastosowanie, o którym wtedy pewnie nikt nie myślał. Jednak z drugiej strony początkowe założenia wciąż są aktualne i jeszcze będą miały sie świetnie przez pewien czas 🙂

          • Adrian Celej

            Do czego częściej używasz USB? Do ładowania czy transmisji danych?
            No właśnie…

          • Acuap

            Do transmisji danych. Niestety jestem brutalem i zabijam w swoim N8 baterię bezprzewodową ładowarką 🙂 A z firmowego przenośnego SSDka i pendrajwów korzystam kilka razy dziennie 🙂 Z myszki i klawiatury też korzystam non stop 🙂

          • Adrian Celej

            Gratuluję, jesteś jednym z nielicznych wyjątków. Ja na odwrót – dane z telefonu kopiuje po FTP na domowy serwer, wszystko co się da puszczam po WiFi. Zdarzyło mi się nawet z tego serwera film streamować. USB używam tylko do ładowania telefonu, tabletu, power banków, słuchawek, transmitera FM itp. Cały pokój w nocy świeci się od tych lampek.

      • Acuap

        Gdzieniegdzie kilka pomyłek interpunkcyjnych, jedna literówka. Generalnie jednak jest to spoko artykuł. Tylko tekst z początkowymi założeniami nie do końca trzyma się kupy IMO.



x