UPUS
UPUS
Curs 1
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
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
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ă B10:
( )
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ă B10:
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
B10:
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ă B10:
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ă B10 – partea subunitară
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
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
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
• 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
−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
SHL SHR
MSB LSB MSB LSB
0 0
C
C
Rotire (ROtate)
ROL
MSB LSB MSB ROR LSB
C C
Curs 2
S1 S2
R E
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
este activată I2
I1
I0
/STB K2 K1 K0
S0 – Circuite logice combinaţionale
(CLC) - Comparatorul
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.
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
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
esenţă un convertor
de cod compus dintr-
un decodificator şi un linii
codificator. de selecţie
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
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
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
/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)
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
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
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.
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.
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
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
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
INSTR
ADRESE
ST/CTRL DATE ST/CTRL
INSTR
CPU CPU
ADRESE
DATE
SYNC SYNC
ADRESE
DATE
Curs 4
Sisteme de calcul
1
Sistem de calcul
date de
intrare Sistem de rezultate
calcul
program
software hardware
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
7
Componenţa hardware a unui calculator
INSTR
ADRESE
DATE
SYNC SYNC
ADRESE DATE
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
Dj DATE
COMENZI
12
Caracteristici generale ale CPU
13
14
Schema funcţională a unei UCP generalizate
VDD VSS
Adrese Ai
Indicatori
REGISTRE
UAL Date Dj
GENERALE
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
/Wait=1 /BUSRQ=0
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
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]
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
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
21
Etapele de execuţie a unei instrucţiuni
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
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;
• Reprezentare hardware
– Cifre binare (bits)
– Codifica instructiuni si date
4
ARHITECTURA UNUI SISTEM DE CALCUL (SC)
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:
7
CLASIFICARE SETURI DE
INSTRUCŢIUNI
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
11
Instrucțiuni de prelucrare date (instrucțiuni operaționale)
13
Programarea cu subrutine
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
M-P M-D
16
RESURSELE DE PROGRAMARE ALE UNUI PROCESOR
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
18
RESURSELE DE PROGRAMARE ALE UNUI PROCESOR
8318: A7 A7
8319: 4F 4F
19
RESURSELE DE PROGRAMARE ALE UNUI PROCESOR
8318: A7 A7
8319: 4F 4F
20
RESURSELE DE PROGRAMARE ALE UNUI PROCESOR
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
21
RESURSELE DE PROGRAMARE ALE UNUI PROCESOR
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
25
Arithmetic Logical Unit (ALU)
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 executabil
33
Etapele de realizare a unui program
35
Etapele de realizare a unui program
Ciclul de proiectare
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
4
Exemple de dispozitive de I/E
viteze I/E : bytes transferaţi pe secundă
Dispozitiv Tip Partener Viteza
(Kbytes/sec)
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
BD (mag. date)
CPU BC (mag. comenzi)
comanda transfer sincronizare
(microprocesor)
Circuit Periferic
I/E
date
(transfer)
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
T1 T2 TW* TW T3
CLOCK
A0 – A7 Adresa de port validă
/IORQ
/WAIT
/RD
Citire port
D0 – D7 IN
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
R1 D1 R3
R
R4
+
TTL sau CMOS
- R2
DZ C1 LED OC
15
Sistemul de I/E
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
IESIRE2
7405
16
Sincronizarea transferului de informații
Transmisia iniţiata de emiţător
T R
Data validă
READY (STB)
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
.
.
.
.
.
.
READ
IRQ
BUS
ADR
SEL
circuit de I/E generic
Schema bloc a unui
Microcontrolere
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)
Microprocesoare și microsisteme 8
Tipuri de procesoare (nucleu)
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
Microprocesoare și microsisteme 15
8051 - schema bloc
INTRERUPERI EXTERNE
CONTROLER ROM
INTRERUPERI RAM
4K TIMER 0 INTRARI
128B
TIMER 1 NUMARARE
CPU
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
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
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
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
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
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:
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
2
CONVERTOARE A/D ȘI D/A
Encoder Decoder
Condiționare Prelucrare Condiționare
Convertor Convertor
semnale numerică semnale
A/D D/A
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
3V
10 k
= 0.2
0VV
160 k
80 k - 10 k
Vout = x -3 V = 0.1875V
40 k 160 k
20k
10 k
Vout evoluează
în trepte de la
0 V la3 V
0V
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
8.75V
9.375
max.
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
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
14
Convertor A/D cu aproximații succesive
Exemplu
• Bit 7
• (Vfull scale +0)/2 = 5
• 7.65 > 5 Bit 7 = 1
1
15
Convertor A/D cu aproximații succesive
Exemplu
• 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
• 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
Tensiune
• Digital Output 0,6
• 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
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
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
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
CONDITIONARE
VREF
ANALOGICĂ
0 VREF/2
Amplificator 0
Filtru
VINx VADCINx
Translatare nivel
32
Achiziția mărimii analogice
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
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
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
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
16
Circuite de numărare/temporizare programabile
• Input Capture
Funcții extinse • Output Compare
• PWM
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
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
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
9
REMEMBER
Registrul SIPO
10
REMEMBER
Registrul PISO
Registrul PISO
12
Comunicație serială
Registru Tx Rx Registru
transmisie (PISO) recepȚie(SIPO)
CLK_Tx sincron CLK_Rx
X
13
Comunicație serială asincronă
14
UART
Universal Asynchronous Receiver/Transmitter
SCI – Serial Communication Interface
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
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
9 Ring indicator RI
17
PIN
Observ.: DTR, DSR, RTS, CTS 18
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
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
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
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)
33
Protocolul I2C
34
Protocolul I2C (cont.)
35
I2C - Semnale
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
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
45
Magistrala SPI - diagrame de semnale
46
PIC16F...
Modulul MSSP
47
PIC16F...
MSSP mod I2C
48