Sunteți pe pagina 1din 6

25.03.

2015 Standardul USB

Laborator 6.  Retele de Calculatoare (aprilie 2009)

Interfaţa USB
Scopul acestei lucrari este prezentarea tehnologiei USB. Aceasta tehnologie a fost dezvoltata pentru realizarea comunicarii intre PC si diverse echipamente
periferice.

Cuprins:

1)      Descrierea teoretica a interfetei USB

2)      Vizualizarea parametrilor pentru configuratia USB instalata pe calculator

3)      Analiza configuratiei USB instalata pe calculator cu analizorul de pachete

1)      Descrierea teoretica a interfetei USB

Interfaţa USB (Universal Serial Bus) reprezintă o tehnologie elaborată pentru realizarea comunicării între PC­uri şi diverse echipamente periferice la debite de lucru
corespunzătoare. Reprezintă cea mai puternică alternativă la interfaţa serială RS232.

Această interfaţă a fost elaborată de un grup de companii printre care Microsoft, Intel, IBM, etc. şi a devenit un standard “de facto”. Debitul maxim de lucru este de
12 Mbps (full­speed) pentru versiunea 1.1 a standardului (cu posibilitatea funcţionării şi la 1,5 Mbps­ low­speed). Versiunea 2.0 a standardului USB prevede şi un
debit de 480 Mbps (în modul de lucru high­speed). In anul 2008 este preconizat sa se lanseze versiunea USB 3.0 care precizeaza  un debit binar de  4.8 Gbit/s
(600 MB/s) – SUPER­SPEED. Debitul binar ridicat este posibil prin introducerea unei legaturi pe fibra optica. Echipamente care sa respecte aceasta versiune de
standard se preconizeaza sa apara in 2009 sau 2010.

USB suporta mecanismul plug and play cu incarcarea dinamica a driverelor. Incarcarea driverelor se face folosind combinatia PID/VID (Product ID/Vendor ID).
VID  este oferit contra cost (de obicei) de catre USB Implementers Forum.

 Topologia utilizată este de tip stea (star) iar pe magistrală pot fi conectate la un moment dat un număr maxim de 127 echipamente periferice la un PC. Pentru stratul
legături de date se foloseşte un protocol cu transmiterea unui jeton (token) asemănător tehnologiilor token ring şi FDDI. Printre echipamentele periferice care pot fi
conectate se numără: tastaturi, mouse, joystick, imprimante, monitoare, scannere, telefoane, microfoane, boxe, camere video sau alte echipamente multimedia. Există
două tipuri de echipamente şi anume: huburi USB (hubs) şi periferice USB (numite uneori şi funcţiuni USB). Majoritatea calculatoarelor actuale au încorporat un
hub USB ceea ce permite interconectarea diverselor periferice fără investiţii suplimentare. În continuare vor fi prezentate specificaţiile pentru stratul fizic apoi cele
pentru stratul legături de date iar în încheiere vor fi prezentate familii de circuite integrate care au facilităţi USB.

Specificaţiile pentru stratul fizic

Debitul de lucru este de 12 Mbps dar există posibilitatea utilizării şi a unui debit scăzut de 1,5 Mbps pentru anumite periferice (tastatură, mouse).

Conectorul utilizat are 4 pini avand urmatoarele semnale disponibile :

        Vbus reprezintă tensiunea de alimentare de +5V

        GND reprezintă masa de semnal

        D+ şi D­ reprezintă pinii pentru transmisia diferenţială a datelor.

In conector semnalele sunt conectate conform datelor din tabelul 1.

Numar pin Culoare fir Functia  


1 Rosu Vbus
2 Alb D­  
3 Verde D+
 
4 Negru GND
Tabelul 1  Corespondenta pinilor in conectorul USB

Au fost definiti doua tipuri de conectori :

        conector de tip A – care se gaseste in calculator

        conector de tip B – care se gaseste in echipamentul periferic

                    

Fig. 1 Conector tip A si conector tip B

Ulterior au mai fost introdusi conectori numiti “mini conector USB” pentru echipamentele in miniatura(camere foto, telefoane mobile,etc.).

http://172.27.208.164/labretele/lab6/l6.htm 1/6
25.03.2015 Standardul USB

                               Fig. 2 Modele de conectori pentru USB

Un echipament USB poate fi alimentat chiar din conector (se acceptă un curent maxim consumat în anumite condiţii de 500 mA).

Lungimea maximă a traseului de cablu este de 5 metri. Se utilizează transmisie NRZI.

                    Fig. 3 Cablu USB

Topologia pentru stratul fizic este de tip stea pe maxim 5 niveluri(USB 1.1) si 7 niveluri (USB 2.0), plecând de la hubul rădăcină (root hub) conectat la controlerul
din PC (Host controller) care supraveghează funcţionarea tuturor celorlalte echipamente. Această arhitectură este prezentată în figura următoare:

                                Fig. 4. Arhitectura USB

Există 4 moduri posibile de transfer al datelor între software client şi un punct terminal (endpoint) al unui echipamentul USB pentru a asigura suportul mai multor
tipuri de echipamente cu cerinţe de bandă diferite. Acestea sunt:

        Izocron (isochronous)

        Intermitent (interrupt)

        Control (control)

        Volum (bulk)

Modul izocron se caracterizează printr­o rată constantă de transfer între host şi echipamentul USB. Nu se garantează livrarea cadrelor iar tranzacţiile eşuate nu sunt
reluate. Acest serviciu este utilizat pentru sistemele audio sau pentru videoconferinţe.

Modul intermitent este utilizat pentru echipamente prin care utilizatorul introduce date (tastaturi, mouse, joystick). Cantitatea de informaţii este redusă dar timpul de
răspuns trebuie să fie scăzut.

Modul control este utilizat pentru a asigura un canal de control între echipamentele USB şi controlerul din calculator. Se transferă informaţii de configurare, control

http://172.27.208.164/labretele/lab6/l6.htm 2/6
25.03.2015 Standardul USB
şi stare. Fiecare transfer de acest tip este iniţiat de o fază de configurare (setup) urmată de zero sau mai multe faze de transmisie date şi apoi de o fază de transmisie a
informaţiilor de stare. Este importantă procesarea transferurilor într­o ordine FIFO (First In First Out).

Modul volum permite transferul garantat al informaţiei cu tolerarea unor întârzieri. Se utilizează pentru imprimante, scannere, care necesită transferul unor cantităţi
mari de informaţie dar suportă anumite întârzieri.

Arhitectura hardware/software a unui sistem USB este prezentată în figura următoare.

                     Fig. 5. Arhitectura Hardware/software a unui sistem USB

Componentele care intervin sunt următoarele:

        USBD (USB Driver)

        Client driver software

        Host Controller Driver (HCD)

        Host Controller

        USB Device

Specificaţiile pentru stratul Legături de Date

Transmisia pe magistrală se face începând cu LSbit, până la Msbit iar interpretarea câmpurilor este little­endian. Există trei tipuri de cadre şi anume:

token
data
handshake

Fiecare cadru începe cu o secvenţă SYNC ce asigură numărul maxim de tranziţii în linie pt sincronizarea la recepţie. Pentru full­speed şi low­speed se transmit 8 biţi
iar pentru high­speed secvenţa SYNC este pe 32 de biţi. Ultimii doi biţi din secvenţa SYNC marchează începutul propriu­zis al cadrului şi se numesc SOP (Start­of­
Packet).

Primul câmp din cadru este PID ce identifică tipul cadrului. Acest câmp este pe 8 biţi din care 4 reprezintă tipul cadrului iar ceilalţi 4 reprezintă suma de control
pentru acest câmp (reprezintă complementul faţă de 1 al primilor 4 biţi).

Grup Valoare PID Tip pachet


Token 0001 OUT Token
1001 IN Token
0101 SOF Token
1101 SETUP Token
Data 0011 DATA0
1011 DATA1
0111 DATA2
1111 MDATA
Handshake 0010 ACK Handshake
1010 NAK Handshake
1110 STALL Handshake
0110 NYET (No Response Yet)
Special 1100 PREamble
1100 ERR
1000 Split
0100 Ping

Tabelul 2 Valori posibile pentru campul PID

Ultimii doi biţi identifică tipul grupului din care face parte cadrul respectiv (token, data, handshake, special).

Următorul câmp este câmpul de adresă (ADDR) pe 7 biţi, astfel codificându­se maxim 128 adrese diferite, pentru maxim 128 de echipamente diferite.

Următorul câmp este câmpul punct final (endpoint) pe 4 biţi ce identifică în cadrul unui echipament, punctul final. Valoarea implicită este 0.

Următorul câmp este câmpul număr cadru (Frame Number) este un câmp pe 11 biţi ce se transmite la începutul fiecărui (micro) cadru şi este incrementat de către
controller.

http://172.27.208.164/labretele/lab6/l6.htm 3/6
25.03.2015 Standardul USB
Următorul câmp este câmpul de date care are o lungime variabilă între 0 şi 1024 octeţi.

Următorul câmp este câmpul CRC (Cyclic Redundancy Check) ce protejează toate câmpurile din cadru de după PID. Prin acest câmp se detectează toate erorile de 1
sau 2 biţi. Pentru cadrele token se utilizează un CRC pe 5 biţi cu polinomul generator G(X) = X16+ X15+ X2+ 1 iar pentru cadrele de date se utilizează un CRC pe
16 biţi cu polinomul generator : G(X) = X16+ X15+ X2+ 1.

La sfârşitul unui cadru se află câmpul EOP (End of Packet).

Structura unui cadru token este următoarea:

SYNC PID ADDR ENDP CRC5 EOP

Structura unui cadru de date este urmatoarea :

SYNC PID DATA CRC16 EOP

Structura unui cadru handshake este urmatoarea :

SYNC PID EOP

Un tip special de cadre sunt SOF (Start of Frame) care se transmit de către host o data la 1 ms pentru modul de lucru full­speed (informaţia transmisă in acest
interval poartă numele de cadru) şi o dată la 125 microsec pentru modul de lucru high­speed (informaţia transmisă in acest interval poartă numele de microcadru).
Aceste cadre SOF sunt urmate de cadre de date, după cum se va prezenta într­o figură următoare.

Structura unui cadru SOF este următoarea:

SYNC PID FRAME NUMBER CRC5 EOP

Succesiunea transferului de date pentru un cadru full­speed este prezentată în figura următoare:

Figura 6. Succesiunea cadrelor pentru modul de lucru full­speed.

Se pot transfera într­un interval de 1 ms mai multe cadre de date cu mod de transfer Izocron, si un număr corespunzător de cadre Interrupt, Control şi Bulk.

2) Vizualizarea parametrilor pentru configuratia USB instalata pe calculator
 
Pentru a vizualiza parametrii corespunzatori configuratiei USB se poate folosi utilitarul USBVIEW livrat de Microsoft.

Fereastra principala a utilitarului este urmatoarea :

In partea stanga a ecranului e afisata lista de controlere host (host controllers), precizand circuitul integrat cu care sunt obtinute functiile de controller, fiecare cu
hubul radacina (root hub) corespunzator si cu numarul de porturi disponibile. In dreptul porturilor care nu sunt conectate apare mesajul “NoDeviceConnected”
iar in dreptul porturilor care au conectat un periferic USB apare mesajul “DeviceConnected” si numele perifericului respectiv.
In partea dreapta sunt afisate informatiile corespunzatoare perifericului respectiv, astfel:
Device bus speed (valori posibile Low, Full, High) precizeaza debitul binary la care lucreaza perifericul (1,5 Mbps, 12 Mbps sau 480 Mbps).
Device address reprezinta adresa perifericului alocata in mod dinamic de catre controller.
Open pipes: reprezinta numarul de puncte terminale (endpoints) in cadrul echipamentului ce pot fi utilizate. Numarul maxim este de 16 si este stabilit de
producatorul echipamentului.
Urmeaza o descriere a fiecarui punct terminal, cu adresa si modul de transfer (Interrupt, Isochronous, Control, Bulk).
 
3) Analiza configuratiei USB instalata pe calculator cu analizorul de pachete

Pentru captarea cadrelor USB se poate folosi aplicatia USBlyzer. USBlyzer este un analizor de protocol pentru sistemul de operare Windows care ofera un mod usor
de a analiza si monitoriza activitatea  Host Controlleror, Hub­urilor si echipamentelor USB. Fereastra principala poate fi observata in figura urmatoare:

http://172.27.208.164/labretele/lab6/l6.htm 4/6
25.03.2015 Standardul USB
 

 
In partea stanga e afisata lista de controlere host (host controllers), precizand circuitul integrat cu care sunt obtinute functiile de controller, fiecare cu hubul radacina
(root hub) corespunzator si cu numarul de porturi disponibile. In fereastra USB Properties sunt afisate informatii despre fiecare componenta selectata din fereastra de
mai sus.
Exemplul de mai jos este pentru un Mouse conectat pe portul numarul 1 din primul Root Hub.
 

http://172.27.208.164/labretele/lab6/l6.htm 5/6
25.03.2015 Standardul USB

Informatiile din figura de mai jos ofera date despre un ROOT HUB din configuratia USB disponibila.

In partea dreapta vor fi afisate mesajele transferate intre USB controler si echipamentul USB.
 
 

 
 
Teme:
1.  Folosind aplicatia  usbview.exe notati informatiile despre configuratia USB de pe calculatorul pe care lucrati.
2.  Care pot fi motivele pentru care un periferic implementeaza mai multe moduri de transfer al datelor?
3.  Folosind aplicatia USBlyzer revedeti informatiile despre configuratia USB si comparati cu informatiile obtinute la punctul 1.
4.  Examinati schimbul de mesaje intre USB controler si perifericele USB, folosind USBlyzer.
 

http://172.27.208.164/labretele/lab6/l6.htm 6/6