You are on page 1of 29

Colegiul Tehnic “Constantin Brâncuşi”

PROIECT PENTRU CERTIFICAREA COMPETENŢELOR PROFESIONALE

„ U.S.B. – Universal Serial Bus ”

COORDONATOR: Prof. Radu Nemeth ELEV: Cheregi Vasile Raul

ORADEA 2007

1

INTRODUCERE

De ce am ales aceata tema? Ei, bine am ales aceasta tema gandindu-ma ca in Secolul Vitezei transferul datelor este tot mai des utilizat si nu ne este indiferent timpul si modul in care se face acesta. U.S.B.-ul faciliteaza un transfer de date mai rapid si este utilizat intr-o gama larga: de la calculatoare, imprimante, scanere pana la telefoane mobile, aparate foto digitale, etc. Ajungand la aceasta concluzie, m-am gandit ca este util si poate chiar necesar o aprofundare in domeniul U.S.B. USB a fost inventat si standardizat de către un grup de producători de calculatoare si echipamente periferice in 1995. Ideea era sa se aducă întreaga gama de porturi seriale si de magistrale seriale la nivelul tehnologiei secolului 21. USB 2.0 a apărut in 2000 si revizuieşte anumite caracteristici ale standardului pentru a mari viteza de transmisie a datelor si a-l adapta la cerinţele sistemelor multimedia moderne.

In continuare vom analiza in detaliu intregile aspecte ale U.S.B.-ului cu avantajele si noile conditii de lucru create prin domeniul acestuia.

2

o tehnologie care asigura protocol robust. UNIVERSAL SERIAL BUS Este adevărat ca la momentul apariţiei USB-ului existau mai multe standarde de comunicare intre computerul gazda si echipamentele periferice. dar ţinta era crearea unei tehnologii care sa combine activitatile magistalelor de viteza redusa si de viteza mare. Tehnologia permite accesul la ambele viteze. configurarea automata a dispozitivelor si un ‘bus’ serial care este mult simplificat si uşor de conectat. un lucru care permite unui singur port pe computer sa fie o legătura pentru o multitudine de mecanisme si dispozitive (pana la 127 de dispozitive in sistemul USB). Toate aceste cerinţe au fost îndeplinite de către USB. Este important sa amintim ca USB nu este un port serial. solid.Putem lega uşor un dispozitiv de altul si sa folosim un singur port ca un punct de legătura pentru multe dispozitive prin simpla folosire a unui hub.B.U. ci un ‘bus’ serial.S. USB a devenit foarte popular in ceea ce priveşte extinderea către PC-uri. Toate acestea ne permit sa privim sistemul USB ca pe o mica reţea de dispozitive ca in figura urmatoare: 3 .

Capacitatea ”plug-and-play” a USB-ului este unul din marile avantaje fata de alte ‘bus’-uri seriale. o configurare automata a sa de către gazda si o detectare automata a decuplării de la sistem. Aceste aspect se refera la posibilitatea USB-ului de a suporta simultan dispozitive de viteza medie (care lucrează in 1.5 Mbps) si dispozitive de viteza mare(12 Mbps si 400Mbps). 4 . O alta caracteristica importanta a USB-ului este flexibilitatea la viteze medii si mari. Aceasta capacitate permite detectarea automata a unui nou dispozitiv care este introdus in sistem. Cuplarea si decuplarea uşoara a dispozitivelor la si din sistem permit mobilitatea pe ‘bus’ si asigurarea sistemului la noile dispozitive fara a fi nevoie sa repornim întregul sistem de fiecare data când un nou dispozitiv este detectat.

Capacitatea dispozitivelor USB de funcţiona in paralel isi gaseste utilizarea in susţinerea atât a metodelor de alocare de banda isocronă si asincronă. oricând o cere dispozitivul fiind disponibila. aşa cum e cazul imprimantelor si scanerelor. Isocron înseamnă dependent de timp (data este transferata intre anumite constrângeri temporale – spre deosebire de transmisiile sincrone in care constrângerile de timp sunt mult mai stricte). SISTEM TIPIC USB 5 . Dispozitivele multimedia video si audio care folosesc transferul in flux de date. adică lăţimea necesară de bandă este garantată. asincron înseamnă ca nu exista nici o garanţie a momentului transmisiei datele vor fi transmise in momentul in care este posibil sa fie transmise. USB este o magistrala robustă: in orice nivel al protocolului exista un mecanism de detectare si corecţie a erorilor ceea ce permite o rată scăzută a acestora. Pe de altă parte. vor folosi metoda isocronă in timp ce generează transfer de tip ‘bulk’(la grămadă). USB permite depistarea dispozitivelor defecte si realizează mecanismul de control al fluxului chiar prin modul in care este construit protocolul.

In acest sens este considerat un viitor înlocuitor al tehnologiei Bluetooth. care este responsabila cu întregul protocol complex (astfel se simplifica proiectarea perifericelor USB). USB este cea mai folosita interfaţa din istoria calculatoarelor.orice mecanism in sistemul USB care este o gazda este un dispozitiv(inclusiv ‘hub-urile’). ‘hub’-ul determină viteza la care operează acesta si pe toata durata comunicării prin ‘bus’ previne trecerea de la viteza mare la viteza mica si vice-versa. Topologia logica a USB-ului are o structura stelara iar toate dispozitivele sunt conectate (logic) direct la gazdă. Când un dispozitiv este conectat la sistem. de exemplu Wireless USB. ’Hub’-ul este conectat intre gazda si dispozitivul USB (datele ‘curg’ in jos de la gazda la dispozitiv). insa ele sunt doar la nivel de standard. Dispozitivul . Majoritatea dispozitivelor 6 .nu exista decât o singura gazda in sistemul USB. UN SISTEM TIPIC USB CONSTA IN : O gazda (host) . Un dispozitiv asigura una sau mai multe funcţii ale USB. oferind viteza de pana la 480Mbps. are rol asemănător ‘hub’-urilor folosite in reţelele de calculatoare. Concatenarea de ‘hub’-uri este transparentă pentru dispozitiv (numărul de ‘hub’-uri prin care trebuie sa treacă datele). Hub-ul. având in momentul de fata o baza instalata de zeci de milioane de calculatoare si se bucura de un sprijin puternic din partea diferitelor segmente ale pieţei. având grija de managementul energiei pentru dispozitivele care sunt alimentate de la ‘bus’ (obţin energie de la bus) si răspund la erorile ‘bus’-ului pe care le si corectează. implementările urmând sa apară in viitorul apropiat. Hub-ul asigura un punct de interconectare care permite mai multor dispozitive sa fie conectate la un singur port USB. Gazda controlează accesul la mediul de transmisie . Un alt rol important al ‘hub’-ului este acela de a coordona atât dispozitivele de viteza mica sau la viteza maxima.Alte tehnologii au început sa apară pe piaţa.nimeni nu poate accesa magistrala de date daca nu a primit aprobarea de la host. Wireless USB se bazează pe succesul USBului prin fir si se focalizează asupra transmisiilor de mare viteza pe distante scurte. care promit performante foarte bune. Responsabilitatea principala a ‘hub’-urilor este aceea de a detecta conectarea sau o deconectarea dispozitivelor.

dar pot fi unele care asigura mai multe funcţii si care se numesc dispozitive complexe(compuse).cele care operează la 1. Vitezele mai mari sunt necesare pentru transferul de informaţii cu unităţile de stocare a datelor: HDD. Un dispozitiv care isi ia energie de la magistrala USB se numeste ‘bus powered’ iar un dispozitiv care isi asigura singur energia este ‘self powered’.cele care operează la 400Mbps(Hi-speed) USB 2. etc.1 .0 . 7 . Aşa cum am mai precizat.5Mbps pentru a funcţiona. camere video USB.cele care operează la 12Mbps(Full-speed) USB 1.0 USB foloseşte mai multe tipuri de conectori: (a) (b) (b) Conector de tip A (conectat la calculator) si conector de tip B (conectat la dispozitivul periferic). Un periferic USB precum mouse-ul sau tastatura are nevoie de numai 1. memory card. Există două tipuri de dispozitive – cele care au alimentare proprie sau cele care sunt alimentate de magistrala USB.5Mbps(Low-speed) USB 1.asigura doar o funcţie. avem de-a face cu trei tipuri de dispozitive : .

NIVELURILE DE COMUNICARE USB Modelul nivelurilor de comunicare USB este conform următoarelor specificaţii: FLUXUL DE COMUNICARE USB Comunicarea logică intre softul client pe gazda si funcţia dispozitivului se face prin ‘conducte’ . Endpoint-ul este sursa sau destinaţia datelor transmise prin canalul USB. 8 . Un pipe este o asociere intre un anumit endpoint al dispozitivului si softul adecvat de pe gazda. Softul client doreşte sa transmită datele intre buffer-ii din gazda si endpoint-urile din dispozitive si astfel se realizează respectiva interfaţa (care este asociata anumitor endpoint-uri). O interfaţa este compusa din punctele finale grupate intr-un set bine determinat.pipe.

Acest lucru este posibil prin trimiterea SE0 (single ended zero .adică liniile D+ si D sunt tinute in starea low) mai mult de 2.Fluxul informaţional pe magistrala poate fi realizat in doua direcţii : OUT (afara) . îl tratează ca pe un semnal RESET. astfel încât dispozitivul nu va răspunde la traficul USB. Celelalte doua cabluri sunt Vbus(+5V) si GND(-5V) care asigură curent dispozitivului ( a se vedea figura de mai jos).sus si invers daca vrem sa transmitem ‘1’. Suspend signaling : gazda poate introduce dispozitivul intr-un modul de suspendare.datele sunt transferate de la dispozitiv către gazda I.5µsec. iar semnalizarea pe bus este pe doua fire (pereche diferenţială). Exista un fir D+ si un fir D-. Biţii sunt transmişi pe magistrala începând cu LSB. NIVELUL FIZIC Semnalizarea pe magistrala Nivelul fizic este o interfaţa fizică pentru cablul USB. astfel încât daca vrem sa transmitem ‘0’ de pe bus vom menţine D+ jos si D. Când dispozitivul recunoaşte asemenea semnătura pe portul superior al magistralei.datele sunt transferate dinspre gazda spre dispozitiv IN (înăuntru) . dispozitivul va fi 9 . Principala sarcina a nivelului fizic este aceea de a transmite si recepţiona 0 si 1 logic drept nivele de tensiune corespunzătoare. Un dispozitiv va începe tranziţia către modul ‘suspend’ oricând va sesiza o stare de inactivitate pe ‘bus’ mai mare de 3ms. Cablul USB este format din 4 fire. Exista câteva tipuri unice de semnalizare pe ‘bus’: Reset signaling : gazda poate reseta dispozitivul.

Fluxul de date care intra in 10 . SIE este responsabil pentru serializarea si deserializarea (convertirea fluxului de date intr-unul paralel) a transmisiilor USB.numim aceasta caracteristică ‘remote wakeup capability’. Datele sunt transmise pe magistrală ca un şir de biţi in serial. In codarea NRZI dacă vrem sa transmitem ‘1’ nu schimbam nivelul semnalului (daca reprezentarea logica in pereche este ‘1’ va rămâne timp de o ora la acest nivel). Unul din efectele codării descrise mai sus este transmiterea unui şir de ‘1’ ce va genera un mod continuu de transmitere (linia transmiterii va fi statica . dacă dorim să transmitem ‘0’ vom inversa valoarea perechii diferenţiale (va exista o inversare de nivel astfel încât daca valoarea curentă este ‘1’ următoarea valoare va fi ‘0’). Un dispozitiv poate sa se „trezească” singur . dar nu pentru mai mult de 10ms de inactivitate pe magistrală. Pentru a preveni o asemenea stare continuă. De fiecare data când gazda vrea sa ‘trezească’ dispozitivul trimite semnalul RESUME pentru cel puţin 20ms. Acest lucru se realizează prin inserarea unui ‘0’ după un şir de sase de ‘1’. Aceasta permite dispozitivului aflat in modul ‘suspended’ sa înceapă transmiterea semnalului K pe ‘bus’ si sa-si reia activitatea proprie. se face o „completare” a biţilor înainte de decodarea NRZI.Serial Interface Engine SIE este parte atât a nivelului fizic al gazdei. Semnalizarea EOP : EOP este transmis ca SE0 pe durata a 2 biti (definit diferit pentru dispozitivele de joasa si de mare viteza). SIE . Semnalul e urmat de semnalizarea J (‘1’ diferenţial pentru dispozitive de viteza maxima si ‘0’ pentru viteze mici)un bit o data. Pe de alta parte.suspendat.nu se va schimba in acea perioadă). Recunoaşterea semnalului pe porturile superioare va scoate dispozitivul din starea de suspendare. Decodorul ignora zeroul pe care-l recunoaşte ca parte a completării biţilor. cat si al dispozitivului. Codarea si decodarea se realizează prin metoda NRZI. Resume signaling : un dispozitiv care in modul ‘suspendat’ isi va relua operaţiunile oricând va recunoaşte un semnal K pe magistrală (‘0’ diferenţial pentru dispozitivele de mare viteza si ‘1’ pentru dispozitivele de mică viteză).

este necesar pentru a se asigura că tot ce este transmis pe „bus” este corect şi corespunde specificaţiilor. aşa cum vom vedea mai târziu. de 11 . SIE este responsabil si de generare CRC pentru datele de iesire si verifica CRC pentru datele de intrare. precum si semnalizările SOP. Gazda iniţiază toate operaţiunile. CRC error (eroare CRC). ERROR HANDING (Situaţii de eroare) – HC se ocupă de erori cum ar fi: Timeout – funcţia dispozitivului nu răspunde comenzilor. O neaşteptată supraîncărcare a datelor. PROTOCOL ENGINE (Motor de protocol) – Se ocupă de interfaţa nivelurilor protocol ale USB-ului. cât şi USB-ul şi are aceeaşi funcţionalitate în fiecare sistem USB. Controlerul gazdă deserveşte atât gazdă. controlează accesul media şi este motorul principal al fluxului protocolului. SIE este responsabil si de operaţiile de codare si decodare. un element în plus hardware. HC – Host Controller (Control gazdă) Gazda este cel mai „deştept” element al sistemului USB şi joacă un rol unic în sistem. HC poate lucra cu oricare altă tranzacţie din restul cadrului). Iată de ce controlerul gazdă. RESET si RESUME pe ‘bus’. Iată câteva din funcţiile HC: FRAME GENERATION (Generarea cadrelor. SIE detectează de asemenea PID-ul (ID-ul pachetului ). EOP.sistem este NRZI si decodat fluxul catre exterior este NRZI si codat. DATA PROCESSING (Procesare date) – HC răspunde cererilor de date către şi dinspre gazdă. SOF conţine numărul curent al cadrului (sau „frame”-ului) care este menţinut de către HC. frame-urilor) – Controlerul este responsabil cu partiţionarea timpului USB-ului în unităţi de timp astfel încât numim „frame” (cadru) fiecare măsură de timp egală cu 1 ms (după transmiterea SOF-ului.

REMOTE WAKEUP – HC este capabil să inducă USB-ului o stare de suspendare (aşteptare. Nivelul Protocol Engine Layer Nivelul mijlociu al modelului nivelurilor de comunicare are un rol important. SISTEMUL USB SW În afară de operaţiunile descrise mai sus. 12 . II. sistemul USB alocă lungimile de bandă şi controlează alimentarea cu energie a „bus”-ului. oprire) şi să detecteze un semnal de „deşteptare” pe bus. Acest nivel este cel care transformă datele între nivelul de aplicaţie (software client pe gazdă şi funcţie dispozitiv) şi protocolul de operaţiuni al USB-ului. Acest nivel este denumit diferit in dispozitivul USB gazda (numit nivel de software de sistem pentru USB). Acest lucru este permis datorită rolurilor diferite pe care cele două componente le joacă în sistem. Nivelul codeaza/decodează datele în funcţie de protocol. si în cazul dispozitivului periferic (numit nivel logic al dispozitivului USB). permiţând astfel accesul dispozitivului la magistrală.

Drept parte a acestei sarcini. Poate fi de tip IN sau de tip OUT (susţine transferul datelor de la gazdă la dispozitiv). Toate dispozitivele USB trebuie să susţină comunicarea prin pipe-ul implicit. Acesta este caracterizat de un anumit tip de transfer. există 4 tipuri de transfer pe USB. USBD-ul deţine pipe-ul implicit (cel corespunzător endpoint-ului 0) – deoarece atunci când un dispozitiv este introdus in sistem. USBDul trebuie să aibă grijă de procesul de enumerare (un proces care este activat în momentul în care dispozitivul este ataşat magistralei. Aşa cum vom vedea mai târziu. Dispozitivul logic USB Dispozitivul USB logic este compus dintr-o colecţie de „puncte finale” independente. Combinaţia dintre adresa dispozitivului USB. dispozitivul este parte integrantă a sistemului USB şi poate răspunde fluxului de pe magistrală). fiind astfel caracterizat de cererea de alocare a lungimii sale de bandă. iar în final este configurat complet. numărul „punctului final” şi direcţia „punctului final” defineşte în mod unic un „endpoint”. Aceasta joacă un rol important în procesul de enumerare şi este singurul canal de comunicare cu dispozitivul la momentul ataşării. fiecare „endpoint” fiind asociat doar cu un tip de transfer. Endpoint-ul număr zero este de fapt 13 . Fiecare punct are o adresă unică (număr) pe un timp stabilit iar dispozitivul logic USB este adresat în mod unic la finalul procesului de enumerare. USBD-ul „se ocupă” de aceste solicitări. singurul mod de a comunica cu acesta este prin acesta rută implicită. Este asociat acestui pipe endpoint-ul zero (iată de ce numărul zero ca endpoint trebuie să fie inclus în dispozitiv şi să fie de tip control). Asta înseamnă că pentru fluxuri bidirecţionale avem nevoie de două „puncte finale” pentru fiecare direcţie în parte.Sistemul USB SW este compus din software gazdă şi două interfeţe de soft adiţionale: DRIVERE USB (USBD): softul client (adică nivelul superior al nivelului de comunicare) solicită date de la USBD sub forma IRPs (I/O Request packets – pachete de solicitări – „in şi out”) care presupune solicitarea de transmitere/primire a datelor printr-o filieră anume. Un endpoint este unidirecţional (cu excepţia numărului zero). Un alt rol important al USBD-ului este acela de a oferi softului client o descriere generală a dispozitivului cu care softului este pe cale să interacţioneze. analizează diversele configuraţii ale dispozitivului şi oferă aceste „cunoştinţe” softului client.

pot susţine până la maxim 15 „puncte finale” de tip IN şi 15 de tip OUT. III NIVELUL DE APLICAŢIE Acesta apare ca soft client în gazdă şi ca funcţie în dispozitiv.format din două endpoint-uri (unul IN şi altul OUT) care împart insa acelaşi număr şi referirea la ele se face ca la unul singur. Dispozitivele cu viteză mică pot susţine două endpoint-uri adiţionale (în afara celui cu număr zero) care pot fi de tip control sau de tip întrerupere. Dispozitivele cu viteză mare. pe de altă parte. Funcţia din dispozitiv este compusă din mai multe interfeţe şi controlează funcţionarea dispozitivului. Punctele adiţionale pot fi folosite doar după configurarea completă a dispozitivului. Softul client orientează interfaţa nimerită prin transferul de date din bufferii proprii către endpoint-urile asociate interfeţei corespunzătoare. Softul client lucrează cu o funcţie specifică a dispozitivului independent de alte funcţii ale dispozitivului din sistem. 14 .

PROTOCOLUL USB Gazda USB controlează majoritatea complexităţii protocolului USB. din 3 faze: Token Phase – gazda iniţializează simbolurile indicând tipul viitoarei tranzacţii. Fluxul de date poate fi direcţionat de la gazdă la dispozitiv şi invers. Fiecare tranzacţie este compusă. de obicei. Handshake phase: (opţional) – pachetul „handshake” este transmis. Direcţia datelor coincide cu direcţia indicată de simbolul transmis anterior. 15 . ceea ce duce la costuri reduse şi o structura simpla pentru echipamentele periferice. Transferurile USB se fac prin pachete. De fiecare dată când gazda vrea să primească date de la dispozitiv emite un simbol (un tip de pachet informaţional pe care îl vom explica mai târziu) – semnal adresat unui dispozitiv anume. USB-ul foloseşte un protocol de tip interogare – „polling”. indicând succesul sau eşecul tranzacţiei. Data phase: datele sunt transmise în pachete.

Fiecare pachet transmis pe „bus” include biţi de control şi protecţie CRC. Din momentul în care gazda termină de transmis datele către dispozitiv va emite un nou semnal către următorul dispozitiv. video). scanere. Există 4 tipuri de transfer USB: Transfer BULK (la grămadă): transferul BULK este o cantitate mare de date şi este folosit de dispozitive precum imprimante. gazda emite semnalul către dispozitivul următor. joystick-ul – care trebuie să răspundă la notificări. Dispozitivul va răspunde printr-un pachet „handshake” (dacă faza handshake este inclusă). Dacă. Lăţimea de bandă alocată în fiecare tranzacţie a transferului variază în funcţie de resursele „bus”-ului la momentul respectiv. Transferurile BULK sunt sigure – atenţia la apariţia erorilor e foarte mare. de vreme ce există o toleranţă ridicată faţă de erori. caracteristici şi coordonate apărute „din scurt”. va transmite semnalul potrivit şi datele care-i urmează. regulile „time-out” (pentru prevenirea blocării sistemului). Transfer ISOCHRONOUS (sincron): acest transfer (de care am mai vorbit) este folosit pentru dispozitive multimedia (audio. Când vorbim despre protocolul USB nu-i putem trece cu vederea robusteţea. pe de altă parte. se transmit după primirea semnalului iar gazda nu răspunde cu pachetul „handshake” (dacă faza de handshake este inclusă în transfer). Protocolul include mecanismul de tip handshake. Transfer INTERRUPT: acest tip de transfer este cu latenţă limitată şi e folosit pentru dispozitive precum mouse-ul. mecanisme de control şi o rată a erorilor foarte joasă (<10 – 10). O caracteristică importantă a transferului este că lăţimea de bandă este garantată – banda necesară este rezervată pentru dispozitivele care folosesc acest tip de transfer. 16 . Un dispozitiv care lucrează cu acest tip de transfer defineşte intervalul de timp de care are nevoie pentru a trimite sau primi informaţia (element caracteristic configuraţiei sale). Aici se pune mai puţin accent pe succesul transferului (dacă toate datele ajung sau nu la timp). etc. Dacă dispozitivul nu are nimic de transmis.Dacă sunt date de transmis. gazda doreşte să trimită data către dispozitiv.

iar ceilalţi 4 pentru control (complementari primilor 4 biţi) şi depistarea erorilor. IN. dar nu trebuie să uităm de existenţa sa. Deoarece sunt multe tipuri de pachete trebuie să indicăm începutul pachetului. Următoarea descriere a pachetelor va ignora acest câmp (pentru simplificare). Configurarea se realizează în timpul procesului de enumerare dar poate fi făcută. Când un dispozitiv nou este ataşat la sistem gazda are nevoie de date pentru a-l configura – totul prin transferul de tip CONTROL. SOF şi SETUP: o OUT – indică faptul că datele următoare vor fi transmise de la gazdă la dispozitive. de asemenea. Câmpul PID este compus din 8 biţi după cum se va demonstra în diagrama următoare. Apare pe „bus” în aşteptare urmat de „KJKJKJKK” (codare în NRZI).- Transfer CONTROL: este folosit pentru configurarea unui dispozitiv. 17 . în timp ce dispozitivele de mare viteză suportă toate cele 4 tipuri de transfer descrise mai sus. Pot fi incluse şi mesaje speciale realizate de către vânzător. PID: câmpul de identificarea pachetului – conţine datele de identitate ale pachetului. în orice moment al procesului de comunicare. Câmpul SYNC (sincronizare) permite echipamentelor periferice să-şi sincronizeze ceasul intern la datele de intrare. o IN – datele vor fi transmise de la dispozitiv la gazdă. să vedem care sunt câmpurile din pachete: Câmpul SYNC: apare la începutul fiecărui pachet. Primii 4 biţi se folosesc pentru a notifica identitatea pachetului. Dispozitivele de viteză mică suportă transferul de tip CONTROL şi INTERRUPT. Tipurile PID sunt împărţite în patru mari grupe: SIMBOLURI (semnale) – care pot fi OUT. Înainte de a învăţa diferitele tipuri de pachete folosite de protocolul USB.

Poate fi fie ACK. Fiecare funcţie din sistem are o adresă unică şi pot exista întrun sistem până la 127 adrese diferite (adresa zero este rezervată şi folosită ca adresă iniţială a unei funcţii. din cauza unei succesul sau eşecul transferului. fie DATA 1. PID diferit fiind folosit pentru ghidarea sincronizării.o o SOF – început frame (secvenţă) SETUP – pachetul va fi transmis de la gazdă la dispozitiv şi va conţine comenzi de setare (folosite la configurare) - DATE: PID-ul „data” apare în pachetele de date. de aceea nu este permisă folosirea adresei zero ca adresă permanentă). probleme de suprasarcină) sau transmiţătorul nu poate trimite datele (probleme de ADDRESS FIELD (câmpul adresă) Este împărţit în două câmpuri: Câmpul ADDRESS (ADDR): acesta conţine adresa funcţiei (de obicei a dispozitivului) atribuită la procesul de enumerare. Poate apărea fie sub forma DATA 0. HANDSHAKE – acest PID e folosit în pachetele handshake pentru a semnala o o flux) o STALL – endpoint specific care este izolat sau comanda specifică SETUP nu poate fi menţinută. fie NAK sau STALL. ACK – receptorul primeşte pachetul fără erori NAK – receptorul nu poate primi datele (de exemplu. 18 .

Să vedem acum care sunt tipurile de pachete: PACHET „TOKEN” – fiecare tranzacţie (operaţie) începe prin emiterea unui semnal de către gazdă. Fiecare punct într-o funcţie specifică este unic şi se identifică printr-un număr.câmpul datelor conţine date transmise în operaţiuni. DATA FIELD . Câmpul CRC într-un pachet „token” este compus din 5 biţi. SETUP. La dispozitivele cu viteză redusă pot fi două puncte adiţionale (în afară de zero). Câmpul este folosit în simbolurile OUT. în timp ce un câmp de date este compus din 16 biţi. Câmpul este conţinut doar de simbolul SOF care indică începutul unei secvenţe. 19 .Câmpul „ENDPOINT” (ENDP): câmpul respectiv conţine numărul referinţelor la punctele de final. Acest câmp poate conţine până la 10223 bytes. Câmpurile ADDR şi ENDP definesc în mod unic endpoint-ul care va primi datele în operaţiunile SETUP sau AUT şi specifică şi endpoint-ul care este pe cale să transmită datele în operaţiunile de tip IN. FRAME NUMBER FIELD – numărul segmentelor ce constituie câmpul sunt compuse din 11 biţi care indică secvenţa curentă. IN. CRC FIELD – CRC (verificare ciclică redundantă) este folosit pentru protejarea tuturor câmpurilor dintr-un pachet „token” (cu excepţia câmpului PID) şi protejează datele din pachetele de date.

STATUS. - HANDSHAKE PACKETS – sunt compuse doar din PID care indică rezultatele etapei anterioare. Rolul etapei SETUP este să indice dispozitivul care va seta comenzile pe care gazda le va transmite. - STALL – care indică unele probleme de transfer (scurt circuit între puncte sau nemenţinerea comenzii de control) – nu este permisă a fi folosită de către gazde. - NAK – folosit în controlul fluxului informaţional poate fi transmis în faza „handshake” pentru transferul de tip OUT şi IN. fiecare din acestea fiind compusă la rândul său din 3 faze (TOKEN. poate fi folosit în faza „handshake” a transferurilor de tip SETUP sau OUT (trimise de dispozitiv) sau în transferuri de tip IN (trimise de către gazdă). Există mai multe feluri de comenzi SETUP cum ar fi: 20 . ACK care arată că pachetul a fost trimis fără CRC sau erori. câmpul de date care conţine datele ce trebuie transmise şi CRC 16 pentru protejarea câmpului de date. Pachetul conţine câmpul secvenţelor sincronic de tip OUT. plus sau minus 0. DATA (opţional). Tipuri de transfer USB: CONTROL TRANSFER – un transfer de control este compus din 3 sau 2 faze: SETUP.0005 ms. - DATA PACKET – sunt compuse din PID (ceea ce indică faptul că pachetul este un pachet de date).- START OF FRAME PACKET – gazda emite un pachet SOF la fiecare milisecundă. HANDSHAKE). DATA.

Dacă direcţia etapei status este IN. interfeţe. Etapa DATA (dacă este inclusă) conţine fluxul de date . stabileşte o adresă permanentă pentru o funcţie. Această etapă este compusă din una sau mai multe operaţiuni IN sau AUT (toate operaţiunile din această etapă trebuie să fie în aceeaşi direcţie – toate IN sau toate OUT).o o SET_ADDRESS. Etapa status raportează gazdei rezultatele etapelor anterioare: SETUP şi DATA. Fiecare operaţiune în această etapă începe cu semnalul IN sau AUT emis de gazdă după care datele sunt transmise (în direcţia potrivită) ţi operaţiunea se încheie cu un pachet HANDSHAKE. de pe bus etc. 21 . gazda doreşte să primească decodorul dispozitivului care conţine detalii legate de acesta: câte configuraţii. La începutul etapei de setare gazda emite un semnal SETUP urmat de un pachet de comenzi SETUP la care dispozitivul trebuie să răspundă cu un pachet ACK. iar dacă e OUT raportul e realizat în faza HANDSHAKE. atunci raportul este realizat în faza DATA a operaţiunii. dacă este cu o o o GET_CONFIGURATION_DESCRIPTOR: gazda vrea să afle o configurare specifică a unui dispozitiv. SET_CONFIGURATION: gazda setează o configuraţie specifică unui dispozitiv. GET_CONFIGURATION: gazda detectează care configuraţie este activă la un moment dat într-un dispozitiv. O caracteristică importantă a acestei etape este că direcţia fluxului de date în cadrul acesteia este inversă celei din etapa DATA (dacă nu a existat o etapă DATA direcţia va fi IN). Raportul este întotdeauna de la dispozitiv la gazdă. direcţia în cadrul etapei de setare (de la gazdă la dispozitiv sau invers). GET_DEVICE_DESCRIPTOR: auto-alimentare.

în care gazda „vrea” să primească date de la dispozitiv. Dacă nu au fost depistate erori în timpul recepţionării datelor. nu este trimis nici un pachet de tip handshake.Transfer IN: . ultima fază este „handshake”. Aici.Transfer OUT: . în care un raport legat de succesul operaţiunii este transmis. Când acesta primeşte semnalul trimite datele ca răspuns la semnal dat gazda răspunde cu un pachet ACK dacă nu au fost erori şi nu trimite nici un „hanshake” în cazul 22 . trimite un semnal IN către dispozitiv. Fiecare operaţiune începe cu un semnal transmis de gazdă şi care indică direcţia transferului de date în faza următoare. datele sunt transmise în funcţie de direcţia indicată de semnal.Exemplu: BULK TRANSFER: acest tip de transfer se compune din una sau mai multe operaţiuni. .în care gazda „solicită” date de la dispozitiv – direcţia fluxului informaţional este de la dispozitiv către gazdă. Există două tipuri de transferuri BULK: . Dacă au fost depistate erori.

Dacă gazda a primit informaţiile fără erori. gazda „vrea” să trimită date către dispozitiv. NAK care relevă că datele au fost primite fără erori dar nu au putut fi acceptate de către dispozitiv din cauza unor probleme de ordin temporar (overflow.depistării unei erori. totuşi. INTERRUPT TRANSFER – asemănător transferului BULK. dispozitivul nu poate accepta datele din cauza condiţiilor eronate de funcţionare. Dacă e vreo problemă cu sistemul USB gazda o va detecta şi va preveni blocarea sistemului. iar gazda nu ar mai trebui să reia transmisia. gazda lansează un pachet IN dar nu există întreruperi şi endpoint-ul n-are informaţii de transmis. underflow) iar gazda ar trebui să reia transmisia. funcţia va returna un pachet NAK. dispozitivul răspunde cu un pachet „handshake”. iar în etapa următoare trimite datele pe care vrea să le transmită. Dacă este găsit. În cazul în care dispozitivul nu poate trimite datele solicitate (subdimensionare – FIFO este gol sau orice altă problemă). Transferurile BULK sunt viabile datorită mecanismelor de handshake şi timeout (care au fost menţionate anterior). Ca şi în transferurile BULK. Dacă. Dacă gazda vrea să ştie ce întrerupere este în aşteptare în dispozitiv. În condiţii de eroare în funcţie va fi transmis un pachet STALL. După primirea datelor. Situaţia duce la o tranzacţie în două faze. iniţiază şi transmite un semnal OUT. pe de altă parte. Dacă este depistată o eroare. 23 . dispozitivul nu va răspunde cu pachetul de date şi cu NAK sau STALL care indică „indispoziţia” sa de a răspunde cerinţelor gazdei. nici un handshake nu va fi transmis. iniţiază un semnal IN către endpoint-ul adecvat. datele pot fi trimise de la dispozitiv la gazdă şi invers. Dacă. Sunt trei tipuri de răspunsuri „handshake” ale dispozitivului: ACK indică faptul că datele au fost trimise fără erori şi au fost acceptate de către dispozitiv. STALL. va lansa un pachet ACK în faza handshake. funcţia va trimite detalii legate de întrerupere cum ar fi un pachet de date în etapa următoare.

Exemplu: ISOCHRONOUS TRANSFER - compus din una sau două faze operaţionale. Exemplu: 24 . urmând semnalului ce va fi transmis cu privire la pachetul de date. detectează erorile iar dacă acestea nu există va răspunde cu ACK. Gazda lansează fie un semnal IN pentru a primi date de la dispozitiv. Aşa cum am menţionat anterior. NAK sau STALL (ca în cazul transferurilor BULK). nu există faza handshake în transferurile sincron.Gazda va emite un semnal OUT dacă doreşte să transmită date dispozitivului. Dispozitivul. fie OUT pentru a transmite date. din momentul primirii datelor. Dacă datele sunt corupte nu va fi transmis nici un semnal de handshake. În faza următoare datele sunt transmise în sensul cerut de semnalul gazdei emis mai înainte.

si promite ca reprezintă o arhitectura scalabila care sa suporte in scurt timp viteze de 1Gbps si mai mari in continuare. cu un cost scăzut. 25 . si viteza acceptabila. porturile serial/paralel nu aveau caracteristica de plug-and-play extinderea porturilor: adăugarea de noi dispozitive periferice a fost pana nu de mult problematica. iar pentru noi dispozitive nu exista o interfaţa alternativa bidirecţională. Motivaţia tehnologiei USB a pornit de la următoarele consideraţii: uşurinţa de folosire: lipsa flexibilităţii in reconfigurarea PC-urilor a fost considerata punctul slab al acestora. dispozitivelor. In acelaşi timp porturile erau optimizate pentru câteva tipuri de periferice. Deşi s-au făcut eforturi pentru uşurarea configurării.Wireless USB Tehnologia Wireless USB permite viteze de 48Mbps la distante de pana la 10m. datorita lipsei fizice a porturilor.

Topologia este ilustrata mai jos: Dispozitiv Wireless USB Dispozitiv Wireless USB Wireless USB Host Dispozitiv Wireless USB Dispozitiv Wireless USB Dispozitiv Wireless USB Dispozitiv Wireless USB In orice sistem USB exista un singur host. Tehnologia radio UWB (Ultra-WideBand) are caracteristici similare modelului USB clasic. pe măsura ce tehnologia avansează si dispozitivele wireless devin mai importante. Nivelul fizic al WUSB este descris de Multiband OFDM Alliance (MBOA). Conexiunile WUSB se bazează pe modelul ‘hub and spoke’: host-ul USB este un hub in centrul reţelei. de aceea ea a stat la baza implementării WUSB. Pentru dispozitivele WUSB. este obligatoriu suportul pentru transmisia si recepţia 26 . deoarece dispozitivul hub asigura extinderea porturilor. este esenţial sa se dezvolte o soluţie de viteza mare si eficienta ca implementare. iar dispozitivele (in număr de maxim 127).Succesul introducerii USB-ului a fost rapid. specificaţia UWB PHY. In prezent. astfel in 2005 analiştii au estimat ca exista peste 500 de milioane de produse folosind interfata USB. Wireless USB nu are porturi fizice definite.

Totuşi. In acesta hostul indica momentul de timp in care dispozitivul trebuie sa asculte pentru u n pachet de date OUT sau sa transmită pachetul de date IN (de tip date sau handshake) ca in figura de mai jos: Comparatie intre WUSB 27 si USB . WUSB foloseşte UWB pentru transmisia datelor Protocolul WUSB este bazat pe TDMA. data si handshake. 400 si 480 Mb/s este opţional. 320. si 200 Mb/s este obligatoriu. fiecare transfer consta in trei pachete: token. Suportul pentru restul vitezelor. Ca si in USB. Hostul este cel care iniţiaza transferurile de date. pentru a creste eficienta nivelului fizic prin eliminarea tranziţiilor costisitoare intre transmisie si recepţie. hostul combina informaţia din tokenuri multiple intr-un singur pachet. Toate implementările WUSB trebuie sa suporte canalele de transmisie PHY pe canalele 9 – 15 (grupul 1).7. 106.datelor la viteze de 53. of 80.3. 160. in mod similar cu protocolul USB clasic.

Controlul traficului de date asigura folosirea bufferilor hardware in mod eficient Securitatea este suportata de toate dispozitivele WUSB. deconectare si ataşare a dispozitivelor precum si autoconfigurarea resurselor de sistem protocolul de recepţie a datelor folosind pauze pentru pachetele pierdute si eronate. Comunicarea foloseşte chei autentificate doar de host si de dispozitiv. bazat pe arhitectura de succes USB care urmează a se impune in viitor datorita caracteristicilor sale si a suportului oferit de producători. In concluzie WUSB este un standard performant. 28 . făcând concurenta soluţiilor Bluetooth si chiar celor 802.WUSB este un protocol dine definit si performant. lucru datorat câtorva factori: nivelul fizic este proiectat sa fie fiabil cu mecanisme de detecţie si corecţie a erorilor sistemul de detecţie.11x pe distante scurte . Mecanismul implementat este bazat pe criptarea AES-128/CCM care asigura atat testarea integritatii datelor cat si criptarea acestora.

..wikipedia............org www...... Nivelul Protocol Enigine Layer..............unitbv...................................................2 USB-Universal Serial Bus........... 8........... 10.ro 29 ........................... Nivelul fizic............ 7.................21 Wireless USB...............gentoo.....16 Address field(campul adresa)........................................... Introducere............ 11..CUPRINS 1.... Nivelul de aplicatie......................3 Nivelurile de comunicare USB................................................................................... 2............................................................. 3...............15 Protocolul USB....27 Bibliografia: www...................org www....................................................................................8 Fluxul de comunicare USB...................19 Tipuri de transfer USB... 4........... 6. 9............................9 II............................9 I................. 5............13 III...................