71
SISTEME INCORPORATE Curs

Sisteme Incorporate

Embed Size (px)

DESCRIPTION

Sisteme Incorporate

Citation preview

Page 1: Sisteme Incorporate

SISTEME INCORPORATE Curs

Page 2: Sisteme Incorporate

Sisteme Incorporate

______________________________________________________________________________________

2

1. Notiuni Introductive

Sistemele incorporate sunt sisteme de calcul care sunt parti componente a unor

dizpozitive speciale. Functie de caracteristicile in ansamblu a echipamentului sistemele

incorporate au un inalt grad de optimizare funtie de particularitatile ansamblului in care

sunt integrate. In mod traditional sistemele incorporate sunt utilizate in cadrul sistemelor

de masura si control al proceselor. Ca efect al marii dezvoltari ale circuitelor integrate in

momentul de fata conducerea a numeroase aplicatii complexe isi gasesc solutiile (pot fi

rezolvate) prin utilizarea sistemelor incorporate. Pentru a fi capabile sa sustina rezolvarea

problemelor de conducere sistemele incorporate sunt echipate cu diferite tipuri de cicuite.

1.1. Definirea Sistemelor Incorporate

Sistemele incorporate (SI) sunt sisteme informatice de prelucrare a datelor

incorporate in cadrul unui produs (echipament).

Utilizarea sistemelor incorporate tine in acest moment numai de imaginatia

proiectantului. Astfel, sistemele incorporate se regasesc in majoritatea echipamentelor

electrocasnice (masini de spalat automate, cuptoare cu microunde, sisteme audio-video

etc.), in echipamentele de telecomunicatie (telefoane mobile), in echipamente de

conducere industriale (roboti, CNC-uri) precum si in domenii de inalta tehnologie

(industria aerospatiala – robotii Minuteman I & II, industria auto – calculatoarele de

bord).

Structura de baza a unui SI este prezentata in figura 1.1.

Figura 1.1. Structura principiala a unui SI

Dupa cum se observa SI, sunt sisteme inchise in care SI propriu-zis

interactioneaza cu exteriorul prin intermediul sensorilor si a alementelor de ececutie

punand la dispozitie si interfete utilizator.

Page 3: Sisteme Incorporate

Sisteme Incorporate

______________________________________________________________________________________

3

1.2. Exemple de SI

SI utilizat in controlul unui autovehicul

In acest caz rolul SI este acela de a controla si monitoriza diversele elemente

componente ale autovehiculului cum ar fi: sistemul de franare – ABS, functionarea

motorului, a cutiei de viteze, a sistemului de climatizare etc. De asemenea asigura

vizualizarea informatiilor si poate primii din partea utilizatorului diferite comenzi.

SI utilizate in aparatura electocasnica

In cazul acestor tipuri de echipamente SI are rolul ca pe baza informatiilor

transmise de utilizator sa ececute o anumita secventa de lucru (de ex. in cazul masinii de

spalat – stoarcere).

Page 4: Sisteme Incorporate

Sisteme Incorporate

______________________________________________________________________________________

4

SI utilizate in aplicatii industriale

SI au rolul de a asigura executia anumitor faze carateristice sistemului de

productie in care este integrat

SI utilizate in telecomunicatii

SI utilizate in cadrul acestor sisteme pot fi telefoanele mobile, sistemele de

comunicatie wierless etc.

Page 5: Sisteme Incorporate

Sisteme Incorporate

______________________________________________________________________________________

5

1.3. Caracteristicile SI

Datorita cerintelor functionale ale SI acestea au anumite caracteristici particulare.

Astfel, SI trebuie sa fie:

1. Demne de incredere in:

• Siguranta – R(t) reprezinta probabilitatea sistemului de a lucra corect la

momentul t cu conditia ca acesta a lucrat la momentul t=0;

• Sustinere – M(d) reprezinta probabilitatea sistemului de a lucra corect d

unitati de timp dupa aparitia unei erori in functionare;

• Disponibilitate – probabilitatea sistemului de a lucra la momentul t;

• Protectie – in timpul functionarii nu se poate intampla nici o stricaciune;

• Securitate – asigurarea confidentialitatii si autentificarii in cazul

comunicatilor.

2. Eficiente din punct de vedere al:

• Consumului de energie;

• Dimensiunii programului de conducere (codul executatil);

• Operarii in timp-real;

• Al greutatii;

• Al costului de productie.

3. Dedicate spre o aplicatie concreta: cunoasterea comportamentului procesului

in momentul proiectarii poate fi utilizat pentru minimizarea resurselor

respectiv maximizarea robustetii SI.

4. Echipate cu interfete specializate cu utilizatorul (tastaturi si displayuri, fara

mouse etc.).

5. Incadrate in restrictiile de timp-real impuse

• Un sistem de timp-real trebuie sa reactioneze la stimulii proveniti de la

sistemul controlat (sau de la operator) in interiorul intervalul dictat de

mediu in care isi desfasoara activitatea

• Pentru sistemele de timp-real, raspunsul corect generat prea tarziu sau prea

devreme este gresit.

O comparatie intre SI si calculatoarele de uz general este prezentata in tabelul 1.

Tabelul 1. Compartatie intre SI si calculatoarele de uz general

Sisteme Incorporate Calculatoare de uz general

• Dedicate aplicatiilor concrete • Extins pentru o clasa de aplicatii

• Neprogramabile la nivel end-user • Programabile prin end-user

• Timp de executie a aplicatiilor bine stabilit • Cu cat mai rapid cu atat mai bine

• Criterii: pret, putere consumata,

predictibilitate

• Criterii: pret, viteza de lucru

Page 6: Sisteme Incorporate

Sisteme Incorporate

______________________________________________________________________________________

6

1.4. Arhitectura tipica a unui SI

In figura 1.2 este prezentata arhitectura tipica a unui SI.

Figura 1.2. Arhitectura tipica a unui SI

Arhitectura tipica a unui SI este construita pornind de la cerintele de baza ale unui

SI. Astfel, un SI contine:

• Microprocesoare/Microcontrolere – reprezinta unitatea centrala a sistemului,

modelul ales pentru implementare depinzand de cerintele impuse sistemului. De

exemplu: in cazul unui SI care necesita putere de calcul foarte mare se utilizeaza

un microprocesor (standardul pentru SI care utilizeaza microprocesoare este PC-

104 si va fi prezentat ulterior); in cazul sistemelor care nu necesita conditii

speciale ca putere de calcul sau viteza mare de operare se vor utiliza

microcontrolere iar in cazul sistemelor care trebuie sa opereze cu viteza mare

(prelucrari de semnale in timp real) se vor utiliza DSP-uri. Functie de unitatea

centrala aleasa sunt necesare sau nu utilizarea de circuite perifece specializate,

memorii cache sau alte elemente specifice.

• Software-ul – reprezentat prin: programele aplicatei (cod aplicatie), drivere

corespunzatoare care pot fi implementate de proiectant (cod) sau se afla in BIOS-

ul sistemului, sistemul de operare in timp-real selectat (in cazul utilizarii lui PC-

104), interfete utilizator, protocoalele de comunicatie etc.

• Blocul de memorie nevolatila – implementat cu circuite de tip EPROM,

EEPROM, FLASH, hard-discuri etc, care contin software-ul aplicatie.

• Blocul de memorie volatila – implementat cu circuite de tip DRAM, SRAM etc.,

care vor fi utilizate pentru stocarea datelor.

Page 7: Sisteme Incorporate

Sisteme Incorporate

______________________________________________________________________________________

7

• Sistemele de generare a tactului (clock) – avand rolul de a genera semnalele de

tact corespunzatoare functionarii sistemului pe de o parte, iar pe de alta parte cu

rol de gestiune a timpului. Aceste sisteme pot fi implementate cu circuite RTC,

circuite specializate de generare a tactului sau alte sisteme integrate.

• Circuite specifice – sunt circuite de tip ASIC, FPGA sau PAL cu ajutorul carora

se implementeaza anumite functii specifice ale sistemului (de ex. decodificatoare,

codificatoare, multiplexoare, logica combinationala etc.).

• Circuite standard – sunt utilizate pentru implementarea porturilor de intrare/iesire

(de ex. PIO i8255) sau pentru implementarea periferiilor corespunzatoare (de ex.

implementarea sistemelor de intreruperi bazate pe circuitul controler de

intreruperi i8259A).

• Circuite pentru comunicatii – specifice conectarii sistemului functie de cerintele

impuse, fie la o retea ethernet (de ex. controlerul de ethernet xxxxx), fie la un

sistem de comunicatii RS-232 (de ex. i8251 impreuna cu circuitele driver

corespunzatoare de ex. MAX232), fie la o interfata Centronix etc;

• Magistrala de I/O – prin intermediul acesteia asigurandu-se conectarea cu

exteriorul SI considerat (de ex: conectarea cu un panou de afisaj realizat cu LED-

uri);

• Port de depanare – acesta asigurand conectarea sistemului cu un sistem de calcul

cu ajutorul caruia se pot efectua teste ale diferitelor subsisteme.

• Magistrale – reprezinta optiuni ale proiectantului prin care se asigura

compatibilitatea cu magistrale standard (de ex: ISA, PCI, VME etc.)

Din punct de vedere al standardelor impuse structurilor hardware ale SI se disting

doua directii majore functie de tipul unitatii centrale de prelucrare aleasa.

In cazul utilizarii microprocesoarelor standardul impus pentru SI este PC-104,

reglementat prin standardul IEEE-P996.

In cazul utilizarii microcontrolerelor ca unitate centrala a SI nu exista nici un

standard international datorita faptului ca exista o multitudine de firme producatoare

pornind de la microcontrolere de uz general (de ex. familia INTEL MCS51 – 8051, 8031,

80552 etc – sau familia MOTOROLA HC11 – 68HC11) si terminand cu microcontrolere

dedicate produse pentru aplicatii specifice.

Page 8: Sisteme Incorporate

Sisteme Incorporate

______________________________________________________________________________________

8

1.5. Proiectarea SI

In figura 1.3 este prezentata ordinograma corespunzatoare fazelor de proiectare al

unui SI.

CerinteFunctionale

Defalcareahardware/software

Stabilireaplatformeihardware

Blocuri hardware

specifice aplicatiei

Integrarea blocurilorspecifice in platforma

hardware

Integrareamodulelorsoftware

Simularea Functionalitatii

sistemului

hardware

Testare hardware si software pe simulator/emulator

Proiectare

fizica ahardwareului

Dezvoltarea

softwareuluiaplicatie

RealizarePrototip

TestareSoftware

Verificarea HW/SW pe prototip

Fabicatie deSerie

Schemele blocgenerice ale componentei

hardware

Schemele blocgenerice alecomponentei

softwareFormalizareacomportamentala

SelectiePlatformaHardware

SelectieModule

Software

Sistemul de Operare

Module softwarespecificeaplicatiei

HW/SWCo-simulare Simularea de

nivel scazut a softwareului

Figura 1.3. Organigrama procesului de proiectare al unui SI

Page 9: Sisteme Incorporate

Sisteme Incorporate

______________________________________________________________________________________

9

2. Microcontrolere

2.1. Introducere

Evolutia microprocesoarelor, in ultimii ani, a avut loc pe doua directii principale

si anume:

1) realizarea unor procesoare cat mai performante prin marirea lungimii

cuvantului (de ex. 32 de biti), cresterea vitezei de procesare pe baza cresterii

frecventei de tact (la sute si chiar mii de MHz) si prin introducerea unor tehnici de

prelucrare in paralel (pipe-line)

2) realizarea unor procesoare de functionare in timp real, destinate conducerii

proceselor si care, include, intr-un singur chip, toate elementele necesare pentru

controlul rapid al evolutiei procesului condus. Acestea sunt asa numitele

microcontrolere.

Prin urmare un microcontroler este un circuit pe un chip care include:

a) o unitate centrala de prelucrare pe 8,16 sau 32 de biti;

b) un oscilator intern – mai putin cristalul de cuart si condensatoarele;

c) memorie RAM si ROM;

d) un sistem de control al intreruperilor;

e) un sistem de timere programabile;

f) convertoare analog-digitale;

g) un sistem de comunicatie seriala;

h) intreri/iesiri numerice.

Desigur exista si variante de microcontrolere care pot contine sau nu toate

elementele prezentate mai sus. Prezenta resurselor de interfatare, a memoriei interne si a

oscilatorului pe acelasi chip asigura realizarea anumitor aplicatii aproape exclusiv pe

baza microcontrolerului. Reducerea hardware-ului necesar unei anumite aplicatii conduce

la avantaje certe:

- volum mic;

- fiabilitate ridicata;

- consum de energie mic;

- pret de cost redus.

Dintre familiile de microcontrolerele mai cunoscute se amintesc:

- familia INTEL MCS51, 8XC196;

- familia MOTOROLA HC11;

- familia ZILOG Z8 etc.

Trebuie insa facuta precizarea ca pe piata exista o multitudine de familii de

microcontrolere unele de uz general iar unele specializate pentru diferite domenii de

aplicabilitate.

Page 10: Sisteme Incorporate

Sisteme Incorporate

______________________________________________________________________________________

10

2.2. Familia de microcontrolere INTEL MCS51

Una din cele mai raspandite si cunoscute familii de microcontrolere este cea a

firmei INTEL MCS51 care contine o multime de tipuri de microcontrolere ce se

deosebesc intre ele prin:

a) tehnologia de realizare HMOS sau CHMOS;

b) volumul (fara, 4Koct, 8 Koct, 16 Koct) si tipul (ROM, EPROM, OTP ROM)

memoriei nevolatile;

c) volumul memoriei RAM;

d) viteza (frecventa de tact) 12, 16, 20, 24 MHz;

e) numar de pini pentru intrari/iesiri 24, 32, 40, 48, 56;

f) numarul circuitelor de temporizare contorizare 2,3;

g) numarul surselor de intreruperi 5,6,7,10,11,15.

Multimea tipurilor de microcontrolere este la randul ei divizata in mai multe linii

de produse care reunesc acele tipuri ce se deosebesc doar prin volumul si tipul memoriei

incluse (celelalte caracteristici sunt identice la o linie de produse).

In continuare se va prezenta linia de fabricatie 8051 care este elementul cel mai

reprezentativ al familiei MCS51.

2.3. Microcontrolerul 8051

2.3.1. Arhitectura interna

Arhitectura interna a microcontrolerului 8051 este prezentata in schema bloc din

figura 2.1. Principalele caracteristici ale circuitului sunt:

- UCP pe 8 biti optimizata pentru aplicatii de conducere. Include un procesor

boolean care confera capacitati de prelucrare logica (booleana) extinse;

- Spatiu de adrese pentru memoria program de 64 Koct;

- Spatiu de adrese pentru memoria de date 64 Koct;

- Memorie inclusa in chip:

- 4 Koct memorie program (ROM);

- 128 octeti memorie de date (RAM).

- 32 linii intrare/iesire bidirectionale si adresabile individual organizate pe 4

porturi (P0,P1,P2 si P3);

- un sistem de timer/countere bazat pe doua circuite timer pe 16 biti;

- sistem de intreruperi cu 5 surse independente si doua nivele de prioritate;

- unitate seriala care functioneaza in mod duplex de tip UART;

- oscilator si circuit generator de tact incorporat.

Caracteristic pentru familia MCS51 si implicit pentru microcontrolerul 8051 este

separarea completa a memoriei program – MP - si a memoriei de date - MD. Aceasta

configuratie se mai numeste si configuratie HAVARD. Astfel spatiul maxim adresabil

pentru MP este de 64 Koct din care 4 Koct sunt inclusi in chip, iar pentru MD exista un

Page 11: Sisteme Incorporate

Sisteme Incorporate

______________________________________________________________________________________

11

Figura 2.1. Schema bloc a microcontrolerului 8051

spatiul maxim adresabil de 64 Koct externi chip-ului si 128 octeti interni. Pe langa acesti

octeti interni mai exista in interiorul chip-ului un numar de registrii denumiti Registrii cu

Functii Speciale – SFR (Special Function Registers). Acesti registrii sunt:

- acumulatorul pe 8 biti – ACC;

- registrul B – folosit in timpul operatiilor de inmultire si impartire;

- program counter – PC;

- program status word – PSW – registrul PSW contine informatii de stare

(registru de fanioane), iar structura lui este prezentata in figura 2.2;

Page 12: Sisteme Incorporate

Sisteme Incorporate

______________________________________________________________________________________

12

Figura 2.2. Structura si semnificatia bitiilor registrului PSW

- stack pointer – SP – este un registru pe 8 biti, continutul lui fiind incrementat in

timpul executiei instructiilor de depunere in stiva sau de apel a unei subrutine.

Stiva poate fi pozitionata in orice zona a memoriei de date interna iar la

initializarea circuitului in registrul SP se incarca valoare 07h;

- data pointer – DPTR – este impartit in doua registre pe 8 biti DPH – octetul

superior respectiv DPL – octetul inferior. Acest registru este folosit pentru

memorarea adresei pe 16 biti a unei locatii de memorie din memoria de date

externa, dar el poate fi folosit si ca doua registre independente pe 8 biti;

Page 13: Sisteme Incorporate

Sisteme Incorporate

______________________________________________________________________________________

13

- Port 0,1,2,3 – P0, P1, P2, P3 – sunt latchurile corespunzatoare porturilor de

intrare iesire P0, P1, P2 si P3;

- Serial data buffer – SBUF – registru aferent sistemului de comunicatie seriala

care contine doua buffere separate unul pentru emisie si unul pentru receptie.

Cand data este transmisa la SBUF ea este incarcata in bufferul corespunzator

emisiei iar la receptie data este preluata de la SBUF din bufferul de receptie;

- Registrele timer/counter – sunt registre pe 16 biti avand insa si diponibilitatea

de a lucra pe 8 biti. Microcontrolerul 8051 are doua timere T0 si T1 impartite in

TH0 – partea “high” a timerului 0 respectiv TL0 – partea “low” a timerului 0 si

analog pentru T1: TH1 si TL1;

- Registrele de control – IP, IE, TMOD, TCON,SCON si PCON – se refera la

controlul sistemului de intreruperi, a timerelor , a portului serial sia consumului de

putere. Structurile acestor registre precum si functiile lor vor fi prezentate ulterior.

Fiecarui registru descris ii este alocata o adresa in cadrul zonei din memoria

interna rezervata.

Microcontrolerul 8051, la nivel de capsula este prezentat in figura 2.3.

Semnificatiile pinilor sunt:

- /EA-VPP – intrare; cand valoarea logica aplicata la acest pin este “0” logic se

realizeaza validarea memoriei program externe iar memoria program interna este

invalidata si in acest caz intreg spatiul de 64 Koct ai memoriei program este

extern chip-ului. Daca valoarea logica aplicata este “1” logic se valideaza

memoria program interna.

- /PSEN – Program Strobe Enable – iesire “0” activa; reprezinta strobul de

citire din memoria program externa. /PSEN este activ in fiecare ciclu masina de

extragere a codului operatiei din memoria de date externa. /PSEN nu este activat

la accesarea memoriei de date externa el ramanand pe “1” logic.

- ALE-/P – Address Latch Enable – iesire “1” activa; semnal folosit pentru

memorarea octetului mai putin semnificativ al adresei intr-un latch extern, pentru

memorarea adresei locatiei de memorie externa vizata;

- RST – intrare “1” activa; un “1” logic aplicat la acest pin are ca efect

initializarea circuitului;

- Port 0 – este un port de I/O pe 8 biti bidirectionali cu iesirile de tip “open

drain”. In timpul accesarii memoriei externe liniile portului au functii de

magistrala de adrese/date multiplexata in timp. In timpul cat pe linii se gaseste

adresa aceasta constituie partea mai ptuin semnificativa a adresei;

- Port 1 – este un port de I/O pe 8 biti bidirectionali cu iesiri de tip “pullups”.

Liniile portului pot fi folosite ca intrari/iesiri generale;

- Port 2 – este un port de I/O pe 8 biti bidirectionali cu iesiri de tip “pullups”. In

timpul accesarii memoriei externe liniile portului au functii de magistrala de

adrese continand octetul mai semnificativ al adresei;

- Port 3 – este un port de I/O pe 8 biti bidirectionali cu iesiri de tip “pullups”.

Liniile portului servesc ca semnale de control pentru sistemul realizat cu

microcontrolerul 8051.

Page 14: Sisteme Incorporate

Sisteme Incorporate

______________________________________________________________________________________

14

Functiile liniilor sunt:

- P3.0 – RxD – intrarea de date seriala;

- P3.1 – TxD – iesirea de date seriala;

- P3.2 - /INT0 – intrare cerere de intrerupere externa 0;

- P3.3 - /INT1 – intrarea cerere de intrerupere externa 1;

- P3.4 – T0 – intrarea de clock pentru timer/counter –ul T0;

- P3.5 – T1 – intrarea de clock pentru timer/counter-ul T1;

- P3.6 - /WR – semnal de comanda a scrierii in memoria de date externa

“0” activ;

- P3.7 - /RD – semnal de comanda a citirii din memoria de date externa

“0” activ.

- XTAL1, XTAL2 – intrari folosite pentru conectarea cristalului de cuart.

Figura 2.3. Capsula microcontrolerului 8051

2.3.2. Organizarea memoriei in sistemele cu microcontroler 8051

Dupa cum s-a precizat mai sus, caracteristic pentru toate microcontrolerele

familiei MCS51 este ca spatiul de adrese pentru MP este complet separat de spatiul de

adrese aferent MD.

MP are are dimensiunea maxima de 64 Koct. La sisteme cu microcontroler 8051,

4Koct de memorie de la adresele 0000h-0FFFh pot fi chiar cei 4 Koct de memorie ROM

din chip. Selectia dintre cele doua variante se realizeaza cu ajutorul semnalului /EA

(External Access).

Cand /EA este strapat la “1” logic (Vcc) atunci toate apelarile la MP cu adrese

intre 0000h – 0FFFh sunt dirijate spre memoria ROM interna. Apelurile la MP de la

1000h la FFFFh sunt dirijate spre circuitele de memorie ROM externe

microcontrolerului.

Cand /EA este strapat la “0” logic (GND) atunci apelarile la MP sunt dirijate spre

circuitele externe de memorie ROM.

Structura memoriei ROM a microcontrolerului 8051 este prezentata in figura 2.4.

Page 15: Sisteme Incorporate

Sisteme Incorporate

______________________________________________________________________________________

15

Figura 2.4. Structura de principiu a MP pentru microcontrolerul 8051

Semnalul de strobare pentru citire din MP externa este /PSEN (Program Strobe

Enable). Semnalul /PSEN nu se activeaza la apelarile la MP interna si la apelarile la MD.

In cazul MD si ea este impartita in doua: interna si externa. Memoria de date externa

poate fi de maxim 64 Koct. Accesarea memoriei de date externa se face numai prin

intermediul instructiunilor de tip MOVX prin activarea semnalelor /RD si /WR,

vehiculate prin pinii portului P3 si anume P3.7 respectiv P3.6; ca semnale de strobare (de

comanda a citirii respectiv a scrierii). In cazul accesarii MD interne aceste semnale nu se

activeaza.

In figura 2.5 se prezinta structura de principiu a MD.

Figura 2.5. Structura de principiu a MD pentru microcontrolerul 8051

MD interna se imparte este impartita la randul ei in doua zone de adresare, si anume:

1) zona de adrese 00h-7Fh care contine 128 de locatii ce reprezinta memorie

RAM propriuzisa. Lungimea cuvantului ei este de 1 octet. Aceasta zona de

memorie poate fi adresata direct si indirect. In figura 2.6 se prezinta structura de

baza a acestei zone de MD interna.

Page 16: Sisteme Incorporate

Sisteme Incorporate

______________________________________________________________________________________

16

2) zona de adrese 80h – FFh contine tot 128 de locatii care este rezervata pentru

registrele cu functii speciale – SFR (Special Function Register) si poate fi

accesata numai direct. In figura 2.7 se prezinta structura de baza a acestei zone de

MD interna.

Cuvantul de adresa pentru MD interna este de 8 biti si rezulta astfel o capacitate

maxima de adresare de 256 de locatii.

In cazul MD zonele interna si externa nu se exclud astfel incat zona MD externa

este de capacitate maxima de 64 Koct de la adresa 0000h pana la FFFFh.

Figura 2.6. Structura zonei de adrese 00h-7Fh a MD interna

Figura 2.7. Structura zonei de adrese 80h – FFh a MD interna

Page 17: Sisteme Incorporate

Sisteme Incorporate

______________________________________________________________________________________

17

Figura 2.8. Conectarea MP externa si a MD externa la un microcontroler 8051.

Astfel, in figura 2.8 se observa modul principial de conectare a MP si MD

externe. Dupa cum s-a mai precizat semnalul /PSEN este utilizat pentru citirea din MP

externa si nu este activ (“)” logic) in cazul accesarii MD externe. Pentru accesarea MD

externa se folosesc semnalele /RD si /WR pentru citire respectiv scriere. Semnalul ALE –

iesire “1” activa din microcontroler – este folosit pentru memorarea octetului mai putin

semnificativ al adresei intr-un latch (registru) extern. Portul P0 – reuneste 8 linii

bidirectionale prin intermediul carora se reazlizeaza magistrala multiplexata de

adrese/date. Bitii care se vehiculeaza prin acest port ca biti de adresa constituie partea cea

mai putin semnificativa si se preiau din registrul intern PC in cazul accesarii MP externa

si din registrul DPL in cazul accesarii MD externa. Portul P2 – port de intrare/iesire pe 8

biti – contine pe liniile sale partea mai semnificativa a adresei in cazul accesarii memoriei

externa. In cazul accesarii MP pe aceste linii se va plasa partea mai semnificativa a adrsei

preluate din PC.

In cazul accesarii MD externa partea mai semnificativa a adresei este preluata din

registrul DPH.

2.3.3. Moduri de adresare la microcontrolerului 8051

Microcontrolerele din familia MCS51 folosesc cinci moduri de adresare:

- adresare directa;

- adresare indirecta prin registru;

- adresarea registrilor;

- adresare imediata;

- adresare indexata.

Page 18: Sisteme Incorporate

Sisteme Incorporate

______________________________________________________________________________________

18

Adresarea directa

Operandul este specificat printr-un camp de adresa de 8 biti in instructiune.

Numai “cei mai de jos 128” octeti ai MD interne si SFR-urile pot fi adresate direct.

Adresarea indirecta prin registru

In adresarea indirecta adresa operandului este continuta intr-un registru. Atat MD

interna cat si cea externa pot fi adresate indirect. Pentru adrese pe 8 biti se pot folosii

registrele R0 sau R1 din grupul de registre selectat sau registrul SP. Pentru adrese pe 16

biti registrul folosit nu poate fi decat DPTR.

Adresarea registrelor

Accesul prin adresare a celor 8 registrii de lucru (R0-R7) depinde de banca

selectata prin intermediul bitilor Register Bank din PSW. Cei mai putini semnificativi trei

biti din codul instructiunii indica care registru este folosit. Acumulatorul, registrul B,

DPTR pot fi, de asemenea, adresate ca registre.

Adresarea imediata

Adresarea imediata permite constante ca parte integranta in codul instructiunii din

MP.

Adresarea indexata

Numai MP poate fi adresata indexat, si aceasta poate fi doar citita. Acest mod de

adresare este folosit pentru citirea tabelelor de cautare in MP. Un registru de baza pe 16

biti (DPTR sau PC) indica baza tabelei, iar in acumulator se pune numarul intrarii din

tabela. Adresa intrarii in tabela din MP se formeaza adunand continutul registrului

acumulator la registrul de baza specificat.

In tabelul 2.1 se prezinta sumar posibilitatile de utilizare a modurilor de adresare

si accesarea spatiilor de memorie.

Tabelul 2.1. Moduri de adresare.

Mod de adresare Resurse care pot fi adresate

Adresarea directa - Cei mai putini semnificativi 128 de octeti din MD interna

- Registrele SFR

Adresare indirecta prin

registrii

- MD interna prin @R0, @R1 sau SP

- MD externa prin @R0,@R1 sau @DPTR

Adresarea registrelor - R0 – R7

- Acumulator, registrul B, CY (bit), DPTR

Adresare imediata - Operandul se afla in MP imediat dupa octetul de cod

Adresare indexata - MP prin @DPTR+A sau @PC+A

Page 19: Sisteme Incorporate

Sisteme Incorporate

______________________________________________________________________________________

19

2.3.4. Setul de instructiuni ale microcontrolerului 8051

Setul de instructiuni se imparte in patru mari grupe:

- instructiuni de transfer de date;

- instructiuni aritmetice;

- instructiuni logice;

- instructiuni de salt si de transfer a controlului.

Instructiuni de transfer de date

Aceste instructiuni se impart in trei grupe distincte:

- transferuri de uz general;

- transferuri specifice acumulatorului;

- transferuri de adresa.

Transferuri de uz general

- MOV – permite transferul unui bit sau a unui octet de la un operand sursa la un operand

destinatie;

- PUSH – incrementeaza continutul registrului SP si transfera octetul operandului sursa

in stiva la adresa continuta in SP;

- POP – transfera un octet din stiva de la locatia adresata de SP la operandul destinatie si

decrementeaza continutul lui SP.

Transferuri specifice acumulatorului

- XCH – interschimba operandul sursa pe un octet si continutul acumulatorului A;

- XCHD – interschimba cei mai putini semnificativi 4 biti ai operandului sursa si cei mai

putini semnificativi 4 biti ai acumulatorului A;

- MOVX – executa mutarea unui octet intre MD externa si acumulator. Adresa externa

poate fi specificata de registrul DPTR (16 biti) sau de registrii R0 sau R1 (8 biti);

- MOVC – muta un octet din MP in acumulator. Valoarea anterioara din A se foloseste

ca index intr-o tabela de 256 octeti a carei adresa se afla in registrul de baza (DPTR sau

PC). Operandul la care se face accesul e transferat in acumulator.

Transferuri de adresa

- MOV DPTR,#data – incarca o data pe 16 biti imediat in perechea de registre DPH si

DPL.

Instructiuni aritmetice

Setul de instructiuni al microcontrolerului 8051 are incorporat instructiuni pentru

realizarea operatiilor aritmetice de adunare, scadere, inmultire si impartire. In mod direct

circuitul suporta doar operatii intre octeti fara semn. Prin folosirea indicatorului de

depasire este permis ca in operatiile de adunare si scadere sa se foloseasca atat intregi

Page 20: Sisteme Incorporate

Sisteme Incorporate

______________________________________________________________________________________

20

binari fara semn, cat si cu semn. Sunt posibile de asemenea si operatii aritmetice cu

numere reprezentate in cod BCD impachetat.

Adunare

- INC – incrementeaza operandul sursa cu o unitate si pune rezultatul in locul

operandului;

- ADD – aduna continutul acumulatorului la operandul sursa si depune rezultatul in

acumulator;

- ADDC – adunare cu transport – aduna continutul acumulatorului la operandul sursa si

apoi aduna 1 daca CY este setat (“1” logic) si depune rezultatul in acumulator;

- DA – ajustare zecimala a adunarii pentru numere reprezentate in cod BCD – corecteaza

rezultatul insumarii dintre doi operanzi zecimali pe doua cifre. Suma zecimala

impachetata care rezulta este depusa in acumulator iar indicatorul CY este setat daca

rezultatul adunarii este mai mare de 77.

Scadere

- SUBB – scadere cu imprumut – scade al doilea operand sursa din primul operand, aflat

in acumulator, scade 1 daca CY=1 si depune rezultatul in acumulator;

- DEC – decrementare – scade o unitate din operandul sursa si depune rezultatul in locul

operandului.

Inmultire

- MUL – executa inmultirea fara semn a continutului acumulatorului cu continutul

registrului B, rezultatul fiind pe doi octeti, octetul cel mai putin semnificativ in

acumulator iar octetul mai semnificativ in registrul B. Fanionul OV este resetat daca

jumatatea mai semnificativa a rezultatului este zero si este setat in caz contrar, fanionul

CY este resetat iar fanionul AC nu este afectat.

Impartire

- DIV – executa impartirea unui intreg fara semn pe 8 biti, aflat in acumulator, la un

intreg fara semn pe 8 biti aflat in registrul B. Dupa impartire in acumulator se va gasii

catul iar in registrul B restul.

Instructiuni logice

8051 poate executa operatii logice atat la nivel de octet cat si la nivel de bit. De

asemenea operatiile logice pot fi impartite in doua mari grupe: operatii logice cu un

singur operand respectiv operatii logice cu doi operanzi.

Operarii logice cu un singur operand

- CLR – pune continutul acumulatorului sau orice bit direct adresabil la zero;

- SETB – seteaza orice bit direct adresabil pe “1” logic;

Page 21: Sisteme Incorporate

Sisteme Incorporate

______________________________________________________________________________________

21

- CPL – se foloseste pentru complementarea continutului acumulatorului fara afectarea

indicatorilor sau pentru complementarea oricarui bit direct adresabil;

- RL, RLC, RR, RRC, SWAP – sunt cinci operatii de rotire care se pot executa asupra

acumulatorului. RL – rotire la stanga, RR – rotire la dreapta, RLC – rotire la stanga prin

CY, RRC – rotire la dreapta prin CY, SWAP – rotira la stanga cu 4 pozitii. Pentru RLC si

RRC indicatorul CY devine egal cu valoarea ultimului bit care se elimina. SWAP roteste

continutul acumulatorului cu patru pozitii pentru a interschimba bitii 0-3 cu 4-7.

Operatii logice cu doi operanzi

- ANL – executa un SI logic la nivel de bit intre doi operanzi (atat pentru operanzi de tip

octet cat si pentru operanzi de tip bit) si depune rezultatul in locul primului operand;

- ORL – executa un SAU logic la nivel de bit intre doi operanzi (atat pentru operanzi de

tip octet cat si pentru operanzi de tip bit) si depune rezultatul in locul primului operand;

- XRL - executa un SAU-EXCLUSIV la nivel de bit intre doi operanzi (atat pentru

operanzi de tip octet cat si pentru operanzi de tip bit) si depune rezultatul in locul

primului operand.

Transferul controlului

Exista trei categorii de operatii de salt si de transfer a controlului:

- salturi conditionate si neconditionate;

- apeluri si reveniri din subrutine;

- intreruperi.

Salturi conditionate

Salturile conditionate se executa la indeplinirea unei conditii de salt. Destinatia va

fi in domeniul 256 octeti centrat in jurul adresei de inceput a instructiunii urmatoare (de

la – 128 la +127).

- JZ – executa un salt daca continutul acumulatorului este zero;

- JNZ – executa un salt daca continutul acumulatorului este diferit de zero;

- JC – executa salt daca CY=1;

- JNC – executa salt daca CY=0;

- JB – executa salt daca bitul adresat este “1” logic;

- JNB – executa salt daca bitul adresat este “0” logic;

- JBC – executa salt daca bitul adresat este “1” logic si apoi reseteaza bitul adresat;

- CJNE – compara primul operand cu al doilea si executa un salt daca acestia sunt

diferiti. Fanionul CY este setat daca primul operand este mai mic decat al doilea operand,

altfel este resetat;

- DJNZ – decrementeaza operandul sursa si pune rezultatul in locul operandului. Se

executa salt daca rezultatul este zero.

Page 22: Sisteme Incorporate

Sisteme Incorporate

______________________________________________________________________________________

22

Salturi neconditionate

- AJMP – salt la adresa absoluta – transfera controlul programului la adresa modificata

cu valoarea continuta in operand. Operandul instructiunii este pe 11 biti asigurandu-se un

spatiu de destinatie de maxim 2Koct;

- LJMP – salt lung – transfera controlul programului la adresa continuta in operand.

Operandul instructiunii este pe 16 biti asigurandu-se un spatiu de destinatie de maxim 64

Koct;

- SJMP – salt scurt – transfera controlul programului la adresa continuta in operand.

Operandul instructiunii este pe 8 biti asigurandu-se un spatiu de destinatie de maxim 256

octeti centrat in jurul adresei de inceput a urmatoarei instructiuni (de la –128 la +127);

- JMP @A+DPTR – executa un salt relativ la registrul DPTR. Operandul din acumulator

este folosit ca offset (0-255) fata de adresa din DPTR.

Apeluri si reveniri din subrutine

- ACALL – apelare la adresa absoluta – salveaza in stiva adresa instructiunii urmatoare si

apoi transfera controlul programului de la adresa destinatie. Este folosita cand adresa

destinatie se afla in pagina de 2 Koct curenta;

- LCALL - apelare lunga – salveaza in stiva adresa instructiunii urmatoare si apoi

transfera controlul programului de la adresa destinatie. Este folosita pentru asigurarea

transferului controlului programului in orice zona de adresa din intreg spatiul de 64 Koct;

- RET – transfera controlul programului la adresa de intoarcere salvata in stiva de un apel

anterior si decrementeaza cu doi continutul registrului SP pentru a actualiza continutul

registrului SP dupa extragerea adresei.

Reveniri din intreruperi

- RETI – transfera controlul ca si in cazul instructiunii RET dar in plus activeaza

intreruperile pe nivelul de priorittate curent.

2.3.5. Sincronizarea unitatii centrale de prelucrare

Toate microcontrolerele familiei MCS51 au un oscilator incorporat care poate fi

utilizat ca generator de tact pentru unitatea centrala de prelucrare.

Pentru utilizarea oscilatorului intern se conecteaza intre XTAL1 si XTAL2 un

cristal de cuart sau rezonator ceramic si capacitati la masa ca in figura 2.9.

Figura 2.9. Conectarea unui cristal de cuart la intrarile XTAL1 si XTAL2

Generatorul intern poate fi condus si de semnale de tact externe obtinute de la un

oscilator extern. In tehnologia HMOS (varianta 8051) semnalul de la XTAL2 are rol

Page 23: Sisteme Incorporate

Sisteme Incorporate

______________________________________________________________________________________

23

conducator a generatorului de tact intern. In tehnologia HCMOS (varianta 80C51)

semnalul de la XTAL1 are rolul conducator a generatorului de tact intern. Rezulta astfel

variantele de conectare din figura 2.10.

Figura 2.10. Conectarea semnalelor de tact externe

2.3.6. Ciclii masina si ciclii instructie a microcontrolerului 8051

Un ciclu masina consta intr-o secventa de 6 stari notate S1…S6 fiecare stare

durand doua perioade de tact denumite P1 si P2 (vezi figura 2.11).

Figura 2.11. Structura unui ciclu masina in cazul microcontrolerului 8051

Astfel, un ciclu masina este constituit din 12 perioade de tact. In cazul in care

frecventa semnalului de tact este 12 MHz perioada unui ciclu masina este de o

microsecunda. Numarul de ciclii masina necesari pentru executia instructiunilor depind

de tipul instructiunilor care se executa. Astfel, instructiunile se pot impartii, tinand cont

de numarul de ciclii masina in:

1) instructiuni care se executa intr-un singur ciclu masina (majoritatea

instructiunilor) Exemple: instructiuni de tip: ADD A,Rn; INC A; DEC A; ANL

A,Rn; MOV A,#data

2) instructiuni care se executa in doi ciclii masina;

Exemple: INC DPTR; ANL direct,#data, MOV Rn,direct; MOV DPTR,#data16;

ACALL adr11; LJMP adr16; MOVX A,@DPTR; MOVX @DPTR,A

3) instructii care dureaza mai mult de doi ciclii masina;

Exemple: MUL AB; DIV AB.

In mod normal intr-un ciclu masina sunt generate doua operatii de extragere de

cod de operatie (fetch), chiar daca instructiunea aflata in curs de executie nu necesita mai

mult de un octet pentru codul operatiei, unitatea centrala de prelucrare va ignora pur si

simplu cel de al doilea ciclu (extrafetch) si continutul registrului PC nu va fi incrementat.

Executia instructiunilor care necesita un singur ciclu masina este prezentata in figura

2.12. Dupa cum se observa ciclul de fetch incepe in starea S1 a ciclului masina, cand

codul operatiei este incarcat in Registrul Instructie. Primul ciclu de fetch se incheie in

starea S4. Al doilea ciclu de fetch – extrafech – incepe in starea S4 a aceluiasi ciclu

masina. Executia instructiunii este incheiata in starea S1 a ciclului masina urmator.

Page 24: Sisteme Incorporate

Sisteme Incorporate

______________________________________________________________________________________

24

Instructiunile care se executa in doi ciclii maisna se impart in: instructiuni diferite

de MOVX si instructiuni de tip MOVX.

Figura 2.12. Executia instructiunilor intr-un singur ciclu masina

Figura 2.13. Executia instructiunilor in doi cilcii masina diferite de MOVX

In mod similar, ca si la instructiunile care se executa intr-un singur ciclu masina,

pe langa ciclul de fetch demarat in starea S1 din primul ciclu masina, in starea S4 din

acelasi ciclu masina si in starile S1 si S4 din cel de al doilea ciclu masina se genereaza

ciclii extrafetch care sunt ignorati – continutul registrului PC nu este incrementat (figura

2.13).

Instructiunile de tip MOVX dureaza, dupa cum s-a mai precizat, doi ciclii masina.

In timpul celui de al doilea ciclu masina nu se mai genereaza ciclii de extrafetch

executandu-se operatia de acces la MD externa. Aceasta este singura situatie cand ciclul

de extrafetch este omis. In figura 2.14 se prezinta executia instructiunilor de tip MOVX.

Page 25: Sisteme Incorporate

Sisteme Incorporate

______________________________________________________________________________________

25

Figura 2.14. Executia instructiunilor in doi ciclii masina de tip MOVX

Dupa cum se observa, executia instructiunilor de tip MOVX demareaza in starea

S1 a primului ciclu masina prin citirea codului operatiei. In starea S4 a primului ciclu

masina demareaza ciclul de acces la memoria de date externa.

In cazul instructiunilor care necesita mai mult de doi ciclii masina modul de

desfasurare a operatiilor este similar ca pentru instructiunile care se executa in doi ciclii

masina diferite de MOVX.

2.3.7. Ciclii de magistrala a microcontrolerului 8051

La fel cum instructiunile se pot impartii global in instructiuni diferite de MOVX

si instructiuni de tip MOVX, ciclii de magistrala sunt impartiti functie de instructiuni.

1) Ciclii de magistrala pentru instructiuni diferite de MOVX

In figura 2.15 se prezinta ciclii de magistrala pentru aceste instructiuni.

In cazul acestor instructiuni se realizeaza numai accesul memoriei program

externe. Un ciclu de magistrala incepe in starea S1P2 prin activarea semnalului ALE,

semnal cu ajutorul caruia se asigura demultiplexarea informatiilor plasate pe liniile de

adrese/date ale portului P0. La sfarsitul starii S1P2 pe liniile portului P2 va fi plasat

octetul mai semnificativ al adresei (partea “high” a registrului PC – PC-H) iar pe liniile

portului P0 va fi plasat octetul mai putin semnificativ al adresei (partea “low” a

registrului PC – PCL).

La sfarsitul starii S2P1 semnalul ALE este dezactivat, frontul cazator al acestui

semnal fiind folosit pentru memorarea adresei de pe liniile portului P0 intr-un latch

extern. La sfarsitul starii S2P2 este activat semnalul /PSEN , folosit ca semnal de

comanda a citirii din memoria program externa. Datele (codul operatiei) plasate de MP

sunt esantionate pe frontul crescator al semnalului /PSEN in Registru Instructie. In S4P2

incepe al doilea ciclu de fetch (extrafetch) care este similar cu primul cu observatia ca in

cazul instructiunilor codificate pe un singur octet continutul registrului PC nu mai este

incrementat.

Page 26: Sisteme Incorporate

Sisteme Incorporate

______________________________________________________________________________________

26

Figura 2.15. Ciclii de magistrala pentru instructiuni diferite de MOVX

2) Ciclii de magistrala pentru instructiuni de tip MOVX.

In figura 2.16 se prezinta ciclii de magistrala pentru instructiuni de tip MOVX de

citire din MD externa.

Figura 2.16. Ciclii de magistrala pentru instructiuni de tip MOVX de citire din MD

externa

In figura 2.17 se prezinta ciclii de magistrala pentru instructiuni de tip MOVX de

scriere in MD externa.

Page 27: Sisteme Incorporate

Sisteme Incorporate

______________________________________________________________________________________

27

Figura 2.17. Ciclii de magistrala pentru instructiuni de tip MOVX de scriere in MD

externa

Dupa cum se observa secventa de citire a codului operatiei (fetch) din primul

ciclu masina este identic cu cel prezentat pentru instructiunile diferite de MOVX. Din

starea S4 se demareaza insa ciclul de magistrala pentru accesarea MD externa indiferent

de faptul ca se executa citire sau scriere. Astfel, la inceputul starii S4P2 se activeaza

semnalul ALE care in acest caz va stroba informatia de pe liniile portului P0 care vor

contine partea mai putin semnificativa a adresei locatiei de memorie din MD externa care

se doreste a fi selectata. Pe liniile portului P0 se va plasa continutul registrului DPL sau a

unuia din registrele R0 sau R1 (aceasta din ultima situatie se refera la instructiunile

MOVX A,@R0; MOVX A,@R1 pentru citire respectiv MOVX @R0,A si MOVX

@R1,A pentru scriere). Pe liniile portului P2 se va plasa continutul registrului DPH in

cazul instructiunilor MOVX A,@DPTR pentru citire respectiv MOVX @DPTR,A pentru

scriere. In cazul accesarii MD externe prin intermediul registrilor R0 sau R1, pe durata

accesarii portul P2 poate fi folosit ca iesire de uz general. Semnalele /RD respectiv /WR

se activeaza la sfarsitul starii S6P2 a primului ciclu masina si sunt active pana la sfarsitul

starii S3P2 a celui de al doilea ciclu masina. Pe liniile portului P0, de la sfarsitul starii

S5P2 a primului ciclu masina pana la sfarsitul starii S4P1 a celui de al doilea ciclu masina

se vor vehicula date scrise/citite la/de la memorie. In cazul citirii datele vor fi active de la

sfarsitul starii S2P1 a celui de al doilea ciclu masina pana la sfarsitul starii S3P2 a

aceluiasi ciclu masina. Pe durata accesarii MD externe semnalul /PSEN este inactiv.

Ciclul de accesare a MD externe se incheie la sfarsitul starii S4P1 din al doilea ciclu

masina cand este demarat un ciclu normal de extrafetch.

Page 28: Sisteme Incorporate

Sisteme Incorporate

______________________________________________________________________________________

28

2.3.7. Sistemul de intreruperi al microcontrolerului 8051

Sistemul de intreruperi al microcontrolerului 8051 accepta cereri de intrerupere de

la 5 surse distincte dupa cum urmeaza:

a) doua intreruperi externe /INT0 si /INT1;

b) doua intreruperi generate in urma activitatii timerelor T0 si T1;

c) o intrerupere generata in urma activitatii sistemului de comunicatie seriala.

Global, structura sistemului de intreruperi este prezentata in figura 2.18.

Figura 2.18. Structura de principiu a sistemului de intreruperi

Intreruperile externe /INT0 si /INT1 pot fi active pe frontul cazator sau pe nivel.

Selectarea variantei dorite se face cu ajutorul bitilor IT0 si respectiv IT1 ai registrului

TCON. Acest registru este adresabil si la nivel de bit.

Structura registrului TCON este:

D7 D6 D5 D4 D3 D2 D1 D0

TF1 TR1 TF0 TR0 IE1 IT1 IE0 IT0

Semnificatiile bitilor registrului TCON sunt:

- daca este egal cu 0 cererea de intrerupere INT0 este activa pe nivel coborat

(“0” logic)

IT0 -

- daca este egal cu 1 cererea de intrerupere INT0 este activa pe frontul

coborator

IE0 - Fanionul intreruperii externe INT0 active pe frontul cazator. Se seteaza hard

cand este detectat frontul sau nivelul corespunzator intreruperii externe. Se

reseteaza hard cand intreruperea este servita.

IT1 - - daca este egal cu 0 cererea de intrerupere INT1 este activa pe nivel coborat

(“0” logic)

- daca este egal cu 1 cererea de intrerupere INT1 este activa pe frontul

coborator

Page 29: Sisteme Incorporate

Sisteme Incorporate

______________________________________________________________________________________

29

IE1 - Fanionul intreruperii externe INT1 active pe frontul cazator. Se seteaza hard

cand este detectat frontul sau nivelul corespunzator intreruperii externe. Se

reseteaza hard cand intreruperea este servita.

TR0 - Bit de control pentru pornirea timerului T0. Setat/resetat soft pentru

pornirea/oprirea timerului T0

TF0 - Fanion de depasire pentru timerul T0. Setat hard cand capacitatea timerului

este depasita. Resetat hard la citirea vectorului de intrerupere pentru servirea

intreruperii

TR1 - Bit de control pentru pornirea timerului T1. Setat/resetat soft pentru

pornirea/oprirea timerului T1

TF1 - Fanion de depasire pentru timerul T1. Setat hard cand capacitatea timerului

este depasita. Resetat hard la citirea vectorului de intrerupere pentru servirea

intreruperii

Fanioanele IE0 si IE1 sunt setate hard cand pe canalul corespunzator a sosit o

cerere de intrerupere. Daca intreruperea este activa pe front, dupa apelul subrutinei de

tratare a intreruperii fanionul se reseteaza. Daca intreruperea este activa pe nivel, atunci

sursa de intrerupere este testata asupra mentinerii conditiei care a generat setarea

fanionului.

Intreruperile generate de activitatea timerelor sunt prezentate prin starea

fanioanelor TF0 si TF1 din registrul TCON.

Intreruperea aferenta sistemului de comunicatie seriala este generata printr-un

SAU asupra a doua fanioane RI (care se seteaza in urma aparitiei unui eveniment la

receptie) si TI (care se seteaza in urma aparitiei unui eveniment la emisie), fanioane care

fac parte din registrul SCON. Ambele fanioane sunt setate hard dar resetarea lor se face

numai soft.

Toti bitii care genereaza intreruperi (IE0,IE1,TF0,TF1,RI,TI) se pot seta/reseta

prin soft cu acelasi efect ca in situatiile prezentate mai sus.

Fiecare cerere de intrerupere poate fi validata sau invalidata individual precum si

global prin bitii registrului validare intreruperi IE (registru adresabil pe bit). Structura

acestui registru este:

D7 D6 D5 D4 D3 D2 D1 D0

EA * * ES ET1 EX1 ET0 EX0

Semnificatiile bitilor registrului IE sunt:

EX0 - - daca este egal cu 0 cererea de intreruperea externa /INT0 este invalidata

- daca este egal cu 1 cererea de intrerupere externa /INT0 este validata

ET0 - - daca este egal cu 0 cererea de intrerupere provenita de la timerul T0 este

invalidata

- daca este egal cu 1 cererea de intrerupere provenita de la timerul T0 este

validata

EX1 - - daca este egal cu 0 cererea de intreruperea externa /INT1 este invalidata

- daca este egal cu 1 cererea de intrerupere externa /INT1 este validata

ET1 - - daca este egal cu 0 cererea de intrerupere provenita de la timerul T1 este

invalidata

Page 30: Sisteme Incorporate

Sisteme Incorporate

______________________________________________________________________________________

30

- daca este egal cu 1 cererea de intrerupere provenita de la timerul T1 este

validata

ES - - daca este egal cu 0 cererea de intreruperea provenita de la sistemul de

comunicatie seriala este invalidata

- daca este egal cu 1 cererea de intrerupere provenita de la sistemul de

comunicatie seriala este validata

EA - Bit de validare/invalidare globala a sistemului de intreruperi

- daca este 0 sistemul de intreruperi este invalidat global (nici o sursa de

cerere de intrerupere nu mai este luata in considerare);

- daca este 1 sistemul de intreruperi este validat, acceptarea sau nu a unei

intreruperi depinzand de starea bitului corespunzator din registrul IE

Sistemul de intreruperi al microcontrolerului 8051 accepta doua nivele de

prioritate:

a) redusa

b) ridicata.

Atribuirea nivelului de prioritate pentru fiecare din cele 5 surse de intreruperi se

face prin intermediul bitiilor registrului IP – Interrupt Priority (registru adresabil pe bit).

Structura acestui registru este:

D7 D6 D5 D4 D3 D2 D1 D0

Rezervat Rezervat Rezervat PS PT1 PX1 PT0 PX0

Semnificatiile bitilor registrului IP sunt:

PX0 - - daca este egal cu 0 cererea de intreruperea externa /INT0 are nivel de

prioritate redusa

- daca este egal cu 1 cererea de intrerupere externa /INT0 are nivel de

prioritate ridicata

PT0 - - daca este egal cu 0 cererea de intrerupere provenita de la timerul T0 are

nivel de prioritate redusa

- daca este egal cu 1 cererea de intrerupere provenita de la timerul T0 are

nivel de prioritate ridicata

PX1 - - daca este egal cu 0 cererea de intreruperea externa /INT1 are nivel de

prioritate redusa

- daca este egal cu 1 cererea de intrerupere externa /INT1 are nivel de

prioritate ridicata

PT1 - - daca este egal cu 0 cererea de intrerupere provenita de la timerul T1 are

nivel de prioritate redusa

- daca este egal cu 1 cererea de intrerupere provenita de la timerul T1 are

nivel de prioritate ridicata

PS - - daca este egal cu 0 cererea de intrerupere provenita de la sistemul de

comunicatie seriala are nivel de prioritate redusa

- daca este egal cu 1 cererea de intrerupere provenita de la sistemul de

comunicatie seriala are nivel de prioritate ridicata

Bitii D5,D6,D7 sunt rezervati si nu au voie sa fie setati.

Page 31: Sisteme Incorporate

Sisteme Incorporate

______________________________________________________________________________________

31

O intrerupere de prioritate mica poate fi intrerupta de o cerere de prioritate

ridicata dar nu poate fi intrerupta de vreo cerere de prioritate redusa. O intrerupere de

prioritate ridicata nu poate fi intrerupta de vreo alta cerere de intrerupere.

Daca se receptioneaza simultan doua sau mai multe cereri de intreruperi de acelasi

nivel de prioritate, acestea vor fi servite in baza unei ordini prestabilite si anume:

a) cererea de intrerupere externa /INT0 – cea mai prioritara;

b) cererea de intrerupere provenita de la timerul T0;

c) cererea de intrerupere externa /INT1;

d) cererea de intrerupere provenita de la timerul T1;

e) cererea de intrerupere provenita de la sistemul de comunicatie seriala – cea mai

putin prioritara.

Acceptarea unei intreruperi

Fanioanele corespunzatoare cererilor de intrerupere IE0,IE1,TF0,TF1 si ES sunt

testate in starea S5P2 a fiecarui ciclu masina. Daca un fanion, prin testare, este gasit “1”

logic, sistemul de intreruperi va genera o instructiune LCALL la rutina de servire

corespunzatoare, cu conditia ca aceasta generare hard sa nu fie blocata de una din

urmatoarele conditii:

1. O intrerupere de prioritate egala sau mai mare este in curs de executie;

2. Ciclul de testare a fanioanelor nu este ultimul din ciclul instructie aflat in

executie;

3. Instructiunea care se executa este RETI sau o scriere in registrele IE sau IP.

La acceptarea unei intreruperi si generarea hard a instructiunii LCALL se

salveaza automat in stiva continutul registrului PC (dar nu se salveaza continutul

registrului PSW) si se incarca in PC o adresa dependenta de sursa de intrerupere.

Adresele care sunt alocate prntru cele 5 surse de intrerupere sunt:

- pentru IE0 – 0003h

- pentru TF0 – 000Bh

- pentru IE1 - 0013h

- pentru TF1 – 001Bh

- pentru ES – 0023h.

Revenirea in programul principal, dupa executia rutinei de tratare a intreruperii, se

face prin instructiunea RETI, care informeaza unitatea centrala de prelucrare ca rutina de

tratare a intreruperii a fost incheiata, reface continutul registrului PC la valoarea de

dinaintea acceptarii intreruperii, executia continuand din acel punct.

Raspunsul in timp la o cerere de intrerupere

Dupa cum s-a prezentat mai sus, fanioanele corespunzatoare cererilor de

intrerupere IE0,IE1,TF0,TF1 si ES sunt testate in starea S5P2 a fiecarui ciclu masina.

Daca cererea de intrerupere este activa si sunt indeplinite conditiile de acceptare a

intreruperii, urmatoarea instructiune care se executa este LCALL, ea fiind generata hard

de microcontroler. Deoarece instructiunea LCALL se executa in 2 ciclii masina, rutina de

Page 32: Sisteme Incorporate

Sisteme Incorporate

______________________________________________________________________________________

32

tratare a intreruperii este lansata in executie la al treilea ciclu masina dupa acceptarea

intreruperii.

In figura 2.19 este prezentat raspunsul in timp la o cerere de intrerupere externa.

Figura 2.19. Raspunsul in timp pentru o cerere de intrerupere

In ciclul C2 s-a considerat ca in curs de executie este o instructiune RETI sau o

scriere in registrele IE sau IP, punandu-se astfel in evidenta modul in care este ignorata

cererea de intrerupere.

2.3.8. Sistemul de temporizare contorizare al microcontrolerului 8051

Microcontrolerul 8051 are doua timer/countere T0 si T1 pe 16 biti. Fiecare

registru pe 16 biti asociat este impartit in doua registre pe 8 biti neadresabile pe bit

denumite TH0 (octetul mai semnificativ) si TL0 (octetul mai putin semnificativ) pentru

T0 respectiv TH1 (octetul mai semnificativ) si TL1 (octetul mai putin semnificativ)

pentru T1.

Ambele timer/countere pot opera independent fie ca si contor (counter) fie ca

temporizator (timer).

In modul de operare timer continutul registrului T0 sau T1 este incrementat la

fiecare ciclu masina executat. Dupa cum se cunoaste, un ciclu masina dureaza 12

perioade de tact ceea ce inseamna ca frecventa semnalului de tact prin care se asigura

comanda de incrementare a registrului folosit este 1/12 din fclk.

In modul de operate counter, continutul registrului T0 sau T1 este incrementat la

fiecare detectie a unei tranzitii din “1” in “0” a semnalului aplicat din exterior la pinul Tx

(T0 sau T1). Esantionarea intrarii Tx se face in starea S5P2 a fiecarui ciclu masina. Daca

la doua testari succesive se gasesc valorile “1” respectiv “0” pe linia Tx testata,

continutul registrului aferent counter/timer-ului folosit se incrementeaza cu o unitate.

Noua valoare din counter/timer-ul folosit este insa disponibila numai dupa starea S3P1 a

urmatorului ciclu masina in care a fost detectata tranzitia.

Cronograma semnalelor aferente functionarii in modul temporizator este

prezentata in figura 2.20.

Page 33: Sisteme Incorporate

Sisteme Incorporate

______________________________________________________________________________________

33

Figura 2.20. Cronogramele de functionare in modul temporizator

Rezulta deci ca frecventa maxima a semnalului aplicat la intrare (pinul T0 sau T1)

are valoarea: fmax=fclk/24 .

Programarea timerelor T0 si T1 se face cu ajutorul unui cuvant de comanda a

modului de lucru - registrul TMOD (nu este adresabil pe bit).

Structura registrului TMOD este:

D7 D6 D5 D4 D3 D2 D1 D0

GATE C/-T M1 M0 GATE C/-T M1 M0

Bitii D0-D3 se refera la timerul T0 iar D4-D7 la timerul T1.

Semnificatiile bitiilor sunt:

GATE - Bit de control. Cand bitul TRx din registrul TCON este “1” logic si

GATE=”1”, numararea nu va incepe decat daca la pinul /INTx avem un

semnal “1” logic (modul de control hard); cand GATE=”0” numararea

nu va incepe decat atunci cand bitul TRx este setat pe “1” (modul de

control soft)

C/-T - Selectie counter sau timer. Daca valoarea bitului este “0” s-a selectat

modul de lucru timer (temporizator) iar daca este “1” s-a selectat modul

de lucru counter (contor)

M1 M0 - Selectie mod de lucru

0 0 - Mod 0 - Timer/Counter pe 13 biti

0 1 - Mod 1 - Timer/Counter pe 16 biti

1 0 - Mod 2 - Timer/Counter pe 8 biti cu autoancarcare

1 1 - Mod 3 - Numai pentru T0

Modul 0 – Timer/Counter pe 13 biti

In acest mod de lucru registrul corespunzator timerului utilizat (T0 sau T1) este

configurat ca un registru pe 13 biti astfel: THx – complet (8 biti) si cei mai putini

semnificativi 5 biti din TLx.

In figura 2.21 se prezinta schema de principiu a modului 0 de functionare.

Page 34: Sisteme Incorporate

Sisteme Incorporate

______________________________________________________________________________________

34

Figura 2.21. Reprezentarea simbolica a timerelor in modul 0

Cand continutul celor doua registre ajunge la “11111.11111111” la urmatorul

impuls noua valoare din registre va fi “00000.00000000” si in acelasi timp fanionul TFx

din registrul TCON este setat. Daca intreruperea corespunzatoare este validata, efectul

setarii lui TFx se manifesta printr-o cerere de intrerupere.

Modul 1 – Timer/Counter pe 16 biti

In acest mod de lucru registrul corespunzator timerului utilizat (T0 sau T1) este

configurat ca un registru pe 16 biti astfel: THx – complet (8 biti) si TLx – complet (8

biti).

Cand continutul celor doua registre ajunge la “11111111.11111111” la urmatorul

impuls noua valoare din registre va fi “00000000.00000000” si in acelasi timp fanionul

TFx din registrul TCON este setat. Daca intreruperea corespunzatoare este validata,

efectul setarii lui TFx se manifesta printr-o cerere de intrerupere.

Modul 2 – Timer/Counter pe 8 biti cu autoancarcare

In acest mod de lucru timerul Tx este configurat ca un registru pe 8 biti. Ca

registru de numarare se utilizeaza registrul TLx iar in registrul THx se pastreaza valoarea

pe 8 biti care va fi incarcata automat in TLx la fiecare trecere din FFh in 00h. Cand se

efectueaza trecerea de la FFh la 00h nu se genereaza numai comanda de autoincarcare si

se seteaza si fanionul TFx.

In figura 2.22 se prezinta schema de principiu a modului 2 de functionare.

Figura 2.22. Reprezentarea simbolica a timerelor in modul 2

Page 35: Sisteme Incorporate

Sisteme Incorporate

______________________________________________________________________________________

35

Modul 3 – Doua timere pe 8 biti

In acest mod registrele TL0 si TH0 sunt folosite ca doua numaratoare

independente.

In figura 2.23 se prezinta schema de principiu a modului 3 de functionare.

Figura 2.23. Reprezentarea simbolica a timerelor in modul 3

Pentru comanda lui TL0 se folosesc bitii de control ai timerului T0: C-/T, GATE,

TR0, /INT0 si TF0. TL0 poate fi folosit fie ca si counter fie ca si timer.

In cazul registrului TH0 acesta poate fi folosit numai in mod timer (temporizator) si

foloseste bitii TR1 si TF1 de la timerul T1.

In modul de lucru 3, timerul T1 poate fi blocat pur si simplu (ca si cand TR1=0)

sau poate fi folosit in modurile 0,1,2 dar cu observatia ca nu va genera cerere de

intrerupere (nu va opera asupra lui TF1).

2.3.9. Sistemul de comunicatie seriala al microcontrolerului 8051

Realizeaza o comunicatie duplex – adica poate realiza simultan atat emisie cat si

receptie. Sistemul de comunicatie seriala este realizat in jurul a doua registre cu functii

speciale: (o parte pentru emisie si alta pentru receptie) desemnate prin aceeasi adresa 99h

(unul poate fi numai citit iar celalalt numai scris) si acelasi mnemonic SBUF. Pentru

comanda si controlul sistemului de comunicatie seriala exista un registru de comanda

SCON.

Structura registrului SCON (adresabil pe bit) este:

D7 D6 D5 D4 D3 D2 D1 D0

SM0 SM1 SM2 REN TB8 RB8 TI RI

Page 36: Sisteme Incorporate

Sisteme Incorporate

______________________________________________________________________________________

36

Semnificatiile bitiilor registrului SCON sunt:

RI - Este un fanion care atunci cand are valoarea “1” constituie o cerere de

intrerupere din cauza unor situatii care apar in procesul de receptie

(intrerupere receptie de la blocul de receptie seriala). Este setat hard la

sfarsitul timpului afectat receptiei celor 8 biti de date in modul 0 sau la

jumatatea bitului de STOP in celelalte moduri. Exceptie fac cazurile

cand SM2=”1”. Trebuie resetat prin program (soft)

TI - Este un fanion care atunci cand are valoarea “1” constituie o cerere de

intrerupere din cauza unor situatii care apar in procesul de emisie

(intreruperea emisiei de la blocul de emisie seriala). Este setat hard, prin

logica interna, la sfarsitul timpului afectat emisiei celor 8 biti de date in

modul 0 sau la inceputul emisiei bitului de STOP in celelalte moduri.

Trebuie resetat prin program (soft).

RB8 - Reprezinta al 9-lea bit receptionat in modurile 2 si 3 In modul 1 daca

SM2=”0” este bitul de STOP care a fost receptionat. Daca SM2=”1” nu

are loc incarcarea bitului de STOP receptionat.

In modul 0 nu este utilizat.

TB8 - Programabil prin soft si reprezinta al 9-lea bit care va fi emis in

modurile 2 si 3

REN - Bit de validare/invalidare a procesului de receptie. Daca REN=”0”

receptia este invalidata, daca REN=”1” receptia este validata.

SM2 - In modurile 2 si 3 valideaza/invalideaza caracteristicile de comunicatie

multiprocesor ale sistemului de comunicatie seriala.

In modul 1 poate fi folosit pentru verificarea validitatii bitului de STOP

receptionat.

In modul 0 nu are semnificatie si trebuie pus pe “0” logic

SM0 SM1 - Selecteaza modul de functionare dorit pentru sistemul de comunicatie

serial

0 0 - Modul 0 - registru de deplasare

0 1 - Modul 1 - UART pe 8 biti cu rata de emisie/receptie variabila

1 0 - Modul 2 - UART pe 9 biti cu rata de emisie/receptie fixa fosc/64 sau

fosc/32

1 1 - Modul 3 - UART pe 9 biti cu rata de emisie/receptie variabila

Modul 0 - registru de deplasare

Logica hard prin intermediul careia se executa modul “0” de functionare este

prezentata in figura 2.24.

Cronogramele aferente modului 0 sunt prezentate in figura 2.25.

In acest mod de lucru, rata de transfer este comandata printr-un semnal care

marcheaza starea S6 (ultima a unui ciclu masina) si prin urmare rata de transfer este fixa

si egala cu fosc/12.

Emisia: Este initiata de orice instructiune care foloseste registrul SBUF ca

registru destinatie. Semnalul de comanda a scrierii in SBUF care apare in starea S6P2

provoaca, in afara de inscrierea octetului ce va fi emis serie (prezent pe magistrala

interna) in SBUF, inscrierea valorii “1” in bistabilul care constituie al 9-lea rang a

registrului de deplasare emitator si constituie, totodata semnal de start pentru logica de

Page 37: Sisteme Incorporate

Sisteme Incorporate

______________________________________________________________________________________

37

comanda a emisiei. Desi octetul care trebuie transmis serie este prezent in SBUF emisia

propriuzisa incepe la activarea semnalului SEND si se incheie odata cu dezactivarea

acestui semnal.

Figura 2.24. Logica hard pentru modul 0 de functionare al sistemului de comunicatie

seriala

Activarea semnalului SEND se realizeaza cu o intarziere egala cu durata unui ciclu

masina. In modul “0” atat emisia cat si receptia bitilor octetilor data se realizeaza prin

Page 38: Sisteme Incorporate

Sisteme Incorporate

______________________________________________________________________________________

38

pinul P3.0 (RxD) cu atributie alternativa. Semnalul SEND valideaza legatura de la iesirea

registrului de deplasare la pinul P3.0 (RxD) si cea a generatorului SHIFT-CLOCK (tact

de deplasare) la pinul P3.1 (TxD).

Pe timpul cat SEND este activ, in fiecare stare S6P2 se genereaza un impuls

SHIFT pentru comanda deplasarii cu o pozitie a continutului registrului SBUF.

Deplasarea are loc dinspre rangurile mai semnificative spre cele mai putin

semnificative (D7 -> D6 -> ...->D0).

Pe masura ce pe la un capat sunt emisi bitii data pe la celalalt capat al registrului

se introduce zero. Cand cel mai semnificativ bit al octetului data este in pozitia de

iesirelanga el se afla "1" incarcat initial in bistabilul celei de a 9-a pozitii iar toate

celelalte pozitii contin zero. Aceasta situatie este sesizata de detectorul de zero. Din acest

moment logica de control emisie va genera, cu o intarziere de un ciclu masina, un ultim

impuls SHIFT , va dezactiva SEND si va seta fanionul TI. Aceste ultime doua actiuni au

loc la inceputul celui de al 10-lea ciclu masina dupa comanda scrie in SBUF.

Receptia: Receptia este initiata de conditia REN=”1” si RI=”0”. In starea S6P2 al

urmatorului ciclu masina, logica de control receptie serie va inscrie bitii 1111.1110 in

registrul de intrare cu deplasare de receptie iar in urmatoarea faza activeaza RECEIVE.

Prin acesta se valideaza legatura logica de generare a lui SHIFT-CLOCK la pinul P3.1

(TxD) pentru functia alternativa de iesire. In fiecare stare S6P2 pe durata cat RECEIVE

este activ se genereaza tactul SHIFT care provoaca deplasarea la stanga cu o pozitie a

registrului de intrare. Valoarea care se incarca la dreapta este cea care a fost esantionata

in starea S5P2. Pe masura ce pe la dreapta se introduc bitii datei pe la stanga ies bitii “1”

incarcati initial. Cand “0”-ul de la initializare ajunge la pozitia limita stanga este sesizat

de logica de control receptie serie care va mai genera un ultim impuls SHIFT si va

incarca continutul registrului cu deplasare in SBUF, va anula RECEIVE si va seta bitul

RI.

Figura 2.25. Cronogramele de functionare a sistemului de comunicatie seriala in

modul 0

Page 39: Sisteme Incorporate

Sisteme Incorporate

______________________________________________________________________________________

39

Modul 1 - UART pe 8 biti cu rata de emisie/receptie variabila

Logica hard prin intermediul careia se executa modul “1” de functionare este

prezentata in figura 2.26.

Cronogramele aferente modului 1 sunt prezentate in figura 2.27.

Rata de emisie sau de receptie este comandata prin frecventa semnalelor TxCLOCK si

RxCLOCK. Cel mai des aceste semnale se obtin cu ajutorul timerului T1

Figura 2.26. Logica hard pentru modul 1 de functionare al sistemului de comunicatie

seriala

Page 40: Sisteme Incorporate

Sisteme Incorporate

______________________________________________________________________________________

40

programat in modul 2 de functionare. In aceasta situatie lantul de circuite pentru

obtinerea lui TxCLOCK – de exemplu –este prezentat in figura 2.28.

In acest caz formula de calcul a frecventei semnalului TxCLOCK este:

32)]1(256[12

2⋅−⋅

=

TH

SMOD

OSC

TxCLOCK

ff

SMOD este un bit (D7) al registrului de control al puterii PCON. Uneori 2SMOD

este notat

printr-un coeficient K ale carui valori sunt: K=1 cand SMOD=0 si K=2 cand SMOD=1.

Daca se cunoaste rata de transfer dorita (baud_rate ) si fOSC se poate determina valoarea

(TH1) de preancarcare:

ratebaudTH

fOSC

SMOD

_384256)1(

2⋅

−=

Uneori cand se doreste o rata de transfer foarte mica se poate folosii timerul T1 in

modul 1 (divizor pe 16 biti) iar reancarcarea sa se faca prin subrutina de tratare a

intreruperii declansate (deci prin soft). In acest caz factorul de divizare variabil va fi

1/[65536-(T1)] unde continutul lui T1 “(T1)” poate fi intre 0 si 65535. Daca in modul 0

bitii octetului data erau emisi sau receptionati fara vreun bit auxiliar cu rol in transmisie,

in modul 1 octetului de transmis ii este atasat un bit de start si unul de stop.

Figura 2.27. Cronogramele de functionare a sistemului de comunicatie seriala in

modul 1.

Page 41: Sisteme Incorporate

Sisteme Incorporate

______________________________________________________________________________________

41

Figura 2.28. Lantul de circuite pentru obtinerea lui TxCLOCK

Emisia: Este initiata de orice instructiune care foloseste registrul SBUF ca

registru destinatie. Semnalul “scrie in SBUF” incarca totodata un “1” in pozitia a 9-a a

registrului cu deplasare si semnaleaza blocului logica de control emisie seriala ca a fost

comandat un transfer (se da startul). Emisia propriuzusa incepe in starea S1P1 a ciclului

masina care urmeaza dupa primul impuls TxCLOCK ulterior comenzii “scrie in SBUF”.

In continuare timpii afectati transmisiei unui bit sunt sincronizati cu numaratorul divizor

cu 16 si nu cu semnalul “scrie in SBUF”.

Emisia propriuzisa incepe prin activarea semnalului SEND care face ca TxD sa

devina zero (emitere bit de START). Dupa o perioada TxCLOCK se activeaza semnalul

DATA care valideaza legatura de la bitul de iesire al registrului SBUF (registru cu

deplasare) la TxD. Dupa o alta perioada TxCLOCK se genereaza primul impuls de

deplasare -SHIFT –a continutului lui SBUF la dreapta.

Pe masura ce bitii datei ies la dreapta, de la stanga se incarca zero. Cand cel mai

semnificativ al datei este la iesire in stanga sa este 1-ul incarcat la initializare in a 9-a

pozitie iar toate celelalte pozitii mai la stanga sunt pe zero, situatie sesizata de detectorul

de zero care determina logica de control emisie seriala sa mai genereze un ultim impuls

de deplasare SHIFT si apoi sa dezactiveze semnalul SEND si sa seteze bitul TI.

Dezactivarea lui SEND inseamna ca iesirea TxD trece in “1” logic. O noua emisie

se poate relua dupa cel putin o perioada TxCLOCK (timp necesar pentru bitul de STOP si

in care sa se incarce din nou SBUF deci o noua comanda “scrie in SBUF”).

Receptia: Se initiaza la detectarea unei tranzitii din “1” in “0” la pinul de intrare

RxD (tranzitia corespunde inceperii bitului de START). In acest scop RxD este

esantionata cu o rata (cadenta) de 16 ori mai mare decat viteza de transfer stabilita.

Cand o tranzitie este detectata, divizorul cu 16 de la receptie se reseteaza, asigurandu-se

astfel sincronizarea emisiei cu receptia, si toti bitii “registrului de deplasare de intrare” (9

biti) sunt pusi pe “1” logic (se incarca 1FFh).

Cele 16 stari ale divizorului cu 16 impart fiecare perioada RxCLOCK in 16 parti.

In starile 7, 8 si 9 ale divizorului, detectorul de bit esantioneaza valoarea lui RxD

(aproximativ la mijlocul duratei de bit). Valoarea acceptata va fi cea “vazuta” in cel putin

doua din cele trei esantionari. Aceasta valoare se aduce la intrarea “registrului de

deplasare de intrare” si la logica de control receptie serie.

Daca valoarea acceptata la esantionarile bitului presupus de START nu este zero,

circuitul de receptie se reseteaza si trece din nou la supravegherea lui RxD pentru a

detecta o noua tranzitie (aceasta situatie se mai numeste si START fals provocat de

perturbatii).

Daca bitul de START se dovedeste valid acesta este incarcat in “registrul de

deplasare de intrare” si receptia restului bitilor va continua.

Page 42: Sisteme Incorporate

Sisteme Incorporate

______________________________________________________________________________________

42

Pe masura ce pe la dreapta intra bitii datei pe la stanga ies bitii “1” incarcati la

initializare. Cand bitul de START (“0” logic) ajunge in cea mai din stanga pozitie a

registrului de deplasare de intrare (registru pe 9 biti) logica de control receptie serie va

mai genera un ultim proces de esantionare si deplasare si va incarca cele 8 pozitii mai

putin semnificative ale registrului de deplasare de intrare in registrul SBUF iar pozitia a

9-a (cea mai semnificativa) in bitul RB8 din registrul SCON (deci RB8 va contine

valoarea gasita pe durata bitului de STOP) si va seta bitu;l RI tot in SCON.

Aceste ultime 3 actiuni (incarcarea in SBUF, in RB8 si setarea lui RI) se executa

daca si numai daca sunt indeplinite in momentul generarii impulsului de deplasare final

urmatoarele doua conditii:

1) RI=0 (receptia nu a fost intrerupta)

2) Fie SM2=”0” fie bitul de STOP receptionat este egal cu 1.

Daca oricare din cele doua conditii nu sunt indeplinite receptia cadrului este

iremediabil pierduta iar in acest moment, indiferent daca sunt sau nu indeplinite conditiile

unitatea trece la supraveghere pentru o noua tranzitie din “1” in “0” la pinul RxD.

Modurile 2 si 3 - UART pe 9 biti cu rata de emisie/receptie fixa respectiv variabila

In cazul emisiei, bitului TB8 i se poate asocia o valoare 0 sau 1 prin soft. La

receptie al 9-lea bit se incarca in bitul RB8 al registrului SCON.

In modul 2 frecventa de tact fTxCLOCK si fRxCLOCK are valori fixe fOSC/32

sau fOSC/64 functie de valoarea bitului SMOD din registrul PCON.

In modul 3 frecventa de tact fTxCLOCK si fRxCLOCK se obtine cu ajutorul

timerului T1 programat in modul 2 de functionare. Generarea semnalelor de tact se face

in mod similar ca la modul 1 al sistemului de comunicatie seriala.

Procesul de emisie-receptie pentru modurile 2 si 3 este similar cu cel prezentat

pentru modul 1 cu observatia ca intre bitii de START si STOP se insereaza un al 9-lea bit

notat TB8 la emisie si RB8 la receptie.

Logica hard prin intermediul careia se executa modul “2” de functionare este

prezentata in figura 2.29.

Cronogramele aferente modului 2 sunt prezentate in figura 2.30.

Logica hard prin intermediul careia se executa modul “3” de functionare este

prezentata in figura 2.31.

Cronogramele aferente modului 3 sunt prezentate in figura 2.32.

Emisia: Este initiata de orice instructiune care scrie date in SBUF. Semnalul de

comanda “scrie in SBUF” incarca octetul data transmis de unitatea centrala de prelucrare

iar in bitul “D”, care reprezinta a 9-a pozitie, valoarea bitului TB8 din registrul SCON

incarcata anterior, si se da comanda de start pentru logica de control emisie serie.

Emisia propriuzisa incepe sincronizat pe semnalul de tact TxCLOCK (deci dupa

primul impuls TxCLOCK care urmeaza lui “scrie in SBUF”) prin activarea semnalului

SEND care determina trecerea terminalului TxD in starea “0” corespunzator bitului de

START. Dupa o perioada TxCLOCK se activeaza si semnalul DATA care valideaza

legatura intre rangul D0 al registrului SBUF si pinul TxD si este emis spre exterior bitul

cel mai putin semnificativ D0.

Dupa o alta perioada TxCLOCK se da primul impuls SHIFT de deplasare la

dreapta al continutului registrului SBUF astfel in pozitia de iesire ajunge bitul D1 iar in

Page 43: Sisteme Incorporate

Sisteme Incorporate

______________________________________________________________________________________

43

pozitia mai semnificativa al lui SBUF va fi bitul TB8 iar in bistabilul celei de a 9-a pozitii

se va incarca “1” corespunzator valorii bitului de STOP.

Figura 2.29. Logica hard pentru modul 2 de functionare al sistemului de comunicatie

seriala

Procesul continua in acelasi mod cu deosebirea ca de la stanga in bistabilul celei

de a 9-a pozitii se incarca “0”. Cand TB8 ajunge in pozitia de iesire in stanga sa se afla un

bit egal cu “1” si apoi numai zerouri. Aceasta situatie este sesizata de “detectorul de zero”

si va provoca din partea logicii de control emisie un ultim impuls de deplasare SHIFT in

urma caruia la iesirea din SBUF ajunge valoarea “1” (bitul de STOP) care insa nu va mai

Page 44: Sisteme Incorporate

Sisteme Incorporate

______________________________________________________________________________________

44

fi emisa intrucat se inactiveaza si semnalele DATA si SEND care intrerup legatura la

pinul TxD. Cu toate acestea valoarea logica valoarea logica care se instaleaza la pinul

TxD corespunde lui “1” logic (/SEND = “1”) ca si bitul de STOP. In acelasi timp se

seteaza si fanionul TI din registrul SCON semnaland incheierea emisiei si cerand un nou

octet pentru a fi emis.

Receptia: Este declansata odata cu setarea bitului REN din registrul SCON si

consta in urmarirea starii pinului RxD care este esantionat cu o frecventa de 16 ori mai

mare decat cea a semnalului fRxCLOCK in vederea detectarii unei tranzitii din “1” in “0”

care va fi interpretata ca tranzitia de la inceputul bitului de START.

La detectarea unei tranzitii este resetat divizorul cu 16 aferent partii de receptie. In

felul acesta se face sincronizarea intre tacturile de la emisie si cele de la receptie. In

registrul cu delasare de intrare se incarca 1FFh.

La mijlocul unei perioade a tactului de receptie RxCLOCK (starile 7,8 si 9 ale

divizorului cu 16 de la receptie) se esantioneaza valoarea la pinul RxD. Daca la cel putin

doua esantionari din 3 executate valoarea gasita la pinul RxD este aceeasi, ea este

validata.

Figura 2.30. Cronogramele de functionare a sistemului de comunicatie seriala in

modul 2

Daca la citirea bitului de START valoarea acceptata este 1 se va considera ca a

fost un START fals, se va reseta logica de control receptie si se trece in continuare la

urmarirea intrarii RxD pentru a detecta o noua tranzitie din “1” in “0”.

Daca valoarea acceptata pentru bitul de START este “0” ea se incarca in registrul

cu deplasare de intrare (registru care in modurile 1,2 si 3 are 9 biti) si procesul continua.

Page 45: Sisteme Incorporate

Sisteme Incorporate

______________________________________________________________________________________

45

Figura 2.31. Logica hard pentru modul 3 de functionare al sistemului de comunicatie

seriala

Page 46: Sisteme Incorporate

Sisteme Incorporate

______________________________________________________________________________________

46

Figura 2.32. Cronogramele de functionare a sistemului de comunicatie seriala in

modul 3

Comanda de deplasare SHIFT la receptie se da corelat cu starea a 9-a a

divizorului cu 16, deci preluarea bitului receptionat se face la mijlocul intervalului cat el

este prezent la pinul RxD si cand au incetat orice fenomene tranzitorii ale trecerii de la un

bit la altul. Pe masura ce de la dreapta intra bitii datei pe la stanga registrului cu deplasare

ies bitii pusi pe “1” la initializare. Cand in pozitia cea mai din stanga ajunge bitul de

START (valoare “0”) in dreapta sa se afla bitii D0-D7. Acest lucru este sesizat de logica

de control receptie care va mai genera dupa o perioada RxCLOCK un ultim impuls

SHIFT care va provoca o ultima deplasare la stanga (bitul de START se pierde iar in

pozitia cea mai din dreapta se incarca bitul care la emisie a fost notat cu TB8). Corelat cu

acest ultim impuls SHIFT se comanda incarcarea bitiilor D0-D7 in registrul SBUF, a

ultimului bit receptionat (la emisie a fost TB8) in bitul RB8 din registrul SCON si se

seteaza fanionul RI din SCON semnaland incheierea procesului de receptie a unui octet si

“invitand” unitatea centrala de prelucrare sa-l preia.

Aceste ultime trei operatii au loc daca si numai daca sunt indeplinite doua conditii

si anume: 1) valoarea anterioara a lui RI este “0” si 2) valoarea bitului SM2 din registrul

SCON sa fie "0“ sau valoarea celui de al 9-lea bit receptionat este "1“.

Daca oricare din aceste conditii nu este indeplinita receptia cadrului este iremediabil

pierduta. O perioada de tact RxCLOCK mai tarziu (cat la pinul RxD a fost bitul de

STOP) indiferent daca conditiile de mai sus sunt indeplinite sau nu, unitatea trece din nou

la supravegherea pinului RxD pentru detectarea unei noi tranzitii RxD.

In modurile 2 si 3 nu se efectueaza nici o verificare asupra corectitudinii bitului de

STOP.

Page 47: Sisteme Incorporate

Sisteme Incorporate

______________________________________________________________________________________

47

Comunicatii multimicrocontroler

Modurile 2 si 3 sunt dedicate pentru implementarea sistemelor

multimicrocontroler. In aceste moduri 9 biti sunt receptionati, al 9-lea regasindu-se in

bitul RB8 al registrului SCON.

Prin activarea (setarea) bitului SM2 din registrul SCON o cerere de intrerupere

datorata activarii fanionului RI nu este validata (generata) decat daca bitul RB8 (al 9-lea

bit receptionat) este pe “1”. Aceasta facilitate este utilizata pentru implementarea

sistemelor de comunicatie multimicrocontroler astfel: cand microcontrolerul master

doreste sa transmita un bloc de date la un circuit slave, in prima etapa va emite un octet

care semnifica adresa circuitului slave cu care se doreste a se intra in dialog. Un octet de

adresa difera de un octet de date prin faptul ca bitul TB9 (al 9-lea bit emis) este “1” in

cazul adreselor, respectiv “0” in cazul datelor.

Cu bitul SM2=1 receptia unui octet de date nu va genera intrerupere. In schimb

receptia unui octet de adresa va genera intrerupere la fiecare circuit slave in rutina de

tratare a intreruperilor verificandu-se adresa receptionata. Daca adresa receptionata este

identica cu cea alocata, circuitul slave va reseta bitul SM2 si va fi pregatit sa receptioneze

octetii de date. Circuitele slave care nu gasesc coincidenta intre adresa asociata si cea

receptionata isi vor mentine bitul SM2 pe “1”.

2.3.10. Controlul puterii consumate de microcontrolerul 8051

In cazul microcontrolerului 8051 controlul puterii consumate se face prin

intermediul registrului PCON (Power CONtrol) neadresabil pe bit.

Pentru microcontrolerele realizate in tehnologie HMOS structura registrului

PCON este:

D7 D6 D5 D4 D3 D2 D1 D0

SMOD * * * * * * *

Dupa cum se observa singurul bit care are semnificatie este D7 (SMOD). Bitului

SMOD este utilizat de catre sistemul de comunicatie seriala in modurile 1,2 si 3 (vezi

paragraful referitor la sistemul de comunicatie seriala al microcontrolerului 8051).

Ceilalti biti ai registrului PCON sunt rezervati.

Pentru microcontrolerele realizate in tehnologie CHMOS structura registrului

PCON este:

D7 D6 D5 D4 D3 D2 D1 D0

SMOD * * * GF1 GF0 PD IDL

Semnificatia bitiilor D0-D3 este:

IDL - Bit pentru selectarea modului de functionare in gol (asteptare)

PD - Bit pentru selectarea modului de functionare cu putere redusa

GF1 si GF2 - Biti fanion de utilizare generala aflati la dispozitia utilizatorului

Circuitele interne care implementeaza modurile de functionare in gol si de

functionare cu putere redusa sunt prezentate in figura 2.33.

Page 48: Sisteme Incorporate

Sisteme Incorporate

______________________________________________________________________________________

48

Se observa faptul ca modul de functionare in gol (de asteptare) blocheaza doar

unitatea centrala de prelucrare, oscilatorul continua sa lucreze si primesc semnal de tact

blocurile pentru controlul intreruperilor, a timerelor si a portul serial.

Figura 2.33. Circutitele interne corespunzatoare modurilor e functionare in gol sau cu

putere redusa a microcontrolerului 8051

Starea unitatii centrale de prelucrare este pastrata in intregime (indicatorul de

stiva SP, contorul de program PC, registrul de stare PSW, acumulatorul si toate celelalte

registre isi pastreaza continutul) pe durata starii de asteptare. Starea de asteptare se

instaleaza la sfarsitul instructiei care a pozitionat bitul IDL pe “1”.

Exista doua posibilitati de a iesi din acest mod:

1) prin activarea oricarei intreruperi; in rutina de tratare a intreruperilor bitul IDL

trebuie sters.

2) Cu un RESET hard.

Regimul de lucru cu putere redusa se instaleaza la executia unei instructiuni care a

pozitionat bitul PD pe “1”. Acesta blocheaza oscilatorul din chip si prin blocarea

semnalului de tact este oprita orice activitate dar raman neafectate continutul memoriei

RAM interne, a registrelor SFR.

Singura posibilitate de iesire din aceasta stare este resetarea hard. In modul de

lucru cu putere redusa tensiunea de alimentare Vcc poate fi redusa pana la 2 V.

Page 49: Sisteme Incorporate

Sisteme Incorporate

______________________________________________________________________________________

49

3. CIRCUITE PERIFERICE

3.1. Circuitul port paralel de intrare/iesire (PIO) 8255

Circuitul 8255 este un circuit port general de intrare/iesire paralel. Schema bloc

interna a circuitului este prezentata in figura 3.1.

Figura 3.1. Schema bloc interna a circuitului I8255

Descriere generala

Circuitul 8255 contine 4 porturi, doua de 8 biti si doua de 4 biti. Fiecare port

poate fi programat prin intermediul unui registru de control, sa fie port de intrare sau port

de II iesire. Fiecare port de 4 biti este folosit si pentru manevrarea unor semnale de

comanda si stare in conjunctie cu porturile A si B. Comunicarea cu magistrala de date a

unitatii centrale de prelucrare (microprocesor/microcontroler) se face prin intermediul

bufferului magistralei de date pe liniile D0 ÷ D7. Prin acestea se transmit atat date cat si

cuvinte de control sau stare.

Logica de comanda citire/scriere primeste urmatoarele semnale:

/CS - selectie circuit 8255. Intrarea zero activa.

/RD - intrare zero activa. Microprocesorul/microcontrolerul receptioneaza un octet

de date sau informatii de stare de la circuitul 8255.

/WR - intrare zero activa. Microprocesorul/microcontrolerul inscrie un octet de

date sau un cuvant de comanda (control) in 8255.

Page 50: Sisteme Incorporate

Sisteme Incorporate

______________________________________________________________________________________

50

A0,A1 - intrari de selectie pentru resursele interne ale circuitului (porturi; registre de

control) 8255.

RESET - Semnal de intrare “1” activ. In cazul in care este activ are ca efect stergerea

informatiei din toate registrele interne inclusiv registrul cuvintelor de

comanda si pune porturile A; B si C in “modul de intrare”.

Modul de selectare a resurselor interne este:

A1 A0 /RD /WR /CS

0 0 0 1 0 Citire continut PA

0 1 0 1 0 Citire continut PB

1 0 0 1 0 Citire continut PC

1 1 0 1 0 Combinatie ilegala

0 0 1 0 0 Scriere in PA

0 1 1 0 0 Scriere in PB

1 0 1 0 0 Scriere in PC

1 1 1 0 0 Scriere cuvant de comanda

* * * * 1 Circuit neselectat

Logica de comanda grup A si B contin, registrul cuvantului de comanda (control).

In acest registru se inscrie cuvantul de comanda aferent. Citirea acestui registru nu este

permisa.

Porturile circuitului 8255 au 3 moduri de functionare, care pot fi selectate prin

inscrierea cuvantului de comanda corespunzator in registrul de control.

Cele 3 moduri de lucru sunt:

- Mod 0 – I/O obisnuita

- Mod 1 – I/O strobata

- Mod 2 – Mag. bidirectionala

Cuvantul de comanda si control pentru definirea modului de lucru are urmatoarea

structura:

Page 51: Sisteme Incorporate

Sisteme Incorporate

______________________________________________________________________________________

51

D7 obligatoriu pe “1”

Porturile A si B pot fi definite separat In timp ce partile portului C sunt legate de

definirea modului de lucru a porturilor A si B.

Al doilea tip de cuvant de comanda caracterizat prin faptul ca bitul D7 = “0” se

utilizeaza pentru setarea respectiv resetarea oricarui bit din portul C. Aceasta

caracteristica este foarte utila la implementarea automatelor secventiale unde se cere

adeseori schimbarea valorii unei singure variabile de iesire.

Cuvantul de comanda are urmatoarea configuratie:

D7 D6 D5 D4 D3 D2 D1 D0

0 * * * DPBC2 DPBC1 DPBC0 SP

DPBC2,DPBC1,DPBC0 – contin combinatia corespunzatoare bitului din portul C care

se doreste a fi controlat (000 – bitul PC0 , 111 – bitul PC7).

SP – contine valoarea care se transmite bitului selectat prin DBPC2, DBPC1, DBPC0

(SP= “1” – bit setat, SP=“0” – bit resetat).

MODUL 0 – intrare/iesire normala

In acest mod data este scrisa sau citita simplu la/de la portul specificat. Oricare

port poate fi intrare sau iesire. In acest mod sunt posibile 16 configuratii de intrari/iesiri.

PA PB PC-H PC-L D7 D6 D5 D4 D3 D2 D1 D0

I I I I 1 0 0 1 1 0 1 1

I I I E 1 0 0 1 1 0 1 0

I I E I 1 0 0 1 0 0 1 1

I I E E 1 0 0 1 0 0 1 0

I E I I 1 0 0 1 1 0 0 1

..........

E E E E 1 0 0 0 0 0 0 0

Atunci cand PC-L si PC-H sunt definite (programate) diferit (unul intrare si

celalalt iesire) operatia de citire din port va transfera valorile intrarilor de la partea

definita ca port de intrare si imaginea iesirilor de la partea definita ca iesire.

Deci pe durata unui ciclu de citire sunt accesibile toate liniile indiferent daca au

fost programate ca intrari sau iesiri.

Page 52: Sisteme Incorporate

Sisteme Incorporate

______________________________________________________________________________________

52

Pentru partea programata ca iesire, toate liniile sunt accesibile individual, folosind

al doilea cuvant de comanda.

Cronogramele semnalelor aferente acestui mod este prezentata in figura 3.2.

Figura 3.2. Cronogramele de functionare a circuitului 8255 in modul 0 intrare normala

(a) respectiv iesire normala (b)

Modul 1. Intrare/iesire strobata numai Portul A si Portul B

In acest mod datele se transfera la/de la portul specificat In conjunctie cu

semnalele de strobare sau de stabilire a legaturii. In modul 1 porturile A si B pot fi

programate fie ca intrari fie ca iesiri si In aceasta situatie o parte din liniile portului C

devin semnale pentru generarea si acceptare a stabilirii legaturii cu dispozitivele

periferice.

Modul 1. Intrare strobata

In modul 1 intrare strobata semnalele de control al intrarii sunt:

/STB - intrare 0 activa – cand semnalul este zero. Valoarea de la intrarea portului

respectiv (A sau B) este inscrisa in registrul de intrare

IBF - semnalul de iesire “1” activ prin care se indica faptul ca data a fost inscrisa in

registrul de intrare dar nu a fost inca citita de microprocesor/microcontroler.

INTR - iesire “1” activa, cerere de intrerupere. Se activeaza dupa incarcarea datelor

in bufferul de intrare.

Cronogramele semnalelor aferente acestui mod este prezentata in figura 3.3.

Page 53: Sisteme Incorporate

Sisteme Incorporate

______________________________________________________________________________________

53

Figura 3.3. Cronogramele de functionare a circuitului 8255 in modul 1 intrare strobata

Semnalele /STB; IBF si INTR nu sunt comune pentru porturile A si B. In functie

de modul de programare, semnalele se obtin prin intermediul liniilor portului C astfel:

Portul A Portul B

/STB_A PC-4 /STB_B PC-2

IBF_A PC-5 IBF_B PC-1

INTR_A PC-3 INTR_B PC-0

Liniile ramase nefolosite PC6, 7 pot fi configurate ca linii generale de

intrare/iesire.

Pentru validarea generarii cererilor de Intrerupere INTR-A si INTR-B pentru

fiecare port In parte exista un bistabil INTE (INTE-A pentru portul A si INTE-B pentru

portul B) controlat prin program.

Pentru INTE-A bitul asociat este PC4 iar pentru INTE-B bitul asociat este PC2.

Cuvantul de comanda pentru setarea modului 1 intrare strobata pentru porturile A

si B este:

D7 D6 D5 D4 D3 D2 D1 D0

1 0 1 1 1/0 1 1 1/0

Modul 1 iesire strobata

In modul 1 iesire strobata semnalele de control al iesirilor sunt:

/OBF - intrare “0” activa prin care se indica faptul ca UC a Inscris o data In portul

de iesire specificat.

/ACK - intrare “0” activa prin care se informeaza circuitul I8255 ca data de la

portul A sau B a fost acceptata de periferic (semnalul --ACK se primeste de

la periferic)

INTR - iesire “1” activa, cerere de Intrerupere. Poate fi utilizat pentru a Intrerupe

UCP cand un dispozitiv de iesire a acceptat datele transmise si prin urmare

se poate initia un nou transfer de iesire.

Cronogramele semnalelor aferente acestui mod este prezentata in figura 3.4.

Page 54: Sisteme Incorporate

Sisteme Incorporate

______________________________________________________________________________________

54

Figura 3.4. Cronogramele de functionare a circuitului 8255 in modul 1 iesire strobata

Semnalele /OBF; /ACK si INTR nu sunt comune pentru porturile A si B. In

functie de modul de programare, semnalele se obtin prin intermediul portului C astfel:

Portul A Portul B

/OBF_A PC-7 /OBF_B PC-1

/ACK_A PC-6 /ACK_B PC-2

INTR_A PC-3 INTR_B PC-0

Liniile ramase nefolosite PC4,5 pot fi configurate ca linii generale de

intrare/iesire.

Pentru validarea generarii cererilor de Intrerupere INTR-A si INTR-B pentru

fiecare port In parte exista un bistabil INTE (INTE-A pentru portul A si INTE-B pentru

portul B) controlat prin program.

Pentru INTE-A bitul asociat este PC6 iar pentru INTE-B bitul asociat este PC2.

Cuvantul de comanda pentru setarea modului 1 iesire strobata pentru porturile A

si B este:

D7 D6 D5 D4 D3 D2 D1 D0

1 0 1 0 1/0 1 0 1/0

Modul 2 – Magistrala bidirectionala

Acest mod de functionare furnizeaza mijlocul de comunicare cu un dispozitiv

periferic pe o singura magistrala de 8 biti In ambele sensuri (emisie si receptie).

In acest mod de lucru se poate folosi numai portul A care va folosi si 5 biti ai portului C

pentru semnale de control si stare:

PC7 - /OBF - indica faptul ca UC a scris o data de iesire In portul A

PC6 - /ACK - valideaza “bufferul de iesire cu trei stari” al portului A

pentru a trimite data catre periferie (activat de periferic).

PC5 - IBF - indica faptul ca data a fost incarcata in registrul de intrare.

PC4 - /STB - incarca datele in registrul de intrare

PC3 - INTR_A - cerere de Intrerupere valabila atat pentru operatii de intrare

cat si de iesire

Page 55: Sisteme Incorporate

Sisteme Incorporate

______________________________________________________________________________________

55

INTE1 – asociat cu --OBF este controlat de PC6 (pentru iesire)

INTE2 – asociat cu IBF este controlat de PC4 (pentru intrare)

In acest mod de lucru portul B poate fi programat fie in mod 0 fie in mod 1.

Cuvantul de comanda va avea structura:

D7 D6 D5 D4 D3 D2 D1 D0

1 1 1 * 1/0 1/0 1/0 1/0

Cronogramele semnalelor aferente acestui mod este prezentata in figura 3.5.

Figura 3.5. Cronogramele de functionare a circuitului 8255 in modul 2 magistrala

bidirectionala

Page 56: Sisteme Incorporate

Sisteme Incorporate

______________________________________________________________________________________

56

3.2. Circuitele timer/counter i8253/i8254

Schema bloc interna a circuitelor timer/counter i8253/i8254 este prezentata in

figura 3.6.

Figura 3.6. Schema bloc interna a circuitelor timer/counter i8253/i8254

OBSERVATIE: Deoarece din punct de vedere al schemei bloc interne si a modurilor de

functionare ale canalelor, circuitele i8253 si i8254 sunt identice, se va face prezentarea

circuitului i8253 urmand a se preciza, pentru i8254, numai diferentele.

Functionarea circuitului i8253

Dupa cum se observa din figura 1 in structura interna a circuitului i8253 intra:

- un buffer al magistralei de date;

- o logica de comanda citire/scriere;

- un registru a cuvintelor de comanda;

- 3 canale de lucru.

Vehicularea informatiei de date intre circuit si unitatea centrala de prelucrare UCP

se face prin intermediul bufferului magistralei da date. Datele sunt emise sau receptionate

de circuit in cazul executiei de catre UCP a unor instructii de tipul IN sau OUT.

Logica de comanda citire/scriere stabileste sensul in care circula informatia si

genereaza semnalele interne de comanda necesare functionarii circuitului. Ea opereaza cu

urmatoarele semnale:

Page 57: Sisteme Incorporate

Sisteme Incorporate

______________________________________________________________________________________

57

/RD = 0, UCP citeste date de la circuit;

/WR = 0, UCP scrie date in circuit;

/CS = 0, selectie circuit. Valoarea sa nu influenteaza asupra operatiei curente de

numarare.

Liniile A0 si A1 ale magistralei de adrese servesc pentru selectarea canalelor si a

registrului cuvintelor de comanda, dupa cum urmeaza:

Informatiile pe care circuitul i8253 le primeste prin semnalele de comanda sunt:

/CS /RD /WR A1 A0

1 * * * * Circuit neselectat

0 1 1 * * Nicio operatie

0 1 0 0 0 Scrie (incarca) in canalul 0

0 1 0 0 1 Scrie (incarca) in canalul 1

0 1 0 1 0 Scrie (incarca) in canalul 2

0 1 0 1 1 Scrie (incarca) cuvantul de comanda

0 0 1 0 0 Citeste calanul 0

0 0 1 0 1 Citeste canalul 1

0 0 1 1 0 Citeste canalul 2

0 0 1 1 1 Valabil numai pentru i8254. Comanda speciala de citire

inapoi

Cele 3 canale sunt complet independente unul fata de altul. Fiecare are modul sau

de functionare si de numarare, fiecare trebuind sa fie programat individual. Capacitatea

canalelor este de 16 biti iar continutul lor poate fi un numar binar sau un numar codificat

BCD. Valoarea maxima cu care pot fi ele preancarcate este 65535 in binar sau 9999 in

BCD.

Canalele sunt incarcate initial prin program de catre UCP, continutul lor fiind, in

principiu decrementat de impulsurile primite la intrarea CLK conditionat de modul de

functionare si de starea liniei de intrare GATE. Pe linia de iesire OUT se va obtine un

semnal a carui forma depinde de modul de programare ales pentru canalul in cauza.

Fiecare canal poate functiona in unul din urmatoarele moduri:

• Mod 0 – numarator de evenimente;

• Mod 1 – monostabil redeclansabil;

• Mod 2 – generator de impulsuri;

• Mod 3 – generator de semnale dreptunghiulare;

• Mod 4 – monostabil declansabil prin program (soft);

• Mod 5 – monostabil declansabil prin semnal (hard).

A1 A0

0 0 Canal 0

0 1 Canal 1

1 0 Canal 2

1 1 Registrul Cuvintelor de comanda

Page 58: Sisteme Incorporate

Sisteme Incorporate

______________________________________________________________________________________

58

Pentru precizarea modului de lucru si a altor informatii UCP trebuie sa trimita

pentru fiecare canal cate un cuvant de comanda. O parte din bitii acestor cuvinte de

comanda indica la care canal se refera. Aceste cuvinte de comanda sunt primite prin

bufferul magistralei de date intr-un registru al cuvantului de comanda de unde sunt

dirijate catre elementele de memorare (registrul cuvant de comanda) aferente fiecarui

canal.

Programarea circuitului i8253

Fiecare canal este programat individual prin scrierea cuvantului de comanda

corespunzator si a inca 1 sau 2 cuvinte (octeti) reprezentand numarul cu care se

preincarca canalul. Ordinea in care se transmit octetii ce reprezinta numarul de

preincarcare este: intai cel mai putin semnificativ si apoi cel mai semnificativ. In aceeasi

ordine se si citesc, in cazul unei operatii de citire a continutului canalului.

Pentru fiecare canal intai se transmite cuvantul de comanda si apoi octetii

continand numarul de preincarcare. Nu este necesar ca transmiterea cuvantului de

comanda si a octetilor sa se efectueze consecutiv, dar trebuie mentinuta ordinea descrisa

mai sus. In cazul in care numarul de preincarcare este pe doi octeti trebuie insa ca acestia

sa fie trimisi consecutivi. Numaratorul unui canal nu este incarcat pana cand valoarea de

preincarcare este scrisa de UCP si urmata de un front crescator si un front descrescator al

semnalului CLK al canalului respectiv. Orice citire a continutului numaratorului unui

canal inainte de frontul descrescator al semnalului CLK poate duce la invalidarea datei.

Ordinea in care se programeaza cele 3 canale (canalul 0 nu este necesar sa fie primul

programat la fel cum canalul 2 nu trebuie sa fie ultimul).

Structura cuvantului de comanda este:

D7 D6 D5 D4 D3 D2 D1 D0

SC1 SC0 RL1 RL0 M2 M1 M0 BCD

Semnificatiile bitilor cuvantului de comanda sunt:

BCD = Daca are valoarea 0 numarul de preincarcare este codificat in binar

Daca are valoarea 1 numarul de preincarcare este codificat BCD

M2 M1 M0 Stabilesc modul de lucru

0 0 0 Modul 0

0 0 1 Modul 1

* 1 0 Modul 2

* 1 1 Modul 3

1 0 0 Modul 4

1 0 1 Modul 5

Page 59: Sisteme Incorporate

Sisteme Incorporate

______________________________________________________________________________________

59

RL1 RL0 Comanda de citire sau preancarcare

0 0 Memorare continut numarator in registrele pentru citire

0 1 Citire/Scriere octet mai putin semnificativ si pune octetul mai

semnificativ pe zero

1 0 Citire/Scriere octetul mai semnificativ si pune octetul mai putin

semnificativ pe zero

1 1 Citire/Scriere 2 octeti, cel mai putin semnificativ primul

SC1 SC0 Selectie canal

0 0 Selectie canal 0

0 1 Selectie canal 1

1 0 Selectie canal 2

1 1 Combinatie nepermisa pentru 8253. Comanda de citire inapoi pentru

8254

Citirea continutului unui canal se poate face in doua moduri:

1) normal – citirea se face pe D0-D7 prin selectia canalului dorit folosind liniile

A1A0. Singura cerinta a acestei metode este de a asigura un numar stabil la citire.

In acest scop operatia in curs (de numarare) trebuie inhibata la numaratorul

selectat pentru citire fie prin intrarea GATE fie prin logica externa care sa inhibe

impulsurile CLK cand se face citirea;

2) prin memorare – in acest mod citirea se face prin trimiterea mai intai a unui

cuvant de comanda de memorare (cuvant cu RL1 si RL0 PE 0) care determina

inscrierea informatiei din numarator intr-un registru intern cu aceeasi adresare ca

si numaratorul.

In cazul transmiterii unei comenzi de memorare, bitii D3-D0 isi pierd semnificatia.

Comanda de citire inapoi NUMAI pentru i8254

Aceasta comanda este folosita pentru verificarea:

- valorii din numarator;

- starea curenta a pinului OUT;

- starea fanionului de zero (NULL COUNT) a canalului selectat.

Comanda este scrisa in registrul cuvant de comanda si are urmatoarea structura:

D7 D6 D5 D4 D3 D2 D1 D0

1 1 /COUNT /STATUS CNT2 CNT1 CNT0 0

Semnificatiile bitilor sunt:

/COUNT = 0 Citeste in registrul intern valoarea din numaratorul corespunzator canalului

selectat

Page 60: Sisteme Incorporate

Sisteme Incorporate

______________________________________________________________________________________

60

/STATUS = 0 Citeste intr-un registru intern starea canalului selectat

CNT2 = 1 Selectie canal 2

CNT1 = 1 Selectie canal 1

CNT0 = 1 Selectie canal 0

Comanda de citire inapoi poate fi folosita pentru citirea simultana a celor 3

canale. Pana la citirea valorii din canalul selectat numararea este blocata.

Octetul de stare care poate fi citit (/STATUS = 0) are urmatoarea structura:

D7 D6 D5 D4 D3 D2 D1 D0

OUTPUT NULL

COUNT

RL1 RL0 M2 M1 M0 BCD

Semnificatiile bitilor octetului de stare:

OUTPUT = Prin valoarea sa indica starea logica a pinului OUT

0 – nivel logic 0 pe linia OUT

1 – nivel logic 1 pe linia OUT

NULL COUNT = Indica prin valoarea sa daca continutul numaratorului este 0 sau nu

0 – continutul numaratorului nu este zero

1 – continutul numaratorului este zero

RL1, RL0 = Au aceeasi semnificatie ca la programare

M2, M1, M0 = Au aceeasi semnificatie ca la programare

BCD = Au aceeasi semnificatie ca la programare

Modurile de functionare ale circuitelor i8253/i8254

Mod 0 – Numarator de evenimente

Dupa inscrierea modului de lucru (cuvantul de comanda) iesirea OUT va fi trecuta

in “0” logic. Dupa ce numarul este incarcat in numarator, OUT va ramane pe “0” si

numaratorul va numara impulsurile (evenimentele) de la intrarea CLK. Cand se ajunge la

valoarea finala (continutul numaratorului este zero) OUT va trece in “1” logic si ramane

la aceasta valoare pana cand canalul este reincarcat cu un nou mod de lucru sau cu un nou

numar moment in care OUT este trecut in “0” logic. Inregistrarea evenimentelor este

validata de semnul GATE = “1”. Daca GATE = “0” evenimentele nu sunt numarate.

Cand GATE redevine “1” numararea continua de la valoarea ramasa in numarator.

Reincarcarea numaratorului in timpul numararii are loc astfel:

Page 61: Sisteme Incorporate

Sisteme Incorporate

______________________________________________________________________________________

61

- incarcarea primului octet opreste numararea curenta

- incarcarea celui de al doilea octet porneste noua numarare.

Figura 3.7. Cronogramele de functionare in modul 0

Mod 1 – Monostabil programabil

Dupa inscrierea modului de lucru iesirea OUT este trecuta in “1” logic. OUT

devine “0” logic la numarrea urmatorului impuls dupa frontul crescator al intrarii GATE.

OUT redevine “1” la terminarea numararii. Daca o noua valoare de numarat este

incarcata in timp ce OUT = “0” aceasta nu va afecta durata impulsului pana la urmatoarea

comanda GATE de declansare (urmatoarea tranzitie din “0” in “1”). Numarul curent

poate fi citit la orice moment fara a afecta impulsul monostabilului. Monostabilul este

redeclansabil, deci OUT va ramane pe “0” pentru intregul numar, dupa orice ultim front

crescator al intrarii GATE.

Figura 3.8. Cronogramele de functionare in modul 1

Mod 2 – Generator de impulsuri

Iesirea OUT este “1” logic pe durata a N-1 impulsuri aplicate la intrarea CLK si

“0” logic pe durata celui de al N-lea impuls unde N este numarul cu care s-a incarcat

numaratorul. Acest lucru are loc daca GATE este pe “1” logic. Cand GATE devine “0”

logic se forteaza OUT pe “1” logic si decrementarea inceteaza iar tranzitia din “0” in “1”

a lui GATE reinitializeaza numararea de la valoarea inscrisa prin program ceea ce

echivaleaza cu resincronizarea hard a numaratorului. Cand este inscris acest mod OUT va

ramane pe “1” logic pana cand numaratorul este incarcat. Astfel se poate asigura

sincronizarea prin soft.

Daca numaratorul este reincarcat intre impulsurile de iesire perioada prezentata nu va fi

afectata, dar perioada urmatoare va reflecta noua valoare.

Page 62: Sisteme Incorporate

Sisteme Incorporate

______________________________________________________________________________________

62

Figura 3.9. Cronogramele de functionare in modul 2

Mod 3 – Generator de semnale dreptunghiulare

Este similar cu modul 2 cu exceptia faptului ca OUT va fi “1” logic pana cand o

jumatate de numar a fost completata (pentru numere pare) si va trece pe “0” logic pentru

cealalta jumatate a numarului. Aceasta se realizeaza prin decrementarea numaratorului cu

2 pe frontul cazator al fiecarui impuls de tact CLK. Cand numaratorul ajunge la valoarea

finala (0) starea iesirii OUT se schimba si numaratorul este reincarcat cu numarul intreg

si procesul se repeta. Daca numarul este impar si OUT = 1, primul impuls de tact (dupa

ce numarul este incarcat) decrementeaza cu 1, impulsurile ulterioare decrementeaza cu 2.

La atingerea valorii finale OUT este pe “0” logic si intreg numarul este reincarcat. Primul

impuls urmator reincarcarii decrementeaza numaratorul cu 3, impulsurile urmatoare

decrementeaza numaratorul cu 2, apoi intreg procesul se repeta. Pe aceasta cale daca

numarul este impar iesirea OUT va fi pe “1” logic timp de (N+1)/2 perioade si respectiv

pe “0” logic timp de (N-1)/2 perioade. Restul precizarilor fiind identice cu cele facute la

modul 2.

Figura 3.10. Cronogramele de functionare in modul 3

Modul 4 – Monostabil declansat prin program

Dupa incarcarea numaratorului iesirea OUT ramane pe “1” logic (stare in care se

afla dupa inscrierea modului de lucru) pe durata a N impulsuri CLK (pana se ajunge la

valorea finla 0) cand OUT va trece in “0” logic dupa ce revine pe “1” logic la urmatorul

impuls CLK. Acest mod de functionare se reia dupa reincarcarea prin program a

numaratorului. Daca GATE este “0” logic numararea este inhibata. Daca numaratorul

este reincarcat intre impulsurile de iesire, perioada prezenta nu este afectata dar

urmatoarea va reflecta noua valoare.

Page 63: Sisteme Incorporate

Sisteme Incorporate

______________________________________________________________________________________

63

Figura 3.11. Cronogramele de functionare in modul 4

Modul 5 – Monostabil declansat prin semnal

Numaratorul va porni numaratoarea dupa frontul crescator al intrarii de declansare

GATE si va trece OUT in “0” logic pentru o perioada a semnalului CLK cand se ajunge

la valoarea finala. Numaratorul este redeclansabil. Iesirea OUT nu va lua valoarea “0”

logic pana la o numarare completa dupa frontul crescator al oricatrei declansari.

Figura 3.12. Cronogramele de functionare in modul 5

Page 64: Sisteme Incorporate

Sisteme Incorporate

______________________________________________________________________________________

64

4. Sistemele de interfatare ale Sistemelor Incorporate

Sistemul de interfatare reprezinta elementul cel mai caracteristic al structurii

Sistemelor Incorporate.

El serveste la adaptarea intre semnalele din/sau spre exterior (proces) si cele cu

care poate opera microsistemul.

Principalele tipuri de semnale intalnite la conectarea cu exteriorul sunt prezentate

in figura 4.1.

Semnale purtatoare de informatii

Analogice Continue De tip "curent" 0 - 10 mA cc

4 - 20 mA cc

De tip "tensiune" De nivel mare (110 V cc sau ac)

De nivel mediu (n *10 V cc sau ac)

De nivel mic (0 - 20 mV)

DiscontinueImpulsuri cu frecventa

modulataIn amplitudine

In durata

QuasinumericeImpulsuri cu amplitudinesi durata constante darcu informatia continuta

In frecventa unui tren de impulsuri

In perioada unui tren de impulsuri

In numarul de impulsuridintr-o secventa

NumericeIndicand starea unor elemente(se mai numesc semnale logice

sau semnale binare)

Indicand valoarea numerica a unor marimi

In forma binara

In forma BCD

Semnale de comanda

Analogice De tip "curent" 0 - 10 mA cc

4 - 20 mA cc

De tip "tensiune" +/- 10 Vcc

NumericeCu doua stari(pornit - oprit)

Propriu-zise(marimi de referinta)

Semnale

Figura 4.1. Principalele tipuri de semnale

In general, in organizarea sistemului de interfatare se disting cate doua categorii

pentru fiecare sens: intrari numerice si intrari analogice, respectiv iesiri numerice si iesiri

analogice.

Page 65: Sisteme Incorporate

Sisteme Incorporate

______________________________________________________________________________________

65

In oricare din aceste sisteme, una din problemele de baza este aceea ca semnalul

sa ajunga „curat” (neafectat de perturbatii) si fara erori la utilizator, si pe cat posibil sa se

asigure o decuplare intre circuitele de forta (curenti tari) si cele de prelucrare a

informatiei (de curenti slabi, de comanda). Solutiile tehnice pentru rezolvarea acestor

probleme sunt specifice caracteristicilor semnalelor.

4.1. Principii de structurare pe nivele ale interfetelor

Sistemele incorporatesunt (SI) in estenta sisteme de calcul specializate (sisteme

echipate cu microprocesor sau microcontroler), si ca atare conectarea acestora cu

exteriorul (procesul) respecta principiile generale de interfatare a unei unitati centrale de

prelucrare (CPU) cu procesul. O schema generala de interfata, asa cum este prezentata in

figura 4.2, evidenteaza trei nivele de transfer al informatiei.

Nivelul 1 se refera la interfata proprie CPU si asigura schimburile de informatii pe

linii de legatura, organizate in sistemul magistrala.

Nivelul 2 se refera la interfata prin legatura directa a sistemului de intrare/iesire,

asigurand administrarea schimburilor de informatie intre CPU si elementele de cuplare la

perifericele de proces.

Nivelul 3 se refera la interfata speciala pentru terminale de proces si asigura

conexiunea cu traductoarele (instrumente de proces) considerate periferice speciale. La

acest nivel se intalnesc semnale prelevate din proces si semnale dirijate spre proces

CPULogica

administrariischimburilor

TamponSubansamblespecializate

Proces

TamponSubansamblespecializate

Nivelul 1 Nivelul 2 Nivelul 3

Adaptare Interfata de proces

Figura 4.2. Structura generala a unei interfete

Se observa ca cele 3 nivele de transfer al informatiei implica doua subansamble

hardware: unul care asigura interfata propriu-zisa de proces (intre nivelele 2 si 3),

incluzand si perifericele specializate (display, imprimante etc.), altul care asigura

adaptarea, specifica fiecarui mod de legatura a CPU, dar indiferent de perifericul de

proces. In cazuri particulare, cele doua subansamble pot fi realizate unitar, situatie in care

nivelul 2 dispare.

4.2. Transferul de informatii la nivelul 1 al interfetelor

Nivelul 1 al interfetelor, care contine CPU, se caracterizeaza prin existenta

memoriilor si a unor unitati specializate de intrare/iesire, in esenta porturi numerice care

Page 66: Sisteme Incorporate

Sisteme Incorporate

______________________________________________________________________________________

66

pot fi selectate de adresele de control, incarcate (scrierea de date de catre CPU) sau citite

(citire de date executata de CPU).

Functie de tipul CPU utilizat adresarea porturilor de intrare/iesire se poate realiza in

doua moduri distincte:

- „memory mapped” – in cazul in care CPU nu detine spatiu distinct de adrese

pentru operatiile de intrare/iesire fata de zona alocata memoriei. De ex.

Microcontrolerele din familiile MCS51 si Motorola HC11 (vezi figura 4.3)

- „memory mapped I/O mapped” – in cazul in care CPU detine spatiu separat de

adrese pentru memorii si porturile de intrare/iesire. De ex. Microprocesoarele din

familiile INTEL 8086 si Motorola 68000 (vezi figura 4.4).

CPU

MemoriePort

Intrare/Iesire

Magistrala de Adrese

Magistrala de Date

/MEM_RD

/MEM_WR

Figura 4.3. Structura de principiu al unui sistem „memory mapped”

CPU

MemoriePort

Intrare/Iesire

Magistrala de Adrese

Magistrala de Date

/MEM_RD

/MEM_WR

/IO_RD

/IO_WR

Figura 4.4. Structura de principiu al unui sistem „memory mapped I/O mapped”

In cazul sistemelor „memory mapped” accesul la porturile de intrare/iesire (PIE)

se face in mod identic ca si accesarea memoriei (prin instructii specifice de accesare a

memoriei). Adresele alocate pentru PIE sunt cuprinse in harta adreselor care contine si

adresele memoriilor putandu-se utiliza acelasi decodificator de adrese pentru obtinerea

semnalelor de selectie corespunzatoare.

In cazul sistemelor „memory mapped I/O mapped” acestea sunt caraterizate prin

faptul ca accesul la PIE se realizeaza prin instructiuni specifice, de genul IN/OUT,

Page 67: Sisteme Incorporate

Sisteme Incorporate

______________________________________________________________________________________

67

diferite de cele specifice accesarii memoriei. In acest caz spatiile de adresare pentru

memorii, respectiv PIE sunt complet separate utilizandu-se decodificatoare de adrese

separate pentru obtinerea semnalelor de selectie pentru memorii, respectiv PIE.

4.3. Transferul de informatii la nivelul 2 al interfetei

Pentru a putea descrie schimburile de informatii la nivelul 2, trebuie urmatite mai

intai structurile hardware ale subansamblelor ce asigura transmiterea informatiilor intre

nivelele 2 si 3. Aceste subansamble se pot grupa in doua clase mari:

- module de achizitie de date de la proces (module de intrare - MI);

- module de distributie de date catre proces (module de iesire - ME).

MI si ME pot fi, la randul lor, grupate in doua mari categorii, dupa cum datele sunt

numerice sau analogice.

Module de intrari numerice (MIN)

Asigura introducerea sub forma binara in SI a unei informatii referitoare la starea

procesului, sarcinile modulelor fiind:

o colectarea si centralizarea informatiei numerice;

o selectarea liniilor de intrare si adaptarea impulsurilor receptionate la

caracteristicile de intrare ale elementului receptor;

o transferul informatiei obtinute catre CPU.

Numarul si nivelul semnalelor numerice provenind de la proces variaza in limite

largi. In general, informatia este transmisa prin niveluri de tensiune.

Pentru asigurarea corectitudinii informatiei si pentru protejarea sistemului de calcul

semnalele de la senzori sufera o seama de transformari (prelucrari) astfel incat sa se

asigure compatibilitate cu semnalele de nivel TTL.

Structura de principiu al unui bloc de prelucrare a semnalelor de intrare (BPSI) este

prezentata in figura 4.5.

Uext

Adaptare FiltrareLimitare

si FiltrareSeparareGalvanica

Formare

Figura 4.5. Schema de principiu al BPSI

In figura 4.6 este prezentata o schema electrica de principiu utilizata in

implementarea BPSI.

Page 68: Sisteme Incorporate

Sisteme Incorporate

______________________________________________________________________________________

68

R1

R2

Uext

R5

ISO1

12

54

C1

1 2

R3

R4

VCC

D2C2

1 2

D1

Figura 6. Schema electrica de principiu a unui BPSI

Structura de principiu a unui MIN este prezentata in figura 4.7.

BPSI 1

BPSI 2

BPSI n

MUX

RT

BC

CPU

S1

S2

Sn

Uext Figura 4.7. Structura de principiu a MIN

Semnalele numerice primite din proces sunt aduse la nivel TTL prin intermediul

BPSI. Prin intermediul multiplexorului MUX se asigura memorarea in registrul tampon

RT a informatiei continute pe canalul indicat de adresa trimisa de CPU si interpretata de

blocul logic de comanda BC.

Structura din figura 4.5 poate fi adaptata si pentru cazul cand pe canale se

transmit combainatii de cod (cuvinte de mai multi biti); in acest caz informatia poate fi

transmisa fie serial, fie paralel.

Module de iesiri numerice (MEN)

MEN converteste semnalele transmise de SI in comenzi numerice cu caracteristici

– nivel, durata, putere – specifice elementelor carora sunt destinate. Exista trei modalitati

de furnizare a semnalelor numerice pe canale de tip ON/OFF, care asigura comenzi

binare de tip inchis-deschis, pe canale cu iesire in tren de impulsuri (modulate in

frecventa sau durata) utilizate in general pentru comanda motoarelor (de curent continuu

sau pas cu pas) si pe canale cu iesiri in cod de impulsuri utilizate in general pentru

comanda dispozitivelor de afisare a datelor.

Schema de principiu pentru un MEN este prezentata in figura 4.8.

Page 69: Sisteme Incorporate

Sisteme Incorporate

______________________________________________________________________________________

69

RT1

BC

CPURT2

RTn

EtajFinal

Amplificatorde Putere

SeparareGalvanica

BPSE n

EtajFinal

Amplificatorde Putere

SeparareGalvanica

EtajFinal

Amplificatorde Putere

SeparareGalvanica

BPSE 1

BPSE 2

SpreProces

Figura 4.8. Strucutra de principiu a MEN

In figura 4.8 a fost indicat si blocul de prelucrare al semnalelor de iesire numerice

BPSE.

In figura 4.9, functie de elementul final al canalelor de tip ON/OFF, sunt prezentate

doua tipuri de module si anume:

a) cu iesire pe releu (figura 4.9.a);

b) cu iesire pe tranzistor (figura 4.9.b).

VCC

(Spreproces)

ISO1

12

54

Uext

D1

Iesire tipcontact

R1

RL1

RELAY SPST

43

12

U1A

74LS07

1 2Comanda

a)

VCC

R3

Q1A

ISO1

12

54

D2R2

Xs

Q2A

R1

Ue

R5U1A

74LS07

1 2Comanda

R4

b)

Figura 4.9. Schemele de principiu ale modulelor de tip ON/OFF:

a) cu iesire pe releu; b) cu iesire pe tranzistor

Page 70: Sisteme Incorporate

Sisteme Incorporate

______________________________________________________________________________________

70

Module de intrari analogice (MIA)

Indiferent de structura globala, MIA foloseste urmatoarele elemente de baza:

- element de jonctiune, care realizeaza conectarea la MIA a liniilor pe care se

transmit semnalele din proces;

- elemente de prelucrare primara a semnalului analogic (EPP), care realizeaza in

principal functii de filtrare si compensare;

- multiplexoare (MUX), care asigura selectarea punctului de masurare dorit, prin

aceasta creindu-se posibilitatea utilizarii in comun a unui CAN de toate circuitele

de intrare;

- amplificatoare (A), care au drept scop aducerea semnalului analogic in gama

necesara conversiei A/N, precum si adaptarea de impedanta;

- dispozitivul de esantionare si memorare (DEM), ce consta dintr-un esantionator si

un extrapolator de ordinul 0, care pastreaza valoarea semnalului esantionat pe

durata necesara conversiei;

- convertorul analog/numeric (CAN), care realizeaza conversia in forma numerica

(de obicei in cod binar natural sau in BCD) a semnalelor analogice;

- registrul tampon (RT), care contine valoarea numerica a semnalului solicitat de

CPU, si eventualele informatii referitoare la terminarea conversiei, incadrarea

semnalului masurat intre anumite limite etc.;

- blocul de comanda (BC) asigura desfasurarea secventiala corespunzatoare a

tuturor operatiilor din cadrul MIA.

Structura generala a unui MIA este prezentata in figura 4.10.

EPP A

MUX

A DEM CAN RT

BC

Semnaleanalogicedin proces

Intrari de comanda

Spre CPU

Figura 4.10. Structura generala a MIA

Amplasarea amplificatorului depinde esential de nivelul semnalului, de viteza de

lucru, de domeniul dinamic al CAN. O amplasare inainte de MUX determina utilizarea

unui multiplexor mai putin pretentios si a unui CAN cu numar de biti mai mic, intrucat

semnalele primite de la MUX sunt aceeasi amplitudine. Aceasta varianta se recomanda

pentru un numar mic de canale (deoarece se utilizeaza cate un amplificator pe fiecare

canal).

O alta varianta ce se poate utiliza in acelasi scop consta in amplasarea dupa MUX

a unui amplificator cu factor de amplificare programabil (AFAP), care este un

amplificator de semnal mic a carui amplificare este controlata de SI, in asa fel incat sa se

modifice odata cu selectarea canalului de masura de MUX.

Page 71: Sisteme Incorporate

Sisteme Incorporate

______________________________________________________________________________________

71

Module de iesiri analogice (MEA)

Prin intermediul acestor module SI transmite in exterior (procesului) comenzile

necesare sau poate fi cuplat cu diverse blocuri de stocare, vizualizare sau semnalizare a

informatiei.

In realizarea MEA se disting doua variante principale, care se deosebesc dupa

modul de utilizare al CNA.

In figura 4.11 se prezinta o schema care utilizeaza un CNA comun pentru toate

canalele, ceea ce constituie un avantaj; acest avantaj este contracarat de faptul ca

structura necesita un demultiplexor analogic si memorii analogice MAi pentru memorarea

comenzii analogice pe durata cat e necesara in proces.

De laCPU

CNAMUX

MA1

MAn

Proces

Figura 4.11. Schema bloc de principiu al MEA cu un singur CNA

O a doua varianta utilizeaza cate un CNA pentru fiecare canal in parte, permitand

o demultiplexare numerica si memorarea numerica intr-un registru ce precede CNA, dupa

care semnalul este adus in gama de semnal unificat prin adaptoarele de gama (AG)

(figura 4.12).

MUX(numeric)

BC

RT

RT

RT

CNA

CNA

CNA

AG

AG

AG

De laCPU

Proces

Figura 4.12. Schema bloc de principiu al MEA cu CNA pe fiecare canal