Sunteți pe pagina 1din 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 WDC

Surs de alimentare

Tensiuni de alimentare

Oscilator de ceas

Fosc

Procesor Controlor de ntreruperi


IRQ IACK

Memorie de program

Memorie de date

Memorie nevolatil

Magistrala sistemului
Afiaj

Interfee de proces Interfee operator

Timere Interfee de comunicaie

Tastatur

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:
Domeniul de adresare al procesorului
4095

Dispozitiv periferic
15 Adrese locale Adrese locale Adrese locale

30723087 Adrese procesor

Locaiile dispozitivului periferic

1 0

Circuit de memorie #2
2048 2047 1023

Locaiile circuitului de memorie #2 Locaiile circuitului de memorie #1

1024 1023

1 0

Circuit de memorie #1
1023

= locaii neutilizate

1 0

Figura 1.2: Exemplu de mapare a adreselor locale

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 ,
unde: N este numrul maxim de locaii adresabile de procesor; na este numrul de conexiuni ale magistralei de adrese.

(1-1)

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
Date

Decodificator de adrese
Adrese Magistral de adrese Magistral de date Selec ie CS

Dispozitiv periferic

Adrese

RD WR

RD WR Date

IRQ

IACK

Controlor de ntreruperi
Cereri de ntreruperi

Adrese

Cereri de ntreruperi

Decodificator de adrese
Adrese Selec ie CS

Circuit de memorie

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 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 fix (Nf bii)

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 informa iilor 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 CSx RD Magistrala de date Valoarea loca iei Adresa 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 CSx WR Magistrala de date Noua valoare a locaiei Adresa 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

Stare logic 1
Nivele de tensiune 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 frecven e 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 Interfeele de comunicaie specifice automatelor programabile snt: interfee de comunicaie serial asincron (UART); interfee seriale sincrone (SPI, I2C); interfee de tip CAN;

17

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 interfe e 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 interfe elor 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 intefe e 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 n figura urmtoare este prezentat arhitectura general a unui procesor:
Regitrii generali R0 Operand A Operand B

23

Set de regitrii

R1

Indicatori de condiii
Rn Indicator de stiv SP

UAL
Rezultat

Unitate de acces la memoria de date

Memoria de date

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: Cod operaie

Instruciuni cu un singur operand:

Cod operaie

Localizare operand 1 [destinaie rezultat]

Instruciuni cu doi operanzi:

Cod operaie

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.

28

AUTOMATE PROGRAMABILE I MICROPROGRAMARE

Un exemplu de arbore de codificare care genereaz un set de 9 coduri este prezentat n figura urmtoare:
0 1 Generarea codurilor C1 00 C2 01 C3 100 C4 101 C5 110

C6 11100

C7 11101

C8 11110

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

R15,R10>
10 = numrul celui de-al doilea registru (5 bii) Adresare direct registru Adresare direct registru

Set de regitrii
R0 R1

15 = numrul primului registru (5 bii)

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

Cod instruciune <lds


Cod operaie <lds> (9 bii)

R10,750>
750 = numrul locaiei din memoria de date (16 bii) Adresare direct memorie de date

Memorie de date
Locaia 0 Locaia 1

10 = numrul registrului (5 bii)

R10

Adresare direct registru

Locaia 750

R31

Ultima locaie

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

30

AUTOMATE PROGRAMABILE I MICROPROGRAMARE

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

Cod instruciune <ldi


Cod operaie <ldi> (4 bii)

R16,200>
200 = valoarea celui de-al doilea operand (8 bii)

0 = numrul registrului 16 (4 bi i)

R10

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

Cod instruciune <ld


Cod operaie <ld> (9 bii)

R10,X>
10 = numrul registrului (5 bii) 0 = numrul corespunztor registrului de adres X (2 bii)

R10

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.

32

AUTOMATE PROGRAMABILE I MICROPROGRAMARE

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

Cod instruciune <ldd

R10,Y+25>
0 = num rul 25 = constant corespunztor registrului numeric index de adres Y (1 bit) (6 bii)

Cod operaie <ld> 10 = num rul registrului (4 bii) (5 bii) Adresare direct registru

R10

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 R Q

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 S Q Q

0 0 1 1

0 1 0 1

nu este permis 0 1
Q

1 0
Q

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 DI WE DO RE DI WE DO RE DI WE DO

Selector de locaii

WE1 RE1 RE DI WE DO RE DI WE DO RE DI WE DO

Adrese

WEn REn RE RD WR DI WE DO RE DI WE DO RE DI WE 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 rezisten ei 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 0 Col 1 Col N

Lin 0

Lin 1

Lin N

Control
RD WR

Mod 0

Mod 1

Mod N

Cmp Din RW 0 WE D RW 1 WE

Cmp

Cmp

RW N D WE D

Cm 0 Q

Cm 1 Q

Cm N Q

Dout

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.

Adres de coloan

Decodificator linii

Adres de linie

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 intr rile 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 frecven ei. 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 dependen a acestora de temperatur. Se recomand utilizarea acestui tip de oscilator numai n aplicaiile care nu depind de precizia de msurare a timpului i care nu necesit generarea unor evenimente sau semnale cu precizie n timp. Oscilatoarele stabilizate cu cristal de cuar de frecven ridicat Snt realizate cu ajutorul unui amplificator prevzut cu un circuit de reacie care include n structura sa un cristal de cuar. Rezonana mecanic a cristalului modific impedana acestuia astfel nct condiia de oscilaie se obine doar pentru frecvena de rezonan. Precizia de realizare a cristalelor de cuar precum i dependena redus de temperatur a parametrilor de rezonan ofer acestui tip de oscilator o foarte bun precizie i stabilitate a frecvenei generate. Frecvena generat de acest tip de oscilator este de ordinul megaherzilor fiind determinat de cristalul utilizat. Din acest motiv, proiectantul sistemului are posibilitatea de a selecta orice frecven din setul de valori disponibile. Oscilatoarele stabilizate cu cristal de cuar de frecven redus Din punct de vedere constructiv snt similare celor care utilizeaz cristele de frecven ridicat. Diferena este dat de tipul cristalului de cuar utilizat (cristal de tip ceas) care are n acest caz frecvena de rezonan de 32768 Hz. Frecvena redus generat de acest tip de oscilator conduce la un consum foarte mic de energie electric (de ordinul 10 -8 ... 10 -6 W), dar i la o vitez foarte redus de calcul. Acest tip de oscilator este recomandat ca surs secundar de semnal de ceas utilizat n perioadele de timp n care procesorul nu este solicitat i se dorete reducerea consumului de energie electric (de exemplu n cazul echipamentelor portabile alimentate din baterii sau acumulatori). Deoarece setul de frecvene disponibile pentru cristalele de cuar este relativ redus iar frecvena maxim generat de acestea este limitat la aproximativ 24 Mhz, generarea ceasului sistem poate fi realizat cu ajutorul unui circuit de tip PLL (Phase-Locked Loop).

46

AUTOMATE PROGRAMABILE I MICROPROGRAMARE 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 frecven ei 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; dep ire 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).

48

AUTOMATE PROGRAMABILE I MICROPROGRAMARE

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 activ inactiv

TBOR 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 10K 100nF

Buton RESET

1K RESET

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):
Execuie instruciune CLRWDT Execuie instruciune CLRWDT t inactiv T < Tw T = Tw activ inactiv

Rearmare ceas de gard WDT_RESET

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.

50

AUTOMATE PROGRAMABILE I MICROPROGRAMARE

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 IACK

Procesor

INT n

Figura 2.20: Conectarea controlorului de ntreruperi la procesor

Controlorul

de ntreruperi

monitorizeaz n permanen

intr rile

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) Cereri ntrerupere (prioritate asociat) IRQ Vector ntrerupere IACK Stiv prioriti max 1 max 0 1 max 1 max 2 max Vector B Vector A Vector C A (0) C (2)

Execu ie procesor

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.

54

AUTOMATE PROGRAMABILE I MICROPROGRAMARE

Structura general a unui port configurabil de intrare/ieire este prezentat n figura urmtoare:
PIN PIN 0 PIN 1 VDD Tp Th

Unitate de interfa cu procesorul

Rp PIN k Conexiune port

PIN 7 RD RD Sel_PIN PORT PORT 0 PORT 1 Magistral de date Sel

Comparator cu histerezis

Tl

PORT k

PORT 7 WR Sel

Circuit driver

WR Sel_PORT DDR DDR 0 DDR 1

Circuitul de control pentru conxiunea k

DDR k

DDR 7 WR WR Sel_DDR Sel

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.

56

AUTOMATE PROGRAMABILE I MICROPROGRAMARE

Modul de comand al acestor trei tranzistoare este prezentat n tabelul urmtor:


Tabelul 3.1 Funcionarea circuitului driver

DDR k 0 0 1 1

PORT k 0 1 0 1

Th blocat blocat blocat n conducie

Tl bloca blocat n conducie blocat

Efect Intrare fr rezisten de blocat polarizare conectat n Intrare cu rezisten de conducie polarizare conectat Tp blocat blocat Ieire n stare logic 0 Ieire n stare logic 1

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 rezisten ei 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

Num rtor pe n bii (TCNT)

Reset

Baz de timp
INT_OVF

Selec ie divizor de frecven (P)

Comparator

Registru limit (LIM)

ICP

Control captur

Unitate de captur
INT_ICP

Control sintez
INT_OC

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 frecven ei 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 Valoare limit n (LIM sau 2 ) Num rtor Registru OCR

t Reset 1

0 Egalitate 1

0 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 comunica ie
Interfeele de comunicaie snt utilizate pentru conectarea automatelor programable cu alte echipamente de control sau pentru realizarea unor re ele 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 interfe ele 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
Date TXD RXD GND Date TXD RXD GND

Echipament 2

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 1 (mark) 0 (space) Tb Tb Tb Tb Tb transfer caracter transfer caracter linie inactiv

Bit de START

Bii de date

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.

62

AUTOMATE PROGRAMABILE I MICROPROGRAMARE

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 1 0 7 Te 8 Te Stare inactiv 9 Te 15 Te 16 Te 96 Te 16 Te Stare inactiv Citire valoare Bit 0 Citire valoare Bit 1 Citire valoare Bit 7 Verificare bit de STOP

Bit 0

Bit 1

Bit 7

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, interfe ele 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

Stare logic 0: Stare logic 1: Stare logic 0: Stare logic 1: 15 metri 115200 bit/sec. (maxim 19200 bit/sec. la 15 metri)

Valoare +5+15V 515V +3+25V 325V

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 re ea 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.

64

AUTOMATE PROGRAMABILE I MICROPROGRAMARE

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

Driver RS-485

Driver RS-485

RXD

TXD

TXE

RXD

TXD

TXE

RXD

TXD

TXE

Interfa serial asincron (echipament 1)

Interfa serial asincron (echipament 2)

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: interfe e pentru intrri analogice; interfe e pentru ieiri analogice; interfe e pentru intrri digitale; interfe e pentru ieiri digitale.

Interfee pentru intr ri analogice


Interfeele pentru intr ri 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 Condiionare de semnal 2

Traductor 2

Multiplexor analogic

Convertor analog-numeric (CAN)

Valoare m surat (N)

Traductor n

Condiionare de semnal n

Figura 3.8: Structura unei interfee pentru intrri analogice

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] Valoare m surat (N)

Convertor analog-numeric

START

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 cerin ele 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

START STARE Valoare m surat

Vout

Convertor numeric-analogic

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.

68

AUTOMATE PROGRAMABILE I MICROPROGRAMARE Principiul algoritmului de conversie este exemplificat n Figura 3.11:
U, Vout Vref=10 V

7.5 V 6.25 V 5V Vout

Ui=7 V

0V C 1 ( UiVref ) 0 ( Ui<Vref ) 1 ( UiVref )

10 0 =(4) test

1 00 =(4) compensare

1 10 =(6) test

1 00 =(4) compensare

1 01 =(5) test

101 =(5) compensare

Pasul 1 (bitul 2)

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) Intrare 1 (Ui 1) Amplificator separator

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 diferen e 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 UiUi+ Ui-

Circuit de intrare diferenial

Uo

Uo=Ui

Potenial 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 ) ,
2

(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:
R1=R R2=9R Ui+ U+

Amplificator de instrumentaie

A=10
R2=9R UiR1=R U-

Uo

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

72

AUTOMATE PROGRAMABILE I MICROPROGRAMARE

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 frecven e 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 0.8 Amplificare 0.6 0.4 0.2 0 10
-1

Filtru ideal Filtru real (ordinul 1) Filtru real (ordinul 2)

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 Intrare C Ieire Intrare C R R Ieire

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)

74

AUTOMATE PROGRAMABILE I MICROPROGRAMARE

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 R R 2R Vout

2R

2R

2R

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)

A
Ir

B Este echivalent cu:


Ir Bk

Ik-1

Ik-1

2R

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 re elei 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] R Ieire semnal unficat Uo [0...10V]

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] Ieire semnal unficat Uo [0...10V] R2=2R

R3=R Vref

R1=2R

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

Dispozitive periferice Circuitul prezentat ofer la ieire o tensiune:

77

R1 R 2 + R 2 R 3 R2 Uo = Ui Vref , 1 + R1 R3 R3
Alegnd:
R1 = 2 R , R 2 = 2 R , R3 = R

(3-17)

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 4 K 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 R2

R0

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 4 K 20mA avnd un convertor digital-analogic cu o tensiune la ieire ntre 0 K 5V se pot alege urmtoarele valori pentru rezisten e: R1 = R , R 2 = R , R0 = 250

78

AUTOMATE PROGRAMABILE I MICROPROGRAMARE

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 4 K 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 intr ri 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 R2

Ctre o intrare a unui port Comparator cu histerezis

Semnal digital de la senzor (Ui)

R1

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 R1 + R2 R1

(3-20)

VPRAG = VLED

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

D 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):
Va

Releu de putere
Contacte de comand element de acionare

Port de ieire

1K10K

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.

82

AUTOMATE PROGRAMABILE I MICROPROGRAMARE

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


R

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 Releu fotovoltaic:

83

Acest tip de releu static poate fi utilizat att n curent continuu ct i n curent alternativ. Acest tip de releu static a ap rut 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).

84

AUTOMATE PROGRAMABILE I MICROPROGRAMARE

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 interfe e 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 ac ionat 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.

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