0% au considerat acest document util (0 voturi)
21 vizualizări325 pagini

UPUS

Încărcat de

Alexandru Pisca
Drepturi de autor
© All Rights Reserved
Respectăm cu strictețe drepturile privind conținutul. Dacă suspectați că acesta este conținutul dumneavoastră, reclamați-l aici.
Formate disponibile
Descărcați ca PDF, TXT sau citiți online pe Scribd
0% au considerat acest document util (0 voturi)
21 vizualizări325 pagini

UPUS

Încărcat de

Alexandru Pisca
Drepturi de autor
© All Rights Reserved
Respectăm cu strictețe drepturile privind conținutul. Dacă suspectați că acesta este conținutul dumneavoastră, reclamați-l aici.
Formate disponibile
Descărcați ca PDF, TXT sau citiți online pe Scribd

Microprocesoare și Microsisteme

Curs 1

INFORMAŢIA ÎN SISTEMELE NUMERICE

[Link]. Daniel Sticea

© [Link]. Marcel Constantin RĂŢOI


Obiectivele cursului

• Bazele sistemelor cu microprocesor


• Arhitectura calculatorului din punctul de vedere al
programatorului
• Interactiunea hard-soft
Bibliografie

• I. Stojanov s.a. De la poarta TTL la microprocesor, E.T. Bucureşti


1987,
• C. Lupu, Microprocesoare pe 2-4-8 biţi, Ed. Militară, Bucureşti, 1995
• C. Burileanu, Arhitectura microprocesoarelor, Ed Denix, Bucureşti,
1994
• L. Kreindler, R. Giuclea, Bazele Microprocesoarelor, MatrixRom,
Bucuresti, 1997
• M. Cocan, Bogdana Pop, Bazele matematice ale sistemelor de calcul,
Ed Albastră,Cluj, 2000
• Michael Barr, Anthony Massa, Programming Embedded Systems,
O'Reilly, 2006, ISBN: 0-596-00983-6
• Vincent P. Heuring, Harry F., Jordan Computer systems design and
architecture , Addison Wesley 1997, ISBN 0-8053-4330-X
Definiţii
informaţie - orice mesaj care aduce o precizare
într-o problemă ce comportă un anumit grad de
incertitudine
data - forma de reprezentare a informaţiei în
vederea transmiterii, stocării, regăsirii şi
prelucrării acesteia
comunicaţie - transmiterea informaţiei de la o
sursă la destinaţie

Informaţie (cod)
Sursă
Receptor
(Emiţător)
Canal de comunicaţie
Definiţii
Limbaj - mijloc de transmitere a informaţiei între
membrii unei categorii de indivizi.
• sintaxă - formele de reprezentare a informaţiei împreună
cu regulile de organizare a acestor forme
• semantică - semnificaţia asociată formelor respective,
împreună cu regulile de constituire a înţelesului unor forme
compuse pe baza "înţelesurilor" componentelor
• pragmatica - modul în care limbajul urmează a fi folosit
de către diferiţi indivizi

Informaţie (cod)
Sursă
Receptor
(Emiţător)
Canal de comunicaţie
Măsurarea informaţiei

• bit (binary digit) = unitatea de măsură a informaţiei


definită ca fiind cantitatea de informaţie obţinută
prin precizarea unei variante din două egal
probabile

1b - bit
1Kb=210 b=1024b
1Mb=210 Kb=220 b
1Gb=210 Mb=220 Kb=230 b
1Tb =210 Gb=220 Mb=230 Kb=240 b
Materializarea informaţiei în sistemele
numerice
• reprezentarea uzuală a cifrelor binare se face prin
două intervale VH şi VL distincte ale tensiunii
separate printr-o zonă interzisă

7
Măsurarea informaţiei
Byte (Octet)
MSb b7 b6 b5 b4 b3 b2 b1 b0 LSb
• La fel ca pentru bit se folosesc multiplii octetului:
1B=8b
• 1KB=210 B=8*210 b şamd.

b7
.
.
1KB=8x1024b=8192b
b0
B1023 B1B0
SISTEME DE NUMERAŢIE

• sistem de numeraţie - totalitatea regulilor de


reprezentare a numerelor cu ajutorul simbolurilor
numite cifre

N = bn −1bn−2 ...b1b0 .b−1b−2 ...b−( m−1) b−m

N = bn −1 B n −1 + bn −2 B n − 2 + ... + b1 B1 + b0 B 0
n −1
+ b−1 B −1 + b−2 B − 2 + ... + b−( m−1) B −( m−1) + b− m B −m = i
b B i

i =− m
Conversia unui număr din baza 10
într-o bază B10:

( )
N = B bn −1 B n −2 + bn−2 B n−3 + ... + b2 B1 + b1 B 0 + b0 = B  N1 + b0
N1 = B(b n −1 B n −3
+ bn−2 B n−4
+ ... + b3 B 1
+ b2 B )
0
+ b1 = B  N 2 + b1
...
( )
Nk = B bn−1 B n −k −2 + bn−2 B n−k −3 + ... + bn−k −1 B 0 + bk = B  N k −1 + bk
Conversia unui număr din baza 10
într-o bază B10:
Exemplu1
• Pentru a afla reprezentarea binară a numărului zecimal 179
vom face următorii paşi:
• 179 : 2 = 89 + 1 (LSB)
• 89 : 2 = 44 + 1
• 44 : 2 = 22 + 0
• 22 : 2 = 11 + 0
• 11 : 2 = 5+1
• 5:2= 2+1
• 2:2= 1+0
• 1:2= 0 + 1 (MSB)
• Aşezând în ordine cifrele obţinute ca rest,
rezultă:
• 17910 = 101100112 .
Conversia unui număr din baza 10 intr-o baza
B10:

Exemplu 2: 93D=??????B

93=2*46+1
46=2*23+0
23=2*11+1
11=2* 5+1
5=2* 2+1 1011101 93D=1011101B
2=2* 1+0
1=2* 0+1

93 = 64+16+8+4+1
= 1*26+0*25+1*24+1*23+1*22+0*21+1*20
Conversia unui număr din baza 10 într-o
bază B10:

Exemplu 3: 56D=????B

56 2
0 28 2
0 14 2
0 7 2
1 3 2
1 1 56D = 111000B
Conversia unui număr din baza 10 într-o
bază B10 – partea subunitară

N = b−1 B −1 + b− 2 B −2 + ... + b−( m−1) B − ( m−1) + b−m B − m


N  B = b−1 + b−2 B −1 + ... + b−( m−1) B −( m− 2) + b− m B −( m−1) = N1 + b−1
N1  B = b−2 + b−3 B −1 + ... + b−( m−1) B −( m−3) + b− m B −( m−2 ) = N 2 + b− 2
...
N k −1  B = b−k + b−( k −1) B −1 + ... + b− m B −( m− k ) = N k + b−k
Conversia unui număr din baza 10
intr-o bază B10 – partea subunitară

• Pentru partea fracţionară, conversia se face separat:


Exemplu 4
• Reprezentarea binară a numărului zecimal 0,61:
– 0,61 ´ 2 = 1,22 1 (MSB)
– 0,22 ´ 2 = 0,44 0
– 0,44 ´ 2 = 0,88 0
– 0,88 ´ 2 = 1,76 1
– 0,76 ´ 2 = 1,52 1
– 0,52 ´ 2 = 1,04 1
– 0,04 ´ 2 = 0,08 0…
• Dacă ne oprim aici, atunci 0,6110 ≈ 0,1001110...2 .
• De fapt, mai exact 0,1001110 2 = 0,60937510 .
Conversia unui număr din baza 10 intr-o baza
B10:

Exemplu 5: 0.485D=???B

0.485*2=0.970
0.970*2=1.940
0.940*2=1.880
0.880*2=1.760
0.760*2=1.520 01111110 0.485D=0.01111110B
0.520*2=1.040
0.040*2=0.080
Conversia din baza 2 in baza 10

Exemplu 6: 101101.1011B=???D

101101.1011B=
1*25+0*24+1*23+1*22+0*21+1*20+
1*2-1+0*2-2+1*2-3+1*2-4=
45.609375D
Conversia binar  octal, binar 
hexazecimal
Exemplu 7:
110110110.11011B=???H=???Q

0001|1011|0110.1101|1000
1 | B | 6 . D | 8

110|110|110.110|110
6| 6 |6 . 6 | 6

110110110.11011B = 1B6DH = 666.66Q


Codul binar natural
Valoarea zecimală Cod binar Reprezentare Hexazecimal-
0 00000000 00
1 00000001 01

7 00000111 07
8 00001000 08

255 11111111 FF

256 00000001 00000000 01 00


257 00000001 00000001 01 01

65534 11111111 11111110 FF FE
65535 11111111 11111111 FF FF
Reprezentarea numerelor cu semn

N = bn−2bn−3 ...b1b0
n−2
N = bn−2 2 n−2
+ bn−3 2 n −3
+ ... + b1 2 + b0 = b 2
i =− m
i
i
Reprezentarea în mărime şi semn

bn-1bn-2 … b1b0

mărime N 
semn 1= - ; 0= +

n−2
N = (− 1)   bi 2
bn −1 i

i =− m
Reprezentarea în complement

N =B −N
* n
complement faţă de baza B

complement faţă de baza-1 B-1 N = B − N −1 n

În sistemele numerice numărul de biţi este limitat.


pe n biti cel mai mare număr ce poate fi reprezentat este N=2n -1
2n nu poate fi reprezentat
Valoarea 2n va fi echivalată cu zero

Exemplu: n=8
Nmax = 28- 1 = 11111111
28 = 1 00000000
Reprezentarea în complement

N = 0 − N2
*
complement faţă de 2 2

complement faţă de 1 N 2 = 0 − N2 −1

N = N 2 +1
*
2
N 2 = 0 − N 2 −1

Modalităţi de obţinere a complementului

• faţă de 1 N 2 = 0 − N 2 −1
N2 = *
N2 −1
se inversează fiecare cifră binară în parte
(negare logică)

• faţă de 2 N *2 = 0 − N 2
N *2 = N 2 + 1
se păstrează neschimbate cifrele 0 mai puţin
semnificative şi prima cifră 1 iar toate celelalte
se inversează logic.
Reprezentarea în complement faţă de 1

N = bn−1bn−2 ...b1b0

N = N = b n−1 b2...b1 b 0
n −1
N 2 −1
Reprezentarea în complement faţă de 2

N = bn−1bn−2 ...b1b0
n−2
Dacă N>0
N = 0bn−2 bn−3 ...b1b0 =  bi 2 i

i =0
n −1
N 2 −1
n−2
N = 1b n−2 b n−3 ...b1 b 0 + 1 = ( −1 )2 n−1 +  bi 2i
*

i =0

n −1
N  −2
*

n −1 n −1
−2 N 2 −1
Numere pe 4 biți, fără semn

1111 0000
0001
1110 15 0
1
14 F 0010
E 2
1101
13 D 0011
3

1100 12 C 4 0100

1011 11 B 5 0101

10 A 6
1010
7 0110
9
1001 8 0111
1000
Numere pe 4 biți cu semn,
reprezentare în complement față de 2

1111 0000
0001
1110 -1 0
1
0010
-2 2
1101
-3 0011
3

1100 -4 4 0100

1011 -5 5 0101

-6 6
1010
7 0110
-7
1001 -8 0111
1000
Reprezentări pe 8 biţi ale numerelor cu semn

Zecimal Mărime şi semn Complement faţă de 1 Complement faţă de 2

127 01111111 01111111 01111111



1 00000001 00000001 00000001

0 00000000 00000000 00000000


10000000 11111111
-1 10000001 11111110 11111111

-127 11111111 10000000 10000001
-128 16 biţi 16 biţi 10000000
Reprezentare în virgulă fixă

N = bn −1bn − 2 ... bq .bq −1bq − 2 ... b1b0


n − q −1 n−q −2
N = −bn −1 2 + bn − 2 2 + ... + bq +1 2 + bq 2 +
1 0

−1 −2 − ( q −1) −q
bq −1 2 + bq − 2 2 + ... + b1 2 + b0 2
 n−2
i
= 2   − bn −1 2 +  bi 2 
−q n −1

 i =0 
Coduri binare uzuale
Număr BCD NBCD octal hexa
zecimal
0 0000 0000 0000 0
1 0001 0001 0001 1
2 0010 0010 0010 2
3 0011 0011 0011 3
4 0100 0100 0100 4
5 0101 0101 0101 5
6 0110 0110 0110 6
7 0111 0111 0111 7
8 1000 1000 8
9 1001 1001 9
10 1010 A
11 1011 B
12 1100 C
13 1101 D
14 1110 E
15 1111 F
Coduri neponderate

Binar Gray 8421


cu paritate
reflectat Gray închis impară exces3 2 din 5
0 0000 0000 0010 00000 0011 00011
1 0001 0001 0110 10001 0100 00101
2 0011 0011 0111 10010 0101 00110
3 0010 0010 0101 00011 0110 01001
4 0110 0110 0100 00100 0111 01010
5 0111 0111 1100 00101 1000 01100
6 0101 0101 1101 00110 1001 10001
7 0100 0100 1111 10111 1010 10010
8 1100 1100 1110 11000 1011 10100
9 1101 1101 1010 01001 1100 11000
10 1111
11 1110
12 1010
13 1011
14 1001
15 1000
Operații numerice și logice
➢ sunt realizate efectiv de către dispozitive specializate, numite
unităţi aritmetice şi logice (ALU -Arithmetic Logic Unit).
➢ ALU executa două categorii de operaţii:
▪ operaţii logice (AND- şi logic, OR- sau logic, XOR- sau
exclusiv, CPL- complementare logică, etc.)
▪ operaţii aritmetice (ADD- adunare, SUB- scădere, MUL-
înmulţire, DIV- împărţire, NEG- complementare aritmetică,
INC- incrementare , DEC- decrementare, etc.).
➢ Operaţiile logice şi aritmetice pot fi:
- unare - implică un singur operand (CPL, NEG, INC, DEC);
- binare - implică doi operanzi (AND, OR, ADD, SUB, etc.).
Operații numerice cu numere binare
fără semn
Adunarea (A+B) exemple (numere reprezentate pe 8 biţi) :
- Fără transport din MSB 0100 1010+
1000 1100
1101 0110

- Cu transport din MSB 0100 1010+


1100 1100
10001 0110
Operații numerice cu numere binare
fără semn
Scăderea (A-B) exemple (numere reprezentate pe 8 biţi) :
- Fără transport (împrumut) spre MSB (A>B)
1000 1010-
0100 0100
0100 0110
- Cu transport spre MSB (A<B) → rezultat negativ,
trebuie reprezentat pe mai mult de 8 biţi
0100 0100- 68-
1000 1010 138
1011 1010 - 70
(70)10 = (0100 0110)2 , (-70)10 = (1011 1010)2 în
complement faţă de 2, pe 8 biţi
Operații numerice cu numere binare
fără semn
Inmulțirea (A*B) exemple (factori reprezentați pe de 8 biţi) :
00101011* 43*9=387
00001001
00101011
00101011000
00110000011

➢ Pentru produs trebuie să se aloce un număr de biţi dublu


numărului de biţi necesari pentru reprezentarea factorilor.
➢ Caz particular : înmulţirea cu 2n = deplasare la stânga cu n
poziţii.
Operații numerice cu numere binare
fără semn
Împărțirea (A/B) exemple (factori reprezentați pe de 8 biţi) :

10000101 1001 133/9=14 rest 7


1001 1110
1111
1001
1100
1001
111
➢ Caz particular : împărțirea cu 2n = deplasare la dreapta cu n
poziţii.
Operaţii logice

: AND: 10110100 Λ 01101101 = 00100100


0B4H Λ 6DH = 24H

OR: 10110100 V 01101101 = 11111101


0B4H V 6DH = 0FDH

XOR: 10110100  01101101 = 11011001


0B4H  6DH = 0D9H
________
CPL: 10110100 = 01001011
___
0B4H = 4BH
Operaţii de rotire şi deplasare
Deplasare (SHift)

SHL SHR
MSB LSB MSB LSB
0 0

C
C

Rotire (ROtate)

ROL
MSB LSB MSB ROR LSB

C C

Stânga (Left) Dreapta (Right)


Indicatorii de condiții
Indicatorii de stare (de conditii) sunt biţi de informaţie ce sunt
poziţionaţi in conformitate cu rezultatul operaţiei efectuate de UAL.
Indicatorii de stare utilizaţi cel mai frecvent sînt:
•C - (CARRY) indicatorul de transport. Este înscris (1) ori de câte ori
apare un transport de la cifra cea mai semnificativă .
•Z - (ZERO) indicatorul de rezultat nul. Este înscris (1) dacă rezultatul
operaţiei este zero.
•H (HALF-CARRY) indicatorul de transport auxiliar. Indica un
transport in cazul unei operaţii de adunare sau un împrumut in cazul
unei operaţii de scădere în/din bitul 4.
•S - (SIGN) indicatorul de semn – indică semnul rezultatului operaţiei
(„0”-pozitiv, „1”-negativ)
•P/V- (PARITY/OVERFLOW) indicatorul de paritate / depăşire.
Indicatorul P/V este utilizat pentru a indica paritatea rezultatului din
acumulator sau depăşirea aritmetica in cazul operaţiilor in
complement fata de 2.
Microprocesoare și Microsisteme

Curs 2

NOTIUNI SI CONCEPTE DE BAZĂ PRIVIND


STRUCTURA SISTEMELOR NUMERICE

[Link]. Daniel Sticea

© [Link]. Marcel Constantin RĂŢOI


Circuite logice integrate – aspecte
practice
Formal sistemele cu circuite logice sunt împărţite în:
- circuite combinaţionale
- circuite secvenţiale.

Convenim să definim sistemul numeric (SN) ca fiind o


structură logică complexă care nu tratează biţii într-o
manieră individuală ci operează cu ansambluri (grupuri)
de biţi numite cuvinte.
Circuite logice integrate – aspecte
practice
Circuit logic - un circuit electronic care materializează
una sau mai multe funcţii logice.
Obs: În prezent circuitele logice sunt implementate
aproape în totalitate în structuri integrate.

Poartă logică - un circuit logic care îndeplineşte o


funcţie logică elementară.
Obs: Porţile logice pot exista într-un circuit integrat fie
ca elemente de sine stătătoare, fie ca nişte componente
într-o structură de circuit logic complex.
Interfețe-Interfațare

S1 S2

S1,S2 – Sisteme numerice semnale fizice


INTERFÁȚĂ s. f. [DEX] informatii
(date)
suprafață de separare a porțiunilor care reprezintă faze diferite
dintr-un sistem fizico-chimic.
(inform.) frontieră convențională între două sisteme sau unități,
care permite schimburi de informații după anumite reguli.
(electron.) dispozitiv care convertește semnalele electronice astfel
încât două aparate sau sisteme să poată comunica între ele. (< engl.,
fr. interface)
Cuplarea circuitelor logice -
magistrale
Magistrala - o cale de transfer a informaţiei între două
sau mai multe dispozitive (echipamente) numite sursă şi
destinaţie
R
E
magistrală
E R

R E

REGULĂ: Pe o magistrală poate avea loc doar un


singur transfer la un moment dat; pe durata lui toate
celelalte surse conectate la magistrala trebuie să fie
electric deconectate.
Cuplarea circuitelor logice -
magistrale
Electric ieşirile mai multor circuite logice pot fi legate pe o
aceeaşi linie numai dacă porţile sunt de tip open-colector
(OC) sau prezintă trei stări logice la ieşire (Three State
Logic - TSL).
Structurarea sistemelor numerice
Datorită complexității circuitelor numerice Sistemele
Numerice sunt clasificate în ordine, fiecărui ordin fiindu-i
caracteristică o clasă de funcţii.
Procesul de structurare poate fi evidenţiat dacă se iau în
considerare posibilităţile de cuplare ale unor sisteme
generice de ordin n, (Sn ).
X Y
Sn Sn0 Sn1
X Y
Sistem de ordin n
X vector de intrare Sn2 Sn3
Y vector de ieşire Sn0 Sn1
Sn0
X Y Sn+1
X Y
X Y
Sn 0 Sn 1
Sn1 Sn2 Sn3
d) cuplare cu buclă de reacţie
– rezultă un sistem de ordin
a) cuplare în n+1 (Sn+1)
b) cuplare în c) cuplare mixtă
cascadă (serie) paralel
Structurarea sistemelor numerice

Un sistem de ordin n+1, (Sn+1) poate fi


generat prin interconectarea unor sisteme, din care
cel puţin unul este de ordin n, (Sn ) într-o
configuraţie ce presupune o buclă de reacţie.

• S0 – Circuite logice combinaţionale (CLC)


• S1 – Circuite de memorare
• S2 – Automate elementare
• S3 – Sisteme microprogramabile (automate
programabile)
• S4 – Sisteme programabile (procesoare)
• S5 – Reţele de procesare digitală elementare
S0 – Circuite logice combinaţionale
(CLC) - Decodificatorul

XO

X1

DEC

Y0 Y1 Y2 Y3
S0 – Circuite logice combinaţionale
(CLC) - Demultiplexorul
XO

X1

DMUX

Y0 Y1 Y2 Y3
S0 – Circuite logice combinaţionale
(CLC) - Multiplexorul
I0 I1 I2 I3
XO

X1

MUX

Y
S0 – Circuite logice combinaţionale
(CLC) - Codificatorul
VCC
funcţia ŞI
Rc
funcţia NU

Codificatorul - COD – I7 R
b

este un circuit I6

combinaţional care I5
furnizează la ieşire un
cuvânt de k biţi când I4

una din intrările sale I3

este activată I2

I1

I0

/STB K2 K1 K0
S0 – Circuite logice combinaţionale
(CLC) - Comparatorul

Comparatorul numeric - CN - determină valoarea relativă


sau egalitatea a două numere binare.

A<B

A
A=B
B

A>B
S0 – Circuite logice combinaţionale
(CLC) – Detectorul de paritate
Detectorul/Generatorul de paritate - PAR - are rolul de a
determina paritatea (ieșirea va fi 1) sau imparitatea
(ieșirea va fi 0) numărului de variabile de intrare egale cu
1.

Tabelul de adevar pentru SAU Exclusiv


S0 – Circuite logice combinaţionale
(CLC) – Sumatorul
a b ci a b ci S co
000 0 0
Sumatorul - SUM - este un circuit
001 1 0
logic combinaţional care asigură, 010 1 0
direct sau indirect, efectuarea 011 0 1
tuturor operaţiilor aritmetice într-un 100 1 0
sistem numeric. 101 0 1
Intrări: a,b,ci co S 110 0 1
Ieșiri: S,co 111 1 1

S = a  b  ci + a  b  ci + a  b  ci + a  b  ci
= a  b  ci
co = a  b + ci  (a  b)
S0 – Circuite logice combinaţionale
(CLC) – Sumatorul

Prin conectarea corespunzătoare a unor sumatoare complete


de un bit se pot obţine sumatoare pe n biţi (de 4 biți în exemplul
nostru)

a 3 b3 a 2 b2 a1 b1 a 0 b0
c0
a b ci a b ci a b ci a b ci
+ co
+ + co
+
co S S co S S
c4
S3 S2 S1 S0
Sumator pe 4 biţi (ex. 74xx83)
S0 – Circuite logice combinaţionale
(CLC) – Memoria ROM VCC
matrice
de memorie R

Memoria ROM este în linii de bit

esenţă un convertor
de cod compus dintr-
un decodificator şi un linii
codificator. de selecţie

Denumirea de ROM DEC

provine din limba A0


A1
A0 Y0
A1 Y1
engleză “Read Only /CE
E
Y2
Y3
Memory” ceea ce
înseamnă memorie
numai la citire.
/OE
ROM, PROM, EPROM, logica de comandă şi
EEPROM, FLASH selecţie
amplificatoare de
ieşire D3 D2 D1 D0
S0 – Structuri logice programabile
(SLP) - ROM I3 I2 I1 I0

Arhitectura unui ROM,


privit ca un SLP.

Un ROM poate fi folosit


pentru implementarea
funcţiilor logice
multiple, câte o funcţie
logică independentă la
fiecare ieşire, singura
limitare fiind numărul
de intrări disponibile.

O3 O2 O1 O0
S0 – Unitate Aritmetică şi Logică (UAL,
ALU) A A A A B B B B
7 4 3 B B B B
0 A/S
7 6 5 4 3 2 1 0

x3 y3 x2y2 x1y1 x0 y0 x/y x3 y3 x2y2 x1y1 x0 y0 x/y

o3 o2 o1 o0 o3 o2 o1 o0

a 3 b3 a 2 b2 a1 b1 a 0 b0 a 3 b3 a 2 b2 a1 b1 a 0 b0
c4 c0 c4 c0
s3 s2 s 1
s 0 s3 s2 s 1
s 0

C D S7 S6 S5 S4 S3 S2 S1 S0 Z
Circuit de adunare/scădere pentru numere reprezentate
în complement faţă de 2
S0 – Unitate Aritmetică şi Logică (UAL,
ALU)
Adunare : A/S=0; Scădere : A/S=1; D=1 - depăşire
Operand A Operand B A B

Cod
operaţie Sign
Control Condiţii
Mod
Unitate aritmetică şi logică Zero UAL
Dep.
Co Cn

Rezultat R
Structurarea sistemelor numerice

• S0 – Circuite logice combinaționale (CLC)


• S1 – Circuite de memorare
• S2 – Automate elementare
• S3 – Sisteme microprogramabile (automate
programabile)
• S4 – Sisteme programabile (procesoare)
• S5 – Reţele de procesare digitală elementare
S1 – Circuite de tip Latch
D

D Q Q0
ADR
/0 Clk
/Q tDS
tDH
/1 Q1 Clk
D Q

Clk D
/Q
DEC
Do
tpD

Clk
E

D Q QN-1

/2n-1 Clk Do={QN-1 … Q1Q0}


/Q

An-1 A1A0 ADR={An-1 … A1A0}


S1 – Memorii cu citire scriere (Random
Access Memory, RAM) Data Bus
DI
D Q I0
0
Clk
1
D Q I1
Clk
DO
MUX Y
DEC

/WE
/CS E
I2n
D Q
2n-1 -1
Clk

/OE
A0…An-1
tAA
An-1 A1A0 /CS

/WE tDH
/WE=Write Enable (validare scriere) tDS
/CS=Chip Select (validare circuit) DI
/OE=Output Enable (validare ieşire)

DI=Data Input (intrare date) /OE


tAD
DO=Data Output (ieşire date) DO
A0, A1,...An-1 intrări de adresă
Structură didactică de memorie RAM
S1 – Memorii RAM static (SRAM)
Păstrează datele memorate atât timp cât sunt alimentate
S1 – Memorii RAM dinamic (DRAM)

Decodor Matrice de
adresă
adresă
linie
linie celule de memorie

intrări
adresă Selecţie transer 1 linie
adresă linie
Scriere
Tampon citire/scriere
adresă
coloană Decodor adresă şi selecţie coloană

Validare
adresă coloană
intrări
adresă adresă linie adresă coloană
Magistrala de date
ieşire de
date citite
date ✓ Este necesară o reimprospătare
selecţie
circuit
periodică
validare
✓ Celule de memorie mai mici decat cele
adresă coloană t de tip Static
S1 – Bistabili RS
Circuitul basculant bistabil asincron este cunoscut si sub
denumirea de latch (zăvor) și poate fi realizat cu două porți NOR
sau două porți NAND

Circuite bistabil asincrone Circuit bistabil sincron

Rn Sn Q(n+1)
0 0 Qn
0 1 1
1 0 0
1 1 x
Indice n – valoarea logică prezentă
Indice n+1) – valoarea logică viitoare
S1 – Bistabili D
Circuitul basculant bistabil de tip D (Delay) se obține din
bistablilul de tip RS sincron sau bistabilul JK prin conectarea unei
porți inversoare între cele două intrări de date cu scopul eliminării
stărilor nedeterminate.
S1 – Shift register
S1 – Registre de tip paralel
S1 – Shift Register –Serial-In to Serial-
Out (SISO)
Acest Shift Register SISO funcționează ca un dispozitiv de
stocare temporară sau ca jun circuit de întârzâiere cu un numar de
perioade de ceas (Clock)
S1 – Shift Register –Serial-In to
Parallel-Out (SIPO)
S1 – Shift Register –Parallel-In to
Serial-Out (PISO)
S1 – Shift Register –4-bit Universal
Shift Register 74LS194
Microprocesoare și Microsisteme

Curs 3

NOTIUNI SI CONCEPTE DE BAZĂ PRIVIND


STRUCTURA SISTEMELOR NUMERICE
(continuare)
[Link]. Daniel Sticea

© [Link]. Marcel Constantin RĂŢOI


Structurarea sistemelor numerice

Un sistem de ordin n+1, (Sn+1) poate fi


generat prin interconectarea unor sisteme, din care
cel puţin unul este de ordin n, (Sn ) într-o
configuraţie ce presupune o buclă de reacţie.

• S0 – Circuite logice combinaţionale (CLC)


• S1 – Circuite de memorare
• S2 – Automate elementare
• S3 – Sisteme microprogramabile (automate
programabile)
• S4 – Sisteme programabile (procesoare)
• S5 – Reţele de procesare digitală elementare
S2 – Automate elementare – Bistabilul
de tip J-K
✓ Aceste circuite elimină starea de nedeterminare a
unui circuit RS (R=S=1, sau /R=/S=0).
✓ Se obțin prin introducerea unei bucle de reacție de
la ieșire la intrare.
✓ Circuitele JK sincrone sunt prevăzute cu intrare
suplimentară de comandă numită Clk
S2 – Automate elementare – Bistabilul
de tip T
Bistabil de tip T (toggle) se obţine dintr-un bistabil de tip RS sau JK prin
conectarea împreună a celor două intrări de date.

T Q
T Q
clk clk
Q
Q
Simbolul
Circuit
S2 – Automate elementare –
numărătoare

Numarator MOD 4
S2 – Automate elementare – Automate
cu stări finite
Automatul cu stări finite (Finite State Machine - FSM) este
o maşină abstractă care reprezintă un model de funcţionare
compus dintr-un număr finit de stări, tranziţii între aceste stări
şi acţiuni.

Un automat finit se defineşte formal prin cvintuplul


A = (X, Y, Q, f, g) unde:

X = {x1, x2,..., xn } - mulţimea configuraţiilor binare de intrare,


Y = {y1, y2,..., yr } – mulţimea configuraţiilor binare de ieşire,
Q = {q1 q2,..., qp } - mulţimea configuraţiilor binare de stare,

f : X × Q → Y - funcţia de tranziţie a ieşirilor,


g : X × Q → Q - funcţia de tranziţie a stărilor.
S2 – Automate elementare – Automate
cu stări finite
• dacă f : X × Q → Y automatul este de tip Mealy,
• iar dacă f :Q → Y automatul este de tip Moore

• spaţiul timpului este discret şi este format din mulţimea


multiplilor de perioade de ceas T, care produce o
modificare a stării circuitului.

Automatele sunt:
➢ imediate (ieşirile se modifică imediat ce se modifică
intrările sau stările)
➢ cu întârziere (ieşirile se modifică cu o întârziere de o
perioadă de ceas faţă de modificarea intrărilor sau a
stărilor)
S2 – Automate elementare – Automate
cu stări finite
X X
X X
CLC1
CLC1
Q
CLC CLC Q
Q Q R
R

R R
CLC2
Y CLC2
Y
Mealy imediat Mealy cu Y R
întârziere Moore
imediat Y
Moore cu
f:X×Q→Y întârziere
g:X×Q→Q
f: Q→Y
g:X×Q→Q
S2 – Automate elementare – Automate
cu stări finite
Exemplu:
Se consideră proiectarea unui circuit logic care determina
paritatea apariţiilor valorii „1” dintr-un şir, dintr-o serie de valori.

Diagrama de stări Tabelul tranzițiilor


Structurarea sistemelor numerice

Un sistem de ordin n+1, (Sn+1) poate fi


generat prin interconectarea unor sisteme, din care
cel puţin unul este de ordin n, (Sn ) într-o
configuraţie ce presupune o buclă de reacţie.

• S0 – Circuite logice combinaţionale (CLC)


• S1 – Circuite de memorare
• S2 – Automate elementare
• S3 – Sisteme microprogramabile (automate
programabile)
• S4 – Sisteme programabile (procesoare)
• S5 – Reţele de procesare digitală elementare
S3 – Sisteme microprogramabile
(automate programabile)
Automat programabil = structură de automat ce se
caracterizează prin faptul că un automat de control
controlează evoluţia unui al doilea automat numit automat de
procesare, printr-o secvenţă de ordine (instrucţiuni) ce
formează programul şi în funcţie de o serie de indicatori
furnizaţi de automatul controlat.
X1 X2 X1 X2 X1 X2

Automat CLC Automat Mem Automat Automat

Y Y Y
Automat cu buclă de Automat cu buclă de Automat cu buclă de
reacţie prin circuit reacţie prin memorie reacţie prin automat de
combinaţional control
(Automat programabil)
Posibilităţi de obţinere a unui sistem de ordin 3 (S3 )
S3 – Sisteme microprogramabile
(automate programabile)
Structura de tip RALU

DIn Clk
/WE
Reg
AR
CodOP ALU DIn
Acc Clk
ma MUX
Clk Acc
CodOP ALU

DOut Ind Clk


DOut Ind
S3 – Automate programabile
Structura didactică de Automat Programabil cu prelucrare pe bit
/RESET
MP RAM
D7
A0
Q0 D6
A1 DIn DOut
... Q1 D5 DEC /WR
.. A4 A3
.. D4 A3
NA .. A3 A2
.. D3 A2
.. A2 A1
.. D2 A1
An-1 A1 A0
Qn- D1 A0
/PL D0 A0
1 /WR /CS

OSC
A4

Acc
I0

ALU
/RESET
I1 D Q
Clk

D Q7 E7
MUX Data Bus E6
A2 Q6
S2 Q5 E5
A4 A1
S1 Q4 E4
A0 E3
S0 Q3
/WR E2
Q2
I A3 E E1
15 A4
Q1
Q0 E0
NA – numărător adrese
MP – memoria program
A3 A2 A1 A0
S3 – Automate programabile
Structura didactică de Automat Programabil cu prelucrare pe bit
SET INSTRUCTIUNI

COD OP ADRESA Varianta implementare ALU


7 6 5 4 3 2 1 0
K2K1K0 A4A3A2A1A0
Data In I0
0 I00…I15 I1 Acc
I2 Data
1 0 E00…E07 I3 Y D Q
Clk OUT
1 1 M00…M07 I4
I5
I6 MUX
I7
S2 S1 S0
C_Op Instructiune Descriere
ALU
000 LD Vxx A  Vxx K2 K1 K0
001 LDC Vxx A  !Vxx
010 AND Vxx A  A & Vxx
011 OR Vxx A  A | Vxx
100 STO Vxx Vxx  A Alta posibilitate de implementare
101 CLR A0 LookUp Table –LUT
110 CPL A  !A (tabela de cautare)
111 END NumAdr  adresa start
Structurarea sistemelor numerice

Un sistem de ordin n+1, (Sn+1) poate fi


generat prin interconectarea unor sisteme, din care
cel puţin unul este de ordin n, (Sn ) într-o
configuraţie ce presupune o buclă de reacţie.

• S0 – Circuite logice combinaţionale (CLC)


• S1 – Circuite de memorare
• S2 – Automate elementare
• S3 – Sisteme microprogramabile (automate
programabile)
• S4 – Sisteme programabile (procesoare)
• S5 – Reţele de procesare digitală elementare
S4 – Sisteme programabile
(procesoare)
Procesor (P) - sistem programabil (S3 sau S4) compus din:
➢ Automat de control = unitate de comandă (UCOM)
pe baza programului generează un set de comenzi destinate
automatului controlat
➢ Automat controlat = unitate de execuţie
automat aritmetic (RALU) dotat cu registre si ALU,
are rolul de a prelucra informaţiile pe baza comenzilor
furnizate de UCOM
DI PROG

RALU ASM
U - Ex U - Com

Ind Comenzi
DO
S4 – Structura de procesor
DIn PROG

St/Ctrl
AR ma Secvenţiator
Registre (cablat sau
microprogramat)
RALU Sync
U COM
ALU Automat de
adresare
IND

Funcţionare: DOut ADR


UCOM recepţionează instrucţiunea curentă
UCOM generează către RALU secvenţa de comenzi (CodOP) însoţite de
informaţiile de localizare a operanzilor (AR, ma) asociaţi instrucţiunii
RALU execută comenzile şi, în paralel, UCOM îşi determină propria
evoluţie, efectuând eventualele modificări ale secvenţelor generate,în
funcţie de indicatorii poziţionaţi de RALU.
În cazul în care instrucţiunea implică transferuri de date cu exteriorul se
comandă la momentele necesare, citirea operanzilor pe DIN respectiv
depunerea datelor pe DOUT. Se reia ciclul de funcţionare.
S4 – Structura de procesor

Procesorul manevrează 3 categorii de informaţii:


➢ instrucţiuni
➢ date de intrare
➢ date de ieşire
De regulă liniile DIN şi DOUT. sunt legate împreună sub forma
unor linii de acces bidirecţional, sensul fiind controlat de
informaţii suplimentare din AR.

În principiu procesorul utilizează în mod diferit informaţiile:


➢ instrucţiunile sunt utilizate de U COM
➢ datele de intrare şi ieşire sunt utilizate respectiv furnizate de
RALU
S4 – Structura de procesor
Fluxul de date şi cel de instrucţiuni pot fi prelucrate:
➢ fie în paralel utilizând căi de acces diferite (arhitecturi
Harvard)
➢ fie renunţând la paralelismul extragerii şi execuţiei unei
instrucţiuni şi utilizând o singură cale de acces (comună)
pentru instrucţiuni şi date (arhitecturi von Neumann).

INSTR

ADRESE
ST/CTRL DATE ST/CTRL
INSTR
CPU CPU
ADRESE
DATE
SYNC SYNC
ADRESE
DATE

Arhitectura Harward Arhitectura von Neumann


Microprocesoare si microsisteme
- uPuS –

Curs 4
Sisteme de calcul

1
Sistem de calcul

date de
intrare Sistem de rezultate
calcul

program

software hardware

•un dispozitiv care transformă datele de intrare, în rezultate de


ieşire(decizii) pe baza unui algoritm materializat într-un program.

•sistem programabil de prelucrare a informaţiei care are două


componente esenţiale, inseparabile şi definitorii: hardware şi software
2
Componenţa hardware a unui calculator

Calculator
Dispozitive I/E Tastatură,
UCP
Mouse
(Procesor) Memorie
- activ - - pasiv - Disc
Intrări (programe,
Control (Input) şi date ce nu
(“creier”) (păstrează
programe şi se află în
date pe durata execuţie)
Execuţie execuţiei) iEşiri
(“muşchi”) (Output) Display,
Imprimantă

3
Componenţa hardware a unui calculator v2
Calculator
Dispozitive I/E Tastatură,
UCP
Mouse
(Procesor) Memorie
- activ - - pasiv - Disc
Intrări sau mem ext
Control (Input) (programe,
(“creier”) (păstrează
programe şi şi date ce nu
date pe durata se află în
Execuţie execuţiei) iEşiri execuţie)
(“muşchi”) (Output) Display,
Imprimantă

Input
Output Proces

4
Componenţa hardware a unui calculator

Calculator
Dispozitive I/E Tastatură,
UCP
Mouse
(Procesor) Memorie
- activ - - pasiv - Disc
Intrări (programe,
Control (Input) şi date ce nu
(“creier”) (păstrează
programe şi se află în
date pe durata execuţie)
Execuţie execuţiei) iEşiri
(“muşchi”) (Output) Display,
Imprimantă

Magistrala (BUS)

5
Sistem de calcul
• Unitatea Centrală de Prelucrare (UCP , Central Processing Unit
Procesor) = unitate aritmetică şi logică+ registre (unitate de execuţie)
şi o unitate de comandă asigurând două funcţii esenţiale:
– prelucrarea datelor
– controlul activităţii întregului sistem
microprocesor circuit integrat care realizează într-o singură capsulă
majoritatea funcţiilor unui procesor clasic
• Memoria
– principalul mediu de stocare/regăsire a informaţiilor (programe, şi date).
– o secvenţă de locaţii pentru stocarea informaţiei, fiecare locaţie fiind
caracterizată de două entităţi informaţionale:
• conţinutul, reprezentat de o înşiruire de biţi ce formează cuvântul de
memorie,
• adresa, reprezentând numărul de ordine al locaţiei, ce permite identificarea
sa
• Sistemul de intrare/ieşire = circuitele care asigură legătura între
sistemul de calcul şi lumea exterioară.
Port de intrare/ieşire = o unitate elementară de comunicaţie cu
exteriorul

6
Magistrale

Magistrală (BUS) = cale de transfer a informaţiei între două dispozitive


(echipamente) numite sursă şi destinaţie. Pe o magistrală poate avea loc un
singur transfer la un moment dat (o singură sursă de informaţie poate fi activă
la un moment dat).
Magistrala bidirecţională = magistrala ce permite vehicularea informaţiei în două
sensuri (nesimultan): de la un dispozitiv A la altul B şi/sau invers
Magistrala de date (DATA BUS) = calea de comunicare utilizată pentru transferul
datelor şi a instrucţiunilor.
Magistrala de adrese (ADDRESS BUS) = calea de comunicare a informaţiilor de
localizare pentru date sau instrucţiuni
Magistrala de comandă (CONTROL BUS) este un grup de linii care vehiculează
semnale destinate coordonării (sincronizării) dialogului între diversele componente
ale unui sistem numeric complex (sistem de calcul).
Ciclu de magistrală reprezintă totalitatea evenimentelor care implica un transfer
complet de informaţie pe magistrală.

7
Componenţa hardware a unui calculator

INSTR

ADRESE INSTR ST/CTRL DATE ST/CTRL


CPU CPU

ADRESE
DATE
SYNC SYNC

ADRESE DATE

Arhitectura Harward Arhitectura von Neumann

8
Arhitecturi de calcul
von Neumann (Princeton)
Magistrală
comună

CPU Memorie
program

Memorie
date

iEșiri
Sistem Mediu
I/E extern
Intrări

9
Arhitecturi de calcul
Harvard
Memorie
program CPU Memorie
24 date
16

iEșiri
Sistem Mediu
E posibil ca dimnesiunile I/E extern
magistralelor să difere Intrări

10
11
Componenţa hardware a unui calculator

Ai ADRESE

UCP Memorie Sistem I/E


(μP)

Dj DATE
COMENZI

Microcalculator sau microsistem = sistem de calcul a cărui unitate


centrală de prelucrare este un microprocesor.

12
Caracteristici generale ale CPU

• Cuvântul de procesor – unitatea informaţională pe care CPU este capabilă


să o prelucreze la un moment dat implicând un singur transfer de informaţie
(1, 4, 8, 16, 32,..biţi)
• Capacitatea de adresare a memoriei – numărul maxim de locaţii de
memorie pe care le poate manipula CPU. De ex. 1KB, 4KB,... 64KB,... 1MB,...
De regulă se poate calcula cunoscând numărul de linii de adresă (n) : 2n.
• Viteza de calcul – este determinată de mai mulţi factori (frecvenţa de ceas,
organizare internă...) şi nu poate fi apreciată în mod absolut. De regulă viteza
de calcul se măsoară în instrucţiuni (operaţii) pe secundă MIPS (1MIPS =106
instrucţiuni pe secundă)
• Setul de instrucţiuni – indică disponibilităţile hardware ale CPU în ceea ce
priveşte capabilitatea de prelucrare şi transfer a informaţiilor. Din acest punct
de vedere se cunosc procesoare cu set complex de instrucţiuni (CISC) şi
procesoare cu set redus de instrucţiuni (RISC)

13
14
Schema funcţională a unei UCP generalizate
VDD VSS
Adrese Ai
Indicatori
REGISTRE
UAL Date Dj
GENERALE

Interfaţă cu Magistrala externă


M/IO

RD/WR
Control
Magistrala internă transfer pe
/As
magistrală
Registrul /Ds
Instrucţiunii REGISTRE
Stări
SPECIALE
DECodificator
/Wait
SECvenţiator Contor Sincronizare
/INT, /NMI
Program
/BUSRQ
Control
UCOM /BUSACK magistrale
UCP generalizat

CLK /Reset
15
stările funcţionale ale procesorului

IDLE

/BUSRQ=0

/INT& /NMI =0 /BUSRQ=1


Exec IDLE

/Wait=1 /BUSRQ=0

WAIT RUN DISC


/Wait=0 /BUSRQ=1

16
Execuţia unei instrucţiuni
Ti
Clk
Stare maşină (Ti) = o perioadă
Ai
de ceas a procesorului (CLK).
Ciclu de procesor (ciclu maşină) = o
Dj
succesiune de stări care definesc
CTRL complet un transfer de informaţie între
UCP şi exterior.
ciclu de procesor

Transferurile de informaţie între UCP şi exterior pot fi


clasificate ca:
➢citire din memorie,
➢scriere în memorie,
➢citire de la un port de I/E,
➢scriere într-un port de I/E.
Ciclurile de transfer UCP – memorie sunt similare cu
transferurile UCP – port I/E. 17
Cicli de tranfer al informaţiei între procesor si memorie

T1 T2 TW T3 T1 T1 T2 TW T3 T1
CLK CLK
[An-1 .. A0] Adresa validă [An-1 .. A0] Adresa validă

M/IO M/IO
/As /As

/WAIT /WAIT
R/W R/W

/Ds /Ds
[Dm-1 .. D0] [Dm-1 .. D0]

Ciclu de citire din memorie Ciclu de scriere în memorie

18
Etapele de execuţie a unei instrucţiuni

RUN

ECO de la adresa
din PC

PC ++

NU
Mai sunt
necesare alte
cuvinte?

DA
Extrage cuvânt
suplimentar

Execuţie propriu-
zisă a instrucţiunii
19
Etapele de execuţie a unei instrucţiuni

Extragere Execuţie Extragere Execuţie

Instrucţiune i Instrucţiune i+1

Extragere Extragere Extragere

Execuţie Execuţie Execuţie

Inst. i Instr i+1 Instr i+2

Locuri Instrucţiuni
libere pentru execuţie
Intrare instrucţiuni Ieşire instrucţiuni
I4 I3 I2 I1
de pe magistrala Către UCP (RI)
externă
Coadă de instrucţiuni

20
Etapele de execuţie a unei instrucţiuni
Arhitecturile Harward sunt caracterizate prin separarea memoriei de date
de memoria program, comunicatia dintre microprocesor si memorii se
executa prin magistrale de date diferite

Pe durata citirii instructiunii, magistrala de date pentru memoria de date este


libera. Acest aspect permite executarea instructiunii anterioare pe durata in
care se extrage instructiunea curenta. Daca consideram ca operatia de citire
din memoria de programe si operatia de executie a unei instructiuni dureaza
cate un ciclu de masina, atunci procesarea unei instructiuni va dura doua
cicluri de masina. Datorita suprapunerii ciclului de citire cu cel de executie
– pipelining, instructiunea apare ca fiind executata intr-un singur ciclu de
masina

21
Etapele de execuţie a unei instrucţiuni

Fiecare ciclu de processor este compus din patru perioade de ceas a


oscilatorului:
Q1 – Ciclu de decodare a instructiunii
Q2 – Ciclu de citire a instructiunii
Q3 – Proceseaza datele
Q4 – Ciclu de scriere a instructiunii 22
Tipuri de procesoare
CISC - Complex Instruction Set Computer
• Setul de instrucţiuni este implementat prin microcod permiţând
instrucţiuni foarte complexe;
• Timpul de execuţie depinde de comanda sau de secvenţa de
microcod ce trebuie executată şi necesită mai mulţi timpi de ceas;
• Se pot utiliza compilatoare, dar în conducerea proceselor rapide
acestea nu sunt foarte eficiente deoarece compilatorul nu poate
exploata întotdeauna avantajul modurilor de adresare şi al seturilor
de instrucţiuni foarte complexe;
• Se interfaţează uşor cu periferice specifice aplicaţiilor de conducere
ca temporizator, ceas de gardă, modulator PWM, UART, convertor
A/N etc;

23
Tipuri de procesoare
RISC - Reduced Instruction Set Computer
• Au un set de instrucţiuni mic dar foarte eficient;
• De regulă setul de instrucţiuni este codificat hardware pentru a
optimiza timpul de execuţie (o instrucţiune pe ciclu de ceas).
Încorporează structuri pipe-line care permit execuţia câtorva
instrucţiuni în paralel;
• Setul de instrucţiuni este ortogonal fiind mai uşor de generat cod
optimizat cu ajutorul compilatorului;
• Posedă seturi mari de registre, comutabile, asigurând latenţă mică
la întreruperi.
• Încorporează structuri hardware, dedicate pentru implementarea
facilă a sistemelor de operare;

24
Componenţa hardware a unui calculator

Mag. ADRESE
OSC CLK
ROM ROM DEC I/E
DEC ROM I/E
MEM ROM RAM I/E I/E
CPU
Controler
(mP)
DMA

Mag. DATE
POR
RESET Generator
stări

întreruperi
Controler
aşteptare
MEM/IO
READ
WRITE

BUS_ACK
BUSRQ
INT

WAIT INT_ACK

Fig. 5.1

25
Structura sistemelor cu microprocesor

• Procesor
• Memorie
• Circuite I/E
• Circuite ceas şi iniţializare
• Amplificatoare de magistrala
• Circuite de decodificare
• Circuite pentru controlul sistemului (generator
stări aşteptare, controler întreruperi, controler acces direct la
memorie)

26
Arhitectura microcontrolerului PIC16F876

27
Functionarea ALU si a registrului de lucru (W)

28
Microprocesoare și
Microsisteme
Curs 5

1
Programarea sistemelor cu microprocesor

Aplicatii

Compilator Sistem de
operare
Software Asamblor
Instruction Set
Hardware Processor Memory I/O system Architecture

Datapath & Control


Digital Design
Circuit Design
transistors

• Se suprapun mai multe nivele de abstractizare

2
Nivele de reprezentare a programului
temp = v[k];
Program intr-un limbaj de
v[k] = v[k+1];
nivel ridicat (de ex., C)
v[k+1] = temp;

Compilator ldr r0 , [r2, #0]


Program in limbaj de
asamblare (de ex ARM)
ldr r1 , [r2, #4]
str r1 , [r2, #0]
Asamblor
str r0 , [r2, #4]
1110 0101 1001 0010 0000 0000 0000 0000
Program in limbaj 1110 0101 1001 0010 0000 0000 0000 0100
masina (ARM) 1110 0101 1000 0010 0001 0000 0000 0000
1110 0101 1000 0010 0001 0000 0000 0100

Interpretare la nivel masina


Generare semnale de
comanda
° ALUOP[0:3] <= InstReg[9:11] & MASK
° 3
Nivele de codificare a programului

• Limbaj de nivel ridicat


– Nivelul de abstractizare mai
apropiat de problema de rezolvat
– Asigura portabilitate si o
productivitate mai buna
• Limbaj de asamblare
– Reprezentare textuala a
instructiunilor

• Reprezentare hardware
– Cifre binare (bits)
– Codifica instructiuni si date

4
ARHITECTURA UNUI SISTEM DE CALCUL (SC)

Se referă la acele atribute ale sistemului care sunt


vizibile programatorului şi care au un impact direct
asupra execuţiei unui program:

• setul de instrucţiuni maşină;


• caracteristicile de reprezentare a datelor;
• modurile de adresare;
• sistemul de intrare / ieşire (I/O).

5
MULTIMEA INSTRUCTIUNILOR MASINA
(Instruction Set Arhitecture – ISA)
• ISA este o componentă a maşinii de calcul, vizibilă
programatorului la nivel de limbaj de asamblare, componentă
care realizează interfaţa între software şi hardware

6
MULTIMEA INSTRUCTIUNILOR MASINA

defineşte:

• organizarea Sistemului de Calcul, modul de stocare a informaţiei


(regiştri, memorie);
• tipurile şi structurile de date (codificări, reprezentări);
• formatul instrucţiunilor;
• setul de instrucţiuni (codurile operaţiilor) pe care microprocesorul
le poate efectua;
• modurile de adresare şi accesare a datelor şi instrucţiunilor;
• condiţiile de excepţie.

7
CLASIFICARE SETURI DE
INSTRUCŢIUNI

• Numărul de adrese de operanzi pe instrucţiune


• Locul de stocare a operanzilor pentru instrucţiunile
executate de UCP
• Tipul operaţiilor efectuate de setul de instrucţiuni
• Tipul datelor prelucrate de unităţile aritmetice şi logice

8
RESURSELE DE PROGRAMARE ALE UNUI PROCESOR
Registrele generale (RG) ale UC
Cod reg.
R0 0000 (0)
R1 0001 (1)

R14
1110 (E)
R15 1111 (F)

15 0
Rx cuvânt (16biţi)
15 Rx 0 RQx
15 8 dublu cuvânt cvadruplu
octet High RRx 31 Rx+1 16
RxH cuvânt
x - par x-
47 Rx+2 32
7 0 multiplu
RxL 63 Rx+3 48 de 4
octet Low

9
RESURSELE DE PROGRAMARE ALE UNUI PROCESOR

Setul de instrucţiuni al unui procesor


Totalitatea operaţiilor elementare pe care le poate executa un procesor
Clasificate (din punct de vedere funcţional):
• Instrucţiuni de transfer date (pe octet, cuvânt, bloc),
• Instrucţiuni logice şi aritmetice
• Instrucţiuni booleene (pe bit);
• Instrucţiuni de control al programului (salt, apel/revenire la/din
subrutină, condiţionat sau necondiţionat);
• Instrucţiuni de control al procesorului (oprire procesor, control mod de
întreruperi, regim de putere redusă)

Din punct de vedere al referirii la memorie sau la sistemul de intrare/ieşire:


• Instrucţiuni fără referire la memorie sau circuitele de I/E,
• Instrucţiuni cu referire la memorie,
• Instrucţiuni de I/E (instrucţiuni de transfer între circuitele de I/E şi
registrele procesorului
• Instrucţiuni complexe.
10
Setul de instrucțiuni al unui procesor
Instrucțiuni de transfer date
• Instructiunile de transfer deplaseaza informatia dintre locațiile
memoriei interne, între registre sau intre locatii si registre fara a
altera continutul informatiei transferate. Instructiunea trebuie sa
specifice explicit sau implicit adresa sursa si adresa de destinatie a
transferului.
• In timpul transferului si dupa transfer, informatia din sursa ramine
neschimbata. Cele mai uzuale instructiuni ale acestei grupe sint cele
prin care continutul unei locatii trece intr-un anumit registru, registrul
acumulator, precum si instructiunea de transfer invers: dintr-un
registru intr-o locație a memoriei interne.

11
Instrucțiuni de prelucrare date (instrucțiuni operaționale)

• Instrucțiunile operaționale prelucreaza datele pastrate in locatiile


memoriei interne si in registrele procesorului.
• Cele mai cunoscute instrucțiuni ale acestei grupe sunt cele care
efectuează operațiile aritmetice de bază: adunarea, scăderea,
înmulțirea și împărțirea.
• Instructiunile logice de tipul ŞI, SAU, NU sunt instrucțiuni
operaționale care acționează asupra pozitiilor individuale ale
informației binare.
• In categoria instrucțiunilor operaționale întâlnim și instrucțiuni de
tipul: sterge continutul unei locatii sau al unui registru,
complementeaza continutul unei locatii, crește cu o unitate
continutul unui registru etc.
• In categoria instructiunilor operationale sint incluse instructiunile de
deplasare a informatiei, in care partea de adresa a instructiunii
contine un numar intreg, care specifica numarul pozitiilor cu care se
face deplasarea.
12
Instructiuni pentru controlul desfasurarii programului

• Instructiunile de salt se utilizeaza pentru modificarea ordinii de executie a


instructiunilor.
• In mod normal, instructiunile unui program sunt analizate si executate in
mod secvential, in ordinea in care sint asezate in memorie.
• Aceasta ordine poate fi schimbata cu ajutorul instructiunilor de salt
conditionat sau neconditionat.
• Instructiunile de salt conditionat permit alegerea continuarii programului pe
o anumita ramura, in functie de o conditie de test realizata.
• Folosirea instructiunilor de salt conditionat dau posibilitate utilizatorului sa
introduca decizii logice in procesul executiei programului.
• O instructiune de salt neconditionat contine, in partea de adresa, adresa
instructiunii care va fi executata in continuare.
• Instructiunile de apel/revenire de/din subrutine

13
Programarea cu subrutine

• Subrutina este o secvenţă de program ce poate fi apelată ori de câte ori


este nevoie, deşi este plasată în memorie o singură dată. Aceasta
secvenţă de instrucţiuni poate fi privită si ca un program independent deoarece
implementează un anumit algoritm. Algoritmii operaţiilor repetitive pot fi
implementaţi sub forma de subrutine, de exemplu: operaţii de intrare/ieşire,
conversia datelor, manipularea unor liste sau a altor structuri de date, operaţii
matematice în binar sau în BCD, operaţii specifice unui program aplicativ etc.
• Pentru a transforma o succesiune de instrucţiuni într-o subrutina trebuie sa i se
repartizeze un nume, care este de obicei eticheta primei instrucţiuni din
secvenţă, şi o instrucţiune finală care este RET(urn). Programul principal
(apelant) conţine întotdeauna, în locul unde este necesară acţiunea subrutinei, o
instrucţiune de CALL al cărei operand este chiar numele subrutinei.
• La apelarea subrutinei SUB instrucţiunea CALL SUB va depune în stivă adresa
instrucţiunii următoare (adresa de revenire în programul principal), iar
numărătorul de adrese (PC) va fi încărcat cu adresa de etichetă SUB, adică
începutul subrutinei. Revenirea din subrutină este efectuata de instrucţiunea
RET care scoate din stivă adresa de revenire. Instrucţiunile CALL şi RET asigură
apelarea subrutinei şi reîntoarcerea din subrutină în programul apelant.
14
RESURSELE DE PROGRAMARE ALE UNUI PROCESOR

Moduri de adresare - formatul instrucţiunilor


Adresarea datelor
AE
Directă la REGistru: C-op Reg Operand

M-P REG
Ex: Înainte După
a) CPL R1 R1: 170F E8F0
b) LD R0, R2 R0: 231A 1E09
R2: 1E09 1E09

IMediată C-op

Operand

M-P

Ex: Înainte După


a) LD R0, 13AFH R0: 170F 13AF
b) LD R1H, 00 R1: 231A 001A 15
RESURSELE DE PROGRAMARE ALE UNUI PROCESOR

Moduri de adresare - formatul instrucţiunilor


Adresarea datelor

DIRectă la memorie C-op


AE
Adresa operand Operand

M-P M-D

Ex: Înainte După


a) LD R0L, (153FH) R0: 53A2 530F
b) LD R2, (153EH) R2: 231A 0F37

Adresa Mem: 153E: 37 37


153F: 0F 0F

16
RESURSELE DE PROGRAMARE ALE UNUI PROCESOR

Moduri de adresare - formatul instrucţiunilor


Adresarea datelor
INDirectă prin registru
AE
C-op Reg Adr. operand Operand

M-P REG M-D

Ex: Înainte După


a) LD R0, (R7) R0: 53A2 0F37
R7: 831A 831A
831A: 37 37
831B: 0F 0F
b) LD (R7), R0 R0: 53A2 53A2
R7: 831A 831A
831A: 37 A2
831B: 0F 53
17
RESURSELE DE PROGRAMARE ALE UNUI PROCESOR

Moduri de adresare - formatul instrucţiunilor


Adresarea datelor

Bazată - adresare indirectă prin registru cu deplasare

AE
C-op Reg Adr. bază + Operand
Deplasament
M-P REG M-D

Înainte După
LD R1, (R7+8) R1: 53A2 0F37
R7: 8310 8310

Adr. Mem 8318: 37 37


8319: 0F 0F

18
RESURSELE DE PROGRAMARE ALE UNUI PROCESOR

Moduri de adresare - formatul instrucţiunilor


Adresarea datelor
Bazată indeXată
AE
C-op RegI RegB Adr. bază + Operand
Adr. index
M-P REG M-D

LD R1, (R6+R7) R1: 53A2 4FA7


R6: 0318 0318
R7: 8000 8000

8318: A7 A7
8319: 4F 4F

19
RESURSELE DE PROGRAMARE ALE UNUI PROCESOR

Moduri de adresare - formatul instrucţiunilor


Adresarea datelor
Bazată cu indeX şi Deplasare

C-op Regi RegB Adr. bază +


AE
Deplasare Adr. index + Operand

M-P REG M-D

Ex: Înainte După


LD R1, (R6+R7+18h) R1: 53A2 4FA7
R6: 0300 0300
R7: 8000 8000

8318: A7 A7
8319: 4F 4F
20
RESURSELE DE PROGRAMARE ALE UNUI PROCESOR

Moduri de adresare - formatul instrucţiunilor


Adresarea instrucţiunilor

Adresare Secvenţială: PC ← PC + n ;
unde n este numărul de octeţi al instrucţiunii curente (n ≥ 1).
C-op
Adresa A-E

M-P PC M-P

Adresare Directă: PC ← adr ;


unde adr este operandul instrucţiunii de salt

Adresare Relativă: PC ← PC + depl

21
RESURSELE DE PROGRAMARE ALE UNUI PROCESOR

Stiva şi operaţii cu stiva


PUSH C
i -4
SP i -3 C

i -4 i -4 i -2 B
i -4
i -3 i -3 i -1 A
i -3
i -2 i -2 i
SP i -2 B
i -1 SP i -1 A i -1 A
SP i i i
i -4
i -3
LD SP, i PUSH A PUSH B i -2 B
SP i -1 A
Mecanismul de lucru cu stiva i
POP B

22
PIC midrange
schema bloc

23
Formatul general al instrucţiunii

24
Ciclul de instrucţiune

Q1: Instruction Decode Cycle or forced No operation


Q2: Instruction Read Data Cycle or No operation
Q3: Process the Data
Q4: Instruction Write Data Cycle or No operation

25
Arithmetic Logical Unit (ALU)

Q1: Instruction Decode Cycle or forced No operation


Q2: Instruction Read Data Cycle or No operation
Q3: Process the Data
Q4: Instruction Write Data Cycle or No operation 26
Memoria de date

27
Memoria de date
Register File Map

28
Memoria de date
Indirect Addressing

29
PIC Midrange
Memoria program

30
31
32
Etapele de realizare a unui program
procesor.h
prog.c Header subrutine_1.c
cod sursă C
Cod sursă Cod sursă

Preprocesor

Compilator
subrutine_2.asm
cod sursă ASM Cod sursă
Asamblor subrutine_3.lib

cod obiect Biblioteci


Linkeditor

Cod executabil
33
Etapele de realizare a unui program

Preprocesarea - presupune înlocuirea directivelor de


preprocesare din fişierul sursă C. Directivele de
preprocesare încep cu #.
Printre cele mai folosite sunt:
- #include – pentru includerea fişierelor header într-un alt
fișier.
- #define și #undef – pentru definirea, respectiv anularea
definirii de macrouri.
- #if, #ifdef, #ifndef, #else, #elif, #endif, pentru compilarea
condiţionată si sunt utile pentru comentarea bucăților
mari de cod
Compilarea este faza în care din fişierul preprocesat se
obţine un fişier în limbaj de asamblare.
34
Etapele de realizare a unui program

Asamblarea - este faza în care codul scris în limbaj de


asamblare este tradus în cod mașină, reprezentând
codificarea binară a instrucțiunilor programului iniţial.
Fişierul obţinut poartă numele de fişier cod obiect şi are
extensia .o.
Editarea de legături
Pentru obținerea unui fişier executabil este necesară
rezolvarea diverselor simboluri prezente în fişierul obiect.
Această operaţie poartă denumirea de editare de legături,
link-editare, linking sau legare.

35
Etapele de realizare a unui program

Ciclul de proiectare

Compilarea unui program se poate face


In modul depanare (Debug) sau modul
Release.

Managerul de proiecte MPLAB X IDE

36
Managerul de proiecte MPLAB X IDE
MPLAB X IDE este un „invelis” care coordonează toate instrumentele
dintr-o singură interfață grafică cu utilizatorul, de obicei automat. De
exemplu, odată ce codul este scris, acesta poate fi convertit în
instrucțiuni executabile și descărcat într-un microcontroler pentru a
vedea cum funcționează. În acest proces sunt necesare mai multe
instrumente: un editor pentru a scrie codul, un manager de proiect
pentru a organiza fișierele și setările, un compilator sau asamblator
pentru a converti codul sursă în cod de mașină și un fel de hardware sau
software care fie se conectează la un microcontroler sau simulează
funcționarea unui microcontroler.
Managerul de proiect organizează fișierele de editat și alte fișiere
asociate, astfel încât acestea să poată fi trimise la instrumentele de
limbă pentru asamblare sau compilare și, în cele din urmă, către un
linkeditor. Linker-ul are sarcina de a plasa fragmentele de cod obiect din
asamblator, compilator și biblioteci în zonele de memorie adecvate ale
controlerului încorporat și să se asigure că modulele funcționează între
ele (sau sunt „legate”).
37
Managerul de proiecte MPLAB X IDE
Întreaga operațiune de la asamblare și compilare prin procesul de
editare de legături (linker) se numește construirea proiectului (build
project).
Compilarea unui program poate fi făcută și separat de comanda de
construire a proiectului (build project) și atunci vor fi invocate
proprietățile specificate pentru instrumentele lingvistice diferit pentru
fiecare fișier integrate toate operațiunile instrumentelor lingvistice.
Fișierele sursă sunt fișiere text care sunt scrise conform regulilor
asamblatorului sau compilatorului.
Asamblatorul și compilatorul le convertesc în module intermediare de
cod mașină și substituenți pentru referințe la funcții și stocarea datelor.
Linkerul rezolvă acești substituenți și combină toate modulele într-un
fișier de cod mașină executabil.
Pentru a scrie codul este folosit un editor de text care recunoaște
cuvintele cheie din text și folosește coduri de culori pentru a identifica
diverse elemente, cum ar fi mnemonice de instrucțiuni, instructiuni în
limbaj C și comentarii.
38
Managerul de proiecte MPLAB X IDE
Modul DEBUG
Daca programul a fost compilat in modul depanare (Debug), editorul
lucrează cu celelalte instrumente pentru a afișa execuția codului în
depanator.
Punctele de întrerupere (BreakPoints) (care opresc sau „întrerup”
execuția programului) pot fi setate în editor, iar valorile variabilelor pot fi
inspectate prin plasarea cursorului mouse-ului peste numele variabilei.
Numele variabilelor pot fi trase din ferestrele de text sursă și apoi plasate
într-o fereastră Watches, unde valorile lor în schimbare pot fi urmărite
după fiecare punct de întrerupere sau în timpul execuției codului.

39
40
41
Sistemul de I/E
Interfaţarea microprocesoarelor cu exteriorul
Overview

• Interfaţa paralelă
• Interfaţa serie
• UART (RS232)
• SPI
• Circuite de numărare temporizare si extensii ale acestora
• Interfeţe pentru semnalele analogice
• convertor A/D
• convertor D/A
• comparator numeric

2
Remember: Componenţa hardware a unui calculator
Calculator
Sistem I/E Tastatură,
UCP
Mouse
(Procesor) Memorie
- activ - - pasiv - Disc
Intrări sau mem ext
Control (Input) (programe,
(“creier”) (păstrează
programe şi şi date ce nu
date pe durata se află în
Execuţie execuţiei) iEşiri execuţie)
(“muşchi”) (Output) Display,
Imprimantă

Input
Output Proces

3
Sistemul de I/E

• Subsistemul de intrare-ieşire (I/E) al unui calculator asigură calea


de comunicaţie a informaţiilor între calculator şi mediul extern
(logica externă care nu lucrează direct cu UCP)
• Prin intermediul acestui subsistem, utilizatorul introduce
programele şi datele dorite în memoria calculatorului, pentru
prelucrare, şi tot cu ajutorul său rezultatele se înregistrează, sau se
afişează în exterior.

4
Exemple de dispozitive de I/E
viteze I/E : bytes transferaţi pe secundă
Dispozitiv Tip Partener Viteza
(Kbytes/sec)

Keyboard Intrare Om 0.01


MouseIntrare Om 0.02
Line Printer iEşire Om 1.00
Floppy disk Memorare Maşină 50.00
Laser Printer iEşire Om 100.00
Magnetic Disk Memorare Maşină 10,000.00
Network-LAN I/E Maşină 10,000.00
Display grafic iEşire Om 30,000.00
(mouse versus display: 1 la 1 million)

5
Rolul intrefețelor de I/E
Principalele particularitati care diferenţiaza UCP de periferice
impunând folosirea circuitelor de interfaţă, constau în următoarele:
– perifericele sunt dispozitive a căror funcţionare se bazează pe
diferite tehnologii (electromecanice, electromagnetice, electronice).
De aceea trebuie să existe dispozitive de conversie a valorilor
semnalului, pentru o adaptare din punct de vedere electric cu
calculatorul;
– viteza de transfer a datelor este mult mai scăzut la periferice faţă
de UCP. Pentru transferul de date între periferice şi UCP sau
memorie trebuie deci să existe mecanisme de sincronizare.
– codurile şi formatele datelor în echipamentele periferice pot fi
diferite faţă de codurile şi formatele folosite în UCP şi memorie.
– există o varietate de periferice, cu moduri de funcţionare diferite
şi de aceea acestea trebuie controlate adecvat, pentru a nu perturba
celelalte periferice conectate la UCP 6
Rolul intrefețelor de I/E
• Legătura între UCP şi dispozitivele de I/E (dispozitivele
periferice) se face prin intermediul unor circuite de interfaţă
I/E
• Circuitele de interfaţă I/E asigură, din punct de vedere
hardware, schimbul corect de date
• Circuitele de interfaţă se cuplează la magistralele
calculatorului şi ele sunt adresabile la nivel de registru-port
de intrare-ieşire
• Prin port înţelegem aici un loc (în general un registru), cu
adresă specifică, adresă care constituie o "poartă" prin care
calculatorul realizează schimb de informaţie cu exteriorul; fie
culege informaţia, iar portul este port de intrare (PI), fie
transmite informaţia la un port de ieşire (PE)
7
Sistemul de I/E

BA (mag. adrese) selecţie

BD (mag. date)
CPU BC (mag. comenzi)
comanda transfer sincronizare
(microprocesor)
Circuit Periferic
I/E

date
(transfer)

Sistemul de I/E în cadrul unui microsistem

8
Sistemul de I/E
• Registrele port pot fi adresate în spaţiul de adrese al memoriei
(vorbim atunci de mapare a porturilor în spaţiul de
memorie) sau pot fi adresate în spaţiu separat de cel de memorie
(mapare în spaţiul de I/O).
• Ca urmare adresele porturilor de intrare-ieşire pot fi tratate în două
moduri:
– ca porturi cu adrese distincte faţă de adresele de memorie (semnalele
de control şi selecţie fiind specifice pentru memorie, respectiv pentru
spaţiul de intrare-ieşire);
– adresele porturilor sunt înglobate în spaţiul de adrese al memoriei
principale. Această organizare a adreselor (numita şi "mapare a
adreselor de I/O în spaţiul de memorie") face ca porturile să fie
selectate prin aceleaşi semnale de adresă şi control ca şi memoria
• În lucrul cu porturile de I/O se vor utiliza instrucţiunile de transfer
specifice memoriei.

9
Sistemul de I/E
Address Bus

Mem I/E
0000H
/MREQ /IORQ
MEM

Sistemul I/E separat de memorie


0FF00H
I/E
0FFFFH

Sistemul I/E inglobat in spatiul memoriei


10
Sistemul de I/E

T1 T2 TW* TW T3
CLOCK
A0 – A7 Adresa de port validă

/IORQ
/WAIT
/RD
Citire port
D0 – D7 IN

/WR Scriere port


D0 – D7 DATA OUT VALID

Cicli de transfer I/E


11
Sistemul de I/E – circuite de interfață

• Interfeţe de I/E• Unele circuite de interfaţă sunt incluse în


circuitele specializate de control (“controllere”) ale perifericelor
• De exemplu, controllerul unităţii de disc, controlează operaţiile
fizice efectuate de discul magnetic. Pentru ca să se poată face
cuplarea la calculator controlerul trebuie să respecte nişte
specificaţii standardizate de interfaţare
• Funcţia principală a circuitelor interfaţă de I/E este de a
rezolva diferenţele funcţionale, electrice şi informaţionale dintre
calculator şi periferic
• Circuitele controler au în plus şi sarcina specifică de control a
unui anumit periferic

12
Sistemul de I/E – Transmisia paralelă a datelor
In mod uzual într-un sistem numeric apare necesitatea
schimbului de informaţii între sistem şi utilizator, sau chiar
între două sisteme distincte.
In mod natural informaţia schimbată reprezintă cuvinte de
date.
O soluţie simplă constă în transmiterea paralelă a datelor.
De exemplu, la un sistem ce are cuvântul de date de 8 biţi,
transmisia paralela a datelor înseamnă transmiterea
simultană a datelor prin intermediul unui cablu format din
8 conductori, fiecare conductor purtând un bit, ca în figură.

13
Sistemul de I/E – Transmisia paralelă a datelor
DATA BUS
U3 74LS374
D0 3 2 +U
D1 4 D0 Q0 5
D2 7 D1 Q1 6
D3 8 D2 Q2 9 .
D4 13 D3 Q3 12 .
D5 14 D4 Q4 15 .
D6 17 D5 Q5 16
D7 18 D6 Q6 19
U2A D7 Q7
/WR 2 1
1 11 OC
3 CLK
U1
A4 1 15
A Y0 74LS02
A5 2 14
A6 3 B Y1 13
C Y2 12
Y3 11 U4 74LS241
/M1 6 Y4 10 D0 18 2
/IORQ 4 G1 Y5 9 D1 16 1Y1 1A1 4
A7 5 G2A Y6 7 D2 14 1Y2 1A2 6 TTL
G2B Y7 D3 12 1Y3 1A3 8 .
D4 9 1Y4 1A4 11 .
74HCT138 2Y1 2A1 .
D5 7 13
D6 5 2Y2 2A2 15
D7 3 2Y3 2A3 17
U2B 2Y4 2A4
5 1
4 1G 19
/RD 6 2G

74LS02

Exemplu de port de intrare/ieşire (paralel ) realizat cu circuite de uz general


14
Sistemul de I/E

R1 D1 R3
R

R4
+
TTL sau CMOS
- R2
DZ C1 LED OC

Adaptarea semnalelor de intrare şi separarea galvanică

15
Sistemul de I/E

U1A +5V V_0

1 2 ISO1
OUT 1
1 8 R3 R4
R1 4K7 4K7 D1
7405 300 1N4757
7
2
4 Q1

6
IESIRE1
3
R2 5

U1B 300 HCPL2731


Q2 D2
3 4 1N4757
OUT 2

IESIRE2
7405

Separarea galvanică şi amplificarea semnalelor de ieşire

16
Sincronizarea transferului de informații
Transmisia iniţiata de emiţător

T R
Data validă

READY (STB)

Transmisia solicitată de receptor

T R Data validă

REQ

17
Sincronizarea transferului de informații – protocol
asincron cu confirmare
ReaDY semnal de ieşire (gata de transfer)
Transmiţător Receptor
T: RDY=0 – nu sunt date noi disponibile
RDY=1 (front crescător) noua dată
RDY RDY este pregătită la ieşire;
STB
STB
R: RDY=0 – registrul de intrare este plin
(buffer full) şi nu poate primi date noi;
RDY=1 (front crescător) registrul de
T iniţiază comunicaţia
intrare este gol (empty) şi poate primi
OUT T Data validă date noi
STroBe - intrare de confirmare
RDY
STB=1 (front crescător)
STB
T: informaţia a fost preluată de
receptor; se poate trimite o altă dată
R iniţiază comunicaţia R: transmiţătorul a furnizat o nouă
IN R Data nouă dată ce poate fi citită (dacă portul de
intrare al receptorului este prevăzut cu
RDY
un latch acest semnal comandă
memorarea datei)
STB
18
SEMNALE DE CONTROL LA INTERFAŢĂ
• Circuitul de interfaţă fiind legat între magistrala de I/E a sistemului
şi echipamentul periferic, are semnale specifice de
cuplare/interfaţare cu magistrala, respectiv cu echipamentul
periferic
• Dacă spre periferic tipurile de semnale şi modul de lucru cu
acestea depind în mare măsură de caracteristicile dispozitivului
periferic, partea dinspre magistrală, face legătura cu memoria şi
UCP şi cuprinde semnale pentru selecţia circuitelor de I/E, pentru
controlul transferului datelor şi semnale de cerere de servicii către
UCP.
• Transferul datelor între un port de I/E şi UCP are loc, în principiu,
asemănător cu transferul datelor între procesor şi memorie.
• Există patru tipuri de semnale de comandă pe care le poate
recepţiona/transmite o interfaţă:
– semnale de control
– semnale de stare
– date de ieşire 19

– date de intrare
20
.
.
.

.
.
.

Registru de Registru de Registru de Registru


date intrare date ieşire comandă de stare
Tampon Logica de Logică
date comandă întreruperi
INT_ACK
WRITE
DATE

READ

IRQ
BUS

ADR
SEL
circuit de I/E generic
Schema bloc a unui
Microcontrolere

• Un microcontroler înglobează în aceeaşi capsulă funcţiile tipice ale


unui procesor şi elementele specifice unui microcalculator
(memorie RAM şi ROM, porturi paralele şi seriale, temporizatoare
programabile, port serial, controler de întreruperi şi eventual
interfețe analogice (convertoare A/N şi N/A, comparator),
controler DMA, procesor în virgulă mobilă).

• Funcţionarea este identică cu a unui sistem cu microprocesor dar


încorporarea memoriei şi a perifericelor în acelaşi chip cu unitatea
centrală reduce timpii de acces ducând la scurtarea timpilor de
execuţie a instrucţiunilor. În plus structura hardware se simplifică
foarte mult, scade costul total al sistemului şi crește fiabilitatea.

Microprocesoare și microsisteme 1
Schema bloc a unui microcontroler generic

CLK RESET

Unitate de
comandă
ROM intern
(EPROM,
Controler
ALU RAM OTPROM, întreruperi
Procesor (interne - Logică
intern EEPROM,
binar (SFR) FLASH) externe) DMA
NUCLEU CPU Control
magistrale
externe
Procesor în Porturi Porturi seriale Timer A/D
virgulă paralele (sincrone, /Counter D/A
mobilă intrare-ieşire asincrone) (Compare & (PWM)
(FPU) Capture)

Microprocesoare și microsisteme 2
Microcontroller VS Microprocessor

Microprocesoare și microsisteme 3
Arhitecturi de calcul
von Neumann (Princeton)

Microprocesoare și microsisteme 4
Arhitecturi de calcul
Harvard

Microprocesoare și microsisteme 5
Arhitecturi de calcul
Harvard modificat

Microprocesoare și microsisteme 6
Ciclul de executie al unei instructiuni

Microprocesoare și microsisteme 7
Tipuri de procesoare (nucleu)

CISC - Complex Instruction Set Computer


• Setul de instrucţiuni este implementat prin microcod permiţând
instrucţiuni foarte complexe;
• Timpul de execuţie depinde de comanda sau de secvenţa de
microcod ce trebuie executată şi necesită mai mulţi timpi de
ceas;
• Se pot utiliza compilatoare, dar în aplicațiile de timp real pentru
procese rapide acestea nu sunt foarte eficiente deoarece
compilatorul nu poate exploata întotdeauna avantajul modurilor
de adresare şi al seturilor de instrucţiuni foarte complexe;
• Se interfaţează uşor cu periferice specifice aplicaţiilor de
conducere temporizator, ceas de gardă, modulator PWM,
UART, convertor A/N etc;

Microprocesoare și microsisteme 8
Tipuri de procesoare (nucleu)

RISC - Reduced Instruction Set Computer


• Au un set de instrucţiuni mic dar foarte eficient;
• De regulă setul de instrucţiuni este codificat hardware pentru a
optimiza timpul de execuţie (o instrucţiune pe ciclu de ceas).
Încorporează structuri pipe-line care permit execuţia câtorva
instrucţiuni în paralel;
• Setul de instrucţiuni este ortogonal fiind mai uşor de generat
cod optimizat cu ajutorul compilatorului;
• Posedă seturi mari de registre, comutabile, asigurând latenţă
mică la întreruperi.
• Încorporează structuri hardware, dedicate pentru implementarea
facilă a sistemelor de operare;

Microprocesoare și microsisteme 9
Structura unui microsistem 1

Microprocesoare și microsisteme 10
Structura unui microsistem 2

Microprocesoare și microsisteme 11
Structura unui microsistem 3

Microprocesoare și microsisteme 12
Structura unui microsistem 4

Microprocesoare și microsisteme 13
Tipuri de microcontrolere
[Link]

Microprocesoare și microsisteme 14
8051

• Varianta de baza conţine 4KB memorie ROM,128B memorie RAM,


doua timere de 16 biţi, o interfaţa seriala, 4 porturi paralele de 8 biţi si doua
linii de întreruperi externe. Circuitul incorporează oscilator si circuit de
ceas astfel incat pentru funcţionare necesita numai un cristal de cuarţ si un
condensator pentru RESET. Trei dintre porturile paralele au rol dublu
putând fi utilizate pentru interfaţarea cu memorie externa si circuite de I/E
suplimentare. În această situaţie poate adresa pana la 128KB de memorie
(64K RAM si 64K EPROM). Variantele iniţiale ale circuitului sunt cu
memorie EPROM (8751), fără memorie ROM (8031, 8032) sau cu 256B
memorie RAM si 3 numărătoare (8052, 8032).
• Setul de instrucţiuni 8051 este împărţit in 5 grupe funcţionale:
operaţii logice, operaţii aritmetice, transfer de date, prelucrări pe bit, si
instrucţiuni pentru controlul programului si al procesorului.

Microprocesoare și microsisteme 15
8051 - schema bloc
INTRERUPERI EXTERNE

CONTROLER ROM
INTRERUPERI RAM
4K TIMER 0 INTRARI
128B
TIMER 1 NUMARARE

CPU

CONTROL PORTURI PORT


OSC. MAGISTRALE PARALELE SERIE
I/E

RXD TXD
P0 P2 P1 P3

ADRESE/DATE

Microprocesoare și microsisteme 16
I8096

• I8096 a fost proiectat pentru aplicaţii de viteza si performante ridicate, din acest motiv
arhitectura sa diferind de cea a microcontrolerelor 8048 si 8051. I8096 cuprinde două
secţiuni distincte: CPU si secţiunea de I/E. Fiecare din aceste secţiuni poate fi divizata in
blocuri componente ca in fig. ce urmează.
• Unitatea centrala a microcontrolerului 8096 utilizează o unitate aritmetica si logica pe 16
biţi care lucrează cu o zona de 256 de registre in loc de un singur acumulator ca in cazul
procesoarelor clasice. In acest fel viteza de efectuare a calculelor crește, nemaifiind necesar
transferul informaţiei intre registre, si scurtează lungimea programelor. In plus unitatea
aritmetica dispune de circuite suplimentare pentru înmulţiri și împărţiri pe 16 biţi, durata
unei astfel de operaţii fiind de 6,5 s la 12 MHz.
• In afara de perifericele pe care le poseda 8051, 8096 dispune de facilitaţi specifice pentru
conducerea proceselor rapide: convertor analog numeric de 10 biţi cu 8 canale, ieşire de tip
PWM, ceas de garda si in special timer-ele “soft” asociate cu intrari/iesiri rapide. Circuitul
dispune de patru intrări rapide ale căror tranziţii pot declanşa memorarea instantanee a
valorii timer-ului și a intrării care a declanşat operaţia. Ieşirile rapide, in număr de sase, pot
fi programate pentru a genera tranziţii la momente de timp specificate și deci să declanşeze
evenimente in exterior.
Microprocesoare și microsisteme 17
I8096
DGND VCC VBAT VPD 1 XTAL 2 CLK

REG. P3 ROM
GEN.
O CLOCK REG. P4 IN CHIP
[Link].
BATERIE ...
/EA
PC SEC.
ALE

CONTROLER /BHE
[Link]. A ZONA. PC [Link] MEMORIE /RD
REG. WAIT
[Link]. B PSW /WR
UNITATE READY
RALU
[Link]. COMANDA /RESET
SFR
W -D TIMER
...

CONV. P3
VREF A/N
REG. P1 PORT PW M CONTROLER MAG. ADR
AGND INTRERUPERI UNIT. SI DATE
SERIE HSIO
REG. P2
TIMER 1 P4
TIMER 2

BUF. P0 BUF. P1 BUF. P2

Microprocesoare și microsisteme 18
PO (AIN) P1 P2 (Fct. alt) HSI HSO
• Criterii de selecție
– Curent de alimentare (necesar de energie)
– Frecvența de ceas
– Putere computațională
– Pini I/E
– Memorie
– Periferice încorporate
– Alte….

Microprocesoare și microsisteme 19
PIC

• Familia microcontrolerelor pe 8 biţi conţine peste 400 de


variante, grupate în trei categorii, după lungimea cuvântului
instrucţiune, respectiv microcontrolere cu lungimea cuvântului
instrucţiune de 12, 14 sau 16 biţi (familiile reprezentative
pentru acestea sunt PIC10, PIC12, PIC16 şi PIC18).
• PIC10 cuprinde unele din cele mai simple microcontrolere, în
capsulă cu 6 sau 8 pini, destinate în special aplicaţiilor cu
alimentare de la baterie şi aplicaţiilor unde sunt impuse
dimensiuni reduse.
• PIC12 cuprinde microcontrolere în capsulă cu 8 pini, cu un preţ
de cost redus.

Microprocesoare și microsisteme 20
• Familia PIC16 conţine microcontrolere cu performanţe medii,
cu un set extins de dispozitive periferice, realizate în capsule cu
14 ÷ 64 pini.
• Microcontrolerele din seria PIC18, disponibile în capsule
cu 18 până la 100 pini, constituie versiunea cea mai
performantă a microcontrolerelor de 8 biţi Microchip, având
câteva îmbunătăţiri semnificative faţă de generaţiile anterioare:
multiplicator hardware, un set mai bogat de instrucţiuni, un
număr mai mare de registre interne, ş.a..

Microprocesoare și microsisteme 21
Schema bloc a unui microcontroler PIC

0000 CONTOR PROGRAM Registru Pointer


0004 Registru Stare Memorie Date
Acumulator (Register File)
Memoria Program STIVA
Unitate Aritmetica si
Logica
Memorie EEPROM
Registrul Instructiunii Decodificator
Instructiuni
Biti Configurare CPU Oscilator intern

Periferice

Microprocesoare și microsisteme 22
Schema bloc a microcontrolerelor din familia PIC

Adresa de date 12
X14
Registre Bancuri de RI 16 Memorie Program
cu funcţii memorie RAM Decodificator
speciale (SFR) Instrucţiuni
Control
Adresa
Data
Interrupt program

Periferice Registru de Numarator de program


Dispozitive I/O lucru W
(GPIO, Timer, Comparator,
Convertor A/D, USART,
SPI/I2C, Capture, Compare, Stiva
PWM ... ) ALU

Microprocesoare și microsisteme 23
PIC-LAB_DVB – resurse disponibile pentru aplicatii

VDD
5VTGT
} ICSP
RESET MCLR/Vpp RB7
RA0/AN0 RB6
RA1/AN1 RB5 L6
RB4 L5 VDD
RA2/AN2
RB3 L4
P2 RA3/AN3 RB2 L3
RA4/AN4 RB1 But2
RA5/AN5 RB0 But1
RC7 RX
RC6 TX
OSC1 RC5 L2 RX RS
20MHz OSC2 RC4 L1 TX 232
RC3 CCP2
RC2
PIC16F876A RC1 CCP1
RC0 T1CKI

Microprocesoare și microsisteme 24
Conectori
programare
ICD2
Conector (RJ116P6)
PIC18F2550
USB tip B
PIC Kit2
EE2
EE1

RESET L6

MAX232
PIC16F876A
L5 RS232
L4
But2
L3
But1 L2
L1

PIC-LAB_DVB - amplasare componente

Microprocesoare și microsisteme 25
Sistemul de întreruperi la microcontrolerele PIC

Microprocesoare și microsisteme
Microcontrolerele pot avea mai multe surse de întrerupere. Aceste întreruperi în
general pot fi generate de fiecare modul periferic, deși unele module periferice pot
genera mai multe întreruperi (cum ar fi modulul USART). Câteva exemple de
surse de întrerupere sunt următoarele:

• INT Pin Interrupt (întrerupere externă)


• PORTB Change Interrupt (pinii RB7:RB4)
• Intrerupere generată de cirduitul de comparare
• Întreruperea portului slave parallel
• Întreruperi USART (la primire sau la transmitere)
• Întreruperea la finalizarea conversiei A/D
• Întreruperi generate la depășirea numaratorului (Timer)

Microprocesoare și microsisteme
Logica de întreruperi pentru microcontrolerele din familia PIC mid-range

Microprocesoare și microsisteme 28
Harta memoriei program pentru microcontrolerele din familia
PIC mid-range

Microprocesoare și microsisteme 29
Logica de întreruperi pentru microcontrolerele PIC18...

Microprocesoare și microsisteme 30
Harta memoriei program pentru microcontrolerele PIC18...

Microprocesoare și microsisteme 31
Interfețe analogice
 Convertor analog numeric
(Analog to Digital Converter – ADC)
 Convertor numeric analogic
(Digital to Analog Converter – DAC)
 Circuite de prelucrare analogică
 Amplificator operațional
 Comparator analogic

1
Conversia datelor

În procesele de prelucrare și comunicare există numai două formate de date: analogice și


digitale.
Conversia datelor reprezintă procedeul de transformare a datelor (semnalelor) din formă
analogică în formă numerică sau invers.
 Semnalele din lumea reală (tensiune, curent, temperatură, presiune, poziție, viteză,
sunet, lumină, etc.) sunt semnale analogice:
 Continue atât în timp cât și în amplitudine
 Sensibile la zgomot și dificil de memorat
 Pentru a interfața sistemele numerice de prelucrare cu lumea analogică sunt necesare
circuite de achiziție și de distribuție a datelor: convertoare analog-numerice (analog-
to-digital converter - ADC) la intrarea în sistemul numeric și convertoare
numeric-analogice (Digital-to-analog converter – DAC) la ieșire.

2
CONVERTOARE A/D ȘI D/A
Encoder Decoder
Condiționare Prelucrare Condiționare
Convertor Convertor
semnale numerică semnale
A/D D/A

Intrare analogică Ieșire analogică

Convertor Analog-la-Digital Convertor


Digital-la-Analog
0110 0110

Rețea Amplificator Tensiune


INTRARE A/D rezistivă sumator analogică

3
Convertoare analog/numerice (ADC) și
numeric analogice (DAC)
 Un convertor analog/numeric [ADC] este un circuit electronic care
primește la intrare un semnal analogic (de regulă o tensiune) și
furnizează la ieșire o valoare numerică corepunzătoare.
 Un convertor numeric/analogic [DAC] este un circuit electronic care
primește la intrare o valoare numerică și furnizează la ieșire
semnalul analogic corespunzător (de regulă o tensiune).
 Convertoarele A/D și D/A se pot găsi ca circuite integrate
specializate, module de conversie sau pot fi integrate complet in
interiorul microcontrolerelor sau alte structuri integrate complexe
(FPGA, SOC, etc).

4
Reprezentarea numerică a unui semnal analogic
 Semnalul analogic se reprezintă ca o serie de valori discrete
(cuantizate) preluate la intervale constante de timp (eșantionate)

Tensiune f (x )
(semnal Numere
continuu)
(discret)

f sample ( x )

perioada de
t
eșantionare
TS
5
Convertor D/A cu rezistențe ponderate

Intrări binare
N=4

3V Rezistență reacție

10 k

2N = 16

Vref 20 k 40 k 80 k 160 k
Tensiune de referință
Amplificatorsumator
(inversor)
Rezistențe de intrare

Acest circuit furnizează la ieșire 16 nivele de tensiune diferite


6
Funcționarea convertorului D/A

Intrare binară = 0000


0001

3V

10 k
= 0.2
0VV

160 k
80 k - 10 k
Vout = x -3 V = 0.1875V
40 k 160 k
20k

Treapta minimă de tensiune a circuitului este 0.1875 V. 7


Funcționarea convertorului D/A
Daca intrarea binară
evoluează în trepte de la
0000 la 1111

Vout(max) = (2N - 1) x 0.1875 V = 2.8325 V


3V
3V

10 k

Vout evoluează
în trepte de la
0 V la3 V

0V

Excursia maximă a semnalului de ieșire este de la 0 la 3 V.


8
Funcționarea convertorului D/A

Intrare binară = 0000


0001

3V

10 k
= 0.2
0VV

150 k
75 k 10 k
Vout = x 3 V = 0.2 V
37.5 k 150 k
18.75 k

Treapta minimă de tensiune a circuitului este 0.2 V. 9


R - 2R ladder DAC

Circuite de conversie numeric-analogică DAC

8.75V

9.375
max.

Convertor D/A cu rezistențe ponderate Convertor D/A cu rețea rezistivă în scară


binar – schema simplificată R-2R (R-2R ladder) – schema simplificată

 Sumarea curenților ponderați binary


 Convertoarele D/A moderne utilizează rețele rezistive in scară R-2R

10
Convertor A/D de tip rampă

0101

ieșire binară

Numărător
Clock

Vin

Comparator
LOW
Generator
rampă
Vin = + 5 V

Ieșire comparator

Impulsuri de ceas la numărător 11


Convertor A/D de tip rampă cu reacție

Numărător
Clock
Ieșire
binară

Vin
Comparator HIGH
LOW D/A
Converter

rampă
Vin
Când Vramp depășește Vin ieșirea
comparatorului trece în LOW și rampă
semnalul de clock este inhibat.
12
Convertor A/D cu aproximații succesive
Ieșire binară
0 1 1 1

Clock Logică de
aproximații
succesive

Vin
7,65V intrare
Comparator
Convertor
D/A

13
Convertor A/D cu aproximații succesive
Exemplu

Obiectiv: Găsirea valorii


binare corespunzătoare Vin
• 8-bit ADC
• Vin = 7.65
• Vfull scale = 10

14
Convertor A/D cu aproximații succesive
Exemplu

Vfull scale = 10, Vin = 7.65


• MSB  LSB
• Average high/low limits
• Compare to Vin
• Vin > Average  MSB = 1
• Vin < Average  MSB = 0

• Bit 7
• (Vfull scale +0)/2 = 5
• 7.65 > 5  Bit 7 = 1
1
15
Convertor A/D cu aproximații succesive
Exemplu

Vfull scale = 10, Vin = 7.65


• MSB  LSB
• Average high/low limits
• Compare to Vin
• Vin > Average  MSB = 1
• Vin < Average  MSB = 0

• Bit 6
• (Vfull scale +5)/2 = 7.5
• 7.65 > 7.5  Bit 6 = 1
1 1
16
Convertor A/D cu aproximații succesive
Exemplu

Vfull scale = 10, Vin = 7.65


• MSB  LSB
• Average high/low limits
• Compare to Vin
• Vin > Average  MSB = 1
• Vin < Average  MSB = 0

• Bit 5
• (Vfull scale +7.5)/2 = 8.75
• 7.65 < 8.75  Bit 5 = 0
1 1 0
17
Convertor A/D cu aproximații succesive
Exemplu

Vin = 7.65
• MSB  LSB
• Average high/low limits
• Compare to Vin
• Vin > Average  MSB = 1
• Vin < Average  MSB = 0

• Bit 4
• (8.75+7.5)/2 8.125
• 7.65 < 8.125  Bit 4 = 0
1 1 0 0
18
Convertor A/D cu aproximații succesive
Exemplu

Vin = 7.65
• MSB  LSB
• Average high/low limits
• Compare to Vin
• Vin > Average  MSB = 1
• Vin < Average  MSB = 0

• Bit 3
• (8.125+7.5)/2 = 7.8125
• 7.65 < 7.8125  Bit 3 = 0
1 1 0 0 0
19
Convertor A/D cu aproximații succesive
Exemplu

Vin = 7.65
• MSB  LSB
• Average high/low limits
• Compare to Vin
• Vin > Average  MSB = 1
• Vin < Average  MSB = 0

• Bit 2
• (7.8125+7.5)/2 = 7.65625
• 7.65 < 7.65625  Bit 2 = 0
1 1 0 0 0 0
20
Convertor A/D cu aproximații succesive
Exemplu

Vin = 7.65
• MSB  LSB
• Average high/low limits
• Compare to Vin
• Vin > Average  MSB = 1
• Vin < Average  MSB = 0

• Bit 1
• (7.65625+7.5)/2 = 7.578125
• 7.65 > 7.578125  Bit 1 = 1
1 1 0 0 0 0 1 21
Convertor A/D cu aproximații succesive
Exemplu

Vin = 7.65
• MSB  LSB
• Average high/low limits
• Compare to Vin
• Vin > Average  MSB = 1
• Vin < Average  MSB = 0

• Bit 0
• (7.65625+7.578125)/2 =
7.6171875
• 7.65 > 7.6171875  Bit 0 = 1
1 1 0 0 0 0 1 1 22
Convertor A/D cu aproximații succesive
Exemplu

Vin = 7.65
• 110000112 = 19510 1

• 8-bits, 28 = 256 0,8

Tensiune
• Digital Output 0,6

• 195/256 = 0.76171875 0,4

• Analog Input 0,2

• 7.65/10 = 0.765 0
7 6 5 4 3 2 1 0
Bit

• Rezoluție
• (Vmax – Vmin)/2n  10/256 = 0.039
1 1 0 0 0 0 1 1
23
INTRĂRI ANALOGICE

 Interfațează microcontrolerul (sistemul numeric) cu ”lumea


analogică”
 De obicei micontrolerele au o unitate de conversie A/D
încorporată, care este formata din:
 Convertor A/D și circuit Eșantionare/Memorare
(Sample/Hold)
 Multiplexor analogic
 Registru (Registre) rezultat
 Controler

24
INTRĂRI ANALOGICE
VREF RESULT
MUX DATA
ANALOG RESULT0
ADCIN0 MUX
RESULT1
ADCIN1
CONVERTOR
S/H A/D DATA
ADCINx

SEMNALE RESULTx
COMANDĂ

START
RESULT
CONV CONTROL REGISTERS
MUX, S/H & ADC X=8...16

A/D

UNITATE DE CONVERSIE A/D 25


INTRĂRI ANALOGICE

 Comanda Start Conversie se poate realiza prin


software, utilizând un eveniment intern sau un pin
extern dedicat.
 Controlerul poate fi programat să execute conversii
în secvență și memorarea rezultatelor cu o singură
comandă Start Conversie.
 Registrele rezultat sunt map-ate în memoria de
date și pot fi accesate ca variabile normale după ce
conversia s-a încheiat.
 La unele micontrolere registrele rezultat sunt
organizate sub formă de stivă.
26
INTRĂRI ANALOGICE

 Microcontrolerul impune domeniul de lucru pentru


intrările sale analogice
VREF  VADCINx  VREF
 Rezultatul conversiei unui canal va fi
VADCINx
RESULTx   2N
VREF  VREF
unde N este rezoluția convertorului A/D
 Rezoluția tipică este de 10 sau12 biți

27
INTRĂRI ANALOGICE
 Tipic ca tensiuni de referința se folosesc tensiunile
de alimentare (VREF-= 0V, VREF+= VDD).
 Când este necesar tensiunile de referință pot fi
furnizate de circuite externe sau, la unele
microcontrolere, pot fi generate intern.
 Când VREF este generată extern, trebuie luate
măsuri de filtrare care sa asigure tensiuni de
referință VREF fără zgomote.
 Orice zgomot asupra tensiunilor din sectiunea de
intrări analogice va fi transferat direct in rezultatul
numeric al conversiei 28
INTRĂRI ANALOGICE

 Adesea mărimile analogice ce trebuie convertite nu


sunt în domeniul [0, VREF]

 In plus unele mărimi analogice trebuie filtrate


pentru a evita efectul de ”alias”. (anti aliasing filter)

 Sunt necesare circuite de conditionare analogică.

29
Formatul rezultatului
 Aliniat la dreapta
 Practic, valoarea ce se găsește în registrul rezultat
este interpretată ca un număr întreg fără semn.
15 14 13 12 11 10 9 8 7 6 5 4 3 2 1 0

0 0 0 0 0 0 D9 D8 D7 D6 D5 D4 D3 D2 D1 D0

0≤ N ≤ 1023

30
Formatul rezultatului
 Aliniat la stânga
 Valoarea ce se găsește în octetul High al registrului
rezultat poate fi interpretată ca un număr întreg (0-
255).
 Valoarea din registrul rezultat (16biti) poate fi
interpretata ca un numar subunitar cu semn (-1 ... 1)
High Low
15 14 13 12 11 10 9 8 7 6 5 4 3 2 1 0
D9 D8 D7 D6 D5 D4 D3 D2 D1 D0 0 0 0 0 0 0

N
Registru rezultat 31
INTRĂRI ANALOGICE

 Pentru semnalele analogice bipolare trebuie


realizată o decalare a tensiunilor cu VREF/2 :

CONDITIONARE
VREF
ANALOGICĂ
0 VREF/2
Amplificator 0
Filtru
VINx VADCINx
Translatare nivel

32
Achiziția mărimii analogice

 Amplificarea Gconv trebuie aleasa astfel încât


VADCin = 0.5*VREF [V] când Vin=Vmax[V]

 In acest caz, ieșirea convertorului A/D este

 2  9  2 
N  Vin     2  Vin     512
 VREF   VREF 
 Mărimea Vinx achiziționată in format 1.15 va fi
215
Vinx  N   512  2 6  N  512  2 6
29
33
Amplificatoare operaționale - AO
(Opamps)
 AO ideale
 Banda de trecere (BW) infinită
 Amplificare în tensiune infinită
 Impedanță de intrare infinită
 Impedanță de ieșire zero
 AO practice
 Banda de trecere (BW) largă
 Amplificare în tensiune foarte
mare
 Impedanță de intrare foarte mare
 Impedanță de ieșire foarte mică
34
AO – răspunsul în buclă închisă

 Inversor
 Sursa de semnal și reacția
sunt conectate împreună la
intrarea inversoare
 Av=-Rf/Ri

 Neinversor
 Sursa de semnal este
conectată la intrarea
neinversoare
 semnalul de reacție este
conectat la intrarea inversoare
 Av=1+Rf/Ri
 Dacă Rf=0 și Ri =∞
amplificarea este unitară,
circuitul este utilizat ca buffer. 35
Comparatoare

 Utilizate pentru a
determina care dintre
cele două tensiuni
aplicate la intrare
este mai mare
 O mica diferență intre
tensiunile de intrare
face ca tensiunea de
ieșire să basculeze
intre Vmin (0V) și Vmax
(VCC)

36
Exemplu

Vref = Vin(max).R2/(R1+R2)=1.63 V

37
Exemple convertoare AD

• PIC mid-range
• AVR

38
GPIO
sumar

 Introducere
 Structura GPIO
 Exemple
introducere

 General Purpose Input/Output (GPIO) este un pin


generic a carui funcționalitate (inclusiv faptul că este
intrare sau ieșire) poate fi controlată (programată) de
utilizator la momentul execuției programului
 Pinii de I/E cu scop general (GPIO) pot fi considerați ca
cele mai simple echipamente periferice. Ei permit
monitorizarea și controlul altor dispozitive. Pentru a
adauga o funcţionalitate și o flexibilitate mai mare
dispozitivelor unii pini sunt multiplexaţi putând avea
funcţii alternative. Aceste funcţii depind de caracteristicile
perifericelor microcontrolerului.
INTRĂRI/IEȘIRI NUMERICE
DIGITAL INPUT/OUTPUT

 Secțiunea de intrări/ieșiri digitale interfațează


microcontrolerul cu lumea externă de tip digital.
 Semnalele digitale de I/E pot fi individuale sau grupate
sub formă de cuvinte tratate în paralel.
INTRĂRI/IEȘIRI NUMERICE
DIGITAL INPUT/OUTPUT

 Semnale logice individuale:


 comenzi de tip ON/OFF provenind de la butoane
 semnale de tip FAULT provenind de la comparatoare
 comenzi individuale pentru diferite elemente de execuție
(contactoare, relee ...)
 ieșiri individuale cu scop de afișare (LEDuri individuale)
 Logică de tip paralel:
 Comunicație paralelă cu un alt sistem numeric de
control
 Dispozitive de afișare, tastaturi
INTRĂRI/IEȘIRI NUMERICE
DIGITAL INPUT/OUTPUT

 Pinii de I/E ai unui microcontroler sunt de regulă


partajați, adică același pin poate avea două (uneori,mai
multe) funcții diferite:

 Funție primară, asociată, de obicei perifericelor cu


funcții speciale (Counter/Timer, Capture, PWM,
A/D, SCI)

 Funcție de I/E, bit input (read) sau output (write)


INTRĂRI/IEȘIRI NUMERICE
DIGITAL INPUT/OUTPUT

Bit data I/E Funcție


(Read/Write) primară
0 = I/O
function
bit DIR I/E
0 = Output
1 = Inputt bit comandă MUX
0 1 1 = Funcție primară

Registre control
direcție date I/E Pin registre comandă
MUX I/E
Direcție date Port Pin

 Intrare - Input
– informațiile sunt preluate din exterior (butoane, senzori, alte
circuite digitale) în microcontroler
 Ieșire - Output
– informațiile sunt trimise de la microcontroler către exterior
(comanda unui LED, actionarea unui releu, etc.)
 Implicit pinii sunt programați ca intrări (la punerea
sub tensiune sau reset)
 Direcția unui pin poate fi schimbata prin program în
orice moment
Pini I/O la microcontrolerele MICROCHIP
PIC mid range

 Pentru un port oarecare, directia pinilor de I/E


(intrare sau ieșire) este controlată de un registru de
date numit registrul TRIS. Dacă TRIS are valoarea
„1” pinul este de intrare, iar dacă TRIS are valoarea
„0” pinul este de ieșire. Scrierea sau citirea unei date
de la un port de date cu scop general se face prin
scrierea/citirea registrului PORT, care este un
registru de zăvorâre (latch) a informaţiei. În funcţie
de numarul de porturi disponibile pe un
microcontroler pot fi mai mulți regiștri TRIS și mai
multi registri PORT.
Pini I/O generic pentru un microcontroler
MICROCHIP PIC mid range
Pini I/O – scheme echivalente

intrări:
VDT - standard
- triger schmitt
- tolerante 5V
ieșiri:
- totem pole
(clase de viteză, nivele logice
- drenă în gol
Funcții asociate pinilor I/O – interrupt on change
Circuite de
numărare/temporizare
programabile

•I

Microprocesoare și microsisteme
Circuite de numărare/temporizare programabile

Funcționarea sistemelor cu microprocesor in aplicații de proces


necesită, în majoritatea cazurilor, realizarea
unor temporizări precise între diversele acțiuni efectuate în sistem
sau măsurarea cu precizie a unor intervale de timp.
În acest scop, se utilizează circuitele numărător/temporizator
(counter/timer), circuite ce pemit obținerea unor temporizări
programate sau masurari de intervale, cu precizie ridicată.

14
Circuite de numărare/temporizare programabile

funcții de temporizare:
 monostabil – generarea unui semnal de
durată prestabilită la apariția unui semnal de
declanșare (trigger)
 neretrigerabil ζ
 retrigherabil
ζ
 circuit de întârziere – generarea unui semnal
de ieșire cu o întârziere prestabilită (delay)
față de apariția semnalului de declanșare.
ζ
 astabil – generare de impulsuri cu frecvență
prestabilită
T f = 1/T

15
Circuite de numărare/temporizare programabile

Circuitele de numărare/temporizare au functia de generare de semnale


de latime programată, măsurare de intervale de timp sau de numărare
de evenimente.
În primele doua cazuri funcția se numește TIMER, în cel de-al treilea
caz, funcția se numește COUNTER, de unde și denumirea circuitului
de Timer/Counter.
În cazul funcției de Timer, circuitul folosește ca intrare un semnal de
frecvență fixă ca Tact sau Ceas de referință, pentru măsurare sau
generare.
În cazul funcției Counter, circuitul foloseste ca intrare un semnal
extern pentru care se dorește măsurarea numarului de tranziții.

16
Circuite de numărare/temporizare programabile

Functii tipice • Temporizator – Timer


• Numărător - Counter
• Ceas de gardă - Watchdog Timer (WDT)

• Input Capture
Funcții extinse • Output Compare
• PWM

Funcții specializate• Quadrature Encoder Input (QEI)


• PWM Motor Control

17
17
Temporizator programabil
Circuite de numărare/temporizare programabile

1 1
f OUT  f CLK  
FP CP
 
FP  1, 2, 4, 8, ... 2 k

n
CP  1... 2
1
Tpuls   FP  CP
f CLK
18
18
Temporizator/Numărător programabil
Circuite de numărare/temporizare programabile

19
Circuite de numărare/temporizare programabile

20
Circuite de numărare/temporizare programabile

21
Circuite de numărare/temporizare programabile

• Funcţiile de tipul „Capture&Compare” (Capturare şi comparare)


reprezintă nişte extensii ale circuitelor de numărare/temporizare
programabile fiind utilizate pentru:
– a marca momentul (CÂND) în care s-a produs un anumit eveniment
extern(CE) - Capture
– a efectua o anumită acţiune (CE) la un moment de timp prestabilit
(CÂND) - Compare

22
Input capture
Circuite de numărare/temporizare programabile

23
Output compare
Circuite de numărare/temporizare programabile

24
PWM
Circuite de numărare/temporizare programabile

TMR2
SysClk Pre_S Clr Post_S TMR2_INT
TMR2
8MHz
PER = 20 DC = 15

DC = 10

PER = S Q
R CC_PWM

DC =

TPWM
FPWM = SysClk/( Pre_S x PER )

25
26
27
Interfețe de comunicații

1
Interfețe de comunicații

 Tansferul datelor dintr-un punct către unul sau mai multe puncte prin
mijloace de telecomunicaţii se numește transmisie de date
 Modalităţile de transmisie a se stabilesc printr-un set de convenţii si
reguli specificate de un protocol de comunicaţie de date. Protocoalele
de comunicaţie a datelor se stabilesc pe doua nivele:
 protocol de date la nivel electric, care stabileşte parametrii
semnalelor care intervin in transmisie (nivele de tensiuni sau
curenţi si modul de interacţiune in timp)
 protocol la nivel logic, care stabileşte regulile după care sunt
prelucrate datele in vederea transmiterii si la recepţie;
 Ansamblul format din legăturile fizice şi protocolul de comunicaţie
intre doua sau mai multe sisteme se numeşte interfaţă
 Comunicaţiile de date au un sens mai larg decât transmisiunile de
date semnificând transferul datelor între unităţi funcţionale, efectuat
conform unui ansamblu de reguli privind transmisiunea datelor şi
coordonarea schimbului de date.
2
Comunicaţii de date
Un proces de comunicaţii de date necesită cel puţin 5 elemente:
 Sursa – genereaza datele ce urmează a fi transmise
 Transmiţător – codifică informația
 Sistem de transmisie – linie sau rețea ce asigură conexiunea între sursă
și destinație
 Receptor – converteste semnalul receptionat într-o formă interpretabilă
de către destinatar
 Destinatar – preia datele sosite

Sistem de
Sursă Transmițător Receptor Destinatar
transmisie

3
Transmisii de date - clasificari
 In funcție de numărul de biți transmiși simultan transmisia poate fi:
 paralelă
 serie
 In funcţie de posibilităţile de transmisie poate fi:
 simplex: când transmiterea datelor se face intr-un singur sens;
 semiduplex (half duplex): când transmiterea datelor se face intr-un sens sau
in celalalt alternativ, nesimultan;
 duplex (full duplex): când transmiterea datelor se face simultan in ambele
sensuri.
 In funcție de existenta sincronizării între dispozitive transmisia poate fi:
 sincronă
 asincronă
 În funcție de numărul de echipamente interconectate, legătura poate fi:
 punct-la-punct: legatura se realizează între două echipamente
 multipunct: legatura se realizează simultan între mai multe echipamente.

4
Interfeţe de intare/ieşire paralele
Transferul paralel între două
dispozitive se face cuvânt cu cuvânt
pe un grup de n linii de date la care se
adaugă câteva linii pe care circulă
semnale de sincronizare în vederea
efectuării corecte a transferului.
 Semnalele vehiculate au de regulă
nivele TTL sau CMOS iar distanţa între
dispozitive e relativ scurtă.
Transmiterea datelor intre doua
echipamente nu se poate face pe
distante mai mari din cauza costurilor
de cablare.
Exemple tipice
 Centronics (1970) ... IEE1284 – imprimante, echipamente periferice
 GPIB (HP-IB) ... IEE488 – echipamente de măsură și testare
 IDE, SCSI – interfețeutilizate în tehnica de calcul 5
Interfeţe seriale
 UART (RS232)
 SPI
 I2C

Transmisia serială permite transferul de date între sisteme care se


află la distanțe mari unul de altul folosind un număr redus de fire.
Transferul serial se face bit cu bit, pe o singură linie de date
completată cu una sau mai multe linii de sincronizare și/sau control al
comunicaţiei.

6
Interfeţe de intare/ieşire seriale
Deoarece în sistemele cu microprocesor datele sunt vehiculate (pe
magistrale) în formă paralelă rezultă că pentru a implementa transmisia
serială este necesară conversia paralel-serie (numită şi serializare) la
transmisie respectiv conversia serie-parale (deserializare) la recepţie.

7
Interfeţe de intare/ieşire seriale

Caracterizare:
Asigura comunicația seriala sincrona sau asincrona
Serial => bit cu bit
Asincron => schimbul de date poate începe oricând
Sincron => schimbul de date se realizează la
apariția unor impulsuri de tact.
Interfețe seriale tipice:
UART (Universal Asynchronous Receive/Transmit)
SPI (Serial Peripheral Interface)
I2C Inter Integrated Circuits)

8
REMEMBER

Registrul SIPO

Registru SIPO de 4 biţi – schema de principiu.

9
REMEMBER

Registrul SIPO

Registru SIPO de 4 biţi – simbol şi funcţionare.

10
REMEMBER

Registrul PISO

Registru PISO de 4 biţi – schema de principiu. 11


REMEMBER

Registrul PISO

Registru PISO de 4 biţi – simbol şi funcţionare.

12
Comunicație serială

Magistrala de date Magistrala de date

Buffer transmisie Buffer recepție

Registru Tx Rx Registru
transmisie (PISO) recepȚie(SIPO)
CLK_Tx sincron CLK_Rx
X

Osc Tx asincron Osc Rx

13
Comunicație serială asincronă

 În transferul asincron, emițătorul și receptorul au semnale de tact


separate, sincronizarea la nivel de bit este asigurată numai pe durata
transmisiei efective a fiecărui caracter.
 O asemenea comunicație este orientată pe caractere individuale și are
dezavantajul că necesită informații suplimentare în proporție de cel
puțin 25% pentru identificarea fiecărui caracter.
 Acest mod de comunicație este numit și start-stop.

14
UART
Universal Asynchronous Receiver/Transmitter
 SCI – Serial Communication Interface

Pentru a transmite un octet fără a folosi un semnal de tact comun, este


necesară adaugarea unor informații suplimentare la octetul ce urmează a fi
transferat. Astfel se definește un format standard (frame) pentru transmisie:
15
Formatul datelor la transmisia asincronă

 Linia pe care se face transmisia este în mod normal pe 1 logic


 Transmisia începe cu un bit de start având nivelul logic 0
 Apoi, se transmit pe rând biții care alcătuiesc octetul ce se doreste a fi
transmis (data utilă), începand cu bitul cel mai puțin semnificativ
(numărul de biți poate fi 7 sau 8)
 După biții utili transmiși se poate adăuga un bit de paritate:
 Paritate pară: bitul de paritate se calculează astfel încât numărul total de biți 1 din
octetul util plus bitul de paritate să fie par
 Paritate impară: : bitul de paritate se calculează astfel încât numărul total de biți 1
din octetul util plus bitul de paritate să fie impar
 Finalul transmisiei este indicat de către unu sau doi biți de stop
 Viteza transferului se măsoară în baud și poate avea următoarele
valori: 300, 600, 1200, 2400, 4800, 9600, 19200, 38400, 57600,
115200 și mai rar 230400

16
Comunicația serială asincronă -
formatul datelor

17
Comunicatia seriala asincrona

18
PIC16F... USART Schema bloc transmitator

19
PIC16F... USART Schema bloc receiver

20
PIC16F... USART

Diagrame de timp receptie

21
Interfața RS-232
•Ultima varianta a standardului EIA/TIA – 232 –E
TIA = Telecommunications Industry Association
EIA = Electronic Industries Alliance
•Viteza maxima: 20 Kbps (116 Kbps)
•Lungimea maxima a cablului: 15 m (2000 pF)
•Nivelurile logice pentru date (logica negativa):
+5 .. +25 V pentru “0” logic
-5 .. -25 V pentru “1” logic
•Pentru liniile de control logica este pozitivă
•Frecvențe de transmisie: 300, 1200, 2400, 4800, 9600, si
19200, 38400, 57600, 115200 bps
•Transmisie asincronă ( bit de start, date, paritate și stop)

22
Circuit de translatare pentru interfața RS-232

23
Conectorul normalizat DB9 si
semnalele utilizate

1 Data carier detect DCD


2 Received data RXD
3 Transmit data TXD
4 Data terminal ready DTR
5 Signal ground
6 Data set ready DSR
7 Request to send RTS
8 Clear to send CTS PIN

9 Ring indicator RI
17

PIN
Observ.: DTR, DSR, RTS, CTS 18

sunt semnale pentru


protocolul de comunicatie

24
Conectare tipica DTE – DCE
(fara semnale de protocol)
Sensul de circulatie a informatiei este inversat la DCE fata DTE !!!

2 2 2 2
3 3 Linie telefonica 3 3
DTE DCE DCE DTE
7 7 7 7

Calculator PC Modem Modem Calculator PC

Legatura cablu modem nul


2 2

DTE 3 3 DTE
7 7
25
Utilizarea liniilor de comanda

TX TX TX TX
RX RX RX RX
DTR DTR DTR DTR
DSR DSR DSR DSR
RTS RTS RTS RTS
CTS CTS CTS CTS
DTE GND DTE
DCE GND DTE
Modem Calculator Calculator PC Calculator PC

Conectare DTE cu DCE Conectare DTE cu DTE

26
Asigurarea locală a validărilor

TX TX
RX RX

DTR DTR
DSR DSR

RTS RTS
CTS CTS
GND
DTE DTE
Calculator PC Calculator PC

27
RS422
• RS-422 este o interfaţă ce utilizează tensiune diferenţială (între două linii) pentru a
transmite datele binare
• Permite lucrul în medii cu interferenţe, pentru că diferenţa de tensiune între firele
torsadate rămâne aceeaşi
• RS-422 poate face transmisii de date pe cablu cu lungime de până la 1.200 m
• Legătura RS-422 conţine un driver (D) şi un receptor (R) legate printr-o
pereche de fire torsadate
• Diferenţele de tensiune dintre cele două fire se încadrează în intervalul ±4 V şi ±12 V

• Rt – rezistenţă terminare, anti-reflexie, de obicei de 100-120 Ω

28
Interfaţă RS-422 bidirecţională

29
RS485
• RS-485 este o variantă a RS-422 utilizată pentru legarea dispozitivelor
într-o reţea de cost scăzut în aplicaţii industriale
• Permite mai multor noduri să schimbe informaţii prin două fire
• RS-485 este o arhitectură a master-slave
– Toate tranzacţiile sunt iniţiate de master, iar sclavul transmite doar
atunci când i se cere acest lucru
• Reţeaua RS-485 foloseşte circuite transceiver, cum este Maxim
MAX3483

30
I C
2 și SPI
 Protocoale pentru communicații seriale
 Concepute pentru distanțe scurte
“inside the box”
 Complexitate scăzută
 Preț mic
 Viteză redusă (maxim câțiva Mbps)

31
Interfața I2C
 Interfața I²C sau IIC (Inter-Integrated Circuit) este un
tip de transmisie de date serială master-slave, utilizată
intensiv între circuite integrate digitale (microcontrolere,
memorii, convertoare) și a fost inițial dezvoltată de către
firma olandeză Philips (în prezent NXP) în anul 1982.

32
I2C - caracteristici
 2-wire serial bus: Serial data (SDA) și Serial clock (SCL)
 Half-duplex, synchronous, multi-master bus
 Nu necesită semnale de selecție sau logica de arbitrare
 Liniile”trase” in starea high prin rezistoare, sunt trase în
zero prin ieșiri de tip open-drain (ȘI cablat)
 Magistrala I2C are 3 clase de viteză:
 Slow (sub100 Kbps)

 Fast (400 Kbps)

 High-speed (3.4 Mbps) – I2C v.2.0

 Lungimea maximă 3m pentru viteze moderate

33
Protocolul I2C

1. Masterul trimite comanda de start (S) și comandă


semnalul de ceas.
2. Masterul trimite adresa dispozitivului slave pe 7 (10) biți.
3. Masterul trimite bitul read/write (R/W):
0 - slave receptor, 1 - slave transmițător.
4. Receptorul trimite bitul de confirmare (ACK).
5. Transmițătorul (slave ori master) transmite un octet de
date.

34
Protocolul I2C (cont.)

6. Receptorul emite un bit ACK pentru octetul recepționat


7. Se repetă pașii 5 și 6 dacă trebuie transmiși mai mulți octeți.
8.a) Pentru o operație de scriere (master transmițător), masterul
emite comanda de stop (P) după ultimul byte de date.
8.b) Pentru o operație de citire (master receptor), masterul nu mai
confirmă ultimul byte, emite numai comanda de stop (P) pentru a
spune dispozitivului slave ca transmisia este gata

35
I2C - Semnale

 Start – tranziția high-low a linei SDA în timp ce linia SCL


este high
 Stop – tranziția low-high a linei SDA în timp ce linia SCL
este high
 Ack – receptorul trage linia SDA low în timp ce
transmițătorul o lasă liberă (să ‘’plutească’’ în high).
 Data – tranzițiile au loc în timp ce SCL este low, trebuie
să rămînă valide în timp ce SCL este high
36
I2C - Caracteristici
 “Clock stretching” – atunci când dispozitivul slave
(receptor) are nevoie de mai mult timp să proceseze
un bit, poate trage linia SCL low. Dispozitivul master
așteaptă până când dispozitivul slave a eliberat linia
SCL înainte de a trimite următorul bit.
 “General call” broadcast – adresează toate
dispozitivele de pe magistrală.
 Adresare extinsă pe 10-biți

37
I2C +/-
Avantaje:
 Bun pentru comunicarea cu dispozitivele de pe
aceeași plachetă (on-board devices) care sunt
accesate ocazional.
 Ușor de conectat multe dispozitive datorită schemei
de adresare.
 Costul și complexitatea nu se multiplică cu numărul

de dispozitive.
Dezavantaje:
 Complexitatea componentelor software aferente

poate fi mai mare decât cea a soluțiilor competitoare


(de examplu, SPI ).
38
Magistrala SPI “Serial Peripheral Interface”

 SPI a fost dezvoltată de Motorola pentru a furniza o


interfaţă simplă şi de cost redus între microcoprocesor
(microcontroler) şi dispozitive periferice
 SPI este o interfaţă serială sincronă – toate transmisiile
sunt sincronizate cu un semnal de ceas comun furnizat de
master (microcontroller)
 Perifericul receptor (“slave”) utilizează semnalul de ceas
la achiziţia fluxului de biţi seriali
 Există posibilitatea de a conecta mai multe dispozitive la
aceeaşi interfaţă SPI a master-ului – Un master
selectează un sclav prin activarea intrării sale de chip
select – Un periferic ne-selectat nu va lua parte la
transferul SPI
39
Serial Peripheral Interface
• SPI utilizează patru semnale:
1. Master Out Slave In (MOSI)
2. Master In Slave Out (MISO)
3. Serial CLock (SCLK sau SCK)
4. Chip Select (/CS) for the peripheral
• Unele procesoare au un semnal de chip select dedicat pentru SPI,
numit Slave Select (/SS)
• MOSI este generat de master şi recepţionat de scalv
– La unele chip-uri MOSI este numit Serial In (SI) sau Serial
Data In (SDI)
• MISO este produs de sclav, dar generarea sa este controlată de
master
– MISO este uneori numit Serial Out (SO) sau Serial Data Out
(SDO)
• Semnalul de chip select către periferice este de obicei generat cu
ajutorul unui pin de I/O digitală a masterului
40
TRANSMISIA SPI

• Master-ul şi scalvii conţin câte un registru cu deplasare serială a datelor


(serial shift register)
• Master-ul începe transferul unui octet prin scrierea acestuia în registrul
său SPI de serializare.
Pe măsură ce se face transmisia serială către sclav (prin linia MOSI),
sclavul transferă conţinutul registrului său de serializare (prin linia
MISO) către master
– În acest fel se face schimb al informaţiilor stocate în cele două
registre de serializare
• Dacă se doreşte doar o scriere, master-ul va neglija octetul recepţionat
– În acest fel se face schimb al informaţiilor stocate în cele două
registre de serializare
41
Configurații tipice SPI Bus

42
Magistrala SPI – variante de configurații
 Unele periferice cu interfaţă SPI permit transfer de mai mulţi
octeţi
– se transferă un flux continuu de date de la master
– multe memorii cu interfaţă serială SPI lucrează în acest fel
– la acest tip de transfer semnalul /CS rămâne activ pe toată
durata transferului
– de exemplu: o memorie aşteaptă ca o comandă de “write”
să fie urmată de patru octeţi de adresă (adresa de start) şi
apoi octeţii de date ce vor fi stocaţi
 Alte periferice sclav aşteaptă doar un singur octet de control,
cum ar fi de exemplu un convertor A/D
 Unele dispozitive sclav permit conectarea în lanţ de priorităţi
(daisy chained)

43
DAISY-CHAINED TRANSFER
• În acest exemplu procesorul (master) transmite trei octeţi prin
interfaţa SPI
– Primul octet e transferat în sclavul A
– La transferul celui de-al doilea octet în A, primul e transferat
către B
– Al treilea octet în A, al doilea în B şi primul în C
• Dacă masterul doreşte să citească un rezultat din A, el va
transfera o secvenţă fictivă de 3 octeţi prin MOSI
• Conectarea în lanţ nu funcţionează cu orice dispozitiv SPI
(niciodată cu dispozitivele de memorie care cer un transfer
multi-octet)

44
Protocolul SPI

 Implementarea hardware este făcută de obicei cu


un simplu registru de deplasare

45
Magistrala SPI - diagrame de semnale

46
PIC16F...
Modulul MSSP

47
PIC16F...
MSSP mod I2C

48

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