Sunteți pe pagina 1din 25

MAGISTRALA USB

Decembrie 2016, Petre OGRUTAN


Din perspectiva teoriei

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.
Prezentare
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 2013 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);
conecteaz pn la 127 de dispozitive la un calculator gazd, dar nu se pot conecta dispozitive
USB fr gazd ca la IEEE 1394;
configurarea este automat, adic se poate conecta un dispozitiv USB fizic n mers (Hot Plug In).
Se remarc creterea complexitii software fa de partea hardware;
cablul conine linii de alimentare, aa c dispozitivele USB pot fi alimentate de la gazd (bus
powered device) sau pot avea alimentare proprie (self powered device). Din acest motiv cablurile au
conectori diferii pentru conectarea spre gazd (upstream) i spre dispozitiv (downstream);
distana de conectare este de maximum 5m, distana se poate mri prin inserarea de hub-uri.
Periferice USB
TOPOLOGIA
Host
Root Hub

Hub 1

Hub 2 Dispozitiv Dispozitiv

Hub 3 Hub 4
Dispozitiv Dispozitiv

Dispozitiv Dispozitiv Dispozitiv

Hub USB
NIVELUL FIZIC
Aspectele electrice i mecanice ale interfeei sunt reglementate foarte precis n
specificaiile de magistral. Semnalele electrice sunt vehiculate sub form de
semnal diferenial (D+ i D-) Semnalul de ceas (clock) este refcut la recepie din
datele transmise. Codificarea utilizat este NRZI cu nserare de bii (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
potenialul de referin (GND). n acest fel pot fi alimentate prin cablul de legtur
dispozitive conectate la magistral

VBUS VBUS
D+ D+

D- D-
GND GND
TRANSFERURI USB
1. transferuri de control (Control Transfers) - sunt folosite pentru configurare i
comand i obligatoriu trebuie s fie suportate de toate perifericele;
2. transferuri cu volum mare de date (Bulk Data Transfers) - permit dispozitivelor s
schimbe cantiti mari de informaie cu gazda pe msur ce magistrala devine
disponibil, (ex.:camere digitale, scannere sau imprimante);
3. 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, cantiti mici de date; datele transferate n acest mod sunt
caractere, coordonate sau semnalizri de evenimente organizate n unul sau mai muli
octei;
4. 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, recepie i utilizare la receptor; acest
tip de transfer este folosit pentru fluxuri de transfer n timp real cum ar fi sistemele
audio.
DISPOZITIVE HUB SI
DISPOZITIVE FUNCTII

Hub-urile sunt folosite pentru a simplifica conectica din punctul de vedere al utilizatorului i
totodat determin un sistem robust i ieftin. Punctele de ataare 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).
Funcia este un dispozitiv USB capabil s transmit informaii de date sau control prin
magistral. n mod obinuit, o funcie este un periferic independent cu un cablu care se
ataeaz la un port al unui hub. Este posibil ca o unitate fizic s includ mai multe
funcii i un hub, dispunnd de un singur cablu de conexiune. Acesta se numete
dispozitiv compus i este vzut de gazd ca un hub cu mai multe dispozitive
nedetaabile. Ca exemplu se poate meniona multifuncionala care conine funciile
imprimant, scanner i fax. Fiecare funcie posed informaie de configurare prin care
sunt descrise pentru gazd facilitile i resursele necesare.
FLUXUL DE DATE USB
DISPOZITIV
GAZD conexiune FIZIC

CLIENT- FUNCIE Nivelul funcie USB


SOFTWARE

SISTEMUL
SOFTWARE DISPOZITV Nivelul dispozitiv USB
USB LOGIC USB

CONTROLER INTERFA Nivelul interfeei


GAZD USB MAGISTR. spre magistrala USB
USB

Flux efectiv de comunicaie


Flux logic de comunicaie
TOPOLOGIA
MAGISTRALEI

GAZD

DISP. RH DISP.
DISP. GAZD
DISP.
Dispozitiv compus LOG.
LOG.
DISP.
H DISP. DISP.
H LOG. LOG.
DISP. DISP. DISP.
DISP. LOG. DISP. LOG.
DISP. DISP.
LOG.
Topologia logic a magistralei USB
Topologia fizica a magistralei USB
CARACTERISTICI
ELECTRICE SI MECANICE
RS timp de cretere timp de descretere
TxD
D+
+ 90% 90%
OE VCRS

TxD RS
D- 10 10
-
Date difereniale% tR tF %

Circuit emitor de magistral


Timpii de cretere i descretere ai semnalului de date
Cma PVC
Cabluri
netorsadate

R-red- VBUS Ecrane


B-black- GND W metalice

R B
G

Cabluri torsadate G-green- D+


W-white- D-

Structura constructiv a cablului USB


Cabluri i conectori USB

Conector USB tip A Conector USB tip B

Conectori USB pentru plci

Cablu prelungitor USB 2.0 Cablu upstream-downstream Cablu USB mini Cablu USB 3.0
PROTOCOL- pachete
Pachetul de semnalizare (Token Packet)
Orice transfer ncepe prin trimiterea de ctre gazd a unui pachet de semnalizare. Un
pachet are 32 de bii mprii n cinci cmpuri.

Cmp Endpoint
SYNC PID CRC
adres

8b 8b 7b 4b 5b

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:
Pachetul de ieire (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.
PROTOCOL- Cmpul SYNC

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. Aceste tranziii permit
tuturor dispozitivelor conectate la USB s-i reseteze ceasul i s se
sincronizeze cu gazda. 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
0 0 0 0 0 0 0 Date
1
Semnal corespunztor
datelor codate NRZI
S0 S1 S2 S3 S4 S5 S6 S7

SYNC
PROTOCOL- Cmpul PID

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.

PID0 PID1 PID2 PID3 PID0 PID1 PID2 PID3

Cmpul PID
PROTOCOL- pachete

Pachetul de date
Informaia propriu-zis este transferat n sistemele USB sub forma unor pachete
de date.

SYNC PID DATA CRC

8b 8b 0 -1023B 16b
Structura pachetului de DATE

Dup cmpurile SYNC i PID urmeaz cmpul de date care este compus dintr-un
numr ntreg de octei, de la 0B la 1023B. Corectitudinea cmpului de date
este asigurat prin cmpul de verificare ciclic CRC de 16b aflat la sfritul
pachetului.
PROTOCOL- pachete
Pachetul handshake

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.

SYNC PID

8b 8b
Structura pachetului handshake
PROTOCOL- funcionare
Adres Endpoint Pachet de semnalizare
SYNC PID CRC
Date Pachet de date
SYNC PID DATA CRC

SYNC PID Pachet handshake

Gazda USB Hub Dispozitiv USB

USB

Fizic

Un dialog simplificat este dat n figur. 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.
USB accept cuplarea i decuplarea de dispozitive n orice moment. Un dispozitiv este cuplat la
un hub iar hub-ul dispune de un indicator de stare la fiecare port. Calculatorul gazd
sesizeaz semnalizarea de la hub i atribuie o adres unic dispozitivului. La decuplare hub-
ul dezactiveaz portul. Sistemul USB este permanent ntr-un proces de inventariere a
magistralei.
Cuplarea unui MC la USB printr-o
interfa specializat
Dac aplicaia necesit cuplarea
FT245BM
unui MC la USB atunci exist Timer
Timer
dou variante, utilizarea unei 3,3V Generator al
Generator al Control
tensiunii de 3,3V Control
interfee specializate aa cum tensiunii de 3,3V FIFO i
FIFO i
Motor interfa
sunt cele din familia FTDI sau Motorserial
serial Buffer de
Buffer de interfa
paralel
Emitor/ USB recepie FIFO paralel
alegerea unui MC care are D+ Emitor/ USB recepie FIFO
128 octei
D0-
Receptor USB D7
Receptor USB 128 octei
interfa USB integrat. D-
Generarea
RD
Circuitele FTDI cel mai cunoscute protocolului USB Buffer de
Buffer de WR
emisie FIFO
sunt cele de conversie USB- emisie FIFO
384 octei TxE
384 octei
RS232 FT8U232AM (USB RxF

1.1) i FT8U232BM (USB PLL pentru refacerea


PLL pentru refacerea
tactului din date
2.0) i cele de conversie USB- tactului din date
Control EEPROM
Control EEPROM
paralel FT8U245AM (USB serial
serial
1.1) i FT8U245BM (USB Oscilator x8
Oscilator
6MHz
x8
2.0). Protocolul USB este 6MHz

ncorporat total n circuit i nu


EEPROM serial
este nevoie de programarea EEPROM serial
formrii sau gestionrii
cadrelor USB.
Cuplarea unui MC la USB printr-o interfa specializat
Emitorul / receptorul USB transmit /recepioneaz datele USB. Motorul serial codific / decodific datele,
asambleaz cadrul USB, insereaz sau verific CRC. Datele sunt convertite n format paralel i sunt transferate
printr-un protocol paralel simplu.
Un generator de tact de 6MHz cu un cristal n exterior genereaz semnalul de tact, care este multiplicat de 8 ori i
constituie tactul intern al circuitului. Un generator de 3,3V alimenteaz blocurile interne dar tensiunea generat
poate fi folosit i n exterior. EEPROM-ul serial memoreaz date privitoare la configuraia circuitului.
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.
Datele n format paralel pot fi citite sau scrise printr-un protocol controlat de semnalele RD, WR, TxE i RxF dar pot
fi transferate automat cu o periodicitate dat de un timer intern, ceea ce face posibile aplicaii n care FTDI nu
este cuplat n partea paralel la un microcontroller ci la un simplu element de execuie sau traductor. Acest mod
de lucru se numete Bit Bang.
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.

D0- RxF
D7
RD
WR

TxE D0-
D7
Cuplarea unui MC la USB printr-o
interfa specializat
Uurina implementrii unei interfee
USB a condus la realizarea unui
proiect prin care a fost realizat o
lucrare de laborator. Proiectul a
constat n realizarea unei plci de
interfa USB paralel cu circuitul
FT245BM. La partea paralel a
circuitului a fost conectat o bar 8
de LED-uri ca ieire i 8
ntreruptoare ca intrare, figura 8.
Sensul datelor a fost stabilit de un
microntreruptor. Circuitul
FT245BM a fost lipit pe partea din
spate a plcii. Studenii au primit
software-ul de lucru i au avut ca
sarcin aprinderea LED-urilor i
citirea ntreruptoarelor.
Cuplarea unui MC la USB printr-o interfa specializat

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 figur se vede simplitatea unei conectri a unui circuit
FT245BM la un microcontroller PIC16F.
Microcontrollere cu USB integrat
Un model de microcontroller cu USB integrat este ATMEL AT90USB care este disponibil n
diverse combinaii de memorie. Interfaa USB are urmtoarele caracteristici:
Viteza este de 1,5 Mbps la USB 1.0 (Low Speed), 12Mbps la USB 1.1 (Full Speed);
Conine 7 endpoint-uri cu dimensiunile de 64 octei (endpoint 0, de control), 256 octei
(endpoint 1) i cte 64 octei celelalte;
Conine o memorie dual port DPRAM de 832 de octei pentru endpoint-uri.
tact

Regulator
Regulator
tensiune 2MHz
tensiune
Prescalare tact
24x Prescalare tact
Interfaa USB
Interfaa USB

D+ DPLL DPRAM
refacere DPRAM
USB
tact USB
D-

VBUS
Microcontrollere cu USB integrat
Transferul de date bazat pe endpoint-uri i pipe-uri este reprezentat n figura de mai jos.
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.

Funcie USB Gazd USB


Pipe
6
Endpoint
Endpoint66 Buffer
Program
client
Endpoint
Endpoint11

Buffer
Endpoint
Endpoint00

Buffer

Pipe 0
Microcontrollere cu USB integrat