Vous êtes sur la page 1sur 228

UNIVERSITATEA DIN BACU

FACULTATEA DE INGINERIE




DAN ROTAR MARIUS ANGHELU






ARHITECTURA SISTEMELOR
DE CALCUL

Note de curs
Indrumar de laborator
















EDITURA ALMA MATER BACU
2007



3





Cuprins




pag.
CAPITOLUL 1 6
BAZE DE NUMERAIE 6
1.1. Introducere 6
1.2. Baza de numeraie zece 7
1.3. Baza de numeraie doi 7
1.3.1. Conversia binar-zecimal 8
1.3.2. Conversia zecimal-binar 10
1.4. Baza de numeraie opt (sistemul octal) 12
1.5. Baza de numeraie aisprezece (sistemul hexazecimal) 13

CAPITOLUL 2
OPERAII ARITMETICE 14
2.1. Introducere 14
2.2. Operaii aritmetice cu numere binare 14
2.2.1. Adunarea 14
2.2.2. Scderea 15
2.2.3. nmulirea 16
2.2.4. mprirea ntreag 17
2.3. Operaii aritmetice cu numere reprezentate n octal i hexazecimal 18
2.3.1. Adunarea i scderea n octal 19
2.3.2. Adunarea i scderea n hexazecimal 20

CAPITOLUL 3
ARHITECTURA SISTEMELOR DE CALCUL 21
3.1. Introducere 21
3.2. Arhitectura von Neumann 25
3.3. Arhitectura Harvard 26

CAPITOLUL 4
UNITATEA CENTRAL 29
Introducere 29
4.2. Microprocesorul universal (structura general a unui microprocesor) 32


4
4.3. Caracteristicile principalelor tipuri de microprocesoare 33
4.3.1. Microprocesorul ZILOG Z80 33
4.3.2. Microprocesoarele INTEL 80x86 34
4.3.2.1. Microprocesorul INTEL 8086/8088 37
4.4. Procesoare de semnal digitale 51
4.4.1. Procesorul de semnal digital, TMS320F240 54
4.5. Microcalculatoare integrate, microcontrolere 58
4.5.1. Prezentare general 58
4.5.2. Microcontrolerul AT90S2313 59
4.5.3. Microcontrolerul PIC 16F877 62

CAPITOLUL 5
MEMORIA 76
5.1. Prezentare general 76
5.2. Aplicarea principiului "cache n sistemele de calcul 82
5.2.1. Memoria Cache 82
5.2.2. Cache-ul de disc 85
5.2.3. Cache-ul microprocesorului 86
5.2.4. Cache-ul cu adresare direct (direct mapped) 87
5.2.5. Cache-ul cu adresare asociativ (fully associative) 87
5.2.6. Cache-ul parial asociativ (set-associative) 88
5.3. Gruparea memoriilor 89
5.3.1. Creterea capacitii memoriei prin creterea numrului de linii de
date
91
5.3.2. Gruparea memoriilor pentru creterea numrului de linii de adres 92
5.3.3. Gruparea mixt 94
5.4. Adresarea memoriilor 94
5.4.1. Adresarea absolut 94
5.4.2. Adresarea relativ (redundant) 95

CAPITOLUL 6
PORTURI (INTERFEE)
6.1. Prezentare general 96
6.2. Interfaa serial programabil 8251 99
6.3. Interfaa logic programabil 8255 107
6.4. Interfaa USB (Universal Serial Bus) 115
6.4.1. Introducere 115
6.4.2. Prezentarea Universal Serial Bus 118
6.4.2.1. Vitezele USB 118
6.4.2.2. Conectorii 120
6.4.2.3. Caracteristici electrice 121
6.4.2.4. Identificarea vitezei 121
6.4.2.5. Alimentarea V
BUS
123
6.4.2.6. Protocolul 123
6.5. Interfeele microcontrolerelor 125
6.5.1. Modulul convertor analog-digital (A/D) 126


5
6 6. .5 5. .1 1. .1 1. . C Ce er ri in n e el le e a ac ch hi iz zi i i ie ei i a an na al lo og g- -d di ig gi it ta al le e 130
6 6. .5 5. .1 1. .2 2. . S Se el le ec c i ia a c ce ea as su ul lu ui i c co on nv ve er rs si ie ei i a an na al lo og g- -d di ig gi it ta al le e 131
6 6. .5 5. .1 1. .3 3. . C Co on nv ve er rs si ia a A A/ /D D 132

CAPITOLUL 7
CIRCUITE SPECIALE
7.1. Introducere 133
7.2. Controlerul de ntreruperi programabil 8259 133
7.3. ntreruperile microcontrolerului TMS320F240 139
7.3.1. ntreruperile managerului de evenimente (EV) 140
7.4. Accesul direct la memorie (DMA) 149
7.4.1. Circuitul 8257 pentru acces direct la memorie DMA 151
7.4.1.1. Conexiunile externe 151
7.4.1.2. Registrele interne ale 8257 153
7.4.1.3. Registrele de canal 154
7.4.1.4. Registrul de mod 155
7.4.1.5. Registrul de stare 156
7.4.1.6. Efectuarea transferurilor cu DMA 8257 157
7.5. Circuitul contor/periodizator programabil 8253 159
7.6. Circuitele timer ale microcontrolerelor 165
7.6.1. Timerele de uz general GPTimer 165


LABORATOR
Laborator 1. Utilizarea interfeei seriale 186
Laborator 2. Comunicaia ntre sistemele de calcul 190
Laborator 3. Utilizarea interfeei paralele 197
Laborator 4. Comanda unui motor pas cu pas prin interfaa
paralel
203
Laborator 5. Studiul convertorului analog numeric 211
Laborator 6. Programe pentru determinarea structurii
i a performanelor sistemului de calcul

218
Laborator 7. Metode de testare a memoriei 222

Bibliografie 226



6



CAPITOLUL 1

BAZE DE NUMERAIE

1.1. Introducere

Valorile numerelor pot fi exprimate n diferite baze de numeraie. Astfel, n
activitile umane obinuite baza de numeraie folosit este baza zece. Nu acelai lucru
se ntmpl n sistemele numerice. Din considerente tehnologice, n sistemele numerice
nu putem reprezenta dect dou numere: zero i unu. De regul valoarea zero este
asociat cu un nivel sczut de tensiune iar valoarea unu este asociat cu un nivel ridicat
de tensiune, diferena dintre tensiunea asociat valorii zero i cea asociat valorii unu
asigurnd securitatea la perturbaii a sistemului numeric (n sensul c dac diferena
ntre cele dou tensiuni crete, crete i imunitatea la perturbaii a sistemului numeric).
O baz de numeraie presupune existena unui numr de simboluri (numite
adesea cifre) cu ajutorul crora vor fi reprezentate numerele, un mod de scriere a
numerelor i o relaie de calcul a valorii numrului. Numrul simbolurilor utilizate ntr-
o baz de numeraie definete numele bazei de numeraie. Reprezentarea numerelor se
face n prezent n exclusivitate prin scrierea poziional adic poziia numrului exprim
i rangul acestuia (exponentul bazei de numeraie). Simbolul (cifra) cel mai din dreapta
reprezentrii numrului are rangul minim (zero) iar simbolul (cifra) cel mai din stnga
din reprezentarea numrului are rangul cel mai mare. Calculul valorii numrului se face
prin nmulirea valorii simbolului cu baza la puterea rangului. Atunci cnd se lucreaz
cu mai multe baze de numeraie simultan este obligatorie indicarea bazei de numeraie
la fiecare numr scris. Acest lucru se face prin scrierea valorii bazei de numeraie ca
indice. De exemplu: 12
10
sau 100110101
2
sau 1B2C
16
. Pentru indicarea bazei de
numeraie pot fi utilizate i litere astfel:

z (zecimal) pentru baza 10
b (binar) pentru baza 2
o (octal) pentru baza 8
h (hexazecimal) pentru baza 16.

Exemplul de mai sus poate fi scris i: : 12
z
sau 100110101
b
sau 1B2C
h
.
n continuare vor fi prezentate principalele baze de numeraie utilizate n
sistemele numerice.






7
1.2. Baza de numeraie zece

Aa cum s-a artat, baza de numeraie zece, cea utilizat n activitile umane,
presupune existena a zece simboluri distincte pentru reprezentarea numerelor. Aceste
simboluri sunt:

0, 1, 2, 3, 4, 5, 6, 7, 8, 9

Reprezentarea numerelor este poziional deci atunci cnd scriem un numr,
poziia acestuia va reprezenta rangul su:

rang: 4 3 2 1 0
simbol: 7 5 2 1 3

Valoarea numrului reprezentat mai sus este: apte zeci i cinci de mii dou sute
treisprezece. Aceasta valoare a rezultat din regula prezentat mai sus adic:

valoare numr = 7 x 10
4
+ 5 x 10
3
+ 2 x 10
2
+ 1 x 10
1
+ 3 x 10
0

1.3. Baza de numeraie doi

Numerele reprezentate n baza doi sunt numite n mod obinuit numere binare.
n baza doi sunt necesare numai dou simboluri pentru reprezentarea numerelor i
acestea sunt: 0 (zero) i 1 (unu). Datorit faptului c
sistemele numerice lucreaz, aa cum s-a artat mai sus, n
sistem binar, studiul reprezentrii numerelor n baza doi
este important atunci cnd vorbim de tehnologia DSP. De
asemenea prin asocierea unor valori de adevr celor dou
simboluri: 0 fals (false) i 1 adevrat (true) sistemele
numerice vor putea lucra n logic binar sau Boolean.
Abordarea logicii binare va fi fcut mai trziu n
cuprinsul acestui manual.
Revenind la scrierea numerelor n baza doi trebuie
spus faptul c toate regulile stabilite la baza zece se aplic
i aici. De exemplu, dac vom scrie numrul binar:

rang 6 5 4 3 2 1 0
numr: 1 0 1 1 0 0 1

atunci valoarea acestuia va fi:

valoare = 1 x 2
6
+ 0 x 2
5
+ 1 x 2
4
+ 1 x 2
3
+ 0 x 2
2
+
+ 0 x 2
1
+ 1 x 2
0
= 64
z
+ 16
z
+ 8
z
+ 1
z
= 89
z

TABELUL 1.1.
Numr
binar
Numr
zecimal
0000 0
0001 1
0010 2
0011 3
0100 4
0101 5
0110 6
0111 7
1000 8
1001 9
1010 10
1011 11
1100 12
1101 13
1110 14
1111 15

n tabelul 2.1 este prezentat echivalena primelor


8
16 numere binare cu cele zecimale. Pentru acest tabel putem face urmtoarele
observaii:

o dac citim numerele binare din acest tabel pe coloan observm faptul c
succesiunea cifrelor zero i unu depinde de rangul cifrei. Astfel la rangul
zero ntlnim succesiunea 0,1,0,1,0,1, ... , la rangul unu succesiunea
0,0,1,1,0,0,1,1, ... , i aa mai departe;
o un numr zecimal putere a lui doi va determina o cifr binar cu un
singur simbol unu pe poziia exponentului puterii lui doi.

Este evident faptul c atunci cnd se dorete conversia numerelor dintr-o baz n
alta este dificil de utilizat tabele, n special atunci cnd se lucreaz cu numere mari. Din
acest motiv se stabilesc anumii algoritmi de conversie pentru simplificarea translatrii
numerelor dintr-o baz n alta.

1.3.1. Conversia binar-zecimal

Conversia unui numr binar ntreg n echivalentul su zecimal, cunoscnd c
operaiile se efectueaz n sistemul zecimal, se face cu ajutorul metodei nmulirii
repetate cu 2. Pentru a justifica, se consider numrul binar P exprimat prin:

P = b
n-1
2
n-1
+ b
n-2
2
n-2
+ .... + b
1
2
1
+ b
0
2
0

sau:
P = ({[ (b
n-1
2 + b
n-2
) 2 + b
n-3
] 2 + b
n-4
} 2 + .... + b
1
) 2 + b
0
P
1



P
2
relaie din care rezult algoritmul conversiei numerelor ntregi binare n numere
zecimale:

o pentru a forma mrimea intermediar P
1
se nmulete cu 2 cifra cea mai
semnificativ (cifra de rang maxim) a numrului binar, adugnd
urmtoarea cifr semnificativ;
o pentru a obine mrimea intermediar P
2
, se nmulete P
1
cu 2 adugnd
cea de-a treia cifr semnificativ;
o se continu acest algoritm pn la adugarea cifrei cel mai puin
semnificative a numrului binar (cea de rang minim);
o numrul zecimal obinut este echivalentul zecimal al numrului binar
dat.

EXEMPLU

S se transforme numrul binar 10110110111 n echivalentul su zecimal:



9
Q = 2
-1
(b
-1
+ 2
-1
{ b
-2
+ 2
-1
[b
-3
+ .... + 2
-1
(b
-m+1
+ 2
-1
b
-m
)]})
1 x 2 + 0 = 2 P
1
= 2
2 x 2 + 1 = 5 P
2
= 5
5 x 2 + 1 = 11 P
3
= 11
11 x 2 + 0 = 22 P
4
= 22
22 x 2 + 1 = 45 P
5
= 45
45 x 2 + 1 = 91 P
6
= 91
91 x 2 + 0 = 182 P
7
= 182
182 x 2 + 1 = 365 P
8
= 365
365 x 2 + 1 = 731 P
9
= 731
731 x 2 + 1 = 1463 P
8
= 1463

deci: 10110110111
B
= 1463
Z

Pentru conversia binar-zecimal a unui numr binar fracionar se folosete
metoda mpririi repetate cu 2. Pentru a justifica, se consider numrul binar fracionar
Q dat de:

Q = b
-1
2
-1
+ b
-2
2
-2
+ .... + b
-m
2
-m

care poate fi pus i sub forma:
Q
1



de unde rezult algoritmul conversiei numerelor binare fracionare n numere zecimale:

o pentru a obine mrimea intermediar Q
1
se mparte cifra cea mai puin
semnificativ (de rang minim) cu 2, adugnd urmtoarea cifr
semnificativ;
o pentru a obine mrimea intermediar Q
2
se mparte Q
1
cu 2 adugnd a
treia a treia cifr de la dreapta spre stnga cifr semnificativ;
o se continu acest algoritm pn cnd mprirea care corespunde cifrei 0
de la stnga virgulei a fost efectuat;
o numrul obinut este echivalentul zecimal al numrului binar dat.

EXEMPLU

S se transforme numrul binar fracionar 0,001101111 n echivalentul su zecimal:

1 : 2 + 1 = 1,5 Q
1
= 1,5
1,5 : 2 + 1 = 1,75 Q
2
= 1,75
1,75 : 2 + 1 = 1,875 Q
3
= 1,875
1,875 : 2 + 0 = 0,9375 Q
4
= 0,9375
0,9375 : 2 + 1 = 1,46875 Q
5
= 1,46875
1,46875 : 2 + 1 = 1,734375 Q
6
= 1,734375
1,734375 : 2 + 0 = 0,8671875 Q
7
= 0,8671875


10
0,8671875 : 2 + 0 = 0.4335937 Q
8
= 0,4335937
0,4335937 : 2 + 0 = 0,2167968 Q
9
= 0,2167968

deci: 0,001101111
B
= 0,2167968
Z

Dac se cere conversia unui numr binar care are att parte ntreag ct i parte
fracionar n echivalentul su zecimal, se aplic prii ntregi algoritmul corespunztor
conversiei numerelor ntregi, iar prii fracionare algoritmul corespunztor prii
fracionare.

1.3.2. Conversia zecimal-binar

Conversia zecimal-binar a numerelor ntregi se face dup metoda mpririi
repetate prin 2. Pentru a justifica aceasta, se consider numrul ntreg N n baza 10, care
poate fi exprimat n funcie de puterile lui 2 sub urmtoarea form :

N = a
n-1
2
n-1
+ a
n-2
2
n-2
+ .... + a
1
2
1
+ a
0
2
0

sau:

N = (a
n-1
2
n-2
+ a
n-2
2
n-3
+ .... + a
1
)

2 + a
0
= N
1
2 + a
0

Din ultima egalitate rezult c cifra cea mai semnificativ a
0
din reprezentarea binar a
numrului N constituie restul mpririi lui N cu 2.
n mod analog, numrul N
1
se poate exprima prin :

N = (a
n-1
2
n-3
+ a
n-2
2
n-4
+ .... + a
2
)

2 + a
1
= N
2
2 + a
1

Adic a
1
, care reprezint cifra semnificativ de rang imediat urmtor n reprezentare
binar, constituie restul mpririi lui N
1
cu 2.
De aici rezult algoritmul conversiei numerelor ntregi zecimale n numere
binare:

o se mparte numrul ntreg n baza zece N prin 2; se obine ctul N
1
i
restul a
0
;
o se mparte ctul N
1
prin 2; se obine ctul N
2
i restul a
1
;
o se continu aceast operaie pn se ajunge la un ct N
n
egal cu zero;
o resturile obinute sunt cifrele numrului binar (biii), a
0
fiind cifra cea
mai puin semnificativ, a
1
cifra urmtoare . a. m. d.

EXEMPLU

S se transforme numrul zecimal 53 n echivalentul su binar.

53 : 2 = 26 + 1 a
0
= 1
26 : 2 = 13 + 0 a
1
= 0


11
13 : 2 = 6 + 1 a
2
= 1
6 : 2 = 3 + 0 a
3
= 0
3 : 2 = 1 + 1 a
4
= 1
1 : 2 = 0 + 1 a
5
= 1

Deci 53
10
= 110101
2

Folosind acelai algoritm se prezint un alt mod de aranjare a calculelor, n aa
fel, ca la sfritul operaiei s se obin direct numrul binar fr a fi necesar rescrierea
sa. n acest sens, se aeaz succesiunea calculelor dup schema prezentat mai jos, unde
al n-lea ct este ultimul ct, egal cu zero :

Ct n Ct (n 1) Ct (n 2) .... Ct 2 Ct 1 Numr
Rest n Rest (n-1) .... Rest 3 Rest 2 Rest 1

Considernd acelai exemplu se obine :

0 1 3 6 13 26 53
1 1 0 1 0 1

Conversia zecimal-binar a numerelor fracionare se face dup metoda nmulirii
repetate cu 2. Pentru a justifica, se consider numrul fracionar zecimal M, care poate
fi exprimat n funcie de puterile numrului 2 prin :

M = a
-1
2
-1
+ a
-2
2
-2
+ .... + a
-m
2
-m

Prin nmulirea ambelor pri ale ecuaiei de mai sus cu 2, se obine :

2 M = a
-1
+ (a
n-2
2
-1
+ .... + a
-m
2
-m+1
) = a
-1
+ M
1

partea dreapt a egalitii fiind format din numrul ntreg a
-1
, care reprezint cifra cea
mai semnificativ a numrului binar subunitar i fracia M
1
. Aplicnd acelai procedeu
lui M
1
, rezult:

2 M
1
= a
-2
+ (a
n-3
2
-1
+ .... + a
-m
2
-m+2
) = a
-2
+ M
2

adic se obine urmtoarea cifr semnificativ a
-2
a numrului fracionar binar i fracia
M
2
.
Cu aceasta, algoritmul conversiei numerelor fracionare zecimale n numere
fracionare binare este urmtorul:

o se nmulete numrul zecimal fracionar M cu 2; rezult bitul a
-1
i
partea fracionar M
1
;
o se nmulete partea fracionar M
1
cu 2; rezult bitul a
-2
i partea
fracionar M
2
;


12
o se continu aceast operaie pn cnd M
m
devine egal cu zero sau ne
limitm la un numr de cifre binare n funcie de precizia impus.

EXEMPLU

1. S se transforme numrul 0,40625 n echivalentul su binar.

0,40625 x 2 = 0,81250 a
-1
= 0
0,8125 x 2 = 1,6250 a
-2
= 1
0,625 x 2 = 1,250 a
-3
= 1
0,25 x 2 = 0,5 a
-4
= 0
0,5 x 2 = 1,0 a
-5
= 1

deci 0,40625
z
= 0,01101
b

2. S se transforme numrul zecimal 0,7 n echivalentul su binar.

0,7 x 2 = 1,4 a
-1
= 1
0,4 x 2 = 0,8 a
-2
= 0
0,8 x 2 = 1,6 a
-3
= 1
0,6 x 2 = 1,2 a
-4
= 1
0,2 x 2 = 0,4 a
-5
= 0
0,4 x 2 = 0,8 a
-6
= 0
...........................................................

deci 0,7
10
= 0,101100....
2

1.4. Baza de numeraie opt (sistemul octal)

Utilizatorii primei generaii de calculatoare au ntmpinat dificulti n
manevrarea cifrelor binare, ntruct un numr exprimat n sistemul binar are o lungime
de circa trei ori mai mare dect n exprimarea zecimal. Din acest motiv, s-a cutat un
sistem de numeraie mai apropiat de baza zece, cu o contingen direct cu sistemul
binar. Cunoscnd c 8 este o putere ntreag a lui 2 (2
3
= 8), aceste caliti sunt ntrunite
de sistemul de numeraie octal, care are opt cifre pentru exprimare, de la 0 la 7 inclusiv.
Ca urmare, conversia binar octal i octal binar se poate face direct, n primul caz
nlocuind un grup de trei cifre binare socotite de la dreapta i de la stnga virgulei prin
echivalentul lor octal, iar n al doilea caz nlocuind fiecare cifr octal printr-un grup de
trei cifre binare.

EXEMPLU

1. S se transforme numrul binar 10111,00 11 n echivalentul su octal.

010 111, 001 100
2
= 27,14
8

2 7, 1 4


13

2. S se transforme numrul octal 26,341 n echivalentul su binar.

26,341
8
= 010 110, 011 100 001
2

2 6, 3 4 1

Prin folosirea sistemului octal, calculele binare sau structura informaiei din
interiorul calculatorului nu se schimb, structur care poate fi verificat cu uurin din
exterior. Din acest motiv, calculatoarele din prima i a doua generaie aveau o lungime a
cuvntului egal cu un multiplu a lui 3, obinuit 24, 36 sau 42 de bii, pentru a facilita
trecerea din sistemul octal n binar sau invers.
Se menioneaz c pentru transformarea numerelor din baza de numeraie 10 n
baza de numeraie 8 sau invers, cu calculele fcute n baza 10, toi algoritmii dedui
anterior rmn valabili, cu observaia c nmulirile, respectiv mpririle prin 2 se
nlocuiesc cu nmuliri, respectiv mpriri, cu 8.

1.5. Baza de numeraie aisprezece (sistemul hexazecimal)

Pentru a reprezenta n calculator alte caractere dect numere, adic litere, semne
de punctuaie etc. (caractere alfanumerice), au fost utilizate iniial 6 cifre binare. n
cursul operaiilor de citire sau imprimare, dispozitivul respectiv fcea automat
transformarea fiecrui caracter n cele 6 cifre binare sau invers.
Folosind 6 cifre binare, adic dou cifre octale, nu puteau fi reprezentate dect
64 de caractere distincte. Acest numr de caractere s-a dovedit a fi n scurt timp
insuficient pentru aplicaiile practice i din acest motiv s-a trecut, la majoritatea
calculatoarelor generaiei a treia, la alocarea a 8 cifre binare, adic dou hexazecimale,
fiecrui caracter. Un grup de 8 cifre binare este cunoscut i sub denumirea de octet sau
byte i reprezint cea mai mic diviziune a informaiei care poate fi prelucrat n aceste
calculatoare.
ntruct baza de numeraie 16 este mai mare ca baza de numeraie 10, cifrele mai
mari de 9 sunt notate n ordine cu literele alfabetului latin, adic :

A zece
B unsprezece
C doisprezece
D treisprezece
E paisprezece
F cincisprezece.

Pentru conversia din baza 10 n 16 sau invers, sunt utilizate aceleai metode,
fcndu-se calculele n baza 10.
Conversia binar-hexazecimal i hexazecimal-binar se face n mod similar celei
binar-octale, respectiv octal-binare, cu observaia c se vor lua grupe de cte 4 cifre
binare n loc de 3.




14



CAPITOLUL 2

OPERAII ARITMETICE

2.1. Introducere

n acest capitol se vor prezenta operaiile aritmetice simple realizate cu numere
binare (numere reprezentate n baza doi), numere octale (numere reprezentate n baza
opt) sau hexazecimale (numere reprezentate n baza aisprezece).
Pentru exemplificarea operaiilor efectuate se vor folosi numai numere ntregi
pozitive (numere naturale) deoarece acesta este modul de baz al reprezentrii
informaiei ntr-un sistem de calcul numeric.

2.2. Operaii aritmetice cu numere binare

2.2.1. Adunarea

Operaia de adunare poate fi descris cu ajutorul celor patru combinaii posibile
ntre dou numere binare:

0 + 0 = 0; transport la rangul superior: 0
0 + 1 = 1; transport la rangul superior: 0
1 + 0 = 1; transport la rangul superior: 0
1 + 1 = 0; transport la rangul superior: 1

n mod obinuit se scrie: 1
b
+ 1
b
= 10
b
deoarece n aceast situaie avem un
transport la rangul superior. Este evident faptul c: 10
b
= 2
z
.

EXEMPLE

1) S se adune numrul binar 110111 cu numrul binar 101.

transport 111
110111 +
101
111100
putem efectua verificarea in zecimal: 110111
b
= 55
z
, 101
b
= 5
z
, 111100
b
= 60
z
.
Verificarea este imediat. Se observ c dac trebuie s adunm un ir de n cifre
unu n binar, rezultatul pe rangul respectiv va fi zero dac numrul de cifre unu adunate
este par sau unu dac numrul de cifre adunate este impar iar transportul se face peste


15
n:2 (mprire ntreag) ranguri pornind de la rangul respectiv (cel la care se efectueaz
adunarea).

2) S se adune numrul binar 11111 cu numrul binar 1.

transport 1111
11111 +
1
100000

De fapt rezultatul poate fi vzut imediat dac ne uitm la tabelul 1.1. Dup un
numr cu o succesiune de cifre unu urmeaz un numr binar care are o cifr unu
urmat de o succesiune de cifre zero. Numrul cifrelor zero este egal cu numrul
cifrelor unu al numrului care se adun. De exemplu 1111
b
+ 1
b
= 10000
b
.

2.2.2. Scderea

Operaia de scdere poate fi descris cu ajutorul celor patru combinaii posibile
ntre dou numere binare:

0 0 = 0; mprumut de la rangul superior: 0
0 1 = 1; mprumut de la rangul superior: 1
1 0 = 1; mprumut de la rangul superior: 0
1 1 = 0; mprumut de la rangul superior: 0

n mod obinuit se scrie: 10
b
1
b
= 1
b
deoarece n aceast situaie avem un mprumut de
la rangul superior. Este evident faptul c: 10
b
= 2
z
.

EXEMPLE

1) S se efectueze scderea numerelor binare: 11001 i 11.

mprumut 11
11001
11
10110

Verificarea n zecimal: 11001
b
= 25
z
, 11
b
= 3
z
, 10110
b
= 22
z
. 25
z
3
z
= 22
z
.
2) S se efectueze scderea 11001 1011.

mprumut 111
11001
1011
01110
Verificarea n zecimal: 11001
b
= 25
z
, 1011
b
= 11
z
, 1110
b
= 14
z
. 25
z
11
z
= 14
z
.



16
Se pot face observaii similare cu cele de la adunare.

3) S se scad din 1000
b
valoarea 1. Rspunsul este imediat: 111
b
.

2.2.3. nmulirea

Operaia de nmulire poate fi descris cu ajutorul celor patru combinaii posibile
ntre dou numere binare:

0 x 0 = 0; 0 x 1 = 0; 1 x 0 = 0; 1 x 1 = 1.

Operaia de nmulire se efectueaz identic cu cea din baza zece. Vom analiza n
continuare cteva exemple.

EXEMPLE

1) S se efectueze nmulirea n binar: 110101 x 1101.

110101 x
1101
110101
000000
110101
110101
1010110001
Verificarea n zecimal: 110101
b
= 53
z
, 1101
b
= 13
z
, 1010110001
b
= 689
z
.
Rezult 53
z
x 13
z
= 689
z
.

Din acest exemplu se observ c operaia de nmulire poate fi nlocuit cu
operaii de deplasare a denmulitului spre stnga i adunarea rezultatelor obinute.
Pentru aceasta se parcurge nmulitorul de la dreapta la stnga cifr cu cifr. Pentru
fiecare cifr unu a nmulitorului se scrie denmulitul deplasat spre stnga cu un numr
de cifre egal cu rangul cifrei unu a nmulitorului. La final se sumeaz rezultatele
obinute.

2) S se efectueze nmulirea numrului 101101 cu numrul 1101.
Vom aplica metoda deplasrii spre stnga a denmulitului i adunarea irurilor
obinute.

denmulitul deplasat la stnga cu 0 pai 101101
denmulitul deplasat la stnga cu 2 pai 101101
denmulitul deplasat la stnga cu 3 pai 101101
rezultatul (suma) 1001001001

Verificarea n zecimal: 101101
b
= 45
z
, 1101
b
= 13
z
, 1001001001
b
= 585
z
.
Rezult: 45
z
x 13
z
= 585
z
.


17
2.2.4. mprirea ntreag

Operaia de mprire poate fi descris cu ajutorul celor patru combinaii posibile
ntre dou numere binare:

0 : 0 = 0; 0 : 1 = 0; 1 : 0 = imposibil; 1 : 1 = 1.

Operaia de mprire se efectueaz identic cu cea din baza zece. Vom analiza n
continuare cteva exemple.

EXEMPLE

1) S se efectueze mprirea numrului 11010110101 cu 1011.

11010110101 1011
1011 10011100
0010011
1011
10000
1011
001011
1011
000001
Rezultatul este: 10011100 rest 1. Verificarea n zecimal: 11010110101
b
= 1717
z
,
1011
b
= 11
z
, 10011100
b
= 156
z
. 1717
z
: 11
z
= 156
z
rest 1.

Din acest exemplu se observ faptul c operaia de mprire ntreag se reduce
la operaii succesive de deplasare la dreapta a mpritorului i scderi din demprit,
ncepnd de la cifrele de rang maxim ale dempritului. Se continu cu dempritul
nemodificat dac rezultatul scderii este negativ sau cu rezultatul scderii dintre
demprit i mpritor dac rezultatul scderii este zero sau pozitiv. La fiecare scdere
se noteaz cifra ctului care este unu dac rezultatul scderii este zero sau pozitiv
(scderea se poate efectua) sau zero dac rezultatul scderii este negativ (scderea nu se
poate efectua). Operaia de scdere se oprete cnd se efectueaz o scdere din bitul de
rang zero al dempritului. Valoarea dempritului rmas constituie restul mpririi.

2) S se efectueze mprirea dintre numerele 111101101 si 101.
Vom apela la procedeul deplasrii la dreapta a mpritorului i scderea din
demprit.

111101101
101
010 - rezultatul scderii este pozitiv deci se continu cu valoarea
rmas n urma scderii i se face o deplasare la dreapta; ct = 1




18
010101101
101
0000 - rezultatul scderii este zero deci se continu cu valoarea rmas
n urma scderii i se face o deplasare la dreapta; ct = 11
000001101
101 - rezultatul scderii este negativ deci nu se efectueaz scderea i
se face deplasarea dreapta a mpritorului; ct = 110
000001101
101 - rezultatul scderii este negativ deci nu se efectueaz scderea i
se face deplasarea dreapta a mpritorului; ct = 1100
000001101
101 - rezultatul scderii este negativ deci nu se efectueaz scderea i
se face deplasarea dreapta a mpritorului; ct = 11000
000001101
101
001 - rezultatul scderii este pozitiv deci se continu cu valoarea
rmas n urma scderii i se face o deplasare la dreapta; ct =
110001
000000011
101 - rezultatul scderii este negativ deci nu se efectueaz scderea;
ct = 1100010 iar restul este 11 deoarece s-a ncercat scderea din
cifra de rang zero a dempritului.
Verificarea n zecimal: 111101101
b
= 493
z
, 101
b
= 5
z
, 1100010
b
= 98
z
, 11
b
= 3
z
.
493
z
: 5
z
= 98
z
rest 3
z
.

2.3. Operaii aritmetice cu numere reprezentate n octal i
hexazecimal

Reprezentarea numerelor n octal sau hexazecimal se face, aa cum s-a artat, n
scopul creterii claritii reprezentrii valorilor numerice. Trebuie subliniat aici, nc o
dat, c n sistemele numerice de calcul, singurul mod de reprezentare a informaiei este
cel binar. Utilizarea altor baze de numeraie cum sunt cel octal sau cel hexazecimal se
face doar n scopul creterii claritii documentaiei nsoitoare. Baza de numeraie opt i
baza de numeraie aisprezece au avantajul c au baze puteri a lui doi i din acest motiv
permit scrierea condensat i comod a numerelor binare.
Toate operaiile efectuate n alt baz de numeraie dect baza zece se bazeaz
pe principii similare, aa cum s-a vzut i la descrierea operaiilor aritmetice n baza doi.
Este important de reinut faptul c atunci cnd rezultatul adunrii depete ca
valoare valoarea bazei se produce un transport n rangurile superioare iar cnd se
efectueaz scderea unui numr mai mare dintr-un numr mai mic se produce un
mprumut de la rangurile superioare (identic cu ceea ce deja tim de la operaiile n baza
zece).
Cele mai importante operaii efectuate n octal sau n hexazecimal sunt cele de
adunare i de scdere. Din acest motiv vom exemplifica pe scurt, n continuare modul n
care se efectueaz aceste operaii n cele dou baze de numeraie.



19
2.3.1. Adunarea i scderea n octal

Adunarea, exemple

1) S se adune numerele reprezentate n baza opt 723
o
cu 523
o
.

transport 1
723
o
+
523
o
1446
o
n rangul doi, la adunarea cifrelor 7
o
cu 5
o
se produce un transport deoarece 7
z
+
5
z
= 12
z
este o valoare mai mare dect valoarea bazei care este 8. n acest caz se
procedeaz astfel: se scade din valoarea obinut valoarea bazei 12
z
8
z
= 4
z
,
valoarea respectiv se scrie pe rangul doi i avem un transport la rangul 3.
Trebuie inut cont de faptul c n octal: 7
o
+ 1
o
= 10
o
.

2) S se efectueze adunarea n octal 375
o
+ 276
o
.

transport 11
375
o
+
276
o
673
o

Scderea, exemple

1) S se efectueze scderea n octal: 532
o
251
o
.

mprumut 1
532
o

251
o
261
o
La scderea de pe rangul unu: 3
o
5
o
, trebuie s se efectueze un mprumut din
rangul superior. O cifr mprumutat din rangul superior nseamn opt uniti n
rangul inferior. Deci, n urma mprumutului, avem: 8
z
+ 3
z
5
z
= 6
z
.

2) S se scad n octal din 453
o
264
o
.

mprumut 11
453
o

264
o
167
o

Verificarea n zecimal este imediat dac se face conversia din baza opt n baza
zece utiliznd relaia:

valoare zecimal = o
n-1
8
n-1
+ o
n-2
8
n-2
+ .... + o
1
8
1
+ o
0
8
0


20
unde: o
0
, o
1
, o
2
, , o
n
sunt cifrele numrului n baza opt.

2.3.2. Adunarea i scderea n hexazecimal

Avnd n vedere faptul c operaiile sunt similare cu cele din octal, cu excepia
faptului c baza are valoarea aisprezece, vom prezenta numai cte un exemplu pentru
adunare i unul pentru scdere.

Adunare, exemplu

S se adune numerele n hexazecimal: 2A57
h
+ 57B9
h

transport 111
2A57
h
+
57B9
h
8210
h

n acest caz depirea se produce cnd suma este mai mare dect aisprezece. De
exemplu, 7
z
+ 9
z
= 16
z
= 10
h

Scdere, exemplu

S se efectueze scderea: 5C2B
h
3ACF
h
.

mprumut 11
5C2B
h

3ACF
h
215C
h

n cazul mprumutului, de pe rangul superior se mprumuta aisprezece uniti.
De exemplu, n cazul B
h
F
h
, avem un mprumut i se obine: 16
z
+ 11
z
(B
h
) 15
z
(F
h
)
= 12
z
(C
h
).



21



CAPITOLUL 3

ARHITECTURA SISTEMELOR DE CALCUL

3.1. Introducere

Un sistem de calcul reprezint o main automat destinat prelucrrii
informaiilor. O astfel de main va interaciona cu mediul extern pentru preluarea
informaiilor de intrare i furnizarea informaiilor rezultate n urma prelucrrii
informaiei de intrare. Prelucrarea informaiei se face ntr-un anumit scop ceea ce
determin o anumit activitate intern a sistemului de calcul. n acest moment putem
distinge mai multe faze ale prelucrrii informaiei de ctre un sistem de calcul.
n primul rnd informaia prezentat la intrarea sistemului de calcul reprezint n
accepia general un semnal. Acest semnal are un suport fizic i este reprezentat de o
mrime electric, mecanic, optic etc. O astfel de mrime este descris de anumii
parametri msurabili i are un suport energetic care permite interaciunea cu aceast
mrime. O astfel de mrime trebuie s fie transformat (adaptat) n aa fel nct aceasta
s fie compatibil cu formatul de intrare acceptat de sistemul de calcul.
n al doilea rnd informaia o data prelucrat de sistemul de calcul trebuie
furnizat mediului extern ntr-un anumit format impus de aplicaia pentru care se
efectueaz prelucrarea informaiei. Este limpede c va fi necesar o nou transformare a
informaiei din formatul furnizat la ieire de ctre sistemul de calcul n formatul impus
de aplicaie.
n sfrit, n afar de cele dou faze ce implic transformri ale suportului
informaiei, putem distinge i a treia faz, cea a prelucrrii interne, n sistemul de calcul
a informaiei.
Pentru a asigura o flexibilitate ct mai mare a unui astfel de sistem, cele trei faze
ale prelucrrii informaiei vor fi asigurate de ctre elemente diferite. Astfel, o anumit
modificare ce s-ar impune pe parcurs nu va afecta dect un anumit element din structura
sistemului.
n prezent, cele trei faze ale prelucrrii informaiei, sunt realizate astfel:

- transformarea semnalelor ntr-un format compatibil cu cel acceptat de
intrarea sistemului de calcul i transformarea informaiei furnizate de
sistemul de calcul n semnale necesare aplicaiei, este realizat de ctre
dispozitivele periferice. Acestea, dei sunt strns legate de funcionarea
sistemului de calcul sunt considerate elemente externe sistemului de calcul;
- prelucrarea intern n sistemul de calcul a informaiei va fi faza de prelucrare
a informaiei care determin o anumit structur a sistemului de calcul.
Aceast structur va fi completat cu elemente de legtur cu dispozitivele
periferice, elemente ce poart denumirea generic de interfee.


22

Pentru nceput ne vom ocupa de structura intern a sistemului de calcul ce
constituie arhitectura intern a acestuia dup care se vor discuta cteva aspecte legate de
periferice ntregul reprezentnd arhitectura unui sistem de calcul.
Din punct de vedere al tipului informaiei prelucrate n sistemul de calcul, aceste
pot fi de dou tipuri:

- calculatoarele analogice care prelucreaz semnale continue n timp, adic
semnale ce sunt descrise de o funcie continu de timp;
- calculatoare numerice ce prelucreaz numere, adic informaia prezentat n
format numeric.

ntre aceste dou tipuri de calculatoare exist deosebiri eseniale dei amndou
sunt destinate prelucrrii informaiei. Primul aspect se refer la tipul informaiei
prelucrate. Dac la calculatoarele analogice informaia trebuie s aib un anumit nivel al
suportului energetic pentru ca aceasta s poat fi prelucrat, la calculatoarele numerice
informaia este lipsit de suportul energetic fiind reprezentat de elemente abstracte cum
sunt numerele. Acest lucru aduce o serie de avantaje importante n favoarea
calculatoarelor numerice ceea ce face ca utilizarea acestora s fie din ce n ce mai
rspndit.
Pentru a lmuri lucrurile vom considera un exemplu simplu. Un instrument de
msur a tensiunii (voltmetru) poate fi considerat ca un sistem de calcul foarte simplu.
Un astfel de instrument preia o informaie din mediul extern (tensiunea electric), o
adapteaz la formatul acceptat la intrare (de regul printr-un divizor de tensiune),
prelucreaz informaia (prin comparare cu un element etalon) i furnizeaz la ieire o
informaie compatibil cu aplicaia (n cazul cel mai simplu afind rezultatul
msurtorii ntr-un anumit fel). n cazul unui voltmetru analogic (cu instrument de
msur) informaia de intrare trebuie s furnizeze o anumit energie pentru ca
msurtoarea s poat fi efectuat (aceast energie preluat de la semnalul msurat va
determina o deplasare a acului indicator proporional cu mrimea msurat). n cazul
unui voltmetru numeric prelucrarea informaiei se face n principal prin transformarea
acesteia ntr-o valoare numeric. Din acest motiv energia preluat de la semnalul de
intrare va fi cu mult mai mic (aceast energie nemaijucnd nici un rol n prelucrarea
semnalelor). Vom aminti numai dou din concluziile ce pot fi desprinse din acest
exemplu: msurtoarea efectuat cu un instrument numeric este mai precis prin
scderea cantitii de energie preluate de la semnalul de intrare (cunoscndu-se faptul c
preluarea unei anumite cantiti de energie din semnalul de msurat duce la alterarea
acestuia) i mrimile reprezentate prin numere cum sunt cele de la voltmetrul numeric
nu pot fi influenate de condiiile de mediu (temperatur, presiune, umiditate etc) cum
sunt cele analogice prezente n cazul voltmetrului analogic.
Aa cum s-a afirmat, n interiorul sistemului de calcul se realizeaz o anumit
prelucrare a informaiei. Este important de vzut n ce fel anume se realizeaz aceast
prelucrare. Dac ne gndim la exemplul de mai sus este limpede c voltmetrul analogic
ndeplinete o anumit funcie prin modul n care este construit adic prin conexiunile
electrice existente ntre elementele componente. Un astfel de sistem se numete cu
logic cablat adic modul de prelucrare a informaiei este determinat de modul


23
particular de conectare a elementelor componente. Acelai lucru se poate realiza i n
cazul unui sistem numeric i deci i astfel de sisteme pot fi n logic cablat. Un sistem
realizat n logic cablat nu va putea ndeplini dect o anumit funcie (n exemplul
nostru, nu ne vom putea gndi s folosim voltmetrul la altceva dect la msurarea
tensiunii) cea pentru care s-a realizat un anumit mod de conectare ntre elementele
componente. Rezult c un sistem n logic cablat este lipsit de flexibilitate,
modificarea funciei ndeplinite presupunnd (cel puin) modificarea conexiunilor
existente i (eventual) necesitatea adugrii unor componente noi. Un astfel de sistem
are totui avantajul simplitii n sensul c el nu va conine dect elementele
componente strict necesare aplicaiei particulare pentru care este destinat.
Sistemele numerice prin faptul c prelucreaz informaia sub form numeric
permit realizarea unor structuri generale, independente de aplicaia pentru care vor fi
folosite. n aceast situaie prelucrarea intern a informaiei nu mai este legat de
conexiunile existente ntre elementele structurii fizice. Pe aceast structur fizic
generic (independent de aplicaie) prelucrarea informaiei se va face pe baza unui
program (list de comenzi) ce se va afla n memoria sistemului de calcul. Astfel de
sisteme se numesc cu logic programat. Ele sunt flexibile (schimbarea programului
nseamn schimbarea sau modificarea aplicaiei pentru care sunt destinate) dar i
redundante n sensul c structura fizic general poate avea mai multe elemente dect
sunt necesare pentru o anumit aplicaie.
Calculatoarele analogice nu pot fi construite dect n logic cablat pe cnd cele
numerice pot fi construite att n logic cablat ct i n logic programat. Trebuie
precizat aici faptul c, dei n cazul calculatoarelor numerice n logic programat se
vorbete de o structur fizic general, aceasta nu poate fi total independent de
aplicaia (sau familia de aplicaii) pentru care este folosit calculatorul respectiv.
Dei varianta de sistem de calcul n logic programat prezint o serie de
avantaje ce au dus la dezvoltarea rapid i extinderea aplicrii acesteia n cele mai
variate domenii, calculatoarele analogice rmn importante i cu aplicaii extinse.
Revenind la structura unui sistem de calcul n logic programat, existena
programului indic faptul c trebuie s existe un element care s poat nelege i
executa comenzile existente n acest program. Acest element se numete unitate
central i pe lng funciile amintite va mai avea i alte sarcini n sistemul de calcul.
Din cele prezentate s-a conturat o structur general a unui sistem de calcul
numeric n logic programat i care trebuie s conin: unitatea central, memoria i
interfeele.
Intern, un calculator prelucreaz mai multe fluxuri de informaie dintre care
principalele fluxuri sunt reprezentate de datele numerice i de instruciunile
programului. Dup modul de prelucrare al acestor fluxuri informaionale calculatoarele
se pot clasifica n:

maini de tip SISD (Single Instruction Single Data) care prelucreaz
la un moment dat o singur instruciune program i o singur valoare
numeric;
maini de tip SIMD (Single Instruction Multiple Data) care
prelucreaz la un moment dat o singur instruciune program dar mai
multe fluxuri de date numerice;


24
maini de tip MIMD (Multiple Instruction Multiple Data) care
prelucreaz la un moment dat mai multe instruciuni program i mai
multe date numerice.

Mainile de tip SIMD sau MIMD fac parte din categoria calculatoarelor paralele
care pot prelucra n paralel mai multe fluxuri de informaie.
Din punct de vedere al puterii de calcul, n prezent calculatoarele se clasific
astfel:

microsisteme, sisteme simple bazate pe un microcontroler (calculator
integrat), un procesor de semnal DSP (microcontroler destinat
prelucrrii digitale a semnalelor) sau un microprocesor (unitate
central integrat pe un singur chip) destinate automatizrilor,
dispozitivelor periferice, bunurilor de lar consum, comunicaiilor etc;
calculatoare personale (PC Personal Computer), pentru un singur
utilizator, construite pe baza unui microprocesor. Aceste maini sunt
de cele mai multe ori de tipul SISD sau SIMD i sunt prevzute cu
dispozitive de intrare (de exemplu: tastatur, mouse, joystick,
scanner, etc.) pentru introducerea datelor de intrare, dispozitive de
ieire (de exemplu: display, imprimant, plotter, etc.) pentru
prezentarea datelor de ieire i dispozitive de stocare a datelor de
intrare i de ieire (discuri, band magnetic, disc optic, etc.);
staii de lucru (WS - WorkStation), pentru un singur utilizator,
similare calculatoarelor personale dar dotate cu microprocesoare mai
puternice i cu monitoare de calitate fiind destinate prelucrrilor
complexe;
minicalculatoarele, destinate mai multor utilizatori suportnd de la 10
la cteva sute de utilizatori simultan. Sunt maini de tip MIMD;
calculatoare de tip mainframe, calculatoare mai puternice dect
minicalculatoarele, destinate utilizrii simultane de ctre mai muli
utilizatori (multi user) putnd suporta de la cteva sute la cteva mii
de utilizatori;
supercalculatoarele, calculatoare extrem de rapide care pot executa
sute de milioane de instruciuni pe secund.

Avnd n vedere importana unei astfel de sistem de calcul ct i perspectivele
de dezvoltare i aplicare, n continuare vom discuta principalele probleme legate de
arhitectura acestora.
Sistemele de calcul n logic programat, larg rspndite n prezent, folosesc
dou tipuri de arhitecturi: arhitectura von Neumann i arhitectura Harvard.
Aceste arhitecturi se numesc arhitecturi secveniale, care au o singur unitate
central i care execut n mod secvenial programul aflat n memorie spre deosebire de
arhitecturile paralele care sunt structuri realizate cu dou sau mai multe uniti centrale.


25
3.2. Arhitectura von Neumann

Cea mai simpl structur (structura minimal) a unui sistem de calcul este
prezentat n figura 3.1.
UNITATE
CENTRAL
MEMORIE
PORTURI
(INTERFEE)
n
m
p
Magistrala de adrese
Magistrala de date
Magistrala de comenzi
PERIFERICE
q
Sistem de calcul
Mediul extern
Fig. 3.1. Structura general a unui sistem de calcul

Structura prezentat este structura minimal a unui sistem de calcul numeric
numit i arhitectur von Neumann. Evident, structura unui sistem de calcul poate
conine i alte elemente care vor duce la ridicarea performanelor sistemului de calcul
dar elementele prezentate n structura de mai sus sunt indispensabile funcionrii unui
sistem numeric n logic programat.
Trebuie observat faptul c aceast structur nu este legat de o anume aplicaie
ci ea este determinat doar de modul de funcionare al unui sistem numeric n logic
programat (main von Neumann n acest caz) si va acoperi o arie larg de aplicaii.
Elementele componente ale acestei structuri vor fi prezentate n continuare.
Unitatea central care are rolul de comand i control a sistemului de calcul i
de execuie a programelor ce se gsesc n memorie.
Un calculator poate avea o singur unitate central (in cele mai multe din cazuri)
sau mai multe uniti centrale ce lucreaz n paralel. Sistemele de calcul cu o singur
unitate central se numesc monoprocesor iar activitatea de prelucrare se numete
monoprocesare iar cele care au mai multe uniti de calcul ce lucreaz n paralel se
numesc multiprocesor iar activitatea de prelucrare a informaiei se numete
multiprocesare. Din cauz c n continuare ne vom referi numai la calculatoarele
monoprocesor nu se va mai specifica acest lucru explicit.
Memoria care are rolul de a stoca (pstra) programe i date.
Porturile sau interfeele care au rolul de a realiza schimbul de informaie dintre
sistemul de calcul i mediul extern prin trensformarea i adaptarea semnalelor conform
cerinelor.
Toate aceste elemente, care sunt realizate cu ajurorul unor circuite integrate pe
scar larg i foarte larg, sunt legate ntre ele prin intermediul unor conexiuni electrice.
Prin aceste conexiuni circul semnale electrice care au o anumit semnificaie din punct
de vedere al informaiei codificate (binar). Din acest motiv, conexiunile electrice sunt
grupate dup semnificaia informaiei vehiculate i un astfel de grup poart numele de


26
magistral (bus). Avem trei tipuri principale de magistrale: magistrala de adrese,
magistrala de date i magistrala de comenzi. Fiecare din aceste magistrale este alctuit,
aa cum s-a artat, din mai multe conexiuni electrice. n figura noastr, magistrala de
adrese are n linii, magistrala de date are m linii iar magistrala de comenzi are p linii.
Perifericele nu aparin structurii sistemului de calcul dar sunt menionate aici
deoarece sunt indispensabile funcionrii unui calculator. Vorbind la modul general, un
periferic realizeaz conversia unei anumite forme de energie n energie electric. Spre
exemplu, tastatura, care este un periferic transform energia mecanic cu care apsm
tastele ntr-un semnal electric care este preluat de ctre interfa i adaptat formatului
intern propriu sistemului de calcul, iar monitorul (display-ul) transform energia
electric n energie luminoas.
Se observ c interfeele sunt legate la rndul lor la periferice prin intermediul
unor magistrale (de dimensiune q n figura noastr). Aceste magistrale sunt de diferite
tipuri, au diferite dimensiuni i poart diferite denumiri legate de tipul interfeei la care
sunt legate.
Elementele care alctuiesc structura sistemului de calcul se mpart n dou
categorii: elemente de comand (master) i elemente comandate (slave). ntr-o structur
de calcul vom recunoate uor elementele de comand prin faptul c acestea pot genera
adrese (sensul sgeii magistralei de adrese este dinspre modulele de comand spre cele
comandate).

3.3. Arhitectura Harvard

Structura simplificat a arhitecturii Harvard este prezentat n figura 3.2.


UNITATE
CENTRAL
magistral de adrese
de date
magistral de date 2
magistral de
comenzi
magistral de
adrese de program
magistral de date 1
magistral de
comenzi
MEMORIE
DE
PROGRAM

MEMORIE
DE DATE

PORTURI
PERIFERICE
n
m
p
q
r
s
t
Figura 3.2. Arhitectura Harvard.
Microcontroler

Principala caracteristic a acestui tip de arhitectur este reprezentat de utilizarea
n structura sistemului de calcul a dou memorii cu destinaii diferite: o memorie de
program i o memorie de date. Acest lucru permite suprapunerea ciclului de extragere a
codului operaie din memorie cu ciclul de citire/scriere n memorie ceea ce duce la


27
creterea corespunztoare a vitezei de lucru. De asemenea astfel de sisteme folosesc
cuvinte de lungimi diferite pentru codul instruciunii i pentru date (de exemplu, coduri
de instruciuni pe 14 bii i date pe 8 bii) ceea ce permite utilizarea unui set complex de
instruciuni.
Utilizarea memoriilor cu destinaii diferite presupune existena unei magistrale
de adrese de program i a unei magistrale de adrese de date i, de asemenea, existena
unei magistrale de date pentru program pe care sunt aduse codurile de instruciune i
a unei magistrale de date pentru datele programului (fiecare dintre aceste magistrale
putnd avea dimensiune diferit).
O astfel de arhitectur este utilizat cu precdere n structura procesoarelor de
semnal (DSP Digital Signal Processor) sau a microcontrolerelor de tip Microchip PIC,
Atmel AVR etc.
n astfel de sisteme, programul i datele acestuia sunt stocate n memorii diferite.
De regul memoria program este o memorie de tip FLASH n aa fel nct programul s
nu se tearg la ntreruperea tensiunii de alimentare iar datele sunt stocate n memorii de
tip RAM static i memorii de tip EEPROM.
Asfel de sisteme reprezint microcalculatoare integrate care au unitatea central,
memoria i porturile realizate pe un singur circuit integrat.
Un calculator poate avea mai multe magistrale de acelai tip care se deosebesc
prin viteza de variaie (frecvena) a semnalelor care parcurg aceste magistrale,
dimensiunea i destinaia acestora. Din cauz c diferitele elemente conectate la
magistral au viteze de lucru diferite, elementele mai lente (cu vitez de lucru mai
sczut), vor impune frecvena maxim pe magistrale. Pentru creterea performanelor
unui calculator, magistralele se realizeaz pe mai multe nivele cu frecvene de lucru
diferite. Astfel, pe magistrala cu viteza cea mai mare se conecteaz de obicei unitatea
central i memoriile rapide iar pe magistralele cu vitez mai sczut se conecteaz
memoriile lente i porturile. Comunicaia ntre magistralele ce lucreaz la frecvene
diferite se realizeaz cu ajutorul unor circuite integrate specializate numite controlere de
magistral. Rezult c un criteriu de performan a unui calculator este reprezentat de
frecvena maxim a magistralelor interne.
Diferitele structuri particulare de calculatoare pot conine i alte elemente n
afar de cele prezentate n figura 3.1, n scopul creterii performanelor calculatorului
sau datorit destinaiei acestuia. Dintre aceste elemente suplimentare cele mai uzuale
sunt: circuitul de acces direct la memorie (DMA), controlerul de ntreruperi, controlerul
video i controlerul de comunicaie. Este de remarcat aici faptul c n cazul
calculatoarelor de proces apar n plus ceasul de timp real i ceasul de gard (watchdog
timer) necesare rulrii n timp real a aplicaiilor. n figura 3.3 este prezentat schema
bloc a unui calculator de proces. n aceast figur se vede c sistemul este organizat n
jurul a mai multor magistrale. Pe magistrala A se afl sistemul de calcul propriu-zis iar
pe magistrala B se afl circuitele de interfa cu procesul. Fiecare dintre magistrale sunt
alctuite, la rndul lor, din mai multe magistrale care nu sunt artate n figur.
Pentru a evita confuziile, trebuie menionat faptul c n figura 3.3, printr-un abuz
de limbaj, unitate central este denumit placa electronic, notat cu 880-P, ce conine
att unitatea central propriu-zis ct i porturi de intrare/ieire. Tot aa, prin extinderea
acestei expresii, unitate central este denumit cutia sau dulapul n care se afl aceast
component din structura sistemului de calcul.


28



Fig. 3.3. Structura unui calculator de proces





29
unitate central. Prin conectarea n p
igura 4.1 este prezentat modul de
realizar
cteristice ale unei
punct de vedere al setului de instruciuni, unitile centrale sunt de dou
categorii: uniti centrale de tip RISC (Reduced Instruction Set Comuter) cu un numr



CAPITOLUL 4

UNITATEA CENTRAL

4.1. Introducere

Unitatea central reprezint componenta principal a sistemului care
coordoneaz toate activitile acestuia. De performanele unitii centrale depind n mod
esenial performanele calculatorului. La
calculatoarele personale unitatea central este
reprezentat de un singur circuit integrat numit
microprocesor. Staiile de lucru conin unul, dou
sau mai multe microprocesoare, conectate ntr-o
arhitectur scalar, care lucreaz n paralel. n
cazul minicalculatoarelor, a calculatoarelor
mainframe sau a supercalculatoarelor, unitatea
central este realizat cu ajutorul mai multor
componente. De obicei sunt utilizate integrate de
tip bit-slice care reprezint o parte (felie) dintr-o
aralel a mai multor astfel de circuite se obin uniti
centrale cu diferite performane. Aceste uniti sunt microprogramabile de ctre utilizator
ceea ce le confer flexibilitate n exploatare dar complic procesul de proiectare.
Microprogramarea este o metod de realizare a automatelor de comand prin nscrierea
programelor acestora ntr-o memorie. Prin microprogramare se obin microprograme,
constituite din microinstruciuni. Microprogramarea
presupune o cunoatere de detaliu a echipamentului
cruia i sunt destinate microprogramele. Spre
deosebire de marea majoritate a altor metode de
programare instruciunile utilizate n
microprogramare conin att codul operaiei ct i
eventualii operatori, ct i adresa instruciunii
urmtoare.
n f
Fig. 4.1. Circuit integrat
e a unui circuit integrat.
Principalele mrimi cara
uniti centrale sunt reprezentate de: setul de
instruciuni, numrul de bii prelucrai simultan
(lrgimea magistralei de date) i frecvena de ceas
(viteza la care funcioneaz unitatea central).
Din
Fig. 4.2. Microprocesorul
INTEL 486


30
amului. Unitile centrale de tip
agistralei de date din cauz c pe aceast magistral sunt vehiculate date i
struc
zint de asemenea un criteriu de performan a acesteia. Avnd n vedere faptul c
trale. Astfel, spre exemplu, dou uniti centrale cu
ceeai
itii centrale. Memoria cache este o memorie foarte rapid care
te fo
umrul maxim adresabil de porturi de intrare/ieire, numrul i dimensiunea
registre
a unitii centrale (extragerea din memorie a
codului
umrului de operaii n virgul mobil (floating-point
relativ redus de instruciuni i uniti centrale de tip CISC (Complex Instruction Set
Computer) cu un numr mare de tipuri de instruciuni.
Unitile de tip RISC sunt ieftine i foarte rapide din cauz c setul simplu de
instruciuni le permite execuia cu vitez mare a progr
CISC au avantajul posibilitilor extinse de lucru datorit setului complex de
instruciuni iar n ultimul timp, ele sunt un concurent serios, la vitez, al unitilor
centrale de tip RISC. Cunoscutul microprocesor al firmei INTEL, Pentium, este
considerat ca fiind o unitate central de tip CISC dei conine n arhitectura sa multe
elemente ale unei maini RISC. n figura 2.4 este prezentat microprocesorul INTEL
486.
Numrul de bii prelucrai simultan de unitatea central reprezint de fapt
limea m
in iuni. Limea magistralei de date este de regul un multiplu de opt, n prezent
fiind ntlnite n mod uzual uniti centrale ce lucreaz pe 8, 16, 34, 64, 128 sau 256 de
bii.
Frecvena semnalului de tact (semnalul de ceas) aplicat unitii centrale
repre
o instruciune este executat de unitatea central n una sau mai multe perioade de ceas,
rezult c viteza de calcul crete odat cu creterea frecvenei de ceas. n prezent
calculatoarele personale performante utilizeaz frecvene de tact de pn la 600MHz cu
perspective de a ajunge la 1GHz.
Aceste criterii de performan nu sunt absolute din cauz c ele depind n mare
msur de arhitectura unitii cen
a frecven de ceas, pot merge cu viteze diferite, datorit structurii interne, cu
pn la de 20 de ori.
Un alt criteriu de performan l reprezint dimensiunea memoriei interne,
memoria cache, a un
es losit ca intermediar ntre unitatea central i memoria principal a sistemului.
Aceast memorie poate fi att intern (n structura unitii centrale) ct i extern. Din
acest motiv se spune c memoria cache este organizat pe nivele. Cu ct dimensiunea
memoriei cache interne este mai mare, cu att performanele unitii centrale vor fi mai
bune.
Alte criterii de performan ce pot fi luate n considerare n cazul unitilor centrale
sunt: n
lor interne, i modalitile de adresare.
O unitate central execut o instruciune n unul sau mai muli cicli main. Un
ciclu main reprezint o activitate elementar
operaiei, citire/scriere din/n memorie, citire/scriere din/n port, achitare cerere
ntrerupere etc. Un ciclu main poate dura una sau mai multe perioade a ceasului de
comand al unitii centrale.
Pentru determinarea performanelor unitilor centrale se folosete o metod
bazat pe determinarea n
operations) executate de aceasta ntr-o secund. Unitatea de msur este FLOPS
(FLoating-point Operations per Second), n mod obinuit performanele unitilor
centrale fiind msurate n megaFLOPS sau gigaFLOPS.


31
ie de la o adres bine precizat.
timp
de
sigurana n funcionare mbuntit;
czute - nivelul larg de integrare evit
ari de variaie ale



Princip le sunt:
insuficient pentru
elaborarea unui rspuns n timpul ateptat;
lor microsistemului i ai

semnalelor software i deci trebuie concepute


n cazul m i celelalte elemente
le microsistemului sunt componente distincte fapt ce particip la flexibilitatea soluiei. n
La punerea sub tensiune unitatea central pornete dintr-o stare iniial
cunoscut ncepnd s execute programul aflat n memor
Pe ul execuiei unui program unitatea central poate ajunge dintr-un motiv sau altul
ntr-o stare nedorit care s afecteze modul corect de funcionare al calculatorului. n
aceste situaii unitatea central trebuie readus n starea iniial. Acest lucru se face fie
n mod automat de ctre circuitele specializate ale calculatorului fie de ctre utilizator
prin apsarea unui buton (RESET). Este evident faptul c iniializarea unitii centrale
poate fi fcut i prin ntreruperea tensiunii de alimentare dar acest lucru este
nerecomandabil de cele mai multe ori pentru c se pot pierde informaii n curs de
prelucrare de ctre periferice i/sau informaii legate de prelucrrile curente. De
asemenea ocurile termice i de tensiune ce apar la pornirea calculatorului nu
recomand folosirea acestui procedeu pentru reiniializarea unitii centrale. Butonul de
iniializare a unitii centrale (RESET) este marcat uneori i cu simbolul: .
Datorit dezvoltrii spectaculoase a microsistemelor i datorit faptului c
unitile centrale a acestora, microprocesoarele, beneficiaz de o ntreag gam
inovaii tehnologice, ne vom concentra atenia asupra unitilor centrale de tip
microprocesor.
Principalele avantaje oferite de microsisteme fa de sistemele convenionale sunt:

costul sczut al hardware-ului;
interferene electromagnetice s
influenele electromagnetice chiar i la nivele m
tensiunii i curentului prin circuitele electronice de putere. n general
pentru protecie este suficient ecranul cu care prevzut componenta.
Zgomotul de cuplare cu sursele de alimentare i semnalele de intrare
poate fi minimizat printr-o bun filtrare analog-digital;
absena mprtierii sau a variaiei parametrilor;
compatibilitate cu controlul digital ierarhic;
hardware i software universal;
posibilitatea de diagnostic i autodiagnostic.
ale dezavantaje prezentate de ctre microsisteme

viteza de rspuns (calcul) este n unele cazuri
eroarea de cuantizare - eroarea de cuantizare poate fi micorat prin
creterea numrului de bii ai cuvinte
convertorului A/D;
lipsa de acces la semnale software - nu se pot efectua msurtori cu
osciloscopul asupra
msuri adecvate de depanare.
dezvoltarea software-ului poate fi uneori scump.
icrosistemului cu microprocesor unitatea central
a


32
nui
microprocesor)
procesor cuprinde: o unitate aritmetic i logic, avnd drept
op efectuarea de operaii aritmetice i logice elementare; un set de registre pentru
emor

Aceast structur

z general i
special;
trul de instruciune;
oare ce asigur o parte din comenzile la
C sau RI, sub controlul (selecia) semnalelor din

cazul microcontrolerelor ntr-o singur component sunt integrate pe lng unitatea
central i o parte din elementele microsistemului. Dei microcontrolerele prezint o
flexibilitate mai redus ele prezint avantajul miniaturizrii i a preului de cost sczut.

4.2. Microprocesorul universal (structura general a u

Structura unui micro
sc
m area temporar i manipularea cu vitez ridicat a unui numr relativ mic de
rezultate intermediare; un bloc de comand i secveniere care asigur desfurarea
ordonat a tuturor operaiilor n interiorul microprocesorului, precum i comunicaia
acestuia cu lumea exterioar; un bloc de decodificare a instruciunii curente, care
interpreteaz instruciunea n curs i determin aciunile ce se impun; un bloc de tratare a
cererilor de ntrerupere utilizat pentru luarea n considerare a evenimentelor asincrone fa
de desfurarea programului; tampoane ntre microprocesor i magistralele sistemului.
Microprocesoarele din ultimele generaii au inclus i un coprocesor matematic ce le
permite realizarea unor calcule matematice complexe cu vitez ridicat i memoria cache.
Structura de principiu a microprocesorului universal este prezentat n figura 4.3.

Fig.4.3. Schema bloc a microprocesorului universal
este format din urmtoarele elemente componente:
RALU - unitatea logic i aritmetic i registrele de u
AC - automatul de control;
RI - regis
RS - registrul de stare;
MUX - un grup de multiplex
bornele RALU de la A
AC.
Semnalele interne care asigur funcionarea sistemului sunt
urmtoarele:


33
enerate din RI ctre AC i prin intermediul MUX, ctre
- reprezint un bus intern bidirecional pe care sunt cuplate
re exterioare microprocesorului.

mand citirea de la adres configuraiei
;
lui ntr-o stare de ateptare drept urmare a unei
-
niment
-
urmare a acestui semnal, dispozitivul ce a
-

Microprocesoa le
inimizat, n sensul c automatul de control AC este gndit foarte simplu. Procesoarele
crop
esoare
e unor tipuri
prezentative de microprocesoare.
80
a aprut de o perioad de timp destul de lung el
ste unul dintre microprocesoarele pe 8 bii dintre cele mai populare. Pentru acest tip de
comenzi, generate de AC ctre subansambluri sau ctre exterior;
instruciuni, g
RALU;
indicatori, generai de ALU din RALU ctre RS;
date
RALU, RS i RI (unidirecional);
adrese - cale de adrese ce se emite n exterior din RALU pentru
controlul dispozitivelor de memora
Semnalele la bornele microprocesorului sunt urmtoarele:
adrese - cale unidirecional;
date - cale bidirecional;
semnale de sincronizare:
- READ - semnal ce co
binare de pe calea date
- WRITE - semnal ce comand la adres a configuraiei binare de
pe calea date;
- WAIT - semnal recepionat ce impune trecerea
microprocesoru
comenzi READ sau WRITE ce nu a fost nc executat;
INT - semnal de ntrerupere a crui recepionare stopeaz
procesul curent de calcul pentru a da curs unui eve
exterior sistemului;
INTA - semnal ce indic luarea n consideraie a semnalului de
ntrerupere INT; ca
activat INT va genera pe date o configuraie binar specific;
RESET - semnal de iniializare a funcionrii microprocesorului.
re sunt procesoare la care funcia de control intern este
m
mi rogramate se situeaz la extrema n care funcia de control intern are o pondere
foarte important. Dac un microprocesor folosete ct mai direct codul instruciunii (biii
din RI comand direct funcionarea RALU), n cazul imensei majoriti a instruciunilor, la
o structur microprogramat, codul instruciunii acioneaz cu preponderen asupra
automatului de control, declannd secvene complexe de comand.

4.3. Caracteristicile principalelor tipuri de microproc

n continuare sunt prezentate pe scurt principalele caracteristici al
re

4.3.1. Microprocesorul ZILOG Z

Dei este un microprocesor care
e
microprocesor au fost dezvoltate o serie foarte mare de aplicaii ncepnd de la bunuri de
larg consum pn la aplicaii industriale.


34
are de 8 bii. Componentele din familie asigur
magistrala de adrese pe 16 bii;
8 bii cu utilizare pe 16 bii, registre

pentru remprosptarea transparent a

cabil i una mascabil cu un mecanism
cererea de ntrerupere;

4.3.2. Microproceso l
s-a mbogit continuu cu noi membrii care au
us la creterea performanelor hardware i software a acestor componente. Principalul
oprocesorul poate adresa ca i 80806
spa
matice. Fiecrui element de baz din familie i-a fost asociat un
Microprocesorul Z80 mpreun cu componentele sale auxiliare formeaz o familie
tipic pentru generaia de microproceso
posibilitatea realizrii tuturor funciilor clasice ale unui sistem cu microprocesor.
Principalele caracteristici ale acestui microprocesor sunt:

magistrala de date pe 8 bii;
12 registre de uz general pe
cu selectare alternant cte ase;
2 registre acumulator i 2 registre indicatori de condiii cu
selectare alternant;
2 registre speciali, unul pentru determinarea vectorului de
ntrerupere i unul
memoriei dinamice;
2 registre index pe 16 bii;
o ntrerupere nemas
foarte flexibil de rspuns la
este capabil s execute operaii aritmetice (mai puin nmulirea
i mprirea) i logice;
frecven de tact maxim 6MHz.
are e INTEL 80x86

Familia microprocesoarelor INTEL
d
avantaj al acestei familii de microprocesoare este pstrarea compatibilitii software ntre
diferitele generaii ncepnd cu microprocesorul 8086 ceea ce a permis dezvoltarea
continu a aplicaiilor pentru aceste microprocesoare.
ncepnd cu microprocesorul 80286 s-au introdus dou moduri de funcionare
diferite: modul real (Real Address Mode) n care micr
un iu de memorie de 1Mo i modul protejat (Protected Virtual Address Mode) n care
spaiul adreselor fizice a crescut la 16Mo iar cel al adreselor virtuale la 1Go.
Microprocesorul 80286 a fost proiectat pentru a permite (n mod protejat) sisteme
multitasking, oferind cte un segment de stare ataat fiecrui task, care sunt structuri
manevrate hardware i conin strile curente (incluznd toate registrele) ale taskurilor.
Selectoarele acestor segmente de stare identific unic taskul ataat. De asemenea, este
facilitat i comutarea taskurilor, care poate fi invocat printr-o singur instruciune.
Fiecare task din sistem poate avea propriul lui spaiu de adrese logice. Microprocesorul
80286 ofer i un mecanism evoluat pentru comunicarea ntre taskuri, sincronizarea lor i
partajarea memoriei.
Istoria microprocesoarelor din familia 80x86 este strns legat de cea a
coprocesoarelor mate
coprocesor pentru a mbunti performanele sistemului de calcul. Pentru
microprocesoarele 8086, 80286 i 80386 sunt folosite coprocesoarele 8087, 80287 i
respectiv 80387.


35
e. Datorit celor 32 de bii de adrese, spaiul adreselor fizice este de 4Go
r spa

Microprocesorul 80486 ofer multe faciliti noi: o memorie cache de 8ko, o
nitate de gestiune a memoriei compatibil 80386, un procesor 80386 i un subset 80387
pe un s
l i modul protejat. Avnd
n ved
Microprocesorul 80386 pe 32 de bii a fost proiectat pentru utilizarea n aplicaii
intensive complex
ia iul adreselor logice de 64To. Este prevzut cu microcod care suport direct aplicaii
care utilizeaz ntregi mari, structuri complexe de date i un numr mare de programe.
Microprocesorul are patru moduri distincte de funcionare: real, virtual 8086, protejat 286
i nativ 386. n figura 4.4 este prezentat schema bloc a microprocesorului 80386.



Fig. 4.4. Schema bloc a microprocesorului 80386
u
ingur chip, ceea ce permite ca softul existent (fiind vorba de nalta compatibilitate)
s ruleze mai repede pe 80486 dect pe perechea 80386-80387.
Microprocesoarele de tip INTEL, ncepnd cu microprocesorul de tip 80386 au
patru moduri de funcionare de baz: modul real, modul virtua
ere faptul c sistemul de operare DOS este destinat n exclusivitate
microprocesoarelor de tip INTEL i datorit faptului c aceste mecanisme se ntlnesc i
la alte tipuri de microprocesoare, ele vor fi descrise pe scurt n continuare.

MODUL REAL. Acest mod este cel n care se intr dup iniializarea
icroprocesorului. De regul, sub sistemul de operare DOS microprocesorul se afl n
modul
m
real. Specific acestui mod de funcionare este faptul c microprocesorul nu poate
rula dect un singur program odat. Exist posibilitatea rulrii programelor sub sistemul
de operare DOS i n alte moduri ale microprocesorului, dar acest lucru necesit extensii
ale sistemului de operare (existnd n acest sens programe specifice).

MODUL VIRTUAL. Acest mod permite execuia programelor n contextul
mecanismelor de protecie, gestiune a taskurilor i management al memoriei. Un
program poate rula n mod virtual n paralel cu alte programe care ruleaz n mod
protejat. De asemenea, pot fi executate deodat mai multe programe n mod virtual.
Sistemul de operare Windows 9x se bazeaz pe acest mod performant de funcionare al


36
microprocesorului, permind execuia n paralel a mai multor programe (sesiuni DOS)
ct i a mai multor programe Windows.
MODUL PROTEJAT. n acest mod, microprocesorul emuleaz funcionarea
unui m
MODUL NATIV
icroprocesor de tip 80286 n mod protejat. Modul protejat prezint un mecanism
sofisticat pentru protejarea datelor, integritatea sistemului, concurena taskurilor i
gestiunea memoriei incluznd i cea a memoriei virtuale. n modul protejat, n cazul
microprocesorului 80286, spaiul adreselor fizice este mrit de la 1 Moctet la 16
Moctei, n timp ce spaiul adreselor virtuale a fost mrit la 1 Goctet. n acest mod,
programele folosesc adrese virtuale, translatarea lor n adrese fizice fcndu-se automat
pe baza unor tabele cu descriptori de segmente. Acest mecanism permite implementarea
eficient a sistemelor cu memorie virtual n care utilizatorul vede memoria intern i
cea extern ca o singur memorie. Modul protejat permite implementarea sistemelor
multitasking, oferind cte un segment de stare ataat fiecrui task, care sunt structuri
manevrate hardware i conin strile curente (incluznd toate registrele) ale taskurilor.
Selectoarele acestor segmente de stare identific unic taskul ataat. De asemenea, este
facilitat i comutarea taskurilor, care poate fi invocat printr-o singur instruciune.
Fiecare task din sistem poate avea propriul lui spaiu de adrese logice, existnd de
asemenea un mecanism evoluat pentru comunicarea ntre taskuri, sincronizarea lor,
partajarea memoriei etc.

. Acest mod folosete ntreaga putere a microprocesorului.
Memor
icroprocesorul INTEL Pentium
ste integral compatibil cu procesoarele INTEL
get Buffer) care
ia virtual permite ca dimensiunea unui program s fie limitat de spaiul pe disc
i nu de dimensiunea memoriei interne. Mecanismele de protecie sunt destul de
puternice pentru a evita accidentele ntre taskuri sau ntre utilizatori. Spaiul de adrese al
taskurilor este complet separat, segmentele sunt tipizate i au diferite drepturi de acces.
De asemenea, se verific i depirea limitelor segmentelor. Exist trei nivele de
prioritate, sistemul de operare avnd nivelul zero (cel mai prioritar), iar aplicaiile
programatorilor avnd nivelul trei (cel mai puin prioritar).

M
Microprocesorul Pentium e
anterioare, dar se deosebete de acestea n multe privine. Cel puin una din aceste
deosebiri este major: microprocesorul Pentium are dou canale identice de procesare a
datelor, ceea ce i permite s execute dou instruciuni n
acelai timp. Aceast capacitate de a executa simultan dou
instruciuni este numit tehnologie superscalar (procesare
paralel). Aceast tehnologie asigur performane
suplimentare fa de cea a procesorului 486.
Prin modul numit BTB (Branch Tar
utilizeaz o tehnic numit branch prediction (predicia
salturilor) n scopul reducerii timpului de ateptare n canalele
de procesare, cauzat de aducerea instruciunilor unei ramuri
aflate la o alt locaie de memorie, se realizeaz la
microprocesorul Pentium o utilizare mai eficient a memoriei
cache interne. Modul BTB ncearc s prevad cnd va apare
o instruciune de salt i s aduc n memorie instruciunile


37
teristici ale microprocesorului Pentium sunt:
gama frecvenelor maxime: 450MHz;
i;
rat: 8kb pentru instruciuni i 8kb
ociate,
atic cu unitate de calcul n virgul mobil
moriei: SMM (System Management Mode),

Dezvoltarea microprocesoarelor a depit de mult acest prag. n prezent exist
microp
plin
posibil
.3.2.1. Microprocesorul INTEL 8086/8088
Microprocesoarele 8086 i 8088 de generaia a III-a sunt microprocesoare cu o
e sunt:
magistrala de date de 16 bii;
;
adresabile direct sau pe octei;
adresare a memoriei (7 moduri);
corespunztoare ramurii la care se va face saltul. Utilizarea tehnicii de prevedere a
ramificrii unui program permite microprocesorului s menin n funcionare la vitez
maxim, cele dou canale pentru execuia instruciunilor.
Principalele carac

dimensiunea registrelor: 32 bii;
magistrala de date extern: 64 bi
magistrala memoriei 32 bii;
memoria maxim: 4Gb;
memorie cache ncorpo
pentru date la primele tipuri ajungnd la 2Mb n prezent;
tipul memoriei cache ncorporate: cu dou blocuri as
Write-Back Data;
coprocesor matem
(FPU) inclus;
gestionarea me
extins la a doua generaie.
rocesoare cu mai multe uniti centrale integrate care au mecanisme sofisticate.
Datorit faptului c nelegerea funcionrii unui microprocesor este pe de
prin analiza funcionrii microprocesorului INTEL 8086, datorit structurii simple
dar revoluionare a acestuia, compatibilitatea cu generaiile INTEL dezvoltate ulterior i
datorit existenei unei consistente documentaii n legtur cu acest domeniu, vom
prezenta n continuare structura n detaliu a acestui microprocesor.

4


structur pe 16 bii, 8088 este proiectat cu o magistral de date extern de 8 bii n timp ce
8086 poate transfera 16 bii deodat. Datorit faptului c n afar de aceast deosebire
funcionarea celor dou tipuri de microprocesoare este identic, n continuare ne vom referi
numai la microprocesorul 8086. Performanele acestor microprocesoare sunt datorate
structurii interne de 16 bii i arhitecturii pipeline care permite instruciunilor s fie
prencrcate n timpul ciclurilor disponibile ale magistralei.
Principalele caracteristici ale acestor microprocesoar

magistrala de adrese de 20 bii;
adresare segmentat a memoriei
4 registre de uz general pe 16 bii
4 registre de segment pe 16 bii;
2 registre index pe 16 bii;
un sistem foarte flexibil de


38
cesor;
clusiv nmulire i

Microprocesorul 8086 este un microprocesor pe 16 bii i memorie adresabil
direct d

a cum se arat n figura 4.5, structura microprocesorului I 8086 se compune
din dou
BIU execut toate ciclurile de bus (READ, WRITE, INTA) fie la cererea
EU sau
n intervalele ct EU nu solicit bus-ul.
sistem de ntreruperi hardware i software;
posibilitatea funcionrii n sisteme multipro
posibilitatea efecturii operaiilor aritmetice (in
mprire) i operaii logice;
frecven de tact 6MHz.

e 1Mo. Structura unitii centrale, cu elementele accesibile programatorului, este
prezentat n figura 4.5.

AH

AL

BH

BL

CH

CL

DH

DL

SP

BP


DI

SI

Registre
de uz
general
CODE SEGMENT
DATA SEGMENT
STACK SEGMENT
EXTRA SEGMENT
IP
REGISTRE INTERNE


REGISTRE TEMPORARE
ALU
REG. FLAG
-
uri

COMANDA
EU
1 2 3 4 5 6
BIU
EU
Bus
COADA DE INSTRUCTIUNI
20
LOGICA DE
COMANDA
DE BUS
20
16
16
BUS AD 0 AD 15
MULTIPLEXAT
8 8
16
Figura 4.5. Structura unitii centrale 8086.
A
uniti : EU = unitate de execuie i BIU = unitate de interfa cu magistrala
(bus).
pentru umplerea cu coduri a unei cozi Q de instruciuni. Coada de instruciuni
este o memorie de tip FIFO cu 6 cuvinte.
BIU execut noi cicluri FETCH
EU obine coduri de la BIU (ateapt dac Q este vid), execut instruciunile,
lucrnd cu adrese i date cu 8/16 bii, actualizeaz flag-urile i furnizeaz adrese i date
ctre BIU.


39
EU calculeaz adresele efective ale operanzilor, conform modului de scheme
utilizat. Adresa efectiv pe 16 bii, BIU genereaz adresa fizic cu 20 de bii, selectarea
adresei efective, generate de EU.
Dac Q este plin i EU nu solicit transferuri pe bus apar cicluri n rotire
(ateptare).
Exemplu: T1 T2 T3 T4 TI TI ... TI TI T1 T2 T3 T4 ... TI = Idle State.

Modurile de lucru posibile pentru unitatea cuntral I8086 sunt :

Modul minim MN / MX = 1
Semnale de comand: ALE, DT/K, DEN, M/IO, WR, INTA, HOLD, HOLDA.
Folosit n sisteme mici, de regul monoprocesor. n figura alturat circuitele
bufferde tip 8286 pot lipsi dac ncrcarea electric a bus-ului este redus.

Modul maxim MN / MX =0
UCP genereaz ctre controlerul de sistem I 8288 semnale de stare identificare
ale ciclului de bus, n rest genereaz semnale corespunztoare pe bus-ul de comand.

Conectarea UCP I 8086 n modul maxim.
n modul maxim liniile RQ/GT0, RQ/GT1, LOCK, QS0, QS1 se pot utiliza
pentru conexiuni de tip multiprocesor. Se pot, de exemplu, conecta alte procesoare pe
bus-ul local al UCP, utiliznd pentru arbitrajul de bus liniile RQ/GT (care nlocuiesc pe
HOLD/HOLDA din modul minim).

Registrele unitii centrale
Registrele unitii centrale
aflate n seciunea EU
(Execution Unit) sunt:
15 AH 8 7 AL 0
BH BL
CH CL
DH DL
AX
BX
CX
DX
16

AX, BX, CX, DX
SP, BP, SI, DI
F


8


Registre cu 16 bii de uz general, adresabile direct sau pe octet:

AX = (AH, AL)
BX = (BH, BL) fiecare din ele poate servi ca destinaie a datelor
(accumulator) CX = (CH, CL)
DX = (DH, DL)






40
Utilizrile implicite ale registrelor sunt:

AX: utilizat pentru operaii aritmetice (*), (/) pe 16 bii i pentru operaii de
I/E pe 16 bii; n mod analog AL este utilizat pe 8 bii i n plus pentru
aritmetic zecimal i conversii de cod; AH este utilizat la (*) i (/) pe 8
bii;
BX: utilizat n conversii de cod i ca registru de baz de adrese;
CX: utilizat n operaii cu iruri, cu rol de contor de cicluri;
CL: utilizat n deplasri (stnga, dreapta cu un numr de pai dai ca
parametru de valoare lui CL);
DX: utilizat la (*), (/) pe 16 bii i ca registru de adresare indirect la porile
de intrare ieire (I/E);
SP: utilizat implicit n toate operaiile cu stiva;
SI, DI: utilizate n operaiile asupra irurilor de date;

F = registrul de flag-uri i control al procesorului (se afl n EU).
Semnificaia fanioanelor din registrul F este:

CF = C, PF = P, AF = H, ZF = Z, SF = S semnificaii obinuite :
CF = "carry flag": depire aritmetic;
PF = parity flag: paritate;
AF = auxiliary flag: transport ntre bitul 3 i 4;
ZF = "zero flag: valoare zero;
SF = sign flag: semnul.
TF = trip flag; TF = 1 determin UCP s lucreze n mod pas cu pas(single
step), n care CA genereaz o ntrerupere intern dup fiecare execuie a
unei instruciuni;
IF = masca pentru ntreruperi externe (IF =1 => validarea ntreruperilor; IF =0
=> invalidarea ntreruperilor);
DF = direction flag- indic direcia deplasrii adresei la operaiile cu iruri de
date (DF =1 => autodecrementare, DF =0 => autoincrementare, dup o
operaie elementar);
OF = V (depire).

Registrele SP, BP sunt registre cu 16 bii utilizate n operaiile cu stiva.
Registrele SI, DI sunt registre cu 16 bii utilizate n operaiile cu iruri; SI
conine adresa sursei iar DI adresa destinaiei.

Registrele aflate n seciunea BIU (Bus Interface Unit) a unitii centrale
8086 sunt:

CS, DS, SS, ES = sunt registre segment care conin adresele de baz ale
segmentelor logice de cod, date, stiv i extrasegment;
IP = Instruction Printer = contor de program, cu 16 bii. Valoare ce reprezint
adresa relativ (offset-ul) a instruciunii curente n segmentul de cod
(relativ la CS). n cazul unei instruciuni de salt, IP este salvat n vrful


41
stivei (mpreun cu CS, deci saltul este inter-segment) i apoi ncrcat cu
adresa relativ n segmentul de cod a instruciunii int ;
Posibilitile de lucru n sisteme multiprocesor
Arhitectura familiei I8086 conlucrarea ntre dou tipuri de procesoare:
independente (execut propriile secvene de instruciuni) ;
coprocesoare care obin instruciuni din memoria unui procesor
gazd (host), urmrind ciclurile FETCHale gazdei, le recunosc pe
cele destinate lor i le execut. Efectul obinut este extinderea setului
de instruciuni al gazdei.
Organizarea ierarhic a bus-urilor
Familia admite dou tipuri de bus-uri: locale i de sistem. Ambele pot fi
multimaster (mai multe UCP conectate la bus). ntre bus-ul local i cel de sistem se
conecteaz interfee.
Conexiunile externe ale I8086
n modul "maxim" UCP livreaz controlerului de sistem I 8288, n fiecare ciclu
de bus, un cuvnt de comand (S0, S1, S2), pe care acesta l decodific i genereaz
semnale de comand pe magistral (bus). n acest mod se pot conecta mai multe UCP la
bus.
Semnalele externe ale microprocesorului I8086 sunt prezentate n figura 4.6.


MN/ MX
BHE / S7
M / IO
DT / R
DEN
READY
RD
WR

HOLD
HOLDA
ALE
INTA
INTR
NMI
8086

(S2)
(S1)
(S0)

( LOCK )

( RQ / GT0 )
( RQ / GT1 )
( QS0 )
( QS1 )
16

A16 / S3
A17 / S4
A18 / S5
A19 / S6

AD 15
AD 0

Vcc
CLK
GHD

RESET
TEST

Semnificaie n modul
maxim ( MX = 0 )
Figura 4.6. Semnalele externe ale microprocesorului I8086.
n tabelul 4.1 sunt date semnificaiile semnalelor externe ale microprocesorului
I8086 att n modul "minim" ct i cel "maxim". Microprocesorul I8086 este realizat n
capsule de 40 de pini. Din acest motiv semnalele acestuia sunt multiplexate, n aa fel


42
nct s poat fi generate toate semnalele pe aceti pini (adrese 20 de semnale, date
16 semnale, comenzi i alimentare), cele 16 linii de adres A15 A0 fiind
multiplexate cu cele 16 linii de date D15 D0.

TABELUL 4.1.
Simbol Nr. pin Semnificaie
Tip
AD15
AD0
216,
39 Adresa n T1/D este n T2, T3, Tw, T4 I/O, Z
A19 / S6
A18 / S5
A17 / S4
A16 / S3
35 38
Adresa n T1 / semnele de stare n T2, T3, Tw,
T4

MN / MX 33 Comanda modului: 1 minim; 0 maxim I
BHE / S7 34 Validare bus (HIGH) n T1 / stare n T2 T4 O, Z
RD 32 Comand de citire pe bus-ul local O, Z
READY 22 Memorie / (I/E) gotopentru transfer I
RESET 21 Comanda de resetare I
TEST 23
Testat de instruciuni WAIT (Ateapt pn ce
TEST = 0
I
INTR 18 ntreruperi mascabile externe; activ pe nivel I
NMI 17
ntreruperi nemascabile externe; activ pe front
(+)
I
CLK 19 Semnal de test generat de 8284 I
VCC 40 Alimentare +5V I
S
E
M
N
I
F
I
C
A

I
I

F
I
X
E

GHN 1, 20 Mas

M / IO 28 Ieire de stare. Selecie memorie (I / E) O, Z
WR 290 Comand de scriere O, Z
DT / R 27
Comand semnul transferului; 1=>
transmisiune; 0 => recepie
O, Z
DEN 26 Validare date. Activ n cicluri M, I/E, INTA O, Z
ALE 25 Indic prezena adresei pe AD0 ... AD15 O
INTA 24
READpentru cele dou cicluri INTA ale lui
8086
O
HOLD 31 Cerere de bus de la alt master I
S
E
M
N
I
F
I
C
A

I
I

N

M
O
D

M
I
N
I
M

HLDA 30 Confirmare de cedare a bus-ului O
S2, S1, S0 26 28 Semnale de stare pentru ciclu de bus O
RQ / GT1 30
RQ / GT0 31
Comenzi cerere/cedare pentru arbitraj de bus I / O
LOCK 29
Indicator c 8086 nu va ceda bus-ul altui
master
O
S
E
M
N
I
F
I
C
A

I
I

N

M
O
D

M
A
X
I
M

QS1
QS0
24, 25
Starea cozii de instruciuni din interfaa cu bus-
ul a UCP
O
unde: I = intrri; O = ieiri; Z = impedan mare;



43
Observaii:
cu T
n
se noteaz ciclurile unitii centrale (T
1
ciclul de extragere
cod operaie etc.)
AD15 AD0 : genereaz adrese n intervalul T1, devin intrri / ieiri
de date n T2 T4 i trec n impedan mare n timpul ciclurilor
INTA, sau dac UCP a cedat bus-ul (HDLA = 1);
A19 / S6 A16 / S3: genereaz adrese n intervalul T1 (cu valoare
0dac ciclul de transfer este I/E) i semnale de stare n T2 T4.
o S6 = 0 indic ocuparea bus-ului de ctre UCP;
o S5 = IF copiaz starea flag-ului de ntrerupere. Astfel, starea
de validare / invalidare se poate citi hardware din exteriorul
UCP.

S4 S3
0 0 Alternate data
0 1 Stack
1 0 Code or home
1 1 Data
Indic registrul segment curent
utilizat pentru adresare.

Aceti pini trec n starea Z n timpul ct HDLA = 1
BHE i A0 determin tipul transferului pe 8 sau 16 bii, astfel:

BHE A0 tipul transferului
0 0 16 bii
0 1 MSB (adres impar)
1 0 LSB (adres par)
1 1 -

BHE = 0 atunci cnd un octet trebuie transferat pe cei 8 bii mai
semnificativi (MSB) ai bus-ului cu 16 bii. El este activ n timpul
ciclurilor RD, WR, INTA (este 0 n timpul primului ciclu
INTA).
BHE trebuie demultiplexat odat cu A0 A15 (prin memorare pe
frontul negativ al semnalului I/E deoarece n T2 T4 el indic bitul
de stare S7.
n modul maxim, o parte din semnificaiile pinilor se modific.
S2, S1, S0 identific tipul de ciclu main n intervalele T4, T1, T2,
informnd controlerul de sistem I 8086 asupra tipului de transfer care
urmeaz (ele sunt inactive n T3 i Tw).
S2, S1, S0
0 confirmarea acceptrii ntreruperii,
1 citire I/E,
3 HALT (oprire),
4 Citirea codului instruciunii,
5 Citire din memorie a unui operand,
6 Scriere n memorie a unui operand,


44
7 Ciclu inactiv.
Pinii S2, S1, S0 trec n starea Z n intervalele n care UCP cedeaz
bus-ul.
Liniile bidirecionale RQ / GT, (RQ/GT0 au prioritate fa de
RQ/GT1) i sunt utilizate de alte module masterde pe bus-ul local
pentru pentru a cere bus-ul de la UCP. Cererea se face prin RQ = 0
(intrare); la sfritul ciclului main curent UCP cedeaz bus-ul i
genereaz GT = 0 (GranT). Semnalul LOCK = 0 indic faptul c
UCP nu va ceda bus-ul deoarece execut o seciune de transfer
nentreruptibil ce trebuie terminat.
Semnalele QS0 i QS1 indic starea cozii de instruciuni existente n
unitatea de interfa de bus a UCP.

Firma Intel a creat o serie de circuite integrate necesare realizrii
microsistemelor cu microprocesor I8086. O parte din aceste circuite au devenit modele
pentru dezvoltrile ulterioare, foarte multe din circuitele moderne fiind compatibile cu
aceste circuite. Principalele circuite dezvoltate de firma Intel sunt :

8086 (IAPX 86/10), IAPX 186, IAPX 286 UCP cu 16 bii;
8087 (IAPX 86/20) procesor aritmetic n virgul mobil;
8088 (IAPX 88/10) UCP cu 16 bii n interior i 8 bii n exterior;
8089 UCP specializat n operaii I/E;
IAPX 86/30, IAPX 88/30 procesor specializat coninnd un sistem
de operare n timp real ncorporat n HW;
8284 generator de tact;
8288 controler de sistem (genereaz semnalele de comand pe bus-
uri);
8289 arbitru de bus (coordoneaz funcionarea mai multor UCP-uri
pe acelai bus) pentru sisteme multiprocesor;
8259A controler de ntreruperi;
8237A controler DMA;
8282, 8283 circuite latch (8bii);
8286, 8287 circuite buffer (8bii).

n figura 4.7 este prezentat un microsistem realizat cu microprocesorul I8086
conectat n modul "minim".
Din aceast figur se observ existena celor trei magistrale : magistrala de
comenzi, magistrala de adrese i magistrala de date. Magistrala de adrese i cea de date,
datorit faptului c sunt multiplexate, necesit circuite suplimentare pentru generare :
circuitul I8282 latch i circuitul I8286 buffer.
n figura 4.8. este prezentat modul n care microprocesorul I8086 poate fi conectat
n modul "maxim". Aa cum s-a artat, n acest mod sunt generate n mod suplimentar
semnale de comand a magistralelor cu ajutorul circuitului controler de sistem I8288.



45


Figura 4.7. Microsistem cu microprocesor I8086 conectat n modul "minim.
Figura 4.8. Conectarea microprocesorului I8086 n modul "maxim



46

Organizarea memoriei principale
Microprocesorul poate adresa direct 1Mo de memorie la adresele 0 0FFFFFH.
Tipuri de date memorate:

8 bii (octei)
16 bii (cuvinte)
32 bii (cuvinte duble sau pointer-i)

Nu exist restricii privind plasarea acestor date n memorie (ele pot ncepela
orice adres). n funie de plasarea datelor la scheme pare sau impare UCP va executa
automat numrul de cicluri necesare pentru citirea lor.
Convenia de reprezentare a datelor multi-cuvnt n memorie este cea standard la
microprocesoarele INTEL: octeii mai puin semnificativi sunt plasai la adrese mai mici
(n grupul de octei alocat cuvntului).
Memoria lui I 8086 este segmentat.
Pentru generarea adresei fizice AF, BIU execut operaia dat de relaia:

AF = S x 2
4
+ O (4.1)

S = coninutul registrului segment
O = adresa efectiv (offset)
Se impune deci restricia ca un segment s nceap la o adres absolut multiplu
de 16.

Registrele segment pot fi implicite sau explicite (la dorina programatorului):

Tipul de referire la
memorie
Registrul
segment
utilizat implicit
Alte registre
utilizate
OFFSET
(adresa relativ n
cadrul
segmentului)
FETCH CS _ IP
* Operaii cu stiva SS _ SP
* Date variabile (cu
excepiile de mai jos)
DS CS, SS, ES Adresa efectiv
* Sursa la operaiile cu
iruri
DS CS, SS, ES SI
* Destinaia la operaiile
cu iruri
ES _ DI
* BP folosit ca registru de
baz
SS CS, DS, ES Adresa efectiv

Utilizarea altor registre segment fa de cele utilizate implicit trebuie indicat de
programator n instruciunea respectiv cu ajutorul unor prefixe speciale (1 octet).




47

Memoria stiv
Stiva sistemului se organizeaz n memoria principal. ntr-o aplicaie pot exista
mai multe stive (fiecare cu dimensiunea maxim de 64Ko). Adresa de baz a stivei
(valoarea iniial a registrului SP ntr-un program) este diferit de adresa de baz a
segmentului de memorie alocat stivei.
Modul de organizare al stivei microprocesorului I8086 este artat n figura 4.9.

: :
:
+ FFFF

SS Adresa de baz a
segmentului de memorie
alocat stivei
8 bii
locaii ocupate n stiv
la un moment dat
Adresa de baz a stivei
(stiva vid)
S
t
i
v


d
e

d
i
m
e
n
s
i
u
n
e

6
4

K
o

Figura 4.9. Organizarea stivei microprocesorului 8086.

Anumite zone din memoria principal a sistemului sunt rezervate pentru diferite utilizri
de ctre unitatea central.
Adrese rezervate:

0 13H = dedicate pentru ntreruperi interne;
14H 7FH = rezervate pentru dezvoltri ale familiei de componente
(rezervate de firma INTEL);
0FFFF0H 0FFFFBH = dedicate pentru instruciunile executate
resetarea procesului;
0FFFFC 0FFFFFH = rezervate de firm

Porturile de intrare / ieire (I / E)
Spaiul de adrese de intrare / ieire este separat de spaiul adreselor memoriei.
Spaiul este nesegmentat i cu dimensiunea de 64 Ko ceea ce asigur posibilitatea de
adresare direct a unui mare numr de porturi I/E cu 8 sau 16 bii.
ntr-un transfer I/E, UCP citete/scrie 16 bii/ciclu de bus dac portul I/E este
localizat la adresa par i 8 bii/ciclu dac portul I/E este localizat la adres impar.

Faciliti pentru lucru n sisteme multi-master
Facilitile pentru lucrul multi-master sunt prezentate n continuare.

Interzicerea accesului la bus a altor module master cu ajutorul
semnalului LOCK. Bus-ul se utilizeaz prin diviziune n timp,


48
ntreeserea ciclurilor de acces la bus a diverselor module master
se face la nivel de ciclu de bus (i nu la nivel de ciclu de
instruciune).
LOCK = 0 indic faptul c 8086 execut o instruciune ce nu poate fi
ntrerupt (instruciunea e prefixat LOCK ex. actualizarea unui
pointer de 4 octei).
Utilizarea liniilor RQ/GT0 i RQ/GT1
Liniile RQ/GT0 i RQ/GT1 bidirecionale permit controlul accesului
la un bus local comun mai multor procesoare. Protocolul de
cerere/cedare a bus-ului decurge astfel:
o procesorul solicitator cere acces prin generarea unui impuls
(RQ=0) ctre UCP;
o UCP (la sfritul ciclului main curent) cedeaz bus-ul i
rspunde prin impulsul (GT=0);
o dup terminarea accesului, cellalt procesor elibereaz bus-ul
informnd asupra acestui fapt printr-un nou impuls (GT=0).

Sistemul de ntreruperi
Clasificarea ntreruperilor
ntreruperile interne (software)

o INT n, unde tipul este TIP=n, n {0, ..., 255}
o INTO (INTerrupt ou Overflow), provoac o ntrerupere TIP=4 dac
flag-ul overflow a fost setat n urma apariiei unor depiri la
efectuarea operaiilor aritmetice;
o IDIV, cu TIP=0, generat automat dac apare o eroare de depire la
operaia de mprirre;
o SINGLE STEP, cu TIP=1, se genereaz automat dup execuia
fiecrei instruciuni, dac flag-ul TF (test flag) a fost setat n 1.
Acest tip de ntrerupere practic UCP n modul de lucru pas cu pas,
util pentru depanarea programelor.

ntreruperile externe (hardware) se genereaz prin aplicarea unor semnale pe
intrrile de ntrerupere.

o NMI pentru ntreruperile nemascabile, cu TIP=2; semnalul este
activ pe frontul pozitiv.
o INTR pentru ntreruperi mascabile (prin flag-ul IF din registrul de
flag-uri). Semnal activ prin nivel logic 1; acesta trebuie meninut
activ pn la recunoaterea ntreruperii de ctre UCP. Tipul
ntreruperii externe mascabile se genereaz de ctre dispozitivul
ntreruptor (de exemplu controlerul de ntreruperi I8259A).

Servirea ntreruperilor
Tipul unei ntreruperi este utilizat de ctre UCP ca adres relativ ntr-un tablou
de pointer-i, amplasat n memoria principal ntre adresele 03FFH (256x4 octei).


49
Un pointer conine adresa logic pentru servirea ntreruperii. Pentru a efectua saltul la
aceast adres se efectueaz urmtoarele operaii:

IP TP(T+1,T); CSTP(T+3, T+2)
T=4xTIP

TP(+1, ) reprezint cuvntul cu 16 bii format din octeii de adres -1 i
din tabloul de pointer-i. Efectul este asemntor cu cel al instruciunii CALL
intersegment
Prioritile de servire pentru diversele tipuri de ntreruperi (care pot apare
eventual simultan) rezult din organigrama alturat.
Ciclurile INTA pentru ntreruperile externe mascabile (INTR) pe durata
celor dou cicluri INTA, semnalul LOCK este activ. Vectorul de ntrerupere este n
acest caz numrul indicator al tipului i este citit de ctre UCP n al doilea ciclu
INTA.
n figura 4.10 se prezint modul de alocare n memorie a vectorilor de
ntrerupere.
TIP I
(SINGLE STEP)
TIPO (DIV)
TIP 2 (NMI)
TIP 3 (INSTR DE INTR
CU 1 OCTET)
TIP 4 (INTO)
Zon rezervat
pentru compatibiliti
cu alte produse INTEL
.
.
.

16 bii
IP
CS
0
2
4
6
8
A
C
E
10H
12H
ntreruperea break
point destinat
depanrii programelor
7EH
8OH
3FEH
Figura 4.10. Tabel de pointer-i pentru ntreruperi

n figura 4.11 se prezint organigrama corespunztoare servirii unei ntreruperi
de ctre unitatea central I8086.








50

intreruperi
interne
Completeaz
instruciunea
curent
NMI ?
TF=1 ?
INTR ?
NU
Da
NU
NU IF=1 ?
NU Da
Execut
instruciunea
urmtoare
Confirm receptarea
ntreruperii (primul ciclu
INTA)
Citete tipul ntreruperii
(al doile ciclu INTA)
Salveaz n stiv flag-urile
TEMP TF IF, IF 0
Salveaz n stiv CS, IP
CS, IP Adresa de sevire
NMI ?
TEMP=1
Procedeu de servire a
ntreruperii
Da
Da
NU
NU
Reia programul
ntrerupt
Restabilete IP, CS
Restabilete flag-urile
Da
Da
(definit de
programator)
* TEMP = variabil intern pentru
memorarea valorii lui TF (TEST FLAG)
Figura 4.11. Organigrama servirii unei ntreruperi.

Iniializarea unitii centrale. Starea HALT. Utilizarea intrrii TEST
1 pe RESET determin:

CS FFFFH, IP 0 ; ceea ce determin generarea adresei fizice 0FFFF0H cu
adres absolut a primei instruciuni executat de I8086.
Intreruperile mascabile se invalideaz IF 0.



51
HALT (la apariia instruciunii) stopeaz toate activitile UCP pn
ce apare o ntrerupere sau semnal RESET. n aceast sare o cerere de
bus este (HOLD=1) este recunoscut i i acceptat de ctre UCP.
Intrarea TEST este testat de instruciunea WAIT i dac TEST 0,
atunci procesorul ateapt (ntr-o stare inactiv) pn ce TEST 0.
n acest timp, se pot servi ntreruperile aprute la intrri, dup care se
reia ateptarea. Intrarea TEST poate servi pentru sincronizarea UCP
cu evenimente externe.

4.4. Procesoare de semnal digitale

O dat cu dezvoltarea tehnicii digitale i n special cu creterea performanelor
microprocesoarelor s-a dezvoltat un segment aparte de componente numerice
specializate n prelucrarea numeric a semnalelor. Astfel de componente au cptat
numele de procesoare de semnal digitale, prescurtat DSP (Digital Signal Processor).
Astfel prescurtarea DSP capt dubl semnificaie; una din semnificaii se refer la
tehnica prelucrrii semnalelor n format numeric iar cea de-a doua semnificaie se refer
la dispozitivele (procesoarele) specializate, destinate implementrii tehnicilor de
prelucrare a semnalelor n format numeric.
Un procesor destinat prelucrrii numerice a semnalelor reprezint o unitate
central specializat care este capabil s execute cu vitez ridicat secvene de
instruciuni cum sunt cele de deplasare a coninutului unui registru i adunarea
coninutului acestuia sau cele de nmulire i adunare care sunt operaii uzuale n
algoritmii de prelucrare a semnalelor.
Spre deosebire de un microprocesor care este o unitate central de uz general, un
dispozitiv DSP este destinat anumitor domenii de utilizare definite de tehnica de
prelucrare numeric a semnalelor avnd instruciuni speciale, adaptate scopului propus
iar aplicaiile sunt executate n timp real ceea ce presupune un timp scurt de execuie a
instruciunilor i o structur special a sistemului de ntreruperi. Pe de alt parte, un
dispozitiv DSP lucreaz de obicei ntr-o structur ierarhizat de calcul n care
dispozitivul DSP asist un microprocesor de uz general.
Dei exist o mare varietate de dispozitive DSP acestea sunt proiectate cel mai
adesea s ndeplineasc aceleai funcii de baz. Rezult c exist un set de caracteristici
de baz pentru toate procesoarele DSP, caracteristici de baz care pot fi mprite n trei
categorii:

dispozitivele sunt specializate n efectuarea cu vitez ridicat a
operaiilor aritmetice;
sunt prevzute cu mecanisme diversificate de transfer a datelor din i
ctre lumea real;
sunt utilizate arhitecturi cu acces multiplu la memorie.

Activitile unui dispozitiv DSP impun efectuarea unor operaii specifice cum
sunt: (figura 4.12):

adunri i nmuliri;


52
ntrzieri;
manipulri de matrice.

Z
-1
Z
-1
c[0]
c[1]
c[2]
Fig. 4.12. Operaii specifice prelucrrii digitale a
semnalelor
adunri
nmuliri ntrzieri
lucru cu matrice
Operaiile de adunare i de nmulire sunt folosite pentru:

extragerea simultan a doi operanzi;
realizarea adunrii i nmulirii (de obicei simultan);
stocarea rezultatului sau reinerea acestuia n vederea repetrii
operaiei.

ntrzierile sunt folosite pentru reinerea unei valori pentru utilizare ulterioar.
Manipularea matricelor este necesar pentru:

extragerea operanzilor aflai n locaii succesive de memorie;
copierea datelor de la memorie la memorie.

Aceast suit de operaii sunt de obicei executate de dispozitivul DSP astfel:

executarea n paralel a operaiilor de nmulire i adunare;
acces multiplu la memorie n scopul extragerii simultane a doi
operanzi i memorarea rezultatului;
folosirea mai multor registre pentru reinerea temporar a datelor;
generarea eficient a adreselor pentru utilizarea matricelor;
faciliti speciale cum sunt ntrzierile sau adresarea circular.

Pentru realizarea operaiilor aritmetice dispozitivele DSP au o structur special,
de mare vitez, a unitii logice i aritmetice deoarece ele trebuie s execute simultan
adunri i nmuliri. Din acest motiv dispozitivele DSP au de regul o structur special
a circuitelor de adunare i nmulire ce permite acestor operaii n paralel, de ctre o
singur instruciune, aa cum este artat n figura 4.13.
ntrzierea permite ca valoarea intermediar rezultat n urma calculelor s fie
memorat pentru o utilizare ulterioar. Acest lucru poate fi necesar, de exemplu, cnd
trebuie calculat un total; totalul poate fi pstrat n procesor pentru a evita scrierile i
citirile repetate la memorie. Din acest motiv procesoarele DSP au un numr relativ mare
de registre, n virgul fix sau virgul mobil, care pot fi folosii pentru stocarea
valorilor intermediare.


53
Utilizarea matricelor permite ca datele s poat fi manevrate eficient n locaii
succesive de memorie. Acest lucru necesit generarea adresei de memorie unde se
gsete valoarea urmtoare i pentru aceasta dispozitivele DSP au registre de adrese ce
sunt folosii pentru pstrarea adresei i care permit generarea adresei urmtoare n mod
eficient.
P S
conversie de tip
s2
s3
s0
s1
magistral unic
nmulirea i adunarea
lucreaz n paralel
Fig. 4.13. Fluxul de date la realizarea nmulirii i adunrii

TABELUL 4.2.
Simbol
Adresare Observaii
*rP adresare indirect
prin registru
este citit data din memorie indicat de adresa coninut
n registrul rP
*rP++ postincrementare dup citirea datei din memorie, adresa din registrul rP
este incrementat, n aa fel nct s indice adresa
urmtoarei date din matrice
*rP-- postdecrementare dup citirea datei din memorie, adresa din registrul rP
este decrementat, n aa fel nct s indice adresa
urmtoarei date din matrice
*rP++r
I
postincrementare
n funcie de
registru
dup citirea datei din memorie, adresa coninut n
registrul rP este incrementat cu valoarea coninut de
registrul rl, adresa obinut indicnd noua valoare ce
urmeaz a fi citit din memorie further down the array
*rP++r
Ir
cu bii inversai dup citirea datei din memorie, valoarea ce indic adresa
este incrementat pentru a indica valoarea urmtoare din
matrice, biii adresei fiind aezai n ordine invers

Posibilitatea generrii eficiente a unei adrese noi este o facilitate caracteristic a
procesoarelor DSP. n mod obinuit adresa urmtoare poate fi generat pe durata


54
extragerii sau stocrii datelor. Procesoarele DSP au un set bogat de instruciuni pentru
generarea adreselor. Un exemplu de astfel de instruciuni este dat n tabelul 4.2.
Sintaxa n limbaj de asamblare pentru instruciunile prezentate n tabelul 4.2 este
foarte asemntoare cu limbajul C. De cte ori un operand este extras din memorie prin
utilizarea modului de adresare indirect prin registre, registrul de adres poate fi
incrementat pentru a indica urmtoarea valoare necesar din matrice. Incrementarea
adresei este liber nu sunt implicate resurse pentru calculul adresei i mai multe
astfel de adrese pot fi generate ntr-o singur instruciune. Generarea adreselor este un
factor important n creterea vitezei procesoarelor DSP i a operaiilor specializate ale
acestora.
Ultimul mod de adresare cu bii inversai arat ct de specializate pot fi
procesoarele DSP. Adresarea cu inversare de bii este necesar atunci cnd un tabel de
valori este reordonat prin inversarea ordinii biilor de adres astfel:

inversarea ordinii biilor n fiecare adres;
amestecarea datelor prin inversarea biilor, adresarea fcndu-se n
ordine cresctoare.

O astfel de operaie este utilizat exclusiv la calcului transformatei Fourier
rapide. Se poate spune deci, c dispozitivele DSP sunt proiectate special pentru a
calcula n mod eficient transformata Fourier rapid.
Din punct de vedere al legturii unitii centrale cu mediul extern, un dispozitiv
DSP este prevzut cu mai multe interfee interne (on chip) care lucreaz ntr-un sistem
specializat de ntreruperi. Cele mai frecvente interfee ale unui dispozitiv DSP sunt:

intrri/ieiri numerice;
convertoare analog-numerice (CAN);
convertoare numeric-analogice (CNA);
comparatoare;
numrtoare programabile;
interfee seriale sincrone de mare vitez pentru conectarea
perifericelor externe sau a dispozitivelor DSP;
interfee seriale standard de tip RS-232 pentru lucrul pe port serial
asincron.

4.4.1. Procesorul de semnal digital, TMS320F240

Circuitul DSP de tip TMS320F240 este un circuit integrat pe scar foarte larg
n tehnologie CMOS i se compune din trei uniti funcionale: unitatea central de tip
C2xx DSP, memoria intern i unitatea circuitelor periferice. De asemenea, n afar de
aceste uniti funcionale sunt prevzute o serie de faciliti sistem care se refer la
gestionarea memoriei, iniializarea blocurilor, ntreruperi, controlul intrrilor/ieirilor,
generarea ceasului intern i comutarea n regim de consum redus. Circuitul
TMS320F240 utilizeaz o arhitectur Harvard avansat pe folosirea a dou magistrale
separate: de date i de program.


55
n continuare sunt prezentate foarte sumar principalele faciliti oferite de
circuitul DSP n scopul formrii unei imagini asupra structurii complexe a acestuia:

unitate central de tip C2xx cu arhitectur paralel ce ofer
posibilitatea execuiei n paralel a instruciunilor, posibilitatea de
prelucrare a mai multor fluxuri de informaii simultan, execuia
instruciunilor ntr-un singur ciclu main (inclusiv a nmulirii);
memorie de program inclus n circuitul integrat de 16KB (cuvinte
de 16 bii) de tip flash EEPROM i memorie RAM cu acces dublu
pentru program/date de 544 cuvinte de 16 bii;
oscilator extern de 10MHz, bucla PLL intern a DSP lucrnd la
20MHz;
28 de intrri/ieiri numerice;
dou convertoare analog-numerice pe 10 bii ce pot lucra simultan,
numrul intrrilor analogice fiind extins prin multiplexare la 16;
trei numrtoare programabile independente pe 16 bii;
interfa serial sincron de mare vitez pentru conectarea
perifericelor externe;
interfa serial standard de tip RS-232 pentru lucrul pe port serial
asincron;

Memorie Flash
EEPROM
Memorie RAM cu
acces dublu
Interfaa cu
memoria extern
Numrtoare
programabile de uz
general
Uniti de
comparare
Unitate central de
tip C2xx
Modul interfa de
sistem
CAN dublu pe
10 bii
Interfa serial
sincron
Interfa serial
asincron
Watchdog
Timer
Fig. 4.14. TMS320F240 schema bloc
Magistrala de date
Magistrala de program
Magistrala perifericelor
Intrri/Ieiri
numerice


56
Schema bloc simplificat a circuitului DSP de tip TMS320F240 este prezentat
n figura 4.14.
Prezena celor dou magistrale, magistrala de date i magistrala de program
permite prelucrarea simultan a instruciunilor de program i a datelor.
Organizarea memoriei procesorului este prezentat n tabelele 4.3, 4.4 i 4.5.
TABEL 4.3.
Memorie Program
Hex
0000
003F
Intreruperi
(Memorie extern)
0040
FDFF

Memorie extern
FE00



FEFF
On-Chip DARAM B0
(CNF=1)
sau
Memorie extern
(CNF=0)
FF00
FFFF

Rezervat
MP/ MC =1
Mod microprocesor
TABEL 4.4.
Memorie Program
Hex
0000
003F
Intreruperi
On-Chip Flash
0040
3FFF

Memorie Flash On-
Chip
4000
FDFF

Memorie extern
FE00



FEFF
On-ChipDARAM B0
(CNF=1)
sau
Memorie extern
(CNF=0)
FF00

FFFF

Rezervat
MP/ MC =0
Mod Microcomputer
Dispozitivul DSP este prevzut cu un pin MP/ MC (microprocessor mode /
microcomputer mode) cu ajutorul cruia se pot obine dou configuraii ale memoriei de
program:

MP/ MC = 1 (microprocessor mode) modul n care memoria on chip
flash i ROM sunt dezactivate (Tabelul 4.3);
MP/ MC = 0 (microcomputer mode) modul n care memoria on chip
flash i ROM sunt activate (Tabelul 4.4).

Bitul CNF care se gsete n registrul de stare ST1 permite activarea memoriei
RAM cu acces dublu on chip, blocul 0 (CNF = 1) sau a memoriei externe (CNF = 0).
Organizarea memoriei de date este artat n tabelul 4.5. Se observ c n
memoria de date vom gsi corespondentul registrelor unitii centrale i a perifericelor
ceea ce permite lucrul cu acetia identic cu lucrul cu orice alt locaie de memorie.
Acest fapt duce la creterea vitezei de execuie i simplitatea programrii.
mprirea memoriei n dou tipuri: memorie de program i memorie de date
impune ca orice program s fie alctuit din dou segmente corespunztoare acestor
tipuri, amestecarea instruciunilor cu datele nefiind permis.



57

Organizarea ntreruperilor unitii
centrale
Sistemul de ntreruperi externe ale
unitii centrale (miezul procesorului
C2xx - CPU) este format din ase
ntreruperi mascabile (INT1-INT6) i una
nemascabil (NMI). Prioritatea maxim o
are ntreruperea NMI iar prioritile
ntreruperilor mascabile scad de la INT6 la
INT1, INT1 avnd prioritatea minim.
Fiecrei ntreruperi i corespunde
un bit n registrul fanioanelor de
ntrerupere a unitii centrale (IFR) i
fiecrei ntreruperi mascabile i
corespunde un bit n registrul mtilor
unitii centrale (IMR). O ntrerupere
mascabil este mascat (nu va genera o
ntrerupere ctre miez) cnd bitul
corespunztor n IMR este 0. De asemenea
miezul procesorului mai are un bit pentru
mascarea general a ntreruperilor (INTM)
n registrul de stare ST0. Cnd INTM este
setat la 1 toate ntreruperile mascabile sunt
dezactivate.

Rspunsurl la ntrerupere a miezului
C2xx
Cnd apare o tranziie de la unu la
zero pe o intrare de ntrerupere a miezului,
bitul corespunztor al fanionului din IFR
este setat n 1. O ntrerupere este generat
ctre miez dac aceasta nu este mascat -
ntreruperile globale sunt permise
(INTM=0) - i nu exist o alt ntrerupere
nemascat de prioritate mai mare n
ateptare (acest lucru nsemnnd c nu exist nici un fanion setat al unei ntreruperi
nemascate de prioritate mai mare). Fanionul este ters de ctre hardware o dat ce
cererea de ntrerupere este trimis ctre miez. Un fanion de ntrerupere poate fi de
asemenea ters de ctre programul utilizator scriind un 1 n bitul corespunztor.
TABEL 4.5.
Memorie Date
Hex
0000
005F

Regitrii i zon rezervat
0060
007F

Memorie On-Chip DARAM B2
0080
01FF

Rezervat
0200



02FF

Memorie On-Chip DARAM B0
(CNF=0)
sau
zon rezervat (CNF=1)
0300
03FF

Memorie On-Chip DARAM B1
0400
07FF

Rezervat

0800
6FFF

Ilegal
7000


73FF

Regitrii perifericelor (System,
WD, ADC, SPI, SCI, Intreruperi,
I/O)
7400

743F

Regitrii perifericelor
(Manager-ul de evenimente)
7440
77FF

Rezervat
7800
7FFF

Ilegal
8000
FFFF

Memorie extern








58
4.5. Microcalculatoare integrate, microcontrolere

4.5.1. Prezentare general

Electronica digital se bazeaz astzi n bun msur pe utilizarea circuitelor
integrate VLSI (Very Large Scale Integration circuite integrate pe scar foarte larg)
de tipul microprocesor, microcalculator sau microcontroler.
Dintre acestea se detaeaz net microcalculatoarele integrate i
microcontrolerele care nglobeaz n structura hard pe lng o unitate central puternic
cu faciliti speciale pentru lucrul n timp real i periferice de tipul convertoarelor A/D,
interfee paralele, interfee seriale, sisteme de generare a impulsurilor modulate, timere,
circuite de supraveghere a duratei de execuie a programelor, executiv de timp real
integrat etc. ceea ce uureaz mult munca proiectantului i duce la creterea substanial
a performanelor sistemului.
Nu exist o diferen net ntre microcalculatoare integrate i microcontrolere.
Microcontrolerele prin setul de instruciuni mai redus, sunt mai intim legate de
aplicaiile de control, urmrire i automatizare industrial.
ntre microcalculatoarele integrate mai cunoscute se pot enumera: INTEL
8048/8035, MOTOROLA 6801 i 6805 i familia ZILOG Z8.
INTEL 8048 a fost primul microcalculator integrat; acest dispozitiv conine ntr-
o capsul de 40 de pini urmatoarele:

o unitate central de 8 bii;
o memorie RAM de 64 octei;
o memorie ROM de 1 koctet;
un numr de 27 de linii de I/E (Intrare/iEire);
un oscilator pilot;
un circuit de ceas de 8 bii.

Setul de instruciuni este tributar ntr-o oarecare masur primului microprocesor
de uz general I8080, cum de altfel este i concepia hardware-ului, cuprinde: operaii cu
acumulatorul, transferuri de date, salturi, chemri i reveniri din subrutine, operaii de
intrare/ieire i operaii de control cu registre i indicatori.
MC 6801 este un microcalculator integrat de 8 bii care s-a dezvoltat din familia
microprocesorului de uz general MC6800 (MOTOROLA).
Instruciunile microcalculatorului integrat MC6801 sunt compatibile cu
instruciunile microprocesorului mam. Timpul de execuie a fost redus i cteva noi
instruciuni au fost adugate; ntre acestea i instruciunea de nmulire fr semn.
MC6801 poate funciona fie ca microcalculator de sine stttor fie ca
microcalculator de uz general ce poate utiliza o memorie extern de cel mult 64ko.
MC6841 include pe lng microprocesorul propriu-zis:

o memorie fix (ROM) de 2 ko;
o memorie citete/scrie (RAM) de 128 de octei;
un numr de 29 linii de I/E;


59
trei circuite de ceas programabile, de 16 bii fiecare;
un oscilator pilot.

Familia ZILOG Z8 cuprinde o variant standard Z8611 i mai multe versiuni de
dezvoltare. Principalele caracteristici ale acestei versiuni sunt:

43 de tipuri de instruciuni;
124 de registre de uz general, 4 registre de I/E, 16 registre de
control i configurare;
32 de linii de intrare/ieire;
un circuit de intrare/ieire serie;
2 circuite de ceas (fiecare ceas avnd un divizor programabil de 8
bii i un predivizor de 6 bii);
6 ntreruperi vectorizate, mascabile i aranjabile n ir de
prioriti;
timp de execuie mediu a instruciunilor de 2,2 s.

Dintre microcontrolerele reprezentative se pot aminti:

microcontrolerul AVR AT90S2313 al firmei ATMEL
microcontrolerul PIC 16F87X al firmei MICROCHIP
TECHNOLOGY ;

4.5.2. Microcontrolerul AT90S2313

Microcontrolerul AT90S2313 are o memorie FLASH programabila n sistem de 2K
octei.
Caracteristici principale:

Bazat pe arhitectura AVR @ RISC cu performane ridicate i consum redus:
o 118 instruciuni puternice - majoritatea se execut ntr-un ciclu main;
o 32 x 8 registre generale de lucru;
o viteza pan la 10 MIPS @ 10 MHz.
Memorie nevolatil de date:
o Mrimea memoriei Flash: 2K octei programabil In sistem;
suport 1 000 cicli de tergere/nscriere;
o 128 octei de Memorie SRAM.
o 128 octei de memorie EEPROM programabil In sistem;
suport 1 000 000 cicli de tergere/nscriere;.
o Protecie programabil pe 8 bii a memoriei de date Flash si EEPROM.
Periferice:
o un temporizator/numrtor cu prescaler separat pe 8 bii;
o un temporizator/numrtor cu prescaler separat pe 16 bii;
o comparator, moduri de captur i PWM pe 8, 9 i 10 bii;
o comparator analogic on-chip;


60
o temporizator Watchdog programabil cu oscilator ncorporat in chip;
o interfa serial SPI pentru programarea In-system;
o port serial UART full duplex.
Funcii speciale ale microcontrolerului:
o consum redus n caz de inactivitate precum i power-down de
economisire a energiei;
o surse de ntrerupere extern i intern.
Specificaii:
o tehnologie CMOS - consum redus, vitez mare;
o mod de operare complet static.
Consum de energie la 4 MHz, 3V, 25C:
o activ: 2.8 mA;
o inactiv: 0.8 mA;
o power-down: <1 A.
Intrri/Ieiri i Capsula:
o 15 linii de intrare/ieire programabile;
o capsula PDIP si SOIC de 20 pini.
Tensiuni de operare:
o 2.7 - 6.0V (AT90S2313-4);
o 4.0 - 6.0V (AT90S2313-10).
Viteza de operare:
o 0 - 4 MHz (AT90S2313-4);
o 0 - 10 MHz (AT90S2313-10).

Configuraia pinilor:


Descrierea pinilor microcontrolerului:

VCC Pin de alimentare (tensiune pozitiva).
GND Pin de mas.
Portul B (PB7..PB0). Portul B este un port I/O bidirecional pe 8 bii.
La ieirile terminalelor se pot configura rezistoare pull-up (legare
software la plusul sursei de alimentare a rezistoarelor interne
selectabil pentru fiecare pin in parte). PB0 i PB1 de asemenea


61
servesc ca intrare pozitiv (AIN0) i intrare negativ (AIN1), pentru
comparatorul analogic in chip. Portul B furnizeaz la ieire un curent
de 20 mA astfel nct poate fi legat direct la un afior LED. Atunci
cnd pinii PB0 la PB7 sunt utilizai ca intrri i din exterior sunt
comandai cu semnal digital LOW, ei vor consuma energie daca
rezistenele interne de pull-up sunt activate. Dup un Reset pinii
Portului B vor fi n starea de nalt impedan chiar dac semnalul de
ceas nu este activ.
Portul D (PD6..PD0). Portul D posed apte pini bidirecionali de I/O
(curent debitat de 20 mA) cu rezistene pull-up. Pinii portulul D intr
n starea de nalt impedan n cazul acionrii Resetului.

Figura 4.15. Schema bloc a microcontrolerului AT90S2313


62
RESET. Pin de intrare. Un semnal LOW pe acest pin pe o durat de
50 ns va genera un Reset, chiar daca semnalul de clock nu este activ.
Un semnal mai scurt nu garanteaza conditia de Reset.
XTAL1. Intrare inversat pe un oscilator amplificat i intrare n
circuitul de semnal de ceas.
XTAL2. Ieire inversat de la un amplificator oscilator.

AT90S2313 este un microcontroler CMOS pe 8 bii, cu consum redus bazat pe
arhitectura AVR RISC. Executnd instruciuni puternice ntr-un ciclu main,
AT90S2313 execut aproape 1 milion de instruciuni pe secund.
Miezul AVR combin setul bogat de instruciuni cu 32 de registre de lucru
generale. Toate cele 32 de registre sunt conectate direct la Unitatea Aritmetic i Logic
(ALU), astfel este permis accesarea a dou registre independente ntr-un singur ciclu
main. Arhitectura rezultat este mult mai eficient din punct de vedere al codului
astfel nct se obine o putere de calcul pn la zece ori mai mare dect cel al arhitecturii
microcontrolerelor CISC.
n modul "inactiv procesorul se oprete n timp ce memoria SRAM,
temporizatorii/numrtorii, portul SPI i ntreruperile de sistem continu s funcioneze.
n modul "power-down microcontrolerul salveaz coninutul registrelor i
oprete oscilatorul, se opresc toate funciile din chip pn la urmtoarea ntrerupere
extern sau un Reset hardware.
Microcontrolerul este fabricat n tehnologia memorie nevolatil de densitate
nalta. Memoria Flash intern, programabil In sistem permite reprogramarea In
sistem utiliznd interfaa serial SPI sau un programator de memorii nevolatile
convenional.

4.5.3. Microcontrolerul PIC 16F877

Microcontrolere de 28/40-Pini cu 8-Bit CMOS FLASH.
Specificaiile unitii centrale:

unitate centrala (CPU) de tip RISC;
35 de instruciuni;
toate instruciunile se execut ntr-un ciclu al unitii centrale, cu
excepia instruciunilor de ramificare a programului care se execut n
dou cicluri CPU;
frecvena de ceas: 20 MHz (durata ciclului instruciunii de 200 ns);
memoria:
o maximum 8k cuvinte de 14 bii de memorie FLASH;
o maximum 368 octei de memorie de date - Data Memory -
(RAM);
o maximum 256 octei de memorie de date EEPROM;
microcontrolerul este compatibil pin la pin cu PIC16C73B/74B/76/77
posibilitatea tratrii ntreruperilor de la 14 surse de ntrerupere;
stiv hardware cu opt nivele;


63
moduri de adresare direct, indirect i relativ;
Power-on Reset (POR) reset la aplicarea tensiunii de alimentare;
Power-up Timer (PWRT) temporizare la aplicarea tensiunii de
alimentare, i Oscillator Start-up Timer (OST) stabilizarea
oscilatorului la pornire;
Watchdog Timer (WDT) cu propriul oscilator RC on-chip pentru
funcionare sigur;
mecanism de protecie a codului programabil;
mod SLEEP pentru economisirea energiei;
opiuni selectabile pentru oscilator;
tehnologie CMOS FLASH/EEPROM de consum redus i de vitez
ridicat;
circuitul este n ntregime de tip static;
In-Circuit Serial Programming (ICSP) - programarea serial direct a
circuitului prin intermediul a doi pini;
posibilitate de programare serial cu o singur tensiune de 5V;
In-Circuit Debugging depanare direct la circuit prin intermediul
a doi pini;
acces scriere/citire a procesorului la memoria de program;
domeniul tensiunilor de alimentare: 2,0V la 5,5V;
curent maxim absorbit: 25mA;

Conexiunile externe






64

Microcontrolerele PIC16F876/873 au 28 de pini iar microcontrolerele
PIC16F877/874 au 40 de pini. Portul paralel slave nu este implementat la dispozitivele
cu 28 de pini.

Descrierea pinilor pentru PIC16F874 i PIC16F877
Numele pinului
DIP
Nr. pin
PLCC
Nr. pin
tip
I/O/P
Tip buffer
Descriere
OSC1/CLKIN 13 14 I ST/CMOS
(4)
Intrarea oscilatorului cu
cristal/surs extern de ceas
OSC2/CLKOUT 14 15 O - Ieirea oscilatorului cu cristal.
Conectarea la cristal sau la
rezonator n modul oscilator cu
cristal. n modul RC, pinul OSC2
furnizeaz CLKOUT care are 1/4
din frecvena la OSC1 i indic
durata unui ciclu de instruciune.
MCLR/VPP 1 2 I/P ST Intrarea resetului principal
Master Clear (Reset) sau intrarea
tensiunii de programare. Acest pin
este activ n zero atunci cnd se
aplic RESET.


RA0/AN0

RA1/AN1

RA2/AN2/VREF-



RA3/AN3/VREF+



RA4/T0CKI


RA5/SS/AN4



2

3

4



5



6


7


3

4

5



6



7


8


I/O

I/O

I/O



I/O



I/O


I/O


TTL

TTL

TTL



TTL



ST


TTL
PORTA este un port I/O
bidirecional
RA0 sau intrarea pentru semnal
analogic 0.
RA1 sau intrarea pentru semnal
analogic 1.
RA2 sau intrarea pentru semnal
analogic 2 sau referina negativ a
semnalului analogic.
RA3 sau intrarea pentru semnal
analogic 3 sau referina pozitiv a
semnalului analogic.
RA4 sau intrarea de ceas a
Timer0. Ieirea este de tip open
drain.
RA5 sau intrarea pentru semnal
analogic 4 sau selecia slave
pentru portul serial sincron.





RB0/INT

RB1
RB2
RB3/PGM


RB4





33

34
35
36


37





36

37
38
39


41





I/O

I/O
I/O
I/O


I/O





TTL/ST
(1)

TTL
TTL
TTL


TTL
PORTB este un port I/O
bidirecional. La PORTB poate fi
conectate prin program rezistene
interne la toate intrrile.
RB0 sau pin pentru ntreruperea
extern
RB1
RB2
RB3 sau intrare de programare de
tensiune sczut
Pin cu generarea unei ntreruperi
la schimbare
Pin cu generarea unei ntreruperi


65

RB5

RB6/PGC




RB7/PGD


38

39




40

42

43




44

I/O

I/O




I/O

TTL

TTL/ST
(2)




TTL/ST
(2)

la schimbare
Pin cu generarea unei ntreruperi
la schimbare sau pin In-Circuit
Debugger. Ceasul programrii
seriale.
Pin cu generarea unei ntreruperi
la schimbare sau pin In-Circuit
Debugger. Datele programrii
seriale.


RC0/T1OSO/T1C
KI


RC1/T1OSI/CCP2



RC2/CCP1


RC3/SCK/SCL



RC4/SDI/SDA


RC5/SDO

RC6/TX/CK


RC7/RX/DT



15


16



17


18



23


24

25


26


16


18



19


20



25


26

27


29


I/O


I/O



I/O


I/O



I/O


I/O

I/O


I/O


ST


ST



ST


ST



ST


ST

ST


ST
PORTC este un port I/O
bidirecional
RC0 sau ieirea oscilatorului
Timer 1 sau intrarea de ceas Timer
1
RC1 sau intrarea oscilatorului
Timer 1 sau intrarea
Capture2/Ieirea Comare2/ieirea
PWM2
RC2 sau intrarea Capture1/Ieirea
Comare1/ieirea PWM1
RC3 sau intrarea/ieirea ceasului
serial sincron pentru modurile SPI
i I
2
C
RC4 sau intrare de date SPI (n
modul SPI) sau data I/O (n modul
I
2
C)
RC5 sau ieire de date SPI (n
modul SPI)
RC6 sau ieirea de date a
transmitorului USART sau
ceasul sincron
RC7 sau intrarea de date a
transmitorului USART sau
datele sincrone






RD0/PSP0
RD1/PSP1
RD2/PSP2
RD3/PSP3
RD4/PSP4
RD5/PSP5
RD6/PSP6
RD7/PSP7






19
20
21
22
27
28
29
30






21
22
23
24
30
31
32
33






I/O
I/O
I/O
I/O
I/O
I/O
I/O
I/O






ST/TTL
(3)
ST/TTL
(3)
ST/TTL
(3)
ST/TTL
(3)
ST/TTL
(3)
ST/TTL
(3)
ST/TTL
(3)
ST/TTL
(3)
PORTD este un port bidirecional
I/O sau un port paralel slave atunci
cnd se interfaeaz cu bus-ul unui
microprocesor


RE0/RD/AN5



8



9



I/O



ST/TTL
(3)

PORTE este un port bidirecional
I/O
RE0 sau comanda de citire pentru
portul paralel slave sau intrarea


66


RE1/WR/AN6



RE2/CS/AN7


9



10


10



11


I/O



I/O


ST/TTL
(3)



ST/TTL
(3)
analogic 5
RE1 sau comanda de scriere
pentru portul paralel slave sau
intrarea analogic 6
RE2 sau comanda de selecie
pentru portul paralel slave sau
intrarea analogic 7
VSS 12,31 13,34 P - Masa (referina de tensiune) pentru
pinii digitali I/O
VDD 11,32 12,35 P - Tensiunea de alimentare pozitiv
pentru pinii digitali I/O
NC - 1,17,
28,40
- Aceti pini nu sunt conectai
intern. Aceti pini trebuie s
rmn neconectai

Legend: I = intrare O = ieire I/O = intrare/ieire P = alimentare
- = nefolosit TTL = intrare TTL ST = intrare trigger Schmitt
SEMNAL = semnalul SEMNAL negat

Not:
1: acest buffer este o intrare trigger Schmitt cnd este configurat ca ntrerupere
extern;
2: acest buffer este o intrare trigger Schmitt cnd este folosit n modul de
programare serial;
3: acest buffer este o intrare trigger Schmitt cnd este configurat I/O de uz general
i ca intrare TTL cnd este folosit n modul port paralel slave (pentru interfaarea
cu magistrala unui microprocesor);
4: acest buffer este o intrare trigger Schmitt cnd este configurat n modul oscilator
RC i intrare CMOS n celelalte cazuri.

Caracteristici principale PIC16F873 PIC16F874 PIC16F876 PIC16F877
Frecvena de lucru DC-20 MHz DC-20 MHz DC-20 MHz DC-20 MHz
RESET (ntrzieri)
POR, BOR
(PWRT,
OST)
POR, BOR
(PWRT,
OST)
POR, BOR
(PWRT,
OST)
POR, BOR
(PWRT,
OST)
Memoria de program
FLASH
(cuvinte de 14 bii)
4k 4k 8k 8k
Memoria de date (octei) 192 192 368 368
Memoria de date
EEPROM
(octei)
128 128 256 256
ntreruperi 13 14 13 14
Porturi I/O
Porturile
A,B,C
Porturile
A,B,C,D,E
Porturile
A,B,C
Porturile
A,B,C,D,E
Timer-e 3 3 3 3
Module
Captur/Comparare/PWM
2 2 2 2


67
Comunicaie serial
MSSP,
USART
MSSP,
USART
MSSP,
USART
MSSP,
USART
Comunicaie paralel - PSP - PSP
Modul de conversie
analog-digital pe 10 bii
5 canale 8 canale 5 canale 8 canale
Set de instruciuni
35
instruciuni
35
instruciuni
35
instruciuni
35
instruciuni

Organizarea memoriei
Microcontrolerul are 3 blocuri de memorie. Memoria de program i memoria de
date au magistrale separate i deci se poate realiza accesul simultan la date i la
program.
Contorul de program are 13 bii ce poate adresa un spaiu de memorie program
de 8K x 14 bii. Accesarea locaiilor n afara spaiului fizic al memoriei implementate va
produce o adresare wraparound.
Vectorul RESET este 0000h iar vectorul de ntrerupere este 0004h.
Memoria este paginat iar paginile sunt:

pagina 0 la adresele 0005h la 07FFh inclusiv;
pagina 1 la adresele 0800h la 0FFFh inclusiv;
pagina 2 la adresele 1000h la 17FFh inclusiv;
pagina 3 la adresele 1800h la 1FFFh inclusiv.

Organizarea memoriei de date
Memoria de date este mprit n 4 bank-uri ce conin registrele de uz general
(General Purpose Registers) i registrele funciilor speciale (Special Function
Registers).
Selecia bank-urilor se face cu ajutorul biilor RP1 (STATUS<6>) i RP0
(STATUS<5>).

RP1:RP0 Bank
00 0
01 1
10 2
11 3

Fiecare bank din memoria static are 128 de octei (7Fh). Locaiile la adresele
mici sunt rezervate registrelor funciilor speciale (SFR) iar sub acestea se gsesc registre
de uz general (GPR). Fiecare bank are propriile registre SFR dar anumite registre SFR
dintr-un bank se pot gsi i ntr-un alt bank pentru reducerea dimensiunii codului i
pentru acces mai rapid la aceti registre.
Registrele de uz general pot fi accesai att n mod direct ct i indirect prin
intermediul registrelor de selecie: File Select Register (FSR).





68

Harta registrelor microcontrolerelor PIC16F877/876
Bank 0 Bank 1 Bank 2 Bank 3
Adresa
de
mem.
Registrul
din
memorie
Adresa
de
mem.
Registrul din
memorie
Adresa
de mem.
Registrul
din
memorie
Adresa
de
mem.
Registrul din
memorie
00h
adresare
indirect
(*)
80h
adresare
indirect
(*)
100h
adresare
indirect
(*)
180h
adresare
indirect
(*)
01h TMR0 81h OPTION_REG 101h TMR0 181h OPTION_REG
02h PCL 82h PCL 102h PCL 182h PCL
03h STATUS 83h STATUS 103h STATUS 183h STATUS
04h FSR 84h FSR 104h FSR 184h FSR
05h PORTA 85h TRISA 105h 185h
06h PORTB 86h TRISB 106h PORTB 186h TRISB
07h PORTC 87h TRISC 107h 187h
08h PORTD
(1)
88h TRISD
(1)
108h 188h
09h PORTE
(1)
89h TRISE
(1)
109h 189h
0Ah PCLATH 8Ah PCLATH 10Ah PCLATH 18Ah PCLATH
0Bh INTCON 8Bh INTCON 10Bh INTCON 18Bh INTCON
0Ch PIR1 8Ch PIE1 10Ch EEDATA 18Ch EECON1
0Dh PIR2 8Dh PIE2 10Dh EEADR 18Dh EECON2
0Eh TMR1L 8Eh PCON 10Eh EEDATH 18Eh rezervat
(2)
0Fh TMR1H 8Fh 10Fh EEADRH 18Fh rezervat
(2)
10h T1CON 90h 110h 190h
11h TMR2 91h SSPCON2 111h 191h
12h T2CON 92h PR2 112h 192h
13h SSPBUF 93h SSPADD 113h 193h
14h SSPCON 94h SSPSTAT 114h 194h
15h CCPR1L 95h 115h 195h
16h CCPR1H 96h 116h 196h
17h CCP1CON 97h 117h 197h
18h RCSTA 98h TXSTA 118h 198h
19h TXREG 99h SPBRG 119h 199h
1Ah RCREG 9Ah 11Ah 19Ah
1Bh CCPR2L 9Bh 11Bh 19Bh
1Ch CCPR2H 9Ch 11Ch 19Ch
1Dh CCP2CON 9Dh 11Dh 19Dh
1Eh ADRESH 9Eh ADRESL 11Eh 19Eh
1Fh ADCON0 9Fh ADCON1 11Fh


Registre de
uz general
16 octei
19Fh


Registre de uz
general 16
octei
A0h

EFh
Registre de uz
general 80
octei
120h


16Fh
Registre de
uz general
80 octei
1A0h


1EFh
Registre de uz
general 80
octei
20h


7Fh
Registre de
uz general
96 octei F0h

FFh
acces
70h-7Fh
170h

17Fh
acces
70h-7Fh
1F0h

1FFh
acces
70h-7Fh



Locaie de memorie neimplementat, la citire se citete zero.

*
Nu este un registru fizic.
Not: 1: aceste registre nu sunt implementate la PIC16F876.


69
2: aceste registre sunt rezervate, ele nu trebuie scrise.
Biii de configurare (directiva __CONFIG)



;==============================================================
;
; Configuration Bits
;
;==============================================================

_CP_ALL EQU H'1FFF'
_CP_OFF EQU H'3FFF'
_DEBUG_OFF EQU H'3FFF'
_DEBUG_ON EQU H'37FF'
_WRT_OFF EQU H'3FFF' ; No prog memory write protection


70
_WRT_256 EQU H'3DFF' ; First 256 prog memory write
protected
_WRT_1FOURTH EQU H'3BFF' ; First quarter prog memory write
protected
_WRT_HALF EQU H'39FF' ; First half memory write protected
_CPD_OFF EQU H'3FFF'
_CPD_ON EQU H'3EFF'
_LVP_ON EQU H'3FFF'
_LVP_OFF EQU H'3F7F'
_BODEN_ON EQU H'3FFF'
_BODEN_OFF EQU H'3FBF'
_PWRTE_OFF EQU H'3FFF'
_PWRTE_ON EQU H'3FF7'
_WDT_ON EQU H'3FFF'
_WDT_OFF EQU H'3FFB'
_RC_OSC EQU H'3FFF'
_HS_OSC EQU H'3FFE'
_XT_OSC EQU H'3FFD'
_LP_OSC EQU H'3FFC'

Cuvntul de configurare (adresa 2007h)

Valoarea citit pentru biii de configurare neprogramai (teri) este 3FFFh.
Un bit programat este citit ca zero iar cel neprogramat este citit ca unu. Aceti
bii se gsesc n spaiul de program i locaia de memorie de la adresa 2007h poate fi
modificat numai pe timpul programrii.

R/P-1 U-0 R/P-1 R/P-1 R/P-1 R/P-1 R/P-1 R/P-1 R/P-1 U-0 U-0 R/P-1 R/P-1 R/P-1
CP - DEBUG WRT1 WRT0 CPD LVP BORDEN - - PWRTEN WDTEN F0SC1 F0SC0
Bit 13 Bit 12 Bit 11 Bit 10 Bit 9 Bit 8 Bit 7 Bit 6 Bit 5 Bit 4 Bit 3 Bit 2 Bit 1 Bit 0

bit 13 CP: bit de protecie a codului din memoria FLASH

1 = protecia codului off
0 = codul din memoria de program este protejat odat protejat,
memoria FLASH nu mai poate fi scris.

bit 12 Neimplementat. Citit ca unu.

bit 11 DEBUG: bit pentru depanare In-Circuit

1 = depanator In Circuit dezactivat. RB6 i RB7 sunt pini de uz general
I/O
0 = depanator In Circuit activat. RB6 i RB7 sunt atribuii depanatorului

bit 10-9 WRT1:WRT0 bii de validare a scrierii memoriei de program
FLASH


71

11 = nu este activat protecia la scriere; toat memoria de
program poate fi scris sub controlul EECON
10 = 0000h la 00FFh este protejat la scriere; 0100h la 1FFFh
poate fi scris sub controlul EECON
01 = 0000h la 07FFh este protejat la scriere; 0800h la 1FFFh
poate fi scris sub controlul EECON
00 = 0000h la 0FFFh este protejat la scriere; 1000h la 1FFFh
poate fi scris sub controlul EECON

bit 8 CPD: bit de protecie a memoriei de date EEPROM

1 = memoria EEPROM nu este protejat
0 = memoria EEPROM este protejat

bit 7 LVP: bit de validare a tensiunii sczute la programarea serial in-
circuit

1 = pinii RB3/PGM au funcia PGM; programarea cu tensiune
sczut este validat;
0 = RB3 este I/O digital, trebuie utilizat HV la MCLR pentru
programare

bit 6 BORDEN: bit de validare a Brown-out Reset
1 = BOR activat
0 = BOR dezactivat

bit 5-4 Neimplementat. Citit ca unu.

bit 3 PWRTEN bit de validare a Power-up Timer

1 = PWRT dezactivat
0 = PWRT activat

bit 2 WDTEN: bit de validare a Watchdog Timer

1 = WDT activat
0 = WDT dezactivat

bit 1-0 FOSC1:FOSC0: biii de selecie a oscilatorului

11 = oscilator RC
10 = oscilator HS
01 = oscilator XT
00 = oscilator LP



72
Registre cu funcii speciale

Adr. Nume Bit 7 Bit 6 Bit 5 Bit 4 Bit 3 Bit 2 Bit 1 Bit 0
Valoarea
n: POR,
BOR
Bank 0
0h
(3)
INDF
Adresnd aceast locaie de memorie se folosete coninutul FSR pentru a
adresa memoria de date (nu este un registru fizic)
0000 0000
01h TMR0 Registrul Timer0 xxxx xxxx
02h
(3)
PCL Contorul de program (PC) cel mai puin semnificativ octet 0000 0000
03h
(3)
STATUS IRP RP1 RP0 TO PD Z DC C 0001 1xxx
04h
(3)
FSR Pointer pentru adresarea indirect a memoriei de date xxxx xxxx
05h PORTA - - Memorare date PORTA la scriere, pini PORTA la citire --0x 0000
06h PORTB Memorare date PORTB la scriere, pini PORTB la citire xxxx xxxx
07h PORTC Memorare date PORTC la scriere, pini PORTC la citire xxxx xxxx
08h
(4)
PORTD Memorare date PORTD la scriere, pini PORTD la citire xxxx xxxx
09h
(4)
PORTE - - - - - RE2 RE1 RE0 ---- -xxx
0Ah
(1,3)
PCLATH - - -
Buffer de scriere a celor mai semnificativi 5 bii
ai contorului de program (PC)
---0 0000
0Bh
(3)
INTCON GIE PEIE TMR0IE INTE RBIE TMR0IF INTF RBIF 0000 000x
0Ch PIR1 PSPIF
(3)
ADIF RCIF TXIF SSPIF CCP1IF TMR2IF TMR1IF 0000 0000
0Dh PIR2 - CMIF - EEIF BCLIF - - CCP2IE -0-0 00
0Eh TMR1L
Registrul de stocare al celui mai puin semnificativ octet al registrului de 16
bii al TMR1
xxxx xxxx
0Fh TMR1H
Registrul de stocare al celui mai semnificativ octet al registrului de 16 bii al
TMR1
xxxx xxxx
10h T1CON - - T1CKPS1 T1CKPS0
T1OSC
EN
T1SYNC TMR1CS TMR1ON --00 0000
11h TMR2 Registrul Timer2 1111 1111
12h T2CON - TOUTPS3 TOUTPS2 TOUTPS1
TOUTP
S1
TMR2ON T2CKPS1 T2CKPS0 -000 0000
13h SSPBUF Registrul de transmisie/buffer de recepie a portului serial sincron xxxx xxxx
14h SSPCON WCOL SSPOV SSPEN CKP SSPM3 SSPM2 SSPM1 SSPM0 0000 0000
15h CCPR1L Registrul 1 (LSB) Captur/Comparare/PWM 0000 0000
16h CCPR1H Registrul 1 (MSB) Captur/Comparare/PWM -
17h CCP1CON - - CCP1X CCP1Y
CCP1
M3
CCP1M2 CCP1M2 CCP1M0 --00 0000
18h RCSTA SPEN RX9 SREN CREN ADDEN FERR OERR RX9D 0000 000x
19h TXREG Registrul datelor de transmis al USART 0000 0000
1Ah RCREG Registrul datelor recepionate al USART 0000 0000
1Bh CCPR2L Registrul 2 (LSB) Captur/Comparare/PWM xxxx xxxx
1Ch CCPR2H Registrul 2 (MSB) Captur/Comparare/PWM xxxx xxxx
1Dh CCP2CON - - CCP2X CCP2Y
CCP2
M3
CCP2M2 CCP2M1 CCP2M0 --00 0000
1Eh ADRESH Registrul rezultat al octetului cel mai semnificativ al conversiei A/D xxxx xxxx
1Fh ADCON0 ADCS1 ADCS0 CHS2 CHS1 CHS0
GO/
DONE
- ADON 0000 00-0

Legend: x = necunoscut, u = neschimbat, q = valoarea depinde de situaie, - =
neimplementat se citete zero, r = rezervat
Not: 1. Cel mai semnificativ octet al contorului de program nu este accesibil
direct. Registrul PCLATH conine biii PC<12:8> care vor fi transferai
n octetul cel mai semnificativ al contorului de program.


73
2. Biii PSPIE i PSPIF sunt rezervai la PIC16F873A/876A i trebuie
meninui teri.
3. Aceste registre pot fi adresate din orice bank.
4. PORTD, PORTE, TRISD i TRISE nu sunt implementai la
PIC16F873A/876A i la citire sunt zero.
5. Bitul 4 al EEADRH este implementat numai la PIC16F876A/877A.

Adr. Nume Bit 7 Bit 6 Bit 5 Bit 4 Bit 3 Bit 2 Bit 1 Bit 0
Valoarea
n: POR,
BOR
Bank 1
80h
(3)
INDF
Adresnd aceast locaie de memorie se folosete coninutul FSR pentru a
adresa memoria de date (nu este un registru fizic)
0000 0000
81h
OPTION_
REG
RBPU INTEDG T0CS T0SE PSA PS2 PS1 PS0 1111 1111
82h
(3)
PCL Contorul de program (PC) cel mai puin semnificativ octet 0000 0000
83h
(3)
STATUS IRP RP1 RP0 TO PD Z DC C 0001 1xxx
84h
(3)
FSR Pointer pentru adresarea indirect a memoriei de date xxxx xxxx
85h TRISA - - Registru direcie PORTA --11 1111
86h TRISB Registru direcie PORTB 1111 1111
87h TRISC Registru direcie PORTC 1111 1111
88h
(4)
TRISD Registru direcie PORTD 1111 1111
89h
(4)
TRISE IBF OBF IBOV PSPMODE - Bii direcie PORTE 0000 -111
8Ah
(1,3)
PCLATH - - -
Buffer de scriere a celor mai semnificativi 5 bii
ai contorului de program (PC)
---0 0000
8Bh
(3)
INTCON GIE PEIE
TMR0I
E
INTE RBIE TMR0IF INTF RBIF 0000 000x
8Ch PIE1 PSPIE
(2)
ADIE RCIE TXIE SSPIE CCP1IE TMR2IE TMR1IE 0000 0000
8Dh PIE2 - CMIE - EEIE BCLIE - - CCP2IE -0-0 00
8Eh PCON - - - - - - POR BOR ---- --qq
8Fh - Neimplementat -
90h - Neimplementat -
91h SSPCON2 GCEN ACKSTAT ACKDT ACKEN RCEN PEN RSEN SEN 0000 0000
92h PR2 Registru de perioada al Timer2 1111 1111
93h SSPADD Registrul de adres al portului serial sincron (mod I
2
C) 0000 0000
94h SSPSTAT SMP CKE D/A P S R/W UA BF 0000 0000
95h - Neimplementat -
96h - Neimplementat -
97h - Neimplementat -
98h TXSTA CSRC TX9 TXEN SZNC - BRGH TRMT TX9D 0000 -010
99h SPBRG Registrul generator Baud Rate 0000 0000
9Ah - Neimplementat -
9Bh - Neimplementat -
9Ch CMCON C2OUT C1OUT C2INV C1INV CIS CM2 CM1 CM0 0000 0111
9Dh CVRCON CVREN CVROE CVRR - CVR3 CVR2 CVR1 CVR0 000- 0000
9Eh ADRESL Registrul octetului cel mai puin semnificativ al conversiei A/D xxxx xxxx
9Fh ADCON1 ADFM ADCS2 - - PCFG3 PCFG2 PCFG1 PCHG1 0--- 0000

Legend: x = necunoscut, u = neschimbat, q = valoarea depinde de situaie, - =
neimplementat se citete zero, r = rezervat


74
Not: 1. Cel mai semnificativ octet al contorului de program nu este accesibil
direct. Registrul PCLATH conine biii PC<12:8> care vor fi transferai
n octetul cel mai semnificativ al contorului de program.
2. Biii PSPIE i PSPIF sunt rezervai la PIC16F873A/876A i trebuie
meninui teri.
3. Aceste registre pot fi adresate din orice bank.
4. PORTD, PORTE, TRISD i TRISE nu sunt implementai la
PIC16F873A/876A i la citire sunt zero.
5. Bitul 4 al EEADRH este implementat numai la PIC16F876A/877A.

Adr. Nume Bit 7 Bit 6 Bit 5 Bit 4 Bit 3 Bit 2 Bit 1 Bit 0
Valoarea
n: POR,
BOR
Bank 2
100h
(3)
INDF
Adresnd aceast locaie de memorie se folosete coninutul FSR pentru a
adresa memoria de date (nu este un registru fizic)
0000 0000
101h TMR0 Registrul Timer0 xxxx xxxx
102h
(3)
PCL Contorul de program (PC) cel mai puin semnificativ octet 0000 0000
103h
(3)
STATUS IRP RP1 RP0 TO PD Z DC C 0001 1xxx
104h
(3)
FSR Pointer pentru adresarea indirect a memoriei de date xxxx xxxx
105h - Neimplementat
106h PORTB Memorare date PORTB la scriere, pini PORTB la citire xxxx xxxx
107h - Neimplementat -
108h - Neimplementat -
109h - Neimplementat -
10Ah
(1,3)
PCLATH - - -
Buffer de scriere a celor mai semnificativi 5 bii
ai contorului de program (PC)
---0 0000
10Bh
(3)
INTCON GIE PEIE TMR0IE INTE RBIE TMR0IF INTF RBIF 0000 000x
10Ch EEDATA Octetul cel mai puin semnificativ (L) al registrului de date al EEPROM xxxx xxxx
10Dh EEADR Octetul cel mai puin semnificativ (L) al registrului de adres al EEPROM xxxx xxxx
10Eh EEDATH - -
Octetul cel mai semnificativ (H) al registrului de date al
EEPROM
--xx xxxx
10Fh EEADRH - - - -
(5)
Octetul cel mai semnificativ (H) al
registrului de adres al EEPROM
---- xxxx
Bank 3
180h
(3)
INDF
Adresnd aceast locaie de memorie se folosete coninutul FSR pentru a
adresa memoria de date (nu este un registru fizic)
0000 0000
181h
OPTION
_REG
RBPU INTEDG T0CS T0SE PSA PS2 PS1 PS0 1111 1111
182h
(3)
PCL Contorul de program (PC) cel mai puin semnificativ octet 0000 0000
183h
(3)
STATUS IRP RP1 RP0 TO PD Z DC C 0001 1xxx
184h
(3)
FSR Pointer pentru adresarea indirect a memoriei de date xxxx xxxx
185h - Neimplementat
186h TRISB Registru de direcie a datelor PORTB xxxx xxxx
187h - Neimplementat -
188h - Neimplementat -
189h - Neimplementat -
18Ah
(1,3)
PCLATH - - -
Buffer de scriere a celor mai semnificativi 5 bii
ai contorului de program (PC)
---0 0000
18Bh
(3)
INTCON GIE PEIE TMR0IE INTE RBIE TMR0IF INTF RBIF 0000 000x
18Ch EECON1 EEPGD - - - WRERR WREN WR RD x--- x000
18Dh EECON2 Registrul de control 2 (nu este un registru fizic) EEPROM ---- ----


75
18Eh - Rezervat, trebuie meninut ters 0000 0000
18Fh - Rezervat, trebuie meninut ters 0000 0000

Legend: x = necunoscut, u = neschimbat, q = valoarea depinde de situaie, - =
neimplementat se citete zero, r = rezervat
Not: 1. Cel mai semnificativ octet al contorului de program nu este accesibil
direct. Registrul PCLATH conine biii PC<12:8> care vor fi transferai
n octetul cel mai semnificativ al contorului de program.
2. Biii PSPIE i PSPIF sunt rezervai la PIC16F873A/876A i trebuie
meninui teri.
3. Aceste registre pot fi adresate din orice bank.
4. PORTD, PORTE, TRISD i TRISE nu sunt implementai la
PIC16F873A/876A i la citire sunt zero.
5. Bitul 4 al EEADRH este implementat numai la PIC16F876A/877A.

Figura 4.16. Schema bloc a microcontrolerului PIC16F877.


76



CAPITOLUL 5

MEMORIA

5.1. Prezentare general

Memoria unui calculator are rolul de a stoca temporar sau permanent date sau
programe. Durata de stocare a datelor se refer la timpul ct memoria este alimentat la
tensiunea electric. O memorie poate stoca permanent date dac informaia memorat
nu se pierde la ntreruperea tensiunii de alimentare a memoriei. n caz contrar, atunci
cnd memoria stocheaz informaia numai pe durata de timp ct este alimentat cu
energie electric, se spune c informaia este memorat temporar. Este momentul s
precizm faptul c un calculator numeric nu prelucreaz dect numere. Din acest motiv
mprirea informaiei n date i instruciuni are caracter pur convenional. Astfel, ntr-o
locaie de memorie se poate afla numrul (10110110
B
= 182
Z
) care pentru unitatea
central poate nsemna fie o valoare numeric egal cu 128 fie codul unei instruciuni de
tipul: aduna numarul a cu numarul b. Unitatea central decide dac numrul citit din
memorie reprezint o valoare numeric (dat) sau o comand (instruciune program).
Prin convenie, la pornire sau dup iniializare (RESET) unitatea central consider c
valoarea citit din memorie reprezint o comand. S presupunem ca acesta comanda
este: aduna numarul a cu numarul b. Asta nseamn c urmatoarele dou valori citite
din memorie se vor considera ca reprezentnd valorile numerelor a i b. Dup
executarea adunrii unitatea central va citi o nou valoare din memorie pe care o va
considera n mod automat ca reprezentnd codul numeric al unei instruciuni de
program. Rmne deci responsabilitatea programatorului ca n memorie s fie nscris o
succesiune corect de date care reprezint numere sau coduri de instruciuni.
Dup modul n care sunt stocate datele n memorie se poate face o prim
clasificare a acestora:

memorii de tip ROM (Read Only Memory) care sunt memorii ce
pot stoca permanent datele. Aa cum le arat i numele ele nu pot
fi dect citite de ctre unitatea central, nscrierea lor fiind fcut
prin procedee speciale, fie pe calculator, fie separat, pe un
dispozitiv special numit inscriptor de memorii ROM;
memorii de tip RAM (Random Access Memory) care sunt
memorii ce pot stoca temporar datele. Caracteristic acestor
memorii este faptul c ele pot fi scrise i citite n mod curent de
unitatea central.

Cele dou tipuri de memorie sunt amndou folosite n calculator n scopuri
diferite. Memoria de tip ROM stocheaz de obicei programul executat de unitatea


77
central imediat dup pornire sau la iniializare. Acest program se numete program
monitor sau program de boot. Dac n calculator s-ar folosi numai memorie de tip RAM
problema pornirii calculatorului nu ar putea fi rezolvat. La punerea sub tensiune o
memorie RAM are un coninut aleator care nu poate ajuta la pornirea calculatorului;
cum unitatea central, dup iniializare ateapt o comand valid, rezult c trebuie
folosit o memorie care s nu-i piard coninutul atunci cnd tensiunea de alimentare
este ntrerupt.
Structura unei memorii este similar cu cea a unei matrici. Vom considera un
exemplu n care n fiecare element al matricei se afl
un modul elementar de memorie care nu poate
memora dect un bit adic o valoare numeric egal
cu zero sau cu unu. Cea mai simpl structur de
memorie este prezentat n figura 5.1. Localizarea
celulei elementare de memorie care va fi citit sau
scris la un moment dat se face cu ajutorul
semnalelor de adres iar valoarea citit sau valoarea
de nscris n memorie este disponibil pe respectiv
este depus pe magistrala de date. n acest fel se
spune c selecia unei celule de memorie se face cu ajutorul semnalelor de pe magistrala
de adrese iar valoarea citit din memorie sau nscris n memorie se face cu ajutorul
semnalelor de pe magistrala de date.
C0 C1
C2 C3
Memorie
A0
A1
A2 A3
D
Fig. 5.1. Structura unei memorii
n figura 5.1, C0, C1, C2 i C3 reprezint celulele elementare de memorie, D
magistrala de date (o singur linie) iar A0, A1, A2 i A3 magistrala de adrese (patru
linii). Traseul datelor a fost
reprezentat cu linie punctat iar
cel al adreselor cu linie continu.
Din cauz c la un moment dat
numai una din celulele elementare
de memorie este activat, pentru
date este suficient o singur
linie. Considerm c o celul
elementar de memorie este activat pentru citire sau scriere dac ea se afl la
intersecia liniilor de adres pe care se afl simultan cifra unu. Funcionarea memoriei,
n acest caz este dat n tabelul 5.1. Dac pe magistrala de adrese se aplic, de exemplu,
numrul 0101 (n succesiunea A3,A2,A1,A0) atunci pe magistrala de date se gsete
coninutul celulei C0 la citire sau poate fi nscris celula C0 cu valoarea plasat pe
magistrala de date, la scriere.
TABELUL 5.1.
A3 A2 A1 A0 D
0 1 0 1 Coninutul celulei C0
1 0 0 1 Coninutul celulei C1
0 1 1 0 Coninutul celulei C2
1 0 1 0 Coninutul celulei C3
Din cauz c folosirea a patru linii de adres este neeconomic n acest caz, n
realitate la o astfel de memorie nu se afl dect dou linii de adres din cauz c se pot
obine patru combinaii distincte numai cu dou numere binare (00, 01, 10, 11).
Translatarea de la cele patru combinaii binare la cele patru adrese de selecie a celulelor
de memorie se face n interiorul memoriei cu ajutorul unui circuit de decodificare.
Pentru a obine mai multe date simultan la ieire memoriile se conecteaz n
paralel aa cum este reprezentat schematic n figura 5.2.
n structura din figura 5.2 dac se aplic la intrare (pe liniile de adres)
combinaia 0101 (n succesiunea A3,A2,A1,A0), atunci vor fi selectate simultan celulele


78
a
cantitatea e
cestui experiment se
exprim ia:

I = - log
2
P = - log
2
=1 bit
l (kb), megabitul (Mb),
gigabitul (Gb) i terabitul (Tb) cu urmtoarele relaii ntre ele:
1Tb = 1024Gb = 1 048 576 Mb = 1 073 741 824 kb = 1 099 511 627 776 bii.

aia dintr-o enciclopedie iar ntr-un terabit
form
de memorie C00 i C01, C00 fiind conectat la linia de date D0 iar C01 la D1. Toate
celulele elementare de memorie selectate simultan, formeaz o celul de memorie care
permite manipularea simultan a mai multor bii.
Din cele prezentate pn acum rezult c att magistrala de adrese ct i cea de
date furnizeaz informaii legate de dimensiunea (capacitatea memoriei).
Pentru a
msur capacitatea
(dimensiunea)
memoriei se folosete
ca unitate de baz bitul
(b) care reprezint
lementar
de informaie. Spre
exemplu, vom
considera experimentul
aruncrii unei monezi.
n urma acestui
experiment nlturm o
incertitudine de 50%
pentru c nainte de
aruncarea monezii
existau numai dou
posibiliti ale rezultatului (una din feele monezii). Astfel, probabilitatea de obinere a
unui rezultat este de 1/2 din cauz c din cele dou rezultate posibile s-a obinut unul.
Cantitatea de informaie pe care o primim dup efectuarea a
C01
C11
C21 C31
C00
C10
C20 C30
A0
A1
A2 A3
D1
D0
Fig.5.2. Structura unei memorii cu dou planuri
cu rela

Dac asociem celor dou fee ale monedei valorile binare 0 i 1, cantitatea de
informaie stocat ntr-o celul elementar de memorie (care poate memora una din
valorile 1 sau 0) este de un bit. Bitul are ca multiplii kilobitu

1kb = 1024 bii;
1Mb = 1024kb = 1 048 576 bii;
1Gb = 1024Mb = 1 048 576 kb = 1 073 741 824 bii;

Pentru a ne forma o imagine asupra cantitii de informaie care poate fi stocat,


putem spune c dac un bit stocheaz informaia corespunztoare unui eveniment
echiprobabil cu dou posibiliti de realizare aa cum este experimentul aruncrii unei
monezi, ntr-un gigabit se poate stoca inform
in aia dintr-o bibliotec de 500 de cri.
ntorcndu-ne la figura 5.2 putem spune c aceast memorie are o capacitate de
4x1bit din cauz c sunt patru celule elementare de memorie care pot stoca informaie,


79
, la un moment dat, avem acces la dou celule
az un pointer. n tabelul 5.2 sunt sintetizate
odurile de notare a grupurilor de bii.

numerice variaz de la 1ko i pot ajunge pn la zeci sau sute de Mo
mtor: s presupunem
avem o memorie de 5Mo; rezult c aceast memorie va avea:

i = 41 943 040 bii
4 Mo i modul
la un moment dat avnd acces la o singur celul. Similar, memoria din figura 5.2 are o
capacitate de 4x2 bii din cauz c
elementare de memorie simultan.
Aa cum s-a artat n capitolul 4, unitile centrale pot lucra cu 8, 16, 32, 64, ...
bii de date simultan. Din acest motiv un grup de opt bii se numete octet (byte, 1
byte=8 bits). Daca se utilizeaz 16 bii simultan adic doi octei, acetia formeaz un
cuvnt (word) iar dou cuvinte forme
m
TABELUL 5.2.
1 octet (byte) = 8 bii (bites)
1 cuvnt (word) = 2 octei (bytes) = 16 bii (bites)
1 pointer (pointer) = 2 cuvinte (words) = 4 octei (bytes) = 32 bii (bits)

Memoriile calculatoarelor se construiesc n general cu celule de opt bii de date
iar capacitile acestora sunt exprimate n kilooctei (kilobytes), notat cu ko sau kb, un
ko fiind egal cu 1024 octei. Capacitile uzuale folosite pentru memoriile
calculatoarelor
(megaoctei).
Calculul capacitii unei memorii poate fi fcut n felul ur
c
5 x 1 048 576 x 8 bi

ceea ce nseamn c o astfel de
memorie va conine 41 943 040 celule
elementare de memorie. n figura 5.3 se
prezint o memorie de
de montare a acesteia.
n afar de capacitatea
memoriei, o alt caracteristic
important a acesteia este timpul de
acces. Timpul de acces reprezint
timpul necesar memoriei de a rspunde
unei comenzi. Cu alte cuvinte, la o
comand de citire, memoria nu depune
instantaneu coninutul celulei de
memorie (o celul de memorie fiind
format din una sau mai multe celule
elementare) pe magistrala de date ci
dup un anumit timp care depinde att
de tehnologia n care este realizat
memoria ct i de dimensiunea acesteia.
La fel, la scrierea unei memorii, datele
Fig. 5.3. Memorie SIMM i modul de montare a
acesteia


80
tdeauna poriunea de program necesar unitii centrale.
de nscris n memorie trebuie meninute un anumit timp pe magistrala de date, pentru ca
memoria s fie capabil s le transfere n celula de memorare corespunztoare. Este
evident faptul c este de dorit ca timpul de acces al unei memorii s fie ct mai mic n
aa fel nct ea s poat rspunde suficient de repede solicitrilor unitii centrale. n
prezent memoriile utilizate n calculatoare au timpi de acces ntre 70ns i 10ns. Din
pcate cu ct timpul de acces al unei memorii este mai mic preul acesteia este mai mare
i din acest motiv, n cele mai multe cazuri, memoria unui sistem este realizat dintr-o
combinaie de memorii rapide i memorii lente. Astfel, memoria RAM ntr-un
calculator este realizat pe cel puin trei nivele. Pe primul nivel este memoria cea mai
rapid, care se afl chiar n interiorul unitii centrale. Aceast memorie se numete
memorie cache pe nivelul 1 (cache level 1). n aceast memorie se aduc poriunile de
program care sunt rulate la un moment dat, unitatea central lucrnd practic numai cu
memoria cache de pe nivelul 1. Atunci cnd este necesar execuia unei instruciuni care
nu este n memoria cache de pe nivelul 1, un circuit de control al memoriei aduce
poriunea respectiv de program, din memoria extern mai lent, n memoria cache de
pe nivelul 1. Microprocesoarele actuale au o memorie cache intern ntre 128ko i
512ko, iar la microprocesoarele foarte puternice destinate staiilor de lucru, memoria
cache poate ajunge pn la 2Mo. n exteriorul unitii centrale exist un al doilea nivel
al memoriei cache (cache level 2) cu acelai rol ca i memoria cache level 1.
Mecanismul memoriei cache este prezentat n figura 5.4. Controlerul de memorie are
sarcina de a transfera datele de pe un nivel pe altul n aa fel nct n memoria cache de
pe nivelul 1 s se afle nto
Performanele unui calculator vor fi cu att mai bune cu ct dimensiunea
memoriei cache este mai mare.
Unitatea Central
Memorie (intern)
cache nivel1
128ko 512ko
Memorie (extern)
cache nivel 2
128ko 1024ko



Memorie
RAM
principal
32Mo 64Mo
Fig. 5.4. Organizarea memoriei RAM la un calculator
Date
Date

n continuare se vor prezenta pe scurt principalele tipuri tehnologice de memorii
ROM i RAM existente n prezent i caracteristicile acestora.
Memoriile ROM sunt realizate n urmtoarele variante:

memorii ROM propriu-zise care nu pot fi nscrise dect o
singur dat, nscrierea fiind fcut cel mai adesea la fabricant
sau la utilizator cu ajutorul unor dispozitive de programare
speciale, aceste memorii fiind denumite i memorii PROM
(Programmable Read-Only Memory);


81
memorii EPROM (Erasable Programmable Read-Only
Memory) care sunt memorii de tip ROM programabile. Ele
pot fi terse si nscrise (programate) de mai multe ori.
tergerea memoriei se face cu ajutorul unui flux de lumin
ultraviolet, n acest scop capsula circuitului integrat fiind
prevzut cu un geam din sticl de cuar (vezi figura 4.1), iar
nscrierea se face cu ajutorul unor dispozitive speciale prin
metode electrice la tensiuni mai mari dect cele de funcionare
normal;
memorii de tip EEPROM (Electrically Erasable
Programmable Read-Only Memory) care sunt memorii ROM
programabile ce pot fi terse i renscrise exclusiv prin
mijloace electrice. Avantajul acestui tip de memorii este
reprezentat de faptul c ele nu trebuie scoase din circuitul n
care au fost montate pentru a fi terse i renscrise. Acest tip
de memorie necesit tensiuni mai mari dect cele de
funcionare obinuit, pentru tergere i programare;
memorii de tip flash (flash memory), ultima generaie de
memorii de tip ROM care dei pstreaz informaia i dup
ntreruperea tensiunii de alimentare, pot fi terse si programate
similar cu memoriile RAM. Singura particularitate este
reprezentat de faptul c memoriile flash necesit algoritmi
speciali de tergere i programare, aceast operaiune fiind
fcut pe blocuri, n trei faze.

Memoriile RAM sunt realizate n urmtoarele variante:

memorii RAM dinamice (DRAM - Dynamic Random Access
Memory) care sunt memorii de tip RAM ce necesit
remprosptarea periodic (la 20 ms) a coninutului, n caz
contrar informaia pierzndu-se chiar dac sunt alimentate.
Remprosptarea se face simplu prin citirea periodic a mai
multor blocuri simultan din memorie. Principalul avantaj al
acestui tip de memorii este reprezentat de faptul c pot avea
densitate foarte mare a celulelor elementare, putnd fi
realizate memorii cu capaciti foarte mari iar principalul
dezavantaj este reprezentat de faptul c memoriile RAM
dinamice sunt relativ lente (necesit timpi de acces mari). Din
acest motiv memoriile RAM dinamice sunt folosite de regul
la memoria principal a calculatorului.
memorii RAM statice (SRAM - Static Random Access
Memory) care sunt memorii de tip RAM ce nu necesit
remprosptare. Aceste memorii prezint avantajul c au timpi
de acces foarte mici n schimb au dezavantajul c nu pot fi
realizate de capaciti foarte mari. Memoriile RAM statice
sunt utilizate de regul la realizarea memoriilor cache.


82
Pentru creterea performanelor de vitez ale memoriilor RAM, n prezent sunt
utilizate o serie de tehnici care au dus la apariia mai multor tipuri de memorii RAM
dinamice:

memorii de tip EDO DRAM (Extended Data Output Dynamic
Random Access Memory) care sunt memorii de tip DRAM
dar mai rapide dect memoriile DRAM obinuite. Spre
deosebire de memoriile DRAM obinuite, o memorie EDO
DRAM nu poate fi accesat dect pe blocuri de date. Pe
durata de timp ct memoria EDO RAM trimite la unitatea
central datele corespunztoare unui bloc, poate cuta datele
blocului urmtor. Datorit acestor mecanisme timpul de
regsire a datelor este mult redus;
memorii de tip BEDO DRAM (Burst EDO DRAM). Memoria
BEDO DRAM este mai rapid dect memoria EDO DRAM.
Acest tip de memorie se sincronizeaz cu viteza unitii
centrale pe durate scurte de timp (burst). Pe durata unei astfel
de sincronizri o memorie BEDO DRAM poate prelucra patru
adrese de memorie simultan. Aceste memorii se pot conecta la
procesoare ce lucreaz pe magistrale cu viteza de pn la 66
MHz;
memorii de tip SDRAM (Synchronous DRAM). Acest tip de
memorii sunt capabile s se sincronizeze cu unitatea central
i funcioneaz la frecvene de pn la 200MHz (memorii
DDR SDRAM double-data-rate synchronous dynamic
random access memory).

n figura 5.5 este prezentat modul de realizare a circuitelor de memorie.
Fig. 5.5. Realizarea fizic a circuitelor de memorie

5.2. Aplicarea principiului "cache n sistemele de calcul

5.2.1. Memoria Cache

Numele acestui tip de memorie provine de la termenul din limba francez
ascuns: cache. Dei este un cuvnt de origine francez s-a ncetenit pronunia


83
acestuia n limba englez deoarece majoritatea termenilor din domeniul arhitecturii
calculatoarelor provin din aceast limb.
Memoria cache reprezint mai degrab un principiu: n sistemul de calcul se vor
folosi dou tipuri de memorie principal o memorie lent de dimensiuni mari i o
memorie rapid de dimensiuni mai mici. Acest lucru se ntmpl din cauz c memoria
rapid este mult mai scump dect cea lent i atunci mecanismul memoriei cache se
folosete n scopul creterii performanelor sistemului n condiii de pre acceptabile.
Funcionarea memoriei cache se bazeaz pe aducerea anumitor secvene de
program, secvene ce sunt necesare la un moment dat, din memoria lent n memoria
rapid (memoria cache) figura 5.6.


Figura 5.6. Principiul cache-ului

Funcionarea acestei memorii se bazeaz pe principiul localitii. Exist dou
feluri de localizarea a informaiei: localizarea spaial i localizarea temporal:
localitate spaial: dac la un moment dat sunt necesare nite
date, n curnd vor fi necesare probabil date aflate n apropierea
lor n memorie;
localitatea temporal: cnd sunt folosite nite date, foarte adesea
acestea se vor folosi de mai multe ori.
Memoria cache folosete acelai fel de interfa ca i memoria principal a
sistemului. Acest lucru nseamn c nu ne vom da seama de prezena sau lipsa memoriei
cache dect prin viteza de calcul a sistemului.


84
Datorit faptului c eficiena memoriei cache depinde n bun msur de
programul executat, pentru determinarea performanelor memoriei cache se fac mai
multe determinri cu ajutorul diferitelor tipuri de programe i apoi se realizeaz o
medie.
Eficiena unui cache se msoar n procentajul de situaii cnd datele cutate se
gsesc n cache H (hit ratio): din 100 de accese, cte gsesc datele n cache? Opusul
acestei valori este miss ratio M (rateuri). Procentajele astea se msoar rulnd o
mulime de programe i fcnd media. Avem desigur, dac socotim 33% ca 1/3:

H = 1 - M
Dac timpul de citire din cache este Tc (``hit time''), iar timpul pe care l
pierdem cnd ratm este Tm (``miss time'') atunci putem msura timpul mediu de acces
la memoria cu cache cu urmtoarea formul:
T = Tc x H + Tm x M

Trebuie observat faptul c timpul unei ratri (Tm) nu este neaprat egal cu timpul de
citire din memoria lent (Tl), pentru c n cazul unei ratri, nti trebuie s ne dm
seama dac datele sunt n cache, iar dac nu sunt s accesm memoria lent. Cache-ul
va fi eficient dac T < Tl.
Valoarea mrimii H depinde de mrimea cache-ului: pentru un cache de
mrimea memoriei lente (caz limit), toate datele pot fi inute n memoria rapid, i vom
avea H=1. Pentru un cache de mrime 0, H=0, pentru c niciodat datele nu se gsesc n
el. Relaia ntre mrimea cache-ului, a memoriei lente i H nu este o linie dreapt, ci
crete repede la nceput (figura 5.7). Din cauza asta un cache relativ mic ca mrime are
o importan mare ca eficien.

Figura 5.7. Performana cache-ului



85
Eficiena depinde i de raportul dintre Tc i Tm; n anumite cazuri Tm este de ordinul a
10000 x Tc, deci chiar un H mic poate s nsemne mult.
Pe lng dimensiuni i timpi de acces, exist o mulime de detalii prin care
cache-urile difer ntre ele, datorate faptului c mediile de stocare a informaiei nu se
comport chiar la fel. Iat unele dintre posibilele diferene:


1) Mrimea blocului de date: cteodat este mai economic s se transporte mai
multe date deodat din memoria lent; cache-urile aduc atunci mai mult dect li
se cere (un calup) i pstreaz totul, n ideea (sugerat de principiul de localitate
spaial) c i vecinii obiectului accesat vor fi cutai n curnd. Unitatea de
transfer ntre cache i memoria lent e numit bloc.
2) Politica de nlocuire: dup o vreme cache-ul se va umple cu date, i totui altele
vor trebui aduse. Decizia despre care date trebuie scoase afar este foarte
important pentru eficien; ea este politica de nlocuire (replacement policy).
Exist o sumedenie de politici; iat-le doar numite pe unele; orice carte de
sisteme de operare va descrie cele mai multe dintre ele: politica aleatoare
(random), politica circular (round robin), politica ``cel mai rar folosit'' (least
frequently used), politica ``primul intrat - primul ieit'' (first in, first out),
politica ``cel mai demult folosit'' (least recently used), politica ``setul de lucru''
(working set), politica ``optim'' (optimal), politica ceasului, politica celei de-a
doua anse (second-chance).
3) Politica de scriere: odat cu prezena unui cache, datele efectiv devin duplicate:
exist o copie n cache. Cnd se fac scrieri, care dintre copii trebuie modificat?
Una sau amndou? n funcie de circumstane exist varii rspunsuri la aceast
ntrebare.
4) Metoda de identificare: cnd se dorete ceva din memoria lent se indic adresa
la care acel obiect se gsete. Principiul transparenei (faptul c interfeele sunt
identice) implic faptul c n cache datele s fie cutate tot dup aceast adres;
dar cum cache-ul este mic, adresele din memoria extern (= memoria lent) nu
reprezint adrese i n memoria rapid. Cum gsesc datele? Rspunsul este dat
de metoda de identificare i strns legat de politica de nlocuire, pentru c datele
trebuie cutate acolo unde puteau fi aduse.
5) Timpul de via al informaiei: dac dintre copiile pe care le avem (una n cache
i alta n memorie) una se schimb? Care este cea bun dup aceea? Ce trebuie
fcut cu cealalt? Cu ce ocazie trebuie fcut schimbarea?
5.2.2. Cache-ul de disc

Orice sistem de operare modern (mai puin MS-DOS) are un cache de disc.
(Chiar i pentru MS-DOS exist smar t dr i ve sau ncache de la Norton). Cache-ul de
disc este probabil una din cele mai mari surse de eficien ntr-un sistem de operare.
Acesta se datorete faptului c diferena ntre timpul de acces la disc i cel la memorie
este uria (timpul de acces al unei memorii este de circa 60-70 de nanosecunde, adic
60x10
-9
s, iar timpul de acces al unui disc este de ordinul a 10 milisecunde, adic 10x10
-
3 s. Cache-ul de disc este o structur de date care conine un vector de blocuri de


86
mrime egal. Discul este la rndul lui mprit n blocuri de aceeai dimensiune. Cnd
utilizatorul cere un octet de pe disc, blocul care conine acel octet este ncrcat n cache,
eventual scond un alt bloc afar.
Din cele 5 puncte de vedere indicate anterior, un cache de disc are urmtoarele
caracteristici:

1) Mrimea blocului: Blocuri mari (512 octei - 8 Kb).
2) Politica de nlocuire: Politica de nlocuire cea mai frecvent este cea de
excludere a datelor nefolosite de cel mai mult timp (Least Recently Used).
3) Politica de scriere: Cache-urile de disc sunt n general ``write-back''. Asta
nseamn c atunci cnd se scrie pe disc, modificrile sunt fcute doar n cache.
Ele sunt mutate pe disc doar cnd blocul respectiv este dat afar, sau cnd acest
lucru este cerut explicit de utilizator.
4) Metoda de identificare: Pentru a gsi un bloc n cache se folosesc algoritmi de
hash, care sunt foarte eficieni (orice carte elementar de algoritmi descrie hash-
urile).
5) Timpul de via al informaiei din cache: Pentru a preveni catastrofele, sistemele
de operare ``golesc'' (scriu toate blocurile modificate) din cache pe disc periodic
(de ex. la 30 de secunde).
5.2.3. Cache-ul microprocesorului

Un microprocesor la 200 de Megahertzi (un Pentium pro, de pild) are un ciclu
de instruciune de1/(200x10
6
) = 5 nanosecunde. O instruciune poate dura un numr
variabil de cicluri, ntre 1 i cteva zeci. Executarea unei instruciuni nseamn: citirea ei
din memorie, decodificarea, executarea, memorarea rezultatelor. Dac accesul la
memorie dureaz 60 de nanosecunde atunci la fiecare citire procesorul trebuie s piard
12 cicluri! Din cauza asta ntre microprocesor i memoria RAM principal se pune un
cache construit din memorie rapid, cu timp de acces de 5-10 nanosecunde.
Cteodat designerii pun chiar mai mult dect att: dou nivele de cache ntre
procesor i RAM: un nivel ceva mai lent, dar mai mare (pentru un PC ntre 64Kb i
512Kb de obicei), i un cache construit chiar n microprocesor, de ordinul a 1-10Kb,
mult mai rapid.
Aceste cache-uri se implementeaz folosind hardware specializat.

1) Mrimea blocului: blocurile sunt mici 1 - 16 octei.
2) Politica de nlocuire i 4) Metoda de identificare:

Exist dou clase mari de cache-uri de microprocesor, i una intermediar. Ele
difer prin locurile din cache n care un octet din memoria extern poate fi plasat. Cele
dou mari varieti sunt: cache-ul cu adresare direct, n care locul fiecrui octet este
unul i precis calculat, i cache-ul asociativ, n care un octet din memoria extern poate
fi plasat n orice loc din cache.



87

5.2.4. Cache-ul cu adresare direct (direct mapped)

De obicei chiar structura adresei este folosit la cutare. Figura 5.8 arat cum
este plasat un anume bloc n cache: biii de la sfritul adresei blocului dau i posibila
poziie a blocului n cache. Biii din nceputul adresei blocului constituie verificarea
dac blocul este cel aflat n cache (mai multe blocuri candideaz pentru aceeai poziie;
cel care se afl nuntru este indicat prin etichet (tag)).
n fine, ultimii bii din adres indic poziia octetului n blocul de date.
Figura 5.8. Cache-ul cu adresare direct
Marele avantaj al schemei directe este c dat fiind adresa, poziia n cache a blocului
este unic determinat, i nu trebuie fcut nici o cutare. Politica de nlocuire nu exist
din acelai motiv: nu poi alege n ce loc s aduci un bloc. Din cauza asta funcia de
cutare i cea de nlocuire sunt identice.

5.2.5. Cache-ul cu adresare asociativ (fully associative)
Cache-ul cu adresare asociativ se bazeaz pe un dispozitiv hardware foarte
simpatic, care se numete memorie asociativ (din cauza prezenei ei i capt cache-ul
numele).
O memorie obinuit ofer dou operaii: (a) dndu-se o adres, citete
coninutul i (b) dndu-se o adres i o valoare scrie aceast valoare acolo.


88
Pe lng aceste operaii o memorie asociativ mai ofer nc una: dndu-se o
valoare, poate spune la care adres se gsete ea. O memorie asociativ nu este
tehnologic greu de construit, ns este un dispozitiv relativ costisitor.
Un cache asociativ folosete o memorie asociativ pentru a memora adresele
externe ale blocurilor care corespund fiecrui bloc din cache.
Un bloc poate acum ocupa orice poziie n cache; cnd este cutat memoria
asociativ spune unde se afl.
Politica de nlocuire va fi ns ceva mai complicat, oricare din schemele nirate
fiind un candidat.
5.2.6. Cache-ul parial asociativ (set-associative)

Putem s ne imaginm un cache parial asociativ ca o colecie de mai multe
cache-uri directe care lucreaz n paralel. Fie k numrul de astfel de cache-uri directe.
(un astfel de cache se numete ``associative on k ways'' -- asociativ pe k direcii).
Ideea este simpl: cnd caut o adres folosesc adresare direct n toate cele k
cache-uri directe simultan. Dac blocul se gsete ntr-unul am rezolvat problema. Dac
nu, aleg unul dintre ele pentru nlocuire. Numele este de ``parial asociativ'', pentru c
plasamentul n cele k blocuri posibile este oricare, ca la un cache asociativ.
S revenim la discuia privind cache-urile microprocesoarelor.
3) Politica de scriere, 5) Timpul de via al informaiei din cache: Dac mai multe
microprocesoare sunt legate la aceeai memorie, exist riscul ca fiecare s fac
modificri n propriul cache, obinnd astfel rezultate eronate, aa cum arat i
figura 5.9. Din cauza asta cache-ul se face adesea ``write-through'': toate modificrile se
fac simultan n memorie i n cache. Cache-urile monitorizeaz modificrile fcute n
memorie de celelalte cache-uri i invalideaz copiile datelor pe care le posed i care au
fost modificate. (Un astfel de cache se numete ``snooping cache'': cache care trage cu
urechea, s vad dac altcineva nu modific memoria extern).



Figura 5.9. Acces prin dou cache-uri


89

5.3. Gruparea memoriilor

Aa cum s-a artat, una din caracteristicile importante ale memoriei este
reprezentat de capacitatea acesteia. Capacitatea reflect cantitatea de informaie ce se
poate stoca ntr-o memorie i este strns legat de structura acesteia. Gruparea
memoriilor reprezint metoda de cretere a capacitii de stocare prin conectarea
mpreun a mai multor memorii de capacitate mai mic. Pentru a vedea care sunt
metodele de grupare a memoriilor vom studia mai nti semnalele unei memorii.
O memorie are nevoie de mai multe semnale de intrare i poate furniza mai
multe semnale de ieire. Aa cum s-a artat n paragraful 5.1, o memorie este alctuit
din mai multe celule de o anumit dimensiune (un anumit numr de bii) care sunt
identificate prin adres. Din acest punct de vedere, o memorie necesit un anumit numr
de adrese cu ajutorul crora se identific fiecare celul de memorie n parte. Semnalele
de adres sunt semnale binare (pot avea valoarea zero sau unu), fiecare celul de
memorie fiind identificat de o combinaie unic de pe magistrala de adrese. Astfel,
dac o memorie are, spre exemplu, opt celule de memorie, atunci sunt necesare opt
combinaii distincte de cifre zero sau unu. Cele opt combinaii distincte pot fi obinute
cu ajutorul a log
2
8 = 3 cifre binare. Altfel spus, cu ajutorul a trei cifre binare se pot
obine 2
3
= 8 combinaii distincte: 000, 001, 010, 011, 100, 101, 110 i 111.
Celula de memorie selectat permite citirea sau scrierea simultan a tuturor
biilor pe care aceasta i conine. Din acest motiv, o memorie necesit pe lng liniile de
adres i un anumit numr de linii de date, numrul liniilor de date fiind egal cu
numrul de bii ai celulei de memorie. Liniile de date trebuie s fie bidirecionale (ca sa
permit citirea sau scrierea biilor celulei de memorie) cu trei stri (s poat trece n
starea de nalt impedan) pentru a permite conectarea n paralel a mai multor memorii.
Este evident c n cazul memoriilor ROM liniile de date nu sunt bidirecionale din cauz
c aceste memorii nu pot fi dect citite dar trebuie, de asemenea s aib starea de nalt
impedan pentru a putea fi conectate la magistrala de date a sistemului.
Cea de a treia categorie de semnale necesare unei memorii sunt semnalele de
comand. Semnalele de comand principale ale unei memoriei sunt:

semnalul de comand al seleciei circuitului (Chip Select notat CS) care
este un semnal de intrare n memorie i care determin starea magistralei
de date (acest semnal nu poate lipsi la nici un tip de memorie):
o CS = 1, pe magistrala de date circul semnale, fiecare linie a
magistralei putnd avea un semnal care este n starea unu sau zero
logic (n memorie se poate scrie sau din memorie se poate citi);
o CS = 0, pe magistrala de date nu circul semnale, aceasta fiind n
starea de nalt impedan;
semnalul de comand al citirii din memorie sau scrierii n memorie
( Write ad / Re - notat W R/ ) care este un semnal ce determin direcia
magistralei de date (acest semnal lipsete la memoriile ROM):
o 1 / = W R , din memorie se citete, sensul magistralei de date fiind
din memorie spre exterior; la un moment dat se citesc biii celulei


90
de memorie, selectate de combinaia aflat pe magistrala de
adrese;
o 0 / = W R , n memorie se scrie, sensul magistralei de date fiind
din exterior spre memorie; la un moment dat se scriu biii celulei
de memorie, selectate de combinaia aflat pe magistrala de
adrese;

Pe lng aceste semnale, mai exist o serie de semnale de comand diverse, cum
ar fi semnalele de remprosptare, care nu sunt implicate n funcionarea de baz a
memoriei.
Memoria, ca matrice, este definit de declaraia:

memoria: array (0p) of byte

unde p reprezint numrul de celule de memorie cu dimensiunea de un octet (byte). O
astfel de memorie are nevoie de linii de adrese i opt linii de date. n
2
log
Bineneles c celula de
memorie poate avea i
dimensiunea de un cuvnt
(word) sau pointer sau
dimensiuni mai mici cum ar fi
1 bit sau 4 bii.
n continuare vom
considera memorii generice
care au adrese, date i
semnalele de comand: CS i
W R/ , aa cum se arat n
schema bloc a unei memorii
generice din figura 5.10.


memorie
de
2
n
x m
bii

A
0
A
1
.
.
.
A
n

CS
W R/
D
0
D
1
.
.
.
D
m
adrese
date
comenzi
Figura 5.10. Schema bloc a memoriei.
Capacitatea memoriei poate fi exprimat de ctre o relaie similar cu relaia
(5.1).

capacitatea = 2
numrul de linii de adres (n+1)
x numrul de linii de date (m+1) (5.1)

De exemplu, capacitatea unei memorii cu zece linii de adres i opt linii de date va fi:

C = 2
10
x 8 bii = 1024 x 8 bii = 1k octet = 1ko

Capacitatea exprimat n forma dat de ecuaia 5.1 se numete capacitate
structural deoarece permite determinarea structurii unei memorii. Pentru exemplul
anterior avem: C = 1024 x 1 octet, care ne permite s aflm structura memoriei: 10 linii
de adres ( ), care pot selecta n mod univoc 1024 ( ) celule de
memorie care au cte 8 bii (magistrala de date este de un octet).
10 1024 log
2
= 1024 2
10
=
Capacitatea se poate exprima i prin valoarea ei absolut, rezultatul nmulirii
numrului de celule de memorie cu dimensiunea acestora, obinndu-se numrul de


91
celule elementare de memorie cu dimensiunea de un bit (de exemplu 1ko), valoare care
ns nu ne mai d informaii asupra structurii. O memorie de 1ko poate fi: o memorie de
1024 x 1 octet sau o memorie de 2048 x 4 bii.
Gruparea memoriilor poate face n trei moduri:

gruparea n scopul creterii numrului de linii de date ale memoriei,
numrul de linii de adres rmnnd neschimbat; creterea numrului
de linii de date a memoriei nseamn de fapt creterea numrului de
bii ai celulei de memorie (numrul de bii citii sau scrii din/n
memoria respectiv) ai memoriei rezultate. Evident c mrirea
capacitii celulei de memorie va determina creterea corespunztoare
a capacitii totale a memoriei;
gruparea n scopul creterii numrului de linii de adres a memoriei,
numrul liniilor de date rmnnd nemodificat; creterea numrului
de linii de adres nseamn de fapt creterea numrului de celule de
memorie ai memoriei rezultate, capacitatea celulei (numrul de linii
de date) rmnnd neschimbat; i n acest se produce modificarea
corespunztoare a capacitii memoriei;
gruparea mixt n care se crete att numrul de linii de adres ct i
numrul liniilor de date.

5.3.1. Creterea capacitii memoriei prin creterea numrului de linii de date

Creterea numrului de linii de date este necesar, spre exemplu, atunci cnd
dispunem de memorii cu opt linii de date (un octet) i dorim s le conectm la un sistem
care are o magistral de date cu 16 linii (un cuvnt word).
Vom exemplifica modul de grupare pe acest exemplu. Presupunem c avem
nevoie de o memorie de 8kw (8 kilo word 8 kilo cuvinte) i nu dispunem dect de
memorii de 8kb (8 kilobyte 8 kilo octei). Se observ faptul c ntre memoriile
disponibile i cele necesare nu difer dect numrul de linii de date (necesar 16, existent
8), numrul de linii de adres fiind acelai (8192 de celule nseamn linii
de adres: A
13 8192 log
2
=
0
la A
12
). Vom determina mai nti cte memorii sunt necesare. Capacitatea
absolut a memoriei ce trebuie obinut este:

C = 8192 x 16 bii = 131 072 bii.

Capacitatea memoriei existente este:

C = 8192 x 8 bii = 65 536 bii.

Rezult deci c pentru a obine o memorie de 8 kword avem nevoie de
131072/65536 = 2 memorii de 8 kbytes.
Modul de conectare a celor dou memorii de 8 kb pentru obinerea unei memorii
de 8 kiloword este prezentat n figura 5.11.


92
Se observ c pentru gruparea memoriilor n vederea extinderii numrului de
linii de date, liniile de adres i liniile de comand se leag n paralel iar liniile de date
se pun mpreun formnd magistrala de date a memoriei rezultate.

OE
A9
A10
U2
5962-38294
10
9
8
7
6
5
4
3
25
24
21
23
2
20
26
22
27
11
12
13
15
16
17
18
19
A0
A1
A2
A3
A4
A5
A6
A7
A8
A9
A10
A11
A12
CS1
CS2
OE
WE
D0
D1
D2
D3
D4
D5
D6
D7
A0
A0
A5
A0
A0
A0
A0
A6
A0
A0
MEMORI E DE 8K X 16 BI TI
A4
A1
WE
A0
A11
A0
A7
A0
A2
A12
U1
5962-38294
10
9
8
7
6
5
4
3
25
24
21
23
2
20
26
22
27
11
12
13
15
16
17
18
19
A0
A1
A2
A3
A4
A5
A6
A7
A8
A9
A10
A11
A12
CS1
CS2
OE
WE
D0
D1
D2
D3
D4
D5
D6
D7
A0
CS1
A0
A8
A0
CS2
A3
A0
A0
A0
Figura 5.11. Gruparea memoriilor pentru creterea numrului liniilor de date.

5.3.2. Gruparea memoriilor pentru creterea numrului de linii de adres

Creterea numrului de linii de adres este necesar pentru creterea capacitii
unei memorii fr modificarea dimensiunii celulei de memorie.
Pentru a explica principiul vom considera un exemplu simplu. S presupunem c
dorim s obinem o memorie de 8 x 1 bit cu ajutorul unor memorii de 4 x 1 bit. Att
memoria pe care dorim s-o obinem ct i memoriile disponibile au celule de aceeai
dimensiune (un bit). Ceea ce se dorete este creterea numrului acestor celule.
Memoriile disponibile, cele de 4 x 1 bit, necesit dou linii de adres pentru selectarea
uneia din cele patru celule iar memoria care se dorete a fi obinut, cea de 8 x 1 bit are


93
nevoie de 3 linii de adres. Rezult c numrul de linii de adres trebuie crescut de la
dou linii la trei.
Vom analiza acum modul de adresare al celulelor de memorie. Fiecare celul a
memoriei este adresat n mod univoc de ctre o combinaie binar de pe magistrala de
adrese aa cum se arat n tabelul 5.3. Din acest tabel se observ faptul c cele patru
combinaii ale liniilor de adres A
1
A
0
se
repet de dou ori la memoria de 8 x 1 bit, o
dat pentru A
2
= 0 i o dat pentru A
2
= 1.
Rezult c este posibil s realizm memoria
de 8 x 1 bit cu ajutorul a dou memorii de 4 x
1 bit este necesar sa selectam una din
memoriile de 4 x 1 bit cnd A
2
= 0 i s
selectm cealalt memorie de 4 x 1 bit cnd
A
2
= 1. Rezult c semnalele de selecie a
memoriilor de 4 x 1 bit vor fi folosite pentru
crearea liniei de adres A2 i va trebui s
crem un nou semnal de selecie pentru
memoria rezultat. Vom exemplifica pe
acelai tip de memorie de 8k x 1 octet. Prin gruparea acestora n scopul creterii
numrului de linii de adres (creterea numrului de celule de opt bii) se va crea o noua
linie de adres (A
13
) memoria obinut avnd 16k x 1 octet.
TABELUL 5.3.
memorie 4x1bit memorie 8 x 1bit
A
1
A
0
A
2
A
1
A
0
0 0 0 0 0
0 1 0 0 1
1 0 0 1 0
1 1 0 1 1
1 0 0
1 0 1
1 1 0

1 1 1
n acest caz, liniile de date se cupleaz n paralel deoarece dimensiunea celulei
de memorie rmne nemodificat (figura 5.12). Memoria inactiv la un moment dat are
U5A
74LS04
1 2
A9
OE
D5
D7
D1
CS1
U4A
74LS08
1
2
3
MEMORI E DE 8K X 1 OCTET
U1
5962-38294
10
9
8
7
6
5
4
3
25
24
21
23
2
20
26
22
27
11
12
13
15
16
17
18
19
A0
A1
A2
A3
A4
A5
A6
A7
A8
A9
A10
A11
A12
CS1
CS2
OE
WE
D0
D1
D2
D3
D4
D5
D6
D7
CS2
A10
A2
A5
A1
WE
A0
D0
U2
5962-38294
10
9
8
7
6
5
4
3
25
24
21
23
2
20
26
22
27
11
12
13
15
16
17
18
19
A0
A1
A2
A3
A4
A5
A6
A7
A8
A9
A10
A11
A12
CS1
CS2
OE
WE
D0
D1
D2
D3
D4
D5
D6
D7
A7
A13
A8
A11
A12
D3
A4
D4
U3A
74LS08
1
2
3
A3
D2
A6
D6
Figura 5.12. Gruparea memoriilor prin extinderea liniilor de adres.


94
liniile de date n starea de nalt impedan (prin comanda seleciei circuitului respectiv)
i n acest fel liniile de date ale celor dou memorii pot fi cuplate mpreun.

OBSERVAIE: din cele dou exemple prezentate anterior rezult valoarea capacitii
memoriei finale este multiplu ntreg de valoarea capacitii memoriei finale.

5.3.3. Gruparea mixt

Gruparea mixt const n creterea att a numrului de linii de date ct i a
creterii numrului de linii de adres ceea ce nseamn creterea dimensiunii celulei de
memoriei i a numrului de celule.
Pentru a realiza o astfel de grupare se realizeaz mai nti gruparea memoriilor
n vederea creterii numrului de linii de date dup care memoriile obinute se grupeaz
prin creterea numrului de linii de adres, obinndu-se n final memoria dorit.
Vom exemplifica acest lucru prin realizarea unei memorii de 2k octei cu
ajutorul unor memorii de 1k x 4 bii.
Capacitatea absolut a memoriei rezultate este:

C = 2 x 1024 x 8 bii = 16384 bii

Aceast capacitate trebuie s fie multiplu ntreg de capacitatea memoriilor iniiale.
Memoria iniial are capacitatea absolut:

C = 1024 x 4 bii = 4096 bii.

Rezult c sunt necesare 16384 : 4096 = 4 memorii de 1k x 4 bii. Aceste patru
memorii se vor grupa astfel: mai nti memoriile se grupeaz dou cte dou prin
extinderea numrului de linii de date, obinndu-se dou memorii cu dimensiunea de 1k
x 8 bii. Cele dou memorii obinute se grupeaz prin extinderea numrului de linii de
adres, rezultnd memoria final de 2k octei.

5.4. Adresarea memoriilor

ntr-un sistem de calcul, principalul modul master care genereaz adrese este
unitatea central. Numrul total de adrese pe care-l poate genera unitatea central
reprezint spaiul maxim de adresare. Acest spaiu se mparte, conform semnalelor de
comand generate de unitatea central, ntre memorie i porturi. Exist mai multe
moduri de adresare a acestora n funcie de utilizarea spaiului maxim de adresare.
Adresarea memoriei (sau a porturilor) poate fi absolut dac la formarea adresei se
folosesc toi biii de adres sau relativ (care se mai numete i redundant) dac se
folosesc numai o parte din biii de adres.

5.4.1. Adresarea absolut

La adresarea absolut se folosesc toi biii de adres de pe magistrala de adrese
pentru selectarea unei locaii de memorie (sau a unui port).

95


A
15
A
14
A
13
A
12
A
11
A
10
A
9
A
8
A
1
A
0
0 0 0 0 0 0 x x x x
0 0 0 0 0 1 x x x x
0 0 0 0 1 0 x x x x
.
.
.
1 1 1 1 1 1 x x x x

x x x x -> orice combinaie ntre
0000 i 11 11

Vom explica adresarea
absolut printr-un exemplu.
Considerm c ntr-un sistem
magistrala de adrese are 16 linii (A
0
,
A
1
, , A
15
) deci spaiul maxim de
adresare este de 64 k (2
16
= 65536).
Pe aceast magistral dorim s
conectm o memorie de 1k
(dimensiunea datelor nu are
importan aici). Pentru adresarea
celor 1024 de celule de memorie din
memoria de 1k avem nevoie de 10
linii de adres (A
0
, A
1
, , A
9
) restul
de 6 linii de adres (A
15
, A
14
, ,
A
10
) fiind folosii la selecia
circuitului. Astfel adresele A
0
, A
1
,
, A
9
se leag la liniile de adres ale
memoriei iar adresele A
10
, A
11
, ,
A
15
se leag printr-un circuit de selecie la intrarea CS a memoriei. n acest fel memoria
poate fi aezat la una din cele 64 de adrese posibile din memorie (figura 5.13).
adrese pentru
selecia
memoriei de 1k
adrese pentru
selecia unei
celule din
memoria de 1k
valoare n
zecimal
0
1
2
.
.
.
63
Figura 5.13. Posibilitile de adresare absolut a
unei memorii de 1k.
Prin adresarea absolut, o locaie de memorie se gsete la o singur adres de
memorie.

5.4.2. Adresarea relativ (redundant)

n cazul adresrii redundante, adresele (sau o parte dintre acestea) nu sunt
folosite la selecia memoriei. n acest fel o celul de memorie se poate gsi la mai multe
adrese diferite.
Relund exemplul din paragraful anterior, dac se leag semnalul de selecie al
memoriei de 1k la valoarea unu logic (memorie permanent selectat) i n acest fel se
face abstracie de adresele A
15
, A
14
, , A
10
, adresarea unei locaii din aceast memorie
este redundant.
Astfel, celula de memorie de la adresa 0 se va gsi la 64 de adrese distincte: 0,
400h, 800h, C00h i aa mai departe, pn la adresa FFFFh. Acest lucru se ntmpl
deoarece numai adresele A
0
, A
1
, , A
9
particip la selecia celulei, adresele fiind
ignorate.


96



CAPITOLUL 6

PORTURI (INTERFEE)

6.1. Prezentare general

Porturile sunt module destinate conectrii sistemului de calcul cu dispozitivele
externe care sunt numite generic
dispozitive periferice. La porturi se
conecteaz att dispozitivele generale de
intrare/ieire (tastatur, monitor) ale
calculatorului ct i cele specifice. De
asemenea dou porturi de aceeai natur se
pot conecta ntre ele n scopul transmiterii
informaiei de la un sistem de calcul la
altul. Porturile sunt n general circuite de
viteze mic, ele fiind conectate la
magistralele de vitez mai redus ale
calculatorului. O parte din porturile
sistemului de calcul au destinaii specifice
i poart denumirea de controlere. Dintre
acestea mai importante sunt: controlerul de
tastatur, controlerul video, controlerul
discului dur (hard disc), controlerul
discului flexibil (floppy disc) i controlerul de reea. Alte porturi au destinaii generale,
la aceste porturi putnd fi conectate diferite dispozitive periferice; dintre porturile de uz
general mai importante fiind portul serial, portul paralel, portul SCSI (Small Computer
System Interface) i portul USB (Universal Serial Bus). Datorit faptului c, n general,
un port trebuie s realizeze att conversia semnalelor dispozitivelor periferice la
semnale compatibile cu semnalele sistemului de calcul, ct i invers, asigurnd
circulaia informaiei n ambele sensuri, acestea se mai numesc i interfee. Prin
interfa se nelege un ansamblu format din echipamente i programe destinat cuplrii
ntre dou sisteme cu caracteristici diferite. Dispozitivele periferice se conecteaz la
porturi prin intermediul unor conectori, un exemplu fiind prezentat n figura 6.1.

Fig. 6.1. Conectorii pentru porturi n cazul
unui calculator personal
Fiecare port are alocat o adres (un numr) pe care unitatea central o folosete
pentru identificarea portului respectiv n schimbul de date cu acesta. Este foarte
important ca toate porturile dintr-un calculator s aib adrese diferite. Dac dou porturi
au aceeai adres, atunci apare un conflict din cauz c unitatea central nu va fi
capabil s disting de la care port sosesc informaiile.
n general activitatea de atribuire a adreselor tuturor porturilor dintr-un sistem de
calcul se face n mod automat de ctre sistemul de operare. Uneori, dac numrul


97
perifericelor este mare sau din generaii diferite, se poate ntmpla ca sistemul de
operare s nu poat realiza alocarea corect a adreselor perifericelor. n acest caz
alocarea adreselor se poate face manual de ctre operator.
Porturile fiind n general
componente lente ale sistemului de calcul,
este neeconomic ca unitatea central s
lucreze la un moment dat numai cu un
port. Modul de lucru cu un port se
desfoar simplificat n felul urmtor:
unitatea central trimite o comand la un
port dup care continu rezolvarea altor
sarcini. n momentul n care portul este
capabil s rspund solicitrii, ntrerupe
activitatea curent a unitii centrale,
primete o nou comand, dup care
unitatea central nu se mai ocup de port
pn la o nou ntrerupere. n felul acesta
orict de lent este un port el nu scade
viteza de lucru a unitii centrale. Acest
mecanism necesit, pe lng alocarea unei
adrese i alocarea unei ntreruperi (un
numr) fiecrui port n aa fel nct n
momentul lansrii unei cereri de
ntrerupere, unitatea central a
calculatorului s poat determina care este
portul care a cerut ntreruperea. Evident
c i n cazul ntreruperii este bine ca
fiecare port s dispun de o ntrerupere
separat. Dei aceast condiie nu este la
fel de restrictiv ca cea n cazul adresei, n
unele cazuri mai multe porturi putnd
avea alocat aceeai ntrerupere, n marea
majoritate a cazurilor numrul ntreruperii
trebuie s fie diferit de la un port la altul.
Din cele artate rezult c un port
necesit alocarea din partea sistemului de
operare sau a programatorului a dou
numere: adresa i numrul ntreruperii,
fapt ce-l individualizeaz fa de celelalte
porturi din sistem. n figura 6.2 este
prezentat modul n care sistemul de
operare Windows95 ofer informaii
despre setrile unui port. Din aceast
figur se vede c portul de comunicaii
COM1 are alocate adresele de la 03F8h la 03FFh i ntreruperea 04.

Fig. 6.3. Parametrii portului serial

Fig. 6.2. Alocarea adresei i ntreruperii la
portul serial COM1


98
Portul serial al calculatorului necesit o atenie special din cauz c el este n
general portul de comunicaii. Prin intermediul acestui port se pot transmite date la
distan n mod serial asincron. Transmisia serial este metoda cea mai ieftin de a
schimba date ntre dou echipamente numerice aflate la distan. Dei transmisiile
seriale nu sunt transmisii de date de vitez mare ele prezint avantajul c datele sunt
transmise pe un singur canal de comunicaie i deci nu sunt necesare cheltuieli mari.
Modul serial de transmisie presupune c la un moment dat s se transmit un singur bit.
Asta nseamn c biii unui octet vor fi transmii la opt intervale de timp distincte. n
cazul transmisiei seriale este necesar ca att echipamentul care transmite datele
(emitorul) ct i echipamentul care primete datele (receptorul) s aib aceeai
parametrii ai transmisiei. Pentru transmisia serial asincron parametrii transmisiei
sunt: viteza de transmisie care se msoar n bii pe secund (bps), numrul de bii
transmii ntr-un cadru, paritatea, numrul de bii de stop i protocolul de control al
fluxului de date. n figura 6.3 este prezentat un exemplu de stabilire ai parametrilor
transmisiei. Standardul adoptat pentru interfaa seriala este standardul RS 232.
Porturile sunt n general dispozitive programabile. Asta nseamn c ele accept
prin nscrierea unor cuvinte de comand n port. Din acest motiv, pentru funcionarea
corect a unui port nu sunt suficiente numai alocarea adresei i a ntreruperii ci este
necesar i programarea portului. Pentru simplificarea programrii i utilizrii portului
se folosesc nite programe specifice numite drivere. Aceste programe sunt ncrcate n
memorie de ctre sistemul de operare i
ele constituie o interfa ntre
programele utilizatorului i port. n
figura 6.4 este reprezentat schematic
modul de funcionare a unui driver.
Programele driver sunt furnizate de
ctre productorii de echipamente
periferice i asigur funcionarea
optim a acestora. Din acest motiv
utilizatorul unui sistem de calcul nu are
dect sarcina de a obine de la
productorii de echipamente periferice
a versiunilor noi ale driverelor i s le
instaleze pe calculator.
Fig. 6.4. Funcionarea unui program driver
pentru un port
Noua tehnologie de realizare a porturilor inteligente s-a extins tot mai mult. Cu
ajutorul acestei tehnologii, utilizatorul este degrevat de sarcina de a mai configura
porturile sistemului, acestea fiind recunoscute automat i programate corespunztor de
ctre programele cu care este nzestrat sistemul de calcul. Aceast tehnologie numit
PnP (Plug and Play) permite utilizatorului s realizeze extinderi ale sistemului de calcul
simplu i comod, aa cum arat i numele tehnologiei, prin simpla montare a
componentei noi n sistemul de calcul, fr a mai fi necesare alte operaii suplimentare.
n continuare vor fi prezentate porturile dezvoltate de firma Intel pentru sistemul
de calcul prevzut cu unitatea central I8086. Datorit faptului c aceste dispozitive au
fost larg rspndite ele au devenit un standard "de facto" pentru circuitele dezvoltate
ulterior.



99
6.2. Interfaa serial programabil 8251

Interfaa serial programabil 8251, cunoscut i sub numele de Receptor
Transmitor Universal
Sincron/Asincron (USART), este
realizat n tehnologia NMOS, pe o
pastil cu 28 de terminale. Ca interfa
serial de I/E accept date, sub form de
caractere, transmise n paralel, de ctre
unitatea central de prelucrare i le
convertete ntr-un format serial, pentru a
fi transmise ctre un echipament de
ieire. n acelai timp, poate recepiona
date transmise serial, de ctre un
echipament de intrare, convertindu-le n
caractere, ce se transfer n paralel, ctre
unitatea central de prelucrare.
Interfaa semnalizeaz ctre unitatea
central de prelucrare, n cazurile n care
poate accepta un nou caracter, n vederea
transmisiei sau cnd a recepionat un
caracter, pentru unitatea centrala.
Interfaa poate fi programat pentru
diverse opiuni privind funcionarea, iar
starea ei poate fi citit, n orice moment,
de ctre unitatea central de prelucrare.
n figura 6.5 sunt prezentate
semnificaiile terminalelor iar n figura
6.6 schema bloc a interfeei seriale
programabile 8251.
1 28
2 27
3 26
4 25
5 24
6 23
7 8251 22
8 21
9 20
10 19
11 18
12 17
13 16
14 15
D1
D0
Vcc
RxC
DTR
RTS
DSR
RESET
CLK
TxD
TxE
CTS
SYNDET
TxRDY
D2
D3
RxD
MASA
D4
D5
D6
D7
TxC
WR
CS
C/D
RD
RxRDY
Figura 6.5. Semnificaia terminalelor
interfeei seriale programabile 8251.
D
7
-D
0
- conexiuni la magistrala de date a
Microsistemului (bidirecional);
RESET - aducere n condiii iniiale (intrare);
CLK - ceasul dispozitivului (intrare);
C/D - semnal de selecie: comand/data
(intrare);
RD - citete data sau starea pe magistrala
D
7
-D
0
(intrare);
WR - scrie data sau comanda de pe
magistrala D
7
-D
0
(intrare);
CS - selecie circuit (intrare);
DSR - indicator echipament de date pregtit
(intrare);
DTR - indicator terminal de date pregtit (ieire);
CTS - indicator anulare n vederea
Transmisiei (intrare);
RTS - indicator cerere n vederea transmisiei
(ieire);
TxD - ieire serial de date (ieire);
TxRDY - transmitor pregtit pentru a primi date
pe magistrala D
7
-D
0
(ieire);
TxE - transmitor vid, nu are date de
transmis (ieire);
TxC - ceasul pentru transmisie serial (ieire);
RxD - intrare serial (intrare);
RxRDY - un caracter este pregtit pentru a fi
transmis pe magistrala D
7
-D
0
(ieire);
RxC - ceasul pentru recepie serial (intrare);
SYNDET forare sau detecie sincron de date
(bidirecional);
Comunicaia serial, cu
echipamente locale sau plasate la
distan, legate prin modemuri, poate fi
realizat de ctre interfaa 8251, fie sub
forma asincron, fie sub forma sincron.
n cazul transmisiei asincrone (fig. 6.7)
fiecrui caracter manipulat i se adaug
informaia de cadru, constnd dintir-un
bit de START, definit ca zero logic i
unul sau doi bii de STOP, definii ca unu
logic. Frontul negativ al bitului de
START indic receptorului uceputul
procesului de asamblare a unui caracter
din fluxul serial de bii, care urmeaz,
precum i sincronizarea cu
transmitorul. Sincronizarea are loc pe


100

tampon
stare
tampon
date
recepie
tampon date
emisie/comenzi
Transmitor
(P S)
Comanda
emisie
Comand
recepie
Recepie
(S P)

Logica de
comand
citete/
scrie

Comand
MODEM
TxD
TxRDY
TxE
TxC
RxRDY
SYINDET
RxC
RxD
RESET
CLK
C/D
RD
WR
CS
DTR
DSR
RTS
CTS
Figura 6.6. Schema bloc a interfeei seriale programabile 8251
durata transmisiei unui singur caracter. Bitul sau biii da STOP, adugai la sfritul
caracterului, asigur tranziia necesar pentru bitul de START al unui eventual nou
caracter. Aceasta permite adaptarea receptorului la viteza de lucru a transmitorului.
Dac ceasul receptorului este puin mai rapid dect al transmitorului, primul va
recepiona caracterele cu pauze ntre ele, dar le va recepiona corect.
bit de
start
stare MARK
bii de date
bit de
paritate
1-2 bii
de stop
Figura 6.7. Formatul asincron pentru transmisia serial.
5-8 bii
n cazul transmisiei sincrone (fig. 6.8), caractere se asambleaz sub forma unor
nregistrri, adugndu~se caractere de cadru la fiecare nceput de nregistrare.
Caracterele de cadru (SYN) sunt folosite de catre receptor pentru a determina nceputul
unei noi nregistrri. ntruct sincronizarea trebuie meninut pe parcursul unui ir destul
de lung de caractere, informaia referitoare la aceasta se extrage din canalul de
comunicaie sau de la o surs extern.

101

Comparnd cele dou modaliti de transmisie se constat c, pentru mesaje care
depesc 8 caractere, devine mai eficient transmisia sincron. Acest lucru poate fi
evideniat prin calculul numrului de bii suplimentari de START, STOP i respectiv de
caractere SYN, ce nsoesc datele pentru a fi transmise.
Transmisia asincron la distan se efectueaz cu modemuri asincrone, care
folosesc semnale de frecvene diferite pentru unu i respectiv zero logic.
La transmisia sincron modemul furnizeaz semnalul de sincronizare ctre
terminal i impune ca datele s-i fie livrate sincron cu acest semnal. Modemurile
sincrone pot opera numai la frecvene prestabilite. Modemul receptor, care are un
oscilator, lucrnd pe aceeai frecven, cu cel din modemul transmitor, i ajusteaz
faza dup cel din transmitor i interpreteaz orice modificare de faz ca fiind o
informaie, o dat.
n unele cazuri, cnd se urmrete creterea vitezei de operare, fr a schimba
protocolul, se opereaz ntr-un mod hibrid, datele cu format asincron fiind transmise
sincron. Aceast transmisie poart numele de isosincron.
Interfaa programabil 8251 poate lucra n modurile sincron, asincrun i isosincron.
n modul sincron ea manipuleaz caractere de 5, 6, 7 sau 8 bii, cu adugarea i
respectiv verificarea unui bit de paritate (par sau impar). Sincronizarea poate fi
realizat extern, printr-un hardware adecvat, sau intern, prin detectarea caracterului
SYN. Caracterele SYN pot fi diferite. Ele sunt inserate automat, de ctre interfa, la
transmisie, pentru a nu pierde sincronizarea, dac software-ul nu furnizeaz la timp
datele.
La transmisie asincron, interfaa opereaz cu caractere 5,6,7 sau 8 bii i cu
adugarea/verificarea bitului de paritate (par sau impar). Se adaug 1 bit de START i
1, l/2 sau 2 bii STOP. Receptorul testeaz cadrarea corect i poziioneaz un indicator,
n cazul unei erori. Interfaa poate fi programat sa accepte semnale de ceas, cu
frecvena de 16 sau 64 ori mai mare dect cea a semnalelor transmise.
Transmisia izosincron se consider ca un caz special de transmisie asincron cu
frecvena programat a interfeei ca fiind egal cu cea a ceasului
transmitorului/receptorului. Formatele asincron, sincron i izosincron pot fi transmise
n modurile semiduplex i duplex, datorit existenei n interfa a unor tampoane duble
pentru date.
Interfaa 8251 nu asigur toate semnalele de comand pentru un echipament de
transmisie a datelor, conform standardului EIA-RS-232-C. Pentru generarea semnalelor
neasigurate, de ctre 8251, se poate folosi un port auxiliar, al microprocesorului.
Nivelurile de tensiune solicitate de standardul EIA-RS-232-C vor fi realizate prin
circuite de atac i recepie corespunztoare (1488 i respectiv 1489).
Schema bloc din figura 6.6 const din cinci seciuni, care comunic ntre ele prin
intermediul unei magistrale interne. Cele cinci seciuni sunt: receptorul, transmitorul,
comanda modemului, comanda pentru citire/scriere i tamponul de I/E. Acesta din urm

caracter SYN

date caractere (6-8 bii/caracter) caracter SYN
Figura 6.8. Formatul sincron pentru transmisia serial.


102
a fost prezentat mai detaliat i const din urmtoarele subseciuni: tamponul de stare,
tamponul de transmisie date i comenzi, tamponul de recepie date.
Receptorul primete datele sub form serial, pe terminalul RxD, pe care le
asambleaz apoi n cuvinte, n conformitate cu un anumit format. n cazul n care este
pregtit s primeasc un caracter, n modul asincron, urmrete tranziia negativ a
semnalului RxD. La apariia unei asemenea tranziii declaneaz un generator intern,
pentru a putea genera un interval de timp, egal cu jumtatea perioadei unui bit. n cazul
n care testul, dup o jumtate de perioad,de bit, indic un nivel cobort, se consider
c s-a recepionat bitul de START al unui cuvnt. n continuare se asambleaz cuvntul
recepionat serial, prin testarea lui RxD, la fiecare jumtate de interval de bit.
Cuvntului asamblat i se ataeaz biii de paritate i de STOP, dup care este transferat
pe magistrala intern, n tamponul datelor recepionate, activndu-se semnalul RxRDY,
pentru a indica unitii centrale de prelucrare disponibilitatea unui caracter. Dac la
testarea bitului de START, se constat c la jumtatea intervalului de bit RxD este la
nivel ridicat sau daca s-a activat receptorul pe parcursul transmisiei unui caracter,
operaia se anuleaz i se rencepe procesul de testare pentru recepia unui nou caracter.
La recepia caracterelor avnd mai puin de 8 bii, examinarea se face la dreapta, iar
semnalul RxRDY este activat pentru a indica disponibilitatea unui caracter.
La transmisia sincron receptorul nregistreaz un numr specificat de bii, pe
care i transfer n registrul tampon de recepie, activnd RxRDY. Pentru a grupa corect
biii recepionai, receptorul trebuie sincronizat cu emitorul ceea ce se realizeaz n
modul HUNT.
In modul HUNT interfaa citete datele serial, bit cu bit, pe linia RxD,
comparnd, dup fiecare bit recepionat, coninutul registrului de recepie cu cel care
pstreaz caracterul SYN, ncrcat prin program. Modul HUNT ia sfrit cnd cele dou
caractere sunt identice, specificndu-se realizarea sincronizrii prin activarea semnalului
SYNDET. Dac interfaa a fost programat s accepte dou caractere SYN,
sincronizarea se va realiza n momentul n care dou caractere recepionate succesiv
sunt identice cu cele dou caractere SYN memorate anterior, prin program, n interfa.
Terminalul SYNDET este folosit pentru a sincroniza receptorul, n cazul n care
interfaa folosete o sincronizare extern.
Modul de lucru HUNT este stabilit prin cuvntul de comand (bitul D7) sau la
funcionarea interfeei n regim sincron.
Receptorul trebuie activat, n vederea operrii, prin bitul RxE (D2) al cuvntului
de comand. n acest caz el va furniza semnalul RxRDY activ, dac are pregtit un
caracter pentru a fi transmis pe magistrala DOD7.
Pe baza figurii 6.9 se poate explica modul n care se efectueaz recepia
caracterelor transmise serial.
La recepie, caracterele se asambleaz n RB (fig. 6.9, a), dup care sunt
transmise n paralel n registrul tampon RA (fig. 6.9, b). Coninutul lui RA trebuie citit,
de ctre unitatea central de prelucrare, n timp ce are loc recepia n RB a unui nou
caracter. Dac nu a avut loc citirea cuvntului lui EA, n timpul prestabilit, noul caracter
din RB va fi ncrcat n RA, peste vechiul caracter, semnalizndu-se o eroare de ritm,
prin poziionarea corespunztoare a bitului 4, n registrul de stare.
Transmitorul primete datele n paralel, de la unitatea central, le adaug
informaia de cadru, le serializeaz i le transmite la ieirea TxD (fig. 6.9, c).


103


D
0
D
7
Logic de
ramificaie
Logic de
ramificaie
Stare Comand
Ieire
date
Intrare
date
Selecie comand/stare
(i scriere/ citire)
Selecie comand/stare
(i scriere/ citire)
Registrul tampon RA Registrul tampon RA Stare
Registrul RB Registrul TB
Semnale de comand
RxD TxD
Figura 6.9. Recepia/Transmisia serial (a) Schema bloc.
RxD
Transfer
RB <- RA
Intrare serial a
caracterului 1 n RB
Intrare serial a
caracterului 2 n RB
Intrare serial a
caracterului 3 n RB
UCP citete
caracterul 1 din RA
UCP citete
caracterul 2 din RA
Figura 6.9. Recepia/Transmisia serial (b) Asamblarea caracterelor
TxD
Transfer
TB <- TA
Ieire serial a
caract. 1 din TB
Ieire serial a
caract. 1 din TB
Ieire serial a
caract. 1 din TB
UCP transfer
caracterul 3 n TA
UCP transfer
caracterul 4 n TA
UCP transfer
caracterul 2 n TA
Figura 6.9. Recepia/Transmisia serial (c) Serializarea caracterelor la transmisie



104
La transmisia asincron se ataeaz un bit de START i, n funcie de modul de
programare, dup cei 8 bii de date, se mai adaug un bit de paritate (par sau impar) i
1, 1/2 sau 2 bii de STOP.
n cazul transmisiei sincrone nu se introduc bii suplimentari dect n siutaia n
care calculatorul nu a furnizat caracterul ctre interfa. Aceasta, n mod automat, va
insera caracterul (caracterele) SYN, pentru a asigura o trasmisie continu a biilor.
Interfaa nu va iniializa transmisia dect dup ce a primit cel puin un caracter, din
partea unitii centrale. Caracterele SYN sunt specificate prin software, n cadrul
procedurii de iniializare.
Att n modul asincron ct i n cel sincron transmisia este blocat ct timp
intrrile TxE i CTS sunt la nivel ridicat. De asemenea, transmitorul poate genera
informaia BREAK, reprezentnd o perioad de octei, codificnd SPACE, pe linia de
transmisie, pentru a ntrerupe semnalul care se transmite, n cazul comunicaiei duplex.
Datele transmise apar, la ieire, la terminalul TxD, fiind controlate, ca vitez de
transmisie de ctre semnalul de ceas TxC. Acesta poate fi furnizat, fie de unitatea
central, fie de ctre o alt surs. La transmisia asincron datele sunt emise la frecvena
de 1/16 sau 1/64 din frecvena lui TXC . Datele sunt strobate de tranziia negativ a
semnalului de ceas TxC.
Logica de transmisie genereaz dou semnale de comand: TxRDY i TxE.
Semnalul TxRDY trece n 1 logic, atunci cnd coninutul registrului TA a fost
transferat n, TB, TA putnd fi acrcat cu un nou caracter. TxRDY ia valoarea logic 0,
atunci cnd urmtorul octet de date este transferat n TA. Starea TxRDY este disponibi
la terminalul TxRDY atunci cnd interfaa poate transmite (CTS=0 i TxE = l). n
registrul de stare al interfeei, TxRDY este poziionat n 1 logic, cnd registrul TA este
vid, indiferent de valorile semnalelor CTS i TxE.
Semnalul TxE este adus n 1 logic, cnd data din TB a fost serializat i
transmis, rmnnd n aceast stare pn la ncrcarea lui TB cu coninutul lui TA.
La transmisia sincron caracterele SYNC sunt ncrcate n TB prin intermediul
lui TA. Dac se va genera o comand, n. timp ce caracterul SYNC este ncrcat n TB,
se va obine un caracter eronat, care nu reprezint nici cod de comand, nici cod de
SYNC.
Seciunea referitoare la comanda modemului (fig, 6.6} genereaz semnalul,
DTR, indicnd faptul c interfaa este pregtit i recepioneaz, semnalul DSR,
indicnd faptul c modemul este pregtit. Semnalul DTR este generat pe baza
poziionrii n 1 a bitului 2 din cuvntul de comand, iar DSR poate fi testat prin
examinarea bitului 7 din cuvntul de stare.
Tot seciunea de comand a modemului recepioneaz semnalul CTS i
genereaz semnalul RTS , indicnd anularea n vederea transmisiei i respectiv - cerere
n vederea transmisiei.
Comanda intrrilor/ieirilor este asigurat prin logica de comand citete/scrie,
din figura 6.6, care decodific semnalele de comand, furnizate de unitatea central. n
tabelul 6.1 sunt prezentate semnalele de comand i funciile ndeplinite de ele.
Semnalele de comand de citire ( RD) i scriere (WR) pot aprea n orice moment, n
raport cu intrarea de ceas, deoarece logica de comand citete/scrie posed circuite
proprii de sincronizare.


105
TABELUL 6.1.
CS D C / RD WR
Funcia
0 0 0 1 Unitatea central citete data de la interfa.
0 1 0 1 Unitatea central sitete starea interfeei.
0 0 1 0 Unitatea central scrie data n interfa.
0 1 1 0 Unitatea central scrie o comand n interfa.
1 x x x Interfa neoperaional (magistrala n starea de mare
impedan)

Blocul tampon de I/E conine tamponul de stare, tamponul de date pentru
recepe i tamponul de date pentru emisie/comenzi. Tamponul de emisie date i de
comenzi este comun. Este important
ca, n acest tampon, s nu se nscrie o
comand, dac el deja conine o dat.
n cazul n care TxRDY este pe
nivelul cobort, nu se vor transfera
date sau comenzi n interfa
deoarece, n acest caz, se vor
transmite date eronate.




































Figura 6.10. Cuvntul de comand pentru interfaa
8251.(a), coninutul zonelor de memorie la

transmisiile: sincron (b) i asincron (c).
MOD
SYN 1
SZN 2
COMND
DATA
DATA

DATA
DATA
COMND
MOD
SYN

DATA
COMND
MOD
SYN


MOD
COMND
DATA
DATA

DATA
DATA
COMND
DATA
DATA

DATA
DATA
COMND
MOD
COMND
DATA


Octet 1

Octet 2
Selecie Mod Selecie Comand
Cod comand 16 bii
Coninutul
memoriei
pentru
transmisia
sincron
Coninutul
memoriei
pentru
transmisia
asincron
nceput de mesaj
Sfrit de
mesaj
revenirea la
selecie.
Mod este
opional.
a)
b)
c)
Codurile de comand i strile
interfeei sunt formate ntr-un registru
de 16 bii i respectiv citite, dintr-un
registru de 8 bii. Aceste dou registre
sunt manipulate folosind aceeai
adres. ntruct cele dou coduri de
comand sunt nscrise folosind
aceeai adres, ele sunt deosebite prin
"Selecie Mod" i respectiv "Selecie
Comand" (figura 6.10, a). La
aplicarea tensiunii de alimentare
interfaa trece n ,,Selecie Mod".
Dac octetul de comand, forat n
interfa, specific modul sincron,
logica interfeei ateapt unul sau
doua coduri SYN (fig. 6.8). Dup
recepionarea codului (codurilor)
SYN, interfaa trece automat n
,,Selecie Comand". Aceast situaie
se menine pn la aplicarea unui
semnal RESET sau forarea unei
comenzi, care aduce interfaa n
"Selecie Mod". n figurile 6.10, b, c
sunt prezentate coninuturile pentru
transmisiile sincron i respectiv,
asincron.


106
n cazul n care dou programe independente comand aceeai interfa, poate
aprea situaia n care, o comand intern de RESET este forat spre interfa, n timp
ce ea ateapt un caracter SYN. Aceast comand va fi acceptat n calitate de SYN,
fr ca operaia intern de RESET s aib loc. Pentru a evita o asemenea situaie,
comanda intern de RESET trebuie precedat de trei octei de comand, cu coninutul
egal cu zero.

bit7 bit6 bit5 bit4 bit3 bit2 bit1 bit0
Primul cuvnt de comand
modul asincron modul sincron
biii 1,0 rata de transmisie
00 invalid; 00 semnaleaz modul sincron
01 rata de transmisie x1;
10 rata de transmisie x 16
11 rata de transmisie x 64
biii 3,2 lungimea caracterului
00 caracter de 5 bii; 00 caracter de 5 bii;
01 caracter de 6 bii; 01 caracter de 6 bii;
10 caracter de 7 bii; 10 caracter de 7 bii;
11 caracter de 8 bii; 11 caracter de 8 bii;
biii 5,4 controlul de paritate
x0 dezactivat; x0 dezactivat;
01 paritate para; 01 paritate para;
10 paritate impar; 10 paritate impar;
biii 7,6 comanda cadrrii Comanda SYN
00 invalid; x0 SYN intern;
01 1 bit de stop; x1 SYN extern;
10 1 1/2 bii de stop; 0x dou caractere SYN;
11 2 bii de stop. 1x un singur caracter SYN.
a) b)
Al doilea cuvnt de comand
bit 0 transmisie activat TxEN
0 dezactivare transmisie;
1 activare transmisie;
bit 1 terminal de date pregtit DTR
n cazul unui nivel ridicat se va fora n zero ieirea DTR;
bit 2 recepie activat RxE
0 dezactiveaz RxRDY;
1 activeaz RxRDY;
bit 3 transmite caracterul BREAK:SBRK
0 operare normal;
1 forare TxD la nivel cobort;
bit 4 anulare ER
1 anularea tuturor erorilor din registrul de stare (PE,OE,FE);
bit 5 cerere de transmisie RTS
nivel ridicat se foreaz ieirea RTS n zero;
bit 6 RESET intern IR
nivel ridicat se foreaz interfaa n mod instruciune;
bit 7 intrare n modul HUNT:EH
1 intrare n modul HUNT
Figura 6.11. Semnificaia cuvintelor de comand. Primul cuvnt de comand n modul (a) asincron,
(b) sincron, (c) al doilea cuvnt de comand.


107
Interpretarea primului cuvnt de comand, de ctre logica din interfa, este
prezentat n figura 6.11. Se deosebesc dou interpretri ale acestui cuvnt, n funcie de
modul de lucru asincron (fig. 6.11, a) i respectiv sincron (fig. 6.11, b). Primul cuvnt
de comand, transmis interfeei, definete modul de operare, n timp ce al doilea cuvnt
de comand (Selectie Comand) definete aciuni instantanee, dup cum se arat n
figura 6.11, c. Biii din acest cuvnt de comand sunt poziionai n unu sau zero, n
general, sub controlul programului. Trebuie menionat faptul ca biii ER, IR si EH sunt
anulai n urmtoarele condiii: EH cnd sunt anulate erorile (PE, OE, FE) din
registrul de stare, IR cnd interfaa se afl n modul instruciune i EH cnd a fost
detectat caracterul SYN.
Comanda RxE (Recepie Activat), din cel de-al doilea cuvnt de comand, nu
afecteaz logica de recepie, ci numai semnalul RxRDY, Dac, n continuare, datele
sunt recepionate de ctre interfa, dup primirea acestei comenzi, ele vor fi asamblate
n RA i RB, fr a se genera semnalul RxRDY, spre unitatea central, pentru a semnala
caracterele asamblate. n cazul n care se genereaz din nou comanda RxE, este posibil
citirea caracterelor asamblate anterior. Pentru a evita aceast situaie, caracterele
respective trebuie citite i nlturate imediat ce s-a activat RxEN, n modul asincron, sau
EH, n modul sincron.
Este important de menionat faptul c semnalele de comand DTR i RTS fiind
coatrolate prin biii 1 i respectiv 3, din cuvntul de comand, necesit, pentru o
funcionare corect a interfeei, ca la modificarea lor, ceilali bii s nu fie schimbai sau
s corespund comenzilor necesare.
La citirea strii interfeei seriale programabile biii cuvntului respectiv sunt
interpretai conform figurii 6.12. Biii de eroare: (PE - eroare de paritate, OE - eroare de
ritm, FE - eroare de cadrare) se poziioneaz n unu la aparia condiiilor de eroare
respective. Corectarea erorilor se face prin program.

Cuvntul de stare
bit 7 bit 6 bit 5 bit 4 bit 3 bit 2 bit 1 bit 0
DSR SYNDET FE OE PE TxE RXRDY TXRDY

biii 0, 1, 2, 6, 7 condiii pentru semnalele indicate: TxRDY, RxRDY, TxE, SYNDET,
DSR;
bitul 3 eroare de paritate PE
1 eroare de paritate;
bitul 4 eroare de ritm OE
1 RA nu a fost citit nainte ca RB s fie ncrcat cu un nou caracter;
bitul 3 eroare de cadrare (n modul asincron)
1 nu s-a detectat un bit corect de stop la sfritul fiecrui caracter.

Figura 6.12. Structura cuvntului de stare.
6.3. Interfaa logic programabil 8255

Circuitul 8255 realizat n tehnologia NMOS, pe o pastil cu 40 de terminale, ale
cror semnificaii sunt prezentate n figura 6.13, reprezint o interfa programabil de
intrare/ieire (I/E).


108
Dei a fost proiectat ca un circuit din familia microprocesorului 8080, el poate fi
utilizat i la alte microprocesoare.

1 40
2 39
3 38
4 37
5 36
6 35
7 34
8 33
9 32
10 31
11 30
12 29
13 28
14 27
15 26
16 25
17 24
18 23
19 22
20 21
PA4
PA5
PA6
PA7
WR
RESET
D0
D1
D2
D3
D4
D5
D6
D7
Vcc
PB7
PB6
PB5
PB4
PB2
PA3
PA2
PA1
PA0
RD
CS
GND
A1
A0
PC7
PC6
PC5
PC4
PC0
PC1
PC2
PC3
PB0
PB1
PB2
D
0
D
7
- magistral de date
(bidirecional);
PA
0
PA
7
- terminale I/E Port A
(bidirecional);
PB
0
PB
7
- terminale I/E Port B
(bidirecional);
PC
0
PC
7
- terminale I/E Port C
(bidirecional);
RD - comand citire (intrare);
WR - comand scriere (intrare);
RESET - comand RESET (intrare);
CS - selecie circuit (intrare);
A
0
, A
1
- intrri selecie porturi
(intrri);

Figura 6.13. Terminalele circuitului
port
A (8)
I/E
PA
7
-PA
0
Interfaa
periferice
port
C sup
(4)
I/E
PC
7
-PC
4
port
C inf
(4)
I/E
PC
4
-PC
0
port B
(8)
I/E
PB
7
-PB
0
grup B
grup A
Logica
intern
CD A
grup
A
CD B
grup
B
tampon
magis-
tral de
date

logica
de
coman-
d
citete/
scrie
Modulul de
interfa cu
magistralele
Magistral
intern de
8 bii
D
7
D
0
RD
WR
A
0
A
1
CS
RESET
Figura 6.14. Schema bloc.

Circuitul posed 24 de terminale de I/E,
care pot fi configurate ca unul, dou sau trei
porturi de I/E. Dintre cele 24 de terminale, 16
sunt prevzute cu posibiliti de memorare
(latch-uri), iar celelalte 8 posed tampoane
(buffer-e).
Alimentarea circuitului se face de la o
surs de 5V; toate intrrile i ieirile sunt
compatibile TTL.
n figura 6.14 se prezint schema bloc a
circuitului 8255, care const din: modulul de
interfa cu magistrala microprocesorului,
interfaa cu periferia i logica intern.
8255 i semnificaiile lor.
Modulul de interfa cu magistrala microprocesorului conine tamponul
bidirecional, care face legtura ntre magistrala bidirecional de date a
microprocesorului i magistrala intern a interfeei paralele, precum i logica de
comand pentru operaiile de scriere/citire. Aceasta din urm are ca intrri semnalele de
RESET, selecie a circuitului ( CS ), scriere (WR), citire ( RD) i selecie a porturilor i
a registrului cuvntului de comand (A
0
, A
1
).
Semnalul RESET anuleaz coninuturile tuturor registrelor din circuitul 8255.
Semnalul CS activeaz comunicaia ntre magistrala microprocesorului i
circuitul 8255.


109
TABELUL 6.2. Selecia porturilor ABC i a registrului cuvntului de comand.
CS
A
0
A
1
Se selecteaz
0 0 0 Portul I/E A
0 0 0 Portul I/E B
0 1 0 Portul I/E C
0 1 1 Registrul cuvntului de comand (numai pentru scriere)
1 x x Nu se selecteaz 8255

n tabelul 6.2 se prezint efectul semnalelor CS , A
0
i A
1
privind selectarea
porturilor i a registrului cuvntului de comand. n cazul n care se folosete o tehnic
simpl de selecie, numit selecia liniar (o variant a seleciei redundante), adresa de 8
bii a unei instruciuni IN sau OUT, se poate utiliza ca n tabelul 6.3. Pe baza seleciei
liniare, biii A
0
, A
1
, din adres, se folosesc pentru selecia porturilor, din cele 6 circuite
8255, selectabile cu ajutorul rangurilor A
7
A
2
.

TABELUL 6.3. Selecia liniar a circuitului 8255.
A
7
A
6
A
5
A
4
A
3
A
2
Selecie ( CS )
A
1
A
0
Selecie
1 1 1 1 1 0 Circuit 1 0 0 Port A
1 1 1 1 0 1 Circuit 2 0 1 Port B
1 1 1 0 1 1 Circuit 3 1 0 Port C
1 1 0 1 1 1 Circuit 4 1 1 Registrul cuvntului
1 0 1 1 1 1 Circuit 5 de comand
0 1 1 1 1 1 Circuit 6

Interfaa cu periferia conine 24 de linii de interfa, tampoane i logica de
comand. Caracteristicile i funciile liniilor din interfa sunt determinate de modul de
operare selectat, prin program. Sub controlul software-ului pot fi selectate trei moduri
de lucru diferite, pentru interfaa programabila 8255 (figura 6.15, a, b, c).

Modul 0, denumit modul de baz de intrare/ieire, asigur mai multe posibiliti:

dou porturi de cte 8 bii (PA PA , PB PB );
7 0 7 0
dou porturi de cte 4 bii (PC PC , PC PC
3 0 7 4
), cu capabilitate
de poziionare individual n unu sau zero.

Porturile folosite pentru ieire sunt prevzute cu elemente bistabile de memorare,
porturile folosite pentru intrri nu dispun de elemente de memorare (fig. 6.15, a).
Modul 1 asigur posibiliti de strobare pentru intrare/ieire. Astfel, unul sau
dou porturi, organizate pe 11 bii, conin 8 bii de date, 3 bii de comand i logica de
suport pentru ntreruperi.
Oricare port poate fi folosit pentru intrare sau ieire. Dac n Modul 1 se
folosete un singur port, ceilali 13 bii pot fi configurai n Modul 0. Dac n Modul 1
sunt programate dou porturi, cei doi bii rmai pot fi utilizai pentru intrare sau ieire
cu capabilitate de poziionare n unu sau zero (figura 6.15, b).


110

n figura 6.16 sunt date configuraiile porturilor A, B i C ale interfeei 8255 i
cuvintele de comand corespunztoare, pentru operaia de intrare (a) i operaia de ieire
(b).
Pentru intrare, semnalele de comand au semnificaiile de mai jos:
STBA(B) , strob de intrare, activ pe nivel cobort, ncarc data n
registrul de intrare;
IBFA(B), indicator tampon de intrare ncrcat, este activ pe nivel
ridicat. El este activat de STBA(B) - pe nivel cobort i dezactivat de
ctre frontul cresctor al comenzii RD;
INTRA(B), cerere de ntrerupere pentru microprocesor, activ pe
nivelul ridicat, atunci cnd datele sunt deja n registrul de intrare al
interfeei 8255. INTRA(B) este activat dac STBA(A) este pe nivel
ridicat i dac IBFA(B) i INTEA(B) sunt, de asemenea, active.
INTRA(B) este dezactivat pe frontul cztor al comenzii RD;
Figura 6.15. Modurile de lucru pentru interfaa programabil 8255: (a) modul 0, (b) modul 1, (c)
modul 2,
adrese
date
comenzi
WR RD, D
7
-D
0
A
0
-A
7
Port B Port C Port A
p
m
n
a) Modul 0
PB
7
-PB
0
PC
3
-PC
0
PC
7
-PC
4
PA
7
-PA
0

Port B PC
0
PC
1
PC
2
PC
3
PC
4
PC
5
PC
6
PC
7
Port A

Port B PC
0
PC
1
PC
2
PC
3
PC
4
PC
5
PC
6
PC
7
Port A
portul B poate fi n
modurile 0 sau 1
comand PortA
c) Modul 2
PB
7
-PB
0
I/E sau comand Intr.A STBA IBFA ACKA OBFA PA
7
-PA
0
comand PortA, port B
PB
7
-PB
0
Intr.B IBFB
OBFB
STBB
ACKB
Intr.A STBA
I/E
IBFA
I/E
I/E
ACKA
I/E
OBFA
PA
7
-PA
0
b) Modul 1


111
INTEA(B), bistabile interne asociate cu ntreruperile, sunt
activate/dezactivate prin terminalele PC /PC .
4 2
Pentru ieire semnalele de comand au urmtoarele semnificaii:

OBFA(B) , indicator tampon de ieire ncrcat, este activat pe nivel
cobort de ctre frontul negativ al comenzii WR i dezactivat pe fron-
tul negativ al semnalului ACKA(B);

ACKA(B), acceptare date de ctre periferic, este furnizat cnd datele
au fost preluate de periferic. Este activ pe nivel cobort;

INTRA(B), cerere de ntrerupere pentru microprocesor, activ pe
nivel ridicat, specific faptul c echipamentul periferic a preluat data.
INTRA(B) este activat cnd ACKA(B) este pe nivel ridicat,
OBFA(B) este pe nivel ridicat i INTEA(B) este, de asemenea, pe
nivel ridicat. Semnalul este dezactivat pe frontul cresctor al
comenzii WR ;
INTEA(B), bistabile interne asociate cu ntreruperile, sunt
activate/dezactivate prin terminalele PC /PC .
6 2

PA
7
-PA
0
PC5,7
PC
4
PC
5
PC
3
INTEA

STBA
IBFA


Intr A

I/E
RD
8
7 Cuvnt de comand 0
1 0 1 1 1/0 x x x
PC 6,7
0 intrare
1 - ieire
PB
7
-PB
0
PC
2
PC
1
PC
0
INTEB

STBB
IBFB


Intr B


RD
8
7 Cuvnt de comand 0
1 x x x x 1 0 x
Modul 1 (Port A)
Modul 1 (Port B)
INTEA comandat prin PC4
INTEB comandat prin PC2
Figura 6.16. a. Configuraiile porturilor i cuvintele de
Dup cum se constat, portul C este
folosit pentru manipularea
cuvintelor de comand/stare, pentru
porturile A, B.
Dac portul A (sau portul B)
a fost programat ca port de intrare,
logica extern trebuie s indice
faptul c o nou dat a fost plasat
la portul de intrare. Aceast se
realizeaz prin aplicarea unor
semnale de strobSTBA STBB , la
intrrile PC i respectiv PC
4 2
.
Interfaa 8255 va aduce terminalul
IBFA (IBFB) la un nivel ridicat,
atunci cnd data este ncrcat n
portul de intrare i se menine la
acest nivel, ct timp portul conine
data respectiv. Semnalul
IBFA(IBFB) este anulat la
dezactivarea comenzii de citire
( RD), emis de microprocesor,
indicnd citirea datelor din portul de
intrare. Pentru a specifica
microprocesorului faptul c data
este stabil n portul de intrare,
interfaa 8255 genereaz un semnal
comand corespunztoare pentru operaia de intrare.

112

de ntrerupere (INTR) pe frontul
cresctor al semnalului de strob
(
7 Cuvnt de comand 0
1 0 1 0 1/0 x x x
STBA, STBB). Acest semnal,
INTR, este dezactivat pe frontul
cztor al comenzii RD.
Terminalele PC
7
i PC
6
nu
manipuleaz semnale de
comand privind intrarea i pot
fi utilizate pentru a transfera
bidirecional date.
Dac portul A (sau portul
B) a fost programat ca port de
ieire, n momentul n care
microprocesorul l ncarc cu o
dat, interfaa 8255 genereaz
un semnal de comanda
OBFA( O a e nivel
cobort. Logica extern poate fi
astfel informat asupra
posibilitii de preluare a datelor
din portul de ieire
corespunztor. Logica extern
semnaleaz interfeei faptul c a
preluat informaia, din portul de
ieire, prin activarea semnalului
ACKA(ACKB). Pentru ca
microprocesorul s poat plasa o
nou dat n portul de ieire, el trebuie s atepte un semnal de ntrerupere INTRA,
(INTRB), care este activat pe frontul cresctor al semnalului
BFB), p ctiv
ACKA( ACKB).
Terminabilele PC
4
i PC
5
nu manipuleaz semnale de comand n cadrul operaiei de
ieire, n Modul 1. Ele pot fi folosite pentru transferul bidirecional de date.

Modul 2, definit ca magistral de I/E, bidirecional strobat, asigur posibiliti
de comunicare cu un periferic, pe o magistral de 8 bii. Semnalele de dialog sunt
folosite pentru a menine disciplina de transfer a informaiei pe magistral.
Modul 2 este folosit cu grupul A de terminale, care se refer la portul A (PA
0
,
PA
1
) i la biii PC
3
PC
7
, din portul C (figura 6.14).
Configurarea i cuvntul de comand ale circuitului n acest mod sunt prezentate
n figura 6.17. Semnificaiile semnalelor sunt prezentate mai jos:

INTRA, cererea de ntrerupere, activ pe nivel ridicat i emis de
interfaa 8255, la terminalul PC
3
, ntrerupe microprocesorul att
pentru operaia de intrare, ct i pentru cea de ieire;
PA
7
-PA
0
PC4,5
PC
6
PC
7
PC
3
INTEA

ACKA
OBFA


Intr A

I/E
WR
8
PC 4,5
1 intrare
0 - ieire
PB
7
-PB
0
PC
2
PC
1
PC
0
INTEB

ACKB
OBFB


Intr B


WR
8
7 Cuvnt de comand 0
1 x 1 x x 1 0 x
Modul 1 (Port A)
Modul 1 (Port B)
INTEA comandat prin PC6
INTEB comandat prin PC2
Figura 6.16. b. Configuraiile porturilor i cuvintele de
comand corespunztoare pentru operaia de ieire.


113
OBFA, n cadrul unei operaii de ieire, va fi activ pe nivel
cobort, pentru a indica faptul c microprocesorul a nscris date n
portul de ieire A ;

ACK, n cadrul unei operaii de ieire, activ pe nivel cobort, va
comanda tamponul de ieire, cu trei stri, al portului A, pentru a
furniza data n exterior.

ACK, la nivel ridicat, va aduce tamponul
de ieire n starea de mare impedan;
INTE1, bistabil intern de activare/dezactivare a ntreruperilor,
asociat cu semnalul OBF, este poziionat n unu/zero, prin PC ;
6
STBA, n cadrul operaiei de intrare, activ pe nivel cobort, va
fora data de intrare n registrul portului de intrare A (PA);

IBFA, n cadrul operaiei de intrare, activ pe nivel ridicat, va
specifica faptul c data a fost ncrcat n registrul portului de
intrare A;
INTE2, bistabil intern de activare/dezactivare a ntreruperilor,
asociat cu semnalul IBF, este poziionat n unu/zero, prin PC .
4




PA
7
-PA
0
P
PC
2
-PC
0
PC3
PC7
PC8
PC4
PC5
INTE1
INTE2
INTRA
8
OBFA
ACKA
STBA
IBFA
I/E
WR
RD
Figura 6.17. Configuraia terminalelor
interfeei 8255 n modul 2 i cuvntul de
cuvnt de comand
1 1 x x x 1/0 1/0 1/0
Operaia de intrare, n Modul 2 are
loc prin furnizarea dalelor de ctre
periferic, la intrarea portului A i forarea
lor n portul respectiv, folosind strobul
STBA. La ncrcarea registrului portului
A se genereaz semnalul IBFA, activ pe
nivel ridicat. Semnalul de ntrerupere
pentru microprocesor, INTRA, este
generat cnd semnalele RD STBA , sunt
inactive i IBFA activ. INTRA este
dezactivat prin generarea comenzii de
citire RD, de ctre microprocesor.
Semnalul IBFA este dezactivat odat cu
dezactivarea comenzii RD.
Operaia de ieire, n Modul 2 se
realizeaz prin furnizarea datelor la
intrarea D
7
D
0
i a semnalului WR , de
ctre microprocesor. Datele se transfer n
registrul portului de ieire A, fapt care va
conduce la activarea semnalului OBFA.
Acest semnal poate fi testat de ctre echipamentul periferic, pentru a putea stabili
disponibilitatea datelor la portul de ieire. Preluarea lor de ctre echipamentul periferic
este asigurat prin semnalul
comand corespunztor.
PC
2
PC
0
1 intrare
0 ieire
Port B
1 intrare
0 ieire
Modul grupului B
1 Mod 1
0 Mod 0
ACKA ACKA , activ pe nivel cobort. Semnalul
dezactiveaz OBFA i activeaz cererea de ntrerupere INTRA, pentru a anuna
microprocesorul c datele au fost preluate de ctre periferic.


114
Logica intern de selecie gestioneaz transferul datelor i al informaiei de
comanda pe magistrala intern. Prin selecia porturilor A, B i C se efectueaz operaii
de I/E. Logica intern va asigura transferul datelor ntre magistrala microprocesorului i
porturile de I/E ale interfeei 8255.
Configuraia funcional a fiecrui port i poziionarea n unu sau zero a biilor
portului C sunt controlate prin software, folosind cuvinte de comand corespunztoare.
Selectarea registrului de comand. i ncrcarea lui cu un cuvnt de comand permit
logicii interne s efectueze operaiile descrise n cadrul acestui cuvnt. Cuvntul de
comand conine un cmp de cod de operaie, care definete modul de operare sau
poziionarea unor bii ai portului C, n funcie de valoarea 1, respectiv 0 a bitului 7, din
cuvntul de comand.
Definirea modului de operare se realizeaz prin ncrcarea n interfaa 8255 a
unui cuvnt de comand cu bitul 7 egal cu unu. n figura 6.18 se prezint codificarea
cuvntului de comand pentru a specifica configuraia celor 24 de linii de legtur a
interfeei programabile cu periferia. Astfel, pot fi specificate independent modurile
porturilor A i B, n timp ce portul C poate fi tratat independent sau separat ca dou
porturi de cte 4 bii solicitate de modurile de definire ale porturilor A i B.
Cuvntul de comand

bit 7 bit 6 bit 5 bit 4 bit 3 bit 2 bit 1 bit 0
1 1/0 1/0 1/0 1/0 1/0 1/0 1/0

Grup B
bitul 0 port C (PC
3
PC
0
);
1 intrare;
0 ieire;
bitul 1 port B;
1 intrare;
0 ieire;
bitul 2 Selecie Mod;
1 Mod 0;
0 Mod 1;
Grup A
bitul 3 port C (PC
7
PC
4
);
1 intrare;
0 ieire;
bitul 4 port A;
1 intrare;
0 ieire;
biii 5,6 Selecie Mod;
00 Mod 0;
01 Mod 1;
1x Mod 2.

Figura 6.18. Structura cuvntului de comand pentru definirea modului de operare al interfeei
8255.

ncrcarea unui cuvnt de comand cu bitul 7 egal cu zero (figura 6.19) permite
comanda individual a biilor portului C, prin poziionarea lor n zero sau unu. Selecia


115
bitului din portul C se realizeaz prin biii 3 l, din cuvntul de comand. Bitul 0, al
cuvntului de comand, definete forarea n zero sau n unu a bitului selectat, din portul
C. Biii 6 4 ai cuvntului de comand nu sunt folosii.
Cuvntul de comand

bit 7 bit 6 bit 5 bit 4 bit 3 bit 2 bit 1 bit 0
0 0 0 0 1/0 1/0 1/0 1/0

bitul 0 bitul selectat se poziioneaz n unu / zero;
1 poziionare n unu;
0 poziionare n zero;
biii 3,2,1 selecie bit;
000 bit 0;
001 bit 1;
010 bit 2;
011 bit 3;
100 bit 4;
101 bit 5;
110 bit 6;
111 bit 7;

Figura 6.19. Structura cuvntului de comand pentru poziionarea n unu/zero a biilor portului C.



6.4. Interfaa USB (Universal Serial Bus)

6.4.1. Introducere

Studiul portului USB poate prea puin nspimnttor datorit specificaiilor
USB care au 650 de pagini dar i listei impresionante de standarde asociate (USB Class
Standards). Dintre standardele asociate face parte i HID Class Specification care
detaliaz operaiile obinuite cu dispozitivele (tastatur, maus etc.) i care provine din
HID (Human Interface Devices) Class. Dac proiectai un port USB (USB Host) atunci
va trebui s alegei ntre trei standarde (Hot Controller Interface Standard). Nici unul
dintre aceste standarde nu este specificat n USB 2.0.
n continuare se vor prezenta succint informaiile eseniale legate de interfaa
USB. Standardele interfeei USB ct i specificaiile conexe trebuie studiate n funcie
de domeniul activitii desfurate (proiectare hardware sau software).
Mai jos (tabelul 6.4) este prezentat structura standardului USB 2.0 i
informaiile coninute de capitolele acestuia precum i recomandri privind parcurgerea
informaiilor pentru nelegerea interfeei USB.







116
TABELUL 6.4.
Capitol Nume Descriere Nr. de
pagini
1 Introducere Conine scopul i motivaia USB. Informaia
cea mai important prezentat n acest capitol
este referirea la Universal Serial Bus Device
Class Specifications. Nu este necesar citirea
acestui capitol.
2
2 Termeni i notaii Capitol explicativ necesar oricrui standard. 8
3 Informaii de baz Capitolul prezint scopul interfeei USB care
este o interfa Plug and Play simpl (pentru
utilizator nu i pentru proiectant). Sunt
prezentate noiunile de vitez sczut,
complet i nalt (Low, Full and High Speed)
i o list a funciilor interfeei. Nici acest
capitol nu este necesar a fi citit.
4
4 Structura
arhitecturii
Din acest punct trebuie nceput studiul.
Capitolul furnizeaz noiunile de baz a
sistemului USB: topologia, viteza de transfer
a datelor, tipurile fluxurilor de date,
specificaii electrice de baz etc.
10
5 Modelul fluxului
de date USB
n acest capitol se prezint caracteristicile
fluxului de date al portului serial universal
(Universal Serial Bus). Sunt prezentai
termeni ca: endpoints i pipes i este analizat
fiecare tip de flux de date (Control, Interrupt,
Isochronous i Bulk). Acest capitol poate fi
destul de dificil nceptorilor dar trebuie citit
dac se dorete cunoaterea tipurilor de
transfer a interfeei USB i a proprietilor
acestora.
60
6 Caracteristici
mecanice
n acest capitol se prezint doi conectori USB
standard. Este prezentat conectorul de tip A
destinat transferului n aval (downstream) i
conectorul de tip B destinat transferului n
amonte (upstream). n acest fel este imposibil
s se conecteze un cablu ntre dou porturi
upstream. Toate cablurile detaabile trebuie s
fie de vitez full/high pe cnd cablurile de
vitez sczut (Low) trebuie conectate (fixate)
la aplicaie. n afara de faptul c trebuie s
aruncai o privire asupra conectorilor, acest
capitol poate fi srit (dac nu intenionai s
fabricai conectori sau cabluri USB).
Proiectanii PCB pot gsi aici dimensiunile
standard pentru conectori.
33


117
TABELUL 6.4. (continuare)
7 Caracteristici
electrice
Capitolul 7 prezint semnalele electrice la
nivelul de baz, impedana de linie, timpii de
cretere i de descretere, specificaiile
driver/receptor i codificarea la nivel de bit,
structura biilor etc. Cea mai important parte a
acestui capitol este identificarea vitezei
dispozitivului prin utilizarea unui rezistor
pentru interferena liniei de date sau a
magistralei dispozitivelor alimentate versus
dispozitivelor autoalimentate. n afar de cazul
cnd proiectai transceivere USB la nivel de
baz putei trece superficial prin acest capitol.
Schemele corecte a dispozitivelor USB trebuie
s arate ce valoare a rezistorului terminal este
necesar pentru adaptarea impedanei
magistralei.
75
8 Protocolul Se exploreaz protocolul USB prezentndu-se
pachetele la nivel de bit i discutndu-se despre
sync, pid, address, endpoint, CRC fields. Cei
mai muli dezvoltatori nu trebuie s cunoasc
aceste detalii deoarece circuitul integrat rezolv
problema protocolului. n orice caz, nelegerea
modului de raportare a strii i dialogul ntre
componente este necesar.
45
9 USB Device Frame
Work
Acesta este capitolul cel mai folosit deoarece
descrie enumerarea pe magistral (bus
enumeration) i cererea codurilor (request
codes): set, address, get descriptor etc, care
reprezint noiunile cele mai folosite din
protocolul USB. Capitolul trebuie citit n
detaliu.

10 USB Host
Hardware and
Software
Se descrie gazda (host) ceea ce presupune:
generarea frame i microframe, cerinele host
controller i modelul driver universal serial bus.
Dac nu se proiecteaz un Host, capitolul poate
fi srit.
23
11 Hub Specification Se detaliaz modul de lucru al USB hub (hub
punct central): configurarea hub, split
transactions, standard descriptors for hub class
etc. Dac nu se proiecteaz un Hub, capitolul
poate fi srit.
143

Pentru realizarea driver-elor (software) pentru perifericele USB, atunci trebuie citite
numai capitolele:



118
4 - Architectural Overview
5 - USB Data Flow Model
9 - USB Device Frame Work, and
10 - USB Host Hardware and Software.
Proiectarea hardware (electronica) se poate face citind capitolele:
4 - Architectural Overview
5 - USB Data Flow Model
6 - Mechanical, and
7 - Electrical.
6.4.2. Prezentarea Universal Serial Bus

Standardul USB 1.1 a fost suficient de complex nainte ca High Speed s fie
introdus n USB 2.0. n scopul nelegerii principiilor fundamentale a USB se vor omite
noiunile legate de dispozitivele High Speed.
USB versiunea 1.1 suport dou viteze, viteza complet (full) de 12 Mbii/s i
viteza sczut (low) de 1,5 Mbii/s. Modul de 1,5 Mbii/s datorit faptului c este mai
sczut este mai puin influenat de perturbaiile electromagnetice (EMI) i acest lucru
reduce costul mrgelelor de ferit i a calitii componentelor. De exemplu, cristalele de
cuar pot fi nlocuite rezonatori mai ieftini. USB 2.0 utilizat la majoritatea
calculatoarelor de birou are i viteza nalt de 480 Mbii/s (high) i completeaz
Firewire Serial Bus.

6.4.2.1. Vitezele USB

o High Speed 480 Mbits/s
o Full Speed 12 Mbits/s
o Low Speed 1.5 Mbits/s

Magistrala serial universal (Universal Serial Bus) este de tip host controlled i
nu poate fi dect un host pe magistral. De asemenea specificaiile nu permit nici un fel
de aranjament multimaster. n orice caz, specificaiile On-The-Go care reprezint o
adaptare a standardului USB 2.0 a introdus Host Negotiation Protocol care permite la
dou dispozitive s negocieze rolul de host. Acest lucru se face n scopul limitrii la o
singur conexiune punct la punct cum ar fi cu un telefon mobil sau un personal
organiser i nu hub multiple sau configuraii multiple ale dispozitivelor desktop. USB
host este rspunztor de toate tranzaciile i programarea limii de band. Datele pot fi
transmise prin diferite metode utiliznd token-based protocol.
n opinia multor specialiti, topologia magistralei USB este limitativ. Una
dintre inteniile iniiale a fost ca USB s reduc numrul de cabluri de conexiune.
Proiectanii firmei Apple susin c ideea provine de la tehnologia Apple Desktop Bus
prin care tastatura, mouse-ul i alte cteva periferice pot fi conectate mpreun n serie
(daisy chained) folosind un singur cablu.


119
n orice caz tehnologia USB folosete topologia stea extins, similar celei
10BaseT Ethernet. Aceasta impune utilizarea unui hub undeva ceea ce duce la creterea
preului de cost, creterea numrului de cutii pe birou i creterea numrului de cabluri.
Multe dispozitive au hub USB integrate. De exemplu tastatura poate conine un hub
conectat la calculator. Mouse-ul i alte dispozitive cum ar fi camera digital pot fi
conectate uor n locul tastaturii (sau: dup tastatur nseriat cu aceasta). Monitoarele
reprezint un alt periferic dintr-o lung list de periferice care au hub-uri incluse.
La topologia stea extins, spre deosebire de conexiunea daisy chain,
dispozitivele conectate au anumite beneficii. Mai nti alimentarea fiecrui dispozitiv
poate fi monitorizat i chiar oprit dac se produce o anumit condiie fr ca celelalte
dispozitive USB s fie ntrerupte. Toate dispozitivele cu viteza high, full sau low pot fi
acceptate, prin filtrarea de ctre hub a tranzaciilor cu vitez high i full pe care
dispozitivele de vitez sczut nu le vor recepiona.
Pn la 127 de dispozitive pot fi conectate la orice magistrala USB la orice
moment. Dac sunt necesare mai multe dispozitive se adaug un nou port/host. La
nceput, primele USB host aveau dou porturi; cei mai muli productori au considerat
acest lucru restrictiv i au nceput s introduc 4 sau 5 porturi (port host card) cu un port
intern pentru hard disk. Primele host-uri aveau un singur controler USB i atunci cele
dou porturi mpreau aceeai band USB disponibil. O dat cu creterea necesarului
de band vedem cartele multiport cu dou sau mai multe controlere fiecare cu canalul
su.
Controlerele host USB au propriile lor specificaii. La USB 1.1 sunt dou
specificaii Host Controller Interface: UHCI (Universal Host Controller Interface)
dezvoltat de Intel care a pus o ncrctur software (Microsoft) mai mare permind un
hardware mai ieftin i OHCI (Open Host Controller Interface) dezvoltat de Compq,
Microsoft i National Semiconductor care are o mai mare ncrctur hardware (Intel) i
un soft mai simplu.
Prin apariia USB 2.0 noi specificaii Host Controller Interface au fost necesare
pentru descrierea la nivel de registru specifice USB 2.0. A aprut EHCI (Enhanced Host
Controller Interface). Mai multe firme au cooperat pentru realizarea unei interfee
standard i a unui singur driver necesar acesteia.
USB aa cum sugereaz i numele su este o magistral serial. Se folosesc 4
fire ecranate din care dou sunt pentru alimentare (+5V i GND) iar celelalte dou sunt
fire rsucite cu semnal diferenial de date. Se folosete schema de codare NRZI (Non
Return to Zero Invert) pentru transmiterea datelor cu un cmp de sincronizare pentru
sincronizarea ceasului la host i la receptor.
USB suport plug and plug (conectarea i reconectarea) cu ncrcarea i
descrcarea dinamic a driver-elor. Utilizatorul conecteaz dispozitivul la magistral iar
host-ul va detecta acest lucru, va interoga dispozitivul nou inserat i va ncrca drive-ul
corespunztor i afieaz pe ecran faptul c driver-ul a fost instalat. n momentul n care
utilizatorul a terminat, acesta deconecteaz cablul, host-ul detecteaz acest lucru i
elimin driver-ul.
ncrcarea driver-ului potrivit este produs de folosirea combinaiei PID/VID
(Product ID/Vendor ID). VID este furnizat de forumul implementatorilor USB contra
cost i acesta este un alt punct forte al USB. Ultimele informaii privind taxele pot fi
gsite la USB Implementors Website.


120
Alte organizaii de standardizare furnizeaz un extra VID pentru activiti
necomerciale cum ar fi educaia i cercetarea sau pentru pasionaii domeniului. Muli
fabricani de circuite integrate au propriile lor combinaii VID/PID care pot fi folosite la
dispozitive necomerciale. Ali productori de circuite integrate pot chiar s furnizeze un
PID pentru a fi folosit cu VID-urile acestora n dispozitivele dumneavoastr comerciale.
Alt facilitate notabil a USB reprezint modurile de transfer. USB suport
transferuri Control, Interrupt, Bulk i Isochronous. De exemplu, modul Isochronous
permite unui dispozitiv s rezerve o anumit lime de band cu o ntrziere (latency)
garantat. Acest lucru este ideal pentru aplicaiile audio i video unde congestionarea
magistrale poate produce pierderea datelor sau a frame-urilor. Despre celelalte moduri
de transfer se va discuta mai trziu. Fiecare mod de transfer permite proiectantului s
lucreze cu diverse domenii cum sunt: detecia i corecia erorilor, ntrzieri i limi de
band garantate.

6.4.2.2. Conectorii

Toate dispozitivele au o conexiune upstream ctre host i toate host-urile au o
conexiune downstream ctre dispozitive. Conectorii upstream i cele downstream nu
sunt interschimbabili din punct de vedere mecanic ceea ce elimin posibilitatea
conectrii greite cum ar fi conectarea unui hub cu un port downstream la un port
downstream. Sunt dou tipuri de conectori: conector de tip A i conectori de tip B.
Conectorul de tip A se folosete ntotdeauna la upstream
i se ntlnete de obicei la host-uri i hub-uri. De exemplu
conectorul de tip A se ntlnete la calculatoare la main boards
i la hub-uri. Conectorul de tip B se folosete la downstream i
n consecin el se va gsi la dispozitive.
Conector USB de tip A.
Conector USB de tip B.
Figura 6.20. Conectorii
Se gsesc cabluri de conectare de la conectori de tip A la
conectori de tip A i aceasta excepie de la standardul USB se
face n scopul conectrii a dou calculatoare. O alt excepie o
reprezint cablurile prelungitoare care au la un capt un
conector tat (de tip A sau B) i un conector de tip mam la
cellalt capt.
portului USB.
Specificaiile USB 2.0 introduc o corecie i definete conectorii mini-USB B.
Aceti conectori sunt necesari dispozitivelor electronice miniaturale cum sunt
telefoanele mobile sau organisers (agende electronice PDA Personal Digital
Assistant).
Recent au fost elaborate specificaiile On-The-Go care adaug funcionalitatea
peer-to-peer porturilor USB. Acest lucru permite folosirea USB host la telefoane mobile
sau la agende electronice i n acest fel s-au introdus specificaiile prizei mini-A i a
conectorului tat mini-A i a prizei mini-AB.

TABELUL 6.5.
Numrul pinului Culoarea cablului Funcie
1 Rou V
BUS
(5 voli)
2 Alb D-
3 Verde D+


121
4 Albastru Mas
6.4.2.3. Caracteristici electrice

n afar de situaia cnd realizai circuite integrate pentru
dispozitive/transmitoare USB sau host/hub USB nu trebuie s cunoatei n amnunt
specificaiile electrice. n continuare se va prezenta esenialul despre acestea.
USB folosete o pereche de fire pentru transmiterea diferenial a datelor. Datele
sunt codificate folosind NRZI i biii sunt combinai n aa fel nct s se asigure
tranziia adecvat n fluxul de date. La dispozitivele de vitez low i full, un 1
diferenial este transmis prin polarizarea liniei D+, legat la mas printr-o rezisten de
15K ohm, la peste 2,8V i a liniei D-, legat la 3,6V printr-o rezisten de 1,5K ohm, la
o tensiune sub 0,3V. Un 0 diferenial se obine cu D- la o tensiune mai mare ca 2,8V
i D+ la o tensiune mai mic de 0,3V, linii conectate cu rezistenele specificate mai sus.
Receptorul definete un 1 diferenial ca D+ cu 200mV mai mare ca D- i 0
diferenial ca D+ cu 200mV mai mic dect D-. Polaritatea semnalului este inversat n
funcie de viteza magistralei. Adesea termenii de stare J i K sunt folosii pentru
specificarea nivelelor logice. La vitez sczut (low) o stare J reprezint un 0
diferenial. La vitez nalt (high) starea J reprezint un 1 diferenial.
Transmitoarele USB (transceivers) au att ieiri difereniale ct i single ended.
Anumite stri ale magistralei sunt indicate prin semnale single ended cu D+, D- sau
amndou. De exemplu un zero single ended (SE0) poate fi folosit pentru a semnala un
reset al unui dispozitiv dac ine mai mult de 10ms. Un SE0 este generat prin punerea
att a liniei D+ ct i a liniei D- la nivel sczut (< 0,3V). Ieirile single ended i
difereniale reprezint informaii importante dac folosii un transceiver i un FPGA ca
dispozitiv USB. You cannot get away with sampling just the differential output. (Nu
putei merge mai departe cu ieirea drept ieire diferenial!?)
Magistralele de vitez sczut (low)/ complet (full) au o impedan caracteristic de 90
ohm +/- 15%. Ieste important s se citeasc schema cnd se aleg rezistenele serie de
adaptare a impedanei pentru D+ i D-. Orice schem bun trebuie s specifice aceste
valori i toleranele acestora.
Viteza nalt (high) 480 Mbiti/s) folosete un curent constant de 17,78 mA
pentru semnal n scopul reducerii zgomotului.

6.4.2.4. Identificarea vitezei

Un dispozitiv USB trebuie s indice vitezele sale prin punerea att a liniei D+
ct i a liniei D- la 3,3 voli. Un dispozitiv cu vitez complet (full), prezentat mai jos,
va folosi o rezisten conectat la D+ pentru a specifica acest lucru. Rezistorul prezent
la dispozitiv este folosit de altfel i de ctre host sau hub pentru a detecta prezena
dispozitivului conectat la portul su. Fr aceste rezistene USB consider c nu s-a
conectat nimic la magistral. Unele dispozitive au aceste rezistene n circuitul integrat,
rezistene ce pot fi conectate sau deconectate prin program, altele au rezistena n
exterior.
De exemplu Philips Semiconductor folosete tehnologia SoftConnect
TM
. La
prima conectare la magistral aceast tehnologie permite microcontrolerului s
iniializeze funciile dispozitivului USB nainte de a valida conectarea rezistorului de


122
identificare a vitezei i care indic faptul c dispozitivul este conectat la magistral.
Dac rezistena ar fi conectat imediat la V
bus
atunci acest lucru ar indica host-ului un
dispozitiv conectat. Host-ul va ncerca s reseteze (iniializeze) dispozitivul i s cear
descriptorul atunci cnd microprocesorul nu a nceput nc s iniializeze funciile USB
ale dispozitivului.
Ali fabricani precum Cypress Semiconductor folosesc de asemenea o rezisten
programabil pentru Re-Numeration
TM
la dispozitivele EzUSB unde un singur
dispozitiv poate fi enumerat pentru o funcie cum ar fi In field programming cnd este
deconectat de la magistral sub controlul programului (firmware) i enumerat ca un
dispozitiv diferit ntr-o fraciune de secund. Multe dispozitive EyUSB nu au nici un fel
de memorie Flash sau OTP ROM pentru stocarea codului. Acestea sun bootstraped
(pornite) la conectare.

Figura 6.21. Dispozitiv full speed cu rezisten pull up
conectat la D+

Figura 6.22. Dispozitiv low speed cu rezisten pull up
conectat la D-

Trebuie notat faptul c nu a fost prezentat identificarea vitezei nalte (high).
Dispozitivele de vitez nalt vor porni conectndu-se ca dispozitive de vitez complet


123
(full) 1,5k la 3,3V. O dat ce acestea sunt conectate vor transmite un semnal de nalt
vitez pe durata resetului stabilind o conexiune de nalt vitez dac hub-ul suport
modul de nalt vitez. Dac dispozitivul lucreaz n modul de nalt vitez, rezistena
pull up este ndeprtat pentru echilibrarea liniei.
Un dispozitiv compatibil USB 2.0 nu trebuie neaprat s poat suporta modul de
vitez nalt. Aceasta permite producerea dispozitivelor ieftine la care viteza nu este
critic. Acesta este de asemenea cazul dispozitivelor de vitez sczut USB 1.1 care nu
trebuie s suporte i viteza complet (full).
Oricum, un dispozitiv de vitez nalt poare s nu suporte modul de vitez
sczut. Acesta trebuie s suporte doar modul de vitez complet (full) necesar la
conectare dup care este negociat modul de vitez high. Un dispozitiv de intrare
compatibil USB 2.0 (downstream) hub sau host suport toate cele trei moduri de
vitez: high speed, full speed i low speed.

6.4.2.5. Alimentarea V
BUS

Unul din avantajele USB este reprezentat de dispozitivele alimentate de la
magistral dispozitive care nu mai necesit surs de alimentare extern.
Un dispozitiv USB specific consumul su de putere n uniti de 2 mA n
descriptorul configuraiei care va fi studiat n detaliu mai trziu. Un dispozitiv nu poate
crete consumul su de putere peste valoarea specificat la enumerare, chiar dac acesta
pierde alimentarea extern. Sunt trei clase de funcii USB:
o Low-power bus powered functions
o High-power bus powered functions
o Self-powered functions
Funcia de alimentare de joas putere a magistralei ia toat puterea de la V
BUS
i
nu poate furniza mai mult de o unitate de ncrcare. Specificaiile USB definesc o
unitate de ncrcare ca fiind 100 mA. Magistrala de alimentare de joas putere trebuie
de asemenea s fie proiectat s lucreze pn la tensiunea cea mai joas V
BUS
de 4,40V
i pn la tensiunea maxim de 5,25V msurat la conectorul upstream al dispozitivului.
Pentru dispozitivele de 3,3V regulatorul este obligatoriu.
Funcia de alimentare de nalt putere a magistralei ia puterea de la magistral i nu
poate furniza mai mult de o unitate pn cnd a fost configurat dup care poate furniza
5 uniti (500 mA max) specificate de ctre descriptor. Funcia magistralei de nalt
putere trebuie s poat fi detectat i enumerat la tensiunea minim de 4,40V. Cnd se
opereaz la ncrcarea maxim (5 uniti), o tensiune minim V
BUS
de 4,75V este
specificat cu un maxim la 5,25. Msurtorile se fac la conectorul upstream.

6.4.2.6. Protocolul

Spre deosebire de interfaa serial la care formatul datelor transmise nu este
definit, USB utilizeaz protocoale pe mai multe nivele.
Orice tranzacie a portului USB const n:



124
Token Packet (un antet ce definete ce ne ateptm s urmeze);
Optional Data Packet (coninnd datele utile);
Status Packet (folosit pentru confirmarea tranzaciei i care
furnizeaz mijloace pentru corecia erorilor).

Datele sunt transmise de ctre USB ncepnd cu cel mai puin semnificativ bit.
Structura unui pachet USB conine urmtoarele cmpuri:

Sync toate pachetele trebuie s nceap cu un cmp sync. Acest
cmp are o lungime de 8 bii la viteza low i full i 32 de bii la viteza
high i este folosit la sincronizarea ceasului receptorului cu cel al
transmitorului. Ultimii doi bii semnaleaz faptul c urmeaz
cmpul PID;
PID reprezint identificatorul pachetului (Packet ID). Acest cmp
este folosit pentru identificarea pachetului care urmeaz a fi transmis;
ADDR cmpul adres specific dispozitivul cruia i este destinat
pachetul. Acest cmp are apte bii i deci se pot adresa 127 de
dispozitive. Adresa zero este folosit pentru dirijarea pachetelor ce au
adrese pentru dispozitive nealocate nc i deci aceast adres nu
poate fi alocat unui dispozitiv;
ENDP cmpul endpoint care poate avea pn la 4 bii permind 16
posibiliti endpoint;
CRC Codul ciclic de eroare (Cyclic Redundancy Checks);
EOP End of packet sfritul pachetului.

USB folosete patru tipuri de pachete: token packets care indic tipul tranzaciei
care urmeaz, data packets care conin datele de transmis, handshake packets care sunt
folosite pentru ncheierea transmisiei (handshake) coninnd informaii despre
confirmarea transmisiei i erorile produse i start of frame packets care indic nceputul
unui nou cadru.

Token Packets

Exist trei tipuri de pachete token: In care informeaz dispozitivul USB care
host dorete s citeasc informaia, Out care informeaz dispozitivul USB care host
dorete s transmit informaia, Setup folosit pentru iniierea controlului
transferurilor.
Pachetele token au formatul urmtor:

Sync PID ADDR ENDP CRC5 EOP

Data Pakets

Exist dou tipuri de pachete de date fiecare dintre acestea fiind capabil sa
transmit pn la 1024 octei de date: Data0 i Data1.


125
Modul High Speed definete nc dou PID-uri pentru date: DATA2 i
MDATA.
Pachetele de date au urmtorul format:

Sync PID Data CRC16 EOP

Dimensiunea maxim a datelor pentru viteza low este de 8 octei, pentru viteza full este
de 1023 de octei iar pentru viteza high este de 1024 de octei.

Handshake Packets

Sunt trei tipuri de pachete handshake care constau n esen numai din PID:
ACK care semnaleaz c datele au fost recepionate cu succes, NAK raporteaz c
temporar, dispozitivul nu poate recepiona sau transmite date sau, pe durata tranzaciei
unei ntreruperi informeaz host-ul c nu sunt date de transmis, STALL este necesar
intervenia host-ului.
Pachetele handshake au urmtorul format:

Sync PID EOP

Start of Frame Packets
Pachetele SOF constau din cadre de 11 bii i sunt transmise de fost la fiecare
interval de o milisecund pe magistralele de vitez full sau la fiecare 125s pe
magistralele cu vitez high.
Pachetele handshake au urmtorul format:

Sync PID Frame Number CRC5 EOP


6.5. Interfeele microcontrolerelor

Cele dou circuite integrate prezentate: interfaa serial 8251 i interfaa paralel
8255 sunt circuite utilizate n realizarea sistemelor de calcul cu microprocesor.
Microcontrolerele dein i ele, integrate pe acelai cip cu unitatea central, astfel de
interfee mai simple sau mai complexe. De regul un microcontroler deine o interfa
serial asincron pentru comunicaia cu alte sisteme de calcul, o interfa serial
sincron de mare vitez pentru comunicaia cu alte componente integrate care se pot
utiliza n sistem mpreun cu microcontrolerul i un sistem de intrri / ieiri numerice
similar cu interfaa paralel prezentat.
Se va prezenta n continuare convertorul analog-numeric al microcontrolerului
PIC 16F87x, reprezentativ pentru familia sa.







126


6.5.1. Modulul convertor analog-digital (A/D)

Convertorul analog-digital are cinci intrri la dispozitivele cu 28 de pini i opt
intrri la cele cu 40/44 de pini.
Conversia fiecrei intrri se face pe zece bii.
Modului A/D are o referin de tensiune nalt i o referin de tensiune sczut
selectabile prin program prin anumite combinaii ntre V
DD
, V
SS
, RA2 sau RA3.
Convertorul A/D poate funciona i n modul SLEEP dac se asigur pentru
convertorul analog-digital semnal de ceas de la oscilatorul RC intern.
Convertorul analog digital are patru registre:

registrul rezultat al celui mai semnificativ octet al convertorului
analog-digital (ADRESH);
registrul rezultat al celui mai puin semnificativ octet al convertorului
analog-digital (ADRESL);
registrul de control 0 (ADCON0);
registrul de control 1 (ADCON1).

Registrul ADCON0 controleaz funcionarea modulului analog-digital.
Registrul ADCON1 configureaz pinii portului care pot fi: intrri analogice
(RA3 poate fi, de asemenea, referina de tensiune) sau intrri/ieiri digitale.

Registrul ADCON0 (adresa 1Fh)

R/W-0 R/W-0 R/W-0 R/W-0 R/W-0 R/W-0 U-0 R/W-0
ADCS1 ADCS0 CHS2 CHS1 CHS0 GO/DONE - ADON
bit 7 bit 6 bit 5 bit 4 bit 3 bit 2 bit 1 bit 0

R = bit de citire; W = bit de scriere U = bit neimplementat, citit ca zero; n = valoare la
resetul power-on; '1' = bitul este setat; '0' = bitul este resetat; x = valoarea bitului este nu
este cunoscut

bit 7-6 ADCS1:ADCS0 biii de selecie a ceasului de conversie A/D

ADCON1
<ADCS2>
ADCON0
<ADCS1:ADCS0>
Ceas de conversie
0 00 F
OSC
/2
0 01 F
OSC
/8
0 10 F
OSC
/32
0 11 F
RC
(ceas derivat de la ceasul intern A/D RC)
1 00 F
OSC
/4
1 01 F
OSC
/16
1 10 F
OSC
/64
1 11 F
RC
(ceas derivat de la ceasul intern A/D RC)


127


bit 5-3 CHS2:CHS0 bii de selecie ai canalului analogic

000 = canal 0 (AN0)
001 = canal 1 (AN1)
010 = canal 2 (AN2)
011 = canal 3 (AN3)
100 = canal 4 (AN4)
101 = canal 5 (AN5)
110 = canal 6 (AN6)
111 = canal 7 (AN7)

Not: PIC16F873A/876A au implementat numai canalele A/D 0 pn la 4; combinaiile
neimplementate sunt rezervate; nici una dintre aceste combinaii nu trebuie trimise la
aceste dispozitive.

bit 2 GO/DONE DONE b bi it t d de e s st ta ar re e a a c co on nv ve er rs si ie ei i

0 0 = = c co on nv ve er rs si ie e A A/ /D D n n d de es sf f u ur ra ar re e ( (s se et ta ar re ea a a ac ce es st tu ui i b bi it t p po or rn ne e t te e c co on nv ve er rs si ia a A A/ /D D i i
b bi it tu ul l e es st te e t te er rs s a au ut to om ma at t d de e c c t tr re e h ha ar rd dw wa ar re e c c n nd d c co on nv ve er rs si ia a A A/ /D D e es st te e c co om mp pl le et t ) ); ;
1 1 = = c co on nv ve er rs si ia a n nu u e es st te e n n d de es sf f u ur ra ar re e. .

b bi it t 1 1 N Ne ei im mp pl le em me en nt ta at t. . L La a c ci it ti ir re e s se e c ci it te e t te e z ze er ro o. .

b bi it t 0 0 A AD DO ON N b bi it t d de e a al li im me en nt ta ar re e a a c co on nv ve er rt to or ru ul lu ui i A A/ /D D

1 1 = = c co on nv ve er rt to or ru ul l A A/ /D D e es st te e a al li im me en nt ta at t; ;
0 0 = = c co on nv ve er rt to or ru ul l e es st te e n ne ea al li im me en nt ta at t i i n nu u c co on ns su um m c cu ur re en nt t. .

Registrul ADCON1 (adresa 9Fh)

R/W-0 R/W-0 U-0 U-0 R/W-0 R/W-0 R/W-0 R/W-0
ADFM ADCS2 - - PCFG3 PCFG2 PCFG1 PCFG0
bit 7 bit 6 bit 5 bit 4 bit 3 bit 2 bit 1 bit 0

R = bit de citire; W = bit de scriere U = bit neimplementat, citit ca zero; n = valoare la
resetul power-on; '1' = bitul este setat; '0' = bitul este resetat; x = valoarea bitului este nu
este cunoscut

b bi it t 7 7 A AD DF FM M b bi it t d de e s se el le ec c i ie e a a f fo or rm ma at tu ul lu ui i r re ez zu ul lt ta at tu ul lu ui i A A/ /D D

1 1 = = a al li in ni ie er re e d dr re ea ap pt ta a. . a as se e d di in n c ce ei i m ma ai i s se em mn ni if fi ic ca at ti iv vi i b bi i i i a ai i A AD DR RE ES SH H s su un nt t c ci it ti i i i c ca a
z ze er ro o; ;



128
0 0 = = a al li in ni ie er re e s st t n ng ga a. . a as se e d di in n c ce ei i m ma ai i p pu u i in ni i s se em mn ni if fi ic ca at ti iv vi i b bi i i i a ai i A AD DR RE ES SL L s su un nt t
c ci it ti i i i c ca a z ze er ro o. .

b bi it t 6 6 A AD DC CS S2 2 b bi it t d de e s se el le ec c i ie e a a c ce ea as su ul lu ui i d de e c co on nv ve er rs si ie e A A/ /D D

ADCON1
<ADCS2>
ADCON0
<ADCS1:ADCS0>
Ceas conversie
0 00 F
OSC
/2
0 01 F
OSC
/8
0 10 F
OSC
/32
0 11 F
RC
(ceas derivat de la ceasul intern A/D RC)
1 00 F
OSC
/4
1 01 F
OSC
/16
1 10 F
OSC
/64
1 11 F
RC
(ceas derivat de la ceasul intern A/D RC)

b bi i i ii i 5 5- -4 4 N Ne ei im mp pl le em me en nt ta a i i. . L La a c ci it ti ir re e s su un nt t c ci it ti i i i c ca a z ze er ro o. .

b bi i i ii i 3 3- -0 0 P PC CF F3 3: :P PC CF F0 0 b bi i i ii i d de e c co on nt tr ro ol l a ai i c co on nf fi ig gu ur r r ri ii i A A/ /D D

P PG GF F
< <3 3: :9 9> >
A AN N7 7 A AN N6 6 A AN N5 5 A AN N4 4 A AN N3 3 A AN N2 2 A AN N1 1 A AN N0 0 V V
REF+ REF+
V V
REF- REF-
C C/ /R R
0 00 00 00 0 A A A A A A A A A A A A A A A A V V
DD DD
V V
SS SS
8 8/ /0 0
0 00 00 01 1 A A A A A A A A V V
REF+ REF+
A A A A A A A AN N3 3 V V
SS SS
7 7/ /1 1
0 00 01 10 0 D D D D D D A A A A A A A A A A V V
DD DD
V V
SS SS
5 5/ /0 0
0 00 01 11 1 D D D D D D A A V V
REF+ REF+
A A A A A A A AN N3 3 V V
SS SS
4 4/ /1 1
0 01 10 00 0 D D D D D D D D A A D D A A A A V V
DD DD
V V
SS SS
3 3/ /0 0
0 01 10 01 1 D D D D D D D D V V
REF+ REF+
D D

A A A A A AN N3 3 V V
SS SS
2 2/ /1 1
0 01 11 1x x D D D D D D D D D D D D

D D D D - - - - 0 0/ /0 0
1 10 00 00 0 A A A A A A A A V V
REF+ REF+
V V
REF- REF-
A A A A A AN N3 3 A AN N2 2 6 6/ /2 2
1 10 00 01 1 D D D D A A A A A A A A A A A A V V
DD DD
V V
SS SS
6 6/ /0 0
1 10 01 10 0 D D D D A A A A V V
REF+ REF+
A A A A A A A AN N3 3 V V
SS SS
5 5/ /1 1
1 10 01 11 1 D D D D A A A A V V
REF+ REF+
V V
REF- REF-
A A A A A AN N3 3 A AN N2 2 4 4/ /2 2
1 11 10 00 0 D D D D D D A A V V
REF+ REF+
V V
REF- REF-
A A A A A AN N3 3 A AN N2 2 3 3/ /2 2
1 11 10 01 1 D D D D D D D D V V
REF+ REF+
V V
REF- REF-
A A A A A AN N3 3 A AN N2 2 2 2/ /2 2
1 11 11 10 0 D D D D D D D D D D D D D D A A V V
DD DD
V V
SS SS
1 1/ /0 0
1 11 11 11 1 D D D D D D D D V V
REF+ REF+
V V
REF- REF-
D D A A A AN N3 3 A AN N2 2 1 1/ /2 2
A A = = i in nt tr ra ar re e a an na al lo og gi ic c D D = = I I/ /O O d di ig gi it ta al l
C C/ /R R = = n nu um m r ru ul l c ca an na al le el lo or r d de e i in nt tr ra ar re e a an na al lo og gi ic ce e/ /n nu um m r ru ul l t te en ns si iu un ni il lo or r d de e r re ef fe er ri in n p pe en nt tr ru u
c co on nv ve er rs si ia a A A/ /D D

N No ot t : : D Du up p R RE ES SE ET T p pi in ni ii i d di is sp po oz zi it ti iv vu ul lu ui i c ca ar re e s su un nt t m mu ul lt ti ip pl le ex xa a i i c cu u f fu un nc c i ii i a an na al lo og gi ic ce e
( (A An nx x) ) s su un nt t f fo or r a a i i s s f fi ie e i in nt tr r r ri i a an na al lo og gi ic ce e. .



129
R Re eg gi is st tr re el le e A AD DR RE ES SH H: :A AD DR RE ES SL L c co on n i in n c ce ei i 1 10 0 b bi i i i a ai i r re ez zu ul lt ta at tu ul lu ui i c co on nv ve er rs si ie ei i A A/ /D D. .
C C n nd d c co on nv ve er rs si ia a A A/ /D D e es st te e c co om mp pl le et t , , r re ez zu ul lt ta at tu ul l e es st te e n nc c r rc ca at t n n p pe er re ec ch he ea a d de e r re eg gi is st tr re e a al le e
r re ez zu ul lt ta at tu ul lu ui i, , b bi it tu ul l G GO O/ /DONE DONE ( (A AD DC CO ON N0 0< <2 2> >) ) e es st te e t te er rs s i i f fa an ni io on nu ul l n nt tr re er ru up pe er ri ii i A A/ /D D e es st te e
s se et ta at t. .
S Sc ch he em ma a b bl lo oc c a a m mo od du ul lu ul lu ui i c co on nv ve er rt to or ru ul lu ui i A A/ /D D e es st te e p pr re ez ze en nt ta at t n n f fi ig gu ur ra a u ur rm m t to oa ar re e. .

D Du up p c ce e m mo od du ul lu ul l A A/ /D D a a f fo os st t c co on nf fi ig gu ur ra at t, , c ca an na al lu ul l s se el le ec ct ta at t t tr re eb bu ui ie e a ac ch hi iz zi i i io on na at t
n na ai in nt te e d de e a a p po or rn ni i c co on nv ve er rs si ia a a an na al lo og g- -d di ig gi it ta al l . . C Ca an na al le el le e d de e i in nt tr ra ar re e a an na al lo og gi ic ce e t tr re eb bu ui ie e s s
a ai ib b b bi i i ii i c co or re es sp pu un nz z t to or ri i d di in n r re eg gi is st tr ru ul l T TR RI IS S s se el le ec ct ta a i i c ca a i in nt tr r r ri i. .
D Du up p c ce e t ti im mp pu ul l d de e a ac ch hi iz zi i i ie e s s- -a a s sc cu ur rs s, , c co on nv ve er rs si ia a A A/ /D D p po oa at te e s s n nc ce ea ap p . .
P Pa a i ii i c ca ar re e t tr re eb bu ui ie e u ur rm ma a i i p pe en nt tr ru u r re ea al li iz za ar re ea a u un ne ei i c co on nv ve er rs si ii i a an na al lo og g- -d di ig gi it ta al le e s su un nt t: :

1 1. . C Co on nf fi ig gu ur ra ar re ea a m mo od du ul lu ul lu ui i A A/ /D D: :

c co on nf fi ig gu ur ra ar re ea a p pi in ni il lo or r d de e i in nt tr ra ar re e a a s se em mn na al lu ul lu ui i a an na al lo og gi ic c/ /r re ef fe er ri in n d de e t te en ns si iu un ne e
i i a a I I/ /O O d di ig gi it ta al le e ( (A AD DC CO ON N1 1) ); ;
s se el le ec ct ta ar re ea a c ca an na al le el lo or r d de e i in nt tr ra ar re e A A/ /D D ( (A AD DC CO ON N0 0) ); ;
s se el le ec ct ta ar re ea a c ce ea as su ul lu ui i d de e c co on nv ve er rs si ie e ( (A AD DC CO ON N0 0) ); ;
a al li im me en nt ta ar re ea a m mo od du ul lu ul lu ui i A A/ /D D ( (A AD DC CO ON N0 0) ). .

2 2. . C Co on nf fi ig gu ur ra ar re ea a n nt tr re er ru up pe er ri ii i A A/ /D D ( (d da ac c e es st te e n ne ec ce es sa ar r ) ): :

Schema bloc a convertorului analog-digital


130
t te er rg ge er re ea a b bi it tu ul lu ui i A AD DI IF F; ;
s se et ta ar re ea a b bi it tu ul lu ui i A AD DI IE E; ;
s se et ta ar re ea a b bi it tu ul lu ui i P PE EI IE E; ;
s se et ta ar re ea a b bi it tu ul lu ui i G GI IE E. .
3 3. . S Se e a a t te ea ap pt t t ti im mp pu ul l d de e a ac ch hi iz zi i i ie e n ne ec ce es sa ar r. .
4 4. . S Se e p po or rn ne e t te e c co on nv ve er rs si ia a: :
s se e s se et te ea az z b bi it tu ul l G GO O/ /DONE DONE ( (A AD DC CO ON N0 0) ). .
5 5. . S Se e a a t te ea ap pt t t te er rm mi in na ar re ea a c co on nv ve er rs si ie ei i A A/ /D D p pr ri in n: :
t te es st ta ar re ea a p pr ri in n p pr ro og gr ra am m a a b bi it tu ul lu ui i G GO O/ /DONE DONE; ;
s sa au u ( (d da ac c n nt tr re er ru up pe er ri il le e a au u f fo os st t v va al li id da at te e) ) s se e a a t te ea ap pt t n nt tr re er ru up pe er re ea a A A/ /D D. .
6 6. . S Se e c ci it te e t te e r re ez zu ul lt ta at tu ul l c co on nv ve er rs si ie ei i d di in n p pe er re ec ch he ea a d de e r re eg gi is st tr re el le e A AD DR RE ES SH H: :A AD DR RE ES SL L, ,
s se e t te er rg ge e b bi it tu ul l A AD DI IF F, , d da ac c e es st te e n ne ec ce es sa ar r. .
7 7. . P Pe en nt tr ru u u ur rm m t to oa ar re ea a c co on nv ve er rs si ie e s se e f fa ac ce e s sa al lt t l la a p pa as su ul l 1 1 s sa au u 2 2 d du up p n ne ec ce es si it t i i. . T Ti im mp pu ul l
d de e c co on nv ve er rs si ie e A A/ /D D e es st te e d de ef fi in ni it t c ca a T T
AD AD
. .

6 6. .5 5. .1 1. .1 1. . C Ce er ri in n e el le e a ac ch hi iz zi i i ie ei i a an na al lo og g- -d di ig gi it ta al le e

P Pe en nt tr ru u c co on nv ve er rt to or ru ul l A A/ /D D t tr re eb bu ui ie e n nd de ep pl li in ni it te e a an nu um mi it te e c co on nd di i i ii i p pe en nt tr ru u o ob b i in ne er re ea a
u un nu ui i r re ez zu ul lt ta at t p pr re ec ci is s a al l c co on nv ve er rs si ie ei i a an na al lo og g- -d di ig gi it ta al le e. . n n p pr ri im mu ul l r r n nd d n nc c r rc ca ar re ea a
c co on nd de en ns sa at to or ru ul lu ui i d de e r re e i in ne er re e ( (C C
HOLD HOLD
) ) t tr re eb bu ui ie e s s f fi ie e c co om mp pl le et t p p n n l la a t te en ns si iu un ne ea a p pr re ez ze en nt t l la a
i in nt tr ra ar re ea a a an na al lo og gi ic c . . M Mo od de el lu ul l i in nt tr r r ri ii i a an na al lo og gi ic ce e e es st te e p pr re ez ze en nt ta at t n n f fi ig gu ur ra a u ur rm m t to oa ar re e: :
Legend: C
PIN
= capacitate de intrare
V
T
= tensiune de prag
I
LEAKAGE
= curent de scurgere la pin datorat conexiunii
R
IC
= rezistena de interconectare
SS = comutatorul de eantionare
C
HOLD
= capacitatea de eantionare/reinere (pentru DAC)



131
I Im mp pe ed da an n a a s su ur rs se ei i ( (R R
S S
) ) i i i im mp pe ed da an n a a c co om mu ut ta at to or ru ul lu ui i d de e e e a an nt ti io on na ar re e i in nt te er rn n ( (R R
SS SS
) )
a af fe ec ct te ea az z n n m mo od d d di ir re ec ct t t ti im mp pu ul l n ne ec ce es sa ar r n nc c r rc c r ri ii i c ca ap pa ac ci it t i ii i C C
HOLD HOLD
. . I Im mp pe ed da an n a a
c co om mu ut ta at to or ru ul lu ui i ( (R R
SS SS
) ) v va ar ri ia az z n n f fu un nc c i ie e d de e t te en ns si iu un ne ea a d de e a al li im me en nt ta ar re e a a d di is sp po oz zi it ti iv vu ul lu ui i ( (V V
DD DD
) ). .
I Im mp pe ed da an n a a m ma ax xi im m r re ec co om ma an nd da at t p pe en nt tr ru u s su ur rs sa a a an na al lo og gi ic c e es st te e d de e 1 10 0 k k . .
D Da ac c i im mp pe ed da an n a a s sc ca ad de e, , t ti im mp pu ul l d de e a ac ch hi iz zi i i ie e p po oa at te e f fi i s sc c z zu ut t. .
D Du up p c ce e c ca an na al lu ul l i in nt tr r r ri ii i a an na al lo og gi ic ce e e es st te e s se el le ec ct ta at t ( (s sc ch hi im mb ba at t) ), , t tr re eb bu ui ie e s s s se e f fa ac c
a ac ch hi iz zi i i ia a s se em mn na al lu ul lu ui i n na ai in nt te e d de e p po or rn ni ir re ea a c co on nv ve er rs si ie ei i a an na al lo og g- -n nu um me er ri ic ce e. .
P Pe en nt tr ru u a a c ca al lc cu ul la a t ti im mp pu ul l m mi in ni im m d de e a ac ch hi iz zi i i ie e s se e p po oa at te e f fo ol lo os si i e ec cu ua a i ia a: :

T T
ACQ ACQ
= = T Ti im mp pu ul l d de e s se et ta ar re e a a a am mp pl li if fi ic ca at to or ru ul lu ui i + + T Ti im mp pu ul l d de e n nc c r rc ca ar re e a a c ca ap pa ac ci it t i ii i d de e
r re e i in ne er re e + + c co oe ef fi ic ci ie en nt tu ul l d de e t te em mp pe er ra at tu ur r

= = T T
AMP AMP
+ + T T
C C
+ + T T
COFF COFF
= = 2 2 s s + + T T
C C
+ + [ [T Te em mp pe er ra at tu ur ra a 2 25 5
0 0
C C) ) ( (0 0, ,0 05 5 s s/ /
0 0
C C) )] ]
T TC C = = C C
HOLD HOLD
( (R R
IC IC
+ + R R
SS SS
+ + R R
S S
) ) l ln n( (1 1/ /2 20 04 47 7) )
= = - - 1 12 20 0p pF F ( (1 1k k + + 7 7k k + + 1 10 0k k ) ) l ln n( (0 0, ,0 00 00 04 48 88 85 5) )
= = 1 16 6, ,4 47 7 s s
T T
ACQ ACQ
= = 2 2 s s + + 1 16 6, ,4 47 7 s s + + [ [5 50 0
0 0
C C 2 25 5
0 0
C C) )( (0 0, ,0 05 5 s s/ /
0 0
C C) )
= = 1 19 9, ,7 72 2 s s

n n a ac ce ea as st t e ec cu ua a i ie e s se e f fo ol lo os se e t te e e er ro oa ar re ea a m ma ax xi im m p pe er rm mi is s d de e 1 1/ /2 2 L LS SB B ( (1 10 02 24 4 p pa a i i
p pe en nt tr ru u A A/ /D D) ). .

6 6. .5 5. .1 1. .2 2. . S Se el le ec c i ia a c ce ea as su ul lu ui i c co on nv ve er rs si ie ei i a an na al lo og g- -d di ig gi it ta al le e

T Ti im mp pu ul l d de e c co on nv ve er rs si ie e p pe e b bi it t e es st te e d de ef fi in ni it t c ca a T T
AD AD
. . C Co on nv ve er rs si ia a A A/ /D D n ne ec ce es si it t c ce el l p pu u i in n
1 12 2T T
AD AD
p pe en nt tr ru u c co on nv ve er rs si ia a p pe e 1 10 0 b bi i i i. . S Su ur rs sa a c ce ea as su ul lu ui i d de e c co on nv ve er rs si ie e A A/ /D D e es st te e s se el le ec ct ta ab bi il l p pr ri in n
p pr ro og gr ra am m. . C Ce el le e a ap pt te e v va ar ri ia an nt te e p po os si ib bi il le e p pe en nt tr ru u T T
AD AD
s su un nt t: :

2 2T T
OSC OSC

4 4T T
OSC OSC

8 8T T
OSC OSC

1 16 6T T
OSC OSC

3 32 2
OSC OSC

6 64 4T T
OSC OSC

o os sc ci il la at to or ru ul l R RC C i in nt te er rn n a al l m mo od du ul lu ul lu ui i A A/ /D D ( (2 2- -6 6 s s) ). .

P Pe en nt tr ru u o o c co on nv ve er rs si ie e c co or re ec ct t A A/ /D D c ce ea as su ul l d de e c co on nv ve er rs si ie e T T
AD AD
t tr re eb bu ui ie e a as st tf fe el l a al le es s n nc c t t
s s a as si ig gu ur re e t ti im mp pu ul l m mi in ni im m d de e c co on nv ve er rs si ie e d de e 1 1, ,6 6 s s. .
T Ta ab be el lu ul l u ur rm m t to or r a ar ra at t t ti im mp pu ul l T T
AD AD
r re ez zu ul lt ta at t d di in n f fr re ec cv ve en n e el le e d de e o op pe er ra ar re e a al le e
d di is sp po oz zi it ti iv vu ul lu ui i i i d di in n s su ur rs sa a d de e c ce ea as s A A/ /D D s se el le ec ct ta at t . .







132
S Su ur rs sa a c ce ea as su ul lu ui i A AD D ( (T T
AD AD
) ) F Fr re ec cv ve en n a a m ma ax xi im m a a d di is sp po oz zi it ti iv vu ul lu ui i
O Op pe er ra ar re e A AD DC CS S2 2: :A AD DC CS S1 1: :A AD DC CS S0 0 M Ma ax x. .
2 2T T
OSC OSC
0 00 00 0 1 1, ,2 25 5M MH Hz z
4 4T T
OSC OSC
1 10 00 0 2 2, ,5 5M MH Hz z
8 8T T
OSC OSC
0 00 01 1 5 5M MH Hz z
1 16 6T T
OSC OSC
1 10 01 1 1 10 0M MH Hz z
3 32 2T T
OSC OSC
0 01 10 0 2 20 0M MH Hz z
6 64 4T T
OSC OSC
1 11 10 0 2 20 0M MH Hz z
R RC C
(1,2,3) (1,2,3)
x x1 11 1 ( (N No ot ta a 1 1) )

N No ot ta a: : 1 1. . S Su ur rs sa a R RC C a ar re e u un n T T
AD AD
t ti ip pi ic c d de e 4 4 s s, , d da ar r v va ar ri ia az z n nt tr re e 2 2- -6 6 s s. .
2 2. . C C n nd d f fr re ec cv ve en n a a d di is sp po oz zi it ti iv vu ul lu ui i e es st te e m ma ai i m ma ar re e d de ec c t t 1 1 M MH Hz z, , s su ur rs sa a d de e c ce ea as s R RC C
A A/ /D D e es st te e s si in ng gu ur ra a r re ec co om ma an nd da at t p pe en nt tr ru u o op pe er ra ar re ea a S SL LE EE EP P. .
3 3. . P Pe en nt tr ru u d di is sp po oz zi it ti iv ve e c cu u t te en ns si iu un ne e d de e a al li im me en nt ta ar re e e ex xt ti in ns s s se e v vo or r s st tu ud di ia a
c ca ar ra ac ct te er ri is st ti ic ci il le e e el le ec ct tr ri ic ce e. .

6 6. .5 5. .1 1. .3 3. . C Co on nv ve er rs si ia a A A/ /D D

D Da ac c s se e t te er rg ge e b bi it tu ul l G GO O/ /DONE DONE p pe e t ti im mp pu ul l u un ne ei i c co on nv ve er rs si ii i a at tu un nc ci i a ac ce ea a c co on nv ve er rs si ie e
e es st te e a ab ba an nd do on na at t i ia ar r p pe er re ec ch he ea a d de e r re eg gi is st tr re e c cu u r re ez zu ul lt ta at tu ul l c co on nv ve er rs si ie ei i n nu u v vo or r f fi i m mo od di if fi ic ca a i i, ,
D Du up p a ab ba an nd do on n, , o o n no ou u a ac ch hi iz zi i i ie e d de e d da at te e e es st te e p po or rn ni it t a au ut to om ma at t p pe en nt tr ru u c ca an na al lu ul l s se el le ec ct ta at t. .
B Bi it tu ul l G GO O/ /DONE DONE p po oa at te e a at tu un nc ci i f fi i s se et ta at t p pe en nt tr ru u a a p po or rn ni i c co on nv ve er rs si ia a. .
n n f fi ig gu ur ra a d de e m ma ai i j jo os s, , d du up p c ce e b bi it tu ul l G GO O e es st te e s se et ta at t, , p pr ri im mu ul l s se eg gm me en nt t d de e t ti im mp p e es st te e
m mi in ni im mu um m T T
CY CY
i i m ma ax xi im mu um m T T
AD AD
. .


T T
cy cy
r re ep pr re ez zi in nt t u un n c ci ic cl lu u m ma a i in n ( (f f
osc osc
/ /4 4) )

R Re eg gi is st tr re el le e a as so oc ci ia at te e c co on nv ve er rt to or ru ul lu ui i a an na al lo og g- -d di ig gi it ta al l s su un nt t: : I IN NT TC CO ON N, , P PI IR R1 1, , P PI IE E1 1, ,
A AD DR RE ES SH H, , A AD DR RE ES SL L, , A AD DC CO ON N0 0, , A AD DC CO ON N1 1, , T TR RI IS SA A, , P PO OR RT TA A, , T TR RI IS SE E, , P PO OR RT TE E. .



Ciclurile T
AD
ai conversiei A/D


133



CAPITOLUL 7

CIRCUITE SPECIALE

7.1. Introducere

Sistemele de calcul sunt prevzute suplimentar cu circuite destinate unor funcii
care duc la creterea versatilitii arhitecturii prin adugarea unor funcii noi. Astfel,
printre circuitele suplimentare adugate unei arhitecturi, se pot meniona: circuitul
pentru gestionarea prioritar a
ntreruperilor, circuitul pentru controlul
accesului direct la memorie (Direct
Access Memory DMA) i circuitul
timer (un circuit destinat msurrii
intervalelor de timp i contorizrii
evenimentelor).

7.2. Controlerul de ntreruperi
programabil 8259

Unitatea 8259 este realizat n
tehnologia NMOS, pe un singur circuit
integrat, cu 28 terminate ale cror
semnificaii sunt date n figura 7.1. O
singur unitate poate manipula pn la 8
cereri de ntreruperi externe i asigur o
varietate de modaliti programabile,
pentru arbitrarea prioritilor acestora.
Datorit posibilitilor de conectare n
cascad, implementate n unitatea 8259,
se pot interconecta, la o unitate 8259-
master, pn la opt uniti-slave,
asigurndu-se astfel faciliti de tratare a
64 niveluri prioritare de ntrerupere.
Modalitile de arbitrare pot fi
programate diferit la unitatea master i la
fiecare unitate slave.
1 28
2 27
3 26
4 25
5 24
6 23
7 8259 22
8 21
9 20
10 19
11 18
12 17
13 16
14 15
Vcc
A0
INTA
IR7
IR6
IR5
IR4
IR3
IR2
IR1
IR0
INT
SP
C2
CS
IOW
IOR
D7
D6
D5
D4
D3
D2
D1
D0
C0
C1
Masa
Figura 7.1. Semnificaia terminalelor unitii
pentru comanda prioritar a ntreruperilor
Schema bloc funcional este
prezentat n figura 7.2. Ea const din
mai multe registre i reele logice grupate
n jurul unei magistrale interne.
8259.
D
7
-D
0
- magistrala de date (bidirecional);
CS - selecie circuit (intrare);
A0 - identific unul din cele dou
porturi ale unitii (intrare);
IOR - semnal de comand citire (intrare);
IOW - semnal de comand scriere (intrare);
INT - cerere de ntrerupere trimis de unitatea
central (ieire);
INTA - recunoatere ntrerupere (intrare);
SP - identific unitatea fie ca master, fie ca
slave (intrare);
C0-C2 - linii de selecie a unitilor slave n
sistemele cu uniti multiple (ieire la
master, intrare la slave);
VCC - tensiune de alimentare pozitiv;


134

Logica de comand

Registrul
cererilor de
ntrerupere
(RCI)
Registrul
cererilor de
ntrerupere
tratate
(RCIT)

Circuit
pentru
rezolvarea
prioritilor

Registrul de mascare a ntreruperilor
(RMI)
IR0
IR1
IR2
IR3
IR4
IR5
IR6
IR7
INTA INT
Magistrala intern
Tampon
pentru
magistrala
de date

Logica de
scriere/
citire
Tampon
compara-
tor pentru
cascadare
D
0
D
7
RD

WR

A0

CS

CAS0

CAS1

CAS2

SP

Figura 7.2. Schema bloc a unitii 8259.

Cererile de ntrerupere IR
0
-IR
7
, de la echipamentele periferice, poziioneaz n
unu, pe fronturile pozitive, cnd devin active, bistabilii corespunztori ai Registrului
Cererilor de Intrerupere (ROI). Poziionarea n unu, a unuia sau mai multor bistabili din
registrul RCI, are ca efect generarea unui semnal (nivel ridicat) pe linia INT. Coninutul
lui RCI, corespunztor cererii de ntrerupere considerate, este forat n zero prin
secvena INTA.
Noua cerere de ntrerupere considerat va fi nregistrat ntr-un bistabil corespunztor,
din Registrul Cererilor de ntrerupere Tratate (RCIT), odat cu forarea n zero, a
bistabilului asociat ntreruperii respective, n RCI. Bistabilul din RCIT va fi readus n
zero prin program, la sfritul operaiei de tratare a ntreruperii, printr-o comand
adecvat (OCW2 - a se vedea programarea unitii 8259), dat naintea revenirii n
programul principal.
Circuitul pentru rezolvarea prioritilor cererilor de ntrerupere stabilete
prioritile cererilor, care au poziionat n unu bistabilii RCI. Pe durata impulsului
INTA, bitul cu prioritatea cea mai mare este forat din RCI n RCIT.
Semnalul de ntrerupere INT, generat de unitatea 8259, este forat direct la
microprocesor.
Semnalul de recunoatere a ntreruperii ( INTA), este generat de ctre unitatea
central. Primul semnal INTA, va face ca 8259 s foreze, pe magistrala de date D
0
-D
7
,
codul instruciunii CALL. Ca urmare a acestui cod , unitatea central va furniza, n
ciclurile main care urmeaz, nc dou semnale INTA, la care unitatea 8259 va fora,
pe magistrala de date, cei doi octei de adres ai instruciunii CALL. n acest mod,


135
unitatea central de prelucrare va ncepe execuia rutinei corespunztoare, de tratare a
ntreruperii, a crei adres de start a fost furnizat de instruciunea CALL.
Registrul de Mascare a ntreruperilor (RMI) conine biii cererilor de ntrerupere
care trebuie mascate. Coninutul su are efect asupra informaiei din RCIT i RCI.
Tamponul pentru magistrala de date este bidirecional, fiind prevzut cu circuite
cu trei stri, ceea ce permite conectarea direct a unitii 8259 la magistrala de date a
unitii centrale de prelucrare. Prin acest tampon sunt transferate cuvintele de comand
i informaia de stare.
Logica pentru comanda scrierii/citirii accept comenzi de la unitatea central de
prelucrare i transfer ctre aceasta cuvntul de stare al unitii 8259. Aceast logic
conine registrele pentru Cuvntul de Comanda de Iniializare (CCI) i Cuvntul de
Comand al Operrii (CCO).
Intrarea de Selecie a circuitului ( CS) activeaz unitatea 8259, cnd este pe nivel
cobort.
Intrarea comenzii de scriere ( WR ), activ pe nivel cobort, permite s se nscrie
cuvinte de comand (CCI, CCO) n unitatea 8259.
Intrarea comenzii de citire ( RD), activ pe nivel cobort, permite transmiterea,
de ctre unitatea 8259, spre unitatea central de prelucrare, pe magistrala de date, a
coninuturilor RCI, RCIT, RMI sau a codului binar zecimal al nivelului de ntrerupere.
Semnalul de intrare A
0
, folosit mpreun cu comenzile RD i WR permite
scrierea de comenzi n diferite registre de comand sau citirea coninuturilor unor
registre. Intrarea A
0
se poate conecta direct la una din liniile de adrese.
n vederea extinderii schemei sistemului de ntrerupere pentru a putea manipula
pn la 64 de cereri de ntrerupere, se pot folosi mai multe uniti 8259, dintre care una
va juca rol de master, iar celelalte de slave. Unitatea master va fi desemnat prin
conectarea terminalului SP la un nivel pozitiv de tensiune. Conectarea terminalului SP
la un nivel cobort de tensiune va desemna o unitate de tip slave.
Tamponul comparator pentru cascadare memoreaz i compar identitile
tuturor unitilor 8259 folosite n sistem. Terminalele de intrri/ ieiri (CAS
0
-CAS
2
)
sunt folosite ca ieiri de ctre unitatea master, care transmite n exterior identitatea
unitii slave luat n consideraie. Aceleai terminale se folosesc ca intrri, pentru
unitile slave, n vederea seleciei. Unitatea slave selectat va fora pe magistrala de
date, pe durata ultimelor dou semnale INTA, adresa preprogramat a subrutinei,
ncepnd cu octetul cel mai puin semnificativ.
Interaciunea unitii 80259 cu unitatea central de prelucrare se desfoar
conform urmtoarei secvene:

- una sau mai multe linii IR
7
-IR
0
sunt activate de fronturile cresctoare ale cererilor de
ntrerupere;
- unitatea 8259 transmite un semnal INT, ctre unitatea central, ca urmare a acceptrii
cererilor de ntrerupere i rezolvare a prioritilor;
- unitatea central, recunoate semnalul INT i genereaz un semnal INTA;
- la recepionarea semnalului INTA, unitatea 8259 rspunde cu forarea pe magistrala
de date (D
7
-D
0
) a codului instruciunii CALL;


136
- unitatea central de comand va genera dou semnale succesive INTA, care vor
activa forarea pe magistrala de date, sub forma a doi octei succesivi, a adresei rutinei
chemate prin CALL, ncepnd cu octetul cel mai puin semnificativ;
- dup terminarea tratrii cererii de ntrerupere se va genera comanda Sfrit de
Intrerupere (EOI), care va poziiona n zero bitul corespunztor ntreruperii tratate n
RCIT.
Programarea unitii 8259 se realizeaz prin comenzi generate de ctre unitatea
central de prelucrare, care pot fi comenzi de iniializare i respectiv de operare.
Cuvintele de comand pentru iniializare sunt dou, pentru cazul unei singure
uniti 8259 i respectiv trei, pentru cazul mai multor uniti 8259, n sistem. n figura
7.3, a, b, c, d se prezint structurile celor trei cuvinte de comand ale iniializrii (CCI1,
a) Cuvntul de comand al iniializrii CCI1

A0 bit 7 bit 6 bit 5 bit 4 bit 3 bit 2 bit 1 bit 0
0 1 x x

bit 1
1 o singur unitate 8259;
0 o unitate master i mai multe slave;
bit 2
1 ntre vectorii de adres se las 4 octei;
0 ntre vectorii de adres se las 8 octei;
biii 7,6,5
biii A
7
A
6
A
5
ai vectorului de adres de ntrerupere.

b) Cuvntul de comand al iniializrii CCI2

A0 bit 7 bit 6 bit 5 bit 4 bit 3 bit 2 bit 1 bit 0
1

biii 7,6,5,4,3,2,1,0
biii A
15
A
14
A
13
A
12
A
11
A
10
A
9
A
8
ai vectorului de adres de ntrerupere.

c) Cuvntul de comand al iniializrii CCI3

la master
A0 bit 7 bit 6 bit 5 bit 4 bit 3 bit 2 bit 1 bit 0
1

biii 7,6,5,4,3,2,1,0
oricare bit poziionat n unu semnific nivelul la care a fost ataat o unitate 8259 slave.
la slave
A0 bit 7 bit 6 bit 5 bit 4 bit 3 bit 2 bit 1 bit 0
1 x x x x x

biii 2,1,0
identific nivelul cererii la unitatea master 8259, la care s-a conectat unitatea slave dat.

x valoare oarecare (indiferent).

Figura 7.3. Structura cuvintelor de comand ale iniializrii.


137
CCI2, CCI3).
Primul cuvnt de comand al iniializrii CCI1 (fig. 7.3, a) este generat cnd A
0

= 0 i D
4
= l. El are ca efect: aducerea n condiiile iniiale a circuitului de sesizare a
unei cereri de ntrerupere (tranziie pozitiv a semnalului cerere), anularea RMI,
atribuirea intrrii IR
7
a prioritii 7, poziionarea n zero a bistabilului asociat cu masca
i a bistabilului asociat cu citirea strii. CCI1 specific dac se folosete o singur
unitate sau mai multe uniti 8259, indic distana n octei ntre vectorii adreselor de
ntrerupere (4 octei sau 8 octei), furnizeaz biii A
7
-A
5
, ai vectorului adresei de
ntrerupere, pentru instruciunea CALL.
Al doilea cuvnt de comand al iniializrii CCI2 (fig. 7.3, b) este forat dup
CCI1, n unitatea 8259 i specific biii A
15
-A
8
, ai vectorului adresei de ntrerupere. Se
menioneaz c unitatea 8259 foreaz automat biii A
4
, A
3
, A
2
, corespunztor codului
nivelului cererii de ntrerupere, n timp ce biii A
l
, A
0
sunt forai n zero.
Al treilea cuvnt de comand al iniializrii CCI3 se folosete numai n cazurile
sistemelor de ntrerupere cu uniti 8259 multiple. Semnificaiile CCI3 difer n funcie
de unitatea creia i este adresat: master (fig. 7.3, c) i slave (fig. 7.3, d).
Cuvintele de comand a operrii (CC0). Dup programarea unitii 8259 cu
cuvintele de comand de iniializare, pot fi luate n consideraie eventualele cereri de
ntrerupere. Modurile, disciplinele de tratare a cererilor de ntreruperi, se pot programa
prin cuvintele de comand ale operrii, selectate corespunztor CCOl, , CCO3 (fig.
7.4).
Primul dintre cuvintele de comand ale operrii, CC01, se refer la programarea
registrului de mascare a ntreruperilor (RM1). Acest registru va opera asupra RCI i
RCIT. Dac o ntrerupere a fost recunoscut de ctre unitatea 8259, nivelul respectiv,
dei mascat prin CCOl, va inhiba nivelurile mai puin prioritare. Pentru a evita acest
lucru se poate emite un CCO2, reprezentnd comanda de terminare a ntreruperii (EOI)
pentru a anula bitul corespunztor din RCIT sau se va utiliza un CCO3, reprezentnd un
mod special de mascare.
Modul de tratare cu imbricare complet, a cererilor de ntrerupere, se realizeaz
fr transmiterea vreunui CCOi, dup iniializare. n acest mod prioritile sunt atribuite
n ordinea 0, ,7, prioritatea cea mai mare avnd-o nivelul 0. La recunoaterea unei
ntreruperi, se determin cererea curent cu prioritatea cea mai mare, se foreaz
vectorul adres corespunztor pe magistral i se poziioneaz n unu bitul asociat din
RCIT. Acest bit rmne poziionat n unu pn la comanda terminrii ntreruperii,
naintea revenirii n rutina principal ntrerupt. n acest timp sunt inhibate toate cererile
de ntrerupere situate pe niveluri mai puin prioritare dect nivelul tratat. Sunt acceptate
cererile de ntrerupere corespunztoare unor niveluri superioare.
Modul de tratare cu rotirea prioritii este folosit n aplicaiile n care
echipamentele, care solicit ntreruperi, au prioriti egale (de exemplu: canalele de
comunicaie). Acest mod are dou variante: modul cu auto-rotire i modul special. n
cazul auto-rotirii, dispozitivul care a fost tratat primete nivelul de prioritate cel mai
cobort. Modul special permite modificarea prioritilor, de ctre programator, n sensul
de a stabili nivelurile cu prioritatea minim i respectiv maxim.
Terminarea normal a ntreruperii (EOI) i terminarea special a ntreruperii
(SEOI) se refer la modalitile de anulare a bitului, din RCIT, corespunztor cererii de
ntrerupere care s-a tratat. n cazul modului cu imbricare complet, unitatea anuleaz


138
bitul cu prioritatea cea mai mare (EOI), n timp ce, n modul cu rotirea prioritii,
trebuie s se specifice prin comand (SEOI) nivelul care urmeaz s fie anulat (vezi
CCO2 din fig. 7.4, b).

d) Cuvntul de comand al operrii CCO1. Masca de ntrerupere.

A0 bit 7 bit 6 bit 5 bit 4 bit 3 bit 2 bit 1 bit 0
1

biii 7,6,5,4,3,2,1,0
1 poziionare masc;
0 anulare masc.

e) Cuvntul de comand al operrii CCO2. Comanda terminrii ntrerupere (EOI).

A0 bit 7 bit 6 bit 5 bit 4 bit 3 bit 2 bit 1 bit 0
0 R SEOI EOI 0 0 L2 L1 L0
R - rotirea prioritii (1 rotete, 0 fr rotire); SEOI - terminare special a ntreruperii;
EOI - terminare normal a ntreruperii.
biii 2,1,0
000 se selecteaz nivelul 0 ca avnd prioritate minim;
001 se selecteaz nivelul 1 ca avnd prioritate minim;
010 se selecteaz nivelul 2 ca avnd prioritate minim;
011 se selecteaz nivelul 3 ca avnd prioritate minim;
100 se selecteaz nivelul 4 ca avnd prioritate minim;
101 se selecteaz nivelul 5 ca avnd prioritate minim;
110 se selecteaz nivelul 6 ca avnd prioritate minim;
111 se selecteaz nivelul 7 ca avnd prioritate minim;
biii 7,6,5
000 neoperaional;
001 terminare simpl a ntreruperii, se ignor biii 2,1,0;
010 neoperaional;
011 terminare special a ntreruperii, se anuleaz bitul RCIT specificat de biii 2,1,0;
100 neoperaional;
101 terminare ntrerupere i se execut rotirea prioritii n Mod A;
110 execut rotirea prioritii n Mod B. Nivelul cu prioritate minim este stabilit de biii
2,1,0;
111 terminare ntrerupere i execut rotirea prioritii n Mod B. Nivelul cu prioritate
minim este stabilit de biii 2,1,0;

Figura 7.4. a. b. Cuvintele de comand al operrii.

Modul special de tratare cu mascare este stabilit prin CCO3 i se refer la
situaia n care unii bii sunt mascai prin coninutul RMI, stabilit cu ajutorul CCO1.
Dac, din diferite motive, se execut subrutina care are nivelul mascat (fie datorit
recepionrii semnalului INTAdup mascare, fie datorit auto-mascrii), folosind acest
mod, nivelurile mai puin prioritare nu vor fi afectate pn la anularea acestui mod.
Nivelurile prioritare, superioare nivelului tratat, de asemenea, nu vor fi afectate.
Modul de tratare cu interogare se bazeaz pe dezactivarea, de ctre unitatea central, a
Intrrilor de ntrerupere. Servirea echipamentelor se realizeaz prin comanda de
interogare, la iniiativa programatorului, folosind CCO3 cu bitul P=l, pe durata


139
impulsului WR . Cu ocazia generrii de ctre unitatea central a unui impuls RD,
unitatea 8259 l trateaz ca semnal de recunoatere a ntreruperii, poziionnd n unu, n
cazul unei cereri de ntrerupere, bistabilul corespunztor din RCIT i citind nivelul de
prioritate asociat. Unitatea 8259 va fora pe magistrala de date un cuvnt, care va avea
n bii D
2
, D
l
, D
0
, codul cererii curente de ntrerupere cu prioritatea cea mai mare, iar n
bitul D
7
se va indica prezena (1) sau absena (0) unei cereri de ntrerupere.

c) Cuvntul de comand al operrii CCO3. Mod special de mascare.

A0 bit 7 bit 6 bit 5 bit 4 bit 3 bit 2 bit 1 bit 0
0 x CSMM SMM 0 1

biii 1,0
00 nepermis;
01 nepermis;
10 citete RCI la urmtoarea comand RD;
11 citete RCIT la urmtoarea comand RD.

bitul 2
1 comand pentru modul interogare;
0 comand pentru modul lips interogare (normal)

biii 6,5
00 neoperaional;
01 neoperaional;
10 anuleaz modul special de tratare cu mascare;
11 activeaz modul special de tratare cu mascare;

x indiferent.
Figura 7.4. c. Cuvintele de comand al operrii.

Citirea strii unitii 8259 se realizeaz prin generarea unui impuls RD, dup ce,
n prealabil, s-a transmis o comand corespunztoare CCO3. Astfel, se pot citi RCI,
RCIT, poziionnd n mod corespunztor biii D
l
, D
0
, din CCO3. Pentru citirea RMI nu
este necesar un CCO3. Informaia citit, de pe magistrala de date, va corespunde lui
RMI, dac RD este activ i A
0
= 1.



7.3. ntreruperile microcontrolerului TMS320F240

Microcontrolerul TMS320F240 dispune de un mecanism evoluat de gestiune a
ntreruperilor prin intermediul unui manager de evenimente.
n continuare se prezint succint acest mod de tratare a ntreruperilor datorit
faptului c se consider reprezentativ pentru microcontrolere.






140
7.3.1. ntreruperile managerului de evenimente (EV)

Organizarea ntreruperilor unitii centrale

Sistemul de ntreruperi externe ale unitii centrale (miezul procesorului C2xx -
CPU) este format din ase ntreruperi mascabile (INT1-INT6) i una nemascabil
(NMI). Prioritatea maxim o are ntreruperea NMI iar prioritile ntreruperilor
mascabile scad de la INT6 la INT1, INT1 avnd prioritatea minim.
Fiecrei ntreruperi i corespunde un bit n registrul fanioanelor de ntrerupere a
unitii centrale (IFR) i fiecrei ntreruperi mascabile i corespunde un bit n registrul
mtilor unitii centrale (IMR). O ntrerupere mascabil este mascat (nu va genera o
ntrerupere ctre miez) cnd bitul corespunztor n IMR este 0. De asemenea miezul
procesorului mai are un bit pentru mascarea general a ntreruperilor (INTM) n
registrul de stare ST0. Cnd INTM este setat la 1, toate ntreruperile mascabile sunt
dezactivate.

Rspunsul la ntrerupere a miezului C2xx

Cnd apare o tranziie de la unu la zero pe o intrare de ntrerupere a miezului,
bitul corespunztor al fanionului din IFR este setat n 1. O ntrerupere este generat
ctre miez dac aceasta nu este mascat - ntreruperile globale sunt permise (INTM=0) -
i nu exist o alt ntrerupere nemascat de prioritate mai mare n ateptare (acest lucru
nsemnnd c nu exist nici un fanion setat al unei ntreruperi nemascate de prioritate
mai mare). Fanionul este ters de ctre hardware o dat ce cererea de ntrerupere este
trimis ctre miez. Un fanion de ntrerupere poate fi de asemenea ters de ctre
programul utilizator scriind un 1 n bitul corespunztor.

Cererea de ntrerupere EV i servirea acestora

ntreruperile managerului de evenimente sunt organizate n trei grupe: A, B i C.
Grupul A genereaz o cerere de ntrerupere ctre miez prin INT2 iar B i C prin INT3 i
respectiv INT4. n tabelul 7.1 sunt prezentate toate ntreruperile EV, prioritile acestora
i modul de grupare.

TABELUL 7.1.
Grup ntrerupere
Prioritatea n
interiorul
grupului
Vectorul
(ID)
Descriere/surs
PDPINT 1 cea mai mare 0020h ntrerupere de protecie a acionrilor de putere
CMP1INT 2 0021h ntreruperea unitii de comparare complet 1
CMP2INT 3 0022h ntreruperea unitii de comparare complet 2
CMP3INT 4 0023h ntreruperea unitii de comparare complet 3
SCMP1INT 5 0024h ntreruperea unitii de comparare simpl 1
SCMP2INT 6 0025h ntreruperea unitii de comparare simpl 2
SCMP3INT 7 0026h ntreruperea unitii de comparare simpl 3
T1PINT 8 0027h ntrerupere timer GP 1 la perioad
T1CINT 9 0028h ntrerupere timer GP 1 la comparare
A
T1UFINT 10 0029h ntrerupere timer GP 1 la depire inferioar


141
TABELUL 7.1. (continuare)
T1OFINT 11 cea mai mic 002Ah ntrerupere timer GP 1 la depire superioar
T2PINT 1 cea mai mare 002Bh ntrerupere timer GP 2 la perioad
T2CINT 2 002Ch ntrerupere timer GP 2 la comparare
T2UFINT 3 002Dh ntrerupere timer GP 2 la depire inferioar
T2OFINT 4 002Eh ntrerupere timer GP 2 la depire superioar
T3PINT 5 002Fh ntrerupere timer GP 3 la perioad
T3CINT 6 0030h ntrerupere timer GP 3 la comparare
T3UFINT 7 0031h ntrerupere timer GP 3 la depire inferioar
B
T3OFINT 8 cea mai mic 0032h ntrerupere timer GP 3 la depire superioar
CAP1INT 1 cea mai mare 0033h ntrerupere a unitii de captur 1
CAP2INT 2 0034h ntrerupere a unitii de captur 2
CAP3INT 3 0035h ntrerupere a unitii de captur 3
C
CAP4INT 4 cea mai mic 0036h ntrerupere a unitii de captur 4

Exist cte un registru al fanioanelor de ntrerupere EV pentru fiecare grup:
EVIFRA, EVIFRB i EVIFRC. Avem de asemenea cte un registru de mascare pentru
fiecare grup: EVIMRA, EVIMRB i EVIMRC. Un fanion n EVIFRx (x=A,B sau C)
este mascat (nu va genera o cerere de ntrerupere ctre miez) dac bitul corespunztor
din EVIMRx este zero.
Exist de asemenea cte un registru al vectorilor de ntrerupere (EVIVRx, x=A,
B sau C) asociat cu fiecare grup de ntreruperi EV. Registrul vectorului de ntrerupere
corespunztor poate fi citit de ctre o rutin de servire a ntreruperii (ISR) atunci cnd o
cerere de ntrerupere generat de ctre un grup de ntreruperi este acceptat de ctre
miez. Valoarea (vectorul) din registrul vectorului de ntrerupere identific care este
ntreruperea nemascat i n ateptare din grup ce are cea mai mare prioritate.

Generarea ntreruperii

Cnd apare o ntrerupere n modulul EV, fanionul corespunztor din registrul de
nreruperi EV este setat n unu. O cerere de ntrerupere este generat ctre CPU de ctre
grupul de ntreruperi dac fanionul de ntreruperi este setat i grupul de ntreruperi este
nemascat la nivelul EV i ntreruperea corespunztoare din CPU este nemascat la
nivelul CPU.

Vectorii de ntrerupere

Vectorul de ntrerupere al unui grup de ntreruperi al EV poate fi citit dup ce o
cerere de ntrerupere a fost generat de ctre grupul respectiv ctre miez. Cnd acest
lucru se ntmpl, vectorul de ntrerupere (ID) corespunztor fanionului de ntrerupere
cu cea mai mare prioritate dintre toate fanioanele setate este ncrcat n acumulator.
Fanionul este ters cnd vectorul de ntrerupere este citit. De asemenea fanionul
ntreruperii poate fi ters prin scrierea valorii unu direct n fanionul ntreruperii.
O valoare zero este ntoars atunci cnd registrul de ntreruperi al unui grup al
EV este citit i nu exist nici un fanion setat i nemascat n grupul respectiv. Acest lucru
permite identificarea ntreruperilor rtcite (necunoscute) ca ntreruperi EV.



142
Servirea ntreruperii

Dup ce o cerere de ntrerupere EV este recepionat, registrul EVIVRx poate fi
citit n acumulator i deplasat la stnga cu unul sau mai muli bii. Dup aceea o adres
ofset (adresa de nceput de intrare - a tabelei de intrri n rutinele de ntreruperi) poate
fi adunat acumulatorului. O instruciune BACC poate fi utilizat pentru a sri la o
intrare n tabel. Un alt salt gsit n tabel ne duce la rutina de servire a ntreruperii (ISR)
pentru sursa specificat (specific - cea care a solicitat ntreruperea). Aceast procedur
produce o ntrziere a servirii ntreruperii tipic de 20 cicluri CPU (25 dac este
necesar salvarea unui context minim a strii mainii) din momentul n care ntreruperea
a fost generat i pn cnd prima instruciune a ISR pentru sursa specific este
executat. Aceast ntrziere poate fi redus la 8 cicluri CPU dac o singur ntrerupere
este permis ntr-un grup EV. Dac spaiul de memorie nu este o problem, ntrzierea
poate fi redus la 16 cicluri CPU fr a fi necesar folosirea unei singure ntreruperi pe
grup.

Registrele fanioanelor de ntrerupere al EV

Registrele sunt toate tratate ca memorii de 16 bii. Biii neutilizai ntorc zero la
citire. Scrierea biilor neutilizai nu are nici un efect. Din cauz c regitrii EVIFRx pot
fi citii, apariia unei ntreruperi poate fi monitorizat de program prin citirea repetat a
registrului EVIFRx adecvat, atunci cnd ntreruperea este mascat.

Registrul A al fanioanelor de ntrerupere al EV

EVIFRA adresa 742Fh

15-11 10 9 8
Rezervat T1OFINT
Flag
T1UFINT T1CINT

RW-0 RW-0 RW-0

7 6 5 4 3 2 1 0
T1PINT SCMP3INT SCMP2INT SCMP1INT CMP3INT CMP2INT
Flag
CMP1INT PDPINT
RW-0 RW-0 RW-0 RW-0 RW-0 RW-0 RW-0 RW-0

Biii 15-11 Rezervai. La citire ntorc 1 la scriere nu au efect

Bit 10 T1OFINT Flag. ntrerupere timer GP1 la depire superioar
Citire: 0 = Fanionul este resetat
1 = Fanionul este setat
Scriere: 0 = Fr efect
1 = Reseteaz fanionul

Bit 9 T1UFINT. ntrerupere timer GP1 la depire inferioar
Citire: 0 = Fanionul este resetat
1 = Fanionul este setat
Scriere: 0 = Fr efect


143
1 = Reseteaz fanionul

Bit 8 T1CINT. ntrerupere timer GP1 la comparare
Citire: 0 = Fanionul este resetat
1 = Fanionul este setat
Scriere: 0 = Fr efect
1 = Reseteaz fanionul

Bit 7 T1PINT. ntrerupere timer GP1 la perioad
Citire: 0 = Fanionul este resetat
1 = Fanionul este setat
Scriere: 0 = Fr efect
1 = Reseteaz fanionul

Bit 6 SCMP3INT. ntrerupere la comparator simplu 3
Citire: 0 = Fanionul este resetat
1 = Fanionul este setat
Scriere: 0 = Fr efect
1 = Reseteaz fanionul

Bit 5 SCMP2INT. ntrerupere la comparator simplu 2
Citire: 0 = Fanionul este resetat
1 = Fanionul este setat
Scriere: 0 = Fr efect
1 = Reseteaz fanionul

Bit 4 SCMP1INT. ntrerupere la comparator simplu 1
Citire: 0 = Fanionul este resetat
1 = Fanionul este setat
Scriere: 0 = Fr efect
1 = Reseteaz fanionul

Bit 3 CMP3INT. ntrerupere la comparator complet 3
Citire: 0 = Fanionul este resetat
1 = Fanionul este setat
Scriere: 0 = Fr efect
1 = Reseteaz fanionul

Bit 2 CMP2INT. ntrerupere la comparator complet 2
Citire: 0 = Fanionul este resetat
1 = Fanionul este setat
Scriere: 0 = Fr efect
1 = Reseteaz fanionul

Bit 1 CMP1INT. ntrerupere la comparator complet 1
Citire: 0 = Fanionul este resetat
1 = Fanionul este setat
Scriere: 0 = Fr efect
1 = Reseteaz fanionul

Bit 0 PDPINT. ntrerupere la protecia circuit de comand de putere
Citire: 0 = Fanionul este resetat
1 = Fanionul este setat
Scriere: 0 = Fr efect
1 = Reseteaz fanionul


144
Registrul B al fanioanelor de ntrerupere al EV

EVIFRB adresa 7430h

15-8 7 6 5 4 3 2 1 0
Rezervat T3OFINT
Flag
T3UFINT T3CINT T3PINT T2UFINT T2OFINT T2CINT T2PINT
RW-0 RW-0 RW-0 RW-0 RW-0 RW-0 RW-0 RW-0

Biii 15-8 Rezervai. La citire ntorc 1 la scriere nu au efect

Bit 7 T3OFINT Flag. ntrerupere timer GP 3 la depire superioar
Citire: 0 = Fanionul este resetat
1 = Fanionul este setat
Scriere: 0 = Fr efect
1 = Reseteaz fanionul

Bit 6 T3UFINT. ntrerupere timer GP 3 la depire inferioar
Citire: 0 = Fanionul este resetat
1 = Fanionul este setat
Scriere: 0 = Fr efect
1 = Reseteaz fanionul

Bit 5 T3CINT. ntrerupere timer GP 3 la comparare
Citire: 0 = Fanionul este resetat
1 = Fanionul este setat
Scriere: 0 = Fr efect
1 = Reseteaz fanionul

Bit 4 T3PINT. ntrerupere timer GP 3 la perioad
Citire: 0 = Fanionul este resetat
1 = Fanionul este setat
Scriere: 0 = Fr efect
1 = Reseteaz fanionul

Bit 3 T2OFINT Flag. ntrerupere timer GP 2 la depire superioar
Citire: 0 = Fanionul este resetat
1 = Fanionul este setat
Scriere: 0 = Fr efect
1 = Reseteaz fanionul

Bit 2 T2UFINT. ntrerupere timer GP 2 la depire inferioar
Citire: 0 = Fanionul este resetat
1 = Fanionul este setat
Scriere: 0 = Fr efect
1 = Reseteaz fanionul

Bit 1 T2CINT. ntrerupere timer GP 2 la comparare
Citire: 0 = Fanionul este resetat
1 = Fanionul este setat
Scriere: 0 = Fr efect
1 = Reseteaz fanionul

Bit 0 T2PINT. ntrerupere timer GP 2 la perioad


145
Citire: 0 = Fanionul este resetat
1 = Fanionul este setat
Scriere: 0 = Fr efect
1 = Reseteaz fanionul

Registrul C al fanioanelor de ntrerupere al EV

EVIFRC adresa 7431h

15-4 3 2 1 0
Rezervat CAP4INT
Flag
CAP3INT CAP2INT CAP1INT
RW-0 RW-0 RW-0 RW-0

Biii 15-4 Rezervai. La citire ntorc 1 la scriere nu au efect

Bit 3 CAP4INT Flag. ntrerupere captur 4
Citire: 0 = Fanionul este resetat
1 = Fanionul este setat
Scriere: 0 = Fr efect
1 = Reseteaz fanionul

Bit 2 CAP3INT. ntrerupere captur 3
Citire: 0 = Fanionul este resetat
1 = Fanionul este setat
Scriere: 0 = Fr efect
1 = Reseteaz fanionul

Bit 1 CAP2INT. ntrerupere captur 2
Citire: 0 = Fanionul este resetat
1 = Fanionul este setat
Scriere: 0 = Fr efect
1 = Reseteaz fanionul

Bit 0 CAP1INT. ntrerupere captur 1
Citire: 0 = Fanionul este resetat
1 = Fanionul este setat
Scriere: 0 = Fr efect
1 = Reseteaz fanionul

Registrul A de mascare a ntreruperilor EV

EVIMRA adresa 742Ch

15-11 10 9 8
Rezervat T1OFINT
ENABLE
T1UFINT
ENABLE
T1CINT
ENABLE
RW-0 RW-0 RW-0

7 6 5 4 3 2 1 0
T1PINT
ENABLE
SCMP3INT
ENABLE
SCMP2INT
ENABLE
SCMP1INT
ENABLE
CMP3INT
ENABLE
CMP2INT
ENABLE
CMP1INT
ENABLE
PDPINT
ENABLE
RW-0 RW-0 RW-0 RW-0 RW-0 RW-0 RW-0 RW-0


146
Biii 15-11 Rezervai. La citire ntorc 1 la scriere nu au efect

Bit 10 T1OFINT ENABLE
0 = Dezactivare
1 = Activare

Bit 9 T1UFINT enable
0 = Dezactivare
1 = Activare

Bit 8 T1CINT ENABLE
0 = Dezactivare
1 = Activare

Bit 7 T1PINT ENABLE
0 = Dezactivare
1 = Activare

Bit 6 SCMP3INT ENABLE
0 = Dezactivare
1 = Activare

Bit 5 SCMP2INT ENABLE
0 = Dezactivare
1 = Activare

Bit 4 SCMP1INT ENABLE
0 = Dezactivare
1 = Activare

Bit 3 CMP3INT ENABLE
0 = Dezactivare
1 = Activare

Bit 2 CMP2INT ENABLE
0 = Dezactivare
1 = Activare

Bit 1 CMP1INT ENABLE
0 = Dezactivare
1 = Activare

Bit 0 PDPINT ENABLE
0 = Dezactivare
1 = Activare

Registrul B de mascare a ntreruperilor EV

EVIMRB adresa 742Dh

15-8 7 6 5 4 3 2 1 0
Rezervat T3OFINT
ENABLE
T3UFINT
ENABLE
T3CINT
ENABLE
T3PINT
ENABLE
T2UFINT
ENABLE
T2OFINT
ENABLE
T2CINT
ENABLE
T2PINT
ENABLE
RW-0 RW-0 RW-0 RW-0 RW-0 RW-0 RW-0 RW-0



147
Biii 15-8 Rezervai. La citire ntorc 1 la scriere nu au efect

Bit 7 T3OFINT ENABLE
0 = Dezactivare
1 = Activare

Bit 6 T3UFINT ENABLE
0 = Dezactivare
1 = Activare

Bit 5 T3CINT ENABLE
0 = Dezactivare
1 = Activare

Bit 4 T3PINT ENABLE
0 = Dezactivare
1 = Activare

Bit 3 T2OFINT ENABLE
0 = Dezactivare
1 = Activare

Bit 2 T2UFINT ENABLE
0 = Dezactivare
1 = Activare

Bit 1 T2CINT ENABLE
0 = Dezactivare
1 = Activare

Bit 0 T2PINT ENABLE
0 = Dezactivare
1 = Activare

Registrul B de mascare a ntreruperilor EV

EVIMRC adresa 742Eh

15-4 3 2 1 0
Rezervat CAP4INT
ENABLE
CAP3INT
ENABLE
CAP2INT
ENABLE
CAP1INT
ENABLE
RW-0 RW-0 RW-0 RW-0

Biii 15-4 Rezervai. La citire ntorc 1 la scriere nu au efect

Bit 3 CAP4INT ENABLE
0 = Dezactivare
1 = Activare

Bit 2 CAP3INT ENABLE
0 = Dezactivare
1 = Activare




148
Bit 1 CAP2INT ENABLE
0 = Dezactivare
1 = Activare

Bit 0 CAP1INT ENABLE
0 = Dezactivare
1 = Activare

Registrul A al vectorului de ntrerupere EV

EVIVRA adresa 7432h

15 14 13 12 11 10 9 8 7 6 5 4 3 2 1 0
0 0 0 0 0 0 0 0 0 0 D5 D4 D3 D2 D1 D0
R-0 R-0 R-0 R-0 R-0 R-0 R-0 R-0 R-0 R-0 R-0 R-0 R-0 R-0 R-0 R-0

Biii 15-6 Rezervai. La citire ntorc zero, la scriere nu au efect.

Biii 5-0 D5-D0. Vector (ID) al fanionului de ntrerupere care are cea mai mare prioritate
din toate fanioanele setate i nemascate din EVIFRA; valoare zero dac nici un
fanion nemascat nu este setat n EVIFRA.

Registrul B al vectorului de ntrerupere EV

EVIVRB adresa 7433h

15 14 13 12 11 10 9 8 7 6 5 4 3 2 1 0
0 0 0 0 0 0 0 0 0 0 D5 D4 D3 D2 D1 D0
R-0 R-0 R-0 R-0 R-0 R-0 R-0 R-0 R-0 R-0 R-0 R-0 R-0 R-0 R-0 R-0

Biii 15-6 Rezervai. La citire ntorc zero, la scriere nu au efect.

Biii 5-0 D5-D0. Vector (ID) al fanionului de ntrerupere care are cea mai mare prioritate
din toate fanioanele setate i nemascate din EVIFRB; valoare zero dac nici un
fanion nemascat nu este setat n EVIFRB.

Registrul C al vectorului de ntrerupere EV

EVIVRC adresa 7434h

15 14 13 12 11 10 9 8 7 6 5 4 3 2 1 0
0 0 0 0 0 0 0 0 0 0 D5 D4 D3 D2 D1 D0
R-0 R-0 R-0 R-0 R-0 R-0 R-0 R-0 R-0 R-0 R-0 R-0 R-0 R-0 R-0 R-0

Biii 15-6 Rezervai. La citire ntorc zero, la scriere nu au efect.

Biii 5-0 D5-D0. Vector (ID) al fanionului de ntrerupere care are cea mai mare prioritate
din toate fanioanele setate i nemascate din EVIFRC; valoare zero dac nici un
fanion nemascat nu este setat n EVIFRC.



149
Resetarea fanionului unei ntreruperi se face prin scrierea valorii 1 n registrul
EVIFRx (x = A, B sau C) sau prin citirea vectorului de ntrerupere din registrul
EVIVRx (x = A, B sau C). Acest lucru este important pentru c semnaleaz achitarea
ntreruperii i permite generarea ntreruperii urmtoare.

7.4. Accesul direct la memorie (DMA)

Accesul direct la memorie, Direct Memory Access (DMA) ofer o cale
avantajoas de transfer de date ntre un port de interfa al unui echipament periferic i
unitatea de memorie sau ntre dou zone diferite de memorie. Aceste transferuri au o
pondere relativ ridicat n activitatea general a unui calculator i reducerea timpului n
care se realizeaz transferurile duce la creterea performanelor generale ale
calculatorului. Spre exemplu transferul DMA se utilizeaz atunci cnd este necesar
salvarea (stocarea) programelor i a rezultatelor acestora din memoria RAM pe un
suport extern de memorie (disc flexibil, harddisc, band magnetic, etc.). De asemenea
mecanismul transferurilor DMA este utilizat pentru remproasptarea coninutului
memoriilor DRAM, cnd practic nu se face un transfer real, dar procesul de citire a
memoriei DRAM n vederea transferului, realizeaz remprosptarea acestora.





Unitatea
central
Magistrala de adrese
Magistrala de date
Magistrala de comenzi
Memoria Porturi
Fig. 7.5. Transferul datelor prin intermediul unitii centrale
Registru
acumulator

n principiu, transferul datelor se poate face prin intermediul unitii centrale,
fr a fi necesar existena unui circuit DMA. n figura 7.5 este prezentat fluxul datelor
n cazul n care transferul se face prin intermediul unitii centrale. Aceast metod este
uzual n cazul sistemelor ieftine dar ea prezint o serie de dezavantaje care o face
nerecomandabil la sistemele performante. n primul rnd, durata transferului este
relativ mare din cauz c sunt necesare dou activiti succesive ale unitii centrale: o
citire a datei din memorie n unitatea central i o scriere a datei, din memorie n port,
iar n al doilea rnd este ineficient ocuparea unitii centrale cu o activitate att de
simpl cum este transferul datelor.
n cazul utilizrii circuitului DMA performanele sistemului cresc din mai multe
motive: circuitul DMA fiind un circuit specializat pentru astfel de operaii, transferul
datelor se face mult mai rapid dect n cazul transferul datelor prin intermediul unitii


150
centrale, unitatea central este degrevat de astfel de sarcini iar traseul datelor este mai
scurt. n figura 7.6 este prezentat fluxul datelor n cazul utilizrii circuitului DMA.





Unitatea
central
Magistrala de adrese
Magistrala de date
Magistrala de comenzi
DMA Porturi
Fig. 7.6. Transferul datelor prin intermediul circuitului DMA
Registru
acumulator
Memoria

Dup ce este programat, circuitul DMA genereaz semnalele de adres i de
control, pe magistrala de comenzi, n aa fel nct s se citeasc datele din memorie i
acestea s fie transferate portului (sau altei zone de memorie). Circuitul DMA
este un circuit master ca i unitatea central. Din acest motiv aceste dou circuite nu pot
lucra simultan ci ele vor prelua pe rnd controlul magistralelor sistemului. Motivul
pentru care dou module master nu pot lucra simultan este c (aa cum se vede i din
figura 7.6), cele dou module genereaz att adrese ct i comenzi. Dac cele dou
module ar lucra simultan atunci adresa generat de unitatea central n scopul execuiei
programului din memorie va fi diferit de adresa generat de unitatea DMA pentru
realizarea transferului i pe magistrala de adrese (care este comun) ar aprea dou
adrese diferite ceea ce ar genera un conflict.
Cele dou uniti master (unitatea central i unitatea DMA) i suspend una
alteia activitatea, printr-un dialog desfurat pe magistrala de comenzi. Dac circuitul
DMA are de fcut un transfer, atunci va solicita unitii centrale s elibereze
magistralele. n momentul n care unitatea central poate ceda magistralele semnaleaz
acest lucru modulului DMA i i ntrerupe activitatea pe magistrale. La terminarea
transferului (sau a unei pri a acestuia, n funcie de modul n care este programat
circuitul DMA) unitatea central este informat printr-un semnal de comand c poate
prelua controlul magistralelor relundu-i n acest mod activitatea.
n mod aparent, faptul c cele dou module master nu pot lucra simultan cu
magistralele sistemului, duce la scderea eficienei acestora. Unitatea central, n mod
natural, n execuia unui program, necesit efectuarea unor activiti interne (cum ar fi
de exemplu executarea unei operaii matematice) care nu solicit lucrul cu magistralele.
n aceste intervale de timp circuitul DMA poate prelua controlul magistralelor fr a
scdea viteza de lucru a unitii centrale. De asemenea, structura ierarhizat a
magistralelor i utilizarea unor magistrale separate, care s permit funcionarea
simultan a circuitului DMA i a unitii centrale, duc la creterea eficienei
transferurilor de date. Spre exemplu, controlerul video necesit n general un flux mare
de date n mod continuu. Din acest motiv s-a extins un standard de magistral care s


151
permit accelerarea transferurilor ntre memoria principal a sistemului de calcul i
memoria video.
Importana acestui mecanism de transfer al datelor a crescut o dat cu creterea
capacitii memoriilor i a volumului de date prelucrate n sistem. Din acest motiv, un
criteriu de performan pentru un calculator este reprezentat i de numrul modulelor
DMA instalate n sistem. Unele circuite utilizeaz mecanisme DMA fr ca acest lucru
s fie specificat explicit, spre exemplu cum este sistemul memoriilor cache.
Un modul DMA are mai multe canale care pot fi programate separat i care pot
lucra cu mai multe periferice simultan. Din acest motiv la unele porturi, n afar de
adres i de numrul ntreruperii alocate se stabilete i canalul DMA asociat pentru
transferul datelor.

7.4.1. Circuitul 8257 pentru acces direct la memorie DMA

Accesul direct la memorie. Direct Memory Access, DMA, ofer o cale
avantajoas de transfer de date pe magistrala sistemului ntre un port de interfa al unui
echipament periferic i unitatea de memorie.
n varianta clasic este presupus intervenia unitii centrale, care folosete
registrele sale interne ca memorie intermediar. Un astfel de transfer periferic/memorie
presupune dou faze: transfer port/memorie n acumulatorul unitii centrale i apoi
nc un transfer din registrul intern al unitii centrale n memorie/port. Accesul direct la
memorie, realizat de un circuit LSI specializat, elimin unitatea central de pe
magistrala sistemului, dirijnd n mod independent transferurile periferic - memorie prin
intermediul semnalelor de citire/scriere, semnale generate simultan att pentru port, ct
i pentru memorie. n plus, circuitul DMA furnizeaz adresele de memorie la locaii
succesive pentru transferuri pe ir de caractere i semnalele de selecie pentru port.
Accesul la magistral se realizeaz n urma unui dialog cu unitatea central folosind
semnalele de cerere/cedare magistral (de exemplu semnalele HOLD/HLDA pentru
microprocesorul 8080 sau BUSRQ/BUSAK pentru microprocesorul Z80). Transferurile
succesive se pot realiza n pachet, la viteza maxim, sau cu cte o cerere de transfer
pentru fiecare octet, n acest din urm caz, unitatea central poate lucra n pauzele
dintre transferuri.
Circuitul 8257 ofer funcia DMA, simultan pe patru canale. Viteza maxim
corespunde transferului n pachet a cte unui octet la fiecare 4T unde T este perioada
semnalului de sincronizare al unitii centrale. T nu poate fi mai mic de 0,32
microsecunde (8257) sau 0,25 microsecunde (8257-5).

7.4.1.1. Conexiunile externe

Schema bloc, figura 7.7, evideniaz aezarea, n jurul unei magistrale interne, a
circuitelor de interfa cu unitatea central i a celor pentru dialogul de
preluare/eliberare a magistralei acesteia, pe de o parte, i a registrelor de canal, inclusiv
circuitele de dialog cu perifericele i circuitele pentru stabilirea prioritii ntre canale,
pe de alt parte. Circuitul, prezentat n figura 7.8, are 40 de conexiuni externe, cu
urmtoarele semnificaii:



152

Canal 0

Numrtor
de adres
de 16 bii
DRQ 0
DACK 0
Canal 1

Numrtor
de adres
de 16 bii
DRQ 1
DACK 1
Canal 2

Numrtor
de adres
de 16 bii
DRQ 2
DACK 2
Canal 3

Numrtor
de adres
de 16 bii
DRQ 3
DACK 3
Arbitraj
prioritate
Amplificator
de
magistral
de date



Bloc scriere/
citire





Bloc de
comand
8 D
0
D
7
I/OR

I/OW

CLK

RESET

A0

A1

A2

A3

CS

A4

A5

A6

A7

READY

HRQ
HLDA
MEMR
MEMW
AEN
ADSTB
TC
MARK
Figura 7.7. Schema bloc a circuitului 8257

OR I / (trei stri). Semnal de la/spre magistrala unitii centrale pentru
eantionarea datelor citite din port.
OW I / (trei stri). Semnal de la/spre magistrala unitii centrale pentru
eantionarea datelor scrise n port.
MEMR (trei stri). Semnal de la/spre magistrala unitii centrale pentru
eantionarea datelor citite din locaia de memorie adresat.
MEMW (trei stri). Semnal de la/spre magistrala unitii centrale pentru
eantionarea datelor scrise n locaia de memorie adresat.
MARK (ieire). Semnal emis la fiecare al 128-lea octet transferat.
READY (intrare). Semnal care permite introducerea unor stri de ateptare, SW,
naintea ncheierii transferului, avnd port-ul i locaia de memorie selectate.


153
HLDA (intrare). Semnal primit de pe
magistrala unitii centrale, semnificnd c aceasta
s-a eliberat, n vederea transferurilor DMA.
1 40
2 39
3 38
4 37
5 36
6 35
7 34
8 33
9 32
10 31
11 30
12 29
13 28
14 27
15 26
16 25
17 24
18 23
19 22
20 21
A7
A6
A5
A4
TC
A3
A2
A1
A0
Vcc
D0
D1
D2
D3
D4
DACK 0
DACK 1
D5
D6
D7
I/OR
I/OW
MEMR
MEMW
MARK
READY
HLDA
ADSTB
AEN
HRQ
CS
CLK
RESET
DACK 2
DACK 3
DRQ 3
DRQ 2
DRQ 1
DRQ 0
GND
Figura 7.8. Conexiunile externe ale
ADDSTB (ieire). Semnal de eantionare
pentru ncrcarea unui port adiional, cu octetul cel
mai semnificativ al adresei de memorie.
AEN (ieire). Semnal care semnific
ocuparea magistralei unitii centrale pentru accese
DMA. Valideaz emiterea octetului cel mai
semnificativ de adres din portul adiional.
HRQ (ieire). Semnal de cerere a
magistralei, n vederea eliminrii unitii centrale.
CS (intrare). Semnal de selecie pentru
porturile circuitului 8257. Invalid n timpul
ciclurilor DMA.
CLK (intrare). Semnal de sincronizare.
Coincide cu semnalul de tact al unitii centrale.
RESET (intrare). Semnal de iniializare.
8257 intr n starea S1.
2 DACK (ieire). Semnal de selecie
pentru portul corespunztor canalului 2. Se emite dup obinerea magistralei n vederea
selectrii portului n vederea efecturii transferului.
circuitului 8257.
3 DACK (ieire), Idem, pe canalul 3.
DRQ 3 (intrare). Semnal prin care se semnalizeaz circuitului DMA c este
necesar un transfer pe canalul 3.
DRQ 2 (intrare). Idem, pe canalul 2.
DRQ 1 (intrare). Idem, pe canalul 1.
DRQ 0 (intrare). Idem, pe canalul 0.
GND. Masa tensiunii de alimentare (0V).
(D
7
-D
0
) (trei stri). Semnale de date pe magistrala unitii centrale.
DACK1 (ieire) Semnal identic cu 2 DACK , pentru canalul 1.
DACK0 (ieire). Idem, canalul 0.
VCC Sursa de alimentare (+5V).
A
0
-A
7
(trei stri). Octetul cel mai puin semnificativ al liniilor de adresare ale
magistralei unitii centrale.
TC(0). Semnaleaz sfritul transferului irului de octei. Se emite n timpul
ultimului transfer.

7.4.1.2. Registrele interne ale 8257

8257 conine cte 2 registre bidirecionale de 16 bii pentru fiecare dintre cele 4
canale i nc dou registre unidirecionale, pentru comanda i examinarea funcionrii
circuitului, Semnificaia fiecrei poziii din registre rezult din tabelul 7.2.




154
TABELUL 7.2.
Coninut
Registru Octet
Adresa
A
3
A
2
Bistabil
intern D
7
D
6
D
5
D
4
D
3
D
2
D
1
D
0
Adres
canal 0
Cmps
Cms
0000
0000
0
1
A
7
A
15
A
6
A
14
A
5
A
13
A
4
A
12
A
3
A
11
A
2
A
10
A
1
A
9
A
0
A
8
Numrtor
de octei
canal 0
Cmps
Cms
0001
0001
0
1
C
7
S

C
6
C
C
5
C
13
C
4
C
12
C
3
C
11
C
2
C
10
C
1
C
9
C
0
C
8
Adres
canal 1
Cmps
Cms
0010
0010
0
1
A
7
A
15
A
6
A
14
A
5
A
13
A
4
A
12
A
3
A
11
A
2
A
10
A
1
A
9
A
0
A
8
Numrtor
de octei
canal 1
Cmps
Cms
0011
0011
0
1
C
7
S

C
6
C
C
5
C
13
C
4
C
12
C
3
C
11
C
2
C
10
C
1
C
9
C
0
C
8
Adres
canal 2
Cmps
Cms
0100
0100
0
1
A
7
A
15
A
6
A
14
A
5
A
13
A
4
A
12
A
3
A
11
A
2
A
10
A
1
A
9
A
0
A
8
Numrtor
de octei
canal 2
Cmps
Cms
0101
0101
0
1
C
7
S

C
6
C
C
5
C
13
C
4
C
12
C
3
C
11
C
2
C
10
C
1
C
9
C
0
C
8
Adres
canal 3
Cmps
Cms
0110
0110
0
1
A
7
A
15
A
6
A
14
A
5
A
13
A
4
A
12
A
3
A
11
A
2
A
10
A
1
A
9
A
0
A
8
Numrtor
de octei
canal 3
Cmps
Cms
0111
0111
0
1
C
7
S

C
6
C
C
5
C
13
C
4
C
12
C
3
C
11
C
2
C
10
C
1
C
9
C
0
C
8
Mod - 1000 - AL TCS EV EP EN3 EN2 EN1 EN0
Stare - 1000 - 0 0 0 UP TC3 TC2 TC1 TC0
Simboluri folosite:

Cmps = cel mai puin semnificativ octet;
Cms = cel mai semnificativ octet;
C = citire port, genereaz OR I / , MEMW ;
S = scriere port, genereaz OW I / , MEMR ;
AX = bit adres de start transfer, X= 0, , 15;
CX = bit de iniializare a numrului de octei, X=0, , 13.

7.4.1.3. Registrele de canal

Fiecruia dintre cele 4 canale i corespunde un registru pentru adresa de
memorie RAM de la care ncepe transferul, ntr-un spaiu de 64 Koctei i nc un
registru de 16 bii, ale crui prime 14 locaii au funcia de numrtor, pentru pn la 16
Koctei. iar celelalte 2 locaii biii 14 i 15, monitorizeaz generarea semnalelor I/OR,
I/OW, MEMR , MEMW. Adresa i numrul de octei evolueaz la fiecare transfer
DMA pe canalul respectiv, iar ultimul transfer este semnalat ca ncheiere a transferului,
Terminal Count, TC, pe o conexiune exterioar a circuitului. Semnalele de citire/scriere
corespund combinaiilor:



155
S C
MEMR MEMW OR I / OW I /
Verificare 0 0 1 1 1 1
Citire port 0 1 1 0 0 1
Scriere port 1 0 0 1 1 0
Invalid 1 1 - - - -

Fiecare registru de 16 bii este accesibil printr-o dubl adresare la cte 8 bii,
folosind un bistabil intern, care selecteaz ntre octetul cel mai puin semnificativ i cel
mai semnificativ.

7.4.1.4. Registrul de mod

Registrul asigur validarea canalelor n lucru i a 4 opiuni, asupra modului de
desfurare a dialogului pe magistral.

7 6 5 4 3 2 1 0
AL TCS EW RP EN3 EN2 EN1 EN0

Registrul este nscris, de regul, dup completarea celor 2 registre de 16 bii ale
fiecrui canal cu care se lucreaz. La RESET registrul de control este ters, inhibndu-
se toate canalele i opiunile, astfel prevenindu-se transferuri DMA nedorite la aplicarea
tensiunii.
EN03: Enable Channel, corespunde validrii canalului pe care se dorete s se
efectueze transferuri. Se pot face transferuri pe 14 canale. Pentru mai mult de un
canal, ordinea de servire corespunde unei scheme de prioriti, stabilite de bitul 4.
RP: Rotating Priority, corespunde stabilirii schemei de prioriti, ntre dou
variante: prioritate fix sau prioritate circular. n varianta fix se aloc o prioritate
maxim canalului 0, prioritate care descrete pn la a fi minim pentru canalul 3. n
varianta circular, se aloc dinamic nivelul de prioritate al fiecrui canal, dup fiecare
ciclu de transfer. n acest caz, fiecare canal servit va trece ultimul pe lista de prioriti,
n arbitrarea ciclului DMA urmtor.
Alegerea modului RP previne fenomenul de gtuire, bottleneck, cnd unul
dintre canale monopolizeaz transferurile n mod DMA. Dac sunt prezentate cereri de
transfer pe mai multe canale, se vor servi toate canalele, pe rnd. Primul transfer se va
executa conform schemei fixe de prioriti.
EW: Extended Write, contribuie la generarea anticipat a semnalelor de scriere,
pentru compensarea unor eventuali timpi de acces mai lungi ai participanilor la
transfer. n absena acestei opiuni, ar fi fost necesare stri de ateptare, folosind
semnalul READY de la conexiunea exterioar 6 ceea ce ar fi micorat viteza de lucru.
TCS: Terminal Count Stop, specific oprirea sau continuarea transferurilor
DMA, din momentul cnd s-a emis ,,1" pe conexiunea exterioar TC, simultan cu
poziionarea bitului corespunztor canalului, n registrul de stare. Bitul de validare a
canalului este ters, iar operaiile DMA pe acest canal se pot relua dup o rescriere n
registrul de control. n cazul n care nu se programeaz bitul TCS, transferurile DMA
continu, la adrese succesive, ct timp perifericul emite DRQ.


156
AL: Autoload, autoncrcare permite, cnd este emis s, s se foloseasc
nlnuirea de comenzi, fr intervenia unitii centrale. Opiunea se aplic numai
canalului 2, utiliznd canalul 3 ca registru cu parametri de reiniializare. Canalul 2 se
programeaz obinuit, pentru primul set de parametri, iar canalul 3 se programeaz cu
setul de parametri pentru transferul ulterior. Dup ce se efectueaz ciclurile DMA
conform programrii iniiale a canalului 2, se efectueaz automat o trecere a
parametrilor din canalul 3 n canalul 2. Opiunea TCS nu are efect, dac a fost prevzut
simultan cu opiunea AL. n cazul existenei opiunii AL, programarea canalului 2 este
automat duplicata i n registrele canalului 3, ceea ce permite operaii repetate pe bloc,
prin programarea unui singur canal. Se pot nscrie parametri separai pentru cele dou
canale, dac se programeaz nti canalul 2 i apoi canalul 3. De observat c, dac este
validat i canalul 3 i apar cereri DRQ pe acest canal, se pot efectua transferuri
simultane pe canalele 2 i 3, ins, la operaia de rencrcare a canalului 2 se vor ncrca
parametrii modificai ai canalului 3, cu o diferen dat de numrul de transferuri DMA
ce s-au efectuat pe acest din urm canal. La intrarea ntr-un ciclu, dup reiniializarea
canalului 2, se poziioneaz bitul UP n registrul de stri. Reiniializarea nu distruge
parametrii canalului 3.
Reiniializarea se efectueaz la urmtorul ciclu DMA dup un ciclu TC, care va
fi astfel primul ciclu cu noii parametri. Bitul UP din registrul de stare se va terge dup
acest prim ciclu DMA. n operaii nlnuite, bitul UP se poate examina de unitatea
central pentru a semnala reiniializarea i a permite nscrierea noilor parametri n
canalul 3, pentru urmtorul bloc ce se va transfera pe canalul 2.

7.4.1.5. Registrul de stare

Registrul indic pe care dintre canale s-a terminat transferul numrului de octei
programat, inclusiv semnalarea strii de nceput a unui bloc de transfer cu parametri
reiniializai (numai pentru canalul 2).

7 6 5 4 3 2 1 0
0 0 0 UP TC3 TC2 TC1 TC0

TC03: Terminal Count, sfrit de numrare, corespunde strii conexiunii
exterioare TC, numai c aici se specific i numrul de ordine al canalului pe care a avut
loc evenimentul. Biii rmn nscrii pn la prima citire a registrului de stare, sau pn
la RESET. Deoarece, ntre citirea strii i nscrierea de parametri, poate aprea
semnalarea TC, este contraindicat reprogramarea canalelor n funcie de semnalrile
din registrul de stare, c ntre cele dou operaii succesive nu se blocheaz transferurile
DMA.
UP: Update, este emis la primul transfer DMA efectuat conform unor parametri
de reiniializare a canalului 2. UP nu se terge la citire. Se folosete pentru a preveni
ncrcarea unor parametri n canalul 3, nainte ca parametrii precedeni s fie trecui n
canalul 2.





157
7.4.1.6. Efectuarea transferurilor cu DMA 8257

Funcionarea 8257 corespunde diagramei de stri date n figura 7.9. n urma
semnalului RESET se intr n starea S1, n care se ateapt lansarea unei cereri de
transfer DRQ de la periferice. Ieirea din S1 i trecerea n S0 se face la primirea DRQ
pe unul din canale i lansarea cererii HOLD, pentru obinerea magistralei unitii
centrale. n starea S0 se ateapt eliminarea unitii centrale de pe magistral, semnalat
prin sosirea semnalului HLDA, dup care se intr n starea S1. n acest moment, 8257
emite adresele superioare pe liniile de date, memorate n portul adiional, cu semnalul
ADDSTB. Se obin astfel toate cele 16 linii de adres pe magistral i se intr n starea
S2. n S2 ncepe transferul prin activarea operaiei de citire i a unei eventuale scrieri
anticipate. Se emite DACK pentru dialogul DRQ-DACK i se intr n starea S3, n care
se activeaz scrierea i se fac semnalrile MARK i TC, dac este cazul. Din aceast
stare se poate intra ntr-o stare de ateptare SW, daca nu s-a primit READY. Testarea
conexiunii externe READY este eliminat dac pe canalul respectiv a fost programat o
operaie de verificare, VERIFY. Din S3 se intr n S4, dac s-a primit semnalul READY
n operaiile de transfer efectiv. Din SW se trece n S4 dac se primete READY. Starea
S4 ncheie un ciclu DMA, inactivnd DACK i, dac este cazul, TC i MARK. n cazul
operaiilor cu TCS, se terge validarea canalului respectiv, dac a aprut TC. Se
stabilesc prioritile pentru urmtorul ciclu DMA. Se testeaz DRQ i HLDA. Dac
DRQ nu se mai emite, se terge HOLD dup semnalarea cderii HLDA. Daca DRQ se
emite n continuare, se pstreaz HOLD i, n cazul n care i HLDA se menine, se
trece n modul de transfer burst, n pachet, prin succesiunea de stri S1, S2, S3, S4, S1
etc., evitndu-se dialogul de conectare/deconectare la magistrale. La pierderea
magistralei, situaie semnalat de cderea HLDA, sau dac perifericul nu mai cere
transfer, cu DRQ la ,,0", se terge HOLD i se trece n starea S1 pentru ciclul de
reconectare S1, S0, S1, S2, S3, S4 etc.
n rezumat, transferul octet cu octet se desfoar dup cum urmeaz (figura
2.25): perifericul cere transfer prin emiterea semnalului DRQ pe unul dintre canale;
dac este prioritar i validat, canalul ncepe operaiunea de transfer, lansnd HOLD; la
recepia HLDA se lanseaz DACK pe canalul corespunztor, pentru selectarea
registrului de date al perifericului; se genereaz apoi perechea de semnale de
eantionare: IOR , MEMWsau IOW, MEMR , n funcie de sensul transferului, dac
nu este specificat operaia VERIFY; memoria este adresat la locaia specificat n
registrul de adrese al canalului, direct de 8257 pe octetul cel mai puin semnificativ i
prin intermediul portului adiional 8212, pe octetul cel mai semnificativ. Dup transferul
octetului, semnalele de eantionare i achitarea cererii, DACK, se inhib, iar dac DRQ
nu se mai emite nainte de S4, se elibereaz magistrala i se inhib HOLD.
Funcionarea n mod burst se alege pstrnd DRQ i HLDA dup efectuarea
transferului, caz in care se incrementeaz adresa memoriei i se reiau operaiile pe octet,
fr deconectare/reconectare intermediar.
Dac se cer transferuri simultan pe mai multe canale, procedura corespunde
transferului n pachet, cu comutarea canalului pe care se emit semnalele DRQ, DACK,
n funcie de schema de prioritate programat. Canalul prioritar este stabilit n S4, n
funcie de semnalele DRQ prezente.


158
Dac HLDA devine inactiv, n prezena DRQ, se elibereaz magistrala,
inhibndu-se HOLD i se revine n S1, starea dup RESET. Dac READY devine
inactiv, eantionat n S3, se insereaz stri SW. La activarea READY, din SW se intr
n S4. n acest interval semnalele de selecie DACK i de eantionare W IOR/ ,
W MEMR/ sunt active, prelungind timpul de selecie al portului/memoriei, n vederea
acceptrii unui timp de acces mai mare.

RESET
A
DRQ 03
HRQ=1
HLDA ?
arbitrare
prioriti
B
ADDSTB
eantioneaz
adresele
mari n port
auxiliar
AEN=1
IOR/MEMR = 1
IOW/MEMW = 1 (n
avans)
DACKi=1
IOW/MEMW = 1
(normal)
TEST
NUMRTOR DE
TRANSFERURI
TC = 1 sau
MARK = 1
C
HLDA
C
READY=0
?
VERIFY=0
?
READY=0
?
TC STOP
TC = 1
ENCHi=0
IOR/MEMR=0
IOW/MEMW=0
DACKi=0
MARK=0
TC=0
HLDA
DRQ03
AEN,HRQ=0
arbitraj
prioriti
DRQ03
B A
READY
VERIFY READY
READY
nu
da
nu
nici un
DRQ03
cel puin un
DRQ03
Figura 7.9. Schema logic de funcionare a circuitului 8257.


159
7.5. Circuitul contor/periodizator programabil 8253

Circuitul 8253, realizat n tehnologia
NMOS pe o pastil cu 24 de terminale, ale
cror semnificaii sunt prezentate n figura
7.10, constitute un contor/periodizator
programabil. El este organizat sub forma a 3
contoare independente, de cte 16 bii, avnd
asociat logica corespunztoare pentru
comunicaia cu unitatea centrala de prelucrare
i cu mediul exterior. Circuitul este vzut, de
unitatea central de prelucrare, sub forma unui
tablou de porturi de I/E i poate fi folosit ca:
generator programabil de semnale
dreptunghiulare, contor de evenimente, ceas
de timp real, monostabil numeric, element
pentru generarea comenzilor unor motoare pas
cu pas. Folosirea lui n sistemele cu
microprocesor, n aplicaiile privind
prelucrarea unor semnale sub form de trenuri
de impulsuri, simplific n mod considerabil
software-ul necesar acestor prelucrri.
Dup cum se poate observa n figura
7.11, schema bloc a circuitului const din mai
multe componente: tamponul magistralei de
date, logica scrie/citete, registrul cuvntului
de comand i cele trei contoare 0, 1 i 2.
Tamponul magistralei de date este
bidirecional, organizat pe 8 bii, cu elemente
cu trei stri, realizeaz interfaa circuitului
8253 cu magistrala de date a unitii centrale
de prelucrare. Datele sunt transmise sau
recepionate de tampon, la execuia
instruciunilor IN i OUT, de ctre unitatea central de prelucrare. Prin intermediul
acestui tampon se realizeaz: programarea modurilor de lucru pentru 8253, ncrcarea
contoarelor, citirea valorilor datelor din contoare.
Figura 7.10. Semnificaia terminalelor
circuitului 8253.
D
7
-D
0
- conexiuni la magistrala de date a
microsistemului (bidirecional);
C0 - ceas contor 0 (intrare);
O0 - ieire contor 0 (ieire);
G0 - poarta contor 0 (intrare);
C1 - ceas contor 1 (intrare);
O1 - ieire contor 1 (ieire);
G1 - poarta contor 1 (intrare);
C2 - ceas contor 2 (intrare);
O2 - ieire contor 2 (ieire);
G2 - poarta contor 2 (intrare);
A0, A1 - intrri de selecie contor (intrare);
CS - selecie circuit (intrare);
RD - comand citire (intrare);
WR - comand scriere (intrare);
Vcc - alimentare +5V.
MASA
1 24
2 23
3 22
4 21
5 20
6 19
7 8253 18
8 17
9 16
10 15
11 14
12 13
Vcc
WR
RD
CS
A1
A0
C2
O2
G2
C1
G1
O1
D7
D6
D5
D4
D3
D2
D1
D0
C0
O0
G0
Masa
Logica scrie/citete pe baza semnalelor CS, RD, WR , A
0
i A
l
, primite de la
magistrala de legtura cu unitatea central de prelucrare, genereaz semnalele de
comand pentru buna funcionare a ntregului circuit. Semnalul CS, activ pe nivel
cobort, activeaz/dezactiveaz circuitul astfel nct, dac circuitul nu este selectat
( CS= 0), funcionarea lui nu este influenat. Semnalul RDactiv comand citirea
datelor de la contoarele circuitului, n timp ce semnalul WR activ asigur ncrcarea
registrului de comand i a datelor n contoare. Liniile A
0
i A
l
sunt conectate la
magistrala de adrese i servesc la selectarea unuia dintre contoare sau a registrului de


160
comand. n tabelul 7.3 se prezint efectele semnalelor amintite mai sus asupra
funcionrii circuitului.


Contor 0
CLK0 (C0)
POARTA0 (G0)
OUT0 (O0)

Contor 1
CLK1 (C1)
POARTA1 (G1)
OUT1 (O1)

Contor 2
CLK2 (C2)
POARTA2 (G2)
OUT2 (O2)
Tampon
magistral
de date
Logica
scrie/
citeste
Registrul
cuvn-
tului de
comand
D0 D7
8
8
RD
WR
A0
A1
CS
Figura 7.11. Structura intern a circuitului 8253.

TABELUL 7.3.
CS RD WR
A1 A0 Funcia
0 1 0 0 1 ncarc contorul 0
0 1 0 0 0 ncarc contorul 1
0 1 0 1 1 ncarc contorul 2
0 1 0 1 0 ncarc cuvntul de comand
0 0 1 0 1 Citete contorul 0
0 0 1 0 0 Citete contorul 1
0 0 1 1 1 Citete contorul 2
0 0 1 1 0 Neoperaional, starea de mare impedan
1 x x x x Circuit neselectat, starea de mare impedan

Registrul cuvntului de comand primete de la magistral, informaia prin care
se comand modul de lucru al fiecrui contor. Acest registru se selecteaz prin adresa
A
1
A
0
= 11. Coninutul su nu poate fi citit.
Contoarele 0, 1 i 2 sunt identice, fiind implementate prin numrtoare de 16
bii, al cror coninut poate fi prestabilit, numrarea efectundu-se n sens descresctor.
Contoarele sunt independente i pot fi programate s opereze n modul binar sau BCD,
n diverse configuraii, privind intrarea de ceas, poarta de comand i citirea. Citirea
coninutului unui contor oarecare se realizeaz direct, n cazul contorizrii unor
evenimente sau printr-o tehnic special, n celelalte cazuri, fr a bloca intrarea de
ceas.
Interfaarea circuitului 8253 cu sistemul se realizeaz n maniera obinuit, a
circuitelor de interfa din familia 8080. Intrrile A
0
i A
l
se conecteaz la liniile de
adrese A
0
, A
l
, ale sistemului, iar semnalul de selecie CS poate fi generat din semnalele
magistralei de adrese a sistemului, prin selecie liniar sau decodificare. Semnalele RD,
WR sunt derivate din semnalele IORC, IOWC ale magistralei sistemului.


161
Modul de funcionare poate fi stabilit complet prin software, ncrcnd registrul
de comand cu un cuvnt corespunztor.
Fiecare contor este decrementat cu o unitate pe fiecare front cztor al
semnalului aplicat la intrarea de ceas. Semnalul de la intrarea de ceas poate fi asincron
sau sincron. In primul caz contorul va fi folosit pentru numrarea unor evenimente. n al
doilea caz contorul este folosit pentru generarea unor intervale de timp. Frecvena
semnalului aplicat la intrarea de ceas poate varia ntre 0 si 3MHz.
Intrarea pe poarta G poate activa sau bloca funcionarea
contorului/periodizatorului respectiv.
Ieirea 0 a fiecrui contor, n funcie de modul de programare, poate fi folosit
ca impuls singular, cerere de ntrerupere sau ca semnal simplu de comand.

Cuvntul de comand.

bit 7 bit 6 bit 5 bit 4 bit 3 bit 2 bit 1 bit 0

bitul 0
0 contorul selectat este tratat ca valoare binar (max. 65535
z
);
1 contorul selectat este tratat ca valoare BCD (max. 9999
BCD
);

biii 3,2,1
000 Mod 0;
001 Mod 1;
x10 Mod 2;
x11 Mod 3;
100 Mod 4;
101 Mod 5;

biii 5,4
00 operaia de citire a contorului, a se vedea procedura READ/WRITE;
01 citete/ncarc octetul cel mai semnificativ (la incrcare anuleaz octetul cel mai puin
semnificativ);
10 citete/ncarc octetul cel mai puin semnificativ (la incrcare anuleaz octetul cel mai
semnificativ);
11 citete/ncarc cel mai semnificativ octet, apoi cel mai puin semnificativ octet;

biii 7,6
00 selecie contor 0;
01 selecie contor 1;
10 selecie contor 2;
11 comand ilegal;

Figura 7.12. Cuvntul de comand pentru circuitul 8253.

Coninutul cuvntului de comand este prezentat n figura 7.12. Se constat c:
biii 7, 6 sunt folosii pentru selectarea contorului la care se refer comanda respectiv,
biii 5, 4 specific modalitile de manipulare ale coninuturilor octeilor inferior i
superior, care formeaz contorul selectat, biii 3, 2, 1 indic modul de operare, n timp
ce bitul 0 caracterizeaz funcionarea binar (valoare maxim: 65535
10
) sau zecimal
codificat binar (valoare maxim: 9999
BCD
), ale contorului dat.


162
Contorul selectat se consider ncrcat atunci cnd n el s-au nscris unul sau doi
octei, n funcie de specificaiile biilor 5, 4 din cuvntul de comand, operaia fiind
urmat de un front pozitiv i unul negativ ale impulsului de ceas. O eventuala citire
nainte de frontul cztor va conduce la o valoare incorect.
n continuare vor fi prezentate modurile de funcionare ale circuitului 8253.
Modul 0 este definit ca ntrerupere, la terminarea numrrii. Dup ncrcarea
cuvntului de comand, corespunztor
acestui mod, ieirea contorului selectat va
fi forat la nivelul cobort (fig. 7.13). n
continuare se ncarc contorul cu o
anumit valoare numeric, care va fi
decrementat, prin aplicarea semnalului
de ceas, pe intrarea corespunztoare.
Ieirea se va menine pe nivel cobort pn n momentul cnd valoarea numrului din
contor devine zero, moment n care ieirea trece pe nivel ridicat, meninndu-se astfel,
pn la o noua ncrcare a contorului. Decrementarea continu i dup atingerea valorii
finale. Renscrierea contorului, pe durata decrementrii, are ca efect blocarea operaiei
curente, dac se ncarc primul octet, sau amorsarea unei noi operaii, dac se ncarc al
doilea octet.
C
WR(n)
O
n = 5
5 4 3 2 1
Figura 7.13. Modul zero
n figura 7.13 contorul a fost ncrcat cu valoarea 5, ca urmare a execuiei unei
operaii de nscriere (WR = 0). Decrementarea se va declana dup un front pozitiv,
urmat de unul negativ ale semnalului de ceas. Decrementarea este blocat pe durata
aplicrii, la intrarea poart, a unui semnal de nivel cobort.
Citirea coninutului contorului, pe durata decrementrii, necesit o tehnic
special, care va fi prezentat la sfritul acestui paragraf.
Cuvntul de comand are urmtoarea structura:

bit 7 bit 6 bit 5 bit 4 bit 3 bit 2 bit 1 bit 0
1 0 0 1 0 0 0 0

Modul 1 este definit ca monostabil programabil. Ieirea contorului va trece de la
un nivel ridicat, la unul cobort numai dup ce cuvntul de comand i contorul au fost
ncrcate i semnalul aplicat la poart are o tranziie pozitiv. Aceast tranziie
declaneaz decrementarea care, la atingerea valorii finale (zero), va aduce la nivel
ridicat ieirea contorului selectat (fig. 7.14).
Dac n timp ce ieirea este la
nivel cobort, o nou valoare este nscris
n contor, aceasta nu va afecta durata
monoimpulsului, pn la urmtoarea
declanare. Valoarea curent a contorului
poate fi citit n orice moment, fr a
afecta monoimpulsul. Dac intrarea la
poarta G are o tranziie pozitiv,
indiferent de faptul c decrementarea s-a terminat sau nu, contorul este relansat cu
valoarea ncrcat iniial. n cazul n care, pe parcursul decrementrii, se ncarc o nou
C
WR(n)
O
n = 5
5 4 3 2 1
G
Figura 7.14. Modul 1


163
valoare n contor, aceasta va fi luat n consideraie la prima tranziie pozitiva a
semnalului la poarta G.
Cuvntul de comand:

bit 7 bit 6 bit 5 bit 4 bit 3 bit 2 bit 1 bit 0
0 1 1 0 0 0 1 1

Modul 2 este definit ca generator de impulsuri divizate cu N. Ieirea va fi forat
la nivel cobort, dup ncrcarea cuvntului de comand i a numrtorului selectat cu
constanta N, pe o perioad egal cu cea a semnalului de ceas. Perioada impulsurilor
astfel generate va fi egal cu N (fig. 7.15).

C
WR(n)
O
5T
5 4 3 2 1 5 4 3 2 1 5 4 3 2 1 5
T
Figura 7.15. Modul 2

Dac pe parcursul operrii, intrarea G (poarta) va fi forat la nivel cobort,
ieirea 0 va fi adus la nivel ridicat, iar la revenirea lui G la un nivel ridicat, contorul se
va decrementa din nou, de la valoarea iniial. Astfel, intrarea G poate fi folosit pentru
sincronizarea contorului.
Cuvntul de comand:

bit 7 bit 6 bit 5 bit 4 bit 3 bit 2 bit 1 bit 0
0 0 1 1 0 1 0 0

Modul 3 este definit ca generator de impulsuri dreptunghiulare. El este similar
cu modul 2, cu excepia faptului c ieirea va rmne la un nivel ridicat pn la
realizarea decrementrii, conform cu N/2 sau (N-1)/2 intervale de ceas i la nivel
cobort, pentru celelalte N/2 sau (N-1)/2 intervale de ceas, dup cum N este par sau
impar. Aceasta se realizeaz (fig. 7.16) prin decrementarea cu 2 pe frontul cztor al
fiecrui semnal de ceas. Cnd contorul ajunge n zero, ieirea se modific, contorul este
ncrcat cu valoarea iniial i procesul se continu, avnd un caracter repetitiv.

C
O

(n=4)
2T
2T
2T
3T
O (n=5)
Figura 7.16. Modul 3


164
Modul 4, definit ca strob comandat prin software, asigur o ieire la nivel ridicat,
dup stabilirea modului. Decrementarea contorului selectat are loc dup ncrcarea lui
cu numrul dat. Ieirea va fi forat la nivel cobort pe durata unei perioade a
semnalului de ceas, cnd contorul a fost decrementat la zero. Decrementarea va fi
inhibat, dac intrarea G va fi forat la nivel cobort. Rencrcarea contorului va
reporni decrementarea, plecnd de la noua valoare plasat n contor (fig. 7.17).

C
WR(n=4)
O
4T
4 3 2 1 0
T
Figura 7.17. Modul 4.
Cuvntul de comand:

bit 7 bit 6 bit 5 bit 4 bit 3 bit 2 bit 1 bit 0
1 0 0 1 1 0 1 0

Modul 5, definit ca strob comandat prin hardware, asigur decrementarea
contorului selectat, dup ncrcarea lui, ncepnd cu frontul cresctor al semnalului
aplicat la poarta G. Ieirea va fi forat la nivel cobort, pe durata unei perioade de ceas,
n momentul n care coninutul contorului a devenit zero (fig. 7.18).

C
WR

Operaia de citire a coninutului unui contor este important pentru a cunoate
valoarea acestuia la un moment dat. Citirea se poate face n dou moduri diferite.
n primul mod, citirea se face n timpul decrementrii. Pentru aceasta, pe baza
unei comenzi, coninutul contorului, care urmeaz s fie citit, se foreaz ntr-un registru
suplimentar, din circuitul 8253, contorul continund operaia de decrementare.
Cuvntul de comand necesar are urmtoarea structur:

bit 7 bit 6 bit 5 bit 4 bit 3 bit 2 bit 1 bit 0
SC1 SC0 0 0 x x x x

(n=4)
4T
G
T
4 3 2 1 0
O
Figura 7.18. Modul 5.


165
SC1, SC0 - biii 7 i 6 din cuvntul de comand specific contorul al crui
coninut va fi salvat n vederea citirii (00, 01, 10). Biii 5, 6 sunt egali cu 0 i specific
operaia de memorare a coninutului contorului. Ceilali bii sunt indifereni.
n al doilea mod se blocheaz n prealabil ceasul, printr-o logic extern sau
controlnd semnalul de comand la poarta G. Dup aceasta se citete coninutul
contorului i se transfer n memorie.

7.6. Circuitele timer ale microcontrolerelor

n cazul microcontrolerelor, circuitele contor/periodizator sunt larg rspndite i
reprezint unul din circuitele de baz ale acestora, ndeplinind funcii complexe.
Se va prezenta n continuare modulul circuitelor de contorizare/periodizare ale
microcontrolerului TI 320F240 (GPTimer) datorit numeroaselor funcii ndeplinite de
acesta, reprezentnd astfel un modul complet i complex.

7.6.1. Timerele de uz general GPTimer

n modulul EV sunt trei timere de uz general (GP Timers). Aceste timere pot fi
folosite ca baze de timp independente n aplicaii cum ar fi:

o generarea perioadei de eantionare n sistemele de control;
o furnizarea unei baze de timp pentru operarea circuitului QEP sau
unitile de captur;
o furnizarea unei baze de timp pentru operarea unitile de comparare
simple sau complete (full) i a circuitelor PWM asociate pentru a
genera ieiri comparare/PWM.

Blocurile funcionale ale timerelor GP

Figura 7.19. prezint schema bloc a timerului GP. Fiecare timer conine:

o un contor up/down scriere/citire (R/W) de 16 bii, TxCNT (x=1,2,3);
o un registru R/W de 16 bii pentru comparare (cu imagine n memorie)
TxCMPR (x=1,2,3);
o un registru R/W de 16 bii pentru perioad (cu imagine n memorie)
TxPR (x=1,2,3);
o un registru de control R/W de 16 bii, TxCON (x=1,2,3);
o prescalare (divizare) programabil a ceasului de intrare intern sau
extern;
o logic de control a ntreruperilor;
o un pin de ieire al comparatorului GP timer, TxPWM/TxCMP
(x=1,2,3);
o ieire logic.



166
Un alt registru de control, GPTCON specific aciunile care se vor iniia pentru diferite
evenimente ale timerelor i indic direcia de numrare pentru toate cele trei timere.
GPTCON poate fi citit sau scris, scrierea celor trei bii de stare neavnd nici un efect.


Fig. 8.4. Schema bloc a timerului GP
x = 1, 2 sau 3

Intrrile timerelor GP

Intrrile timerelor GP sunt:

o ceasul intern CPU care vine direct din miez i deci are aceeai
frecven ca i ceasul CPU;
o ceas extern, TMRCLK care are frecvena maxim un sfert din
frecvena ceasului CPU;
o intrare de direcie TMRDIR pentru utilizarea timerelor GP n modul
direcional up/down;
o semnal de reset RESET.

n plus timerul GP 3 poate folosi depirea timerului GP 2 ca intrare de ceas
cnd timerele GP 2 i 3 sunt cascadate ntr-un timer de 32 de bii. Cnd un timer GP
este utilizat cu circuitul QEP, circuitul QEP genereaz att ceasul pentru contor ct i
sensul de numrare.



167
Ieirile timerelor GP

Timerele GP au urmtoarele ieiri:

o ieirea comparare/PWM a timerului GP TxPWM/TxCMP, (x=1,2,3);
o semnal de start pentru modulul ADC;
o semnale de depire inferioar, superioar, egalitate la comparare i
egalitate la perioad pentru logica proprie de comparare sau pentru
unitile de comparare simpl sau complet;
o bit de indicare a sensului de numrare.

Controlul operrii timerului GP

Modul de operare al timerului GP este controlat de registrul de control TxCON.
Biii din registrul TxCON determin:

o unul din cele ase moduri de numrare este folosit pentru timerul GP;
o sursa de ceas intern sau extern pentru timerul GP;
o factorul de divizare a ceasului de intrare (n domeniul 1 la 1/128);
o condiia de rencrcare a registrului comparatorului timerului;
o activarea sau dezactivarea timerului;
o registrul de perioad este registrul propriu sau registrul timerului GP
1 (numai pentru T2CON i T3CON);
o utilizarea semnalului de depire a timerului GP 2 ca surs de ceas
pentru timer GP 3 (numai la T3CON);

Registrul de control al timerului GP (GPTCON)

Registrul de control GPTCON specific aciunile care se vor face la diferitele
evenimente furnizate de timerele GP.

Registrele de comparare ale timerelor GP

Registrele de comparare asociate cu timerele GP stocheaz valoarea care va fi n
mod continuu comparat cu contorul timerului GP. Cnd se ntlnete egalitatea se
produc mai multe evenimente. Aceste evenimente includ tranziia ieirii
comparare/PWM asociate i start ADC n concordan cu starea bitului din GPTCON.
n plus fanionul corespunztor ntreruperii de comparare este setat. Aceast operaie
poate fi activat sau dezactivat de ctre bitul 1 din TxCON.

Registrul de perioad a timerului GP

Valoarea registrului perioad a timerului GP determin perioada timerului.
Operarea timerului se oprete reinnd valoarea curent, reseteaz la zero, sau pornete
numrtoarea invers atunci cnd se ntlnete o egalitate ntre registrul perioadei i
coninutul timerului modul de reacie depinznd de modul de numrare setat.


168

Dubla bufferare ale registrelor perioadei i comparatorului ale timerelor GP

Registrele de comparare i ale perioadei TxCMPR i TxPR ale timerului GP au
corespondent n memorie. O valoare nou poate fi scris n oricare dintre aceste registre
n orice moment. Valoarea este scris n corespondentul din memorie. Pentru registrul
de comparare coninutul registrului din memorie este ncrcat n registrul de lucru
(activ) numai cnd un anumit eveniment specificat de TxCON se produce. Pentru
registrul de perioad, registrul de lucru este rencrcat cu valoarea registrului din
memorie numai cnd valoarea n registrul contorului TxCNT este zero. Condiia la care
registrul de comparare este rencrcat poate fi una din urmtoarele:

o imediat dup ce registrul din memorie a fost scris;
o la o depire inferioar, aceasta nsemnnd atunci cnd valoarea
contorului timerului GP este zero;
o la depire superioar sau la egalitatea perioadei, atunci cnd
valoarea contorului este zero sau cnd are o valoare egal cu cea a
registrului perioadei.

Facilitatea de dubl bufferare permite codului de aplicaie s actualizeze
registrul de comparare sau al perioadei n orice moment. Acesta permite schimbri ale
perioadei timerului i limii pulsului PWM pentru ciclul urmtor. Schimbarea din
zbor a valorii perioadei timerului n cazul generrii PWM nseamn schimbarea din
zbor a frecvenei purttoarei PWM.

Iniializarea registrului perioadei

Registrul perioadei timerului GP trebuie iniializat nainte de iniializarea
contorul corespunztor la o valoare diferit de zero. n caz contrar valoarea registrului
perioadei va rmne neschimbat pn la urmtoarea depire inferioar.

Not: Registrul de comparare este transparent (noua valoare ncrcat se duce direct n
registrul activ) atunci cnd operaia de comparare asociat este dezactivat. Acest lucru
se aplic tuturor registrelor de comparare din EV.

Ieirea comparare/PWM a timerului GP

Ieirea GP Timer comparare/PWM poate fi specificat a fi activ high, activ
low forat high sau forat low n funcie de cum sunt configurai biii GPTCON.
Ieirea va comuta din low n high (high n low) la prima egalitate la comparaie atunci
cnd este activ high (low). Ea va comuta din high n low (low n high) la a doua
egalitate la comparare dac GP timer este n modul de numrare sus/jos sau la egalitatea
cu perioada dac GP timer este n modul numrare sus. Ieirea de comparare a timerului
va deveni high (low) n acelai mod atunci cnd este setat s fie forat n starea high
(low).



169
Sensul de numrare a timerului GP

Sensul de numrare pentru toate cele trei timere GP este reflectat n biii
respectivi din GPTCON pe timpul tuturor operaiilor timerelor cu:

o 1 reprezentnd numrare sus;
o 0 reprezentnd numrare jos.

Pinul de intrare TMRDIR determin sensul de numrare cnd timerul GP este n
modul de numrare direcional up/down. Cnd TMRDIR este setat high este specificat
numrarea nainte iar cnd este pus n starea low este specificat modul de numrare
napoi.

Ceasul timerelor GP

Sursa de ceas a timerelor GP poate fi ceasul intern al CPU sau ceasul aplicat
extern la pinul TMRCLK. Frecvena ceasului extern trebuie s fie mai mic sau egal cu
un sfert din ceasul CPU. Timerele GP 2,3 sau 2 i 3 mpreun formnd un numrtor pe
32 de bii pot fi utilizate cu circuitul QEP n modul de numrare direcional up/down. n
acest caz circuitul QEP furnizeaz att semnalul de ceas ct i cel de sens.
Un domeniu larg de factori de prescalare este prevzut pentru fiecare timer GP.

Timer de 32 bii

Semnalul de depire al timerului GP 2 este folosit ca intrare de ceas pentru
timerul GP 3 atunci cnd timerele 2 i 3 sunt cascadate ntr-un timer de 32 de bii. Cnd
acest lucru se ntmpl, timerul GP 2 furnizeaz cei mai puini semnificativi 16 bii ai
contorului de 32 de bii. Contorul de 32 de bii astfel obinut poate opera numai n
modul direcional up/down de numrare cu ceas intern sau extern i cu intrare de sens
extern. Circuitul QEP poate fi de asemenea ales pentru a furniza impulsuri de ceas i
de sens pentru numrtorul de 32 de bii. Registrul perioadei pentru timerele GP 2 i 3
sunt cascadate n acest caz pentru a furniza un registru de perioad de 32 de bii pe cnd
operaia de comparare este bazat pe compararea registrelor individuale i se genereaz
semnale de egalitate individuale pentru fiecare potrivire pe 16 bii. Evenimentele de
depire inferioar i superioar sunt generate pentru numrtor de 32 bii. Fanioanele
de depire inferioar i superioar ale timerului GP 2 semnaleaz n acest caz
depirile registrului de 32 de bii, cele ale timerului GP 3 neavnd nici o relevan n
acest caz. Fanioanele de comparare ale timerelor GP 2 i 3 sunt setate individual la
egalitatea comparrii.

Ceasul de intrare la operare QEP

Circuitul pulsurilor codate n cuadratur (QEP), atunci cnd este selectat, poate
genera semnal de ceas i de direcie pentru timerele GP 2 sau 3 sau 2 i 3 mpreun
pentru a forma un numrtor de 32 de bii, n modul de numrare direcional up/down.
Aceast intrare de ceas nu poate fi scalat de circuitele de prescalare ale timerelor GP


170
(factorul de prescalare va fi totdeauna egal cu unu). De asemenea frecvena de ceas
generat de circuitul QEP va fi de patru ori mai mare dect frecvena oricrui canal de
intrare QEP din cauz c timerul selectat numr fronturile cresctoare i cztoare de
pe cele dou intrri ale QEP. Frecvena de intrare la intrrile QEP trebuie s fie mai
mic sau egal cu un sfert din frecvena ceasului CPU.

Sincronizarea timerelor GP

Timerele GP 2 i 3 pot fi sincronizate individual cu timerul GP 1 prin
configurarea adecvat a registrelor T2CON i T3CON n modurile urmtoare:

o pornirea operrii timerului GP 2 sau 3 utiliznd acelai bit de control
n T1CON care pornete i operarea timerului GP 1;
o iniializarea contoarelor timerelor GP 2 sau 3 cu valori diferite
nainte de pornirea operaiei sincronizate;
o specificarea unuia din timerele GP 2 sau 3 care s utilizeze registrul
perioadei timerului GP 1 ca registru propriu de perioad (ignornd
propriul registru de perioad).

Aceste metode permit sincronizarea dorit ntre evenimentele timerelor GP.
Dac fiecare timer pornete operaia de numrare de la valoarea lui curent (memorat
n registrul contorului) un timer GP poate fi programat s porneasc cu o ntrziere
cunoscut dup un alt timer GP. Trebuie notat c sunt necesare dou scrieri n T1CON
pentru a sincroniza timerul GP1 cu timerul GP2 sau timerele GP 2 i 3.

Pornirea ADC la eveniment timer GP

Biii din GPTCON pot specifica evenimentul GP Timer pe care pornete
conversia analog-digital (ADC), eveniment care poate fi: depirea inferioar,
egalitatea la comparare, sau egalitatea la perioad. Aceast facilitate permite
sincronizarea evenimentele GP timer i pornirea ADC fr nici o intervenie din partea
CPU.

ntreruperile timerelor GP

Sunt 12 fanioane de ntrerupere n EVIFRA i EVIFRB pentru cele trei timere
GP. Fiecare timer poate genera patru ntreruperi la urmtoarele evenimente:

o depire superioar TxOFINT (x=1,2 sau 3);
o depire inferioar TxUFINT (x=1,2 sau 3);
o egalitate la comparare TxCINT (x=1,2 sau 3);
o egalitate la perioad TxPINT (x=1,2 sau 3).

Evenimentul de egalitate la comparare se produce atunci cnd coninutul
contorului timerului GP este egal cu cel al registrului de comparare. Fanionul


171
corespunztor ntreruperii de comparare este setat dou perioade de ceas CPU dup ce
se produce egalitatea dac operaia de comparare a fost activat.
Un eveniment de depire superioar se produce atunci cnd numrtorul
timerului este egal cu FFFFh. O depire inferioar se produce atunci cnd contorul are
valoarea 0000h. n mod similar un eveniment la perioad se produce cnd valoarea din
contorul timerului este egal cu coninutul registrului de perioad. Fanioanele de
depire superioar, inferioar sau la perioad sunt setate dou cicluri de perioad de
ceas CPU dup ce s-a ntlnit evenimentul respectiv. Este de notat c definirea depirii
superioare i inferioare este diferit de definiia convenional.

Operaia de numrare a timerului GP

Fiecare timer GP are ase moduri selectabile de operare:

o stop cu reinere;
o numrare sus o singur dat;
o numrare sus continu;
o numrare direcional sus/jos;
o numrare o singur dat sus/jos;
o numrare continu sus/jos.

Configuraia biilor corespunztori n registrul de control TxCON determin
modul de numrare a timerului GP. Bitul de validare a timerului TxCON[6] valideaz
sau invalideaz operaia de numrare a timerului. Cnd timerul este dezactivat operaia
de numrare se oprete i prescalatorul timerului este resetat la x/1. Cnd timerul este
activat acesta pornete operaia de numrare n concordan cu modul specificat de biii
corespunztori din TxCON.

Modul stop/reinere

n acest mod operarea timerului se oprete i reine valoarea curent. Contorul
timerului, ieirea de comparare, contorul de prescalare rmn neschimbate.

Modul de numrare sus o singur dat

Timerul GP numr n acest mod ceasul divizat de contorul de prescalare pn
cnd valoarea din contorul timerului este egal cu cea din registrul perioadei. Pe
urmtorul front cresctor a ceasului de intrare dup aceast potrivire timerul GP
reseteaz la zero i i dezactiveaz operaia de numrare prin resetarea bitului de
activare TxCON[6].
Fanionul ntreruperii timerului este setat dou perioade de ceas CPU dup ce s-a
produs egalitatea ntre registrul perioadei i contorul timerului. O comand de start este
trimis ctre modulul ADC n acelai timp ct fanionul ntreruperii este setat dac
ntreruperea de perioad a fost selectat cu ajutorul biilor corespunztori din GPTCON
pentru a porni ADC.


172
Dou perioade de ceas dup ce timerul GP a devenit zero este setat fanionul de
depire inferioar. Un semnal de pornire este trimis ctre modulul ADC n acelai timp
ct fanionul ntreruperii este setat dac ntreruperea de perioad a fost selectat cu
ajutorul biilor corespunztori din GPTCON pentru a porni ADC.
Fanionul de ntrerupere la depire superioar este setat dou perioade de ceas
CPU dup ce valoarea TxCNT atinge valoarea FFFFh.
Durata de numrare a perioadei este (TxPER)+1 cicluri de ceas prescalat de la
intrarea timerului dac contorul timerului are valoarea zero la nceputul perioadei.
Valoarea iniial a timerului GP poate fi orice valoare ntre 0h i FFFFh. Cnd
valoarea iniial este mai mare dect valoarea registrului perioadei timerul numr sus
pn la FFFFh, reseteaz la zero i numr sus n continuare pn cnd atinge valoarea
perioadei. Cnd valoarea iniial a registrului contorului timerului este egal cu valoarea
nscris n registrul perioadei, timerul seteaz fanionul ntreruperii la perioad, reseteaz
la zero seteaz fanionul de ntrerupere la depire inferioar i imediat dup aceasta
termin de numrat pn la perioad. Dac valoarea iniial a contorului este ntre zero
i valoarea perioadei, timerul numr sus pn la terminarea perioadei ntr-un mod
similar cu cel n care numrtorul timerului este egal cu cel al registrului perioadei.
O dat ce perioada s-a terminat timerul GP poate fi pornit din nou numai de
ctre software prin scrierea bitului de validare a timerului TxCON[6].
Bitul care indic sensul de numrare din GPTCON este 1 n acest caz. Se poate
utiliza att ceas intern ct i cel extern. Pinul de intrare TMRDIR este ignorat n acest
mod de operare.
n figura 7.20. este prezentat modul de numrare sus o singur dat considernd
factorul de prescalare este 1.
De notat c timerul GP ncepe numrtoarea imediat ce TxCON[6] este setat.
Acest lucru este valabil pentru toate modurile de numrare.


Fig. 7.20. Modul numrare sus o singur dat



173
Modul de numrare sus continuu

Modul de numrare sus continuu este similar cu numrare sus o singur dat
repetat de fiecare dat cnd timerul este resetat la zero. Numrarea se face n sens direct
dup ceasul primit la intrare, prescalat corespunztor, pn cnd registrul contorului este
egal cu cel al perioadei. n acest moment contorul reseteaz la zero i pornete o nou
perioad. Durata perioadei este TxPR+1 cicluri de ceas scalat cu excepia primei
perioade. Durata primei perioade este aceeai numai n cazul n care contorul pornete
de la zero.
Valoarea iniial a contorului timerului GP poate fi oricare n intervalul 0h i
FFFFh. Cnd valoarea iniial este mai mare dect valoarea registrului de perioad
timerul numr pn la FFFFh, reseteaz la zero i continu operarea cu valoarea
iniial zero. Cnd valoarea iniial este egal cu valoarea registrului de perioad,
timerul seteaz fanionul de ntrerupere de perioad, reseteaz la zero, seteaz fanionul
ntreruperii de depire inferioar i continu operarea cu valoarea iniial zero. Cnd
valoarea iniial este cuprins ntre zero i valoarea coninutului registrului de perioad,
timerul numr sus pn la valoarea registrului de perioad i continu operarea la fel ca
n cazul cnd valoarea iniial este egal cu valoarea registrului perioadei.
ntreruperile asociate evenimentelor (depire superioar, inferioar, perioad)
sunt generate n situaiile respective la fel ca la numrarea o singur dat.
Bitul de sens din GPTCON este 1 pentru acest mod. Poate fi selectat i sursa de
ceas extern. Intrarea TMRDIR este ignorat n acest mod de operare.
Numrarea continu sus fcut de timerul GP este n mod particular util pentru
generarea PWM cu fronturi triggerate sau pentru perioade de eantionare n diferite
sisteme de control ale motoarelor i micrii.
Figura 7.21 prezint modul de numrare sus continuu cu factor de prescalare 1.


Fig. 7.21. Modul de numrare sus continuu

Din figura 7.21 se vede c nu se pierde nici un impuls de ceas n momentul
cnd contorul atinge valoarea registrului perioadei i pornete un nou ciclu de numrare.


174
Modul de numrare direcional up/down al timerelor GP 1 i 3

Timerele n modul de numrare direcional up/down numr sus (up) sau jos
(down) n concordan cu ceasul scalat i intrarea TMRDIR. Cnd pinul TMRDIR este
n starea high contorul numr pn atinge perioada sau valoarea FFFFh. Cnd
numrtorul atinge una din aceste valori se oprete. Numrtorul numr jos pn la
valoarea zero cnd intrarea TMRDIR este n starea low. La aceast valoare (zero)
numrtorul se oprete.
Valoarea iniial a numrtorului poate fi oricare ntre zero i FFFFh. Cnd
valoarea iniial este mai mare dect perioada timerul numr sus pn atinge FFFFh i
se oprete aici dac TMRDIR este high. Dac TMRDIR este low atunci numr jos
pn la valoarea perioadei dup care continu ca n situaia cnd valoarea iniial este
egal cu valoare perioadei. Dac valoarea iniial este egal cu valoarea registrului
perioadei atunci contorul se oprete la aceast valoare dac TMRDIR este high sau
numr jos de la aceast valoare dac TMRDIR este low.
Fanioanele de ntrerupere pe evenimentele respective sunt generate similar ca la
modul de numrare o singur dat sus.
Intervalul de timp ntre modificarea TMRDIR i modificarea sensului de
numrare este de 2 cicluri de ceas CPU dup sfritul numrtorii n curs comutrii
curente - (altfel spus la sfritul perioadei impulsului de numrare prescalat).
Figura 7.22 ilustreaz modul de numrare direcional up/down.


Fig. 7.22. Modul de numrare direcional sus/jos

Modul de numrare direcional up/down al timerului GP 2

Modul de numrare direcional up/down la timerului GP 2 difer de cele ale
timerelor 1 i 3. Timerul GP 2 numr pn la perioad i furnizeaz depire
superioar i inferioar.
Acest mod de operare poate fi utilizat pentru a msura durate sau numrarea
apariiei evenimentelor externe n controlul motoarelor/micrii (deplasrii) i aplicaii
ale electronicii de putere. Nu apar tranziii pe ieirile de comparare asociate cu modulul
de comparare (care include comparare timer GP, comparare complet sau simpl) care
utilizeaz timerul GP ca baz de timp.


175
Cnd QEP este selectat ca surs de ceas pentru timer GP acesta trebuie pus n
modul de numrare direcional up/down.

Modul de numrare o singur dat up/down

Timerul GP n acest mod numr n concordan cu ceasul prescalat pn la
valoarea din registrul perioadei. Atunci el schimb direcia de numrare i numr jos
pn la valoarea zero. Cnd s-a atins valoarea zero este resetat TxCON[6] i contorul de
prescalare se oprete i reine starea sa curent.
Perioada timerului GP este 2x(TxPR) cicluri de ceas scalat dac valoarea sa
iniial este 0.
Valoarea iniial a numrtorului poate fi oricare ntre zero i FFFFh. Cnd
valoarea iniial este mai mare dect perioada timerul numr sus pn atinge FFFFh
reseteaz la zero i continu numrtoarea ca n cazul cnd valoarea iniial este zero.
Dac valoarea iniial este egal cu valoarea registrului perioadei atunci numrtorul
numr jos pn la zero i termin perioada aici. Dac valoarea iniial este ntre zero i
valoarea perioadei atunci contorul numr sus pn la atingerea perioadei i apoi
continu ca n situaia cnd contorul este egal cu perioada.
Fanioanele de ntrerupere pe evenimentele respective sunt generate similar ca la
modul de numrare o singur dat sus. Este de notat c evenimentul egalitatea perioadei
se produce la jumtatea perioadei de numrare la egalitatea contorului cu registrul de
perioad.
O dat ce s-a stabilit acest mod de numrare operaia de numrare nu poate fi
pornit dect scriind 1 n TxCON[6]. Bitul de sens este 1 la numrare sus i 0 la
numrare jos. Poate fi selectat i ceasul intern i cel extern. Intrarea TMRDIR este
ignorat n acest mod.
Figura 7.23 ilustreaz modul de numrare o singur dat sus/jos.

Fig. 7.23. Modul de numrare o singur dat sus/jos (TxPR=3)

Modul de numrare up/down continuu

n acest mod operarea este similar modului de numrare o singur dat sus/jos
cu precizarea c timerul reia operaiunea de fiecare dat cnd este resetat la zero. Odat


176
ce acest mod de operare este pornit nu este necesar nici o intervenie software sau
hardware pentru contorizarea repetat a perioadei.
Perioada timerului GP este 2x(TxPR) cicluri de ceas scalat cu excepia primei
perioade. Durata primei perioade de numrare are aceeai valoare dac valoarea iniial
a contorului timerului este 0.
Valoarea iniial a numrtorului poate fi oricare ntre zero i FFFFh. Cnd
valoarea iniial este mai mare dect perioada timerul numr sus pn atinge FFFFh
reseteaz la zero i continu numrtoarea ca n cazul cnd valoarea iniial este zero.
Dac valoarea iniial este egal cu valoarea registrului perioadei atunci numrtorul
numr jos pn la zero i continu la fel ca n cazul n care valoarea iniial este zero.
Dac valoarea iniial este ntre zero i valoarea perioadei atunci contorul numr sus
pn la atingerea perioadei i apoi continu ca n situaia cnd contorul este egal cu
perioada.
Fanioanele de ntrerupere pe evenimentele respective sunt generate similar ca la
modul de numrare o singur dat sus.
Sensul de numrare este indicat de bitul corespunztor din GPTCON care este 1
atunci cnd timerul numr sus i 0 cnd numr jos. Poate fi selectat att ceasul intern
ct i cel extern. Intrarea TMRDIR este ignorat n acest mod.
Figura 7.24 prezint modul de numrare continuu sus/jos.


Fig. 7.24. Modul de numrare continuu sus/jos

Operaia de comparare a timerului GP

Fiecare timer GP are asociat un registru de comparare TxCMPR i un pin de
ieire de comparare/PWM. Valoarea timerului GP este n mod constant comparat cu
registrul de comparare asociat. Evenimentul la comparare se produce atunci cnd
registrul de comparare asociat timerului este egal cu coninutul timerului. Operaia de
comparare este validat atunci cnd bitul TxCON[1] este setat la 1. Dac acest bit este
setat la 1 atunci la apariia unui eveniment de comparare se produc urmtoarele operaii:



177
o fanionul de ntrerupere la comparare este setat pe dou perioade de
ceas CPU dup producerea egalitii ntre registrul timer i registrul
comparator;
o dac timerul nu este ntr-un mod de direcional de numrare sus/jos
se produce o tranziie pe ieirea asociat comparare/PWM n
concordan cu bitul de configurare din GPTCON, un ciclu de ceas
dup producerea egalitii;
o dac fanionul de ntrerupere la comparare a fost selectat s porneasc
ADC atunci se trimite un semnal de start la acesta n acelai moment
n care fanionul este setat.

Dac operaia de comparare a timerului GP este dezactivat atunci ieirea de
comparare/PWM este n nalt impedan i nici unul din evenimentele descrise anterior
nu se produce.

Tranziiile comparare/PWM

Tranziiile ieirilor de comparare/PWM sunt controlate de un generator de forme
de und simetrice i asimetrice asociat logicii de ieire i depinde de urmtoarele:

o definirea biilor n GPTCON;
o modul de numrare n care se gsete timerul;
o sensul de numrare cnd modul de numrare este un singur ciclu sus
jos sau numrare continu sus/jos.

Generatorul de forme de und asimetrice/simetrice

Generatorul de forme de und asimetrice/simetrice genereaz o form de und
asimetric sau simetric pe ieirea comparare/PWM n funcie de modul de numrare n
care se gsete timerul GP.

Generarea formei de und asimetrice

O form de und asimetric cum este cea prezentat n figura 7.25 este generat
cnd timerul este n modul de numrare un ciclu sau continuu sus. Cnd timerul este
ntr-unul din aceste dou moduri, ieirea generatorului de forme de und se schimb n
felul urmtor:

o zero nainte ca operaia de numrare s porneasc;
o rmne neschimbat pn la producerea unei egaliti de comparare;
o comut la apariia egalitii de comparare;
o rmne neschimbat pn la sfritul perioadei;
o reseteaz la zero la sfritul perioadei dac o nou valoare de
comparare pentru perioada urmtoare este diferit de zero.




178
Ieirea este 1 pe ntreaga perioad dac valoarea de comparare este zero la
nceputul perioadei. Ieirea nu reseteaz la zero dac o nou valoare de comparare
pentru perioada urmtoare este zero. Acest lucru este important pentru c permite
generarea pulsurilor PWM cu factor de umplere ntre 0% i 100% fr apariia
impulsurilor parazite. Ieirea este zero pe ntreaga perioad dac valoarea de comparare
este mai mare dect valoarea din registrul perioadei. Ieirea este 1 pentru o perioad a
ceasului de intrare scalat dac valoarea de comparare este egal cu valoarea perioadei.
O caracteristic a formei de und asimetrice de comparare/PWM este aceea c o
modificare a valorii n registrul de comparare afecteaz numai un front la pulsului
comparare/PWM.


Fig. 7.25. Ieirea comparare/PVM a timerului GP pentru modul de
numrare sus continuu

Generarea formei de und simetrice

O form de und simetric aa cum este cea prezentat n figura 7.26 este
generat atunci cnd timerul este n modul de numrare un singur ciclu sau continuu
sus/jos. Cnd timerul este ntr-unul din aceste dou moduri, ieirea generatorului de
forme de und se schimb n felul urmtor:

o zero nainte ca operaia de numrare s porneasc;
o rmne neschimbat pn la producerea unei egaliti de comparare;
o comut la apariia primei egalitii de comparare;
o rmne neschimbat pn se ntlnete a doua egalitate de
comparare;
o comut la apariia celei de-a doua egalitii de comparare
o rmne neschimbat pn la sfritul perioadei;
o reseteaz la zero la sfritul perioadei dac nu s-a ntlnit a doua
egalitate la comparare i o nou valoare de comparare pentru
perioada urmtoare este diferit de zero.

Ieirea este setat la 1 la nceputul perioadei i rmne 1 pn la a doua egalitate
de comparare dac valoarea de comparare este 0. Dup prima tranziie de la 0 la 1,


179
ieirea rmne 1 pn la sfritul perioadei dac valoarea comparatorului este 0 pentru
restul perioadei. Cnd acest lucru se ntmpl ieirea nu trebuie s reseteze la zero dac
valoarea de comparare pentru urmtoarea perioad este n continuare zero. Acest lucru
este fcut pentru a asigura generarea pulsurilor PWM cu factor de umplere ntre 0% i
100% fr nici un impuls parazit. Prima tranziie nu trebuie s se produc dac valoarea
comparatorului este mai mare sau egal cu valoarea perioadei pentru prima jumtate a
perioadei. Ieirea va comuta totui cnd o egalitate de comparare se produce n ce-a de-a
doua jumtate a perioadei. Aceast eroare n comutarea ieirii adesea ca rezultat a
erorilor de calcul din programele de aplicaii este corectat la sfritul perioadei din
cauz c ieirea reseteaz la zero numai dac noua valoare de comparare pentru
perioada urmtoare este zero. Dac se ntmpl mai trziu, ieirea rmne 1, ceea ce o
pune din nou n starea corect.
Not: Logica de ieire stabilete polaritatea pentru toi pinii de ieire.

Fig. 7.26. Ieirea comparare/PWM a timerului GP n modul de numrare
continuu sus/jos

Logica de ieire

Logica de ieire permite stabilirea condiiilor pentru ieirea comparare/PWM n
scopul comenzii diferitelor tipuri de dispozitive electronice de putere. Se pot specifica
pentru ieirea comparare/PWM urmtoarele condiii: activ sus, activ jos, forat sus
sau forat jos prin configurarea adecvat a biilor din GPTCON.
Pentru starea activ, cele dou stri, activ sus i activ jos sunt complementare.
Stare activ n 1 nseamn c ieirea furnizeaz 1 cnd este activ i zero n stare
inactiv. Ieirea comparare/PWM este setat n 1 (sau 0) imediat ce biii corespunztori
din GPTCON sunt setai astfel nct starea ieirii s fie forat sus (sau jos).
Tabelele urmtoare descriu starea ieirii pentru diverse moduri de numrare.

TABELUL 7.4. Ieirea de comparare a timerului GP n mod numrare sus un ciclu sau
continuu
Desfurarea evenimentelor Starea ieirii de comparare
nainte de egalitate comparare Inactiv
La egalitate la comparare Setat activ
La egalitate la perioad Setat inactiv



180
TABELUL 7.5.
Ieirea de comparare a timerului GP n mod numrare sus/jos un ciclu sau continuu
Desfurarea evenimentelor Starea ieirii
nainte de prima egalitate de comparare Inactiv
La prima egalitate la comparare Setat activ
La a doua egalitate la comparare Setat inactiv
Dup a doua egalitate la comparare Inactiv

Toate ieirile comparare/PWM sunt puse n nalt impedan cnd se produce
unul din urmtoarele evenimente:

o GPTCON[6] este setat la 1 de ctre software;
o PDPINT este pus low i este nemascat;
o se comand RESET;
o cnd operaia este dezactivat pentru timerele GP.

Ieirea de comparare n modul de numrare direcional sus/jos

Cnd timerul este n modul de numrare direcional sus/jos nu se produce nici o
tranziie la ieirile de comparare. n mod similar, nu se produce nici o tranziie la ieirile
de comparare asociate cu unitile de comparare complet cnd timerul GP 1 este n
modul de numrare direcional sus/jos. Nu se produce nici o tranziie la ieirile asociate
unitilor de comparare simpl atunci cnd timerul GP selectat ca baz de timp pentru
acestea este programat n modul de numrare direcional sus/jos. Setarea fanioanelor ce
ntrerupere la comparare i generarea cererilor de ntrerupere nu depinde de modul de
numrare n care este setat timerul GP.

Calcularea timpului activ/inactiv

Pentru modurile de numrare sus, valoarea registrului de comparare reprezint
timpul scurs ntre nceputul perioadei i ntlnirea primei egaliti la comparare; rezult
c aceasta este lungimea fazei inactive. Timpul scurs este egal cu perioada ceasului
prescalat nmulit cu TxCMPR. Rezult c lungimea fazei active, limea impulsului,
este dat de relaia: TxPR TxCMPR+1 cicluri ale ceasului scalat.
Pentru modurile de numrare sus/jos, registrul de comparare poate avea valori
diferite pentru numrarea jos i numrarea sus. Lungimea fazei active, adic limea
impulsului, este dat de relaia: TxPR TxCMPR
UP
+ TxPR TxCPMR
DN
ciclurile de
ceas prescalat.
Cnd valoarea TxCMPR este zero atunci ieirea de comparare a timerului GP
este activ pe ntreaga perioad dac timerul este n modul de numrare sus. Pentru
modurile de numrare sus/jos, ieirea de comparare este activ de la nceputul perioadei
dac TxCMPR
UP
este zero. Ieirea rmne activ dup sfritul perioadei dac
TxCMPR
DN
este de asemenea zero.
Lungimea fazei active (limea impulsului) este zero atunci cnd valoarea
TxCMPR este mai mare dect TxPR pentru modurile de numrare sus. Pentru modurile
de numrare sus/jos prima tranziie este pierdut cnd TxCMPR
UP
este mai mare sau


181
egal cu TxPR. Similar, a doua tranziie este pierdut cnd TxCMPR
DN
este mai mare
sau egal cu TxPR. Ieirea de comparare a timerului GP este inactiv pe ntreaga
perioad dac ambele valori de comparare TxCMPR
UP
i TxCMPR
DN
sunt mai mari sau
egale cu TxPR pentru modurile de numrare sus/jos.

Registrele de control ai timerelor GP (GPTCON i TxCON)

Registrul de control timer GP (GPTCON) adresa 7400h

15 14 13 12-11 10-9 8-7
T3STAT T2STAT T1STAT T3TOADC T2TOADC T1TOADC
R-1 R-1 R-1 RW-0 RW-0 RW-0

7 5-4 3-2 1-0
TCOMPOE T3PIN T2PIN T1PIN
RW-0 RW-0 RW-0 RW-0
Not: R=citire, W=scriere, -0=valoare dup reset

Bit 15 T3STAT. Stare timer GP 3
0 = Numr jos
1 = Numr sus
Bit 14 T2STAT. Stare timer GP 2
0 = Numr jos
1 = Numr sus
Bit 13 T1STAT. Stare timer GP 1
0 = Numr jos
1 = Numr sus
Biii 12-11 T3TOADC. Pornete conversie ADC de ctre eveniment timer GP 3
00 = Nici un eveniment nu pornete ADC
01 = ntreruperea la depirea inferioar pornete ADC
10 = ntreruperea la perioad pornete ADC
11 = ntreruperea la comparare pornete ADC
Biii 10-9 T2TOADC. Pornete conversie ADC de ctre eveniment timer GP 2
00 = Nici un eveniment nu pornete ADC
01 = ntreruperea la depirea inferioar pornete ADC
10 = ntreruperea la perioad pornete ADC
11 = ntreruperea la comparare pornete ADC
Biii 8-7 T1TOADC. Pornete conversie ADC de ctre eveniment timer GP 1
00 = Nici un eveniment nu pornete ADC
01 = ntreruperea la depirea inferioar pornete ADC
10 = ntreruperea la perioad pornete ADC
11 = ntreruperea la comparare pornete ADC
Bit6 TCOMPOE. Activeaz ieirea de comparare. PDPINT activ scrie zero la
acest bit.
0 = Dezactiveaz toate cele trei ieiri de comparare ale timerelor GP
(le pune n starea de nalt impedan)
1 = Activeaz toate cele trei ieiri de comparare ale timerelor GP


182
Biii 5-4 T3PIN. Polaritatea ieirii de comparare a timerului GP 3

00 = forat n starea jos
01 = activ n zero
10 = activ n unu
11 = forat n unu
Biii 3-2 T2PIN. Polaritatea ieirii de comparare a timerului GP 2

00 = forat n starea jos
01 = activ n zero
10 = activ n unu
11 = forat n unu
Biii 1-0 T1PIN. Polaritatea ieirii de comparare a timerului GP 1
00 = forat n starea jos
01 = activ n zero
10 = activ n unu
11 = forat n unu

Registrul de control al timerului GP (TxCON; x=1,2 i 3) registrele sunt la adresele
7404h, 7408h i 740Ch.

15 14 13 12 11 10 9 8
Free Soft TMODE
2
TMODE
1
TMODE
0
TPS2 TPS1 TPS0
RW-
0
RW-0 RW-0 RW-0 RW-0 RW-0 RW-0 RW-0

7 6 5 4 3 2 1 0
TSWT1
TENABL
E
TCLKS1 TCLKS
0
TCLD1 TCLD0 TECMP
R
SELT1PR
RW-0 RW-0 RW-0 RW-0 RW-0 RW-0 RW-0 RW-0
Not: R=citire, W=scriere, -0=valoare dup reset

Biii 15-14 Free, Soft. Bii de control a emulrii
00 = Stop imediat ce emularea a fost oprit
01 = Stop dup ce perioada curent a timerului este complet la oprirea
emulrii
10 = Operarea nu este afectat de oprirea emulrii
11 = Operarea nu este afectat de oprirea emulrii
Biii 13-11 TMODE2-TMODE0. Selectarea modului de numrare
000 = Stop/hold
001 = Modul numrare direct (sus) o singur dat (un ciclu)
010 = Modul numrare continu direct (sus)
011 = Mod numrare bidirecional (up/down)
100 = Modul numrare bidirecional o singur dat (un ciclu)
101 = Mod numrare continuu bidirecional
110 = Rezervat. Rezultat imprevizibil


183
111 = Rezervat. Rezultat imprevizibil
Biii 10-8 TPS2-TPS0. Factor de divizare a ceasului de intrare
000 = x/1
001 = x/2
010 = x/4
011 = x/8
100 = x/16
101 = x/32
110 = x/64
111 = x/128
x frecvena de ceas a unitii centrale (CPU)
Bit 7 TSWT1. (Pornirea timer GP cu timer GP 1). Pornete timerul cu bitul de
validare al timerului GP 1. Acest bit este rezervat la T1CON
0 = Utilizeaz propriul bit TENABLE
1 = Utilizeaz bitul TENABLE din T1CON pentru validarea sau
invalidarea operaiei ignornd propriul bit TENABLE
Bit 6 TENABLE. Validare timer. n modul un singur ciclu numrare direct
sau bidirecional acest bit este ters la zero de ctre timer dup ce se
completeaz o perioad a operaiei
0 = Dezactiveaz operarea timerului: pune timerul n starea de oprire
(hold) i reseteaz contorul de divizare (prescalare)
1 = Activeaz operarea timerului
Bit 5-4 TCLKS1, TCLKS0. Selectarea sursei de ceas.
00 = Intern
01 = Extern
10 = Cascadare cu timerul GP 2. (este aplicabil numai la T3CON cnd
timerele GP 2 i 3 sunt legate pentru a forma un timer de 32 bii; rezervat
n T1CON i T2CON; ilegal dac SELT1PR=1 adic rezultatul este
imprevizibil)
11 = Circuit pentru impulsuri codate n cuadratur (Aplicabil numai la
T2CON i T3CON; rezervat n T1CON; ilegal dac SELT1PR este 1
adic rezultatul este imprevizibil)
Biii 3-2 TCLD1, TCLD0. Condiia de rencrcare a registrului (activ) pentru
comparator
00 = Cnd contorul este 0
01 = Cnd valoarea contorului este zero sau egal cu valoarea
registrului perioadei
10 = Imediat
11 = Rezervat
Bit 1 TECMPR. Validarea comparrii timerului
0 = Dezactiveaz operaia de comparare a timerului
1 = Activeaz operaia de comparare a timerului
Bit 0 SELT1PR. Selecia registrului de perioad. Acest bit este rezervat n
T1CON
0 = Utilizeaz registru propriu de perioad
1 = Utilizeaz T1PR ca registru de perioad ignornd registrul propriu


184
Not: Sincronizarea timerelor GP

Dou scrieri consecutive n T1CON sunt necesare pentru a asigura sincronizarea
timerelor GP cnd T1CON[6] este folosit pentru validarea timerelor GP 2 sau 3:

1. Configurai toi ceilali bii cu T1CON[6] setat la zero
2. Validai timerul GP 1 i astfel timerul GP 2 sau timerele GP 2 i 3 prin
setarea T1CON[6] la unu.

Generarea ieirilor de comparare i PWM utiliznd timerele GP

Fiecare timer poate fi folosit independent pentru a furniza un canal de ieire de
comparare sau PWM. Rezult c se pot genera pn la trei ieiri de comparare sau
PWM.

Operaia de comparare

Pentru a genera o ieire de comparare modul de operare corespunztor trebuie
nti selectat pentru timerul GP. Pentru aceasta urmtoarele activiti trebuie realizate:

o setarea TxCMPR n concordan cu valoarea de comparat;
o setarea GPTCON cu tranziia dorit a ieirii care s se produc la
egalitatea de comparare;
o ncrcarea TxPR cu valoarea dorit a perioadei, dac este necesar;
o ncrcarea TxCNT cu valoarea iniial a contorului, dac este
necesar;
o setarea TxCON cu modul de numrare specific, sursa de ceas i
pornirea operrii.

Operarea PWM

Pentru a genera o ieire PWM cu un timer GP se selecteaz modul de numrare
sus continuu sau modul de numrare sus/jos continuu. Forme de und PWM cu fronturi
trigerate sau asimetrice sunt generate cnd este selectat modul de numrare sus
continuu. Forme de und PWM centrate sau simetrice sunt generate cnd modul de
numrare sus/jos este selectat. Pentru a seta timerul GP pentru aceast operaie se
efectueaz urmtoarele activiti:

o setarea TxPR n concordan cu perioada dorit a PWM
(purttoarea);
o setarea TxCON n modul de numrare specific, sursa de ceas i
pornirea operaiei;
o ncrcarea TxCMPR cu valorile corespunztoare cu valorile calculate
on-line ale limii pulsurilor PWM.



185
Valoarea perioadei este obinut prin mprirea perioadei dorite a PWM la
perioada ceasului de intrare a timerului GP i scznd 1 din valoarea obinut cnd este
selectat modul de numrare sus continuu pentru a genera forme de und PWM
asimetrice. Aceast valoare este obinut prin mprirea perioadei dorite pentru PWM
la de 2 ori perioada de ceas de intrare a timerului GP cnd este selectat modul de
numrare continuu sus/jos pentru a genera forme de und PWM simetrice.
Timerul GP poate fi iniializat n acelai fel cum s-a artat n exemplele
anterioare. Pe durata timpului de numrare, registrul de comparare al timerului GP este
n mod continuu ncrcat cu noile valori determinate pentru comparare pentru noile
cicluri active determinate.

Resetarea timerului GP

Cnd apare semnalul RESET se produc urmtoarele evenimente:

o toi biii registrelor timerelor GP cu excepia bitului de direcie din
GPTCON sunt resetai la zero; deci toate operaiile timerelor GP sunt
dezactivate. Biii indicatori ai direciei sunt toi setai la 1;
o toate fanioanele de ntrerupere ale timerelor sunt resetate la 0;
o toi biii de mascare ai ntreruperilor sunt resetai la zero; deci toate
ntreruperile timerelor GP sunt mascate;
o toate ieirile de comparare ale timerelor GP sunt puse n starea de
nalt impedan.





186
Laboratorul nr. 1

Utilizarea interfeei seriale

n cadrul acestui laborator se va folosi placa S-board de interfa cu portul serial
al calculatorului n scopul realizrii mai multor experimente privind transmisia serial.
Imaginea plcii S-board este urmtoarea:


1
2




3
4
5
6














Placa S-Board permite i conine:
- interfaa cu portul serial RS-232 (1);
- funcia UART controlat prin circuitul UTX8100;
- selectarea ratei de transfer a informaiei i a formatului ei prin jumperi (2);
- leduri pentru afiarea strii circuitului i a erorilor (3);
- circuit de conversie pentru realizarea transmisiei utiliznd modul I2C (4);
- Conectori de extensie pentru DATA BUS, UART IN, UART AUT, SHIFT
OUT (5) i S-BUS (6) necesari pentru realizarea conexiunilor cu plcile din
seria EX
Toate semnalele portului paralel ajung la portul S-BUS prin intermediul
circuitului MAX 232 i 74HC541, circuit de tip buffer, care realizeaz i protecia la
erorile ce pot aprea. Conectorul SERIAL OUTPUT permite controlul unor componente
conectate la acest port prin intermediu semnalelor TxD, DTR i RTS. Pentru recepia
unor semnale de la plcile de extensie se folosete portul SERIAL INPUT ce include
pinii DCD, CTS, RxD i DSR.
Pentru realizarea unei comunicaii complete prin intermediul portului serial,
placa S-Board conine circuitul UART de tip UTX8100 ce realizeaz conversia
semnalului serial preluat de la portul serial n semnal paralel pe 8 bii transmis prin


187
intermediul pinilor D0-D7 i invers. Circuitul UTX8100 poate fi controlat din punct de
vedere al ratei de transfer a informaie (8 posibiliti) cu ajutorul jumperilor (2). De
asemenea tot prin intermediul lor se poate seta numrul de bii transmii, controlul
paritii transmisiei i setarea bitului de stop.
n cazul apariiei unei erori de transmisie circuitul UTX8100 transmite aceste
informaii (Eroare de paritate PE i eroare de cadru FE) prin intermediul unor pini de
ieire.
Placa S-Board permite creterea numrului porturilor de ieire utiliznd placa de
extensie EX-09, conectat la portul SHIFTOUT.



Experimentul nr. 1

Realizarea unei transmisii de semnal serial
preluat de portul calculatorului convertit n semnal paralel

Pentru realizarea experimentului se va folosi placa S-Board, placa EX-01 care
conine un afiaj cu leduri pe 2x8 bii, un calculator care s aib instalat programul
Visual BASIC V5.0 sau mai nou i cablul de conexiune IDC-10.












Placa EX-01
Placa EX-03

Procedura de execuie a experimentului
Se va defini protocolul de transmisie a semnalului serial dintre calculator i
circuitul UART al plcii setndu-se urmtorii parametrii: rata de transfer 57600, 8 biii
de date, fr control de paritate i un bit de stop.
1. Cu ajutorul cablului IDC-10 se va realiza conexiunea ntre portul UART
OUT a plcii S-Board i DATA BUS1 a plcii EX-01;
2. Se seteaz rata de transfer la 57600 cu ajutorul jumperilor BD1, BD2 i
BD3 pui pe 0 logic;
3. Se selecteaz fr control de paritate i un bit de stop cu ajutorul jumperilor
PI i SB pui pe 0 logic;
4. Se selecteaz 8 biii de date cu ajutorul jumperului DL pus pe 0 logic;
5. Se pornete calculatorul i se lanseaz aplicaia Visual BASIC.
6. Realizai o form i editai controalele din figura urmtoare;


188

7. Scriei urmtorul program pentru evenimentul Form_Load pentru definirea
formatului comunicaiei:
Private Sub Form_Load()
MSComm1.CommPort = 1
MSComm1.Settings = 57600,n,8,1
MSComm1.PortOpen = True
End Sub

8. Scriei urmtorul program pentru evenimentul cmdOut_Click

Private Sub cmdOut_Click ()
MSComm1.Output = Chr(Val(&H & txtOut.Text) Mod 256)
End Sub

Formatul datei txtOut este n hexazecimal dar formatul datei transmise prin
MSComm1.Output este de tip caracter. Prin urmare se transform datele prima dat n
zecimal, n domeniul 0-256 i utiliznd funcia Chr() se convertesc n date de tip
caracter.

Experimentul nr. 2

Conversia unui semnal paralel n semnal serial

Pentru realizarea experimentului se va folosi placa S-Board, placa EX-03 care
conine 16 comutatoare logice de semnal, un calculator care s aib instalat programul
Visual BASIC V5.0 sau mai nou i cablul de conexiune IDC-10.
n cadrul acestui experiment se va prelua un semnal paralel emis de placa EX-03
prin intermediul plcii S-Board care realizeaz conversia lui n semnal serial.

Procedura de execuie a experimentului
Cu ajutorul cablului IDC-10 se va realiza conexiunea ntre portul UART IN a
plcii S-Board i DATA BUS a plcii EX-03;
1. Se seteaz rata de transfer la 57600 cu ajutorul jumperilor BD1, BD2 i
BD3 pui pe 0 logic;
2. Se selecteaz fr control de paritate i un bit de stop cu ajutorul jumperilor
PI i SB pui pe 0 logic;
3. Se selecteaz 8 biii de date cu ajutorul jumperului DL pus pe 0 logic;
4. Se pornete calculatorul i se lanseaz aplicaia Visual BASIC.
5. Realizai o form i editai controalele din figura urmtoare;


189








6. Scriei urmtorul program pentru evenimentul Form_Load pentru definirea
formatului comunicaiei:
Private Sub Form_Load()
MSComm1.CommPort = 1
MSComm1.Settings = 57600,n,8,1
MSComm1.PortOpen = True
MSComm1.DTREnable = False
End Sub

7. Scriei rutina de ntrziere cum urmeaz:

Private Sub Delay()
Dim a As Single
a = Timer + 0.01
Do While a > Timer
DoEvents
Loop
End Sub

9. Scriei urmtorul program pentru evenimentul cmdln_Click

Private Sub cmdIn_Click ()
Dim tmp As String
MSComm1.DTREnable = True
Delay
MSComm1.DTREnable = False
Delay
If MSComm1.InBufferCount > 0 Then
tmp = MSComm1.Input
txtIn.Text = Hex(Asc(tmp))
End If
End Sub

Deoarece calculatorul utilizat este mai rapid dect circuitul UART , exist
posibilitatea ca acesta s nu poat citi datele la timp. De aceea este foarte important
utilizarea rutinei de ntrziere.




190





Laboratorul nr. 2

Comunicaia ntre sistemele de calcul

1. Introducere

Comunicaia ntre calculatoare se realizeaz n scopul schimbului de date ntre
sistemele de calcul. Indiferent de ceea ce reprezint datele comunicate (imagini, texte,
baze de date, comenzi, etc.), modul de transmitere a datelor ntre calculatoare face
obiectul unor reglementri internaionale n scopul universalizrii schimbului de date
ntre sistemele de calcul.
Comunicarea de date presupune stabilirea legturii ntre dou sau mai multe
calculatoare i gestionarea i controlul transferului de informaie. O interfa de
comunicaie reprezint un set de reguli i convenii standardizate care specific modul
de realizare a unei legturi.
Comunicaia ntre calculatoare poate fi realizat paralel, pe distane scurte, sau
serial, pe distane lungi, evident cu diferene legate de viteza de transmisie i de resurse
materiale.
Comunicaia serial se realizeaz prin conectare direct ntre sistemele de calcul,
prin interfaa serial (comunicaie digital - comunicaie prin modem nul), pe distane
scurte (sub 15 m), sau cu ajutorul modem-urilor (comunicaie analogic), de obicei prin
linii telefonice, pe distane lungi.
Viteza de transmisie pe o linie serial se msoar n bps (bii pe secund), iar
valorile standardizate pentru aceste viteze sunt: 150 bps, 300 bps, 600 bps, 1200 bps,
2400 bps, 4800 bps, 9600 bps, 19200 bps, 38400 bps, 57600 bps, 115200 bps.
Atunci cnd se realizeaz o legtur ntre dou sau mai multe calculatoare, n
special n cazul reelelor de calculatoare, pentru a face distincie ntre rolul fiecrui
calculator, se folosesc termenii de: file server i client.
File server (numit n continuare server), reprezint calculatorul care coordoneaz
ntreaga activitate iar staiile de lucru, clienii, sunt reprezentai de ctre calculatoarele
pe care lucreaz utilizatorii.

2. Realizarea comunicaiei ntre dou calculatoare prin intermediul sistemului de
operare MS-DOS

ncepnd cu versiunea 6 a sistemului de operare MS-DOS dou calculatoare pot
fi legate n scopul schimbului de date, cu ajutorul comenzilor: INTERLNK.EXE i
INTERSVR.EXE care se gsesc n directorul DOS de pe discul C.


191
Pentru a obine informaii cu privire la modul de utilizare al acestor comenzi ele
pot fi lansate sub forma: interlnk /? i respectiv intersvr /? ,iar pe ecran apar informaii
sumare cu privire la aceste comenzi.
Pentru informaii mai complete se d comanda help i n ecranul afiat se caut
cele dou comenzi cu ajutorul tastelor cu sgei sau cu ajutorul tastelor Page Up sau
Page Down. Dac cursorul a fost poziionat pe una din aceste comenzi, prin apsarea
tastei ENTER se afieaz informaii despre comanda respectiv.
Aceste programe de comunicaie realizeaz indirectarea discurilor i al
imprimantelor calculatorului server spre calculatorul client.
De exemplu, dac calculatorul server are discurile A:, B:, C:, iar calculatorul
client are discurile A: i C:, dup instalarea driver-ului de comunicaie vor apare pe
calculatorul client, suplimentar fa de situaia anterioar, discurile D:, E:, F:, care
corespund discurilor A:, B:, respectiv C: de pe calculatorul server.
Ordinea indirectrii poate fi schimbat dac se lanseaz programul interlnk.exe
de pe calculatorul client, aa cum se va arta mai jos.

2.1. Realizarea legturii fizice (hardware)

Realizarea comunicaiei ntre dou calculatoare presupune realizarea legturii
fizice ntre calculatoare si lansarea programelor de comunicaie. Legtura fizic ntre
calculatoare se realizeaz prin conectarea interfeelor seriale sau paralele libere, ale
celor dou calculatoare.
Realizarea conexiunii se face astfel:

- pentru interfaa serial conectorii disponibili pot fi conectori cu 9 pini
sau cu 25 de pini. Conexiunea se realizeaz printr-un cablu cu conectori mam la
ambele capete.
Cablurile trebuie s aib 3 fire pentru transmisiile de date, legturile necesare
fiind: Ground-Ground, Transmit-Receive, i Receive-Transmit, sau 7 fire pentru a copia
fiiere la distan, conexiunile necesare fiind:

9 pin 25 pin 25 pin 9 pin
===== ====== ====== =====
pin 5 pin 7 < > pin 7 pin 5 (Ground-Ground)
pin 3 pin 2 < > pin 3 pin 2 (Transmit-Receive)
pin 7 pin 4 < > pin 5 pin 8 (RTS - CTS)
pin 6 pin 6 < > pin 20 pin 4 (DSR - DTR)
pin 2 pin 3 < > pin 2 pin 3 (Receive-Transmit)
pin 8 pin 5 < > pin 4 pin 7 (CTS - RTS)
pin 4 pin 20 < > pin 6 pin 6 (DTR - DSR)

Pentru legtura pe interfaa paralel sunt necesari 2 conectori-tat cu 25 de pini
la ambele capete. Sunt necesare 11 legturi conform tabelului de mai jos:





192
25 pin 25 pin
====== ======
pin 2 < > pin 15
pin 3 < > pin 13
pin 4 < > pin 12
pin 5 < > pin 10
pin 6 < > pin 11
pin 15 < > pin 2
pin 13 < > pin 3
pin 12 < > pin 4
pin 10 < > pin 5
pin 11 < > pin 6
pin 25 < > pin 25 (Ground-Ground)
Pentru realizarea lucrrii de laborator se vor conecta dou calculatoare cu
ajutorul cablului cu apte fire pe interfeele seriale COM 2 i cu ajutorul cablului cu
unsprezece fire pe LPT1.

2.2. Realizarea legturii prin program (software)

Realizarea legturii software ntre cele dou calculatoare presupune instalarea
driver-ului (programul de comunicaie) pe calculatorul client i lansarea programului
intersvr.exe pe calculatorul file server.
Instalarea driver-ului de comunicaie se face prin adugarea unei linii n fiierul
config.sys care se gsete n directorul rdcin al discului C: i care este fiierul de
configurare al sistemului, citit la lansarea sistemului de operare. n acelai timp trebuie
s ne asigurm c n acest fiier comanda: LASTDRIVE=n are valoarea n suficient de
mare ca discurile calculatorului server s poat fi indirectate. De exemplu, pentru
situaia prezentat mai sus, n fiierul config.sys al calculatorului client comanda
LASTDRIVE trebuie s fie: LASTDRIVE=F
Comanda LASTDRIVE informeaz sistemul de operare care este numrul
maxim de uniti disc care pot fi instalate.
Instalarea driver-ului de comunicaie presupune, aa cum s-a artat, adugarea la
sfritul fiierului config.sys a liniei urmatoare:

DEVICE=[drive:][path]INTERLNK.EXE [/DRIVES:n] [/NOPRINTER]
[/COM][:][n|address]] [/LPT[:][n|address]] [/AUTO] [/NOSCAN] [/LOW]
[/BAUD:rate] [/V]

n care parametri sunt:

[drive:][path]
Specific localizarea fiierului INTERLNK.EXE (de obicei C:\DOS\)

Comutatoare (switches):

/DRIVES:n


193
Specific numrul de discuri indirectate. Valoarea implicit este 3. Dac se specific
valoarea zero atunci vor fi indirectate numai imprimantele.

/NOPRINTER
Specific faptul c imprimantele nu vor fi indirectate la instalarea INTERLNK.EXE.
Dac acest comutator nu este specificat atunci vor fi indirectate toate imprimantele
gsite pe server.

/COM[:][n|address]
Specific portul serial care va fi utilizat pentru transferul de date.
Parametrul n specific numrul portului serial iar address specific adresa portului
serial.
Dac omitei numrul portului sau adresa, programul interlnk de pe calculatorul client
citete toate porturile seriale i alege primul port serial pe care-l gsete conectat la
server.
Dac punei numai opiunea /COM i omitei opiunea /LPT atunci calculatorul client
caut numai porturile seriale.
Implicit programul interlnk va citi toate porturile seriale i paralele.

/LPT[:][|address]
Specific portul paralel care va fi utilizat pentru transferul de date.
Parametrul n specific numrul portului paralel iar address specific adresa portului
paralel.
Dac omitei numrul portului sau adresa programul, interlnk de pe calculatorul client
citete toate porturile paralele i alege primul port paralel pe care-l gsete conectat la
server.
Dac punei numai opiunea /LPT i omitei opiunea /COM atunci calculatorul client
caut numai porturile paralele.
Implicit programul interlnk va citi toate porturile seriale i paralele.

/AUTO
Instaleaz driver-ul n memorie numai cnd calculatorul client poate stabili o legtur cu
server-ul, atunci cnd calculatorul client este pornit.
Implicit driver-ul este instalat n memorie chiar dac calculatorul client nu poate stabili
o legtur cu calculatorul server.

/NOSCAN
Instaleaz interlnk.exe n memorie dar mpiedic stabilirea unei legturi ntre client i
server n timpul configurrii sistemului la ncrcarea sistemului de operare.
Implicit calculatorul client ncearc stabilirea unei legturi cu calculatorul server
imediat dup instalarea driver-ului interlnk.exe.

/LOW
ncarc driver-ul de comunicaie n memoria convenional chiar dac memoria nalt
este liber.
Implicit interlnk.exe este ncrcat n memoria nalt dac aceasta este liber.


194

/BAUD:rate
Seteaz valoarea maxim a vitezei de transfer pentru interfaa serial.
Valorile permise pentru viteza de transmisie sunt: 9600, 19200, 38400, 57600, i
115200.
Valoarea implicit a vitezei de transfer este 115200.

/V
Previne conflictele cu ceasul calculatorului.
Aceast opiune se va pune dac avei o conexiune serial ntre dou calculatoare i unul
dintre ele se oprete n timp ce se acceseaz prin interlnk o unitate de disc sau o
imprimant.

Pentru realizarea acestei lucrri de laborator se va scrie n fiierul cvonfig.sys al
calculatorului client, la sfritul fiierului, urmtoarea linie:

device=c:/dos/interlnk /noprinter /com:2 /baud:9600 /v
Dup repornirea calculatorului, prin apsarea simultan a tastelor
CTRL+ALT+DEL se va constata c fa de situaia anterioar, au mai aprut
suplimentar trei uniti de disc care nu conin nici un fiier.
n acest moment se poate stabili o legtur prin lansarea pe calculatorul server a
programului intersvr.exe. Sintaxa instruciunii intersvr.exe este:

INTERSVR [drive:]...]] [/X=drive:[...]] [/LPT:[n|address]] [/COM:[n|address]]
[/BAUD:rate] [/B] [/V]

Pentru copierea fiierelor de pe un calculator pe altul se va folosi comanda

INTERSVR /RCOPY

n care parametri sunt:

[drive:][path]
Specific localizarea fisierului INTERSVR.EXE (de obicei C:\DOS\)

Comutatoare (switches):

/X=drive:
Specific litera sau literele unitilor de disc care nu vor fi redirectate.
n acest fel se poate limita accesul calculatorului client la unele discuri de pe server.
Implicit toate unitile de disc ale serverului vor fi redirectate.

/LPT:[n|address]
Specific portul paralel care va fi utilizat pentru transferul de date.
Parametrul n specific numrul portului paralel iar address specific adresa portului
paralel.


195
Dac omitei numrul portului sau adresa, programul intersvr de pe calculatorul server
citete toate porturile paralele i alege primul port paralel pe care-l gsete conectat la
client.
Dac punei numai opiunea /LPT i omitei opiunea /COM atunci calculatorul server
caut numai porturile paralele.
Implicit programul intersvr va citi toate porturile seriale i paralele.

/COM:[n|address]
Specific portul serial care va fi utilizat pentru transferul de date.
Parametrul n specific numrul portului serial iar address specific adresa portului
serial.
Dac omitei numrul portului sau adresa, programul intersvr de pe calculatorul server
citete toate porturile seriale i alege primul port serial pe care-l gsete conectat la
client.
Dac punei numai opiunea /COM i omitei opiunea /LPT atunci calculatorul server
caut numai porturile seriale.
Implicit programul interlnk va citi toate porturile seriale i paralele.

/BAUD:rate
Seteaz valoarea maxim a vitezei de transfer pentru interfaa serial.
Valorile permise pentru viteza de transmisie sunt: 9600, 19200, 38400, 57600, i
115200.
Valoarea implicit a vitezei de transfer este 115200.

/B
Afieaz ecranul intersvr n alb-negru. Implicit afiarea se face n culori.

/V
Previne conflictele cu ceasul calculatorului.
Aceast opiune se va pune dac avei o conexiune serial ntre dou calculatoare i unul
dintre ele se oprete n timp ce se acceseaz prin interlnk o unitate de disc sau o
imprimant.

/RCOPY
Programul intersvr realizeaz copierea fiiere de pe un calculator pe altul, dac cele
dou calculatoare sunt legate printr-un modem nul, pe interfaa serial cu un cablu cu 7
fire i comanda MODE este disponibil pe calculatorul pe care ai instalat interlnk.exe.

n lucrarea de laborator, pe calculatorul server, se va da comanda:

intersvr /com:2 /baud:9600 /v

Dup lansarea programului intersvr cele dou calculatoare sunt conectate
mpreun.
Pentru redirectarea unei uniti de disc a serverului la o unitate client, altfel dect
s-a fcut prin indirectarea implicit se va proceda n felul urmtor: s presupunem c


196
dorim indirectarea unitii de disc c: de pe server la unitatea de disc e: a clientului;
comanda care se d pe calculatorul client, este urmtoarea:

interlnk e:=c:

Pentru ncetarea indirectrii se d comanda pe calculatorul client:

interlnk e:=

3. Desfurarea lucrrii de laborator

Pentru realizarea lucrrii de laborator se vor conecta mpreun dou calculatoare
n modul prezentat mai sus.
Cu ajutorul utilitarului NORTON se vor copia fiiere de pe calculatorul server
pe calculatorul client i invers.
Referatele de laborator vor conine informaiile suplimentare despre aceste
comenzi, obinute cu comanda help i modul n care rspunde utilitarul NORTON.
Se va crea un program scurt in C++ pe calculatorul server i apoi acest program
va fi lansat de pe calculatorul client. Referatul va conine observaiile fcute.


197




Laboratorul nr. 3

Utilizarea interfeei paralele

n cadrul acestui laborator se va folosi placa P-board de interfa cu portul
paralel al calculatorului n scopul realizrii mai multor experimente privind transmisia
paralel.
Imaginea plcii P-board este urmtoarea:
4
3
2
1
5



















Placa U-Board se va conecta direct la calculator prin intermediul portului paralel
(1) i n plus are un circuit de buffer pentru prevenirea apariiei erorilor de transmisie.
De asemenea placa conine circuit de conversie pentru magistral I2C. Ea asigur 3
porturi pentru transferul semnalului de la portul paralel.
1. Data Port (2) are 8 pini de semnal denumii D0 D7. Este un port numai de
ieire a datelor. Toate semnalele de la portul paralel sunt transmise la acest conector.
Aceste semnale sunt asigurate i la portul P-BUS (3).
2. Control port (4) conine 4 pini de semnal denumii C0 C3. C1 i C3 sunt
pini cu logic invers. Este un port de ieire identic ca Data Port. Pinii sunt prescrii n
standardul UIC-10 dar sunt utilizai numai 4 pini i combinaii de semnale n P-BUS.
n plus pinii portului de control sunt utilizai ca pini de semnal ai magistralei
I2C. C1 pentru controlul SCL(Serial clock), C0 controlul SDA (Serial data output).


198
3. Status port (3) are 5 pini denumii S3 S7. Pinii sunt prescrii n standardul
UIC-10 dar sunt utilizai numai 5 pini i combinaii de semnale n P-BUS. n plus pinul
S7 este utilizat ca pin de semnal ai magistralei I2C.
P-Board necesit o tensiune de alimentare de 9-12V/ 500 mA de la o surs
extern aplicat prin intermediul conectorului 5. Placa conine un circuit stabilizator de
tensiune de 5 V, necesar alimentrii circuitelor de pe plac sau a altor plci conectate
prin intermediul porturilor P-BUS, DATA BUS i I2C.



Experimentul nr. 1

Trimiterea de date de ieire utiliznd programul Visual BASIC
prin portul de date al plcii P-Board

Pentru realizarea experimentului se va folosi placa P-Board, placa EX-01 care
conine un afiaj cu leduri pe 2x8 bii, un calculator care s aib instalat programul
Visual BASIC V5.0 sau mai nou i cablul de conexiune IDC-10.
Experimentul presupune realizarea aprinderii i stingerii ledurilor de pe placa
EX-01 prin comenzi date prin intermediul softului Visual BASIC, transmise prin
intermediul portului paralel al calculatorului i a plcii P-Board utiliznd portul DATA
BUS.











Placa EX-01
Placa EX-03


Procedura de execuie a experimentului:

1. Se conecteaz placa P-Board la portul paralel al calculatorului i cu placa
EX-01 utiliznd cablul IDC-10 prin intermediul portului DATA BUS.
2. Se pornete calculatorul i se lanseaz aplicaia Visual BASIC.
3. Din meniul Project al softului selectai Add File pentru includerea fiierului
INPOUT32.BAS n proiect.
4. Plasai dou butoane de comand n fereastra formei Form1, ca n figur





199


5. Dai dublu click pe butonul Command 1 pentru introducerea urmtorului cod
surs n View Code menu :
Private Sub Command1_Click()
Out &H378, &HFF
End Sub
6. Aceiai operaie trebuie efectuat i pentru butonul Command2:
Private Sub Command2_Click()
Out &H378, 0
End Sub
7. Conectai placa P.Board la sursa de tensiune.
8. Executai programul. Dai click pe butonul Command1. Observai efectul
acestei comenzi asupra ledurilor de pe placa EX-01. Toate ledurile se vor
aprinde.
9. Dai click pe butonul Command2. Observai efectul acestei comenzi asupra
ledurilor de pe placa EX-01. Toate ledurile se vor stinge.
Explicai aceste comenzi plecnd de la faptul c &H378 este adresa portului
DATA exprimat n baz 16(378) iar &HFF semnalul trimis de aprindere a
ledurilor (FF 1111 1111, 1 LED aprins, 0 LED stins).
10. Dac experimentul s-a desfurat cu succes, schimbai valoarea trimis spre
placa EX-01, de exemplu OUT &H378, &H55. Ledurile vor fi aprinse i
stinse alternativ deoarece 55 n baz 16 este 01010101 n baz 2.

Experimentul nr. 2

Trimiterea de date de ieire utiliznd programul Visual BASIC
prin portul de control al plcii P-Board


Pentru realizarea experimentului se va folosi placa P-Board, placa EX-01 care
conine un afiaj cu leduri pe 2x8 bii, un calculator care s aib instalat programul
Visual BASIC V5.0 sau mai nou i cablul de conexiune IDC-10.


200
Experimentul presupune realizarea aprinderii i stingerii ledurilor de pe placa
EX-01 prin comenzi date prin intermediul softului Visual BASIC, transmise prin
intermediul portului paralel al calculatorului i a plcii P-Board utiliznd portul
CONTROL BUS.

Procedura de execuie a experimentului:

1. Se conecteaz placa P-Board la portul paralel al calculatorului i cu placa
EX-01 utiliznd cablul IDC-10 prin intermediul portului CONTROL BUS.
2. Se pornete calculatorul i se lanseaz aplicaia Visual BASIC.
3. Se utilizeaz programul de la experimentul 1 care se modic n felul urmtor.
4. Dai dublu click pe butonul Command 1 pentru introducerea urmtorului cod
surs n Viev Code menu :
Private Sub Command1_Click()
Out &H37A, &HF4
End Sub
5. Aceiai operaie trebuie efectuat i pentru butonul Command2:
Private Sub Command2_Click()
Out &H37A, &HB
End Sub
6. Conectai placa P.Board la sursa de tensiune.
7. Executai programul. Dai click pe butonul Command1. Observai efectul
acestei comenzi asupra ledurilor de pe placa EX-01. Numai 4 leduri se vor
aprinde deoarece portul de control are numai 4 bii corespunztori pinilor C0
C3.
8. Dai click pe butonul Command2. Observai efectul acestei comenzi asupra
ledurilor de pe placa EX-01. Toate ledurile se vor stinge deoarece C0, C1 i
C3 sunt pini cu logic invers.

Trimiterea datelor prin Control port este similar cu trimiterea prin Data port cu
diferena c cele dou porturi au adrese diferite (&H37A i &H378). Alt diferen este
dat de numrul diferit de pini de date: 4 corespunztor celor 4 bii inferiori la Control
port i 8 la Data port. Pinii C0, C1 i C3 ai portului de control sunt cu logic invers.

Experimentul nr. 3

Citirea de date utiliznd portul STATUS al plcii P-Board
i programul Visual BASIC

Pentru realizarea experimentului se va folosi placa P-Board, placa EX-03 care
conine 16 comutatoare logice de semnal, un calculator care s aib instalat programul
Visual BASIC V5.0 sau mai nou i cablul de conexiune IDC-10.
Experimentul presupune citirea unei informaii trimis de pe placa EX-03 prin
intermediul softului Visual BASIC, transmis prin intermediul portului paralel al
calculatorului i a plcii P-Board utiliznd portul STATUS .
Procedura de execuie a experimentului:


201

1. Se conecteaz placa P-Board la portul paralel al calculatorului i cu placa
EX-03 utiliznd cablul IDC-10 prin intermediul portului STATUS INPUT.
2. Se pornete calculatorul i se lanseaz aplicaia Visual BASIC.
3. Realizai o form, plasai un buton de comand i o csu de text necesar
afirii datelor citite.


4. Adugai fiierul Inpout32.dll n program.
5. Dai dublu click pe butonul Command 1 pentru introducerea urmtorului cod
surs n View Code menu :
Private Sub Command1_Click()
Text1.Text = Inp(&H379)
End Sub
6. Conectai placa P-Board la sursa de tensiune.
7. Executai programul. Schimbai valoarea logic generat de placa EX-03
prin intermediul comutatoarelor logice i observai efectul n fereastra de
text.
Dac la placa EX-03 se efectueaz modificri la comutatoarele D3-D7 valoarea
se va schimba n csua de text dar modificrile fcute la comutatoarele D0-D2 nu vor
avea nici un efect deoarece portul STATUS va transmite numai primii 5 bii superiori
din cei 8 prin pinii S3-S7.
8. Pentru a se realiza o citire mai corect a biilor transmii de la placa EX-03
se poate modifica comanda n felul urmtor
Text1.Text = Hex$ (Inp(&H379) And &HF8 Xor &H80)
Biii S0, S1 i S2 sunt 0 iar valoarea bitului S7 trebuie inversat.
9. Pentru citirea valorilor utilizatorul trebuie s de click tot timpul pe butonul
Command1. Pentru a se realiza o citire automat se poate folosi linia de
comand urmtoare:
Private Sub Timer1_Timer ()
Text1.Text = Hex$ (Inp(&H379) And &HF8 Xor &H80)
End Sub.


202

Dup ce programul ruleaz 0,5 s el va sri n subrutina Timer1_Timer () pentru a
citi valorile semnalelor de la intrare. Dac au aprut modificri ele vor fi afiate n
fereastra de text imediat.
















Pentru a realiza o vitez mai mare de citire se va seta valoarea intervalului de
timp mai mic n fereastra Properties Timer1 prezentat mai sus.



203



Laboratorul nr. 4

Comanda unui motor pas cu pas prin interfaa paralel

n cadrul acestui laborator se va experimenta comanda unui motor pas cu pas cu
ajutorul calculatorului utiliznd placa P-board de interfa cu portul paralel al
calculatorului i placa EX-05 destinat special comenzii motorului.
Placa EX-05 i motorul pas cu pas comandat sunt prezentate n figura urmtoare:
















Placa EX-05 permite comanda unui motor pas cu pas unipolar utiliznd semnale
de comand primite la conectorul DATA BUS de la portul paralel al calculatorului prin
intermediul plcii P-Board. Semnalele primite sunt transmise prin intermediul unor
optocuploare, tranzistorelor finale care comand micarea motorului.
Pentru punerea n micare a motorului pot fi folosite trei metode: rotirea cu un
pas complet, jumtate de pas sau un micropas. Pentru aceasta se pot folosi 4 bii ca date
de intrare pentru realizarea rotirii motorului.
Placa EX-05 necesit alimentare de la o surs de tensiune continu extern.

Experimentul nr. 1

Comanda unui motor pas cu pas pe o singur faz

Pentru realizarea experimentului se va folosi placa P-Board, placa EX-05 , un
calculator care s aib instalat programul Visual BASIC V5.0 sau mai nou, o surs de
tensiune continu +12 V 2A necesar alimentrii plcii EX-05, un motor pas cu pas
unipolar 12 V 100 7.5 grade/pas i cablul de conexiune IDC-10.


204
Procedura de execuie a experimentului

Datele de intrare pentru comanda pe o singur faz a motorului pas cu pas sunt
mprite n dou grupuri. Primul format din comenzile 1, 2, 4, i 8 necesare rotirii
motorului n sensul antiorar iar cellalt grup n sensul orar cu comenzile 8, 4, 2, i 1.
Aceste comenzi sunt prezentate n tabelele de mai jos.

Pas Faza 4 Faza 3 Faza 2 Faza 1
1 0 0 0 1
2 0 0 1 0
3 0 1 0 0
4 1 0 0 0
Pas Faza 4 Faza 3 Faza 2 Faza 1
1 1 0 0 0
2 0 1 0 0
3 0 0 1 0
4 0 0 0 1

Rotire la stnga Rotire la dreapta

1. Se pornete calculatorul i se lanseaz aplicaia Visual BASIC.
2. Realizai o form i editai controalele din figura urmtoare;















3. Scriei codul surs pentru butonul de comand Command1 (Left):

Private Sub Command1_Click():
Left = False
Rights = True
Do
DoEvents
Out &H378, 1
Call delay
Out &H378, 2
Call delay
Out &H378, 4
Call delay
Out &H378, 8
Call delay


205
Loop Until Lefts = True
End Sub

4. Conectai placa P-Board cu placa EX-05 cu ajutorul cablului IDC-10 prin
intermediul portului DATA BUS. Conectai motorul pas cu pas la placa EX-
05 i verificai c fazele sunt conectate corect.
5. Alimentai plcile EX-05 i P-Board .
6. Rulai programul creat.
7. Dnd click pe butonul Left, programul va trimite valorile 1, 2, 4, i 8 n
ordine. Fiecare comand este separat printr-o rutin de ntrziere. n acelai
timp, comanda Do Loop Until va verifica starea comenzii Rights .
Observai rotirea motorului.
8. n realizarea rutinei de ntrerupere pot fi utilizate mai multe metode. Una din
ele presupune utilizarea bazei de timp a calculatorului. Avantajul metodei
este c timpul de ntrziere este identic la toate calculatoarele dar
dezavantajul este dat de limitarea de vitez. Viteza de execuie a programului
ar putea s nu permit execuia unor condiii corect. Valoarea minim este de
0,01 secunde. Un program simplu pentru realizarea subrutinei este prezentat
mai jos:

Sub delay()
Times = Timer
Do
DoEvents
Loop Until Timer >= Times + 0.01
End Sub

Aceast rutin verific valoarea variabilei Timer. Aceasta este o valoare intern
a calculatorului Times + 0,01 n sec.
9. Alt metod de realizare a rutinei de ntrziere este prezentat mai jos.
Aceast metod crete viteza de lucru dar depinde de calculatorul utilizat.

Sub delay()
For i = 1 To HScroll1.Value
DoEvents
Next i
End Sub

Aceast rutin utilizeaz comanda For Next i cursorul Hscroll pentru
ajustarea vitezei. n cazul n care perioada de timp a buclei este mare i viteza
programului scade, inserai comanda Doevents n bucl.
10. Codul surs pentru butonul de comand Command2 (Rights):

Private Sub Command2_Click():
Left = True
Rights = False


206
Do
DoEvents
Out &H378, 8
Call delay
Out &H378, 4
Call delay
Out &H378, 2
Call delay
Out &H378, 1
Call delay
Loop Until Rights = True
End Sub
Operaiile i explicaiile sunt similare ca rotirea la stnga.




Experimentul nr. 2

Comanda unui motor pas cu pas pe dou faze

Pentru realizarea experimentului se va folosi placa P-Board, placa EX-05 , un
calculator care s aib instalat programul Visual BASIC V5.0 sau mai nou, o surs de
tensiune continu +12 V 2A necesar alimentrii plcii EX-05, un motor pas cu pas
unipolar 12 V 100 7.5 grade/pas i cablul de conexiune IDC-10.

Procedura de execuie a experimentului

Datele de intrare pentru comanda pe dou faze a motorului pas cu pas sunt
mprite n dou grupuri. Primul format din comenzile 9, 3, 6, i 12 necesare rotirii
motorului n sensul antiorar iar cellalt grup n sensul orar cu comenzile 12, 6, 3, i 9.
Aceste comenzi sunt prezentate n tabelele de mai jos.


Pas Faza 4 Faza 3 Faza 2 Faza 1
1 1 0 0 1
2 0 0 1 1
3 0 1 1 0
4 1 1 0 0
Pas Faza 4 Faza 3 Faza 2 Faza 1
1 1 1 0 0
2 0 1 1 0
3 0 0 1 1
4 1 0 0 1

Rotire la stnga Rotire la dreapta

1. Se pornete calculatorul i se lanseaz aplicaia Visual BASIC.
2. Realizai o form i editai controalele din figura urmtoare;





207














3. Scriei codul surs pentru butonul de comand Command1 (Left):

Dim i As Integer
Dim Lefts, Rights as Boolean
Private Sub Command1_Click():
Left = False
Rights = True
Do
DoEvents
Out &H378, 9
Call delay
Out &H378, 3
Call delay
Out &H378, 6
Call delay
Out &H378, 12
Call delay
Loop Until Lefts = True
End Sub

4. Codul surs pentru butonul de comand Command2 (Rights):

Private Sub Command2_Click():
Left = True
Rights = False
Do
DoEvents
Out &H378, 12
Call delay
Out &H378, 6
Call delay
Out &H378, 3


208
Call delay
Out &H378, 9
Call delay
Loop Until Rights = True
End Sub

5. Conectai placa P-Board cu placa EX-05 cu ajutorul cablului IDC-10 prin
intermediul portului DATA BUS. Conectai motorul pas cu pas la placa EX-
05 i verificai c fazele sunt conectate corect.
6. Alimentai plcile EX-05 i P-Board .
7. Rulai programul creat.
8. Observai rotirea motorului i facei comparaia cu experimentul 1.

Comanda motorului pas cu pas pe dou faze determin obinerea unui cuplu mai
mare la motor dar consumul de energie este mai mare.

Experimentul nr. 3

Comanda unui motor pas cu pas pentru
rotirea cu jumtate de pas

Pentru realizarea experimentului se va folosi placa P-Board, placa EX-05 , un
calculator care s aib instalat programul Visual BASIC V5.0 sau mai nou, o surs de
tensiune continu +12 V 2A necesar alimentrii plcii EX-05, un motor pas cu pas
unipolar 12 V 100 7.5 grade/pas i cablul de conexiune IDC-10.

Procedura de execuie a experimentului

Datele de intrare pentru aceast comand a motorului pas cu pas sunt mprite
n dou grupuri de cte 8 valori. Primul format din comenzile 9, 1, 3, 2, 6, 4, 12 i 8
necesare rotirii motorului n sensul antiorar iar cellalt grup n sensul orar cu comenzile
8, 12, 4, 6, 2, 3, 1 i 9. Aceste comenzi sunt prezentate n tabelele de mai jos.


Pas Faza 4 Faza 3 Faza 2 Faza 1
1 1 0 0 1
2 0 0 0 1
3 0 0 1 1
4 0 0 1 0
5 0 1 1 0
6 0 1 0 0
7 1 1 0 0
8 1 0 0 0
Pas Faza 4 Faza 3 Faza 2 Faza 1
1 1 0 0 0
2 1 1 0 0
3 0 1 0 0
4 0 1 1 0
5 0 0 1 0
6 0 0 1 1
7 0 0 0 1
8 1 0 0 1
Rotire la dreapta
Rotire la stnga




209
1. Se pornete calculatorul i se lanseaz aplicaia Visual BASIC.
2. Realizai o form i editai controalele din figura urmtoare;
















3. Scriei codul surs pentru butonul de comand Command1 (Left):

Private Sub Command1_Click():
Left = True
Rights = False
Do
DoEvents
Out &H378, 9
Call delay
Out &H378, 1
Call delay
Out &H378, 3
Call delay
Out &H378, 2
Call delay
Out &H378, 6
Call delay
Out &H378, 4
Call delay
Out &H378, 12
Call delay
Out &H378, 8
Call delay
Out &H378, 0
Call delay

Loop Until Rights = True
End Sub


210

4. Codul surs pentru butonul de comand Command2 (Rights):

Private Sub Command2_Click():
Left = False
Rights = True
Do
DoEvents
Out &H378, 8
Call delay
Out &H378, 12
Call delay
Out &H378, 4
Call delay
Out &H378, 6
Call delay
Out &H378, 2
Call delay
Out &H378, 3
Call delay
Out &H378, 1
Call delay
Out &H378, 9
Call delay
Out &H378, 0
Call delay

Loop Until Lefts = True
End Sub

5. Conectai placa P-Board cu placa EX-05 cu ajutorul cablului IDC-10 prin
intermediul portului DATA BUS. Conectai motorul pas cu pas la placa EX-
05 i verificai c fazele sunt conectate corect.
6. Alimentai plcile EX-05 i P-Board .
7. Rulai programul creat.
8. Observai rotirea motorului i facei comparaia cu experimentul 1 i 2.


Motorul se va roti mai ncet dect la experimentele 1 i 2 dar rotaia permite o
rezoluie mai bun, un pas mai mic al motorului.








211





Laboratorul nr. 5

Studiul convertorului analog numeric

n cadrul acestui laborator se va experimenta conversia unui semnal analogic ]n
semnal digital i invers cu ajutorul calculatorului utiliznd placa P-board de interfa cu
portul paralel al calculatorului i placa EX-08 ce conine circuitul PCF8591 convertor
AD/DA.
Placa EX-08 este prezentat n figura urmtoare:






















Circuitul principal al plcii PCF8591 permite achiziie de date pe 4 canale
analogice, are o ieire analogic i comunic cu alte componente prin interfaa I2C. Cei
trei pini de adres A0 A2 sunt folosii pentru programarea hardware a circuitului
privind comunicarea cu maximum 8 dispozitive. Adresele, semnalul de control i
semnalul de date spre dispozitive sau de la ele sunt transferate serial prin dou linii de
date bidirecionale I2C.
Principalele funcii ale plcii sunt urmtoarele: multiplexarea semnalului analog
de la intrare, conversie pe 8 bii analog digital i digital analog. Rata maxim de
conversie este strns legat de viteza maxim a magistralei I2C.


212
Semnalul de intrare poate fi selectat din 2 surse. Una din exterior cuplat la
conectorul de intrare iar a doua surs intern reprezentat prin rezistoarele de pe plac.
Selecia surselor se efectueaz prin jumperii JP704-JP707 de pe plac.


Interfa analogic cu portul paralel al calculatorului
prin intermediul magistralei I2C

Pentru realizarea experimentului se va folosi placa P-Board, placa EX-08 , un
calculator care s aib instalat programul Visual BASIC V5.0 sau mai nou, o surs de
tensiune continu 0-5 V cu patru ieiri , un multimetru digital i cablul de conexiune
I2C.

Procedura de execuie a experimentului 1

Experimentul presupune citirea unui semnal analogic continuu cu ajutorul plcii
EX-08. Paii urmai de control al circuitului PCF8591 sunt urmtorii:
1. Trimiterea condiiei de START
2. Trimiterea adresei - 000 (A0 A2 se conecteaz la mas) i definirea modului
de scriere (bitul LSB clear 0 R/W = 0)
3. Ateptarea condiiei ACK de la PCF8591
4. Trimiterea datelor de control spre PCF8591, 45H adic activeaz ieirea
analog. Se seteaz intrarea analog pe modul single, citire continu i ncepere
de citire a semnalului de la ADC pe canalul 1
5. Ateptarea condiiei ACK de la PCF8591
6. Trimiterea condiiei de STOP
7. Trimiterea condiiei de START
8. Trimiterea adresei - 000 (A0 A2 se conecteaz la mas) i definirea modului
de scriere (bitul LSB clear 1 R/W = 1) pentru nceperea citirii datelor de la
intrarea analog
9. Ateptarea condiiei ACK de la PCF8591
10. Citete intrarea ACD canalul 1
11. Trimite condiia MAck (Master Ack) la PCF8591
12. Citete intrarea ACD canalul 2
13. Trimite condiia MAck (Master Ack) la PCF8591
14. Citete intrarea ACD canalul 3
15. Trimite condiia MAck (Master Ack) la PCF8591
16. Citete intrarea ACD canalul 4
17. Trimite condiia MAck (Master Ack) la PCF8591
18. Trimite condiia de STOP

Toi aceti pai pot fi convertii n cod VISUALBasic dup cum urmeaz:

Read 4 analog input in continuous

Private Sub Timer1_Timer()


213
Call I2CStart
Call Send8BIT(&H90)
Call Ack
Call Send8BIT(&H45)
Call Ack
Call I2CStop
Call I2CStart
Call Send8BIT(&H91)
Call Ack
Text1.Text = (DAT * 5)/ 255
Call MAck
Text2.Text = (DAT * 5)/ 255
Call MAck
Text3.Text = (DAT * 5)/ 255
Call MAck
Text4.Text = (DAT * 5)/ 255
Call Ack
Call I2CStop
End Sub

Subrutina MAck este utilizat pentru trimiterea condiiei de confirmare de la
calculator la circuitul PCF8591. Codul ei este prezentat mai jos:

Mack subroutine
Private Sub Mack()
Out &H37A, Inp(&H37A) And &HFE SDA=0
Out &H37A, Inp(&H37A) Or 2 SDL=1
Out &H37A, Inp(&H37A) And &HFD SDL=0
Out &H37A, Inp(&H37A) Or 1 SDA=1
End Sub

Subrutinele I2CStart, I2CStop Ack i Send8BIT sunt prezentate mai jos:
Private Sub I2CStart()
Out &H37A, Inp(&H37A) Or 1 SDA=1
Out &H37A, Inp(&H37A) Or 2 SCL=1
Out &H37A, Inp(&H37A) And &HFE SDA=0
Out &H37A, Inp(&H37A) And &HFD SCL=0
End Sub
Private Sub I2CStop()
Out &H37A, Inp(&H37A) And &HFE SDA=0
Out &H37A, Inp(&H37A) Or 2 SCL=1
Out &H37A, Inp(&H37A) Or 1 SDA=1
End Sub
Private Sub Ack()
Out &H37A, Inp(&H37A) Or 1 SDA=1
Out &H37A, Inp(&H37A) Or 2 SCL=1


214
Out &H37A, Inp(&H37A) And &HFD SCL=0
End Sub

n cod se seteaz 4 csue de text care vor afia datele de pe cele 4 canale
analoge ale ADC. Valorile reprezint tensiunile citite de la intrrile circuitului
PCF8591. Imaginea formei create n VISUALBasic este urmtoarea:



















Modul de desfurare practic a experimentului


1. Se seteaz adresa 000 la circuitul PCF8591 cu ajutorul jumperilor de pe plac
2. Se conecteaz placa P-Board cu placa EX-08 prin intermediul cablului I2C
3. Se conecteaz placa P-Board la portul paralel al calculatorului i se alimenteaz
4. Se pornete calculatorul se lanseaz aplicaia Visual BASIC se creeaz forma
precedent i se scrie programul.
5. Se deschide fiierul Lab12A.vbp
6. Se seteaz jumperii pentru selectarea modului TEST CH-1 intrare analogic (se
selecteaz sursa analog de pe plac, vezi figura de mai jos)
7. Se ajusteaz rezistorul variabil CH-1
8. Se observ valoarea tensiunii ce se modific n csua Text1
9. Testai i celelalte intrri CH-2 CH-4. Se urmresc paii 7 i 8 precedeni
observnd modificrile valorilor din csuele de text: Text2 pentru CH-2, Text3
pentru CH-3, Text4 pentru CH-4
10. Se seteaz jumperii pentru test la toate canalele
11. Se ajusteaz rezistoarele pentru fiecare canal n parte i se observ valorile din cele
4 csue de text.



215














Procedura de execuie a experimentului 2

Scrierea de date pe 8 bii n modulul DAC a circuitului PCF8591. Paii ce
trebuie urmai pentru desfurarea experimentului sunt urmtorii:

1. Trimiterea condiiei de START
2. Trimiterea adresei - 000 (A0 A2 se conecteaz la mas) i definirea modului
de scriere (bitul LSB clear 0 R/W = 0)
3. Ateptarea condiiei ACK de la PCF8591
4. Trimiterea datelor de control spre PCF8591, 44H adic activeaz ieirea
analog.
5. Ateptarea condiiei ACK de la PCF8591
6. Trimitere de date n intervalul 0-255 la ieirea analog
7. Ateptarea condiiei ACK de la PCF8591
8. Trimite condiia de STOP


Toi aceti pai pot fi convertii n cod VISUALBasic dup cum urmeaz:

Private Sub Text5_Change()
If Val(Text5.Text) > 5 Then Text5.Text = 5
Call I2CStart
Call Send8BIT(&H90)
Call Ack
Call Send8BIT(&H44)
Call Ack
Call Send8BIT(Val(Text5.Text) * 51.2)
Call Ack
Call I2CStop
End Sub



Se conecteaz cu placa P-
Board utiliznd cablul I2C
+ + + +
+
+
+
+
+
+
+
TEST CH-1
TEST CH-2
TEST CH-3
TEST CH-4
CH-1
CH-2
CH-3 CH-4
+
-
ANALOG OUTPUT
ANALO
G
EX-08
-
+
Alimentare de
la o surs
continu + 5V


216




















Aceast rutin utilizeaz csua de text Text5 pentru definirea datei ce va trimis
circuitului PC8591.

9. Se seteaz adresa 000 la circuitul PCF8591 cu ajutorul jumperilor de pe plac
10. Se conecteaz placa P-Board cu placa EX-08 prin intermediul cablului I2C
11. Se conecteaz placa P-Board la portul paralel al calculatorului i se alimenteaz
12. Se pornete calculatorul se lanseaz aplicaia Visual BASIC
13. Se deschide fiierul Lab12A.vbp
14. Introducei o valoarea a tensiunii n csua Text5 (valoarea maxim 5)
15. Utilizai multimetrul digital, setat pentru msurarea unei tensiuni continue,
pentru msurarea tensiunii la ieirea analog a plcii EX-08 i comparai-o cu
valoarea introdus n csua de text (vezi figura urmtoare)
Multim. gigital

+ + + +
+
+
+
+
+
+
+
EX-08
Se conecteaz cu placa P-
Board utiliznd cablul I2C
TEST CH-1
TEST CH-2
TEST CH-3
TEST CH-4
+
-
ANALOG OUTPUT
ANALOG
INPUT
- +












CH-1
CH-2
CH-3 CH-4



217

16. Apoi conectai ieirea analog la intrarea CH-1 a plcii EX-08 ca n figura
urmtoare
17. Introducei o valoarea a tensiunii n csua Text5 (valoarea maxim 5)
18. Observai modificarea valorii din interiorul csuei de text Text1. Este n
concordan cu valoarea din Text5?
















+ + + +
+
+
+
+
+
+
+
EX-08
Se conecteaz cu placa P-
Board utiliznd cablul I2C
TEST CH-1
TEST CH-2
TEST CH-3
TEST CH-4
+
-
ANALOG OUTPUT
ANALOG
INPUT
CH-1
CH-2
CH-3 CH-4
La paii 14 i 15 se testeaz performana circuitului PCF8591 privind conversia
semnalului. Valoarea introdus n csua de text Text5 este convertit n semnal digital
i apoi trimis circuitului ce realizeaz conversia semnalului digital n semnal analogic.
Semnalul analogic este trimis la ieirea analogic a plcii EX-08.
La paii 17 i 18 se testeaz funcia ADC i apoi DAC a circuitului PCF8591.
Programul va converti valoarea introdus n csua de text Text5 n semnal digital i o
trimite modului DAC a circuitului ce realizeaz conversia n semnal analogic. Dup
aceea aceast tensiune este trimis napoi pe intrarea analog modulului ADC ce
realizeaz conversia n semnal digital vizualizat apoi n csua de text Text1.

















218



Laboratorul nr. 6

Programe pentru determinarea structurii
i a performanelor sistemului de calcul

n cadrul acestui laborator vor fi prezentate mai multe aplicaii utile, necesare
pentru determinarea structurii hardware a unui sistem de calcul precum i a
performanelor componentelor n parte sau a sistemului pe ansamblu.
Prima aplicaie care poate fi folosit pentru determinarea structurii hardware a
unui sistem de calcul, este o component a sistemului de operare folosit, n cazul de fa
Microsoft Windows XP, denumit System Information. Lansarea n execuie se face
normal ca i orice aplicaie a sistemului urmnd calea Start Programs Accessories
System Tools - System Information i dnd click. Interfaa acestei aplicaii este
prezentat n figura urmtoare.




















Aplicaia la deschidere prezint informaii generale despre sistemul folosit
prezentate n panoul din dreapta al ferestrei, dar pentru informaii mai detaliate privind
componentele sistemului se poate interoga aplicaia, utiliznd structura arborescent din
panoul din stnga al ferestrei, dnd click pe aceea component.
Din punct de vedere numai al perifericelor care intr n componena sistemului i
cel mai important al controlului lor (instalare, dezinstalare, verificare funcionare) se
poate folosi aplicaia System a sistemului de operare care poate fi lansat n mai multe
moduri, de exemplu din fereastra Control Panel.


219

























Se va da click pe butonul Device
Manager din panoul Hardware a
aplicaiei i se va deschide o nou
fereastr.
Printr-o structur arborescent,
ne sunt prezentate perifericele din
componena sistemului. Starea
fiecrui periferic poate fi aflat
interognd aplicaia prin
comanda Properties.
Dac o component nu
funcioneaz bine sau sistemul nu
a recunoscut-o i din punct de
vedere al driverelor necesare,
aplicaia semnalizeaz grafic
acest lucru afind semnul
exclamrii ntr-un cerc galben n
dreptul componentei.





220

Sistemul de operare Microsoft
Windows XP, are n
componen i alte aplicaii
utile privind afiarea
componenei hardware a
sistemului i mai ales a
testrii performanelor
componentelor de exemplu:
Computer Management,
Performance, Services etc.
Tot n scopul determinrii
structurii i a performanelor
unui sistem de calcul pot fi
utilizate urmtoarele
programe: EVEREST i
SiSoftware Sandra. Aceste
dou programe au un avantaj
fa de aplicaiile sistemului
de operare deoarece ele
integreaz att partea de
afiare a structurii sistemului
de calcul precum i de testare a performanelor componentelor sistemului.
Cele dou programe menionate sunt prezentate n figurile urmtoare:
























221
























n cadrul acestui laborator studenii trebuie s utilizeze aplicaiile prezentate i s
verifice structura sistemului utilizat, informaiile obinute fiind trecute n referatul de
laborator. n plus, se va lansa aplicaia Benchmark de verificare a performanelor
sistemului de calcul a fiecrui soft n parte i se va face o comparaie ntre rezultatele
obinute.



















222



Laboratorul nr. 7

Metode de testare a memoriei

n cadrul acestui laborator vor fi prezentate i folosite mai multe programe care
permit testarea integritii memoriei interne a sistemului de calcul precum i
performanele acesteia.
Pentru testarea integritii unitilor de memorie intern pot fi folosite mai multe
softuri de exemplu Memtest sau Mem86 ambele fiind gratuite. Pentru ca rezultatul
testrii s fie ct mai corect ambele softuri necesit ca ele s fie date n execuie fr ca
sistemul de operare al calculatorului s intre n execuie (s nu booteze). Pentru aceasta
programele trebuie s fie memorate pe o unitate de memorie extern, CD sau dischet
bootabil. Pentru a realiza o dischet bootabil se d comanda de formatare a dischetei,
n MSDOS Prompt , cu opiunea de copiere a fiierelor sistem minimale IO.SYS,
MSDOS.SYS i COMMAND.COM
Ex: Format a: /S
sau utiliznd aceeai comand sub sistemul de operare MS XP bifnd n fereastr
opiunea de includere a fiierelor sistem dup operaia de formatare a dischetei.
Pentru a putea rula aplicaia de pe dischet este nevoie s se modifice n
fereastra de setri a BIOS-ului, opiunea de cutare prima dat a sistemului de operare
pe unitatea de dischet, astfel nct la o repornire a calculatorului, acesta s ncarce
sistemul de pe ea i apoi s se lanseze aplicaia respectiv de verificare a integritii
memoriei interne.
Deoarece pentru execuia acestei aplicaii se folosesc mai muli algoritmi, durata
testului poate dura ntre zeci de minute i ore, fiind influenat i de caracteristicile
hardware ale sistemului de calcul. La terminare testrii aplicaia comunic utilizatorului
dac memoria RAM a sistemului este n stare bun de funcionare sau dac au aprut
erori n funcionarea acesteia.
Din punct de vedere al performanelor memorie interne a sistemului pot fi
utilizate cu succes i programele prezentate n lucrarea de laborator precedent,
EVEREST i SiSoftware Sandra. Ambele programe includ i aplicaiile Benchmark ce
permit testarea memorie interne.
Ferestrele de lansare a acestei aplicaii pentru ambele programe precum i un
exemplu de rulare a unui test pentru verificarea latenei memoriei sunt prezentate n
figurile urmtoare.









223































Iar pentru




































Un alt program ce poate fi utilizat pentru testarea memorie interne este
RightMark Memory Analyzer, special realizat pentru acest lucru. n figurile urmtoare
fiind prezentate ferestrele de execuie a aplicaiilor de testare:























224


225
























n timpul orei de laborator studenii vor utiliza programele prezentate pentru
testarea memorie interne, i vor consemna n referatul de laborator rezultatele obinute,
privind performanele memoriei sistemului de calcul, raportate de fiecare program
utilizat.




226





Bibliografie




1. Athanasiu Irina, Panoiu Alexandru, - Microprocesoarele 8086, 286, 386, Editura
TEORA, Bucureti, 1992;
2. Adrian Petrescu .a. Microcalculatoarele M18, M18B, M118, Editura Tehnic,
Bucureti, 1984;
3. Andronescu Gh., - Sisteme Digitale, Editura MatrixRom, Bucureti, 2002;
4. Baluta Gheorghe, - Circuite logice i structuri numerice. Proiectare i aplicaii.
Editura MatrixRom, Bucureti, 2002;
5. Blakeslee Thomas, Proiectarea cu circuite logice MSI i LSI standard,
EdituraTehnic, Bucureti, 1988;
6. Bogdanov Ivan, - Microprocesorul n comanda acionrilor electrice, Editura
FACLA, Timioara, 1989;
7. Budiu Mihai, Cache-uri, Cornell University, USA, 1999;
8. Cpna Octavian, - Proiectarea cu microcalculatoare integrate, Editura Dacia, Cluj,
1992;
9. Cristian Lupu, tefan Stncescu, - Microprocesoare Circuite Proiectare, Editura
Militar, Bucureti, 1986;
10. Cuculescu I., - Analiza numerica, Editura Tehnic, Bucureti, 1967;
11. Dancea Ioan, - Microprocesoare. Arhitectura intern, programare, aplicaii. Editura
Dacia, Cluj-Napoca, 1979;
12. Davidoviciu A., s.a., - Minicalculatoarele i microcalculatoarele n conducerea
proceselor industriale, Editura Tehnic, Bucureti, 1983;
13. Ionescu D. - Codificare si coduri, Editura Tehnic, Bucureti, 1981;
14. Lupu C., s.a. - Microprocesoare. Aplicaii, Editura Militar, Bucureti 1982;
15. Marinescu D. Naicu S., - Microcontrolerul 80C32. Manual de utilizare. Editura
Tehnic, Bucureti, 1998;
16. Milici Dan, - Circuite numerice. Introducere n sistemele de calcul, Editura
MatrixRom, Bucureti, 2003;
17. Pop Eugen, s.a. - Metode n prelucrarea numeric a semnalelor, Editura FACLA,
Timioara, 1989;
18. Popescu D., Popescu C., - Circuite digitale elementare, Editura MatrixRom,
Bucureti, 2003;
19. Potorac D.A., - Bazele proiectrii circuitelor numerice, Editura MatrixRom,
Bucureti, 2002;


227
20. Puiu-Berizinu M., Rotar Dan An Optimal Control Method of the PWM Inverter
used in Electrical Drives with Induction Motor - MIPRO99 CONFERENCE, IEEE
Region 8, CROAIA 1999.
21. Puiu Berizinu Mihai, Rotar Dan Using DSP for PWM Inverter Command by the
Generatrix Wave Sampling Principle, Conferina Naional de Acionri Electrice
CNAE 2000, Iai, 12-14 octombrie 2000, publicat n Buletinul Institutului
Politehnic Iai, Tomul XLVI (L), Fasc. 5, ISSN 0258-9109, pp. 72-77
22. Radu O., Sndulescu Gh., - Filtre numerice. Aplicaii, Editura Tehnic, Bucureti,
1979;
23. Rotar Dan - Harmonic analysis based on microcomputers, Efficiency, Cost,
Optimization, Simulation and Environmental Aspects of Energy Systems and
Processes Congress ECOS98, ISBN 2-905-267-29-1, Nancy, France, pp. 1173-
1180, 1998.
24. Rotar Dan - Protection of the Microcomputer-based Pulse-Width Modulated
Inverters, 17th International Conference on COMPUTERS IN TECHNICAL
SYSTEMS, Proceedings Volume 2, ISBN 953-6042-57-6, pp. 67-70, CROAIA
1998.
25. Rotar Dan, Ababei tefan - Determinarea consumului energetic prin contorizare
numeric, Conferina Naional de Energetic Industrial, Bacu, 1998, Editura
Plumb, ISBN 973-9362-16-8, pp. 170-173.
26. Rotar Dan Sisteme de msur digitale a energiei electrice Probleme de
management i conservare a energiei, Craiova, ISBN 973-0-00917-1, pp. 21-28,
1999
27. Rotar Dan Programarea DSP, Conferina Naional de Energetic Industrial
CNEI 2000 MILENIUM, 10-11 noiembrie 2000, Bacu, Editura ALMA MATER,
ISBN 973-99703-4-6, pp. 84-87
28. Rotar Dan Regulator numeric pentru procesorul digital de semnal TMS320F240,
Conferina Naional de Energetic Industrial CNEI 2000 MILENIUM, 10-11
noiembrie 2000, Bacu, Editura ALMA MATER, ISBN 973-99703-4-6, pp. 88-91
29. Rotar Dan, Ababei tefan, Sorin Popa, Communication system for DSP and PC
compatible computer, Romanian Academy, Branch office of Iai, MCOM-8, 2002,
ISSN 1224-7480, pp. 413-418.
30. Dan Rotar, Petru Livini, Ababei tefan, Digital filtering with digital signal
processing controller, Romanian Academy, Branch office, MCOM-9 vol. 2, 2003,
ISSN 1224-7480, pp. 207-210.
31. Somnea Dan, Vldu Teodor, - Programarea in assembler. Editura Tehnic,
Bucuresti, 1992;
32. Stnil Octavian, - Noiuni i tehnici de matematic discret, Editura tiinific i
Enciclopedic, Bucureti, 1985;
33. Stanomir D., Stnil O., - Metode matematice n teoria semnalelor, Editura
Tehnic, Bucureti 1980;
34. Suciu Marcel, Popescu Dumitru, Ionescu Traian, - Microprocesoare,
microcalculatoare i roboi n automatizri industriale, Editura Tehnic, Bucureti,
1986
35. Sztojanov I., s.a. - De la poarta TTL la microprocesor vol I, II, Editura Tehnic,
Bucureti, 1987;


228
36. Tnase Ady, Gitan V., - Familia de procesoare pentru prelucrarea numeric a
semnalelor ADSP-21, Editura MatrixRom, Bucureti, 2004;
37. Teodorescu Dan, - Introducere n microelectronic, Editura Facla, Timioara, 1985;
38. Teodorescu Dan, - Automatizri microelectronice, EdituraTehnica, Bucureti, 1988:
39. Toacse Gh., - Introducere n microprocesoare, Editura tiinific i Enciclopedic,
Bucureti, 1986;
40. Toace Gheorghe, Nicula Dan Electronic digital. Dispozitive. Circuite.
Proiectare., Editura Tehnic, Bucureti, 2005;
41. Zoican Sorin - Arhitectura sistemelor de calcul,Universitatea Politehnic, Bucureti,
1998;
42. Zoican Sorin, Popovici C. Eduard - Arhitectura microprocesoarelor. Indrumar de
laborator, Universitatea Politehnic, Bucureti, 1997;
43. *** TMS320C24x DSP Controllers - Reference Set: Vol.1, Texas Instruments Inc,
1997;
44. *** TMS320C24x DSP Controllers - Reference Set: Vol.2, Texas Instruments Inc,
1997;
45. *** AT90S3213 Microcontroller, Atmel, 1998;
46. *** PIC 16F97x Microcontroller, Microchip, 2005;

Vous aimerez peut-être aussi