Documente Academic
Documente Profesional
Documente Cultură
1.3
CLASIFICRI
I
VARIANTE
CONSTRUCTIVE
ALE
MICROCONTROLERELOR
Exist la ora actual un numr extrem de mare de tipuri constructive de microcontrolere.
Un criteriu de clasificare care se poate aplica ntotdeauna este lungimea (dimensiunea)
cuvntului de date. Funcie de puterea de calcul dorit i de alte caracteristici se pot alege
variante avnd dimensiunea cuvntului de date de 4, 8, 16, 32 i 64 de bii. Nu este obligatoriu
ca dimensiunea cuvntului de date s fie egal cu dimensiunea unui cuvnt main (cuvnt
program). Exist i multe variante zise dedicate, neprogramabile de utilizator la nivel de cod
main, strict specializate pe o anumit aplicaie, prin intermediul codului preprogramat i al
resurselor hardware, utilizate pentru comunicaii, controlul tastaturilor, controlul aparaturii
audio/video, prelucrarea numeric a semnalului, etc.
1.4
TEHNOLOGIILE
DE
FABRICAIE
UTILIZATE
N
CAZUL
MICROCONTROLERELOR
Practic, toate microcontrolerele se realizeaz n tehnologie CMOS (tehnologii similare
celor utilizate la seriile standard CMOS de circuite numerice). Se pot realiza astfel structuri cu o
mare densitate de integrare, cu un consum redus (care va depinde de frecvena de lucru),
permind eventual alimentarea de la baterie.
Logica intern este static (total sau n cea mai mare parte) permind astfel, n anumite
condiii, micorarea frecvenei de ceas sau chiar oprirea ceasului n ideea optimizrii
consumului. Tehnologia este caracterizat i de o imunitate mai mare la perturbaii, esenial
ntr-un mare numr de aplicaii specifice. Se realizeaz variante pentru un domeniu extins al
temperaturii de funcionare (de la 400C pn la +850C).
Exist foarte multe variante de ncapsulare (capsule de plastic i mai rar de ceramic),
multe din ele destinate montrii pe suprafa (SMD): SOIC, PLCC, PQFP, TQFP (x100pini),
etc., dar i variante clasice cu pini tip DIP/DIL (tipic de la 8 la 68 pini).
1.5 CARACTERISTICI ARHITECTURALE ALE UNITII CENTRALE
Arhitectura unitii centrale de calcul (UCP) este unul din elementele cele mai
importante care trebuie avut n vedere n analiza oricrui sistem de calcul. Principalele concepte
luate n considerare i ntlnite aici sunt urmtoarele:
a) Arhitecturi de tip von Neumann
Cele mai multe microcontrolere sunt realizate pe baza acestei arhitecturi de sistem.
Microcontrolerele bazate pe aceast arhitectur au o unitate central (UCP) caracterizat de
existena unui singur spaiu de memorie utilizat pentru memorarea att a codului instruciunilor
ct i a datelor ce fac obiectul prelucrrii. Exist deci o singur magistral intern (bus) care
este folosit pentru preluarea instruciunilor i a datelor; iar efectuarea celor dou operaii
separate, n mod secvenial, are ca efect, cel puin principial, ncetinirea operaiilor. Este
arhitectura standard (cea mai des ntlnit) i pentru microprocesoarele de uz general.
b) Arhitecturi de tip Harvard
La aceast arhitectur exist spaii de memorie separate pentru program i date. n
consecin ar trebui s existe i magistrale separate (de adrese i date) pentru codul
instruciunilor i respectiv pentru date. Principial exist astfel posibilitatea execuiei
cvasiparalele (suprapunerii) a celor dou operaii menionate anterior. Codul unei instruciuni
poate fi preluat din memorie n timp ce se execut operaiile cu datele aferente instruciunii
anterioare. Este posibil (cel puin teoretic) o execuie mai rapid, pe seama unei complexiti
sporite a microcircuitului, mai ales atunci cnd exist i un pipeline (= tehnica de
implementare n care se permite suprapunerea execuiei mai multor instruciuni). Este
arhitectura standard pentru procesoarele numerice de semnal (DSP). Datorit costului mare al
implementrii unei astfel de arhitecturi, n cazul microcontrolerelor se ntlnete mai ales o
arhitectur Harvard modificat, cu spaii de memorie separate pentru program i date, dar cu
magistrale comune pentru adrese i date.
c) CISC
Aproape toate microcontrolerele au la baza realizrii UCP conceptul CISC (Complex
Instruction Set Computer = calculator cu set complet de instruciuni). Aceasta nseamn c au
un set uzual de peste 80 instruciuni, multe din ele foarte puternice i specializate. De obicei
multe din aceste instruciuni sunt foarte diferite ntre ele: unele opereaz numai cu anumite
spaii de adrese sau registre, altele permit numai anumite moduri de adresare, etc. Pentru
programatorul n limbaj de asamblare exist unele avantaje prin utilizarea unei singure
instruciuni complexe n locul mai multor instruciuni simple (analog macroinstruciunilor
clasice dintr-un limbaj de asamblare).
d) RISC
RISC (Reduced Instruction Set Computer = calculator cu set redus de instruciuni) este
un concept de realizare a UCP care a nceput s fie utilizat cu succes de ceva timp i la
realizarea microcontrolerelor. Prin implementarea unui set redus de instruciuni care se pot
executa foarte rapid i eficient, se obine o reducere a complexitii microcircuitului, suprafaa
disponibilizat putnd fi utilizat n alte scopuri. Printre caracteristicile asociate de obicei unei
UCP de tip RISC se pot meniona:
- arhitectur Harvard modificat sau von Neumann;
- vitez sporit de execuie prin implementarea unui pipeline pentru instruciuni;
- set de instruciuni ortogonal (simetric): orice instruciune opereaz cu orice spaiu de
adrese (de memorie) sau orice registru, iar instruciunile nu prezint combinaii speciale,
excepii, restricii sau efecte colaterale.
1.6
ASPECTE
LEGATE
DE
IMPLEMENTAREA
MEMORIEI
MICROCONTROLERELOR
n afar de memoria local de tip RAM (Random Access Memory), de dimensiuni
relativ reduse (de la x10 octei la x1k), implementat ca atare sau existent sub forma unui set
de registre i destinat memorrii 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 pri a memoriei de date) cu ajutorul unor memorii nevolatile. Clasic, memoria
de program era implementat ntr-o variant de tip ROM: EPROM (Erasable Programmable
Read Only Memory = ROM programabil i anulabil, adic care i pstreaz datele i cnd i se
ntrerupe alimentarea cu curent electric) pentru dezvoltare i producie pe scar mic/medie sau
mask-ROM pentru producia de mas. Principalele concepte noi aprute de-a lungul timpului n
legtur cu implementarea memoriei de program sau date sunt enumerate n continuare.
a) OTP (One Time Programmable) - majoritatea productorilor ofer variante de
microcontrolere la care memoria local de program este de tip OTP, practic o memorie PROM
identic intern cu varianta EPROM, dar fr fereastra de cuar pentru tergere (deci i mai
ieftin); aceste variante pot fi utilizate ca o alternativ pentru o producie limitat, pn n
momentul testrii i validrii finale a codului, moment n care pot fi comandate variantele
(mask) ROM propriu-zise, cele mai economice pentru o producie de mas.
b) FLASH EPROM (= memorie nevolatil n care datele persist i fr alimentare cu
energie electric i care la nevoie poate fi tears i reprogramat/rencrcat cu date) - este o
soluie mai bun dect EPROM-ul propriu-zis atunci cnd este necesar un volum mare de
memorie program (nevolatil); mai rapid i cu un numr garantat suficient de mare (x10000)
de cicluri de programare (de tergere/scriere), este caracterizat i prin modaliti mai flexibile
de programare; este utilizat numai ca memorie de program.
c) EEPROM (Electrically Erasable Programmable Read Only Memory)- multe
microcontrolere au i o memorie de acest tip, de dimensiune limitat (de la x10 octei la xK
octei), destinat memorrii unui numr limitat de parametrii (memorie de date) care eventual
trebuie modificai din timp n timp; este o memorie relativ lent (la scriere), dar cu un numr de
cicluri de tergere/scriere mai mare ca FLASH-ul (x100000).
d) NOVRAM (RAM nevolatil) - realizat prin alimentarea local (baterie, acumulator)
a unui masiv RAM CMOS atunci cnd este necesar un volum mare de memorie de program i
date nevolatil; mult mai rapid dect toate celelalte tipuri i fr limitri ca numr de cicluri.
e) Conceptul de programare "In System" (ISP = In System Programming) - folosirea
unor memorii nevolatile de tip FLASH face posibil i programarea unui astfel de
microcontroler fr a-l scoate din sistemul n care este ncorporat (programare on-line, In
System Programming); programarea se face de regul prin intermediul unei interfee seriale
dedicate de tip ISP (poate avea nume diferite) sau a unei interfee standard. Exist
microcontrolere la care aceast programare se poate face prin intermediul unui port serial
asincron sau al interfeei CAN (Controller Area Network). Este posibil astfel modificarea cu
uurin a codului program sau a unor constante de lucru (local sau de la distan - remote
update).
Observaie: Un lucru foarte important este c la anumite familii interfaa prin intermediul creia
se face programarea poate fi utilizat i la testarea i depanarea aplicaiei (soft), permind
realizarea simpl, cu un pre de cost minim, a unor mijloace de testare i depanare (emulatoare).
f) Bootloader multe din microcontrolerele recente la care memoria de program este
de tip FLASH au i facilitatea (au de fapt instruciuni dedicate acestui scop) de a putea i scrie
n aceast memorie de program fr a utiliza un circuit de programare extern. Astfel n
microcontroler poate exista permanent (rezident) un cod de mici dimensiuni (denumit i
bootloader) care pur i simplu va ncrca prin intermediul portului serial (este doar un exemplu)
codul utilizator sau constantele pe care acesta vrea eventual s le actualizeze. Bootloader-ul este
i cel care lanseaz n execuie programul utilizator dup ncrcarea acestuia.
g) Conceptul de protejare a codului program - protejarea codului program dintr-o
memorie local nevolatil mpotriva accesului neautorizat (la citire deoarece pirateria soft
exist i aici) este oferit ca o opiune la variantele FLASH, EPROM sau OTP. Codul poate fi
protejat att la citire ct i la scriere (practic circuitul trebuie ters, nainte de a se mai putea
scrie ceva n el). Este eliminat astfel posibilitatea de a se realiza, n acest caz, de patch-uri
(alterri cu un anumit scop) ale codului original. La variantele mask-ROM propriu-zise
protecia este de cele mai multe ori implicit.
h) Memoria extern de program sau date
Marea majoritate a familiilor de microcontrolere permit si utilizarea de memorie
extern de program (tipic ROM) sau date (tipic RAM). Aceasta presupune existena i utilizarea
unor magistrale externe de adrese si date. Conexiunile externe necesare pentru acestea sunt
disponibile ca funcii alternative ale pinilor. Din pcate, n aceast situaie numrul de
conexiuni exterioare disponibile pentru interfaa cu exteriorul se reduce dramatic, reducnd
mult din versatilitatea microcontrolerului. Mai mult la variantele constructive cu un numr mic
de pini (conexiuni externe) nu este posibil utilizarea de memorie extern, dect, eventual,
ntr-o variant cu interfa serial (memorie RAM, FLASH sau EEPROM cu interfa I2C, SPI,
etc.) i numai ca memorie de date.
1.7 FAMILII DE MICROCONTROLERE REPREZENTATIVE
n prezentarea care urmeaz accentul este pus pe familiile cele mai cunoscute de 8 bii i
16 bii.
a) 8048 (Intel MCS-48 - www.intel.com ) reprezint bunicul microcontrolerelor pe 8
bii, mai este nc folosit! Unele din caracteristicile sale arhitecturale se regsesc la urmtoarea
generaie (MCS-51, 8051).
b) 8051 (Intel MCS-51 i muli alii: Atmel, Philips www.semiconductor.philips.com,