Microrobotica Monty Peruzzo Editore - 06 A - Microcontroller

66

description

Tutta la raccolta in versione torrent al link: http://www.tntvillage.scambioetico.org/index.php?act=showrelease&id=192104 Su Issuu c'è la raccolta completa. Cerca "Monty Peruzzo Editore".

Transcript of Microrobotica Monty Peruzzo Editore - 06 A - Microcontroller

Page 1: Microrobotica Monty Peruzzo Editore - 06 A - Microcontroller
Page 2: Microrobotica Monty Peruzzo Editore - 06 A - Microcontroller
Page 3: Microrobotica Monty Peruzzo Editore - 06 A - Microcontroller

che governano it mondo.Computers: [e macchine

ttualmente è imoossrbile conceoire il mondonel quale viviamo senza computer. Se questi

smettessero di funzionare la Terra girerebbe

comunque, pero gran parte delle cose che

esistono su dr essa si fermerebbero. Si inter-romperebbero i collegamenti telefonici, fax, e Internet.

GIi spostamenti su terra, mare e cielo sarebbero seria-mpnto ncnalizzati lp induStrie fermerebberO i loro nro--^--t ^-^.r,,++;,,i ^ ,- _rmmerCializZaZiOne lgi lnrn nro_LC))l VfUUULLIVI C ld LUI lllllEILlOll4LOLIVttC UCr rvrv lJrv

dotti. Gli ospedali non potrebbero eseguire determinatiinterventi. Persino a casa nostra avremmo dei problemi

con l'ascensore, l'antifurto, ecc. ll caos sarebbe totale.ll computer è uno degli strumenti più importanti

fabbricati dall'uomo ed e da questo strumento che

dipende il suo progresso.

Per poter seguire con profitto questi fascìcoìi, dedicati

all'affascinante tecnica dello sviluppo, costruzione, pro-

grammazione ed applicazione dei Robots intelligenti,

fNICROCONTROLTERPresenlcrzione Generole

ll aersonal computer o PC

sarà uno strumento indispensabile per operare con i microrobot

avrete bisogno di un PC. ll computer vi permetterà di

eseguire interessanti lavori, ad esempio:

Poter vedere Microrobots commerciali con il CD.

Seguire lo sviluppo costruttivo del Microrobots,

Constatare il comportamento del Microrobot eseguendo i programmi

che riceverete.

Produrre voi stessi i programmi per pilotare il vostro nuovo "animale

domestico",

Poter visitare siti Internet da noi consigliati per ottenere informazionisulle caratteristiche, prezzi, punti d'incontro e corsi di Microrobots.

Risolvere i dubbi ed i problemi che nasceranno durante lo sviluppo

dell'opera attraverso il supporto elettronico.

Tutti i computer, dal PC a quelli molto più potenti che

controllano un insieme di celle robotizzate oer l'assem-

blaggio d'automobili, o comequelli piccoli di un Microrobot,hanno la stessa architettura fon-damentale, composta dai se-nrronfi tro olomonti'

MEMORIAIn questo elemento del compu-tar \/onfl^nn <rritti i r,.., programmlche si vogliono utilizzare, assie-

me ai dati necessari ed ai risulta-

ti che vengono generati.

PROCESSORE

E' la parte più importante della

macchina, esso deve interpreta-ra lo i<trr rzinn i dol nr,r,39ramna,ed eseorrire le onerazioni che

competono ad ognuna. All'in-tprno dpl nrncpqqorp l'Unita di

Controllo è quella che rnterpreta

o traduce le istruzioni, quindi il

Page 4: Microrobotica Monty Peruzzo Editore - 06 A - Microcontroller

P Ol

Memorialstruzioni e dati

ProcessoreInterpreta ed

esegue le istruzioni

PerifericheStampante

Un computer è composto da tre parti principali: memoria, processore e periferiche

percorso dei dati esegue le operazioni impartite da

ogni istruzione.

PERIFERICHE

Sono i dispositivi che utilizzano gli utenti, nei quali ven-gono caricate le informazioni e vengono raccolti i risul-tati ottenuti dall'analisi dei programmi e dei dati.

Le periferiche classiche sono la tastiera, il mouse,la stampante, il monitot il modem, gli altoparlanti e

la telecamera digitale, ma possono anche essere un

PC motori, un display a sette segmenti, sensori diprossimità, ecc.

E un computer costruito all'interno di un circurro InTe-

grato. I progressi tecnologici dell'elettronica hanno per-

messo di implementare tutti i componenti di un compu-ter dentro un chip di silicio in un solo circuito integrato.

Ad esempio, il Microcontroller della fotografia che

viene evidenziato sul dito è un PlC12C5O9, ed è conte-nuto in un "case", o contenitore, di otto piedini, occu-pa un superficie di 12 mm. di lunghezza per 6 mm. dilarghezza, pesa poco piu di 3 gr., il prezzo puo essere

inferiore a 1 Euro, a seconda del numero di pezzi acqui-stati. Con le caratteristiche segnalate precedentemente

è facile dedurre che un Microcontroller è un piccolo

cornputer, con poca memoria, dove il processore e

molto semplice, infatti può riconoscere soltanto poche

istruzioni di base e le periferiche che possono essere

colleqate sono abbastanza limitate.

I Microcontroller sono computer di dimensioni moltoridotte che possono essere situati nella stessa applica-zione che gestiscono. La tastiera è un esempio di pro-

Un tipico Microcontroller sulla punta del dito.

dotto molto conosciuto, che ha al suo ìnterno unMicrocontroller, il quale individua il tasto scelto,genera icodici che lo identificano e lo invia al pro-cessore. Lo stesso succede con il mouse, al suo inter-no esiste un Microcontroller che conta, registra e tra-smette al processore i segnali che vengono prodottidai due encoders che controllano il movimento dellapallina in X e Y inoltre riconosce, codifica e trasmet-te i comandi dei tasti.

Page 5: Microrobotica Monty Peruzzo Editore - 06 A - Microcontroller

u ,

TWGROGONTROLLERPresenleizione Generole

La tastiera e il mouse sono due tipiche periferiche del PC,

ognuna delle quali viene governata da un microcontroller che si

trova al suo interno.

Un microcontrollore inserito nel prodotto che con-

trolla, sa eseguire solamente un compito, motivo per il

quale esegue sempre lo stesso programma: controlladati che si assomigliano e controlla sempre le stesse

periferiche. Un computer di ulilizzo generaìe come un

PC, possiamo utilizzarlo per disegnare un circuito elet-

tronico, oppure per grocare.

ll microcontroller permette d'impiegare un compu-ter per far funzionare tutti i prodotti, piccoli o econo-

mìci che siano.

Le oossibilità d'utllizzo dei microcontroller sono ltmitatesolo dall'ingegno dei suoi disegnatori. Chi avrebbe mai

pensato, anni fa, che una radio avesse bisogno di un

computer?I ricevìtori moderni, grazie al lavoro di uno o più

controlier, hanno cambiato immagine a questo classico

prodotto. La sintonia delle emittenti migliora, sì posso-

no memorizzare le stazioni desiderate, programmarle in

modo casuale, realizzare l'accensione in data ed oraprefissate e tantissime altre possibilità, con la capacità

di aumentare la categoria e le prestazioni di questo

apparecchio che prima era solamente una radio.

L'incorporazione dei microcontrollori a tuttì i pro-

dotti e sistemi che abbiamo, è in costante crescita, e

PANNELLO DEGLICONTROLLO DELLA VELOCITACONTROLLO DELLA CLI MATIZZMIONESISTEMA DI NAVIGMIONEMULTIPLEXING DEL CABLAGGIO

AIRBAG

ll numero di Microcontroller che vengono incorporatrnell'automobile è sempre maggiore

durante il secolo XXI assisteremo ad un'invasione gene-

ralizzala. La dìstribuzione percentuale della applicazio-

ne dei microcontrollori nei diversi settori alla fine del

secolo XIX è la seguente:

COMUNICAZIONE: 3O%Telefoni fissi e mobili. Sistemi di comunicazione. Navigazione.

CONTROLLODEL MOTORE

PRODOTTI Dl LARGO CONSUMO:27YoElettrodonrestici. Macchine da gioto. Giocattoli. Sistemi di skureza ed

allarmi Climatizzazione.

AUTOMOBILI:18o/o(ontrollo del motore (consumo, gas di scarico, eccJ. Controllo di frenata(AB5). Airbag. Strumentazione. Controllo della velocità. Climatizzatore.

Navigazione satellitare, Computer di bordo. Sistema antifurto.

PERIFERICHE INFORMATICHE: 1 5%Tastiera. Mouse. Disro rigido. Gestione dell'immagine e del suono.

Stampante. Multirnedia.

INDUSTRIA: 1O7oStrumentazione. Elettromedicina. Automazione. Robotica. Telecamere.

Applicazioni militari. Domotica (automazione delle abitazioni civili).

Page 6: Microrobotica Monty Peruzzo Editore - 06 A - Microcontroller

MICROCONTROLLERPresentcrzione Generole

Controllo illuminazione .,....1

SCALAAscensoreControllo illuminazione.Antincendio

(prnnr{n l: lì:t:nlo.t, nell'annO 2000 efanO 240 i

microcontroller installati in una casa americana. A casa

nosîra oLranîi ce ne sono? Faccia-

mo un piccolo bilancioln breve aumenteranno 1e quan-

tita a ca:sa del a rni-e-re nasct-

ta del nostro microrobot Monty.

L'invasione dei mrcrocontroller e

appena inizìata. Ogni annoapparono sul nostro mercatomndo li n I n.ìtont .-^--i ,1, .^-

V u VvLLr L r LoVoL ul lcd-

lizza'e corrnlessi iavor con l'obret-tivo dl automatrzzare prodottimportantr Pero uno dei più

appassronanti e con ptu futurocommerciale e sociale e quellorelativo ai microrobots Questenirr-oie rn.errhino diventerarno.^mn:nnó n<or:r:hil de l'uomop n.è(to oqpcr.ir:nnn COn veloCiia

ed e'{rcienza "nolri avori quotidia-r- rhp.rdpsso s'rnlni,lrno noi.

COMPUTER E PERIFERICHEPC e periferiche associate .....".. ...... ... 6

TOTALE:37

Oltre ad aiutarci con i nostri lavori domestici, nei

nostro lavoro e nei nostri viaggi, divideranno e parteci-peranno ai nostri momenti di relax e lotteranno per

diventare i "migliori amici dell'uomo".

,t:.:'

Pratotipo del srstema PALMA di atuto alla mobilità per bambtni con paralisi cerebralelstituta di Automazione lndustriale (C5lC).

Page 7: Microrobotica Monty Peruzzo Editore - 06 A - Microcontroller

Classifi ca zior€, mercatoe costruttori di microprocessori

ll microrobot della Husqvarna taglia conttnuamente l'erba del grardtno alimentandost con energia solare

ll microprocessore e un computer in un chip, pero le sue

risorse e le sue capacità sono molto limitate. Si utilizzanel controllo di aoolicazíoni concrete e di solito e inse-rrîo nel medesimn nrodOttO Che COntrOila. A SeCondadollc,annlir:zinni lp 6pr:r+aric*irh^ .h^

^^,,^ nnq(onoroucilc oPPillqzrvr il, rE Lor o LLqr ')UL'ic Lt tc ucvc

i mirrnnrnroqqnrp (nnr'r d'fforonti Orrinn nar n^\/arn:-,,,.,"|"rp . rn rohot '.drrstriale si deve nossedpre r,na memoriavvJJ!vU I ur ru

coc ufa grande capacita, perche dovra contenere tuttii programmi e i dati, i vari temporizzalori per controlla-re r terrpi, i convertitori AD per il trattamento derle

^r--À^.-^ '^.1^^;-h^ i rirrttiti <nori:li di intorf :rri: nar9tóttUÍ//t dlldlUVlLl lC, | !ilLurLr )VLLruil ur .rrLLrldLLld i_,el

i motori e comunicazione seriale ad alta velocrta per tra-

smeltere nformazioni e nrragini delle telecarnere che

ulilizza. Un microrobot della prestigiosa azienda HUSQ-

VARNA taglia continuamente l'erba del giardino. ll

microprocessore che lo governa deve disporre di circui-ti per il controllo dei suoi motori, interfacce con jser-sori che limitano la superficie dr taglio e sistemi di cari-ca delle batterie mediante energia solare.

Per pilotare un distributore automatico di iattine, il

microprocessore deve solo contare le monete che ven-gono ntrodotte, gestire r pursaf ri di selezrone, rl pan-nello di visualizzazione e i meccanismi che liberano i'prodotto selezionato. A fronte di necessità così diverse,

a seconda delle aoolicazioni i costruttori offrono un.r

*# *ffi il*rT=I-H*T

),tt,' "'

Page 8: Microrobotica Monty Peruzzo Editore - 06 A - Microcontroller

enorme varietà di microprocessori: dai più semplici edeconomici, destinati a prodotti comuni, sino a quelli più

completi capaci di controllare sistemi avanzati.

,'.'i,, t t,':t.1.!, í::',:. !.'. " i: ! i..i i,i i,: i.1 ii :,.,; ì; li. i", i. :

A seconda delle loro caratteristiche, i microprocessori si

possono classrficare in molti modi, il piu significativo e

ulilizzalo è quello riferito alla dimensione del bus deidati. ll bus dei dati è l'insieme delle linee mediante lequali vengono trasferite le informazioni all'interno delprocessore. Ne esistono di quattro tipi:

Microprocessori a 4 bit

Microprocessori a 16 bit

Quelli a 4 bit sono i più semplici e si utilizzano inpiccoli automatismi e giocattoli. Vengono fabbricati ingrandi quantità e risultano molto economici da instal-lare nei prodotti di largo consumo. Quelli a B bit, sonoi piu utilizzati per la loro grande varietà e versatilità.

Quelli a 16 brt sono impiegati in applicazioni più esi-genti e, infine, quelli a 32 bit dominano il settore dei

progettr piu avanzati, come le applicazioni nell'intelli-genza artificiale, oppure le applicazioni militari e dispo-sitivi di immagazzinamento massivo di dati.

i:r'.,,i 1,1.1'"';',':,::"'1t, i,'i,.',:\ i.j i: ;: i),:"1

Sono ipiu usati e venduti, e dentro questa gamma si

differenziano per le loro risorse e capacita. Un buonprogettista deve scegliere il microprocessore che soddr-sfi tutte le specifiche del suo progetto, incluse le preve-

dibilr espansioni future I microprocessori a B bit sonocaratterizzati dall'avere il bus dei dati da B linee, questocomporta che tutti ì trasferimenti di informazioni all'in-terno della struttura del chip saranno realizzaÍi a byte di

8 bit didimensione, e la memoria dei datiavra anch'es-

I microprocessori a B bit gestiscono dati di tale dimensione

,

F

-lì,

d

90

I Anno >

-Milioni di dollorì

&@8h,

:

[voluzione comparativa del mercato dei mrcroprocessori a B e I6 btt

iì'i"1,,-r ;, 4 v; ;; I i.i i1

':\ît':1:'r.al:,:....: ,.;.:)r:r,t:r.:....:.,nrr.1ììrrÌììììtìt:ì:ìììììì.ìrrìrrrl

Page 9: Microrobotica Monty Peruzzo Editore - 06 A - Microcontroller

sa un'architettura a B bit La dimensione delle istruzio-ni nr rn pssere differtrntp e si ad:tter: :l fnfmato del

m icroprocessore.

La struttura generale del microprocessore e compostarl r ^, , r++"^ ^-"+iuo 9uoLLr u Poru.

Memoria di programma

r OTP: la memoria viene scritta dall'utente finale tra-mite uno scrittore di memorie e un PC. 5i possono soloprogrammare una volta e non si possono cancellare.Adatte ner serie medio niccole delo il lorn h:sqo nrez-

zo.. EPROM: mediante uno scrittore e un programma

di comunicazione con il PC si memorizzano i program-mi e si possono cancellare molte volte. Dispongono di

una finestra di cristallo sulla parte suoeriore del conte-nitore per facìlìtare la cancellazione, che viene realizza-

ta sottoponendo il chip a luce ultravroletta, per il perio-

do indicato dal costruttore.. EEPROM: si scrivono e cancellano elettricamente

qén7: no.p<<it: di r:nni rrltr:vinlofti"' '"vY'. FLASH: simili alle EEPRON/. Le puo scrivere e can-

cellare l'utente finale tramite un 0roorammatore colle-gato a un PC

Fotografia di un programmatore per microprocessoricon memoria di programma OTP EPROM, EEPROM e FLASH(Micro' PIC Progymmer di Microslstem: Engineering)

Archivia le variabili di processo e i risultatr temporanei.DOrio nOrmettoro lottr 1rt a crr''t+' .^-nnr.l: nlall:yLvL VL,rrruLLLrL rL!Luld C )Ll ltLUld (:/ d )t:LUllUd UClld

tecnologia di fabbricazione, si divide in due categoriefondamentali:

o RAIV: Memoria di iettura e scrittura molto rapidae volatile.

. EEPRON/: Memoria di lettura e scrittura lenta, ma

non volatile.

; ' ';' :,' :1" . , ' l,'ll,

È la narlp dpl romnrrtpr inrarirata di intprnretare ed''|,"..'''eseguire le istruzioni del programma E formata da due

Processore

: "ispositivi ausiliari

A seconda del modello, la capacita della memoria sarà

diversa, così come il set di istruzioni che il processore

puo accettare, in sintonia alla dotazione di periferiche

di cui è dotato.

t,,1,,,'

Contiene le istruzioni del programma che governa l'ap-plicazione a cui è destinato il microprocessore. Datorhp devc osonrrirp somnre lo slesso comnilo deve esse-!v, ,,v, Lv, r

re una memoria non volatile, che non perda le infor-mazioni memorizzate quando si scollega l'alimentazio-ne. Esistono diversi tipi di memoria di programma:

. ROM mascherate: le istruzioni vengono scritteall'interno della memoria dal costruttore e non posso-

no essere cancellate. Sono consigliabili per le grandiserie.

à.|r

I ^t

t)frr^ hlnrrhì tinìri Aì tt-. -n mtcroprocessore

Page 10: Microrobotica Monty Peruzzo Editore - 06 A - Microcontroller

sezioni, l'Unità Centrale che traduce le istruzioni e la

ALU (Unita Logico Aritmetica) che le esegue.

, : ':

': l ;l': ! l::

Questa parte del microprocessore contribuisce, insiemealla capacità della memoria, a determinare la potenza ela complessità del dispositivo. Alcune delle perifericheniir imnnrt:nti <nnn'

o Porte di inoresso e di uscita.r Temporizzatori.. Comparatori e campionatori di segnale.o Convertitorr AD e DA.o Interrupt.. Whatch dog.o (i<lom: di <t:nd-hv

la fine deoli anni 90 ha consolidato un forte incre-mento nella vendita dei microprocessori a B bit, men-tre ha mantenuto ilvolume divendita di quelli a 4 bit,inoltre sono incominciati a crescere anche quelli a 16

e 32 bit. Se si suppone una media di 4 dollari per

unità, il valore dei microprocessori venduti nell'ultimo

La vendita in miltoni di dollari dei mrcroprocessori a B bit superaampiamente la somma di uttigli alLri.

anno del secolo scorso, arriva a moìte centinaia di

milioni. ll maggior consumo, circa la terza parte, si everificato nel settore dei compu'ter e relative periferi-che.

La quarta parte e stata assorbita da prodotti di largoconsumo, come elettrodomestici, giochi, TV, eccetera. ll

settore delle telecomunicazioni, l'area industriale e l'au-tomazione completano il resto.

I maggiori costruttori di circuiti integrati dispongono di

una linea di microprocessori, date le enormi aspettatrvedi mprc:lo che si nrevedono. INTEL è considerato comeil padre dei microprocessori, perche fu il pioniere nella

fabbricazione di questi componenti, con il modello8048 negli anni 70 poco dopo aver commerctalizzalo,nel1971, il primo microprocessore del mondo. In segui-to ottenne un grande successo con la produzione del

microprocessore a B bit della famiglia 8051, alla quale

seguì la 80C196 a 16 bit. Tuttavia è stata MOTOROLA

che ha occupato il primo posto della classifica mondia-le negli anni 90. ll modello a B bit 6BHC'11, costruitocon tecnologia HCMOS, e capace di interpretare il

repertorio completo di istruzioni del microprocessorem6800 piu 91 nuove. f azienda americana N/ICROCHIBproduttrice del microprocessore PlC, che utilizzeremo inquesta opera per costruire il nostro robot, ha scalato la

classifica in modo vertiginoso, passando dal 20" al 2"nosto in rn àr.o di temno rhe va dal '1 990 al 2000.

Orresta ascesa e hasata sulle sue eccellent nresta-

zioni, che sono le stesse che ci hanno ìndotti a sceqlier-lo per la nostra macchina.

1990

RÀilKtil0

lloloro|a

Mihubishi

NEC

Intel

Hitachi

Philips

tulatsushik

National

Siemens

Ti

Sharp

0ki

Toshiba

sGs

Zilog

l\4atra I\4HS

Sony

Fujitsu

AI\40

l\4icrochip

I 994

FIt|KIT{G

l\4otofola

l\4itsubishi

NEC

Ph lips

Intel

lllicrochip

JUù

lllatsushita

Hitachi

Toshiba

National

Ti

Htc0n

Fijitsu

Zilog

Siemens

Sharp

0ki

Sony

Temic

{001

MilKtilG

l\4otorola

ll4itsubishi

NÉC

Philips

Èl\4icrochipI cnc

Inlel

Hitachi

Toshiba

Fìjilsu

Hicoh

Matsushila

Ti

National

Siemens

Zilog

SonY

0ki

Sanyo

tem c

1,

2.

3.

4,

c,

6.

1.

8,

10,

11,

12,

13,

15,

t!,

17,

t0,

19,

20.

1991 1992 1993

RAIIKIIIG RATIKIIIG RAI{KIIIG

l\4otorola Motorola l,lolorola

l\lilsubishi lllilsubishi NEC

NEC lntel lllitsubishi

lntel NEC Hitachi

Hitachi Phìlips Philìps

Philips Hilachi lntel

l\rlatsushik l\4ahushila SGS

SGS SGS f Microchip

Slemens Nalional I i\4atsu$ita

Ti Ti I Toshiba

Nalional Z1 og I Nationa

Toshiba Toshiba I Zilog

Sony Siemens I Ti

Sharp Èl/licrochip J Siemens

Oki I Sharp Sharp

Zilog I Sanyo Oki

fulicrochip J ltlatra||4HS Sony

Itlatra [4HS Sony Sanyo

Fujitsu Oki Fujitsu

Sanyo Fuiitsu AI\4D

t000

RAIIKIIIG

lloloro|a

tulicrochip

\npt tsrnlsrp s<ep<s doll'e-iendaMICROCHIe produttrice del mrcroprocessore PIC

Page 11: Microrobotica Monty Peruzzo Editore - 06 A - Microcontroller

Perché PIC?it

€'É

Presso i lvenditori

che dlstribuiscono MICROCHIP in tutto il mondo,

"';.,i ll'interno dell'ampio panorama di modelli e

.F:1" fabbricanti di microprocessori, qual è la

,;l' ',t?i regrone che cr ha indotto a scegliere il ptC

tenere conto che per ogni applicazione con-creta esiste un microprocessore ottimale, pero a secon-da def le circostanze o delle prospettive per il futuro, il

modello o il fabbricante possono cambiare. euestosignifica che non esiste un microprocessore migliore intermini assoluti, dato che ogni caso risulta differente.

MICROCHIP ha scalato la classifica mondiale di ven- t

dita dei microprocessori a B bit, infatti dai 20. posto del ,

1990, è arrivata al 2" posto ai giorni nostri. euesta fan- ì

tastica accoglienza da parte di industrie, professionisti e

appassionati,edovutaalfattocheiPlChannounadote molto particolare: questi microprocessori sono :

dotati di un complesso di caratteristiche medie che li :

avvantaggia notevolmente rispetto ai loro concorrenti.inoltre l'immagine dell'impresa e aumentata di presti- i

tyoviamo una straordinarla offera di prodotti relatwi ai plC

gio, e molte università e centri di formazione specializ-

' zaIt, hanno scelto questo fabbricante per dare suppor-: to allo sviluppo dei loro programmi formativi. Nellatabella che segue elenchiamo gli aspetti piu rilevanti del

, PIC::

Semplicità di utilizo

Preao molto conveniente

Strumenti di sviluppo economici e facili da utilizzare

Enorme varietà di modelli di microprocessori

$"* S+el"+eÉs*$Èe+'uu tr$€lìn* eii* sEè+*+.+e{*$+e

Page 12: Microrobotica Monty Peruzzo Editore - 06 A - Microcontroller

r.t- l

' ,tí.ti

..;

I

Un dato significativo è costituito dal

fatto che il fabbricante N/ICROCHIP, si è

preoccupato più di vendere e far merca-

to con i suoi microprocessori, che con gli

strumenti ausiliari di cui questo compo-npntp nereqqita In ortesto modo molti,rrrJJ,Lv. "' Ye

strumenti software si lrovano liberamen-

te disponibili attraverso i loro distributo-

ri nel mondo, o possono essere trovatinei siti Internet. Le risorse hardware che

sono utilizzate nella sua applicazione

hanno fatto sì che molti fabbricanti s'in-

teressassero alla loro costruzione, quindi

attualmente si hanno modelli di tutti i

tipi e prezzi.

Sui mercatr esiste un'importantissima

e varia offerta di prodotti relativi ai PlC.

fenorme varietà di modelli d PlC, più di

un centinaio, permettono di scegliere il

mrgliore a seconda delle applicazioni. ll

costo dei microprocessori PIC dipende

molto dalla quantità acquistata, pero

comparativamente è inferiore ai suoi

Comparazione della velocità di esecuztone di un insteme

di programmi di prova del PlCl 6C5X a 20 MHz, rispetto ai principali concorrenti

o,6

o,9

o,8

o,7

0,5

o,4

o,3

o,2

o,r

STó2@8MHz

THOMSOM

80c5 l@rMHz

INTEL

X8óCXX@l2MHz

ZITOG

Mcó8HC05@4,2MNz

MOIOROLA

coP800@20MHz

NATIONAL

Ptct óc5x@20MHz

MICROCHIP

."_#

I!

I

III

I

I

I

I

G :ffi elS ffi

-#-!

Ia

a-JI*ill

ia

competitori. Sono facili da utrlizzare, perché nella gamma

media - che è la più popolare - la gamma di istruzioni è

di 35 che è quella più semplice ed efficiente. ll basso con-

sumo e l'ampio range di voltaggio che permette la sua

i alimentazione è molto apprezzato. Come si puo vedere

j dai grafici sia la dimensione dei codici che genera il suollI programma, come la velocità di esecuzione lo avvantag-

I giano notevolmente rispetto ai suoi concorrenti.

!lÍ ,rE , , i12,5

2

'1,5

I

o,5

oPtcl óc5x@20MHz

MICROCHIP

coP800@20MHz

NATIONAL

MCó8HC05@4,2MHz

MOTOROTA

78óCXX@12MHz

ZITOG

80c5r@l I MHz

INTEL

STó2@8MHz

THOMSONi!

1ì-.,",.,.-=,".-.'+"". +,*'*r+,*'

l' t

"."-.,,:..",i

La dimensione del codtce per l'insieme dei programmi di provaper il PlCl6C5X è molto pitt piccola di quella dei suoi prrncipali concorrentl

s#frge*++fr1..1$p.g'

Page 13: Microrobotica Monty Peruzzo Editore - 06 A - Microcontroller

* MICROCONTROTTERlei famiglio "PIC'' di Microchip

L

Disposítivo per la programmaztone del microprocessore plC,

preparato per lavorare con chip da 1B a 28 prn. Permette la connessiane a un PC attraverso la porta paratrcta

Come succede di solito con 1e grandi imprese amerrca-ne, tJtto in,zia da qua cosa o, motto oicco o, che g"azieallo sforzo, alla qualtta tecnica e alla vrsione commer-ciale, assume rapidamente dimenstoni enorm

ll primo successo di questa giovane impresa, la cuì

sede centraie e a Chandler tn Arizona, risale al 1989,quando mrse In vendita un PlCl6C5X a 8 bit In versto-ne OTP, ad rn costo molto basso. Due anni dopo, svi-

iuppo il s stema di emulazione integra e per i suoi PIC

PICN/4ASTER sotto Windows Nel '1992 rntrodusse sul

mercato r1 plmo mrcroconÌroller con converttore ADrntegrato st trattava dei modello PlC16C71. Attorno a

1994 commercialjzzo ì primi prodottr con memolaFLASH e rl PIC 16C84 con fnemor a di programma

EEPROIVl, che fu presto sostituita con la memolaFLASH, tecnrcamente piu eff iciente. Nel 1996 presento

modelli PlC12C508/9, in contenitore con solo B pin,

che ebbero un successo senza precedenti. Alla fìnedegli anni '90 presentò la gamma alta, migliorata conuna poderosa architettura che risiede nella famigliaPICl BCXXX, riducendo i prezzi dei microprocessori, finoad arrrvare a 0,50 $ per unita. Nel 1999 aveva vendutoun miliardo d mtcroprocessorì a B bit rn tutto rl mondo.

I model i di PIC superano abbondaniemente tl centi-naro, e sr possono raggtuppare rn cinque categorie, chesr presentano secondo le loro principali caratteristiche,nella seguente tabe la.

Plcl6csx FAsclA BASE 2oo ns t zo NtHz 33 istr. da t2 bit

PIC16CXXX FASCIA MEDIA 2OO ns | 2O MHz 35 istr. da f 4 bit

PlclTcxxx FAsctA ALTA 120 ns / 33 MHz 58 istr. da 16 bit

( etcrecxxx * FAsctA MTGLToRATA 10 Mrps | 4o rrlrHz 77 istr. da i6 bit -)

Page 14: Microrobotica Monty Peruzzo Editore - 06 A - Microcontroller

PIC12C5O8 512 x 12 25 x 8 NESSUNO 6 4 MHz I

Alcuni modelli di PIC sono molto semplici ed econo-

mìci, dispongono delle risorse minime per controllare le

periferiche principali, come nel caso del PlC12C50B.

Altri sono così potenti, come il PIClBCB5B, che i suoi

parametri e le sue prestazioni assomigltano a ststemì di

applicazrone molto avanzati. Nella tabella riportatasopra, sono messi in comparazione questr due tipi di

PIC.

' 'l I '';',' , : t' .'l'.' .'

Comprende tutti i modelli rnquadrati all'interno della

denominazione PlC16C5X, iquali sono dotati di un set

di 33 istruzioni da 12 bit di lunghezza ognuna. Sono

talmente semplici che non sono dotati di interrupt, ed

hanno solamente due Iivelli di stack. Hanno una dimen-sione molto ridotta, infatti sono commercializzati in

contenitori da 18 a 28 pin, sono ideali per applicazioni

semplici, di grande consumo, e che funzionano a bat-

teria.'

I it ' t, :l

Sotto questa denominazione si raggruppano i proces-

sorì che si identificano con la nomenclatura PICl6CXXX

e formano la gamma piu ampia e diversificata, con ben

'-.:,

72 modelli differenti. Si trovano in commercio con con-

tenitori da'18 a 68 pin e sono dotati di un set di 35

istruzioni da 14 bit ognuna. ll loro stack arriva ad 8 livel-

li orrpsto nprmpttp sino a B annidamenti di subroutinecome massimo. ln questa fascia e compresa la famigliadei P|C14C000, specializzati per i progetti dei carica-

batterie intelligenti, gruppi di continuità, acquisizione

ed elaborazione der segnali, che richredono ìa gestione

dell'energia di alimentazione.

' , , ,. l, ,. .

In questa gamma sono compresi undici dispositivi della

serie PICl2CXXX, tutti quelli con contenitore da B pin,

che hanno avuto un successo commerciale senza pre-

cedenti, data la loro dimensione e il loro prezzo. Alcunieli nrro<ti mnIellr rnrric^^^.1^^^ îllî {ac.;î hrca :l+ri :ur vuE)Lr r rvucilr !urrJPUllut-rl lu dlld ld)Lld ud)cr olLl I o

quella media.

Hanno un'architettura aperta, che permette l'amplia-

mento esterno delle periferiche del microprocessore,

tramite il bus dei dati, quello degli indirizzi e dei con-

trolli. ll set di istruzioni arriva stno a 58 e la loro dimen-

sione e di 16 bit. Dispone di un sistema molto potente

di gestione vettorializzata degli inter-rupt, e vengono utiìizzati in applica-

zioni di grande complessità.

l l ' ,',':, ';1 ' .,',r lt,'lll I'1.;

MICROCHIP ha prodotto nell'anno2000 la serie PIClBCXXX, caratte-rizzala da uno straordinario rendi-mento, dell'ordine dei '10 MIPS ad

una frequenza di 40 MHz. Sonodotat; di ln notentissimo set di 77

istruzionì da '1 6 bìt ognuna, e ven-nnnn rommereializzali in conteni-tori da 28 f ino a B0 pin Sono destì-

nati a lavorare con compilatorimolto efficienti in linguaggio C, e la

loro memoria arriva a capacita di

16 KWord da 16 bìt.

Page 15: Microrobotica Monty Peruzzo Editore - 06 A - Microcontroller

Selezione e presenta zionedel "PICI6F8 4"

na volta deciso di utiiizzare un mrcroproces-sore PIC di N/ICROCHIP, il passo seguente e

scegliere il modello adeguato pe' il nostroprogetto, all'interno de '116 possibili Per

poter fare questa scelta, dovremo st;diaremolto attentamente le caratteristiche dell'applicazioneche il chin dovra oestire. Nel lavoro che abbiamo intra-preso vogliamo costruire un robot mobile che sra capa--^ ^t ^.^^,,t"^ Ài,,^"-, -LL ur lrLVurs urvq: uOl'lìpt{L

Un robot come il famoso R2D2 di "Guerre stellari" necessitarli ttn mirrnnrnlp\\nrp rhe np<li<es i<ttni moforr p qi2 rt^ trn -tì, , rru LolJoLq ur

ricevere ed elaborare le informazioni inviateqli dai sensort.

, 1,,, , :. r,.,':, ..,;ir1.r, tl,l,.:i;:r; 11'

Per governare un robot mobile, il microprocessoredovr: renol:rp drre motori che muoverannO le fuotemotrici, e dovrà ricevere ed elaborare le informazronrche gli rnvieranno alcuni tipi di sensori, come quelli diprossimita, di contatto, di temperatura, a ultrasuonieccetera. ll corretto trattamento delle informazioni for-nite dai sensori, determinerà il movimento delle ruote.

'1,,,.,' , I r l.

I compiti che desideriamo rnstallare nel nostro anima-letto intelligente, saranno molto diversi, anche se non'nolto complicati. Per questo motivo, ron serve che la

memoria del programma e dei dati del PIC sia moltogrande. Quello che risulta indispensabile e che la

memoria del programma possa essere scritta e cancel-l:i: n' rìn+ó \i^r+^ . . noroc<:rin narrho il nrrdLd qudrìLe v(JrLe s'd r--,---,,-, r,-,-,,- ., f.,'Ogfammad'oendera dal lavoro che dovra eseguire rl .obot D'altran:rtp il mirronroro<.qoro <rpltn sorvir,r npr far, _, ct tmpara-

'e la programnazione prima di costruire I robot; que-

sto signifrca che lo programrneremo e lo proveremo

eseguendo molti esercizi didattici e pratici

Una volta stabìlite le caratteristiche oiù imoortanti che

deve avere il modello del PIC che qovernerà il nostro

Dimensioni e costi ridotti

Memoria di programma con capacità di circa1000 istruzioni

Memoria dei dati di almeno due dozzinedi indirizzi, e non volatile

-.1,".,, il:,.,,1,::,:,: i:',,::;l

Page 16: Microrobotica Monty Peruzzo Editore - 06 A - Microcontroller

ii

' .-"" -''-'..'.' .' .',.,".'..fr ,ò7;ll' MICROCONTROLLER

Sceltei del PIC

tt-t*!{g

a5.!ja:-'91

S'"

s:îS:u

*

4

i;-

r$:

robot, le potremo riassumere nella tabella" Caratteristiche che deve avere il PlC ".

Conoscendo le esigenze che deve avere il micropro-cessore, potremo trovare nel catalogo del fabbricanteun modello della gamma media del PIC che soddisfi le

nostre esigenze.

ll modello che meglio si adatta alle nostre richieste,

è il PlC16FB4, capace di lavorare fino a 10 MHz, pero

dispone dr una versione PIC'l6FB4A, capace di funzio-nare fino a 20 MAz Sceglieremo il modello normale,perche tendramo a minimizzare il costo, e la velocità di

elaborazione non e critica.

E piccolo perche ilsuo contenitore ha solo 18 piedini. La

memor a di programma ha la capacità di 1 K word da 14hits e nonrrna di orreste nrro ronlenere rrn'istrUzione.

Inoltre, è di tipo flash, il che permette di registrarlae cancellarla irn mioiiaio di volte in tutta sicurezza. lamemoria dei dati contiene una zona RAN/ volat le da 68bytes, e un'altra EEPROM non volatile, da 64 bytes,adeottata alle nostrp esinonzp Disnone r^li 1? l,nee di l/Odioitali un temnorizTÀIorp |rn watch-doo nrto funzio--'y'.-'', , ""Y, Y'

nare in modo "riposo" con basso consumo. La velocita

Memoria di programma: I K x 14, tipo flash

Memoria dei dati RAM: 68 Bytes

Memoria dei dati Eprom: 64 Bytes

L!""Ilt'g!3Set tJi istruzioni: 35 da14 Bits

Tempo di esecuzione delle istruzioni normali: 4 X Tosc

Tempo di esecuzione delle istruzioni di salto: 8 X Tosc

Cause che provocano Interrupt: 4

Frequenza massima di lavoro: f 0 Mhz

Linee di l/O digitali: '13

Temporizzatori: uno per l'utilizzatore, uno per ilwatch-dog.

Tensione di alimentazione: da 2 a 6 VDC

Tensione di programmazione: da f 2 a 14 VDC

Contenitore: DIP a 18 PIN (oppure SOIC)

Page 17: Microrobotica Monty Peruzzo Editore - 06 A - Microcontroller

MICROCON

lmmagine del PlCl6FB4sopra uno zoccolo per proteggere i suoi piedini.

massima di funzionamento è di 10 Mhz, che risultasovrabbondante, dato che le istruzioni si eseguono a

400 ns, tempo inferiore a quello di cui noi abbiamobisogno nella nostra applicazione. Pensate che il pro-gramma più lungo è di 1 .024 istruzioni e a questa fre-quenza ci sara un ritardo nell'esecuzione di 0,5 ms, che

vengono accettati come tempo massimo di risposta del

robot.

4ltttl\|lllti/|M

Assieme al PIC'l 6F84 esistono altri modelli con

caratteristiche molto simili. Così il PlCl6C84 è uguale,però con memoria di codice di tipo EEPRON/. ll

PIC16F83 ha come memoria di programma FLASH solo512 oarole. Ci sono modelli le cui lettere intermediesono CR, il che significa che la memoria dr programma

è RON/; questi sono interessanti solo quando il pro-gramma e sempre lo stesso, è gia stabilizzato, e vienemontato in serie di molte mioliaia di aezzi.

ll PIC 1 6F84, che utilizzeremo nel nostro lavoro di

apprendimento dei microprocessori e applicazìoni alla

robotica, è fabbricato con tecnologia CMOS e si trovaincapsulato in un contenitore plastico con 1B piedini,

come si può osservare nella figura. Secondo le loro fun-zioni, i piedini si classificano in 4 grandi gruppi.

. AlimentazionePerché tutti r componenti elettronici del microprocesso-re possano f unzionare, è necessaria una tensione di ali-mentazione a corrente continua, che deve essere appli-cata nel seguente modo: il positivo al piedino VDD e la

terra a VSS. ll voltaggio di alimentazione è compreso tra2e6VDC.

èi;c[rPtcr6c84 Prcr6F84

to lolk

TMRO+WDT TMRO+WDT

2.0'6.0 2.0-6.0

18 pin l8 pinDrB SO|C DrB SO|C

Ptc!6cR84 PlCr6F84 PrCr6CR84

68

64

4

t3

tk

36

64

4

t3RAilGE DI tl

Varianti del PlCl6FB4

Page 18: Microrobotica Monty Peruzzo Editore - 06 A - Microcontroller

RA4/TOCKI *MCLR *Vss '-*

RBO/INT €RBI *

RB2 {-*

RB3 *

PD|P, SOIC

€ R/qI

* R/AO

* oscl /cLKlN** osc2lctKouT

** VOO

* RB7

4-È RBó

"* RBs

* RB4

L'altro compito del piedino 4p nttolln rho ci rifaric.o -lr yuLr rilLrrrLC dl

VPP cioe nermette la scrittu-ra e la cancellazione della

memoria FLASH e EEPROM

del PIC 1 6F84 Per ouestoY

lavoro si deve fornire al pie-

dino 4 una tensione a cor-rente continrra comnresa tra12 e 14Y.

. Linee di l/O digitalìI tredici piedini rimanenti, di

cui non abbiamo ancora^-.1-+^ -i ,,+il;---^^lJdllcì LU, 5l ULllll./dll(-) pef

introdurre e ottenere infor-*--;^^: !i^i+-l !- ^ ,:fSO

tltt taLtwt I ut9tLoti, uo u vr

nrocessore Orresti niediniH

sono dislrihrriti sl 2 oorte.la

^^.ta A rnnc+r,-J tr l,^^^LO VWr LO H lV|)tO U J lttCE

che corrispondono ai piedini

denominati RAO-RA4 La

nnrt: R o r1icnnct: qr rR linaoJU U llllrc

di l/O rhp corrisnnndono ai

pìedini RBO-RB7. Ci sono un

Contenitore del PlCl 6F84, cosi come di tutte le sue vanantt.

. Frequenza di lavoroLa velocità di funzionamento del PlC16FB4, e determi-n:+: r{:ll: {ran"on-:.ho ci nonor: intornan-^^+^ -1.^llOLq UOI|O llEVUE|l4O 1,,! rru'rlclltc/ LllE

deve essere stabilizzata dall'esterno mediante un cri--+-il^ ..Ji -^ilîoato ai nredini oSC 1/cLKlN e)LCllU ul 9uol4w LUlltrVuLv ur p'Luil il vJL

OSC2/CLKOUT.

. Reset e programmazionell piedino 4 denominato N/CLR#/VPP, supporta due fun-zioni rhe si mrrltinlpxano nel tpmnn ll PIC lavora nor-m:lni:ntp oqonrrondn il nrnnr:mm: rho h: roni<tr:tn

nella memoria FLASH, quando si attiva a un livello basso

sul piedino 4, si reinizializza o resetta il microprocesso-re n{testo sicrnifica che i cr rni rpni<,tri intprni aSSUmono

un valore determinato e che il contatore di programmapunta la direzione 0, da dove incominciare il program-

:^i-r-ri-'-'r^ ^ 4CLR: lVaster Clear Reset.I lld pul I rLtorLLót tu. tv

NOîA !À'IPOn!AHTE

n.ein di nipdini r.hp nl+.^ -.^-r,---"^r^ + ^-ioni di l/Ovqlu ul PlEuil il l|E/ vrLrE a uo|LLQt E rE turrl

digitali, hanno un alrro compito multiplexato, corne si.^i^^L^"À ^;,, -,,-^+i)prcgr rcrd pru dvdr 1Lr.

ll PlCl6FB4 è un circuito integrato con doppia fila di

piedini. Ha 9 piedini metallici su ogni lato del conteni-tore che sono abbastanza flessibili.

Questo circuito integrato, a volte, deve essere scrit-+a rnl nraarr*-. -h^ .,,^^^r+î il 1.,,^"^ ^^.ro cor p"ogramma cne supporLd il dvoro, per por essere

inserito nella scheda di applicazione ed e abbastanzafrporrentp dnverlo inserire sullo zoccolo dello scrittoreper poi toglierlo e reinserirlo nuovamente su quellodcll: crhcd,a di :nnlirazione Orrpsta onerazione eY vrJ Lu vvL

molto delicata perche se si forzano e si piegano i piedi-ni rinetute volte notrebbero staccarsi rendendo irrecu-perabile il circuito integrato. Raccomandiamo di collo-care il PIC'16F84 sopra uno zoccolo normale, perche

srano i piedini di quest'ultimo a subire la pressione, omenlio sosîiîrrire lo zoccolo dello scrittore o della sche-"'_v"'r- 'Ji ^^^ri---i^^^ -^î uno zoccolo a f orza di inserzio-uo ur oPPilLo4rurc, LUI

ne nrrll: n|esto nnssip;^ ,,^- l^,,- -^^ ^^"^ ' fOf i dOVeI rc I uilo, 9uc)LU PU))rEuE ur rc rcvo lr rE oPtE I

si introducono i piedini, cio aiuta enormemente a pre-servare l'insieme dei oiedini.

ll simbolo # che si antepone a certi segnali indica che imedesimi sono attivi a livello basso. Questo simbolo èidentico alla riga che si trova sopra al nome del segnale.

r,;i,,;; r'rli 2,i:it'l:.ti :l:.: !l:i:,

Page 19: Microrobotica Monty Peruzzo Editore - 06 A - Microcontroller

La frequenza di funzionamentodel, microprocessore.--r.i l cervello del nostro robot sarà un mtcroproces-

, :r.:

;" sore. ll modello scelto è il P|C16F84, che è unt:::--

,':_ piccolo computer la cui missrone è eseguire leistruzioni che noi scriveremo nella sua memoria

i.i ,' .''. '' di programma. Attraverso queste, decodificherài dati che gli invieranno i sensori per riconoscere le

caratteristiche dell'ambiente, stabilendo con esse lastrategia di movimento dei suoi motori per realizzare

efficientemente i comprti che gli abbiamo attribuito.ll PIC sa solo eseguire istruzioni. Ne conosce 35, non

una di più. Nel suo costante lavoro di esecuzione, con-verte le istruzioni in operazioni elementari. Ognuna diqueste cperazioni elementari necessita per essere ese-guita sempre dello stesso tempo, che è stabilito da un

clock molto preciso che indica I'inizio e la fine di ognu-na.

ll nostro robot ha incorporato un PlC16FB4 che puÒ'funzionare ad una freouenza di clock massima di 10

Mhz. Esiste una versione speciale chiamata PlC16F84A,

che ammette una frequenza massima di 20 Mhz. Se

lavora a 10 Mhz ogni ciclo di clock durerà 100 ns e inquesto tempo si realizzerà un'operazione elementare di

una istruzione. Pertanto, un'istruzione verrà eseguita invari cicli di clock.

Tanto maggiore è la frequenza di lavoro del PIC

tanto più rapidamente si eseguono le istruzioni e prima

Un'istruzione è composta da due fasi: ricerca ed esecuzione.Ogni fase occupa quattro cicli di clock, e se il PIC avesse un processore normale il ciclo dell'istruzione occuperebbe otto cicli di clock

si realizzano i programmi, pero ci sarà maggiore consu-mo di energia, cosa molto importante nei sistemi ali-mentati da batterie.

; i ,;:,, ' l',.i,;,,:t,r;,

ll ciclo di istruzioni è il tempo impiegato ad eseguireun'istruzione. Non deve essere confuso con il ciclo di

clock, che è il tempo con cui si realizza un'operazioneelementare.

Un'istruzione si esegue in due fasi:o Fase di ricerca: nella quale si cerca il codice bina-

rio dell'istruzione nella memoria del programma.. Fase di esecuzione: nella quale si interpreta il

codice, si cercano gli operandi e si eseguono le opera-zioni conseguenti.

Ognuna delle due fasi di istruzione si realizza in

quattro ciclidiclock, che sichiamano Q1, Q2, Q3 e Qa.

Quindi se ogni istruzione fosse eseguita in sequenza si

tarderebbero quattro cicli di clock nella fase di ricerca e

altri quattro in quella di esecuzione, in totale otto cicli,

come si vede nella frgura.I microprocessori PIC dispongono di un processo-

re molto moderno, nel quale si utilizza la tecnicadella segmentazione per eseguire le istruzioni.Questa tecnica si usa anche nelìa fabbricazione dellemacchine, e nelle catene robotizzate delle grandi

FASE DI RICERCA FASE DI ESECUZIONE

t.:"

Page 20: Microrobotica Monty Peruzzo Editore - 06 A - Microcontroller

Velocitù dl, e inizicrlizzeizione*3I : r- " @i

,,:1::::1|11l::l::::tt;::l',$i.t'tll)::

DELU ISTHUZIONE

ll processore del PIC è diviso ln due parti indipendenti.Mentre una realizza la fase di ricerca di un'istruzione, l'altra si rncarica della fase dt esecuzione di quella precedente

fabbriche In pratica, invece di iniziare un'automobi-le, e fermare la produzione fino a che non sia stata

terminata la prima, si divide il lavoro in stadi succes-

siv, in modo che iveicoli passrno da uno stadio all'al-trn ( nn n{toqt: tprnir- Àol l-',^.n n:r:llaln,y-*-.- -,-, ra oel lavoro pdldllel(J, Sl rleSce

a dividere il tempo impiegato in tante parti quanti-^^^ ^li -+--li ,,+ili---+sono gll slaor uuillrdLl.

ll nrorcssore del PIC e

costruito con stadi diffe-renziati, o stadi chegenerano una segmen-

tazione di secondo ordi-

ne Uno stadio realizza la

fase di rìcerca e l'altro la

fase di esecuzione Gli

stadi sono indipendentifra di loro, quindi posso-

no lavorare in parallelo;

mentre il prtmo sta

effettuando la fase d

ricerca di un'istruzione, il secondo si oedica a realizzare

ra fase di esecuzione dell'istruzione che e stata prece-

dentemente trovata. Con la segmentazione si ottienel'acorr rzinno di nnni i<trr rzinnp npl temnn Ii "^a +r.òI c)ELu4tvttE ur w9rrr r)rru4,vrrL rrur rur Ulld lo)C,

<:rphhe : dirc nrr:ttrn cicli di clock.e v,,L YvuLL,v

Al sovrappors' dei due stadi d'istruzione, il tempo che

imnipne rrn rrrln di istrr rzionr e di orratiro cicli di clock.

FASE DI RICERCA5AISTRUZIONE

FASE DI RICERCAf tslRUztoNE

FASE DI RICEBCA2" ISTRUZIONE

FASE DI RICERCA3" ISTRUZIONE

Dato che la fase di ricerca e quella di esecuzionesi realizza in parallelo, il ciclo di istruzione dura quattro cicli di clock

Un P!C16F84, che funziona ad una velocitàdi 10 Mha esegue un programma di 100 istruzioni,delle quali 30 sono di salto. Calcolareil tempo che impiega ad eseguire il programma,

Calcolare il tempo di ritardonell'esecuzione del programma anteriorein un P!C16F84che funziona ad una frequenza di 4 Mhz.

TEMPO Dl CLOCK = I s/ f0 Mhz = 100 ns TEMPO Dl CTOCK = 1s I 4 Mhz = 250 ns

TEMPO Dl CICLO ISTRUZIONE SALTO =8 x T. CLOCK = 800 ns

x 8ffÌ=S

,.;i :;, -:,; ;riy ,i;l;:ji,yt ,;. !; ,;1

,itùr j!tlrr,r!N:]*!i,::]i#lHì.ìlrr:rìrr}rrrrrl

TEMPO Dl CICLO ISTRUZIONE Dl SALTO =8 x T. CLOCK = 2.000 ns = 2 ys

:5l

FASE DI ESECUZIO}IE,f ISIBUZIONE

;,:. :1,1,:-:': :+:,:i'; :,i";úft ,.,jij@rr#tlsÍ{!{l1 jìrììlìxìì11ììtlrrrltlillrnr\irmr&14?mrlifr lfr stllffi f lÍ{f 11fi 11

Page 21: Microrobotica Monty Peruzzo Editore - 06 A - Microcontroller

í,t'

Questo è valido per tutte le istruzioni del

ronortorin p.rctto rhp ner nrre lle di

<:lln rho <nnn nirrlonto o imnìpo,eno il

doppio del tempo, cioè otto cìcli di clock.l,a r:niono di nrrpsto ritardo si deve al{r++n rha ^, '.ndn :rrirrr :l nrnao<<^roIdLLU Ll lc vuoriuv qrrrvo or PrvLsJJvls

un'istruzione di salto non si puo comin-.i-r^ la {-.^.li r''rarra rjoll> (afl1AntoLldlc ld l6)c ul I lLqlLú uLilu JLVULTTLL,

nerrhe non si sa orrale sia. Le istruzioni

normali sono ordinate in indirtzzi succes-

sivi nero nel caso di un'istruzione di

salto, fino a quando non si completa la

fase di esecuzìone non si puo sapere

quale sara I'indtrizzo seguente.

I microprocessori PIC dispongono di

un oscillatore interno che determinala f requenza degli impulsi di clock Cristaili ar quarzo di uso correnteSonz: drrhhio nor rontrollare il valo-re della frequenza e stabilizzarla, e

St r*tlt.sNeE{ÍS c:o

necessario aggiungere alcuni elementi esterni ai pie-

dini 15 e 16 (OSCl/CLKIN e OSC2/CLKOUT).Secondo il tipo di cìrcuito esterno, gli oscillatori si

dividono in quattro tipi

Fosc Rexr

625 kHz 10 ko80 kHz 10 kfi80Hz 10 kO

Cexr

20pF220pF

o,1pF

I valori della resistenza R esterna e del condensatare C esterno

determinano la frequenza nell'oscillatore RC Questl dati sono forniti dal fabbrrcante

Uno dei dat, di inizializzazione necessa-

ri al microprocessore riguarda il tipo di

oscrllatore che si utilizza. Der questo esi-

stono due bits FOSCl e FOSC2 in una

posizione della memoria di programma,

chiamata Parola di Configurazione, che

dobbiamo scrivere con la combinazionecorrispondente.

':,,,:l

ln nrro<tn r:<n <i rnllon:nn :l nior^linn 16,L' VULJ(v

del PIC 1 6FB4 (OSC 1/CLKIN) una resistenza

e un condensatore, i cui valori sono forni-ti dal costrutlore nella scheda tecnica, e

cne sono funzione del valore della rre-

flron7: C)rresto nroredimento e molto

economico, pero la stabirita della f'equen-

za è mediocre e sono adattr solo in sistemi

in cui il tempo non sia un fattore critico, e

il risparmio sia un obieltivo prioritario. Dal

p edino 15 (OSC2/CLKOUT) esce la quarta

parte della f requenza di clock (Fosc/4) che

e iì tempo di ciclo di istruzione normale

. Oscillatore RC

. Oscillatore LP

. Oscillatore XT

. Oscillatore HS

I

+Voo

ffi OSC2/CLKOUTw->fl Fosc/4

';: 't:;:;;tj tt,

Page 22: Microrobotica Monty Peruzzo Editore - 06 A - Microcontroller

OSCl/CLKIN

Questo tipo di oscillatore si usa perlrrinrrro ran fraartar rze supefloI a

4Mhz.Ulilizza un cristallo di quarzo e un

risonatore ceramico tra i piedini '15 e

1 6 collegato ai condensatori di disac-coppiamento. Non tutti i modelli di

PIC ammettono questo tipo di oscil-lr+arn Flr+r l-.,,- .l+- +.^^,,^^-- :llo LU E. UAtA tA )Ud drLd il trquct tzdr tl

consumo è molto elevato.

.-:;trLi'.i,1,

iiit+.*,.,,"=,*=,".,."",.*,.,.,",=,-, =_,.._,.,_,,,.,.,_,j

Per le f requenze comprese tra 4 e 1 0 Mhz i condensatori CI e C2 hanno una capacità

i-tfiq-"ii"L+ {-}+:iF: i"::r' i di alimentazione al chip, e si chiama "Power onTra i piedini 15 e 16 del microprocessore si monta un Reset" Le due azioni principali del processo di rernr-

cristallo di quarzo della frequenza corrispondente a zializzazione o reset, sono mettere a zero il Programquella'con cui si vuole lavorare. È possibrle instaliare al Counter con il quale si inizia l'esecuzione dell'istru-posto del cristallo di quarzo un risonatore ceramico A zione situata nella prima posizione della memoria di

ognuno di questi piedini si collega un condensatore dr , programma, e porre ad uno stato conosciuto tutti i

disaccoppiamento ilcuivalore è fornito dalfabbricante. ' bits dei orincioali reqistri di controllo del PlC.A,,^r+n +;^^ ^li ^.-ill-+^"^ ^ --l -++^ ^^"vuE)Lw LIPU Ur V)LilrOLUrE E CUCttu pcl

lavorare con basse frequenze, compresetra 35 e 250 Khz. ll principale vantaggiodato dalla bassa f requenza e il consumorli onerni: ridnttn ràc ^^-^--t'^ ^l nr-u, LrrLryru rruvLLv Lr rC IICLtj>)ILd dl TIL

per funzionare, dalo molto importantenei sistemi che si alimentano a batterie.

#SflEil€-.éè€q}-qtr SsiT

Orroctn o ìl tinn di n<rill:+nra .^^ "c^r^VuLrLv L ,r Lrl.,v ur vrlllloLUlC Ll lC U)ClC-

mo ner ron'trollarp rl PIC del nostro,,," Y-,

robot, perche e predisposto per lavoraretra 100 Khz e 4 Mhz, la frequenza di

lavoro selezionata per il nostro N/onty.

lVonteremo un cristallo di quarzo o un

risonatore ceramico tra i piedini 1 5 e 16,

rnllenato ,ai risnettivi condensatofi di

disaccoppiamento, i cui valori sono indi-cati nella documentazione tecnica e

dipendono dalla frequenza selezionata.

i;t i:5li:ìF; it +l ia'j

l_r ili;,irî I f 'ì

;ri L "i =il il È,-.1" i. i-i i:i {;

Quando il pin 4 (MCLR#) passa a un

livello basso, il PlC16tB4 si resetta e

ricomincia a eseguire il programmadall'inizio nonendo à uno Stato nototutti isuoi registri interni, Questoprocesso avviene anche quando si

collega per la prima volta la tensione

Quando si attiva il pulsante di RESEI si resetta il microprocessore,cosi come quando si applica la tensrone di alimentazione per la prima volta

€*€**$*'efu #* $ww*s* * $s&€H$*E$eemeÈ**e*

Page 23: Microrobotica Monty Peruzzo Editore - 06 A - Microcontroller

t,

"ti.!;

-r,- t, 't'

-,:,,

MEMORIAPRINCIPALE

BUS DEGLItNDtRtzzl

BUS DEI DATIE DELLE

ISTRUZIONI

BUS DICONTROLLO

fintuizionedi un sognatore

el 1945 Von Neumann stabilì le

basi per la costruzione dei com-puter che oggi hanno invaso il

mondo. Disegno una macchina in

cui vi era un blocco - unità di con-rrnlln Ài ininp5laf;ra rrn inciomo .liLrvllv - LovoLE ul ll rLEi Pr sLors uÌ | il rJrEr I rE ul

ictrr rzinni nonor:\/: i qonn:li nore<q:ri nor l:"' v!' '!'

realizzazìone delle operazioni che coinvolge-vano le varie sezioni del blocco di elaborazio-ne dei dati.

I ln nr:ndo arrhtt,tn coniirir nór .^ntanóra

lp istrrrzioni del nrnnramma insieme ai datiche esso oestiva. infine un ultimo blocco.J.'""-'

-hi---+^,,^i+- ^lì l^^"^..^/,,.-i+- ^^"'-^++^Lr ildilrdt\J urrLd ur il19rc))u/u)LtLd, pc||ctLc-

va il trasferimento delle informazioni da e

nor lo noriforirho a<tprno Orroct'inciomo diYsLJ\ rl

olomonti ò r^rrrpllo rhe e conosciuto comecomputer.

MEMORIAPRINCIPALE

BUS

PROCESSORE

ffiffiffiI bus sono un Ìnsieme di linee digÌtali, trasportanotulte le informazioni che gestisce il computer.

t,,,',t,:;,'t; 1 ,, ,1, I ,:,.1',,

ll computer di Von Neumann è una macchi-na digitale. Tutte le informazioni vengonoarchiviate in formato binario, ed essendo

una macchina elettronica, impiega per rap-presentare i due bit di questo sistema, il

livello logico alto e il livello logico basso,

che generalmente corrispondono alla ten-sione di alimentazione +VDD e massa o VSS

rispettiva mente.

Un'istruzione del computer è formatadall'insieme di bit che la codificano, e la

stessa cosa awiene per i dati. La memoria è.^mn^<+: d:nli indi--r,, ,,,-,|zzt necessaI per

PROCESSORE

:1 ,.:,. tr,,,.,,, r.

Architettura base del computer di Von Neumann.

':1.1 1,,.i,:','i:i;"l

Page 24: Microrobotica Monty Peruzzo Editore - 06 A - Microcontroller

immagazztnare le istruzioni e idati brnarr.

L'unità di controllo riceve le istruzioni che manmano cleve eseorrrre le derodifira e npnera la

sequenza di segnali necessari all'esecuzione. ll

blocco di elaborazione dati si incarica, sotto la

supervisione dell'unita di controllo, di realtzzarele onerazioni oener:te dalle istruzioni racco-

gliendo gli operandi dalla memoria e dagli l/O,

inviando irisultali a questi blocchi secondo^,,-^+^ .^^-i{i--+^ ^l -VuorrLv rpsLrr!oLv uo OQI-ìl lStfUZlOne.

Pero tutto il movimento delle informazioniall'interno del computer è realizzato da treinsiemi di linee digitali, denominate bus ll bus

der dati e istruzioni ha il compito di trasferireoreqte inform:zioni fra i vari blocchi del com-puter. ll bus degli induizzi e caricato dal proces-qÒro .nn ali ind rizzi dollp istrr rzioni d: pspnrrire

o degli operandi da cercare. Infine, il bus di con-trollo supporta nelle sue linee differenti segnali,rome orrelli del clock che sincronizzano il lavo-ro della macchina, quelli di lettura/scrittura che

indicano ìl tipo di accesso alla memoria eccetera.

L'esecuzione di un'istruzione inizia in una parte del pro-

cessore che si chiama Puntatore, o Program Counter(PC). È situato nell'unità di controllo e contiene l'indi-rizzo dell'istruzione da eseguire.

Di solito il Puntatore dispone di un contatore che

aumenta automaticamente di un'unità il oroorio valore

ad ogni istruzione eseguita.

Questo perche la maggior parte delle istruzioni di unprogramma, si trovano ordinate in sequenza nella

memoria, e all'indirizzo successivo all'istruzione in corsod'esecuzrone, si trova quella da eseguire successiva-

mente. Questa regola non vale per Ie istruzioni di salto,

BUS DEI DATI EDELLE

ISTRUZIONI

MEMORIA(DATr)

tlo(PERTFERTCHE)

Nella fase di esecuzione, la ALU del bloccodi elaborazione dati esegue le operazioni indrcate dal codice dell'istruzione

in cui si include I'induizzo dell'istruzione che deve esse-

re eseguita al passo successivo.

ll contenuto del Puntatore arriva tramite il bus degliindutzzi sino alla memoria, dove seleziona una delleoosizioni nella ouale rìsiede il codice binario dell'istru-zione in corso. ln questo istante attraverso il bus dei

controlli arriva l'ordine di lettura della memoria, e il

contenuto dell'indirizzo selezionato dal Puntatoreviene caricato sul bus deì dati e istruzioni e portato al

processore, dove passa su di un registro specifico chia-mato registro delle istruzioni.

Tr rttn il nro.oqqo r'li localizzazione delle istruzioni eil caricamento sul registro delle istruzioni stesse pren-de il nome di fase di ricerca e si rioete oer tutte le

istruzion i.

Dono rhp il rodiro bìnario delle ìstruzionr èci:tn r:rirr+n cr 'll'rnq6citn ronictrn inizi: ì.)LoLU LollLcLU )Ull dl.JPvJ'rv ttttLtu tó

fase di esecuzione. L'unità di controllo interpre-ta o traduce il codice delle istruzioni e genera

una serie di segnali che invia al blocco di ela-borazione dati, il quale è formato da una UnitàLogico-Aritmetica o ALU, che sarà incaricata di

effettuare le operazioni logiche o aritmeticheche comporta l'istruzione.

Sia gli operandi che partecipano all'opera-zione sia irisultati generati dalla ALU sonoposti negli indiizzi di memoria specificati dall'i-slruzrone stessa.

BUS DEGLIrNDtRtzzl

PROCESSORE

MEMORIA PROGESSORE

Fase di ricerca di un'istruzione

Page 25: Microrobotica Monty Peruzzo Editore - 06 A - Microcontroller

MEMORIA DIPROGRAMMA

BUS DEGLI INDIRIZZIDELLE ISTRUZIONI

14,

BUS DELLEISTRUZIONI

Architettura Harvard nel PlCl6FB4

Sino agli ultimi anni del secolo XX, la maggior parte dei

processori erano costruiti seguendo l'architettura pro-posta da Von Neumann, come se si trattasse di un

' dogma di fede.I e nprpssita dpoli utilizzatori richìedevano nerò sem-

pre maggiorr valori di rendimento, sarebbe a dìre sem-pre maggior numero di istruzioni eseguite per unità di

tempo (MIPS: Milioni di lstruzioni Per Secondo).

Per migliorare questo parametro furono implemen-tate le tecniche moderne, come la segmentazione, la

predizione del salto, e altre ancora più sofisticate;comunque i principi di Von Neumann seguitavano a

rimanere inviolabili.In seguito ci si rese conto di una grave limitazione:

l'esistenza di una memoria in cui si scrivevano a caso sia

i dati sia gli indirizzi delle istruzioni.Fra imnossihile accedere nel medesimo tpmno a

entrambi i tioi di informazione.Inoltre il memorizzare richiedeva una memoria

dimensionata per entrambi itipi di informazione:istruzioni e dati, mentre la dimensione o la lunghez-za dei datì è molto differente da quella delle istruzio-ni.

Rìassumendo, l'inconveniente dell'architettura di

Von Neumann era localizzaLo nella memoria unica di

cui disponeva il processore, che da un lato impedival'accesso contemporaneo ad istruzioni e dati, e dall'al-

MEMORIADEI DATI

BUS DEGLI INDIRIZZIDEI DATI

8,I

BUS DEIDATI

PROCESSORE

l-- a uir __________*l

tro la dimensrone delle sue celle dovevano adattarsi ad

entrambi i tipi di informazioni.

,,''tl',

I mrcronrocessori PIC si basano su di una nuova archi-tettura chiamata Harvard. Essa è basata su due memo-

rie indipendenti, una dedicata alle istruzioni e l'altra ai

dati. Questa indipendenza permette di realizzare acces-

si simultanei ad entrambe le memorie, e trovare un'i-struzione mentre si sta scrivendo un dato. lnoltre larrnrri+r

^i ^^^i -^mnri: nl^ o<<ora 2611++r+r rllrLdPdLILO Ut UVIt rrCilrWrrq puw c))qrq qucLLata ara

necessita snecifira dell'informazione che si deve npstirp

in ouesto modo la caoacità della memoria delle istru-zioni puo essere molto piu grande di quella dei dati,come conviene che sia nela maggior parte delle appli-

cazioni con i microprocessori. Inoltre si puo differenzia-re e adeguare alle specifiche esigenze la dimensione in

bit delle celle di ogni memoria.Nel caso del PIC 16F84 la memoria di programma

che è quella dedicata alle istruzioni, ha una capacità di

1024 celle di 14 bit ognuna, è costruita con tecnologiaFLASH, che permette di sc.iverla e cancellarla elettrica-mente. La memoria dei dati ha una capacità molto più

piccola e le sue celle hanno una dimensione di 8 bit,che è la dimensione tipica dei dati. È volatile, di tipoRAM, ed a complemento ha una piccola memoria ausi-

liaria non volatile di tipo EEPROM, per contenere i datidi tipo permanente, necessari in alcune applicazionr.

Lindipendenza delle due memorie esige dei bus dif-

..

Page 26: Microrobotica Monty Peruzzo Editore - 06 A - Microcontroller

ferenziati, per cui la memoria di programma si control-la con il bus degli induizzi, con linee sufficienti per

discriminare 1 K posizioni, e un bus per trasferire istru-zioni da 14 bit ll bus che gestìsce gli indirizzi dellamemoria dei dati ha meno linee, perche questa memo-ria ha minore capacità. ll bus sul quale circolano idatiha 8 linee per supportare i bit di ogni posizione.

Anche se I'architettura classica di Von Neumann e la

Harvard sono molto popolari, esistono molti modi per

classificare queste macchine: uno dei piu rilevanli e quel-

ìo proposto da Flynn nel '1966. Per distinguere i proces-

sori, Flynn ne distinse il numero di flussi di istruzioni e il

numero di flussi di dati che questi processori avevano.ll nrnresso comnrrtazionale consiste nell'esecuzione

di rrn,a qpnronz: di isfruzioni su un insieme di dati. llJLYv!'

flusso di istruzioni e la sequenza sopra la quale operaun processore, e il flusso di dati comprende la sequen-'- J^i À.+i i^ i^^"^..^ ^ l- .^^' '^^-- ,l^i ^l-+i ^."-i-li ^4d ucr uoLr il r il r9rc))u c ro )Er]ucr4d ucr udLI Pdtztdil cfnf:li rho <i nonor:nn

Le architetture dei computer sr caratterizzano per

l'hardware che utilizzano per gestire il flusso dei dati.

Flynn propose quattro categorie:

', , i'Corrispondono ai monoprocessori convenzronali, tipoVon Neumann, e dispongono di una unità di controllo e

di un blocco di elaborazione dati. Le istruzioni in codice

binario ricevute dalla memoria sono decodificate dall'u-nità di controllo ed eseguite nel blocco di elaborazione

dati, con gli operandi che arrrvano dalla memoria der

dati, archiviando poi in quest'ultima irisultati.

'''''': :.'".I'

Snno romnosli d,a 'n' unita di controllo che ricevonoognuna un flusso dr istruzioni differente.

Le istruzioni codificate sono inviate a 'n' unita dr

processo, ognuna delle quali riceve il medesimo flussodei dati o onerandi Orresîo slonif ica che differenti- -'J' " '

sequenze di istruzioni vengono eseguite sopra lo stesso

dato. MISD: Multiplo flusso di istruzioni, unico flusso di

dati. Non sono stati costruiti modelli commerciali di

questi tipi di computer

f"rl rì,Ì ili.i t i:ij;, ii:tr.,i+Hanno un flusso di istruzioni unico e un flusso di datimultiplo. Esiste una sola unità dì controllo. che governa

differenti processori. Tutti i processori ricevono la stessa

istruzione da eseguire, ma dato che ricevono differentiflussi di dati, questa istruzione ottiene differenti risulta-ti Ppr nntor rondirridors i dati intermedi e i risultati cheproducono i processori, e necessario che esista una

intercomunicazione fra i microprocessori. Ci sono duemodi di ottenerla:

ln questo caso tutti i processori utilizzano una memoria comune,e quando uno vuole inviare un dato ad un altro, prima lo scive in unaposizione che l'altro conorce, e 5uc(essivamentel'altro legge questa posizione. Secondo l'accesso permesso allamemoria, abbiamo quattro categorie:

. CREW: Lettura Concomitante - Scrittura lsclusiva. Vari processori

possono leggere una locazione di memoria. però solo uno può scriverla,

r CRCW: Lettura Concomitante - Scrittura Concomitante. Vari orocessori

possono leggere e scrivere simultaneamente una locazione.

Negli ultimi due tipi si origina il problema dello scrivere

nella stessa locazione da parte dì vari processori. Questosi risolve applicando una dr queste tre alternative:

2, 5e tutti vogliono scrivere la stessa cosa, si può scrivere, in caso

contrario. non scrive nessuno.

In quela topologia la memoria è ripartita fra tuttii procesori, i quali sono uniti da linee bidirezionali di comunicazione.

Ci sono diverse varianti,a seconda della rete di interconnessione che si utilizza.

,L ; i 1""r ;'I .i 'i

1;r :'i y' It ; ,1 i:;,i,..;;

È un gruppo di monoprocessori convenzionali, ognunocon la sua unità di controllo e il suo blocco di elabora-zione dati, associato ad una memoria locale. Lavorano inparallelo ognuno con il proprio flusso di istruzioni e il

oroorio flusso di dati. Inoltre se utilìzzano la memoria

condivisa, ricevono il nome di Sistemi a Multiprocessore,

se utilizzano la rete di interconnessione danno luoqo a

Sistemi Multicomouters.

t

;i'i;;;:;i:|::.:ii-i::;":Í;.iil]:Ì,.il:;]:j|!:i!!;||ii:,!,'i!111',1;;ij'..,,...|11ii|i.|1:||.N

Page 27: Microrobotica Monty Peruzzo Editore - 06 A - Microcontroller

||

MTGROGONTROLLERll PtC | óF84 denlro

banco dei registri

\*,,,*,

It

PIC fanno un uso intensivo dei registri per realiz-

zare le ooerazioni necessarie alle istruzioni che si

stanno eseguendo. Questo significa che normal-mente la ALU del blocco di elaborazione dati,ulilizza come operando il contenuto di un regi-

stro e il risrrhafo lo nrro archiviare rn un altro reoistro

In realtà La ALU necessita didue operandifonte per rea-

lizzare un'operazione. Uno di questi è sempre scritto nel

registro di lavoro W (WORK) e l'altro provrene da un

registro, o dall'istruzione stessa quando si tratta di un

operando immediato.Data la semplicità dell'architettura del PIC non sono

stati implementati nel processore i banchi der registri,

utilizzando al loro posto le celle della memoria RAM

OPERANDOINTERMEDIO

-1 llREGISTRODI LAVOROmffi

8--- 8-'--

come se sitrattasse di registri. La memoria dei dati RAM

del PIC 16F84 consta di 90 posizioni da 8 bits ciascura.

Queste celle si comportano come se fossero un bancodci rpnicf ri :vonti l: dimenciono dol hvto | 9O ronictri ci

dividono in due grandi gruppi:- Registri specifici (SFR). sono 22, e i loro brts hanno

il compito di controllare e programmare il lavoro dellediverse risorse del microprocessore. Svolgono il compi-to di registri di controllo del funzionamento del PlC.

- Registri di utilizzo generale (GPR): sono le 6B

celle restanti della RAM, le quali sono a disposizionedell'utilizzatore per archiviare idati. Nella figura si

mostra la ALU che riceve gli operandi tramite il regi-stro di lavoro W, oppure dalla propria istruzione o dal

banco dei registri, a seconda di come è

selezionato l'ingresso del multiplexer. ll

risultato della ALU si ouò deoositare in Wo in uno dei registri implementati nella

memoria RAM.

Tutto il contenuto del PlC16F84, sarebbe a

dire, tutte le risorse di cur dispone insiemeai collegamenti delle medesime, è mostratonella figura, che presenta l'architettura det-tagliata di questo microprocessore. Si puo

riassumere tutta la sua potenza descriven-do i prrncìpali elementi di cui è costituito ele relative caratteristiche:

. Memoria di programma FLASH da 1 K

parole da 14 bits ognuna.. Memoria di dati RAM con 90 celle da B

bits, funzionante come banco dei registri

dìviso in 22 specifici (SFR) e 68 di utilizzogenerale (GPR).

. Memoria EEPRON/ di dati da 64 bytes.

. ALU da 8 bits per realizzare operazionilogiche e aritmetiche. Un operando provie-

RAM

BANCODEI REGISTRI

Nelle operazioni della ALU intervengono i registri della RAM.

Page 28: Microrobotica Monty Peruzzo Editore - 06 A - Microcontroller

ilIICROCONTROLLER. tl!

l:L',',,

i\l

t,,:,

,ta.

t:, i.1! t t! : I ;'j'lt

MEMORIA DEI DATI

13

DIREZIONE

-\ ,|3

fficoNsrGLl

MICROCONTROLLORI-- 14

INDIRIZZAMENTO DIRETTO

PORTE I/O

7'--DIREZIONE

5

ffi

W

m îà3^,

ffi naoffi nar:s

m RA2

lRÈ nae

ffi neo

ffi ner

ffi nezffi nesffi ne+ffi nesffi neoffiG nez

ffitrffiffiffiMCLR# VDD VSS

Quando un processore esegue un'istruzione lo fa in due

fasi diverse. ll PlC16FB4 procede in questo modo, e chivnrrì rnmnrandoro , fOndO il fUnZiOnamentO di Una

macchina programmata, deve conoscere queste duei:nna fnnr'l:moni:li nartanta\ incictoromn <t t nttectnLqVVq lwl luql I lEl lLqll, VLr rur r!v

' rv ru 9uLrLv

+nmr l-\nlln ^"^

{aci l. nrim: À rnmrrno : tt 1f+a la ic+rr rLfllld. UUIIC UUC ld)l ld Vrilrru L lvrrrurrL u LULLC lC l)tlU-

zioni e realizza sempre ìa medesima operazione, si chia-

ma fase di ricerca. La seconda e specifica per ogni istru-

zione e si chiama fase di esecuzìone.

FASE DI RICERCA

ll contenuto del puntatore viene caricato nel bus degliindilzzi della memoria di programma e contiene l'indi-rizzo in cui si trova il codice binario dell'istruzione che

bisogna eseguire. ll PC contiene solo indirizzi di istru-

.i. ';i i'i 'i

*ffi-\8ffi

TEMPORIZZATORE

#ffifu'ffiffir OSCI/CLKIN osca] CLKOUT

Architettura base del PlCl 6F84, con icollegamenti fra ivari blocchi che lo costituiscono

ne dal registro di lavoro W, e l'altro dalla proprìa istru-

zione o dal banco dei registri.o Drrp norte di l/O dioi*^ri r^ ^^"+^ A -^^ trrinee e la B- yuL Vvr Lu ur r/ v uryrLoll. LO VWI LO n LVll J I

con B.

o lJn temoorizzalore da B bits chiamato TMR0.. Un temporizzalore speciale da 8 bits, chiamato Watch

Dog (WDT).

. Un puntatore per induizzare la memoria dei codicilnnr+n r rrna c+trlz. ^itn lirrolli dnrro <i ronictrrnn tnmlegdLU d ullu )LdLN d urLv ilvsilr, uvvs Jr rs9rJUdru lcilr-

poralmente gli indrizzi di ritorno delle chiamate di

subroutrne e degli interrupt.. Un sistema per l'indirizzamenlo diretto e indirettodella memoria RAM.. Circuitì di Reset e temporizzatore legato al medesi-

mo.. Possibilrtà di lavoro in condizioni di basso consumo.

iL! t''1.rì!i;'ii tr'; t

Page 29: Microrobotica Monty Peruzzo Editore - 06 A - Microcontroller

IMIGROGONIROTLER :I'Lll PlCf óF84 dentro =--=;

-b**l

zioni, mai valori relativi a dati. Nel caso del PlC16F84lamemoria di programma ha una capacità di '1 K posizro-

ne di '14 bits.

Dato che la longitudine di ogni istruzione è semprer-li 1 /. hitc nr ro<.t: ;-1-lpppnri : h: l: nnccihili+r n,,,-,rlOlld lld lcì p{J5slUllltd Ol COnîene-

re programmi con un massimo di 1.024 istruzioni; rnol-

tre è di tipo FLASH il che significa che si puo scrivere e

cancellare elettricamente con l'aiuto di un programma-tore e un PC.

ll bus delle istruzioni sposta icodici brnari dell'istru-zinne nrrnt:ta d,al PC f no all'unita di controllo del nro-vrrv uLr P' v

cessore, dove si trova un registro speciale denominatoRegistro delle lstruzioni, che viene caricato con questi

valori, terminando così la prima fase dell'istruzione.

Questa fase di ricerca del codice dell'istruzione da ese-

ottire e ttnttale ner tlrl'p lo iqtrr rzinni riol ronqr{gri6.

FASE DI ESECUZIONE

Con il codice dell'istruzione collocato nel Registrodelle lstruzioni, l'unità di controllo procede a deco-dific,arlo c,a intcrnrclare a Che istrUziOne Si riferisce.

Terminata l'interpretazjone, viene generata unaserie di segnali di controllo che si applicano al restodegli elenenti, dando via all'esecuzione La maggiorparte delle istruzioni implica il realizzarsi di un'istru-ziano laaiez n:ritmotir: tinn <nmma cr,,,,,,, -Jttrazronr,AND, OR, rotazione eccetera.

Per effettuare le operazioni esiste all'interno delblocco di elaborazione dati una unità denominataALU. La ALU del PIC 1 6FB4 riceve due operandi, unoarriva dal registro di lavoro accumulatore W e l'altropuo provenire dalla propria istruzione, se si tratta di

operando immediato, oppure da uno dei registri delh:nrn rha a imnlallppf2'to nplle nosiziOni dellaPvrr4l

memoria RAM dei dati.A volte bisogna estrarre o introdurre informazio-

ni nel micronrocessore ner otreslo ahhiamo due,,,,-,-F,-lY-,

porte, la A e la B, che dispongono di linee collegatecon ipiedini di uscita dell'integrato, attraverso i

nrrali entrano ed escono i bitsCome aiuto alle operazioni del blocco elabora-

zione dati, il PIC 1 6FB4 dispone di un temporizzato-re, TMR0, che è incaricato di contare il tempo, e un

altro, chiamato Watch-Dog, che vigila sulla correttaelaborazione delle istruzioni del programma.

1..,'-t',:;,:' I, .:,' . 1.,'.,.,. t', .t ll t :,

ll PlC16F84 dispone di una memoria di programma di

tipo FLASH, ccn una capacità di 1 K parole da 14 bits

ciascuna. La memoria FLASH ammette fino a 'l 000cicli di scrittura e cancellazione con la massima sicu-rezza.

Per leggere una memoria da 'l K posizìoni abbia-mo bisogno di indvizzi a 1 O bits, dato che 2'o = 1 .024.ll program counter, PC, del nostro PlC, ha 13 bits cont quali puo indirizzare 2 = B K posizioni diverse. I bitsin più di cui dispone il program counter sono dovutialfatto che l'architettura ditutti imodelli deì PIC dellagamma media PICl6CXX e la stessa; pero, in ognimodello, il costruttore ha implementato differenticapacita di memoria, per cu, l'utjlizzatore selezronerala piu conveniente.

Nel PlC16FB4 sono state fisicamente implementa-te solo le prime 1.024 posizioni degli B K possibili

della mappa di memoria. ll primo indirizzo è lo

0000H, e l'ultimo valido è lo 03FFH.

lindirizzo 0000H e riservato per il Vettore di Reset,

oilesto sionifica che r-,,^il- ; r- ^^-i-r^^^ I cui va ilLr r! 9uEllo E lo l.JU)l4lUllC c

puntatore ogni volta che si effettua un reset. Per que-sto motivo il programma di lavoro del microcontrollerdeve iniziare obbligatoriamente all'indirizzo 0000H,dato che l'istruzione che cortiene e la prima che siese-gue dopo il Reset.

Se vogliamo iniziare il programma all'indirizzo0005H, dobbiamo mettere un'istruzione di salto in

questo indirizzo nel Vettore di Reset, sarebbe a dire,go to 5.

MEMORIA DIPROGRAMMA

Nella memoria di programma del PlCl 6FB4 sonostate implementate solo le prtme 1 024 posizioni della mappall program counter ha una longitudine di 13 bitse lo stack può contenere fino a B indirtzzi di ritorno.

l3\

11,.; ;L r,.tt it, ::, t..

Page 30: Microrobotica Monty Peruzzo Editore - 06 A - Microcontroller

MICROCONfROTLERll PIC | óF84 denlro

t'indirizzo 0004H è assegnato al Vettore di

Interrupt, e funzrona in forma simile a quello del

Vettore di Reset Quando si verifica un interrupt, il

contatore di programma s carica con 0004H e in

secrrtn eseore l'istrrrzione che si t'overa memorizza-t: in nrroct: nncizinno

Di conseguenza la prima istruzione della parte di

programma relativo ad un interrupt deve essere collo-cata in questo indirizzo della memoria di programma.

ll puntatore è un registro da 13 bits, dei quali, nel

PlC16F84 se ne utìlizzano solo i '10 meno significativiper indtrizzare le 1 .024 parole della memoria FLASH in

cui si trova il programma l tre bits piu significativi di

nl,psto renrstro non sono rttilizzali in clreslo modello di

microcontrollore.Per gestire e conoscere il contenuto del puntatore, si

' '+ li---^^ | '^^t'+'t -^rositi della zona SFR della RAM.utrLLót ru I rtrgr)Lr roPl,

Questr registri sono il PCL e il PCLATH, in modo che gri

B bits meno significativi deì PC sono dedicati al PCL e i

5 più signifìcativi al PCLATH, così come è rllustrato nella

figura.ll rpoistro PCI e sitrrato all'induizzo 02H del banco 0,

p rinptr rto npl h,rnro 1 dolla manna dei reoislri SFR della

memoria RAM. ll registro PCLATH si trova anche dupli-cato all'indirizzo relativo 0AH dei due banchi.

Associato al puntatore esiste una memorta ttpo LIFO a

R nosizinni da 1 3 hiîs oonrrni che si rhiama stack.Dato che e di tino llFO si carica e si scarica tramite il

suo livello superiore, che e drrettamente collegato al

I bits del puntatore si scrivono nei regrstri PCL e PCLATH,

secondo la distrtbuzione rndrcata.

'rllr

lil

:8

ffi

MEMORIA RAM

I registri PCL e PCLATH sono dupltcati rtspettivamente nelleposizioni 02H e aAH dei due banchi della RAM.

puntatore, ir modo che durarte la fase di carica ilvalo-re passa oa puntatore al livello 1, e gri altri valori scen-

dono di un livello. Quando lo stack si scarica, il conte-^.,+^ i^r ri,.^,r^ r ^---a al pC e lrrtti nii altrr ValOfi Sal_ItuLU Utrt ilVCIU I pd))u -,nnno di rrn livello oresto siorifica che l'rrltimo valore

che è stato caricato e il primo che si scarica (LIFO: Last

Input First Output)Lo stack serve per scrivere temporalmente gìi indi-

rizzt delle istruzioni, e si usa sempre automaticamentese si ha la chiamata di subroutine (CALL) o se avviene

un interrupt. In entrambi i casi bisogna memorizzare gli

induzzi di ritorno al programma principale, infatti ter-mìnata la subroutine o il programma legato all'inter-rupt, s ritorna a programma principale.

A volîe oossono esserci situazioni di annidamenti:dall'interno di una subroutine ne viene richiamata

un'altra Ogni volta che questo succede, bisogna

mernorizzare nello stack l'indiizzo di ritorno. Visto che

non esiste un segnaiatore che segnala il rierrpimento...l^ll^ -+--1, -+- -l ^"-uElv )LcLN, )!o o p,ùgrammatore tenefe conto degliannrdamenti ner evrtarp rhp srrneri nlr R v,alori e debor-di nordpndo informazront.

A differpnza deoli .rltri nroressori lo stack del

PIC 1 6FB4 non e accessibrle da parte dell'utilizzatore e

nnn <i nr ta r-zriTara n cr:rir:ro Orrpctp drroL. YvLJLL --- operazlonl

si realizzano automaticamente quando si esegue l'ope-razione CALL o avviene un interrupt.

BANCOO I BANCOl

t2 CONTATORE Dl PROGRAMMA (PC) O

Page 31: Microrobotica Monty Peruzzo Editore - 06 A - Microcontroller

La memoria dei dati RAM

on la finalità di semplificare l'indirizzamentodella memorra RAM e diminuire i bits degliinduizzi, i progettisti della gamma PICl6CXXhanno organizzalo in 4 banchi da 128 posi-zioni da B bits cadauna. f indirizzamento

implica la selezione del banco e la posizione relativa inesso. Per determinare Ìl banco a cui si desidera accede-re esistono due bits denominati RPO e RP1, che si tro-vano ubicati nel regrstro specifico della stessa RAM, che

si chiama Registro di Stato. Scelto il banco sono neces-sari altri 7 hits ner indirarp rrn: dollo t 7R nosizioni delr 4v vr

medesimo, come si vede nella fiqura.

? FEGISTRO DI STATO OW,, ,y'

SELEZIONE ooHDEL BANCO

124 :

POSIZIONI i

i;-r:

-t

I PIC della gamma media hanno la memoia organizzatain 4 banchi da 128 posizioni di B bits ciascuna.ll banco è selezionato con i due bits del Registro di Stato

" l, p?t:r:o!".ro-, ,., in!i:.:::o

1 Z tti.t;_

i i È r;,É i.; l i'.lr +,i j, r=.! il {j i.: i1; L !-..,.ri :ii É ir;l'; ij l" rrif- :l i;.F;ri+

ll microcontroller che useremo per il controllo del nostrorobot ha una memoria RAM piccola. Non sono statiimplementati fisicamente i quattro banchi possibili, cheforniscono la capacità massima di 4 x 1 28 = 512 bytes.Alcuni modelli più potentì della gamma media, dispon-gono di questa capacità. ll PlC16FB4 ha implementatosolo i primi due banchi, anche se in modo incompleto.Infatti solo le prime B0 posizioni di questi banchi, cioèdalla posizione 00H alla 4FH, in totale 2 x 80 =160bytes, sono stati implementati. Le prime posizioni deidue banchi sono riservate per i registri specifici e lerest:nti npr r-rrrplli eli riilízza nonor.eio

Le prime 12 posizioni dei due banchi, i cui indirizzivanno dalla O0H alla 0BH, sono riservarti ai valori dei reqi-

INDIRIZZIDEL BANCO

7

BANCO O BANCO 1 BANCO 2 BANCO 3

t_.=.

4FH

7FH

BANCOO BANCO BANCO 2 BANCO 3

ll PIC 16F84 ha implementato fisicamente solo le prime B0posizioni dei primi due banchi

stri snecificr (SFR) i cui bits controllano il funzionamentodelle risorse interne del microcontroller. Funzionanocome registi di controllo programmabili. In questa zona

SFR abbiamo due posizioni non implementate, che occu-pano gli induizzi 07H di ogni banco, pertanto il numerototale dei registri specifici SFR del PlC16F84 è 22.

Le 68 posizioni finali di ogni banco con indirizzi com-presi fra 0CH e 4FH, sono usate come registri di utilizzogenerale, GPR, destinati a contenere dati e risultati par-

ziali dei programmi. Le 68 posizioni GPR del banco 1 sonomappate nel banco 0. Questo significa che anche facen-do riferimento ad una posizione GPR del banco 1, si acce-

de alla posizione correlata del banco O, idue banchi cioènon funzionano in modo indipendente. Riassumendo, il

numero totale dei registri GPR è solo di 68, dato che i 68del banco 1 funzionano su quelli del banco 0.

ii :-a: : :iTÈ,i :i Ìrri:.i"î ir.ii"i. 1i ij!ill nostro PIC dispone di 22 registri specifici SFR; attraversoi bits di questi registri si programma il funzionamento e

I'utllizzo delle risorse del microcontroller. Ci sono 1'1 regi-

stri SFR nel banco 0 e altrettanti nel banco 1 . ll registro che

occupa la posizione 07H in ogni banco non è implemen-tato. Nella figura si mostra la nomenclatura di questi regi-stri, possiamo notare che alcuni dì questi sono ripetuti in

entrambi i banchi. Per esempio il Registro di Stato occupal'indirizzo 03H del banco 0 e il corrispondente indirizzo del

banco 1. Questo succede con tutti i registri fondamentalidel microcontroller; per poter accedere ad essi indipen-

$ fu+=cÈ+fuÈ #+$$* ffi&SsÈ

Page 32: Microrobotica Monty Peruzzo Editore - 06 A - Microcontroller

dentemente dal banco che è stato

definito con i bits RPO e RP1.

lntegrano un insieme di 68 posizioni

di ogni banco. compresi tra gli indiriz-

zi OCH e 4FH. Però non ci sono 68 x 2

= 136 registri GPR. Solo la metà sono

validi, perché quelli del banco 1 sono

mappati sopra quelli del banco 0.

Come è stato precedentemente spie-

gato, questo significa che quando si

accede a un registro GPR del banco 1,

in realtà si realizza l'accesso al corri-

spondente del banco 0. Sono validi

solo i 68 registri GPR del banco 0.

,, 1-; ,' t; tt l "'".,; : ;'t.

Dato che il PlC16FB4 ha operativi

solo i primi due banchi della RAM,

non sono necessari due bits per spe-

cificare il banco selezionato. Dei due

bits RPO e RP1 del Registro di Stato

che servono per determinare il

banco, al nostro PIC basterà pro-

grammare il bit RP0, che è quello che

occupa la posizione 5 nel Registro di

Stato. È rndifferente il valore che ha il

bit RP1, che occupa la posizione 6 nel

Registro di Stato. Se il bit RPO = 0, si

accede al banco 0, se RPO = 1. si

accede al banco 1.

Quando vogliamo accedere ai

registri GPR non dobbtamo tenere

conto del valore del bit RP0, datoche, come abbiamo gia detto, il

banco 1 è mappato sopra il banco 0.

Or rindi la oesîione dell'accesso ai

banchi, consiste nell'impostare il valo-

re del bit RPO, che e il quinto del

Registro di Stato, rl quale occupa l'in-

diizzo 03H dei due banchi dell'area

SFR. Ci sono due istruzioni nel reper-

torio del PIC che facilitano enorme-

mente il controllo di RPO. La prima è

l'istruzione bsf, che ha il compito di

mettere a 1 il bit specificato del regi-

stro che si indica. Se troviamo ìn un

ii i+t:ttnilrL+hi. ,'cÈ+;i glr* lrt r*-:{ifé

Memoria dei dati RAM

"È:EE

programma l'istruzione "bsf STATO,5", ìa sua

esecuzione metterà a '1 il bìt 5. RPO, del Registro

di Stato, in modo che, a partire da quel momen-

to, I'indirizzamento della RAM si effettuerà dal

banco 1 nel programma. La seconda istruzione

bcf, mette a 0 il bit specificato del registro che si

indica. L'istruzione "bcf STATO,5" pone RPO = 0e lascia puntato il banco 0 della RAM.

.r r ,.r,.' :::; l.t t,t,; t:1.:i r,..'rl

I registri specifici SFR si classificano in due grup-pi. Il primo include tutti i registri incaricati di

controllare le funzioni vitali del nucleo oet

microcontroller, tra i quali citiamo STAfO,

OPTION, INTCON, eccetera. Nel secondo grup-po sono compresi i registri incaricati del con-

trollo del funzionamento delle risorse ausiliarie

e delle periferiche, tra le quali citiamo PORTAA,

PORTAB, TRISA, TRISB e altre.

Nella figura è rappresentata l'organizzazione

dell'area SFR della memoria RAM in modo detta-

gliato. In essa sono indicati i nomì di ogni registro

specifico, l'rndirizzo che occupano in ogni banco

e rl nome di ognuno dei bits. ìnfine si indica il

valore che avrà ognuno di questi bits dopo aver

effettuato un Reset normale o uno speciale.

&8lla2

83

84

ss", '.,

s&8A'8B

8C

i BANCO 0 SANCO 1

i..,. ., .., .," ,

Distribuztone e nomenclaturadei registri SFR e GPR dellamemoria RAM del PIC 16F84.

T T T T 1' '{ T 'é' ISSSIPO'O VALOFIALTRI

t sodet cobt€Ntó dt FsRps idlriffi ti ffih (mn è h cgli!ÈlÈiol t;

Clad( / CoIidoG tn tetlEo €le r I btts xxxx xxxx qsuu úsqu I

BtÉemèFrìgnmqfiwdetPc O0OO oOOC O0O0 OOOO l

fFP lRPt RPo îo# Po* Z DC G oool txrr oooQ quuulndùíaménio indiEtto rs F{DF xxxx xxxx uuuu uuuq

- RAl/foCt( nA3 RA2 iA1 ÉA0 --'x xtxx '--u uuuu

Rg? RE6 RB5 RB4 nBs î82 FBI i60lNT xxxx tx*x uuuu sùsuilgtr implèmtrio 3i hgge (om'o'isgfuBod€ida$fEPÈofrt xxxr xxxx uuuu uuuui€glrtodaglilntiddÈEPnola xxxx xxxx suuù uuuu

- SísiemitbftsdiP€rl ---O OO00 -..ù 0OOO i

GtE EÈlE TolE tNlE HBIE TolF lNfF RBIF ooÓo ooox ooÓo oooo

BIf BIT BtT BIT 8tT BIT BIT BIÎ?6543210

tho e @rúedsb di fsR gq lndirÌaÉ lq reddià (@r è s rtgiÉtn firt€)

ftOFU* INIDG TOCS TOSE P{tA FSz P51 PSO

Èy$ nm rlgntticttuo d€l PC

IBP NPT RPO TO* Pb* Z DC C

lndtnEsrunto díetto @ lrtDf

. conft$ruloÉ lortr A

confiEHrfsG por& B

t{on lnFlenènqÉo 5l Lggè ffi '0". EEIF WHEÉE WREN WÉ fiD

ièglelo tlt .o[tnlto :EPfotil (mn è sn Egùfs fitko]

- CttfEwdm?cttAGIE EEIE ?OfE INIE RBIE 'ÍOIF INTF RBIF

VALORI DOPO VALORI ALTRIIL RESET FÉSET

lttl tlll îf11 l11l0000 oooo ooo0 0000

OúOl txxx 000q quuq

xxxx xxxr uquú uuuu---l {tl't ---l l1l't1!r1 tltl 1111 1t',ll

---ó x0o0 ---- q00O

".'O 00OO '.-0 0Oo0

O00O oóOx Oo00 000u

t

Organizzazione dettagliata dei registri SFR del PIC 16F84. Sono indicati gli indirizzi,

il banco, il nome del registro e di ognuno dei suoi bits e i valori che questi avranno dopoun ,îeset normale o speciale.

Page 33: Microrobotica Monty Peruzzo Editore - 06 A - Microcontroller

ICROCONTROLTER

ffitr8-:

Gli operandi fonte della ALU arrivano o dal registro Wo dal multiplexer ll risultato finisce o in W o in una posizionedella RAM

La memoria dei dati RAM del PIC della gamma media e

organizzala in quattro banchi da 128 posizionj con 8bits di dimensione cadauna. Nel caso del ptC16FB4

sono state implementate solo le prime BO posizioni(00H-4FH) dei banchi 0 e 1.

Per tndvizzare una posizione della memoria RAM inun PIC bisogna specificare, in primo luogo, il banco incui si trova, e dopo, I'induizzo relativo al medesimo. per

selezionare il banco ci sono due bits nel Registro diStato dell'area SFR della RAM, che si chiamano RpO eRP1, e occupano le posizionr 5 e 6 delsuddetto registro.Per determinare la posizione relativa in un banco, biso-gna specificare 7 bits per poter formare 27 = 128 indi-rlzzi possibili.

Esistono due modi per indirizzare la RAM: l'indiriz-zamento diretto e quello indiretto.

' 'r

Questo modo per definire la posizione nella memoriaRAM, dove si trova il dato ricercato, inizia scrivendo nei

due bits RPO e RP1 del registro di STATO il codice corri-spondente al banco. tindirizzo all'interno del banco è

incluso nel codice della propria istruzione, dato che dei

T6jSTATOoffirsELEztoNE DEL BANco "2

oo ol 'toooH

DIREZIONE(coDrcE oPTSTRUZTONE)

7

07t

Nell'indirizzamento diretto i bits Rp0 e Rpl del Registro di Statoselezionano il banco, e i 7 bitsmeno significativi dei codici dell'istruzione, la posizione relativa.

MEMORIADEI DATIéilffire;niúiul-ffErcrcrcffiffire-rc*ryre:reryrcrcffiG

ffi

ÌrercrcgH$Effiffi

ruru8.r

Operondi gestiri dalle istruzioni

Indirizzamentodelta memoria dei dati RAM

,,',1;,.,1.,, dati gestiti dalle istruzioni prima dell'esecuzio-

dotto dall'esecuzione dell'istruzione è il risul-tato. Nel PlC16F84 i dati, in generale, occupa-no indirizzi della memor a dei dati RAM,

sarebbe a dire, registri. Esistono dati speciali il cuivalore non deve essere perso quando si toglie tensio-ne al srstema, per questo vengono scrrtti in una zonadi memoria EEPROM, che studieremo successivamen-te. ll dato puo anche essere contenuto nel codicebinario dell'istruzione, nel qual caso si chiama ope-rando immediato.

Normalmente tutte le istruzioni sono realizzatecon un'operazione elementare logica o aritmeticanella ALU, la quale riceve uno dei due operandi fontedal registro dr lavoro W, che è stato precedentemen-te caricato in modo adeguato. L'altro operando, senon è immediato e quindi è già dentro l'istruzione,arriverà da una posizione o da un registro della RAM.Infine, come è indicato graficamente nella figura, il

risultato della ALU è caricato in W e in uno dei regi-stri della RAM.

BANCO O BANCO I BANCO 2 BANCO 3

Page 34: Microrobotica Monty Peruzzo Editore - 06 A - Microcontroller

STATO

] BANCO O I BANCO 1

Per selezionare il banco nel PIC 1 6FB4

bàstà scrivere nel Regislro RP) del Regtslro di jtato.

14 bits che la compongono, i 7 meno significativi sono

riservati a questo compito.Per caricare il codice del banco nei bits RPO e RPl,

es stono, come abbiamo già visto, un paio di istruzioni

molto efficaci, capaci di mettere a I o a 0 un bit di qua-

lunque registro. Per esempio, se vogliamo accedere al

banco 2 dobbiamo caricare RP1 = 1 e RPO = 0, visto che

sr usano le ìstruzioni "bsf STATO,6" e "bcf STATO,5".

Nel PIC 16F84, l'indirizzamento diretto e più sempli-

ce dato che la memoria RAM è solo implementata nei

prmi due banchi, il banco 0 e il banco 1. Questo sup-

pone che con un solo bit si scegtie il banco, in realta e

usato solo il bit RP0, essendo indifferente lo stato che

ha il bit RPl 5e RPO = O, si accede al banco 0 e se RPO

= 1, si accede al banco 1 . Rimangono gli altri 7 bits

necessari per indirizzare una delle B0 possrbili posizioni

che ci sono all'interno di ciascun banco.

' , I i, '

Quando si utilizzano tecniche avanzate d programma-

zìone, o si lavora con linguaggi di alto livello come il C,

così interessante nei srstemi con microcontrollori, è

molto conveniente disporre di un modo speciale per

f indirizzamento dei dati nella memoria RAM. Si tratta

del modo di indirizzamento indiret'to, nel quale il codi-

ce dell'istruzione non contiene i 7 bits che formano la

direzione del banco. Con questo metodo si fa riferr-

mento ad un registro specifico attraverso il quale si

ottengono questi 7 btts.

Nei microcontroller PIC le istruzioni che gestiscono

l'indirizzamento indiretto utilrzzano il registro INDF, che

., i.t.: 1, \,., :.tit,': i, t!. t,

:t:. :: . :.. ..:::: .. . .. . . . :. .. .........

occupa l'indirizzo 00H deì due banchi dell'area SFR. In

realtà il registro INDF non è implementato fisicamente,pertanto quando si fa riferimento a questo registro, si

accede ad un altro reqistro specìf ico dell'area SFR, che

si chiama FSR. Nei 7 tits meno significativi del FSR si

trova il valore dell'induizzo relativo al registro cercato

nel banco selezionato.Listruzione con modo di indirizzamento indtretto,

ultlizza come registro operando INDF, pero il PIC accede

al contenulo del registro FSR, che occupa, oer duplrca-

to, la posizione 04H dei due banchi della RAM.

Non solo e diversa la maniera di ottenere i 7 bits di

indirizzo, ma nel metodo indiretto cambia anche il

modo di specificare il banco. In quello diretto si usava-

no i bits RPO e RP1 per scegliere il banco, nel modo indi-

retto si usa il bit 7 - il più significativo - del regrstro di

STATO, che si chiama IRB e il bit 7, il più significativo,del registro FSR (ricordiamo che i 7 bits meno significa-

tivi contengono gl indirizzi re ativi). Dato che nel

PlC16FB4 abbiamo solo disponibili i banchi 0 e 1, il bit

IRP der registro di stato varra sempre 0.

Se, per esempio, vorremo selezionare in forma indi-

retta la direzione 12H del banco 1 in un PlC16FB4,

: STATO offiIóFSRoilffi

sELEzroNE oeL enNco *ttt

00H

{ OBH0cH

4FH50H

00 0l

Nell' indirizzamento indiretto il banco si sceglie con il bitpiit significativo del Registro di Stato e quello pru sgnificativodi FSR. L'indirizzo relativoè contenuto nei 7 bits meno significativi di FSR

cominceremo caricando in FSR il valore '12H (0x'12), per

I 7 bits di minor peso, e metteremo a '1 il bit 7 dt mag-ninr no<n dal ronictrn nor <ronlipro il h,anco 1

MOVIW 0x12 ; 5i carka W con 12 H

mowvf tSR ; ll valore di W si carica in F5R

SAl.lCO O gAl'KO I BAN{Ò 2 SANCO 3

Page 35: Microrobotica Monty Peruzzo Editore - 06 A - Microcontroller

iortecon Íl ,

Le portedi ingress o/uscita

lprocessore che contiene ila - -t .--^ ^.---^^lt^l'lL lbfó4 tnat|7za e Íaccogile

icodici delle istruzioni resi-

denti nella memoria di pro-

gramma, le decodifica, cercanìi nnor:ndi lo pcpnrrp p nrndrrrp doi

risultati che memorizza. Questo è il

tipico lavoro necessario per processa-ro rrn'i<trr rzinnp noraì : rho crnnnT

l'nhiottivo fin:lc p nrrollO di COntrolla-

re una serie di dispositìvi esterni che

configurano il sistema che dobbiamonn\/orn:ro lìrrocti di<nnqitivi rho

YvrJL'

chiameremo periferrche, certe volte

hanno il compito di introdurre dati

nel microprocessore e quindi vengo-

no chiamati di "rngresso" Altre voltericevono i risultati dell'elaborazionedelle istruzioni, sono dati che vengo-

no conferiti alle periferiche per rego-

larne rl funzionamento, questo tipodi periferiche viene chiamato di" uscita " .

lp neriferiche si classrficano in duegrandi gruppi: digitali e analogiche.I e nrimp ricevono e/o inviano infor-mazioni digitali attraverso un insieme

di linee digitali il cui numero è ugua-

le a quello dei bits contenuti in ogriparola di informazione trasferita. Le

periferiche analogiche inviano e/o

ricevono informazioni analogiche,ossia segnali che variano il loro valo-

re da un minimo ad un massimo,

passando per infiniti valori intermedi.

All'interno delle periferiche digi-i:li Io nir'r <omnliri <nnn nrralìo rho

generano o si governano con una

sola linea digitale, di modo che, se

:--

Le periferiche sono dispositivi esterniche introducono e ricevono rnformazioni da o per il mondo esterno

PROCESSORE

La peiferica di rngresso digitalepiit comune è l'interruttore, che puo assumere diverse forme

lri r',1 | . .: ":.". :

l\:;::1:r::::ti:,,i,,,4,?41@útt9$||"/aaaa*att

Page 36: Microrobotica Monty Peruzzo Editore - 06 A - Microcontroller

sono periferiche di ingresso introducono il valore di un !,

bit su di una linea, mentre se si tratta di periferiche di i

uscita il loro funzionamento necessita solo di un bit. La l

periferica di ingresso digitale più comune e più utilizza- i

ta è l'interruttore, che assume diverse forme come pul- l

valore di un bit, in modo chequando il programma che sta ese-guendo il microprocesso.e leggequesta linea, riconosce se c'è un 1

o uno 0. Programmando una di

queste linee di l/O come uscita,potremo collegare ad essa unaperiferica di uscita, come un LED

e quando il programma va a scri-

vere il valore di un bit sopra que-

sta linea, se è un 'l il LED si illumi-nerà, e se è uno 0 il LED si spe-gnerà. ll collegamento di unaneriferir: d'innrpcsn in nrrpcto}."''."'caso un interruttore, e di unaperiferica di uscita, un LED, è illu-strato nella figura.

Può capitare, in alcuni sistemi,

che i livelli logici delle periferiche

siano al contrario rispetto a quelli

indicati nella figura; per esempio,se l'interruttore e aperto, viene introdotto uno 0 nella

linea di l/O, e se è chiuso un 1 .

Inoltre, può succedere che si desideri accendere il

LED quando la linea di uscita digitale sia a 0 e spegner-la quando sia a 'l . Nella figura si vedono le modifiche al

sante, commutatore ecc. La perife-

rica di uscita più semplice, ma nonper questo la meno usata, e il

diodo LED. ll primo tipo di questi

interruttorr, a seconda dello stato,introduce un 'l o uno 0. ll secondotino se riceve rn 1 normalmente si

illumina, mentre se riceve uno 0 si

spegne.

: .. ':.,,,. i i .rt-:.. : J i'-

:ì : :1 Ì, ". i: t.'.ij i I . ,L i:.. r r_,ri

Dei 18 piedini che dispone il nostroPlC, 13 sono destinati a linee di l/Odigitali. Ognuna di esse puo intro-drrrre al nro.esqorè il valore di un

bit o essere incaricato di prendere

dal processore il valore di un bit per

il mondo esterno.Sc rrn: di nrrp<to 13 linee di l/Ov' YULJTL '.

À nrnarrmmr*re programmara come In9resso,sara possibile collegare ad essa un

dispositivo esterno che introduca il

,É,.,,

ll processore conosce lo stato dell'interruttore,se e aperto o chiuso, questo perché leggendo la linea di ingresso esso riceve un 1

se e dperto o uno 0 se è chtuso. ll LED della linea di uscitae controlldto dal processore perche lo accende scrivendo 1 e lo spegne scrivendo 0

I diodi LED sono le periferiche digitali di uscita più semplici e utilizzate

+Voo

INTERRUTTORE

LINEA DIGITALE DI INGRESSO

LINEA DIGITALE DI USCITA-ìì!

tÍr:7t;'

;1;:'11;,i+1;:11.+i+i.i:'i,Èl.l;i=ltjl..e"+l.loll:+'r:l.+l.È;.+#'oÈ1Ì,.:;!1#;tt,1]tli1i,f.+i.íiÉ11iiii'.i;;t1i;.ii!

Page 37: Microrobotica Monty Peruzzo Editore - 06 A - Microcontroller

INTERRUTTORE

processore ìa leqqe.

Ooni reoistro nel ouale si collo-

cano le informazioni da trasfe-l

rire ha associato un altro regi-qtrn rho <or\/o nar COnfigUfafe-."-'-ognr ilnea come Ingresso o,,--i+- l- ^^"+- A Iuscrta. La poria A na assocrato

il registro TRISA e la porta B il

registro TRISB. ll procedimentoper configurare le linee è moltosemnlrce Se desiderramo che

la linea 2 del registro PORTAA

(RA2) funzìoni come una linea

di rngresso dobbiamo scrivere

nel bit 2 del registro TRISA un

1. Se al bit 3 di TRISA si memo-

rizza uno 0, la linea RA3 del

'o+v;i

Normalmente si dice che il PIC'l6FB4 e povero perche

ha solo 13linee di l/O, scarse risorse e poca capacità

di memoria. Le linee di l/O si raggruppano in due

insiemi che sono chramate "porte". La porta A rag-gruppa 5linee di l/O, mentre la porta B raggruppa leR roqt:nti lo nnrto di l/O onor:nÒ .Òmo roni<tri rhp

oossono essere letti e scritti dall'esterno e dall'internodol nrorpssnre C)rrpsti reoistri si chiamano PORTA A e,r. vvLJLl

PORTAB. In realtà lo scambio dr informazioni ìo realiz-z: il nrnro<<nro <rririO^À ' Inî ^^r+r manlra l:/u tt Vt L, JLrrvúl IUU )UPIO Ulld PUI Ld lllclltlE lo

^^ri+^ri.1òc+Òrnì l: lanno n :l rnntr:rin ò l. narifori-pclllcllLo c)tEl llq lo ltryyr/ v ur lvr rLr urrv, L rq PElrrErr-ca esterna che colloca l'informazione nella porta e il

LINEA DIGITALE DI INGRESSO

\p I infarn trfnre e ànprtÒ intfOduCe un bit 0.

Per accendere il LED dobbiamo scrivere un bit 0 sulla ltnea digitale a cui e collegato

circuito di adattamento delle due periferrche per opera-re con livelli logici opposti

Voo+5V

05H06H

I nel ì rizzì r'lal la nnrtap rlci relsritti roni<f.i di l nnfiottrs-innc doll'srca q,FR della RAM

registro PORTAA rimane confi-nrrretn rnmc linp,a r-li uscita. I

registri PORTAA e PORTAB,

insieme ai loro associati TRISA

e TRISB, occupano gli indirizzi 5e 6 di entrambi i banchi della

memoria, come si vede nella

figura.

Prima di Iennprp o scrìvere Ie

informazionì in una periferica,

dobbiamo confi gurare adegua-

I:l

BUS TNTERNO DEt DAT| 8tI

F---F FFF-FFFFÈoNrO \CÈOàQN-O

LINEE O PIEDINI DI I/O

Ogni registro dr scambio d'informaztone, PORTA A, e PORTA B, ha associato un registro dt

configurazione TRIS A e TRIS B, rispettivamente.

LINEA DIGITALE DI USCITA

BANCO O BANCO 1

g***rrrllÍf Íf lllllllti:srzrììlìiìì:ì:ìll.:

Page 38: Microrobotica Monty Peruzzo Editore - 06 A - Microcontroller

P t8rytzlzv,{tlM&}M,llrrlrf *i\\\ìss{.wj,

*w. t r, r*./.,.g*i-r..!.j:irilririr.itt tTt%r# Porfecon il

MIGROCONTROLTERper il trersferinrento d'inforrnozionimondo esleÍno

5i desidera configurare come ingressi le linee RA4, RA3, RA2, e RAI della PORTAA, mentre la linea RAO deve funzionare come usrita. Realizzare il programmacorrispondente.

5i deve caricare nel regisiro di configurazione TRISA il valore binario "xxx11t10", I tre bits di maggior peso di TRISA non hanno significato né funzione, dato the la

P0RTA A dispone solo di 5 linee. Scriveremo in quefi registri tre zeri, in modo che il valore da caricare sarà "000111'10", che corrisponde al valore 1!H. ll programma

richiefo dovrà scrivere 1EH nell'indirizzo 5 del banco 1, dove è indicato TR|SA.

N0TA: in assembler i valori esadedmali si scrivono dhettamente preceduti da 0x.

TRISA.,. ,.... EQU. ..0x05.. ......;fetichetta TRl5Acorrisponde all'indirizzo 5H

5T4T0.,. ..,.EQU. ..0x03,. ......;lletichettaSIAT0corrispondeall'indirizzo3H

8f...,,. ,,..5TAT0,5 ...;Bit5diSTAT0=1{RP0='t}.5iacredealbarco!

Movlw... ....0x1e. ....,;SicaricaWconlEH

Movwf... .,..TR|SA. .,,.;ll valoreWsi caricainTRlSA

Al momento dell'atcensione del PlC, o in caso di reset, tutti i bits de' registro di configurazione TR|S vengono posti a t, il che signifita che tutte le linee delle porte

rimangono inizialmente configurate come ingressi,

Preparare uî programma per configurare tutte le linee della porta A come ingressi e le linee della porta I come uscite,

Dovremo scrivere nei 5 bits meno siqnificativi di TRISA un I e in tutti i bits di TRISB uno 0.

Bsf,.......,...5TAT0,5 .,.. i RPO= 1, peractedereal banco 1

Movwf...,.....TRlSA. .......;ll valoredi Wsi sciveinTRl5A

Movlw...,...,.0x00. .. ,...,;Wsi carira con 0

l^ :^ ^^ -^rianle lp o.,,t r si i"t.'eI scono lel-r r Ll lr llrr I r\/tutrr\ ,L llvu | )l I Cr !

nfo.rr.rzinn dinilali dcf'npnnn nli ,.nresci e le uSCite.

Realizzata la conf gurazione delle inee l/O scrivendo net

'pcist' TRIS nèr nÒ'tzrp :l nrnreccnro''in'Oranazione.^^ a."i',1

^î r'nî aar'{6t1,1 2 d'innreccn rnl on.,Llltr c'lvo Ud U ld Pcll,!.'!u J I yr Lqdld d i-rlrl

r.1 rr-: nnr+: dnhhiàmo cO'o lenOprp I r-nrler_tO delv ,LvYri

ranicrrn rli arroctr ^^"1a, OSSia, PORTAA O PORTAB.rY,JLr v

A contrario, se si deside'a po'tare da processo.e il

va ore dell'rnformazione digrtaie ad una penfer ca di

usc ra coi egata al oin d -na porra, conI gurata co-euscita, basta scrvere il suddetto registro con lva ore da

tr:qfor ro Por lonnoro I COntenUtO df Una pofta Cl'ln-nro<<Ò rho rnni cno .l rl^rÒ / hÒ l. ^^.'{^.i..,,- .- , - . drure Llle ld Uel llel lLcl CO" SpO'-dente vi ha deposrtato, si utiiizza l'istruzione " movfPORTAA,\/", con la quale r dato presente nelia porta

passa a reg stro w.Per spostare un dato verso una porta d'uscita, prma

s ca';ca qL,est'- I ro rel reg slro W e dopo s esegue'rstruz one "rnov\r/f PORTAA" ll valore contenuto n Wviene spostato sui a PORTAA e le linee d uscita corri-spondenti portano verso rl mondo esterno i bits corri-spondenti

Page 39: Microrobotica Monty Peruzzo Editore - 06 A - Microcontroller

CaratteristichedetteporteAeBi ,r1 1::1.;iilgi .'i

Questa porta ha solo 5 linee digitalì che st collegano

con l'esterno mediante cinque pìedini denominati RA0,

RA1, RA2, RA3 e RA4. Essi occupano le posizioni supe-

riori delle due file di cui è composto il contenitore del

PlC16FB4, come mostrato nella figura.

Le informazioni che entrano ed escono da questi

piedini passano temporaneamente nel registro POR-

TAA, che occupa I'indtrizzo 5 del banco 0 dell'area dei

registri specifici SFR della RAM. Inoltre per configurare

come ingresso o uscita ognuna delle linee di questa

porta disponiamo di un registro chiamato TRISA, che

occuoa la posizione 5 del banco 1 . Come ricorderete. se

in un bit del regrstro TRISA si scrive un 1, la linea della

porta A corrispondente f unzionerà come ingresso, e se

si scrive uno O funzionerà come uscita. Ogni linea della

porta si configura in modo indipendente, per cui nella

stessa porta potremo avere contemporaneamente llnee

di ingresso e di uscita.

ll piedino RA4 è speciale, dato che oltre a compor-

tarsi come una trpica I nea di l/O, si puo programmare

perche serva come ingresso di impulsi esterni per il con-

trollo del timer TMR0, che studieremo più avanti.

'i.,È r.i,i'r -i'

Él Í;.r i liT ;i {" :'ì 11 ri' il i: i'ì :{ il È'+ 5

Le ìinee RAO-RA3 accettano livelli di rngresso TTL e

CMOS. Nella figura della pagina seguente è mostrato rl

circuito elettrico di adattamento di questt pin con le

linee di controllo e con quelle del bus dei dati del pro-

cessore, Leggere una linea della porta A significa cattu-

rare il livello logico che essa ha in quel momento, e que-

sto viene fatto ogni volta che si esegue l'istruzione"movfw PORTAA". Al contrario, quando le linee della

porta A lavorano come uscite, lo fanno tramite il latch

interno, che mantiene stabìle nel tempo l'ultimo valore

caricato in PORTAA.

Come sì puo vedere dalla figura, per portare un

livello logico su una linea della porta A, prima vlene

scritto nella linea corrìspondente del bus interno dei

dati e viene attivato il segnale di WRìTE, il quale per-

mette la scrittura di questo livello sul flip-flop dei dati.

ln questa situazione il flip-flop di configurazione

dovrebbe contenere un livello 0, ìn modo che si com-

porti come un'uscita. Con questivalori Ia porta OR avrà

uno 0 alla sua uscita e la stessa cosa succederà alla

porta AND. Questi valorì ortgineranno la conduzione

del transistor PMOS superiore e l'interdizione di quello

R/42-

NMOS inferiore. In queste condizìoni il pin

di l/O resterà collegato a VDD e quindi avrà

livello alto.

Dato che la linea dt uscita è "lecciata"

(cioè e comandata da un latch) conserverà il

suo valore logico sino a che non scrlveremo

nuovamente sul flip-flop D.

Se una linea funziona come ingresso,

quando si attiva il segnaie READ il livello

logico depositato ìn essa dall'esterno, passa

alla linea corrispondente del bus interno der

dati, e il dispositivo ad alta impedenza che li

unisce diventa conduttore, Dato che il pin è

programmato come ingresso, i due transi-

stor MOS rimangono bloccati, e la linea di

uscìta passa ad alta impedenza. Quando si

legge un piedino, si rileva il valore che ha in

quel momento, e non deve essere memoriz-

na*r J?gìr

sRA4/TOCKI$ I

ff'

Posizione dei piedini della porta A

$ii{Ft:Èe.l;rliìì,11ì,ììì,ìììrì1rìuuuuuuuttììììrìùrrr: : .rrl -lrlrìlììuììì.ìiirllr'llllllllllìììììì:llrlllllilrllrlìlìì

.-{ÉEl

l

í C*l ,tÉi.s:i +eli ì

Page 40: Microrobotica Monty Peruzzo Editore - 06 A - Microcontroller

'l

LINEA DEtBUS DEI DATI

WRSCRITTURA

PORTA A

WRSCRITTURA

TRIS A

zato nel flip-flop dei dati. f informazione presente nellalinea d'ingresso, deve già essere presente al momentod'rnizio del ciclo di istruzione, e deve mantenersi stabi-le durante tutta la sua esecuzione.

È formata da otto linee che comunicano con l,esternomediante i piedini RB0-R87.

ll registro di l/O contiene le informazioni che si scam-biano con le periferiche, sr chiama PORTAB, e occupa l,in-duizzo 6 del banco O. I bits del registro associato TRISB

servono per configurare le linee di questa porta comerngressi o come uscite (1: ingressi e 0: uscite) ed e situa-to ali'indirizzo 6 del banco 1 dell'area SFR della RAM.

Come succedeva con ia porta A, anche la poria B

lra una linea speciale che ha multiplexate nel tempodue funzioni possibili. Si tratta della iinea RB0/tNT cheoltre a funzionare come linea dr l/O normale, puo fun-zionare come linea di ingresso dr interrupt esterno perl'hardware. Se si programrna questo piedino per fun-zionare come inqresso di interrupt, oqni voita che lc si

RB2

-rRB3

-i"

{RA3:RAO)

BUFFERINGRESSO

TTLVssE

RDLETTURA TRIS A

RDLETTURAPORTA A

Circuiteria interna che collega i piedini RA?-RA3 con le linee di controllo e il bus dei dati interno al processore

i,*í,,,

,Llììì1.

l',]ììì

*rtl..:tj:rf

RBO/INT

-)RBI <-; -RB7<-* RBó

-*tt

Voo

Drstrtbuzione dei ptedini della porta B

Page 41: Microrobotica Monty Peruzzo Editore - 06 A - Microcontroller

t,,

attiverà tramite un livello alto, verrà generato un inter-

rupt.

A tutte le linee di questa porta è possibile collegare

delle resìstenze di pull-up di valore elevato. collegate a

loro volta al positivo della tensione di alimentazione. Se

si vuole realizzare questa connessione dobbiamo met-

tere a zero il bit RBPU# che c'è nel registro specifico

OPTION della RAM. Quando si produce un Reset ven-

gono scollegate tutte le resistenze di pull-up, e tuttì i

piedinì della porta B vengono configurati come ingres-

si, come succedeva con la Porta A.

BUs DEI DATI

WRSCRITTURA

PORTA A

RDTETTURA PORTA B

DAGLIALTRIPINRB7:R84

Le quattro linee piu significative della porta B (RB4-

RB7) insieme. possono svolgere un compito molto inte-

ressante e pratico, orientato alla gestione delle tastiere.

Le tastiere matriciali hanno i loro pulsanti dispostì nella

confrgurazione di quattro file per quattro colonne. Per

rilevare l'attivazione di un pulsante e individuare quale

sia questo pulsante, si collegano le quattro file della

tastiera ai oiedini RB4-R87.

Le quattro colonne si collegano agli altri quattro pie-

dini della porta B (RBO-RB3), in modo da introdurre un

lìvello logico alto in modo sequenziale, uno dietro l'al-

tro. L'attivazione di un pulsante permette ìa comunica-

zione di una fila con una colonna, pertanto si avra un

P (pull-up)

(RB7:RB4)

Colleqamenti clei piedini RB4-RB7 can le lrnee di cantrollo e quelle del bus dei aati rnierno al processore

Page 42: Microrobotica Monty Peruzzo Editore - 06 A - Microcontroller

livello alto, sia sulla fila che sulla colonna dove e srrua-to il pulsante premuto.

Si possono programmare i quattro piedini piu signi-ficativi della porta B, in modo che se uno di questi cam-bia il suo stato logico viene generato un interrupt.Quando si attiva un pulsante, cambia il livello logico diun piedino e si genera un interrupt, la cui routine indi-vidua il pulsante premuto conoscendo la fila e ta coton-na che sono passate a livello alto.

ll circuito elettrico di adattamento dei piedini RB4-RB7 e abbastanza complesso, ed e mostrato nella figura.

I predini RB6 e RB7 inoltre hanno una funztonespeciale, durante la funzione di scrittura del program,ma nella memoria FLASH. La scrittura in memorra sr

realizza inviando le informazioni in modo seriale tra-mite il PC, per cui sono necessari il segnale di clock eilvalore binario di ogni impulso, ossia dei dati in serie.ll piedino RB6 riceve il segnale di clock e RB7 l,ingres-so dei dati.

I , :' ,"',I

Ogni linea d'ingresso puo erogare una corrente il cuivalore massimo arriva a 20 mA, mentre un,uscita puoassorbire fino a 25 mA. Dato che esiste una limitazionenella dissipaztone massima della potenza del chip, l,as-sorbimento massimo di corrente della porta B e limita-to a 150 mA, mentre l'erogazione massima è limitata a

100 mA. La porta A, con meno linee, raggiunge la cor-rente massima di assorbimento di B0 mA e 'l 50 di ero-gazione.

Le tastiere piu comuni, impiegate nelle applicazioni conmicrocontrollori, dispongono di l6 tasti, numerati da 0a F e disposti in matrice di quattro file per quarrrocolonne. Ogni volta che si attiva un pulsante il proces-sore deve riconoscere jmmediatamente quale sia statopigrato La possibilità di generare un interrupt quandovaria lo stato logico di una delle quattro linee più signi-ficative della porta B, semplifica la rivelazione dellatastiera, per questo si collegano, come rndica la figura,le quattro linee meno significative della porta B con lequattro colonne, e le quattro file con le linee RB4-RB7della porta B.

Le lrnee meno significatrve della porta B vengonomesse a uno in modo sequenziale, in modo che inogni momento ci sia una linea a livello logico alto.

Se non ci sono pulsanti premuti le file sono scolte-gate dalle colonne e il livello logico alto inviato alle filenon puo passare alle colonne, di conseguenza noncambierà lo stato di RB4-R87.

Premendo un pulsante, ogni volta che la colonnacorrispondente a questo pulsante invra un Iivello logi-co alto, questo passerà alla fila associata e cambieràstato uno dei quattro piedini piu significativi dellaporta B, gene.ando un inte'rupt.

La routine dell'interrupt verifica ia f ila da cui arriva il

livello logico aito e la colonna da cui e partito, perdeterminare il pulsante che è stato premuto, in praticaquello che si trova all'incrocio fra ia fila e la colonna.

:

RBo 6

ffiRB2 8

RB3 9

RA2 1

-

+Vcc 'nqs 2

^

Ptc r óF84

IASTIERA MATRICIAIE 4x4

Circuito per gestire una tastiera con le linee della porta B

Page 43: Microrobotica Monty Peruzzo Editore - 06 A - Microcontroller

P2l

Paro [a di confi gura zion e

e identifi cazione

I

istruzioni - che è l'unìca cosa che sa fare - e

necessaria la presenza di un clock, il cui

impulso determina la velocità di lavoro.

', ,' L'oscillatore che genera questi impulsi è

implementato dentro il circuito integrato, pero, per

regolare, selezionare e stabilizzare la frequenza di

lavoro, dobbiamo montare esternamente alcuni com-ponenti, fra i piedini OSC'l/CLKIN e OSC2/CLKOUT,

che corrispondono rispettivamente ai piedini 15 e 16

del contenitore.Un'istruzione impiega normalmente 4 periodi di

clock ad essere eseguita, e se sitratta di un'istruzione di

salto, impiega il doppio.

Secondo il tipo di componenti esternì che montere-mo, si configurano quattro tipi di oscillatori:

Tipo RC: è un oscillatore di basso costo poco stabi-

le. Necessita solo di una resistenza e di un condensato-

re esterno.

b.tr*}H

4t

Fotografia di un cristallo di quarzo e parte di un circuito nel quale è montato

Page 44: Microrobotica Monty Peruzzo Editore - 06 A - Microcontroller

,#.2l

CRISTAL

Schema generale dell'interfaccia del cristallo di quarzoe dei condensatori esterni. La resistenza RS si utrltzza solo nella versione spectale ad alta frequenza

TIPO HS: e un oscillatore ad altavelocità molto stabile. Funziona a fre-n rcnTP .nmnroqo rra 4 e 20 MhZ.Utilizza un cristallo di quarzo o un riso-

natore ceramico, collegato a due con-densatori di disaccoppiamento.

TIPO XT: impiega anch'esso un cri-stallo al quarzo o un risonatore cerami-.o colleoato ad rrn condensatore.L:vor.: in frpnrronzo modio .^mnrp<a

tra '100 KHz e 4 MHz.TIPO LP: lmpiegato in applicazioni

a basso consumo, quindi per basse fre-quenze - infatti a maggiore velocità si

ha maggiore consumo -, usa cristalli orisonatori e le frenrenze di lavoro oscil-

lano tra 35 e 200 KHz

Nella figura si mostra lo schema

degli oscillatori HS, XT e LP che usano

un cristallo di quarzo e due condensa-tori di dìsaccoppiamento, il cui valore è

specificato dal fabbricante in f unzioneeloll: fronrronz:

é3, *=s$j, g *3 *.{" àj g,lE

-**StEtLeè==*#E

lmpiegando alcune porte logiche TTL

molto spmnlici si nnssono costruireSchema elettrico dell'oscillatore di cristallo a risonanza parallela

+F + :,ìÈ E €i4 +:$ $ .€ e+ *.t :*, $'# t*É ÈH +ÉÉj+ iÈ'* *+É

Page 45: Microrobotica Monty Peruzzo Editore - 06 A - Microcontroller

MIGROGONÍROLtERRipaero dei, concelti sullei frequenzc di

ut '

330ko AGII ALTRIETEMENTI

74ASO4 74ASO4

XTAL

"t'. iln, i,

:i+irit+;;:;:'..-:.r+î:::Ì:;ti::::iiìl.iljiia:i::ai;ii1:,Ì:tii!r'r:':*;

Schema elettrico dell'osctllatore di cristallo a risonanza seriale.

oscillatori che hanno un otttmo comportamento e

un'ampia gamma di frequenza. Ci sono due tipi di oscil-

latori al quarzo: a risonanza parallela e a rtsonanza in

serie.

lì circuito oscillatore con risonanza parallela illustra-

to nella figura oscilla aìla frequenza deì cristallo che

incorpora. La porta invertente 74A504 realizza un'in'versione di fase di 180'

ll circuito oscillatore a risonanza in serie - il modello

nportato nelia figura - permette un'elevata precisione

nella generazione della frequenza, che e determinata

Oar crlStallO 0r QUafZO.I

: ,. :., ir'=li'i.ii.r:; i-:,i 1;i,1,;{!ii:-jÈi+ j;1.{r-ririli

: Risiede all'indirizzo 2007N della memoria FLASH, che è

r,serva'la pe' un compito speciale, infatti e accessibi e

, solamente durante il processo di scrittura del program-

, ma nel PlC16FB4.. OLresta reoistro di 14 bits riceve la denominazione di: "Parola di configurazione". Quando viene scritto il pro-

13-

PAROLA DI CONFIGURAZIONE

330ko

PROTEZIONE DELTA MEMORIA

TEMPORIZATORE "POWER-UP"

WATCHDOG

TIPO OSCTU.ATORE

Distribuzione dei bìts nella parola di confiqurazione con i quattro campi che la compongono

+ia"ÈÉl!.tli!i;r;,ì+ +i++iÌ :::+i:l+..*'4,;,.+3fla':i *t;a;iìi ,'f 1.'1qq+.+11:11;+ # ii ti+ r*+ l*i ;rf sii:'Èr:iÌ È"i:É *í gÈÉi+

Page 46: Microrobotica Monty Peruzzo Editore - 06 A - Microcontroller

gramma dell'applicazione, dobbiamo memorizzare inessa un determinato valore binario che andrà a definirealcune caratteristiche fondamentali del funzionamentodel microcontrollore.

La parola di configurazione ha 14 bits che si divido-no in 4 campi. ognuno dei quali controlla una caratte-ristica del comportamento del PIC:'1. Campo dei bits che selezionano il tipo dì oscillatore.2. Campo dei bits che controllano il Watchdog.3. Campo dei bits che controllano il temporizzatore di

"POWER-UP".

4. Campo dei bits che controllano la protezione dellamemofla.

Quando sr memorizza un programma df applicazione inun PlC, bisogna scrivere la parola di configurazione, e inuno der suoi campi dobbiamo specificare il tipo di oscil-latore fra i quattro possibili, con cui funzionerà il micro-controllore.

A questo scopo sono riservati i due bits meno signi-ficativi di questa parola, che si chramano FOSC'1 e

FOSC0, nei quali bisogna scrivere i codici indicati nellatabella per specificare l'oscillatore utilizzato.

In molte situazioni, il fabbricante o i progettisti di unprodotto governato da un microcontrollore, non voglio-no che si conosca il programma e i dati presenti nellamemoria. In altri casi questo non è importante, quindisia il programma che i dati possono essere letti.

| 10 bits di maggior peso della parola di configura-zione sono denominati CP (Code Protection) e0 nannoil compito di proteggere o meno l'accesso alla memoriadei codicì.

Se si scrive un 1 nei bits CB la memoria sarà spro-tetta, e si potrà leggere liberamente. Nel caso che i bitsCP siano a 0, il programma non si potrà leggere, evi-

tando le copie. Owiamente il programma non si potrànemmeno sovrascrivere, né sarà permesso l'accesso allamemoria EEPROM dei dati.

Se si prova a modificare i bits CP passando da 0 a 'l

si provoca la cancellazione completa della EEpROM.

i. i'.!.,1,"i')ì,i;; i, 1 ; I i-1 i. i ,-rrr i :" i:t: iti ' !,::

ll WTD o Watchdog Timer, è un temporizzatore cheserve per controllare che il corretto sviluppo del pro-cesso di elaborazione delle istruzioni avvenga secon-do una determinata cadenza. Se per esempio, il pro-gramma entra in un ciclo chiuso da cui non riesce piùad uscire, il Watchdog si attiva e resetta il program-ma.

La parola di configurazione dispone di un bit chia-mato WTDE che controlla il Watchdog. Se WTDE = iil Watchdog è attivato e controlla l'elaborazione delleistruzioni, Se WTDE = 0 il Watchdoq è disattivato.

ll lemporizzatore Power-Up controlla un tempo fissodt 72 ms e serve ad evitare problemi durante il colle-gamento iniziale della tensione di alimenTazrone alm icrocontrollore.

A volte la tensione di alimentazione, nel momen-to immediatamente successivo all'accensione, è

instabile e conviene ritardare la sua applicazione allacircuiteria interna del PIC sino alla sua comoleta sta-bilizzazione.

Nella parola di configurazione il bit pWRTE# si usaper attivare o disattivare il temporizzatore Power-Up,che ritarda la connessione dell'alimentazione esternaalla circuiteria interna.

. ': - : , : :

Similmente a quello che succede con la parola di confi-gurazione, a cui è riservato I'indirizzo 2007H dellamemoria di programma, esistono altre quattro posizio-ni che sono riservate per le parole di identificazione e

che occupano gli indirizzi dal 2000H al 2003H. Nonsono accessibili durante il funzionamento normale delPlC, e possono solo essere letti o scritti durante il pro-cesso di memorizzazione del programma.

Nelle parole di identificazione sono solo validi i 4bits meno significativi di ogni posizione da 14 bits.Esse sono utilizzate per immagazzinare codici di iden-tificazione, numeri di serie, chiavi segrete, dati di fab-bricazrone, numerì sequenziali eccetera.

RC,| I

XT 0 I

Page 47: Microrobotica Monty Peruzzo Editore - 06 A - Microcontroller

It temporizzatore TMRO

_ { ella maggior parte delìe applicazioni inlÉÉd, iii?

- " " cui intervengono dei microcontroller tro-

L.r - viamo dei procedimenti e dei compiti in" = cui e necessario controllare il temno Per.'-'.-- lar fronte a questa esigenza si puo istrui-re il nronrio nro.essore mediante un semnlire oro-"Y"' Y'gramma, che inizi caricando un valore in un registro,e noi lo derrementi sino ad arrivare a zero. Se con un<olo rpni<lrn nnn ci ottipno il tpmnn dpqidorî+^ c^ ^^)VlV lq9l)LlV llVll )l VLL,!,,L v!J,vúrOLV, )E llE

possono concatenare diversi, in modo che quandouno arriva a zero, decrementi di una unita il successr-

vo e ripeta il ciclo. Questo procedimento è moltosemplice e molto preciso, perche conoscendo il

numero di istruzioni da eseguire, si deduce il tempo+^+-l^ ^^-^^'-'r^ -! pspnrrirp il ricln rnmnlglg.lultru I rrt r))dt tu du E)qvuI E il LtLtu LUI tP

L'inconveniente principale nel dedicare il proces-

sore a compiti di cronometro, è che vengono ipote-' r rta lo cr ro ricnrca nor roalizzzro allro tLdre re 5ue r5ur5u,-, lpefazlonl,

inoltre non potrebbero essere gestiti gli interrupt,perche significherebbe fermare il conteggio deltcmnn I lomnorizzatori sonn disnositivi hafdwareausiliari integrati nel microprocessore, e sono dedi-catr alla misura del tempo, scaricando da questoi:irnrn il nrnrpccnrp

i . r-: '." :- i" Àì; r aj :. I r; ::fl ilí fl+4-: iii.+";Lllè"i"{"t f.; L'

':u

È un contatore di n bit che si incrementa o decrementaognì volta che riceve un impulso di clock In caso di

Coricore un registro con un volore

De*emenfore il registro

Registro=Q

per il controllo del tempo medrante tl decremento di un regrstro

FINE

i:

ruIMPULSI DI CTOCK

-:

SEGNALATORE

I temporizzatoil sono contatori che si incrementanoo detremenlans 1sn gli impul>i dr clock. dispongono di ,,tn bit di seqnalazione che va a I al termine del conteggio

$eeep+r€.*#*Eru# d## Èeeeep+r'$Hm#*.wsE

Page 48: Microrobotica Monty Peruzzo Editore - 06 A - Microcontroller

CARICO DEt VATORE INIZIATE

j-1_ft__[aINGRESSO DEGLI IMPUTSI

Schema e funzionamento del temporizzatore TMR0.

dpcrpmento orando il valore del contatore arriva a

zero, viene attivato un bit ausiliario che funzionacome segnalatore, o "f lag", e va a 1 avvisando del-l'accaduto. In caso che il contatore incrementi il suo

valore con gli impulsi del clock, quando supera il

valore massimo e arriva I'impulso che fa passare i

bits del valore di conteggio, da tutti uno a tutti zero,

il segnalatore va a 1 come indicato nel disegno.ll grande vantaggio di utilizzare temporizzatori, è

scarica're il processore dai compiti di controllo del

tempo. Se rl processore vuole sapere quando il timerha terminato il suo conteggio, deve vigilare sulla

messa a uno del segnalatore o flag. Questa conti-nua esplorazione del flag sottrae tempo di esecu-

zione al processore, per questo esiste un'altra possi-

bilità più immediata e chiara, che consiste nel pro-

durre un interrupt ogni volta che il contatore finisceil suo ciclo.

' .,.,,',,,..i,;.-, t.r,,, ',',t:'.: :.i: '',1 ,:.r.'.,,

Questo modello di microcontroller dispone di vari

temporizzatori integrati nel chip. Un paio di questidispositivi sono utilizzati per ritardare di un tempocostante la messa in marcia del PlC, durante la prima

accensione o in caso di reset. Quelli che ci interessa-

no sono quelli programmabili, e che sono dedicati alla

misura del tempo all'interno dei compiti a cui è dedi-cato il microcontroller. Per ouesta finalità il PlC16F84

dispone di due temporizzatori da 8 bits: il TMR0 cheè di utiìizzo generale e il WDT, Watchdog Timer chevigila sul corretto tempo di elaborazione delle istru-zioni del programma, resettando il processore in caso

di anomalia.

t;.,tt ;,';,,;, it t:,.:: ...' ì. 1;..',,.'-1',;n,:.,,

"8

TMRO SEGNALAZIONEDI OVERFTOW

È formato da un contatore ascendente a 8 bits che puo

essere caricato inizialmente con oualsiasi valore e suc-

cessivamente si incrementa ad ogni impulso di clock,

sino a superare il valore massimo, cioè il passaggio dal

maggior valore di conteggio (tutti uno) al minore (tutti

zero). Quando ìl contatore passa dal valore FFH al valo-

re 00H si attiva il flag.

ll temporizzatore TMR0 può realizzare due funzioniprincipali:

1u. Temporizzatore o controllore del tempo. Ha il

compito di misurare il tempo fra il carìco di un valore

iniziale, e i successivi incrementi ad ogni ciclo di rstru-

zione (Fosc/4) sino al superamento del valore massimo,

o overflow, che puo essere rivelato mediante ìl flag oproducendo un interrupt.

2". Contatore di eventi. In questo caso ogni evento

che deve essere contato, è rappresentato dall'impulsodiclock che siapplica tramite il pin RA4/TOCKl. Se va in

overflow, il contatore mette il flag a 1 oppure produce

un interruot.Per fare in modo che il TMR0 funzioni come conta-

tore di eventi esterni, dobbiamo programmare il piedi-no RA4/TOCKl come ingresso, e caricare alcuni bits del

registro specifico OPTION con determinati valori. ll regi-

stro con il valore del contatore TMR0 occuoa l'indirizzo'l del banco O della RAM, mentre il registro OPTION - di

cui alcuni bits programmano il funzionamento del

TMRO - occupa l'tndinzzo 1 del banco 1 dell'area SFR

della RAN/.

Come vedremo in segurto, il registro OPTION dispo-ne di due bits che determinano il comportamento del

temporizzatore come contatore di impulsi. Uno di que-

Page 49: Microrobotica Monty Peruzzo Editore - 06 A - Microcontroller

nnÉ

BANCO O BANCO I

00

0l

02

03

ll contatore TMR) occupa l'indiilzzo 1 del banco 0e il registro OPTION, di cui alcuni bits programmano il funzionamentodel TMR), occupa l'indirizzo 1 del banco 1.

sti bits si chiama TOCS, e se vale 1 il IMR0 funzionacome contatore di impulsi, se vale 0 come temporizza-tore di ulilizzo generale. L'altro bit chiamato TOSE, sce-

glie il fronte attivo per il conteggio del segnale applica-

: to al pin RA4/TOCKl, con il quale si determinal'incremento del contatore. 5e TOSE = 1 il

f ronte attivo sarà orrello cli cliscesa e se_:-_ ^.

v, Yvr"v

TOSE = O sarà quello di salita.

. ,,',, . .

l

ln molte occasioni, sia il TMR0 che il

Watchdog devono gestire lunghi intervalli di+^m^^ ^ ^^-^--'+^Lc'pu, c rrsus>:rroì'ìo di aumentare il tempoche intercorre fra ogni impulso di clock, per

rlaroare ilncremenlo, e 0r conseguenza

aumentare la durata dell'rntervallo. Per far' fronte a questa necessità, si dispone di un

nlivicnro di {ronranZa pfogfammabile, Che

divide la frequenza di clock per i diversi valo-:, fl possr0rlr.

Abbiamo un solo divisore di frequenza, cre' -J^..^ ----agndto al TMR0 o alucvc E))ct c d))r

, Watchdog; per fare questa scelta disponiamodi un bit nel regLstro OPTION, chiamato PSA.

Se PSA = 0 il divisore di frequenza è applica-

to al TMR0, con il quale funziona come

Predivrsore, o Prescaler. In questo modo gli

impulsi del clock passano prima attraverso ìl

divisore di frequenza, vengono divisi per il valore scelto

e sono poi applicati al contatore TMR0 per ottenere l'in-cremento di valore. Gli impulsi del clock possono pro-

venire dal proprio oscillatore interno, con una frequen-

;:11 )%F- tffisf-***FW:^ffi*n,oPTtoN sErEzroNE RANGE

Schema interno del TMRj con

PSA

i bits di programmazione del registro OPTION.

Page 50: Microrobotica Monty Peruzzo Editore - 06 A - Microcontroller

24

za di Foscl4, o da impulsi esterni applicati al piedinoRA4/TOCKl. Questi impulsi passano al Prescaler che li

divide per un valore impostato dai tre bits meno signifi-cativi di OPTION (PS2, PS1, PSO).

Per calcolare il tempo che controlla il temporizzato-re TMR0, dobbiamo tener presente il valore caricato ini-zialmente e il fattore di divisione del Presca er, in accor-do ron la spnrrpntc formula:

vernano il comportamento dei temporizzatori TMR0 e

WDT; inoltre il bit RBPU# serve per collegare o menolo rp<iqton zo dr nrrll-r rn doll: nnrt: R I In :ltrn hit

INITFDG doridp 611;lp crrì il f rnn+n r1-ii,in nor l,intar_yuurL )dld ll llUlrLC dLLIVU pcl llllLCl-lInt a<tornn rho nni.. rnlJnar+n rllr narlrrupL sJrsr rrv !rrE vwLt d c))crc LUtìtr9dtu dtd PUtLdRB0/lNT. Nella figura è indicata Ia distribuzione e lanomenclatura dei bits del registro OPTION così comel: f r rnzinnp rhp nnnrrnn di esqi romnip a seconda del|||/|!9J!t

valore. che Ouo essere 'l o 0.

Temporizzazione = 4 . Tosc .

Valore caricato in TMRO .

Fattore di divisione delPrescaler

Valore da caricare in TMR0 =Temporizzazione I

(4 . Tosc . Fattore didivisione del Prescaler)

In qualsiasi momento si

nr ro lpc c e re il va lorc n rtr\en I p

in TMRO senza influenzare il

rnnteooin ner rrri si utilizzal'istruzione "movfTVlR0, W"che eariea ncl renistro di lavo-ro il vàlore del contatore nel

momento in cui sr esegue l'i-qtrrrzinno l\loll: f inr r". dall.Jrru4rvr,L. rrVUlO UEIIO

n:nin: nrororlonlo p rinnrl-:fnyuyil ru rL! ! llPwlLoLw

lo schema interno del TMR0, e

si ouo notare l'esistenza di un

circuito che ritarda di due ciclii rontpooio npr sinrrontzzare/ Y9 r"'L'

rl momento dell'incrementonrndnttn el:l <onn:lo ^c+^rh^PrwuvLLv uor Jqvrrors crrrr r I(,

TOCKI con il quale si produco-no gli impulsi del clock rnter-no. Quando si scrive il TN/R0 si

ritarda di 2 cicli il suo reincre-mento e si pone a 0 il divisoredi f "cnr tFnTà o Prpsr:ler.

i. t, ;1i';, rj-j,;j"Ti? r-i ij i'' 1'? i.,l i4

Ò r ro< ln ron i< t rn naar tnl lr nac i\{uLrLv rLVrJLrv vLLupd lC pU)l-

zione ldel banco l nell'areaSFR della RAM, che ha il com-nitn di rontroll:re le risorse del

microcontroller. I bits di

OPIION, principalmente go-

P50

0I0I0I0I

OPTION

Divisione delTMRO

1:2l:4l:8I:lól:32l:64l :128l:256

Divisione delWDT

l:ll:2lz4l:8l:lól:32l:64l:128

o_:::' ! i 1

i : :?' ly' a, ? :' ! ::^ l :-' b',!: :n'': l

P52:P50 Vqlori con i quoli funziono il divisore difrequenzo

PS2

0000IIII

PSA:

TOSE:

TOCS:

INTEDG:

RBPU#:

P5I

00II00II

Asseqnozione del divisore dil= lllivisore di frequenze si

0= ll divisore di fre{uenze si

Tipo di fronfe in TOCKIl= Incremento di TMRO con fronte di disceso0= Incremento di TMRO con fronte di solito

Tipo di clock per il TMR0l= lmpulso irì inqresso dq TOCKI0= lmbulso di clóck interno Fosc/4

Frole ottivo per interrupt esternol= Fronte di lolito0= Fronte di disceso

Resistenze di pull-up Porto B

I = Scolleoote0= Colleg"ote

frequenzeossèqno o WDTosseéno q TMRO

(contotore)(temporizzotore)

É -+ È g"++i+ e";=a++ +r :.it,gs +S r.+.* É È1+resc 5+ i+ rÈ :ÈiH ÉÉ *+È {i' lil

Page 51: Microrobotica Monty Peruzzo Editore - 06 A - Microcontroller

j

MICROCONTROLLERll Ytfcrfchdog

Un caneche morde

Qcre-sto e Arbo, un cane mtcrorobat castruita dalla Sony, che sa anche morclere. E una mascotte dtsegnata

D-or coloTo che abitano rn città, e non devc:rtt,t preoccuparsi di portare tl cane a spasso, dargli da mangtare, evitare che abbai di rtatte ecc

PuÒ capire 14 messaggt, o ordtni del padrr:ne, rrnpara percl'te

è senstbile alle carezze e ai castrgttt. Gioca con la palla, segue rl paclrone, abbara, dice rl suo nome, alza la zampa quando fa prpì ecc.

Cort la sua telecamera vtgila -o rnorde li estraner, e non ha ntente a che vedere con tlWatcltcloq cite contiene rl PIC e che dev-. solo resettare rl mrcrocontroller, quando ll programma di lavoro non è eseguita normalmente

.{..,,:3.t:;:':..::.:: :

ì.,,ìr'

=.!: .,

rt4tsf!!.rrrì1l11lrr1rrìr1ì1ìì1ìììììììììììììrì:rr....tt........:aN\t\ttttnt4\

{r|-ràF-,',,..r:ìrì jì!i*.:r:;,

#È-

Page 52: Microrobotica Monty Peruzzo Editore - 06 A - Microcontroller

(Watchdog Timer) è un contatore ascendente a

B bits che ha Ia proprietà di mandare il micro-

+ controller in reset ogni volta che va in overflow.. n differenza del TMR0, il Watchdog non dispo-

ne di segnalatori, ne genera interrupt alla fine del ciclo,

l'unica cosa che fa e provocare il reset del microproces-

sore, il quale ricomincia ad eseguire il programma prin-

cipale dalla prima istruzione 0000H della memoria dei

codici (Vector Reset).

L'obiettivo del Watchdog è verificare la corretta ela-

borazione delle istruzioni del orooramma. Se tutto va

lNtzlAlrzzAztoNE (RESET)

INIZIO TEMPORIZZAZIONE WDT

ESECUZIONE DELLE ISTRUZIONI

FINETEMPORIZZAZIONE

WDT

ESECUZIONECTRWDT

{cANCErrO WDT)

bene, prima che il Watchdog termini ìa sua temporiz-zaztone, il programma gli fornisce un'istruzione che locancella e reinizia ìl conteggio, in altre parole effettuaun "refresh". Se il programma si è "piantato", e non

sono state eseguite le istruzioni secondo le previsioni, il

programma non fornirà l'istruzione di refresh, di con-

seguenza il WTD andrà in overflow e verrà generato un

reset. Con quest'azione si ottiene che il microcontrollerinizi nuovamente il programma, ed eviti la causa del

blocco. Un programma si puo bloccare perche, ad

esempio, entra in un ciclo infinito, o perché necessita di

un segnale per uscirne che non arriva, ecc.

Nell'organigramma di attuazione de

Watchdog si osserva che alla fine della tem-porizzazione del WDR si esegue l'istruzione"clrwdt", si cancella il te'nporizzatore e rico-

mincia il conteggio. Se non si esegue questa

istruzione, qualcosa non ha funzionato, quin-di si npnpra rn reset. Per controllare il

Watchdog si aggiunge l'istruzione "clrwdt" in

certi punti del programma su cui si vuole vigi-t^-^ . ^^ ^, ,^-+î i-*.,,:ione il contatore tornatdtE. LUt | \-1uE)Ld r)u uz

a 0 e inizia il conteggio, evitando l'overflowSe il programma non è eseguito normalmen-te, l'istruzione "cìrwdt" non arriverà in

tempo, il WDT andrà in overflow provocandoil reset del sistema, come nmedio per supera-

re l'anomalia.ll refresh o reinizio del conteggio del WDl,

si puo produrre anche quando si esegue I'i-strr rzione "sleen" che serve ner norre il PIC inJ|!!y,

uno stato di basso consumo, fermando I'oscil-

latore interno e sopprimendo l'elaborazione

delle istruzioni. Anche se il WDT si cancella

con l'istruzione "sleep", non si ferma, a meno

che non venga fatto da programma.

:, ,,,".' . ' '' : ,

ll Watchdog si attiva e si disattiva con il valore

del bit WDTE della Parola di Configurazione.come abbiamo visto in precedenza.

La frequenza di lavoro di questo temporiz-zatore e sempre interna e indipendente, origi-nata da un oscillatore RC proprio. Quando si

assegna il Divisore di frequenza al Watchdog,questo lavora come postdivisore, al contrariodi come lavora con il TN/RO. In questo modo

b

tlO

Organigramma sull'attuazione del Watchdog. Se il programma si eseErue

normalmente riceverà in tempo l'istruzrone clrwdt e non deborderà. Se qualcosa

va male, o questa istruzione non arriva in tempo, verrà generato un reset.

Page 53: Microrobotica Monty Peruzzo Editore - 06 A - Microcontroller

ilTICROCONÍROLLER

IMPUTSI DI CLOCKPER TMRO

TOSC

ArrrvATo/DISATTIVATO

WDTE(PAROLA Dr CONFTGURAZTONE)

Schema interno del funzionamento del Watchdog.

gli impulsi che genera il WDT passano al Divisore di fre-quenza, che li divide per ilvalore che selezioneremo con

i tre bits meno significativi del registro OPTION.

Se il bit PSA neì registro OPTION e a 1, il Divisore difroatanza si annlir,a al WDT. E curioso notare che il

Watchdog non dispone di nessun registro nell'area SFR

della RAM.

La ragione si deve al fatto che non si carica con

alcun valore iniziale, iniziando sempre da zero sino al-

l'overflow.Ogni volta che clrwdt produce un refresh torna a

zero e inizta a contare nuovamente. Nel registro STATO

esiste un bit chiamato TO# che passa a valore 0 quando

il WDT va in overflow, così discrimina il motivo per cui

e avvenuto il reset.

ll temporizzatore WDT è preprogrammato per control-lare un tempo di 'lB ms, pero regolando il Divisore dr

8-

Ps2.Pso7ffiKAt TMRO

ffi PsA

/l

OVERFTOW WDT(RESET)

frequenza si puo fare in modo che questo tempo si elevì

fino ad un massimo di 2,3 secondi.

ESEMPIOln un programma si desidera controllare che un deter-^;^^+^ -;-t^ -^^^^sto da 200 istruztoni normaliI Ilil IA LV ttllWt lvt r lPV

senza nessuna di salto, sia eseguifo esattamente 100

volte. Si lavora con un PlCl6FB4 con un crtstallo diquarzo a 4 Mhz e si utilizza il Watchdog per controlla-re questo tempo, che può essere critrco nell'applìca-ztone.

ll controllo del tempo del ciclo, richiede di postzio-

nare davanti allo stesso un'istruzione "clrwdt", che

resetta il Watchdog e inrzializza la sua temporizzazio-ne. Al termine del processo di 100 ciclr, collocheremonel programma princrpale un'altra istruzione di refre-sh del Watchdog. Con quale temporizzazione si deveprogrammare il Watchdog, per ottenere un reset nelrtca ciz .t t^Òra+^ il famnn rha imniaaa il rirl^ 1A ^..^Ld)u )/d JUlJcldLU ll Lcl t tPw rt tc u t tPtcva // L/!ru ou cJ)c-

ro o<aattitn 1îtît rrnlfo?

Page 54: Microrobotica Monty Peruzzo Editore - 06 A - Microcontroller

P26

CLOCK PER TMRO

PSAATTIVAZIONE

DEt WDTwDrE)

OVERFTOWDEL WDT

Bits del registro OPTION che intervengono nel comportamento del Watchdog.

SOLUZIONE

Dato che il ciclo consta di 200 istruzioninormali, iltempo che dura ogni istruzione sarà:

Ciclo lstruzione= 4. Tosc = 4.250ns = 1.000 ns = 1 !sTempo dì Ciclo = 200 Ciclo lfruzione = 200 . 1 ps = 200 ps

TempoTotale = 100 Tempo di Ciclo= 100. 200 ;rs=20.000 ps = 20 ms

ll WDT deve essere programmato per andare in over-flow 20 ms dopo il refresh. Gli impulsi per il WDT sonogenerati dail'oscillatore RC interno, proprio e indipen-dente dal orincioale.

Con l'obiettivo di precisare tutte le caratteristicheprincipali di cui bisogna tenere conto per gestire cor-rettamente il Watchdog, forniamo un riassunto di

quelle piu importanti e una figura che mostra grafica-mente i bits dì controllo che intervengono nel suocomportamento.

RIASSU NTO DELLE SPECIFICH E* ll WDT è un contatore che genera un reset ogni

volta che va in overflow.

" È controllato da un oscrllatore RC interno ed

PS2:PSO

At TMRO

P5A

indipendente dall'oscillatore prrncipale del sistema.- La temporizzazione nominale e di I B ms, anche se

puo essere aumentato con il valore che si sceglie nelDivisore di frequenza fra 1:2, 1 :4, .....1 :128, ottenendocon quest'ultimo caso una temporizzazione massima di2,3 secondt.

" Per stabilire il range di divisioni del Divisore diFrequenza si utilizzano i tre bits meno significativi diOPTION (P52, PSl e PS)).

* Per prevenire l'overflow e i/ reset bisogna cancel-lare il WDT prima del termine della temporizzazione

con I'istruzione "clrwdt" o "sleep".* ll WDT si attiva o drsattiva con un bit della Parola

di Configurazione (WDTE).* Se il bit PSA è a 1 nel registro OPTION, tl Divtsore

rli freottenza P assp.,nato al WDT.* Quando si esegue I'istrulone "sleep" si entra in

modo basso consumo e si ferma tl srstema e l'elabora-zione delle istruzioni. ll WDT si cancella, pero non si

ferma e continua rl conteggio.* Nel modo basso consumo st entra con lo s/eep e

termina con I'azione del reset esterno tramite MCLR#,

o anche all'overflow del WDT.* Uscendo dal modo basso consumo si ricomincia

o<onttanrla l'i<frr tzinna rho <oat ra nt talls r'li <l',-,,,- -, -,-"eP.

Page 55: Microrobotica Monty Peruzzo Editore - 06 A - Microcontroller

La memoriadet programma

farchitettura Harvard dei PIC,

divide la memoria in due zone

indipendenti, una destinata a

contenere le istruzioni e l'altra i

dati. Il primo vantaggio che

deriva dall'architettura Harvard

e che nermette l'accesso simul-

taneo ad entrambe le memo-rie, in modo che il processore

possa leggere un'istruzione diUn progetto esclusivo per il PlC|6FB4.

MEMORIADEI DATI

tNDtRtzzo

DATO

L'architettura Harvard del PIC rende indipendente la memoria del programma da quella dei dati.

MEMORIA DIPROGMMMA

tNDtRlzzo,13

ISfRUZIONE

'14

, ,orr)uo," il ,**rirlru'" i ttu, a"g i ,:,iiri;i nunì,o t s t*,con i quali si può indirizzare uno spazio di B K posizioni di memoria.ll PlCl6FA ha solo implementate le prime 1 024 posizioni.

diversi modelli della gamma

media. Per questo il bus deglitndirizzi, ovvero l'insieme di

linee che trasportano il valore

dell'indirizzo al quale si deve

accedere nella memoria - che

e generato dal Program

Counter PC - non ha solo diecilinpp rhe s:rphhprn nrtelle suf-,r Je,LUvL'v Yr

firienti ner oestire la memoriaYLr YrJ!'r ! 'v '

da 1 K, ma 13 con le quali è

possibìle induizzare capacità

MEMORIA DIPROGRAMMA FIASH

tNDtRrzzo

/,o

ISTRUZIONE

/,0

tNDtRtzzo

/,I

I

','iXtl"I

I

I

DATO

/"

BANcoolanNco r

PROCESSORE

programma, e nel medesìmo tempo scrivere un dato.

Così, il processore attende a due istruzioni alla volta,

conseguendo un parallelismo implicito chiamato seg-

mentazione. che migliora notevolmente il rendimentodel sistema; fatto che in pratica si traduce nella possi-

bilità di eseguire un elevato numero di istruzioni al

secondo. Se guardiamo il progetto costruttivo del

PlC16FB4, notiamo che la memoria dì programma ha

una capacità di 1 K byte da '14 bits ognuno, mentre la

memoria RAN/ è costituita da due banchi da '128 byte

ciascuno, lasciando gli altri banchi non implementati.

,: :, .' ,

':'l "i

MICROCHIP non ha realtzzalo un progetto specificoper il PIC16FB4,l'architettura utilizzala è la stessa per

l..- 14 BITS +l

Page 56: Microrobotica Monty Peruzzo Editore - 06 A - Microcontroller

fino a 8 K posizìoni di memoria del programma tipoFLASH. Nel caso del PlCl6FB4 è stato fisicamente

implementato solo il primo K, sarebbe a dire, dall'indi-rizzo 0000 H al 03FF H

;'y,:; ;';:1:!; j,1:. i..j :j r:'irí. I ::i :- I

Nei PIC di gamma media abbiamo due indirizzi della

memoria di programma che sono riservati per espleta-

re due funzioni principali. Un indirizzo riservato è lo0000 H, che è il primo della mappa. ln esso è ubicato

Vettore di Reset o Reinizializzazione. ll suo compito è

MEMORIA DIPROGR/AM^tu4

0000 H

O3FF H

I due indirizzi riservati nella memoria di programma. La 0000 Hper il Vettore dl Reset e la 0004 H per il Vettore di lnterrupt.

, ll fatto che il programma principale cominci all'indì-' rizzo 0000 H e la routine di interrupt al 0004 H non

cinnifir: rhp lo rpstanti istruzioni continrrino seouen-

, zialmente, altrimenti il programma principale intacche-

, rebbe la routine di interrupt che inizia quattro posrzro-

ni dopo. Normalmente all'indirizzo del vettore si collo-

, ca un'struzione di salto incondrzionato al vero indiriz-

' zo dove inizia il programma. Per esempio, se il pro-

; gramma principale - con l'obiett vo di salvare il Vettore: di Interrupt - si decide di farlo iniziare all'indirizzo 0005, H, all'indirizzo 0000 H, viene collocato un GOTO alla

direzione 0005 H, come si puo vedere dal seguente: OrOOfamma:

RADIX HEX ;l valori si rappresentano in esadecimale

Goto inizio ;Salto all'istruzione con etichetta inizio

F un renistro da 13 hits rhe ronlienc nli indirizzi dell'i-struzione successiva che deve eseguire ii processore.

Dato che i registri della RAM sono di 8 bits, il valore delPC si i'nnlempnta qnnra drre di essi ll rcnistro PCL del-

l'area SFR della RAM contiene gli 8 bits meno significa-tirrr dpl PC o acr^trn,a le nosizione 2 dei drre banchi. | 5! L vLluvu,u PvJ,L,vl

tk

supportare la prima istruzione del

programma principale, che e quellarho o<anrro il nrnroccr,, r.,_-,_-Jre oopo cne

è stato effettuato un reset.T-- ì^ -i+.^ --.,-^ il -^-^+ -l ^-^

duce con l'accensione del micro-

controller nel momento in cui si

applica la tensìone di alimentazio-ne, il programma che esegue il

microcontroller rnizia all'indirizzo0000 H.

L'altro indirizzo riservalo è lo

0004 H, in cui alloggia il Vettore dilntorrr rni (o nol nrnnr-y,amma e pre-

visto un interrupt, la routine che loriguarda ha la sua prima istruzione

all'indkizzo 0004 H.

12 87{s

PCLATH

ÍiGli B bits meno significatiu a" iìiìr,eaono ntel registro PCL e i 5 più significativi nel PCLATH.

íÉ ;l,r :;e + i:' i. *tu *11 a1; I i + i.# $i-l tr;l ;i:, i; n:+ i;-i,j

CONTATORE DI PROGRAMMA

432rO

Page 57: Microrobotica Monty Peruzzo Editore - 06 A - Microcontroller

frilc

-2

CONTATORE DI PROGRAMMA

< | 0:0>

cano dalle Iinee del bus dei datiinterno al processore. | 5 bitspiu significativi, invece, si rice-vono tramite i bits <4:0> delregistro PCLATH.

Nell'istruzione di salto GOTOo CALL I'induizzo del salto chesi carica nel PC arriva dagli 11

bits meno significativi del codi-ce OP dell'istruzione, e dai bits<4:3> del PCLATH.

Lo stack è un insieme di registriche contengono le informazio-ni in una forma particolare,

dato che, sia il carico che loscarico è speciale. Nel caso del

PIC'16F84 lo stack è formato da B registri da 13 bitsognuno, ed è dotato di una struttura di carico e scari-co tipo LIFO, acronimo inglese che significa "ultimo adentrare primo ad uscire". Quando si carica un'informa-zione nello stack, si introduce sempre al livello 'l

Se precedentemente avevamo un'informazione allivello 1, questa viene spostata al livello 2 e quella del

SCARTCO

STACK \I3

I-'INFORMAZIONEstSPosTAAt LIVELLO

PRECEDENTE

Anche lo scarico dello stack si realizza al livello 1,

spostando l'informazione al livello precedente

,-!, i,

'll

CODICE OP ISTRUZIONE

PCTATH

Nell'istruzione di salto il PC vrene caricatocon gli 11 bits meno stgnificativi del codice OP e i bits <4;3> del reqistro 7CLATH

bits piu significativi del PC risiedono nei 5 bits menosignifrcativr del registro PCLATH, che occupa l'induizzo0A H nei due banchi della memoria dei dati. Il registroPCL si può leggere e scrivere direttamente, mentre il

PCH è accessibile in scrittura attraverso i 5 bits menosignificativi di PCTATH In quelle istruzjoni in cui la

destinazione è il PC, gli 8 bits meno significativi si cari-

cARrco\13

STACK

34

T.INFORMMIONE5I SPOSTA AtHVELTO SUCCESSTVO

Caricando lo stack al livello 1

l'informazione di ogni livello trasla al successivo

Page 58: Microrobotica Monty Peruzzo Editore - 06 A - Microcontroller

NfiICROCONTROTTER

livello 2 al livello 3 e così di seguito; in aìtre parole,

quando si carica l'rnformazione aì ìivello 1, quello che

c'era memorizzato in ogni livello si sposta al seguente

livello.Se lo stack e nieno e contiene informazioni in tutti

qli otto livelli, rl carico di un nuovo dato produce lo spo-

l3

L'istruzione CALL o I'interrupt,provocano il caricamento automatico del contenuto del PIC nello stack

Le istruzioni di RITORNO della subroutineo dell'interrupt scaricano immediatamente il contenuto del livello 1 dello stack sopra il PC

rì-- cARrco(cArr E TNTERRUPT)

stamento dell'informazione di ogni livello al seguente,

quindi si perderà quella che esisteva al livello B.

Per recuperare le informazìoni dallo stack, lo spo-

stamento delle informazioni si realizza al rovescio;

esce quella che sta occupando il livello 1, e ìn esso

viene caricata quella del livello 2. Le informazioni si

RETTW,RETFIE)

spostano al livello precedente

e il dato che esce dal livello 1

sarà l'ultimo che è stato inse-

rrto.

' ' '''',,, ': .l'

Lo stack del PIC funzlonaautomaticamente, ed e diret-tamente relazionato con il

contenuto del PC. Lo stack si

carica sul livello 1 con il conte-nuto del PC Quando lo stack

scarica l'informazione del livel-

lo 1, la passa al PC. Ogni voltarhp ci pconrro l'istrr rzinne CALL

o che si produce un interrupt,è necessario salvare il conte-nuto del PC per sapere succes-

sivamente ritornare al punto

dove avevamo lasciato il pro-

gramma princrpale.

L'esecuzione di un'istruzio-ne CALL o di un interrupt,produce lo spostamento auto-matico del contenuto del PC

al livello 1 dello stack.

fultima istruzione di una

subroutine o di una routined'interrupt è di RITORNO,

quando questa è eseguitaproduce lo scarico automaticodel livello 1 dello stack sopra il

PC, restituendo il f lusso di

controllo al programma prin-

cipale, nel punto in cui era

stato abbandonato.ll programmatore deve te-

nere conto che non esistono

segnalazioni che indicanoquando lo stack è pieno, ed èsua responsabilrtà evitare il

debordamento e la perdita di

informazioni.

t,,

/'13

scARlco

srAcK rs\ (RETURN,

;:;,::iii :r,, 11l,il:;.+ 4i,i ;r1111;i

Page 59: Microrobotica Monty Peruzzo Editore - 06 A - Microcontroller

Resete circuiteria fissa

Per entrare in funzione il PlC16FB4 ha bisogno di trerisorse:

- Tensione di alimentazrone- Freorenza di rifprimpnto.- Reinizializzazione o Reset.

La tensione di alimentazione e indispensabile per il

funzionamento di tutti i componenti elettronici, e il suovalore può essere compreso fra +2 e +6 VDC, essendo

!,,0,

MCtR#/Vpp

-+'

Questi sono i 5 pin del PlCl6FB4 che supportano le tre funzioniprincipali. alimentaztone, frequenza di riferimento e Reset.

+5 V la tensione tipica, compatibile con il resto della cir-cuiteria del sistema. Questa tensione si applica ai piedini'1 5 p 5 risncttiv:mcntp nositivo e massà ll ronsumo di

corrente dipende dalla frequenza di funzionamento e

dalla tensione di alimentazione, che non supera 10 mA.La frequenza di riferimento serve per stabilizzare e fissa-re la frequenza dell'oscillatore interno, che determinaquella di lavoro del orocessore. Si ottiene da un cristallodi quarzo collegato ai piedini 16 (OSCl/CLKIN) e 15(OSC2/CLKOUT). Nei nostri sviluppi utilizzeremo un crr-

stallo di quarzo a 4 MNz, per formare un oscillatore tipoXT. In ognuno di questi piedini si monta un condensato-ro di nnchi nirofered nor dic,rrrnnni:ro lo fronttonza

spurie.

Quando si preme il pulsantedi Reset il piedino MCLR# passa a livello logtco basso

lnfine, un microcontroller deve disporre di diverse

forme di inizializzazione de programma di lavoro. Per

nro\/oràre rrn Rpspt esterno si rrtilizza il oiedino 4(MCLR#l/pp), che ha anche la funzione di introdurre la

ioncinno \/nn rlr 1) ) 14 VDC di CUi il miCfOCOntrOller

necessita durante il processo di scrittura del program-ma. Nella figura si mostrano i 5 piedini del PlC16FB4

che supportano le tre risorse principali.

ll rlinrln imnpdisr c r he e íre6li,,,,P!vrr!L

corrente dall'rnterno del microcontroller al positivo

àoscr/crKrN T._------------l-cR|sTAt

-osc2/crKouT $lml'E-.---l| 27otÀ-'

S+Voo=+SVDC T+

MASSA:Vss

I-:-

Voo=+5VDC

îrok=f

rN4148+

t--M A-I rooo

PULSANTE Ir'-rrq;

I.:

Page 60: Microrobotica Monty Peruzzo Editore - 06 A - Microcontroller

n^+^ -A^ ^,,-^,]^uaro cne quan0o 5l

imnieoa rrn PIC 16F84""r'-v-nal nrnnoffn di rrn':n-

nlir:zinno a qomnro

necessaria una circui-+^";- ^.+^"^- ^ ',."ì^LCtto c)Lct Ito, E vot tE-

r:nnn <nln irnlipn:-

menti delle linee di l/Ornn lo norifari16,a rho

dovremo controllareesrstono sul mercatoschede di circuiti stam-pati che dispongono dirrnn znrrnln nar il Pll-Y-, ,, ',-,dci rollcn,amonti nc;rv,,rYU,,,L,,Ll

l'alimentazione, del

cristallo di quarzo e delRocoi o r rn: znn: liho-

r: rlnrio nnq(nnó èqqé-YvrJv'

ro m^nf:to lo nori{ori-Y-.,,-,,che che si collegheranno alle linee di l/O.

Nr^ll- {i^,,"- ,..J^ll- ^.r\eila rgurd oeild pagrna successlva sl puo veoere lo

schema elettrico della scheda per i prototipi che è molto

ulile per la presentazione e la messa a punto dei proto-t o doi nrnnoffi d:t: l. {..ili+à À'".^ l- rr^ir:+; ^ l/^L.i L uLr ||JrvgLLLrr uuru ld ldLlllLd U U)U, ld ldPìultd E lc-

conomia che comporta.

lmmagine di una scheda di prototipi commerciahzzata da Microsystem Engineeilng

Quando si applica un livello basso per un tempo suffi-rientp al niedino N/al R# si nrodrrrp rrnà rcinizializza-, JI yIvvuLL

zione che comporta l'esecuzione di due azioni impor-tanîr:

'1 ". La messa a zero del-r r^ri.i---.Ò lapd>>d du il ruil r4zor!

prima istruzione del pro-

gramma.

2". Pone in uno statop"edeterminato la maggìornarte dei bit dei reoistri di

controllo del processore.

Nella figura della paginanro.p.ltrnto sr mnstr:\/a Un

semplice schema a base di

un pulsante, che provoca il

Reset esterno.

Un altro schema comu-ne per il pulsante di Reset

include una resistenza di

assorbimento da 10 K, undindn rho imnpdisre la cir-

colazione di corrente al pie-

dino 4 e un'altra piccola

resistenza da 100 Q come

sivede nella figura.

Prnnr:m Cor rntor rhe cosl

Scheda dei prototipi con un'applicazione che controlla diverse periferiche

utìììììriifl lffi fr ùrÌrÌ|rrrrrrr:t:lr:rrrnr{rf *Mffi irul

Page 61: Microrobotica Monty Peruzzo Editore - 06 A - Microcontroller

succedere sìa nel modo funzio-namento normale del PIC e sia

nel suo stato di riposo.ln qualunque delle cinque

possibili cause del Reset, il PC si

carica con zero, eccetto quan-

do il WDT va in overflow con rl

Pll- in <t:fn di rinncn in nrro<tn

caso il PC si incrementa di una

unita ner eseorrire l'istruzione-^^,,^^+^ - ^,,^ll- -t-seguente a queila cne lo na

mandato nello stato di basso

consumo. Nella tabella sonorino.fati i v:lori r-ho nrendOnO iI vu,v,, r,L vl

Schema elettrico della scheda dei prototipi

ll Reset rnette a zero il PC e colloca in uno

stato predeterminato la maggior parte dei

hit dei reoistri di controllo. Esistono tre

cause principali che originano i Reset:

1". Connessione dell'alimentazione(POR: Power On Reset) Si produce al pas-

saggio della tensione dì alimentazione da

1,2a1,7Y.2'. Attivazione del piedino N/CLR#.

C)rrpsto nrn sr rrcpdpre sia mentre il PICYULJLV

funziona normalmente, sia che si trovi in

stato di rìposo.

3'" Overflow del Watchdog (WDT). Puo

bit del registro SFR dopo ognu-na delle possibili cause di Reset.

Schema elettrico di controllo interno dell'attivazione del Reset

tNDtRtzzl

00h

CONNESSIONE OVERFLOW OVERFIOW MCLR# MCLR#DEII.A ì WATCHDOG WATCHDOG MODO . IAODO

aUMENTAZIONE ìmoDo NoRMAIE r MODO RIPOSO . NORI AtE: RIPOSO

XXXX XXXX UUUU UIUU UUUU IUUU UUUU UUUU

:,, i:,'. 1-;,'1',_ i,

i i:. ;.: ; - ;,;'?' i 11, j 1 il:

ii i i. i:' 1' 1; ir 'i

| - f i^,,"- ff^.+,a l^ SChemaLq il9UIO lttUJttC rV

elettrico che controlla l'attiva-zione del Reset. Sono messr In

evidenza i temporizzatori OST e

PWRT.

ll temnnrizTz,tore PWRT(Power-up-Timer) aggiunge72 millisecondi che manten-gono rl microcontroller nella

situazione di Reset, per dare

tempo alla tensione di ali-mentazione di stabilizzarsi.Per il suo funzionamentodobbiamo mettere a basso

01 h xxxx xxxxo?h 0000h03h OOOI lxs04 h xxxx xxxx05L xxxx xxxxOé h xxxx xxxx85 lrgóh tlil lillsl h 1111l',] t1

: 08 h xxxx xxxx09 h xxxx xxxx

j,, es h ,.. o oooor.' ge h;i:,oah ---oúoooìììr oal oo00 Òoox

i U=Noncombio x=lndelerminoto

0000 h 0000 h

OOOu uuuu 0001 0uuu

UUUU UUUU UUUU UUUU

UUUU UUUU UUUU UUUU

UUU! UUUU UUUU UUUU

---r l]1t -.-r llilllll llil llll llllll]t lltl il| 1t1rUUUU UUUU UUUU UUUU

0000 h

0000 I uuu

---1111111111111illr I11r

---o?ooo

---00000000O 0O0u

PC+ I

uuu0 0uuu

UUUU !UUU

UUUU UUUU

0?000 .--0?000

00000 ---00000uuuu uuuu 0000000u 00000000

--- = Non ufìlizzoto ? = Dipende do olke condizioni.

.i

CONSENSO PWRÍ(Porolo di configurozione)

REGISIRO

Tabella con i valori che assumono i bit dei registri SFR durante i possibili Reset

Page 62: Microrobotica Monty Peruzzo Editore - 06 A - Microcontroller

livello il bit di accesso PWRTE#, cherisiede nella parola di configurazione.Laltro temporizzalore, OST, fornisce un

ritardo di 1 .024 Tosc e ha il compito di

assicurare che l'oscillatore principale delprocessore slabilizzi la sua frequenza.OST inizia a funzionare quando terminala temporizzazione di PWRI, dovuta al

collegamento della porta OR7 con la

AND5. L'ingresso Set del flip-flop di usci-

ta sr attrva:. All'attivarsi del piedino MCLR#.. Quando va in overflow il WDT.. Se si rileva un fronte di salita nel pie-

dino VDD (POR).

I bit TO# e PD# del Registro di Stato determinano la causa che ha originato il Reset

conoscere la causa stessa. Per questo sì utilizzano duebit del registro di STATO o STATUS, che occupano l'in-duizzo 3 dei due banchi della RAM. Si tratta del bitTO# (T mer Out), che si attiva con l'overflow del WDT,

e del bit PD# (Power Down) che si attiva quando il PIC

e in stato di riposo. La tabella in alto decodifica glistatidi ouestr due bit.

È

È

Ouando la tensione di alimentazione scende al di sotto delvalore di tensione del diodo zeneq Vz = 0,7 V, si produce unReset per I'attivazione del aiedino MCLR#.

+-ì{:-S*"il È:È:È * {i {i} *È,{+:f+i;3.q"} *.é E.

A volte è molto importante reinizializzare il processore

quando si produce un buco di tensione e/o la tensione

scende sotto un valore determinato, senza arrivare azero,risalendo subito dopo.Ci sono modelli del PIC che incoroorano nel silicio i circui-

ti necessari per provocare il Reset a fronte di un buco di

tensione. Questo non è il caso del PlC16F84, quindi per

ottenere cio bisogna costruire un circuito ausiliario comemostrato nella figura.

f ingresso Reset del flip-flop sr attiva quando, trami-te la AND4, arriva un livello alto; questo richiede che

agli ingressidella porta cisiano livellialti, e quindisigni-fica che:

. Non ci sono richieste di Reset e l'uscita di OR2 ha

livello basso.. Se PWRT e attivo è terminato il ritardo di72 ms.. Concluso rl ritardo di PWRT è terminato il ritardo

di osT.Nel cronogramma della figura possiamo vedere gli

stati ehe assumono i diversi segnali che sono coinvoltinel Reset, quando questo viene prodotto alla rilevazio-ne di un fronte di salita sull'ingresso della tensrone di

alimentazione.

5 il=5F ÉÍ'*l.i S'èFi I{F l'É ili"rili" i'iií€F{;;,iFj F. l}t i, ilÈF=È*,E

Dati i differenti effetti che provoca il Reset a secondadella causa che lo ha originato, è molto importante

..':. : ... : l .

POR

oiERFtovrfPI,vnÍ

OVERFLOWosr

**i-t fuCronogramma dei segnali che partecipano a/ Reset all'arrivo dr

un fronte di salita nella tensione di alimentazione.

.

#+È*É.eÈs$Eea*=$+$È+ # R*s+*

Page 63: Microrobotica Monty Peruzzo Editore - 06 A - Microcontroller

N ecessità di m emo rizzaredati non volatiti

, ,,, i r,. pesso, nelle applicazioni più comuni con i

microcontroller, è necessario poter disporredi intormazioni ditipo permanente. ln deter-minati momenti vengono introdotti nelsistema alcuni dati che devono essere man-

tenuti anche dopo aver scollegato l'alimentazione.Supponiamo un sistema di controllo di accesso ad

un luogo, che controlla il relé la cui attivazione chiude i

contatti che permettono l'apertura della porta. Le prin-cipali periferiche saranno una tastiera, un display di

visualizzazione dei messaggi, e un relé di uscita. Ogniutilizzatore introduce la sua chiave segreta mediante la

tastiera e i messaggi che appaiono nel video guidano le

operazioni del medesimo.Nell'applicazione descritta, ogni utilizzatore ha un

suo codice, e l'insieme di questi deve essere memoriz-zato in modo permanente, per essere utilizzato quando'è necessario. Inoltre sarà possibile cambiarli in qualun-que momento.

Por momnrizT)ro ^tro<ti

tini di drri ò nara, ,,---554|a unamemoria non volatile, perchè il contenuto possa essere

Terminali programmabrli della OMRON, che hanno funztone dri nterfaccia uom o-macch i n a.

scritto e cancellato; pero deve essere mantenuto anchequando viene scollegata l'alimentazione. Con l'obietti-vo di supportare questo tipo di dati e applicazioni, il

P|C16F84 dispone di una memoria EEPROM da 64bytes.

Le memorie EEPROM nascono per superare gli inconve-nienti delle EPRON/, che si potevano scrivere e poi can-cellare sottoponendole per alcuni minuti ai raggi ultra-vroletti, per cui disponevano di un cristallo sulla superfi-cre. La scrittura della EPROM è di tipo elettrico, però percancellarla, bisogna estrarla dallo zoccolo e posizionar-la sul "cancellatore" a raggi ultravioletti. Questo pro-cesso è lungo e complicato.

Nelle memorie EEPROM sia la scrittura sia la cancel-lazione delle informazioni, sono realizzate mediantesegnali elettrici, per cui non è necessario estrarre il cir-cuito integrato dallo zoccolo.

Nella costruzione della cella N/OSFET delle memorieEEPROM, si introduce una sottile lamina di ossido soprail drain, che permette la cancellazione elettrica. Quandosi applica una elevata tensione fra il gate e il source delMOSFET si introduce una carica nella barriera di poten-ziale, che rimane memorizzata anche se viene tolta l'a-limentazione. Per distruggere questa carica basta appli-care la stessa tensione inversa.

Nella EEPROM si possono scrivere e cancellare sin-gole celle. Le operazioni di scrittura e cancellazione di

solito durano pochi millisecondi. Linconveniente è chela superficie che occupa questa cella e grande e perquesto la densità di integrazione è bassa e il costo ele-vato.

La memoria FLASH ulilizza la stessa tecnologia peroriducendo lo spessore della iamina di ossido, il che per-mette un funzionamento simile alle EEPROM, con mag-giore densita di integrazione, minor costo e maggiorvelocità di accesso.

Per questo motivo useremo la memoria di program-ma FLASH nel PlC16FB4.

Page 64: Microrobotica Monty Peruzzo Editore - 06 A - Microcontroller

P3l

Altre caratteristiche interessanti per la scnttura dei

dati nella EEPROM del PlC16F84 sono:

Mantiene le informazioni più di 40 anni.

ll microcontroller che usiamo come cervello di Monty,

dispone di una zona di memoria dei dati implementata

con tecnologia EEPROM, con una capacità di 64 posi-

zroni da 8 bit cadauna. ll suo principale inconveniente

è che la durata del ciclo dr scrittura o cancellazione di

una cella è molto lento, comparato con la velocità del

processore, infatti sono necessari 10 milllisecondì,

tempo in cui un PIC 16F84 lavorando a '10 Mhz, esegue

più istruzioni delle 1024 che può contenere nella sua

memoria di programma. Inoltre questo tempo è critico

e bisogna aspettare che termini completamente ogni

singola operazione per iniziarne una nuova.

I

La te:ntsione di 13j B VòC nec:e:ssaria

per la scrittura/cancellazione di un indirizzo della

si applica tramite il pin 4 del PlCl6FB4.EEPROM,

Per le operazioni di scrittura e cancellazione, la

memoria EEPROM necessita di una tensione Vpp alta,

dell'ordine di 13,8 VDC, che viene introdotta tramiteil pin MCLR#l/pp, come si puo vedere dalla figura.

Anche se la EEPROM è una parte della memoria dei

dati, i suoi induizzi non sono mappati insieme ai regi-

stri SFR e GPR della RAM, che è volatile. Occupa uno

spazio di memoria indipendente, così come mostratonella figura.

INDIRIZZI

EEPROM HEX

64POSTZTONI

000r02

1._ 8 BtrS _l

Lo spazio nella memorra EEPROM e indipendente

Per gestire lo spazio proprio della EEPROM biso-

gna uLilizzare due registri di controllo dell'area SFR. Si

tratta dei registri EEADR ed EEDATA. ll regtstro EEADR

occu0a la posizione 9 del banco 0 della RAM, mentrequello EEDATA si trova ubicato alì'indirizzo B del

banco 0, come riportato graficamente.Nella posizione uguale a EEDATA, nel banco 1, si

trova il reoistro di controllo della EEPRON/, EECONl.

In modo simile il registro di controllo EECON2 occu-

0a una posizione correlata a EEADR, neì banco '1 .

Page 65: Microrobotica Monty Peruzzo Editore - 06 A - Microcontroller

RAM

BANCO O BANCO I

Ubicazione dei registri EEADR ed EEDATA, che si utilizzanonella gestione dell'area di memoria EEPROM,

sono riportati anche i registri di controllo EECONI ed EECON2

., ,;. il

cicli di lettura e scrittura della EEPROM sono realizza-ti <rrnli ind,irizti di rrn hrito

ll ciclo di scrittura comoorta la orecedente cancel-lazione in automatìco delle informazioni che contene-va la posizione a cui sie fatto accesso. lltempo diciclodi scrittura è controllato da un temoorizzatore inte-grato nel chip.

ll problema maggiore e che questo tempo nonsolo è lungo, '10 millisecondi come massimo, ma è

variabile a seconda della temperatura e delra rensro-ne aoolicata.

Dato che questo tempo è molto critico, la fine delleoperazioni è controllata da un flag che può essere

complementato con un interrupt alla fine della scrittu-ra di un induizzo.

Per accedere ad una posizione della EEPROM

dobbiamo caricare nel registro EEADR I'indirizzodella medesima, mentre in EEDATA si carica il datoda scrivere, o nel caso della lettura, si deposita il

dato letto.Dato che iregistri EEADR ed EEDATA sono di B blt,

i due bit più significativi del registro EEADR valgonosempre zero, perche il valore maggiore che si può cari-care è 3 FH.

EEADR (09 BANCO 0)

EEDATA (08 BANCO 0l ;

Nel rcaistrn FFADR * eari16 | inj111776

a cui accedere, e in EEDATA, il dato da scrivere o quello letto

,; ',",i' i,;,t, i'.:,, .',. ' ',,,";1,1 1', I 1 "

, t ,.', i;',':

All'indirizzo OB relativo al banco 1 della zona SFR

della RAM è situato il registro EECONl i cui bithanno rl compito di controllare le operazione dellaEEPROM.

I tre bit meno significativi di questo registro non

hanno alcuna funzione.Di seguito descriveremo il compito di ognuno dei

bit del registro EECONl:

RD: LetturaQuando questo bit è messo a 1, si realizza un'opera-zione di lettura all'induizzo contenuto nel registroEEADR. ll contenuto di questo indirizzo viene caricatonel registro EEDATA. Terminata l'operazione di lettura

RD torna automaticamente a 0.

hj'i,++=++;l'l'È+u #+u*i'.U+uil"t rtljdri+rli'[st.::r í fr j

Page 66: Microrobotica Monty Peruzzo Editore - 06 A - Microcontroller

P32

FLAG

EECON r (Oe BANCO | )

Struttura e nomenclatura dei bit del registro EECONl

WR: ScritturaN.4pttendo a 1 nrrpsto hit sì realizza rrn'nnerazione di

scrittura dell'indirizzo indicato da EEADR, con il datocaricato in EEDATA. Completato il ciclo di scrittura il WR

torna a zero automaticamente.

WREN: Consenso alla scritturaQuesto bil realizza una funzione di sicurezza, se è a 1

normtrtttr l: srrittr rr: qe e a 0 no indinondentemente

dal valore del blt WR.

WRERR: Flag di errore di scritturaViene posto automaticamente a 'l quando un'operazio-ne di scrittura termina prematuramente.

Segnala che si e verificato un errore di scrittura, atti-vandosi quando si interrompe l'operazione di scrittura,a causa di un reset prodotto da MCLR# o per overflowdel WDT. Dopo il Reset l'utilizzatore deve verif icare que-sto hit e se vale 'l rinetere l'onerazione oi scrittura.

EEIF: Flag di terminedell'operazione di scritturaData l'importanza dell'operazione di scrittura, e rl

rischio di comoromettere il sistema se non termina cor-rettamente, questo bit è dedicato a segnalare il terminedell'operazione, prendendo il valore L

ln seorrito dovremo norre ollesto l-ti| a zero tramite'" r"ii

software, altrimenti resterà a 'l .

i::i.;.:l:'

In realtà questo registro non è fisicamente ìmplementa-

to nella RAM.

È utilizzato come un drsposirivo di sicurezza, per

convalldare l'operazrone dr scrittura della EEPROM, ed

evitare disturbi che potrebbero prodursi durante il

lungo irtervallo di tempo prodotto dalla durata di que-ct: nnor:zinno

Se viene letto tutti ì suoi bit valgono 0.

EECON2 (09 BANCO I l '

tl roni<rrn ll(a^l) fitn-tnnà snlo romc di<no<itivn di <ìrttra--1 nall ana,> ìana el1 5;1'11[ut'2