Podręcznik

13. Typowe interfejsy systemu komputerowego

13.2. Magistrala USB

Magistrala szeregowa USB (ang. Universal Serial Bus) jest bardzo popularnym standardem portu szeregowego. Jest to projekt wiodących firm komputerowych IBM, Intel, Microsoft, DEC i NEC. W pierwotnym zamyśle magistrala USB miała być uniwersalną tanią magistralą do podłączania do komputera różnorodnych (o różnej szybkości) urządzeń peryferyjnych np. myszki, klawiatury, skanera, drukarki, kamery CCD, cyfrowego aparatu fotograficznego itd. W typowym komputerze klasy PC stosuje się obecnie 6-8 portów USB.

W podstawowym starszym standardzie USB 1.1 zostały zaimplementowane 2 kanały LS (ang. Low Speed) o paśmie 1,5 Mb/s oraz FS (ang. Full Speed) o paśmie 12 Mb/s. Nowa wersja standardu USB 2.0 umożliwia transfer danych z szybkością do 480 Mb/s.

Magistrala USB podobna jest do magistrali IEEE – 1394/Fire Wire, która ma zbliżone parametry.
Kabel USB składa się z 4 przewodów. Dwóch sygnałowych (stanowiących skrętkę) oznaczanych symbolami D+ i D- oraz dwóch przewodów zasilania +5V oraz masy.

Nr styku  
1 +5V
2 D+ (Data +)
3 D- (Data -)
4 GND

Długość przewodu łączącego urządzenia peryferyjne z rozdzielaczem (hubem USB) nie może przekraczać 5 metrów.

Protokół USB nie dopuszcza możliwości kolizji. Do magistrali USB może być podłączonych wiele urządzeń, a dane są przesyłane w obu kierunkach, ale zawsze na żądanie kontrolera, który zwraca się do konkretnego urządzenia z pytaniem czy nie potrzebuje obsługi. Protokół USB przewiduje 4 typy transmisji (ang. data flow types) różniące się

  • wymaganiami stawianymi szerokości pasma
  • dopuszczalnymi czasami opóźnień
  • rozmiarami pakietów
  • rodzajem korekcji błędów

Podstawowym trybem transmisji jest tryb asynchroniczny i przeznaczony jest dla danych o charakterze masowym (ang. bulk transfer)

Dane przesyłane są przez magistralę USB wewnątrz tzw. pakietów czyli ciągów bitów o ściśle zdefiniowanej strukturze. Początek pakietu oznaczony jest sygnaturą SOP (ang. Start of Packet), a koniec sygnaturą (ang. End of Packet). Każdy pakiet należy do jednego z 4 możliwych typów: Token, Data, Handshake i Special. Magistrala USB przesyła zawsze najpierw młodsze bity, a potem starsze bity. Podobna reguła jest stosowana dla ciągów wielobajtowych. Najpierw przesyłane są bajty mniej znaczące.

Struktura magistrali jest drzewem z tzw. hostem – root hub’em w korzeniu por. rys. 3. Liczba urządzeń wliczając w to huby nie może być większa od 128. Liczba poziomów nie może być większa od 7.

Rys. 3. Przykład struktury magistrali USB; Node oznacza urządzenie peryferyjne; Hub jest tzw. koncentratorem USB lub rozdzielaczem