You are on page 1of 84

Cuprins

1.

Arhitectura general a unui automat programabil .........................5


Interconectarea elementelor componente ale unui automat programabil ..7
Magistrala sistemului....................................................................................8
Magistrala de date ...................................................................................8
Magistrala de adrese................................................................................8
Semnalele de control ................................................................................9
Conectarea la magistrala sistemului ..............................................................9
Conectarea circuitelor de memorie.........................................................10
Conectarea dispozitivelor periferice .......................................................10
Maparea circuitelor de memorie i a dispozitivelor periferice ......................10
Transferul informaiilor pe magistrala sistemului ........................................12
Desfurarea unei operaii de citire pe magistrala sistemului .................12
Desfurarea unei operaii de scriere pe magistrala sistemului...............13
Particulariti de implementare a automatelor programabile ........................13

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

AUTOMATE PROGRAMABILE I MICROPROGRAMARE


Adresarea indirect a memoriei..............................................................30
Adresarea indirect i indexat ..............................................................32
Variante ale adresrii indirecte ..............................................................33

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

Circuite auxiliare procesorului ..............................................................44


Oscilatorul de ceas......................................................................................44
Oscilatoarele RC....................................................................................45
Oscilatoarele stabilizate cu cristal de cuar de frecven ridicat............45
Oscilatoarele stabilizate cu cristal de cuar de frecven redus .............45
Circuite de iniializare i supraveghere........................................................46
Circuitul de generare a semnalului de iniializare...................................47
Ceasul de gard .....................................................................................48
Controlorul de ntreruperi ...........................................................................49
Principiul de funcionare al ntreruperilor..............................................49
Funcionarea controlorului de ntreruperi ..............................................50
Mecanismul de prioriti ........................................................................51

3.

Dispozitive periferice ......................................................................53


Dispozitive periferice de uz general ......................................................53
Porturi de intrare/ieire ...............................................................................53
Unitatea de interfa cu procesorul ........................................................55
Circuitele de control pentru conexiunile de intrare/ieire........................55
Timere........................................................................................................56
Baza de timp...........................................................................................57
Unitile de captur................................................................................58
Unitile de sintez.................................................................................58
Interfee de comunicaie..............................................................................60
Interfaa serial asincron .....................................................................60
Principiul comunicaiei seriale asincrone ...............................................61
Standarde pentru interfeele seriale asincrone ........................................63

Dispozitive periferice pentru conectarea la proces.................................65


Interfee pentru intrri analogice .................................................................65
Structura unei interfee pentru intrri analogice .....................................65
Convertorul analog-numeric...................................................................66
Multiplexorul analogic ...........................................................................68
Condiionarea semnalelor ......................................................................69

Arhitectura general a unui automat programabil

Interfee pentru ieiri analogice ...................................................................73


Structura unei interfee pentru ieiri analogice .......................................73
Convertorul numeric-analogic................................................................73
Condiionarea semnalelor ......................................................................76
Interfee pentru intrri digitale ....................................................................78
Interfa universal pentru intrri digitale cu izolare galvanic .............78
Comparatorul cu histerezis.....................................................................79
Interfee pentru ieiri digitale ......................................................................80
Interfee cu ieire pe releu electromagnetic.............................................80
Interfee cu ieire pe releu static .............................................................82

1.

Arhitectura general a unui automat programabil

Capitolul 2

Arhitectura general a unui automat


programabil

Arhitectura unui echipament electronic reprezint totalitatea


componentelor din care este realizat precum i modul n care aceste componente
snt interconectate.
Arhitectura general a unui automat programabil este prezentat n figura
urmtoare:
Unitate central
Circuit de iniializare i
supraveghere (watch-dog timer)
RESET

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

Figura 1.1: Arhitectura general a unui automat programabil

Elementele componente ale unui automat programabil se pot grupa n trei


subansambluri principale i anume:
Unitatea central;
Dispozitive periferice;
Sursa de alimentare.

AUTOMATE PROGRAMABILE I MICROPROGRAMARE

Transferul de informaii ntre elementele componente ale unui automat


programabil este coordonat de ctre procesor. Unitatea de informaie transferat
este format din grupuri de 8 bii care se numesc octei (bytes).
Dispozitivele de memorie precum i cele periferice pun la dispoziia
procesorului o serie de locaii n care se pot scrie sau din care se pot citi informaii
sub form de octei. n cazul circuitelor de memorie aceste locaii snt utilizate
pentru stocarea informaiei iar n cazul dispozitivelor periferice locaiile snt
utilizate pentru transferul de informaie dintre procesor i periferic.
Toate aceste locaii snt numerotate pentru a face posibil identificarea lor.
Numrul asociat unei locaii se numete adres iar operaia de identificare a unei
locaii pe baza numrului acesteia se numete adresare.
Orice procesor este capabil s gestioneze un anumit numr maxim de
locaii care reprezint capacitatea de adresare a procesorului. Nu este obligatoriu ca
toate aceste locaii adresabile de ctre procesor s fie i utilizate.
Unitatea de msur a capacitii de adresare a unui procesor precum i a
capacitilor de stocare a memoriilor (numrul de locaii oferite) este octetul sau
byte-ul avnd urmtorii multiplii:
Kilo-octetul sau Kilobyte-ul (KB) format din 210=1024 uniti;
Mega-octetul sau Megabyte-ul (MB) format din 220=1048576 uniti;
Giga-octetul sau Gigabyte-ul (GB) format din 230=1073741824 uniti.
La nivelul fiecrui circuit de memorie sau dispozitiv periferic exist un
anumit numr N de locaii care snt numerotate cu valori ntre 0 i N-1. Aceste
valori reprezint adresele locale ale locaiilor n cadrul circuitului de memorie sau
dispozitivului periferic respectiv.
Pentru a permite procesorului s adreseze locaiile tuturor circuitelor de
memorie i dispozitivelor periferice se realizeaz o mapare a adreselor locale n
domeniul de adrese utilizat de ctre procesor. Un exemplu de mapare a adreselor
locale la un procesor este prezentat n figura urmtoare:
Dispozitiv periferic

Locaiile dispozitivului periferic

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

Figura 1.2: Exemplu de mapare a adreselor locale

1
0

Adrese locale

Adrese procesor

30723087

15

Adrese locale

Domeniul de adresare al procesorului


4095

Arhitectura general a unui automat programabil

Procesorul din acest exemplu are capacitatea de adresare de 4 KB adic


4096 locaii. La acest procesor s-au conectat dou circuite de memorie avnd
fiecare capacitatea de 1 KB i un dispozitiv periferic care utilizeaz pentru
comunicaia cu procesorul un numr de 16 locaii.
Locaiile corespunztoare primului circuit de memorie snt adresate de
ctre procesor prin adrese cu valori ntre 0 i 1023. Locaiile celui de-al doilea
circuit de memorie utilizeaz urmtoarele 1024 de adrese ale procesorului respectiv
ntre 1024 i 2047.
Cele 16 locaii ale dispozitivului periferic snt adresate de procesor n
domeniul de adrese ntre 3072 i 3087. Se observ prezena unui spaiu neutilizat
ntre adresele memoriilor i cele ale dispozitivului periferic precum i ultimele
1024 locaii adresabile de ctre procesor.
Operaia de mapare este realizat cu ajutorul unor circuite numite
decodificatoare de adrese care primesc adresa generat de procesor i identific
crui circuit de memorie sau dispozitiv periferic i corespunde.

Interconectarea elementelor componente ale unui


automat programabil
Elemente componente ale unitii centrale i dispozitivele periferice snt
interconectate prin intermediul magistralei sistemului. Magistrala sistemului este
un ansamblu de conexiuni electrice prin care se realizeaz schimbul de informaii
ntre procesor i restul dispozitivelor conectate cu acesta.
Toate circuitele de memorie i dispozitivele periferice se conecteaz n
paralel pe aceast magistral. Transferul informaiei pe magistrala sistemului este
controlat de ctre procesor i se realizeaz prin dou categorii de operaii i anume:
operaii de citire n care se transmite ctre procesor valoarea existent
ntr-o anumit locaie din memorie sau dispozitiv periferic;
operaii de scriere n care procesorul modific valoarea dintr-o anumit
locaie de memorie sau dispozitiv periferic.
Deasemenea, dispozitivele periferice pot trimite ctre procesor semnale
prin care anun producerea unor evenimente. Aceste semnale se numesc cereri de
ntrerpere i permit procesorului s reacioneze rapid la evenimentele semnalizate.
Fiecare dispozitiv periferic utilizeaz cte un semnal de cerere ntrerupere
pentru fiecare tip de eveniment care se poate produce. Gestiunea cererilor de
ntrerupere generate de ntreg ansamblul de dispozitive periferice este realizat de
ctre un circuit special ataat procesorului numit controlor de ntreruperi.

AUTOMATE PROGRAMABILE I MICROPROGRAMARE

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.

Dimensiunile uzuale ale magistralelor de adrese snt:


16 conexiuni (bii) se pot adresa 216=65536 de locaii (64 KB);
20 conexiuni (bii) se pot adresa 220=1048576 de locaii (1 MB);
24 conexiuni (bii) se pot adresa 224= 16777216 de locaii (16 MB);
32 conexiuni (bii) se pot adresa 232= 4294967296 de locaii (4 GB)

Notaia consacrat pentru conexiunile magistralei de date este Di, unde


i reprezint numrul conexiunii.

Arhitectura general a unui automat programabil

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;

Conectarea la magistrala sistemului


n figura urmtoare este prezentat modul de conectare a procesorului, unui
circuit de memorie i a unui dispozitiv periferic utiliznd magistala sistemului:
Microprocesor
Decodificator
de adrese

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

Figura 1.3: Conectarea memoriei i perifericelor la microprocesor

10

AUTOMATE PROGRAMABILE I MICROPROGRAMARE

Conectarea circuitelor de memorie


Un circuit de memorie se conecteaz utiliznd toate cele trei componente
ale magistralei sistemului (date, adrese i semnale de control). Suplimentar, se
observ prezena unei conexiuni notate CS (chip select) care are rolul de a activa
circuitul de memorie doar n cazul n care operaia de transfer de date se refer la o
locaie prezent la nivelul circuitului respectiv.
Semnalul de selecie CS este generat de ctre un circuit decodificator de
adrese care determin apartenena locaiei la circuitul de memorie pe baza adresei
generate de ctre procesor.
n cazul n care semnalul CS este activ (adic n stare logic 0), circuitul
de memorie particip la operaia de transfer de date iniiat de procesor (este activ).
Dac semnalul CS este inactiv (1 logic), circuitul de memorie ignor comenzile
date de procesor i nu particip la operaia de transfer de date (este inactiv).
Conectarea dispozitivelor periferice
Un dispozitiv periferic se conecteaz la magistrala sistemului similar unui
circuit de memorie.
Deoarece la nivelul dispozitivelor periferice se pot produce diferite
evenimente (modificri de stare, finalizarea anumitor operaii realizate de periferic,
recepia unor informaii din exterior, etc.) este necesar semnalizarea acestora ctre
procesor pentru a fi tratate de acesta conform algoritmilor specifici implementai n
program.
Semnalizarea evenimentelor 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.
Controlorul de ntreruperi genereaz o comand IRQ (Interrupt request)
ctre procesor care determin oprirea temporar a programului executat de acesta
i apelarea unei secvente de program specifice fiecrei cereri de ntrerupere.
Secvena de program apelat se numete procedur de tratare a ntreruperii i
realizeaz operaiile necesare rezolvrii situaiei aprute prin producerea
evenimentului corespunztor.

Maparea circuitelor de memorie i a dispozitivelor periferice


Prin operaia de mapare se asociaz fiecrei locaii din circuitele de
memorie sau dispozitivele periferice o adres prin intermediul creia va fi
identificat de ctre procesor.
Fizic, maparea se realizaeaz prin selecia (activarea) fiecrui circuit de
memorie sau dispozitiv periferic de fiecare dat cnd procesorul realizeaz o
operaie de transfer de date cu o locaie aflat ntr-un anumit interval de adrese.

Arhitectura general a unui automat programabil

11

De exemplu, pentru sistemul prezentat n Figura 1.2:


circuitul de memorie #1 se activeaz pentru operaii de transfer n
intervalul de adrese [01023];
circuitul de memorie #2 se activeaz pentru adrese ntre [10242047];
dispozitivul periferic se activeaz pentru adrese ntre [30723087].
Selecia este realizat de ctre decodificatoarele de adres care analizeaz
adresele generate de procesor pe durata fiecrei operaii de transfer de date.
Principiul de funcionare al decodificatoarelor de adrese se bazeaz pe
observaia c o parte din biii de adres generai de procesor au aceeai valoare
pentru toate locaiile dintr-un circuit de memorie sau dispozitiv periferic.
De exemplu, pentru sistemul prezentat n Figura 1.2, adresele generate de
procesor pentru toate cele 16 locaii corespunztoare dispozitivului periferic snt
prezentate n figura urmtoare:
Adres generat de procesor (N bii)
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1

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)

Figura 1.4: Componentele unei adrese

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)

Dac dimensiunea adresei generate de procesor este de N bii, dimensiunea


componentei fixe este:

Nf = N Nv ,

(1-3)

12

AUTOMATE PROGRAMABILE I MICROPROGRAMARE

Decodificatorul de adrese analizeaz componenta fix a adresei generate


de procesor i activeaz circuitul de memorie sau dispozitivul periferic dac
valorile biilor corespund domeniului de adrese asociat (11000000 pentru exemplul
anterior).

Transferul informaiilor pe magistrala sistemului


Transferul informaiilor ntre procesor i circuitele de memorie sau
dispozitivele periferice se realizeaz prin operaii de citire sau scriere a unor
locaii. Aceste operaii snt controlate de procesor i se desfoar conform unor
succesiuni de operaii elementare numite ciclii de citire respectiv scriere.
Desfurarea unei operaii de citire pe magistrala sistemului
Citirea valorii unei locaii se realizeaz pe durata unui ciclu de citire care
este prezentat n figura urmtoare:
Magistrala
de adrese

Adresa locaiei

CSx
RD
Magistrala
de date

Valoarea locaiei

Tcs

Trd

Figura 1.5: Desfurarea unui ciclu de citire

Ciclul de citire ncepe prin plasarea de ctre procesor a adresei locaiei pe


magistrala de adrese. Dup un interval scurt de timp (Tcs), decodificatorul de
adrese activeaz semnalul de selecie al circuitului de memorie sau dispozitivului
periferic CSx care conine locaia adresat. Intervalul de timp Tcs este necesat
circuitelor decodificatorului pentru a decide care dintre semnalele de selecie
trebuie activat.
n urmtoarea etap, procesorul activeaz semnalul de comand pentru
operaia de citire RD iar circuitul de memorie sau dispozitivul periferic selectat
rspunde prin plasarea valorii locaiei adresate pe magistrala de date. Intervalul de
timp dintre activarea semnalului RD i plasarea valorii locaiei pe magistrala de
date se numete timp de acces i este notat cu Trd.
Finalizarea ciclului de citire este marcat prin dezactivarea de ctre
procesor a semnalului RD . Simultan cu aceasta sau la un interval de timp foarte
scurt, procesorul modific valoarea prezent pe magistrala de adrese (apare adresa
urmtoarei locaii care va fi citit sau modificat) ceea ce conduce la dezactivarea
semnalului CSx . n urma dezactivrii semnalului de citire RD , circuitul de
memorie sau dispozitivul periferic elibereaz magistrala de date.

Arhitectura general a unui automat programabil

13

Desfurarea unei operaii de scriere pe magistrala sistemului


Modificarea valorii unei locaii se realizeaz pe durata unui ciclu de scriere
care este prezentat n figura urmtoare:
Magistrala
de adrese

Adresa locaiei

CSx
WR
Magistrala
de date

Noua valoare a locaiei

Tcs

Twr

Figura 1.6: Desfurarea unui ciclu de scriere

Ciclul de citire ncepe prin plasarea de ctre procesor a adresei locaiei pe


magistrala de adrese urmat de activarea semnalului de selecie CSx de ctre
decodificatorul de adrese.
n urmtoarea etap, procesorul plaseaz pe magistrala de date valoarea pe
care dorete s o scrie n locaie. Dup un scurt interval de timp procesorul activez
semnalul de comand al operaiei de scriere WR care declaneaz la nivelul
circuitului de memorie sau dispozitivului periferic selectat operaia de modificare a
coninutului locaei adresate.
Semnalul WR este meninut activ un interval de timp Twr. Acest interval
este necesar circuitului de memorie sau dispozitivului periferic pentru a finaliza
operaia de modificare a coninutului locaiei i se numete timp de scriere.
Finalizarea ciclului de citire este marcat prin dezactivarea de ctre
procesor a semnalului WR . Simultan cu acesta sau sau la un interval de timp foarte
scurt, procesorul modific valoarea prezent pe magistrala de adrese i elibereaz
magistrala de date.

Particulariti de implementare a automatelor programabile


n funcie de gradul de complexitate, automatele programable se pot
realiza n dou variante constructive:
Varianta compact;
Varianta modular.
n cazul variantei compacte toate elementele componente snt integrate
ntr-o singur unitate constructiv (plac de circuit/carcas). Aceast variant este
utilizat n cazul aplicaiilor de complexitate redus deoarece prezint o
configuraie rigid cu un numr relativ sczut de dispozitive periferice.

14

AUTOMATE PROGRAMABILE I MICROPROGRAMARE

n cazul variantei modulare cele trei subansambluri principale (unitatea


central, dispozitivele periferice i sursa de alimentare) snt realizate sub forma
unor module diferite. Interconectarea modulelor se realizeaz utiliznd magistrala
sistemului sau, mai recent, interfee de comunicaie serial de mare vitez.
Din punct de vedere mecanic, modulele componente snt realizate sub
forma unor sertare care se asambleaz ntr-o carcas special (rack) prevzut cu
conectori pentru accesul la magistrala sistemului.
Aceast variant este foarte flexibil din punct de vedere al configurrii
subsistemului de dispozitive periferice fiind utilizat n cazul aplicaiilor de
complexitate ridicat.
n ambele variante de implementare, unitatea central i o parte dintre
dispozitivele periferice snt implementate utiliznd un circuit specializat numit
microcontroler.
Microcontrolerul integreaz ntr-o singur capsul de circuit urmtoarele
elemente:
un procesor optimizat din punct de vedere al consumului de energie
electric (energie termic disipat);
memorie de program cu capacitatea ntre 4 KB si 512 KB;
memorie de date cu capacitatea ntre 0.5 KB si 128 KB;
memorie nevolatil cu capacitatea ntre 0.5 KB i 4 KB;
interfee de comunicaie diverse;
dispozitive periferice de gestiune a timpului (timere, ceas de timp real);
dispozitive periferice de interfa de uz general.
Utilizarea microcontrolerelor simplific mult proiectarea i construcia
automatelor programabile (i a multor altor categorii de dispozitive electronice)
deoarece integreaz majoritatea componentelor necesare.
n cazul automatelor realizate n variant compact este posibil
implementarea ntregului automat cu ajutorul unui circuit de tip microcontroler i
un set redus de componente suplimentare necesare pentru interfaarea cu procesul
condus.
n cazul automatelor realizate n variant modular, tendina actual este
de a implementa modulele de interfa cu procesul utiliznd cte un microcontroler
de complexitate redus pentru fiecare modul n parte. Conectarea modulelor de
interfa la modulul care conine unitatea central se realizeaz prin intermediul
unei magistrale de comunicaie serial de mare vitez. Utilizarea acestei magistrale
de comunicaie simplific extrem de mult sistemul de interconectare dintre module
deoarce se utilizeaz un numr de numai 23 conexiuni electrice n locul celor
cteva zeci n cazul utilizrii magistralei sistemului.
n capitolele urmtoare se vor prezenta n detaliu elementele componente
ale unui automat programabil realizat pe baza unui microcontroler. Prezentarea va
conine exemplificri referitoare la utilizarea microcontrolerelor de 8 bii din
familia AVR deoarece aceast familie de microcontrolere are o structur simpl i
reprezentativ.

Arhitectura general a unui automat programabil

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.

Dispozitive periferice de uz general


Dispozitivele periferice de uz general snt comune tuturor automatelor
programabile i pot fi clasificate n urmtoarele categorii:
porturi de intrare/ieire;
dispozitive de gestiune a timpului;
interfee de comunicaie.
Porturile de intrare/ieire
Porturile de intrare/ieire snt dispozitive periferice care permit comanda
sau citirea strii logice a unor conexiuni electrice.
Starea logic a unei conexiuni electrice este reprezentat prin valoarea
tensiunii electrice prezente pe acea conexiune. n figura urmtoare este prezentat
modul de asociere al strilor logice cu nivele de tensiune:
VDD

Nivele de tensiune

Stare logic 1
Vih

Stare logic
nedefinit
Vil

Stare logic 0
0V

Figura 1.7: Nivele de tensiune asociate strilor logice

Starea logic 0 are asociat un interval de tensiuni ntre 0 V i o valoare de


prag notat cu Vil. Starea logic 1 are asociat un interval de tensiuni ntre
valoarea de prag Vih i tensiunea de alimentare a circuitelor (VDD).
Tensiunile aflate ntre cele dou valori de prag nu trebuie s fie prezente pe
o astfel de conexiune deoarece pot fi interpretate fie ca 0 sau 1 logic n funcie
de exemplarul de circuit care primete tensiunea i de temperatura de funcionare a
acestuia (practic nivelul logic asociat nu este definit).

16

AUTOMATE PROGRAMABILE I MICROPROGRAMARE

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.

Arhitectura general a unui automat programabil

17

Interfeele de comunicaie specifice automatelor programabile snt:


interfee de comunicaie serial asincron (UART);
interfee seriale sincrone (SPI, I2C);
interfee de tip CAN;
Interfeele de comunicaie asincron snt utilizate att pentru conectarea cu
alte dispozitive de control dar i pentru realizarea unor reele de automate
programabile. Conectarea prin aceste interfee se realizeaz utiliznd doar dou
conexiuni electrice i permite transferul; de informaie la distane mari (sute de
metri) cu viteze de pn la 1 Mbit/sec n condiii de imunitate ridicat la perturbaii.
Interfeele seriale sincrone snt utilizate n special pentru conectarea unor
dispozitive periferice sau a unor memorii nevolatile n interiorul automatelor
programabile.
Interfaa SPI utilizeaz trei conexiuni electrice pentru transferul de date i
cte o conexiune pentru selectarea fiecrui dispozitiv cu care se comunic. Viteza
de transfer poate atinge valoare de 10 Mbii/sec dar distana pe care se poate realiza
comunicaia aste limitat la interiorul automatului.
Interfaa I2C utilizeaz doar dou conexiuni electrice indiferent de numrul
dispozitivelor conectate. Viteza de transfer este de 100, 400 sau 1000 Kbii/sec iar
distana pe care se poate realiza comunicaia este deasemenea limitat la interiorul
automatului.
Interfaa CAN permite conectarea cu alte dispozitive de control sau
realizarea de reele de automate fiind optimizat pentru transferul rapid i foarte
sigur al unor cantiti reduse de informaie.
Conectarea prin interfaa CAN se realizeaz utiliznd dou conexiuni
electrice, viteza maxim de transfer este de 1 Mbit/sec iar distana pe care se poate
realiza comunicaie este de ordinul metrilor.
Suplimentar, automatele programabile pot integra i interfee standard
utilizate n calculatoarele personale precum porturi USB sau interfee de conectare
n reea de tip Ethernet.

Dispozitive periferice pentru interfaa cu procesul condus


Automatele programabile snt destinate controlului proceselor industriale
sau pentru automatizarea funcionrii diferitelor echipamente. Specific acestor
aplicaii este necesitatea conectrii automatului programabil la o serie de senzori,
traductoare i elemente de acionare specifice care presupune integrarea unor
dispozitive periferice speciale destinate interfarii cu procesele conduse.
Informaia transferat ntre automatul programabil i procesul condus
poate fi clasificat n dou categorii principale i anume:
informaie analogic;
informaie de tip logic (digital).

18

AUTOMATE PROGRAMABILE I MICROPROGRAMARE

Informaia analogic se refer la valorile unor parametrii sau comenzi fiind


exprimat prin numere reale. Acest tip de informaie este generat de traductoarele
de msur pentru diferii parametrii electrici, fizici sau chimici existeni n procesul
condus sau de automatul programabil pentru comanda elementelor de acionare
variabil.
Informaia de tip logic se refer la semnalizri sau comenzi cu doar dou
stri posibile (pornit/oprit, nchis/deschis, etc.). Acest tip de informaie este generat
de senzorii care detecteaz anumite condiii de funcionare sau de automatul
programabil pentru pornirea sau oprirea unor elemente de acionare.
Pentru simplificarea interfeelor i standardizarea echipamentelor,
semnalele utilizate pentru transmiterea informaiilor ntre automatele programabile
i procesele conduse au fost standardizate sub forma unor semnale electrice
unificate astfel:
semnalele corespunztoare transmiterii informaiilor analogice pot codifica
valoarea informaiei prin intermediul urmtoarelor mrimi electrice:
- tensiune cu un domeniu de variaie standard de:
0 10 V
-10 10 V
05V
-5 5V
- curent n gama 420 mA;
semnalele corespunztoare informaiilor de tip logic codific valorile 0 i
1 prin urmtoarele tensiuni asociate:
0 / 24 V continuu
0 / 24 V alternativ
0 / 110 V continuu
0 / 110 V alternativ
0 / 220 V continuu
0 / 220 V alternativ
Dispozitivele periferice de interfa cu procesele conduse se clasific n
funcie de tipul informaiei i sensul n care aceasta se transmite ntre automat i
proces n urmtoarele categorii principale:
intrri analogice;
ieiri analogice;
intrri digitale (logice);
ieiri digitale (logice).
n cazul automatelor programabile realizate n variant compact se
implementeaz un ansamblu de intefee specific unei anumite aplicaii pentru care
a fost proiectat automatul.
Automatele programabile modulare snt prevzute cu module de interfa
specifice fiecrei categorii prezentate anterior care pot fi combinate n configuraii
diferite conform cu cerinele aplicatiei.

Arhitectura general a unui automat programabil

19

Interfee pentru intrri analogice


Aceste interfee snt destinate achiziiei informaiilor de la traductoarele de
msur codificate prin semnale electrice unificate.
O interfa pentru intrri analogice ofer posibilitatea conectrii mai
multor traductoare prin intermediul unor conexiuni electrice independente (canale
de achiziie). Numrul acestor canale precum i tipul de semnal unificat utilizat
este specific fiecrui tip de automat programabil.
Este posibil ca o interfa pentru intrri analogice s ofere canale de
achiziie specializate pentru un anumit tip de semnal unificat sau canale universale
care pot fi configurate s utilizeze mai multe tipuri de semnal.
Interfee pentru ieiri analogice
Aceste interfee snt destinate transmiterii de comenzi de la automatul
programabil la elemente de acionare variabil.
i aceste interfee ofer posibilitatea conectrii mai multor elemente de
acionare prin conexiuni electrice independente (canale de comand) care pot fi
realizate pentru un anumit tip de semnal unificat sau care pot fi configurate s
genereze semnale de mai multe tipuri.
Numrul canalelor de comand este n general mai redus dect al celor de
achiziie deoarece, n practic, numrul parametrilor care trebuie msurai este mai
mare dect cel al comenzilor.
Interfee pentru intrri digitale
Aceste intefee snt destinate achiziiei informaiilor de tip logic primite de
la senzori.
Datorit cerinelor ntlnite in practic, numrul canalelor de achiziie
digital este mai mare dect al celor analogice. n cazul acestor interfee, se ofer
canale specializate pentru fiecare domeniu de tensiune al semnalului unificat. n
general, un canal de achiziie digital poate prelua att varianta n curent continuu
ct i cea n curent alternativ al semnalelor avnd aceleai valori de tensiune.
Interfee pentru ieiri digitale
Aceste interfee snt destinate transmiterii de comenzi de pornire sau oprire
ctre elementele de acionare.
n funcie de circuitele utilizate pentru generarea semnalelor de comand,
se pot realiza canale destinate unui anumit tip de semnal unificat sau care s
funcioneze cu oricare dintre aceste tipuri.
Numrul de canale de comand digital este comparabil cu cel al canalelor
de achiziie digital.

2.

Unitatea central

Capitolul 3

Unitatea central

Unitatea central este componenta automatului programabil la nivelul


creia se realizeaz prelucrarea informaiilor. Structura unitii centrale este n
mare parte similar celei ntlnite n cadrul calculatoarelor electronice de uz general
existnd ns o serie de diferene datorate condiiilor mai deosebite de funcionare
specifice acestui tip de echipament.
n continuare vor fi prezentate n detaliu elementele componente ale unei
uniti centrale specific automatelor programabile.

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

AUTOMATE PROGRAMABILE I MICROPROGRAMARE

Deoarece un procesor este capabil s realizeze doar operaii simple, nu este


posibil s se execute direct un program scris ntr-un limbaj standard de nivel nalt
(de exemplu C/C++, Java, Basic, etc.). n cazul utilizrii acestor limbaje se poate
proceda n dou moduri:
Se traduce programul din limbajul standard de nivel nalt ntr-o
secven echivalent de instruciuni din setul specific procesorului. Acest
proces de traducere se numete compilare i este realizat n mod automat
de programe specializate (compilatoare) specifice att limbajului standard
de nivel nalt utilizat dar i procesorului pe care se dorete a se rula
programul.
Se utilizeaz un program specializat numit interpretor care citete
instruciunile din limbajului standard de nivel nalt, le analizeaz i
realizeaz operaiile indicate de acestea. Acest proces de citire, analiz i
execuie se realizeaz de fiecare dat n momentul rulrii programului.
Programele compilate au avantajul unei viteze de execuie ridicate
deoarece n momentul rulrii acestora se realizeaz doar operaiile incluse n
program. n cazul utilizrii unui interpretor, viteza de execuie este mult mai redus
deoarece n timpul rulrii, pe lng operaiile incluse n program se realizeaz
suplimentar citirea i analizarea acestora de ctre programul interpretor.
Programele interpretate snt ns portabile ntre sisteme care utilizeaz
procesoare diferite deoarece interpretorul prelucreaz programul direct din limbajul
standard de nivel nalt care este independent de procesor.
Din categoria limbajelor de programare care snt compilate se pot
meniona C/C++ i Pascal iar din categoria celor interpretate reprezentativ este
limbajul Basic. Java este un limbaj hibrid deoarece face obiectul unei operaii de
compilare dar secvena de instruciuni rezultat este destinat unui procesor virtual
standard. Rularea efectiv a programului este realizat de ctre un interpretor care
citete programul destinat procesorului virtual. n acest mod, se obine o vitez de
execuie mai bun dect n cazul limbajelor interpretate deoarece mare parte din
operaiile de analiza a programului snt realizate n momentul compilrii iar
programul destinat procesorului virtual este portabil ntre sisteme cu procesoare
diferite.

Arhitectura general a unui procesor


Procesoarele actuale utilizeaz o gam foarte variat de arhitecturi i au un
nivel de complexitate extrem de diferit. Cu toate acestea, principiul de funcionare
este similar ceea ce permite descrierea unei arhitecturi simplificate care s prezinte
elementele principale care snt comune tuturor procesoarelor.

Unitatea central

23

Set de regitrii

n figura urmtoare este prezentat arhitectura general a unui procesor:


Regitrii generali

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 procesor

Unitate de
control
program

Contor
program
PC

Unitate de acces
la memoria de
program

Registru de cod
instruciune
IR

Memoria de program

Figura 2.1: Arhitectura general a unui procesor

Unitatea Aritmetic i Logic (UAL):


Acest modul realizeaz operaii aritmetice si logice elementare ntre datele
de intrare disponibile pe conexiunile Operand A respectiv Operand B. Aceste
date de intrare pot fi preluate att din memoria de date prin intermediul Unitii de
acces la memoria de date sau dintr-o memorie de date local reprezentat de
Setul de regitrii. Rezultatul operaiilor aritmetice sau logice se transmite pe
conexiunea Rezultat i poate fi copiat n memoria de date sau n setul de regitrii.
Att cei doi operanzi ct i rezultatul obinut snt numere ntregi
reprezentate pe un numr fix de bii (8, 16, 32 sau 64). Acest numr de bii este un
indicator de performan al procesorului, o valoare mai mare corespunznd unui
nivel mai ridicat de performan. De exemplu, o operaie de adunare a dou
numere binare reprezentate pe 32 de bii poate fi realizat pe orice tip de procesor
numai c un procesor de 32 de bii va efectua aceast adunare ntr-o singur
operaie, unul de 16 bii n dou operaii succesive (mai nti va aduna primii 16 bii
din cei doi operanzi iar apoi restul de 16) iar cel de 8 bii n patru operaii.
Unitatea Aritmetic i Logic ofer o dat cu rezultatul i o serie de
informaii referitoare la caracteristicile acestuia. Aceste informaii snt copiate ntrun set de bii care formeaz Indicatorii de Condiii.

24

AUTOMATE PROGRAMABILE I MICROPROGRAMARE

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

Majoritatea regitrilor snt destinai stocrii temporare a datelor (regitrii


generali). O parte dintre acetia pot fi utilizai pentru stocarea adreselor (localizrii)
unor operanzi n memoria de date.
Un registru special este indicatorul de stiv SP (Stack Pointer). Acest
registru este utilizat de ctre procesor pentru a gestiona o structur de date de tip
stiv n memoria de date. Stiva este utilizat n principal pentru stocarea adreselor
de revenire din proceduri.
Unitatea de control program:
Acest modul este responsabil de citirea n ordinea corect a instruciunilor
din memoria de program i utilizeaz pentru aceasta un registru special numit
contor program PC (Program Counter).
Valoarea din registrul PC reprezint adresa (numrul locaiei) la care este
stocat urmtoarea instruciune din program. n cazul derulrii normale a
programului, dup ce se citete codul unei instruciuni, valoarea acestui registru
este actualizat de ctre unitatea de control program astfel nct s indice ctre
urmtoarea instruciune aflat n memoria de program.
Dac procesorul execut o instruciune care foreaz continuarea
programului cu alt instruciune dect cea urmtoare, unitatea de control program
va nscre n registrul PC valoarea adresei la care se afl aceast instruciune.
Instruciunile snt citite din memoria de program de ctre Unitatea de
acces la memoria de program care copiaz codul instruciunii din locaia indicat
de registrul PC ntr-un registru special numit Registru de cod instruciune IR
(Instruction Register).
Unitatea de control procesor:
Acest modul coordoneaz funcionarea tuturor elementelor din
componena unui procesor. Unitatea de control procesor preia codul instruciunii
din registrul IR i dup interpretarea acestuia genereaz ctre celelalte module din
procesor secvena de comenzi necesar pentru realizarea operaiei indicate de
instruciune.
Unitatea de control procesor este modulul cel mai complex din structura
unui procesor i determin n mare parte performanele acestuia reprezentate de
numrul i complexitatea instruciunilor i viteza de execuie a acestora.
Exist dou modaliti de implementare a unittii de control procesor n
funcie de care procesoarele se clasific n dou categorii principale i anume:
Procesoare cu set complex de instruciuni CISC (Complex Instruction
Set Computing);
Procesoare cu set redus de instruciuni RISC (Reduced Instruction Set
Computing).
n cazul procesoarelor din prima categorie, unitatea de control procesor
este implementat sub forma unui dispozitiv care genereaz secvena de comenzi
corespunztoare execuiei unei instruciuni pe baza unui microprogram stocat ntro memorie existent n interiorul procesorului.

26

AUTOMATE PROGRAMABILE I MICROPROGRAMARE

Aceste procesoare snt caracterizate de un set de instruciuni capabile de a


realiza operaii relativ complexe ceea ce simplific dezvoltarea programelor.
Deasemenea, setul de instruciuni al acestor procesoare poate fi extins uor cu noi
instruciuni prin simpla completare a memoriei de microprogram cu secvenele de
comenzi corespunztoare noilor instruciuni.
Dezavantajul acestor procesoare este viteza relativ redus de execuie a
instruciunilor datorat necesitii interpretrii microprogramului.
Procesoarele din cea de a doua categorie au un set de instruciuni mult mai
simplu ceea ce face posibil generarea direct i mult mai simpl a secvenei de
comenzi corespunztoare execuiei instruciunilor. Din acest motiv viteza acestor
procesoare este mult mai ridicat dect a celor cu set complex de instruciuni.
n practic se constat c dei un procesor RISC necesit mai multe
instruciuni pentru a realiza acelai program dect un procesor CISC, el va
compensa acest neajuns prin viteza cu care va executa aceste instruciuni fiind
posibil chiar s depseasc procesorul cu set complex de instruciuni la capitolul
vitez de calcul.

Structura i codificarea instruciunilor


Spre deosebire de instruciunile din limbajele de nivel nalt, instruciunile
procesoarelor snt mult mai simple i au o structur fix. Marea majoritate a acestor
instruciuni pot fi ncadrate n trei categorii principale i anume:
Instruciuni fr operanzi snt descrise doar de operaia pe care o
realizeaz. De exemplu, n cazul procesoarelor din familia AVR,
instruciunea:
ret
comand revenirea dintr-o procedur i continuarea execuiei programului
cu instruciunea situat imediat dup cea care realizat apelul acelei
proceduri;
Instruciuni cu un singur operand snt descrise de operaia realizat i de
ctre o indicaie spre locul de unde se citete operandul. Rezultatul
operaiei este copiat n acelai loc de unde s-a citit operandul nlocuind
vechea valoare a acestuia. Un exemplu de instruciune de acest tip este:
inc R10
care are ca efect incrementarea (creterea cu o unitate) a valorii existente n
registrul R10;
Instruciuni cu doi operanzi snt descrise de operaia realizat i indicaii
ctre locurile de unde se citesc cei doi operanzi. i n acest caz, rezultatul
este copiat n locul unuia dintre operanzi (de obicei n locul primului). Un
exemplu este instruciunea:
add R18,R20
care copiaz n R18 suma valorilor regitrilor R18 i R20.

Unitatea central

27

Instruciunile unui procesor snt codificate n memoria de program sub


forma unor iruri de bii. Aceti bii snt grupai n cmpuri care codific diferitele
informaii necesare interpretrii instruciunii. Structura general a codurilor
corespunztoare celor trei categorii de instruciuni prezentate anterior este
urmtoarea:
Instruciuni fr nici
un operand:

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

Figura 2.2: Structura codurilor pentru instruciunile unui procesor

Pentru decodificarea corect a instruciunilor este necesar ca poziia


codului operaiei s fie ntotdeauna aceeai n cadrul codului instruciunii deoarece
din codul operaiei se determin categoria din care face parte instruciunea i
implicit strctura codului acesteia.
Pentru simplificarea stocrii instruciunilor n memoria de program se
prefer utilizarea unor coduri de instruciuni de dimensiune fix sau a unui numr
redus de dimensiuni posibile ale acestor coduri. Deasmenea, dimensiunile
codurilor snt alese de obicei ca multiplii de 8 deoarece circuitele de memorie ofer
astfel de dimensiuni pentru locaii.
Din acest motiv, codul operaiei va avea un numr variabil de bii n
funcie de categoria instruciunii i de dimensiunile informaiilor de localizare a
operanzilor. Decodificarea corect a codurilor cu lungime variabil presupune ca
nici un cod de o anumit lungime s nu fie nceputul unui cod de lungime mai
mare. De exemplu, urmtorul set de 4 coduri:
C1: 0 0 C2: 0 0 1
C3: 0 1 0
C4: 1 0 0 1
nu este un set corect deoarece codul C1 se regsete ca nceput pentru codul C2.
O modalitate simpl de a genera un set corect de coduri cu lungime
variabil este s se utilizeze un arbore binar de codificare. Codurile generate snt
reprezentate de funzele arborelui, secvenele de bii corespunztoare se obin prin
parcurgerea arborelui de la rdcin pn la frunza corespunztoare codului. La
fiecare trecere printr-un nod intermediar se obine un bit. Dac la trecerea prin
nodul intermediar se coboar pe ramura din stnga, bitul obinut are valoarea 0
iar dac se coboar pe ramura din dreapta are valoarea 1.

AUTOMATE PROGRAMABILE I MICROPROGRAMARE

28

Un exemplu de arbore de codificare care genereaz un set de 9 coduri este


prezentat n figura urmtoare:
0

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

Codurile instruciunilor conin pe lng codul operaiei i informaii de


localizare a operanzilor. Totalitatea modalitilor de specificare a localizrii unui
operand reprezint modurile de adresare oferite de un anumit procesor.

Moduri de adresare a operanzilor


Fiecare operand utilizat ntr-o instruciune a unui procesor poate fi
localizat n diferite dispozitive de memorare a informaiei (regitrii, locaii din
memoria de date sau de program, etc.).
Modalitatea de specificare a localizrii fiecrui operand este indicat de
codul operaiei. Fiecare tip de operaie este caracterizat de o anumit localizare a
operanzilor, care impune un mod de adresare (de indicare a localizrii) specific.
n continuare snt prezentate principalele moduri de adresare ntlnite n
cazul majoritii procesoarelor:
Adresarea direct a regitrilor:
n cazul acestui mod de adresare, operandul este localizat ntr-un registru.
Informaia necesar pentru indicarea acestui registru este numrul acestuia.
Deoarece setul de regitrii al unui procesor conine un numr redus de regitrii, snt
necesari foarte puini bii pentru reprezentarea numrului registrului n care se afl
operandul.
n cazul n care numarul total de regitrii este R, se poate determina
numrul minim de bii necesari pentru indicarea unui registru (Nr) astfel:

Nr = ceil (log 2 R ) ,
unde funcia ceil() reprezint rotunjirea prin adaos la cel mai apropiat ntreg.

(2-1)

Unitatea central

29

De exemplu, n cazul procesoarelor din familia AVR, exist un numr de


32 de regitrii ceea ce impune utilizare a 5 bii pentru indicarea unui registru.
Instruciunea:
mov
R15,R10
care copiaz n registrul R15 valoarea din registrul R10 se codific pe 16 bii
conform figurii urmtoare:
Cod instruciune <mov
Cod operaie <mov>
(6 bii)

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

Figura 2.4: Exemplu de utilizare a modului de adresare direct a regitrilor

Se observ n cazul acestei instruciuni utilizarea modului de adresare


direct a regitrilor pentru ambii operanzi.
Adresarea direct a memoriei
n cazul acestui mod de adresare, operandul este localizat ntr-o locaie din
memoria de date. Informaia necesar pentru indicarea acestei locaii este numrul
acesteia care se mai numete i adresa locaiei de memorie.
n acest caz, numrul minim de bii necesari codificrii adresei operandului
este impus de dimensiunea memoriei de date. n cazul n care numarul total de
locaii din memoria de date este D, se poate determina numrul minim de bii
necesari pentru codificarea unei adrese (Nd) astfel:

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

Cod instruciune <lds


Cod operaie <lds>
(9 bii)

Adresare
direct registru

Memorie de date

R10,750>

10 = numrul
registrului
(5 bii)

750 = numrul locaiei


din memoria de date
(16 bii)
Adresare direct
memorie de date

Locaia 0
Locaia 1

Locaia 750

Ultima locaie

Figura 2.5: Exemplu de utilizare a modului de adresare direct a memoriei

AUTOMATE PROGRAMABILE I MICROPROGRAMARE

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

Cod instruciune <ldi


Cod operaie <ldi>
(4 bii)

R16,200>

0 = numrul
registrului 16
(4 bii)

200 = valoarea celui


de-al doilea operand
(8 bii)

Adresare
direct registru

R31

Figura 2.6: Exemplu de utilizare a modului de adresare imediat

Se observ n cazul acestei instruciuni utilizarea a numai 4 bii pentru


indicarea numrului registrului care corespunde primului operand. Aceast
modificare se datoreaz necesitii ncadrrii codului instruciunii n 16 bii.
Adresarea imediat a celui de-al doilea operand necesit 8 bii care mpreun cu cei
5 necesari codificrii numrului registrului ar fi ocupat 13 din cei 16 bii
disponibili rmnnd doar 3 bii pentru codul operaiei.
Din acest motiv s-a procedat la reducerea cu un bit a dimensiunii cmpului
de codificare a registrului ceea ce a permis utilizarea unui cod de 4 bii pentru
operaie. Ca urmare a acestei modificri, instruciuna nu mai poate utiliza dect
ultimii 16 din cei 32 de regitrii. Valoarea numeric din cmpul corespunztor
primului operand va fi numrul registrului utilizat din care se scade valoarea 16.
Adresarea indirect a memoriei
n cazul acestui mod de adresare, operandul este localizat ntr-o locaie din
memoria de date. Adresa locaiei n care se afl operandul este stocat ntr-un
registru al procesorului. Numrul acestui registru este indicat n cmpul
corespunztor operandului care utilizeaz acest mod de adresare.
Este posibil ca numai o parte din regitrii unui procesor s poat fi utilizai
n scopul stocrii adreselor operanzilor. n acest caz, numrul de bii necesar
codificrii registrului va fi mai mic dect n cazul adresrii directe a regitrilor.
Deasemenea, este posibil ca numrul de bii necesari pentru codificarea
adresei unei locaii din memoria de date s fie mai mare dect cel oferit de un
registru al procesorului. n acest caz, se practic utilizarea a doi regitrii succesivi
care s conin, fiecare, jumtate din numrul de bii necesari pentru codificarea
adreselor.

Unitatea central

31

De exemplu, regitrii procesoarelor din familia AVR au dimensiunea de 8


bii iar adresele locaiilor din memoria de date necesit 16 bii (memoria de date
are capacitatea de maximul 64KB).
Din acest motiv se utilizeaz perechi de cte doi regitrii pentru stocarea
adreselor din memoria de date. O astfel de pereche se noteaz cu Rh:Rl unde Rh
este registrul n care se afl cei mai semnificativi 8 bii din cei 16 ai adresei iar Rl
este registrul n care se afl cei mai puin semnificativi 8 bii.
Perechile de regitrii utilizabile pentru stocarea adreselor operanzilor n
cazul procesoarelor AVR snt urmtoarele:
R27:R26 registrul de adres X;
R29:R28 registrul de adres Y;
R31:R30 registrul de adres Z.
Se observ c doar 3 perechi de regitrii pot fi utilizai n acest scop ceea
ce solicit doar 2 bii pentru indicarea perechii n cmpul corespunztor
operandului care utilizeaz adresarea indirect.
De exemplu, instruciunea:
ld
R10,X
care copiaz n registrul R10 valoarea coninut n locaia a crei adres se afl n
perechea de regitrii R27:R26 (registrul de adres X) se codific pe 16 bii conform
figurii urmtoare:
Set de regitrii
R0
R1

R10

Cod instruciune <ld


Cod operaie <ld>
(9 bii)

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

K este valoarea pe 16 bii din perechea de regitrii R27:R26


Locaia K

Ultima locaie

Figura 2.7: Exemplu de utilizare a modului de adresare indirect

Adresarea indirect este o metod prin care localizarea operandului poate


fi determinat n momentul execuiei programului. Acest mod de adresare este util,
de exemplu, n cazul n care se dorete accesarea unui element al unui vector aflat
la un index prezent ntr-o variabil.

AUTOMATE PROGRAMABILE I MICROPROGRAMARE

32

Adresarea indirect i indexat


n cazul acestui mod de adresare, operandul este localizat ntr-o locaie din
memoria de date. Adresa locaiei n care se afl operandul se obine prin adunarea
unei valori constante (index) la coninutul unui registru al procesorului. Valoarea
constant ct i numrul acestui registru snt indicate n cmpul corespunztor
operandului care utilizeaz acest mod de adresare.
n cazul procesoarelor din familia AVR, pentru pstrarea dimensiunii de
16 bii pentru codul instruciunilor, s-a procedat la aceeptarea a doar doi regitrii de
adres (Y i Z). Din acest motiv, cmpul care indic numrul registrului de adres
are dimensiunea de un bit.
De exemplu, instruciunea:
ldd
R10,Y+25
care copiaz n registrul R10 valoarea coninut n locaia a crei adres se obine
prin adunarea valorii constante 25 la coninutul perechii de regitrii R29:R28
(registrul de adres Y) se codific pe 16 bii conform figurii urmtoare:
Set de regitrii
R0
R1

R10

Cod instruciune <ldd

R10,Y+25>

Cod operaie <ld> 10 = numrul


registrului
(4 bii)
(5 bii)

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

Figura 2.8: Exemplu de utilizare a modului de adreare indirect i indexat

Se observ utilizarea unui numr de 6 bii pentru codificarea valorii


indexului ceea ce permite utilizarea unor valori ntregi ntre 0 i 63.
Acest mod de adresare este util n cazul n care se dorete accesarea
cmpurilor unei structuri de date a crei localizare n memoria de date este prezent
ntr-unul dintre regitrii de adres (se obine prin calcul n momentul execuiei
programului).

Unitatea central

33

Variante ale adresrii indirecte


Unele procesoare ofer cteva variante specifice ale adresrii indirecte care
permit scrierea mai eficient a programelor. Necesitatea acestor variante de
adresare este justificat de observaia c de multe ori se acceseaz indirect locaii
situate la adrese succesive n memoria de date. Din acest motiv, registrul de adres
trebuie incermentat sau decrementat dup fiecare accesare a unei locaii de
memorie pentru a se putea accesa locaia urmtoare sau cea precedent.
Dei setul de instruciuni al procesoarelor ofer posibilitatea incrementrii
sau decrementrii regitrilor, realizarea acestei operaii printr-o instruciune
separat, conduce la creterea dimensiunii programelor i a duratei de execuie a
acestora.
Pentru optimizarea realizrii acestor operaii de accesare secvenial a mai
multor locaii succesive, unele procesoare ofer instruciuni care realizeaz att
citirea sau scrierea unei locaii de memorie prin adresare indirect ct i
actualizarea automat a valorii registrului de adres utilizat.
n cazul procesoarelor din familia AVR exist instruciuni de acces indirect
la memoria de date care realizeaz suplimentar postincrementarea sau
predecrementarea registrului de adres.
De exemplu, instruciunea de citire cu postincrementare a unei locaii din
memoria de date:
ld
R10,X+
copiaz n registrul R10 valoarea coninut n locaia a crei adres se afl n
registrul de adres X i apoi adaug o unitate la valoarea din acest registru.
Un alt exemplu l ofer intruciunea de citire cu predecrementare a unei
locaii din memoria de date:
ld
R10,-X
scade mai nti o unitate din registrul de adres X apoi copiaz n registrul R10
valoarea coninut n locaia a crei adres se afl n acest registru de adres.

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

AUTOMATE PROGRAMABILE I MICROPROGRAMARE

Prima arhitectur este specific echipamentelor de calcul de uz general


cum ar fi calculatoarele personale deoarece permite utilizarea mai eficient a
spaiului de memorie i ncarcarea programelor dintr-o unitate de memorie extern
de capacitate mai mare.
Dezavantajul aceste arhitecturi este legat de limitarea vitezei de execuie a
programelor datorat necesitii de a accesa memoria att pentru citirea codurilor
instruciunilor ct i pentru citirea sau scrierea operanzilor aflai n memorie. De
cele mai multe ori, viteza de calcul a procesoarelor este mai ridicat dect cea a
circuitelor de memorie ceea ce poate fora procesorul s atepte citirea unei noi
instruciuni sau accesul la un anumit operand.
Arhitectura de tip Harvard ofer posibilitatea de a accesa n paralel
codurile instruciunilor i operanzii. Se poate realiza astfel citirea codului
instruciunii urmtoare n timp ce se citete sau scrie operandul utilizat n
instruciunea curent rezultnd astfel o cretere a vitezei de execuie a
instruciunilor.
Majoritatea unitilor centrale utilizate de ctre automatele programabile
prezint o arhitectur de tip Harvard.
O alt clasificare a dispozitivelor de memorie se poate realiza n funcie de
posibilitatea acestora de a reine informaia n absena alimentrii cu energie
elctric. Conform acestui criteriu exist dou categorii principale de circuite de
memorie i anume:
memorii de tip volatil al crui coninut se altereaz n absena alimentrii
cu energie electric;
memorii nevolatile care i pstreaz nealterat coninutul chiar dac nu
snt alimentate cu energie electric.
Memoriile volatile snt preferate pentru stocarea datelor n timpul
prelucrrii acestora deoarece permit modificarea rapid a coninutului memorat. n
acest caz, alterarea informaiei n absena tensiunii de alimentare nu reprezint un
inconvenient deoarece informaia este stocat n acest tip de memorie doar pe
durata execuiei programului.
Memoriile nevolatile dei prezint avantajul pstrrii informaiei snt
caracterizate fie de imposibilitatea modificrii coninutului fie de valori foarte mari
ale timpilor necesari pentru modificarea acestuia. Din acest motiv, memoriile de tip
nevolatil snt utilizate pentru stocarea programelor i a informaiilor de
configurare.
O utilizare aparte a memoriilor nevolatile este pentru implementarea
unitilor de stocare a informaiei care nlocuiesc tradiionalele discuri magnetice
(hard disk). Utilizarea memoriilor nevolatile realizate cu semiconductori crete
fiabilitatea unitilor de stocare deoarece prin absena componentelor mecanice n
micare snt mult mai rezistente la ocuri, vibraii i condiii climatice.

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

Figura 2.9: Structura intern a unei memorii FLASH

Citirea informaiei se realizeaz direct din memoria principal deoarece


viteza de citire a acestui tip de memorie este foarte mare. n cazul n care se dorete
scrierea informaiei, mai nti se copiaz coninutul unui ntreg sector ntr-o
memorie temporar i apoi se realizeaz scrierea propriu-zis a tuturor locaiilor
din acest sector din memoria temporar n cea principal.

36

AUTOMATE PROGRAMABILE I MICROPROGRAMARE

Se observ c nu este posibil modificarea unei singure locaii din


memoria principal, modificrile realizndu-se la nivelul tuturor locaiilor dintr-un
sector. Acest mod de lucru nu este un inconvenient major deoarece n cazul
memoriei de program se actualizeaz ntreg programul (sau seciuni ntregi ale
acestuia) care ocup n memorie un numr mare de locaii succesive coninute n
mai multe sectoare.
Scrierea simultan a mai multor locaii contribuie la creterea vitezei de
scriere n acest tip de memorii deoarece n intervalul de timp n care s-ar realiza
scrierea unei singure locaii se realizeaz de fapt scrierea unui ntreg sector format
din mai multe locaii.
n practic, memoria de program este integrat n microcontrolerul utilizat
pentru implementarea automatului programabil. Microcontrolerele actuale permit
scrierea coninutului locaiilor memoriei de program n trei moduri diferite i
anume:
cu ajutorul unui dispozitiv de programare clasic de tip paralel;
programarea de tip In system programming ISP;
programarea de ctre procesorul microcontrolerului.
Scrierea memoriei de program n mod paralel
Prima modalitate de programare este motenit de la microcontrolerele din
genraii mai vechi i presupune introducerea acestuia ntr-un dispozitiv de
programare special care realizeaz transferul programului din calculatorul n care
s-a realizat dezvoltarea acestuia n memoria de program a microcontrolerului.
Acest mod de programare presupune extragerea microcontrolerului din
circuitul automatului programabil, introducerea acestuia n programator pentru
scriere i apoi reintroducerea acestuia n circuitul automatului de fiecare dat cnd
este necesar modificarea programului.
Din acest motiv microcontrolerul trebuie montat prin intermediul unui
soclu care s permit extragerea i reintroducerea acestuia n cicuit fr a fi
necesare operaii de dezlipre/relipire care ar conduce la deteriorarea rapid a
microcontrolerului i a circuitului imprimat. Deasemenea, acest mod de lucru este
incompatibil cu producia de serie deoarece presupune operaii de manipulare a
microcontrolerului dificil de realizat pe o linie de asamblare automat.
Scrierea memoriei de program prin tehnologia ISP
Programarea de tip In system programming ISP presupune prezena
microcontrolerului n circuitul automatului i conectarea acestuia la un dispozitiv
de programare prin intermediul unor interfee de comunicaie standard sau
specializate existente n microcontroler. Aceste interfee de comunicaie utilizeaz
un numr redus de conexiuni electrice ceea ce permite conectarea uoar la
dispozitivul programator prin intermediul unui conector de mici dimensiuni.
Deoarece acest mod de programare permite scrierea memoriei de program
dup asamblarea microcontrolerului n circuitul automatului devine posibil
automatizarea acestei operaii n cazul produciei de serie.

Unitatea central

37

Programarea in system este utilizat pe scar larg n special pentru


copierea versiunii iniiale a programului de aplicaie de ctre productorul
automatului.
Scrierea memoriei de program de ctre procesor
Ultima metod de programare presupune intervenia procesorului pentru
scrierea coninutului locaiilor din memoria de program. Acest mod de lucru este
deosebit de util n cazul n care se dorete implementarea funciei de upgrade
automat al programului de aplicaie.
Pentru a evita interferena dintre zona de memorie care se modific i cea
n care se afl seciunea de program care realizeaz modificrile, memoria de
program este divizat n dou regiuni independente i anume:
zona programelor de aplicaie (Application section);
zona de programatorului (Boot Loader section).
Zona programelor de aplicaie ocup cea mai mare parte a memoriei de
program i este utilizat pentru stocarea programului care implementeaz funciile
automatului programabil. Instruciunile care realizeaz operaii de scriere n
memoria de program nu pot fi executate dac se afl n aceast zon de memorie.
Zona programatorului este o seciune de mici dimensiuni a memoriei de
program n care va fi stocat secvena de program responsabil cu funciile de
upgrade. Instruciunile care realizeaz operaii de scriere n memoria de program
pot fi executate dac se afl n aceast zon.

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

AUTOMATE PROGRAMABILE I MICROPROGRAMARE

Elementul de stocare n memoriile RAM de tip static este circuitul bistabil


de tip R-S. Schema unui astfel de circuit este prezentat n figura urmtoare:
Bistabil R-S
WE

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

Se observ c trecerea n starea corespunztoare Q = 0 se realizeaz n


momentul n care intrarea R este adus n 0 logic. Trecerea n starea Q = 1 se
realizeaz prin aducerea intrrii S n 0 logic.
Aducerea simultan la 0 logic a intrrilor nu este permis deoarece aduce
ambele ieiri n 0 logic ceea ce contrazice relaia de complementaritate care
trebuie s existe ntre ele, starea rezultat fiind una instabil.
Circuitul conectat la intrrile bistabilului are rolul de a controla procesul de
scriere a unei valori. Dac intrarea WE este n starea logic 0, att R ct i S vor
fi inactive (1 logic) iar circuitul bistabil va rmne n aceiai stare.

Unitatea central

39

Cnd WE devine activ (1 logic), n funcie de starea intrrii de date DI


se va activa una dintre cele dou intrri ale bistabilului astfel:
R = 0 i S = 1 , dac DI = 0 ceea ce conduce la trecerea bistabilului n
starea Q = 0 ;

R = 1 i S = 0 , dac DI = 1 ceea ce conduce la trecerea bistabilului n


starea Q = 1 .

Circuitul conectat la ieirea bistabilului este un driver cu trei stri care


permite conectarea n paralel a ieirilor DO corespunztoare mai multor elemente
de memorare.
Ieirea DO are aceiai valoare logic ca semnalul Q dac intrarea de
comand a operaiei de citire RE este activ (1 logic). n cazul n care semnalul
RE este inactiv (0 logic), ieirea DO trece n starea de nalt impedan care
este similar decuplrii din circuit.
Structura unui circuit de memorie de tip RAM static este prezentat n
figura urmtoare:
Bitul 0

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

Figura 2.11: Structura memoriilor de tip RAM static

Circuitul de memorie este prevzut cu un selector de locaii care analizeaz


adresa primit precum i cele dou semnale de comand RD respectiv WR .

40

AUTOMATE PROGRAMABILE I MICROPROGRAMARE

Dac semnalul de comand RD este activ (0 logic), selectorul de locaii


va activa semnalul REi ,i [0 K n ] corespunztor adresei primite. Activarea acestui
semnal va comanda tuturor elementelor de stocare corespunztoare locaiei cu
adresa i s transmit la ieirile DO valorile memorate care se vor regsi pe
conexiunile de date ale circuitului de memorie.
Dac semnalul de comand WR este activ, selectorul de locaii va activa
semnalul WEi ,i [0 K n] corespunztor adresei primite. Activarea acestui semnal va
comanda tuturor elementelor de stocare corespunztoare locaiei cu adresa i s
memoreze valoarile primite la intrrile DI care snt preluate de pe conexiunile de
date ale circuitului de memorie.
Se poate observa complexitatea relativ ridicat a circuitelor de memorie de
tip RAM static n special la nivelul elementelor de stocare. Consecina acestui fapt
este imposibilitatea realizrii n aceast tehnologie a unor circuite de memorie cu
capacitate mare. Limita actual a capacitii circuitelelor de memorie RAM statice
este de 64 Mbii.
Tehnologia RAM dinamic
Aceast tehnologie permite realizarea unor circuite de memorie avnd
capaciti mult mai ridicate dect cea de tip RAM static. Elementele de stocare a
informaiei snt realizate utiliznd un condensator electric de capacitate redus i un
tranzistor MOS cu rol de comutator comandat electric.
Schema elementului de stocare este prezentat n figura urmtoare:
SEL

Data

Tranzistor
MOS

este echivalent
C

Figura 2.12: Elementul de stocare a unui bit ntr-o memorie RAM dinamic

Informaia binar este stocat prin valoarea sarcinii electrice acumulate n


condensator astfel:
un bit 0 logic corespunde absenei sarcinii electrice i determin o
tensiune de 0 V la bornele condensatorului;
un bit 1 logic corespunde ncrcrii condensatorului cu o sarcin electric
astfel nct la bornele acestuia s existe o tensiune apropiat de cea la care
este alimentat circuitul de memorie.
Tranzistorul de tip MOS are rolul unui comutator care conecteaz sau nu
condensatorul la linia Data utilizat pentru realizarea operaiilor de citre sau scriere
a informaiei. Comanda tranzistorului se realizeaz prin intermediul conexiunii de
selecie SEL.
Deoarece orice condensator se descarc n timp datorit rezistenei de
izolare materialului dielectric, pstrarea informaiei n elementul de stocare
presupune o remprosptare periodic a sarcinii din condensator.

Unitatea central

41

Structura unui circuit de memorie realizat n tehnologie RAM dinamic este


prezentat n figura urmtoare:
Decodificator coloane
RW
Col 1

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

Figura 2.13: Structura memoriilor de tip RAM dinamic

Circuitul prezentat are dimensiunea locaiilor de un singur bit. Realizarea


unei memorii cu o dimensiune a locaiilor mai mare presupune utilizarea n paralel
a cte unui astfel de circuit pentru fiecare bit.
Circuitul este organizat sub forma unei matrici ptrate de elemente de
stocare. Adresarea unui bit presupune indicarea liniei i coloanei pe care se afl
elementul de stocare corespunztor. Din acest motiv, conexiunile de adres ale
circuitelor de tip RAM dinamic snt grupate n dou seturi avnd acelai numr de
conexiuni pentru a forma adresa liniei respectiv a coloanei din matrice.

42

AUTOMATE PROGRAMABILE I MICROPROGRAMARE


Realizarea unei operaii de citire se realizeaz astfel:
1. circuitul de control dezactiveaz semnalul RW care determin
decodificatorul de coloane s aduc la 0 logic toate ieirile Col 0 KCol N
ceea ce comand poziionarea la stnga a comutatoarelor electronice
RW 0 K RW N . Simultan, circuitul de control comand i comutatoarelor
electronice Mod 0 K Mod N poziionarea la stnga.
2. decodificatorul de linie activeaz semnalul Lin i corespunztor liniei din
matrice pe care se afl bitul care trebuie citit. Activarea acestui semnal
determin intrarea n conducie a tuturor tranzistoarelor MOS din
elementele de stocare aflate pe linia respectiv. n acest moment tensiunile
condensatoarelor din aceste elemente de stocare se aplic la intrrile
comparatoarelor Com care determin valoarea logic corespunztoare
acestor tensiuni. Aceste valori logice ajung la intrrile D ale circuitelor de
memorare Cm 0 KCm N .
3. circuitul de control activeaz semnalele WE ale tuturor circuitelor de
memorare Cm 0 KCm N ceea ce determin reinerea n acestea a valorilor
logice corespunztoare tuturor elementelor de stocare de pe linia selectat.
4. Pe baza adresei coloanei, selectorul de coloane aduce la ieirea de date
Dout a circuitului de memorie valoarea din circuitul de memorare care
corespunde bitului de pe coloana dorit.
5. circuitul de control comand poziionarea la dreapta a comutatoarelor
electronice RW 0 K RW N ceea ce are ca efect conectarea condensatoarelor
din toate elementele de stocare de pe linia selectat la ieirile circuitelor de
memorare Cm 0 KCm N . n acest moment condensatorii preiau tensiunea
prezent pe aceste ieiri i i remprospteaz starea de ncrcare sau de
descrcare conform cu nivele logice stocate n circuitele de memorare.

Se observ c paii 14 realizeaz operaia de citire a bitului din locaia


adresat iar pasul 5 realizeaz operaia de remprosptare a elementelor de stocare
de pe linia care conine acest bit.
Realizarea unei operaii de scriere se realizeaz astfel:
1. circuitul de control activeaz semnalul RW care determin decodificatorul
de coloane s aduc la 1 logic ieirea Col j corespunztoare coloanei pe
care se afl bitul care trebuie modificat. Restul ieirilor decodificatorului
rmn in starea logic 0. Simultan, circuitul de control comand i
comutatoarelor electronice Mod 0 K Mod N poziionarea la stnga.
2. decodificatorul de linie activeaz semnalul Lin i corespunztor liniei din
matrice pe care se afl bitul care trebuie citit. n acest moment comutatorul
RW j este poziionat la dreapta i aduce valoarea prezent la intrarea de
date Din a circuitului de memorie la intrarea D a circuitului de memorare

Unitatea central

43

Cm j . Restul comutatoarelor rmn poziionate la stnga iar la intrrile


celorlalte circuite de memorare se vor regsi valorile logice prezente n
elementele de memorare aflate pe linia selectat.
3. circuitul de control activeaz semnalele WE ale tuturor circuitelor de
memorare Cm 0 KCm N ceea ce determin reinerea n acestea a valorilor
logice corespunztoare tuturor elementelor de stocare de pe linia selectat
cu excepia lui Cm j care va reine valoarea intrrii de date Din .
4. circuitul de control comand poziionarea la dreapta a comutatoarelor
electronice RW 0 K RW N ceea ce are ca efect conectarea condensatoarelor
din toate elementele de stocare de pe linia selectat la ieirile circuitelor de
memorare Cm 0 KCm N . n acest moment condensatorul din elementul de
stocare adresat se va ncrca cu sarcina electric corespunztoare valorii
logice prezente la intrarea de date Din iar restul condensatorilor de pe
aceeai linie i vor remprospta starea.

Se poate observa c, i n cazul unei operaii de scriere, elementele de


stocare aflate pe linia care conine bitul scris vor fi remprosptate.
Pentru pstrarea informaiei dintr-o memorie RAM dinamic este necesar
efectuarea de operaii de citire sau scriere utiliznd locaii aflate pe fiecare linie a
matricii la intervale de timp mai mici dect timpul n care condensatorii se pot
descrca suficient de mult nct s altereze informaia memorat.
Deoarece funcionarea normal a unui program nu asigur aceste accesri
care ar realiza remprosptarea memoriei este necesar efectuarea periodic a unor
operaii de citire a memoriei, linie cu linie la intervale de timp bine controlate.
Sarcina efecturii acestor operaii revine unui dispozitiv special care se ataeaz
memoriei i care se numete controler de memorie dinamic.
Avantajul memoriilor de tip RAM dinamic este posibilitatea utilizrii unor
capaciti de memorie mult mai mari decit n cazul memoriilor de tip RAM static.
Capacitatea actual a unui circuit de memorie dinamic poate ajunge la 1 Gbit.
Dezavantajul acestui tip de memorie este dat de necesitatea realizrii
operaiilor de remprosptare ceea ce complic automatul programabil i nu
permite oprirea funcionrii unitii centrale n scopul reducerii consumului de
energie electric.
Deoarece automatele programabile nu necesit dimensiuni mari pentru
memoria de date (valori de ordinul sutelor de Kilo-octeilor snt suficiente),
majoritatea acestora utilizeaz circuite de memorie static.
Circuitele de memorie dinamic snt specifice sistemelor de calcul de tipul
calculatoarelor personale sau staiilor de lucru care necesit capaciti mari de
stocare pentru memoria de date sau program (n cazul arhitecturii von
Neumann). n cazul acestor sisteme dezavantajele memoriilor dinamice nu mai au
importan deoarece compexitatea sistemelor este oricum ridicat iar oprirea
complet a unitii centrale nu este necesar.

44

AUTOMATE PROGRAMABILE I MICROPROGRAMARE

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.

Circuite auxiliare procesorului


Funcionarea corect a procesorului este asigurat de o serie de dispozitive
auxiliare i anume:
oscilatorul de ceas;
circuite de iniializare i supraveghere;
controlorul de ntreruperi.
Microcontrolerele care snt utilizate pe scar larg pentru implementarea
unittilor centrale n cadrul automatelor programabile integreaz aceste dispozitive
auxiliare alturi de procesor, memorii i dispozitivele periferice de uz general.

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

AUTOMATE PROGRAMABILE I MICROPROGRAMARE

46

Structura unui astfel de circuit este prezentat n figura urmtoare:


De la fo
oscilator

Prescaler
( :N1 )

fo
N1

Regulator
de faz

Oscilator
controlat

fo M
N1

Postscaler
( :N2 )

_fo M_
N1 N2

Ceas
sistem

Divizor
( :M )

Figura 2.14: Structura circuitului PLL

Generarea semnalului de ceas pornete de la un oscilator convenional (de


tip RC sau cu cristal de cuar). Frecvena semnalului de la oscilator este divizat cu
o valoare ntreag (N1) i apoi este aplicat la intrarea de referin a unui regulator
de faz.
Regulatorul de faz primete ca mrime reglat un semnal obinut prin
divizarea frecvenei unui oscilator controlat cu valoarea ntreag (M). Regulatorul
menine constant diferena de faz (i implicit de frecven) ntre cele dou
semnale de intrare prin modificarea frecvenei oscilatorului controlat. Se obine la
ieirea oscilatorului controlat un semnal cu frecvena:.

f =

fo M
,
N1

(2-3)

Circuitul PLL este completat cu un postscaler care divide aceast frecven


printr-un alt numr ntreg (N2) rezultatul fiind ceasul utilizat de intregul sistem
(microcontroler i dispozitive periferice integrate) avnd frecvena:

fc =

fo M
,
N1 N 2

(2-4)

Circuite de iniializare i supraveghere


Procesoarele i unele dispozitive periferice trebuie s fie iniializate la
pornire pentru a se asigura o funcionare corect. Operaia de iniializare aduce
elementele componente ale acestor dispozitive n strile specifice nceperii
funcionrii.
Deasemenea, n aplicaiile industriale sau care necesit un grad ridicat de
siguran n funcionare este necesar supravegherea modului n care se desfoar
execuia programului de aplicaie pentru detectarea situaiilor de funcionare
anormal. La detectarea unei astfel de situaii, se recomand reiniializarea
ntregului sistem.
Funciile de iniializare i supraveghere snt realizate de Circuitul de
generare a semnalului de iniializare respectiv de ctre ceasul de gard.

Unitatea central

47

Circuitul de generare a semnalului de iniializare


Generarea semnalului de iniializare se realizeaz n urmtoarele situaii:
la punerea sub tensiune a microcontrolerului (Power-on Reset);
cnd tensiunea de alimentare scade sub un prag de siguran (Brown-out
Reset);
comand extern de iniializare;
depire interval de timp ceas de gard.

Iniializarea la punerea sub tensiune a microcontrolerului


Este generat de fiecare dat cnd microcontrolerul este alimentat cu
energie electric. Pentru realizarea acestei funcii, se compar permanent tesiunea
de alimentare (VDD) cu o valoare de prag (V POR). Att timp ct tensiunea de
alimentare este mai mic dect tensiunea de prag, semnalul de iniializare
(POR_RESET) este meninut activ. Inactivarea acestui semnal se produce dup un
interval de timp (TPOR) fa de momentul n care tensiunea de alimentare depete
valoarea de prag (Figura 2.15):
VDD
3.3V
VPOR

TPOR
POR_RESET

activ

inactiv

Figura 2.15: Generarea semnalului de iniializare la punerea sub tensiune


(POR_RESET)

Tensiunea de prag (V POR) este aleas astfel nct restul circuitelor de


generare a semnalelor de iniializare s fie funcionale pentru tensiuni de
alimentare mai mari dect acest valoare (1.8 V). Intervalul de timp (TPOR) este de
ordinul a 10...30 sec i are rolul de a asigura stabilizarea funcionrii circuitelor
microcontrolerului nainte de dezactivarea semnalului de iniializare.
Iniializarea cnd tensiunea de alimentare scade sub pragul de siguran
Acest tip de iniializare este necesar deoarece buna funcionare a oricrui
microcontroler este garantat doar dac tensiunea de alimentare este suficient de
mare. Pentru realizarea acestei funcii se compar n permanen tensiunea de
alimentare (VDD) cu o valoare de prag (VBOR) corespunztoare valorii minime
necesare pentru buna funcionare a microcontrolerului. n cazul n care tensiunea
de alimentare scade sub valoarea de siguran se activeaz semnalul de iniializare
(BOR_RESET).

AUTOMATE PROGRAMABILE I MICROPROGRAMARE

48

Inactivarea acestui semnal se produce dup un interval de timp (TBOR) fa


de momentul n care tensiunea de alimantare depete valoarea de siguran
(Figura 2.16):
VDD
3.3V
VBOR > VPOR

TBOR
BOR_RESET

TBOR

activ

inactiv

activ

inactiv

Figura 2.16: Generarea semnalului de iniializare la tensiune de alimentare


insuficient (BOR_RESET)

Iniializare prin comand extern


Comanda extern de iniializare se aplic microcontrolerului prin
intermediul unui semnal ( RESET ) prezent pe una dintre conexiunile acestuia. De
cele mai multe ori, se utilizeaz un buton pentru generarea comenzii externe de
iniializare (Figura 2.17):
VDD

Buton RESET

10K

1K
RESET

100nF

Figura 2.17: Exemplu de circuit de comand pentru iniializarea extern

Iniializare la depirea intervalului de timp al ceasului de gard


Ceasul de gard (Watch-Dog Timer) este un dispozitiv care supravegheaz
funcionarea procesorului i/sau a aplicaiei software. Mecanismul de funcionare a
ceasului de gard va fi prezentat n detaliu n paragraful urmtor.
Ceasul de gard
n timpul funcionrii procesorului exist posibilitatea ca acesta s devieze
de la evoluia corect a strilor interne fie ca rezultat al unei perturbaii
electromagnetice externe care determina schimbri haotice ale strii circuitelor, fie
ca urmare a unor erori software. n aceste situaii este necesar detecia funcionrii
anormale i reiniializarea procesorului pentru a se reveni la o funcionare corect.

Unitatea central

49

Supravegherea funcionrii procesorului este realizat de ctre un circuit


special numit ceas de gard (Watch-Dog Timer). Acest circuit este un temporizator
care la expirarea unui interval de timp prestabilit (Tw) solicit reiniializarea
procesorului. Procesorul, ca urmare a execuiei unei instruciuni speciale
(CLRWDT), poate rearma acest temporizator astfel nct intervalul de timp s fie
prelungit cu Tw.
Programul de aplicaie care ruleaz n microcontroler este conceput n aa
fel nct sa execute instruciunea de rearmare a ceasului de gard la intervale de
timp T<Tw evitnd astfel iniializarea procesorului. n cazul unei funcionri
anormale a procesorului, programul de aplicaie nu va mai rula corect iar
instruciunile de rearmare a ceasului de gard nu vor mai fi executate i dup un
interval de timp T=Tw va apare solicitarea de reiniializare din partea ceasului de
gard prin activarea semnalului WDT_RESET (Figura 2.18):

Rearmare
ceas de gard

Execuie
instruciune
CLRWDT

Execuie
instruciune
CLRWDT
t
inactiv

WDT_RESET
T < Tw

activ

inactiv

T = Tw

Figura 2.18: Principiul de funcionare al ceasului de gard

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.

AUTOMATE PROGRAMABILE I MICROPROGRAMARE

50

Execuia procedurii de tratare a ntreruperii trebuie s nceap dup un


timp ct mai scurt de la producerea evenimentului. Din acest motiv este necesar ca
procesorul s ntrerup temporar execuia programului principal pentru a putea
lansa n execuie procedura de tratare a ntreruperii (Figura 2.19):
Cerere
ntrerupere

Desfurare program principal

Continuare program principal

Procedur tratare ntrerupere


Ti

Figura 2.19: Principiul de funcionare al ntreruperilor

La finalizarea procedurii de tratare a ntreruperii, procesorul reia execuia


programului principal din locul n care acesta a fost ntrerupt. Deoarece procedurile
de tratare a ntreruperilor snt proceduri relativ simple cu durat scurt de execuie,
ntreruperile programului principal nu afecteaz n mod semnificativ funcionarea
acestuia.
Funcionarea controlorului de ntreruperi
Circuitul controlor de ntreruperi se conecteaz la procesor conform
schemei din figura urmtoare:
INT 0
IRQ
INT 1
Cereri de ntrerupere
(de la dispozitivele
periferice)

Controlor de
ntreruperi

Vector ntrerupere

Procesor

IACK
INT n

Figura 2.20: Conectarea controlorului de ntreruperi la procesor

Controlorul

de ntreruperi

monitorizeaz n permanen

intrrile

INT 0 K INT n pentru a detecta activarea unei cereri de ntrerupere de la un

dispozitiv periferic. La detecia unei cereri active ( INT k ), controlorul activeaz


semnalul IRQ al procesorului prin care solicit ntreruperea programului principal.
Simultan, controlorul transmite ctre procesor un numr ntreg ( k ) egal cu indexul
cererii de ntrerupere activ. Acest numr se numete vector de ntrerupere i este
utilizat de ctre procesor pentru a selecta procedura de tratare a ntreruperii.
Procedura de tratare a ntreruperii se ncheie printr-o instruciune special
(reti) care are ca efect revenirea procesorului la execuia programului ntrerupt i
activarea semnalului de confirmare a finalizrii tratrii ntreruperii ( IACK ).

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

PP = Program Principal, PA = Procedura tratare ntrerupere A,


PB = Procedura tratare ntrerupere B, PC = Procedura tratare ntrerupere C,

Figura 2.21: Funcionarea mecanismului de prioriti

Prima cerere de ntrerupere este generat de dispozitivul periferic B cu


prioritatea 1. n acest moment, procesorul execut intruciunile din programul
principal care are cea mai mic prioritate.
Controlorul de ntreruperi gestioneaz intern o stiv n care se ine evidena
prioritii curente a sistemului de ntreruperi. Deoarece programul principal are
prioritatea cea mai mic, n acest moment, n stiva de prioriti se afl valoarea
max corespunztoare acesteia.
La activarea cererii de ntrerupere B, prioritatea acesteia este mai mare
dect a programului principal aflat n virful stivei de prioriti (1<max) iar
controlorul de ntreruperi activeaz semnalul IRQ simultan cu transmiterea ctre
procesor a vectorului de ntrerupere corespunztor cererii B.
Procesorul ntrerupe programul principal i pornete execuia procedurii de
tratare a ntreruperii B. Simultan, n stiva de prioriti se adaug prioritatea
ntreruperii B i anume valoarea 1.

52

AUTOMATE PROGRAMABILE I MICROPROGRAMARE

n timp ce se desfoar execuia procedurii de PB, se activeaz cererea de


ntrerupere A avnd prioritatea 0. Deoarece aceast cerere are prioritate mai mare
dect cea a procedurii PB aflat n virful stivei de prioriti (0<1), controlorul de
ntreruperi activeaz semnalul IRQ simultan cu transmiterea ctre procesor a
vectorului de ntrerupere corespunztor cererii A.
Procesorul ntrerupe procedura PB i pornete execuia procedurii de
tratare a ntreruperii A. Simultan, n stiva de prioriti se adaug prioritatea
ntreruperii A i anume valoarea 0.
n timp ce se desfoar execuia procedurii de PA, se activeaz cererea de
ntrerupere C avnd prioritatea 2. Deoarece aceast cerere are prioritate mai mic
dect cea a procedurii PA aflat n virful stivei de prioriti (2>0), controlorul de
ntrerupere nu iniiaz activarea semnalului IRQ .
La finalizarea procedurii PA, n urma execuiei instruciunii reti,
procesorul revine la execuia procedurii PB iar semnalul de confirmare IACK se
activeaz. Controlorul de ntreruperi detecteaz activarea semnalului IACK i
scoate din stiva de prioriti valoarea corespunztoare procedurii PA (0).
n acest moment, valoarea aflat n vrful stivei de prioriti este cea
corespunztoare procedurii PB aflat n execuie. Deoarece aceast valoare este
mai mic dect cea corespunztoare cererii de ntrerupere C (1<2), controlorul de
ntreruperi amn n continuare activarea semnalului IRQ .
La finalizarea procedurii PB, n urma execuiei instruciunii reti,
procesorul poate reveni la execuia programului principal PP iar semnalul de
confirmare IACK se activeaz. Controlorul de ntreruperi detecteaz activarea
semnalului IACK i scoate din stiva de prioriti valoarea corespunztoare
procedurii PB (1).
n acest moment, valoarea aflat n vrful stivei de prioriti este cea
corespunztoare programului principal care este mai mare dect cea a cererii de
ntrerupere C (max>2) iar controlorul de ntreruperi activeaz semnalul IRQ
simultan cu transmiterea ctre procesor a vectorului de ntrerupere corespunztor
cererii C.
Procesorul nu mai revine la execuia programului principal i trece direct
la execuia procedurii PC corespunztoare cererii C iar n stiva de prioriti se se
adaug prioritatea ntreruperii C i anume valoarea 2.
La finalizarea procedurii PC, n urma execuiei instruciunii reti,
procesorul revine la execuia programului principal PP iar semnalul de confirmare
IACK se activeaz. Controlorul de ntreruperi detecteaz activarea semnalului
IACK i scoate din stiva de prioriti valoarea corespunztoare procedurii PC (2),
stiva reveinind la starea iniial corespunztoare execuiei programului principal.

3.

Dispozitive periferice

Capitolul 4

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 conectarea la proces.

Dispozitive periferice de uz general


Dispozitivele periferice de uz general snt comune tuturor automatelor
programabile i pot fi clasificate n urmtoarele categorii:
porturi de intrare/ieire;
dispozitive de gestiune a timpului;
interfee de comunicaie.
n continuare vor fi prezentate n detaliu toate aceste tipuri de interfee de
uz general. Prezentarea va conine exemplificri referitoare la dispozitivele
periferice integrate n familia de microcontrolere AVR care snt reprezentative
pentru majoritatea familiilor de microcontrolere actuale.

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.

AUTOMATE PROGRAMABILE I MICROPROGRAMARE

54

Structura general a unui port configurabil de intrare/ieire este prezentat


n figura urmtoare:
VDD

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

Figura 3.1: Structura unui port configurabil de intrare/ieire

Portul prezentat n Figura 3.1 controleaz simultan un numr de 8


conexiuni configurabile de intrare/ieire i este compus din dou subsisteme:
unitatea de interfa cu procesorul;
circuitele de control pentru conexiunile de intrare/ieire.

Dispozitive periferice

55

Unitatea de interfa cu procesorul


Conectarea portului la procesor se realizeaz prin intermediul a trei locaii
(regitri speciali) i anume:
registrul PIN este utilizat doar pentru citire i ofer starea logic a celor 8
conexiuni ale portului;
registrul PORT permite modificarea strii logice pentru fiecare din cele 8
conexiuni. Coninutul acestui registru poate fi att scris ct i citit. Citirea
registrului PORT ofer starea curent a acestuia;
registrul DDR configureaz fiecare conexiune ca intrare sau ca ieire.
Fiecare conexiune a portului poate fi configurat att ca intrare ct i ca
ieire prin intermediul biilor registrului DDR. Astfel, conexiunea corespunztoare
unui bit cu valoarea 0 va fi configurat ca intrare iar cea corespunztoare unui bit
cu valoarea 1 va fi configurat ca ieire.
Circuitele de control pentru conexiunile de intrare/ieire
Fiecare conexiune din cele 8 ale portului are propriul circuit de control.
Acest circuit realizeaz configurarea efectiv a modului de funcionare al
conexiunii.
Conexiunea portului este conectat la bitul corespunztor din registrul PIN
prin intermediul unui comparator cu histerezis. Comparatorul testeaz tensiunea
existent pe conexiune i decide asupra nivelului logic corespunztor acesteia.
Funcionarea detaliat a acestor comparatoare este prezentat n paragraful
Comparatorul cu histerezis de la pagina 79.
O conexiune configurat ca intrare este conectat doar la intrarea
comparatorului care prezint o rezisten intern extrem de mare (de ordinul
zecilor de M). n foarte multe aplicaii, circuitul extern care determin starea
logic a unei intrri nu este capabil s asigure dect unul dintre cele dou nivele
(cel mai frecvent 0 logic).n aceste cazuri se conecteaz o rezisten de polarizare
ntre conexiunea portului i una dintre liniile de alimentare ( VDD n cazul cel mai
frecvent) pentru a se asigura cel de-al doilea nivel logic.
Majoritatea porturilor de intrare ieire snt prevzute cu posibilitatea de a
conecta intern aceast rezisten dac aplicaia solicit acest lucru.
n cazul exemplului prezentat n Figura 3.1, tranzistorul MOS Tp poate conecta
rezistena de polarizare Rp ntre VDD i conexiunea portului.
Valoarea rezistenei de polarizare Rp este aleas ca un compromis ntre
asigurarea la nivelul conexiunii a unui nivel logic 1 sigur (insensibil la efectele
perturbaiilor electromagnetice) i un consum redus de curent. Valorile uzuale ale
acestor rezistene se situeaz n intervalul 50150 K.
Pentru comanda nivelului de tensiune generat n cazul conexiunilor
configurate ca ieiri, se utilizeaz circuitul format din tranzistoarele MOS Th i
Tl . Aceste dou tranzistoare ct i Tp snt comandate de ctre circuitul driver n
funcie de strile biilor corespunztori din regitrii DDR i PORT.

AUTOMATE PROGRAMABILE I MICROPROGRAMARE

56

Modul de comand al acestor trei tranzistoare este prezentat n tabelul


urmtor:
Tabelul 3.1
Funcionarea circuitului driver

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

Ieire n stare logic 0

n
conducie

blocat

blocat

Ieire n stare logic 1

Tp

Utilizarea unui port de intrare/ieire presupune mai nti configurarea


conexiunilor sale prin scrierea n registrul DDR a biilor care stabilesc tipul fiecrei
conexiuni (intrare sau ieire). n cazul n care o conexiune a fost configurat ca
intrare este posibil activarea rezistenei de polarizare intern prin scrierea valorii
1 logicn bitul corespunztor din registrul PORT.
Starea intrrilor se citete din registrul PIN iar modificarea ieirilor se
realizeaz prin actualizarea biilor din registrul PORT.
Microcontrolere integreaz mai multe porturi de intrare/ieire, fiecare port
avnd propriul set de regitrii speciali (PIN, PORT i DDR).

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

Structura general a unui dispozitiv de tip timer este prezentat n figura


urmtoare:
Fosc
Fosc

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)

Ctre alte uniti de


captur i sintez

Figura 3.2: Structura general a unui timer

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

AUTOMATE PROGRAMABILE I MICROPROGRAMARE

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

Modalitatea de generare a impusurilor modulate n durat este prezentat


n figura urmtoare:
Valori numrtor
i OCR

Numrtor

Registru OCR

Valoare limit
n
(LIM sau 2 )

t
Reset
1

Egalitate
1

Semnal
PWM
1

Figura 3.3: Generarea semnalelor modulate n durat (PWM)

Semnalul generat la ieirea OC este adus n stare logic 1 de fiecare dat


cnd numratorul revine la zero datorit depirii capacittii sau atingerii valorii
limt. n momentul n care comparatorul detecteaz egalitatea dintre valoarea
curent a numrtorului i cea din registrul OCR , semnalul de ieire este readus n
starea logic 0.
Se observ c valoarea din registrul OCR determin n mod direct durata
impulsurilor generate. Perioada acestui tip de semnal este determinat de durata
dintre nceputul a dou impulsuri succesive fiind egal cu:

To =

Vm ax P
,
Fosc

(3-1)

unde Vmax este valoarea maxim atins de numrtor i anume:

2 n dac numrtorul evolueaz liber pn la atingerea capacitii maxime

de numrare;
LIM dac se utilizeaz registrul LIM pentru stabilirea limitei maxime de
numrare.

60

AUTOMATE PROGRAMABILE I MICROPROGRAMARE


Durata impulsurilor generate este:
Tp =

OCR P
,
Fosc

(3-2)

Acest mod de generare a impulsurilor modulate n durat este cel mai


frecvent ntlnit n practic i se numete Fast-PWM deoarece ofer cea mai mare
frecven posibil a impulsurilor generate.

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

Figura 3.4: Conexiune serial de tip punct la punct

Datele se transmit pe conexiunea notat cu TXD i se recepioneaz pe


conexiunea RXD . Suplimentar, se mai realizeaz o conexiune electric ( GND )
prin care se conecteaz potenialele de referin ale celor dou echipamente.

Dispozitive periferice

61

Liniile de date se pot afla n dou stri logice:


1 logic care n cazul interfeelor seriale se mai numete si mark fiind
utilizat att pentru transmiterea biilor avnd valoarea 1 logic dar i pe
durata n care nu se realizeaz nici un transfer de date;
0 logic care se mai numete si space fiind utilizat pentru transmiterea
biilor avnd valoarea 0 logic.
Principiul comunicaiei seriale asincrone
Unitatea de transfer a informaiei prin interfaa seriala asincron este
caracterul format din 58 bii. Aceti bii snt transmii succesiv pe linia de date,
fiecare bit fiind prezent pe linie un interval de timp Tb .
Intervalul Tb determin viteza cu care se realizeaz comunicaia de date.
Aceast vitez se numete i Baud rate ( Br ) i poate fi determinat astfel:

Br =

1
,
Tb

(3-3)

Un exemplu de transfer de date prin interfaa serial asincron este


prezentat n figura urmtoare:
linie inactiv

transfer caracter

1 (mark)

transfer caracter

Tb

Tb

Tb

linie inactiv

0 (space)
Tb

Bit de
START

Bii de
date

Tb

Bit de
STOP

Figura 3.5: Desfurarea transferului de date prin interfat serial asicron

Pe durata n care nu se realizeaz nici un transfer de date, linia este n stare


logic 1. Transmisia unui caracter ncepe prin aducerea liniei n 0 logic pe o
durat de timp Tb ceea ce echivaleaz cu transmiterea unui bit avnd valoarea 0
care se numete Bit de START.
Prezena bitului de START permite detecia nceputului unui caracter prin
tranziia liniei de date din starea logic 1 specific strii inactive n starea 0
corespunztoare bitului de START.
Biii de date snt transmii succesiv ncepnd cu bitul cel mai puin
semnificativ (bitul 0). Dup transmiterea biilor de date se aduce linia n starea 1
logic pentru durata unui bit ( Tb ) ceea ce echivaleaz cu transmiterea unui bit
suplimentar numit Bit de STOP. Acest bit este necesar pentru a permite detecia
nceputului urmtorului caracter prin tranziia 10 a strii liniei i n cazul n
care transmisia se realizeaz fr pauz ntre caractere.

AUTOMATE PROGRAMABILE I MICROPROGRAMARE

62

Pentru a se putea realiza o comunicaie corect este necesar ca att interfaa


care realizeaz transmisia ct i cea care recepioneaz datele s utilizeze acelai
interval de timp Tb .
Recepia datelor se realizeaz monitoriznd n permanen linia de date
pentru a detecta bitul de START (tranziie de stare din 1 n 0). Monitorizarea
strii liniei se realizeaz prin testarea strii acesteia la intervale de timp mult mai
mici dect durata unui bit numite intervale de eantionare ( Te ). Interfeele seriale
asincrone utilizeaz o valoare:

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

Figura 3.6: Mecanismul recepiei unui caracter

Recepia caracterului se realizeaz prin eantionarea strii liniei de date la


intervale de timp egale cu Tb fa de centrul bitului de START pentru citirea
biilor de date.
Dup eantionarea corespunztoare ultimului bit se mai realizeaz nc o
eantionare dup un interval Tb pentru a se verifica prezena bitului de STOP
(linia de date n 0 logic). Dac bitul de stop este detectat se consider c linia a
redevenit inactiv i ncepe monotorizarea acesteia n vederea deteciei unui nou
bit de START. Dac prezena bitului de STOP nu este detectat, interfaa
semnalizeaz o eroare.
Orice interfa de comunicaie serial asincron poate fi configurat s
genereze cereri de ntrerupere att la recepia ct i la finalizarea transmiterii unui
caracter.
Deasemenea, interfeele seriale asincrone permit transmisia i recepia
simultan a datelor ceea ce corespunde unei funcionri de tip full duplex.

Dispozitive periferice

63

Standarde pentru interfeele seriale asincrone


Utilizarea pe scar larg a interfeelor seriale asincrone a impus definirea
unor standarde pentru vitezele de comunicaie utilizabile ct i pentru semnalele
prezente pentru conexiunile de date.
Vitezele de comunicaie standard (exprimate n bii/secund) snt:
1200,
19200,

2400,
28800,

4800,
38400,

9600,
57600,

14400,
115200.

Din punct de vedere al semnalelor utilizate pentru conexiunile de date,


exist dou standarde principale i anume:
RS-232 pentru conexiuni punct la punct;
RS-485 pentru conexiuni multipunct (n reea).
Standardul de conectare RS-232:
Acest standard este utilizat pentru conectarea a dou echipamente printr-o
conexiune de tip punct la punct (Figura 3.4).
Nivele logice 0 sau 1 snt semnalizate prin intermediul valorii tensiunii
aflate pe liniile de date. Aceste tensiuni snt raportate la potenialul de referin de
pe linia GND .
Standardul RS-232 definete caracteristile electrice ale semnalelor utilizate
pe liniile de date (Tabelul 3.2):
Tabelul 3.2
Principalii parametri electrici specificai de standardul RS-232

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)

Se observ utilizarea unor tensiuni cu polaritate diferit pentru cele dou


stri logice ale liniilor de date, valorile tensiunilor utilizate fiind relativ ridicate
pentru a asigura o imunitate crescut la zgomote.
Standardul de conectare RS-485:
Acest standard este utilizat pentru conectarea mai multor echipamente
printr-o conexiune de tip reea.
Conectarea n reea presupune utilizarea a dou conexiuni electrice pe care
se conecteaz n paralel toate echipamentele din reea. Conectarea n paralel
presupune ca la un moment dat doar un singur echipament poate realiza transmisie
de date.

AUTOMATE PROGRAMABILE I MICROPROGRAMARE

64

n consecin, transferul de informaie se poate realiza doar ntr-un singur


sens i anume de la echipamentrul care realizeaz transmisia de date ctre restul
echipamentelor din reea (funcionare de tip half duplex).
Modalitatea de conectare a echipamentelor ntr-o reea conform
standardului RS-485 presupune utilizarea unor circuite adaptoare numite drivere
(Figura 3.7):
Magistral de comunicaie serial (RS-485)
Rt

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)

Figura 3.7: Structura unei reele RS-485

Nivele logice 0 sau 1 snt semnalizate prin intermediul diferenei de


potenial dintre cele dou conexiuni electrice ale magistralei (semnalizare
diferenial). Potenialele conexiunilor fa de conexiunea GND a fiecrui
echipament pot fi diferite deoarece standardul RS-485 nu solicit ca echiamentele
conectate n reea s fie conectate la acelai potenial de referin.
Circuitele driver permit deconectarea electric a seciunii de transmisie n
momentu ln care echipamentul nu trebuie s transmit date. Controlul acestei
deconectri se realizeaz prin semnalul TXE care este conectat la un port de ieire.
Standardul RS-485 definete caracteristile electrice ale semnalelor utilizate
pe magistrala de comunicaie (Tabelul 3.3):
Tabelul 3.3
Principalii parametri electrici specificai de standardul RS-232

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

Dispozitive periferice pentru conectarea la proces


Acest tip de interfee este specfic echipamentelor numerice de conducere
avnd rolul de a asigura preluarea i transmiterea informaiei ctre procesul condus.
Accesul la parmetrii de funcionare ai procesului este realizat de ctre traductoarele
i elementele de execuie instalate, interfeele de conectare la proces avnd rolul de
a converti semnalele electrice primite de la traductoare ntr-o form numeric
accesibil prelucrrii de ctre unitatea central respectiv de a genera semnale de
comand ctre elementele de execuie.aceasta
Interfeele de conectare la proces pot fi clasificate n patru categorii
principale:
interfee pentru intrri analogice;
interfee pentru ieiri analogice;
interfee pentru intrri digitale;
interfee pentru ieiri digitale.

Interfee pentru intrri analogice


Interfeele pentru intrri analogice snt utilizate pentru preluarea
informaiei primite de la traductoarele de msur. Funcia realizat de acest tip de
interfee este aceea de msurare a valorii semnalelor unificate generate de
traductoare.
Structura unei interfee pentru intrri analogice
Interfeele pentru intrri analogice pot fi realizate ntr-o gam foarte larg
de variante constructive. Cu totate acestea structura acestor interfee este similar
(Figura 3.8):
Traductor 1

Condiionare
de semnal 1

Traductor 2

Condiionare
de semnal 2

Traductor n

Multiplexor
analogic

Convertor
analog-numeric
(CAN)

Condiionare
de semnal n

Figura 3.8: Structura unei interfee pentru intrri analogice

Valoare
msurat
(N)

66

AUTOMATE PROGRAMABILE I MICROPROGRAMARE

Elementul principal al interfeei este convertorul analog-numeric care


relizeaz operaia de msurare propriu-zis. Pentru extinderea numrului de intrri
se utilizeaz un multiplexor analogic care aduce la intrarea convertorului semnalele
corespunztoare tuturor intrrilor.
Adaptarea semnalelor generate de traductoare la caracteristicile
convertorului analog-numeric precum i o serie de operaii simple de prelucrare a
semnalelor destinate mbuntirii calittii acestora snt realizate de modulele de
condiionare a semnalelor corespunztoare fiecrei intrri.
Convertorul analog-numeric
Convertorul analog numeric este un dispozitiv electronic care msoar
valoarea unei tensiuni electrice primite la intrare i ofer aceast informaie sub
forma unui numr ntreg reprezentat n binar pentru a fi uor accesibil procesorului.
Conexiunile exterioare ale unui convertor analog-numeric snt prezentate
n figura urmtoare:
Tensine de
referin (Vref)
Tensine
de intrare
[0...Vref]

Convertor
analog-numeric

START

Valoare
msurat
(N)

READY

Figura 3.9: Conexiunile unui convertor analog-numeric

Domeniul de variaie al tensiunii msurate la intrare este stabilit prin


intermediul unei tensiuni de referin ( Vref ) cu o valoare precis i stabil.
Tensiunea de referin fixeaz valoarea maxim a tensiunii care poate fi
msurat de convertor. Valoarea minim a acestei tensiuni este n cele mai multe
cazuri 0 V.
Operaia de msur este declanat prin intermediul semnalului START i
dureaz un interval de timp Tc numit tip de conversie. Finalizarea conversiei este
semnalizat prin intermediul semnalului READY care devine inactiv n momentul
declanrii unei conversii i se activeaz din nou n momentul finalizrii acesteia.
Valoarea msurat a tensiunii de intrare este oferit la ieire sub forma
unui numr ntreg ( N ). Convertorul analog-numeric mparte domeniul de msur
0 KVref ntr-un numr de intervale egale. Valoarea N generat de convertor este
numrul intervalului de tensiune n care se gsete tensiunea de intrare.
Presupunnd c numrul N este reprezentat utiliznd b cifre binare (bii)
valorile acestuia se pot ncadra n intervalul 0 K 2 b 1 . Din acest motiv, numrul
de intervale n care convertoarele mpart domeniul de msur este 2 b care
reprezint rezoluia convertorului. Rezoluia este dat de numrul de bii b i este
unul dintre principalii indicatori de performan a unui convertor.

Dispozitive periferice

67

Convertoarele analog numerice pot utiliza diferite principii de msur n


funcie de cerinele aplicaiilor crora le snt destinate. n cazul convertoarelor
utilizate n automatele programabile, principiul de msur utilzat cel mai frecvent
este cel al aproximaiilor succesive.
Structura unui convertor bazat pe aproxmaii succesive este prezentat n
figura urmtoare:
Tensiune
de intrare

Ui

Element de
eantionare
i memorare

Comparator
de tensiune
Ui
C

Registru de
aproximaii succesive

Vout

Convertor
numeric-analogic

START
STARE
Valoare
msurat

Vref

Figura 3.10: Convertor analog-numeric bazat pe aproximaii succesive

Tensiunea de la intrarea convertorului este preluat de un circuit de


eantionare i memorare. Rolul acestui circuit este de a menine constant valoarea
tensiunii msurate pe ntreaga durat a procesului de conversie.
Activarea semnalului de comand a nceperii unei conversii (START)
comand elementului de eantionare i memorare s citeasc valoarea curent a
tensiunii de intrare i s o memoreze intern prin ncrcarea unui condensator.
Condentasorul va pstra valoarea acestei tensiuni pe toat durata de timp necesar
convertorului pentru a finaliza operaia de msur.
Convertorul numeric-analogic prezent n structura convertorului analognumeric este un circuit care genereaz la ieire o tensiune proporional cu
valoarea numeric N primit de la registrul de aproximaii succesive conform cu:

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.

AUTOMATE PROGRAMABILE I MICROPROGRAMARE

68

Principiul algoritmului de conversie este exemplificat n Figura 3.11:


U, Vout
Vref=10 V

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)

Figura 3.11: Exemplu de realizare a unei conversii analog-numerice

Pentru un convertor analog-numeric cu rezoluia de b bii algoritmul de


msur are b pai (iteraii) fiecare format dou faze (prima de test i cea de a doua
de compensare). Folosind notaia N .i pentru bitul b al numrului N , algoritmul
de msur este urmtorul:
1. Pentru i = b 1K0 (descresctor)
1.1. (faza de test) N .i = 1 ;
1.2. (faza de compensare) Dac C = 0 adic Ui < Vout
1.2.1. N .i = 0
Multiplexorul analogic
Multiplexorul analogic este un dispozitiv electronic care funcioneaz
similar unui comutator. Structura modulului multiplexor este prezentat n figura
urmtoare:
Comutator electronic
Intrare 0 (Ui 0)
Amplificator
separator

Intrare 1 (Ui 1)

Ieire (Uo)

Intrare 2 (Ui n)

Selecie canal

Figura 3.12: Structura modulului multiplexor

Dispozitive periferice

69

Elementul pricipal al acestui modul este un comutator electronic care


conecteaz unul dintre terminalele de intrare la ieirea circuitului. Selecia
terminalului de intrare se realizeaz prin intermediul unui numr ntreg reprezentat
n binar care reprezint semnalul de selecie canal.
Deoarece comutatorul electronic prezint o rezisten echivalent de
contact relativ ridicat (de ordinul K) este necesar utilizarea unui amplificator
separator montat la ieirea acestuia. Amplificatorul separator este realizat cu
ajutorul unui amplificatoroperaional de mare vitez conectat n configuraie de
repetor (amplificare unitar).
Condiionarea semnalelor
Pentru asigurarea calitii prelurii semnalelor de la traductoarele de
msur, este necesar introducerea unui modul de condiionare a semnalului ntre
acesta i multiplexorul analogic.
Structura modulelor de condiionare a semnalelor utilizate pentru achiziia
semnalului analogic este prezentat n figura urmtoare:
Intrare
analogic

Conversie
I-U

Circuit
diferenial

Filtru activ de
tip trece-jos

Ctre multiplexorul
analogic

Doar pentru semnale


unificate de curent

Figura 3.13: Structura modulelor de condiionare a semnalelor

Conversia I-U (curent-tensiune):


Circuitul de conversie I-U este utlizat doar n cazul achiziiei semnalelor
unificate de curent. Acest circuit este format dintr-o rezisten electric de precizie.
Rezistenele de precizie se deosebesc de cele uzuale prin faptul c valoarea
acestora este foarte precis controlat n procesul de fabriaie (dispersia valorilor
mai mic de 0.1%) iar coeficientul de variaie al rezistenei cu temperatura este
foarte redus (sub 25 ppm/C).
Valorile uzuale ale rezistenelor utilizate pentru conversia curent tensiune
snt de 250 respectiv 500 . Astfel, pentru un semnal de intrare standard cu
variaie ntre 420 mA se obine la bornele rezistenei o tensiune ntre 15 V
respectiv 210 V compatibile cu domeniile standard ale semnalelor unificate de
tensiune 05 V respectiv 010 V.
Circuitul diferenial:
Tensiunile prelucrate n cadrul majoritii circuitelor electronice snt
msurate relativ la un potenial de referin de 0 V (masa sursei de alimentare).
Traductorele de msur conectate la intrrile interfeei de intrri analogice
snt alimentate din surse diferite i pot fi montate pe seciuni ale procesului condus
aflate la poteniale electrice diferite.

70

AUTOMATE PROGRAMABILE I MICROPROGRAMARE

Din acest motiv, n majoritatea situaiilor ntlnite n practic, nu este


posibil conectarea acestor traductoare cu un fir comun pentru potenialul de
referin.
Rezolvarea acestei probleme const n utilizarea unui circuit diferenial de
intrare care preia tensiunea generat de traductoare sub forma unei diferene de
potenial electric ntre conexiuile acestuia i o aduce la intrrile circuitelor
interfeei sub forma unei tensiuni de aceiai valoare dar raportat la potenialul de
referin al interfeei.
Ui+

Traductor

Ui

Circuit de
intrare
diferenial

Uo

UiUi+

Uo=Ui

UiPotenial de referin

Figura 3.14: Conectarea traductoarelor prin circuite de intrare difereniale

Un parametru important al circuitelor difereniale este gama maxim a


tensiunii de mod comun ( Ucm ) care poate fi aplicat la intrare. Tensiunea de mod
comun este o msur a diferenei existente ntre potenialul de referin al
traductorului i cel al interfeei fiind definit prin:

Ucm =

(Ui + ) (Ui ) ,

(3-6)

n practic se prefer utilizarea unor circuite difereniale capabile s


lucreze corect n prezena unor tensiuni de mod comun relativ ridicate (de ordinul
zecilor de voli).
Implementarea circuitelor de intrare diferenial se realizeaz utiliznd
amplificatoare de instrumentaie. Un exemplu de circuit de intrare diferenial cu
gama extins a tensiunilor de mod comun este prezentat n figura urmtoare:
Amplificator de
instrumentaie

R1=R
R2=9R

U+

Ui+

A=10
R2=9R

Uo

U-

UiR1=R

Figura 3.15: Circuit de intrare diferenial

Dispozitive periferice

71

Amplificatorul de instrumentaie este un circuit electronic care amplific


diferena dintre cele dou tensiuni aplicate la intrri. Tensiunea obinut la ieirea
amplificatorului este:

Uo = Ao [ (U + ) (U ) ] ,

(3-7)

Amplificatorul de instrumentaie este capabil s realizeze de unul singur


funcia circuitului de intrare diferenial dac se alege Ao = 1 . Cu toate acestea,
tensiunile aplicabile la intrrile unui astfel de amplificator nu pot depai tensiunile
de alimentare ale acestuia (1015 V) iar gama tensiunilor de mod comun
acceptate va fi relativ limitat.
Soluia acestei probleme presupune divizarea tensiunilor de intrare nainte
de a fi aplicate la intrrile amplificatorului de instrumentaie. Schema prezentat n
Figura 3.15 utilizeaz dou divizoare rezistive de tensiune care reduc tensiunile de
la intrrile circuitului cu un factor:

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=

cea oferit de amplificatorul de instrumentaie.


Deoarece, divizarea celor dou tensiuni afecteaz n aceiai msur i
diferena acestora, pentru compensare se va utiliza un amplificator de
instrumentaie avnd amplificarea Ao = 1 / F .
Filtrul activ trece-jos:
Necesitatea utilizrii acestui filtru se datoreaz principiului de achiziie a
datelor prin eantionare. Semnalele de intrare snt msurate la intervale de timp
egale Te numite perioade de eantionare. Durata acestor intervale se alege n
funcie de viteza de variaie a semnalelor achiziionate care poate fi cuantificat
prin intermediul frecvenei maxime din spectrul util al semnalelor de intrare.
Teorema eantionrii a lui Shannon specific o modalitate de alegere a
perioadei de eantionare Te n funcie de frecvena maxim din spectrul util al
unui semnal Fma x astfel:

Te

1
,
2 Fma x

(3-9)

n urma procesului de eantionare toate componentele cu frecvene mai


mari dect jumtatea frecvenei de eantionare Fe = 1 / Te i modific frecvena
i se suprapun peste semalul util sub forma unui zgomot. Acest fenomen de
modificare a frecvenei se numete aliere (sau alias).

AUTOMATE PROGRAMABILE I MICROPROGRAMARE

72

Din acest motiv, eantionarea corect a unui semnal care conine


componente cu frecvena mai mare dect cea maxim util Fma x necesit
eliminarea acestora nainte de eantionare.
Eliminarea acestor frecvene este realizat de ctre filtru de tip trece-jos
care reprezint ultimul element din modulul de condiionare a semnalelor.
Un filtru trece-jos este un dispozitiv care atenueaz componentele de
semnal avnd frecvenele mai mari dect o limit Fb numit frecven de band,
restul componentelor nefiind afectate. Variaia amplificrii unui filtru n funcie de
frecven este descris de caracteristica de frecven a acestuia (Figura 3.16):
1

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

Figura 3.16: Caracteristicile de frecven pentru diferite tipuri de filtre trece-jos

Se observ diferene destul de mari ntre caracteristica unui filtru ideal i a


celor reale. Gradul de apropiere a unui filtru real de caracteristica ideal este
dependent de ordinul (complexitatea) filtrului. Cu ct ordinul filtrului este mai mare
cu att caracteristica sa se apropie mai mult de cea ideal.
n Figura 3.17 este prezentat modul de implementare a unor filtre de
ordinul 1 respectiv 2 n varianta activ (coninnd elemente de amplificare):
Filtru activ de ordinul 1

Filtru activ de ordinul 2

C
R

Ieire

Intrare

Ieire

Intrare
C

Figura 3.17: Exemple de implementare pentru filtre active de tip trece-jos

Frecvena de band a acestor filtre poate fi calculat cu ajutorul relaiei:

Fb =

1
,
2 R C

(3-10)

Dispozitive periferice

73

Interfee pentru ieiri analogice


Interfeele pentru ieiri analogice snt utilizate pentru comanda elementelor
de acionare variabil. Funcia realizat de acest tip de interfee este aceea de
generare a unor semnale unificate avnd o valoare a tensiunii sau curentului
determinat de algoritmii de control utilizai n automatul programabil.
Structura unei interfee pentru ieiri analogice
Structura tipic a unei interfee pentru ieiri analogice este prezentat n
figura urmtoare:
Valoare
comand
(N1)

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

Figura 3.18: Structura unei interfee pentru ieiri analogice

Elementul principal al interfeei este convertorul numeric-analogic care


genereaz o tensiune proporional cu valoarea numeric N primit de la procesor.
Adaptarea semnalului generat de ctre convertorul numeric-analog la
caracteristicile specifice tipului de semnal unificat oferit la ieirea interfeei este
realizat de modulele de condiionare a semnalelor.
Convertorul numeric-analogic
Convertorul analog numeric este un dispozitiv electronic care genereaz la
ieire o tensiune electric avnd valoarea programabil prin intermediul unui numr
ntreg reprezentat n binar primit la intrare.
Similar convertoarelor analog-numerice, valoarea binar primit la intrare
este reprezentat pe un numr de bii b care definete rezoluia convertorului.
Deasemenea, convertoarele numeric-anlogice utilizeaz o tensiune de
referin Vref prin care este stabilit domeniul de variaie al tensiunii generate.
Tensiunea la ieirea unui convertor numeric-analogic ( Vout ) depinde de
valoarea numeric ( N ) primit de la procesor conform:

Vout = Vref

N
,
2b

(3-11)

AUTOMATE PROGRAMABILE I MICROPROGRAMARE

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

Figura 3.19: Convertor numeric-analogic cu reea rezistiv R-2R

Convertorul numeric-analogic este format dintr-o reea rezistiv, un set de


generatoare de curent activate de biii valorii de comand i un convertor curenttensiune realizat cu un amplificator operaional.
Principiul de conversie numeric-analogic utiliznd o reea rezistiv R-2R
este prezentat n figura urmtoare:
Bk (bitul k din valoarea de comand)

B
Ir

2R

Este
echivalent
cu:

Ir Bk

Ik-1

Ik-1

2R Irk

2R

Figura 3.20: Principul de funcionare al reelei rezistive R-2R

Analiza funcionrii reelei se face la nivelul unei celule fomat dintr-o


rezisten R i una 2R care corespunde unui bit din valoarea de comand. Valorile
rezistenelor din reeaua R-2R snt alese astfel nct circuitul corespunztor unei
celule (Figura 3.20 seciunea A) s poat fi echivalat cu cel prezentat n Figura
3.20 seciunea B).

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)

Curentul I b 1 este preluat de convertorul curent-tensiune care genereaz


la ieire o tensiune:

Vout = Ib1 Ra =

Ir Ra
N,
2b

(3-14)

Se observ c valoarea curentului I b 1 este proporional cu valoarea de


comand N aplicat convertorului numeric anlogic.
Sursele de curent constant genereaz cureni avnd valoarea fixat de
tensiunea de referin. Dac se dimensioneaz aceste surse s genereze un curent
Ir cu valoarea:

Ir = Vref

1
,
Ra

(3-15)

76

AUTOMATE PROGRAMABILE I MICROPROGRAMARE

atunci, valoarea tensiunii obinute la ieirea convertorului va fi:

Vout =

Ir Ra
Vref
N= b N,
b
2
2

(3-16)

care corespunde ecuaiei de funcionare a unui convertor numeric analogic.


Condiionarea semnalelor
Condiionarea semnalelor n cazul interfeelor pentru ieiri analogice are
rolul de a adapta parametrii electrici ai semnalului generat de convertorul numericanalogic la cei ai semnalului unificat utilizat de interfa.
Cazul interfeelor cu semnal unificat de tensiune:
Dac interfaa genereaz semnal unificat de tensiune, structura circuitului
de condiionare a semnalului depinde de relaia dintre domeniul de variaie a
tensiunii generate de convertor 0 KVref i cel al semnalului unificat 0 KVm
respectiv Vm KVm .
De exemplu, dac tensiunea de referin a convertorului este Vref = 5V iar
domeniul de variaie al semnalului unificat este 0 K10V , atunci circuitul de
condiionare a semnalului poate fi urmtorul:
De la convertorul
numeric-analogic
Ui [0...5V]

Ieire semnal
unficat
Uo [0...10V]
R

Figura 3.21: Exemplu de circuit de condiionare a semnalului (variant unipolar)

Circuitul prezentat este un amplificator neinversor avnd factorul de


amplificare egal cu 2 (raportul dintre Vm i Vref ).
Dac semnalul unificat este de tip bipolar cu gama 10K10V , atunci
circuitul de condiionare a semnalului poate fi urmtorul:
De la convertorul
numeric-analogic
Ui [0...5V]

R3=R

Ieire semnal
unficat
Uo [0...10V]
R2=2R

Vref
R1=2R

Figura 3.22: Exemplu de circuit de condiionare a semnalului (variant bipolar)

Dispozitive periferice

77

Circuitul prezentat ofer la ieire o tensiune:

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)

ceea ce conduce la o valoare de -10 V pentru o tensiune de intrare de 0 V respectiv


10 V pentru o tensiune de intrare de 5 V.
Cazul interfeelor cu semnal unificat de tensiune:
n acest caz, circuitul de condiionare a semnalului este un convertor
tensiune-curent care genereaz la ieire un curent n gama 4K 20mA .
Varianta de circuit prezentat n figura urmtoare genereaz curent ntr-un
consumator (element de acionare) conectat ntre ieirea circuitului i mas:
Va
De la convertorul
numeric-analogic
Ui [0...5V]

R1
T

R2+R0

R1

R0
R2

Element de
acionare

Rs

Ieire semnal
unficat
Io [4...20mA]

Figura 3.23: Circuit de condiionare a semnalului pentru ieire n curent

Curentul furnizat la ieire de acest circuit nu depinde de rezistena intern a


elementului de acionare Rs ieste:

Io = Ui

R2
,
R1 R0

(3-19)

Dac se dorete obinerea semnalului unificat de curent n gama 4K 20mA


avnd un convertor digital-analogic cu o tensiune la ieire ntre 0 K 5V se pot alege
urmtoarele valori pentru rezistene:
R1 = R , R 2 = R , R0 = 250

AUTOMATE PROGRAMABILE I MICROPROGRAMARE

78

Cu aceste valori se obine un curent de 0 mA pentru o tensiune de intrare


de 0 V respectiv 20 mA pentru o tensiune de intrare de 5 V.
Se observ c domeniul de cureni disponibil la ieire este mai larg dect
cel al semnalului unificat. n acest caz, pentru obinerea domeniului 4K 20mA se
va utiliza doar o parte din gama de ieire a convertorului i anume 1K 5V .
Tranzistorul conectat la ieirea amplificatorului operaional are rolul de a
reduce necesarul de curent la iesirea acestuia.

Interfee pentru intrri digitale


Interfeele pentru intrri digitale snt utilizate pentru citirea senzorilor care
ofer informaii de tip binar. Rolul acestor interfee este acela de a determina starea
logic a semnalului primit de la senzor i de a transmite aceast stare ctre o
conexiune de intrare a unui port.
Deoarece senzorii de acest tip snt instalai de obicei n medii puternic
perturbate electromagnetic dar i din motive de securitate electric, interfeele
pentru intrri digitale realizeaz i o izolare galvanic ntre semnalul de intrare i
circuitele automatului programabil.
Interfa universal pentru intrri digitale cu izolare galvanic
Un exemplu de interfa pentru o intrare digital care funcioneaz att cu
semnale de intrare de curent continuu dar i de curent alternativ este prezentat n
figura urmtoare:
VDD

R=10K

Ctre o intrare
a unui port

R2

Semnal digital
de la senzor (Ui)

R1

Comparator
cu histerezis

Figura 3.24: Interfa universal pentru o intrare digital cu izolare galvanic

Elementul principal al acestei intefee este un optocuplor de curent


alternativ. Optocuplorul este un circuit format dintr-o surs de radiaie infraroie
(diod LED) i un element fotosensibil (fototranzistor).
Optocuplorul de curent alternativ utilizeaz ca surs de radiaie o pereche
de dou diode LED cu emisie n infrarou montate n antiparalel. n acest mod,
indiferent de sensul curentului una dintre diode va emite.

Dispozitive periferice

79

Diodele optocuplorului snt alimentate din tensiunea generat de senzor


prin intermediul unui circuit format din rezistenele R1 i R 2 . Rezistena R 2 are
rolul de a limita curentul prin diode iar R1 introduce un prag minim de tensiune la
intrare peste care diodele ncep s emit.
Curentul prin diode I LED i tensiunea de prag la intrare VPRAG snt:

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

Figura 3.25: Principiul de funcionare al unui comparator cu histerezis

80

AUTOMATE PROGRAMABILE I MICROPROGRAMARE

Comparatorul aduce ieirea n starea logic 1 n momentul n care


tensiunea de la intrare depete o valoare de prag Vp + . Modificarea ieirii napoi
n starea logic 0 se realizeaz doar dac tensiunea de la intrare scade sub
valoarea de prag Vp (unde Vp < Vp + ). n acest mod, oscilaii ale tensiunii de
intrare cu amplitudinea mai mic dect (Vp + ) (Vp ) nu vor conduce la oscilaii ale
strii logice la ieire.
Utilizarea comparatorului cu histerezis elimin incertitudinea n detectarea
strii logice a semnalului generat de optocuplor i crete imunitatea circuitului la
variaiile tensiunii primite de la senzor.

Interfee pentru ieiri digitale


Interfeele pentru ieiri digitale snt utilizate pentru pornirea sau oprirea
elementelor de acionare. Rolul acestor interfee este acela de a alimenta seciunile
de comand ale elementelor de acionare cu semnale standard de curent continuu
sau alternativ.
Suplimentar, din motive similare celor ntlnite n cazul intrrilor digitale,
este necesar izolarea galvanic ntre circuitele automatului programabil i
semnalul de ieire.
n funcie de dispozitivul de comutaie utilizat, interfeele pentru ieiri
digitale se pot realiza n dou variante i anume:
interfee cu ieire pe releu electromagnetic;
interfee cu ieire pe releu static (cu semiconductori).
Interfee cu ieire pe releu electromagnetic
Acest tip de interfee a fost utilizat pe scar larg n automatele
programabile din primele generaii datorit simplitii constructive i unui grad
relativ ridicat de robustee.
n cazul n care elementul de acionare are un consum de energie electric
redus (curenul i puterea comutat mai mici de 1 A respectiv 10 VA) se pot utiliza
relee electromagnetice cu contacte de tip reed. Aceste relee necesit puteri foarte
reduse de acionare (zeci de mW) ceea ce simplific extrem de mult interfaa.
Un exemplu de interfa cu ieire de tip releu reed este prezentat n figura
urmtoare:
VDD

Releu de
tip reed
Contacte de comand
element de acionare

Port de
ieire

Figura 3.26: Interfa cu ieire pe releu de tip reed

Dispozitive periferice

81

Se observ conectarea direct a bobinei releului la conexiunea portului de


ieire. Acest lucru este posibil deoarece tensiunea de alimentare a bobinei
majoritii releelor de tip reed este de 5 V (compatibil cu nivelele de tensiune ale
semnalelor logice) iar curentul necesar acionrii acesteia este redus (sub 20 mA).
Dioda D conectat n antiparalel cu bobina releului are rol de protecie a
portului mpotriva tensiunilor ridicate care pot apare la ntreruperea alimentrii
releului datorit fenomenului de autoinducie.
Dei releele de tip reed nu pot comanda consumatori cu puteri mari,
aceast variant de implementare este frecvent utilizat deoarece este extrem de
simpl iar contactele releelor reed au o durat de funcionare ridicat (peste 50
milioane de acionri).
n cazul n care se dorete alimentarea din interfaa de ieiri digitale a unor
elemente de acionare care necesit semnale de comand cu puteri mai mari se va
utiliza un releu de putere mai mare. Acest releu poate fi alimentat de circuitul de
interfa realizat cu releu de tip reed sau se poate realiza o interfa care s
acioneze direct releul de putere (Figura 3.27):
Releu de
putere

Va

Port de
ieire

1K10K

Contacte de comand
element de acionare

T
10K

Figura 3.27: Interfa cu ieire pe releu de putere

n acest caz se utilizeaz un circuit amplificator de curent realizat cu un


tranzistor de mic putere care este capabil s acioneze relee de putere care necesit
cureni n bobin de pn la 1 A. Tensiunea de alimentare a bobinei releului nu mai
este de 5 V i necesit o surs de alimentare suplimentar ( Va ) avnd tensiunea de
12 sau 24 V.
Interfeele pentru ieiri digitale realizate cu relee electromagnetice prezint
dezavantajul uzurii contactelor dup un anumit numr de acionri. Numrul
maxim de acionri nainte ca uzura contactelor s deterioreze releul depinde de
valorile curenilor i tensiunilor comutate precum i de natura consumatorului
alimentat (consumatorii de tip inductiv genereaz scntei la decuplarea contactelor
datorit fenomenului de autoinducie i determin o uzur mai rapid a
contactelor).
Deasmenea, contactele releelor electromagnetice pot emite perturbaii
electromagnetice n momentul comutrilor ceea ce poate afecta buna funcionare a
circuitelor electronice aflate n vecintatea acestora.

AUTOMATE PROGRAMABILE I MICROPROGRAMARE

82

Interfee cu ieire pe releu static


Soluia problemelor specifice releelor electromagnetice se poate rezolva
prin utilizarea releelor statice realizate cu dispozitive semiconductoare. Acest tip
de releu este utilizat din ce n ce mai frecvent n automatele programabile actuale
nlocuind releele electomagnetice.
Avantajele acestor relee statice snt absena contactelor mecanice ceea ce
ofer practic o durat de funcionare nelimitat. Deasemenea releele statice emit
perturbaii electromagnetice mult mai reduse dect cele electromagnetice fiind
astfel compatibile cu standardele actuale de compatibilitate electromagnetic.
Interfeele pentru ieiri digitale realizate cu relee statice ofer izolare
galvanic ntre circuitele automatului programabil i elementele de acionare
comandate.
Releu static cu fototranzistor de tip darlington:
Cea mai simpl variant de implementare a unei interfee pentru ieiri
digitale utilizeaz un releu static cu fototranzistor de tip darlington (Figura 3.28):
VDD

Releu static cu
fototranzistor de
tip darlington
Port de
ieire

contacte de comand
element de acionare

Figura 3.28: Interfa pentru ieiri digitale cu fototranzistor de tip darlington

Releul static este format dintr-o diod LED cu emisie n infrarou i o


configuraie de tip darlington compus dintr-un fototranzistor care comand un
tranzistor de putere.
Dioda LED este conectat printr-o rezisten de limitare a curentului R
direct la conexiunea portului de ieire i la tensiunea de alimentare logic VDD .
Dac portul se afl n 1 logic, dioda LED nu este alimentat i nu emite
radiaie. n acest caz, fototranzistorul i tranzistorul de putere snt blocate iar
elementul de acionare nu este alimentat.
Dac portul se afl n 0 logic, dioda LED este alimentat i emite
radiaie. n acest caz, fototranzistorul i tranzistorul de putere snt n stare de
conducie iar elementul de acionare este alimentat.
Acest tip de releu static este foarte simplu dar prezint cteva dezavantaje
dintre care cele mai importante snt:
nu poate fi utilizat dect n curent continuu;
configuraia de tip darlington prezint o tensiune de saturaie relativ
ridicat (11.5 V) ceea ce conduce la pierderi nsemnate de energie
electric disipat sub form de cldur pe tranzistorul de putere.

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

Figura 3.29: Interfa pentru ieiri digitale cu releu fotovoltaic

Releul fotovoltaic este format dintr-o diod LED cu emisie n infrarou i


un ansamblu format din doi tranzistori MOS activai de minicelule fotovoltaice
( T 1 , T 2 ) i dou diode ( D1 , D 2 ). Modalitatea de conectare a fototranzistoarelor i
a diodelor permite utilizarea circuitului i n curent alternativ.
Principiul de funcionare al releului fotovoltaic este urmtorul:
Dac LED-ul este stins, ambii tranzistori snt blocai iar circuitul de ieire
se comport ca un contact deschis (cele dou diode montate n antiserie
blocheaz trecerea curentului);
n cazul n care LED-ul este aprins, ambii tranzistori sint in stare de
conducie. n funcie de polaritatea tensiunii aplicate la ieire, curentul va
trece printr-unul dintre tranzistori i apoi prin dioda montat n paralel cu
cellalt ( T 1 cu D 2 sau T 2 cu D1 ) iar circuitul de ieire se comport ca
un contact nchis.
LED-ul este conectat la portul de ieire prin intermediul unei rezistene de
limitare a curentului. Modul de conexiune utilizat asigur aprinderea LED-ului
(nchiderea contactului releului fotovoltaic) pentru starea logic 0 a ieirii
portului.
Releele fotovoltaice snt capabile s comande elemente de acionare cu
consum redus de energie (maximum 3 A la releele de cu tensiune de funcionare de
60 V respectiv maxim 0.20.5 A la releele care pot funciona la tensiuni de pn
la 400 V).

AUTOMATE PROGRAMABILE I MICROPROGRAMARE

84

Relee statice de curent alternativ:


Acest tip de releu este destinat comenzii elementelor de acionare de putere
medie i mare alimentate n curent alternativ. Releele statice de curent alternativ
pot comuta cureni de maxim 100 A i tensiuni de pn la 1200 V ceea ce permite
comanda direct a unor elemente de acionare de mare putere de tipul rezistenelor
pentru nclzire sau motoarelor electrice.
Structura unei interfee pentru ieiri digitale realizat cu releu de curent
alternativ este prezentat n figura urmtoare:
Releu static de curent alternativ
R
VDD
Comand element
de acionare
De la portul
de ieire

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.

You might also like