Professional Documents
Culture Documents
1.
Dispozitive periferice............................................................................15
Dispozitive periferice de uz general ............................................................15
Porturile de intrare/ieire.......................................................................15
Dispozitive de gestiune a timpului...........................................................16
Interfeele de comunicaie.......................................................................16
Dispozitive periferice pentru interfaa cu procesul condus ...........................17
Interfee pentru intrri analogice............................................................19
Interfee pentru ieiri analogice..............................................................19
Interfee pentru intrri digitale ...............................................................19
Interfee pentru ieiri digitale .................................................................19
2.
Unitatea central.............................................................................21
Procesorul.............................................................................................21
Arhitectura general a unui procesor ...........................................................22
Unitatea Aritmetic i Logic (UAL): .....................................................23
Indicatorii de condiii:............................................................................24
Setul de regitrii:....................................................................................24
Unitatea de control program:.................................................................25
Unitatea de control procesor:.................................................................25
Structura i codificarea instruciunilor.........................................................26
Moduri de adresare a operanzilor ................................................................28
Adresarea direct a regitrilor: ..............................................................28
Adresarea direct a memoriei.................................................................29
Adresarea imediat ................................................................................30
Memoria ...............................................................................................33
Memoria de program ..................................................................................35
Tehnologia FLASH.................................................................................35
Scrierea memoriei de program n mod paralel........................................36
Scrierea memoriei de program prin tehnologia ISP ................................36
Scrierea memoriei de program de ctre procesor ...................................37
Memoria de date.........................................................................................37
Tehnologia RAM static .........................................................................37
Tehnologia RAM dinamic .....................................................................40
Memoria nevolatil.....................................................................................44
3.
1.
Capitolul 2
Oscilator de
ceas
Tensiuni de
alimentare
WDC
Fosc
Procesor
Controlor de
ntreruperi
Surs de alimentare
IRQ
Memorie de
program
Memorie de
date
Memorie
nevolatil
IACK
Magistrala
sistemului
Interfee de proces
Afiaj
Timere
Interfee
operator
Tastatur
Interfee de
comunicaie
Intrri
Ieiri
analogice analogice
Intrri
digitale
Ieiri
digitale
1
0
1024
1023
1023
Locaiile circuitului
de memorie #2
Locaiile circuitului
de memorie #1
1
0
Adrese locale
Circuit de memorie #2
2048
2047
Circuit de memorie #1
1023
= locaii neutilizate
1
0
Adrese locale
Adrese procesor
30723087
15
Adrese locale
Magistrala sistemului
Din punct de vedere funcional, magistrala sistemului este format din trei
componente i anume:
magistrala de date;
magistrala de adrese;
semnale de control.
Magistrala de date
Este un set de conexiuni electrice prin care se transmite valoarea unei
locaii ntre procesor i memorie sau dispozitive periferice.
Informaia pe magistrala de date poate circula n ambele sensuri i anume:
de la procesor ctre memorie sau dispozitive periferice n cazul operaiilor
de scriere;
de la memorie sau dispozitive periferice ctre procesor n cazul operaiilor
de citire.
Numrul de conexiuni utilizate pentru magistrala de date este dat de
numrul de bii cu care procesorul poate lucra simultan. Dimensiunile uzuale ale
magistralelor de date snt de 8, 16 sau 32 de bii.
Notaia consacrat pentru conexiunile magistralei de date este Di, unde
i reprezint numrul conexiunii.
Magistrala de adrese
Este un set de conexiuni electrice prin care procesorul transmite adresa
locaiei care face obiectul transferului de informaie.
Valoarea adresei este generat ntotdeauna de ctre procesor i este
utilizat de ctre circuitele de memorie, dispozitivele periferice i decodificatoarele
de adrese asociate acestora.
Numrul de conexiuni utilizate pentru magistrala de adrese determin
capacitatea de adresare a procesorului. Numrul maxim de locaii adresabile poate
fi calculat astfel:
N = 2 na ,
(1-1)
unde:
N este numrul maxim de locaii adresabile de procesor;
na este numrul de conexiuni ale magistralei de adrese.
Semnalele de control
Acest set de conexiuni electrice este utilizat pentru controlul desfurrii
operaiilor de transfer de informaii. Aceste semnale snt generate de ctre procesor
i utilizate de circuitele de memorie i dispozitivele periferice.
Dintre semnalele de control generate de procesor cele mai importante snt:
RD (read) generat pentru a indica o operaie de citire;
WR (write) generat pentru a indica o operaie de scriere;
Date
IRQ
IACK
Selecie
Magistral de date
RD
WR
Adrese
Magistral de adrese
Adrese
Dispozitiv
periferic
CS
RD
WR
Date
Controlor de
ntreruperi
Adrese
Cereri de ntreruperi
Cereri de ntreruperi
Decodificator
de adrese
Adrese
Selecie
Circuit de
memorie
CS
RD
WR
Date
Adrese
Magistala sistemului
10
11
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
Component fix
(Nf bii)
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
1
1
1
1
1
1
1
1
0
0
0
0
1
1
1
1
0
0
0
0
1
1
1
1
0
0
1
1
0
0
1
1
0
0
1
1
0
0
1
1
0 Locaia 0
1 Locaia 1
0
1
0
1
0
1
0
1
0
1
0
1
0
1 Locaia 15
Component variabil
(Nv bii)
Se observ c primii Nf=8 bii snt identici pentru toate cele 16 locaii
(componenta fix). Restul de Nv=4 bii au valori diferite, mai exact reprezint
adresa local a locaiei n cadrul perifericului (componenta variabil).
La modul general, n cazul unui circuit de memorie sau dispozitiv periferic
care utilizeaz L locaii, numrul de bii Nv care codific adresa local este:
Nv = ceil (log2 L ) ,
(1-2)
Nf = N Nv ,
(1-3)
12
Adresa locaiei
CSx
RD
Magistrala
de date
Valoarea locaiei
Tcs
Trd
13
Adresa locaiei
CSx
WR
Magistrala
de date
Tcs
Twr
14
15
Dispozitive periferice
Dispozitivele periferice snt acele componente care permit automatului
programabil s comunice cu mediul exterior. Din punct de vedere al funciilor
realizate n cadrul automatlui programabil, dispozitivele periferice se clasific n
dou categorii principale i anume:
dispozitive periferice de uz general;
dispozitive periferice pentru interfaa cu procesul condus.
Nivele de tensiune
Stare logic 1
Vih
Stare logic
nedefinit
Vil
Stare logic 0
0V
16
n cazul n care starea logic a unei conexiui electrice asociate unui port
este comandat de ctre procesor pentru a transmite informaie binar ctre un
dispozitiv extern corespunde unei conexiuni de tip ieire.
Dac procesorul citete starea logic a unei conexiuni care este determinat
de un dispozitiv extern atunci conexiunea respectiv este de tip intrare.
Un port de intrare/ieire este un dispozitiv periferic care permite gestiunea
unui numr de 8, 16 sau 32 de conexiuni. Fiecare conexiune poate fi configurat s
funcioneze fie ca intrare sau ca ieire n funcie de specificul dispozitivului extern
la care este conectat.
Procesorul poate citi n orice moment starea logic prezent pe conexiunile
de intrare i poate modifica starea logic a conexiunilor de ieire.
Dispozitive de gestiune a timpului
Timpul este un parametru deosebit de important n sistemele de control.
Algoritmii de prelucrare a semnalelor presupun achiziia datelor la intervale de
timp precise (perioade de eantionare). Deasemenea, o gam larg de algoritmi
necesit msurarea unor intervale de timp sau frecvene.
Dispozitivele periferice destinate gestiunii timpului snt:
timere;
ceasul de timp real.
Timerele snt dispozitive care contorizeaz perioadele unui semnal de
referin (generat de oscilatorul procesorului) care are o frecven cunoscut i
foarte precis.
Prin contorizarea acestor intervale de timp este posibil generarea unor
evenimente la intervale de timp egale care s fie transmise procesorului pentru a
sincroniza diferite activiti.
O alt utilizare a timerelor este cronometrarea duratei sau perioadei unor
impulsuri primite din exterior precum i generarea de impulsuri cu frecvene sau
durate programabile.
Ceasul de timp real este dispozitivul care ofer data i ora curent. Este
util n majoritatea aplicaiilor care monitorizeaz i nregistreaz evenimentele
semnificative aprute n timpul funcionrii unui sistem sau care trebuie s
declaneze anumite activiti pe baza unui calendar prestabilit.
Ceasul de timp real este alimentat dintr-o surs de energie proprie de tip
baterie sau acumulator pentru a funciona fr ntrerupere i n cazul n care
automatul nu este alimentat cu energie electric.
Interfeele de comunicaie
Interfeele de comunicaie snt utilizate pentru conectarea automatelor
programabile cu alte echipamente de control sau realizarea unor reele de automate
atunci cnd complexitatea aplicaiei solicit acest lucru.
Deasemenea, unele interfee de comunicaie pot fi utilizate intern pentru
conectarea unor dispozitive periferice sau a unor memorii nevolatile de capacitate
mare utilizate ca uniti de stocare de fiiere.
17
18
19
2.
Unitatea central
Capitolul 3
Unitatea central
Procesorul
Procesorul este elementul principal al unitii centrale i realizeaz
prelucrarea efectiv a informaiilor pe baza programului memorat.
Programul este format dintr-o succesiune de instruciuni prin care se
comand procesorului s execute anumite operaii elementare. Instruciunile snt
codificate prin intermediul unor grupuri de bii (coduri de instruciuni) stocate n
memoria de program.
Instruciunile procesoarelor se pot clasifica n cteva categorii principale:
Instruciuni pentru transfer de date realizeaz copierea informaiilor ntre
diferite elemente de memorare;
Instruciuni de calcul aritmetic realizeaz operaii aritmetice elementare
(adunri, scderi, nmuliri, mpriri, etc.) asupra datelor numerice;
Instruciuni de calcul logic realizeaz operaii logice elementare (SI,
SAU, SAU-EXCLUSIV, complementare, deplasare de bii);
Instruciuni pentru controlul derulrii programului permit modificarea
cursului normal al programului (instruciuni executate n ordinea n care
snt stocate n memoria de program) prin forarea trecerii la o anumit
nstruciune aflat ntr-un anumit loc n memorie;
Instruciuni speciale nu se ncadreaz n nici una dintre categoriile
anterioare i se refer configurarea modului de funcionare al procesorului.
Ansamblul tuturor instruciunilor pe care le poate executa un procesor se
numete set de instruciuni i este specific fiecrui procesor n parte.
22
Unitatea central
23
Set de regitrii
Operand A
R0
Operand B
R1
Indicatori
de condiii
UAL
Rn
Indicator de stiv
Unitate de
acces la
memoria de
date
Memoria
de date
Rezultat
SP
Unitate de
control
program
Contor
program
PC
Unitate de acces
la memoria de
program
Registru de cod
instruciune
IR
Memoria de program
24
Indicatorii de condiii:
Aceti indicatori snt informaii binare care sintetizeaz principalele
caracteristici ale rezultatului obinut n urma efecturii ultimei operaii aritmetice
sau logice. Indicatorii de condiii cei mai importani snt:
Zero (Z) acest indicator va avea valoarea logic 1 dac n urma
efecturii ultimei operaii rezultatul obinut are valoarea zero. n cazul n
care rezultatul este diferit de zero, indicatorul va avea valoarea logic 0;
Carry (C) valoarea logic 1 indic prezena unui transport sau
mprumut din sau ctre cifra binar cea mai semnificativ a rezultatului
obinut dup o adunare respectiv o scdere. Acest indicator este util n
cazul operaiilor aritmetice cu numere ntregi fr semn pentru a testa dac
rezultatul a depit sau nu limitele reprezentrii binare pe numrul de bii
corespunztor rezultatului. Deasemenea, acest indicator este util la
efectuarea operaiilor aritmetice cu operanzi reprezentai pe mai muli bii
dect este capabil procesorul s realizeze printr-o singur operaie. n acest
caz, indicatorul Carry este utilizat pentru a transfera transportul respectiv
mprumutul ntre operaiile aritmetice succesive aplicate seciunilor de
operanzi;
Overflow (V) valoarea logic 1 indic apariia unei depiri a valorii
rezultatului n cazul operaiilor aritmetice realizate ntre numere ntregi cu
semn reprezentate n complement fa de 2. Depirea n acest caz este
determinat prin analiza transportului sau mprumutului din sau ctre cele
mai semnificative dou cifre binare ale rezultatului i apare n cazul n care
exist transport sau mprumut numai la nivelul unei singure cifre dintre
acestea;
Sign (S) acest indicator va avea valoarea logic 1 dac rezultatul
ultmei operaii aritmetice este un numr negativ sau 0 dac este un
numr pozitiv.
Setul de regitrii:
Setul de regitrii este o memorie de capacitate redus utilizat pentru
stocarea temporar a operanzilor, rezultatelor intermediare sau finale pe parcursul
efecturii programului.
Setul de regitrii este compus dintr-un numr de locaii de memorie (uzual
ntre 8 si 32) avnd fiecare acelai numr de bii ca i operanzii prelucrai de
unitatea aritmetic i logic.
Motivul introducerii acestei memorii locale n structura procesoarelor este
viteza mult mai ridicat de acces la informaia stocat n setul de regitrii dect la
cea din memoria de date situat n exteriorul procesorului. Un alt motiv este
localizarea mult mai uoar a unei informaii n setul de regitrii deoarece numrul
acestora este redus (832) spre deosebire de memoria de date care poate avea
capaciti de ordinul miilor sau milioanelor de locaii.
Unitatea central
25
26
Unitatea central
27
Instruciuni cu un
singur operand:
Instruciuni cu doi
operanzi:
Cod operaie
Cod operaie
Cod operaie
Localizare operand 1
[destinaie rezultat]
Localizare operand 1
[destinaie rezultat]
Localizare operand 2
Cod instruciune
28
Generarea codurilor
C1
C2
00
01
C3
C4
C5
100
101
110
C6
C7
C8
C9
11100
11101
11110
11111
Figura 2.3: Generarea unui set de coduri cu ajutorul unui arbore de codificare
Nr = ceil (log 2 R ) ,
unde funcia ceil() reprezint rotunjirea prin adaos la cel mai apropiat ntreg.
(2-1)
Unitatea central
29
Set de regitrii
R15,R10>
15 = numrul
primului registru
(5 bii)
10 = numrul celui
de-al doilea registru
(5 bii)
R0
R1
Adresare
direct registru
Adresare
direct registru
R10
R15
R31
Nd = ceil (log2 D ) ,
(2-2)
De exemplu, instruciunea:
lds R10,750
care copiaz n registrul R10 coninutul locaiei aflat la adresa 750 n memoria de
date se codific pe 32 bii conform figurii urmtoare:
Set de regitrii
R0
R1
R10
R31
Adresare
direct registru
Memorie de date
R10,750>
10 = numrul
registrului
(5 bii)
Locaia 0
Locaia 1
Locaia 750
Ultima locaie
30
Adresarea imediat
n cazul acestui mod de adresare, operandul este localizat chiar n codul
instruciunii. Numrul de bii necesar pentru codificarea valorii operandului
depinde de tipul acestuia i poate fi 8, 16 sau 32 de bii.
De exemplu, instruciunea:
ldi
R16,200
care copiaz n registrul R16 valoarea 200 se codific pe 16 bii conform figurii
urmtoare:
Set de regitrii
R0
R1
R10
R16,200>
0 = numrul
registrului 16
(4 bii)
Adresare
direct registru
R31
Unitatea central
31
R10
R10,X>
10 = numrul
registrului
(5 bii)
0 = numrul corespunztor
registrului de adres X
(2 bii)
Adresare
direct registru
R26
R27
Memorie de date
R31
Locaia 0
Locaia 1
Ultima locaie
32
R10
R10,Y+25>
0 = numrul
25 = constant
corespunztor registrului numeric index
de adres Y (1 bit)
(6 bii)
Adresare
direct registru
R28
R29
R31
Memorie de date
Locaia 0
Locaia 1
K este valoarea pe 16 bii din perechea de
regitrii R27:R26 la care s-a adunat indexul
Locaia K
Ultima locaie
Unitatea central
33
Memoria
Memoria este subansamblul unitii centrale care stocheaz programul,
datele care snt prelucrate de acesta precum i informaii de configurare.
Din punct de vederea al arhitecturii subansamblului de memorie, unitile
centrale se clasific n dou categorii principale i anume:
arhitecturi de tip von Neumann care utilizeaz o singur memorie
pentru stocarea att a programului ct i a datelor prelucrate de acesta;
arhitecturi de tip Harvard care utilizeaz dou memorii dierite pentru
stocarea programului i a datelor.
34
Unitatea central
35
Memoria de program
Memoria de program este destinat stocrii codurilor instruciunilor care
formeaz programul de aplicaie. n cazul aritecturii Harvard, memoria de program
este o unitate fizic separat de cea de date care se conecteaz la procesor prin
intermediul unei magistrale proprii.
Deoarece programul trebuie s fie pstrat n memorie i n absena
alimentrii cu energie electric, pentru implementarea acestei uniti de memorie
se vor utiliza circuite de memorie de tip nevolatil.
Tehnologia FLASH
Tehnologia majoritii circuitelor de memorie de program este tip FLASH.
Aceast tehnologie ofer posibilitatea modificrii coninutului n vederea nscrierii
sau modificrii programului.
Deoarece scrierea unei valori ntr-o locaie de memorie nevolatil dureaz
relativ mult (de ordinul milisecundelor), scrierea coninutului unei astfel de
memorii locaie dup locaie ar dura excesiv de mult. n cazul memoriilor FLASH,
aceast problem se rezolv prin scrierea simultan a unui grup format din mai
multe locaii succesive (sector de memorie).
Structura intern a unei memorii de tip FLASH este:
Memorie
principal
Sector N-1
Memorie
temporar
Sector 1
Sector 0
36
Unitatea central
37
Memoria de date
Memoria de date este destinat stocrii informaiilor prelucrate. Memoria
de date trebuie s permit att citirea ct i modificarea rapid a coninutului
locaiilor sale. Din acest motiv, pentru implementarea memoriei de date se folosesc
circuite de memorie de tip RAM (Random Access Memory).
Memoriile de tip RAM pot fi realizate utiliznd dou tehnologii principale:
RAM static;
RAM dinamic.
Tehnologia RAM static
Aceast tehnologie utilizeaz celule de memorie bazate pe circuite logice
de tip bistabil. Caracteristica principal a acestui tip de memorie este aceea c
pstreaz informaia att timp ct este alimentat cu energie electric pe durate de
timp nedeterminate indiferent dac memoria este sau nu utilizat.
Aceast caracteristic recomand acest tip de memorii pentru dispozitive
n care procesorul pote fi oprit pentru anumite perioade de timp n principal pentru
reducerea consumului de energie electric (sisteme alimentate din baterii).
38
DI
DO
RE
Figura 2.10: Elementul de stocare a unui bit ntr-o memorie RAM static
Circuitul bistabil de tip R-S are dou intrri R respectiv S i dou ieiri
Q respectiv Q . Valoarea logic a ieirii Q este ntotdeauna complementul valorii
ieirii Q . Acest circuit are dou stri stabile corespunztoare celor dou valori
posibile ale ieirii Q . Starea bistabilului rmne neschimbat dac ambele intrri
R i S snt simultan n starea logic 1. Tranziiile dintr-o stare n alta snt
prezentate n tabelul urmtor:
Tabelul 2.1
Funcionarea bistabilului de tip R-S
R
nu este permis
Unitatea central
39
Bitul 1
Bitul 7
WE0
RE0
RE
WE
Selector de locaii
Adrese
DI
DO
RE
WE
DI
DO
RE
WE
DI
DO
WE1
RE1
RE
WE
DI
DO
RE
WE
DI
DO
RE
WE
DI
DO
WEn
REn
RE
RD
WR
WE
DI
DO
RE
WE
DI
DO
RE
WE
DI
DO
RD
WR
D0
D1
D7
Date
40
Data
Tranzistor
MOS
este echivalent
C
Figura 2.12: Elementul de stocare a unui bit ntr-o memorie RAM dinamic
Unitatea central
41
Col 0
Col N
Adres de coloan
Decodificator linii
Adres de linie
Lin 0
Lin 1
Lin N
Control
Mod 0
RD
Mod 1
Mod N
WR
Cmp
Cmp
Cmp
Din
RW 0
WE
Dout
RW 1
D
WE
RW N
D
WE
Cm 0
Cm 1
Cm N
Selector de coloane
42
Unitatea central
43
44
Memoria nevolatil
Memoria nevolatil este destinat stocrii acelor informaii care trebuie
pstrate i pe durata n care automatul programabil nu este alimentat cu energie
electric. Din aceast categorie de informaii fac parte parametrii de configurare ai
automatului, unele variabile (de exemplu indexul contoarelor de energie) i
diferitele fiiere de date (inregistrrile evoluiilor parametrilor controlai de
automat, jurnale de alarme i evenimente, etc.).
Circuitele de memorie utilizate pentru implementarea unitii de memorie
nevolatil snt realizate n tehnologie EEPROM (Electrically Erasable
Programmable Read-Only Memory).
Memoriile de tip EEPROM snt similare celor de tip FLASH, diferena
fiind scrierea informaiei la nivel de locaie nu de sector. n acest mod este posibil
modificarea unei singure variabile din memorie ceea ce corespunde modului de
utilizare al unitii de memorie nevolatil.
Oscilatorul de ceas
Oscilatorul reprezint baza de timp necesar procesorului i altor
componente din structura microcontrolerului pentru a derula corect secvenele de
operaii interne.
Majoritatea microcontrolerelor actuale ofer mai multe modaliti de
implementare ale ocilatorului astfel nct proiectantul echipamentului s poat
alege varianta cea mai portivit.
n practic se utilizeaz trei categorii principale de oscilatoare i anume:
oscilatoare RC;
oscilatoare stabilizate cu cristal de cuar de frecven ridicat;
oscilatoare stabilizate cu cristal de cuar de frecven redus.
Unitatea central
45
Oscilatoarele RC
Snt realizate avnd la baz un circuit de temorizare realizat cu rezisten i
condensator. Acest tip de oscilator este integrat n totalitate n structura
microcontrolerului astfel nct utilizarea lui nu necesit adugarea nici unei
componente suplimentare.
Oscilatoarele RC genereaz o singur frecven de ceas, existnd ns
posibilitatea ajustrii acesteia de ctre utilizator pentru compensarea erorii iniiale a
frecvenei.
Avantajul principal al acestui tip de oscilator este simplitatea n utilizare
dar precizia frecvenei generate este redus. Factorii care determin gradul redus de
precizie al oscilatoarelor RC snt dispersia valorilor componentelor RC n procesul
de fabricaie precum i dependena acestora de temperatur.
Se recomand utilizarea acestui tip de oscilator numai n aplicaiile care nu
depind de precizia de msurare a timpului i care nu necesit generarea unor
evenimente sau semnale cu precizie n timp.
Oscilatoarele stabilizate cu cristal de cuar de frecven ridicat
Snt realizate cu ajutorul unui amplificator prevzut cu un circuit de reacie
care include n structura sa un cristal de cuar. Rezonana mecanic a cristalului
modific impedana acestuia astfel nct condiia de oscilaie se obine doar pentru
frecvena de rezonan. Precizia de realizare a cristalelor de cuar precum i
dependena redus de temperatur a parametrilor de rezonan ofer acestui tip de
oscilator o foarte bun precizie i stabilitate a frecvenei generate.
Frecvena generat de acest tip de oscilator este de ordinul megaherzilor
fiind determinat de cristalul utilizat. Din acest motiv, proiectantul sistemului are
posibilitatea de a selecta orice frecven din setul de valori disponibile.
Oscilatoarele stabilizate cu cristal de cuar de frecven redus
Din punct de vedere constructiv snt similare celor care utilizeaz cristele
de frecven ridicat. Diferena este dat de tipul cristalului de cuar utilizat (cristal
de tip ceas) care are n acest caz frecvena de rezonan de 32768 Hz. Frecvena
redus generat de acest tip de oscilator conduce la un consum foarte mic de
energie electric (de ordinul 10 -8 ... 10 -6 W), dar i la o vitez foarte redus de
calcul.
Acest tip de oscilator este recomandat ca surs secundar de semnal de
ceas utilizat n perioadele de timp n care procesorul nu este solicitat i se dorete
reducerea consumului de energie electric (de exemplu n cazul echipamentelor
portabile alimentate din baterii sau acumulatori).
Deoarece setul de frecvene disponibile pentru cristalele de cuar este
relativ redus iar frecvena maxim generat de acestea este limitat la aproximativ
24 Mhz, generarea ceasului sistem poate fi realizat cu ajutorul unui circuit de tip
PLL (Phase-Locked Loop).
46
Prescaler
( :N1 )
fo
N1
Regulator
de faz
Oscilator
controlat
fo M
N1
Postscaler
( :N2 )
_fo M_
N1 N2
Ceas
sistem
Divizor
( :M )
f =
fo M
,
N1
(2-3)
fc =
fo M
,
N1 N 2
(2-4)
Unitatea central
47
TPOR
POR_RESET
activ
inactiv
48
TBOR
BOR_RESET
TBOR
activ
inactiv
activ
inactiv
Buton RESET
10K
1K
RESET
100nF
Unitatea central
49
Rearmare
ceas de gard
Execuie
instruciune
CLRWDT
Execuie
instruciune
CLRWDT
t
inactiv
WDT_RESET
T < Tw
activ
inactiv
T = Tw
Controlorul de ntreruperi
La nivelul dispozitivelor periferice pot apare diferite evenimente care
trebuie semnalizate procesorului pentru a fi tratate de acesta conform algoritmilor
specifici implementai n program.
Semnalizarea acestor evenimente se realizeaz prin intermediul semnalelor
de cerere de ntrerupere care snt generate de ctre dispozitivul periferic i preluate
de circuitul controlor de ntreruperi ataat procesorului.
Principiul de funcionare al ntreruperilor
O ntrerupere este modalitatea prin care un dispozitiv periferic solicit
intervenia procesorului pentru rezolvarea unui eveniment.
Modalitatea prin care procesorul poate interveni este execuia unei
secvene de program numit procedur de tratare a ntreruperii care are rolul de
a analiza evenimentul i de a realiza o serie de aciuni specifice acestuia.
Procedurile de tratare a ntreruperilor snt specifice fiecrui eveniment
generat de dispozitivele periferice. Fiecare eveniment are asociat o procedur
proprie de tratare a ntreruperii corespunztoare.
50
Controlor de
ntreruperi
Vector ntrerupere
Procesor
IACK
INT n
Controlorul
de ntreruperi
monitorizeaz n permanen
intrrile
Unitatea central
51
Mecanismul de prioriti
Un sistem complex conine un numr mare de dispozitive periferice care
pot genera cereri de ntrerupere. Apare astfel posibilitatea ca la un moment dat s
fie active mai multe cereri de ntrerupere ceea ce impune utilizarea unui mecanism
de prioriti.
Controlorul de ntreruperi poate fi configurat s asocieze fiecrei cereri de
ntrerupere INT 0K INT n o anumit prioritate specificat printr-un numr ntreg.
Convenia utilizat cel mai frecvent este de a asocia cererilor de ntrerupere mai
importante valori mai mici ale prioritilor.
Un scenariu de tratare a situaiilor n care este necesar mecanismul de
prioriti este prezentat n figura urmtoare:
B (1)
A (0)
C (2)
Cereri ntrerupere
(prioritate asociat)
IRQ
Vector ntrerupere
Vector B
Vector A
Vector C
IACK
Stiv prioriti
Execuie procesor
max
1
max
0
1
max
1
max
2
max
PP [
PB [
PA []
] PB
PC []
] PP
52
3.
Dispozitive periferice
Capitolul 4
Dispozitive periferice
Porturi de intrare/ieire
Porturile de intrare/ieire snt dispozitive periferice care permit citirea sau
controlul strii logice a unor conexiuni electrice. Porturile de intrare/ieire snt n
general integrate n microcontrolerele utilizate pentru implementarea automatelor
programabile.
Deoarece n momentul proiectrii microcontrolerului nu se pot cunoate
utilizrile fiecrei conexiuni, aceste porturi integrate trebuie s poat fi configurate
ca intrri sau ieiri la nivel de conexiune.
54
PIN
Tp
PIN 0
Th
PIN 1
Rp
Unitate de
interfa cu
procesorul
Conexiune
port
PIN k
PIN 7
RD
Comparator
cu histerezis
Tl
Sel
RD
Sel_PIN
PORT
PORT 0
Magistral de date
PORT 1
PORT k
PORT 7
WR
Circuit
driver
Sel
WR
Circuitul de control
pentru conxiunea k
Sel_PORT
DDR
DDR 0
DDR 1
DDR k
DDR 7
WR
Sel
WR
Sel_DDR
Dispozitive periferice
55
56
DDR k
PORT k
Th
Tl
Efect
Intrare fr rezisten de
blocat
polarizare conectat
n
Intrare cu rezisten de
conducie polarizare conectat
blocat
bloca
blocat
blocat
blocat
n
conducie
blocat
n
conducie
blocat
blocat
Tp
Timere
Timerele snt dispozitive periferice care gestioneaz timpul. Utilizrile
principale ale acestor dispozitive snt:
generarea unor evenimente la intervale de timp egale;
msurarea duratei sau perioadei unor impulsuri primite din exterior;
generarea de impulsuri cu frecvene sau durate programabile.
Toate dispozitivele de tip timer snt formate dintr-un numrtor care
contorizeaz perioadele unui semnal de referin. Semnalul de referin este
generat avnd la baz oscilatorul procesorului care are o frecven bine determinat
i foarte stabil deoarece oscilatorul este controlat cu un cristal de cuar.
Numrtorul din structura unui timer poate avea dimensiune de 8, 16 sau
32 de bii (indiferent de numrul de bii pe care lucreaz procesorul) fiind capabil
s contorizeze maximul 256, 65536 respectiv 4294967296 perioade ale semnalului
de referin.
Dispozitive periferice
57
Prescaler
Numrtor pe n bii
(TCNT)
Reset
Baz de timp
INT_OVF
Selecie divizor
de frecven (P)
Comparator
ICP
Control
captur
Unitate de
captur
INT_ICP
Registru limit
(LIM)
Control
sintez
OC
INT_OC
Load
Registru de captur
(ICR)
Comparator
Registru de
comparare (OCR)
Baza de timp
Baza de timp este componenta unui timer care contorizeaz perioadele
semnalului de referin pentru a cronometra trecerea timpului.
Semnalul oscilatorului de ceas utilizat de procesor Fosc este transmis unui
circuit prescaler care realizeaz operaia de divizare a frecvenei acestuia i
genereaz semnalul de referin. Factorul de divizare a frecvenei P poate fi
selectat dintr-un set de valori ntregi (uzual puteri ale lui 2). De exemplu, timerele
din structura microcontrolerelor AVR permit selecia factorului de divizare din
setul de valori {1,8 ,64 ,256 ,1024 } .
Perioadele semnalului divizat avnd frecvena Fosc / P snt numrate de
ctre un circuit numrtor ( TCNT ) avnd dimensiunea de n bii. Acest circuit
poate funciona liber realiznd contorizarea modulo 2 n a perioadelor semnalului de
referin sau se poate stabili o limit de numrare prin intermediul registrului limit
( LIM ). Stabilirea limitei se realizeaz prin compararea permanent a valorii
curente din numrtor cu cea din registrul limit urmnd i resetarea numrtorului
cnd acestea devin egale. n acest caz, numrtorul va realiza contorizarea modulo
LIM a perioadelor semnalului de referin.
Simultan cu revenirea numrtorului la zero ca urmare a depirii valorii
maxime reprezentabile 2 n 1 sau a atingerii valorii limit, baza de timp a timerului
poate genera o cerere de ntrerupere de tip Overflow ( INT _ OVF ).
58
Unitile de captur
Unitile de captur snt componente ale unui timer prin intermediul crora
de pot msura duratele sau perioadele unor impulsuri primite din exterior prin
intermediul conexiunii ICP .
Semnalul ICP este analizat de circuitul de control al capturii care poate fi
configurat s genereze un semnal ( Load ) ntr-una din urmtoarele situaii:
pe frontul cresctor al semnalului ICP (trecerea din 0 n 1);
pe frontul descresctor al semnalului ICP (trecerea din 0 n 1);
pe ambele fronturi ale semnalului ICP .
La dectecia unei astfel de situaii, circuitul de control al capturii activeaz
semnalul Load care are ca efect memorarea valorii curente din numrtor ntr-un
registru special de captur ( ICR ).
Simultan, la activarea semnalului Load se poate genera o cerere de
ntrerupere de tip Input Capture ( INT _ ICP ).
Unitile de sintez
Unitile de sintez snt componentele unui timer care pot genera impulsuri
cu durat i frecven programabil pe o conexiune OC .
Funcionarea unitii de sintez se bazeaz pe compararea permanent a
valorii curente din numrtor cu cea dintr-un registru special de comparaie
( OCR ). La detecia egalitii celor dou valori, precum i la activarea semnalului
R eset ca urmare a a depirii valorii maxime reprezentabile n numrtor sau a
atingerii valorii limit, circuitul de control al sintezei modific starea logic a
ieirii OC .
Circuitul de control al sintezei poate funciona n urmtoarele moduri:
aducere la 0 a ieirii OC la detecia egalitii;
aducere la 1 a ieirii OC la detecia egalitii;
complementarea ieirii OC la detecia egalitii;
generare de semnale modulate n durat (PWM).
n primele trei variante de funcionare, ciruitul de control al sintezei
utlizeaz numai semnalul de detecie al egalitii generat de comparator. n aceste
moduri starea logic a ieirii OC este modificat de fiecare dat cnd circuitul
comparator detecteaz egalitatea dintre valoarea curent a numrtorului i cea din
registrul de comparaie OCR .
Utilizrile acestor trei moduri de funcionare snt generarea semnalelor
logice care trebuie s i schimbe starea logic n anumite momente de timp.
Semnalele modulate n durat snt foarte utilizate n special pentru
comanda acionrilor electrice att n curent continuu ct i n curent alternativ.
Semnalele modulate n durat (Pulse Width Modulated PWM) snt
impulsuri logice avnd o frecven de repetiie fix iar durata poate fi modificat
ntre zero i perioada dintre dou impulsuri.
Dispozitive periferice
59
Numrtor
Registru OCR
Valoare limit
n
(LIM sau 2 )
t
Reset
1
Egalitate
1
Semnal
PWM
1
To =
Vm ax P
,
Fosc
(3-1)
de numrare;
LIM dac se utilizeaz registrul LIM pentru stabilirea limitei maxime de
numrare.
60
OCR P
,
Fosc
(3-2)
Interfee de comunicaie
Interfeele de comunicaie snt utilizate pentru conectarea automatelor
programable cu alte echipamente de control sau pentru realizarea unor reele de
comunicaie ntre mai multe automate.
Dispozitivul periferic utilizat pe scar larg pentru acest tip de conexiuni
este interfaa serial asincron care va fi prezentat n detaliu n paragrafele
urmtoare.
O categorie aparte de interfee de comunicaie este utilizat pentru
conectarea diferitelor circuite de memorie sau interfa la procesor. Din aceast
categorie fac parte interfeele seriale sincrone de tip SPI sau I2C care nu fac
obiectul prezentrii de fa.
Interfaa serial asincron
Acest tip de interfa permite conectarea a dou sau mai multe automate
programabile (sau alte echipamente) utiliznd un numr redus de conexiuni
electrice (2 sau 3 n funcie de tipul standardului electric).
Transferul informaiei prin interfaa serial asincron se realizeaz n
grupuri de 58 bii numite caractere. Aceste caractere se pot transmite n orice
moment cu sau fr pauz ntre ele.
Iniial, interfaa serial asincron a fost utilizat pentru conectarea ntre
dou echipamente (conexiune punct la punct) utiliznd 3 conexiuni (Figura 3.4):
Echipament 1
Echipament 2
Date
Date
TXD
TXD
RXD
RXD
GND
GND
Dispozitive periferice
61
Br =
1
,
Tb
(3-3)
transfer caracter
1 (mark)
transfer caracter
Tb
Tb
Tb
linie inactiv
0 (space)
Tb
Bit de
START
Bii de
date
Tb
Bit de
STOP
62
Te =
Tb
,
16
(3-4)
Bitul de start este detectat atunci cnd linia este n stare inactiv i se
citete un eantion cu valoarea 0. n acest moment se testeaz daca ceea ce s-a
detectat este ntr-adevr un bit de start sau doar o perturbaie indus n linie. Testul
presupune citirea valorii pentru trei eantioane succesive aflate la o distan de 7, 8
respectiv 9 intervale Te fa de eantionul care a semnalizat nceputul bitului de
START adic n centrul acestuia. Dac aceste trei eantioane au valoarea 0
atunci bitul recepionat este validat ca fiind un bit de start i ncepe recepia
caracterului (Figura 3.6):
Detecie bit
de START
Citire valoare
Bit 0
Citire valoare
Bit 1
Bit 0
Citire valoare
Bit 7
Bit 1
Verificare bit
de STOP
Bit 7
0
7 Te
8 Te
Stare inactiv
9 Te
15 Te
16 Te
96 Te
16 Te
Stare inactiv
Dispozitive periferice
63
2400,
28800,
4800,
38400,
9600,
57600,
14400,
115200.
Parametru
Tensiune la ieire
Tensiune la intrare
Distan maxim
Vitez maxim
Valoare
+5+15V
515V
+3+25V
325V
Stare logic 0:
Stare logic 1:
Stare logic 0:
Stare logic 1:
15 metri
115200 bit/sec. (maxim 19200 bit/sec. la 15 metri)
64
Rt
Driver RS-485
RXD
TXD
Driver RS-485
TXE
Interfa serial
asincron
(echipament 1)
RXD
TXD
TXE
Driver RS-485
RXD
Interfa serial
asincron
(echipament 2)
TXD
TXE
Interfa serial
asincron
(echipament N)
Parametru
Tensiune la ieire
Tensiune la intrare
Distan maxim
Vitez maxim
Valoare
Stare logic 0: min. 1.5V
Stare logic 1: max. -1.5V
Stare logic 0: min. 200mV
Stare logic 1: max. 200mV
120 metri
10 Mbit/sec (maxim 115200 bit/sec. la 1200 metri)
Dispozitive periferice
65
Condiionare
de semnal 1
Traductor 2
Condiionare
de semnal 2
Traductor n
Multiplexor
analogic
Convertor
analog-numeric
(CAN)
Condiionare
de semnal n
Valoare
msurat
(N)
66
Convertor
analog-numeric
START
Valoare
msurat
(N)
READY
Dispozitive periferice
67
Ui
Element de
eantionare
i memorare
Comparator
de tensiune
Ui
C
Registru de
aproximaii succesive
Vout
Convertor
numeric-analogic
START
STARE
Valoare
msurat
Vref
Vout = Vref
N
,
2b
(3-5)
Se observ c tensiunea de referin Vref se aplic convertorului numericanalogic pentru a stabili domeniul de variaie al tensiunii generate.
Tensiunea de la ieirea elementului de eantionare i memorare este
comparat n permanen cu cea generat de convertorul numeric-analogic,
rezultatul comparrii fiind preluat de un registru de aproximaii succesive.
Registrul de aproximaii succesive determin valoarea tensiunii msurate
prin intermediul unui algoritm iterativ de cutare.
68
7.5 V
Ui=7 V
6.25 V
Vout
5V
0V
1 ( UiVref )
10 0 =(4)
1 00 =(4)
1 10 =(6)
1 00 =(4)
1 01 =(5)
101 =(5)
test
compensare
test
compensare
test
compensare
0 ( Ui<Vref )
Pasul 1 (bitul 2)
1 ( UiVref )
Pasul 2 (bitul 1)
Pasul 3 (bitul 0)
Intrare 1 (Ui 1)
Ieire (Uo)
Intrare 2 (Ui n)
Selecie canal
Dispozitive periferice
69
Conversie
I-U
Circuit
diferenial
Filtru activ de
tip trece-jos
Ctre multiplexorul
analogic
70
Traductor
Ui
Circuit de
intrare
diferenial
Uo
UiUi+
Uo=Ui
UiPotenial de referin
Ucm =
(Ui + ) (Ui ) ,
(3-6)
R1=R
R2=9R
U+
Ui+
A=10
R2=9R
Uo
U-
UiR1=R
Dispozitive periferice
71
Uo = Ao [ (U + ) (U ) ] ,
(3-7)
U+ U
R1
R
(3-8)
=
=
=
= 0.1 ,
Ui + Ui R1 + R 2 R + 9 R
Reducerea tensiunilor cu un factor F extinde gama tensiunilor de mod
comun de 1 / F ori. n exemplul anterior F = 0.1 , deci gama tensiunilor de mod
comun de la intrrile circuitului diferenial este de 1 / F = 10 ori mai mare dect
F=
Te
1
,
2 Fma x
(3-9)
72
Filtru ideal
Filtru real (ordinul 1)
Filtru real (ordinul 2)
Amplificare
0.8
0.6
0.4
0.2
0
-1
10
10
Frecventa normalizata
10
C
R
Ieire
Intrare
Ieire
Intrare
C
Fb =
1
,
2 R C
(3-10)
Dispozitive periferice
73
Convertor
numeric-analogic
(CNA 1)
Condiionare
de semnal 1
Ieire 1
Valoare
comand
(N2)
Convertor
numeric-analogic
(CNA 2)
Condiionare
de semnal 2
Ieire 2
Valoare
comand
(Nn)
Convertor
numeric-analogic
(CNA n)
Condiionare
de semnal n
Ieire n
Vout = Vref
N
,
2b
(3-11)
74
Cea mai utilizat variant de implementare a convertoarelor numericanalogice este cea bazat pe o reea rezistiv de tip R-2R. Structura unui astfel de
convertor este prezentat n figura urmtoare:
Valoare de comand (N)
Bit 0
Bit 1
Bit 2
Bit b-2
Bit b-1
Tensiune de
alimentare
Vref
Ir
Ir
Ir
Ir
Ir
Ra
R
2R
2R
2R
2R
Vout
2R
B
Ir
2R
Este
echivalent
cu:
Ir Bk
Ik-1
Ik-1
2R Irk
2R
Dispozitive periferice
75
Se observ c din fiecare nod al reelei se extrag doi cureni. Primul curent
provine de la seciunea reelei situat n stnga nodului I k 1 iar cel de-al doilea
este cel generat de sursa de curent constant comandat de bitul k . Curentul total
extras din nod este suma acestor doi cureni adic I k 1 + Bk Ir .
Datorit egalitii rezistenei 2R a reelei cu cea ecivalent pentru
seciunea de reea situat la dreapta nodului, curentul total extras din nod se
repartizeaz n mod egal ntre cei doi cureni care intr n nod I k respectiv Irk
care au valorile:
I k = Irk =
I k 1 + Bk Ir
,
2
(3-12)
Avnd aceast relaie de calcul i observnd c din prima celul iese doar
curentul generat de surs este posibil determinarea recursiva a valorii curenilor
I0 K I b 1 astfel:
I0 =
B0 Ir
2
B0 Ir
+ B1 Ir Ir
2
= (2 B1 + B0 )
2
4
Ir
,
(2 B1 + B0 ) + B2 Ir Ir
I1 + B2 Ir 4
I2 =
=
= (4 B2 + 2 B1 + B0 )
2
2
8
L
I + Bb1 Ir
Ir
Ir
Ib1 = b2
= K = b 2b1 Bb1 + K + 2 B1 + B0 = b N
2
2
2
I + B1 Ir
I1 = 0
=
2
(3-13)
Vout = Ib1 Ra =
Ir Ra
N,
2b
(3-14)
Ir = Vref
1
,
Ra
(3-15)
76
Vout =
Ir Ra
Vref
N= b N,
b
2
2
(3-16)
Ieire semnal
unficat
Uo [0...10V]
R
R3=R
Ieire semnal
unficat
Uo [0...10V]
R2=2R
Vref
R1=2R
Dispozitive periferice
77
R1 R 2 + R 2 R 3
R2
Vref
Uo = Ui 1 +
,
R1 R3
R3
(3-17)
Alegnd:
R1 = 2 R , R 2 = 2 R , R3 = R
se obine:
Uo = 4 Ui 2 Vref ,
(3-18)
R1
T
R2+R0
R1
R0
R2
Element de
acionare
Rs
Ieire semnal
unficat
Io [4...20mA]
Io = Ui
R2
,
R1 R0
(3-19)
78
R=10K
Ctre o intrare
a unui port
R2
Semnal digital
de la senzor (Ui)
R1
Comparator
cu histerezis
Dispozitive periferice
79
I LED =
Ui VLED VLED
R2
R1
VPRAG = VLED
(3-20)
R1 + R2
R1
unde VLED este tensiunea de deschidere a diodei LED (11.5 V pentru diodele cu
emisie n infrarou).
Dac tensiunea la intrare este mai mic dect tensiunea minim, nici unul
din LED-uri nu este aprins, deci, fototranzistorul este blocat. n aceast situaie,
tensiunea de alimentare VDD va fi aplicat la intrarea comparatorului prin
intermediul rezistenei R (stare logic 1).
Dac tensiunea la intrare este mai mare dect tensiunea minim, unul dintre
cele dou LED-uri va fi aprins (n funcie de polaritatea tensiunii de la intrare) iar
fototranzistorul va fi n stare de conducie. n acest caz, tensiunea la intrarea
comparatorului va fi aproximativ nul (stare logic 0).
Comparatorul testeaz tensiunea primit la intrare i decide asupra
nivelului logic corespunztor acesteia pe care l transmite la intrarea portului.
Comparatorul cu histerezis
Deoarece fototranzistorul optocuplorului poate fi la un moment dat ntr-o
stare intermediar ntre cea de conducie i cea de blocare, tensiunea din colectorul
acestuia poate avea valori diferite de cele care indic nivele logice 0 sau 1.
Pentru evitarea interpretrii eronate a acestor tensiuni de ctre portul de
intrare se utilizeaz un circuit comparator cu histerezis care decide asupra nivelului
logic corespunztor tensiunii.
Principiul de funcionare al unui comparator cu histerezis este prezentat n
figura urmtoare:
Nivel logic
detectat
1
Vp-
Vp+
Tensiune
de intrare
80
Releu de
tip reed
Contacte de comand
element de acionare
Port de
ieire
Dispozitive periferice
81
Va
Port de
ieire
1K10K
Contacte de comand
element de acionare
T
10K
82
Releu static cu
fototranzistor de
tip darlington
Port de
ieire
contacte de comand
element de acionare
Dispozitive periferice
83
Releu fotovoltaic:
Acest tip de releu static poate fi utilizat att n curent continuu ct i n
curent alternativ. Acest tip de releu static a aprut relativ de curnd dar este foarte
utilizat n automatele programabile de construcie recent.
Structura unei interfee pentru ieiri digitale realizat cu releu fotovoltaic
este prezentat n figura urmtoare:
Releu fotovoltaic
R
VDD
T1
D1
Comand element
de acionare
De la portul
de ieire
T2
D2
84
Circuit de
sincronizare
Figura 3.30: Interfa pentru ieiri digitale cu releu static de curent alternativ
Releul static de curent alternativ este format dintr-o diod LED cu emisie
n infrarou, un fototriac de comand de mic putere, un dispozitiv de sincronizare
cu tensiunea alternativ i un triac principal (sau o pereche de tiristoare) de putere.
Principiul de funcionare al releului fotovoltaic este urmtorul:
Dac LED-ul este stins, fototriacul de comand este acionat i alimenteaz
circuitul de sincronizare. Acest circuit comand triacul principal doar dac
tensiunea la bornele releului static este mai mic dect un prag (2040 V).
n cazuln care aceast condiie este ndeplinit triacul de putere este
comandat iar elementul de acionare este alimentat;
n cazul n care LED-ul este stins, triacul de comand nu mai este acionat
iar circuitul de sincronizare ntrerupe comanda triacului principal. Triacul
principal rmne ns n conducie pn la anularea natural a curentului
din circuitul elementului de acionare datorat trecerii prin zero a
curentului alternativ.
Se poate observa c intrarea n conducie a triacului principal se
realizeazea ntotdeauna la nceputul unei semiperioade a tensiunii alternative.
Deasemenea, ieirea din conducie se realizeaz doar n momentele n care curentul
prin elementul de acionare este nul.
Acest mod de funcionare evit operaiile de comutaie n sarcin care
ar produce variaii mari ale curentului prin circuitul elementului de acionare.
Rezultatul este o reducere semnificativ a perturbaiilor electromagnetice generate
la comutaie.