Cum se configurează smartphone-uri și PC-uri. Portal informativ
  • Acasă
  • Erori
  • Universal Serial Bus USB. Caracteristicile tipurilor magistralei USB serial universale

Universal Serial Bus USB. Caracteristicile tipurilor magistralei USB serial universale

Autobuzul serial USB (Universal Serial Bus) există de mult timp după standardele computerelor - prima versiune aprobată a standardului a apărut pe 15 ianuarie 1996. Dezvoltarea standardului a fost inițiată de companii foarte reputate - Intel, DEC, IBM, NEC, Northen Telecom și Compaq.

Scopul principal al setului standard pentru dezvoltatorii săi este de a crea o oportunitate reală pentru utilizatori de a lucra în modul Plug&Play cu dispozitive periferice. Aceasta înseamnă că trebuie să fie posibil să se conecteze dispozitivul la un computer care rulează, să-l recunoască automat imediat după conectare și apoi să se instaleze driverele corespunzătoare. În plus, este recomandabil să furnizați energie dispozitivelor de putere redusă din magistrala în sine. Viteza magistralei ar trebui să fie suficientă pentru marea majoritate a dispozitivelor periferice. În același timp, problema istorică a lipsei de resurse pe magistralele interne ale unui computer compatibil IBM PC este rezolvată - controlerul USB preia o singură întrerupere, indiferent de numărul de dispozitive conectate la magistrală.

Capacitățile magistralei serial USB decurg din caracteristicile sale tehnice:

Viteză mare de transfer (rată de biți de semnalizare la viteză maximă) – 12 Mb/s

Lungimea maximă a cablului pentru viteză mare de transfer – 5 m

Rată de biți de semnalizare de mică viteză – 1,5 Mb/s

Lungimea maximă a cablului pentru viteză redusă de transfer – 3 m

Numărul maxim de dispozitive conectate (inclusiv multiplicatori) este 127.

Este posibil să conectați dispozitive cu viteze de transmisie diferite

Nu este nevoie ca utilizatorul să instaleze elemente suplimentare, cum ar fi terminatoarele SCSI

Tensiune de alimentare pentru dispozitivele periferice – 5 V

Consumul maxim de curent per dispozitiv este de 500 mA.

Prin urmare, este recomandabil să conectați aproape orice dispozitiv periferic la USB, cu excepția camerelor video digitale și a hard disk-urilor de mare viteză. Conectorii USB sunt proiectați pentru a rezista la mai multe împerecheri/deconectari.

Capacitatea de a utiliza doar două rate de date limitează capacitatea de utilizare a magistralei, dar reduce semnificativ numărul de linii de interfață și simplifică implementarea hardware.

Alimentarea directă de la USB este posibilă numai pentru dispozitivele cu consum redus, cum ar fi tastaturi, mouse-uri, joystick-uri etc.

Semnalele USB sunt transmise printr-un cablu cu 4 fire.

Cablul de magistrală de viteză completă este un cablu cu pereche răsucită, protejat de un ecran și poate fi folosit și pentru funcționarea la viteză mică. Un cablu pentru funcționare numai la viteză minimă (de exemplu, pentru a conecta un mouse) poate fi orice și neecranat.

Sistemul USB este împărțit în trei niveluri cu anumite reguli de interacțiune. Un dispozitiv USB conține o parte de interfață, o parte de dispozitiv și o parte funcțională. Gazda este, de asemenea, împărțită în trei părți - software de interfață, sistem și dispozitiv. Fiecare parte este responsabilă doar pentru o anumită gamă de sarcini; interacțiunea logică și reală dintre ele este ilustrată în Fig. 69.

Structura luată în considerare include următoarele elemente:

Un dispozitiv USB fizic este un dispozitiv de pe magistrală care îndeplinește funcții de interes pentru utilizatorul final.

Client SW – software corespunzător unui anumit dispozitiv, executat pe computerul gazdă. Poate fi parte a sistemului de operare sau a unui produs special.

USB System SW – suport de sistem pentru USB, independent de dispozitivele specifice și software-ul client.

USB Host Controller – hardware și software pentru conectarea dispozitivelor USB la un computer gazdă.

Orez. 69 Interacțiunea componentelor USB

Interfață fizică

Semnalele de informații și tensiunea de alimentare de 5V sunt transmise printr-un cablu cu patru fire. Se folosește o metodă diferențială de transmitere a semnalelor D+ și D– pe două fire. Nivelurile semnalului emițătorului în modul static trebuie să fie sub 0,3 V (nivel scăzut) sau peste 2,8 V (nivel înalt). Receptoarele pot rezista la o tensiune de intrare în intervalul -0,5...+3,8 V. Emițătoarele trebuie să poată comuta la o stare de impedanță mare pentru transmisia bidirecțională semi-duplex pe o pereche de fire.

Transmisia cu două fire în USB nu se limitează la semnale diferențiale. Pe lângă receptorul diferenţial, fiecare dispozitiv are receptoare liniare pentru semnale D+ şi D–, iar emiţătoarele acestor linii sunt controlate individual. Acest lucru face posibilă distingerea între mai mult de două stări de linie utilizate pentru a stabili o interfață hardware. Stările DiffO și Diff1 sunt determinate de diferența de potențial pe liniile D+ și D – de peste 200 mV, cu condiția ca pe una dintre ele potențialul să fie mai mare decât pragul de răspuns VSE. O condiție în care un nivel scăzut este prezent la ambele intrări D+ și D– se numește zero liniar (SEO – Single-Ended Zero). Interfața definește următoarele stări:

DataJ State și Data K State – stările bitului transmis (sau pur și simplu J și K), sunt determinate prin stările DiffO și Diff1.

Stare inactivă – pauză în autobuz.

Reluare stare – semnal „trezire” pentru a trezi dispozitivul din modul „repaus”.

Start of Packet (SOP) – începutul pachetului (tranziție de la starea inactivă la K).

Sfârșitul pachetului (EOP) – sfârșitul pachetului.

Deconectare – dispozitivul este deconectat de la port.

Conectare – dispozitivul este conectat la port.

Resetare – resetați dispozitivul.

Starile sunt determinate de combinatii de semnale diferentiale si liniare; pentru viteze maxime și scăzute, stările DiffO și Diff1 au scopuri opuse. La decodarea stărilor Deconectare, Conectare și Resetare, se ia în considerare timpul în care liniile sunt în anumite stări (mai mult de 2,5 ms).

Autobuzul are două moduri de transmisie. Viteza completă de semnalizare USB este de 12 Mbps, viteza mică este de 1,5 Mbps. Pentru viteză maximă se folosește un cablu torsadat ecranat cu o impedanță de 90 ohmi și o lungime a segmentului de până la 5 m, pentru viteză mică se folosește un cablu neecranat nerăsucit până la 3 m.

Semnalele de sincronizare sunt codificate împreună cu datele folosind metoda NRZI (Non Return to Zero Invert), funcționarea acesteia este ilustrată în Fig. 72. Fiecare pachet este precedat de un câmp SYNC care permite receptorului să se acorde la frecvența emițătorului.

Cablul are, de asemenea, linii VBus și GND pentru a transmite tensiunea de alimentare de 5V către dispozitive. Secțiunea transversală a conductorilor este selectată în funcție de lungimea segmentului pentru a asigura un nivel de semnal garantat și o tensiune de alimentare.

Orez. 70 Conectarea unui dispozitiv de viteză maximă

Orez. 71 Conectarea unui dispozitiv de viteză redusă

Orez. 72. Codificarea datelor folosind metoda NRZI

Standardul definește două tipuri de conectori (Tabelul 7 și Fig. 73).

Tabelul 7

Conectorii de tip „A” sunt utilizați pentru a se conecta la hub-uri (Conector Upstream). Fișele sunt instalate pe cabluri care nu sunt detașabile de pe dispozitive (de exemplu, tastatură, mouse etc.). Prizele sunt instalate pe porturile din aval ale hub-urilor.

Conectorii de tip B (Downstream Connectors) sunt instalați pe dispozitivele de la care cablul de conectare poate fi deconectat (imprimante și scanere). Piesa de împerechere (ștecher) este instalată pe cablul de conectare, capătul opus al căruia are o mufă de tip „A”.

Conectorii de tipurile „A” și „B” sunt diferiți din punct de vedere mecanic (Fig. 73), ceea ce elimină conexiunile în buclă inacceptabile ale porturilor hub. Conectorii cu patru pini au cheie pentru a preveni conectarea incorectă. Designul conectorilor asigură conectarea tardivă și deconectarea timpurie a circuitelor de semnal în comparație cu circuitele de alimentare. Pentru a recunoaște conectorul USB, pe corpul dispozitivului este plasată o desemnare simbolică standard.

Orez. 73. Prize USB: a – tip „A”, b – tip „B”, c – denumire simbolică

Model de transfer de date

Fiecare dispozitiv USB este un set de puncte finale independente cu care controlerul gazdă face schimb de informații. Punctele finale sunt descrise de următorii parametri:

frecvența necesară de acces la autobuz și întârzierile acceptabile ale serviciului;

lățimea de bandă necesară a canalului;

numărul punctului;

cerințe de tratare a erorilor;

dimensiunile maxime ale pachetelor transmise și primite;

tip de schimb;

direcția schimbului (pentru schimburi continue și izocrone).

Fiecare dispozitiv trebuie să aibă un punct final numerotat 0, care este utilizat pentru inițializare, management general și interogare a stării sale. Acest punct este întotdeauna configurat când alimentarea este pornită și dispozitivul este conectat la magistrală. Acceptă transferuri de tip control.

În plus față de punctul zero, dispozitivele funcționale pot avea puncte suplimentare care implementează schimbul de date util. Dispozitivele cu viteză mică pot avea până la două puncte suplimentare, dispozitivele cu viteză maximă pot avea până la 16 puncte de intrare și 16 puncte de ieșire (limitare de protocol). Punctele nu pot fi utilizate până când nu sunt configurate (se stabilește canalul asociat acestora).

Un canal (Pipe) în USB este un model de transfer de date între controlerul gazdă și punctul final (Endpoint) al dispozitivului. Există două tipuri de canale: fluxuri (Stream) și mesaje (Message). Fluxul furnizează date de la un capăt la celălalt al canalului, este întotdeauna unidirecțional. Același număr de punct final poate fi utilizat pentru două canale de flux - intrare și ieșire. Un fir poate implementa următoarele tipuri de comunicare: continuă, izocronă și întreruperi. Livrarea se face întotdeauna pe principiul primul intrat, primul ieșit (FIFO); Din perspectiva USB, datele fluxului sunt nestructurate. Mesajele sunt într-un format definit de specificația USB. Gazda trimite o cerere către punctul final, după care este trimis (primit) un pachet de mesaje, urmat de un pachet care conține informațiile de stare ale punctului final. Următorul mesaj nu poate fi trimis în mod normal înainte ca cel anterior să fie procesat, dar atunci când se gestionează erori, este posibil să resetați mesajele netratate. Mesageria bidirecțională este adresată aceluiași punct final. Numai schimburile de tip control sunt folosite pentru a livra mesaje.

Canalele au caracteristici asociate cu punctul final (lățimea de bandă, tipul de serviciu, dimensiunea bufferului etc.). Canalele sunt create la configurarea dispozitivelor USB. Pentru fiecare dispozitiv activat, există un canal de mesaje (Control Pipe 0) prin care sunt transmise informații de configurare, control și stare.

Tipuri de transfer de date

USB acceptă atât moduri de comunicare unidirecțională, cât și bidirecțională. Transferul de date are loc între software-ul gazdă și punctul final al dispozitivului. Un dispozitiv poate avea mai multe puncte finale, iar comunicarea cu fiecare dintre ele (canal) se stabilește independent.

Arhitectura USB permite patru tipuri de bază de transfer de date:

Transferuri de control utilizate pentru configurare în timpul conexiunii și în timpul funcționării pentru a controla dispozitivele. Protocolul asigură livrarea de date garantată. Lungimea câmpului de date al mesajului de control nu depășește 64 de octeți la viteză maximă și 8 octeți la viteză mică.

Transferuri de date în vrac ale pachetelor relativ mari, fără cerințe stricte privind timpul de livrare. Transmisiile ocupă toată lățimea de bandă liberă a magistralei. Pachetele au un câmp de date de 8, 16, 32 sau 64 de octeți. Aceste viteze au cea mai mică prioritate și pot fi suspendate atunci când autobuzul este încărcat puternic. Permis numai la viteza maximă de transmisie.

Întreruperile sunt transmisii scurte (până la 64 de octeți la viteză maximă, până la 8 octeți la viteză redusă), precum caracterele de intrare sau coordonatele. Întreruperile sunt de natură spontană și trebuie întreținute nu mai lent decât este cerut de dispozitiv. Limita de timp de serviciu este setată în intervalul 1–255 ms pentru viteză maximă și 10–255 ms pentru viteză mică.

Transferurile izocrone sunt transferuri continue în timp real care ocupă o porțiune prestabilită din lățimea de bandă a magistralei și au o întârziere de livrare specificată. Dacă este detectată o eroare, datele izocrone sunt transmise fără repetare - pachetele nevalide sunt ignorate. Un exemplu este transmisia digitală a vocii. Lățimea de bandă este determinată de cerințele de calitate a transmisiei, iar întârzierea livrării poate fi critică, de exemplu, atunci când se implementează teleconferința.

Lățimea de bandă a magistralei este împărțită între toate canalele instalate. Lățimea de bandă alocată este atribuită unui canal, iar dacă stabilirea unui nou canal necesită o lățime de bandă care nu se încadrează în alocarea existentă, cererea de alocare a canalului este respinsă.

Arhitectura USB asigură tamponarea internă a tuturor dispozitivelor și, cu cât dispozitivul necesită mai multă lățime de bandă, cu atât tamponul său ar trebui să fie mai mare. USB trebuie să asigure transferul de date la o astfel de viteză încât întârzierea datelor din dispozitiv cauzată de buffering să nu depășească câteva milisecunde.

Transferurile izocrone sunt clasificate în funcție de metoda de sincronizare a punctelor finale - surse sau destinatari ai datelor - cu sistemul: ele disting între clase de dispozitive asincrone, sincrone și adaptive, fiecare dintre ele având propriul tip de canal USB.

Protocol

Toate schimburile (tranzacțiile) prin USB constau din trei pachete. Fiecare tranzacție este programată și inițiată de controlor, care trimite un pachet de simboluri. Acesta descrie tipul și direcția transferului, adresa dispozitivului USB și numărul punctului final. În fiecare tranzacție, schimbul este posibil doar între dispozitivul adresat (punctul final al acestuia) și gazdă. Dispozitivul adresat de marker își recunoaște adresa și se pregătește pentru schimb. Sursa de date (identificată prin simbol) transmite un pachet de date (sau o notificare că nu există date de transmis). După primirea cu succes a pachetului, receptorul de date trimite un pachet de confirmare (Handshake Packet).

Programarea tranzacțiilor oferă control asupra canalelor de flux. La nivel hardware, utilizarea unei renunțări la tranzacție (NAck) atunci când rata de transfer este inacceptabilă împiedică debordarea tampoanelor în partea de sus și de jos. Tokenurile tranzacțiilor respinse sunt retransmise atunci când autobuzul este liber. Gestionarea fluxului vă permite să programați în mod flexibil întreținerea fluxurilor de date eterogene simultane.

Următoarele proprietăți USB oferă rezistență la erori:

Calitate ridicată a semnalului obținută prin receptoare/emițătoare diferențiale și cabluri ecranate.

Protecția câmpurilor de control și a datelor cu coduri CRC.

Detectează conectarea și deconectarea dispozitivelor și configurează resursele la nivel de sistem.

Protocol de auto-vindecare cu timeout atunci când pachetele sunt pierdute.

Controlul fluxului pentru izocronie și gestionarea tamponului hardware.

Independența funcțiilor față de schimburile nereușite cu alte funcții.

Pentru a detecta erorile de transmisie, fiecare pachet are câmpuri de control CRC pentru a detecta toate erorile de un singur și dublu bit. Hardware-ul detectează erori de transmisie, iar controlerul încearcă automat transmiterea de trei ori. Dacă reîncercările nu reușesc, un mesaj de eroare este raportat software-ului client.

Formate de pachete

Octeții sunt transferați pe magistrală secvenţial, începând cu bitul cel mai puţin semnificativ. Toate coletele sunt organizate în pachete. Fiecare pachet începe cu un câmp de sincronizare, care este reprezentat de secvența de stări KJKJKJKK (codificat NRZI) care urmează stării Idle. Ultimii doi biți (CC) sunt începutul marcatorului de pachet SOP, utilizat pentru a identifica primul bit al identificatorului de pachet PID. Identificatorul de pachet este un câmp PID de 4 biți care identifică tipul de pachet (Tabelul 8), urmat de aceiași 4 biți, dar inversați, ca biți de control.

Câmpurile de adresă din pachetele marcatoare IN, SETUP și OUT sunt o adresă de funcție de 7 biți și o adresă de punct final de 4 biți. Acestea permit adresarea a până la 127 de funcții USB (adresa zero este utilizată pentru configurare) și 16 puncte finale per funcție.

Pachetul SOF are un câmp de număr de cadru de 11 biți, care este incrementat secvenţial (ciclic) pentru fiecare cadru.

Câmpul de date poate avea o dimensiune de la 0 la 1023 de octeți întregi. Mărimea câmpului depinde de tipul de transmisie și se negociază la stabilirea canalului.

Câmpul SCS-col este prezent în toate jetoanele și pachetele de date; protejează toate câmpurile pachetului, cu excepția PID. CRC-urile pentru jetoane (5 biți) și date (11 biți) sunt calculate folosind formule diferite.

Tabelul 8

Conținut și scop

Adresa funcției și numărul punctului final – simbolul de tranzacție al funcției

Adresa funcției și numărul punctului final - token de tranzacție gazdă

Începutul marcatorului de cadru

Adresa funcției și numărul punctului final - jeton de tranzacție cu punct de control

Pachetele de date PID pare și impare sunt intercalate pentru a identifica cu acuratețe confirmările

Confirmarea primirii pachetelor fără erori

Receptorul nu a reușit să primească sau emițătorul nu a reușit să transmită date. Poate fi folosit pentru controlul fluxului de date (nepregătit). În tranzacțiile de întrerupere, este un indiciu că nu există întreruperi neservite

Punctul final necesită intervenția gazdei

Preambul transmisie cu viteză mică

Fiecare tranzacție este inițiată de controlerul gazdă prin trimiterea unui token și se termină cu un pachet de strângere de mână. Secvența pachetelor în tranzacții este ilustrată în Fig. 7.7.

Controlerul gazdă organizează schimburi cu dispozitive conform planului său de alocare a resurselor. Controlerul în mod ciclic (cu o perioadă de 1 ms) generează cadre în care se încadrează toate tranzacțiile programate. Fiecare cadru începe cu trimiterea unui marcator SOF (Start Of Frame), care este un semnal de sincronizare pentru toate dispozitivele, inclusiv hub-urile. La sfârșitul fiecărui cadru, este alocat un interval de timp EOF (End Of Frame), timp în care hub-urile interzic transmiterea către controler. Fiecare cadru are propriul său număr. Controlerul gazdă operează un numărător de 32 de biți, dar transmite doar cei 11 biți inferiori în jetonul SOF. Numărul cadrelor crește (ciclic) în timpul EOF. Gazda programează încărcarea cadrelor astfel încât să existe întotdeauna loc pentru control și întreruperea tranzacțiilor. Timpul liber al cadrelor poate fi umplut cu transferuri continue (Bulk Transfers).

Sarcina de a finaliza lucrarea

1. Descrieți funcțiile de gestionare a magistralei și portului

a) formarea unei adrese de port

b) organizarea unui canal end-to-end în interfața sistemului pentru transferul de date între portul dispozitivului I/O și MP.

2. Structura memoriei microprocesorului.

3. USB serial bus. Moduri de transmitere a datelor.

4. Chipset. Scopul ei. Diagrama chipset-ului.

5. Memorie cu microprocesor. Registrele și scopul lor.

6. Interfețe standard și formate de transfer de date.

7. Furnizați diagrame pentru conectarea modemurilor, imprimantelor, plotterelor la portul COM.

8. Desenați o diagramă a interacțiunii componentelor \USB.

Istoricul apariției și dezvoltării standardelor Universal Serial Bus (USB).

    Înainte de prima implementare a magistralei USB, configurația standard a unui computer personal includea un port paralel, de obicei pentru conectarea unei imprimante (port LPT), două porturi de comunicație seriale (porturi COM), de obicei pentru conectarea unui mouse și modem, și un port pentru un joystick (port GAME). Această configurație a fost destul de acceptabilă în primele zile ale computerelor personale și, timp de mulți ani, a fost standardul practic pentru producătorii de echipamente. Cu toate acestea, progresul nu a stat pe loc, gama și funcționalitatea dispozitivelor externe au fost îmbunătățite în mod constant, ceea ce a dus în cele din urmă la necesitatea revizuirii configurației standard, ceea ce a limitat posibilitatea de a conecta dispozitive periferice suplimentare, care au devenit din ce în ce mai numeroase în fiecare zi.

    Încercările de creștere a numărului de porturi I/O standard nu au putut duce la o soluție fundamentală a problemei și a apărut necesitatea dezvoltării unui nou standard care să ofere o conexiune simplă, rapidă și convenabilă a unui număr mare de dispozitive periferice de diverse scopuri pentru orice computer cu configurație standard, care, în cele din urmă, a condus la apariția Universal Serial Bus Universal Serial Bus (USB)

    Prima specificație a interfeței seriale USB (autobuz serial universal), numit USB 1.0, aparut in 1996, o versiune îmbunătățită bazată pe aceasta, USB 1.1- V 1998 Lățimea de bandă a magistralelor USB 1.0 și USB 1.1 - până la 12 Mbit/s (de fapt, până la 1 megaoctet pe secundă) a fost suficientă pentru dispozitivele periferice cu viteză redusă, cum ar fi un modem analogic sau un mouse de computer, dar insuficientă pentru dispozitivele cu rate mari de transfer de date, care a fost principalul dezavantaj al acestei specificații. Cu toate acestea, practica a arătat că magistrala serial universală este o soluție de mare succes, adoptată de aproape toți producătorii de echipamente informatice ca direcție principală de dezvoltare a perifericelor de calculator.

ÎN 2000 există o nouă specificație - USB 2.0, oferind deja viteze de transfer de date de până la 480 Mbit/s (de fapt, până la 32 megaocteți pe secundă). Specificația presupunea compatibilitate deplină cu standardul USB 1.X anterior și performanțe destul de acceptabile pentru majoritatea dispozitivelor periferice. Începe un boom în producția de dispozitive echipate cu o interfață USB. Interfețele „clasice” de intrare-ieșire au fost complet înlocuite și au devenit exotice. Cu toate acestea, pentru unele echipamente periferice de mare viteză, chiar și specificația de succes USB 2.0 a rămas un blocaj, ceea ce a necesitat dezvoltarea în continuare a standardului.

ÎN 2005 Specificația pentru implementarea wireless a USB a fost anunțată - USB fără fir - WUSB, permițându-vă să conectați wireless dispozitive la o distanță de până la 3 metri cu o viteză maximă de transfer de date de 480 Mbit/s și la o distanță de până la 10 metri cu o viteză maximă de 110 Mbit/s. Specificația nu a primit o dezvoltare rapidă și nu a rezolvat problema creșterii vitezei reale de transfer de date.

ÎN 2006 specificația a fost anunțată USB-OTG (USB O n- T el- G o, datorită căruia a devenit posibilă comunicarea între două dispozitive USB fără o gazdă USB separată. Rolul gazdei în acest caz este îndeplinit de unul dintre dispozitivele periferice. Smartphone-urile, camerele digitale și alte dispozitive mobile trebuie să acționeze atât ca gazdă, cât și ca dispozitiv periferic. De exemplu, atunci când o cameră este conectată prin USB la un computer, este un dispozitiv periferic, iar când este conectată o imprimantă, este o gazdă. Suport pentru specificații USB-OTG a devenit treptat standardul pentru dispozitivele mobile.

În 2008 a apărut specificația finală a noului standard de magistrală serial universală - USB 3.0. Ca și în cazul versiunilor anterioare ale implementării autobuzului, este asigurată compatibilitatea electrică și funcțională cu standardele anterioare. Viteza de transfer de date pentru USB 3.0 a crescut de 10 ori - până la 5 Gbps. La cablul de interfață au fost adăugate 4 nuclee suplimentare, iar contactele acestora au fost așezate separat de cele 4 contacte ale standardelor anterioare, într-un rând suplimentar de contacte. Pe lângă viteza crescută de transfer de date, magistrala USB se caracterizează și printr-o putere crescută a curentului în circuitul de alimentare în comparație cu standardele anterioare. Viteza maximă de transfer de date prin magistrala USB 3.0 a devenit acceptabilă pentru aproape orice echipament de computer periferic produs în masă.

ÎN 2013 A fost adoptată următoarea specificație de interfață - USB 3.1, a cărui rată de transfer de date poate ajunge la 10 Gbit/s. În plus, a apărut un conector USB compact cu 24 de pini Tip-C, care este simetric, permițând introducerea cablului pe ambele părți.

Odată cu lansarea standardului USB 3.1, USB Implementers Forum (USB-IF) a anunțat că conectorii USB 3.0 cu viteze de până la 5 Gbps (SuperSpeed) vor fi acum clasificați ca USB 3.1 Gen 1 și noi conectori USB 3.1 cu viteze mai mari. la 10 Gbps s (SuperSpeed ​​​​USB 10Gbps) - ca USB 3.1 Gen 2. Standardul USB 3.1 este compatibil cu USB 3.0 și USB 2.0.

ÎN 2017 anul, Forumul Implementatorilor USB (USB-IF) a publicat o specificație USB 3.2. Viteza maximă de transfer este de 10 Gbit/s. Cu toate acestea, USB 3.2 oferă posibilitatea de a agrega două conexiuni ( Operare pe două benzi), permițându-vă să creșteți debitul teoretic la 20 Gbit/s. Implementarea acestei caracteristici este opțională, adică suportul său la nivel hardware va depinde de producătorul specific și de nevoia tehnică, care diferă, de exemplu, pentru o imprimantă și un hard disk portabil. Posibilitatea implementării acestui mod este oferită numai la utilizare USB tip C.

www.usb.org- Documentație de specificații USB pentru dezvoltatori în limba engleză.

Trebuie remarcat faptul că a existat și încă există o alternativă la magistrala USB. Chiar înainte de introducerea sa, Apple a dezvoltat o specificație pentru magistrala serial FireWire(alt nume - iLink), care în 1995 a fost standardizat de Institutul American de Ingineri Electrici și Electronici (IEEE) sub numărul 1394. IEEE 1394 poate funcționa în trei moduri: cu rate de transfer de date de până la 100, 200 și 400 Mbit/s. Cu toate acestea, din cauza costului ridicat și a implementării mai complexe decât USB, acest tip de magistrală serială de mare viteză nu s-a răspândit și este treptat înlocuit de USB 2.0 - USB 3.2.

Principii generale de funcționare a dispozitivelor periferice Universal Serial Bus (USB).

    Interfața USB s-a dovedit a fi o soluție atât de reușită încât a fost echipată cu aproape toate clasele de dispozitive periferice, de la un telefon mobil la o cameră web sau un hard disk portabil. Cele mai răspândite dispozitive (deocamdată) sunt cele care acceptă USB 2.0. Cu toate acestea, USB 3.0 – 3.1 este mai solicitat pentru dispozitivele de mare viteză, unde devine principalul, înlocuind treptat USB 2.0.

    Dispozitivele periferice cu suport USB, atunci când sunt conectate la un computer, sunt recunoscute automat de sistem (în special, software-ul driverului și lățimea de bandă a magistralei) și sunt gata să funcționeze fără intervenția utilizatorului. Dispozitivele cu un consum redus de energie (până la 500mA) pot să nu aibă propria sursă de alimentare și să fie alimentate direct de la magistrala USB.

    Utilizarea USB elimină necesitatea demontării carcasei computerului pentru a instala periferice suplimentare și elimină necesitatea de a face setări complexe atunci când le instalați.

    USB elimină problema limitării numărului de dispozitive conectate. Când utilizați USB, până la 127 de dispozitive pot funcționa simultan cu un computer.

    USB permite conectarea la cald. Acest lucru nu necesită mai întâi oprirea computerului, apoi conectarea dispozitivului, repornirea computerului și configurarea dispozitivelor periferice instalate. Pentru a deconecta un dispozitiv periferic, nu trebuie să urmați procedura inversă descrisă mai sus.

Pur și simplu, USB vă permite să realizați practic toate beneficiile tehnologiei moderne plug and play. Dispozitivele proiectate pentru USB 1.x pot funcționa cu controlere USB 2.0. și USB 3.0

Când un dispozitiv periferic este conectat, este generată o întrerupere hardware și controlul este primit de driverul HCD ( Driver de controler gazdă) Controler USB ( USB Host Controller - UHC), care este în prezent integrat în toate chipseturile de plăci de bază fabricate. Interogează dispozitivul și primește informații de identificare de la acesta, pe baza cărora controlul este transferat șoferului care deservește acest tip de dispozitiv. Controlerul UHC are un hub rădăcină (Hub), care oferă conexiune la magistrala dispozitivului USB.

Hub (HUB USB).

Se numesc punctele de conectare porturi. Un alt hub poate fi conectat la port ca dispozitiv. Fiecare hub are un port de ieșire ( port din amonte), conectându-l la controlerul principal și la porturile din aval ( portul din aval) pentru conectarea dispozitivelor periferice. Hub-urile pot detecta, conecta și deconecta la fiecare port de legătură în jos și pot oferi distribuție a energiei dispozitivelor de legătură în jos. Fiecare dintre porturile de downlink poate fi activat și configurat individual la viteză maximă sau mică. Hub-ul este format din două blocuri: hub controller-ul și hub repeater. Un repetor este un comutator controlat de protocol între un port uplink și porturile downlink. Hub-ul conține, de asemenea, hardware pentru a sprijini resetarea conexiunii și pauză/reluare. Controlerul oferă registre de interfață care permit transferul de date către și de la controlerul principal. Starea hubului și comenzile de control definite permit procesorului gazdă să configureze hub-ul și să monitorizeze și să gestioneze porturile acestuia.


Hub-urile externe pot avea propria lor sursă de alimentare sau pot fi alimentate de la magistrala USB.

Cabluri și conectori USB

Conectorii de tip A sunt utilizați pentru a se conecta la un computer sau hub. Conectorii de tip B sunt utilizați pentru conectarea la dispozitive periferice.

Toți conectorii USB care pot fi conectați unul la altul sunt proiectați să funcționeze împreună.

Toți pinii conectorului USB 2.0 sunt compatibili din punct de vedere electric cu pinii corespunzători ai conectorului USB 3.0. În același timp, conectorul USB 3.0 are contacte suplimentare care nu au o corespondență în conectorul USB 2.0 și, prin urmare, la conectarea conectorilor de versiuni diferite, contactele „extra”, asigurând funcționarea normală a conexiune versiunea 2.0. Toate mufele și mufele dintre USB 3.0 Tip A și USB 2.0 Tip A sunt proiectate pentru a funcționa împreună. Mufa USB 3.0 Tip B este puțin mai mare decât ceea ce ar fi necesar pentru un USB 2.0 Tip B și mufa anterioară. În același timp, este posibil să conectați acest tip de mufă la aceste prize. În consecință, pentru a conecta un dispozitiv periferic cu un conector USB 3.0 Tip B la un computer, puteți utiliza ambele tipuri de cabluri, dar pentru un dispozitiv cu un conector USB 2.0 Tip B - doar un cablu USB 2.0. Prizele eSATAp, desemnate ca eSATA/USB Combo, adică având posibilitatea de a conecta o mufă USB la ele, au capacitatea de a conecta mufe USB de tip A: USB 2.0 și USB 3.0, dar în modul de viteză USB 2.0.

Conectorii USB de tip C oferă conexiuni atât la periferice, cât și la computere, înlocuind diferiții conectori și cabluri de tip A și tip B din standardele USB anterioare și oferind opțiuni de extindere viitoare. Conectorul cu două fețe cu 24 de pini este destul de compact, aproape ca dimensiune de conectorii micro-B ai standardului USB 2.0. Dimensiunile conectorului sunt de 8,4 mm pe 2,6 mm. Conectorul oferă 4 perechi de contacte pentru alimentare și masă, două perechi diferențiale D+/D- pentru transmisia de date la viteze mai mici decât SuperSpeed ​​​​(la cablurile de tip C este conectată doar una dintre perechi), patru perechi diferențiale pentru transmiterea de semnale SuperSpeed ​​de mare viteză, două contacte auxiliare (bandă laterală), doi pini de configurare pentru determinarea orientării cablului, un canal de date de configurare dedicat (codare BMC - cod bifazat) și un pin de alimentare de +5 V pentru cablurile active.

Contactele conectorului și aspectul cablului USB Type-C

Tip C - ștecher și priză

Con. Nume Descriere Con. Nume Descriere
A1 GND Împământare B12 GND Împământare
A2 SSTXp1 Diff. perechea nr. 1 SuperSpeed, transmisie, pozitiv B11 SSRXp1 Diff. perechea nr. 2 SuperSpeed, receptie, pozitiv
A3 SSTXn1 Diff. perechea nr. 1 SuperSpeed, transmisie, negativ B10 SSRXn1 Diff. perechea nr. 2 SuperSpeed, receptie, negativ
A4 V AUTOBUZ Nutriție B9 V AUTOBUZ Nutriție
A5 CC1 Canal de configurare B8 SBU2 Banda laterală nr. 2 (SBU)
A6 Dp1 Diff. pereche non-SuperSpeed, poziția 1, pozitivă B7 Dn2 Diff. pereche non-SuperSpeed, poziția 2, negativă
A7 Dn1 Diff. pereche non-SuperSpeed, poziția 1, negativ B6 Dp2 Diff. pereche non-SuperSpeed, poziția 2, pozitivă
A8 SBU1 Banda laterală nr. 1 (SBU) B5 CC2 Canal de configurare
A9 V AUTOBUZ Nutriție B4 V AUTOBUZ Nutriție
A10 SSRXn2 Diff. perechea nr. 4 SuperSpeed, transmisie, negativ B3 SSTXn2 Diff. perechea nr. 3 SuperSpeed, receptie, negativ
A11 SSRXp2 Diff. perechea nr. 4 SuperSpeed, transmisie, pozitiv B2 SSTXp2 Diff. perechea nr. 3 SuperSpeed, receptie, pozitiv
A12 GND Împământare B1 GND Împământare
  1. Pereche diferențială neecranată, poate fi utilizată pentru implementarea USB Low Speed ​​​​(1.0), Full Speed ​​​​(1.0), High Speed ​​​​(2.0) - până la 480 Mbps
  2. Cablul implementează doar una dintre perechile diferențiale non-SuperSpeed. Acest contact nu este folosit în priză.
Scopul conductorilor din cablul USB 3.1 Type-C
Conectorul nr. 1 al cablului Tip-C Cablu Tip-C Conectorul nr. 2 al cablului Tip-C
a lua legatura Nume Culoarea mantalei conductorului Nume Descriere a lua legatura Nume
Tresă Ecran Impletitura cablu Ecran Impletitura exterioara a cablului Tresă Ecran
A1, B1, A12, B12 GND Cositorit GND_PWRrt1
GND_PWRrt2
Pământ comun> A1, B1, A12, B12 GND
A4, B4, A9, B9 V AUTOBUZ roșu PWR_V BUS 1
PWR_V BUS 2
Alimentare V BUS A4, B4, A9, B9 V AUTOBUZ
B5 V CONN Galben
PWR_V CONN V CONN putere B5 V CONN
A5 CC Albastru CC Canal de configurare A5 CC
A6 Dp1 alb UTP_Dp Pereche diferențială neecranată, pozitivă A6 Dp1
A7 Dn1 Verde UTP_Dn Pereche diferențială neecranată, negativă A7 Dn1
A8 SBU1 roșu SBU_A Banda de date A B8 SBU2
B8 SBU2 Negru SBU_B Banda de date B A8 SBU1
A2 SSTXp1 Galben * SDPp1 Pereche diferențială ecranată #1, pozitivă B11 SSRXp1
A3 SSTXn1 maro* SDPn1 Pereche diferențială ecranată #1, negativă B10 SSRXn1
B11 SSRXp1 verde * SDPp2 Pereche diferențială ecranată #2, pozitivă A2 SSTXp1
B10 SSRXn1 Portocale * SDPn2 Pereche diferențială ecranată #2, negativă A3 SSTXn1
B2 SSTXp2 Alb * SDPp3 Pereche diferențială ecranată #3, pozitivă A11 SSRXp2
B3 SSTXn2 negru* SDPn3 Pereche diferențială ecranată #3, negativă A10 SSRXn2
A11 SSRXp2 Roșu * SDPp4 Pereche diferențială ecranată #4, pozitivă B2 SSTXp2
A10 SSRXn2 Albastru * SDPn4 Pereche diferențială ecranată #4, negativă B3 SSTXn2
* Culorile pentru învelișul conductorului nu sunt specificate de standard

Conectarea dispozitivelor vechi la computere echipate cu un conector USB de tip C va necesita un cablu sau un adaptor care are o mufă sau un conector de tip A sau B la un capăt și o mufă USB de tip C la celălalt capăt. Standardul nu permite adaptoare cu un conector USB Type-C, deoarece utilizarea lor ar putea crea „multe combinații de cabluri incorecte și potențial periculoase”.

Cablurile USB 3.1 cu două mufe de tip C la capete trebuie să respecte pe deplin specificația - să conțină toți conductorii necesari, trebuie să fie active, să includă un cip de identificare electronică care listează identificatorii funcției în funcție de configurația canalului și mesajele definite de furnizor (VDM) din specificația USB Power Delivery 2.0. Dispozitivele cu conector USB Type-C pot suporta opțional șine de alimentare cu un curent de 1,5 sau 3 amperi la o tensiune de 5 volți în plus față de sursa de alimentare principală. Sursele de alimentare trebuie să promoveze capacitatea de a furniza curenți crescuti prin canalul de configurare sau să accepte pe deplin specificația USB Power Delivery prin pinul de configurare (codare BMC) sau semnale mai vechi codificate ca BFSK prin pinul VBUS. Cablurile USB 2.0 care nu acceptă magistrala SuperSpeed ​​​​nu pot conține un cip de identificare electronică decât dacă pot transporta 5 amperi de curent.

Specificația conectorului USB Type-C versiunea 1.0 a fost publicată de USB Developers Forum în august 2014. A fost dezvoltat cam în același timp cu specificația USB 3.1.

Utilizarea unui conector USB Type-C nu înseamnă neapărat că dispozitivul implementează standardul USB 3.1 Gen1/Gen2 de mare viteză sau protocolul USB Power Delivery.

    Universal Serial Bus este cea mai răspândită, și probabil cea mai de succes interfață de computer pentru dispozitive periferice din întreaga istorie a dezvoltării echipamentelor informatice, dovadă fiind numărul mare de dispozitive USB, dintre care unele pot părea oarecum

Organizarea magistralei USB

USB (Universal Serial Bus) este un standard industrial pentru extinderea arhitecturii PC, axat pe integrarea cu dispozitivele de telefonie și electronice de larg consum. Versiunea 1.0 a standardului a fost publicată la începutul anului 1996, majoritatea dispozitivelor acceptă standardul 1.1, care a fost lansat în toamna anului 1998 - a remediat problemele găsite în prima ediție. În primăvara anului 2000, a fost publicată specificația USB 2.0, care prevede o creștere de 40 de ori a lățimii de bandă a magistralei. Inițial (în versiunile 1.0 și 1.1) magistrala a furnizat două rate de transfer de informații: full speed, FS (full speed) - 12 Mbit/s și low speed, LS (low speed) - 1,5 Mbit/s. Versiunea 2.0 definește și viteza mare, HS (viteză mare) - 480 Mbit/s, ceea ce vă permite să extindeți semnificativ gama de dispozitive conectate la magistrală. Dispozitivele cu toate cele trei viteze pot fi prezente și funcționate simultan în același sistem. Autobuzul permite, folosind hub-uri intermediare, conectarea dispozitivelor la distanță de la computer la o distanță de până la 25 m. Informații detaliate și actualizate despre USB (în limba engleză) pot fi găsite pe site-ul http://www. usb.org. Dezvoltarea dispozitivelor și clasificarea și standardizarea acestora este coordonată de USB-IF (USB Implementers Forum, Inc.).

Busul USB permite schimbul de date între computerul gazdă și o varietate de dispozitive periferice (PU). USB este un singur sistem hardware și software centralizat pentru plasarea în așteptare a mai multor dispozitive și a mai multor procese software de aplicație. Comunicarea proceselor software cu toate dispozitivele este asigurată de un controler gazdă cu suport software pe mai multe niveluri. Acest lucru face ca USB să fie semnificativ diferit de interfețele periferice tradiționale (LPT, COM, porturi GAME, tastatură, mouse etc.); o comparație a acestor tipuri de conexiuni este dată în tabel.

Masa. Comparație între magistrala USB cu interfețele periferice tradiționale

Interfețe tradiționale (COM, LPT, Joc...) Autobuz USB
Conectarea fiecărui dispozitiv necesită, în general, prezența propriului controler (adaptor) 1 Toate dispozitivele sunt conectate printr-un singur controler gazdă
Fiecare controler își ocupă propriile resurse (spațiu de memorie, spațiu I/O și solicitări de întrerupere) Numai controlerul gazdă preia resurse
Un număr mic de dispozitive care pot fi conectate simultan la computer Conectați până la 127 de dispozitive
Driverele de dispozitiv își pot accesa controlerele de dispozitiv direct, independent unul de celălalt Driverele de dispozitiv accesează numai driverul comun al controlerului gazdă
Independența șoferilor are ca rezultat impredictibilitatea rezultatului lucrului simultan cu mai multe dispozitive, lipsa garanțiilor de calitate a serviciului (posibilitatea de întârzieri și viteza de transmisie redusă)
pentru diverse dispozitive
Schimbul centralizat programat oferă garanții de calitate a serviciului care permit transmiterea datelor multimedia izocrone alături de schimbul asincron normal
Varietate de interfețe, conectori și cabluri specifice fiecărui tip de dispozitiv O singură interfață convenabilă și ieftină pentru conectarea dispozitivelor de toate tipurile. Posibilitatea de a selecta viteza dispozitivului (1,5-15-480 Mbit/s) in functie de necesitate
Lipsa detectării conexiunii/deconectarii încorporate și a identificării dispozitivului, dificultate în suportul PnP Posibilitate de conectare/deconectare „la cald” a dispozitivelor, suport complet PnP, configurare dinamică
Lipsa controalelor de eroare Mijloace încorporate pentru a asigura transferul de date fiabil
Lipsa sursei de alimentare standard pentru dispozitive Capacitatea de a alimenta dispozitivele din autobuz, precum și disponibilitatea instrumentelor de gestionare a energiei

1 - Busul SCSI are și capacitatea de a conecta mai multe dispozitive la un controler, dar interfața sa paralelă, în comparație cu USB, este prea scumpă, greoaie și mai limitată în topologie.

Arhitectura USB permite patru tipuri de bază de transferuri de date între gazdă și dispozitivele periferice:

  • transferuri izocrone - Streaming în timp real, ocupând o porțiune pre-negociată a lățimii de bandă a magistralei cu latență de livrare garantată. La viteză maximă (FS), puteți organiza un canal cu o lățime de bandă de până la 1,023 MB/s (sau două de 0,5 MB/s), ocupând 70% din lățimea de bandă disponibilă (restul poate fi ocupat de canale mai puțin încăpătoare) . La viteză mare (HS), puteți obține un canal de până la 24 MB/s (192 Mbit/s). Fiabilitatea livrării nu este garantată — dacă este detectată o eroare, datele izocrone nu sunt repetate și pachetele nevalide sunt ignorate. Autobuzul USB vă permite să organizați conexiuni sincrone între dispozitive și programe de aplicație folosind transferuri izocrone. Pentru dispozitivele de streaming sunt necesare transferuri izocrone: camere video, dispozitive audio digitale (difuzoare USB, microfon), dispozitive de redare și înregistrare audio și video (CD și DVD). Busul USB este capabil să transmită un flux video (fără compresie) doar la viteză mare;
  • întrerupe — transmiterea de mesaje spontane, care ar trebui efectuată cu o întârziere care să nu depășească cea cerută de dispozitiv. Limita de timp de serviciu este setată în intervalul 10-255 ms pentru viteză mică și 1-255 ms pentru viteză maximă. La viteză mare puteți comanda 125 µs. Livrarea este garantată; în cazul unor erori aleatorii de schimb, se efectuează o repetare, cu toate acestea, acest lucru crește timpul de service. Întreruperile sunt folosite, de exemplu, la introducerea caracterelor de la tastatură sau pentru a transmite mesaje despre mișcările mouse-ului. Întreruperile pot fi folosite și pentru a transmite date către dispozitiv (de îndată ce dispozitivul semnalează nevoia de date, gazda le transmite în timp util). Mărimea mesajului poate fi 0-8 octeți pentru viteză mică, 0-64 octeți pentru viteză maximă și 0-1024 octeți pentru viteză mare;
  • transferuri de date în vrac - sunt transferuri fara nicio obligatie privind livrarea la timp si rapiditate. Transferurile de matrice pot ocupa întreaga lățime de bandă a magistralei care este liberă de alte tipuri de transferuri. Aceste viteze au cea mai mică prioritate și pot fi suspendate atunci când autobuzul este încărcat puternic. Livrarea este garantată - în cazul unei erori accidentale, se efectuează o repetare. Transferurile de matrice sunt adecvate pentru schimbul de date cu imprimante, scanere, dispozitive de stocare etc.;
  • controlul transferurilor sunt folosite pentru a configura dispozitivele în timp ce sunt conectate și pentru a controla dispozitivele în timpul funcționării. Protocolul asigură livrarea garantată a datelor și confirmarea de către dispozitiv a executării cu succes a comenzii de control. Transmiterea controlului vă permite să trimiteți o comandă către dispozitiv (o cerere, eventual cu date suplimentare) și să primiți un răspuns la aceasta (confirmare sau refuz de a executa cererea și, eventual, date). Doar transferurile de control USB asigură sincronizarea cererilor și răspunsurilor; în alte tipuri de transmisii nu există o sincronizare explicită a fluxului de intrare cu fluxul de ieșire.

Hardware-ul USB include:

  • Dispozitive periferice USB care au funcții utile (funcții USB);
  • Host Controller, care asigură comunicarea prin autobuz cu centrul computerului, combinat cu Root Hub, care oferă puncte de conectare pentru dispozitivele USB. Există două opțiuni pentru controlerele gazdă USB 1.x - UHC (Universal Host Controller) și OHC (Open Host Controller), care acceptă viteze FS/LS; magistrala USB 2.0 de mare viteză (numai HS și) este acceptată de EHC (Enhanced Host Controller);
  • Hub-uri USB (Hub-uri USB), care oferă puncte de conectare suplimentare pentru dispozitive;
  • Cabluri USB care conectează dispozitivele la hub-uri.

Software-ul USB include:

  • software client (CSw, software client) - drivere de dispozitiv USB care oferă acces la dispozitive din software-ul aplicației. Aceste drivere comunică cu dispozitivele numai prin interfața software USB Generic Driver (USBD). Driverele de dispozitiv USB nu accesează direct niciun registru hardware;
  • Driver USB (USBD, USB Driver), „manager” al tuturor dispozitivelor USB ale sistemului, numerotarea acestora, configurarea, furnizarea de servicii, distribuția lățimii de bandă a magistralei, alimentarea cu energie etc.;
  • Driver de controler gazdă (HCD, Driver de controler gazdă), care convertește cererile I/O în structuri de date situate în zona de comunicare a RAM și accesează registrele controlerului gazdă. Controlorul gazdă efectuează tranzacții fizice pe baza acestor structuri de date.

Driverele USBD și HCD fac parte din software-ul gazdă USB; Specificația USB prezintă sarcinile acestora, dar nu descrie interfața dintre ele. Un dispozitiv USB fizic trebuie să aibă o interfață USB care să ofere suport complet pentru protocolul USB, să efectueze operațiuni standard (configurare și resetare) și să ofere informații care descriu dispozitivul. Dispozitivele USB fizice pot fi dispozitive compuse: includ mai multe dispozitive funcționale conectate la hub-ul intern și oferă, de asemenea, puncte de conectare externe suplimentare cu hub-ul lor intern.

Funcționarea tuturor dispozitivelor USB este controlată de controlerul gazdă, care este un subsistem hardware și software al computerului gazdă. Controlerul gazdă este un dispozitiv inteligent de magistrală PCI sau o parte integrantă a hub-ului (punte) „sudic” al plăcii de bază, care interacționează intens cu RAM.

Topologie fizică magistrală USB - steaua cu mai multe niveluri (vezi figura, a). Partea de sus este controlerul gazdă, combinat cu hub-ul rădăcină. Hub-ul este un dispozitiv splitter; poate servi și ca sursă de alimentare pentru dispozitivele conectate la acesta. Fiecare port hub poate conecta direct un dispozitiv periferic sau un hub intermediar; autobuzul permite până la cinci niveluri (niveluri) de hub-uri în cascadă (fără a număra rădăcina). Deoarece dispozitivele combinate conțin un hub în interiorul lor, conectarea lor la hub-ul celui de-al cincilea nivel nu mai este acceptabilă. Fiecare hub intermediar are mai multe porturi în aval pentru conectarea dispozitivelor periferice (sau hub-uri subiacente) și un port în amonte pentru conectarea la hub-ul rădăcină sau la portul în aval al unui hub în amonte.

Topologia logică USB este stea. Hub-urile (inclusiv rădăcina) creează iluzia unei conexiuni directe a fiecărui dispozitiv logic la controlerul gazdă (vezi figura de mai jos, b). În această stea, se stabilesc relații pur subordonate în funcție de sistemul de sondare-răspuns: controlerul gazdă, din proprie inițiativă, transmite date către dispozitivul selectat sau le primește. Dispozitivul nu poate transmite date din proprie inițiativă; Transferurile directe de date între dispozitive nu sunt posibile. Dispozitivul, din proprie inițiativă, poate semnala doar o „trezire”, pentru care se folosește semnalizare specială, dar nu și transmiterea de date.

Interfața fizică USB este simplă și elegantă. Designul cablurilor și conectorilor USB face imposibilă greșelile la conectarea dispozitivelor (vezi figura de mai jos, a și b). Pentru a recunoaște conectorul USB, pe corpul dispozitivului este plasată o desemnare simbolică standard (vezi figura de mai jos, c). Mufele de tip „A” sunt instalate numai pe porturile din aval ale hub-urilor, mufele de tip „A” sunt instalate pe cablurile dispozitivelor periferice sau porturile din amonte ale hub-urilor. Prizele și mufele de tip „B” sunt folosite numai pentru cablurile care sunt deconectate de la dispozitivele periferice și porturile din amonte ale hub-urilor (cablurile de la dispozitive „mici” - șoareci, tastaturi etc., de regulă, nu sunt deconectate). Pentru dispozitivele mici există conectori mini-B, iar pentru suportul OTG (On-the-Go) există atât mufe mini-A, cât și mufe miniAB. Hub-urile și dispozitivele oferă capacitatea de a „conecta și deconecta la cald” cu semnalizarea acestor evenimente către gazdă.

Când planificați conexiunile, ar trebui să luați în considerare modul în care dispozitivele sunt alimentate: dispozitivele alimentate cu magistrală sunt de obicei conectate la hub-uri alimentate de rețea. Doar dispozitivele cu consum redus sunt conectate la hub-uri alimentate de magistrală - de exemplu, un mouse USB și alte dispozitive de indicare (trackball, tabletă) sunt conectate la o tastatură USB care conține un hub în interior.

Dispozitiv logic USB este un set de puncte finale independente (Endpoint, EP) cu care controlerul gazdă (și software-ul client) schimbă informații. Fiecare dispozitiv logic USB (atât funcții, cât și hub-uri) este atribuit de partea de configurare a software-ului gazdă propria sa adresă (1-127), unică pe o anumită magistrală USB. Fiecare punct final al dispozitivului logic este identificat prin numărul său (0-15) și direcția de transmisie (IN - transmisie către gazdă, OUT - de la gazdă). IN4 și OUT4, de exemplu, sunt puncte finale diferite cu care chiar și modulele software client pot comunica. Setul de puncte finale variază în funcție de dispozitiv, dar fiecare dispozitiv USB trebuie să aibă un punct final bidirecțional 0 (EP0) prin care este gestionat în general. În scopuri de aplicare, punctele finale numerotate 1-15 sunt utilizate (1-2 pentru dispozitivele cu viteză mică). Adresa dispozitivului, numărul punctului final și direcția identifică în mod unic receptorul sau sursa de informații atunci când controlerul gazdă comunică cu dispozitivele USB. Fiecare punct final are un set de caracteristici care descriu tipul de transfer de date acceptat (date izocrone, matrice, întreruperi, transferuri de control), dimensiunea pachetului și cerințele de frecvență a serviciului.

Dispozitivul poate îndeplini mai multe sarcini funcționale diferite: de exemplu, o unitate CD-ROM poate reda CD-uri audio și poate acționa ca dispozitiv de stocare a datelor. Pentru a rezolva fiecare sarcină, dispozitivul definește o interfață - un set de puncte finale concepute pentru a îndeplini o anumită sarcină și regulile de utilizare a acestora. Astfel, fiecare dispozitiv trebuie să ofere una sau mai multe interfețe. Având mai multe interfețe permite mai multor drivere, fiecare accesând doar o interfață diferită (reprezentând o parte a dispozitivului USB), să funcționeze cu același dispozitiv USB. Fiecare interfață poate avea una sau mai multe opțiuni alternative (setări alternative), dintre care doar una poate fi activă la un moment dat. Opțiunile diferă în ceea ce privește seturile (și eventual caracteristicile) punctelor finale utilizate.

Setul de interfețe suportate simultan constituie configurația dispozitivului. Un dispozitiv poate avea una sau mai multe configurații posibile, din care gazda selectează una în faza de configurare, făcându-l activ. Configurația selectată determină funcționalitatea disponibilă și, adesea, consumul de energie. Până când unui dispozitiv i se atribuie un număr de configurare selectat, acesta nu poate funcționa în sensul aplicației, iar consumul de curent de la magistrală nu trebuie să depășească 100 mA. Gazda selectează o configurație pe baza disponibilității tuturor resurselor cerute de această configurație, inclusiv consumul de curent din magistrală.

Fiecare bucată de software client (reprezentată de obicei printr-un driver) comunică cu o interfață a dispozitivului (funcția) său exclusiv și independent (vezi figura de mai jos). Conexiunile din această figură reprezintă conductele de comunicație care sunt stabilite între driverele de dispozitiv și punctele finale ale acestora. Canalele sunt stabilite numai cu punctele terminale ale dispozitivului aparținând opțiunilor de interfață selectate (din alternative) ale configurației active. Nu sunt disponibile alte puncte finale.

Cereri, loturi și tranzacții

Pentru a transmite sau a primi date, software-ul client trimite un pachet de solicitare de intrare/ieșire - IRP (Input/Output Request Packet) către canal și așteaptă notificarea finalizării procesării acestuia. Formatul IRP este determinat de implementarea driverului USBD într-un anumit sistem de operare. IRP-ul conține doar informații despre cerere (locația buffer-ului de date de transfer în RAM și durata transferului); Driverul de dispozitiv este extras din proprietățile conexiunii curente specifice (viteză, dimensiunea permisă a pachetului). Driverul USBD procesează cererea sub formă de tranzacții pe magistrala USB; dacă este necesar, împarte cererile lungi (pachete) în părți adecvate pentru transmitere într-o singură tranzacție. O tranzacție pe magistrala USB este o secvență de schimburi de pachete între gazdă și PU, în timpul căreia un pachet de date poate fi transmis sau primit (sunt posibile tranzacții în care nu se transmit date). Procesarea unei cereri este considerată finalizată atunci când toate tranzacțiile asociate acesteia sunt finalizate cu succes. „Dificultăți temporare” întâmpinate în timpul execuției lor (nepregătirea pentru schimbul de date) nu sunt aduse la cunoștința șoferului client - acesta poate doar aștepta finalizarea schimburilor (sau expirarea timpului). Cu toate acestea, dispozitivul poate semnala erori grave (cu un răspuns STALL), ceea ce face ca cererea să se anuleze și este notificată driverului clientului. În acest caz, toate solicitările ulterioare către acest canal sunt, de asemenea, eliminate. Reluarea lucrului cu acest canal este posibilă numai după o notificare explicită a procesării unei situații de eroare, pe care driverul dispozitivului o face folosind o solicitare specială (și un apel USBD).

Interogările lungi sunt împărțite în tranzacții pentru a utiliza dimensiunea maximă a lotului. Ultimul lot de rest poate fi mai scurt decât dimensiunea maximă. Controlerul gazdă are un mijloc de a detecta când un dispozitiv primește un pachet „defectuos” care este mai mic decât se aștepta. Solicitarea IRP specifică dacă să răspundă la acest eveniment într-un mod specific. O reacție specială poate fi dublă:

  • tratați pachetul scurt ca un delimitator care indică sfârșitul blocului de date. În acest caz, acest IRP se finalizează normal și sunt executate următoarele solicitări către acest canal;
  • considerați un pachet scurt ca un semn al unei erori, care face ca canalul să se oprească (toate cererile sale ulterioare în așteptare sunt resetate).

Când transferați matrice, utilizarea pachetelor scurtate ca delimitatori este cea mai naturală. Astfel, de exemplu, într-una dintre opțiunile de protocol pentru dispozitivele de stocare a datelor, pachetele scurtate de lungime cunoscută sunt folosite ca pachete de control.

Canalele de comunicare USB sunt împărțite în două tipuri:

  • conductă de curgere furnizează date de la un capăt la celălalt al canalului, este întotdeauna unidirecțional. Același număr de punct final poate fi utilizat pentru două canale de streaming diferite, de intrare și de ieșire. Transferurile de date pe diferite canale de streaming nu sunt sincronizate între ele. Aceasta înseamnă că solicitările driverului clientului pentru diferite canale plasate într-un anumit ordin unul față de celălalt pot fi executate într-o ordine diferită. Solicitările pentru un canal vor fi executate strict în ordinea în care sunt primite; Dacă apare o eroare gravă în timpul executării oricărei solicitări (dispozitivul raportează acest lucru cu un răspuns STALL), thread-ul se oprește. Un fir poate implementa transferuri de matrice, transferuri izocrone și întreruperi. Fluxurile transportă date într-un format arbitrar definit de producătorul dispozitivului (dar nu de specificația USB). Fluxurile folosesc de obicei tranzacții în care lungimea câmpului de date se potrivește cu dimensiunea maximă permisă de punctul final. Dacă este necesară împărțirea unui flux în blocuri logice de date, atunci acest lucru se poate face folosind pachete scurtate ca semn al sfârșitului unui bloc. Dacă se dovedește că blocul se încadrează într-un număr întreg de pachete de dimensiune maximă, pachetele cu lungimea câmpului de date zero pot fi folosite ca delimitator;
  • conducta de mesaje ) este bidirecțională. Transmisiile de mesaje în direcții opuse sunt sincronizate între ele și ordonate strict. Partea opusă trebuie să răspundă fiecărui mesaj cu confirmarea primirii și procesării acestuia. Următorul mesaj nu poate fi trimis înainte ca cel anterior să fie procesat, dar atunci când se gestionează erori, este posibil să resetați mesajele netratate. Formatele de mesaje sunt definite de specificația USB: există un set de mesaje standard (cereri și răspunsuri) și identificatori rezervați de mesaje, al căror format este determinat de dezvoltatorul dispozitivului sau al interfeței.

Canalele au caracteristici asociate cu punctul final (lățimea de bandă, tipul de serviciu, dimensiunea bufferului etc.). Canalele sunt create la configurarea dispozitivelor USB. Lățimea de bandă a magistralei este împărțită între toate canalele instalate. Lățimea de bandă alocată este atribuită unui canal, iar dacă stabilirea unui nou canal necesită o lățime de bandă care nu se încadrează în alocarea existentă, cererea de alocare a canalului este respinsă.

Canalele diferă și ca scop:

  • canalul mesajului principal (conducta implicită, cunoscută și sub numele de conductă de control 0) , deținut de USBD, este utilizat pentru a accesa informațiile de configurare ale tuturor dispozitivelor. Acest canal este stabilit cu un punct final zero, EP0 (punctul final zero), care pentru toate dispozitivele acceptă întotdeauna numai transferuri de control;
  • Conducte client , ai căror proprietari sunt drivere de dispozitiv. Aceste canale pot transmite atât fluxuri, cât și mesaje; suportă orice tip de transfer USB (izocron, întrerupere, matrice și control).

Interfața dispozitivului cu care funcționează driverul client este un pachet de canale client (pachetul pipe). Pentru aceste canale, driverele de dispozitiv sunt singurele surse și consumatori de date transmise.

Proprietarul principalelor canale de mesaje ale tuturor dispozitivelor este driverul USB (USBD); Aceste canale transportă informații de configurare, control și stare. Canalul principal de mesaje poate fi folosit și de driverul client pentru controlul curent și citirea stării dispozitivului, dar indirect prin USBD. De exemplu, mesajele transmise pe canalul principal sunt folosite de driverul de imprimantă USB pentru a interoga starea curentă (trei semne sunt transmise în formatul registrului de stare a portului LPT: eroare I/O, imprimantă selectată, fără hârtie).

Gazda organizează schimburi cu dispozitive conform planului său de alocare a resurselor. Pentru a face acest lucru, controlerul gazdă în mod ciclic cu o perioadă de 1 ms generează cadre în care se încadrează toate tranzacțiile programate (vezi figura de mai jos). Fiecare cadru începe cu trimiterea unui pachet marcator SOF (Start Of Frame), care este un semnal de sincronizare pentru dispozitivele izocrone, precum și pentru hub-uri. Cadrele sunt numerotate secvențial; markerul SOF conține cei 11 biți cei mai puțin semnificativi ai numărului cadrului. În modul HS, fiecare cadru este împărțit în 8 microcadre, iar pachetele SOF sunt transmise la începutul fiecărui microcadru (cu o perioadă de 125 µs). Mai mult, în toate cele opt microcadre SOF poartă același număr de cadre; noua valoare a numărului de cadre este transmisă în microcadru zero. În fiecare microcadru pot fi efectuate mai multe tranzacții, numărul permis depinde de viteza, lungimea câmpului de date al fiecăruia dintre ele, precum și de întârzierile introduse de cabluri, hub-uri și dispozitive. Toate tranzacțiile cadru trebuie finalizate înainte de începerea intervalului de timp EOF (Sfârșitul cadrului). Perioada (frecvența) de generare a microcadrelor poate fi ușor variată folosind un registru special din controlerul gazdă, care permite reglarea frecvenței pentru transmisii izocrone.

Încadrarea este, de asemenea, utilizată pentru a asigura supraviețuirea autobuzului. La sfârșitul fiecărui microcadru, este alocat un interval de timp EOF (End Of Frame), timp în care hub-urile interzic transmiterea către controler. Dacă hub-ul detectează că date sunt transmise de la un anumit port în acest moment (către gazdă), acest port este dezactivat, izolând dispozitivul „chatty”, care este raportat de USBD.

Contorul de microcadre din controlerul gazdă este utilizat ca sursă de index atunci când accesați tabelul de descriptori de cadre. De obicei, driverul USB construiește un tabel de descriptori pentru 1024 de cadre consecutive1, pe care le accesează ciclic. Folosind acești descriptori, gazda programează încărcarea cadrelor astfel încât, pe lângă tranzacțiile și întreruperile izocrone programate, să existe întotdeauna loc pentru tranzacții de control în ele. Timpul liber al cadrului poate fi completat cu transferuri de matrice. Specificația USB permite tranzacțiilor periodice (izocrone și întreruperi) să ocupe până la 90% din lățimea de bandă a magistralei, adică timpul din fiecare microcadru.

USB permite schimbul de date între computerul gazdă și o varietate de dispozitive periferice (PU). Conform specificației USB, dispozitivele pot fi hub-uri, funcții sau o combinație a ambelor. Un dispozitiv hub oferă doar puncte suplimentare pentru conectarea dispozitivelor la magistrală. Un dispozitiv cu funcție USB oferă funcționalități suplimentare sistemului, cum ar fi o conexiune ISDN, un joystick digital, difuzoare cu interfață digitală etc. Un dispozitiv compus care conține mai multe funcții este reprezentat ca un hub cu mai multe dispozitive conectate. Dispozitivul USB trebuie să aibă o interfață USB care oferă suport complet pentru protocolul USB, efectuează operațiuni standard (configurare și resetare) și oferă informații care descriu dispozitivul. Funcționarea întregului sistem USB este controlată de controlerul gazdă, care este un subsistem hardware și software al computerului gazdă. Autobuzul permite conectarea, configurarea, utilizarea și deconectarea dispozitivelor în timp ce gazda și dispozitivele în sine rulează. Bus-ul USB este centrat pe gazdă: singurul dispozitiv principal care controlează schimbul este computerul gazdă, iar toate dispozitivele periferice conectate la acesta sunt exclusiv dispozitive slave. Topologia fizică a magistralei USB este o stea cu mai multe niveluri. Partea de sus este controlerul gazdă, combinat cu un hub rădăcină, de obicei cu două porturi. Hub-ul este un dispozitiv splitter; poate servi și ca sursă de alimentare pentru dispozitivele conectate la acesta. Fiecare port hub poate conecta direct un dispozitiv periferic sau un hub intermediar; Autobuzul permite până la 5 niveluri de hub-uri în cascadă (fără a număra rădăcina). Deoarece dispozitivele combinate conțin un hub în interiorul lor, conectarea lor la hub-ul de nivelul 6 nu mai este acceptabilă. Fiecare hub intermediar are mai multe porturi în aval pentru conectarea dispozitivelor periferice (sau hub-uri subiacente) și un port în amonte pentru conectarea la hub-ul rădăcină sau la portul în aval al unui hub în amonte. Topologia logică USB este pur și simplu o stea: pentru controlerul gazdă, hub-urile creează iluzia unei conexiuni directe la fiecare dispozitiv. Spre deosebire de magistralele de expansiune (ISA, PCI, PC Card), unde programul interacționează cu dispozitivele prin accesarea adreselor fizice ale celulelor de memorie, porturi I/O, întreruperi și canale DMA, interacțiunea aplicației cu dispozitivele USB se realizează doar printr-o interfață software. Această interfață, care asigură independența dispozitivului, este furnizată de software-ul sistemului de control USB.

Spre deosebire de cablurile voluminoase și scumpe ale magistralelor paralele AT A și în special de magistrala SCSI cu varietatea sa de conectori și complexitatea regulilor de conectare, gestionarea cablurilor USB este simplă și elegantă. Cablul USB conține o pereche torsadată ecranată cu o impedanță de 90 Ohmi pentru circuitele de semnal și una neecranată pentru alimentare (+5 V), lungimea admisă a segmentului este de până la 5 m. Pentru viteză mică, un cablu nerăsucit și neecranat de până la Se pot folosi 3 m lungime (este mai ieftin) . Sistemul de cablu și conector USB face imposibilă comiterea de greșeli la conectarea dispozitivelor (Fig. 13.1, a și b). Pentru a recunoaște conectorul USB, pe corpul dispozitivului este plasată o desemnare simbolică standard (Fig. 13.1, c). Prizele de tip „A” sunt instalate numai pe porturile din aval ale hub-urilor, mufele de tip „A” sunt instalate pe cablurile dispozitivelor periferice sau porturile din amonte ale hub-urilor. Prizele și mufele de tip „B” sunt folosite numai pentru cablurile care sunt deconectate de la dispozitivele periferice și porturile din amonte ale hub-urilor (cablurile de la dispozitive „mici” - șoareci, tastaturi etc., de regulă, nu sunt deconectate). Pe lângă conectorii standard prezentați în Figura 19, sunt utilizate și versiuni în miniatură (Figura 20, c, d, e). Hub-urile și dispozitivele oferă capabilități hot-plug și hot-plug. În acest scop, conectorii asigură conectarea mai devreme și deconectarea ulterioară a circuitelor de putere în raport cu circuitele de semnal; în plus, este prevăzut un protocol de semnalizare pentru conectarea și deconectarea dispozitivelor. Atribuțiile pinilor conectorilor USB sunt date în tabel. 9, numerotarea contactelor este prezentată în Fig. 20. Toate cablurile USB sunt „drepte” - conectează circuite conectori cu același nume.


Orez. 19. Conectori USB: a - mufa de tip „A”, b - mufa de tip „B”, c - denumire simbolică

Orez. 20. Prize USB: a - tip „A”, b - tip „B” standard, c, d, e - tip miniatural „B”

Tabelul 9. Atribuirea pinilor conectorului USB

Autobuzul folosește o metodă diferențială de transmitere a semnalelor D+ și D- pe două fire. Viteza unui dispozitiv conectat la un anumit port este determinată de hub pe baza nivelurilor de semnal de pe liniile D+ și D-, polarizate de rezistențele de sarcină ale transceiver-urilor: dispozitivele cu o viteză mică „trag în sus” linia D la un nivel ridicat, și cu o viteză maximă, D+. Conexiunea dispozitivului HS este determinată în etapa de schimb de informații de configurare - fizic, pentru prima dată, dispozitivul HS trebuie conectat ca FS. Transmisia cu două fire în USB nu se limitează la semnale diferențiale. Pe lângă receptorul diferenţial, fiecare dispozitiv are receptoare de linie pentru semnalele D+ şi D-, iar emiţătoarele acestor linii sunt controlate individual. Acest lucru face posibilă distingerea între mai mult de două stări de linie utilizate pentru a stabili o interfață hardware.

Introducerea vitezei mari (480 Mbit/s - doar de 2 ori mai lent decât Gigabit Ethernet) necesită o coordonare atentă a transceiver-urilor și a liniei de comunicație. Numai cablul de pereche răsucite ecranat pentru liniile de semnal poate funcționa la această viteză. Pentru viteză mare, echipamentele USB trebuie să aibă transceiver-uri speciale suplimentare. Spre deosebire de potențialele condiționate pentru modurile FS și LS, transmițătoarele HS sunt surse de curent care se bazează pe prezența rezistențelor terminatoare pe ambele linii de semnal.

Rata de transmisie (LS, FS sau HS) este selectată de proiectantul dispozitivului periferic în funcție de nevoile dispozitivului respectiv. Implementarea vitezei mici pentru dispozitiv este ceva mai ieftină (transceiver-urile sunt mai simple, iar cablul pentru LS poate fi pereche neecranată nerăsucită). Dacă în „vechile” dispozitive USB puteai, fără ezitare, să te conectezi la orice port liber al oricărui hub, atunci în USB 2.0, în prezența dispozitivelor și hub-urilor de diferite versiuni, a devenit posibil să alegi între optim, neoptimal și configurații inoperabile.

Hub-urile USB 1.1 sunt necesare pentru a suporta viteze FS și LS; viteza unui dispozitiv conectat la hub este determinată automat de diferența de potențial a liniilor de semnal. Atunci când transmit pachete, hub-urile USB 1.1 sunt pur și simplu repetoare care asigură o comunicare transparentă între dispozitivul periferic și controler. Transferurile la viteză mică sunt destul de irosite de potențiala lățime de bandă a magistralei: în timpul în care ocupă magistrala, un dispozitiv de mare viteză poate transfera de 8 ori mai multe date. Dar pentru a simplifica și reduce costul întregului sistem, aceste sacrificii au fost făcute, iar distribuția lățimii de bandă între diferite dispozitive este monitorizată de planificatorul de tranzacții al controlerului gazdă.

În specificația 2.0, viteza de 480 Mbit/s ar trebui să fie compatibilă cu cele anterioare, dar cu un astfel de raport de viteze, schimburile către FS și LS vor „mânca” posibila lățime de bandă a magistralei fără nicio „plăcere” (pentru utilizator ). Pentru a preveni acest lucru, hub-urile USB 2.0 preiau caracteristicile comutatoarelor de pachete. Dacă un dispozitiv de mare viteză (sau un hub similar) este conectat la portul unui astfel de hub, atunci hub-ul funcționează în modul repetor, iar o tranzacție cu un dispozitiv de pe HS ocupă întregul canal către controlerul gazdă pentru întreaga perioadă. durata de executare a acestuia. Dacă un dispozitiv sau un hub 1.1 este conectat la portul unui hub USB 2.0, atunci pachetul călătorește de-a lungul unei părți a canalului până la controler la viteza HS, este stocat în buffer-ul hub-ului și merge la vechiul dispozitiv sau hub-ul său. Viteza „nativă” FS sau LS. În același timp, funcțiile controlerului și hub-ului 2.0 (inclusiv rădăcina) devin mai complicate, deoarece tranzacțiile pe FS și LS sunt împărțite, iar transferurile de mare viteză sunt blocate între părțile lor. Toate aceste subtilități sunt ascunse de dispozitivele și hub-urile mai vechi (1.1), ceea ce asigură compatibilitatea cu versiunea anterioară. Este destul de clar că un dispozitiv USB 2.0 va putea atinge viteză mare numai dacă de-a lungul căii de la acesta la controlerul gazdă (tot 2.0) există doar hub-uri 2.0. Dacă această regulă este încălcată și există un hub vechi între acesta și controlerul 2.0, atunci comunicarea poate fi stabilită numai în modul FS. Dacă dispozitivul și software-ul client sunt mulțumiți de această viteză (de exemplu, pentru o imprimantă și un scaner, acest lucru va duce doar la mai mult timp de așteptare pentru utilizator), atunci dispozitivul conectat va funcționa, dar un mesaj despre o configurație de conexiune neoptimală va aparea. Dacă este posibil, aceasta (configurația) ar trebui corectată, deoarece comutarea cablurilor USB se poate face din mers. Dispozitivele și software-ul care sunt critice pentru lățimea de bandă a magistralei vor refuza să funcționeze în configurația greșită și vor necesita absolut schimbarea. Dacă controlerul gazdă este vechi, atunci toate beneficiile USB 2.0 nu vor fi disponibile pentru utilizator. În acest caz, va trebui să schimbați controlerul gazdă (schimbați placa de bază sau achiziționați o placă de controler PCI). Controlerul și hub-urile USB 2.0 vă permit să creșteți lățimea de bandă totală a magistralei pentru dispozitivele mai vechi. Dacă dispozitivele FS sunt conectate la diferite porturi ale hub-urilor USB 2.0 (inclusiv cel rădăcină), atunci debitul total al magistralei USB pentru ele va crește în comparație cu 12 Mbit/s de câte ori numărul de porturi hub de mare viteză utilizate. .

Hub-ul este un element cheie al sistemului PnP în arhitectura USB. Hub-ul îndeplinește multe funcții:

  • asigură conexiunea fizică a dispozitivelor,

modelarea și perceperea

  • semnale conform specificației magistralei pe

fiecare dintre porturile sale;

  • controlează alimentarea cu tensiune de alimentare către

porturi din aval și este posibil să se stabilească o limită a curentului consumat de fiecare port;

  • monitorizează starea dispozitivelor conectate la acesta,

notificarea gazdei despre modificări;

  • detectează erori pe magistrală, efectuează proceduri

restabilește și izolează segmentele de magistrală defecte;

  • asigură comunicarea între segmentele de magistrală care operează

viteze diferite.

Hub-ul monitorizează semnalele generate de dispozitive. Un dispozitiv defect poate „tace” (pierde activitatea) la momentul nepotrivit sau, dimpotrivă, „murmură” ceva (balbuie). Aceste situații sunt monitorizate de hub-ul cel mai apropiat de dispozitiv și interzice transmisiile în amonte de la un astfel de dispozitiv nu mai târziu de la limita (micro)cadru. Datorită vigilenței huburilor, aceste situații vor împiedica un dispozitiv defect să blocheze întregul autobuz.

Fiecare dintre porturile din aval poate fi activat sau dezactivat și configurat pentru o rată de transmisie ridicată, completă sau limitată. Hub-urile pot avea lumini de stare a portului în aval, controlate automat (prin logica hub) sau software (de controlerul gazdă). Indicatorul poate fi o pereche de LED-uri - verde și galben (chihlimbar) sau un LED cu culoarea schimbătoare. Starea portului este reprezentată după cum urmează:

  • nu se aprinde - portul nu este utilizat;
  • verde - funcționare normală;
  • galben - eroare;
  • verde intermitent - programul necesită atenție

utilizator (atenție software);

  • galben intermitent - echipamentul necesită atenție

utilizator (atenție hardware).

Portul din amonte al hub-ului este configurat și prezentat extern ca viteză maximă sau de mare viteză (numai USB 2.0). Când este conectat, portul hub USB 2.0 asigură terminarea conform schemei FS; este comutat în modul HS numai la o comandă de la controler.

În fig. 13.3 arată o opțiune pentru conectarea dispozitivelor și hub-urilor, unde dispozitivul USB 2.0 de mare viteză este doar o cameră de televiziune care transmite un flux video fără compresie. Conectarea unei imprimante și scaner USB 1.1 la porturile separate ale hub-ului 2.0 și chiar decuplarea acestora de dispozitivele audio, le permite să utilizeze o lățime de bandă a magistralei de 12 Mbit/s fiecare. Astfel, dintr-o lățime de bandă totală de 480 Mbit/s, 3x12=36 Mbit/s este alocat dispozitivelor „vechi” (USB 1.0). De fapt, putem vorbi despre o bandă de 48 Mbit/s, deoarece tastatura și mouse-ul sunt conectate la un port separat al controlerului gazdă USB 2.0, dar aceste dispozitive vor „stăpâni” doar o mică parte din cei 12 Mbit/s alocați. lor. Desigur, puteți conecta o tastatură și un mouse la portul unui hub extern, dar din punctul de vedere al creșterii fiabilității, este mai bine să conectați dispozitivele de intrare ale sistemului în cel mai scurt mod posibil (în ceea ce privește numărul de cabluri, conectori și dispozitive intermediare). O configurație nereușită ar fi conectarea unei imprimante (scaner) la un hub USB 1.1 - atunci când lucrați cu dispozitive audio (dacă sunt de înaltă calitate), viteza de imprimare (scanare) va scădea. O configurație inutilizabilă ar fi conectarea camerei la un port hub USB 1.1.

Când planificați conexiunile, ar trebui să luați în considerare modul în care dispozitivele sunt alimentate: dispozitivele alimentate cu magistrală sunt de obicei conectate la hub-uri alimentate de rețea. Doar dispozitivele cu consum redus sunt conectate la hub-uri alimentate de magistrală - de exemplu, un mouse USB și alte dispozitive de indicare (trackball, tabletă) sunt conectate la o tastatură USB care conține un hub în interior.

Gestionarea energiei este o caracteristică foarte avansată a USB. Pentru dispozitivele alimentate cu magistrală, puterea este limitată. Când este conectat, orice dispozitiv nu ar trebui să consume un curent care depășește 100 mA de la magistrală. Curentul de funcționare (nu mai mult de 500 mA) este menționat în configurație. Dacă hub-ul nu poate alimenta dispozitivul cu curentul declarat, acesta nu este configurat și, prin urmare, nu poate fi utilizat.

Dispozitivul USB trebuie să accepte modul suspendat, în care consumul său de curent nu depășește 500 µA. Dispozitivul ar trebui să se suspende automat când activitatea autobuzului încetează.

Orez. 21. Exemplu de configurare a conexiunii

Capacitatea de trezire de la distanță permite unui dispozitiv suspendat să semnalizeze computerul gazdă, care poate fi, de asemenea, într-o stare suspendată. Funcția de trezire de la distanță este descrisă în configurația dispozitivului. Această funcție poate fi dezactivată în timpul configurării.

Cele mai bune articole pe această temă