Współczesny komputer PC otacza się coraz gęstszą siecią układów peryferyjnych. Kilkanaście lat burzliwego rozwoju tej gałęzi techniki doprowadziło do wypracowania wspaniałego chaosu. Lista urządzeń, które można podłączyć do komputera stale rośnie a początkujący użytkownicy poruszają się z coraz to większym trudem w gąszczu najróżniejszych wtyczek i gniazdek. Nawet najbardziej doświadczeni narażeni są na omyłkowe zamiany kabli.
Próby doprowadzenia do jednolitego standardu prowadzone są od dłuższego czasu w zespole powołanym do życia przez grupę firm założycielskich: Compaą, DEC, IBM, Intel, Microsoft, NEC i Northern Telecom. Wspólnie rozwijany projekt nosi nazwę USB (Universal Serial Bus) i obiecuje możliwość podłączenia szerokiego zakresu peryferiów PC do jednolitej, prostej i taniej magistrali.
Koncepcja złącza USB jest pod wieloma względami niezmiernie elastyczna. Tkwiąca w samym założeniu uniwersalność wymaga dostosowania do szerokiej gamy urządzeń: od powolnych klawiatur do szybkich modemów i kamer video. Uczynienie zadość temu podstawowemu wymaganiu doprowadziło do implementowania kanałów informacyjnych o różnej przepustowości. W pierwszej fazie realizacji projektu oferowane są kanały o małej (Low Speed, do l ,5 MB/s) i średniej (Medium Speed, do 12 MB/s) prędkości przesyłania. W drugim etapie rozwoju powstać ma wersja High Speed USB transmitująca dane z prędkością 500 Mb/s.
Nic nie stoi na przeszkodzie by korzystać wyłącznie z kanału Medium Speed. Wyodrębnienie kanału 1,5 MB ma aspekt wyłącznie ekonomiczny — liczna grupa powolnych urządzeń (mysz, klawiatura itp) musiałaby być wyposażana w szybki interfejs USB.
Rozdział 15. Złącze USB
Specyfikacja
Złącze USB 639
640
Anatomia PC
Nowej magistrali i tak nie jest łatwo wyprzeć dotychczasowe rozwiązania, każdy wzrost kosztów zmniejsza dodatkowo szansę na powodzenie całego projektu.
Topologia
USB ma strukturę drzewiastą rozrastającą się z punktu początkowego, który stanowi umieszczony na płycie PC kontroler USB. Płyty główne z procesorem Pentium bazujące na układach scalonych firmy Intel mają już taki kontroler wkomponowany w strukturę mostu PCI2ISA (PITO lub nowszego PIIX4). Oferuje on dwa gniazda USB.
W miarę rozbudowy sieci od poziomu „O" w dół, do każdego z gniazd podłączać można dowolne urządzenie końcowe (NODE1) lub kolejny rozdzielacz (HUB) — rysunek 15.1.
Rysunek 15.1.
Drzewo urządzeń podłączonych do magistrali USB
Poziom "O"
Poziom"!" Poziom "2" Poziom "3" Poziom "4" NODE
; NODE NODE l NODE
Dopuszczalna liczba wszystkich urządzeń nie może przekraczać 127. Rozdzielacze stanowią układy aktywne wzmacniające sygnały magistrali. Dysponują jednym wyjściem w kierunku wyższego poziomu (Up-stream Port) i kilkoma wejściami w stronę poziomów niższych (Down-stream Ports). Kolejne rozdzielacze zarysowują wyraźnie poziomy piramidy, na szczycie której pracuje Host-Kontroler. Na poziomie ostatnim obecne są już tylko urządzenia końcowe. Funkcja rozdzielaczy nie ogranicza się jedynie do pomnażania gniazd USB. Zaopatrują one również w napięcie zasilania urządzenia nie dysponujące własnym źródłem2. Klasyczny przykład stanowi wbudowany w klawiaturę rozdzielacz aktywny dostarczający energii dla podłączonej do niego myszy.
Okablowanie
Urządzenia pracujące w kanale 12 MB/s posługują się ekranowaną skrętką. Dopuszczalna długość takiego przewodu wynosi 5 metrów. Dla urządzeń klasy 1,5 MB/s przewi-
1 We wcześniejszych wersjach specyfikacji USB można spotkać używany zamiennie termin
function.
2 Dopuszczalny pobór prądu poprzez magistralę USB wynosi 500 mA.
Złącze USB 641
dziano prosty czterożyłowy i nieekranowany kabel o maksymalnej długości 3 m. Dla zminimalizowania szkodliwego promieniowania ograniczono czasy narastania przebiegów impulsowych do wartości 75 - 300 ns. Maksymalna liczba odcinków łączących poziomy piramidy wynosi 7. Tak więc najbardziej odległy rozdzielacz nie może znajdować się dalej od punktu szczytowego niż 35 m. Ograniczenie to nałożone jest ze względu na czas przebiegu pakietów i wyznaczony przez specyfikację minimalny czas reakcji systemu.
Niezależnie od tego do jakiej klasy prędkości kwalifikuje się dane urządzenie, połączenie odbywa się zawsze przy użyciu tego samego wtyku (rysunek 15.2).
Rysunek 15.2.
Złącze USB
Zróżnicowanie długości końcówek (styki zasilające wystają nieco ponad linię ograniczenia styków przewodów sygnałowych) stanowi fragment realizacji idei Hot Plugging — łączenia na gorąco. Dowolne urządzenie USB może być bez szkody dla sieci i siebie samego podłączane i odłączane bez konieczności przestrzegania żadnej specjalnej procedury (odłączenie zasilania, reset lub tym podobne).
Patrząc na złącze USB od strony sygnałów elektrycznych należy je zaliczać do grupy magistral szeregowych prowadzonych od punktu do punktu. Dane przesyłane są w ruchu dwukierunkowym przy pomocy pary przewodów sygnałowych D+ i D-. Pozostałe dwie linie doprowadzają napięcie zasilające (+5 V i masa). Modulowanie końcówek D+ i D— sygnałem różnicowym zwiększa odporność linii na zakłócenia zewnętrzne. Wzmacniacze wejściowe urządzeń USB nastawione są na wydzielenie różnicy sygnałów. Przebiegi szkodliwe nakładają się w jednakowym stopniu na obie linie D+ i D- i dlatego łatwo je wyeliminować. Poziom dla nadawanych sygnałów wyznaczony został na około l V (napięcie różnicowe 2 V). Odbiornik musi jednak w sposób pewny odławiać różnicę 0,2 V (margines bezpieczeństwa). W stanie spoczynku linie utrzymywane są na poziomie D+ = +3 V i D- = O V.
Magistrala nie dysponuje linią podającą sygnał taktujący. Sygnał zawarty jest w strumieniu danych i z niego odzyskiwany3. Każde logiczne O wyzwala zmianę polaryzacji. Specjalny algorytm kodowania zapewnia obecność impulsów synchronizujących w dowolnej sekwencji danych, nawet składającej się z samych 1. Najpóźniej po sześciu l wprowadzany jest impuls O (Bit Stuffmg). Tak więc każde z urządzeń USB ma możliwość zsynchronizowania swojego wewnętrznego zegara co najmniej raz na siedem taktów.
Procedura znana jest pod nazwą NRZI (Non Rerurn to Zero Invert).
642 Anatomia PC
Protokół
Każdy z podłączonych w danej chwili do magistrali układów musi być jednoznacznie identyfikowany. Do tego celu służy numer identyfikacyjny ID nadawany przez kontroler USB (Host Adapter). Tuż po uruchomieniu systemu (załączeniu napięć zasilających) każdy z układów ustawia swój ID=0. Kontroler przegląda najpierw całą magistralę odcinek po odcinku aż do ostatniego poziomu i przydziela każdemu napotkanemu urządzeniu kolejny numer ID. Na numer ten składa się jeden bajt adresu urządzenia (ADDR) i trzy dodatkowe bity na określenie położenia wewnętrznego w ramach urządzenia (ENDP, Endpoint).
Oprócz konfigurowalnego programowo ID układy peryferyjne USB wyposażane są w zaszyty na stałe w swej pamięci 5-bajtowy numer sprzętowy: dwa bajty stanowią oznaczenie producenta, dwa nazwę układu i jeden numer wersji. Dodatkowe informacje zawarte są w 3-bajtowym identyfikatorze klasy: po jednym bajcie na klasę, podklasę i typ protokołu.
W trakcie wstępnego przeglądania sieci napotkane urządzenia informują kontroler o typie przetwarzanych przez siebie danych i o pożądanej szerokości pasma przesyłowego, które potrzebują do dyspozycji. Kontroler gromadzi te informacje, by je później wykorzystać do rozdziału pasma pomiędzy wszystkich chętnych.
Wszelkie akcje w sieci USB inicjowane są przez kontroler. Poszczególne urządzenia nie mają możliwości ani zwrócenia na siebie uwagi (tak jak to się dzieje z udziałem mechanizmu przerwań) ani wysyłania danych „w ciemno". Każdy z uczestników musi czekać, aż kontroler zwróci się do niego z zapytaniem4 o potrzebę obsługi. Tak zdefiniowana procedura likwiduje co prawda konieczność eliminacji kolizji, do których dochodzi w przypadku jednoczesnego nadawania przez wielu uczestników, pochłania jednak stosunkowo dużo mocy obliczeniowej na organizację biegu jałowego. Samo wysyłanie zapytań do wszystkich możliwych 127 uczestników mocno obciąża średnich rozmiarów procesor i nie może być pozostawione w gestii CPU.
Działalność tą bierze na siebie Host-Adapter USB. On sam musi więc być urządzeniem porozumiewającym się z PC przy pomocy przerwań. W zależności od producenta płyty głównej, zajmowana jest linia IRQ10 lub IRQ11. Oprócz tego Host-Adapter obejmuje w posiadanie część przestrzeni adresowej I/O. W tej sprawie prawie każda płyta ma swoje zdanie, często powtarza się jednak zakres Ox6000-Ox601F lub OxE400-OxE41F.
Kontroler rozsyła w regularnych odstępach czasu specjalne pakiety (Token) z zapytaniami do kolejnych urządzeń (rysunek 15.3).
Rysunek 15.3. 8bitów 8bitów 3bity 5bitów
pift 1 1' |
ENDP |
ł |
ĆRCS " "ł ' |
l |
ft|l[x[xji|o|x|x| J |
|
|
|
|
|_ |
|
|
|
|
Struktura pakietu Token
4 Dla określenie tego typu sterowania przyjął się angielskojęzyczny termin „Polling".
Złącze USB 643
Pakiety zabezpieczane są sumami kontrolnymi CRC. Stosowane kody umożliwiają nie tylko wykrywanie błędów ale również ich korekcję (do dwóch uszkodzonych bitów w chronionym obszarze).
Urządzenie żądające dostępu do magistrali odsyła odpowiedź pozytywną. W oparciu o zapamiętane w fazie inicjalizacji parametry kontroler sprawdza najpierw czy dysponuje wolnym pasmem o niezbędnym wymiarze a jeśli tak, rezerwuje je (pod uwagę brane są przy tym planowane transmisje izochroniczne). Po przyjęciu niezbędnych uzgodnień dochodzi do utworzenia kanału wirtualnego (Pipę) i wymiany danych w pakietach o ustalonej wcześniej strukturze (rysunek 15.4).
16 bitów
Rysunek 15.4. «bH6w o ...n bitów
PID
BATA I CROW
0|0[x|x| t j llxfx|
Struktura pakietu Data
Poszczególne fazy komunikacyjne kwitowane są przy pomocy specjalnych pakietów potwierdzających (rysunek 15.5).
Rysunek 15.5. 8bilćw
-PH>
Struktura pakietu
Handshake
Odmienne struktury nagłówków PID pozwalają na jednoznaczną identyfikację typu pakietu. Gdy wszystkie zaplanowane pakiety zostaną przesłane, kanał jest likwidowany a jego pasmo oddawane do dyspozycji kontrolera.
Sumaryczna przepustowość magistrali rozdzielana jest w miarę potrzeb i możliwości. Kontroler tworzy przy tym wirtualne kanały przesyłowe (Pipes) o różnej szerokości i różnym kierunku przepływu informacji, które stawia do dyspozycji wyznaczonym przez siebie urządzeniom. Uwzględnienie istniejących priorytetów może się odbywać wyłącznie na drodze zaburzenia równomierności rozsyłania pakietów Token. Prośba o dostęp do magistrali może zostać przez kontroler zignorowana jeśli rezerwy pasma nie są wystarczające. Żadna z trwających właśnie transmisji nie jest przerywana na korzyść innej. Asynchroniczny charakter przesyłania danych nie wymaga natomiast od uczestników trzymania się jakiejkolwiek określonej prędkości, w szczególności maksymalnie wyznaczonej dla danego strumienia.
Dużą rolę w sprawnym funkcjonowaniu sieci USB odgrywa buforowanie danych i to zarówno przez urządzenia oczekujące na dostęp jak i przez kontroler. Czas oczekiwania na obsługę może być różny a urządzenie nie jest w stanie go przewidzieć. Rozmiary buforów lokalnych muszą być dobrane z dużym zapasem, tym większym im większy strumień danych produkuje układ.
Specyfikacja USB przewiduje oprócz zwykłej transmisji asynchronicznej również przekaz izochroniczny. Ten typ przesyłania stworzony został dla potrzeb zastosowań multimedialnych. Istnieją bowiem urządzenia, dla których zaopatrzenie na czas w dane
644 Anatomia PC
(lub ich odbiór) jest sprawą życia i śmierci. Klasyczne przykłady to mikrofon, głośniki lub kamera. Przepełnienie (lub wyczerpanie) buforów wewnętrznych narusza ciągłość przekazu. System przydziału oparty na zapytaniach kontrolera nie zawsze gwarantuje dojście do głosu na czas. Dla tego typu układów kontroler rezerwuje5 fragment pasma w regularnych wycinkach czasowych. Przekaz izochroniczny ma priorytet nad transmisją asynchroniczną. Dla potrzeb innych chętnych stoi w tym czasie do dyspozycji jedynie reszta pasma.
USB w praktyce
USB oferuje, w porównaniu do stosowanych dotychczas złączy, szereg zalet, które zestawione w poniższych punktach dają obraz jego potencjalnych możliwości. Czy zostaną w pełni wykorzystane, trudno jest ocenić już teraz. Reakcja rynku na wprowadzane nowości nie była nigdy łatwa do przewidzenia.
W obrębie całego systemu jest tylko jeden rodzaj gniazda i pasującego do niego
wtyku. Pomylić się nie sposób, bowiem każdy wtyk można podłączyć do pier
wszego napotkanego w okolicy gniazda. Nie należy się natomiast spodziewać
szerokiej obecności rozdzielaczy (NODE) jako samodzielnych układów. Ich
funkcje zostaną zintegrowane w dostosowanych do tego celu urządzeniach USB.
Rozmnażanie gniazd będzie odbywało się tam, gdzie pozwoli na to miejsce: na
ścianach bocznych klawiatur, w podstawach i ścianach tylnych monitorów itp.
Integracja rozdzielaczy w urządzeniach niskiej prędkości nakłada wyższe wymo
gi (ekranowana skrętka) na przewód połączeniowy z kolejną warstwą: dołączone
do rozdzielacza urządzenie USB może być klasy 12 MB/s.
Sieć USB jest samokonfigurująca i nie wymaga od użytkownika dodatkowych
działań. Nie trzeba się troszczyć o terminatory końców magistrali (jak w przy
padku SCSI), deklaracje Master/Slave, adresy portów I/O, kanałów DMA i nu
mery IRQ ani określać parametrów transmisji (złącze szeregowe). Host-Adapter
bierze na siebie zarówno identyfikację jak i właściwą konfigurację każdego ele
mentu sieci. Samokonfiguracja obejmuje również system „Hot Plugging", tzn.
dołączane i odłączane w trakcie pracy systemu kolejne urządzenia są automa
tycznie rozpoznawane i adresowane, a niezbędne do ich obsługi sterowniki uru
chamiane6 bez udziału użytkownika.
Nadrzędną cechą całego systemu jest jego elastyczność i niskie koszty realizacji.
Obsługiwane mogą być jednocześnie urządzenia pracujące z prędkością kilku
kB/s oraz te produkujące strumień do 12 MB/s. Pokrywany jest więc zakres
obejmujący przesyłanie danych w formacie MPEG-II (8-10 MB/s) rzecz bardzo
ważna dla multimedialnej przyszłości całego przedsięwzięcia. Długość kursują
cych w sieci pakietów może być regulowana co podnosi możliwość niezmiernie
5 W specyfikacji USB algorytm przydziału ukrywa się pod nazwą „Enhanced TDM.
6 Automatyka wbudowana w system operacyjny sięga zakresu Hot-Plugging. Dla urządzeń
odłączonych od sieci usuwa się również „na gorąco" ich sterowniki.
Złącze USB 645
racjonalnego wykorzystania jej zasobów. USB integruje w sobie ponadto funkcje lokalnej sieci telefonicznej7. W skład specyfikacji wchodzi specjalny protokół TAPI (Telephony Application Programming Interface). Oferowane są następujące usługi: fax, modem oraz mała centrala telefoniczna. Gniazdo USB może być też używane do podłączenia innego komputera, na przykład laptopa w celu szybkiej wymiany danych z maszyną macierzystą.
• Na zakończenie kilka uwag o wadach USB. Stopień integracji mechanizmów USB w stosowanych obecnie systemach operacyjnych jest delikatnie mówiąc niewielki. Obecność blaszki slotu z gniazdami USB na tylnej ściance komputera PC to jeszcze nie wszystko. Samo rozpoznanie i obsługa wchodzącego w skład PIIX3 kontrolera USB wymaga zdobycia sterownika programowego. Dla Windows 958 odpowiedni plik znaleźć można na płytce CD oznaczonej symbolem Service Pack 3 (w katalogu \OSR2\USB_SUPP) zawierającej poprawki i uzupełnienia do systemu operacyjnego. Poprawna instalacja tego sterownika to jeszcze za mało by cieszyć się USB. System operacyjny wie już co prawda o obecności kontrolera ale nie wie nic o podłączonych do sieci urządzeniach. Samo ich zdobycie nie będzie sprawą łatwą. Oprócz kilku pokazywanych jedynie na targach i dostępnych w prospektach monitorów9, klawiatur i myszy trudno jest o szeroki materiał porównawczy. Każde z tych urządzeń wymaga własnego sterownika programowego10 a te są w chwili obecnej nieosiągalne. Pełna integracja USB w strukturach systemów operacyjnych ma nastąpić wraz z wejściem na rynek systemów Windows 97 i Windows NT 5.0
Sam pomysł USB i stowarzyszone z nim rozwiązania są niezwykle nowoczesne i przyjazne dla użytkownika. Nowa magistrala, jak każda nowa idea, która zamierza przynajmniej częściowo zrewolucjonizować świat, rodzi się z trudem a i dzieciństwo też ma niełatwe. Krążące tu i ówdzie złośliwe tłumaczenie skrótu USB jako „Useless Serial Bus" (Nieużyteczna Magistrala Szeregowa) nie jest niestety całkowicie pozbawione sensu.
7 Skutkiem obecności w grupie firm założycielskich kanadyjskiego koncernu Northern
Telecom.
8 Funkcjonuje tylko w wersji 950b.
9 W przypadku monitorów, USB można rozpatrywać jedynie w charakterze magistrali kontrolnej
(regulacja, zarządzanie systemem poboru mocy). Strumień danych video (ponad l Gb/s)
przewyższa znacznie możliwości tego systemu.
10 Znormalizowane funkcje elementarne (choćby te do pierwszego kontaktu z kontrolerem)
nie wymagają żadnych specjalnych sterowników. Dopiero działania specyficzne dla danego
urządzenia wspomagane są przez specjalne programy obsługi.