Sunteți pe pagina 1din 71

SISTEME INCORPORATE

Curs
Sisteme Incorporate

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.

______________________________________________________________________________________
2
Sisteme Incorporate

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

______________________________________________________________________________________
3
Sisteme Incorporate

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.

______________________________________________________________________________________
4
Sisteme Incorporate

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, Criterii: pret, viteza de lucru
predictibilitate

______________________________________________________________________________________
5
Sisteme Incorporate

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.

______________________________________________________________________________________
6
Sisteme Incorporate

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.

______________________________________________________________________________________
7
Sisteme Incorporate

1.5. Proiectarea SI

In figura 1.3 este prezentata ordinograma corespunzatoare fazelor de proiectare al


unui SI.

Cerinte
Schemele bloc Functionale Schemele bloc
generice ale generice ale
componentei componentei
hardware Formalizarea software
comportamentala

Selectie Selectie
Platforma Module
Stabilirea Hardware Defalcarea Software
platformei hardware/
hardware software

Integrarea blocurilor Integrarea Module software


Blocuri hardware
specifice in platforma modulelor specifice
specifice aplicatiei
hardware software aplicatiei

Sistemul de Operare

HW/SW
Simularea
Co-simulare Simularea de
Functionalitatii
nivel scazut a
sistemului
softwareului
hardware

Testare hardware si software pe simulator/emulator

Proiectare Dezvoltarea
fizica a softwareului
hardwareului aplicatie

Realizare Testare
Verificarea HW/SW pe prototip
Prototip Software

Fabicatie de
Serie

Figura 1.3. Organigrama procesului de proiectare al unui SI

______________________________________________________________________________________
8
Sisteme Incorporate

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.

______________________________________________________________________________________
9
Sisteme Incorporate

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

______________________________________________________________________________________
10
Sisteme Incorporate

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;

______________________________________________________________________________________
11
Sisteme Incorporate

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;
______________________________________________________________________________________
12
Sisteme Incorporate

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

______________________________________________________________________________________
13
Sisteme Incorporate

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.

______________________________________________________________________________________
14
Sisteme Incorporate

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.

______________________________________________________________________________________
15
Sisteme Incorporate

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

______________________________________________________________________________________
16
Sisteme Incorporate

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.
______________________________________________________________________________________
17
Sisteme Incorporate

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 - MD interna prin @R0, @R1 sau SP
registrii - 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

______________________________________________________________________________________
18
Sisteme Incorporate

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

______________________________________________________________________________________
19
Sisteme Incorporate

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;

______________________________________________________________________________________
20
Sisteme Incorporate

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

______________________________________________________________________________________
21
Sisteme Incorporate

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
______________________________________________________________________________________
22
Sisteme Incorporate

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 S1S6 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.
______________________________________________________________________________________
23
Sisteme Incorporate

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.

______________________________________________________________________________________
24
Sisteme Incorporate

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.

______________________________________________________________________________________
25
Sisteme Incorporate

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.

______________________________________________________________________________________
26
Sisteme Incorporate

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.

______________________________________________________________________________________
27
Sisteme Incorporate

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:


IT0 - - daca este egal cu 0 cererea de intrerupere INT0 este activa pe nivel coborat
(0 logic)
- 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
______________________________________________________________________________________
28
Sisteme Incorporate

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
______________________________________________________________________________________
29
Sisteme Incorporate

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


______________________________________________________________________________________
30
Sisteme Incorporate

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

______________________________________________________________________________________
31
Sisteme Incorporate

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.

______________________________________________________________________________________
32
Sisteme Incorporate

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.

______________________________________________________________________________________
33
Sisteme Incorporate

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

______________________________________________________________________________________
34
Sisteme Incorporate

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

______________________________________________________________________________________
35
Sisteme Incorporate

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

______________________________________________________________________________________
36
Sisteme Incorporate

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
______________________________________________________________________________________
37
Sisteme Incorporate

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

______________________________________________________________________________________
38
Sisteme Incorporate

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

______________________________________________________________________________________
39
Sisteme Incorporate

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:

SMOD
f 2
f TxCLOCK
= OSC

12 [256 (TH 1)] 32

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:

SMOD
2 f OSC
(TH 1) = 256
384 baud _ rate

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.
______________________________________________________________________________________
40
Sisteme Incorporate

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.

______________________________________________________________________________________
41
Sisteme Incorporate

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

______________________________________________________________________________________
42
Sisteme Incorporate

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
______________________________________________________________________________________
43
Sisteme Incorporate

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.

______________________________________________________________________________________
44
Sisteme Incorporate

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


seriala

______________________________________________________________________________________
45
Sisteme Incorporate

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.

______________________________________________________________________________________
46
Sisteme Incorporate

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.

______________________________________________________________________________________
47
Sisteme Incorporate

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.

______________________________________________________________________________________
48
Sisteme Incorporate

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.
______________________________________________________________________________________
49
Sisteme Incorporate

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:

______________________________________________________________________________________
50
Sisteme Incorporate

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.

______________________________________________________________________________________
51
Sisteme Incorporate

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.

______________________________________________________________________________________
52
Sisteme Incorporate

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.

______________________________________________________________________________________
53
Sisteme Incorporate

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

______________________________________________________________________________________
54
Sisteme Incorporate

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

______________________________________________________________________________________
55
Sisteme Incorporate

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:

______________________________________________________________________________________
56
Sisteme Incorporate

/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:
A1 A0
0 0 Canal 0
0 1 Canal 1
1 0 Canal 2
1 1 Registrul Cuvintelor de comanda

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).
______________________________________________________________________________________
57
Sisteme Incorporate

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

______________________________________________________________________________________
58
Sisteme Incorporate

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

______________________________________________________________________________________
59
Sisteme Incorporate

/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 RL1 RL0 M2 M1 M0 BCD
COUNT

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:
______________________________________________________________________________________
60
Sisteme Incorporate

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

______________________________________________________________________________________
61
Sisteme Incorporate

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.

______________________________________________________________________________________
62
Sisteme Incorporate

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

______________________________________________________________________________________
63
Sisteme Incorporate

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

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)

Impulsuri cu frecventa
Discontinue In amplitudine
modulata

In durata

Impulsuri cu amplitudine
Quasinumerice si durata constante dar In frecventa unui tren de impulsuri
cu informatia continuta

In perioada unui tren de impulsuri

In numarul de impulsuri
dintr-o secventa

Indicand starea unor elemente


Numerice (se mai numesc semnale logice
sau semnale binare)

Indicand valoarea numerica


In forma binara
a unor marimi

In forma BCD

Semnale de comanda

Analogice De tip "curent" 0 - 10 mA cc

4 - 20 mA cc

De tip "tensiune" +/- 10 Vcc

Cu doua stari
Numerice
(pornit - oprit)

Propriu-zise
(marimi de referinta)

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.

______________________________________________________________________________________
64
Sisteme Incorporate

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

Adaptare Interfata de proces

Subansamble
Tampon
specializate

Logica
CPU administrarii Proces
schimburilor

Subansamble
Tampon
specializate

Nivelul 1 Nivelul 2 Nivelul 3


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

______________________________________________________________________________________
65
Sisteme Incorporate

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

Magistrala de Adrese

Port
Memorie Intrare/
Iesire
CPU

Magistrala de Date
/MEM_RD
/MEM_WR

Figura 4.3. Structura de principiu al unui sistem memory mapped

Magistrala de Adrese

Port
Memorie Intrare/
Iesire

CPU

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,
______________________________________________________________________________________
66
Sisteme Incorporate

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.

Limitare Separare
Adaptare Filtrare Formare
si Filtrare Galvanica

Uext
Figura 4.5. Schema de principiu al BPSI

In figura 4.6 este prezentata o schema electrica de principiu utilizata in


implementarea BPSI.

______________________________________________________________________________________
67
Sisteme Incorporate

VCC

R5

D1
R1 R4 1 2
1 2

5
R2 R3 D2 ISO1
C1 C2

4
Uext

Figura 6. Schema electrica de principiu a unui BPSI

Structura de principiu a unui MIN este prezentata in figura 4.7.

S1
BPSI 1
S2
BPSI 2 RT
MUX CPU

Sn
BPSI n

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

______________________________________________________________________________________
68
Sisteme Incorporate

Etaj Amplificator Separare


Final de Putere Galvanica RT1

BPSE 1

Spre Etaj Amplificator Separare CPU


Final de Putere Galvanica RT2
Proces
BPSE 2

Etaj Amplificator Separare


Final de Putere Galvanica RTn

BPSE n

BC

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

RL1
Iesire tip
contact
4 (Spre
3
D1 1 proces)
2
VCC

RELAY SPST
1

ISO1

U1A
R1
2

Comanda 1 2

74LS07

a)
Ue

R3

Q1A

D2 Xs
R2

VCC
R4
1

ISO1 Q2A

U1A
R1 R5
2

Comanda 1 2

74LS07

b)
Figura 4.9. Schemele de principiu ale modulelor de tip ON/OFF:
a) cu iesire pe releu; b) cu iesire pe tranzistor

______________________________________________________________________________________
69
Sisteme Incorporate

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.


Semnale
analogice
Spre
din proces
CPU
EPP A A DEM CAN RT

MUX

BC

Intrari de comanda
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.

______________________________________________________________________________________
70
Sisteme Incorporate

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.

MA1
CNA
MUX Proces
De la MAn
CPU

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

RT CNA AG

De la RT CNA AG
CPU MUX
(numeric) Proces

RT CNA AG
BC

Figura 4.12. Schema bloc de principiu al MEA cu CNA pe fiecare canal

______________________________________________________________________________________
71

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