USB (Universal Serial Bus). Universal Serial Bus Care sunt beneficiile USB

magistrala USB ( U universal S erial B us - magistrală serial universală) a apărut de standardele computerelor cu mult timp în urmă - o versiune a primei versiuni aprobate a standardului a apărut pe 15 ianuarie 1996. Dezvoltarea standardului a fost inițiată de firme foarte respectate - 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ă ar trebui să existe prevederi pentru conectarea dispozitivului la un computer care rulează, recunoscându-l automat imediat după conectare și apoi instalarea driverelor corespunzătoare. În plus, este de dorit să se alimenteze dispozitivele cu putere redusă din magistrala în sine. Viteza autobuzului ar trebui să fie suficientă pentru marea majoritate a perifericelor. Pe parcurs, se rezolvă problema istorică a lipsei de resurse pe magistralele interne ale unui PC IBM al unui computer compatibil - controlerul USB ia o singură întrerupere, indiferent de numărul de dispozitive conectate la magistrală.

Aproape toate sarcinile au fost rezolvate în standardul USB, iar în primăvara anului 1997 au început să apară computere echipate cu conectori pentru conectarea dispozitivelor USB (vezi fotografia din stânga), dar perifericele cu conexiune USB practic nu au apărut decât la jumătatea anului 1998. Ce s-a întâmplat? De ce abia până la sfârșitul anului 1998 producătorii de echipamente au început să ofere dispozitive USB pe piață mai activ? Există mai multe explicații pentru aceasta:

    Eliminați nevoia critică pentru utilizatorii de desktop pentru dispozitive complet Plug & Play. Perifericele la un computer desktop sunt de obicei conectate serios și pentru o lungă perioadă de timp, iar marea majoritate a utilizatorilor nu au o nevoie specială de înlocuire frecventă a perifericelor.

    cost mai mare al dispozitivelor USB în comparație cu dispozitivele similare cu interfețe standard

    lipsa de sprijin din partea producatorilor softwareși în principal Microsoft, deși a fost unul dintre autorii standardului. Doar în Windows 98 a existat un complet Suport USB, iar în Windows NT ar trebui să fie abia în 1999.

Acum, USB a devenit implementat activ de către producătorii de periferice pentru computer. Senzația a fost prezența doar a USB-ului ca magistrală externă în Apple Computers iMAC.

Specificații

Capacitățile USB decurg din specificațiile sale tehnice:

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

    Lungimea maximă a cablului pentru viteză mare de transmisie - 5 m

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

    Lungimea maximă a cablului pentru viteză scăzută de transmisie - 3 m

    Numărul maxim de dispozitive conectate (inclusiv multiplicatori) - 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 pentru SCSI

    Tensiune de alimentare pentru dispozitive periferice - 5 V

    Consumul maxim de curent per dispozitiv este de 500 mA (aceasta nu înseamnă că dispozitivele cu un curent total de consum de 127 x 500 mA = 63,5 A pot fi alimentate prin USB)

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ă. Această interfață este deosebit de convenabilă pentru conectarea dispozitivelor frecvent conectate/deconectate, cum ar fi camerele digitale. Conectorii USB sunt proiectați pentru împerechere/divizare.
Capacitatea de a utiliza doar două viteze baud limitează utilizarea 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.

Topologie

Această pictogramă este desemnată oficial magistrala USB atât în ​​Windows 98, cât și pe pereții din spate ai computerelor (din păcate, nu toate), precum și pe toți conectorii USB. Această pictogramă reprezintă de fapt corect ideea topologiei USB. Topologia USB este aproape identică cu cea a unei LAN tipice cu perechi răsucite, denumită în mod obișnuit „stea”. Chiar și terminologia este similară - crescătorii de anvelope sunt numiți și HUB-uri.

În mod convențional, arborele pentru conectarea dispozitivelor USB la un computer poate fi reprezentat după cum urmează (numerele indică dispozitivele periferice cu o interfață USB):

Un HUB poate sta, de asemenea, în locul oricărui dispozitiv. Principala diferență față de topologia unei rețele locale convenționale este că poate exista un singur computer (sau dispozitiv gazdă). HUB-ul poate fi fie un dispozitiv autonom cu propria sa unitate de alimentare, fie încorporat într-un dispozitiv periferic. Cel mai adesea, HUB-urile sunt încorporate în monitoare și tastaturi

Imaginea de mai sus prezintă un exemplu conexiune corectă dispozitive periferice într-o rețea USB convențională. Deoarece schimbul de date se face prin USB doar între un computer și un dispozitiv periferic (nu există schimb între dispozitive), dispozitivele cu volume mari de recepție și/sau transmisie de date trebuie conectate fie la computer în sine, fie la cel mai apropiat nod liber. În acest caz, difuzoarele au cel mai mare trafic (~ 1,3 Mb/s), urmate de un modem și un scanner conectat la HUB din monitor și tastatura, joystick-ul și mouse-ul, al căror trafic este aproape de zero, completează circuitul. .
Poate apărea întrebarea - de ce coloanele au un trafic atât de mare? Faptul este că difuzoarele cu interfață USB diferă semnificativ de cele obișnuite. NU ESTE NECESARĂ pentru a utiliza aceste difuzoare placa de sunet... Driverul difuzorului trimite sunetul digitizat direct către difuzoare, unde este convertit într-un semnal analogic folosind un ADC și alimentat difuzoarelor.

Cabluri și conectori

Semnalele USB sunt transmise printr-un cablu cu 4 fire, prezentat schematic în figura de mai jos:

Aici GND este circuitul „caz” pentru alimentarea dispozitivelor periferice, VBus - + 5V și pentru circuitele de alimentare. Autobuzul D + este pentru transmiterea datelor pe magistrală, iar magistrala D pentru primirea datelor.
Cablul pentru a susține magistrala de viteză completă este realizat ca pereche răsucită, este ecranat și poate fi folosit și pentru funcționare la viteză mică. Cablul pentru funcționare numai la viteza minimă (de exemplu, pentru conectarea unui mouse) poate fi orice cablu și poate fi neecranat.
Conectorii utilizați pentru conectarea dispozitivelor periferice sunt prezentați în figura de mai jos.

Conectori seria „A”.

Conectori seria „B”.

    sunt destinate NUMAI să fie conectate la o sursă, de ex. computer sau HUB „la.

    conceput pentru a se conecta DOAR la un dispozitiv periferic

Tip de fișă „A”.

Fișă tip „B”.

Tip priză „A”

tip priză „B”

După cum puteți vedea din figură, este imposibil să conectați dispozitivul incorect, deoarece conectorul din seria „A” poate fi conectat numai la un dispozitiv activ de pe USB-HUB sau un computer, iar seria „B” numai la dispozitiv periferic real.

Conectorii USB au următoarea numerotare a pinii:

Numar de contact

Programare

Culoarea firului

Pinout conector USB

Dezvoltare USB

În 1999, același consorțiu de companii de calculatoare care a inițiat dezvoltarea primei versiuni a standardului pentru magistrala USB a început să dezvolte în mod activ versiunea 2.0 a USB, care diferă prin faptul că lățimea de bandă a magistralei este mărită de 20 (!) ori, până la 250 Mbits/s, ceea ce face posibilă transferul de date video prin USB și îl face un concurent direct al IEEE-1394 (FireWire).
Compatibilitatea tuturor perifericelor lansate anterior și a cablurilor de mare viteză este păstrată pe deplin și se păstrează unul dintre principalele avantaje ale USB - costul scăzut al controlerului. Controlerul standard 2.0 ar trebui să fie, de asemenea, integrat în chipset.
Totul este în regulă, dar există un lucru: magistrala IEEE-1394 este deja foarte activ folosită chiar și în camerele video digitale de consum, există plăci de editare video pentru aceasta și, odată cu scăderea constantă a prețurilor pentru camerele video digitale, va fi folosit din ce în ce mai larg. Noua versiune USB ar trebui să fie dezvoltată în sfârșit până la mijlocul anului 2000, iar primele dispozitive care acceptă noua versiune USB ar trebui să apară nu mai devreme de sfârșitul anului 2000. Acesta este un interval de timp foarte lung pentru industria computerelor. Deja în iulie 1999, de exemplu, ASUSTeK Computers a lansat prima placă de bază (P3B-1394) cu un controler IEEE-1394 integrat. Cu siguranță acest lucru nu va trece neobservat, iar alți producători vor începe să producă plăci similare. Prin urmare, până când dispozitivele sunt eliberate pe USB 2.0, locul sub soare ar putea fi deja ocupat.

USB (autobuz serial universal) este o extensie a arhitecturii PC standard din industrie, axată pe integrarea cu dispozitive de telefonie și electronice de larg consum.

Avantajele autobuzului:

  • Dispozitivul USB poate fi conectat la computer în orice moment, chiar și atunci când este pornit;
  • atunci când computerul detectează un dispozitiv USB conectat, îl interoghează automat pentru a afla capabilitățile și cerințele acestuia;
  • încarcă driverul, iar când dispozitivul este deconectat, driverul se descarcă automat;
  • Dispozitivul USB nu folosește jumperi, DIP switch, nu provoacă niciodată conflicte de întreruperi, DMA, memorie;
  • hub-urile USB extinse permit conectarea unui număr mare de dispozitive (până la 127 de dispozitive) la o singură magistrală;
  • cost redus al dispozitivelor USB.

Apariția USB-ului a făcut posibilă crearea Flash USB Drive (stocare USB).

Istoricul creării și dezvoltării interfeței USB

Prima versiune a interfeței de computer USB a apărut pe 15 ianuarie 1996. Alliance 7 a fost inițiatorul proiectului. companii mari producătorii Intel, DEC, IBM, Northen Telecom, Compaq.

Motivul apariției unui nou standard pentru transferul de informații a fost dorința de a simplifica conectarea PC-urilor cu dispozitive periferice. Scopul principal al standardului a fost acela de a crea o oportunitate pentru utilizatori de a utiliza o astfel de interfață care să aibă maximum de simplitate, versatilitate și să folosească principiul Plug & Play sau hot-plugging.

Acest lucru ar face posibilă conectarea diferitelor dispozitive de intrare-ieșire la PC în timpul funcționării, cu condiția recunoașterii automate imediate a tipului și modelului dispozitivului conectat. De asemenea, obiectivul a fost stabilit - de a scăpa de problema lipsei resurselor interne de întreruperi pe magistrala de sistem.

Toate aceste sarcini au fost rezolvate cu succes până la sfârșitul anului 1996, iar până în primăvara anului 1997 au început să apară primele PC-uri echipate cu conectori USB. Suportul complet pentru dispozitivele USB a fost realizat abia până la sfârșitul anului 1998, în sistemul de operare Windows98 și abia din această etapă a început o dezvoltare și lansare deosebit de rapidă a echipamentelor periferice, echipate cu această interfață.

Adoptarea reală în masă a USB a început odată cu adoptarea pe scară largă a carcaselor și plăcilor de bază ATX în jurul anilor 1997-1998. Apple nu a ratat șansa de a profita de progresele înregistrate și a dezvăluit primul său iMac, echipat și cu suport USB, pe 6 mai 1998.

Acest standard a luat naștere într-o perioadă în care exista deja o interfață de transfer de date în serie similară dezvoltată de Apple Computer și se numea FireWare sau IEE1394. Interfața USB a fost creată ca o alternativă la IEE1394 și a fost destinată nu să o înlocuiască, ci să existe în paralel cu tipul de conexiune deja existent.

Prima versiune de USB a avut unele probleme de compatibilitate și mai multe erori de implementare. Drept urmare, în noiembrie 1998 a apărut specificația USB 1.1.

Specificația USB 2.0 a fost introdusă în aprilie 2000. Dar a trecut mai mult de un an până să fie adoptat ca standard. După aceea, a început introducerea masivă a celei de-a doua versiuni a magistralei serial universale. Principalul său avantaj a fost o creștere de 40 de ori a vitezei de transfer de date. Dar pe lângă aceasta au existat și alte inovații. Așa au apărut noi tipuri de conectori Mini-B și Micro-USB, a fost adăugat suport pentru tehnologia USB On-The-Go (permite dispozitivelor USB să facă schimb de date între ele fără participarea unei gazde USB), a devenit posibil să utilizați tensiunea furnizată prin USB pentru încărcarea dispozitivelor conectate.

Cum funcționează magistrala USB

USB permite schimbul de date între un computer gazdă și o varietate de dispozitive periferice (CP). Conform specificației USB, dispozitivele (dispozitivele) pot fi hub-uri, funcții sau o combinație a ambelor. Un hub oferă doar puncte suplimentare pentru conectarea dispozitivelor la magistrală. Dispozitivul cu funcție USB oferă sistemului suplimentar funcţionalitate de ex. conexiune ISDN, joystick digital, difuzoare cu interfață digitală etc. Un dispozitiv compus care implementează mai multe funcții apare ca un hub cu mai multe dispozitive conectate la el.

Întregul sistem USB este controlat de controlerul gazdă, care este subsistemul hardware și software al computerului. Autobuzul vă permite să conectați, să configurați, să utilizați și să deconectați dispozitive în timp ce gazda și dispozitivele în sine rulează.

Bus-ul USB este centrat pe gazdă: singurul master care controlează schimbul este computerul gazdă, iar toate perifericele atașate la acesta sunt exclusiv sclavi. Topologia fizică a magistralei USB este o stea cu mai multe niveluri. În partea de sus este controlerul gazdă combinat cu hub-ul rădăcină. Un hub este un dispozitiv splitter; în plus, poate fi o sursă de alimentare pentru dispozitivele conectate la acesta. Fiecare port hub poate fi conectat direct la un dispozitiv periferic sau hub intermediar; magistrala permite până la 5 niveluri de cascadă hub (fără numărarea rădăcinii). Fiecare hub intermediar are mai multe porturi în aval pentru conectarea dispozitivelor periferice (sau hub-uri în aval) și un port în amonte pentru conectarea la hub-ul rădăcină sau la portul în aval al unui hub în amonte.

Datele de la dispozitivele conectate converg către gazda USB și oferă, de asemenea, interacțiune cu computerul. Toate dispozitivele sunt conectate într-o topologie în stea. Puteți utiliza hub-uri USB pentru a crește numărul de porturi USB active. Astfel, obțineți un analog al structurii logice „arborele”. Un astfel de arbore poate avea până la 127 de ramuri pe controler gazdă, iar nivelul de imbricare al hub-urilor USB nu trebuie să depășească cinci. În plus, o singură gazdă USB poate avea mai multe controlere gazdă, ceea ce crește proporțional numărul maxim de dispozitive conectate.

Hub-urile sunt de două tipuri. Unele pur și simplu măresc numărul de porturi USB dintr-un computer, în timp ce altele vă permit să conectați mai multe computere. A doua opțiune permite mai multor sisteme să utilizeze aceleași dispozitive. În funcție de hub, comutarea se poate face fie manual, fie automat.

Un dispozitiv fizic conectat prin USB poate fi subdivizat logic în „sub-dispozitive” care îndeplinesc anumite funcții specifice. De exemplu, o cameră web poate avea un microfon încorporat - se dovedește că are două sub-dispozitive: pentru transmiterea audio și video.

Transferul de date are loc prin canale logice speciale. Fiecărui dispozitiv USB i se pot atribui până la 32 de canale (16 de recepție și 16 de transmisie). Fiecare canal se conectează la un „punct final” numit convențional. Un punct final poate fie să primească date, fie să le transmită, dar nu poate face acest lucru în același timp. Grupul de puncte finale necesare pentru ca o funcție să funcționeze se numește interfață. O excepție este punctul final „null”, care este pentru configurarea dispozitivului.

Când un nou dispozitiv este conectat la gazda USB, începe procesul de atribuire a unui identificator. Mai întâi, un semnal de resetare este trimis către dispozitiv. Totodată, are loc determinarea vitezei cu care se poate efectua schimbul de date. După aceea, informațiile de configurare sunt citite de pe dispozitiv și îi este atribuită o adresă unică de șapte biți. Dacă dispozitivul este acceptat de gazdă, atunci toate driverele necesare sunt încărcate pentru a lucra cu el, după care procesul este finalizat. Repornirea unei gazde USB va realoca întotdeauna ID-urile și adresele tuturor dispozitivelor conectate.

Spre deosebire de magistralele de expansiune (ISA/EISA, PCI, PC Card), în care programul interacționează cu dispozitivele prin accesarea adreselor fizice ale celulelor de memorie, porturi I/O, întreruperi și canale DMA, aplicațiile interacționează cu dispozitivele USB doar prin interfața programului. Această interfață independentă de dispozitiv este furnizată de software-ul sistemului de control USB.

Un cablu cu patru fire este utilizat pentru conectarea dispozitivelor periferice la magistrala USB, cu două fire (pereche răsucită) în conexiune diferențială utilizate pentru primirea și transmiterea datelor și două fire pentru alimentarea dispozitivului periferic. Datorită liniilor de alimentare încorporate, magistrala USB vă permite să conectați dispozitive periferice fără o sursă de alimentare proprie (curentul maxim consumat de dispozitiv prin liniile de alimentare USB nu trebuie să depășească 500 mA).

Codificarea datelor

Autobuzul folosește o metodă diferențială de transmitere a semnalelor D + și D- pe două fire. Toate datele sunt codificate folosind o metodă numită NRZI cu umplutură de biți (NRZI - Non Return to Zero Invert).

În loc să codifice nivelurile logice ca niveluri de tensiune, USB definește 0 logic ca o schimbare a tensiunii și 1 logic ca o tensiune constantă. Această metodă este o modificare a metodei de codificare a potențialului normal NRZ (Non Return to Zero), în care potențialele de două niveluri sunt utilizate pentru a reprezenta 1 și 0, dar în metoda NRZI potențialul folosit pentru a codifica bitul curent depinde de potențialul pe care îl a fost folosit pentru a codifica bitul anterior. Dacă bitul curent este 0, atunci potențialul curent este inversul potențialului bitului anterior, indiferent de valoarea acestuia. Dacă bitul curent are valoarea 1, atunci potențialul curent îl repetă pe cel anterior. Evident, dacă datele conțin zerouri, atunci este destul de ușor pentru receptor și transmițător să mențină sincronizarea - nivelul semnalului se va schimba constant. Dar dacă datele conțin o secvență lungă de unele, atunci nivelul semnalului se va schimba și desincronizarea este posibilă. Prin urmare, pentru o transmisie fiabilă a datelor, este necesar să excludeți secvențele prea lungi din coduri. Această acțiune se numește Bit stuffing: după fiecare șase unități, se adaugă automat un 0.

Există doar trei octeți posibili cu șase unii consecutivi: 00111111, 01111110, 111111100.

Umplutura poate crește numărul de biți transmiși cu până la 17%, dar în practică această valoare este mult mai mică. Pentru dispozitivele conectate la magistrala USB, codificarea este transparentă: controlerele USB efectuează codificarea și decodificarea automat.

Moduri de autobuz

  • Viteza mica susținut de standardele 1.1 și 2.0. Rata de transfer de date de vârf - 1,5 Mbit / s (187,5 Kb / s). Cel mai adesea folosit pentru dispozitivele HID (tastaturi, mouse-uri, joystick-uri).
  • Viteza maxima susținut de standardele 1.1 și 2.0. Rata maximă de transfer de date - 12 Mbps (1,5 Mbps). Înainte de lansare, USB 2.0 era cel mai rapid mod de operare.
  • Viteză mare acceptat de standardele 2.0 și 3.0. Rata maximă de transfer de date - 480 Mbps (60 Mbps).
  • Viteza mare suportat de standardul 3.0. Rata maximă de transfer de date - 4,8 Gb/s (600 MB/s).

Transfer de date

Mecanismul de transfer de date este asincron și bazat pe blocuri. Blocul de date transmise se numește cadru USB sau cadru USB și este transmis într-un interval de timp fix. Operațiile cu comenzi și blocuri de date sunt implementate folosind o abstracție logică numită canal. Dispozitivul extern este, de asemenea, împărțit în abstracții logice numite puncte finale. Astfel, un canal este o legătură logică între controlerul gazdă și punctul final al unui dispozitiv extern. Un canal poate fi comparat cu un fișier deschis.

Canalul implicit este folosit pentru a transmite comenzi (și datele incluse în comenzi), iar canalele de streaming sau canalele de mesaje sunt deschise pentru transferul de date.

Informațiile despre canal sunt transmise sub formă de pachete (Pachet). Fiecare pachet începe cu un câmp SYNC (SYNChronization) urmat de un PID (Packet IDentifier).

Sistemul USB ar trebui să fie împărțit în trei niveluri logice cu reguli specifice de interacțiune. Un dispozitiv USB conține interfață, părți logice și funcționale. Gazda este, de asemenea, împărțită în trei părți - interfață, sistem și software. Fiecare parte este responsabilă doar pentru o anumită gamă de sarcini.

Operația de schimb de date între programul de aplicație și magistrala USB se realizează prin transferul de buffer-uri de memorie prin următoarele niveluri: Nivelul software client în gazdă:

  • de obicei reprezentat de un driver de dispozitiv USB;
  • asigură interacțiunea utilizatorului cu sistem de operare pe de o parte și driverul de sistem, pe de altă parte.

Nivel de sistem USB gazdă (USBD, driver de magistrală serial universal):

  • controlează numerotarea dispozitivelor pe magistrală;
  • controlează distribuția lățimii de bandă a magistralei și a alimentării cu energie;
  • se ocupă de solicitările personalizate ale șoferilor.

Controler gazdă pentru interfața magistralei USB(HCD, driver de controler gazdă):

  • transformă cererile I/O în structuri de date pe care controlerul gazdă efectuează tranzacții fizice;
  • funcționează cu registrele controlerului gazdă.

Stratul software client determină tipul de transfer de date necesar pentru efectuarea operației solicitate de aplicație. După determinarea tipului de transfer de date, acest strat transferă următoarele în stratul de sistem:

  • un buffer de memorie numit buffer client;
  • un pachet de solicitare de intrare/ieșire (IRP) care indică tipul de operație necesar.
  • IRP-ul conține doar informații despre cerere (adresa și lungimea buffer-ului în RAM). Driverul de sistem USB gestionează cererea direct.

Nivel driver de sistem USB este necesar pentru a gestiona resursele USB. El este responsabil pentru următoarele:

  • alocarea lățimii de bandă a magistralei USB;
  • atribuirea adreselor dispozitivelor logice fiecărui dispozitiv USB fizic;
  • programarea tranzacţiilor.

În mod logic, transferul de date între endpoint și software se face prin alocarea unui canal și schimbul de date prin acest canal.Software-ul client trimite cereri IPR layer-ului USBD. Driverul USBD descompune cererile în tranzacții conform următoarelor reguli:

  • executarea cererii se consideră finalizată atunci când toate tranzacțiile care o compun au fost finalizate cu succes;
  • toate detaliile procesării tranzacției (cum ar fi așteptarea pregătirii, retranzacția în caz de eroare, indisponibilitatea destinatarului etc.) nu sunt comunicate software-ului client;
  • Software-ul poate începe doar o solicitare și poate aștepta fie finalizarea cererii, fie expirarea timpului;
  • dispozitivul poate semnala erori grave, având ca rezultat o terminare anormală a cererii, care este notificată emitentului cererii.

Driverul controlerului gazdă primește o listă de tranzacții de la driverul sistemului de magistrală și efectuează următoarele acțiuni:

  • programează execuția tranzacțiilor primite adăugându-le la lista de tranzacții;
  • preia următoarea tranzacție din listă și o transferă la nivelul controlerului gazdă al interfeței magistralei USB;
  • ține evidența stării fiecărei tranzacții până la finalizarea acesteia.

Controlerul gazdă pentru interfața magistralei USB redă cadre. Cadrele sunt transmise prin transfer serial de biți folosind metoda NRZI.

Prin urmare:

  • fiecare cadru este format din mesajele cu cea mai mare prioritate, a căror compoziție este formată de driverul gazdă;
  • fiecare transfer constă dintr-una sau mai multe tranzacții;
  • fiecare tranzacție este formată din loturi;
  • fiecare pachet constă dintr-un ID de pachet, date (dacă există) și o sumă de verificare.


Tipuri de transfer de date

Specificația magistralei definește patru tipuri de transfer diferite pentru punctele finale.

Transferuri de control- sunt utilizate de gazdă pentru a configura dispozitivul în timpul conexiunii, pentru a controla dispozitivul și pentru a obține informații de stare în timpul funcționării. Protocolul asigură livrarea garantată a unor astfel de pachete. Lungimea câmpului de date al mesajului de control nu poate depăși 64 de octeți la viteză maximă și 8 octeți la viteză mică. Pentru astfel de pachete, gazda are garantat să aloce 10% din lățimea de bandă.

Transferuri de date în vrac- sunt utilizate atunci când este necesar să se asigure livrarea garantată a datelor de la gazdă la funcție sau de la o funcție la gazdă, dar timpul de livrare nu este limitat. Această transmisie ocupă toată lățimea de bandă disponibilă 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, pot fi suspendate atunci când autobuzul este foarte încărcat. Permis numai la viteză de transmisie completă. Astfel de pachete sunt folosite, de exemplu, de imprimante sau scanere.

Întreruperea transferurilor- sunt utilizate atunci când este necesar să se transmită pachete de date mici. Fiecare pachet trebuie transmis într-un timp limitat. Transferurile sunt spontane și nu trebuie efectuate mai lent decât necesită dispozitivul. Câmpul de date poate avea până la 64 de octeți la viteză maximă și până la 8 octeți la viteză mică. Limita de timp de serviciu este setată în intervalul 1-255 ms pentru viteză maximă și 10-255 ms pentru viteză mică. Astfel de transferuri sunt utilizate în dispozitivele de intrare, cum ar fi mouse-ul și tastatura.

Transferuri izocrone- sunt utilizate pentru schimbul de date în „timp real”, când este necesară transmiterea unei cantități strict definite de date la fiecare interval de timp, dar livrarea informațiilor nu este garantată (transmiterea datelor se realizează fără repetare în caz de defecțiuni, pierderi de pachete). este permis). Astfel de transferuri ocupă o porțiune pre-negociată a lățimii de bandă a magistralei și au o întârziere de livrare predeterminată. Transferurile izocrone sunt utilizate în mod obișnuit în dispozitivele multimedia pentru a transfera date audio și video, cum ar fi transmisia vocală digitală. Transferurile izocrone sunt separate în modul în care punctele finale - sursele sau destinatarii datelor - sunt sincronizate cu sistemul. Distingeți între clasele de dispozitive asincrone, sincrone și adaptive, fiecare dintre ele corespunde tipului său de canal USB.

Toate operațiunile de transfer de date sunt inițiate doar de gazdă, indiferent dacă primește date sau le trimite către un dispozitiv periferic. Toate tranzacțiile restante sunt stocate în patru liste în funcție de tipul de transfer. Listele sunt actualizate constant cu noi cereri. Programarea operațiunilor de transfer de informații în conformitate cu solicitările ordonate sub formă de liste se realizează de către gazdă la un interval de un cadru. Servirea cererilor se efectuează în conformitate cu următoarele reguli:

  • Transferurile izocrone au cea mai mare prioritate;
  • după ce toate transmisiile izocrone au fost procesate, sistemul trece la deservirea transmisiilor de întrerupere;
  • în ultimul rând, cererile de transfer de matrice de date sunt deservite;
  • după ce s-a scurs 90% din intervalul specificat, gazda trece automat la deservirea cererilor de transmitere a comenzilor de control, indiferent dacă a reușit să deservească integral celelalte trei liste sau nu.

Respectarea acestor reguli asigură că cel puțin 10% din lățimea de bandă a magistralei USB este întotdeauna alocată pentru controlul transferurilor. Dacă transmiterea tuturor pachetelor de control este finalizată înainte de expirarea fracțiunii lor alocate din intervalul de programare, atunci timpul rămas va fi folosit de gazdă pentru transmisiile de date.

Versiuni de specificații

Elaborarea specificațiilor pentru magistrala USB se realizează în cadrul organizației internaționale non-profit USB Implementers Forum (USB-IF), care reunește dezvoltatorii și producătorii de echipamente cu o magistrală USB.

De la mijlocul anului 1996, PC-urile au fost produse cu un controler USB integrat implementat de chipsetul plăcii de bază.

Prima versiune a specificației USB 1.0 acceptă două moduri de baud rate între dispozitiv și computer:

  • Viteză mică (1,5 Mbits/sec), pentru dispozitive precum mouse-uri, tastaturi și joystick-uri;
  • Viteză maximă (12 Mbits/sec), pentru modemuri și scanere.

În toamna anului 1998, a fost lansată versiunea 1.1 - a rezolvat problemele descoperite din prima ediție.

Principalele caracteristici tehnice ale USB 1.1:

  • Rata de schimb maximă suficient de mare - până la 12 Mbit / s.
  • Lungimea maximă a cablului pentru o viteză mare de transmisie este de 4,5 m.
  • Numărul maxim de dispozitive conectate (inclusiv multiplicatori) este de până la 127.
  • Este posibil să conectați dispozitive cu diferite cursuri de schimb.
  • Nu este necesară utilizarea de dispozitive și terminatoare suplimentare.
  • Tensiunea de alimentare pentru dispozitivele periferice este de 5 V.
  • Consumul maxim de curent per dispozitiv este de 500 mA.

În primăvara anului 2000, a fost publicată specificația USB 2.0, care oferă o creștere de 40 de ori a lățimii de bandă a magistralei (până la 480 Mbps în modul de mare viteză). Cu toate acestea, dispozitivele USB 2.0 au intrat pe piața principală în 2002 când interfață nouăîn cele din urmă a reușit să se impună.

A doua versiune a specificației USB 2.0 vă permite să utilizați un alt mod de mare viteză (480 Mbit/sec) pentru dispozitive precum hard disk-uri, CD-ROM, camere digitale. Lățimea de bandă de 480 Mbps este suficientă pentru unități externe, playere MP3, smartphone-uri și camere digitale care trebuia să transfere o cantitate mare de date. De asemenea, specificația USB 2.0 acceptă pe deplin dispozitivele dezvoltate pentru prima versiune. Controlerele și hub-urile detectează automat versiunea specificației acceptată de dispozitiv. Autobuzul vă permite să conectați până la 127 de dispozitive la distanță de la computer la o distanță de până la 25 m (folosind hub-uri intermediare).

De la adoptarea sa pe scară largă, USB 2.0 a reușit să înlocuiască complet interfețele seriale și paralele.

În prezent, dispozitivele realizate în conformitate cu specificația USB 2.0 sunt utilizate pe scară largă.

USB 3.0

Suporta USB 3.0 viteza maxima Transmisie de 5 Gbps.

Conector USB 3.0 tip A

Totuși, scopul principal al interfeței USB 3.0 este de a crește lățimea de bandă disponibilă nou standard optimizează eficient consumul de energie. USB 3.0 are patru stări de conectare numite U0-U3. Starea de conectare U0 corespunde transferului de date activ, iar U3 pune dispozitivul în „adormire”. Dacă conexiunea este inactivă, atunci în starea U1, capacitățile de primire și transmitere a datelor vor fi dezactivate. Starea U2 merge cu un pas mai departe prin dezactivarea ceasului intern.

Conector USB 3.0 tip B

În consecință, dispozitivele conectate pot intra în starea U1 imediat după finalizarea transferului de date, ceea ce se așteaptă să ofere beneficii tangibile de consum de energie în comparație cu USB 2.0.

cu exceptia diferite state standardul de consum de energie USB 3.0 diferă de USB 2.0 și curentul suportat mai mare. Dacă versiunea USB 2.0 prevedea un prag de curent de 500 mA, atunci, în cazul noului standard, limitarea a fost mutată la bara de 900 mA. Curentul în timpul inițierii conexiunii a fost crescut de la 100 mA pentru USB 2.0 la 150 mA pentru USB 3.0. Ambii parametri sunt foarte importanți pentru hard disk-urile portabile, care necesită de obicei curenți puțin mai mari. Anterior, problema a fost rezolvată folosind o mufă USB suplimentară, obținând energie de la două porturi, dar folosind doar unul pentru transferul de date.

Cabluri și conectori USB

Spre deosebire de buclele voluminoase și costisitoare de magistrală ATA paralelă și în special de magistrala SCSI cu varietatea sa de conectori și regulile complexe de conectare, cablarea USB simpluși grațios.

Există cinci tipuri de conectori USB:

De la stânga la dreapta: micro USB, mini USB, conector de tip B, conector de tip A, conector de tip A

  • micro USB- folosit în cele mai mici dispozitive precum playere și telefoane mobile;
  • mini USB- se găsește adesea și pe playere, telefoane mobile și, în același timp, pe camere digitale, PDA-uri și dispozitive similare;
  • de tip B- conector full-size, instalat în imprimante, scanere și alte dispozitive unde dimensiunea nu este foarte importantă;
  • tip A (receptor)- un conector instalat în calculatoare (sau pe extensii USB), unde este conectat un conector de tip A;
  • tip A (ștecher)- un conector conectat direct la computer în conectorul corespunzător.

Sistemul de cabluri și conectori USB nu vă permite să faceți greșeli la conectarea dispozitivelor. Mufele de tip „A” se potrivesc numai pe porturile hub-ului din aval, mufele de tip „A” pe cablurile hubului periferic sau din amonte. Prizele și mufele de tip B sunt utilizate numai pentru cablurile care sunt deconectate de la dispozitivele periferice și porturile din amonte ale hub-urilor (de la dispozitive „mici” - șoareci, tastaturi etc., cablurile nu sunt de obicei deconectate). Hub-urile și dispozitivele oferă capabilități de conectare și deconectare la cald.

Lungimea maximă a cablului USB poate fi de 5 metri. Această limitare a fost introdusă pentru a reduce timpul de răspuns al dispozitivului. Controlerul gazdă așteaptă sosirea datelor pentru o perioadă limitată de timp, iar dacă acestea sunt întârziate, conexiunea se poate pierde.

Cablul pentru sprijinirea magistralei de viteză maximă este pereche răsucită, ecranat și poate fi folosit și pentru operarea la viteză mică. Cablul pentru funcționare numai la viteza minimă (de exemplu, pentru conectarea unui mouse) poate fi orice cablu și poate fi neecranat.

Literatură

  1. A. Kostsov, V. Kostsov, PC Fier. Manualul utilizatorului. - M .: Martin, 2006 .-- 480 p.

Busul USB este proiectat pentru a interfata un PC cu diverse dispozitive tip de telefon, fax, modem, scaner, robot telefonic, tastatură, mouse etc. Această magistrală pentru desktop plug and play este o magistrală de viteză medie, bidirecțională, cu costuri reduse, care mărește conectivitatea și arhitectura PC-ului.

Principalele proprietăți ale magistralei USB:

Abilitatea de a conecta până la 127 de dispozitive fizice;

Recunoașterea automată a perifericelor;

Formarea diferitelor configurații;

Implementarea atât a tipurilor de transmisie izocronă, cât și a celor sincrone cu o gamă largă de viteze;

Prezența unui mecanism de tratare a erorilor;

Gestionarea energiei etc.

Tehnologia magistralei USB este prezentată în Figura 7.1 și are o structură în stea cu mai multe niveluri (configurație arborescentă).

Figura 7.1. Topologie magistrală USB

Fiecare stea este formată dintr-un hub (punct de conectare), care asigură conectarea unuia sau mai multor funcționari (func), dispozitive periferice. Autobuzul USB conține o gazdă (controller), care formează nivelul rădăcină și controlează activitatea funcționarilor. Hub-ul este un element cheie în arhitectura USB, susținând conectarea mai multor hub-uri. Hub-ul include un port de streaming superior al pistei, care este necesar pentru a conecta hub-ul la „coadă”, și mai multe porturi de streaming inferioare (NPP), conectându-l cu alte hub-uri și/sau funcționari (Figura 7.2).

Figura 7.2. Vedere generală a hub-ului

Hub-ul îndeplinește următoarele funcții: detectarea conexiunii (deconectarii) altui hub sau funcționar; gestionarea energiei și configurarea dispozitivelor conectate la CNE corespunzătoare. Hub-ul conține un controler și un repetor (comutator de port controlat de protocol între VFP și NPP1-NPP7). Controlerul folosește registre de interfață pentru a comunica cu gazda, care utilizează comenzi de control pentru a configura hub-ul și pentru a-și monitoriza partenerii. Figura 7.3 prezintă un sistem desktop care conține hub-uri și funcționari.

Funcționarul este un dispozitiv USB separat care este conectat printr-un cablu la un port de pe hub. Hub-ul/funcționarul rulează ca un dispozitiv care conține un hub încorporat. Fiecare funcționar trebuie să fie configurat de gazdă înainte de a-l folosi, ceea ce include alocarea intervalului de frecvență și selectarea opțiunilor specifice pentru configurare.

Figura 7.3. Sistem desktop care conține hub-uri și funcționari

Gazda USB (calculatorul central) accesează dispozitivele USB utilizând controlerul gazdă, care face următoarele:

Coordonarea controlului și a fluxurilor de date între gazdă și dispozitive;

Detectarea dispozitivelor conectate (deconectate);

Colectarea de informații despre starea sistemului;

Gestionare a energiei.

Protocolul de magistrală se realizează după cum urmează. Gazda trimite un pachet releu prin magistrala USB, care indică tipul de pachet, direcția tranzacției (acțiunea pe magistrală), adresa dispozitivului și numărul punctului final. Un punct final este o porțiune identificabilă în mod unic a unui dispozitiv USB care conține mai multe astfel de puncte (puncte finale de comunicare). Combinația dintre adresa dispozitivului și numărul punctului final din acest dispozitiv vă permite să selectați fiecare punct individual. Orice punct final trebuie configurat înainte de utilizare și este caracterizat prin frecvență, latența magistralei, lățimea de bandă, dimensiunea maximă a pachetului, tipul și direcția de transmisie. Dispozitivele de viteză mică conțin până la două puncte finale, iar dispozitivele de mare viteză au până la 16 puncte de ieșire.

După ce transferul de date este complet, dispozitivul USB (receptorul) răspunde cu un pachet de confirmare care indică faptul că transferul a avut succes.

Semnalele de date D + și D- și puterea (V și G - masă) în magistrala USB sunt transmise din punct în punct de-a lungul a patru fire ale unui cablu de 90 ohmi (Fig. 7.4.) Cu o lungime maximă de 5 m. Tensiunea nominală de alimentare este de 5v.

Figura 7.4. cablu USB

Gazda (hub-ul) furnizează alimentare dispozitivelor USB care sunt conectate la acesta. În plus, dispozitivele USB pot fi autoalimentate. Puterea magistralei USB este limitată.

Autobuzul USB oferă două game de rate de transfer de date: viteza mica(1,5 Mbps) și de mare viteză(12 Mbps). Modul de viteză mică este utilizat pentru a interacționa cu dispozitivele interactive (mouse, trackball etc.), iar modul de mare viteză este utilizat cu un adaptor de telefon, dispozitive audio sau video. Fiecare pachet de date este precedat de un câmp de sincronizare care permite receptorilor să-și alinieze cronometrele (oscilatorii) pentru a primi date. Câmpul de sincronizare conține impulsuri de sincronizare codificate NRZI pline de biți.

Legătura dintre gazdă și punctul final formează un canal. Un dispozitiv USB poate avea un punct final care acceptă doar un canal de control sau un punct final care utilizează un canal pentru transmiterea datelor.

USB efectuează următoarele tipuri de transferuri pe canalele corespunzătoare în una sau ambele direcții:

Controlul transmiterii spontane (neperiodice) cereri/răspuns, folosit pentru a transfera comenzi/stare și este de obicei folosit pentru configurarea dispozitivului în momentul conectării acestuia;

Transferul containerului, care se produce aleatoriu în timp, constând în un numar mare date de ieșire, de exemplu, către o imprimantă sau un scaner;

Întreruperea transmisiei (transmisia de date neperiodică la o frecvență joasă de la dispozitiv în orice moment, constând din unul sau mai mulți octeți trimiși către computerul principal și care necesită întreținere a dispozitivului);

Transmitere izocronă (streaming periodic), care asigură o comunicare continuă între gazdă și dispozitiv, în timp real, cu o viteză și latență prestabilite.

Toate dispozitivele USB conțin un punct final O la care canalul de control are acces implicit. Informațiile despre punctul final O descriu un dispozitiv USB și constă din următoarele părți: un standard care utilizează descriptori pentru dispozitiv, structura, interfața și punctele finale ale acestuia; Clasa dispozitivului și informații despre furnizor. Punctul final O este utilizat pentru a inițializa și configura dispozitivul USB.

Canalele mută informații între gazdă și punctul final folosind memoria tampon. Există două moduri de funcționare a canalului: un flux - date care nu au o structură specifică și un mesaj - date transmise în conformitate cu o anumită ordine. Software-ul de sistem (software) deține exclusiv canalul și îl expune altor software. Utilizatorul de software solicită transferuri prin canal, le așteaptă și apoi este notificat cu privire la finalizarea transferurilor de date. Un punct final poate semnala NAK gazdei că este ocupat.

Canalele de streaming transferă pachete de date non-USB într-o direcție sau în alta (transfer unidirecțional). Țevile de flux suportă transferuri de containere, izocrone și întrerupe.

Transferul de control permite accesul la orice parte a dispozitivului și este destinat schimbului de informații, precum configurație/comandă/stare, între software-ul utilizatorului și funcționar. Transmisia de control conține în general informații de solicitare (pachet de instalare), date și informații despre starea funcțională returnate gazdei. Pachetul de instalare are o structură specifică constând dintr-un set de comenzi necesare pentru a stabili comunicarea între o gazdă și un dispozitiv USB. Descrierea stării dispozitivului are și o structură specifică, iar datele de control care urmează pachetului de instalare nu au nicio structură și conțin informații despre accesul solicitat. Transmisia de control este realizată ca un flux bidirecțional de informații peste canalele de mesaje. Standardul magistralei USB limitează dimensiunea pachetului de date pentru dispozitivele de mare viteză la 8, 16, 32 sau 64 de octeți, în timp ce dispozitivele de viteză mică pot avea un pachet de date de cel mult 8 octeți. Pachetul de instalare conține întotdeauna 8 octeți. Inițial (după o resetare), gazda folosește un pachet de date de 8 octeți, care este suficient pentru operațiuni standard, iar după determinarea tipului punctului final din informațiile sale de configurare, un pachet mare poate fi utilizat pentru a efectua operațiuni specifice. Astfel, toate datele din timpul transmisiei sunt împărțite în părți egale (pachete), cu excepția ultimei părți, care conține datele rămase.

În cazul în care punctul final este ocupat pentru o anumită perioadă de timp, gazda va încerca din nou accesul la acesta după un timp. Dacă gazda detectează o eroare, aceasta retransmite.

Figura 7.5 prezintă o diagramă generală a modului în care componentele magistralei USB interacționează.

Figura 7.5. Schema generală de interacțiune a componentelor magistralei USB

Gazda (centrul de coordonare) conține: software de sistem USB care acceptă interfața USB într-un anumit sistem de operare și este furnizat împreună cu acesta; Software-ul utilizatorului necesar pentru a controla funcționarea unui anumit dispozitiv USB care este inclus cu sistemul de operare sau furnizat împreună cu dispozitivul și un controler care permite dispozitivelor să se conecteze la o gazdă. Un dispozitiv USB are, de asemenea, mai multe niveluri de implementare: interfață magistrală, logica dispozitivului (colecție de puncte) și funcțional (nivel funcțional al dispozitivului).

Autobuzul USB folosește metoda de codificare NRZI (fără revenire la zero cu inversare). În acest caz, metoda de codare NRZI este că, dacă bitul de date transmis este egal cu 0, atunci nivelul de tensiune se modifică, iar dacă este egal cu 1, atunci nivelul de tensiune este reținut. Figura 7.6 prezintă un exemplu de codificare a datelor folosind metoda NRZI.

Figura 7.6. Exemplu de codificare NRZI

Astfel, șirul de zerouri determină comutarea nivelurilor de semnal, iar șirul de unu formează segmente lungi de niveluri fără tranziții, care pot încălca condiția de sincronizare la selectarea fiecărui bit. Prin urmare, la transmiterea datelor, un zero este inserat la fiecare șase unii consecutiv pentru a se asigura că fiecare interval de biți este detectat în mod fiabil la recepție în cel mai rău caz când biții de date sunt unu-la-unu. Receptorul decodifică codul NRZI și renunță la biții zero introduși. Figura 7.7 prezintă o diagramă de timp a etapelor de codificare a datelor.

Diagrama prezintă mai întâi datele brute care conțin un câmp de sincronizare și un pachet de date, modelul de sincronizare având 7 zerouri și se termină cu un bit, după care începe pachetul de date. Apoi diagrama arată datele completate, care conțin suplimentar bitul inserat 0 după șase.Cele șase includ și ultimul bit de sincronizare. După aceea, datele completate sunt codificate folosind metoda NRZI, ținând cont de câmpul de sincronizare. Regula de umplutură necesită inserarea bitului 0, chiar dacă acest bit este ultimul, înainte de semnalul EOP (sfârșitul pachetului).

Figura 7.7. Diagrama temporală a pașilor de codificare a datelor

Să aruncăm o privire la unele dintre cerințele electrice ale magistralei USB. Figura 7.8 prezintă o schemă a unui driver de magistrală USB simetric (driver) care conține două buffer-uri CMOS identice.

Figura 7.8. Circuit de modelare diferenţial

Driverul diferențial echilibrat conține două ieșiri polarizate opus, D + și D-, cu trei stări pentru a realiza funcționarea semi-duplex bidirecțională. Una dintre ieșiri reprezintă repetorul de intrare tamponat, iar cealaltă este complementul său. Aceste ieșiri sunt conectate printr-o pereche de fire încrucișate la intrările receptorului diferențial. Astfel, firele transportă două semnale care sunt în mod egal afectate de zgomotul de mod comun eliminat de receptorul diferenţial.

Deoarece ieșirile driverului au polarități diferite, atunci când se transmit date cu o frecvență înaltă, apar semnale bipolare reflectate, care nu sunt zgomot de mod comun. Prin urmare, ar trebui eliminată posibilitatea apariției semnalelor reflectate pe partea de recepție a interfeței.

Aplicarea principiului transmisiei diferenţiale îi măreşte imunitatea la zgomot şi, în consecinţă, permite creşterea ratei de transmisie a datelor.

Figura 7.9 prezintă o diagramă a semnalelor la ieșirile modelului pentru o rată de transmisie de 12 Mbit/s (a) și 1,5 Mbit/s (b).

Figura 7.9. Diagrame de semnale la ieșirile modelatoarelor pentru rate de transmisie a datelor de 12 Mbit / s (a) și 1,5 Mbit / s (b)

Cablul ecranat cu perechi răsucite este utilizat la 12 Mbps, iar un cablu neecranat cu o pereche de conductori nerăsuciți este utilizat pentru 1,5 Mbps. Împerecherea transceiverelor (PP) folosind un cablu USB în cazul transmisiilor de mare viteză (a) și de viteză mică (b) este prezentată în Figura 7.10.

Se poate observa din diagrame că dispozitivele de mare viteză conțin un rezistor de sarcină (R H) pe linia D + și cele cu viteză redusă pe linia D, ceea ce vă permite să determinați tipul de dispozitiv USB conectat. Când dispozitivul USB nu conduce liniile D + și D-, linia RH are o tensiune de aproximativ 3V, iar cealaltă este aproape de 0V. Această stare a autobuzului se numește pasivă.

Figura 7.10. Scheme de interfață ale gazdei (hub) și funcționarului (hub) pentru transmisii de mare viteză (a) și de mică viteză (b)

Dacă dispozitivul nu este conectat la portul inferior al gazdei (hub) (sau nu există alimentare), atunci asimetric este setat pe ambele linii D + și D-. nivel scăzut tensiune (0,6 V), care este utilizată pentru a determina starea de deconectare sau mesajul de sfârșit de explozie (EOP). Pentru transmisiile de mare viteză, condiția de deconectare este un zero asimetric pentru 2,5 ms (unități de timp de 30 de biți).

Comunicarea cu dispozitivul este considerată a fi stabilită dacă tensiunea pe una dintre liniile D + (D-) atinge peste un prag înalt asimetric de 1,5 V în 2,5 ms.

Consultați Figura 7.11 pentru a determina dacă un dispozitiv USB este deconectat și conectat.

Figura 7.11. Stabilirea faptului de deconectare (a) și conectare a dispozitivului USB (b)

Timpul total de transfer de date este estimat cu numărul de biți de date înmulțit cu perioada (T) determinată de rata de transfer de date. Figura 7.12 prezintă diagrama de timp pentru liniile de date diferențiale D + și D-.

Figura 7.12. Timpul transferului de date

Conform codului NRZI, bitul 0 determină comutarea nivelurilor de tensiune, iar bitul 1 păstrează nivelurile de tensiune corespunzătoare pe liniile D + și D-. Durata zeroului asimetric în EOP este 2T, excluzând timpul de întârziere.

Începutul pachetului (SOF) este determinat de primul bit al câmpului de sincronizare când starea pasivă a liniilor D + și D- devine activă. Dispozitivele USB acceptă modul suspendare, care este cauzat de starea pasivă a liniilor D + și D- care este menținută mai mult de 3 ms.

Comanda gazdă poate seta un semnal de resetare care se propagă prin toate hub-urile și aduce dispozitivele conectate la starea lor inițială. Semnalul de resetare este un zero asimetric menținut pe magistrală timp de 10 ms.

În funcție de sursa de consum de energie, se disting următoarele tipuri de dispozitive:

Hub-uri care consumă energie din magistrală și furnizează energie dispozitivelor funcționale interne și porturi inferioare;

Hub-uri autoalimentate care vă permit să furnizați energie la cinci module, fiecare dintre ele consumând 100 mA, care este sarcina modulului;

Dispozitive de putere redusă (cu o sarcină de un modul) și de mare putere (cu o sarcină de cinci module) care consumă energie de la magistrală;

Dispozitive funcționale care au o sursă de alimentare externă și suportă sarcina unui modul alimentat de la magistrală.

Să aruncăm o privire la formatele de pachete definite de standardul magistralei USB. Se face o distincție între pachetele de autentificare, de informații și de confirmare. Fiecare pachet este precedat de transmiterea unui câmp de sincronizare pe 8 biți. Formatul pachetului de identificare este prezentat în Fig. 7.13.

Figura 7.13. Format pachet de identificare

În urma câmpului de sincronizare pentru fiecare pachet, este transmis un identificator (ID) de 8 biți, bitul cel mai puțin semnificativ mai întâi. Biții D0-D3 ai câmpului ID specifică tipul pachetului (formatul și metoda de detectare a erorilor pachetului corespunzător), iar biții D4-D7 sunt valori inverse ale celor mai puțin semnificativi patru biți și servesc ca câmp pentru verificare transmiterea corectă a câmpului ID, care se împart în identificare, informare, recunoaștere și speciale.

Utilizează o adresă de dispozitiv de 7 biți și un număr CT de 4 biți pentru a selecta un dispozitiv și un punct final (CT). Câmpul de adresă este destinat introducerii (ieșirii) datelor și setarea identificatorilor. La resetare sau oprire, adresa dispozitivului este setată la 0 și apoi este programată de gazdă. Dispozitivele de viteză mică conțin până la două puncte finale, iar dispozitivele de mare viteză conțin până la 16 puncte finale. Câmpul de adresă și numerele CT sunt protejate de un cod de verificare ciclic (CCC) pe 5 biți. Verificarea redundanței ciclice este că biții câmpului KCC sunt coeficienții unui polinom binar (echivalent pe 5 biți), iar octeții de control al erorii sunt obținuți prin împărțirea acestui polinom la un polinom dat de 16 biți. Prezența sau absența unei erori este determinată din codul binar al restului.

Pachetul de câmp de date constă dintr-un câmp ID de 8 biți, un câmp de date (0-1023 octeți) și un câmp KCC de 16 biți (Figura 7.14).

Figura 7.14. Format pachet de date

Există două pachete de date (Date (0) și Date (1)) cu identificatori diferiți necesari pentru a menține o sincronizare adecvată. Datele din pachet sunt reprezentate ca o secvență de octeți.

Pachetul de strângere de mână conține doar câmpul ID și are scopul de a verifica succesul transferului de date. Există trei tipuri de acest pachet: ACK (acknowledgement) - pachetul de date a fost primit fără erori și pachetul ID este corect (pachetul este folosit pentru transmiterea datelor); NAK (neacknowledged) - un pachet care indică incapacitatea dispozitivului de a primi date de la gazdă (eșec temporar) sau dispozitivul nu are date de transmis către gazdă (în plus, pachetul este utilizat pentru a raporta o pauză temporară în transmiterea sau recepția de date de către dispozitiv); STALL este un pachet de răspuns care indică o eroare permanentă și necesitatea intervenției programului gazdă.

Pachetul de identificare SOF (Start of Frame) permite hub-urilor sau dispozitivelor să identifice începutul unui cadru și să-și sincronizeze cronometrele interne cu cronometrul computerului gazdă. Formatul pachetului de autentificare este prezentat în Figura 7.15.

Figura 7.15. Format pachet de identificare

Un cadru constă dintr-o serie de tranzacții (acțiuni autobuz) care încep de la un simbol SOF și continuă până la începutul următorului simbol SOF. Dispozitivul sau hub-ul identifică începutul unui cadru prin ID-ul pachetului SOF pe 8 biți.

Există următoarele tranzacții: matrice de date, control, întrerupere și tip izocron.

O tranzacție de set de date la introducerea datelor într-o gazdă constă dintr-un pachet de autentificare cu o cerere de intrare, un pachet de date (Date (0/1)) de la dispozitiv și un pachet de confirmare (NAK sau STALL) trimis de dispozitiv în urma datelor. . Dacă pachetul de date este primit valid, atunci gazda răspunde dispozitivului cu un pachet ACK.

Când introduceți date de la o gazdă pe un dispozitiv, gazda trimite un pachet de autentificare cu o cerere de ieșire, urmată de un pachet de date. Dispozitivul răspunde gazdei cu unul dintre cele trei pachete de strângere de mână (ACK, NAK sau STALL).

Secvența de acțiuni ale gazdei și dispozitivului la transferul matricelor de date este prezentată în Figura 7.16.

Figura 7.16. Secvență gazdă și dispozitiv

Figura 7.17 prezintă secvența identificatorilor la scrierea și citirea unui tablou de date.

Figura 7.17. Secvență de identificatori atunci când scrieți și citiți o matrice de date

Pentru a sincroniza componentele magistralei USB se intercalează pachetele cu identificatorul de date (0) și pachetele cu identificatorul de date (1). Comutarea pachetelor de date în transmițător se efectuează după primirea pachetului ACK, iar în receptor - după primirea următorului pachet.

Tranzițiile de control conțin două etape: Instalare și Stare, între care poate exista o etapă de informare. În timpul fazei de instalare, numai datele cu formatul câmpului ID de date (0) sunt transferate la punctul final de control al dispozitivului.

Tranzacția de instalare este prezentată în Figura 7.18.

Figura 7.18. Instalați tranzacția

ACK nu este emis dacă datele sunt invalide. Dacă există o etapă de date, acestea sunt transferate într-o direcție în conformitate cu cerințele protocolului. Această etapă poate consta din mai multe tranzacții de intrare și de ieșire, iar dimensiunea matricei de date este specificată în pachetul de instalare.

Etapa de stat este ultima din secvența luată în considerare și utilizează identificatorul Data 0.

Figura 7.19 arată ordonarea tranzacțiilor și a ID-urilor de date pentru controlul de citire sau scriere.

Figura 7.19. Secvența tranzacției și ID-ul datelor

În etapa de stare, de la dispozitiv la gazdă sunt transmise următoarele informații: dispozitivul a finalizat sarcina (ACK), dispozitivul nu conține erori (STALL) și dispozitivul este ocupat (NACK).

Tranzacțiile de întrerupere conțin identificatori de intrare. Figura 7.20 prezintă secvența tranzacțiilor de întrerupere.

Figura 7.20. Întrerupeți secvențele de tranzacții

Dacă dispozitivul primește un identificator de intrare, atunci emite datele de întrerupere sub formă de pachet și primește un ACK sau trimite un NACK / STALL. Un pachet NAK este trimis de un dispozitiv atunci când nu conține informații pentru o nouă întrerupere, iar un pachet STALL este trimis de un dispozitiv dacă acesta a suspendat temporar funcționarea.

Tranzacțiile izocrone nu au o etapă de confirmare. Figura 7.21 prezintă etapele tranzacțiilor izocrone.

Figura 7.21. Etape de tranzacție isocrone

Când se execută modul izocron, pachetele de date cu identificatorii corespunzători sunt modificate pe rând, adică. Urmează primul pachet de date Data (0), urmat de pachetul de date (1) și așa mai departe.

Anterior


Standarde USB 1.1 și 2.0

Universal Serial Bus (USB) este o altă interfață serială. Deoarece este cea mai populară interfață serială, merită propriul capitol.

Busul USB permite conectarea în serie a până la 127 de dispozitive (puteți conecta un dispozitiv la un dispozitiv dacă producătorul dispozitivului a oferit această posibilitate). Ca și în cazul IEEE, este acceptată conectarea/conectarea la cald a dispozitivelor, adică nu trebuie să opriți alimentarea computerului pentru a conecta/deconecta un dispozitiv. În plus, ca și în cazul IEEE, dispozitivele pot fi alimentate prin USB, eliminând nevoia de surse de alimentare suplimentare.

Autobuzul USB a apărut în ianuarie 1996 - apoi a fost anunțată versiunea USB 1.0. Doi ani mai târziu, în 1998, a apărut magistrala USB 1.1. Aproape toate dispozitivele din versiunea 1.0 sunt compatibile cu USB 1.1 și invers - au existat doar modificări minore.

Autobuzul USB 2.0 a apărut în 2003. Este compatibil cu versiunile 1.0 și 1.1. Aceasta înseamnă că puteți conecta dispozitivele versiunile 1.0 și 1.1 la magistrala USB 2.0. Este foarte ușor să determinați versiunea dispozitivului - prin logo-ul USB. În fig. 10.1 prezintă sigla versiunilor USB 1.0 și 1.1 (acum versiunea dispozitivului 1.1 este mai comună), iar în fig. 10.2 - Sigla USB 2.0.

Orez. 10.1. Sigla USB 1.1: vechi (stânga) și nou (dreapta)

Orez. 10.2. Sigla USB 2.0

Specificații Autobuzele USB 1.1 sunt prezentate în tabel. 10.1.
// - Tabelul 10.1. Specificații magistralei USB1.1 - //


Vă rugăm să rețineți că magistrala USB 1.1 poate funcționa în două moduri: viteză mică și viteză mare. În primul, cursul de schimb este de 1,5 Mbit / s, în al doilea - 12 Mbit / s.
Specificațiile pentru magistrala USB 2.0 sunt aproape aceleași, dar există trei moduri de viteză pentru USB 2.0:
Viteză mică (viteză 10-1500 Kbps) - pentru dispozitivele de intrare (tastatură, mouse, joystick-uri);
Viteză completă (0,5–12 Mbit / s) - diverse dispozitive de viteză medie;
Hi-speed (5-480 Mbit / s) - suporturi de date, dispozitive video.

Conectarea dispozitivelor USB

Pe partea din spate a unității de sistem, puteți găsi de obicei patru porturi USB (uneori 6 sau chiar 8). Aceste porturi (Figura 10.3) aparțin hub-urilor USB root. Fiecare Root Hub are două porturi USB. Prin urmare, dacă aveți patru porturi USB pe placa de bază, atunci există două hub-uri rădăcină în sistem, dacă există opt porturi, atunci există patru hub-uri rădăcină în sistem.

//-- Orez. 10.3. porturi USB - //
Deschideți Manager dispozitive (pentru a face acest lucru, executați comanda Start, Setări, Panou de control, Sistem, accesați fila Hardware și faceți clic pe butonul Manager dispozitive). În fereastra Device Manager, extindeți grupul Universal Serial Bus Controllers (Figura 10.4).

//-- Orez. 10.4. Manager de dispozitiv --//
Faceți clic dreapta pe orice hub rădăcină și selectați Proprietăți. În fereastra care apare, accesați fila Putere. Veți vedea următoarele informații (Figura 10.5):
tipul de putere al hub-ului este hub-ul nostru rădăcină, prin urmare are propria sa putere;
informații despre dispozitivele conectate la porturile hub-ului și despre alimentarea acestora - în cazul nostru, un dispozitiv este conectat și necesită o sursă de alimentare de 100 mA. Hub-ul nostru maxim poate transmite până la 500mA per port;
număr de porturi libere - hub-ul rădăcină are doar două porturi, unul dintre ele este ocupat (un dispozitiv de stocare este conectat - un disc USB), deci un port este liber.

//-- Orez. 10.5. Detalii hub - //
Dacă aveți doar două hub-uri și puteți conecta doar două dispozitive la fiecare, atunci cum, vă întrebați, puteți conecta până la 127 de dispozitive USB la computer? În primul rând, puteți conecta hub-uri USB suplimentare la porturile hub-ului rădăcină (Figura 10.6). Un hub USB se conectează la un port USB, dar în schimb oferă cel puțin trei porturi USB gratuite. Există două tipuri de hub-uri USB: auto-alimentate și alimentate de la portul părinte. Mai bine să cumpărați hub-uri cu propria lor sursă de alimentare. De ce? După cum știm, se transmite un curent maxim de 500 mA pe port; Va fi necesar 100mA pentru alimentarea hub-ului în sine, așa că vor rămâne 400mA pentru dispozitive. Se dovedește că nu veți mai putea conecta niciun dispozitiv USB puternic la fiecare port al unui astfel de hub, dar veți putea conecta dispozitive precum discuri USB care au nevoie de doar 100 mA.

//-- Orez. 10.6. Mufa USB - //
Dacă hub-ul are propria sa sursă de alimentare, atunci va fi posibil să se furnizeze 500 mA pentru fiecare port, adică porturile USB vor fi cu drepturi depline, ca la hub-urile rădăcină.
În plus, unele dispozitive, cum ar fi o tastatură, pot acționa ca un hub USB (aceste dispozitive trebuie să fie dispozitive USB). Conectați tastatura la un port USB și puteți conecta mai multe dispozitive la acesta. De obicei, șoarecii USB și uneori discuri USB sunt conectate la tastatură. Este clar că aceste dispozitive nu ar trebui să fie „lacom”, deoarece în total se furnizează același 500 mA în port; 100 mA merg la alimentarea tastaturii, iar restul este împărțit între dispozitivele conectate la tastatură. Având în vedere o astfel de conexiune ierarhică a dispozitivelor, este ușor să ne imaginăm doar 127 de dispozitive conectate la un computer. Acesta nu este 63.000, așa cum este cazul cu IEEE-1394!
Acum despre conectorii USB. Sunt numiți conectorii din spatele unității de sistem (cei mai obișnuiți conectori USB). tip USB A. Cablul pentru conectorul de tip A este prezentat în fig. 10.7.

//-- Orez. 10.7. Cablu tip A - //
Conectorul și cablul de tip B sunt prezentate în fig. 10.8. De obicei, un conector de tip B este utilizat pe dispozitivele periferice (imprimante, scanere). Cablul USB pentru conectarea unui dispozitiv periferic la un computer (Fig. 10.9) este echipat cu un conector de tip B (pentru conectarea la o imprimantă / scaner) și un conector de tip A (pentru conectarea la un computer).

//-- Orez. 10.8. Conector (mamă) și cablu tip B - //
//-- Orez. 10.9. Cablu USB pentru imprimantă - //
Pe lângă conectorii de tip A și B, există și un mini-conector, care se numește mini-USB (Fig.10.10). De obicei, este folosit pentru a conecta un cablu USB la o cameră digitală, un telefon mobil. În acest caz, un capăt al cablului este mini-USB, iar celălalt este de tip A.

//-- Orez. 10.10. Cablu mini-USB - //

Actualizarea computerelor vechi

Calculatoarele mai vechi nu au porturi USB, dar puteți instala un controler USB conceput ca un card de expansiune PCI (Figura 10.11) sau ca un card PC (pentru laptop-uri). Când cumpărați un controler, asigurați-vă că acesta acceptă USB 2.0 (Fig. 10.12) - dacă este instalat, atunci cel mai nou.

//-- Orez. 10.11. Controler USB sub forma unei plăci PCI (4 porturi USB) - //

//-- Orez. 10.12. Card PC cu două porturi (adaugă suport USB la laptopul vechi) - //
Uneori computerul nu este foarte vechi - există suport USB, dar versiunea 1.1, dar trebuie să conectați un dispozitiv USB 2.0. În acest caz, un controler PCI va ajuta și el. Repet încă o dată: atunci când cumpărați, trebuie să vă asigurați că cumpărați exact controlerul USB 2.0.

În prezent, standardul USB 3.0 nu a fost încă adoptat, dar este deja în curs de dezvoltare. Ar trebui să transmită semnale folosind un cablu de fibră optică. USB 3.0 va fi compatibil cu versiunile 2.0 și 1.1.
Următoarele companii lucrează în prezent la crearea USB 3.0: Intel, Microsoft, Hewlett-Packard, Texas Instruments, NEC și NXP Semiconductors. Rata de transfer de date planificată (vârf) - 4,8 Gbps.

Sistemul dvs. acceptă USB

S-ar părea că dacă există porturi USB, atunci ar trebui să existe și suport USB. Dar nu este întotdeauna cazul. De exemplu, Windows 2000 și Windows XP SP1 nu au un driver USB 2.0. Chiar dacă aveți un controler USB 2.0, fără a instala un driver pentru USB 2.0, magistrala USB va funcționa ca USB 1.1.
Descărcați programul USB Ready de la http://www.usb.org/about/faq/ans3/usbready.exe, care vă va testa sistemul pentru suport USB (Figura 10.13).

//-- Orez. 10.13. Program gata USB - //
Ce ar trebui să facă cei cu un nou controler USB? Există mai multe opțiuni:
instalați o nouă versiune de OS - Windows Vista, dar nu este ieftină;
upgrade la versiunea sistemului de operare la Windows XP SP2; instalați driverul USB 2.0.

Nu întotdeauna doriți să reinstalați un sistem care funcționează bine. Apoi vom căuta un șofer. Uneori vine cu placa de bază - atunci ai noroc. Dar dacă nu este inclus în kit, atunci îl vom căuta pe Internet. Cel mai interesant este că nu mai este pe site-ul Microsoft. Am găsit șoferul de care aveam nevoie pe softodrom.ru:
http://soft.softodrom.ru/ap/p4515.shtml.
Dacă în momentul în care cartea se epuizează, aceasta nu mai este acolo, vă rugăm să mă contactați - o voi împărtăși cu voi.

Prima specificație USB (versiunea 1.0) a fost publicată la începutul anului 1996, iar specificația 1.1 a apărut în toamna anului 1998, corectând problemele găsite în prima ediție. În primăvara anului 2000, a fost publicată versiunea 2.0, care prevedea o creștere de 40 de ori a lățimii de bandă a magistralei. Astfel, specificațiile 1.0 și 1.1 asigură funcționarea la viteze de 12 Mbit/s și 1,5 Mbit/s, iar specificația 2.0 - la viteze de 480 Mbit/s. Acest lucru asigură compatibilitatea anterioară a USB 2.0 cu USB 1.x.

Specificația finală USB 3.0 a apărut în 2008. USB 3.0 a fost creat de Intel, Microsoft, Hewlett-Packard, Texas Instruments, NEC etc. NXP Semiconductors În specificația USB 3.0, conectorii și cablurile standard actualizate sunt compatibile fizic și funcțional cu USB 2.0. Pe lângă cele patru linii USB 2.0, USB 3.0 adaugă încă patru linii de comunicare (două perechi răsucite). Noile contacte din conectorii USB 3.0 sunt situate separat de cele vechi pe un rând de contacte diferit. Specificația USB 3.0 crește rata maximă de transfer de date la 4,8 Gb/s, astfel, viteza de transfer crește de la 60 MB/s la 600 MB/s și vă permite să transferați 1 TB nu în 8-10 ore, ci în 40 de minute -1 oră. Versiunea 3.0 se mândrește, de asemenea, cu o putere crescută a curentului de la 500 mA la 900 mA, astfel încât utilizatorul nu numai că poate alimenta mai multe dispozitive de la un singur hub, dar dispozitivele în sine, în multe cazuri, vor putea scăpa de sursele de alimentare separate.

Arhitectură USB comună

Arhitectura fizică a USB este guvernată de următoarele reguli:

  • dispozitivele se conectează la gazdă;
  • conexiunea fizică a dispozitivelor între ele se realizează conform topologiei unei stele cu mai multe niveluri, al cărei vârf este hub-ul rădăcină;
  • centrul fiecărei stele este un butuc;
  • fiecare segment de cablu conectează două puncte unul la altul: gazdă la hub sau funcție , un hub cu o funcție sau un alt hub;
  • Un dispozitiv periferic USB sau alt hub poate fi conectat la fiecare port al hub-ului, în timp ce sunt permise până la 5 niveluri de cascadă de hub-uri, fără a număra rădăcina.

Stratul superior este hub-ul rădăcină, care este de obicei partajat cu controlerul USB.

Fie dispozitive, fie alte hub-uri pot fi conectate la hub-ul rădăcină pentru a crește numărul de porturi disponibile. Concentratorul poate fi realizat ca un dispozitiv separat sau poate fi încorporat într-un altul, de ex. Dispozitivele USB pot fi clasificate ca dispozitive funcționale, de ex. cele care îndeplinesc o anumită funcție (de exemplu, șoareci), dispozitive hub care îndeplinesc doar o funcție de fanout și dispozitive colocate care includ un hub care extinde setul de porturi (de exemplu, monitoare cu porturi pentru conectarea altora).


La al cincilea nivel, dispozitivul combo nu poate fi utilizat. În plus, merită menționată separat gazda, care este mai mult un complex software și hardware decât un simplu dispozitiv.


Detaliile arhitecturii fizice sunt ascunse de programele de aplicație din software-ul de sistem (software), astfel încât arhitectura logică arată ca o stea normală cu software-ul aplicației în centru și un set de puncte finale ca vârfuri. Aplicația comunică cu fiecare punct final.

componente USB

Busul USB constă din următoarele elemente:


Proprietățile dispozitivului USB

  • adresare - dispozitivul trebuie să răspundă la adresa unică care i-a fost atribuită și numai acesteia;
  • configurație - după pornire sau resetare, dispozitivul trebuie să furnizeze o adresă zero pentru a-și putea configura porturile;
  • transfer de date - dispozitivul are un set de puncte finale pentru comunicarea cu gazda. Pentru punctele finale care acceptă diferite tipuri de transfer, numai unul dintre ele este disponibil după configurare;
  • gestionarea energiei - orice dispozitiv atunci când este conectat nu trebuie să consume din magistrală un curent mai mare de 100 mA. În timpul configurării, dispozitivul își declară cerințele actuale, dar nu mai mult de 500 mA. Dacă hub-ul nu poate furniza dispozitivului curentul declarat, dispozitivul nu va fi utilizat;
  • suspendare - Dispozitivul USB trebuie să accepte modul suspendat, astfel încât consumul său de curent să nu depășească 500 μA. Dispozitivul USB ar trebui să se suspende automat când autobuzul nu mai este activ;
  • trezire la distanță - Funcția de trezire la distanță permite unui dispozitiv USB suspendat să semnaleze o gazdă, care poate fi, de asemenea, într-o stare suspendată. Capacitatea de trezire de la distanță este descrisă în configurația dispozitivului USB. Această funcție poate fi dezactivată în timpul configurării.

Niveluri logice de schimb de date

Specificația USB definește trei nivel logic cu anumite reguli de interacţiune. Dispozitivul USB conține interfață, părți logice și funcționale. Gazda este, de asemenea, împărțită în trei părți - interfață, sistem și software. Fiecare parte este responsabilă doar pentru o anumită gamă de sarcini.

Astfel, operația de schimb de date între programul de aplicație și magistrala USB se realizează prin trecerea bufferelor de memorie prin următoarele straturi:

  • nivel de software client în gazdă:
    • de obicei reprezentat de un driver de dispozitiv USB;
    • asigură interacțiunea utilizatorului cu sistemul de operare, pe de o parte, și driverul de sistem, pe de altă parte;
  • nivel de sistem driver USBîn gazdă (USB, driver de magistrală serial universal):
    • controlează numerotarea dispozitivelor pe magistrală;
    • controlează distribuția lățimii de bandă a magistralei și a alimentării cu energie;
    • se ocupă de solicitările de la șoferii personalizați;
  • Nivelul driverului de controler gazdă (HCD):
    • transformă cererile I/O în structuri de date pe care se efectuează tranzacții fizice;
    • lucrează cu registre gazdă.

Relația dintre software-ul client și dispozitivele USB: USB oferă o interfață de programare și numai aceasta pentru interacțiune, permițând software-ului client să existe izolat de un anumit dispozitiv conectat la magistrală și configurația acestuia. Pentru client programe USB este doar un set de funcții.

Interacțiunea componentelor USB este prezentată în diagrama de mai jos:

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

Dispozitiv USB fizic- un dispozitiv de pe autobuz care îndeplinește funcții de interes pentru utilizatorul final.

Client SW- Software-ul specific dispozitivului care rulează pe computerul gazdă. Poate parte din OS sau produs special.

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

Controler gazdă USB- hardware și software pentru conectarea dispozitivelor USB la computerul gazdă.

Principiile transferului de date

Mecanismul de transfer de date este asincron și bazat pe blocuri. Se apelează blocul de date transmise cadru USB sau cadru USBși se transmite într-un interval de timp fix. Operarea comenzilor și a blocurilor de date este implementată folosind o abstracție logică numită canal. Un canal este o legătură logică între o gazdă și un punct final de dispozitiv extern.

Pentru a transmite comenzi (și date incluse în comenzi), este folosit canalul implicit și pentru a transmite date, fie streaming canale, sau canale de mesaje.

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 streaming, de intrare și de ieșire. Un flux poate implementa următoarele tipuri de schimb: continuu, izocron și întreruperi. Livrarea este întotdeauna în ordinea primul intrat, primul ieșit (FIFO); din punct de vedere USB, datele fluxului sunt nestructurate. Mesajele sunt în formatul definit de specificația USB. Gazda trimite o cerere către punctul final, urmată de un pachet de mesaj (primit), urmat de un pachet de informații despre starea punctului final. În mod normal, un mesaj ulterior nu poate fi trimis înainte de procesarea celui precedent, dar atunci când se gestionează erori, este posibil să se renunțe la mesajele netratate. Mesageria bidirecțională se adresează aceluiași punct final. Numai schimbul de control este utilizat pentru livrarea mesajelor.

Canalele sunt asociate cu caracteristici corespunzătoare punctului final. Canalele sunt organizate la configurarea dispozitivelor USB. Pentru fiecare dispozitiv care este pornit, există un canal de mesaje (Control Pipe 0) care transportă informații de configurare, control și stare.

Orice schimb pe magistrala USB este inițiat de controlerul gazdă. Organizează schimburile cu dispozitivele conform planului său de alocare a resurselor.

Controlerul ciclic (cu o perioadă de 1,0 ± 0,0005 ms) formează cadre (cadre) în care se încadrează toate transmisiile programate.

Fiecare cadru începe cu trimiterea unui pachet marcator Start Of Frame (SOF), care este un semnal de ceas 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. Dacă hub-ul detectează că date sunt transmise de la un port în acest moment, acest port este dezactivat.

În modul de transmisie de mare viteză, pachetele SOF sunt transmise la începutul fiecărui micro-cadru (perioada 125 ± 0,0625 µs).

Gazda programează descărcarea cadrelor astfel încât să existe întotdeauna loc pentru transmisiile cu cea mai mare prioritate în ele și loc liber cadrele sunt umplute cu transmisii cu prioritate scăzută a cantităților mari de date. Specificația USB permite împrumutul de până la 90% din lățimea de bandă a magistralei pentru tranzacții periodice (izocrone și întreruperi).

Fiecare cadru are propriul său număr. Controlerul gazdă funcționează cu un contor de 32 de biți, dar numai cei 11 biți mai puțin semnificativi sunt transmisi în jetonul SOF. Numărul blocului crește ciclic în timpul EOF.

Sincronizarea dispozitivelor și controlerului este importantă pentru transferul izocron. Există trei opțiuni de sincronizare:

  • sincronizarea generatorului intern al dispozitivului cu markere SOF;
  • ajustarea ratei cadrelor la frecvența dispozitivului;
  • potrivirea ratei de transmisie (recepție) a dispozitivului cu rata de cadre.

În fiecare cadru pot fi efectuate mai multe tranzacții, numărul lor admis 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 ora EOF. Frecvența cadrelor poate fi variată ușor folosind un registru special din controlerul gazdă, care permite ajustarea ratei pentru transferuri izocrone. Frecvența cadrelor controlerului poate fi ajustată la frecvența internă a ceasului unui singur dispozitiv.

Informațiile despre canal sunt transmise sub formă de pachete (Pachet). Fiecare pachet începe cu un câmp SYNC (SYNChronization) urmat de un PID (Packet IDentifier). Câmpul Verificare este inversul biți al PID.

Structura de date a unui pachet depinde de grupul căruia îi aparține.

1. Software-ul client trimite cereri IPR la nivelul USBD.

2. Driverul USBD împarte cererile în tranzacții conform următoarelor reguli:

  • executarea cererii se consideră finalizată atunci când toate tranzacțiile care o compun au fost finalizate cu succes;
  • toate detaliile procesării tranzacției (cum ar fi așteptarea pregătirii, retranzacția în caz de eroare, indisponibilitatea destinatarului etc.) nu sunt comunicate software-ului client;
  • Software-ul poate începe doar o solicitare și poate aștepta fie finalizarea cererii, fie expirarea timpului;
  • dispozitivul poate semnala erori grave, având ca rezultat o terminare anormală a cererii, care este notificată emitentului cererii.

3. Driverul controlerului gazdă primește lista de tranzacții de la driverul sistemului de magistrală și efectuează următoarele acțiuni:

  • programează execuția tranzacțiilor primite adăugându-le la lista de tranzacții;
  • preia următoarea tranzacție din listă și o transferă la nivelul controlerului gazdă al interfeței magistralei USB;

4. Controlerul gazdă al interfeței magistralei USB formează cadre;

5. Cadrele sunt transmise prin transmisie secvențială de biți folosind metoda NRZI

Astfel, se poate forma următoarea schemă simplificată:

1. fiecare cadru este format din mesajele cu cea mai mare prioritate, a căror compoziție este formată de driverul gazdă;

2. fiecare transfer constă dintr-una sau mai multe tranzacții;

3. fiecare tranzacție este formată din pachete;

4. Fiecare pachet constă dintr-un ID de pachet, date (dacă există) și o sumă de control.

Tipuri de mesaje USB

Specificația magistralei definește patru tipuri de transfer diferite pentru punctele finale:

  • unelte de control (Transferuri de control) - sunt utilizate de gazdă pentru a configura dispozitivul în timpul conexiunii, pentru a controla dispozitivul și pentru a obține informații de stare în timpul funcționării. Protocolul asigură livrarea garantată a unor astfel de pachete. Lungimea câmpului de date al mesajului de control nu poate depăși 64 de octeți la viteză maximă și 8 octeți la viteză mică. Pentru astfel de pachete, gazda are garantat să aloce 10% din lățimea de bandă;
  • transfer de matrice de date (Transferuri de date în vrac) - sunt utilizate atunci când este necesar să se asigure livrarea datelor garantate de la gazdă la funcție sau de la o funcție la gazdă, dar timpul de livrare nu este limitat. Acest transfer ocupă întreaga lățime de bandă disponibilă 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, pot fi suspendate atunci când autobuzul este foarte încărcat. Permis numai la viteză de transmisie completă. Astfel de pachete sunt folosite, de exemplu, de imprimante sau scanere;
  • întrerupe transmisia (Întreruperea transferurilor) - sunt utilizate atunci când este necesar să se transmită pachete de date mici. Fiecare pachet trebuie transmis într-un timp limitat. Transferurile sunt spontane și nu trebuie efectuate mai lent decât necesită dispozitivul. Câmpul de date poate avea până la 64 de octeți la viteză maximă și până la 8 octeți la viteză mică. Limita de timp de serviciu este setată în intervalul 1–255 ms pentru viteză maximă și 10–255 ms pentru viteză mică. Astfel de transferuri sunt utilizate în dispozitivele de intrare, cum ar fi mouse-ul și tastatura;
  • transferuri izocrone (Transferuri izocrone) - sunt folosite pentru schimbul de date în „timp real”, când este necesară transmiterea unei cantități strict definite de date la fiecare interval de timp, dar livrarea informațiilor nu este garantată (transmiterea datelor se realizează fără repetare în caz de defecțiuni, pachet pierderea este permisă). Astfel de transferuri ocupă o porțiune pre-negociată a lățimii de bandă a magistralei și au o întârziere de livrare predeterminată. Transferurile izocrone sunt utilizate în mod obișnuit în dispozitivele multimedia pentru a transfera date audio și video, cum ar fi transmisia vocală digitală. Transferurile izocrone sunt împărțite în funcție de metoda de sincronizare a punctelor finale - surse sau destinatari de date - cu sistemul: ele disting între clasele de dispozitive asincrone, sincrone și adaptive, fiecare dintre acestea corespunzând propriului tip de canal USB.

Mecanism de întrerupere

Nu există un mecanism real de întrerupere pentru magistrala USB. În schimb, gazda interogează dispozitivele conectate pentru date de întrerupere. Sondajul are loc la intervale fixe, de obicei la fiecare 1 până la 32 ms. Dispozitivul poate trimite până la 64 de octeți de date.

Din punctul de vedere al șoferului, capacitățile de întrerupere sunt de fapt determinate de gazdă, care oferă suport pentru implementarea fizică a interfeței USB.

Moduri de transfer de date

Autobuzul USB are trei moduri de transfer de date:

  • viteză mică (LS, Low-speed) 1,5 Mbit / s;
  • viteza maxima (LF, viteza maxima) 12 Mbit/s;
  • de mare viteză (HS, de mare viteză, numai pentru USB 2.0) 480 Mbps.

Conectarea dispozitivelor periferice la magistrala USB

Un cablu cu patru fire este utilizat pentru conectarea dispozitivelor periferice la magistrala USB, cu două fire (pereche răsucită) în conexiune diferențială utilizate pentru primirea și transmiterea datelor și două fire pentru alimentarea dispozitivului periferic.

Specificația 1.0 a specificat două tipuri de conectori:


Ulterior, au fost dezvoltați conectori miniaturali pentru utilizarea USB în dispozitive portabile și mobile, numite Mini-USB.

Există și conectori Mini AB și Micro AB la care sunt conectați conectorii A și B corespunzători.

Există și conectori miniaturali - Micro USB.

tip USB 2.0Sensul contactelorCuloarea firului

Conexiune la dispozitiv de viteză maximă

Conexiune dispozitiv de viteză redusă

Semnalele de sincronizare sunt codificate împreună cu datele folosind metoda NRZI (Non Return to Zero Invert). 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 transporta tensiunea de alimentare de 5 V către dispozitive. Secțiunea transversală a conductorilor este selectată în funcție de lungimea segmentului pentru a asigura nivelul de semnal garantat și tensiunea de alimentare.