Magistrala USB reprezint solu!ia oferit comunica!iilor seriale de noua genera!ie de calculatoare PC. Este o interfa! serial rapid, bidirec!ional, ieftin "i u"or de folosit. USB a fost creat ca un standard industrial, o extensie a arhitecturii PC orientat spre armonizarea cu standardele de comunica!ie din telefonie, ceea ce este numit CTI (Computer Telephony Integration). Acest aspect este considerat fundamental din punct de vedere al aplica!iilor genera!iei urmtoare.
Avantajele acestei solu!ii fa! de btrna interfa! serial RS-232 transformat prin mbunt!iri n EIA/TIA-232-E sunt:
rata de transfer - poate atinge 12 Mbps fa! de 115 000 bps; conecteaz pna la 127 de dispozitive la PC, (ceea ce nseamn c opereaz ca o magistral) fa! de numai 2 dispozitive; u"or de utilizat de ctre utilizatorul final (end user) - adugarea/eliminarea de dispozitive n/din sistem este foarte comod; are un protocol flexibil; este o solu!ie ieftin# de interconectare.
Specifica!iile acestei magistrale descriu atributele de magistral, definesc protocolul, tipurile de tranzac!ii, administrarea magistralei (bus management) "i totodat furnizeaz informa!ii necesare pentru construirea unui sistem n acest standard.
USB este o magistral pe cablu care permite schimb de date ntre un calculator gazd "i o gam larg de periferice accesibile simultan. Magistrala permite ca perifericul s fie ata"at, configurat, folosit "i deconectat n timp ce gazda "i celelalte periferice opereaz.
USB a fost proiectat n primul rnd pentru utilizatorii care nu doresc s intre n detalii de instalare hardware, astfel sistemul complicat de cablare a fost nlocuit cu un control software. Toate problemele presupuse de interconectarea mai multor dispozitive cu performan!e "i rate de transfer diferite sunt tratate prin software.
Magistrala USB define"te trei categorii de dispozitive fizice:
gazda USB (USB Host) func!ii USB (USB function) distribuitoare USB (USB Hub)
Acestea sunt interconectate ntr-o topologie specific de tip stea multipl. Topologia USB este reprezentat sugestiv n Fig. 7.1. Din figur se poate observa c USB face legtura ntre dispozitivele USB "i gazd. n nodul fiecrei stele se gse"te un hub. ntre elemente legtura este fcut cu segmente de cablu: fiecare segment de cablu face legtura punct la 116 punct (point-to-point) ntre gazd "i o func!ie sau un hub sau ntre hub "i o func!ie sau un alt hub.
n sistem exist o singur gazd. Interfa!a dintre gazd "i sistemul USB se nume"te Host Controller; poate fi o combina!ie hardware, software sau firmware. Gazda are implicit un hub care se nume"te Root Hub "i pune la dispozi!ie unul sau mai multe pucte de legtur. Punctele de legtur se numesc porturi.
Hub-urile "i func!iile USB sunt referite global ca dispozitive USB. Un hub furnizeaz puncte de legtur suplimentare, iar o fuc!ie furnizez facilit!i suplimentare sistemului.
Dispozitivele USB recunosc protocolul USB, rspund la opera!ii standard "i recunosc informa!ia desriptiv din informa!ia vehiculata n magistral. Dispozitivele "i gazda USB vor fi descrise mai amnun!it n unul din subcapitolele urmtoare.
n ceea ce prive"te ini!iatorul transferurilor de date pe magistral, acestea este doar gazda. Protocolul folosit este protocol prin interogare (de tip polled). Datele vehiculate pe magistral sunt grupate n pachete; o tranzac!ie de magistral implic transmiterea a cel mult trei pachete. Fiecare tranzac!ie ncepe prin trimiterea de ctre gazd a unui pachet de semnalizare -tocken packet- care descrie tipul "i sensul tranzac!iei, adresa dispozitivului USB "i numrul nodului destina!ie (endpoint). Dispozitivul adresat se autoselecteaz prin Host Root Hub Hub 1 Nod Hub 2 Hub 3 Hub 4 Nod Nod Nod Nod Nod Nod Fig. 7.1. Topologia magistralei USB 117 decodificarea adresei ce-i corespunde. Urmeaz transferul de date de la gazd spre dispozitivul adresat sau invers, dup cum este specificat n pachetul de semnalizare.
Receptorul rspunde n aceast tranzac!ie printr-un pachet de dialog -handshake packet- prin care se confirm (sau nu) ncheierea cu succes a transferului de date. Descrierea n amnunt a aspectelor concrete legate de protocol este reluat n unul din capitolele urmtoare.
Aspectele electrice "i mecanice ale interfe!ei sunt reglementate foarte precis n specifica!iile de magistral. Semnalele electrice sunt vehiculate sub form de semnal diferen!ial (D+ "i D-) "i sunt posibile dou rate de transfer: 12 Mbps (full-speed) "i 1.5 Mbps (low-speed). Ambele rate de transfer sunt suportate n aceea"i magistral prin comutare dinamic automat ntre moduri. Semnalul de ceas (clock) este transmis codificat simultan cu datele diferen!iale. Codificarea utilizat este NRZI cu mpnare de bi!i (bit-stuffing).
Transportarea semnalelor se face printr-un cablu cu patru fire conductoare. Semnalul util este transportat pe dou conductoare torsadate. Pe celelalte dou conductoare cablul mai transport tensiunea de alimentare nominal de +5V (V BUS ) "i poten!ialul de referin! (GND). n acest fel pot fi alimentate prin cablul de legtur dispozitive conectate la magistral. n Fig. 7.2. este reprezentat un cablu USB.
Toate dispozitivele au o conexiune n sus, amonte (upstream) "i una sau mai multe conexiuni n jos, aval (downstream). Conectorii pentru aceste legturi nu sunt interschimbabili, eliminnd posibilitatea de buclare la hub.
Alimentarea dispozitivelor este o problem de magistral la USB. Gazda poate furniza alimentare dispozitivelor USB conectate direct. Din punctul de vedere al alimentrii, dispozitivele pot fi dispozitive care dispun de surs proprie de alimentare (self powered device) sau dispozitive care se alimenteaz prin cablu (bus powered device). Un hub poate, ca "i gazda, s furnizeze alimentare dispozitivelor ata"ate.
Un atu al USB este siguran!a crescut a transferurilor de date, se poate spune c este o magistral robust. La asigurarea acestei calit!i "i dau concursul o serie de factori: principii func!ionale, accesorii implementate n acest scop, restric!ii constructive bine definite. Acesta este principalul motiv pentru care semnalele purttoare de informa!ie sunt semnale electrice diferen!iale. Pentru a garanta securitatea datelor este implementat un aparat CRC (soft, hard sau combinat). n caz de eroare sistemul hotr"te retransmiterea de trei ori a pachetului alterat, dup care este informat utilizatorul care decide asupra modului de ac!ionare. V BUS
V BUS
D+
D- D+
D- GND GND Fig. 7.2. Cablu USB 118
U"urin!a cu care este utilizat USB rezult din atributul special de tip plug-and-play al acestei magistrale. USB accept cuplarea "i decuplarea de dispozitive n orice moment; sistemul software se adapteaz dinamic la modificrile fizice de topologie. Un dispozitiv USB este plasat fizic n structur prin ata"area la portul unui hub. Hub-ul dispune de indicatori de stare la fiecare port pentru a semnaliza cuplarea sau decuplarea unui dispozitiv. Gazda sesizeaz semnalizarea de la hub "i atribuie o adres unic dispozitivului. Dup aceea constat dac dispozitivul este o func!ie sau un hub. La decuplare hub-ul dezactiveaz portul "i indic gazdei acest eveniment care este tratat n continuare de soft-ul gazdei. Pentru a se adapta dinamic, sistemul software USB este permanent ntr-un proces de inventariere a magistralei (bus counting).
7.2. ELEMENTE ARHITECTURALE
7.2.1. Tipuri de transferuri USB
Arhitectura USB distinge patru tipuri de baz de transferuri de date:
transferuri de control (Control Transfers) - sunt folosite pentru configurare "i comand "i obligatoriu trebuie s fie suportate de toate perifericele; transferuri cu volum mare de date (Bulk Data Transfers) - permit dispozitivelor s schimbe cantit!i mari de informa!ie cu gazda pe msur ce magistrala devine disponibil, (ex.:camere digitale, scannere sau imprimante); transferuri prin ntreruperi (Interrupt Data Transfers) - a fost proiectat ca suport pentru periferice de intrare controlate de om, (tastatur, mouse, joystick), care au nevoie s comunice rar, cantit!i mici de date; datele transferate n acest mod sunt caractere, coordonate sau semnalizri de evenimente organizate n unul sau mai mul!i octe!i; transferuri izocrone (Isochronous Transfers) - asigur un acces garantat la magistral, flux de date constant "i tolereaz erorile de transmisie; datele izocrone sunt continue "i n timp real la toate nivelele: generare, emisie, recep!ie "i utilizare la receptor; acest tip de transfer este folosit pentru fluxuri de transfer n timp real cum ar fi sistemele audio.
7.2.2. Dispozitive USB
Dispozitivul USB este numit n specifica!ii device. Toate dispozitivele sunt accesate printr-o adres USB care se atribuie la ata"area acestuia n sistem. Fiecare dispozitiv USB poate dispune de una sau mai multe pipe-uri prin care gazda comunic cu dispozitivul. Toate dispozitivele posed un pipe special, endpoint zero, care este privit ca pipe de control. Mecanismul de accesare a informa!iei prin acest port este comun tuturor dispozitivelor. Pipe-ului endpoint zero i este asociat informa!ia ce descrie complet dispozitivul USB: informa!ie standard - clasa de dispozitiv, informa!ii de power management, productor; informa!ie de clas - semnifica!ia depinde de clasa de dispozitive; informa!ii de productor - la alegerea productorului.
119 Exist dou clase de dispozitive: hub (distribuitor) "i func!ie.
7.2.2.1. Dispozitive HUB
Dispozitivele hub sunt elemente cheie n arhitectura plug-and-play a USB. Fig. 7.3. arat un hub tipic .
Hub-urile sunt folosite pentru a simplifica conectica din punctul de vedere al utilizatorului "i totodat determin un sistem robust "i ieftin.
Punctele de ata"are se numesc porturi. Exist un port spre gazd (amonte - upstream port) "i mai multe porturi spre alte dispozitive (aval - downstream port).
Un hub are dou componente: un repetor (Hub Repeator) "i un controler (Hub Controller). Repetorul este un comutator comandat prin protocol, care face legtura ntre portul amonte cu unul din porturile aval. Controlerul con!ine registre de interfa! care fac posibil comunicarea cu gazda, pentru configurare "i comand.
7.2.2.2. Dispozitive func!ii
Func!ia este un dispozitiv USB capabil s transmit informa!ii de date sau control prin magistral. n mod obi"nuit, o func!ie este un periferic independent cu un cablu care se ata"eaz la un port al unui hub. Este posibil ca o unitate fizic s includ mai multe func!ii "i un hub, dispunnd de un singur cablu de conexiune. Acesta se nume"te dispozitiv compus "i este vzut de gazd ca un hub cu mai multe dispozitive nedeta"abile. Fiecare func!ie posed informa!ie de configurare prin care sunt descrise pentru gazd facilit!ile "i resursele necesare.
Exemple de func!ii de dispozitiv: dispozitiv de localizare - mouse, tablet digitizoare, light pen; dispozitiv de intrare - tastatura; dispozitiv de ie"ire - imprimanta; adaptor de telefonie - ISDN.
Fig. 7.4. prezint un sistem USB la un calculator PC model desktop.
Port 1 Port 2 Port 3 Port 7 Port 6 Port 5 Port 4 HUB Port amonte Fig 7.3 Hub tipic 120
7.2.3. Gazda USB
Gazda ocup o pozi!ie special n coordonarea sistemului USB. Pe lng pozi!ia fizic special, gazda are responsabilit!i speciale n ceea ce prive"te magistrala "i dispozitivele ata"ate. Controleaz accesul la magistral; un dispozitiv are acces la magistral doar dac i este acordat de gazd. Gazda este responsabil pentru urmtoarele ac!iuni: detectarea conectrii/deconectrii de dispozitive USB; administreaz trasferurile de control ntre gazd "i dispozitive USB; administreaz transferurile de date ntre gazd "i dispozitive USB; culege informa!ii de stare "i statistici de activitate; furnizeaz alimentare dispozitivelor USB ata"ate.
Gazda interac!ioneaz cu dispozitivele USB prin controlerul gazdei. Exist de asemenea o interac!iune ntre software-ul de sistem "i software-ul de dispozitiv pe urmtoarele cinci domenii: numrare "i configurare de dispozitive; transferuri izocrone; transferuri asincrone de date; administrarea alimentrii (power management); informa!ii de administrare de magistral "i de dispozitiv.
7.2.4. Extensii arhitecturale
Arhitectura USB este extensibil la nivelul interfe!ei dintre driver-ul Host Controller-ului "i driver-ul USB. n viitor este posibil s se dezvolte arhitecturi cu mai multe Host Controller-e "i cu drivere asociate.
Gazd/Hub PC Hub/Func!ie Monitor Hub/Func!ie Tastatur Light pen Func!ie Mouse Func!ie Difuzor Func!ie Microfon Func!ie Telefon Func!ie Hub Hub Fig. 7.4. Sistem USB la un calculator PC model desktop 121 7.3. FLUXUL DE DATE N MAGISTRALA USB
7.3.1. Reprezentarea elementelor func!ionale
Un mod simplu de a vedea legtura ntre gazd "i dispozitive este reprezentat n Fig. 7.5. O abordare mai profund este reprezentat n figura urmtoare, Fig. 7.6.
Dispozitivul fizic USB este o component hardware aflat la captul unui cablu, capabil s execute func!ii utile.
Componenta client-software este reprezentat de software-ul care ruleaz pe gazd; fiecrui dispozitiv i corespunde o component client-software care se regse"te la gazd. Aceasta se livreaz fie cu sistemul de operare, fie odat cu dispozitivul USB. GAZD USB DISPOZITIV USB Fig. 7.5. Reprezentare simpl a legturii gazd-dispozitiv Nivelul dispozitiv USB Nivelul interfe!ei spre magistrala USB GAZD DISPOZITIV FIZIC conexiune CLIENT- SOFTWARE FUNC$IE Nivelul func!ie USB SISTEMUL SOFTWARE USB DISPOZITV LOGIC USB CONTROLER GAZD USB INTERFA$ MAGISTR. USB Flux efectiv de comunica!ie Flux logic de comunica!ie Fig. 7.6. Legtur gazd-dispozitiv 122 Componenta sistem-software-USB este software-ul care suport magistrala USB ntr-un sistem de operare particular. Aceast component se livreaz cu sistemul de operare "i este independent de dispozitivul USB particular sau de componenta client-software.
Componenta controler-gazd-USB (USB-Host Controller) reprezint interfa!a spre magistral a controlerului "i este constituit din hardware+software care permit dispozitivelor s se ata"eze la gazd.
Responsabilit!ile "i drepturile sunt mpr!ite ntre cele patru componente descrise. O simpl conexiune gazd-dispozitiv presupune o interac!iune pe mai multe nivele ntre mai multe entit!i.
Nivelul interfe!ei spre magistrala USB furnizeaz conectarea fizic a semnalelor ntre gazd "i dispozitiv; Nivelul dispozitiv USB reprezint modelul care execut opera!ii generice ntre software-sistem "i dispozitiv; Nivelul func!ie USB reprezint modelul care confer facilit!i suplimentare gazdei prin entitatea client-software adecvat dispozitivului; Nivelele dispozitiv USB "i func!ie USB modeleaz o comunica!ie logic, comunica!ie ce se realizeaz efectiv fizic prin nivelul interfe!ei spre magistrala USB.
7.3.2. Topologia fizic a magistralei
Dispozitivele sunt conectate la gazd printr-o re!ea de tip stea (multipl) ca n Fig. 7.7.
Punctele de ata"are sunt puse la dispozi!ie prin clasa de dispozitive numite hub (distribuitor). Punctele de ata"are sunt porturile. Gazda are un hub inclus, numit root-hub (RH n figur) prin care furnizeaz unul sau mai multe puncte de legtur. Dispozitivele care confer gazdei facilit!i suplimentare se numesc func!ii. ntr-un dispozitiv fizic pot fi nglobate mai multe func!ii. Unitatea fizic con!ine n acest caz un hub la care sunt ata"ate permanent n configura!ie fix func!iile individuale; acesta este un dispozitiv compus. GAZD RH DISP. H DISP. DISP. H DISP. DISP. DISP. DISP. Dispozitiv compus Fig. 7.7. Topologia magistralei USB 123 7.3.3. Topologia logic a magistralei
n timp ce conexiunea fizic este o stea multipl, gazda comunic cu fiecare dispozitiv logic ca "i cum ar fi direct conectat la hub-ul rdcin (root hub). Modelul logic este ilustrat n Fig. 7.8.
7.3.4. Rela!ia nre client-software "i func!ie
De"i att topologia fizic ct "i topologia logic reflect caracterul partajat al magistralei USB, la activarea unei func!ii, imaginea interac!iunii dintre componenta client- software "i func!ie este ca "i cum nu ar exista alte elemente n sistem. Client-software interac!ioneaz doar cu interfa!a de interes. Modelul de interac!iune este redat in Fig. 7.9.
7.4. INTERFA#A ELECTRIC
7.4.1. Caracteristicile circuitelor emi!toare
USB folose"te circuite diferen!iale pentru elaborarea semnalului electric emis pe cablul USB. Nivele de tensiune garantate de aceste circuite sunt cele din Tabelul 7.1.
Tabel 7.1. Nivele de tensiune garantate de circuitele emi!toare pe cablu USB Parametru minim maxim unitate de msur V OL 0.0 0.3 V V OH 2.8 3.6 V C-Sw C-Sw C-Sw C-Sw C-Sw C-Sw Func Func Func Func Func Func Fig. 7.9. Rela!ia ntre client-software "i func!ie GAZD DISP. LOG. DISP. LOG. DISP. LOG. DISP. LOG. DISP. LOG. DISP. LOG. DISP. LOG. Fig. 7.8. Topologia logic a magistralei USB 124 Ie"irile circuitelor emi!toare de magistral trebuie s fie de tip three-state pentru a permite opera!ii bidirec!ionale half-duplex.
Structura unui circuit emi!tor de magistral este reprezentat n Fig. 710
Rezisten!a R S este inclus n structura emi!torului. Rezisten!a echivalent de ie"ire a emi!torului trebuie s fie ntre 28 "i 44.
Specifica!iile de magistral prevd restric!ii "i pentru timpii de cre"tere "i descre"tere ai semnalului de date. Acesta se msoar ntre 10% "i 90% din excursia semnalului care poate s ia valori ntre -1.0V "i +4.6V. Figura 7.11. define"te timpii de cre"tere (rise time) "i descre"tere (fall time).
V CRS , poten!ialul de intersec!ie al semanlului diferen!ial (Crossover voltage), poate lua valori ntre 1.3V "i 2.0V.
7.4.2. Caracteristicile circuitelor receptoare
Receptorul de linie este un circuit cu intrare diferen!ial. Nivelele de tensiune acceptate la intrare sunt cele din Tabelul 7.2.
Tabel 7.2. Nivele de tensiune acceptate de circuitele receptoare USB Parametru minim maxim unitate de msur V IH 2.0 - V V IL - 0.8 V V DI 0.2 - V V CM 0.8 2.5 V
10% 10% 90% 90% t R t F
Date diferen!iale V CRS
timp de cre"tere timp de descre"tere Fig. 7.11. Timpii de cre"tere "i descre"tere ai semnalului de date R S R S TxD+ TxD- OE D+ D- Fig. 7.10. Circuit emi!tor de magistral 125 V DI este sensibilitatea difeten!ial la intrare, iar V CM este tensiunea de mod comun a intrrilor diferen!iale. Att intrarea D+ ct "i intrarea D- pot fi temporar mai mici dect V IH
minim n timpul tranzi!iilor semnalelor diferen!iale; intervalul nu are voie s dep"easc 14ns la transferul de mare vitez (12 Mbps) "i 210 ns la transferul de mic vitez (1.5 Mbps).
7.5. INTERFA#A MECANIC
Topologia USB se realizeaz conectnd aval de hub-ul gazdei un port amonte al unui hub sau o func!ie, folosind o conectic definit "i cabluri de asemenea cu caracteristici stabilite prin specifica!iile mecanice ale USB. Deoarece USB poate opera la dou viteze diferite, pentru fiecare din ele se fac precizri pentru caracteristicile cablului.
Cablul con!ine patru fire conductoare, dou purttoare ale semnalului diferen!ial, unul transport tensiunea de alimentare "i un conductor pentru poten!ialul de mas. Aceast structur este valabil pentru ambele viteze posibile prin USB.
Pentru viteze mari, 12 Mbps, conductoarele care transport semnalul diferen!ial sunt torsadate "i toate patru conductoarele sunt ecranate.
O sec!iune printr-un astfel de cablu este redat n Fig. 7.12.
La viteze sczute, 1.5 Mbps, cerin!ele pentru cablu nu sunt att de dure; nu este necesar ecranul "i nici torsadarea conductoarelor.
Cablul USB trebuie marcat de ctre productor. Pentru cablul de mic vitez nu este obligatorie folosirea unui cablu marcat. Cablurile de mare vitez pot fi folosite "i la conexiunile cu transferuri de de mic vitez.
R B W G Cma" PVC Ecrane metalice
Cabluri netorsadate
R-red- V BUS B-black- GND W-white- D- Cabluri torsadate G-green- D+ Fig. 7.12.Structura constructiv a cablului USB 126 De"i restric!iile sunt dure pentru cabluri, lungimea acestora nu poate dep"i 5m. Datorit topologiei sistemului USB, dispozitivele se pot afla practic la distan!e mai mari de 5m de gazd sau ntre ele.
n ceea ce prive"te conectorii, ace"tia sunt concepu!i n dou serii, A "i B. Seria A pentru conexiuni amonte "i seria B pentru conexiuni aval. Specifica!iile USB dau o ntreag list a standardelor prin care se reglementeaz caracteristicile materialelor folosite. Dintre aceste documente amintim:
American National Standard/Electronic Industries Association ANSI/EIA-364-C (12/94) American Standard Test Materials ASTM-D-4565 "i ASTM-D-4566 Underwriters Laboratory, Inc UL STD-94 "i UL Subject-444
7.6. PROTOCOLUL USB
7.6.1. Descriere general
USB folose"te un protocol bazat pe pachete de date (Data Packet). Un pachet de date este o colec!ie de cadre de date (Data Frame). Numrul de bi!i dint-un cadru nu are o valoare fix. Majoritatea sistemelor folosesc cadre de 4 pn la 8 bi!i de date.
La transmisii seriale bi!ii sunt trimi"i spre magistral astfel: primul bit este cel mai pu!in semnificativ bit (LSB) din cadru, urmat de bitul mai semnificativ pn la trimiterea celui mai semnificativ (MSB) bit din cadrul respectiv. n diagramele ce urmeaz, bi!ii sunt reprezenta!i de la stnga la dreapta n ordinea n care sunt trimi"i pe magistrala serial. Protocolul USB define"te patru tipuri de pachete de date:
pachet de semnalizare (Token Packet) pachet de date (Data Packet) pachet de dialog (Handshake Packet) pachet special (Special Packet)
Toate pachetele con!in la nceputul lor un cmp de sincronizare, la care se va face referire n continuare cu numele SYNC, "i un cmp identificator de pachet, la care se va face referire n continuare cu PID (Packet Identifier).
7.6.1.1. Cmpul SYNC
SYNC este primul cmp din orice pachet USB. Cmpul de sincronizare este constituit dintr-o serie de bi!i care produc un "ir dens de tranzi!ii utiliznd schema de codificare NRZI cerut de standardul USB. Aceste tranzi!ii permit tuturor dispozitivelor conectate la USB s-"i reseteze ceasul "i s se sincronizeze cu gazda. Cmpul apare ca o serie de trei tranzi!ii 1/0 urmat de o marc cu l!imea a dou impulsuri. Datele din cmp au succesiunea de valori 0000 0001. Succesiunea datelor "i forma semnalului din cmpul SYNC sunt reprezentate n Fig. 7. 13.
127
Ultimii doi bi!i din cmpul SYNC sunt folosi!i pentru a indica sfr"itul cmpului "i totodat nceputul urmtorului cmp, PID.
7.6.1.2. Cmpul PID
Cmpul PID urmeaz cmpului SYNC ntr-un pachet USB "i are lungimea de 8 bi!i. Primii patru bi!i indic tipul pachetului, iar urmtorii patru sunt n ordine primii patru complementa!i (complement fa! de 1) "i sunt folosi!i ca bi!i de verificare pentru a confirma acurate!ea primilor patru. Structura cmpului PID este reprezentat n Fig. 7.14.
Primii patru bi!i responsabili cu definirea tipului pachetului sunt folosi!i n dou etape. Cei mai semnificativi doi bi!i specific tipul pachetului, iar ceilal!i doi bi!i mpart pachetele n categorii. Tabelul7.3. red regula de interpretare a informa!iei din PID.
Tabel 7.3. Semnific!ia bi!ilor din cmpul PID pentru stabilirea tipului de pachet Cod Tip pachet xx00xx11 Pachet special xx01xx10 Pachet de semnalizare xx10xx01 Pachet de dialog xx11xx00 Pachet de date
7.6.2. Pachetul de semnalizare (Token Packet)
Orice transfer ncepe prin trimiterea de ctre gazd a unui pachet de semnalizare. Un pachet are 32 de bi!i mpr!i!i n cinci cmpuri. Structura pachetului este reprezentat n Fig. 7.15.
Fig. 7.15. Structura pachetului de semnalizare SYNC PID Cmp adres Nod (Endpoint) CRC 8b 8b 7b 4b 5b 0 0 0 0 0 0 0 1 S 0 S 1 S 2 S 3 S 4 S 5 S 6 S 7
SYNC Date Semnal corespunztor datelor codate NRZI Fig. 7.13. Cmpul SYNC 128 Primele dou cmpuri, fiecare cu lungimea de un octet, iau forma standard a tuturor pachetelor USB.
n cadrul cmpului PID se definesc pentru acest tip de pachet patru categorii de pachete de semanlizare conform Tabelului 7.4.
Tabel 7.4. Semnifica!ia PID pentru stabilirea categoriei pachetului de semnalizare PID Categorie pachet semnalizare 00011110 Pachet de ie"ire (OUT) 01011010 Pachet de nceput cadru (SOF) 10010110 Pachet de intrare (IN) 11010010 Pachet de comand (SETUP)
Pachetul de ie"ire (OUT) poart datele de la gazd la dispozitiv. Pachetul de intrare (IN) poart datele de la dispozitiv la gazd. Pachetul de comand (SETUP) vizeaz un anume nod (Endpoint). Pachetul de nceput de cadru (SOF-Start Of Frame) este difuzat tuturor dispozitivelor; structura acestui pachet difer de a celorlalte trei pachete de semnalizare.
Pentru pachetele IN, OUT "i SETUP, urmtorii 7 bi!i dup PID sunt interpreta!i ca "i cmp de adres pentru a identifica dispozitivul pe care gazda vrea s-l apeleze pentru comand sau transfer de date. Urmtorii 4 bi!i furnizeaz un numr de nod (Endpoint).
Un nod reprezint o sec!iune a unei func!ii USB adresabil individual. Conceptul de nod d proiectan!ilor de hardware posibilitatea divizrii unui dispozitiv fizic n unit!i logice separate.
Ultimul cmp, de 5 bi!i, este folosit pentru verificri CRC, asigurnd astfel integritatea transferului pachetului de date. n suma de control sunt incluse toate cmpurile n afar de PID, care este protejat prin structura sa.
7.6.2.1. Pachetul de nceput de cadru
Gazda emite un pachet de nceput de cadru la 1.00 ms n cadrul unei tranzac!ii de semnalizare. Toate dispozitivele reac!ioneaz "i decodific acest pachet, dar nu trimit napoi semnal de recep!ie a pachetului. Structura pachetului de nceput de cadru este cea din Fig. 7.16.
Cmpul de 11 bi!i con!ine numrul cadrului care este atribuit de gazd n mod cresctor de la 0 la 7FFH (2047), dup care ncepe din nou de la 0. Cmpul este folosit ca informa!ie de sincronizare pe magistrala USB. Fig. 7.16. Structura pachetului de nceput de cadru SYNC PID CRC 8b 8b 11b 5b Numr cadru 129 7.6.3. Pachetul de date
Informa!ia propriu-zis este transferat n sistemele USB sub forma unor pachete de date. Structura acestui pachet este redat n Fig. 7.17.
Dup cmpurile SYNC "i PID urmeaz cmpul de date care este compus dintr-un numr ntreg de octe!i, de la 0B la 1023B. Corectitudinea cmpului de date este asigurat prin cmpul de verificare ciclic de 16b aflat la sfr"itul pachetului. n cmpul PID se definesc dou categorii de cmpuri de date; DATA0 "i DATA1 conform Tabelului 7.5.
Tabel 7.5. Semnifica!ia PID pentru stabilirea categoriei pachetului de date PID Categoria pachet date 00111100 DATA0 10110100 DATA1
Din punct de vedere func!ional, cele dou categorii de pachete de date formeaz ntre emi!tor "i receptor un sistem adi!ional de verificare a erorilor. Emi!torul oscileaz ntre DATA0 "i DATA1 pentru a indica faptul c a recep!ionat o confirmare valid a recep!iei pachetului precedent. Exemplu: Emi!torul trimite un pachet DATA0; dac receptorul a preluat cu succes datele, emite un pachet handshake (de dialog) prin care confirm emi!torului c a preluat corect datele. n urma interpretrii pachetului handshake, emi!torul trimite urmtorul pachet de tip DATA1, ceea ce indic receptorului c mesajul su de confirmare (ACK) a fost interpretat corect de emi!tor.
7.6.4. Pachetul handshake
Pachetele handshake, sau de dialog, sunt folosite pentru a raporta starea unui transfer de date, pentru a indica recep!ia cu succes a datelor sau pentru a ntoarce valori care indic acceptarea/respingerea unei comenzi sau o stare de HALT la dispozitiv.
Acest tip de pachet este compus doar din dou cmpuri; SYNC "i PID. Structura este reprezentat n Fig. 7.18.
Fig. 7.18. Structura pachetului handshake SYNC PID 8b 8b Fig. 7.17. Structura pachetului de DATE SYNC PID CRC 8b 8b 0 -1023B 16b DATA 130
Cmpul PID define"te trei categorii de pachete handshake conform Tabelului 7.6.
Pachetul handshake ACK indic emi!torului c pachetul de date a fost recep!ionat fr erori.
Pachetul handshake NAK indic faptul c o func!ie nu a fost capabil s recep!ioneze date de la gazd (ntr-o tranzac!ie OUT) sau c o func!ie nu are date de transmis gazdei (ntr-o tranzac!ie IN). O gazd nu poate trimite niciodat NAK.
Pachetul STALL este emis de o func!ie ca rspuns la un pachet de semnalizare IN sau dup o tranzac!ie de date OUT, indicnd c func!ia nu este capabil s emit sau s recep!ioneze date. Gazda nu poate rspunde cu pachet STALL.