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