Documente Academic
Documente Profesional
Documente Cultură
1. Introducere
Capitolul 1 INTRODUCERE
1.1 CE ESTE DE FAPT UN MICROCONTROLER?
La modul general un controler ("controller" - un termen de origine anglo-saxon, cu
un domeniu de cuprindere foarte larg) este, actualmente, o structur electronic destinat
controlului (destul de evident!) unui proces sau, mai general, unei interaciuni caracteristice
cu mediul exterior, fr s fie necesar intervenia operatorului uman. Primele controlere au
fost realizate n tehnologii pur analogice, folosind componente electronice discrete i/sau
componente electromecanice (de exemplu relee). Cele care fac apel la tehnica numeric
modern au fost realizate iniial pe baza logicii cablate (cu circuite integrate numerice
standard SSI i MSI ) i a unei electronici analogice uneori complexe, motiv pentru care
"strluceau" prin dimensiuni mari, consum energetic pe msur i, nu de puine ori, o
fiabilitate care lsa de dorit.
Apariia i utilizarea microprocesoarelor de uz general a dus la o reducere consistent
a costurilor, dimensiunilor, consumului i o mbuntire a fiabilitii. Exist i la ora actual
o serie de astfel de controlere de calitate, realizate n jurul unor microprocesoare de uz
general cum ar fi Z80 (Zilog), 8086/8088 (Intel), 6809 (Motorola), etc.
Pe msur ce procesul de miniaturizare a continuat, a fost posibil ca majoritatea
componentelor necesare realizrii unei astfel de structuri s fie ncorporate (integrate) la
nivelul unui singur microcircuit (cip). Astfel c un microcontroler ar putea fi descris ca fiind
i o soluie (nu n sens exhaustiv !) a problemei controlului cu ajutorul a (aproape) unui
singur circuit.
Legat de denumiri i acronime utilizate, aa cum un microprocesor de uz general este
desemnat prin MPU (MicroProcessor Unit), un microcontroler este, de regul, desemnat ca
MCU, dei semnificaia iniial a acestui acronim este MicroComputer Unit.
O definiie, cu un sens foarte larg de cuprindere, ar fi aceea c un microcontroler
este un microcircuit care incorporeaz o unitate central (CPU) i o memorie mpreun
cu resurse care-i permit interaciunea cu mediul exterior.
Resursele integrate la nivelul microcircuitului ar trebui s includ, cel puin,
urmtoarele componente:
a. o unitate central (CPU), cu un oscilator intern pentru ceasul de sistem
b. o memorie local tip ROM/PROM/EPROM/FLASH i eventual una de tip RAM
c. un sistem de ntreruperi
d. I/O - intrri/ieiri numerice (de tip port paralel)
e. un port serial de tip asincron i/sau sincron, programabil
f. un sistem de timere-temporizatoare/numrtoare programabile
Este posibil ca la acestea s fie adugate, la un pre de cost avantajos, caracteristici
specifice sarcinii de control care trebuie ndeplinite:
g. un sistem de conversie analog numeric(una sau mai multe intrari analogice)
h. un sistem de conversie numeric analogic i/sau ieiri PWM (cu modulare n durat)
i. un comparator analogic
j. o memorie de date nevolatil de tip EEPROM
k. faciliti suplimentare pentru sistemul de temporizare/numrare (captare i
comparare)
l. un ceas de gard (timer de tip watchdog)
m. faciliti pentru optimizarea consumului propriu
Un microcontroler tipic mai are, la nivelul unitii centrale, faciliti de prelucrare a
informaiei la nivel de bit, de acces direct i uor la intrri/ieiri i un mecanism de prelucrare
Microcontrolere
1. Introducere
Microcontrolere
1. Introducere
Microcontrolere
1. Introducere
Microcontrolere
1. Introducere
sporite a microcircuitului, mai ales atunci cnd exist i un pipeline. 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 CPU conceptul CISC (Complex
Instruction Set Computer). Aceasta nseamn 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) este un concept de realizare a CPU 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 unui CPU 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, instruciunile nu prezint combinaii speciale,
excepii, restricii sau efecte colaterale.
1.5
ASPECTE
LEGATE
DE
IMPLEMENTAREA
MEMORIEI
MICROCONTROLERELOR
n afar de memoria local de tip RAM, 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 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 - majoritatea productorilor ofer variante de microcontrolere la care
memoria local de program este de tip OTP (One Time Programmable), practic o memorie
PROM identic intern cu varianta EPROM, dar fr fereastra de cuar pentru tergere (deci i
mai ieftine); 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 - 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
Microcontrolere
1. Introducere
de program.
c. EEPROM - multe microcontrolere au i o memorie de acest tip, de dimensiune
limitat (de la x10 octei la x K 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. Programarea "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 JTAG. Exist
microcontrolere la care aceast programare se poate face prin intermediul portului serial
asincron sau al interfetei 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). Vezi i Bootloader.
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). De exemplu, n acest caz interfaa JTAG este specificat ca fiind
JTAG/ICE (In Circuit Emulation) pentru a arta c poate fi folosit i pentru emularea n
circuit.
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. Protejarea codului - protejarea codului program dintr-o memorie local nevolatil
mpotriva accesului neautorizat (la citire deoarece pirateria soft exist i aici) este oferit ca
o opiune (ea mai trebuie i folosit!) la variantele FLASH, EPROM sau OTP. Codul poate
protejat att la citire cat 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-zis
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 existenta si
utilizarea unor magistrale externe de adrese si date. Conexiunile externe necesare pentru
acestea sunt disponibile ca funcii alternative ale pinilor. Din pcate, in 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,
Microcontrolere
1. Introducere
dect, eventual, intr-o variant cu interfa serial (memorie RAM, FLASH sau EEPROM cu
interfa I2C, SPI, etc.) si numai ca memorie de date.
1.6 CONTROLUL PUTERII CONSUMATE I ALIMENTAREA LA TENSIUNI
REDUSE
Majoritatea microcontrolerelor pot fi trecute sub control soft n stri speciale cum ar
fi: n ateptare (STAND-BY), inactiv ("IDLE") sau oprit ("HALT", "POWER DOWN"),
denumirile acestor stri diferind i funcie de fabricant. n aceste moduri starea CPU,
coninutul RAM-ului intern, starea I/O-urilor poate fi conservat n condiiile unei tensiuni de
alimentare reduse (fa de cea nominal) i deci al unui consum mult redus. Flexibilitatea
acestui sistem este strans legata de faciltitatile si programabilitatea sistemului de generare a
ceasului de lucru (clock system, vezi 1.7).
De exemplu, ntr-un mod de tip "IDLE" toate activitile sunt oprite cu excepia
circuitului oscilatorului local de ceas i, dac acestea exist: circuitul "watchdog" (ceasul de
gard), circuitul de monitorizare a oscilatorului de ceas i eventual un temporizator dedicat
("idle timer"). Puterea consumat este redus la cca. 30%, iar ieirea din acest mod se face
prin reset (iniializare) sau printr-un stimul exterior (de regul o ntrerupere). Temporizatorul
dedicat poate scoate periodic microcontrolerul din aceast stare, pentru ndeplinirea anumitor
sarcini, dup care se reintr n starea respectiv.
n modul"HALT" toate activitile sunt oprite, tensiunea de alimentare poate fi
cobort sub valoarea nominal, fr alterarea strii (CPU, RAM, I/O), puterea consumat
fiind minim. Ieirea din aceast stare se face prin reset sau ca urmare a unei cereri de
ntrerupere. Toate aceste moduri de lucru sunt de regul valorificate n aplicaii n care
alimentarea sistemului se face de la o surs de tip baterie (n funcionarea normal sau numai
n anumite situaii).
Se mai ofer uneori ca facilitate o protecie la scderea accidental (n anumite limite)
a tensiunii de alimentare ("brownout protection"). La scderea tensiunii de alimentare sub o
anumit limit ("brownout voltage") microcontrolerul este iniializat (resetat) i inut n
aceast stare atta timp ct condiia respectiv persist.
Tensiunea de alimentare standard pentru microcontrolere a fost mult timp, din
considerente i istorice(vezi TTL-ul), de Vcc = 5V (cu o anumit toleran ). La ora actual
se ofer, pentru multe din ele, i variante cu tensiune de alimentare redus (Low Voltage) cu
Vcc = 1.8 .. 3.3V, destinate unor aplicaii unde consumul este un parametru critic. Exist
variante cu plaj mare a tensiunii de alimentare, de exemplu Vcc = 2..6V, funcionarea la
limita inferioar implicnd doar o micorare a frecvenei maxime de ceas.
1.7 SISTEMUL DE CEAS
Orice microcontroler este caracterizat cel puin de existena circuitelor electronice
aferente oscilatorului care genereaz ceasul de sistem. Astfel este posibil implementarea
simpl a oscilatorului doar prin adugarea, n exterior, a unui rezonator extern (cuar sau
piezoceramica) pentru stabilizarea frecventei si eventual a unor capacitori. Dac stabilitatea
si precizia frecvenei nu este o cerin important, la anumite microcontrolere se poate utiliza
doar un circuit RC extern sau exist un circuit RC intern, care determin frecvena de
oscilaie. Exist microcontrolere la care configuraia oscilatorului este programabil prin
intermediul unor fuzibile FLASH (se programeaz similar memoriei de program):
rezonator extern i tipul acestuia, varianta RC intern sau extern, gama de frecvent, etc.
La familiile evoluate de microcontrolere exist si circuite de tip PLL (Phase Locked Loop)
si/sau FLL (Frequency Locked Loop) care permit multiplicarea cu uurin a frecvenei de
Microcontrolere
1. Introducere
Microcontrolere
1. Introducere
Microcontrolere
1. Introducere
la 100%). Factorul de umplere este controlat cu o rezoluie de la 8 bii sau 16 bii. Frecvena
trenului de impulsuri este i ea programabil, n limite largi. La un microcontroler fr un
sistem PWM dedicat, n acest scop se poate utiliza, cu o flexibilitate mai sczut, sistemul de
timere/numrtoare i orice ieire numeric. Printr-o filtrare exterioar relativ simpl, de tip
trece jos (FTJ, Low Pass), se poate obine o tensiune de ieire proporional cu factorul de
umplere. Convertoare numeric analogice propriu-zise sunt mai rar ntlnite.
g. Interfaa pentru sisteme de afiare tip LCD (panou LCD)
n ultimul timp n familiile de microcontrolere deja consacrate sau n familiile noi au
aprut variante care posed un subsistem destinat conectrii directe, cu utilizarea unui numr
minim de componente exterioare, unui sistem de afiare (un panou) de tip LCD (cu cristale
lichide). Interfaa respectiv genereaz toate semnalele necesare pentru comanda panoului
LCD. Complexitatea sa este descris prin numrul maxim de segmente LCD care pot fi
controlate, fiind limitat n primul rnd de numrul de conexiuni externe necesare (pentru un
numr mare de segmente oricum se folosesc tehnici de multiplexare).
1.9 FAMILII DE MICROCONTROLERE REPREZENTATIVE
n prezentarea care urmeaz i care nu se dorete exhaustiv, accentul este pus pe
familiile mai cunoscute, de 8 bii i 16bii.
a. 8048 (Intel MCS-48 - www.intel.com )
"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,
Infineon, Atmel, Dallas-Maxim - www.maxim-ic.com, Cygnal www.cygnal.com , etc.)
A doua generaie de microcontrolere de 8 bii a firmei Intel care, dei aprut acum 20
de ani, nc ocup un segment semnificativ de pia. Cu o arhitectur destul de ciudat, este
suficient de puternic i uor de programat (odat nvat!). Arhitectura sa are spaii de
memorie separate pentru program i date. Poate adresa 64KBytes memorie de program, din
care primii 4(8..32)KBytes locali (ROM). Poate adresa 64KBytes memorie de date extern,
adresabil doar indirect. Are 128 (256) octei de RAM local, plus un numr de registre
speciale pentru lucrul cu periferia local. Are faciliti de prelucrare la nivel de bit (un
procesor boolean, adresare pe bit). Intel a dezvoltat si un super 8051 numit generic 80151.
Actualmente exist zeci de variante produse de diveri fabricani (Philips, Infineon, Atmel,
Dallas, Temic, etc.) precum i cantiti impresionante de soft comercial sau din categoria
freeware/shareware. Au aprut i dezvoltri ale acestei familii n sensul trecerii la o
arhitectur similar (n mare), dar pe organizat pe 16 bii, cu performane mbuntite ca
vitez de prelucrare: familia XA51 eXtended Arhitecture de la Philips i familia 80C251
(Intel). Din pcate aceste noi variante nu s-au bucurat nici pe departe de succesul
btrnului 8051.
c. 80C196 (Intel MCS-96)
Este un microcontroler pe 16 bii fcnd parte din generaia treia de microcontrolere a
firmei Intel. Destinat iniial unor aplicaii din industria de automobile, are o arhitectur von
Neumann, cu un spaiu de adresare de 64KBytes, o unitate de intrri/ieiri numerice de mare
vitez (destinat iniial controlului injeciei la un motor cu ardere intern), ieiri PWM,
convertor analog numeric, timer watchdog. Exist multe variante, ultimele cronologic
10
Microcontrolere
1. Introducere
aprute, fiind mult superioare variantei iniiale. Exist i o dezvoltare recent sub forma
familiei MCS-296 (80C296).
d. 80C186, 80C188 (Intel, AMD, .a.)
Derivate din clasicele 8086/88 prin includerea pe acelai microcircuit a 2 canale
DMA, 2 numrtoare/timere, un sistem de ntreruperi i un controler pentru DRAM. Marele
avantaj al acestor cvasi(aproape) microcontrolere (ele nu au memorie integrat!) este legat de
utilizarea ca mediu de dezvoltare a unor platforme de calcul tip IBM-PC, compatibile 80x86,
cu tot softul aferent.
e. 68HC05 (Freescale - www.freescale.com, ex Motorola )
Un microcontroler de 8 bii derivat din microprocesorul M6800 i care prezint multe
asemnri cu un alt microprocesor rspndit, la timpul su, 6502. Are un spaiu de memorie
unic (64Kbytes) n care sunt plasate i registrele perifericelor (I/O, timere) cu un indicator de
stiv (SP) hard pe 5bii (stiv de maxim 32 octei !). Exist variante cu memorie EEPROM,
CAN, port serial, etc. Este unul din cele mai rspndite microcontrolere (comparabil cu
8051). Varianta evoluat a acestei familii este seria 68HC08 bazat pe o nou unitate central
de 8 bii numit CPU08, cu cea mai recent dezvoltare sub forma seriei 68HCS08 destinat
n mod special unor aplicaii din industria automobilului.
f. 68HC11, 68HC12, 68HC16 (Freescale)
68HC11 a fost unul din cele mai puternice microcontrolere pe 8 bii, foarte rspndit
n ciuda faptului c Motorola a fost un timp singurul productor. Are un set de instruciuni
asemntor cu alte produse ale firmei (6801, 6805, 6809). Are un spaiu de adrese unic de
64K. Nenumrate variante ca resurse: EEPROM, OTP, CAN, PWM, etc. Prezint ca
particularitate existena unui program de ncrcare rezident (bootstrap loader n ROM intern)
cu care, la reset, un segment din memoria RAM extern poate fi ncrcat cu cod program prin
intermediul portului serial.
Variantele evoluate sunt de fapt microcontrolere de 16 bii:
- un "super 68HC11", numit 68HC12 bazat pe o nou unitate central numit CPU12,
care reprezint extensia la 16 bii a arhitecturii HC11
- un 68HC16, mai puin rspndit, bazat pe o unitate central numit CPU16
g. 683xxx (Freescale)
Microcontrolere pe 32 de bii construite n jurul unui CPU analog microprocesorului
M68020 (CPU32), denumite i "procesoare integrate". Putere de calcul comparabil sau mai
mare ca a lui Intel 80386.
h. PIC (Microchip- www.microchip.com )
Primul microcontroler din aceast familie (PIC1650) a aprut acum mai bine de 20 de
ani pe vremea cnd firma era proprietatea General Instruments. Este o familie de
microcontrolere care, n ultimii ani, a cunoscut o dezvoltare exploziv. Sunt disponibile
actualmente sub forma a 6 serii: PIC10, PIC12, PIC14, PIC16, PIC17 i PIC18. In seriile
respective exist variante cu memorie de program de tip OTP(C) sau FLASH(F). Au fost
primele microcontrolere de 8 bii cu arhitectur RISC: PIC16C5x avea un set de doar 33
instruciuni (Intel 8048 avea 90). Arhitectura este de tip Harvard i, ca o particularitate,
dimensiunea cuvntului pentru program este de 12, 14 sau 16 bii, cuvntul de date fiind tot
de 8 bii. Exist foarte multe variante pentru cele sase serii, unele din ele fiind caracterizate
11
Microcontrolere
1. Introducere
printr-un numr mic de conexiuni exterioare (pini) i n consecin dimensiuni mici, consum
foarte mic, ideea de baz fiind costul redus.
Cronologic, ultimul produs al firmei Microchip este seria dsPIC30F, de fapt un
procesor numeric de semnal, de 16 biti, cu o periferie specific optimizat pentru controlul
actionrilor electrice (motoare electrice).
Firma Ubicom (ex Scenix, www.ubicom.com) produce nite clone ale familiei PIC,
mult mai rapide dect originalele. Modulele Basic Stamp ale firmei Parallax
(www.parallax.com) sunt bazate si pe astfel de microcontrolere (sunt foarte utilizate, i nu
numai de hobbistii din robotic!).
i. AVR (Atmel- www.atmel.com )
Un concurent puternic al seriei PIC este familia numit AVR, a firmei ATMEL,
familie aprut n ultimii ani, care ofer variante de microcontrolere oarecum asemntoare
ca resurse cu familia PIC, la performane similare sau mai bune. Sunt bazate pe o arhitectur
diferit, dar unitatea central este tot de tip RISC, cu cuvntul de date de 8 bii. La fel ca la
PIC dimensiunea cuvntului de program este mai mare, fiind de 16 bii. Exist cel puin 3 sub
familii mari, n ordinea complexitii resurselor, acestea fiind: AT Tiny, AT90 i ATMega.
j. COP4(00) i COP8(00) (NS -National Semiconductors - www.national.com )
COP4 este un microcontroler pe 4 bii, categorie de microcontrolere care, n general,
departe de a fi nvechite, ocup un segment relativ important al pieii. Printre caracteristici:
pn la 2K ROM local, 32x4 pn la 160x4 RAM local, Microwire, numrtoare/timere,
tensiune de alimentare 2.3-6V, numr mic de pini.
COP8 reprezint o serie de microcontrolere pe 8 bii, versatil, cu pre sczut,
disponibil n multe variante. Arhitectura este similar lui 8051, dar setul de instruciuni este
similar lui Z80.
k. Z8 (Zilog, - www.zilog.com )
Un derivat al microprocesorului Z80, reprezint un compozit al mai multor arhitecturi
diferite. Nu este compatibil cu setul de instruciuni i nici cu perifericele standard Z80. Are
trei spaii de adrese: program, date i un masiv de registre. Resurse locale tipice: UART,
timere, DMA, sistem de ntreruperi cu pn la 37 de surse. Exist o variant cu un interpreter
Tiny Basic n ROM-ul local (analog 8052AH Basic de la Intel) precum i o variant cu
resurse mbuntite numit Super-8.
l. Z180(Zilog), Rabbit ( Rabbit Semiconductors- www.rabbitsemiconductor.com )
Z180 -ul firmei Zilog are un CPU similar cu Z80 dar mbuntit, cu resurse locale
cum ar fi: management de memorie (memorie paginat de maxim 1MB), USART (numit
SIO), 2 canale DMA, timere, sistem de ntreruperi, eventual PIO. Instruciuni suplimentare
fa de setul standard Z80, printre care i nmulirea. Diversele sale variante nu includ
memorie local. Rabbit 2000 sau 3000 este un microcontroler bazat pe un nucleu de Z180,
deosebit de versatil ca resurse periferice disponibile i foarte uor de integrat n aplicaii. Sunt
disponibile module realizate pe baza acestui microcontroler, module care adaug i memorie
de tip ROM FLASH i RAM. Utilizarea unui mediu de programare foarte productiv numit
Dynamic C precum i a facilitailor de programare i depanare In-System au fcut ca acest
microcontroler sa cunoasc o rspndire destul de larga..
12
Microcontrolere
1. Introducere
13
Microcontrolere
1. Introducere
14
Microcontrolere
1. Introducere
15
Microcontrolere
1. Introducere
fiind de fapt programat ntr-o memorie de tip (EP)ROM/FLASH sau ncrcat direct (uploaded) ntr-o memorie de tip RAM.
1.11 DEZVOLTAREA I TESTAREA APLICAIILOR
Cele mai rspndite mijloace hardware/software utilizate n dezvoltarea i testarea
aplicaiilor sunt enumerate n continuare.
a. Simulatoarele
Un simulator este un program care ruleaz programul microcontrolerului implementeaz un microcontroler virtual - folosind un sistem de calcul gazd -host (cum ar fi
un PC). Programul se poate executa pas cu pas, coninutul variabilelor i registrelor poate fi
vizualizat i modificat. Reprezint un punct de plecare atunci cnd se abordeaz un
microcontroler, pentru familiarizarea cu resursele lui i cu limbajul de asamblare. Nu permite
simularea n timp real a ntreruperilor i, de regul, programul ruleaz mai ncet dect pe
maina real. De regul exist mijloace pentru evaluarea vitezei de execuie a codului simulat
(ca numr de cicluri main sau de stri). Ideal, un simulator ar trebui s permit i simularea
complet a interaciunii, cel putin din punct de vedere logic, cu toate perifericele disponibile.
b. Programele de depanare ("debbugers") rezidente
Sunt programe (denumite uneori n romn i programe "monitor") care ruleaz -sunt
rezidente- pe maina int (microcontrolerul) oferind faciliti de depanare similare
simulatorului. Interfaa cu utilizatorul este realizat prin intermediul unui sistem gazd (PC)
i/sau a unui terminal alfanumeric, conectate prin intermediul unui port serial. Utilizeaz o
parte din resursele microcontrolerului: memorie de program pentru el nsui (de tip ROM) i
memorie de date (RAM) pentru variabile proprii, memorie de program (de multe ori memorie
externa de tip RAM, pentru a se putea incarca i modifica cu usurinta codul!) pentru
programul ce se depaneaz, un port serial pentru comunicaia cu sistemul gazd, eventual
ntreruperi, etc. Se utilizeaz de regul mpreun cu un sistem de dezvoltare (sau evaluare),
care este un sistem minimal realizat n jurul microcontrolerului pe care ruleaz depanatorul,
dar avnd resurse suficiente pentru a permite testarea i depanarea aplicaiilor uzuale.
c. Emulatoarele In Circuit (ICE-In Circuit Emulators)
Sunt cele mai eficiente mijloace de testare i dezvoltare i au fost mult timp cele mai
complexe i mai costisitoare. Presupun existena unui hardware dedicat (i complicat!) care
nlocuiete practic microcontrolerul (se conecteaz n locul acestuia n sistemul pentru care se
dezvolt aplicaia), n acelai timp fiind disponibile toate facilitile descrise anterior i altele
suplimentare. Permit un control total al mainii int (n timp real), fr a folosi nimic din
resursele acesteia (la variantele cele mai costisitoare). Ele sunt realizate de cele mai multe ori
ca un mijloc de testare i depanare de sine stttor, conectat la un PC prin intermediul unui
port paralel, serial sau USB. Cele mai ieftine sunt disponibile n gama x100$, iar cele mai
scumpe x1000$.
Variantele mai noi folosesc interfeele specializate de programare i depanare
integrate la nivelul microcontrolerului, cnd ele exist. Nu este necesar nlocuirea
microcontrolerului de pe sistemul int, conectarea cu acesta fcndu-se printr-un numr
minim de interconexiuni. Exemple de astfel de interfee ar fi: JTAG/ICE In Circuit
Emulation - la multe familii de microcontrolere, BDM (Background Debug Monitor) - pentru
Freescale/Motorola. Existena acestui tip de interfee face posibil realizarea de emulatoare
cu un pre de cost mult mai mic dect cele clasice.
16
Microcontrolere
1. Introducere
d. Simulatoarele de sistem
Reprezint o categorie aparte de simulatoare destinate simulrii cat mai complete a
sistemului i a aplicaiei n ansamblu, cu alte cuvinte a microcontrolerului mpreuna cu o
dispozitivele hardware externe. Ele integreaz de regula i un simulator SPICE.
Cele mai cunoscute sunt Proteus VSM (Virtual System Modelling) al firmei
Labcenter Electronics (http://www.labcenter.co.uk/) i UMPS (Universal Microprocessor
Program Simulator) al firmei Virtual Microdesign (www.vmdesign.com).
Un astfel de simulator permite rularea aplicaiei (codului), n mod continuu sau pas cu
pas i evaluarea n detaliu a modului cum aceasta (si microcontrolerul) interacioneaz cu
hardware-ul extern. El permite ceea ce se numete co-simularea (Co-simulation):
interaciunea dintre software-ul microcontrolerului i dispozitivele electronice analogice sau
numerice conectate cu acesta. Sunt bazate pe utilizarea unor modele avansate ale unor familii
de microcontrolere precum i pe modelele SPICE ale dispozitivelor electronice.
In cazul lui Proteus VSM exist (versiunea 6.8 SP1) modele ale microcontrolerelor: ARM
(LPC2000-Philips), PIC10, PIC12, PIC16, PIC18, AVR, 8051, 68HC11 i Basic Stamp.
In cazul UMPS exist modele ale microcontrolerelor: PIC12, PIC16, 8051, 68HC05,
68HC11, ST6200 (SGS) i COP8. Pentru fiecare model de microcontroler exist un asamblor
i un editor de legturi integrat astfel c se poate face, n anumite limite, i dezvoltarea
codului n asamblare. Pe lng aceasta ele au asigurate i interfee corespunztoare pentru a
se putea dezvolta codul cu medii de programare consacrate pentru familia respectiv de
microcontrolere, folosind de exemplu un compilator C. Facilitile de simulare a codului sunt
similare celor ntlnite la simulatoarele deja menionate.
Pe lng numeroasele dispozitive electronice discrete, circuite integrate analogice sau
numerice (la Proteus VSM exist peste 6000 de modele), circuite de memorie sau periferice,
n categoria dispozitivelor externe se mai pot meniona i sisteme de afiare (LED, LCD),
tastaturi matriciale sau butoane, relee, etc.
Ambele simulatoare menionate sunt produse comerciale, dar exist i versiuni de
evaluare, utilizabile cu limitrile de rigoare.
e. Nucleele (sistemele de operare) de timp real (Real Time kernel, Real Time
Operating System-RTOS)
Pe piaa de software pentru microcontrolere exista i componente numite nuclee de
timp real sau sisteme de operare n timp real (RTOS). Un astfel program de sistem de nivel
profesional este o componenta software scump sau foarte scump, funcie de complexitatea
lui, de accesibilitatea surselor programului, de familia de microprocesoare creia ii este
adresat, de modul in care va fi distribuit mpreuna cu aplicaia. Exist ins i variante de
RTOS, de mai mic complexitate, din categoria freeware sau shareware, care pot fi utilizate
cu performante mulumitoare.
Un sistem de operare n timp real faciliteaz crearea aplicaiilor aa zise de timp real,
dar nu garanteaz i faptul ca ele chiar se vor executa n timp real, aceasta depinznd de
modul n care este utilizat acest software la nivel de sistem..
Spre deosebire de un calculator cum este PC-ul, un sistem integrat (embedded system)
este proiectat ntotdeauna ntr-un anumit scop i are un cod care se execut aproape
ntotdeauna dintr-o memorie ROM, fiind de presupus c nu se modific pe parcursul
execuiei aplicaiei. Astfel lucrurile sunt uurate deoarece comportarea sistemului poate
specificat complet nc din faza de proiectare. Din aceasta cauza, n cazul multora din
aplicaii, multe probleme se pot rezolva n timp real i fr s se utilizeze un RTOS.
Esenial este pan la urm calitatea i competena celui care programeaz aplicaia !
17
Microcontrolere
1. Introducere
18
Microcontrolere
1. Introducere
f. Alte aspecte
Ce distribuitori exist i ct sunt de accesibili pentru mine?
Care este suportul oferit de fabricant sau distribuitor icare este baza de cunostine existent:
site-uri web, documentaie on-line sau pe CD-uri, note de aplicaii, exemple de proiectare
(reference designs), software din categoria freeware/shareware si, nu n ultimul rnd,
forumuri de discuii pentru utilizatori?
Din pcate rspunsurile la multe din aceste ntrebri sunt corelate ntre ele. Un
exemplu este legtura care exist ntre criteriile de cost i cele de timp de dezvoltare.
Principial, utilizarea unui limbaj de nivel nalt mpreun cu un emulator pentru testare i
depanare poate duce la scurtarea consistent a timpului de dezvoltare. Dar preul unui
compilator este ntotdeauna mai mare dect cel al unui asamblor (nimic nu e mai ieftin dect
ceva ce poate fi gratis!), iar preul unui emulator este i el mai mare dect cel al unor
mijloace mai simple de testare i depanare.
n practic, de cele mai multe ori, alegerea unui microcontroler pentru a anumit
aplicaie este i trebuie s fie rezultatul unui compromis.
19