Práce z předmětu 36PZ
USB - Univerzální sériová sběrnice
Petr Halabala, Oldřich Nič

ABSTRAKT

Tento článek popisuje některé vlastnosti univerzální sériové sběrnice USB ve verzi 2.0. Najdete v něm úvod, základní seznámení s topologií systému, s rolí jednotlivých jejích členů, popis konektorů a kabelů, základní informace o elektrické stránce věci, USB protokolech, typech paketů, typech přenosů a USB deskriptorech.

1. ÚVOD

Sběrnice USB začala vznikat v roce 1995 v konsorciu významných firem, např. Compaq, Intel, Lucent, Microsoft, Philips a NEC. Prošla několika specifikacemi, od 1.0 a 1.1 k dnešní podobě 2.0. Můžeme říci, že jejímu masovému rozšíření, kromě ceny zařízení, která bude klesat, nestojí nic v cestě.

Hlavním důvodem vzniku byla potřeba snadno použitelné, lehce konfigurovatelné sběrnice pro připojení zařízení všech typů k osobnímu počítači. Mělo dojít k odbourání všech možných různých rozhraní pro připojení různých zařízení a instalaci ovladačů pro jednoduchá zařízení typu paměť, klávesnice, zvukové karty. Tyto úkoly sběrnice se v podstatě podařilo splnit.

Rozdíly mezi jednotlivými verzemi nejsou nijak podstatné, všechny zařízení vyšších verzí jsou zpětně kompatibilní a umožní připojit i starší zařízení stejnými kabely. Podstatný rozdíl mezi verzemi 1.x a 2.0 je v maximální rychlosti přenosu dat. Dvojka podporuje tzv. high speed 480 Mbit/s pro magnetické paměti a multimédia, 1.1 rychlosti full speed 12 Mbit/s a low speed 1,5 Mbit/s, nejčastěji pro HID zařízení - klávesnice, myši.

Sběrnice podporuje připojování a odpojování zařízení za běhu systému, včetně zavedení příslušných ovladačů operačním systémem. Ten použije obecný ovladač podle typu zařízení (pokud zapadá do některé z kategorií velkokapacitní úložná zařízení, HID zařízení, zvuková zařízení a další) nebo ovladač dodávaný výrobcem (v případě komplikovanějších zařízení). O jaké jde zařízení, pozná systém podle jednoznačné dvojice identifikátorů VID (Vendor ID) a PID (Product ID). Přidělení VID a balíku PID výrobci je zpoplatněno, je však vyčleněn interval VID čísel pro nekomerční použití zdarma.

2. TOPOLOGIE

.
Obrázek 1

Topologie sběrnice - sítě je hvězdicovitá, s jedním centrálním přípojným bodem - hostitelem, který je ovládán kontrolérem. Kontrolér je realizován nejčastěji na základní desce počítače, můžeme ho ale implementovat i na PCI kartě a zpřístupnit tak funkce USB i pro starší počítače. Ve verzi 1.1 existují dva typy kontrolérů, UHCI (Universal host controller interface) a OHCI (Open), každý podporován jinou skupinou výrobců. Pro aktuální verzi máme jen specifikaci EHCI (Enhanced). Host zajišťuje v první fázi domluvu s právě připojovaným zařízením, poté vlastní komunikaci. Na každé sběrnici smí existovat jen jeden hostitel. K hostiteli můžeme připojit buďto konečná zařízení, nebo huby, zařízení s jedním vstupem a mnoha výstupy. Huby slouží jako rozdělovače a opakovače vstupního signálu, nadto řídí spotřebu na ně připojovaných zařízení. Protože nejčastěji máme v počítači dva konektory pro připojení, budeme pravděpodobně takový hub potřebovat. Je často implementován v koncových USB zařízeních, jako klávesnice a monitory. Koncová zařízení mají jediný úkol, správně sloužit. Propojování koncových zařízení není dovoleno, je třeba je vždy připojit na sběrnici kontrolovanou hostitelem. Nová specifikace On-The-Go takové propojení umožňuje. Na sběrnici je možno do pětistupňové hierarchie připojit maximálně 127 zařízení.

3. HARDWARE

K připojování zařízení používáme stíněné kabely se čtyřmi žílami:

Délka kabelů je maximálně pět metrů, na delší vzdálenosti můžeme připojovat zařízení přes soustavu hub zařízení, maximálně přes pět stupňů.

Konektory jsou dvou typů, jeden pro porty upstream - typ A (výstupní z hubů), druhý pro downstream - typ B (na koncových zařízeních a jako vstupní porty hubů) - viz. též obrázek 1. Jejich vzhled přibližuje obrázek 2. Čísla kontaktů přiřazujeme k jednotlivým vodičům v kabelu podle textu výše.

.
Obrázek 2

Setkáme se tedy pouze s kabely typu A-B, jediné kabely A-A se používají na propojení dvou počítačů (laplink). Narozdíl např. od sériových kabelů však obsahují uprostřed řídící elektroniku. Verze 2.0 obsahuje dále konektory typu mini-B pro připojení takových zařízení, jejichž velikost nedovoluje implementaci rozměrných standardních velikostí.

Elektrickou stránkou věci se zde nebudeme zabývat, potřebujeme ji jen jako návrháři. Uveďme jen, že je použito kódování NRZI (non return to zero invert) a jsou definovány různé napěťové úrovně pro různé rychlosti přenosů. Zmiňme také možnost napájení připojených zařízení přímo ze sběrnice. Rozlišujeme tři typy takových zařízení:

4. KOMUNIKACE

Komunikace po sběrnici je rozdělena do transakcí, podobně jako v počítačové síti. Celá je řízena hostitelem, který zahajuje jak čtení ze zařízení, tak zápis do zařízení. Zařízení nemá právo svévolně vysílat data bez vyzvání. V části 4.1 se budeme věnovat komunikaci obecně, v části 4.2 všeobecné struktuře jedné transakce a protože rozeznáváme různé typy transakcí, v kapitole 4.3 je také popíšeme.

4.1 KOMUNIKACE OBECNĚ

endpoint, pipes - stream, message

4.2 STRUKTURA TRANSAKCE

Obecná USB transakce má následující strukturu:

token paket
oznamuje začátek transakce a její typ
datový paket
volitelný, nemusí být přítomen
handshake paket
především potvrzení transakce nebo její odmítnutí

Paket má definovanou strukturu, tedy jaké informace obsahuje ten který bit na konkrétním místě v celé délce paketu. Ta je pro každý typ přenosu jiná, blíže viz. 4.2. V tabulce si ukážeme obecný význam jednotlivých složek paketu.

SYNC Synchronizace hodin hostitele a zařízení, 8 bitů pro low a full rychlosti, 32 bitů pro high.
PID Packet ID. Označuje typ paketu, viz. níže. Pro identifikaci stačí 4 bity, nicméně pro jistotu jsou zopakovány ještě jednou v negované formě.
ADDR Address. Adresa cílového zařízení, velikostně 7 bitů. K sběrnici tedy můžeme připojit max. 127 zařízení (adresa 0 je rezervována pro právě připojené zařízení bez přidělené adresy).
ENDP Endpoint. Určuje koncový bod zařízení, 4 bitový údaj.
CRC Cyclic redundancy check. Pro token pakety má délku 5 bitů, pro datové pakety 16 bitů.
EOP End of packet. Označuje konec paketu.

Každý z uvedených paketů může být různého druhu. Následující přehled navíc ukazuje konkrétní strukturu paketů vztaženou k předchozí obecné.

4.3 DRUHY TRANSAKCÍ

control, interrupt, isochronous, bulk

5. DESKRIPTORY

Jak jsme již uvedli, má každé USB zařízení přidělenou jednoznačnou identifikaci. Pro správnou komunikaci musí ale hostiteli poskytovat i další informace, např. podporovaná přenosová rychlost, kategorie napájení a další. Všechny potřebné údaje jsou uspořádány do hierarchické struktury z důvodů, které jsou ozřejměny dále. Vše nejlépe popíše následující obrázek.

.
Obrázek 3

Pojďme se teď podívat na jednotlivé hladiny.

ti 4.1.

6. ZÁVĚR

Uvedený popis USB není vyčerpávající, ale snad se nám podařilo alespoň nastínit její základní vlastnosti. Chybí bližší specifikace elektrických signálů na vedení, specifikace provozu v pozastaveném módu (suspend mode), specifikace standardních požadavků zařízení, popis zotavení z chybových stavů a mnohé další. Bližší informace můžete najít v uvedené literatuře, vyčerpávající pak v normě.

7. LITERATURA

[1] Compaq, Intel, Microsoft, NEC: Universal Serial Bus Specification version 2.0. 2001.
[2] Compaq, Intel, Microsoft, NEC: Universal Serial Bus Specification version 1.1. 1998.
[3] Peacock, Craig: USB in a NutSchell. Beyond Logic, 2001.