Sunteți pe pagina 1din 169

ISBN Interfaare i protocoale

Petre OGRUAN

Interfaare i protocoale la
nivelul fizic i nivelul legturii
de date

Editura Universitii Transilvania din Braov


2015

1
ISBN Interfaare i protocoale

Coperta: fotografia unei plci video, stilizat, autor Petre Ogruan

2
ISBN Interfaare i protocoale

Cuprins
Despre carte ................................................................................................................... 5
1.Noiuni introductive ................................................................................................ 6
1.1.Definiii. Istorie: prima comunicaie cu protocol...................................................... 6
1.2.Interfee paralele i seriale ........................................................................................ 8
1.3. Verificarea corectitudinii datelor transmise cu bit de paritate ............................... 11
1.4.Rolul unui buffer n transferul de date.................................................................... 12
2.Transferul de date .................................................................................................. 14
2.1. Clasificare .............................................................................................................. 14
2.2.Transferul programat .............................................................................................. 15
2.3.Transferul prin ntreruperi....................................................................................... 18
2.4.Transferul prin DMA .............................................................................................. 20
2.5.Programe de comand a transferului....................................................................... 22
2.6.Sistemele de ntreruperi i DMA n microcontrollere............................................. 24
3.Magistrale.................................................................................................................. 27
3.1. Introducere ............................................................................................................. 27
3.2.Magistrale ierarhizate.............................................................................................. 29
3.3. Diagrame de semnal la acces ................................................................................. 31
3.4. Magistrale multiplexate ......................................................................................... 35
3.5.Magistralele PCI i PCI Express............................................................................. 36
4.Interfee paralele .................................................................................................... 41
4.1. Interfee paralele neprogramabile .......................................................................... 41
4.2. Interfaa paralel programabil .............................................................................. 42
4.3.Protocoale de transfer ............................................................................................. 44
4.4.Programarea circuitului de interfa paralel.......................................................... 47
4.5.Exemplu de implementare ...................................................................................... 48
5.Interfee seriale........................................................................................................ 50
5.1.Tactul n transmisiile seriale ................................................................................... 50
5.2. Codarea datelor ...................................................................................................... 51
5.3.Transmisii seriale asincrone i sincrone ................................................................. 55
5.4. Standardul RS232 .................................................................................................. 58
5.5.Circuit de interfa programabil.............................................................................. 61
5.6. Modificarea nivelului de tensiune.......................................................................... 66
6. Conectarea la un calculator pe magistral i la un port paralel .......... 69
6.1. Selectarea unui dispozitiv pe magistral................................................................ 69
6.2.Exemple de conectare pe magistral la microcontrollere ....................................... 72
6.3. Conectarea pe porturi paralele ............................................................................... 76
6.4. Concluzii ................................................................................................................ 80
7.Interfee integrate n microcontrollere ........................................................... 81
7.1. Microcontrollere .................................................................................................... 81
7.2. Unitatea central i memoria ................................................................................. 82
7.3. Timerul................................................................................................................... 84
7.4. Interfa de comunicaii seriale asincrone.............................................................. 85
7.5. Interfa de comunicaii seriale sincrone ............................................................... 86

3
ISBN Interfaare i protocoale

7.6. Interfaa CAN......................................................................................................... 87


7.7. Ceasul de gard ...................................................................................................... 88
7.8. Generator PWM ..................................................................................................... 89
7.9. Convertor analog digital ........................................................................................ 90
7.10. Proiectarea sistemelor cu MC n vederea siguranei n exploatare ...................... 91
7.11. Medii de programare i exemple.......................................................................... 92
8.Interfee pentru reeaua Ethernet .................................................................... 94
8.1. Introducere ............................................................................................................. 94
8.2.Circuitul interfa de reea RTL 8019..................................................................... 97
8.3. Cadru de date la transmisia Ethernet ..................................................................... 99
8.4. Circuitul interfa de reea CS8900A................................................................... 100
8.5. Interfaarea circuitelor CS8900 i RTL 8019 cu microcontrollere ...................... 103
8.6. Web server Site Player......................................................................................... 108
9.Magistrala USB (Universal Serial Bus) ........................................................ 110
9.1.Descriere i caracteristici ...................................................................................... 110
9.2.Arhitectura magistralei.......................................................................................... 111
9.3.Nivelul fizic .......................................................................................................... 112
9.4.Transferul de date prin cadre ................................................................................ 113
9.5. Cuplarea unui microcontroller (MC) la USB printr-o interfa specializat ....... 116
9.6. Microcontrollere cu USB integrat........................................................................ 119
10.Interfee pentru comunicaii wireless ......................................................... 123
10.1.Introducere .......................................................................................................... 123
10.2.Transmisii cu protocoale proprietare .................................................................. 124
10.3.Transmisia datelor prin GPRS ............................................................................ 127
10.4. Bluetooth............................................................................................................ 129
10.5. Zigbee ................................................................................................................ 132
10.6. RFID .................................................................................................................. 133
10.7.Concluzii ............................................................................................................. 138
11. Alte interfee: IEEE1394, IrDA, SATA .................................................... 139
11.1. IEEE 1394.......................................................................................................... 139
11.2.Transferul de date n infrarou IrDA .................................................................. 145
11.3.Interfaa SATA.................................................................................................... 149
12. Paralel ntre stocarea datelor pe suporturi magnetice i optice i
transmisia serial ..................................................................................................... 154
12.1.Introducere .......................................................................................................... 154
12.2. Codarea pe suporturile magnetice...................................................................... 154
12.3. Codarea pe suporturile optice ............................................................................ 159
12.4. Concluzii ............................................................................................................ 162
Bibliografie ................................................................................................................. 164

4
ISBN Interfaare i protocoale

Despre carte
Preocuprile mele n activitatea tiinific i cercetare s-au ndreptat ctre interfaare, un
domeniu care se ocup cu legturile ntre diferite subsisteme ale unui sistem de calcul. Se
pot remarca dou caracteristici speciale ale acestui domeniu, varietatea i dinamismul.
Dac n categoria sistemelor de calcul includem calculatoarele PC existente acum pe
scar larg dar i categoria sistemelor pe baz de calculator (embedded systems) obinem
o varietate enorm a tipurilor de interfee. Orice persoan are n jurul ei acum cel puin
trei sisteme de calcul, un telefon, un card bancar i un notebook sau o tablet.
Dinamismul poate fi remarcat i mai uor, este suficient s ne gndim cum artau acum 5
ani cele trei lucruri din jurul nostru enumerate mai nainte
Privesc cu nostalgie la prima carte pe care am scris-o n acest domeniu, cea de Interfee i
periferice m 1994. Vorbeam acolo de cteva magistrale care n acel moment aveau
tendina de rspndire i de care astzi nu a mai auzit nimeni. A doua carte, Tehnici de
interfaare a aprut n anul 2000 i am alocat acolo un spaiu consistent interfeei paralele
care acum nu mai este inclus n niciun calculator PC. n 2003 am abordat problema
interfeelor specializate n cartea cu acelai nume, iar ultima carte, aprut n 2011 este
una de aplicaii cu microcontrollere n care am abordat interfeele din microcontrollere i
cele care se pot conecta la microcontrollere, alturi de descrierea unor aplicaii.
Am nvat n decursul timpului c exist cteva principii fundamentale de interfaare
care nu se schimb. O carte care s reziste n timp dar s nu plictiseasc trebuie s conin
att prile fundamentale ct i tipurile semnificative de interfee moderne. Aceast carte
este o carte de sintez a cercetrilor mele n domeniu i este mprit in dou pri. Prima
parte cuprinde principiile de interfaare, descrise ntr-un mod simplificat i cu
exemplificate. A doua parte cuprinde cteva exemple din cele mai cunoscute interfee
moderne. Descrierea interfeelor este legat de protocoalele de comunicaii de date.
Cartea se focalizeaz asupra nivelului fizic i asupra protocoalelor care gestioneaz
transferul de date la nivel fizic.
Cartea este destinat n primul rnd cercettorilor n domeniul sistemelor nglobate care
pot gsi aici idei pentru a asigura conectivitatea cea mai potrivit unei aplicaii. Cartea
poate fi utilizat de specialiti n domenii conexe pentru a-i face o imagine global
asupra interfarii. i nu n ultimul rnd cartea poate fi folosit de studenii de la
programele de studiu n domeniul electric pentru a face cunotin cu un domeniu extrem
de vast i dinamic. Pentru acetia cartea a fost rescris ntr-un format special. Materialul a
fost mprit n 14 module de nvare i a fost completat cu 12 lucrri de laborator.
Cteva mici filme ataate fac acest material mai atractiv.
Petre Ogruan, Braov, decembrie 2014

5
ISBN Interfaare i protocoale

1.Noiuni introductive

1.1.Definiii. Istorie: prima comunicaie cu protocol.


n domeniul calculatoarelor interfaa este punctul de ntlnire a unitii centrale cu
dispozitivele periferice cu scopul transferului de date. Interfeele pot fi hardware sau
software, iar n cazul interfeelor software situarea punctului de ntlnire este ntre dou
programe.
Interfeele pot fi bidirecionale n care datele circul n ambele direcii (ex. interfaa cu
hard discul) i unidirecionale n care datele circul ntr-o singur direcie (ex. interfaa cu
mouse-ul). Interfeele pot fi punct la punct ceea ce nseamn c pot fi conectate pe o linie
doar un sistem gazd i un periferic (ex. interfaa PS2 cu tastatura) sau multipunct n care
la un sistem gazd se pot lega mai multe periferice (ex. USB).
Pentru ca dou sisteme de calcul s comunice ntre ele este nevoie ca formatul mesajului
s fie bine stabilit ca s fie recunoscut de ambele sisteme. Protocolul conine un set de
reguli care stabilesc structura mesajului i asigur sincronizarea comunicaiei. De regul
protocoalele sunt standardizate de autoriti n domeniul respectiv.
Echipamentul periferic este un dispozitiv conectat la un sistem de calcul gazd care
extinde funcionalitatea sistemului gazd dar nu face parte din nucleul de calcul.
Echipamentul periferic este deseori, dar nu ntotdeauna dependent de sistemul gazd.
Primul sistem de comunicaii cu protocol a fost telegraful hidraulic al lui Aeneas,
construit n secolul 4 BC, figura 1.1:

Fig. 1.1. Telegraful hidraulic al lui Aeneas (sursa


http://en.wikipedia.org/wiki/Hydraulic_telegraph)

6
ISBN Interfaare i protocoale

Recipientul se umple cu ap, peste care se aeaz un plutitor care are fixat o tij
vertical. Pe tij exist gradaii cu nsemnri relevante pentru purtarea rzboiului (vreau
cavalerie, artilerie, etc.). Dac s-a dorit nceperea unei transmisiuni, soldatul operator
ridica tora. Operatorul de le recepie, observnd cererea, indica c este pregtit pentru
recepie ridicnd i el tora i rmnea foarte atent la punctul de transmisie. Operatorul de
la transmisie cobora tora de semnalizare i deschidea dopul de pe recipient, ceea ce fcea
(sincron) i cel de la recepie. Apa ncepea s coboare identic n ambele recipiente cu
vitez egal. La nivelul superior al vasului apreau rnd pe rnd inscripiile mesaj de pe
tij. n momentul n care aprea cea dorit a fi transmis, operatorul ridica tora, i punea
dopul. La fel fcea i cel de la recepie. n acest moment putea citi i el mesajul. Pentru
alt mesaj, recipientele trebuiau reumplute. Se pare c n istorie acesta a fost primul sistem
sincron.
ntr-o schem bloc n care este figurat un sistem de calcul, figura 1.2. se pot observa
interfeele, ca puncte de ntlnire a datelor de intrare i ieire, care pot fi analogice sau
digitale.

Sistem de calcul Linii de ieire


Linii de intrare,
analogice sau
digitale
Grup de linii de
ieire

Bloc (grup) de
linii de intrare Interfee
Interfee
Echipament
periferic

Acces
bidirecional la
Linii
magistral
bidirecionale

Magistral

Fig. 1.2. Interfee marcate pe o schem bloc

Mrimile de intrare i de ieire pot fi analogice sau digitale. Un semnal analogic are o
variaie continu n timp. Exemple: temperatura, umiditatea, iluminarea etc. Un semnal

7
ISBN Interfaare i protocoale

digital are o variaie discret n timp, el poate lua doar 2 valori. Exemplu: comanda dat
de un ntreruptor ctre un bec.
Sistemul de calcul proceseaz digital, prin urmare exist interfee de conversie a
semnalelor analogice n semnale digitale numite convertoare analog digitale i circuite de
conversie invers numite convertoare digital analogice. Exemplu: placa de sunet a unui
calculator conine un convertor analog digital la intrarea de la microfon i un convertor
digital analogic la ieirea de boxe. Aceste convertoare sunt importante pentru c n natur
predomin mrimile analogice i pentru ca acestea s fie msurate i prelucrate cu
calculatorul digital este nevoie de conversia analog digital i digital analogic.
Dac la portul cu linii bidirecionale a sistemului de calcul din figura 1.2 se conecteaz un
echipament periferic EP acesta conine o interfa de conectare care trebuie s fie
compatibil cu cea a sistemului gazd.

1.2.Interfee paralele i seriale


Un proces de comunicaii de date necesit cel puin 5 elemente, figura 1.3:
Transmitor;
Mesaj;
Interfa binar (digital);
Canal de comunicaie;
Receptor.

Canal de comunicaie

Interfa binar Interfa binar


(digital) (digital)

Mesaj
Reacie- mesaj de
Transmitor Receptor
confirmare pe calea de
retur

Figura 1.3. Procesul de comunicaii de date


Pentru transmisia unui mesaj, fiecrui grup de bii trebuie s i corespund un caracter
(liter, cifr, semn special). Cel mai cunoscut este codul ASCII (American Standard Code
for Information Interchange).

8
ISBN Interfaare i protocoale

La transferul paralel informaia este transmis pe mai multe linii (8, 16, 32, 64, 128 ...),
cu un numr de bii transmis la un impuls de tact egal cu numrul de linii, cuvintele fiind
transmise succesiv, figura 1.4.

Emitor Receptor
D0
D1
D2
D3
D4
D5
D6
D7
TACT

Figura 1.4. Schema bloc general a interfeei paralele pe 8 bii

Diagrama de timp comprimat a transferului este dat n figura 1.5. Semnalul de tact are
rolul de stabili momentul exact al citirii datelor, pentru a evita situaiile n care datele sunt
citite cnd nc nu sunt stabile pe linie. n anumite interfee acest semnal poate lipsi dar
viteza de transfer este mai mic n acest caz.

D0-D7

t
Perioada de timp n
care se transmit 8 Timp de
bii tranziie

TACT
t
Momentul citirii datelor

Figura 1.5. Diagrama de timp a transferului

n aceast carte vor fi prezentate transferurile paralele i exemple de protocoale prin


porturile paralele de I/O de uz general, dar i alte cteva aplicaii cum ar fi de exemplu
circuitul de conversie USB- paralel FTDI. Magistralele i interfeele paralele sunt n
scdere de pia, fiind nlocuite de cele seriale, de aceea i ponderea lor n aceast carte
este mai sczut.

9
ISBN Interfaare i protocoale

La transferul serial informaia este transmis bit dup bit, pe mai puine fire (minimum 2
fire, dintre care unul de referin, masa electric), figura 1.6. Pentru transmisia datelor
acestea trebuie codificate. n carte vor vor fi descrise codificrile NRZ, Manchester,
8B10B etc. Preul mic al interfeelor seriale au dus la rspndirea acestor interfee n
majoritatea aplicaiilor.

Emitor Receptor
DATE

Figura 1.6. Schema bloc general a interfeei seriale pe un fir


(linia de mas nu este considerat)

n perioada actual numrul, viteza i calitatea interfeelor seriale cresc, cucerind din ce
n ce mai multe segmente de pia.
Tactul n transmisiile seriale are o importan major. Dac datele seriale vin la receptor
pe un singur fir receptorul le poate citi / eantiona cu o anumit frecven i s obin
datele recepionate ca n figura 1.7:

Linia de transmisie
.

1 1 0 1 1 1 0 0 1 0 0 0 1 1 0

0 1 1 0 0

Figura 1.7. importana eantionrii corecte

Dac datele sunt eantionate cu o anumit frecven (pe fond rou) se obine un anumit
ir de date iar dac datele sunt eantionate cu alt frecven (pe fond albastru) se obine
un ir de date diferit. Acest lucru arat importana ca datele s fie recepionate cu acelai

10
ISBN Interfaare i protocoale

tact cu care au fost trimise. Este nevoie ca tactul de transmisie s fie cunoscut de
receptor.

1.3. Verificarea corectitudinii datelor transmise cu bit de paritate


Teorema a 2-a a lui Shannon din teoria transmiterii informaiei pentru canale afectate de
perturbaii afirm c: Pentru o surs de informaie cu debitul de R bps (bii pe secund)
i un canal de capacitatea C bps, dac R<C exist un cod avnd cuvintele de lungime n
astfel nct probabilitatea de eroare la decodare este orict de mic. La un cuvnt binar
de forma A2=a7a6a5a4a3a2a1a0 i se ataeaz la emitorul de informaie un bit numit de
paritate ap care poate fi egal cu 1 (paritate par) dac numrul de bii din cuvnt este par
i 0 dac numrul de bii din cuvnt este impar (sau invers, cu condiia ca la emitor i la
receptor convenia s fie aceeai). Controlul de paritate poate detecta o eroare dar nu o
poate corecta. Se poate solicita o repetare a mesajului prin linia de retur. Controlul de
paritate se folosete la transmisii fr perturbaii majore, de exemplu la debite mari de
informaii pe distane mici (lucrul procesorului cu memoria de exemplu) sau distane mari
i debite mici (transmisia serial RS232).
La receptor se genereaz un bit de paritate dup acelai algoritm i se compar cu bitul de
paritate transmis. Dac aceti bii sunt egali transmisia a fost corect, dac nu transmisia a
fost eronat. Schema bloc a transferului cu verificarea bitului de paritate este dat n
figura 1.8.

Canal de comunicaie

Mesaj (A2) Extragere bit C


Ataare O
de paritate
M Egal, mesaj OK
mesaj P
Logica de A
generare a R
Logica de A
bitului de
generare a T
paritate diferit, mesajul
bitului de O se respinge
R

Figura 1.8. Schema bloc a transferului cu verificarea bitului de paritate

11
ISBN Interfaare i protocoale

1.4.Rolul unui buffer n transferul de date


Viteza unui sistem de calcul depinde de 2 componente:
1. viteza cu care procesorul execut operaiile;
2. viteza cu care circul datele n sistem (viteza de I/O, viteza de acces la memorie).
Dac procesorul este forat s ramn inactiv perioade lungi de timp deoarece sistemul de
I/O nu poate transfera datele nu i sunt furnizate, sistemul este limitat I/O. Ideal este ca
cele dou viteze sa fie comparabile. n figura 1.9 se poate vedea o diagram a fluxului de
date.

C D
Memorii de Memorii RAM Memorie rapid
mas 2 3 (cache) 4
B E

Dispozitive de Procesor
I/O 5
6

A Mediul
extern

Figura 1.9. Fluxul de date ntr-un sistem de calcul

Pentru mrirea eficienei se iau anumite msuri, ca de exemplu:


1. Pentru a elibera procesorul de sarcina supravegherii transferului, pe calea C se
poate face transfer DMA;
2. Transferul pe calea A este lent cnd schimbul de date cade n sarcina operatorului.
Lucrul n ntreruperi (cu tastatura, cu imprimanta, cu reeaua) duce la optimizarea
ncrcrii sistemului;
4. Eficiena este maxim cnd capacitatea blocurilor 1,2,3 de a furniza date este
egal cu capacitatea blocului 5 de a le prelucra.
5. Memoria rapid conine date i secvene de program. Lucrul ntre blocurile 4 si 5
este foarte rapid. Dar exist momente n care este nevoie de informaia din
memoria de baz (mai ales cnd apar instruciuni de salt). n aceste momente este
nevoie s se schimbe ntregul coninut al memoriei rapide.
Un buffer de date situat ntre procesor i echipamentul periferic are un rol important n
mrirea eficienei transferului de date, pentru c permite procesorului s fie liber de

12
ISBN Interfaare i protocoale

sarcina de a transfera date perioade mai lungi de timp. Principiul transferului este dat n
figura 1.10:

Procesor Buffer de Echipament


date periferic
(EP)

OBF BUSY

Procesor Buffer de Echipament


date periferic
(EP)

IBF BUSY

Figura 1.10. Rolul unui buffer de date n eficiena transferului

n cazul unui transfer de date de la procesor la EP (sus) datele se ncarc rapid n buffer
(la viteza procesorului) pn la umplerea bufferului, semnalizat cu semnalul OBF
(Output Buffer Full). Datele sunt transferate lent la EP, primirea lor fiind acceptat dac
semnalul BUSY este inactiv. Invers, datele sunt ncrcate n buffer pn cnd acesta se
umple, semnaliznd cu BUSY. Dup umplerea lent a bufferului procesorul este anunat
cu semnalul IBF (Input Buffer Full) i preia rapid datele. n anumite aplicaii bufferul
trebuie s asigure un transfer de date cu viteza constant cu EP, cum este de exemplu la
scrierea pe medii optice.
Diversitatea de interfee i protocoale este foarte mare. Apar multe tipuri de interfee noi
dintre care unele se rspndesc iar altele dispar n timp. Cartea de Interfaare i
Protocoale se focalizeaz pe interfee i protocoale la nivel fizic, apropiat de
microprocesorul sau microcontrollerul gazd. Cartea conine dou pri, prima conine
noiunile de baz ale conectrii pe magistral, pe un port paralel i la o interfa asincron
simpl. A doua parte prezint sumar cteva tipuri de interfee i protocoalele specifice.

13
ISBN Interfaare i protocoale

2.Transferul de date

2.1. Clasificare
Transferul de date studiat n acest capitol este cel care are loc ntre un dispozitiv de I/O i
unitatea central. Transferul poate fi:
1. Programat;
2. Prin ntreruperi;
3. Prin acces direct la memorie, DMA (Direct Memory Access).
Software-ul care controleaz transferul de date se numete driver soft. Funciile acestui
software sunt:
1. Iniializarea dispozitivului de I/O;
2. Iniierea transferului de date;
3. Transferul de date;
4. Terminarea transferului i raportarea rezultatelor transferului.
Iniializarea dispozitivului de I/O se face la punerea sub tensiune a dispozitivului sau la
un RESET generat de unitatea central. S ne aducem aminte cum face o imprimant cu
jet la pornire- un set de operaii de iniializare i calibrare, un hard disc- testul de
integritate a suportului, care se manifest vizibil sau prin sunete caracteristice.
Comanda software a unui dispozitiv de intrare ieire este realizat de:
1. Driver-ul software din calculatorul gazd;
2. Programul executat de microprocesorul sau microcontrollerul dispozitivului de
I/O, dac acesta dispune de o unitate central.
mprirea sarcinilor ntre driver i programul din dispozitivul de I/O depinde de fiecare
aplicaie, tendina actual fiind de preluare a ct mai multe sarcini de ctre dispozitivul de
I/O pentru eliberarea timpului consumat de calculatorul gazd.
n cazul unui sistem de calcul din familia x86 transferul poate fi neles pornind de la
schema bloc din figura 2.1. Transferurile efectuate de procesor prin program pot fi:
A.Citire din memorie, MOV AL, [BX]
Pe magistrala de adrese este pus adresa de memorie din registrul BX, care identific o
locaie de memorie. Pe magistrala de comenzi este activat semnalul MEMR. Coninutul
locaiei de memorie adresat este pus pe magistrala de date i intr n registrul AL al
microprocesorului (linii cu rou).
B.Scriere n memorie, MOV [BX], AL

14
ISBN Interfaare i protocoale

Pe magistrala de adrese este pus adresa de memorie din registrul BX, care identific o
locaie de memorie. Pe magistrala de comenzi este activat semnalul MEMW. Coninutul
registrului AL este pus pe magistrala de date i este salvat n locaia adresat.
C.Citire de la un dispozitiv de I/O, IN AL, DX
Pe magistrala de adrese este pus adresa dispozitivului din registrul DX, care identific
dispozitivul. Pe magistrala de comenzi este activat semnalul IOR. Coninutul portului de
intrare este pus pe magistrala de date i intr n registrul AL al microprocesorului (linii cu
albastru).
D.Scriere la un dispozitiv de I/O, OUT DX, AL
Pe magistrala de adrese este pus adresa dispozitivului din registrul DX, care identific
dispozitivul. Pe magistrala de comenzi este activat semnalul IOW. Coninutul registrului
AL al microprocesorului este pus pe magistrala de date i este trimis la portul de ieire.

Master Slave Slave


Procesor Memorie Dispozitiv
I/O

Magistrala date

Magistrala adrese

Magistrala de comenzi MEMR, MEMW, IOR, IOW

Figura 2.1. Schema bloc principial a unui sistem x86

2.2.Transferul programat
n acest mod de transfer toate operaiile de I/O sunt sub controlul programului. Transferul
programat are dou variante, direct i prin interogare (polling).
a.Transferul programat direct
n transferul programat direct calculatorul gazd citete sau scrie un port de intrare / ieire
n mod direct. De exemplu secvena de program scris n limbajul de asamblare x86:
MOV DX, adresa port se ncarc n DX adresa portului de I/O

15
ISBN Interfaare i protocoale

IN AL, DX se citesc date de la portul adresat


MOV [BX], AL se salveaz datele n memorie, la adresa specificat
de BX
MOV AL, date se ncarc date n acumulator
OUT DX,AL datele se trimit la portul cu adresa specificat n DX
Secvena anterioar citete date de la un port cu adresa specificat n registrul DX, le
salveaz n memorie i scrie apoi date n acelai port.

b.Transferul programat prin interogare


Fiecrui dispozitiv de I/O i se atribuie un bit (fanion) care indic faptul c acesta este gata
pentru transfer. Presupunem 8 dispozitive de I/O care au ataate 8 porturi de date i un
port pentru citirea fanioanelor, structura fiind dat n figura 2.2.

Port0 I/O1 I/O2 I/O3 I/O4 ......


Port1
Date I/O1
Port2 Date I/O2
Port3 Date I/O3
Port4 Date I/O4
Calculator gazd Dispozitive I/O

Figura 2.2. Transferul prin interogare

Fanioanele sunt interogate ciclic i se servete acel periferic care solicit un transfer de
date prin schimbarea strii fanionului. Dac de exemplu cererea se face cu nivel logic 1 al
fanionului, un exemplu de program este:
Start: MOV DX, adresa Port0
IN AL,DX se citesc fanioanele
JN adresa1 la adresa1 este secvena de program de transfer cu I/O1
RCL AL,01 deplasare AL la stnga
JN adesa2 la adresa2 este secvena de program de transfer cu I/O2

JMP start

16
ISBN Interfaare i protocoale

Se citete portul care conine fanioanele, apoi se verific primul bit. Dac cel mai
semnificativ bit este 1 numrul binar din acumulator este negativ i dispozitivul solicit
un transfer. Dup testarea tuturor celor 8 fanioane bucla de citire i testare este reluat.
Secvenele de program de transfer pentru fiecare dispozitiv sunt secvene de transfer
programat direct, aa cum au fost descrise anterior. Desigur c acest program este unul
principial, care trebuie completat i extins pentru a deveni un program funcional.
Prioritatea dispozitivelor de I/O care sunt servite poate fi stabilit prin poziia fanionului
corespunztor n octetul de fanioane. Dac mai multe dispozitive solicit un transfer n
acelai timp, servirea se face n ordinea poziiei fanioanelor. Aceast ordine se poate
modifica software.
Dac un dispozitiv de I/O este mai rapid dect celelalte fanionul lui poate fi testat mai des
n bucla de citire i testare, caz n care citirea portului cu fanioane trebuie realizat nainte
de testarea fiecrui fanion.
Prin software se poate masca un dispozitiv de I/O prin excluderea din bucla de testare a
fanionului.
Pentru a evita o testare continu, printr-o logic combinaional se poate semnaliza cnd
un dispozitiv de I/O are nevoie de un transfer de date, printr-un SAU logic realizat hard
ntre cele 8 fanioane i care s fie citit de procesor, figura 2.3.
I/O1 I/O2 I/O3 I/O4 I/O5 I/O6 I/O7 I/O8

Cerere
transfer

Figura 2.2. Semnalizarea unei cereri de transfer

Acest mod de lucru este foarte des folosit atunci cnd se combin transferul programat cu
cel prin ntreruperi. n acest caz semnalizarea unei cereri de transfer se face printr-o
ntrerupere, dup care unitatea central identific dispozitivul care are nevoie de transfer
prin interogare.
Dac exist mai mult de 8 dispozitive de I/O care pot solicita un transfer sau sunt mai
puine linii n portul de citire a fanioanelor, fanioanle pot fi codificate, procesorul citind
astfel codul binar al dispozitivului care solicit un transfer.

17
ISBN Interfaare i protocoale

Avantajele transferului programat sunt simplitatea hardware i software i faptul c


exist controlul strict al timpului n care se face un transfer de date.
Dezavantajele transferului programat sunt:
1. Sistemul se ocup n cea mai mare parte a timpului cu dispozitivele de I/O, devenind
dedicat acestei sarcini;

2.3.Transferul prin ntreruperi


Transferul prin ntreruperi are avantajul c gestioneaz mai bine timpul procesorului sau
microcontrollerului. Procesorul ruleaz un program care este ntrerupt la apariia unei
cereri de transfer i este reluat dup ce transferul s-a terminat. Un alt avantaj este
servirea mai rapid pentru c programul principal se poate ntrerupe n orice moment.
Transferul efectiv dureaz la fel de mult ca i prin transfer programat.
Familiile de procesoare au structuri diferite ale sistemului de ntreruperi. Familia de
procesoare x86 dispune de protocolul de dialog din figura 2.4.
Dispozitivul care cere o ntrerupere va lansa un semnal INT. Procesorul verific dac
ntreruperile sunt validate cu semnalul INTE. Dac ntreruperile nu sunt validate cererea
de ntrerupere se ignor. Dac sunt validate atunci termin instruciunea n curs i
salveaz n stiv coninutul registrului PC (Program Counter) i a registrului de stare.
Procesorul genereaz semnalul de acceptare a ntreruperii INTA i ateapt ca
dispozitivul de I/O s pun pe magistrala de date adresa de salt la care se afl rutina de
servire a ntreruperii.
Activarea i dezactivarea sistemului de ntreruperi se face prin program cu instruciunile
STI i CLI. Dezactivarea sistemului de ntreruperi se face automat la RESET-ul
sistemului sau dup semnalul de acceptare a unei cereri de ntrerupere INTA.
Procesor Dispozitiv I/O
INT
INTE

Adresa de salt
INTA
Magistrala
date

Figura 2.4. Protocolul de cerere i acceptare a ntreruperii

18
ISBN Interfaare i protocoale

Pentru gestionarea mai multor ntreruperi se poate folosi un controller specializat, aa


cum este de exemplu Intel 8259, care poate gestiona 8 nivele de ntrerupere dar care
permite i cascadarea pentru mai mult de 8 nivele, figura 2.5.

Procesor I8259 Dispozitiv I/O


INT 0 IRQi
INTA 1
2
I8259
0

Magistrala date

Magistrala adrese

Magistrala de comenzi i stri (MEMR, MEMW, IOR, IOW)

Figura 2.5. Sistemul de ntreruperi gestionat de controllerul I8259


Dispozitivul de I/O cere o ntrerupere IRQi. I8259 analizeaz cererea i dac nu este
mascat i nu este n curs de servire o ntrerupere mai prioritar cere o ntrerupere INT
ctre procesor. Procesorul analizeaz cererea i dac o accept rspunde cu INTA ctre
I8259. Controllerul I8259 pune pe magistrala de date adresa de salt la rutina de servire a
ntreruperii (traseul cu sgei roii). n rutina de servire a ntreruperii datele se transfer
ntre dispozitivul de I/O i procesor (traseul cu sgei albastre).
Punerea adresei de salt de ctre dispozitivul de I/O avea dezavantajul c limita
portabilitatea dispozitivelor de I/O, acestea putnd fi funcionale pe anumite sisteme i
nefuncionale pe altele. Utilizarea controllerului I8259 care are sarcina de a pune adresele
de salt rezolv aceast problem.
Prioritatea cererilor de ntrerupere se poate programa. Implicit IRQ0 este cel mai
prioritar. Se poate programa mascarea unor cereri de ntrerupere cu un registru de mti.
Controllerele de ntrerupere pot fi cascadate, n acest caz numrul de linii de ntrerupere
poate crete. Dac se cupleaz dou controllere cascadate, numrul liniilor de ntrerupere
disponibile devine 15.
Din punct de vedere software diferena ntre numrul de linii de adres i de date la un
procesor implic dificulti la transmisia unei adrese de salt pe magistrala de date. n
general salturile se fac ntr-o zon redus de memorie, numit tabel al vectorilor de

19
ISBN Interfaare i protocoale

ntrerupere. n acest tabel nu se afl cte o rutin de servire pentru fiecare nivel de
ntrerupere ci cte o instruciune de salt la o astfel de rutin, din cauza lipsei de spaiu.
Sarcinile controllerului I8259 i datele cu care se programeaz sunt date n urmtorul
tabel:

Sarcini I8259 Programare


Generare protocol de cerere i -
acceptare ntrerupere
Gestionare prioriti registru de definire a prioritilor
Mascare selectiv registru de mti
Punere adrese de salt pe magistrala de adrese de salt
date

2.4.Transferul prin DMA


La transferul programat i la cel prin ntreruperi datele circul ntre dispozitivul de I/O,
acumulatorul procesorului i memorie. Dac dispozitivele de I/O sunt rapide, cu o vitez
comparabil cu cea a procesorului transferul se poate face prin DMA (Direct Memory
Access). Acesta este cel mai rapid mod de transfer de date i se poate face doar prin
intermediul unui controller specializat, figura 2.6.

Procesor Dispozitiv I/O


HOLD

HOLDA

Magistrala
date

Figura 2.6. Protocolul de cerere i acceptare de transfer DMA

20
ISBN Interfaare i protocoale

Dispozitivul de intrare ieire solicit un transfer DMA prin semnalul HOLD solicitnd ca
procesorul s-i suspende activitatea prin trecerea magistralelor de date n nalt
impedan. Cnd procesorul accept aceast cerere genereaz un semnal de HOLDA
(HOLD Acknowledgement) i trece magistralele n nalt impedan. Deoarece n acest
caz nu mai exist un dispozitiv master pe care s pun adrese i semnale de comand pe
magistral, acest mod de transfer are nevoie de un controller specializat care s preia
rolul de master.
O schem bloc a transferului DMA n familia x86 gestionat de controllerul Intel 8257
este dat n figura 2.7.
La primirea unei cereri de transfer DMA (numit DRQ) de la dispozitivul de I/O pe unul
dintre cele 4 canale ale I8257, controllerul analizeaz cererea. Dac cererea nu este
mascat i dac nu este n curs de de execuie un transfer DMA, controllerul cere
procesorului suspendarea activitii cu semnalul HOLD. n momentul acceptrii cererii
procesorul activeaz semnalul HOLDA i controllerul rspunde dispozitivului I/O c
cererea a fost acceptat cu semnalul HOLDA.

Procesor I8257 Dispozitiv Memorie


DRQ I/O
0
1 DACK
HOLD
HOLDA 2 RDY
3
I8257
0
..

Magistrala date

Magistrala adrese

Magistrala de comenzi i stri (MEMR, MEMW, IOR, IOW)

Figura 2.7. Sistemul DMA gestionat de controllerul I8257


Dup acceptarea cererii datele se transfer ntre dispozitivul de I/O i memorie (linia
neagr), fr a mai trece prin procesor. Controllerul DMA devine master pe magistral i
pune adresele de memorie, precum i semnalele de comand MEMR, MEMW, IOR,
IOW) (linii negre). Atunci cnd procesorul este master pe magistral, controllerul DMA

21
ISBN Interfaare i protocoale

este slave i poate fi adresat n vederea programrii lui. n acest caz procesorul pune
adrese i comenzi (linii roii). Viteza dispozitivului de I/O este diferit de a memoriei
(mai mic) i sincronizarea datelor transferate se face cu semnalul RDY. Arbitrarea
magistralelor se face doar la primul cuvnt, transferul avnd loc n continuare n salv.
Prioritatea cererilor de DMA se poate programa. Implicit DRQ0 este cel mai prioritar.
Se poate programa mascarea unor cereri de DMA cu un registru de mti. Controllerele
de DMA pot fi cascadate, n acest caz numrul de linii poate crete. Dac se cupleaz
dou controllere cascadate, numrul liniilor disponibile devine 7.
Sarcinile controllerului I8257 i datele cu care se programeaz sunt date n urmtorul
tabel:
Sarcini I8257 Programare
Generare protocol de cerere i -
acceptare DMA
Gestionare prioriti registru de definire a prioritilor
Mascare selectiv registru de mti
Punere adrese pe magistrala de adrese Adresa de nceput a zonei de memorie
i comenzi pe magistrala de comenzi i numrul de cuvinte de transferat

2.5.Programe de comand a transferului


n principiu, oricare ar fi metoda de transfer, programat, prin ntreruperi sau prin DMA,
programul care comand transferul trebuie s aib trei pri:
1. Iniializare transfer date
2. Transfer date
3. Terminarea transferului de date
Transferul de date programat
1.n segmental de iniializare se scrie ntr-un contor lungimea zonei de memorie din care
se citesc, sau n care se scriu date, fixeaz adresa de nceput i pornete lucrul cu
dispozitivul de I/O.
2.n segmental de transfer de date ncepe scrierea n memorie sau citirea din memorie i
trimiterea la dispozitivul de I/O. Se decrementeaz contorul de cuvinte transferate, se
incrementeaz adresa de memorie i se verific dac citirea / scrierea s-a fcut corect (cu
bit de paritate sau CRC). Dac s-a detectat o eroare se reia de la ultimul cuvnt corect sau
se abandoneaz transferul. Se verific dac s-au scris /citit toate datele printr-o metod
care ine cont de natura datelor (un caracter special la codificarea ASCII etc. )

22
ISBN Interfaare i protocoale

3.Dac s-a ntlnit caracterul de terminare se comunic raportul transferului- numr de


cuvinte transferate, existena unor erori. La sfrit se comand oprirea transferului.
Transferul prin ntreruperi
1.n plus fa de operaiile de la transferul programat se iniializeaz controllerul de
ntreruperi i se valideaz ntreruperile. La sfritul etapei pornete transferul.
2.ncepe cnd perifericul genereaz o cerere de ntrerupere. Se salveaz n stiv datele
programului principal i se trece la servirea ntreruperii. Transferul are loc ca i la
transferul programat.
3.Dup comunicarea raportului se reiau din stiv datele programului ntrerupt.
Transferul DMA
1.n plus fa de operaiile de la transferul programat se iniializeaz controllerul DMA.
La sfritul etapei pornete transferul.
2.De transfer se ocup controllerul DMA.
3.Printr-o cerere de ntrerupere controllerul DMA anun c a terminat transferul. Se
citete starea dispozitivului de I/O, dac transferul a avut erori i numrul de cuvinte
transferate.
Un program de inventariere a resurselor unui PC (http://www.sysinfolab.com/ ) arat
zona de memorie alocat unui dispozitiv de I/O, n figura 2.8. n cazul interfeei SATA.
Alte informaii arat numrul liniei de ntrerupere i modul DMA de lucru cu hard discul
prin interfaa SATA.

Figura 2.8.Configurarea unui hard disc cu interfa SATA i alocarea zonei de memorie,
nivele de ntrerupere i DMA

23
ISBN Interfaare i protocoale

2.6.Sistemele de ntreruperi i DMA n microcontrollere


La un microcontroller sursele de ntrerupere pot fi externe (semnale cuplate la pini),
figura 2.9. sau por fi interne, de la interfeele integrate n microcontroller, cum sunt
convertorul analog digital, timerul sau interfaa serial. Cererile de ntrerupere pot fi
mascate cu un registru de mti programat anterior n microcontroller de programul
utilizatorului. O cerere nemascat va fi transmis unitii centrale care ntrerupe
programul curent i face un salt la o adres dintr-un tabel de adrese, modul particular de
salt fiind specific diverselor familii de microcontrollere.

Surse de Registru de
pin ntrerupere mti
Cerere de
0
ntrerupere
pin
0 ctre unitatea
0 central
1
Module 0
interne Registru al
Registru de cererilor de
fanioane ntrerupere
Latch
Latch
Latch
Latch
Latch

Figura 2.9. Sistemul de ntreruperi la microcontrollere

Activarea unei ntreruperi are ca efect i poziionarea unui fanion n registrul de fanioane,
permind microcontrollerului s identifice sursa ntreruperii. Registrul de fanioane este
citit de programul utilizator prin transfer programat i prin interogare se determin sursa
ntreruperii. Acesta este modul combinat ntre transferul programat prin interogare i
transferul prin ntreruperi.
Este posibil utilizarea exclusiv a transferului prin interogare prin interogarea n bucl a
surselor de ntrerupere n programul principal. n cazul unei aplicaii de termometru

24
ISBN Interfaare i protocoale

electronic citirea senzorului de temperatur se poate face prin interogare, periodic. Dac
cumva programul principal dureaz mai mult, de exemplu pentru c s-a detectat apsarea
unui buton prin care se modific programarea termometrului, temperatura este citit mai
trziu, ceea ce nu afecteaz utilizatorul. Dac ntr-un alt exemplu se citete starea unui
buton prin interogare, trebuie ca programul principal n nicio situaie s nu depeasc
timpul de apsare scurt a butonului de ctre utilizator, deci trebuie fcute unele calcule.
Dac se utilizeaz sistemul de ntreruperi nu trebuie fcut niciun calcul.
Transferul DMA este implementat n microcontrollerele mai complexe, care trebuie s
asigure viteze mari de transfer i s prelucreze cantiti mari de date. O descriere sumar
a avantajelor transferului DMA la microcontrollerele din familia STM32, cu schema bloc
din figura 2.10.

IBUS
CORTEX FLASH
M3

Controller SRAM
DMA

Interfee
interne

Magistrale
interne

Figura 2.10. Schema bloc a familiei de microcontrollere STM32

Controllerul DMA are 7 canale, iar la modelele mai complexe exist 2 controllere DMA
cu 12 canale independente. Transferul DMA se poate executa ntre memorie i
dispozitivele de I/O dar i ntre memorie i memorie sau ntre dou dispozitive de I/O.
O particularitate a transferului DMA este c dialogul de acces la magistral (cerere i
acceptare de DMA, programarea controllerului DMA cu adresele de transfer) se face n
acelai timp cu transferul propriu zis, deci la terminarea unui transfer DMA poate ncepe
imediat altul.

25
ISBN Interfaare i protocoale

Programarea unui canal DMA este simpl i se face cu 4 regitri, unul conine adrese de
memorie, unul adrese pentru dispozitivul de I/O, unul numrul de cuvinte de transferat i
unul date de configurare.
O alt particularitate este faptul c n timpul transferului unitatea central poate lucra. Un
ciclu de magistral are 8 tacte, din care un transfer DMA ocup doar 5. n timpul rmas
liber unitatea central poate prelua instruciuni din memoria FLASH (transferul se face pe
o magistral special IBUS) i le poate executa.
n figura 2.11. se arat c un transfer de 32 de bii prin DMA (stnga) dureaz 214s i
un transfer programat (dreapta) dureaz 544s.

Figura 2.11. Comparaie ntre transferul DMA i programat (sursa:


http://www.embedds.com/using-direct-memory-access-dma-in-stm23-projects/)

26
ISBN Interfaare i protocoale

3.Magistrale

3.1. Introducere
Legtura ntre procesor i EP (Echipamente Periferice) se realizeaz prin canale I/O (de
intrare/ieire) prin intermediul magistralei. Evoluia n timp a canalelor I/O este n acelai
timp o evoluie a creterii complexitii i performanelor. Pot fi enumerate urmtoarele
etape:
1. CPU controleaz direct EP;
2. Este adugat un modul I/O (o interfa serial sau paralel, programabile). CPU
comand EP prin transfer programat (direct sau prin interogare);
3. Aceeai configuraie ca la 2, dar transferul are loc prin ntreruperi;
4. Modulul I/O are acces direct la memorie prin DMA. Modulul poate muta
informaia direct n memorie, accesul CPU fiind necesar doar la nceputul i
sfritul transferului;
5. Modulul I/O folosete un microcalculator sau un microcontroller, cu instruciuni
proprii. CPU programeaz procesorul I/O pentru un transfer, pe care acesta l
execut folosind instruciunile proprii. Cnd transferul se termin, procesorul I/O
ntrerupe CPU pentru a comunica rezultatele transferului;
6. Microcontrollerul are memorie local. El poate controla astfel mai multe EP cu o
intervenie minim din partea CPU. Memoria local poate fi folosit i ca buffer
de date, realiznd astfel o rat de transfer mare.
Definiie: o magistral este un subsistem cu funcia de comutator universal bidirecional
prin care se transfer date n interiorul unui sistem de calcul sau ntre sisteme de calcul.
Schema bloc a unui sistem bazat pe magistrale este dat n figura 3.1:

1 Master 2 3
B B B

B B B
4 5 n

Figura 3.1. Structura unui sistem pe baz de magistrale

27
ISBN Interfaare i protocoale

Sistemul prezentat n figura 3.1 este format din n subsisteme dintre care unul este Master
la un moment dat iar celelalte Slave. Comutatorul este comandat de Master care stabilete
subsistemul Slave cu care face transfer de date i stabilete sensul transferului.
Subsistemele pot fi explorate ciclic sau, mai eficient transferul poate fi realizat printr-o
logic de prioriti. Bufferele B optimizeaz traficul de date, aceste buffere fiind
introduse n structura magistralei ncepnd cu magistrala PCI.. Dac fiecare subsistem
poate transfera date cu viteza vi i viteza cea mai mare este:
vmax=max (vi), atunci viteza magistralei VM va fi:
VM=k.vmax , adic mai mare (cu un coeficient k) dect viteza celui mai rapid
subsistem
Magistralele pot fi de dou tipuri:
1. Sincrone, la care exist o linie de tact i toate transferurile se fac ntr-un numr
ntreg de tacte, ciclul fiind numit ciclu de magistral. Acest tip de magistral este
cel mai simplu i ca urmare s-a rspndit i la microcontrollere;
2. Asicrone, transferul poate dura orict, este nevoie ns de un protocol de dialog.
Pentru ca un transfer nereuit s nu blocheze sistemul este nevoie de un mecanism
de supraveghere a magistralei.
Prima magistral a aprut n 1984 n structura calculatorului IBM PC i s-a numit ISA
(Industry Standard Architecture). Magistrala este sincron, are 16 bii de date, 24 de bii
de adres, subansamblele conectate se configureaz manual, viteza maxim este de
16Mbps. Specificaiile tehnice ale magistralei au fost n domeniul public, ceea ce a
determinat ca magistrala s fie un succes i ca urmare compatibilele IBM PC s se
rspndeasc n toat lumea.
Specificaiile fiind libere, IBM nu a beneficiat financiar prea mult de pe urma acestei
magistrale, aa nct a lansat n 1987 o nou magistral, superioar, pentru calculatoarele
PS2 numit MCA (Microchannel). Caracteristicile ei: 32 de bii de adres, 32 de bii de
date, configurare automat, viteza maxim 32Mbps, cu posibilitatea de a lucra
multiprocesor. Pentru a construi dispozitive MCA era nevoie de cumprarea licenei de la
IBM i au fost puine firme care s fac acest lucru, ca urmare calculatoarele cu MCA nu
s-au rspndit.
Ca reacie la MCA, un consoriu de firme (Compaq, Epson, Hewlett Packard, NEC,
Olivetti i Zenith) a lansat magistrala EISA (Extended ISA) n 1988. Magistrala EISA are
performane cel puin att de bune ca i MCA: 32 de bii de adres, 32 de bii de date,
configurare automat sau manual, viteza maxim 120Mbps i asigura compatibilitate cu
plcile ISA. Specificaiile au fost n domeniul public i probabil magistrala ar fi avut
succes.

28
ISBN Interfaare i protocoale

EISA nu s-a rspndit pentru c INTEL a lansat n 1990 magistrala PCI (Peripheral
Component Interconnect) cu specificaii n domeniul public, cu un concept nou al
arhitecturii. PCI poate lucra cu 32 sau 64 de bii de date la o vitez de maximum
2,112Gbps. Conceptul de ierarhizare a magistralei dup vitez permite compatibilitatea
cu magistrala ISA. n ultimul timp plachetele ISA au disprut dar PCI a pstrat intern o
magistral de vitez mic numit LPC (Low Pin Count), de fapt o magistral ISA cu
semnale multiplexate pe aceleai linii pentru economia de pini.

3.2.Magistrale ierarhizate
Magistrala PCI are o arhitectur care permite existena a dou magistrale pentru I/O, una
de vitez mare i una de vitez mic, figura 3.2.. La magistrala de vitez mare se
conecteaz dispozitivele rapide iar la cea lent se cupleaz canalele care necesit o vitez
mic. Culorile sunt sugestive, cele mai calde sugernd o vitez mai mare.

Magistral procesor
PROCESOR CACHE

Separare Dispozitive I/O locale

Magistral sistem

Controller de Controller de
magistral lent magistral rapid
Magistrale I/O

Seriale, paralel HDD, CD ROM, video, SCSI

Figura 3.2. Principiul magistralei ierarhizate

Dac se analizeaz cazul concret al sistemelor PC lucrurile devin mai clare. Structura
ierarhizat a magistralelor este dat n figura 3.3. Se poate vedea structura pe 3 nivele,
cel mai de sus fiind constituit pe lng magistrala procesorului care are viteza cea mai
mare, tactul fiind FSB (Front Side Bus). Pe aceast magistral sunt conectate controllerul
video integrat, controllerul de memorie DRAM i controllerul magistralei PCI. Pe al
doilea nivel este situat magistrala PCI cu un tact de 33MHz, la care sunt conectate
dispozitivele de I/O rapide, adic canale USB, interfaa SATA, interfaa Ethernet

29
ISBN Interfaare i protocoale

10/100Mbps. AL treilea nivel este reprezentat de magistrala LPC (standard ISA) la care
sunt conectate cele mai lente dispozitive de I/O, adic canalele PS2 pentru tastatur i
mouse. Probabil c n timp se va renuna la nivelul magistralei LPC, existnd tendina ca
dispozitivele de I/O s devin mai rapide i migrarea ctre USB. n general creterea
vitezei interfeelor face ca acestea s urce pe diagrama magistralelor. Un exemplu clar
este interfaa Ethernet care la viteza de 10/100Mbps este conectat la magistrala PCI dar
la viteza de 1Gbps este conectat la magistrala procesor.
Funcionarea sistemului ierarhizat de magistrale poate fi exemplificat prin modul n care
se execut instruciunea MOV DX,AL la portul de ieire 0378H, portul paralel.
Instruciunea este analizat de controllerele de magistral ierarhizate. Controllerul PCI
are o tabel de adrese de I/O i verific dac adresa din instruciune este alocat unui
periferic rapid. n acest caz nu este alocat, aa c instruciunea este executat pe
magistrala LPC. O instruciune de citire/ scriere cu hard discul ar fi fost executat pe
magistrala PCI.

Procesor Cache
Magistrala
procesor, 100,
200, 400 MHz Monitor

Controller de Controller de RAM


magistral PCI magistral PCIe video

Controller de MEMORIE
memorie

Ethernet 1G
Magistrala
PCI
DDR3
1600MHz
33MHz
1333MHz

Controller de SATA, IDE, USB,


magistral LPC Ethernet 10/100, audio.

Magistrala Traseul instruciunii


LPC OUT DX,AL dac DX este
14 MHz
0378H

PS2, interfa paralel,


audio.

Figura 3.3. Principiul magistralei ierarhizate la PC

30
ISBN Interfaare i protocoale

3.3. Diagrame de semnal la acces


Diagramele de timp ale accesului pe magistral arat modul cum se desfoar n timp
transferul de date i rolul semnalelor importante de comand.
Pe o magistral sincron transferul de date dureaz un anumit numr de tacte de ceas,
perioada unui transfer fiind numit ciclu. Ciclurile pot fi de citire sau scriere (din
perspectiva procesorului), pot fi cicluri de transfer cu memoria sau cu dispozitivele de
intrare ieire, pot fi cicluri de transfer gestionate de procesor sau cicluri de acces DMA.
Un ciclu deosebit care poate exista la anumite sisteme este cel de ntrerupere. Sunt
exemplificate ciclurile de magistral n cazul unei magistrale generice simple,
asemntoare cu cea mai simpl magistral (ISA / LPC) la sistemele x86 i cu
magistralele microcontrollerelor.
Ciclul de citire din memorie este reprezentat n figura 3.4. Un astfel de ciclu este
declanat de o instruciune de citire din memorie, la x86 este MOV AL, [BX].

T1 T2 TW T3
Semnale generate de:
Tact
Controller de magistral
t
ALE Procesor
t
Adrese
Procesor
t
/MEMR Procesor

t
Date Memorie
t
Timp de acces la memorie

Figura 3.4. Ciclul de citire din memorie

Semnalul ALE (Address Latch Enable) este utilizat pentru memorarea adreselor ntr-un
latch. Memorarea se face pe frontul primului impuls de tact. La executarea instruciunii
de citire din memorie MOV AL, [BX] procesorul activeaz semnalul MEMR. Dup
trecerea unui timp de ntrziere datele sunt citite din memorie i apar pe magistrala de

31
ISBN Interfaare i protocoale

date. Ele sunt eantionate de frontul ultimului impuls de tact. De regul memoria este mai
lent dect procesorul, de aceea este posibil ca la citire i scriere s se introduc un
impuls de tact suplimentar TW numit impuls de wait care genereaz o stare de wait. La
acest ciclu de citire celelalte semnale de comand MEMW, IOR i IOW sunt inactive.
Ciclul de scriere n memorie este reprezentat n figura 3.5 i este asemntor cu ciclul de
citire. Un astfel de ciclu este declanat de o instruciune de scriere n memorie, la x86 este
MOV [BX], AL.

T1 T2 TW T3
Semnale generate de:
Tact
Controller de magistral
t
ALE Procesor
t
Adrese
Procesor
t
/MEMW Procesor

t
Date Procesor
t

Figura 3.5. Ciclul de scriere n memorie

Instruciunea de scriere n memorie MOV [BX], AL activeaz semnalul MEMW,


celelalte semnale de comand fiind inactive. Modificrile fa de ciclul de citire au fost
reprezentate cu rou pentru a fi mai vizibile.
Ciclul de citire de la un dispozitiv de I/O este reprezentat n figura 3.6. Un astfel de ciclu
este declanat de o instruciune de citire de la un port, la x86 este IN AL, DX. Execuia
acestei instruciuni activeaz semnalul IOR. Dup trecerea unui interval de timp de acces
la dispozitivul de I/O datele sunt disponibile pe magistrala de date. Datele sunt
eantionate pe frontul cresctor al semnalului /IOR. Dispozitivele de I/O sunt mai lente
dect memoria aa nct poate fi nevoie de inserarea mai multor impulsuri de tact TW de
ateptare (WAIT)
Ciclul de scriere la un dispozitiv de I/O este reprezentat n figura 3.7. Un astfel de ciclu
este declanat de o instruciune de scriere la un port, la x86 este OUT DX, AL.

32
ISBN Interfaare i protocoale

T1 T2 TW1 TW2 T3
Semnale generate de:
Tact
Controller de magistral
t
ALE Procesor
t
Adrese
Procesor
t
/IOR Procesor

t
Date Dispozitivul I/O
t
Timp de acces la I/O

Figura 3.6. Ciclul de citire de la I/O

T1 T2 TW1 TW2 T3
Semnale generate de:
Tact
Controller de magistral
t
ALE Procesor
t
Adrese
Procesor
t
/IOW Procesor

t
Date Procesor
t

Figura 3.7. Ciclul de scriere la I/O

33
ISBN Interfaare i protocoale

Modificrile la ciclul de scriere fa de ciclul de citire sunt marcate cu rou pentru a uura
nelegerea.
n ciclurile DMA procesorul nu are controlul magistralelor, controlul fiind preluat de
controllerul de magistral. Ciclul de scriere DMA reprezentat n figura 3.8. nseamn
citirea de la un dispozitiv de I/O i scrierea n memorie.

T1 TW1 T2 TW2 T3
Semnale generate de:
Tact
Controller de magistral
t
HOLDA Procesor
t
Adrese
Controller DMA
t
/IOR Controller DMA

t
Date Dispozitivul I/O
t
/MEMW Controller DMA
t
Timp de acces la I/O

Figura 3.8. Ciclul de scriere DMA

Cedarea magistralelor de ctre procesor se face n urma unui dialog, dup care procesorul
confirm cedarea prin activarea semnalului HOLDA. Controllerul DMA pune adresa de
memorie pe magistral i activeaz semnalul /IOR. Datele sunt puse de dispozitivul de
I/O pe magistral, dup care controllerul DMA activeaz semnalul /MEMW i datele se
nscriu n memorie.
Ciclul de citire DMA reprezentat n figura 3.9. nseamn citirea din memorie i scrierea la
un dispozitiv de I/O. Cu rou au fost marcate modificrile.

34
ISBN Interfaare i protocoale

T1 TW1 T2 TW2 T3
Semnale generate de:
Tact
Controller de magistral
t
HOLDA Procesor
t
Adrese
Controller DMA
t
/MEMR Controller DMA

t
Date Memorie
t Controller DMA
/IOW
t
Timp de acces la memorie

Figura 3.9. Ciclul de citire DMA

Din diagramele de semnal se poate determina aproximativ creterea vitezei de transfer


prin DMA. Un transfer programat nseamn o instruciune de acces la memorie (4 tacte)
i una de acces la un dispozitivde I/O (5 tacte), n total 9 tacte. Un ciclu DMA care face
acelai lucru dureaz 5 tacte, deci creterea de vitez este de 9/5 ori (de 1,8 ori). Desigur
c mrirea vitezei de transfer depinde de numrul de tacte de wait introduse.

3.4. Magistrale multiplexate


Microcontrollerele au beneficiat la apariie de experiena dezvoltrii magistralelor de PC
i au mprumutat variantele cele mai simple de magistrale sincrone. Transferul de date pe
o magistral sincron apare la execuia unei instruciuni a microcontrollerului. La
execuia instruciunii, n funcie de instruciunea executat, se genereaz automat un
semnal care stabilete spaiul de adresare i sensul transferului. n cazul n care spaiul de
adresare este comun pentru zona de memorie i zona de I/O atunci exist dou semnale
de comand - RD i WR care stabilesc sensul transferului. Dac spaiul de adresare este
diferit pentru memorie i IO atunci exist patru semnale- IOR, IOW, MEMR, MEMW.

35
ISBN Interfaare i protocoale

Diagrame de timp pentru transferuri tipice pe o magistral sincron simpl cu spaiu


comun pentru memorie i I/O au fost prezentate anterior.
La un PC la magistralele vechi liniile de adres i de date sunt diferite pentru c nu s-a
pus problema economiei de spaiu. De regul, n microcontrollere i la magistralele noi
de PC nu se poate accepta un numr att de mare de linii din cauza costurilor de realizare
a circuitului, de aceea liniile de adrese i date sunt multiplexate. Aceasta nseamn
cuplarea unui latch de adrese n exteriorul microcontrollerului care s fie ncrcat cu
adrese, comanda latch-ului fiind realizat cu semnalul ALE (Address Latch Enable). O
diagram de timp n acest caz este dat n figura 3.10:

CLK

ALE

/RD

/WR

Adrese/ date
AD0-AD7
Date scrise

Adrese Citire Scriere


Date citite Adrese

Figura 3.10. Diagrama de timp pentru un ciclu de citire urmat de un ciclu de scriere n
cazul unei magistrale de adrese i date multiplexate

3.5.Magistralele PCI i PCI Express


Asociaia PCI-SIG (www.pcisig.com) grupeaz un numr mare de productori (circa
900) interesai n armonizarea structurilor i caracteristicilor magistralelor PCI. Tabelul
3.1 arat evoluia n timp a caracteristicilor magistralelor PCI:
Tabel 3.1.
Magistrala Anul apariiei Debit maxim
PCI 33MHz 1993 133Mo/s
PCI 66MHz 1995 266Mo/s
PCI-X 133MHz 1999 533Mo/s

36
ISBN Interfaare i protocoale

PCI-X 266MHz 2002 1066Mo/s


PCI-X 533MHz 2002 2131Mo/s
PCI Express 2002 16Go/s (x32)

Specificaiile PCI permit cuplarea a maximum 32 de dispozitive pe magistral. Cu toate


acestea, din motive de ncrcare a magistralei, practic se pot conecta doar 5-10
dispozitive. O diagram de semnale tipic pentru accesul la magistrala PCI este dat n
figura 3.11.

T1 T2 T3 TW T4 TW T5 TW

Tact
t
GNT#
t
AD
t
Adrese Date 1 Date 2 Date 3

C/BE#
t
Tip Validare Validare Validare
tranzacie date date date

Figura 3.11. O diagram de semnale pentru accesul la magistrala PCI

Este foarte important caracteristica PCI de a permite transferuri n salv (burst).


Magistrala PCI admite 12 tipuri de tranzacii (cicluri) printre care tranzacii cu memoria,
cu dispozitive de I/O, de configurare, etc.
Liniile de date i adrese sunt multiplexate (AD) pentru a reduce numrul de linii. Un
dispozitiv master cuplat pe magistral poate solicita magistrala cu un semnal REQ# i
cnd aceasta este liber controllerul de magistral va rspunde cu GNT#. La primul tact
pe liniile AD masterul pune adresa, iar pe liniile C/BE# se pune tipul tranzaciei. Dup
adres, pe liniile AD urmeaz datele, cuvnt dup cuvnt. Se poate vedea c dup fiecare
tact urmeaz un tact de wait pentru a permite sincronizarea cu date puse pe magistral cu
diferite ntrzieri. Pe liniile C/BE# se pun cuvinte de validare a datelor.

37
ISBN Interfaare i protocoale

Una dintre problemele majore ale magistralelor paralele este transmisia semnalelor pe
mai multe linii (16, 32 sau 64), apropiate ntre ele, la viteze de transfer din ce n ce mai
mari. Efectele perturbatoare care se manifest la aceste transmisii, n special reflexiile i
diafonia nu mai pot fi neglijate i limiteaz creterea n continuare a vitezei de transfer.
Soluii care micoreaz diafonia i reflexiile cum ar fi de exemplu trasee mai late (cu
rezisten mai mic), introducerea traseelor de mas ntre traseele de semnal etc. nu pot fi
practic aplicate pentru c dimensiunile noilor echipamente trebuie s fie din ce n ce mai
mici. Sunt foarte interesante soluii de codificare a datelor transmise pe magistrala
paralel astfel nct combinaiile de nivele logice pe linii adiacente care produc diafonii
s fie eliminate. n figura 3.12. se poate vedea un asemenea sistem care verific
combinaiile care produc diafonii i le nlocuiete, semnaliznd acest lucru cu o linie
special care se adaug la liniile magistralei.

Figura 3.12. Eliminarea combinaiilor care produc diafonii (Sursa: M. Drban, Tez de
doctorat, Cluj Napoca, 2012, online:
http://www.etti.utcluj.ro/download/988_PhD_Thesis.pdf)

Un rspuns posibil la aceste probleme este apariia unui nou tip de magistral. PCI
Express are o alt filozofie a magistralelor, de la magistrale paralele la care fiecare linie
este de semnal este un traseu clasic, la o magistral paralel care conine mai multe
grupuri de linii de comunicaii seriale numite canale. Un canal conine 2 linii de
transmisie seriale unidirecionale (simplex), fiecare linie fiind compus din 2 fire cu
transmisie diferenial (High- speed LVDS, Low Voltage Differential Signaling), figura
3.13.

38
ISBN Interfaare i protocoale

Canal PCI Express

Date seriale Date seriale


de intrare de ieire

Transmitor Receptor

Date seriale Date seriale


de ieire de intrare

Receptor Transmitor

Figura 3.13. Canal PCI Express

Transmisia serial la PCI Express este o transmisie punct la punct, sincron, cu cadre de
date, cu refacerea tactului din datele citite, codarea fiind o codare de grup numit 8b/10b,
care va fi tratat ntr-un capitol ulterior, dedicat interfeei IEEE1394.
Magistrala PCI Express poate conine un canal (PCIe x2), 2 canale (PCIe x4), .a.m.d.
pn la 16 canale (PCIe x32).
Controllerul de magistral conine un comutator (Switch) care comut un dispozitiv
master la unul slave, ca n diagrama general din figura 3.1. O schem general a
magistralei PCI Express este dat n figura 3.14.

39
ISBN Interfaare i protocoale

Procesor Magistrala
procesor, FSB

Memory Root Complex


Read
Request Switch C
Switch A
Completion
with Data
Request

Endpoint Endpoint Endpoint

Switch C

Endpoint Endpoint
Memorie

Figura 3.14. Structura magistralei PCI Express

Arhitectura magistralei seamn cu arhitectura USB, viteza superioar fiind asigurat de


un numr mai mare de canale seriale prin care se transfer date simultan. Dac procesorul
are nevoie de un transfer de date de citire de la memorie atunci trimite un cadru de
comand Memory Read Request. Aceasta ajunge la Endpoint-ul memorie prin trecerea
prin Switch-ul A i C, comandate pentru a asigura traseul ctre Endpoint-ul dorit de ctre
controllerul de magistral. Memoria rspunde acestei cereri cu cadrul Completion with
Data Request. Transferul de date este bidirecional full duplex prin fiecare canal serial cu
cte dou linii de transmisie. Toate dispozitivele cuplate la magistral conin buffere de
transmisie i recepie.

40
ISBN Interfaare i protocoale

4.Interfee paralele

4.1. Interfee paralele neprogramabile


Interfeele paralele pot fi programabile sau neprogramabile. O alt clasificare mparte
interfeele paralele n interfee unidirecionale i bidirecionale. Rolul interfeelor paralele
este ca s extind numrul de linii de transfer paralel de date sau s introduc un protocol
pentru gestionarea unui transfer de date.
A.Interfaa neprogramabil unidirecional pe 8 bii
Schema bloc a unei astfel de interfee (Intel 8282) este dat n figura 4.1:

I8282
DI0
DO0
DI1
DO1
DI2
DO2
DI3
DO3
DI4

Figura 4.1. Interfaa paralel neprogramabil unidirecional

Circuitul este un buffer pe 8 bii cu ieiri cu trei stri. Dac STB (Strobe) este logic 1
ieirile urmresc nivelul logic al intrrilor. Pe frontul negativ al semnalului STB datele de
intrare sunt memorate n circuit. Semnalul /OE (Output Enable) /OE logic 1 face ca
ieirile s treac n nalt impedan. La trecerea lui /OE din unu n zero datele se pierd
din buffer. Exist astfel de circuite care au un inversor inserat pe fiecare linie. Principala
utilizare a acestor circuite este pentru liniile de adres, nscrierea n buffer fiind asigurat
de semnalul ALE. Sunt marcate ntr-un chenar rou semnalele care adaug un protocol
simplu de transfer.
B.Interfaa neprogamabil bidirecional pe 8 bii
Schema bloc a unei astfel de interfee (Intel 8286) este dat n figura 4.2.
Circuitul are ieiri cu trei stri i se utilizeaz mai ales la transferul pe magistrala de date,
fiind bidirecional. Intrarea T stabilete sensul de transfer al datelor, pe nivel sensul este
de la A la B iar pe nivel zero de la B la A. Dac /OE este 1 liniile din A i B trec n nalt

41
ISBN Interfaare i protocoale

impedan. Sunt marcate ntr-un chenar rou semnalele care adaug un protocol simplu
de transfer.
I8286
A0
B0
A1
B1
A2
B2
A3
B3
A4

Figura 4.2. Interfaa paralel neprogramabil bidirecional

4.2. Interfaa paralel programabil


Circuitul tipic pentru aceast categorie este circuitul Intel 8255 care a fost realizat pentru
prima oar pentru microprocesorul Intel 8085, dar a fost preluat la microprocesoarele pe
16 bii (Intel 80286) i utilizat la primele PC-uri. Circuitul a fost foarte reuit i ca urmare
a fost preluat i de ali productori pentru microprocesoarele proprii, cum a fost de
exemplu Motorola pentru familia 6800, numind interfaa Motorola 6820 PIA (Peripheral
Interface Adapter).
Schema bloc a circuitului este dat n figura 4.3:

I8255
Grup A
D0-D7 Buffer Port A PA0-PA7
de date

Interfaa cu Port C (H) PC4-PC7


microprocesorul
RD
WR Port C (L) PC0-PC3
A0
A1
CS Port B PB0-PB7
RESET

Magistrala intern

Figura 4.3. Schema bloc a circuitului interfa paralel programabil INTEL 8255

42
ISBN Interfaare i protocoale

Semnalele de interfa cu microprocesorul sau microcontrollerul gazd au urmtoarea


semnificaie:
RD se execut cu ciclu de citire de la un port sau de la memorie. Circuitul se
poate mapa n zona de memorie sau I/O, dar este firesc ca el s fie mapat n zona
de I/O. Astfel, la acest pin se conecteaz semnalul de magistral IOR;
WR se execut cu ciclu de scriere la un port sau n memorie. La acest pin se
conecteaz semnalul de magistral IOW;
A0 este o linie care mpreun cu A1 selecteaz registrele interne ale interfeei
paralele. Se conecteaz de regul la linia cel mai puin semnificativ de adres;
A1 este o linie care mpreun cu A0 selecteaz registrele interne ale interfeei
paralele. Se conecteaz de regul la linia de adres A1 (A0 este cel mai puin
semnificativ);
RESET este o linie care comand iniializarea circuitului prin tergerea
informaiei din toate registrele;
CS este o linie care selecteaz circuitul. Formrii acestui semnal I se dedic un
capitol ulterior;
D0-D7 magistrala de date a gazdei, 8 linii bidirecionale;
PA0-PA7 8 linii bidirecionale care formeaz portul A;
PC4-PC7 4 linii bidirecionale, partea mai semnificativ (H) a portului C care pot
fi folosite independent sau ca i semnale de protocol pentru portul A. Aceste linii
formeaz mpreun cu portul A grupul A;
PC0-PC3 4 linii bidirecionale, partea mai puin semnificativ (L) a portului C
care pot fi folosite independent sau ca i semnale de protocol pentru portul B.
Aceste linii formeaz mpreun cu portul B grupul B;
PB0-PB7 8 linii bidirecionale care formeaz portul B.
n funcie de liniile de adres A0 i A1, dac CS este activ, se selecteaz porturile
conform tabelului urmtor:
A1 A0 Registru
0 0 portA
0 1 port B
1 0 port C
1 1 registru de comand

43
ISBN Interfaare i protocoale

Modurile de lucru ale interfeei sunt:


1. Modul 0 este modul de baz de intrare / ieire, asigur funcionarea porturilor A i B
ca porturi de 8 bii. Portul C cu cele dou pri ale lui de 4 bii are posibilitatea de
poziionare individual a fiecrei linii pe zero sau unu. Porturile pot fi programate ca
ieiri sau intrri i menin sensul programat pn la o nou programare.
2. Modul 1 este un mod de lucru cu posibilitatea de implementare a unui protocol de
transfer. Se pot folosi dou grupuri, grupul A i grupul B formate din porturile A i B
ca porturi de date, asistate de semnale de comand din portul C. Porturile de date A i
B pot fi programate ca ieiri sau intrri i menin sensul programat pn la o nou
programare. Se poate folosi unul dintre porturile A sau B n mod 0 i cellalt n mod
1.
3. Modul 2 este un mod n care portul A este folosit ca port de date bidirecional, asistat
de toate liniile portului C. Portul B poate fi folosit n acest caz doar n modul 0.

4.3.Protocoale de transfer
A.Protocolul de transfer n mod 1
Pentru a ilustra protocoalele de transfer paralel sunt prezentate trei variante, una pentru
transferul unidirecional de intrare, una pentru transferul unidirecional de ieire i una
pentru transferul bidirecional. Modurile de transfer prezentate sunt cele de la circuitul
interfa programabil I8255 descris anterior i sunt tipice pentru transferul paralel al
datelor.
A1. Transferul unidirecional de intrare
Schema bloc de conectare a unui Echipament Periferic (EP) la portul A este dat n figura
4.4.
Semnalele de protocol din portul C sunt generate automat de circuitul I8255 iar semnalele
de stare pot fi citite de procesorul gazd. Semnalele de protocol au urmtoarea
semnificaie:
STBA (Strobe A) este un strob de intrare pe poziia liniei PC4. Cu acest semnal EP
ncarc datele puse pe liniile de date n portul de date A.
IBFA (Input Buffer Full A) este o linie de stare pe poziia liniei PC5 care arat c datele
au fost ncrcate n bufferul portului A. Acest semnal este activat de semnalul de STBA
de la EP i este dezactivat cnd procesorul citete datele (cnd apare un RD active).
Semnalul IBFA poate fi folosit de procesor care este informat c datele sunt n portul A
sau de EP ca o confirmare a primirii datelor.

44
ISBN Interfaare i protocoale

INTRA (Interrupt Request A) este o cerere de ntrerupere ctre microprocesor pe poziia


liniei PC3, activat cnd datele sunt n portul A. Cererea este activat de semnalul STBA
i dezactivat de semnalul RD. Cererea este validat de un bistabil intern comandat de
INTEA (Interrupt Enable A), semnal de validare ntreruperi pe poziia PC4.
Liniile PC6 i PC7 pot fi utilizate de ctre proiectant pentru a implementa operaii
suplimentare de protocol. Dac aceste operaii nu sunt necesare, se pot folosi liniile ca
linii de semnalizare a operaiilor n curs (cum este de exemplu LED-ul care indic
transferul cu hard discul pe panoul frontal al unui PC).

I8255, port A i C (H) EP

A0-A7 date
INTRA PC3
INTEA STBA PC4
IBFA PC5
Validare PC6
ntreruperi PC7
INTRA
IBFA

Figura 4.4. Protocolul de citire date

Corespunztor portului B semnalele sunt: INTEB (PC2), STBB (PC2), IBFB (PC1),
INTRB (PC0).

A2. Transferul unidirecional de ieire


Protocolul de scriere date este ilustrat n figura 4.5. Semnalele de protocol sunt:
OBFA (Output Buffer Full A) pe poziia liniei PC7 semnaleaz c registrul de ieire este
plin i datele pot fi preluate de EP. Semnalul este activat de scrierea datelor n I8255 de
ctre procesor, lucru indicat de semnalul de magistral WR i este dezactivat de preluarea
datelor de ctre EP, semnalizat cu semnalul ACKA. Semnalul OBFA poate fi folosit de
procesor care este informat c datele au fost preluate de EP sau de EP care este informat
c datele sunt n portul A i pot fi citite.
ACKA (Acknowledge A) este un semnal pe poziia liniei PC6 care confirm c datele au
fost acceptate de EP.

45
ISBN Interfaare i protocoale

INTRA (Interrupt Request A) este o cerere de ntrerupere ctre microprocesor pe poziia


liniei PC3, activat cnd datele au fost preluate de EP. Cererea de ntrerupere este
activat de semnalul ACKA i dezactivat de WR. Cererea este validat de un bistabil
intern comandat de INTEA (Interrupt Enable A), semnal de validare ntreruperi pe
poziia PC6.
Liniile PC4 i PC5 pot fi utilizate de ctre proiectant pentru a implementa operaii
suplimentare de protocol.

I8255, port A i C (H) EP

A0-A7 date
INTRA PC3
PC4
PC5
INTEA ACKA PC6
Validare OBFA PC7
ntreruperi

INTRA
OBFA

Figura 4.5. Protocolul de scriere date

Corespunztor portului B semnalele sunt: INTEB (PC2), OBFB (PC1), ACKB (PC2),
INTRB (PC0).

A3.Transferul bidirecional n modul 2 de funcionare


Acest mod de transfer poate fi realizat n modul 2 de funcionare al interfeei n care
transferul are loc cu portul A asistat de semnale de protocol din portul C. Semnalele de
protocol sunt date n figura 4.6. i sunt urmtoarele:
INTRA (PC3) cerere de ntrerupere, generat la operaiile de intrare i ieire.
ntreruperile generate de o operaie de ieire sunt validate de INTE1 (PC6) iar cele
generate de o operaie de intrare de INTE2 (PC4)
OBFA (PC7) generat n cadrul unei operaii de ieire
ACKA (PC6) generat n cadrul unei operaii de ieire
STBA (PC4) generat n cadrul unei operaii de intrare

46
ISBN Interfaare i protocoale

IBFA (PC5) generat n cadrul unei operaii de intrare

I8255, port A i C (H) EP

A0-A7 date
PC0
PC1
PC2
INTRA PC3
INTE1 STBA PC4
IBFA PC5
INTE2 ACKA PC6
OBFA PC7
Validare Validare
ntreruperi ntreruperi
ieire intrare

INTRA
OBFA
IBFA

Figura 4.6. Protocolul bidirecional

4.4.Programarea circuitului de interfa paralel


nainte de nceperea unui transfer de date circuitul de interfa paralel trebuie programat.
Pentru aceasta, n primul rnd se trimite un cuvnt care comand modul de lucru n
registrul de comand. Structura acestui cuvnt este urmtoarea:
D7 (MSBit)=1
D6 D5 mod grup A
0 0 grup A mod 0
0 1 grup A mod 1
1 x grup A mod 2
D4=0 A port de ieire, D4=1 A port de intrare
D3=0 PC4-PC7 ieiri, D3=1PC4-PC7 intrri
D2=0 mod 0 pentru grup B, D2=1 mod 1 pentru grup B
D1=0 B port de ieire, D1=1 B port de intrare
D0=0 PC0-PC3 ieiri, D0=1PC0-PC3 intrri

47
ISBN Interfaare i protocoale

Un al doilea cuvnt de comand se poate trimite n registrul de comand. Dac s-au


selectat modurile 1 sau 2 de lucru este necesar s fie accesibil fiecare bit al portului C
pentru poziionare individual. Structura cuvntului de poziionare a unui bit n portul C
este urmtoarea:
D7=0, D6=x, D5=x, D4=x
D3, D2, D1 reprezint prin decodificare adresa bitului n octet
D0 reprezint valoarea cu care se nscrie bitul selectat.
Starea circuitului interfa paralel n modurile 1 i 2 de lucru poate fi determinat prin
citirea portului C, astfel:
Bit Mod 1 starea port A intrare Mod 1 starea port A ieire
D7 I/O OBFA
D6 I/O ACKA
D5 IBFA I/O
D4 STBA I/O
D3 INTRA INTRA

Bit Mod 1 starea port B intrare Mod 1 starea port B ieire


D2 STBB ACKB
D1 IBFB OBFB
D0 INTRB INTRB

Bit Mod 2 starea port A


D7 OBFA
D6 INTE1
D5 IBFA
D4 INTE2
D3 INTRA

4.5.Exemplu de implementare
Se propune realizarea unei interfee paralele cuplat pe o magistral de microprocesor
compatibil x86 de 8 bii de date i 16 bii de adres. n portul A se conecteaz 8 LED-uri
iar n portul B 4 ntreruptoare. Se cere realizarea schemei bloc i a unui program n
limbaj de asamblare care s afieze pe LED-uri starea ntreruptoarelor.
Schema bloc a interfeei este dat n figura 4.7.

48
ISBN Interfaare i protocoale

I8255
Port A
PA0-PA7
D0-D7 Buffer
de date

Port C (H) PC4-PC7


Interfaa cu
microprocesorul
RD
WR Port C (L) PC0-PC3
A0
A1
CS Port B
RESET
PB0-PB7

Figura 4.7. Schema electric a interfeei cu ntreruptoare i LED-uri


Se alege modul 0 de lucru a interfeei, acesta fiind cel mai simplu mod n care se poate
rezolva problema. Se programeaz interfaa paralel apoi se citete portul B i ceea ce s-a
citit se trimite la portul A pentru a aprinde LED-urile. n aceast variant nchiderea unui
ntreruptor determin ca nivelul citit s fie zero, prin urmare se va afia pe linia
corespunztoare a portului A cu un LED stins. Un ntreruptor neapsat va nsemna un
LED aprins.
Pentru programare portul A trebuie s fie de ieire, portul B de intrare, iar portul C
indiferent. Secvena de programare va fi:
MOV DX,0003
MOV AL, 82H
OUT DX,AL
Secvena de citire ntreruptoare i afiare pe LED-uri va fi:
Start MOV DX,0001
IN AL,DX
MOV DX,0000
OUT DX,AL
JMP start

49
ISBN Interfaare i protocoale

5.Interfee seriale

5.1.Tactul n transmisiile seriale


n primul capitol a fost demonstrat importana cunoaterii tactului cu care s-au emis date
la receptor. Pentru a se asigura la receptor tactul corect de recepie exist mai multe
variante, prezentate n figura 5.1.
1. Tactul de transmisie se transmite de la emitor la receptor pentru citire, figura 5.1
a. Se asigur vitez mare, dar distanele sunt mici. Costurile unui fir suplimentar
sunt mari. Exemple sunt interfaa SPI (Serial Peripheral Interface), IEEE1394a
(1995), JTAG.

Emitor Receptor
Date
a Tact
GND

Emitor Receptor
b Date
Tact Tact
GND

Emitor Receptor
Date
Generare tact din
c datele citite
GND

Tact

Figura 5.1. Variante de asigurare a tactului la recepie

50
ISBN Interfaare i protocoale

1. Emisia i recepia se fac cu acelai tact, standard, cunoscut i de emitor i de


receptor. Distanele pot fi mari, nu apar costurile unui fir suplimentar, figura 5.1
b. Viteza nu poate fi mare datorit faptului c ntre tactele standard exist
diferene. Cteva exemple sunt interfaa serial asincron RS232 i LIN.
2. Refacerea tactului din datele emise este cea mai modern metod folosit la cele
mai multe aplicaii actuale. Se pot asigura distane mari, costuri mici, viteze mari.
Circuitul care reface tactul din date se numete bucl PLL i nu poate reface
datele dect dac exist variaii permanente de nivel, figura 5.1 c. Exemple sunt
USB, CAN, FlexRay, IEEE1394b (2002), dar i Ethernet, SATA etc. Transmisiile
wireless, de exemplu Bluetooth i ZigBee pot fi asociate cu transmisiile seriale pe
un singur fir cu refacerea tactului.

5.2. Codarea datelor


Primul pas n transmiterea datelor digitale pe o linie de transmisie este asocierea fiecrui
bit cu variaia unui semnal electric printr-un proces de codare. n continuare vor fi
prezentate cteva tipuri de codri i exemple de codare.

A.Codarea NRZ (Non Return to Zero)


Cea mai simpl i natural codare este cea n care fiecare valoare logic se codeaz cu un
nivel de tensiune.
Regula de codare este:
1. Zero se codific cu 0V;
2. Unu se codific cu +5V.
n figura 5.2. 16 bii ntr-o succesiune aleas la ntmplare n care datele au multe
schimbri de nivel logic au fost codificai cu 7 tranziii (2,28 bii/tranziie). Dac apare un
ir de 0-uri sau 1-uri semnalul electric nu are variaii.
Intervalul de timp n care se codeaz un bit se numete celul bit (interval cu rou)

51
ISBN Interfaare i protocoale

Tensiune

1 1 0 1 1 1 0 0 1 0 0 0 1 1 0 0

Figura 5.2. Codarea NRZ

B.Codarea NRZI (Non Return to Zero Inverted)


Este o codare asemntoare cu NRZ, cu regula de codare:
1. Zero se codific cu lipsa unui front.
2. Unu se codific cu un front.
n figura 5.3. 16 bii ntr-o succesiune aleas la ntmplare au fost codificai cu 7 tranziii
(2,28 bii/tranziie). Dac apare un ir de 0-uri sau 1-uri semnalul electric nu are variaii.

Tensiune

0 1 1 0 0 1 0 1 1 0 0 1 0 1 0 0

Figura 5.3. Codarea NRZI

C.Codarea Manchester
Codarea Manchester a fost realizat prima oar la Universitatea din Manchester cu ocazia
construirii calculatorului Mark 1 (numit i Baby) n 1948.
Regula de codare este:
1. Zero se codific cu un front descresctor;
2. Unu se codific cu un front cresctor.
n figura 5.4. 8 bii ntr-o succesiune aleas la ntmplare au fost codificai 8 bii cu 12
tranziii (1,5 tranziii pe bit). Dac apare un ir de 0-uri sau 1-uri semnalul electric are
variaii. Codarea Manchester se folosete la reeaua Ethernet.

52
ISBN Interfaare i protocoale

Tensiune

0 1 1 0 0 0 1 1

Figura 5.4. Codarea Manchester

D. Codarea FM (Frequency Modulation)


Codarea FM i MFM (Modified FM) au fost introduse de IBM n anii 1970 pentru
codificarea datelor la scrierea pe hard discuri. La aceste codri fiecare celul bit ncepe cu
un impuls de tact, iar regula de codare este:
1. Zero se codific cu lipsa unui impuls.
2. Unu se codific cu un impuls.
n figura 5.5. 8 bii ntr-o succesiune aleas la ntmplare au fost codificai cu 24 tranziii
(3 tranziii pe bit). Codarea FM s-a folosit la nscrierea datelor pe suporturi magnetice, n
prezent fiind nlocuit cu codri mai eficiente.

Tensiune

0 1 1 0 0 0 1 1
Figura 5.5. Codarea FM

Un tabel centralizator care cuprinde exemplele prezentate este dat n continuare:


Tabelul 5.1.
Codare Eficien (bii/tranziie)
NRZ 2.28
NRZI 2.28
Manchester 0.66
FM 0.33

53
ISBN Interfaare i protocoale

Concluzie n aceast etap:


Limita unui canal de transmisii de date seriale este dat de numrul de tranziii pe
secund. Interesul este s se trimit ct mai muli bii cu ct mai puine tranziii. Deci la
codurile NRZ i NRZI n exemplele alese au fost codificai n medie 2,28 bii cu o
tranziie, iar la codurile FM i Manchester eficiena a fost mult redus, doar 0,33
respectiv 0,66 bii cu o tranziie. Concluzia este c NRZ i NRZI sunt cele mai eficiente
din acest punct de vedere.
n figura 5.1 c se poate vedea c tactul de citire este refcut din datele citite cu o bucl
PLL. Dac o codare permite un numr mare de valori logice de acelai fel succesive care
nu produc nicio tranziie, bucla PLL pierde sincronizarea i transmisia nu poate fi
efectuat. Prin urmare, la codurile NRZ i NRZI tactul nu se poate reface din datele citite
i codurile nu pot fi utilizate n modul de transfer cu refacerea tactului din date. Aceste
coduri se numesc din acest motiv coduri neautosincronizabile. Codurile FM i
Manchester, chiar dac asigur o codare mai puin eficient sunt coduri
autosincronizabile. Tabelul 5.1 poate fi completat astfel:
Tabelul 5.2
Codare Eficien (bii/tranziie) Autosincronizabilitate
NRZ 2.28 NU
NRZI 2.28 NU
Manchester 0.66 DA
FM 0.33 DA

Cercetrile orientate spre gsirea unor noi metode de codificare eficient i


autosincronizabile au fost ndreptate ctre modificarea NRZ sau NRZI care au o eficien
ridicat pentru a deveni autosincronizabile. Astfel au aprut codificrile numite de grup,
sau cu adugare de bii (engl. bit stuffing). Aceste codificri impun ca la transmisia
codat NRZ sau NRZI dac apare un semnal codat cu mai multe celule bit fr tranziii
dect o anumit limit, emitorul foreaz o tranziie, deci se adaug un bit suplimentar.
n figura 5.6. se poate observa sus un semnal codat NRZ cu o succesiune de 6 valori de 1
logic succesive. Dac codarea de grup admite doar 4 valori succesive de 1 logic, atunci
emitorul insereaz un bit (cu rou) suplimentar care genereaz 2 tranziii.

54
ISBN Interfaare i protocoale

Tensiune

t
1 1 0 1 1 1 1 1 1 0 0 0 1 1 0 0

t
1 1 0 1 1 1 1 0 1 1 0 0 0 1 1 0 0

Figura 5.6. Codarea de grup

n aceast situaie 16 bii de date au fost codificai NRZ cu 5 tranziii (3,2 bii cu o
tranziie) iar dup inserarea bitului suplimentar cei 16 bii sunt codificai cu 7 tranziii,
adic 2,28 bii codificai cu o tranziie. Astfel se pstreaz aproape la fel de mare
eficiena codului NRZ i codarea a devenit autosincronizabil.
Vor fi descries n detaliu exemple de astfel de codri n capitolele urmtoare. Codarea
8B10B va fi descris la interfaa serial IEEE1394 (Capitolul 11), codarea EFM la
nregistrarea pe suporturi optice i codarea RLL la scrierea pe suporturi magnetice
(Capitolul 12).

5.3.Transmisii seriale asincrone i sincrone


Al doilea pas n transmisia informaiei este asocierea biunivoc a unui caracter cu o
configuraie binar. Cel mai utilizat este codul ASCII. n codul ASCII (American
Standard Code for Information Interchange) fiecare liter este reprezentat de un numr.
De exemplu, litera A este reprezentat prin numrul 65, n timp ce pentru litera z este
alocat numrul 122 n zecimal. n codul ASCII fiecare caracter este codificat prin 7 bii.
Semne speciale sunt de exemplu caracterul de comand de revenire la nceputul liniei CR
(Carriage Return) i avans la o nou linie (Line Feed) care mpreun au efectul apsrii
tastei Return.
Formatul, integritatea i dispunerea n timp a schimbului de date ntre procese care
comunic ntre ele, fiecare desfurndu-se independent n sisteme de calcul
interconectate, se stabilesc printr-un set de reguli i convenii specificate de un protocol
de comunicaie.
Un grup de cuvinte binare formeaz un cadru (bloc) de date. Protocoalele seriale pot fi
orientate pe cuvnt sau pe cadru. Un cuvnt respectiv un bloc de date reprezint entiti
de informaie care se trateaz unitar la receptor, adic sunt acceptate sau respinse n

55
ISBN Interfaare i protocoale

ntregime. n transferul asincron (RS232, LIN) se transmit cuvinte i informaia de


sincronizare este ataat cuvntului dar n cele mai multe tipuri de transfer (USB, CAN,
IEEE1394b, Ethernet, Bluetooth, ZigBee) informaia de sincronizare este ataat
cadrului, transmisiile find numite sincrone. La un cuvnt respectiv la un bloc de date se
adaug i informaie de verificare a corectitudinii transferului (bit de paritate sau cuvinte
de control).
n figura 5.7. este prezentat o diagram simplificat a transmiterii cuvntului CURS.
Se poate observa c informaia de sincronizare (marcat cu rou) este ataat blocului de
date la transmisia sincron i fiecrui cuvnt la transmisia asincron.
CURS
Bloc de date sincron

Cod ASCII C Cod ASCII U Cod ASCII R Cod ASCII S

ir de cuvinte asincrone

Cod ASCII C Cod ASCII U Cod ASCII R Cod ASCII S

Se codific fiecare bit din


cuvnt NRZ, Manchester
etc.
Figura 5.7. Cuvntul CURS transmis ca bloc de date sincron (sus) i asincron (jos)

A.Structura unui cuvnt serial asincron


Linia de transmisie este n repaus n starea MARK (1 logic). Emisia unui caracter este
precedat de trecerea liniei n starea SPACE (0 logic) pe durata unui bit numit de
START, figura 5.8.

Repaus START Date 5,6, Bit STOP Repaus


7,8 bii paritate
Nivel
MARK

SPACE

t
Celule bit
Figura 5.8. Structura unui cuvnt serial asincron

56
ISBN Interfaare i protocoale

Dup bitul de START urmeaz 5, 6, 7 sau 8 bii de date cu codare NRZ. Codarea NRZ nu
este autosincronizabil, prin urmare transmisia serial asincron poate fi cu tact standard
sau cu transmisia tactului. Transmisia se numete asincron pentru c emisia unui
caracter poate avea loc n orice moment, dac linia este n repaus, n stare MARK. Biii n
cuvnt sunt transmii sincron, cu un tact stadard sau cu un tact transmis, fiecare bit fiind
codificat cu un nivel logic ntr-o celul bit. Dup biii de date urmeaz un bit de paritate
pentru verificarea corectitudinii mesajului la receptor. Dup bitul de paritate urmeaz un
bit, un bit i jumtate sau doi bii de STOP, n stare MARK, dup care linia reintr n
repaus.
n figura 5.8. a fost marcat cu sgei roii informaia de sincronizare, biii de START i
STOP. Aceast informaie este n cel mai favorabil caz 2 bii, care la 8 bii transmii n
cuvnt nseamn 25%. Informaia suplimentar transmis n cazul acesta este 25%.

B. Structura unui cadru de date sincron


Un cadru de date este format din mai multe cuvinte transmise serial. Informaia de
sincronizare este transmis la nceputul cadrului (blocului) de date, figura 5.9.

SYNC ANTET
ANTET DATE CRC

Identificator Adresa destinaiei Adresa sursei

Figura 5.9. Structura unui cadru de date tipic

La transmisia sincron este posibil transmisia datelor cu refacerea tactului la receptor


din datele transmise. De aceea, un cadru de date ncepe cu o zon de sincronizare care
conine tranziii dese, pentru a permite buclei PLL din receptor s se sincronizeze.
Urmeaz apoi de regul un antet format dintr-un identificator care depinde de tipul
transmisiei, adresa destinaiei i adresa sursei. Zona de date are cea mai mare dimensiune
i este urmat de cuvinte CRC (Cyclic Redundancy Code) pentru verificarea
corectitudinii transmisiei. Presupunnd c zona de date este format din 100 de cuvinte

57
ISBN Interfaare i protocoale

iar zona de sincronizare i antetul au 10 cuvinte se poate vedea c surplusul de informaie


(overhead bits) este doar 10%, mai mic dect n transmisia asincron.
Structuri particulare de cadre de date vor fi prezentate la transmisia Ethernet (n capitolul
8), la USB (Capitolul 9), la IEEE 1394 i SATA (Capitolul 11) etc.

5.4. Standardul RS232


EIA (Electronics Industries Association) mpreun cu TIA (Telecommunication Industry
Association) au realizat standarde pentru interfee seriale. Standardul utilizat n prezent
pentru conectarea microcontrollerelor la un calculator gazd este EIA/TIA RS232-E.
Valorile tensiunilor admisibile pentru fiecare nivel logic sunt date n figura 5.10. Valorile
maxime admisibile sunt +25V i 25V.

+12V

0 logic
+5V
+3V
0V
-3V
-5V
1 logic
-12V

Figura 5.10. Nivelele de tensiune ale valorilor logice n RS232

Nivelele mai mari de tensiune asigur o margine de zgomot mai mare i prin urmare o
imunitate mai mare la perturbaii. Distana maxim de transfer este de 15m la un debit de
informaie de 115Kbps.
Cele mai importante semnale de interfa n standardul RS232 sunt:
Tabelul 1
Semnal Sens Semnificaie
RxD recepie date
TxD emisie date
RxC ceas de recepie
TxC ceas de emisie

58
ISBN Interfaare i protocoale

RTS Request to Send (cerere de emisie)


CTS Clear to Send (gata de emisie)
DTR Data Terminal Ready (terminal de date gata?)
DSR Data Set Ready (terminal de date gata)

Termenii Half Duplex (HDX) i Full Duplex (FDX) se refer la simultaneitatea


transferului de date n ambele sensuri ntre dou echipamente. Dac exist flux de date
att ntr-un sens ct i n cellalt, dar nu simultan, atunci transferul este HDX. Dac exist
flux de date ntr-un sens i n cellalt n acelai timp, atunci transferul este FDX. n
industrie se folosete pentru HDX termenul TWA (Two Way Alternate) i pentru FDX
termenul TWS (Two Way Simultaneous).
O legtur punct la punct conecteaz dou dispozitive, iar o legtur multipunct
conecteaz mai mult de dou dispozitive. Aceste legturi sunt ilustrate n frigura 5.11. n
legtura punct la punct, unul din dispozitive este emitor i cellalt este receptor
(stnga). n legtura multipunct un singur dispozitiv este emitor i dintre celelalte, la un
moment dat, unul sau mai multe dispozitive sunt receptoare (dreapta). Receptorul este
activat printr-un mecanism de adresare specific interfeei.

A B
B C D

Punct la punct Multipunct


Point-to-Point Multipoint

Figura 5.11.Legtur punct la punct i multipunct

Din punctul de vedere al acestor precizri, interfaa serial RS232 este o interfa punct la
punct, Full Duplex.
O legtur complet RS232 ntre dou sisteme de calcul utilizeaz toate semnalele
principale din Tabelul 1 i este dat n figura 5.12.
Datele circul prin liniile TxD i RxD n mod FDX sau HDX, depinde de capacitatea
circuitelor seriale de interfa. Perechile de semnale RTS /CTS i DTR /DSR au rolul de a

59
ISBN Interfaare i protocoale

implementa un protocol hardware de comunicaie. Unul dintre sistemele conectate


solicit un transfer prin semnalul RTS sau DTR, iar cellalt prin CTS sau DSR confirm
disponibilitatea receptorului de a primi date. Tactul de recepie i cel de emisie pot fi
diferite dare de cele mai multe ori ele sunt egale i provin de la un genrator extern.
Transmisia serial RS232 poate fi cu tact standard i n acest caz cele dou generatoare
de tact genereaz un tact precizat n standard i n foile de catalog a circuitelor. Dac
tactul este generat la un singur sistem i este transmis prin linia de transmisie se obine o
transmisie serial cu transmiterea tactului, care poate asigura un debit mai mare de
informaie. n transmisia RS232 cele dou sisteme trebuie s aib mas comun, deci
conexiunea trebuie completat cu o linie de mas (GND).

Sistem 1 Sistem 2
RxD RxD
TxD TxD
RxC RxC
Tact Tact
TxC TxC
RTS RTS
CTS CTS
DTR DTR
DSR DSR
GND GND

Figura 5.12. Legtur RS232 complet

Dintre cele dou perechi de linii de protocol RTS /CTS i DTR /DSR se poate folosi doar
una, scznd astfel numrul de linii de conexiune de la 7 la 5. Protocolul hardware de
comunicaie se numete DTR sau RTS n funcie de perechea utilizat. Pentru transfer
poate fi implementat i un protocol software care se numete XonXoff. Acest protocol
nseamn transmisia pe linia TxD i recepia pe RxD a unor coduri, unul care semnific
liber (Xon) i unul care semnific ocupat pentru Xoff. n aceast situaie numrul de
linii de conexiune scade la 3, figura 5.13.

60
ISBN Interfaare i protocoale

Sistem 1 Sistem 2
RxD RxD
TxD TxD
GND GND

Figura 5.13. Transmisia RS232 pe 3 fire cu protocol software

Tactul de transmisie este standard dar evoluia echipamentelor a necesitat mrirea vitezei
de comunicaie. De aceea s-au definit viteze standard de comunicaie iar circuitele de
interfa serial prelucreaz prin divizare tactul standard pentru a obine mai multe viteze
de comunicaie standard, selectabile software. Vitezele de comunicaie standard sunt (n
Baud): 300, 600, 1200, 2400, 4800, 9600, 19200, 38400, 57600, 115200.

5.5.Circuit de interfa programabil


A.Descrierea circuitului
Ca exemplu de circuit programabil de interfa serial RS232 a fost ales circuitul Intel
8251, care a fost primul circuit conceput n acest scop de Intel. Circuitul se numete
circuit USART (Universal Syncronous Asyncronous Receiver Transmitter) pentru c
poate lucra att n mod asincron ct i sincron. Dac la interfeele paralele primul circuit
programabil realizat de Intel a fost utilizat o lung perioad de timp, circuitul de interfa
serial I8251 a fost nlocuit dup scurt timp de interfee mai evoluate. Alegerea acestui
circuit s-a datorat valorii educative, pentru c realizeaz att mod asincron ct i sincron
spre deosebire de circuitele mai noi care realizeaz doar modul asincron al interfeei
RS232. Un alt motiv este simplitatea circuitului I8251 i modul simplu de programare.
Schema bloc a circuitului este dat n figura 5.14.
Semnalele de interfa cu microprocesorul gazd au aceeai semnificaie ca la circuitul de
interfa paralel:
RD se execut cu ciclu de citire de la un port sau de la memorie. Acest pin se
conecteaz la semnalul de magistral IOR;
WR se execut cu ciclu de scriere la un port sau n memorie. Acest pin se
conecteaz la semnalul de magistral IOW;

61
ISBN Interfaare i protocoale

C/D, Comenzi / Date, cu 0 arat transfer de date, cu 1 transfer de comenzi. Se


conecteaz de regul la linia cel mai puin semnificativ de adres;
CLK tact de magistral pentru comanda operaiilor interne n interfa;
RESET este o linie care comand iniializarea circuitului prin tergerea
informaiei din toate registrele;
CS este o linie care selecteaz circuitul. Formrii acestui semnal i se dedic un
capitol ulterior;
D0-D7 magistrala de date a gazdei, 8 linii bidirecionale;

I8251 Canal serial

D0-D7 Buffer EMISIE TxD


de date TxC
RxD
Interfaa cu RECEPIE
RxC
microprocesorul
RD DTR
WR PROTOCOL DSR
CS RTS
C/D
CTS
CLK
RESET TxRDY
STARE
TxE
RxRDY
SYNDET

Magistrala intern

Figura 5.14. Schema bloc a circuitului programabil de interfa serial I8251

Semnalele de conectare cu linia RS232 sunt cele standard, descrise la 5b.1. n plus fa de
acestea exist cteva semnale care au rolul de a informa procesorul gazd de starea
circuitului. Aceste semnale sunt:
TxRDY transmitor pregtit pentru a primi date de pe magistrala D0-D7;
RxRDY receptorul a recepionat un caracter care este gata de a fi trimis pe
magistrala D0-D7;
TxE transmitor gol;
SYNDET un semnal cu sens dublu, interfaa anun c a detectat sincronizarea
sau este anunat c un circuit extern a detectat sincronizarea.
Aceste semnale pot fi utilizate ca cereri de ntrerupere pentru procesor.

62
ISBN Interfaare i protocoale

B.Funcionarea circuitului
Circuitul are ca i funcie principal conversia paralel serie i serie paralel. Un cuvnt
care trebuie transmis paralel este scris n circuit n format paralel de ctre procesor pe
liniile D0-D7, este serializat i n mod asincron i se adaug bii de START, STOP i de
paritate. Serializarea se face cu tactul TxC. Este transmis apoi serial pe linia TxD, cu un
protocol hardware activnd i citind perechile RTS/CTS, DTR/DSR sau un protocol
software XonXoff. Dup transmisia cuvntului se activeaz semnalul TxRDY pentru ca
procesorul s poat trimite alt cuvnt.
La recepia n mod asincron informaia serial care vine pe linia RxD este citit serial cu
tactul RxC ncepnd cu primul front care este recunoscut ca bit de START. Se verific
paritatea, apoi sunt eliminai biii de START i STOP i se face conversia serie paralel.
Circuitul activeaz semnalul RxRDY pentru ca procesorul s tie c poate citi caracterul
n format paralel pe liniile D0-D7.
n mod sincron la recepie circuitul poate lucra n dou moduri, cu sincronizare intern
sau cu sincronizare extern. Cu sincronizare intern la recepie citete continuu datele de
pe linia RxD i le compar cu un cuvnt de 8 bii de sincronizare. Acest cuvnt este
standardizat, este folosit la cadre de date cu codare ASCII i marcheaz nceputul unui
cadru de date. Acest mod de funcionare n care circuitul urmrete sincronizarea se
numete mod Hunt. n acest mod circuitul nu transmite date spre procesor. n momentul
recunoaterii cuvntului de sincronizare, datele sunt citite serial de pe linia RxD, sunt
transformate n format paralel, se verific bitul de paritate i sunt transmise spre procesor
pe liniile D0-D7. La detectarea sincronizrii se activeaz semnalul SYNDET. Semnalul
RxRDY se activeaz la fiecare cuvnt recepionat.
n mod sincron la recepia cu sincronizare extern, un circuit extern se ocup cu
recunoaterea cuvntului de sincronizare. Cnd este recunoscut un astfel de cuvnt se
activeaz ctre circuitul de interfa serial semnalul SYNDET i circuitul ncepe s
citeasc serial date de pe linia RxD, sunt transformate n format paralel, se verific bitul
de paritate i sunt transmise spre procesor pe liniile D0-D7.
n mod sincron la transmisie un cadru de date este transferat octet dup octet n format
paralel pe liniile D0-D7 ctre circuit, circuitul insereaz cuvntul de sincronizare,
calculeaz i insereaz bitul de paritate, serializeaz cuvintele i le transmite pe linia
TxD. Cnd a terminat de trimis un cuvnt semnalizeaz procesorului prin activarea
semnalului TxRDY.
n mod sincron cuvntul de sincronizare poate avea un octet sau doi octei.

63
ISBN Interfaare i protocoale

C.Programarea circuitului
Primul cuvnt de comand trimis n circuit cu linia C/D=1 comand modul de lucru i
principalii parametri de funcionare, astfel:
Dac D1=0 i D0=0 modul de lucru este sincron, la orice alt combinaie modul este
asincron.
Semnificaia biilor din primul cuvnt de comand n mod asincron
D7 D6 bii de STOP
D5 D4 paritate
0 0 invalid
X 0 dezactivat
0 1 1 bit
0 1 paritate par
1 0 1 bit
1 1 paritate impar
1 1 2 bii

D3 D2 lungime caracter D1 D0 Tact de transmisie

0 0 5 bii 0 0 invalid

0 1 6 bii 0 1 tact/64

1 0 7 bii 1 0 tact/16

1 1 8 bii 1 1 tact

Semnificaia biilor din primul cuvnt de comand n mod sincron


D7=0 cuvntul de sincronizare are doi octei, D7=1 cuvntul de sincronizare are 1 octet
D6=0 sincronizare intern, D6=1 sincronizare extern

D3 D2 lungime caracter
D5 D4 paritate
0 0 5 bii
X 0 dezactivat
0 1 6 bii
0 1 paritate par
1 0 7 bii
1 1 paritate impar
1 1 8 bii

D1=0, D0=0 pentru selectarea modului sincron

64
ISBN Interfaare i protocoale

Dac s-a selectat modul sincron cu sincronizare extern atunci dup primul cuvnt de
comand nu mai urmeaz alt cuvnt de programare specific modului sincron. Dac s-a
selectat modul sincron cu sincronizare intern cu un octet de sincronizare atunci urmeaz
un al doilea cuvnt de programare care conine octetul de sincronizare. Dac s-a selectat
modul sincron cu sincronizare intern cu doi octei de sincronizare atunci urmeaz al
doilea i al treilea cuvnt care conin aceti doi octei.
Al doilea cuvnt de comand i cuvntul de stare
Structura cuvntului al doilea de comand este dat n stnga i a cuvntului de stare (citit
cu semnalul C/D=1) este dat n dreapta.
Al doilea cuvnt de comand Cuvnt de stare
Bit Semnificaie Bit Semnificaie
D7 Intrare n mod Hunt D7 DSR
D6 Reset intern D6 SYNDET
D5 RTS D5 FE (Frame Error)
D4 Anularea tuturor erorilor din registrul D4 OE (Overrun Error)
de stare
D3 Transmisie caracter BREAK D3 PE (Parity Error)
D2 Activare recepie D2 TxE
D1 DTR D1 RxRDY
D0 Activare emisie D0 TxRDY

Primul cuvnt de comand programeaz parametric comunicaiei, iar al doilea cuvnt de


comand declaneaz execuia unei operaii: transmisia, recepie, modul de detectare a
sincronizrii etc. Transmisia unui caracter BREAK nseamn c linia de transmisie este
trecut n stare SPACE i nu mai este posibil transmisia informaiilor pe linie. O
utilizare posibil a acestui caracter BREAK este la detectarea automat a vitezei de
transmisie. Lungimea caracterului, prin urmare durata meninerii liniei n stare SPACE
poate da informaii receptorului despre viteza de transmisie, pentru ca acesta s-i poat
adapta tactul de recepie. Cu al doilea cuvnt de comand se pot genera semnalele de
protocol DTR i RTS dac protocolul folosit este cel hardware. Dac se folosete
protocolul software aceste linii nefolosite se pot utiliza de exemplu pentru semnalizarea
strii circuitului.

65
ISBN Interfaare i protocoale

Cuvntul de stare conine starea liniilor TxE, RxRDY,TxRDY i SYNDET pentru a putea
fi citite de procesor n cazul n care transferul este programat. n cuvntul de stare se
poate citi semnalul de protocol DSR i se pot identifica erorile care au aprut la
transmisie: eroarea de paritate PE cnd bitul de paritate transmis nu corespunde cu cel
generat la receptor, eroarea de sincronizare FE cnd nu s-a recepionat un bit de STOP
corespunztor i eroarea de suprascriere (OE) cnd s-a recepionat un cuvnt nainte ca
cel anterior s fie citit.

5.6. Modificarea nivelului de tensiune


n figura 5.10 se arat c nivelele de tensiune RS232 sunt ntre 3 i 15V, iar din figura
5.14 se vede c circuitul interfa serial nu are circuite de modificare de nivel i fiind n
tehnologie TTL are nivele ntre 0 i 5V. Prin urmare, semnalele generate i recepionate
de circuitul interfa serial trebuie convertite ca nivel n semnale RS232. Pentru aceasta,
cel mai cunoscut i utilizat circuit este MAX232. De cele mai multe ori, modulele
echipate cu interfa serial sunt alimentate doar de la 5V, aa nct circuitul MAX232
conine n interior dou convertoare DC/DC pentru a forma +12V i -12V din 5V.
Schema bloc intern a circuitului MAX232 este dat n figura 5.15 (stnga):

Nivele RS232 Nivele TTL

Figura 5.15. Schema bloc intern a circuitului MAX232

n figura 5.15 n dreapta se poate vedea o schem electric tipic de utilizare a unui circuit
MAX232 n cazul unei legturi seriale RS232 cu protocol software, la care comunicaia
se face pe dou fire TxD i RxD, i GND.

66
ISBN Interfaare i protocoale

n figura 5.16. se poate vedea o diagram de timp vizualizat cu un osciloscop pentru


transmiterea serial a unui caracter. Jos este reprezentat semnalul la nivele TTL iar sus se
observ semnalul cu amplitudine mai mare (RS232). Se poate observa c polaritatae la
RS232 este inversat de MAX232.

Figura 5.16. Diagrama transferului serial RS232 a unui caracter (jos la nivel TTL, sus la
nivel RS232)

O conexiune serial ntre un microcontroller i un PC prin interfaa serial este simpl,


figura 5.17.

67
ISBN Interfaare i protocoale

Figura 5.17. Conectarea unui microcontroller la un PC prin interfaa serial cu MAX232,


sursa http://creativeelectron.net/blog/2009/10/pic-serial-communition-in-pic-
microcontroller-1/

68
ISBN Interfaare i protocoale

6. Conectarea la un calculator pe magistral i la un port paralel

6.1. Selectarea unui dispozitiv pe magistral


La un moment dat pe o magistral sunt active 2 subsisteme, dintre care unul este
Masterul. Iar cellalt este subsistemul Slave selectat de Master, figura 6.1:

Magistrala de
adrese
SEL SEL

1
Master 2 i Slave

Magistrala de
date

Figura 6.1. Selecia prin adrese

Transferul de date are loc ntre Master i subsistemul i pe magistrala de date. Liniile de
adres necesare pentru adresarea locaiilor sau registrelor interne ale subsistemelor sunt
conectate direct la acestea. Cu liniile rmase libere se selecteaz subsistemul cu care
Masterul transfer date. Subsistemul selectat devine activ, celelalte subsisteme intr n
nalt impedan la interfaa cu magistrala. Selectarea poate fi:
1. Selectarea liniar se poate realiza dac numrul liniilor de adres rmase
disponibile este mai mare sau egal cu numrul circuitelor care trebuie selectate.
Fiecare circuit este selectat cu o linie de adres, avantajul soluiei fiind simplitatea
iar dezavantajul fiind faptul c se pierde din spaiul de adresare;
2. Selectarea decodificat, n care liniile de adres rmase libere sunt introduse ntr-
un decodificator DCD, iar ieirile DCD selecteaz fiecare un circuit. Se poate
astfel folosi ntregul spaiu de adresare;
3. Selectarea mixt, n care unele linii de adres libere selecteaz direct cte un
circuit n timp ce alte linii selecteaz prin intermediul unui DCD.
n primul exemplu se propune conectarea pe o magistral de adrese de 16 bii a unor
circuite de memorie de 16k. Selectarea liniar i harta memoriei sunt date n figura 6.2.

69
ISBN Interfaare i protocoale

Magistrala de 0000H
adrese A0-A15
3FFFH
4000H
A14 A15 MEM1
7FFFH
8000H
A0-A13 CS A0-A13 CS MEM2
MEM1 MEM2 BFFFH
C000H

FFFFH

Figura 6.2. Selectarea liniar n cazul memoriilor (CS activ n 1)

Magistrala de
adrese A0-A15 0000H
MEM1
3FFFH
A15, A14 4000H
MEM2
DCD
7FFFH
A0-A13 CS 8000H
0,0 0,1 MEM3
MEM1 A0-A13 CS
BFFFH
MEM2 1,0
A0-A13 CS 1,1 C000H MEM4
MEM3 A0-A13 CS FFFFH
MEM4

Figura 6.3. Selectarea decodificat n cazul memoriilor

Se poate observa c n cazul selectrii decodificate (figura 6.3.) se folosete ntreaga zon
de adresare. n cazul conectrii unui dispozitiv de IO se aplic aceleai reguli, diferena
fiind dat de faptul c dispozitivele de IO au mai puine linii de adresare pentru regitrii
interni, ca urmare rmn mai multe linii de adres libere. n al doilea exemplu se
conecteaz o interfa paralel programabil pe o magistral de adrese de 16 bii. Interfaa
utilizeaz 2 linii de adres pentru selectarea celor 3 regitrii interni. S presupunem c

70
ISBN Interfaare i protocoale

adresa de baz la care dorim conectarea circuitului este 0180H. n figura 6.4. este dat
schema bloc de conectare i harta memoriei.

Magistrala de
adrese A0-A15 0000H

A2-A15 0180H
0183H

DCD
FFFFH

Detalii privind decodificarea


A15 14 13 12 A11 10 9 8 A7 6 5 4 A3 2
0 0 0 0 0 0 0 1 1 0 0 0 0 0

DCD0 DCD1 DCD2 DCD3

0 1 8 0

AND

0180H CS

A0 A1 CS
Interfaa paralel

Figura 6.4. Conectarea unui circuit interfa paralel pe magistral

Selecia prin decodificare a fost realizat cu 4 DCD cu 4 intrri. Schema bloc este
detaliat n partea de selecie. Dup programarea circuitului de interfa paralel se pot
trimite /recepiona date de un octet cu o singur instruciune sau dou, dac datele sunt
extrase din memorie, ceea ce nseamn, de exemplu la un microcontroller RISC cu
instruciuni executate ntr-un singur tact o rat de transfer de ordinul de mrime a
tactului. La MC complexe, aa cum sunt de exemplu MC pe 32 de bii de la Fujitsu se
pun la dispoziia utilizatorului semnale de CS pentru diferite zone de memorie liber
pentru a uura implementarea aplicaiilor care necesit lucrul pe o magistral extern.

71
ISBN Interfaare i protocoale

De exemplu, considernd circuitul de interfa paralel conectat printr-o magistral


simpl ca i cea descris n capitolul de magistrale, programul de citire din memorie i
trimitere la un port de ieire va fi:
MOV BX, [adresa iniial de memorie]
MOV DX, adresa portului de ieire
Start: MOV AL, [BX]
OUT AL,DX
INC BX
JMP start
n bucl sunt o instruciune de citire din memorie (4 tacte), una de scriere la un port (5
tacte), una de salt i una de incrementare a unui registru. Dac presupunem c programul
din bucl dureaz 20 de tacte i frecvena magistralei este de 10MHz atunci viteza
maxim de transfer poate fi 10MHz/20=500kHz. Dac se transfer 8 bii la o parcurgere a
buclei, atunci debitul maxim de informaie va fi de 500Ko/s.

6.2.Exemple de conectare pe magistral la microcontrollere


Familia MCS 51 prevede magistrala extern chiar i la modelele mai ieftine, aa cum
este de exemplu MC Atmel AT89LS51. Pe magistrala extern poate fi conectat memoria
de date i memoria de program, spaiile de adresare fiind separate. Portul 0 poate fi
configurat ca port de adrese i date multiplexate pe 8 bii astfel: P0.0 AD0... P0.7
AD7. Portul 2 genereaz adresele superioare pentru adresarea pe 16 bii: P2.0 A8....
P2.7 - A15. Semnalele de comand generate sunt ALE, /RD, /WR i /PSEN (Program
Store Enable) care este un strob pentru memoria extern de program. O diagram de timp
de acces la magistral n cazul unui transfer de citire cu memoria de date (/PSEN
inactiv), figura 6.5.

ALE

/PSEN

/RD
Date
PORT 0

PORT 2

A0-A7 din portul P0 A8-A15 din portul P2

Figura 6.5. Diagrama de timp la un ciclu de citire dintr-o memorie extern de date

72
ISBN Interfaare i protocoale

O aplicaie de conectare la un MC din familia MCS 51 a unei memorii externe EPROM


de 64koctei pe magistral i a unui afiaj LCD pe un port paralel este dat n figura 6.6:

Figura 6.6. Conectarea unei memorii externe i a unui LCD la un MC 80C51 (sursa
www.ustr.net )

Pentru a adresa memoria EPROM se folosesc 16 bii de adres, cei mai puin
semnificativi la portul P0, cei mai semnificativi la portul P2. Un impuls pe linia ALE
ncarc biii de adres din portul P0 n latch-ul 74HC573. Se activeaz PSEN pentru c n
EPROM sunt stocate instruciuni (memorie extern de program), datele fiind pe liniile de
date din portul P0 putnd fi citite (/RD activ) sau scrise (/WR activ). Afiajul LCD este
conectat cu liniile de date la portul P1 i semnalele de comand astfel: RS datele
transmise pot fi un caracter de afiat sau o comand, RW sensul de transfer al datelor,
CE comanda de afiare. Un exemplu de programare:
MOV P1,A datele de afiat sunt trimise la portul P1
SETB RS datele reprezint un caracter de afiat
CLR RW sensul este de scriere n afiaj
NOP ntrziere
SETB CE comanda de afiare
NOP ntrziere
NOP
CLR CE linia de comanda de afiare este readus la 0

73
ISBN Interfaare i protocoale

RET ntoarcere n programul principal


nainte de a se lucra cu afiajul LCD este nevoie de trimiterea unor date pentru
iniializare, funcie de tipul afiajului.
MC AVR pe 8 bii Atmega64 admite lucrul cu magistral extern pentru cuplarea unei
memorii externe printr-o interfa intern special numit XMEM. Magistrala extern
este pe 8 bii de date i 16 bii de adres astfel: PA0- AD0... PA7-AD7, PC0-A8...PC7-
A15, PG0-/WR, PG1-/RD, PG2-ALE. Datele sunt multiplexate cu adresele pe portul PA.
O schem bloc de conectare a unei memorii externe este dat n figura 6.7.

Figura 6.7. Schema bloc de conectare a unei memorii externe la un Atmega64

Interfaa de magistral XMEM va detecta un acces la memoria extern i nu va ine cont


de setrile de direcie ale porturilor PA i PC. Viteza de transfer a datelor este mare, de
aceea se impun condiii de vitez pentru latch-ul de adrese. Pentru c memoriile au timpi
diferii de acces se pot defini 4 variante de lucru cu memoria extern prin inserarea a 0, 1
sau 2 stri de WAIT.
O diagram de timp pentru accesul la memoria extern pe 16 bii, la citire este dat n
figura 6.8.

74
ISBN Interfaare i protocoale

CLK (tact CPU)

ALE
Adrese Adrese
anterioare /RD

Adrese A15-A8

Adrese/ date
AD0-AD7
Date anterioare Adrese Date citite

Figura 6.8. Diagrama de timp pentru un acces la citire

n cazul microcontrollerelor cu putere de calcul mai mare, cum este de exemplu la


microcontrollerele Fujitsu de 32 de bii magistrala extern are mai multe linii. Lucrul
cu magistrala extern este mai complicat, transferurile de date pot fi pe 8, 16 sau 32 de
bii. n cazul MC din familia Fujitsu MB91F care sunt MC RISC, structura este complex
i magistralele sunt de mai multe tipuri. ntre CPU i memorie magistrala este Harvard
(magistrale diferite pentru date i instruciuni) pe 32 de bii, legtura cu dispozitivele de
I/O fiind realizat cu o magistral pe 16 bii, iar n exterior MC este prevzut cu o
magistral extern Von Neuman (magistral comun pentru date i instruciuni, aspecte
care se vor detalia n Capitolul 7).
Caracteristicile magistralei externe sunt:
Spaiul extern este adresabil cu 32 de bii fiind de 4GB.
Se pot defini pn la 8 bank-uri independente cu semnale de CS generate de MC.
Bank-urile pot fi de minimum 64K i pot ocupa orice poziie logic n aria extern.
Magistrala de date poate fi pe 32/16/8 bii, lrgime care poate fi diferit pentru bank-
uri diferite.
Se pot transfera date prin DMA.
O schem bloc a interfeei cu magistrala extern este dat n figura 6.9.

75
ISBN Interfaare i protocoale

Magistrala intern
Adrese Date
Magistral extern
Buffer de Acces
date citite de date, 32 de bii

Scriere date Acces

Magistral extern
Buffer de adrese de adrese 32 de bii

Generare CS
Semnale de selecie

Generare semnale Semnale de control


de control

Figura 6.9. Interfaa cu magistrala extern la microcontrollerele Fujitsu MB91F pe 32 bii

6.3. Conectarea pe porturi paralele


Conectarea unui dispozitiv (Echipament periferic EP) la un port paralel este cea mai
simpl soluie, mai ales la microcontrollere. De multe ori o aplicaie simpl implementat
cu microcontroller folosete microcontrollere ieftine care nu au magistral extern. n
cazul n care transferul de date este pe 8 bii i nu este un transfer cu protocol, atunci
conectarea este banal, figura 6.10. stnga. Un exemplu este aplicaia cu o felicitare care
atunci cnd este deschis cnt o melodie. Dac este nevoie de un transfer cu protocol
atunci se pot folosi linii dintr-un al doilea port al microcontrollerului, figura 6.10 dreapta.
n cazul reprezentat transferul este bidirecional i pe liniile P1.0 i P1.1 se genereaz
semnalele de RD i WR.

76
ISBN Interfaare i protocoale

MC
MC Port 0 EP
Port 0 EP P0.0 D0
P0.0 D0 P0.1 D1
P0.1 D1 P0.2 D2
P0.2 D2 P0.3 D3
P0.3 D3 P0.4 D4
P0.4 D4 P0.5 D5
P0.5 D5 P0.6 D6
P0.6 D6 P0.7 D7
P0.7 D7 Port 1
P1.0 RD
P1.1 WR

P1.7

Figura 6.10. Conectarea la porturi paralele

La o conectare cu protocol se poate evalua viteza maxim de transfer prin scrierea unei
secvene de program (pentru a putea compara cu viteza de transfer pe magistral secvena
este scris n limbajul x86).
MOV BX, [adresa iniial de memorie]
Start: MOV DX, adresa portului de ieire P0
MOV AL, [BX]
OUT AL,DX Se trimit date n portul P0
INC BX
MOV DX, adresa portului de ieire P1
WR este trecut n High
MOV AL, 02
OUT AL,DX
MOV AL,00 WR este trecut n Low
OUT AL,DX
JMP start
Se poate vedea c secvena de program din bucl este de 2,5 ori mai lung dect la
trimiterea datelor pe magistral deoarece semnalul WR trebuie activat soft. Acest lucru
nseamn c viteza maxim de transfer n acest caz este de 2,5 ori mai mic, deci
200Ko/s.

77
ISBN Interfaare i protocoale

Dac interfaa echipamentului periferic este pe 16 bii i microcontrollerul are disponibile


doar dou porturi, dac transferul are nevoie de linii de procol i viteza de transfer
necesar nu este mare se pot folosi metode de conectare care includ circuite suplimentare.
Astfel, dac este nevoie de un transfer pe 16 bii de ieire din microcontroller se pot
folosi 2 circuite buffer (figura 6.11) iar dac transferul este de intrare se pot folosi
multiplexoare (figura 6.12.

DI0 DO0
EP
D0
DI1 DO1
D1
MC DI2 DO2
D2
DI3 DO3
Port 0 DI4 DO4
D3
P0.0 D4
DI5 DO5
P0.1 D5
DI6 DO6
P0.2 D6
DI7 DO7
P0.3 D7
P0.4 STB1
P0.5
P0.6
P0.7 DI0 DO0 D8
DI1 DO1 D9
DI2 DO2 D10
DI3 DO3 D11
DI4 DO4 D12
DI5 DO5 D13
DI6 DO6 D14
DI7 DO7 D15
Port 1 STB2
P1.0
P1.1
RD
P1 7 WR

Figura 6.11. Conectarea unui EP de ieire pe 16 bii la un port de date

n figura 6.11 se poate vedea conectarea a dou circuite circuite buffer de 8 bii care au la
intrare aceleai linii de date de la portul P0 al microcontrollerului. n primul pas se
ncarc primul buffer comandat cu un strob (STB1), la liniile de date fiind pui 8 bii din
cei 16 ai cuvntului. n al doilea pas se ncarc al doilea buffer comandat cu STB2 i
avnd la liniile de date ceilali 8 bii. Cu un semnal de WR cei 16 bii sunt aplicai la EP.
n figura 6.12. cte 2 linii de date de la EP sunt aplicate unor multiplexoare 2 la 1. Cele 2
ci ale multiplexoarele sunt comandate de unul sau dou linii auxiliare din portul P1. n
primul pas se citesc 8 bii selectnd una dintre ci i activnd semnalul RD, apoi se citesc
urmtorii 8 bii activnd cealalt cale i semnalul RD.

78
ISBN Interfaare i protocoale

MUX0 EP
DO A D0
B
D1
MC MUX1
DO A
D2
Port 0 B
D3
P0.0 D4
P0.1 D5
P0.2
P0.3 D6
P0.4 D7
P0.5
P0.6 Selecie
P0.7
D8
D9
D10
D11
D12
MUX7 D13
DO A D14
B
D15
Port 1
P1.0
P1.1
RD
P1 7 WR

Figura 6.12. Conectarea unui EP de intrare pe 16 bii la un port de date

A treia extindere analizat este n cazul n care se dorete conectarea mai multor EP la
acelai port de date. Aceast situaie este analizat ntr-un exemplu de conectare a unui
circuit de interfa paralel la porturi paralele, schema bloc din figura 6.13:

MC
P0.0-P0.7 P1.0 P1.1 P1.2 P1.3 P1.4 P1.5 P1.6 P1.7

DCD

CS1,2,3

D0-D7 A0 A1 CS RD WR
Interfa paralel

Figura 6.13. Conectarea unui circuit interfa paralel la porturi paralele

79
ISBN Interfaare i protocoale

Portul 0 al MC este folosit pentru transferul de date pe 8 bii, bidirecional. Liniile 0 i 1


din portul P1 sunt folosite pentru selectarea registrelor interne ale interfeei paralele.
Liniile 2 i 3 prin decodificare pot selecta unul din patru circuite conectate cu liniile de
date la portul P0 al MC. Liniile 3 i 4 ale portului P1 stabilesc sensul transferului. Se
poate observa din schema bloc faptul c o conectare la porturi paralele este mai simpl
dect una pe magistral, mai ales dac numrul de circuite conectate este mic.
Pentru un transfer de un octet se pune octetul pe magistrala de date apoi se selecteaz
portul intern al interfeei paralele prin punerea unui cuvnt pe portul 1, apoi se trimite un
RD sau WR, ceea ce nseamn un cuvnt pe portul P1 care face RD sau WR 1, urmat de
un cuvnt care face RD sau WR 0. Din aceast succesiune de cuvinte de comand se
poate deduce c transferul este de cel puin 4 ori mai lent dect la conectarea pe
magistral.

6.4. Concluzii
La alegerea modului de conectare pe magistral sau la un port paralel exist cazuri
simple, n care decizia este uor de luat. De exemplu dac EP este pe 8 bii, unidirecional
i transferul este fr protocol se va opta rapid pentru cuplarea la un port. Dac aplicaia
solicit o vitez mare de transfer, cum este de exemplu un transfer de date video se va
alege cuplarea pe magistral. Sunt cazuri ns la care alegerea este mai dificil, n cazul
n care de exemplu EP este de 16 bii, bidirecional i transferul cu protocol. n acest caz
este nevoie de circuite suplimentare att la cuplarea la magistral ct i la un port paralel.
Poate fi mai favorabil gsirea unui microcontroller cu mai multe porturi paralele pentru
a nu mai fi nevoie de multiplicarea liniilor unui port. Alegerea trebuie s aib ca scop
principal asigurarea funcionalitii cu un numr de circuite suplimentare ct mai mic,
ceea ce asigur simplitatea maxim cu consecine favorabila la mrirea fiabilitii i
scderea costurilor.

80
ISBN Interfaare i protocoale

7.Interfee integrate n microcontrollere

7.1. Microcontrollere
Microcontrollerul (MC) are schema bloc general simplificat din figura 7.1. n aceast
schem sunt puse n eviden interfeele, numite i dispozitive de intrare ieire I/O.
Unitatea central execut instruciunile din memoria program, pe care le primete prin
magistrala de date. Structura Harvard este posibil i rspndit la MC pentru c de
regul instruciunile sunt stocate n memoria ROM iar datele n cea RAM. Fiecare MC
are un controller de ntreruperi i unele au controller de DMA care admit att intrri din
exterior ct i de la modulele interne. Modulele de I/O pot fi seriale sau paralele. Fiecare
modul transfer date cu exteriorul prin intermediul registrului de date (RD). Modulul este
comandat (configurat) de unitatea central prin intermediul unui registru de comenzi
(RC) i se poate citi starea modulului prin registrul de stare (RS), prin care se pot i cere
ntreruperi. Registrele modulelor de I/O pot fi vzute de UC ca locaii de memorie (la
familia Motorola) sau ca dispozitive de I/O ntr-un spaiu de adresare separat (MCS 51).
De regul structura de baz a familiei conine anumite interfee considerate foarte
importante (timer, canal serial UART) i linii de I/O grupate n porturi paralele de uz
general. Pe structura de baz se adaug diferite tipuri de interfee care mpart liniile de
I/O cu porturile paralele de uz general.

Unitate central

Unitate Registre Memorie pentru Memorie


aritmetic interne programe pentru date
i logic
(ALU)

BUS INTERN

Controller de
ntreruperi RS RC RD

Controller DMA

Figura 7.1. Schema bloc general simplificat a unui microcontroller

81
ISBN Interfaare i protocoale

Blocurile interne ale MC sunt legate ntre ele printr-o magistral (bus) de date i una de
adrese. Mrimea acestor magistrale constituie una dintre caracteristicile cele mai
importante ale unui MC.
Arhitectura Von Neuman prevede existena unui bus unic folosit pentru circulaia datelor
i a instruciunilor. Cnd un controller cu o astfel de arhitectur adreseaz memoria pe
linia de date se pune nti codul instruciunii apoi coninutul memoriei, accesul fiind
realizat n 2 pai, deci destul de lent. Arhitectura Harvard prevede un bus separat pentru
date i instruciuni. Cnd instruciunea este pus pe busul de instruciuni, datele de la
instruciunea anterioar sunt pe busul de date. Structura MC este mai complex, dar
performanele de vitez sunt mai bune. Magistrala de date i cea de adrese pot fi separate
sau multiplexate. Magistralele pot s nu fie scoase n exterior (Motorola 6805) sau pot fi
scoase n exterior direct (MCS 51) sau multiplexate (MC pe 16 sau 32 de bii).

7.2. Unitatea central i memoria


Unitatea central este format din ALU i un set de regitri interni, figura 7.2., similari
unor locaii de memorie, folosii pentru memorarea unor date des folosite sau pentru
programarea unor anumite funcii. Diferitele familii de MC folosesc seturi diferite de
regitri. Exist ns civa regitri comuni:
1. A (Accumulator) registrul acumulator care este folosit deseori pentru a stoca un
operand i rezultatul unei operaii aritmetice.
2. I registru de index, folosit la adresri indirecte.
3. S registru de stare, care conine indicatorii de stare: Carry, Zero etc.
4. PC (Program Counter) este stocat adresa urmtoarei instruciuni de executat.
Dup un RESET (iniializarea MC), registrul PC se ncarc dintr-o locaie de
memorie numit vector de reset. Aceast locaie conine adresa primei instruciuni
de executat. Dup execuia acestei prime instruciuni, PC se incrementeaz.
5. SP (Stack Pointer) conine indicatorul de stiv. Stiva este o memorie de tip LIFO,
n care ultimul octet stocat este primul scos din memorie. Coninutul acestui
registru stabilete adresa din memorie unde este definit stiva.

82
ISBN Interfaare i protocoale

UC
Acumulator (CISC)
Registre generale (RISC)
ROM/PROM/EPROM
(memoria program)
Program Counter

RAM
ALU
Indicator de stiv
(memoria
de date)
Decodificare
instruciuni
Registru de stare

Magistral intern

Magistrala de instruciuni pentru sisteme cu


arhitectura Harvard

Figura 7.2. Schema bloc a unei uniti centrale tipice

Tipurile de memorii utilizate n prezent la microcontrollere sunt:


1. Memoria ROM (Read Only Memory) este cea mai ieftin i simpl memorie i se
folosete la stocarea programelor n faza de fabricaie. Unitatea central poate citi
informaiile, dar nu le poate modifica.
2. Memoria PROM (Programmable Read Only Memory) este similar cu memoria ROM,
dar ea se poate programa de ctre utilizator. Dup posibilitile de tergere, aceast
memorie poate fi de mai multe feluri:
OTP (One Time Programmable, PROM) este de fapt o memorie EPROM, dar
chipul a fost capsulat ntr-o capsul de material plastic fr fereastr, care este
mult mai ieftin. Memoria nu se poate terge sau reprograma. Preul unui MC cu
OTP este mic, viteza este bun, dar aplicaiile sunt lipsite de flexibilitate.
Memorii care pot fi terse electric de ctre unitatea central, n timpul
funcionrii. tergerea este selectiv, iar pentru renscriere trebuie fcui mai muli
pai. Astfel de memorii sunt cele EEPROM (Electrically Erasable Programmable
Read Only Memory) i memoria FLASH EPROM.

83
ISBN Interfaare i protocoale

3.Memoria RAM (Random Access Memory) este o memorie volatil care poate fi citit
sau scris de unitatea central. Locaiile din RAM pot fi accesibile n orice ordine. Pe
chip, memoria RAM ocup mult loc i implicit costurile de implementare sunt mari. De
aceea un MC include de obicei puin RAM.
Observaii:
1. Stocarea programelor n memorii nevolatile permite ca MC s fie programat fr a
fi scos din circuitul n care funcioneaz (Field Programming/ Reprogramming).
2. Productorii recomand ca la producii de volum mare s se foloseasc memoria
ROM, care se nscrie la fabricant, cu masc, la producii de volum mic s se
foloseasc memoria OTP (PROM) iar pentru prototipuri s se foloseasc memoria
EEPROM sau FLASH.
3. Unele familii de MC trateaz spaiul de intrare ieire ca i memoria, iar altele au
spaii diferite de adresare pentru memorie i spaiul I/O. Tratarea unitar a acestor
spaii are avantajul simplitii dar limiteaz numrul de locaii de memorie
adresate. Tratarea unitar este justificat de asemnrile existente ntre stocarea
unui bit n memorie sau ntr-un latch de I/O.
7.3. Timerul
Timerul este modulul intern care realizeaz funciile de timp, fiind unul dintre modulele
cele mai importante i des folosite. Modulele timer sunt foarte diferite ca i funcionaliti
i complexitate, aspect de care trebuie inut cont la alegerea microcontroller-ului pentru
aplicaiile sensibile la timp. Schema bloc a modulului timer este dat n figura 7.3.
Tactul pentru timer poate fi ales tactul sistem sau un tact de la un pin extern. Tactul poate
fi divizat de un numr programabil de ori cu un numrtor de prescalare (timer de
prescalare). Comanda funcionrii timerului se face cu un registru de control i stare.
Timerul este format din 3 module, a cror caracteristic este numrul de bii:
numrtor (timer)
registru de ncrcare
registru de captur
Modurile de lucru sunt urmtoarele:
1. mod numrtor, n care Timerul numr tactul de la intrare i la depire nscrie
un bit n registrul de stare sau se poate cere o ntrerupere. Dac tactul este extern
nseamn c se face o numrare a evenimentelor externe. De regul frontul activ
se poate programa, adic s se fac o incrementare a numrtorului la front
pozitiv sau negativ.
2. mod captur, n care un pin exterior poate comanda oprirea timerului i ncrcarea
valorii la care a ajuns n registrul de ncrcare. Acest mod poate fi folosit pentru
msurarea unei perioade de timp.

84
ISBN Interfaare i protocoale

Tact Alegere Tact fr


sistem tact prescalare sau
(intern) cu prescalare

Tact de Prescalare
la un pin
extern

Bit selecie tact Bii selecie prescalare Selecie prescalare


REGISTRU DE CONTROL I STARE
Mod de lucru Depire

Magistral intern

Timer 0 Cerere de
ntrerupere
Registru de ncrcare

Timer 8-16 bii

Registru de captur

Pin de captur din exterior

Figura 7.3. Schema boc a modulului timer

7.4. Interfa de comunicaii seriale asincrone


Portul de comunicaii seriale asincrone este numit UART (Universal Asyncronous
Receiver Transmitter), iar Motorola l numete pentru microcontrollerele proprii port SCI
(Serial Communications Interface). Schema bloc a interfeei este dat n figura 7.4.
Caracterele seriale sunt transmise sau recepionate serial n registrele de transmisie sau
recepie. La recepia unui caracter, acesta se ncarc n bufferul de recepie i se cere o
ntrerupere. La emisie, un caracter se introduce n bufferul de transmisie de unde este
trecut n registrul de deplasare i se transmite serial, cerndu-se i o ntrerupere. Ceasul
poate fi selectat intern sau extern. Dac este selectat intern, el se formeaz din tactul
sistemului cu o divizare printr-un numrtor de 16 bii (prescalare) i apoi un numrtor
de 11 bii. Comanda USART se realizeaz cu un registru de stare i control

85
ISBN Interfaare i protocoale

Cereri de ntrerupere ctre UC

Magistrala intern

Registru de Buffer de Buffer de


prescalare transmisie recepie

Rata Baud Registru de Registru de


deplasare la deplasare la
transmisie recepie

TxD RxD

Figura 7.4. Schema bloc a interfeei de comunicaii seriale asincrone

7.5. Interfa de comunicaii seriale sincrone


Cu portul SPI (Serial Peripheral Interface) se poate realiza o comunicaie sincron
simpl, folosit de regul pentru a transfera date ntre circuite pe aceeai plac cu MC.
Un transfer bidirecional necesit 3 pini, unul dintre ei fiind alocat ceasului de transmisie
generat de masterul SPI. Cu SPI se pot realiza transferuri i ntre MC. Transferurile pot fi
full duplex. Schema bloc a conectrii unor dispozitive prin interfea serial sincron este
dat n figura 7.5.
Numai un master SPI poate iniia un transfer. Masterul scrie un octet n registrul de
transmisie SPI de undele datele merg ntr-un registru de deplasare care le serializeaz i
le transmite cu ceasul de transmisie. Transmisia se termin dup 8 tacte. n slave datele
intr n registrul de deplasare cu tactul de recepie, acelai cu cel de transmisie. Cnd au
intrat 8 bii, caracterul intr n registrul de date. Pentru a se evita erorile de vitez (sau de
suprascriere)(Overrun) trebuie ca octetul din registrul de date s fie citit nainte ca un alt
octet s fie transmis din registrul de deplasare.
Pinii au urmtoarea semnificaie:
SCK (Serial Clock) este ieire de tact pentru sincronizare;
MOSI (Master Output Slave Input) este ieirea serial pentru MASTER;

86
ISBN Interfaare i protocoale

MISO (Master Input Slave Output) este intrarea serial pentru MASTER;
/SS (Slave Select) selecteaz circuitul SLAVE i protejeaz MC dac dou
circuite sunt master. Acest semnal activ dezactiveaz la cellalt port SPI modul
master.

MC master
SPI MISO
MOSI
SCK
/SS
+1
Port I/O
0
1
2

/SS SCK MOSI MISO /SS SCK MOSI MISO

MC slave MC slave

Figura 7.5. Schema bloc a conectrii unor dispozitive prin interfea serial sincron
Dac dispozitivul master lucreaz cu mai multe dispozitive slave atunci semnalul /SS nu
este suficient i selecia dispozitivului slave se face cu linii de ieire dintr-un port
auxiliar, ca n figur.

7.6. Interfaa CAN


Protocolul CAN (Controller Area Network) a fost definit de BOSCH n 1991 pentru
utilizarea pe o magistral la autoturisme, unde s ndeplineasc condiii specifice:
procesare n timp real, fiabilitate ntr-un mediu perturbat i pre mic.
La transmisia CAN datele sunt codificate pentru a fi trimise pe linie n cod NRZ, iar la
fiecare grup consecutiv de 5 bii cu aceeai valoare logic se introduce un bit (deci o
tranziie) care se extrage la decodificare. Nivelele pe linie sunt numite dominant (0) i
recesiv (1).
Transferul de date prin CAN se face cu cadre (blocuri de date) care sunt citite de toate
dispozitivele cuplate la CAN dar sunt reinute de acestea doar acelea care conin adresa
dispozitivului.
Fiecare dispozitiv CAN recepioneaz toate cadrele i dispune de un filtru de acceptan
care selecteaz cadrul cu adresa proprie a dispozitivului. n configuraie se pot aduga noi
dispozitive, cu adres proprie, fr nici un efort. Dac cadrul recepionat este eronat, toate

87
ISBN Interfaare i protocoale

dispozitivele CAN trimit un cadru de control care indic o eroare. Fiecare cadru eronat
incrementeaz n dispozitiv un numrtor de erori (care este decrementat de cadrele
valide). Un numr de erori mai mare de o anumit limit produce decuplarea
dispozitivului de la magistrala CAN. Schema bloc a interfeei CAN este dat n figura
7.6.

Magistrala
intern

Circuit pt. comanda Registre


interfeei de
comand,
stare i
Serializare/ Gestionarea date
deserializare erorilor
Magistrala CAN

Transceiver
Tx
Generare CRC
TxEN
Registre de deplasare
Inserare (recunoatere MUX Rx
adres)
VREF (Vcc/2)
Introducerea biilor de
sincronizare
Wakeup VREF

Figura 7.6. Schema bloc a interfeei CAN

7.7. Ceasul de gard


Ceasul de gard este un timer care poate fi programat s numere un tact care provine de
la un registru de prescalare, figura 7.7. Dac numrtorul ajunge la capt, semnalul de
depire declaneaz un RESET al circuitului. Este sarcina programatorului s scrie n
registrul de control un cuvnt care va reiniializa numrtorul. n cazul n care MC nu mai
este sub controlul programului, el va fi resetat de ctre ceasul de gard

88
ISBN Interfaare i protocoale

CLR
Numrtor RESET

Registru de control Registru de prescalare

Figura 7.7. Ceasul de gard

7.8. Generator PWM


Modulaia impulsurilor n lime (Pulse Width Modulation) are multe aplicaii, mai ales
n comanda motoarelor de curent continuu sau a surselor de alimentare. Din acest motiv,
unele MC includ n structura lor un modulator PWM ca interfa distinct. Un semnal
PWM arat ca n figura 7.8.

T2

T1
Factorul de umplere
este T2/T1

Figura 7.8. Semnal cu punerea n eviden a factorului de umplere

Schema bloc a unui generator PWM este reprezentat n figura 7.9. Frecvena de repetiie
este programat cu un registru de prescalare care genereaz un ceas pentru un numrtor
de 8 bii. Coninutul numrtorului este comparat cu cel al registrului PWM, dac este
mai mare ieirea PWM este LOW, dac este mai mic sau egal PWM este HIGH. Factorul
de umplere poate fi astfel modificat ntre 0 i 254/255.

89
ISBN Interfaare i protocoale

PWM Comparator pe 8 bii

Registru PWM Numrtor

Registru de prescalare

BUS INTERN

Figura 7.9. Schema bloc a unui generator PWM

7.9. Convertor analog digital


Schema bloc a unei interfee tipice de conversie a semnalelor analogice n semnale
digitale este dat n figura 7.10. Circuitul analogic de intrare const ntr-un multiplexor
analogic i un convertor A/D de 8-10-12 bii cu aproximaii succesive (sunt cteva MC cu
convertor cu integrare, COP8). Tensiunea de referin pentru convertor i masa analogic
sunt conectate prin pini speciali. Convertorul este controlat de registrul de control, care
selecteaz i canalul de conversie. Terminarea conversiei este semnalizat cu un bit ACK
tot n registrul de control, iar rezultatul conversiei este stocat n registrul de date.
O conversie poate fi declanat n 3 feluri:
-start n operare normal i reintrare n operare normal;
-start n operare normal apoi intrare n mod inactiv (Idle);
-intrare n mod inactiv i declanarea unei conversii din exterior printr-un pin exterior.
De regul modul de conversie poate fi:
-conversie singular
-conversie continu
Cu registrul de control se poate programa:
-selecia canalului analogic dorit de la intrare la convertorul AD;
-se poate programa ca o conversie s fie declanat de pinul extern ;
-se poate declana o conversie;
-conine un bit care semnaleaz c s-a terminat conversia, care poate solicita o cerere de
ntrerupere;

90
ISBN Interfaare i protocoale

Decl.
ADC0 Multiplexor conversie
ADC1 analogic Convertor Analog
ADC2 Digital
ADC3

Selecie START ACK Date


canal

Registru de control Registru de date

BUS INTERN

Figura 7.10. Schema bloc a unui convertor analog digital

7.10. Proiectarea sistemelor cu MC n vederea siguranei n exploatare


Pot apare 2 categorii de probleme: aplicaia poate genera perturbaii (conduse sau radiate)
sau poate fi susceptibil la perturbaii (conduse sau radiate). Descoperirea unor probleme
de EMI n timpul produciei aplicaiei poate fi costisitor deoarece s-ar putea s fie
necesar reproiectarea aplicaiei, de aceea este necesar s se proiecteze n vederea
EMC.
Perturbaiile sunt generate de armonicile semnalelor digitale din circuit. Ele pot fi radiate
de buclele de cablaj care se comport ca i antene sau sunt conduse spre sursa de
alimentare. Orice cale inductiv sau capacitiv pe traseul acestor armonici poate provoca
vrfuri de tensiune sau cderi de tensiune. Pentru un sistem cu un MC, perturbaiile sunt
generate de regul de cablaj, deoarece circuitele integrate au dimensiuni prea mici pentru
a putea emite. Semnalul cu frecvena cea mai mare este tactul sistemului, generat cu un
circuit oscilant cu cuar. Datorit faptului c forma semnalului este apropiat de forma
sinusoidal, coninutul de armonici este mic. Dac tactul este adus din exterior, este
nevoie de mare grij pentru a reduce buclele de circuit emisive.
Pentru un sistem care are memorii externe cuplate la MC, liniile de transfer pot fi
emisive, deoarece frecvenele de tranziie sunt mari.

91
ISBN Interfaare i protocoale

Prin metodele de programare defensiv se poate mbunti mult sigurana n


funcionare, fr nici un hardware suplimentar. Cteva din cele mai eficiente metode
sunt:
-rencrcarea periodic a registrelor care comand pinii de I/O i a celor mai importante
registre. Pinii de I/O sunt legtura MC cu exteriorul, de aceea ei sunt supui
perturbaiilor. Readucerea lor la nivele corecte micoreaz probabilitatea ca o perturbaie
s se propage n circuit.
-citirea repetat a semnalelor de intrare micoreaz riscul unei citiri greite. De exemplu
citirea unui pin care este legat la o tast de 3 ori la rnd la intervalul de timp normal
pentru 3 citiri succesive, dac s-a citit aceeai valoare, elimin posibilitatea unei
perturbaii.
-dac exist locaii n RAM nefolosite, dup fiecare etap de rulare a programului se scrie
un bit n RAM. nainte de rularea unei rutine critice se verific valoarea stocat n RAM
i rutina se execut doar n cazul n care valoarea din RAM este corect.
-dac ntr-o aplicaie exist memorie nefolosit, aceasta se umple cu instruciuni de salt
ntr-un loc cunoscut pentru ca un salt neprevzut n memorie datorat unei perturbaii s
fie anulat de saltul n locul cunoscut, cu o anumit probabilitate.

7.11. Medii de programare i exemple


Pentru a realiza programe, pentru fiecare familie de microcontrollere exist medii
software care uureaz munca de programare, testare i nscriere a codului n MC. Astfel
cteva exemple de capturi de ecrane ale unor medii de dezvoltare sunt date n figura 7.11.

Figura 7.11. Mediu de dezvoltare pentru MCS 51 Franklin software (stnga) i mediu de
dezvoltare pentru ATMEL RISC, AVR Studio, (dreapta)

92
ISBN Interfaare i protocoale

Mediul de dezvoltare MPLAB pentru PIC este artat n figura 7.12. stnga i o aplicaie
cu microcontroller realizat de un student la proiect este dat n dreapta.

Figura 7.12. Mediul de dezvoltare MPLAB pentru PIC (stnga) i o aplicaie cu


microcontroller (dreapta)
Se poate observa n aplicaia cu microcontroller faptul c realizarea a fost la nivel de
amator, fr construirea unui cablaj, totui aplicaia a funcionat, a fost simplu de realizat
i studentul a avut ocazia s nvee multe lucruri. Pe plac, al doilea circuit este un
MAX232 pentru adaptarea de nivel de tensiune de la interfaa serial asincron UART la
RS232.
O aplicaie realizat pentru proiectul de diplom este un sistem mobil echipat cu un
senzor de gaz, un modul Arduino cu microcontroller, drivere pentru motoare de curent
continuu i modul Bluetooth, figura 7.13 stnga. Comanda de la distan se face cu un
telefon mobil, interfaa grafic a programului fiind artat n dreapta.

Figura 7.13. Aplicaie cu microcontroller

93
ISBN Interfaare i protocoale

8.Interfee pentru reeaua Ethernet

8.1. Introducere

Ethernet este denumirea unei familii de tehnologii de reele de calculatoare bazat pe


transmisia cadrelor i utilizat la implementarea reelelor locale LAN. Numele provine de
la cuvntul englez ether (tradus: eter), despre care mult vreme s-a crezut c este mediul
n care acionau i comunicau zeitile. Ethernet-ul se definete printr-un set de standarde
pentru cablare i semnalizare electric aparinnd primelor dou niveluri din modelul
OSI - nivelul fizic i legtur de date.
Ethernet-ul este standardizat de IEEE n seria de standarde IEEE 802.3. Aceste standarde
permit transmisia datelor prin mai multe medii fizice, cum ar fi:
cabluri coaxiale, folosite n primele reele Ethernet, n topologie bus;
cabluri torsadate, pentru conectarea sistemelor individuale la reea, n topologie
stea;
cabluri de fibr optic, pentru vitez i debit mare de date.

Istoricul Ethernet ncepe n 1973 la Centrul de Cercetri de la Palo Alto al corporaiei


Xerox PARC, cnd Robert Metcalfe a proiectat i testat prima reea. El a dezvoltat
metode fizice de cablare ce conectau dispozitive pe Ethernet i standardele de
comunicaie pe cablu. Iniial, comunicaia se desfura la viteza de cca. 3 Mbps, pe un
singur cablu, partajat de toate dispozitivele din reea. Acest lucru a permis extinderea
reelei fr a necesita modificri asupra dispozitivelor existente n reea.

n 1979 Digital Equipment Corporation (DEC) i Intel s-au asociat cu Xerox pentru
standardizarea sistemului. Prima specificaie a celor trei companii, denumit Ethernet
Blue Book, a fost lansat n 1980, cunoscut sub denumirea DIX standard. Era un sistem
pe 10 Mbit/s ce utiliza cablu coaxial gros ca backbone n interiorul unei cldiri, cu cabluri
coaxiale subiri legate la intervale de 2.5 m pentru a conecta staiile de lucru.

IEEE (Institute of Electrical and Electronic Engineers) a lansat n 1983 standardul oficial
Ethernet denumit IEEE 802.3 dup numele grupului de lucru care a rspuns de
dezvoltarea sa. n 1985 a lansat versiunea 2 (IEEE 802.3a) cunoscut sub denumirea
Thin Ethernet sau 10Base2, n acest caz lungimea maxim a cablului este 185 m.
Structura unei reele locale mici este dat n figura 8.1. Topologia (structura) este n stea,
ceea ce prezint avantajul c ntreruperea unui fir nu ntrerupe reeaua, dar i dezavantajul
unui consum mai mare de cablu fa de topologia bus. Tot n aceeai figur sunt
prezentate n partea de jos un conector RJ45 (stnga), cablu UTP (Unshielded Twisted

94
ISBN Interfaare i protocoale

Pair) (mijloc) i STP (Shielded Twisted Pair) (dreapta). n figura 8.2. este reprezentat un
cablu optic, conectori i structura intern.

Hub
Switch
Router

Conexiune
INTERNET

Figura 8.1. Structura unei reele locale Ethernet, conector i cabluri pentru transmisie

Strat de protecie din


material plastic Strat de de
rezisten

Acoperire Fibra optic


pentru reflexie

Figura 8.2. Cablu optic

95
ISBN Interfaare i protocoale

Adresa IP (Internet Protocol) este o adres numeric alocat fiecrui calculator conectat
n Internet. Adresa IP permite identificarea expeditorului i destinaiei unui mesaj. Prima
versiune aprut care este folosit i astzi este IPv4 n care adresa este pe 32 de bii.
Reprezentarea canonic a IP-ului IPv4 este pe grupe de 8 bii, n zecimal, separate de
punct, de exemplu: 192.168.0.1. Creterea numrului de calculatoare cuplate n Internet a
fcut ca IP-urile n aceast versiune s fie insuficiente i astfel a aprut IPv6, pe 128 bii.
Autoritatea internaional Internet Assigned Numbers Authority (IANA) distribuie
adresele IP la 5 autoriti regionale care apoi le distribuie la ISP (Internet Service
Provider)
O schem bloc a conexiunii prin reea Ethernet local a calculatoarelor este dat n figura
8.3. Fiecare calculator trimite date serial pe Tx i recepioneaz date pe Rx. Dou perechi
de fire sunt libere pentru conectarea unei linii telefonice. Cadrul (irul) de date seriale
conine adresa IP a sursei i a destinaiei. n centrul reelei se poate afla un Switch care
analizeaz adresa destinatarului i trimite datele doar la destinatar sau un Router care, n
plus fa de switch, stabilete automat adrese IP pentru fiecare calculator cuplat i permite
conexiunea la Internet.

ROUTER Rx
Calculator 1
Tx
IP1

Rx
Calculator 2
Tx
IP2

Dup tipul conexiunii


la Internet router-ele Rx
pot fi: Calculator 3
IP3 Tx
Cuplate prin
UTP
Cuplate prin linia Bloc conexiune Internet
telefonic
Cuplate optic

Figura 8.3. Schema bloc a conexiunii prin reea Ethernet local a calculatoarelor

Dac 2 sau mai multe calculatoare transmit date n exact acelai moment se produce o
coliziune, figura 8.4. Coliziunea este detectat de ambele calculatoare care au produs-o
pentru c ambele urmresc linia Tx. Linia Tx este comun, deci dac un calculator pune

96
ISBN Interfaare i protocoale

logic 1 i unul logic 0 linia va fi n 0. Cnd s-a detectat o coliziune ambele calculatoare
nceteaz transmisia i o rencep dup trecerea unui interval de timp generat aleator (la
ntmplare).

Nivel linie calculator 1

t
Nivel linie calculator 2

t
Nivel linie rezultat
Niciun calculator nu citete
ce a scris pe linie, deci s-a
detectat o coliziune t

Figura 8.4. Coliziunea

8.2.Circuitul interfa de reea RTL 8019


RTL 8019 este un controller de reea Ethernet produs de Realtek care ofer o soluie
simpl i performant aplicaiilor cu transfer de date prin reea. Circuitul permite transfer
full duplex pe UTP (i dac plcile de reea sunt cuplate ntre ele printr-un switch
adecvat) mrind rata de transfer de la 10Mbps la 20Mbps. Circuitul suport 3 nivele de
economie de energie: mod adormit, mod oprit (Power Down) dar cu tactul n funciune i
mod oprit cu tactul oprit.
La RTL 8019 poate fi conectat o memorie ROM numit BROM (Boot ROM) din care se
poate ncrca un set de date care vor aduce sistemul de operare de pe server, caz n care
staia conectat nu are nevoie de hard disc (aplicaie important la sistemele care
comand automatizri). Memoria ROM poate fi de 16K, 32K sau 64K i poate fi citit de
sistem prin interfaa cu magistrala, ncepnd de la o adres configurabil. Dup
incrcarea sistemului de operare memoria BROM poate fi invalidat pentru a elibera zona
de adrese ocupat.

97
ISBN Interfaare i protocoale

Pentru a mri viteza de transfer, cadrele recepionate sau cele de emis pot fi stocate ntr-o
memorie local SRAM cuplat la RTL 8019. Se pot conecta pn la 32Koctei SRAM.
Exist variante de RTL 8019 cu memorie SRAM integrat.
Configuraia i parametrii de iniializare pot fi stocai ntr-o memorie serial EEPROM
cuplat la circuit. Aceast memorie (de tip 9346) poate fi programat cu circuitul cu RTL
8019. Schema bloc simplificat a circuitului RTL 8019 este dat n figura 8.5:

Serializare/
Interfaa cu deserializare Interfaa cu mediul 10BaseT
magistrala Codare/ decodare de transmisie
Introducere/
recunoatere adres
proprie

Memorie Comanda Comanda Comanda


proprie memoriei memoriei memoriei
SRAM EEPROM SRAM BROM
16Koctei externe

Figura 8.5. Schema bloc a circuitului RTL 8019

Programarea circuitului se realizeaz cu un set de registre citite /scrise de procesor la


adrese de I/O. Aceste adrese sunt relative la o adres de baz I/O care poate fi selectat la
iniializare (una din 16 adrese posibile). Linia de ntrerupere cu care lucreaz circuitul
poate fi programat ca una din 8 linii posibile.
Programarea adresei de baz de I/O, a dimensiunii memoriei BROM, linia de ntrerupere
se fac la iniializare prin jumperi. Desigur c unii parametrii pot fi modificai prin scrierea
registrelor de configurare.
Cele mai importante semnalele la pini (din punct de vedere al aplicaiilor vizate) sunt
semnalele de interfa cu magistrala:
INT7-0 cereri de ntrerupere, dintre care numai una este selectat la un
moment dat;

98
ISBN Interfaare i protocoale

IORB indic un ciclu de citire iar IOWB indic un ciclu de scriere la un


dispozitiv de I/O (din perspectiva procesorului);
SA19-SA0 magistrala de adrese;
SD15-SD0 magistrala de date;
SMEMRB indic un ciclu de citire din memorie (din perspectiva
procesorului).
Pentru transmisia unui cadru, informaia de transmis se nscrie n RTL 8019 n memoria
proprie prin transfer de memorie la adresa la care RTL 8019 a fost configurat. Transmisia
se face prin DMA sau prin adresare i nscrierea locaiei pe magistral sau prin nscrierea
datelor n zona de I/O a RTL 8019 la un port I/O. Recepia datelor se face prin transfer
programat de memorie pe magistral, prin DMA sau la un port I/O prin citirea registrului
FIFO care este vrful unei stive n care se afl cadrul recepionat.
Se poate observa c aceste semnale de interfa cu magistrala sunt cele studiate n
capitolele anterioare Magistrale i Conectarea pe magistral, ceea ce subliniaz
importana aspectelor fundamentale.

8.3. Cadru de date la transmisia Ethernet


Protocolul MAC (Media Access Control) este folosit pentru implementarea nivelului
Legtur de Date n tehnologia Ethernet. Protocolul MAC ncapsuleaz datele adugnd
un antet de 14 bytes n faa datelor i 4 bytes de informaie de control (CRC) la sfritul
datelor. ntregul cadru de date este precedat de o perioad de timp i un preambul de 8
bytes.
Formatul unui cadru de date Ethernet este format din urmtoarele cmpuri:
Preambulul- Orice transmisie de cadru Ethernet ncepe cu o secven de 8 bytes.
Aceast secven const din 62 de bii alternani de 1 i 0 care sunt urmai de doi bii
de 1. Scopul acestui cmp este de a permite receptorului sa-i sincronizeze ceasul de
recepie a datelor cu ceasul de transmisie. Orice transmisie serial sincron cu
refacerea tactului din datele citite i care este organizat n cadre de date conine un
preambul de sincronizare.
Delimitatorul de nceput de cadru- Ultimul byte din preambul care se termin cu
doi bii de 1 anun nceputul unui cadru de date. La primirea codului special 11
interfaa Ethernet de recepie trateaz urmtorii bii ca date.
Adresa surs i adresa destinaie- Aceste adrese sunt de 6 bytes fiecare i reprezint
adresele fizice (adrese MAC) ale transmitorului i receptorului.

99
ISBN Interfaare i protocoale

Tip- Prin acest cmp este specificat protocolul superior care va prelua datele dup
procesarea Ethernet (valoarea 0x0800 identific protocolul IP , acesta fiind i cel mai
folosit).
Data- Dup procesarea Ethernet aceste date sunt trimise protocolului superior
specificat n cmpul Tip. Lungimea minim a acestui cmp este de 46 bytes i cea
maxim este de 1500 bytes. Orice depire a acestor limite este considerat eroare.
CRC- acest cmp poart i denumirea de FCS Frame Check Sequence i este
calculat de ctre surs i recalculat la destinaie pentru detectarea eventualelor erori
survenite n timpul transmisiei. Dac se detecteaz vreo eroare cadrul de date este
abandonat. Protocolul MAC nu ofer nici un mecanism prin care s se indice sursei
c un anumit cadru de date a fost abandonat din cauza apariiei unei erori.
Trebuie menionat faptul c, fiind vorba de o topologie de tip multipunct (broadcast),
cadrele Ethernet din reea sunt preluate de ctre toate calculatoarele conectate la reea.
Dup efectuarea verificrilor privind corectitudinea cadrului, se verific dac acel cadru
este destinat calculatorului respectiv. Verificarea se face pe baza adresei MAC de
destinaie. Aceast adres poate fi chiar adresa MAC a calculatorului respectiv, i atunci
cadrul este procesat, adresa MAC de broadcast, i n acest caz cadrul fiind procesat, sau o
alt adres MAC, i atunci cadrul este abandonat.
Deoarece tehnologia Ethernet implementeaz funciile celor dou nivele OSI, Legtur
de Date i Fizic, tot aici trebuie implementat i metoda de adresare fizic. Protocolul
MAC conine i aceast schem de adresare. Aceast adres fizic, ca i ntreaga
tehnologie Ethernet, este implementat n interiorul interfeei de reea.
Adresa fizic const dintr-un numr de 48 de bii scris n hexazecimal care identific n
mod unic n lume o interfa de reea. Aceast unicitate este dat de primii 24 de bii care
reprezint un numr ce identific productorul interfeei. Acest numr este denumit OUI
Organizational Unique Identifier i este administrat i distribuit productorilor de ctre
IEEE. Ceilali 24 de bii reprezint numrul de serie al interfeei i este administrat de
ctre productor. Aceste adrese MAC mai poart i denumirea de adrese BIAs Burned-
in Addresses deoarece ele sunt nscrise ntr-o memorie ROM de pe interfaa de reea.

8.4. Circuitul interfa de reea CS8900A


Circuitul CS8900 (productor CIRRUS LOGIC) este o interfa pentru reea Ethernet
care ncorporeaz toate circuitele digitale i analogice necesare conectrii la reea pe de
o parte i la magistral sau la un port paralel pe de alt parte.
Schema bloc a circuitului CS8900 este dat n figura 8.6.:

100
ISBN Interfaare i protocoale

Magistrala EEPROM Tact

Controller Ethernet CS8900


B Control al RAM 10BASE-T Transfor
U EEPROM Emitor i filtre -mator
S de
separare
10BASE-T
Receptor i filtre

C Codare- RJ45
O decodare- Reea
N PLL Ethernet
MAC Controlle
T 802.3 r de RAM
R
O Gestionarea
L puterii
consumate

Figura 8.6. Schema bloc a circuitului CS8900 (sursa www.crystal.com )

Blocurile principale sunt:


1.Interfaa cu magistrala, toate liniile de interconectare avnd capabiliti de ncrcare
standard. Circuitul poate cere o ntrerupere pe una din patru linii i poate cere un transfer
DMA pe una din trei linii. Liniile se selecteaz la iniializarea circuitului.
2.Memoria intern (4K octei) face ca o memorie extern s nu mai fie necesar. Circuitul
introduce n aceast memorie un ntreg cadru de trimis sau recepionat.
3.Modulul MAC (Media Access Control) de acces la reea asigur accesul conform
standardului IEEE 802.3 n mod full duplex. MAC se ocup de toate aspectele legate de
transmisia cadrului cum ar fi detecia de coliziuni, generarea i detectarea preambulului,
generarea i verificarea CRC. Modulul MAC retransmite automat cadrul dup detectarea
unei coliziuni.
4.Interfaa cu EEPROM este necesar pentru a citi un EEPROM serial opional care
conine datele de configurare ale circuitului.
5.Interfaa analogic cu reeaua conine codorul i decodorul Manchester, circuitul de
refacere a tactului din semnalul recepionat (cu PLL), transceiver pentru 10BASE-T. Trei

101
ISBN Interfaare i protocoale

LED-uri arat starea circuitului: starea ON sau OFF a legturii, activitatea Ethernet i
starea magistralei. Transceiverul 10BASE-T conine emitoare i receptoare de linie i
filtre analogice, n exterior fiind necesar doar un transformator de separare. Sunt
suportate cabluri cu impedana caracteristic de 100, 120 i 150, ecranate sau
neecranate.
Cele mai importante semnalele la pini sunt:
Semnale de interfa cu magistrala: SA0-19 (adrese), SD0-15 (date), RESET, /MEMR,
/MEMW, /IOR, INTRQ0-3, DMARQ0-2, DMACK0-2, ALE. Semnale de interfa cu
mediul de transmisie: TXD+, TXD-, RXD+, RXD- pentru 10BaseT.
Funcionarea circuitului are la baz 2 funcii: s trimit un cadru Ethernet i s
recepioneze un cadru. nainte de emisie sau recepie, circuitul trebuie configurat. Spre
deosebire de RTL 8019, CS 8900 nu gestioneaz liniile de date i adrese ale memoriei
externe, fiind de aceea un circuit cu mai puine terminale i fiind astfel mai uor de
folosit.
Transmisia unui cadru ncepe cu o comand (Transmit Command) prin care se precizeaz
cnd s nceap transmisia (dup ce toi octeii au fost transmii n CS8900 de exemplu),
existena CRC etc. Se trimite apoi lungimea cadrului, (Transmit Length), dup care se
trimit datele n CS prin transfer de memorie n memoria proprie sau prin transfer I/O.
Circuitul transmite cadrul n reea ncepnd cu un preambul urmat de adresa destinaiei,
adresa sursei, date, octei de CRC (se pot citi amnunte n paginile anterioare, la structura
cadrului Ethernet).
Recepia unui cadru este realizat de CS i cadrul este stocat n memorie. Recepia se face
prin decodare Manchester, apoi sunt eliminate preambulul, adresa destinatarului este
verificat i dac corespunde cu adresa programat n CS cadrul este memorat i se
anun procesorul printr-o ntrerupere. n a doua faz datele din memorie se transfer n
memoria sistemului pe magistral, prin transfer de memorie, transfer I/O sau prin DMA.
Transferul de memorie se face prin accesul direct al procesorului la memoria intern a
CS, adresat pe liniile de adres, sensul transferului fiind dat de MEMR sau MEMW.
Registrele de configurare pot fi accesate i ele n acest mod. La transferul I/O, CS este
accesat prin 8 registre de 16 bii, vzute de procesor n spaiul de I/O. Sensul transferului
este dat de IOR i IOW. Acest al doilea mod (I/O) este ales implicit la pornirea circuitului
(sau la RESET).
Programarea circuitului CS8900 se face printr-un concept original de programare, prin
intermediul memoriei interne numit PacketPage. Accesul la aceast memorie poate fi
realizat att prin transfer cu memoria ct i I/O. Transferul cu memoria este preferat
deoarece ciclul de memorie este de regul mai scurt dect cel de I/O. Conectarea lui

102
ISBN Interfaare i protocoale

CS8900 la un microcontroller face imposibil tratarea PacketPage prin transfer de


memorie.

8.5. Interfaarea circuitelor CS8900 i RTL 8019 cu microcontrollere


Circuitul CS8900A poate fi folosit cu mult uurin prin cuplarea cu un microcontroller.
n cazul folosirii unui microcontroller AT89S53 (pe 8 bii) transferul se face pe 8 bii.
CS8900 poate lucra n acest mod cu unele restricii. Drivere pentru lucrul pe 16 i pe 8
bii sunt disponibile pe pagina de la Cirrus Logic. Avantajele circuitului CS8900 sunt un
numr mai mic de pini, documentaie mai clar, modul de programare mai simplu
datorit conceptului de PacketPage. Dezavantajul principal este c se procur greu.
Conectarea circuitului CS8900 la microcontrollerul AT89S53 este prezentat n figura
8.7. i figura 8.8. Legtura de date ntre circuite este realizat printr-o magistral de date
de 8 bii format de portul P0 al microcontrollerului. Magistrala de date permite cuplarea
i a altor circuite, care astfel pot comunica cu reeaua, transferul fiind comandat de
microcontroller.
Sensul transferului este comandat de semnalele /RD i /WR (P3.6 i P3.7). Cu un latch de
adrese se memoreaz liniile de adres, care sunt generate multiplexat cu cele de date la
portul P0 al microcontrollerului. Latchul este comandat de semnalul ALE. Se obin liniile
de adrese A0, A1, A2, A3 necesare pentru selecia registrelor interne ale CS8900 i
rmn libere liniile de adrese A4-A7 cu care se pot selecta diferite circuite cuplate pe
magistrala de date. Circuitul CS8900 este selectat cu linia A7. Un semnal de RESET
format n Schema 2 iniializeaz att microcontrollerul ct i controllerul de reea la
punerea sub tensiune sau la apsarea unui buton.
Microcontrollerul are prevzute 2 interfee pentru comunicaia cu sistemul gazd:
Interfaa serial RS232 pentru transferul de date. De la microcontroller
spre RS232 este conectat un circuit pentru modificarea de nivel MAX232;
Interfaa serial sincron SPI.
Dou generatoare de tact furnizeaz tactul pentru microcontroller (10MHz) i pentru
controllerul de reea (20MHz).
La controllerul de reea se adaug un minim de componente externe:
Transformator de izolare pentru 10BASE-T (cablu UTP);
2 LED-uri de semnalizare.

103
ISBN Interfaare i protocoale

O alt variant de cuplare (artat n figura 8.9.) este cu microcontroller RISC AT90S i
controller de reea RTL8019. Diferena este c nu se creeaz o magistral de date i
adrese, deci nu se pot cupla i alte circuite. Altfel schema este asemntoare. La
microcontroller apar cele 2 interfee de transfer de date RS232 cu adaptare de nivel
(MAX232) i cea serial sincron SPI. La controllerul de reea apare transformatorul de
izolare i LED-urilor de semnalizare. Transferul de date are loc prin portul PC al
microcontrollerului iar selecia registrelor interne pentru RTL8019 precum i precizarea
sensului transferului se realizeaz cu semnale din portul PA.
Un circuit RTL8019 se poate conecta cu un microcontroller din familia 8051, soluia
fiind menionat n cornelius@ethernet.isdn-development.de.
Cteva caracteristici principale ale folosirii circuitului RTL sunt:
Memoria RAM intern de 16 Koctei asigur un numr mic de
componente externe circuitului (ca i la CS8900);
Pentru aplicaii TCP-IP este necesar memoria EEPROM extern pentru a
stoca codul IP;
Ca dezavantaj se menioneaz capsula circuitului (100 de pini) destul de dificil de lipit n
condiii ne-industriale.

104
ISBN Interfaare i protocoale

Transf ormator izolator 10 BASE T JP1

8
C2 1 16 7
100 2 6
U1 0 2 3 5 6 7 9 0 5 6 4 5 6 9 0 0,1u 3 14 5
8 9 1 2 2 5 5 5 8 9 8 8 9 9 9 6 7 1 4
37
A0 38 SA0 1 1 2 2 3 3 1 1 2 2 3 3 4 4 4 0 6 11 3
A A
SA1 S D 1 D S S D 3 S D D S S D S D S S 7 2
A1 39 S D S D S S D S S D D S S D S D S S
A2 40 SA2 V V S V V V V S V V V V V V V V V V C1 8 9 1
SA3 D D V D D D D V A A A A A A A D D A
A3 41 D D 84 0,1u
42 SA4 DO- 83 RJ45
43 SA5 DO+
44 SA6 80
45 SA7 DI- 79
46 SA8 DI+
47 SA9 82 C3
48 SA10 CI- 81
50 SA11 CI+
51 SA12 68p
52 SA13 92
53 SA14 RXD- 91 24,9
54 SA15 RXD+ 88
58 SA16 TXD- 87 VCC
59 SA17 TXD+ 24,9
60 SA18 78 680 D1
65 SA19 BSTATUS/HC1 99 D2
D0 66 SD0 LINKLED/HC0 100
D1 67 SD1 LANLED 17
D2 68 SD2 CSOUT 680 LED
D3 71 SD3 LED
D4 72 SD4
D5 73 SD5 97
D6 74 SD6 XTAL1
D7 27 SD7
26 SD8 98
25 SD9 XTAL2 Y1
24 SD10
SD11 T
21 U 20MHz
SD12 H 6 Y P O N
I L
20 S 1 D 0 1 2 0 1 2 E L A A
SD13 E T S 6 0 1 2 3 Q Q Q K K K E E T T E
19 1 R Q Q Q Q L S S
SD14 WR R E C S H R R R R
R R R C C C S T K A A S S P E
18 MMW R F N S M C C T T T T A A A A A A S S D D C C I H S
SD15 E E E E E E M M M M M MW E E E E E L H B E
MMO I O
I R A RM O
I O
I N
I N
I N
I N
I D D D D D D H T E E E E E C S R
CS8900A-CQ
8 9 2 1 9 3 5 4 3 4 2 1 0 5 5 3 1 6 4 2 7 6 6 3
2 2 6 6 4 6 7 3 3 6 3 3 3 3 1 1 1 1 1 1 7 7 4 5 6 3 2 7 3 9
VCC

4,99K

R7
/WR R
/RD VCC
U3A

1 2
/CS

SN7404

/RESET

Figura 8.7. Circuitul CS8900 i componentele externe pentru cuplarea la AT89S53

105
ISBN Interfaare i protocoale

JCP2

1 /STROBE
14 /AUTOFEED
2 D0 RS0
15 /ERROR RS1
3 D1 U2 RS2
16 /INIT 11 A3
4 D2 STB 9 A4
17 /SELECT OE U1 0 A5
3
5 D3 RS012 8 D0 D0 39 21 A6
18 GND RS113 O7 I7 7 D1 D1 38 P0.0/AD0 P2.0/A8 22 A7
G
6 D4 RS214 O6 I6 6 D2 D2 37 P0.1/AD1 O P2.1/A9 23
O5 I5 P0.2/AD2 R P2.2/A10
19 GND A3 15 5 D3 D3 36 P/ 24
O4 I4 P0.3/AD3 P2.3/A11 /CS
7 D5 A4 16 4 D4 D4 35 E 25 D0
20 GND A5 17 O3 I3 3 D5 D5 34 P0.4/AD4 L P2.4/A12 26
O2 I2 P0.5/AD5 A P2.5/A13 D1
8 D6 A6 18 2 D6 D6 33 27
O1 I1 P0.6/AD6 P2.6/A14 D2
21 GND A7 19 1 D7 D7 32 28
O0 I0 P0.7/AD7 P2.7/A15 D3
9 D7
D4
22 GND 1 10
P1.0/T2 P3.0/RXD D5
10 /ACK 8282 2 11
P1.1/T2-EX P3.1/TXD D6
23 GND 3 12 /INT
P1.2 P3.2/INTO D7
11 BUSY 4 13
24 GND 5 P1.3 P3.3/INT1 14 /INT
12 PE 6 P1.4//SS P3.4/TO 15
P1.5/MOSI P3.5/T1 /WR
25 GND 7 16 /WR
P1.6/MISO P3.6/WR /RD
13 SELECT IN 8 17 /RD
P1.7/SCK P3.7/RD CLK
19 29
18 XTAL1 PSEN
CENTRONICS DB25 9 XTAL2 31
RST EA/VPP
R1
VCC VCC
8,2K AT89S53
1
Y1
2 3 10u RESET RESET
4 3 CLK
/CS
1 2 A7 2
U7A SW1
SN74126 P2 RESET
1 GENERATOR 10MHz U3
SN74126 6 13 10 VCC
2 8 R1IN T2IN 11 1
7 RxD 7 R2IN T1IN 9
6 5 3 14 T2OUT R2OUT 12 1K
8 TxD T1OUT R1OUT
4 1
9 3 C+
U4A
5 1u 4 C1- 1
4 5 C2+ 3
C2- V
2 5 2
RS232 DB9 1u VCC 6 V+ +
V- c
c SN7400
0 V
1 MAX232
6 VCC
9 8 1u 1u 1

1u
SN74126

Figura 8.8. Schema de conectare a circuitului AT89S53 cu CS8900

106
ISBN Interfaare i protocoale

P1 Vcc
1 U1 U2
14 Vcc Db0 1 40 D0 36 85
2 Db0 Db1 2 PB0/T0 VCC 28 D0 D1 37 SD0 BD0 84
15 Db2 3 PB1/T1 PC7/A15 27 D1 D2 38 SD1 BD1 82
3 Db1 Db3 4 PB2/AIN0 PC6/A14 26 D2 D3 39 SD2 BD2 81 Vcc Vcc
16 R1 Db4 5 PB3/AIN1 PC5/A13 25 D3 D4 40 SD3 BD3 80
4 Db2 Db5 6 PB4/SS PC4/A12 24 D4 D5 41 SD4 BD4 79
17 2K Db6 7 PB5/MOSI PC3/A11 23 D5 D6 42 SD5 BD5 78 D1 D2
5 Db3 Db7 8 PB6/MISO PC2/A10 22 D6 D7 43 SD6 BD6 77
18 C1 9 PB7/SCK PC1/A9 21 D7 95 SD7 BD7 LED LED
6 Db4 10 RESET PC0/A8 94 SD8 74 R2 1K
19 0.1uF 11 PD0/RXD 31 93 SD9 BA14 73
7 Db5 12 PD1/TXD ICP 30 92 SD10 BA15 72
20 13 PD2/INT0 ALE 29 91 SD11 BA16 71
8 Db6 14 PD3/INT1 OC1B 90 SD12 BA17 69
21 15 PD4 32 88 SD13 BA18 68
9 Db7 16 PD5/OC1A PA7/AD7 33 87 SD14 BA19 67 R3 1K
22 17 PD6/WR PA6/AD6 34 SD15 BA20 66
10 PD7/RD PA5/AD5 35 A4 33 BA21
PA4/AD4 RSTDRV 20F001N
23 19 36 A3 30 62
11 18 XTAL1 PA3/AD3 37 A2 29 IOWB LED1 61 R4 200 6 7
24 XTAL2 PA2/AD2 38 A1 IORB LED0 60 5 TPIN- TPRX- 8
PA1/AD1 LEDBNC GND GND RJ-45
12 Y1 20 39 A0 A0 5 63
25 GND PA0/AD0 A1 7 SA0 LED2 C2 C3 6
13 A2 8 SA1 58 10nF 10nF TPRX-
C4 C5 A3 9 SA2 TPIN- 59 3
30pF 8MHz 30pF AT90S8515 A4 10 SA3 TPIN+ 4 9 TPRX+
11 SA4 46 3 TPIN+ TPRX+ 10
12 SA5 LD 45 2 TPOUT- TPTX- 11 2
Vcc 13 SA6 RTL8019AS HD GND GND TPTX-
Vcc 15 SA7 76 C6 C7 1
16 SA8 U5 EECS 75 10nF 10nF TPTX+
6 18 SA9 BCSB Y2
1 SA10
C8 2 1 C9 19 50 1 12 UTP
+ 20 SA11 OSCI TPOUT+ TPTX+
+
1uF 3 1uF 21 SA12 51 20MHz
22 SA13 OSCO
SA14 U7
P2 C10 6 4 C11 23 89 Vcc
1 + 1uF + 24 SA15 VDD 70
6 5 1uF 25 SA16 VDD 57
2 7 10 26 SA17 VDD 47
7 27 SA18 VDD 17
3 8 9 SA19 VDD 6
8 97 VDD
4 14 11 98 INT7 86
9 99 INT6 GND 83
5 13 12 100 INT5 GND 52
1 INT4 GND 44
2 INT3 GND 28
COM 3 INT2 GND 14
U5 Vcc 4 INT1 GND
5
MAX232 1 INT0 49
1 65 TX+ 48
31 JP TX- 56
32 SMEMRB RX+ 55
SMEMWB RX- 54
1 64 CD+ 53
34 AUI CD- 96
AEN IOCS16B 35
IOCHRDY

RTL8019AS

Figura 8.9. Conectarea unui circuit RTL8019 la un microcontroller RISC (AT90S8515)

107
ISBN Interfaare i protocoale

8.6. Web server Site Player

n aproximativ 2 cm ptrai, SitePlayer (figura 8.10 stnga) include un server web,


controller Ethernet 10baseT, memorie pentru stocarea paginilor web, coprocesor pentru
obiectele grafice i o interfa serial. Structura SitePayer conine:
Controllerul de reea RTL8019AS Realtek se ocup de semnalele Ethernet i
transfer pachetele IP ctre microcontroller
Microcontrollerul Philips 89C51 se ocup de protocolul TCP/IP, suport 8
porturi I/O i un port serial.
SitePlayer se poate conecta prin interfaa serial RS232 la un microcontroller i prin
conexiunea Ethernet se poate cupla la Internet. Pagina pus de SitePlayer pe Internet
poate conine date msurate de microcontroller dintr-un proces i, invers, pot fi generate
comenzi pentru proces.
La pornire, SitePlayer afieaz o pagin de test (figura 8.10 dreapta) prin intermediul
creia se poate aprinde ledul rou i ledul verde prezent pe placa de dezvoltare.

Figura 8.10. SitePlayer i pagina iniial de test

Codul care indic SitePlayer-ului cum s funcioneze i ce pagini web trebuie s


serveasc trebuie definit de SitePlayer Definition file i apoi asamblat ntr-o imagine
binar (SitePlayer Binary image) folosind utilitarul SiteLinker. Imaginea binar este
scris n memoria flash prin conexiunea Ethernet. Interaciunea cu dispozitivul serial i
servirea paginilor web se poate face att folosind placa de dezvoltare ct i emulatorul
SitePlayePC.
Paii necesari crerii unui proiect sunt:
1. Definirea i crearea obiectelor (folosind un editor de texte) n fiierul
SitePlayer Definition File(.SPD)
2. Creare paginilor web folosind un editor HTML.

108
ISBN Interfaare i protocoale

3. Asamblarea i download-area fiierului binar SitePlayer Binary file (.SPB)


folosind programul SiteLinker.
4. Simularea folosind programul SitePlayerPC.
Dou exemple de pagini create pe SitePlayer este cea din figura 8.11. Cu ajutorul unor
imagini *.gif care reprezint cifrele de la 0 la 9 ale unui display cu leduri se poate realiza
un afiaj simplu i elegant, imaginea fiind dat n stnga. O pagin realizat la un proiect
de diplom este cea din dreapta. Un microcontroller supravegheaz reeaua de alimentare
de 230V A.C. i are o interfa cu un SitePlayer. Fiecare eveniment din reea (de exemplu
o supratensiune) este detectat i microcontrollerul trimite un mesaj care va avea ca efect
completarea n tabel a descrierii evenimentului mpreun cu ora la care a aprut. Lista de
evenimente pot fi vzute pe Internet de la distan de firma distribuitoare de energie sau
de proprietarul locaiei respective.

Figura 8.11. Exemple de pagini

109
ISBN Interfaare i protocoale

9.Magistrala USB (Universal Serial Bus)

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.

Figura 9.1. Exemple de dispozitive USB

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);

110
ISBN Interfaare i protocoale

conecteaz pn la 127 de dispozitive la un calculator gazd, ntr-o topologie de


tip stea multipl. Nu se pot conecta dispozitive USB fr gazd (ceea ce este
posibil la interfaa 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.
Specificaiile acestei magistrale descriu atributele de magistral, definesc protocolul,
tipurile de tranzacii, administrarea magistralei (bus management) i totodat furnizeaz
informaii necesare pentru construirea unui sistem n acest standard.
Magistrala USB definete trei categorii de dispozitive fizice:
gazda USB (USB Host)
funcii USB (USB function)
distribuitoare USB (USB Hub)

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

Figura 9.2. Arhitectura USB

111
ISBN Interfaare i protocoale

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.
VBUS VBUS
D+ D+

D- D-
GND GND

Figura 9.3. cablu USB

112
ISBN Interfaare i protocoale

Tensiunea transmis pe linie nu este tensiunea de alimentare a calculatorului gazd ci este


gestionat de controllerul USB, aa nct o suprasarcin este detectat i un mesaj de
eroare este afiat de sistemul de operare. Cteva variante de cabluri USB sunt date n
figura 9.4.

Figura 9.4. Cabluri USB, de la stnga spre dreapta: prelungitor, downstream-upstream,


mini USB, USB 3.0

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).

9.4.Transferul de date prin cadre


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 cantiti mari de informaie 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, cantiti mici de date. Datele transferate n acest mod sunt

113
ISBN Interfaare i protocoale

caractere, coordonate sau semnalizri de evenimente organizate n unul sau mai


muli octei;
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.
USB folosete un protocol bazat pe pachete de date (Data Packet). Un pachet de date este
o colecie de cadre de date (Data Frame). Numrul de bii dintr-un cadru nu are o valoare
fix. Biii sunt trimii spre magistral astfel: primul bit este cel mai puin semnificativ bit
(LSB) din cadru, urmat de bitul mai semnificativ pn la trimiterea celui mai semnificativ
(MSB) bit din cadrul respectiv.
Protocolul USB definete 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)

a. 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, figura 9.5.

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)

114
ISBN Interfaare i protocoale

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.

b.Pachetul de date i pachetul handshake


Informaia propriu-zis este transferat n sistemele USB sub forma unor pachete de date,
figura 9.6. 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.

SYNC PID DATA CRC

8b 8b 0 -1023B 16b

SYNC PID

8b 8b

Figura 9.6. Structura pachetelor de date (sus) i handshake (jos)

115
ISBN Interfaare i protocoale

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.

Adres Endpoint Pachet de semnalizare


SYNC PID CRC

SYNC DATA
Pachet de date
PID CRC

SYNC PID Pachet handshake

Gazda USB Hub Dispozitiv USB


USB

Figura 9.7. Dialog USB simplificat

9.5. Cuplarea unui microcontroller (MC) la USB printr-o interfa specializat


Dac aplicaia necesit cuplarea unui MC la USB atunci exist dou variante, utilizarea
unei interfee specializate aa cum sunt cele din familia FTDI sau alegerea unui MC care
are interfa USB integrat.
Circuitele FTDI [2] cel mai cunoscute sunt cele de conversie USB-RS232 FT8U232AM
(USB 1.1) i FT8U232BM (USB 2.0) i cele de conversie USB-paralel FT8U245AM
(USB 1.1) i FT8U245BM (USB 2.0). Protocolul USB este ncorporat total n circuit i
nu este nevoie de programarea formrii sau gestionrii cadrelor USB.
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.

116
ISBN Interfaare i protocoale

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.
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.
Schema bloc a circuitului 245BM este dat n figura 9.8.

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
TxE
384 octei
RxF

PLL pentru refacerea


tactului din date
Control
EEPROM serial
Oscilator x8
6MHz

EEPROM serial

Figura 9.8. Schema bloc a unui circuit FT245BM

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.

117
ISBN Interfaare i protocoale

D0- RxF
D7
RD
WR

TxE D0-
D7

Figura 9.9. Scrierea / citirea datelor n mod paralel

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.
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:

Figura 9.10. Driverul software instalat sub WINDOWS

118
ISBN Interfaare i protocoale

Pentru transferul datelor FTDI pune la dispoziia utilizatorului o bibliotec DLL i


documentaie pentru programare (API). Astfel, o scriere / citire de date prin USB n FTDI
se poate face cu o comand FT_write / FT_read.

9.6. 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.
Schema bloc a interfeei USB integrate este dat n figura 9.11:

tact

Regulator
tensiune 2MHz

Prescalare tact
24x
Interfaa USB

D+ DPLL DPRAM
refacere
USB
tact
D-

VBUS

Figura 9.11: schema bloc a interfeei USB

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

119
ISBN Interfaare i protocoale

(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.
VC VC VC

Comand
VBUS VBUS VBUS alimentare

D+ D+ D+
D- D- D-

a b c
Figura 9.12: modurile de lucru ale MC

Pe liniile de date D+ i D- se insereaz rezistoare serie de 22.


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.
Transferul de date bazat pe endpoint-uri i pipe-uri este reprezentat n figura 9.13:

120
ISBN Interfaare i protocoale

Funcie USB Gazd


Pipe USB

Endpoint 6 Buffer
Program
client

Endpoint 1

Buffer
Endpoint 0

Buffer

Pipe 0

Figura 9.13. Transferul de date bazat pe endpoint-uri

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.

121
ISBN Interfaare i protocoale

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:

Linia USB
SETUP OUT OUT IN
RXSTPI

RXOUTI

TXINI

CONFIGURARE DATE STARE

Figura 9.14. Scriere USB

Un pachet de semnalizare este generat pentru stabilirea destinaiei transferului. Se


genereaz o ntrerupere RXSTPI (generat la transmisia pachetului de semnalizare). Prin
software se terge informaia din endpoint-ul transmis i se transmit pachete de date de
ieire. Dup fiecare pachet de date transmis se genereaz o ntrerupere RXOUTI pentru a
informa MC de transmisia pachetului i a putea terge coninutul endpoint-ului folosit.
Dup recepionarea pachetelor de date dispozitivul destinaie rspunde cu un pachet de
dialog pentru a confirma primirea datelor. Se genereaz un semnal TXINI n zero pentru
a permite recepionarea unui alt pachet de dialog. Fronturile ngroate sunt cele generate
prin comenzi software iar cele nengroate sunt generate hardware ca ntreruperi.

122
ISBN Interfaare i protocoale

10.Interfee pentru comunicaii wireless

10.1.Introducere
Multe dintre aplicaiile cu microcontroller necesit o transmisie de date fr fir.
Comunicaiile fr fir nseamn transferul informaiei prin intermediul cmpului
electromagnetic n gama de frecven 9kHz-300GHz. Spectrul electromagnetic este o
resurs public i alocarea gamelor de frecvene pentru diferite transmisii se realizeaz de
ctre organisme naionale i internaionale. n spectru exist benzi de frecven pentru
care trebuie licen i benzi libere, aa cum este banda ISM (Industrial, Scientific and
Medical - 2,4GHz).
Istoricul transmisiilor fr fir ncepe cu David E. Hughes care a transmis codul Morse in
1878 cu o bobin parcurs de curent electric i a patentat invenia. n urma acestui patent
s-a nscut compania Western Union Telegraph. Thomas Alva Edison (1847 1931), un
prolific inventator, care a inventat becul cu incandescen, microfonul etc. a inventat n
1888 o metod de transmisie fr fir cu ajutorul unui magnet vibrator, invenie patentat
i aplicat la cile ferate. Heinrich Rudolf Hertz (1857 1894) a avut realizri importante
n domeniul teoriei cmpului electromagnetic. A demonstrat teoretic posibilitatea
transmisiei radio dar nu a realizat experimente. Nikola Tesla (1856 1943) a avut
realizri experimentale deosebite, cum ar fi de exemplu realizarea unui model de vapor
telecomandat de la distana de civa kilometri, a construit antene, sisteme de transport al
energiei fr fir etc.
Actria Hedy Lamarr, o vestit frumusee de la Hollywood, numit de contemporani cea
mai frumoas femeie a lumii a devenit vestit n urma filmului Ecstasy, unde aprea nud,
prima apariie nud n cinematografie. n cel de-al doilea rzboi mondial rachetele i
torpilele ncepuser s fie ghidate prin radio, dar bruierea semnalului fcea ca ghidarea s
nu reueasc. Hedy Lamarr care a privit mult vreme activitatea navelor n porturi a
inventat n 1942 un mod de a schimba frecvenele de transmisie foarte repede n timpul
transmisiei pentru ca transmisia s nu poat fi bruiat. Schimbarea frecvenei se fcea
prin programul nscris pe un tub, ca i cel al flanetei. Invenia a fost fcut cu 20 de ani
prea devreme. Prima aplicaie a fost realizat de armata SUA n timpul crizei rachetelor
din Cuba, metoda de salt de frecven fiind folosit la ghidarea rachetelor. Astzi, metoda
este folosit la WLAN, Bluetooth, ghidarea rachetelor, comunicaii prin satelit etc.
Aceast invenie istoric, cunoscut de puin lume dovedete c pasiunea pentru noutate
i patriotismul nu sunt doar vorbe.
Exist n prezent o mare varietate de transmisii fr fir. Alegerea uneia sau alteia se face
n funcie de aplicaie. Dac este nevoie ca transferul de date s fie ntre dou module cu

123
ISBN Interfaare i protocoale

microcontroller la distan mic i aplicaia trebuie s fie ieftin atunci se pot folosi
protocoale proprietare implementate n module ieftine. Dac este vorba de un aparat care
transmite date direct n Internet i este situat mai departe de ora atunci se poate folosi o
transmisie GPRS. Dac receptorul de date este un PDA sau un telefon mobil i distana
de transmisie este mic atunci o transmisie Bluetooth este cea mai potrivit. Necesitatea
integrrii ntr-o reea de msur existent poate obliga proiectantul s aleag metoda
folosit n reea, de exemplu ZigBee. O transmisie cu debit mare de informaie poate
determina alegerea unei transmisii WLAN, costurile fiind ns mai mari ca la variantele
anterioare. n consecin, principalele criterii de alegere a metodei de transmisie sunt:
Distana de transmisie;
Debitul de informaie;
Restricii determinate de conectarea la o reea existen;
Poziia geografic;
Costurile admisibile.
Partea de programare a modulelor wireless este uurat dac se folosesc comenzi AT.
Comenzile AT sunt iruri de date care ncep cu prefixul AT i pot fi trimise modulului cu
un program cum este de exemplu Hyper-Terminal din Windows dac modulul este
conectat la un PC prin interfaa RS232 sau direct de la microcontroller. Conectarea la un
PC este util n faza iniial de punere la punct a prii software. Dup ce programul a
fost pus la punct se programeaz microcontrollerul care comunic cu modulul GPRS tot
prin interfaa serial RS232, cu aceleai comenzi AT.

10.2.Transmisii cu protocoale proprietare


Pentru a realiza o transmisie simpl de date la distane de cteva zeci de metri, cu debit
mic de informaie i care nu trebuie s fie interconectat printr-un anumit standard ntr-o
reea de date se pot folosi module sau interfee cu protocol proprietar. Consultnd pagina
web a unei firme de componente (www.adelaida.com) se pot gsi multe asemenea
module, cu preuri variind ntre 6 i 50 de dolari la cumprarea unei buci.
Perechea de circuite RFM01 (receptor) i RFM02 (emitor), figura 10.1 sunt echipate cu
interfa SPI, lucreaz n banda 433MHz iar debitul de informaie maxim este de
115,2Kbps la o distan de maximum 300m. Modulaia datelor este FSK, receptorul
conine o bucl PLL i poate fi alimentat ntre 2,4V i 5,4V, fcnd posibil realizarea de
module portabile, alimentate de la dou baterii. Dimensiunile mici de 18mm x 14mm x
9mm asigur posibilitatea miniaturizrii aplicaiilor. Receptorul are protecie la
subtensiune i poate asigura reglajul automat al unor parametri ai antenei.

124
ISBN Interfaare i protocoale

Figura 10.1. Circuite RFM (sursa http://www.adelaida.ro/module-comunicatii-radio-rf/)

Schemele simple a receptorului din figura 10.2 i a transmitorului n figura 10.3 arat
simplitatea interconectrii cu un microcontroller din familia ATmega.

Figura 10.2. Receptor cu RFM01 (sursa www.mikrocontroller.net)

Figura 10.3. Transmitor cu RFM02 (sursa www.mikrocontroller.net)

125
ISBN Interfaare i protocoale

Poate cea mai simpl soluie este folosirea perechii de circuite hibride TLP434A/
RLP434, figura 10.4:

Figura 10.4. Circuite TLP434A (stnga) i RLP434 (dreapta), sursa


http://www.coolcircuit.com/project/rf_remote/

Frecvena de lucru este 433,92MHz, debitul maxim este de 4,8Kbps la o distan de


maximum 200m cu o anten adaptat. Tensiunea de alimentare este de 3V-12V iar
interfaa cu microcontrollerul este serial. Modulaia datelor este ASK iar preul unui
circuit este sub 6 dolari. Un proiect realizat cu aceast pereche de circuite este dat n
http://www.coolcircuit.com/project/rf_remote/ , datele seriale transmise fiind codate
Manchester de un microcontroller PIC12F509. Schema este extrem de simpl.
O alt variant este circuitul HM-TR (figura 10.5) construit de Hope Microelectronics
Co. Ltd. (http://www.hoperf.com/ ) care conine un receptor i un transmitor pe aceeai
plac care pot asigura comunicaia half duplex ntre dou puncte, interfaa fiind RS232.

Figura 10.5: Circuitul HM-TR, RS232, half duplex, sursa http://www.hoperf.com/

126
ISBN Interfaare i protocoale

Circuitul lucreaz n banda de frecvene ntre 310,24Mhz i 929,27MHz, deci se poate


lucra la 433MHz sau 868MHz., modulaia fiind FSK. Debitul maxim este de 19,2Kbps,
dimensiunile modulului fiind 24x43mm. Distana maxim determinat ntr-un spaiu fr
obstacole este de 330m. Denumirea circuitului HM-TR 433/RS232 sau HM-TR 866/TTL
sugereaz frecvena de lucru i nivelele de tensiune de interfa (RS232 sau TTL).

10.3.Transmisia datelor prin GPRS


Datorit necesitii de a putea avea acces la informaie i de a fi totodat mobil, s-a recurs
la folosirea terminalelor mobile GSM pentru transmisii de date. Comunicaiile de date
prin intermediul reelelor de telefonie mobil au devenit mult mai eficiente n momentul
n care a fost mprumutat o idee de la reelele de calculatoare, cea a comutaiei de
pachete. Informaia este ncapsulat n pachete care circul prin intermediul unor
echipamente de reea pn la destinaie. Adresele sursei i destinaiei sunt coninute n
pachet. Astfel a luat natere GPRS (General Packet Radio Services).
Rata de transfer maxim care se poate obine prin GPRS este de 171,2 kbps adic
21.4kBps. Transferul datelor poate fi efectuat prin UDP (User Datagram Protocol), sau
prin TCP/IP. Avantajul transferului prin TCP/IP const n faptul ca pachetele ajung la
destinaie n ordinea n care au fost transmise i exist o garanie a transmisiei corecte a
pachetelor.
Sistemul de transmisie GPRS este pus la dispoziie de operatorii de telefonie mobil i
datele achiziionate sunt trimise la un server al utilizatorului. Fiecare modul GPRS
trebuie s aib un card SIM furnizat de operatorul de telefonie mobil cu un tip de
abonament sau n sistem pre-pltit pentru transferul de date. Tarifele sunt de regul
funcie de traficul realizat.
n aplicaiile realizate la proiecte de diplom au fost folosite dou tipuri de module
GPRS, produse de TELIT, modelul GM862-GPRS i modelul EZ10. Ambele modele
sunt echipate cu interfee RS232, figura 10.6:

Figura 10.6. Modulul GPRS GM862 (stnga) i EZ10 (dreapta) (sursa www.telit.com)

127
ISBN Interfaare i protocoale

EZ10 este un modul GPRS/GPS construit ca ansamblu separat de placa cu


microcontroller la care se conecteaz prin o conexiune serial RS232. Modulul este
construit pe baza circuitului GM862, avnd suplimentar i funcia de GPS. EZ10
administreaz intern stiva TCP-IP i uureaz astfel implementarea aplicaiei.
Alimentarea modulului se face de la un alimentator extern. Caracteristicile principale ale
modulelor GPRS sunt: Dual Band 900-1800MHz, EASY GPRS (comenzi AT incluse ),
RS232 UART, nivele CMOS la GM862 i RS232 la EZ10, auto-bauding de la 2.4 pn la
57.6 Kbps, interfa card SIM, 3V i 1.8V, Maxim 13 x GPIO porturi, 2 convertoare A/D,
agend numere de telefon, este suportat codul PUK2 pentru condiia de blocare, audio
integrat, posibilitatea de lucru cu SMS, GPS integrat (n EZ10).
Conexiunea modulului TELIT cu microcontrollerul se face prin interfaa serial RS232,
comunicaia fiind bazat pe comenzi AT. La activarea conexiunii GPRS trebuie
specificai parametrii reelei i numrul de telefon apelat i se stabilete o conexiune ntre
modem i un server de date (nu se poate stabili o conexiune ntre dou modemuri GPRS).
Conectarea cu o aplicaie aflat pe un server se realizeaz astfel:
Cu o comand AT se seteaz proprietile GPRS pentru a permite modemului
GPRS s activeze conexiunea GPRS ori de cte ori este nevoie de un transfer de
date;
Cu o comand AT se seteaz parametrii de autentificare, nume utilizator i parol
care vor fi folosii pentru validarea conectrii;
Cu o comand AT se definesc portul de conectare la server i protocolul UDP sau
TCP-IP;
Se pornete conexiunea cu o comand de formare a numrului i conectare.
Comenzile utilizate la conectare sunt:
1. AT- Comand vid, va ntoarce ntotdeauna rspunsul OK
2. AT#USERID[=<user>] se trimite numele reelei pentru autentificare, folosit
sub forma AT#USERID="net.vodafone.ro (autentificare)
3. AT#PASSW= <pwd> - se trimite parola pentru autentificare, folosit sub forma
AT#PASSW="vodafone" (parol)
5. AT+CPIN[=<pin> [,<newpin>]] se trimite codul PIN, folosit sub forma
AT+CPIN=2649 (cod PIN)
6. AT+CREG=? - Dupa ce se introduce codul PIN al cartelei SIM se asteapta pn
cnd se efectueaz conectarea. Comanda a fost folosita n forma: AT+CREG?
7. AT+CGDCONT=1 - Se utilizeaz o conexiune IP prin serverul GGSN cu numele
net.vodafone.ro fr o compresie a datelor sau a header-ului pachetelor.
Comanda a fost folosit n forma:
AT+CGDCONT=1,"ip","net.vodafone.ro","0.0.0.0",0,0

128
ISBN Interfaare i protocoale

9. AT#GPRS[=[<mode>]] activare GPRS cu 1, dezactivare cu 0, transmisia a fost


activat cu AT#GPRS=1 . AT#GPRS? interogheaz starea modemului
10. AT#SKTD=0 - Tipul socketului folosit este TCP, numrul portului pe care
ascult serverul este 2222, adresa de IP a serverului este 86.125.93.184 iar
conexiunea se nchide cnd serverul nchide portul. Comanda a fost folosit n
forma: AT#SKTD=0,2222,"86.125.93.184",0
Dup aceast secven urmeaz transmiterea datelor. Practic tot ce primete modulul prin
USART va fi transmis ctre server urmnd ca dup nchiderea conexiunii modulul s fie
trecut n stare oprit. O list complet a comenzilor AT se poate gsi n documentaiile
TELIT, de exemplu n (www.semiconductorstore.com/pdf/newsite/Telit/GM862-
GPS/GM862-GPS_Software_User_Guide_r4.pdf). Oprirea sa se va face hardware.
Transferul de date ntre modulul cu microcontroller i modemul GPRS are loc n
aplicaiile realizate astfel:
Unitatea de procesare selecteaz prin intermediul circuitului de selecie ieirea
USART-ului ctre modemul GPRS.
Unitatea de procesare activeaz modemul.
Unitatea de procesare iniializeaz nregistrarea n reeaua GSM a modemului i
conectarea la GPRS.
Unitatea de procesare transmite efectiv pe USART datele de transmis. Aceste date
vor fi transmise prin intermediul modemului la server-ul cu o anumit adres IP.
Pe acest server este rulat un program ce ascult i primete pe portul 2222 pachete
prin TCP/IP. Aceste pachete conin ca identificator codul IMEI (International
Mobile Equipment Identity Identitatea Internaional a Echipamentului Mobil)
al modemului, cod ce este unic. Ca msur de siguran, acest cod este cutat ntr-
o list n care se afl toate codurile IMEI ale echipamentelor ce vor fi utilizate, iar
dac codul IMEI nu se afl n lista echipamentelor va nchide conexiunea.
Unitatea de procesare dezactiveaz modemul;
Aplicaiile GPRS sunt mai simplu de implementat dect pare la prima vedere, aceasta
datorit n primul rnd programabilitii medemurilor GPRS cu comenzi AT (Easy
GPRS). Nu este necesar cunoaterea traseului datelor pn la serverul utilizatorului,
singura condiie pus serverului fiind s aib atribuit un IP fix. Transmisia GPRS se
preteaz la aplicaii n care nu exist un receptor n apropierea punctului de culegere de
date dar exist acoperire de telefonie mobil.

10.4. Bluetooth
Prin Bluetooth se realizeaz transferuri de date pe distane scurte ntre un calculator i
diverse echipamente periferice, de exemplu cti, telefoane mobile, playere, imprimante,

129
ISBN Interfaare i protocoale

camere video, GPS etc. Numele provine de la numele unui rege danez, Blatand din
secolul 10 care a unit triburile scandinave. Modulaia datelor este asemntoare cu cea de
la WLAN, adic mprirea spectrului alocat n mai multe canale i o modulaie GFSK
(Gaussian Frequency-Shift Keying) a datelor pe fiecare canal. n modul de transmisie de
date salturile de frecven sunt 1600/s, iar n modul de descoperire poate fi de 3200/s
pentru a micora timpul de conectare. Spectrul alocat este situat n banda de 2,4GHz,
ntre 2,402GHz i 2,480GHz. Distana de transmisie este de uzual de 1m, viteza fiind de
1Mbps, dar exist unele dispozitive cu putere mai mare de emisie care asigur distane
pn la 100m. Conectarea unui dispozitiv Bluetooth la un calculator gazd se realizeaz
printr-un software de descoperire.
Exist dou variante de implementare a unui sistem nglobat cu transmisie Bluetooth,
prin utilizarea unei interfee Bluetooth conectate la un microcontroller existent sau
utilizarea unui microcontroller cu Bluetooth integrat. Momentan prima soluie este
preferat asigurnd o vitez de implementare mai mare i costuri mai mici.
Interfaa Bluetooth de la Rayson BTM222. figura 10.7. conine un nucleu BlueCore4 cu
interfee de conectare SPI, UART, USB i o interfa PCM (Pulse Code Modulation)
pentru conectarea unui modul audio. De la nucleu datele sunt emise printr-un
amplificator de putere prin anten, iar datele recepionate sunt amplificate cu un LNA.
Alimentarea de putere i cea a nucleului sunt diferite.
Vcc

LNA

BlueCore4 SPI
UART
USB
PCM
PIO
AMP
FLASH

PVcc

Figura 10.7. Interfaa Bluetooth, aspect (stnga) i schema bloc (dreapta) (sursa
http://www.tme.eu/ro/details/btm-222/module-bluetooth/rayson/)

Interfaa asigur transfer Bluetooth versiunea 2 cu EDR (Enhanced Data Rate) de pn la


3Mbps. Sunt posibile moduri de lucru cu economie de energie. Alimentarea este ntre 3V
i 3,6V, puterea de emisie fiind de 18dBm.

130
ISBN Interfaare i protocoale

Un alt modul Bluetooth care poate fi utilizat n aplicaii cu microcontrollere este


adaptorul serial LM058, figura 10.8. Acest adaptor este conform cu specificaiile
v2.0+EDR, i asigur o distan de transmisie de 100m, viteza maxim fiind de
115,2kbps dar i 230,4kbps cu tact transmis. Alimentarea poate fi realizat cu un
alimentator de 5V, prin cupla USB sau de la un semnal serial nefolosit.

Figura 10.8. Adaptorul Bluetooth serial LM058 (sursa www.farnell.ro)

Modulul poate fi programat cu comenzi AT. Lista complet a comenzilor AT este dat n
foile de catalog.Cteva comenzi AT sunt:
AT verificare
AT+ENQ afieaz toate setrile, cele de Bluetooth i de RS232
AT+ACON valideaz conectarea automat
AT+CONN =xxxxxxxxxxxx stabilete o conexiune cu dispozitivul a crui
adres este xxxxxxxxxxxx
AT+FIND caut un dispozitiv Bluetooth timp de un minut
AT+NAME stabilete un nume pentru un dispozitiv Bluetooth
AT+PIN trimite codul PIN
AT+RESET iniializeaz dispozitivul
AT+BAUD stabilete viteza de comunicaie prin RS232
Un microcontroller complex Bluetooth este Atmel AT76C551 bazat pe un nucleu ARM7.
Microcontrollerul prototip este echipat cu interfee USB, UART i PCMCIA i se
folosete la punerea la punct a aplicaiilor. Pentru producia n serie se fabric
microcontrollere cu una dintre interfee. Microcontrollerul poate fi folosit la realizarea
adaptoarelor USB Bluetooth pentru calculatoare desktop, adaptoare PCMCIA pentru
notebook-uri, adaptoare USB pentru imprimante, adaptoare pentru camere digitale,
telefoane mobile, PDA etc.

131
ISBN Interfaare i protocoale

10.5. Zigbee
Transmisia ZigBee este o transmisie wireless mai ieftin dect Bluetooth, asigur un
consum mai redus de energie i dimensiuni mici dar asigur i un debit mai mic de date.
Numele se pare c provine de la zborul n zig zag al albinelor care i transmit date
referitoare la poziia sursei de hran. Acest tip de transmisie se preteaz la aplicaii de tip
reea de senzori (reele mesh). Prima apariie a ZigBee a fost n 1998, ca urmare a nevoii
de o interfa mai ieftin dect Bluetooth pentru aplicaii cu muli senzori n care reeaua
se autoconfigureaz la intrarea sau ieirea unor senzori din activitate. Ca aplicaii se pot
meniona sisteme de senzori n domeniul casnic (incendiu, fum etc.), industrial, medical
pentru urmrirea datelor provenite de la un pacient, n telecomunicaii etc. Banda alocat
este 2,4GHz, dar i alte 2 benzi folosite n diferite ri. Modulaia este n cuadratur,
QPSK i asigur 250kbps la o distan uzual pn la 70m. Intervalul de band folosit este
ntre 2,405GHz i 2,480GHz, mprit n canale de 5MHz. Modulele ZigBee pot lucra n
modul punct la punct sau punct la multipunct i o reea de astfel de dispozitive necesit
un dispozitiv cu funcia de coordonator. Reeaua mesh permite conexiuni radio de date
ntre dispozitive mai ndeprtate dect raza de aciune radio prin interpunerea unor noduri
ZigBee intermediare iar defectarea unui nod poate fi transparent prin preluarea sarcinilor
de alt nod. Zigbee a fost standardizat de IEEE cu numele IEEE 802.15.4.
XBee asigur o rat de transfer de 250kbps la distane de maximum 100m n spaii
nchise i 1,6km n spaii fr obstacole, iar datele sunt furnizate printr-o interfa serial
care admite i comenzi AT, viteze posibile fiind ntre 1200bps i 1Mbps. Comunicarea
radio poate fi criptat (AES) iar corectitudinea transmisiei este asigurat de un mecanism
de confirmare (ACK) i rencercare. Puterea de emisie este de maximum 50mW (17dBm)
la 2,4GHz. Pentru legtura cu senzorii modulul are 10 pini de I/O i un canal de conversie
A/D pe 10 bii. Tensiunea de alimentare poate fi ntre 2,1V i 3,3V, curentul maxim (n
cazul transmisiei) fiind de 295mA. Exist i variante de module cu consum mic i raz de
transmisie mai mic.
Aceste module pot realiza o reea mesh i astfel se pot implementa reele cu proprieti de
descoperire a noilor dispozitive, eliminarea dispozitivelor defecte etc. Astfel modelul
XBee-PRO asigur doar o comunicaie punct la punct iar XBee Znet poate fi
interconectat ntr-o reea mesh.
Modulele XBee realizeaz o interfa ZigBee conform standardului IEEE 802.15.4,
lucreaz la frecvena de 2,4GHz i sunt destinate pentru funcia de senzor n reele
wireless, avnd ca i caracteristici pre mic, putere consumat mic (63mW) i fiabilitate
ridicat, figura 2.3.4. stnga. Distana maxim de transmisie este 30m n interior i 90m
n exterior dar exist module de putere mai mare care asigur transmisia pe distane mai
mari de pn la 1600m, la un debit al informaiei de 250kbps.

132
ISBN Interfaare i protocoale

Modulul Xbee conine un convertor AD integrat i are un set de 8 linii care pot fi
configurate ca linii digitale de I /O sau intrri pentru conversie AD. Circuitul dispune i
de un generator PWM integrat. Semnificaia pinilor este dat n figura 10.9. dreapta.

Figura 10.9. Xbee (sursa http://www.digi.com/controls/products/wireless-wired-


embedded-solutions/)

Implicit modulul funcioneaz n modul transparent n care tot ce se trimite/recepioneaz


pe interfaa serial este emis/ recepionat RF. Pentru a trece n modul de comenzi AT se
trimit trei caractere + succesiv. Reluarea modului transparent se face cu comanda ATCN.
Un exemplu de programare a adresei modulului este:
Comanda AT Rspuns Rezultat
+++ OK intrare n mod comenzi AT
ATDL <Enter> adresa curent se afieaz valoarea curent a adresei
ATDL1A0D <Enter> OK se trimite adresa dorit
ATWR <Enter> OK se scrie informaia n memorie
ATCN <Enter> OK ieire din modul de comenzi AT
Un alt exemplu este comanda ATD6 P, unde P este un parametru care poate fi 0-5 prin
care se stabilete dac pinul 5 al circuitului este cu funcia de RTS, intrare analogic, pin
de I/0 etc.

10.6. RFID
Identificare prin frecven radio (Radio-Frequency Identification sau RFID) este o
metod de identificare automat care se bazeaz pe stocarea i regsirea datelor la
distan, folosind dispozitive numite etichete RFID ( tag RFID) i transmitoare RFID.
Tehnologia necesit o cooperare a unui aparat cititor de RFID cu eticheta RFID. O
etichet RFID este un obiect mic sau foarte mic (sub 1 mm x 1 mm) care poate fi aplicat
sau ncorporat ntr-un produs, animal, sau chiar persoan, cu scopul de identificare i

133
ISBN Interfaare i protocoale

urmrire, folosind undele radio. Unele etichete pot fi citite de la muli metri deprtare,
chiar mult peste 50 m, iar eticheta se poate afla i n afara razei de vedere a cititorului.
O istorie a RFID scris de unul dintre cei care au dezvoltat aceast tehnologie este dat n
lucrarea J. Landt, The history of RFID, online la: http://www.transcore.com/pdf/).
Stockman a scris n 1948 prima lucrare care prevede posibilitatea RFID Communication
by Means of Reflected Power. n 1960 R. F. Harrington studiaz teoretic RFID dar primul
patent a fost acordat lui H.W. Cardullo n 1973 pentru o etichet RFID cu memorie
(http://www.rfidjournal.com/article/view/1338/1/129) . n 1970 guvernul SUA a nceput
cercetrile la Los Alamos pentru un sistem de urmrire a materialelor nucleare, avndu-l
ca membru pe J. Landt. Preluarea ideii de RFID n comerul retail a constat n eticheta de
un bit- articol pltit sau nu, n 1960. Dup Los Alamos cercettorii au fondat propria
companie pentru dezvoltarea de aplicaii comerciale. Primele etichete au fost realizate cu
funcionare la 125kHz, dar frecvena a crescut ulterior pentru a extinde raza de aciune. n
1999 a fost fondat la MIT Auto-ID Center de cteva companii importante pentru a realiza
tag-uri ieftine care se pot ataa pe orice produs. La Auto-ID Center s-au alipit peste 100
de companii pn n 2003 i au dezvoltat EPC (Electronic Product Code) i o arhitectur
de reea cu acces Internet pentru gestionarea datelor.
Cele mai multe etichete (tag-uri) RFID conin cel puin dou pri, figura 10.10:
un circuit integrat pentru stocarea i prelucrarea de informaii, modulare i
demodulare a unui semnal de radio-frecven (RF), i alte funcii speciale
(transponder RFID);
o anten pentru recepionarea i transmiterea de semnale radio.

Figura 10.10. Eticheta RFID


Astzi tehnologia RFID este deja folosit n domenii foarte numeroase. De exemplu n
lanul de aprovizionare al ntreprinderilor, pentru a mbunti eficiena inventarelor,
pentru urmrirea produselor n cursul fabricaiei i pentru managementul produselor. Alte
exemple de utilizare a RFID sunt:
msurarea timpului de la cursele atletice;
controlul paapoartelor;
aplicarea taxelor rutiere pe anumite autostrzi etc.;

134
ISBN Interfaare i protocoale

urmrirea produselor (vacile unei cirezi, crile unei biblioteci, transcontainerele


pe un vapor);
urmrirea locomotivelor i vagoanelor la cile ferate;
autentificarea persoanelor care doresc s intre n zone speciale;
paza i inventarierea n muzee.
Din cauza miniaturizrii permanente a tag-urilor, ajuns pn acolo nct ele sunt din ce
n ce mai greu de vzut i recunoscut, a aprut i o problematic grav, cea a potenialului
pentru spionaj n cele mai diverse domenii.
n figura 10.11 se observ cititorul (stnga) care genereaz un cmp electromagnetic
pentru alimentarea transponderului din eticheta RFID. Aceeai bobin este folosit ca
anten pentru transferul de date.
Transponder
Cititor Energie Controller
RFID Memorie

Date

Figura 10.11. Structura sistemului RFID


Etichetele pot fi pasive (ca n figur, cazul cel mai frecvent), ele folosind energia
furnizat de cititor, fiind astfel mai mici, mai ieftine i avnd o via mai lung. Pentru
extinderea razei de funcionare etichetele pot fi active, avnd o surs de alimentare
proprie.
Frecvena de lucru poate fi 125kHz care asigur un pre sczut dar o rat mic de transfer
i o etichet de dimensiuni mai mari. O alt frecven este de 13,56MHz care elimin
dezavantajele de la 125kHz dar costurile sunt mai mari. Alte frecvene utilizate n prezent
sunt cea de 869MHz 950MHz (funcie de zona geografic) i 2,4GHz, banda ISM n
care se aglomereaz aproape toate tipurile de comunicaii de raz scurt.
Din punctul de vedere al iniierii transferului exist dou situaii, cnd eticheta iniiaz
transferul cnd intr n zona de aciune a cititorului (TTF, Tag Talks First) cu
dezavantajul c intrarea simultan a mai multe etichete duce la apariia unor ntrzieri i a
doua situaie cnd cititorul interogheaz continuu zona de aciune i identific eticheta
care intr n zon (RTF, Reader Talks First).
Cel mai simplu mod de implementare este utilizarea unei interfae specializate de citire
/scriere a etichetelor, cum este cea de la Netronix, H1M-005. Interfaa lucreaz la

135
ISBN Interfaare i protocoale

frecvena de 125kHz, poate fi alimentat ntre 4,1V i 5,5V, asigur un debit de 4kbps la
maximum 20cm. Legtura cu un calculator gazd sau microcontroller se face prin RS232
la viteza de 9600Bd. Conectarea este simpl, ca n figura 10.12:

Antena 1 Rx RS232
Antena 2 Tx
GND GND CALCULATOR
5V port 2 SAU MC GAZD
port 1

Figura 10.12. Conectarea modulului Netronix H1M-005 (sursa www.netronix.pl)

Formatul comenzii ctre etichet i al rspunsului primit sunt date n Tabelul 1 respectiv
Tabelul 2:
Tabelul 1
Adresa Lungime Comand Parametri CRC
modulului cadru (1..n)
1 octet 1 octet 1 octet n octei 2 octei

Tabelul 2
Adresa Lungime Rspuns Parametri Confirmare CRC
modulului cadru (1..n) operaie
1 octet 1 octet 1 octet n octei 1 octet 2 octei

Fiecare etichet (de tip HITAG1) are o adres proprie. Dac adresa pus de cititor este
00H nu va rspunde nici un modul, dac este FFH vor rspunde toate modulele aflate n
raza de aciune. Parametri exist sau nu n funcie de tipul comenzii. Confirmarea
operaiei specific n rspuns corectitudinea execuiei.
Eticheta este vzut de cititor ca o memorie organizat n 16 blocuri, fiecare bloc are 4
pagini, fiecare pagin are 4 octei, deci un total de 256 octei n 64 de pagini. Blocurile 0
i 1 sunt rezervate pentru configurare. Unele blocuri sunt publice, iar altele sunt protejate
la citire.
Pentru exemplificare se descriu cteva comenzi i rspunsuri care pot fi trimise de
calculatorul gazd spre HIM-005 prin interfaa serial n formatul din Tabelul 1 respectiv
Tabelul 2:
Scriere n etichet- codul instruciunii este A0H, parametri sunt 4 octei de scris i
adresa paginii (sunt 64 de pagini, adresa este ntre 00H i 3FH). Codul

136
ISBN Interfaare i protocoale

rspunsului este A1H, ca parametri este dat adresa etichetei i confirmarea


operaiei care este FFH dac s-a scris cu succes;
Citirea din etichet- codul instruciunii este A2H, parametru este adresa paginii.
Codul rspunsului este A3H, ca parametri este dat adresa etichetei, cei 4 octei
de date citii i confirmarea operaiei care este FFH dac s-a citit cu succes;
Comanda de cuplare / decuplare a cmpului electromagnetic generat de anten-
codul comenzii este 10H /12H, fr parametri, rspunsul are codul 11H /13H i
confirmarea operaiei FFH;
Scrierea / citirea unui bit din liniile de I/O locale ale HIM-005- codul comenzii
este E0H / E2H, parametru este numrul portului i bitul de scris, codul
rspunsului este E1H / E3H, parametru bitul citit i confirmarea operaiei
ntotdeauna FFH;
Setarea amplificrii receptorului- codul comenzii este F0H, parametru este
amplificarea (0,1,2 sau 3), codul rspunsului este F1H i confirmarea operaiei
ntotdeauna FFH.
n figura 10.13 este artat un model experimental de sistem RFID cu Netronix HIM-005
realizat ca i proiect de licen. n stnga este modulul electronic cu HIM-005 i un
microcontroller ca i sistem gazd, cu antena cuplat i o etichet HITAG1 n partea de
jos a fotografiei. n dreapta este o captur de ecran a softului pus la dispoziie de Netronix
pentru citirea / scrierea etichetei.

Sistem gazd cu
microcontreoller i
interfa RS232

Modul Netronix HIM-005

Eticheta HITAG1 n cartel

Figura 10.13. Model experimental de sistem RFID cu Netronix HIM-005 (lucrare de


diplom)

137
ISBN Interfaare i protocoale

10.7.Concluzii
1. Concepia, proiectare i realizarea practic a unei comunicaii wireless este mai simpl
dect pare, aceasta datorit circuitelor de interfaare specializate. Utilizarea circuitelor
specializate micoreaz timpul de realizare a unei aplicaii Time to market.
2. Concepia unui sistem electronic de comunicaii ncepe cu un studiu pe net n ceea ce
privete existena circuitelor specializate (pe paginile constructorilor de circuite-
ATMEL, TI, Microchip etc.) apoi disponibilitatea comercial (pe paginile furnizorilor din
Romnia- Vitacom, ECAS, Adelaida, Farnell etc.);
3. Interfaarea unui circuit specializat cu un microcontroller se reduce de cele mai multe
ori la conectarea printr-o interfa standard serial sau paralel, de aceea este important
studierea detaliat a acestor interfee.
Un tabel comparativ al standardelor parcurse n acest capitol cu avantaje i dezavantaje
este dat n tabelul urmtor:
ZigBee GPRS 802.11 Bluetooth Protocoale
proprietare
Aplicaii Monitorizare Reele Internet Conectivitate Conectivitate
i control internaionale de ntre ntre
date i voce dispozitive dispozitive
Durata Ani Sptmni Sptmni Sptmni Luni
bateriei
Viteza 250kps 2Mbps 54Mbps 720kbps 115kbps
(300Mbps
la n)
Raza 100m km 100m 100m 200m
Avantaje Putere i Raz mare de Viteza Comoditate Pre i consum
cost mic aciune mic, simplitate
Reea Posibil Acces Internet Posibil Posibil Greu de
implememtat

Prin analiza acestui tabel se pot deduce variantele optime de transmisie radio pentru
fiecare aplicaie. Dup alegerea principiului de transmisie se trece la alegerea variantei
constructive. n acest capitol sunt prezentate de regul cte trei variante constructive.
Prima, cea mai simpl, care optimizeaz timpul de realizare a unei aplicaii este folosirea
unui modul specializat. A doua, un compromis ntre timpul necesar dezvoltrii i costului
este folosirea unui circuit de interfa conectat la microcontrollerul aplicaiei. A treia,
care asigur costul cel mai redus al aplicaiei este utilizarea unui microcontroller care
conine integrat interfaa de comunicaii aleas. Totui, n aceast variant mai trebuie
adugat de regul un circuit transceiver (partea de RF).

138
ISBN Interfaare i protocoale

11. Alte interfee: IEEE1394, IrDA, SATA

11.1. IEEE 1394


IEEE 1394 este o interfa serial cunoscut sub numele de FireWire (Apple), i.LINK
(Sony) i LYNX (TI). Interfaa a fost adoptat de HANA (High Definition Audio-Video
Alliance) ca interfa standard disponibil i wireless, pe fibr optic sau pe cablu
coaxial. Dezvoltarea interfeei a nceput n 1980 i a fost ncheiat n 1995. IEEE 1394 a
fost aplicat i n aviaia militar ca magistral pentru F-22 Raptor i F-35. Navetele
spaiale NASA au folosit IEEE 1394 pentru anumii senzori. n industria auto a fost
implementat o versiune numit IDB 1394. Cu toate c IEEE 1394 nu are rspndirea pe
care o are USB, majoritatea camerelor digitale sunt echipate cu o astfel de interfa.
Ca i n majoritatea comunicaiilor seriale transferul de date este bazat pe pachete.
Canalul comun de date este conceput s poat fi folosit pe rnd de fiecare dispozitiv care
l solicit. Exist un interval de timp specificat (numit fairness interval) n cadrul cruia
un dispozitiv are accesul la canalul de date comun. Dup ce dispozitivul a trimis un
pachet de date se ateapt scurgerea unui timp de separare (numit sub-action gap) dup
care un alt dispozitiv poate trimite un pachet. Dac dup scurgerea timpului de separare
nici un dispozitiv nu are de transmis vreun pachet, urmeaz o secven de reset.
Pentru a face posibil funcionarea dispozitivelor care necesit flux de date n timp real,
IEEE-1394 folosete un mod special de transfer, modul izocron, ca i USB. Un dispozitiv
ce necesit date izocrone emite la fiecare 125s un pachet special de temporizare prin
care asigur prioritatea transferului. Aceast schem de arbitrare garanteaz un minim de
buffer-e pentru date audio sau video (1 byte la dispozitive audio, pn la 6 bytes la
dispozitive video). Perioada de 125s coincide cu perioada de eantionare din sistemul de
telefonie digital, astfel interfaa IEEE-1394 poate fi plasat n sistemul ISDN (Integrated
Service Digital Network).
IEEE 1394 este asemntoare cu USB, aa nct este util o comparaie:
La IEEE 1394 nu este nevoie de un calculator gazd;
IEEE 1394 asigur o vitez efectiv de transfer mai mare dect USB ( dovedit pe
sistemul de operare MAC OS X dar cu rezultate contradictorii sub Windows);
Implementarea IEEE 1394 are costuri mai mari: licena Apple (0.25$/sistem) i
hardware mai scump cu 1-2$;
Ambele standarde pun la dispoziie prin cablul de transmisie de date o tensiune de
alimentare, sunt plug and play i admit hot swapping. IEEE 1394 admite
tronsoane de cablu de maximum 4.5m i poate alimenta o sarcin cu consum de
pn la 45W.

139
ISBN Interfaare i protocoale

Fiecare dispozitiv IEEE 1394 are un identificator propriu unic, (IEEE EUI-64)
care este o adres asemntoare cu adresa MAC de 48 de bii.
n decursul timpului au fost realizate mai multe variante constructive:
1.FireWire 400 (IEEE 1394/1995). Versiunea original poate transfera date cu viteze de
100, 200 sau 400 Mbps (S100, S200, S400) n mod half duplex. Modul de codificare al
datelor este data strobe D/S;
2.FireWire 800 (IEEE 1394b/2002). Versiunea a doua asigur o vitez de 800Mbps n
mod full duplex. Conectica este diferit fa de varianta anterioar. Modul de codificare
al datelor este 8B10B.
3.FireWire S800T (IEEE 1394c/2006). Versiunea a treia utilizeaz cablu Ethernet
categoria 5e. Nu exist nc implementri n sisteme disponibile pe pia datorit
confuziei posibile la o plac de baz echipat cu 2 conectori RJ45, unul cu interfa
Ethernet i unul IEEE 1394.
4.FireWire S1600 i S3200Se lucreaz la versiunile de 1.6Gbps i 3.2Gbps, care vor fi
concureni pentru USB 3.0. Conectorii sunt cei de la versiunea FireWire 800.
Se poate implementa o reea de calculatoare prin legturi IEEE 1394 n mod IPv4 sau
IPv6. Sistemele de operare care include suport pentru acest tip de reea sunt MAC OS X,
Windows ME, 2000, XP i Server 2003. Windows Vista i Server 2008 nu mai conin
acest suport.
n figura 11.1 este dat un tabel cu conexiunile la conectorii IEEE 1394 cu 4, 6 i 9 pini i
structura unui cablu IEEE 1394.
4 6 9 Funcie Descriere
pini pini pini Perechea A,
torsadat
1 8 Vcc 30V nestabilizat
2 6 Mas Mas pentru tensiune
1 3 1 TPB- semnal diferenial B Perechea B,
2 4 2 TPB+ semnal diferenial B torsadat
3 5 3 TPA- semnal diferenial A
4 6 4 TPA+ semnal diferenial A
Alimentare Ecran
5 ecran A
9 ecran B

Figura 11.1. Tabel de conexiuni i structura cablului IEEE1394

Codificarea datelor D/S este o codificare NRZ cu transmiterea tactului i necesit 2 linii
de semnal, una de date i una de strob. Un SAU Exclusiv ntre cele 2 semnale reconstituie

140
ISBN Interfaare i protocoale

tactul, figura 11.2. Petru transmisia datelor este nevoie de ambele perechi FireWire, deci
este posibil doar un transfer half duplex. Codificarea este aplicat la FireWire 400.

Data

Strob

Data
XOR
Strob

Figura 11.2. Codificarea Data /Strobe

Codificarea 8B10B a fost imaginat de Al. Widmer i P. Franaszek de la IBM n 1983 i


IBM a obinut un patent. Rspndirea codificrii a luat avnt dup expirarea patentului.
Aplicaiile dovedesc eficiena codificrii: PCI Express, SATA, SAS, Fibre Channel,
IEEE 1394b, Gigabit Ethernet (mai puin la 1000BaseT), DVI, HDMI, USB 3.0 i
seamn cu codificarea folosit la CD (Eight to Fourteen Modulation). n principiu
codificarea asigur o component DC mic pentru ca irul de date s poat trece prin
transformatorul de separare Ethernet, adic numrul de 0-uri este aproape egal cu
numrul de 1-uri. ntr-un ir de 20 bii diferena ntre numrul de 0 i de 1 poate fi maxim
2. Codul este autosincronizabil i se admit maxim 5 valori de 0 sau de 1 succesive.
Codificarea atribuie la 8b o entitate de 10b numit simbol sau caracter. La 5b mai puin
semnificativi se atribuie 6b (poriunea 5b/6b) iar la 3b mai semnificativi se atribuie 4b
(poriunea 3b/4b). Se definesc 12 simboluri speciale de control care marcheaz nceputul
cadrului, sfritul cadrului, skip, etc. Datorit codrii cuvintelor de 8b cu simboluri de
10b anumite valori din cele 1024 pot fi excluse pentru a realiza condiia de a nu exista 5
valori de 0 sau de 1 consecutive. Pe linie se transmite nti poriunea 5b/6b apoi 3b/4b.
Datele pot fi notate ca D.x.y unde x este poriunea 5b/6b i poate fi 0-31 iar y este
poriunea 3b/4b i poate fi 0-7 ca valori necodate. Se definete RD (Running Disparity ca
diferena ntre numrul de bii de 1 i numrul de bii de 0. Se urmrete obinerea RD ct
mai mic. n acest scop grupurile 5b/6b i 3b/4b se stabilesc n funcie de RD anterior ca
valori negate sau nenegate. De exemplu D.00 se codific ca 100111 (RD iniial este 1 i
rezult RD=+1) sau 011000 (RD iniial este +1 i rezult RD=1) La fel, n funcie de RD
iniial se codific i grupul 3b/4b D.x.0 se codific ca 1011 (RD iniial este 1 i rezult
RD=+1) sau 0100 RD iniial este +1 i rezult RD=-1). Astfel n ipoteza RD iniial 1,
D.00.0 se codific ca 1001110100 i rezult RD=0
141
ISBN Interfaare i protocoale

Topologia unei arhitecturi IEEE 1394 este de tip stea multipl (arbore) cu posibilitatea de
nlnuire (daisy-chain). n figura 11.3 sunt prezentate dou spaii de lucru unite cu un
bridge. Cele 2 spaii sunt izolate din punctul de vedere al traficului de date. Spaiul 1 de
lucru ocup mare parte a benzii din cauza traficului video, dar n spaiul de lucru 2
calculatorul are ntregul control al traficului. Este posibil ca i calculatorul 2 s solicite
date video, chiar dac calculatorul 1 este oprit. Este figurat un repetor care mrete
distana de conectare i un splitter care adaug 2 porturi unui port IEEE 1394.

Spaiul 1
Imprimant

Splitter Bridge

Repetor

Calculator 1 Spaiul 2

Calculator 2
Camer digital

Imprimant

Figura 11.3. Topologia unei arhitecturi IEEE 1394


Pentru a transmite date n mod asincron dispozitivul IEEE 1394 compune un cadru care
conine adresele sursei i destinaiei, apoi date i CRC. Cnd receptorul accept datele un
cadru de confirmare este trimis la transmitor. Transmitorul are posibilitatea s trimit
nc 63 de cadre continuu pentru a mri viteza de transfer. Dac cadrul de confirmare
returneaz o eroare se aplic o metod de reacie la eroare.
n mod izocron emitorul solicit un canal izocron iar dac receptorul l accept i se
asigur un interval de timp de transfer pentru a asigura banda necesar transferului. Se
pot defini pn la 64 de canale izocrone. n exemplul din figura 11.4. n pachetul de date
de 125s sunt definite 2 intervale de timp pentru 2 transferuri izocrone. Timpul rmas
liber se poate folosi la transferuri asincrone.

142
ISBN Interfaare i protocoale

Sloturi de timp garantate Slot de timp liber

Canal izocron 1 Canal izocron 2 Interval de timp pentru transferuri asincrone

125s

Figura 11.4. Transferuri izocrone pentru a asigura un flux de date n timp real

Circuite IEEE 1394


Nivelele ISO OSI (Open Systems Interconnection) n cazul IEEE 1394 sunt date
simplificat n figura 11.5.
Microprocesor,
microcontroller sau PCI

Nivel bus management


Placa TI
Nivel tranzacie Averna TSB43C
SedNet 1394 Audio/
video
Nivel legtur LLC TI
TSB12

Nivel fizic PHY TI


TSB41

Canale IEEE 1394


Figura 11.5. structura stivei OSI la IEEE 1394

Nivelul bus-management definete funciile de baz de control precum i registrele de


control i de stare necesare dispozitivelor conectate pentru a-i face porturile
operaionale. Acest nivel se ocup i de asigurarea canalelor, de arbitrare, mastering i de
erori.
Nivelul de tranzacie mediaz operaiile de scriere i citire. Standardul permite la acest
nivel operaii cu cuvinte de lungime variabil.
Nivelul de legtur realizeaz controlul logic n legtura IEEE 1394. Acest nivel
realizeaz formarea cadrele la transmisie i extragerea informaiei din cadrele
recepionate.

143
ISBN Interfaare i protocoale

Nivelul fizic presupune att protocolul transferului ct i mediul efectiv de transfer.


Partea de protocol controleaz accesul la legtur, iar partea de mediu este constituit din
cabluri i conectori. La acest nivel se realizeaz codarea i decodarea datelor, se asigur
nivelele de tensiune necesare i se face arbitrarea magistralei.
Circuitele IEEE 1394 au un grad de complexitate mai mare dect cele USB, unul dintre
motive fiind acela c pot lucra i independent de calculatorul gazd. Multe circuite sunt
realizate cu magistral PCI pentru a fi utilizate n calculatoare PC. n figura 11.5. sunt
date cteva exemple de circuite i plci i nivelele OSI pe care le acoper. A fost figurat
un circuit care acoper nivelul fizic (PHY Pysical Layer Controller) i unul care acoper
nivelul de legtur (LLC Link Layer Controller). Unele circuite, aa cum este TSB43C de
la Texas Instruments acoper mai multe nivele i ncorporeaz blocuri de prelucrare
audio video, un alt motiv pentru complexitatea mai mare a circuitelor.Placa SedNet de la
Averna este un sistem de dezvoltare IEEE 1394 cu microcontroller Motorola i arat ca n
figura 11.6:

Figura 11.6. placa IEEE 1394 SedNet, sursa


ftp://ftp.adi.com/pub/adiuk/DDS%20V2.0/Averna_1394-OHCI_Boards.pdf

Acest sistem de dezvoltare este o soluie hardware i software complet pentru


gestionarea unei comunicaii IEEE 1394 ntre aplicaia unui client care ruleaz pe un
microcontroller care se conecteaz cu aceast plac prin intermediul unor linii de I/O sau
o aplicaie client care ruleaz pe microcontrollerul plcii SedNet. Schema bloc a plcii
SedNet este dat n figura 11.7:

144
ISBN Interfaare i protocoale

SedNet
1 Motorola
Controller de Link MCore
nivel fizic Controller MMC2107
Izolare
2 TSB41 TSB12
PHY
galvanic
LLC

3
Date 256k RAM
direct static
3 porturi
IEEE 1394

Conectori I/O

Figura 11.7. schema bloc a plcii SedNet


Partea software se numete Micro-Stack, ruleaz pe microcontrollerul plcii i realizeaz
nivelele bus-management i tranzacie din comunicaia IEEE 1394. Exist i varianta de a
cumpra sursa programului Micro-Stack i de a o porta pe un alt microcontroller pentru a
dezvolta o soluie hardware proprie. Alimentarea plcii este realizat cu alimentator
propriu sau prin cablul IEEE 1394, dar n al doilea caz acest caz nu este posibil izolarea
galvanic ntre controllerul de nivel fizic i restul plcii.Microcontrollerul MMC2107 are
ncorporat 128k FLASH iar pentru testare i debugging portul JTAG este scos la pinii de
I/O. Accesul este posibil de la distan prin IEEE 1394 la toate resursele plcii.
Se pot conecta maximum 62 dispozitive IEEE 1394, cu viteze de transfer posibile 100,
200 i 400Mbps. Placa suport att transferuri izocrone ct i asincrone, datele putnd fi
preluate direct, fr intermediul microcontrollerului MMC2107 de la controllerul de nivel
legtur. Legtura direct este recomandat pentru transferul datelor cu volum mare, cum
ar fi cele de la dispozitivele video. Semnalele de legtur cu microcontrollerul sunt cele
obinuite - un port RS232, SPI, JTAG, semnale de ntrerupere, reset, tact, linii de I/O etc.
Placa a fost special conceput pentru aplicaii nglobate care nu conin PC pentru c nu
are interfa PCI.

11.2.Transferul de date n infrarou IrDA


n 28 iunie 1993, un grup de 120 de reprezentani din 50 de companii de calculatoare au
creat o asociaie numit Infrared Developers Association (IrDA) cu scopul de a
standardiza comunicaiile n infrarou. Tehnologia era deja pus la punct n telecomenzile
TV i la transferul de date ntre Notebook-uri, dar se simea nevoia unui standard. Primul

145
ISBN Interfaare i protocoale

standard, bazat pe portul serial RS232 a fost aprobat n 1994. Acest standard folosete
specificaiile portului serial, aceeai structur de date dar din pcate i limitele vitezei. n
1995 a fost aprobat un nou standard de mare vitez care mpinge limita de vitez la
1Mbps.
n cadrul comunicaiilor necablate (wireless), standardul IrDA face parte din categoria
transmisiei infrarou directe, o comunicaie punct la punct. ntre echipamente trebuie s
existe vizibilitate direct. n afara acestui tip de comunicaie mai exist comunicaia
infrarou difuz, o comunicaie ce permite legturi multiple i care nu necesit vizibilitate
direct ntre echipamente, dar care necesit materiale speciale de construcie a cldirilor.
Avantajele comunicaiei infrarou sunt evidente: uurarea portabilitii aparatelor,
eliminarea cuplajelor cablate (nu se mai ntrerup firele i nu se mai ntmpl ca un
conector s nu fac contact), eliminarea perturbaiilor electromagnetice radiate, deci
implicit eliminarea interferenelor electromagnetice. Aceste avantaje sunt majore n
zonele de lucru cu regim special, cum ar fi centralele nucleare, laboratoarele de cercetare
i msurri de precizie, acceleratoarele de particule etc. Aceste avantaje au dus la
rspndirea echipamentelor cu interfa IrDA. Exist Notebook-uri care au o astfel de
interfa, imprimante pentru Notebook-uri, dar i mouse i tastaturi infrarou pentru
calculatoarele desktop uzuale, sau unele telefoane mobile. Faptul c perifericele n
infrarou se fabric n multe exemplare a dus firesc i la scderea preurilor, care le face
accesibile.
Codificarea datelor
La viteze ntre 2.4 kbps i 1.152 Mbps datele se codific RZI (Return to Zero Invert).
Prin aceast codificare unui 0 logic i corespunde un impuls, iar la un 1 logic nu apare
nici un impuls, figura 11.8, sus. Impulsul are o durat fix, mai mic dect durata celulei
bit.

9,77 s

s-a transmis irul 10010 prin


Celula bit 104,2 s RZI la viteza de 19200 kbps
0 1 2 3 4 5

125ns s-a transmis irul 011011


prin 4PPM la viteza de
4Mbps

Durata simbol 500ns

Figura 11.8. Codificarea datelor la IrDA

146
ISBN Interfaare i protocoale

Un impuls dureaz 3/16 din lungimea unei celule bit. Un impuls cu 10% mai lung este
acceptabil. De exemplu, celula bit la viteza de 9600 bps dureaz 104.2s , deci durata
impulsului este 18.53 s. La viteze mai mari durata impulsului este 1/4 din durata celulei
bit. Durata impulsului n celula bit este astfel aleas ca receptorul optic s poat distinge
impulsurile.
La viteza de 4 Mbps codificarea se face prin modularea impulsurilor n poziie. IrDA
implic 4 poziii pentru impuls, de aceea codificarea se numete 4PPM (4 Pulse Position
Modulation). Aceast codificare folosete poziia unui impuls n celula bit pentru a indica
o valoare logic. Lungimea celulei bit se numete durata unui simbol (symbol duration)
i este mprit n 4 segmente egale numite chips. Un impuls poate apare n unul i
numai n unul din aceste segmente. Fiecare impuls n una din 4 poziii poate codifica 2
valori binare. Pentru transmisia unui octet sunt suficiente 4 celule bit. Datele sunt
transmise n format pe 8 bii de date, un bit de start, un bit de stop, fr bit de paritate. Se
transmit astfel 10 bii/caracter. Cel mai puin semnificativ bit se transmite primul. Durata
impulsului este de 125ns pentru un impuls singular. Pentru mrirea siguranei transferului
se pot folosi impulsuri duble, a cror durat total este de 250ns.Codificarea 4PPM este
autosincronizabil, deoarece n fiecare celul bit exist un impuls. Codificarea RZI ns
nu este autosincronizabil, deoarece poate apare un ir lung de valori logice 1 care
nseamn lipsa impulsurilor transmise o perioad lung de timp, perioad n care
receptorul poate pierde sincronizarea.
Sistemele IrDA de viteze mici lucreaz n mod asincron i la aceste sisteme transmisia se
face cu tact standard (cu acest cod neautosincronizabil), pentru c nu pot apare erori prea
mari la transmisia a doar 10 bii. La viteze medii ns, n cazul transmisiei sincrone, este
nevoie de autosincronizare.
Exist multe firme care produc cicuite pentru transferul de date IrDA, aa cum sunt:
Texas Instruments, MAXIM, Sharp, Novalog, Agilent Technologies, California Eastern
Laboratories, EXAR, Linear Technology etc. Ca variante constructive se poate opta
pentru un transceiver IrDA care s se conecteze la un circuit UART existent, se poate
alege un circuit UART cu port IrDA sau se poate realiza o interfa IrDA cu
microcontroller.
Circuite IrDA
Un transceiver TI de tip TIR1000 poate lucra att IrDA ct i n standardul de transfer
infrarou al Hewlett Packard HPSIR. Viteza poate fi ntre 1200 i 115200 bps, iar
tensiunea de alimentare ntre 2,7 i 5V. Este disponibil n capsul PSOP (Plastic Small

147
ISBN Interfaare i protocoale

Outline Package) cu 8 terminale. Circuitul codeaz i decodeaz semnalele IrDA, aa


nct el se poate conecta la un UART, figura 11.9.

RESET Decodor
IR_RXD
U_RXD

16xCLK Codor
U_TXD IR_TXD

Figura 11.9. Transceiver TIR1000

1. 16xCLK este un semnal de ceas care trebuie s fie de 16 ori mai mare dect rata
de transmisie. Tactul maxim este de 16x115200=1.843MHz.
2. IR_RXD intrarea pentru date recepionate IrDA, cu factorul de umplere de 3/16,
de la un dispozitiv optoelectronic.
3. IR_TXD ieire pentru datele emise IrDA ctre o diod n infrarou.
4. RESET iniializare circuit, legat la linia de RESET a circuitului UART.
5. U_RXD date decodate, spre intrarea de date a UART.
6. U_TXD date de transmis de la ieirea de date a UART.
Un modul care conine un emitor i un receptor IR (ZHX1010) este prezentat n figura
11.10 stnga iar n mijloc este schema de conectare care arat simplitatea soluiei. Pentru
conectarea la un PC se poate folosi un adaptor USB IrDA (dreapta).

148
ISBN Interfaare i protocoale

Figura 11.10. Modul IR (sursa http://www.alldatasheet.com/datasheet-


pdf/pdf/113918/ZILOG/ZHX1010.html) i adaptor USB IrDA (sursa http://www.i-tec-
europe.eu/?t=3&v=20)

11.3.Interfaa SATA
Interfaa serial SATA este cea mai rspndit interfa n prezent pentru cuplarea hard
discurilor. Interfaa este format din 2 perechi de fire cu transmisie LVDS (Low Voltage
Differential Signaling, 250mV), o pereche pentru date emise, una pentru date
recepionate, transmisia fiind diferenial. Datele sunt codificate 8B/10B ca i Ethernet
Gigabit, PCIe sau Fibre Channel. Legtura SATA este o legtur punct la punct, fiecare
drive este conectat printr-un cablu serial la placa de baz. SATA a nlocuit interfaa
paralel ATA (numit i PATA) (Advanced Technology Attachment).
Prima generaie SATA (SATA 150) comunic cu viteza de 1,5Gbps, ceea ce nseamn
circa 1,2Gbps informaie util, adic 150Moctei/s, ceva mai mult dect ATA133. SATA
300 (SATA 2) asigur o vitez de 3Gbps i are compatibilitate n jos la SATA 150 n
urma unei negocieri la iniializare. Acest protocol nu este implementat n toate
dispozitivele gazd, aa nct pe unele hard discuri exist un jumper pentru selecia
SATA 150 sau SATA 300.
Avantajele SATA sunt:
Viteza de transfer ridicat
Posibilitatea implementrii Hot Plug In
Posibilitatea unor porturi externe SATA (eSATA)
Cablul de date este mai mic deci mai ieftin i asigur o circulaie mai bun a
aerului n carcas.

149
ISBN Interfaare i protocoale

Cablul de alimentare SATA trasmite tensiuni de 3,3V, 5V i 12V. Adaptorul de la sursa


ATX nu are 3,3V ceea ce mpiedic hard discurile astfel alimentate s aib capacitatea de
Hot Plug In.

Protocolul n interfaa SATA


Interfaa SATA este o interfa serial sincron cu refacerea tactului din datele citite,
codificarea fiind cu adugare de bii, transmisia fiind realizat cu cadre (blocuri) de date.
Sunt definite secvene de date numite primitive SATA care sunt de fapt cadre de date
utilizate pentru comenzi / stri.
SYNC SincronizareX_RDY Interfaa este gata s transmit un cadru
R_RDY Interfaa este gata s recepioneze un cadru
R_IP Interfaa este n curs de recepie a unui cadru
WTRM Interfaa a terminat de trimis un cadru i ateapt terminarea conexiunii
R_OK Interfaa a terminat de recepionat un cadru i CRC este corect
R_ERR Interfaa a terminat de recepionat un cadru i CRC nu este corect
SOF nceput de cadru
EOF Terminarea unui cadru
nainte de transferul de date interfaa SATA- negociaz viteze de transfer. Pentru aceasta
se folosesc cadrele sau primitivele de negociere, figura 11:
COMINIT Folosit de dispozitivul SATA pentru a solicita o iniializare
COMRESET Folosit de gazd pentru a fora un Reset
COMWAKE Folosit de dispozitiv sau gazd pentru a scoate interfaa din modul
adormit.

150
ISBN Interfaare i protocoale

Figura 11.11. Negocierea vitezei (sursa


http://www.serialtek.com/sata_protocol_overview.asp)

Gazda trimite un COMRESET care reseteaz drive-ul. Drive-ul solicit cu COMINIT


iniializarea comunicaiei. Gazda trimite COMWAKE care scoate drive-ul din modul
adormit. Drive-ul trimite ca rspuns COMWAKE i ALIGN la frecvena cea mai mare de
comunicaie.
Secvenele SYNC se trimit pentru a permite sincronizarea buclei PLL din receptor att de
la gazd la drive ct i invers.

151
ISBN Interfaare i protocoale

Dup negocierea vitezei se


transmit primitive de
sincronizare pentru a permite
sincronizarea buclei PLL din
receptor att de la gazd la
drive ct i invers, figura 11.12.

Cu primitiva X_RDY gazda


comunic c este gata s
transmit date.

Cu primitiva R_RDY drive-ul


comunic c este gata s
recepioneze date.

Figura 11.12. Protocolul de transfer de date SATA (1) (sursa www.eng.auburn.edu)

152
ISBN Interfaare i protocoale

Gazda ncepe s transmit date,


precedate de primitiva SOF,
figura 13.

Cu primitiva R_IP drive-ul anun


c primete date

Dup terminarea cadrului de date


gazda insereaz CRC i primitiva
EOF. Transmite apoi primitiva
WTRM ateptnd nchiderea
conexiunii.

Drive-ul anun recepia complet


a datelor i cu primitiva R_OK
comunic un CRC corect.

Dup terminarea transmisiei de


date att gazda ct i drive-ul
transmit primitiva SYNC.

Figura 11.12. Protocolul de transfer de date SATA (2) (sursa www.eng.auburn.edu)

153
ISBN Interfaare i protocoale

12. Paralel ntre stocarea datelor pe suporturi magnetice i optice i


transmisia serial

12.1.Introducere
Codarea datelor n vederea stocrii lor pe suporturi magnetice i optice are multe puncte
comune cu transmisia serial. Acest lucru se datoreaz faptului c datele memorate pe
suport magnetic sau optic sunt aranjate bit dup bit pe o pist a platanului hard discului
sau pe pista spiral a unui DVD. Scopul urmrit n dezvoltarea acestor suporturi de
informaie este mrirea capacitii de stocare, dat de micorarea zonei pe suport ocupat
de un bit. Acest scop a generat cercetri i mbuntiri continue n creterea eficienei
codrii. Tendina este clar la unitile de hard disc (HDD) care, datorit faptului c au
aprut naintea unitilor optice au trecut prin toate fazele de dezvoltare a codrii. La
primele hard discuri cele mai simple metode de codare asigurau 20Moctei la o unitate de
5 inch, n timp ce acum se ating uzual capaciti de 1T la uniti de 2,5 inch.
nainte de apariia hard discurilor primele nregistrri magnetice pe band au fost
realizate prin nregistrarea a dou piste alturate, una cu date i alta cu tact. Acest mod de
nregistrare este echivalent cu transmisia serial cu transmiterea tactului. Ulterior, toate
codrile au urmrit s asigura refacerea tactului din datele transmise, deci au fost folosite
exclusiv codri autosincronizabile.

12.2. Codarea pe suporturile magnetice


Unitatea de hard disc a fost realizat pentru prima dat n 1956 de IBM. Unitatea IBM
Ramac 350 avea dimensiunea a 2 combine frigorifice.n 1973 IBM introduce hard discul
Winchester la care discurile puteau fi scoase din unitate i nlocuite cu alt set.n 1980
apar hard discurile de 5,25 iar n 1983 hard discul de 10M intr n componena
calculatorului IBM PC XT. Un hard disc Seagate de 5,25 de 20M arat ca n fotografia
din figura 12.1.

Figura 12.1. Hard disc Seagate de 5,25 de 20M (sursa: colecia personal P. Ogruan)

154
ISBN Interfaare i protocoale

Componentele importante din structura unui hard disc sunt reprezentate n figura 12.2.

Discuri de
Motor liniar aluminiu acoperite
electrodinamic cu Braul port cu o pelicul
magnei permaneni n capete feromagnetic
stator i bobin parcurs
de curent ca rotor (voice Filtru pentru curirea
coil) aerului antrenat de discuri

Carcas antivibraii

Cablu panglic flexibil pentru


transmiterea datelor citite de la Axul motorului care
capete la placa electronic. O prim antreneaz discurile n
prelucrare analogic se face chiar pe rotaie prin CAV (Constant
panglic. Angular Velocity)

Placa electronic (nu se vede


din acest punct de vedere)

Figura 12.2. Componentele importante din structura unui hard disc

Cteva dintre caracteristicile cele mai importante ale unitilor de hard disc sunt:
1. Timpul de acces este timpul care trece de la o comand de acces a sistemului
electronic pn datele solicitate sunt accesibile. Timpul de acces apare ca urmare
a naturii mecanice a braului care poart capetele i a sistemului de rotaie a
discurilor.
2. Timpul de poziionare este timpul necesar poziionrii capetelor pe cilindrul
dorit. La primele hard discuri la care poziionarea se fcea cu motoare pas cu pas
timpul era de ordinul 500ms. Timpul mediu de poziionare la acionrile actuale
cu motor de curent continuu electrodinamic este de 3-20ms.
3. Timpul (viteza) de transfer poate fi dat pentru viteza datelor seriale preluate de
pe disc odat ce capetele au fost poziionate i evident depinde de viteza de
rotaie. La un HDD de 7200rpm viteza tipic este 1Gbps. Viteza de transfer poate
fi dat i pentru transferul datelor din buffer-ul HDD n calculatorul gazd,

155
ISBN Interfaare i protocoale

interfaa SATA permite 3Gbps. Acest timp depinde de viteza de rotaie a


discurilor dar depinde n cea mai mare msur de metoda de codare utilizat.

4. Timpul de laten este timpul necesar ca sistemul de rotaie s aduc sectorul


solicitat n dreptul capetelor. nregistrarea unui bit de informaie pe suport
magnetic se face prin nregistrarea a dou zone magnetizate cu sensuri contrare
alturate. La trecerea suportului magnetic prin faa capului de citire, tranziia
dintre zonele magnetizate va genera o tensiune n bobina capului magnetic, figura
12.3.

Cap magnetic
u

Semnale la citire

n i
g
x

Hx
h

Hz Zone magnetizate pe suport magnetic

Figura 12.3. Principiul scrierii i citirii magnetice

Capul de scriere citire este un inel cu un ntrefier i o nfurare cu n spire strbtut de


curentul i care creaz un flux magnetic n vecintatea spaiului interpolar i care
determin o magnetizare a stratului magnetic al mediului de stocare. Scrierea este
realizat prin fluxul de dispersie i nu de fluxul prin ntrefier. Cu ct ntrefierul g este mai
mic cu att densitatea de scriere poate fi mai mare. Componenta Hx a cmpului magnetic
este responsabil de scrierea zonei magnetizatela primele generaii de hard discuri, iar
componenta Hz este utilizat la noile generaii la care zonele magnetizate sunt verticale.

156
ISBN Interfaare i protocoale

Codarea datelor pentru nregistrarea zonelor magnetizate s-a dezvoltat n timp i a avut
urmtoarea evoluie:
1.Codare FM (Modulaie n Frecven), fiecare bit este precedat de un impuls de tact. n
exemplul din figura 12.4. (stnga) se obine un numr de 3 tranziii pentru 2 bii, deci
0,66 bii pe tranziie.
2.Codare MFM (Modified FM). Impulsurile de tact se elimin dac n celula precedent
sau n cea curent exist un bit de date 1. n exemplul din figura 12.4. (dreapta) sunt 4
bii i 3 tranziii, deci 1,33 bii pe tranziie.
1 1 0 0
0 1
t
t
Figura 12.4. Codare FM (stnga) i MFM (dreapta)

3.Codarea RLL (Run-length limited). Codarea iniial RLL realizat de IBM este o
codare de grup care admite maxim dou valori de zero consecutive conform tabelului
alturat. Se codific astfel 4 bii cu 5 bii, aproximativ 3,5 tranziii n fiecare grup de 5
bii, deci 1,43 bii pe tranziie, figura 12.5. stnga.
4.Codarea RLL 1,7 codeaz 2 bii n grupe de 3 bii. Anumite combinaii ale celor 2 bii
se codeaz innd cont de combinaia anterioar, conform tabelului din figura 12.5.
(mijloc). 2 bii se codific n medie cu 1,5 tranziii deci 0,75 tranziii pe bit. n exemplul
din figura 12.5 (dreapta) sunt 7 tranziii i 14 bii, ceea ce nseamn 2 bii pe tranziie.

Date: 0 0 1 0 1 1 0 1 0 0 0 1 1 0

Cod: 101 001 010 100 100 000 001

Figura 12.5. Tabele de codare RLL (stnga), RLL 1,7 (mijloc) i un exemplu de codare

157
ISBN Interfaare i protocoale

Datele sunt aranjate n cilindri, fee (capete de citire) i sectoare, aranjarea fiind numit
CHS (Cylinder-Head-Sector), figura 12.6. Cilindrul este ansamblul pistelor cu acelai
numr de pe toate feele discurilor. Structura unui sector depinde de tipul i fabricantul
hard discului.

Figura 12.6. Aranjarea datelor pe hard disc n cilindri, fee i sectoare (CHS, Cylinder-
Head-Sector)

n fiecare sector datele sunt aranjate sub form de cadre de date, ceea ce plaseaz
codificarea datelor alturi de interfeele seriale cu informaia de sincronizare ataat unui
cadru (USB, Ethernet, SATA, etc.).
Cadrul de date, figura 12.7. conine un cmp de identificare sector i un cmp de date,
separate de un interval.

Cmp de identificare sector Interval Cmp de date

Subcmp sincro Marc identificare Cilindru-Cap-Sector Bad Block CRC

Subcmp sincro Marc identificare Date 256, 512, 1024 octei CRC

Figura 12.7. Cadrul de date

Subcmpul de sincronizare este necesar pentru ca bucla PLL de refacere a tactului din
datele citite la receptor s se poat sincroniza. Marca de identificare are o structur
special care nu respect regula de codare, de exemplu are o succesiune de nivele de zero

158
ISBN Interfaare i protocoale

sau de unu mai lung dect cea maxim admis de codarea de grup. Informaia util este
format din numrul cilindrului, al capului i a sectorului curent, precum i marcri
speciale cum ar fi Bad Block. Un sector marcat cu Bad Block de o aciune de formatare
nu este citit sau scris.

12.3. Codarea pe suporturile optice


Unitatea optic citete sau scrie date codificate binar pe un suport circular, numit disc
optic (CD, DVD sau BlueRay).
n 1961 David Paul Gregg a nregistrat n SUA patentul unitii optice. Music
Corporation of America (MCA) a cumprat patentul lui Gregg mpreun cu toat
compania lui. Acest reper istoric constituie nceputul primei etape, etapa CD. n aceast
etap un CD poate nmagazina 700MB pe o fa.
n 1989 Pioneer a nregistrat un patent pentru uniti optice care a adus beneficii
financiare substaniale. Dup acest an a fost dezvoltat a doua etap istoric a unitilor
optice, etapa DVD. Un DVD poate nmagazina circa 4,7GB sau 8GB (dual layer) pe o
singur fa.
Dup anul 2000 un grup de firme (Apple, Dell, Hitachi, HP, JVC, LG, Mitsubishi,
Panasonic, Pioneer, Philips, Samsung, Sharp, Sony, TDK i Thomson, grupate n
asociaia BDA Blu-ray Disc Association) au dezvoltat tehnologia Blu-ray care constituie
etapa a treia n dezvoltarea unitilor optice. Capacitatea este de 25GB sau 50GB (dual
layer) pe o singur fa.
n etapa a patra se prevede atingerea unor capaciti de ordinul a un terabyte n tehnologii
holografice sau cu discuri din materiale speciale.
Suportul este format dintr-un substrat transparent care protejeaz stratul care conine
informaia, figura 12.8. Informaia este codificat prin adncituri (ridicturi) aranjate sub
forma unei piste spirale. Ridicturile au dimensiunea de l/4 i o raz laser incident pe o
ridictur este reflectat 30% iar incident pe o adncitur este reflectat 100%. Un strat
reflectorizant asigur reflexia razei laser i este protejat de un strat protector pe care se
poate aplica eticheta comercial. Datele numerice din figur se refer la discul CD. Exist
suporturi de informaie care pot fi scrise pe ambele pri, acestea avnd o structur
simetric. Principalele componente ale unei uniti optice sunt artate n figura 12.9.

159
ISBN Interfaare i protocoale

Strat protector i
etichet comercial
1,2mm Strat reflectorizant
(policarbonat)

Strat care conine


informaia
/4
0,12m

Substrat transparent

Raza laser
Incident / Incident /
Reflectat Reflectat 30%
100%

Figura 12.8. Principiul citirii optice

Motor platan

Motor antrenare CD

Motor antrenare Cap de scriere citire


cap cu angrenare optic
prin urub fr Lentila de
sfrit focalizare

Motor antrenare cap


citire scriere
Colecia Petre Ogruan

Figura 12.9. Principalele componente ale unitii optice

160
ISBN Interfaare i protocoale

Codificarea datelor pe suporturile optice este realizat prin EFM la CD i EFM PLUS la
DVD. Codarea EFM (Eight-to-fourteen modulation) se afirm c a fost inventat de
Kees A. Schouhamer Immink (sursa http://en.wikipedia.org/wiki/Eight-to-
fourteen_modulation ). Acest inventator i om de tiin danez a avut contribuii
nsemnate la dezvoltarea tehnologiei optice.
Regula de codare EFM este ca ntre dou valori de unu logic s existe intercalate
minimum dou i maximum 10 valori de zero logic, codate NRZI (Non Return to Zero
Inverted). La un cod de 14 bii la care exist 214 = 16384 combinaii, 267 dintre acestea
ndeplinesc condiia EFM, deci acoperitor pentru a putea codifica cele 256 de combinaii
ale cuvintelor pe 8 bii. Astfel prin codarea EFM fiecrui cuvnt de 8 bii i corespunde
un cod de 14 bii. Corespondena cuvintelor de 8 bii cu cele de 14 bii este realizat
practic prin tabele de conversie hardware, lista corespondenelor ntre cuvintele de 8 bii
i codurile EFM corespunztoare fiind dat de exemplu n
http://www.laesieworks.com/digicom/Storage_CD_8to14.html .
Codificarea unui cuvnt de 8 bii i nscrierea lui pe un suport optic poate fi exemplificat
n figura 12.10.

Cuvnt pe 8 bii 00001001 Bii de legtur

Cod EFM 1 0 0 0 0 0 0 1 0 0 0 0 0 0 1 0 0

NRZI

t
-1 +7 -6 -1 +2

Bii de legtur

Ridictur Adncitur Ridictur


Aspectul pistei nregistrate

Figura 12.10. Codarea EFM

161
ISBN Interfaare i protocoale

Pentru ca semnalul codat s conin o component continu ct mai mic, dup cuvntul
codat EFM se adaug 3 bii, numii bii de legtur (merging bits). Se calculeaz pentru
fiecare cuvnt codat EFM suma digital (DSV Digital Sum Value) prin adugarea unui
+1 pentru fiecare celul bit n care semnalul este n 1 logic i 1 pentru fiecare celul bit
n care semnalul este zero. Se adaug grupul de 3 bii astfel nct DSV s fie ct mai
aproape de zero. Dac suma digital este aproape de zero nseamn c semnalul st
intervale de timp aproape egale n zero logic i unu logic. Semnalul astfel codat se nscrie
pe suportul optic sub forma unor ridicturi i adncituri ca n imaginea de jos din figura
12.10.
Se poate vedea c aceast codificare este autosincronizabil i intr n categoria
codificrilor de grup. Eficiena codificrii este mare, n acest exemplu au fost codificai 8
bii cu 3 tranziii, adic 2,66 bii pe tranziie.
Codificarea EFM PLUS utilizat la DVD are aceleai reguli de codificare dar lipsesc biii
de legtur. Codul EFM PLUS este generat de un automat finit.

12.4. Concluzii
Din acest capitol se poate vedea c la transmisiile seriale i la stocarea pe suporturi
magnetice i optice codrile sunt asemntoare, ceea ce dovedete o frumoas unitate a
teoriei aplicate. Imagini sugestive ale zonelor nregistrate sunt date n figura 12.11. la un
hard disc i n figura 12.12. la un CD.

Figura 12.11. Imagine a datelor scrise pe un hard disc, sursa:


http://en.wikipedia.org/wiki/Hard_disk_drive

162
ISBN Interfaare i protocoale

Figura 12.12. Imagine a datelor scrise pe un CD cu polimeri care reflect lumina, imagine
mrit de 10000 de ori, sursa: http://www.polymersolutions.com/psi-newsletter-
archive/november-psi

Un alt exemplu de viziune unitar aplicat la diversele metode de stocare apare n tabelul
din figura 12.11.:

Figura 12.11. Tabel comparativ al limitelor principiilor de stocare

Analiza comparativ arat unitatea modurilor de stocare a informaiei. Principiile de


stocare cu semiconductori, optice i magnetice pot fi comparate prin densitate i pre,
(sursa https://www.usenix.org/legacy/event/fast10/tutorials/T2.pdf ).

163
ISBN Interfaare i protocoale

Bibliografie

Capitolul 1
1. M. Romanca, P. Ogrutan, Sisteme cu calculator incorporat. Aplicatii cu
microcontrollere, Editura Universitatii Transilvania Brasov, 2011, pag. 1-4 online la:
http://vega.unitbv.ro/~ogrutan/Microcontrollere2011/1-introducere-
interfete%20paralele%20si%20seriale.pdf
2. C. Gerigan, P. Ogruan, Tehnici de interfaare, Ed. Transilvania Braov, 2000, 315p.,
ISBN 973-9474-94-2, pag. 2-11, online la: http://vega.unitbv.ro/~ogrutan/ti/cap1.pdf
3. http://en.wikipedia.org/wiki/Interface_%28computing%29
4. http://en.wikipedia.org/wiki/Communications_protocol
5. https://en.wikipedia.org/wiki/Peripheral
6. http://en.wikipedia.org/wiki/Hydraulic_telegraph

Capitolul 2
7. P. Ogrutan, Interfee i echipamente periferice, Editura Universitatii Transilvania
Brasov, 1994, pag. 7-12
8. A hardware interrupt tutorial, http://www.best-microcontroller-
projects.com/index.html
9. Using Direct Memory Access (DMA) in STM32 projects,
http://www.embedds.com/using-direct-memory-access-dma-in-stm23-projects/
10. P. Borza, C. Gerigan, P. Ogrutan, Gh.Toacse, Microcontrollere. Aplicatii, Editura
Tehnica, Bucuresti 2000, http://vega.unitbv.ro/~ogrutan/Microcontrollere/curs.pdf

Capitolul 3
11. M. Romanca, P. Ogrutan, Sisteme cu calculator incorporat. Aplicatii cu
microcontrollere, Editura Universitatii Transilvania Brasov, 2011, pag. 5-18 online
la: http://vega.unitbv.ro/~ogrutan/Microcontrollere2011/2-magistrale.pdf
12. P. Ogruan, C. Gerigan, N. Banciu Memorii, interfee i periferice. Interfee
specializate, Ed. Transilvania Braov, 2003, 190 pagini, ISBN 973-635-118-1, pag. 1-
30, online la: http://vega.unitbv.ro/~ogrutan/ii/chipset.pdf
13. C. Gerigan, P. Ogrutan, Tehnici de interfatare, Editura Transilvania, Brasov 2000,
pag 24-45, online: http://vega.unitbv.ro/~ogrutan/ti/cap3.pdf
14. R. Budruk, D. Anderson, T. Shanley, PCI Express System Architecture, Addison-
Wesley, 2003, online:
http://www.mindshare.com/files/ebooks/pci%20express%20system%20architecture.p
df

Capitolul 4
15. P. Ogrutan, C. Gerigan, Memorii, interfete si periferice, Indrumar de laborator,
Reprografia Universitatii 1998, online la:
http://vega.unitbv.ro/~ogrutan/lab/LAB31.pdf, pag 5-8
16. Intel 8255, online la: http://en.wikipedia.org/wiki/Intel_8255
17. K. Ray, K.M. Bhurkhandi, Advanced Microprocessors And Peripherals, McGraw-
Hill, 2006

164
ISBN Interfaare i protocoale

18. http://books.google.ro/books?id=KJNpD2KimEsC&pg=PA184&lpg=PA184&dq=int
el+8255+16+bit&source=bl&ots=eLAuXGt1Xd&sig=CngNOTU-
CB_y_Je6pZIrog4RmRI&hl=ro&sa=X&ei=mVRyUvXTI5Kk4ATKtYHgDA&ved=
0CHQQ6AEwCQ#v=onepage&q=intel%208255%2016%20bit&f=false, pag 184-211

Capitolul 5
19. M. Romanca, P. Ogrutan, Sisteme cu calculator incorporat. Aplicatii cu
microcontrollere, Editura Universitatii Transilvania Brasov, 2011, pag. 1-4 online la:
http://vega.unitbv.ro/~ogrutan/Microcontrollere2011/1-introducere-
interfete%20paralele%20si%20seriale.pdf
20. Communication Systems, Line Codes, online la:
http://en.wikibooks.org/wiki/Communication_Systems/Line_Codes
21. Sebastian Andrews, Communication Networks, online la:
http://services.eng.uts.edu.au/~kumbes/ra/Transmission/Digital%20Wave%20Formatt
ing/index.htm
22. Bit stuffing, online la: http://en.wikipedia.org/wiki/Bit_stuffing
23. C. Gerigan, P. Ogruan, Tehnici de interfaare, Ed. Transilvania Braov, 2000, 315p.,
ISBN 973-9474-94-2, pag. 69-93, online la:
http://vega.unitbv.ro/~ogrutan/ti/cap5.pdf
24. RS-232 online la: http://en.wikipedia.org/wiki/RS-232
25. RS232 detalii, online la:
http://academic.evergreen.edu/projects/biophysics/technotes/electron/serial.htm
26. I8251 online la: http://www.electronics.dit.ie/staff/tscarff/8251usart/8251.htm
27. http://creativeelectron.net/blog/2009/10/pic-serial-communition-in-pic-
microcontroller-1/

Capitolul 6
28. M. Romanca, P. Ogrutan, Sisteme cu calculator incorporat. Aplicatii cu
microcontrollere, Editura Universitatii Transilvania Brasov, 2011, pag. 1-4 online la:
http://vega.unitbv.ro/~ogrutan/Microcontrollere2011/
29. Wagner Lipnharski , 8051+LCD+EPROM, online: www.ustr.net
30. P.Ogrutan, Microcontrollere si controllere grafice Fujitsu, Ed. Universitatii
Transilvania Brasov, 2006, 182 pag, ISBN 973-635-621-3
31. P. Borza, C. Gerigan, P. Ogruan, Gh. Toace, Microcontrollere. Aplicaii, Editura
Tehnic Bucureti, 2001, ISBN973-31-1577-6

Capitolul 7
32. M. Romanca, P. Ogrutan, Sisteme cu calculator incorporat. Aplicatii cu
microcontrollere, Editura Universitatii Transilvania Brasov, 2011, pag. 1-4 online la:
http://vega.unitbv.ro/~ogrutan/Microcontrollere2011/
33. C. Gerigan, P. Ogruan, Tehnici de interfaare, Ed. Transilvania Braov, 2000, 315p.,
ISBN 973-9474-94-2, pag. 154-174, online la:
http://vega.unitbv.ro/~ogrutan/ti/index.html
34. P.Ogrutan, Microcontrollere si controllere grafice Fujitsu, Ed. Universitatii
Transilvania Brasov, 2006, 182 pag, ISBN 973-635-621-3, pag. 125-134, online:
http://vega.unitbv.ro/~ogrutan/Microcontrollere%20Fujitsu/interfete3-112-136.pdf ,

165
ISBN Interfaare i protocoale

Capitolul 8
35. P. Ogruan, C. Gerigan, N. Banciu Memorii, interfee i periferice. Interfee
specializate, Ed. Transilvania Braov, 2003, 190 pagini, ISBN 973-635-118-1, pag.
31-56, online la: http://vega.unitbv.ro/~ogrutan/ii/retea.pdf
36. Ayres, J. Using the CRYSTAL CS8900A in 8 Bit Mode, AN181, online:
www.crystal.com
37. Werner C. Implementation notes for an Ethernet solution usable for embedded
systems using the RTL8019, 2002, online: cornelius@ethernet.isdn-development.de
38. http://netmedia.com/siteplayer/

Capitolul 9
39. M. Romanca, P. Ogrutan, Sisteme cu calculator incorporat. Aplicatii cu
microcontrollere, Editura Universitatii Transilvania Brasov, 2011, pag. 19-31 online
la: http://vega.unitbv.ro/~ogrutan/Microcontrollere2011/3-usb-ieee1394.pdf
40. C. Gerigan, P. Ogruan, Tehnici de interfaare, Ed. Transilvania Braov, 2000, 315p.,
ISBN 973-9474-94-2, pag. 114-130, online la:
http://vega.unitbv.ro/~ogrutan/ti/index.html
41. http://www.usb.org/home
42. http://www.ftdichips.com/

Capitolul 10
43. M. Romanca, P. Ogrutan, Sisteme cu calculator incorporat. Aplicatii cu
microcontrollere, Editura Universitatii Transilvania Brasov, 2011, pag. 1-4 online la:
http://vega.unitbv.ro/~ogrutan/Microcontrollere2011/7-aplicatii%20mobile.pdf
44. P. Ogruan, C. Gerigan, N. Banciu Memorii, interfee i periferice. Interfee
specializate, Ed. Transilvania Braov, 2003, 190 pagini, ISBN 973-635-118-1
45. C. Gerigan, P. Ogruan, "Tehnici de interfaare", Ed. Transilvania Braov, 2000,
315p., ISBN 973-9474-94-2
46. P. Ogruan, C. Gerigan, N. Banciu Memorii, interfee i periferice. Interfee
specializate, Ed. Transilvania Braov, 2003, 190 pagini, ISBN 973-635-118-1
47. C. Gerigan, P. Ogruan, "Tehnici de interfaare", Ed. Transilvania Braov, 2000,
315p., ISBN 973-9474-94-2

Capitolul 11
48. M. Romanca, P. Ogrutan, Sisteme cu calculator incorporat. Aplicatii cu
microcontrollere, Editura Universitatii Transilvania Brasov, 2011, pag. 31-42, online
la: http://vega.unitbv.ro/~ogrutan/Microcontrollere2011/
49. C. Gerigan, P. Ogruan, Tehnici de interfaare, Ed. Transilvania Braov, 2000, ISBN
973-9474-94-2, pag 137-145, online la: http://vega.unitbv.ro/~ogrutan/
50. C. Erickson, Department of Electrical and Computer Engineering, Auburn
University, Auburn, AL 36849 Chris.Erickson@auburn.edu,
Chris.Erickson@auburn.edu, www.eng.auburn.edu

166
ISBN Interfaare i protocoale

Capitolul 12
51. M. Romanca, P. Ogrutan, Sisteme cu calculator incorporat. Aplicatii cu
microcontrollere, Editura Universitatii Transilvania Brasov, 2011, pag. 1-4 online la:
http://vega.unitbv.ro/~ogrutan/Microcontrollere2011/
52. R. Freitas, L. Chiu, Solid-State Storage: Technology, Design and Applications, IBM
Almaden Research Center, 2010, online:
https://www.usenix.org/legacy/event/fast10/tutorials/T2.pdf

167
ISBN Interfaare i protocoale

Cuprins
1.Noiuni introductive
1.1. Definiii. Istorie: prima comunicaie cu protocol
1.2. Interfee paralele i seriale
1.3. Verificarea corectitudinii datelor transmise cu bit de paritate
1.4. Rolul unui buffer n transferul de date
2.Transferul de date
2.1. Clasificare
2.2.Transferul programat
2.3.Transferul prin ntreruperi
2.4.Transferul prin DMA
2.5.Programe de comand a transferului
2.6.Sistemele de ntreruperi i DMA n microcontrollere
3.Magistrale
3.1.Introducere
3.2.Magistrale ierarhizate
3.3.Diagrame de semnal la acces
3.4.Magistrale multiplexate
3.5.Magistralele PCI i PCI Express
4.Interfee paralele
4.1.Interfee paralele neprogramabile
4.2.Interfaa paralel programabil
4.3.Protocoale de transfer
4.4.Programarea circuitului de interfa paralel
4.5.Exemplu de implementare
5.Interfee seriale
5.1.Tactul n transmisiile seriale
5.2.Codarea datelor
5.3. Transmisii seriale asincrone i sincrone
5.4.Standardul RS232
5.5.Circuit de interfa programabil
5.6.Modificarea nivelului de tensiune
6. Conectarea la un calculator pe magistral i la un port paralel
6.1.Selectarea unui dispozitiv pe magistral
6.2.Exemple de conectare pe magistral la microcontrollere
6.3. Conectarea la porturi paralele
6.4. Concluzii
7.Interfee integrate n microcontrollere
7.1. Microcontrollere
7.2. Unitatea central i memoria
7.3. Timerul
7.4. Interfa de comunicaii seriale asincrone
168
ISBN Interfaare i protocoale

7.5. Interfa de comunicaii seriale sincrone


7.6. Interfaa CAN
7.7. Ceasul de gard
7.8. Generator PWM
7.9. Convertor analog digital
7.10. Proiectarea sistemelor cu MC n vederea siguranei n exploatare
7.11. Medii de programare i exemple
8.Interfee pentru reeaua Ethernet
8.1.Introducere
8.2.Circuitul interfa de reea RTL 8019
8.3. Cadru de date la transmisia Ethernet
8.4. Circuitul interfa de reea CS8900A
8.5. Interfaarea circuitelor CS8900 i RTL 8019 cu microcontrollere
8.6. Web server Site Player
9.Magistrala USB (Universal Serial Bus)
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
10.Interfee pentru comunicaii wireless
10.1.Introducere
10.2.Transmisii cu protocoale proprietare
10.3.Transmisia datelor prin GPRS
10.4. Bluetooth
10.5. Zigbee
10.6. RFID
10.7.Concluzii
11.Alte interfee
11.1. IEEE 1394
11.2.Transferul de date n infrarou IrDA
11.3.Interfaa SATA
12. Paralel ntre stocarea datelor pe suporturi magnetice i optice i transmisia
serial
12.1.Introducere
12.2.Codarea pe suporturile magnetice
12.3. Codarea pe suporturile optice
12.4. Concluzii

169

S-ar putea să vă placă și