Documente Academic
Documente Profesional
Documente Cultură
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
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.
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.
Tabela de adevăr:
Intrare A Intrare B Ieşire
0 0 0
0 1 0
1 0 0
1 1 1
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.
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.
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.
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.
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
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.
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.
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 ...
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
Niciun microcontroler nu poate fi considerat ca fiind potrivit pentru orice tip de aplicaţii.
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.