Sunteți pe pagina 1din 24

1.

INTRODUCERE ÎN ELECTRONICA DIGITALĂ

1.1 Introducere
În cadrul acestei unităţi de învăţare se face o introducere în electronica
digitală, studenţii familiarizându-se cu circuitele cele mai simple ce stau la baza
prelucrării informaţiei.
Vor fi trecute în revistă noţiuni de bază despre funcţionarea unui sistem
electronic digital, atât ca hardware cât şi ca software. La baza oricărui sistem
hardware digital stau porţile logice, circuite elementare ce prelucrează intrări de tip
0 şi 1.

1.2 Competenţe dobândite


Prin parcurgerea acestui material studenţii vor dobândi cunoştinţe de bază
despre funcţionarea unui sistem electronic digital, fiind pregătiţi să treacă la
nivelul următor - cunoaşterea sistemelor digitale complexe.

1
1.3 Reprezentarea informaţiei în sistemele digitale
Odată cu lucrarea lui Claude Shannon, "O teorie matematică a comunicaţiilor", din
1948, a apărut Teoria informaţiei. Aceasta este o ramură a matematicii aplicate şi a ingineriei
electrice, care se ocupă cu cuantificarea informaţiei.
Având un mesaj e cu probabilitatea de apariţie pe, informaţia asociată mesajului e,
notată cu I, se calculează cu relaţia:
I  log a (1/ pe )   log a ( pe )

Dacă baza logaritmului a este 2, informaţia se măsoară în cifre binare (binary digit), sau
biţi.
Unitatea de măsură elementară a cantității de informație este bitul. O grupare de 8 biţi
formează un octet (numit şi byte). Doi octeţi (16 biţi) formează un cuvânt (word), iar din patru
octeţi (32 biţi) se constituie un cuvând dublu.
Fiecare bit poate avea două valori: 0 sau 1. Într-un circuit electric, acestor valori le
corespund două niveluri de tensiune (de exemplu 0 şi 5 volţi).
Un element fizic (circuit) cu două stări stabile poate memora o cantitate de informaţie
egală cu un bit. Prin alăturarea mai multor elemente fizice bistabile, fiecare fiind asociat cu un
bit, se poate memora o cantitate superioară de informaţie. Fiecare bit adăugat determină
dublarea cantităţii de informaţie.
Astfel, un număr de 2 circuite bistabile (2 biţi) poate avea în total 4 stări; cu patru
circuite (4 biţi) se pot obţine 8 stări şi aşa mai departe. Deci un număr de n circuite bistabile
(n biţi) determină un număr total de 2n stări.
Un octet (8 biţi) poate descrie în total 256 de stări, adică poate avea 256 de valori. Pe 9
biţi (un cuvânt) pot fi transmise 512 stări diferite, iar pe 10 biţi (210) se pot transmite 1024
biţi, adică un kilobit (nu un kilobyte!).
Un octet poate fi reprezentat ca în figura de mai jos:

Bitul cel mai din stânga se numește "cel mai semnificativ", iar cel mai din dreapta, "cel
mai puțin semnificativ". Dacă numerotăm biții cu cifre n între 0 și 7 începând de la cel mai
puțin semnificativ (de la dreapta la stânga) și notăm valorile biților respectivi (0 sau 1) cu b n,
atunci valoarea octetului este:

Un cuvânt (2 octeţi = 16 biţi) poate conţine valori între 0 şi 65535, adică 2 16, iar un
cuvânt dublu (32 biţi) poate conţine 232 valori.
Orice sistem fizic capabil să reprezinte biţi poate reprezenta de asemenea şi valori
numerice binare. Circuitele electronice sunt deci capabile să reprezinte numere binare. Un
tranzisor, atunci când funcţionează la limită, se poate afla într-una din cele două stări: fie în
stare blocată (curent de control zero), fie în stare de saturaţie (curent de control maxim). Dacă
un circuit cu tranzistor este proiectat pentru maximizarea probabilităţii de funcţionare într-una
din cele două stări (evitarea funcţionării tranzistorului în zona activă de funcţionare), acesta
poate fi folosit ca şi reprezentare fizică a unui bit. Căderea de tensiune măsurată la ieşirea
unui astfel de circuit poate fi folosită pentru reprezentarea unui singur bit. O tensiune joasă
reprezentând „0”, şi o tensiune ceva mai ridicată reprezentând „1” (de exemplu 0 şi respectiv
5 volţi).
Un circuit electronic conceput pentru acceptarea şi generarea semnalelor de tensiune ce
corespund numerelor binare 0 si 1 reprezintă o poartă logică. Porţile logice stau la baza
construcţiei circuitelor electronice digitale, de la cele mai simple (inversoare) până la
microprocesoare.

1.4 Porţi logice


1.4.1 Poarta inversoare
Este poarta logică a cărei ieşire este inversă faţă de intrare (intrare 0, ieşire 1 sau intrare
1, ieşire 0).

Tabela de adevăr:
Intrare Ieşire
1 0
0 1

Poarta neinversoare este poarta a cărei ieşire este identică cu intrarea (acelaşi efect se
poate obţine conectând două porţi inversoare în serie).
Având doar o intrare, singurele porţi „disponibile” sunt cele inversoare şi cele ne-
inversoare. Pentru a lucra cu mai multe posibilităţi, sunt necesare mai multe intrări.
O poartă cu o singură intrare prezintă doar două posibilităţi: fie intrarea este „înaltă” (1),
fie este „joasă” (0). În schimb, o poartă cu doua intrări are patru posibilităţi (00, 01, 10, 11). O
poartă cu trei intrări are opt combinaţii posibile (000, 001, 010, 011, 100, 101, 110 şi 111).
Numărul combinaţiilor posibile este egal cu 2n, unde n este numărul de intrări.
Întrucât există mai multe combinaţii posibile folosind doar două terminale, există mai
multe tipuri de porţi logice cu două intrări.

1.4.2 Poarta logică ŞI (AND)

Tabela de adevăr:
Intrare A Intrare B Ieşire
0 0 0
0 1 0
1 0 0
1 1 1

Denumirea de poartă ŞI vine de la faptul că ieşirea porţii va fi 1 dacă şi numai dacă


toate intrările sunt 1.
Exemplu de circuit:

1.4.3 Poarta logică ŞI-negat (NAND)

Poarta ŞI negat este o variaţie a porţii ŞI. Practic, comportamentul porţii este acelaşi cu
al porţii ŞI, doar că la ieşire este conectată o poartă NU (inversoare).
Tabela de adevăr este inversa celei din cazul porţii ŞI.

1.4.4 Poarta logică SAU (OR)

Tabela de adevăr:
Intrare A Intrare B Ieşire
0 0 0
0 1 1
1 0 1
1 1 1

Ieşirea unei porţi logice SAU este 1 dacă oricare dintre intrări este 1. Ieşirea este 0 doar
dacă toate intrările sunt 0.
Porţi logice pot fi negative sau exclusive, prin combinarea porţilor logice elementare de
mai sus.

1.4.5 Poarta logică SAU-exclusiv (XOR)

1.4.6 Poarta logică SAU-negat-exclusiv (XNOR)

1.4.7 Porţi logice combinate


Principiul universalităţii: porţile logice ŞI-negat şi SAU-negat posedă o proprietate
specială - sunt universale. Cu alte cuvinte, având un număr suficient de astfel de porţi, fiecare
din ele poate simula modul de funcţionare al oricărei alte porţi. De exemplu, putem construi
un circuit care să se comporte precum o poartă SAU, folosind trei porţi ŞI-negat
interconectate. Această abilitate este caracteristică doar acestor două tipuri de porţi. Practic,
multe sisteme de control digital sunt construite doar cu ajutorul porţilor ŞI-negat şi SAU-
negat, toate funcţiile logice necesare fiind derivate prin interconectarea acestor tipuri de porţi.
Exemplu:
Realizarea funcţiei SAU-negat

Ieşir
A B
e

0 0 1

0 1 0

1 0 0

1 1 0
Pentru realizarea acestei funcţii folosind porţi ŞI-negat, trebuie să inversăm toate
intrările şi ieşirea. Procedeul este asemănător cu cel prin care am realizat funcţia ŞI-negat
folosind porţi logice SAU-negat.

1.5 Circuitele logice combinaţionale


Circuitele logice combinaţionale (CLC) – sunt circuite alcătuite din porţi logice de bază
a căror operare poate fi descrisă cu ajutorul algebrei Booleene. Aceste circuite se
caracterizează prin faptul că în fiecare moment starea logică a ieşirii depinde de modul în care
se combină nivelurile logice ale intrărilor în acel moment.
CLC nu au capacitatea de memorare a informaţiei (sunt independente de propriile stări
anterioare). Problema esenţială care trebuie rezolvată cu ajutorul CLC este implementarea
unor funcţii logice cu ajutorul unui număr minim de porţi logice.
Pentru prelucrarea datelor în sistemele digitale şi pentru citirea şi afişarea rezultatelor
prelucrării, este necesară parcurgerea următoarelor etape:
 Codarea şi decodarea – transformarea datelor dintr-un cod în altul
 Multiplexarea – transmiterea către o ieşire a unei singure informaţii dintr-un grup de
informaţii
 Demultiplexarea – introducerea succesivă a datelor la diferite adrese posibile.
Pentru efectuarea operaţiilor aritmetice se utilizează circuite logice combinaţionale
special construite pentru acest scop numite circuite numerice (comparatoare, sumatoare,
convertoare de cod).
Codificatoarele sunt circuite logice combinaţionale cu n intrări şi m ieşiri de adresă,
folosite pentru a realiza conversia unui număr zecimal în cod binar sau BCD.
Codificatorul de adresă simplu furnizează la ieşire un cuvânt binar de m biţi atunci când
numai una din cele n intrări ale sale este activată. Numărul de cuvinte rezultate la ieşire este
n=2m-1 şi este egal cu numărul de intrări.
Schema bloc a unui codificator cu n intrări şi m ieşiri este:

Decodificatoarele sunt circuite logice combinaţionale cu n intrări şi m ieşiri, care


activează una sau mai multe ieşiri în funcţie de cuvântul de cod aplicat la intrare (m=2n).
Schema bloc a unui decodificator cu n intrări şi m ieşiri este:
Multiplexorul este un circuit combinaţional care transmite un semnal de la o intrare
selectată la o ieşire unică. Se mai numeşte circuit selector. În general, un multiplexor are 2n
intrări de date, n intrări de selecţie şi o ieşire Z.
Schema bloc este următoarea:

Demultiplexorul este un circuit combinaţional care dispune, în cazul general, de o


intrare de date D, n intrări de selecţie şi 2n ieşiri. Intrările de selecţie determină apariţia
semnalului de la intrare la una din cele 2n ieşiri. Se mai numeşte circuit distribuitor.
Schema bloc este următoarea:

1.6 Adresarea memoriei


Într-un sistem informatic, modul de adresare a memoriei reprezintă felul în care se
calculează adresa (de memorie) unui operand în momentul execuției unei instrucțiuni de către
procesor, folosind informația aflată în registrele procesorului sau chiar în codul mașină al
instrucțiunii.
Codul operației reprezintă doar o parte din dimensiunea totală a unei instrucțiuni; restul
spațiului este folosit pentru a preciza operanzii, adică acele date necesare executării operației,
fie că operațiile se efectuează asupra lor, fie că reprezintă o valoare ce controlează fluxul
ulterior al programului (în cazul instrucțiunilor de salt).
Operarea procesorului se efectuează cu o viteză controlată mai ales de ceasul
procesorului (în majoritatea PC-urilor moderne, acesta este de ordinul gigahertzilor), așa că
pentru a executa codul cât mai rapid, este de dorit ca operanzii să nu mai fie încărcați din
memorie, ci să fie direct accesibili procesorului, fie efectiv din codul instrucțiunii, fie în
registre, dar pentru aceasta este nevoie ca operanzii să fie cunoscuți în momentul scrierii
codului sau al compilării. Dacă acest lucru nu este posibil, sau dacă spațiul relativ restrâns de
memorare disponibil este insuficient pentru volumul de date prelucrat de program, atunci
operanzii trebuie să fie încărcați din memorie.
Accesul la memorie este mai lent decât accesul la spațiile de stocare din procesor. Deși
procesoarele pot dispune de o memorie cache aflată pe procesor, și în care sunt stocate câteva
date accesate frecvent din memoria principală, de regulă este de așteptat ca un acces la
memorie să fie de cel puțin un ordin de mărime mai lent decât lucrul cu registrele sau decât
prelucrarea instrucțiunii. Necesitatea de a adresa cantități mari de memorie face ca
dimensiunea adresei de memorie să devină prea mare pentru a încăpea integral în codul
mașină și astfel, tehnicile de adresare devin mai complexe.
Moduri de adresare:
Adresarea imediată - este cel mai simplu și mai rapid mod de a transmite operandul.
Operandul este transmis direct în corpul instrucțiunii, nemaifiind necesară accesarea
memoriei. Dar acest mod de adresare poate fi folosit doar în cazul în care valoarea
operandului este cunoscută la momentul scrierii programului sau poate fi determinat la
compilare. În plus, valorile transmite nu pot lua valori prea mari din cauza dimensiunii
limitate a spațiului disponibil în cadrul instrucțiunii.
Adresarea prin registre - este similară cu cea imediată, prin aceea că nu implică
accesarea memoriei, fiind un mod de adresare folosit tot pentru mărirea vitezei de execuție.
Avantajul față de adresarea directă sau față de cea imediată îl reprezintă faptul că nu mai este
necesar ca valoarea operandului să fie cunoscută la compilare, el fiind preluat dintr-un
registru al procesorului, registru precizat în codul instrucțiunii. Compilatoarele cu optimizare
caută să folosească la maximum acest mod de adresare, identificând la compilare variabile
folosite intens în anumite porțiuni de cod și aducându-le din memorie într-un registru, pentru
ca instrucțiunile ulterioare să acceseze valoarea de acolo. Astfel, se economisesc accesări ale
memoriei (care se efectuează la viteze mai mici decât viteza de operare a procesorului),
variabila fiind adusă din memorie o singură dată pentru a fi folosită ca operand de mai multe
instrucțiuni succesive.
Adresarea directă - în cadrul instrucțiunii se precizează adresa exactă de memorie a
operandului. Acest mod de adresare este util în condițiile în care adresa de memorie a
operandului este cunoscută în momentul compilării, așa cum este cazul cu variabilele globale,
a căror adresă nu se modifică pe timpul rulării unui program.
Capacitatea de adresare a memoriei depinde de dimensiunea magistralei de adrese. Dacă
un sistem informatic dispune de o memorie cu 2 n celule adresabile, sunt necesare n intrări
pentru selectarea acestora. Astfel, pe o magistrală de 32 de biţi for putea fi adresate 2 32=4GB
(4 giga-octeţi), considerând celula elementară formată dintr-un octet.
1.7 Structura unui sistem informatic
Orice sistem de calcul este alcătuit din subsistemele hardware şi software. Subsistemul
hardware desemnează totalitatea echipamentelor componente şi cuprinde unitatea centrală şi
echipamentele periferice. Unitatea centrală asigură controlul echipamentelor periferice,
prelucrarea datelor şi, în acest scop, memorarea temporară a programelor şi a informaţiilor de
intrare sau ieşire. Ansamblul perifericelor permite introducerea datelor şi programelor în
calculator, extragerea rezultatelor şi memorarea îndelungată a informaţiilor.
Structura unui calculator numeric a fost definită în anul 1945 de către von Neumann.

 Unitatea de intrare (UI) este destinată acceptării de informaţii din mediul extern
(tastatură, scanner, joystick, mouse etc.). 7
 Memoria (M) permite stocarea datelor în scopul prelucrării.
 Unitatea aritmetica logica (UAL) efectuează calcule aritmetice şi operaţii logice.
 Unitatea centrala (UC) este componenta care coordonează întreaga activitate
din sistemul de calcul.
 Unitatea de iesire (UE) permite transferarea informaţiilor în mediul extern
(monitorul, imprimanta, etc).
1.8 Rezumat
În cadrul acestei unităţi de învăţare au fost prezentate noţiuni de bază de
electronică digitală, incluzând circuitele logice elementare - porţile logice,
circuitele de codificare/decodificare şi multiplexare/demultiplexare, încheind
cu structura generală a unui sistem informatic.
Poarta logică este un circuit electronic conceput pentru acceptarea şi
generarea semnalelor de tensiune ce corespund numerelor binare 0 şi 1.
Porţile logice stau la baza construcţiei circuitelor electronice digitale, de la
cele mai simple (inversoare) până la microprocesoare.
Circuitele logice combinaţionale (CLC) – sunt circuite alcătuite din
porţi logice de bază a căror operare poate fi descrisă cu ajutorul algebrei
Booleene.
Modul de adresare a memoriei reprezintă felul în care se calculează
adresa unui operand în momentul execuției unei instrucțiuni de către procesor,
folosind informația aflată în registrele procesorului sau chiar în codul mașină
al instrucțiunii.

1.9 Evaluarea cunoştinţelor


Mai jos se găsesc tabelele de adevăr ale unor porţi logice simple.

1. Folosind aceste exemple, se cere să se completeze tabela de adevăr a


circuitului din figura următoare:
REZOLVARE:

A B C D X
0 0 0 0 0
0 0 0 1 0
0 0 1 0 0
0 0 1 1 1

2. Fiind cunoscute valorile de la intrările circuitului de mai jos, să se


determine valoarea de la ieşire:

Rezolvare

11
2. MICROPROCESORUL, MICROCONTROLERUL

2.1 Introducere
Microprocesoarele sunt circuite digitale complexe, programabile. În cadrul
acestei unităţi de învăţare vor fi parcurse noţiuni de bază despre microprocesoare şi
rolul acestora într-un sistem de calcul.
Un microcontroler, care este apropiat ca structură de un microprocesor,
conţine funcţiile unui calculator într-un singur circuit integrat. Acesta nu are
puterea de calcul sau viteza unui microprocesor de ultimă generaţie, dar este ideal
pentru aplicaţii de control prin faptul ca este compact.
Una din familiile de microcontrolere mult utilizate în aplicaţii industriale
este 8051; acestea vor fi prezentate ca exemplu de utilizare pe autovehicule.

2.2 Competenţe dobândite


Prin parcurgerea acestui material studenţii vor dobândi cunoştinţe de bază
despre construcţia şi funcţionarea sistemelor cu microprocesor, a
microcontrolerelor, precum şi utilizarea acestora în aplicaţii.

12
2.3 Microprocesorul
Microprocesorul a adus în lumea digitală flexibilitatea unui control prin program şi o
putere de calcul ce poate rezolva aproape orice problemă.
În timp, sistemele de control bazate pe microprocesor au înlocuit multe din sistemele de
control vechi ce se bazau pe circuite analogice sau relee electromecanice.
Un microprocesor prin el însuşi nu este un calculator. Pentru a obţine un calculator
operaţional este nevoie de componente adiţionale, cum ar fi memoria sau circuitele de
intrare/ieşire.

Un calculator este constituit din 4 unităţi funcţionale:


- Unitatea centrală de procesare (CPU - Central Processing Unit);
- Memoria;
- Interfaţă de intrare;
- Interfaţă de ieşire.
Unitatea centrală (CPU) realizează efectiv şi este compusă din două sub-module:
- Unitatea aritmetică şi logică (ALU - arithmetic/logic unit);
- Unitatea de control.
Unitatea aritmetică şi logică (ALU) execută calcule numerice şi logice cum ar fi: adunare,
scădere, funcţia ŞI, funcţia SAU şi aşa mai departe. Unitatea de control al CPU administrează
transferul de date, cum ar fi citirea şi executarea instrucţiunilor dintr-un program. Dacă sunt
necesare calcule, unitatea de control transmite datele la unitatea aritmetică şi logică (ALU)
pentru procesare. Când ne referim la un calculator bazat pe microprocesor, microprocesorul este
CPU.
Datele numerice se regăsesc sub formă de biţi. Un bit este o cifra binară ce poate lua doar
două valori: 0 sau 1. Circuitele digitale sunt alimentate de obicei la o tensiune de 5 V c.c.,
unde nivelul de potenţial ridicat (5 V) reprezintă 1 logic, iar 0 V c.c. reprezintă 0 logic. Gruparea
unui număr de 8 biţi formează un byte sau octet. Un microprocesor gestionează datele numerice
sub formă de cuvinte - un cuvânt (word) poate fi format din 8, 16, sau 32 de biţi.
Memoria unui calculator este un loc unde datele numerice sau digitale în formă binară (1 şi
0) sunt stocate. Memoria este formată din celule organizate în grupuri de 8 biţi. Fiecărui byte
(octet) îi corespunde o adresă numerică unică, ce reprezintă locul său în spaţiul de memorie, la fel
cum o casă ce are un anumit număr pe o stradă. Datele sunt scrise în memorie şi citite din
memorie pe baza adreselor.

Calculatoarele au în mod obişnuit două tipuri de memorie adresabilă. Primul tip este
memoria cu acces aleator (RAM - random access memory), care permite calculatorului să
citească şi să scrie date la oricare dintre adresele corespunzătoare. Toate datele din acest tip de
memorie sunt pierdute la întreruperea alimentării cu energie electrică, de aceea acest tip de
memorie se mai numeşte şi memorie volatilă. Există şi o exceptie, când alimentarea memoriei
RAM este menţinută de o baterie de mici dimensiuni.
Al doilea tip de memorie este memoria ROM (read-only memory). Aceasta este similară
cu memoria RAM, doar că datele nu pot fi scrise, ci doar citite. Toate datele din memoria ROM
sunt inscripţionate din fabrică şi nu pot fi schimbate de calculator. Această memorie nu îşi pierde
datele când alimentarea cu energie electrică este întreruptă şi este denumită memorie nevolatilă.
Majoritatea microprocesoarelor utilizează ambele tipuri de memorie: RAM si ROM.
Memoria RAM este utilizată pentru a stoca temporar programele, iar memoria ROM este folosită
pentru a stoca programele de bază, de care este nevoie tot timpul (nucleul sistemului de operare).
Totuşi, multe calculatoare utilizează astăzi memoria de tip EPROM (erasable
programmable read-only-memory), sau o memorie EEPROM (electrically erasable
programmable read-only-memory) în locul memoriilor ROM simple. Memoriile EPROM pot fi
şterse de informaţii prin folosirea unei raze puternice ultraviolete şi astfel pot fi reprogramate.
Memoriile EEPROM pot fi şterse şi reprogramate electric. Unităţile de disc de asemenea
stochează date numerice, dar într-o formă diferită. Este nevoie de procesare anterioară pentru a fi
accesibile microprocesorului.
Secţiunea de intrare/ieşire a unui calculator îi permite acestuia să realizeze o interfaţă cu
lumea exterioară. Secţiunea de intrare este modalitatea prin care noi programe şi date sunt
introduse într-un calculator, iar secţiunea de ieşire permite unui calculator să comunice spre
exterior rezultatele obţinute.
O interfaţă de intrare/ieşire se mai numeşte şi port. Un port de intrare este un circuit care
conectează dispozitive de intrare la un calculator. Exemple de dispozitive de intrare: tastatura,
senzorul, comutatorul. Un port de ieşire este un circuit care conectează un calculator la un
dispozitiv de ieşire. Exemple de dispozitive de ieşire: lămpi indicatoare, actuatoare şi displayuri.
Revenim acum la schema bloc a unui microprocesor. Putem observa că blocurile
funcţionale sunt conectate prin trei linii denumite: magistrală de date, magistrală de adrese şi
magistrală de control.
Magistrala de adrese este alcatuită dintr-un grup de fire conductoare care transportă o
adresă în formă binară de la CPU la memorie sau de la CPU la circuitele de intrare/ieşire (I/O
circuits). Pentru a stoca datele într-o memorie se folosesc adrese. Există de asemenea adrese şi
pentru porturile de intrare/ieşire.
Porturile de intrare/ieşire sunt tratate de microprocesor ca nişte celule de memorie, ce au de
asemenea adrese. De aceea pentru fiecare port este atribuită o adresă. Datele ce pornesc de la
CPU spre lumea exterioară sunt trimise către adresa portului dorit. Când circuitele portului de
ieşire desemnat detectează adresa pe magistrala de adrese, îl va deschide şi va permite trecerea
datelor de la magistrala de date către dispozitivul ce este conectat la port.
Magistrala de date este formată dintr-un grup de 8 linii care transferă datele numerice
dintr-un loc în altul în interiorul calculatorului. Datele se transferă în ambele direcţii pe
magistrala de date. De exemplu, dacă datele de intrare sunt introduse prin portul de intrare şi
continuă prin magistrala de date spre CPU. Dacă procesorul are nevoie să stocheze aceste date,
le va trimite înapoi prin intermediul magistralei de date spre memorie. Dacă datele sunt trimise
spre ieşire (de către CPU), acest lucru se realizează prin intermediul magistralei de date spre
portul de ieşire.
Când memoria desemnată detectează adresa sa, se activează şi ia datele de pe magistrala de
date. Celelalte blocuri funcţionale ce sunt conectate la magistrale vor ignora întreaga secvenţă
deoarece nu li se adresează.
O analogie bună este sistemul de telefonie, unde numărul de telefon este asemănător cu
adresa memoriei. Deşi mii de telefoane poate că sunt conectate la sistem, când noi formăm un
număr doar telefonul desemnat sună. Şi mai interesant este faptul că sistemul de magistrale este
extensibil. Se pot adăuga noi blocuri de memorie sau noi unităţi de intrare/ieşire la sistem prin
simpla conectare la magistrale.
Magistrala de control este utilizată pentru controlul evenimentelor prin semnale de la
CPU şi sincronizarea lor. Aceste semnale sunt utilizate pentru controlul transferului de date pe
magistrala de date. De exemplu, unul din semnalele de control este linia de citire/scriere. Acest
semnal informează memoria dacă microprocesorul doreşte să citească datele existente din
memorie sau să scrie date noi în memorie.
O scurtă istorie a microprocesoarelor:
 Firma Intel realizează primul microprocesor - I 4004, care lucra pe 4 biţi - în
1971. Acestuia i se aduc îmbunătăţiri şi astfel apare, în 1974, microprocesorul
8080 pe 8 biţi, cu o mare importanţă în industria calculatoarelor.
 În 1978, generaţia 8086 trece la microprocesoare pe 16 biţi, punând bazele
revoluţiei calculatoarelor personale. În 1982 existau microprocesoarele 80186 şi
80286.
 În 1985 se trece la microprocesoarele pe 32 de biţi prin microprocesorul 80386
(cu coprocesorul matematic 80387). În 1989 apare microprocesorul 80486, cu o
viteză de execuţie sporită iar în anii '90 - microprocesorul 80586.
Microcalculatoarele realizate cu microprocesoare pe 32 de biţi conţin în mod
obligatoriu un hard-disk încorporat şi dispun şi de alte perficerice performante
(primele microcalculatoare profesionale lucrau doar cu dischetă ca memorie
externă).
 Primelor microprocesoare pe 16 si 32 de biţi li s-a asociat un coprocesor
matematic pentru calculele cu numere reale, numit respectiv 8087, 80287,
80387. Începând cu microprocesorul 80486, coprocesorul matematic este
integrat în microprocesor.
 În continuare au aparut familiile: Pentium III (Intel), cu performanţe ridicate şi
facilităţi speciale de conectare la Internet, IBM 6x86, AMD-K6.
 Şi apoi Pentium IV, urmate de Dual-Core, Core 2 Duo, i3, i5, i7 ...

Microprocesorul se utilizează în sistemele de control din următoarele motive:


 semnalele de nivel scăzut de la senzori, odată convertite în semnale digitale
(numerice), pot fi transmise la mare distanţă practic fără erori;
 un microprocesor poate realiza cu uşurinţă calcule complexe şi strategii de
control;
 memoria pe termen lung este prezentă pentru a urmări parametrii în sistemele cu
deplasări lente;
 schimbarea strategiei de control este uşor de realizat prin încărcarea unui nou
program; nu sunt necesare schimbări în hardware-ul sistemului;
 controlerele bazate pe microprocesor sunt mult mai uşor de conectat la o reţea de
calculatoare în interiorul unei organizaţii; acest lucru permite proiectanţilor de
sisteme să modifice programul şi să citească starea curentă a sistemului de la
terminalele lor din birou.

2.4 Microcontrolerul
Un microcontroler, care este apropiat ca structură de un microprocesor, conţine funcţiile
unui calculator într-un singur circuit integrat. Acesta nu are puterea de calcul sau viteza unui
microprocesor de ultimă generaţie, dar este ideal pentru aplicaţii de control prin faptul că este
compact (şi accesibil ca preţ).
Un microcontroler este un "calculator pe un cip". Micro sugerează mărimea redusă a
dispozitivului, iar “controler” ne spune că dispozitivul poate fi folosit pentru a controla obiecte,
procese sau evenimente.
Microcontrolerele pot fi găsite în componenţa oricărui tip de aparate. Orice aparat care
măsoară, stochează, comandă, calculează sau afişează informaţii este o potenţială gazdă pentru
un microcontroler.
Orice automobil fabricat astăzi este echipat cu cel puţin un microcontroler care comandă
motorul maşinii şi adesea chiar cu mai multe microcontrolere pentru comanda sistemelor din
automobil.
În calculatoarele de birou (PC) se pot găsi microcontrolere în tastatură, modemuri,
imprimante şi alte periferice. În echipamentele de testare microcontrolerele fac posibilă
adăugarea unor facilităţi ca de exemplu memorarea rezultatelor măsurării, afişarea mesajelor şi
formelor de undă. Produsele de larg consum care includ microcontrolere sunt camerele video,
video-recorderele, aparatele de redare a CD-urilor şi altele.
Un microcontroler este similar unui microprocesor. Ambele conţin o unitate centrală de
prelucrare sau CPU (central processing unit). CPU executa instrucţiuni care îndeplinesc
operaţiile de bază logice, matematice, şi de mişcare (deplasare) a informaţiei. Pentru a construi
un calculator complet microprocesorul necesită memorie pentru păstrarea datelor şi programelor
şi interfeţe de intrare ieşire (I/O) pentru conectarea dispozitivelor externe cum ar fi tastatura şi
monitorul.
Spre deosebire de microprocesor, microcontrolerul este un întreg calculator deoarece el
conţine şi memorie şi interfeţe de intrare/ieşire, pe lângă CPU. Deoarece mărimea memoriei şi
interfeţele care încap pe un cip sunt limitate, microcontrolerele tind sa fie utilizate în sisteme mai
mici care necesită doar un microcontroler şi câteva elemente adiţionale.
Cele mai populare microcontrolere sunt 8051 (produs pentru prima dată de firma Intel) şi
68HC11 produs de Motorola. Alte familii de microcontrolere mult utilizate sunt AVR şi PIC.
Un microcontroler obişnuit include următoarele blocuri principale:
- Unitatea centrală de procesare ALU
- Memoria RAM
- Memoria de progam (PROM/ROM/EEPROM/FLASH)
- Circuite de ceas (timer)
- Circuite de control al întreruperilor (interne şi externe)
- Circuite de control al porturilor I/O.
2.4.1 Arhitectura de bază a unui microcontroler

Realizarea unui produs pe bază de microcontroler


Principalele aspecte ce trebuie abordate în etapele realizării unui produs ce utilizează un
microcontroler sunt:
- descrierea funcţiei ce trebuie realizate de către produsul final, inclusiv descrierea
interacţiunilor dintre acest produs şi mediul înconjurător;
- selectarea unui microcontroler ce este potrivit aplicaţiei (aceasta este de regulă cea mai
dificilă decizie, dar şi cea mai importantă întrucât influenţează în continuare întregul
proces de proiectare); influenţa microcontrolerului ales va afecta următoarele:
o puterea de calcul (sistemul trebuie să fie suficient de rapid pentru a putea
executa instrucţiunile software în timp real);
o memoria inclusă/adresată (trebuie să fie suficient de mare pentru a stoca toţi
parametrii, instrucţiunile şi variabilele);
o numărul şi tipul dispozitivelor I/O (de intrare/ieşire);
o rezoluţia ADC (8/10 biţi etc.);
o numărul şi dimensiunea contoarelor interne;
o porturile de tip paralel necesare pentru interfaţarea cu toate semnalele
digitale de intrare/ieşire;
o porturile de tip serial pentru comunicarea cu alte controlere/calculatoare;
o semnal PWM dacă este o aplicaţie de control;
o cost;
o posibilităţi de extindere a memoriei;
o uşurinţa proiectării aplicaţiei;
o consum de energie (în special pentru aplicaţii mobile); disponibilitatea unei
surse secundare de alimentare;
o compatibilitatea cu alte sisteme cu microcontrolere, existente.
- dacă produsul proiectat va lucra în condiţii extreme de temperatură, domeniul
temperaturii de lucru a microprocesorului va fi de asemenea un factor de decizie
(domeniul uzual este între -40 şi +80 grade Celsius; dispozitivele de uz militar pot lucra
până la 125 grade Celsius)
- costul – poate cel mai important factor; de aceea mulţi dezvoltatori de sisteme cu
microcontroler utilizează acelaşi tip ce microcontroler, pentru a reutiliza sistemele de
dezvoltare (hardware şi software) pe care deja le-au creat sau achiziţionat.

Niciun microcontroler nu poate fi considerat ca fiind potrivit pentru orice tip de aplicaţii.

2.4.2 Microcontrolerul 8051


La baza familiei 8051 stă microcontrolerul 8051 introdus de firma Intel Corporation in
1980. De atunci microcontrolerele familiei 8051 au fost folosite ca element de bază pentru mii de
produse. Multe alte companii printre care Philips, Siemens, Dallas Semiconductors, OKI, Fujitsu
si Harris-Matra produc acum componentele familiei 8051. Unele companii au extins aria de
componente a familiei 8051 adăugând componente cu însuşiri suplimentare.
Structura internă a acestui circuit este prezentată simplificat în figura următoare:
Elementul principal îl constituie unitatea centrală pe 8 biţi, care este de fapt un
microprocesor de uz general.
Pe lângă unitatea centrală, microcontrolerul 8051 mai conţine o serie de circuite auxiliare,
prezentate în continuare.
Oscilatorul
Orice microprocesor are nevoie pentru a putea funcţiona de un semnal de ceas care este
utilizat în interiorul acestuia pentru declanşarea şi sincronizarea diferitelor operaţii care sunt
realizate în timpul funcţionării.
În cazul microprocesoarelor de uz general, semnalul de ceas trebuie să fie furnizat din
exterior de la un circuit special. Microcontrolerul 8051 conţine în structura sa circuitul pentru
generarea acestui semnal de ceas.
Memoria de program
Memoria de program este o memorie de tip nevolatil (nu se şterge în momentul
deconectării de la sursa de alimentare). Este utilizată pentru stocarea programelor pe care le
execută microcontrolerul. La 8051 are o capacitate de 4KB. Poate fi de mai multe tipuri:
- Mask ROM - informaţia este înscrisă de către producătorul microcontrolerului în faza
de fabricaţie. Nu poate fi modificată de utilizator, de aceea această variantă este
utilizată doar pentru microcontrolerele utilizate în aparatura produsă în serii mari.
- EPROM - informaţia poate fi inscrisă în aceste memorii utilizând nişte dispozitive
specializate numite generic programatoare de EPROM-uri. Informaţia poate fi ştearsă
dacă este nevoie (pentru a schimba programul) prin expunerea circuitului (care este
prevăzut cu o fereastră transparentă din cuarţ) la radiaţii ultraviolete puternice timp de
aprovimatriv 10..30 minute. Această variantă a fost utilizată (şi mai este încă) pentru
etapele de punere la punct a programelor.
- OTP EPROM (One Time Programable) - sunt similare cu cele de tip EPROM, singura
diferenţă fiind absenţa ferestrei transparente de pe capsula circuitului. Astfel, o dată
programată, memoria nu mai poate fi ştearsă deoarece radiaţia ultravioletă nu mai are
pe unde să ajungă la circuit. Sunt utilizate pentru producţia de serie mică (sunt mult mai
ieftine decât cele cu memorie EPROM mai ales datorită capsulei fără fereastră).
- FLASH - memoria de tip FLASH este o memorie care poate fi programată şi ştearsă
exclusiv electric (fără expunere la radiaţii). Sunt versiuni care se pot programa pe
programatoarele clasice utilizate pentru versiunile de tip EPROM, dar în ultimul timp
au apărut microcontrolere care au opţiunea ISP (In System Programming), adică sunt
dotate cu o interfaţă de programare specială (de obicei serială) ce permite utilizatorului
rescrierea conţinutului memoriei de program fără a scoate circuitul din montaj,
utilizând pentru aceasta un calculator PC cu un program special conectat la
microcontroler printr-o interfaţă simplă (de obicei un cablu de legătura între cupla de
imprimantă a calculatorului şi microcontroler). Este versiunea cea mai uşor de utilizat
deoarece nu solicită investiţii în programatoare, ştergătoare de EPROM-uri.
Memoria de date
Este o memorie de tip RAM de capacitate mică (128 octeţi) utilizată pentru stocarea
diferitelor variabile utilizate în program, cât şi pentru stivă.
Exemplu de organizare a memoriei într-un microcontroler:

Porturile de intrare/ieşire
Microcontrolerul 8051 este dotat cu 4 porturi de intrare/ieşire de 8 biţi fiecare. Aceste
porturi pot fi configurate la nivel de bit (ex: 3 biţi dintr-un port configuraţi ca ieşiri, iar ceilalţi 5
ca intrări).
Porturile de intrare-ieşire pot fi porturi digitale de comunicaţie de tip paralel sau serial,
convertoare analog-digital (ADC) sau convertoare digital-analog (DAC). Sunt utilizate pentru a
afişa mesaje de stare/avertizare, pentru a prelua informaţiile de la senzori, controlul circuitelor de
comandă al motoarelor sau diferitelor actuatoare şi altele.
Controlorul magistralei externe
Sunt situaţii în care capacitatea memoriei de program sau de date este insuficientă. În acest
caz, se poate ataşa la microcontroler o memorie externă (de program şi/sau de date). Când se
lucrează cu o astfel de memorie, microcontrolerul îşi configureaza în mod automat două din cele
4 porturi (P0 şi P2) ca magistrală de date/adrese multiplexată. De asemenea se utilizează trei
semnale (PSEN, RD şi WR) care controlează operaţiile de acces la această memorie. Controlorul
magistralei externe este cel care se ocupă de gestionarea accesului prin această magistrală la
memoria externa.
Controlorul de întreruperi
Controlorul de întreruperi gestionează cererile de întrerupere provenite de la periferice.
În cazul microcontrolerului 8051 acestea sunt în număr de 5 şi anume:
- INT0 - prima întrerupere externă. Este o întrerupere generată de activarea uneia din
liniile portului P3 (P3.2) dacă s-a configurat corespunzător microcontrolerul.
- TIMER0 - întrerupere asociată primului timer (circuit de ceas).
- INT1 - a doua întrerupere externă. Este o întrerupere generată de activarea uneia din
liniile portului P3 (P3.3) dacă s-a configurat corespunzător microcontrolerul.
- TIMER1 - întrerupere asociată celui de-al doilea timer.
- COM - întrerupere asociată interfeţei de comunicaţie serială. Este generată la recepţia
sau terminarea transmisiei unui caracter.
Timerele 0 şi 1
Timerele sunt nişte numărătoare care pot contoriza producerea unor evenimente. În cazul
microcontrolerului 8051 există două tipuri de evenimente. Primul este trecerea unui interval de
timp egal cu durata unui ciclu maşină (12 perioade ale oscilatorului). În acest caz timerul poate
să fie utilizat pentru generarea unor intervale de timp foarte precise. Al doilea tip de eveniment
poate fi un impuls care apare pe una din liniile portului P3 (P3.4 pentru Timerul 0 şi P3.5 pentru
Timerul 1). Contorizarea se face în sensul incrementării valorii existente in numărător până la
atingerea valorii maxime care poate fi reprezentată în acel numărător. La depăşirea acestei valori
timerul poate genera o întrerupere (dacă este configurat corespunzător). Timerele
microcontrolerului pot avea 4 configuraţii care diferă prin numărul de biţi ai numărătorului,
prezenţa sau absenţa unui predivizor şi modul în care se comportă la depăşirea valorii maxime.
Interfaţa de comunicaţie serială
Interfaţa de comunicaţie serială este un periferic deosebit de util pentru realizarea
conectării microcontrolerului cu alte echipamente (de exemplu un calculator personal sau chiar
un alt microcontroler). Este o interfaţă serială asincronă care poate funcţiona în mai multe
moduri. Cel mai frecvent se utilizează modul "clasic" care este compatibil cu toate interfeţele
seriale asincrone existente. Un mod mai special îl constituie "modul comunicaţie multiprocesor"
care permite realizarea unei magistrale de comunicaţie pe care să fie instalate mai multe
microcontrolere şi care să poată comunica între ele, fiecare având o anumită adresă.
2.5 Rezumat
În cadrul acestei unităţi de învăţare au fost prezentate noţiuni de
bază despre microprocesoare şi microcontrolere. Microprocesoarele sunt
circuite digitale complexe, programabile, ce stau la baza calculatoarelor
personale moderne. Microcontrolerele sunt calculatoare integrate pe un
singur cip (circuit integrat) ce realizează funcţii de automatizare şi control
în multe aplicaţii industriale, precum şi în automobile.
Printre microcontrolerele utilizate cu preponderenţă în industria de
automobile sunt cele din familia 8051. Structura microcontrolerelor din
familia 8051 este prezentată în această unitate de învăţare.

2.6 Evaluarea cunoştinţelor


Răspundeţi la întrebările de mai jos.
1. Care sunt porturile de intrare/ieşire ale microcontrolerului 8051?
Microcontrolerul 8051 este dotat cu 4 porturi de intrare/ieşire de 8
biţi fiecare. Aceste porturi pot fi configurate la nivel de bit (ex: 3 biţi
dintr-un port configuraţi ca ieşiri, iar ceilalţi 5 ca intrări). Porturile de
intrare-ieşire pot fi porturi digitale de comunicaţie de tip paralel sau
serial, convertoare analog-digital (ADC) sau convertoare digital-analog
(DAC).
2. Cum este generat semnalul de tact într-un microcontroler?
Orice microprocesor are nevoie pentru a putea funcţiona de un
semnal de ceas care este utilizat în interiorul acestuia pentru
declanşarea şi sincronizarea diferitelor operaţii care sunt realizate în
timpul funcţionării.
3. Care sunt componentele unui microcontroler?
-Unitatea centrală de procesare ALU
- Memoria RAM - Memoria de progam
(PROM/ROM/EEPROM/FLASH) - Circuite de ceas (timer)
- Circuite de control al întreruperilor (interne şi externe)
- Circuite de control al porturilor I/O.
4. Care este magistrala prin care CPU transmite semnale de
control al evenimentelor şi de sincronizare?
Magistrala de control este utilizată pentru controlul
evenimentelor prin semnale de la CPU şi sincronizarea lor. Aceste
semnale sunt utilizate pentru controlul transferului de date pe
magistrala de date. De exemplu, unul din semnalele de control este
linia de citire/scriere. Acest semnal informează memoria dacă
microprocesorul doreşte să citească datele existente din memorie
sau să scrie date noi în memorie.
5. Cum se numea prima serie de microprocesoare produse de Intel?
Cele mai populare microcontrolere sunt 8051 (produs pentru prima
dată de firma Intel).

6. Prin ce se transferă adresele în formă binară de la CPU la memorie?


Magistrala de adrese este alcatuită dintr-un grup de fire conductoare
care transportă o adresă în formă binară de la CPU la memorie sau de la
CPU la circuitele de intrare/ieşire (I/O circuits). Pentru a stoca datele
într-o memorie se folosesc adrese. Există de asemenea adrese şi pentru
porturile de intrare/ieşire.

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