Sunteți pe pagina 1din 13

MICROCONTROLERUL UTILIZARI SI PERSPECTIVE

Scurt istoric

Primele controlere au fost realizate în tehnologii pur analogice si/sau electromecanice.


Cele care fac apel la tehnica numerică au fost realizate iniţial pe baza logicii cablate
(circuite numerice SSI şi MSI) şi a unei electronici analogice uneori complexe şi
“străluceau” prin dimensiuni mari, consum energetic pe măsură şi nu de puţine ori o
fiabilitate care lăsa de dorit. In anul 1969, o echipă de ingineri japonezi propun companiei
INTEL, construirea dupa proiectele proprii a unuei structuri de circuit integrat a cărei
funcţionare să fie determinată de un program memorat în el, lucru ce ar fi condus la o
configuraţie mult mai simplă, dar aceasta ar fi presupus mult mai multă memorie decât
ar fi presupus proiectul propus de inginerii niponi. După un timp, cu toate că inginerii de
la INTEL au căutat să găsească o soluţie mai simplă, ideea s-a menţinut, ba mai mult s-a
pus în aplicare şi astfel a luat naştere primul microcontroler, INTEL reuşind să scoată un
produs din prima sa concepţie, obţinând totodată şi drepturile de a vinde acest produs.
Astfel în timpul acelui an, apare pe piaţă un microprocesor numit 4004, fiind primul
microprocesor de 4 biţi cu viteză 6000 operaţii pe secundă. La scurt timp după aceea,
compania americană CTC propune companiilor INTEL şi Texas Instruments să conceapă
un microprocesor pe 8 biţi pentru folosinţă cu terminale. Cu toate că CTC a renunţat la
această idee până la sfârşit, INTEL şi Texas Instruments au continuat să lucreze la
microprocesor şi în aprilie 1972 a apărut pe piaţă primul microprocesor de 8 biţi sub
numele de 8008 capabil să adreseze 64Kb de memorie şi avea 45 de instrucţiuni şi viteza
de 300.000 de operaţii pe secundă. Acel microprocesor a fost predecesorul tuturor
microprocesoarelor de astăzi. INTEL a continuat dezvoltările până în aprilie 1974 şi au
lansat pe piaţă microprocesorul de 8 biţi sub numele de 8080 ce putea adresa 64Kb de
memorie şi avea 75 de instrucţiuni, iar preţul începuse de la 360$.
Apare deja concurenţa astfel că, o altă companie americană Motorola, lansează pe piaţă
un microprocesor de 8 biţi 6800, şi pe lângă microprocesorul propriu-zis, Motorola a fost
prima companie care a făcut şi alte periferice cum ar fi 6820 şi 6850. La acel timp multe
companii cum ar fi MOS Technology au recunoscut marea importanţă a microprocesoa-
relor şi au început propriile lor dezvoltări, continuând să lucreze intensiv la dezvoltarea
acestora, aşa că la expoziţia WESCON din Statele Unite din 1975 a avut loc un eveniment
critic în istoria microprocesoarelor, MOS Technology anunţând că produce
microprocesoarele 6501 şi 6502 (6502 este un microcontroler pe 8 biţi cu 56 de
instrucţiuni şi o capabilitate de adresare directă de 64Kb de memorie) la preţul de 25$
bucata, pe care cumpărătorii le puteau cumpăra imediat. Preţul scăzut a avut un impact
senzaţional şi astfel ca un răspuns la concurenţă, atât INTEL cât şi Motorola au scăzut
preţurile lor în prima zi a expoziţiei până la 69.95$ pe microprocesor. 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 facâ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.

1. Introducere

1.1 Ce este un microcontroler ?

La modul general un controler (“controller” termen de origine anglo-saxonă, cu un


domeniu de cuprindere foarte larg) 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". Cuvântul "micro" sugerează mărimea
redusă a dispozitivului iar "controler" ne spune că dispozitivul poate fi folosit pentru a
controla obicte, procese sau evenimente. Microcontrolerele pot fi găsite in componenta
oricarui tip de aparat. Orice aparat care masoară, stochează, comandă, calculează sau
afisează informaţii este o potentială gazdă pentru un microcontroler. De exemplu 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.
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 microcontroler este similar unui microprocesor. Ambele conţin o unitate
centrală de prelucrare sau UCP (central processing unit). UCP execută instrucţiuni care
îndeplinesc operaţiile de bază logice, matematice şi de transport a informaţiei.
Pentru a construi un calculator complet, microprocesorul necesită memorie pentru
păstrarea datelor şi programelor, interfeţe de intrare-iesire (I/O) pentru conectarea
dispozitivelor externe cum ar fi tastatura sau monitorul. Spre diferenţă de microprocesor,
microcontrolerul este un calculator pe un chip deorece el conţine şi memorie şi interfeţe
de intrare-iesire 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
componente: 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.
Este posibil ca la acestea să fie adăugate, la un preţ de cost avantajos, caracteristici
specifice sarcinii de control care trebuie îndeplinite.
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.

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

1.2 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.
Nu este obligatoriu ca dimensiunea cuvântului de date să fi egală cu dimensiunea unui
cuvânt maşină. 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…

1.3 Tehnologii de fabricaţie


Practic cea mai mare parte a microcontrolerelor se realizează la ora actuală în tehnologie
CMOS (tehnologii similare seriilor standard CMOS de circuite numerice HC, AC, ALV).
Se pot realiza astfel structuri cu un consum redus (care depinde de frecvenţa de lucru)
permiţând eventual alimentarea de la baterie.
Logica internă este statică (total, sau în cea mai mare parte) permiţând astfel, în anumite
condiţii, micşorarea frecvenţei de ceas sau chiar oprirea ceasului în ideea optimizării
consumului.
Tehnologia este caracterizată şi de o imunitate mai mare la perturbaţii, esenţială într-un
mare număr de aplicaţii specifice.
Se realizează şi variante pentru domeniu extins al temperaturii de funcţionare
(de exemplu –40… +85 °C)
Există diverse variante de încapsulare (plastic şi mai rar ceramică), multe destinate
montării pe suprafaţă (SMT) : DIP (de la 8 la 68 pini), SOIC, PLCC, PQFP,
TQFP (> 100 pini), etc…

2. Unitatea de memorie UM
2.1 Mod de funcţionare

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.

Pentru a explica şi a înţelege mai uşor funcţionarera 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.
OBS.
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 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.

Î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 atunci se face scrierea în locaţia de memorie.

2.2 Variante de realizare a memoriei locale

În afară de memoria locală de tip RAM, de dimensiuni relativ reduse (x10 octeţi la
x1Kocteţi), implementată ca atare sau sub forma unui set de registre şi destinată
memorării datelor (variabilelor), mai există o serie de aspecte specifice, marea majoritate
a acestora fiind legată de implementarea fizică a memoriei de program
(şi eventual a unei părţi a memoriei de date) cu ajutorul unor memorii nevolatile.

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

b. 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/cirire; este utilizată numai ca memorie de program.

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

d. 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ţă).

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

f. PROTEJAREA CODULUI
- Protejarea codului program dintr-o memorie locală nevolatilă împotriva
- accesului neautorizat (copierea codului, a aplicaţiei, “REVERSE
- ENGINEERING”) este oferită ca o opţiune, ea mai trebuind să fie şi folosită la
variantele EPROM sau OTP.
La variantele cu ROM propriu-zis ea este de multe ori implicită.

3. Unitatea centrală de procesare CPU


3.1 Rol şi funcţionalitate
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 locatiile 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.2 Caracteristici arhitecturale

Arhitectura unităţii centrale de calcul (CPU) este unul din elementele cele mai importante
care trebuie avut in vedere în analiza oricărui sistem de calcul.
Principalele concepte luate în considerare sunt următoarele:

a. Arhitecturile de tip von “Neumann”

Microcontrolerele bazate pe această arhitectură sunt caracterizate de existenţa unui


singur spaţiu de memorie utilizat pentru memorarea atât a codului instrucţiunilor cât şi a
datelor ce fac obiectul prelucrării.
Există deci o singură magistrală internă (bus) care este folosită pentru prelucrarea
(fetch) instrucţiunilor şi datelor; efectuarea celor două operaţii separate, în mod
secvenţial având ca efect încetinirea operaţiilor.
Este arhitectura standard pentru microprocesoarele de uz general.

b. Arhitecturile de tip “Harvard”

La această arhitectură există spaţii de memorie separate pentru program şi date în


consecinţă există şi magistrale separate pentru instrucţiuni şi date.
Există astfel posibilitatea execuţiei cvasiparalele (suprapunerii) a celor două operaţii
menţionate. Codul unei instruncţiuni poate fi preluat din memorie în timp ce se execută
operaţiile cu datele aferente instrucţiunii anterioare.
Este posibilă (cel puţin teoretic) o execuţie mai rapidă, pe seama unei complexităţi
sporite a microcircuitului mai ales atunci când există şi un “PIPE LINE” (acest termen va fi
prezentat într-un articol viitor).
Este arhitectura standard pentru procesoarele numerice de semnal (DSP).
c. CISC
Aproape toate microcontrolerele au la baza realizării CPU conceptul CISC
(Complex Instruction Set Computer).
Aceasta înseamnă un set de peste 80 instrucţiuni, multe din ele foarte puternice şi
specializate. De obicei multe din aceste instrucţiuni sunt foarte diferite între ele:
Unele operează numai cu anumite spaţii de adrese sau regiştrii, altele permit numai
anumite moduri de adresare, etc..
Pentru programatorul în limbaj de asamblare există unele avantaje prin utilizarea unei
singure instruncţiuni complexe în locul mai multor instrucţiuni simple (analog macro-
-instrucţiunilor clasice).

d. RISC
RISC (Reduced Instruction Set Computer) este un concept de realizare a CPU care a
început să fie utilizat cu succes şi la realizarea microcontrolerelor.
Prin implementarea unui set redus de instrucţiuni care se pot efectua foarte rapid, se
obţine o reducere a complexităţii microcircuitului, suprafaţa disponibilizată poate astfel să
fie utilizată în alte scopuri.
Printre caracteristicile asociate de obicei unui CPU RISC se pot menţiona:

-arhitectură Harvard
-viteză sporită de execuţie prin implementarea unui PIPE–Line pentru instrucţiuni
-set de instructiuni ortogonal (simetric): fiecare instrucţiune operează cu orice spaţiu de
adrese (memorie) sau registru, instructiunile nu prezintă combinaţii speciale, excepţii,
restricţii sau efecte colaterale.

Obs.
Dacă revenim la situţia curentă, rezultă deci că avem două entităţi independente
(memoria şi CPU) ce sunt interconectate, şi astfel orice schimb de informaţii este ascuns,
ca şi funcţionalitatea sa.
Dacă, de exemplu, dorim să adunăm conţinuturile a două locaţii de memorie şi întoarcem
rezultatul înapoi în memorie, vom avea nevoie de o conexiune între
memoria UM şi CPU.
Mai simplu formulat, trebuie să avem o anumită "cale" prin care datele circulă de la un
bloc la altul.

4. Bus-ul – Magistrala de date şi adrese


4.1 Rol şi funcţionalitate
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.)

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

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

5. Unitatea intrare-ieşire
5.1 Rol şi funcţionalitate

Î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ălat 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.
Când se lucrează cu porţi, mai întâi de toate este necesar să se aleagă cu ce port
urmează să se lucreze, şi apoi să se trimită, sau să se ia date de la port.

În timpul accesării, portul se comportă ca o locaţie de memorie, unde “ceva” este pur şi
simplu scris în el sau citit din el, şi este posibil de a remarca uşor aceasta la pinii
microcontrolerului.
Toate microcontrolerele au de un număr oarecare de intrări/ieşiri numerice ( x1...x10).
Conexiunile exterioare sunt bidirecţionale sau unidirecţionale, unele sunt multifuncţionale
(se oferă funcţii alternative pe acelaşi pin), altele pot avea o capacitate sporită de a
absorbi curent (de ex. pentru comanda directă a unui LED).

5.2 Tipuri reprezentative de porturi

În afară de acestea pentru interfaţa cu mediul exterior se oferă o serie de alte facilităţi
cum ar fi :

a. UART (UNIVERSAL ASYNCHRONOUS RECEIVER TRANSMITTER)


Este un port serial bidirecţional destinat implementării unui protocol clasic de comunicaţie
asincron; USART ( UNIVERSAL SYNCHRONOUS RECEIVER TRANSMITTER )
Este un port similar cu cele cunoscute, dar care permite implementarea şi a unui protocol
sincron cu obţinerea unor viteze mai mari de comunucaţie.

b. PORTURI SERIALE SINCRONE DEDICATE


Sunt destinate transferului serial de date de mare viteză cu unele periferice specializate
(sisteme de afişare, convertoare analog numerice,etc) sau permit conectarea într-o reţea
de comunicaţie simplă.
Implică şi implementarea unor protocoale mai mult sau mai puţin complexe de transfer al
informaţiei. Există câteva implementări răspândite (prezentate în ordinea crescătoare a
complexităţii):
- SPI (Serial Peripheral Interface)
Este un port serial sincron şi SCI (serial comunications interface) un circuit de tip
UART imbunătăţit, definite si utilizate de fima Motorola
- Microwire / Plus
Este o interfaţă serială bidirecţională sincronă utilizată de firma National
Semiconductor.
- I2C (Inter Integrated Circuits bus)
Este o interfaţă serială bidirecţională (pe doua fire) , dezvoltată de firma Philips,
destinată aplicaţiilor de 8 biti . Există şi multe circuite “periferice“ care sunt
prevăzute cu o astfel de interfaţă.
- CAN (Controller Area Network)
Sunt standarde de comunicaţie serială utilizate in industria de automobile,
permiţând interconectarea într-o reţea a diverselor componente inteligente
(senzori, elemente de execuţie, etc.) folosite într-un automobil modern.
6. Comunicaţia serială
S-ar părea la prima vedere că este rezolvată posibilitatea comunicării cu lumea de afară
dar, în ciuda acestui fapt, acest mod de comunicare are neajunsurile sale.
Unul din acestea este numărul de linii ce trebuie să fie folosite pentru a transfera datele.
Să punem următoarea problemă: Ce s-ar întâmpla dacă acestea ar trebui transferate la
distanţă de câţiva kilometri?
Numărul de linii şi numărul de kilometri nu promite costuri eficiente pentru proiect.
Nu ne rămâne decât să reducem numărul de linii în aşa fel încât să nu afectăm
funcţionalitatea. Să presupunem că lucrăm doar cu 3 linii, şi că o linie este folosită pentru
trimiterea de date, alta pentru recepţie şi a treia este folosită ca o linie de referinţă atât
pentru partea de intrare cât şi pentru partea de ieşire. Pentru ca aceasta să funcţioneze,
trebuie să stabilim regulile de schimb ale datelor. Aceste reguli sunt numite protocol. De
aceea protocolul este definit în avans ca să nu fie nici o neînţelegere între părţile ce
comunică una cu alta.
De exemplu, dacă un om vorbeşte în franceză, şi altul vorbeşte în engleză, este puţin
probabil că ei se vor înţelege repede şi eficient unul cu altul. Să presupunem că avem
următorul protocol. Unitatea logică "1" este setată pe linia de transmisie până ce începe
transferul. Odată ce începe transferul, coborâm linia de transmisie la "0" logic pentru o
perioadă de timp (pe care o vom desemna ca T), aşa că partea receptoare va şti că sunt
date de primit, astfel că va activa mecanismul ei de recepţie.
Să ne întoarcem acum la partea de transmisie şi să începem să punem zero-uri şi unu-uri
pe linia de transmisie în ordinea de la bitul cel mai puţin semnificativ (LSB) la bitul cel
mai mult semnificativ (MSB). Să lăsăm ca fiecare bit să rămână pe linie pentru o perioadă
de timp egală cu T, şi la sfârşit, sau după al 8-lea bit, să aducem unitatea logică "1"
înapoi pe linie ce va marca sfârşitul transmisiei unei date. Protocolul ce tocmai l-am
descris este numit în literatura profesională NRZ (Non-Return to Zero).

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.

7. 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. Acesta este o parte foarte importantă a
microcontrolerului a cărui control necesită cea mai mare parte a timpului nostru.

8. Watchdog-ul

Încă un lucru ce necesită atenţia noastră este funcţionarea fără defecte a


microcontrolerului în timpul funcţionării. Să presupunem că urmare a unei anumite
interferenţe (ce adesea se întâmplă în industrie) microcontrolerul nostru se opreşte din
executarea programului, sau şi mai rău, începe să funcţioneze incorect.

Bineînţeles, când aceasta se întâmplă cu un computer, îl resetăm pur şi simplu şi va


continua să lucreze. Totuşi, nu există buton de resetare pe care să apăsăm în cazul
microcontrolerului care să rezolve astfel problema noastră. Pentru a depăşi acest
obstacol, avem nevoie de a introduce încă un bloc numit watchdog-câinele de pază. 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.

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

Convertoarele utilizate fac parte de regulă dintr-un sistem de achiziţie de date, existând
şi un multiplexor analogic cu mai multe canale.
Rezoluţia disponibilă este de 8 sau 10 biţi cu precizia corespunzătoare numai pentru 8 (9)
biţi, pentru mărime de intrare unipolară.
Referinţa utilizată este externă. Timpul minim de conversie obtenabil este în plaja
x1 µs – x10 µs. Există microcontrolere care utilizează tehnici de (re)calibrare pentru
mărimea şi/sau menţinerea preciziei.

Tehnicile de conversie utilizate sunt: aproximaţii succesive (majoritatea) cu eşantionare


implicită sau rampă digitală.
Există şi subsisteme locale care, în cazul când sunt prezente, pot fi folosite pentru
implementarea unor alte tehnici de conversie (cu utilizarea unui număr minim de
componente exterioare): numărătoare de impulsuri, circuite comparatoare (analogice,
standard), intrări de captare (forţează memorarea “captarea” valorii unui numărător care
numără liber în momentul activării, permiţând măsurarea intervalelor de timp sau
frecvenţelor, etc.

Obs. Î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!)

Convertoare NUMERIC ANALOGICE (CNA)

Practic singura tehnică de conversie numeric analogică care poate fi folosită este bazată
pe modulaţia factorului de umplere (PWM). Există unul sau mai multe canale pe care se
poate genera un tren de impulsuri cu factor de umplere programabil (0 -100%).

Eventual în acest scop se poate utiliza şi sistemul de timere/numărătoare.


Printr-o filtrare de tip trece jos, exterioară, se poate obţine o tensiune proporţională cu
factorul de umplere.

10. Cofiguraţia fizică a interiorului unui microcontroler

Astfel microcontrolerul este acum terminat, şi tot ce mai rămâne de făcut este de a-l
pune într-o componentă electronică unde va accesa blocurile interioare prin pinii acestei
componente. Imaginile de mai jos ne sugerează cum arată un microcontroler la exterior
şi în interior.

Liniile subţiri ce merg din interior către părţile microcontrlerului reprezintă fire conectând
blocurile interioare cu pinii capsulei microcontrolerului.

10. Structura internă şi elemente componente de bază

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