Sunteți pe pagina 1din 33

Microcontrolere

 istoric
Ce este un microcontroler
Unde se găsesc microcontrolerele
Construcţia unui microcontroler
istoric
Primele controlere au fost realizate în La scurt timp după aceea, compania
tehnologii pur analogice si/sau americană CTC propune companiilor INTEL
electromecanice. şi Texas Instruments să conceapă un
Cele care fac apel la tehnica numerică au microprocesor pe 8 biţi pentru folosinţă cu
fost realizate iniţial pe baza logicii cablate şi terminale
a unei electronici analogice complexe, în aprilie 1972 a apărut pe piaţă primul
având însă, o serie de dezavantaje: microprocesor de 8 biţi sub numele de 8008
 dimensiuni mari capabil să adreseze 64Kb de memorie şi
 consum energetic mare avea 45 de instrucţiuni şi viteza de 300.000
 fiabilitate scăzută de operaţii pe secundă.
In anul 1969, o echipă de ingineri japonezi Acel microprocesor a fost predecesorul
propun companiei INTEL, construirea după tuturor microprocesoarelor de astăzi
proiectele proprii a unei structuri de circuit în aprilie 1974 apare microprocesorul de 8
integrat a cărei funcţionare să fie biţi sub numele de 8080 ce putea adresa
determinată de un program memorat în el, 64Kb de memorie şi avea 75 de instrucţiuni,
lucru ce va conduce la o configuraţie mult iar preţul începuse de la 360$.
mai simplă, reuşind astfel, să scoată un Apare deja concurenţa astfel că, o altă
produs, prima sa concepţie, obţinând companie americană Motorola, lansează pe
totodată şi drepturile de a vinde acest piaţă un microprocesor de 8 biţi 6800, şi pe
produs. lângă microprocesorul propriu-zis, Motorola
Astfel în timpul acelui an, apare pe piaţă un a fost prima companie care a făcut şi alte
microprocesor numit 4004, fiind primul periferice cum ar fi 6820 şi 6850.
microprocesor de 4 biţi cu viteză 6000
operaţii pe secundă
la expoziţia WESCON din Statele Unite din 1975 a avut loc un eveniment critic
în istoria microprocesoarelor
O alta firmă americana, MOS Technology anunţă că produce microprocesoarele
6501 şi 6502 la preţul de 25$ bucata, pe care cumpărătorii le puteau cumpăra
imediat
6502 este un microcontroler pe 8 biţi cu 56 de instrucţiuni şi o capabilitate de
adresare directă de 64Kb de memorie
Datorită costului scăzut, 6502 devine foarte popular, şi este instalat în computere
ca :KIM-1, Apple I, Apple II, Atari, Comodore, Acorn, Oric, Galeb, Orao, Ultra şi multe
altele.
În 1976 Zilog anunţă apariţia lui Z80, un microprocesor mai puternic decât cele
apărute până acum, care putea adresa direct 64Kb de memorie, avea 176
instrucţiuni, o singură sursă, şi viteză de lucru mult mai mare
Z80 a reprezentat o relevaţie în acest domeniu, toată lumea făcând conversia de la
8080 la Z80 şi din acest moment Z80 devine cel mai de succes microcontroler de 8
biţi a acelui timp, fiind inima a multor computere ca : Spectrum, Partner, TRS703, Z-3
şi Galaxi
În 1976, INTEL iese pe piaţă cu o versiune îmbunătăţită de microprocesor pe 8 biţi
numit 8085, dar tot Z80 era mai bun, astfel încât INTEL pierde monopolul pieţii
În ciuda apariţiei pe piaţă a mai multor tipuri de microprocesoare (6809,2650,SC/MP
Mostek, NEC, SHARP şi SGS etc.), un fapt era deja hotărât: nu mai erau de făcut
îmbunătăţiri importante ca să-i determine pe producători să se reorienteze spre ceva
mai “nou”, aşa că 6502 şi Z80 împreună cu 6800 au rămas ca cei mai reprezentativi
ai microprocesoarelor de 8 biţi a acelui timp
Ce este un microcontroler ?

Circumstanţele în care ne găsim astăzi în domeniul microcontrolerelor şi-au avut începuturile în


dezvoltarea tehnologiei circuitelor integrate. Această dezvoltare a făcut posibilă înmagazinarea a
sute de mii de tranzistoare într-un singur cip. Aceasta a fost un prerechizit pentru producţia de
microprocesoare, şi primele computere au fost făcute prin adăugarea perifericelor ca memorie,
linii intrare-ieşire, timeri şi altele. Următoarea creştere a volumului capsulei a dus la crearea
circuitelor integrate. Aceste circuite integrate conţin atât procesorul cât şi perifericele. Aşa s-a
întâmplat cum primul cip conţinând un microcomputer, sau ce va deveni cunoscut mai târziu ca
microcontroler a luat fiinţă.

Un controler este o structură electronică destinată controlului unui proces


sau unei caracteristici a mediului exterior, fără să fie necesară intervenţia
operatorului uman

un microcontroler este un "calculator pe un chip"

"micro" sugerează mărimea redusă a dispozitivului iar "controler" ne spune


că dispozitivul poate fi folosit pentru a controla obiecte procese sau
evenimente
Unde se găsesc microcontrolerele?

Microcontrolerele pot fi găsite in componenta oricărui tip de aparat

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 pentru comanda sistemelor adiţionale din
automobil

In calculatoarele de birou (PC) se pot găsi microcontrolere in tastatură, modemuri,


imprimante şi alte periferice

In echipamentele de testare 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, compact-disk (CD) playere şi altele.
Construcţia unui microcontroler….astăzi
Un microcontroler este similar unui microprocesor: ambele conţin o unitate
centrală de prelucrare (UCP - central processing unit - execută instrucţiuni
care îndeplinesc operaţiile de bază logice, matematice şi de transport a
informaţiei)
Spre diferenţă de microprocesor, microcontrolerul este un calculator pe un
chip deoarece el conţine şi memorie şi interfeţe de intrare-ieşire pe lângă CPU
Deoarece memoria şi interfeţele care încap pe un chip sunt limitate,
microcontrolerele tind să fie utilizate în sisteme mai mici care necesită doar un
microcontroler şi câteva elemente adiţionale
Resursele integrate la nivelul microcircuitului trebuie să includă cel puţin
următoarele component:
o unitate centrală (CPU)
o memorie locală tip RAM şi eventual una de tip ROM/
PROM / EPROM,
I/O – intrări/ ieşiri numerice (paralele şi seriale)
timere (temporizatoare)
numărătoare
un sistem de întreruperi
Un microcontroler tipic mai are facilităţi de prelucrare la nivel de bit, de acces
direct şi uşor la intrări/ieşiri şi un mecanism de prelucrare a întreruperilor rapid
şi eficient
• La aceste componente pot fi adăugate caracteristici specifice
sarcinii de control care trebuie îndeplinite

• NOTĂ: Utilizarea unui microcontroler, oricât de evoluat , nu elimină


unele componente ale interfeţei cu mediul exterior (atunci când ele sunt
chiar necesare): subsisteme de prelucrare analogică, elemente pentru
realizarea izolării galvanice, elemente de comutaţie de putere
(electromecanice sau statice).
Variante constructive
Există la ora actuală un număr foarte mare de tipuri constructive de
microcontrolere

Un criteriu de clasificare care se poate aplica întotdeauna este


lungimea (dimensiunea) cuvântului de date
Funcţie de puterea de calcul dorită şi de alte caracteristici se pot alege
variante având dimensiunea cuvântului de date de 4, 8, 16, sau 32 de
biţi

Există şi multe variante zise dedicate (specializate prin intermediul


codului preprogramat şi al resurselor hard) pentru comunicaţie,
controlul tastaturilor, controlul aparaturii audio–video, prelucrarea
numerică a semnalului, etc. …
Elementele constructive ale
microcontrolerului

1. Unitatea de memorie UM.


Unitatea de memorie este acea parte a microcontrolerului care are funcţia de a
înmagazina informaţia sub formă de date şi de a o face accesibilă (operaţie denumită
“Citire”) atunci când se doreşte acest lucru.

Rol şi mod de funcţionare


Pentru a explica şi a înţelege mai uşor funcţionarea acestui bloc,
putem să-l comparăm şi să-l descriem ca fiind un dulap cu mai multe
sertare. Introducând conceptul de “locaţie de memorie” şi atribuind
sertarelor această denumire, fiecare locaţie de memorie având câte o
valoare numerotată de la 0 – 15 în aşa fel încât să nu fie confundate,
oricare din conţinuturile locaţiilor de memorie (sertarelor) vor fi atunci
uşor accesibile. Pentru a realiza această accesibilitate introducem al
doilea concept nou numit “ adresare” care poate fi definit ca fiind
operaţia de “selectare” sau “desemnare” a unei locaţii de memorie.
OBSERVAŢIE
Trebuie menţionat faptul că adresarea nu se face la
întâmplare, ea se efectuează în conformitate cu un “cod de adresă”
care este unic, aceasta înseamnă că fiecărei locaţii de memorie îi este
alocat codul corespunzător de selecţie.
Este suficient să se ştie desemnarea sertarului (codul de adresă
corespunzător unei locaţii de memorie) şi astfel conţinuturile locaţiei se
vor face cunoscute în mod sigur.

Pentru a înţelege mai bine, în continuare se prezintă un


exemplu de unitate de memorie
Pentru un anumit cod de adresă aplicat la intrarea “ Adrese” (vezi figura)
obţinem la ieşirea “Date”, conţinutul sub formă de date a unei anumite locaţii de memorie
adresate. Se poate spune deci că memoria este alcătuită din toate locaţiile de memorie
şi adresarea nu este altceva decât alegerea uneia din ele
Aceasta înseamnă trebuie selectată locaţia de memorie la un capăt, şi la
celălalt capăt trebuie să aşteptăm conţinutul sub formă de date ale acelei locaţii, adică s-
a efectuat operaţia de “Citire” a locaţiei respective

Aceasta înseamnă trebuie selectată


locaţia de memorie la un capăt, şi la
celălalt capăt trebuie să aşteptăm
conţinutul sub formă de date ale acelei
locaţii, adică s-a efectuat operaţia de
“Citire” a locaţiei respective
În afară de citirea dintr-o locaţie de memorie, memoria trebuie
de asemenea să permită “Scrierea” în ea (reîmprospătarea).
Aceasta se face cu ajutorul unei linii adiţionale numită linie de
control.
Vom desemna această linie ca W/R (scrie /citeşte).
Linia de control este folosită în următorul fel : dacă W/R=1, se
face citirea, şi dacă W/R=0 atunci i se face scrierea în locaţia de
memorie
Variante de realizare a memoriei locale

EEPROM - multe microcontrolere au şi o memorie de acest tip, de


dimensiune limitată, destinată memorării unui număr limitat de parametrii
(memorie de date) care eventual trebuie modificaţi din timp în timp şi
este o memorie relativ lentă cu un număr limitat (uzual mic) de cicluri de
scriere/citire.
FLASH EPROM - este o soluţie mai bună decât EEPROM–ul atunci când
este necesar un volum mare de memorie program (nevolatilă) mai rapidă
şi cu un număr garantat mai mare de cicluri scriere/citire; este utilizată
numai ca memorie de program
NOVRAM - Realizat prin alimentarea locală (baterie, acumulator)
a unui masiv RAM CMOS atunci când este necesar un volum
mare de memorie de program şi de date nevolatilă; mult mai
rapidă decât toate celelalte tipuri şi fără limitări ca număr de
cicluri.
Programarea “IN SISTEM” (ISP) - Folosirea unor memorii nevolatile de tip
FLASH face posibilă “programarea” unui astfel de microcontroler fără a-l
scoate din sistemul în care este încorporat (on-line, In System
Programming); programarea se face prin intermediul unei interfeţe seriale şi
este posibilă astfel modificarea codului program sau a unor constante de
lucru (local sau de la distanţă).

OTP (ON TIME PROGRAMMABLE) - Majoritatea producătorilor oferă


variante de microcontrolere la care memoria locală de program este de tip
OTP , practic o memorie PROM identică intern cu varianta EPROM, dar fără
fereastra de ştergere (deci şi mai ieftine); aceste variante pot fi utilizate ca o
alternativă pentru o producţie limitată, până în momentul testării şi validării
finale a codului, moment în care pot fi comandate variante (mask) ROM
propriu-zise, cele mai economice pentru o producţie de masă.
2.Unitatea centrală de procesare CPU
Rol şi mod de funcţionare
Este blocul din componenţa unui microcontroler capabil să acţioneze
asupra conţinutului (datelor) uneia sau mai multor locaţii conţinute în unitatea de
memorie UM, specializat pe operaţii (de adunare, înmulţire, împărţire, extragere
şi reintroducere) de date, care poate să depoziteze datele atâta timp cât
asupra acestora se efectuează operaţii.
In urma efectuării acestor operaţii se va depune înapoi în unitatea de
memorie,(în locaţiile de memorie) rezultatul operaţiilor efectuate (un nou
conţinut de date)
Deci putem spune că acest bloc lucrează direct cu unitatea de memorie, poate accesa
(prin operaţia de “Adresare”) şi prelua datele (prin operaţia de “Citire”), din fiecare
locaţie de memorie din cadrul UM, le depune în regiştrii săi (care sunt de fapt tot locaţii
de memorie altele decât cele din UM).
Aici are loc prelucrarea asupra datelor corespunzător operaţiei
specificate (impuse) de program (“Mutarea” conţinutului dintr-un
registru în altul), finalizând prin a depune rezultatul înapoi în locaţiile
de memorie din cadrul UM (prin operaţia de “Scriere”).
Partea pe care tocmai am adăugat-o este numită "unitatea de
procesare centrală" (CPU). Locaţiile ei de memorie sunt numite
regiştri.
Deci concluzionând, regiştrii sunt locaţii de memorie a căror rol este de a ajuta
prin prelucrarea şi executarea a variate operaţii matematice sau a altor operaţii
cu date oriunde se vor fi găsit datele in cadrul UM.
3. Bus - ul – Magistrala de date şi adrese

Rol şi mod de funcţionare


Această cale este numită "bus"- magistrală. Din
punct de vedere fizic, el reprezintă un grup de 8,
16, sau mai multe fire (panglică de fire speciale
care permit transmisia de date la anumite viteze
impuse).
Există două tipuri de bus - uri :
bus de adresă sau magistrală de adrese (pe care circulă
semnale sub formă de cod de adrese care adresează UM
bus de date sau magistrală de date (pe care circulă datele
preluate din UM şi urmează a fi depuse în regiştrii CPU spre
a fi prelucrate şi nu numai atât.)
Magistrala de adrese - este alcătuită din atâtea linii cât este cantitatea de
memorie şi serveşte la transmiterea adreselor de la CPU la memorie,
practic indică de unde trebuie preluate datele, unde trebuie trimise şi adresa
instrucţiunilor care trebuie executate.

Magistrala de date - transportă informaţia supusă prelucrării şi este


atât de lată cât sunt cuvintele de date 8, 16, sau 32 biţi (în cazul
nostru 8 biţi) sau cât este linia de conectare servind totodată la
conectarea tuturor blocurilor din interiorul microcontrolerului
Din momentul de faţă putem avea o viziune clară asupra modului de
interconectare şi funcţionare al celor două entităţi privite ca blocuri componente
din cadrul microcontrolerului deci putem introduce noţiunea de “funcţionalitate”
ca parametru fictiv al microsistemului care a luat naştere prin prezentarea
acestora.
4. Unitatea intrare-ieşire

Rol şi mod de funcţionare


În ceea ce priveşte funcţionalitatea, situaţia s-a îmbunătăţit, dar o nouă
problemă a apărut de asemenea: avem o unitate ce este capabilă să
lucreze singură, care nu are nici un contact cu lumea de afară, sau cu noi !
Pentru a înlătura această deficienţă, să adăugăm un bloc ce conţine câteva
locaţii de memorie a căror singur capăt este conectat la busul de date, iar
celălalt are conexiune cu liniile de ieşire la microcontroler ce pot fi văzute cu
ochiul liber ca pini la componenta electronică.

Aceste locaţii care tocmai le-am adăugat sunt numite "porţi".

Sunt diferite tipuri de porţi: intrare, ieşire sau porţi pe două-căi.


5. Comunicaţia serială

Pentru că avem linii separate de


recepţie şi de transmitere, este posibil
să recepţionăm şi să transmitem date
(informaţii) în acelaşi timp. Blocul ce
permite acest mod de comunicare este
numit blocul de comunicaţie serială.
Spre deosebire de transmisia paralelă,
datele sunt mutate aici bit cu bit, sau
într-o serie de biţi, de unde vine şi
numele de comunicaţie serială. După
recepţia de date trebuie să le citim din
locaţia de transmisie şi să le
înmagazinăm în memorie în mod opus
transmiterii unde procesul este invers.
Datele circulă din memorie prin bus
către locaţia de trimitere, şi de acolo
către unitatea de recepţie conform
protocolului.
6. Unitatea de timer
Odată rezolvată problema comunicaţiei seriale, putem recepţiona, trimite şi
procesa date
Totuşi, ca să îl putem utiliza, în special în industrie, mai avem nevoie
de câteva blocuri. Unul din acestea este blocul de timer care este
important pentru noi pentru că ne dă informaţia de timp, durată,
protocol etc. Unitatea de bază a timer - ului este un contor liber care
este de fapt un registru a cărui valoare numerică creşte cu intervale
de timp egale, aşa încât luându-i valoarea după intervalele T1 şi T2
şi pe baza diferenţei lor să putem determina cât timp a trecut.
7. Watchdog-ul

Acest bloc este de fapt un alt


contor liber unde programul nostru
are nevoie să scrie un zero ori de
câte ori se execută corect. În caz
că programul se "înţepeneşte", nu
se va mai scrie zero, iar contorul
se va reseta singur până la
obţinerea valorii sale maxime.
Aceasta va duce la rularea
programului din nou, şi corect de
această dată pe toată durata.
Acesta este un element important
al fiecărui program ce trebuie să
fie fiabil fără supravegherea
omului
8. Convertorul Analog-Digital
Pentru că semnalele de la periferice sunt substanţial diferite de cele
pe care le poate înţelege (zero şi unu), ele trebuie convertite într-un
mod care să fie înţeles de microcontroler.
Această sarcină este îndeplinită de un bloc pentru conversia
analog-digitală sau de un convertor AD. Acest bloc este responsabil
pentru convertirea unei informaţii privind o anumită valoare analogă
într-un număr binar şi pentru a o urmări pe tot parcursul la un bloc
CPU în aşa fel ca blocul CPU să o poată procesa
Observaţie
În ultimul timp au apărut şi variante de CAN cu rezoluţii mari şi
foarte mari realizate în tehnica sigma-delta. Realizările respective
sunt mai degrabă un CAN cu microcontroler (firma Analog Device
oferă un nucleu de 8051 plus un CAN sigma-delta cu rezoluţii până
la 24 biţi!)
Cum arată un microcontroler?
Imaginile de mai jos vă sugerează cum arată un microcontroler la
exterior şi în interior.
Liniile subţiri ce merg din interior către părţile microcontrolerului
reprezintă fire conectând blocurile interioare cu pinii capsulei
microcontrolerului.
Structura internă şi elementele componente de bază
Aplicaţii ale microcontrolerelor
Să ne amintim…
Microcontrolerul este un dispozitiv electronic
complex care integrează, pe lângă unitatea centrala de
procesare ( microprocesor ), memorie, linii de
intrare/ieşire, comparatoare, numărătoare, seriala, etc.
Funcţie de complexitatea circuitului, microcontrolerul
poate dispune de toate facilităţile de mai sus ( si nu
numai ), dar poate avea si doar o mica parte din
acestea.
    Toate aparatele inteligente fabricate astăzi dispun de
astfel de microcontrolere. Pot include aici televizoarele,
maşinile de spălat, imprimantele, sistemele de alarma,
majoritatea aparatelor ce pot fi programate si care citesc
anumiţi parametri ce se modifica in timp.
Ceasul electronic
Un ceas are utilitate atât timp cat funcţionează corect. Cineva spunea ca un
ceas care sta are marele avantaj de a arata de doua ori pe zi ora exacta... Daca
pentru un ceas electromecanic acest lucru este adevărat, pentru un ceas
electronic fraza anterioara este falsa. De ce sa construim atât de dificil
( microcontroler, programator, compilator, cablaj, teste, etc. ) un simplu ceas
când putem sa-l cumpăram sub 1$ si va arata mult mai bine decât cel construit
de noi? Pentru ca mecanismul de generare al orologiului de timp real ( Real
Time Clock ) utilizând doar microcontrolerul, fără circuite integrate
specializate care sa dialogheze cu el, este necesar in multe alte aplicaţii
( termostate inteligente, automatizări orare/săptămânale/lunare, aparatura
medicala). Un bun exemplu este ansamblul ceas-termometru existent in
principalele pieţe din marile oraşe care nu indica niciodată ora, data umiditatea
sau temperatura reala...
Funcţionarea ceasului
Telecomanda
• Fiind vorba de un emiţător - receptor, înseamnă
ca este compus din doua module electronice, un
emiţător si un receptor, conectate intre ele fie
printr-o sarma, fie prin radiaţie Infra - Roşie.
Radiaţia IR nu este vizibila ochiului uman, fiindcă
lungimea ei de unda începe undeva la 900nm si
continua până la vreo 15um. Un ochi antrenat
poate vedea înspre IR, maxim 730...750nm iar
înspre UV, maxim 420...450nm si este cel mai
bun senzor pentru radiaţia vizibila !
• LED - urile IR din telecomanda TV-ului emit de
obicei pe la 960nm.