Documente Academic
Documente Profesional
Documente Cultură
Cuprins modul
9.1. Descriere i caracteristici
9.2. Arhitectura magistralei
9.3. Nivelul fizic
9.4. Transferul de date prin cadre
9.5. Cuplarea unui microcontroller (MC) la USB
printr-o interfa specializat
9.6. Microcontrollere cu USB integrat
Cuprins
154
Magistrala USB
9.1.Descriere i caracteristici
n prezent conectarea pe USB este cea mai rspndit variant de conectare a
dispozitivelor periferice la calculatoare PC. Printre perifericele cu USB se pot meniona
imprimantele, stick-urile de memorie flash, aparatele foto, telefoanele mobile dar i
tensiometre, jucrii sau fierbtoare de cafea, figura 9.1.
Magistrala USB este bazat pe o transmisie serial, sincron, entitatea este cadrul (blocul)
de date, codificare de grup cu adugare de bii, cu refacerea tactului din datele citite,
verificarea corectitudinii transferului cu CRC.
Magistrala USB a fost introdus cu dorina de a oferi utilizatorilor o interfa universal,
cu vitez mare i uor de folosit, mai ieftin pentru c, fiind serial, cablurile i conectorii
cost mai puin. Aceste considerente au impus magistrala USB pe pia, n prezent
aceasta ocupnd o cot mare de pia n domeniul interfarilor. Complexitatea USB este
mai mare dect a interfeelor nlocuite, adic a interfeei RS232 i a interfeei paralele,
prin urmare implementarea ei n microcontrollere a fost mai dificil. n 2008 au fost
vndute peste 3 miliarde de dispozitive USB, iar intrarea pe pia a USB 3.0 (SuperSpeed
USB) n anul 2009, cu o estimare de vnzri pn n 2015 de 25% din totalul
dispozitivelor USB asigur condiiile supravieuirii ndelungate. Caracteristicile
principale ale magistralei USB:
rata de transfer este de 1,5 Mbps la USB 1.0 (Low Speed), 12Mbps la USB 1.1
(Full Speed), 480Mbps la USB 2.0 (Hi Speed) i 4,8Gbps la USB 3.0 (Super
Speed);
155
Magistrala USB
9.2.Arhitectura magistralei
Dispozitivele USB sunt conectate ntr-o topologie de tip stea multipl. Topologia USB
este reprezentat n figura 9.2. n nodul fiecrei stele se gsete un hub.
Gazda USB
Root hub
Dispozitiv compus
Funcie Hub 1 Funcie
USB USB
Hub 2
Endpoint
Funcie Funcie
Funcie Funcie USB USB
USB USB
156
Magistrala USB
Legtura este multipunct pe magistral dar punct la punct ntre hub i dispozitive. Este
posibil ca un dispozitiv fizic s conin mai multe funcii i un hub, acest dispozitiv
numindu-se compus. Un exemplu este o multifuncional care conine imprimant,
scanner i fax, toate acestea fiind funcii USB.
Fiecare dispozitiv USB poate dispune de una sau mai multe endpoint-uri prin care gazda
comunic cu dispozitivul. Un endpoint este un registru intern, adresabil de gazd n care
se pot trimite sau din care se pot citi informaii specifice. Toate dispozitivele posed un
endpoint special, endpoint zero, care este privit ca pipe de control. Pipe-ului endpoint
zero i este asociat informaia ce descrie complet dispozitivul USB: clasa de dispozitiv,
informaii de power management, productor etc.
Iniiatorul transferurilor de date pe magistral este gazda USB. Protocolul folosit este
protocol prin interogare (de tip polled). Datele vehiculate pe magistral sunt grupate n
pachete iar o tranzacie de magistral implic transmiterea a cel mult trei pachete.
Fiecare tranzacie ncepe prin trimiterea de ctre gazd a unui pachet de semnalizare -
token packet- care descrie tipul i sensul tranzaciei, adresa dispozitivului USB i
numrul nodului destinaie (endpoint). Dispozitivul adresat se selecteaz prin
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 tranzacie printr-un pachet de dialog -handshake packet-
prin care se confirm (sau nu) ncheierea cu succes a transferului de date.
9.3.Nivelul fizic
Aspectele electrice i mecanice ale interfeei sunt reglementate foarte precis n
specificaiile de magistral. Semnalele electrice sunt transmise diferenial (D+ i D-).
Codificarea utilizat este NRZI cu mpnare de bii (bit-stuffing) i tactul de recepie este
generat din datele transmise, codul fiind autosincronizabil.
Cablul USB are patru fire, semnalul util este transportat pe dou conductoare torsadate iar
pe celelalte dou conductoare cablul transport tensiunea de alimentare nominal de +5V
(VBUS) i potenialul de referin (GND), figura 9.3.
157
Magistrala USB
VBUS VBUS
D+ D+
D- D-
GND GND
Uurina 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 ataarea 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. La decuplare hub-ul dezactiveaz portul i indic gazdei acest eveniment.
Pentru a se adapta dinamic, sistemul software USB este permanent ntr-un proces de
inventariere a magistralei (bus counting).
158
Magistrala USB
159
Magistrala USB
Cmp Endpoint
SYNC PID CRC
adres
8b 8b 7b 4b 5b
Figura 9.5. Pachetul de semnalizare (sus), cmpul de sincronizare (mijloc) i cmpul PID
(jos)
Toate pachetele conin la nceputul lor un cmp de sincronizare, numit SYNC care
permite buclei PLL pentru refacerea tactului din receptor s se sincronizeze, i un cmp
identificator de pachet, numit PID (Packet Identifier).
SYNC este primul cmp din orice pachet USB. Cmpul de sincronizare este constituit
dintr-o serie de bii care produc un ir dens de tranziii utiliznd schema de codificare
NRZI cerut de standardul USB. Cmpul apare ca o serie de trei tranziii 1/0 urmat de o
marc cu limea a dou impulsuri. Datele din cmp au succesiunea de valori 0000 0001.
Cmpul PID urmeaz cmpului SYNC ntr-un pachet USB i are lungimea de 8 bii.
Primii patru bii indic tipul pachetului, iar urmtorii patru sunt n ordine primii patru
complementai (complement fa de 1) i sunt folosii ca bii de verificare pentru a
confirma acurateea primilor patru. Cmpul PID definete trei categorii de pachete
handshake:
Pachetul handshake ACK indic emitorului c pachetul de date a fost
recepionat fr erori;
Pachetul handshake NAK indic faptul c o funcie nu a fost capabil s
recepioneze date de la gazd (ntr-o tranzacie OUT) sau c o funcie nu are date
de transmis gazdei (ntr-o tranzacie IN). O gazd nu poate trimite niciodat NAK;
Pachetul STALL este emis de o funcie ca rspuns la un pachet de semnalizare IN
sau dup o tranzacie de date OUT, indicnd c funcia nu este capabil s emit
sau s recepioneze date. Gazda nu poate rspunde cu pachet STALL.
160
Magistrala USB
8b 8b 0 -1023B 16b
SYNC PID
8b 8b
Pachetele handshake sau de dialog sunt folosite pentru a raporta starea unui transfer de
date, pentru a indica recepia 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
figura 9.6 jos.
Un dialog simplificat este dat n figura 9.7. Cu un pachet de semnalizare se indic adresa
dispozitivului i tipul tranzaciei care presupunem c este un transfer de date spre gazda
USB. Dispozitivul USB rspunde cu pachetul de date. Gazda confirm primirea cu un
pachet handshake.
161
Magistrala USB
162
Magistrala USB
FT245BM
Timer
3,3V Generator al
Control
tensiunii de 3,3V
FIFO i
Motor serial Buffer de interfa
paralel
D+ Emitor/ USB recepie FIFO
D0-
Receptor USB 128 octei
D7
D-
Generarea RD
Buffer de
protocolului emisie FIFO
WR
USB TxE
384 octei
RxF
EEPROM serial
Scrierea datelor se face cnd TxE este n stare 0 logic. Dup memorarea octetului n
bufferul de transmisie TxE devine din nou 0 logic. La recepia datelor se folosete RxF
care n stare 0 logic anun c s-a recepionat un caracter, figura 9.9.
D0- RxF
D7
RD
WR
TxE D0-
D7
163
Magistrala USB
Circuitul FT232BM are o schem bloc asemntoare, diferena fiind blocul de interfa
care este n acest caz serial. Semnalele sunt cele de la RS232: TxD, RxD, RTS, CTS,
DTR, DSR, DCD, RI i n plus TxDEN un semnal de validare transmisie necesar la
standardul RS485.
Dou semnale care arat c se transmit sau se recepioneaz date TxLED i RxLED pot
s fie folosite la comanda unor indicatoare luminoase de activitate. Protocoalele permise
sunt cele hard DTR sau CTS i soft Xon-Xoff. Un circuit generator de rat de Baud
asigur tactul standard necesar transmisiei.
Interfaa cu microcontrollerul este simpl i uor de implementat, const ca i hardware n
conectarea ctorva semnale, TxD cu RxD la FT232BM i cele 8 linii de date i 4 de
protocol la FT245BM. n figura 6 se vede simplitatea unei conectri a unui circuit
Interfaa cu calculatorul gazd, de regul un PC nseamn n primul rnd descrcarea
driverelor de pe site-ul FTDI pentru sistemul de operare instalat. Cuplarea circuitului
FTDI la USB (n cazul sistemului de operare WINDOWS) va avea ca efect dialogul
Found new hardware). Dup instalarea driverelor circuitul FTDI va aprea ca n
figura 9.10:
164
Magistrala USB
tact
Regulator
tensiune 2MHz
Prescalare tact
24x
Interfaa USB
D+ DPLL DPRAM
refacere
USB
tact
D-
VBUS
Tactul necesar pentru interfaa USB este de 48MHz cu tolerana de 0,25%, deci trebuie
acordat atenie tactului extern i prescalrii. Circuitul PLL este digital (DPLL) pentru a
asigura performanele necesare refacerii tactului. Regulatorul de tensiune asigur
tensiunea necesar pentru D+ i D- (3V...3,6V) din tensiunea de alimentare a circuitului
(5V). MC admite lucrul OTG (On-The-Go) conform cu suplimentul specificaiilor USB,
care permite transmisia de semnalizri pe lina VBUS.
Modurile n care lucreaz MC pot fi:
Funcie (ATMEL denumete dispozitiv USB) cu alimentare de la USB (Figura
9.12 a);
Funcie cu alimentare proprie (Figura 9.12 b);
Gazd USB (Figura 9.12 c), mod care nu este implementat n toate MC din
familie.
Modul de lucru gazd sau funcie i vitezele de transfer se selecteaz cu valori logice la
pini de comand.
165
Magistrala USB
VC VC VC
C C C
Comand
VBUS VBUS VBUS alimentare
D+ D+ D+
D- D- D-
a b c
Endpoint 6 Buffer
Program
client
Endpoint 1
Buffer
Endpoint 0
Buffer
Pipe 0
166
Magistrala USB
Transmiterea datelor pe aceeai linie dar din surse diferite prevzute cu buffer-e i spre
destinaii diferite fluidizeaz traficul. Mrimea endpoint-urilor poate fi programat n
MC, cu anumite condiionri. Fiecare endpoint poate cere o ntrerupere atunci cnd este
plin (la recepie) sau gol (la emisie). Registrele de programare a USB au semnificaii
diferite pentru modul de lucru gazd sau funcie.
MC are posibilitatea de lucru cu economie de energie n urmtoarele moduri:
Mod Idle, n care CPU este oprit, repornirea fiind posibil la orice ntrerupere
USB;
Mod Power Down, n care CPU i periferia sunt oprite, repornirea fiind posibil
doar la anumite ntreruperi USB;
Mod Freeze Clock, n care tactul pentru USB este oprit. Intrarea n acest mod se
poate comanda printr-un bit ntr-un registru de comand USB. Repornirea este
posibil doar la anumite ntreruperi USB.
Modul de lucru ca gazd USB sau dispozitiv USB este determinat de valoarea logic a
unui pin (UID) sau software prin poziionarea unui pin ntr-un registru USB. Modul de
lucru Low Speed sau Full Speed se poate selecta prin valoarea logic a doi pini externi.
Valorile logice de comand pot fi stabilite local cu rezistoare sau de la distan.
n funcie de modul de lucru ales pentru interfaa USB, software-ul trebuie s comande
urmtoarele aciuni:
1.Pornirea interfeei USB
pornirea regulatorului de tensiune;
configurarea PLL, validarea PLL i comanda unui ntrzieri pentru ca PLL s se
sincronizeze;
validarea i configurarea interfeei USB prin alegerea vitezei, configurarea
endpoint-urilor etc.;
ataarea unui dispozitiv USB.
2.Oprirea interfeei USB:
detaarea dispozitivelor USB;
invalidarea interfeei USB, a circuitului PLL i a regulatorului de tensiune.
Intrarea n modul de lucru cu economie de energie se face astfel: se oprete tactul, se
oprete bucla PLL, se valideaz ntreruperile care scot interfaa din acest mod de lucru, se
oprete CPU. Reintrarea n modul de lucru se face cu aceleai operaii n ordine invers.
Ca exemplu de transfer de date prin USB, n figura 9.14 se arat diagrama de timp pentru
un transfer de date de scriere:
167
Magistrala USB
Linia USB
SETUP OUT OUT IN
RXSTPI
RXOUTI
TXINI
168
Magistrala USB
169
Magistrala USB
Test de autoevaluare
170
Magistrala USB
I. Vezi pagina 4
171
Magistrala USB
I. Vezi pagina 9
R adevrat
fals
172
Magistrala USB
R Rspunsuri corecte:
1. b, d pagina 2 i 3
2. fals, pagina 4
3. fals, pagina 5
4. c i d, pagina 4
5. fals, pagina 6
6. adevrat, pagina 7
7. fals, pagina 7
8. fals, pagina 9
9. adevrat, figura 9.9.
173