Un sistem USB are un design asimetric. Acesta este alcătuit dintr-o gazdă, mai multe porturi USB în aval și mai multe dispozitive periferice conectate într-o topologie în stea. În aceste niveluri pot fi incluse hub-uri USB suplimentare, permițând ramificarea într-o structură arborescentă cu până la cinci niveluri.
O gazdă USB poate avea mai multe controlere gazdă. Fiecare controler gazdă oferă unul sau mai multe porturi USB. Până la 127 de dispozitive, inclusiv dispozitivele hub, pot fi conectate la un singur controler gazdă.
Dispozitivele USB sunt conectate în serie prin intermediul unor hub-uri. Întotdeauna există un hub cunoscut sub numele de hub rădăcină. Hub-ul rădăcină este încorporat în controlerul gazdă. Există hub-uri speciale, denumite "hub-uri de partajare". Acestea permit mai multor calculatoare să acceseze aceleași dispozitive periferice. Acestea funcționează prin comutarea accesului între PC-uri, fie manual, fie automat. Acestea sunt populare în mediile de birouri mici. În termeni de rețea, acestea converg mai degrabă decât să devieze ramurile.
Un dispozitiv USB fizic poate avea mai multe subdispozitive logice care sunt denumite funcții ale dispozitivului. Un singur dispozitiv poate oferi mai multe funcții, de exemplu, o cameră web (funcție de dispozitiv video) cu un microfon încorporat (funcție de dispozitiv audio).
Comunicarea între dispozitivele USB se bazează pe țevi (canale logice). Canalele sunt conexiuni de la controlerul gazdă la o entitate logică de pe dispozitiv, numită endpoint. Termenul "endpoint" este ocazional utilizat pentru a se referi în mod incorect la pipe. Un dispozitiv USB poate avea până la 32 de conducte active, 16 în controlerul gazdă și 16 în afara acestuia.
Fiecare punct final poate transfera date într-o singură direcție, fie în interiorul, fie în afara dispozitivului, astfel încât fiecare conductă este unidirecțională. Punctele finale sunt grupate în interfețe, iar fiecare interfață este asociată cu o singură funcție a dispozitivului. O excepție este punctul final zero, care este utilizat pentru configurarea dispozitivului și care nu este asociat cu nicio interfață.
Atunci când un dispozitiv USB este conectat pentru prima dată la o gazdă USB, este inițiat procesul de enumerare a dispozitivului USB. Enumerarea începe prin trimiterea unui semnal de resetare către dispozitivul USB. Viteza dispozitivului USB este determinată în timpul semnalizării de resetare. După resetare, informațiile dispozitivului USB sunt citite de către gazdă, apoi dispozitivului i se atribuie o adresă unică pe 7 biți. Dacă dispozitivul este acceptat de gazdă, se încarcă driverele de dispozitiv necesare pentru a comunica cu acesta, iar dispozitivul este setat într-o stare configurată. În cazul în care gazda USB este repornită, procesul de enumerare se repetă pentru toate dispozitivele conectate.
Controlerul gazdă interoghează busul pentru trafic, de obicei în mod circular, astfel încât niciun dispozitiv USB nu poate transfera date pe bus fără o cerere explicită din partea controlerului gazdă.
Controlere gazdă
Echipamentul informatic care conține controlerul gazdă și hub-ul rădăcină are o interfață pentru programator. Aceasta se numește Dispozitiv controler gazdă (Host Controller Device - HCD) și este definită de către cel care implementează hardware-ul.
Pentru USB 1.0 și 1.1, au existat două implementări HCD diferite, Open Host Controller Interface (OHCI) și Universal Host Controller Interface (UHCI). OHCI a fost dezvoltată de Compaq, Microsoft și National Semiconductor, iar UHCI de Intel.
VIA Technologies a licențiat standardul UHCI de la Intel; toți ceilalți producători de chipseturi utilizează OHCI. UHCI se bazează mai mult pe software. Acest lucru înseamnă că UHCI necesită un procesor puțin mai mult decât OHCI, dar este mai ușor și mai ieftin de realizat. Deoarece existau două implementări diferite, furnizorii de sisteme de operare și furnizorii de hardware trebuiau să le dezvolte și să le testeze pe ambele. Acest lucru a crescut costurile.
Specificația USB nu specifică nicio interfață HCD și nu este preocupată de acestea. Cu alte cuvinte, USB definește formatul de transfer de date prin port, dar nu și sistemul prin care hardware-ul USB comunică cu calculatorul în care este instalat.
În timpul fazei de proiectare a USB 2.0, USB-IF a insistat să existe o singură implementare. Implementarea USB 2.0 HCD se numește Enhanced Host Controller Interface (EHCI). Numai EHCI poate suporta transferuri de mare viteză (480 Mbit/s). Majoritatea controllerelor EHCI bazate pe PCI au alte implementări HCD numite "companion host controller" pentru a suporta Full Speed (12 Mbit/s) și pot fi utilizate pentru orice dispozitiv care pretinde că face parte dintr-o anumită clasă. Se presupune că un sistem de operare trebuie să implementeze toate clasele de dispozitive, astfel încât să poată furniza drivere generice pentru orice dispozitiv USB. Clasele de dispozitive sunt stabilite de către Grupul de lucru pentru dispozitive din cadrul USB Implementers Forum.
Clase de dispozitive USB
Clasele de dispozitive includ:
| Clasa | Utilizare | Descriere | Exemple |
| 00h | Dispozitiv | Nespecificatclasa 0 | (Clasa dispozitivului este nespecificată. Descriptorii de interfață sunt utilizați pentru a determina driverele necesare). |
| 01h | Interfață | Audio | Difuzor, microfon, placă de sunet |
| 02h | Atât | Comunicații și controlul CDC | Adaptor Ethernet, modem, adaptor pentru port serial |
| 03h | Interfață | Dispozitiv de interfață umană (HID) | Tastatură, mouse, joystick |
| 05h | Interfață | Dispozitiv de interfață fizică (PID) | Joystick cu feedback de forță |
| 06h | Interfață | Imagine | Aparat foto digital (majoritatea aparatelor foto funcționează ca Mass Storage pentru acces direct la mediile de stocare). |
| 07h | Interfață | Imprimantă | Imprimantă laser, Imprimantă cu jet de cerneală |
| 08h | Interfață | Stocare în masă | Unitate flash USB, cititor de carduri de memorie, player audio digital, unități externe |
| 09h | Dispozitiv | Hub USB | Butuc de viteză completă, butuc de mare viteză |
| 0Ah | Interfață | CDC-Data | (Această clasă este utilizată împreună cu clasa 02h - Comunicații și control CDC). |
| 0Bh | Interfață | Card inteligent | Cititor de carduri inteligente USB |
| 0Dh | Interfață | Securitatea conținutului | - |
| 0Eh | Interfață | Video | Webcam |
| 0Fh | Interfață | Asistență medicală personală | - |
| DCh | Atât | Dispozitiv de diagnosticare | Dispozitiv de testare a conformității USB |
| E0h | Interfață | Controler fără fir | Adaptor Wi-Fi, adaptor Bluetooth |
| EFh | Atât | Diverse | Dispozitiv de sincronizare ActiveSync și Palm |
| FEh | Interfață | Aplicație specifică | Pod IrDA |
| FFh | Atât | Specific furnizorului | (Acest cod de clasă indică faptul că dispozitivul are nevoie de drivere specifice furnizorului). |
Notă clasa 0: Folosiți informațiile privind clasa din descriptorii de interfață. Această clasă de bază este definită pentru a fi utilizată în descriptorii de dispozitiv pentru a indica faptul că informațiile despre clasă trebuie să fie determinate din descriptorii de interfață din dispozitiv.