náhled|Konektory USB-A a micro USB-B náhled|USB-C – konektory a zásuvka chytrého telefonu Universal Serial Bus (USB) je univerzální sériová sběrnice užívaná od roku 1996, která slouží zejména k připojení periferií k počítači, nabíjení chytrých telefonů a dalších elektronických zařízení a přenosu dat.

Základní dělení je podle rychlosti přenosu dat (USB 1–4), podle typu konektoru (USB A, B, C, mini, micro ap.) a podle příkonu udávaného ve wattech (rychlosti nabíjení). Ve 20. letech 21. století jsou nejběžnější USB 2.0 (480 Mbit/s) a USB 3.0 (5 Gbit/s), konektory USB-A a micro USB-B a modernější a univerzální USB-C.

Charakteristika USB je sběrnice jen s jedním zařízením typu Master, tj. všechny aktivity vycházejí z PC. Data se vysílají v krátkých paketech o 8 bajtech a delších paketech o délce až 256 bajtů. PC může požadovat data od zařízení, naopak žádné zařízení nemůže vysílat data samo od sebe.

Veškerý přenos dat se uskutečňuje v tzv. rámcích, které trvají přesně 1 milisekundu. Uvnitř jednoho rámce mohou být postupně zpracovávány pakety pro několik zařízení. Přitom se mohou spolu vyskytovat pomalé (low-speed) i rychlé (full-speed) pakety. Obrací-li se PC na více zařízení, zajišťuje jejich rozdělení jako rozdělovač sběrnice (hub). Zabraňuje také, aby signály s plnou rychlostí (full-speed) byly vedeny na pomalá zařízení. Časový průběh přenosu informace je předepisován výhradně masterem. Zařízení typu slave se musí synchronizovat s datovým tokem.

Jednotlivé bity jsou kódovány metodou Non Return to Zero Inverted (NRZI). Nuly v datech vedou ke změně úrovně, jedničky nechávají úroveň beze změny. Kódování a dekódování signálů je čistě hardwarovou záležitostí. Přijímač musí být schopen získat signál, přijmout a dekódovat data. Speciální prostředky zajišťují, aby nedocházelo ke ztrátě synchronizace.

Obsahuje-li původní datový tok šest po sobě jdoucích jedniček, přidá vysílač automaticky jednu nulu (vkládání bitů – bit-stuffing), aby se tím vynutila změna úrovně. Přijímač tuto nulu z datového toku opět odstraní. Každý datový paket má za účelem synchronizace speciální zaváděcí bajt (00000001b). Přijímač v důsledku kódování NRZI a vsouvání bitů vidí osm střídajících se bitových stavů, na které se může synchronizovat. Během následujícího přenosu musí synchronizace zůstat zachována. Všechny tyto procesy se odehrávají pouze v odpovídajících hardwarových součástkách. Přijímač a vysílač jsou realizovány vždy společně v jedné součástce.

Zařízení USB obsahuje jednotku zvanou Serial Interface Engine (SIE), která přebírá vlastní práci. K výměně dat mezi SIE a zbytkem zařízení slouží buffery FIFO. FIFO jsou paměti, které mohou postupně přijímat a vydávat data podobně jako posuvné registry. Připojený mikrořadič tedy potřebuje jen přečíst data z FIFO a jiná data do FIFO zapsat. Ve většině případů je SIE součástí mikrořadiče USB. Zařízení USB má obecně několik pamětí FIFO, jejichž prostřednictvím je možno přenášet data.

Například myš, která je připojena přes USB, má vždy koncovou endpoint 0 a endpoint 1. Endpoint 0 se používá při inicializaci. Vlastní užitková data se z mikrořadiče v určitých časových odstupech zapisují do endpointu 1 a odtud si je vybírá PC. USB software tvoří tzv. roury (pipes) k jednotlivým endpointům (koncovým adresám). Jedna pipe je logický kanál k jednomu endpointu v jednom zařízení. Pipe si můžeme představit jako datový kanál tvořený jediným vodičem. Ve skutečnosti však jsou data v pipe přenášena jako datové pakety v milisekundových rámcích a hardwarem rozdělována na reálné paměti podle jejich koncové (endpoint) adresy. Jedno zařízení může současně používat několik rour (pipes), takže přenosová rychlost celkově vzroste.

Základní vlastnosti Maximální délka kabelu mezi sousedními zařízeními je 5 m, jedná se o délku, která je garantovaná. Delší kabel může být, ale nemusí už správně fungovat přenos dat. Kabel obsahuje 4 vodiče. Dva jsou pro napájení (5 V a zemnění). Druhý pár je kroucený a slouží pro přenos dat. I ta nejnižší přenosová rychlost mnohonásobně překračuje možnosti sériového portu. (Při porovnání obou portů je však třeba brát v úvahu i to, že jedno zařízení si nikdy nemůže nárokovat celou šířku pásma.) Sběrnice USB přináší tu výhodu, že při připojení přídavného rozdělovače sběrnice (hub) jsou k dispozici tři nové porty. Celkem je možno na USB připojit až 127 zařízení. Nevýhodou pro amatérského vývojáře je velká složitost USB. Na straně přístroje je třeba použít buďto převodník na USB nebo softwarovou knihovnu. Knihovna komunikuje obvykle jako HID zařízení, která zabere část výpočetního výkonu a řádově kB programové paměti; dále komunikace vyžaduje poměrně rychlé taktování mikrokontroleru. Na straně PC je nutný ovladač. Pro zprovoznění byť jednoduché komunikace je tedy třeba využívat USB knihovny na obou stranách. To se ale dnes řeší pomocí specializovaných obvodů typu FTDI233L Kdo se chce vážně zabývat vývojem, stojí ještě před další překážkou: každé zařízení USB má interní číslo dodavatele (vendorlD), které je oficiálně udělováno organizací USB. Zařízení je možno dodávat na trh jen s platným VID. (Mnohdy se od tohoto modelu upouští a používají se takzvané generické třídy. Odpadá tím i nutnost vývoje vlastního USB ovladače. Příkladem budiž jeden z nejrozšířenějších obvodů FTDI232.)

Plug and Play Výhodou je možnost připojování Plug & Play bez nutnosti restartování počítače nebo ručního instalování ovladačů. Zařízení lze připojit za chodu k počítači a během několika sekund je přístupné. Při připojení nového zařízení nejprve hub podle zdvižené datové linky pozná, že se objevilo nové zařízení. Pak proběhnou následující kroky: Hub informuje hostitelský počítač o tom, že bylo připojeno nové zařízení. Hostitelský počítač se dotáže hubu, na který port bylo zařízení připojeno. Po doručení odpovědi vydá počítač příkaz tento port zapnout a provést vynulování (reset) sběrnice. Hub vyrobí nulovací signál (reset) o délce 10 ms. Uvolní pro zařízení napájecí proud 100 mA. Zařízení je nyní připraveno a odpovídá na implicitní (default) adrese. Než zařízení USB obdrží svou vlastní adresu sběrnice, je možno se na ně obracet přes implicitní adresu 0. Hostitel si přečte první bajty popisovače zařízení, aby stanovil, jakou délku mohou mít datové pakety. Hostitel přiřadí zařízení jeho adresu na sběrnici. Hostitel si ze zařízení pod novou sběrnicovou adresou načte všechny konfigurační informace. Hostitel přiřadí zařízení jednu z možných konfigurací. Zařízení nyní může odebírat tolik proudu, kolik je uvedeno v jeho popisovači. Tím je připraveno k použití.

Datový přenos Dvojice datových vodičů (DATA+ a DATA−, standardně zelený a bílý vodič) je kroucená, vodiče VCC (+5 V, červený) a GND (černý) nikoli. Celý kabel je potom stíněný hliníkovou fólií.

Napájení náhled|Různé typy konektorů USB, zleva: nestandardní USB fotoaparátů Lumix, mini USB, typ B, samice typ A, typ A; pro srovnání 1rublová mince Rozlišuje se mezi zařízeními s vlastním napájecím zdrojem a zařízeními, která jsou napájena přes sběrnici USB. V mnoha případech je možno volit oba způsoby. Zařízení pak má například konektor pro napájecí zdroj, který je možno volitelně propojit s externím napájecím zdrojem. Podle specifikace USB je proudový odběr ze sběrnice automaticky omezen. Je-li tudíž odebírán větší proud než přípustný, napájení by mělo být odpojeno. Připojeným zařízením USB poskytuje i stejnosměrné napájecí napětí 5 V (přípustné meze jsou 4,4U USB3 je dolní mez 4,45 V.–5,25 V). Připojené zařízení tak může po sběrnici odebírat proud až 100 mA, v případě potřeby může zařízení ve standardu USB 2 požádat o větší proud, maximálně však o 500 mA. U osobních počítačů občas bývají napájecí vodiče sběrnice vyvedeny přímo ze zdroje počítače a USB zařízení připojené k počítači tak může odebírat i mnohem vyšší proud. Tohoto triku zneužívají například některé externí USB pevné disky, jejichž odběr je vyšší než požadovaných 500 mA a které po připojení k některému počítači nemusí fungovat.

+ Konektory dostupné v příslušných USB standardech Standard USB 1.01996 USB 1.11998 USB 2.02001 USB 2.0Revidovaný USB 3.2 Gen 12008 USB 3.2 Gen 22013 USB 3.2 Gen 2x22017 USB42019 USB4 V22022 Maximální přenosová rychlost 1.5 Mbps 12 Mbps 480 Mbps 5 Gbps 10 Gbps 20 Gbps 40 Gbps 80 Gbps Konektor typ A 75px 75px 75px colspan="3" Konektor typ B x60px x75px colspan="3" Konektor Mini-A 75x75px colspan="5" Konektor Mini-B 67x67px colspan="5" Konektor Mini-AB colspan="3" 60px colspan="5" Konektor Micro-A colspan="3" alt=|bezrámu|75x75px bezrámu|117x117px colspan="3" Konektor Micro-B colspan="3" alt=|bezrámu|75x75px bezrámu|117x117px colspan="3" Konektor Micro-AB colspan="3" 75x75px bezrámu|117x117px colspan="3" Konektor typ C colspan="2" 219x219px(klikněte pro detail)

Historie náhled|Zapojení vývodů konektorů A a B na panelu USB vzniklo za spolupráce firem Compaq, Hewlett-Packard, Intel, Lucent, NEC, Microsoft a Philips. Nahrazuje rozsáhle používaný sériový port RS-232. Univerzální sériová sběrnice ulehčuje obecně práci uživateli a má větší šířku pásma než sériový port RS-232. První specifikace USB byla navržena v roce 1995, jako levné univerzální rozhraní pro externí zařízení, která vystačí s nižší průchodností dat. Jeho účelem bylo sjednotit způsob připojování těchto periférií.

Skutečného rozšíření se dočkalo až v roce 1998, a to pravděpodobně díky dvěma faktům. Jednak byl na trh uvedený revoluční počítač iMac firmy Apple. Tento barevný poloprůhledný počítač byl jako první na světě vybaven pouze porty USB a podnítil výrobce k většímu zájmu o výrobu USB periférií a příslušenství. Počítačů iMac se prodalo za celou dobu produkce několik miliónů kusů a mimo své úlohy na rozšíření USB znamenal také návrat firmy Apple na stoly běžných spotřebitelů. Druhým podnětem pro zahájení hromadné výroby USB periferií bylo uvedení operačního systému Microsoft Windows 98 (25 milionů prodaných licencí za rok 1998). Do té doby používané Windows 95 totiž podporovaly USB pouze od verze OEM Service Release 2.1 bez možnosti doinstalování do starších verzí, koncové verze Windows 95 (tzv. „krabicové“) USB nepodporovaly vůbec.

USB 1.1 Ve verzi USB 1.1 existují pomalá (Low-Speed) zařízení s přenosovou rychlostí 1,5 Mbit/s (187,5 kB/s) a rychlá zařízení (Full-Speed) s rychlostí 12 Mbit/s (1,5 MB/s). USB 1.1 však nebylo schopno konkurovat vysokorychlostním rozhraním, např. FireWire (IEEE 1394) od firmy Apple (400 Mbit/s; až 63 zařízení).

USB 2.0 V roce 1999 se začalo uvažovat o druhé generaci USB, která by byla použitelná i pro náročnější zařízení (např. digitální kamery). Tato nová verze, označovaná jako USB 2.0, přišla v roce 2000 a nabídla maximální rychlost 480 Mbit/s (60 MB/s) v režimu Hi-Speed, avšak zachovala zpětnou kompatibilitu s USB 1.1 (režimy Low-Speed a Full-Speed).

USB nabíječky náhled|Slot pro USB nabíjení v autobusu. Většina síťových zdrojů k nabíjení mobilních telefonů je v dnešní době sjednocená a má výstup pro USB kabel. Aby mohl být síťový zdroj co nejjednodušší, je řízení nabíjení integrováno do regulátoru v přístroji (mobilním telefonu, tabletu…). Nabíjecí elektronika zjistí, že je připojená ke zdroji schopnému dodávat větší proud, otestováním odporu mezi datovými vodiči – má být mezi 0 a 200 Ohmy.

USB 3.1 generace 1 (přejmenováno z původního označení USB 3.0)