caracteristicile microcontrolerelor - partea i

4
CARACTERISTICILE MICROCONTROLERELOR Tensiunea de alimentare Deşi majoritatea microcontrolerelor sunt proiectate să funcţioneze la tensiunea standard de alimentare de 5 V, există tot mai multe variante care operează la tensiuni reduse de 3 sau 3.3 V sau chiar în domenii de tensiune 2 - 6 V, cu menţiunea că o tensiune de alimentare redusă afectează de obicei negativ frecvenţa maximă de operare. Funcţionarea la tensiune de alimentare redusă apropiată de cea limită din catalog (furnizată de o baterie sau un condensator de back-up) poate fi uneori însoţită de erori, şi de aceea utilizarea unui WDT (atent testat în aplicaţie!) este o protecţie necesară în acest caz. Oscilatorul/generatorul de tact Ca orice sistem sincron, microcontrolerul dispune fie de un oscilator extern cu cuarţ, fie de un cristal cu cuarţ asociat unui oscilator intern, fie de varianta mai ieftină dar mai puţin precisă - utilizarea unui rezonator ceramic. Există modele care oferă un oscilator RC intern (economisind deci 1-2 pini din capsulă, aspect deosebit de important mai ales la capsulel e mici de 8 pini) sau extern, dar la care frecvenţa de operare variază pronunţat cu tensiunea de alimentare, temperatura, abaterile tehnologice, valoarea nominală a R şi C. Asemenea aplicaţii sunt recomandate doar acolo unde o variaţie serioasă a frecvenţei de operare nu deranjează performanţele. Frecvenţele de tact tipice variază în prezent între 4 şi 50 MHz. Spre deosebire de PC-uri, această frecvenţă de operare nu oferă măsura absolută a capacităţii de procesare a controlerului, exprimată în MIPS (millions of instructions per second), deoarece numărul de perioade necesar executării unei instrucţiuni variază de la o familie de controlere la alta, iar unele instrucţiuni necesită mai multe cicluri decât altele. O exprimare realistă este MIPS/MHz, care indică câte instrucţiuni se execută la fiecare MHz al tactului. Frecvenţe de tact mari implică evident atât consum de putere mai ridicat cât şi o emisie mai pronunţate de unde electromagnetice. Intrarea de RESET\Activarea RESET iniţializează controlerul, acesta reluând execuţia ca la o nouă punere sub tensiune. Majoritatea noilor microcontrolere vor porni la punerea sub tensiune cu pinul RESET conectat la alimentare (VDD), dar unele modele mai vechi necesită un circuit RC de pornire sigură. Există microcontrolere care nu au un pin de RESET (în cazul capsulelor cu număr redus de pini), eliberând un pin suplimentar I/O. Acestea nu pot fi resetate nard în timpul funcţionării (cu excepţia bineînţeles a tăierii tensiunii de alimentare), aspect care poate fi depășit prin prezenţa şi utilizarea unui WDT (timer watchdog). Porturi I/O (I/O Ports) Reprezintă cea mai comună facilitate hardware a controlerelor. Un port este de obicei un grup de 8 linii, care pot fi utilizate individual ca intrare sau ca ieşire şi care este adresat ca un singu r octet. Fiecare linie poate fi configurată independent ca intrare sau ieşire, pot fi configurate rezistenţe de pull-up pe intrări şi uneori pe ieşiri (o rezistenţă de valoare ridicată conectată la tensiunea de alimentare VDD). Este uzual pentru microcontrolerele moderne să multiplexeze mai multe funcţii pentru acelaşi pin (nu este neobişnuit să existe chiar 6 asemenea funcţii asociate aceluiaşi pin). Pe lângă funcţia fundamentală de intrare-ieşire digitală, celelalte funcţii sunt legate de periferice digitale (întreruperi, timere, USART, SPI, l2C, etc) sau analogice (ADC, Comparator, DAC, etc).

Upload: oana-diaconescu

Post on 27-Nov-2015

17 views

Category:

Documents


0 download

DESCRIPTION

caracteristicile microcontrolerelor

TRANSCRIPT

Page 1: Caracteristicile Microcontrolerelor - PARTEA I

CARACTERISTICILE MICROCONTROLERELOR

Tensiunea de alimentare

Deşi majoritatea microcontrolerelor sunt proiectate să funcţioneze la tensiunea standard de

alimentare de 5 V, există tot mai multe variante care operează la tensiuni reduse de 3 sau 3.3 V

sau chiar în domenii de tensiune 2 - 6 V, cu menţiunea că o tensiune de alimentare redusă

afectează de obicei negativ frecvenţa maximă de operare. Funcţionarea la tensiune de alimentare

redusă apropiată de cea limită din catalog (furnizată de o baterie sau un condensator de back-up)

poate fi uneori însoţită de erori, şi de aceea utilizarea unui WDT (atent testat în aplicaţie!) este o

protecţie necesară în acest caz.

Oscilatorul/generatorul de tact

Ca orice sistem sincron, microcontrolerul dispune fie de un oscilator extern cu cuarţ, fie de un

cristal cu cuarţ asociat unui oscilator intern, fie de varianta mai ieftină dar mai puţin precisă -

utilizarea unui rezonator ceramic.

Există modele care oferă un oscilator RC intern (economisind deci 1-2 pini din capsulă, aspect

deosebit de important mai ales la capsulele mici de 8 pini) sau extern, dar la care frecvenţa de

operare variază pronunţat cu tensiunea de alimentare, temperatura, abaterile tehnologice,

valoarea nominală a R şi C. Asemenea aplicaţii sunt recomandate doar acolo unde o variaţie

serioasă a frecvenţei de operare nu deranjează performanţele.

Frecvenţele de tact tipice variază în prezent între 4 şi 50 MHz. Spre deosebire de PC-uri, această

frecvenţă de operare nu oferă măsura absolută a capacităţii de procesare a controlerului,

exprimată în MIPS (millions of instructions per second), deoarece numărul de perioade necesar

executării unei instrucţiuni variază de la o familie de controlere la alta, iar unele instrucţiuni

necesită mai multe cicluri decât altele. O exprimare realistă este MIPS/MHz, care indică câte

instrucţiuni se execută la fiecare MHz al tactului. Frecvenţe de tact mari implică evident atât

consum de putere mai ridicat cât şi o emisie mai pronunţate de unde electromagnetice.

Intrarea de RESET\Activarea RESET iniţializează controlerul, acesta reluând execuţia ca la o

nouă punere sub tensiune. Majoritatea noilor microcontrolere vor porni la punerea sub tensiune

cu pinul RESET conectat la alimentare (VDD), dar unele modele mai vechi necesită un circuit

RC de pornire sigură.

Există microcontrolere care nu au un pin de RESET (în cazul capsulelor cu număr redus de pini),

eliberând un pin suplimentar I/O. Acestea nu pot fi resetate nard în timpul funcţionării (cu

excepţia bineînţeles a tăierii tensiunii de alimentare), aspect care poate fi depășit prin prezenţa şi

utilizarea unui WDT (timer watchdog).

Porturi I/O (I/O Ports)

Reprezintă cea mai comună facilitate hardware a controlerelor. Un port este de obicei un grup de

8 linii, care pot fi utilizate individual ca intrare sau ca ieşire şi care este adresat ca un singur

octet.

Fiecare linie poate fi configurată independent ca intrare sau ieşire, pot fi configurate rezistenţe de

pull-up pe intrări şi uneori pe ieşiri (o rezistenţă de valoare ridicată conectată la tensiunea de

alimentare VDD).

Este uzual pentru microcontrolerele moderne să multiplexeze mai multe funcţii pentru acelaşi pin

(nu este neobişnuit să existe chiar 6 asemenea funcţii asociate aceluiaşi pin). Pe lângă funcţia

fundamentală de intrare-ieşire digitală, celelalte funcţii sunt legate de periferice digitale

(întreruperi, timere, USART, SPI, l2C, etc) sau analogice (ADC, Comparator, DAC, etc).

Page 2: Caracteristicile Microcontrolerelor - PARTEA I

În cadrul unui microcontroler pot exista pini care pot debita sau consuma un curent sporit (10-40

mA) faţă de 2-5 mA la pinii obişnuiţi. Este important de consultat foaia de catalog a

microcontrolerului pentru a nu depăşi curentul de alimentare total maxim admis pentru

microcontroler.

Protecţia la scăderea tensiunii de alimentare – Modulul BOD (Brown-Out Detector)

Acest modul BOD resetează controlerul dacă tensiunea de alimentare a scăzut sub o

anumită valoare, prestabilită (şi uneori programabilă) şi menţine starea de Reset până la

revenirea tensiunii de alimentare la valoarea nominală; Se obţine astfel o protecţie eficientă

împotriva comportării cu erori la tensiuni reduse de alimentare (inclusiv la funcţionarea

defectuoasă a memoriei EEPROM, acesta fiind cel mai puternic motiv pentru a utiliza această

facilitate). Există o serie de circuite externe cu 3 pini care efectuează această funcţie sau

regulatoare liniare integrate care au o ieşire de Reset destinată a fi conectată la pinul omonim al

microcontrolerului.

La microcontrolerele moderne există şi un alt modul numit LVD (Low Voltage

Detector - detectarea tensiunii scăzute), format dintr-un convertor digital analog (CDA), un

multiplexor şi un comparator. Odată activat, modulul LVD va monitoriza tensiunea la un pin,

comparând-o permanent cu o valoare programabilă, stabilită prin CDA (uzual între 1 şi 4 V). La

scăderea sub această valoare se va genera o întrerupere sau un RESET.

WDT (Watchdog Timer)

Orice microcontroler ar trebui sa aibă un WDT, iar în caz că nu are poate fi folosit oricând unul

extern.

WDT este un timer special folosit pentru revenirea din situaţii dificile, cum ar fi:

– probleme de software, ca de exemplu bucle infinite

– probleme de hardware care blochează funcţionarea corectă a programului.

Acest timer verifică că anumite porţiuni din program sunt atinse într-un timp predeterminat.

Acest timer are propriul oscilator intern cu ceas şi de aceea nu este afectat în funcţionare de

modurile tip “SLEEP” în care ceasul sistem este oprit.

WDT este utilizat pentru monitorizarea funcţionării corecte a sistemului:

– O dată ce este activat el începe decrementarea conţinutului său, începând cu o valoare

programată (timp programat în registrul său de control);

– Dacă ajunge la zero va activa intrarea de RESET a MC pentru iniţializare şi repornirea

programului;

– Pentru a bloca acţiunea de RESET, programul rulat trebuie să restarteze circuitul

watchdog timer înainte ca acesta să ajungă la zero;

– Este util în cazul erorilor nepermanente ale sistemului.

Un controler bun oferă și facilitatea de a diferenția un RESET produs de punerea inițială sub

tensiune de unul datorat unui WDT.

Timere

Un timer este în cel mai simplu caz un numărător programabil. Semnalul de tact este obţinut de

la oscilatorul controlerului sau poate fi un semnal aplicat unui pin. Unui timer i se poate asocia

un circuit de prescalare (şi uneori un circuit de postscalare) pentru a mări capacitatea de

numărare. În prezent timerele sunt pe 8 sau 16 biţi; numărarea poate avea loc în sens crescător

sau descrescător, dar este prestabilită pentru un tip de controler. Un timer poate genera o

întrerupere la depăşire (atunci când conţinutul său devine zero). De obicei timer-ul poate fi citit

şi scris în timpul funcţionării, facilitate care permite generarea unor intervale de timp extrem de

precise. Timer-ele moderne oferă în plus facilităţi de comparare şi sau captură.

Prin captură (capture) se stochează valoarea timer-ului în momentul în care apare o tranziţie

activă la unul din pinii controlerului, iar opţional se poate genera o întrerupere (figura 1.12

stânga).

Prin comparare (compare) se generează o întrerupere când timer-ul ajunge la o valoare

prestabilită (figura 1.12 dreapta).

Page 3: Caracteristicile Microcontrolerelor - PARTEA I

PWM - Modulatorul în durată

Modulatorul în durată PWM (Pulse Width Modulation) produce un tren de impulsuri cu durata

programabilă a stării SUS şi JOS, prin aceasta permiţându-se modificarea factorului de umplere

(duty cycle). Semnalul PWM se poate utiliza direct (de exemplu pentru comanda unei diafragme

piezoelectrice sau intensităţii luminoase a unui LED sau bec) sau se poate filtra şi amplifica

(atunci poate comanda un motor de curent continuu, un difuzor sau o altă sarcină (figura 1.14)).

Chiar la microcontrolerele de 8 biţi, factorul de umplere poate avea o rezoluţie bună - de

exemplu de 10 biţi la PIC18F452. Aceasta înseamnă că un PWM urmat de un filtru RC trece-jos

se poate folosi ca o alternativă ieftină şi destul de precisă pentru a înlocui un CDA. În cazul

alimentării la +5V, un asemenea semnal PWM filtrat poate lua orice valoare între 0 şi 5 V cu o

rezoluţie de 5 / 1024 = 4.88 mV (unde 1024 = 2n, n = 10 biți).

Intrări şi ieşiri analogice (Analog Inputs and Outputs)

Microcontrolerele evoluate dispun de convertoare analog / digitale pe 8, 10 sau chiar 12 biţi.

Deoarece un microcontroler este un circuit "zgomotos " prin excelenţă, de cele mai multe ori este

oferită posibilitatea decuplării celorlalte periferice pe durata conversiei. De obicei o întrerupere

este generată la încheierea conversiei. Deoarece un convertor intern A / D reduce varietatea de

controlere disponibile (şi implică un preţ mai ridicat) uneori este utilă şi opţiunea unui CAD

extern. Acestea se pot conecta paralel sau serial dacă durata conversiei nu este esenţială - opţiune

extrem de interesantă. Un astfel de circuit este potrivit pentru această funcţie, deoarece

interfaţarea cu microcontrolerul este simplă şi sunt implicate puţine linii I / O (tipic trei sau

patru).

Un lanţ de prelucrare A / D şi D / A, numit uneori şi canal, prezentat în figura 1.15, porneşte de

la informaţia analogică (temperatura), o converteşte într-o mărime numerică, o prelucrează

numeric, o reconverteşte analogic şi în final o transmite.

Un număr foarte redus de controlere oferă convertoare D / A, cel mai adesea ca sursă de curent

programabilă, dar există modele şi cu ieşirea în tensiune. Şi în acest caz există opţiunea utilizării

unui convertor extern, care va utiliza 2-3 linii I / O (iar dacă este utilizat alături de alt circuit

serial - un CAD, va putea partaja magistrala serială a acestuia, adică un nou circuit serial

Page 4: Caracteristicile Microcontrolerelor - PARTEA I

consumă o singură linie I (care este o linie I/O suplimentară pentru magistralele SPI, respectiv

nici una în cazul I2C).

Se pot imagina o serie de "trucuri" (modalităţi) pentru a înlocui CAD şi mai ales CDA. Pentru o

variaţie liniară la intrare se poate folosi combinaţia rezistenţă de pull-up internă şi un

condensator extern. Pentru a genera o tensiune analogică la ieşire se poate folosi PWM urmat de

un filtru trece-jos sau chiar o reţea R-2R externă.

Comparatorul analogic (Analog Comparator)

Includerea unui comparator analogic într-un microcontroler este o dezvoltare recentă, dar utilă

atunci când se intenţionează prelucrarea unor semnale analogice. Ieşirea comparatorului apare ca

un pin I / O sau ca un bit într-un registru şi poate genera o întrerupere. Datorită zgomotului

inerent intern, un comparator analogic integrat va fi de obicei mai puţin precis ca unul extern.

Ceasul de timp real

Unele microcontrolere, mai ales cele destinate aplicaţiilor de larg consum includ un ceas de timp

real (RTC real-time clock) care memorează data şi ora curentă chiar în regimul de operare de

putere redusă.

Regimul de putere redusă - Multe microcontrolere oferă în prezent posibilitatea intrării într-un

mod de operare de putere redusă (Low-Power Mode numit uneori SLEEP, IDLE, sau WAIT)

caracterizat printr-un consum extrem de redus şi încetarea execuţiei programului. Acest mod este

folosit pentru păstrarea cât mai îndelungată a sursei de alimentare secundare - o baterie,

condensator de valoare mare, etc. Microcontrolerul poate fi "trezit" de un timer, o întrerupere

externă sau schimbarea stării unui pin I / O. În regimul de putere redusă curentul de alimentare

este de ordinul microamperilor sau chiar mai mic şi depinde în principal de tensiunea de

alimentare şi temperatură.

Tactul ceasului de timp real este asigurat de un cristal miniatură de 32,768 KHz, iar RTC

generează o întrerupere la fiecare 1/2 secundă; rutina de tratare a întreruperii trebuie să

incrementeze corespunzător contorul de dată şi ora.