Sunteți pe pagina 1din 139

158

10. MICROCONTROLLERE
(MC)

10.1. PREZENTARE GENERAL!

10.1.1. Defini"ii

Vom defini un microcontroller pornind de la o reprezentare simplificat! a sa n
interac"iune cu mediul (Fig. 10.1.). Se va folosi n continuare prescurtarea MC pentru a
numi un microcontroller.
















Intr!rile pot fi digitale sau analogice. Ca intr!ri se folosesc de regul! semnale provenind de
la comutatoarele individuale sau de la traductoare (de temperatur!, de presiune, foto,
traductoare specializate).

Ie#irile se pot face cu diode LED, pot fi relee, motoare sau sonerii. Dac! se face o
conversie D/A, ie#irea o poate constitui un difuzor.

Se poate vedea o prim! diferen"! fa"! de calculatoarele personale, unde intr!rile se fac de
regul! de la tastatur! #i ie#irile pe monitorul TV. Dac! un calculator personal este folosit
pentru a prelucra informa"ii #i a afi#a rezultatele pe monitor sau hrtie, un MC comand! un
proces.

Un element important, f!r! de care un MC nu poate func"iona, este programul (sau
programele), care se stocheaz! n memoria proprie MC.

Un MC poate fi definit ca un sistem de calcul complet pe un singur chip. Acesta include o
unitate central!, memorie, oscilator pentru tact #i dispozitive I/O. Un MC poate fi privit ca
un microprocesor care pe acela#i chip mai con"ine memorie #i o serie de interfe"e. Natura #i
complexitatea aplica"iei n care este folosit MC determin! performan"ele unit!"ii centrale,
capacitatea de memorie #i tipul interfe"elor ce compun structura intern! a MC.


Memoria
Unitatea
central!
Generator de
tact
Intr!ri
Ie#iri
Programe
MC
Fig. 10.1. Schema simplificat! a unui microcontoller
159
O structur! mai detaliat! se poate vedea n Fig. 10.2. unde sunt reprezentate blocurile
principale.






























Privind evolu"ia istoric! a opera"iei de comand! a unui proces putem contura imaginea unui
MC. Un controller este un sistem folosit pentru a comanda #i a prelua st!ri de la un proces
sau un aspect al mediului nconjur!tor. La nceput un controller era un echipament de mari
dimensiuni. Dup! apari"ia microprocesoarelor dimensiunile controllerelor s-au redus.
Procesul de miniaturizare a continuat, toate componentele necesare unui controller au fost
integrate pe acela#i chip. S-a n!scut astfel calculatorul pe un singur chip sau
microcontrollerul. Un microcontroller este un circuit realizat pe un singur chip care con"ine
tipic:
unitatea central! CPU;
generatorul de tact (la care trebuie ad!ugat din exterior un cristal de cuar" sau n
aplica"ii mai pu"in preten"ioase, un circuit RC);
memoria RAM;
memoria ROM/PROM/EPROM/EEPROM;
dispozitive I/O seriale #i paralele;
controller de ntreruperi, controller DMA, num!r!toare/temporizatoare (timers),
covertoare A/D #i D/A, etc.;
periferice.
Memorie pentru
programe
Memorie pentru
date
Dispozitive I/O
Unitatea centrala de prelucrare
(CPU)
Oscilator
Intr!ri
digitale
Ie#iri
digitale
Bus de
date
Bus de
adrese
Reset
Fig. 10.2. Schema bloc a unui microcontoller
160

Pre"ul unui MC este redus din cauza cantit!"ilor mari n care se fabric!. Pre"ul mic al MC
aduce cu sine #i mic#orarea pre"ului sistemelor de control (se mic#oreaz! inclusiv costul
proiect!rii).

Diferen"ele dintre microprocesor #i unitatea central! a MC se atenueaz! n timp. Astfel,
marii constructori de procesoare au realizat ni#te circuite care s-ar putea numi super-
microcontrollere, a#a cum sunt Motorola 68EC300, INTEL 386EX sau IBM PowerPC
403GB, care sunt microcalculatoare pe un singur chip.

Cu un MC se poate realiza un controller integrat (Embedded Controller, EC). Un controller
integrat face parte dintr-un sistem construit cu un anumit scop, altul dect calcule generale.
Pe lng! MC, un controller integrat are nevoie de hardware suplimentar pentru a-#i
ndeplini func"ia.

Importan"a MC este dovedit! incontestabil de pia"a care este n continu! cre#tere. Astfel,
evolu"ia vnz!rilor de MC n lume se reg!se#te n tabelele 10.1. #i 10.2.

Tabel 10.1. Evolu"ia vnz!rilor MC n lume (n milioane dolari)
MC '90 '91 '92 '93 '94 '95 '96 '97 '98 '99
(esti-
mat)
'00
(esti-
mat)
4-bit 1393 1597 1596 1698 1761 1826 1849 1881 1856 1816 1757
8-bit 2077 2615 2862 3703 4689 5634 6553 7529 8423 9219 9715
16-bit 192 303 340 484 810 1170 1628 2191 2969 3678 4405

Tabel 10.2. Evolu"ia vnz!rilor MC n lume (n milioane buc!"i)
MC '90 '91 '92 '93 '94 '95 '96 '97 '98 '99
(esti-
mat)
'00
(esti-
mat)
4-bit 778 906 979 1036 1063 1110 1100 1096 1064 1025 970
8-bit 588 753 843 1073 1449 1803 2123 2374 2556 2681 2700
16-bit 22 38 45 59 106 157 227 313 419 501 585

Principalii produc!tori de microprocesoare au realizat n 1994 #i 1995 urm!toarele cifre de
afaceri (Tabel 10.3.)

Tabel 10.3. Cifre de afaceri realizate n anii 1994, 1995
microprocesoare (n milioane dolari)
Intel 10800 8036
AMD 881 992
Motorola 781 827
IBM 468 297
TI 219 202
Cyrix 210 240
Hitachi 188 66
NEC 100 82
LSI Logic 58 51
IDT 45 25
161

n prezent datele arat! modific!ri de structur!; de exemplu cifra de afaceri a AMD se
apropie de cea a lui INTEL. Cifra de afaceri, ca ordin de m!rime, era deja n anii 1994,
1995 apropiat! de cea realizat! din vnz!ri de microprocesoare (Tabel 10.4.).

Tabel 10.4. Cifre de afaceri realizate n anii 1994, 1995
microcontrollere (n milioane dolari)
Motorola 1781 1511
NEC 1421 1208
Mitsubishi 945 708
Hitachi 899 782
Intel 835 605
TI 807 534
Philips 524 345
Matsushita 500 413
Lucent (AT&T) 492 275
Toshiba 400 328

10.1.2. Arhitectura MC

Blocurile interne ale MC sunt legate ntre ele printr-o magistral! (bus) de date #i
una de adrese. M!rimea acestor magistrale constituie una dintre caracteristicile cele mai
importante ale unui MC. Prin magistrala de adrese unitatea central! (UC) selecteaz! o
loca"ie de memorie sau un dispozitiv I/O, iar pe magistrala de date se face schimbul de
informa"ie ntre UC #i memorie sau dispozitivele I/O. ntre UC #i memorie sunt transferate
att date ct #i instruc"iuni. Acestea se pot transfera pe o singur! magistral! de date sau pe
magistrale de date diferite.

Arhitectura von Neumann prevede existen"a unui bus unic folosit pentru circula"ia datelor
#i a instruc"iunilor. Cnd un controller cu o astfel de arhitectur! adreseaz! memoria, busul
de date este folosit pentru a exprima nti codul instruc"iunii, apoi pentru date, accesul fiind
realizat n 2 pa#i, deci destul de lent.

Arhitectura Harvard prevede un bus separat pentru date #i instruc"iuni. Cnd codul
instruc"iunii se afl! pe busul de instruc"iuni, pe busul de date se afl! datele instruc"iunii
anterioare. Structura MC este mai complex!, dar performan"ele de vitez! sunt mai bune.

Unitatea central! con"ine un set de registre interne, similare unor loca"ii de memorie,
folosite pentru memorarea unor date des apelate sau pentru programarea unor anumite
func"ii. Diferitele familii de MC folosesc seturi diferite de registre. Exist! ns! cteva
registre comune.

A (Accumulator) registrul acumulator care este folosit deseori pentru a stoca
un operand #i rezultatul unei opera"ii aritmetice.
PC (Program Counter) este registrul care stocheaz! adresa urm!toarei
instruc"iuni de executat. Dup! un RESET (ini"ializarea MC), registrul PC se
ncarc! dintr-o loca"ie de memorie numit! vector de reset. Aceast! loca"ie
con"ine adresa primei instruc"iuni de executat. PC este incrementat automat
dup! execu"ia unei instruc"iuni.
162
SP (Stack Pointer) con"inutul acestui registru indic! adresa curent! a stivei.

Un aspect important care determin! arhitectura unui MC este modul de programare.

Conceptul de CISC (Complex Instruction Set Computer) pe baza c!ruia sunt construite
majoritatea MC, prevede existen"a unui num!r mare de instruc"iuni (tipic >80), ceea ce
face mai u#oar! munca programatorului. Multe din instruc"iuni sunt specializate, adic! se
pot folosi doar n anumite moduri de adresare sau cu anumite registre.

Evolu"ia MC este spre arhitectura RISC (Reduced Instruction Set Computer), n cadrul
c!reia un MC are un num!r mic de instruc"iuni. Avantajele sunt un chip mai mic, cu un
num!r de pini mai mic, cu un consum mai redus #i cu o vitez! mai mare. Instruc"iunile sunt
simetrice, adic! pot fi folosite la fel n orice mod de adresare sau cu orice registru, nu au
excep"ii sau restric"ii.

n prezent un MC este cu mai mult dect arhitectur! RISC, el este cu o arhitectur! SISC
(Specific ISC). Instruc"iunile sunt specifice pentru a lucra optim cu dispozitivele I/O,
permit manipularea la nivel de bit #i sunt mai pu"ine instruc"iuni de uz general, a#a cum
ntlnim la microprocesoarele 8086, 68000 etc.

10.1.3. Memoria

MC folosesc diferite tipuri de informa"ii, care sunt stocate n diferite tipuri de
memorii. Instruc"iunile care controleaz! func"ionarea MC trebuie stocate ntr-o memorie
nevolatil!, unde informa"iile se p!streaz! #i dup! oprirea #i repornirea sursei de alimentare.
Rezultatele intermediare #i variabilele pot fi nscrise ntr-o memorie volatil!, la acestea este
important s! se poat! face scrierea /citirea rapid #i simplu n timpul func"ion!rii.

Memoria RAM (Random Access Memory) este o memorie volatil! care poate fi citit! sau
scris! de unitatea central!. Loca"iile din RAM pot fi accesibile n orice ordine. Pe chip,
memoria RAM ocup! mult loc #i implicit costurile de implementare sunt mari. De aceea un
MC include de obicei pu"in RAM. Memorie RAM static alimentat! de la baterie se
folose#te pentru stocarea nevolatil! a cantit!"ilor mari de date, la o vitez! de acces mare #i
cu un num!r nelimitat de #tergeri #i renscrieri.

Memoria ROM (Read Only Memory) este cea mai ieftin! #i simpl! memorie #i se
folose#te la stocarea programelor n faza de fabrica"ie. Unitatea central! poate citi
informa"iile, dar nu le poate modifica.

Memoria PROM (Programmable Read Only Memory) este similar! cu memoria ROM, dar
ea poate fi programat! de c!tre utilizator. Dup! posibilit!"ile de #tergere, aceast! memorie
poate fi de mai multe feluri:

Memoria EPROM (Erasable PROM) care se poate #terge prin expunere la
ultraviolete. MC cu EPROM au un mic geam de cuar" care permite ca chipul s!
fie expus la radia"ia ultraviolet!. $tergerea este neselectiv!, adic! se poate
#terge doar ntreaga informa"ie #i nu numai fragmente. Memoria poate fi #tears!
#i renscris! de un num!r finit de ori. Programarea EPROM-ului necesit! o
procedur! special!, iar MC cu EPROM au nevoie de regul! pentru nscrierea
163
EPROM-ului de o tensiune auxiliar!, de 12 V de exemplu. Unele MC au incluse
circuite de programare a memoriei EPROM, cu ajutorul c!rora unitatea central!
poate programa memoria EPROM. n timpul program!rii memoria EPROM nu
este conectat! la magistrala de date #i adrese. Unele MC sunt prev!zute cu mod
special de lucru, n care sunt v!zute din exterior ca ni#te memorii EPROM
obi#nuite #i pot fi astfel programate cu orice programator.
OTP (One Time Programmable PROM) se folose#te pentru multe serii de MC.
Memoria OTP este de fapt o memorie EPROM, dar chipul a fost capsulat ntr-o
capsul! de material plastic f!r! fereastr!, care este mult mai ieftin!. Memoria nu
se poate #terge sau reprograma. Pre"ul unui MC cu OTP este mic, viteza este
bun!, dar aplica"iile sunt lipsite de flexibilitate.
Memoria EEPROM (Electrically Erasable Programmable Read Only Memory)
poate fi #tears! electric de c!tre unitatea central!, n timpul func"ion!rii.
$tergerea este selectiv!, iar pentru renscriere trebuie parcur#i mai mul"i pa#i.
Memoria EEPROM echipeaz! multe MC, fiind ieftin!. n memoria EEPROM
se memoreaz! un mic num!r de parametri care se schimb! din timp n timp.
Memoria este lent! #i num!rul de #tergeri/scrieri este limitat (tipic 10 000).
Memoria FLASH este o memorie asem!n!toare EPROM #i EEPROM n sensul
c! poate fi #tears! #i reprogramat! n sistemul n care este folosit! (f!r! a fi
necesar un sistem dedicat). Are capacitatea unui EPROM, dar nu necesit!
fereastr! pentru #tergere. Ca #i EEPROM, memoria FLASH poate fi #tears! #i
programat! electric. Memoria FLASH nu permite #tergerea individual! de
loca"ii, utilizatorul poate s! #tearg! doar ntregul con"inut.

Stocarea programelor n memorii nevolatile permite ca MC s! fie programat f!r! a fi scos
din circuitul n care func"ioneaz! (Field Programming/Reprogramming). De exemplu la
auvehiculele comandate de MC, schimbarea tipului benzinei sau schimbarea unei legi
privitoare la poluare pot fi actualizate n programul MC f!r! ca acesta s! fie scos din
autovehicul.

n func"ie de num!rul aplica"iilor n care urmeaz! s! fie folosit MC se recomand! folosirea
MC cu ROM pentru volum mare de produc"ie (ROM se nscrie cu masc! la fabricant),
OTP pentru volum mic de produc"ie #i EPROM pentru prototipuri.

10.1.4. Dispozitive I/O

Dispozitivele I/O implementeaz! func"ii speciale degrevnd unitatea central! de
toate aspectele specifice de comand! #i control n func"ia respectiv!. Exist! o varietate
mare de dispozitive I/O; dispozitivele I/O conduc opera"ii generale de comunica"ie
(transfer serial sau paralel de date), func"ii generale de timp (num!rare de evenimente,
generare de impulsuri), opera"ii de conversie analog/numeric!, func"ii de protec"ie, func"ii
speciale de comand!, #i enumerarea poate continua. Din aceast! mare varietate, parte din
dispozitive se g!sesc n configura"ia tuturor MC sau sunt foarte des ntlnite, iar o alt!
parte de dispozitive o reg!sim doar n MC costruite pentru a optimiza aplica"ii cu un grad
mare de particularitate. n acest capitol, n continuare, vor fi prezentate dispozitive des
ntlnite n echiparea MC. n capitolele urm!toare, pe m!sur! ce vor fi prezentate exemple
de MC, vor fi descrise #i o serie de dispozitive I/O speciale ce intr! n componen"a
acestora.
164
Dispozitivele I/O sunt v!zute de unitatea central! ca porturi. Unitatea central! apeleaz!
porturile prin semnale de selec"ie construite din decodificarea magistralelor de adrese #i
control. Porturile sunt mapate fie n spa"iul de memorie, fie ntr-un spa"iu propriu. Unitatea
central! poate opera scrieri sau citiri cu porturile ca #i cu memoria.

10.1.4.1. Module de comunica!ii seriale

SCI (Serial Communications Interface) este un subsistem I/O serial indepenent, de tipul
full duplex UART asincron. SCI poate fi folosit pentru comunica"ii ntre MC #i un
terminal, un calculator PC sau un alt MC. Rata transferului este controlat! de un generator
propriu, care furnizeaz! frecven"e pentru rate de transfer standard, folosind oscilatorul MC.

SPI (Serial Peripheral Interface) este un modul serial folosit pentru a comunica sincron la
distan"e mici cu viteze de pn! la 4 Mbps. SPI este folosit pentru a comunica cu periferice
cum ar fi un simplu registru de deplasare, un sistem de afi#are LCD sau un sistem de
conversie A/D. Modulul SPI este suficient de flexibil pentru a interfa"a direct periferice cu
standarde diferite, provenite de la diver#i produc!tori. SPI poate fi folosit #i pentru a
extinde num!rul de intr!ri/ie#iri acolo unde acesta este limitat de num!rul de pini ai
capsulei MC.

SCI+ este similar cu SCI, are n plus suport pentru comunica"ii seriale sincrone. Dispune
de o ie#ire de ceas folosit! pentru a transfera date n mod sincron cu un periferic de tip SPI.

SIOP (Simple I/O Port) este o implemenatre mai simpl! a SPI.

I
2
C (Inter-Integrated Circuit) este o magistral! serial! bidirec"ional! sincron! care pune la
dispozi"ie un mod simplu #i eficient de a transfera date la 100Kbps.

10.1.4.2. Module Timer

Sistemul timer (circuit de timp) este folosit pentru a m!sura timpul #i pentru a
genera semnale cu perioade #i frecven"e dorite. Timerele nu sunt doar circuite cu func"ii de
temporizare; n modulul timer sunt implementate cteva mecanisme care pun la dispozitia
utilizatorului func"ii specifice. Mecanismul de comparare la ie#ire permite controlul unor
semnale de ie#ire; mecanismul de captur! la intrare permite monitorizarea unor semnale de
intrare; num!r!toarele interne permit generarea de referin"e de timp interne, necesare n
bucle de ntrziere, multiplexarea diferitelor sarcini software, #.a. Timerul poate fi folosit
practic pentru orice func"ie de timp, inclusiv generarea unor forme de und! sau conversii
D/A simple.

Mecanismul IC (Input Capture captur! la intrare) este folosit pentru a determina
momentul apari"iei unui eveniment sau pentru a m!sura perioada sau durata unui semnal de
intrare. Acest mecanism este folosit pentru sincronizarea cu evenimente externe.

Mecanismul OC (Output Compare comparare la ie#ire) este folosit pentru a determina o
schimbare la ie#ire la un moment de timp dorit. Mecanismul este folosit pentru a genera
spre exterior referin"e de timp.

165
Mecanismul PWM (Pulse Width Modulation modularea impulsurilor n l!"ime) este
folosit la generarea semnalelor pentru comanda motoarelor, a comutatoarelor de putere, a
convertoarelor D/A simple.

Mecanismul RTI (Real-Time Interrupt) este folosit la generarea automat! de ntreruperi
periodice. Func"ia este util! n realizarea opera"iilor I/O de tip polling, n opera"ii de
diagnoz! sau ntre"inere.

Mecanismul RTC (Real-Time Clock) este similar cu RTI, dar este folosit pentru a
implementa un ceas de timp real.

10.1.4.3. Module A/D "i D/A

Convertorul A/D este un modul implementat pe chip. Acesta e#antioneaz! periodic
semnale analogice externe #i livreaz! valorile digitale corespunz!toare. Convertoarele A/D
sunt folosite de obicei pentru a m!sura m!rimi analogice ca tura"ia unui motor,
temperatura, presiunea, nivelul lichidului, #.a.

Convertorul D/A este de asemenea un modul implementat pe chip. Acesta preia de la
unitatea central! o serie de valori binare #i produce semnalul analogic corespunz!tor. De
obicei aceast! func"ie se realizeaz! cu ajutorul modulului PWM (mai este necesar! o
filtrare extern!). O aplica"ie tipic! este comanda volumului la un aparat TV.

10.1.4.4. Module de protec!ie

COP (Computer Operating Properly) este un ceas de gard!, numit watchdog, folosit pentru
a detecta erorile de program. Folosirea ceasului de gard! este op"ionala. n cazul n care se
folose#te, programul utilizator trebuie s! reseteze periodic un registru COP; dac! nu are loc
resetarea, unitatea centrala decide c! a ap!rut o problem! n rularea programului #i
reseteaz! sistemul pentru a preveni o desf!#urare necontrolat! a programului.

LVR (Low Voltage Reset) este un circuit care monitorizeaz! tensiunea de alimentare a
unit!"ii centrale #i for"eaz! un reset daca se constat! c! aceasta este mai mic! dect un
minim predefinit.

LVI (Low Voltage Interrupt) este un circuit care monitorizeaz! tensiunea de alimentare a
unit!"ii centrale #i genereaz! o ntrerupere dac! se constat! c! aceasta este mai mic! dect
un minim predefinit. ntreruperea for"eaz! executarea unei rutine de oprire nefor"at!.

10.1.5 Sisteme de economie de energie

Pentru a realiza economia de energie, esen"ial! n cazul aliment!rii de la baterii de
exemplu, un MC poate fi comandat prin soft s! treac! n starea de a#teptare (IDLE) sau n
HALT. Prin intrarea n aceste st!ri memoria RAM nu-#i schimb! con"inutul #i ie#irile nu-#i
schimb! valorile logice.

n mod IDLE nceteaz! activitatea tuturor blocurilor func"ionale cu excep"ia oscilatorului, a
ceasului de gard! #i a ceasului pentru modul a#teptare.

166
Curentul de alimentare n aceast! stare este tipic 30% din curentul normal de func"ionare.
Din modul de a#teptare se poate ie#i prin RESET sau la un stimul exterior (o ntrerupere de
la un dispozitiv I/O). Ceasul pentru modul de a#teptare genereaz! periodic ntreruperi
pentru ca MC s! verifice starea. Dac! nu exist! cereri de activare (Wake Up), MC se
ntoarce n starea de a#teptare.

Starea de HALT este asem!n!toare cu cea de a#teptare. Capabilitatea MIWU (Multi Input
WakeUp) face ca un MC s! poat! fi trezit de una din 8 cereri de ntrerupere exterioare.

OnNow este o ini"iativ! actual! pentru modernizarea metodelor de economie de energie n
sistemele cu microprocesoare. Se inten"ioneaz! ob"inerea unui consum de energie (pentru
un calculator PC) de o treime din cel actual #i un timp de ie#ire din starea inactiv! mai mic
de 5 secunde. Informa"ii despre aceast! in"iativ! se gasesc la adresa
www.microsoft.com/hwedev/onnow.htm


10.1.6. Familii de MC

INTEL 4048 a fost primul MC ap!rut pe pia"!, avnd o structur! Harvard modificat!, cu
64-256 octe"i de RAM #i este nc! folosit n multe aplica"ii datorit! pre"ului sc!zut.

INTEL 8051 (MCS-51) este a doua genera"ie de MC #i n prezent este familia care se
vinde cel mai bine; este fabricat #i de mul"i al"i produc!tori. Acest MC are o arhitectur!
Harvard modificat! cu spa"iu de adresare diferit pentru program (<64K din care 4-8K pe
chip) #i date (<64K din care 128-256 octe"i pe chip, cu adresare indirect!). Dispozitivele
I/O au un spa"iu propriu de adresare. 8051 dispune de un procesor boolean prin care se pot
executa opera"ii complexe la nivel de bit, iar n func"ie de rezultate se pot face salturi.
Pentru 8051 exist! foarte mult soft, att contra cost ct #i gratuit.

INTEL 80C196 (MCS-96) este a treia genera"ie de MC propus! de INTEL. 80C196 este
un MC pe 16 bi"i care admite un tact pn! la 50MHz. Acest MC con"ine blocuri aritmetice
pentru nmul"ire #i mp!r"ire, lucreaz! cu 6 moduri de adresare, convertor A/D, canal de
comunica"ii serial, controller de ntreruperi cu 8 surse, pn! la 40 de porturi I/O, generator
PWM #i ceas de gard!.

INTEL 80186 #i 80188 sunt MC propuse de INTEL ca versiuni a popularelor
microprocesoare 8086 #i 8088 care au echipat primele calculatoare IBM PC XT. Pe chip
sunt incluse 2 canale DMA, 2 num!r!toare/temporizatoare, controller de ntreruperi #i bloc
de refresh pentru memoria RAM. Exist! #i multe versiuni, MC cu consum redus, cu canale
seriale etc. Un mare avantaj la folosirea acestor MC este faptul c! se pot folosi uneltele de
dezvoltare (compilatoare, asambloare etc.) de la PC-uri. Cine este familiarizat cu softul de
PC poate trece repede de etapa de nv!"are. Un alt avantaj este un spa"iu mare de adresare,
specific PC-urilor. INTEl a fabricat #i MC-ul 80386EX, o variant! a procesorului 386 care,
la puterea lui 386 mai are n plus canale seriale, canale DMA, num!r!toare/
temporizatoare, controller de ntreruperi, refresh pentru RAM dinamic, gestionarea
aliment!rii (Power Management).

167
65C02/W65C816S/W65C134S (Western Design Center). WDC a creat procesorul pe 8
bi"i 65C02 folosit n calculatoarele Apple, Commodore #i Atari urmat de procesorul pe 16
bi"i W65C816S #i un MC pe 8 bi"i avnd ca nucleu procesorul de baz! 65C02.

Motorola MC14500 a fost primul MC realizat de Motorola. Acest MC n arhitectur! RISC
avea calea de date de un bit, 16 instruc"iuni #i era furnizat ntr-o capsul! mic! (16 pini). El
a fost eliminat de pe pia"! de noile MC RISC.

Motorola 6805 se bazeaz! pe procesorul 6800 #i este asem!n!tor cu 6502 produs de WDC.
Are o arhitectur! von Neumann n care instruc"iunile, datele, dispozitivele I/O mpart
acela#i spa"iu de adresare. Stiva este limitat! la 32 de pozi"ii din cauza indicatorului de
stiv! pe 5 bi"i. Unele MC din aceast! familie includ convertoare A/D, sintetizoare de
frecven"! cu PLL, canale seriale etc.

Motorola 68HC11 (preluat #i de TOSHIBA) este un MC popular pe 8 bi"i de date #i 16
bi"i de adres!, cu o arhitectur! ca #i 6805. 68HC11 are inclus! memorie EEPROM sau
OTP, linii digitale I/O, num!r!toare/temporizatoare, convertoare A/D, generatoare PWM,
acumulator de impulsuri, canale seriale de comunica"ii sincrone #i asincrone etc.

Motorola 683xx (MC68EC300) sunt super MC de nalt! performan"! bazate pe un nucleu
cu arhitecura procesoarelor 68xx, cu o filozofie #i performan"! asem!n!toare MC INTEL
80386EX.

PIC (MicroChip) sunt primele MC RISC ap!rute, cu un num!r mic de instruc"iuni (tipic
33, fa"! de 8048 care are 90). Simplitatea arhitecturii (Harvard) duce la realizarea unui chip
de mici dimensiuni, cu pu"ini pini, consum redus, vitez! mare #i pre" mic. Aceste avantaje
au impus MC PIC pe pia"!. Exist! 3 linii de MC PIC: PIC16C5x, PIC16Cxx #i PIC17Cxx,
din care linia 16Cxx este cotat! cel mai bine pe pia"!.

COP400 (National Semiconductor) este un MC pe 4 bi"i care are 512o-2K ROM, #i 32x4-
160x4 RAM, n capsule de 20-28 de pini, cu tensiuni de alimentare 2,3V-6,0V. Sunt
echipate cu num!r!toare/temporizatoare #i magistral! MICROWIRE. Aceste MC se fabric!
n peste 60 de modele echivalente #i sunt primele MC care au un pre" sub 0,5USD/bucat!.

COP800 (National Semiconductor) este un MC de 8 bi"i care con"ine MICROWIRE,
UART, RAM, ROM, num!r!toare/temporizatoare de 16 bi"i, controller de ntreruperi,
comparator, ceas de gard!, monitor de tact, generator PWM, transmisie n infraro#u,
convertor A/D cu 8 canale cu prescalare (admite #i intr!ri diferen"iale), protec"ie la
sc!derea tensiunii de alimentare, mod de a#teptare #i HALT, un trigger SCHMITT #i
circuit de trezire cu mai multe intr!ri (Multi-Input-WakeUp). Eficien"a este dat! #i de un
set puternic de instruc"iuni, majoritatea fiind de un singur octet #i executate ntr-un singur
ciclu. Exist! #i variante pentru uz militar.

HPC (National Semiconductor) sunt MC pe 16 bi"i de mare performan"!, cu o arhitectur!
von Neumann. Unitatea central! poate executa nmul"iri #i mp!r"iri. Con"in n structur!
func"iile executate de familia COP800 avnd n plus canale seriale HDLC (High Level
Data Link Control) #i elemente DSP, la o tensiune de alimentare de 3,3V. MC din aceast!
familie au multe aplica"ii n telecomunica"ii, n sisteme de securitate, imprimante LASER,
hard discuri, frne ABS #i aplica"ii militare.
168

Proiectul PIRANHA (National Semiconductor) este un proiect de realizare a unui MC
RISC, primul MC dedicat aplica"iilor integrate. Acest MC are avantajele arhitecturii RISC,
deci pu"ine instruc"iuni, simplitate, modularitate.

Z8 (Zilog) a fost unul dintre primele MC. Modelul ini"ial avea UART, num!r!toare/
temporizatoare, DMA, 40 de linii digitale I/O, controller de ntreruperi. Modelul Z8671
avea n ROM un BASIC simplu. Modelul Z86C95 are o structur! Harvard, facilit!"i DSP
etc. Un avantaj este c! se pot folosi pentru extensii unele circuite de interfa"! din familia lui
Z80.

HD64180 (Hitachi) este un MC puternic, cu structura #i posibilit!"ile lui Z80, avnd n plus
2 canale DMA, canal de comunica"ii sincrone #i asincrone, num!r!toare/temporizatoare #i
controller de ntreruperi. Unele versiuni includ EPROM, RAM #i PIO (Programmable
Input Output). Ruleaz! instruc"iunile lui Z80, dar n mai pu"ine cicluri #i are instruc"iuni n
plus. Exist! variante care func"ioneaz! pn! la 18MHz.

TMS370 (Texas Instruments) este similar cu 8051. Con"ine RAM, ROM (OTP sau
EEPROM), 2 num!r!toare/temporizatoare de 16 bi"i, controller de ntreruperi, ceas de
gard!, generator PWM, convertor A/D cu 8 canale, SCI (port serial asincron), SPI (port
serial sincron), comparator, poate executa nmul"iri #i mp!r"iri. Tactul poate fi pn! la
20MHZ, cu 5MHz tact de magistral!.

1802 (RCA) este un MC mai vechi, cu o structur! apropiat! de un microprocesor. Este
folosit mai ales n aplica"ii spa"iale.

MuP21 (Forth) este un MC care are puterea de calcul a unui procesor INTEL 80486
(100MIPS) la un pre" mult mai mic. Are integrat un coprocesor video care gestioneaz! o
memorie video, deci se poate ata#a direct un monitor TV. Acest MC a fost creat ca s!
ruleze programul OKAD (program de proiectare VLSI), #i execut! acest lucru de 10 ori
mai repede ca un 486. Mup21 are 40 de pini.

F21 (Forth) a fost conceput pentru aplica"ii multimedia #i procesare paralel!. Viteza ajunge
la 250MIPS datorit! structurii care con"ine procesoare de prelucrare analogic! #i procesor
de interfa"! la re"eaua de calculatoare.

10.1.7. Clasificarea MC

Se pot considera multe criterii de clasificare a MC; de exemplu dup! aplica"iile n
care se folosesc, dup! interfe"ele pe care le au incluse n configura"ie, dup! furnizor etc. O
clasificare sumar! a celor mai uzuale MC, dup! compatibilitatea software, este:

MC CISC
Compatibile 8051
MOTOROLA 68xx
Compatibile x86
COP8 (National Semiconductor)
TMS370 (Texas Instruments)
ST (Thomson)
Alte arhitecturi (MC low cost) HITACI - 4bi"i, Z8 - 8 bi"i
169
MC RISC
Super H
PIC
Atmel

10.1.8. Schema bloc a unui MC

n general, orice MC are o structur! intern! organizat! n jurul unei magistrale
(Fig. 10.3.).
























Unitatea central! execut! instruc"iunile pe care le prime#te prin magistrala de date din
memoria program. Structura Harvard este posibil! #i r!spndit! la MC pentru c! de regul!
instruc"iunile sunt stocate n memoria ROM, iar datele n cea RAM. Magistrala de date #i
cea de adrese pot fi separate sau multiplexate. Magistralele pot s! nu fie disponibile n
exterior (Motorola 6805) sau pot fi disponibile n exterior direct (MCS-51) sau
multiplexate (MC pe 16 sau 32 de bi"i).

Fiecare MC are un controller de ntreruperi care admite att intr!ri din exterior ct #i de la
modulele interne. Unele MC dispun de un controller DMA propriu.

Modulele I/O pot fi seriale sau paralele. Fiecare modul transfer! date cu exteriorul prin
intermediul registrului de date (RD). Modulul este comandat (configurat) de unitatea
central! prin intermediul unui registru de comenzi (RC) #i se poate citi starea modulului
prin registrul de stare (RS). Prin RS se pot genera ntreruperi. Registrele modulelor I/O pot
fi v!zute de UC ca loca"ii de memorie (la familia Motorola) sau ca dispozitive de I/O
ntr-un spa"iu de adresare separat (MCS 51). De regul!, structura de baz! a familiei con"ine
anumite interfe"e considerate foarte importante (timer, canal serial UART) #i linii I/O
Intr!ri/ie#iri
de date
Seriale/ Paralele
BUS INTERN
Unitate centrala

ALU
Registre
interne
Memorie pentru
programe
Memorie pentru
date






PORT
RD RC RS


Controller de
ntreruperi

Controller DMA
Fig. 10.3. Schema bloc a unui microcontroller
RSreg. de stare
RCreg. de comenzi
RD-reg. de date
170
grupate n porturi paralele de uz general. Pe structura de baz! se adaug! diferite tipuri de
interfe"e care folosesc n comun liniile I/O cu porturile paralele de uz general.

10.1.9. Tehnologii de fabrica"ie

CMOS (Complementary Metal Oxide Semiconductor) este cea mai r!spndit!
tehnologie. Consumul MC construit n aceast! tehnologie este mic #i permite astfel
alimentarea de la baterii. Circuitele CMOS pot fi statice sau "aproape" statice, ceea ce
nseamn! c! tactul poate fi ncetinit sau chiar oprit pentru regimul de economie de energie.
MC n tehnologie CMOS au o bun! imunitate la perturba"ii.

PMP (Post Metal Programming) permite programarea ROM-ului intern n ultimele faze de
produc"ie, dup! metalizarea final!. Uzual ROM-ul se programeaz! n etapele de nceput,
ceea ce nseamn! c! realizarea unei serii de MC poate dura 6-8 s!pt!mni. Cu tehnologia
PMP MC se pot realiza aproape n ntregime, inclusiv metalizarea #i testarea electric!
anterior program!rii ROM. Dup! programarea ROM-ului se aplic! doar stratul de pasivare.
Astfel, timpul de realizare a unei serii se reduce la 1-2 s!pt!mni.

10.1.10. Criteriile pentru alegerea unui MC

Sunt multe aspecte de care trebuie "inut seama la alegerea unui MC pentru o
anumit! aplica"ie. Alegerea unui MC potrivit poate duce la succesul proiectului, a#a cum o
alegere nepotrivit! poate duce la e#ecul proiectului. Fiecare cititor trebuie s! adapteze
aceste criterii nevoilor sale #i scalei proprii de valori.

Obiectivul urm!rit n alegerea unui MC este ob"inerea calit!"ii dorite cu un cost ct mai
sc!zut. Calit!"ile dorite nseamn! performan"!, fiabilitate, calit!"i EMC (de compatibilitate
electromagnetic! cu mediul), iar costul total include costurile cercet!rii, proiect!rii,
construc"iei, test!rii, repar!rii produsului.

n primul rnd se pune problema stabilirii func"iei pe care MC trebuie s-o ndeplineasc! n
sistem. Alegerea din catalog a unui MC trebuie f!cut! n ideea a ct mai pu"in hardware
suplimentar (din motive economice). Procesul de c!utare este dificil din cauza num!rului
foarte mare de tipuri de MC disponibile pe pia"!. Munca de c!utare este ajutat! de bazele
de date din Internet, a#a cum este baza de date de la www.questlink.com . Dup! stabilirea
MC optim se verific! pre"urile, dac! este disponibil, suportul acordat de fabricant, existen"a
uneltelor de dezvoltare, stabilitatea firmei constructoare. Un criteriu important este
posibilitatea de a fi g!sit pe pia"! (optenabilitatea), mai ales n zone n care circula"ia
m!rfurilor este destul de greoaie.

Criteriile pentru alegerea unui MC sunt, n ordinea importan"ei:
1.Posibilitatea folosirii n aplica"ia dat!
! este suficient un MC sau sunt necesare circuite suplimentare;
! liniile I/O sunt suficiente (un num!r prea mic nseamn! c! aplica"ia nu se poate face
cu acest MC, iar un num!r prea mare nseamn! un cost excesiv);
! exist! toate interfe"ele solicitate de aplica"ie: I/O serial, convertoare A/D, D/A #i nu
exist! interfe"e n plus;
! exist! capacitatea de memorare suficient!: RAM, ROM;
! MC are viteza suficient! pentru aceast! aplica"ie. Se verific! timpul necesar rul!rii
programului care trebuie s! fie mai mic dect intervalul de timp n care trebuie s!
reac"ioneze MC;
171
! alimentarea MC poate fi f!cut! din aplica"ie (este posibil ca aplica"ia s! fie
portabil!, atunci este nevoie de un MC care s! func"ioneze la 3V;
! pre"ul acestui MC este bun (acceptabil) pentru aplica"ia respectiv!.
2. Optenabilitatea MC
! trebuie s! fie disponibil n cantit!"i suficiente;
! trebuie s! fie n produc"ia actual!, dar #i n viitor pentru posibilitatea aprovizion!rii
n viitor;
! disponibilitatea unor accesorii (convertoare A/D, D/A, alimentatoare etc).

3.Disponibilitatea suportului de dezvoltare
! asambloare;
! compilatoare;
! debuggere;
! module de evaluare;
! emulatoare n circuit;
! analizoare logice;

4. Suport din partea constructorului
! documenta"ie tehnic! ;
! buletine de aplica"ii;
! service prin telefon (BBS);
! rapoarte despre prbleme de func"ionare;
! software de utilizare;
! dac! MC este folosit #i de al"i utilizatori, atunci sunt formate grupuri de lucru care
pot oferi ajutor.

5.Seriozitatea constructorului
! dac! este demonstrat! competen"a lui ;
! stabilitate #i fiabilitatea MC realizate;
! viteza de livrare;
! num!r de ani ca #i constructor #i rezultate financiare.

Un argument pentru alegerea unui tip de MC este existen"a unui modul de evaluare. Pentru
a promova propriile MC, mul"i furnizori au creat Kituri de evaluare care con"in pl!ci de
evaluare #i un soft minimal cu care se poate nv!"a utilizarea MC #i se pot pune la punct
aplica"ii. Un kit con"ine de regul! un program monitor pentru calculator PC, un program de
transfer al datelor spre placa de evaluare (prin interfa"a RS232 sau CENTRONICS), un
asamblor #i un compilator C. Toate kiturile sunt nso"ite de documenta"ie. Cteva din
modulele de evaluare sunt:

Motorola EVBU, EVB, EVM, EVS sunt echipate cu MC 68HC11.
Dallas Semiconductor DS5000TK sunt echipate cu MC Dallas din seria DS5000.
Philips #i CEIBO DS750 sunt echipate cu 87C75x, echivalent cu 8051.
American Educational Systems AES-51(8051), AES-11(68HC11), AES-88(8088)
con"in o tastatur!, un afi#aj cu LCD #i documenta"ie.

Firma Texas Instruments pune la dispozi"ia celor interesa"i un set de accesorii pentru
familia TMS370, un sistem de dezvoltare extins XDS #i unelte de dezvoltare (CDT).
Aplica"ia poate fi scris! n limbajul C, de exemplu pe un PC (utiliznd orice editor) #i
codul pentru TMS va fi generat de link editor. Codul poate ajunge la MC prin intermediul
172
interfe"ei seriale RS232. XDS analizeaz! softul creat, (chiar n domeniul timp) #i permite
punerea la punct (chiar rularea lui pas cu pas).
Exist! firme specializate n construirea unor module de evaluare cu diferite MC, a#a cum
este de exemplu PHYTEC (www.phytec.de).

Fiecare furnizor de MC pune la dispozi"ia clien"ilor un Kit de start (Starter Kit), care este
un instrument foarte valoros pentru a putea ncepe lucrul cu un anumit tip de MC. Kit-ul de
start con"ine o plac! cu soclu #i hard-ul aferent pentru programarea ini"ial! a MC, uneori
programarea EPROM-ului, interfa"a #i cablul de leg!tur! la PC, documenta"ie #i programe
(asamblor, link editor, debugger) dar nu con"ine de regul! un MC. Pre"ul unui astfel de Kit
porne#te de la 100USD (www.schuricht.de , www.farnell.com ).

Un alt argument pentru alegerea unui MC este comoditatea folosirii lui. Unele MC, a#a
cum este Motorola 68HC11A8P1 are nscris n ROM un program monitor (numit Buffalo).
Pentru punerea n func"iune este nevoie doar de o leg!tur! serial! RS232 cu un PC (este
nevoie de o conversie de nivel) #i se poate lucra de pe PC cu monitorul MC, rulnd
programele n RAM-ul MC #i stocndu-le n EEPROM. Pe I exist! subprograme scrise n
Buffalo. Un alt MC, 8052AH-BASIC con"ine un BASIC. MC Dallas din seria DS5000 are
nevoie doar de un cristal pentru oscilator #i este gata de lucru. MC con"ine memorie RAM
static alimentat! de la o baterie #i programul #i datele sunt astfel nevolatile.

10.1.11. Proiectarea sistemelor cu MC n vederea siguran"ei n
exploatare

Tendin"a produc!torilor de MC de a sc!dea pre"urile duce la r!spndirea din ce n
ce mai mare a MC #i la crearea a noi #i noi aplica"ii. Mic#orarea dimensiunilor duce la
cre#terea frecven"ei de lucru. Cu ct frecven"a cre#te, cu att cre#te posibilitatea
interferen"elor electromagnetice (EMI) #i se pune problema proiect!rii n vederea
compatibilit!"ii electromagnetice (EMC).

Apar dou! categorii de probleme: aplica"ia poate genera perturba"ii (conduse sau radiate)
sau poate fi susceptibil! la perturba"ii (conduse sau radiate). Descoperirea unor probleme
de EMI n faza final! de produc"iei a aplica"iei poate fi costisitoare deoarece s-ar putea s!
fie necesar! reproiectarea aplica"iei; de aceea este necesar ca proiectarea ini"ial! s! se fac!
n vederea EMC.

Perturba"iile sunt generate de armonicile semnalelor digitale din circuit. Ele pot fi radiate
de buclele de cablaj care se comport! ca #i antene sau sunt conduse spre sursa de
alimentare. Orice cale inductiv! sau capacitiv! pe traseul acestor armonici poate provoca
vrfuri de tensiune sau c!deri de tensiune. Pentru un sistem cu MC perturba"iile sunt
generate de regul! de cablaj, deoarece circuitele integrate au dimensiuni prea mici pentru a
putea emite. Semnalul cu frecven"a cea mai mare este tactul sistemului generat cu un
circuit oscilant cu cuar". Datorit! faptului c! forma semnalului este apropiat! de forma
sinusoidal!, con"inutul de armonici este mic. Dac! tactul este adus din exterior, se impune
aten"ie m!rit! pentru a reduce buclele de circuit emisive.

Pentru un sistem care are memorii externe cuplate la MC, liniile de transfer pot fi emisive,
deoarece frecven"ele de tranzi"ie sunt mari.

173
Susceptibilitatea sistemelor cu MC este creat! de natura sincron! a MC. Un tact cu nivel
elctric insuficient poate produce o eroare. Erorile sistemelor cu MC pot fi grupate n:

1. aplica"ia are o eroare dar se corecteaz!;
2. aplica"ia are o eroare dar o ntrerupere sau un RESET corecteaz! func"ionarea;
3. aplica"ia are o eroare #i oprind #i repornind sistemul, eroarea dispare;
4. aplica"ia are o eroare permanent! datorat! unei componente defecte.

Problemele din categoria 1 #i 2 pot s! nici nu fie observate de beneficiar.

Performan"ele EMC pot fi mbun!t!"ite acordnd aten"ie deosebit! urm!toarelor aspecte de
proiectare:
desenul cablajului imprimat;
ceasul de gard!
programarea defensiv!

10.1.11.1. Cablajul imprimat

Orice perturba"ii pe liniile de alimentare pot produce ofunc"ionare defectuoas! a
sistemului. De aceea se recomand! utilizarea unui cablaj multistrat la care masa #i
alimentarea sunt plane interne. La aplica"iile cu pre" mic, o cale important! de a reduce
pre"ul este folosirea cablajului dublu placat sau chiar simplu placat. La aceste tipuri de
cablaj traseele de mas! #i +5V trebuie s! fie ct mai late pentru a avea o impedan"! ct mai
mic!. Decuplarea cu condensatoare a MC trebuie s! fie realizat! ct mai aproape de circuit.
n unele aplica"ii care trebuie s! fie foarte ieftine se folose#te alimentarea MC de la re"eaua
de c.a. f!r! transformator, cu un redresor monoalternan"! (Fig. 10.4.).














n acest caz se creeaz! o linie de mic! impedan"! spre mas! prin re"eaua de alimentare de la
V
DD
. La acest tip de alimentare se recomad! decuplarea liniilor de frecven"! nalt! spre
linia de +5V.

Un circuit critic este cel de generare a tactulului. Orice impuls parazit care apare modific!
factorul de umplere de 50% al semnalului de tact #i instruc"iunea nu se execut! corect,
circuitul ie#ind din program. O astfel de situa"ie singular! poate fi rezolvat! de ceasul de
gard! care comnad! un RESET, dup! care MC ruleaz! din nou corect. Se recomand! ca
toate componentele aferente gener!rii tactului s! fie situate ct mai aproape de circuit, iar
MC

V
DD






V
SS

Re"ea
220V
Diod! de Rez. de
redresare putere
DZ
5V 0,1
100
Mas! flotant!
Fig. 10.4. Schema simpl! de alimentare de la re"ea
174
dac! este posibil toate traseele s! fie nconjurate de un traseu lat de gard!. Se recomand! o
decuplare a cristalului la linia de cea mai mic! impedan"! (de regul! masa) cu condensatori
SMD. Se recomand! s! se p!streze o distan"! mare ntre liniilor de frecven"! mare #i
circuitul de tact.

Este de asemenea important! protec"ia pinilor de intrare, cum ar fi RESET sau IRQ. Un pin
n aer poate comuta dac! n vecin!tatea lui sunt linii de nalt! frecven"!. Se recomand!
decuplarea acestor pini cu condensatori 1-10nF ct mai aproape de circuit.

10.1.11.2. Ceasul de gard#

Folosirea ceasului de gard! este foarte util! n cre#terea siguran"ei n func"ionare.
Majoritatea MC au un ceas de gard! integrat, iar dac! nu, un ceas de gard! extern poate fi
u#or realizat cu un monostabil redeclan#abil.

Redeclan#area ceasului de gard! trebuie f!cut! n programul principal, nu n subrutine.
Pentru a putea folosi corect ceasul de gard! trebuie analizat! cu aten"ie durata normal! a
programului pe ramura cea mai lung!.

10.1.11.3. Programarea defensiv#

Prin metodele de programare defensiv! se poate mbun!t!"i mult siguran"a n
func"ionare f!r! nici un hardware suplimentar. Cteva din cele mai eficiente metode sunt:

renc!rcarea periodic! a registrelor care comand! pinii I/O #i a celor mai
importante registre. Pinii I/O sunt leg!tura MC cu exteriorul, de aceea ei sunt
supu#i perturba"iilor. Readucerea lor la nivele corecte mic#oreaz! probabilitatea
ca o perturba"ie s! se propage n circuit.
citirea repetat! a semnalelor de intrare mic#oreaz! riscul unei citiri gre#ite. De
exemplu citirea de 3 ori la rnd a unui pin care este legat la o tast!. Dac! s-a
citit aceea#i valoare de fiecare dat! se elimin! posibilitatea unei perturba"ii.
dac! exist! loca"ii n RAM nefolosite, dup! fiecare etap! de rulare a
programului se scrie un bit n RAM. nainte de rularea unei rutine critice se
verific! valoarea stocat! n RAM #i rutina se execut! doar n cazul n care
valoarea din RAM este corect!.
dac! ntr-o aplica"ie exist! memorie nefolosit!, aceasta se umple cu instruc"iuni
de salt ntr-un loc cunoscut pentru ca un salt neprev!zut n memorie datorat unei
perturba"ii s! fie anulat de saltul n locul cunoscut.

10.2. MC din familia MOTOROLA (MC cu arhitectur$ CISC)

Motorola a dezvoltat cteva tipuri de unit!"i centrale, la care s-au ata#at o
multitudine de interfe"e, ob"innd astfel foarte multe tipuri de circuite, compatibile soft.
Motorola a creat astfel posibilitatea producerii a nenum!rate variante de MC, care s!
acopere ct mai multe din aplica"iile utilizatorului, numind aceste structuri CSIC
(Customer Specified Integrated Circuit). Spre deosebire de familia 8051 unde pe nucleul
creat de INTEL, firme constructoare au dezvoltat propriile MC compatibile, Motorola a
creat o familie de MC, ob"innd astfel o unitate n diversitate.
175

Schema bloc simplificat! a unui MC din familia Motorola este dat! n Fig. 10.5.





















Porturile I/O pot fi de uz general, dar liniile porturilor pot fi utilizate #i de interfe"ele
speciale. n continuare vor fi prezentate blocurile din structura MC Motorola 6805.

10.2.1. MC M68HC05

10.2.1.1 Memoria intern#

MC din familia Motorola, ca #i toate circuitele MC, sunt echipate cu memorie
RAM, ROM #i EPROM (OTP). Fiecare din memorii are o capacitate specific! fiec!rui tip
particular de circuit. Memoria poate fi format! din 176 304 octe"i de RAM, 240 octe"i de
ROM #i 7600 7744 octe"i de memorie programabil! (EPROM sau OTP); este cazul
circuitului MC68HC705C8.

Memoria RAM este folosit! pentru stocarea temporar! a datelor. n modul de lucru
bootstrap (specific MC Motorola), memoria RAM poate fi nc!rcat! cu informa"ie de tip
program prin portul SCI, urmnd ca programul s! fie executat din RAM. Memoria ROM
este folosit! pentru a stoca programe. Modulul ROM con"ine #i programul care
coordoneaz! nc!rcarea RAM prin portul SCI. Memoria EPROM (OTP), ca #i memoria
ROM, con"ine programe #i variabile specifice aplica"iei cu diferen"a c! acestea sunt
nscrise de utilizator, nu de fabricant.

n acela#i spa"iu de adresare se afl! memoria de diferite tipuri, registre I/O #i registre de
control #i stare, privite ca loca"ii de memorie. Pentru a #ti adresa la care se afl! fiecare
element se utilizeaz! o reprezentare numit! harta memoriei. Harta memoriei pentru un
membru al familiei 6805 (MC68HC705J1A) este dat! n tabelul 10.5.

Unitatea central!
6805, 6808...
Memorie ROM,
EPROM sau OTP
Memorie RAM
Memorie
EEPROM
Magistrala de date #i
adrese
+VDD (+5V
sau +3V)

RESET
IRQ

Oscilator
Port A Port B Port C

Porturi cu func"ii
speciale, timer, CAN,
SPI, SCI
Fig. 10.5. Schema bloc a unui microcontroller Motorola
176

Tabel 10.5. Maparea memoriei la MC68HC05J1A
Con"inut Adresa (H)
Date port A 0000
Date port B 0001
Nefolosit 0002-0003
DDR pentru port A 0004
DDR pentru port B 0005
Nefolosit 0006-0007
Stare #i control pentru timer 0008
Registru num!r!tor pentru timer 0009
Stare #i control a ntreruperilor 000A
Nefolosit 000B-0011
Nefolosit 0012-0017
Registru de programare a EPROM 0018
Nefolosit 0019-001F
Nefolosit 0020-00BF
RAM utilizator sau stiv! (64 octe"i) 00C0-00FF
Nefolosit (512 octe"i) 0100-02FF
EPROM 1232 octe"i 0300-07CF
Nefolosit 30 octe"i 07D0-07ED
Test ROM 2 octe"i 07EE-07EF
Registru COP 07F0
Registru de m!#ti 07F1
Rezerva"i 07F2-07F7
Vector pentru timer (octet semnificativ) 07F8
Vector pentru timer 07F9
Vector pentru IRQ (octet semnificativ) 07FA
Vector pentru IRQ 07FB
Vector pentru SWI (octet semnificativ) 07FC
Vector pentru RESET (octet semnificativ) 07FE
Vector pentru RESET 07FF

Pentru a putea lucra cu un MC particular trebuie studiat! alocarea (maparea) memoriei din
catalog pentru acel MC, tabelul 10.5. este doar orientativ.

10.2.1.2. Unitatea central#

Unitatea central! realizeaz! prelucrarea datelor pe 8 bi"i la o frecven"! intern! de
2MHz (tact extern de 4MHz), are o magistral! de adrese de 11-14 bi"i #i con"ine registre #i
unitatea aritmetic!/logic!, Fig. 10.6. n general, la MC Motorola, bus-ul de adrese #i de
date nu este disponibil n exterior.





177

















Unitatea central! are o arhitectur!cu bus unic pentru date #i instruc"iuni (von Neumann) #i
con"ine urm!toarele registre:
Registrul Acumulator (Accumulator - A) este un registru pe 8 bi"i de uz general. El nu
este afectat de Reset.
Registrul index (Index Register - X) este un registru pe 8 bi"i folosit la adres!rile indexate.
Nu este afectat de Reset.
Registrul indicator de stiv$ (Stack Pointer - SP) este un registru de 13 bi"i care con"ine
adresa urm!toarei loca"ii libere n stiv!. Dup! Reset indicatorul de stiv! devine 00FFh.
Registrul num$r$tor de program (Program Counter - PC) este un registru de 13 bi"i care
con"ine adresa urm!toarei instruc"iuni de executat. Dup! execu"ia instruc"iunii registrul este
incrementat. Un salt sau o ntrerupere determin! nc!rcarea PC cu alt! valoare dect adresa
urm!toarei loca"ii. Dup! Reset registrul PC este nc!rcat cu con"inutul loca"iilor 3FFEh #i
3FFFh (la MC68HC705J1A).
Registrul de condi"ii (Condition Code Register - CCR) este un registru de 8 bi"i (din care
sunt folosi"i 5) cu urm!toarea semnifica"ie:

Bitul 0 (LSB), (Carry/Borrow Flag) pozi"ionat dac! o adunare produce un
transport sau la o sc!dere este nevoie de mprumut.
Bitul 1 (Zero Flag), pozi"ionat dac! rezultatul unei opera"ii este zero.
Bitul 2 (Negative Flag), pozi"ionat dac! rezultatul unei opera"ii este negativ
(bitul 7 este 1).
Bitul 3 (Interrupt Mask Bit) cnd este 1 sunt invalidate ntreruperile. Dac! apare
o ntrerupere cnd acest bit este 1, ea este memorat! pn! bitul devine 0. Atunci
se salveaz! registrele UC n stiv!. Dup! Reset bitul este setat n 1 #i poate fi
pozi"ionat n 0 cu instruc"iunea CLI.
Bitul 4 (Half-Carry) este pozi"ionat cnd apare un transport de la bitul 3 spre 4
n acumulator la o opera"ie de adunare cu sau f!r! Carry. Este util la opera"ii
BCD.
Unitatea aritmetic! #i logic! realizeaz! opera"iile aritmetice #i logice definite de setul de
instruc"iuni. Multe din instruc"iunile aritmetice se bazeaz! pe algoritmul de la adunare.
Astfel, o nmul"ire este realizat! printr-un #ir de adun!ri #i deplas!ri succesive #i dureaz!
11 perioade de clock.

Unitatea central! 6805
Acumulator
Registru index
Indicator de stiv!
Num!r!tor de program (PC)
Registru de condi"ii
ALU
Unitatea aritmetic! #i logic!
Fig. 10.6. Unitatea central! 6805
178
Ini"ializarea unit!"ii centrale

Un Reset duce unitatea central! ntr-o stare determinat! (la o adres! cunoscut!). Un
Reset poate fi declan#at de o surs! intern! sau de o surs! extern! astfel:
extern, prin pinul de RESET, activ pe 0;
extern, Power On Reset (POR), la pornirea sursei de alimentare. Circuitul
POR asigur! o ntrziere de 4064 tacte de la momentul n care oscilatorul
devine activ #i dac! semnalul RESET extern este inactiv, procesorul ncepe
s! lucreze;
intern, de c!tre ceasul de gard!, Computer Operating Properly (COP).
ncercarea de a executa o instruc"iune de la o adres! ilegal!. Dac! unitatea
central! ncearc! s! execute o instruc"iune care nu este n EPROM sau RAM
se genereaz! un RESET pentru a proteja MC de scrieri sau citiri din zone
necontrolate.

10.2.1.3. Moduri de adresare

Unitatea central! folose#te 8 moduri de adresare pentru o ct mai mare flexibilitate
n utilizare:

1. adresare inerent$ - instruc"iunile nu au operand, cum este ntoarcerea din ntrerupere
(RTI) sau STOP. Instruc"iunile inerente au lungimea de un octet.
2. adresare imediat$ - instruc"iunile au un operand, care este o valoare imediat utilizabil!
ntr-o opera"ie cu acumulatorul sau cu registrul index. Instruc"iunile au doi octe"i,
primul fiind codul, iar al doilea valoarea imediat!.
3. adresare direct$ - instruc"iunile pot avea acces la primele 256 de loca"ii de memorie.
Instruc"iunile sunt pe doi octe"i, primul este codul iar al doilea este octetul cel mai pu"in
semnificativ al adresei operandului; octetul cel mai semnificativ este considerat
implicit 00h.
4. adresare extins$ - instruc"iunile sunt pe trei octe"i #i pot adresa orice loca"ie de
memorie. Primul octet este codul, al doilea este adresa (parte HIGH) iar al treilea este
adresa (partea LOW).
5. adresare indexat$ f$r$ offset - instruc"iunile au un octet #i pot avea acces la loca"ii cu
adresa variabil! din registrul index (care con"ine partea LOW a adresei). Pentru partea
HIGH se folose#te 00h, a#a nct aceesul este n zona 0000-00FFh.
6. adresare indexat$ cu offset pe 8 bi"i - instruc"iunile au doi octe"i, fiind accesibile
loca"ii cu adresa variabil! n zona primelor 511 loca"ii. Unitatea central! adun! octetul
din instruc"iune la registrul index (f!r! semn) #i se ob"ine adresa efectiv! a operandului.
Un exemplu de utilizare al acestui mod de adresare este selectarea unui elemnt k dintr-
un tabel de n elemente. Valoarea k este n registrul index, iar adresa nceputului
tabelului este al doilea octet al instruc"iunii.
7. adresare indexat$ cu offset pe 16 bi"i - instruc"iunile au trei octe"i, fiind accesibile
toate loca"iile. UC adun! f!r! semn registrul index la cei doi octe"i din instruc"iune
(primul octet dup! codul instruc"iunii este octetul HIGH) #i se ob"ine adresa efectiv! a
operandului.
8. adresare relativ$ este folosit! n instruc"iunile de salt. La un salt relativ, se adun!
(cu semn) octetul care urmeaz! dup! codul instruc"iunii la con"inutul Program Counter.
Se pot face salturi relative n gama 127 de octe"i nainte sau napoi.


179
10.2.1.4. Setul de instruc!iuni

Unitatea central! MC68HC05 are 61 de instruc"iuni (mai mult de 200 de coduri).
Cteva dintre instruc"iunile mai importante, clasificate dup! tipul opera"iei sunt enumerate
n continuare.

registru- memorie
ADD, ADC adun! con"inutul unei loca"ii de memorie la acumulator (f!r! sau cu
transport)
AND #i ntre memorie cu acumulator
CMP compar! memorie cu acumulator
EOR sau exclusiv memorie cu acumulator
CPX compar! registru index cu memoria
LDA, LDX ncarc! acumulator (registru index) cu un octet din memorie
ORA sau logic ntre acumulator #i memorie
SBC, SUB sc!dere cu sau f!r! mprumut
STA, STX salvare acumulator (registru index) n memorie
MUL nmul"ire

cite#te- modific!- scrie
ASL,ASR, LSL, LSR deplasare aritmetic! (logic!) stnga (dreapta)
BSET, BCLR setare sau resetare bit
CLR resetare registru
COM complement fa"! de 1
NEG complement fa"! de 2 (negare)
ROL, ROR rota"ie stnga (dreapta) prin Carry
TST- test pentru zero sau negativ

de salt
BCC, BCS dac! Carry este 0 sau 1
BEQ, BNE dac! este egal (sau nu)
BHCC, BHCS dac! bitul de Half Carry este 0 sau 1
BHI, BHS dac! este mai mare ori mai mare sau egal
BLO, BLS dac! este mai mic ori mai mic sau egal
BIH, BIL dac! linia de ntrerupere extern! este 1 sau 0
BMI, BPL dac! este negativ (sau pozitiv)
BMC, BMS dac! masca de ntrerupere este 0 sau 1
BRA, JMP salt necondi"ionat
BSR, JSR salt la subrutin!

manipulare la nivel de bit
BCLR, BSET nscrierea unui bit cu 0 (sau n1)
BRCLR, BRSET salt dac! un bit este 0 (sau n1)

de control
CLC, SEC nscriere cu 0 (cu1) a bitului de Carry
CLI, SEI punere la 0 (cu 1) a m!#tii pentru ntrerupere
NOP nu se execut! nici o opera"ie
RTI, RTS ntoarcere din ntrerupere (subrutin!)
180
STOP, WAIT se opre#te oscilatorul CPU #i se a#teapt! o ntrerupere extern! (se
valideaz! nreruperile)
SWI ntrerupere software
TAX, TXA transfer! acumulatorul n registrul index (sau invers)

10.2.1.5. Sistemul de ntreruperi

Unitatea central! poate fi ntrerupt! din programul curent de urm!toarele surse:
un 0 logic aplicat din exterior pinului /IRQ;
un 1 logic aplicat din exterior la pinii PA3-PA0 ai portului I/O PA, dac! aceste
ntreruperi sunt validate;
o ntrerupere de la temporizatorul sistemului (TOF Timer Overflow sau RTIF
Real Time Interrupt), dac! ntreruperea este validat!;
instruc"iunea de ntrerupere software SWI.
Dac! o ntrerupere vine n timp ce UC execut! o instruc"iune, instruc"iunea n curs este
terminat! #i apoi se consider! ntreruperea. ntreruperile pot fi invalidate global n registrul
condi"iilor de program (CCR) sau individual pentru fiecare surs! n parte. Un Reset inhib!
toate ntreruperile pentru ca procesul de ini"ializare s! nu poat! fi ntrerupt.

La apari"ia unei ntreruperi, unitatea central! termin! instruc"iunea n curs, apoi salveaz! n
stiv! registrele UC, invalideaz! ntreruperile pentru ca o nou! ntrerupere s! nu deranjeze
servirea ntreruperii curente. Cererile de ntrerupere sunt memorate #i servite dup! servirea
ntreruperii curente. n PC se transfer! vectorul de ntrerupere #i se execut! rutina de
servire a ntreruperii. Rutina se termin! cu instruc"iunea RTI care restaureaz! registrele UC
din stiv!. Vectorii de ntrerupere pentru fiecare dintre sursele enumerate mai sus sunt
stoca"i n memorie la adresele:

timer 07F8h #i 07F9h;
/IRQ sau PA 07FAh #i 07FBh;
instruc"iunea SWI 07FCh #i 07FDh;
Reset (POR, RESET din exterior, COP sau adres! ilegal!) 07Feh #i 07FFh.
Adresele vectorilor se g!sesc n harta memoriei furnizat! de produc!tor.
Unele MC din familie au #i alte interfe"e, care pot #i ele s! solicite ntreruperi, a#a cum
poate cere circuitul timer.

Pn! la servirea ntreruperii trece un anumit interval de timp (tacte), pentru ca UC s!
termine instruc"iunea curent! #i s! salveze n stiv! registrele. Acest timp este numit
Interrupt Latency #i poate fi orict de lung dac! ntreruperile nu sunt validate. Cea mai
lung! instruc"iune este MUL, care dureaz! 11 tacte, iar unitatea central! are nevoie de 9
tacte pentru a salva registrele n stiv!, deci cel mai lung timp de a#teptare pentru servirea
unei ntreruperi este de 20 de tacte. Acest timp trebuie s! fie luat n calcul n momentul
realiz!rii unei aplica"ii n timp real. Dac! survine o a doua ntrerupere, timpul de a#teptare
pentru servirea ei poate fi prea lung. O solu"ie ar fi validarea ntreruperilor n timpul
servirii primei ntreruperi. n acest caz trebuie avut grij! ca stiva s! fie destul de mare
pentru a permite salvarea a dou! seturi de registre.



181
10.2.1.6. Interfe!e "i periferice on chip

Blocurile func"ionale integrate n circuitul MC sunt de o deosebit! importan"! n
implemenatrea unei aplica"ii. Este n egal! m!sur! important s! fie cunoscute #i bine
st!pnite att capabilit!"ile unit!"ii centrale ct #i ale interfe"elor cu care este echipat MC
aceast! cunoa#tere conduce la o exploatare performant! a resurselor.

a. Porturi paralele I/O

Porturile paralele I/O sunt forma cea mai simpl! a interfe"elor. MC68HC705C8
dispune de 31 de linii I/O digitale de uz general grupate n patru porturi. Porturile A, B, #i
C sunt porturi de cte opt bi"i fiecare; sensul transferului pe fiecare linie (intrare sau ie#ire)
poate fi stabilit prin program. Fiecare linie are asociat cte un registru de direc"ie (DDR).
n Fig. 10.7. este ilustrat! organizarea portului A al circuitului mai sus men"ionat;
Organizarea este identic! #i la celelalte dou! porturi de opt bi"i, porturile C #i D.
















Structura circuitului pentru o linie bidirec"ional! de scriere/citire la porturi este redat! n
Fig 10.8. Se poate constata modul de ac"ionare a bitului din registrul de sens asupra
circuitului driver de ie#ire.















Bit 7 6 5 4 3 2 1 Bit 0
DDRA7 DDRA6 DDRA5 DDRA4 DDRA3 DDRA2 DDRA1 DDRA0
0 0 0 0 0 0 0 0
Starea registrelor de ie#ire nu este influen"at! de Reset
$04 DDRA
Condi"ii la Reset
(toate liniile intr!ri)
$00 Port A
Condi"ii la Reset

PA7 PA6 PA5 PA4 PA3 PA2 PA1 PA0
Fig. 10. 7. Organizarea portului paralel A (MC68HC705C8)
D Q



C /Q
Bit de
date


WRITE
Bit
DDR
Intrare/
Ie#ire
digital!
Driver
READ

Bit de
date
Buffer
Fig. 10.8. Circuite bidirec"ionale de scriere/citire la porturi
182
Portul D dispune de #apte linii (f!r! PD6); acestea pot fi folosite doar ca linii de intrare. O
particularitate a acestui port este faptul c! pinii corespunz!tori sunt folosi"i fie de portul D,
fie de porturile seriale SPI #i SCI, n func"ie de starea de activare nscris! n registrele de
comand! SPI #i SCI.

Liniile pot fi citite sau scrise de unitatea central! cu instruc"iuni specifice. Liniile pot fi
apelate grupat, la nivel de port sau individual, la nivel de bit. Pentru a economisi timpul
unit!"ii centrale, interfe"ele pot lucra cu unitatea central! prin intermediul ntreruperilor.

b. Portul serial asincron SCI (Serial Communications Interface)

SCI este un transmi"!tor receptor asincron universal (UART) cu posibilitatea
lucrului full-duplex. Pentru un transfer bidirec"ional sunt suficien"i 2 pini. Cu circuite de
transla"ie de nivel RS232 se pot face transferuri la distan"e suficient de mari. Se poate
programa una din 32 viteze de transmisie #i lungimea caracterului; se pot valida separat
transmi"!torul #i receptorul; se pot genera ntreruperi n diferite situa"ii; se poate detecta
eroare de cadrare la recep"ie.

Formatul datelor este ca la orice transmisie asincron! (RS232 sau RS422). Linia este n
stare MARK, iar transmisia unui caracter este semnalat! de trecerea liniei n stare SPACE
pe durata bitului de START. Urmeaz! 8 sau 9 bi"i de date #i un bit de STOP.

Datele care se doresc a fi transmise sunt scrise n registrul de date al SCI (SCDR), apoi se
valideaz! transmisia prin pozi"ionarea bitului TE (Transmit Enable) n registrul de control
al SCI (SCCR2). Dup! ce cuvntul a fost transmis, se pozi"ioneaz! bitul TDRE (Transmit
Data Register Empty) n registrul de stare SCSR (SCI Status Register). Se indic! astfel c!
poate fi transmis un nou cuvnt. Se pot transmite caractere speciale, cum ar fi BREAK,
care "ine linia n stare SPACE (se transmite un #ir de 0) dac! se pozi"ioneaz! bitul SBK n
SCCR2 sau un caracter care "ine linia n stare MARK.

Golirea registrului de date semnalizat! de TDRE sau de TC (Transmission Complete) din
SCDR poate genera o ntrerupere.

Datele sunt recep"ionate n SCDR, la recep"ia complet! fiind pozi"ionat bitul RDRF
(Receive Data Register Full) n SCSR. Pentru eliminarea recep"iilor false fiecare bit de
start este e#antionat #i citit de 16 ori; orice nepotrivire a e#antioanelor duce la respingerea
acestui bit. Dac! nu se recep"ioneaz! bitul de STOP se anun"! o eroare de cadrare prin
pozi"ionarea bitului FE n SCR.

ntreruperile la recep"ie pot fi generate dac! bitul RDRF din SCSR indic! recep"ia unui
caracter, dac! este o eroare de vitez! de recep"ie prin recep"ia unui caracter nainte ca cel
precedent s! fi fost citit sau dac! s-a recep"ionat un caracter special format numai din valori
de 1.

Structura registrului de control SCCR1 este:
Bit 7 este al 9-lea bit recep"ionat dac! s-a definit o transmisie pe 9 bi"i
Bit 6 este al 9-lea bit de transmis dac! s-a definit o transmisie pe 9 bi"i
Bit 4 comand! lungimea caracterului, 8 sau 9 bi"i
Bit 3 este un bit de trezire care comand! ce fel de condi"ie treze#te SCI
183

Structura registrului de control SCCR2 este:
Bit 7 TIE Transmit Interrupt Enable - valideaz! ntreruperile cerute de TDRE
Bit 6 TCIE Transmit Complete Interrupt Enable - valideaz! ntreruperile cerute de TC
Bit 5 RIE Receive Interrupt Enable - valideaz! ntreruperile cerute de RDRF
Bit 4 ILIE Idle Interrupt Enable Bit -valideaz! ntreruperile cerute de caracterul #ir de 1
Bit 3 TE Transmit Enable - valideaz! transmisia
Bit 2 RE Receive Enable - valideaz! recep"ia
Bit 1 RWU Receiver Wakeup Enable - pune receptorul n stare de a#teptare
Bit 0 SBK Send Break - trimite caracterul BREAK

Structura registrului de stare SCSR este:
Bit 7 TDRE Transmit Data Register Empty - registru de transmisie gol
Bit 6 TC Transmission Complete - transmisie complet!
Bit 5 RDRF Receive Data Register Full - registru de recep"ie plin
Bit 4 IDLE - s-a recep"ionat un #ir de 1
Bit 3 OR Receiver overrun - eroare de vitez! de recep"ie
Bit 2 NF Receiver Noise - s-au detectat perturba"ii n datele citite (prin e#antionarea
bitului de START)
Bit 1 FE Framing Error - eroare de cadrare.

Registrul ratei de transfer este descris n tabelul 10.6.

Tabel 10.6. Con"inutul registrului ratei de transfer
Bit 5 Bit 4 Ceas pentru
transfer
Bit 2 Bit 1 Bit 0 Rata de transfer
0 0 ceas intern 0 0 0 ceas de transfer
0 1 ceas intern /3 0 0 1 ceas de transfer/2
1 0 ceas intern/4 0 1 0 ceas de transfer/4
1 1 ceas intern/13 0 1 1 ceas de transfer/8
1 0 0 ceas de transfer/16
1 0 1 ceas de transfer/32
1 1 0 ceas de transfer/64
1 1 1 ceas de transfer/128

Rata de transfer se ob"ine printr-o dubl! divizare, nti se ob"ine un ceas de transfer prin
divizarea ceasului intern, apoi se divizeaz! ceasul de transfer. Se pot astfel ob"ine diferite
rate de transfer, de exemplu 4800 Baud (4808) la un ceas de 2MHz prin divizarea nti cu
13, apoi cu 1.

c. Portul serial SPI (Serial Peripheral Interface)

Cu acest port se poate realiza o comunica"ie sincron! simpl!, folosit! de regul!
pentru a transfera date ntre circuite pe aceela#i montaj cu MC. Un transfer bidirec"ional
necesit! 3 pini, unul dintre ei fiind alocat ceasului de transmisie generat de masterul SPI.
Cu SPI se pot realiza transferuri #i ntre microcontrollere. Transferurile pot fi full duplex.

Registrele care controleaz! transferul SPI sunt registrul de control (SPICR SPI Control
Register) #i registrul de stare (SPISR SPI Status Register). Un transfer SPI poate fi ini"iat
184
doar de un master. Masterul scrie un octet n registrul de transmisie SPI (SPDR SPI Data
Register) de unde datele merg ntr-un registru de deplasare n care sunt serializate #i de
unde sunt transmise sincron cu ceasul de transmisie. Transmisia se termin! dup! 8 tacte,
cnd se pozi"ioneaz! bitul SPIF. nainte ca masterul s! trimit! un nou octet trebuie s! se
reseteze bitul SPIF prin citirea registrul de stare SPSR. n slave datele intr! n registrul de
deplasare cu tactul de recep"ie, acela#i cu cel de transmisie. Cnd au intrat 8 bi"i, caracterul
este transferat n registrul de date SPDR. Pentru a se evita erorile de vitez! (sau de
suprascriere - Overrun) trebuie ca octetul din SPDR s! fie citit nainte ca un alt octet s! fie
transmis din registrul de deplasare.

Pozi"ionnd bitul MSTR din registrul SPCR n 1, MC lucreaz! n mod master. n acest mod
pinii au urm!toarea semnifica"ie:
SCK (Serial Clock) este ie#ire de tact pentru sincronizare;
MOSI (Master Output Slave Input) este ie#irea serial!;
MISO (Master Input Slave Output) este intrarea serial!;
/SS (Slave Select) protejeaz! MC dac! dou! circuite sunt master. Acest semnal
activ dezactiveaz! la cel!lalt port SPI modul master, #terge bitul MSTR #i
pozi"ioneaz! bitul de eroare (MODF Mode Fault Flag).
Cu bitul MSTR=0 se valideaz! modul slave, n care pinii au semnifica"ia:
SCK (Serial Clock) este intrarea de tact pentru sincronizare de la MASTER;
MOSI (Master Output Slave Input) este intrarea serial!;
MISO (Master Input Slave Output) este ie#irea serial!;
/SS (Slave Select) valideaz! SPI pentru modul slave.
n Fig. 10.9. este ar!tat! o conexiune SPI n care sunt legate un circuit master #i mai multe
circuite slave.


















Circuitele slave sunt validate pe rnd cu semnale dintr-un port de ie#ire auxiliar.

Pentru a putea adapta transmisiei seriale ct mai multe echipamente seriale, se poate
programa faza #i polaritatea ceasului de sincronizare cu bi"ii CPOL #i CPHA din SPCR.
MC master

SPI MISO
MOSI
SCK
/SS
Port I/O
0
1
2
/SS SCK MOSI MISO

Dispozitiv slave
/SS SCK MOSI MISO

Dispozitiv slave
+1
Fig. 10.9. Conexiune SPI
185

n SPI pot apare urm!toarele erori:
mai multe MC master conectate (Mode Fault Error)
scrierea n SPDR n timpul unei transmisii (coliziune), are ca urmare scrierea
bitului WCOL n SPSR;
omiterea citirii SPDR nainte ca urm!torul octet s! soseasc! (suprascriere).
O ntrerupere poate fi generat! n urm!toarele situa"ii:
registrul de date este gol sau plin (la transmisie respectiv la recep"ie) se semnaleaz!
cu SPIF care poate genera o ntrerupere dac! ntreruperea este validat! cu SPIE;
la apari"ia unei erori Mode Fault semnalat! cu MODF, dac! ntreruperea este
validat! cu SPIE.

d. Timer

Circuitele de timp timere - care echipeaz! MC Motorola sunt foarte variate. De la
cel mai simplu (MC68HC05J) care poate genera 2 ntreruperi periodice: una cu frecven"a
fix! #i una cu frecven"a variabil!, #i pn! la cel mai complex (MC68332) care con"ine un
temporizator cu propria lui unitate aritmetic! #i logic! proiectat special pentru controlul
motoarelor cu ardere intern!.

Un temporizator tipic (de la MC68HC705J1A), nu cel mai simplu dar nici cel mai
complex, are schema bloc dat! n Fig. 10.10.






















Ceasul de intrare n timer este ceasul de magistral! (frecven"a cristalului/2) care, dup! o
divizare cu 4, constituie tact pentru un num!r!tor de 8 bi"i. Valoarea acestui registru
num!r!tor poate fi citit! de UC n oricare moment la loca"ia 09h (TCR Timer Counter
Register). UC nu poate s! modifice valoarea acestui registru. Cnd num!r!torul trece de la
Xtal/2 Divizare
cu 4
Num!r!tor hexa de 8 bi"i MSB
TCR (Timer Counter Register) la adresa 0009h
TCSR registru de control #i stare a timerului
TOF RTIF TOIE RTIE TOFR RTIFR RT1 RT0
Num!r!tor hexa de 7 bi"i Selec"ie ie#ire
Num!r!tor COP Generare de Reset
intern al UC
Fig. 10.10. Timer 6805
186
FFh la 00h este pozi"ionat bitul TOF (Timer Overflow Flag) n registrul de stare al
timerului (TCSR Timer Control and Status Register). Starea acestui bit poate fi citit! de
UC n oricare moment. Dac! bitul TOIE (Timer Overflow Interrupt Enable) din registrul
de stare TCSR este 1, n momentul trecerii de la FFh la 00h se genereaz! o ntrerupere,
numit! ntrerupere de dep!#ire (Overflow Interrupt).

Ie#irea num!r!torului de 8 bi"i constituie tact pentru un alt num!r!tor de 7 bi"i. Ie#irea de la
oricare dintre cei mai semnificativi 4 bi"i ai acestui ultim num!r!tor (selectat! de unul din
cei doi bi"i RT1 #i RT0 din registrul de control TCSR) poate fi folosit! pentru generarea
unei ntreruperi, numit! de timp real (Real Time Interrupt ) care nscrie bitul RTIF (Real
Time Interrupt Flag) din TCSR. Se genereaz! o ntrerupere dac! bitul RTIE (Real Time
Interrupt Enable) este 1.

Ultimul nivel al timerului este un num!r!tor de 3 bi"i folosit pentru cesul de gard! (COP
Computer Operating Properly). Dac! este validat! verificarea COP, trebuie ca
programatorul s! reseteze COP nainte de expirarea perioadei programate pentru comanda
unui RESET al UC. Perioada de timp n care COP trebuie resetat depinde de RT1 #i RT0.
n tabelul 10.7. sunt date perioadele de ntrerupere #i perioadele n care COP trebuie
resetat. Perioadele corespund unui tact de 2MHz:

Tabel 10.7. Perioade de ntrerupere #i perioade de reset programabile cu un tact de 2 MHz.
RT1 RT0 Perioada de ntrerupere Perioada n care COP trebuie resetat
0 0 8.2ms 57.3ms
0 1 16.4ms 114.7ms
1 0 32.8ms 229.4ms
1 1 65.5ms 458.8ms

Un reset al COP se poate realiza prin scrierea bitului 0 de la adresa 07F0h (COPR COP
Register).

MC din seria 68705 sunt echipate cu un temporizator care are posibilitatea de captur! #i
comparare. Captura poate nregistra momentul la care apare un eveniment extern (o
tranzi"ie pe pinul TCAP). n acest moment memoreaz! con"inutul registrelor timerului n
registrele de captur!. Memorarea registrelor timerului la tranzi"ii de aceea#i polaritate a
TCAP poate determina perioada unui semnal, iar la tranzi"ii de polaritate opus! poate
determina l!"imea unui impuls. Polaritatea de declan#are este programabil!. Prin
comparare se poate genera un semnal de ie#ire cnd num!r!torul timerului atinge o valoare
selectat!. La fiecare 4 tacte se compar! valoarea num!r!torului cu cea scris! n registrul de
comparare. Dac! este egalitate se genereaz! un semnal TCMP.

e. Portul PWM

Modula"ia impulsurilor n l!"ime (Pulse Width Modulation) are multe aplica"ii, mai
ales n comanda motoarelor de curent continuu sau a surselor de alimentare. Din acest
motiv unele MC includ n structura lor un modulator PWM ca interfa"!.
Un semnal PWM arat! ca n Fig. 10.11.



187








Circuitul MC68HC05D9 con"ine 5 canale PWM de cte 6 bi"i care sunt realizate cu
ajutorul unui num!r!tor de 6 bi"i, un registru de control PWM #i 5 registre de date care
formeaz! 5 linii PWM ce sunt disponibile la pinii portului D (Fig. 10.12).






















n registrul de mod sunt 5 bi"i care valideaz! modulul PWM astfel nct semnalele PWM s!
fie livrate pe la pinii portului D. Tot n registrul de mod mai este un bit, SCIB, care
selecteaz! dac! la adresa 000Dh s! fie date pentru PWM sau rata de divizare pentru SCI.
Dac! nu sunt folosite ca ie#iri PWM, liniile portului D pot fi folosite ca intr!ri/ie#iri
obi#nuite. Registrul de mod PWM se afl! la adresa 0008h.

Dac! se ncarc! registrul de date cu 00h semnalul la ie#ire va fi tot timpul zero. nscrierea
valorii 20h n registrul de date are ca rezultat un semnal cu factor de umplere 50% la
ie#irea corespunz!toare, iar nc!rcarea valorii 3Fh va determina un semnal cu factor de
umplere de 63/64.

f. Portul USB (MC68HC05JB4)

MC68HC05JB4 con"ine un convertor A/D #i o interfa"! USB, ceea ce l face ideal
pentru achizi"ia de date #i transferul lor c!tre un calculator PC-AT. Datorit! structurii USB,
T1
T2
Factorul de umplere este
T2/T1
Fig. 9.11. Semnal PWM
Num!r!tor de 6
bi"i
PWM4 (000Dh)
PWM3 (000Ch)
PWM2 (000Bh)
PWM1 (000Ah)
PWM0 (0009h)
R
E
G
I
S
T
R
U

D
E

M
O
D

P
W
M


PWM 4



PWM 3


PWM 2



PWM 1


PWM 0
Fig. 10.12. Structura modulului PWM la familia 6805
0008h
188
este posibil! realizarea unui punct central de prelucrare echipat cu PC #i multe puncte de
achizi"ie echipate cu acest MC.

Modulul USB implementeaz! standardul USB 1.0, de mic! vitez!, la 1,5Mbps, cu 3 puncte
de cap!t (End Point). MC con"ine #i transceiverul USB. Schema bloc a modului USB este
dat! n Fig. 10.13.















Figura 11






Transceiverul are o ie#ire diferen"ial! care poate lucra cu 3 st!ri pentru a permite transferul
de date bidirec"ional de tip full-duplex. Receptorul trebuie s! fie de asemenea cu intr!ri
diferen"iale.

Comanda interfe"ei USB se realizeaz! prin intermediul a 3 registre de comand! iar starea
poate fi citit! dintr-un registru de stare. Exist! un registru de adres! #i 24 de registre de
date. Modul de func"ionare n ntreruperi este programat prin registrul de ntreruperi.
Interfa"a USB poate lucra n modul de economie de energie dac! nu exist! trafic pe linii un
anumit interval de timp. Apari"ia unei date la recep"ie sau emisia unei date de c!tre UC
produce ie#irea din starea inactiv!.

g. Interfa"a LCD

MC6805 DragonKat este denumirea unui MC din familia 6805 care con"ine o
interfa"! pentru un afi#or cu cristale lichide.

Interfa"a pentru LCD con"ine:
logica de control pentru sincronizare;
RAM-ul de display care stocheaz! datele pentru display printr-o coresponden"!
1 la 1 a bi"ilor (fiecare bit din memorie are corespondent un punct pe LCD).
Memoria este organizat! n cuvinte de 5 bi"i #i poate fi scris! sau citit!;
Logica de
control USB
Registre USB
BUS INTERN
Transceiver
Stabilizator 3,3V
1,5K
D-
D
+3,3V
HUB
sau ech.
USB
Cablu USB
2x 1,5K
MC
Fig. 10.13. Structura intern! a portului USB
189
registru de date este folosit pentru a stoca datele din memoria RAM a LCD;
generator de tensiune care con"ine un divizor de tensiune pentru alimentarea
segmentelor #i a planului din spate;
driver pentru planul din spate;
driver pentru segmente.

Un afi#aj LCD arat! ca n Fig 10.14.













Un punct este aprins cnd o linie Bpi #i una SEGi sunt active. Pentru caracterul A,
memoria RAM de display are con"inutul din tabelul 10.8.

Tabel 10.8. Con"inutul memoriei pentru afi#area caracterului A
Adresa Bit0 Bit1 Bit2 Bit3 Bit4
200 0 0 1 0 0
201 0 1 0 1 0
202 1 0 0 0 1
203 1 0 0 0 1
204 1 1 1 1 1
205 1 0 0 0 1
206 1 0 0 0 1
207 0 0 0 0 0

Punctul de sus a lui A de exemplu, se scrie cu BP0 #i SEG2 active. Semnalele SEG #i BP
sunt periodice #i baleiaz! tot timpul afi#ajul pentru a men"ine punctele aprinse. Frecven"a
semnalelor de aprindere a punctelor este de 32kHz, iar frecven"a unui cadru este de
62,5Hz.

Dimensiunea panourilor LCD difer!, de aceea difer! #i consumul de curent. Tensiunea spre
afi#aj este ob"inut! prin nserierea unor rezisten"e, nseriere care poate fi comandat! soft.

Schema bloc a interfe"ei pentru LCD este dat! n Fig. 10.15.





Segmente (SEG 0-39)
Planul
din spate
(BP 0-15)

Fig. 10.14 Afi#aj LCD
190



















9.2.1.7. Modurile de lucru cu economie de energie

10.2.1.7. Modurile de lucru cu economie de energie

Instruc"iunea STOP plaseaz! UC n modul de lucru cu consum minim de energie.
Ceasul intern este oprit #i toate procesele interne sunt oprite, inclusiv timerul. ntreruperile
externe sunt validate automat n registrul CCR. Sunt #terse registrele aferente timerului #i
canalului SCI, dar celelalte registre #i memoria nu sunt alterate. Unitatea central! poate fi
trezit! din STOP doar de o ntrerupere extern!.

Instruc"iunea WAIT plaseaz! UC ntr-un mod de lucru cu consum redus de energie. R!mn
active timerul #i canalul serial SCI. Orice ntrerupere validat!, primit! din exterior sau de la
temporizator sau SCI, trezesc unitatea central!. ntreruperile sunt validate automat. Toate
registrele #i memoria r!mn cu datele avute la intrarea n starea WAIT.

10.2.1.8. Autoverificarea

MC are 2 moduri de operare: normal #i auto-verificare. Modul de operare este
selectat de nivelul logic pe pinul IRQ n momentul unui RESET. n modul normal de
operare ncepe rularea unui program din EPROM, deci EPROM-ul trebuie sa fie programat
dac! a fost ales modul normal de operare. n modul autotest MC ruleaz! un program
con"inut n ROM n zona de memorie 3F00h-3FDEh. Autotestul comunic! rezultatele la
pinii PC3-PC0, unde se pot conecta LED-uri.

10.2.1.9. Programarea EPROM

Unele MC din familie con"in ROM, a#a cum este MC68HC05D9 care con"ine 16K
octe"i de PROM sau MC68HC05D24 care con"ine 24K octe"i de ROM. Modelul
MC68HC05D32 are 32K octe"i memorie EPROM, cu posibilitatea de #tergere UV.
nscrierea memoriei se face cu ajutorul unei tensiuni suplimentare de 15V (Vpp). Circuitele
Registru de
date LCD
(40bi"i)
RAM pentru display 128x5bit
Magistrala intern! de
adrese si date
Driver de segmente
Driver
pentru
planul
din
spate
BP0-BP15
SEG0-SEG39
Registru
de control
Fig. 10.15. Schema bloc a intefe"ei LCD
191
MC68HC705C8A con"in 8K EPROM sau OTP. Memoria EPROM sau OTP se poate
programa cu ajutorul unui modul special, construit de Motorola, sau folosind un montaj n
care progamul se ncarc! n MC dintr-o memorie EPROM extern! sau cu orice
programator care poate s! adreseze #i s! pun! date pe liniile de date (Fig. 10.16.).




















Adresele se stabilesc la portul A, iar cele mai semnificative linii (A8-A12) se stabilesc la
portul C (PC0-PC4). Liniile cu datele de nscris se stabilesc la portul B. Registrul folosit
pentru programarea EPROM-ului este registrul de programare (PROG).
Bit 2- LAT (Latch Enable Bit), pozi"ionat n 1, comand! ca liniile de adrese #i date
s! fie bufferate pentru ca n urm!torul ciclu s! se fac! o scriere a EPROM-ului;
Bit 0 (PGM) valideaz! tensiunea Vpp pentru programarea EPROM-ului.
Se pune problema cum se poate ca un MC care nu a fost programat s! lucreze sub comanda
unui program ca s! poat! avea acces la programarea unui registru. Pentru programare MC
trebuie s! lucreze n modul bootstrap, mod n care MC intr! prin for"area liniei IRQ n
timpul unui RESET. Programe simple utilizator pot fi introduse n RAM prin interfa"a SCI
(Serial Communications Interface) #i rulate. Programul se transmite prin interfa"a serial!,
dup! care se ruleaz! programul din RAM. Parametrii comunica"iei implici"i la Reset sunt 8
bi"i de date #i un bit de STOP, la viteza de 4800bps. Primul octet trimis reprezint! num!rul
total de octe"i care vor fi trimi#i. Con"inutul EPROM-ului poate fi verificat prin citirea lui
tot prin SCI. Con"inutul EPROM-ului se poate ascunde, a#a nct s! nu mai poat! fi citit
din exterior prin pozi"ionarea unui bit de securizare n registrul de op"iuni (adresa 1FDFh).


10.2.2. MC M68HC08

Familia 6808 urmeaz! n timp familiei 6805, binen"eles cu mbun!t!"iri care vor fi
amintite n acest subcapitol. MC din familia 6808 sunt compatibile cu cele din familia
descris! n subcapitolul anterior (9.2.1.). Ca mbun!t!"iri ale UC 6805 pot fi men"ionate:

MC68xx
PA
PA0-
PA7
PB
PB0-
PB7
PC
PC0-
PC4
A0-A7




D0-D7




A8-A12
Vpp
+15V la
nscriere
SCI

PD
PD1
PD0
Circuite de
modificare de
nivel RS232
TxD

RxD
Fig. 10.16. Schema unui programator EPROM (sau OTP)
192
indicatorul de stiv! este un registru de 16 bi"i (13 la 6805);
registrul de index este de 16 bi"i, exist! posibilitatea manipul!rii lui separat a
octetului superior #i a celui inferior (8 bi"i la 6805);
frecven"a intern! CPU standard este de 8MHz (2MHz la 6805);
se pot adresa 64K octe"i memorie de date sau program (2K-16K la 6805),
are 16 moduri de adresare (8 la 6805) #i 78 de noi coduri de instruc"iuni;
se pot face mut!ri de date ntre loca"ii de memorie f!r! intermediul acumulatorului;
UC poate executa mp!r"iri de operanzi de 2 octe"i la operanzi de 1 octet;
operarea secven"ial! a UC poate fi oprit! de 2 tipuri de evenimente: reset sau
ntreruperi. Sursele de Reset suplimentare fa"! de 6805 sunt:
- detectarea unui cod de instruc"iune inexistent!;
- tensiune de alimentare sub o limit! acceptat!
(LVI, Low Voltage Inhibit).
Un Reset comand! nc!rcarea registrului PC cu valoarea aflat! la
adresele FFFEh #i FFFFh.
sistemul de ntreruperi admite un num!r maxim de 128 de surse de ntrerupere:
reset, SWI #i IRQ0-IRQ125. Unele dintre aceste cereri de ntrerupere sunt
accesibile la pin. ntreruperea software are cea mai mare prioritate. n mod WAIT
ceasul UC este oprit, dar celelalte module au ceas, astfel nct orice ntrerupere
treze#te UC. n mod STOP toate ceasurile sunt oprite #i doar o ntrerupere extern!
poate trezi UC.

Schema bloc a unui MC 6808 este prezentat! n Fig. 10.17.
























4.1.Unitatea central$ 6808
Unitatea central!
6805, 6808...
Memorie ROM sau
FLASH
(4096bytes)
Memorie RAM
(128bytes)
Memorie
EEPROM
Magistral!
de date #i adrese
+VDD (+5V
sau +3V)

RESET
IRQ

Oscilator
Port A Port B Port C
Monitor ROM (960bytes)
Port D Port E Port F Port G Port H
ADC
Seriale
Timer Tastatur!
Fig. 10.17. Schema bloc a unui MC din familia 6808
193
10.2.2.1. Unitatea central#

Unitatea central! 6808 admite 2 moduri de lucru: un mod utilizator #i un mod
monitor ROM. Modul de lucru poate fi alese prin pozi"ionarea unui pin din exterior (IRQ)
n 1 sau 0 n timpul unui RESET. Modul monitor creeaz! posibilitatea leg!rii MC cu un
calculator gazd! printr-un canal serial, transferarea soft-ului de pe calculatorul gazd! n
MC #i execu"ia lui din RAM. Pentru MC echipate cu EEPROM n mod monitor se poate
programa EEPROM-ul. Leg!tura serial! ntre calculator #i MC este RS232 prin
intermediul pinilor unui port I/O. n mod monitor MC poate s! execute programe din RAM
cu ajutorul unor comenzi simple monitor, toate func"iile MC fiind valide. n modul monitor
COP este invalidat. Transferul de date este bidirec"ional. Fiecare comand! spre MC este
urmat! de un r!spuns ecou al MC. Comenzile monitorului sunt:
READ - cite#te o loca"ie de memorie (se trimite cod+2 octe"i de adres! #i se
returneaz! con"inutul loca"iei),
WRITE - scrie o loca"ie de memorie (se trimite cod+2 octe"i de adres!+octetul
de scris)
IREAD - citire indexat!, cite#te urm!torii 2 octe"i din memorie fa"! de ultima
adres! accesat!
IWRITE - scriere indexat!, scrie urm!torii 2 octe"i din memorie fa"! de ultima
adres! accesat!
READSP - cite#te indicatorul de stiv!
RUN - ruleaza program
Viteza de transfer implicit! ntre MC #i calculator este de 4800bps cu pinul PTC3 "inut la 1
n timpul resetului #i 9600bps cu pinul PTC3 "inut la 0 n timpul resetului.

10.2.2.2. Interfe!e "i periferice on chip

a. Porturi paralele I/O

MC 6808 poate gestiona 8 porturi I/O (A,B,C,D,E,F,G,H) cu linii care pot fi
programate ca ie#iri sau intr!ri. Liniile nefolosite trebuie legate la mas! sau la tensiunea de
alimentare pentru a preveni defectarea circuitului prin desc!rc!ri electrostatice sau
consumul excesiv de curent.

Fiec!rui port i corespunde un registru de direc"ie (DDR) prin care se programeaz! sensul
de transfer al pinului. Unele porturi au semnifica"ii duble, dac! liniile lor sunt folosite #i de
alte interfe"e:
portul B poate fi folosit ca 8 linii de intrare n ADC;
portul C este un port de 6 bi"i, bitul 2 se poate folosi pentru a furniza n exterior
ceasul sistemului;
portul D poate avea 2 bi"i folosi"i ca intr!ri pentru temporizator (Bit 6 #i Bit 4);
portul E poate fi folosit ca #i canal SPI #i SCI;
portul F este un port de 7 bi"i care poate fi folosit ca intr!ri/ie#iri pentru
temporizator;
portul G este un port de 3 bi"i, liniile pot fi folosite ca interfa"! pentru tastatur!;
portul H este un port de 2 bi"i, liniile pot fi folosite ca interfa"! pentru tastatur!.

194
b. Convertorul analog digital (ADC)

Convertorul A/D este un convertor pe 8 bi"i cu aproxim!ri succesive care poate face
conversii continuu sau la primirea unei comenzi. Sfr#itul conversiei poate fi semnalizat cu
un bit indicator (flag) sau poate cere o ntrerupere. Ceasul de conversie poate fi selectat. Un
MC are 8 canale de conversie cu intr!ri multiplexate analogic.

Intr!rile pentru ADC se fac pe pinii portului de uz general PTB7-PTB0. Selec"ia canalului
se face pentru a stabili care pin este intrare analogic!. Ceilal"i pini pot fi folosi"i ca intr!ri/
ie#iri de uz general. Dac! valoarea citit! este VREFH, atunci valoarea digital! va fi FFh,
iar dac! este VREFL atunci valoarea digital! va fi 00h. Aceste tensiuni, mpreun! cu
tensiunea de alimentare pentru blocul analogic al MC sunt furnizate din exterior. Schema
bloc a convertorului este dat! n Fig. 10.18.















Registrele ADC sunt:
registru de control #i stare al ADC (ADSCR), care con"ine:
- Bit 7 COCO/IDMAS, conversie complet! sau selec"ie ntrerupere DMA. Dac!
ntreruperile sunt invalidate (AIEN=0), COCO este pozi"ionat de fiecare dat! cnd
se termin! o conversie. n modul de conversie continu! datele se suprascriu n
registrul de date dup! fiecare conversie #i COCO este pozi"ionat doar dup! prima
conversie. Dac! ntreruperile sunt validate (AIEN=1), IDMAS selecteaz! dac!
ntreruperea solicit! #i un transfer DMA.
- Bit 6 AIEN (ADC Interrupt Enable) valideaz! ntreruperile la sfr#itul unei
conversii.
- Bit 5 ADCO (ADC Continous Conversion), dac! este setat se face conversie
continu!.
- Bit4-0 ADCH4-0 selecteaz! unul din cele 8 canale de conversie
registru de date (ADR)
registru de ceas (ADCLK) care con"ine:
- Bit 7-5 ADIV2-0 formeaz! rata de divizare a ceasului de conversie de la ADICLK
(000) la ADICLK/16 (100).
- Bit 4 ADICLK selecteaz! ca ceas de conversie ceasul intern sau un ceas generat de
temporizator.
ADC
Registru de date ADR
Selec"ie
canal
ADSCR
Intr!ri
analogice
Cerere de
ntrerupere
Ceas de conversie
Fig. 10.18. Schema bloc a convertorului analog digital
195
O conversie ncepe dup! scrierea registrului ADSCR. Rezultatul conversiei este stocat n
registrul de date (ADR) #i la terminarea conversiei se pozi"ioneaz! bitul COCO. Dac! se
opteaz! pentru conversie continu!, dup! prima conversie urmeaz! alta, care rescrie
registrul de date. Dac! sunt validate ntreruperile, sfr#itul conversiei poate cere ntrerupere
c!tre UC sau poate face #i o cerere DMA.

c. Interfa"a extern! msCAN08 (Motorola Scalable CAN)

Protocolul CAN a fost definit de BOSCH n 1991 pentru utilizarea pe o magistral!
la autoturisme, unde s! ndeplineasc! condi"ii specifice: procesare n timp real, fiabilitate
ntr-un mediu perturbat #i pre" mic. Caracteristici ale magistralei msCAN08 sunt:
transmisie serial! sincron! cu blocuri ntre 0-8 octe"i;
viteza de transfer pn! la 1MBps;
transferul serial se face pe 2 linii, o intrare (RxCAN) #i o ie#ire TxCAN).
Cuplarea la magistral! nu se face direct, ci prin transceivere care pot suporta un curent
important #i care pot detecta dac! un MC are o linie defect! care ar for"a magistrala la
conectare direct! (Fig. 10. 19.).















O implementare modern! trebuie s! respecte dou! condi"ii:
orice dispozitiv CAN poate s! transmit! un #ir de mesaje f!r! s! elibereze
magistrala ntre mesaje. Arbitrarea magistralei se va face doar dup! ce s-a
terminat transmiterea mesajului.
mesajele sunt astfel organizate nct cel mai prioritar mesaj va fi trimis naintea
celor care stau de mai mult timp n coada de a#teptare.
Aceste cerin"e pot fi ndeplinite cu o schem! de transmisie cu buffere duble. Chiar #i a#a,
unitatea central! nu are ntotdeauna timp s! aranjeze datele n buffer, a#a nct la 6808 s-a
realizat o arhitectur! cu 3 buffere.

Mesajul recep"ionat este stocat ntr-o stiv! FIFO cu 2 nivele. Exist! 2 buffere de recep"ie
de 13 octe"i aranjate ntr-o singur! arie de memorie, astfel nct registrul de date
recep"ionate are o singur! adres!. Registrul RxBG (Background Receive Buffer) prime#te
datele seriale #i le transfer! n RxFG (Foreground Receive Buffer) care poate fi adresat de
unitatea central!. Dac! mesajul recep"ionat este corect (are un identificator valid) se
MC 1
msCAN08


TxCAN RxCAN
MC 2
msCAN08


TxCAN RxCAN
Transceiver Transceiver Magistrala
Fig. 10.19. Cuplarea la magistrala CAN
196
pozi"ioneaz! bitul RxF (Receiver Full Flag) #i se genereaz! o cerere de ntrerupere. n acest
timp n registrul RxBG se recep"ioneaz! un nou cadru. Schema bloc pentru recep"ie #i
transmisie este dat! n Fig. 10.20.





















Pentru a mic#ora num!rul de ntreruperi solicitate UC de c!tre receptor s-a introdus un
filtru de acceptare. Datele msCAN au o anumit! structur!, primii bi"i fiind de identificare a
cadrului #i de adres! a destina"iei. Este posibil ca interfa"a CAN s! verifice ace#ti primi bi"i
#i s! fac! transferul din RxBG n RxFG numai dac! mesajul este destinat acestui MC.

Cnd ambele registre de recep"ie sunt pline #i se recep"ioneaz! date se genereaz! o eroare
de suprascriere. Se abandoneaz! recep"ia noilor caractere, se semnalizeaz! eroarea, dar
transmi"!torul r!mne func"ional.

Transmiterea mesajelor se face cu o structur! de 3 buffere, fiecare de 13 octe"i. Un registru
suplimentar TBPR (Transmit Buffer Priority Register) stabile#te prioritatea mesajelor.
Fiecare buffer de transmisie semnaleaz! UC faptul c! este gol prin pozi"ionarea unui bit
TXE (Transmit Buffer Empty) n registrul de stare CTFLG (CAN Transmitter Flag
Register). Bitul TXE poate cere o ntrerupere pentru ca UC s! poat! renc!rca bufferul de
transmisie care s-a golit. Dac! mai mult de un registru este plin #i gata de transmisie, se
face apel la registrul de priorit!"i pentru arbitrare. Fiecare buffer de transmisie are o zon!
de 8 bi"i (PRIO) n care programul utilizator scrie prioritatea mesajului cnd se transmite
mesajul de la UC (cea mai mic! valoare reprezentnd cea mai mare prioritate).

Dac! se transmite un mesaj cu prioritate mai mare #i se dore#te abandonarea mesajului
curent, se solicit! aceasta cu bitul ABTRQ (Abort Request Flag) n registrul de control al
transmisiei CTCR (Transmission Control Register). Dac! solicitarea de abandonare este
posibil!, interfa"a CAN va pozi"iona bitul ABTAK (Abort Request Acknowledge) #i TXE
pentru a se putea transmite mesajul prioritar.

RxBG
RxFG RxF

Date spre
CPU
RxCAN












TxCAN
Tx0
Tx1
Tx2
TxE 0



Date de
la CPU

TxE 1

TxE 2
PRIO
PRIO
PRIO
Filtru
Fig. 10.20. Schema bloc de receptie, emisie CAN
197
d. Interfa"a cu tastatura

Interfa"a cu tastatura const! n 5 linii independente de intrare n MC care pot
solicita ntreruperi mascabile. Func"ionarea acestei interfe"e este asistat! de urm!toarele
registre:

registrul de stare #i control al tastaturii (KBSCR) con"ine:
- Bit 3 - indicatorul existen"ei unei ntreruperi, KEYF. Bitul este 1 dac! se afl! n
curs de servire o ntrerupere de la tastatur!;
- Bit 2 - confirmare, ACKK. Dac! acest bit este pozi"ionat se #terge bufferul
ntreruperilor de la tastatur!;
- Bit 1 - validarea ntreruperilor de la tastatur!, IMASKK. Dac! acest bit are
valoarea 0 sunt validate ntreruperile;
- Bit 0 - modul de ntrerupere, MODEK. Dac! bitul este 1 se poate cere o
ntrerupere cu un front c!z!tor sau cu un nivel 0 se poate cere o doar cu front
c!z!tor.

registrul de validare a ntreruperilor de la tastatur$ care cu bi"ii
- Bit 4 - Bit 0 valideaz! pinul portului I/O ca cerere de ntrerupere de la tastatur!
sau ca port standard.

10.2.2.3. Programarea memoriei EEPROM

Circuitele din familia 6808 pot avea 512 octe"i de memorie EEPROM care poate fi
#tears! #i renscris! f!r! o tensiune extern! suplimentar!. Memoria programat! poate fi
protejat! mpotriva unor scrieri sau #tergeri accidentale.

Starea unui bit neprogramat este 1 logic. Programarea lui nseamn! trecerea n stare 0.
Programarea pote fi facut! n mod redundant, adic! primii 256 de octe"i s! fie identici cu
urm!torii.

Registrele EEPROM sunt:

registrul de control al EEPROM EEPROM Control Register (EECR):
- Bit 7 EEBCLK, validare ceas intern pentru EEPROM; selecteaz! cesul folosit
pentru programarea EEPROM: ceasul intern sau un oscilator RC intern.
- Bit 5 EEOFF; invalideaz! EEPROM-ul n modurile de lucru cu economie de
energie.
- Bit4, Bit 3 - EERAS 1, EERAS 0; stabilesc opera"ia care se execut! conform
tabelului 10.9.

Tabel 10.9. Programarea opera"iilor n registru de control
EEBPx EERAS1 EERAS0 Opera"ia
0 0 0 Programare de octet
0 0 1 $tergere de octet
0 1 0 $tergere bloc
0 1 1 $tergere global!
1 X X Nu se executa programare/stergere

198
- Bit 2 - EELAT; dac! este setat, comand! memorarea datelor #i adreselelor
pentru scriere iar dac! este 0, se face citire din EEPROM.
- Bit 0 EEPGM; dac! este setat, valideaz! scrierea sau #tergerea. Pozi"ionarea
lui EEPGM trebuie s! fie precedat! n alt pas de pozi"ionarea lui EELAT.

registru EEPROM nevolatil (EENVR):
- Bit 7 EERA, arie redundant!; configureaz! memoria n dou! jum!t!"i
redundante.
- Bit 4 - CON0; stabile#te dac! se valideaz! securitatea memoriei (cu 0) sau nu.
- Bit 3-0 EEBP3-0, bi"i de protec"ie; daca ace#ti bi"i sunt 1, blocul de memorie
este protejat la scriere.

registru de configura"ie a ariei, EEACR se poate citi ceea ce a fost nscris n registrul
EENVR. Din ra"iuni de siguran"! a informa"iei, datele de configurare a EEPROM se scriu
ntr-un registru nevolatil, EENVR. La un RESET, datele din EENVR se scriu ntr-un
registru volatil corespondent (EEACR).

n modul STOP de economie de energie nu se poate face nscrierea sau #tergerea memoriei
EEPROM.

Pentru nscrierea EEPROM se parcurg urm!torii pa#i:
se reseteaz! EERAS1 #i EERAS0 (#i se seteaz! EELAT n EECR)
se scrie octetul n EEPROM
se seteaz! EEPGM
se a#teapt! un timp pentru ca programarea s! poat! fi executat!
se reseteaz! EEPGM
se a#teapt! un timp pentru ca tensiunea de programare s! scad!
se reseteaz! EELAT

O #tergere pe bloc sau global! se face cu bi"ii EERAS ca n tabelul 9.9., orice adres! din
bloc fiind posibil!. mp!r"irea n blocuri este EEBP0 (0800h-087Fh), EEBP1 (0880h-
08FFh), EEBP2 (0900h-097Fh), EEBP3 (0980h-09FFh). n modul redundant EEBP2 #i 3
nu au nici o semnifica"ie.

10.2.3. MC pe 16 bi"i - 6816

Unitatea central! 6816 este o unitate central! cu magistrala de date de 16 bi"i #i o
magistral! de adrese pe 20 de bi"i care permite adresarea a 1Moctet de memorie. UC
con"ine 2 registre acumulator de 16 bi"i #i 3 registre index de 16 bi"i pe lng! registrele
clasice. Unitatea central! poate executa instruc"iuni pe 8 bi"i, pe 16 bi"i sau pe 32 de bi"i.
Toate instruc"iunile de la UC 6811 pot fi executate de 6816, dar cu alt num!r de tacte, deci
cu alt! vitez!. Unitatea central! func"ioneaz! la maximum 16MHz. Tehnologia de
fabrica"ie permite func"ionarea #i la viteze mai mici, chiar n regim static (ca #i celelalte
UC). Unitatea central! con"ine facilit!"i DSP (Digital Signal Processing), fiind posibile
nmul"iri cu numere frac"ionare. UC permite 10 tipuri de adresare, din care 6 sunt preluate
de la 6811.

199
Pentru p!strarea compatibilit!"ii, registrul PC #i indicatorul de stiv! sunt de 16 bi"i, dar
apare un registru nou, numit K, ce re"ine extensiile de la 16 bi"i la 20 de bi"i pentru
registrul PC #i SP. n structura UC mai apar #i registrele pentru nmul"iri, 2 registre de 16
bi"i (H #i I) #i unul de 36 de bi"i pentru rezultat (MAC).

Pentru comunica"ia ntre MC sau pentru adresarea memoriei externe s-a standardizat un
bus extern, numit IMB (Intermodule Bus), cu 16 linii de date #i 24 linii de adres!, la care s-
a aliniat #i 6816. Acest bus este de tip asincron, permi"nd transfer pe 8 sau 16 bi"i n urma
unui protocol (handshake).

10.2.3.1. Modulul de integrare (SIM, System Integration Module)

Acest modul, ap!rut de la 6811, grupeaz! blocurile care controleaz! sistemul #i cuprinde:

configurarea sistemului #i protec"ie:
- un monitor de bus, care reseteaz! sistemul dac! apar cicluri de bus mai
lungi de 8-64 tacte de ceas sistem;
- un monitor de HALT, care pozi"ioneaz! un bit n registrul de stare al
RESET-ului cnd a ap!rut o instruc"iune de HALT pe bus;
- un monitor de ntreruperi care supravegheaz! apari"ia unei arbitr!ri n
timpul unui ciclu de ntrerupere;
- un ceas de gard! (watch dog);
modul pentru sintetizarea ceasului; poate fi realizat! din mai multe surse, dintr-
o surs! intern! cu ajutorul unei bucle PLL, dintr-o surs! extern! cu ajutorul
buclei PLL sau direct dintr-o surs! extern!.
Modul de formare a bus-ului extern
Modul de test

10.2.3.2. Interfe!e


Interfe"ele seriale sunt grupate sub forma unui modul serial cu coad! de a#teptare
(QSM Queued Serial Module) care con"ine o interfa"! serial! SPI #i una SCI. Coada de
a#teptare este format! n RAM #i are dimensiunea de 16 cuvinte de 8-16 bi"i fiecare.
Transmisia acestui #ir de date poate fi executat! automat, f!r! interven"ia unit!"ii centrale.
Modulul QSM este cuplat pe bus-ul IMB.

Convertorul analog numeric (ADC) este un convertor cu aproxima"ii succesive cu rezolu"ia
programabil! de 8-10 bi"i, cu 8 canale multiplexate. Convertorul este conectat pe bus-ul
IMB.

Pentru date importante (cum ar fi cele din stiv!) exist! o memorie RAM static de 1K octet
care la c!derea tensiunii de alimentare este alimentat! de la un pin special, unde se poate
conecta o baterie.

Timerul are 11 canale, din care 2 sunt folosite pentru generarea semnalelor PWM.

Circuitul este capsulat n capsule de 132 sau 144 pini.

200
Schema bloc a circuitului este dat! n Fig. 10.21.

























10.2.4. MC pe 32 de bi"i - 68300

MC 68300 este asem!n!tor arhitectural cu MC pe 16 bi"i. n jurul UC sunt grupate
pe magistrala IMB un modul de integrare, un convertor analog digital cu 8 canale, un
modul de comunica"ie serial! cu coad! de a#teptare (QSM), 512 octe"i RAM static, 3,5K
octe"i RAM care pot fi folosi"i #i de timer (TPURAM), un modul de timp (TPU, Time
Processor Unit), pn! la 6 porturi I/O de uz general #i 2 module flash EEPROM.

Ceasul intern al sistemului este de maximum 16MHz.

Unitatea central! CPU32 este compatibil! soft cu procesoarele din familia 68000. Ea
con"ine 16 registre generale de 32 de bi"i cu care se poate lucra pe 8, 16 sau 32 de bi"i, un
PC de 32 de bi"i, un SP de 32 de bi"i, un registru de stare #i alte registre.

Circuitul de timp este o unitate microprogramat! care poate lucra separat de UC, #i care
con"ine propriul RAM. Temporizatorul este format din 16 canale independente. Fiecare
poate executa o func"ie de timp #i poate fi programat independent.

Memoria flash EEPROM serve#te la stocarea nevolatil! a informa"iilor cum ar fi rutine ale
sistemului de operare sau date care sunt apelate frecvent. Memoria EEPROM este foarte
rapid!, ea poate r!spunde n 4 tacte. MC este echipat cu 2 module de flash EEPROM, unul
de 16K octe"i #i unul de 48K octe"i. Memoria EEPROM poate fi configurat! pentru a lucra
n modul bootstrap. Memoria EEPROM poate fi #tears! doar neselectiv (n ntregime) #i
are nevoie de o alimentare special!.
Unitatea central!
6816
Memorie SRAM
(1024 octe"i)
Magistral! de date #i
adrese IMB
QSM
(SCI, SPI)
Port C
Timer

Port E
Port F
Port ADC
SIM
IMB
Port QS Port GP
PWM
Fig. 10.21. Schema bloc MC 6816
201
10.2.5. Date comparative pentru MC Motorola CISC

Tabelul 10.10. arat! principalele performan"e, comparativ, pentru MC din familia Motorola:

Tabel 10.10. Tabel comparativ pentru MC Motorola - CISC
MC Magistrala de
date
Frecven"a
(MHz)
Linii I/O Interfe"e speciale Pre" (USD)
6805 8 2 31 6 1.9
6808 8 8 48 6 2.1
6816 16 16 48 6 8.25
68300 32 16 48 6 17.5

9.3. FAMILIA MCS-51 (MC cu arhitectur$ CISC)

8051 a fost propus de INTEL n a doua genera"ie de MC #i este cel mai folosit #i cel
mai bine vndut MC din lume. n 1976 Intel a prezentat familia de microcontrollere
MCS48 care este compus! din 8048, 8748 #i 8035. A ap!rut astfel pentru prima dat! pe
pia"! un microcalculator complet pe un singur chip. MC includea o unitate central! pe 8
bi"i, memorie ROM sau EPROM de 1024x8bi"i, RAM 64x8 bi"i, porturi I/O #i timere. n
etapa a doua, INTEL a lansat familia MCS51 format! din MC 8051, 8751 #i 8031. INTEL
recomand! ca punerea la punct a aplica"iei s! fie realizat! pe MC 8751 care este prev!zut
cu memorie EPROM (4K octe"i). Memoria poate fi programat! cu orice programator, dar
se recomand! utilizarea programatorului de la INTEL (UPP, Universal PROM
Programmer). Pentru produse n serie mare se recomand! 8051, care are memorie ROM,
programat! de furnizor la comanda beneficiarului #i care revine la un pre" de cost mult mai
mic. MC 8031 nu con"ine ROM, dar se poate ata#a n exterior ROM, PROM sau EPROM,
direct sau multiplexat.

8051 este un MC foarte puternic #i u#or de programat. Ca dovad!, n tabelul 10.11. se
prezint! modelele oferite de diferi"i furnizori, echivalente cu 8051:

Tabel 10.11. Modele echivalente 8051 oferite de diferi"i produc!tori
Varianta Num$r
pini
Produc$tor RAM Mem.
program
Observa"ii
MCS251 40 Intel 1K 16K 16 bit 80x51
80C509L 100qf Siemens 256 64Kx ALU,PWM,CC,2UART,10bA/D
80C517A 84 Siemens 256 64Kx ALU,8PWM,CC,2UART,10bA/
D
80C537A 84 Siemens 256 32K ALU,8PWM,CC,2UART,10bA/
D
80537 84 Siemens 256 64Kx ALU,8PWM,CC,2UART,8bA/D
80517 84 Siemens 256 8K ALU,8PWM,CC,2UART,8bA/D
73D2910 100qfp SSI 256 128Kx 80C52+Ports+HDLC
80C535A 68 Siemens 256 64Kx 10bA/D
80CE558 80qfp Philips 256 64Kx Enhanced 80C552, i2c
80C515A 68 Siemens 256 32K 10bA/D
80535 68 Siemens 256 64Kx Timer2CaptComp, 6 port
8/10bA/D
202
Varianta Num$r
pini
Produc$tor RAM Mem.
program
Observa"ii
80515 68 Siemens 256 8K Timer2CaptComp 4 port 8b A/D
80C535 68 Siemens 256 64Kx Timer2CaptComp 5 port 8b A/D
80C51GB 68 Intel 256 64Kx 8051FA+PCA, 8bA/D
87C51GB 68 Intel 256 8K 8051FA+PCA, 8bA/D
80C592 68 Philips 256 64Kx 552-i2c+CAN+XRAM
87C592 68 Philips 256 16K 552-i2c+CAN+XRAM
87C598 80 Philips 256 32K 552-i2c+CAN+XRAM
80C552 68 Philips 256 64Kx 10bA/D, i2c, CC,PWM
87C552 68 Philips 256 8K 10bA/D, i2c, CC,PWM
80C562 68 Philips 256 64Kx 8bA/D, i2c, CC,PWM
SABC505C 44 Siemens 256 64Kx 8bA/D,XRAM,CAN
SABC504 44 Siemens 256 64Kx 10bA/D,XRAM
87C451 68 Philips 128 4K 7port, 1 Handshake
80C451 68 Philips 128 64Kx 7port, 1 Handshake
87C453 68 Philips 256 8K 7port, 1 Handshake
83CL580 56,64 Philips 256 6K LV 8052+ADC+i2c+WDOG
80C320 40 Dallas 256 64Kx FAST, 2UART
80C310 40 Dallas 256 64Kx Simpler 80C320
87C520 40 Dallas 256 16K 16K OTP enhanced 80C320
80C51FX 40 Intel 256 64Kx 80C58i+PCA
87C51FA 40 Intel 256 8K 8052+PCA,Enh (autovehicule)
87C51FB 40 Intel 256 16K 8052+PCA,Enh(autovehicule)
87C51FC 40 Intel 256 32K 8052+PCA,Enh(autovehicule)
8XC51FB 40 Philips 256 16K 87C51FB
87C51FXL 40 Intel 256 32K 3.3v 80C51FC
80C152JD 68 Intel 256 64Kx HDLC/SDLC
80C152 48 Intel 256 64Kx HDLC
8044 40 Intel 192 64Kx
80C575 40 Philips 256 64Kx 8052+PCA,AnalogComp,WDO
G
87C575 40 Philips 256 8K 8052+PCA,AnalogComp,WDO
G
80C576 40 Philips 256 8K 8052+PCA,UPI,A/D,PWM,WD
OG
87C576 40 Philips 256 8K 8052+PCA,UPI,A/D,PWM,WD
OG
SABC501 40 Siemens 256 64Kx 40MHz
SABC502 40 Siemens 256 64Kx 8052+XRAM+WDog
80C528 40 Philips 256 64Kx 8052+Wdog,
87C528 40 Philips 256 32K 8052+Wdog,
89CE528 44 Philips 256 32KF Flash
87C524 40 Philips 256 16K 16K 87C528
80C550 40 Philips 128 4K 8b AD WDog
80CL781 40 Philips 256 64Kx LV 8052, WDog
83CL781 40 Philips 256 16K LV 8052, WDog
203
Varianta Num$r
pini
Produc$tor RAM Mem.
program
Observa"ii
80CL782 40 Philips 256 64Kx LV, faster 781
89S8252 40.44 Atmel 256 10K FLASH 8k, WDog
89C55 40.44 Atmel 256 20KF FLASH,fast, LV
89C52 40.44 Atmel 256 8KF FLASH,
87C54 40 Intel 256 16K 16K 87C52i
87C58 40 Intel 256 32K 32K 87C52i
87C52 40 Intel 256 8K 8052
80C154 40 Matra 256 64Kx Enhanced 8052
83C154D 40 Matra 256 32K Enhanced 8052
83C154 40 OKI 256 16K Enhanced 8052
80C654 40 Philips 256 64Kx i2c
87C652 40 Philips 256 8K i2c
87C654 40 Philips 256 16K i2c
83CE654 44qfp Philips 256 16K i2c,
DS5000 40 Dallas 128 32KR 80x51
DS2250 40sim Dallas 128 32K in capsula SIMM,
DS5001 80qfp Dallas 128 64Kx Enhanced DS5000
80C851 40 Philips 128 64Kx 8051+256B EEPROM
83C852 6 Philips 256 6K ALU,2K EEPROM
8052 40 All 256 64Kx 8051+Timer2
8752 40 Intel 256 8K 8051+Timer2
80C52 40 Siemens 256 64Kx 8051+Timer2,(construit #i de
Philips, Oki, Matra)
88SC54C 8 Atmel 256 64Kx 8052
80CL410 40 Philips 128 64Kx LV, i2c
80CL31 40 Philips 128 64Kx LV, 8051
80CL610 40 Philips 256 64Kx LV,i2c
83CL411 40 Philips 256 64Kx 80CL31
89C51 40.44 Atmel 128 4KF FLASH,Fast,LV 87C51
8751 40 All 128 4K Core proccessor, UART,
Tmr0+1
87C51 40 All 128 4K Core proccessor, UART,
Tmr0+1
8031 40 All 128 64Kx Core proccessor, UART,
Tmr0+1
8051 40 All 128 4K Core proccessor, UART,
Tmr0+1
80C31L 40 Matra 128 64Kx LV 8051
87C752 28 Philips 64 2KE 87751+A/D, PWM
87C749 28 Philips 64 2KE 87C752,i2c
87C751 24 Philips 64 2KE Small size, i2c
87C748 24 Philips 64 2KE 87C751 i2c
87C750 24 Philips 64 1KE Small
89C2051 20 Atmel 128 2KF 20Pin 89C51
89C1051 20 Atmel 64 1KF 20Pin 2051, UART, Tmr
204

PCA- arie programabil! de num!r!toare (programmable counter array)
LV- tensiune redus! 3,3V (low voltage)
PWM- modularea impulsurilor n l!"ime (pulse width modulation)
CC- intrare #i comparare (capture/compare)
UPI- Interfa"a universal! I/O (Universal Peripheral Interface (Philips))
i2c- Interfa"a I
2
C (Philips)
Tmr- circuit de timp (timer)
Small- capsul! de mici dimensiuni
Capsule: dip- Dual In Line Package
pqfp- Plastic Quad Flat Pack
lcc- Plastic Leaded Chip Carrier

10.3.1. Structura #i func"ionarea

Schema bloc intern! este dat! n Fig. 10.22.






















Unitatea central! este o unitate aritmetic! #i logic! pe 8 bi"i care con"ine urm!toarele
registre:
acumulator A - 8 bi"i;
registrul de stare PSW (Program Status Word) - 8 bi"i;
registrul B (8 bi"i) folosit n opera"iile de nmul"ire #i mp!r"ire;
indicatorul de stiv! (Stack Pointer) - 8 bi"i;
un registru num!r!tor de date (DPTR Data Pointer) - 16 bi"i - care poate fi
manipulat #i ca 2 registre de cte 8 bi"i (DPH #i DPL) #i serve#te ca baz! n salturi
indirecte sau n transferuri externe;
num!r!torul de program (PC Program Counter) - 16 bi"i.
Unitatea central!
Magistral! de date
Acumulator A
Ind. Stiv! SP
Nr. program PC
Generator de
tact
Timer
Adrese
Interf.
Serial!
Controller de
ntreruperi
Fig. 10.22. Schema bloc a unui MC 8051
ROM
(EPROM)
RAM
P0 P1 P2 P3
205
Memoria pentru program (ROM) este separat! #i distinct! de memoria pentru date, are alte
mecanisme de adresare #i alte semnale de comand!. MC poate lucra att cu memoria pe
chip ct #i cu memorie extern!; exist! astfel posibilitatea de a m!ri capacitatea memoriei de
lucru. Memoria extern! este adresat! automat dac! adresa din instruc"iune este n afara
zonei de memorie intern!.

Familia 8051 are 32 de linii I/O, configurate ca 4 porturi de 8 bi"i. Fiecare linie poate fi
programat! individual ca linie de intrare, de ie#ire sau bidirec"ional!. Unele linii au
semnifica"ii alternative. Portul 0 este folosit #i ca magistral! multiplexat! de adrese #i date,
iar pentru transferuri care au nevoie de adrese de 16 bi"i, se folose#te portul P2 pentru
octetul cel mai semnificativ de adres!. Liniile portului 3 sunt folosite ca cereri de
ntrerupere (2 linii), intr!ri/ie#iri pentru timer (4 linii) #i linii seriale (2).

8051 are 2 timere de 16 bi"i, fiecare poate fi programat separat. Timerele pot fi utilizate
pentru a m!sura intervale de timp, pentru a determina lungimea unor impulsuri, ca
num!r!toare, etc. Rezolu"ia este de 1s, intervalul maxim de timp fiind de 65,536ms.

Portul serial UART este un port serial full duplex cu rata de transfer pn! la 31Kbaud.
Portul serial poate fi folosit att pentru comunica"ii cu echipamente periferice ct #i
comunica"ii ntre circuite.

Controllerul de ntreruperi admite ntreruperi de la 5 surse:
de la portul serial (dac! s-a transmis sau recep"ionat un caracter);
de la timere (cnd s-a nregistrat o dep!#ire);
de la 2 pini de intrare.
Fiecare surs! poate fi validat! sau invalidat! individual. Prioritatea poate fi programat!.
Fiecare surs! are asociat! o adres! n memoria program (tabelul 10.12.).
Tabel 10.12. Adresele de salt pentru ntreruperi
Sursa de
ntrerupere
Adresa de salt
RESET 0000h
Extern 0 0003h
Timer 0 000Bh
Extern 1 0013h
Timer 1 001Bh
Port serial 0023h

10.3.1.1. Descrierea semnalelor la pini

Vcc- tensiunea de alimentare, +5V;
Vss- mas!;
PORT 0
*
- este un port pe 8 bi"i bidirec"ional cu drena n gol. Este port de date #i adrese
(octetul cel mai pu"in semnificativ) pentru memoria extern!. De asemenea portul 0
prime#te octe"ii pentru programarea EPROM-ului intern iar n timpul verific!rii
programului din EPROM, datele pot fi citite tot prin portul 0.

*
Ie#irile sunt bufferate #i pot suporta pn! la 4 intr!ri LS TTL. Pinii programa"i ca ie#iri n stare HIGH pot fi
folosi"i ca intr!ri. Ca pini de intrare, dac! au fost for"a"i n LOW din exterior, ace#tia furnizeaz! curent.

206
PORT 1*- este un port pe 8 bi"i bidirec"ional, cu drena n gol. n timpul program!rii #i
test!rii EPROM-ului, la portul 1 se stabile#te octetul cel mai pu"in semnificativ de adres!.
Pinii P1.0/T2 #i P1.1/T2X au func"ii duble. Astfel T2 este intrare extern! n Timerul 2 iar
T2X este intrarea de comand! a unei capturi n Timerul 2.
PORT 2*- este un port de 8 bi"i bidirec"ional. n timpul program!rii #i test!rii EPROM-
ului la portul 2 se stabile#te octetul cel mai semnificativ de adres!. Pentru adresarea
memoriei externe pe 16 bi"i portul 2 genereaz! partea mai semnificativ! a octetului de
adres!. La adresare memoriei externe pe 8 bi"i portul 2 este registrul cu func"ii speciale P2.
PORT 3*- este un port de 8 bi"i bidirec"ional. Pinii portului 3 au semnifica"ie alternativ!
(tabelul 10.13.).
Tabel 10.13. Semnifica"ia dubl! a pinilor de la PORT 3
Pin Semnifica"ie
P3.0 RXD-intrare serial! a porului pentru recep"ie
P3.1 TXD-ie#ire serial! a portului pentru emisie
P3.2 /INT0-ntrerupere extern! pentru Timer 0
P3.3 /INT1-ntrerupere extern! pentru Timer 1
P3.4 T0-intrare extern! n Timer 0
P3.5 T1-intrare extern! n Timer 1
P3.6 /WR-strob pentru scrierea memoriei de date extern!
P3.7 /RD-strob pentru citirea memoriei de date extern!

RST este o intrare de RESET. Dac! semnalul de intrare r!mne n HIGH pe perioada a doi
cicli ma#in! n timp ce oscilatorul func"ioneaz!, are loc ini"ializarea MC.
ALE/PROG ALE (Address Latch Enable) valideaz! octetul cel mai pu"in semnificativ de
adres! n timpul accesului la memoria extern! (PORT0). PROG este semnal de intrare
pentru impulsul de programare n timpul program!rii EPROM-ului.
/PSEN (Program Store Enable) valideaz! citirea programelor din memoria program
extern!. Nu se activeaz! la citirea datelor din memoria extern! de date.
/EA/VP /EA (External Acces Enable) valideaz! n stare HIGH memoria program intern!,
iar n stare LOW valideaz! memoria program extern!. La VP se aplic! tensiunea de 21V n
timpul program!rii EPROM-ului.
XTAL1, XTAL2 se conecteaz! cristalul de cuar" sau un oscilator extern.

10.3.1.2. Gestionarea memoriei

MC8051 au spa"ii diferite de adresare pentru memoria program #i memoria de date.
Spa"iul maxim de adresare este de 64K att la memoria program ct #i la cea de date. Un
extras din datele de catalog arat! tipurile #i dimensiunea memoriei pentru diferite circuite
din familie (tabel 10.14.).
Tabel 10.14. Echiparea cu memorie a diferitelor circuite 8051
MC Memorie intern$ de
program
Memorie intern$ de
date
8031AH - 128bytes RAM
8051AH 4Kx8 ROM 128bytes RAM
8751H 4Kx8 EPROM 128bytes RAM
8032AH - 256bytes RAM
8052AH 8Kx8 ROM 256bytes RAM
8752BH 8Kx8 EPROM 256bytes RAM
207
a. Gestionarea memoriei de date (RAM)

Memoria intern! este mapat! n spa"iul de adresare 00H - FFH (256bytes). n zona
80H -FFH sunt registrele speciale (SFR) care sunt adresabile direct. Zona 00H-7FH poate
fi adresat! direct sau indirect. Memoria extern! se afl! ntre adresele 0000H-FFFFH.
Validarea folosirii memoriei de date se realizeaz! cu semnalele /RD #i /WR. Aceste
semnale (/RD #i /WR) se folosesc #i pentru selec"ia datelor din portul 0, unde datele sunt
multiplexate cu adresele. Adresele sunt validate cu semnalul ALE. Informa"ia poate fi
accesat! cu adresare pe 8 sau pe 16 bi"i.

b. Gestionarea memoriei program (ROM, EPROM)

Se poate folosi memoria ROM intern! (/EA n stare HIGH) sau cea extern! (/EA n
stare LOW). Strobul pentru citirea memoriei externe este semnalul /PSEN. Toate citirile se
fac cu adresare pe 16 bi"i.

10.3.1.3. Circuitele timer

MC 8051 are 2 num!r!toare de 16 bi"i, iar 8052 3 num!r!toare. n modul de
func"ionare ca temporizator registrul este incrementat la fiecare ciclu cu un impuls la 1/12
din frecven"a oscilatorului. n modul de func"ionare ca num!r!tor, registrul este
incrementat la fiecare tranzi"ie din 1 n 0 la pinul extern corespunz!tor T0, T1 #i T2. Rata
maxim! de num!rare este 1/24 din frecven"a oscilatorului.

Programarea func"ion!rii timer-elor se face cu registrul TMOD din SFR, cu structura:
pentru num!r!torul 1: GATE1, C/-T1 - M11, M01,
pentru num!r!torul 2: GATE2, C/-T2 - M12, M02, unde:
GATE - gestioneaz! controlul. Cnd GATE=1, timer-ul este activat doar ct timp
pinul /INT corespunz!tor este n HIGH #i #i bitul TR din registrul SFR
(TCON) este 1.
C/-T - selecteaz! operarea ca timer (LOW) sau counter (HIGH)
Tabel 10.15. Programarea modului de operare cu bi"ii M0 si M1
M1 M0 Modul de operare
0 0 Timer pe 13 bi"i (Mod 0)
0 1 Timer/Counter pe 16 bi"i (Mod 1)
1 0 TL0 este timer/counter pe 8 bi"i #i TH0 este timer pe 8 bi"i (Mod 2)
1 1 Timer/Counter 1 oprit (Mod 3)

Semnifica"ia bi"ilor din registrul special TCON este:
TF1, TR1, TF0, TR0, IE1, IT1, IE0, IT0, unde:
TF0, TF1- indicatorul de dep!#ire al timer-ului 0, respectiv 1. Este setat la dep!#ire
ca num!r!tor sau teporizator #i este resetat cnd se apeleaz! rutina de
ntrerupere a timerului corespunz!tor;
TR0, TR1-este setat sau resetat pentru a porni sau pentru a opri num!r!toarele/
temporizatoarele;
IE0, IE1 - indicator de activare a ntreruperii pe front;
IT0, IT1 - controlul activ!rii ntreruperii (pe nivel IT=0, sau pe front IT=1).

208
Pentru MC care au al treilea timer exist! registrul T2CON cu structura:
TF2, EXF2, RCLK, TCLK, EXEN2, TR2, C/-T2, CP/RL2, unde:
TF2 - indicator de dep!#ire;
EXF2 - indic! apari"ia unui eveniment la pinii de control extern;
RCLK - cnd este setat, portul serial folose#te ca #i tact de recep"ie semnalul de
dep!#ire generat de timerul 2;
TCLK - cnd este setat, portul serial folose#te ca #i tact de emisie semnalul de
dep!#ire generat de timerul 2;
EXEN2- indicator de activare extern!;
TR2 - porne#te/ opre#te timerul 2
C/-T2 - selecteaz! func"ionarea ca timer sau num!r!tor;
CP/RL2- indicator pentru memorare.

10.3.1.4. Interfa!a serial# UART

Portul serial este de tip asincron, full-duplex. Portul serial poate opera n 4 moduri:

Modul 0: datele seriale sunt transferate n ambele sensuri prin RXD. TXD furnizeaz!
ceasul de transmisie. Rata transferului este 1/12 din frecven"a de oscila"ie.
Modul 1: transmisie asincron!, se transmit date prin TXD, se recep"ioneaz! prin RXD n
formatul 1 bit de start, 8 bi"i de date, 1 bit de stop, cu rata de transfer variabil!
(programabil!) cu un timer.
Modul 2: ca la modul 1, dar se transmite #i un al 9-lea bit de date care poate fi bitul de
paritate, cu rata de transfer egal! cu frecven"a oscilatorului divizat! cu 32 sau cu 64.
Modul 3: ca la modul 2, cu rata de transfer variabil! (programabil!) cu un timer.

Registrul de control al portului serial SCON (din registrele SFR):
SM0, SM1, SM2, REN, TB8, RB8, TI, RI;

SM0, SM1 programeaz! modul de lucru al portului serial conform tabelului 10.16.

Tabel 10.16 Programarea modului serial cu bitii SM0 si SM1
SM0 SM1 Mod
0 0 Mod 0
0 1 Mod 1
1 0 Mod 2
1 1 Mod 3

SM2 - activeaz! posibilitatea de lucru multiprocesor n modurile 2 #i 3, prin
transmisia bitului special 9;
REN - activare/ dezactivare recep"ia;
TB8 - al 9-lea bit ce se transmite n modurile 2 #i 3;
RB8 - al 9-lea bit ce se recep"ioneaz! n modurile 2 #i 3;
TI - indicator de ntrerupere a transmisiei;
RI - indicator de ntrerupere a recep"iei.




209
10.3.1.5. Sistemul de ntreruperi

MC 8051 dispun de 5 nivele de ntrerupere, iar 8052 de 6 nivele. Exist! 2 surse
externe, INT0 #i INT1, care pot fi active pe nivel sau pe front n func"ie de bi"ii IT0 #i IT1
din registrul special TCON. Indicatoarele de ntrerupere sunt bi"ii IE0 #i IE1 care se seteaz!
automat cnd apare o ntrerupere #i se reseteaz! cnd s-a ncheiat tratarea ntreruperii.

ntreruperile generate de timere sunt date de bi"ii TF0 #i TF1 din registrul TCON. Ace#ti
bi"i sunt seta"i cnd apare o dep!#ire n num!r!toarele/temporizatoarele 0 #i 1. ntreruperea
pentru timerul 2 va fi generat! de un SAU ntre TF2 #i EXF2. Rutina de servire a
ntreruperii va determina care dintre ace#ti bi"i a cerut ntrerupere prin citirea registrului
T2CON.

ntreruperea de port serial este generat! de un SAU logic ntre RI #i TI. . Rutina de servire
a ntreruperii va determina care dintre ace#ti bi"i a cerut ntrerupere prin citirea registrului
SCON.

Fiecare din sursele de ntrerupere pot fi activate sau dezactivate prin setarea sau resetarea
unui bit din registrul SFR numit IE, cu structura:

EA, X, ET2, ES, ET1, EX1, ET0, EX0, unde:
EA - dezactiveaz! toate ntreruperile cu IE=0. Cu IE=1 sunt validate ntreruperile
#i se pot masca individual;
ET2 - mascare ntrerupere pentru timer-ul 2;
ES - mascare ntrerupere port serial;
ET1 - mascare ntrerupere timer 1;
EX1 - mascare ntrerupere extern! INT1;
ET0 - mascare ntrerupere timer 0;
EX0 - mascare ntrerupere extern! INT0.

ntreruperilor pot fi tratate conform unei ierarhii implicite sau nivelul priorit!"ilor poate fi
programat n registrul SFR numit IP.

priorit!"i implicite:
IE0 (cea mai mare prioritate), TF0, IE1, TF1, RI+TI, TF2+EXF2.

structura registrului IP:
X, X, PT2, PS, PT1, PX1, PT0, PX0, unde:
PT2 - stabile#te nivelul de prioritate pentru ntreruperea timerului 2;
PS - stabile#te nivelul de prioritate pentru ntreruperea portului serial;
PT1 - stabile#te nivelul de prioritate pentru ntreruperea timerului 1;
PX1 - stabile#te nivelul de prioritate pentru ntreruperea extern! 1;
PT0 - stabile#te nivelul de prioritate pentru ntreruperea timerului 0;
PX0 - stabile#te nivelul de prioritate pentru ntreruperea extern! 0.

Nivelul priorit!"ii poate fi programat n HIGH sau LOW. O ntrerupere LOW poate fi
ntrerupt! de o ntrerupere LOW dar nu poate fi ntrerupt! de o ntrerupere HIGH. O
ntrerupere HIGH nu poate fi ntrerupt!.

210
10.3.1.6. Operarea cu economie de energie

8051 are dou! moduri de operare cu putere redus!; modul inactiv (Idle) #i modul cu
tensiune sc!zut! (Power Down).

n modul inactiv oscilatorulfunc"ioneaz!, dar nu se execut! nici o instruc"iune. Timerele #i
portul serial func"ioneaz! #i orice ntrerupere de la ele readuc circuitul n stare normal!. Un
RESET hardware readuce circuitul n stare normal!. Starea CPU se p!streaz! n ntregime:
indicator de stiv!, Program Counter, registre etc.

n modul cu tensiune sc!zut! oscilatorul intern este oprit #i toate func"iile sunt oprite. Se
p!streaz! doar RAM-ul intern #i registrele speciale. Singura modalitate de a ie#i din aceast!
stare este prin RESET hardware. n aceast! stare tensiunea de +5V poate fi redus!.

Modurile de operare cu economie de energie pot fi comandate prin registrul SFR PCON,
care are structura: PD, IDL unde:
PD - bit pentru modul cu tensiune sc!zut!;
IDL - bit pentru modul inactiv.

10.3.1.7. Formarea unor semnale externe

RESET-ul se comand! pe intrarea RST a MC. Con"inutul registrelor speciale SFR
va fi adus la 00H, cu excep"ia SBUF care va fi nedeterminat #i PCON care va fi
0XXX0000 n binar. RAM-ul intern nu este afectat. La pornirea sistemului se poate realiza
un RESET automat cu un montaj ca n Fig. 10. 23.








Ca #i generator de tact se poate folosi oscilatorul intern la intr!rile X1 #i X2, ca n
Fig.10. 24.










Circuitul poate fi folosit #i cu un tact extern, legnd X2 la mas!, iar la X1 se leag! un
oscilator extern.


RST
VCC
R (4-10K)
C (10)
Fig. 10.23. Circuit pentru formarea semnalului
RESET
X1
X2
Fig. 10.24 Circuit pentru folosirea generatorului
intern de tact
211
10.3.1.8. Programarea EPROM-ului intern

Pentru a fi programat circuitul trebuie s! fie alimentat #i s! aib! cuplat generatorul
de tact pentru c! transferul de date se face prin bus-ul intern al circuitului. Adresa pentru
EPROM-ul de programat trebuie s! fie aplicat! la portul 1 #i pinii P2.0-P2.3 ai portului 2,
iar octetul de date de programat se aplic! la portul 0. Ceilal"i pini ai portului 2, precum #i
semnalele RST, /PSEN, /EA/Vpp trebuie s! aib! urm!toarele nivele (tabel 10.16).

Tabel 10.16. Condi"ii pentru opera"iile de programare, verificare, setare bit siguran"!
Opera"ia RST /PSEN ALE /EA/Vpp P2.7 P2.6
Programare 1 0 impuls la 0 pentru 50ms Vpp 1 0
Verificare 1 0 1 1 0 0
Setarea bitului de
siguran"!
1 0 impuls la 0 pentru 50ms VPP 1 1

Semnalul ALE este un impuls la 0 pentru 50 ms pentru a efectua programarea. Tensiunea
Vpp este de +21V pentru 8751H #i de -12,75V pentru 8752BH (A se consulta cu aten"ie
foile de catalog). Sursa de tensiune pentru Vpp trebuie s! fie foarte bine filtrat! #i
stabilizat! deoarece chiar #i un mic impuls de tensiune poate produce v!t!marea circuitului.
Verificarea programului se poate face dac! bitul de siguran"! nu a fost programat. Citirea
se face n acelea#i condi"ii ca #i scrierea, cu excep"ia lui ALE care este 1, /EA este 1, iar
strobul de citire este P2.7. Pentru a nu se putea citi neautorizat con"inutul EPROM-ului se
programeaz! un a#a numit bit de siguran"! care odat! programat nu mai permite nici un
acces electric la memoria EPROM. Odat! programat, acest bit se poate #terge doar prin
#tergerea ntregii memorii EPROM.

$tergerea EPROM-ului se poate face la lumin! ultraviolet! (2537Angstrom), cu cel pu"in
15W.sec/cm
2
, adic! o expunere de 20-30 min. la distan"a de 2-3cm la o lamp! de
ultraviolete cu 12W/cm
2
.

Programarea rapid! (Quick Pulse Programming) poate fi aplicat! la circuitele 875XBH, #i
are ca rezultat posibilitatea program!rii unui circuit n numai 25 secunde. Programarea se
poate face cu o tensiune Vpp mai mic! (12,75V). Semnalul ALE are forma unor impulsuri
multiple, 25 de impulsuri de 100 s.

10.3.2. Programarea MC din familia MCS-51

8051 are 111 instruc"iuni din care 64 sunt de un singur ciclu.

10.3.2.1. Setul de instruc!iuni 8051

Instruc"iuni pentru transferul de date:
Transferuri generale:
MOV - efectueaz! un transfer pe bit sau pe octet de la surs! la destina"ie.
PUSH - incrementeaz! registrul SP (Stack Pointer) #i transfer! un octet de la surs!
la loca"ia din stiv! adresat! de SP.
POP - transfer! un operand pe un octet de la loca"ia din stiv! adresat! de SP la
destina"ie #i decrementeaz! SP.
212
Transferuri specifice acumulatorului:
XCH - mut! octetul din surs! n acumulator.
XCHD - mut! bi"ii LOW din octetul din surs! n acumulator.
MOVX - mut! un octet ntre memoria extern! de date #i acumulator. Adresa
memoriei de date extern! poate fi specificat! n registrul dublu DPTR.
MOVC - se cite#te un octet din memoria extern! de program n acumulator.

Transferuri de adrese:
MOV DPTR, #data, ncarc! imediat 16 bi"i de date n registrul dublu DPTR.

Instruc"iuni aritmetice:
Adunare:
INC - adun! operandul cu 1 #i pune rezultatul ca nou operand.
ADD - adun! acumulatorul cu operandul surs! #i pune rezultatul n A.
ADDC - adunare ca la ADD dar se adun! #i bitul CY (Carry) din PSW.
DA - ajustare zecimal!, corecteaz! suma care rezult! din adunarea a doi
operanzi zecimali cu maxim 2 cifre.

Sc!dere:
SUBB - sc!dere cu mprumut, scade operandul din acumulator, apoi scade CY #i
pune rezultatul n A.
DEC - scade 1 din operand #i pune rezultatul ca nou operand.

nmul"ire:
MUL - execut! o nmul"ire f!r! semn ntre acumulator #i registrul B, rezultatul
ob"inut fiind pe 2 octe"i (octetul cel mai semnificativ se pune n B). Dac!
to"i bi"ii din octetul cel mai semnificativ al rezultatului sunt 0 bitul OV #i
CY din PSW se pun la 0.

mp!r"ire:
DIV - execut! mp!r"irea f!r! semn a con"inutului registrului A la con"inutul
registrului B. Partea ntreag! a rezultatului se pune n A, iar partea
frac"ionar! n B.

Instruc"iuni pentru opera"ii logice:
Instruc"iuni logice cu un singur operand:
CLR - reseteaz! A orice bit adresabil direct.
SETB - seteaz! orice bit adresabil direct.
CPL - complementeaz! con"inutul lui A, f!r! a afecta PSW.
RL - rota"ie stnga a acumulatorului.
RLC - rota"ie stnga a A prin CY.
RR - rota"ie dreapta a A.
RRC - rota"ie dreapta a A prin CY.
SWAP - inverseaz! niblurile n A.

Instruc"iuni logice cu 2 operanzi:
ANL - $I logic.
ORL - SAU logic.
XRL - SAU EXCLUSIV logic.
213
Instruc"iuni de control:
Apeluri #i salturi necondi"ionate:
ACAL - este o instruc"iune pe 2 octe"i de apelare a unui subprogram care se
folose#te atunci cnd adresa de salt este cuprins! n 2K ai paginii curente.
Cmpul de adres! de 11 bi"i este concatenat cu cei mai semnificativi 5 bi"i
din PC.
LCALL- este o instruc"iune pe trei octe"i de apelare a unui subprogram care
adreseaz! to"i cei 64K ai memoriei.
RET - transfer! controlul la adresa de ntoarcere care a fost n prealabil salvat! n
stiv! #i decrementeaz! registrul SP cu 2.
AJMP - este un salt necondi"ionat la adresa specificat!analog cu ACALL.
LJMP - este un salt necondi"ionat la adresa specificat! analog cu LCALL.
SJMP - este un salt necondi"ionat scurt n cadrul a 256 de octe"i.

Salturi condi"ionate:
JZ - execut! salt dac! acumulatorul este 0.
JNZ - execut! salt dac! acumulatorul nu este 0.
JC - execut! salt dac! bitul de CY (Carry) este 1.
JNC - execut! salt dac! bitul de CY este 0.
JB - execut! salt dac! bitul adresat este 1.
JNB - execut! salt dac! bitul adresat este 0.
JBC - execut! salt dac! bitul adresat este 1 #i apoi #terge bitul adresat.
CJNE - compar! primul operand cu al doilea operand #i face salt dac! ace#tia nu
sunt egali.
DJNZ - decrementeaz! operandul surs! #i pune rezultatul n operandul destina"ie.
Dac! rezultatul nu este 0 se execut! salt.
ntreruperi:
RETI - ca #i RET, dar activeaz! ntreruperile.

10.3.2.2. Modurile de adresare

Adresare prin registre - programatorul are acces la 8 registre de lucru, notate R0-R7. Cei
mai pu"in semnificativi 3 bi"i ai codului instruc"iunii indic! unul dintre aceste registre. Se
poate forma astfel o instruc"iune de un singur octet. De exemplu adunarea registrului R0 cu
R1, cu rezultatul n acumulator:
MOV A,R0
ADD A,R1
Adresare direct$ - se pot adresa loca"ii din RAM, porturi I/O sau registrele cu func"ii
speciale. La codul instruc"iunii se adaug! un octet care reprezint! loca"ia care se folose#te.
De exemplu se adun! con"inutul loca"iei 30 din RAM la con"inutul loca"iei 40, cu rezultatul
n loca"ia 40:
MOV A,30h
ADD A,40h
MOV 40h,A
Adresare indirect$ prin registre - introdus! pentru a putea lucra cu variabile al c!ror loc
n RAM se modific! n cursul rul!rii programelor. Ca registre index se folosesc registrele
R0 #i R1, al c!ror con"inut indic! adresa n RAM. Cel mai pu"in semnificativ bit al codului
instruc"iunii indic! registrul care este folosit ca index. n limbajul de asamblare al lui 8051,
214
adresarea indirect! se reprezint! cu @. De exemplu se adun! con"inutul loca"iei adresat! de
registrul R0 cu con"inutul loca"iei adresat! de registrul R1, cu rezultatul n acumulator:
MOV A,@R0
ADD A,@R1
Adresare imediat$ - folosit! cnd operandul este o constant! cu o valoare cunoscut!, care
se specific! n codului instruc"iunii. n limbajul de asamblare al lui 8051 constanta este
precedat! de semnul #. De exemplu adunarea lui 15 cu 18 zecimal, cu rezultatul n
acumulator:
MOV A,#15
ADD A,#18

10.3.3. Echip$ri speciale cu memorie

10.3.3.1. Memoria EEPROM (PHILIPS 80C851)

Memoria EEPROM are dimensiunea de 256 octe"i, poate re"ine informa"iile
minimum 10 ani #i poate fi supus! la 10.000 de cicluri de #tergere/scriere. Circuitul con"ine
multiplicatorul de tensiune pentru #tergere #i scriere.

Comunica"ia ntre UC #i EEPROM se realizeaz! cu ajutorul a 5 registre:
EADRH (adresa F3h), EADRL (adresa F2h) sunt dou! registre pentru adresare, primul
pentru partea LOW a adresei, cel!lalt pentru partea HIGH (pentru implement!ri viitoare #i
pentru adresarea bi"ilor de securitate).
EDAT (adresa F4h) este registrul de date n care se stocheaz! octetul de scris sau octetul
citit. Sunt posibile #i #tergeri pe bloc de date, caz n care con"inutul acestui registru nu
conteaz!.
ETIM (adresa F5h) este un registru pentru timer necesar pentru a adapta timpul de citire/
scriere la frecven"a sistemului #i trebuie nc!rcat cu valori func"ie de tactul sistemului #i de
caracteristicile EEPROM-ului.
ECNTRL (adresa F6h) este registrul de control care:
stabile#te modurile de lucru: scriere, citire, #tergere pe octet, #tergere pe bloc;
con"ine un bit care semnaleaz! c! este n curs o scriere sau #tergere.
Schema bloc a modulului este dat! n Fig. 10.25.
















BUS INTERN
CPU
EEPROM
EDATA EADRH EADRL
Secven"iator
ECNTRL ETIM
Fig. 10.25. Schema bloc a modulului EEPROM
215

Secven"iatorul asigur! secven"a de timp corespunz!toare pentru scriere sau #tergere. Datele
#i adresele se transfer! prin intermediul registrelor de pe magistral!.

O citire se poate realiza simplu:

Citire: MOV EADRL,#20H
MOV A,EDAT

Ca urmare a acestei secven"e de program, con"inutul loca"iei 20h este citit n acumulator.

Memoria EEPROM este protejat! cu un octet la adresa 8000h. Se poate valida securitatea
cu urm!toarea secven"! de program, cu scrierea activat!:

Activare securitate:
MOV EADRH,#80H
MOV EADRL,#00H
MOV EDAT,#FFH

Acest octet nu mai poate fi modificat prin soft. Programul din EEPROM nu mai poate fi
citit sau modificat cu instruc"iuni MOVC din memorii externe, ci doar executat.

10.3.3.2. Memoria FLASH cu programare paralel#
(ATMEL AT89C55)

Multe MC compatibile 8051 sunt echipate cu memorie FLASH. Unul dintre acestea
este AT89C55 care este echipat cu 20K octe"i memorie FLASH care poate fi programat! #i
#tears! (EPROM) n maximum 1000 de cicluri de scriere/#tergere.

Programarea memoriei FLASH se poate face cu o tensiune mare, de +12V a#a nct se pot
folosi inscriptoarele de EPROM sau se poate face cu +5V, pentru ca programarea s! fie
posibil! n sistemul gazd!. AT89C55 este fabricat cu memoria #tears! (plin! cu FFh) #i
gata de a fi programat!.

Programarea memoriei se face astfel:
! pe liniile de adres! se stabile#te adresa loca"iei de programat;
! pe liniile de date se stabile#te octetul de nscris;
! se aplic! un front pe /EA/Vpp la +12V (pentru programarea cu 12V);
! se aplic! un impuls ALE//PROG.
Starea program!rii este indicat! de bitul RDY//BSY (P3.4), linia fiind LOW n timpul
program!rii #i HIGH cnd programarea s-a terminat.

Dup! nscriere se poate face verificarea a ceea ce s-a nscris, prin adresare #i citirea
octetului de date.

Toat! memoria FLASH se poate #terge electric aplicnd semnalele de comand!
corespunz!toare (din tabelul care exist! n foile de catalog) #i aplicnd apoi un impuls
ALE//PROG de 10ms. Asem!n!tor se programeaz! (programare paralel!) #i circuitul
89C51 de la Philips.
216
10.3.3.3. Memoria FLASH cu programare paralel# "i serial# ISP
(PHILIPS 89C51RC)

O facilitate interesant! #i util! o au MC care au nscris n ROM un mic program
monitor care poate s! gestioneze nscrierea memoriei FLASH prin canalul serial. Modul de
nscriere serial se nume#te In-System Programming (ISP) #i este realizat printr-un canal
serial cu liniile TxD #i RxD #i liniile de alimentare de +5V #i mas!, precum #i tensiunea
necesar! nscrierii memoriei FLASH, +Vpp. Softul care gestioneaz! canalul serial este un
monitor nscris n ROM. Dup! programarea memoriei FLASH, ROM-ul poate fi invalidat.
Programul monitor determin! rata de transfer cu care i se trimit date #i transmite n ecou ce
a recep"ionat. Dup! transmiterea caracterului pentru stabilirea ratei de transfer, se transmite
un octet de identificare care stabile#te natura datelor care urmeaz!. Num!rul de octe"i care
urmeaz! este limitat la 16. n foile de catalog sunt explicate comenzile care pot fi date pe
acest! cale. Programul monitor ocup! 1K #i ROM-ul se nume#te Boot ROM.

La aceast! memorie FLASH timpul de acces este de 100ns, timpul necesar nscrierii unei
loca"ii este de 20ms, iar #tergerea se realizeaz! n 3 secunde.

10.3.4. Interfe"e #i periferice on chip speciale

10.3.4.1. Convertorul A/D

Circuitul analogic de intrare const! ntr-un multiplexor analogic #i un convertor
A/D de 8 bi"i cu aproxima"ii succesive. Tensiunea de referin"! pentru convertor #i masa
analogic! sunt conectate prin pini speciali. O conversie poate avea loc n 24 sau 48 de cicli
ma#in!, programabil, ceea ce nseamn! un timp de conversie de 24s la un tact de 12MHz.

Convertorul este controlat de registrul de control ADCON care selecteaz! #i canalul de
conversie. Terminarea conversiei este semnalizat! cu un bit tot n ADCON, iar rezultatul
conversiei este stocat n registrul ADCH. O conversie poate fi declan#at! n 3 feluri:
start n operare normal! #i revenire n operare normal!;
start n operare normal! revenire n mod inactiv (Idle);
intrare n mod inactiv #i declan#area unei conversii din exterior prin pinul STDAC.

Schema bloc a convertorului este dat! n Fig. 10.26.

Cu registrul ADCON (C4h) se poate programa:
selec"ia canalului analogic dorit;
se poate programa ca o conversie s! fie declan#at! de pinul extern STADC;
se poate declan#a o conversie;
con"ine un bit care semnaleaz! c! s-a terminat conversia. Cu acest bit se poate
solicita o cerere de ntrerupere;
se poate selecta viteza de conversie la viteza maxim! (24 cicli) sau mai mic!
(48 de cicli).



217


















10.3.4.2. Interfa!a PWM

Circuitul este prev!zut cu un canal PWM la care frecven"a de repeti"ie este
programat! cu un registru de prescalare (PWMP- adresa FEh) care genereaz! un ceas
pentru un num!r!tor de 8 bi"i. Con"inutul num!r!torului este comparat cu cel al registrului
PWM0 (adresa FCh); dac! num!rul este mai mare ie#irea /PWM0 este LOW, dac! este mai
mic sau egal /PWM0 este HIGH. Factorul de umplere poate fi astfel modificat ntre 0 #i
255/255. Schema bloc a canalului PWM este dat! n Fig. 10.27.

/













Observa"ie: convertorul AD, interfa"a I
2
C #i canalul PWM0 pot lucra n modurile cu
economie de energie. Convertorul, interfa"a I
2
C #i canalul PWM0 r!mn active n modul
idle al UC #i pot genera o ntrerupere sau un RESET, terminnd astfel modul inactiv al UC.




Multiplexor
analogic
Convertor Analog Digital
ADCON ADCH
BUS INTERN
STDAC
Selec"ie
canal
START STOP Date
ADC0
ADC1
ADC2
ADC3
Fig. 10.26. Schema bloc a convertorului analog digital
BUS INTERN
Num!r!tor
8 bi"i
fosc/2
PWM0
Comparator pe 8 bi"i
PWM0
Fig. 10.27. Schema bloc a canalului PWM
PWMP
(prescalare)
218
10.3.4.3. Interfa!a USB (EZ-USB seria 2100)

Familia EZ-USB de la Anchor Chips ( www.anchorchips.com ) echipeaz! MC-ul
lor echivalent cu 8051 cu un modul USB inteligent, destinat leg!turii USB de mare vitez!
(12Mbps). Modulul USB inteligent admite instruc"iuni avansate, de aceea punerea la punct
a lucrului cu USB devine mai rapid!. MC este echipat cu RAM care poate fi nc!rcat! de la
un PC. Din acest motiv circuitul nu mai are ROM. Circuitul mai con"ine #i o interfa"! I2C,
precum #i linii I/O de uz general. Tot ca un avantaj se poate men"iona c! bus-ul de date #i
adrese nemultiplexat este accesibil la pini speciali, ceea ce nseamn! c! nu se sacrific! pini
I/O pentru cuplarea unor componente exterioare #i nici nu este nevoie de latch-uri pentru
separarea datelor de adrese.

Schema bloc a acestui MC este dat! n Fig. 10.28.



























Modulul USB realizeaz! n timpul ini"ializ!rii o enumerare #i alocare de adrese a
dispozitivelor USB conectate. Aceast! opera"ie este posibil! ca urmare a mut!rii unei
secven"e de program din RAM-ul MC n RAM-ul modulului USB.

nc!rcarea programului n RAM se poate face att de la un sistem PC ct #i de la un
EEPROM serial prin interfa"a I2C sau clasic, prin conectarea unei memorii ROM externe.
Opera"ia de enumerare ini"ial! permite identificarea unui corespondent USB #i creeaz!
posibilitatea nc!rc!rii programelor de la sistemul gazd! chiar prin USB.

8051
BUS INTERN
RAM
4-8 Kocte"i
Interfa"a cu memoria
extern! (nemultiplexat!)
Interfa"a USB inteligent!
2K octe"i FIFO memorie
proprie
PIO
(24 linii)
Transceiver USB
D+

D-
Interfa"! I
2
C
SCK SDA
Fig. 10.28. Schema bloc a unui MC cu interfa"! USB
219
10.3.4.4. Interfa!a I
2
C (SIEMENS P80CL580)

Portul serial I
2
C are 2 linii, date seriale (SDA) pe pozi"ia liniei P1.7 #i ceas serial
(SCK) pe pozi"ia bitului P1.6. Interfa"a lucreaz! n 4 moduri:
transmi"!tor MASTER
receptor MASTER
transmi"!tor SLAVE
receptor SLAVE
Aceste func"ii pot fi controlate de registrul S1CON (Serial Control Register) #i S1STA
(Serial Status Register). Cu datele se lucreaz! prin S1DAT (Data Shift Register) iar adresa
se stabile#te n S1ADR (Slave Address Register), Fig. 10.29.






















Cu registrul de control S1CON (registru SFR la adresa DBh) se pot programa:
ceasul serial de transfer n mod MASTER (SCK), care este n func"ie de tactul
sistemului #i poate fi de maximum 100kHz;
se poate selecta dac! liniile I/O (P1.6 #i P1.7) au semnifica"iile generale sau
speciale pentru I
2
C;
se poate porni transferul prin generarea de condi"ii de START repetate (mod
MASTER) sau verificarea bus-ului #i generarea de START doar dac! bus-ul
este liber (mod SLAVE);
se poate opri transferul prin generarea unei condi"ii de STOP;
se pot valida ntreruperile care se genereaz! n urm!toarele condi"ii: s-a generat
o condi"ie de START, s-a recep"ionat adresa proprie, un octet s-a transmis sau
s-a recep"ionat;
se poate insera un ACK, (nivel LOW pe SDA) dup! recep"ia unui caracter sau a
adresei proprii.


B
U
S


I
N
T
E
R
N
S1DAT
Generare ceas
Arbitrare #i
sincronizare
S1CON
S1STA
S1ADR
SDA




SCK
Fig. 10.29. Interfa"! I
2
C
220
Registrul de stare S1STA (D9h - registru Read Only) poate fi folosit pentru generarea unei
ntreruperi #i saltul la o rutin! de servire.

n registrul de date S1DAT (DAh) se nscrie octetul care se transmite sau se recep"ioneaz!;
cel mai semnificativ bit se transmite sau se recep"ioneaz! primul.

n registrul de adrese S1ADR (DBh), la un dispozitiv MASTER se stabile#te adresa
dispozitivului SLAVE cu care dore#te un transfer de date.

10.3.4.5. Aria de num#r#toare programabil# (PCA)

Aria de num!r!toare programabil! este un circuit special de timp format din 5
module de 16 bi"i cu posibilitatea de captur! #i compara"ie care se adaug! timerelor
obi#nuite ale MC. Fiecare modul poate fi programat individual s! lucreze n unul din
modurile:
captur! pe front pozitiv sau negativ;
timer;
canal PWM;
ceas de gard! (doar modulul 4).

Fiecare timer are un pin asociat din portul 1, ca n Fig. 10.30.


















Timerul comun pentru toate modulele este un timer obi#nuit. El poate func"iona cu diferite
tacte programate n registrul SFR CMOD cu 2 bi"i, conform tabelului 10.17.

Tabel 10.17. Programarea tactului pentru timer
CPS1 CPS0 Tact pentru timer
0 0 frecven"a oscilatorului/12
0 1 frecven"a oscilatorului/4
1 0 Semnalul de dep!#ire de la timerul 0 standard
1 1 De la un pin extern (ECI, P1.2)

Temporizator/
Num!r!tor (Baza de
timp pentru modulele
PCA)
Modul 0 (16 bi"i)
Modul 1 (16 bi"i)
Modul 2 (16 bi"i)
Modul 3 (16 bi"i)
Modul 4 (16 bi"i)
P1.3



P1.4


P1.5



P1.6


P1.7
Fig. 10.30. Structura ariei de timp programabile (PCA)
221
Fiecare modul are asociat un registru de comand! (CCAPM0-CCAPM4) care controleaz!
modul de operare al modulului:
se poate valida ca o coinciden"! n modul s! genereze o ntrerupere;
se poate valida modul PWM;
se poate valida ca ie#irea P1.x s! schimbe starea dac! a ap!rut o coinciden"!
ntre con"inutul modulului #i con"inutul timerului;
se poate programa pe care front al intr!rii P1.x s! se fac! num!rarea
impulsurilor externe.
Fiecare modul mai are asociat un registru de 16 bi"i (cte dou! de 8 bi"i; CCAP0H-
CCAP5H #i CCAP0L-CCAP5L) care stocheaz! valoarea num!rat! la apari"ia unei
coinciden"e. n mod PWM aceste registre controleaz! factorul de umplere.

Func"ionarea PCA:
n modul de captur!, cnd apare o tranzi"ie pe intrarea extern! P1.x, se ncarc!
valoarea la care a ajuns timerul comun n registrele de date (CCAPxH #i
CCAPxL). n acest moment se poate genera o ntrerupere;
n mod timer, con"inutul registrelor de date este incrementat de la intrarea
extern!. Cnd se ajunge la o valoare egal! cu cea stocat! n timerul comun
poate fi generat! o ntrerupere;
n mod PWM fiecare modul poate fi folosit ca un canal independent. Frecven"a
semnalului PWM este aceea#i #i depinde de sursa timerului comun. Factorul de
umplere se poate modifica prin registrul CCAPxL;
n mod ceas de gard! utilizatorul ncarc! registrul CCAPxH #i CCAPxL. Cnd
timerul comun ajunge la o valoare egal! cu cea stocat! de utilizator se
genereaz! un RESET intern. Pentru ca s! nu se ajung! la RESET ntr-un
progam rulat normal, utilizatorul trebuie periodic s! schimbe valoarea din timer
sau s! reseteze ceasul de gard!.

10.3.4.6. MC cu interfa!# pentru RAM nevolatil (NVRAM)
(DALLAS DS5000FP)

Un astfel de MC poate adresa o memorie extern! SRAM (ntre 8K #i 64K) care
poate fi f!cut! nevolatil! prin alimentarea cu baterii. O baterie cu litiu poate func"iona cca.
10 ani. Transferul de date cu memoria NVRAM se face pe un bus separat pentru a nu
mic#ora num!rul de linii I/O.

Circuitul nu are ROM pentru programul utilizator, programul fiind stocat n NVRAM,
programarea se realizeaz! n sistem, prin interfa"a serial! a MC. La acest tip de MC
programul se poate schimba chiar #i n timpul func"ion!rii. Programul se poate nc!rca
ini"ial prin interfa"a serial!, sub comanda unui program existent ntr-un ROM intern numit
Boot ROM (sau BOOTSTRAP LOADER ROM) care este apoi invalidat #i devine invizibil
la adresare.

Schema de conectare a unei memorii de 32K este dat! n Fig. 10.31.




222






















10.3.4.7. Interfa!a LCD (PHILIPS P83C434)

n jurul unui nucleu 8051 a fost construit un MC specializat pentru comanda
panourilor LCD. R!mn disponibile pentru uz general 12 linii I/O. Modulul LCD are 24 de
linii pentru comanda segmentelor, din care 2 pot fi folosite pentru comanda planurilor din
spate. Afi#ajul poate fi comandat cu tensiuni variabile ob"inute intern prin divizarea
tensiunii de alimentare cu rezisten"e. Schema bloc a MC este dat! n Fig. 10.32.
















MC se poate folosi la comanda afi#oarelor cu pn! la 4 planuri n spate. Cele 24 de linii de
comand! a segmentelor pot comanda 12 caractere numerice formate cu 7 segmente sau 88
de elemente grafice. Func"ionarea afi#ajului poate fi mai bine n"eleas! n cazul concret al
unui singur plan n spate, pentru 2 elemente al!turate ale afi#ajului, Fig. 10.33.
DS5000FP

Vcc0
/CE
/RW



RST
BD0-BD7


P0


P1 BA0-BA14


P2


P3

GND
32Kx8 SRAM

Vcc
/CS
/WE




D0-D7



A0-A14
Vcc


3V Li

Fig. 10.31. Schema de conectare a unei memorii RAM
Nucleu 8051
12
linii
I/O
Modul LCD S00-S21


S22/BP3
S23/BP2
BP1
BP0
Fig. 10.32. MC cu modul de comand! LCD
223












Primul element este aprins pentru c! ntre segment #i planul din spate este o diferen"! de
poten"ial, iar al doilea este stins pentru c! nu exist! o diferen"! de poten"ial.
Comanda modulului de afi#are se face cu 12 registre LCD0-LCD11 (adrese 9Ah-BFh) care
con"in configura"ia segmentelor stinse/aprinse pentru fiecare plan din spate.

10.3.4.8. MC specializat pentru TV "i video (PHILIPS 83C145)

Acest MC este construit n jurul unui nucleu 8051 #i are 8-16Kocte"i ROM sau
OTP, 256 octe"i RAM, controller pentru vizualizare pe ecran (On Screen Display OSD), 3
ie#iri video digitale, memorie RAM pentru display de 128x10 bi"i, generator de caractere
(ROM 60 caractere x 18 linii x 14 puncte), 8 canale PWM de 6 bi"i #i un canal PWM de
precizie de 14 bi"i, convertor numeric analogic. Nu se poate conecta memorie extern!.
Schema bloc este dat! n Fig. 10.34.




















Ceasul canalelor PWM se formeaz! din tactul sistemului divizat cu 4. Acest tact este
aplicat tuturor canalelor PWM #i unui num!r!tor de 14 bi"i. Canalele de 6 bi"i utilizeaz!
doar partea mai pu"in semnificativ! a num!r!torului de 14 bi"i. Fiecare canal PWM are

VDD
BP0
VSS

S00




S01

2 elemente de afisaj,
(primul aprins, al doilea stins)
Fig. 10.33. Comanda a doua elemente al!turate ale afi#ajului LCD
Nucleu 8051
(f!ra memorie)
On Screen Display OSD
RAM 128x10
ROM 60 x 18 x 14
Magistral! de date
Porturi I/O
P3 P2 P1(4b) P0
8x6bit PWM

14bit PWM
ROM
RAM
Fig. 10.34. Schema bloc a unui MC specializat TV/video
DAC
224
asociat un registru SFR. La egalitatea valorii acestui registru cu con"inutul num!r!torului,
ie#irea PWM schimb! starea. Structura canalelor PWM este reprezentat! n Fig. 10.35.


















Convertorul numeric analogic este folosit pentru a realiza conversia analog numeric! soft
(Fig. 10.36). Circuitul are 3 intr!ri analogice care pot fi comutate pe rnd la intrarea unui
comparator de tensiune. La cealalt! intrare a comparatorului se aplic! ie#irea convertorului
numeric analogic. Cnd intr!rile sunt egale, valoarea aplicat convertorului numeric
analogic este chiar valoarea numeric! a semnalului analogic de intrare.

















Modulul OSD are rolul de a suprapune text pe o imagine de televiziune. Intr!rile n acest
bloc sunt:
2 ceasuri video;
semnalul de sincronizare orizontal!;
semnalul de sincronizare vertical!.
Num!r!tor 14 bi"i
Canal PWM0 (6 bi"i)
Canal PWM7 (6 bi"i)
Canal PWM8 (14 bi"i)
P1.3






P0.6





P0.7
Tact= f/4
Registru SFR PWM0
Registru SFR PWM7
Registru TDACL, TDACH
Fig. 10.35. Structura canalelor PWM
(ale MC specializat TV/video)
MUX
ANALOGIC
P1.0



P1.1


P1.2
DAC (4 bit)
Comparator
Fig. 10.36. Convertorul analog numeric
(al MC specializat TV/video)
225
Modulul OSD poate fi echipat cu EPROM, ceea ce nseamn! c! generatorul de caractere
poate fi programat. Modulul OSD permite 8 moduri de scriere umbrit! a caracterului,
culoarea caracterului este selectabil!, culoarea fondului este selectabil!.

10.3.4.9. MC cu arie configurabil# (TRISCEND E5)

Firma TRISCEND a realizat un MC compatibil 8051 care con"ine o arie de por"i
configurabil! (Configurable System-on-Chip CSOC). Acest MC integreaz! pe un singur
chip un MC de uz general 8051, un bloc de RAM de mari dimensiuni #i o arie de module
configurabile, toate acestea conectate ntre ele printr-un bus de mare vitez!. Programarea
ariei se face prin programul de ini"ializare #i se poate relua de ori cte ori.
Descrierea pe scurt a circuitului: ruleaz! la o frecven"! de 40MHz #i are echipare standard
(256 octe"i RAM, ceas de gard!, trei timere, 2 canale DMA, interfa"! serial! UART, 64K
octe"i RAM) #i are n plus 3200 de module configurabile (CSL Configurable System Logic
- ceea ce nseamn! cam 40.000 de por"i).
Conectarea ntre modulele cofigurabile #i restul sistemului, respectiv liniile I/O se
realizeaz! prin magistrala CSI (Configurable System Interconnect), cu 8 bi"i de date
bidirec"ional, 32 de bi"i de adres!, rata de transfer de maxim 40MBps. Magistrala CSI
permite lucrul multi master, master putnd fi unitatea central! 8051, canalele DMA sau
interfa"a JTAG.
Interfa"a cu exteriorul poate fi realizat! cu maxim 315 linii I/O (depinde de variant! #i
capsul!), exist! #i posibilitatea conect!rii memoriei externe, iar un modul de interfa"! IEEE
1149.1 JTAG permite testarea sistemului. Liniile I/O au caracteristici programabile (curent
de ie#ire, histerezis la intrare etc.). Schema bloc este dat! n Fig. 10.37.























8051
CPU
256 x 8 RAM
Ceas de gard!
3 x Timer
UART
Controller de
ntreruperi
2x DMA
BUS CSI
RAM
64Kocte"i
Interfa"a cu
memoria
extern!
Interfa"a
JTAG
Matrice CSL
PIO PIO PIO
Fig. 10.37. Schema bloc a unui MC TRISCEND E5
226
Interfa"a cu memoria extern! permite legarea direct! a unei memorii de 256K x 8 bi"i (de
regul! FLASH) pentru nscrierea ini"ial! a programului n MC. nscrierea ini"ial! poate fi
realizat! la RESET din aceast! memorie FLASH extern! n mod paralel, dar poate fi
realizat! prin citirea programului prin interfa"a serial! de la un PROM serial. Programul
poate fi executat din FLASH sau poate fi copiat prin interfa"a serial! n RAM #i executat
de acolo.

Modul serial elibereaz! pini I/O care pot fi astfel folosi"i n alte scopuri. Procedura de
nc!rcare poate s! nu fie reluat! dac! RAM-ul se alimenteaz! cu baterie.

Cu aria de module configurabile se pot realiza sisteme la cerere. Fiecare modul poate
ndeplini diverse func"ii, combina"ionale sau secven"iale. Modulele configurabile sunt
aranjate ntr-o matrice, a c!rei dimensiuni depind de varianta de circuit. Modulele sunt
grupate cte dou!, pentru a putea mp!r"i resursele. Schema bloc a unui nod din matrice
este dat! n Fig. 10.38.























Structura unei celule este dat! n Fig. 10.39.









Matrice
de
leg!turi
Matrice
de
leg!turi
Matrice
de
leg!turi
Matrice
de
leg!turi
Modul CSL
Modul CSL
Linii lungi de
adres!
Linii lungi
I/O
Linii
scurte de
inter-
conectare
Fig. 10.38. Schema bloc a unui modul de arie configurabil!
Bistabil D
D Q

EN

T
Intr!ri
1 Ie#iri

2
Fig. 10.39. Structura unei celule configurabile
Por"i
configurabile
prin
programare
227
Structura por"ilor poate fi programat! la ini"ializare #i reprogramat! de ori cte ori. O celul!
poate ndeplini una din func"iile:
logic! (ie#irea 1);
aritmetic!;
de memorare (ie#irea 2);
de magistral!;
secven"ial!.
Testarea JTAG se poate realiza cu un calculator conectat la interfa"a JTAG. Pinii folosi"i
sunt:
TCK ceas de testare (intrare n MC);
TMS comanda modului de test, intrare n MC, activ pe 0;
TDI date seriale de intrare n MC;
TDO date seriale de ie#ire din MC.
n modul de testare nu este nevoie ca MC s! aib! o memorie extern!. Prin leg!tura JTAG
se poate programa matricea CSL #i se poate observa modul de rulare al programului de
c!tre MC prin intercalarea de break point-uri, rularea pas cu pas, citirea registrelor interne
etc.

10.3.4.10. MC pe 16 bi!i
(PHILIPS XA-G3, eXtended Architecture Controller)

Familia XA se bazeaz! pe o extindere a arhitecturii MCS 51. Magistrala de adrese
este de 20 de bi"i (1M adresabil) dar se poate extinde la 24, circuitul fiind dotat cu 32K
octe"i ROM sau EPROM #i 512 octe"i RAM. Unitatea central! are 8 registre care pot fi
utilizate #i ca baz! de adresare, sunt posibile #i opera"ii direct cu memoria, se pot face
nmul"iri #i mp!r"iri. Tensiunea de alimentare este ntre 2,7 #i 5V. Ca interfe"e, familia XA
este echipat! cu 3 timere, un ceas de gard!, 4 porturi de 8 linii #i 2 interfe"e seriale UART
(Fig. 10.40.).



















Unitatea central!
XA
Memorie RAM
( 512 octe"i) #i
ROM (EPROM)
(32K octe"i)
Magistrala
de date 16b
Port 3 Port 1

Port 0
Ceas de gard! Timer
Port 2
UART 1
UART 2
Adrese #i date
multiplexate
Fig. 10.40. Schema bloc a unui MC XA pe 16 bi"i
228
10.3.5. Sistem minimal cu 8051

Schema electric! simplificat! a unui sistem minimal cu 8051 este dat! n Fig. 10.41.


























Sistemul minimal con"ine RAM cu capacitatea de 32KB, selectat cu PSEN (care indic!
faptul c! nu este acces la memoria program) #i /RD pentru o citire sau /WR pentru o scriere
n RAM.

Bus-ul de date #i adrese este comun pentru AD0-AD7. Adresele se separ! cu un latch
validat de semnalul ALE. Liniile de date sunt validate cu /RD sau /WR.

Memoria program EPROM este op"ional!, (este necesar! pentru modelele care nu au
EPROM sau OTP intern, de exemplu 8031) fiind selectat! cu semnalul PSEN. Dac! exist!
EPROM extern /EA=LOW, iar dac! se folose#te EPROM-ul intern /EA=HIGH.

Circuitul se completeaz! cu un generator de tact #i dou! componente pentru realizarea
RESET-ului, ca n unul din subcapitolele anterioare.

Pentru dezvolt!ri se poate folosi portul P1, care este liber, #i canalul serial. Dac! num!rul
liniilor I/O nu este suficient, se poate folosi un expander cum este de exemplu 8243, care
poate extinde 4 linii la 4x4 linii bidirec"ionale (Fig. 10. 42.).



BUS
DATE
D0-D7
BUS
ADRESE
A0-A15
/A15
/WR
8051
X1 AD0-AD7
P0
X2
RST
ALE

P2
A8-A15

P1 /RD
/WR
LATCH
ADRESE
RAM
STATIC 32K
A0-A14
CS D0-D7
/WE

OE
EPROM
A0-A14

CS D0-D7


/OE
A15
/PSEN
Op"ional
Port I/O liber
PSEN /RD
Fig. 10.41. Sistem minimal cu 8051
229
















10.3.6. Date comparative pentru MC din familia MCS-51

Tabel 10.18. Tabel comparativ pentru MC din familia MCS -51
MC

Magistrala de
date
Frecven"a
(MHz)
Linii
I/O
Interfe"e
speciale
Pre"
(USD)
PHILIPS P87C51 8 16 32 2 4
PHILIPS S87C552 8 16 48 5 35
PHILIPS XA-G3 16 30 32 2 90
TRISCEND E5 8 40 128 2 27
INTEL 87C196 16 20 53 6 18


10.4. ALTE MC CISC

10.4.1 MC compatibile x86

O categorie important! de MC sunt cele compatibile soft cu microprocesoarele
8086, datorit! faptului c! programele pot fi preluate direct de pe PC. AMD a realizat
familia de MC AMD Comm86, o familie de MC dedicate comunica"iilor. Aceste MC cu
performan"e foarte bune de vitez! (tact pn! la 50MHz #i magistrala de date de 16 bi"i) pot
echipa aplica"ii de comunica"ii care rezult! astfel ieftine.

Firma AMD (al doilea produc!tor de microprocesoare n lume) a dezvoltat
microprocesoarele, urm!rind cre#terea vitezei prin m!rirea frecven"ei de lucru, dar a
dezvoltat n paralel #i MC, urm!rind integrarea ct mai multor interfe"e pe chip. O serie
ntreag! de sisteme de dezvoltare sus"in aceste MC ( www.amd.com ). Linia acestor MC a
fost preluat! #i de al"i fabrican"i care au format parteneriatul Fusion E86.

10.4.1.1. Familia AMD Comm86

Schema bloc a unui MC reprezentativ este dat! n Fig. 10.43. Acest MC
(Am186CU) con"ine o interfa"! USB.
8051
X1
P0
X2
RST

P2.3
P2.2
P2.1
P2.0

P1
P2.5
P2.4
8243

P4


P23 P5
P22
P21
P20 P6


/CS
PROG P7
Fig. 10.42. Expandarea liniilor I/O cu circuitul 8243
230






















Modul de organizare a unit!"ii centrale #i a memoriei este la fel cu al binecunoscutului
procesor 8086. Memoria este organizat! n segmente, fiecare segment are dimensiunea de
64K. Memoria este adresat! cu un registru segment de 16 bi"i #i un offset de 16 bi"i.
Registrele segment sunt CS, DS, SS #i ES. Adresa fizic! se ob"ine prin deplasarea la stnga
cu 4 pozi"ii a valorii segmentului #i adunarea la offset. Se ob"ine astfel un spa"iu adresabil
pe 20 de bi"i (1M adresabil). Spa"iul I/O const! n 64K porturi de 8 bi"i sau 32K porturi de
16 bi"i cu care se pot executa opera"ii I/O prin intermediul instruc"iunilor IN #i OUT.

Controllerul USB poate lucra la viteza de 12Mbps. Transceiverul USB este inclus n MC
pentru a minimiza num!rul de componente externe care trebuie folosite. Controllerul USB
suport! un num!r nelimitat de descriptori, un total de 6 puncte de sfr#it (endpoints) dar nu
suport! func"ii de gazd! sau hub.

Interfa"a serial! poate lucra n mod DMA cu ajutorul a 4 canale DMA numite SmartDMA.
Se pot transfera date direct ntre memorie #i periferic prin buffere de seializare/
deserializare. La o transmisie #i recep"ie se folosesc canale DMA diferite; pentru un
transfer bidirec"ional se folosesc dou! canale DMA.

Familia AMD Comm86 este echipat! cu dou! porturi seriale asincrone, unul de mare
vitez! care poate func"iona full duplex, la viteze de pn! la 460Kbauds, iar cel!lalt
standard (full duplex, 115,2Kbauds). Portul de mare vitez! con"ine buffere de 16 octe"i la
transmisie #i 32 de octe"i la recep"ie. Portul serial de mare vitez! poate detecta n mod
automat rata de transfer, fiind potrivit pentru cuplarea unui modem Hayes. Fiecare UART
are rata de transfer stabilit! de la ceasul sistemului sau de la un ceas extern. Sunt suportate
cuvinte de 7,8 sau 9 bi"i, lucru cu paritate sau f!r!, detectare #i generare de BREAK,
generare de adres! la emisie #i recunoa#tere de adres! la recep"ie, control hard al fluxului
Unitatea
central!
Am186
Generare
chip
select (14)
Port
paralel cu
48 linii
I/O
Timer
pentru
watch dog
Controller de
ntreruperi
(17)
Interfa"!
pentru
RAM/ROM
Controller
pentru
DRAM
Timer (3) Canale
DMA (4)
Interfa"! serial!
UART Canale
Smart
DMA (4)
UART de
mare vitez!
USB
Interfa"!
serial!
sincron!
(SSI)
Fig. 10.43. Schema bloc a unui MC AMD Comm86
PCB
231
de date. Se pot folosi canalele DMA standard. Portul mai lent poate fi utilizat pentru
configurare, programare etc.

Portul serial sincron SSI poate transfera date bidirec"ional, half duplex. Acest port este
folosit pentru interfa"area n sistem, ntre MC #i alte circuite, pentru a le programa sau
pentru a le citi starea. Viteza de transfer ajunge pn! la 25Mbps. Portul SSI lucreaz! ca
dispozitiv MASTER, celelalte circuite fiind SLAVE. Se trimite la nceput un octet de
comand! dup! care urmeaz! un octet care se scrie sau se cite#te. Portul SSI are 3 pini:
SDEN pin de validare folosit pentru validarea SLAVE-ului. Dac! sunt cuplate mai
multe dispozitive SSI este nevoie de folosirea cte unei linii din porturile I/O pentru
validarea fiec!rui SLAVE;
SCLK pin de ceas;
SDATA pin bidirec"ional de date.

Polaritatea semnalelor SCLK #i SDEN este programabil!, la fel #i ordinea bi"ilor n
cuvntul de date (dac! primul bit transmis este cel mai semnificativ sau cel mai pu"in
semnificativ). Ceasul de transmisie poate fi divizat intern cu un factor ntre 2 #i 256.

Controlerul de ntreruperi poate accepta 36 de cereri de ntrerupere mascabile (19 surse
interne #i 17 surse externe) #i 8 ntreruperi nemascabile (externe sau interne). Prioritatea
ntreruperilor nemascabile este programabil!.

Controllerul DMA standard are 4 canale care pot fi folosite pentru transferuri de date ntre
memorie #i dispozitive I/O dar #i ntre memorie #i memorie sau dispozitivr I/O #i
dispozitive I/O. Interfe"ele interne care pot lucra prin DMA sunt controllerul USB,
porturile seriale UART #i timerul.

Am186CU are 48 de linii I/O, dintre care 34 au semnifica"ii alternative. Aceste linii pot fi
programate s! lucreze ca intr!ri sau ie#iri. Unii pini sunt prev!zu"i intern cu rezisten"e de
pull-up sau pull-down sau sunt cu drena n gol. 8 din aceste linii I/O pot fi utilizate ca
cereri de ntrerupere extern!.

Am186CU are 3 timere de 16 bi"i, dintre care timerul 0 #i 1 sunt conecta"i n exterior la 2
pini, unul de intrare #i unul de ie#ire. Aceste timere pot contoriza evenimente externe sau
pot genera forme de und! complexe, nerepetitive. Timerul 2 nu este conectat n exterior, el
poate fi folosit pentru generarea de ntrzieri soft, pentru prescalarea la timerul 0 #i 1, sau
ca surs! de cerere DMA. Ceasul pentru timerele 0 #i 1 poate fi la fel sau poate proveni de
la o surs! extern!.

Ceasul de gard! poate genera intreruperi nemascabile (NMI) sau RESET dac! nu este
redeclan#at ntr-un interval programabil ntre 2
10
#i 2
26
tacte de procesor. Uneori se poate
rec!p!ta controlul asupra execu"iei programului printr-o ntrerupere nemascabil!, dar
uneori este nevoie de un RESET al MC sau chiar al ntregului sistem (care poate cuprinde
#i alte circuite n afara MC).

Interfa"a cu magistrala este controlat! de PCB (Peripheral Control Block). PCB controleaz!
perifericele externe conectate n spa"iul de memorie sau n spa"iul I/O, memoria extern! #i
interfe"ele interne. Se genereaz! semnle de selec"ie (chip select) separat pentru zona de
memorie sub 64K (LCS) sau peste (UCS) sau pentru spa"iul I/O. Se genereaz! semnale
232
care definesc dac! transferul se face pe 8 sau pe 16 bi"i. Fiecare interfa"! integrat! este
controlat! cu ajutorul unui registru de 16 bi"i, localizat n interfa"a respectiv!. Fiecare
registru are ata#at! o zon! de memorie de 1K octet.

Aceast! familie de MC dispune de o magistral! de date #i adrese multiplexat!. Adresele
sunt prezente pe magistral! pe primul tact. Am186CU are n plus #i o magistral! de adrese
nemultiplexat!, pe care adresa este prezent! tot timpul instruc"iunii (t1-t4). Aceast!
magistral! nemultiplexat! u#ureaz! interfa"area cu memoria extern! (SRAM, DRAM sau
EPROM). Pentru sistemele la care consumul de energie este important, se poate dezactiva
magistrala multiplexat!.

n Fig.10.44. se arat! diagramele de semnal pentru adrese #i date n ambele situa"ii.





























n exterior circuitul are o magistral! nemultiplexat!, pentru c! o magistral! multiplexat! ar
m!ri costurile prin faptul c! ar fi necesare circuite n plus pentru demultiplexare. Ca
semnale de comand! a sensului de transfer pe magistral! se folosesc semnalele /WHB
(Write High Byte) #i /WLB (Write Low Byte) #i semnalul /RD cu care se poate valida
ie#irea circuitelor care se leag! pe magistrala extern! a MC.

Interfa"a cu memoria RAM dinamic! permite cuplarea memoriei DRAM EDO, cu timpi de
acces ntre 25-70ns, n mod 0WS (Zero Wait State) cu memoria cu timp de acces <40ns.
Magistrala multiplexat!

CLKOUT

A19-A0 (linii de adrese)

AD15-AD0 (linii multiplexate)
(citire)

AD15-AD0 (linii multiplexate)
(scriere)
adrese
date
Magistrala nemultiplexat!

CLKOUT

A19-A0 (linii de adrese)

AD15-AD0 (linii de date) (citire)

AD15-AD0 (linii de date) (scriere)
adrese
date
Fig. 10.44. Diagrame de semnal pentru magistrala multiplexat!, respectiv
nemultiplexat!
233
Pot fi cuplatemaximum dou! bancuri de 256Kbit x 16bit. MC genereaz! semnalele RAS #i
CAS #i de refreshul memoriei.

MC poate selecta circuite externe cu 6 semnale de CS n zona de memorie #i 8 semnale de
CS n zona de memorie sau I/O. MC poate fi programat s! simt! semnalul READY de la
circuitul extern selectat, care se manifest! n schimbarea unui bit n registrul de stare al CS.
n registrul de control al CS se poate programa num!rul de st!ri de WAIT cu care lucreaz!
respectivul circuit extern, pentru a ncetini magistrala. Semnalele CS sunt activate de
unitatea central! la cicluri de memorie sau I/O, dar #i de controlerul DMA.

10.4.1.2. Microcontrollere PC-AT AMD

Prin familia Elan SC a fost creat! de firma AMD o combina"ie ntre
microprocesoare #i MC. Aceste MC con"in o unitate central! care este de fapt un
microprocesor pe 32 de bi"i #i interfe"ele cele mai utilizate. Schema bloc a MC PC/AT Elan
SC310 este dat! n Fig. 10.45.



















Structura din Fig. 10.45. este foarte asem!n!toare cu structura unei unit!"i centrale PC AT.
Realizarea unui sistem cu Elan 310 este u#urat! de existen"a unor periferice standard pentru
magistrala ISA #i a softului care func"ioneaz! pe PC AT. MC este perfect compatibil cu
DOS #i WINDOWS.

Controllerul de memorie poate gestiona pn! la 16M octe"i de RAM dinamic, ROM sau
Flash.

Cele mai performante MC dezvoltate de AMD sunt MC din familia ELAN. Acestea pot fi
echipate cu interfa"! LCD #i pot lucra n mod cu consum redus, de aceea sunt g!site n
multe aplica"ii ca sisteme GPS portabile, sau scannere portabile. Familia MC Elan SC400
con"in porturi IrDA, porturi seriale #i paralele, interfa"! pentru magistrala ISA etc. Cele
mai noi MC din aceast! familie sunt echipate cu magistral! PCI, deci se pot conecta cu
multe din echipamentele periferice dotate cu interfa"! PCI. MC din familia ELAN SC520
Unitatea
central!
Am386SX
Port paralel
(EPP)
Timer
8254
Controller de
ntreruperi
(2x8259)
Controller de
magistral!
ISA
Controller
DMA
(2x8237)
Ceas de timp real
(146818A)
UART
(16450)
Unitate pentru
Power
Management
Controller
de
memorie
Interfa"! pentru
tastatur!
(8042)
Fig. 10.45. Schema blos a MC PC-AT Elan SC310
234
cu magistrala de date de 32 de bi"i sunt dotate cu interfa"! pentru SDRAM #i un soft n
circuit numit AMDebug pentru u#urarea lucrului.

10.4.1.3. Date comparative pentru MC compatibile x86

Tabel 10.19. Caracteristici prezentate comparative pentru MC compatibile x86
MC Magistrala de
date
Frecven"a
(MHz)
Linii I/O Interfe"e
speciale
Pre" (USD)
Am186CU 16 50 48 5 20
Elan SC310 16 (32 UC) 33 8 5 35

10.4.2. MC low cost

10.4.2.1. MC cu magistrala de date pe 4 bi!i (Hitachi HD404374)

Cu toate c! tendin"a general! este s! se resping! ideea folosirii unui MC pe 4 bi"i,
un astfel de MC poate s! controleze cu succes un sistem simplu, la un pre" de cost mult sub
acela atins de un MC mai complex. Din p!cate tendin"a produc!torilor este ca produsele la
care pre"ul este n continu! sc!dere s! fie scoase din fabrica"ie. O prezentare a acestui MC
Hitachi va demonstra c! are suficiente resurse pentru a comanda o aplica"ie simpl!, cum ar
fi de exemplu un nc!rc!tor inteligent de acumulatori.

Schema bloc a MC este dat! n Fig. 10.46.


























Unitatea central!
HMCS400
Memorie RAM #i
ROM
Magistral! de date de
4 bi"i
Port R
Port D
(de putere)
Interfa"! serial! sicron!
Timer
A-8 bi"i
B-8 bi"i
C-8 bi"i
Controller de
ntreruperi
SCK SI/SO
Convertor A/D,
6x 10 bi"i
Nr.de ev. PWM
10 linii I/O 10 linii I/O
Fig. 10.46. Schema bloc a MC Hitachi HD404374
235

Tensiunea de alimentare a acestui MC poate fi ntre 1,8-5,5V. El con"ine, n func"ie de
varianta constructiv! 20 de pini I/O de uz general, dintre care 4 admit un curent de 10mA,
iar 4 un curent de 15mA. Circuitul de timp este format din 3 timere de 8 bi"i. Dou! timere
se pot grupa #i se ob"ine un timer de 16 bi"i. Circuitul de timp are 2 ie#iri, din care una
PWM. Timerul poate lucra #i ca num!r!tor al unor evenimente externe. Convertorul A/D
are 4 sau 6 canale sau poate lipsi la unele variante.

Generatorul de tact necesit! n exterior un cristal, frecven"a maxim! fiind de 8,5MHz.
Exist! un generator de tact separat pentru ceasul de timp real la care trebuie cuplat un
cristal de 32,768kHz.

Circuitul admite 2 ntreruperi externe #i 5 interne #i admite moduri de lucru cu economie
de energie. Timerele, interfa"a serial! #i convertorul A/D pot intra n stare inactiv!.

Memoria ROM, PROM sau EPROM este ntre 2K octe"i #i 16K octe"i, iar cea RAM de 512
cuvinte de 4 bi"i.

Circuitul are un set de instruc"iuni bogat #i moduri avansate de adresare. Faptul c! setul de
instruc"iuni este propriu este unul dintre dezavantajele principale ale acestui MC.

10.4.2.2. MC din familia Z8 (Zilog)

Z8 a fost unul dintre primele MC pe 8 bi"i ap!rute pe pia"!. Faptul c! #i acum apare
n cataloage este o confirmare a faptului c! a fost un MC reu#it.
Schema bloc a acestui MC este dat! n Fig. 10.47.























Unitatea central!
Memorie OTP
Port 2
Port 0

2x Timer
Controller de
ntreruperi
8 linii de adrese/date
sau 8 linii I/O
programabile pe octet
Port 1
8 linii I/O
programabile
pe bit
8 linii de adres!
sau 8 linii I/O
programabile pe
bit
Port 3
4 linii I
4 linii O
2x comparatoare
analogice
Ceas de
gard!
Fig. 10.47. Schema bloc a MC din familia Z8
236
Porturile I/O pot lucra n moduri de transfer automat, transferul fiind coordonat de semnale
de protocol handshake. Astfel, portul 0 poate fi controlat de liniile portului 3 (P32 #i P35),
portul 1 de liniile portului 3 (P33 #i P34), portul 2 de liniile portului 3 (P31 #i P36).
Porturile 0 #i 1 pot fi comandate n nalt! impedan"!. Liniile portului 3 sunt mp!r"ite #i de
intr!rile analogice ale comparatoarelor, tensiunea de referin"! pentru compara"ie #i ie#irile
comparatoarelor. Rezultatul compara"iei pozi"ioneaz! un bit ntr-un registru de stare.

Acest MC nu are integrat! memorie RAM; aceasta trebuie conectat! n exterior, ceea ce
este un dezavantaj. Se poate conecta RAM astfel nct RAM+OTP s! fie maximum 64K.

Controlerul de ntreruperi admite 3 surse externe #i 6 surse de ntrerupere interne,
mascabile, cu prioritate programabil!. 4 linii de cerere de ntrerupere sunt alocate portului
3 pentru protocoalele hanshake #i 2 linii sunt alocate timerelor. Circuitul admite o
frecven"! de lucru de maximum 16MHz.

Sunt posibile 2 moduri de lucru cu economie de energie:
modul HALT, n care intr! cu instruc"iunea HALT, care opre#te tactul UC, dar nu
#i tactul extern. Timerele #i controlerul de ntreruperi r!mn active. Circuitul poate
fi scos din starea de HALT cu o cerere de ntrerupere.
modul STOP, n care este oprit #i tactul extern, asigur! un consum mai mic de
10A. Ie#irea din starea STOP se poate face doar prin RESET.

Cu acest nucleu firma Zilog a construit MC pentru diferite aplica"ii. MC Z86L82 a fost
proiectat pentru a realiza func"ii specifice telecomenzilor n infraro#u. Circuitul este
echipat n plus cu RAM (256 octe"i) #i un modul de generare #i recep"ie automat! a
#irurilor complexe de semnale. Acest modul este format dintr-un registru
temporizator/num!r!tor de 8 bi"i #i unul de 16 bi"i, Fig. 10.48.






















Timer 16 bi"i
Registru de captur!
Registru de nc!rcare
Timer 8 bi"i
Registru de nc!rcare
Registru de captur!
$I/SAU logic
T16






T8/T16





T8
Filtru pt.
Glitch-uri #i
detec"ie de
front
Fig. 10.48. Modul de generare #i recep"ie automat! a #irurilor de caractere
237
Modulul de generare #i recep"ie se ocup! cu modularea #i demodularea semnalelor pentru
transfer n infraro#u. Modularea se face dup! un anumit algoritm #i elibereaz! unitatea
central! de aceast! sarcin!.

Timerele au mai multe moduri de lucru:
mod num!rare - num!r! pn! la valoarea programat! apoi se opresc sau pot
relua num!rarea;
mod demodulare - ncarc! serial #irul de date ncepnd cu primul front.

n orice moment con"inutul timerelor poate fi nc!rcat n registrele de nc!rcare #i citit de
UC. Ie#irea se poate face cu un $I/SAU logic ntre timere, ceea ce creeaz! posibilitatea
inser!rii unor semnale de tact n semnalul emis.

Un alt MC a fost conceput pentru aplica"ii de televiziune digital! (DTC) pentru a echipa #i
controla receptoare TV de televiziune digital! sau receptoare de satelit. n jurul nucleului
Z8 au fost integrate un generator de caractere, o memorie video RAM #i canale PWM.
Memoria ROM pentru generatorul de caractere #i RAM sunt utilizate la suprapunerea pe
ecran a unor informa"ii (OSD On Screen Display) iar canalele PWM pentru ob"inerea
tensiunii de acord #i nivelul semnalului audio.

Schema bloc a circuitului este dat! n Fig. 10.49.





















10.4.3. Familia COP8 (National Semiconductor)

MC COP8 sunt circuite avansate care pot include un num!r nsemnat de interfe"e
speciale, ca SPI, convertoare A/D, CAN, MICROWIRE, #i sunt proiectate n vederea
EMC, cu o radia"ie emis! mic! (Quiet Design) ( www.national.com/cop8 ).

Schema bloc a acestui MC (COP888) este dat! n Fig. 10.50.
Nucleu Z8
8K octe"i ROM
Timer
Ceas de gard!
On Screen Display OSD
RAM 128 octe"i
ROM 3K octe"i
Porturi I/O
P3(5 b) P6(8b)
3x6 bit PWM

1x14 bit
PWM
3x8 bit
PWM
HSYNC VSYNC RED GREEN BLUE BLANK OSCIN
Fig. 10.49. Schema bloc a MC Z90102 folosit n aplca"ii de televiziune digital!
238






























Circuitul are o arhitectur! Harvard modificat!. Ca #i n arhitectura Harvard, memoria RAM
pentru date #i memoria ROM pentru program au propriile spa"ii de adrese #i magistrale
proprii de adresare. Frecven"a maxim! la care poate lucra circuitul este 10MHz, stabilit!
din exterior cu un cristal de cuar".

Unitatea central! poate executa anumite instruc"iuni (adunare, sc!dere, opera"iile logice #i
deplasarea) ntr-un singur tact (1s). UC are 5 registre: un acumulator A de 8 bi"i, PC de 15
bi"i (separat in dou! registre PU #i PL), un registru index pentru adresare B care poate fi
incrementat/decrementat automat, un registru pentru adresare alternativ X, indicatorul de
stiv! SP. Registrele sunt mapate n zona de memorie, mai pu"in A #i PC. UC permite 10
modurile de adresare, dintre care modurile indirecte pot fi cu autoincrementare sau
autodecrementare. Modurile de adresare sunt:
indirect! prin registru - operandul din RAM este adresat cu con"inutul
registrului B sau X
indirect! prin registru cu autoincrementare sau autodecrementare
direct!
imediat!
imediat! scurt! - con"ine un cmp de 4 bi"i pentru operand (are 1 ciclu)
Unitatea central! COP888
-Timer T0 (16bi"i)
-Controller de ntreruperi
-Regi#trii interni
-Unitate aritmetic! #i logic!
-Interfa"! MICROWIRE PLUS
Memorie
-8Kocte"i ROM
-192octe"i RAM Timer T1,T2
(16 bi"i)
Interfa"!
serial! SPI
USART
CAN
Bus
CA/D
Modul I/O (8x8bi"i)
C E F G L M N D
MIWU
Fig. 10.50. Schema bloc a MC din familia COP8
239
indirect! - folosind ca adres! registrul acumulator ca 8 bi"i mai pu"in
semnificativi
relativ! (pentru salturi)
absolut! pentru salturi (se poate introduce o adres! de 12 bi"i pentru salt)
absolut! lung! (se poate introduce o adres! de 15 bi"i de salt)
indirect! - adresa de salt este indicat! de acumulator (cei mai pu"ini
semnificativi bi"i).

MC are 55 de instruc"iuni:
ADD- #i ADC adunare
SUBC- sc!dere cu Carry
AND, OR, XOR- $I, SAU, SAU EXCLUSIV logic
IFEQ, IFNE, IFBNE - instruc"iuni de verificare pentru salt, dac! este egal, dac! nu,
dac! B nu este egal
SBIT, RBIT, IFBIT- pozi"ionare bit, Reset bit, dac! bit
RPND- Reset intern
LD- nc!rcare
X- schimbare con"inut cu memoria
CLR- #tergere A
INC, DEC- incrementare, decrementare
LAID- nc!rcare direct din ROM
RRC, RLC- rota"ie
SWAP- interschimbarea niblurilor n A
SC, RC, IFC, IFNC- pozi"ionare Carry, Reset, dac!, dac! nu
POP, PUSH- opera"ii cu stiva
JMPL, JMP, JP, JID- salt absolut lung, salt absolut, salt relativ, salt indirect
JSRL, JSR- salt la subrutin! lung, scurt
RET- ntoarcere din subrutin!
RETI- ntoarcere din ntrerupere
NOP- nici o opera"ie

Porturile I/O sunt portul C de 8 bi"i bidirec"ional, portul D de 8 bi"i de ie#ire cu
posibilitatea unui curent mare de ie#ire (10mA), port F de 8 bi"i bidirec"ional, port G de 8
bi"i bidirec"ional (cu semnifica"ii duble pentru MICROWIRE, timer #i ceas de gard!),
portul I de 8 bi"i folosit #i pentru intr!rile convertorului A/D, port L de 8 bi"i folosit #i
pentru USART #i sistemul MIWU (Multi-input Wake up ), portul M de 8 bi"i bidirec"ional
folosit #i pentru SPI, MIWU, CAN #i timer #i portul N de 8 bi"i bidirec"ional folosit #i ca
expander pentru comanda mai multor dispozitive SPI slave.

MC COP8 dispune de 3 timere (T0, T1, T2) asociate cu registre de nc!rcare #i captur!.
Timerul T0 este un timer de 16 bi"i care num!r! tactul sistemului, folosit pentru st!rile cu
economie de energie (starea inactiv!). Utilizatorul nu poate scrie sau citi acest timer.
Timerele 1 #i 2 sunt identice, de 16 bi"i, asociate fiecare cu 2 registre R1A #i R1B (R2A #i
R2B). Fiecare timer are asocia"i 2 pini T1A #i T1B (T2A #i T2B). Timerele au 3 moduri de
lucru:
generare PWM independent de procesor. UC trebuie s! ncarce parametrii
semnalului PWM, #i apoi generarea este continu!. La fiecare dep!#ire timerul
este nc!rcat alternativ din registrele RA sau RB n care sunt stocate datele
pentru factorul de umplere;
240
num!rare a evenimentelor externe, n care timerul num!r! avnd ca tact de
intrare pinul extern TA (pe frontul pozitiv sau negativ, programabil). Cnd
timerul s-a umplut este posibil! generarea unei cereri de ntrerupere;
mod de captur!, n care circuitul poate m!sura perioade de timp sau frecven"e
din exterior. Timerul num!r! cu tact intern. Registrele RA #i RB pot fi nc!rcate
cu con"inutul timerului, nc!rcarea fiind comandat! de cei doi pini externi.

Circuitul admite moduri de lucru cu economie de energie, modul inactiv (Idle) n care
oscilatorul #i timerul 0 func"ioneaz! #i modul HALT n care toate activit!"ile MC sunt
oprite. Ie#irea din modul HALT se poate face prin RESET, prin modalitatea Multi Wakeup
sau de la CAN. n modul inactiv consumul de energie scade la o treime din consumul
normal. Revenirea din starea inactiv! se poate face la fel, prin RESET, prin sistemul Multi
Wakeup sau de la interfa"a CAN. Intrarea n mod inactiv poate fi ntrziat! cu o perioad!
de timp programat! cu timerul T0. Sistemul Multi Wakeup permite ca ie#irea din st!rile cu
economie de energie s! fie comandate de la pini exteriori, ace#tia fiind pinii portului L #i
M. Bi"ii care pot solicita trezirea pot fi valida"i individual printr-un registru de validare. De
asemenea se poate programa #i frontul care poate solicita trezirea MC. Trezirea MC nu este
brusc!, nti este pornit timerul 0 care num!r! 256 tacte, permi"nd astfel tactului s! treac!
de unele varia"ii de form! tranzitorii. Circuitul poate fi trezit #i de o activitate pe magistrala
CAN, dar cadrul de date care produce trezirea circuitului se pierde.

MC COP8 sunt prev!zute cu monitor de tact, care este un circuit de protec"ie cu rolul de a
rejecta un tact cu frecven"a foarte mic!. Astfel se garanteaz! rejec"ia unui tact de 10Hz #i se
garanteaz! c! un tact de min. 10kHz nu este rejectat. n modurile de economie de energie
unde se opre#te tactul se semnalizeaz! o eroare de c!tre monitorul de tact. Semnalizarea
erorii se realizeaz! prin pinul exterior G1 al portului G.

10.4.3.1. Interfa!a serial# USART

Spre deosebire de majoritatea MC care au interfa"a serial! sincron! diferit! de cea
asincron!, COP8 are un modul USART. Transmisia poate avea loc cu tact intern (asincron)
sau cu tact extern (sincron). La transmisia sincron! sunt posibile mai multe tipuri de cadre,
formate dintr-un bit de START, 7, 8 sau 9 bi"i de date, cu paritate sau f!r! #i bi"i de STOP.
Schema bloc a blocului USART este dat! n Fig. 10.51.

Caracterele seriale sunt transmise sau recep"ionate serial n registrele de transmisie sau
recep"ie. La recep"ia unui caracter, acesta se ncarc! n bufferul de recep"ie #i se cere o
ntrerupere #i eventual se comand! intrarea MC n stare activ! dac! era n stare inactiv!,
prin MIWU. La emisie, un caracter se introduce n bufferul de transmisie de unde este
trecut n registrul de deplasare #i se transmite serial, cerndu-se #i o ntrerupere.

Ceasul se poate selecta intern sau extern. Dac! este selectat ceasul intern, el se formeaz!
din tactul sistemului cu o divizare printr-un num!r!tor de 16 bi"i (prescalare) #i apoi un
num!r!tor de 11 bi"i.

Comanda USART se realizeaz! cu un registru de stare #i control.



241


























10.4.3.2. Convertorul A/D

Circuitul COP888 con"ine un convertor A/D cu aproxima"ii succesive, cu 8 canale
#i intr!ri multiplexate. Convertorul admite att intr!ri ct #i unipolare. Convertorul poate
face o singur! achizi"ie #i se opre#te sau poate fi comandat s! fac! achizi"ii continui (n
acest mod rezultatul ultimei achizi"ii este ntotdeauna n registrul cu rezultatul achizi"iei).
Convertorul este comandat de un registru de comand! ENAD care con"ine selec"ia
canalului, selec"ia modului de lucru, tactul pentru convertor (tactul sistemului divizat cu 2,
4, 6, 12) #i startul conversiei. Cnd se termin! o conversie, convertorul pozi"ioneaz! un bit
n registrul de comand! ENAD #i pune rezultatul n registrul rezultat ADRSLT. Achizi"ia
se face pe 8 bi"i, iar timpul minim pentru o conversie este de 600ns.

Unul din membrii familiei (COP888EK) este echipat cu un bloc analogic care permite
implementarea func"iei de convertor cu integrare cu o singur! pant!, Fig. 10.52. Modulul
analogic permite comutarea la intrarea unui comparator a unuia dintre cele 6 canale
analogice sau a unei tensiuni de referin"!. La cealalt! intrare a comparatorului se
conecteaz! un condensator n exterior. Condensatorul este nc!rcat de un generator de
curent. Perioadele de timp n care comparatorul este n una sau alta dintre st!ri se pot
determina cu modulul timer.




Magistrala intern!
Registru de
deplasare la
recep"ie
Logica
WAKE UP
Registru de
deplasare la
transmisie
Cerere de
ntrerupere
c!tre UC
Buffer
recep"ie
Buffer
transmisie
Registru de
prescalare
Rata Baud
Selec"ie ceas
CLK TxD RxD
Fig. 10.51. Schema bloc a USART
242





















10.4.3.3. Interfa!a CAN (Controller Area Network)

n acest MC este implementat! o interfa"! CAN de joas! vitez! (1Mbps cu un
oscilator de 10MHz - specifica"iile CAN 2.0 B) pentru cuplarea la magistrala CAN.
Circuitul este echipat cu cte 2 registre pentru emisie #i 2 pentru recep"ie, ceea ce nseamn!
c! pot fi recep"ionate automat doar cadrele de 16 bi"i. Pentru recep"ionarea sau emisia
cadrelor mai lungi trebuie testat bitul de buffer de recep"ie plin (RBF) sau buffer de
transmisie gol (TBE). La recep"ia sau emisia unui caracter se poate genera o ntrerupere.

La transmisia CAN datele sunt codificate pentru a fi trimise pe linie n cod NRZ, iar la
fiecare grup consecutiv de 5 bi"i cu aceea#i valoare logic! se introduce un bit (deci o
tranzi"ie) care se extrage la decodificare. Nivelele pe linie sunt numite dominant (0) #i
recesiv (1).

Transferul de date prin CAN se face cu cadre (blocuri de date) care sunt citite de toate
dispozitivele cuplate la CAN dar sunt re"inute de acestea doar daca le sunt adresate.

Structura unui cadru CAN este:
un bit de START OF FRAME (un bit dominant) - care se poate emite doar dac!
magistrala este n stare inactiv!;
cmpul de arbitrare - con"ine cmpul de identificare #i bitul RTR (Remote
Transmission Request);
cmpul de control - con"ine lungimea cmpului de date #i m!rimea cadrului;
cmpul de date - poate con"ine 1-8 octe"i de date;
cmpul CRC - se termin! cu un bit recesiv.


+Vcc
Surs! de
curent
Referin"! de
tensiune (Vcc/2)
6 canale
analogice
Timer
Fig. 10.52. Schema bloc a modulului analogic
243

Cadrele pot fi:
de date - transmise de orice dispozitiv CAN;
cadre de comand! (Remote) - dac! un master pozi"ioneaz! bitul RTR,
dispozitivul CAN adresat poate trimite date dup! transmisia cadrului curent. Un
cadru de comand! nu con"ine date.
cadre de control - pot indica o eroare sau o suprascriere. Un cadru de
suprascriere poate fi emis de orice dispozitiv care nu a putut prelua mesajul #i
urm!torii octe"i s-au nscris peste primii.

Fiecare dispozitiv CAN recep"ioneaz! toate cadrele #i dispune de un filtru de acceptare
care selecteaz! cadrul cu adresa proprie a dispozitivului. n configura"ie se pot ad!uga noi
dispozitive, cu adres! proprie, f!r! nici un efort. Dac! se recep"ioneaz! un cadru eronat,
toate dispozitivele CAN trimit un cadru de control care indic! o eroare. Fiecare cadru
eronat incrementeaz! n dispozitiv un num!r!tor de erori (care este decrementat de cadrele
valide). Un num!r de erori mai mare de o anumit! limit! produce decuplarea dispozitivului
de la magistrala CAN.

Schema bloc a modulului de interfa"! CAN este dat! n Fig. 10.53.






























Registre de
comand!,
stare #i date
Circuit pt. comanda interfe"ei
Serializare/ deserializare Gestionarea erorilor
Transceiver
Generare CRC
Registre de deplasare
Magistrala CAN


Tx




Rx

V
REF
(Vcc/2)
TxEN
MUX
Wakeup V
REF

Inserare (recunoa#tere adres!)
Introducerea bi"lor de sincronizare

Magistrala
intern!
Fig. 10.53. Schema bloc a modulului de interfa"! CAN
244
Datele de emis sunt serializate, se calculeaz! CRC, se insereaz! bi"ii de sincronizare #i
adresa dispozitivului de destina"ie, apoi datele sunt validate de TxEN ntr-o poart! care
admite trecerea n nalt! impedan"!. La recep"ie se poate face compararea cu un nivel de
tensiune de referin"!, apoi #irul de date este trecut prin filtrul de acceptare, se extrag bi"ii
de sincronizare #i se verific! CRC. Dac! se recep"ioneaz! un cadrul cu erori este
incrementat num!r!torul de erori, iar dac! nu, informa"ia este deserializat! #i este informat!
unitatea central! c! un cadru (2 oce"i) poate fi citit.
Func"ionarea interfe"ei poate fi programat! cu 15 registre de comand!/ stare/ date.

10.4.3.4. Interfa!a MICROWIRE

MICROWIRE PLUS este o magistral! serial! sincron! introdus! de National
Semiconductor pentru a conecta dispozitivele din familie: MC, convertoare, interfe"e,
memorii. Aceast! magistral! a fost introdus! odat! cu familia COP4. Structura este foarte
asem!n!toare cu cea a interfe"ei SPI, deci conectarea ntre elemente este foarte simpl!. Ca
#i la SPI, dispozitivul Slave cu care se face transferul trebuie selectat cu o linie special! de
selec"ie. Transmisia fiec!rui bit este sincron! cu un impuls de tact.

Magistrala const! n 3 linii, una de intrare de date, una de ie#ire de date #i o linie de tact.
Tactul poate fi intern sau extern. Operarea cu tact intern se nume#te operare n mod Master,
iar cea cu tact extern Slave. Schema bloc a interfe"ei MICROWIRE este dat! n Fig. 10.54.

















n modul Master #i Slave trebuie definite liniile de intrare ie#ire corespunz!tor (n mod
Master tactul este de ie#ire) ca linii speciale ale portului G. Pozi"ionarea bitului MSEL n
registrul de control valideaz! func"ionarea interfe"ei. Selec"ia tactului cu care se face
emisia/recep"ia se poate face prin selec"ia unui ceas extern sau ceas intern (tactul sistemului
divizat cu 2,4,8) tot n registrul de control.

Umplerea registrului de deserializare este indicat! automat prin pozi"ionarea bitului BUSY
din registrul PSW (Processor Status Word), pentru ca datele s! poat! fi preluate.

n Fig. 10.55. se arat! conectarea mai multor dispozitive MICROWIRE pe magistral!.

Magistrala intern!
Registru de
deplasare
MSB LSB
Registru de
control
Selec"ie tact
SO SI SK
Cerere de
ntrerupere
c!re UC
Fig. 10.54. Schema bloc a interfe"ei MICROWIRE
245


















Interfa"a MICROWIRE este important! #i pentru c! permite nc!rcarea unui program la
pornirea MC dintr-un EEPROM cu interfa"! MICROWIRE, de exemplu NMC9306 (256
bi"i) printr-o conexiune simpl!, Fig. 10.56.













10.4.4. Familia TMS370 (Texas Instruments)

Familia TMS 370 const! n 130 de MC standard #i 27 de module func"ionale
diferite, cu care se pot realiza la cerere noi MC, bazate pe o arhitectur! von Neumann.
Memoria #i dispozitivele I/O mpart aceea"i zon! de adresare. Frecven"a maxim! de lucru
este de 5MHz. Schema bloc a MC din familia TMS 370 este dat! n Fig. 10.57.

Unitatea central! este pe 8 bi"i de date, are un num!r!tor de program (PC), indicator de
stiv! (SP), un registru de stare #i registre de lucru. Registrele de lucru (256 situate n RAM)
pot fi accesate ntr-un singur ciclu #i sunt mapate la nceputul memoriei. Arhitectura
unit!"ii centrale, numit! registru la registru, permite executarea de instruc"iuni aritmetice #i
logice direct ntre 2 registre, f!r! intermediul acumulatorului, de exemplu instruc"iunea:

ADD R24, R47 adun! con"inutul registrului 24 cu con"inutul registrului 47,
cu rezultatul n 47.
COP
Master

CS1


CS2

CS3




SI

SO
SK
Convertor
A/D

DO DI SK
EEPROM





DO DI SK
Driver LCD








DO DI SK
Fig. 10.55. Conecatrea dispozitivelor la magistrala MICROWIRE
COP8
SO

SI
SK




G0
NMC9306
DI
DO

SK CS
Fig. 10.56. Schem! de conectare a unui EPROM prin magistrala MICROWIRE
246
























Magistralele de adrese #i date sunt scoase n exterior prin porturile A, B, C #i D.
Controlerul de ntreruperi poate gestiona 11 nivele de ntrerupere, din care 3 externe.

Memoria EEPROM este de 256 sau 512 octe"i #i poate fi programat! att cu inscriptoare
comerciale ct #i de MC n circuit (MC are integrat! sursa de tensiune pentru programare).
Memoria ROM/OTP/EPROM poate fi de 2-48K octe"i.

TMS370 are un num!r maxim de 41 de pini I/O, func"ie de tipul circuitului #i func"ie de
capsul!, grupa"i n 6 porturi, A, B, C, D, G, H, programabili bit cu bit, ca intrare sau ca
ie#ire.

Timerul 1 este un timer pe 16 bi"i #i poate fi configurat ca:
num!r!tor de prescalare pe 8 bi"i care reprezint! tactul pentru celelalte timere #i
pentru ceasul de gard!;
num!r!tor de evenimente pe 16 bi"i, n care num!r! impulsurile de la un pin
exterior;
acumulator de impulsuri n care poate m!sura l!"imea impulsurilor;
intrare de captur!, n care poate stoca valoarea num!r!torului la un impuls
exterior;
2 registre de comparare care semnalizeaz! printr-o cerere de ntrerupere
egalitatea num!r!torului cu a celuilalt registru de comparare;
generator independent PWM.



Magistrala
de adrese #i
date n
exterior
Unitatea
central!
TMS370
Memorie program
2-48KB ROM
sau 8-48KB EPROM
Timer
1-16 bi"i
2A-16 bi"i
2B-16 bi"i
Interfa"!
serial!
SPI
3x
CA/D
Modul I/O (5x8bi"i +1x1bit)
A B C D G H
2xSCI
Memorie de date
128B-3,5KB RAM
Memorie de date
256-512B EEPROM
Controller de
ntreruperi
PACT
Mini SCI
Ceas de gard!
Ceas de
gard!
Fig. 10.57. Schema bloc a MC din familia TMS 370
247
Timerul 2A #i 2B sunt 2 timere de 16 bi"i care pot fi configurate ca:

tacte de uz general;
num!r!tor de evenimente pe 16 bi"i, n care num!r! impulsurile de la un pin
exterior;
acumulator de impulsuri n care poate m!sura l!"imea impulsurilor;
intrare de captur!, n care poate stoca valoarea num!r!torului la un impuls
exterior;
2 registre de comparare care semnalizeaz! printr-o cerere de ntrerupere
egalitatea num!r!torului cu a celuilalt registru de comparare;
generator independent PWM.

Ceasul de gard! este implementat separat de timer #i dac! nu este folosit ca ceas de gard!
poate fi folosit ca timer.

Unele MC din familie au un modul timer programabil (PACT Programmable Acquisition
and Control Timer) care, odat! programat nu mai necesit! interven"ia UC dect la servirea
ntreruperilor. PACT con"ine:
un pin de captur! #i un registru de 8 bi"i de captur! pentru num!rarea
evenimentelor externe;
timer de 20 de bi"i;
ceas de gard!;
interfa"! serial! SCI full duplex, cu implementare minim!.

Interfa"a serial! SCI este compus! din 2 interfe"e, SCI1 este pe 3 linii, iar SCI2 este pe 2
linii. Aceste interfe"e ofer! posibilitatea transferurilor asincrone cu vitez! de maxim
156kBauds, full duplex, cu buffere duble att la recep"ie ct #i la transmisie. Modulul
serial controleaz! formatul datelor, protocolul #i detec"ia de erori. UC trebuie doar s! scrie
octetul de transmis n registrul de transmisie sau s! preia octetul recep"ionat din registrul de
recep"ie cnd a fost ntrerupt! de canalul SCI.

Modulul serial SPI realizeaz! transferul de date sincron.

Convertorul A/D este un convertor cu aproxima"ii succesive, pe 8 bi"i. Num!rul de canale
de conversie difer! n func"ie de tipul circuitului #i capsul!, 4 canale la capsula cu 40 de
pini #i 8 canale la capsula cu 44 de pini sau mai mare. Un MC poate avea maxim 3 module
de conversie (ADC1, ADC2, ADC3).

Circuitul admite 2 moduri de lucru cu economie de energie, modul inactiv, n care r!mn
active tactul #i timerul #i modul HALT, n care este oprit #i tactul #i timerul. Con"inutul
memoriei RAM se p!streaz! n ambele moduri.

10.4.5. Familia ST Microelectronics

Firma ST provine din fuziunea firmelor franceze Thomson #i SGS din Italia.
(www.st.com ).


248
10.4.5.1. MC cu logic# dual# (ST5xx)

MC cu logic! dual! (Dual Logic) realizeaz! att opera"ii logice #i aritmetice
booleene ct #i opera"ii fuzzy. Datorit! posibilit!"ii de lucru cu algoritmi fuzzy, care
folosesc o descriere lingvistic! a modelului #i nu una matematic!, aceste MC pot controla
sisteme complexe cu o mare acurate"e. Schema bloc (ST52T301) este dat! n Fig. 10.58.























MC admit un tact de 5, 10 sau 20MHz, depinde de circuit. Exist! variante cu EPROM
pentru prototip #i cu OTP pentru serii mici, echivalente func"ional. Conexiunea cu
exteriorul este realizat! de un port paralel de 8 bi"i, un port serial asincron SCI #i un
convertor analog digital cu 4 canale. Circuitul formeaz! intern #i referin"a de tensiune
pentru convertor. Driverul pentru triac #i canalul PWM pot comanda direct dispozitive de
putere. Timerul poate lucra cu ceas intern sau extern #i are un registru de prescalare.
Circuitul nu are magistralele accesibile la pini externi.

UC cite#te instruc"iunea din EPROM #i dac! este aritmetic! sau logic! o execut! direct, iar
dac! este instruc"iune fuzzy transfer! controlul nucleului fuzzy, care cite#te n continuare
instruc"iunile din EPROM #i le execut! pn! la prima instruc"iune STOP. Este posibil!
amestecarea instruc"iunilor fuzzy cu cele aritmetice #i logice. Este disponibil un set de 26
de instruc"iuni aritmatice #i logice care pot fi executate n 4-7 tacte de ceas. Registrele
unit!"ii centrale sunt PC (11 bi"i) #i un registru de flag-uri.

Exist! 4 spa"ii de adresare diferite:

16 registre de uz general de 8 bi"i, care pot fi referite printr-o adres! zecimal!,
Reg0-Reg15. Reg0-3 sunt conectate direct la intrarea fuzzy;
Cerere de ntrerupere
extern!
Unitatea central! ST5 cu logic!
dual!
-ALU
-Nucleu Fuzzy
Memorie
2Kocte"i EPROM
(OTP)
Unitate de control
-registre
SCI
Port paralel
I/O
Driver PWM
#i pt. triac
CA/D
Referin"!
de tensiune
Timer
Fig. 10.58. MC cu logic! (ST52T301 )-Schema bloc
249
11 registre de intrare de 8 bi"i, IR0-IR10 con"in date sau starea unor interfe"e.
De exemplu primele 4 sunt alocate convertorului A/D pentru valoarea
convertit!, 2 pentru timer, unul pentru portul paralel, etc.;
16 registre de configurare de 8 bi"i care permit configurarea interfe"elor;
3 registre pentru interfe"e de 8 bi"i care con"in datele de ini"ializare pentru
interfe"e;
memoria program de 2K octe"i.

Nucleul Fuzzy are 4 intr!ri cu rezolu"ia de 8 bi"i, 2 ie#iri cu aceea#i rezolu"ie #i posibilitatea
de a procesa reguli fuzzy cu num!r maxim de 8 antecedente #i 16 func"ii pentru fiecare
intrare. Nucleul fuzzy este format dintr-o unitate de calcul ALPHA care realizeaz!
intersec"ia dintre valoarea de intrare #i func"ia aferent! (fuzzyficare), unitatea de calcul care
calculeaz! valoarea de adev!r pentru fiecare regul! #i defuzzyficator care stocheaz!
rezultatul n 2 din registrele de intrare RI. Nucleul fuzzy are 11 instruc"iuni.

Memoria EPROM este mp!r"it! n 3zone:
loca"ii ntre 0 #i 191 - con"ine func"ii fuzzy;
loca"ii ntre 192-201 - con"ine vectori de ntrerupere;
loca"ii ntre 202-2048 - con"ine programul utilizator.

ST5 lucreaz! n 2 moduri, mod Programare sau mod Lucru, func"ie de 3 semnale de la pini
externi. n modul de Programare se poate realiza scrierea EPROM-ului, cu o surs! extern!
de +12V. Tot n modul de programare se poate verifica con"inutul EPROM-ului.

Convertorul A/D este un convertor cu aproxima"ii succesive cu timp de conversie de 32s,
cu tact fix, provenind de la oscilator. n registrul de configurare se specific! comenzi
pentru multiplexor, de exemplu ordinea de conversie a celor 4 canale analogice.
Rezultatele se depun n 4 registre de intrare RI. La sfr#itul unei conversii, convertorul
pozi"ioneaz! un bit care poate fi folosit ca #i cerere de ntrerupere. Prin execu"ia
instruc"iunii:

LDRI Reg0 In0 intrarea analogic! In0 este convertit! #i rezultatul trecut n registrul
Reg0.

Puterea consumat! de circuit poate fi redus! oprind convertorul A/D, ceea ce se poate
realiza cu un bit ntr-un registru de configurare. Tensiunea de alimentare a convertorului
este diferit! de cea a restului circuitului, asigurnd precizia conversiei.

Timerul este un num!r!tor de 8 bi"i asociat cu un registru de prescalare de 16 bi"i.
Con"inutul registrului de 8 bi"i poate fi citit sau scris. Timerul are nevoie de 3 semnale,
CLK, Reset Timer #i START care pot fi generate intern sau extern. Timerul poate genera o
ntrerupere la sfr#itul num!r!rii sau la apari"ia unui semnal de START. Se pot astfel
realiza mai multe moduri de lucru ale timerului.

Portul paralel este un port de 8 bi"i, bidirec"ional, la care sensul transferului se poate
programa ntr-un registru de configurare. Portul paralel este asociat cu o linie (READY) cu
ajutorul careia se poate face un transfer cu protocol handshake.
250
Blocul SCI este un bloc standard UART, cu viteza de maximum 38400 Bauds. Formatul
datelor este: 1 bit de START, 8/9 bi"i de date, 1 bit de STOP. Blocul SCI este format din 3
p!r"i: receptor, transmi"!tor #i generator de rat! de transfer. Blocul de recep"ie este cu
buffer dublu, #i testeaz! bitul de START cu frecven"a de 16x frecven"a de transfer,
eliminnd astfel recep"iile false. Mai mult, exist! posibilitatea de a testa fiecare bit
recep"ionat de 3 ori. E#antioanele ob"inute se compar! #i dac! nu sunt egale se atribuie
bitului valoarea logic! ob"inut! din majoritatea e#antioanelor (votare majoritar!) #i se
pozi"ioneaz! un bit numit bit de recep"ie cu zgomot (NSERR). Cnd s-a recep"ionat un
cuvnt se pozi"ioneaz! un bit care poate cere o ntrerupere.

Modulul triac/PWM permite comanda direct! a unor dispozitive de putere cum ar fi triacul,
IGBT, tranzistoare MOS de putere. Acest modul admite 3 moduri de func"ionare:
mod PWM, se genereaz! un semnal PWM cu frecven"a fix! #i factor de umplere
variabil. Factorul de umplere poate rezulta din calcule sau fuzzy;
mod salv! pentru comanda dispozitivelor de putere, n care se genereaz! un
semnal de perioada re"elei, cu l!"ime care poate rezulta din calcule. Pentru acest
mod de lucru trebuie s! existe un circuit exterior pentru detectarea trecerilor
prin 0 ale tensiunii re"elei;
mod de reglare a fazei pentru comanda dispozitivelor de putere, n care se
genereaz! un semnal de perioada re"elei, cu defazaj variabil, care poate rezulta
din calcule. Pentru acest mod de lucru trebuie s! existe un circuit exterior pentru
detectarea trecerilor prin 0 ale tensiunii re"elei.

10.4.5.2. MC din familia ST6

Aceste MC sunt dedicate aplica"iilor cu costuri reduse. Schema bloc este dat! n
Fig. 10.59.






















Cerere de
ntrerupere
extern!
Unitatea central!
pe 8 bi"i ST6
Memorie:
-128 octe"i EEPROM
-192 octe"i RAM
SPI Port paralel
I/O
UART CA/D de 8
bi"i
Timer de 8 bi"i
Interfa"! pentru LCD
(ST62T80B)
Ceas de gard!
Fig. 10.59. MC ST6 - schema bloc
251
Frecven"a maxim! este de 8MHz. Circuitul este echipat cu 22 de linii I/O, programabile ca
intr!ri sau ie#iri, cu sau f!r! rezisten"e de pull-up.

Unitatea central! ST6 are 6 registre: acumulatorul (A), 2 registre pentru adresare indirect!
(X, Y), 2 registre pentru adresare direct! (V,W) #i PC. Stiva este realizat! hardware, nu
consum! din memoria RAM #i nu este nevoie de indicator de stiv!. Exist! 3 spa"ii de
adresare diferite: spa"iul de date (n RAM), spa"iul pentru stiv! #i spa"iul de program (n
EEPROM).

Familia este echipat! cu 2 timere de 8 bi"i #i un registru de prescalare de 7 bi"i.

Circuitul ST62T80B are o interfa"! pentru LCD. Pentru aceasta, circuitul genereaz! un tact
separat de 32 KHz, care nu este afectat de modurile de economie de energie.

Cu aceea#i unitate central! (ST6) sunt echipate MC pentru aplica"ii TV (ST6391-99), cu
schema bloc din Fig. 10.60.




















Pe lng! nucleul ST6, acest MC are inclus un modul OSD, un bloc cu 6 canale PWM #i un
bloc de conversie A/D prin compara"ie cu 5 nivele de tensiune.

10.4.5.3. MC din familia ST9

Aceast! familie cuprinde MC puternice, echipate cu interfa"! USB, cu frecven"e de
pn! la 24MHz. Configura"ia este dat! n Fig. 9.61.

Unitatea central! con"ine 256 de registre de uz general #i poate executa instruc"iuni
aritmetice, logice, schimburi ntre registre #i memorie sau ntre loca"ii de memorie. Stiva se
define#te n RAM. Unitatea central! controleaz! o magistral! de adrese de 22 de bi"i pentru
memorie, una de 8 bi"i pentru registre #i una pentru DMA #i ntreruperi. Setul de
Unitate central!
ST6
On Screen Display
OSD
Porturi I/O
PA PB PC
2xTimer
6xPWM CA/D
ROM 20K octe"i
RAM 256 octe"i
EEPROM 384
octe"i
R, G, B, VSYNC, HSYNC, BLANK
Ceas de gard! SPI
Fig. 10.60. MC pentru aplica"ii TV (ST6391-99) schema bloc
252
instruc"iuni const! n 94 de tipuri de instruc"iuni cu care se poate lucra pe bit, pe octet sau
pe 16 bi"i, n 14 moduri de adresare.





























Circuitul admite 5 moduri de lucru, din care 4 cu economie de energie:
modul RUN este modul normal de func"ionare;
modul SLOW este un mod de lucru n care energia consumat! se reduce pe
baza ncetinirii func"ion!rii, adic! func"ionarea la un tact mai mic, ob"inut prin
divizarea tactului sistemului;
modul de a#teptare a ntreruperilor suspend! activitatea MC pn! la sosirea
unei ntreruperi. UC nu mai are tact, r!mn active doar interfe"ele #i controlerul
de ntreruperi;
modul HALT n care se poate intra prin execu"ia instruc"iunii HALT. Tactul se
opre#te pentru tot circuitul, #i ie#irea din aceast! stare se poate face doar cu
RESET;
modul STOP n care se poate intra din program #i se opre#te tactul pentru tot
circuitul. Ie#irea din aceast! stare se poate realiza prin trezirea circuitului de la
un pin de trezire cu semnal aplicat din exterior.
Interfa"a USB admite transfer la viteza maxim! a USB (USB 1.1) #i are integrat
transceiverul #i regulatorul de tensiune. Sunt posibile 16 puncte de sfr#it #i se pot conecta
maximum 8 circuite USB. Interfa"a USB are canale DMA pentru transferul de date rapid
cu memoria.
Unitatea central!
8/16 bi"i
ST9
20K ROM,
EPROM sau OTP

Timer
Controller
serial SCC
I2C Modul I/O
P0 P1 P3 P4 P5 P6
A/DC
2K RAM
Interfa"a cu memoria extern!,
16 bi"i de adres!,
8 bi"i de date
Controller de
ntreruperi
Controller USB
Ceas de
gard!
Magistrala de
memorie
Magistrala de
registre
8 ntreruperi
externe
mascabile
+1nemascabil!
Controller DMA
256 registre
Regulator de
tensiune
Gestionarea
trezirii
Fig. 10.61. MC ST9 schema bloc
253
Modulul I/O are 44 de linii bidirec"ionale, cu rezisten"e pull-up sau pull-down,
programabil. Sunt prev!zute linii de curent mare pentru a putea conecta direct LED-uri.

Timerul are la baz! un num!r!tor de 16 bi"i care poate num!ra nainte sau napoi, asociat
cu 2 registre de compara"ie de 16 bi"i. Exist! #i un registru de prescalare de 8 bi"i. Cu acest
timer sunt posibile 12 moduri de operare, cum ar fi generarea de forme de und! complexe,
m!sur!ri de timp sau gener!ri de semnale PWM.

Ceasul de gard! este un timer de 16 bi"i care, dac! nu se folose#te ca ceas de gard!, poate
ndeplini func"ii generale de timp.

Controlerul serial SCC (Serial Communications Controller) poate transfera date serial
sincron sau asincron, cu posibilitatea unei game largi de formate. Pentru a se putea lucra cu
viteze mari de transfer se folosesc dou! canale DMA asociate.

Interfa"a I
2
C poate opera n mod multimaster sau slave #i func"ioneaz! pn! la o vitez! de
400KHz. Orice eveniment pe magistral! (magistral! ocupat!, recunoa#terea adresei proprii)
poate genera o ntrerupere.
Convertorul A/D este un convertor cu aproxima"ii succesive de 8 bi"i care admite 6 intr!ri
analogice multiplexate.

10.4.5.4. MC pentru cartele inteligente (ST19)

Familia ST19 cuprinde MC cu acces serial special concepute pentru a avea pre"uri
mici la cantit!"i mari #i pentru a asigura m!suri de protec"ie a informa"iei. Schema bloc a
MC este dat! n Fig. 10.62.
























Unitatea central! ST19
pe 8 bi"i
RAM 960 octe"i
Sistem de
protec"ie
Administrator
de securitate
Timer de 8 bi"i Interfa"!
serial!
Interfa"! adi"ional!
I/O
ROM utilizator
32K octe"i
EEPROM 8K
octe"i
Magistral! cu acces protejat la memorie
ROM sistem
Generator de
numere aleatoare
Fig. 10.62. MC ST19 schema bloc
254
Memoria nu este cuplat! direct la magistral!, ci prin intermediul unei magistrale securizate
gestionate de administratorul de securitate pe baza gener!rii unor numere aleatoare.

Interfa"a serial! este compatibil! ISO 7816-3, un standard special pentru cartele inteligente.
Alocarea contactelor este de asemenea standard (ISO 7816-2). Tensiunea de alimentare
poate fi ntre 3 #i 5V.

9.4.6. Date comparative pentru MC Low-cost (Z8, COP8, TMS, ST)

Tabel 10.20. Tabel comparativ Z8, COP, TMS, ST
MC

Magistrala de
date
Frecven"a
(MHz)
Linii
I/O
Interfe"e
speciale
Pre" (USD)
Z8 8 8 14 2 0,9
COP87xx 8 10 33 6 10
TMS370C712 8 5 41 4 9
ST62T15 8 8 20 3 5

10.5. MC RISC

10.5.1. Microcontroller PIC

ncepem prezentarea MC cu arhitectur! RISC cu microcontrollerul PIC.
Produc!torul plasat cel mai bine pe pia"a MC PIC este Microchip (www.microchip.com).
Un alt produc!tor important de MC PIC este Motorola. Exist! mai multe familii de MC
PIC; PIC12, PIC16, PIC17.

10.5.1.1. PIC12

Sunt MC cu pre"uri mici #i u#or de utilizat datorit! arhitecturii RISC. MC are un
num!r de 33 de instruc"iuni cu un grad mare de ortogonalitate, din care majoritatea se
execut! ntr-un singur ciclu, iar cele de salt n dou! cicluri. Spa"iul mic ocupat (capsul! de
8 pini) fac aceste MC foarte potrivite aplica"iilor miniatur! precum #i aplica"iilor casnice.
Pentru a putea fi realizat! o #i mai mare economie de spa"iu, circuitul de RESET este
integrat. Sunt disponibile circuite cu OTP, cu EPROM sau EEPROM inclus, care fac
posibil! att realizarea seriilor mari ct #i a prototipurilor sau a aplica"iilor cu elemente care
se modific! (de exemplu aplica"ii de asigurare a securit!"ii cu coduri variabile). Aceste MC
admit o frecven"! de pn! la 4MHz.

MC PIC12 are o arhitectur! Harvard, cu magistrale diferite pentru date #i pentru
instruc"iuni. Acest lucru permite ca magistrala de instruc"iuni s! fie mai mare (de 12 bi"i) #i
ca urmare majoritatea instruc"iunilor pot fi de un cuvnt #i pot fi executate ntr-un singur
ciclu.

Unitatea central! este o unitate pe 8 bi"i care poate realiza func"ii aritmetice #i booleene:
adunare, sc!dere, deplasare #i opera"ii logice cu date care se g!sesc n registrul de lucru
(W) #i n oricare registru de uz general. Setul de instruc"iuni are un mare grad de
ortogonalitate, ceea ce reduce mult timpul necesitat de realizarea unei aplica"ii. O opera"ie
poate afecta bi"ii de stare: Carry (C), Digit Carry (C ) #i Zero (Z). Num!r!torul de program
255
(PC) este un registru de 12 bi"i, ceea ce nseamn! c! poate adresa un spa"iu de 2K cuvinte
de 12 bi"i.
Schema bloc a acestui MC este dat! n Fig. 10.63.

























Setul de registre localizat n RAM con"ine registre cu func"ii speciale #i registre de uz
general. Registrele generale pot fi apelate direct sau indirect, prin intermediul registrului
special FSR (File Select Register). Registrele #i adresele lor sunt date n tabelul 10.21.
(pentru circuitul PIC12C509):

Tabel 10.21. Setul de registre PIC12C509
Registru Adresa(H)
INDF 00
TMR0 01
PCL 02
STATUS 03
FSR 04
OSCCAL 05
GPIO 06
Registre generale 07-1F

INDF nu este un registru fizic, el folose#te registrul FSR pentru adres!ri indirecte;
TMR0 este registrul pentru controlul timerului;
PCL partea mai pu"in semnificativ! a PC;
STATUS arat! starea MC;
FSR registru pentru adresare indirect!;
SDA
date
SCL
tact
Magistral! de date #i adrese
Unitate central!
PC
ALU
Memoria de date
RAM 25 x 8 bi"i sau
41 x 8 bi"i
(set de registre )
Memoria program
ROM/OTP/EPROM
512 x 12 bi"i sau
1024 X 12 bi"i

M
A
G
I
S
T
R
A
L
A


I
N
S
T
R
.
W
Timer Ceas de
gard!
Timer pt.
RESET
EEPROM serial
16 x 8
PIO
Fig. 10.63. PIC12 Schema bloc
256
OSCCAL registru de calibrare a oscilatorului intern, poate mdifica frecven"a de
4MHz a oscilatorului ntre anumite limite;
GPIO pentru programarea pinilor I/O.

Stiva este de 12 bi"i #i este realizat! hard. Nu exist! indicator de stiv! #i nu sunt instruc"iuni
de PUSH #i POP, lucrul cu stiva fiind automat la instruc"iunile CALL #i RETLW. Stiva
admite o adncime de 2 nivele.

Setul de instruc"iuni pentru acest MC este dat n tabelul 10.22.

Tabel 10.22. Setul de instruc"iuni PIC 12
Mnemonic #i
operanzi
Descriere
ADDWF f,d Adun! W cu f
ANDWF f,d $I LOGIC ntre W #i f
CLRF f Face n f to"i bi"ii 0
CLRW Face n W to"i bi"ii 0
COMF f,d Complementeaz! f
DECF f,d Decrementeaz! f
DECFSZ f,d Decrementeaz! f #i trece mai departe dac! este 0
INCF f,d Incrementeaz! f
INCFSZ f,d Incrementeaz! f #i trece mai departe dac! este 0
IORWF f,d SAU W cu f
MOVF f,d Mut! f
MOVWF f Mut! W n f
NOP Nici o opera"ie
RLF f,d Rota"ie la stnga prin Carry
RRF f,d Rota"ie la dreapta prin Carry
SUBWF f,d Sc!dere W din f
SWAPF f,d Schimb! f
XORWF f,d SAU EXCLUSIV W cu f
BCF f,b Bitul b din f este f!cut 0
BSF f,b Bitul b din f este f!cut 1
BTFSC f,b Se testeaz! bitul b din f #i face salt dac! bitul este 0
BTFSS f,b Se testeaz! bitul b din f #i face salt dac! bitul este 1
ANDLW k $I ntre W #i constanta k
CALL k Chemare subrutin!
CLRWDT k Resetare ceas de gard!
GOTO k Salt necondi"ionat
IORLW k SAU ntre W #i k
MOVLW k nc!rcare imediat! a constantei k n W
OPTION k nc!rcare registru de op"iuni
RETLW k ntoarcere din subrutin! cu plasarea k n W
SLEEP Intrarea n mod inactiv
TRIS f nc!rcarea registrului TRIS
XORLW k SAU EXCLUSIV ntre k #i W

257
Dac! valoarea bitului d este 0, rezultatul se stocheaz! n W iar dac! este 1, rezultatul se
stocheaz! n f.
Registrul de op"iuni (OPTION) este un registru special de configurare. Registrul TRIS este
folosit pentru a controla liniile I/O. Un 1 n TRIS pune linia corespunz!toare n nalt!
impedan"!, iar un 0 valideaz! linia.

Liniile de intrare/ie#ire pot fi programate ca intr!ri sau ie#iri cu registrul special GPIO.
Pinii pot avea semnifica"ii duble. La RESET toate liniile se definesc ca intr!ri. Unii pini
pot trezi MC din starea inactiv! (Wake up). Opera"iile de intrare ie#ire se fac prin
intermediul registrului GPIO, de exemplu instruc"iunea:

BCF GPIO,5 ;stabile#te un 0 pe linia 5 de ie#ire

Modulul timer 0 poate fi utilizat n urm!toarele moduri:
temporizator/num!r!tor pe 8 bi"i;
num!r!tor pentru prescalare de 8 bi"i;
ceas din exterior sau din interior.
Schema bloc a temporizatorului cu semnalele de comand! este dat! n Fig. 10.64.














Cu bitul TOC5 se alege sursa tactului, extern! (de la un pin cu semnifica"ie dubl!) sau
intern!. Tacul merge direct la timer sau prin registrul de prescalare (registru de 8 bi"i),
programabil cu bitul PSA. Registrul de prescalare poate fi nc!rcat cu bi"ii PS2, PS1 #i
PS0. To"i ace#ti bi"i de comand! se afl! n registrul de op"iuni. Registrul de prescalare
poate fi folosit #i de ceasul de gard!, dar nu simultan cu timerul 0.

Memoria EEPROM cu care sunt echipate anumite circuite din familie poate fi de 16 octe"i,
poate fi supus! la peste 1 mil. de cicluri de scriere/#tergere #i poate re"ine informa"ia mai
mult de 40 de ani. Transmisia se face serial sincron pe dou! fire, unul de tact (SCL) #i unul
de date, bidirec"ional (SDA), mapate n registrul GPIO ca bit 6 #i bit 7, f!r! a avea
conexiune n exterior. Protocolul pentru transferul de date poate avea loc doar dac!
magistrala de date nu este ocupat!, cu SDA #i SCL=1. Un START este determinat de
frontul SDA din 1 n 0, iar un front SDA din 0 n 1 reprezint! un STOP. Data trebuie s! fie
stabil! pe SDA pe durata unui impuls de tact SCL (o tranzi"ie din 1 n 0, urmat! de una din
0 n 1). Subrutinele de scriere/citire a EEPROM-ului sunt disponibile pe site-ul firmei.

Alegere
tact
Fosc/4
(intern)


GP2
(TOCKI)
(extern)
TOC5
Prescalare
Tact f!r!
sau cu
prescalare
PS2 PS1 PS0 PSA
TIMER
Magistrala de date
Fig. 10.64. Schema bloc a temporizatorului PIC12
258
Pentru a asigura siguran"a rul!rii corecte a programului, circuitul este echipat cu un ceas de
gard!, care poate fi resetat printr-o instruc"iune special!, asigurnd o ntrziere de 18ms
pn! s! declan#eze un RESET.

Familia PIC12 are posibilitatea de lucru ntr-un mod cu economie de energie, numit
SLEEP. n modul SLEEP oscilatorul este oprit, iar pinii I/O #i p!streaz! starea. Intrarea n
SLEEP se face cu o instruc"iune special!. MC poate fi scos din acest mod de lucru printr-
un front aplicat la pin extern sau de ceasul de gard!.

Ca #i mod de generare a tactului extern, circuitul poate lucra n mai multe feluri:
cu cristal extern conectat la GP5/OSC1 #i GP4/OSC2 dup! o schem! standard;
cu generator de tact extern, cuplat ntre GP5/OSC1 #i mas!;
pentru aplica"ii care nu sunt critice la timp, se poate conecta n exterior la GP5
un grup RC, cu R (3k-100k) la +5V #i C (20pF) la mas!;
MC are un generator intern de 4MHz, a c!rui frecven"! poate fi modificat! prin
scrierea registrului OSCCAL.
Alegerea sursei tactului, precum #i activarea ceasului de gard! se fac cu un registru de
configurare (de 12 bi"i) care nu este accesibil utilizatorului, fiind o informa"ie scris! n
PROM/ EPROM la adresa FFFh.

Un RESET poate fi generat de una din urm!toarele surse:
-la conectarea tensiunii de alimentare, POR Power On Reset;
-un RESET extern /MCLR pe pinul GP3;
-un RESET cnd circuitul este n mod SLEEP pe /MCLR;
-de la ceasul de timp real n operare normal!;
-de la ceasul de timp real n mod SLEEP;
-trezirea din mod SLEEP prin schimbarea st!rii unui pin extern.
Identificarea sursei de RESET se face prin pozi"ionarea unor bi"i n registrul de stare,
registru al c!rui con"inut nu se modific! prin RESET.
Memoria poate fi programat! n circuit (variantele cu EPROM). Aceasta se realizeaz!
simplu, cu 2 linii, una de date #i una de tact, conform Fig. 10.65.















Intrarea n mod programare se face cu GP1 #i GP0 "inu"i la 0 pe un front cresc!tor al
/MCLR.
Inscriptor
(ex. Calc. PC)
+5V
GND
Vpp
CLK
D I/O
PIC12C5xx

Vdd

Vss

/MCLR/Vpp

GP1

GP0
Fig. 10.65. Conexiune pentru programarea
EPROM
259
Pentru a sublinia dimensiunea #i simplitatea de utilizare a acestui MC, n Fig. 10.66. este
descris! capsula circuitului.









10.5.1.2. PIC16

Cu o arhitectur! asem!n!toare familiei PIC12, aceste MC au cteva mbun!t!"iri:
35 de instruc"iuni fa"! de 33;
frecven"a maxim! 20MHz fa"! de 4;
posibilitatea de lucru n ntreruperi, cu 7 surse interne #i o surs! extern!;
stiv! automat! cu 8 nivele;
13 linii I/O cu posibilitatea stabilirii individuale a sensului de transfer #i cu o
linie de putere pentru comanda direct! a unui LED;
magistrala de instruc"iuni este pe 14 bi"i, fa"! de 12 bi"i;
memoria ROM este de 512 x 14 cuvinte pn! la 2K x 14 cuvinte;
memoria RAM este de 80-128 de octe"i.
Aceste MC sunt livrate n capsule cu 20 de pini.
ntreruperile sunt controlate de un registru de comand! a ntreruperilor care poate valida
sau invalida global sistemul de ntreruperi #i individual pe fiecare linie. Fiecare interfa"!
care poate cere ntrerupere are ata#at un bit care poate fi testat pentru a determina sursa
ntreruperii.

Datorit! posibilit!"ii de lucru n ntreruperi, timerul 0, care func"ioneaz! la fel ca la PIC12
poate cere ntrerupere la trecerea num!r!torului de la FFh la 00h. ntreruperea poate fi
mascat!.

Pentru cre#terea siguran"ei n func"ionare familia PIC16 are integrat un circuit de protec"ie
care genereaz! un RESET la sc!derea tensiunii de alimentare (Brown-Out Reset). Acest
circuit poate fi validat sau invalidat cu un bit de comand!.

MC din familia PIC 16 pot fi echipate cu o diversitate mult mai mare de interfe"e, cum ar fi
comparatoare, convertoare ADC #i DAC, USART, I
2
C, SPI, PWM etc. Circuitul
PIC16C64x este echipat cu 2 comparatoare analogice. Intr!rile lor sunt multiplexate cu
pinii I/O 0-3 #i cu o referin"! de tensiune care poate fi folosit! pentru comaparatoare. Cu un
registru de comand! n zona registrelor cu func"ii speciale se poate programa modul de
comparare. Se poate programa ca ie#irea comparatoarelor s! cear! ntrerupere.
Comparatoarele pot fi programate s! lucreze cu referin"! extern! sau intern!. n modul
SLEEP comparatoarele r!mn active #i pot trezi circuitul. Dac! curentul consumat de
comparatoare n mod SLEEP este prea mare, ele pot fi dezactivate prin registrul de
comand!. Modulul care genereaz! referin"a de tensiune este un grup de 16 rezisten"e care
PIC12C
1 8
2 7
3 6
4 5
Vss
GP0
GP1
GP2/T0CKI
Vdd
GP5/OSC1
GP4/OSC2
GP3/MCLR/Vpp
Fig. 10.66. Capsula PIC12
260
divizeaz! tensiunea de intrare cu un factor programabil. Modulul poate fi validat sau
invalidat pentru economia de energie.

Circuitul PIC16C71x este echipat cu convertor A/D #i un bloc suplimentar de timere.
Convertorul A/D este un convertor cu aproxima"ii succesive pe 8 bi"i, cu 4 intr!ri analogice
multiplexate #i cu circuit de e#antionare-memorare. Tensiunea de referin"! poate fi cea de
alimentare sau o referin"! extern! la un pin I/O cu semnifica"ie dubl!. Convertorul A/D
poate lucra #i n modul SLEEP, pentru acest mod de lucru fiind integrat n circuit un
oscilator propriu pentru convertor. Convertorului i sunt ata#ate 3 registre, 2 de comand! #i
unul de date. Cu registrele de comand! se poate programa:
selec"ia tactului pentru convertor (Fosc/2, /8, /32 sau ceas propriu);
selec"ia canalului analogic;
un bit pentru START conversie;
un bit pentru terminare conversiei - poate fi citit #i testat prin program, sau
poate cere o ntrerupere;
un bit pentru oprirea convertorului pentru a nu mai consuma curent, dac! nu
este folosit n mod SLEEP.
Modulul suplimentar de timere este numit CCP (Capture Compare PWM), dup! func"iile
pe care le poate ndeplini (un MC poate avea unul sau mai multe module CCP). Modulul
CCP con"ine un registru de 16 bi"i #i folose#te timerele suplimentare 1 #i 2. Modurile de
lucru posibile pentru modulul CCP sunt:
mod captur$ - la apari"ia unui eveniment la pinul exterior 3, registrul CCP se
ncarc! cu valoarea din timerul 1. Un eveniment poate fi un front cresc!tor, unul
descresc!tor, la fiecare 4 sau 16 fronturi cresc!toare (prescalare). n momentul
evenimentului se poate cere o ntrerupere.
mod comparare - registrul CCP este permanent comparat cu con"inutul
timerului 1. Dac! apare o coinciden"!, se semnalizeaz! prin schimbarea st!rii
pinului extern 3. n acela#i moment se poate cere o ntrerupere.
mod PWM - se folosesc 2 timere, 1 #i 2, unul pentru a determina perioada
semnalului #i cel!lalt factorul de umplere. Ie#irea PWM se face tot la pinul 3.

10.5.1.3. PIC17

PIC17 are urm!toarele mbun!t!"iri fa"! de PIC16:

58 de instruc"iuni fa"! de 38;
frecven"a maxim! 33MHz fa"! de 20;
stiv! automat! cu 16 nivele fa"! de 8;
33 de linii I/O cu posibilitatea stabilirii individuale a sensului de transfer #i cu o
linie de putere pentru comanda direct! a unui LED;
magistrala de instruc"iuni este pe 16 bi"i, fa"! de 14 bi"i;
memoria ROM este de 2048 x 16 cuvinte;
memoria RAM este de 232 de octe"i;
magistralele de date, #i adrese (multiplexate) sunt accesibile la pin;
unitatea central! poate executa nmul"iri;
sunt admise 11 surse de ntreruperi fa"! de 8.

261
Aceste MC sunt livrate n capsule cu 44 de pini.
Schema bloc este dat! n Fig. 10.67.



























$i circuitele din familia PIC17 pot fi echipate cu o gam! larg! de interfe"e.

Sistemul de timere este compus din mai multe timere:

Timer 0 este un num!r!tor de 16 bi"i cu surs! de num!rare extern! sau intern!.
Poate lucra cu un registru de prescalare care d! un tact divizat cu 1/1 pn! la
1/256;
Timer 1 este un timer pe 8 bi"i care poate lucra mpreun! cu Timerul 2 pentru a
forma un timer pe 16 bi"i. Poate lucra n regim de num!rare a unor evenimente
externe. Timerul are asociat un registru, deci poate lucra n regim de comparare;
Timer 2 este la fel cu timerul 1. Timerul 1 #i 2 pot lucra n mod PWM;
Timer 3 este pe 16 bi"i, cu un registru asociat.
Modulul USART poate fi configurat s! lucreze n mod serial asincron full- duplex (pentru
a transfera date cu un terminal sau un PC), sau n mod sincron full-duplex (de ex. pentru a
lucra cu memorii externe EEPROM).

Observa"ie: este de remarcat la MC din familia PIC faptul c! nu au nevoie de componente
externe pentru RESET #i pentru ceas, ceea ce poate fi un avantaj.


Magistrala de date #i adrese
Unitate central!
PC
ALU
Memoria de date
RAM 232 x 8 bi"i

Memoria program
ROM/OTP/EPROM
2K x 16 bi"i
M
A
G
I
S
T
R
A
L
A

I
N
S
T
R
.

W
Timer Ceas de
gard!
Timer pt.
RESET
Controller de
ntreruperi
PIO
Port C #i D Port B Port A
STIVA
16 x 16 bi"i
3 x TIMER USART
Fig. 10.67. Schema bloc PIC17
262
10.5.2. MC ATMEL

Foarte bine plasate pe pia"! n zona aplica"iilor low cost sunt MC ale firmei
ATMEL. Firma fabric! #i MC echivalente 8051.

9.5.2.1. Familia AVR

Aceste MC sunt realizate de produc!tor n diverse variante, ncepnd cu modelele
low cost AT90S2323, AT90S1200 #i terminnd cu modele complexe AT90S4414,
AT90S8515, diferen"ele ntre acestea constnd n principal n m!rimea #i tipurile memoriei
RAM, FLASH, ROM, EPROM, EEPROM #i a facilit!"ilor oferite la interfa"a cu
utilizatorul.

Seria de MC ATMEL este sus"inut! de o campanie puternic! de promovare astfel nct
produc!torul ofer! gratuit software de dezvoltare ce include asamblor, debugger,
documenta"ie, exemple #i note de aplica"ie pe site-ul s!u www.atmel.com. Softul este
disponibil att n variant! ce ruleaz! sub sistemul de operare MS-DOS ct #i n varianta
WINDOWS.

Toate MC din familie au o arhitectur! Harvard, adic! au spa"ii de adres! #i magistrale
diferite pentru memoria de date #i memoria program. Dispun de o prelucrare de tip pipe
line a instruc"iunilor (n 2 trepte) astfel nct n timp ce o instruc"iune este executat!,
cealalt! se afl! n ciclu de aducere din memorie (fetch) #i astfele se execut! cte o
instruc"iune n fiecare ciclu.

Schema bloc a unui circuit din familie este dat! n Fig. 10.68.























Magistral! de date
Unitate central!
PC
ALU
Memoria de date
RAM 128 octe"i
EEPROM 128 de octe"i
Memoria program
FLASH 2K octe"i
SPI Ceas de
gard!
Timer
Port B
32 registre de
uz general
Oscilator
Controller de
ntreruperi
Fig. 10.68. MC din familia AVR schema bloc
263
Unul dintre cele mai mici MC este AT90S2323. Circuitul se alimenteaz! (n func"ie de
variant!) la 5V sau la 3V #i func"ioneaz! pn! la frecven"a de 10MHz. Curentul absorbit
este de 2,4mA n stare activ!, 0,5mA n stare inactiv! #i 1A n starea Power Down.
In principal, circuitul este compus din:

unitatea central!, n arhitectur! RISC cu 118 instruc"iuni, majoritatea de un
ciclu #i 32 de registre de uz general;
blocul de memorie, compus din memoria de program (FLASH de 2K octe"i care
suport! n jur de 1000 de program!ri) #i din memoria de date (128 octe"i de
RAM) #i 128 octe"i de EEPROM, care suport! n jur de 100.000 de program!ri;
interfe"ele sunt reprezentate de un timer de 8 bi"i cu prescalare, un timer pentru
ceasul de gard! #i o interfa"! serial! SPI pentru programarea n circuit. Liniile
I/O sunt de regul! cu semnifica"ie dubl!.

Unitatea central! poate executa majoritatea opera"iilor ntr-un ciclu, ceea ce nseamn! c!
operanzii sunt n registrele generale, are loc opera"ia #i rezultatul este stocat n unul dintre
registre. Se pot realiza #i adres!ri indirecte cu 6 dintre cele 32 de registre, grupate cte 2
(ca s! formeze registre de 16 bi"i); registrele duble sunt referite cu X, Y, Z. Se pot face
opera"ii ntre registre sau cu o constant!. Instruc"iunile au formatul pe 16 bi"i, iar
indicatorul de program PC este pe 10 bi"i.

Memoria de date poate fi accesat! tot ca registre, n acela#i spa"iu. Spa"iul I/O con"ine 64
de adrese unde se g!sesc registrele de control #i de stare ale interfe"elor. Stiva este definit!
n RAM, deci exist! un registru indicator de stiv! SP de 8 bi"i. O imagine sugestiv! a
spa"iilor de memorie #i I/O este dat! n Fig. 10.69.




















Memoria EEPROM dispune de un spa"iu propriu de adresare, n care fiecare octet dintr-o
loca"ie poate fi citit sau scris. Accesul se face specificnd adresa, data #i comanda n
registre speciale.


00h


1Fh




60h






DFh
000h












3FFh
Memoria program
FLASH
1Kx 16 bi"i
32 registre de lucru


64 registre I/O



SRAM
128 octe"i
EEPROM
128 octe"i
00h









7Fh
Fig. 10.69. Harta spa"iilor de memorie #i I/O
264
Acest MC permite 5 moduri de adresare:

adresare direct! - adresa operandului este con"inut! n instruc"iune. Se pot
executa instruc"iuni cu un registru sau ntre 2 registre. Este accesibil astfel tot
spa"iul de date;
adresare indirect! - adresa operandului este n X, Y sau Z;
adresare indirect! cu deplasament - adresa oprandului este rezultatul adun!rii
registrelor Y sau Z cu adresa de 6 bi"i con"inut! n instruc"iune. Se acoper!
astfel doar 63 de loca"ii fa"! de baza dat! de registrele Y sau Z;
adresare indirect! cu pre decrementare - registrele X, Y sau Z sunt decrementate
nainte de adresare;
adresare indirect! cu post incrementare.
Setul de instruc"iuni este dat n tabelul 10.23.

Tabel 10.23. Setul de instruc"iuni al familiei AVR
Mnemonic$ Operanzi Opera"ie Opera"ie
ADD Rd,Rr Rd=Rd+Rr Sum!
ADC Rd,Rr Rd=Rd+Rr+C Sum! plus carry
SUB Rd,Rr Rd=Rd-Rr Diferen"!
SUBI Rd,K Rd=Rd-K Diferen"! cu o constatnt!
SBC Rd,Rr Rd=Rd-Rr-C Diferen"! cu carry
SBCI Rd,K Rd=Rd-K-C Dif. cu const. #i carry
AND Rd,Rr Rd=Rd*Rr SI logic
ANDI Rd,K Rd=Rd*K SI logic cu const.
OR Rd,Rr Rd=Rd v Rr SAU logic
ORI Rd,K Rd=Rd v K SAU logic cu const.
EOR Rd,Rr Rd=RdRr SAU exclusiv
COM Rd Rd=$FF-Rd Complement fa"! de 1
NEG Rd Rd=$00-Rd Complement fa"! de 2
SBR Rd,K Rd=Rd v K Set bit K n registru
CBR Rd,K Rd=Rd*(FFh-K) Clear bit K n registru
INC Rd RD=Rd+1 Increment
DEC Rd Rd=Rd-1 Decrement
TST Rd Rd=Rd * Rd Test de 0 sau -
CLR Rd Rd=RdRd Clear registru
SER Rd Rd=$FF Set registru
RJMP k PC=PC+k+1 Salt relativ la k
RCALL k PC=PC+k+1 Salt la subrutin!
RET PC=STACK Return din subrutin!
RETI PC=STACK Ret. din subrutin! de tratare a
ntreruperii
CPSE Rd,Rr if (RD=Rr) PC=PC+2 or 3 Compar! , skip dac! egal
CP Rd,Rr Rd-Rr Compar!
CPC Rd,Rr Rd-Rr-C Compar! cu carry
CPI Rd,K Rd-K Compar! cu constat!
SBRC Rr,b if (Rr(b)=0) PC=Pc+2 or 3 Skip dac! bitul b din Rr este 0
SBRS Rr,b if (Rr(b)=1) PC=Pc+2 or 3 Skip dac! bitul b din Rr este 1
265
Mnemonic$ Operanzi Opera"ie Opera"ie
SBIC P,b if (P(b)=0) PC=Pc+2 or 3 Skip dac! bitul B din I/O este 0
SBIS P,b if (P(b)=1) PC=Pc+2 or 3 Skip dac! bitul B din I/O este 1
BRBS s,k if(SREG(s)=1)
PC=PC+k+1
Salt dac! SF este1
BRBC s,k if(SREG(s)=0)
PC=PC+k+1
Salt dac! SF este 0
BREQ k if (Z=1) PC=PC+k+1 Salt: egalitate
BRNE k if (Z=0) PC=PC+k+1 Salt: diferit
BRCS k if (C=1) PC=PC+k+1 Salt: carry setat
BRCC k if (C=0) PC=PC+k+1 Salt: carry este zero
BRSH k if (C=0) PC=PC+k+1 Salt: mai mare sau egal
BRLO k if (C=1) PC=PC+k+1 Salt: mai mic
BRMI k if (N=1) PC=PC+k+1 Salt: minus
BRPL k if (N=0) PC=PC+k+1 Salt: plus
BRGE k if (NV=0) PC=PC+k+1 Salt : mai mare sau egal, cu semn
BRLT k if (NV=1) PC=PC+k+1 Salt : mai mic dect 0, cu semn
BRHS k if (H=1) PC=PC+k+1 Salt dac! CF este setat
BRHC k if (H=0) PC=PC+k+1 Salt dac! CF este zero
BRTS k if (T=1) PC=PC+k+1 Salt dac! T este setat
BRTC k if (T=0) PC=PC+k+1 Salt dac! T este zero
BRVS k if (V=1) PC=PC+k+1 Salt dac! este overflow
BRVC k if (V=0) PC=PC+k+1 Salt dac! nu este overflow
BRIE k if (I=1) PC=PC+k+1 Salt dac! ntreruperea e activat!
BRID k if (I=0) PC=PC+k+1 Salt dac! ntreruperea e
dezactivat!
LD Rd,Z Rd=(Z) Incarc! registru indirect
ST Z,Rr (Z)=Rr Stocheaz! registru indirect
MOV Rd,Rr Rd=Rr Mut! Rr n Rd
LDI Rd,K Rd=K Mut! constanta K n Rd
IN Rd,P Rd=P IN din portul P
OUT P,Rr P=Rr OUT la portul P
SBI P,b I/O (p,B)=1 Set bit b din portul P
CBI P,b I/O (p,B)=0 Reset bit b din portul P
LSL Rd Rd(n+1)=Rd(n),Rd(0)=0 Shift logic stnga
LSR Rd Rd(n)=Rd(n+1),Rd(7)=0 Shift logic dreapta
ROL Rd Rd(0)=C,Rd(n+1)=Rd(n),
C=Rd(7)
Rotire spre stnga prin carry
ROR Rd Rd(7)=C,Rd(n)=Rd(n+1),
C=Rd(0)
Rotire spre dreapta prin carry
ASR Rd Rd(n)=Rd(n+1), n=0..6 Shift aritmetic spre dreapta
SWAP Rd Rd(3..0)=Rd(7..4),
Rd(7..4)=Rd(3..0)
Inverseaz! jum!t!"ile
BSET s SREG(s)=1 Seteaz! flag s
BCLR s SREG(s)=0 Reseteaz! flagul s
BST Rr,b T=Rr(b) Stocheaz! bitul b din Rr n T
BLD Rd,b Rd(b)=T Incarc! T n bitul b din Rd
266
Mnemonic$ Operanzi Opera"ie Opera"ie
SEC C=1 Seteaz! Carry flag
CLC C=0 Reset Carry flag
SEN N=1 Seteaz! Negative flag
CLN N=0 Reseteaz! Negative flag
SEZ Z=1 Seteaz! Zero flag
CLZ Z=0 Reseteaz! Zero flag
SEI I=1 Activeaz! ntrerupere
CLI I=0 Dezactiveaz! ntrerupere
SES S=1 Seteaz! flagul de semn
CLS S=0 Reseteaz! flagul de semn
SEV V=1 Seteaz! flagul overflow
complement fa"! de 2
CLV V=0 Reseteaz! flagul overflow
complement fa"! de 2
SET T=1 Seteaz! T n SREG
CLT T=0 Reseteaz! T n SREG
SEH H=1 Seteaz! Half Carry Flag n SREG
CLH H=0 Reseteaz! Half Carry Flag n
SREG
NOP No operation
SLEEP Sleep
WDR Watch dog reset

Anumite modele au #i o instruc"iune de nmul"ire, MUL.

MC AVR au 3 surse de ntrerupere:

de la RESET, (din exterior, la punerea sub tensiune sau de la ceasul de gard!);
de la un pin extern;
de la timer, la o dep!#ire.
ntreruperile pot fi mascate cu 2 registre de 8 bi"i, GIMSK- General Interrupt Mask #i
TIMSK- Timer/Counter Interrupt Mask. La primirea unei ntreruperi se invalideaz!
sistemul de nteruperi. Totu#i este posibil! primirea nc! a unei ntreruperi n timp ce este
servit! prima, dac! se revalideaz! sistemul de ntreruperi. R!spunsul la o cerere de
ntrerupere dureaz! minimum 4 cicluri, timp n care PC este salvat n stiv!, SP este
incrementat cu 2 #i se seteaz! invalidarea ntreruperilor.

Sursele de RESET pot fi:

la punerea sub tensiune (Power On Reset), dac! tensiunea cre#te #i atinge un
anumit prag;
de la un pin extern, dac! un nivel LOW este prezent mai mult de 50ns;
de la ceasul de gard! dac! este validat #i a expirat perioada de timp pentru care
a fost programat s! a#tepte o ini"ializare.
Dup! RESET execu"ia programului ncepe de la adresa 000h. Un RESET porne#te un
num!r!tor care contorizeaz! un anumit num!r de impulsuri ale ceasului intern al
267
circuitului. Contorul stabile#te durata impulsului RESET intern pentru ca acesta s! fie
suficient de lung pentru ini"ializarea tuturor circuitelor interne, Fig. 10.70.


















Nu mai este astfel necesar! nici o component! exterioar! pentru semnalul de RESET.

MC admite moduri de lucru cu economie de energie:

modul adormit (Power Down), n care se intr! prin execu"ia instruc"iunii
SLEEP. Dac! n modul SLEEP apare o ntrerupere extern!, una de la ceasul de
gard! sau un RESET, acestea sunt executate, circuitul trezindu-se. n acest mod
de lucru este oprit oscilatorul extern. Trezirea dureaz! un interval de timp egal
cu cel necesar pentru un RESET.
modul inactiv, n care se intr! cu aceea#i instruc"iune, dar pozi"ionnd un bit din
registrul de control. n acest mod unitatea central! este oprit!, dar timerul,
ceasul de gard! #i sistemul de ntreruperi continu! s! func"ioneze. O ntrerupere
intern!, una extern! sau un RESET trezesc circuitul.

Circuitul admite ca surse de tact:

un cristal de cuar" sau un rezonator ceramic, pentru aplica"ii cu preten"ii la
stabilitatea frecven"ei, (elemente conectate la pinii Xtal1 #i Xtal2);
un generator extern la un pin I/O (PB3);
generatorul RC intern, la 1MHz.
Selec"ia sursei ceasului pentru tact intern sau extern se face cu un bit n memoria FLASH.
Circuitul este programat implicit pentru tact extern. Lucrul cu ceas intern determin!
posibilitatea utiliz!rii acestor MC cu componente externe extrem de pu"ine.

Timerul care echipeaz! circuitele AT902323 este un timer pe 8 bi"i cu un registru de
prescalare pe 10 bi"i. Timerul poate fi folosit cu tact intern (tactul sistemului divizat cu 8,
64, 256 sau 1024) sau cu tact extern. Sursa de tact pentru timer poate fi ceasul sistemului,
ceasul prescalat sau un tact extern. Func"ionarea timerului este controlat! de bi"i din din
dou! registre (registru de m!#ti pentru ntreruperi #i registru de control al timerului). La
dep!#ire, num!r!torul poate cere o ntrerupere.
Power On Reset
RESET
Vcc
/RESET
Ceas de gard!
Oscilator RC
intern
Num!r!tor
S Q







R /Q
SAU
LOGIC
RESET
INTERN
Fig. 10.70. Circuit intern pentru generarea semnalului RESET
268
Ceasul de gard! are ca #i tact un oscilator separat, integrat n MC #i este complet separat de
timer. Ca #i timerul, ceasul de gard! are posibilitatea de prescalare. Controlul ceasului de
gard! se face cu registrul WDTCR (Watchdog Timer Control Register). Pentru a evita
dezactivarea ntmpl!toare a ceasului de gard!, acesta trebuie dezactivat cu o secven"! de
program specific!.

EEPROM este accesibil n spa"iul I/O, prin urm!toarele registre:

registru de adrese EEPROM;
registru de date EEPROM;
registru de control EEPROM, care comand! sensul transferului.

MC ATMEL AVR au linii I/O de uz general (AT902323 are 3 linii, AT902343 are 5 linii,
iar modelul AT90S1200 dispune de dou! porturi: B de 8 bi"i #i D de 7 bi"i). Fiecare linie de
port poate fi configurat! independent fa"! de celelalte, att ca linie de intrare ct #i ca linie
de ie#ire. De asemenea n modul de utilizare ca linie de intrare, fiecare linie poate fi
configurat! cu un rezistor de pull-up intern ( valoarea aprox 40K ). Fiecare linie de ie#ire
poate sus"ine un curent de 20mA (max 40mA valoare limit! absolut!) astfel nct se poate
folosi direct la comandarea de LED-uri. Fiec!rui port i este alocat un registru de sens,
(DDRx, Port x Data Direction). Pinii I/O admit semnifica"ii duble.

Programarea memoriei FLASH #i EEPROM se poate face serial, ntr-un mod cu tensiune
mare (12V) #i un mod cu tensiune joas!. Circuitele vin de la fabricant gata de a fi nscrise
(au con"inutul FFh n fiecare loca"ie). n modul de programare cu tensiune nalt!, tensiunea
de 12V valideaz! programarea, nu are un rol func"ional. Modul de programare n cele 2
variante este ar!tat n Fig. 10.71.

















La programarea cu tensiune mare se poate programa memoria FLASH (intrarea pe PB1) #i
memoria de date EEPROM (intrarea pe PB0). Pentru programarea memoriei FLASH se
trimite nti adresa apoi data (octetul LOW apoi cel HIGH). Confirmarea se ob"ine prin
trecerea lui PB2 n HIGH. Memoria EEPROM se programeaz! trimi"nd nti adresa apoi
octetul de date, confirmarea fiind pe pinul PB2. Orice loca"ie poate fi citit! folosind
instruc"iunea de citire #i adresa, ob"innd pe pinul PB2 con"inutul respectiv. Tactul serial
este activ pe front cresc!tor. Scrierea, citirea #i unele comenzi speciale (#tergerea ntregii
AT902323
/RESET Vcc
XTAL1/PB3 PB2

PB1

PB0

4,5-5,5V
Date seriale de
ie#ire
Instruc"iuni seriale
de intrare
Date seriale de
intrare

12V
Ceas de
programare
serial
Programare cu
tensiune mare
AT902323
/RESET Vcc
XTAL1/PB3 PB2

PB1

PB0
2,7-6,0V
SCK

MISO

MOSI

GND
Tact
Programare cu
tensiune mic!
Fig. 10.71. Programarea serial! a memoriei EPROM (FLASH)
269
memorii, scrierea bi"ilor de securitate etc.) se comand! prin trimiterea naintea adresei a
codului serial al comenzii respective (se g!se#te n foile de catalog).

La programarea cu tensiune mic! se poate programa memoria FLASH #i memoria
EEPROM tot serial, prin interfa"a SPI. Datele se nscriu pe frontul cresc!tor a lui SCK. n
acest mod de lucru, confirmarea scrierii unei loca"ii se face prin trimiterea n ecou a
octetului scris. Comenzile se trimit la fel, prin coduri seriale.

Un programator pentru astfel de MC (mod de programare cu tensiune mare) se poate
realiza simplu, folosind interfa"a CENTRONICS a unui PC, Fig. 10.72.


















Memoria este prev!zut! cu posibilitatea de protec"ie a programelor nscrise. Astfel, exist! 2
bi"i de blocare n FLASH care nu pot fi #ter#i dect prin #tergerea ntregului program.
Ace#ti doi bi"i pot comanda:

dezactivarea unor viitoare program!ri ale memoriei FLASH sau EEPROM;
dezactivarea unor viitoare program!ri ale memoriei FLASH sau EEPROM #i
blocarea verific!rii.

Memoria mai este prev!zut! cu 2 bi"i care nu pot fi #ter#i (fuzibili) care pot comanda:

dezactivarea modului serial de programare;
sursa intern! sau extern! pentru tact.

Modelul ATiny 10 este echipat cu un comparator analogic, care compar! valoarea
analogic! de la pinul PB0 cu cea de la pinul PB1. Ie#irea comparatorului poate declan#a o
ntrerupere. Comparatorul este controlat de un registru de control #i stare.

Modelul AT90S4433 este echipat cu 6 canale de conversie A/D pe 10 bi"i. Acest model
este un MC cu o echipare superioar!: un timer suplimentar de 16 bi"i cu posibilitatea de
comparare, captur! #i generare PWM, un comparator analogic, un canal UART, un
convertor A/D pe 10 bi"i cu 6 canale #i un sistem de ntreruperi care admite 14 surse de
AT902323
/RESET Vcc
XTAL1/PB3 PB2

PB1

GND PB0
4,5-5,5V
INTERFA%A
CENTRONICS



STB






D0

D1


ACK
12V
Fig. 10.72. Programarea unui circuit AVR folosind interfa"a
CENTRONICS
270
ntrerupere din care 2 externe. Acest circuit are #i posibiliataea de programare paralel!,
deoarece are suficiente linii I/O. Schema bloc a acestui MC este dat! n Fig. 10.73.

























Canalul serial UART permite transferul de date full duplex, cu 8 sau 9 bi"i de date, cu
generarea de rat! de transfer. Canalul serial poate cere ntrerupere la transmisie complet!,
registru de transmisie gol sau recep"ie complet!. Recep"ia #i transmisia se fac ca #i la
celelalte MC, cu un registru de deplasare pentru serializare/deserializare #i un registru de
date. Se poate realiza #i o comunica"ie serial! multiprocesor (Multi- Processor
Communication Mode), prin transmisia n mesaj nti a adresei unui destinatar #i apoi a
mesajului propriu-zis. Se poate astfel realiza o comunica"ie n care un procesor este
MASTER iar celelalte SLAVE. Canalul serial este controlat de un registru de comand! #i
stare.

Comparatorul analogic, pe lng! ntreruperea pe care o poate genera, poate s! declan#eze o
captur! la timerul de 16 bi"i la acest tip de MC.

Convertorul A/D este un convertor cu aproxima"ii succesive cu e#antionare memorare #i cu
un bloc de multiplexare analogic! pe 6 canale la intrare. Convertorul poate lucra cu
conversie singular! sau conversie continu!. Convertorul are pini de alimentare separa"i din
exterior #i un pin pentru conectarea tensiunii de referin"!. Ca #i tact de conversie,
convertorul accept! tactul sistemului divizat cu un registru de prescalare. Tactul se poate
ncadra n valorile optime 50-200kHz. La terminarea unei conversii convertorul poate cere
o ntrerupere. Schema bloc a convertorului este dat! n Fig. 10.74.


Magistrala de date
Unitate central!
PC
ALU
Memoria de date
RAM 128 octe"i
EEPROM 128 de octe"i
Memoria program
FLASH 2K octe"i
SPI
Ceas de
gard!
Timer
Port B
32 registre de
uz general
Timer 16b UART
Controller de ntreruperi
Oscilator intern
ADC
Port C
Comparator
Port D
RESET
Fig. 10.73. MC AT90S4433 Schema bloc
271























Prin registrul ADMUX se comand! cu 3 bi"i selec"ia unui canal din cele 6. Registrul de
control #i stare ADCSR poate declan#a o conversie prin pozi"ionarea unui bit. Func"ionarea
convertorului poate fi validat!/invalidat!. Prin registrul de control se poate programa #i rata
de prescalare. Pentru a mic#ora perturba"iile introduse de unitatea central! n timpul
achizi"iei de date se poate comanda UC n stare inactiv!. Dup! efectuarea conversiei
ntreruperea de la convertor va trezi UC (ADC Noise Canceler Function).

nscrierea memoriei FLASH #i EEPROM se poate face #i n mod paralel, ceea ce nseamn!
o vitez! mai mare de scriere #i un plus de simplitate la programare. Semnalele folosite n
acest mod de programare sunt date n Fig. 10.75.
















AT90S4433
PD1 Vcc

PD2 PC,PB

PD3

PD4

PD5

PD6

RESET

XTAL
+5V

8 linii de date,
bidirec"ionale
RDY/BSY

/OE

/WR

BS

XA0

XA1

+12V

tact
Fig. 10.75. Semnale folosite la nscrierea paralel! a memoriei
EEPROM (FLASH)
Multiplexor
analogic
Convertor Analog
Digital cu aprox.
succesive
ADMUX ADCH, ADCL (10b)
BUS INTERN
Cerere de
ntrerupere
Selec"ie
canal
START
Date
Intr!ri
analogice
E#antionare
Memorare
ADCSR
Registru de
prescalare
CK
Fig. 10.74. Convertorul analog-numeric
Tact
conversie
272
Pentru nscrierea sau citirea datelor se folosesc 8 linii cu semnifica"ii duble din porturile
PC #i PB. /OE stabile#te dac! este vorba de scriere sau citire. Scrierea se face cu strobul
/WR. BS selecteaz! octetul mai semnificativ sau mai pu"in semnificativ. Semnalele XA0 #i
XA1 stabilesc dac! se ncarc! memoria FLASH, sau o adres! a EEPROM, un octet de date
sau o comand!. Sunt posibile 9 comenzi: #tergere memorie, scriere bi"i de securitate,
scriere bi"i fuzibili, scriere FLASH, scriere EEPROM, citire bi"i de identificare, citire bi"i
fuzibili #i de securitate, citire FLASH, citire EEPROM. Modul de scriere paralel poate fi
u#or realizat prin intermediul interfe"ei CENTRONICS; citirea pentru verificare este mai
complicat!.

Modelele AT90S4414 #i AT90S8515 dispun de posibilitatea conect!rii n exterior a unei
memorii SRAM suplimentare. Pentru aceasta sunt disponibile la portul A magistrala de
adrese (octet mai pu"in semnificativ) #i magistrala de date multiplexate, iar la portul C
octetul mai semnificativ al magistralei de adrese. De asemenea sunt disponibile #i
semnalele ALE (Address Latch Enable), /RD #i /WR.

10.5.2.2. Familia ARM

Un nucleu cu arhitectur! RISC de mare performan"! este ARM7DMI. Este
conceput cu o arhitectur! von Neumann, cu magistrala de date pe 32 de bi"i, avnd 2 seturi
de instruc"iuni (ARM pe 32 de bi"i #i THUMB pe 16 bi"i). Spa"iul adresabil este de 4G.

O schem! bloc sumar! a acestui nucleu este dat! n Fig. 10.76.
























Unitate central$ ARM
37 registre de 32 bi"i
ALU pe 32 de bi"i
Bus A
Magistrala de
adrese (32)
Registru de date (32)
Decodor
THUMB
Decodor
ARM
Bus B
Bus C
Registru pt. adrese
Magistrala de
date (32)
Emulator n circuit
(Ice Breaker)
Distribuitor de
magistrale
Controller JTAG
Fig. 10.76. MC ARM schema bloc
273
Structura UC este pipe line pe 3 nivele; extragere cod, decodificare #i execu"ie. UC poate
lucra cu date pe 8, 16 sau 32 de bi"i #i poate executa nmul"iri ntr-un singur ciclu. Nucleul
are integrat #i circuitul de testare JTAG #i un emulator n circuit.

Setul de instruc"iuni THUMB pe 16 bi"i este un subset al setului pe 32 de bi"i, cele mai
uzual folosite instruc"iuni. n acest fel se salveaz! spa"iu de memorare #i se c#tig! vitez!
de prelucrare.

Pentru a asigura un grad mare de paralelism n UC, exist! mai multe magistrale de
leg!tur!. Instruc"iunile sunt analizate #i distribuite decodoarelor corespunz!toare (THUMB
sau ARM). UC este echipat! cu un set de 32 de registre #i registre suplimentare pentru
nmul"ire. Pentru a se putea conecta o varietate ct mai mare de interfe"e, magistralele sunt
accesibile prin distribuitor n mai multe forme: unidirec"ional, bidirec"ional, multiplexat
etc.

10.5.3. MC AMD Am29

MC RISC ale familiei AMD sunt circuite complexe, de mare performan"!. Astfel,
MC Am29200 are o arhitectur! pipeline pe 32 de bi"i cu 192 de registre generale, un spa"iu
de adrese de 304M, posibilitatea conect!rii memoriei ROM #i DRAM organizate pe 8, 16
sau 32 de bi"i, controller DMA, 16 linii programabile I/O, port serial UART, registru de
serializare/deserializare pentru aplica"ii video, controller de ntreruperi, timer #i port JTAG.
Frecven"ele de tact admise sunt pn! la 16MHz. Unele MC din familie realizeaz! #i
nmul"iri, iar altele pot lucra n virgul! flotant!.

Schema bloc a acestui MC este dat! n Fig. 10.77.

Controlerul de memorie ROM (sau orice fel de memorie static!) poate gestiona 4 bankuri
de memorie cu caracteristici #i dimensiune diferit!. Memoria poate ap!rea ca o zon!
continu! de 64M. Controllerul de DRAM poate gestiona tot 4 bancuri cu caracteristici #i
dimensiuni diferite, pn! la 64M.

Controlerul DMA are 2 canale #i poate asigura transfer de date pe 32 de bi"i n interior #i
pe 16 bi"i n exterior. Canalul de serializare/deserializare poate fi folosit la interfa"area cu
echipamente periferice rapide pe principiu serial, cum ar fi scrierea cu laser, semnale video
pentru afi#aje sau scannere.

Setul de instruc"iuni con"ine 117 instruc"iuni grupate n mai multe clase: aritmetice, logice,
de compara"ie, de deplasare, cu constante, n virgul! flotant!, de salt #i diverse. Toate
instruc"iunile (mai pu"in cele n virgul! flotant! #i a salturilor) se execut! ntr-un singur
ciclu. Operanzii #i rezultatul pot fi n oricare din cele 192 de registre. Se poate lucra cu date
n format pe 32, 16 sau 8 bi"i.

Pentru punerea la punct a programelor sunt posibile diferite metode de control, cum ar fi
execu"ia pas cu pas #i observarea MC prin intermediul unor semnale externe. Un mod #i
mai avansat este prin interfa"a JTAG prin care se poate urm!ri func"ionarea circuitului f!r!
un hardware suplimentar.


274





























10.5.4. MC Super H (Hitachi)

O famile situat! de asemenea la nivelul de sus al performa"ei este familia SuperH
de la Hitachi; aceast! familie este compus! din MC RISC pe 32 de bi"i.

Ca #i caracteristici principale (SH7020) pot fi men"ionate:

frecven"a de pn! la 20MHz, tensiunea de alimentare 3,3V-5V;
16k octe"i ROM/EPROM #i 1k octet RAM;
unitatea central! are o structur! pipeline cu 5 nivele, setul de instruc"iuni pe 16
bi"i, 60 de registre generale pe 32 de bi"i, 3 registre de control #i 4 registre de
sistem; poate executa nmul"iri;
controlerul DMA are 4 canale;
controlerul de ntreruperi are 9 pini externi #i 30 de surse interne, nivelul de
prioritate este programabil;
timerul are 5 canale pe 16 bi"i care pot lucra n mod num!r!tor, captur!,
comparare sau PWM;
controlerul de magistral! admite interfa"area de DRAM, ROM sau SRAM.
suplimentar #i alte interfe"e, cu posibilitatea de conectare pe 16 sau 8 bi"i, cu sau
f!r! st!ri de WAIT;
Magistrala de date #i instruc"iuni
Magistrala de adrese
UC Am 29000 Controller de ROM
#i DRAM
CS, RAS, CAS
Port serial
Serializare/
deserializare
Controller DMA
Controller de
ntreruperi
Port I/O
programabil
Extensie bus pentru
interfe"e
JTAG
Magistrala extern! #i
semnale de CS
Fig. 10.77. MC Am29 schema bloc
275
ceas de gard!;
2 canale seriale SCI full duplex care pot lucra n mod sincron sau asincron;
2 de linii I/O.

Schema bloc a MC este dat! n Fig. 10.78.


























10.5.5. MC Motorola PowerPC (MPC555)

A#a cum AMD a construit un MC n jurul unui nucleu compatibil x86, a#a #i
Motorola a conceput acest MC n jurul unui nucleu PowerPC. Acest MC are urm!toarele
caracteristici:

nucleu RISC PowerPC cu unitate n virgul! flotant!;
26 K octe"i memorie RAM #i 448K octe"i FLASH (EEPROM) cu programare la
5V;
modul serial multicanal cu coad! de a#teptare (QSMCM, Queued Serial Multi-
Channel Module);
interfa"! CAN 2.0;
timer cu 50 de canale;
32 de intr!ri analogice ntr-un convertor analog digital dual;
interfa"! JTAG;
2 unit!"i de procesare a timpului (TPU, Time Processor Unit);
magistralele sunt accesibile la pin (24 de linii de adres!, 32 de linii de date);
frecven"a de operare 40MHz.
Magistrala de date #i adrese
UC SH-1
ROM/PROM/EPROM
Port serial
2xSCI
5 x Timer
Controller DMA
Controller de
ntreruperi
Ceas de
gard!
Controller de bus
Magistrala extern! #i
semnale de CS
RAM
32x
I/O
Port B (16b)
Port de date, adrese, comenzi
(3x16 bi"i #i 1x10b)
Fig. 10.78. MC Super H schema bloc
276
Schema bloc este dat! n Fig. 10.79.


























Unit!"ile de procesare a timpului lucreaz! independent de UC #i con"in fiecare 16 canale
independente. Fiecare canal const! ntr-un num!r!tor, un registru de captur! #i unul de
comparare de 16 bi"i fiecare.

Convertorul A/D este cu aproxima"ii succesive, cu e#antionare memorare #i rezolu"ie de 10
bi"i.

Sistemul I/O con"ine 18 canale, din care 2 porturi paralele, 8 canale PWM #i 2 canale
timer.

10.5.6. Date comparative pentru MC RISC

Tabel 10.24. MC RISC tabel comparativ
MC Magistrala de
date
Frecven"a
(MHz)
Linii
I/O
Interfe"e
speciale
Pre"
(USD)
PIC12C508A 8 4 6 1 0.8
PIC16C71 8 20 20 7 3
PIC17C 8 33 33 3 10
ATMEL 90S1200 8 12 15 1 1,5
ATMEL
90S4433
8 8 20 5 7
AMD29200 32 16 16 3 47
Magistrala IMB
PowerPC
448K octe"i FLASH (EEPROM)
QSMCM
Sistem I/O
Controller DMA
Controller de
ntreruperi
CAN 2.0 Controller de bus
Magistrala extern! 24
linii de adrese #i
2 linii de date
29K octe"i RAM
CA/D
JTAG
Unitate n
virgul! flotant!
Unit!"i de
procesare a
timpului
Fig. 10.79. MPC555 schema bloc
277
10.6. CIRCUITE DSP %I MSP

De regul! circuitele DSP (Digital Signal Processor) #i MSP (Mixed Signal
Processor) sunt considerate altceva dect microcontrollere. Ele au o structur! ceva mai
deosebit!; n jurul unei unit!"i centrale mai complexe pentru domeniul aritmetic grupeaz!
interfe"e speciale.

10.6.1. Circuitul DSP56156 (Motorola)

Structura acestui circuit este dat! n Fig.10.80.




























n acest circuit sunt integrate un nucleu DSP56100 (CISC) #i un set de interfe"e #i memorii.
Arhitectura este Harvard, cu o magistral! de date de 16 bi"i, o magistral! de instruc"iuni de
16 bi"i #i o magistral! de adrese. Nucleul are un mare grad de paralelism, avnd 3 unit!"i de
execu"ie care efectueaz! opera"ii n paralel #i 3 magistrale. Datorit! arhitecturii Harvard
accesul la date #i instruc"iuni este simultan, iar execu"ia n paralel realizeaz! #ase opera"ii
ntr-un ciclu. Magistralele sunt accesibile la pin pentru extensii de interfe"e.

Unitatea central! poate func"iona la frecven"e de pn! la 60MHZ #i poate realiza la aceast!
frecven"! de tact un ciclu de instruc"iune n 33ns. UC poate efectua nmul"iri de 16x 16
ntr-un ciclu (2 tacte sistem) sau de 32 x 32 cu rezultat de 72 n 6 cicluri, adun!ri #i sc!deri
Nucleu
DSP56100
3 x Bus de adrese
2 x Bus de date 1x Bus instruc"iuni
Comutator
pentru bu s
extern
(adrese)
Comutator
pentru bus
extern (date)
Unitatea de control:
-generator de adrese de
program
-controlul decodific!rii
instruc"iunii
-controller de ntreruperi
ALU
-aritmetice
-logice
-2 acumulatori de 40
de bi"i
Generator de
tact cu PLL
Port OnCE
de testare
CODEC Sigma
Delta
Timer 16b #i
num!r!tor de
evenimente
2 x SSI (canale
seriale sinrone)
Memorie program:
-64 x 16 ROM (boot)
-2048 x 16 RAM sau
ROM
Memorie de date:
2048 x 16 RAM
Interfa"a cu
gazda
Fig. 10.80. SP56156 schema bloc
278
de 40 bi"i ntr-un ciclu, opera"ii aritmetice cu numere ntregi #i frac"ionare, transformat!
Fourier FFT.
Programul ini"ial se poate nc!rca n memoria RAM de program de pe magistrala extern!,
prin interfa"a serial! SSI sau prin interfa"a cu gazda. Programul de nc!rcare se afl! n
ROM-ul de nc!rcare (Boot ROM). Exist! modele cu ROM n loc de RAM pentru lucrul
independent. Circuitul poate lucra att independent dup! ce RAM-ul a fost nc!rcat ct #i
ca SLAVE, ntr-o conexiune cu un calculator gazd!. Interfa"a cu calculatorul gazd! se face
pe 16 b"i de date #i admite mod de transfer prin DMA.

Pentru leg!tura cu exteriorul se pot folosi 27 de linii I/O, cu semnifica"ii duble. Interfe"ele
#i liniile I/O sunt v!zute de UC ca #i loca"ii n memoria de date.
Circuitul admite 2 moduri de lucru cu economie de energie, modul WAIT #i modul STOP.
Sistemul de ntreruperi admite 2 cereri de ntrerupere extern!.
Portul de depanare OnCE (On Chip Emulation) permite punerea la punct a programului
f!r! s! fie nevoie de un hardware suplimentar.

10.6.2. Circuitul MSP430 (Texas Instruments)

Acest circuit este numit de Texas Instruments Mixed Signal Microcontroller #i are o
structur! mai apropiat! de cea a unui MC. Aplica"iile tipice sunt cele n care este nevoie de
achizi"ia cu precizie a unui semnal analogic #i transmisia valorii numerice (eventual dup!
anumite prelucr!ri primare) unui calculator gazd!. La modelul MSP430C32 rezultatul este
prezentat pe un afi#aj LCD. Schema bloc a circuitului este dat! n Fig. 10.81.

























Magistrala date (16b) #i adrese (16b)
MSP430
256/512 octe"i RAM
CA/D
-12 bi"i
-6 canale
Port I/O
-8 linii
-3 cereri de
ntrerupere
Controller de
ntreruperi
Timer (8b) Interfa"! pentru
LCD
8-16K octe"i ROM/OTP
Timer
JTAG
Ceas de
gard!
Interfa"! serial!
UART
Generator de tact cu PLL
Fig. 10.81. MSP430 schema bloc
279

Unitatea central! RISC pe 16 bi"i are un num!r!tor de program (PC), un indicator de stiv!
(SP), un registru pentru constante #i 16 registre interne generale. Setul de instruc"iuni are
51 de instruc"iuni #i 7 moduri de adresare posibile. Instruc"iunile au un mare grad de
ortogonalitate. Instruc"iunile pot lucra cu date pe 8 bi"i sau date pe 16 bi"i.

Portul I/O pe 8 bi"i este foarte flexibil, fiecare bit poate fi programat individual ca intrare,
ie#ire sau cerere de ntrerupere #i este controlat de 6 registre:

date de intrare;
date de ie#ire;
registru de direc"ie;
indicatori de ntrerupere;
selec"ia frontului care cere ntrerupere;
validarea ntreruperilor.

Interfa"a cu LCD permite cuplarea unui afi#aj static sau cu multiplexare. Modulul LCD are
memorie proprie unde stocheaz! informa"ia de afi#at. Modulul are 4 linii pentru planul din
spate #i 21 de linii pentru segmente.


10.7 APLICA&II

10.7.1. Comanda motoarelor cu MC

Motoarele pot fi:

de curent continuu cu perii sau f!r! perii;
de curent alternativ cu induc"ie;
motoare pas cu pas;
motoare cu reluctan"! comutat!.

Cel mai simplu de comandat, pentru a ob"ine o vitez! variabil!, sunt motoarele de c.c. cu
perii. Pentru a ob"ine viteza variabil! este suficient s! aplic!m o tensiune
variabil!.Tensiunea variabil! poate fi aplicat! n mai multe feluri:

informa"ia numeric! este convertit! ntr-o informa"ie analogic! #i este aplicat!
unui tranzistor (pentru comanda ntr-un sens) sau la doi tranzistori (pentru
comanda n ambele sensuri). Tensiunea variabil! astfel ob"inut! se aplic!
motorului de c.c. Un dezavantaj este folosirea unui convertor D/A #i puterea
pierdut! n tranzistorii care lucreaz! n zona liniar!.
informa"ia numeric! creeaz! un semnal PWM, cu frecven"a destul de mare ca
motorul, datorit! iner"iei, s! integreze impulsurile. Motorul va avea o vitez!
propor"ional! cu factorul de umplere. Acest mod de comand! este mult mai
simplu #i tranzistorul, fiind n regim de comuta"ie nu disip! inutil.

Un motor poate fi comandat de c!tre un microcontroller att direct, ct #i prin intermediul
unor interfe"e specializate, programabile.
280
10.7.1.1. Comanda PWM a unui motor de c.c. cu perii folosind un
MC Motorola 6805

Schema bloc de control a unui motor de c.c. cu perii realizat! de un MC68HC705
este dat! n Fig. 10.82.


















Controlul vitezei poate fi realizat:

cu un program intern pentru un sistem care nu are nevoie de feedback sau de
schimb!ri dese ale progamului;
cu un program intern ghidat de cteva intr!ri, cu func"ionalit!"ile sugerate n figur!.

Un program simplificat la maxim, care sugereaz! modul n care se comand! motorul este:

PORTA EQU $00 Se aloc! denumiri sugestive porturilor A #i C
PORTC EQU $02 precum #i registrelor pentru stabilirea sensului
DRDA EQU $04
DRDC EQU $06
PWMAD EQU $10 portul de date PWM (pe liniile port A
CTLA EQU $14 portul de control al PWM


Start EQU *
CLR CTLA registrul de control al PWM este Resetat
LDA #$20 se trimite 20h n portul de date PWM
STA PWMAD (factor de umplere 50%)

LDA #$00 registrul C este definit cu toate liniile de intrare
STA DDRC (se putea #i cu CLR PORTC)

adr BRSET 0,PORTC,adr1 bitul 0 este setat (buton apasat)?
BSR adr_off dac! da, salt la subrutina motor oprit (off)
MC68705


OSC1 PWMA1

OSC2

Vdd
PC0
PC1
PC2



Vss
+5V
+5V
Motor de c.c. cu
perii
Oprit
Cre#tere vitez!
Sc!dere viteza
Fig. 10.82. Schema bloc de control a unui motor de c.c. cu perii
realizat! de MC68HC705
281
adr1 BRSET 1,PORTC,adr2 dac! nu, se verific! urm!torul buton
...........................................................
BRA adr bucla se repet! continuu

Adr_off LDA #$00 se trimite 00h n portul de date PWM
STA PWMAD

Dezavantajul acestei scheme de control este c! permite mi#carea motorului doar ntr-un
sens. Pentru a fi posibil! schimbarea sensului este nevoie de un bit suplimentar pentru
comanda schimb!rii polarit!"ii tensiunii de alimentare a motorului.

10.7.1.2. Comanda PWM a unui motor de c.c. f#r# perii folosind un
MC Motorola 6805

Un motor de c.c. f!r! perii este format dintr-un rotor magnet permanent #i un stator
format din bobine aranjate n grupe de cte 3 (la motorul cu 3 faze). Bobinele trebuie
alimentate ntr-o anumit! succesiune pentru a ob"ine sensul de rota"ie dorit (ca la motorul
pas cu pas). Majoritatea motoarelor sunt echipate cu traductoare de pozi"ie (Hall sau
optice). Un astfel de motor poate fi comandat cu vitez! variabil! prin modificarea
factorului de umplere (PWM), dar n acest caz trebuie modificat! #i viteza de comuta"ie.
Un sistem de ac"ionare este dat n Fig. 10.83.
















Acest sistem asigur! performan"e de reglare superioare, avnd o complexitate mai mare.
Secven"a de ac"ionare pentru comanda motoarelor este transmis! prin intermediul unui
amplificator de putere, ITC122. Semnalele digitale de la traductoare sunt citite pe 3 intr!ri
digitale.Aplica"ia este detaliat! n nota de aplica"ii Motorola AN1702/D,
(http://mcu.motsps.com ).

10.7.1.3 Comanda PWM a unui motor de c.c. cu perii folosind un
MC 8051

n aceast! aplica"ie se folose#te un MC cu arie de num!r!toare programabil! (PCA -
83C51FA) care are posibilitatea de a programa 2 canale PWM. Unele aplica"ii solicit!
MC68705


OSC1 PWMA1
PWMA2
OSC2 PWMA3

Vdd
PA0
PB7
PB6



Vss
+5V
Motor de c.c. f!r!
perii
ITC122

nf!#ur!ri
stator
Traductori
Hall
Fig. 10.83. Comanda PWM a unui motor de c.c. f!r! perii folosind
MC Motorola 6805
282
ob"inerea unei viteze precis controlate (cum ar fi la un casetofon), iar altele a unei
pozi"ion!ri precise (cum ar fi la un plotter).

O comand! bidirec"ional! a unui motor folosind 2 canale PWM #i o bucl! de reac"ie
prev!zut! pentru a men"ine o vitez! constant! este ar!tat! n Fig. 10.84.
















MC comand! motorul folosind 2 canale PWM. Curentul necesar motorului nu poate fi
furnizat de MC, de aceea se folose#te un circuit driver L293 care con"ine 4 canale de
amplificare, din care n acest caz sunt folosite 2 #i un semnal de modificare a sensului. n
acest montaj modificarea sensului se face prin modificarea factorului de umplere la cele 2
canale PWM, Fig.10.85.













Cnd P1.3 #i P1.4 sunt egale diferen"! de poten"ial la bornele motorului este zero. n cazul
(a), P1.3 este mai mult n 1 #i motorul este alimentat cu +5V de la P1.3 la mas! (P1.4) #i se
rote#te ntr-un sens. n cazul B el este alimentat de la P1.4 #i se rote#te n cel!lalt sens.
Viteza poate fi comandat! prin varia"ia factorului de umplere a celor 2 canale PWM, fiind
propor"ional! cu diferen"a lor.

Bucla de feedback se poate nchide montnd pe rotorul motorului 2 piese magnetice,
diametral opuse #i formnd 2 impulsuri, la fiecare rotire a motorului, cu un traductor Hall
cu ie#ire digital!. Semnalul este preluat de MC la un pin I/O de uz general, sau poate fi
83C51FA


P1.3

P1.4




P1.6
P1.2
L293
(Driver)
M
Traductor Hall
cu ie#ire digital!
(30137)
u
Generator de tact
Fig. 10.84. Comanda PWM a unui motor de c.c. cu perii folosind MC 8051
P1.3


P1.4

Tensiunea u
la bornele
motorului
a b
Fig. 10.85. Diagrama de semnal pentru comanda fazelor
283
preluat la un canal al PCA n mod num!r!tor (cum s-a realizat n acest caz), sau poate
genera o ntrerupere.

Pentru c! motorul cu perii este foarte perturbator, se impun m!suri de protec"ie. Se
recomand! conectarea unor condensatori de 6,8F ntre bornele motorului #i mas! #i de
0,33F ntre bornele motorului. De asemenea se recomand! decuplarea tensiunii de
alimentare cu condensatori de 50F, 6,8F #i 100nF n paralel, diode pentru eliminarea
vrfurilor de tensiune de la fiecare born! a motorului la mas! #i +5V.

Cteva elemente din programul de comand! sunt prezentate n continuare:

MOV CMOD,#06 :se stabile#te intrarea pentru PWM de la pin exterior
MOV CCAPM0,#42H :stabile#te canalul 0 din arie n mod PWM
MOV CCAPM1,#42H :stabile#te canalul 1 din arie n mod PWM
MOV CCAP0L,#0H :stabile#te un factor de umplere 100% pentru canalul 0
MOV CCAP1L,#0H :stabile#te un factor de umplere 100% pentru canalul 1, ceea ce
:nseamn! c! motorul st!.
Dup! ini"ializarea acestor registre de comenzi trebuie pornit timerul, ceea ce se realizeaz!
prin pozi"ionarea bitului 6 (CR) din registrul de control CCON.

SETB CR

Rotirea cu vitez! maxim! ntr-un sens se comand! cu secven"a:

MOV CCAP0L,#0FFH
MOV CCAP1L,#0H
SETB CR

Rotirea cu vitez! maxim! n cel!lalt sens se comand! cu secven"a:

MOV CCAP0L,#0H
MOV CCAP1L,#0FFH
SETB CR

Traductorul de vitez! d! impulsuri canalului 4 programat n mod de captur!. La primirea
unui impuls pe P1.6 se ncarc! con"inutul timerului n registrele CCAP3H #i CCAP3L,
con"inutul acestor registre fiind propor"ional cu timpul scurs ntre 2 impulsuri ale
traductorului.

MOV CMOD,#0 :se stabile#te tactul timerului ca fosc/12
MOV CCAPM3 :canalul 4 n mod captur!
SETB IP.6 :se seteaz! ntreruperea de la PCA la cea mai mare prioritate
MOV IE,0C0H :se valideaz! ntreruperile de la PCA
SETB CR :se porne#te timerul

Cnd apare o ntrerupere, n CCAP3L #i CCAP3H apare con"inutul timerului.
O aplica"ie asem!n!toare este descris! de Jafar Modares n nota de aplica"ii AP-425, de la
INTEL ( www.questlink.com ).

284
10.7.1.4. Interfa!a inteligent# pentru comanda motoarelor
HCTL 1100 (Hewlett Packard)

Comanda motoarelor este o aplica"ie de larg interes att pentru speciali#tii din
domeniul electric ct #i pentru speciali#tii din domeniul mecanic sau din alte domenii. De
exemplu multe echipamente periferice au n componen"! motoare (unitatea de hard disc,
unitatea de disc flexibil, imprimanta etc.). Comanda motoarelor este necesar! #i la
autovehicule sau n domeniul automatiz!rilor. Un circuit de interfa"! specializat n
comanda motoarelor este circuitul HCTL 1100. Acesta poate comanda att motoare pas cu
pas ct #i motoare de curent continuu cu traiectorie determinat! de vitez!. Schema bloc a
interfe"ei HCTL-1100 este dat! n Fig. 10.86.





















AD0/DB0- AD5/DB5- sunt 6 linii de adrese multiplexate cu date. Selec"ia adresei se face
cu /ALE.
DB6, DB7- 2 linii de date

La nceput se stabile#te adresa pe liniile de date, apoi cu /ALE, aceasta se stocheaz! n
registrele interne. Apoi se stabilesc datele #i se valideaz! cu R//W. Semnalul /OE stabile#te
momentul citirii datelor n registrul intern al lui HCTL1100.

Semnalele CHA, CHB #i INDEX provin de la traductorul foto de tura"ie. Aceste impulsuri
incrementeaz! un registru de pozi"ie actual! de 24 de bi"i (se incrementeaz! sau
decrementeaz!). Pentru evitarea impulsurilor eronate CHA #i CHB, acestea trebuie s!
r!mn! active cel pu"in 3 perioade EXTCLK pentru a fi luate n considerare.

Intr!rile LIMIT #i STOP sunt semnale de urgen"! care comand! oprirea motorului
independent de procesorul sau MC gazd!. Ie#irile PROF #i INIT pot fi interogate de MC
gazd! pentru a afla starea circuitului. Cu /SYNC se pot sincroniza ntre ele mai multe
circuite HCTL 1100. Semnalul RESET aduce circuitul n starea ini"ial!.

Interfa"a cu
microprocesorul
AD0/DB0
........
AD5/DB5
DB6
DB7
/ALE
/CS
/OE
R//W
RESET

REGISTRE
INTERNE
LIMIT STOP
Flaguri urgen"e
INIT Flaguri de stare
PROF
Generator de profil
Reac"ie
CHA CHB
Port de
comand a
motorului
MC0
............

MC7
Port PWM PULSE
SIGN
Comutator PHA
PHB
PHC
INDEX PHD
/SYNC Timer
EXTCLK
Fig. 10.86. Schema bloc a interfe"ei HCTL-1100
285
HCTL 1100 are 64 de registre interne pe 8 bi"i din care 35 utilizabile din exterior. Aceste
registre sunt adresate pe liniile de adres! AD0-AD5.

10.7.1.5. Traductoare de pozi!ie "i sens

Traductorul optic de pozi"ie #i de sens este format dintr-un disc cu orificii
dreptunghiulare dispuse pe circumferin"!. Orificiile sunt sesizate de dou! sisteme optice
decalate. Din formele de und! generate de cele dou! sisteme decalate se poate deduce
sensul rota"iei, ca n Fig. 10.87.













Pe disc mai este realizat un orificiu pentru impulsul de INDEX. La o rota"ie se genereaz!
un impuls INDEX. Impulsurile de la traductoare sunt sensibile la perturba"ii, de aceea se
impun m!suri specifice EMC de protec"ie.

Aceste semnale pot constitui att semnale pentru stabilirea pozi"iei (prin num!rarea
impulsurilor), a sensului prin verificarea defazajului ct #i a vitezei, printr-un convertor
tensiune/frecven"!.

10.7.1.6. Comanda unui motor de curent continuu printr-un
convertor D/A

Cel mai simplu convertor este realizat cu un monostabil urmat de un FTJ.
Impulsurile declan#eaz! monostabilul care stabile#te o perioad! fix! pentru starea HIGH a
semnalului. Prin FTJ se ob"ine o tensiune propor"ional! cu frecven"a semnalului.
La ie#irile MC0-MC7 se cupleaz! un convertor D/A, ca n Fig. 10.88.












FOTO 1
FOTO 2
FOTO 1
FOTO 2
SENS
SENS
Fig. 10.87. Formele de und! generate de traductorul de pozi"ie #i sens

HCTL 1100
MC0
MC1




MC7
CD/A
+5V
Io
Conv. I-U
v
o

Fig. 10.88. Conectarea unui motor de c.c. la HCTL 1100

+
286
Datele se stocheaz! n registrul 08H al HCTL pe 8 bi"i. Pentru a putea comanda motorul n
ambele sensuri, se consider! tensiuni negative n intervalul de comand! 00H-7FH #i valori
pozitive n intervalul 80H-FFH, Fig. 10.89.















10.7.1.7. Comanda PWM a unui motor de c.c. folosind HCTL 1100

Comanda unui motor de c.c. se face cu semnaleul PULSE. Frecven"a acestuia este
stabilit! la EXTCLK/100. Semnalul SIGN comand! sensul de rota"ie. n registrul 09H al
HCTL 1100 se ncarc! l!"imea impulsului, Fig. 10.90.














Comanda se face cu valori zecimale, astfel 9CH=-100D nseamn! un factor de umplere de
100%, 32H=50D nseamn! 50% iar 64H=100D nseamn! 100%.

10.7.1.8. Comanda unui motor pas cu pas

Se pot comanda motoare pas cu pas cu 2,3 sau 4 faze, cu diferite succesiuni de
comand! a fazelor. Semnalul INDEX serve#te la stabilirea pozi"iei ini"iale a motorului.
Succesiunea fazelor se poate programa prin registrul 07H. Pentru o programare n care
toate fazele sunt active se genereaz! o secven"! ca n Fig. 10.91.

Frecven"a impulsurilor poate fi variabil! (programabil!). Ca urmare se pot comanda #i
motoare pas cu pas cu un anumit profil de vitez!.
00H 40H 80H C0H FFH registrul 08H
U
+5V

2,5V






-2,5V

-5V
Fig. 10.89. Generarea tensiunilor de comand!
100%


50%









Factor de umplere
SIGN=0 SIGN=1
Fig. 10.90. Programarea HCTL 1100 pentru
comanda unui motor de c.c. cu modula"ie PWM
80H 9CH 00H 32H 64H
registrul 09H
287












10.7.1.9. Cuplare circuitului HCTL 1100 la microcontroller

a. Cuplarea circuitului HCTL1100 la microcontrollerul AT90S1200

Circuitul driver pentru motoare pas cu pas #i pentru motoare de curent continuu,
HCTL-1100, prime#te semnalele de comand! #i date de la microcontroller prin porturile
acestuia. Pe portul B al microcontrollerului se trimit date catre circuitul HCTL1100 #i se
citesc date din acesta, iar pe portul D se trimit comenzi (semnale) pentru circuitul
HCTL1100, Fig. 10.92.

VCC
C4
30pF
C6
1uF
C3
30pF
Y1
2MHz
R6
10K
U4
HCTL1100
AD0
2
AD1
3
AD2
4
AD3
5
AD4
6
AD5
7
AD6
8
AD7
9
MC0
18
MC1
19
MC2
20
MC3
21
MC4
22
MC5
23
MC6
24
MC7
25
SYNC
1
PHA
26
PHB
27
PHC
28
PHD
29
SIGN
17
PULSE
16
CHA
31
CHB
30
INDEX
33
PROF
12
INIT
13
LIMIT
14
STOP
15
EXT CLK
34
R/W
37
OE
40
CS
39
ALE
38
RESET
36
U4
AT90S1200
r
e
s
e
t
1
xtal1
4
xtal2
5
pb0
12
pb1
13
pb2
14
pb3
15
pb4
16
pb5
17
pb6
18
pb7
19
pd0
2
pd1
3
pd2
6
pd3
7
pd4
8
pd5
9
pd6
11




In continuare sunt prezentate rutine AT90S1200 pentru lucrul cu circuitul HCTL1100.
Procedurile prezentate ca exemple realizeaza RESET-ul, simuleaz! citirea si scrierea
circuitului HCTL-1100.



/INDEX

PHA

PHB

PHC

PHD
Fig. 10.91. Secven"! de comand! a unui MPP cu patru faze
Fig. 10.92. Cuplarea HCTL 1100 la un MC AT90S1200
288
.device AT90S1200

rjmp start

short_delay: ;total 1+80*(1+1/2)-1+4=124
;o ntrziere de 124 perioade de tact
ldi r26,80 ;1 tact
sd: dec r26 ;1 tact
brne sd ;1/2 tact
ret ;4 tact
;#################################################################
;PROCEDURA RESET HCTL-1100
;#################################################################

rst: cbi $12,4 ;bitul de reset din portul D
rcall short_delay ;se men"ine pinul de reset in 0 logic
sbi $12,4 ;reset ncheiat
ret
;#################################################################
;#################################################################
;PROCEDURA CITIRE
;#################################################################

cit: clr r16
out $17,r16 ;portul B intrare
sbi $12,0 ;comand! read
ldi r17,0b00000001 ;s-a selectat un registru din HCTL
out $18,r17
cbi $12,3 ;puls pe ALE
sbi $12,3

cbi $12,2 ;puls pe CS
sbi $12,2

rcall short_delay

cbi $12,1 ;OE=0
in r18,$18 ;citire propriuzis! din HCTL1100
sbi $12,1 ;OE=1
ret
;#################################################################
;#################################################################
;PROCEDURA SCRIERE IN HCTL1100
;#################################################################
scr: ser r16
out $17,r16 ;portul B ie#ire
ldi r17,0b000000001 ;selec"ie latch din HCTL1100
out $18,r17
cbi $12,3
289
sbi $12,3 ;puls ALE
cbi $12,0 ;selec"ie R/W pe scriere
ldi r18,0b1111111 ;date de trimis n HCTL1100
out $18,r18 ;scrierea propriuzis!
cbi $12,2
sbi $12,2 ;puls CS
sbi $12,0 ;revenire la modul citire din HCTL1100
ret
;#################################################################
start :
ser r16
out $11,r16 ;portul D ie#ire

rcall short_delay ;se invoc! o mic! intrziere
rcall rst ;se trimite comand! reset la HCTL1100
rcall cit
rcall scr

b. Cuplarea circuitului HCTL1100 la microcontrolerul INTEL 8051

Exist! dou! moduri de cuplare a lui HCTL-1100 la MC 8051, #i anume legarea la
magistrala de adrese/date/control sau la portul I/O. Alegerea uneia dintre metode sau a
celeilalte depinde de modul n care este folosit MC 8051. Dac! MC 8051 folose#te bus-ul
n aplica"ia dat! se recomand! cuplarea lui HCTL pe bus. Este necesar hard suplimentar
(dou! circuite TTL). La legarea pe bus se pot cupla pn! la 4 circuite HCTL. Dac! circuitul
nu folose#te bus-ul, adic! nu are conectat! nici un fel de memorie exterioar! se recomand!
legarea lui HCTL la portul I/O, solu"ie care nu necesit! hard suplimentar.
n Fig.10.93. se arat! modul de legare la portul de I/O.
Vcc
Vcc
U4
HCTL1100
AD0
2
AD1
3
AD2
4
AD3
5
AD4
6
AD5
7
AD6
8
AD7
9
MC0
18
MC1
19
MC2
20
MC3
21
MC4
22
MC5
23
MC6
24
MC7
25
SYNC
1
PHA
26
PHB
27
PHC
28
PHD
29
SIGN
17
PULSE
16
CHA
31
CHB
30
INDEX
33
PROF
12
INIT
13
LIMIT
14
STOP
15
EXT CLK
34
R/W
37
OE
40
CS
39
ALE
38
RESET
36 R7
10K
C9
10uF
C8
22pF
C7
22pF
Y2
2MHz
U5
8051
EA/VP
31
X1
19
X2
18
RESET
9
INT0
12
INT1
13
T0
14
T1
15
P1.0
1
P1.1
2
P1.2
3
P1.3
4
P1.4
5
P1.5
6
P1.6
7
P1.7
8
P0.0
39
P0.1
38
P0.2
37
P0.3
36
P0.4
35
P0.5
34
P0.6
33
P0.7
32
P2.0
21
P2.1
22
P2.2
23
P2.3
24
P2.4
25
P2.5
26
P2.6
27
P2.7
28
RD
17
WR
16
PSEN
29
ALE/P
30
TXD
11
RXD
10


Fig. 10.93. Conectarea HCTL 1100 la MC 8051

290
Din aceast! figur! se remarc! simplitatea conect!rii #i hardul suplimentar minimal utilizat.
Un software minimal este prezentat n continuare (rutine de RESET, citire #i scriere).

;##############################################################
;PROCEDURA RESET
;##############################################################
RS1100: ORL P2,#0FH ;Seteaz! liniile de R/W la citire, OE=1, CS=1,
AE=1
MOV P0,#0FFH ;Seteaz! P1=HIGH
CLR P2.4 ;Seteaz! RESET pe LOW
NOP ;ntrziere corespunz!toare unui impuls de
5s
NOP
NOP
NOP
SETB P2.4 :Readuce linia RESET n HIGH
RET
;################################################################

;################################################################
;PROCEDURA CITIRE (Cite#te registrul lui HCTL)
;################################################################
RD1100 SETB P2.0 ;Seteaz! liniile R/W pentru citire
MOV P1,B ;Adresa de LATCH
CLR P2.3 :Se genereaz! un puls ALE
SETB P2.3
MOV P1,#0FFH
CLR P2.2 ;Se genereaz! un puls CS
SETB P2.2
NOP ;ntrziere corespunz!toare unui impuls de
4s
NOP
NOP
CLR P2.1 ;Seteaz! OE=0
MOV A,P0 ;Se iau datele din HCTL 1100
SETB P2.1 ;Seteaz! OE=1
RET
;################################################################

;#################################################################
;PROCEDURA SCRIERE (Scrie n registrul lui HCTL)
;################################################################
WR1100 MOV P1,B ;Adresa de LATCH
CLR P2.3 :Se genereaz! un puls ALE
SETB P2.3
MOV P1,#0FFH
CLR P2.0 ;Seteaz! liniile R/W pentru scriere
MOV P1,A ;Se emit datele
CLR P2.2 ;Se genereaz! un puls CS
291
SETB P2.2
SETB P2.0 ;ntoarcere la modul de citire
MOV P1,#0FFH
RET
;###############################################################

10.7.2. Receptor radio cu acord digital cu 8051

Aceast! aplica"ie folose#te un circuit TEA5757 (produc!tor PHILIPS) care este un
radio cu acord digital pe un singur chip. Partea de receptor radio este un receptor stereo
AM/FM. Partea de acord este bazat! pe logica FUZZY. Circuitul necesit! un minim de
componente externe pentru a putea func"iona.

Interfa"a cu un MC este foarte simpl!, se poate face pe 4 fire: ceas de date (BUS-CLOCK),
date (DATA), validare la scriere (WRITE ENABLE) #i mod stereo/mono (MO/ST). MC
trebuie s! dea 2 instruc"iuni: preset #i c!utare.

n mod preset MC trebuie s! ncarce n radio informa"ii cum ar fi banda AM/FM, frecven"a
sau modul stereo/mono. Circuitul de acord ncarc! frecven"a dorit! ntr-un registru #i
modific! tensiunea de acord pn! cnd frecven"a de acord este egal! cu frecven"a dorit!.

n mod c!utare MC trimite doar banda AM/FM #i direc"ia de c!utare. Circuitul de acord
modific! tensiunea de acord pn! cnd apare o reac"ie (cmp radio mare). Atunci se
genereaz! un semnal care blocheaz! tensiunea de acord. Frecven"a de acord este nc!rcat!
ntr-un registru #i citit! #i memorat! de c!tre MC. Utilizatorul (MC) decide dac! frecven"a
corespunde unui post dorit; dac! da este memorat! pentru a se putea realiza o opera"ie de
preset, iar dac! nu, se ini"iaz! o nou! c!utare.

Prin linia serial! de date (DATA) MC ncarc! n radio un registru de 25 de bi"i, cu
urm!toarele semnifica"ii ale bi"ilor:

(MSB) start c!utare;
sens c!utare (spre frecven"e mai mari sau mai mici);
mono/stereo;
2 bi"i pentru selec"ie band! (AM/FM); pot fi selectate #i unde medii/unde lungi;
3 bi"i la dispozi"ia utilizatorului;
2 bi"i care stabilesc valoarea cmpului electric la care se produce oprirea
c!ut!rii;
15 bi"i care stabilesc frecven"a de acord.

Un aparat de radio ct mai reu#it comercial presupune un num!r minim de componente. Se
poate folosi un MC din familia MCS-51 care are #i interfa"! pentru LCD, avnd astfel un
radio cu afi#aj. Schema bloc este dat! n Fig. 10.94.






292
























Afi#ajul LCD este legat la portul special. Pentru interfa"a cu radioul se folosesc 3 bi"i din
portul P2, iar pentru interfa"a cu tastatura se folose#te portul P0. Radioul mai este
completat cu un amplificator audio final de puterea dorit!.

10.7.3. GPS cu MC Motorola

Motorola ofer! un set de chipuri (chipset) pentru aplica"ii GPS (Global Positioning
System). Setul este format dintr-un circuit de radio frecven"! (RF) #i un MC. Aplica"iile
GPS au cunoscut n ultimul timp o dezvoltare deosebit!. Se ofer! astfel sisteme GPS
portabile; noile modele de autoturisme includ sisteme de naviga"ie bazate pe GPS, ca s! nu
mai vorbim de aplica"iile clasice cum ar fi la naviga"ia aerian! sau pe ap!. Schema bloc a
sistemului GPS este dat! n Fig. 10.95.

Blocul de radiofrecven"! recep"ioneaz! semnalul GPS #i l transform! ntr-un semnal
digital serial. Totodat!, realizeaz! cu o bucl! PLL #i tactul de citire din semnalul
recep"ionat. Decodificarea #i interpretarea semnalului sunt sarcinile MC.

MC este bazat pe o arhitectur! RISC pe 32 de bi"i de date (MMC2003) #i are pe chip un
modul GPS cu 12 canale, memorie ROM #i FLASH, memorie RAM cu posibilitatea
aliment!rii de la baterie (NVRAM), 2 porturi seriale UART, port serial SPI, timer, canal
PWM #i intr!ri/ie#iri generale. MC poate fi alimentat de la baterii fiind posibile astfel
aplica"ii portabile. MC admite un tact de pn! la 33MHz.

Alte informa"ii pot fi ob"inute la www.motorola.com/mcore/gps .

Radio cu acord
TEA5757H L

R
BUS CLK WE DATA
Amplificator
audio
(TDA7050)
P2.0 P2.1 P2.2
MC P83C434 (Philips)

BP0 S00 S01 S02 S03 .......... P0.0 ...............P0.5
Display LCD
Tastatura
Fig. 10.94. Schema bloc a unui aparat de radio cu MC din familia
MCS-51
293























10.7.4. Aplica"ii auto

Evolu"ia revolu"ionar! a p!r"ii electronice la autovehicule a dus la cre#terea rapid! a
num!rului de fire de leg!tur!. Cablarea conven"ional! nu este o solu"ie de viitor pentru c!
nu ofer! o posibilitate ieftin! #i fiabil! de a conecta toate modulele ntre ele. Miniaturizarea
cablurilor #i a conectorilor este o solu"ie de asemenea temporar!. n viitor va fi necesar! o
transmisie multiplexat! a semnalelor, o solu"ie ieftin! #i fiabil! de interconectare. nc! nu
se fabric! ma#ini de serie cu acest mod de transmisie a semnalelor din cauza costurilor
mari, datorate mai ales de componentelor de comuta"ie de putere. Apari"ia MC, care sunt
componente foarte ieftine, #i sc!derea pre"urilor la tranzistoarele FET de putere sunt factori
care nclin! balan"a c!tre transmisia multiplexat!.

Firma National Semiconductor a gndit un astfel de sistem cu MC COP de 4 bi"i pentru a
realiza un cost ct mai mic (Abdul Aleat, Nota de aplica"ii 454, 1997 #i Venkata Gobburu,
Nota de aplica"ii 453, 1993).

O schem! bloc n care nodurile re"elei de MC sunt constituite de echivalente 8051, iar
nodurile sunt conectate ntre ele printr-o leg!tur! serial! este dat! n Fig. 10.96.

S-au figurat doar cteva din noduri. Aceast! leg!tur! serial! nu poate fi prin UART
deoarece UART nu este o leg!tur! multipunct. Se poate realiza o legatura I2C,
MICROWIRE sau CAN08. Fiindc! 8051 cu I
2
C este uzual, se poate alege aceast! variant!,
chiar dac! nu este cea mai performant!.



Bloc de
recep"ie
PLL
MMC2003
GPS 12
canale
UC RISC 32Ko SRAM

2x
UART
SPI PIO/PWM Timer
256ko ROM
FLASH
PSRF1111A RF
Fig. 10.95. Schema bloc a unui sistem GPS cu MC
294

















































Traductoare tura"ie Comanda ventilelor
Temperatur! Temperatur! Vitez! Nr. km
#i existen"! ulei #i existen"! ap!

MC pentru frna ABS
P2.0 P2.1 P2.2
MC P83C434

BP0 S00 S01 S02 S03 .......... P0.0 ...................P0.5
Display LCD
Tastatura
MC P80C2580
I2C, ADC, UART
SDA SCK
UART (conexiune de test din
exterior cu un PC)
MC P80C2580
I2C, ADC, UART
MC pentru afi#aj la bord
#i introducere de date
MC pentru
supravegherea motorului
MC P80C2580 SLAVE
I2C, ADC, UART
Fig. 10.96. Schema bloc a unui sistem auto realizat cu microcontrollere
echivalente 8051
MC Master
295
O structur! MASTER SLAVE este cea mai potrivit! acestei aplica"ii, deoarece este simpl!
#i implicit fiabil!, o structur! MULTI MASTER nefiind necesar!. n fiecare nod al re"elei
exist! cte un MC, deci fiecare nod este inteligent #i poate executa instruc"iunile primite de
la MASTER. Dup! executarea opera"iei dorite MC SLAVE comunic! rezultatul circuitului
MASTER pentru ca acesta s! poat! afi#a confirmarea.

Afi#area rezultatelor #i introducerea datelor se fac cu un afi#aj LCD #i o mini tastatur!, dar
afi#area se poate completa cu bare de LED-uri #i cu afi#aje luminiscente acolo unde este
cazul. Cu ct informa"ia afi#at! este mai important!, cu att afi#ajul trebuie s! fie mai
luminos.

Un sistem de m!sur! independent care se ocup! cu o anumit! m!rime, se nume#te EIC
(Electronic Instrument Cluster).


10.7.5. Memorii seriale

Pentru a realiza montaje ct mai compacte #i cu trasee ct mai pu"ine, au nceput s!
fie r!spndite memoriile EEPROM #i FLASH seriale. Acestea sunt utile acolo unde se cere
ca informa"ia s! nu fie volatil!, iar modificarea informa"iei s! poat! fi f!cut! n sistem. De
regul! interfa"a serial! este pe 2 sau pe 3 linii, o linie fiind tactul de citire/scriere, o linie
fiind de date (bidirec"ional! la interfe"ele cu 2 linii sau o linie de citire #i una de scriere
date). Se realizeaz! #i memorii cu interfe"e seriale speciale, cum ar fi SPI, I2C sau
MICROWIRE.

Aceste memorii pot fi folosite #i la nc!rcarea ini"ial! a programului n MC, la punerea sub
tensiune, pentru MC care permit acest lucru (de exemplu EZ USB prin interfa"a I
2
C).

O memorie de 16K bit cu interfa"! SPI produs! de Fairchild (NM25C160) poate fi
renscris! de 1 milion de ori, iar datele sunt re"inute 40 de ani. Schema bloc este dat! n
Fig. 10.97.















Semnalul /CS valideaz! func"ionarea memoriei pentru a se putea cupla mai multe
dispozitive SPI, semnalul /HOLD suspend! transmisia serial! f!r! a o reseta iar semnalul
/WP protejeaz! circuitul mpotriva scrierilor din gre#eal!.
NM25C160







Interfa"! SPI
/CS
/HOLD
/WP





SCK
SI
SO
Fig. 10.97. Schema bloc a unei memorii seriale
296

Interfa"a SPI este o interfa"! standard, cu viteza admis! pentru tact de maximum 2MHz.

Cu acelea#i date generale Fairchild produce #i memoria NM24C16 cu interfa"!
bidirec"ional! pe 2 fire I
2
C. Linia de date I
2
C este bidirec"ional!. Intrarea de date se face
prin intermediul unui trigger Schmitt. Circuitul este chiar mai simplu de utilizat, el nu mai
are semnale de /CS, /HOLD sau /WP, aceste func"ii fiind realizate prin protocolul I2C.

Circuitul NM93C86A este dotat cu o interfa"! serial! sincron! MICROWIRE. Circuitul are
linii de selec"ie (CS), tact (SK), date de intrare (DI) #i date de ie#ire (DO). Informa"ia este
considerat! ca aranjat! n cuvinte pe 8 sau 16 bi"i, dup! cum semnalul exterior ORG este 0
sau 1.

Chiar dac! cu o interfa"! MICROWIRE sunt dotate doar MC din familia COP8 de la
National Semiconductor, memoria se poate cupla direct la interfa"a SPI cu care este
compatibil! pin cu pin. Este nevoie doar de un software de aranjare a datelor #i de
sincronizare.

Toate aceste memorii sunt programabile; nainte de a transmite #irul de date trebuie
transmis unul sau mai multe cuvinte de comand! care stabilesc opera"ia care urmeaz!
(scriere, citire, #tergere) #i se programeaz! anumite aspecte particulare de lucru cu interfa"a
serial!.

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