Serial universal bus USB (Universal Serial Bus). USB (Universal Serial Bus, universal serial bus) Ce este magistrala USB

Prima specificație (versiunea 1.0) a USB a fost publicată la începutul anului 1996, iar în toamna anului 1998 a apărut specificația 1.1, corectând problemele găsite în prima ediție. În primăvara anului 2000, a fost publicată versiunea 2.0, care a oferit o creștere de 40 de ori a debitului autobuzului. 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. În același timp, USB 2.0 este compatibil cu USB 1.x.

Specificația finală USB 3.0 a apărut în 2008. Crearea USB 3.0 a fost realizată de Intel, Microsoft, Hewlett-Packard, Texas Instruments, NEC etc. NXP Semiconductors În specificația USB 3.0, conectorii și cablurile standardului actualizat sunt compatibile fizic și funcțional cu USB 2.0. Pe lângă cele patru linii de 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 alt rând de contacte. Specificația USB 3.0 crește viteza maximă de transfer de informații la 4,8 Gbit/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 un curent crescut 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 în multe cazuri dispozitivele în sine vor putea scăpa de sursele de alimentare separate.

Arhitectură USB comună

Arhitectura fizică a USB este definită 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: o gazdă cu un hub sau o funcție , un hub cu o funcție sau un alt hub;
  • la fiecare port al hub-ului se poate conecta un dispozitiv periferic USB sau un alt hub și sunt permise până la 5 niveluri de hub-uri în cascadă, fără a se număra cel root.

Cel mai înalt nivel este hub-ul rădăcină, care este de obicei combinat cu un controler USB.

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


La nivelul cinci, dispozitivul combinat nu poate fi utilizat. În plus, merită menționat separat despre gazdă, 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 simplă stea cu software-ul aplicației în centru și un set de puncte finale la vârfuri. Aplicația comunică cu fiecare punct final.

Componentele USB

Busul USB constă din următoarele elemente:


Proprietăți dispozitiv 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 schimbul de date cu gazda. Pentru punctele finale care permit diferite tipuri de transferuri, numai unul dintre ele este disponibil după configurare;
  • managementul energiei - orice dispozitiv atunci când este conectat nu trebuie să consume un curent care depășește 100 mA de la magistrală. Când este configurat, dispozitivul își declară cerințele actuale, dar nu mai mult de 500 mA. Dacă hub-ul nu poate alimenta dispozitivul cu curentul declarat, dispozitivul nu va fi utilizat;
  • suspendare - Dispozitivul USB trebuie să accepte modul suspendat, în care consumul său de curent nu depășește 500 µA. Dispozitivul USB ar trebui să se suspende automat când activitatea autobuzului încetează;
  • Trezire de la distanță - Capacitatea de trezire de la distanță permite unui dispozitiv USB suspendat să semnalizeze gazda, care poate fi, de asemenea, într-o stare suspendată. Funcția 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. 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.

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

  • nivel 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;
  • Nivelul de driver de sistem USB în gazdă (USB, driver de magistrală serială universală):
    • controlează numerotarea dispozitivelor de pe magistrală;
    • controlează distribuția lățimii de bandă a magistralei și a alimentării cu energie;
    • procesează solicitările de drivere ale utilizatorilor;
  • Nivel de controler gazdă interfață magistrală USB (HCD, driver de controler gazdă):
    • convertește cererile I/O în structuri de date pe care sunt efectuate tranzacții fizice;
    • lucrează cu registre gazdă.

Relația dintre software-ul client și dispozitivele USB: USB oferă o interfață software pentru interacțiune și numai asta, permițând software-ului client să existe izolat de dispozitivul specific conectat la magistrală și configurația acestuia. Pentru un program client, 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 fizic USB- un dispozitiv de pe autobuz 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.

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 este transmisă pe 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 conexiune logică între o gazdă și un punct final de dispozitiv extern.

Canalul implicit este folosit pentru a transmite comenzi (și date incluse în comenzi) și 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 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. 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.

Orice comunicare 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) generează cadre în care se încadrează toate transmisiile programate.

Fiecare cadru începe cu trimiterea unui pachet 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. Dacă hub-ul detectează că date sunt transmise de la un anumit port în acest moment, acest port este dezactivat.

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

Gazda programează încărcarea cadrelor astfel încât să existe întotdeauna loc pentru transferurile cu cea mai mare prioritate, iar spațiul liber al cadrelor este umplut cu transferuri cu prioritate scăzută de cantități mari de date. Specificația USB permite tranzacțiilor periodice (izocrone și întreruperi) să ocupe până la 90% din lățimea de bandă a magistralei.

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 cadrului este incrementat ciclic în timpul EOF.

Pentru transmisia izocronă, sincronizarea dispozitivelor și controlerului este importantă. Există trei opțiuni de sincronizare:

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

În fiecare cadru pot fi efectuate mai multe tranzacții, numărul de tranzacții 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 ora EOF. Frecvența cadrelor poate fi ușor variată folosind un registru special de controler gazdă, permițând ajustarea ratei pentru transferuri izocrone. Ajustarea frecvenței de cadre a controlerului este posibilă la frecvența de sincronizare internă a unui singur dispozitiv.

Informațiile prin canal sunt transmise sub formă de pachete. 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 de tranzacție în conformitate cu următoarele reguli:

  • executarea unei cereri este considerată finalizată atunci când toate tranzacțiile care o compun sunt finalizate cu succes;
  • toate detaliile procesării tranzacțiilor (cum ar fi așteptarea pregătirii, repetarea unei tranzacții în cazul unei erori, indisponibilitatea destinatarului etc.) nu sunt comunicate software-ului client;
  • Software-ul poate doar să lanseze o solicitare și să aștepte fie finalizarea cererii, fie expirarea timpului;
  • Dispozitivul poate semnala erori grave care fac ca cererea să se anuleze și sursa solicitării este notificată.

3. Driverul controlerului gazdă primește o listă de tranzacții de la driverul magistralei de sistem și efectuează următoarele acțiuni:

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

4. Controlerul gazdă de interfață magistrală USB generează cadre;

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

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

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

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

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

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

Tipuri de mesaje în USB

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

  • unelte de control (Transferuri de control) - folosit 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 colete. 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) - utilizat atunci când este necesar să se asigure livrarea garantată a datelor de la o gazdă la o funcție sau de la o funcție la o gazdă, dar timpul de livrare nu este limitat. Acest transfer 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. Astfel de viteze au cea mai mică prioritate; pot fi suspendate atunci când anvelopa este puternic încărcată. Permis numai la viteza maximă de transmisie. Astfel de pachete sunt utilizate, de exemplu, de imprimante sau scanere;
  • întrerupe transmisiile (Întreruperea transferurilor) - utilizat atunci când este necesar să se transmită pachete de date individuale de dimensiuni reduse. Fiecare pachet trebuie transmis într-un timp limitat. Operațiunile de transfer sunt spontane și trebuie întreținute nu mai lent decât este cerut de dispozitiv. Câmpul de date poate conține 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;
  • transmisii izocrone (Transferuri izocrone) - utilizat pentru schimbul de date în „timp real”, când la fiecare interval de timp este necesară transmiterea unei cantități strict definite de date, dar nu este garantată livrarea informațiilor (transmiterea datelor se efectuează fără repetare în caz de defecțiuni, pierderea pachetelor 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 specificată. Transferurile izocrone sunt utilizate în mod obișnuit în dispozitivele multimedia pentru a transmite date audio și video, cum ar fi vocea 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 clase de dispozitive asincrone, sincrone și adaptive, fiecare dintre ele având propriul 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 de timp fixe, de obicei la fiecare 1 - 32 ms. Dispozitivul poate trimite până la 64 de octeți de date.

Din punctul de vedere al șoferului, capacitatea de a gestiona întreruperi este de fapt determinată 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, Viteză mică) 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 Mbit/s.

Conectarea dispozitivelor periferice la magistrala USB

Pentru conectarea dispozitivelor periferice la magistrala USB, se folosește un cablu cu patru fire, cu două fire (pereche răsucită) într-o conexiune diferențială folosită pentru a primi și transmite date și două fire pentru alimentarea dispozitivului periferic.

Specificația 1.0 reglementează două tipuri de conectori:


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

Există și conectori Mini AB și Micro AB, la care sunt conectați conectorii corespunzători atât de tip A, cât și de tip B.

Există și conectori miniaturali - Micro USB.

Tip USB 2.0Înţeles contactsCuloarea firului

Conectarea unui dispozitiv cu viteză maximă

Conectarea unui dispozitiv de viteză mică

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 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.

Datorită versatilității și capacității sale de a transmite eficient trafic eterogen, magistrala USB este utilizată pentru a conecta o mare varietate de dispozitive la un PC. Este conceput pentru a înlocui porturile tradiționale pentru PC - COM și LPT, precum și adaptorul de joc și porturile MIDI. Specificația USB 2.0 ne permite să vorbim despre conectarea „clienților” tradiționali ai magistralelor ATA și SCSI, precum și despre capturarea unei părți din nișa aplicației de magistrală FireWire. Ceea ce face USB atractiv este capacitatea de a conecta/deconecta dispozitive din mers și abilitatea de a le folosi aproape imediat, fără a reporni sistemul de operare. Abilitatea de a conecta un număr mare (până la 127) de dispozitive la o singură magistrală este, de asemenea, convenabilă, deși cu hub-uri. Controlerul gazdă este integrat în majoritatea plăcilor de bază moderne. Sunt disponibile și plăci de expansiune cu controlere USB (de obicei pentru magistrala PCI). Cu toate acestea, utilizarea pe scară largă a USB este îngreunată de activitatea insuficientă a dezvoltatorilor de software (producători de hardware): uitând prin listele de dispozitive, vedem că suportul pentru Windows 98/SE/ME este indicat pentru toți, dar în coloanele pentru Linux , MacOS, Unix și chiar Windows 2000 există adesea neplăcute marcate N/A (Nepermis).
Pentru ca sistemul USB să funcționeze, driverele pentru controlerul gazdă (sau controlere, dacă sunt mai multe dintre ele) trebuie să fie încărcate. Când conectați un dispozitiv la magistrala USB, Windows afișează mesajul „Un dispozitiv nou a fost detectat” și, dacă dispozitivul este conectat pentru prima dată, vă solicită să descărcați driverele pentru acesta. Multe modele de dispozitive sunt deja cunoscute de sistem, iar driverele sunt incluse în distribuția sistemului de operare. Cu toate acestea, este posibil să aveți nevoie și de un driver de la producătorul dispozitivului, care ar trebui să fie inclus cu dispozitivul, sau va trebui să îl căutați pe Internet. Din păcate, nu toate driverele funcționează corect - un driver „brut” al versiunii inițiale poate fi necesar să fie înlocuit cu unul mai „corect” pentru ca dispozitivul să fie recunoscut normal și să funcționeze bine. Dar aceasta este o nenorocire comună pentru utilizatorii oricăror dispozitive, nu doar dispozitive USB.
Să enumerăm principalele domenii de aplicare ale USB.
* Dispozitive de intrare- tastaturi, mouse-uri, trackball-uri, indicatori pentru tablete, etc. Aici USB oferă o singură interfață pentru diferite dispozitive. Recomandabilitatea utilizării USB pentru o tastatură nu este evidentă, deși asocierea acestuia cu un mouse USB (conectat la portul hub integrat în tastatură) reduce numărul de cabluri care circulă de la unitatea de sistem la biroul utilizatorului.
* Imprimante. USB 1.1 oferă aproximativ aceeași viteză ca un port LPT în modul ECP, dar atunci când utilizați USB nu există probleme cu lungimea cablului și conectarea mai multor imprimante la un computer (deși sunt necesare hub-uri). USB 2.0 va accelera imprimarea de înaltă rezoluție prin reducerea timpului necesar pentru a transfera cantități mari de date. Cu toate acestea, există o problemă cu software-ul vechi care funcționează direct cu portul LPT la nivel de registru - nu va putea imprima pe o imprimantă USB.
* Scanere. Utilizarea USB vă permite să evitați controlerele SCSI sau să ocupați un port LPT. USB 2.0 va îmbunătăți, de asemenea, vitezele de transfer de date.
* Dispozitive audio- difuzoare, microfoane, căști (căști). USB vă permite să transferați fluxuri de date audio suficiente pentru a asigura cea mai înaltă calitate. Transmisia digitală de la sursa de semnal în sine (microfon cu convertor și adaptor încorporat) la receptor și procesarea digitală în computerul gazdă vă permite să scăpați de interferența inerente transmisiei audio analogice. Utilizarea acestor componente audio permite, în unele cazuri, să scapi de placa de sunet a computerului - codecul audio (ADC și DAC) este scos în afara computerului, iar toate funcțiile de procesare a semnalului (mixer, egalizator) sunt implementate de centrală. procesor exclusiv în software. Este posibil ca dispozitivele audio să nu aibă difuzoare reale și un microfon, dar pot fi limitate la convertoare și mufe standard („Jack”) pentru conectarea dispozitivelor analogice convenționale.
* Sintetizatoare muzicale și controlere MIDI cu interfata USB. Autobuzul USB permite computerului să proceseze fluxuri de mai multe canale MIDI (lățimea de bandă a interfeței MIDI tradiționale este deja mult mai mică decât capacitățile computerului).
* Camere video și foto. USB 1.1 vă permite să transferați imagini statice de orice rezoluție într-un timp acceptabil, precum și să transferați un flux de date video (video live) cu o rată a cadrelor suficientă (25-30 Kbps) doar cu rezoluție scăzută sau compresie de date, ceea ce afectează în mod natural Calitatea imaginii. USB 2.0 vă permite să transmiteți date video de înaltă definiție fără compresie (și pierderea calității). Atât camerele, cât și dispozitivele de captare a imaginii de la un semnal de televiziune și tunerele TV sunt produse cu o interfață USB.
* Comunicatii. O varietate de modemuri sunt produse cu interfața USB, inclusiv cablu și xDSL, adaptoare de comunicare în infraroșu de mare viteză (IrDA FIR) - magistrala vă permite să depășiți limita de viteză a portului COM (115,2 Kbps) fără a crește sarcina pe procesor central. Sunt disponibile și adaptoare de rețea Ethernet care se conectează la un computer prin USB. Pentru a conecta mai multe computere într-o rețea locală, sunt produse dispozitive speciale care efectuează comutarea de pachete între computere. Nici măcar două computere nu pot fi conectate direct (fără dispozitive suplimentare) prin porturile USB - doar un controler gazdă poate fi prezent pe o magistrală (vezi mai sus). Un dispozitiv special pentru conectarea unei perechi de computere arată ca o „pilulă” încorporată într-un cablu USB cu două mufe de tip A la capete. Conectarea a mai mult de două computere este complicată și de limitările topologice USB: lungimea unui segment de cablu nu trebuie să depășească 5 m, iar utilizarea hub-urilor pentru a crește raza de acțiune este ineficientă (fiecare hub oferă doar 5 m distanță suplimentară).
* Convertoare de interfață vă permit să conectați dispozitive cu o mare varietate de interfețe prin portul USB, acum disponibil pe aproape toate computerele: Centronics și IEEE 1284 (porturi LPT), RS-232C (emulație UART 16550A - elementele de bază ale porturilor COM) și alte interfețe seriale (RS-422 , RS-485, V. 35...), emulatori de porturi de tastatură și chiar porturi de jocuri, adaptoare pentru magistrala AT A, ISA, PC Card și orice altele pentru care performanța este suficientă. Aici USB devine o salvare atunci când apare problema celui de-al 2-lea (al 3-lea) port LPT sau COM într-un notebook PC și în alte situații. În acest caz, software-ul convertor poate oferi emularea versiunii clasice a hardware-ului porturilor standard IBM PC, dar numai sub controlul unui sistem de operare în mod protejat. O aplicație MS-DOS poate accesa dispozitive prin adrese I/O, memorie, întreruperi și canale DMA, dar numai dintr-o sesiune MS-DOS deschisă într-un sistem de operare compatibil USB (de obicei Windows). Când încărcați MS-DOS gol, bagheta magică nu funcționează. Convertoarele de interfață vă permit să prelungiți durata de viață a dispozitivelor cu interfețe tradiționale care sunt eliminate de pe computere prin specificațiile RS"99 și RS"2001. Viteza de transfer de date printr-un convertor USB - LPT poate fi chiar mai mare decât cea a unui port LPT real care funcționează în modul SPP.
* Dispozitive de stocare- hard disk-uri, cititoare și scriitoare CD și DVD, streamere - atunci când folosesc USB 1.1, acestea primesc o viteză de transfer proporțională cu viteza conexiunii lor la LPT, dar o interfață mai convenabilă (atât hardware, cât și software). Când treceți la USB 2.0, viteza de transfer de date devine comparabilă cu ATA și SCSI, iar restricțiile privind numărul de dispozitive sunt dificil de realizat. Utilizarea USB pentru dispozitive electronice de stocare nevolatile (memorie flash) este deosebit de interesantă - o astfel de unitate poate fi foarte compactă (dimensiunea unui breloc) și încăpătoare (în prezent 16-256 MB, în viitor - un gigabyte sau mai mult). ). Sunt produse dispozitive pentru conectarea mobilă a unităților cu interfața ATA-AT API - de fapt, acestea sunt doar convertoare de interfață plasate într-un compartiment-cutie de format de 5" sau 3,5" și uneori realizate direct în carcasa unui 36 de pini. conector ATA. Sunt disponibile și cititoare de carduri SmartMedia și CompactFlash.
* Dispozitive de jocuri- joystick-uri de toate tipurile (de la „beți” la volanele mașinii), telecomenzile cu diverși senzori (continui și discreti) și dispozitive de acționare (de ce să nu faci un scaun șofer de curse cu vibratoare și balansoare?) - sunt conectate într-un mod unificat cale. Acest lucru elimină interfața consumatoare de resurse a vechiului adaptor de jocuri (deja eliminat în specificația PC"99).
* Telefoane- analog și digital (ISDN). Conectarea unui telefon vă permite să vă transformați computerul într-o secretară cu funcții de apelare automată, robot telefonic, securitate etc.
* Monitoare- aici magistrala USB este folosită pentru a controla parametrii monitorului. Monitorul spune sistemului tipul și capacitățile acestuia (parametrii de sincronizare) - acest lucru a fost făcut fără USB prin magistrala DDC. Cu toate acestea, monitoarele USB permit și sistemului să le controleze - ajustările la luminozitate, contrast, temperatura culorii etc. pot fi acum efectuate programatic, și nu doar de la butoanele de pe panoul frontal al monitorului. Hub-urile sunt de obicei încorporate în monitoare. Acest lucru este convenabil, deoarece nu este întotdeauna convenabil să includeți periferice desktop într-o unitate de sistem „sub birou”.
* Chei electronice- dispozitive cu orice nivel de inteligenta de protectie - pot fi realizate in carcasa mufelor USB. Sunt mult mai compacte și mai mobile decât dispozitivele similare pentru porturile COM și LPT.
Desigur, domeniul de aplicare al magistralei USB nu se limitează la clasele de dispozitive enumerate.
Hub-urile USB sunt produse atât ca dispozitive separate, cât și încorporate în dispozitive periferice (tastaturi, monitoare). De regulă, hub-urile sunt alimentate cu curent alternativ (trebuie să alimenteze dispozitivele conectate). De asemenea, produc hub-uri care sunt instalate în interiorul unității de sistem computerizate și alimentate de sursa de alimentare a acesteia. Astfel de hub-uri sunt mai ieftine decât cele externe și nu necesită o priză suplimentară. Una dintre opțiunile de proiectare este instalarea butucului pe un suport montat într-o fereastră pentru conectori suplimentari. Accesul la conectorii lor din „spatele” unității de sistem nu este foarte convenabil pentru utilizatori. O altă opțiune este un hub instalat într-un compartiment de 3". Conectorii săi sunt ușor accesibili, indicatorii de stare a portului sunt clar vizibili, dar cablurile care ies de pe panoul frontal al unității de sistem nu sunt întotdeauna convenabile. Pe de altă parte, pentru conectarea chei electronice (dacă trebuie schimbate frecvent) sau unități miniaturale, această opțiune este cea mai convenabilă.
Recent, au apărut noi dispozitive auxiliare care măresc raza de comunicare (distance extender). Aceasta este o pereche de dispozitive conectate între ele printr-un cablu obișnuit cu perechi răsucite (sau fibră optică) conectat între dispozitivul periferic și hub. „Extenderul” de pe partea periferică poate avea și un hub pentru mai multe porturi. Din păcate, creșterea distanței este limitată de limitările privind timpul de întârziere a semnalului inerente protocolului de magistrală USB și este posibilă doar o distanță de până la 100 m. Dar chiar și această lungime vă permite să extindeți domeniul de aplicare al USB, de exemplu supraveghere video la distanță.

magistrala USB ( U universal S erial B us - magistrală serial universală) a apărut de către standardele computerelor cu destul de mult timp în urmă - versiunea primei versiuni aprobate 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ă.

Aproape toate sarcinile atribuite 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 conexiuni USB nu au apărut practic niciodată până la mijlocul 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 cu interfață USB mult mai activ pe piață? Există mai multe explicații pentru aceasta:

    nu este nevoie urgentă ca utilizatorii de computere desktop să aibă dispozitive cu suport complet Plug&Play. Perifericele sunt de obicei conectate la un computer desktop serios și pentru o lungă perioadă de timp, iar marea majoritate a utilizatorilor nu au nicio nevoie specială de schimbări frecvente ale perifericelor.

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

    lipsa suportului din partea producătorilor de software și, în principal, a Microsoft, deși a fost unul dintre autorii standardului. Abia cu Windows 98 a apărut suportul USB complet, iar Windows NT nu trebuia să-l aibă până în 1999.

Acum USB a început să fie implementat în mod activ de către producătorii de periferice pentru computere. Prezența doar USB ca magistrală externă în computerul iMAC de la Apple Computers a devenit o senzație.

Specificații

Capacitățile 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 la viteză redusă - 1,5 Mb/s

    Lungimea maximă a cablului pentru viteză redusă de transfer - 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 SCSI

    Tensiune de alimentare pentru dispozitive periferice - 5 V

    Consumul maxim de curent per dispozitiv este de 500 mA (asta nu înseamnă că dispozitivele cu un consum total de curent 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 a rezista mai multor î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.

Topologie

Această pictogramă denotă 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 nu este practic diferită de topologia unei rețele locale convenționale cu perechi răsucite, numită de obicei stea. Chiar și terminologia este similară - multiplicatorii de magistrală sunt denumiți și HUB-uri.

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

În loc de oricare dintre dispozitive poate exista și un HUB. Principala diferență față de topologia unei rețele locale obișnuite este că poate exista un singur computer (sau dispozitiv gazdă). HUB-ul poate fi fie un dispozitiv separat cu propria sa sursă de alimentare, fie încorporat într-un dispozitiv periferic. Cel mai adesea, HUB-urile sunt încorporate în monitoare și tastaturi

Figura de mai sus prezintă un exemplu de conectare corectă a dispozitivelor periferice la o rețea USB condiționată. Deoarece schimbul de date prin USB are loc numai între computer și dispozitivul 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, cel mai mare trafic este pe difuzoare (~1,3 Mb/s), urmate de modemul și scannerul conectat la HUB-ul din monitor, iar lanțul este completat de tastatură, joystick și mouse, al căror trafic este apropiat. la zero.
Poate apărea întrebarea - de ce difuzoarele au un trafic atât de mare? Faptul este că difuzoarele cu interfață USB sunt semnificativ diferite de cele obișnuite. NU ESTE NECESARĂ o placă de sunet pentru a utiliza aceste difuzoare. Driverul difuzorului trimite sunetul digitizat direct către difuzoare, unde este convertit într-un semnal analogic folosind un ADC și trimis către difuzoare.

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 este +5V și pentru circuitele de alimentare. Magistrala D+ este pentru transmiterea datelor pe magistrală, iar magistrala D este pentru primirea datelor.
Cablul de magistrală de viteză maximă 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.
Conectorii utilizați pentru conectarea dispozitivelor periferice sunt prezentați în figura de mai jos.

Conectori seria „A”.

Conectori seria B

    sunt destinate NUMAI pentru conectarea la o sursă, de ex. computer sau HUB.

    destinat conexiunii NUMAI la un dispozitiv periferic

Fișă de tip „A”.

Fișă de tip „B”.

Priză tip „A”.

Priză tip „B”.

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

Conectorii USB au următoarea numerotare a pinii:

Numar de contact

Scop

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 de magistrală USB a început să dezvolte în mod activ versiunea 2.0 a USB, care se distinge prin faptul că lățimea de bandă a magistralei a fost mărită de 20 (!) ori, până la 250 Mbits/s, ceea ce permite transferul de date video prin USB și îl face un concurent direct cu IEEE-1394 (FireWire).
Compatibilitatea tuturor perifericelor lansate anterior și a cablurilor de mare viteză este pe deplin păstrată și unul dintre cele mai importante avantaje ale USB este păstrat - costul scăzut al controlerului. Un controler standard 2.0 este de asemenea de așteptat să fie integrat în chipset.
Totul este bun, dar există un lucru: magistrala IEEE-1394 este deja foarte activ folosită chiar și în camerele video digitale de uz casnic, 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 de 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 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 încorporat. Cu siguranță acest lucru nu va trece neobservat și alți producători vor începe să producă plăci similare. Prin urmare, până când dispozitivele USB 2.0 ies, locul lor în soare ar putea fi deja ocupat.

USB (autobuz serial universal) este un standard industrial pentru extinderea arhitecturii PC, axat pe integrarea cu dispozitivele de telefonie și electronice de larg consum.

Avantajele anvelopei:

  • Un dispozitiv USB poate fi conectat la computer în orice moment, chiar și atunci când este pornit;
  • 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 este descărcat automat;
  • Dispozitivul USB nu utilizează jumperi, comutatoare DIP, nu provoacă niciodată întreruperi, DMA sau conflicte de memorie;
  • Hub-urile de expansiune USB vă permit să conectați un număr mare de dispozitive la o singură magistrală (până la 127 de dispozitive);
  • dispozitive USB la preț redus.

Apariția USB-ului a făcut posibilă crearea unității flash USB (unitate 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. Inițiatorii proiectului au fost o alianță a 7 mari companii producătoare 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 unui PC cu dispozitive periferice. Scopul principal al standardului a fost acela de a crea pentru utilizatori posibilitatea de a folosi o interfață care să aibă maximă simplitate, versatilitate și să folosească principiul Plug&Play sau conexiunea la cald.

Acest lucru ar permite conectarea diferitelor dispozitive de intrare/ieșire la PC în timpul funcționării, cu recunoaștere automată imediată a tipului și modelului dispozitivului conectat. De asemenea, scopul a fost stabilit pentru a scăpa de problema lipsei resurselor interne de întrerupere a magistralei sistemului.

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

Adoptarea cu adevărat masivă a USB a început odată cu adoptarea pe scară largă a carcasei și plăcilor de bază ATX în jurul anilor 1997-1998. Apple nu a ratat șansa de a profita de progres, prezentând primul său iMac pe 6 mai 1998, echipat și cu suport USB.

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

Prima versiune de USB a avut unele probleme de compatibilitate și conținea mai multe erori de implementare. Ca urmare, specificațiile USB 1.1 au fost lansate în noiembrie 1998.

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ă aceasta, a început introducerea în masă 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) și a devenit posibil pentru a utiliza tensiunea furnizată prin USB pentru încărcarea dispozitivelor conectate.

Cum funcționează magistrala USB

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. Hub-ul oferă doar puncte suplimentare pentru conectarea dispozitivelor la magistrală. Un dispozitiv cu funcție USB oferă sistemului funcționalități suplimentare, cum ar fi o conexiune ISDN, un joystick digital, difuzoare cu interfață digitală etc. Un dispozitiv compus care implementează mai multe funcții este reprezentat ca un hub cu mai multe dispozitive conectate.

Funcționarea întregului sistem USB este controlată de controlerul gazdă, care este un subsistem hardware și software al computerului. Autobuzul permite conectarea, configurarea, utilizarea și deconectarea dispozitivelor în timp ce gazda și dispozitivele în sine rulează.

Autobuzul USB este centrat pe gazdă: singurul dispozitiv principal care controlează schimbul este computerul gazdă, iar toate dispozitivele periferice conectate la acesta sunt dispozitive pur slave. Topologia fizică a magistralei USB este o stea cu mai multe niveluri. Partea de sus este controlerul gazdă, combinat cu hub-ul rădăcină. Hub-ul este un dispozitiv splitter în plus, poate fi o sursă de alimentare pentru dispozitivele conectate la acesta. Fiecare port hub poate conecta direct un dispozitiv periferic sau un hub intermediar; magistrala permite până la 5 niveluri de hub-uri în cascadă (fără a număra rădăcina). 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.

Gazda USB primește date de la dispozitivele conectate și oferă, de asemenea, interacțiune cu computerul. Toate dispozitivele sunt conectate folosind o topologie în stea. Pentru a crește numărul de conectori USB activi, puteți utiliza hub-uri USB. Acest lucru va crea 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 gazdă USB poate avea mai multe controlere gazdă, ceea ce crește proporțional numărul maxim de dispozitive conectate.

Există două tipuri de hub-uri. Unele pur și simplu măresc numărul de conectori USB pe 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 singur dispozitiv fizic conectat prin USB poate fi împărțit logic în „sub-dispozitive” care îndeplinesc anumite funcții. 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. Fiecare dispozitiv USB poate fi alocat până la 32 de canale (16 pentru recepție și 16 pentru transmisie). Fiecare canal este conectat la ceea ce se numește în mod convențional „punct final”. Un punct final poate primi sau transmite date, dar nu poate face pe amândouă în același timp. Un grup de puncte finale necesare pentru ca o funcție să funcționeze se numește interfață. Excepția este punctul final „null”, care este destinat configurației dispozitivului.

Când un dispozitiv nou este conectat la o gazdă USB, începe procesul de atribuire a unui identificator. În primul rând, dispozitivului i se trimite un semnal de resetare. În același timp, se determină viteza cu care se pot schimba datele. Informațiile de configurare sunt apoi citite de pe dispozitiv și îi este atribuită o adresă unică de șapte biți. Dacă dispozitivul este acceptat de gazdă, atunci sunt încărcate toate driverele necesare pentru a lucra cu acesta, după care procesul este finalizat. Repornirea gazdei USB determină întotdeauna reatribuirea identificatorilor și adreselor 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, interacțiunea aplicației cu dispozitivele USB se realizează doar printr-un software. interfata. Această interfață, care asigură independența dispozitivului, este furnizată de software-ul sistemului de control USB.

Pentru conectarea dispozitivelor periferice la magistrala USB, se folosește un cablu cu patru fire, cu două fire (pereche răsucită) într-o conexiune diferențială folosită pentru a primi și transmite date ș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 intermediul liniilor de alimentare USB nu trebuie să depășească 500 mA).

Codificarea datelor

Pentru a transmite date pe magistrală, se utilizează o metodă diferențială pentru a transmite semnale D+ și D- pe două fire. Toate datele sunt codificate folosind o metodă numită NRZI cu umplere de biți (NRZI - Non Return to Zero Invert, o metodă de revenire la zero cu unități inversoare).

În loc să codifice nivelurile logice ca niveluri de tensiune, USB definește 0 logic ca o modificare a tensiunii și 1 logic ca nicio modificare a tensiunii. Această metodă este o modificare a metodei obișnuite de codificare a potențialului NRZ (Non Return to Zero), în care două potențiale de nivel 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 are valoarea 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 umplutură: 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 are loc în mod transparent: controlerele USB realizează codificarea și decodificarea automat.

Moduri de operare autobuz

  • Viteza mica acceptat de standardele versiunile 1.1 și 2.0. Rata maximă de transfer de date este de 1,5 Mbit/s (187,5 KB/s). Cel mai adesea folosit pentru dispozitive HID (tastaturi, mouse-uri, joystick-uri).
  • Viteza maxima acceptat de standardele versiunile 1.1 și 2.0. Viteza maximă de transfer de date este de 12 Mbit/s (1,5 MB/s). Înainte de lansarea USB 2.0, era cel mai rapid mod de operare.
  • Viteză mare acceptat de versiunile standard 2.0 și 3.0. Viteza maximă de transfer de date este de 480 Mbit/s (60 MB/s).
  • Viteza mare suportat de versiunea standard 3.0. Viteza maximă de transfer de date este de 4,8 Gbit/s (600 MB/s).

Transfer de date

Mecanismul de transfer de date este asincron și bazat pe blocuri. Blocul de date transmis se numește cadru USB sau cadru USB și este transmis pe un interval de timp fix. Operarea comenzilor și a blocurilor de date este implementată folosind o abstracție logică numită canal. Dispozitivul extern este, de asemenea, împărțit în abstracții logice numite puncte finale. Astfel, canalul este o conexiune logică între controlerul gazdă și punctul final al dispozitivului 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 transmiterea de date.

Informațiile prin canal sunt transmise sub formă de pachete. 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 straturi logice cu anumite reguli 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 trecerea bufferelor de memorie prin următoarele straturi: Nivelul 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.

Stratul hardware al sistemului USB în gazdă (USBD, driver de magistrală serial universal):

  • controlează numerotarea dispozitivelor de pe magistrală;
  • controlează distribuția lățimii de bandă a magistralei și a alimentării cu energie;
  • procesează solicitările de drivere ale utilizatorilor.

Interfață USB Bus Controller gazdă(HCD, driver de controler gazdă):

  • convertește cererile I/O în structuri de date față de 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 programul de aplicație. După determinarea tipului de transfer de date, acest strat transmite stratului de sistem următoarele:

  • un buffer de memorie numit buffer client;
  • un IRP (Input/output Request Packet) care indică tipul de operațiune necesar.
  • IRP-ul conține doar informații despre cerere (adresa și lungimea buffer-ului din RAM). Driverul de sistem USB procesează direct cererea.

Stratul de driver de sistem USB este necesar pentru a gestiona resursele USB. Este responsabil pentru efectuarea următoarelor acțiuni:

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

În mod logic, transferul de date între punctul final și software se realizează prin alocarea unui canal și schimbul de date prin acest canal. Software-ul client trimite solicitări IPR la nivelul USBD. Driverul USBD împarte cererile în tranzacții conform următoarelor reguli:

  • executarea unei cereri este considerată finalizată atunci când toate tranzacțiile care o compun sunt finalizate cu succes;
  • toate detaliile procesării tranzacțiilor (cum ar fi așteptarea pregătirii, repetarea unei tranzacții în cazul unei erori, indisponibilitatea destinatarului etc.) nu sunt comunicate software-ului client;
  • Software-ul poate doar să lanseze o solicitare și să aștepte fie finalizarea cererii, fie expirarea timpului;
  • Dispozitivul poate semnala erori grave care fac ca cererea să se anuleze și sursa solicitării este notificată.

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

  • programează executarea tranzacțiilor primite, adăugându-le la lista de tranzacții;
  • extrage următoarea tranzacție din listă și o transferă la nivelul controlerului gazdă al interfeței magistralei USB;
  • urmărește starea fiecărei tranzacții până la finalizarea acesteia.

Controlerul gazdă al interfeței USB generează cadre. Cadrele sunt transmise prin transmisie serială de biți folosind metoda NRZI.

Prin urmare:

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


Tipuri de transfer de date

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

Transferuri de control- folosit 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 colete. 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 o gazdă la o funcție sau de la o funcție la o gazdă, dar timpul de livrare nu este limitat. Acest transfer 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. Astfel de viteze au cea mai mică prioritate; pot fi suspendate atunci când anvelopa este puternic încărcată. Permis numai la viteza maximă de transmisie. Astfel de pachete sunt folosite, de exemplu, de imprimante sau scanere.

Întreruperea transferurilor- folosit atunci când este necesar să se transmită pachete de date mici. Fiecare pachet trebuie transmis într-un timp limitat. Operațiunile de transfer sunt spontane și trebuie întreținute nu mai lent decât este cerut de dispozitiv. Câmpul de date poate conține 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- folosit pentru schimbul de date în „timp real”, când la fiecare interval de timp este necesară transmiterea unei cantități strict definite de date, dar livrarea informațiilor nu este garantată (transmiterea datelor se realizează fără repetare în cazul defecțiunilor, pachetul 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 specificată. Transferurile izocrone sunt utilizate în mod obișnuit în dispozitivele multimedia pentru a transmite date audio și video, cum ar fi vocea digitală. Transferurile izocrone sunt împărțite în funcție de modul în care punctele finale - sursele sau destinatarii datelor - sunt sincronizate cu sistemul. Există clase de dispozitive asincrone, sincrone și adaptive, fiecare dintre ele având propriul său tip de canal USB.

Toate operațiunile de transfer de date sunt inițiate numai de gazdă, indiferent dacă aceasta primește date sau le transmite către un dispozitiv periferic. Toate operațiunile restante sunt stocate sub forma a patru liste după 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 intervale de un cadru. Cererile sunt procesate în conformitate cu următoarele reguli:

  • Transmisiile izocrone au cea mai mare prioritate;
  • după procesarea tuturor transmisiilor izocrone, sistemul trece la deservirea transmisiilor de întrerupere;
  • Cererile de transfer de matrice de date sunt procesate ultimele;
  • după ce 90% din intervalul specificat a expirat, gazda trece automat la solicitările de service pentru transmiterea comenzilor de control, indiferent dacă a reușit să deservească integral celelalte trei liste sau nu.

Respectarea acestor reguli asigură că transferurile de control sunt întotdeauna alocate cel puțin 10% din lățimea de bandă a magistralei USB. Dacă transmiterea tuturor pachetelor de control este finalizată înainte de expirarea porțiunii alocate a intervalului de programare, atunci timpul rămas va fi folosit de gazdă pentru transferurile 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 magistrala USB.

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

Prima versiune a specificației USB 1.0 acceptă două moduri de viteză de transfer de date î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 eliminat problemele descoperite din prima ediție.

Principalele caracteristici tehnice ale USB 1.1:

  • O viteză maximă de schimb destul de mare - până la 12 Mbit/s.
  • Lungimea maximă a cablului pentru viteză mare de transfer 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 viteze de transmisie diferite.
  • Nu sunt necesare dispozitive sau 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 prevede o creștere de 40 de ori a debitului magistralei (până la 480 Mbit/s în modul de mare viteză). Cu toate acestea, dispozitivele USB 2.0 au intrat pe piața de masă în 2002, când noua interfață a fost în sfârșit capabilă să se impună.

A doua versiune a specificației USB 2.0 permite utilizarea unui alt mod de mare viteză (480 Mbit/sec) pentru dispozitive precum hard disk-uri, CD-ROM-uri și camere digitale. Debitul de 480 Mbps este suficient și pentru unități externe, playere MP3, smartphone-uri și camere digitale care trebuie să transfere cantități mari de date. De asemenea, specificația USB 2.0 acceptă pe deplin dispozitivele concepute 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).

După introducerea 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

USB 3.0 acceptă o viteză maximă de transfer de 5 Gbps.

Conector USB 3.0 tip A

Scopul principal al USB 3.0 este de a crește lățimea de bandă disponibilă, dar noul standard optimizează eficient consumul de energie. USB 3.0 are patru stări de conectare, numite U0-U3. Starea de conexiune U0 corespunde transferului de date activ, iar U3 pune dispozitivul în stare de repaus. Dacă conexiunea este inactivă, atunci în starea U1 capacitatea de a primi și transmite date va fi dezactivată. Starea U2 face un pas mai departe prin dezactivarea ceasului intern.

Conector USB 3.0 tip B

În consecință, dispozitivele conectate pot trece la starea U1 imediat după finalizarea transferului de date, ceea ce este de așteptat să ofere avantaje semnificative în ceea ce privește consumul de energie în comparație cu USB 2.0.

Pe lângă diferitele stări de consum de energie, standardul USB 3.0 diferă de USB 2.0 în ceea ce privește curentul mai mare suportat. Dacă versiunea USB 2.0 a furnizat un prag de curent de 500 mA, atunci în cazul noului standard limita a fost deplasată la 900 mA. Curentul de inițiere a conexiunii a fost crescut de la 100 mA pentru USB 2.0 la 150 mA pentru USB 3.0. Ambii parametri sunt destul de importanți pentru hard disk-urile portabile, care necesită de obicei curenți puțin mai mari. Anterior, problema putea fi rezolvată folosind o mufă USB suplimentară, primind energie de la două porturi, dar folosind doar unul pentru transferul de date.

Cabluri și conectori USB

Spre deosebire de cablurile voluminoase și scumpe ale magistralelor ATA paralele și în special de magistrala SCSI cu varietatea sa de conectori și complexitatea regulilor de conectare, gestionarea cablurilor USB este simplă și elegantă.

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- un 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 cabluri de prelungire USB), unde este conectat un conector de tip A;
  • tip A (priză)- un conector care se conectează direct la computer în conectorul corespunzător.

Sistemul de cablu și conector USB face imposibilă greșelile la conectarea dispozitivelor. 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). Hub-urile și dispozitivele oferă capabilități hot-plug și hot-plug.

Lungimea maximă a cablului USB poate fi de 5 metri. Această limitare este 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 de magistrală de viteză maximă 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.

Literatură

  1. Kostsov A., Kostsov V. Iron PC. Cartea de referință a utilizatorului. - M.: Martin, 2006. - 480 p.

Universal Serial Bus

  • Conector Mini-B ECN: Aviz emis în octombrie 2000.
  • Errata, din decembrie 2000: Aviz emis în decembrie 2000.
  • Rezistori de tragere/coborare ECN
  • Errata, din mai 2002: Aviz emis în mai 2002.
  • Asociații de interfață ECN: Aviz emis în mai 2003.
    • Au fost adăugate noi standarde pentru a permite mai multe interfețe să fie asociate cu o singură funcție a dispozitivului.
  • Teșit rotunjit ECN: Aviz emis în octombrie 2003.
  • Unicode ECN: Aviz emis în februarie 2005.
    • Acest ECN specifică faptul că șirurile sunt codificate folosind UTF-16LE.
  • Supliment USB Inter-Chip: Aviz emis în martie 2006.
  • Supliment în mișcare 1.3: Aviz emis în decembrie 2006.
    • USB On-The-Go face posibil ca două dispozitive USB să comunice între ele fără o gazdă USB separată. În practică, unul dintre dispozitive acționează ca o gazdă pentru celălalt.

USB OTG

USB 3.0

USB 3.0 este în faza finală de dezvoltare. Următoarele companii dezvoltă USB 3.0: Microsoft, Texas Instruments, NXP Semiconductors. În specificația USB 3.0, conectorii și cablurile standardului actualizat vor fi compatibile fizic și funcțional cu USB 2.0. Cablul USB 2.0 conține patru linii - o pereche pentru primirea/transmiterea datelor, una pentru alimentare și încă una pentru împământare. Pe lângă acestea, USB 3.0 adaugă cinci linii noi (rezultând un cablu mult mai gros), dar noii pini sunt amplasați paralel cu cei vechi pe un alt rând de pini. Acum puteți determina cu ușurință dacă un cablu aparține uneia sau alteia versiuni a standardului, pur și simplu uitându-vă la conectorul său. Specificația USB 3.0 mărește viteza maximă de transfer la 4,8 Gbps - ceea ce este cu un ordin de mărime mai mare decât cei 480 Mbps pe care îi poate oferi USB 2.0. USB 3.0 se mândrește nu numai cu viteze mai mari de transfer de date, ci și cu un curent crescut de la 500 mA la 900 mA. De acum înainte, utilizatorul nu numai că va putea alimenta un număr mult mai mare de dispozitive de la un hub, dar hardware-ul în sine, care anterior era furnizat cu surse de alimentare separate, va scăpa de ele.


Aici GND este circuitul „caz” pentru alimentarea dispozitivelor periferice, VBus este +5 V, de asemenea, pentru circuitele de alimentare. Datele sunt transmise diferențial prin firele D+ și D− (stările 0 și 1 (în terminologia documentației oficiale diff0 și, respectiv, diff1) sunt determinate de diferența de potențial dintre linii de mai mult de 0,2 V și cu condiția ca pe una din potenţialul liniilor (D− în cazul diff0 şi D+ la diff1) relativ la GND este mai mare de 2,8 V. Metoda de transmisie diferenţială este cea principală, dar nu singura (de exemplu, în timpul iniţializării, dispozitivul informează gazdă despre modul suportat de dispozitiv (Full-Speed ​​​​sau Low-Speed) prin ridicarea uneia dintre liniile de date către V_BUS printr-un rezistor de 1,5 kOhm (D− pentru modul Low-Speed ​​și D+ pentru Full-Speed) ​​, dispozitivele care funcționează în modul Hi-Speed ​​se comportă în această etapă ca și dispozitivele în modul Full-Speed ​​De asemenea, uneori, firele au o înfășurare de fibră pentru a le proteja de deteriorarea fizică.

Conector USB 3.0 tip B

Conector USB 3.0 tip A

Cabluri și conectori USB 3.0

Dezavantajele USB

Deși USB 2.0 are un debit de vârf de 480 Mbps (60 MB/s), în practică nu este posibil să se realizeze nimic apropiat de debitul de vârf. Acest lucru se explică prin întârzierile destul de mari pe magistrala USB între cererea de transfer de date și începerea efectivă a transferului. De exemplu, magistrala FireWire, deși are un debit de vârf mai mic, de 400 Mbps, care este cu 80 Mbps mai puțin decât USB 2.0, permite de fapt un debit mai mare pentru schimbul de date cu hard disk-uri și alte dispozitive de stocare.

USB și FireWire/1394

Protocol de stocare USB, care este o metodă de transmitere a comenzilor

În plus, stocarea USB nu a fost acceptată în sistemele de operare mai vechi (Windows 98 original) și a necesitat instalarea driverului. SBP-2 a fost, de asemenea, susținut în ele. De asemenea, în sistemele de operare mai vechi (Windows 2000), protocolul de stocare USB a fost implementat într-o formă trunchiată, ceea ce nu permitea utilizarea funcției de inscripționare CD/DVD pe o unitate USB conectată SBP-2 nu a avut niciodată astfel de restricții;

Busul USB este strict orientat, astfel încât conectarea a 2 computere sau a 2 dispozitive periferice necesită echipamente suplimentare. Unii producători acceptă conectarea unei imprimante și a unui scaner sau a unei camere și a unei imprimante, dar aceste implementări sunt foarte specifice producătorului și nu sunt standardizate. Autobuzul 1394/FireWire nu este supus acestui dezavantaj (puteți conecta 2 camere video).

Cu toate acestea, din cauza politicilor de licențiere ale Apple, precum și a complexității mult mai mari a hardware-ului, 1394 este mai puțin obișnuit, plăcile de bază de computer mai vechi nu au controlere 1394. În ceea ce privește perifericele, suportul 1394 nu se găsește de obicei în altceva decât în ​​camerele video și carcasele pentru hard disk-uri externe și unități CD/DVD.

Vezi si

  • FireWire
  • TransferJet

Surse

Legături

  • Știri USB (germană)
  • Lista ID-urilor USB (Vânzători, dispozitive și interfețe) (engleză)